Aproximácia DCT v JPEG - stuba.sk fileAproximácia DCT v JPEG α 0 = x ( , ,, ,, , , ) xa xb xc xd...

23
Aproximácia DCT v JPEG JPEG: •digitálny obraz •bloky 8x8 •DCT po blokoch •kompresia + kódovanie •prenos •dekódovanie + dekompresia •inverzná DCT po blokoch

Transcript of Aproximácia DCT v JPEG - stuba.sk fileAproximácia DCT v JPEG α 0 = x ( , ,, ,, , , ) xa xb xc xd...

Page 1: Aproximácia DCT v JPEG - stuba.sk fileAproximácia DCT v JPEG α 0 = x ( , ,, ,, , , ) xa xb xc xd xe xf xg xh α 01 = (,,, ,, , , ) abcde f gh xaa xab xac xad xae xaf xag xah xba

Aproximácia DCT v JPEG

JPEG:•digitálny obraz•bloky 8x8•DCT po blokoch•kompresia + kódovanie•prenos•dekódovanie + dekompresia•inverzná DCT po blokoch

Page 2: Aproximácia DCT v JPEG - stuba.sk fileAproximácia DCT v JPEG α 0 = x ( , ,, ,, , , ) xa xb xc xd xe xf xg xh α 01 = (,,, ,, , , ) abcde f gh xaa xab xac xad xae xaf xag xah xba

Aproximácia DCT v JPEG

Bázové funkcie DCT 8x8

Page 3: Aproximácia DCT v JPEG - stuba.sk fileAproximácia DCT v JPEG α 0 = x ( , ,, ,, , , ) xa xb xc xd xe xf xg xh α 01 = (,,, ,, , , ) abcde f gh xaa xab xac xad xae xaf xag xah xba

Aproximácia DCT v JPEG

α α α( ) cos( ) ( ) ( )i i i= − − −2 1 2Ω

generátor jedneho riadku DCT:

pričom: Ω = 2πf fvz/

potom:

αα

( )( ) cos( )01

==

AA Ω

konst.

α ( ) , cos( ), cos( ), cos( ), ...i A A A A= Ω Ω Ω2 3

Page 4: Aproximácia DCT v JPEG - stuba.sk fileAproximácia DCT v JPEG α 0 = x ( , ,, ,, , , ) xa xb xc xd xe xf xg xh α 01 = (,,, ,, , , ) abcde f gh xaa xab xac xad xae xaf xag xah xba

Aproximácia DCT v JPEG

nahradenie násobenia: cos( )Ω = −2 s

pričom: s = 1 2 3, , , ...

Príklad 1: s =1 cos( ) .Ω = 0 5 Ω = π / 4

N f fvz= =

=/arccos

212

vzoriek na jednu periódu

Page 5: Aproximácia DCT v JPEG - stuba.sk fileAproximácia DCT v JPEG α 0 = x ( , ,, ,, , , ) xa xb xc xd xe xf xg xh α 01 = (,,, ,, , , ) abcde f gh xaa xab xac xad xae xaf xag xah xba

Aproximácia DCT v JPEG

Ω ≅ 1318116.

N f fvz= =

≅/arccos

.2

14

4 766792π

vzoriek na jednu periódu

s = 2 cos( ) .Ω = 0 25

α α α( ) ( ) ( )i i i= − − −12

1 2

Príklad 2:

Page 6: Aproximácia DCT v JPEG - stuba.sk fileAproximácia DCT v JPEG α 0 = x ( , ,, ,, , , ) xa xb xc xd xe xf xg xh α 01 = (,,, ,, , , ) abcde f gh xaa xab xac xad xae xaf xag xah xba

Aproximácia DCT v JPEG

α(i)

0 5 10 15 20-1

-0.5

0

0.5

1

0 5 10 15 20-1

-0.5

0

0.5

1

x(n)

i

n

Page 7: Aproximácia DCT v JPEG - stuba.sk fileAproximácia DCT v JPEG α 0 = x ( , ,, ,, , , ) xa xb xc xd xe xf xg xh α 01 = (,,, ,, , , ) abcde f gh xaa xab xac xad xae xaf xag xah xba

Aproximácia DCT v JPEG

