+ All Categories
Home > Documents > Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3...

Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3...

Date post: 17-Sep-2018
Category:
Upload: doanliem
View: 224 times
Download: 0 times
Share this document with a friend
43
Comunicaţii multimedia – Laborator 1 1 LABORATOR 1 Noţiuni introductive în codarea imaginilor 1.1 Programul VcDemo 1.1.1 Introducere VcDemo este un program de învăţare a tehnicilor de compresie a imaginilor şi de compresie video. Scopul programului este de a face posibilă experimentarea cu diferiţi algoritmi de compresie (mai mult sau mai puţin complecşi) fără a avea în vedere implementarea lor propriu-zisă. Din această cauză programul este bazat pe meniuri de dialog şi permite utilizatorului să experimenteze cu diferiţi parametrii specifici operaţiei de compresie. Pe de o parte, vizualizarea rezultatelor de compresie a imaginilor ajută la înţelegerea performanţelor unui anumit algoritm de compresie, iar pe de altă parte rezultatele stimulează o modalitate de rezolvare a problemei. O modalitate efectivă de a lucra cu VcDemo este de a-ţi pune tot timpul întrebările: „ce se va întâmpla dacă folosesc o anumită combinaţie de parametrii”, „care este cauza artefactelor de compresie” şi „cum pot fi comparate tehnicile de compresie atât din punct de vedere vizual cât şi numeric”. 1.1.2 Folosirea programului După pornirea programului trebuie încărcată o imagine bmp de lucru. Aceasta se face selectând „File/Open Image” sau apăsând butonul corespunzător. La alegerea imaginii trebuie avut în vedere că unele metode de compresie sunt restricţionate fie la dimensiuni pare ale imaginilor, fie la dimensiuni puteri ale lui 2. O alegere bună ar fi o imagine de 256x256 pixeli, care poate fi folosită pentru toţi algoritmii de compresie şi care are loc în spaţiul de lucru. Pot fi folosite şi imagini de dimensiuni mai mari, dar ele sunt câteodată afişate în ferestre mai mici datorită lipsei de spaţiu (pentru vizualizare la mărime originală daţi dublu-clic pe imagine). Toate rutinele de compresie pentru imagini funcţionează pe imagini cu nuanţe de gri pe 8 biţi, deci intern formatul imaginii de intrare este convertit la 256 de nivele de gri. Pentru secvenţe de imagini (MPEG) acest lucru poate fi diferit. După încărcarea imaginii meniul de opţiuni şi butoanele specifice fiecărui tip de compresie devin active. Dacă unele dintre opţiunile de compresie nu sunt active, atunci acest lucru se datorează dimensiunilor 2 Comunicaţii multimedia – Laborator 1 imaginii de start active sau tipului imaginii (imagine fixă, secvenţă video, secvenţă MPEG). Figura 1.1 Fereastră după activarea unui modul de compresie Apăsarea butonului corespunzător unei tehnici de compresie va produce apariţia meniului cu parametrii de compresie. Meniul este întotdeauna poziţionat în partea dreaptă (vezi Figura 1.1). După apăsarea butonului „Apply” va începe compresia folosind setul curent de parametrii. Partea de jos a meniului cu parametrii are o casetă de text, în care vor fi afişate rezultatele compresiei, ca de exemplu: Rata de bit = numărul de biţi pe pixel Eroarea pătratică medie 2 1 1 1 [ (, ) (, )] N M i j er Yij Xij NM = = = ∑∑ Raportul semnal - zgomot (SNR) Raportul semnal de vârf - zgomot (PSNR) ( ) ( ) 2 2 255 10log ( ) , , PSNR dB Xij Yij = În tabelul următor este prezentată o dependenţa subiectivă a calităţii imaginii în funcţie de PSNR: PSNR Calitate > 40dB Foarte bună 30 – 40dB Bună < 30dB Slabă
Transcript
Page 1: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 1 1

LABORATOR 1 Noţiuni introductive în codarea imaginilor

1.1 Programul VcDemo 1.1.1 Introducere

VcDemo este un program de învăţare a tehnicilor de compresie a imaginilor şi de compresie video. Scopul programului este de a face posibilă experimentarea cu diferiţi algoritmi de compresie (mai mult sau mai puţin complecşi) fără a avea în vedere implementarea lor propriu-zisă. Din această cauză programul este bazat pe meniuri de dialog şi permite utilizatorului să experimenteze cu diferiţi parametrii specifici operaţiei de compresie. Pe de o parte, vizualizarea rezultatelor de compresie a imaginilor ajută la înţelegerea performanţelor unui anumit algoritm de compresie, iar pe de altă parte rezultatele stimulează o modalitate de rezolvare a problemei. O modalitate efectivă de a lucra cu VcDemo este de a-ţi pune tot timpul întrebările: „ce se va întâmpla dacă folosesc o anumită combinaţie de parametrii”, „care este cauza artefactelor de compresie” şi „cum pot fi comparate tehnicile de compresie atât din punct de vedere vizual cât şi numeric”. 1.1.2 Folosirea programului

După pornirea programului trebuie încărcată o imagine bmp de lucru. Aceasta se face selectând „File/Open Image” sau apăsând butonul corespunzător.

La alegerea imaginii trebuie avut în vedere că unele metode de compresie sunt restricţionate fie la dimensiuni pare ale imaginilor, fie la dimensiuni puteri ale lui 2. O alegere bună ar fi o imagine de 256x256 pixeli, care poate fi folosită pentru toţi algoritmii de compresie şi care are loc în spaţiul de lucru. Pot fi folosite şi imagini de dimensiuni mai mari, dar ele sunt câteodată afişate în ferestre mai mici datorită lipsei de spaţiu (pentru vizualizare la mărime originală daţi dublu-clic pe imagine).

Toate rutinele de compresie pentru imagini funcţionează pe imagini cu nuanţe de gri pe 8 biţi, deci intern formatul imaginii de intrare este convertit la 256 de nivele de gri. Pentru secvenţe de imagini (MPEG) acest lucru poate fi diferit.

După încărcarea imaginii meniul de opţiuni şi butoanele specifice fiecărui tip de compresie devin active. Dacă unele dintre opţiunile de compresie nu sunt active, atunci acest lucru se datorează dimensiunilor

2 Comunicaţii multimedia – Laborator 1

imaginii de start active sau tipului imaginii (imagine fixă, secvenţă video, secvenţă MPEG).

Figura 1.1 Fereastră după activarea unui modul de compresie

Apăsarea butonului corespunzător unei tehnici de compresie va

produce apariţia meniului cu parametrii de compresie. Meniul este întotdeauna poziţionat în partea dreaptă (vezi Figura 1.1). După apăsarea butonului „Apply” va începe compresia folosind setul curent de parametrii.

Partea de jos a meniului cu parametrii are o casetă de text, în care vor fi afişate rezultatele compresiei, ca de exemplu:

• Rata de bit = numărul de biţi pe pixel • Eroarea pătratică medie

2

1 1

1[ ( , ) ( , )]

N M

i j

er Y i j X i jNM = =

= −∑∑

• Raportul semnal - zgomot (SNR) • Raportul semnal de vârf - zgomot (PSNR)

( ) ( )

2

2

25510log ( )

, ,PSNR dB

X i j Y i j=

−⎡ ⎤⎣ ⎦∑

În tabelul următor este prezentată o dependenţa subiectivă a calităţii imaginii în funcţie de PSNR:

PSNR Calitate

> 40dB Foarte bună

30 – 40dB Bună

< 30dB Slabă

Page 2: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 1 3

Aceste rezultate sunt salvate pentru fiecare imagine comprimată afişată în spaţiul de lucru şi pot fi obţinute apăsând clic-dreapta pe o imagine iar apoi selectând „Image Information”. Cea mai simplă metodă de a închide toate meniurile şi imaginile obţinute dintr-o imagine de start este închiderea imaginii de start. Folosirea secvenţelor de imagini

VcDemo foloseşte două tipuri de secvenţe: fişiere de date YUV şi succesiuni de imagini bmp. Secvenţe YUV

• Reprezentarea imaginilor color în formatul YUV (Y – luminanţa, U,V – crominanţa) se face pornind de la reprezentarea RGB (Red Green Blue) astfel:

0.3 0.59 0.11

0.493( )

0.877( )

Y R G B

U B Y

V R Y

= + += −= −

• Secvenţele YUV conţin secvenţe de imagini brute fără header. Datele sunt stocate ca o succesiune de blocuri de date Y-U-V. Formatul de stocare poate fi doar luminanţă sau luminanţă- crominanţă în format 4:2:0 sau 4:2:2. Pentru fiecare secvenţă trebuie să existe un fişier header cu acelaşi nume. De exemplu

...\adir\secv.yuv conţine date YUV cu format descris în secv.hdr. Secvenţe doar de

luminanţă sunt conţinute în fişiere cu extensia .y.

Secvenţe BMP

• O secvenţă de imagini BMP este de exemplu: imag1.bmp, imag2.bmp, ..., imag9.bmp, imag10.bmp, etc. Programul nu cunoaşte lungimea acestei secvenţe. Pentru a indica programului că există o secvenţă imag, imaginile trebuie organizate după cum urmează:

...\adir\imag.seq ...\adir\imag1.bmp ...\adir\imag2.bmp ...\adir\imag3.bmp

etc Programul caută fişiere cu extensia *.seq şi după selectare va încărca această imagine ca prima imagine a secvenţei. De aceea imag.seq trebuie să fie identică cu imag1.bmp (o copie cu extensie diferită). Toate celelalte cadre vor

4 Comunicaţii multimedia – Laborator 1

fi încărcate din subdirectorul imag, până când următoarea imagine nu mai poate fi găsită şi programul realizează că s-a ajuns la ultima imagine. Secvenţele de imagini pot fi deschise selectând „File/Open Sequence”. Secvenţele cu extensii *.yuv, *.y sau *.seq sunt listate şi pot fi deschise. Se va afişa doar primul cadru. Se pot apoi activa modulele programului care lucrează cu secvenţe de imagini. Folosirea secvenţelor comprimate MPEG

Pot fi folosite fişiere cu extensia *.mpg (folosită in general pentru fluxuri mpeg), *.m1v (flux video mpeg-1) şi *.m2v (flux video mpeg-2)

Secvenţele MPEG pot fi deschise selectând „File/Open MPEG Stream”. Secvenţele mpeg cu extensia .mpg sunt listate şi pot fi deschise. Din meniul „pull-down” pot fi selectate şi fişierele cu extensia *.m1v şi *.m2v. După deschiderea fişierului va fi afişată doar o fereastră colorată. Doar după activarea modulului de decompresie mpeg, fereastra va fi redimensionată şi va fi afişată secvenţa video. 1.2. Decimarea imaginilor (SS) 1.2.1 Aspecte teoretice

Compresia imaginii se realizează prin reducerea rezoluţiei imaginii cu factorul de decimare M, ceea ce corespunde unei scăderi substanţiale a calităţii. Decimarea cu un factor M este echivalentă cu reeşantionarea imaginii cu o frecvenţă de eşantionare de M ori mai mică.

Pentru evitarea fenomenului de aliere spectrală înaintea decimatorului se foloseşte un filtru trece-jos.

Figura 1.2 Decimarea imaginii

1.2.2 Opţiunile de compresie

Opţiunile de compresie sunt prezentate în Figura 1.3. Există trei tab-uri cu următorii parametrii:

Decimare M:1

Page 3: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 1 5

Figura 1.3 Opţiuni de compresie pentru decimare

Factor: Setează factorul de decimare. Imaginea decimată poate fi

vizualizată sub forma sa decimată, adică de dimensiune mai mică, sau poate fi mărită până la dimensiunea imaginii originale folosind replicarea pixelilor.

Filter: În general înaintea decimării se realizează o filtrare anti-aliere. În tab-ul „Filter” poate fi selectată aplicarea filtrului antialiere, şi lungimea filtrului trece-jos (numărul de coeficienţi). Cu cât filtrul are o lungime mai mare, cu atât este mai abruptă panta funcţiei de transfer a filtrului.

Spectrum: Pentru a observa decimarea în domeniul spectral, se poate afişa spectrul imaginii decimate (sau originale). VcDemo foloseşte estimatorul periodogramă (cu ferestre) pentru calculul spectrului. Utilizatorul poate selecta tipul de fereastră, ce este folosită pentru a suprima frecvenţele de scăpare. De observat că calculul spectrului nu are nici o influenţă asupra procesului propriu-zis de decimare.

1.2.3 Exerciţii 1. Pentru imaginea „Build512B.bmp” vizualizaţi spectrul. Componenta DC a

imaginii este în centrul spectrului. Decimaţi imaginea cu diferiţi factori. Cum se modifică spectrul?

2. Decimaţi cu factorul 4, fără anti-aliere şi cu un filtru anti-aliere de lungime 17. Observaţi diferenţele în imagini şi spectru.

3. Încercaţi şi alte imagini de test. Este observabilă alierea spectrală? Părerea depinde de imagine sau de factorul de decimare?

6 Comunicaţii multimedia – Laborator 1

1.3. Modulaţia impulsurilor în cod (PCM) 1.3.1 Aspecte teoretice

Metoda de compresie PCM implică realizarea următoarelor operaţii: 1. eşantionarea cu frecvenţa de eşantionare 1e ef T= 2. cuantizarea uniformă (cu pas constant de cuantizare) sau neuniformă

(cu pas variabil de cuantizare), cu 2 pM = nivele 3. codarea binară a celor M numere

Figura 1.4 Cuantizarea cu pas uniform

Figura 1.5 a) Semnalul original; b) Semnalul cuantizat şi eroarea de

cuantizare pentru un pas de cuantizare mic; c) cu pas de cuantizare mare.

1.3.2 Opţiuni de compresie

Opţiunile de compresie sunt prezentate în Figura 1.6. Există trei tab-uri cu următorii parametrii:

a)

b)

c)

Page 4: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 1 7

Figura 1.6 Opţiunile de compresie pentru compresia PCM

Bitrate: Selectează rata de bit pentru PCM (doar valori întregi). Este

aplicat un cuantizor uniform pentru o funcţie de densitate de probabilitate uniformă.

Dithering: Înaintea compresiei PCM o cantitate mică de zgomot poate fi suprapusă peste imagine. Acest lucru face ca artefactele de compresie PCM să fie mai puţin observabile. Deoarece zgomotul este generat local, el poate fi scăzut la decodare. Această opţiune poate fi selectată sau nu. Cantitatea de zgomot este controlată de către mărimea pasului dither-ului.

Errors: Când datele sunt comprimate din ce în ce mai mult, biţii devin din ce în ce mai vulnerabili la erorile de canal. VcDemo permite adăugarea înaintea decodării a unor erori de bit aleatoare in fluxul de bit codat. Astfel se pot vedea efectele erorilor (simple) de canal. Pot fi selectate diferite rate de erori de bit.

1.3.3 Exerciţii

1. Găsiţi pentru imaginea „Lena256B.bmp” care este numărul minim de biţi, pentru care diferenţa faţă de imaginea iniţială este acceptabilă. Câte nuanţe de gri are imaginea în acel caz?

2. Adăugaţi dither la imagine înaintea codării PCM. Reduceţi numărul de biţi şi obţineţi o imagine de aceeaşi calitate cu imaginea codată anterior. Care este câştigul în rata de bit? Care este concluzia, dacă se iau în considerare numai evaluările numerice?

8 Comunicaţii multimedia – Laborator 1

3. Utilizând opţiunea „Subtract Dither” observaţi ce fenomene apar? Care este cea mai bună alegere, să utilizăm această opţiune sau nu?

4. Adăugaţi un canal de eroare cu diferite rate de eroare şi diferite rate de bit. Explicaţi ce se observă.

5. Desenaţi variaţia raportului semnal-zgomot funcţie de numărul de biţi pe care se face cuantizarea.

1.4. Codarea diferenţială PCM (DPCM) 1.4.1 Aspecte teoretice

Codarea DPCM este un caz particular al tehnicii de compresie denumită codare predictivă, tehnică prin care informaţia deja transmisă este folosită pentru a prezice valori viitoare, diferenţa dintre ele fiind codată.

Codarea DPCM se bazează pe faptul că orice este prezis din semnal la codare poate fi reconstruit la decodare.

Etapele codării DPCM:

1. Prezicerea valorii pixelului curent ( , )x i j din valorile pixelilor adiacenţi ( 1, )x i j− , ( 1, 1)x i j− − , ( , 1)x i j − ...

2. Calculul diferenţei (eroarea de predicţie) între valoarea curentă şi valoarea prezisă: ˆ( , ) ( , ) ( , )x i j x i j x i jΔ = −

