東京工芸大学 工学部  電子機械学科/システム電子情報学科 4年 前期 

CG解析 第4、5回

http://fujiki.tv/t-kougei/CG-kaiseki/CG-4.html
目次ページへ http://fujiki.tv/t-kougei/CG-kaiseki/index.html
 2013.5.7  
2013.5.14 
藤木 文彦
 


★このテキストは、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)










 

inserted by FC2 system