Sunteți pe pagina 1din 88

Comunicaii multimedia Laborator 1 1

LABORATOR 1

1.1 Programul VcDemo

1.1.1 Introducere
VcDemo este un program de nvare a tehnicilor de compresie a
imaginilor i de compresie video.
Scopul programului este de a face posibil experimentarea cu diferii
algoritmi de compresie (mai mult sau mai puin complexi) fr a avea n
vedere implementarea lor propriu-zis. Din aceast cauz programul este
bazat pe meniuri de dialog i permite utilizatorului sa experimenteze cu
diferii parametrii specifici operaiei de compresie.
Pe de o parte, vizualizarea rezultatelor de compresie a imaginilor
ajut la nelegerea performanelor 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 ntrebrile: ce se va ntmpla dac folosesc o anumit
combinaie de parametrii, care este cauza artefactelor de compresie i
cum pot fi comparate tehnicile de compresie att din punct de vedere
vizual ct i numeric.

1.1.2 Folosirea programului


Dup pornirea programului trebuie ncrcat o imagine bmp de
lucru. Aceasta se face selectnd File/Open Image sau apsnd butonul
corespunztor.
La alegerea imaginii trebuie avut in vedere c unele metode de
compresie sunt restricionate 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 toi algoritmii de compresie i care
ncape n spaiul de lucru. Pot fi folosite i imagini de dimensiuni mai mari,
dar ele sunt cteodat afiate n ferestre mai mici datorit lipsei de spaiu
(pentru vizualizare la marime original dai dublu-clic pe imagine).
Toate rutinele de compresie pentru imagini funcioneaz pe imagini
cu nuane de gri pe 8 bii, deci intern formatul imaginii de intrare este
convertit la 256 de nivele de gri. Pentru secvene de imagini (MPEG) acest
lucru poate fi diferit.
Dup ncrcarea imaginii meniul de opiuni i butoanele specifice
fiecrui tip de compresie devin active. Dac unele dintre opiunile de
compresie nu sunt active, atunci acest lucru se datoreaz dimensiunilor
imaginii de start active sau tipului imaginii (imagine fix, secven video,
secven MPEG).
2 Comunicaii multimedia Laborator 1

Figura 1.1 Fereastr dup activarea unui modul de compresie

Apsarea butonului corespunztor unei tehnici de compresie va


produce apariia meniului de parametrii. Meniul este ntotdeauna poziionat
n partea dreapt a spaiului de lucru (vezi Figura 1.1). Dup aplicarea
butonului Apply va ncepe compresia folosind setul curent de parametrii.
Partea de jos a meniului de parametrii are o caset de text, n care
vor fi afiate rezultatele compresiei, cum ar fi:
Rata de bit = numrul de bii pe pixel
Eroarea ptratic medie
N M
1
er
NM
[Y (i, j ) X (i, j )]
i 1 j 1
2

Raportul semnal zgomot (SNR)


Raportul semnal de vrf zgomot (PSNR)
2552
PSNR 10log (dB )
X i, j Y i, j
2

n tabelul urmtor este prezentat o dependena subiectiv a


calitii imaginii n funcie de PSNR:

PSNR Calitate
> 40dB Foarte bun
30 40dB Bun
< 30dB Slab

Aceste rezultate sunt salvate pentru fiecare imagine comprimat afiat n


spaiul de lucru i pot fi obinute apsnd clic-dreapta pe o imagine iar apoi
selectnd Image Information.
Comunicaii multimedia Laborator 1 3

Cea mai simpl metod de a nchide toate meniurile i imaginile


obinute dintr-o imagine de start este de a nchide imaginea de start.

Folosirea secvenelor de imagini

VcDemo folosete dou tipuri de secvene: fiiere de date YUV i


succesiuni de imagini bmp.

Secvene YUV
Reprezentarea imaginilor color n formatul YUV (Y luminana,
U,V crominana) se face pornind de la reprezentarea RGB (Red
Green Blue) astfel:
Y 0.3R 0.59G 0.11B
U 0.493( B Y )
V 0.877( R Y )
Secvenele YUV conin secvene de imagini brute fr header. Datele
sunt stocate ca o succesiune de blocuri de date Y-U-V. Formatul de
stocare poate fi doar luminan sau luminan-crominan n format
4:2:0 sau 4:2:2. Pentru fiecare secven trebuie s existe un fiier
header cu acelai nume. De exemplu
...\adir\secv.yuv
conine date YUV cu format descris nsecv.hdr. Secvene doar de
luminan sunt coninute n fiiere cu extensia .y.
Secvene BMP
O secven de imagini BMP este de exemplu: imag1.bmp,
imag2.bmp, ..., imag9.bmp, imag10.bmp, etc. Programul nu cunoate
lungimea acestei secvene. Pentru a indica programului c exist o
secvena imag, imaginile trebuie organizate dup cum urmeaz
...\adir\imag.seq
...\adir\imag1.bmp
...\adir\imag2.bmp
...\adir\imag3.bmp
etc
Programul caut fiiere cu extensia *.seq i dup selectare va ncrca
aceast imagine ca prima imagine a secvenei. De aceea imag. Seq trebuie
s fie identic cu imag1.bmp (o copie cu extensie diferit). Toate celelalte
cadre vor fi ncrcate din subdirectorul imag, pn cnd urmtoarea
imagine nu mai poate fi gsit i programul realizeaz c s-a ajuns la ultima
imagine.

Secvenele de imagini pot fi deschise selectnd File/Open Sequence.


Secvenele cu extensii *.yuv, *.y sau *.seq sunt listate i pot fi deschise. Se
4 Comunicaii multimedia Laborator 1

va afia doar primul cadru. Se pot apoi activa modulele programului care
lucreaz cu secvene de imagini.

Folosirea secvenelor comprimate MPEG

Pot fi folosite fiiere cu extensia *.mpg (folosit in general pentru fluxuri


mpeg), *.m1v (flux video mpeg-1) i *.m2v (flux video mpeg-2)

Secvenele MPEG pot fi deschise selectnd File/Open MPEG Stream.


Secvenele mpeg cu extensia .mpg sunt listate i pot fi deschise. Din meniul
pull-down pot fi selectate i fiierele cu extensia *.m1v i *.m2v. Dup
deschiderea fiierului va fi afiat doar o fereastr colorat. Doar dup
activarea modulului de decompresie mpeg, fereastra va fi redimensionat i
va fi afiat secvena video.

2. Decimarea imaginilor (SS)

2.1 Aspecte teoretice


Compresia imaginii se realizeaz prin reducerea rezoluiei imaginii
cu factorul de decimare M, ceea ce corespunde unei scderi substaniale a
calitii. Decimarea cu un factor M este echivalent cu reeantionarea
imaginii cu o frecven de eantionare de M ori mai mic.
Pentru evitarea fenomenului de aliere spectral naintea
decimatorului se folosete un filtru trece-jos.

Filtru
trece-jos

Figura 2.1 Decimarea imaginii

2.2 Opiunile de compresie


Opiunile de compresie sunt artate n Figura 2.2. Exist trei tab-uri
cu urmtorii parametrii:
Comunicaii multimedia Laborator 1 5

Figura 2.2 Opiuni de compresie pentru decimare

Factor: Seteaz factorul de decimare. Imaginea decimat poate fi


vizualizat sub forma sa decimat, adic de dimensiune mai
mic, sau poate fi mrit pn la dimensiunea imaginii
originale folosind replicarea pixelilor.
Filter: n general naintea decimrii se realizeaz o filtrare anti-
aliere. n tab-ul Filter poate fi selectat aplicarea filtrului
antialiere, i lungimea filtrului trece-jos (numrul de
coeficieni ai filtrului). Cu ct filtrul are o lungime mai mare,
cu att este mai abrupt panta funciei de transfer a filtrului
trece-jos.
Spectrum: Pentru a observa decimarea n domeniul spectral se poate
afia spectrul imaginii decimate (sau originale). VcDemo
folosete estimatorul periodogram (cu ferstre) pentru calculul
spectrului. Utilizatorul poate selecta tipul de fereastr ce este
folosit pentru a suprima frecvenele de scpare. De observat
c calculul spectrului nu are nici o influen asupra
procesului propriu-zis de decimare.

Exerciii

1. Pentru imaginea Build512B.bmp vizualizai spectrul. Componenta


DC a imaginii este n centrul spectrului.Decimi imaginea cu diferii
factori. Cum se modific spectrul?
2. Decimai cu factorul 4, fr antialiere i cu un filtru anti-aliere de
lungime 17. Observai diferenele n imagini i spectru.
6 Comunicaii multimedia Laborator 1

3. ncercai i alte imagini de test. Este observabil alierea spectral?


Depinde prerea de imagine sau de factorul de decimare?
Comunicaii multimedia Laborator 1 7

3. Modulaia impulsurilor n cod (PCM)

3.1 Aspecte teoretice


Metoda de compresie PCM implic realizarea urmtoarelor operaii:
1. eantionarea cu frecvena de eantionare f e 1 Te
2. cuantizarea uniform (cu pas constant de cuantizare) sau neuniform
(cu pas variabil de cuantizare), cu M 2 p nivele
3. codarea binar a celor M numere

Figura 3.1 Cuantizarea cu pas uniform

a)

b)

c)

Figura 3.2 a) Semnalul original; b) Semnalul cuantizat i eroarea de


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

3.2 Opiuni de compresie


Opiunile de compresie sunt artate n Figura 3.3. Exist trei tab-uri cu
urmtorii parametrii:
8 Comunicaii multimedia Laborator 1

Figura 3.3 Opiunile de compresie pentru compresia PCM

Bitrate: Selecteaz rata de bit pentru PCM (doar valori ntregi). Este
aplicat un cuantizor uniform pentru o funcie de densitate
de probabilitate uniform.
Dithering: naintea compresiei PCM o cantitate mic de zgomot poate
fi suprapus peste imagine. Acest lucru face ca artefactele
de compresie PCM s fie mai puin observabile. Deoarece
zgomotul este generat local, el poate fi sczut la decodare.
Aceast opiune poate fi selectat sau nu. Cantitatea de
zgomot este controlat de ctre mrimea pasului dither-
ului.
Errors: Cnd datele sunt comprimate din ce n ce mai mult, biii
devin din ce n ce mai vulnerabili la erorile de canal.
VcDemo permite adugarea naintea decodrii a unor erori
de bit aleatoare in fluxul de bit codat. Astfel se pot vedea
efectele erorilor (simple) de canal. Pot fi selectate diferite
rate de erori de bit.

3.3 Exerciii
Comunicaii multimedia Laborator 1 9

1. Gsii pentru imaginea Lena256B.bmp care este numrul minim


de bii pentru care diferena fa de imaginea iniial este acceptabil.
Cte nuane de gri are imaginea n acel caz?
2. Adugai dither la imagine naintea codrii PCM. Reducei numrul
de bii i obinei o imagine de aceeai calitate cu imaginea codat
anterior. Care este ctigul n rata de bit? Care este concluzia dac se iau
n considerare numai evalurile numerice?
3. Utiliznd opiunea Subtract Dither observai ce fenomene apar?
Care este cea mai bun opiune, s utilizm aceast opiune sau nu?
4. Adugai un canal de eroare cu diferite rate de eroare i diferite rate
de bit. Explicai ce se observ.
5. Desenai variaia raportului semnal-zgomot funcie de numrul de
bii pe care se face cuantizarea.

4. Codarea diferenial PCM (DPCM)

4.1 Aspecte teoretice


- Codarea DPCM este un caz particular al tehnicii de compresie denumit
codare predictiv, tehnic prin care informaia deja transmis este
folosit pentru a prezice valori viitoare, diferena dintre ele fiind codat.
- Codarea DPCM se bazeaz pe faptul c orice poate fi prezis din semnal
la codare poate fi reconstruit la decodare.
- Etapele codrii DPCM:
1. Prezicerea valorii pixelului curent x(i, j ) din valorile pixelilor
adiaceni x(i 1, j ) , x(i 1, j 1) , x(i, j 1) ...
2. Calculul diferenei (eroarea de predicie) ntre valoarea curent i
valoarea prezis: x(i, j ) x(i, j ) x (i, j )
3. Codarea erorii prediciei (cuantizarea + codarea VLC = cu numr
variabil de bii) se poate face cu un numr mai mic de bii.
- Pentru predicie se poate folosi:
- PCM: x (n) 0 x (i, j ) 0
- Simpla diferen: x (i, j ) x (i 1, j )
x(i 1, j ) x(i, j 1)
- Media a doi pixeli adiaceni: x (i, j )
2
- Media ponderat a mai muli pixeli adiaceni

n Figura 4.1 este reprezentat schema codorului DPCM, unde sunt folosite
urmtoarele simboluri:
10 Comunicaii multimedia Laborator 1

x (i , j ) x(i, j ) x q (i, j ) 00010100101


x (i , j ) x (i , j ) Q VLC
x (i , j )

~
x (i, j )
x (i, j ) Predictor Memorie
x (i , j )
Figura 4.1 Codorul DPCM

x (i, j ) : semnalul eantionat de intrare;


x (i, j ) : diferena dintre valoarea curent i valoarea calculat;
xq (i, j ) : eroare de predicie cuantificat;
x (i, j ) : valoarea prediciei;
~
x (i, j ) : valoarea reieit din calcul a semnalului eantionat;

Direcia de
parcurgere

Pixelul curent

Figura 4.2 O seciune din harta de bii pentru modelul de codare DPCM

Pentru codorul din Figura 4.1, calculm valoarea pixelului curent


(figura 4.2) pe baza valorilor pixelilor vecini cei mai apropiai:
x (i, j ) z1 a z 2 b z 3 c ,
unde z1 , z 2 , z 3 sunt coeficieni deponderare.
Pentru exemplul dat, x(i, j ) este valoarea pixelului curent, x (i, j ) se
calculeaz ca o expresie liniar (ponderat) a p pixeli anteriori pixelului
curent (n cazul nostru, 3 pixeli, a, b i c), x (i, j ) este imaginea derivat
obinut ca diferena dintre pixelul curent i pixelii anteriori. n procesul de
predicie, imaginea original este pierdut, n timpul procesrii putnd avea
acces doar la valoarea calculat, ~ x (i, j ) , a pixelului curent. Eroarea de
predicie poate fi (opional) cuantificat i utilizat n calculul entropiei
codorului. Practic, eroarea este mic (datorit unei bune corelri spaiale).

4.2 Opiuni de compresie


Opiunile de compresie sunt artate n Figura 2.3. Exist trei tab-uri cu
urmtorii parametrii:
Comunicaii multimedia Laborator 1 11

Figura 4.3 Opiunile de compresie pentru compresia DPCM

Model: Pot fi folosite 4 modele diferite de predicie. Diferenele


