generalitati despre compresia imaginilor 3-5 pagini 2 Transformarea wavelet exemple de transformate si scris cate ceva la ele 7-10 pagini… [628994]

Cuprins
1 Introducere :
generalitati despre compresia imaginilor 3-5 pagini
2 Transformarea wavelet
exemple de transformate si scris cate ceva la ele 7-10 pagini
avantaje/dezavantaje a folosirii transformatei wavelet 2 -3 pagini
3 Detaliem 2 metode si le comparam intre ele pentru a arata care este mai buna si pe asta ne bazam si
restul lucrarii de licenta
4 rezultate cu imagini
5 concluzii

Ce este o imagine digitala ?
Imaginea digitala este o suprafata dreptunghiulara formata din puncte, aranjate in m randuri si n
coloane. Fiecarui punct al unei imagini digitale i se atribuie o anumita culoare. Expresia m
x n poarta denumirea de rezolutia imaginii, iar punctele sunt numite pixeli. Termenul de
“rezolutie” mai este folosit si pentru a indica numarul de pixeli pe unitatea de lungime a
imaginii. De exemplu, pentru o imagine care are o rezolutie de 1920 x 1080 pixeli,
inseamna ca pe suprafata acesteia s -a definit un caroiaj care o imparte pe orizontala in
1920 de sectiuni iar pe verticala in 1080.

O culoare se poate descompune in trei culori primare (rosu -R, verde -G si albastru -B), adica orice
imagine se poate obtine prin suprapunerea aditiva a trei radiatii luminoase avand aceste trei
culori primare cu intensitati diferite.Pentru a repre zenta numeric o culoare, este nevoie doar
sa se reprezinte intensitatile luminoase ale celor trei culori primare.

Inserare poza ca sa se evidentieze pixel.

Metod e si abordari ale compresiei imaginii

Existe mai multe metode folosite pentru a comprima o imagine.
1 Cuantizarea scalara este folosita pentru a compresa imagini, dar dezavantajul ei este reprezentata
de faptul ca performantele ei sunt mediocre. De exemplu, o imagine cu 8 biti/pixel poate fi
compresata prin cuantizare scalara eliminand cei mai n esimnificativi patru biti ai ficarui
pixel. Acest lucru duce la o rata de compresie de 0,5 fiind aproape neexistenta, dar in
acelasi timp si reducerea numarului de culori de la 256 la 16.
2 Cunatizarea vectoriala are un succes mult mai bun pentru a compre sa imagini
3 Metodele statice au o eficienta buna cand simbolurile care trebuie compresate au probabilitati
diferite. O secventa de intrare in care mesajele au aceeasi probabilitate nu se va compresa
eficient.

Transformarea wavelet
Wavelet -ul este un tip de functie folosit pentru a imparti un semnal sau o functie in componente
diferite de timp -frecventa. Acestea sunt studiate la o rezolutie specifica scalei wavelet -ului.
Transformata wavelet se ferera la reprezentarea unei functii cu ajutorul wavelet -urilor.
Wavelet -urile sunt copii scalate si translatate ale unei unde oscilante de lungime finita,
cunoscuta si sub denumirea de wavelet mama. Transformata wavelet, spre deosebire de
transformata Fourier, ofera posibilitatea de a reprezenta functii ce au d iscontinuitati sau
varfuri ascutite. Un alt avantaj ar fi faptul ca are capacitatea de a deconstrui si reconstrui
semnale neperiodice sau nesta tionare. Transformarile wavelet pot fi clasificate in
transformari wavelet continue (CWT) si transformari wavelet discrete (DWT).

*2 Definitii
Wavelet -ul este o funct ie 𝜓 ∈
2 (
) ce indeplineste urmatoarele proprietati:
• are media nula ∫ 𝜓(𝑡)𝑑𝑡=0+∞
−∞ ;
• este normat a||𝜓||=1;
• este centrată în vecină tatea: t = 0.

Functia Wavelet Daubechies
O familie de timp -frecvență este obținută prin scalarea lui 𝜓 cu s ¸si translatare ei cu u:
𝜓𝑢,𝑠(𝑡)=1
√𝑠𝜓(𝑡−𝑢
𝑠)
Aceste prelucrări păstrează norma:
𝜓𝑢,𝑠(𝑡)=1

Prelucrarea imaginilor cu a jutorul transformă rii wavelet
Tran sformata w avelet a funcț iei f ∈ L 2 (R) la momentul u ¸si scala s este:
𝑊 𝑓(𝑢,𝑠)=∫ 𝑓(𝑡)1
√𝑠𝜓∗(𝑡−𝑢
𝑠)𝑑𝑡 +∞
−∞

