indrumar cm final2 - erasmus pulse · dimensiuni puteri ale lui 2. o alegere bunăar fi o imagine...

89
Comunicaţii multimedia Laborator 1 1 LABORATOR 1 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 complexi) 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 marime 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

Upload: others

Post on 01-Feb-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Comunicaţii multimedia – Laborator 1 1

LABORATOR 1

1.1 Programul VcDemo

1.1.1 Introducere

VcDemo este un program de învăţare a tehnicilor de compresie aimaginilor şi de compresie video.

Scopul programului este de a face posibilă experimentarea cu diferiţialgoritmi de compresie (mai mult sau mai puţin complexi) fără a avea învedere implementarea lor propriu-zisă. Din această cauză programul estebazat pe meniuri de dialog şi permite utilizatorului să experimenteze cudiferiţi parametrii specifici operaţiei de compresie.

Pe de o parte, vizualizarea rezultatelor de compresie a imaginilorajută la înţelegerea performanţelor unui anumit algoritm de compresie, iarpe de altă parte rezultatele stimulează o modalitate de rezolvare aproblemei. O modalitate efectivă de a lucra cu VcDemo este de a-ţi punetot 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 vederevizual cât şi numeric”.

1.1.2 Folosirea programului

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

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

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

După încărcarea imaginii meniul de opţiuni şi butoanele specificefiecărui tip de compresie devin active. Dacă unele dintre opţiunile decompresie 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 vaproduce apariţia meniului cu parametrii de compresie. Meniul esteîntotdeauna poziţionat în partea dreaptă (vezi Figura 1.1). După apăsareabutonului „Apply” va începe compresia folosind setul curent de parametrii.

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

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

N

i

M

j

jiXjiYNM

er1 1

2)],(),([1

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ă acalităţii imaginii în funcţie de PSNR:

PSNR Calitate

> 40dB Foarte bună

30 – 40dB Bună

< 30dB Slabă

Comunicaţii multimedia – Laborator 1 3

Aceste rezultate sunt salvate pentru fiecare imagine comprimată afişată înspaţiul de lucru şi pot fi obţinute apăsând clic-dreapta pe o imagine iar apoiselectând „Image Information”.

Cea mai simplă metodă de a închide toate meniurile şi imaginileobţ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 şisuccesiuni 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 (RedGreen 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ţă trebuiesă existe un fişier header cu acelaşi nume. De exemplu

...\adir\secv.yuvconţine date YUV cu format descris în secv.hdr. Secvenţe doar deluminanţă 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ştelungimea acestei secvenţe. Pentru a indica programului că există osecvenţă imag, imaginile trebuie organizate după cum urmează:

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

etcProgramul caută fişiere cu extensia *.seq şi după selectare va încărcaaceastă imagine ca prima imagine a secvenţei. De aceea imag.seq trebuie săfie identică cu imag1.bmp (o copie cu extensie diferită). Toate celelaltecadre vor fi încărcate din subdirectorul imag, până când următoarea

4 Comunicaţii multimedia – Laborator 1

imagine nu mai poate fi găsită şi programul realizează că s-a ajuns la ultimaimagine.

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. Seva afişa doar primul cadru. Se pot apoi activa modulele programului carelucrează cu secvenţe de imagini.

Folosirea secvenţelor comprimate MPEG

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

Secvenţele MPEG pot fi deschise selectând „File/Open MPEGStream”. 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 firedimensionată ş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 imaginiicu factorul de decimare M, ceea ce corespunde unei scăderi substanţiale acalităţii. Decimarea cu un factor M este echivalentă cu reeşantionareaimaginii cu o frecvenţă de eşantionare de M ori mai mică.

Pentru evitarea fenomenului de aliere spectrală înainteadecimatorului 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:

Comunicaţii multimedia – Laborator 1 5

Figura 1.3 Opţiuni de compresie pentru decimare

Factor: Setează factorul de decimare. Imaginea decimată poate fivizualizată sub forma sa decimată, adică de dimensiune maimică, sau poate fi mărită până la dimensiunea imaginiioriginale folosind replicarea pixelilor.

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

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

1.2.3 Exerciţii

1. Pentru imaginea „Build512B.bmp” vizualizaţi spectrul. ComponentaDC a imaginii este în centrul spectrului. Decimaţi imaginea cu diferiţifactori. Cum se modifică spectrul?

2. Decimaţi cu factorul 4, fără antialiere şi cu un filtru anti-aliere delungime 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)

3.1 Aspecte teoretice

Metoda de compresie PCM implică realizarea următoarelor operaţii:1. eşantionarea cu frecvenţa de eşantionare ee Tf 1

2. cuantizarea uniformă (cu pas constant de cuantizare) sau neuniformă(cu pas variabil de cuantizare), cu pM 2 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 decuantizare 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)

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). Esteaplicat un cuantizor uniform pentru o funcţie de densitatede probabilitate uniformă.

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

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

1.3.3 Exerciţii

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

2. Adăugaţi dither la imagine înaintea codării PCM. Reduceţi numărul debiţ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 înconsiderare numai evaluările numerice?

8 Comunicaţii multimedia – Laborator 1

3. Utilizând opţiunea „Subtract Dither” observaţi ce fenomene apar? Careeste 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 debit. Explicaţi ce se observă.

5. Desenaţi variaţia raportului semnal-zgomot funcţie de numărul de biţipe 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 compresiedenumită codare predictivă, tehnică prin care informaţia deja transmisăeste folosită pentru a prezice valori viitoare, diferenţa dintre ele fiindcodată.

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

Etapele codării DPCM:

1. Prezicerea valorii pixelului curent ),( jix din valorile pixelilor

adiacenţi ),1( jix , )1,1( jix , )1,( jix ...

2. Calculul diferenţei (eroarea de predicţie) între valoarea curentă şivaloarea prezisă: ),(ˆ),(),( jixjixjix

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

Pentru predicţie se poate folosi:

- PCM: ˆ( ) 0x n 0),(ˆ jix

- Simpla diferenţă: ),1(),(ˆ jixjix

- Media a doi pixeli adiacenţi:2

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

jixjixjix

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

Predictor Memorie

Q VLC

),( jix ),( jix ),( jixq

),(~ jix),(ˆ jix

00010100101

Figura 1.7 Codorul DPCM

Comunicaţii multimedia – Laborator 1 9

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

),( jix : semnalul eşantionat de intrare;

),( jix : diferenţa dintre valoarea curentă şi valoarea calculată;

),( jixq : eroare de predicţie cuantificată;

),(ˆ jix : valoarea predicţiei;

),(~ jix : 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:

czbzazjix 321),(ˆ ,

unde 1z , 2z , 3z sunt coeficienţi deponderare.

Pentru exemplul dat, ),( jix este valoarea pixelului curent, ),(ˆ jix se

calculează ca o expresie liniară (ponderată) a p pixeli anteriori pixelului

curent (în cazul nostru, 3 pixeli, a, b şi c), ),( jix este imaginea derivată,

obţinută ca diferenţa dintre pixelul curent şi pixelii anteriori. În procesul depredicţie, imaginea originală este pierdută, şi puitem avea acces doar la

valoarea calculată, ),(~ jix , 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).

Direcţia deparcurgere

Pixelul curent

10 Comunicaţii multimedia – Laborator 1

1.4.2 Opţiuni de compresie

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

Figura 1.9 Opţiunile de compresie pentru compresia DPCM

Model: Pot fi folosite 4 modele diferite de predicţie. Diferenţeleprincipale sunt între modelel din stânga (predicţie 1-Dverticală) şi celelalte trei (predicţii 2-D).

Bit Rate: Se selectează rata de bit DPCM (doar numere întregi). Esteaplicat un cuantizor Lloyd-Max optimizat pentru o funcţiede densitate de probabilitate de tip Laplacian. În caseta detext va fi afişat un estimat al ratei de bit propriu-zise înurma codării VLC (Huffmann). Acest număr ar trebuifolosit 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 imparde nivele.

Errors: Se permite adăugarea înaintea decodării a unui număraleator de erori de bit în fluxul codat. Astfel se pot vedeaefectele erorilor (simple) de canal. Pot fi selectate diferiterate de erori de bit.

Comunicaţii multimedia – Laborator 1 11

Fereastra Prediction Error (eroare de predicţie):În această fereastră este reprezentată diferenţa de predicţie dininteriorul buclei DPCM. Valorile nule sunt reprezentate în gri, iarvalorile pozitive sau negative sunt reprezentate mai deschis sau maiînchis decât valoarea de gri generală. Diferenţa de predicţie estescalată pentru vizibilitate maximă.

1.4.3 Exerciţii

