Sunteți pe pagina 1din 69

CAPITOLUL 10

COMPRESIA DE IMAGINI
10. 1. Reprezentarea numeric a imaginilor
O imagine este o suprafa de obicei dreptunghiular caracterizat, la nivelul oricrui punct al ei, de o anumit culoare. Ideal, culoarea variaz continuu n oricare direcie. Din pcate, n sistemele numerice, nu se pot utiliza mrimi care variaz continuu, ci doar forma discretizat a acestora. Astfel, o imagine trebuie s fie discretizat nainte de a se pune problema reprezentrii numerice. Discretizarea const n mprirea imaginii ntr-un caroiaj asemntor unei table de ah. Fiecare poriune de imagine delimitat de acest caroiaj va fi considerat ca avnd o culoare uniform - o medie a culorii existente pe aceast seciune. Aceste seciuni mai sunt denumite i pixeli sau puncte, numrul acestora definind rezoluia imaginii. De exemplu, pentru o imagine oarecare care are o rezoluie de 640x480 pixeli, nseamn c pe suprafaa acesteia s-a definit un caroiaj care o mparte pe orizontal n 640 de seciuni iar pe vertical, n 480. Pasul urmtor l constituie gsirea unei reprezentri pentru culoare. Orice culoare poate fi descompus n trei culori primare (de exemplu rouR, verde-G i albastru-B), cu alte cuvinte orice imagine poate fi obinut prin suprapunerea aditiv a trei radiaii luminoase avnd aceste trei culori i intensiti diferite. Deci, pentru a reprezenta numeric o culoare, este suficient s se reprezinte intensitile luminoase ale celor trei culori primare.
1

Dac se aloc cte 8 bii pentru fiecare component, se pot coda 256 nivele de intensitate, astfel, absena culorii (intensitate zero) se codific prin valoarea 00000000 n binar sau 00 n hexazecimal, iar intensitatea maxim, prin cea mai mare valoare ce poate fi reprezentat pe 8 bii, i anume, 11111111 n binar sau FF n hexazecimal. Aceast reprezentare, ns, ine mai mult de modalitile tehnice de captare i reproducere a imaginii i mai puin de mecanismul fiziologic de percepere a culorii. Prin diferite experimente s-a constatat c din punct de vedere al capacitii de percepere a detaliilor, ochiul este mai sensibil la intensitatea luminoas a culorii dect la nuan. Din acest motiv prezint interes o alt modalitate de reprezentare a culorii care s in cont de aceast observaie, un exemplu fiind reprezentarea YUV utilizat n televiziunea n culori. n acest caz, n locul celor trei componente primare R,G,B se utilizeaz alte trei mrimi derivate din acestea, i anume:
Y = 0,3R + 0,59G + 0,11B U = R Y = 0, 7T 0,59G 0,11B V = B Y = 0,3R 0,59 + 0,89 B

(10.1)

n cazul acestei reprezentri, componenta Y corespunde intensitii luminoase percepute pentru respectiva culoare (coeficienii 0,30, 0,59 i 0,11 reprezint strlucirile relative la alb ale celor trei culori primare rou, verde i, respectiv, albastru). Aceast component mai este ntlnit i sub numele de luminan. Componentele U i V sunt cele care definesc nuana culorii, din acest motiv, sunt denumite componente de crominan. Acestea se calculeaz ca diferena dintre componenta roie, respectiv albastr, i cea de luminan. Avantajul reprezentrii YUV este acela c separ componenta de luminan, pentru care ochiul este foarte sensibil la detalii, de componentele de nuan pentru care sensibilitatea este mai redus. Acest lucru face posibil reducerea informaiei asociate unei imagini prin utilizarea unei rezoluii mai reduse pentru componentele de crominan. n cazul
2

televiziunii n culori se realizeaz o "compresie" prin limitarea benzii de frecven alocate semnalelor de crominan (de exemplu n sistemul PAL semnalele U i V au o band de 1,3MHz fa de semnalul Y care are o band de 6MHz).

10.2. Reprezentarea imaginii n format necompresat


O imagine se reprezint ca o matrice de puncte (de obicei de forma ptrat), fiecare punct fiind caracterizat de o culoare. De exemplu, pentru imaginea din Fig. 10.1(a) se poate evidenia acest lucru dac se mrete o seciune a imaginii astfel nct matricea de puncte s devin vizibil, ca n Fig. 10.1(b).

(a)

(b)
Figura 10.1
3

Pentru a reprezenta o astfel de imagine trebuie s se utilizeze un mod de reprezentare numeric al culorii. Pentru aceasta se pornete de la observaia c orice culoare poate fi obinut prin amestecul n diferite proporii a trei culori de baz (culori primare). n practic se utilizeaz ROU (R), VERDE (G) i ALBASTRU (B). Intensitatea luminoas a unei culori primare poate fi reprezentat numeric sub forma unui ntreg de 8 bii, valoarea 0 corespunznd intensitii nule iar cea maxim (255) intensitii maxime. n acest fel, o culoare va fi reprezentat numeric printr-un triplet de ntregi pe 8 bii (R,G,B). De exemplu culoarea GALBEN va avea o reprezentare de forma (255,255,0). n aceste condiii imaginea se reprezint sub forma unei matrice IM(Nx,Ny) unde Nx reprezint numrul de puncte pe orizontal i Ny este numrul de puncte pe vertical, iar elementele matricei sunt triplei de ntregi pe 8 bii de tip (R,G,B).

10.3. Metode i abordri ale compresiei imaginii


n continuare se reiau cteva metode folosite n compresie, evideniind aplicabilitatea lor n compresia de imagini. 1. Cuantizarea scalar poate fi folosit pentru a compresa imagini, dar performanele ei sunt mediocre. De exemplu, o imagine cu 8 bii/pixel poate fi compresat prin cuantizare scalar eliminnd cei mai nesemnificativi patru bii ai fiecrui pixel. Aceasta conduce la o rat de compresie de 0,5, care pe lng faptul c nu este semnificativ, determin n acelai timp i reducerea numrul de culori (sau nuane de gri) de la 256 la doar 16. O astfel de reducere nu numai ca descrete pe ansamblu calitatea imaginii reconstruite, dar poate chiar crea benzi de diferite culori, un efect observabil i deranjant care este ilustrat aici.

Exemplul 10.1. Se consider, de exemplu, un rnd de 12 pixeli de culori similare, pornind de la 202 la 215. n notaie binar aceste valori sunt: 11010111 11010110 11010101 11010011 11010010 11010001 11001111 11001110 11001101 11001100 11001011 11001010. Cuantizarea va produce urmtoarele 12 valori de 4 bii: 1101 1101 1101 1101 1101 1101 1100 1100 1100 1100 1100 1100, din care se vor reconstrui cei 12 pixeli, prin adugarea a 4 zerouri, fiecrei valori cuantizate: 11010000 11010000 11010000 11010000 11010000 11010000 11000000 11000000 11000000 11000000 11000000 11000000. Primii ase pixeli ai rndului acum au valoarea 110100002 = 208, n timp ce urmtorii ase pixeli sunt 110000002 = 192. Dac rnduri adiacente au pixeli similari, primele ase coloane vor forma o band, clar diferit de banda format de urmtoarele ase coloane. Acest fenomen de formare a benzilor, sau de conturare, este foarte evident pentru ochi, deoarece acetia sunt sensibili la margini i rupturi ntr-o imagine. 2. Cuantizarea vectorial poate fi folosit cu mai mult succes pentru a compresa imagini. 3. Metodele statistice funcioneaz mai bine cnd simbolurile ce trebuie compresate au probabiliti diferite. O secven de intrare n care mesajele au aceeai probabilitate nu se va compresa eficient. n acest sens, ntr-o imagine alb-negru sau color n tonuri continue, diferitele culori sau nuane de gri se dovedesc de multe ori a avea aproximativ aceleai probabiliti. De aceea metodele statistice nu sunt o alegere bun pentru compresia unor astfel de imagini, i sunt necesare noi abordri. Imaginile cu discontinuiti de culoare, n care pixeli adiaceni au culori foarte diferite, se
5

compreseaz mai bine cu metodele statistice, dar n acest caz nu este uoar predicia pixelilor. 4. Metodele de compresie bazate pe dicionar tind, de asemenea, s nu aib succes n cazul imaginilor cu tonuri continue. O astfel de imagine conine de obicei pixeli adiaceni n culori similare, dar nu conine modele repetitive. Chiar i o imagine care conine modele repetitive, cum sunt liniile verticale, le poate pierde cnd este digitizat. O linie vertical n imaginea original poate deveni uor oblic atunci cnd imaginea este digitizat. O linie vertical ideal este prezentat n Fig. 10.2a. n Fig. 10.2.b linia este presupus a fi perfect digitizat n zece pixeli, aezai vertical. Totui, dac imaginea este plasat n digitizor uor oblic, procesul de digitizare poate fi imperfect, i pixelii rezultai pot arta ca n Fig. 10.2.c.

a)

b)

c)

Fig. 10.2. Digitizare perfect i imperfect.

O alt problem a compresiei imaginilor bazate pe dicionar este aceea c astfel de metode scaneaz imaginea rnd cu rnd, i pot pierde astfel corelaii verticale ntre pixeli. Un exemplu sunt cele dou imagini din Figura 10.3 a, b. Salvnd ambele imagini n GIF89, un format de fiier grafic bazat pe dicionar, au rezultat fiiere de dimensiuni 1053, respectiv 1527 octei.
6

(a)

(b)

Figura 10.3. Compresia bazat pe dicionar a liniilor paralele

Metodele tradiionale sunt nesatisfctoare pentru compresia de imagini, astfel nct au fost necesare abordri noi, care, dei diferite, se bazeaz pe eliminarea redundanei din imagine, folosind urmtorul principiu: Principiul compresiei de imagine. Dac se selecteaz aleator un pixel dintr-o imagine, exist o probabilitate mare ca vecinii si s aib aceeai culoare sau culori foarte apropiate. Compresia de imagine este, deci, bazat pe faptul c pixelii nvecinai sunt puternic corelai. Aceast corelare se numete i redundan spaial. Exemplul 10.2. n continuare este prezentat un exemplu simplu care ilustreaz cum poate fi eliminat redundana dintr-un ir de pixeli corelai. Urmtoarea secven de valori reprezint intensitile a 24 de pixeli adiaceni dintr-un rnd al unei imagini n tonuri continue: 12, 17, 14, 19, 21, 26, 23, 29, 41, 38, 31, 44, 46, 57, 53, 50, 60, 58, 55, 54, 52, 51, 56, 60.

Doar doi din cei 24 de pixeli sunt identici. Valoarea lor medie este 40,3. Scznd perechi de pixeli adiaceni rezult secvena: 12, 5, -3, 5, 2, 4, -3, 6, 11, -3, -7, 13, 4, 11, -4, -3, 10, -2, -3, 1, -2, -1, 5, 4. Cele dou secvene sunt ilustrate n Figura 10.4.

Fig. 10.4: Valorile i diferenele celor 24 pixeli adiaceni.

Secvena de valori diferen are trei proprieti care ilustreaz potenialul ei de compresie: 1. Valorile secvenei diferen sunt mai mici dect valorile pixelilor originali. Media lor este de 2,58. 2. Exist valori ale secvenei diferenelor care se repet. Exist doar 15 valori diferen distincte, deci, n principiu ele pot fi codate prin patru bii fiecare. 3. Valorile secvenei diferen sunt decorelate, adic valori diferen adiacente tind a fi diferite. Aceasta poate fi observat dac se efectueaz o nou scdere a lor, rezultnd secvena 12, -7, -8, 8, -3, 2, -7, 9, 5, -14, -4, 20, -11, 7, -15, 1, 13, -12, -1, 4, -3, 1, 6, 1. Valorile acesteia sunt mai mari dect diferenele anterioare. n general, metodele de compresie pentru imagini sunt proiectate pentru un tip particular de imagine i n continuare se prezint cteva din aceste metode specifice. Imaginile particulare vizate sunt imagini cu dou nivele, imagini cu tonuri de gri i imagini color. Abordarea 1. Aceasta este folosit pentru imagini cu dou nivele. Un pixel dintr-o astfel de imagine este reprezentat printr-un bit. Aplicnd
8

