第14回LSIデザインコンテスト・イン沖縄  設計仕様書 - 7

7. MATLAB®を用いた画像圧縮

ここにMATLAB®で使う画像圧縮コードを与えます。:compress.m

MATLAB®コードを読むことは、計算結果を完全に理解する上で良い方法の一つです。また、MATLABのindexが0からではなく、1から始まることに注意してください。

図8に示す様に、8×8画素のデータ(a)は、多くの0を持つ量子化係数(c)に圧縮されることが分かります。

Figrue8_a

(a)

Figrue8_b

(b)

Figrue8_c

(c)

図8  入力の例と圧縮モジュールの計算結果

(a) 8×8ピクセルの入力データ  (b) DCT処理の結果  (c) 量子化処理の結果


伸長モジュールでは、原画像の伸長処理に、前の処理からの量子化係数を使用できます。図9の計算結果の例より、図8の(a)の画素値が図9(b)と同等の値であることが分かります。

Figure9_a

(a)

Figure9_b

(b)

図9  入力の例と伸長モジュールの計算結果

(a) 量子化処理の結果  (b) IDCT処理の結果


すべてのピクセルに対する処理が完了した後に、図10に示す伸長画像を得ることができます。

原画像 (Size : 64 KB)
圧縮画像 (Size : 36 KB)
Figure10_original
Formula10_new

図10  原画像と伸長画像の比較


<<Back                 Next>>