インターネット時代の
画像圧縮を考えながら
adobe (2).gif (30034 バイト)
Adobe ImageReady
を使う


片岡 宏仁

Internetでホームページを作成しようと考えていませんか?WWWのサーバーが立ち上がりはじめた頃のホームページは非常に質素だったものです.しかし,最近の商用サイトでは,本格的なグラフィックデザイナを投入して,非常に芸術的なホームページを提供しています.質の高いグラフィックはそのサイトの信用も左右する影響力を持つものです.これからホームページを提供しようとお考えならば,質の高いホームページをたくさん見て,目を肥やしておくことが必要だと思います.

画像圧縮を考える.‐予備知識…

● Internetのスピード

 Internetで利用する画像圧縮において,はじめに気にしなければならないものがあります.それは,データを送るスピードがハードディスクなどに比べ,猛烈に遅いことです.つまり,Webブラウザなどに文字や画像が表示されるまでにかなりの時間がかかるということです.ですから,世界中の人から快適に見てもらうためには,できるだけサイズを小さくする必要があるのです.  特に,ホームページを華麗に装飾してくれている画像は,文字情報に比べ,たいてい数千倍から数万倍の大きさがあるため,コンピュータの世界では圧縮という技法を使い,データを小さくします.時代が進んで,Internetが今のハードディスク並みのスピードになれば,画像を圧縮するという行為自体は必要なくなるのかもしれませんが….

● 画像の品質は何で決まる?

 Internetのホームページで標準的に利用されている画像フォーマットはGIF,JPEGなどと呼ばれる圧縮画像です.圧縮という言葉を初めて聞く人は,写真のデータって「高野豆腐」や「干し椎茸」のように乾かして体積を減らしたり,水にさらして戻したりできるものなの?と単純な質問が返ってきます.
 確かに,質問されるとおりです.本来,100%の品質を期待するのであれば,画像の圧縮などという行為はやってはいけないことなのです.どんなに素晴らしい方法で処理したとしても,インターネットで使われるGIF,JPEGなどと呼ばれる高い圧縮率が期待できるファイルフォーマットを利用すれば,画像データは劣化してしまうのです.

● 画像圧縮のボーダーライン

 しかし,人間の視覚は品質よりも表示されている中身に支配的です.どんなに圧縮して劣化したとしても,伝わる内容がしっかりしていれば,それは正しい圧縮法なのです.  たとえば,図1の女性の写った写真があった場合,表情やその撮影した風景の臨場感をどれだけ残してくれているのかが気になるはずです※.
 映像は思ったように表示されていれば,大満足.その写真をしばらく眺めて悦に浸ることができるでしょう.  ところが,思ったように表示されていなかった場合は,どうしてなのかと大抵の人が考えて込んでしまいます.ここで初めて,画像の解像度が足りない,色の再現性が悪いなどといった画質に対する問題を気にすることになるのです.ですから,画像の圧縮はその手法のエレガントさを語るよりも,その手段を使って,どれだけ満足できるかが重要なのです.このことが画像圧縮のボーダーラインなのです.

非可逆圧縮とパレッタライズ画像

● 非可逆圧縮

 先程も少し触れましたが,デジタルデータの圧縮には二つ方法があります.完全に元へ戻る圧縮である可逆圧縮と,元に戻らない非可逆圧縮です.可逆圧縮とは通常,完全に元のデータに戻る圧縮です.
 ところが,画像などのファイルは,図2にあるように可逆圧縮では大幅にファイルサイズを小さくすることができません.そこで,着目されたのが「画像の内容は少しぐらい変わってしまっても本来の意味が変わったりしない」というルールです.例えば,画像全体の色数が1,6777,216色から65,535色へ少なくなったとしても伝えられる意味はほとんど変わりません.これでも単純にファイルサイズは,なんと2/3ほどになります.
 この考え方は「人間の視覚の特性が鈍感な部分を利用したデータの間引き」といいます.この手法が非可逆圧縮の基本です.そのアルゴリズムをさらに巧妙に行う圧縮アルゴリズムがJPEGなのです.
 読者の方が非可逆圧縮という技術で気を付けなければならないことは,一度でも圧縮されていれば,その画像はすでに劣化しているということです.たとえば,VHSのビデオをダビングしても,オリジナルのテープ画質を超えられないのと同じことです.

