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