1. Alegeţi imaginea de test „Lena256B.bmp”. Se alege primul model depredicţ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ţiimaginile rezultate.

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

12 Comunicaţii multimedia – Laborator 2

LABORATOR 2

2.1. Codarea în subbenzi (SBC)

2.1.1 Aspecte teoretice

Să presupunem că un semnal are cea mai mare parte a energieiconcentrate î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 defrecvenţă î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 filtretrece banda şi au caracteristicile:

Figura 2.2 Caracteristica filtrelor de descompunere

Prin decimare se păstrează numărul de eşantioane constant şi serepartizează eşantioanele pe subbenzi. Pentru primul semnal CODEC 1va aloca un anumit număr de biţi (de obicei tot atâţia cât erau şi înimaginea originală). Deoarece energia conţinută în al doilea semnal estemai mică CODEC 2 poate aloca mai puţini biţi.

H1(z) CODEC 1 MM F1(z)

H2(z) CODEC 2 MM F2(z)

HM(z) CODEC M MM FM(z)

+

Comunicaţii multimedia – Laborator 2 13

Codorul şi decodorul por fi de tip PCM, DPCM, DCT (DiscreteCosinus 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 fiecaresubbandă, în funcţie de caracteristicile semnalului în acea subbandă.Pentru aceasta se folosesc filtre de analiză pentru fiecare subbandă.

1.2.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 însubbenzi. Este posibilă alegerea a 6 modele diferite dedescompunere. 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 deJohnson.

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 poatealege între codarea PCM sau DPCM. Cuantizorul folositpentru fiecare subbandă depinde de funcţia de densitate deprobabilitate selectată aici. Valoarea c reprezintă

14 Comunicaţii multimedia – Laborator 2

parametrul de formă a funcţiei de densitate de probabilitate

de tip Gaussian generalizată )exp()(c

bxaxp :

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

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

Bitrate: Pot fi alese diferite rate de bit. Ratele de bit sunt date, darnu este esenţial pentru compresia în subbenzi, deoareceprin procedura de alocare a biţilor poate fi obţinută oricerată de bit (după codare) dorită. În mod normal la ieşireacuantizorilor 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 bitaleatoare in fluxul de bit codat. Astfel se pot vedea efecteleerorilor (simple) de canal. Pot fi selectate diferite rate deerori de bit. Erorile de bit pot fi introduse doar dacăcodarea entropică la ieşirea cuantizoarelor a fostdezactivată.

Subbenzile originale şi comprimateSubbenzile 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 descompunerealeasă. Subbanda de frecvenţă joasă este arătată în colţul din stângasus, iar subbenzile de frecvenţă crescătoare în dreapta jos.Subbenzile sunt scalate pentru a se putea vedea cât mai clarinformaţ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ă asubbenzilor poate fi găsită în fereastra de text.

Comunicaţii multimedia – Laborator 2 15

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

Figura 2.5 Subbenzile originală şi comprimată. Subbenzile sunt scalatepentru vizibilitate maximă

2.1.3 Exerciţii

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

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

3. Selectaţi un filtru cu 16 coeficienţi, o descompunere pe 28 subbenzi şialegeţi compresia PCM pentru toate subbenzile. Alegeţi o valoareoptimă 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 alsubbenzilor, precum şi un anumit parametru c. Variaţi numărul desubbenzi folosite în descompunere precum şi tipul filtrelor. Cumvariază SNR funcţie de rata de bit?

16 Comunicaţii multimedia – Laborator 2

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 Discetă 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 perceputede 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, TransformataCosinus Discretă este dată de:

7 7

0 0

2 1 2 1cos cos

16 16mn m n yx

x y

x m y nC k k I

unde

1, pentru , 0

2 2,1

, în rest2

m n

m n

k 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 numesccoeficienţi AC şi reprezintă frecvenţele spaţiale orizontale şi verticale dinbloc.

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

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

7 7

0 0

2 1 2 1cos cos

16 16xy u v vu

u v

x u y vI k k C

unde

1, pentru , 0

2 2,1

, în rest2

u v

u v

k k

Comunicaţii multimedia – Laborator 2 17

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 secalculează Transformata DCT (2x2, 4x4, 8x8, 16x16).Cuantizarea coeficienţilor DCT poate fi oprită pentru amăsura calitatea Transformatei DCT Directă şi Inversă.

Coefs: Aici poate fi selectat tipul de cuantizare a coeficienţilorDCT. Coeficientul DC (coeficientul 1) poate fi codatindependent de coeficienţii DCT de frecvenţe mai mari.Se poate alege între codarea PCM şi DPCM. Cuantizorulfolosit pentru fiecare din coeficienţii DCT depinde defuncţia densitate de probabilitate aleasă. Valoarea creprezintă parametrul de formă a funcţiei de densitate de

probabilitate de tip Gaussia generalizată )exp()(c

bxaxp .

Dacă se alege DPCM, atunci poate fi selectat şi modelulde predicţie DPCM. Coeficienţii DCT cu acelaşi index(proveniţi din blocuri DCT diferite) sunt toţi cuantizaţifolosind acelaşi cuantizor.

Bitrate: Pot fi alese diferite rate de bit. Ratele de bit sunt date, darnu este esenţial pentru compresia folosind DCT, deoareceprin procedura de alocare a biţilor poate fi obţinută oricerată de bit (după codare) dorită. În mod normal, la ieşireacuantizorilor 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.

18 Comunicaţii multimedia – Laborator 2

Errors: Se permite adăugarea înaintea decodării a unor erori debit aleatoare in fluxul de bit codat. Astfel se pot vedeaefectele erorilor (simple) de canal. Pot fi selectate diferiterate de erori de bit. Erorile de bit pot fi introduse doardacă codarea entropică la ieşirea cuantizoarelor a fostdezactivată.

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

Ca o coleţie de coeficienţi DCT. În acest cazcoeficienţii DCT cu acelaşi index din toateblocurile DCT formează un singur set. Acesteseturi de coeficienţi sunt ca şi subbenzile încodarea pe subbenzi şi permit înţelegerea uşoară arezultatului alocării de biţi.

Ca blocuri DCT la locaţia spaţială corectă. În acestcaz coeficienţii DCT sunt reprezentaţi ca nişteblocuri NxN care se află la poziţia spaţialăcorespunzătoare celor NxN pixeli, pentru care suntcalculaţi aceşti coeficienţi. Din motive devizibilitate coeficienţii DCT sunt scalaţi. Acestmod de afişare explică conţinutul de frecvenţelocale ale unei imagini şi – după alocarea biţilor –arată ce părţi ale imaginii sunt greu sau uşor decomprimat.

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

După cuantizare şi codare coeficienţii DCT sunt transmişe şidecodaţi la receptor. Coeficienţii DCT cuantizaţi sunt afişaţiimediat sub fereastra cu coeficienţii DCT originali (vezi Figura 2.7,imaginea din stânga). Coeficienţii DCT care au primit zero biţidupă 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ţiiDCT au fost scalaţi pentru vizibilitate maximă. Efectele erorilor decanal sunt de asemenea vizibile în coeficienţii DCT individuali.

Comunicaţii multimedia – Laborator 2 19

Coeficienţii DCT cuantizaţi sunt organizaţi în funcţie de modul deDisplay selectat. Imaginea din dreapta din Figura 2.7 aratăcoeficienţii DCT cuantizaţi dacă opţiunea DCT Blocks esteselectată.

Figura 2.7 Coeficienţi DCT compresaţi (scalaţi pentru vizibilitatemaximă) 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 estetransformată în coeficienţi DCT. Verificaţi calitatea imaginiireconstruite 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 şicompresie PCM pentru toţi coeficienţii DCT. Alegeţi o valoarerezonabilă pentru parametrul c. Desenaţi două curbe SNR - număr debpp, 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 ladiferenţele dintre numărul de bpp selectat, cel prezis şi cel rezultat înurma 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 PCMpentru restul de coeficienţi.Ce câştig de performanţe se obţine utilizând compresia adiţionalăDPCM?

20 Comunicaţii multimedia – Laborator 2

5. Repetaţi punctul (3) pentru imaginea “Noise256B.bmp”. Observaţivarianţ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ândcompresia coeficienţilor DCT fixă (de exemplu, utilizând DPCMpentru primul coeficient DCT şi PCM pentru restul coeficienţilor, unmodel de predicţie fixat şi un parametru c fixat).

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

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

2.3. Codarea JPEG de bază

2.3.1 Aspecte teoretice

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

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

În Tabelul 2.1 este arătat modul de evaluare a calităţii imaginiidecompresate:

Tabelul 2.1Compresie 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 detoate implementările JPEG:

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

Comunicaţii multimedia – Laborator 2 21

- coeficienţii AC sunt codaţi Huffman;

Codorul JPEG

Figura 2.8 Codorul JPEG

Decodorul JPEG

Figura 2.9 Decodorul JPEG

Pixelii tuturor componentelor unei imagini sunt codate cu acelaşinumăr de biţi: modul de codare JPEG fără pierderi utilizează 8 sau 12 biţiper 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 2.10 Împărţirea în unităţi de date

Bloc deimagine

8x8

diferenţa DC

coeficienţii AC

Imaginea

reconstruită

diferenţa DC

coeficienţii AC

22 Comunicaţii multimedia – Laborator 2

Pregătirea imaginii

Procesarea unităţilor datelor se poate face:

componentă cu componentă, şi parcurse de la stânga la dreapta, şide sus în jos. Acest mod este cunoscut sub numele de procesareneîntreţesută (vezi Figura 2.11a). Utilizând acest mod pentru oimagine 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.

prin procesare întreţesută (vezi Figura 2.11b), la care seprocesează pentru un bloc toate componentele la rând, iar apoi setrece la blocul următor

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

Figura 2.11 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 8x8pixeli. Pentru astfel de bloc, DCT este dată de:

7 7

0 0

2 1 2 1cos cos

16 16mn m n yx

x y

x m y nC k k I

unde

1, pentru , 0

2 2,1

, în rest2

m n

m n

k k

Cuantizarea şi codarea coeficienţilor DCT

Coeficientul DC este puternic corelat pentru toate blocurile deimagine.

Coeficienţii DC din fiecare bloc sunt codaţi DPCM (diferenţa dintrecoeficienţii DC din blocuri succesive).

Comunicaţii multimedia – Laborator 2 23

Figura 2.12 Cuantizarea şi codarea coeficienţilor DC

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

Figura 2.13 Ordinea de procesare a coeficienţilor DCT

Rezultatul este un şir de biţi ce are o caracteristică: în el se găsescsubşiruri de biţi de aceeaşi valoare (numai de 0 sau numai de 1), decide 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 deaproximativ 2.

2.3.2 Opţiuni de compresie

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

Bloci-1 Bloci

DCi-1 DCi

DIFF= DCi-DCi-1

24 Comunicaţii multimedia – Laborator 2

Figura 2.14 Opţiunile de compresie pentru compresia JPEG

Bitrate: Aici se poate seta factorul de calitate Q al JPEG. Prinselectarea factorului de calitate, rata de bit este definităimplicit, dar aceasta nu este cunoscută dinainte. În loculsetării factorului de calitate poate fi setată rata de bit.Calitatea corespunzătoare acestei rate de bit va fideterminată printr-o simplă procedură de căutare.Factorul de calitate rezultant apare în fereastra de text.

Quant: Cuantizarea coeficienţilor DCT este realizată folosindcuantizorii JPEG standard, care pot oricum fi influenţaţide selectarea unei matrici specifice de cuantizare sau denormare. Matricea de normare poate fi selectată aici.Opţiunile sunt:

Matricea de normare JPEG standard pentruinformaţia de luminanţă

Matricea de normare JPEG standard pentruinformaţia de cromonanţă

O matrice de normare cu acelaşi coeficient denormare (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 defrecvenţă mare decât celor de frecvenţe mici.Această matrice a fost adăugată doar pentru scopurieducaţionale şi nu va fi niciodată utilizată înpractică.

Comunicaţii multimedia – Laborator 2 25

De remarcat că la JPEG atât factorul de calitate cât şiSNR-ul variază dacă se alege o altă matrice de normare.

Factorul de calitate selectat de către utilizator şi matriceade normare ),( vuN sunt folosiţi după cum urmează pentru

a cuantiza coeficienţii DCT ),( vuF :

),(

),(),(*

vuNQ

vuFNINTvuF

unde valoarea minimă a lui ),( vuNQ este 1 şi NINT este

aproximarea la cel mai apropiat integer. Q este legat de

factorul de calitate Q selectat de utilizator în modulurmător:

Figura 2.15 Dependenţa )(QfQ

Huffman: Aici pot fi selectate diferite tabele de codare entropică,adică fără codare entropică (de exemplu codarea culungime fixă) pentru coeficienţii DCT, codarea standardVLC, sau un tabel VLC optimizat pentru imagineaconsiderată.

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. Astfelcodurile VLC, informaţia din header sau alte informaţiiimportante pot fi alterate. Pentru a bloca efectul erorilorde decodare VLC, care se înrăutăţesc progresiv, se potintroduce markeri în fluxul de biţi JPEG. Periodicitateaacestor markeri poate fi setată aici. De observat că, dacăse introduc mai mulţi markeri, rata de bit generală vacreş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ăraleator de erori de bit în fluxul codat. Astfel se pot vedea

26 Comunicaţii multimedia – Laborator 2

efectele erorilor (simple) de canal. Pot fi selectate diferiterate de erori de bit. Erorile de bit pot eventual corupeinformaţii cruciale cum ar fi informaţia din header(dimensiunea imaginii, tabelele VLC). În cazul în careerorile 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 JPEGcomprimate, folosind protocolul JFIF pentru headere. Fişierulpoate fi vizualizat cu orice aplicaţie de editare de imagini.

Vizualizarea coeficienţilor DCT:Modulul JPEG nu arată coeficienţii (cuantizaţi) DCT. Pentru a-ivizualiza, folosiţi opţiunea „Set as start image” pe imaginea JPEGdecomprimată. Apoi rulaţi modulul de compresie JPEG pentruaceastă imagine, folosind blocuri DCT 8x8 şi debifând opţiunea decodare a coeficienţilor DCT. Atunci vor fi afişaţi coeficienţii DCTcalculaţi din imaginea JPEG comprimată. Oricare din cele douămoduri de afişare sunt instructive pentru studiu. Figura 2.16 aratăun exemplu:

Figura 2.16 Coeficienţi DCT comprimaţi folosind JPEG (scalaţi pentruvizibilitate maximă)

Comunicaţii multimedia – Laborator 2 27

2.3.3 Exerciţii

1. Încărcaţi imaginea “Lena256B.bmp”. Utilizaţi matricea standard denormalizare a luminanţei. Desenaţi trei grafice SNR-număr de bpp, câteunul pentru fiecare mod de codare entropică ales. Ce SNR suplimentarne oferă codarea entropică? Pe aceleaşi grafice, desenaţi caracteristicaCalitate (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 locde matricea de normare uniform distribuită.

3. Comparaţi cuantizarea coeficienţilor DCT în codarea JPEG cu cearezultată 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 JPEGdecodate.

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

6. Examinaţi consecinţele introducerii biţilor de eroare asupra compresieiJPEG, la diferite valori ale probabilităţilor.

28 Comunicaţii multimedia – Laborator 3

LABORATOR 3

3.1. Codarea JPEG 2000

3.1.1 Noţiuni teoretice

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

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

Paşii algoritmului de codare sunt aceeaşi ca şi pentru standardulJPEG clasic şi sunt ilustraţi în Figura 3.1:

Figura 3.1 Schema algoritmului de codare

Pregătirea imaginii

Conform standardului JPEG2000 pregătirea imaginii este compusă dinurmătoarii paşi (vezi Figura 3.2):

- partiţionarea imaginii în cadre

- ajustarea nivelului datelor

- o transformare color ireversibilă

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

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

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

Pregătireimagine

Transf.WaveletDiscretă

Cuantizare Codare

Controlulfluxului

Împachetaredate

Imagineoriginală

Imaginecomprimată

Comunicaţii multimedia – Laborator 3 29

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

Figura 3.2 Etapele pregătirii imaginii

Aplicarea Transformatei Wavelet

Transformata Wavelet are expresia:

dtttfc kjkj

)()( ,,

unde kjc , sunt coeficienţii Wavelet discreţi iar )(, tkj sunt funcţiile de

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

)2(2)( 2, ktt j

j

kj ,

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

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

Partiţionareimagine

Ajustarenivel

Transformarecolor

Pregătireimagine

I II

III IV

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

nm0~

nm0

30 Comunicaţii multimedia – Laborator 3

Figura 3.3 Funcţia Wavelet Daubechies

Standardul aplică Transformata Wavelet pe fiecare cadru al imaginiicu ajutorul algoritmului piramidal reprezentat în Figura 3.4:

Figura 3.4 Algoritmul piramidal de aplicare a Transformatei Wavelet

Algoritmul realizează descompunerea Wavelet ortogonală asemnalului discret fP d

j 12 la rezoluţia 12 j în semnalul fP dj2

numit

aproximarea discretă a lui tf la rezoluţia j2 şi în semnalul numit

detaliu discret fQdj2

a lui f(t) la rezoluţiaj2 .

Imaginea fiind un semnal bidimendional se aplică TransformataWavelet pe linii şi coloane aşa cum este prezentat în Figura 3.5:

Figura 3.5 Aplicarea Transformatei Wavelet la o imagine pe un nivel

fPdj 12

2

fQ dj2

2

fPdj2

nm1~

nm0~

Filtru trece-sus

Imagine originalăImagine filtrată pe

liniiImagine filtrată pe

linii şi coloane

I II

III IV

Comunicaţii multimedia – Laborator 3 31

Cele patru subimaginii sunt:

1) I – Imaginea filtrată trece-jos pe linii şi coloane ( fPd12

),

notată în literatura de specialitate cu LL (low subbands forrow and column filtering)

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

( fQd12

, apoi fPd12

), notată în literatura de specialitate cu HL

(high subbands for row filtering and low subbands columnfiltering)

3) III – Imaginea filtrată trece-jos pe linii şi trece-sus pe coloane

( fPd12

, apoi fQd12

), notată în literatura de specialitate cu LH

(low subbands for row filtering and high subbands columnfiltering)

4) IV – Imaginea filtrată trece-sus pe linii şi coloane ( fQd12

),

