東京工芸大学 工学部 電子機械学科/システム電子情報学科 4年 前期 CG解析 第4、5回
|
★このテキストは、2週間分です。
画像・映像の圧縮(可逆圧縮・不可逆圧縮) |
画像・映像をそのままのデータで記録すると、膨大なデータが必要となる。
例えば、画像1枚を記録する場合を考えよう。
1枚の画像が 640×480 ドットからなるとする。
1ドットがRGB各1バイト、計3バイトであるとすると、そのまま記録すると、
640×480×3 = ______ バイト必要となる。●提出
現在のカメラのように、 300万画素、1000万画素、という数の画素数になると、情報量は、さらに増大し、そのまま記録するのは困難である。
これを、小さくするために、「圧縮」という技術が用いられる。
圧縮にはいろいろな方法があり、それぞれの特徴があるが、おおきく、2通りの方法がある。●提出
可逆圧縮: 圧縮した画像を、元の画像に完全に戻すことができる。( lossless 圧縮 )
画像だけでなく、プログラムのように、1バイトでも違うと困るものの圧縮に用いる。
何度圧縮、解凍(元に戻すこと)を繰り返しても、劣化しない。
ZIP,LHA、LZHなど。
不可逆圧縮: 圧縮した画像を、完全には元に戻せない。 ( kissy 圧縮 )
大体、元通りに見えるように戻ればよいような画像・映像の圧縮に用いられ、画質を落とせば、
圧縮率を上げることが出来るが、プログラムのように、完全に元に戻す必要があるものには使えない。
圧縮、解凍を繰り返すと、劣化する。圧縮すれば
JPEG(写真),MP3(音楽)、MPEG(映像)など。
最近のディジタルカメラには、1000万画素のような物があるが、記録されるデータは、4MB(400万バイト)程度となる物が多い。
この場合実際のデータの、何分の一に圧縮されているか。●提出
MH圧縮(FAXの圧縮法) |
白い画面に、文字や絵が、少しだけ描いてある様な画像の圧縮を、行うときには、MH圧縮、という方法を用います。
この方法は、白黒画像の圧縮に用いられ、しろを0、黒を1として表したとき、画像の多くの部分が、連続した0や1のでーたから成り立つような場合の圧縮に適しています。
例えば、次のような図形を送ります。
図形データ 変換数値データ
00000000 11100000 11100000 00011000 00011000 00000000 |
上のデータを並べると、次のようになります。
000000001110000011100000000110000001100000000000
このデータを見ると分かるように、0,1が、連続して現れる部分がほとんどです。これを、連続して、0,1の現れる数で、次のように表します。
0×8
1×3
0×5
1×3
0×8
1×2
0×6
1×2
0×11
さらに、0,1が、交互に現れることを利用すると、0,1を省略して、
8,3,5,3,8,2,6,2,11
となります。
随分小さくなりましたね。
このデータを、上の反対の方法で元に戻してやることで、図形が現れます。
【注意】実際のMH圧縮は、文字のようなデータ(黒い部分が細くて少ない)を圧縮するために、もっと、複雑な変換表を用いてデータを圧縮する。
この圧縮法は、白黒2色の圧縮となるので、FAXのような、背景が白いものに書かれた、文字データを送るのに適しているが、写真の様に、一面に各種の色が載っているものの圧縮には、適さない。●提出
JPEG画像圧縮 |
1枚の画像を圧縮する方法として、JPEGという方法がある。
この方法は、画像を、濃度変化に応じた信号としたときに、その、信号を、「フーリエ変換」という技術を用いて、様々な周波数の基準波形の合成として表す方法であるが、詳しい理論は省略する。
「フーリエ変換」とは、どのような波形も、正弦波(任意の波形で可)の合成で表せる、という方法である。
具体的には、白黒の画像の変化のパターンが、どのようなパターンで現れるか、ということを分析して、その変化パターンを一覧として、圧縮する方法である。
さらに、それを、画像のパターンや、人間の目の特性を利用して、「正確に復元」しなくても、大まかに伝えれば良いことにして、データ量を減らすことができる。
(1)大抵の画像は、白黒の変化は大まかであり、細かな変化のある場所は少ない。
(2)人間の目は、細かなパターンの変化に関しては、鈍感である。
ということを利用して、情報量を減らすことができる。
近くで見た場合(壁のタイル) 離れた見た場合
(A)パターンのような大まかな変化の画像のほうが、(B)パターンのような細かい変化より、出現頻度が高い
白黒の急激な変化がある映像でも、(B)パターンと(C)パターンの違いは、目で見ても解らないから、細かなパターン変化では明るさ変化を大まかにしても、(ごまかしても)見た目には、解らない。
こうした特性を利用して、
DCT(離散コサイン変換)という方法で、画像を圧縮することができる。
フーリエ変換とは |
画像圧縮の基本技術として、フーリエ変換という技術について解説する。
音声などの信号は、波で表させる。一番単純な波としては、cos波(正弦波)がある。
cos波には、各種の振動数のものがある。
2つのcos波を重ねると、合成した波形ができる。
この合成法を変えることで、いろいろな形の波をつくることができる。
(音楽シンセサイザーの一部には、この方法で人工的に音を合成しているものがある。)
信じがたい話かも知れないが、以下の図のように、四角い波(方形波)もcos波の合成によって、作り出すことができる。また、あらゆる音は、cos波を適切な比率で合成することで表現できる。
■cos波合成図面 |
音だけではなく、画像も、縦横の成分を持った波と考えられる。
たとえば、次のような画像の一部をとりだすと、
横向きにいくつもの波の合成となっていることが分かります。
これを、cos波の組み合わせで表します。横4画素からなる画像は、4種類のサイン波の組み合わせで表すことができます。
画像の濃淡パターンと、周波数の対応を、グラフと絵で示すと下の右図のようになります。
cos波をうまく組み合わせることで、右図のように、明暗のはっきりした図も描くことができます。どのような波形でも、このcos波の組み合わせで表現できます。
この逆の変換をすることで、どのような波形も、cos波の組み合わせで表すことができます。
このような変換をフーリエ変換と呼びます。
フーリエ変換を使うと下図のように、絵や写真を、cos波周波数成分分布表に変換することができます。また、これを逆フーリエ変換することで、元の画像に戻すことができます。
実際は、無限に多数のcos波を組み合わせることはできませんから、8種類のcos波を組み合わせることにします。
実際の映像の変換では、映像を8×8ドットずつに分けます。
cos波の合成に関しては、以下のサイトが参考になります。
http://mars.elcom.nitech.ac.jp/java-cai/signal/furrer5.html
■画像データの圧縮 |
(a) (b) (d)
原画 → フーリエ変換 → 量子化レベル → エントロピー → 圧縮データ
(DCT) 変換 符号化
↑
(c)
画像データの復元
(e) (f)
圧縮データ → エントロピー → 逆量子化 → 逆フーリエ変換 → 復元画像
復号化
(c)の量子化とは、濃淡の数値を、圧縮することで、たとえば、
濃度 1〜10 を 1に、 濃度 11〜20 を2にする、というような圧縮形式です。元に戻すときには、 1は、1〜10の中央値である、 5 と見なして戻します。
なお、この段階を大きくすると、画像は荒くなり、細かくすると、画像は精緻になります。
エントロピー符号化とは、数値データが連続して現れるとき、頻繁に現れるパターンを短い信号に置き換えることで圧縮する方法で、たとえば、0が連続するとか、1が連続するとか、よくあるパターンが、実験的に分かっていますので、その知識に基づいて圧縮します。
(d)のデータを見てもらうと分かりますが、DCT変換後のデータは、左上に集中していて、右下側はほとんど0となっていますので、実際の圧縮では、この部分のデータを切り捨てます。
なお、多少1とか、2とかのデータが現れるのを無視することで、圧縮率が高まりますが、その反面、画像は荒くなります。(次ページの画像を参照)
部分拡大 (d) (c)