Sunteți pe pagina 1din 18

Universitatea Tehnic Gheorghe Asachi din Iai

Facultatea de Electronic, Telecomunicaii i Tehnologia Informaiei

Tehnici de Compresie a Semnalelor Multimedia


Lucrare de laborator

Compresia de imagini. Standardul JPEG


I. Obiectivul lucrrii
Lucrarea i propune familiarizarea cu metodele i algoritmii utilizai n compresia de
imagini, n particular cele folosite n standardul JPEG. Pentru aceasta se folosete o
implementare n Matlab a unui codor i decodor JPEG.

II. Compresia de imagini


II.1 Definiia imaginii. Reprezentarea n format necomprimat
O imagine este o suprafa de obicei dreptunghiular caracterizat, la nivelul
oricrui punct al ei, de o anumit culoare. Ideal, culoarea variaz continuu n oricare
direcie. Din pcate, n sistemele numerice, nu se pot utiliza mrimi care variaz
continuu, ci doar forma discretizat a acestora.
Astfel, o imagine trebuie s fie discretizat nainte de a se pune problema
reprezentrii numerice. Discretizarea const n mprirea imaginii ntr-un caroiaj
asemntor unei table de ah. Fiecare poriune de imagine delimitat de acest caroiaj va fi
considerat ca avnd o culoare uniform - o medie a culorii existente pe aceast seciune.
Aceste poriuni poart denumirea de pixeli; ca atare, vorbim de reprezentarea unei
imagini printr-o matrice de pixeli (noiune arhi-cunoscut astzi, cnd unul din criteriile
de alegere a unei camere foto este numrul de megapixeli cte milioane de pixeli are
senzorul de imagine).
II.2 Spaii de culoare. RGB i YUV. Comparaie
Pasul urmtor l constituie gsirea unei reprezentri pentru culoare. Orice culoare
poate fi descompus n trei culori primare (de exemplu rou-R, verde-G i albastru-B), cu
alte cuvinte orice imagine poate fi obinut prin suprapunerea aditiv a trei radiaii
luminoase avnd aceste trei culori i intensiti diferite. Deci, pentru a reprezenta numeric
o culoare, este suficient s se reprezinte intensitile luminoase ale celor trei culori
primare. Dac se aloc, de exemplu, cte 8 bii pentru fiecare component, se pot coda
256 nivele de intensitate, astfel: absena culorii (intensitate zero) se codific prin valoarea
00000000 n binar sau 00 n hexazecimal, iar intensitatea maxim, prin cea mai mare
valoare ce poate fi reprezentat pe 8 bii, i anume, 11111111 n binar sau FF n
hexazecimal.
Reprezentarea n format RGB ine ns mai mult de modalitile tehnice de captare
i reproducere a imaginii i mai puin de mecanismul fiziologic de percepere a culorii.

Universitatea Tehnic Gheorghe Asachi din Iai


Facultatea de Electronic, Telecomunicaii i Tehnologia Informaiei

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:

Y = 0,3R + 0,59G + 0,11B

U = R Y = 0, 7 R 0,59G 0,11B
V = B Y = 0,3R 0, 59 + 0,89 B

(10.1)

n cazul acestei reprezentri, componenta Y corespunde intensitii luminoase percepute


pentru respectiva culoare (coeficienii 0,30, 0,59 i 0,11 reprezint strlucirile relative la
alb ale celor trei culori primare rou, verde i, respectiv, albastru). Aceast component
mai este ntlnit i sub numele de luminan. Componentele U i V sunt cele care
definesc nuana culorii, din acest motiv, sunt denumite componente de crominan.
Acestea se calculeaz ca diferena dintre componenta roie, respectiv albastr, i cea de
luminan.
Avantajul reprezentrii YUV este acela c separ componenta de luminan,
pentru care ochiul este foarte sensibil la detalii, de componentele de nuan pentru
care sensibilitatea este mai redus. Acest lucru face posibil reducerea informaiei
asociate unei imagini prin utilizarea unei rezoluii mai reduse pentru componentele de
crominan. n cazul televiziunii n culori se realizeaz o "compresie" prin limitarea
benzii de frecven alocate semnalelor de crominan (de exemplu n sistemul PAL
semnalele U i V au o band de 1,3MHz fa de semnalul Y care are o band de 6MHz).
n cazul standardului JPEG, componentele de crominan sunt subeantionate cu un
factor de 2 pe linii i pe coloane (se reine cte un singur pixel din doi, att pe linii ct i
coloane).
n concluzie, fiecare pixel este caracterizat de un triplet de trei valori numerice, fie
ele componentele (R,G,B) sau (Y,U,V). Ca atare, imaginea ntreag este determinat de
cele trei matrici corespunztoare.

