ホーム ] わが家のPC環境 ] 64ビットPC自作 ] 地デジ ] PC音楽システム ] PC写真システム ] Exifファイル入門 ]

上へ
APP1領域
IFD領域
Exif実例

EXIFファイル入門

IFD領域

最終更新日:2006/10/25

●IFDの基本形式

IFDは、頭にそのIFDに存在する要素(ディレクトリエントリ)の数があり、その数だけディレクトリエントリが続く。最後に、4バイトの次のIFDへのリンクポインタがある。リンクポインタが0の場合は、次のIFDがないことを示す。必要なら、そのIFDのデータ領域が続く。

ディレクトリエントリ

この部分が、情報部分となる。合計12バイトで以下の構造を持っている。

TTTT FFFF NNNNNNNN DDDDDDDD

TTTT         :UInt16で表されたタグ番号で、規格で定義されている
FFFF         :UInt16で表されたデータ形式で、1〜12まである(下表参照)
NNNNNNNN:UInt32で表されたデータ数(バイト数でなはく、データの個数)
DDDDDDDD:4バイトで表されたデータで、データが4バイト以下ならデータそのもの。
        4バイトを超える場合は、データへのポインタとなる。ポインタはTiffヘッダから数えた値となる。

Value Format Bytes
1 unsigned byte(UInt8、バイト) 1
2 ascii strings 1
3 unsigned short(UInt16) 2
4 unsigned long(UInt32) 4
5 unsigned rational(UInt32分数) 8
6 signed byte 1
7 undefined(任意) 1
8 signed short(Int16) 2
9 signed long(Int32) 4
10 signed rational(Int32分数) 8
11 single float 4
12 double float 8

   表 EXIFで定義されたデータ形式

グレーの部分はEXIFでは使用されない形式。
Bytes数は、その形式のデータ1個当りの長さ。
複数のデータがある場合もある。F=5でN=4では、8×4で、32バイトのデータとなる。
ascii stringはnull(h00)で終端し、nullも数に含まれる。

●IFD領域全体像

IFDには、IFD0、EXIF Sub IFD、Interoperability IFD、MakerNote IFD、IFD1などがある。全てが必ず存在するとは限らない。全てLinkまたは内部にあるTagによって手繰れるようになっている。下図参照。