3. Codarea erorii predicţiei (cuantizarea + codarea VLC = cu număr variabil de biţi) se poate face cu un număr mai mic de biţi. Pentru predicţie se poate folosi:

- PCM: ˆ( ) 0x n = ˆ( , ) 0x i j = - Simpla diferenţă: ˆ( , ) ( 1, )x i j x i j= −

- Media a doi pixeli adiacenţi: ( 1, ) ( , 1)

ˆ( , )2

x i j x i jx i j

− + −=

- Media ponderată a mai mulţi pixeli adiacenţi

Predictor Memorie

Q VLC),( jix ),( jixΔ ),( jixqΔ

),(~ jix),(ˆ jix

00010100101

Figura 1.7 Codorul DPCM

Page 5: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 1 9

În Figura 1.7 este reprezentată schema codorului DPCM, unde sunt folosite următoarele simboluri:

( , )x i j : semnalul eşantionat de intrare; ( , )x i jΔ : diferenţa dintre valoarea curentă şi valoarea calculată; ( , )qx i jΔ : eroare de predicţie cuantificată;

ˆ( , )x i j : valoarea predicţiei; ( , )x i j : valoarea reieşită din calcul a semnalului eşantionat;

Figura 1.8 O secţiune din harta de biţi pentru modelul de codare DPCM

Pentru codorul din Figura 1.8, calculăm valoarea pixelului curent (Figura 1.8) pe baza valorilor pixelilor vecini cei mai apropiaţi:

1 2 3ˆ( , )x i j z a z b z c= + + , unde 1z , 2z , 3z sunt coeficienţi deponderare.

Pentru exemplul dat, ( , )x i j este valoarea pixelului curent, ˆ( , )x i j se calculează ca o expresie liniară (ponderată) a p pixeli anteriori pixelului curent (în cazul nostru, 3 pixeli, a, b şi c), ( , )x i jΔ este imaginea derivată, obţinută ca diferenţa dintre pixelul curent şi pixelii anteriori. În procesul de predicţie, imaginea originală este pierdută, şi puitem avea acces doar la valoarea calculată, ( , )x i j , a pixelului curent. Eroarea de predicţie poate fi (opţional) cuantificată şi utilizată în calculul entropiei codorului. Practic, eroarea este mică (datorită unei bune corelări spaţiale). 1.4.2 Opţiuni de compresie

Opţiunile de compresie sunt prezentate în Figura 1.9. Există patru tab-uri cu următorii parametrii: Model: Pot fi folosite 4 modele diferite de predicţie. Diferenţele

principale sunt între modelel din stânga (predicţie 1-D verticală) şi celelalte trei (predicţii 2-D).

Bit Rate: Se selectează rata de bit DPCM (doar numere întregi). Este aplicat un cuantizor Lloyd-Max optimizat pentru o funcţie de densitate de probabilitate de tip Laplacian. În caseta de text va fi afişat un estimat al ratei de bit propriu-zise în urma codării

Direcţia de parcurgere

Pixelul curent

10 Comunicaţii multimedia – Laborator 1

VLC (Huffmann). Acest număr ar trebui folosit la reprezentarea grafică a raportului semnal-zgomot (SNR) în funcţie de rata de bit.

Levels: Se poate alege între un cuantizor cu un număr par sau impar de nivele.

Errors: Se permite adăugarea înaintea decodării a unui număr aleator de erori de bit în fluxul codat. Astfel se pot vedea efectele erorilor (simple) de canal. Pot fi selectate diferite rate de erori de bit.

Figura 1.9 Opţiunile de compresie pentru compresia DPCM

Fereastra Prediction Error (eroare de predicţie):

În această fereastră este reprezentată diferenţa de predicţie din interiorul buclei DPCM. Valorile nule sunt reprezentate în gri, iar valorile pozitive sau negative sunt reprezentate mai deschis sau mai închis decât valoarea de gri generală. Diferenţa de predicţie este scalată pentru vizibilitate maximă.

1.4.3 Exerciţii

1. Alegeţi imaginea de test „Lena256B.bmp”. Se alege primul model de predicţie. Determinaţi compresia pentru fiecare din cele 6 rate de bit.

2. Care este câştigul în rata de bit pentru aceeaşi calitate a imaginii (subiectivă) faţă de codarea PCM?

3. Realizaţi compresia folosind diferite modele de predicţie. Comparaţi imaginile rezultate.

4. Reprezentaţi grafic dependenţa SNR în funcţie de rata de bit pentru ultimul model de predicţie.

Page 6: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 2 11

LABORATOR 2 Codarea în domeniul frecvenţă

2.1. Codarea în subbenzi (SBC) 2.1.1 Aspecte teoretice

Să presupunem că un semnal are cea mai mare parte a energiei concentrate în domeniul frecvenţelor joase (de exemplu o imagine, deoarece componentele pe frecvenţe înalte reprezintă detaliile fine).

O transmisie mai eficientă se poate realiza divizând domeniul de frecvenţă în două sau mai multe subbenzi:

Figura 2.1 Codarea şi decodarea în subbenzi

unde H1(z) este un filtru trece-jos, iar filtrele Hk(z), k=2,3,...,M, sunt filtre trece banda şi au caracteristicile:

Figura 2.2 Caracteristica filtrelor de descompunere

Prin decimare se păstrează numărul de eşantioane constant şi se

repartizează eşantioanele pe subbenzi. Pentru primul semnal CODEC 1 va aloca un anumit număr de biţi (de obicei tot atâţia cât erau şi în imaginea

H1(z) CODEC 1 M M F1(z)

H2(z) CODEC 2 M M F2(z)

HM(z) CODEC M M M FM(z)

+

12 Comunicaţii multimedia – Laborator 2

originală). Deoarece energia conţinută în al doilea semnal este mai mică CODEC 2 poate aloca mai puţini biţi.

Codorul şi decodorul por fi de tip PCM, DPCM, DCT (Discrete Cosinus Transform), etc.

Rezultă în final pentru semnalul codat o rată de bit mai scăzută decât cea a semnalului original

Se poate aloca diferit numărul de biţi pe eşantion pentru fiecare subbandă, în funcţie de caracteristicile semnalului în acea subbandă. Pentru aceasta se folosesc filtre de analiză pentru fiecare subbandă. 2.1.2 Opţiunile de compresie

Opţiunile de compresie sunt prezentate în Figura 2.3. Există 5 tab-uri cu următorii parametrii:

Figura 2.3 Opţiuni de compresie pentru codarea în subbenzi

Decompr: Aici poate fi selectată structura de descompunere în subbenzi.

Este posibilă alegerea a 6 modele diferite de descompunere. Cuantizarea subbenzilor poate fi oprită pentru a putea măsura calitatea filtrelor care realizează descompunerea în subbenzi şi reconstrucţia.

Filter: Aici se poate alege numărul de coeficienţi ai filtrelor trece-jos de analiză. Celelalte filtre sunt derivate din filtrul trece-jos de analiză. Filtrele folosite sunt cele proiectate de Johnson.

Subs: Se poate selecta modul de cuantizare a subbenzilor. Subbanda 1 (subbanda de joasă frecvenţă) poate fi codată independent de celelalte subbenzi. Pentru subbenzi se poate alege între codarea PCM sau DPCM. Cuantizorul folosit pentru fiecare subbandă depinde de funcţia de densitate de probabilitate selectată aici.

Page 7: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 2 13

Valoarea c reprezintă parametrul de formă a funcţiei de densitate de probabilitate de tip Gaussian

generalizată ( ) exp( )c

p x a bx= − :

Figura 2.4 Funcţia densitate de probabilitate de tip Gauss generalizată

Dacă se alege DPCM, atunci poate fi selectat şi modelul de predicţie DPCM.

Bitrate: Pot fi alese diferite rate de bit. Ratele de bit sunt date, dar nu este esenţial pentru compresia în subbenzi, deoarece prin procedura de alocare a biţilor poate fi obţinută orice rată de bit (după codare) dorită. În mod normal la ieşirea cuantizorilor este aplicată o codare entropică (Huffman), dar pentru a putea experimenta cu erori de bit de canal, această opţiune se poate activa sau dezactiva.

Errors: Se permite adăugarea înaintea decodării a unor erori de bit aleatoare in fluxul de bit codat. Astfel se pot vedea efectele erorilor (simple) de canal. Pot fi selectate diferite rate de erori de bit. Erorile de bit pot fi introduse doar dacă codarea entropică la ieşirea cuantizoarelor a fost dezactivată.

Subbenzile originale şi comprimate

Subbenzile imaginii de comprimat sunt în dreapta imaginii de start. Un exemplu este reprezentat în Figura 2.5 (imaginea din stânga). Subbenzile sunt organizate în funcţie de schema de descompunere aleasă. Subbanda de frecvenţă joasă este arătată în colţul din stânga sus, iar subbenzile de frecvenţă crescătoare în dreapta jos. Subbenzile sunt scalate pentru a se putea vedea cât mai clar informaţia din fiecare subbandă. „Gri” înseamnă o valoare nulă, iar valorile negative şi pozitive sunt de nuanţe mai închise, respectiv mai deschise decât valoarea zero. Varianţa propriu-zisă a subbenzilor poate fi găsită în fereastra de text.

14 Comunicaţii multimedia – Laborator 2

După cuantizare şi codare subbenzile sunt transmise şi decodate la receptor. Subbenzile decodate sunt afişate imediat sub fereastra cu subbenzile originale (vezi Figura 1.5, imaginea din dreapta). Subbenzile care au primit zero biţi după alocarea biţilor sunt complet gri. Rezultatele alocării propriu-zise a biţilor pot fi găsite în fereastra de text. Din nou subbenzile au fost scalate pentru vizibilitate maximă. Efectele erorilor de canal sunt de asemenea vizibile în subbenzile individuale.

Figura 2.5 Subbenzile originală şi comprimată. Subbenzile sunt scalate pentru

vizibilitate maximă 2.1.3 Exerciţii

1. Deschideţi imaginea ”Lena256B.bmp” şi realizaţi descompunerea pe subbenzi. Pentru un număr diferit de coeficienţi ai filtrului observaţi imaginea codată rezultată.

2. Pentru aceeaşi imagine, alegeţi o structură de descompunere şi un anumit filtru. Modificând tipul de codare al subbenzilor, între DPCM şi PCM, observaţi cum apare imaginea codată şi funcţie de parametrul c.

3. Selectaţi un filtru cu 16 coeficienţi, o descompunere pe 28 subbenzi şi alegeţi compresia PCM pentru toate subbenzile. Alegeţi o valoare optimă pentru c. Observaţi câştigul SNR în cazul codării entropice.

4. Pentru diferite grade de descompunere, alegând codarea entropică, observaţi SNR.

5. Pentru imaginea “Lena256B.bmp” alegeţi un anumit tip de codare al subbenzilor, precum şi un anumit parametru c. Variaţi numărul de subbenzi folosite în descompunere precum şi tipul filtrelor. Cum variază SNR funcţie de rata de bit?

Page 8: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 2 15

6. Deschideţi imaginile “Zone256B.bmp” şi “Noise256B.bmp”. Explicaţi conţinutul subbenzilor obţinute.

2.2. Transformata Cosinus Discretă (DCT) 2.2.1 Aspecte teoretice

Transformata Cosinus Discretă realizează o conversie imagine – frecvenţă.

Importanţa informaţiei de frecvenţă este următoarea:

- variaţii lente de intensitate în imagine sunt cel mai bine percepute de ochi.

- variaţiile lente corespund frecvenţelor joase - tranziţiile bruşte (pixelii de zgomot) corespund frecvenţelor înalte şi nu

sunt percepute de ochi.

Pentru un bloc din imagine de dimensiune 8x8 pixeli, Transformata Cosinus Discretă este dată de:

( ) ( )7 7

0 0

2 1 2 1cos cos

16 16mn m n yxx y

x m y nC k k I

π π

= =

+ += ∑∑

unde

1, pentru , 0

2 2,1

, în rest2

m n

m nk k

⎧ =⎪⎪= ⎨⎪⎪⎩

Coeficientul 00C se numeşte coeficient DC şi reprezintă frecvenţa spaţială 0 sau media valorilor pixelilor din bloc. Ceilalţi coeficienţi se numesc coeficienţi AC şi reprezintă frecvenţele spaţiale orizontale şi verticale din bloc.

DCT nu realizează o compresie a datelor, ci doar o transformare în domeniul frecvenţă.

Pentru decodare se foloseşte Transformata Cosinus Discretă Inversă (IDCT):

( ) ( )7 7

0 0

2 1 2 1cos cos

16 16xy u v vuu v

x u y vI k k C

π π

= =

+ +=∑∑

unde

1, pentru , 0

2 2,1

, în rest2

u v

u vk k

⎧ =⎪⎪= ⎨⎪⎪⎩

16 Comunicaţii multimedia – Laborator 2

2.2.2 Opţiuni de compresie

Opţiunile de compresie sunt arătate în Figura 2.6. Există cinci tab-uri cu următorii parametrii:

Figura 2.6 Opţiunile de compresie pentru DCT

Size: Aici se poate selecta dimensiunea blocurilor pe care se

calculează Transformata DCT (2x2, 4x4, 8x8, 16x16). Cuantizarea coeficienţilor DCT poate fi oprită pentru a măsura calitatea Transformatei DCT Directă şi Inversă.

Coefs: Aici poate fi selectat tipul de cuantizare a coeficienţilor DCT. Coeficientul DC (coeficientul 1) poate fi codat independent de coeficienţii DCT de frecvenţe mai mari. Se poate alege între codarea PCM şi DPCM. Cuantizorul folosit pentru fiecare din coeficienţii DCT depinde de funcţia densitate de probabilitate aleasă. Valoarea c reprezintă parametrul de formă a funcţiei de densitate de probabilitate de tip Gaussian

generalizată ( ) exp( )c

p x a bx= − . Dacă se alege DPCM,

atunci poate fi selectat şi modelul de predicţie DPCM. Coeficienţii DCT cu acelaşi index (proveniţi din blocuri DCT diferite) sunt toţi cuantizaţi folosind acelaşi cuantizor.

Bitrate: Pot fi alese diferite rate de bit. Ratele de bit sunt date, dar nu este esenţial pentru compresia folosind DCT, deoarece prin procedura de alocare a biţilor poate fi obţinută orice rată de bit (după codare) dorită. În mod normal, la ieşirea cuantizorilor este aplicată o codare entropică (Huffman), dar pentru a putea experimenta cu erori de bit de canal, această opţiune se poate activa sau dezactiva.

Page 9: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 2 17

Errors: Se permite adăugarea înaintea decodării a unor erori de bit aleatoare in fluxul de bit codat. Astfel se pot vedea efectele erorilor (simple) de canal. Pot fi selectate diferite rate de erori de bit. Erorile de bit pot fi introduse doar dacă codarea entropică la ieşirea cuantizoarelor a fost dezactivată.

Display: Coeficienţii DCT obţinuţi după transformare şi cuantizare pot fi reprezentaţi în două moduri:

• Ca o colecţie de coeficienţi DCT. În acest caz coeficienţii DCT cu acelaşi index din toate blocurile DCT formează un singur set. Aceste seturi de coeficienţi sunt ca şi subbenzile în codarea pe subbenzi şi permit înţelegerea uşoară a rezultatului alocării de biţi.

• Ca blocuri DCT la locaţia spaţială corectă. În acest caz coeficienţii DCT sunt reprezentaţi ca nişte blocuri NxN care se află la poziţia spaţială corespunzătoare celor NxN pixeli, pentru care sunt calculaţi aceşti coeficienţi. Din motive de vizibilitate coeficienţii DCT sunt scalaţi. Acest mod de afişare explică conţinutul de frecvenţe locale ale unei imagini şi – după alocarea biţilor – arată ce părţi ale imaginii sunt greu sau uşor de comprimat.

Coeficienţii DCT originali şi comprimaţi

Coeficienţii DCT ai imaginii ce trebuie comprimată sunt daţi în dreapta imaginii de start. Coeficienţii DCT sunt organizaţi în funcţie de modul Display selectat. Pentru a vizualiza informaţia din subbenzi, subbenzile sunt scalate pentru vizibilitate maximă. „Gri” înseamnă o valoare nulă, iar valorile negative şi pozitive sunt de nuanţe mai închise, respectiv mai deschise decât valoarea zero. Varianţa propriu-zisă a subbenzilor poate fi găsită în fereastra de text.

După cuantizare şi codare coeficienţii DCT sunt transmişi şi decodaţi la receptor. Coeficienţii DCT cuantizaţi sunt afişaţi imediat sub fereastra cu coeficienţii DCT originali (vezi Figura 2.7, imaginea din stânga). Coeficienţii DCT care au primit zero biţi după alocarea biţilor sunt complet gri. Rezultatele alocării propriu-zise a biţilor pot fi găsite în fereastra de text. Din nou coeficienţii DCT au fost scalaţi pentru vizibilitate maximă. Efectele erorilor de canal sunt de asemenea vizibile în coeficienţii DCT individuali. Coeficienţii DCT cuantizaţi sunt organizaţi în funcţie de modul de Display selectat. Imaginea din dreapta din Figura 2.7 arată coeficienţii DCT cuantizaţi dacă opţiunea DCT Blocks este selectată.

18 Comunicaţii multimedia – Laborator 2

Figura 2.7 Coeficienţii DCT compresaţi (scalaţi pentru vizibilitate maximă)

pentru cele două tipuri de afişare (stănga: colecţii, dreapta: blocuri DCT) 2.2.3 Exerciţii

1. Alegeţi imaginea “Lena256B.bmp”. Această imagine este transformată în coeficienţi DCT. Verificaţi calitatea imaginii reconstruite pentru diferite dimensiuni ale blocului DCT. În ce măsură corespunde teoria cu implementarea practică?

2. Pentru imaginea “Lena256B.bmp” selectaţi transformata DCT 8x8 şi compresie PCM pentru toţi coeficienţii DCT. Alegeţi o valoare rezonabilă pentru parametrul c. Desenaţi două curbe SNR - număr de bpp, cu şi fără codarea entropică. Cât de multă compresie suplimentară ( sau ce SNR ) dă codarea entropică?

3. Repetaţi punctul (2) pentru valori incorecte ale lui c. Fiţi atenţi la diferenţele dintre numărul de bpp selectat, cel prezis şi cel rezultat în urma compresiei. Explicaţi diferenţele observate.

4. Repetaţi punctul (3) utilizând setările corecte pentru parametrul c, pentru alte două cazuri, şi anume:

- compresie DPCM pentru toţi coeficienţii - compresie DPCM pentru primul coeficient DCT şi compresie PCM

pentru restul de coeficienţi. Ce câştig de performanţe se obţine utilizând compresia adiţională DPCM?

5. Repetaţi punctul (3) pentru imaginea “Noise256B.bmp”. Observaţi varianţa coeficienţilor DCT şi rezultatul în urma alocării biţilor. Comparaţi rezultatele cu compresia DPCM aplicată acestei imagini.

6. Încărcaţi imaginea ”Lena256B.bmp” şi calculaţi dependenţa SNR-număr de bpp utilizând blocuri DCT de diferite mărimi, păstrând compresia coeficienţilor DCT fixă (de exemplu, utilizând DPCM pentru primul

Page 10: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 2 19

coeficient DCT şi PCM pentru restul coeficienţilor, un model de predicţie fixat şi un parametru c fixat).

7. Examinaţi urmările erorilor asupra compresiei DCT pentru diferite probabilităţi de eroare, diferite mărimi ale blocurilor DCT şi diferite modele DPCM de predicţie. Explicaţi structura imaginii afişate. Comparaţi efectele prezenţei erorilor asupra coeficienţilor DCT şi asupra imaginii decodate.

8. Porniţi programul Matlab. Rulaţi programul dctdemo. Modificaţi numărul de coeficienţi DCT cu care se face decompresia şi comparaţi calitatea imaginii decomprimate. Câţi coeficienţi sunt necesari pentru a se obţine o aproximare rezonabilă a imaginii originale?

20 Comunicaţii multimedia – Laborator 3

LABORATOR 3 Codarea JPEG şi JPEG2000

3.1 Codarea JPEG de bază 3.1.1 Aspecte teoretice

JPEG (Joint Photographic Experts Group) este un standard ISO şi ITU-T realizat între 1982 şi 1992 şi stabileşte compresia şi codarea imaginilor cu tonuri de gri sau color.

JPEG oferă rate de compresie între 10 şi 50 (respectiv 0.5 până la 2 biţi pe pixel)

În Tabelul 3.1 este arătat modul de evaluare a calităţii imaginii decompresate: Tabelul 3.1

Compresie Calitate 0.25 – 0.5 biţi/pixel color moderată spre bună 0.5 – 0.75 biţi/pixel color bună spre foarte bună 0.75 – 1.5 biţi/pixel color excelentă > 1.75 biţi/pixel color nu se poate face diferenţa cu imaginea

originală

Modul JPEG de bază, cu pierderi, care trebuie să fie suportat de toate implementările JPEG:

- utilizează DCT; - coeficienţii DC sunt codaţi DPCM; - coeficienţii AC sunt codaţi Huffman;

Codorul JPEG

Figura 3.1 Codorul JPEG

Bloc de imagine

8x8

diferenţa DC coeficienţii AC

Page 11: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 3 21

Decodorul JPEG

Figura 3.2 Decodorul JPEG

Pixelii tuturor componentelor unei imagini sunt codate cu acelaşi număr de biţi: modul de codare JPEG fără pierderi utilizează 8 sau 12 biţi per pixel iar modurile cu pierderi utilizează 2 până la 12 biţi per pixel.

Imaginea este împărţită în unităţi de date de 8x8 pixeli:

Figura 3.3 Împărţirea în unităţi de date

Pregătirea imaginii

Procesarea unităţilor datelor se poate face:

• componentă cu componentă, şi parcurse de la stânga la dreapta, şi de sus în jos. Acest mod este cunoscut sub numele de procesare neîntreţesută (vezi Figura 3.4a). Utilizând acest mod pentru o imagine codată RGB, de înaltă rezoluţie, vor fi afişate pe rând, componentele de roşu, apoi, verde, şi la sfârşit albastru.

Imaginea

diferenţa DC

coeficienţii AC

22 Comunicaţii multimedia – Laborator 3

• prin procesare întreţesută (vezi Figura 3.4b), la care se procesează pentru un bloc toate componentele la rând, iar apoi se trece la blocul următor

* * * * * ** * * * * ** * * * * ** * * * * ** * * * * *

Figura 3.4 Procesarea unităţilor de date: a)procesare neîntreţesută, b)procesare