notată în literatura de specialitate cu HH (high subbands forrow and column filtering)

Figura 3.6 Exemplu de aplicare a transformatei wavelet pe patru nivele derezoluţie

Subimaginea LL va fi corespondentul imaginii originale, dar la orezoluţie mai mică cu unu. Pentru această subimagine se aplică din

LL3

LH3

LL1 HL1

LH1 HH1

HL1

LH1 HH1

HL1

LH1 HH1

HL1

LH1 HH1

HL3 HH4HH3HL4LL4

LH4

Imaginea dupăprima descompunere

Imaginea dupăa doua descompunere

Imaginea dupăa treia descompunere

Imaginea dupăa patra descompunere

32 Comunicaţii multimedia – Laborator 3

nou Transformata Wavelet în acelaşi mod. Specificaţiile standarduluiJPEG2000 permit efectuarea între 0 şi 32 de nivele de rezoluţie(aplicare Transformatei Wavelet de 32 de ori). În Figura 3.6 seprezintă patru etape de aplicare a transformatei cu sub-imaginilecorespunzătoare:

Cuantizarea

Se face cuantizarea coeficienţilor Transformatei Wavelet cu uncuantizor cu caracteristica uniformă şi zonă moartă în jurul lui zeropentru 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:

imaginesub

coefValcoefValsignq

