CG解析10回

2016.6.19 藤木 文彦     

★このテキストは、2週間分です。

 画像・映像の圧縮(可逆圧縮・不可逆圧縮)

 画像・映像をそのままのデータで記録すると、膨大なデータが必要となる。
 例えば、画像1枚を記録する場合を考えよう。

 1枚の画像が 640×480 ドットからなるとする。
 1ドットがRGB各1バイト、計3バイトであるとすると、そのまま記録すると、
  640×480×3 = ______ バイト必要となる。

 現在のカメラのように、 300万画素、1000万画素、という数の画素数になると、情報量は、さらに増大し、そのまま記録するのは困難である。

 これを、小さくするために、「圧縮」という技術が用いられる。
 圧縮にはいろいろな方法があり、それぞれの特徴があるが、おおきく、2通りの方法がある。

可逆圧縮:   圧縮した画像を、元の画像に完全に戻すことができる。
          画像だけでなく、プログラムのように、1バイトでも違うと困るものの圧縮に用いる。
不可逆圧縮: 圧縮した画像を、完全には元に戻せない。
          大体、元通りに見えるように戻ればよいような画像・映像の圧縮に用いられ、画質を落とせば、
          圧縮率を上げることが出来るが、プログラムのように、完全に元に戻す必要があるものには使えない。


 画像・映像の圧縮形式(レポート結果)


学生の皆さんのレポートで、参照されたページのリンク一覧を下記に掲げました。

http://www.wakhok.ac.jp/~fujiki/mmtech2006/mmtech9-2.html


 JPEG画像圧縮 


 1枚の画像を圧縮する方法として、JPEGという方法がある。
 この方法は、画像を、濃度変化に応じた信号としたときに、その、信号を、「フーリエ変換」という技術を用いて、様々な周波数の基準波形の合成として表す方法であるが、詳しい理論は省略する。

 「フーリエ変換」とは、どのような波形も、正弦波(任意の波形で可)の合成で表せる、という方法である。
 具体的には、白黒の画像の変化のパターンが、どのようなパターンで現れるか、ということを分析して、その変化パターンを一覧として、圧縮する方法である。
 さらに、それを、画像のパターンや、人間の目の特性を利用して、「正確に復元」しなくても、大まかに伝えれば良いことにして、データ量を減らすことができる。

 (1)大抵の画像は、白黒の変化は大まかであり、細かな変化のある場所は少ない。
 (2)人間の目は、細かなパターンの変化に関しては、鈍感である。

ということを利用して、情報量を減らすことができる。

(A)パターンのような大まかな変化の画像のほうが、(B)パターンのような細かい変化より、出現頻度が高い

 白黒の急激な変化がある映像でも、(B)パターンと(C)パターンの違いは、目で見ても解らないから、細かなパターン変化では明るさ変化を大まかにしても、(ごまかしても)見た目には、解らない。

こうした特性を利用して、

DCT(離散コサイン変換)という方法で、画像を圧縮することができる。

 MPEG画像圧縮
 
 ■ I,P,Bフレーム

 MPEG圧縮は、1コマずつ独立して、圧縮するのではなく、連続するコマの映像が、大体同じであることを利用して、2コマ目の画像は、1コマ目との違いだけを記述する、という方法で、時間的に圧縮する方法です。

 この方法は、次のように考えます。

1ステップ:(実際のMPEG圧縮とは違うが、説明のため)
 15フレームに1フレーム、「キーフレーム」というフレームを作り、このフレームは、独立して圧縮する。
 1つのキーフレームから、次のキーフレームまでのフレームは、
2フレーム目は、1フレーム目と2フレーム目の差だけを情報として圧縮する。
3フレーム目は、2フレーム目と、3フレーム目の差だけを情報として圧縮する。
以下同様



 ■動き予測

 上記のような方法で、画像圧縮を効率よくすることが出来ますが、さらに、圧縮率をあげるために、「動き予測」という方法をとります。

 これは、多くの画像が、背景の前に、動く対象物(人、物)がいて、その面積は小さい、という原則に基づき、その動くものの方向を予測する、というものです。

 下記のような、映像の場合、1番目から、2番目は予測できませんが、1番目と3番目から、2番目の画面がどうなるかは、予測できます。


 MPEG圧縮では、15フレームを1つの単位として、3種類の圧縮のしかたのフレームが、規則的に並んでいる。

I: Intre coded picture           フレーム内符号化フレーム 
P: Predictive coded picture        フレーム間予測符号化フレーム
B: Bidirectionary predictive coded picture フレーム内挿符号化フレーム

