トップへ
田村研究室

マルチメディア論および演習

2009年度

2009
6/8

画像のファイル形式と画像圧縮

ビットマップ画像の種類

それぞれの画素ごとに,「明るさ」や「色」といった情報を持たせることで,その集合体としての画像を定義している.画素にどのような情報を持たせるかによって画像の種類が決定される.

画像の種類には,大きく次の種類がある.

モノクロ画像二値画像(白黒画像)白と黒のどちらか
モノクロ画像グレースケール画像黒を0,白を255として中間段階の灰色(1〜254)の256階調
カラー画像インデックスカラー画像(8bit)色0番から色255番の256色.各番号がどのような色かは「パレット」に保存しておく.
カラー画像ハイカラー画像(15bit)RGB各5bit(0から31まで表現可能)
カラー画像フルカラー(トゥルーカラー)画像 (24bit)RGB各8bit(0から255まで表現可能)

画像の情報量と画像圧縮

デジタル画像を,ファイルとして保存するには画素ごとのデータを決められた順番で格納することで行う.

例えば,512画素×512画素のフルカラー画像があった場合,その情報量は次のようになる.

画像の情報量 =  画素の数 × 一画素分の情報量
             = (512×512)× 24 bit
             = (512×512)× 3 byte
             = 786432 byte
             = 768 Kbyte

現代のコンピュータでは,この程度の情報量は問題とはならないが,仮にこのような画像が1000枚,10000枚あったとしたら巨大な情報量となってしまう.このようにデータ量が多くなるため画像を圧縮して保存することがよく行われる.圧縮については前に述べたが,情報の格納の仕方を工夫することで,同じ情報を表現しても,より小さい容量に収められるようにすることで,ファイルのサイズを小さくする技術である.画像データを圧縮することを特に画像圧縮と呼ぶ.

画像に対する圧縮方法にはいくつもの種類があるが,一番単純な方法では可逆圧縮のランレングス圧縮などがある.その考え方は次のようなものである. 例えば,次のような色を持った画素の並びがあったとき,それを同じ色が何回現れたか記録するように変換する.(「連続した色」(run)の繰り返しの「長 さ」(length)を記録する.)

 「赤赤赤青青青青緑緑」  → 「赤3青4緑2」

変換後の方がより短い表現となっている.これを利用して画像情報を格納すればサイズを小さくできる.(※実際には圧縮率を高めるためにさらにいろいろ工夫が必要である.)

一方,画像に対する非可逆圧縮の方法としては,人間の視覚特性に基づき,元の画像から人間の目にとって目立たない情報を省略したり,画像に圧縮しやすいように修整を加えて圧縮を行う方法がある.

元の画像次第ではあるが,画像を圧縮すると一般には可逆圧縮で1/2程度,非可逆圧縮で1/10程度に圧縮することができる.

画像のファイル形式

画素の保存順の決め方や圧縮方法の種類などで様々な画像ファイル形式が存在する.代表的なものは次の通り.

PPM非圧縮フルカラーUnix系でよく使われる非 圧縮形式
PGM非圧縮256色グレイカラーUnix系でよく使われる非 圧縮形式
PBM非圧縮二値(白黒)Unix系でよく使われる非 圧縮形式
BMP非圧縮フルカラーWindows標準の形式
GIF可逆圧縮256色カラーWeb上でよく使わ れる形式.256色限定だが,可逆圧縮のため綺麗な画像,漫画・イラスト向き
PNG可逆圧縮フルカラー可逆圧縮なため, 画像も綺麗.漫画・イラストから写真までなんでもOK.ただしファイル容量が 大きい.
JPG非可逆圧縮フルカラー高圧縮でファイルサイズが小さい,写真向き.ただし非可逆圧縮なため圧縮をかける度に画像が荒れることになる.特に漫画・イラストに使用するとすごく汚くなる.色合いが変化する点も注意

一般にはJPG形式がよく用いられるものの,画像処理に用いる場合,処理結果を保存するには不向きである.これはJPGが非可逆圧縮形式のため,保 存するたびに画像が汚くなっていくためである.つまり画像処理した中間結果の画像を保存すると,元の画像よりも画質が悪くなる.最終結果をレポートや論文 に載せるときにはJPG形式に変換するのも構わないが,画像処理の途中では非圧縮形式か,可逆圧縮の形式を用いた方が適切である.

JPEG圧縮方式

JPEGによる画像圧縮の考え方を簡単にまとめる.JPEGファイル形式は,実はコンテナフォーマットでありいくつかの圧縮形式や無圧縮形式のうち ひとつを選択してデータを格納することができる.ただし実際にはDCTによる圧縮形式が利用されることがほとんどである.ここではDCTによる圧縮を説明 する.