...).(

Codarea

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

În cadrul unui bloc de cod citirea valorilor cuantizate ale coeficienţilorTransformatei 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 înjos, aşa cum este prezentat in Figura 3.7

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

Codarea se face ca la JPEG modul progresiv, luând în considerareparalelipipede de biţi

….

….

….….

….

…......

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Comunicaţii multimedia – Laborator 3 33

De notat faptul că tot procedeul de codare pentru un bloc de cod areloc la nivel de plan de bit şi nu la nivel de bit

Pentru codarea planului de bit se utilizează un codor aritmetic binaradaptiv 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 cuplanul LSB. Singurul care face excepţie este planul MSB la care seutilizează doar eliminarea repetiţiilor (vezi Figura 3.8)

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

Fluxul de date codat este organizat pe nivele de calitate. Un nivel decalitate este ansamblul de plane de bit consecutive dintr-o regiune aimaginii.

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

Controlul debitului

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

Trebuie să se analizeze toate blocurile comprimate şi să se decidă caredin ele să fie trunchiat, după o stategie care să minimizeze efectuldistorsiunilor

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

34 Comunicaţii multimedia – Laborator 3

Structura fluxului de date

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

O regiune este o mulţime de blocuri de cod la un nivel de rezoluţiefixat

Un exemplu de astfel de regiuni pentru 4 nivele de rezoluţie esteprezentat în Figura 3.9:

Figura 3.9 Exemplu de partiţie a regiunilor în cadrul diferitelorrezoluţ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.10)

Figura 3.10 Structura fluxului de date

HeaderImagine

Flux datepartiţie

Flux datepartiţie

Flux datepartiţie

Sfârşitpartiţie

…..

Headerpartiţie

Flux datepachete

Pachet Pachet ….. Pachet

Headerpachet

Datecomprimate

Culoarea fundaluluireprezintă diverse nivele derezoluţie, iar desenulreprezintă o regiune

Comunicaţii multimedia – Laborator 3 35

3.1.2 Opţiuni de compresie

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

Figura 3.11 Opţiunile de compresie pentru JPEG2000

Encode: Aici se poate seta rata de bit pentru codare în cazul, încare nu s-a ales la tab-ul de cuantizare opţiunea „Losslessquant”

Quant: Aici se poate selecta tipul de cuantizare a coeficienţilorWavelet. 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 fiactive. Tot aici se poate selecta dimensiunea blocurilor decod ce urmează a fi codate.

Levls: Se selectează numărul de nivele de rezoluţie. VcDemopermite alegera de până la 9 nivele de rezoluţie, darstandardul JPEG2000 permite un număr maxim de 32 denivele 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. Alegereaunei rate de bit foarte mici poate duce la alterareacompletă a imaginii decodate.

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

36 Comunicaţii multimedia – Laborator 3

Fluxul comprimat de biţi:Imaginea comprimată este scrisă pe disc într-un fişier cu numele„NumeImagineOriginala_BitStream.jp2”. Acest fişier conţinedatele JPEG2000 comprimate.

3.1.3 Exerciţii

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

2. Setaţi dimensiunea blocului de cod la 32 şi numărul de nivele derezoluţ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 calitatemai bună?

3. Setaţi dimensiunea blocului de cod la 32 şi numărul de nivele derezoluţ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. Cumdepinde SNR-ul de numărul de nivele de rezoluţie? Ce număr minimde nivele ar trebui ales, astfel încât SNR-ul să nu mai variezesemnificativ?

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ţiefixate variaţi în tab-ul „Tiling” dimensiunea subimaginilor în care săfie împărţită imaginea iniţială. Influenţează acest lucru calitateaimginii decodate? Cum? Când este folositoare acestă opţiune?

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

Comunicaţii multimedia – Laborator 3 37

3.2. Estimarea mişcării

3.2.1 Noţiuni teoretice

Estimarea mişcării este o tehnică importantă pentru compresiasecvenţ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 dedeplasare, 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 de tectareacontururilor şi recunoaştera formelor.

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

Ideea de bază este prezentată în Figura 3.12, unde deplasamentulpentru un pixel ),( 21 nn din cadrul k este determinat considerând un bloc

21 NN centrat în jurul lui ),( 21 nn şi căutând în cadrul k-1 (cadrul de

căutare) locul celui mai potrivit bloc de aceeaşi dimensiune. Căutarea estede obicei limitată din motive de calcul numai în interiorul ferestrei decăutare de dimensiune 2211 22 MNMN .

Figura 3.12 Potrivirea blocurilor

Bloc

Cadrul k

Fereastră de căutare

Cadrul k-1

38 Comunicaţii multimedia – Laborator 3

Algoritmii de potrivire a blocurilor diferă prin criteriul folosit înpotrivire şi strategia de căutare.

a) Clasificare în funcţie de criteriul folosit în potrivirea blocurilor

Eroarea pătratică medie minimă (MSE)

Bnn

knnskdndnsNN