principiul compresiei de imagine asupra unei imagini cu dou nivele, nseamn c pixelii nvecinai ai unui pixel P tind a fi identici cu P. Astfel, are sens folosirea unei codri RLC (Run length coding) pentru a compresa o astfel de imagine. O metod de compresie pentru o astfel de imagine o poate scana n ordinea rastrului (rnd cu rnd), calculnd lungimile irurilor de pixeli albi i negri. Aceste lungimi sunt codate prin coduri de lungime variabil i sunt nscrise n secvena compresat. Un exemplu de astfel de metod este compresia facsimil. Ar trebui accentuat faptul c aceasta este doar o abordare a imaginilor cu dou nivele. n practic, detaliile metodelor particulare difer, n funcie de aplicaie. De exemplu, o metod poate scana imaginea coloan cu coloan, sau n zig-zag, sau o poate scana regiune cu regiune. Abordarea 2 se aplic, de asemenea, pentru imagini cu dou nivele. Principiul compresiei de imagine spune c vecinii unui pixel tind a fi similari lui. Se poate extinde acest principiu i concluziona c dac pixelul curent are culoarea c (unde c este ori alb, ori negru), atunci pixelii de aceeai culoare anteriori i urmtori tind s aib aceiai vecini imediai. Aceast abordare urmrete n vecini apropiai ai pixelului curent i i consider ca un numr de n bii. Acest numr se numete contextul pixelului. n principiu pot exista 2n contexte, dar datorit redundanei imaginii, distribuia lor este neuniform. Unele contexte ar trebui s fie foarte frecvente, iar celelalte, rare. Codorul numr de cte ori a fost gsit deja fiecare context pentru un pixel de culoarea c, i asigneaz corespunztor probabiliti acestor contexte. Dac pixelul curent are culoarea c i contextul su are probabilitatea p, codificatorul poate folosi coduri aritmetice adaptive pentru a codifica pixelul cu acea probabilitate. Aceast abordare este folosit de standardul JBIG (Joint Bi-level Processing Group).

n continuare, se consider imagini n nuane de gri. Un pixel dintr-o astfel de imagine este reprezentat prin n bii i poate avea una din 2n valori. Aplicarea principiul compresiei de imagine asupra unei imagini n nuane de gri implic faptul c vecinii imediai ai unui pixel P tind a fi similari cu P, ns nu n mod necesar identici cu el. Astfel, nu mai poate fi folosit codarea RLE (run length encoding) pentru compresia unei astfel de imagini, ci sunt folosite urmtoarele dou abordri. Abordarea 3. Se separ imaginea n tonuri de gri n n imagini pe dou nivele i apoi se compreseaz fiecare cu un cod RLE instantaneu. Principiul compresiei de imagini, n acest caz, s-ar formula prin afirmaia c doi pixeli adiaceni care sunt similari n imaginea n tonuri de gri vor fi identici n cele mai multe imagini cu dou nivele. Acest lucru ns nu este adevrat, aa cum reiese din urmtorul exemplu. Exemplul 10.3. Se consider o imagine n tonuri de gri cu n = 4 (adic 4 bii/pixel sau 16 nuane de gri). Imaginea poate fi separat n patru imagini bi-nivel. Dac doi pixeli adiaceni din imaginea original au valorile 0000 i 0001, atunci sunt similari. De asemenea, sunt identici n trei din cele patru imagini bi-nivel. Totui, doi pixeli adiaceni cu valori 0111 i 1000 sunt de asemenea similari n imaginea n tonuri de gri (valorile lor sunt 7, respectiv 8), dar difer n toate cele patru imagini alb-negru. Aceast problem apare deoarece reprezentarea binar a numerelor ntregi adiacente poate diferi prin mai muli bii. Codurile binare pentru 0 i 1 difer printr-un bit, cele pentru 1 i 2 difer prin doi bii, i cele pentru 7 i 8 prin patru bii. Soluia este proiectarea unor coduri speciale, astfel nct codurile oricror dou numere ntregi consecutive i i i+1 s difere numai printr-un singur bit. Un exemplu de astfel de cod este codul Gray reflectat [Sal].
10

Abordarea 4. Se folosete contextului unui pixel pentru a prezice valoarea sa. Contextul unui pixel este dat de valorile ctorva dintre vecinii si. Se examineaz civa vecini ai unui pixel P, se calculeaz o medie A, a valorilor lor, i se prezice c P va avea valoarea A. Principiul compresiei de imagini spune c predicia va fi corect n cele mai multe cazuri, aproape corect n multe cazuri, i complet greit n puine cazuri. Valoarea prezis a pixelului P reprezint informaia redundant n P, astfel nct se calculeaz diferena : = P - A, i se asigneaz coduri instantanee de lungime variabil pentru diferitele valori . Dac P poate lua valori de la 0 la m-1, atunci va avea valori n intervalul [-(m-1),+(m-1)], i numrul cuvintelor de cod necesare este 2m - 1. Experimente cu un numr mare de imagini sugereaz c valorile lui tind s fie distribuite dup distribuia Laplace. O metod de compresie ar putea s foloseasc aceast distribuie pentru a asigna o probabilitate fiecrei valori a lui , i apoi s se foloseasc codarea aritmetic pentru a coda eficient valorile . Acesta este principiul metodei progresive multinivel MLP [Sal]. Contextul unui pixel poate fi constituit din unul sau doi din vecinii si imediai. Dac, ns, se consider mai muli pixeli vecini n obinerea contextului, se pot obine rezultate mai bune. Media A ntr-un astfel de caz ar trebui ponderat cu vecinii apropiai, care au o pondere mai mare. Pentru ca decodorul s poat decoda o imagine, ar trebui s poat calcula contextul fiecrui pixel. Acest lucru nseamn c n context ar trebui s fie inclui doar pixelii care au fost deja codai. Dac imaginea este scanat n ordinea rastrului, contextul ar trebui s conin doar pixeli localizai deasupra pixelului curent sau pe acelai rnd cu el, la stnga. Abordarea 5. Se aplic o transformare valorilor pixelilor, i se codeaz valorilor transformate. Se reamintete c pentru a realiza compresia, trebuie redus sau eliminat redundana. Redundana unei imagini este cauzat de corelaia dintre pixeli, deci transformnd pixelii
11

ntr-o reprezentare n care acetia sunt decorelai, se elimin redundana. De asemenea este posibil ca o transformare s fie apreciat n funcie de entropia imaginii. ntr-o imagine puternic corelat, pixelii tind a avea valori echiprobabile, ceea ce duce la o entropie maxim. Dac pixelii transformai sunt decorelai, anumite valori de pixeli devin mai frecvente, avnd astfel probabiliti mari, n timp ce alte valori sunt rare, fapt ce conduce la o entropie mic. Cuantiznd valorile transformate, se poate produce o compresie cu pierdere de informaie, eficient, a imaginii. Se dorete ca valorile transformate s fie independente, deoarece codarea valorilor independente face mai simpl construirea unui model statistic. n cazul imaginilor n culori, un pixel este constituit din trei componente de culoare, rou, verde i albastru. Majoritatea imaginilor color sunt ori n tonuri continue, ori n tonuri discrete. Abordarea 6. Principiul acestei abordri const n separarea unei imagini color n tonuri continue n trei imagini n tonuri de gri i compresia fiecreia din ele separat, folosind abordrile 2, 3 i 4. Pentru o imagine n tonuri continue, principiul compresiei de imagini implic faptul c pixelii adiaceni au culori similare, dac nu chiar identice. Totui, culori similare nu nseamn valori similare ale pixelilor. Se consider, de exemplu, valori pe 12 bii ale pixelilor, n care fiecare component de culoare este exprimat n patru bii. Astfel, cei 12 bii 1000|0100|0000 reprezint un pixel a crui culoare este o mixtur de opt uniti de rou (aproape 50%, din valoarea maxim de 15 uniti), patru uniti de verde (circa 25%), i deloc albastru. Se consider doi pixeli adiaceni cu valorile 0011|0101|0011 i 0010|0101|0011. Acetia au culori similare, din moment ce doar componentele lor roii difer printr-o unitate. Cu toate acestea, cnd se consider ca numere de 12 bii, cele dou numere 001101010011 i 001001010011 sunt diferite, pentru c difer ntr-un bit cu pondere semnificativ.
12

O caracteristic important a acestei abordri este folosirea unei reprezentri tip luminan crominan, YUV, n loc de reprezentarea comun RGB. Avantajul acestei reprezentri este c ochiul este sensibil la modificri mici ale luminanei, dar nu i la ale crominanei. Aceasta permite pierderea unei cantiti considerabile de date n componentele de crominan, fr o pierdere vizibil de calitate. Abordarea 7. O abordare diferit este necesar pentru imaginile n tonuri discrete. Se reamintete c o astfel de imagine conine regiuni uniforme care pot aprea de mai multe ori ntr-o imagine. Un exemplu l constituie o pagin scris la calculator care const din text i icoane. Fiecare caracter de text i fiecare icoan este o regiune, i fiecare regiune poate aprea de mai multe ori n imagine. O modalitate posibil de compresie a unei astfel de imagini este scanarea sa, identificarea regiunilor, i gsirea regiunilor care se repet. Dac o regiune B este identic cu o regiune A deja gsit, atunci B poate fi compresat prin nregistrarea unui pointer corespunztor lui A n secvena compresat. Metoda descompunerii n blocuri este un exemplu de implementare a acestei abordri. Abordarea 8. Se mparte imaginea n regiuni (care se suprapun sau nu) i se compreseaz prin procesarea prilor una cte una. Se presupune c urmtoarea parte de imagine neprocesat este partea cu numrul n. Se ncearc regsirea ei n prile 1 n 1 , care au fost deja procesate. Dac partea n poate fi exprimat, de exemplu, ca o combinaie a unor pri anterioare scalate i rotite, atunci doar cele cteva numere care specific combinaia trebuie salvate, i partea n poate fi ignorat. Dac partea n nu poate fi exprimat ca o combinaie de pri deja procesate, aceasta este procesat i salvat n secvena compresat. Aceast abordare este baza diferitelor metode fractale pentru compresia de imagini. Se aplic principiul compresiei de imagine asupra prilor de imagine, n loc de pixelii individuali. Aplicat n acest fel, principiul afirm c imaginile ce urmeaz a fi compresate au un anumit
13

volum de auto-similaritate, adic pri de imagine sunt identice sau similare cu ntreaga imagine sau cu alte pri.

10.4. Transformri folosite n compresia imaginilor


Conceptul matematic de transformare este important n multe domenii, printre care i cel al compresiei de imagini. O imagine poate fi compresat prin transformarea pixelilor si (care sunt corelai) ntr-o reprezentare unde acetia sunt decorelai. Compresia este obinut dac valorile noi sunt mai mici, n medie, dect cele originale. Compresia cu pierdere de informaie poate fi obinut prin cuantizarea valorilor transformate. Decodorul primete valorile transformate din secvena compresat i reconstruiete datele originale (exacte sau aproximate), prin aplicarea transformrii inverse. Transformrile discutate n aceast seciune sunt ortogonale. Termenul de decorelare se refer la faptul c valorile transformate sunt independente unele de altele. Ca urmare, ele pot fi codate independent, ceea ce face mai simpl construirea unui model statistic. O imagine poate fi compresat, dac reprezentarea sa are redundan. Redundana n imagini deriv din corelarea pixelilor. Dac se transform imaginea ntr-o reprezentare n care pixelii sunt decorelai, se elimin redundana i imaginea a devenit n totalitate compresat. Se consider cazul n care se scaneaz o imagine n ordinea rastrului i se grupeaz perechile de pixeli adiaceni. Deoarece pixelii sunt corelai, cei doi pixeli ai unei perechi, n mod normal, au valori similare. n continuare se consider perechile de pixeli ca puncte n spaiul bi-dimensional, i se reprezint grafic. Se tie c toate punctele de forma (x,x) sunt localizate pe prima bisectoare, y = x, aa c este de ateptat ca punctele considerate s fie concentrate n jurul acesteia. Fig. 10.4a arat rezultatele reprezentrii
14

pixelilor unei imagini oarecare, n care un pixel are valori de la 0 la 255. Cele mai multe puncte sunt grupate n jurul acestei linii, i doar cteva puncte sunt localizate departe de ea. Acum se transform imaginea prin rotirea tuturor punctelor cu 45 n sensul acelor de ceasornic n jurul originii, aa nct prima bisectoare coincide acum cu axa x, ca n Fig.10.4 b.

Fig. 10.4. Rotirea unui grup de puncte

Aceasta se face prin intermediul transformrii simple


15

cos 450 sin 450 1 1 1 ( x * , y * ) = ( x, y ) = ( x, y ) = ( x, y )R (10.2) sin 450 cos 450 2 1 1 unde matricea de rotaie R este ortonormal (adic produsul scalar al unui rnd cu el nsui este 1, produsul scalar al rndurilor diferite este 0, i la fel pentru coloane). Transformarea invers este 1 1 1 ( x, y ) = ( x* , y* )R 1 = ( x* , y* )RT = ( x* , y* ) (10.3) 2 1 1 (Inversa unei matrici ortonormale este transpusa sa). Este evident c majoritatea punctelor ajung s aib coordonatele y nule sau aproape nule, n timp ce coordonatele x nu se modific foarte mult. Distribuiile coordonatelor x i y (adic pixelii cu numr impar i par dintr-o imagine) nainte de rotaie nu difer cu mult, pe cnd, dup rotaie, distribuia coordonatelor x rmne aproape la fel, dar cea a coordonatelor y este concentrat n jurul lui zero. Cum coordonatele punctelor sunt cunoscute nainte i dup rotaie, este simplu s se msoare reducerea ce intervine n corelaia punctelor, prin

calculul funciei de corelaie

x y
i i

dintre puncte. n acest caz, compresia

