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

(xii) GrayResponseUnit

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

GrayResponseCurve(選択タグ、後述)の、フォトメトリック単位を作るための10の負の指数を表すコードで、以下のような種類があります。

(xiii) GrayResponseCurve

オフセット内容(バイト数)
0タグ(2)
固定値0123H(291)
2データの型(2)
SHORT
4カウントフィールド(4)
BitsPerSample
8データポインタ(4)
データフィールドへのポインタ
            ↓
グレースケール補正テーブル
オフセット内容(バイト数)
0フォトメトリック曲線反応値(2)
::
:フォトメトリック曲線反応値(2)

通常、入力光の輝度変化に対するスキャナやビデオのセンサーの反応は、厳密には直線ではありません。 またディスプレイの出力光も、ピクセルの輝度値の変化に対して直線的に反応するわけではなく、しかもその非直線性がスキャナなどの画像入力デバイスとは異なるのが普通です。 そのため、実際の入力光の変化と出力光の変化、つまり元の画像のコントラスト(明暗の差)と、出力画像のコントラストの間にズレが生じてしまうことがあります。

そこで普通は、入力値x(画像入力デバイスの場合は入力光、出力デバイスの場合は入力輝度値)の変化に対する、出力値y(画像入力デバイスの場合は出力輝度値、出力デバイスの場合は出力光)の変化をy=xγという指数曲線で近似し、出力値の補正に利用します。 この曲線を「フォトメトリック曲線」といい、曲線の指数係数を「γ(ガンマ)値」と呼びます。 通常、γ値は各デバイスに固有の特性値です。

スキャナ等の画像入力デバイスのγ値と、ディスプレイ等の画像出力デバイスのγ値をかけた値が1になれば、元の画像を忠実に再現できることになります。 例えばスキャナのγ値が0.5で、ディスプレイのγ値が2ならばシステム全体のγ値は1となり、理論上は元の画像を忠実に再現できることになります。

入力デバイス:yin=xin(γin)
出力デバイス:yout=xout(γout)=(yin)(γout)={xin(γin)}γout=xin(γin×γout)=xin0.5×2=xin1=xin
フォトメトリック曲線

画像入力デバイスと画像出力デバイスのγ値をかけたものが1にならない場合は、入力と出力の途中で値を変換し、システム全体のガンマ値が1になるように補正してやる必要があります。 これを「ガンマ変換」あるいは「ガンマ補正」といいます。

ところが、中にはデバイスのフォトメトリック曲線がこの指数曲線では近似しきれないものもあります。 そんな場合には、画像入力デバイスのフォトメトリック曲線を実測値を用いてグラフ化し、その実際のフォトメトリック曲線を利用して補正を行うこともあります。 このGrayResponseCurveは、そのフォトメトリック曲線をグレースケール補正テーブルとして記録したもので、ピクセルの最低輝度MinSampleValue(普通は0)から、最高輝度MaxSampleValue(普通は2BitsPerSample−1)までの、各輝度に対する反応値を保存しています。

慣習的に、反応値は10-1(0.1)から10-5(0.00001)の範囲の値をとり、この反応値の負の指数単位はGrayResponseUnitにコード化されて記録されます。

(xiv) DateTime

オフセット内容(バイト数)
0タグ(2)
固定値0132H(306)
2データの型(2)
ASCII
4カウントフィールド(4)
固定値20
8データポインタ
データフィールドへのポインタ
              ↓
タイムスタンプ
オフセット内容(バイト数)
0ASCIIテキスト文字によるタイムスタンプ(20)

画像のタイムスタンプを、「YYYY:MM:DD HH:MM:SS」という形式のASCIIテキスト文字で表したものです。 タイムスタンプの後にヌル文字が付加されますので、全体の文字数は20文字となります。

(xv) Predictor

オフセット内容(バイト数)
0タグ(2)
固定値013DH(317)
2データの型(2)
SHORT
4カウントフィールド(4)
8データフィールド(4)
整数コード1,2

イメージデータの色変化に一定の傾向がある場合、ビットマップイメージデータそのものを圧縮するよりも、イメージデータを隣のピクセルからの輝度の変化(差分)に変換し、それを圧縮する方が効率良く圧縮できることがあります。 このタグはその差分法の種類を表すもので、以下のような種類があります。

なおRGBダイレクトカラーモデルの場合、PlannerConfigurationの種類にかかわらず、差分は単原色内で取られ、色をまたがっては取られません。 またこのタグが省略された場合のデフォールト値はコード1です。

(xvi) ExtraSamples

オフセット内容(バイト数)
0タグ(2)
固定値0152H(338)
2データの型(2)
SHORT
4カウントフィールド(4)
余分なイメージプレーン数
8データフィールド(4)
整数コード0-2

通常、SamplePerPixelの値は、イメージデータがモノクロモデルあるいはカラーマップモデルの場合には1、ダイレクトモデルの場合は3ですが、この値が通常よりも大きく余分なデータが存在する場合があります。 ExtraSampleはその余分なデータの種類を表すもので、以下のような種類があります。

(4) 画像関連データ・カラーマップ・イメージデータ

IFDエントリの最後のフィールド(4バイト分)に入りきらないデータは、通常IFDの直後に保存され、最後のフィールドはそのデータフィールドのオフセット値を保存したデータポインタとなります。 それらIFDの直後に保存されるデータは、オプションの画像関連データとカラーマップです。 そしてその後に、ビットマップイメージデータがストリップに分割されて保存されます。 それらの保存形式は前の節で関連するタグと一緒に解説しましたので、再度の解説は省きます。