Programul de studii: Matematic a si Informatic a Aplicat a n Inginerie [618795]

UNIVERSITATEA POLITEHNICA DIN BUCURES TI
FACULTATEA DE S TIINT E APLICATE
Programul de studii: Matematic a  si Informatic a Aplicat a ^ n Inginerie
PROIECT DE DIPLOM A
COORDONATOR S TIINT IFIC, ABSOLVENT: [anonimizat].dr. Vladimir BALAN Albu Iuliana-CristinaBucure sti
2017

UNIVERSITATEA POLITEHNICA DIN BUCURES TI
FACULTATEA DE S TIINT E APLICATE
Programul de studii: Matematic a  si Informatic a Aplicat a ^ n Inginerie
Aprobat Decan,
Prof. Univ. Dr. Emil PETRESCU
PROIECT DE DIPLOM A
Speci cul  si actualitatea compresiei JPEG
^ n imagistica digital a
COORDONATOR S TIINT IFIC, ABSOLVENT: [anonimizat].dr. Vladimir BALAN Albu Iuliana-CristinaBucure sti
2017

Cuprins
Introducere 4
1 Not iuni generale 7
1.1 Imagini statice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.1 Rezolut ia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.2 Ad^ ancimea de culoare . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.1.3 Indexare colorii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.2 Reprezentarea  si caracterizarea imaginilor . . . . . . . . . . . . . . . . . . 12
1.2.1 Reprezentarea imaginilor . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2.2 Caracterizarea matematic a a imaginilor digitale . . . . . . . . . . . 13
1.3 Reprezentarea numeric a a imaginii color . . . . . . . . . . . . . . . . . . . 15
2 Fi siere JPEG 18
2.1 Stocarea imaginilor ^ n memorie . . . . . . . . . . . . . . . . . . . . . . . . 18
2.2 Stocarea imaginilor ^ n  siere . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3 Metode de compresie 21
3.1 Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.2 Transformarea cromatic a . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.3 Compresia imaginilor f ara pierderi . . . . . . . . . . . . . . . . . . . . . . . 23
3.3.1 Codarea Hu man . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.3.2 Codarea RLC ("run length coding") . . . . . . . . . . . . . . . . . 25
3.4 Compresia cu pierderi a imaginilor statice . . . . . . . . . . . . . . . . . . 27
3.4.1 Codarea predictiv a . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.4.2 Codarea pe blocuri de pixeli . . . . . . . . . . . . . . . . . . . . . . 28
3.5 Sistem de codare bazat pe transformata Cosinus Discret a . . . . . . . . . . 30
4 Standardul de compresie JPEG 36
4.1 Introducere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.2 Codorul si decodorul JPEG . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.3 Algoritmul de codare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.4 Modul de codare progresiv . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.5 Codarea ierarhic a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
5 Comparat ia dintre formatul JPEG  si formatul PNG 43
6 Concluzii 47
48
Bibliogra e 49
3

Introducere
Termenul de compresie se refer a la totalitatea metodelor ce au ca scop reducerea
cantit at ii de date necesare pentru reprezentarea unei imagini. Compresia este folosit a ^ n
general pentru stocarea sau transmiterea imaginilor. Pentru a stoca o imagine avem nevoie
de spat iu considerabil, iar pentru transmiterea ei avem nevoie de un canal de transmisie
de band a larg a. Cel mai frecvent, imaginile se codi c a ^ ntr-o form a comprimat a, exist^ and
^ n momentul de fat a un num ar mare de tehnici de compresie  si un num ar  si mai mare de
formate: GIF, JPEG1,WIF etc.
Domeniul compresiei de imagini este legat de minimizarea num arului de bit i necesari
pentru a reface o imagine, cu aplicat ii ^ n special ^ n transmisia  si stocarea imaginilor.
Aplicat iile din domeniul transmisiei de imagini se ^ nt^ alnesc ^ n televiziunea radiodifuzat a,
comunicat iile spat iale, scaner, etc. Compresia imaginilor este esent ial a din punct de vedere
al memor arii imaginilor ^ n imagistica medical a, tehnica video digital a etc. Ratele de com-
presie au ajuns p^ an a ^ n prezent la 1:100 depinz^ and de calitatea imaginii ref acute. Pentru
a putea realiza portabilitatea aplicat iilor de imagini pe mai multe sisteme, este nece-
sar a implementarea unor standarde pentru compresia datelor. Aceste standarde stabilesc
modalit at ile de stocare  si transmisie a datelor comprimate. Cel mai utilizat standard de
compresie a imaginilor statice este standarul JPEG.
Compresia JPEG este numele dat unui algoritm dezvoltat de Joint Photographic Ex-
perts Group, al c arui scop este de a minimiza dimensiunea  sierului fotogra c. Scopul
JPEG a fost s a dezvolte o metod a de compresie a imaginilor cu ton continuu. ^In 1987
grupul JPEG a desfa surat un proces de select ie bazat pe o apreciere direct a a calitat ii unei
imagini compresate  si a restr^ ans cele 12 metode propuse initial la 3 [15]. ^In acest timp
au fost formate 3 grupuri de lucru pentru ^ mbun at at irea acestor metode iar ^ n ianuarie
1988, pe baza unui proces de select ie mult mai riguros, a fost introdus a o nou a propunere
bazat a pe 8×8 DCT, care avea cea mai bun a calitate a imaginii[9].
JPEG este un sistem de compresie cu pierderi pentru imaginilie color si cu niveluri de
gri. Acesta funct ioneaz a pe 24 de bit i  si este proiectat astfel ^ nc^ at factorul de pierdere
sa poat a reglat de c atre utilizator la dimensunea imaginii, calitatea imaginii,  si este
proiectat astfel ^ nc^ at pierderea are cel mai mic efect asupra percept iei umane [11]. O
prezentare general a a procesului de compresie este prezentat ^ n Figura 1.
Compresia JPEG presupune reprezentarea primar a a culorii cu ajutorul a trei pla-
nuri de culoare, distribuite pe 8 bit i ecare, reprezent^ and ro su, albastru  si verde (RBG).
Acestea sunt culorile folosite de hardware pentru a genera imagini. Primul pas este de a
transforma planul RGB ^ n YIQ sau YUV. Planul Y este folosit pentru a reprezenta lumi-
nozitatea imaginii, I reprezint a interfaza  si Q este componenta de nuant  a (crominant a).
JPEG de ne ste tabele de cuanti care pentru componentele Y, I si Q. Mai jos sunt
prezentate tabelele pentru luminant  a  si crominant  a [9].
1JPEG-(Joint Photographic Experts Group) este o metod a de compresie a imaginilor fotogra ce.
Scopul formatului a fost de a reduce dimensiunea  sierelor ce cont in imagini gra ce de tip fotogra c,
naturale  si cu un num ar mare de culori f ar a a afecta calitatea imaginii.
4

Figura 1: Pa si ^ n compresia JPEG
16 11 10 16 24 40 51 61
12 12 14 19 26 58 60 55
14 13 16 24 40 57 69 56
14 17 22 29 51 87 80 62
18 22 37 56 68 109 103 77
24 35 55 64 81 104 113 92
49 64 78 87 103 121 120 101
72 92 95 98 112 100 103 99
Tabelul 1. Coe cient ii de cuantizare pentru luminant  a
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
Tabelul 2. Coe cient ii de cuantizare pentru crominant  a
Urm atorul pas ^ n algoritmul JPEG este ^ mpart irea ec arui plan de culoare ^ n blocuri
de 8×8. Fiecare bloc este apoi codi cat separat. Primul pas ^ n codarea unui bloc este
de a aplica transformata cosinus ^ n ambele dimensiuni [7]. ^In urma aplic arii transfor-
matei cosinus discret a vom obt ine un bloc 8×8 de termeni. P^ an a ^ n prezent aceasta nu
introduce nici o pierdere. Dup a transformata cosinus, urm atorul pas este de a utiliza
cuantizarea scalar a uniform a. Aceast a cuantizare este controlabil a pe baza parametrilor
 si este principala surs a de pierderi de informat ie ^ n compresia JPEG. Factorii de scalare
sunt speci cat i ^ ntr-un tabel 8×8, ^ n care sunt reprezentate frecvent ele.
Metoda DCT a fost doar potent ial de nit a pe c^ ateva dintre modurile de operare. ^In
anii 1988  si 1990 grupul JPEG  si-a asumat sarcina de a de ni, simula, testa  si valida
aceast a metod a. Standardul propus cont ine cele patru moduri de operare identi cate
5

anterior. Pentru ecare mod, au fost speci cate unul sau mai multe procedee de compresie
sau decompresie [19]. Aceste procedee difer a de la un mod la altul ^ n funct ie de precizia
e santionului din imaginea surs a cu care pot opera sau entropia metodei de codi care a
sursei. Nu exist a restrict ii cu privire la faptul c a orice implementare trebuie s a includ a at^ at
codorul c^ at si decodorul. Multe aplicat ii au doar unul din cele dou a. Cele patru variante
de compresie au rezultat din scopul JPEG de a generic  si diversitatea de formate de
imagine care se ^ ntalnesc ^ n aplicat ii. DCT se aplic a ec arui bloc 8×8. Pentru aplicarea
transform arii se e santioneaz a o imagine la intervale regulate, se analizeaz a componentele
spectrale prezente ^ n e santione, se ^ nl atur a acele frecvent e care afecteaz a imaginea din
punctul de vedere al ochiului uman.
Algoritmul JPEG utilizeaz a coe cient i de cuantizare pentru a cuantiza diferit i coe cient i
de intrare [18]. M arimea pasului de cuantizare este organizat a ^ ntr-un tabel, numit tabel
de cuantizare, tabel prezentat ^ n sect iunile ce vor urma. Apoi coe cient ii DC ai ec arui
bloc se codeaz a diferent ial, urm^ and codi carea coe cient ilor de tip AC. Dup a cuantizare,
maricea 2D, cea care cont ine cei 64 de coe cient i DCT cuantizat i, este transformat a ^ ntr-
un vector prin scanarea zig-zag. Rezultatul ind un  sir de bit i caracterizat i prin sub siruri
de bit i cu aceea si valoare [7].
Lant ul de decodare JPEG este parcurs ^ n ordine invers a a cod arii. Astfel, imaginea
compresat a JPEG este supus a ^ n primul pas unui decodor entropic. Dup a decodarea
entropic a, se aplic a decuantizarea, folosind aceia si coe cient i care au fost folosit i  si la
cuantizare. ^In urma decuantiz arii se obt in coe cient ii transformatei cosinus discrete.
Formatul JPEG este recomandat pentru a  sarea de imagini redate cu o mare vari-
etate de culori. JPEG folose ste o tehnic a de compresie variabil a, care are drept rezultat
obt inerea de  siere mici ^ n comparat ie cu alte formate.
6

Capitol 1
Not iuni generale
1.1 Imagini statice
Imaginile statice sau bitmap, utilizeaz a o gril a dreptunghiular a de pixeli. Fiecare
pixel este atribuit unei anumite locat ii  si valori de culoare. C^ and lucr am cu imagini de tip
bitmap, noi edit am de fapt pixelii [8], nu obiectele sau formele. Imaginile statice reprezint a
mediul electronic, cel mai frecvent pentru imagini cu tonuri continue, precum fotogra i
sau picturi digitale, deoarece acestea pot reprezenta mai e cient gradat iile subtile ale
formelor  si culorilor.
Imaginile statice depind de rezolut ie, deoarece acestea cont in un num ar x de pixeli.
Prin urmare, pot pierde din detalii  si cap at a un aspect neregulat, dac a sunt scalate la
dimensiuni mari pe ecran sau dac a sunt tip arite la o rezolut ie mic a [19].
Imaginile BMP pot varia de la alb-negru p^ an a la 24 de bit i. Un  sier BMP este
format din 3 sau 4 p art i. Prima parte este un antet, urmat de o set iune de informare,
dac a imaginea este indexat a ^ n culori, urmeaz a paleta de culori, iar ultima sect iune este
data pixelilor. Informat iile cu privire la l at ime, ^ nalt ime, tipul de compresie, num arul de
culori sunt cuprinse in antet [16].
BMP este un format simplu, proiectat s a stocheze imagini digitale bitmap, indepen-
dent de un dispozitiv de a  sare. Formatul este uneori cunoscut ca bitmap independent,
deoarece atunci c^ and este ^ nc arcat ^ n memorie, utilizeaz a software-ul Windows, astfel c a
imaginea este p astrat a ca o structur a DIB. Acest format stocheaz a datele de culoare pen-
tru ecare pixel din imagine, f ar a nicio comprimare. De exemplu, o imagine BMP de
10×10 pixeli va include date de culoare pentru 100 de pixeli. Aceast a metod a de stocare a
informat iilor permite o gra c a clar a, de ^ nalt a calitate, dar produce  si dimensiuni mari ale
 sierelor. Formatele JPEG  si GIF sunt, de asemenea imagini bitmap [3], dar utilizeaz a
algoritmi de comprimare a imaginilor, care pot sc adea semni cativ dimensiunile  sierului.
Din acest motiv, imaginile JPEG  si GIF sunt utilizate pe WEB, ^ n timp ce imaginile BMP
sunt adesea folosite pentru imagini imprimabile.
1.1.1 Rezolut ia
Rezolut ia este o m asura net ii unui dispozitiv ce aproximeaz a imaginea, folosind pixeli
nit i. Aceasta este str^ ans legat a de rata de e santionare.
Exist a dou a moduri de speci care a rezolut iei: pentru imprimante si scanere, rezolut ia
este exprimat a ^ n num arul de puncte pe unitatea de lungime [12]. Rezolut ia este speci-
7