ddMSE),(

2212211

21

21

21

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

),(

unde B este un bloc de dimensiune 21 NN , pentru un set de vectori de

mişcare ),( 21 dd .

Diferenţa medie absolută minimă (MAD)

),(

212211

21

21

21

),,()1,,(1

),(nn

knnskdndnsNN

ddMAD

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

În mod obişnuit, pentru a reduce efortul de calcul, suprafaţa decăutare este limitată la o fereastră de dimensiuni 111 MdM şi

222 MdM 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 blocde dimensiune 1212 21 MM din fereastra de căutare. Această strategie

este extrem de consumatoare de timp şi nu se prea foloseşte. În schimbsunt 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 Figurii3.13, unde este reprezentat doar cadrul de căutare cu parametrii ferestreide căutare 721 MM :

Numărul „0” marchează pixelul din cadrul de căutare care este chiarpe poziţia pixelului căruia i se doreşte estimarea mişcării. La primulpas 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 punctemarcate cu „2” centrate în jurul pixelului cu cea mai mică eroare de laprimul pas (marcat printr-un „1” încercuit).

Comunicaţii multimedia – Laborator 3 39

Figura 4.13 Căutare în trei paşi

De remarcat că la primul pas pixelii de căutare sunt marginile ferestreide căutare şi că la fiecare pas înjumătăţim distanţa de la pixelii decă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 pixeliide 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şanumite „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ăutarelogaritmică, la care la fiecare pas există 4 poziţii de căutare care suntcolţurile unei cruci „+” (vezi Figura 3.14).

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 11

1 1

2

1

1

2 2

2

2

2

2

2

3 33 33 3 3

3

40 Comunicaţii multimedia – Laborator 3

Figura 3.14 Căutare încrucişată

3.2.2 Opţiuni de compresie

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

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

0

1

1

1

1

2

2

2

3

3

4 5

4

3

55

5

Comunicaţii multimedia – Laborator 3 41

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

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

Size: Aici se alege dimensiunea blocurilor (pătrate), pentrucare este estimat vectorul de mişcare. Pentru estimareaierarhică dimensiunea blocurilor este dimensiuneanivelului de rezoluţie superior. Dimensiunea celorlaltenivele de rezoluţie sunt determinate de către program(vezi fereastra de ieşire)

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

Figura 3.16 Deplasamentul maxim pe orizontală xd şi deplasamentul maxim

pe verticală yd

xdxd

yd

yd blocul curent

fereastra decăutare

42 Comunicaţii multimedia – Laborator 3

N-Step: Pentru strategia de „căutare în N paşi” poate fi selectatnumărul de nivele (paşi). Cu cât este mai mare numărulde paşi, cu atât este mai mare şi deplasamentul maximadmisibil. Pentru estimarea ierarhică este dat numărul depaşi pentru fiecare nivel de rezoluţie.

Video: Pot fi selectate diferite opţiuni de afişare. Câmpurile demişcare estimate sunt salvate intern, astfel încât opţiunea„Display again” refoloseşte câmpurile de mişcare dejaestimate. Schimbarea opţiunilor de estimare a mişcăriinecesită 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 3.17):

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 indicatprintr-un punct negru

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

Fereastra text conţine pentru fiecare cadru varianţa cadruluioriginal, varianţa diferenţei dntre cadre, varianţa diferenţei dintrecadre compensată de mişcare şi un estimat al entropiei diferenţialea câmpului de mişcare estimat (în biţi/vector). Pentru calcululestimatului 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)

Comunicaţii multimedia – Laborator 3 43

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

3.2.3 Exerciţii

Încărcaţi secvenţa „car.seq” şi folosiţi estimarea mişcării custrategia de căutare „Full Search” pe blocuri 8x8 şi un deplasamentmaxim de 8 pixeli

1. Discutaţi de ce este avantajosă codarea unei imagini diferenţă decât aimaginii 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 compensareamişcării?

4. Comparaţi eficienţa compensării mişcării pentru diferitedeplasamente. Care ar fi cea mai bună alegere având în vedere atâtcomplexitatea cât şi factorul de compresie în acest caz?

5. Comparaţi eficienţa compensării mişcării pentru diferite dimensiuniale blocurilor. Discutaţi efectele observate.

6. Comparaţi eficienţa compensării mişcării pentru cele trei strategii decăutare diferite şi discutaţi care ar fi compromisul între complexitate şicâştig de predicţie.

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

44 Comunicaţii multimedia – Laborator 3

Lansaţi programul Matlab. Rulaţi programul demonstrativestimarea_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 alerorii şi din punctrul de vedere al timpului de calcul pentru acelaşinumăr de blocuri şi acelaşi deplasament maxim? Ce metodă ar fi celmai bun compromis între eroarea de estimare şi timpul de calcul?

9. Comparaţi cele două criterii de estimare (MAD – Minimum AbsolutDifference ş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 aleblocurilor (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).

Comunicaţii multimedia – Laborator 4 45

LABORATOR 4Standardul H.261

1. Noţiuni teoretice

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

Pentru o conexiune ISDN sunt disponibile utilizatorului 2 canale Bpentru transmisie bidirecţională şi un canal D pentru controlultransmisiunii (semnalizare). Un canal B are banda de 64kbiţi/s. Se poatemări debitul cu un multiplu întreg p x 64kbits/s (p = 1..30) prin alocareamai 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/spâ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.

4.1.1. Pregătirea imaginilor

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

Numai imaginile cu explorare progresivă (non-interleaved) suntpermise 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):

46 Comunicaţii multimedia – Laborator 4

Figura 4.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 ambeleformate (CIF şi QCIF).

Un semnal necomprimat QCIF la o frecvenţă de 29,97cadre/s are ratade 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 şisunt utilizate pentru luminanţă şi culoare.

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

Figura 4.2 Structura unui macrobloc

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

Figura 4.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

Comunicaţii multimedia – Laborator 4 47

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

Figura 4.4 Structura unei imagini CIF, respeciv QCIF

3.1.2. Algoritmul de codare

H.261 utilizează două metode diferite de codare: intercadru şiintracadru.

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

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

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

Codarea intracadru se realizează similar cu JPEG. Fiecare bloc de8x8 pixeli este transformat cu DCT. Cei 64 coeficienţi DCT suntcuantizaţi (diferit pentru DC şi AC) şi apoi codaţi entropic.

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

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

Vectorul demişcare

Cadrul curent

Cadrul anterior(de referinţă)

48 Comunicaţii multimedia – Laborator 4

Pentru obţinerea vectorilor de mişcare se consideră diferenţa dintremacro-blocurile localizate pe aceeaşi poziţie în imaginileanterioare.

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 transmitcoeficienţii.

Altfel se transmit numai componentele vectorului de mişcarecodate entropic fără pierderi.

Figura 4.6 Schema de principiu a codorului H.261

Toţi coeficienţii sunt cuantizaţi uniform şi codaţi cu lungimevariabilă.

În plus un filtru trece-jos poate fi aplicat înaintea DCT pentru aelimina zgomotul de frecvenţă înaltă şi acesta să nu fie codat. Acestfiltru este opţional.

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

Schema detaliată a codorului:

Comunicaţii multimedia – Laborator 4 49

Figura 4.7 Schema codorului H.261

Schema decodorul:

Figura 4.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).

50 Comunicaţii multimedia – Laborator 4

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

00000000000000011111112222233…

Escape

11234567891011121314151234567123451…

1sa) Dacă e primul coeftficient al blocului11s Dacă nu e primul coeficient al blocului0100 s0010 1s0000 110s0010 0110 s0010 0001 s0000 0010 10s0000 0001 1101 s0000 0001 1000 s0000 0001 0011 s0000 0001 0000 s0000 0000 1101 0s0000 0000 1100 1s0000 0000 1100 0s0000 0000 1011 1s011s0001 10s0010 0101 s0000 0011 00s0000 0001 1011 s0000 0000 1011 0s0000 0000 1010 1s0101 s0000 100s0000 0010 11s0000 0001 0100 s0000 0000 1010 0s0011 1s……………………….

0000 01

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

Tabelul 4.2 Exemplificarea codurilor pentru RUN şi LEVEL

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

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

Run Code Level Code

0 0000 00

1 0000 01 1000 0001

2 0000 10

1111 1110

1111 1111

63 1111 11

0000 0001

0000 0010

0127 0111 1111

Comunicaţii multimedia – Laborator 4 51

De exemplu: 0 0 0 –1 6 0 3 EOBse 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 4.3)

Tabelul 4.3 Codarea vectorilor de mişcare

De exemplu, pentru vectorii de mişcare: 15 14 –13 12 ...avem diferenţa: –1 –27 25 ...care se codeaza astfel: 011 00001010 00000111 ...

MVD Cod

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

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

0000 0011 0010000 0011 0110000 0011 1010000 0011 1110000 0100 0010000 0100 0110000 0100 1110000 0101 0110000 0101 1110000 0111 1110000 1001 1100000 1011 1100000 1111 1100001 1111 1100011 1111 1100111 0100 1101000 0100 11001000 0100 10010 1111 1110001 0111 1110000 1101 1110000 1010 1110000 1000 1100000 0110 1100000 0101 1000000 0101 0010000 0100 1010000 0100 0100000 0100 0000000 0011 1100000 0011 1000000 0011 010

52 Comunicaţii multimedia – Laborator 4

4.1.3 Cuantizarea coeficienţilor

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

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

iar rata cadrelor30

