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
Aproximácia DCT v JPEG
Bázové funkcie DCT 8x8
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
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
6π
vzoriek na jednu periódu
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:
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
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
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.
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:
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:
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
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
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
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:
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
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
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
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
Príklad ZEBRA, typ 1, jednokroková
Originál ZEBRA DCT
ECT 40 vzoriek ECT 5 vzoriekECT 3 vzorky
Príklad LENA, typ 2, dvojkroková
Original LENA 256x256 DCT
ECT 2 vzorky ECT 20 vzoriek
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
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
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