cat a ^ n unit at i de puncte per inch. Imprimantele desktop au ^ n general o rezolut ie de
600 dpi sau 1200 dpi, ^ n timp ce "imagesetters" au o rezolut ie ^ ntre 1200  si 3550 dpi.
Domeniile de rezolut ie a scanerelor sunt ^ ntre 300 dpi  si 9600 dpi, pentru nivelul de baz a.
Cu c^ at rezolut ia este mai mare, cu at^ at exist a mai mult i pixeli intr-o imagine. O
rezolut ie mare ^ nseamn a c a o imagine va cont ine mai multe informat ii, iar detaliile sau
tranzit iile dintre culori vor mai detaliate. Astfel cu c^ at ^ ntr-o imagine exist a mai mult i
pixeli, cu at^ at imaginea tip arit a poate mai mare f ar a a pierde din calitate. La o rezolut ie
mic a o imagine poate ap area pixelat a. Num arul de pixeli dintr-o imagine este x  si de
aceea dac a o imagine este m arit a, va sc adea rezolut ia.
O imagine static a este un tablou de valori ai pixelilor, deci este necesar a dimensiunea
^ n pixeli. Spre deosebire de dispozitivele de intrare sau de ie sire, ea nu are o dimensiune
zic a [15]. ^In absent a informat iilor suplimentare, dimensiunea zic a a unei imagini va
depinde de rezolut ia dispozitivului pe care va a  sat a. De exemplu, dac a avem un
p atrat care are latura de 128 de pixeli, dac a ^ l a  s am la 72 dpi, el va vizualizat zic ca
un p atrat cu latura de 1.77 inch. Dac a a  s am f ar a scalare, pe un monitor cu o rezolut ie
mai mare, la 115 dpi, p atratul va avea latura de 5.41 mm [11].
De multe ori, num arul de dpi al imprimantelor este mai mare dec^ at num arul de ppi
al imaginii care trebuie tip arit a. Dac a rezolut ia tipogra c a a unei imprimante este de
exemplu de 600 dpi, iar imaginea digital a trebuie tip arit a cu 96 ppi, atunci pentru ecare
pixel al imaginii vor imprimante pe h^ artie ^ n medie 6.25 de puncte.
^In momentul actual, gra ca pe calculator lucreaz a cu dou a tipuri de imagine: imaginea
raster  si imaginea vectorial a.
Imaginile raster sunt compuse din pixeli, ele pot reproduse corect doar la o anumit a
m arime. Orice m arire a imaginii va face ca rezolut ia, calitatea  si detaliile imaginii s a
scad a [15].
Figura 1.1: Zona marit a a unei imagini raster
Imaginile vectoriale au la baz a vectori, o tehnic a care descrie imaginea printr-un proces
matematic, iar ceea ce face ca imaginea vectorial a s a e difert a de cea raster este c a pot
m arite, f ar a a pierde din calitate [1].
Calitatea superioar a a imaginii suprae santionate va obt inut a numai dac a soft-ul care
realizeaz a sube santionarea o va face ^ ntr-un mod speci c, folosind de informat iile supli-
mentare disponibile ^ n imaginea cu rezolut ie ^ nalt a [17]. ^In general, Browser-ul Web nu re-
alizeaz a sube santionarea la o calitate foarte bun a, iar din acest motiv, imaginile destinate
Word Wide Web ar trebui sube santionate ^ nainte, folosind un program specializat cum
ar Adobe Photoshop. Informat ia, o dat a eliminat a, nu mai poate ref acut a. ^In acest
sens trebuie ^ ntodeauna p astrat a rezolut ia ^ nalt a a imaginilor bitmap, iar sube santionarea
trebuie folosit a numai c^ and este necesar a. Dezavantajul imaginilor cu rezolut ie ^ nalt a este
8

Figura 1.2: Ilustrare a diferent elor dintre imagini raster si vector m arite
spat iul de memorie mare de pe disc  si astfel transferul lor ^ n ret ea este lent. M arimea
unei imagini cre ste cu p atratul rezolut iei, deci ^ n ciuda posibilului c^ a stig ^ n calitate care
ar putea ap area la utilizarea rezolut iei ^ nalte, ^ n practic a trebuie s a folosim adesea cea
mai joas a rezolut ie. De multe ori, ^ n aplicat iile Web se prefer a a  sarea unei imagini la
rezolut ie minimal a [2]. O alt a modalitate pentru reducerea m arimii  sierului f ar a pierderi
inacceptabile ale calit at ii este utilizarea tehnicilor de compresie a datelor.
1.1.2 Ad^ ancimea de culoare
Pentru a reprezenta valorile componentelor unei culori se utilizeaz a num arul 256,
deoarece acesta poate reprezentat pe un octet. ^In practic a se face referire la 256 de
nivele, valorile componentelor de culoare put^ and varia de la 0 la 256. Dac a lu am ^ n con-
siderare spat iul de culoare RGB, unde avem trei componente de culoare, vom folosi pentru
reprezentarea unei culori 3 octet i sau 3 bit i. Num arul de bit i utilizat pentru salvarea va-
lorii unei culori se refer a la "ad^ ancimea de culoare" [2]. Astfel, dac a se folosesc 3 octet i
pentru stocarea valorii unei culori vom spune c a ad^ ancimea de culoare este 24. Folosind
o astfel de reprezentare putem descrie diferite culori ^ n format RGB:
mov -(255, 0, 255);
galben-verzului -(200, 255, 100);
alb-(255, 255, 255);
ro su -(255, 0 , 0)
negru -(0, 0, 0)
Pe l^ ang a ad^ ancimea de culoare pe 24 de bit i se pot utiliza  si alte reprezent ari cum ar
:
ad^ ancimea de 1 bit – utilizat a ^ n cazul imaginilor binare, caz ^ n care se pot de ni
dou a culori disticte. ^In general, acestea sunt alb  si negru, dar se pot de ni  si alte
culori ^ n funct ie de tipul aplicat iei;
ad^ ancimea de 4 bit i – permite o gam a de cel mult 16 culori. Cele mai multe aplicat ii
nu utilizeaz a o astfel de reprezentare datorit a num arului mic de culori utilizabile.
Exist a unele aplicat ii ^ n care aceast a reprezentare se poate utiliza permit and reduc-
erea spat iului de stocare a informat iei;
9

ad^ ancimea de 8 bit i – permite o gam a de 256 de culori. Este una din cele mai
des ^ nt^ alnite reprezent ari, at^ at pentru aplicat iile de uz general c^ at  si pentru cele
profesionale [13]. ^In paragraful urm ator vom trata mai detaliat aceast a reprezentare;
ad^ ancimea de 16 bit i – permite o gam a de 65536 de culori [9]. Cu toate c a 16 nu este
divizibil cu 3, la stocarea valorilor componentelor RGB se folosesc dou a variante:
e un bit nu se utilizeaz a, e se folosesc numere diferite de bit i pentru stocarea
componentelor de culoare. Cel mai frecvent este utilizat urm atorul: r = 5 bit i, g =
6 bit i, b = 5 bit i, asta pentru c a ochiul este mai sensibil la detaliile de verde dec^ at
la cele de ro su sau albastru.
Cu toate c a 24 de bit i sunt su cient i pentru a reprezenta toate culorile pe care ochiul
uman le poate distinge, cu toate acestea cel mai des se utilizeaz a ad^ ancimi de culoare
de ordinul 30, 36 sau 48 bit i/pixeli. Exist a  si formate de imagine, cum ar formatul
PNG , care suport a o astfel de ad^ ancime de culoare. Exist a dou a motive care stau la baza
utiliz arii ad^ ancimilor de culoare mai mare de 24 de pixeli  si anume:
informat ia suplimentar a cont inut a face posibil a o aproximare mai exact a atunci
c^ and dorim s a reproducem o imagine cu o ad^ ancime de culoare mai mic a;
folosind o ad^ ancime de culoare mai mare, putem face o distingere extrem de n a a
culorilor, astfel c a anumite prelucr ari care se bazeaz a pe culoare vor avea e cient  a
m arit a.
Ad^ ancimea de culoare este factorul determinant ^ n stabilirea dimensiunii unui  sier.
^In cazul unei ad^ ancimi de 24 de pixeli ecare bit are nevoie de 3 octet i pentru stocarea
informat iei de culoare, ^ n timp ce pentru o ad^ ancime de 8 bit i, spat iul necesar stoc arii
este de doar 1 octet. Prin simpla reducere a ad^ ancimii de culoare, putem obt ine o sc adere
substant ial a a dimensiunii unui  sier [14]. Orice decizie ^ n sensul reducerii ad^ ancimii de
culoare va trebui luat a t in^ and cont de caracteristicile aplicat iei  si ale sistemului pe care
aceasta ruleaz a.
1.1.3 Indexarea culorii
Constr^ angerea major a care este luat a^ n considerare atunci c^ and vorbim despre reprezen-
tarea RGB este aceea c a  sierele de imagine pe 24 de bit i ocup a un spat iu prea mare pe
suportul de stocare  si ^ n cazul stoc arii unui num ar mai mare de astfel de  siere, poate s a
devin a o problem a.
Practic ^ n cazul utiliz arii culorilor indexate se folose ste un grad de indirectare. Astfel,
^ n loc s a utiliz am 8 bit i pentru stocarea valorilor R,G,B, vom folosi acest octet pentru
stocarea unui index, ^ ntr-un tabel cu 256 de pozit ii, ecare dintre acestea cont in^ and
o valoareRGB pe 24 de pixeli. De exemplu, dac a un pixel are culoarea format a din
combinat ia (255, 127, 255), ^ n loc s a stoc am aceast a informat ie pe 3 octet i, putem stoca
un index pe un octet care s a identi ce locat ia din tabel, unde este memorat a valoarea
culorii respective. Presupun^ and c a valoarea (255, 127, 255) este stocat a ^ n a 18-a locat ie
din tabel, asta ^ nseamn a c a pixelul din tabel trebuie s a cont in a valoarea o set 17, a sa
cum se poate observa ^ n Figura 1.3.
Utilizarea unui tabel cu doar 256 de pozit ii reduce num arul de culori care pot
cont inute ^ ntr-o imagine. Folosirea unui set standard de 256 de culori nu este valabil a,
dat a ind natura extrem de variat a a imaginilor [18].
Atunci c^ and se folose ste indexarea culorilor,  sierul ^ n care se memoreaz a imaginea
va trebui s a cont in a  si paleta de culori, per total m arimea  sierului este de aproximativ
10

Figura 1.3: Utilizarea paletei de culori
trei ori mai mic a. Exist a mai multe formate de  siere care permit stocarea imaginii cu
palet a de culori, cum ar : BMP, PNG, JPG, GIF, TIFF  si altele [2]. Atunci c^ and acestea
genereaz a imaginile color cu palet a de culori, av^ and acces la culorile care sunt cont inute
^ n imagine, nu vom avea probleme deosebite legate de calitatea imaginii obt inute [17].
Exist a dou a cazuri: imaginile scanate sau imaginile digitale, ^ n care trebuie s a convertim
o imagine de la 24 de bit i la 8 bit i, ceea ce ^ nseamn a o reducere drastic a a num arului
de culori, deci  si o reducere a calit at ii imaginii. ^In Figura 1.4 este prezentat un astfel de
exemplu.
Figura 1.4: Exemplu de trecere de la 24 de bit i la 8 bit i
^In continuare vom vedea un exemplu de utilizare a paletei de culori, prezentat ^ n
Figura 1.5.
11

Figura 1.5: Exemplu de utilizare a imaginilor cu palet a de culori
1.2 Reprezentarea  si caracterizarea imaginilor
1.2.1 Reprezentarea imaginilor
O imagine digital a este o matrice bidimensional a de e santioane, ^ n care ecare e santion
poart a numele de pixel. Precizia cu care se lucreaz a este determinat a de num arul de nivele
de gri cu care se poate reprezenta intensitatea unui pixel  si poate exprimat a ca num arul
de bit i/pixel [1]. ^In funct ie de acest parametru, imaginile pot clasi cate ^ n:
imagini binare , reprezentate printr-un bit/pixeli;
gra c a pentru calculator , reprezentat a prin patru bit i/pixeli;
imagini atonale ("grayscale" – pe scara de gri) , reprezentate prin opt bit i/pixeli;
imagini color , reprezentate prin  saisprezece, dou azeci  si patru sau mai mult i
bit i/pixeli [1].
^In general, reprezentarea imaginilor este realizat a ^ n domeniul continuu. Pentru o ima-
gine monocrom a, reprezentarea este realizat a prin intermediul unei funct ii F(x;y;t ), unde
(x;y) apart ine domeniului spat ial  si teste variabila timp. Senzat ia de culoare se obt ine
prin amestecul culorilor primare ro su ( Red), verde ( Green)  si albastru ( Blue). Dac a lu am
^ n considerare spat iul de reprezentare a culorilor R,G,B (Figura 1.6), dreapta pentru care
R=G=B reprezint a tocmai scara de gri ^ ntre alb  si negru.
Figura 1.6: Reprezentarea imaginilor color ^ n spat iul RGB
12