kHz, ( 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 4.4 Codarea vectorilor de mişcare

Umplerea bufferului Pasul de cuantizare

< 200q 2

< 400q 4

< 600q 6

< 800q 8

... ...

< 6000q 60

< 6200q 62

4.1.4 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;

Comunicaţii multimedia – Laborator 4 53

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

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

Figura 4.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 permiteaplicaţiei ca la decodare să oprească şi să pornească o scenă videofără nici o dificultate.

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

54 Comunicaţii multimedia – Laborator 4

4.2 Programul Vprove

Programul Vprove este un program demonstrativ de analiză şitestare a tehnicilor de compresie video

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

Figura 4.10 Încărcarea secvenţei de test

În Tabelul 4.5 sunt descrise diversele butoane din meniu şisemnificaţia lor:

Comunicaţii multimedia – Laborator 4 55

Tabelul 4.5 Butoanele din meniuIcoana Funcţie Apelare Meniu Control tastatura

Rulează secvenţa Play – Play CTRL+P

Opreşte secvenţa Play – Stop CTRL+S

Pauză/Avansează uncadru

Play –Pause/FrameAdvance

CTRL+A

Derulare rapidă Play – Fast Fwd CTRL+F

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

Play – Blind FastFwd

CTRL+F

Trecere la cadrulnumărul…A se folosi apoi ‘FastForward’ sau‘BlindFast Forward’

Play – Pause Onframe…

În primul rând priviţi clipul video H.261. Lăsaţi secvenţa să rulezepână la sfârşit. Vezi observa că:

Mişcarea este prea rapidă. Viteza de rulare este dependentă deviteza procesorului, pe care lucraţi.

Apar artefacte nedorite în imagine (vezi Figura 4.11): Acestezgomote 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 cucadru (CTRL+P).

56 Comunicaţii multimedia – Laborator 4

Figura 4.11 Artefacte vizuale

Observaţi calitatea compresiei. Imaginea este destul dedistorsionată. 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 4.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

Artefactevizuale

Comunicaţii multimedia – Laborator 4 57

Figura 4.12 Vizualizarea diferitelor tipuri de macroblocuri

Priviţi datele din macroblocuri.

Activaţi caseta de informaţii despre macrobloc din “Frame/MBTooltip”

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 osă apară informaţii despre macroblocul respectiv (vezi Figura 4.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 (înparanteză 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)

58 Comunicaţii multimedia – Laborator 4

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

Figura 4.13 Selectarea macroblocului

Figura 4.14 Fereastra MB Tooltip

Macroblocselectat cumouse-ul

Macroblocde culoare

verde

Numărulmacroblocului

(X Y)

Numărulcadrului

Comunicaţii multimedia – Laborator 4 59

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ţipentru codarea cadrului

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

Figura 4.15 Opţiuni în meniul Graph

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

Figura 4.16 Salvarea fişierului de ieşire

Selectaţiopţiunile

60 Comunicaţii multimedia – Laborator 4

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

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

Selectaţi tab-ul ‘Ave Bits per MB’, care afişează numărul mediu de biţifolosiţi pentru fiecare macrobloc (în culori). Puteţi vedea că cei maimulţ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 dejos este o eroare a codorului (vezi Figura 4.17)

Figura 4.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ţică în colţul stânga sus există multe macroblocuri codate intra. Aceastaeste o eroare a codorului (vezi Figura 4.18)

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

Comunicaţii multimedia – Laborator 4 61

Figura 4.18 Graficul frecvenţă relativă de codare intra

4.3 Aplicaţia H.261

Aplicaţia H.261 constă de fapt în două programe Codorul H.261 şiDecodorul H.261, cu care se realizează codarea, respectiv decodareaformatului H.261.

Codorul H.261

Aplicaţia Codor H.261 reprezină o implementare practică aalgoritmului H.261 descris de “Recomandarea H.261” versiunea 2 dinmartie 1993. El a fost realizat în mediul vizual Visual C++ pentruWindows 95, 98, ME şi Xp folosind o implementare a standarduluiH.261 realizată de către Standford Universityhavefun.stanford.edu:pub/p64.

Prezentarea meniuluiMeniul “Fişier” conţine doua opţiuni cu ajutorul carora se poate

alege sursa video care urmează a fi comprimată. Se poate opta întrecodarea unui fişier de tipul *.avi, *.qcif, *.cif existent pe disc (“Deschidefişierul sursă”) sau codarea in timp real a unei surse video externefurnizată de o camera video cu opţiunea ”Noua fereastră de captură”.

62 Comunicaţii multimedia – Laborator 4

Figura 4.19 Codor H.261

Salvarea fişierului video codat H.261 se face sub formanumefisier.261 prin opţiunea “Salvare ca fişier H.261” şi prin alegereaulterioară a locului unde se doreşte să fie stoc fişierul respectiv.

Figura 4.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

Comunicaţii multimedia – Laborator 4 63

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

Figura 4.21 Alegerea sursei video

Prin opţiunea “Format” se setează formatul video al fluxului codatH.261 CIF(352x288), QCIF(176x144), SQCIF(128x96).

Figura 4.22 Alegerea formatului video

Din meniul Video/Opţiuni se poate introduce pasul de cuantizarefolosit la codare. El trebuie sa fie cuprins între 1 şi 31. Pasul ales estepasul cu care sunt cuantizaţi toţi coeficienţii rezultaţi în urma aplicăriiDCT cu excepţia coeficienţilor DC ai macroblocurilor codate intra careau pasul de cuantizare fixat la 8.

64 Comunicaţii multimedia – Laborator 4

Figura 4.23 Alegerea pasului de cuantizare

Decodorul H.261

Decodorul H.261 este o aplicaţie de vizualizare şi analiză aimaginilor 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 4.24 H.261 Decodor

Din meniul “Fisier” se alege fişierul video comprimat H.261 carese doreşte sa fie vizualizat, iar din meniul vizualizare se poate setaopţiunea “Afişează harta”, care în partea dreaptă a imaginii afişeaşă omatrice în care secvenţa video codată este analizată şi cadru cu cadru întimp real.

Comunicaţii multimedia – Laborator 4 65

Figura 4.25 Harta video a imaginii

Macrobloc codat intra;Macrobloc codat inter;Macrobloc codat inter cu vector de mişcare, săgeata indicânddirecţia de mişcare a macoblocului;Macroblocul nu este codat, e pastrat din cadrul anerior.

66 Comunicaţii multimedia – Laborator 5

LABORATOR 5Standardul MPEG

5.1 Standardul MPEG 1

MPEG-1 (Motion Picture Expert Group) a reuşit să realizeze ocompresie a semnalului video la o rată de bit de aproximativ 1,5Mbps,aceasta asigurând o calitate acceptabilă. Dezideratul este, ca prin codareasemnalului video sursă, să se realizeze o reducere a spaţiului necesarpentru stocare şi a ratei de bit necesare pentru transmitere explorând atâtredundanţ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 tehnicilede codare entropice, păstrându-se în acelaşi timp calitatea imaginilororiginale.

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

Figura 5.1 Schema bloc a codorului MPEG

S-au folosit notaţiile:

DCT - Transformata Cosinus Discretă (Discrete Cosine Transform);Q - Blocul de Cuantizare (Quantizer);

Video IN

ME FM

IDCT

1Q

QDCT VLC

Modulintercadru

Modulintracadru

Bitstream

Comunicaţii multimedia – Laborator 5 67

VLC - Codare Entropică de tip Huffman (Variable Length Coder);FM - Blocul de Memorare a Cadrelor (Frame Memory);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 formatdintr-o sucesiune de cadre video. Fiecare cadru este procesat separat fiindtratat ca o singură imagine statică. Operând asupra unui singur cadrucodorul MPEG se află în modul intracadru. În acest mod de lucru uncadru este mai întîi transformat în domeniul frecvenţă folosindTransformata Cosinus Discretă apoi cuantizat, pentru ca în final rezultatulcelor două operaţiuni să fie codat folosindu-se algoritmul de codareHuffman. Dezavantajul utilizării doar a acestui procedeu constă în faptulcă deşi se realizează o compresie semnificativă prin simpla procesare asemnalului video de intrare ca o succesiune de imagini statice, folosindJPEG, acesta nu exploatează redundanţa temporală considerabilă prezentăîn toate secvenţele video. Astfel mulţi dintre pixeli se vor schimba foartepuţ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 unvector ce caracterizează mişcarea unuia dintre ele relativă la poziţia dincadrul curent pentru a ajunge în poziţia în care acesta apare în celelaltecadre. Principala problemă constă în modul de stabilire a ordinii cadrelor.Câteodată este eficient ca acel vector (pointer) să aibă drept referinţă unbloc 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 5.1 este ilustrată şi tehnica codării intercadru : după cese realizează prelucrarea cu DCT şi cuantizarea (Q) unui cadru dinsemnalul video iniţial, acesta este supus unui proces invers constând dinQ-1 şi IDCT. Astfel se poate obţine un cadru identic cu cel care ar fiobţinut de algoritmul de decompresie. Acesta va fi apoi stocat în FM şiutilizat la estimarea şi compensarea mişcării (ME) relativ la cadrelevecine.

Conform unor studii efectuate de grupul MPEG, folosindprocedeul de codare intercadru s-a obţinut o compresie de trei ori maibună faţă de rezultatele utilizării doar a modului intracadru, lucru posibildoar prin exploatarea redundanţelor existente în secvenţele video.

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

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

“random acess” – acces aleator în fluxul de date;

68 Comunicaţii multimedia – Laborator 5

posibilităţi de derulare ”fast forward/reverse”,”reverse playback”; posibilitatea de editare a stream-ului comprimat de biţi .

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

Prin acces aleator trebuie să fie posibil accesul în secvenţa cadrelorvideo în orice moment al acesteia. Acest lucru implică existenţa cadrelorde 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ă laposibilitatea de a derula înainte sau înapoi secvenţa video. Rezultatul sepoate afişa folosind cadrele de acces obţinând efectul de rapid înainte saurapid î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ă celeicu o mărime egală dintr-un cadru alăturat. Pentru MPEG sunt prevăzutedouă 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 de16x16 pixeli pentru luminanţă şi 8x8 pentru crominanţă spre deosebire deblocurile folosite la codarea JPEG ce au o mărime de doar 8x8 pixeli atâtpentru luminanţă cât şi pentru crominanţă.

Figura 5.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 codareMPEG se reduc redundanţele temporale existente între cadre, codându-sedoar imaginile eroare de predicţie (este vorba de diferenţa între imaginileoriginale ş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ţă

Y4Y3

Y2Y1 U

V

Comunicaţii multimedia – Laborator 5 69

către un ‘anchor frame’ ce precede cadrul curent. Fiecare macrobloc dincadrul curent va fi reprezentat de un vector de mişcare. Acesta ne dădeplasamentul macroblocului din cadrul curent faţă de corespondentulsău din cadrul adiacent (vezi Figura 5.3):

Figura 5.3 Compensarea mişcării

S-a considerat exemplul: fiecare cadru video este format din64x64 pixeli grupaţi în 16 macroblocuri identice. Porţiunea colorată acadrului 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 acestuibloc în cadrul precedent se află în poziţia (24,4). Săgeata din parteastângă a macroblocului reprezintă vectorul de mişcare care în acest cazeste de coordonate (8,24).

Observaţii:

1. Nu este necesar ca macroblocul corespondent din cadrul anteriorsă 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 decodorulnu are acces la cadrele video sursă ci doar la versiuni decodate alecadrelor originale.

Determinând blocul corespondent din cadrul precedent algoritmulMPEG înregistrează vectorul de mişcare şi eroarea de predicţie care este

Bloc16x16

(16,8)

(24,4)

(8,24)

Cadrul curent

Cadrul decodatviitor

Cadrul decodatanterior

70 Comunicaţii multimedia – Laborator 5

o matrice de 16x16 de difereţe între macroblocul curent în cadrul c şimacroblocul origine din cadrul r:

]),[(),(),( rcrcc MyxIyxIyxE

În formula de mai sus ),( yxEc reprezintă eroarea de predicţie; ),( yxI i 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 depotrivire a blocurilor. Uzual vectorul de mişcare pentru un macrobloc seobţine minimizând funcţia de cost, funcţie ce măsoara diferenţa dintre unmacrobloc şi fiecare posibil corespondent al său. Acest lucru se poateexprima matematic folosind relaţia:

Byxrc

MmmyxIyxICMIN

),(

)]),((),([

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 cavector 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.

Comunicaţii multimedia – Laborator 5 71

C. D.Figura 5.4.(A) Cadrul de la momentul N; (B) Cadrul de la momentul N-1folosit la predicţia conţinutului cadrului de la momentul N (s-au figurat şivectorii de mişcare); (C) Eroarea de predicţie obţinută fără compensareamiş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 maibună decăt cea rezultată în urma unei compresii JPEG efectuată cadru cucadru, şi aceasta poate fi îmbunătăţită. Astfel MPEG permite codareacadrelor video folosind două cadre de referinţă. Unul este considerat încadrul precedent (aposteriori) iar celălat în cel viitor (apriori) faţă decadrul curent. Această abordare poartă denumirea si de interpolarebidirecţională şi are ca efect o rată de compresie mai bună decât ceaobţinută prin folosirea unui singur cadru de referinţă.

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

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

72 Comunicaţii multimedia – Laborator 5

În cazul interpolării bidirecţionale trebuie codată mai multăinformaţie. O dată cu predicţia cadrelor o matrice diferenţă va rezulta şiapoi se va coda folosind DCT. În plus fiecare macrobloc va fi codatindicându-se modul de predicţie (apriori, aposteriori, prin mediere) şifolosind 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 decompresie 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 culungime variabilă.

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

c) Cadre B (Bi-directionally predictive coded frames): codarea se faceluând drept referinţă atât cadrul precedent cât şi pe următorul (veziInterpolarea) ; 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 numaicoeficienţii DC sunt codaţi.

Derularea înainte sau înapoi se poate realiza şi cu cadre I. Pentruaceasta cadrele I trebuie să apară periodic în fluxul de date.Redarea înapoi însă necesită o cantitate imensă de stocare deoarece

Comunicaţii multimedia – Laborator 5 73

toate imaginile dintr-un grup trebuie decodate în modul forward şistocate, după care redarea înapoi este posibilă.

Frecvenţa relativă de apariţie a acestor cadre în interiorul unui fluxvideo este un parametru configurabil care trebuie însă să satisfacă câtevareguli.

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

În al doilea rând trebuie să ţina seama de legătura strânsă ce existăîntre complexitatea de calcul şi numărul de cadre B, astfel încăt cu câtavem 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 decadrele I şi P deoarece un cadru B nu poate fi considerat referinţă pentruun alt cadru B. De aceea cu cât există mai multe cadre B cu atât va creştedistanţa medie dintre acesta (cadrul B) şi cadrele sale de referinţă şi cuatâ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. Uncadru B nu poate fi decocodat până când cadrele de referinţă, celprecedent respectiv cel viitor nu au fost decodate. Organizarea fiecăruigrup se face astfel încât fiecare cadru B să urmeze ambelor cadre dereferinţă.

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

74 Comunicaţii multimedia – Laborator 5

Figura 5.5 Exemplu de organizare a cadrelor în timp

Decodorul efectuează operaţiile inverse codării: Se extrag şi sedecodează cuvintele codate entropic din stream-ul de biţi pentru a seobţine toţi coeficienţii DCT diferiţi de zero pentru fiecare cadru. Odatareconstruiţi toţi aceşti coeficienţi ce aparţin unui singur cadru (cu ajutorulQ-1) se aplică transformata IDCT obţinându-se valoarea pixelilor dintr-uncadru. Procesând întregul stream de biţi toate cadrele (imaginile) suntdecodate şi reconstruite.

5.2 Standardul MPEG 2

Standardul MPEG2 VIDEO (ISO/IEC 13818-2) a fost realizatpentru 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 MPEG2 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.

TIMPI I

1

BBB BP P

2 3 64 5 87

Predicţie Bidireţională

Predicţie apriori

Comunicaţii multimedia – Laborator 5 75

Codarea scalabilă video pentru aplicaţii care au cerinţe diferite decalitate a semnalului video.

Sistemul să suporte sincronizarea între fluxurile audio-video laredare/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 5.6 Formatele de codare luminanţă – crominanţă

76 Comunicaţii multimedia – Laborator 5

a) b) c)câmpul câmpul