principale sunt ntre modelel din stnga (predicie 1-D
vertical) i celelalte trei (predicii 2-D).
Bit Rate: Se selecteaz rata de bit DPCM (doar numere ntregi). Este
aplicat un cuantizor Lloyd-Max optimizat pentru o funcie
de densitate de probabilitate de tip Laplacian. n caseta de
text va fi afiat un estimat al ratei de bit propriu-zise n
urma codrii VLC (Huffmann). Acest numr ar trebui
folosit la reprezentarea grafic a raportului semnal-zgomot
(SNR) n funcie de rata de bit.
Levels: Se poate alege ntre un cuantizor cu un numr par sau
impar de nivele.
Errors: Se permite adugarea naitea decodrii a unui numr
aleator de erori de bit n fluxul codat. Astfel se pot vedea
efectele erorilor (simple) de canal. Pot fi selectate diferite
rate de erori de bit.

The prediction difference or prediction error:


n aceast fereastr este reprezentat diferena de predicie
din interiorul buclei DPCM. Valorile nule sunt reprezentate
n gri, iar valorile pozitive sau negative sunt reprezentate
mai deschis sau mai nchis dect valoarea de gri general.
Diferena de predicie este scalat pentru vizibilitate
maxim.
12 Comunicaii multimedia Laborator 1

4.3 Exerciii

1. Alegei imaginea de test Lena256B.bmp. Se alege primul model de


predicie. Determinai compresia pentru fiecare din cele 6 rate de bit.
2. Care este ctigul n rata de bit pentru aceeai calitate a imaginii
(subiectiv) fa de codarea PCM?
3. Realizai compresia folosind diferite modele de predicie. Comparai
imaginile rezultate.
4. Reprezentai grafic dependena SNR n funcie de rata de bit pentru
ultimul model de predicie.
Comunicaii multimedia Laborator 2 13

LABORATOR 2

1. Codarea n subbenzi (SBC)

1.1 Aspecte teoretice


- S presupunem c un semnal are cea mai mare parte a energiei
concentrate n domeniul frecvenelor joase (de exemplu o imagine,
deoarece componentele pe frecvene nalte reprezint detaliile fine).
- O transmisie mai eficient se poate realiza diviznd domeniul de
frecven n dou sau mai multe subbenzi:

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

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


+

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

Figura 1.1 Codarea i decodarea n subbenzi


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

Figura 1.2 Caracteristica filtrelor de descompunere

- Prin decimare se pstreaz numrul de eantioane constant i se


repartizeaz eantioanele pe subbenzi.
- Pentru primul semnal CODEC 1 va aloca un anumit numr de bii (de
obicei tot atia ct erau i n imaginea original).
14 Comunicaii multimedia Laborator 2

- Deoarece energia coninut n al doilea semnal este mai mic CODEC 2


poate aloca mai puini bii.
- Codorul i decodorul por fi de tip PCM, DPCM, DCT (Discrete Cosinus
Transform), etc.
- Rezult n final pentru semnalul codat o rat de bit mai sczut dect cea
a semnalului original
- Se poate aloca diferit numrul de bii pe eantion pentru fiecare subband
n funcie de caracteristicile semnalului n acea subband. Pentru aceasta
se folosesc filtre de analiz pentru fiecare subband.

2.2 Opiunile de compresie


Opiunile de compresie sunt artate n Figura 1.1. Exist 5 tab-uri cu
urmtorii parametrii:

Figura 1.3 Opiuni de compresie pentru codarea n subbenzi

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


Este posibil alegerea a 6 modele diferite de descompunere.
Cuantizarea subbenzilor poate fi oprit pentru a putea msura
calitatea filtrelor care realizeaz descompunerea n subbenzi i
reconstrucia.
Filter: Aici se poate alege numrul de coeficieni ai filtrelor trece-jos
de analiz. Celelalte filtre sunt derivate din filtrul trece-jos de
analiz. Filtrele folosite sunt cele proiectate de Johnson.
Subs: Se poate selecta modul de cuantizare a subbenzilor. Subbanda
1 (subbanda de joas frecven) poate fi compresat
independent de celelalte subbenzi. Pentru subbenzi se poate
Comunicaii multimedia Laborator 2 15

alege ntre codarea PCM sau DPCM. Cuantizorii folosii


pentru fiecare subband depind de funcia de densitate de
probabilitate selectat aici. Valoarea c reprezint parametrul
de form a funciei de densitate de probabilitate de tip
Gaussian generalizat p( x) a exp( bx ) :
c

Figura 1.4 Funcia densitate de probabilitate de tip Gauss generalizat

Dac se alege DPCM, atunci poate fi selectat i modelul de


predicie DPCM.
Bitrate: Pot fi alese diferite rate de bit. Sunt date anumite rate de bit,
dar nu este esenial pentru compresia n subbenzi, deoarece
prin procedura de alocare a biilor poate fi obinut orice rat
de bit (dup codare) dorit. n mod normal la ieirea
cuantizorilor este aplicat o codare entropic (Huffman), dar
pentru a putea experimenta cu erori de bit de canal, aceast
opiune se poate activa sau dezactiva.
Errors: Se permite adugarea naintea decodrii a unor erori de bit
aleatoare in fluxul de bit codat. Astfel se pot vedea efectele
erorilor (simple) de canal. Pot fi selectate diferite rate de erori
de bit. Erorile de bit pot fi introduse doar dac codarea
entropic la ieirea cuantizoarelor a fost dezactivat.

Subbenzile originale i comprimate


Subbenzile imaginii de comprimat sunt artate n dreapta
imaginii de start. Un exemplu este reprezentat n Figura 1.5
(imaginea din stnga). Subbenzile sunt organizante n funcie
de schema de schema de descompunere aleas. Subbanda de
frecven joas este artat n colul din stnga sus, iar
16 Comunicaii multimedia Laborator 2

subbenzile de frecven cresctoare n dreapta i jos.


Subbenzile sunt scalate pentru a se putea vedea ct mai clar
informatian din fiecare subband. Gri nseamn o valoare
nul, iar valorile negative i pozitive sunt de nuane mai
nchise, respectiv mai deschise dect valoarea zero. Variana
propriu-zis a subbenzilor poate fi gsit n fereastra de text.

Dup cuantizare i codare subbenzile sunt transmise i


decodate la receptor. Subbenzile decodate sunt afiate imediat
sub fereastra cu subbenzile originale (vezi Figura 1.5,
imaginea din dreapta). Subbenzile care au primit zero bii
dup alocarea biilor sunt complet gri. Rezultatele alocrii
propriu-zise a biilor pot fi gsite n fereastra de text. Din nou
subbenzile au fost scalate pentru vizibilitate maxim. Efectele
erorilor de canal sunt de asemenea vizibile n subbenzile
individuale.

Figura 1.5 Subbenzile original i comprimat. Subbenzile sunt scalate


pentru vizibilitate maxim

1.3 Exerciii
Comunicaii multimedia Laborator 2 17

4. Deschidei imaginea Lena256B.bmp i realizai descompunerea pe


subbenzi. Pentru un numr diferit de coeficieni ai filtrului observai
imaginea rezultat codat.
5. Pentru aceeai imagine, alegei o structur de descompunere i un anumit
filtru. Modificnd tipul de codare al subbenzilor, ntre DPCM i PCM,
observai cum apare imaginea codat i funcie de parametrul c.
6. Selectai un filtru cu 16 coeficieni, o descompunere pe 28 subbenzi i
alegei compresia PCM pentru toate subbenzile. Alegei o valoare optim
pentru c. Observai ctigul SNR n cazul codrii entropice.
7. Pentru diferite grade de descompunere, alegnd codarea entropic,
observai SNR.
8. Pentru imaginea Lena256B.bmp alegei un anumit tip de codare al
subbenzilor, precum i un anumit parametru c. Variai numrul de
subbenzi folosite n descompunere precum i tipul filtrelor. Cum variaz
SNR funcie de rata de bit?
9. Deschidei imaginile Zone256B.bmp i Noise256B.bmp. Explicai
coninutul subbenzilor obinute.

2. Transformata Cosinus Discret (DCT)

2.1 Aspecte teoretice


- Conversie imagine frecven.
- Importana informaiei de frecven:
- variaii lente de intensitate n imagine sunt cel mai bine percepute de
ochi.
- variaiile lente corespund frecvenelor joase.
- tranziiile brute (pixelii de zgomot) corespund frecvenelor nalte i
nu sunt percepute de ochi.
- Pentru un bloc din imagine de 8 x 8 pixeli, DCT este dat de:
7 7
Cmn km kn I yx cos
2 x 1 m cos 2 y 1 n
x 0 y 0 16 16
1
2 2 , pentru m, n 0
unde km , kn
1, n rest
2
- Coeficientul C00 se numete coeficient DC i reprezint frecvena
spaial 0 sau media valorilor pixelilor din bloc.
18 Comunicaii multimedia Laborator 2

- Ceilali coeficieni se numesc coeficieni AC i reprezint frecvenele


spaiale orizontale i verticale din bloc.
- DCT nu realizeaz compresia datelor
- Pentru decodare se folosete Transformata Cosinus Discret Invers
(IDCT):
7 7
I xy ku kv Cvu cos
2 x 1 u cos 2 y 1 v
u 0 v 0 16 16
1
2 2 , pentru u, v 0
unde ku , kv
1, n rest
2

2.2 Opiuni de compresie


Opiunile de compresie sunt artate n Figura 3.3. Exist trei tab-uri cu
urmtorii parametrii:

Figura 2.1 Opiunile de compresie pentru DCT

Size: Aici se poate selecta dimensiunea blocurilor pe care se


calculeaz Transformata DCT (2x2, 4x4, 8x8, 16x16).
Cuantizarea coeficienilor DCT poate fi oprit pentru a
msura calitatea Transformatei DCT Direct i Invers.
Coefs: Aici poate fi selectat tipul de cuantizare a coeficienilor DCT.
Coeficientul DC (coeficientul 1) poate fi compresat
independent de coeficienii DCT de frecvene mai mari. Se
Comunicaii multimedia Laborator 2 19

poate alege ntre codarea PCM i DPCM. Cuantizorii


folosii pentru fiecare din coeficienii DCT depind de funcia
de densitate de probabilitate aleas. Valoarea c reprezint
parametrul de form a funciei de densitate de probabilitate
de tip Gaussian generalizat p( x) a exp( bx ) . Dac se
c

alege DPCM, atunci poate fi selectat i modelul de predicie


DPCM. Coeficienii DCT cu acelai index (provenii din
blocuri DCT diferite) sunt toi cuantizai folosind acelai
cuantizor.
Bitrate: Pot fi alese diferite rate de bit. Sunt date anumite rate de bit,
dar nu este esenial pentru compresia folosind DCT,
deoarece prin procedura de alocare a biilor poate fi obinut
orice rat de bit (dup codare) dorit. n mod normal la
ieirea cuantizorilor este aplicat o codare entropic
(Huffman), dar pentru a putea experimenta cu erori de bit de
canal, aceast opiune se poate activa sau dezactiva.
Errors: Se permite adugarea naintea decodrii a unor erori de bit
aleatoare in fluxul de bit codat. Astfel se pot vedea efectele
erorilor (simple) de canal. Pot fi selectate diferite rate de
erori de bit. Erorile de bit pot fi introduse doar dac codarea
entropic la ieirea cuantizoarelor a fost dezactivat.
Display: Coeficienii DCT obinui dup transformare i cuantizare
pot fi reprezentai n dou moduri:
Ca o coleie de coeficieni DCT. n acest caz
coeficienii DCT cu acelai index din toate
blocurile DCT formeaz un singur set. Aceste
seturi de coeficieni sunt ca i subbenzile n
codarea n subbenzi i permit nelegerea uoar a
rezultatului alocrii de bii
Ca blocuri DCT la locaia spaial corect. n acest
caz coeficienii DCT sunt reprezentai ca nite
blocuri NxN care se afl la poziia spaial
corespunztoare celor NxN pixeli, pentru care se
calculeaz sunt calculai aceti coeficieni. Din
motive de vizibilitate coeficienii DCT sunt scalai.
Acest mod de afiare explic coninutul de
frecvene locale ale unei imagini i dup alocarea
biilor arat ce pri ale imaginii sunt greu sau
uor de comprimat.
20 Comunicaii multimedia Laborator 2

Coeficienii DCT originali i comprimai


Coeficienii DCT a imaginii ce trebuie comprimat sunt
artai n dreapta imaginii de start. Coeficienii DCT sunt
organizai n funcie de modul Display selectat. Pentru a
vizualiza informaia din subbenzi, subbenzile sunt scalate
pentru vizibilitate maxim. Gri nseamn o valoare nul,
iar valorile negative i pozitive sunt de nuane mai nchise,
respectiv mai deschise dect valoarea zero. Variana propriu-
zis a subbenzilor poate fi gsit n fereastra de text.

Dup cuantizare i codare coeficienii DCT sunt transmie i


decodai la receptor. Coeficienii DCT cuantizai sunt afiai
imediat sub fereastra cu coeficienii DCT originali (vezi
Figura 2.2, imaginea din stnga). Coeficienii DCT care au
primit zero bii dup alocarea biilor sunt complet gri.
Rezultatele alocrii propriu-zise a biilor pot fi gsite n
fereastra de text. Din nou coeficienii DCT au fost scalai
pentru vizibilitate maxim. Efectele erorilor de canal sunt de
asemenea vizibile n coeficienii DCT individuali.
Coeficienii DCT cuantizai sunt organizai n funcie de
modul de Display selectat. Imaginea din dreapta din Figura
2.2 arat coeficienii DCT cuantizai dac opiunea DCT
Blocks este selectat.

Figura 2.2 Coeficieni DCT compresai (scalai pentru vizibilitate maxim)


pentru cele dou tipuri de afiare (stnga: colecii, dreapta: blocuri DCT)
Comunicaii multimedia Laborator 2 21