fr pierderi a imaginii poate fi efectuat prin simpla folosire a pixelilor transformai n secvena compresat. Dac se accept compresie cu pierdere de informaie, atunci toi pixelii pot fi cuantizai, obinndu-se numere i mai mici. De asemenea, se pot separa toi pixelii cu numr impar (cei care creeaz coordonatele x ale perechilor), urmai apoi de toi pixelii cu numr par. Aceste dou secvene sunt numite vectorii coeficienilor transformrii. A doua secven const din numere mici i poate avea, dup cuantizare, iruri de zerouri, care pot conduce la o compresie i mai bun. Se poate arta c dispersia total a pixelilor nu se modific prin rotaie [Sal], din moment ce matricea de rotaie este ortonormal. Totui, deoarece dispersia noilor coordonate y este mic, cea mai mare parte din
16

dispersie este acum concentrat n coordonatele x. Dispersia este uneori numit energia distribuiei pixelilor, astfel nct se poate afirma c rotaia a concentrat (sau compactat) energia n coordonata x i a realizat compresia n acest fel. Concentrarea energiei ntr-o coordonat prezint avantajul c face posibil cuantizarea acestei coordonate mai fin dect pentru celelalte coordonate. Urmtorul exemplu ilustreaz eficiena acestei transformri fundamentale. Exemplul 10.4. Se consider punctul (4,5), ale crui coordonate sunt apropiate. Folosind ecuaia (10.2), punctul este transformat n

(4,5)R = (9,1) / 2 (6,36396; 0, 7071) .

Energiile

punctului

transformatului su sunt 42 + 52 = 41 = (92 + 12 ) / 2 . Dac se neglijeaz coordonata mai mic, 4, a punctului, se ajunge la o eroare de 42 / 41 = 0,39 . Dac, ns, se neglijeaz cel mai mic din cei doi coeficieni transformai (0,7071), eroarea rezultat este doar de 0, 70712 / 41 = 0, 012 . Un alt mod de a obine aceeai eroare este considerarea punctului reconstruit. Aplicnd punctului transformat 12 (9,1) transformarea invers dat de relaia 10.3, se ajunge la punctul original (4,5). Fcnd acelai lucru cu
1 2

(9, 0) rezult

punctul reconstruit aproximat (4,5, 4,5). Diferena de energie dintre punctul original i cel reconstruit este aceeai cantitate [(42 + 52 ) (4,52 + 4,52 )] 41 40,5 = = 0, 012 (10.4) 4 2 + 52 41 Aceast transformare simpl poate fi extins cu uurin la orice numr de dimensiuni. n loc de a selecta perechi de pixeli adiaceni, se pot selecta triplete. Fiecare triplet devine un punct n spaiul tri-dimensional, i aceste puncte formeaz o regiune concentrat n jurul liniei care formeaz
17

unghiuri de 45 cu cele trei axe de coordonate. Cnd aceast linie este rotit astfel nct s coincid cu axa x, coordonatele y i z ale punctelor transformate devin numere mici. Transformarea este fcut prin multiplicarea fiecrui punct cu o matrice de rotaie de dimensiune 3 3, ortonormal. Punctele transformate sunt apoi separate n trei vectori de coeficieni, din care ultimii doi sunt alctuii din numere mici. Pentru compresie maxim, fiecare vector de coeficieni trebuie cuantizat separat. Aceast idee se poate extinde la mai mult de trei dimensiuni, cu singura diferen c nu se pot vizualiza spaii de dimensiuni mai mari de trei. Unele metode de compresie, cum ar fi JPEG, mpart o imagine n blocuri de 8 8 pixeli fiecare, i rotesc fiecare bloc de dou ori. Aceast rotaie dubl produce un set de 64 de valori transformate, din care prima, numit coeficient DC sau de curent continuu, este mare, i celelalte 63, numite coeficienii AC sau de curent alternativ, sunt, de obicei, mici. Astfel, aceast transformare concentreaz energia n prima din cele 64 de dimensiuni.

10.4.1. Transformri ortogonale


Transformrile de imagine folosite n practic trebuie s fie rapide i, de preferin, simplu de implementat. Aceasta sugereaz folosirea transformrilor liniare. ntr-o astfel de transformare, fiecare valoare transformat ci este o sum ponderat a pixelilor d j , unde fiecare este multiplicat cu un factor (sau coeficient de transformare) wij . Astfel,
ci = j d j wij , pentru i,j=1,2, ...,n.

(10.4)

Pentru n=4, relaia precedent se scrie matriceal

18

c1 w11 c2 = w21 c3 w31 c4 w41

w12 w22 w32 w42

w13 w23 w33 w43

w14 d1 w24 d 2 w34 d3 w44 d 4

n general C=WD (10.4) Fiecare rnd al lui W este numit vector al bazei. Se dorete determinarea valorilor ponderilor wij , astfel nct prima valoare transformat c1 s fie mare, i restul valorilor c2 , c2 ,... s fie mici. Din relaia ci = j d j wij se observ c ci va fi mare, cnd fiecare pondere

wij consolideaz contribuia lui d j la ci . Aceasta are loc, de exemplu, cnd


vectorii wij i d j au valori i semne similare. Invers, ci va fi mic, dac toate ponderile wij sunt mici i jumtate din ele au semnul opus lui d j . Astfel, cnd se obine un ci mare, nseamn c vectorul wij al bazei este similar cu vectorul de date d j . Un ci mic, pe de alt parte, nseamn c wij i d j au forme diferite. n concluzie, vectorii bazei wij pot fi interpretai ca mijloace de a extrage caracteristici din vectorul de date. n practic, ponderile ar trebui s fie independente de date. Altfel, ponderile ar trebui incluse n secvena compresat, pentru a fi folosite de decodor. Aceast lucru, combinat cu faptul c datele sunt valorile pixelilor, care sunt nenegative, sugereaz o modalitate de a alege vectorii bazei. Primul vector, cel care produce c1 , ar trebui s fie alctuit din valori pozitive, poate chiar identice. Aceasta va ntri valorile nenegative ale pixelilor. Fiecare din ceilali vectori ar trebui s aib jumtate din elemente pozitive, cealalt jumtate, negative. Cnd sunt multiplicai cu valorile nenegative ale datelor, astfel de vectori tind s produc o valoare mic. O
19

alegere bun a vectorilor bazei ar fi dac acetia ar fi foarte diferii unul de altul, i astfel pot extrage mai multe caracteristici. Aceasta duce la ideea ca vectorii bazei s fie ortogonali. Dac matricea de transformare W este ortogonal, transformarea n sine se numete ortogonal. O alt observaie care ajut la selectarea vectorilor bazei este c acetia ar trebui s aib frecvene din ce n ce mai mari, extrgnd astfel caracteristici de frecven mai nalt din date pe parcursul calculului valorilor transformate. Aceste consideraii sunt satisfcute de matricea ortogonal: 1 1 1 1 1 1 1 1 (10.5) W= 1 1 1 1 1 1 1 1 Primul vector al bazei (rndul de sus al lui W) const numai din valori 1, deci frecvena sa este zero. Fiecare din vectorii urmtori are doi de +1 i doi de -1, deci produc valori transformate mici, i frecvenele lor (msurate ca numrul de schimbri de semn de-a lungul vectorului bazei) devin mai nalte. Aceast matrice este similar cu transformarea WalshHadamard [ref].

Exemplul 10.5. Se transform vectorul i se obine 1 1 1 1 1 1 1 1

de date (4, 6, 5, 2) cu ajutorul matricei 10.5

1 1 4 17 1 1 6 3 = 1 1 5 5 1 1 2 1 Rezultatele sunt ncurajatoare, din moment ce c1 este mare (n

comparaie cu datele originale) i dou din valorile rmase ci sunt mici.


20

Totui, energia datelor originale este 42 + 62 + 52 + 22 = 81 , n timp ce energia valorilor transformate este 17 2 + 32 + (5) 2 + 12 = 324 , de patru ori mai mult. Este posibil a se conserva energia, prin multiplicarea matricei de transformare W prin factorul de scalare 1/2. Noul produs W (4, 6,5, 2)T genereaz acum valorile transformate (17/2, 3/2, -5/2, 1/2). Energia este conservat, dar este concentrat n prima component, care conine 8,52 / 81 = 89% din energia total, n comparaie cu datele originale, n care prima component coninea 42 / 81 = 20% din energie. Un alt avantaj al lui W este c efectueaz i transformarea invers.

Produsul W (17 / 2, 3 / 2, - 5 / 2, 1/ 2)T reconstruiete datele originale (4, 6, 5, 2). Pentru a aprecia eficiena transformrii, se cuantizeaz vectorul transformat (8,5; 1,5; -2,5; 0,5) n ntregii (9, 1, -3, 0) i se efectueaz transformarea invers, obinndu-se vectorul (3,5; 6,5; 5,5; 2,5). Un alt experiment este de a renuna complet la cele dou elemente mai mici ale vectorului i de a face transformarea invers pentru vectorul (8,5; 0; -2,5; 0). Aceasta produce datele reconstruite (3; 5,5; 5,5; 3), nc foarte apropiate de valorile originale. n concluzie i aceast transformare simpl este util n compresie.

10.4.2. Transformri bi-dimensionale


Exemplul 10.6. Avnd datele bi-dimensionale sub forma de matrice 44 4 7 6 9 6 8 3 6 D= 5 4 7 6 2 4 5 9
21

(n care prima coloan este identic cu exemplul anterior), se poate aplica transformare uni-dimensional anterioar. Rezultatul este: 8,5 11,5 10,5 15 1 1 1 1 3,5 1,5 0 1 1 1 1 1 1,5 C' = WD = D= 2,5 0,5 0,5 3 2 1 1 1 1 0,5 0,5 2,5 0 1 1 1 1 Fiecare coloan din C este transformarea unei coloane din D. Se observ primul element al fiecrei coloane a lui C este dominant. De asemenea, toate coloanele au aceeai energie. Se poate considera c C este prima etap dintr-un proces n doi pai care produce transformarea bidimensional a matricei D. Pasul doi ar trebui s transforme fiecare linie a lui C, i aceasta se face prin nmulirea lui C cu transpusa WT. Pentru acest caz particular W sau 8,5 1,5 C= 2,5 0,5 este simetric, deci se ajunge la C=C'W T =WCW T

11,5 10,5 15 1 1 1 1 3,5 1,5 0 1 1 1 1 1 = 0,5 0,5 3 2 1 1 1 1 0,5 2,5 0 1 1 1 1 22, 75 2, 75 0, 75 3, 75 3, 25 0, 25 1, 75 1, 75 = 0, 25 3, 25 0, 25 2, 25 1, 25 1, 25 0, 75 1, 75 Elementul din stnga sus este dominant, coninnd 89% din energia total de 579 din matricea de date D original. Transformarea n doi pai, bi-dimensional, a redus corelarea att n dimensiunea vertical ct i n cea orizontal. n continuarea se vor prezenta pe scurt cteva transformri uzuale.

22

10.4.3. Transformarea Karhunen-Love (KLT)


Transformarea Karhunen-Love (KLT) are cea mai bun eficien din punct de vedere al compactrii energiei (sau, altfel spus, decorelare a pixelilor), dar are mai mult o valoare teoretic dect una practic. Se consider o imagine care se mparte n k blocuri de cte n pixeli fiecare, unde n este de obicei 64, dar poate avea i alte valori, i k depinde de mrimea imaginii. Se consider blocurile de vectori b(i) , unde i=1, 2, ...,

k. Pe baza acestora se calculeaz vectorul medie b =

( b ) / k .
(i )
i

Se

definete un nou set de vectori v (i ) = b (i ) b , care vor avea media zero. Matricea transformrii KLT are dimensiunea nn i se noteaz cu A. Rezultatul transformrii vectorului v(i) este vectorul pondere w(i)=Av(i). Valoarea medie a lui w(i) este de asemenea zero. Se construiete o matrice V ale crei coloane sunt vectorii v(i) i o alt matrice ale crei coloane sunt vectorii pondere w(i). V=(v(1),v(2),.....,v(k)), W=(w(1),w(2),....,w(k)) (10.6) Matricele V i W au fiecare n linii i k coloane. Din definiia lui w(i) rezult c W=AV. Cei n vectori de coeficieni c(j) din transformarea Karhunen-Love sunt dai de relaia:
c( j ) = ( w(1) , w(2) ,..., w(jk ) ), j j
(j)

j = 1, 2,..., n

(10.7)

Astfel, vectorul c este format din elementele j ale tuturor vectorilor pondere w(i) cu i=1,2,...,k (c(j) este coordonata j a vectorilor w(i)). Se examineaz elementele matricei produs (WWT) (aceasta este o matrice de dimensiuni nn). Un element oarecare, din linia a i coloana b, al acestei matrice este o sum de produse:
( ( ( W WT ) ab = wai ) wbi ) = ci( a ) ci(b ) = c( a )c(b ) , pentru a, b [1, n] (10.8) i =1 i =1 k k

23