^In practic a, imaginile sunt reprezentate ^ n domeniul discret spat ial prin intermediul
matricelor [3]. O imagine digital a monocrom a este o funct ie bidimensional a care speci c a
intensitatea luminii ^ n ecare punct:
x= 1;:::;N y = 1;:::;M
f(x;y) =2
6664f(1;1)f(1;2)::: f (1;M)
f(2;1)f(2;2)::: f (2;M)
…………
f(N;1)f(N;2)::: f (N;M )3
7775, (1.1)
unde pentru ecare 1 xN;1yM;(x;y) sunt coordonatele spat iale ale punctului
^ n imagine  si f(x;y)f0;1;;L1g, undeLeste num arul de nivele de gri.
O imagine digital a color feste un vector cu componente matrice, ecare component a
indic^ and gradul de luminozitate al c arui pixel ( x;y) ^ n banda de culoare corespunz atoare.
De exemplu, ^ n reprezentarea RGB:1
x= 1;;N y = 1;;M f = (fR;fG;fB);unde
fR(x;y) =2
6664fR(1;1)fR(1;2)::: f R(1;M)
fR(2;1)fR(2;2)::: f R(2;M)
…………
fR(N;1)fR(N;2)::: f R(N;M )3
7775,
fG(x;y) =2
6664fG(1;1)fG(1;2)::: f G(1;M)
fG(2;1)fG(2;2)::: f G(2;M)
…………
fG(N;1)fG(N;2)::: f G(N;M )3
7775,
fB(x;y) =2
6664fB(1;1)fB(1;2)::: f B(1;M)
fB(2;1)fB(2;2)::: f B(2;M)
…………
fB(N;1)fB(N;2)::: f B(N;M )3
7775.
1.2.2 Caracterizarea matematic a a imaginilor digitale
Tehnicile de procesare a imaginilor digitale presupun at^ at proces ari in cazul 2-D,
situat ie ^ n care este utilizat a reprezentarea matriceal a conform relat iilor (1.1)  si (1.2), c^ at
 si proces ari uni-dimensionale. Transformarea poate efectuat a prin liniarizarea la nivel
de coloan a sau linie. ^In continuare fdesemneaz a reprezentarea matriceal a a unei imagini
monocrome.
Liniarizarea la nivel de coloan a
Pentrum= 1::M(coloan a)
a) Fievm= [0;0;:::;1;0;:::;0]T(1 pe pozit ia m) vectorul cu Melemente.
1RGB ro su, verde, albastru (Red, Green, Blue ^ n englez a)
13

fvm=2
6664f(1:1)::: f (1;m)::: f (1;M)
f(2;1)::: f (2;m)::: f (2;M)
……
f(N;1)::: f (N;m )::: f (N;M )3
77752
66666666640

0
1
0

03
7777777775=2
6664f(1;m)
f(2;m)

f(N;m )3
7775. (1.1.1)
Vectorulfvmreprezint a cea de-a m-a coloan a din f.
b) FieNmmatricea cu NMlinii  siNcoloane.
Nm=2
6666666664ONN

ONN
IN
ONN

ONN3
7777777775matricea 1

matriceam1
matriceam
matriceam+ 1

matriceaM(1.1.2)
unde 0 NNeste o matrice de ordin Ncu toate elementele 0, iar INeste matricea unitate
de ordinN.
fcm=Nm(fvm) =2
6666666664ONN(fvm)

ONN(fvm)
INN(fvm)
ONN(fvm)

ONN(fvm)3
7777777775=2
6666666664ON1

ON1
fvm
ON1

ON13
7777777775, (1.1.3)
undefcmeste vectorul cu MNelemente ^ n care doar cel de-al m-lea segment este nenul
 si egal cu coloana mdinf.
Transformarea invers a este:
f=PM
m=1NT
mfcvT
m:
Liniarizarea la nivel de linie
Pentrun=1…N(linie)
a) FiewT
n=[0,0,…,0,1,0,…,0] (1 pe pozitia n) un vector cu Ncomponente.
wT
nf= [0;0;:::;0;1;0;:::;0]2
66666664f(1;1)f(1;2)f(1;M)
f(2;1)f(2;2)f(2;M)
…………
f(n;1)f(n;2)f(n;M )
…………
f(N;1)f(N;2)f(N;M )3
77777775:
= [f(n;1)f(n;2)f(n;M )]:
b) FieMnmatricea cu Mlinii  siNMcoloane.
14

Mn= [OMMOMMIMMOMMOMM];
undeOMMeste o matrice p atratic a de ordin Mcu toate elementele 0, iar IMeste ma-
tricea unitate de ordin M.
fln=wT
nfMn=
wT
nfOMM::: wT
nfOMMwT
nfIMM::: wT
nfOMM
=
O1M::: O 1MwT
nfO1MO1M::: O 1M
;
undeflneste un vector cu NMelemente ^ n care doar elementul neste nenul  si egal
cu liniandinf.
Matricea liniarizat a pe linii este:
fl=NX
n=1wT
nfMn:
Matricea invers a este:
f=NX
n=1wnflMN
n:
1.3 Reprezentarea numeric a a imaginii color
O imagine se reprezint a ca o matrice de puncte, ecare punct ind caracterizat de o
culoare. De exemplu pentru imaginea din Figura 1.7 (a) se poate evident ia acest lucru
dac a se m are ste o sect iune a imaginii astfel ^ nc^ at matricea de puncte s a devin a vizibil a,
ca ^ n Figura 1.8 (b).
Pentru a reprezenta o astfel de imagine trebuie s a utiliz am un mod de reprezentare
numeric al culorii. Pornim de la observat ia c a orice culoare se obt ine prin amestecul ^ n
diferite proport ii a trei culori de baz a: ro su, verde  si albastru. Intensitatea luminoas a a
unei culori poate reprezentat a numeric sub forma unui ^ ntreg de opt bit i, valoarea 0
corespunz^ and intensit at ii nule iar cea maxim a ind reprezentat a de 255 [18]. La modul
ideal, nu se pot utiliza m arimi care variaz a continuu ^ n oricare direct ie. ^In sistemele
numerice, nu se pot utiliza m arimi care variaz a continuu, ci doar ^ n forma discretizat a a
acestora. Discretizarea este operat ia prin care se reprezint a o m arime cu variat ie continu a
sub forma unui ansamblu nit de e santioane [3]. De exemplu, temperatura mediului
ambient variaz a ^ n mod continuu pe durata zilei, totu si se poate reprezenta evolut ia
acesteia prin intermediul valorilor m asurate la un interval de un minut. Se poate observa
c a pentru o captur a c^ at mai precis a, aceasta trebuie m asurat a la un interval c^ at mai scurt
posibil. ^In caz contrar se pot pierde anumite variat ii care au ap arut ^ ntre dou a m asur atori.
^In concluzie, o imagine trebuie s a e discretizat a^ nainte de a pune problema reprezent arii
numerice. Discretizarea const a ^ n ^ mpart irea imaginii ^ ntr-un caroiaj asem an ator unei ta-
ble de  sah. Fiecare set iune de imagine delimitat a de acest caroiaj va considerat a ca
av^ and o culoare uniform a, o medie a culorii existente pe aceasta set iune. Aceste sect iuni
mai sunt denumite  si pixeli, num arul acestora de nind rezolut ia imaginii. Astfel, se
poate a rma c a dac a o imagine are o rezolut ie de 640×480 pixeli aceasta ^ nseamn a c a pe
suprafat a acesteia s-a de nit un caroiaj care o ^ mparte pe orizontal a ^ n 640 de sect iuni
15

Figura 1.7: (a)
Figura 1.8: (b)
iar pe vertical a ^ n 480. Operat ia de discretizare a unei imagini este pus a ^ n evident  a ^ n
imaginea de la gura 1.8(b), care a fost m arit a ^ n mod special pentru a se putea observa
caroiajul.
Pasul urm ator ^ l constituie g asirea unei reprezent ari pentru culoare. Orice culoare
poate descompus a ^ n culorile primare, cele ment inute mai sus, cu alte cuvinte orice
imagine poate obt inut a prin suprapunerea aditiv a a trei radiat ii luminoase av^ and aceste
trei culori  si intensit at i diferite. ^In Figura 1.10 urm atoare se prezint a obt inerea c^ atorva
culori prin acest mecanism:
Pentru a reprezenta numeric o culoare este su cient s a reprezent am intensit at ile lu-
minoase ale celor trei culori primare. Dac a aloc am c^ ate 8 bit i pentru ecare component a
se pot codi ca 256 nivele de intensitate, astfel c a absent a culorii se codi c a prin valoarea
00000000 binar iar intensitatea maxim a prin cea mai mare valoare reprezentat a pe 8 bit i
 si anume 11111111 binar.
Aceast a reprezentare t ine mai mult de modalit at ile tehnice de captare  si reproducere
a imaginii  si mai putin de mecanismul ziologic de percepere a culorii. Prin diferite
experimente s-a constatat c a din punct de vedere al capacit at ii de percepere a detaliilor,
ochiul este mai sensibil la intensitatea luminoas a a culorii dec^ at la nuant a. Din acest
motiv este interesant a o alt a modalitate de reprezentare a culorii care s a t in a cont de
aceast a observat ie, un exemplu ind reprezentarea YUV. ^In acest caz, ^ n locul celor trei
componente primare RBG se utilizeaz a alte trei m arimi derivate din acestea  si anume:
16

Figura 1.9: Pro ul de culoare
Y = 0.30R+0.5G+0.11B
U = R-Y=0.70R-0.59G-0.11B
V = B-Y=-0.30R-0.59+0.89B.
^In cazul acestei reprezent ari, componenta Y corespunde intensit at ii luminoase perce-
pute pentru respectiva culoare. Aceast a component a mai poart a numele de luminant  a.
Componentele U  si V sunt cele care de nesc nuant a culorii, din acest motiv sunt denumite
componente de crominant  a. Se observ a c a se calculeaz a ca diferent  a dintre componenta
ro sie respectiv albastr a  si cea de luminant  a.
17

Capitol 2
Fi siere JPEG
2.1 Stocarea imaginilor ^ n memorie
Principalul limbaj de programare utilizat pentru aplicat ii cu calcule intensive r am^ ane
limbajul C(C++). Stocarea imaginilor se va face, evident, prin intermediul unor variabile
ce implementeaz a structuri de date bidimensionale. Ceea ce este deosebit, este modul de
declarare a acestora: declararea static a nu este convenabil a din cauza dimensiunilor ^ n
general mari ale imaginilor,  si deci este necesar a o declarare dinamic a. Particularitatea
este dat a de memorarea separat a a ec arei linii (sau coloane) a matricii ^ ntr-un vector
alocat dinamic  si gruparea adreselor de ^ nceput a acestora ^ ntr-un vector de pointeri, la
care se va ret ine adresa de ^ nceput (deci un alt pointer) [17]. Dac a consider am un tip
generic de date pentru componentele matricii (caracter, ^ ntreg sau real), atunci o secvent  a
^ n C de declarare a unei imagini poate :
tip ** imagine;
unsigned int contor;
imagine=(tip**) malloc(nr_linii*sizeof(tip*));
for (contor=0;contor<nr_linii;contor++)
imagine[contor]=(tip*) malloc(nr_coloane*sizeof(tip));
Se remarc a folosirea constantelor nrlinii sinrcoloane  si a tipului generic tippentru
valoarea pixelilor. Linia a 3-a aloc a spat iul pentru un masiv de pointeri la date de tip
pointer; spat iul de memorie necesar (argumentul funct iei malloc ) este dat de num arul de
pointeri pe liniile imaginii ce ^ nmult e ste dimensiunea unui astfel de pointer ( sezeof(tip
*)). Valoarea imagine[contor] este adresa de ^ nceput a spat iului de memorie la care
^ ncep valorile pixelilor de pe linia contor ; ace stia sunt stocat i ^ ntr-un vector declarat de
malloc(nr coloane*sizeof(tip)) . Trebuie remarcat a conversia de tip (cast) obligatorie, la
^ nsot irea ec arei aloc ari de memorie. De asemenea, se observ a c a secvent a anterioar a
nu face niciun fel de veri care a succesului operat iei de alocare de memorie (veri carea
faptului c a valoarea returnat a de funct ia malloc nu este NULL ).^In mod implicit, tot i
pixelii sunt init ializat i cu [15].
Spre deosebire de limbajul C,limbajul MatLab1aduce mari simpli c ari. Exist a un sin-
gur tip de date, reprezentate pe 8 octet i. Orice variabil a MatLab este creat a ^ n momentul
folosirii sale ^ n membrul st^ ang al unei expresii; orice variabil a este o matrice (scalarul este
o matrice de o linie  si o coloan a).
1MatLab-Matrix Laboratory este un mediu interactiv de programare pentru calculele  stiint i ce  si din
inginerie. Funct iile de baz a ale programului sunt extinse de numeroase pachete de funct ii specializate
pentru diferite domenii de aplicare.
18

