新聞電子化とJPEG 2000 その5

本日のお題画像

    0.1     0.2     0.5     1.0

引き続き、NDNP(全米電子新聞プロジェクト*1)におけるJPEG2000の詳細を見てみます。概要は、http://d.hatena.ne.jp/denshikA/20091007をご覧ください。


しかし、そろそろ、飽きてきた頃でしょうから、あと2回でJPEG2000シリーズはやめますので、もうちょっとだけお付き合いください。もう峠は過ぎましたので、後は下り坂ですよ。


本日は、項目11、項目14を見て行きます。それ以外は、見てみぬふりです。


項目11と項目14は親戚なので、一緒に片付けましょう。

11.The JPEG 2000 will have 25 quality layers. The bits per pixel for each quality layer will be: 1,0.84,0.7,0.6,0.5,0.4,0.35,0.3,0.25,0.21,0.18,0.15,0.125,0.1,0.088,0.07,0.0625,0.05,0.04419,0.03716,0.03125,0.025,0.0221,0.01858,0.015625.


14.The JPEG 2000 will be compressed so that it is about one-eighth of the TIFF or 1 bit per pixel.

というわけで、「レイヤーの数は25個で、それぞれ、画質を[数字の羅列のよう]にしてください。そして、ファイルのサイズは、元のTIFFの1/8サイズか、ビットレートで1にしてください」という指示です。


項目11は、ごちゃごちゃと、数字が羅列されているので、ビビりがちですが、ビットレートというのが理解できれば、すぱっとわかります。なので、ビットレートというのをさらっと説明しましょう。話は簡単で、ピクセル数に対して、どんくらいのファイルサイズなのか、ということです*2

例えば、縦400ピクセル横600ピクセルの画像があったとすると、画像としては、(400x600=)240,000ピクセルとなります。仮にこの画像が、15キロバイトのサイズだっとすると、15キロバイト≒15,000バイト≒(15,000x8=)120,000ビットとなりますので、ビットレートは、(120,000÷240,000=)0.5となり、ビットレートは0.5ということになります。

私たちは普通、バイト単位で話をしているのですが、このビットレートを計算するときは、ビット単位(バイトの8倍)での話になりますので、そこのところを気をつければ、問題ありません。


一般的に、「ビットレートは、大きいほど、画質が良い」はずです。念のため、実際の画像で確認してみましょう。

ビットレート     0.1     0.2     0.5     1.0
画像

おそらく、0.5と1.0の間の違いが分かりにくいかもしれませんが、よーく見てみてください。


さて、ビットレートを整理したところで、項目14をやっつけましょう。項目14は、

ファイルのサイズは、元のTIFFの1/8サイズか、ビットレートで1にしてください

ということですが、(http://d.hatena.ne.jp/denshikA/20091008を思い出していただいて、)元のファイルというのが、コンポーネントが一つのグレースケールの画像であることを考えると、たいしたことではないはずです。


TIFFのファイルサイズというのは、計算が非常に簡単で、縦ピクセル数x横ピクセル数xビット深度(色の段階)となっていて、グレースケールのビット深度は、8となりますので、

縦x横x8

です。そのサイズを、1/8にしろ、というのですから、

縦x横x1

ですね。先ほど、ビットレートのところで確認したとおり、これは、別名、「ビットレートが1」ですね。


さて、ここで項目11のレイヤーに戻りましょう。


JPEG2000では、レイヤーというものを設定できるのですが、Photoshopとかのレイヤーとは意味が違って、各レイヤーには、画質の異なる「同一画像」が収納されます。その異なる画質を指定するのに、ビットレートを使い、それをずらずらと並べるのです。


今回のケースですと、レイヤーの数は25個だと言っているので、25個の数字が、大きい順にだらだらと連なっているのです。


では、なぜレイヤーを指定するのか、ということを理解するために、前々々回の「プログレッション(progression)」を思い出してください。http://d.hatena.ne.jp/denshikA/20091009

Lが先頭に来る「プログレッション順序(progression order)」を選択すると、こういう感じになります。



つまり、画質の良くないもの(低ビットレート、小さいファイルサイズ)から、画質の良いもの(高ビットレート、大きいファイルサイズ)までを、順番に並べておきます。それを受け取った順番に表示していけば、

ボケた画像から、だんだんとくっきりして、本来の画像に辿りつく

というプログレッションが実現できる、というわけです。


というわけで、今回は、レイヤーに注目してみたのですが、レイヤーというのは、名称が良くない*3。レイヤーと聞くと、

 



http://www2s.biglobe.ne.jp/~mix/cm3_help/help_layer.htm

こんなものを連想してしまいます。ところが、JPEG2000で言うところのレイヤーというのは、こういう「物理的な積み重ね」ではなくて、「切れば切るほど、画質が鮮明になっていく特殊な金太郎飴」みたいなものです。なので、レイヤーという言葉にダマされないようにしてください。


普通の金太郎飴 http://www.kintarou.co.jp/standard/kintaro.shtml

*1:http://d.hatena.ne.jp/denshikA/20090827参照

*2:ビットレートというのは、いろんな場面で出てきます。転送速度や、動画の画質に関してなど。今回は、静止画のビットレートですので、混乱しないようにしてくださいね。

*3:と言っても、代替案がないので、申し訳ない