Deoarece valoarea medie a fiecrui vector w(i) este zero, un element (WWT)jj, de pe diagonala principal a matricei produs, este variana sau dispersia elementului j (sau a coordonatei j) a vectorului w(i). Elementele din afara diagonalei sunt covarianele vectorilor w(i), adic un element ( WWT ) ab este covariana coordonatelor a i b ale vectorilor w(i), care este egal cu produsul scalar c( a )c(b ) . Un deziderat major al transformrilor aplicate imaginii este de a decorela coordonatele vectorilor. Din teoria probabilitilor se tie c dou coordonate sunt decorelate, dac covariana lor este zero. Un alt deziderat este acela de compactare a energiei, care, de fapt este n strns legtur cu primul. Avnd n vedere aceste lucruri, se urmrete gsirea unei matrice de transformare A, astfel nct produsul (WWT) s fie o matrice diagonal. Din definiia matricei W se obine: (10.9) WWT=(AV)(AV)T=A(VVT)AT T Matricea VV este simetric, i elementele ei sunt covarianele coordonatelor vectorilor v(i):
( ( (VV T ) ab = vai ) vbi ) , pentru a, b [1, n] i =1 k

(10.10)

Deoarece matricea (VV T ) este simetric, vectorii si proprii sunt ortogonali. Se normalizeaz aceti vectori, pentru a fi ortonormali i se aleg ca linii ale matricei A. Rezultatul obinut este:
1 0 0 2 T T T WW = A(VV ) A = 0 0 0 0 0 0 0 0 0 n

3
0

(10.11)

Aceast alegere a matricei A conduce la o matrice WWT diagonal, ale crei elemente de pe diagonala principal sunt valorile proprii ale matricei
24

VVT . Matricea A este matricea transformrii Karhunen Loeve, liniile sale fiind vectorii bazei KLT i energiile (varianele) vectorilor transformai
sunt valorile proprii 1 , 2 ,..., n ai matricei (VVT ) . Vectorii bazei transformrii KL nu sunt fici, ei sunt dependeni de date, fiind calculai pe baza pixelilor imaginii originale. Din acest motiv, ei trebuie s inclui n secvena de date compresate, fapt ce scade eficiena acestei transformate.

Exemplul 10.7. Se urmrete obinerea transformatei Karhunen Loeve de ordinul 2 pentru o secven de intrare arbitrar. Matricea de autocorelaie a unui proces sionar este
R ( 0 ) Rxx (1) R = xx Rxx (1) Rxx (0)

(10.12)

unde Rxx ( n ) , n=0,1 sunt valorile funciei de autocorelaie. Rezolvnd ecuaia | I R |= 0 , se obin cele dou valori proprii

1 = Rxx (0) + Rxx (1), 2 = Rxx (0) Rxx (1) . Vectorii proprii corespunztori sunt
V1 = V2 = (10.13) unde , sunt constante arbitrare. Dac se impune condiia de ortonormalitate, care presupune ca amplitudinea vectorului s fie unu, se obine 1 = = 2 i matricea K este:

K=

1 1 1 2 1 1
25

(10.14)

Se observ c aceast matrice nu depinde de valoarile lui R xx (0) i

R xx (1) . Acest lucru este adevrat doar pentru transformat de dimensiune


22. Matricile transformate de ordin mai mare sunt funcie de valorile funciei de autocorelaie i, implicit, de date.

10.4.4. Transformarea Walsh-Hadamard (WHT)


Aceast transformare are eficien de compresie sczut, nefiind folosit mult n practic. Cu toate acestea, este rapid, deoarece poate fi calculat doar prin adunri, scderi, i uneori, cte o deplasare la dreapta (pentru a mpri eficient printr-o putere a lui 2). Dat fiind un bloc de NN de pixeli Pxy (unde N trebuie s fie o putere a lui 2, N = 2n), WHT bi-dimensional corespunztoare i inversa sa sunt definite prin ecuaiile 10.15 i, respectiv 10.16:

H (u, v) = Pxy g ( x, y, u, v) =
x =0 y =0

N 1 N 1

1 = N

[ b ( x ) p ( x ) + b ( y ) p ( y )] Pxy (1) i=0 i i i i


n1

N 1 N 1 x =0 y =0

(10.15)

Pxy = H (u , v)h( x, y, u, v) =
u =0 v =0

N 1 N 1

1 = N

[ b ( x ) p ( x ) + b ( y ) p ( y )] H (u, v)(1) i=0 i i i i


n 1

N 1 N 1 u =0 v =0

(10.16)

unde H(u,v) sunt rezultatele transformrii (adic, coeficienii WHT), cantitatea bi(u) este bitul i al reprezentrii binare a numrului ntreg u, iar pi(u) este definit n funcie de bj(u) prin ecuaia 10.17.

26

p 0 (u ) = bn 1 (u ), p1 (u ) = bn 1 (u ) + bn 2 (u ), p 2 (u ) = bn 2 (u ) + bn 3 (u ),
(10.17) De exemplu, se consider u=6=1102. Biii zero, unu, i doi ai lui 6 sunt, respectiv, 0,1 i 1, deci b0(6)=0, b1(6)=1, i b2(6)=1. Mrimile g(x, y, u, v) i h(x, y, u, v) sunt numite nuclee (kernels) (sau imagini de baz) ale WHT. Aceste matrice sunt identice. Elementele lor sunt doar +1 i -1, i sunt multiplicate prin factorul 1/N. Ca urmare, transformarea WHT const n multiplicarea fiecrui pixel din imagine cu +1 sau -1, adunare, i mprirea sumei prin N. Deoarece N=2n, mprirea prin 2n poate fi fcut prin deplasarea cu n poziii spre dreapta. Nucleele WHT sunt prezentate, n form grafic, pentru N=4, n figura 10.5, unde albul reprezint +1 i negrul -1 (factorul 1/N este ignorat). ................. p n 1 (u ) = b1 (u ) + b0 (u ).

Fig. 10.5. Nucleul ordonat al WHT pentru N = 4.


27

Rndurile i coloanele de blocuri din aceast figur corespund unor valori ale lui u i respectiv, v, de la 0 la 3. Numrul de schimbri de semn pe parcursul unui rnd sau al unei coloane a unei matrice se numete secvenierea rndului sau coloanei. Matricele corespunztoare transformatei DWHT pot fi obinute recursiv i ca rearanjri ale matricelor discrete Hadamard care sunt de o importan particular n teoria codrii [ref]. O matrice Hadamard de dimensiune N are proprietatea c HH T =NI unde I este matricea unitate. Matricele Hadamard ale cror dimensiuni sunt puteri ale lui doi pot fi construite astfel:
H H 2N = N H N HN HN

(10.18)

cu H 1 = [1] . Astfel se obin


H H2 = 1 H1

H 1 1 1 = H 1 1 1

(10.19)

H H4 = 2 H 2 1 1 1 H 4 1 = H 4 1 1 1 1

H H8 = 4 H 4

1 1 1 1 H 2 1 1 1 1 = H 2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
28

(10.20)

1 1 1 1 1 1 1 1

(10.21)

Matricea H a transformrii DWHT poate fi obinut din matricea Hadamard prin multiplicarea acesteia cu un factor de normalizare, astfel nct HH T =I , i prin reordonarea liniilor n ordine descresctoare a 1 . frecvenei. Normalizarea implic multiplicarea matricei cu N Reordonnd H 8 , se obine 1 1 1 1 1 H= 8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

(10.22)

Deoarece matricea fr factorii de scalare const din 1, operaia de transformare const doar n adunare i scdere. Din acest motiv transformata este util n situaii n care minimizarea ctigului de calcul este foarte important.

10.4.5. Transformarea Haar


Transformarea Haar [ref] este bazat pe funcia Haar hk(x), care este definit pentru x [0,1] i pentru k=0, 1, ..., N-1, unde N=2n. Orice ntreg k poate fi exprimat sub form de sum astfel k=2p+q-1, unde 0 p n-1, q=0 sau 1 pentru p=0, i 1 q 2p pentru p 0. De exemplu, pentru N=4=22, se obine 0=20+0-1, 1=20+1-1, 2=21+1-1, i 3=21+2-1.
29

Funcia de baz a transformatei Haar este definit astfel: 1 h0 ( x) = h00 ( x) = , pentru 0 x 1 N i

(10.23)

(q 1) / 2 p / 2 q 1 2 , 2 p x < 2p def 1 p / 2 (q 1) / 2 q hk ( x) = hpq ( x) = x< p (10.24) 2 , p 2 2 N 0, n rest Matricea transformatei Haar, AN de ordinul NN poate fi construit astfel: un element oarecare al matricei (i,j) este funcia de baz hi(j), unde i=0, 1,.., N-1 i j=0/N, 1/N, ...., (N-1)/N (i=1 implic p=0 i q=1). De exemplu: h (0 / 2) h0 (1/ 2) 1 1 1 A2 = 0 = 2 1 1 h1 (0 / 2) h1 (1/ 2)

(10.25)

10.4.6. Transformata Discret Cosinus (DCT)


Transformrile cosinus i sinus discrete, (DCT, DST) aparin familiei transformrilor trigonometrice cu aplicaii n compresia/decompresia datelor. Dintre acestea, DCT este de departe mai folosit n practic, datorit proprietii de compactare a energiei.

DCT unidimensional n practic se folosete DCT bi-dimensional, dar pentru uurina nelegerii se consider mai nti DCT uni-dimensional. Se consider formele de und w(f)=cos(f), pentru 0 , cu frecvenele f=0, 1, ...,7, i
30

, , , , , , , 16 16 16 16 16 16 16 16

3 5 7 9 11 13 15

(10.26)

Fiecare form de und w(f) este eantionat n opt puncte, pentru a forma un vector al bazei vf. Cei opt vectori rezultai vf , f=0, 1,...,7 (un total de 64 de numere) sunt prezentai n Tabelul 10.1. Acetia reprezint baza pentru DCT uni-dimensional. Se observ similaritatea dintre acest tabel i matricea W din ecuaia (10.5). Tabelul 10.1 0,196 0,589
1 0,981 0,924 0,831 0,707 0,556 0,383 0,195 1 0,831 0,383 -0,195 -0,707 -0,981 -0,924 -0,556

cos 0 cos 1 cos 2 cos 3 cos 4 cos 5 cos 6 cos 7

0,982
1 0,556 -0,383 -0,981 -0,707 0,195 0,924 0,831

1,374
1 0,195 -0,924 -0,556 0,707 0,831 0,383 0,981

1,767
1 -0,195 -0,924 0,556 0,707 -0,831 -0,383 0,981

2,160
1 -0,556 -0,383 0,981 -0,707 -0,195 0,924 -0,831

2,553
1 -0,831 0,383 0,195 -0,707 0,981 -0,924 0,556

2,945
1 -0,981 0,924 -0,831 0,707 -0,556 0,383 -0,195

Aceti opt vectori vi sunt ortonormali (datorit alegerii particulare a celor opt puncte de eantionare) i pot fi organizai ntr-o matrice de transformare 88. Pentru c aceast matrice este ortonormal, ea este o matrice de rotaie, deci, DCT uni-dimensional poate fi interpret ca o rotaie n opt dimensiuni. O alt interpretare a DCT uni-dimensional este aceea c se pot considera cei opt vectori ortonormali vi ca baz a unui spaiu vectorial, i orice alt vector p poate fi exprimat n acest spaiu ca o combinaie liniar a acestor vi. De exemplu, se aleg ca date de test 8 numere corelate, p=(0,6; 0,5; 0,4; 0,5; 0,6; 0,5; 0,4; 0,55). Se exprimm vectorul p ca o combinaie
31

liniar a celor opt vectori ai bazei, p = wi v i . Rezolvnd acest sistem de opt ecuaii se obin cele opt ponderi: w0 = 0,506, w1 = 0, 0143, w2 = 0, 0115, w3 = 0, 0439,
w4 = 0, 0795, w5 = 0, 0432, w6 = 0, 00478, w7 = 0, 0077

Ponderea w0 nu este cu mult diferit de elementele vectorului p, dar celelalte apte ponderi sunt mult mai mici. Acest fapt indic modul n care DCT (sau orice alt transformare ortogonal) produce compresie. Cele 8 ponderi vor reprezenta pur i simplu elementele compresate ale vectorului p. Cuantiznd cele opt ponderi, se poate crete considerabil compresia, n timp ce se pierde doar o cantitate mic de date.

Fig. 10.6. Reprezentarea grafic a DCT uni-dimensional

Figura 10.6 ilustreaz grafic aceast combinaie liniar. Fiecare din cei opt vectori vi este prezentat ca un rnd de opt dreptunghiuri mici, gri, unde o valoare de +1 este colorat n alb, i -1 n negru. Fiecare din cele opt elemente ale vectorului p este exprimat ca suma ponderat a unei scri de gri cu opt nivele.
32