2.3 Exerciii
1. Alegei imaginea Lena256B.bmp. Aceast imagine este transformat n
coeficieni DCT. Verificai calitatea imaginii reconstruite pentru diferite
dimensiuni ale blocului DCT. n ce msur corespunde teoria cu
implementarea practic?
2. Pentru imaginea Lena256B.bmp selectai transformata DCT 8x8 i
compresie PCM pentru toi coeficienii DCT. Alegei o valoare rezonabil
pentru parametrul c. Desenai dou curbe SNR - numr de bpp, cu i fr
codarea entropic. Ct de mult compresie suplimentar ( sau ce SNR )
d codarea entropic?
3. Repetai punctul (2) pentru valori incorecte ale lui c. Fii ateni la
diferenele dintre numrul de bpp selectat, cel prezis i cel rezultat n
urma compresiei. Explicai diferenele observate.
4. Repetai punctul (3) utiliznd setrile corecte pentru parametrul c, pentru
alte dou cazuri, i anume:
- compresie DPCM pentru toi coeficienii
- compresie DPCM pentru primul coeficient DCT i compresie PCM
pentru restul de coeficieni.
Ce ctig de performane se obine utiliznd compresia adiional DPCM?
5. Repetai punctul (3) pentru imaginea Noise256B.bmp. Observai
variana coeficienilor DCT i rezultatul n urma alocrii biilor. Comparai
rezultatele cu compresia DPCM aplicat acestei imagini.
6. ncrcai imaginea Lena256B.bmp i calculai dependena SNR-numr
de bpp utiliznd blocuri DCT de diferite mrimi, pstrnd compresia
coeficienilor DCT fix ( de exemplu, utiliznd DPCM pentru primul
coeficient DCT i PCM pentru restul coeficienilor, un model de predicie
fixat i un parametru c fixat ).
7. Examinai urmrile erorilor asupra compresiei DCT pentru diferite
probabiliti de eroare, diferite mrimi ale blocurilor DCT i diferite
modele DPCM de predicie. Explicai structura imaginii afiate.
Comparai efectele prezenei erorilor asupra coeficienilor DCT i asupra
imaginii decodate.
8. Pornii programul Matlab. Rulai programul dctdemo. Modificai numrul
de coeficieni DCT cu care se face decompresia i comparai calitatea
imaginii decomprimate. Ci coeficieni sunt necesari pentru a se obine o
aproximare rezonabil a imaginii originale?
22 Comunicaii multimedia Laborator 2

3. Codarea JPEG de baz

3.1 Aspecte teoretice


- JPEG (Joint Photographic Experts Group) este un standard ISO i ITU-T
realizat ntre 1982 i 1992 i stabilete compresia i codarea imaginilor cu
tonuri de gri sau color.
- JPEG ofer rate de compresie: ntre 10 i 50 (respectiv 0.5 pn la 2 bii
pe pixel)
- Calitatea imaginii decompresate:

Compresie Calitate
0.25 0.5 bii/pixel color moderat spre bun
0.5 0.75 bii/pixel color bun spre foarte bun
0.75 1.5 bii/pixel color excelent
> 1.75 bii/pixel color nu se poate face diferena cu imaginea
original

- modul JPEG de baz, cu pierderi, care trebuie s fie suportat de toate


implementrile JPEG:
- utilizeaz DCT;
- coeficienii DC sunt codai DPCM;
- coeficienii AC sunt codai Huffman;
- Codorul JPEG

diferena DC
Bloc de
imagine
8x8
coeficienii AC
Figura 3.1 Codorul JPEG
- Decodorul JPEG

diferena DC
Imaginea
reconstruit
coeficienii AC
Figura 3.2 Decodorul JPEG
Comunicaii multimedia Laborator 2 23

- Pixelii tuturor componentelor unei imagini sunt codate cu acelai numr


de bii: modul de codare JPEG fr pierderi utilizeaz 8 sau 12 bii per
pixel iar modurile cu pierderi utilizeaz 2 pn la 12 bii per pixel.
- Imaginea este mprit n uniti de date de 8x8 pixeli

Figura 3.3 mprirea n uniti de date

Pregtirea imaginii
- Procesarea unitilor datelor se poate face:
component cu component, i parcurse de la stnga la dreapta, i de
sus n jos. Acest mod este cunoscut sub numele de procesare
nentreesut (vezi Figura 3.4a). Utiliznd acest mod pentru o imagine
codat RGB, de nalt rezoluie, vor fi afiate pe rnd, componentele
de rou, apoi, verde, i la sfrit albastru.
prin procesare ntreesut (vezi Figura 3.4b), la care se proceseaz
pentru un bloc toate componentele la rnd, iar apoi se trece la blocul
urmtor
24 Comunicaii multimedia Laborator 2

EMBED Word.Picture.8

Figura 3.4 Procesarea unitilor de date: a)procesare nentreesut,


b)procesare ntreesut

Aplicarea Transformatei Cosinus Discret


- Transformata DCT se aplic pe blocuri de imagine de dimensiuni 8x8
pixeli.
- Pentru un bloc din imagine de 8 x 8 pixeli, DCT este dat de:
7 7
Cmn km kn I yx cos
2 x 1 m cos 2 y 1 n
x 0 y 0 16 16
1
2 2 , pentru m, n 0
unde km , kn
1, n rest
2

Cuantizarea i codarea coeficienilor DCT


- Coeficientul DC este puternic corelat pentru toate blocurile de imagine.
- Coeficienii DC din fiecare bloc sunt codai DPCM (diferena ntre
coeficienii DC ntre blocuri succesive).

DCi-1 DCi

DIFF= DCi-DCi-1
Bloci-1 Bloci

Figura 3.5 Cuantizarea i codarea coeficienilor DC


Comunicaii multimedia Laborator 2 25

- Dup cuantizare, matricea 2D care conine cei 64 coeficieni DCT


cuantizai este transformat ntr-un vector ( o matrice 1D ) prin scanarea
n zig-zag adic coeficienii corespunztori frecvenelor mai mici (i de
valori mari) sunt codai primii urmai de cei cu frecvene mai mari (ce au
valori foarte mici, sau aproximativ zero).

Figura 3.6 Ordinea de procesare a coeficienilor DCT

- Rezultatul este un ir de bii ce are o caracteristic: n el se gsesc


subiruri de bii de aceeai valoare ( numai de 0 sau numai de 1 ), deci de
redundan foarte mare. Acest lucru permite o codare entropic (codarea
Huffman), ceea ce mrete substanial raportul de compresie al ntregului
proces. Codarea Huffman produce o rat de compresie de aproximativ 2.

3.2 Opiuni de compresie


Opiunile de compresie sunt artate n Figura 2.3. Exist ase tab-uri cu
urmtorii parametrii:

Figura 3.7 Opiunile de compresie pentru compresia JPEG


26 Comunicaii multimedia Laborator 2

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


selectarea factorului de calitate rata de bit este definit
implicit, dar aceasta nu este cunoscut dinainte. n locul
setrii factorului de calitate poate fi setat rata de bit.
Calitatea corespunztoare acestei rate de bit va fi
determinat printr-o simpl procedur de cutare. Factorul
de calitate rezultant apare n fereastra de text.
Quant: Cuantizarea coeficienilor DCT este realizat folosind
cuantizorii JPEG standard, care pot oricum fi influenai de
selectarea unei matrici specifice de cuantizare sau de
normare. Matricea de normare poate fi selectat aici.
Opiunile sunt:
Matricea de normare JPEG standard pentru
informaia de luminan
Matricea de normare JPEG standard pentru
informaia de cromonan
O matrice de normare cu un acelai coeficient de
normare (weight) pentru toi coeficienii DCT
(weight=50)
O matrice de normare de pondere mare, care d
o pondere mai mare coeficienilor DCT de
frecven mare dect celor de frecvene mici.
Aceast matrice a fost adugat doar pentru
scopuri educaionale i nu va fi niciodat utilizat
n practic.
De remarcat c la JPEG att factorul de calitate ct i SNR-
ul variaz dac se alege o alt matrice de normare.

Factorul de calitate selectat de ctre utilizator i matricea de


normare N (u , v) sunt folosii dup cum urmeaz pentru a
cuantiza coeficienii DCT F (u , v) :
F (u , v )
F * (u , v) NINT
Q N (u , v)
unde valoarea minim a lui Q N (u , v) este 1.0. Q este legat
de factorul de calitate Q selectat de utilizator n modul
urmtor:
Comunicaii multimedia Laborator 2 27

Figura 3.8 Opiunile de compresie pentru compresia JPEG

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


fr codare entropic (de exemplu codarea cu lungime fix)
pentru coeficienii DCT, codarea standard VLC, sau un tabel
VLC optimizat pentru imaginea considerat.
Smooth: Dac se bifeaz opiunea, imaginea este puin netezit pentru
a suprima artefactele de blocare.
Markers: Pentru JPEG pot fi injectate erori n fluxul JPEG. Asta
nseamn c codurile VLC, informaia din header sau alte
informaii importante pot fi alterate. Pentru a bloca efectul
erorilor de decodare VLC, care se nrutesc progresiv, se
pot introduce markeri n fluxul de bii JPEG. Periodicitatea
acestor markeri poate fi setat aici. De observat c, dac se
introduc mai muli markeri, rata de bit general va crete,
sau dac a fost setat o anumit rat de bit SNR-ul va
scdea.
Errors: Se permite adugarea naitea decodrii a unui numr aleator
de erori de bit n fluxul codat. Astfel se pot vedea efectele
erorilor (simple) de canal. Pot fi selectate diferite rate de
erori de bit. Erorile de bit pot eventual corupe informaii
cruciale cum ar fi informaia din header (dimensiunea
imaginii, tabelele VLC). n cazul n care erorile sunt prea
grave, decodarea se ntrerupe.

Fluxul comprimat de bii:


Imaginea comprimat este scris pe disc ntr-un fiier cu
numele JpegCodedImageBitStream.jpg. Acest fiier
conine datele JPEG comprimate, folosind protocolul JFIF
28 Comunicaii multimedia Laborator 2

pentru headere. Fiierul poate fi vizualizat cu orice aplicaie


de editare de imagini.
Vizualizarea coeficienilor DCT:
Modulul JPEG nu arat coeficienii (cuantizai) DCT. Pentru
a ii vizualiza, folosii opiunea Set as start image pe
imaginea JPEG decomprimat. Apoi rulai modulul de
compresie JPEG pentru aceast imagine, folosind blocuri
DCT 8x8 i debifnd opiunea de codare a coeficienilor
DCT. Atunci vor fi afiai coeficienii DCT calculai din
imaginea JPEG comprimat. Oricare din cele dou moduri
de afiare sunt instructive pentru studiu. Figura 3.???? Arat
un exemplu:

Figura 3.9 Coeficieni DCT comprimai folosind JPEG (scalai pentru


vizibilitate maxim)

3.3 Exerciii

1. ncrcai imaginea Lena256B.bmp. Utilizai matricea standard de


normalizare a luminanei. Desenai trei grafice SNR-numr de bpp, cte
unul pentru fiecare mod de codare entropic ales. Ce SNR suplimentar ne
ofer codarea entropic? Pe aceleai grafice, desenai caracteristica
Quality-SNR. Ce observai n legtur cu aceste grafice?
2. Repetai punctul (1) pentru o matrice de normare uniform distribuit ( flat
cuant ). Observai c SNR-ul obinut n acest caz este mai mare! Dai o
justificare pentru utilizarea matricii standard de normare n loc de
matricea de normare uniform distribuit.
Comunicaii multimedia Laborator 2 29

3. Comparai cuantizarea coeficienilor DCT n codarea JPEG cu cea


rezultat din modul de compresie DCT, de exemplu, pentru imaginea
Lena256B.bmp la o rat de 1bpp. Putei gsi diferenele? Explicai.
4. Examinai efectele fenomenului de smoothing asupra imaginii JPEG
decodate.
5. Determinai raportul de scdere a SNR-ului n urma introducerii de markeri
n fiierul codat JPEG.
6. Examinai consecinele introducerii biilor de eroare asupra compresiei
JPEG, la diferite valori ale probabilitilor.
30 Comunicaii multimedia Laborator 3

LABORATOR 3

1. Codarea JPEG 2000

1.1 Noiuni teoretice


- Standardul JPEG2000 a fost gndit pentru mbuntirea standardului
JPEG
- JPEG2000 s-a dorit a fi mai flexibil, cu un raport de compresie mult
mai mare (pn la 300:1), cu o structur mai unitar.
- JPEG2000 utilizeaz n locul Tansformatei Cosinus Discrete
Transformata Wavelet Discret
- Standardul JPEG2000 permite ambele metode de compresie: cu
pierderi i fr pierdei. Paii algoritmului de codare sunt aceeai ca
pentru standardul JPEG clasic i sunt ilustrai n Figura 1.1:

Imagine
Transf.
original Pregtire
Wavelet Cuantizare Codare
imagine
Discret

Imagine
comprimat
mpachetare Controlul
date fluxului

Figura 1.1: Schema algoritmului de codare

Pregtirea imaginii
- Conform standardului JPEG2000 pregtirea imaginii este compus din
urmtoarii pai (vezi Figura 1.2):
- partiionarea imagini n cadre
- ajustarea nivelului datelor
- o transformare color ireversibil
- Pentru situaia n care imaginea care trebuie comprimat este mai mare
dect memoria disponibil s-a prevzut posibilitatea partiionarea
imaginii n dreptunghiuri disjuncte numite cadre
- Valorile datelor de intrare trebuie s fie ntr-o gam centrat n jurul
lui zero, deoarece standardul opereaz cu filtrri de tip trece-sus. Aa
se explic necesitatea celei de a doua etape de ajustare nivel.
- Al treilea pas n aceast etap const dintr-o tranformare ireversibil a
matricii color. Tipul de transformare depinde de reprezentarea iniial
Comunicaii multimedia Laborator 3 31

a imaginii. Se dorete ca imaginea care va intra n a doua etap a


procesului de compresie s fie reprezentat n formatul YCRCB.

I II

Pregtire
imagine III IV

Partiionare
imagine

Ajustare [0, 2 N 1] [2 N 1 , 2 N 1 ]
nivel

Transformare
color

Figura 1.2: Etapele pregtirii imaginii

Aplicarea Transformatei Wavelet


- Transformata Wavelet are expresia:

c j,k
f (t ) j ,k (t )dt

unde c j , k sunt coeficienii Wavelet discrei iar j , k (t ) sunt funciile de


baz Wavelet care se obin prin scalarea i translatarea unei funcii
Wavelet mam dup cum urmeaz:
j
j , k (t ) 2 (2 j t k ) ,
2

unde k este parametrul de translaie, j este parametrul de dilatare sau


compresie, iar (t ) este funcia Wavelet mam.
- Un exemplu de funcie Wavelet mam este urmtoarea:
32 Comunicaii multimedia Laborator 3

Figura 1.3: Funcia Wavelet Daubechies

- Standardul aplic Transformata Wavelet pe fiecare cadru a imaginii cu


ajutorul algoritmului piramidal reprezentat n Figura 1.4:

Q dj f
2
2
P dj 1 f
2
P dj f
2
2

Filtru trece-sus

Figura 1.4: Algoritmul piramidal de aplicare a Transformatei Wavelet


- Algoritmul realizeaz descompunerea Wavelet ortogonal a
d d
semnalului discret P2 f la rezoluia 2 j 1 n semnalul P2 f numit
j 1 j 1

aproximarea discret a lui f t la rezoluia 2 j i n semnalul numit


d
detaliu discret Q2 f a lui f(t) la rezoluia 2 j .
j

