Sunteți pe pagina 1din 26

Grafică digitală

Conf. dr. ing. Ana-Maria Suduc


Cursul 7
Compresia imaginilor

 Compresia datelor – procesul de reducere a volumului de date necesare


pentru reprezentarea unei anumite cantități de informație
 Compresia imaginilor reprezintă arta și știința de a reduce cantitatea de date
necesară pentru a reprezenta o imagine.
 Cea mai utilă și de succes tehnologie în domeniul prelucrării digitale a
imaginilor
 Procesele de compresie și decompresie sunt invizibile pentru utilizator
 Eliminarea datelor redundante sau irelevante
 Tehnicile de compresie sunt necesare pentru reducerea cerințelor de stocare
și a celor de lărgime de bandă (pentru transmiterea imaginilor)
Compresia imaginilor
Exemple:
1. Fie o imagine în tonuri de gri de dimensiune 512 x 512 pixeli. Dacă fiecare pixel e codat cu 8 biți
(imagine monocromă), atunci cantitatea necesară de date pentru reprezentarea imaginii va fi:
512 x 512 x 8 = 29 x 29 x 23 = 221 ≈ 2Mb Necesar de date mare
2. Fie un film SD (standard definition) ce va fi reprezentat sub formă de matrice de dimensiune 720 x 480 x
24 pixeli. Un film este o secvență de cadre video în care fiecare cadru este o imagine full-color. Deoarece
dispozitivul de redare trebuie să afișeze cadrele secvențial cu rate apropiate de 30fps (frame per second),
datele video digitale trebuie accesate la:
𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐 𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝 𝑏𝑏𝑏𝑏𝑏𝑏𝑏𝑏𝑏𝑏
30 × 720 × 480 ×3 = 31.104.000 𝑏𝑏𝑏𝑏𝑏𝑏𝑏𝑏𝑏𝑏/𝑠𝑠𝑠𝑠𝑠𝑠
𝑠𝑠𝑠𝑠𝑠𝑠 𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐𝑐 𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝𝑝
și pentru un film de 2 ore:
𝑏𝑏𝑏𝑏𝑏𝑏𝑏𝑏𝑏𝑏 2
𝑠𝑠𝑠𝑠𝑠𝑠
31.104.000 × 60 × 2𝑜𝑜𝑜𝑜𝑜𝑜 ≃ 2.24 × 1011 𝑏𝑏𝑏𝑏𝑏𝑏𝑏𝑏𝑏𝑏
𝑠𝑠𝑠𝑠𝑠𝑠 𝑜𝑜𝑜𝑜𝑜𝑜
sau 224 GB de date (cca 27 dvd-uri cu o capacitate de 8.5 GB ar fi necesare pentru a-l memora!!!).
- 1 DVD, fiecare frame trebuie comprimat, în medie cu un factor de 26,3
- La filme HD - 1920 x 1080 x 24 biți/imagine.
Compresia imaginilor

 Aceeași informație poate fi reprezentată sub formă de cantități diferite de date


 Reprezentările care conțin informații nerelevante sau repetate conțin date
redundante
 Dacă notăm cu b și b’ numărul de biți din două reprezentări a aceleași informații,
redundanța relativă a datelor R a reprezentării pe b biți este:
1
𝑅𝑅 = 1 −
𝐶𝐶
 unde C, adesea numit rată de compresie, este definit ca
𝑏𝑏
𝐶𝐶 =
𝑏𝑏′
 Dacă C=10 (uneori notat 10:1), reprezentarea mai mare are 10 biți de date pentru
fiecare bit de date din reprezentarea mai mică.
 Redundanța relativă a datelor a reprezentării mai mari este de 0,9 (R=0,9), indicând
că 90% dintre datele sale sunt redundante.
Compresia imaginilor

 Metodele de compresie pot fi clasificate in următoarele categorii:


 metode care elimină redundanța informațională a imaginii de bază
 metode care elimină irelevanța informațională bazându-se pe modelul percepției
vizuale a omului, deci a porțiunilor sau parametrilor imaginii care nu sunt
percepute de om
 Algoritmii de compresie folosesc una sau mai multe tehnici din categoriile de
mai sus
Compresia imaginilor

 Tipuri de compresie
 Compresie fără pierderi - când datele comprimate pot fi decomprimate și se
obține exact același semnal original. (codificarea entropiei, prin care se elimină
redundanța)
 Compresie cu pierderi - când datele decomprimate sunt doar o aproximație a