Cel mai simplu mod de a calcula DCT uni-dimensional, n practic, este cu relaia 7 1 (2t + 1) f G f = C f pt cos (10.27) 2 t =0 16 unde
1 , f = 0, pentru f = 0,1,..., 7 . Cf = 2 (10.28) 1, f > 0, Se ncepe cu un set de opt valori de date pt (pixeli, eantioane de sunet, sau alte date) i se obine un set de opt coeficieni DCT, G f . Decodorul primete coeficienii DCT n seturi de opt, i aplic transformarea invers DCT (IDCT) pentru a reconstrui valorile de date originale (tot n grupuri de cte opt). IDCT se calculeaz cu relaia 1 7 (2t + 1) j pt = C j G j cos , pentru t=0, 1,...., 7 (10.29) 2 j =0 16 Exemplul 10. 7. Urmtorul experiment ilustreaz eficiena DCT. Se ncepe cu setul de opt date p=(12, 10, 8, 10, 12, 10, 8, 11), se aplic acestora DCT unidimensional i se obin cei opt coeficieni: 28,6375; 0,571202; 0,46194; 1,757; 3,18198; -1,72956; 0,191342; -0,308709. Acetia pot fi folosii pentru a reconstrui cu precizie datele originale (cu excepia unor mici erori cauzate de precizia limitat a mainilor). Scopul este, ns, de a compresa datele i mai mult, astfel nct se recurge la cuantizarea coeficienilor obinui. Mai nti acetia se cuantizeaz la 28,6; 0,6; 0,5; 1,8; 3,2; -1,8; 0,2; -0,3; i apoi se aplic IDCT, obinndu-se coeficienii 12,0254; 10,0233; 7,96054; 9,93097; 12,0164; 9,99321; 7,94354; 10,9989.
33

Se cuantizeaz apoi coeficienii i mai mult, la 28; 1; 1; 2; 3; -2; 0; 0, i se aplic IDCT, obinndu-se valorile 12,1883; 10,2315; 7,74931; 9,20863; 11,7876; 9,54549; 7,82865; 10,6557. n sfrit, se cuantizeaz coeficienii la 28; 0; 0; 2; 3; -2; 0; 0, i prin aplicarea IDCT se obine secvena 11,236; 9,62443; 7,66286; 9,57302; 12,3471; 10,0146; 8,05304; 10,6842; unde cea mai mare diferen dintre o valoare original (12) i o valoare reconstruit (11,236) este 0,764 (sau 6,4% din 12).
DCT bi-dimensional Din experien se tie c pixelii unei imagini sunt corelai pe dou dimensiuni, nu doar pe una (un pixel este corelat cu vecinii si de la stnga i de la dreapta, deasupra i dedesubt). De aceea metodele de compresie a imaginii folosesc DCT bi-dimensional, dat de relaia n 1 n 1 1 (2 y + 1) j (2 x + 1)i Gij = Ci C j pxy cos cos , (10.30) 2n 2n 2n x =0 y =0

pentru 0 i, j n-1. Imaginea este mprit n blocuri de nn pixeli pxy (de obicei se folosete n=8), i ecuaia (10.30) este folosit pentru a obine un bloc de 88 coeficieni DCT, Gij , pentru fiecare bloc de pixeli. Dac compresia este cu pierdere de informaie, coeficienii sunt cuantizai. Decodorul reconstruiete un bloc de valori de date (aproximate sau precise) prin calculul IDCT. 1 n 1 n 1 (2 y + 1) j (2 x + 1)i pxy = CiC j Gij cos 2n cos 2n (10.31) 2n i = 0 j = 0 unde
1 , f = 0, Cf = 2 pentru f = 0,1,..., 7 1, f > 0,
34

DCT bi-dimensional poate fi interpretat n dou moduri diferite, ca o rotaie (de fapt, dou rotaii separate), i ca baz a unui spaiu vectorial ndimensional. n prima interpretare se consider un bloc de nn pixeli. Mai nti se consider fiecare rnd al acestui bloc ca un punct ( px ,0 ; px ,1 ;...; px ,n 1 ) n spaiul n-dimensional, i se rotete punctul cu ajutorul transformrii date de suma din interior n 1 (2 y + 1) j G1x , j = C j pxy cos 2n y =0

(10.32)

a ecuaiei (10.30). Aceasta transformare are ca rezultat un bloc G1x,j de nn coeficieni, unde primul element al fiecrui rnd este dominant i restul elementelor sunt mici. Suma exterioar a ecuaiei (10.30) este n 1 1 (2 x + 1)i (10.33) Gij = Ci G1x , j cos 2n 2n x = 0 Aici, coloanele lui G1x,j sunt considerate puncte n spaiul n-dimensional, i sunt rotite. Rezultatul este un coeficient mare n colul stnga-sus al blocului i n2 - 1 coeficieni mici n rest. Aceast interpretare consider DCT bidimensional ca dou rotaii separate, fiecare n n dimensiuni. Este interesant de observat c dou rotaii n n dimensiuni sunt mai rapide dect una n n2 dimensiuni, deoarece n al doilea caz este necesar o matrice de rotaie de dimensiune n2n2. A dou interpretare (presupunnd n = 8) folosete ecuaia (10.30) pentru a crea 64 blocuri de 88 valori fiecare. Cele 64 de blocuri sunt apoi folosite ca baz a unui spaiu de vectori 64-dimensionali (sunt imagini de baz). Imaginile de baz folosite n DCT bi-dimensional sunt date n Fig.10.7. Orice bloc B de 88 pixeli poate fi exprimat ca o combinaie liniar a imaginilor de baz, i cele 64 de ponderi ale acestei combinaii liniare sunt coeficienii DCT ai blocului B.

35

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

Exemplul 10.8. n continuare, se prezint rezultatele aplicrii transformatei DCT bidimensionale la a dou blocuri de 88 valori. Primul bloc, cu valorile din Tabelul 10.2, are valori ntregi puternic corelate n intervalul [8,12] i cel de-al doilea, valori aleatoare n acelai interval. Primul bloc conduce la un coeficient DC mare, urmat de coeficieni AC mici (incluznd 20 de zerouri). Coeficienii celui de-al doilea bloc, prezentai n Tabelul 10.3, includ doar un zero.

36

Tabelul 10.2. DCT bi-dimensional a unui bloc de valori corelate 12 10 8 10 12 10 8 11 11 12 10 8 10 12 10 8 8 11 12 10 8 10 12 10 10 8 11 12 10 8 10 12 12 10 8 11 12 10 8 10 10 12 10 8 11 12 10 8 8 10 12 10 8 11 12 10 10 8 10 12 10 8 11 12 81 0 0 0 1,57 0,61 0 -0,61 0,71 0 1,90 -0,35 0 -0,38 0 0 -1,81 -0,07 0 -0,20 0 0 -0,32 -0,02 0 1,19 0,35 4,76 -0,77 -3,39 -0,25 -0,54 0 0 0,38 -1,81 0 0,07 0,77 -3,39 8,00 0,51 -0,51 1,57 0 -0,56 -0,07 0,25 0 0 0,20 -0,32 0 0,02 0,25 -0,54 0 0,07 0,56 0,25 -0,71 0,29 -0,29 -0,90

Tabelul 10.3. DCT bi-dimensional a unui bloc de valori aleatoare 8 10 9 11 11 11 8 12 8 11 9 11 9 10 12 9 12 10 8 8 12 8 9 9 12 8 11 10 12 9 10 10 12 10 12 12 9 11 11 9 9 9 12 10 11 10 9 9 8 9 8 9 10 8 11 12 12 10 10 10 12 8 8 12 79,12 0,98 0,64 -1,51 -0,62 -0,86 1,22 0,32 0,15 -1,64 -0,09 1,23 0,10 3,29 1,08 -2,97 -1,26 -0,29 -3,27 1,69 -0,51 1,13 1,52 1,33 -1,27 -0,25 -0,67 -0,15 1,63 -1,94 0,47 -1,30 -2,12 -0,67 -0,07 -0,79 0,13 -1,40 0,16 -0,15 -2,68 1,08 -1,99 -1,93 -1,77 -0,35 0 -0,80 1,20 2,10 -0,98 0,87 -1,55 -0,59 -0,98 2,76 -2,24 0,55 0,29 0,75 -2,40 -2,40 0,06 1,14

Compresia unei imagini cu DCT presupune parcurgerea urmtorilor pai: Se mparte imaginea n k blocuri Bi , i=1,2,,k, de nn (obinuit, 88) pixeli fiecare. Se aplic DCT bi-dimensional fiecrui bloc Bi. Aceasta transformare exprim blocul ca o combinaie liniar a celor 64 de imagini de baz din Fig. 10.7. Rezultatul este un bloc, numit vector

W (i ) de 64 de ponderi w(ji ) , unde j=0, 1, ...,.63.


37

Cei k vectori W (i ) (i=1, 2,...., k) sunt mprii n 64 de vectori de coeficieni C( j ) , unde cele k elemente ale vectorului C( j ) sunt
( w(1) , w(2) ,..., w(jk ) ) . Primul vector de coeficieni C(0) este format din j j

cei k coeficieni DC. Fiecare vector de coeficieni C( j ) este cuantizat separat pentru a produce un vector cuantizat Q ( j ) , care reprezint datele compresate. Decodorul citete cei 64 de vectori de coeficieni cuantizai Q ( j ) , i folosete pentru a construi k vectori de ponderi W (i ) , i aplic IDCT fiecrui vector de ponderi, pentru a reconstrui cei 64 de pixeli ai blocului Bi.

10.4.7. Transformarea Discret Sinus


Transformarea discret sinus, DST, este complementara DCT. DCT asigur performane apropiate transformatei K-L optime, n ceea ce privete compactarea, cnd corelaia coeficienilor este mare, iar DST asigur performane apropiate transformatei K-L optime, cnd este mic. Datorit acestei proprieti, este adesea folosit ca transformat complementar a DCT n codarea de imagini i audio. Elementele matricei transformate pentru o DST de dimensiune nn sunt date de

( i + 1)( j + 1) 2 sin ; i, j = 0,1,..., n 1 (10.34) 2n n Pentru a justifica folosirea mult mai frecvent a DCT n defavoarea DST, n continuare se prezint diferenele dintre funciile sinus i cosinus i de ce aceste diferene duc la o transformare sinus discret ineficient. Funcia sinus este o funcie impar, iar funcia cosinus, par. Dei singura diferen dintre cele dou funcii este faza (adic funcia cosinus este o versiune defazat a sinusului), aceast diferen este suficient pentru

[ S ]i, j =

38

