物理数学雑学集画像圧縮の基礎 画像圧縮理論について簡単に説明します まず、イヤでも知らないといけないのがフーリエ変換です 数式等は専門書をご覧下さい 要は、時間関数を周期関数に変換する、すばらしい式なのですが、 現在はデジタル時代ですので、フーリエ変換も離散フーリエ変換と いうのを使います。実際よく使われているのはDCT(Discrete Cosine Transform)です 画像圧縮の方法はいろいろありますが、現在使われているのは ほとんどが、このDCTを使ったものです では、実際の圧縮の方法を説明します 例えば、簡単のために640x480ピクセルのモノクロ画像が 一枚あったとしますと、1ピクセル8bitとして情報量は640x480=307.2KBytesです。 これを空間的にブロックに分けて、縦横8ピクセルづつくらいに分割します 縦横8x8ピクセルになった映像信号に、2次元のDCTをかけて 周波数(スペクトル)の強さに変換し、これを量子化して、 その係数を並べます。この係数は一般的に低域が大きく、 高域はほとんど0になります そこで、この映像信号をDCT変換した係数を並べて、ゼロになった係数はゼロがいくつあります という、簡単な記述に変換します(Zero-run) さらに、全体の画像の中で、頻繁に出てくる係数に対し、符号長が短いもの(例えば01など)から 順次割り当てていきます(VLC) このようにして、DCTを使うと情報量として、元の映像信号をほとんど画質劣化を起こさずに、 1/100くらいまで圧縮出来ます 元の信号は307.2kByteでしたから3kBytesくらいに出来る訳です これは、現在のJPEGやMPEGなどに広く使われている技術です 実際には、MPEGなどではモーションベクトル等を使って、更に圧縮効率を高めていますが 基本の圧縮技術はDCTになります |