![見出し画像](https://assets.st-note.com/production/uploads/images/117620291/rectangle_large_type_2_0f8d7cd9826ea49665714048606145ab.jpeg?width=800)
Exif ファイルの覗き方 OLYMPUS OM-D E-M1X の JPEG
バイナリーエディターを使って画像ファイルを覗いてみた。
サンプルファイルは、OLYMPUS OM-D E-M1X で撮影した Raw データを、OM Workspace を使って JPEG に書き出したもの。
OM SYSTEM OM-1 と違うところがあった。
ファイル名および撮影情報
20201016_114956_PA160433.jpg, 2020-10-16 11:49:56, E-M1X, OLYMPUS M.60mm F2.8 Macro, F8.0, 1/250sec, ISO1250
記載したデータについて
文中に画像として貼り付けた罫線のない表がデータの説明である。
左端:アドレス(10進表記)
中央:データ(16進表記)
右端:簡単な説明
表のデータ部のうち、IFD のデータエントリー(12バイト)については、次のように4つに区切って表示した。
1111 2222 33333333 44444444
タグ(2バイト)
タイプ(2バイト)
データの個数(4バイト)
データまたはデータへのオフセット(4バイト)
一塊のIFDの構成はつぎのとおり
先頭の2バイト:エントリーの個数
続くデータ:個数分のデータエントリー(1個あたり12バイト)
最後の4バイト:データの終端または継続データへのオフセット
ヘッダー部
![](https://assets.st-note.com/img/1695703750334-oWK535ROky.png?width=800)
アドレス 19 の行、Ssize ではなく、Size です。
アドレス30が 4d4d なので、ビッグエンディアンで書かれている。
プライマリーエントリー
アドレス 34 に最初のデータへのオフセット 00000008 が書かれている。このオフセット値の基準となるのは、Exif 識別コードの次のバイトオーダーが書かれたところである。この場合、30 である。
最初のデータの先頭は、そこから8バイトオフセットしたところになるので、30 + 8 = 38 である。
![](https://assets.st-note.com/img/1695540317168-TMOJMoNcGH.png?width=800)
Exif IFD
プライマリーエントリーの 8769(アドレス172)が Exif IFD へのポインターである。
最後の4バイト 00000120 は、データへのオフセットである。16進の 120 は 10進表記では 288 である。
アドレス30から 288 オフセット、つまりアドレス 318 が Exif IFD の先頭である。
![](https://assets.st-note.com/img/1695540349875-0oSAvHVvYg.png?width=800)
GPS IFD
プライマリーエントリーの 8825(アドレス184)が GPS IFD へのポインターである。
最後の4バイト 000002fc は、データへのオフセットである。16進で 2fc は10進では 764 である。
アドレス30から 764 オフセット、つまりアドレス 794 が GPS IFD の先頭である。
![](https://assets.st-note.com/img/1695540339026-frKnpnhvMF.png?width=800)
メーカーノートは記録されていなかった。
データまたはデータへのオフセットということ
1個の IFD エントリーのサイズは 12バイト。その最後の 4バイトには、データかデータへのオフセットのどちらかが書かれている。データが 4バイトに収まらない場合には、オフセットが書かれているのである。
データのタイプ別に、データ1個あたりのサイズ(バイト)が決まっている。遠tリーには、データの個数が描かれているので、サイズ×個数で、トータルのデータサイズがわかる。それが4バイトを超える場合、データは別な場所に書かれ、4バイトには、オフセットが書かれるわけである。
オフセットが書かれている場合には、基準の位置からオフセットした場所にデータを読みにいく必要がある。
参考
デジタルスチルカメラ用画像ファイルフォーマット規格 Exif 2.3
https://www.cipa.jp/std/documents/j/DC-008-2012_J.pdf
Exif について大部理解が進んだと思うので、記事にまとめた。
まだまだ間違って解釈しているところがあるかもしれない。
t.koba
この記事が気に入ったらサポートをしてみませんか?