Componenta R

Componenta G

Universitatea Tehnic Gheorghe Asachi din Iai


Facultatea de Electronic, Telecomunicaii i Tehnologia Informaiei

Componenta B

Componenta Y

Componenta U

Componenta V

Fig. 1. Componentele R, G, B, Y, U, V ale imaginii 1.a

II.3 Abordri folosite n compresia de imagini


n continuare se reiau cteva metode folosite n compresie, evideniind
aplicabilitatea lor n compresia de imagini.
Metodele generale de compresie de date:
1. Cuantizarea scalar poate fi folosit pentru a compresa imagini, dar
performanele ei sunt mediocre. De exemplu, o imagine cu 8 bii/pixel poate fi
compresat prin cuantizare scalar eliminnd cei mai nesemnificativi patru bii ai fiecrui
pixel. Aceasta conduce la o rat de compresie de 0,5, care pe lng faptul c nu este
semnificativ, determin n acelai timp i reducerea numrul de culori (sau nuane de
gri) de la 256 la doar 16. O astfel de reducere nu numai ca descrete pe ansamblu
calitatea imaginii reconstruite, dar poate chiar crea benzi de diferite culori, un efect
observabil i deranjant.
2. Cuantizarea vectorial poate fi folosit cu mai mult succes pentru a compresa
imagini.
3. Metodele statistice funcioneaz mai bine cnd simbolurile ce trebuie
compresate au probabiliti diferite. O secven de intrare n care mesajele au aceeai
probabilitate nu se va compresa eficient. n acest sens, ntr-o imagine alb-negru sau color
n tonuri continue, diferitele culori sau nuane de gri se dovedesc de multe ori a avea
aproximativ aceleai probabiliti. De aceea metodele statistice nu sunt o alegere bun
pentru compresia unor astfel de imagini, i sunt necesare noi abordri. Imaginile cu
discontinuiti de culoare, n care pixeli adiaceni au culori foarte diferite, se compreseaz
mai bine cu metodele statistice, dar n acest caz nu este uoar predicia pixelilor.

Universitatea Tehnic Gheorghe Asachi din Iai


Facultatea de Electronic, Telecomunicaii i Tehnologia Informaiei

4. Metodele de compresie bazate pe dicionar tind, de asemenea, s nu aib succes


n cazul imaginilor cu tonuri continue. O astfel de imagine conine de obicei pixeli
adiaceni n culori similare, dar nu conine modele repetitive. Chiar i o imagine care
conine modele repetitive, cum sunt liniile verticale, le poate pierde cnd este digitizat.
O linie vertical n imaginea original poate deveni uor oblic atunci cnd imaginea este
digitizat. O linie vertical ideal este prezentat n Fig. 2a. n Fig. 2.b linia este
presupus a fi perfect digitizat n zece pixeli, aezai vertical. Totui, dac imaginea este
plasat n digitizor uor oblic, procesul de digitizare poate fi imperfect, i pixelii rezultai
pot arta ca n Fig. 2.c.

a) b) c)
Fig. 2. Digitizare perfect i imperfect.

O alt problem a compresiei imaginilor bazate pe dicionar este aceea c astfel de