par impar par impar

timp timp timpFigura 5.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 laMPEG1.

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

referinţă curent

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

Comunicaţii multimedia – Laborator 5 77

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

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

- Predicţia dual-primă pentru cadrele P (se aplică atâtimaginilor-câmp cât imaginilor-cadre), rezultând 16x8vectori de compensare a mişcării

referinţă curent

Figura 5.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

78 Comunicaţii multimedia – Laborator 5

blocuri pe cadru blocuri pe câmpuriFigura 5.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 5.12 a) Scanare zig-zag a coeficienţilor DCT inter; b) Scanare

alternată a coeficienţilor DCT intra

5.3 Compresia MPEG audio

Standardul MPEG audio este caracterizat de o complexitate ridicatăa algoritmului, compresie mare a datelor, si calitate foarte buna asemnalului 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. Deasemenea, 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 prineşantionare si cuantizare, fiecare eşantion fiind reprezentat printr-uncuvânt de cod binar (procedeu numit modulaţia impulsurilor în cod sauPCM). Astfel, pentru reprezentarea unei secunde de material stereo la

Comunicaţii multimedia – Laborator 5 79

calitate CD (frecvenţa de eşantionare 44,1 kHz şi cuantizare pe 16 biti)este nevoie de aproximativ 1,4 Mbiti.

biti/s1411200canale2ionbiti/esant16/sesantioane44100