semnalului original (codificare prin reducere, prin care se elimină ce este neglijabil
sau cu relevanță scăzută).

 Compresie simetrică este atunci când compresia și decompresia necesită timp și


resurse egale (ex. sunt la fel de dificile sau solicită aceleași resurse).
 Compresie asimetrică este atunci când decompresia este considerabil mai puțin
solicitantă din punct de vedere al resurselor decât compresia.
Compresia imaginilor

 Metode de compresie cu pierdere de informație (compresie ireversibila)


 Imaginea reconstruită nu este identică cu imaginea originală
 Se pot obține rapoarte de compresie mari
 Raportul de compresie este cu atât mai mare cu cat gradul de distorsiune acceptat este
mai mare
 Metode de compresie fără pierdere de informație (compresie reversibilă)
 Cu păstrarea biților (bit-preserving)
 Aceste metode se pot folosi in cazul imaginilor din aplicațiile medicale, când nu este
permisă o degradare a informației biologice reprezentate de pixeli, întrucât altfel pot
afecta diagnosticul
 Rapoartele de compresie sunt foarte mici și nesemnificative
Compresia datelor

 Un sistem de compresie a imaginilor


 Encoder - compresia
 Decoder - decompresia
 Ambele operații pot fi realizate
 software ca în cazul navigatoarelor web și a aplicațiilor de editare a imaginilor.
 în combinație cu hardware și firmware precum în cazul DVD players.
 Codec e un dispozitiv sau program capabil să realizeze atât codare cât și
decodarea.
Compresia datelor - parametri

 Parametri în procesul de comprimare


 raportul de compresie - raportul dintre dimensiunea datelor necomprimate și
dimensiunea datelor comprimate
 calitatea datelor - Tehnicile cu pierderi ignoră anumite informații a căror lipsă nu-I
deranjează pe utilizator. Pe măsură ce o cantitate tot mai mare de informații este
eliminată în timpul comprimării, calitatea se diminuează.
 viteza de compresie/decompresie – cât mai mici
 Exemplu de compresie RLC (Run-Length Coding - Codificare prin parcurgere în
lungime): fie următoarea secvenţă necomprimată pe 32 de biţi:

10000000011100000000000011111110

1x1 0x8 1x3 0x12 1x7 0x1

6 biți 4x4=16 biți Total = 22 biți


(8, 3, 12 și 7 pot fi codate fiecare pe 4 biți)

Exemplul 2:
Șirul ce trebuie codat: 00000001111100011000000000101000111111111111
Șirul codat: 0 7 5 3 2 9 1 1 1 3 12
Categorii și metode de compresie a datelor

Codificarea entropiei Codificare prin parcurgere în lungime (RLC)

Huffman

Aritmetică

Codificarea la sursă Predicție

Transformări

Codificare pe niveluri

Codificarea hibridă JPEG

MPEG
Măsurarea informației unei imagini

 Premisa fundamentală - generarea de informație poate fi modelată ca un


proces probabilistic
 Un eveniment aleator E cu probabilitatea P(E) conține:
1
𝐼𝐼 𝐸𝐸 = 𝑙𝑙𝑙𝑙𝑙𝑙 = −𝑙𝑙𝑙𝑙𝑙𝑙𝑃𝑃(𝐸𝐸)
𝑃𝑃(𝐸𝐸)

unități de informație
 Dacă P(E)=1 (asta înseamnă că evenimentul are loc mereu), I(E)=0 și nicio
informație nu îi este atribuită. Deoarece nu există nicio incertitudine asociată
cu evenimentul, nicio informație nu va fi transmisă pentru a comunica
apariția evenimentului
Măsurarea informației unei imagini

 Baza logaritmului din ecuația anterioară determină unitatea folosită pentru


măsurarea informației.
 Dacă se selectează baza 2, unitatea de informație e bitul.
 Se observă că dacă P(E)=1/2, I(E)=-log2(1/2) sau 1 bit. Altfel spus, 1 bit e
cantitatea de informație transmisă atunci când are loc un eveniment din două
posibile, fiecare cu probabilitate egală de apariție. Un exemplu simplu îl
reprezintă aruncarea unei monede și comunicarea rezultatului.
 Având o sursă de evenimente aleatorii independente statistic, dintr-un set de
