2017年11月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
無料ブログはココログ

« ・JPEG圧縮の話 その4 | トップページ | 梅雨で雨だけど »

2014年6月 8日 (日)

・JPEG圧縮の話 その5

その4の続きです。

画像データをJPEG圧縮するためには、まず
RGB情報からYUV情報に変換します。
次に色差情報であるUVを1/2などにデータ量を削減。
離散コサイン変換を行うために、画像を8×8のブロックに分割します。

ブロック分割したところからの話です。
以下は8×8画素の画像を拡大した図です。
88_2

上記画像を数値データで表すと以下のようになります。
88num
これを離散コサイン変換すると、下のマトリクスになります。
Dct この数値は、それぞれの基底画像の係数という意味です。

基底画像
Kitei

データ圧縮のため、
離散コサイン変換した数値を割り算して小数点以下を切り捨てます。

ここで、人間の目の特性をまた利用します。
人間の目には周波数が高い画像を認識する能力がうとい、という特性があります。
つまり基底画像で言う、右下のほうの細かい画像の情報は少なくなっても
画質が低下したと感じにくいのです。
なので、次のテーブルのような数値で割り算します。

Qtable
周波数の高い右下のほうが数値が大きくなっています。
大きな数で割っても問題ないという人間の目の特性に準じたものです。
これを量子化テーブルと言います。
量子化テーブルの数字によって圧縮率は変わります。
大きな数字を入れるほど圧縮率は上がりますが、画質は低下します。

割り算した結果。
Out
情報がほとんど左上に集まっています。
右下のほうはほとんどゼロになってしまいました。

ここで、その2で書いた、冗長性を生かすことが可能です。
下の図のように、数値をジグザグにスキャンして並べれば、
効率よくゼロを並べることができます。
Jiguzagu

最後に効率よく並べられた数字をハフマン符号化や
ランレングス符号化といった符号化技術を用いて圧縮すれば
画像のデータ量をとても小さくすることができます。


« ・JPEG圧縮の話 その4 | トップページ | 梅雨で雨だけど »

写真講座」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1725916/56438868

この記事へのトラックバック一覧です: ・JPEG圧縮の話 その5:

« ・JPEG圧縮の話 その4 | トップページ | 梅雨で雨だけど »