玄関コンピュータの部屋各種解説コーナーCGファイル概説

(3) タグ(tag)

必須タグの種類とデフォルト値
タグ(10進数)フィールド名デフォルト値
0100H(256)ImageWidthなし
0101H(257)ImageLengthなし
0102H(258)BitsPerSample
0103H(259)Compression
0106H(262)PhotometricInterpretationなし
0111H(273)StripOffsetsなし
0116H(278)RowsPerStrip(232 - 1)
0117H(279)StripByteCountsなし
011AH(282)XResolusionなし
011BH(283)YResolusionなし
0128H(296)ResolutionUnit
0140H(320)ColorMapなし

ベースラインTIFFのタグには必須のものとそうでない選択のものとがあり、TIFFを扱うプログラムはそのどちらも処理できなければなりません。 原則として、必須タグはTIFFファイル中に必ず含まれる必要がありますが、データフィールドの値としてデフォールト値を用いる場合には、省略することもできます。

選択タグの種類
タグ(10進数)フィールド名
00FEH(254)NewSubfileType
0107H(263)Thresholding
0108H(264)CellWidth
0109H(265)CellLength
010AH(266)FillOrder
010EH(270)ImageDescription
010FH(271)Make
0110H(272)Model
0112H(274)Orientation
0115H(277)SamplesPerPixel
0118H(280)MinSampleValue
0119H(281)MaxSampleValue
011CH(284)PlanarConfiguration
0122H(290)GrayResponseUnit
0123H(291)GrayResponseCurve
0131H(305)Software
0132H(306)DateTime
013BH(315)Artist
013CH(316)HostComputer
0152H(338)ExtraSamples
8298H(33432)Copyright

選択タグはTIFFファイル中に存在しても存在しなくても良く、TIFFの処理プログラムはそれらのデータを使用しても使用しなくても良いことになっています。

1) 必須タグ

(i) ImageWidth

オフセット内容(バイト数)
0タグ(2)
固定値0100H(256)
2データの型(2)
SHORTまたはLONG
4カウントフィールド(4)
8データフィールド(4)
水平方向のピクセル数

イメージの水平方向の大きさ(横幅)をピクセル単位で表したものです。 データフィールドの値は、データの型がSHORTの場合は上位2バイトが有効で、下位2バイトには0がパディングされ、LONGの場合は4バイト全てが有効です。 このタグは省略することができず、デフォールト値はありません。

(ii) ImageLength

オフセット内容(バイト数)
0タグ(2)
固定値0101H(257)
2データの型(2)
SHORTまたはLONG
4カウントフィールド(4)
8データフィールド(4)
スキャンライン数

イメージの垂直方向の大きさ(高さ)を行単位で表したもので、スキャンラインの数でもあります。 データフィールドの値は、データの型がSHORTの場合は上位2バイトが有効で、下位2バイトは0がパディングされ、LONGの場合は4バイト全てが有効です。 このタグは省略することができず、デフォールト値はありません。

(iii) BitsPerSample

オフセット内容(バイト数)
0タグ(2)
固定値0102H(258)
2データの型(2)
SHORT
4カウントフィールド(4)
SamplesPerPixelの値
8データフィールドまたはデータポインタ(4)
ピクセルの深さまたは
データフィールドへのポインタ
       ↓
データフィールド
オフセット内容(バイト数)
0赤のビット数(2)
2緑のビット数(2)
4青のビット数(2)

ピクセルあたりのビット数すなわちフレームバッファの深さを表す値で、ダイレクトカラーモデルの場合はRGBごとのビット数が独立に3つの値として保存されます。 カウントフィールドの値はSamplesPerPixel(選択タグ、後述)の値でもあり、モノクロとカラーマップモデルの場合は1、ダイレクトカラーモデルの場合はRGB3種類のデータが含まれているので3となります。

このデータは2バイトのSHORT型ですので、SamplesPerPixelの値が1の場合は最後のフィールドはデータフィールドとなり、例えばモノクロの場合は1、256色カラーマップモデルの場合は8という値が入ります。 この場合、データの型がSHORTですからデータフィールドは上位2バイトが有効で、下位2バイトには0がパディングされます。 SamplesPerPixelの値が3の場合にはデータフィールドとして6バイト必要ですから、最後のフィールドには納まりきらず、別の場所(たいていはIFDの直後)に格納して、そのデータフィールドに対するポインタが最後のフィールドに入ることになります。

このタグが省略された場合のデフォールト値は1です。

(iv) Compression

オフセット内容(バイト数)
0タグ(2)
固定値0103H(259)
2データの型(2)
SHORT
4カウントフィールド(4)
8データフィールド(4)
整数コード1-6または32773

ビットマップイメージデータの圧縮法を表す整数コードで、以下のような種類があります。 このうちベースラインTIFFでサポートされているのはコード1、2、32773だけで、他の圧縮法は拡張TIFFになります。

コード5のLZW圧縮については、UNISYS社が特許を所有しているため拡張TIFF扱いになっています。 コード6のJPEG圧縮については、仕様書の内容に多少の混乱があり、JFIFのような効率的な実装が難しいのでほとんど採用されていませんでした。 このためそれを修正したものとしてコード7のJPEG圧縮−2が提唱され、現在はこちらが採用されています。 コード8のZIP圧縮はパテントフリーの可逆的圧縮法で、LZW圧縮に特許の問題があるため提唱されたものです。 256色以下の画像データについては、今後はLZW圧縮の代わりにこの圧縮法が用いられるようになると思われます。

データフィールドの値は、データの型がSHORTですから上位2バイトが有効で、 下位2バイトには0がパディングされます。 このタグが省略された場合のデフォールト値は1です。

(v) PhotometricInterpretation

オフセット内容(バイト数)
0タグ(2)
固定値0106H(262)
2データの型(2)
SHORT
4カウントフィールド(4)
8データフィールド(4)
整数コード0-4

ビットマップイメージデータの種類を表すコードで、以下のような種類があります。

データフィールドの値は、データの型がSHORTですから上位2バイトが有効で、下位2バイトには0がパディングされます。 このタグは省略することができず、デフォールト値はありません。