Filtrarea liniară
Transfo rmata wavelet poate fi rescrisă sub forma unui produs de convoluț ie:
𝑊 𝑓(𝑢,𝑠)=∫ 𝑓(𝑡)1
√𝑠𝜓∗(𝑡−𝑢
𝑠)𝑑𝑡 +∞
−∞
𝜓𝑠̅̅̅ (t)= 1
√𝑠𝜓∗(−𝑡
𝑠)
Transformata Fourier a lui 𝜓𝑠̅̅̅ (t) este:
𝜓𝑠̅̅̅ ̂(𝜔)=√𝑠𝜓∗̂(𝑠𝜔)
Din moment ce 𝜓̂(0)=∫ 𝜓(𝑡) 𝑑𝑡=0+∞
−∞ , se observ˘a c˘a 𝜓̂ reprezint˘a funcț ia de tra nsfer a unui
filtru trece bandă. Astfel convoluția calculează transformat a wavelet cu filtre trece bandă
dilatate.

2.1.1 Transformarea Wavelet Reală
Fie 𝜓 un wavelet real . Pentru c˘a media sa este nulă , integrala wavelet
𝑊 𝑓(𝑢,𝑠)=∫ 𝑓(𝑡)1
√𝑠𝜓∗(𝑡−𝑢
𝑠)𝑑𝑡 +∞
−∞măsoară variaț ia lui 𝑓 în vecină tatea lui 𝑢, a cărei mărime
este proporțională cu 𝑠.
Transformarea reală wavelet este completă ¸si conservă energia semnalului, atâta timp câ t
wavelet -ul satisface o con diție slabă de admisibilitate specif icată de teorema Calderon –
Grossmann -Morlet:
Teoremă : Fie 𝜓 ∈
2 (
) o funct¸ie reală astfel încâ t:
𝐶𝜓=∫|𝜓̂(𝜔)|
𝜔+∞
0𝑑𝜔<+∞
Atunci orice 𝑓 ∈
2 (
) satisface:
Prelucrarea imaginilor cu ajutorul transformă rii wavelet

𝑓(𝑡)=1
𝐶𝜓̂∫ ∫ 𝑊𝑓(𝑢,𝑠)1
√𝑠𝜓(𝑡−𝑢
𝑠)𝑑𝑢𝑑𝑠
𝑠2+∞
−∞+∞
0 ¸si
∫ |𝑓(𝑡)|2𝑑𝑡=+∞
−∞1
𝐶𝜓̂∫ ∫ |𝑊𝑓 (𝑢,𝑠)|2𝑑𝑢𝑑𝑠
𝑠2+∞
−∞+∞
0 ¸

Ipoteza teoremei se numește condiț ia de admisibilita te wavelet. Pentru a garanta c ă aceasta
integrală este finită trebuie să ne asigurăm că 𝜓̂ (0) = 0, ceea ce explică condiția impusă la
început ș i anume ca toate wavelet -urile să aibă media nulă. Condiț ia est e aproape
sufici entă. Dacă 𝜓̂ (0) = 0 ¸si 𝜓̂(𝑤) este continuă ¸si deriva bilă atunci condiț ia de
admisibilitate este satisfăcută .
Funcț ia de scalare.
Când 𝑊𝑓(𝑢,𝑠) este cunoscută doar pentru 𝑠<𝑠0, apare necesitatea unei informaț ii suplim entare,
pentru recuperarea lui 𝑓, corespunză toare lui 𝑊𝑓(𝑢,𝑠) pentru 𝑠>𝑠0. Aceasta informație este
obținută introducând o funcț ie de scalare 𝜑 reprezentâ nd o agregare a wavele t-urilor cu scala mai
mare decâ t 1.
Modulul transformatei Fourier a funcției de scalare 𝜑 este:
|𝜑̂(𝜔)|2=∫|𝜓̂(𝑠𝑤)|2𝑑𝑠
𝑠+∞
1
Faza complexă a lui 𝜑̂(𝜔) poate fi aleasă arbitrar. Se poa te verifica faptul că ||𝜑||=1¸si se poate
evidenția din condiț ia de admis ibilitatea faptul că :
lim
𝜔→0|𝜑(𝜔)|2=𝐶𝜓
Astfel funcția de scală poate fi interpretată ca ră spunsul la im puls a unui filtru trece -jos.
𝜑𝑠(𝑡)=1
√𝑠𝜑̅(𝑡
𝑠);𝜑𝑠̅̅̅(𝑡)=𝜑𝑠∗(−𝑡)