Y TXTt=~ ~X T YTt=

12K

Y TXTt=1

2K~ ~X T YTt=

Y TXTt=1K

~ ~X T YTt=1K

Výpočet dvojrozmernej DCT:• obrazový blok, blok koeficientov• rekonštruovaný blok, blok koeficientov po kvantizácii• K kvantizačná konštanta, T jadro DCT

~X ~YX Y

Page 8: Aproximácia DCT v JPEG - stuba.sk fileAproximácia DCT v JPEG α 0 = x ( , ,, ,, , , ) xa xb xc xd xe xf xg xh α 01 = (,,, ,, , , ) abcde f gh xaa xab xac xad xae xaf xag xah xba

Aproximácia DCT v JPEG

t i jnn

i jn

( , )( / )( / ) cos

( )/

/= +

12

2 12

1 2

1 2 πi j n= ≤ ≤ −0 0 1,

1 1 0 1≤ ≤ − ≤ ≤ −i n j n,

T =

− − − −− − − −

− − − −− − − −− − − −− − − −− − − −

⌡⌡⌡⌡⌡⌡⌡⌡⌡⌡⌡

h h h h h h h ha b c d d c b ae f f e e f f eb d a c c a d bg g g g g g g gc a d b b d a cf e e f f e e fd c b a a b c d

a = 0 980785.b = 0 831469.c = 0 555570.d = 0 195090.e = 0 923879.f = 0 382683.g = 0 707107.h = 0 707107.

Page 9: Aproximácia DCT v JPEG - stuba.sk fileAproximácia DCT v JPEG α 0 = x ( , ,, ,, , , ) xa xb xc xd xe xf xg xh α 01 = (,,, ,, , , ) abcde f gh xaa xab xac xad xae xaf xag xah xba

Aproximácia DCT v JPEG

y k l t k i x i j t l jji

( , ) ( , ) ( , ) ( , )===⌠⌠

14 0

7

0

7

~( , ) ( , )~( , ) ( , )x i j t k i y k l t l jlk

===⌠⌠

14 0

7

0

7

DCT:

IDCT:

Page 10: Aproximácia DCT v JPEG - stuba.sk fileAproximácia DCT v JPEG α 0 = x ( , ,, ,, , , ) xa xb xc xd xe xf xg xh α 01 = (,,, ,, , , ) abcde f gh xaa xab xac xad xae xaf xag xah xba

Aproximácia DCT v JPEG

Dvojkroková aproximácia:

α ( )0 1=α ( ) .1 0 25=α ( ) .2 0 875= −α ( ) .3 0 6875= −α ( ) .4 0 53125=α (5) .= 0 953125α ( ) .6 0 054688= −α ( ) .7 0 980469= −

f = 0 382683.

f ≅ =α ( ) .1 0 25

f ≅ − − =α α( ) ( ) .2 4 0 34375

f ≅ − − + =α α α( ) ( ) ( ) .1 3 6 0 382812

1 vzorkou:

2 vzorkami:

3 vzorkami:

Page 11: Aproximácia DCT v JPEG - stuba.sk fileAproximácia DCT v JPEG α 0 = x ( , ,, ,, , , ) xa xb xc xd xe xf xg xh α 01 = (,,, ,, , , ) abcde f gh xaa xab xac xad xae xaf xag xah xba

Aproximácia DCT v JPEG

α ( )0 = x ( , , , , , , , )xa xb xc xd xe xf xg xh

α ( )0 1= ( , , , , , , , )a b c d e f g h

xaa xab xac xad xae xaf xag xahxba xbb xbc xbd xbe xbf xbg xbhxca xcb xcc xcd xce xcf xcg xchxda xdb xdc xdd xde xdf xdg xdhxea xeb xec xed xee xef xeg xehxfa xfb xfc xfd xfe xff xfg xfhxga xgb xgc xgd xge xgf xgg xghxha xhb xhc xhd xhe xhf xhg xhh

Page 12: Aproximácia DCT v JPEG - stuba.sk fileAproximácia DCT v JPEG α 0 = x ( , ,, ,, , , ) xa xb xc xd xe xf xg xh α 01 = (,,, ,, , , ) abcde f gh xaa xab xac xad xae xaf xag xah xba

