jpeg と量子化kikn/cdn/cdn3-jpegb.pdfjpeg圧縮アルゴリズム ! 1. 前処理 "...

23
JPEG と量子化 コンテンツ配信技術3 菊池浩明

Upload: others

Post on 30-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: JPEG と量子化kikn/CDN/CDN3-JPEGb.pdfJPEG圧縮アルゴリズム ! 1. 前処理 " RGBから輝度と色差 " 8x8ブロック化 2. DCT ! 3. _____ ! 4. エントロ 人間の知覚

JPEG と量子化�

コンテンツ配信技術3 菊池浩明�

Page 2: JPEG と量子化kikn/CDN/CDN3-JPEGb.pdfJPEG圧縮アルゴリズム ! 1. 前処理 " RGBから輝度と色差 " 8x8ブロック化 2. DCT ! 3. _____ ! 4. エントロ 人間の知覚

ƒ’

情報損失�+1

–1

–1

+1

7/4F2

+1

–1

-5/4F3

11/4F1

ƒ= (3,6,2,0) = aF1+bF2+cF3

ƒ

逆DCT

DCT

Page 3: JPEG と量子化kikn/CDN/CDN3-JPEGb.pdfJPEG圧縮アルゴリズム ! 1. 前処理 " RGBから輝度と色差 " 8x8ブロック化 2. DCT ! 3. _____ ! 4. エントロ 人間の知覚

JPEGの限界�_______ノイズ�

GIF (1136 byte) JPEG (6442 byte)

Page 4: JPEG と量子化kikn/CDN/CDN3-JPEGb.pdfJPEG圧縮アルゴリズム ! 1. 前処理 " RGBから輝度と色差 " 8x8ブロック化 2. DCT ! 3. _____ ! 4. エントロ 人間の知覚

JPEG圧縮アルゴリズム�

n  1. 前処理�q RGBから輝度と色差�q 8x8ブロック化�

n  2. DCT n  3. _______�n  4. エントロピー符号化�

q DC成分/AC成分(ハフマン符号)

Page 5: JPEG と量子化kikn/CDN/CDN3-JPEGb.pdfJPEG圧縮アルゴリズム ! 1. 前処理 " RGBから輝度と色差 " 8x8ブロック化 2. DCT ! 3. _____ ! 4. エントロ 人間の知覚

RGB成分�

R G B

Page 6: JPEG と量子化kikn/CDN/CDN3-JPEGb.pdfJPEG圧縮アルゴリズム ! 1. 前処理 " RGBから輝度と色差 " 8x8ブロック化 2. DCT ! 3. _____ ! 4. エントロ 人間の知覚

輝度と色差�

輝度情報� 色差1� 色差2�

Page 7: JPEG と量子化kikn/CDN/CDN3-JPEGb.pdfJPEG圧縮アルゴリズム ! 1. 前処理 " RGBから輝度と色差 " 8x8ブロック化 2. DCT ! 3. _____ ! 4. エントロ 人間の知覚

ブロック化�

n  8x8

Page 8: JPEG と量子化kikn/CDN/CDN3-JPEGb.pdfJPEG圧縮アルゴリズム ! 1. 前処理 " RGBから輝度と色差 " 8x8ブロック化 2. DCT ! 3. _____ ! 4. エントロ 人間の知覚

直交基底�

0 1 2 3 x

+1

–1

–1

+1

F2

+1

–1

F3

F1

0 x

+1

–1

F1

1 2 3 4 5 6 7

–1

+1

F2

+1

–1

F3

Page 9: JPEG と量子化kikn/CDN/CDN3-JPEGb.pdfJPEG圧縮アルゴリズム ! 1. 前処理 " RGBから輝度と色差 " 8x8ブロック化 2. DCT ! 3. _____ ! 4. エントロ 人間の知覚

8つの基底 �x = 0, 1,…, 7

q F0=cos 0

q F1=cos (2x+1)π/16

q F2=cos (2x+1)2π/16

q F3=cos (2x+1)3π/16

q F4=cos (2x+1)4π/16

q F5=cos (2x+1)5π/16

q F6=cos (2x+1)6π/16

q F7=cos (2x+1)7π/16

Page 10: JPEG と量子化kikn/CDN/CDN3-JPEGb.pdfJPEG圧縮アルゴリズム ! 1. 前処理 " RGBから輝度と色差 " 8x8ブロック化 2. DCT ! 3. _____ ! 4. エントロ 人間の知覚

JPEGの原理�

n 離散コサイン変換�q Discrete Cosine Transform: DCT q _________ ƒ(x,y) (-128~+127) q インデックス x, y, u, v = 0,1,...,7