Reducerea acestei rate ridicate de date se face prin compresie.Algoritmul MPEG/audio este primul standard international pentrucompresia digitală a semnalului audio de înalta fidelitate.

Deşi compresia MPEG/audio este foarte potrivită pentru aplicaţiiaudio de sine stătătoare, ea face parte din standardul de compresiecombinat MPEG. Acesta conţine trei parti: video, audio si sisteme, şi seadresează compresiei semnalelor video si audio sincronizate.

Pana la ora actuala, au fost adoptate ca standarde trei versiuniMPEG audio, fiecare aducând imbunătăţiri faţă de cel precedent. Iată celetrei 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 sicomplexitatea 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 instandardele Digital Audio Broadcasting (DAB), CD-Interactive(CD-I) si Video-CD.

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

MPEG-2 audio:

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

80 Comunicaţii multimedia – Laborator 5

Este compatibil cu MPEG-1 pentru codarea unor surse cu maimulte 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 AudioCoding (AAC), care nu mai este compatibilă cu MPEG-1, deci nupoate fi decodată de un astfel de decodor. Caracteristicile AAC:calitate audio foarte bună la rate de 64 kbps pe un canal, suporta 48de canale audio, 16 canale pentru frecvenţe joase, 16 canale pentruvoce în mai multe limbi, 16 fluxuri de date. Blocurile codecului aufost imbunătăţite, obtinându-se o imbunătăţire a ratei de compresiecu 30% faţă de MPEG-1 Layer III.

Foloseste 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), siCELP (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 largimea de bandă a canalului folosit,prin degradarea calitaţii audio;

Tehnici folosite in compresia MPEG audio

Standardul de compresie MPEG-1/audio realizează performanţeremarcabile prin exploatarea a doua caracteristici psihoacustice aleaparatului auditiv uman:

1. Benzile critice: Urechea internă are o reprezentare a spectruluisemnalelor audio la o scară neliniară, sub forma unor benzi defrecvenţă numite benzi critice. Banda frecvenţelor audibile, care seintinde până la 20 kHz, este impărţită in 25 de benzi critice, alecăror largimi cresc cu frecvenţa. Cu alte cuvinte, aparatul auditivpoate fi modelat ca un banc de filtre trece bandă (un set de filtre înparalel), constând în 25 de benzi nedisjuncte, cu largimi incepândde la mai putin de 100 Hz pentru frecvenţe joase, si ajungând la 5kHz pentru frecvenţe înalte.

Comunicaţii multimedia – Laborator 5 81

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

0 50 14 1.9701 95 15 2.3402 140 16 2.7203 235 17 3.2804 330 18 3.8405 420 19 4.6906 560 20 5.4407 660 21 6.3758 800 22 7.6909 940 23 9.375

10 1.125 24 11.62511 1.265 25 15.37512 1.500 26 20.25013 1.735

(frecvenţele reprezinta limita superioară a benzii)

2. Mascarea auditivă: Este un fenomen numit şi mascareazgomotului, şi se manifestă astfel in domeniul frecvenţă: cândun semnal de nivel mic si unul de nivel mare apar simultan sisunt destul de apropiate in frecvenţă, dacă semnalul mic se aflasub un prag de mascare, acesta nu se va auzi din cauzasemnalului mai puternic. Acest fenomen este mai pronunţatcând ambele semnale se află în aceeaşi bandă critică, şi maiputin observabil când acestea se află in benzi alăturate.

Figura 5.13 Mascarea auditivă

Figura 5.14 ilustrează definirea principalilor parametrii caredescriu mascarea auditivă. Semnalul puternic se află îninteriorul benzii critice. Semnalele mai slabe care se află subpragul de mascare nu se aud. Pragul minim de mascarereprezintă pragul sub care toate sunetele din banda respectivă

Frecvenţa

Am

pli

tudin

e Semnalul puternic

Zona unde semnalelemai slabe sunt mascate

82 Comunicaţii multimedia – Laborator 5

sunt mascate de semnalul puternic. Raportul semnal-mascare(SMR) reprezintă diferenţa dintre puterea semnalului puternic sipragul 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 interiorulunei benzi critice, zgomotul de cuantizare este inaudibil atâtatimp cât NMR-ul corespunzător cuantizării este negativ. Astfelse poate reduce numărul de biţi ai cuantizorului pâna la limitaNMR-ului.

Figura 5.14 Parametrii care descriu mascarea auditivă

Schema bloc a codecului MPEG-1/audio:

Figura 5.15 Codorul MPEG

Figura 5.15 Decodorul MPEG

Semnalulputernic

Pragulminim demascare

Nivelulzgomotului decuantizare

SMR

SNR

Banda critică

Pragul de mascare

Date audiodigitale(PCM) Formatare flux

de biţiCuantizor si

codorBancul de filtre

Modelpsihoacustic

Date auxiliare

Date comprimate

Date audiodigitale (PCM)

Bancul de filtreReconstrucţiesemnal pentrufiecare bandă

Despachetareflux de biţi

Date comprimate

Date auxiliare

Comunicaţii multimedia – Laborator 5 83

Bancul de filtre are rolul de a descompune semnalul audio insubbenzi. Aceasta descompunere este realizată cu diferite grade decomplexitate în cele 3 layere. In Layer I, II si III, spectrul este impărţit în32 de subbenzi de lărgime constantă, fiind astfel un compromis întreeficienţa calculelor si performanţa perceptuala:

Figura 5.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 modelulbenzilor critice.

Modelul psihoacustic este elementul cheie al codorului. El arefuncţia de a analiza conţinutul spectral al semnalului şi să calculeze SMR-ul pentru fiecare bandă. În urma acestei analize, cuantizorul decide cumsă impartă numarul de biţi disponibili pentru fiecare bandă. Aceastăalocare dinamică de biţi este realizată astfel încât să minimizezeaudibilitatea zgomotului de cuantizare.

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

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

5.4 Codorul MPEG (MEnc) în programul VcDemo

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

84 Comunicaţii multimedia – Laborator 5

Figura 5.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şieruluicomprimat, î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 maximfolosit în compensarea mişcării.

Format: Pentru formatul MPEG-2, se poate alege modulprogresiv sau modul întreţesut. Dacă se alegemodul întreţesut, poziţia primului câmp trebuieprecizată.

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

Din fereastra text se obţin informaţiile cele mai utile cu privire lacodarea 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 fiecaremacrobloc al cadrului (afişând o matrice de litere conform poziţieimacroblocului în cadru).

Observaţie: Acesta este un codor educaţional. Un codor MPEGprofesionist 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).

Comunicaţii multimedia – Laborator 5 85

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

Figura 5.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 princonfirmarea opţiunilor (Apply):

Figura 5.19 Alegerea deplasamentului maxim

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

86 Comunicaţii multimedia – Laborator 5

Figura 5.20 Informaţii din fereastra text

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 maiutilizate tipuri de macroblocuri în codare (cele obţinute prininterpolare, 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 înfluxul-ul comprimat informaţii de sistem (timing), în consecinţă pentruvizualizarea secvenţei nu se poate folosi Windows Media Player-ul, ci deexemplu decoderul MPEG al VCDemo.

Comunicaţii multimedia – Laborator 5 87

5.5 Decodorul MPEG (MDec) în programul VcDemo

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

Figura 5.21 Opţiuni de compresie pentru codorul MPEG

Operation: Permite setarea a ceea ce va fi afişat prin decodare: decoded frames - decodare normală frame prediction – cadrele obţinute doar prin

predicţie. Se poate astfel evalua oarecum calitateapredicţiei (erorile predicţiei se propagă);

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

Display: Permite afişarea alb-negru sau color a secvenţeidecodate, cu sau fără suprapunerea vectorilor demişcare, cu sau fără includerea cadrelor de tip B (pentrua 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 imaginicomprimate MPEG-1 sau MPEG-2.

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

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

88 Comunicaţii multimedia – Laborator 5

Figura 5.22 deschiderea fişierului MPEG

Se alege afişarea decoded frames cu suprapunerea vectorilor demişcare şi decodare pas cu pas. Ca şi până acum decodarea începe prinselectarea Apply. Decodarea poate fi întreruptă prin selectarea No înfereastra de dialog care apare. Selectarea Cancel are drept rezultatcontinuarea decodării în mod automat.

Figura 5.23 Informaţiile din caseta text

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

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

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

Comunicaţii multimedia – Laborator 5 89

5.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 bunacompresie ş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ţide ce secvenţa afişată nu respectă succesiunea temporală normală.

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

5. Comparaţi rezultatele obţinute prin transmiterea cadrelor diferenţă deimagine fără compensarea mişcării cu cele obţinute prin compensareamiş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 macroblocuricodate intra (fără predicţie). Explicaţi de ce.

FiltruTrece

Jos