Aproximácia DCT v JPEG

• akumulácia chýb dvojnásobnou aproximáciou

• samostatný výpočet zrkadlových párov xpq a xqp

Nevýhody dvojkrokovej aproximácie:

Jednokroková aproximácia

Page 13: Aproximácia DCT v JPEG - stuba.sk fileAproximácia DCT v JPEG α 0 = x ( , ,, ,, , , ) xa xb xc xd xe xf xg xh α 01 = (,,, ,, , , ) abcde f gh xaa xab xac xad xae xaf xag xah xba

Aproximácia DCT v JPEG

aa ab ac ad ae af ag ahba bb bc bd be bf bg bhca cb cc cd ce cf cg chda db dc dd de df dg dhea eb ec ed ee ef eg ehfa fb fc fd fe ff fg fhga gb gc gd ge gf gg ghha hb hc hd he hf hg hh

Page 14: Aproximácia DCT v JPEG - stuba.sk fileAproximácia DCT v JPEG α 0 = x ( , ,, ,, , , ) xa xb xc xd xe xf xg xh α 01 = (,,, ,, , , ) abcde f gh xaa xab xac xad xae xaf xag xah xba

Aproximácia DCT v JPEGPríklady:

• BABOON• CMAN• LENA• ZEBRA

RMSE x xi j i jji

= −==∑∑

1256

2

0

255

0

255

( ~ ), ,

Spôsob hodnotenia:

Page 15: Aproximácia DCT v JPEG - stuba.sk fileAproximácia DCT v JPEG α 0 = x ( , ,, ,, , , ) xa xb xc xd xe xf xg xh α 01 = (,,, ,, , , ) abcde f gh xaa xab xac xad xae xaf xag xah xba

Aproximácia DCT v JPEGBABOON

13.5

14

14.5

15

15.5

16

0 50 100

Number of samples

RM

SE

CMAN

8

9

10

11

12

13

0 50 100

Number of samples

RM

SE

LENA

7

8

9

10

11

12

13

0 50 100

Number of samples

RM

SE

ZEBRA

11.5

12

12.5

13

13.5

14

14.5

15

0 50 100

Number of samples

RM

SE

dvojkroková

jednokroková

DCT

Aproximácia1 koeficientomgenerátora

Page 16: Aproximácia DCT v JPEG - stuba.sk fileAproximácia DCT v JPEG α 0 = x ( , ,, ,, , , ) xa xb xc xd xe xf xg xh α 01 = (,,, ,, , , ) abcde f gh xaa xab xac xad xae xaf xag xah xba

Aproximácia DCT v JPEG

dvojkroková

jednokroková

DCT

Aproximácia2 koeficientamigenerátora

BABOON

14

14.25

14.5

14.75

15

0 10 20 30Number of samples

RM

SE

CMAN

8,5

8,75

9

9,25

9,5

9,75

10

0 10 20 30Number of samples

RM

SE

LENA

7

7.5

8

8.5

9

0 10 20 30Number of samples

RM

SE

ZEBRA

11.5

1212.5

1313.5

1414.5

15

0 10 20 30

Number of samplesR

MSE

Page 17: Aproximácia DCT v JPEG - stuba.sk fileAproximácia DCT v JPEG α 0 = x ( , ,, ,, , , ) xa xb xc xd xe xf xg xh α 01 = (,,, ,, , , ) abcde f gh xaa xab xac xad xae xaf xag xah xba

Aproximácia DCT v JPEG

dvojkroková

jednokroková

DCT

Aproximácia3 koeficientamigenerátora

BABOON

13,75

14,25

14,75

0 5 10 15 20Number of samples

RM

SE

CMAN

8,25

8,75

9,25

9,75

0 5 10 15 20Number of samples

RM

SE

LENA

7

7,5

8

8,5

9

0 10 20Number of samples

RM

SE

ZEBRA

11,5

12

12,5

13

0 5 10 15 20Number of samples

RM

SE

Page 18: Aproximácia DCT v JPEG - stuba.sk fileAproximácia DCT v JPEG α 0 = x ( , ,, ,, , , ) xa xb xc xd xe xf xg xh α 01 = (,,, ,, , , ) abcde f gh xaa xab xac xad xae xaf xag xah xba