întreţesută Aplicarea Transformatei Cosinus Discretă

• Transformata DCT se aplică pe blocuri de imagine de dimensiuni 8x8 pixeli. Pentru astfel de bloc, DCT este dată de:

( ) ( )7 7

0 0

2 1 2 1cos cos

16 16mn m n yxx y

x m y nC k k I

π π

= =

+ += ∑∑

unde

1, pentru , 0

2 2,1

, în rest2

m n

m nk k

⎧ =⎪⎪= ⎨⎪⎪⎩

Cuantizarea şi codarea coeficienţilor DCT

• Coeficientul DC este puternic corelat pentru toate blocurile de imagine. • Coeficienţii DC din fiecare bloc sunt codaţi DPCM (diferenţa dintre

coeficienţii DC din blocuri succesive).

Figura 3.5 Cuantizarea şi codarea coeficienţilor DC

Bloci-1 Bloci

DCi-1 DCi

DIFF= DCi-DCi-1

Page 12: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 3 23

• După cuantizare, matricea 2D, care conţine cei 64 coeficienţi DCT

cuantizaţi este transformată într-un vector (o matrice 1D) prin scanarea în zig-zag, adică coeficienţii corespunzători frecvenţelor mai mici (şi de valori mari) sunt codaţi primii, urmaţi de cei cu frecvenţe mai mari (ce au valori foarte mici, sau aproximativ zero).

Figura 3.6 Ordinea de procesare a coeficienţilor DCT

• Rezultatul este un şir de biţi ce are o caracteristică: în el se găsesc

subşiruri de biţi de aceeaşi valoare (numai de 0 sau numai de 1), deci de redundanţă foarte mare. Acest lucru permite o codare entropică (Huffman), ceea ce măreşte substanţial raportul de compresie al întregului proces. Codarea Huffman produce o rată de compresie de aproximativ 2.

3.1.2 Opţiuni de compresie

Opţiunile de compresie sunt arătate în Figura 3.7. Există şase tab-uri cu următorii parametrii:

Bitrate: Aici se poate seta factorul de calitate Q al JPEG. Prin

selectarea factorului de calitate, rata de bit este definită implicit, dar aceasta nu este cunoscută dinainte. În locul setării factorului de calitate poate fi setată rata de bit. Calitatea corespunzătoare acestei rate de bit va fi determinată printr-o simplă procedură de căutare. Factorul de calitate rezultant apare în fereastra de text.

24 Comunicaţii multimedia – Laborator 3

Figura 3.7 Opţiunile de compresie pentru compresia JPEG

Quant: Cuantizarea coeficienţilor DCT este realizată folosind

cuantizorii JPEG standard, care pot oricum fi influenţaţi de selectarea unei matrici specifice de cuantizare sau de normare. Matricea de normare poate fi selectată aici. Opţiunile sunt:

• Matricea de normare JPEG standard pentru informaţia de luminanţă

• Matricea de normare JPEG standard pentru informaţia de crominanţă

• O matrice de normare cu acelaşi coeficient de normare (weight) pentru toţi coeficienţii DCT (weight=50)

• O matrice de normare „de pondere mare”, care dă o pondere mai mare coeficienţilor DCT de frecvenţă mare decât celor de frecvenţe mici. Această matrice a fost adăugată doar pentru scopuri educaţionale şi nu va fi niciodată utilizată în practică.

De remarcat că la JPEG atât factorul de calitate cât şi SNR-ul variază dacă se alege o altă matrice de normare. Factorul de calitate selectat de către utilizator şi matricea de normare ( , )N u v sunt folosiţi după cum urmează pentru a cuantiza coeficienţii DCT ( , )F u v :

* ( , )( , )

( , )

F u vF u v NINT

Q N u v

⎡ ⎤= ⎢ ⎥′⎣ ⎦

Page 13: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 3 25

unde valoarea minimă a lui ( , )Q N u v′ este 1 şi NINT este aproximarea la cel mai apropiat întreg. Q′ este legat de factorul de calitate Q selectat de utilizator în modul următor:

Figura 3.8 Dependenţa ( )Q f Q′ =

Huffman: Aici pot fi selectate diferite tabele de codare entropică, adică

fără codare entropică (de exemplu codarea cu lungime fixă) pentru coeficienţii DCT, codarea standard VLC, sau un tabel VLC optimizat pentru imaginea considerată.

Smooth: Dacă se bifează opţiunea, imaginea este puţin netezită pentru a suprima artefactele de blocare.

Markers: Pentru JPEG pot fi injectate erori în fluxul JPEG. Astfel codurile VLC, informaţia din header sau alte informaţii importante pot fi alterate. Pentru a bloca efectul erorilor de decodare VLC, care se înrăutăţesc progresiv, se pot introduce markeri în fluxul de biţi JPEG. Periodicitatea acestor markeri poate fi setată aici. De observat că, dacă se introduc mai mulţi markeri, rata de bit generală va creşte, sau – dacă a fost setată o anumită rată de bit – SNR-ul va scădea.

Errors: Se permite adăugarea înaintea decodării a unui număr aleator de erori de bit în fluxul codat. Astfel se pot vedea efectele erorilor (simple) de canal. Pot fi selectate diferite rate de erori de bit. Erorile de bit pot eventual corupe informaţii cruciale cum ar fi informaţia din header (dimensiunea imaginii, tabelele VLC). În cazul în care erorile sunt prea grave, decodarea se întrerupe.

Fluxul comprimat de biţi:

Imaginea comprimată este scrisă pe disc într-un fişier cu numele „JpegCodedImageBitStream.jpg”. Acest fişier conţine datele JPEG comprimate, folosind protocolul JFIF pentru headere. Fişierul poate fi vizualizat cu orice aplicaţie de editare de imagini.

26 Comunicaţii multimedia – Laborator 3

Vizualizarea coeficienţilor DCT: Modulul JPEG nu arată coeficienţii (cuantizaţi) DCT. Pentru a-i

vizualiza, folosiţi opţiunea „Set as start image” pe imaginea JPEG decomprimată. Apoi rulaţi modulul de compresie JPEG pentru această imagine, folosind blocuri DCT 8x8 şi debifând opţiunea de codare a coeficienţilor DCT. Atunci vor fi afişaţi coeficienţii DCT calculaţi din imaginea JPEG comprimată. Oricare din cele două moduri de afişare sunt instructive pentru studiu. Figura 3.9 arată un exemplu:

Figura 3.9 Coeficienţi DCT comprimaţi folosind JPEG (scalaţi pentru

vizibilitate maximă) 3.1.3 Exerciţii

1. Încărcaţi imaginea “Lena256B.bmp”. Utilizaţi matricea standard de normalizare a luminanţei. Desenaţi trei grafice SNR-număr de bpp, câte unul pentru fiecare mod de codare entropică ales. Ce SNR suplimentar ne oferă codarea entropică? Pe aceleaşi grafice, desenaţi caracteristica Calitate (Quality)-SNR. Ce observaţi în legătură cu aceste grafice?

2. Repetaţi punctul (1) pentru o matrice de normare uniform distribuită (flat cuant). Observaţi că SNR-ul obţinut în acest caz este mai mare! Daţi o justificare pentru utilizarea matricii standard de normare în loc de matricea de normare uniform distribuită.

3. Comparaţi cuantizarea coeficienţilor DCT în codarea JPEG cu cea rezultată din modul de compresie DCT, de exemplu, pentru imaginea “Lena256B.bmp” la o rată de 1 bpp. Puteţi găsi diferenţele? Explicaţi.

4. Examinaţi efectele fenomenului de smoothing asupra imaginii JPEG decodate.

5. Determinaţi raportul de scădere a SNR-ului în urma introducerii de markeri în fişierul codat JPEG.

Page 14: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 3 27

6. Examinaţi consecinţele introducerii biţilor de eroare asupra compresiei JPEG, la diferite valori ale probabilităţilor. 3.2. Codarea JPEG 2000 3.2.1 Noţiuni teoretice

Standardul JPEG2000 a fost gândit pentru îmbunătăţirea standardului JPEG. JPEG2000 s-a dorit a fi mai flexibil, cu un raport de compresie mult mai mare (până la 300:1), cu o structură mai unitară.

JPEG2000 utilizează în locul Tansformatei Cosinus Discrete Transformata Wavelet Discretă. El permite ambele metode de compresie: cu pierderi şi fără pierderi.

Paşii algoritmului de codare sunt aceeaşi ca şi pentru standardul JPEG clasic şi sunt ilustraţi în Figura 3.10:

Figura 3.10 Schema algoritmului de codare

Pregătirea imaginii

• Conform standardului JPEG2000 pregătirea imaginii este compusă din următorii paşi (vezi Figura 3.11):

- partiţionarea imaginii în cadre

- ajustarea nivelului datelor

- o transformare color ireversibilă

• Pentru situaţia, în care imaginea, care trebuie comprimată, este mai mare decât memoria disponibilă, s-a prevăzut posibilitatea partiţionarea imaginii în dreptunghiuri disjuncte numite cadre.

• Valorile datelor de intrare trebuie să fie într-o gamă centrată în jurul lui zero, deoarece standardul operează cu filtrări de tip trece-sus. Aşa se explică necesitatea celei de a doua etape de ajustare nivel.

• Al treilea pas în această etapă constă într-o tranformare ireversibilă a matricii color. Tipul de transformare depinde de reprezentarea iniţială a

Pregătire imagine

Transf. Wavelet Discretă

Cuantizare Codare

Controlul fluxului

Împachetare date

Imagine originală

Imagine comprimată

28 Comunicaţii multimedia – Laborator 3

imaginii. Se doreşte ca imaginea, care va intra în a doua etapă a procesului de compresie, să fie reprezentată în formatul YCRCB.

Figura 3.11 Etapele pregătirii imaginii

Aplicarea Transformatei Wavelet

• Transformata Wavelet are expresia:

, ,( ) ( )j k j kc f t t dtψ∞

−∞= ∫

unde ,j kc sunt coeficienţii Wavelet discreţi iar , ( )j k tψ sunt funcţiile de

bază Wavelet care se obţin prin scalarea şi translatarea unei funcţii Wavelet mamă după cum urmează:

2, ( ) 2 (2 )

jj

j k t t kψ ψ= − ,

unde k este parametrul de translaţie, j este parametrul de dilatare sau compresie, iar ( )tψ este funcţia Wavelet mamă.

• Un exemplu de funcţie Wavelet mamă este reprezentat în Figura 3.12:

Partiţionare imagine

Ajustare nivel

Transformare color

Pregătire imagine

I II