q C(0)=1/√2, C(1)=...=C(7)=1

F(u,v) =14C(u)C(v) f (x,y)cos

(2x + 1)uπ16

cos(2y +1)vπ16y=0

7

∑x=0

7

∑⎛

⎝ ⎜

⎠ ⎟

b = ƒ•F2/F2•F2

Page 11: JPEG と量子化kikn/CDN/CDN3-JPEGb.pdfJPEG圧縮アルゴリズム ! 1. 前処理 " RGBから輝度と色差 " 8x8ブロック化 2. DCT ! 3. _____ ! 4. エントロ 人間の知覚

二次元への拡大�F2

F3

1 1 -1 -1 -1 -1 1 1 -1 -1 1 1 1 1 -1 -1

F23

1 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1

F1

F2

F12

1 1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 1 1

F23 •F12 = ___

Page 12: JPEG と量子化kikn/CDN/CDN3-JPEGb.pdfJPEG圧縮アルゴリズム ! 1. 前処理 " RGBから輝度と色差 " 8x8ブロック化 2. DCT ! 3. _____ ! 4. エントロ 人間の知覚

DCT基底�

Page 13: JPEG と量子化kikn/CDN/CDN3-JPEGb.pdfJPEG圧縮アルゴリズム ! 1. 前処理 " RGBから輝度と色差 " 8x8ブロック化 2. DCT ! 3. _____ ! 4. エントロ 人間の知覚

2次元のDCT F0

1 � 1 � 1 � 1 �

F1

F2 F3

1 � 1 � -1 � -1 �

4 4 0 0 4 4 0 0 -2 -2 6 6 -2 -2 6 6

原画像�ƒ=aF0+bF1+cF2+dF3

Page 14: JPEG と量子化kikn/CDN/CDN3-JPEGb.pdfJPEG圧縮アルゴリズム ! 1. 前処理 " RGBから輝度と色差 " 8x8ブロック化 2. DCT ! 3. _____ ! 4. エントロ 人間の知覚

2次元のDCT F0 F1

4 4 0 0 4 4 0 0 -2 -2 6 6 -2 -2 6 6

原画像�ƒ=aF0+bF1+cF2+dF3

a=ĥF0/F02

=

2

2

Page 15: JPEG と量子化kikn/CDN/CDN3-JPEGb.pdfJPEG圧縮アルゴリズム ! 1. 前処理 " RGBから輝度と色差 " 8x8ブロック化 2. DCT ! 3. _____ ! 4. エントロ 人間の知覚

DCT係数�F0 F1

4 4 0 0 4 4 0 0 -2 -2 6 6 -2 -2 6 6

原画像�ƒ=aF0+bF1+cF2+dF3

2

2 -1

-1 F2 F3 0

0 3

3 DCT係数�

______成分�

______成分�

G =2 −10 3⎛

⎝ ⎜

⎠ ⎟

Page 16: JPEG と量子化kikn/CDN/CDN3-JPEGb.pdfJPEG圧縮アルゴリズム ! 1. 前処理 " RGBから輝度と色差 " 8x8ブロック化 2. DCT ! 3. _____ ! 4. エントロ 人間の知覚

人間の知覚�

n Fechnerの_____法則 q 感覚量 S, 刺激強度 I S = k log I + b S2 = k log 2 + b

I = 2 �

高周波成分の 感覚は鈍い�

低周波成分の 感覚は鋭い�

Page 17: JPEG と量子化kikn/CDN/CDN3-JPEGb.pdfJPEG圧縮アルゴリズム ! 1. 前処理 " RGBから輝度と色差 " 8x8ブロック化 2. DCT ! 3. _____ ! 4. エントロ 人間の知覚

荒い量子化�

32レベル� 10レベル� 4レベル�

Page 18: JPEG と量子化kikn/CDN/CDN3-JPEGb.pdfJPEG圧縮アルゴリズム ! 1. 前処理 " RGBから輝度と色差 " 8x8ブロック化 2. DCT ! 3. _____ ! 4. エントロ 人間の知覚

012345678910

0 5 10

量子化 quantization�

n  cによる量子化�

q ����______ of x = xを超えない最大の整数

q q3(19) =floor(19/3)x3 =(6.333)x3 =18

q q3(20) = q q3(21) = q q3(22) =

qc(x) =xc⎢ ⎣ ⎢ ⎥ ⎦ ⎥ × c

⎣ ⎦x