Aproximácia DCT v JPEG

Prečo nie sú priebehy klesajúce?RMSE vs. súčet chýb

10 vzoriek chyba (~)t t− 15 vzoriek chyba (

~)t t−

a 0.980469 0.000316 0.980469 0.000316b 0.875 -0.043531 0.816895 0.014574c 0.53125 0.02432 0.53125 0.02432d 0.25 -0.05491 0.142761 0.052329e 0.953125 -0.29246 0.922638 0.001241g 0.435547 -0.052864 0.354248 0.028435f 0.6875 0.019606 0.6875 0.019606h 0.6875 0.019606 0.6875 0.019606

Suma -0.116703 Suma 0.160428

Aproximácia1 koeficientomgenerátora

eliminácia chýb

Page 19: Aproximácia DCT v JPEG - stuba.sk fileAproximácia DCT v JPEG α 0 = x ( , ,, ,, , , ) xa xb xc xd xe xf xg xh α 01 = (,,, ,, , , ) abcde f gh xaa xab xac xad xae xaf xag xah xba

Príklad ZEBRA, typ 1, jednokroková

Originál ZEBRA DCT

ECT 40 vzoriek ECT 5 vzoriekECT 3 vzorky

Page 20: Aproximácia DCT v JPEG - stuba.sk fileAproximácia DCT v JPEG α 0 = x ( , ,, ,, , , ) xa xb xc xd xe xf xg xh α 01 = (,,, ,, , , ) abcde f gh xaa xab xac xad xae xaf xag xah xba

Príklad LENA, typ 2, dvojkroková

Original LENA 256x256 DCT

ECT 2 vzorky ECT 20 vzoriek

Page 21: Aproximácia DCT v JPEG - stuba.sk fileAproximácia DCT v JPEG α 0 = x ( , ,, ,, , , ) xa xb xc xd xe xf xg xh α 01 = (,,, ,, , , ) abcde f gh xaa xab xac xad xae xaf xag xah xba

Aproximácia DCT v JPEG

DCT 7.4283

N=2 14.7976N=5 10.2274N=8 7.9551N=10 7.4027N=12 7.4025N=15 7.3825N=20 7.3780

DCT 11.8072

N=2 38.7521N=3 37.2224N=5 13.9402N=10 12.6671N=20 12.6001N=30 12.0134N=40 11.6145N=50 11.8322N=70 11.9923

ZEBRA, typ 1 LENA, typ 2RMSE

Page 22: Aproximácia DCT v JPEG - stuba.sk fileAproximácia DCT v JPEG α 0 = x ( , ,, ,, , , ) xa xb xc xd xe xf xg xh α 01 = (,,, ,, , , ) abcde f gh xaa xab xac xad xae xaf xag xah xba

Aproximácia ICT v JPEGICT- Integer Cosine Transform

• nahrádza aritmetiku reálnych čísel celočíselnou aritmetikou• znižuje výpočtovú náročnosť• MICT (Modified Integer Cosine Transform) znižuje

počet koeficientov DCT jadra

Page 23: Aproximácia DCT v JPEG - stuba.sk fileAproximácia DCT v JPEG α 0 = x ( , ,, ,, , , ) xa xb xc xd xe xf xg xh α 01 = (,,, ,, , , ) abcde f gh xaa xab xac xad xae xaf xag xah xba

Aproximácia ICT v JPEG

Solution no:

a b c d e f g h K

01 2 0 0 0 1 1 1 1 8 02 28 8 6 4 15 15 15 15 1800 03 164 42 40 4 87 87 87 87 60552 04 24 20 12 6 17 17 17 17 2312 05 56 16 12 8 30 30 30 30 7200 06 72 30 24 8 41 41 41 41 13448 07 84 24 18 12 45 45 45 45 16200 14 140 40 30 20 75 75 75 75 45000 15 180 130 104 20 123 123 123 123 121032 16 88 40 24 22 51 51 51 51 20808 29 176 80 48 44 102 102 102 102 83232 30 192 160 96 48 136 136 136 136 147968 31 216 180 108 54 153 153 153 153 187272 32 240 200 120 60 170 170 170 170 231200