JPEG2000実習 レイヤーの確認編 (OPJViewerの登場)

本日のお題:そもそも、本当にレイヤーができているのか、検査しましょう


さて、前々回から、中級編が開始しています*1。初級編は単に変換をしてきたのですが、中級編では変換後のファイルを検査して、変換をコントロールしていっています。すでに、「OpenJPEGを使って変換できるもんね」という方が対象です。まだ、よく分からない方は、http://d.hatena.ne.jp/denshikA/20100602からスタートしてみてください。


前々回の復習ですが、もし仮に、「PSNRが30、31、32、33、34、35のレイヤーで構成されたJP2を作成せよ」という指示があった場合、

C:\image_to_j2k.exe -i C:\test.tif -o C:\aaaaaa.jp2 -q 30,31,32,33,34,35

というのでOKでしたね。もし忘れてしまった方は、http://d.hatena.ne.jp/denshikA/20100611で復習してから進んでください。


でも、これで本当に6個のレイヤーができているのでしょうか?
他人の話を鵜呑みにしてはいけません。いつでも、自分で確かめてみましょう。


さっそく本日の秘密兵器をご紹介しましょう。以下のOpenJPEGファミリーのビューワをダウンロードして、いつものごとく、Cドライブの直下に置いてみてください。

OPJViewer.exe 直

Cドライブ直下は、こんな感じになってますかね?


つぎに、前々回説明したように、「PSNRが30、31、32、33、34、35のレイヤーで構成されたJP2」を作成してみましょう。

C:\image_to_j2k.exe -i C:\test.tif -o C:\aaaaaa.jp2 -q 30,31,32,33,34,35

こんな感じで、188KBのJP2ができましたね。


ここまで来たら、aaaaaa.jp2をドラッグして、OPJViewer.exeの上に投下(ドロップ)してみましょう。


すると、こんな画面が出てきますね。

赤丸の部分に注目していきます。


aaaaaa.jpと書かれた左側に、「+」マークがありますので、そこをクリックして、展開してみてください。

各項目の細かい話は、そのうちいたしますので、とりあえず、先へビュンビュン行きましょう。


次に、「003: jp2c (0x6A703263)」の左側の「+」をクリックして、展開してみてください。


さらに、「Codestream」の左側の「+」をクリックして、展開してみてください。


最後に、「002: COD (0xFF52)」の左側の「+」をクリックして、展開してみると、やっと出てきました。下図の矢印部分に注目してください。「6 Layers(レイヤー6つ)」ですよー、とおしえてくれています。


確かめるために、レイヤー1つのものでもチェックして見ましょう。

C:\image_to_j2k.exe -i C:\test.tif -o C:\lossless.jp2

こんな感じの変換をすれば、こうなりますね。


さっそく、lossless.jp2をドラッグして、今、開いているOPJViewerの上にドロップしてください。


先ほどと同じように、「lossless.jp2」>「003: jp2c (0x6A703263)」>「Codestream」>「002: COD (0xFF52)」に行ってみると、

ほらね、「1 Layers*2(レイヤー1つ)」になってます。


というわけで、OpenJPEGで、レイヤーの個数を指定した場合、ちゃんと、その数だけレイヤーができていることを確認しました。ここで使ったのは、OPJViewerという、OpenJPEGの一味としてフリーで配布されているものです。今後、このビューワを使って、細部をチェックしていく予定です。

*1:なぜ私は、オンラインで、JPEG2000の講習をしてるんでしょうか?

*2:複数のsがついてますが・・・