Deci aproximarea pentru frecvenț e joase a lui f la scala s este:
𝐿𝑓(𝑢,𝑠)=𝑓×𝜑𝑠̅̅̅(𝑢)
Prelucrarea im aginilor cu ajutorul transformă rii wavelet 10 2.1.2
Transformata Wavelet Discret˘a (DWT)
Fie 𝑓̇(𝑡) un semnal continuu uniform eșantionat î n intervale de 𝑁−1ın [0, 1]. Transformata wavelet
a acestui semnal p oate fi calculată doar pentru scale 𝑁−1<𝑠<1. Pentru procesarea discretizată
este mai ușor de normalizat eșantioanele la o distanță de 1 și astfel se consideră semnalul dilatat
𝑓(𝑡)=𝑓(𝑁−1𝑡). Dacă se efectuează schimbarea de variabilă î n cadru l transformatei wavelet se
obține:
𝑊𝑓(𝑢,𝑠)=𝑁−12⁄𝑊𝑓(𝑁𝑢,𝑁𝑠)
Se notează 𝑓[𝑛]=𝑓(𝑛) semnalul discret de mă rime N . Transformata wavelet discretă asociată
semnalului se calculează la 𝑠=𝑎𝑗,cu 𝑎=𝑎1𝑣⁄ ce ofera 𝑣 scale int ermediare pentru fiecare octavă
[2𝑗,2𝑗+1].
Fie ψ (t) un wavelet cu suport î n intervalul [−𝑁2⁄;𝑁2⁄]
Pentru 2≤𝑎𝑗≥𝑁𝐾−1, un wavelet discret scalat cu a j este definit astfel:
𝜑𝑗[𝑛]=1
√𝑎𝑗𝜑(𝑛
𝑎𝑗).
Acest wavelet discret are K aj valori nenule ˆın –𝑁2⁄,𝑁2⁄. Scala 𝑎𝑗 trebuie să fie mai mare decâ t
2, altfel int ervalul de eș antionare ar putea fi mai mare decâ t suportul wavelet -ului.
Scalare discretă
O transformare wavele t calculată până la scala 𝑎𝐽 nu este o reprezentare completă a semnalului.
Astfel este necesară adăugarea frecvenț elor 𝐿𝑓[𝑛,𝑎𝐽] joase corespunz ătoare scalelor mai mari de
𝑎𝐽 . Un filtru de scalare discret și periodic este obținut prin eș antio narea funcț iei de scalare 𝜑(𝑡)
definită anterior.
𝜑𝐽[𝑛]=1
√𝑎𝐽𝜑(𝑛
𝑎𝐽) 𝑝𝑒𝑛𝑡𝑟𝑢 𝑛∈ [−22⁄,𝑁2⁄]