metode scaneaz imaginea rnd cu rnd, i pot pierde astfel corelaii verticale ntre pixeli.
Metodele tradiionale sunt nesatisfctoare pentru compresia de imagini, astfel
nct au fost necesare abordri noi, care, dei diferite, se bazeaz pe eliminarea
redundanei din imagine, folosind urmtorul principiu:
Principiul compresiei de imagine. Dac se selecteaz aleator un pixel dintr-o
imagine, exist o probabilitate mare ca vecinii si s aib aceeai culoare sau culori foarte
apropiate.
Compresia de imagine este, deci, bazat pe faptul c pixelii nvecinai sunt puternic
corelai. Aceast corelare se numete i redundan spaial.
II.4 Transformri folosite n compresia de imagini. DCT i DST, WalshHadamard, Haar, wavelet, KLT. Comparaie. Transformri separabile
O imagine poate fi compresat prin transformarea pixelilor si (care sunt corelai)
ntr-o reprezentare unde acetia sunt decorelai. Compresia este obinut dac valorile noi
sunt mai mici, n medie, dect cele originale. Compresia cu pierdere de informaie poate
fi obinut prin cuantizarea valorilor transformate. Decodorul primete valorile
transformate din secvena compresat i reconstruiete datele originale (exacte sau
aproximate), prin aplicarea transformrii inverse. Transformrile discutate n aceast
seciune sunt ortogonale.
Termenul de decorelare se refer la faptul c valorile transformate sunt
independente unele de altele. Ca urmare, ele pot fi codate independent, ceea ce face mai
simpl construirea unui model statistic. O imagine poate fi compresat, dac
reprezentarea sa are redundan. Redundana n imagini deriv din corelarea pixelilor.
Dac se transform imaginea ntr-o reprezentare n care pixelii sunt decorelai, se elimin
redundana i imaginea a devenit n totalitate compresat.

Universitatea Tehnic Gheorghe Asachi din Iai


Facultatea de Electronic, Telecomunicaii i Tehnologia Informaiei

Fig. 3. Rotirea unui grup de puncte (decorelare): noile coordonate au valori mai mici

O transformare unidimensional discret poate fi reprezentat printr-o matrice A.


Coloanele acestei matrici sunt elementele bazei n care este reprezentat semnalul, iar
aplicarea transformatei A nseamn a gsi coeficienii semnalului dac l descompunem
n baza format din coloanele matricii A.
O transformare este ortogonal dac i numai dac inversa matricii este totuna cu
transpusa sa. Aplicarea unei transformate ortogonale unui semnal echivaleaz cu
calcularea produsului ntre matricea transpus AT i semnal (vector coloan). Invers,
matricea transformatei inverse este inversa matricii transformrii iniiale.
1 4 17
1 1 1


1
1

1 6 3

1 1 1 1 5 = 5


1 1 1 1 2 1

Fig.4. Exemplu de transformare discret

O transformare ortogonal este echivalent cu o rotire a sistemului de coordonate


(a vectorilor bazei) n care este reprezentat semnalul.
Transformri bidimensionale
n cazul unei transformate unidimensionale, un semnal este reprezentat ca o sum
ponderat a unor semnale dintr-o baz (de ex. n spaiu x = ai + bj + ck, baza fiind
sistemul de coordonate (i,j,k), sau la Fourier semnalul este reprezentat ca o sum de
sinusoide). n cazul discret, elementele bazei sunt coloanele matricii transformrii, A.
Aplicarea transformrii nseamn gsirea coeficienilor necesari elementelor bazei pentru
ca suma lor ponderat s fie egal cu semnalul.
n cazul unor transformri bidimensionale, o imagine 2D este descompus ca o
sum ponderat de imagini 2D ce formeaz baza. Coeficienii elementelor bazei sunt
spectrul semnalului.
O transformare este separabil dac transformarea bidimensional (pe imagini)
este echivalent cu aplicarea de dou ori a unei transformate unidimensionale, nti pe
fiecare coloan, apoi pe fiecare linie a rezultatului (sau invers, nti pe linii, apoi pe

Universitatea Tehnic Gheorghe Asachi din Iai


Facultatea de Electronic, Telecomunicaii i Tehnologia Informaiei

coloane). Aceast proprietate (dac exist) reduce mult complexitatea calculului. n