MPEG−1

 MPEG−1 は、パソコン上での再生を目的としたものなので、画素数が、最高で、
360×240
までとなっている。
原理は、前記の通り。

 MPEG−2 

 MPEG−2 は、より、高画質なテレビ、衛星放送などに対応したフォーマットであり、画面の画素数も、
 720×480 (通常のテレビの画質で、かなり綺麗な画像)
から、
 ハイビジョン放送にまで、対応が広がっている。

 圧縮方法については大きな違いはないが、圧縮の際に MPEG−1では、縦横の画像の変化を同等に扱って計算したところを、「横方向動き優先圧縮」方式とすることで、より、圧縮効率を高めている。
 (通常の映像では、動きがあるのは、大部分が横方向の動きであり、縦方向の動きは少ないことを反映している。)


 
MPEG−4

 

 通信を通して、映像だけではない、様々な情報を送ることを主眼に作られた規格。


 フーリエ変換とは 

 画像圧縮の基本技術として、フーリエ変換という技術について解説する。

 音声などの信号は、波で表させる。一番単純な波としては、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)







 ■ IPBフレームの並び変換 

 MPEG画像の各フレームは、次のような依存関係がある。

Iフレーム: 独立して圧縮してあるので、他のフレームとは関係ない。
Pフレーム: 一番近くにあったIフレームまたは、Pフレームからの変化を
       記録しているので、前のフレームがないと再生できない。
Bフレーム: 前後のIフレームとPフレーム、または、PとPフレームから
       計算されるので、前後のフレームがないと再生できない。


 Bフレームは、前後のフレームのデータが無いと、計算できない。そこで、実際のデータは、次のような順番で送られる。

I1 B-1 B0 P4 B2 B3 P7 B5 B6 ..........

 なぜ、このような順になるのか、考えてみましょう。


  ■ 動き予測 

 映像の画面は、大抵の場合、それほど大きくは動きません。とくに、1フレーム(30分の1秒)では、今の画面と、前の画面の差は、それほど大きくはありません。
 そこで、圧縮する前に、前の画像と、今の画像とを比較し、ブロックごとの動きの方向を検出しておけば、圧縮が効率的に行えます。







  MPEGの特徴と応用分野
 
  MPEG2の特徴 


 MPEG2は、高画質のビデオ、放送用の圧縮方式であり、現行テレビ品質から、HDTV方式にまで対応できる高画質を誇っている。
 実際には、通信回線(電波の帯域)などによって、圧縮率を変えられる。
 地上波テレビの放送は、1チャンネルあたり、6MHzの帯域を取っているので、この帯域以内に収まるようなディジタル化方式をとることで、アナログとディジタルの自然な以降ができるように考えられている。
 実際の通信レートは、 1.5MBps〜6MBps の範囲が使われる。

 なお、DVD等のために圧縮する場合は、通常のテレビ番組や、映画は、激しい動きのある部分と、ほとんど動きの無い部分とがあることが普通であるので、最初から最後まで、同じ圧縮率で圧縮するのではなく、一度、全部を調べて、動きの無い部分は高圧縮率、動きの激しい部分は、低圧縮率で圧縮する方法をとることが多い。(変動ビットレート。リアルタイムライブでは、できないので、固定ビットレート)


 実際の応用分野としては、以下のような分野がある。
 
 DVDビデオ

 衛星CS放送
 ディジタルBS放送
 地上波ディジタル放送

■MPEG4の特徴
 

 通信速度の多様性

 MPEG4 は、様々な通信速度に対応した圧縮法が選べる。
 下は、56KBps(ISDN電話程度) から、上は、
 1.5MBps(衛星放送や、ADSL)
まで、様々な通信レートが選べるので、通信方式によって、異なる相手(受信者)向けの映像を複数用意することで、多様なユーザ向けのサービスができる。

 また、MPEG4の特徴としては、
  ホームページ、添付資料などを同期をとって表示する機能。
  オブジェクト符号化による圧縮。
 などの機能がある。
  前記は、授業のビデオなどで、参考資料を提示する機能などとして有効。
  後記は、画面内に映っている移動物体を、人間1,人間2、車、犬、等のように、
   分割して、オブジェクトとして信号化する方式であり、圧縮に有効である。

 実際の応用分野としては、以下のような分野がある。

  テレビ電話、電子会議
ビデオ監視
携帯情報端末
ゲーム、カラオケ
電子図書館
放送
テレビ、インターネット
教育