a le inversa paritatea. Pentru a nelege diferena dintre DCT i DST se examineaz cazul uni-dimensional. DCT uni-dimensional, dat de ecuaia (10.27), folosete funcia cos((2t+1)f/16) pentru f=0, 1.... 7. Pentru primul termen, unde f=0, aceast funcie devine cos(0), care este 1. Acest termen este coeficientul DC, care produce media celor opt valori de date supuse transformrii. DST este bazat n mod similar pe funcia sin((2t+1)f/16), avnd ca rezultat un prim termen nul (din moment ce sin(0)=0), care nu contribuie cu nimic la transformare, deci DST nu are un coeficient DC. Dezavantajul acestui lucru poate fi observat cnd se consider exemplul a opt valori de date identice ce trebuie transformate. Astfel de valori sunt, desigur, perfect corelate. Cnd sunt reprezentate grafic ele devin o linie orizontal. Aplicnd DCT acestor valori, se produce doar un coeficient DC; toi coeficienii AC fiind nuli. DCT compacteaz toat energia datelor ntr-un unic coeficient DC, a crui valoare este identic cu a datelor. IDCT poate reconstrui exact cele opt valori (cu excepia unor modificri minore date de precizia limitat de calcul). Aplicarea DST asupra acelorai opt valori, pe de alt parte, conduce la apte coeficieni AC a cror sum este o form de und care trece prin cele opt puncte corespunztoare datelor, dar oscileaz ntre aceste puncte. Acest comportament, are trei dezavantaje, n principal: 1. Energia datelor originale nu este compactat; 2. Cei apte coeficieni nu sunt decorelai (pe cnd datele sunt perfect corelate); 3. Cuantiznd cei apte coeficieni se poate ajunge la o puternic scdere a calitii reconstruciei realizate de DST invers. Exemplul 10.9. Se urm[re;te eficiena DST, cnd se aplic unor secvene corelate. Aplicnd DST unei secvene de opt valori identice, de 100, rezult urmtorii
39

opt coeficieni (0; 256,3; 0; 90; 0; 60,1; 0; 51). Folosind aceti coeficieni, IDST poate reconstrui valorile originale, dar este uor de observat c n acest caz coeficienii AC nu se comport ca cei ai DCT. Acetia nu devin din ce n ce mai mici i nu exist iruri de zerouri ntre ei. Aplicnd DST asupra urmtoarelor opt valori puternic corelate: 11; 22; 33; 44; 55; 66; 77; 88, rezult un set de coeficieni i mai puin convenabili (0; 126,9; -57,5; 44,5; -31,1; 29,8; -23,8; 25,2), neexistnd absolut deloc compactare de energie. Aceste argumente i exemple, mpreun cu faptul c DCT produce coeficieni puternic decorelai, justific folosirea DCT n defavoarea DST n compresia de date.

10.5. Compresia JPEG (Joint Photographers Experts Group)


Domeniul compresiei (codrii) de imagini este legat de minimizarea numrului de bii necesari pentru a reface o imagine, cu aplicaii n special n transmisia i stocarea imaginilor. Aplicaiile din domeniul transmisiilor de imagini se ntlnesc n televiziunea radiodifuzat, comunicaiile spaiale, radar i sonar, reele de telecomunicaii, transmisii fax, teleconferine etc. Compresia imaginilor este esenial din punct de vedere al memorrii (stocrii) imaginilor n aplicaii de imagistic medical, n tehnica video digital, pentru realizarea documentelor multimedia etc. Noile tehnologii de compresie a imaginilor ofer o soluie posibil pentru integrarea aplicaiilor de imagini i video digitale. Ratele de compresie au ajuns n prezent pn la 1:100, depinznd de calitatea imaginii refcute. Tehnica de compresie nu este suficient pentru a putea rezolva problemele care apar n aplicaiile multimedia. Pentru a putea realiza portabilitatea aplicaiilor de imagini i secvene video digitale pe mai multe sisteme, este necesar implementarea
40

unor standarde pentru compresia datelor multimedia. Aceste standarde stabilesc modalitile de stocare i transmisie a datelor compresate n vederea posibilitii utilizrii lor. Cel mai utilizat standard de compresie a imaginilor statice este standardul JPEG, creat de Joint Photographics Experts Group. Metoda de compresie este de tip "cu pierdere", fiind conceput astfel nct s se profite de limitrile n percepia video a ochiului uman. Acest standard permite setarea raportului calitate/compresie i lucreaz cu aceleai nivele de culoare, n numr de 24 (16,7 milioane de culori), indiferent de numrul total de culori din imagine. n momentul de fa este unul dintre cele mai frecvent ntlnite formate de fiiere grafice. Formatul JPEG este recomandat pentru afiarea de imagini redate cu o foarte mare varietate de culori sau pentru imagini de precizie fotografic. JPEG folosete o tehnic de compresie variabil, care are drept rezultat obinerea de fiiere foarte mici n comparaie cu alte formate. Standardul JPEG se bazeaz pe transformarea informaiei primare din domeniul timp n domeniul frecven. Este cunoscut faptul c imaginile sunt puternic corelate spaial, adic un pixel de imagine conine informaii i despre pixelii vecini. Corelaia spaial ce caracterizeaz imaginile reprezint redundan din punct de vedere informaional i se diminueaz prin transformri matematice care au rolul de a concentra energia imaginii n ct mai puine elemente. Transformrile matematice din domeniul timp n domeniul frecven nu reprezint n sine compresie de date. Abia operaiunile ce urmeaz, i anume, cuantizarea i codarea entropic reprezint compresie de date. Reducerea redundanei spaiale se face att pentru imaginea surs original, ct i pentru eroarea rezidual, aa cum se va vedea n cele ce urmeaz. La refacerea imaginilor, dup ce acestea au fost compresate JPEG, cantitatea de informaie este mai mic dect cea iniial, fr o afectare vizibil a calitii. Prin transformarea imaginii din domeniul timp, (pixeli), n domeniul frecven se rein doar componentele de joas frecven ale imaginii. Componentele de frecven nalt pot fi
41

reduse, fr o afectare deranjant a percepiei vizuale a imaginii. Evident c acest lucru este determinat de gradul de compresie acceptat. JPEG este o metod sofisticat de compresie cu pierdere pentru imagini color sau alb-negru (cu scar de gri). Un avantaj al JPEG este faptul c folosete muli parametri, permind astfel utilizatorului s regleze cantitatea de date pierdute i, de asemenea, rata de compresie. Momentan reprezint cel mai bun standard existent n materie de compresie a imaginilor statice. Standardul este implementat att n format software ct i hardware pentru a satisface necesitile de prelucrare n timp real a aplicaiilor multimedia. Creat iniial pentru compresia imaginilor statice, standardul a fost extins i pentru secvenele video. Standardul realizat pentru secvene video se numete M-JPEG (Motion JPEG). Practic n cazul secvenelor video digitale fiecare cadru este considerat ca o imagine fix i compresat cu standardul JPEG. Metoda nu este cea mai eficient din punctul de vedere al mrimii ratei de compresie, dar ofer o alternativ pentru compresia video digital. Adesea, ochiul uman nu distinge nici o degradare a imaginii chiar la o rat de compresie de 10:1 sau 20:1. Exist patru moduri principale de operare specificate de standardul JPEG : - modul de baz, n care fiecare component a imaginii este codat printr-o singur scanare stnga-dreapta, respectiv sus-jos; - codarea expandat DCT cu pierderi, n care se realizeaz o codare progresiv a spectrelor imaginii de intrare; - codarea fr pierderi, n care imaginea este codat astfel nct se garanteaz reproducerea exact la decodare; - codarea ierarhic, n care imaginea este codat la rezoluii multiple. n continuare, se va prezenta detaliat numai primul dintre acestea, celelalte numai principial.

42

10.5.1. Modul de baz (baseline)


Schema bloc a algoritmului de codare JPEG este dat n Fig. 10.8.

Fig. 10.8 Algoritmul de codare JPEG

Principiul compresiei prin metode de tip DCT


Compresia cu pierderi presupune cteva etape de prelucrare, i anume:

Transformarea din reprezentarea (R,G,B) n reprezentarea (Y,U,V) n procedurile de compresie a imaginii se prefer o reprezentare a culorii diferit de cea normal (R,G,B), i anume, reprezentarea (Y,U,V), obinut cu relaiile 10.1. Valorile componentelor Y, U i V sunt cuprinse ntre -128 i 127. Utilitatea acestei reprezentri echivalente se poate evidenia n Fig. 10.9, n care sunt prezentate descompunerile n forma (R,G,B) respectiv (Y,U,V) ale imaginii din Fig. 10.1a.
43

Componenta R

Componenta G

Componenta B

Componenta Y

Componenta U

Componenta V

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

Analiznd acest exemplu, se pot face cteva observaii importante i anume: - componenta Y corespunde unei imagini alb-negru; - componentele U i V conin mult mai puine detalii i prezint un contrast mult mai redus.
44

Datorit absenei detaliilor i contrastului sczut al componentelor U i V, acestora li se aplic o subeantionare cu factorul 2 pe ambele direcii, vertical i orizontal, inndu-se cont de faptul c percepia ochiului este mai mic la semnalele de crominan, fa de cele de luminan. Modul de realizare a subeantionrii const n nlocuirea blocurilor de 2x2 puncte cu un singur punct care are intensitatea egal cu media celor 4. n aceste condiii imaginea va fi descris de componentele U i V, din Fig. 10.10.

Componenta U' (subesantionat)

Componenta V' (subesantionat)

Fig. 10.10 Componentele subeantionate U i V

Prin aceste operaii se realizeaz o prim compresie, cu factorul 2:1. Astfel, reprezentarea (R,G,B) pentru imaginea din exemplu cu rezoluia de 320x240 puncte necesit 3 componente a cte 320x240=76800 elemente, adic un total de 230400 elemente (octei). Reprezentarea (Y,U',V') necesit 320x240=76800 elemente pentru Y i 160*120=19200 elemente pentru U' i V' adic un total de 115200 elemente (octei). Descompunerea n blocuri Procedura de compresie se aplic unor blocuri de imagine de 8x8 puncte. Dac nici una din dimensiunile imaginii nu este multiplu de 8, codorul copie ultima coloan sau linie pn cnd lungimea final este
45

multiplu de 8. Aceste linii sau coloane suplimentare sunt ndeprtate n timpul procesului de decodare. Cele trei componente Y, U' i V' sunt descompuse n blocuri de dimensiune 8x8. Datorit rezoluiei reduse, n urma subeantionrii, rezult c la 4 (2x2) blocuri ale componentei Y corespunde cte un singur bloc al componentelor U', respectiv V'. n cazul formatului JPEG cele trei componente ale blocurilor de imagine sunt prelucrate ntreesut. Pentru o numerotare a blocurilor, conform Fig. 10.11, ordinea prelucrrii acestora va fi Y1, Y2, Y3, Y4, U1, V1, Y5, Y6, Y7, Y8, U2, V2,....:

Figura 10.11. Ordinea prelucrrii blocurilor

Fiecare bloc este prelucrat utiliznd aceeai procedur.

aplicarea trasformatei cosinus discrete Valorile originale ale componentelor Y, U, V sunt cuprinse n domeniul [0, 2b-1], unde b reprezint numrul de bii/eantion. Aceste valori sunt deplasate n domeniul [-2b-1,2b-1-1], centrate fa de zero, pentru a putea realiza o precizie de calcul mai mare la aplicarea DCT (Discrete Cosine Transform Transformata Cosinus Discret). Pentru primul nivel de codare JPEG, b=8, astfel nct valorile originale cuprinse n intervalul [0, 255] sunt deplasate n intervalul [-128, 127]. Fiecare component este apoi divizat
46

n blocuri de 8x8 pixeli, aa cum se poate observa i n Fig.10.8. Fiecrui bloc astfel obinut i se aplic transformata cosinus discret bi-dimensional, folosind ecuaiile: 7 7 1 (2 y + 1) j (2 x + 1)i DCT: Gij = Ci C j pxy cos cos (10.35) 4 16 16 x =0 y =0 IDCT: pxy = unde 1 , dac i = j = 0 2 Ci = C j = 1, n rest Ci = C j = (10.37)
1 7 4 i =0

C C G
j =0 i j

ij

(2 y + 1) j cos 16

(2 x + 1)i cos 16

(10.36)

Pentru a ilustra cum lucreaz algoritmul, se va folosi un bloc de dimensiune 88 din componenta de luminan a imaginii Lena, aa cum este prezentat n Tabelul 10.4. Tabelul 10.4. un bloc de dimensiune 8 8 al imaginii Lena

124 121 126 124 127 143 150 156

125 121 124 124 127 142 148 159

122 120 123 125 128 143 152 158

120 119 122 125 129 142 152 155

122 119 121 126 130 140 152 158

119 120 121 125 128 139 152 158

117 120 120 124 127 139 150 157

118 118 120 124 125 139 151 156

Considernd blocul de 88 pixeli din Tabelul 10.4, se scade 128 din fiecare element i aplicnd DCT, se obin coeficienii DCT prezentai n Tabelul 10.5.
47

Tabelul 10.5. Matricea G a coeficienii DCT corespunztori blocului de date al imaginii Lena dup deplasare

39. 88 -102. 43 37. 77 -5. 67 -3. 37 5. 98 3. 97 -3. 43

6. 56 4. 56 1. 31 2. 24 -0. 74 -0. 13 5. 52 0. 51

-2. 24 2. 26 1. 77 -1. 32 -1. 75 -0. 45 2. 39 -1. 07

1. 22 1. 12 0. 25 -0. 81 0. 77 -0. 77 -0. 55 0. 87

-0. 37 0. 35 -1. 50 1. 41 -0. 62 1. 99 -0. 051 0. 96

-1. 08 -0. 63 -2. 21 0. 22 -2. 65 -0. 26 -0. 84 0. 09

0. 79 -1. 05 -0. 10 -0. 13 -1. 30 1. 46 -0. 52 0. 33

1. 13 -0. 48 0. 23 0. 17 0. 76 0. 00 -0. 13 0. 01

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

Fig. 10.12. Distribuia componentelor de frecven ntr-o matrice de coeficieni DCT


48

cuantizarea matricei transformate

Operaia de cuantizare este singura n care se pierde informaie. Algoritmul JPEG utilizeaz coeficieni de cuantizare pentru a cuantiza diferiii coeficieni de intrare. Mrimea pasului de cuantizare este organizat ntr-un tabel, numit tabel de cuantizare. Un exemplu de tabel de cuantizare din recomandrile JPEG este prezentat n Tabelul 10.6. Fiecare valoare cuantizat este reprezentat de o etichet. Prin cuantizare se ntelege mprirea element cu element a matricii G cu o matrice de cuantizare Q, cu reinerea doar a prii ntregi, rezultnd o matrice I. Tabelul 10.6. Coeficienii de cuantizare pentru luminanta (a) si pentru crominanta (b)
(a) 16 12 14 14 18 24 49 72 17 18 24 47 99 99 99 11 12 13 17 22 35 64 92 18 21 26 66 99 99 99 10 14 16 22 37 55 78 95 24 26 56 99 99 99 99 16 19 24 29 56 64 87 98 47 66 99 99 99 99 99 24 26 40 51 68 81 103 112 99 99 99 99 99 99 99
49

40 58 57 87 109 104 121 100 99 99 99 99 99 99 99

51 60 69 80 103 113 120 103 99 99 99 99 99 99 99

61 55 56 62 77 92 101 99 (b) 99 99 99 99 99 99 99

99

99

99

99

99

99

99

99

Eticheta corespunztoare valorii cuantizate a coeficienilor Gij ai transformatei este

G I i , j = ij + 0,5 t Qij
unde
t Qij este elementul (i,j) din tabelul de cuantizare i x

(10.36) este cel mai

mare ntreg mai mic dect x. Se consider coeficientul G00 din Tabelul
t 10.5, care este 39, 88. Din tabelul 10.6a, Q00 este 16, deci,

39,88 (10.37) I 00 = + 0,5 = 2,9925 = 2 16 Valoarea reconstruit este obinut din etichet, prin multiplicarea acesteia cu intrarea corespunztoare n tabelul de cuantizare. Deci, valoarea reconstruit a 00 va fi
t 6, 56 i Q01 este 11, deci

t I00 Q00

adic 2*16=32. Eroarea de cuantizare n

acest caz este 39, 88-32=7, 88. Similar, din Tabelele 10.5 i 10.6, G01 este 6,56 (10.38) + 0,5 = 1, 096 = 1 I 01 = 11 Valoarea reconstruit este 11 i eroarea de cuantizare este 11-6,56 = 4,44. Continund n acest mod, se obin eantioanele din Tabelul 10.7. Tabelul 10.7. Coeficientii cuantizai obinui folosind tabelul de cuantizare al coeficienilor

0
50

-9 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 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Se observ c, n urma cuantizrii, n matricea coeficienilor cuantizai, fenomenul de concentrare a valorilor mari n colul din stnga sus, i predominaa valorilor mici (chiar zero) n rest, este mult mai accentuat. Pierderea de informaie se datoreaz realizrii mpririi cu reinerea doar a parii ntregi a rezultatelor. n acest fel valorile pierd din precizie (cele mici transformndu-se n zero). Efectul acestei pierderi, ns, nu este sesizabil deoarece, dup cum se observ, pierderile cele mai mari sunt concentrate la nivelul coeficienilor de nalt frecven, care au pondere redus n imagine i care, corespunznd detaliilor fine, sunt mai puin observabile de ctre ochiul uman. Rolul operaiei de cuantizare este acela de a obine ct mai multe valori nule sau mici, acestea avnd avantajul unei codri eficiente realizat ulterior. Transformata cosinus discret ofer posibilitatea de a realiza aceast operaie astfel nct efectul pierderii de informaie s fie ct mai redus. Din Tabelul 10.7 care conine eantioanele cuantizate se poate observa c mrimea pasului crete pe msura ndeprtrii de coeficientul DC. Deoarece eroarea de cuantizare este o funcie cresctoare de mrimea pasului, coeficienii de nalt frecven vor fi afectai de o eroare de cuantizare mai mare dect cei de joas frecven. Decizia asupra mrimii
51

relative a pasului de cuantizare se bazeaz pe modul de percepere a erorilor de sistemul vizual uman. Diferii coeficieni ai transformrii au importan perceptual diferit. Erorile de cuantizare din coeficieni DC i AC de joas frecven sunt mai uor de detectat dect erorile de cuantizare pentru coeficienii AC de nalt frecven. De aceea se folosete un pas mai mare pentru coeficienii mai puin importani perceptual. Deoarece cuantizoarele au nivelul 0 ca nivel de reconstrucie, procesul de cuantizare funcioneaz, de asemenea, i ca operaie de codare de prag. Toi coeficienii cu amplitudinea mai mic dect jumtate din mrimea pasului vor fi zero. Deoarece mrimea pasului la sfritul scanarii n zig-zag este mare, probabilitatea gsirii unei secvene lungi de zero crete. Acest efect poate reprezenta o modalitate de modificare a ratei. Prin mrirea pasului, se poate reduce numrul de valori diferite de zero necesare pentru a fi transmise, ceea ce nseamn o reducere a numrului de bii necesari. codarea elementelor din matricea coeficienilor cuantizai Coeficienii cuantizai sunt scanai zig-zag, n scopul obinerii unei secvene unidimensionale, ce va fi aplicat codorului entropic. Aa cum s-a mai precizat, primul coeficient se numete coeficient de curent continuu, DC, i reprezint media intensitii blocului. Ceilali 63 de coeficieni se numesc coeficieni AC (coeficieni de curent alternativ). Scanarea n zig-zag se face n ideea ordonrii dup spectrul de frecven. Deoarece componentele de frecven nalt au valori aproximativ nule, n urma scanrii zig-zag rezult un ir de zerouri la sfritul secvenei, dnd posibilitatea realizrii unei codri eficiente RLC (Run Length Coding) i Huffman. n algoritmul de compresie JPEG sunt utilizate dou proceduri de codare diferite. Prima procedur este utilizat pentru codificarea elementului I00, care este coeficientul DC, a doua procedur utilizndu-se
52

pentru codificarea celorlali 63 de coeficieni AC. Coeficientul DC este codat diferenial fa de coeficientul DC din blocul anterior, folosind algoritmul DPCM (Differential Pulse Code Modulation). Coeficienii AC sunt codai RLC. Coeficienii DC i AC astfel codai vor fi codai apoi entropic utiliznd codarea Huffman.

Codarea coeficienilor DC Din Fig. 10.7 se observ c matricea de baz corespunztoare coeficienilor DC este o matrice constant, astfel nct coeficientul DC este media (sau un pultiplu al acesteia) pixelilor din blocul de dimensiune 88. Valoarea medie a pixelilor din orice bloc 88 nu va diferi substanial de valoarea medie din blocul 88 vecin; de aceea valorile coeficienilor DC vor fi relativ apropiate, motiv pentru care este eficient a coda diferena ntre acesta i valoarea coeficientului DC corespunztoare blocului de 8x8 puncte anterior din aceeai categorie (Y, U sau V), dect etichetele n sine. n funcie de numrul de bii folosii la codarea valorii pixelului, numrul de valori pe care le pot lua etichetele i, deci, diferenele dintre coeficieni, poate deveni destul de mare. Un cod Huffman pentru un alfabet aa mare ar fi greu de implementat. Recomandarea JPEG rezolv aceast problem prin partiionarea valorilor pe care le pot lua diferenele, n clase. Mrimea acestor clase crete n puteri ale lui doi. Astfel, clasa zero are un singur membru, clasa unu are doi membri, clasa doi are patru membri i aa mai departe. Numrul clasei este codat Huffman. Clasele i cuvintele de cod Huffman corespunztoare acestora sunt prezentate n Tabelul 10.8. Fiecare linie a Tabelul 10.8 conine numere mai mari i mai multe dect ale liniei precedentei, neconinnd numerele din linia precedent. Linia i conine ntregi din domeniul [-(2i-1),+ (2i-1)], din care lipsete intervalul din mijloc [-(2i-1-1),+ (2i-1-1)]. n codarea coeficienilor DC se transmite codul corespunztor clasei i (liniei din tabel) n care se ncadreaz numrul, urmat
53

de i bii care reprezint numrul coloanei din Tabelul 10.8 n care se afl numrul ce trebuie codat. Numrul coloanei, C, este reprezentarea pe i bii a valorii diferenei, n cazul valorilor pozitive sau de cei mai puin semnificativi i bii ai reprezentrii valorii diferenei minus 1, n complement fa de 2, dac aceasta este negativ. n cazul valorilor din Tabelul 10.7, considernd c blocul nu este primul, eticheta corespunztoare coeficientului DC este codat diferenial, adic se codeaz diferena dintre valoarea cuantizat a etichetei din acest bloc i valoarea cuantizat a esantionului din blocul anterior. Dac blocul de procesat este primul, se transmite n clar valoarea coeficientului DC. De exemplu, dac valoarea diferenei care trebuie codificat este 21 i aparine componentei Y, se transmite nti codul pentru clasa 5, care este 111110. Valoarea este pozitiv i se gsete n a 21-a coloan a liniei 5 (numrarea coloanelor ncepe cu 0), deci la acest cod trebuie adugat reprezentarea pe 5 bii a numrului 21 care este 10101, codul complet fiind 11111010101. Dac, ns, valoarea care trebuie codat este -21, clasa este aceeai, diferena fiind valoarea negativ a coeficientului. Aceast valoare se gsete n coloana a 10-a a clasei 5. Aadar, fie se transmite reprezentarea pe 5 bii a numrului coloanei, 10, care este 01010, fie se transmit ultimii 5 bii ai reprezentrii n complement fa de 2 a numrului (-21), din care se scade 1, adic (-22)2C= 101010, ai crui ultimi 5 bii sunt identici cu ai numrului 10. Codul complet va fi n acest caz 11111001010. n cazul coeficientului DC din Tabelul 10.7, dac se presupune c eticheta corespunztoare din blocul anterior a fost -1, atunci diferena va fi 3. Din Tabelul 10.9 se observ c aceast valoare aparine clasei 2. Deci, se va transmite codul Huffman pentru clasa 2, 110, urmat de o secven de doi bii, 11, pentru a indica numrul coloanei n care se afl numrul 3 sau valoarea din aceast clas care a fost codat, adic, se va transmite 11011.
54

Tabelul 10.9. Codarea diferenelor etichetelor DC


Clasa Codul Huffman corespunztor clasei 0 1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 3 . . . . . . . . . . . . . 7 15 31 63 127 255 511 1023 2047 4095 8191 16383 32768 10 110 1110 11110 111110 1111110 11111110 111111110 1111111110 11111111110 111111111110 1111111111110 11111111111110 111111111111110 111111111111111

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 -7 -15 -31 -63 -127 -255 -511 -1023 -2047 -4095 -8191 -16383 -32767 -3 . . . . . . . . . . . . . -1 -2 -4 -8 -16 -32 -64 -128 -256 -512 -1024 -2048 -4096 -8192 -16384

Numrul cuvintelor de cod Huffman este egal cu logaritmul n baza doi al numrului de valori posibile pe care le pot lua diferenele dintre etichete. Dac diferenele pot lua 4096 de valori posibile, lungimea codului Huffman este log 2 4096 =12, numr folosit de obicei n codare.

55

Codarea coeficienilor AC Ordinea n care este parcurs matricea n vederea codificrii coeficienilor de tip AC se alege n aa fel nct s se profite ct mai bine de distribuia valorilor coeficienilor. Se urmrete gruparea valorilor nule n iruri ct mai lungi, deoarece acest fapt permite o codare mai eficient (compresie maxim). Deoarece valorile diferite de zero sunt concentrate ntr-un col al matricei, o parcurgere de tipul linie cu linie nu este eficient. De aceea se prefer o parcurgere n zig-zag, ordinea de extragere a elementelor din matrice fiind prezentat n Fig. 10.12.

Figura 10.12. Parcurgerea n zig zag a matricei coeficienilor cuantizai

Pentru matricea coeficienilor din Tabelul 10.7 , coeficienii extrai n aceast ordine sunt: 1, -9, 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, 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. Se observ modul n care se grupeaz valorile nule ctre sfritul irului. De acest fapt se va ine cont n urmtoarea etap, n care se realizeaz codarea acestor elemente. Fiecare coeficient este un numr ntreg care poate varia, potrivit standardului JPEG, ntre -1023 i +1023 (valorile sunt obinute analiznd cazul cel mai defavorabil i modul n care lucreaz transformata cosinus discret).
56

n cazul codificrii "normale" fiecare din aceti coeficieni poate fi reprezentat pe 11 bii (1 bit de semn + 10 bii valoare). Acest mod de codificare duce practic la o reprezentare pe mai muli bii dect n cazul imaginii necomprimate (se folosesc 11 bii pentru un coeficient, n loc de 8 bii pentru un pixel). Din acest motiv, n cazul algoritmului de compresie JPEG se recurge la o alt modalitate de codificare. n acest caz se asociaz un cod combinaiei dintre numrul de valori nule (dac exist) care precede un element diferit de zero i valoarea acestuia din urm. Practic se codific perechi (Numr de zerouri, Z Valoare, x) n locul fiecrui coeficient n parte. n realitate, din considerente de reducere a numrului de combinaii posibile, numrul de zerouri se limiteaz la 16. n cazul n care exist mai mult de 16 elemente nule se emit coduri speciale (ZRL) care semnific 16 zerouri care nu sunt urmate de un element diferit de zero. De exemplu, 18 zerouri urmate de un element cu valoarea -21 se vor coda printr-un ZRL urmat de codul corespunztor perechii (2,-21). De asemenea, n cazul n care dintr-un anumit punct al irului pn la sfritul acestuia nu mai exist nici un element diferit de zero, se emite un alt cod special (EOB) n locul tuturor valorilor nule rmase. n concluzie, pentru fiecare numr x, precedat de Z zerouri, care formeaz perechea (Z,x), codorul trebuie - s gseasc numrul de zerouri consecutive Z, care l preced; - s determine linia i i coloana C din Tabelul 10.9 corespunztoare numrului; - s identifice din Tabelul 10.10, dup numrul Z i clasa i, codul Huffman corespunztor perechii; - la cuvntul de cod Huffman gsit se concateneaz reprezentarea pe i bii a coloanei C. Tabelul 10.10. Codarea HUFFMAN pentru coeficienii AC
57

Z/i 0/0(EOB) 0/1 0/2 0/3 0/4 0/5

Cuv. de cod 1010 00 01 100 1011 11010

Z/i

Cuv. de cod

Z/i F/0(ZRL) F/1 F/2 F/3 F/4 F/5

Cuv. de cod 11111111001 1111111111110101 1111111111110110 1111111111110111 1111111111111000 1111111111111001

1/1 1/2 1/3 1/4 1/5

1100 11011 1111001 111110110 11111110110

innd cont de aceste observaii, pentru coeficienii din Tabelul 10.7, rezult urmtorul set de coduri care trebuie generate: (0,1) (0,-9) (0,-3) (0,0,...0) = EOB De exemplu, se dorete codificarea simbolului (0,1) din irul de mai sus. Prima valoare, 1, aparine categoriei 1. Deoarece nu sunt zerouri care s precead aceast valoare, se transmite codul Huffman corespunztor lui 0/1, care, din Tabelul 10.10, este 00. Se concateneaz cu acest cod un singur bit de 1 pentru a indica faptul c valoarea transmis este 1. Cuvntul de cod pentru perechea (0,1) este deci 001. Analog, -9 este al aselea element din clasa 4. De aceea se transmite irul binar 1011, care este codul Huffman pentru 0/4, urmat de 0110, pentru a arta c -9 este cel de-al aselea element din clas. Urmtoarea valoare este 3, care aparine clasei 2, deci se transmite codul Huffman 01, corespunztor lui 0/2, urmat de 11. Toate esantioanele dup acest punct sunt zero, astfel nct se transmite codul Huffman EOB, care n acest caz este 1010.

58

Pentru exemplul considerat, datele sunt 11011 001 10110110 0111 1010, adic se folosete un numr de 24 de bii pentru reprezentarea blocului de dimensiune 8x8, adic o medie de 3/8 bii/pixel. Se precizeaz c tabele prezentate pentru cuantizarea i codarea coeficienilor DC i AC nu sunt singurele recomandate de standardul JPEG, acesta limitnd ns la 4, tabelele de coduri Huffman pentru codarea coeficienilor AC pentru luminan i crominan. Modul JPEG de baz folosete numai dou asemenea tabele. Lanul de decodare JPEG este parcurs n ordine invers codrii. Astfel, imaginea compresat JPEG este supus n primul pas unui decodor entropic. Dup decodarea entropic, se aplic decuantizarea, folosind aceiai coeficieni care au fost folosii i la cuantizare, prezentai n Tabelele 10.6 a,b. n urma decuantizrii se obin coeficienii transformatei cosinus discrete din Tabelul 10.11. Aceti coeficieni sunt trimii blocului de transformare cosinus discret invers, IDCT, care aplic transformarea dat de relaia 10.36. Acestora li se adun 128 i se obine blocul reconstruit prezentat n Tabelul 10.12. Calitatea acestei imagini depinde de numrul de coeficieni pstrai la codare. Dac se vor pstra toi coeficienii nenuli, atunci imaginea reconstruit va fi foarte asemntoare cu originalul. Tabelul 10.11. Valorile coeficienilor dup decuantizare

32 -108 42 0 0 0 0

11 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
59

0 0 0 0 0 0 0

0 0 0 0 0 0 0

0 0 0 0 0 0 0

Tabelul 10.12. Blocul reconstruit

123 121 121 124 130 141 152 159

122 121 121 124 130 141 152 159

122 121 120 123 129 140 151 158

121 120 119 122 129 140 151 157

120 119 119 122 128 139 150 157

120 118 118 121 128 138 149 156

119 118 117 120 128 138 149 155

119 118 117 120 127 137 148 155

Dei reducerea este substanial, de la 8 bii pe pixel la 3/8 bii pe pixel, reproducerea este remarcabil de apropiat de original. Dac se dorete o reproducere cu acuratee mai mare, se poate face acest lucru cu preul creterii ratei, micornd mrimea pasului de cuantizare din tabelul de cuantizare. Acest lucru va determina o cretere a numrului de bii transmii. Similar, se poate scdea rata, prin creterea pasului de cuantizare, cu preul creterii distorsiunilor.

10.5.2. Modul de codare cu pierderi expandat


Exist trei diferene principale ntre modul de baz i cel expandat, i anume: - Modul expandat poate folosi 8-12 bii; - Modul expandat poate folosi ca i codare entropic att codarea Huffman, ct i codarea aritmetic; - Modul expandat poate folosi att codarea progresiv ct i cea secvenial.
60

n multe dintre aplicaiile de compresie a imaginilor apare dezavantajul c, datorit rezoluiilor mari la care sunt reprezentate imaginile, timpul de codare, de transmisie i, respectiv, de decompresie este de ordinul minutelor. n astfel de aplicaii se poate aplica un algoritm de compresie progresiv, care iniial produce o imagine brut, dup care, prin scanri succesive, se mbuntete calitatea imaginii. Dac se presupune c valoarea unui pixel este apropiat de cea a vecinului su, se poate folosi valoarea pixelului nvecinat pentru a predicta valoarea pixelului de codat. Ideea este aceea de a ndeprta orice redundan care poate exista. Diferena dintre valoarea actual i cea prezis este codat i transmis. Aceast diferen se numete eroare de predicie sau reziduu. Receptorul folosete acelai pixel nvecinat pentru a face predicia pentru acel pixel i acelai algoritm de predicie ca i emitorul. Din moment ce se folosete acelai pixel i acelai algoritm pentru a face predicia, receptorul ar trebui s genereze aceeai valoare de predicie ca i emitorul. Aceast valoare, cnd este adugat la eroarea de predicie dat de emitor, ar trebui s conduc exact la pixelul original recuperat. Dac algoritmul folosit pentru predicie const n alegerea unei combinaii liniare a pixelilor nvecinai, atunci aceast abordare se numete predicie liniar. Pentru ca, att emitorul ct i receptorul s foloseasc acelai pixel pentru generarea prediciei, trebuie s se impun o ordine a pixelilor. n general, se presupune c pixelii unei imagini sunt generai linie cu linie, de la stnga la dreapta, i de sus n jos. Acest procedeu se numete ordine de scanare de tip rastru. De exemplu, se consider c " imaginea" din Fig. 10.13a este imaginea original. Dac se folosete vecinul stng al fiecrui pixel ca predicie a acelui pixel, eroarea de predicie poate fi reprezentat ca o imagine rezidual, dup cum se arat n Fig. 10.13b.

61

4 1 8 2 2 2 3 7

8 2 4 4 4 2 3 7 (a)

4 4 5 8 6 2 6 7

8 6 5 5 7 3 6 7

1 5 5 7 7 4 6 6

1 1 5 9 7 9 6 7

1 1 5 5 9 7 7 7

1 1 5 5 9 3 7 7

4 1 8 2 2 2 3 7

4 1 -4 2 2 0 0 0

-4 2 1 4 2 0 3 0

4 2 0 -3 1 1 0 0 (b)

-7 -1 0 2 0 1 0 -1

0 -4 0 2 0 5 0 1

0 0 0 -4 2 -2 1 0

0 0 0 0 0 -4 0 0

Fig. 10.13. (a) Imaginea original i (b) eroarea ei de predicie

Se observ numrul mare de zerouri din imaginea rezidual. ntr-o imagine n care exist cu precdere acest tip de redundan sau structur, adic pixeli vecini au valori apropiate una de alta, aceast abordare va duce la o imagine rezidual care const n principal din zerouri i numere mici. Imaginea rezidual poate fi codificat n general cu mult mai puini bii dect imaginea original. n acest exemplu se folosete vecinul din stnga pentru predicie. Dar se poate folosi, de asemenea, vecinul de sus sau o combinaie avantajoas a lor. Schemele de predicie pentru pixelul curent care se bazeaz pe vecini aflai pe direcii diferite sunt cunoscute sub denumirea de scheme de predicie bi-dimensionale. n ciuda simplitii lor, tehnicile de predicie liniar sunt eficiente, iar performanele lor sunt surprinztor de apropiate de performanele obinute cu ajutorul altor tehnici mai sofisticate. Modul de compresie progresiv JPEG, se obine prin realizarea unui set de subimagini i fiecare subimagine va fi codat cu un set specific de coeficieni DCT. n consecin, codorul DCT va trebui s aib un buffer n care datele (coeficienii DCT ai subimaginilor) s fie memorate nainte de codarea entropic. n Fig. 10. 14 este prezentat modul de formare a imaginilor codate progresiv JPEG.
62

Compresia progresiv JPEG poate fi obinut folosind trei tipuri de algoritmi: - un algoritm progresiv de selecie spectral; - un algoritm progresiv de aproximri succesive; - un algoritm progresiv combinat.

a)

