見出し画像

Exif ファイルの覗き方 Nikon D500 の Raw および TIFF

バイナリーエディターを使って画像ファイルを覗いてみた。

サンプルファイルは、Nikon D500 の Raw データ。
NX Studio で書き出した TIFF 画像も確認したが、Raw と同様だった。
D800E の Raw と TIFF も同様だった。ただし D800E の Raw はビッグエンディアンで書かれていた。

ファイル名および撮影情報

20170304_DSC_2980.NEF, 2017-03-04 11:40:55, NIKON D500, , F7.1, 1/1250sec, ISO7200

記載したデータについて

文中に画像として貼り付けた罫線のない表がデータの説明である。

左端:アドレス(10進表記)
中央:データ(16進表記)
右端:簡単な説明

表のデータ部のうち、IFD のデータエントリー(12バイト)については、次のように4つに区切って表示した。

1111 2222 33333333 44444444
  1. タグ(2バイト)

  2. タイプ(2バイト)

  3. データの個数(4バイト)

  4. データまたはデータへのオフセット(4バイト)

一塊のIFDの構成はつぎのとおり

  • 先頭の2バイト:エントリーの個数

  • 続くデータ:個数分のデータエントリー(1個あたり12バイト)

  • 最後の4バイト:データの終端または継続データへのオフセット

ヘッダー部

アドレス 0 に 4949 とある。バイトオーダーである。4949 はリトルエンディアンであることを示す。このアドレスが、Exif 関連のオフセットの基準となる。
アドレス 4 に最初のデータへのオフセットが書かれている。08000000 はリトルエンディアンで書かれているので、ビッグエンディアンに直すと、00000008、10進数表記では 8 である。
基準のアドレス 0 から 8 バイトオフセットしたところ、つまりアドレス 8 が、最初のデータの先頭である。

プライマリーエントリー

Exif IFD

プライマリーエントリーの 6987(ビッグエンディアンに直すと 8769、アドレス298)が Exif IFD へのポインターである。最後の4バイト 68320000 は、データへのオフセットである。ビッグエンディアンに直すと 3268 であり、10進での表記は 12904 である。
アドレス 0 から 12904 オフセットしたところ、つまりアドレス 12904 が Exif IFD の先頭である。

GPS IFD

プライマリーエントリーの 2588(ビッグエンディアンに直すと 8825、アドレス310)は、このデータが GPS IFD へのポインターであることを示す。最後の4バイト 5cb20200 は、データへのオフセットである。ビッグエンディアンに直すと 2b25c、10進表記は 176732 である。
アドレス 0 から 176732 オフセットしたところ、つまりアドレス 176732 が GPS IFD の先頭である。

MakerNote IFD

Exif IFD の 7c92(アドレス 13062)がメーカーノートへのポインターである。オフセットは 74340000。ビッグエンディアンでは 3474、10進表記は 13428 である。
アドレス 0 から 13428 オフセットしたところ、つまりアドレス 13428 がメーカーノートの先頭である。

データまたはデータへのオフセットということ

1個の IFD エントリーのサイズは 12バイト。その最後の 4バイトには、データかデータへのオフセットのどちらかが書かれている。データが 4バイトに収まらない場合には、オフセットが書かれているのである。
データのタイプ別に、データ1個あたりのサイズ(バイト)が決まっている。遠tリーには、データの個数が描かれているので、サイズ×個数で、トータルのデータサイズがわかる。それが4バイトを超える場合、データは別な場所に書かれ、4バイトには、オフセットが書かれるわけである。
オフセットが書かれている場合には、基準の位置からオフセットした場所にデータを読みにいく必要がある。

参考

デジタルスチルカメラ用画像ファイルフォーマット規格 Exif 2.3

https://www.cipa.jp/std/documents/j/DC-008-2012_J.pdf

Metadata reference tables

Nikon の makernote のタグの意味は、上のサイトを参照。


Exif について大部理解が進んだと思うので、記事にまとめた。
まだまだ間違って解釈しているところがあるかもしれない。

t.koba


この記事が気に入ったらサポートをしてみませんか?