evenimente discrete posibile {a1, a2, a3, … , aJ}, cu probabilitățile asociate
{P(a1), P(a2), P(a3),…, P(aJ)}, informația medie a ieșirii sursei, numită entropia
sursei, este:
𝐽𝐽
Deoarece evenimentele sunt statistic
𝐻𝐻 = − � 𝑃𝑃 𝑎𝑎𝑗𝑗 𝑙𝑙𝑙𝑙𝑙𝑙𝑙𝑙(𝑎𝑎𝑗𝑗 )
independente, sursa se numește sursă cu
𝑗𝑗=1
aj se numesc simbolurile sursei memorie zero.
Măsurarea informației unei imagini

 Dacă o imagine este considerată ieșirea unei „surse de intensitate” imaginare


cu memorie zero, putem folosi histograma imaginii observate pentru a estima
probabilitățile simbolurilor sursei. Atunci entropia sursei de intensitate
devine:
𝐿𝐿−1
� = − � 𝑝𝑝𝑟𝑟 𝑟𝑟𝑘𝑘 𝑙𝑙𝑙𝑙𝑙𝑙2 𝑝𝑝𝑟𝑟 𝑟𝑟𝑘𝑘
𝐻𝐻
𝑘𝑘=0

 Deoarece baza logaritmului e 2 informația medie a ieșirii unei astfel de surse


de intensitate este exprimată în biți.
 Nu este posibilă codarea valorilor intensității unei surse imaginare (și astfel a
� biți/pixel.
imaginii eșantionate) cu mai puțin de 𝐻𝐻
Metoda Huffman

 Pași
 Se ordonează simbolurile în ordinea descrescătoare a probabilității
 Se grupează ultimele două simboluri și se adună probabilitatea lor formând un nou
simbol.
 Se reordonează noul set în ordinea descrescătoare a probabilității
 Se repetă pașii 2 și 3 până rămân două probabilități
 Se alocă bitul “0” uneia din probabilități și bitul “1” celeilalte
 Se merge în sens invers adăugând câte un bit la fiecare grup de 2 simboluri
 Se formează cuvintele de cod

𝐻𝐻
Exemplul 1 = −[0.4𝑙𝑙𝑙𝑙𝑙𝑙2 0.4 + 0.3𝑙𝑙𝑙𝑙𝑙𝑙2 0.3 + 0.1𝑙𝑙𝑙𝑙𝑙𝑙2 0.1 + 0.1𝑙𝑙𝑙𝑙𝑙𝑙2 0.1 + 0.06𝑙𝑙𝑙𝑙𝑙𝑙2 0.06
+ 0.04𝑙𝑙𝑙𝑙𝑙𝑙2 0.04] = 2.14 𝑏𝑏𝑏𝑏𝑏𝑏𝑖𝑖/𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠

Formarea cuvintelor de cod:

Lungimea medie (numărul mediu de coduri necesar pentru a reprezenta toate simbolurile din grup (generate de o sursă))
a acestui cod este: Lmed =(0.4)(1)+(0.3)(2)+(0.1)(3)+(0.1)(4)+(0.06)(5)+(0.04)(5) = 2.2 biți/pixel
Exemplul 2

Sursa Reducerea sursei


S Prob. Cod 1 2 3 4 5 6
a5 0,51 0 0,51 0 0,51 0 0,51 0 0,51 0 0,51 0 0,51 0
a4 0,20 10 0,20 10 0,20 10 0,20 10 0,20 10 0,29 10 0,49 1
a3 0,14 100 0,14 100 0,14 100 0,14 100 0,15 100 0,20 11
a6 0,08 1000 0,08 1000 0,08 1000 0,08 1000 0,14 101
a7 0,04 10010 0,04 10010 0,04 10010 0,07 1001
a2 0,02 100110 0,02 100110 0,03 10011
a8 0,005 1001110 0,01 100111
a1 0,005 1001111
Procedura Huffman creează codul optim pentru un set de
S Prob Codul simboluri și probabilități cu constrângerea că aceste simboluri
a1 0.005 1001111 vor fi codate pe rând. După crearea codului, codarea și
a2 0.02 100110 decodarea se face pe baza unui tabel de corespondență.
a3 0.14 101
Decodarea e unică (nu pot exista mai multe rezultate).
a4 0.20 11
a5 0.51 0
a6 0.08 1000 Care este mesajul codat prin acest cod?
a7
a8
0.04
0.005
10010
1001110
101111000100110
a3 a4 a6 a2
Mesajul decodat nu poate fi decât: a3 a4 a6 a2

Lmed =(0.005)(7) + (0.02)(6) + (0.14)(3)+ (0.20)(2) + (0.51)(1) + (0.08)(4) + (0.04)(5)+ (0.05)(7) = 2.04 biți/simbol