- Imaginea fiind un semnal bidimendional se aplic transformata


wavelet pe linii i coloane aa cum este prezentat n Figura 1.5

Imagine filtrat pe Imagine filtrat pe


Imagine original linii linii i coloane

I II

III IV

Figura 1.5: Aplicarea transformatei wavelet la o imagine pe un nivel


- Cele patru subimaginii sunt:
1) I Imaginea filtrat trece-jos pe linii i coloane ( P2d1 f ),
Comunicaii multimedia Laborator 3 33

notat n literatura de specialitate cu LL (low subbands


for row and column filtering)
2) II Imaginea filtrat trece-sus pe linii i trece-jos pe
coloane ( Q2d1 f , apoi P2d1 f ), notat n literatura de
specialitate cu HL (high subbands for row filtering and
low subbands column filtering)
3) III Imaginea filtrat trece-jos pe linii i trece-sus pe
coloane ( P2d1 f , apoi Q2d1 f ), notat n literatura de
specialitate cu LH (low subbands for row filtering and
high subbands column filtering)
4) IV Imaginea filtrat trece-sus pe linii i coloane ( Q2d1 f
), notat n literatura de specialitate cu HH (high
subbands for row and column filtering)

LL2
LL1 HL1 HL2 HL1

LH2 HH2
LH1 HH1 LH1 HH1

Imaginea dup Imaginea dup


prima descompunere a doua descompunere
HL3 HH LL4 HL4 HH4
LL3 3

HL2 LH4 HL2


LH3
HL1 HL1
LH2 LH2
HH2 HH2
LH1 HH1 LH1 HH1

Imaginea dup Imaginea dup


a treia descompunere a patra descompunere

Figura 1.6: Exemplu de aplicare a transformatei wavelet pe patru nivele de rezoluie


- Subimaginea LL va fi corespondentul imaginii originale, dar la o
rezoluie mai mic cu unu
- Pentru aceast subimagine se aplic din nou Transformata Wavelet n
acelai mod. Specificaiile standardului JPEG2000 permit efectuarea
ntre 0 i 32 de nivele de rezoluie (aplicare Transformatei Wavelet de
34 Comunicaii multimedia Laborator 3

32 de ori). n Figura 1.6 se prezint patru etape de aplicare a


transformatei cu sub-imaginile corespunztoare:

Cuantizarea
- se face cuantizarea coeficienilor transformatei wavelet cu un
cuantizor cu caracteristica uniform i zon moart n jurul lui zero
pentru fiecare subimagine.
- Pentu o subimagine se utilizeaz un pas de cuantizare, fiecare sub-
imagine avnd propiul pas de cuantizare
- Relaia cuantizorului este dat de relaia:
Val .coef .
q sign(Val .coef .)
sub imagine

Codarea
- Fiecare subimagine a unui cadru a unei imagini este mprit n
uniti i mai mici, numite blocuri de cod cu dimensiuni de tipul
64x64 sau 32x32 pixeli.
- n cadrul unui bloc de cod citirea valorilor cuantizate ale coeficienilor
transformatei wavelet se face n benzi, fiecare band avnd o nlime
de patru eantioane.
- La rndul lor citirea benzilor se face de la stnga la dreapta i de sus n
jos, aa cum este prezentat in Figura 1.7

.
..
..
..
..
..
. . . .
. . . . .
. . . .
. . . .
. . . .

Figura 1.7: Modul de baleiere a coeficienilor ntr-un bloc de cod


- Codarea se face ca la JPEG modul progresiv lund n considerare
paralelipipede de bii
- De notat faptul c tot procedeul de codare pentru un bloc de cod are
loc la nivel de plan de bit i nu la nivel de bit
- Pentru codarea planului de bit se utilizeaz un codor aritmetic binar
adaptiv bazat pe context
- Codarea cuprinde trei etape numite:
- propagarea importanei (significance propagation)
- rezoluia amplitudinii (magnitude refinement)
Comunicaii multimedia Laborator 3 35

- eliminarea repetiiilor (clean-up)


- Aceste etape ale compresiei sunt aplicate planelor de bit ncepnd cu
planul LSB. Singurul care face excepie este planul MSB la care se
utilizeaz doar eliminarea repetiiilor (vezi Figura 1.8)

W1 W5 W9 W13

W2 W6 W10 W14
Planul LSB al biilor
W3 W7 W11 W15

W4 W8 W12 W16
Planul MSB al biilor

Figura 1.8: Aezarea biilor ntr-un paralelipiped

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


calitate este ansamblul de plane de bit consecutive dintr-o regiune a
imaginii.
- Fiecare bloc de cod poate contribui cu un anumit numr de plane de
bit codate la un nivel de calitate a imaginii.

Controlul debitului
- Controlul ratei de debit este operaia prin care fluxul de date este
alterat n scopul atingerii unui debit de date dorit
- trebuie s fie se analizeze toate blocurile comprimate i s se decid
care din ele s fie trunchiat, dup o stategie care s minimizeze efectul
distorsiunilor

Structura fluxului de date


- Datele prelucrate pn n acest moment sunt mprite n pachete, care
corespund diferitelor regiuni ale unei imagini
- O regiune este o mulime de blocuri de cod la un nivel de rezoluie
fixat
- Un exemplu de astfel de regiuni pentru 4 nivele de rezoluie este
prezentat n Figura 1.9:
36 Comunicaii multimedia Laborator 3

Culoarea fundalului
reprezint diverse nivele de
rezoluie, iar desenul
reprezint o regiune

Figura 1.9: Exemplu de partiie a regiunilor n cadrul diferitelor


rezoluii pentru o imagine
- Un pachet este compus dintr-un header i datele comprimate.
- Pachetele sunt multiplexate astfel nct s formeze un flux de date
(vezi Figura 1.10)

Header Flux date Flux date .. Flux date Sfrit


Imagine partiie partiie partiie partiie

Header Flux date


partiie pachete

Pachet Pachet .. Pachet

Header Date
pachet comprimate

Figura 1.10: Structura fluxului de date

1.2 Opiuni de compresie


Opiunile de compresie sunt artate n Figura 1.11. Exist ase tab-uri cu
urmtorii parametrii:
Comunicaii multimedia Laborator 3 37

Figura 1.11 Opiunile de compresie pentru compresia JPEG2000

Encode: Aici se poate rata de bit pentru codare n cazul ncare nu


s-a ales la tab-ul de cuantizare opiunea Lossless quant
Quant: Aici se poate selecta tipul de cuantizare a coeficienilor
Wavelet. Dac se bifeaz opiunea Lossless quant,
atunci cuantizarea coeficienilor Wavelet se realizeaz
fr pierderi i tab-urile Encode i Decode nu vor mai fi
active. Tot aici se poate selecta dimensiunea blocurilor de
cod ce urmeaz a fi codate.
Levls: Se selecteaz numrul de nivele de rezoluie. VcDemo
permite alegera de pn la 9 nivele de rezoluie, dar
standardul JPEG2000 permite un numr maxim de 32 de
nivele de rezoluie.
Decode: Aici se poate rata de bit la care s se fac decodarea. Dac
se alege o rat de bit mai mic dect la codare, atunci se
pierde din Calitatea imaginii decodate. Alegerea unei rate
de bit foarte mici poate duce la alterarea complet a
imaginii decodate.
Tiling: n etapa de pregtire a imaginii, aceasta poate fi
partiionat n mai multe subimagini care vor fi procesate
complet separat. Aici se poate alege dimensiunea n pixeli
a subimaginilor

Fluxul comprimat de bii:


Imaginea comprimat este scris pe disc ntr-un fiier cu
numele NumeImagineOriginala_BitStream.jp2. Acest
fiier conine datele JPEG2000 comprimate
38 Comunicaii multimedia Laborator 3

1.3 Exerciii

1. ncrcai imaginea Lena256B.bmp. Bifai opiunea Lossless quant


i observai influena dimensiunii blocului de cod asupra dimensiunii
fiierului JPEG2000 generat.
2. Setai dinmensiunea blocului de cod la 32 i numrul de nivele de
rezoluie la 5. Trasai curba SNR - rat de bit. Comparai aceast curb
cu cea obinut pentru codorul JPEG. Cu ce codor se obine o calitate
mai bun?
3. Setai dinmensiunea blocului de cod la 32 i numrul de nivele de
rezoluie la 5. Calculai, variind rata de bit, ntre ce limite variaz
factorul de compresie.
4. Pentru o rat de bit fixat variai numrul de nivele de rezoluie. Cum
depinde SNR-ul de numrul de nivele de rezoluie? Ce numr minim
de nivele ar trebui ales astfel nct SNR-ul s nu mai varieze
semnificativ?
5. Observai ce se ntmpl dac rata de bit la decodare este mai mic
dect cea la codare.
6. Pentru dimensiunea blocului de cod i numrul de nivele de rezoluie
fixate variai n tab-ul Tiling dimensiunea subimaginilor n care s
fie mprit imaginea iniial. Influeneaz acest lucru calitatea
imginii decodate? Cum? Cnd este folositoare acest opiune?
7. Comparai caliatea imaginilor JPEG i JPEG2000 codate la rate de bit
mici i la rate de bit mari. Ce observai?

2. Estimarea micrii

2.1 Opiuni de compresie VcDemo


Comunicaii multimedia Laborator 3 39

Opiunile de compresie sunt artate n Figura 2.1. Exist cinci tab-uri cu


urmtorii parametrii:

Figura 2.1 Opiunile de compresie pentru DCT

Hierarchy: Aici se poate selecta algoritmul de potrivire a blocurilor


standard sau ierarhic (pe dou sau trei nivele). n funcie
de acest tab, unele dintre celelalte tab-uri i pot schimba
coninutul deoarece de exemplu mrimea blocurilor
depinde de nivelul de rezoluie.
Search: Se pot alege diferite strategii de cutare pentru estimarea
micrii: (i) cutarea complet, (ii) cutarea n cruce, (iii)
cutarea in N pai. De remarcat c strategia de cutare
complet poate fi extrem de consumatoare de timp
Size: Aici se alege dimensiunea blocurilor (ptrate), pentru care
este estimat vectorul de micare. Pentru estimarea
ierarhic dimensiunea blocurilor este dimensiunea
nivelului de rezoluie superior. Dimensiunea celorlalte
nivele de rezoluie sunt determinate de ctre program
(vezi fereastra de ieire)
Displmnt: Deplasamentul maxim poate fi selectat pentru cutare
complet i cutare n cruce. Pentru cutarea n N
pai deplasamentul este determinat de ctre algoritm. Cu
ct este mai mare deplasamentul maxim, cu att este mai
mare i efortul de calcul. Pentru estimarea ierarhic, sunt
date deplasamentele maxime la diferitele nivele de
rezoluie (de la rezoluie mic la rezoluie mare)
40 Comunicaii multimedia Laborator 3

fereastra de
cutare
dy

dx dx

dy blocul curent

Figura 2.2 Deplasamentul maxim pe orizontal dx i deplasamentul maxim


pe vertical d y

N-Step: Pentru strategia de cutare N-Step poate fi selectat


numrul de nivele (pai). Cu ct este mai mare numrul
de pai, cu att este mai mare i deplasamentul maxim
admisibil. Pentru estimarea ierarhic este dat numrul de
pai pentru fiecare nivel de rezoluie.
Video: Pot fi selectate diferite opiuni de afiare. Cmpurile de
micare estimate sunt salvate intern, astfel nct opiunea
Display again refolosete cmpurile de micare deja
estimate. Schimbarea opiunilor de estimare a micrii
necesit reestimarea cmpului de micare

Imaginile afiate:
Este estimat micarea pentru fiecare cadru al secvenei
de imagini. Apar patru ferestre (vezi Figura 2.3):
Secvena de imagini original (stnga sus)
Diferena dintre dou cadre consecutive (dreapta sus)
Predicia compensat de micare a imaginii actuale,
peste care este suprapus cmpul de micare (stnga
jos). Punctul de pornire al vectorului de micare este
indicat printr-un punct negru
Diferena compensat de micare dintre cele dou
cadre consecutive (dreapta jos)

Fereastra text conine pentru fiecare cadru variana


cadrului original, variana diferenei dntre cadre, variana
Comunicaii multimedia Laborator 3 41

diferenei dintre cadre compensat de micare i un


estimat al entropiei difereniale a cmpului de micare
estimat (n bii/vector). Pentru calculul estimatului
entropiei este aplicat o codare DPCM unidimensional
fr pierderi asupra cmpului de vectori de micare.este
calculat histograma diferenei DPCM. Din aceast
histogram este estimat entropia cmpului de vectori
(totalitatea componentelor orizontale i verticale)

Figura 2.3: Ferestrele afiate pentru Estimarea micrii

2.3 Exerciii

ncrcai secvena car.seq i folosii estimarea micrii cu strategia de


cutare Full Search pe blocuri 8x8 i un deplasament maxim de 8 pixeli

1. Discutai de ce este avantajos codarea unei imagini diferen dect a


imaginii originale. Luai n calcul factorul ctig de predicie.
2. Ct de mare este ctigul obinut, dac, pe lng folosirea diferenei
ntre cadre, se folosete i compensarea micrii?
3. Merit s folosim compensarea micrii n orice parte a imaginii?
Dac nu, n ce parte a imaginii pare s nu funcioneze compensarea
micrii?
42 Comunicaii multimedia Laborator 3

4. Comparai eficiena compensrii micrii pentru diferite


deplasamente. Care ar fi cea mai bun alegere avnd n vedere att
complexitatea ct i factorul de compresie n acest caz?
5. Comparai eficiena compensrii micrii pentru diferite dimensiuni
ale blocurilor. Discutai efectele observate.
6. Comparai eficiena compensrii micrii pentru cele trei strategii de
cutare diferite i discutai care ar fi compromisul ntre complexitate i
ctig de predicie
7. Comparai diferenele de eficien ntre potrivirea blocurilor standard
i potrivirea blocurilor ierarhic cu 2 sau 3 nivele.

Lansai programul Matlab. Rulai programul demonstrativ


estimarea_miscarii. Selectai o imagine de test din caseta de derulare.

8. Care este cea mai bun strategie de cutare din punctul de vedere al
erorii i din punctrul de vedere al timpului de calcul pentru acelai
numr de blocuri i acelai deplasament maxim? Ce metod ar fi cel
mai bun compromis ntre eroarea de estimare i timpul de calcul
9. Comparai cele dou criterii de estimare (MAD Minimum Absolut
Difference i MSE Mean Square Error) din punct de vedere al erorii
i din punct de vedere al timpului de calcul.
10.Comparai eficiena estimrii micrii pentru diferite mrimi ale
blocurilor (8, 16 sau 32).
11.Comparai eficiena compensrii micrii pentru cele dou
deplasamente (0.5 jumtate din dimensiunea blocului i 1
dimensiunea blocului).
Comunicaii multimedia Laborator 4 43