general, transformrile prezentate n continuare sunt separabile.
Utilitatea unei transformri
n general, pixelii unei imagini au valori semnificative, situate n jurul unei valori
medii. Cuantizarea acestor valori ar produce erori vizibile. Pentru ca erorile de cuantizare
s fie ct mai neobservabile, ar fi de preferat ca majoritatea coeficienilor obinui dup
transformare s aib valori apropiate de zero, altfel spus majoritatea informaiei s fie
concentrat doar n civa coeficieni nenuli, restul fiind neglijabili. Aceast proprietate
poart numele de compactarea energiei.
Exemple de transformri bidimensionale:
1. Transformarea Karhunen-Love (KLT): elementele bazei sunt vectorii proprii ai
setului de blocuri 8x8 n care este mprit imaginea. KLT este transformarea cea
mai bun din punct de vedere al compresiei (cel mai redus numr de coeficieni
nenuli). Din pcate, fiind compus din vectorii proprii ai imaginii, este dependent
de imaginea n sine la decodare, cnd nu se cunoate imaginea, ci vrem s o
aflm, nu cunoatem nici transformata. Ca atare, nu poate fi folosit n practic.
2. Transformarea Walsh-Hadamard (WHT): descompune o imagine ntr-o sum
ponderat a urmtoarelor elemente din baz (n exemplu, pentru imagini 4x4)

Fig.5. Elementele bazei transformrii Walsh-Hadamard

Transformarea cosinus discret (DCT)


DCT unidimensional
n practic se folosete DCT bi-dimensional, dar pentru uurina nelegerii se
consider mai nti DCT uni-dimensional. Se consider formele de und w(f)=cos(f),
pentru 0 , cu frecvenele f=0, 1, ...,7, i
3 5 7 9 11 13 15
= , , , , ,
,
,
(10.26)
16 16 16 16 16 16 16 16

Universitatea Tehnic Gheorghe Asachi din Iai


Facultatea de Electronic, Telecomunicaii i Tehnologia Informaiei

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

date) i se obine un set de opt coeficieni DCT, G f . Decodorul primete coeficienii


DCT n seturi de opt, i aplic transformarea invers DCT (IDCT) pentru a reconstrui
valorile de date originale (tot n grupuri de cte opt). IDCT se calculeaz cu relaia
1 7
(2t + 1) j
pt = C j G j cos
, pentru t=0, 1,...., 7 (10.29)
2 j =0
16

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

Universitatea Tehnic Gheorghe Asachi din Iai


Facultatea de Electronic, Telecomunicaii i Tehnologia Informaiei
n 1 n 1
1
(2 y + 1) j
(2 x + 1)i
Ci C j pxy cos
cos
, (10.30)
2n
2n
2n

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.

Universitatea Tehnic Gheorghe Asachi din Iai


Facultatea de Electronic, Telecomunicaii i Tehnologia Informaiei

Fig. 6. Imaginile de baz pentru transformata discret cosinus bi-dimensinal

10.4.7. Transformarea Discret Sinus


Transformarea discret sinus, DST, este complementara DCT. DCT asigur
performane apropiate transformatei K-L optime, n ceea ce privete compactarea, cnd
corelaia coeficienilor este mare, iar DST asigur performane apropiate transformatei
K-L optime, cnd este mic. Datorit acestei proprieti, este adesea folosit ca
transformat complementar a DCT n codarea de imagini i audio.
Elementele matricei transformate pentru o DST de dimensiune nn sunt date de
( i + 1)( j + 1)
2
; i, j = 0,1,..., n 1
(10.34)
[ S ]i , j = sin
n
2n
Dezavantajul acestei transformri poate fi observat cnd se consider exemplul a
opt valori de date identice ce trebuie transformate. Astfel de valori sunt, desigur, perfect
corelate. Cnd sunt reprezentate grafic ele devin o linie orizontal. Aplicnd DCT acestor
valori, se produce doar un coeficient DC; toi coeficienii AC fiind nuli. DCT
compacteaz toat energia datelor ntr-un unic coeficient DC, a crui valoare este identic
cu a datelor. IDCT poate reconstrui exact cele opt valori (cu excepia unor modificri
minore date de precizia limitat de calcul). Aplicarea DST asupra acelorai opt valori, pe
de alt parte, conduce la apte coeficieni AC a cror sum este o form de und care
trece prin cele opt puncte corespunztoare datelor, dar oscileaz ntre aceste puncte.
Acest comportament, are trei dezavantaje, n principal:
1. Energia datelor originale nu este compactat;
2. Cei apte coeficieni nu sunt decorelai (pe cnd datele sunt perfect corelate);
3. Cuantiznd cei apte coeficieni se poate ajunge la o puternic scdere a
calitii reconstruciei realizate de DST invers
Din aceste cauze, n practic se folosete transformarea DCT.