III IV

]2,2[]12,0[ 11 −−−⇒− NNN

0,29 0,587 0.114

0,564( ) 128

0,713( ) 128b

r

Y R G B

C B Y

C R Y

= + += − +

= − +

Page 15: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 3 29

Figura 3.12 Funcţia Wavelet Daubechies

• Standardul aplică Transformata Wavelet pe fiecare cadru al imaginii cu

ajutorul algoritmului piramidal reprezentat în Figura 3.13:

Figura 3.13 Algoritmul piramidal de aplicare a Transformatei Wavelet

• Algoritmul realizează descompunerea Wavelet ortogonală a semnalului

discret 12 jdP f+ la rezoluţia 12 j+ în semnalul

2 jdP f numit aproximarea

discretă a lui ( )f t la rezoluţia 2 j şi în semnalul numit detaliu discret

2 jdQ f a lui f(t) la rezoluţia 2 j .

• Imaginea fiind un semnal bidimensional se aplică Transformata Wavelet pe linii şi coloane aşa cum este prezentat în Figura 3.14:

Figura 3.14 Aplicarea Transformatei Wavelet la o imagine pe un nivel

fPdj 12 +

2 fQ d

j2

2 fPd

j2

[ ]nm1~

[ ]nm0~

Filtru trece-sus

Imagine originală Imagine filtrată pe

linii Imagine filtrată pe

linii şi coloane

I II

III IV

30 Comunicaţii multimedia – Laborator 3

• Cele patru subimaginii sunt: 1) I – Imaginea filtrată trece-jos pe linii şi coloane ( 12

dP f− ), notată în

literatura de specialitate cu LL (low subbands for row and column filtering)

2) II – Imaginea filtrată trece-sus pe linii şi trece-jos pe coloane ( 12

dQ f− , apoi 12

dP f− ), notată în literatura de specialitate cu HL (high

subbands for row filtering and low subbands column filtering) 3) III – Imaginea filtrată trece-jos pe linii şi trece-sus pe coloane

( 12

dP f− , apoi 12

dQ f− ), notată în literatura de specialitate cu LH (low

subbands for row filtering and high subbands column filtering) 4) IV – Imaginea filtrată trece-sus pe linii şi coloane ( 12

dQ f− ), notată

în literatura de specialitate cu HH (high subbands for row and column filtering)

Figura 3.15 Exemplu de aplicare a transformatei wavelet pe patru nivele de rezoluţie

• Subimaginea LL va fi corespondentul imaginii originale, dar la o rezoluţie

mai mică cu unu. Pentru această subimagine se aplică din nou Transformata Wavelet în acelaşi mod. Specificaţiile standardului JPEG2000 permit efectuarea între 0 şi 32 de nivele de rezoluţie (aplicare

LL3

LH3

LL1 HL1

LH1 HH1

HL1

LH1 HH1

HL1

LH1 HH1

HL1

LH1 HH1

HL3 HH4

HH3 HL4 LL4

LH4

Imaginea după prima descompunere

Imaginea după a doua descompunere

Imaginea după a treia descompunere

Imaginea după a patra descompunere

Page 16: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 3 31

Transformatei Wavelet de 32 de ori). În Figura 3.15 se prezintă patru etape de aplicare a transformatei cu sub-imaginile corespunzătoare:

Cuantizarea

• Se face cuantizarea coeficienţilor Transformatei Wavelet cu un cuantizor cu caracteristica uniformă şi zonă moartă în jurul lui zero pentru fiecare subimagine.

• Pentu o subimagine se utilizează un pas de cuantizare, fiecare sub-imagine având propiul pas de cuantizare.

• Relaţia cuantizorului este dată de relaţia:

. .( . .)

sub imagine

Val coefq sign Val coef

⎢ ⎥= ⋅ ⎢ ⎥

Δ⎢ ⎥⎣ ⎦

Codarea

• Fiecare subimagine a unui cadru al imaginii este împărţită în unităţi şi mai mici, numite blocuri de cod cu dimensiuni de tipul 64x64 sau 32x32 pixeli.

• În cadrul unui bloc de cod citirea valorilor cuantizate ale coeficienţilor Transformatei Wavelet se face în benzi, fiecare bandă având o înălţime de patru eşantioane.

• La rândul ei, citirea benzilor se face de la stânga la dreapta şi de sus în jos, aşa cum este prezentat in Figura 3.16

Figura 3.16 Modul de baleiere a coeficienţilor într-un bloc de cod

• Codarea se face ca la JPEG modul progresiv, luând în considerare

paralelipipede de biţi • De notat faptul că tot procedeul de codare pentru un bloc de cod are loc la

nivel de plan de bit şi nu la nivel de bit

….

….

….….

….

….. . . .

.

.

.

.

.

.

.

.

.

.

.

.

32 Comunicaţii multimedia – Laborator 3

• Pentru codarea planului de bit se utilizează un codor aritmetic binar adaptiv bazat pe context

• Codarea cuprinde trei etape numite: - propagarea importanţei (significance propagation)

- rezoluţia amplitudinii (magnitude refinement)

- eliminarea repetiţiilor (clean-up)

• Aceste etape ale compresiei sunt aplicate planelor de bit începând cu planul LSB. Singurul care face excepţie este planul MSB la care se utilizează doar eliminarea repetiţiilor (vezi Figura 3.17)

Figura 3.17 Aşezarea biţilor într-un paralelipiped

• Fluxul de date codat este organizat pe nivele de calitate. Un nivel de

calitate este ansamblul de plane de bit consecutive dintr-o regiune a imaginii.

• Fiecare bloc de cod poate contribui cu un anumit număr de plane de bit codate la un nivel de calitate a imaginii.

Controlul debitului

• Controlul ratei de debit este operaţia prin care fluxul de date este alterat în scopul atingerii unui debit de date dorit

• Trebuie să se analizeze toate blocurile comprimate şi să se decidă care din ele să fie trunchiat, după o stategie care să minimizeze efectul distorsiunilor

W1

W2

W3

W4

W5

W6

W7

W8

W9

W10

W11

W12

W13

W14

W15

W16 Planul MSB al biţilor

Planul LSB al biţilor

Page 17: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 3 33

Structura fluxului de date

• Datele prelucrate până în acest moment sunt împărţite în pachete, care corespund diferitelor regiuni ale unei imagini

• O regiune este o mulţime de blocuri de cod la un nivel de rezoluţie fixat • Un exemplu de astfel de regiuni pentru 4 nivele de rezoluţie este prezentat

în Figura 3.18:

Figura 3.18 Exemplu de partiţie a regiunilor în cadrul diferitelor rezoluţii pentru o imagine

• Un pachet este compus dintr-un header şi datele comprimate. • Pachetele sunt multiplexate astfel încât să formeze un flux de date (vezi

Figura 3.19)

Figura 3.19 Structura fluxului de date

3.2.2 Opţiuni de compresie

Header Imagine

Flux date partiţie

Flux date partiţie

Flux date partiţie

Sfârşit partiţie

…..

Header partiţie

Flux date pachete

Pachet Pachet ….. Pachet

Header pachet

Date comprimate

Culoarea fundalului reprezintă diverse nivele de rezoluţie, iar desenul reprezintă o regiune

34 Comunicaţii multimedia – Laborator 3

Opţiunile de compresie sunt prezentate în Figura 3.20. Există şase tab-uri cu următorii parametrii:

Figura 3.20 Opţiunile de compresie pentru JPEG2000

Encode: Aici se poate seta rata de bit pentru codare în cazul, în care nu

s-a ales la tab-ul de cuantizare opţiunea „Lossless quant” Quant: Aici se poate selecta tipul de cuantizare a coeficienţilor

Wavelet. Dacă se bifează opţiunea „Lossless quant”, atunci cuantizarea coeficienţilor Wavelet se realizează fără pierderi şi tab-urile Encode şi Decode nu vor mai fi active. Tot aici se poate selecta dimensiunea blocurilor de cod ce urmează a fi codate.

Levls: Se selectează numărul de nivele de rezoluţie. VcDemo permite alegerea de până la 9 nivele de rezoluţie, dar standardul JPEG2000 permite un număr maxim de 32 de nivele de rezoluţie.

Decode: Aici se poate seta rata de bit la care să se facă decodarea. Dacă se alege o rată de bit mai mică decât la codare, atunci se pierde din calitatea imaginii decodate. Alegerea unei rate de bit foarte mici poate duce la alterarea completă a imaginii decodate.

Tiling: În etapa de pregătire a imaginii, aceasta poate fi partiţionată în mai multe subimagini care vor fi procesate complet separat. Aici se poate alege dimensiunea în pixeli a subimaginilor.

Fluxul comprimat de biţi:

Imaginea comprimată este scrisă pe disc într-un fişier cu numele „NumeImagineOriginala_BitStream.jp2”. Acest fişier conţine datele JPEG2000 comprimate.

3.2.3 Exerciţii

Page 18: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 3 35

1. Încărcaţi imaginea “Lena256B.bmp”. Bifaţi opţiunea „Lossless quant” şi observaţi influenţa dimensiunii blocului de cod asupra dimensiunii fişierului JPEG2000 generat.

2. Setaţi dimensiunea blocului de cod la 32 şi numărul de nivele de rezoluţie la 5. Trasaţi curba SNR - rată de bit. Comparaţi această curbă cu cea obţinută pentru codorul JPEG. Cu ce codor se obţine o calitate mai bună?

3. Setaţi dimensiunea blocului de cod la 32 şi numărul de nivele de rezoluţie la 5. Calculaţi, variind rata de bit, între ce limite variază factorul de compresie.

4. Pentru o rată de bit fixată variaţi numărul de nivele de rezoluţie. Cum depinde SNR-ul de numărul de nivele de rezoluţie? Ce număr minim de nivele ar trebui ales, astfel încât SNR-ul să nu mai varieze semnificativ?

5. Observaţi ce se întâmplă, dacă rata de bit la decodare este mai mică decât cea la codare.

6. Pentru dimensiunea blocului de cod şi numărul de nivele de rezoluţie fixate variaţi în tab-ul „Tiling” dimensiunea subimaginilor în care să fie împărţită imaginea iniţială. Influenţează acest lucru calitatea imaginii decodate? Cum? Când este folositoare această opţiune?

7. Comparaţi calitatea imaginilor JPEG şi JPEG2000 codate la rate de bit mici şi la rate de bit mari. Ce observaţi?

36 Comunicaţii multimedia – Laborator 4

LABORATOR 4 Estimarea mişcării

4.1 Estimarea mişcării 4.1.1 Noţiuni teoretice

Estimarea mişcării este o tehnică importantă pentru compresia secvenţelor video. Ideea de bază este căutarea de regiuni de pixeli, care s-au deplasat dintr-un cadru in următorul şi codarea doar a operatorului de deplasare, nu a setului complet de date. Această operaţie de bază se aplică şi la alte operaţii de procesare a imaginilor cum ar fi detectarea contururilor şi recunoaşterea formelor.

Cea mai populară metodă practică pentru estimarea mişcării este metoda potrivirii blocurilor. Această metodă presupune că imaginea este formată din blocuri în mişcare. Datorită complexităţii ei hardware mai mici, este intens folosită în VLSI şi aproape toate codec-urile H.261 şi MPEG 1-2 utilizează potrivirea blocurilor ca metodă de estimare a mişcării. In potrivirea blocurilor, cel mai bun estimat al vectorului de mişcare este găsit printr-o procedură de căutare în domeniul pixelilor.

Ideea de bază este prezentată în Figura 4.1, unde deplasamentul pentru un pixel 1 2( , )n n din cadrul k este determinat considerând un bloc 1 2N N× centrat în jurul lui 1 2( , )n n şi căutând în cadrul k-1 (cadrul de căutare) locul celui mai potrivit bloc de aceeaşi dimensiune. Căutarea este de obicei limitată din motive de calcul numai în interiorul ferestrei de căutare de dimensiune

1 1 2 22 2N M N M+ × + .

Figura 4.1 Potrivirea blocurilor

Bloc

Cadrul k

Fereastră de căutare

Cadrul k-1

Page 19: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 4 37

Algoritmii de potrivire a blocurilor diferă prin criteriul folosit în potrivire şi strategia de căutare. a) Clasificare în funcţie de criteriul folosit în potrivirea blocurilor

• Eroarea pătratică medie minimă (MSE)

1 2

21 2 1 1 2 2 1 2

( , )1 2

1( , ) [ ( , , 1) ( , , )]

n n B

MSE d d s n d n d k s n n kN N ∈

= + + + −∑

unde B este un bloc de dimensiune 1 2N N× , pentru un set de vectori de mişcare 1 2( , )d d .

• Diferenţa medie absolută minimă (MAD)

1 2

1 2 1 1 2 2 1 2( , )1 2

1( , ) ( , , 1) ( , , )

n n

MAD d d s n d n d k s n n kN N β∈

= + + + −∑

b) Clasificare în funcţie de strategia de căutare

În mod obişnuit, pentru a reduce efortul de calcul, suprafaţa de căutare este limitată la o fereastră de dimensiuni 1 1 1M d M− ≤ ≤ şi 2 2 2M d M− ≤ ≤ centrată în jurul fiecărui pixel, pentru care va fi estimat un vector de mişcare, unde 1M şi 2M sunt întregi predefiniţi.

În continuare vom prezenta câteva exemple de algoritmi de căutare:

Căutarea completă

Este folosită pentru evaluarea criteriilor de potrivire în fiecare bloc de dimensiune 1 22 1 2 1M M+ × + din fereastra de căutare. Această strategie este extrem de consumatoare de timp şi nu se prea foloseşte. În schimb sunt folosiţi alţi algoritmi de căutare mai rapizi.

Căutarea în trei paşi

Vom explica procedura de căutare în trei paşi cu ajutorul Figurii 4.2, unde este reprezentat doar cadrul de căutare cu parametrii ferestrei de căutare

1 2 7M M= = :

• Numărul „0” marchează pixelul din cadrul de căutare care este chiar pe poziţia pixelului căruia i se doreşte estimarea mişcării. La primul pas funcţia criteriu de căutare este evaluată în nouă puncte, pixelul „0” şi pixelii marcaţi cu „1”. Dacă eroarea MSE sau MAD cea mai mică este găsită pentru pixelul „0”, atunci nu avem mişcare.

• La al doilea pas funcţia criteriu de estimare este evaluată în 8 puncte marcate cu „2” centrate în jurul pixelului cu cea mai mică eroare de la primul pas (marcat printr-un „1” încercuit).

38 Comunicaţii multimedia – Laborator 4

Figura 4.2 Căutare în trei paşi

• De remarcat că la primul pas pixelii de căutare sunt marginile ferestrei de

căutare şi că la fiecare pas înjumătăţim distanţa de la pixelii de căutare la noul centru pentru a obţine estimate de rezoluţie mai fină.

• Estimatul mişcării este obţinut după cel de al treilea pas, la care pixelii de căutare sunt la un pixel distanţă de pixelul din centru.

• Generalizări ale acestei proceduri pentru mai mulţi paşi duc la aşa numite „căutări cu n paşi” sau „căutări log-D”.

Căutarea încrucişată

Metoda căutării încrucişate este altă strategie de căutare logaritmică, la care la fiecare pas există 4 poziţii de căutare care sunt colţurile unei cruci „+” (vezi Figura 4.3).

Distanţa dintre punctele de căutare este redusă dacă cea mai bună potrivire este în centrul crucii sau la marginea ferestrei de căutare.

0

1 1 1

1 1

2

1

1

2 2

2

2

2

2

2

3 3 3 3 3 3 3

3

Page 20: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 4 39

Figura 4.3 Căutare încrucişată

4.1.2 Opţiuni de compresie

Opţiunile de compresie sunt prezentate în Figura 4.4. Există şase tab-uri cu următorii parametrii:

Figura 4.4 Opţiunile de compresie pentru estimarea mişcării

0

1

1

1

1

2

2

2

3

3

4 5

4

3

5 5

5

40 Comunicaţii multimedia – Laborator 4

Hierarchy: Aici se poate selecta algoritmul de potrivire a blocurilor standard sau ierarhic (pe două sau trei nivele). În funcţie de acest tab, unele dintre celelalte tab-uri îşi pot schimba conţinutul deoarece mărimea blocurilor depinde de nivelul de rezoluţie.

Search: Se pot alege diferite strategii de căutare pentru estimarea mişcării: (i) căutarea completă, (ii) căutarea în cruce, (iii) căutarea in N paşi. De remarcat că strategia de căutare completă poate fi extrem de consumatoare de timp.