LABORATOR 4
Standardul H.261

1. Noiuni teoretice

Standard ITU-T pentru videotelefonie i videoconferin prin ISDN


(Integrated Services Digital Network).
Pentru o conexiune ISDN sunt disponibile utilizatorului 2 canale B
pentru transmisie bidirecional i un canal D pentru controlul
transmisiunii (semnalizare). Un canal B are banda de 64kbii/s.
Se poate mri debitul cu un multiplu ntreg p x 64kbits/s (p = 1..30)
prin alocarea mai multor canale B. Standardul e cunoscut i ca p x
64.
Rata de bit la compresie poate varia de la 40kbii/s pn la 2 Mbii/s.
H.261 este realizat pentru codare i decodare n timp real. ntrzierea
maxim nu trebuie s depeasc 150ms.

1.1. Pregtirea imaginilor

H.261 definete un format foarte precis. Frecvena este de 29,97


cadre/s. n timpul compresiei este posibil s se genereze o imagine cu
o frecven mai mic, de exemplu 10 sau 15 cadre/s.
Numai imaginile cu explorare progresiv (non-interleaved) sunt
permise la intrarea codorului.
Semnalele de la intrare (de exemplu imaginile RGB) sunt transformate
n semnale YCBCR, Y fiind semnalul de luminan i CB i CR
semnalele diferen de crominan.

Poziia eantioanelor de luminan (Y) i crominan (CB i CR):


44 Comunicaii multimedia Laborator 4

Figura 1.1 Poziia eantioanelor de luminan i cromonan

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


Common Intermediate Format (CIF)
- componenta de luminan: 288 linii i 352 pixeli/linie.
- componenta de crominan: 144 linii i 176 pixeli/linie.
Quarter-CIF (QCIF)
- componenta de luminan: 144 linii i 176 pixeli/linie.
- componenta de crominan: 72 linii i 88 pixeli/linie.
Toate implementrile H.261 trebuie s poat face codarea n ambele
formate CIF i QCIF.
Un semnal necomprimat QCIF la o frecven de 29,97cadre/s are rata
de bit 9,12Mbit/s, iar n format CIF la aceeai frecven 36,45Mbit/s.
n formatul H.261 unitile de date sunt de dimensiunea 8x8 pixeli i
sunt utilizate pentru luminan i culoare.
Un macro-bloc se obine prin combinarea a 4 blocuri de matrice Y cu
cte un bloc al fiecrei component de culoare.

Figura 1.2 Structura unui macrobloc

Un grup de blocuri este definit prin 33 de macro-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

Figura 1.3 Structura grupului de blocuri


- imaginea QCIF are 3 grupuri de blocuri.
Comunicaii multimedia Laborator 4 45

- imaginea CIF din 12 grupuri de blocuri.


- n Figura 1.4 GOB 1...12 sunt grupuri de blocuri (Group Of Blocs)

Figura 1.4 Structura unei imagini CIF, respeciv QCIF

1.2. Algoritmul de codare

Utilizeaz dou metode diferite de codare: intercadre i intracadre.


- Pentru codarea intracadre nu este luat n considerare redundana
ntre cadre.
- Pentru codarea intercadre este folosit informaia din cadrul
anterior sau urmtor.
Decizia privind modul de codare se ia n timpul compresiei n funcie
de anumii parametrii.
Codarea intracadre se realizeaz similar cu JPEG. Fiecare bloc de
8x8 pixeli este transformat cu DCT. Cei 64 coeficieni DCT sunt
cuantizai (diferit pentru DC i AC) i apoi codai entropic.
Codarea intercadre este bazat pe predicia fiecrui macro-bloc al
imaginii. Aceasta se realizeaz printr-o comparare a macro-blocurilor
dintre imaginile anterioare i cea curent. Vectorul de micare este
definit de poziia relativ a blocului anterior fa de cel curent.
Cadrul anterior (de
Vectorul de referin)
micare

Cadrul curent
Figura 1.5 Decimarea imaginii
46 Comunicaii multimedia Laborator 4

Pentru obinerea vectorilor de micare se consider diferena dintre


macro-blocurile localizate pe aceeai poziie n imaginile care
urmeaz.
Blocul este codat DPCM i dac valoarea codat depete o anumit
valoare de prag, se aplic DCT i se transmit coeficienii (codare
intracadru).
Altfel se transmit numai componentele vectorului de micare codate
entropic fr pierderi (codare intercadru).

Figura 1.6 Codarea H.261

Toi coeficienii sunt cuantizai uniform i codai cu lungime variabil.


n plus un filtru trece-jos poate fi aplicat naintea DCT pentru a
elimina zgomotul de frecven nalt i acesta s nu fie codat. Acest
filtru este opional.
Cuantizarea este uniform i mrimea pasului de cuantizare este
ajustabil n funcie de cantitatea datelor din bufferul, din care se face
transmisia. Acest mecanism foreaz un debit constant la ieirea
codorului, deci calitatea datelor video codate depinde de coninutul
imaginii ca i de micarea din scena respectiv.
Schema detaliat a codorului:
Comunicaii multimedia Laborator 4 47

Figura 1.7 Schema codorului H.261

Decodorul:

Figura 1.8 Schema decodorului H.261

Codarea coeficienilor DCT se face similar ca la JPEG.


Coeficienii sunt scanai n zig-zag.
- Coeficientul DC este codat diferenial.
- Coeficientul AC: codare zero-run+valoare i Huffman.
Codarea zero-run+valoare:
- zero-run numrul de repetiii a lui 0.
- valore valoarea coeficienilor diferii de 0.
Codarea Huffman
- simbolurile cele mai frecvente sunt codate cu mai puini bii
- tabel 2D pentru codare cu lungime variabil (VLC).
48 Comunicaii multimedia Laborator 4

Tabelul 1.2 Tabel pentru codare cu lungime variabil


RUN Level Cod

0 1 1sa) Dac e primul coeftficient al blocului


0 1 11s Dac nu e primul coeficient al blocului
0 2 0100 s
0 3 0010 1s
0 4 0000 110s
0 5 0010 0110 s
0 6 0010 0001 s
0 7 0000 0010 10s
0 8 0000 0001 1101 s
0 9 0000 0001 1000 s
0 10 0000 0001 0011 s
0 11 0000 0001 0000 s
0 12 0000 0000 1101 0s
0 13 0000 0000 1100 1s
0 14 0000 0000 1100 0s
1 15 0000 0000 1011 1s
1 1 011s
1 2 0001 10s
1 3 0010 0101 s
1 4 0000 0011 00s
1 5 0000 0001 1011 s
1 6 0000 0000 1011 0s
2 7 0000 0000 1010 1s
2 1 0101 s
2 2 0000 100s
2 3 0000 0010 11s
2 4 0000 0001 0100 s
3 5 0000 0000 1010 0s
3 1 0011 1s
.

Escape 0000 01

Cele mai ntlnite combinaii de zerouri succesive (RUN) i al doilea


simbol (LEVEL) sunt codate cu lungime variabil i sunt prezentate n
Tabelul 1.2. Celelalte combinaii (RUN, LEVEL) sunt codate cu
cuvinte de 20 de bii care conin 6 bii ESCAPE, 6 bii RUN i 8 bii
LEVEL.

Tabelul 1.3 Exemplificarea codurilor pentru RUN i LEVEL

Run este un cod cu lungime fix de 6 Level este un cod cu lungime fix de 8
bii bii

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
Comunicaii multimedia Laborator 4 49


0127 0111 1111
De exemplu: 0 0 0 1 6 0 3 EOB
se codeaz: 001111 001000010 001001010 10

Codarea vectorilor de micare (MV)


Vectorii de micare au valori ntregi ntre 15 i 15.
Se codeaz diferena ntre vectorii de micare (MVD - Motion Vector
Difference) cu lungime variabil a codului

Tabelul 1.4 Codarea vectorilor de micare


MVD Cod

16 & 16 0000 0011 001


15 & 17 0000 0011 011
14 & 18 0000 0011 101
13 & 19 0000 0011 111
12 & 20 0000 0100 001
11 & 21 0000 0100 011
10 & 22 0000 0100 111
o9 & 23 0000 0101 011
o8 & 24 0000 0101 111
o7 & 25 0000 0111 111
o6 & 26 0000 1001 110
o5 & 27 0000 1011 110
o4 & 28 0000 1111 110
o3 & 29 0001 1111 110
o2 & 30 0011 1111 110
o1 & 23 0111 0100 110
o0 & 23 1000 0100 110
o1 & 23 01000 0100 1
o2 & 30 0010 1111 111
o3 & 29 0001 0111 111
o4 & 28 0000 1101 111
o5 & 27 0000 1010 111
o6 & 26 0000 1000 110
o7 & 25 0000 0110 110
o8 & 24 0000 0101 100
o9 & 23 0000 0101 001
10 & 22 0000 0100 101
11 & 21 0000 0100 010
12 & 20 0000 0100 000
13 & 19 0000 0011 110
14 & 18 0000 0011 100
15 & 17 0000 0011 010

De exemplu, pentru vectorii de micare: 15 14 13 12 ...


avem diferena: 1 27 25 ...
care se codeaza astfel: 011 00001010 00000111 ...
50 Comunicaii multimedia Laborator 4

1.3. Cuantizarea coeficienilor

Ajustarea pasului de cuantizare se face n funcie de cantitatea datelor


n bufferul, din care se face transmisia.
Pasul de cuantizare poate varia ntre 2 i 62 (din 2 n 2).
Dimensiunea bufferului: q 64 kbii.
Rata de bit: q 64 kbii/s.
30
Rata cadrelor: Hz, ( k 1...4 ).
k
Numrul mediu de bii pe MacroBloc:
CIF: 5 k q
QCIF: 20 k q
umplerebuffer
Pasul de cuantizare: 2 int 2
200 q

Tabelul 1.5 Codarea vectorilor de micare


Umplerea bufferului Pasul de cuantizare
< 200q 2
< 400q 4
< 600q 6
< 800q 8
... ...
< 6000q 60
< 6200q 62

1.4. Fluxul de date

Fluxul de date are o structur ierarhic format din mai multe niveluri.
1. Nivelul imagine
- PSC (20 bii): Picture Start Code;
- TR (5 bii): Temporal Reference;
- PTYPE (6 bii): CIF sau QCIF;
- dac PEI = 1, PSPARE: bii de rezerv;
2. Nivelul Grup de Blocuri (GOB)
- GBSC (16 bii): GOB Start Code;
- GN (4 bii): Group Number;
- GQUANT: Group Cuantizer, 1...31;
Comunicaii multimedia Laborator 4 51

- dac GEI = 1, GSPARE: bii de rezerv;


3. Nivelul MacroBlocuri (MB)
- MBA: MB Address;
- MQUANT: MB Cuantizer, 1...31;
- MVD: MV Data;
- CBP: Coded Block Pattern
4. Nivelul Blocuri
- TCOEFF: Coeficienii transformatei;

Figura 1.10 Structura fluxului de date

Fluxul de date H.261 prezint urmtoarele caracteristici:


- fluxul de date al unei imagini conine informaia pentru corecia
erorilor
- pentru fiecare imagine un numr de 5 bii sunt folosii ca referin
temporal
- dac o anumit comand este dat de la aplicaia decodorului,
ultima imagine este ngheat ca un stop cadru. Aceasta permite
aplicaiei ca la decodare s opreasc i s porneasc o scen video
fr nici o dificultate.
- utiliznd comenzi trimise de codor (i nu de aplicaie) este de
asemenea posibil s se comute ntre imagini fixe i imagini n
52 Comunicaii multimedia Laborator 4

micare. Alternativ un semnal de time-out poate da aceeai


comand.

2. Programul Vprove

Programul Vprove este un program demonstrativ de Analiz i testare a


tehnicilor de compresie video

ncrcai testul H.261 selectnd din meniu File/H.261


Example/ConferenceRoom. Apsai pe Play. Secvena video va rula
i va disprea cnd e termin (10 secunde)

Figura 2.1 ncrcarea secvenei de test

n Tabelul 2.1 sunt descrise diversele butoane din meniu i


semnificaia lor.
Comunicaii multimedia Laborator 4 53

Tabelul 2.1 Butoanele din meniu


Icoana Funcie Apelare Meniu Control tastatura
Ruleaz secvena Play Play CTRL+P

Oprete secvena Play Stop CTRL+S

Pauz/Avanseaz un Play CTRL+A


cadru Pause/Frame
Advance

Derulare rapid Play Fast Fwd CTRL+F

Derulare nainte oarb Play Blind Fast CTRL+F


(nu este afiat Fwd
secvena video)
- Opiunea este doar
activ, dac s-a selectat
nainte Play Pause
On frame
Trecere la cadrul Play Pause On
numrul frame
A se folosi apoi Fast
Forward sau
BlindFast Forward

n primul rnd privii clipul video H.261

Lsai secvena s ruleze pn la sfrit. Vezi observa c:


Micarea este prea rapid. Viteza de rulare este dependent de
viteza procesorului, pe care lucrai.
Apar artefacte nedorite n imagine (vezi Figura 2.2): Aceste
zgomote provocate de codare se observ cnd brbatul din imagine
i mic mna (ncepe aproximativ la cadrul 128 i continu pn
la cadrul 161, iar artefactele se pot observa pn la cadrul 203).
Pentru a putea vedea mai clar aceste artefacte, avansai cadru cu
cadru (CTRL+P)
54 Comunicaii multimedia Laborator 4

Artefacte
vizuale

Figura 2.2 Artefacte vizuale

Ct de bun este compresia?

Imaginea este destul de distorsionat. Pentru a nelege de ce se ntmpl


acest lucru:
Activai opiunea de vizualizare a tipurilor de macroblocuri (MB)
din Frame/MB Types
Rulai din nou secvena (vezi Figura 2.3).
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 fr coeficieni/vectori de micare (3 tipuri)
- MB gri sunt codate inter+Q (inter cu cuantizare)
- MB albastre sunt codate inter cu coeficieni (Coeffs) i vectori
de micare (2 tipuri)
- MB roii sunt codate inter cu coeficieni (Coeffs) i vectori de
micare
- MB fr culoare nu sunt codate este folosit macroblocul din
cadrul anterior
Comunicaii multimedia Laborator 4 55

Figura 2.3 Vizualizarea diferitelor tipuri de macroblocuri

Privii datele din macroblocuri!

Activai opiunea de informaii despre macrobloc din Frame / MB


Tooltip
Tragei fereastra de MB Tooltip n afara imaginii
Micai mouse-ul peste imagine. O s apar un ptrat alb n jurul
macroblocului, din care se citesc datele, iar n fereastra MB Tooltip o
s apar informaii despre macroblocul respective (vezi Figura 2.4)