Universitatea Tehnic Gheorghe Asachi din Iai


Facultatea de Electronic, Telecomunicaii i Tehnologia Informaiei

III. Standardul JPEG


Formatul JPEG este recomandat pentru afiarea de imagini redate cu o foarte
mare varietate de culori sau pentru imagini de precizie fotografic. JPEG folosete o
tehnic de compresie variabil, care are drept rezultat obinerea de fiiere foarte mici n
comparaie cu alte formate.
Exist patru moduri principale de operare specificate de standardul JPEG :
- modul de baz, n care fiecare component a imaginii este codat printr-o
singur scanare stnga-dreapta, respectiv sus-jos;
- codarea expandat DCT cu pierderi, n care se realizeaz o codare progresiv a
spectrelor imaginii de intrare;
- codarea fr pierderi, n care imaginea este codat astfel nct se garanteaz
reproducerea exact la decodare;
- codarea ierarhic, n care imaginea este codat la rezoluii multiple.
n continuare, se va prezenta detaliat numai primul dintre acestea, celelalte numai
principial

III.1 Schema de principiu

Fig. 7. Algoritmul de codare JPEG

III.2 Codarea: etape


1. RGB  YUV
n procedurile de compresie a imaginii se prefer o reprezentare a culorii diferit
de cea normal (R,G,B), i anume, reprezentarea (Y,U,V), obinut cu relaiile (10.1).
Valorile componentelor Y, U i V sunt cuprinse ntre -128 i 127.
Datorit absenei detaliilor i contrastului sczut al componentelor U i V,
acestora li se aplic o subeantionare cu factorul 2 pe ambele direcii, vertical i
orizontal, inndu-se cont de faptul c percepia ochiului este mai mic la semnalele de
crominan, fa de cele de luminan. Modul de realizare a subeantionrii const n

10

Universitatea Tehnic Gheorghe Asachi din Iai


Facultatea de Electronic, Telecomunicaii i Tehnologia Informaiei

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.

Fig. 8. Ordinea prelucrrii blocurilor

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

Universitatea Tehnic Gheorghe Asachi din Iai


Facultatea de Electronic, Telecomunicaii i Tehnologia Informaiei

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

Se poate observa c elementele acestei matrice au valorile mari concentrate n


colul din stnga sus, restul fiind valori mici, aproape nule. Explicaia acestui fenomen
este dat de faptul c transformata cosinus discret realizeaz o descompunere "n
frecven". Astfel, coeficienii din colul din stnga sus corespund frecvenelor joase variaii lente de intensitate ntre pixeli, iar pe msur ce se avanseaz ctre colul din
dreapta-jos coeficienii corespund frecvenelor nalte - variaii rapide de intensitate, date
de detaliile fine din imagine. n general, ntr-o imagine real frecvenele nalte au o
pondere mai redus dect cele joase, ceea ce explic valorile obinute n urma
transformrii.

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.

Tabelul 4. Coeficienii de cuantizare pentru luminan (a) i pentru crominan (b)


(a)

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

Universitatea Tehnic Gheorghe Asachi din Iai


Facultatea de Electronic, Telecomunicaii i Tehnologia Informaiei