Funct iile returneaz a matrici iar secvent a C anterioar a, este echivalent a cu:
imagine=zeros(nr_linii,nr_coloane);
2.2 Stocarea imaginilor ^ n  siere
Fotogra a digital a utilizeaz a numeroase formate de  siere, ecare dintre ele adaptate
unei anumite utiliz ari: captur a, prelucrare, arhivare. Cele mai utilizate tipuri de  siere
de imagine sunt: JPEG, TIFF, GIF, PNG, DNG etc.
Spre deosebire de imaginile vectoriale, imaginile fotogra ce fac parte din categoria
celor matriceale. Acest gen de imagine este alc atuit din pixeli. Pixelii pot asem anat i cu
pl acile de faiant  a de pe un perete, ei ind dispu si ^ n r^ anduri suprapuse pentru a acoperi
formatul imaginii. La a  sarea pe ecran sau la imprimare, mai mult i pixeli sunt a  sat i pe
unitatea de lungime, pentru a avea impresia de detalii bine de nite.
Pentru imaginile alb-negru, deoarece ochiul uman nu poate distinge mai mult de 200
de nuant e de gri, s-a considerat c a 256 este cel mai apropiat num ar care satisface aceast a
situat ie, de aceea, imaginile alb-negru sunt codi cate cu 8 bit i pentru ecare pixel.
JPEG este un algoritm de compresie, propus de Joint Photogra c Expert Group  si care
a fost destinat comprim arii imaginilor alb-negru sau color, luate din realitate. Algoritmul
de compresie se bazeaz a pe sensibilitatea crescut a a ochiului uman la variat iile mici de
luminant  a  si sensibilitatea mai redus a la variat iile mici de culoare [10]. Algoritmul acord a
mai mult a atent ie pentru modi c arile ne de luminant  a  si o pondere mai mic a pentru
culoare, ^ ntruc^ at imaginea comprimat a este destinat a observ arii de c atre oameni.
Compresia JPEG se face cu pierderi de informat ie, adic a o parte din informat iile
det inute de imaginea init ial a sunt ^ nl aturate de nitiv. Dac a avem nevoie de o metod a
f ar a pierdere de informat ie, putem alege metoda TIFF, dar ^ n aceast a situat ie,  sierul va
mult mai mare.
O proprietate foarte util a a algoritmului JPEG este capacitatea de a avea un grad
variabil de comprimare, ales de utilizator. Aceasta ^ nseamn a c a dac a dorim obt inerea
unui  sier de imagine mai mic, se poate alege o rat a mare de comprimare, iar pentru a
ment ine calitatea la o cot a ridicat a, se alege un grad redus de comprimare. La prima
comprimare a imaginilor, chiar  si pentru un grad mediu, pierderea ^ n calitate este minor a.
Toate aparatele fotogra ce digitale, pentru a realiza economie de spat iu pe cartela de
memorie, prezint a posibilitatea de a comprima imaginea desc arcat a de pe CCD ^ n imagine
comprimat a JPEG^ n diverse rapoarte, f ar a o degradare semni cativ a. Dac a  sierul JPEG
este deschis, prelucrat, salvat, apoi din nou deschis, prelucrat si salvat, de mai multe ori,
se vor observa pierderile de calitate.
Formatul GIF este mai vechi dec^ at JPEG, este superior ^ n privint a calit at ii imaginii,
a ratei de comprimare sau a ambelor, dar are un pachet cu o palet a redus a de culori,
deoarece, prin convent ie, GIF are maximum 256 de culori. Imaginile optime pentru
comprimare prin metoda GIF sunt cele cu linii  si cu suprafet e uniform colorate, cum sunt
cele desenate cu programe de gra c a. Cu c^ at imaginea cont ine mai multe nuant e, cu atat
JPEG se descurc a mai bine. GIF comprim a bine imaginile netede, cum ar chenarele
fotogra ilor sau conturul literelor aplicate peste o imagine, pe care JPEG le red a mai difuz,
din cauza rotunjirilor inerente ^ n calculele matematice pe care le efectueaz a algoritmul de
compresie.
^In incercarea de a corecta de cient ele  sierelor de tip GIF, a ap arut formatul PNG  si
care prezint a codi care pe 8 bit i sau pe 24 de bit i, inclusiv gestionarea transparent ei pe 256
19

nivele. Formatul PNG este recunocut de practic toate programele moderne de prelucrare
 si navigare pe internet. Formatul PNG-24 suport a  si imagini cu tonuri continue, dar
dimensiunile  sierelor sunt mai mari ca cele JPEG.
Tagged Image File Format (TIFF) este un format de  siere de imagine, creat de
compania Aldus  si a devenit rapid suportat de toate programele de prelucrare  si vizionare
a imaginilor digitale. Calitatea imaginii digitale^ n format TIFF esre foarte bun a. Fi sierele
TIFF pot suferi prelucr ari repetate, f ar a afecta calitatea, deoarece informat ia este stocat a
f ar a comprimare  si f ar a pierderi. Dezavantajul major al formatului este dimensiunea
foarte mare [13].
Formatul TIFF este recomandat ca  sier de salvare ^ ntre etapele de prelucrare ale
imaginilor pe calculator, deoarece permite salv ari repetate, f ar a degradarea calit at ii imag-
inii. Poate folosit pentru stocarea sau arhivarea imaginilor, de si dimensiunile mari ale
 sierelor ^ l fac cam nepractic.
Fi sierele de imagine RAW sunt  siere brute, ce cont in datele primare, a sa cum sunt
ele furnizate de captator, f ar a nicio modi care. ^In header-ul  sierului RAW exist a ^ ns a
informat ii referitoare la toate set arile camerei ^ n momentul fotogra erii  si care pot
utilizate ca punct de plecare pentru prelucrare. Dimensiunile sunt mari, dar ceva mai
mici dec^ at  sierul TIFF, iar calitatea imaginii este maxim a.
Formatul RAW are dou a dezavantaje majore: implic a obigatoriu o prelucrare, pentru
a putea imprimat  si ecare produc ator de camer a foto digitale are un format speci c
de  sier. Acesta de regul a nu poate prelucrat cu programul unei rme concurente.
Adobe Camera RAW ^ ncearc a s a t in a pasul cu ultimele formate de  siere RAW
ap arute, dar un nou tip de  sier implic a o actualizare a programului.
Formatul de  sier DNG (Digital NeGative) a fost creat recent de Adobe ^ n intent ia
de a pune la dispozit ie fotogra lor un format universal de  sier RAW. Formatul DNG a
fost adoptat at^ at de unii produc atori de camere foto digitale, c^ at  si de unii produc atori
de software. Fi sierele de tip DNG prezint a acelea si avantaje  si dezavantaje ca cele de tip
RAW. Compania Adobe ne asigur a c a va furniza permanent suport pentru acest tip de
 siere.
20

Capitol 3
Metode de compresie
3.1 Introducere
Metodele uzual folosite pentru reducerea cantit at ii de informat ie prezente ^ n imaginile
digitale se ^ maparte ^ n dou a categorii:
codarea predictiv a;
codarea prin transform ari.
Codarea predictiv a exploateaz a redundant a existent a ^ n imagine, ^ n schimb codarea prin
transform ari realizeaz a modi carea structurii de date a imaginii ^ n alt a matrice. O cate-
gorie aparte a algoritmilor de compresie sunt reprezentat i prin metodele zice de com-
presie: sube santionarea, cuantizarea brut a, repetarea cadelor. Aceste metode se bazeaz a
pe reducerea frecvent ei de e santionare, num arului de nivele de cuantizare  si a frecvent ei
cadrelor, p^ an a la limitele distorsion arii prin conturare, a imaginii [6] Distorsiunile intro-
duse sunt, pentru acela si raport de compresie, mai mari dec^ at cele introduse de metodele
performante.
Compresia de date se bazeaz a pe diferit i algoritmi de calcul care pot implementat i
at^ at software c^ at  si hardware. Exist a dou a tipuri de compresie:
cu pierderi;
f ar a pierderi.
Tehnica de compresie f ar a pierderi permite refacerea perfect a a imaginii originale, ^ n
schimb metoda de compresie cu pierderi reface imaginea asem an ator cu originalul dar nu
identic. Cu ajutorul acestor metode se pot obt ine rate de compresie mult mai mari  si
din acest a cauz a, sunt folosite cu prec adere pentru compresia imaginilor ^ n detrimentul
tehnicilor f ar a pierderi.
3.2 Transformarea cromatic a
^Intr-o imagine color, JPEG comprim a ecare component a de culoare separat. De si
este posibil a comprimarea componentelor de ro su, verde, albastru intr-un mod e cient,
totu si comprimarea JPEG lucreaz a mai e cient c^ and informat iile de culoare sunt aplicate
sub form a de luminant  a (st alucire)  si crominant  a. Acest lucru este mult mai folositor,
deoarece ochiul este mai put in sensibil la schimb arile de culoare dec^ at la schimb arile de
luminozitate.
21

^Intr-o imagine de tip RGB , toate cele trei canale cont in informat ii despre luminozitate
 si ca urmare necesit a o codare cu aceea si rat a [9]. ^In cazul reprezent arii YUV , componenta
Figura 3.1: Conversia ^ n formatul YUV din RGB
Ycorespunde intensit at ii luminoase. Aceast a component a mai este intalnit a  si sub numele
de luminant  a. Componentele U  si V sunt cele care de nesc nuant a culorii, din acest motiv
sunt denumite componente de crominant  a. Leg atura dintre componentele RGB  si cele
YUV se exprim a prin relat ia:
2
4Y
U
V3
5=2
40.299 0.587 0.114
-0.148 -0.289 0.437
0.615 -0.515 -0.1003
52
4R
G
B3
5.
Pentru a reface informat iile init iale vom avea nevoie de valorile tripletului RGB. Pentru
acest lucru vom folosi urm atoarele formule:
2
4R
G
B3
5=2
41 0 1.140
1 -0.395 -0.581
1 2.032 03
52
4Y
U
V3
5.
Unul dintre sistemele de coordonate cel mai utilizat ^ n prelucrarea  si compresia imaginilor
este sistemul YCbCr. La fel ca  si ^ n cazul YUV componenta Yreprezint a luminant a ^ n
timp ce componentele CbrespectivCrreprezint a semnalele de crominant a. Pornind de la
componentele primare de culoare RGB putem scrie urm atoarele relat ii:
Y= 0.299R+0.587G+0.114B
Cb=0.564(BY)
Cr=0.713(RY).
Avantajul reprezent arii YUV este acela c a separ a componenta de luminant a, pentru
care ochiul este foarte sensibil, de componentele de nuant  a pentru care sensibilitatea este
mai redus a. Acest lucru face posibil a reducerea informat iei asociate unei imagini prin
utilizarea unei rezolut ii mai reduse pentru componentele de crominant  a.
22

3.3 Compresia imaginilor f ara pierderi
Compresia f ar a pierderi face referire la metode de compresie pentru care setul original
de date necomprimate poate ref acut exact din  sirul comprimat. Necesitatea folosirii
compresiei f ar a pierderi const a ^ n aceea c a multe aplicat ii nu permit introducerea erorilor
^ n semnalul original. Exist a o serie de algoritmi de compresie f ar a pierderi care se folosesc
cu succes ^ n domeniul imagisticii. Pentru ^ nceput prezent am care sunt aspectele generale
legate de compresia f ar a pierderi.
S a consider am o surs a Sde simboluri aleatoare s1;s2;:::;s n.Spoate o imagine
digital a, iar sireprezint a una din cele Nvalori posibile pe care le poate lua un pixel din
imagine [10]. Dac a pireprezint a probabilitatea de aparit ie a simbolului siatunci putem
de ni informat ia ca ind:
I(si) = log1
pi=logpi:
Dac a baza logaritmului ar 2, atunci informat ia se m asoar a ^ n bit i, iar dac a baza este
10, atunci informat ia se m asoar a ^ n digit i, dar ^ n general m asur am informat ia ^ n bit i pe
simbol. Conform teoremei lui Shannon, entropia unei surse Seste de nit a ca ind:
H(S) =X
ipilog1
pi:
Conform teoriei informat ionale, dac a simbolurile sisunt distincte, atunci num arul
mediu de bit i necesari pentru a coda simbolurile respective, este dat de entropia sursei
[15]. ^In practic a, entropia unei surse nu se cunoa ste, ea se poate estima cel mult depinz^ and
de modelul de probabilitate ales.
Avem urm atoarea secvent a de simboluri: 4 5 8 6 7 8 9 4 8,  si presupunem c a avem o
surs a care genereaz a 6 simboluri: s1=4,s2=5,s3=4,s4=7,s5=8,s6=9.^In cazul ^ n
care folosim un model de probabilitate ^ n care toate simbolurile au aceea si probabilitate
de aparit ie pi=1
6, atunci entropia sursei este:
H(S) = 61
6log26 = 2:585:
Dac a folosim acest model de probabilitate, nu vom putea g asi o schem a de codare care
s a codeze simbolurile cu mai put in de 2.585 bit i pe e santion. ^In cazul ^ n care se alege un
model de probabilitate ^ n care pi=3
10,p2=3
10 sip3=p4=p5=p6=1
10, entropia
obt inut a ^ n acest caz este 2.371.
Schema bloc a unui codor f ar a pierderi este prezentat a ^ n Figura 3.2. Folosind un set
de simboluri de intrare se genereaz a un model de probabilitate care va folosit de blocul
de alocare a cuvintelor de cod. O astfel de combinare ^ ntre blocul de alocare a cuvintelor
de cod  si modelul probabilit at ii poart a generic numele de codare entropic a. Ideea de baz a
^ n codarea entropic a este folosirea cuvintelor de cod c^ at mai scurte pentru simbolurile cu
probabilitate mare  si respectiv folosirea cuvintelor de cod mai lungi pentru simbolurile cu
probabilitatea de aparit ie mai mic a [8]. Modelul de probabilitate poate obt inut e din
analiza simbolurilor de intrare c^ at  si prin folosirea unui set de date prede nit.
23

Figura 3.2: Schema bloc a codorului f ar a pierderi
3.3.1 Codarea Hu man
^In general, comprimarea datelor const a ^ n a lua un
ux de simboluri  si a le transforma
^ n coduri. Dac a compresia este e cient a,
uxul rezultat de coduri este mai mic dec^ at
simbolurile int iale. Decizia de a emite un anumit cod pentru un anumit simbol sau un
set de simboluri se bazeaz a pe un model. Modelul este pur  si simplu o colect ie de date
 si reguli folosite pentru a procesa simbolurile de intrare  si de a determina codul de ie sire.