n fereastra de MB Tooltip avem:


MODE modul de codare al macroblocului
QUANT cuantizorul folosit pentru cuantizarea luminanei (cel
pentru crominan poate varia)
BITS numrul de bii folosii pentru acel macrobloc
SEG numrul segmentului, din care face parte macroblocul (un
segment este un grup de blocuri)
CBP un numr ntre 0-63, care arat care dintre cele 6 blocuri
8x8, care formeaz un macrobloc, au fost codate i care nu (n
parantez apare numrul binary, unde 1=codat i 0=necodat,
56 Comunicaii multimedia Laborator 4

care, citi de la stnga la dreapta, arat care blocuri au fost codate.


Blocurile au fost aranjate n modul urmtor: Y0,Y1,Y2,Y3,U,V)
MV Vectorul de micare pentru macroblocul selectat. Numerele
din paranteze <> sunt pentru micare pe axa X, respective pe Y
(numerele positive arat n jos/ctre dreapta, iar cele negative n
sus/ctre stnga)

Macrobloc
selectat cu
mouse-ul

Figura 2.4 Selectarea macroblocului

Macrobloc de
culoare verde

Numrul
macroblocului
(X Y)

Numrul
cadrului
Figura 2.5 Fereastra MB Tooltip
Comunicaii multimedia Laborator 4 57

Analiza grafic

Avansai n secvena video cadru cu cadru


Vezi vedea n background multe macroblocuri codate intra de culoare
verde i galben. Aceste macroblocuri folosesc cei mai muli bii
pentru codarea cadrului
Se pare c foarte muli bii sunt folosii pentru background-ul static
din spatele brbatului. Verificai acest lucru: oprii secvena video i
selectai Graph / Enable i selectai cele dou opiuni artate n
Figura 2.6

Selectai
opiunile

Figura 2.6 Opiuni n meniul Graph

Selectai fiierul de ieire din Graph / Export File (de exemplu


H261 example)

Figura 2.7 Salvarea fiierului de ieire


58 Comunicaii multimedia Laborator 4

Selectai Graph / View Graph. Datele sunt exportate n fiierul


respectiv i acest fiier este deschis folosind Microsoft Excel.
Alegei Enable macros
Apoi va rula programul macro
La sfrit va aprea tab-ul Vprov n srnga sus
Selectai tab-ul Ave Bits per MB, care afieaz numrul mediu de
bii folosii pentru fiecare macrobloc (n culori). Putei vedea c cei
mai muli bii sunt folosii n centru (unde are loc micarea
brbatului); folosirea de relative muli bii i n partea stnga sus i pe
amrginea de jos este o eroare a codorului (vezi Figura 2.8)

Figura 2.8 Graficul numr de bii mediu pe macrobloc

Selectai tab-ul IntraCodingFreq. Pe graphic este reprezentat


frecvena relativ de codare intra pentru fiecare macrobloc. Observai
c n colul stnga sus exist multe macroblocuri codate intra. Aceasta
este o eroare a codorului (vezi Figura 2.9)
Comunicaii multimedia Laborator 4 59

Figura 2.9 Graficul frecven relativ de codare intra

Selectnd i celelalte opiuni din meniul Graph, vizualizai graficele


60 Comunicaii multimedia Laborator 4

3. Aplicaia H.261

Aplicaia H.261 const de fapt n dou programe H.261 Codor i


H.261 Decodor cu care se realizeaz codarea, respectiv decodarea
formatului H.261.

H.261 Codor
Aplicaia H.261 Codor reprezin o imlementare practica a
algoritmului H.261 descris de Recomandarea H.261 versiunea 2 din
martie 1993. El a fost realizat in mediul vizual Visual C++ [MFC] pentru
Windows 95, 98, ME i Xp folosind o implementare a standardului
H.261 realizat de ctre Standford University
havefun.stanford.edu:pub/p64.

Figura 3.1 H.261 Codor

Prezentarea meniului

Meniul Fiier conine doua opiuni cu ajutorul carora se poate


alege sursa video care urmeaz a fi comprimat. Se poate opta ntre
codarea unui fiier de tipul *.avi, *.qcif, *.cif existent pe disc (Deschide
fiierul surs) sau codarea in timp real a unei surse video externe
furnizat de o camera video cu opiunea Noua fereastr de captur.
Comunicaii multimedia Laborator 4 61

Salvarea fiierului video codat H.261 se face sub forma


numefisier.261 prin opiunea Salvare ca fiier H.261 i prin alegerea
ulterioar a locului unde se dorete s fie stoc fiierul respectiv.

Figura 3.2 Meniul Fiier

Cel de-al doilea meniu, Video include trei opiuni: Surs,


Format, Opiuni.
Prin selectarea opiunii Surs se poate alege sursa video extern:
camera video, tuner tv. Se poate seta din driverul sistemului de operare
funcile specifice unei camere video luminozitate, contrast, hue, nivel de
saturaie al culorii din opiunea Device Settings .

Figura 3.3 Alegerea sursei video


62 Comunicaii multimedia Laborator 4

Prin opiunea Format se seteaz formatul video al fluxului codat


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

Figura 3.4 Alegerea formatului video

Din meniul Video/Opiuni se poate introduce pasul de cuantizare


folosit la codare.El trebuie sa fie cuprins ntre 1 i 31. Pasul ales este
pasul cu care sunt cuantizai toi coeficienii rezultai n urma aplicarii
DCT cu excepia coeficienilor DC ai macroblocurilor codate intra care
au pasul de cuantizare fixat la 8.

Figura 3.5Alegerea pasului de cuantizare

H.261 Decodor
H.261 Decodor este o aplicaie de vizualizare i analiz a
imaginilor video care sunt codate H.261 suport funcii de play, pauz,
replay i cadru cu cadru i afiare a hrii video.
Comunicaii multimedia Laborator 4 63

Figura 3.6 H.261 Decodor

Din meniul Fisier se alege fiierul video comprimat H.261 care


se dorete sa fie vizualizat, iar din meniul vizualizare se poate seta
opiunea Afieaz harta
care n partea dreapt a imaginii afiea o matrice n care secvena video
codat este analizat i cadru cu cadru n timp real.

Figura 3.7 Harta video a imaginii

Macrobloc codat intra;


Macrobloc codat inter;
Macrobloc codat inter cu vector de micare, sgeata indicnd
direcia de micare a macoblocului;
Macroblocul nu este codat, e pastrat din cadrul anerior.
64 Comunicaii multimedia Laborator 5

COMUNICAII MULTIMEDIA
LABORATOR 5
Standardul MPEG
1. Standardul MPEG 1

MPEG-1 (Motion Picture Expert Group) a reuit s realizeze o


compresie a semnalului video la o rat de bit de aproximativ 1,5Mbps,
aceasta asigurnd o calitate acceptabil. Dezideratul este ca prin codarea
semnalului video surs s se realizeze o reducere a spaiului necesar
pentru stocare i a ratei de bit necesare pentru transmitere explornd att
redundanele statistice ct i pe cele subiective ce exist n sau ntre
cadre. De asemenea se dorete a se coda un set minim de date folosind
tehnicile de codare entropice, pstrndu-se n acelai timp calitatea
imaginilor originale.
Algoritmul de compresie MPEG-1 a fost dezvoltat avndu-se n
vedere atingerea unei compatibiliti cu aplicaiile JPEG i H.261
(standardul CCITT H.216). Astfel metoda de compresie folosit la MPEG
se aseamn destul de mult cu cea de la JPEG. Acest lucru se poate
observa i din diagrama bloc a algoritmului de compresie MPEG video
de mai jos:

Date auxiliare

Date
auxiliar
Date Date Date e
auxiliar auxiliar auxiliar
Date e e e
auxiliare Date
Date auxiliare auxil
iare

Date
auxiliar
e
FM FM
ME ME

Figura 1.1 Schema bloc a codorului MPEG

S-au folosit notaiile:

DCT - Transformata Cosinus Discret (discrete cosine transform);


Comunicaii multimedia Laborator 5 65

Q - Blocul de Cuantizare (quantizer);


VLC - Codare Entropic de tip Huffman(variable length coder);
FM - Blocul de Memorare a Cadrelor (frame memory);
ME - Blocul de Estimare a Micrii (motion estimator).
Q-1 i IDCT - operaiile inverse cuantizrii respectiv DCT

La intrarea codorului MPEG se introduce un semnal video format


dintr-o sucesiune de cadre video. Fiecare cadru este procesat separat fiind
tratat ca o singur imagine static. Opernd asupra unui singur cadru
codorul MPEG se afl n modul intracadru. n acest mod de lucru un
cadru este mai nti transformat n domeniul frecven folosind
Transformata Cosinus Discret apoi cuantizat, pentru ca n final rezultatul
celor dou operaiuni s fie codat folosindu-se algoritmul de codare
Huffman. Dezavantajul utilizrii doar a acestui procedeu const n faptul
c dei se realizeaz o compresie semnificativ prin simpla procesare a
semnalului video de intrare ca o succesiune de imagini statice, folosind
JPEG, acesta nu exploateaz redundana temporal considerabil prezent
n toate secvenele video. Astfel muli dintre pixeli se vor schimba foarte
puin sau chiar de loc de la un cadru la cellalt .
Pentru modul de codare intercadru ,blocuri similare de pixeli,
comune la dou sau mai multe cadre succesive, sunt nlocuite cu un
vector ce caracterizeaz micarea unuia dintre ele relativ la poziia din
cadrul curent pentru a ajunge n poziia n care acesta apare n celelalte
cadre. Principala problem const n modul de stabilire a ordinii cadrelor.
Cteodat este eficient ca acel vector (pointer) s aib drept referin un
bloc din cadrul anterior, n timp ce n alte situaii este mai convenabil
alegerea drept referin a unui bloc dintr-un cadru viitor.
n Figura 1.1 este ilustrat i tehnica codrii intercadru : dup ce
se realizeaz prelucrarea cu DCT i cuantizarea (Q) unui cadru din
semnalul video iniial, acesta este supus unui proces invers constnd din
Q-1 i IDCT. Astfel se poate obine un cadru identic cu cel care ar fi
obinut de algoritmul de decompresie. Acesta va fi apoi stocat n FM i
utilizat la estimarea i compensarea micrii (ME) relativ la cadrele
vecine.
Conform unor studii efectuate de grupul MPEG, folosind
procedeul de codare intercadru s-a obinut o compresie de trei ori mai
bun fa de rezultatele utilizrii doar a modului intracadru, lucru posibil
doar prin exploatarea redundanelor existente n secvenele video.
Pentru a se crea suportul necesar utilizrii cu success a algoritmului
de compresie pentru o gam larg de aplicaii, cei din grupul de cercetare
MPEG au inclus cteva faciliti cum ar fi:
posibilitatea de a fi modificai de ctre utilizator parametrii de
intrare dimensiunea imaginii, numrul de cadre/secund,etc;
66 Comunicaii multimedia Laborator 5

random acess acces aleator n fluxul de date;


posibiliti de derulare fast forward/reverse,reverse playback;
posibilitatea de editare a stream-ului comprimat de bii .
Pentru MPEG-1 este prevzut un set de parametrii recomandai
cum ar fi: un numr minim de 720 pixeli per linie , un numr de 576 linii
pentru fiecare imagine i o rat minim de 30 cadre/ secund.
Prin acces aleator trebuie s fie posibil accesul n secvena cadrelor
video n orice moment al acesteia. Acest lucru implic existena cadrelor
de acces - cadre codate n modul intracadru, care pot fi decodate fr
referin la alte cadre.
Opiunea de derulare Fast forward/reverse se refer la
posibilitatea de a derula nainte sau napoi secvena video. Rezultatul se
poate afia folosind cadrele de acces obinnd efectul de repede nainte
sau repede napoi .

Compensarea micrii (Motion Compensation )

Ideea ce st n spatele conceptului de compensare a micrii este c


o parte din imaginea dintr-un cadru va fi la fel sau oricum similar celei
cu o mrime egal dintr-un cadru alturat. Pentru MPEG sunt prevzute
dou moduri de compensare a micrii predicia i interpolarea.

A) Predicia

MPEG folosete n codare mprirea imaginii n macroblocuri de


16x16 pixeli pentru luminan i 8x8 pentru crominan spre deosebire de
blocurile folosite la codarea JPEG ce au o mrime de doar 8x8 pixeli att
pentru luminan ct i pentru crominan.

Date Date Da
auxil auxil te
iare iare au
xil
Date Date iar
Da
e
auxil auxil
te
iare iare
au
xil
Figura 1.2 Structura unui macrobloc
iar
e
Fiecare macrobloc conine patru blocuri de luminan
( Y1,Y2,Y3,Y4) i dou blocuri de crominan (U,V). Formatul obinut este
n consecin 4:1:1. Prin folosirea prediciei n algoritmii de codare
MPEG se reduc redundanele temporale existente ntre cadre, codndu-se
doar imaginile eroare de predicie (este vorba de diferena ntre imaginile
originale i imaginile obinute prin predicie cu compensarea micrii).
Comunicaii multimedia Laborator 5 67

Un cadru prelucrat cu ajutorul prediciei este mprit n macroblocuri,


fiecare dintre acestea fiind codate separat. Codarea se face cu referin
ctre un anchor frame ce precede cadrul curent. Fiecare macrobloc din
cadrul curent va fi reprezentat de un vector de micare. Acesta ne d
deplasamentul macroblocului din cadrul curent fa de corespondentul
su din cadrul adiacent (vezi Figura 1.3):

Date auxiliare

Date
auxiliar Date auxiliare
e
Date auxiliare
Date
auxiliare

Date
auxiliar
e

Date
auxiliare

Figura 1.3 Compensarea micrii

S-a considerat exemplul: fiecare cadru video este format din


