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圧縮の話 その3 | トップページ | ・JPEG圧縮の話 その5 »

2014年6月 6日 (金)

・JPEG圧縮の話 その4

今回はJPEG圧縮に使用されているアルゴリズムの
離散コサイン変換について簡単に説明します。

離散とは離散値のことで、デジタルデータの事です。
連続値がアナログです。

コサイン変換とは、三角関数のコサイン関数で
近似することを意味します。

三角関数のコサインのグラフは
波の形であることを高校数学で習ったのを覚えているかと思います。

y=cosθ のグラフ θはラジアン単位。

Cos

コサイン関数の係数は下の数式のAとB。位相は省略。
y = A cos( Bθ )


簡単にする為に、まずは一次元で考えます。
次の数列をコサイン変換することを考えます。

Matrix

この数列をグラフにプロットしていくと下のようになります。

Cos3

けっこう複雑な曲線ですが、
コサイン関数の組み合わせで表現できます。

下の5つのコサイン関数の和です。
y =    cos( 2 θ)
y =  -7cos(0.3θ)
y = 1.5cos( 15θ)
y =  13cos(0.7θ)
y = 0.5cos( 29θ)

Cos4

これらの関数の和が先ほどの曲線となります。
情報量としてはAとBの係数 × 5 で表せます。

これと同じようなことを画像(二次元)で行います。
画像ではコサインのグラフは濃淡で表されます。
イメージ図
Cos1

X-Y両方向の場合
Cos2

こういったコサインを濃淡で表した画像を
基底画像と言います。
JPEGでの離散コサイン変換では64個の基底画像を用います。

Kitei

さすがにどんな画像や写真でもこの64この基底画像の組み合わせ
だけで表現できるのかというと、無理があるので
画像を8×8のブロックに格子状に分割します。

Grid ※本当は上の図よりももっと細かいです。

このそれぞれのブロックで離散コサイン変換を行うことで
大きな画像データをコサインの関数(画像)で表すことができます。

次回、離散コサイン変換の後の処理

« ・JPEG圧縮の話 その3 | トップページ | ・JPEG圧縮の話 その5 »

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

コメント

コメントを書く

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

トラックバック

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

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

« ・JPEG圧縮の話 その3 | トップページ | ・JPEG圧縮の話 その5 »