Programul folose ste modelul pentru a de ni cu exactitate probabilitat ile ec arui simbol,
pentru a produce un cod corespunz ator acestor probabilit at i [17]. Modelarea  si codi carea
sunt dou a lucruri distincte. Oamenii folosesc frecvent termenul de codi care pentru a se
referi la ^ ntregul proces de compresie a datelor ^ n loc de o singur a component a a acestui
proces.
^In anul 1952, D.A. Hu man a publicat o metod a e cient a a schemelor de codare.
Aceast a metod a reprezint a un algoritm de compresie a datelor f ar a pierderi [11]. Ideea
acestui algoritm este de a atribui coduri de lungime variabil a pentru caracterele de in-
trare, lungimea codurilor atribuite se bazeaz a pe frecvent ele de caractere corespunz atoare.
Caracterul cel mai frecvent devine cel mai mic cod  si caracterul cel mai put in frecvent
devine cel mai mare cod. Principiul este de a utiliza un num ar mai mic de bit i pentru a
codi ca datele ^ n coduri binare, ^ n funct ie de frecvent a aparit iei lor.
^In cazul codi c arii Hu man, ie sirea real a a codi catorului este determinat a de un set
de probabilit at i. La utilizarea acestui tip de codare, simbolul care are o probabilitate
foarte mare de aparit ii, genereaz a un cod cu un num ar mic de bit i, iar un simbol cu o
probabilitate mic a genereaz a un cod cu un num ar mare de bit i.
Codare Hu man constituie un algoritm optimal, ^ n sensul c a niciun alt algoritm nu
asigur a o mai mic a lungime medie a cuvintelor.
^In cazul alfabetului statitic de ordin 0, arborele Hu man este construit ^ n mod identic,
at^ at ^ n faza de compresie, c^ at  si ^ n cea de decompresie, pe baza setului de contoare
asociate simbolurile din alfabet. Alfabetul  si contoarele trebuie transmise al aturi de setul
comprimat de date, pentru ca decriptarea s a e exact a.
24