64x64 pixeli grupai n 16 macroblocuri identice. Poriunea colorat a
cadrului curent reprezint macroblocul folosit n compensarea micrii
(colul stnga sus al su se afl n poziia (x=16, y=8). Perechea acestui
bloc n cadrul precedent se afl n poziia (24,4). Sgeata din partea
stng a macroblocului reprezint vectorul de micare care n acest caz
este de coordonate (8,24).

Observaii:
1. Nu este necesar ca macroblocul corespondent din cadrul anterior
s se afle la o distan mai mic de 16 pixeli.
2. Potrivirea nu se face fa de un cadru video anterior ci mai degrab
fa de un cadru ce a fost deja codat i decodat deoarece decodorul
nu are acces la cadrele video surs ci doar la versiuni decodate ale
cadrelor originale.
68 Comunicaii multimedia Laborator 5

Determinnd blocul corespondent din cadrul precedent algoritmul


MPEG nregistreaz vectorul de micare i eroarea de predicie care este
o matrice de 16x16 de diferee ntre macroblocul curent n cadrul c i
macroblocul origine din cadrul r:

E c ( x, y ) I c ( x, y ) I r [( x, y ) M rc ]

n formula de mai sus E c ( x, y ) reprezint eroarea de predicie; I i ( x, y )


este valoarea pixelului de coordonate (x,y) n cadrul i iar M ij este
vectorul de micare pentru cadrul j asociat cadrului i.
Matricea de predicie a erorii va avea multe valori de zero. Aceasta
va fi codat folosind tehnica DCT urmat de cuantizare, obinnd o rat
de compresie mai mare dect prin simpla codare a matricii originale.
Standardul MPEG nu impune un mod de realizare procedeului de
potrivire a blocurilor. Uzual vectorul de micare pentru un macrobloc se
obine minimiznd funcia de cost, funcie ce msoara diferena dintre un
macrobloc i fiecare posibil corespondent al su. Acest lucru se poate
exprima matematic folosind relaia:

MIN
mM
C[ I
( x , y )B
c ( x, y ) I r (( x, y ) m)]

unde s-au folosit notaiile:


B un macrobloc n cadrul curent Ic;
m= vectorul de deplasare avnd referina n cadrul de
referin Ir;
M=aria de cutare n cadrul de referin;
C=funcia de cost.

Valoarea lui m ce minimiza expresia de mai sus se folosete ca vector de


micare notat pentru acest bloc M rc . Aria de cutare poate acoperi doar
mici poriuni sau poate cuprinde ntreaga arie a cadrului.

A. B.
Comunicaii multimedia Laborator 5 69

C. D.
Figura 1.4.(A) Cadrul de la momentul N; (B) Cadrul de la momentul N-1
folosit la predicia coninutului cadrului de la momentul N (s-au figurat i
vectorii de micare); (C) Eroarea de predicie obinut fr compensarea
micrii (toi vectorii de micare sunt presupui nuli); (D) Imaginea care
trebuie codat, obinut prin folosirea compensrii micrii.

B) Interpolarea

Dei codarea cu ajutorul prediciei ne ofer o rat de compresie mai


bun dect cea rezultat n urma unei compresii JPEG efectuat cadru cu
cadru, i aceasta poate fi mbuntit. Astfel MPEG permite codarea
cadrelor video folosind dou cadre de referin. Unul este considerat n
cadrul precedent (aposteriori) iar cellat n cel viitor (apriori) fa de
cadrul curent. Aceast abordare poart denumirea si de interpolare
bidirecional i are ca efect o rat de compresie mai bun dect cea
obinut prin folosirea unui singur cadru de referin.
Pentru a ntelege de ce interpolarea bidirecional poate mbunati
semnificativ rata de compresie considerm o imagine care se mic n
raport cu cadrul imagine la o rat de 1/2 pixeli per cadru. ncercnd
determinarea unui macrobloc n cadru actual bazndu-ne pe cadrul
imediat urmtor nu vom putea gsi nici un bloc care s se potriveasc. n
mod similar vom obine acelai lucru procednd la fel i n cazul
urmtorului cadru.Totui o estimare a celei mai bune potriviri dintre
cadrul precedent i cel viitor ne va determina o predicie exact, astfel
nct matricea de eroare va deveni nul.
Figura 1.3 ilustreaz tehnica folosit n interpolarea bidirecional.
Cadrul curent considerat a fi cadrul B este procesat n funcie de cele
dou cadre de referin: cel precedent respectiv cel viitor. Fiecare
macrobloc va putea fi codat folosind un bloc din cadrul ulterior (vorbim
n acest caz de predicie apriori), un bloc din cadrul anterior (predicie
aposteriori), sau cte un bloc din fiecare cadru referin (mediere)
rezultnd matricea de eroare minim.
70 Comunicaii multimedia Laborator 5

n cazul interpolrii bidirecionale trebuie codat mai mult


informaie. O dat cu predicia cadrelor o matrice diferen va rezulta i
apoi se va coda folosind DCT. n plus fiecare macrobloc va fi codat
indicndu-se modul de predicie (apriori, aposteriori, prin mediere) i
folosind unul sau doi vectori de micare.

Ordonarea Cadrelor

n MPEG se definesc trei tipuri de cadre:

a) Cadre I (Intra-coded images):


Sunt codate fr referine la alte imagini. Un cadru I este tratat ca o
imagine fix.
MPEG folosete codarea JPEG pentru aceste imagini. Totui,
contrar JPEG, compresia trebuie fcut n timp real. Rata de
compresie a imaginilor I este mai mic cu MPEG.
Cadrele I sunt punctele de acces aleator n fluxul MPEG.
Cadrele I folosesc 8x8 blocuri pentru a defini un macrobloc pe care
se calculeaz DCT.
Coeficienii DC sunt codai DPCM. Diferene ale blocurilor
succesive sunt calculate i transformate utiliznd codarea cu
lungime variabil.

b) Cadre P (Predictive-coded frames): codarea se face folosind predicia


cu compensarea micrii fa de un cadru anterior I sau P, acesta fiind
folosit ca referin pentru predicii apriori;

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


face lund drept referin att cadrul precedent ct i pe urmtorul
(vezi Interpolarea) ; nu se folosete ca referin pentru predicie.

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 codai, coeficienii AC sunt
neglijai.
Cadrele D constau numai din componentele de joas frecven a
imaginilor. Ele utilizeaz numai un tip de macro-bloc i numai
coeficienii DC sunt codai.
Derularea nainte sau napoi se poate realiza i cu cadre I. Pentru
aceasta cadrele I trebuie s apar periodic n fluxul de date.
Redarea napoi ns necesit o cantitate imens de stocare deoarece
Comunicaii multimedia Laborator 5 71

toate imaginile dintr-un grup trebuie decodate n modul forward i


stocate, dup care redarea napoi este posibil.

Frecvena relativ de apariie a acestor cadre n interiorul unui flux


video este un parametru configurabil care trebuie ns s satisfac cteva
reguli.
n primul rnd trebuie s satisfac cerinele pentru acces aleator i
cutare fast forward/reverse. Acestea determin o limitare asupra
frecvenei de apariie a cadrelor I n sistemul codat considerat.
n al doilea rnd trebuie s ina seama de legtura strns ce exist
ntre complexitatea de calcul i numrul de cadre B, astfel nct cu ct
avem mai multe cadre B cu att volumul de calcul va crete.
n al treilea rnd cadrele B nu pot fi procesate dect innd cont de
cadrele I i P deoarece un cadru B nu poate fi considerat referin pentru
un alt cadru B. De aceea cu ct exist mai multe cadre B cu att va crete
distana medie dintre acesta (cadrul B) i cadrele sale de referin i cu
att va fi mai mic corelarea ntre cadrul B i referine.

Regulile de codare sunt:


- fiecare cadru I este codat folosindu-se doar codarea intracadru;
- fiecare cadru P este codat folosindu-se predicia 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
alctuit dintr-un singur cadru I urmat de un numr de cadre P i B. Un
cadru B nu poate fi decocodat pn cnd cadrele de referin, cel
precedent respectiv cel viitor nu au fost decodate. Organizarea fiecrui
grup se face astfel nct fiecare cadru B s urmeze ambelor cadre de
referin.
Pentru o mai bun inelegere se consider exemplul ilustrat n
Figura 1.4. Se observ c primele ase cadre formeaz un grup. Modul de
aranjare al acestora n interiorul grupului ine cont de ceea ce s-a afirmat
mai sus. Astfel pentru a realiza predicia pentru cadrele B 2 i 3, cadrul 4
va fi stocat dupa cadrul 1(cadru folosit penrtu realizarea prediciei
apriori). Cadrele 5 si 6 sunt interschimbate din acelai motiv. Cadrul B
notat cu 7 face parte din grupul urmtor deoarece este codat dup cadrul I
8.
72 Comunicaii multimedia Laborator 5

Date auxiliare

D Date Date Date Date Date Date Date


a auxil auxil auxil auxil auxil auxil auxil
Date auxiliare
Dat iare
Date iare
Date iare
Date iare
Date iare
Date iare
Date iare
Da
tee auxil auxil auxil auxil auxil auxil te
au iare iare iare iare iare iare au
xila xil
iaru iar
ex e
i
l Date auxiliare
i
a
Figura 1.4.
r Exemplu de organizare a cadrelor n timp
e
Decodorul efectueaz operaiile inverse codrii: Se extrag i se
decodeaz cuvintele codate entropic din stream-ul de bii pentru a se
obine toi coeficienii DCT diferii de zero pentru fiecare cadru. Odata
reconstruii toi aceti coeficieni ce aparin unui singur cadru (cu
ajutorul Q-1) se aplic transformata IDCT obinndu-se valoarea pixelilor
dintr-un cadru. Procesnd ntregul stream de bii toate cadrele (imaginile)
sunt decodate i reconstruite.

2. Standardul MPEG 2

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


codarea
- n transmisiuni TV prin cablu/satelit.
- n televiziunea de nalt definiie (HDTV).
- n servicii video prin Internet (ATM).
Codarea video se face la o rat ntre 4 i 9 Mbii/s.
Codorul MPEG 2 permite codarea semnalului video ntreesut i scalarea
imaginii.

Cerine principale:
Compatibilitate cu semnalul video ntreesut (ITU-R 601).
Codarea la calitate bun la rate cuprinse ntre 4 i 9 Mbii/s.
Acces aleator la comutarea canalelor, cutare i derulare FF/FR
folosind punctele de acces din grupurile de imagini.
Permite codarea crominanei i la formate de rezoluie mai mare 4:2:2
i 4:4:4.
Comunicaii multimedia Laborator 5 73

Codarea scalabil video pentru aplicaii care au cerine diferite de


calitate a semnalului video.
Sistemul s suporte sincronizarea ntre fluxurile audio-video la
redare/acces pentru fluxuri multiple.

Cerine suplimentare:
Compatibilitate i interoperabilitate cu MPEG1.
Suport codarea formatelor nentreesute i ntreesute la diferite rate
de cadru.
Suport formate video la diferite rapoarte de aspect.
ncrcare minim a sintaxei MPEG pentru includerea facilitilor de
mai sus.
Codorul i decodorul s aib o complexitate rezonabil.

Faciliti noi fa de MPEG1:


Suport formatele 4:2:2 i 4:4:4.
Imagini asociate cadrelor i cmpurilor (la video ntreesut).
DCT adaptat pentru cadru/cmp.
Compensarea micrii pentru cadru/cmp/duale.
Scanare alternativ a coeficienilor DCT.
Tabel de codare variabil (VLC) diferit pentru coeficienii DCT.
Tabel de cuantizare neliniar mrete acurateea cuantizrii pentru
valori mici.

Figura 2.1 Formatele de codare luminan crominan

a) b)
c)
cmpul cmpul
par impar par impar
74 Comunicaii multimedia Laborator 5

timp timp
timp
Figura 2.2 Scanarea a) ntreesut 4:1:1; b) ntreesut 4:2:2/4:4:4 i c)
progresiv

Codarea semnalului video


Exist dou tipuri de imagini: imagini-cadru i imagini-cmp
Compensarea micrii:
- Predicia ntre cadre n cazul imaginilor-cadru se face ca la
MPEG1.
- Predicia ntre cmpuri n cazul imaginilor-cmp:

referin curent
Comunicaii multimedia Laborator 5 75

Figura 2.3 Predicia ntre cmpuri pentru imagini-cmp

- Predicia ntre cmpuri n cazul imaginilor-cadru:

Date auxiliare

Date auxiliare

Figura 2.4 Predicia ntre cmpuri pentru imagini-cadru

- Predicia dual-prim pentru cadrele P (se aplic att imaginilor-


cmp ct imaginilor-cadre), rezultnd 16x8 vectori de compensare
a micrii
76 Comunicaii multimedia Laborator 5

referin curent

Figura 2.5 Predicia dual prim

Adaptarea DCT pentru cadre/cmpuri:


- Se organizeaz blocuri de 16x16 pixeli ca blocuri pe cadru sau
blocuri pe cmpuri.

blocuri pe cadru blocuri pe cmpuri


Figura 2.6 mprirea n blocuri

- Se calculeaz corelaia pe direcie vertical n ambele cazuri.


- Se alege varianta care are corelaie mai mare.

Scanarea coeficienilor DCT


Comunicaii multimedia Laborator 5 77

a) b)
Figura 2.7 a) Scanare zig-zag a coeficienilor DCT inter; b) Scanare
alternat a coeficienilor DCT intra
3. Compresia MPEG audio

Standardul MPEG audio este caracterizat de o complexitate ridicat


a algoritmului, compresie mare a datelor, si calitate foarte buna a
semnalului audio. Compresia este aplicabil semnalelor audio in general,
nu este adaptata numai semnalelor vocale.
Reprezentarea digital a datelor audio prezint o serie de avantaje:
imunitate sporit la zgomot, stabilitate n timp, i reproductibilitate. De
asemenea, permite o implementare eficient a unor funcii de prelucrare,
cum ar fi mixarea, filtrarea, egalizarea, etc., cu ajutorul computerului.
Conversia analog-digital a semnalului audio se face prin
eantionare si cuantizare, fiecare eantion fiind reprezentat printr-un
cuvnt de cod binar (procedeu numit modulaia impulsurilor n cod sau
PCM). Astfel, pentru reprezentarea unei secunde de material stereo la
calitate CD (frecvena de eantionare 44,1 kHz i cuantizare pe 16 biti)
este nevoie de aproximativ 1,4 Mbiti.

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

Reducerea acestei rate ridicate de date se face prin compresie.


Algoritmul MPEG/audio este primul standard international pentru
compresia digital a semnalului audio de nalta fidelitate.
Dei compresia MPEG/audio este foarte potrivit pentru aplicaii
audio de sine stttoare, ea face parte din standardul de compresie
combinat MPEG. Acesta conine trei parti: video, audio si sisteme, i se
adreseaz compresiei semnalelor video si audio sincronizate.
Pana la ora actuala, au fost adoptate ca standarde trei versiuni
MPEG audio, fiecare aducnd imbuntiri fa de cel precedent. Iat cele
trei versiuni MPEG/audio si cteva caracteristici:

MPEG-1 audio:
78 Comunicaii multimedia Laborator 5

o Suport rate de eantionare de 32, 44.1 sau 48 kHz;


