「同じファイルサイズなら圧倒的にJPEG-2000は美しい」とまで言われる次世代画像フォーマット JPEG-2000 だが、実際問題どんなもんか検証してみました。
2000年12月にISO国際標準規格として採用されたJPEG-2000(ジェイペグにせん)、同じファイルを同じくらいの大きさに圧縮しても、従来のJPEGに比べてずっと良い画質になるという。ファイルサイズが軽くて画質は良くなるのだから、ブラウザなどのサポート動向によっては、ウェブ上で急速に広まる可能性もある。
IrfanViewがバージョンアップされ(Ver.3.61)、JPEG-2000画像の処理がサポートされた。さっそく実験してみた。
高画質(低圧縮)の場合は、従来のJPEGでもJPEG-2000でも、比較的、違いは感じられない。高画質ならオリジナルとの差はわずかなので、当然だろう。そこで、画質を落とした状態で比較を行った。
JPEG-2000形式の画像の拡張子としては、jp2、j2k、jpc などが用いられている。以下では jp2 に統一している。
オリジナルは、200x200、24bits の素材を用意した。(リーデさんからいただいた絵の一部分です。)そのまま掲載すると約120KBだが、ここでは参照用に高画質のJPEGをあげておく。だいたいこんな絵を圧縮するということで。実際に圧縮するのは、あくまで約120KBにあたるオリジナルのほうだ。
© M.J.Lyiede
この素材を、2通りの方法でファイルサイズ8.0KBまで圧縮、primrose.jpg と primrose.jp2 を得た。
現在のブラウザは、特殊なプラグインでも導入していない限り、.jp2 の画像を表示できない。そこで、ここでは primrose.jp2 を 256色pngに変換した primrose.png を掲載する。primrose.jp2 の見え方は、だいたいこの通りであるが、png にすると約30KBのファイルサイズになる。実際のファイルサイズは、primrose.jpg、primrose.jp2 のいずれも同じ8.0KBだが、.jp2 は普通のブラウザでは表示できないので、画質の比較をするために便宜上、png を利用しているわけである。
従来のJpeg(左)とJpeg-2000(pngとして表示)
実験のために、画質を犠牲にしてかなり圧縮率を高めている
従来のJPEGでは、輪郭線のまわりに、もやもやしたノイズが出やすかったが、JPEG-2000 では、すっきりしている。拡大して見ると分かりやすい。
研究のため画質を落とした絵をあえて拡大
従来のJPEG(左)では、例えば上にかかげたワンド(魔法の杖)の星がずいぶん荒れてしまい、原型をとどめない。JPEG-2000(右)では、比較的にすっきり、くっきり見えるのが分かる。次世代フォーマットとされるJPEG-2000のほうがやはり総合点で上のようだ。
同様の比較を写真画像について行ってみた(写真提供=久保田さん)。
下の比較では、JPEG、JPEG-2000 のいずれも同じ画像をもとに、ファイルサイズを3.6KBに圧縮してある。ただし、JPEG-2000 画像は、そのままでは表示できないので、フルカラーPNG(可逆圧縮)に変換してある(この変換では画質は変わらない)。
JPEG(左)とJPEG-2000, © KUBOTA
この場合も、同じファイルサイズならJPEG-2000形式のほうが画質が良いようだ。
残念ながら、そうとは言い切れない。圧縮率が低い(つまりあまりファイルサイズを落とさない)場合だと、従来のJPEGとの違いは僅かで、画質がどうこうというより、「どちらが味があるか」といった話になるだろう。JPEG-2000 では、一様な範囲に不規則に散らばっている小さな「ノイズ」は、周囲と平滑化してデータを単純化するようになっているようだ。もちろん、こうした処理結果がすばらしく効果的である場合も多いと思う。しかし、ごつごつ、ざらざらしたテクスチャーの場合、それを平滑化して良いのは本当に意味のないノイズのときだけだ。例えば人間の肌や樹皮のようなテクスチャーは、安易に平滑化すると不自然な感じがして、「画像心理モデル」において違和感を引き起こす。
他方、背景のかべに不規則にくっついているしみやほこりのようなものなら、本質的でない成分として平滑化しても心理的に問題ない。
要するに、JPEG-2000 のアルゴリズム自体の問題というより、その圧縮結果で印象が変わる部分が、人間心理にとって些末な細部であるか、けっこう重要な部分であるか、という問題だ。アルゴリズムからみればどちらも「平たい平面上に不規則に散らばるノイズ」なのだが、そのうちあるものは人間にとって「意味」があり、またあるものは人間にとっても無意味で除去してかまわない。
JPEG(左)とJPEG-2000(高画質JPEGとして表示)
この場合、JPEG-2000 だと顔の肌が不自然に平滑化されており、従来のJPEG(左)のほうがオリジナルのテクスチャに近い。「画像心理モデル」では、かえって従来の圧縮のほうが迫力が感じられるだろう。もっとも、帽子の上部の輪郭をみると、従来のJPEGではモヤモヤしたノイズが発生しており、やはりJPEG-2000のほうがスッキリしている。
多くの場合、JPEG-2000はJPEGより優れた画像圧縮であるが、つねにそうだとは限らない。また、当分のあいだ、JPEG-2000形式の画像を使ってもブラウザがそれに対応していなかったり、そもそもサーバがこの形式のmimeタイプをサポートしてないかもしれない。
記事中ではファイルサイズの関係などで、近似的な画像を使用しました。以下のアーカイブには、記事のもとになっている jpeg-2000 形式のファイルそのもの(通常のブラウザでは表示できません)、および、この jpeg-2000 形式のファイルを可逆変換して作ったPNG画像などが収録されています。このPNG画像はファイルサイズは大きくなってしまいますが、jpeg-2000 が実際にどのように見えるかを正確に表しています。
jpeg2000-test.zip(465KB)