圧縮の歯がゆいところ

 世の中,必ず両立しないことというものはあるもので,圧縮についても同じことがいえます.それは品質とサイズなのです.画像の品質を高く保とうとすると圧縮率を高くすることができませんし,ファイルサイズを小さくしようとして圧縮率を上げると画質が落ちます.という具合に品質とファイルサイズは相反する要素なのです.

● パレッタライズ画像

 WWW創世期にはGIF画像のみがWebブラウザでサポートされてきました.GIF画像の最大の欠点は画像に使える色数が256色に限られていることです.256色といっても絵の具のチューブのように決まった256色だけを使うのではなく,コンピュータが扱えるすべての色数である1,6777,216色から256色を選び出して使うことができるというものです.
 GIFにはGIF87,GIF89などという画像フォーマットのバージョンがあります.その名前を見ると登場した時代がわかります.表示色が256という制限は当時のパソコンの表示能力が乏しく,256色が表示できるビデオカードが一般的だったためです.このことからわかるように,はるか昔からある画像フォーマットなのです.多分,当時の画像処理ハッカー達が自慢の処理プログラムで画像をチューニングして,利用していたのでしょう.  美しいGIFファイルを作るにはそれなりのノウハウが必要です.彼らも,まさか10年後のコンピューティング環境で一般的に利用されるとは思ってもみなかったことでしょう.また,GIFファイルは色数を減らすだけの圧縮に留まらず,LZWという特殊なアルゴリズムを使ってさらに圧縮をかけることで,ファイルサイズの削減を行っています.当時のパソコン通信は2400,4800,9600bpsという今では考えられないほど猛烈に遅いスピードで利用されていたので,なるべく小さなファイルであることが通信コストを上げない唯一の方法だったわけです.

● パレット最適化と拡散ディザリング

 パレット画像が1,6777,216色中,256色を選択可能といっても,いったい,どういう基準で色を選択すればいいのでしょうか?256個の色をひとつずつ画像を見ながら手で選んでいたのではたいへんです.そこで,コンピュータに画像がどんな色を使っているのかを分析させるのです.
 もっとも使われている色を選択色,つまりパレットにすればいいのです.これがパレット最適化と呼ばれる工程です.しかしこのままでは,パレットに選ばれなかった画素の色は最も近いパレット色になってしまい,ひどい状態になることがあります(図3).
 特に影響が著しいのは,なだらかな階調の画像で,パレット化することによって,階段状の縞模様が出てしまいます.この模様をマッハバンド(擬輪郭)と呼びます.人の顔やCG画像は滑らかな階調変化が表現されていないと不自然に感じられるので,これらを256色に減色する際には注意深く処理する必要があります.人の顔やCGの画像は大抵,JPEGにするのが普通ですが,アニメーションGIFにしなければならないといった理由で,パレット画像にしなければならない場合がよくあります.なんらかの回避策が必要です.
 どうしたらよいのでしょう?読者の方には,よい手だてが想像できますか?実はここで登場するのが,ディザリングと呼ばれるテクニックなのです.ディザリングは画像処理業界では疑似階調表現などと訳されています.
 ディザリングの手法としては,組織ディザ〔図4(a)〕,ランダムディザなどさまざまな手法が考案されましたが,最近では拡散ディザ〔図4(b)〕に収束しています.頭の中では256色に減色された画像で発生してしまったマッハバンドの間を疑似階調で滑らかにつないでいると考えれば,理解しやすいのではないでしょうか?  この手法は身近なところで使われています.実はインクジェットプリンタに採用されているのです.図4(b)にあるようなあのザラザラっとした点を打つアルゴリズムです.拡散ディザのアルゴリズム解説は,この記事1回分にもなるのでやめておきますが….
 拡散ディザは一見,無秩序に点が打たれているように見えますが,離れてみるとなだらかな階調を表現し...

以下略


copyright 1999 片岡 宏仁