多くのデジタルカメラ(デジカメ)の画像保存形式はExifという情報を含んでいる。
Exif情報を含んだファイル(Exifファイル)には
・撮影に使用したデジカメ名のメーカー名
・撮影日時
・撮影時のシャッター速度や絞り値
・デジカメの撮影モード
など数多くの情報が保存されている。
Exifに関する情報はJpegファイル中にTIFFと同様の形式で格納されている。
Exif情報はTIFFと同様の形式で格納されている。
実際のExif情報をファイルの先頭から見ると以下のようになる(各情報の詳細は次回以降)。
Exif情報を含んだファイル(Exifファイル)には
・撮影に使用したデジカメ名のメーカー名
・撮影日時
・撮影時のシャッター速度や絞り値
・デジカメの撮影モード
など数多くの情報が保存されている。
Exifに関する情報はJpegファイル中にTIFFと同様の形式で格納されている。
・JPEGファイル格納形式 jpegファイルはFF xxという2バイトのマーカーと次のマーカーまでのバイト数を 2バイトという計4バイトの組み合わせで画像情報を格納する領域を指定し保存して いる。 0000: FF D8 FF xx 00 0C 00 00 00 00 00 00 00 00 00 00 ① ② ③ ④ 0010: FF xx ..... ⑤ ① SOI マーカー ② 1つ目のマーカー ③ 次のマーカーまでのバイト数 0x000C = 12バイト ※ 実際のデータサイズ+2バイトとなる ④ 1つ目の情報 ⑤ 2つ目のマーカーここで④に対応するデータ部分にExif情報や画像情報が格納される。
Exif情報はTIFFと同様の形式で格納されている。
・Exif情報の格納形式 0000: 01 0F 00 02 00 00 00 03 00 00 00 18 01 12 00 05 ① ② ③ ④ ⑤ ⑥ 0010: 00 00 00 01 00 01 00 00 6A 6B 6C 6D 00 ⑦ ⑧ ⑨ ① 1つ目のタグ ② 1つ目の格納値タイプ ③ 1つ目の格納値数 ④ 1つ目のオフセットもしくは格納値 ここではオフセットとして使用 ⑤ 2つ目のタグ ⑥ 2つ目の格納値タイプ ⑦ 2つ目の格納値数 ⑧ 2つ目のオフセットもしくは格納値 ここでは値として使用 ⑨ 1つ目の格納値 1つ目のオフセット値0x18に対応するアドレスから情報が格納されるこのように〝タグ〟として格納されている。
実際のExif情報をファイルの先頭から見ると以下のようになる(各情報の詳細は次回以降)。
0000: FF D8 FF E1 3D 6A 45 78 69 66 00 00 4D 4D 00 2A ① ② ③ ④ ⑤ ⑥ ① SOI マーカー ② APP1 マーカー ③ APP1 サイズ ④ Exifマーカー ('Exif\0\0') ⑤ 数値格納形式 49 49('II') : インテル形式 4D 4D('MM') : モトローラ形式 ⑥ TAGマーカー 0010: 00 00 00 08 00 0B 01 0F 00 02 00 00 00 09 00 00 ① ② ③ ④ ⑤ ⑥ ① 1番目のディレクトリへのオフセット ② ディレクトリ・エントリ数 【 1番目のディレクトリの開始 】 ③ ディレクトリ・タグ ④ 格納値タイプ 1 : BYTE (8bit unsigned integer) 2 : ASCII (NULLで終わる文字列) 3 : SHORT (16bit unsigned integer) 4 : LONG (32bit unsigned integer) 5 : RATIONAL (2つのLONGの比; unsigned double) 6 : 未定義 7 : Undefined (8bit値) 8 : 未定義 9 : SLONG (32bit signed integer) 10 : SRATIONAL (2つのSLONGの比; signed double) ⑤ 格納値数 ⑥ オフセットもしくは格納値 【 1番目のディレクトリの終了 】 0020: 00 92 01 10 00 02 00 00 00 0D 00 00 00 9C 01 12 2番目 3番目 0030: 00 03 00 00 00 01 00 01 00 00 01 1A 00 05 00 00 4番目 0040: 00 01 00 00 00 AA 01 1B 00 05 00 00 00 01 00 00 5番目のIFD 0050: 00 B2 01 28 00 03 00 00 00 01 00 02 00 00 01 31 6番目 7番目 0060: 00 02 00 00 00 24 00 00 00 BA 01 32 00 02 00 00 8番目 0070: 00 14 00 00 00 DE 02 13 00 03 00 00 00 01 00 02 9番目のIFD 0080: 00 00 82 98 00 02 00 00 00 0B 00 00 00 F2 87 69 10番目 11番目 0090: 00 04 00 00 00 01 00 00 00 FE 00 00 03 8C 46 55 ① ② 00A0: 4A 49 46 49 4C 4D 00 00 46 69 6E 65 50 69 78 53 ① 次のIFDへのオフセット??????????? ② 1番目のディレクトリが示すデータ 00B0: 31 50 72 6F 00 00 00 00 00 48 00 00 00 01 00 00 00C0: ..............
