Prin diferite experimente s-a constatat c din punct de vedere al capacitii de percepere a
detaliilor, ochiul este mai sensibil la intensitatea luminoas a culorii dect la nuan.
Din acest motiv prezint interes o alt modalitate de reprezentare a culorii care s in
cont de aceast observaie, un exemplu fiind reprezentarea YUV utilizat n televiziunea
n culori. n acest caz, n locul celor trei componente primare R,G,B se utilizeaz alte trei
mrimi derivate din acestea, i anume:
U = R Y = 0, 7 R 0,59G 0,11B
V = B Y = 0,3R 0, 59 + 0,89 B
(10.1)
Componenta R
Componenta G
Componenta B
Componenta Y
Componenta U
Componenta V
a) b) c)
Fig. 2. Digitizare perfect i imperfect.
Fig. 3. Rotirea unui grup de puncte (decorelare): noile coordonate au valori mai mici
1
1
1 6 3
1 1 1 1 5 = 5
1 1 1 1 2 1
Fiecare form de und w(f) este eantionat n opt puncte, pentru a forma un
vector al bazei vf. Cei opt vectori rezultai vf , f=0, 1,...,7 (un total de 64 de numere) sunt
prezentai n Tabelul 1. Acetia reprezint baza pentru DCT uni-dimensional.
Tabelul 1. Vectorii rezultai prin eantionarea formei de und w(f) n punctele
date de (10.26)
0,196
0,589
0,982
1,374
1,767
2,160
2,553
2,945
cos 0
cos 1
0,981
0,831
0,556
0,195
-0,195
-0,556
-0,831
-0,981
cos 2
0,924
0,383
-0,383
-0,924
-0,924
-0,383
0,383
0,924
cos 3
cos 4
cos 5
cos 6
0,831
0,707
0,556
0,383
-0,195
-0,707
-0,981
-0,924
-0,981
-0,707
0,195
0,924
-0,556
0,707
0,831
0,383
0,556
0,707
-0,831
-0,383
0,981
-0,707
-0,195
0,924
0,195
-0,707
0,981
-0,924
-0,831
0,707
-0,556
0,383
cos 7
0,195
0,556
0,831
0,981
0,981
-0,831
0,556
-0,195
Aceti opt vectori vi sunt ortonormali (datorit alegerii particulare a celor opt
puncte de eantionare) i pot fi organizai ntr-o matrice de transformare 88. Pentru c
aceast matrice este ortonormal, ea este o matrice de rotaie, deci, DCT unidimensional poate fi interpret ca o rotaie n opt dimensiuni.
Cel mai simplu mod de a calcula DCT uni-dimensional, n practic, este cu
relaia
7
1
(2t + 1) f
(10.27)
G f = C f pt cos
2 t =0
16
unde
1
, f = 0,
(10.28)
Cf = 2
pentru f = 0,1,..., 7 .
1,
f > 0,
Se ncepe cu un set de opt valori de date pt (pixeli, eantioane de sunet, sau alte
DCT bi-dimensional
Din experien se tie c pixelii unei imagini sunt corelai pe dou dimensiuni, nu
doar pe una (un pixel este corelat cu vecinii si de la stnga i de la dreapta, deasupra i
dedesubt). De aceea metodele de compresie a imaginii folosesc DCT bi-dimensional,
dat de relaia
x =0 y = 0
pentru 0 i, j n-1. Imaginea este mprit n blocuri de nn pixeli pxy (de obicei se
folosete n=8), i ecuaia (10.30) este folosit pentru a obine un bloc de 88 coeficieni
DCT, Gij , pentru fiecare bloc de pixeli. Dac compresia este cu pierdere de informaie,
coeficienii sunt cuantizai. Decodorul reconstruiete un bloc de valori de date
(aproximate sau precise) prin calculul IDCT.
1 n 1 n 1
(2 y + 1) j
(2 x + 1)i
pxy =
CiC j Gij cos
cos
(10.31)
2n
2n
2n i = 0 j = 0
unde
1
, f = 0,
Cf = 2
pentru f = 0,1,..., 7
1,
f > 0,
Gij =
DCT bi-dimensional poate fi interpretat n dou moduri diferite, ca o rotaie (de fapt,
dou rotaii separate), i ca baz a unui spaiu vectorial n-dimensional. n prima
interpretare se consider un bloc de nn pixeli. Mai nti se consider fiecare rnd al
acestui bloc ca un punct ( px ,0 ; p x ,1 ;...; px , n 1 ) n spaiul n-dimensional, i se rotete punctul
cu ajutorul transformrii date de suma din interior
n 1
(2 y + 1) j
G1x , j = C j pxy cos
(10.32)
2n
y =0
a ecuaiei (10.30). Aceasta transformare are ca rezultat un bloc G1x,j de nn coeficieni,
unde primul element al fiecrui rnd este dominant i restul elementelor sunt mici. Suma
exterioar a ecuaiei (10.30) este
n 1
1
(2 x + 1)i
(10.33)
Gij =
Ci G1x , j cos
2n
2n x =0
Aici, coloanele lui G1x,j sunt considerate puncte n spaiul n-dimensional, i sunt rotite.
Rezultatul este un coeficient mare n colul stnga-sus al blocului i n2 - 1 coeficieni mici
n rest. Aceast interpretare consider DCT bi-dimensional ca dou rotaii separate,
fiecare n n dimensiuni. Este interesant de observat c dou rotaii n n dimensiuni sunt
mai rapide dect una n n2 dimensiuni, deoarece n al doilea caz este necesar o matrice
de rotaie de dimensiune n2n2.
A dou interpretare (presupunnd n = 8) folosete ecuaia (10.30) pentru a crea 64
blocuri de 88 valori fiecare. Cele 64 de blocuri sunt apoi folosite ca baz a unui spaiu
de vectori 64-dimensionali (sunt imagini de baz). Imaginile de baz folosite n DCT bidimensional sunt date n Fig.6. Orice bloc B de 88 pixeli poate fi exprimat ca o
combinaie liniar a imaginilor de baz, i cele 64 de ponderi ale acestei combinaii
liniare sunt coeficienii DCT ai blocului B.
10
nlocuirea blocurilor de 2x2 puncte cu un singur punct care are intensitatea egal cu
media celor 4.
2. Blocuri 8x8
Procedura de compresie se aplic unor blocuri de imagine de 8x8 puncte. Dac
nici una din dimensiunile imaginii nu este multiplu de 8, codorul copie ultima coloan
sau linie pn cnd lungimea final este multiplu de 8. Aceste linii sau coloane
suplimentare sunt ndeprtate n timpul procesului de decodare.
Cele trei componente Y, U' i V' sunt descompuse n blocuri de dimensiune 8x8.
Datorit rezoluiei reduse, n urma subeantionrii, rezult c la 4 (2x2) blocuri ale
componentei Y corespunde cte un singur bloc al componentelor U', respectiv V'.
n cazul formatului JPEG cele trei componente ale blocurilor de imagine sunt
prelucrate ntreesut. Pentru o numerotare a blocurilor, conform Fig. 8, ordinea prelucrrii
acestora va fi Y1, Y2, Y3, Y4, U1, V1, Y5, Y6, Y7, Y8, U2, V2,.... Fiecare bloc este
prelucrat utiliznd aceeai procedur.
3. Aplicare DCT
Valorile originale ale componentelor Y, U, V sunt cuprinse n domeniul [0, 2b-1],
unde b reprezint numrul de bii/eantion. Aceste valori sunt deplasate n domeniul [-2b1 b-1
,2 -1], centrate fa de zero, pentru a putea realiza o precizie de calcul mai mare la
aplicarea DCT (Discrete Cosine Transform Transformata Cosinus Discret). Pentru
primul nivel de codare JPEG, b=8, astfel nct valorile originale cuprinse n intervalul
[0, 255] sunt deplasate n intervalul [-128, 127]. Fiecare component este apoi divizat n
blocuri de 8x8 pixeli, aa cum se poate observa i n Fig. 7. Fiecrui bloc astfel obinut i
se aplic transformata cosinus discret bi-dimensional, folosind ecuaiile:
7
7
1
(2 y + 1) j
(2 x + 1)i
DCT: Gij = Ci C j p xy cos
cos
(10.35)
4
16
16
x =0 y =0
7
7
1
(2 y + 1) j
(2 x + 1)i
IDCT: pxy = Ci C j Gij cos
cos
(10.36)
4 i =0 j = 0
16
16
unde
1
Ci = C j =
, dac i = j = 0
2
Ci = C j = 1, n rest
11
Tabelul 3. Transformata
DCT a matricei 8x8 din
Tabelul 2
Tabelul 2. Exemplu de
matrice 8x8 creia i se
aplic transformata DCT
124
121
126
125
121
124
122
120
123
120
119
122
122
119
121
119
120
121
117
120
120
118
118
120
124
127
124
127
125
128
125
129
126
130
125
128
124
127
124
125
143
50
142
148
143
152
142
152
140
152
139
152
139
150
139
151
156
159
158
155
158
158
157
156
39. 88
-102. 43
37. 77
-5. 67
6. 56
4. 56
1. 31
2. 24
-2. 24
2. 26
1. 77
-1. 32
1. 22
1. 12
0. 25
-0. 81
-0. 37
0. 35
-1. 50
1. 41
-1. 08
-0. 63
-2. 21
0. 22
0. 79
-1. 05
-0. 10
-0. 13
1. 13
-0. 48
0. 23
0. 17
-3. 37
-0. 74
5. 98
3. 97
-3. 43
-0. 13
5. 52
0. 51
-1. 75
0. 77
-0. 62
-2. 65
-1. 30
0. 76
-0. 45
2. 39
-1. 07
-0. 77
-0. 55
0. 87
1. 99
-0. 051
0. 96
-0. 26
-0. 84
0. 09
1. 46
-0. 52
0. 33
0. 00
-0. 13
0. 01
4. Cuantizare coeficieni
Operaia de cuantizare este singura n care se pierde informaie. Algoritmul JPEG
utilizeaz coeficieni de cuantizare pentru a cuantiza diferiii coeficieni de intrare.
Mrimea pasului de cuantizare este organizat ntr-un tabel, numit tabel de cuantizare. Un
exemplu de tabel de cuantizare din recomandrile JPEG este prezentat n Tabelul 4.
Fiecare valoare cuantizat este reprezentat de o etichet. Prin cuantizare se ntelege
mprirea element cu element a matricii G cu o matrice de cuantizare Q, cu reinerea
doar a prii ntregi, rezultnd o matrice I.
16
12
14
14
18
24
49
11
12
13
17
22
35
64
10
14
16
22
37
55
78
16
19
24
29
56
64
87
24
26
40
51
68
81
103
40
58
57
87
109
104
121
51
60
69
80
103
113
120
61
55
56
62
77
92
101
72
92
95
98
112
100
103
99
12
(b)
17
18
24
47
99
99
99
99
18
21
26
66
99
99
99
99
24
26
56
99
99
99
99
99
47
66
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
99
Gij
I i , j = t + 0, 5
Qij
unde
(10.36)
mai mic dect x. Se consider coeficientul G00 din Tabelul 3, care este 39, 88. Din
t
tabelul 4a, Q00 este 16, deci,
39,88
(10.37)
I 00 =
+ 0,5 = 2,9925 = 2
16
I00 Q00t
adic 2*16=32.
t
Similar, din Tabelele 3 i 4a, G01 este 6, 56 i Q01
este 11, deci
6,56
(10.38)
I 01 =
+ 0,5 = 1, 096 = 1
11
5. Codarea coeficienilor
o DC
Coeficienii DC ai fiecrui bloc se codeaz diferenial, adic se codeaz numai
diferena fa de coeficientul DC al blocului precedent. Codarea se face utiliznd tabelul
prezentat mai jos, n felul urmtor:
1. Se caut clasa din care face parte numrul (ex.: 9 clasa 4)
2. Se numr al ctlea numr din clas este, ncepnd cu poziia 0, nu 1! (ex.:
9 este al 9-lea numr din clas, considernd -7, primul numr, ca fiind pe
poziia 0)
3. Codul = codul clasei urmat de poziia numrului n clas, n baza 2. (ex:
codul lui 9 este 11110 1001)
13
Codul Huffman
corespunztor
clasei
0
1
2
-1
10
-3
-2
110
-7
-4
1110
-15
-8
15
11110
5
6
-31
-63
.
.
-16
-32
16
32
.
.
31
63
111110
1111110
-127
-64
64
127
11111110
-255
-128
128
255
111111110
-511
-256
256
511
1111111110
10
-1023
-512
512
1023
11111111110
11
-2047
-1024
1024
2047
111111111110
12
-4095
-2048
2048
4095
1111111111110
13
-8191
-4096
4096
8191
11111111111110
14
-16383
-8192
8192
16383
111111111111110
15
-32767
-16384
16384
32768
111111111111111
16
32768
o AC
Ordinea n care este parcurs matricea n vederea codificrii coeficienilor de tip
AC se alege n aa fel nct s se profite ct mai bine de distribuia valorilor
coeficienilor. Se urmrete gruparea valorilor nule n iruri ct mai lungi, deoarece acest
fapt permite o codare mai eficient (compresie maxim).
14
III.3 Decodarea
Lanul de decodare JPEG este parcurs n ordine invers codrii. Astfel, imaginea
compresat JPEG este supus n primul pas unui decodor entropic. Dup decodarea
entropic, se aplic decuantizarea, folosind aceiai coeficieni care au fost folosii i la
cuantizare, prezentai n Tabelele 4 a,b. n urma decuantizrii se obin coeficienii
transformatei cosinus discrete din Tabelul 7. Aceti coeficieni sunt trimii blocului de
transformare cosinus discret invers, IDCT, care aplic transformarea dat de relaia
10.36. Acestora li se adun 128 i se obine blocul reconstruit prezentat n Tabelul 8.
Calitatea acestei imagini depinde de numrul de coeficieni pstrai la codare. Dac se vor
pstra toi coeficienii nenuli, atunci imaginea reconstruit va fi foarte asemntoare cu
originalul
15
16
17
5. Cum arat imaginea n cazul n care cuantizarea este foarte puternic ? Acest
fenomen poart numele de blocking, iar algoritmii care urmresc reducerea
vizibilitii acestuia sunt algoritmi de de-blocking,
18