Size: Aici se alege dimensiunea blocurilor (pătrate), pentru care este estimat vectorul de mişcare. Pentru estimarea ierarhică dimensiunea blocurilor este dimensiunea nivelului de rezoluţie superior. Dimensiunea celorlalte nivele de rezoluţie sunt determinate de către program (vezi fereastra de ieşire)

Displ’mnt: Deplasamentul maxim poate fi selectat pentru „căutare completă” şi „căutare în cruce”. Pentru „căutarea în N paşi” deplasamentul este determinat de către algoritm. Cu cât este mai mare deplasamentul maxim, cu atât este mai mare şi efortul de calcul. Pentru estimarea ierarhică, sunt date deplasamentele maxime la diferitele nivele de rezoluţie (de la rezoluţie mică la rezoluţie mare)

Figura 4.5 Deplasamentul maxim pe orizontală xd şi deplasamentul maxim pe verticală yd

N-Step: Pentru strategia de „căutare în N paşi” poate fi selectat

numărul de nivele (paşi). Cu cât este mai mare numărul de paşi, cu atât este mai mare şi deplasamentul maxim admisibil.

xd xd

yd

yd blocul curent

fereastra de căutare

Page 21: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 4 41

Pentru estimarea ierarhică este dat numărul de paşi pentru fiecare nivel de rezoluţie.

Video: Pot fi selectate diferite opţiuni de afişare. Câmpurile de mişcare estimate sunt salvate intern, astfel încât opţiunea „Display again” refoloseşte câmpurile de mişcare deja estimate. Schimbarea opţiunilor de estimare a mişcării necesită reestimarea câmpului de mişcare

Imaginile afişate:

Este estimată mişcarea pentru fiecare cadru al secvenţei de imagini. Apar patru ferestre (vezi Figura 4.6):

• Secvenţa de imagini originală (stânga sus) • Diferenţa dintre două cadre consecutive (dreapta sus) • Predicţia compensată de mişcare a imaginii actuale, peste care

este suprapus câmpul de mişcare (stânga jos). Punctul de pornire al vectorului de mişcare este indicat printr-un punct negru

• Diferenţa compensată de mişcare dintre cele două cadre consecutive (dreapta jos)

Fereastra text conţine pentru fiecare cadru varianţa cadrului original, varianţa diferenţei dintre cadre, varianţa diferenţei dintre cadre compensată de mişcare şi un estimat al entropiei diferenţiale a câmpului de mişcare estimat (în biţi/vector). Pentru calculul estimatului entropiei este aplicată o codare DPCM unidimensională fără pierderi asupra câmpului de vectori de mişcare.este calculată histograma diferenţei DPCM. Din această histogramă este estimată entropia câmpului de vectori (totalitatea componentelor orizontale şi verticale)

4.1.3 Exerciţii

Încărcaţi secvenţa „car.seq” şi folosiţi estimarea mişcării cu strategia de căutare „Full Search” pe blocuri 8x8 şi un deplasament maxim de 8 pixeli 1. Discutaţi de ce este avantajoasă codarea unei imagini diferenţă decât a

imaginii originale. Luaţi în calcul factorul câştig de predicţie. 2. Cât de mare este câştigul obţinut, dacă, pe lângă folosirea diferenţei între

cadre, se foloseşte şi compensarea mişcării? 3. Merită să folosim compensarea mişcării în orice parte a imaginii? Dacă nu,

în ce parte a imaginii pare să nu funcţioneze compensarea mişcării? 4. Comparaţi eficienţa compensării mişcării pentru diferite deplasamente.

Care ar fi cea mai bună alegere având în vedere atât complexitatea cât şi factorul de compresie în acest caz?

42 Comunicaţii multimedia – Laborator 4

Figura 4.6 Ferestrele afişate pentru Estimarea mişcării

5. Comparaţi eficienţa compensării mişcării pentru diferite dimensiuni ale

blocurilor. Discutaţi efectele observate. 6. Comparaţi eficienţa compensării mişcării pentru cele trei strategii de

căutare diferite şi discutaţi care ar fi compromisul între complexitate şi câştig de predicţie.

7. Comparaţi diferenţele de eficienţă între potrivirea blocurilor standard şi potrivirea blocurilor ierarhică cu 2 sau 3 nivele.

Lansaţi programul Matlab. Rulaţi programul demonstrativ estimarea_miscarii. Selectaţi o imagine de test din caseta de derulare. 8. Care este cea mai bună strategie de căutare din punctul de vedere al erorii

şi din punctul de vedere al timpului de calcul pentru acelaşi număr de blocuri şi acelaşi deplasament maxim? Ce metodă ar fi cel mai bun compromis între eroarea de estimare şi timpul de calcul?

9. Comparaţi cele două criterii de estimare (MAD – Minimum Absolut Difference şi MSE – Mean Square Error) din punct de vedere al erorii şi din punct de vedere al timpului de calcul.

10. Comparaţi eficienţa estimării mişcării pentru diferite mărimi ale blocurilor (8, 16 sau 32).

11. Comparaţi eficienţa compensării mişcării pentru cele două deplasamente („0.5” – jumătate din dimensiunea blocului şi „1” – dimensiunea blocului).

Page 22: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 5 43

LABORATOR 5 Standardul H.261

5.1 Standardul H.261 5.1.1 Noţiuni teoretice

Standardul H.261 este un standard ITU-T pentru videotelefonie şi videoconferinţă prin ISDN (Integrated Services Digital Network).

Pentru o conexiune ISDN sunt disponibile utilizatorului 2 canale B pentru transmisie bidirecţională şi un canal D pentru controlul transmisiunii (semnalizare). Un canal B are banda de 64kbiţi/s. Se poate mări debitul cu un multiplu întreg p x 64kbits/s (p = 1..30) prin alocarea mai multor canale B. Standardul e cunoscut şi ca “p x 64”.

Rata de bit la compresie pentru H.261 poate varia de la 40kbiţi/s până la 2 Mbiţi/s.

H.261 este realizat pentru codare şi decodare în timp real. Întârzierea maximă nu trebuie să depăşească 150ms. Pregătirea imaginilor

• H.261 defineşte un format foarte precis. Frecvenţa este de 29,97 cadre/s. În timpul compresiei este posibil să se genereze o imagine cu o frecvenţă mai mică, de exemplu 10 sau 15 cadre/s.

• Numai imaginile cu explorare progresivă (non-interleaved) sunt permise la intrarea codorului.

• Semnalele de la intrare (de exemplu imaginile RGB) sunt transformate în semnale YCBCR, Y fiind semnalul de luminanţă şi CB şi CR semnalele diferenţă de crominanţă.

• Poziţia eşantioanelor de luminanţă (Y) şi crominanţă (CB şi CR):

44 Comunicaţii multimedia – Laborator 5

Figura 5.1 Poziţia eşantioanelor de luminanţă şi cromonanţă

• Numai două formate (de raport 4/3) de imagini sunt permise:

a) Common Intermediate Format (CIF) - componenta de luminanţă: 288 linii şi 352 pixeli/linie. - componenta de crominanţă: 144 linii şi 176 pixeli/linie.

b) Quarter-CIF (QCIF) - componenta de luminanţă: 144 linii şi 176 pixeli/linie. - componenta de crominanţă: 72 linii şi 88 pixeli/linie.

• Toate implementările H.261 trebuie să poată face codarea în ambele formate (CIF şi QCIF).

• Un semnal necomprimat QCIF la o frecvenţă de 29,97cadre/s are rata de bit 9,12Mbit/s, iar în format CIF la aceeaşi frecvenţă 36,45Mbit/s.

• În formatul H.261 unităţile de date sunt de dimensiunea 8x8 pixeli şi sunt utilizate pentru luminanţă şi culoare.

• Un macro-bloc se obţine prin combinarea a 4 blocuri de matrice Y cu câte un bloc al fiecărei componentă de culoare.

Figura 5.2 Structura unui macrobloc

• Un grup de blocuri este definit prin 33 de macro-blocuri.

Figura 5.3 Structura grupului de blocuri

1 2 3 4 5 6 7 8 9 10 11

12 13 14 15 16 17 18 19 20 21 22

23 24 25 26 27 28 29 30 31 32 33

Page 23: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 5 45

- imaginea QCIF are 3 grupuri de blocuri. - imaginea CIF din 12 grupuri de blocuri. - În Figura 5.4 GOB 1...12 sunt grupuri de blocuri (Group Of Blocs)

Figura 5.4 Structura unei imagini CIF, respectiv QCIF

Algoritmul de codare

• H.261 utilizează două metode diferite de codare: intercadru şi intracadru.

- Pentru codarea intracadru nu este luată în considerare redundanţa între cadre.

- Pentru codarea intercadru este folosită informaţia din cadrul anterior sau următor.

• Decizia privind modul de codare se ia în timpul compresiei în funcţie de anumiţi parametrii.

• Codarea intracadru se realizează similar cu JPEG. Fiecare bloc de 8x8 pixeli este transformat cu DCT. Cei 64 coeficienţi DCT sunt cuantizaţi (diferit pentru DC şi AC) şi apoi codaţi entropic.

• Codarea intercadru este bazată pe predicţia fiecărui macro-bloc al imaginii. Aceasta se realizează printr-o comparare a macro-blocurilor din cadrele anterioare şi cel curent. Vectorul de mişcare este definit de poziţia relativă a blocului anterior faţă de cel curent.

Figura 5.5 Obţinerea vectorului de mişcare pentru codarea intercadru

Vectorul de mişcare

Cadrul curent

Cadrul de referinţă

46 Comunicaţii multimedia – Laborator 5

• Pentru obţinerea vectorilor de mişcare se consideră diferenţa dintre

macro-blocurile localizate pe aceeaşi poziţie în imaginile anterioare. • Vectorii de mişcare sunt codaţi DPCM şi dacă valoarea codată

depăşeşte o anumită valoare de prag, se aplică DCT şi se transmit coeficienţii.

• Altfel se transmit numai componentele vectorului de mişcare codate entropic fără pierderi.

Figura 5.6 Schema de principiu a codorului H.261

• Toţi coeficienţii sunt cuantizaţi uniform şi codaţi cu lungime variabilă. • În plus un filtru trece-jos poate fi aplicat înaintea DCT pentru a elimina

zgomotul de frecvenţă înaltă şi acesta să nu fie codat. Acest filtru este opţional.

• Cuantizarea este uniformă şi mărimea pasului de cuantizare este ajustabilă în funcţie de cantitatea datelor din bufferul, din care se face transmisia. Acest mecanism forţează un debit constant la ieşirea codorului, deci calitatea datelor video codate depinde de conţinutul imaginii ca şi de mişcarea din scena respectivă.

Page 24: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 5 47

Figura 5.7 Schema codorului H.261

Figura 5.8 Schema decodorului H.261

• Codarea coeficienţilor DCT se face similar ca la JPEG. • Coeficienţii sunt scanaţi în zig-zag.

- Coeficientul DC este codat diferenţial. - Coeficientul AC: codare zero-run+valoare şi Huffman.

• Codarea zero-run+valoare: - zero-run – numărul de repetiţii a lui 0. - valore – valoarea coeficienţilor diferiţi de 0.

• Codarea Huffman - simbolurile cele mai frecvente sunt codate cu mai puţini biţi - este transmis un tabel 2D pentru codare cu lungime variabilă (VLC).

• Cele mai întâlnite combinaţii de zerouri succesive (RUN) şi al doilea simbol (LEVEL) sunt codate cu lungime variabilă (vezi Tabelul 5.1). Celelalte combinaţii (RUN, LEVEL) sunt codate cu cuvinte de 20 de biţi, care conţin 6 biţi ESCAPE, 6 biţi RUN şi 8 biţi LEVEL.

48 Comunicaţii multimedia – Laborator 5

Tabelul 5.1 Tabel pentru codare cu lungime variabilă RUN Level Cod

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 2 2 2 2 2 …

Escape

1 1 2 3 4 5 6 7 8 9

10 11 12 13 14 15 1 2 3 4 5 6 7 1 2 3 4 …

1s Dacă e primul coeficient al blocului 11s Dacă nu e primul coeficient al blocului 0100 s 0010 1s 0000 110s 0010 0110 s 0010 0001 s 0000 0010 10s 0000 0001 1101 s 0000 0001 1000 s 0000 0001 0011 s 0000 0001 0000 s 0000 0000 1101 0s 0000 0000 1100 1s 0000 0000 1100 0s 0000 0000 1011 1s 011s 0001 10s 0010 0101 s 0000 0011 00s 0000 0001 1011 s 0000 0000 1011 0s 0000 0000 1010 1s 0101 s 0000 100s 0000 0010 11s 0000 0001 0100 s ……………………….

0000 01

Tabelul 5.2 Exemplificarea codurilor pentru RUN şi LEVEL

Run este un cod cu lungime fixă de 6 biţi

Level este un cod cu lungime fixă de 8 biţi

Run Code Level Code

0 0000 00 −128

1 0000 01 −127 1000 0001

2 0000 10 ⋅ ⋅ ⋅ ⋅ 00−2 1111 1110

⋅ ⋅ 00−1 1111 1111

63 1111 11 0000 0001 0000 0001 0002 0000 0010 ⋅ ⋅ 0127 0111 1111

Page 25: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 5 49

• De exemplu: 0 0 0 –1 6 0 3 EOB se codează: 001111 001000010 001001010 10

Codarea vectorilor de mişcare (MV)

• Vectorii de mişcare au valori întregi între –15 şi 15. • Se codează diferenţa între vectorii de mişcare (MVD - Motion Vector

Difference) cu lungime variabilă (vezi Tabelul 5.3) Tabelul 5.3 Codarea vectorilor de mişcare

MVD Cod

–16 & 16 –15 & 17 –14 & 18 –13 & 19 –12 & 20 –11 & 21 –10 & 22 o–9 & 23 o–8 & 24 o–7 & 25 o–6 & 26 o–5 & 27 o–4 & 28 o–3 & 29 o–2 & 30 o–1 & 23 o–0 & 23 o–1 & 23

o–2 & –30 o–3 & –29 o–4 & –28 o–5 & –27 o–6 & –26 o–7 & –25 o–8 & –24 o–9 & –23 –10 & –22 –11 & –21 –12 & –20 –13 & –19 –14 & –18 –15 & –17

0000 0011 001 0000 0011 011 0000 0011 101 0000 0011 111 0000 0100 001 0000 0100 011 0000 0100 111 0000 0101 011 0000 0101 111 0000 0111 111 0000 1001 110 0000 1011 110 0000 1111 110 0001 1111 110 0011 1111 110 0111 0100 110 1000 0100 110 01000 0100 1 0010 1111 111 0001 0111 111 0000 1101 111 0000 1010 111 0000 1000 110 0000 0110 110 0000 0101 100 0000 0101 001 0000 0100 101 0000 0100 010 0000 0100 000 0000 0011 110 0000 0011 100 0000 0011 010

• De exemplu, pentru vectorii de mişcare: 15 14 –13 12 ...

avem diferenţa: –1 –27 25 ... care se codeaza astfel: 011 00001010 00000111 ...

50 Comunicaţii multimedia – Laborator 5

Cuantizarea coeficienţilor

• Ajustarea pasului de cuantizare se face în funcţie de cantitatea datelor în bufferul, din care se face transmisia. Pasul de cuantizare poate varia între 2 şi 62 (din 2 în 2).

• Dimensiunea bufferului este 64q× kbiţi, rata de bit 64q× kbiţi/s iar

rata cadrelor 30

k Hz, ( 1...4k = ).

• Numărul mediu de biţi pe MacroBloc este: - pentru CIF: 5 k q× × - pentru QCIF: 20 k q× ×

• Pasul de cuantizare este 2 int 2200

umplerebuffer

q

⎛ ⎞× +⎜ ⎟×⎝ ⎠

Tabelul 5.4 Codarea vectorilor de mişcare

Umplerea bufferului Pasul de cuantizare

< 200q 2

< 400q 4

< 600q 6

< 800q 8

... ...

< 6000q 60

< 6200q 62 Fluxul de date

• Fluxul de date are o structură ierarhică formată din mai multe niveluri. 1. Nivelul imagine

- PSC (20 biţi): Picture Start Code; - TR (5 biţi): Temporal Reference; - PTYPE (6 biţi): CIF sau QCIF; - dacă PEI = 1, PSPARE: biţi de rezervă;

2. Nivelul Grup de Blocuri (GOB) - GBSC (16 biţi): GOB Start Code; - GN (4 biţi): Group Number; - GQUANT: Group Cuantizer, 1...31; - dacă GEI = 1, GSPARE: biţi de rezervă;

3. Nivelul MacroBlocuri (MB) - MBA: MB Address; - MQUANT: MB Cuantizer, 1...31;

