新聞電子化とJPEG 2000 その6(最終回)
本日のお題画像
引き続き、NDNP(全米電子新聞プロジェクト*1)におけるJPEG2000の詳細を見てみます。概要は、http://d.hatena.ne.jp/denshikA/20091007をご覧ください。
本日は、ズバッと項目15を見て行きます。
項目15は、
15. The JPEG 2000 will use 1024x1024 tiles.
ということで、「タイルのサイズを1024x1024にしてください」ということです。
大きな画像をそのままJPEG2000変換すると、効率が悪いので、分割して変換していく場合があります。そのとき、分割していく単位となるのが、タイルです。タイル設定を大きくしすぎると、効率が悪くなるのですが、小さくしすぎると、画像にモザイクが現れます。
さっそく見てみましょう。
左の画像が、タイルを64x64に設定して、右の画像が128x128に設定したものです。
想像していただければ分かると思いますが、タイルをどんどん大きくすれば、
このようにモザイクが消えます。
どうしてこんなことが起きるのかというと、タイル設定をすると、それぞれのタイルを、あたかも個別の画像であるかのように、JPEG2000変換していくからです。なので、隣のタイルどうしがうまくつながらない可能性があるわけです。
しかし、よっぽど大きな画像*1をJPEG2000変換する場合を除いて、タイルを設定しないほうが良いでしょう。ちなみに、「タイルを設定しない」ことを
タイル構成を、単一構成とする
と言ってみたり、
タイルのサイズを、画像のサイズと同じにする
と言ってみたりすることがあるので、言葉に惑わされず、単に「モザイクがイヤなのね」と考えましょう。
これでほぼ役者が揃ったので、最後に、http://d.hatena.ne.jp/denshikA/20091007で提示した
kdu_compress -i YOURINPUT.pgm -o YOUROUTPUT.jp2 -rate 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.075,0.0625,0.05,0.0 4419,0.03716,0.03125,0.025,0.0221,0.01858,0.015625 Clevels=6 Stiles={1024,1024} Corder=RLCP -jp2_box YOURMETADATA.xml
という「NDNP推奨の変換コマンド」について、確認してみましょう。非常にマニア度が高いですが、これまでのシリーズを読んでいただいた方には、ご理解いただける範囲であると思います。
kdu_compress -i YOURINPUT.pgm -o YOUROUTPUT.jp2
は、kakaduというプログラムの呼び出しです。YOURINPUT.pgmが変換前のファイルで、YOUROUTPUT.jp2が変換後のファイル名です。
以降が、各設定になりますが、
-rate 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.075,0.0625,0.05,0.0 4419,0.03716,0.03125,0.025,0.0221,0.01858,0.015625
は、http://d.hatena.ne.jp/denshikA/20091014で見たレイヤー設定です。
続いて、
Clevels=6
は、http://d.hatena.ne.jp/denshikA/20091013で見た分解レベル設定です。
続いて、
Stiles={1024,1024}
は、今回登場のタイルです。
続いて、
Corder=RLCP
は、http://d.hatena.ne.jp/denshikA/20091009で見たプログレッション設定です。
続いて、
-jp2_box YOURMETADATA.xml
は、初登場ですが、メタデータの埋め込みです*2。JPEG2000というのは、画像に関する情報(メタデータ)を、画像ファイルの中に埋め込んでおくことができます。
というわけで、いかがでしょうか?
10月7日の「その1」の段階で、
kdu_compress -i YOURINPUT.pgm -o YOUROUTPUT.jp2 -rate 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.075,0.0625,0.05,0.0 4419,0.03716,0.03125,0.025,0.0221,0.01858,0.015625 Clevels=6 Stiles={1024,1024} Corder=RLCP -jp2_box YOURMETADATA.xml
を見たときとは違って、少しは意味ある文字に見えてきましたか?
これで、JPEG2000シリーズは、とりあえず終わりですが、またチャンスをうかがって、チョコチョコと話題にしていきたいと思います。