o Accept surse cu unul sau dou canale audio;
o Rate de bit acceptate: 32 224 kbiti/s pentru un canal;
o Permite introducerea unui cod corector de erori (CRC);
o Permite introducerea altor date dect cele audio in fluxul
rezultant;
o Ofer o alegere intre 3 niveluri de compresie (numite layere),
pentru a oferi posibilitatea de compromisuri ntre calitatea audio
si complexitatea codec-ului:
Layer I: este cel mai simplu i este potrivit pentru rate de
peste
128 kbps pentru un canal.
Layer II: este de complexitate medie i este destinat codrii la
rate in jurul a 128 kbps pentru un canal. Este folosit in
standardele Digital Audio Broadcasting (DAB), CD-
Interactive (CD-I) si Video-CD.
Layer III: este cel mai complex, dar ofer cea mai bun
calitate pentru rate de 64 kbps pentru un canal. Este potrivit
pentru transmisie prin ISDN, pentru arhive de muzica (format
mp3), etc.

MPEG-2 audio:
o O extensie a stadardului MPEG-1 audio pentru rate de
eantionare sczute: 16, 22.5, 24 kHz, oferind o calitate mai bun
pentru rate de bit sub 64 kbps mono.
o O extensie compatibil cu MPEG-1 pentru codarea unor surse cu
mai multe canale: 5 canale normale si unul pentru frecventele
joase (5.1), care poate fi decodata si cu un decodor MPEG-1;
o Introduce o metod nou de compresie numita Advanced Audio
Coding (AAC), care nu mai este compatibil cu MPEG-1, deci nu
poate fi decodat de un astfel de decodor. Caracteristicile AAC:
calitate audio foarte bun la rate de 64 kbps pe un canal, suporta
48 de canale audio, 16 canale pentru frecvene joase, 16 canale
pentru voce n mai multe limbi, 16 fluxuri de date. Blocurile
codecului au fost imbuntite, obtinndu-se o imbuntire a
ratei de compresie cu 30% fa de MPEG-1 Layer III.
o Foloseste tot o structur cu 3 layere ca i la MPEG-1;

MPEG-4 audio:
Comunicaii multimedia Laborator 5 79

o Destinat pentru o gam larg de aplicaii audio:


Compresia semnalului vocal: rate de 2-24 kbps, folosind
metodele HVXC (Harmonic Vector eXcitation Coding), si
CELP (Code Excited Linear Prediction);
Citirea textului dintr-un document (text-to-speech interface);
Compresia semnalului audio de nalt fidelitate;
Sunet sintetic (muzic sintetizat gen MIDI);
Mixarea acestor tipuri diferite de semnal audio ntr-o singur
coloan sonor;
Scalabilitatea fluxului de date audio: transmiterea cu rat
variabil n funcie de largimea de band a canalului folosit,
prin degradarea calitaii audio;

Tehnici folosite in compresia MPEG audio

Standardul de compresie MPEG-1/audio realizeaz performane


remarcabile prin exploatarea a doua caracteristici psihoacustice ale
aparatului auditiv uman:
1. Benzile critice
Urechea intern are o reprezentare a spectrului semnalelor audio
la o scar neliniar, sub forma unor benzi de frecven numite
benzi critice. Banda frecvenelor audibile, care se intinde pn
la 20 kHz, este imprit in 25 de benzi critice, ale cror largimi
cresc cu frecvena. Cu alte cuvinte, aparatul auditiv poate fi
modelat ca un banc de filtre trece band (un set de filtre n
paralel), constnd n 25 de benzi nedisjuncte, cu largimi
incepnd de la mai putin de 100 Hz pentru frecvene joase, si
ajungnd la 5 kHz pentru frecvene nalte.
80 Comunicaii multimedia Laborator 5

Nr. band Frecvena (Hz) Nr. band Frecvena (Hz)

(frecvenele reprezinta limita superioar a benzii)

2. Mascarea auditiv
Este un fenomen numit i mascarea zgomotului, i se manifest
astfel in domeniul frecven: cnd un semnal de nivel mic si
unul de nivel mare apar simultan si sunt destul de apropiate in
frecven, dac semnalul mic se afla sub un prag de mascare,
acesta nu se va auzi din cauza semnalului mai puternic. Acest
fenomen este mai pronunat cnd ambele semnale se afl n
aceeai band critic, i mai putin observabil cnd acestea se
afl in benzi alturate.
Date auxiliare

Date auxiliare

Date auxiliare

Figura 3.1. Mascarea auditiv

Date auxiliare
Comunicaii multimedia Laborator 5 81

Figura 3.2 ilustreaz definirea principalilor parametrii care


descriu mascarea auditiv. Semnalul puternic se afl n
interiorul benzii critice. Semnalele mai slabe care se afl sub
pragul de mascare nu se aud. Pragul minim de mascare
reprezint pragul sub care toate sunetele din banda respectiv
sunt mascate de semnalul puternic. Raportul semnal-mascare
(SMR) reprezint diferena dintre puterea semnalului puternic si
pragul minim de mascare. Diferena dintre SMR i SNR
(raportul semnal zgomot datorat cuantizrii cu R biti), reprezint
raportul zgomot-mascare (NMR = SMR SNR). n interiorul
unei benzi critice, zgomotul de cuantizare este inaudibil atta
timp ct NMR-ul corespunztor cuantizrii este negativ. Astfel
se poate reduce numrul de bii ai cuantizorului pna la limita
NMR-ului.
Date
auxiliare

Date Date auxiliare


auxiliare
Date
auxiliare Date
auxiliare

Date auxiliare

Date auxiliare

Figura 3.2 Parametrii care descriu mascarea auditiv


82 Comunicaii multimedia Laborator 5

Schema bloc a codecului MPEG-1/audio:


Date auxiliare

Cuantizor si Date comprimate


Formatare flux
Bancul de filtre
codor de bii
Date audio
digitale
(PCM)
Model Date auxiliarePragul de
psihoacustic mascare
Banda critic
Figura 3.3 Codorul MPEG SNR SMR
Nivelul
zgomotului de Date audio
Date comprimate Reconstrucie cuantizare digitale (PCM)
Despachetare Bancul de filtre
semnal pentru Pragul minim
flux de bii
fiecare band de mascare
Semnalul
puternic
Date auxiliare Zona unde
semnalele
Figura 3.4 Decodorul MPEG mai slabe
sunt mascate
Bancul de filtre are rolul de a descompune semnalulSemnalul audio in subbenzi.
puternic
Aceasta descompunere este realizat cu diferite grade de complexitate n
Amplitudine
cele 3 layere. In Layer I, II si III, spectrul este imprit n 32 de subbenzi
Frecvena
de lrgime constant, fiind astfel un compromis ntre 16x8 eficiena calculelor
blocuri
si performana perceptuala: cmp
Macrobloc
cadru
Predicie apriori
Predicie
Bidireional
7
8
5
4
6
3
2
Figura 3.5 Descompunerea n subbenzi P
P
B
Layer II este doar o mbuntire a lui layer I, prin codarea datelor n
grupuri mai mari. B
B
Layer III folosete un algoritm mult mai complex, fiind B
proiectat s
obin rezoluii n frecven mai apropiate de modelul 1benzilor critice.
I
Modelul psihoacustic este elementul cheie al codorului. ElI are funcia de
a analiza coninutul spectral al semnalului i s calculezeTIMP
SMR-ul pentru
Cadrul decodat
viitor
Cadrul curent
(8,24)
(24,4)
(16,8)
Bloc 16x16
anterior
V
U
Comunicaii multimedia Laborator 5 Y1 83
Y2
fiecare band. n urma acestei analize, cuantizorul decide Y3
cum s impart
Y4
numarul de bii disponibili pentru fiecare band. Video Aceast
IN alocare
dinamic de bii este realizat astfel nct s minimizeze
Bit stream audibilitatea
zgomotului de cuantizare. Modul
intracadru
Modul
Unitatea de formatare bii aranjeaz eantioanele cuantizate
intercadru
ntr-un flux
de bii decodabili.
VLC
DCT
Decodorul execut operaiile n sens invers, convertind
Q datele
comprimate ntr-un semnal audio standard.
IDCT
4. Desfurarea lucrrii Decimare
M:1
4.1 Codorul MPEG
Se deschide programul VCDemo. Se alege Open Image Sequence din
toolbar i se deschide secvena Suzie.yuv. Se alege codorul MPEG din
toolbar (MEnc).

Figura 4.1 Codorul MPEG


Not: Pn la alegerea unui nume pentru secvena video de comprimat
(Save as), opiunile din interfaa codorului MPEG sunt inactive.

Codorul MPEG are urmtoarele posibiliti de configurare:


84 Comunicaii multimedia Laborator 5

Figura 4.2 Opiuni de compresie

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


MPEG-2) .
o Rate: Permite setarea ratei de bit a fiierului comprimat, n
Mbii/secund.
o GOP(Group of pictures): Permite alegerea ctorva succesiuni
standard (nu adaptiv) de cadre n fluxul comprimat.
o Motion: Permite selectarea deplasamentului maxim folosit n
compensarea micrii.
o Format: Pentru formatul MPEG-2, se poate alege modul progresiv
sau modul ntreesut. Dac se alege modul ntreesut, poziia
primului cmp trebuie precizat.
o Field/Frame: Pentru modul ntreesut se poate mbunti rezultatul
compresiei MPEG-2 prin setarea unor opiuni suplimentare pentru
codarea pe cadre i cmpuri (semicadre).

Not: Acesta este un codor educaional. Un codor MPEG profesionist


permite mult mai multe setri, obinnd rezultate superioare.

Se aleg (de exemplu) opiunile: (File) Save as Suzie.mpg / Mpeg1 /


(Rate) 1.15Mb/s /(Gop) IBBPBB / (Motion) 15. Codarea ncepe prin
confirmarea opiunilor (Apply):
Comunicaii multimedia Laborator 5 85

Figura 4.3 Alegerea deplasamentului maxim


Not: Interfaa codorului arat cadrul care tocmai a fost codat i o
fereastr text cu date despre compresia cadrului i a macroblocurilor sale.
Codarea poate fi ntrerupt/reluat n orice moment prin apsarea
Spacebar-ului.

Din fereastra text se obin informaiile cele mai utile cu privire la codarea
cadrului respectiv: rata de bit per cadru (exprimat n bii/pixel), tipul
cadrului (I/B/P) obinut prin codare, felul n care a fost codat fiecare
macrobloc al cadrului (afind o matrice de litere conform poziiei
macroblocului n cadru).

Figura 4.4 Informaii din fereastra text


Semnificaia literelor este urmtoarea:
o S (macrobloc) ignorat;
o I codat intra;
o 0 obinut prin predicie apriori (forward) fr compensarea
micrii ;
o F - obinut prin predicie apriori (forward) a cadrului;
o f - obinut prin predicie apriori (forward) a cmpului(MPEG-2
ntreesut);
o p - obinut prin predicie spaial i temporal ;
86 Comunicaii multimedia Laborator 5

o B - obinut prin predicie aposteriori (backward) a cadrului;


o b - obinut prin predicie aposteriori (backward) a cmpului;
o D - obinut prin interpolare pe cadre;
o d- obinut prin interpolare pe cmpuri;

Se ntrerupe de mai multe ori compresia. Se noteaz care sunt cele mai
utilizate tipuri de macroblocuri n codare (cele obinute prin interpolare,
cele obinute prin predicie etc).
Se reia codarea selectnd i alte opiuni.

Not: Codorul MPEG al programului VCDemo nu introduce n stream-ul


comprimat informaii de sistem (timing), n consecin pentru
vizualizarea stream-ului nu se poate folosi Windows Media Player-ul, ci
de exemplu decoderul MPEG al VCDemo.

3.2 Decodor MPEG

Decodorul VCDemo permite reconstituirea secvenelor de imagini


comprimate MPEG-1 sau MPEG-2.
Se ncarc secvena MPEG Mobile.mpg (sau Suzie.mpg(creat
anterior)).

Figura 4.5 deschiderea fiierului MPEG

Decodorul(MDec) are implementate urmtoarele opiuni:

Figura 4.6 Opiunile docodorului MPEG


Comunicaii multimedia Laborator 5 87

o Operation: Permite setarea a ceea ce va fi afiat prin decodare:


o decoded frames - decodare normal
o frame prediction cadrele obinute doar prin predicie.
Se poate astfel evalua oarecum calitatea prediciei
(erorile prediciei se propag);
o coded difference cadrele diferen fa de predicie.
Permite o evaluare mai precis a calitii prediciei i a
numrului de macroblocuri codate intra (asupra crora
nu s-au fcut predicii).
o Display: Permite afiarea alb-negru sau color a secvenei decodate, cu
sau fr suprapunerea vectorilor de micare, cu sau fr includerea
cadrelor de tip B (pentru a necesita mai puin putere de calcul);
o Video: Permite decodarea pas cu pas sau automat;
o Save...:Permite salvarea secvenei decodate n format YUV.

Se alege afiarea decoded frames cu suprapunerea vectorilor de


micare i decodare pas cu pas. Ca i pn acum decodarea ncepe prin
selectarea Apply. Decodarea poate fi ntrerupt prin selectarea No n
fereastra de dialog care apare. Selectarea Cancel are drept rezultat
continuarea decodrii n mod automat.

Fereastra text a interfeei conine informaii despre dimensiunea cadrelor


din secven, rata de bit a acesteia, numrul de cadre/secund,
dimensiunea VideoBuffer-ului folosit la decodare, tipul compresiei
secvenei (MPEG-1 sau 2), tipul cadrelor ce se succed (I/P/B), etc.

Figura 4.7 Informaiile din caseta text


88 Comunicaii multimedia Laborator 5

Se alege afiarea frame prediction. Ce se poate spune despre calitatea


prediciei?
Se alege afiarea coded difference. Ce se poate spune despre numrul
de macroblocuri care necesit o codare de tip intra?
Se reia decodarea i pentru alte secvene, urmrind cum depinde
calitatea prediciei de dinamismul secvenei.
ntrebri
4.1. Cum se poate reduce consumul de bii pentru benzile de frecvene
nalte, care nu sunt importante atunci cnd se urmrete buna compresie
i nu calitatea (ex: rate de mai puin de 112 kbps) ?
4.2. Cum trebuie s fie materialul audio original pentru o compresie bun:
nregistrare de calitate proast, cu zgomot, sau sunet clar ?
4.3. Codorul MPEG afieaz cadrul care tocmai a fost prelucrat. Explicai
de ce secvena afiat nu respect succesiunea temporal normal.
4.4. Explicai de ce secvena Suzie.yuv ar fi putut fi comprimat cu
performane asemntoare i conform standardului H.261.
4.5. Comparai rezultatele obinute prin transmiterea cadrelor diferen de
imagine fr compensarea micrii cu cele obinute prin compensarea
micrii. n ce condiii se obine o mbuntire semnificativ?
4.6. La decodarea secvenei Mobile.mpg prima coloan de macroblocuri
(n stnga imaginii) conine aproape n exclusivitate macroblocuri codate
intra (fr predicie). Explicai de ce.

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