𝐻𝐻
= −[0.005𝑙𝑙𝑙𝑙𝑙𝑙2 0.005 + 0.02𝑙𝑙𝑙𝑙𝑙𝑙2 0.02 + 0.14𝑙𝑙𝑙𝑙𝑙𝑙2 0.14 + 0.20𝑙𝑙𝑙𝑙𝑙𝑙2 0.20 + 0.51𝑙𝑙𝑙𝑙𝑙𝑙2 0.51 + 0.08𝑙𝑙𝑙𝑙𝑙𝑙2 0.08
+ 0.04𝑙𝑙𝑙𝑙𝑙𝑙2 0.04 + 0.08050.005] = 2.024 𝑏𝑏𝑏𝑏𝑏𝑏𝑏𝑏/𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠
S Prob Codul
a1 0.1 011
a2 0.4 1
a3 0.06 01010
a4 0.1 0100
a5 0.04 01011
a6 0.3 00

Care este mesajul codat prin acest cod?

010100111100
S Prob Codul
a1 0.1 011
a2 0.4 1
a3 0.06 01010
a4 0.1 0100
a5 0.04 01011
a6 0.3 00

Care este mesajul codat prin acest cod?

010100111100 a3 a1 a2 a2 a6
a3 a1 a2 a2 a6
Metode de compresie

 M. de compresie la nivel de pixel – codează fiecare pixel fără să țină cont de corelația dintre
pixelii vecini
 Codarea Huffman
 Codarea LZW (Lempel – Ziv-Walsh)
 Codarea RLE (Run Length Encoding) (RLC – Run Length Coding)
 M. de compresie predictive – folosesc corelația care există între pixelii vecini, dintr-o imagine
 Codarea cu modulație “delta”
 Codarea DPCM (Differential Pulse Code Modulation)
 M. de compresie cu transformate – se bazează pe scrierea imaginii într-o altă bază, prin aplicarea
unei transformări unitare
 Alte m. de compresie
 Cuantizarea vectorială
 Codarea folosind fractali
 Codarea hibridă
Temă!

 Documentați-vă în privința următoarelor metode (lista e deschisă) și realizați o


prezentare PowerPoint pe care o veți prezenta colegilor:
 Codarea RLC/RLE (Run Length Encoding)
 Codarea DPCM (Differential Pulse Code Modulation)
 Standardul JPEG
 Codarea aritmetică
 Codificarea Golomb
 Codificarea LZW
 Codificarea predictivă
 .....
Transformarea cosinus discretă

 DCT - Discrete Cosine Transform


 este o transformată asemănătoare cu transformata Fourier discretă (DFT)
 DCT - generează coeficienți reali
 DFT - care generează coeficienți complecși
 În cadrul transformatei doar un număr mic de coeficienți sunt ne-nuli, și pot fi utilizați
pentru reconstruirea imaginii inițiale prin transformata inversă (IDCT) cu ocazia
decompresiei.
 Reducerea volumului datelor comprimate - suprimarea coeficienților nuli sau aproape
nuli corespunzând frecvențelor înalte
 Aparatul vizual uman e foarte puțin sensibil la aceste elemente spectrale ale imaginii
(corespunzând, de exemplu, unei zone cu striuri foarte fine dintr-o imagine), deci
reproducerea exactă a acestor elemente nu este esențială pentru calitatea imaginii.
 Utilizată în standardele JPEG et MPEG, care aplică o DCT 2D pe blocuri de pixeli de
dimensiune 8x8.
Variante DCT (Discrete Cosine Transform)

 DCT-I
 DCT-II – cea mai utilizată și este notată DCT
 DCT-III - transformata inversă a DCT-II și este notată IDCT
 DCT-IV
Standardul JPEG

 E o formă de compresie a imaginilor folosită la scară largă


 Are la bază transformata cosinus discretă
 Etape:
1. Imaginea este împărțită în blocuri de 8x8 pixeli
2. Începând de la stânga la dreapta, de sus în jos, se aplică DCT asupra fiecărui bloc
3. Fiecare bloc e comprimat prin cuantizare
4. Matricea de blocuri comprimate ce formează imaginea e stocată într-un spațiu
semnificativ redus.
5. La nevoie, imaginea este reconstruită prin decomprimare (se folosește
transformata cosinus discretă inversă )

https://www.youtube.com/watch?v=Kv1Hiv3ox8I
DCT în standardul JPEG

N – dimensiunea blocului asupra căruia se execută DCT (uzual N=8)

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