O prim a idee de a construi arborele binar ^ n manier a adaptiv a este urm atoarea: odat a
cu ecare simbol citit/decriptat se construie ste complet arborele [2]. Aceast a manier a
de construct ie este, ^ ns a, extrem de e cient a, deoarece efortul de construct ie de la pasul
anterior se pierde integral.
Pa sii algoritmului Hu man static sunt urm atorii:
Ordonarea mesajelor sursei ^ n ordine descresc atoare a probabilit at ilor;
Formarea din ultimele dou a mesaje a unui mesaj restr^ ans r1=SN1S
SNav^ and
p(r1) =p(SN1) +p(SN);
Includerea mesajelor r1^ n mult imea celorlalte mesaje, ^ n ordine descresc atoare a
probabilit at ilor, alc atuind  sirul ordonat R1;
Repetarea algoritmului de rest^ angere p^ ana c^ and ultimul  sir ordonat Rkcont ine doar
dou a mesaje;
Cuvintele de cod corespunz atoare ec arui mesaj se obt in ^ n felul urm ator:
{simboluluirk1i se aloc a '0', iar lui rk'1';
{la ecare diviziune ^ n dou a se aloc a simbolurile '0'  si '1' p^ an a c^ and se ajunge
la mult imi formate dintr-un singur mesaj.
^In cazul imaginilor, metoda are ca rezultat un cod de lungime variabil a corespunz ator
ec arui bloc. Cele cu probabilitate mare ind reprezentate de coduri de lungime mic a
sau mare. Pentru o m arime dat a a blocului, codarea Hu man este cea mai e cient a.
Dac a valorilor cuantizat e nu sunt uniform distribuite, entropia lor va mai mic a de 8
bit i/pixeli  si este posibil a folosirea unui cod care necesit a mai put in de 8 bit i/pixeli. ^In
urma implement arii algoritmului se obt ine un tabel de codare Hu man pentru un set
dat de probabilit at i. Codarea  si decodarea se face foarte simplu, cunosca^ and valorile din
tabel. Dat a ind lungimea variabil a a cuvintelor de cod, este necesar a utilizarea unui
registru, ^ n cazul foarte uzual, ^ n care informat ia este transmis a printr-un canal cu rat a
constant a de transmisie. M arimea tabelului de cod este de L= 2MB, undeMreprezin a
numarul de bit i din bloc, iar cel mai lung cuv^ ant de cod poate avea cel mult Lpixeli.
O versiune mai e cient a a codului Hu man este codul Hu man trunchiat: Ll< L
ales corespunz ator, primele Llsimboluri sunt codate Hu man, iar simbolurile r amase se
codeaz a cu un cod pre x, urmat de un cod de lungime x a. O alt a variant a const a ^ n
folosirea codului Hu man modi cat, la care num arul ^ ntreg ise reprezint a ca:
i=qL1+j;0qInt(L1)
L1
;0jLl:
3.3.2 Codarea RLC ("run length coding")
Consider^ and o surs a binar a, ie sirea ei se codeaz a cu num arul de "0" ^ ntre doi de "1"
succesivi, adic a este codat a lungimea "cursa de 0". Metoda poart a numele de codarea
lungimii curselor. Se utilizeaz a mai ales pentru gra ce, documente tip arite, h art i, unde
probabilitatea de aparit ie a culorii alb este mare [17].
Codarea RLC Fingerprint este o metod a e cient a de codare a unui num ar mic de
coe cient i semni cativi care sunt ^ mpr a stiat i printre mult i coe cient i nuli  si este adesea
utilizat a ^ n codarea Wavelet sau codarea pe sub-benzi. Aceast a codare este realizat a
prin maparea coe cient ilor la un  sir de simboluri,  si dat ^ n tabelul de mai jos. Acest
25

 sir se codeaz a ulterior cu ajutorul cod arii Hu man. Tabelul arat a modul ^ n care diferite
simboluri  si curse de zero sunt reprezentate printr-un set de 254 de simboluri codate.
Simbolurile de 107 254 se utilizeaz a printr-un set de 254 de simboluri codate. Acea si
simboluri se utilizeaz a pentru a transmite coe cient i diferit i de zero, cuprin si ^ ntre -73  si
73. Dac a apare un coe cient care este ^ n afara intervalului, se transmite un simbol de
"escape ", urmat de valoarea coe cientului. Valoarea absolut a a coe cient ilor este limitat a
la 65536. Pentru valori reale ale coe cient ilor se folosesc put ine nivele de cuantizare, dat
ind faptul c a, ^ n general, coe cient ii au valori mici. Acest lucru implic a absent a erorilor
de cuantizare datorit a dep a sirii nivelului maxim [6]. Simbolurile 1 100 sunt utilizate
pentru a transmite cursele de zero. Cursele de zero mai lungi de 100 sunt codate prin
transmiterea unui simbol de " escape " 105 sau 106, urmat de valoarea cursei zero.
Simbol Valoare
1 curs a de zero de lungime 1
2 curs a de zero de lungime 2
… …
100 curs a de zero de lungime 100
101 simbol escape pentru index pozitiv 8 bit i
102 simbol escape pentru index negativ 8 bit i
103 simbol escape pentru index pozitiv 16 bit i
104 simbol escape pentru index negativ 16 bit i
105 simbol escape pentru curs a de zero 8 bit i
106 simbol escape pentru curs a de zero 16 bit i
107 valoare coe cient -73
108 valoare coe cient -72
… …
180 neutilizat
… …
253 valoare coe cient 72
254 valoare coe cient 73
Exemplu:
Avem  sirul de codare: 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1
1 1 1 1 1 1 1 1 1 1 1  si  sirul codar: 0 7 5 3 2 9 1 1 1 3 12
Acest tip de codare se folose ste pentru transmiterea imaginilor prin fax.
Decompresia se face similar cu compresia, parcurgem  sirul codat  si gener am  siruri
alternate, de simboluri 0 sau 1, ^ ncepem cu primul element din  sirul codat  si de lungimi
indicate de valori ^ nt^ alnite ^ n  sirul de decodare [2].
Algoritmul de codare RLE este un algoritm de c autare a secvent elor care se repet a  si
scrierea simbolului  si a num arului de repetit ii al acestuia. Este e cient pentru date cu
redundant  aa mare, a sa cum este cazul imaginilor. Pentru cel de tip text trebuie lucrat la
nivel de bit.
Codarea RLE aplicat a imaginilor ^ n nuant e de gri
Pentru aceste imagini, algoritmul RLE se aplic a pentru plane foarte mate de bit i de
pe aceea si pozit ie, din reprezentarea binar a a valorilor lor [13]. Dac a imaginea ^ n nuant e
de gri are 256 de nivele, atunci din aceast a imagine se construiesc 8 plane, asa cum putem
observa ^ n Figura 3.3.
Imaginea binar a format a din bit ii cei mai semni cativi va comprimat a cel mai bine
cu algoritmul RLE. Imaginea binar a format a din bit ii cei mai putin semni cativi ca o
imagine de genul "sare  si piper", pentru care se poate lua decizia de a nu mai codat a.
26

Figura 3.3: Transformarea unei imagini cu 256 nivele de gri ^ n imagini binare
3.4 Compresia cu pierderi a imaginilor statice
Compresia cu pierderi a imaginilor presupune un algoritm care prin decompresie se
obt ine o reconstruct ie imperfect a a imaginii originale. Exist a o multitudine de algoritmi  si
standarde de compresie cu pierderi a imaginilor statice: modulat ia Delta, PCM, DPCM,
cuantizarea vectorial a compresia bazat a pe transform ari etc.
Algoritmii de compresie cu pierderi de ^ mpart ^ n dou a mari categorii:
codarea predictiv a;
codarea bazat a pe blocuri de pixeli.
3.4.1 Codarea predictiv a
O alt a metod de realizare a compresiei este aceea a abord arii predictive. Ea se bazeaz a
pe faptul c a datele ce urmeaz a a comprimate nu difer a de la o valoare la alta, deci pot
predict ionate destul de bine din culorile anterioare.
E santioanele care sunt luate ^ n considerare ^ n cazul cod arii predictive pot din dome-
niul spat ial e din domeniul frecvent  a. Unul dintre cei mai simpli algoritmi de codare
predictiv a este codarea DPCM1. Acesta se realizeaz a pe semnalele cu corelat ie ^ ntre
e santioane succesive, conduce la rapoarte de compresie bun a. Imaginile sunt exemple
de semnal care au corelat ia ment ionat a mai sus. ^In imagini, aceasta ^ nseamn a c a exist a
o corelat ie ^ ntre pixelii vecini.
bXi1;j1eXi1;j
bXi;j1bXi;j
^In tabelul de mai sus este prezentat un exemplu de predictor. bXi;jeste valoarea estimat a
a luiXi;j si va avea formula:
bXi;j=Pi;j+qi;j:
Dac a imaginea este puternic corelat a atunci Pi;jva avea o valuare foarte apropiat a de
cea a luiXi;j, rezult^ and o eroare mai mic a, ei;j. Practic informat ia transmis a pe canal
este eroarea de predict ie cuantizat a [1]. ^In general, pentru cuantizare se folose ste un
1DPCM-Di erential Pulse Code Modulation
27

cuantizator uniform. Practic o serie de valori de intrare corespunz^ and unei singure valori
de ie sire. De aici apare practic efectul compresiei cu pierderi, proces care este ireversibil.
^In cazul ^ n care se folose ste un cuantizator optimal putem scrie:
qi;j=rotunjireei;j
;
unde  reprezint a pasul de cuantizare. Pentru o imagine pe 8 bit i ia valori ^ ntre 0  si 255.
Deoarece variat ia erorii de predict ie ei;jeste mai mic a dec^ at variant a e santioanelor
de intrareXi;j, procesul de cuantizare a erorii nu va introduce distorsiuni suplimentare.
O variant a mai mic a corespunde cu o valoare a entropiei mai mic a  si deci un raport de
compresie obt inut ^ n nal este mai mare. A sa cum am ment ionat c^ and am discutat despre
corelat ia spat ial a a imaginilor, funct ia covariant  a scade mult dac a lu am ^ n considerare
o distant a mai mare de 8 pixeli fat  a de pixelul original. ^In concluzie, pentru calculul
predictorului nu este e cient, dac a utiliz am vecin at at i de pixeli care s a aib a o ad^ ancime
mai mare de 8 pixeli.
Dac aXi;jreprezint a o imagine cu 8 bit i, atunci eroarea, ei;jva lua valori ^ n intervalul
[255;255]. Valorile cuantizate ale lui ei;jadic aqi;jvor ocupa acela si domeniu, doar c a
necesit a o reprezentare pe mai put ini bit i. Dac a avem 16 nivele de cuantizare, aceasta
^ nseamn a c a putem reprezenta qi;jpe numai 4 bit i, deci am obt inut o comprimare a
informat iei init iale.
3.4.2 Codarea pe blocuri de pixeli
Multe dintre metodele de compresie a imaginilor au o implementare pentru a opera
pe blocurile de pixeli. Aceast a categorie de algoritmi se ^ mparte la r^ andul ei ^ n:
algoritmi de codare spat ial a pe blocuri;
algoritmi de codare prin transform ari.
^In cazul algoritmului de codare spat ial a pe blocuri, pixelii sunt grupat i ^ n blocuri, iar
acestea sunt apoi comprimate prin metode clasice de compresie spat ial a. Un exemplu de
compresie spat ial a este cuantizarea vectorial a. Aceasta ind o modalitate de a reduce
rezolut ia cu care este reprezentat un set de date. Esent a metodei const a ^ n reprezentarea
unor grupuri de valori din setul original de date, ca valori singulare ^ n noul set, reduc^ andu-
se astfel cantitatea total a de informat ie. Cuantizarea este o tehnic a de compresie cu
pierdere de informat ie.
Din punct de vedere al rezultatelor compresiei, ace sti algoritmi conduc la obt inerea
unui raport de compresie mai ridicat dec^ at ^ n cazul algoritmului de compresie spat ial a,
dac a se ia ^ n seam a acela si grad al distorsiunii.
Spre deosebire de prima categorie, algoritmii de codare prin transform ari ^ mpart ima-
ginea ^ n blocuri de pixeli, dup a care ecare din aceste blocuri este transformat ^ ntr-un alt
domeniu, cum ar de exemplu domeniul frecvent a.
Se consider a dou a matrice de transformare de dimensiune NxNpe care le numim
funct ii de baz a:
Tc=ftc(u;i)g;u;i = 0;1;:::;N1:
Tr=ftr(v;j)g;v;j = 0;1;:::;N1:
28

Dac a not am cu X, imaginea bidimensional a, putem exprima procesul liniar de transfor-
mare ca ind:
Y=TcXTrt;
undeTrteste matricea transpus a a lui Tr. Dac a transformata Teste simetric a atunci
Tc=Tr=T, iarY=TXTt. Ideea transform arii imaginii init iale X^ nYeste de a obt ine
o reprezentare compact a a datelor de imagine. Metodele de compresie prin transform ari
exploateaz a aceast a reprezentare compact a a informat iei  si elimin a acele date din Ycare
nu sunt importante [1]. Unele dintre cele mai cunoscute funct ii de baz a utilizate ^ n
compresia imaginilor cu transform ari sunt:
transformata Fourier Discret a;
transformata Cosinus Discret a;
transformata Sinus Discret a;
transformata Hadamard;
transformata Karhunen-Loeve.
^In Figura 3.4 sunt prezentate dou a exemple de aplicare a transfom arilor. Este prezentat a
o imagine surs a, care va supus a transform arii Fourier, respectiv uneia de tip Cosinus
Discret a rezult^ and matricea transform arii.
Figura 3.4: Matricile coe cient ilor transform arii DFT  si DCT
A sa dup a cum se poate observa ^ n Figura 3.4, prin utilizarea DFT2energia se con-
centreaz a c atre extremit at ile matricei de coe cient i [12]. ^In cazul transformatei Cosinus
Discret a se observ a c a energia este ^ nmagazinat a ^ n colt ul din st^ anga sus  si cu c^ at ne
deplas am spre colt ul din drapta jos valorile coe cient ilor sunt mai mici. Din acest punct
2DFT-Transformata Fourier Discret a
29

de vedere utilizare DCT este mult mai e cient a dec^ act DFT. De aceea una dintre cele
mai utilizate transfor ari ^ n algoritmul de compresia este transformata cosinus discret a.
Un algoritm practic de codare prin transform ari aplicat pentru imagini este prezentat
^ n Figura 3.5, iar etapele succesive de implementare sunt urm atoarele:
Figura 3.5: Codare prin transformare bidimensional a
Divizarea imaginii de intrare ui^ n blocuri rectangulare de dimensiuni pq si
transformarea ec arui bloc, obt in^ andu-se Vi,i= 0;:::Il,I=NM
pq.
Determinarea aloc arii bit ilor . Pentru alocarea num arului de bit i putem folosi unul
din algoritmii uzuali din cazul unidimensional.
Alocarea cuantizatorului se face t in^ and cont de modelele de distribut ie ale diferit ilor
coe cient i ai transform arii.
Codarea ie sirii cuantizatorului ^ n cuvinte de cod  si transmisia sau memorarea lor.
3.5 Sistem de codare bazat pe transformata Cosinus
Discret a
^In Figura 3.6 este prezentat a schema bloc a unui sistem care folose ste transformata
cosinus discret a. Aceasta reprezint a arhitectura de baz a utilizat a ^ n toate standardele de
compresie a imaginilor.
Aceast a metod a este inspirat a din procedura de compresie JPEG  si face parte din cate-
goria celor cu pierderi de informat ie. Procedura de compresie este dat a pentru codi carea
unei imagini monocrome de dimensiune 8×8 pixeli.
O prima etap a a cod arii este ^ mpart irea imaginii ^ n blocuri de 8×8 pixeli. Dac a di-
mensiunea imaginii nu este multiplu de 8, atunci codorul copiaz a ultima coloan a sau linie
p^ an a c^ and lungimea nal a este un multiplu de 8. Aceste linii sau coloane puse suplimentar
sunt ^ ndep artate ^ n timpul procesului de decodare[16].
Cele trei componente RGB sau YUV sunt descompuse ^ n blocuri de dimensiune 8×8.
Un bloc de 8×8 pixeli poate considerat o matrice de 8×8 elemente, ecare element
ind un num ar^ ntreg, reprezentat pe un num ar oarecare de bit i  si care codi c a intensitatea
componentei, corespunz atoare acelui bloc. ^In cazul ^ n care se utilizeaz a reprezentarea
RGB, valorile elementelor sunt ^ ntodeauna pozitive iar daca se utilizeaz a reprezentarea
YUV, elementele corespunz atoare blocurilor Y sunt pozitive iar celelalte dou a componente
pot lua  si valori negative. ^In general, pentru compresie, imaginile sunt convertite ^ n
reprezentarea YUV. Dac a analiz am formulele de calcul care descriu aceas a conversie, se
poate preziza domeniul de variat ie al celor trei componente pentru o reprezentare RGB
pe 8 bit i.
30

Figura 3.6: Sistem de codare bazat pe transformata cosinus
Y = 0.30R+0.5G+0.11B
U = R-Y=0.70R-0.59G-0.11B
V = B-Y=-0.30R-0.59+0.89B.
Componentele R,G  si B ind codi cate pe 8 bit i, pot lua valori ^ n domeniul 0…255.
Componenta Y, la r andul ei va avea valori ^ ntre 0…255 deoarece 0.30+0.59+0.11=1.
Componentele U  si V, pot varia ^ ntre 179:::179 respectiv ^ ntre 227:::227. Se observ a o
neuniformitate^ n aceste domenii de valori care poate ridica probleme^ n estimarea preciziei
 si cerint elor de reprezentare a informat iei pe parcursul procesului de compresie. Din acest
motiv se propune un alt set de relat ii pentru conversia din RGB ^ n YUV :
Y = 0.30R+0.59G+0.11B+128
U = 0.50R-0.42G-0.08B
V = -0.17R-0.33G+0.50B.
^In cazul acestor relat ii, se obt ine pentru toate cele trei componente Y,U siVacela si
domeniu de variat ie , -128…128. Prima operat ie ce se realizeaz a ^ n scopul compresiei
este transformarea imaginii din matricea bloc intr-o form a echivalent a. ^In acest scop se
utilizeaz a transformarea cosinus discret a, care porne ste de la matricea imagine S, gener^ and
o matrice transformat a T dup a urm atoarea formul a de calcul [14]:
T(i;j) =1
4CiCj"7X
x=07X
y=0Sy;xcos(2x+ 1)j
16cos(2y+ 1)i
16#
:
(3.1)
Trecerea invers a de la matricea transformat a la matricea init ial a se poate realiza prin
transformata invers a descris a de relat ia:
S(i;j) =1
4"7X
x=07X
y=0CyCxTy;xcos(2x+ 1)j
16cos(2y+ 1)i
16#
:
(3.2)
^In ambele relat ii avem:Ci;Cj=1p
2;dac ai=j=0;
Ci;Cj= 1; ^ n rest:
31

Elementele matricii transformate reprezint a ponderile cu care se ^ nsumeaz a un num ar
de 64 de matrici " sablon" constante pentru a se obt ine matricea imagine. Aceste matrici
 sablon pot imaginate ca ni ste imagini de tip "tabl a de  sah", elementului ( i;j) din T
corespunz^ andu-i o tabl a cu ilinii  sijcoloane. Se poate a rma c a elementele matricii
transformate cu indici mici corespund detaliilor mai grosiere din imagine iar cele cu indici
mai mari delatiilor mai ne. Din acest motiv, dac a analiz am matricea Tobt inut a prin
transformarea diferitelor blocuri dintr-o imagine, vom observa c a ^ n colt ul din st^ anga-
sus al matricilor avem valori mari  si cu c^ at cobor^ am spre colt ul din dreapta-jos valorile
elementelor ^ ncep s a scad a mult, chiar spre zero.
O precizare ^ n leg atur a cu transformata cosinus discret a este accea c a pentru o matrice
S cu elemente ^ n intervalul -128…128 se pot obt ine ^ n matricea T valori cuprinse ^ ntre –
1023…1023.
^In continuare vom considera doua exemple de implementare a algoritmului de compre-
sie DCT. Pentru aceasta am folosit o imagine pe 8 bit i. Am ^ mpart it imaginea ^ n blocuri
de 8×8 pixeli  si am extras dou a astfel de blocuri. Unul dintr-o zon a cu activitate mic a ^ n
care dierent a dintre pixelii vecini este mic a  si un alt bloc dintr-o zon a cu activitate mare
[6], caz ^ n care dierent a dintre pixelii vecini este semni cativ mai mare.
Figura 3.7: Exemplu de codare DCT
Valorile pixelilor sunt prezentate ^ n matricea X:
161 155 157 152 151 151 149 149
163 162 160 156 155 153 153 152
163 165 162 157 156 157 153 155
168 164 162 160 160 157 156 157
166 164 161 163 162 157 157 158
164 165 161 161 162 161 159 162
163 159 160 162 161 161 159 162
165 162 162 168 162 160 163 163
^In funct ie de spat iul culorilor ^ n care este reprezentat a imaginea, pixelii unei componente
pot avea valori medii zero sau diferite de zero. Pentru a realiza o prelucrare uniform a pe
toate planurile de pixeli, cele mai multe metode de codare DCT introduc un bloc de pre-
procesare, prin care valoarea medie obt inut a s a e zero [16]. Valoarea care se scade sau
adun a este apoi adunat a sau sc azut a la decodor dup a ce se aplic a transformata invers a.
^In cazul nostru, dup a sc aderea cu 128 obt inem matricea:
32

33 27 29 24 23 23 21 21
35 34 32 27 28 25 25 24
35 37 34 32 32 29 28 27
40 36 34 32 29 28 32 28
38 35 33 33 33 34 28 30
36 37 33 35 33 28 34 32
35 31 32 33 33 34 31 34
37 34 34 40 32 35 33 35
Iar dup a aplicarea transformatei 2D DCT vom avea matricea coe cient ilor Y, calculat i
dup a formula:
xk=N1X
n=0xncos
N
n+1
2
k
251 19 6 0 2 3 -2 2
-21 1- 3 1 -4 -1 2 3
-8 -2 -4 2 3 -2 5 -1
-6 -1 1 1 0 1 0 1
0 1 0 1 1 5 1 -2
-4 -1 1 1 0 0 3 1
0 1 0 -2 0 -1 -2 1
0 1 0 -2 0 -1 -3 1
-2 -1 -1 -1 0 0 1 -1
Trebuie precizat c a deja^ n acest punct al algoritmului s-a realizat o rotunjire a coe cient ilor
DCT, deci se poate spune c a avem pierderi datorit a procesului de implementare software,
pierderi ireversibile. Trebuie s a mai observ am c a ^ n matricea coe cient ilor Ycompara-
tiv cu matricea pixelilor originali X, amplitudinile coe cient ilor iau valori mari pentru
pozit ii apropiate de y00.^In general, pentru blocuri de pixeli cu valoare redus a, energia se
va acumula ^ n coe cient ii de ordin inferior, ca ^ n cazul de fat  a [17].
Transformarea imaginii este o operat ie care teoretic nu degradeaz a imaginea. Se ob-
serv a c a exist a o transformat a invers a exact a, singura posibilitate de degradare a imaginii
ind erorile de calcul. Pentru compresie, ^ ns a este necesar s a se piard a ceva informat ie.
Acest lucru se poate realiza printr-o reducere a precizei de reprezentare a elementelor
matricii transformate. O modalitate de reducere a preciziei este aceea de a ^ mp art i acel
num ar cu o anumit a valoare  si de a ret ine doar partea ^ ntreag a din rezultat. Refacerea
valorii init iale se realizeaz a foarte simplu ^ nmult ind num arul obt inut cu valoarea cu care
s-a realizat ^ mp art irea. Aceast a operat ie se nume ste cuantizare. Problema este cu c^ at
s a se ^ mpart a elementele matricii transformate astfel ^ ncat la refacerea imaginii efectul
acestei aproxim ari s a e mai put in vizibil a.
Pentru a rezolva aceast a problem a, pornim de la observat ia c a detaliile ne au o
important  a redus a ^ n aprecierea calit at ii unei imagini, iar aceste detalii sunt caracterizate
de elementele din matricea transformat a, situate c atre colt ul din dreapta-jos. Astfel se
poate de ni o matrice de cuantizare care s a cont in a ^ n ecare pozit ie valoarea prin care
se va realiza ^ mpart irea elementului corespunz ator din matricea transformat a. Aceast a
matrice poate aleas a astfel ^ nc^ at s a e simetric a  si elementele sale s a creasc a pe m asur a
ce se coboar a din colt ul din st^ anga-sus c atre cel din dreapta-jos. Un exemplu de matrice
este dat ^ n continuare:
33

4 4 5 5 6 6 7 7
4 5 5 6 6 7 7 8
5 5 6 6 7 8 9 10
5 6 6 7 8 9 10 11
6 6 7 8 10 12 14 16
6 7 8 9 12 13 16 19
7 7 9 10 14 16 20 24
7 8 10 11 16 19 24 29
Prin operat ia de cuantizare se obt ine o matrice ^ n care descre sterea valorii elementelor
este mult mai pronunt at a, multe elemente devenind zero. Un exemplu de matrice obt inut a
prin cuantizare este cea prezentat mai jos:
236 -105 -24 -11 0 0 0 0
-13 -17 0 0 0 0 0 0
11 0 0 0 0 0 0 0
0 0 0 -3 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
Putem observa ^ n matricea coe cient ilor cuantizat i num arul de zerouri este mult mai
mare dec^ at ^ n maricea coe cient ilor de baz a. Alegerea matricii de cuantizare depinde de
caracteristicile vizuale  si de raportul de compresie pe care dorim s a-l obt inem. Practic,
^ n urma procesului de cuantizare au rezultat doar 8 valori nenule, comparativ cu cele
din matricea original a. Acest lucru ^ nseamn^ and o rat a de compresie de 10.66. Matricea
obt inut a poate e cient reprezentat a folosind o combinat ie de RLC  si codare de tip
Hu man.
^In continuare avem un exemplu care arat a cum se comprim a o imagine prin uti-
lizarea DCT. Acest exemplu calculeaz a DCT bidimensional folosind blocuri 8×8 ^ ntr-o
imagine de intrare BMP. Exemplul folose ste metoda de calcul a matricei de transfor-
mare. DCT este utilizat ^ n algoritmul de comprimare a imaginilor JPEG. Imaginea de
intrare este ^ mpart it a ^ n blocuri 8×8, iar DCT bidimensional este calculat pentru ecare
bloc. Coe cient ii DCT sunt apoi cuantizat i, codi cat i  si transmi si. Receptorul JPEG
decodeaz a coe cient ii DCT cunti cat i.
Pentru ^ nceput citim o imagine ^ n spat iul de lucru  si o convertim ^ n clas a dubl a.
I = imread('cameraman.bmp');
I = im2double(I);
Calcul am DCT bidimensiuonal pe 8×8 blocuri ^ n imagine. Funct ia dctmtx returneaz a
matricea transformat a:
T = dctmtx(8);
dct = @(block_struct) T * block_struct.data * T';
B = blockproc(I,[8 8],dct);
Elimin am 10 coe cient i din ecare bloc:
34

mask = [1 1 1 1 0 0 0 0
1 1 1 0 0 0 0 0
1 1 0 0 0 0 0 0
1 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0];
B2 = blockproc(B,[8 8],@(block_struct) mask .* block_struct.data);
Reconstruim imaginea utiliz^ and inversa DCT bidimensional a al ec arui bloc:
invdct = @(block_struct) T' * block_struct.data * T;
I2 = blockproc(B2,[8 8],invdct);
A  sam imaginea original a  si imaginea reconstruit a. De si exist a o anumit a pierdere a
calit at ii imaginii reconstruite, ea este clar a, chiar dac a aproape 5% din coe cient ii DCT
au fost eliminat i:
Figura 3.8: Imaginea init ial a
imshow(I);
Figura 3.9: Imaginea reconstruit a
figure imshow(I2);
35

Capitol 4
Standardul de compresie JPEG
4.1 Introducere
Dezvoltarea aplicat iilor din domeniul IT au f acut necesar a implementarea unui stan-
dard pentru compresia imaginilor. Scopul implement arii JPEG a fost de a dezvolta un
standard de compresie a imaginilor care s a ^ ndeplineasc a o serie de cerint e:
s a e u sor de implementat ^ n aplicat ii;
s a permit a utilizatorului s a aleag a gradul de compresie ;
s a lucreze independent de tipul imaginii;
s a nu implice un grad de complexitate foarte mare din punct de vedere al calculelor;
s a permit a at^ at codarea secvent ial a, c^ at  si cea progresiv a.
Dup a o serie de evalu ari preliminare, ^ n 1998 s-a luat decizia utiliz arii compresiei cu
DCT ca metod a de baz a utilizat a ^ n JPEG. ^Intre 1988-1990 s-au realizat o serie de teste,
simul ari  si ajust ari ale algoritmului. ^In 1991, JPEG devine o propunere de standard
internat ional, urm^ and ca un an mai t^ arziu acesta s a obt in a titulatura respectiv a . JPEG
include dou a metode de compresie:
metoda de compresie cu pierderi bazat a pe Transformata Cosinus Discret a;
metoda de compresie predictiv a f ar a pierderi.
4.2 Codorul si decodorul JPEG
Codorul JPEG
^In Figura 4.1 este prezentat a schema bloc a unui codor JPEG bazat pe trasformata DCT
pentru o imagine cu nivele de gri, cu un singur plan de culoare [1]. ^In cazul imaginilor
color, algoritmul se repet a pentru ecare component a. Prima etap a din algoritmul de
compresie, putem observa c a este ^ mp art irea imaginii ^ n blocuri de 8×8 pixeli. Dac a
rezolut ia spat ial a a imaginii nu este multiplu de 8, atunci pixelii de pe ultimul r^ and sau
ultima coloan a sunt duplicat i, astfel ^ nc^ at, s a se obt in a blocul 8×8 pixeli.
Fiecare bloc este transformat ^ n domeniul frecvent  a prin aplicarea transformatei 2D
DCT. Standardul nu speci c a un anumit algoritm pentru implementarea DCT. Coe cient ii
DCT sunt apoi cuantizat i  si codat i entropic.
36

Figura 4.1: Schema codorului JPEG
Codarea entropic a se face ^ n dou a etape. Prima este reprezentat a de o codare predic-
tiv a a coe cient ilor DCT din ecare bloc 8×8, respectiv o codare RLC pentru coe cient i
AC, iar cea de-a doua etap a este e un codor Hu man, e un codor aritmetic. Codarea
arimetic a duce la obt inerea unui raport de compresie mai e cient dec^ at cel obt inut de
codorul Hu man, cu toate acestea, ^ n practic a este mai put in folosit a [11].
Pentru a putea acceptat ca  si standard internat ional, JPEG a dezvoltat  si un  sier
care cont ine imaginea  si parametrii de codare ^ n  sirul de bit i codat. Acestea permit im-
plementarea JPEG pe diferite platforme, iar decompresia poate realizat a f ar a probleme.
Decodorul JPEG
Dup a extragerea tabelelor de cuantizare  si codarea din  sirul de bit i codat, datele sunt
trimise blocului decodor entropic. Coe cient ii DCT sunt apoi decuantizat i si translatat i
^ n domeniul spat ial folosind transformata invers a, determinat i prin formul a (3.2) [15].
Acestora li se adun a 128  si se obt ine blocul reconsruit. Calitatea acestei imagini depinde
de num arul de coe cient i p astrat i la codare. Dac a se vor p astra tot i coe cient ii nenuli,
atunci imaginea reconstruit a va foarte asem an atoare cu originalul.
4.3 Algoritmul de codare
Ultimul pas din cadrul precesului de codi care bazat pe DCT este codi carea en-
tropic a. Acest pas produce pierderi adit ionale prin codi carea coe cient ilor DCT mult mai
compact, baz^ andu-se pe caracteristicile lor statice. Standarul JPEG speci c a dou a metode
de compresie entropic a: compresia Hu man  si compresia aritmetic a. Modul secvent ial de
baz a foloses ste compresia Hu man. Este foarte util s a se considere codi carea entropic a
ca un proces ^ n doi pa si.
Primul pas converte ste secvent a ^ n zig-zag a coe cient ilor cuanti cat i ^ ntr-o secvent a
intermediar a de simboluri. Al doilea pas converte ste simbolurile ^ n  siruri de date ^ n
care acestea nu mai au granit e identi cabile extern [2]. Forma  si de nit ia simbolurilor
intermediare sunt dependente de operarea bazat a pe DCT c^ at  si de codi carea entropic a.
Dac a folosim codarea Hu man ca algoritm de baz a, atunci se pot folosi p^ ana la 8 tabele
37

de codare, ^ ns a avem dou a resctrict ii de care trebuie s a t inem cont:
niciun cuv^ ant de cod nu trebuie s a dep a seasc a 16 bit i;
niciun cuv^ ant de cod nu poate avea tot i cei 16 bit i egali cu 1.
Compresia Hu man cere ca unul sau mai multe seturi de tabele de coduri Hu man s a
e speci cate de aplicat ie. Acelea si tabele folosite la compresia unei imagini sunt folosite  si
la decompresie. Tabelele pot de nite  si folosite ^ n interiorul aplicat iei ca tabele implicite
sau calculate ^ n mod speci c pentru o imagine dat a ^ ntr-un pas anterior compresiei pe
baza principiilor cunoscute de la algoritmul Hu man. JPEG speci c a faptul c a nu se cere
un set prede nit de tabele Hu man [14].
Metoda compresiei aritmetice nu necesit a introducerea exterioar a a unor tabele, deoarece
este capabil a s a se adapteze statisticilor imaginii pe parcursul compresiei. Tabelele de
condit ionare statistic a pot introduse pentru o u soar a imbun at at ire a e cient ei, dar
acest lucru nu este impus. Compresia aritmetic a produce o compresie cu 5-10% mai bun a
dec at cea realiza a de codarea Hu man [11].
O parte a programatorilor cred c a este mai complex a dec at Hu man pentru anu-
mite implement ari. Diferent a dintre cele dou a metode este codi carea entropic a, atunci
translocarea ^ ntre cele doua este posibil a prin simpla decodare entropic a.
Codarea Hu man a coe cient ilor DC
Av^ and ^ n vedere c a exist a o puternic a leg atur a ^ ntre coe cient ii DC din blocurile
adiacente, standardul JPEG folose ste un algoritm de codare diferent ial a pentru ace sti
coe cient i [13]. Diferent a [ DCilDCi] poate s a ia valori ^ n intervalul [-2047, 2047].
Acest domeniu este ^ mpart it ^ n 12 categorii, unde categoria " i" include toate valorile
diferent  a care pot reprezentate pe ibit i. Astfel, ecare valoare diferent  a va descris a
de perechea (dim, amp), unde dimreprezint a num arul de bit i necesari pentru a reprezenta
amplitudinea, iar amp, reprezint a valoarea efectiv a a diferent ei.
Codarea Hu man a coe cient ilor AC
Pentru o rezolut ie de 8 bit i coe cient ii AC pot lua valori ^ ntre [-1023, 1023], ceea ce
implic a o ^ mp art ire ^ n 10 categorii de amplitudine. Fiecare coe cient va descris de o
pereche de valori ( dim, amp ). Dup a cuantizare, cei mai mult i coe cient i vor avea valoarea
0, a sa cum am v azut ^ n capitolul precedent, astfel c a doar coe cient ii nenuli vor codat i
[19].
Scanarea zig-zag se face ^ n scopul ordon arii dup a spectrul de frecvent a. Deoarece
componentele de frecvent a ^ nalt a au valori aproximativ nule, ^ n urma scan arii zig-zag
rezult a  siruri nule, av^ and posibilitatea realiz arii unei cod ari RLC.
^In Figura 4.2 avem traiectoria de parcurgere zig-zag, a coe cient ilor AC, a sa cum este
speci cat a ^ n standardul JPEG.
Figura 4.2: Algoritmul de ordonare zig-zag
38

Codorul RLC, furnizeaz a valoarea urm atorului coe cient nenul  si num arul de coe cient i
AC nenuli care-l preced. Astfel, ecare coe cient AC nenul poate descris de un cuv^ ant
de cod de forma ( dim, amp ) [15]. Perechea dimeste codat a Hu man iar valoarea amp
este ad augat a la acest cod ^ n mod asem an ator algoritmului folosit pentru coe cient ii DC.
4.4 Modul de codare progresiv
Exist a dou a diferent e ^ ntre modul de baz a  si modul progresiv:
modul progresiv poate folosi ^ ntre 8 si 12 bit i pentru reprezentarea planurilor de
culoare;
modul progresiv poate folosi at^ at codarea Hu man c^ at  si docarea entropic a.
^In multe aplicat ii de compresie a imaginilor apare dezavantajul c a, datorit a rezolut iilor
mari la care sunt reprezentate imaginile, timpul de codare, de transmisie  si respectiv de
decompresie este de ordinul minutelor. ^In aceste situat ii se poate aplica un algoritm de
compresie progresiv, care init ial produce o imagine brut a, dup a care prin scan ari succesive
se ^ mbun at at e ste calitatea imaginii.
Modul de compresie progresiv JPEG, se obt ine prin realizarea unui set de subimagini,
ecare subimagine ind codat a cu un set speci c de coe cient i DCT [16]. Codorul DCT
va trebui s a aib a un amortizor ^ n care datele s a e memorate ^ nainte de codarea entropic a.
^In Figura 4.3 este prezentat modul de compresie progresiv JPEG.
Figura 4.3: Exemplu de compresie progresiv a
Codarea progresiv a se obt ine folosind trei tipuri de algoritmi:
algoritm progresiv de select ie spectral a;
algoritm progresiv de aproxim ari progresive;
algoritm progresiv combinat.
Algoritmul progresiv de select ie spectral a
Acest algoritm grupeaz a coe cient ii transformatei cosinus distret a ^ n benzi de frecvent a.
Coe cient ii de joas a frecvent a sunt transmi si ^ ntai, dup a care urmeaz a coe cient ii cu
frecvent a ^ nalt a [14]. ^In Figura 4.4 este prezentat un exemplu ^ n care coe cient ii DCT
sunt ^ mp art it i ^ n patru benzi. ^In banda 1 sunt coe cient ii de curent continuu, banda 2
cuprinde primii coe cient i de curent alternativ, AC1, AC2; banda 3 cont ine coe cient ii
AC3, AC4, AC5, AC6, iar banda 4 coe cient ii de la AC7 p^ an a la AC63.
Algoritmul progresiv cu aproxim ari succesive
Acest algoritm se bazeaz a pe transmisia init ial a, cu precizie sc azut a, a tuturor coe cient ilor
transformatei cosinus discret a, dup a care se transmite restul informat iei, pentru obt inerea
39

Figura 4.4: Algoritmul progresiv cu select ie spectral a
unei imagini de calitate superioar a [2]. ^In Figura 4.5 este prezentat un exemplu ^ n care
coe cient ii DCT sunt ^ mp art it i ^ n trei benzi de aproxim ari succesive. Pe banda 1 ^ nt^ alnim
tot i coe cient ii DCT ^ mp art it i la 4; banda 2 cuprinde coe cient ii ^ mp art it i la 2  si pe banda
3 avem coe cient ii DCT la precizia normal a.
Figura 4.5: Algoritmul progresiv cu aproxim ari succesive
Algoritmul progresiv combinat
Acest algoritm reprezint a o combinat ie a primilor doi. ^In Figura 4.6 este prezentat planul
coe cient ilor DCT ai unei imagini, dup a ce aplic am algoritmul combinat [16]. Dup a cum
putem observa s-au format opt secvent e de coe cient i, care vor transmi si ^ n ordinea
numerot arii lor  si anume DC1 apoi AC1 si a sa mai departe.
Figura 4.6: Algoritmul progresiv combinat
40

4.5 Codarea ierarhic a
Codarea ierarhic a este reprezentat a de codare piramidal a a unei imagini la diferite
rezolut ii, ecare imagine difer a prin rezolut ie de codarea adiacent a printr-un factor din
oricare dou a dimensiuni, orizontal a sau vertical a, sau chiar ambele [1]. Fiecare plan al
imaginii este codat cu o secvent  a de cadre. Primul cadru este reprezentat de obicei de o
versiune cu rezolut ie joas a a imaginii originale. Cadrele care urmeaz a sunt cadre reprezen-
tate de diferent a ^ ntre planurile imaginii surs a sube santionate  si planurile de referint  a
reconstruite. Cadrele pot codate folosind codarea JPEG cu pierderi, e codarea f ar a
pierderi. Codarea ierarhic a este folositoare atunci c^ and avem nevoie de imagini la rezolut ii
multiple [3].
^In Figura 4.6 este prezentat un exemplu de codare ierarhic a.
Figura 4.7: Exemplu de codare ierarhic a
Din imaginea original a Xse genereaz a dou a versiuni sube santionate:
X2, ^ n care imaginea este sube santionat a cu 2 pe ambele direct ii H siV;
X4, ^ n care imaginea este sube santionat a cu 4 pe ambele direct ii.
Algoritmul de compresie ierarhic a const a ^ n urm atorii pa si:
sube santinarea imaginii originale cu factorul dorit, de-a lungul ec arei dimensiuni,
vertical sau orizontal;
codarea imaginii de rezolut ie joas a folosind tehnicile de codare DCT secvent ial a,
progresiv a sau codarea f ar a ierderi;
decodarea imaginii de rezolut ie mic a, interpolarea  si suprae santionarea cu un factor
de doi, pe direct ia vertical a sau orizontal a, folosind un ltru de interpolare identic
cu cel al decodorului;
folosirea imaginii suprae santionat a ca predictor al imaginii originale  si codarea
diferent elor dintre dou a imagini;
se repet a algoritmul p^ an a c^ and algoritmul se codeaz a la rezolut ia init ial a.
Trebuie s a subliniem faptul c a procesul de sube santionare, poate precedat de o
operat ie de ltrare pentru a reduce efectele de tip alias.
Imaginea codat a este alc atuit a din trei cadre: S1,S2,S3. CadrulS1reprezint a imaginea
X4comprimat a [9]. Folosind doar codorul S1decodorul poate extrage o imagine X0
l, de
41

rezolut ie mic a. Cadrul S2reprezint a imaginea diferent  a dintre X2 si o estimare a lui X0
2,
dup a suprae santionarea lui X4cu 2. Folosind S1 siS2, decodorul poate extrage o imagine
de rezolut ie medie X0
m.^In mod similar S3este imaginea diferent  a ^ ntre imaginea original a
X si o estimare a lui X, bazat a pe X2 siX4. Dac a se folose ste o metod a de compresie
f ar a pierderi atunci X=X0.
Pentru codarea ierarhic a trebuie s a aloc am o zon a de memorie destul de mare pentru
a implementa algoritmul, dar avem avantajul c a imaginea codat a este imediat disponibil a
la diferite rezolut ii [12].
42

Capitol 5
Comparat ia dintre formatul JPEG  si formatul PNG
Formatul PNG este un format de  sier de compresie f ar a pierderi, ceea ce ^ l face o
alegere comun a pentru utilizare Web. PNG este o alegere bun a pentru stocarea desenelor
de linie, a textului  si a gra cii iconice, iar dimensiunea  sierului este una mic a. Formatul
are anumite utiliz ari speci ce, cum ar imagistica medical a  si munca gra c a, dar nu este
utilizat pe scar a larg a pe internet.
JPEG-urile  si PNG-urile au avantaje  si limit ari  si este mai important s a  stim c^ and
s a folosim ecare tip de  sier. Compresia JPEG tinde s a creeze dimensiuni de  siere
mai mici, la costul calit at ii imaginii, ^ n schimb PNG-urile sunr mai bune pentru captarea
imaginii f ar a pierderi  si ^ n situat iile ^ n care minimizarea dimensiunilor  sierelor nu este
de cea mai mare important  a.
^In continuare s a exemplu care s a pun a ^ n evident a diferent ele dintre formatul JPEG
 si formatul PNG.
Pornim de la o imagine surs a, de tipul .bmp , pe care o transform am din formutul RGB
^ n nuant e de gri.
IM_SURSA = imread('p.bmp');
fs=double(rgb2gray(IM_SURSA))/255.;
subplot(2,3,1);
imshow(fs);
title('Imagine sursa BMP');
Figura 5.1: Imaginea surs a BMP
Apoi transform am imaginea surs a ^ n cele dou a formate: PNG  si JPEG. La r^ andul lor,
cele dou a imagine sufer a transformarea de culoare.
PNG = imread('p.png');
fp=double(rgb2gray(PNG))/255.;
subplot(2,3,2);
imshow(fp),
title('Imagine PNG');
43

Figura 5.2: Imaginea PNG
JPG = imread ('p.jpg');
fg=double(rgb2gray(JPG))/255.;
subplot(2,3,3);
imshow(fg),
title('Imagine compresata JPG');
Figura 5.3: Imaginea compresat a JPG
^In continuare vom reprezenta prin histograme disribut ia pe nivele de gri a num arul de
pixeli din ecare imagine cu ajutorul funt iei imhist .
subplot(2,3,4);
imhist(fs);
subplot(2,3,4);
imhist(fp);
44

Figura 5.4: Histograma BMP
Figura 5.5: Histograma PNG
subplot(2,3,4);
imhist(fg);
Cu ajutorul histogramelor, am calculat variant a, dispersia, skewness normalizat, kur-
tosis. Aceste variabile au fost calculte cu ajutorul um atorului cod:
h=h./(size(fm,1)*size(fm,2)); %% normalizarea numerica a histogramelor
va=((double(0:255)-mu).^2)*h; %% varianta
si=sqrt(va); %% dispersia
sk=((double(0:255)-mu).^3)*h/si^3; %% skewness normalizat
ku=((double(0:255)-mu).^4)*h/si^4; %% kurtosis
Aceste date sunt calculate pentru ecare format ^ n parte, a sa cum se poate observa ^ n
Figura 5.7.
Putem observa c a imaginile BMP  si PNG au informat ii identice. Imaginea JPG are un
volum mai mic dec^ at BMP  si PNG, ind compresat a. ^In urma compresiei, se mic soreaz a
variant a pentru formatul JPG, asta ^ nsemn^ and c a se concentreaz a culorile. Kurtosis-ul
^ n cazul imaginii JPG este mai mic iar histograma tinde s a se simetrizeze.
45

Figura 5.6: Histograma JPG
Figura 5.7: Rezultate nale
Figura 5.8: Rezultate nale
46

Capitol 6
Concluzii
Scopul acestei lucr ari a fost de a pune ^ n evident a avantajele formatului de imagine
JPEG. ^In primul r^ and acest format este compatibil cu aproape ecare aplicat ie de proce-
sare a imaginilor, cu majoritatea dispozitivelor harware, un exemplu ar imprimantele.
Prin urmare ne este u sor s a print am orice imagine JPEG. ^In al doilea r^ and putem utiliza
formatul JPEG pentru a stoca imagini ^ n mi scare cu o rezolt ie mare, care ar neclare
^ ntr-un alt format de imagine.
Dimensiunea imaginilor JPEG poate redus a  si comprimat a, ceea ce ne ajut a la
transferul imaginilor pe internet, deoarece consum a o lungime de band a mai mic a. O
imagine JPEG poate comprimat a p^ an a la 5% din dimensiunea original a.
^In prezent doar imaginile pe 8 bit i sunt acceptate de formatul JPEG. Pe viitor, se
are ^ n vedere m arirea num arului de bit i, deoarece camerele digitale cu o rezolut ie ^ nalt a
accept a imagini de 10, 12, 14, sau 16 bit i.
Se poate concluziona din faptele ment ionate mai sus, c a imaginile JPEG ar trebui
utilizate ^ n cazul ^ n care dorim imagini de dimensiuni mici, portabile, compatibile cu
majoritatea dispozitivelor hardware  si nu ^ n ultimul r^ and pentru stocarea imaginilor ^ n
mi scare.
47

Index
a comprima, 21
algoritm, 45
algoritm combinat, 43
algoritm progresiv, 43
banda, 43
bit i, 33
bloc, 6, 33, 34
BMP, 11
cadru, 44, 45
codare entropic a, 25
codare predictiv a, 40
codarea entropic a, 41
codarea ierarhic a, 45
coe cient i, 35, 43
compresia cu pierderi, 30
compresia f ar a pierderi, 25
compresie, 5
compresie ierarhic a, 45
conversie, 34
crominant a , 24
cuantizare, 30, 36
culoare, 9, 21
DCT, 5, 6
decodare, 27, 45
decodor, 35, 45
digit i, 25
discretizare, 17
distorsiuni, 30
DNG, 22
e santion, 25
entropie, 25
eroare de predict ie cuantizat a, 30
ltrarea, 45
ltru, 45

ux, 26
frecvent a, 43
GIF, 5, 11
imagine, 7, 36imagine , 16
imaginea raster, 7
imaginea vector, 7
imagini convertite, 33
imagini vectoriale, 21
intensitate, 12
interpolare, 45
ireversibil, 30
JPEG, 5, 24, 33
luminant  a, 18
matrice, 36
nuant a, 29
pixel, 19, 21
PNG, 9, 11
ponderi, 34
predictor, 45
RAW, 22
redundant  a, 23
rezolut ie, 31, 40, 45
RGB, 9, 24
standard, 41
sube santionare, 8, 23, 45
TIFF, 11, 22
transformare, 36
transformata cosinus discret a, 34
unidimensional, 32
vector, 19
WIF, 5
YUV, 5, 24
48

Bibliogra e
[1] G. E. Blelloch, Introduction to data compression, compressed images , IEEE Computer
Graphics and Applications, 8 (2013), 44-50.
[2] S. Z. Bojkovic, I.T. Corneliu, V. Gui, R. Vasiu, Advanced Topics in Digital Image
Compression , Editura Politehnica, 1997.
[3] K. R. Castleman, Digital Image Processing , Prentice Hall, USA, 1996.
[4] A. K. Jain, Fundamentals of Digital Image Processing , Prentice Hall, Englewood Cli s
NJ, 1989.
[5] R. Gonzalez and R. Woods, Digital Image Processing , Addison-Wesley, Reading (MA),
1992.
[6] B. Orza, Codarea  si Compresia Imaginilor Multimedia , Editura Albastr a, 2007.
[7] T. Jinshan, E. Peli, S. Acton, Image enhancement using a contrast measure in the
compressed domain , Signal Processing Letters, IEEE, 10, 10 (2003) 289-292.
[8] J. Serra J. P. Soilla, Mathematical Morphology and it's Applications to Image Process-
ing, IEEE, Brisbane, Australia, 1994.
[9] Y. Q. Shi, H. Sun, Image and Video Compression for Multimedia Engineering , 2000,
157-167.
[10] T. Sikora, MPEG Digital Video-Coding Standards , IEEE Signal Processing Magazine,
5 (1997), 82-100.
[11] B. C. Smith, Lawrence A. Rowe, Compressed Domain Processing of JPEG-encoded
Images , Real-Time Imaging, 2 (1996), 3-17.
[12] C. Solomon, T. Breckon, Fundamentals Digital Image Processing , Wiley-Blackwell,
2011.
[13] A. Vlaicu, Prelucrarea Numeric a a Imaginilor , Albastr a, Cluj-Napoca 1997.
[14] F. M. Wahl, Digital Image Signal Processing, Artech House , Boston, 1987.
[15] A.Watson, B. Andrew, Image Compression Using the Discrete Cosine Transform ,
4(1), (1994), 81-88.
[16] B. Wilhelm, A. Krger, Mark J. Burge, Principles of Digital Processing , Springer-
Verlag, London Limited, 2009, 16-20.
[17] P. Zamperoni, "Image Enhancement", Advances in Imaging and Electron Physics ,
Academic Press, 1995, 1-77.
49

[18] J. Ziv and A. Lempel, A universal algorithm for sequential data compression , IEEE
Transactions on Informations Theeory 23, 3 (1977) 337-343.
[19] J. Ziv and A. Lempel, Compression of individual sequences via variable-rate coding ,
IEEE Transactions on Informations Theory 24, 5 (1978) 530-536.
50

Similar Posts