(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

Eticheta corespunztoare valorii cuantizate a coeficienilor Gij ai transformatei este

Gij

I i , j = t + 0, 5
Qij

unde

(10.36)

Qijt este elementul (i,j) din tabelul de cuantizare i x

este cel mai mare ntreg

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

Valoarea reconstruit este obinut din etichet, prin multiplicarea acesteia cu


intrarea corespunztoare n tabelul de cuantizare. Deci, valoarea reconstruit a 00 va fi

I00 Q00t

adic 2*16=32.

Eroarea de cuantizare n acest caz este 39, 88-32=7, 88.

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

Valoarea reconstruit este 11 i eroarea de cuantizare este 11-6,56 = 4,44.

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

Universitatea Tehnic Gheorghe Asachi din Iai


Facultatea de Electronic, Telecomunicaii i Tehnologia Informaiei

Tabelul 5. Codarea diferenelor etichetelor DC


Clasa

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).

Fig. 9. Parcurgerea n zig zag a matricei coeficienilor cuantizai

14

Universitatea Tehnic Gheorghe Asachi din Iai


Facultatea de Electronic, Telecomunicaii i Tehnologia Informaiei

Deoarece valorile diferite de zero sunt concentrate ntr-un col al matricei, o


parcurgere de tipul linie cu linie nu este eficient. De aceea se prefer o parcurgere n zigzag, ordinea de extragere a elementelor din matrice fiind prezentat n Fig. 9.
Rezult o niruire liniar coeficienilor.
n continuare, se asociaz un cod combinaiei dintre numrul de valori nule (dac
exist) care precede un element diferit de zero i valoarea acestuia din urm. Practic se
codific perechi (Numr de zerouri, Z Valoare, x) n locul fiecrui coeficient n parte.
n realitate, din considerente de reducere a numrului de combinaii posibile, numrul de
zerouri se limiteaz la 16. n cazul n care exist mai mult de 16 elemente nule se emit
coduri speciale (ZRL) care semnific 16 zerouri care nu sunt urmate de un element diferit
de zero. De exemplu, 18 zerouri urmate de un element cu valoarea -21 se vor coda printrun ZRL urmat de codul corespunztor perechii (2,-21). De asemenea, n cazul n care
dintr-un anumit punct al irului pn la sfritul acestuia nu mai exist nici un element
diferit de zero, se emite un alt cod special (EOB) n locul tuturor valorilor nule rmase.
n concluzie, pentru fiecare numr x, precedat de Z zerouri, care formeaz
perechea (Z,x), codorul trebuie:
- s gseasc numrul de zerouri consecutive Z, care l preced;
- s determine linia i i coloana C din Tabelul 5 corespunztoare numrului;
- s identifice din Tabelul 6, dup numrul Z i clasa i, codul Huffman
corespunztor perechii;
- la cuvntul de cod Huffman gsit se concateneaz reprezentarea pe i bii a
coloanei C

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

Universitatea Tehnic Gheorghe Asachi din Iai


Facultatea de Electronic, Telecomunicaii i Tehnologia Informaiei

Tabelul 6. Codarea coeficienilor AC pentru luminan

16

Universitatea Tehnic Gheorghe Asachi din Iai


Facultatea de Electronic, Telecomunicaii i Tehnologia Informaiei

IV. Desfurarea lucrrii


1. Studiai programul Matlab ataat lucrrii
2. Studiai imaginile RGB i YUV de la pag. 2 i 3. n care imagine observai cele
mai multe detalii? n care imagini nu se observ detaliile? Care dintre cele dou
reprezentri credei c este mai potrivit n vederea compresiei?
3. Utiliznd programul Matlab Transformate.m, studiai diverse transformri
bidimensionale pentru imaginile de test. Care dintre acestea conduce la cel mai
mic numr de coeficieni semnificativi? Care ar fi cea mai util pentru
compresie? Unde se situeaz, cu precdere, coeficienii dominani n
transformata DCT? De ce se niruiesc n zig-zag coeficienii DCT ?
4. Utiliznd programul Matlab ataat, modificai valorile din tabela de cuantizare
i observai efectele asupra raportului de compresie. Cnd este compresia mai
puternic? Ce se ntmpl cu calitatea imaginii n acest caz?

17

Universitatea Tehnic Gheorghe Asachi din Iai


Facultatea de Electronic, Telecomunicaii i Tehnologia Informaiei

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,

Seminar: rezolvarea de exerciii de codare a coeficienilor DC i AC cuantizai


conform cu standardul JPEG.

18