Page 26: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 5 51

- MVD: MV Data; - CBP: Coded Block Pattern

4. Nivelul Blocuri - TCOEFF: Coeficienţii transformatei;

Figura 5.9 Structura fluxului de date

• Fluxul de date H.261 prezintă următoarele caracteristici:

- fluxul de date al unei imagini conţine informaţia pentru corecţia erorilor

- pentru fiecare imagine un număr de 5 biţi sunt folosiţi ca referinţă temporală

- dacă o anumită comandă este dată de la aplicaţia decodorului, ultima imagine este îngheţată ca un stop cadru. Aceasta permite aplicaţiei ca la decodare să oprească şi să pornească o scenă video fără nici o dificultate.

- utilizând comenzi trimise de codor (şi nu de aplicaţie) este de asemenea posibil să se comute între imagini fixe şi imagini în mişcare. Alternativ un semnal de time-out poate da aceeaşi comandă.

52 Comunicaţii multimedia – Laborator 5

5.1.2 Programul Vprove

Programul Vprove este un program demonstrativ de analiză şi testare a tehnicilor de compresie video.

Încărcaţi testul H.261 selectând din meniu ‘File/H.261 Example/ConferenceRoom’. Apăsaţi pe ‘Play’. Secvenţa video va rula şi va dispărea când la sfârşit (10 secunde)

Figura 5.10 Încărcarea secvenţei de test

În Tabelul 5.5 sunt descrise diversele butoane din meniu şi semnificaţia

lor.

Page 27: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 5 53

Tabelul 5.5 Butoanele din meniu Icoana Funcţie Apelare Meniu Control tastatura

Rulează secvenţa

Play – Play

CTRL+P

Opreşte secvenţa Play – Stop

CTRL+S

Pauză/Avansează un cadru

Play – Pause/Frame Advance

CTRL+A

Derulare rapidă Play – Fast Fwd

CTRL+F

Derulare înainte oarbă (nu este afişată secvenţa video) - Opţiunea este doar activă, dacă s-a selectat înainte ‘Play – Pause On frame’

Play – Blind Fast Fwd

CTRL+F

Trecere la cadrul numărul… A se folosi apoi ‘Fast Forward’ sau ‘BlindFast Forward’

Play – Pause On frame…

În primul rând priviţi clipul video H.261. Lăsaţi secvenţa să ruleze până

la sfârşit. Vezi observa că: • Mişcarea este prea rapidă. Viteza de rulare este dependentă de viteza

procesorului, pe care lucraţi. • Apar artefacte nedorite în imagine (vezi Figura 5.11): Aceste zgomote

provocate de codare se observă când bărbatul din imagine îşi mişcă mâna (începe aproximativ la cadrul 128 şi continuă până la cadrul 161, iar artefactele se pot observa până la cadrul 203). Pentru a putea vedea mai clar aceste artefacte, avansaţi cadru cu cadru (CTRL+P).

54 Comunicaţii multimedia – Laborator 5

Figura 5.11 Artefacte vizuale

Observaţi calitatea compresiei. Imaginea este destul de distorsionată.

Pentru a înţelege de ce se întâmplă acest lucru: • Activaţi opţiunea de vizualizare a tipurilor de macroblocuri (MB) din

“Frame/MB Types” • Rulaţi din nou secvenţa (vezi Figura 5.12). • Diferitele tipuri de macroblocuri au diferite culori (în standardul H.261

există 10 tipuri de macroblocuri): - MB verzi sunt codate intra (complet în acest cadru) - MB galbene sunt codate intra+Q (intra cu cuantizare) - MB roz sunt codate inter (interpolate din cadrul anterior), cu sau

fără coeficienţi/vectori de mişcare (3 tipuri) - MB gri sunt codate inter+Q (inter cu cuantizare) - MB albastre sunt codate inter cu coeficienţi (Coeffs) şi vectori de

mişcare (2 tipuri) - MB roşii sunt codate inter cu coeficienţi (Coeffs) şi vectori de

mişcare - MB fără culoare nu sunt codate – este folosit macroblocul din

cadrul anterior

Artefacte vizuale

Page 28: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 5 55

Figura 5.12 Vizualizarea diferitelor tipuri de macroblocuri

Priviţi datele din macroblocuri. • Activaţi caseta de informaţii despre macrobloc din “Frame/MB Tooltip” • Trageţi fereastra MB Tooltip în afara imaginii • Mişcaţi mouse-ul peste imagine. O să apară un pătrat alb în jurul

macroblocului, din care se citesc datele, iar în fereastra MB Tooltip o să apară informaţii despre macroblocul respectiv (vezi Figura 5.13).

În fereastra de MB Tooltip avem:

• MODE – modul de codare al macroblocului • QUANT – cuantizorul folosit pentru cuantizarea luminanţei (cel pentru

crominanţă poate varia) • BITS – numărul de biţi folosiţi pentru acel macrobloc • SEG – numărul segmentului, din care face parte macroblocul (un

segment este un grup de blocuri) • CBP – un număr între 0-63, care arată care dintre cele 6 blocuri 8x8, ce

formează un macrobloc, au fost codate şi care nu (în paranteză apare numărul binary, unde ‘1’=codat şi ‘0’=necodat, care, citiţi de la stânga la dreapta, arată care blocuri au fost codate. Blocurile au fost aranjate în modul următor: Y0,Y1,Y2,Y3,U,V)

56 Comunicaţii multimedia – Laborator 5

• MV – Vectorul de mişcare pentru macroblocul selectat. Numerele din paranteze <> sunt pentru mişcare pe axa X, respectiv pe Y (numerele positive corespund direcţiei jos/dreapta, iar cele negative sus/stânga)

Figura 5.13 Selectarea macroblocului

Figura 5.14 Fereastra MB Tooltip

Macrobloc selectat cu mouse-ul

Macrobloc de culoare

verde

Numărul macroblocului

(X Y)

Numărul cadrului

Page 29: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 5 57

Analiza grafică

• Avansaţi în secvenţa video cadru cu cadru • Vezi vedea în background multe macroblocuri codate intra de culoare

verde şi galbenă. Aceste macroblocuri folosesc cei mai mulţi biţi pentru codarea cadrului

• Se pare că foarte mulţi biţi sunt folosiţi pentru background-ul static din spatele bărbatului. Verificaţi acest lucru: opriţi secvenţa video şi selectaţi „Graph / Enable” şi setaţi cele două opţiuni din Figura 5.15.

Figura 5.15 Opţiuni în meniul Graph

• Selectaţi fişierul de ieşire din “Graph / Export File…” (de exemplu ‘H261

example’)

Figura 5.16 Salvarea fişierului de ieşire

Selectaţi opţiunile

58 Comunicaţii multimedia – Laborator 5

• Selectaţi “Graph / View Graph”. Datele sunt exportate în fişierul respectiv şi acest fişier este deschis folosind Microsoft Excel.

• Alegeţi “Enable macros”. Va rula programul macro. La sfârşit va apărea tab-ul Vprov în stânga sus.

• Selectaţi tab-ul ‘Ave Bits per MB’, care afişează numărul mediu de biţi folosiţi pentru fiecare macrobloc (în culori). Puteţi vedea că cei mai mulţi biţi sunt folosiţi în centru (unde are loc mişcarea bărbatului); folosirea de relativ mulţi biţi şi în partea stânga sus şi pe marginea de jos este o eroare a codorului (vezi Figura 5.17)

Figura 5.17 Graficul număr de biţi mediu pe macrobloc

• Selectaţi tab-ul ‘IntraCodingFreq’. Pe graphic este reprezentată frecvenţa

relativă de codare intra pentru fiecare macrobloc. Observaţi că în colţul stânga sus există multe macroblocuri codate intra. Aceasta este o eroare a codorului (vezi Figura 5.18)

• Selectaţi şi celelalte opţiuni din meniul „Graph” şi vizualizaţi graficele.

Page 30: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 5 59

Figura 5.18 Graficul frecvenţă relativă de codare intra

5.1.3 Aplicaţia H.261

Aplicaţia H.261 constă de fapt în două programe Codorul H.261 şi Decodorul H.261, cu care se realizează codarea, respectiv decodarea formatului H.261.

Codorul H.261

Aplicaţia Codor H.261 reprezintă o implementare practică a algoritmului H.261 descris de “Recomandarea H.261” versiunea 2 din martie 1993. El a fost realizat în mediul vizual Visual C++ pentru Windows 95, 98, ME şi Xp folosind o implementare a standardului H.261 realizată de către Standford University havefun.stanford.edu:pub/p64. Prezentarea meniului

Meniul “Fişier” conţine doua opţiuni cu ajutorul cărora se poate alege sursa video care urmează a fi comprimată. Se poate opta între codarea unui fişier de tipul *.avi, *.qcif, *.cif existent pe disc (“Deschide fişierul sursă”) sau codarea in timp real a unei surse video externe furnizată de o camera video cu opţiunea ”Noua fereastră de captură”.

60 Comunicaţii multimedia – Laborator 5

Figura 5.19 Codor H.261

Salvarea fişierului video codat H.261 se face sub forma numefisier.261

prin opţiunea “Salvare ca fişier H.261” şi prin alegerea ulterioară a locului unde se doreşte să fie stoc fişierul respectiv.

Figura 5.20 Meniul ”Fişier”

Cel de-al doilea meniu, „Video” include trei opţiuni: Sursă, Format,

Opţiuni. Prin selectarea opţiunii “Sursă” se poate alege sursa video externă:

camera video, tuner tv. Se poate seta din driverul sistemului de operare

Page 31: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 5 61

funcţile specifice unei camere video luminozitate, contrast, hue, nivel de saturaţie al culorii din opţiunea “Device Settings” .

Figura 5.21 Alegerea sursei video

Prin opţiunea “Format” se setează formatul video al fluxului codat

H.261 CIF(352x288), QCIF(176x144), SQCIF(128x96).

Figura 5.22 Alegerea formatului video

Din meniul Video/Opţiuni se poate introduce pasul de cuantizare folosit

la codare. El trebuie sa fie cuprins între 1 şi 31. Pasul ales este pasul cu care sunt cuantizaţi toţi coeficienţii rezultaţi în urma aplicării DCT cu excepţia coeficienţilor DC ai macroblocurilor codate intra care au pasul de cuantizare fixat la 8.

62 Comunicaţii multimedia – Laborator 5

Figura 5.23 Alegerea pasului de cuantizare

Decodorul H.261

Decodorul H.261 este o aplicaţie de vizualizare şi analiză a imaginilor video care sunt codate H.261, ce suportă funcţii de play, pauză, replay cadru cu cadru şi afişare a hărţii video.

Figura 5.24 H.261 Decodor

Din meniul “Fisier” se alege fişierul video comprimat H.261 care se

doreşte sa fie vizualizat, iar din meniul vizualizare se poate seta opţiunea “Afişează harta”, care în partea dreaptă a imaginii afişează o matrice în care secvenţa video codată este analizată şi cadru cu cadru în timp real.

Page 32: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 5 63

Figura 5.25 Harta video a imaginii

Macrobloc codat intra;

Macrobloc codat inter; Macrobloc codat inter cu vector de mişcare, săgeata indicând direcţia de mişcare a macoblocului; Macroblocul nu este codat, e păstrat din cadrul anterior.

64 Comunicaţii multimedia – Laborator 6

LABORATOR 6 Standardul MPEG

6.1 Standardul MPEG 1

MPEG-1 (Motion Picture Expert Group) a reuşit să realizeze o compresie a semnalului video la o rată de bit de aproximativ 1,5Mbps, aceasta asigurând o calitate acceptabilă. Dezideratul este, ca prin codarea semnalului video sursă, să se realizeze o reducere a spaţiului necesar pentru stocare şi a ratei de bit necesare pentru transmitere explorând atât redundanţele statistice cât şi pe cele subiective ce există în sau între cadre. De asemenea se doreşte a se coda un set minim de date folosind tehnicile de codare entropice, păstrându-se în acelaşi timp calitatea imaginilor originale.

Algoritmul de compresie MPEG-1 a fost dezvoltat avându-se în vedere atingerea unei compatibilităţi cu aplicaţiile JPEG şi H.261 (standardul CCITT H.216). Astfel metoda de compresie folosită la MPEG se aseamănă destul de mult cu cea de la JPEG. Acest lucru se poate observa şi din diagrama bloc a algoritmului de compresie MPEG video de mai jos:

Figura 6.1 Schema bloc a codorului MPEG S-au folosit notaţiile: DCT – Transformata Cosinus Discretă (Discrete Cosine Transform); Q – Blocul de Cuantizare (Quantizer); VLC – Codare Entropică de tip Huffman (Variable Length Coder); FM – Blocul de Memorare a Cadrelor (Frame Memory);

Video IN

ME FM

IDCT

1−Q

Q DCT VLC

Modul intercadru

Modul intracadru

Bit stream

Page 33: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 6 65

ME – Blocul de Estimare a Mişcării (Motion Estimator). Q-1 şi IDCT – operaţiile inverse cuantizării respectiv DCT

La intrarea codorului MPEG se introduce un semnal video format dintr-o succesiune de cadre video. Fiecare cadru este procesat separat fiind tratat ca o singură imagine statică. Operând asupra unui singur cadru codorul MPEG se află în modul intracadru. În acest mod de lucru un cadru este mai întîi transformat în domeniul frecvenţă folosind Transformata Cosinus Discretă apoi cuantizat, pentru ca în final rezultatul celor două operaţiuni să fie codat folosindu-se algoritmul de codare Huffman. Dezavantajul utilizării doar a acestui procedeu constă în faptul că deşi se realizează o compresie semnificativă prin simpla procesare a semnalului video de intrare ca o succesiune de imagini statice, folosind JPEG, acesta nu exploatează redundanţa temporală considerabilă prezentă în toate secvenţele video. Astfel mulţi dintre pixeli se vor schimba foarte puţin sau chiar de loc de la un cadru la celălalt .

Pentru modul de codare intercadru ,blocuri similare de pixeli, comune la două sau mai multe cadre succesive, sunt înlocuite cu un vector ce caracterizează mişcarea unuia dintre ele relativă la poziţia din cadrul curent pentru a ajunge în poziţia în care acesta apare în celelalte cadre. Principala problemă constă în modul de stabilire a ordinii cadrelor. Câteodată este eficient ca acel vector (pointer) să aibă drept referinţă un bloc din cadrul anterior, în timp ce în alte situaţii este mai convenabilă alegerea drept referinţă a unui bloc dintr-un cadru viitor.

În Figura 6.1 este ilustrată şi tehnica codării intercadru : după ce se realizează prelucrarea cu DCT şi cuantizarea (Q) unui cadru din semnalul video iniţial, acesta este supus unui proces invers constând din Q-1 şi IDCT. Astfel se poate obţine un cadru identic cu cel care ar fi obţinut de algoritmul de decompresie. Acesta va fi apoi stocat în FM şi utilizat la estimarea şi compensarea mişcării (ME) relativ la cadrele vecine. Conform unor studii efectuate de grupul MPEG, folosind procedeul de codare intercadru s-a obţinut o compresie de trei ori mai bună faţă de rezultatele utilizării doar a modului intracadru, lucru posibil doar prin exploatarea redundanţelor existente în secvenţele video.

Pentru a se crea suportul necesar utilizării cu succes a algoritmului de compresie pentru o gamă largă de aplicaţii, cei din grupul de cercetare MPEG au inclus câteva facilităţi cum ar fi:

• posibilitatea de a fi modificaţi de către utilizator parametrii de intrare – dimensiunea imaginii, numărul de cadre/secundă,etc;

• “random acess” – acces aleator în fluxul de date; • posibilităţi de derulare ”fast forward/reverse”,”reverse playback”; • posibilitatea de editare a stream-ului comprimat de biţi .

66 Comunicaţii multimedia – Laborator 6

Pentru MPEG-1 este prevăzut un set de parametrii recomandaţi cum ar fi: un număr minim de 720 pixeli per linie , un număr de 576 linii pentru fiecare imagine şi o rată minimă de 30 cadre/ secundă.

Prin acces aleator trebuie să fie posibil accesul în secvenţa cadrelor video în orice moment al acesteia. Acest lucru implică existenţa cadrelor de acces – cadre codate în modul intracadru, care pot fi decodate fără referinţă la alte cadre.

Opţiunea de derulare “Fast forward/reverse“ se referă la posibilitatea de a derula înainte sau înapoi secvenţa video. Rezultatul se poate afişa folosind cadrele de acces obţinând efectul de rapid înainte sau rapid înapoi .

Compensarea mişcării (Motion Compensation)