Page 19: JPEG と量子化kikn/CDN/CDN3-JPEGb.pdfJPEG圧縮アルゴリズム ! 1. 前処理 " RGBから輝度と色差 " 8x8ブロック化 2. DCT ! 3. _____ ! 4. エントロ 人間の知覚

量子化テーブル�F0 F1 2 -1

F2 F3 0 3

DCT係数�

2 -1

0 3

c 1 5

5 10

n  量子化する値 c q 低周波→________�q 高周波→________�

例) q5(3)=fl(0.6) x5= q5(-1)=fl(-0.2) x5=

Page 20: JPEG と量子化kikn/CDN/CDN3-JPEGb.pdfJPEG圧縮アルゴリズム ! 1. 前処理 " RGBから輝度と色差 " 8x8ブロック化 2. DCT ! 3. _____ ! 4. エントロ 人間の知覚

圧縮率の違い�

n 低圧縮 (75%) q DCT係数

q 量子化テーブル

q 量子化された係数

n 高圧縮 (50%) q DCT係数

q 量子化テーブル

q 量子化された係数

⎟⎟⎠

⎞⎜⎜⎝

⎛=

3221

1C

⎟⎟⎠

⎞⎜⎜⎝

⎛ −=

3012

0G

⎣ ⎦ ⎣ ⎦⎣ ⎦ ⎣ ⎦

=⎟⎟⎠

⎞⎜⎜⎝

⋅⋅

⋅−⋅=

33/322/022/111/2

)( 01 GqC

⎟⎟⎠

⎞⎜⎜⎝

⎛=

10551

2C

=)( 02 GqC

⎟⎟⎠

⎞⎜⎜⎝

⎛ −=

3012

0G

Page 21: JPEG と量子化kikn/CDN/CDN3-JPEGb.pdfJPEG圧縮アルゴリズム ! 1. 前処理 " RGBから輝度と色差 " 8x8ブロック化 2. DCT ! 3. _____ ! 4. エントロ 人間の知覚

逆DCT変換 (IDCT) �n 変換と逆変換

q 原画像�ƒ

q DCT係数�

5 � 5 � -1 � -1 �

5 � 5 � -1 � -1 �

-5 � -5 � 9 � 9 �

-5 � -5 � 9 � 9 �

4 4 0 0 4 4 0 0 -2 -2 6 6 -2 -2 6 6

ƒ=aF0+bF1+cF2+dF3

⎟⎟⎠

⎞⎜⎜⎝

⎛=

dcba

G0

DCT変換� _____________�3 � 3 � 1 � 1 �

3 � 3 � 1 � 1 �

-3 � -3 � 7 � 7 �

-3 � -3 � 7 � 7 �

⎟⎟⎠

⎞⎜⎜⎝

⎛ −=

0052

)( 01 GqC

⎟⎟⎠

⎞⎜⎜⎝

⎛ −=

5024

)( 02 GqC

ƒ1 �

ƒ2 �

Page 22: JPEG と量子化kikn/CDN/CDN3-JPEGb.pdfJPEG圧縮アルゴリズム ! 1. 前処理 " RGBから輝度と色差 " 8x8ブロック化 2. DCT ! 3. _____ ! 4. エントロ 人間の知覚

ジグザグスキャン�

n  DCT係数� n  __________�q 0の個数�q 非0値�

n  例�q 12,0,0,0,3,0,2,0,0,0,0 q 0,12, 3,3, 1,2, 4,0 q 0,12, 3,3, 1,2, [EOB]

(End of Block)

高周波�

低周波�

Page 23: JPEG と量子化kikn/CDN/CDN3-JPEGb.pdfJPEG圧縮アルゴリズム ! 1. 前処理 " RGBから輝度と色差 " 8x8ブロック化 2. DCT ! 3. _____ ! 4. エントロ 人間の知覚

演習�n  2次元の直交基底�

�DCT係数 を持つ画像ƒがある.�

1. Gを逆DCT変換(復元)したƒ1を求めよ�

2. Gを量子化テーブル で量子化したG2を求めよ.

3. G2を逆DCT変換したƒ2を求めよ.�

F0 =1 11 1⎛

⎝ ⎜

⎠ ⎟ , F1 =

1 −11 −1⎛

⎝ ⎜

⎠ ⎟ , F2 =

1 1−1 −1⎛

⎝ ⎜

⎠ ⎟ , F3 =

1 −1−1 1⎛

⎝ ⎜

⎠ ⎟ ,

G =5 3−2 1⎛

⎝ ⎜

⎠ ⎟

⎟⎟⎠

⎞⎜⎜⎝

⎛=

4331

2C