b)
Fig. 10.14. Compresia progresiv JPEG

c)

Algoritmul progresiv de selecie spectral grupeaz coeficienii DCT n cteva benzi de frecven. De obicei, nti sunt transmii coeficienii de joas frecven, dup care urmeaz coeficienii de nalt frecven. n Fig. 10.15 este prezentat un exemplu n care coeficienii DCT sunt mprii n patru benzi de frecven. n banda 1 se gsesc numai coeficienii de curent continuu (DC), banda 2 cuprinde primii coeficieni AC, AC1, AC2, banda 3 conine coeficienii AC3, AC4, AC5, AC6, iar banda 4, coeficienii AC7,... , AC63.

63

Fig. 10.15. Algoritmul progresiv cu selecie spectral

Algoritmul progresiv cu aproximri succesive se bazeaz pe transmisia iniial, cu precizie sczut, a tuturor coeficienilor DCT, dup care se transmite restul informaiei pentru a se obine o imagine de calitate superioar. n Fig. 10.16 este prezentat un exemplu n care coeficienii DCT sunt mprii n trei benzi de aproximri succesive: banda 1, care cuprinde toi coeficienii DCT mprii la 4, banda 2, cuprinznd coeficienii mprii la 2 i banda 3 coninnd toi coeficienii DCT la precizia nominal.