Ideea ce stă în spatele conceptului de compensare a mişcării este că o parte din imaginea dintr-un cadru va fi la fel sau oricum similară celei cu o mărime egală dintr-un cadru alăturat. Pentru MPEG sunt prevăzute două moduri de compensare a mişcării predicţia şi interpolarea. A) Predicţia

MPEG foloseşte în codare împărţirea imaginii în macroblocuri de 16x16 pixeli pentru luminanţă şi 8x8 pentru crominanţă spre deosebire de blocurile folosite la codarea JPEG ce au o mărime de doar 8x8 pixeli atât pentru luminanţă cât şi pentru crominanţă.

Figura 6.2 Structura unui macrobloc

Fiecare macrobloc conţine patru blocuri de luminanţă (Y1,Y2,Y3,Y4) şi

două blocuri de crominanţă (U,V). Formatul obţinut este în consecinţă 4:1:1. Prin folosirea predicţiei în algoritmii de codare MPEG se reduc redundanţele temporale existente între cadre, codându-se doar imaginile eroare de predicţie (este vorba de diferenţa între imaginile originale şi imaginile obţinute prin predicţie cu compensarea mişcării). Un cadru prelucrat cu ajutorul predicţiei este împărţit în macroblocuri, fiecare dintre acestea fiind codate separat. Codarea se face cu referinţă către un ‘anchor frame’ ce precede cadrul curent. Fiecare macrobloc din cadrul curent va fi reprezentat de un vector de mişcare. Acesta ne dă deplasamentul

Y4 Y3

Y2 Y1 U

V

Page 34: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 6 67

macroblocului din cadrul curent faţă de corespondentul său din cadrul adiacent (vezi Figura 6.3):

Figura 6.3 Compensarea mişcării

S-a considerat exemplul: fiecare cadru video este format din 64x64 pixeli grupaţi în 16 macroblocuri identice. Porţiunea colorată a cadrului curent reprezintă macroblocul folosit în compensarea mişcării (colţul stânga sus al său se află în poziţia (x=16, y=8). Perechea acestui bloc în cadrul precedent se află în poziţia (24,4). Săgeata din partea stângă a macroblocului reprezintă vectorul de mişcare care în acest caz este de coordonate (8,24). Observaţii:

1. Nu este necesar ca macroblocul corespondent din cadrul anterior să se afle la o distanţă mai mică de 16 pixeli.

2. Potrivirea nu se face faţă de un cadru video anterior ci mai degrabă faţă de un cadru ce a fost deja codat şi decodat deoarece decodorul nu are acces la cadrele video sursă ci doar la versiuni decodate ale cadrelor originale.

Determinând blocul corespondent din cadrul precedent algoritmul

MPEG înregistrează vectorul de mişcare şi eroarea de predicţie care este o matrice de 16x16 de difereţe între macroblocul curent în cadrul c şi macroblocul origine din cadrul r:

Bloc 16x16

(16,8)

(24,4)

(8,24)

Cadrul curent

Cadrul decodat viitor

Cadrul decodatanterior

68 Comunicaţii multimedia – Laborator 6

( , ) ( , ) [( , ) ]c c r rcE x y I x y I x y M= − +

În formula de mai sus ( , )cE x y reprezintă eroarea de predicţie; ( , )iI x y este valoarea pixelului de coordonate (x,y) în cadrul I iar ijM este vectorul de

mişcare pentru cadrul j asociat cadrului i. Matricea de predicţie a erorii va avea multe valori de zero. Aceasta va

fi codată folosind tehnica DCT urmată de cuantizare, obţinând o rată de compresie mai mare decât prin simpla codare a matricii originale.

Standardul MPEG nu impune un mod de realizare procedeului de potrivire a blocurilor. Uzual vectorul de mişcare pentru un macrobloc se obţine minimizând funcţia de cost, funcţie ce măsoara diferenţa dintre un macrobloc şi fiecare posibil corespondent al său. Acest lucru se poate exprima matematic folosind relaţia:

( , )

[ ( , ) (( , ) )]c rm M

x y B

MIN C I x y I x y m∈ ∈

− +∑

unde s-au folosit notaţiile: B = un macrobloc în cadrul curent Ic;

m= vectorul de deplasare având referinţa în cadrul de referinţă Ir; M=aria de căutare în cadrul de referinţă; C=funcţia de cost.

Valoarea lui m ce minimiza expresia de mai sus se foloseşte ca vector

de mişcare notat pentru acest bloc rcM . Aria de căutare poate acoperi doar mici porţiuni sau poate cuprinde întreaga arie a cadrului.

A. B.

Page 35: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 6 69

C. D.

Figura 6.4.(A) Cadrul de la momentul N; (B) Cadrul de la momentul N-1 folosit la predicţia conţinutului cadrului de la momentul N (s-au figurat şi vectorii de mişcare); (C) Eroarea de predicţie obţinută fără compensarea mişcării (toţi vectorii de mişcare sunt presupuşi nuli); (D) Imaginea care

trebuie codată, obţinută prin folosirea compensării mişcării. B) Interpolarea

Deşi codarea cu ajutorul predicţiei ne oferă o rată de compresie mai bună decăt cea rezultată în urma unei compresii JPEG efectuată cadru cu cadru, şi aceasta poate fi îmbunătăţită. Astfel MPEG permite codarea cadrelor video folosind două cadre de referinţă. Unul este considerat în cadrul precedent (aposteriori) iar celălat în cel viitor (apriori) faţă de cadrul curent. Această abordare poartă denumirea si de interpolare bidirecţională şi are ca efect o rată de compresie mai bună decât cea obţinută prin folosirea unui singur cadru de referinţă.

Pentru a întelege de ce interpolarea bidirecţională poate îmbunatăţi semnificativ rata de compresie considerăm o imagine care se mişcă în raport cu cadrul imagine la o rată de 1/2 pixeli per cadru. Încercând determinarea unui macrobloc în cadru actual bazându-ne pe cadrul imediat următor nu vom putea găsi nici un bloc care să se potrivească. În mod similar vom obţine acelaşi lucru procedând la fel şi în cazul următorului cadru. Totuşi o estimare a celei mai bune potriviri dintre cadrul precedent şi cel viitor ne va determina o predicţie exactă, astfel încât matricea de eroare va deveni nulă.

Figura 6.3 ilustrează tehnica folosită în interpolarea bidirecţională. Cadrul curent considerat a fi cadrul B este procesat în funcţie de cele două cadre de referinţă: cel precedent respectiv cel viitor. Fiecare macrobloc va putea fi codat folosind un bloc din cadrul ulterior (vorbim în acest caz de predicţie apriori), un bloc din cadrul anterior (predicţie aposteriori), sau câte un bloc din fiecare cadru referinţă (mediere) rezultând matricea de eroare minimă.

70 Comunicaţii multimedia – Laborator 6

În cazul interpolării bidirecţionale trebuie codată mai multă informaţie. O dată cu predicţia cadrelor o matrice diferenţă va rezulta şi apoi se va coda folosind DCT. În plus fiecare macrobloc va fi codat indicându-se modul de predicţie (apriori, aposteriori, prin mediere) şi folosind unul sau doi vectori de mişcare.

Ordonarea Cadrelor

În MPEG se definesc trei tipuri de cadre:

a) Cadre I (Intra-coded images): • Sunt codate fără referinţe la alte imagini. Un cadru I este tratat ca o

imagine fixă. • MPEG foloseşte codarea JPEG pentru aceste imagini. Totuşi, contrar

JPEG, compresia trebuie făcută în timp real. Rata de compresie a imaginilor I este mai mică cu MPEG.

• Cadrele I sunt punctele de acces aleator în fluxul MPEG. • Cadrele I folosesc 8x8 blocuri pentru a defini un macrobloc pe care se

calculează DCT. • Coeficienţii DC sunt codaţi DPCM. Diferenţe ale blocurilor succesive

sunt calculate şi transformate utilizând codarea cu lungime variabilă.

b) Cadre P (Predictive-coded frames): codarea se face folosind predicţia cu compensarea mişcării faţă de un cadru anterior I sau P, acesta fiind folosit ca referinţă pentru predicţii apriori;

c) Cadre B (Bi-directionally predictive coded frames): codarea se face

luând drept referinţă atât cadrul precedent cât şi pe următorul (vezi Interpolarea) ; nu se foloseşte ca referinţă pentru predicţie.

d) Cadre D (DC – coded frames)

• Sunt cadre codate intra. Ele pot fi folosite pentru derulare rapidă înainte sau înapoi.

• Numai parametrii DC ai DCT sunt codaţi, coeficienţii AC sunt neglijaţi.

• Cadrele D constau numai din componentele de joasă frecvenţă a imaginilor. Ele utilizează numai un tip de macro-bloc şi numai coeficienţii DC sunt codaţi.

• Derularea înainte sau înapoi se poate realiza şi cu cadre I. Pentru aceasta cadrele I trebuie să apară periodic în fluxul de date. Redarea înapoi însă necesită o cantitate imensă de stocare deoarece toate imaginile dintr-un grup trebuie decodate în modul forward şi stocate, după care redarea înapoi este posibilă.

Page 36: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 6 71

Frecvenţa relativă de apariţie a acestor cadre în interiorul unui flux

video este un parametru configurabil care trebuie însă să satisfacă câteva reguli.

În primul rând trebuie să satisfacă cerinţele pentru ‘acces aleator‘ şi căutare ‘fast forward/reverse’. Acestea determină o limitare asupra frecvenţei de apariţie a cadrelor I în sistemul codat considerat.

În al doilea rând trebuie să ţină seama de legătura strânsă ce există între complexitatea de calcul şi numărul de cadre B, astfel încât cu cât avem mai multe cadre B cu atât volumul de calcul va creşte.

În al treilea rând cadrele B nu pot fi procesate decât ţinând cont de cadrele I şi P deoarece un cadru B nu poate fi considerat referinţă pentru un alt cadru B. De aceea cu cât există mai multe cadre B cu atât va creşte distanţa medie dintre acesta (cadrul B) şi cadrele sale de referinţă şi cu atât va fi mai mică corelarea între cadrul B şi referinţe.

Regulile de codare sunt:

- fiecare cadru I este codat folosindu-se doar codarea intracadru; - fiecare cadru P este codat folosindu-se predicţia faţă de cel mai recent

cadru P sau I; - fiecare cadru B este codat folosindu-se cele mai apropiate cadre I sau P

(precedent şi viitor) Cadrele sunt organizate în grupuri de cadre. Fiecare grup este alcătuit

dintr-un singur cadru I urmat de un număr de cadre P şi B. Un cadru B nu poate fi decocodat până când cadrele de referinţă, cel precedent respectiv cel viitor nu au fost decodate. Organizarea fiecărui grup se face astfel încât fiecare cadru B să urmeze ambelor cadre de referinţă.

Pentru o mai bună înţelegere se consideră exemplul ilustrat în Figura 6.5. Se observă că primele şase cadre formează un grup. Modul de aranjare al acestora în interiorul grupului ţine cont de ceea ce s-a afirmat mai sus. Astfel pentru a realiza predicţia pentru cadrele B 2 şi 3, cadrul 4 va fi stocat dupa cadrul 1(cadru folosit pentru realizarea predicţiei apriori). Cadrele 5 si 6 sunt interschimbate din acelaşi motiv. Cadrul B notat cu 7 face parte din grupul următor deoarece este codat după cadrul I 8.

72 Comunicaţii multimedia – Laborator 6

Figura 6.5 Exemplu de organizare a cadrelor în timp

Decodorul efectuează operaţiile inverse codării: Se extrag şi se

decodează cuvintele codate entropic din stream-ul de biţi pentru a se obţine toţi coeficienţii DCT diferiţi de zero pentru fiecare cadru. Odată reconstruiţi toţi aceşti coeficienţi ce aparţin unui singur cadru (cu ajutorul Q-1) se aplică transformata IDCT obţinându-se valoarea pixelilor dintr-un cadru. Procesând întregul stream de biţi toate cadrele (imaginile) sunt decodate şi reconstruite.

6.2 Standardul MPEG 2

Standardul MPEG2 VIDEO (ISO/IEC 13818-2) a fost realizat pentru codarea

- în transmisiuni TV prin cablu/satelit. - în televiziunea de înaltă definiţie (HDTV). - în servicii video prin Internet (ATM).

Codarea video se face la o rată între 4 şi 9 Mbiţi/s. Codorul MPEG 2 permite codarea semnalului video întreţesut şi scalarea imaginii. Cerinţe principale:

• Compatibilitate cu semnalul video întreţesut (ITU-R 601). • Codarea la calitate bună la rate cuprinse între 4 şi 9 Mbiţi/s. • Acces aleator la comutarea canalelor, căutare şi derulare FF/FR folosind

punctele de acces din grupurile de imagini. • Permite codarea crominanţei şi la formate de rezoluţie mai mare 4:2:2 şi

4:4:4. • Codarea scalabilă video pentru aplicaţii care au cerinţe diferite de calitate a

semnalului video.

TIMP I I

1

B B B B P P

2 3 6 4 5 8 7

Predicţie Bidireţională

Predicţie apriori

Page 37: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 6 73

• Sistemul să suporte sincronizarea între fluxurile audio-video la redare/acces pentru fluxuri multiple.

Cerinţe suplimentare:

• Compatibilitate şi interoperabilitate cu MPEG1. • Sistemul să suporte codarea formatelor neîntreţesute şi întreţesute la

diferite rate de cadru. • Sistemul să suporte formate video la diferite rapoarte de aspect. • Încărcare minimă a sintaxei MPEG pentru includerea facilităţilor de mai

sus. • Codorul şi decodorul să aibă o complexitate rezonabilă. Facilităţi noi faţă de MPEG1:

• Suportă formatele 4:2:2 şi 4:4:4. • Imagini asociate cadrelor şi câmpurilor (la video întreţesut). • DCT adaptat pentru cadru/câmp. • Compensarea mişcării pentru cadru/câmp/duale. • Scanare alternativă a coeficienţilor DCT. • Tabel de codare variabilă (VLC) diferit pentru coeficienţii DCT. • Tabel de cuantizare neliniară – măreşte acurateţea cuantizării pentru valori

mici.

Figura 6.6 Formatele de codare luminanţă – crominanţă

74 Comunicaţii multimedia – Laborator 6

a) b) c) câmpul câmpul par impar par impar

timp timp timp

Figura 6.7 Scanarea a) întreţesută 4:1:1; b) întreţesută 4:2:2/4:4:4 şi c) progresivă

Codarea semnalului video

• Există două tipuri de imagini: imagini-cadru şi imagini-câmp • Compensarea mişcării se face în mai multe moduri:

- Predicţia între cadre în cazul imaginilor-cadru se face ca la MPEG1.

- Predicţia între câmpuri în cazul imaginilor-câmp: referinţă curent

Figura 6.8 Predicţia între câmpuri pentru imagini-câmp

Page 38: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 6 75

- Predicţia între câmpuri în cazul imaginilor-cadru:

Figura 6.9 Predicţia între câmpuri pentru imagini-cadru

- Predicţia dual-primă pentru cadrele P (se aplică atât imaginilor-

câmp cât imaginilor-cadre), rezultând 16x8 vectori de compensare a mişcării

referinţă curent

Figura 6.10 Predicţia dual primă

• Adaptarea DCT pentru cadre/câmpuri:

- Se organizează blocuri de 16x16 pixeli ca blocuri pe cadru sau blocuri pe câmpuri.

Macrobloc cadru

16x8 blocuri câmp

76 Comunicaţii multimedia – Laborator 6

blocuri pe cadru blocuri pe câmpuri

Figura 6.11 Împărţirea în blocuri

- Se calculează corelaţia pe direcţie verticală în ambele cazuri. - Se alege varianta care are corelaţie mai mare.

• Scanarea coeficienţilor DCT

a) b)

Figura 6.12 a) Scanare zig-zag a coeficienţilor DCT inter; b) Scanare alternată a coeficienţilor DCT intra

6.3 Compresia MPEG audio

Standardul MPEG audio este caracterizat de o complexitate ridicată a algoritmului, compresie mare a datelor, si calitate foarte buna a semnalului audio. Compresia este aplicabilă semnalelor audio in general, nu este adaptata numai semnalelor vocale. Reprezentarea digitală a datelor audio prezintă o serie de avantaje: imunitate sporită la zgomot, stabilitate în timp, şi reproductibilitate. De asemenea, permite o implementare eficientă a unor funcţii de prelucrare, cum ar fi mixarea, filtrarea, egalizarea, etc., cu ajutorul computerului. Conversia analog-digitală a semnalului audio se face prin eşantionare si cuantizare, fiecare eşantion fiind reprezentat printr-un cuvânt de cod binar (procedeu numit modulaţia impulsurilor în cod sau PCM). Astfel, pentru reprezentarea unei secunde de material stereo la calitate CD (frecvenţa de

Page 39: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 6 77

eşantionare 44,1 kHz şi cuantizare pe 16 biti) este nevoie de aproximativ 1,4 Mbiti.