Transforma ta Haar
Informatiile care sunt in forma transformatei wavelet in situatii practice, cum ar fi sunet si imagini
digitalizate, sunt discrete, formate din numere individuale. Acesta este motivul pentru care
transformata wavelet discreta si nu transformata wav elet continua este folosita in practica.
Transformata Haar este un tip de transformata wavelet discreta, aceasta foloseste o functie de scala
φ(t) si un wavelet 𝜓(𝑡) ambele ilustrate in figura 5.11a, pentru a reprezenta un numar mare
de functii 𝑓(𝑡) si are formula
𝑓(𝑡)=∑ 𝑐𝑘𝜑(𝑡−𝑘)∞
𝑘=−∞+∑ ∑𝑑𝑗,𝑘 𝜓(2𝑗𝑡−𝑘)∞
𝑗=0∞
𝑘=−∞
Unde 𝑐𝑘 si 𝑑𝑗,𝑘 sunt coeficientii care trebuie calculati.
Funcția de scal ă de bază φ (t) este impulsul unității
𝜑(𝑡)={1, 0≤𝑡<1
0, 𝑖𝑛 𝑟𝑒𝑠𝑡
Figura 5.11a
Functia 𝜑(𝑡−𝑘) este o copie a 𝜑(𝑡), shiftand 𝑘 unitati spre dreapta. Similar, 𝜑(2𝑡−𝑘) este o
copie a fun ctiei 𝜑(𝑡−𝑘) scalata la jumatate din latimea 𝜑(𝑡−𝑘). Copiile siftate sunt
folosite pentru a aproxima 𝑓(𝑡) la diferiti timpi 𝑡. Copiile scalate sunt folosite pentru a
aproxima 𝑓(𝑡) la rezolutii mai inalte. In figura 5.11b ne este prezentata funct ia 𝜑(2𝑗𝑡−𝑘)
pentru 𝑗=0,1,2 𝑠𝑖 3 si 𝑘=0,1,….,7
Wavelet -ul de baza Haar este functia:

𝜓(𝑡)={ 1, 0≤𝑡<0.5
−1, 0.5≤𝑡<1
Figura 5.11b
Din aceasta formula putem obserca va wavlet -ul general Haar 𝜓(2𝑗𝑡−𝑘) este o copie a 𝜓(𝑡)
shiftata 𝑘 unitati spre dreapta si o scala cu o latime de 1/2𝑗
In fugura 5.11c sunt prezentate cele patru valori ale wavelet -ului Haar 𝜓(2𝑗𝑡−𝑘) 𝑘=0,1,2, si 3.

Figura 5.11c
Ambele 𝜑(2𝑗𝑡−𝑘) si 𝜓(2𝑗𝑡−𝑘) sunt nonzer o in intervalul de latime 1/2𝑗. Acest interval este
suportul lor. Fiindca intervalul tinde sa fie scurt, putem spune ca aceste functii au un suport
compact.

Dezavantaje ale transformării wavelet
2.2.1 Oscilaț iile
Ținând cont de fap tul ca wavelet -urile sunt funcții cu filtre trece -bandă, coeficienț ii wavelet și în
special coeficienții funcț iei prelucrate cu ajutorul transformatei wavele t tind să oscileze pozitiv și
negativ în jurul singularităților. Aceasta reprezintă o problemă care complică considerabil
procesarea cu ajutorul wavelet -urilor, ceea ce face ca extracția singularităților și, î n particular,
modelarea semnalului să devină o provocare.
2.2.2 Invarianța translaț iilor

Trebuie precizat că o translație (oricât de mică ) a sem nalului poate perturba considerabil tiparul
de oscilație al coeficienților wavelet în jurul singularităț ilor. De asemenea, trebuie să se țină cont
de faptul că variația la translație complică ș i procesarea domeniului wavelet.
Astfel, algoritmii trebuie să fie proiectați pentru a putea face fată unei game largi de pos ibile tipare
pentru coeficienți i wavelet cauzate de sin gularităț ile translatate.
Pentru a întțelege mai bine oscil ațiile coeficienților wavelet ș i variațiile la translaț ie, se considera
un sem nal lin 𝑥(𝑡−𝑡𝑜)ca funcția treaptă.
𝑢(𝑡)={0 ,𝑡>0
1 ,𝑡<0
analiz at de baze wavelet ce au un numă r suficient de momente de anihilare.
2.2.3 Aliasing
Din distanțarea largă a eșantioanelor coeficienț ilor wavelet și din faptul că acești coeficien ți
wavelet sunt calculați prin operații recurente de subeșantionare discretă combinate cu filtr e trece
sus și trece jos neideale, rezultă un alias substanț ial.
DWT -ul invers anulează desigur alias -ul, dar numai în cazul în care coeficienții wavelet și de
scalare nu sunt schimbați. Orice coeficienț i wavelet (threshold, filtrare si cuantifi care) răstoarnă
balanț a dintre transformata directă ș i transformata inversă, acestea ducând la artefacte în
reconstruirea semnalului.
2.2.4 Lipsa orientă rii
În timp ce si nusoidele Fourier din dimensiunile mai mari corespund undelor înalte orientate,
produsul tensor standard pentru construirea wavelet -urilor produce un efect de checkboard care
este direcționat simultan în mai multe direcț ii. Aceast a proprietate de lipsa a s elecției orientării
complică modelarea ș i procesarea t răsăturilor imaginil or geometrice precum muchiile și graniț ele.

2.3.1 Transformata Discreta Cosinus (DCT)
Transformările cosinus și sinus discrete, (DCT, DST) aparțin familiei transformărilor
trigonometrice cu aplicații în compresia/decompresia datelor. Dintre acestea, DCT este de departe
mai folosită în practică, datorită proprietății de compactare a energiei.
• DCT unidimensională
În practică se folosește DCT bi -dimensională, dar pentru ușurinț a înțelegerii se consideră mai întâi
DCT uni -dimensională.
Se consideră formele de undă 𝑤(𝑓)=cos (𝑓𝜃), pentru 0<𝜃<𝜋, cu frecvențele
𝑓=0,1,…,7 , și 𝜃=𝜋
16,3𝜋
16,5𝜋
16,7𝜋
16,9𝜋
16,11𝜋
16,13𝜋
16,15𝜋
16
Fiecare formă de undă 𝑤(𝑓)este eșantionată în opt puncte, pentru a forma un vector al bazei 𝒗𝑓.
Cei opt vectori rezultați 𝒗𝑓,𝑓=0,1,…,7 (un total de 64 de numere) sunt prezent ați în Tabelul 1 .
Aceștia reprezintă baza pentru DCT uni -dimensională.
Se observă similaritatea dintre acest tabel și matricea ordogona lă W din ecuația (10.5).

Acești opt vectori 𝒗𝑖 sunt ortonormali (datorită alegerii particulare a celor opt puncte de
eșantionare) și pot fi organizați într -o matrice de tran sformare 8×8. Pentru că această matrice este
ortonormală, ea este o matrice de rotație, deci, DCT uni -dimensională poate fi interpretă ca o
rotație în opt dimensiuni.
O altă interpretare a DCT uni -dimensională este aceea că se pot considera cei opt vector i
ortonormali 𝒗𝑖 ca bază a unui spațiu vectorial, și orice alt vector p poate fi exprimat în acest spațiu
ca o combinație 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 ex primăm vectorul p ca o combinație liniară a celor opt vectori ai bazei, 𝒑=∑𝑤𝑖 𝒗𝑖.
Rezolvând acest sistem de opt ecuații se obțin cele opt ponderi:

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. Cuantizând
cele opt pond eri, se poate crește considerabil compresia, în timp ce se pierde doar o cantitate mică
de date.

Figura 10.6 ilustrează grafic această combinație liniară . Fiecare din cei opt vectori 𝒗𝑖 este prezentat
ca un rând de opt dreptunghiuri mici, gri, unde o valoare de +1 este colorată în alb, și -1 în negru.
Fiecare din ce le opt elemente ale vectorului p este exprimat ca suma ponderată a unei scări de gri
cu opt nivele.
DCT bi -dimensională
Din experiență se știe că pixelii unei imagini sunt corelați pe dou ă dimensiuni, nu doar pe una (un
pixel este corelat cu vecinii săi de la stânga și de la dreapta, deasupra și dedesubt). De aceea
metodele de compresie a imaginii folosesc DCT bi -dimensională, dată de relația

(10.30)

pentru 0 ≤ i, j ≤ n-1. Imaginea este împărțită în blocuri de n×n pixeli xy p (de obicei se folosește
n=8), și ecuația (10.30) este folosită pentru a obține un bloc de 8×8 coeficienți DCT, 𝐺𝑖𝑗, pentru
fiecare bloc de pixeli. Dacă compresia este cu pierdere de inform ație, coeficienții sunt cuantizați.
Decodorul reconstruiește un bloc de valori de date (aproximate sau precise) prin calculul IDCT.

(10.31)
unde
𝐶𝑓={1
√2, 𝑓=0,
1, 𝑓>0, 𝑝𝑒𝑛𝑡𝑟𝑢 𝑓=0,1,…,7

DCT bi -dimensională poate fi interpretată în două moduri diferite, ca o rotație (de fapt, două rotații
separate), și c a bază a unui spațiu vectorial 𝑛-dimensional. În prima interpre tare se consideră un
bloc de 𝑛×𝑛 pixeli. Mai întâi se consideră fiecare rând al acestui bloc ca un
punct (𝑝𝑥,0;𝑝𝑥,1;….;𝑝𝑥,𝑛−1) în spaț iul 𝑛-dimensional, și se rotește punctul cu ajutorul
transformării date de suma din interior
(10.32)

a ecuației (10.30). Aceasta tra nsformare are ca rezultat un bloc 𝐺1𝑥𝑗 de 𝑛×𝑛 coeficienți, unde
primul element al fiecărui rând este dominant și restul elementelor sunt mici. Suma exterioară a
ecuației (10.30) este

(10.33)
Aici, coloanele lui 𝐺1𝑥𝑗 sunt considerate punct e în spațiul n -dimensional, și sunt rotite. Rezultatul
este un coeficient mare în colțul stânga -sus al blocului și n 𝑛2−1 coeficienți mici în rest.

Această interpretare consideră DCT bidimensional ca două rotații separate, fiecare în
𝑛 dimensiuni.
Este interesant de observat că două rotații în 𝑛 dimensiuni sunt mai rapide decât una în 𝑛2
dimensiuni, deoarece în al doilea caz este necesară o matrice de rotație de dimensiune 𝑛2×𝑛2
A două interpretare (presupunând 𝑛 = 8) folosește ecuația (10.30) pentru a crea 64 blocuri de 8×8
valori fiecare. Cele 64 de blocuri sunt apoi folosite ca bază a unui spațiu de vectori 64 -dimensionali
(sunt imagini de bază). Imaginile de bază folosite în DCT bi -dimensională sunt date în Fig.10.7.
Orice bloc 𝐵 de 8×8 pixeli poate fi exprimat ca o combinație liniară a imaginilor de bază, și cele
64 de ponderi ale acestei combinații liniare sunt coeficienții DCT ai bloculu i 𝐵.

Fig 10.7. Imaginile de baza pentru transformata discreta cosinus bi -dimensionala
În co ntinuare, se prezintă rezultatele aplicării transformatei DCT bidimensionale la a două blocuri
de 8×8 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 acel ași interval. Primul bloc conduce la un
coeficient DC mare, urmat de coeficienți AC mici (incluzând 20 de zerouri). Coeficienții celui de –
al doilea bloc, prezentați în Tabelul 10.3, includ doar un zero.

Compresia unei imagini cu DCT presupune parcurg erea următorilor pași:
 Se împarte imaginea în k blocuri Bi , i=1,2,…,k, de 𝑛×𝑛 (obișnuit, 8×8) pixeli fiecare.
 Se aplică DCT bi -dimensională fiecărui bloc Bi. Aceasta transformare exprimă blocul ca
o combinație liniară a celor 64 de imagini de bază din Fig. 10.7. Rezultatul este un bloc,
numit vector W( )i de 64 de ponderi ( )i wj , unde j=0, 1, …,.63.
 Cei k vectori 𝑾(𝑖) (i=1, 2,…., k) sunt împărțiți în 64 de vectori de coeficienți 𝑪(𝑖), unde
cele k elemente ale vectorului 𝑪(𝑗) sunt(𝑤𝑗(1),𝑤𝑗(2),…,𝑤𝑗(𝑘)). Primul vector de coeficienți
𝑪(0) este format din cei k coeficienți DC.
 Fiecare vector de coeficienți 𝑪(𝑗) este cuantizat separat pentru a produce un vector
cuantizat 𝑸(𝑗) , care reprezintă datele comp resate. Decodorul citește cei 64 de vectori de

coeficienți cuantizați 𝑸(𝑗), îi folosește pentru a construi k vectori de ponderi 𝑾(𝑖) , și aplică
IDCT fiecărui vector de ponderi, pentru a reconstrui cei 64 de pixeli ai blocului 𝐵𝑖.

Transform area Discretă
Sinus Transformarea discretă sinus, DST, este complementara DCT. DCT asigură performanțe
apropiate transformatei K -L optime, în ceea ce privește compactarea, când corelația coeficienților
ρ este mare, iar DST asigură performanțe apropiate t ransformatei K -L optime, când ρ este mic.
Datorită acestei proprietăți, este adesea folosită ca transformată complementară a DCT în codarea
de imagini și audio. Elementele matricei transformate pentru o DST de dimensiune 𝑛×𝑛 sunt date
de
Pentru a justifi ca folosirea mult mai frecventă a DCT în defavoarea DST, în continuare se prezintă
diferențele dintre funcțiile sinus și cosinus și de ce aceste diferențe duc la o transformare sinus
discretă ineficientă. Funcția sinus este o funcție impară, iar funcția co sinus, pară. Deși singura
diferență dintre cele două funcții este faza (adică funcția cosinus este o versiune defazată a
sinusului), această diferență este suficientă pentru a le inversa paritatea.
Pentru a înțelege diferența dintre DCT și DST se examinea ză cazul uni -dimensional. DCT uni –
dimensională, dată de ecuația (10.27), folosește funcția cos((2t+1)fπ/16) pentru f=0, 1…. 7.
Pentru primul termen, unde f=0, această funcție devine cos(0), care este 1. Acest termen este
coeficientul DC, care produce me dia celor opt valori de date supuse transformării.
DST este bazată în mod similar pe funcția sin((2t+1)fπ/16), având 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 când se consideră exemplul a opt valori de date
identice ce trebuie transformate. Astfel de valori sunt, desigur, perfect corelate. Când sunt
reprezentate grafic ele devin o linie orizontală.
Aplicând DCT acesto r valori, se produce doar un coeficient DC; toți coeficienții AC fiind nuli.
DCT compactează toată energia datelor într -un unic coeficient DC, a cărui valoare este identică cu
a datelor. IDCT poate reconstrui exact cele opt valori (cu excepția unor modific ări minore date de

precizia limitată de calcul). Aplicarea DST asupra acelorași opt valori, pe de altă parte, conduce la
șapte coeficienți AC a căror sumă este o formă de undă care trece prin cele opt puncte
corespunzătoare datelor, dar oscilează între ace ste puncte. Acest comportament, are trei
dezavantaje, în principal:
1. Energia datelor originale nu este compactată;
2. Cei șapte coeficienți nu sunt decorelați (pe când datele sunt perfect corelate);
3. Cuantizând cei șapte coeficienți se poate ajunge la o puternică scădere a calității reconstrucției
realizate de DST inversă.

Compresia prin Global Thresholding si codare Huffman
X=imread(‘ nume imagine’)
image(X)
axis square
colormap(pink(255))
title( Ima: mask')
# Inseram imaginea care va urma sa fie comprimata, putem alege sa introducem manual calea
directa sau daca am importat calea, putem doar introduce numele imaginii. Numarul de linii si
numarul de coloane a imaginii trebuie sa fie o putere a lui 2.
meth = ‘numele metodei’ ;
option = 'c'; # numele compresiei folosite
[CR,BPP] = wcompress(option,X,' numele imaginii ',meth,'BPP',0.5)
# O masurare a rezultatului o reprezinta calitatea ratei de compresie (CR) si numarul de biti pe
pixel (Bit -Per-Pixel BPP).
Valoarea pro centuala CR ne indica faptul ca imaginea comprimata este stocata folosind CR% din
dimensiunea de stocare initiala, pe cand BPP reprezinta numarul de biti folositi pentru stocarea
unui pixel din imagine. Pentru o imagine alb -negru, valoarea initiala a BPP -ului este 8, pe cand

pentru o imagine color valoarea initiala a BPP -ului este de 24, deoarece 8 biti sunt folositi pentru
codarea fiecarei culori primare.
Scopul metodelor de compresie este de a gasi cel mai bun compromis intre o valoare cat mai mica
a ratei de compresie si un rezultat perceptiv bun.

meth = ‘numele metodei’ ;
wname = 'haar'; % numele Wavelet -ului
nbloop = 6; % numarul de bucle
[CR,BPP] = wcompress('c',X,'mask.wtc',meth,'maxloop', nbloop, …
'wname','haar ');
Xc = wcompress('u', nume imagine ');
colormap(pink(255))
subplot(1,2,1); image(X);
axis square;
title('Original Image')
subplot(1,2,2); image(Xc);
axis square;
title(‘Imagine comp rimata – 6 bucle )
xlabel({['Compression Ratio: ' num2str(CR,'%1.2f %%')] , …

['BPP: ' num2str(BPP,'%3.2f')]})
# Acum ilustrăm utilizarea metodelor progresive de compresie, începând cu algoritmul EZW
folosind wavelet -ul Haar. Parametrul cheie este numărul de bucle; creșterea duce la o mai bună
recuperare, dar un raport de compresie mai rău.
[CR,BPP] = wcompress('c',X,'mask',meth,'maxloop',9,'wname','haar');
#Imagine
Xc = wcompress('u','mask');
figure
colormap(pink(255))
subplot(1,2,1); image(Xc);
axis square;
title('Imagine comprimata – 9 bucle')
xlabel({['Compression Ratio: ' num2str(CR,'%1.2f %%')],…
['BPP: ' num2str(BPP,'%3.2f')]})
[CR,BPP] = wcompress('c',X,'mask',meth,'maxloop',12,'wname','haar');
Xc = wcompress('u','mask');
colormap(pink(255))
subplot(1,2,2); image(Xc);
axis square;
title('Imagine co mprimata – 12 bucle')
xlabel({['Compression Ratio: ' num2str(CR,'%1.2f %%')], …
['BPP: ' num2str(BPP,'%3.2f')]})

[CR,BPP] = wcompress('c',X,'mask','ezw','maxloop',11, …
'wname','haar');
Xc = wcompress('u','mask') ;
figure;
colormap(pink(255))
subplot(1,2,1); image(Xc);
axis square;
title('Imagine comprimata – 11 bucle')
xlabel({['Compression Ratio: ' num2str(CR,'%1.2f %%')], …
['BPP: ' num2str(BPP,'%3.2f')]})

[CR,BPP] = wcompress('c',X,'mask','ezw','ma xloop',12, …
'wname','haar');
Xc = wcompress('u','mask');
subplot(1,2,2); image(Xc);
axis square;
title('Imagine comprimata – 12 bucle')
xlabel({['Compression Ratio: ' num2str(CR,'%1.2f %%')], …
['BPP: ' num2str(BPP,'%3.2f' )]})

[CR,BPP] = wcompress('c',X,'mask','spiht','maxloop',12, …
'wname','bior4.4');
Xc = wcompress('u','mask');
figure;
colormap(pink(255))
subplot(1,2,1); image(X);
axis square;
title('Imagine originala')
subplot(1,2,2); image(Xc) ;
axis square;
title('Imagine comprimata SPIHT – 12 bucle')
xlabel({['Compression Ratio: ' num2str(CR,'%1.2f %%')], …
['BPP: ' num2str(BPP,'%3.2f')]})

[CR,BPP] = wcompress('c',X,'mask','ezw','maxloop',11, …
'wname','bior4.4');
Xc = wcompress('u','mask');
figure;
colormap(pink(255))
subplot(1,2,1); image(Xc);

axis square;
title('Imagine comprimata – 11 bucle bior4.4')
xlabel({['Compression Ratio: ' num2str(CR,'%1.2f %%')], …
['BPP: ' num2str(BPP,'%3.2 f')]})

[CR,BPP] = wcompress('c',X,'mask','ezw','maxloop',12, …
'wname','bior4.4');
Xc = wcompress('u','mask');
subplot(1,2,2); image(Xc);
axis square;
title('Imagine comprimata – 12 bucle bior4.4')
xlabel({['Compression Ratio: ' nu m2str(CR,'%1.2f %%')], …
['BPP: ' num2str(BPP,'%3.2f')]})

[CR,BPP] = wcompress('c',X,'mask','spiht','maxloop',11, …
'wname','bior4.4');
Xc = wcompress('u','mask');
figure;
colormap(pink(255))
subplot(1, 2,1); image(Xc);

axis square;
title('Imagine comprimata SPIHT – 11 bucle bior4.4')
xlabel({['Compression Ratio: ' num2str(CR,'%1.2f %%')], …
['BPP: ' num2str(BPP,'%3.2f')]})

[CR,BPP] = wcompress('c',X,'mask','spiht','maxloop',12, …
'wname','bior4.4');
Xc = wcompress('u','mask');
subplot(1,2,2); image(Xc);
axis square;
title('Imagine comprimata SPIHT – 12 bucle bior4.4')
xlabel({['Compression Ratio: ' num2str(CR,'%1.2f %%')], …
['BPP: ' num2str(BPP,'%3.2f')]})

Se poate observa o rata de compresie foarte buna, dar din pacate ca si rezultat avem o imagine
decomprimata foarte grosiera.

Se va mari numarul de bucle la 9, 11, respectiv 12, pentru a putea vedea daca putem obtine o
calitate mai buna a imag inii la o rata de compresie cat mai buna si un numar de BPP cat mai mic.

Dupa 12 bucle putem spune ca am obtinut reultate foarte bune cu ajutorul wavelet -lui haar.
Diferentele sunt in schimb destul de mari intre 11 bucle si 12 bucle.

In co ntinuare vom folosi wa velet -ul bior 4.4 la un numar de bucle de 11 ,respectiv 12 bucle, acesta
fiind mult mai eficient in compresia imaginilor.

Wavelet Metoda de
compresie Numar de
bucle Rata de
compresie
(%) Biti-per-
Pixel MSE
(%) PSNR
(db)
Haar EZW 6 bucle 0.23 0.02 1576 16.16
Haar EZW 9 bucle 1.96 0.16 190.6 25.33
Haar EZW 11 bucle 6.88 0.55 28.35 33.61
Haar EZW 12 bucle 11.56 0.92 10.87 37.77

Wavelet Metoda de
compresie Numar de
bucle Rata de
compresie
(%) Biti-per-
Pixel MSE
(%) PSNR
(db)
Bior4.4 EZW 11 4.43 0.35 23.51 34.42
Bior4.4 EZW 12 7.83 0.63 8.42 38.88

Se observa faptul ca nu doar rata de compresia a scazut cat si numarul de biti -per-pixel.
Folosind o metoda de compresie mult mai recenta ,SPIHT, valoarea BPP se poate imbunatati si
mai m ult.

Wavelet Metoda de
compresie Numar de
bucle Rata de
compresie
(%) Biti-per-
Pixel MSE
(%) PSNR
(db)
Bior4.4 SPIHT 11 1.57 0.12 79.8 29.11
Bior4.4 SPIHT 12 2.86 0.23 33.66 32.86

Similar Posts