Fig. 10.16. Algoritmul progresiv cu aproximri succesive

Algoritmul progresiv combinat este o combinaie a primilor doi algoritmi. n Fig. 10.17 este prezentat planul coeficienilor DCT ai unei imagini, dup aplicarea algoritmului combinat. S-au obinut 8 subsecvene de coeficieni DCT, care vor fi transmii n ordinea numerotrii, i anume, coeficienii DC1 apoi AC1 i aa mai departe.

64

Fig. 10.17. Algoritmul progresiv combinat

n Fig. 10.18 este prezentat imaginea decompresat progresiv JPEG pentru diferite momente de timp.

a) imagine la momentul t1

b) imagine la momentul t2>t1

c) imagine la momentul t3>t2 d) imagine original (t=t4) Fig. 10.18. Etapele de decompresie ale imaginii folosind algoritmul progresiv
65

10.5.3. Compresia secvenial JPEG fr pierderi Standardul JPEG permite i folosirea unui algoritm de compresie fr pierderi, respectiv un algoritm de compresie predictiv n locul transformrii DCT. n Fig. 10.19 este prezentat schema bloc a unui codor JPEG fr pierderi. Blocurile de cuantizare neuniform din schema standard de compresie JPEG sunt nlocuite n cazul de fa cu un bloc de codare predictiv.

Fig. 10.19. Schema generalizat o codorului JPEG fr pierderi

Blocul predictor lucreaz astfel: se calculeaz o predicie a eantionului X' pe baza eantioanelor precedente A, B i C, figurate ]n Fig. 10.20, dup care se calculeaz diferena dintre eantionul original X i cel prezis: DX=X-X'.

Fig. 10.20. Poziionarea eantioanelor pe baza crora se calculeaz predicia

Aceast diferen este codat entropic cu ajutorul unui codor Huffman. n Fig. 10.21 sunt prezentai paii parcuri n algoritmul de codare.
66

Fig. 10.21. Schema de codare cu pierderi JPEG n Tabelul 10.13 sunt date cteva formule folosite n predicie. Tabelul 10.13. Predictori folosii pentru compresia cu pierderi Index 0 1 2 3 4 5 6 7 formula de predicie fr predictor X=A X=B X=C X=A+B-C X=A+(B-C)/2 X=B+(A-C)/2 X=(A+B)/2

10.5.4. Compresia JPEG ierarhic Compresia ierarhic JPEG permite o reprezentare progresiv a imaginii decodate, ntr-un mod similar cu algoritmul progresiv, dar, n plus fa de acesta, permite imagini codate cu rezoluii multiple. Se creeaz astfel, un set de imagini compresate, ncepnd cu imagini de rezoluie mic
67

i continund cu imagini a cror rezoluie crete ctre rezoluia imaginii originale. Acest proces se numete subeantionare sau codare piramidal. n Fig. 10.22 este figurat un astfel de algoritm.

Fig. 10.22. Codare ierarhic JPEG Dup procesul de subeantionare, fiecare imagine de joas rezoluie se scaleaz la imaginea cu rezoluie imediat superioar prin metoda invers, numit supraeantionare, fiind folosit ca predictor pentru urmtoarea etap. Algoritmul de compresie ierarhic const din urmtorii pai: - filtrarea i subeantionarea imaginii originale cu factorul dorit (multiplu al lui 2), de-a lungul fiecrei dimensiuni (vertical, orizontal); - codarea imaginii de rezoluie mic folosind tehnicile de codare DCT secvenial, DCT progresiv sau codarea fr pierderi; - decodarea imaginii de rezoluie redus, interpolarea i supraeantionarea cu un factor de 2, pe direcia orizontal i/sau vertical, folosind un filtru de interpolare identic cu cel de la decodor;
68

folosirea imaginii supraeantionate ca predictor al imaginii originale, i codarea diferenelor dintre cele dou imagini, folosind una din tehnicile amintite; - se repet algoritmul pn cnd se codeaz imaginea la rezoluia iniial. Codarea ierarhic necesit o zon de memorie destul de mare pentru a putea implementa algoritmul, dar avantajele sunt acelea c imaginea codat este imediat disponibil la diferite rezoluii.

69

S-ar putea să vă placă și