44100 esantioane/s 16 biti/esantion 2 canale 1411200 biti/s× × =

Reducerea acestei rate ridicate de date se face prin compresie. Algoritmul MPEG/audio este primul standard international pentru compresia digitală a semnalului audio de înalta fidelitate. Deşi compresia MPEG/audio este foarte potrivită pentru aplicaţii audio de sine stătătoare, ea face parte din standardul de compresie combinat MPEG. Acesta conţine trei părţi: video, audio si sisteme, şi se adresează compresiei semnalelor video si audio sincronizate. Pana la ora actuala, au fost adoptate ca standarde trei versiuni MPEG audio, fiecare aducând îmbunătăţiri faţă de cel precedent. Iată cele trei versiuni MPEG/audio si câteva caracteristici: MPEG-1 audio:

• Suportă rate de eşantionare de 32, 44.1 sau 48 kHz; • Acceptă surse cu unul sau două canale audio; • Rate de bit acceptate: 32 – 224 kbiti/s pentru un canal; • Permite introducerea unui cod corector de erori (CRC); • Permite introducerea altor date decât cele audio in fluxul rezultant; • Oferă o alegere intre 3 niveluri de compresie (numite layere), pentru a

oferi posibilitatea de compromisuri între calitatea audio si complexitatea codec-ului: - Layer I: este cel mai simplu şi este potrivit pentru rate de peste

128 kbps pentru un canal. - Layer II: este de complexitate medie şi este destinat codării la rate

in jurul a 128 kbps pentru un canal. Este folosit in standardele Digital Audio Broadcasting (DAB), CD-Interactive (CD-I) si Video-CD.

- Layer III: este cel mai complex, dar oferă cea mai bună calitate pentru rate de 64 kbps pentru un canal. Este potrivit pentru transmisie prin ISDN, pentru arhive de muzica (format mp3), etc.

MPEG-2 audio:

• Este o extensie a standardului MPEG-1 audio pentru rate de eşantionare scăzute: 16, 22.5, 24 kHz, oferind o calitate mai bună pentru rate de bit sub 64 kbps mono.

78 Comunicaţii multimedia – Laborator 6

• Este compatibil cu MPEG-1 pentru codarea unor surse cu mai multe canale: 5 canale normale si unul pentru frecventele joase (5.1), care poate fi decodata si cu un decodor MPEG-1;

• Introduce o metodă nouă de compresie numita Advanced Audio Coding (AAC), care nu mai este compatibilă cu MPEG-1, deci nu poate fi decodată de un astfel de decodor. Caracteristicile AAC: calitate audio foarte bună la rate de 64 kbps pe un canal, suporta 48 de canale audio, 16 canale pentru frecvenţe joase, 16 canale pentru voce în mai multe limbi, 16 fluxuri de date. Blocurile codecului au fost îmbunătăţite, obtinându-se o îmbunătăţire a ratei de compresie cu 30% faţă de MPEG-1 Layer III.

• Foloseşte tot o structură cu 3 layere ca şi la MPEG-1; MPEG-4 audio:

• Destinat pentru o gamă largă de aplicaţii audio: - Compresia semnalului vocal: rate de 2-24 kbps, folosind metodele

HVXC (Harmonic Vector eXcitation Coding), si CELP (Code Excited Linear Prediction);

- Citirea textului dintr-un document (text-to-speech interface); - Compresia semnalului audio de înaltă fidelitate; - Sunet sintetic (muzică sintetizată gen MIDI); - Mixarea acestor tipuri diferite de semnal audio într-o singură

coloană sonoră; - Scalabilitatea fluxului de date audio: transmiterea cu rată variabilă

în funcţie de lărgimea de bandă a canalului folosit, prin degradarea calităţii audio;

Tehnici folosite in compresia MPEG audio

Standardul de compresie MPEG-1/audio realizează performanţe remarcabile prin exploatarea a doua caracteristici psihoacustice ale aparatului auditiv uman:

1. Benzile critice: Urechea internă are o reprezentare a spectrului semnalelor audio la o scară neliniară, sub forma unor benzi de frecvenţă numite benzi critice. Banda frecvenţelor audibile, care se întinde până la 20 kHz, este împărţită in 25 de benzi critice, ale căror lărgimi cresc cu frecvenţa. Cu alte cuvinte, aparatul auditiv poate fi modelat ca un banc de filtre trece bandă (un set de filtre în paralel), constând în 25 de benzi nedisjuncte, cu lărgimi începând de la mai puţin de 100 Hz pentru frecvenţe joase, si ajungând la 5 kHz pentru frecvenţe înalte.

Page 40: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 6 79

Tabelul 6.1 Nr. bandă Frecvenţa (Hz) Nr. bandă Frecvenţa (Hz)

0 50 14 1.970 1 95 15 2.340 2 140 16 2.720 3 235 17 3.280 4 330 18 3.840 5 420 19 4.690 6 560 20 5.440 7 660 21 6.375 8 800 22 7.690 9 940 23 9.375

10 1.125 24 11.625 11 1.265 25 15.375 12 1.500 26 20.250 13 1.735

(frecvenţele reprezinta limita superioară a benzii) 2. Mascarea auditivă: Este un fenomen numit şi mascarea

zgomotului, şi se manifestă astfel in domeniul frecvenţă: când un semnal de nivel mic si unul de nivel mare apar simultan si sunt destul de apropiate in frecvenţă, dacă semnalul mic se afla sub un prag de mascare, acesta nu se va auzi din cauza semnalului mai puternic. Acest fenomen este mai pronunţat când ambele semnale se află în aceeaşi bandă critică, şi mai putin observabil când acestea se află in benzi alăturate.

Figura 6.13 Mascarea auditivă

Figura 6.14 ilustrează definirea principalilor parametrii care descriu mascarea auditivă. Semnalul puternic se află în interiorul benzii critice. Semnalele mai slabe care se află sub pragul de mascare nu se aud. Pragul minim de mascare reprezintă pragul sub care toate sunetele din banda respectivă sunt mascate de semnalul puternic.

Frecvenţa

Am

plit

udin

e Semnalul puternic

Zona unde semnalele mai slabe sunt mascate

80 Comunicaţii multimedia – Laborator 6

Raportul semnal-mascare (SMR) reprezintă diferenţa dintre puterea semnalului puternic si pragul minim de mascare. Diferenţa dintre SMR şi SNR (raportul semnal zgomot datorat cuantizării cu R biti), reprezintă raportul zgomot-mascare (NMR = SMR – SNR). În interiorul unei benzi critice, zgomotul de cuantizare este inaudibil atâta timp cât NMR-ul corespunzător cuantizării este negativ. Astfel se poate reduce numărul de biţi ai cuantizorului până la limita NMR-ului.

Figura 6.14 Parametrii care descriu mascarea auditivă

Schema bloc a codecului MPEG-1/audio:

Figura 6.15 Codorul MPEG

Figura 6.15 Decodorul MPEG

Semnalul puternic

Pragul minim de mascare

Nivelul zgomotului de cuantizare

SMR

SNR

Banda critică

Pragul de mascare

Date audio digitale (PCM) Formatare flux

de biţi Cuantizor si

codor Bancul de filtre

Model psihoacustic

Date auxiliare

Date comprimate

Date audio digitale (PCM)

Bancul de filtre Reconstrucţie semnal pentru fiecare bandă

Despachetare flux de biţi

Date comprimate

Date auxiliare

Page 41: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 6 81

Bancul de filtre are rolul de a descompune semnalul audio in subbenzi. Aceasta descompunere este realizată cu diferite grade de complexitate în cele 3 layere. In Layer I, II si III, spectrul este împărţit în 32 de subbenzi de lărgime constantă, fiind astfel un compromis între eficienţa calculelor si performanţa perceptuală:

Figura 6.16 Descompunerea în subbenzi

Layer II este doar o îmbunătăţire a lui layer I, prin codarea datelor în

grupuri mai mari. Layer III foloseşte un algoritm mult mai complex, fiind proiectat să obţină rezoluţii în frecvenţă mai apropiate de modelul benzilor critice.

Modelul psihoacustic este elementul cheie al codorului. El are funcţia de a analiza conţinutul spectral al semnalului şi să calculeze SMR-ul pentru fiecare bandă. În urma acestei analize, cuantizorul decide cum să împartă numărul de biţi disponibili pentru fiecare bandă. Această alocare dinamică de biţi este realizată astfel încât să minimizeze audibilitatea zgomotului de cuantizare.

Unitatea de formatare biţi aranjează eşantioanele cuantizate într-un flux de biţi decodabili.

Decodorul execută operaţiile în sens invers, convertind datele comprimate într-un semnal audio standard.

6.4 Codorul MPEG (MEnc) în programul VcDemo

Opţiunile de compresie sunt prezentate în Figura 3.17. Există şase tab-uri cu următorii parametrii:

82 Comunicaţii multimedia – Laborator 6

Figura 6.17 Opţiuni de compresie pentru codorul MPEG

File: Permite alegerea numelui şi a formatului (MPEG-1

sau MPEG-2) . Rate: Permite setarea ratei de bit a fişierului comprimat, în

Mbiţi/secundă. GOP(Group of pictures): Permite alegerea câtorva succesiuni standard (nu

adaptiv) de cadre în fluxul comprimat. Motion: Permite selectarea deplasamentului maxim folosit în

compensarea mişcării. Format: Pentru formatul MPEG-2, se poate alege modul

progresiv sau modul întreţesut. Dacă se alege modul întreţesut, poziţia primului câmp trebuie precizată.

Field/Frame: Pentru modul întreţesut se poate îmbunătăţi rezultatul compresiei MPEG-2 prin setarea unor opţiuni suplimentare pentru codarea pe cadre şi câmpuri (semicadre).

Din fereastra text se obţin informaţiile cele mai utile cu privire la

codarea cadrului respectiv: rata de bit per cadru (exprimată în biţi/pixel), tipul cadrului (I/B/P) obţinut prin codare, felul în care a fost codat fiecare macrobloc al cadrului (afişând o matrice de litere conform poziţiei macroblocului în cadru). Observaţie: Acesta este un codor educaţional. Un codor MPEG profesionist permite mult mai multe setări, obţinând rezultate superioare. • Se alege „Open Image Sequence” din toolbar şi se deschide secvenţa

‘Suzie.yuv’. Se alege codorul MPEG din toolbar (MEnc).

Observaţie: Până la alegerea unui nume pentru secvenţa video de comprimat (Save as…), opţiunile din interfaţa codorului MPEG sunt inactive.

Page 42: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 6 83

Figura 6.18 Codorul MPEG

• Se aleg (de exemplu) opţiunile: (File) Save as Suzie.mpg / Mpeg1 /(Rate)

1.15Mb/s /(Gop) IBBPBB / (Motion) 15. Codarea începe prin confirmarea opţiunilor (Apply):

Figura 6.19 Alegerea deplasamentului maxim

Observaţie: Interfaţa codorului arată cadrul care tocmai a fost codat şi o fereastră text cu date despre compresia cadrului şi a macroblocurilor sale. Codarea poate fi întreruptă/reluată în orice moment prin apăsarea Spacebar-ului.

Figura 6.20 Informaţii din fereastra text

84 Comunicaţii multimedia – Laborator 6

Semnificaţia literelor este următoarea:

• S – (macrobloc) ignorat; • I – codat intra; • 0 – obţinut prin predicţie apriori (forward) fără compensarea mişcării ; • F - obţinut prin predicţie apriori (forward) a cadrului; • f - obţinut prin predicţie apriori (forward) a câmpului(MPEG-2

întreţesut); • p - obţinut prin predicţie spaţială şi temporală ; • B - obţinut prin predicţie aposteriori (backward) a cadrului; • b - obţinut prin predicţie aposteriori (backward) a câmpului; • D - obţinut prin interpolare pe cadre; • d- obţinut prin interpolare pe câmpuri;

• Se întrerupe de mai multe ori compresia. Se notează care sunt cele mai

utilizate tipuri de macroblocuri în codare (cele obţinute prin interpolare, cele obţinute prin predicţie etc).

• Se reia codarea selectând şi alte opţiuni. Observaţie: Codorul MPEG al programului VCDemo nu introduce în fluxul-ul comprimat informaţii de sistem (timing), în consecinţă pentru vizualizarea secvenţei nu se poate folosi Windows Media Player-ul, ci de exemplu decoderul MPEG al VCDemo.

6.5 Decodorul MPEG (MDec) în programul VcDemo

Opţiunile de compresie sunt prezentate în Figura 6.21. Există cinci tab-uri cu următorii parametrii:

Figura 6.21 Opţiuni de compresie pentru codorul MPEG

Operation: Permite setarea a ceea ce va fi afişat prin decodare:

• decoded frames - decodare normală

Page 43: Indrumar Cm final v4 - comm.pub.ro Cm.pdf · Comunica ţ ii multimedia – Laborator 1 5 Figura 1.3 Op ţ iuni de compresie pentru decimare Factor: Seteaz ă factorul de decimare.

Comunicaţii multimedia – Laborator 6 85

• frame prediction – cadrele obţinute doar prin predicţie. Se poate astfel evalua oarecum calitatea predicţiei (erorile predicţiei se propagă);

• coded difference – cadrele diferenţă faţă de predicţie. Permite o evaluare mai precisă a calităţii predicţiei şi a numărului de macroblocuri codate intra (asupra cărora nu s-au făcut predicţii).

Display: Permite afişarea alb-negru sau color a secvenţei decodate, cu sau fără suprapunerea vectorilor de mişcare, cu sau fără includerea cadrelor de tip B (pentru a necesita mai puţină putere de calcul);

Video: Permite decodarea pas cu pas sau automată; Save...: Permite salvarea secvenţei decodate în format YUV.

Decodorul VCDemo permite reconstituirea secvenţelor de imagini comprimate MPEG-1 sau MPEG-2.

Fereastra text a interfeţei conţine informaţii despre dimensiunea cadrelor din secvenţă, rata de bit a acesteia, numărul de cadre/secundă, dimensiunea VideoBuffer-ului folosit la decodare, tipul compresiei secvenţei (MPEG-1 sau 2), tipul cadrelor ce se succed (I/P/B), etc.

• Se încarcă secvenţa MPEG Mobile.mpg sau Bike.mpg.

Figura 6.22 deschiderea fişierului MPEG

• Se alege afişarea decoded frames cu suprapunerea vectorilor de mişcare şi

decodare pas cu pas. Ca şi până acum decodarea începe prin selectarea Apply. Decodarea poate fi întreruptă prin selectarea No în fereastra de dialog care apare. Selectarea Cancel are drept rezultat continuarea decodării în mod automat.

86 Comunicaţii multimedia – Laborator 6

Figura 6.23 Informaţiile din caseta text

• Se alege afişarea frame prediction. Ce se poate spune despre calitatea predicţiei?

• Se alege afişarea coded difference. Ce se poate spune despre numărul de macroblocuri care necesită o codare de tip intra?

• Se reia decodarea şi pentru alte secvenţe, urmărind cum depinde calitatea predicţiei de dinamismul secvenţei.

6.6 Exerciţii 1. Cum se poate reduce consumul de biţi pentru benzile de frecvenţe înalte,

care nu sunt importante atunci când se urmăreşte buna compresie şi nu calitatea (ex: rate de mai puţin de 112 kbps)?

2. Cum trebuie să fie materialul audio original pentru o compresie bună: înregistrare de calitate proastă, cu zgomot, sau sunet clar ?

3. Codorul MPEG afişează cadrul care tocmai a fost prelucrat. Explicaţi de ce secvenţa afişată nu respectă succesiunea temporală normală.

4. Explicaţi de ce secvenţa Suzie.yuv ar fi putut fi comprimată cu performanţe asemănătoare şi conform standardului H.261.

5. Comparaţi rezultatele obţinute prin transmiterea cadrelor diferenţă de imagine fără compensarea mişcării cu cele obţinute prin compensarea mişcării. În ce condiţii se obţine o îmbunătăţire semnificativă?

6. La decodarea secvenţei Mobile.mpg prima coloană de macroblocuri (în stânga imaginii) conţine aproape în exclusivitate macroblocuri codate intra (fără predicţie). Explicaţi de ce.


Recommended