Standardul MPEG

Download Report

Transcript Standardul MPEG

UNIVERSITY POLITEHNICA of BUCHAREST
DEPARTMENT OF COMPUTER SCIENCE
Conf. Dr. Ing. Costin-Anton Boiangiu
<[email protected]>
Cuprins
1.
2.
3.
Compresia prin cuantizarea vectoriala
Elemenete de baza in standardul MPEG
Descrierea standardului de compresie MPEG-1
Compresia prin cuantizarea vectoriala
(VQ=vector quantization)
 Cuantizarea vectoriala este generalizarea cuantizarii
scalare la cunatizarea unui vector
 Saltul de la o dimensiune la mai multe dimensiuni atrage noi
concepte, tehnici si aplicatii
 In majoritatea cazurilor intrarea este sub forma numerica iar
iesirea este o forma comprimata.
Compresia prin cuantizarea
vectoriala
 In contrast cu cuantizarea scalara, VQ aplica cuantizarea nu la nivel
de esantion ci la nivel de grup de esantioane pentru a forma un vector
si apoi cuantizeaza acel vector
 Deci, imaginea digitala este mai intai prelucrata pentru furnizarea unui




set de vectori
Apoi, se genereaza un set al vectorilor reprezentativi, asa numitul
codebook.
Compresia se obtine prin inlocuirea vectorului reprezentativ cu un index
Acest index este adresa unui tabel ce contine vectorii reprezentativi
Rezulta ca fiecare vector este codat cu doua piese de informatie
distincte:


indexul
cuvantul de cod corespunzator
 Modifcarea dictionarului in timpul codarii si/sau a cuvintelor de cod din
cadrul tabelului (vectorii reprezentativi) determina obtinerea unor
variante adaptive ale cunatizarii vectoriale
Compresia prin cuantizarea
vectoriala
 Cuantizarea vectoriala este o metoda de compresie cu
pierdere de informatie, care se opreste asupra unei multimi
de pixeli, in loc sa se uite la pixelii individuali
 Deci, o multime de pixeli cu aceleasi proprietati statistice
(valori apropiate ale stralucirii) sunt inlocuiti cu un singur
element de imagine, in imaginea comprimata
 Cuantizarea vectoriala se utilizeaza in multe aplicatii de
compresie audio si video, in recunoasterea vorbirii
Compresia prin cuantizarea
vectoriala
 O cale naturala de a aplica tehnica VQ la imagini este:
 descompunerea
imaginii
numerice
in
blocuri
dreptunghiulare/patrate de dimensiune fixata
 apoi sa se utilizeze aceste blocuri ca sub forma de vectori
 Un cuantizor vectorial transforma spatiul vectorial Rk al
vectorilor k-dimensionali intr-o multime finita de vectori
Y={ yj, = 1,2,...,N}
 Fiecare vector yj se numeste vector cod
 Multimea
(codebook)
cuvintelor
de
cod
se
numeste
dictionar
Compresia prin cuantizarea
vectoriala
 Fiecare cuvant de cod are asociat un domeniu in spatiul k-
dimensional, denumit domeniu Voronoi, dupa regula:

Vi  x  R
k
: x  yi  x  y j ,
j  i

 Domeniile (regiunile) Voronoi impart spatiul Rk astfel incat:
N
 Vi
 R
k
i 1
si
N
 Vi
i 1
 ,
i  j
Exemplu
 Asociat cu fiecare regiune
(sau cluster) se gaseste un
cuvant de cod
 Fiecare regiune are un singur
cuvant de cod
 Aceste regiuni sunt separate
prin linii imaginare, trasate
cu linie continua
 Pentru un vector de intrare,
cuvantul de cod ce este ales
este acela din care face parte
vectorul de intrare.
Cuvinte de cod in spatiul bidimensional.
Vectorii de intrare sunt marcati cu „x”, cuvintele de cod sunt
reprezentate prin cercuri, iar regiunile Voronoi sunt separate
prin linii
Compresia prin cuantizarea
vectoriala
 Cuvantul de cod reprezentativ este determinat de cea mai
mica distanta Euclidiana de vectorul de intrare
 Distanta Eucliadiana definita prin:
2
k
d ( x ,y i ) 
 x j
j 1
 y ij

Algoritm de cuantizare vectoriala
Begin
Operatii off-line:
#1: Stabileste dim. vectorului (domeniului) functie de
eroarea acceptata
#2: Defineste setul de vectori de cod (imagini)
Operatii on-line:
#1: Prezinta imaginea de comprimat
#2: Imparte in blocuri (vectori) de acceasi dimensiune cu
vectorii de cod
#3: PENTRU fiecare bloc al imaginii EXECUTA
#3.1: Cauta cel mai aproape vectorului de cod
#3.2: Codeaza si transmite indicele vectorului de cod.
End
Schema bloc
Schema bloc
 La codare se calculeaza indicele cuvantului de cod ce
ofera distanta cea mai mica fata de vectorul de intrare
 Criteriul folosit este cel de distorsiune minima, bazat pe
distanta Euclidiana dintre vectorul de intrare si fiecare
cuvant de cod memorat/cunoscut
 Pe canal se trimite indexul acelui cuvant de cod
 La de-compresie/decodare, se inlocuieste indexul cu
cuvantul de cod corespunzator
 Operatia cea mai dificila este proiectarea cuvintelor de
cod, deci de a stabili numarul de cuvinte de cod si modul
de calcul al cuvintelor de cod pentru fiecare regiune
Schema bloc
 Desi, cuantizarea vectoriala ofera aceeasi rata a distorsiunii ca
si cuantizarea scalara sau PCM, metoda nu are o raspandire
foarte larga in aplicatiile comerciale
 Sunt doua motive:
 primul se refera la timpul necesar generarii cuvintelor de cod
 al doilea, se refera la viteza de cautare a acestora in multimea
cuvintelor de cod
 Cea mai simpla metoda de cautare, aceea a cautarii totale, un
vector de intrare este comparat cu toti vectorii cod (full search
method)
 Numarul de operatii fiind foarte mare, metoda cautarii totale
este costisitoare
Exemplu
 Se considera imaginea „cameraman”, prezentata in figura
de mai jos
Exemplu
 Prin impunerea unei erorii patratice medii mai mici decat
un anumit procent din energia celulei de baza (ce defineste
cuvintele de cod reprezentativi) se obtin rezultatele :
 Dependenta numarului de vectori din dictionar functie de
eroarea impusa
Exemplu
 Vectorii de cod pentru diferite valorii ale distorsiunii
patratice medii, ca procente din energia celulei de baza
Exemplu
Exemplu
 Raportul de compresie este
RC 
nc  nl  n _ bit _ per _ pixel
n _ coef  n _ bit _ per _ index

nc  nl  n _ bit _ per _ pixel
n _ coef  log 2 ( n _ coef ) 
unde
nc este numarul de coloane
nl este numarul de linii
n_bit_per_pixel este numarul de biti pentru reprezentarea
intensitatii unui pixel
n_coef este numarul de coeficienti considerati in
transformare
n_bit_per_coef este numarul de simboluri binare pentru
reprezentarea unui coeficient
Exemplu
 Se considera imaginea initiala „cameraman.tif” de
dimensiune 256*256*8 biti (imagine gri)
 Celula de baza are dimensiuea de 4x4
 Se considerara un numar diferit de vectori de baza in
cadrul dictionarului, de 11.944, 9.764 si 8200
Exemplu
RC 
256  256  8
256  256  8

 3 . 65
11944  log 2 (11944 ) 
11944 14
RC 
256  256  8
256  256  8

 4 . 03
9764  log 2 ( 9764 ) 
9764 14
RC 
256  256  8
256  256  8

 4 . 56
8200  log 2 ( 8200 ) 
8200 14
Evolutia standardului MPEG
 MPEG-1 (1991) (ISP/IEC 11172)




debit de informatie pana la 1.5 Mbps
formatul de imagine tipic CIF (Common Interface Format)
frecventa cadrelor 24 … 30 fps
Aplicatiile principale: staocarea informatiei video pentru multimedia
(CD-ROM);
 MPEG-2 (1994) (ISP/IEC 13818)



Extensie pentru metodele cu intretesere, optimizat pentru rezolutia TV
Calitatea imaginii similara cu NTSC, PAL, SECAM la 4-8 Mbps
HDTV la 20 Mbps;
 MPEG-4 (1999) (ISP/IEC 14496)
 Codare bazata pe obiecte
Descriere sumara a standardelor
folosite in compresia video
Elementele de baza ale algoritmilor
de compresie MPEG
 Secventele video contin o redundanta mare, atat statistica cat si
subiectiva, atat in interiroul fiecarui cadru cat si intre cadre
 Scopul codarii surselor video este reducerea ratei de informatie (a
ratei de bit) pentru stocare si transmisie, prin exploatarea
redundantelor statistice si subiective si de a codifica informatia de
imagine folosind tehnici entropice (bazate pe entropie)
 Raportul de compresie depinde de redundanta continuta in
mesaj, precum si de tehnica de compresie folosita
 Pentru
tehnicile de compresie un rol important il are
disponibilitatea unei tehnologiii VLSI pentru implementarea
algoritmilor de compresie
Elementele de baza ale algoritmilor
de compresie MPEG
 Tehnicile de codare a surselor video pot fi cu si fara pierdere de
informatie
 Scopul codarii fara pierdere de informatie este de a reduce
marimea imaginii pentru stocare si/sau transmisie cu mentinerea
calitatii imaginii originale, astfel incat calitatea imaginii decodate
sa fie egala cu calitatea imaginii originale
 In contrast, tehnicile de codare cu pierdere de informatie,
(MPEG-1, MPEG-2 si MPEG-4) au scopul de a a obtine o
anumita rata de informatie pentru stocare si/sau transmisie
 Criteriile de optimizare folosite la compresie au doua
componente:
 una obiectiva, care se refera la masura informationala
 Una subiectiva, care se refera la perceptia aparatului vizual al
omului
Sub-esantionare si interpolare
 Aproape toate tehnicile de codare video utilizeaza intensiv sub-esantionarea
(numita si decimare) si cuantizarea inainte de codare
 Conceptul de baza al decimarii este reducerea dimensiunii semnalului de
intrare video (semnal bi-dimensional, pe orizontala si pe verticala) si a
numarului de cadre, inainte de inceperea codarii
 La destinatar, imaginile decodate sunt interpolate pentru afisare
 Aceasta tehnica poate fi considerata ca fiind una din cele mai elementare
tehnici, care utilizeaza – de asemenea – caracteristicile fiziologice ale
ochiului uman, si astfel se reduce redundanta subiectiva continuta in
semnalul video, in sensul ca ochiul uman este mai sensibil la schimbarile de
stralucire decat in schimbarile de cromatica (culoare)
 De aceea, tehncile de codare MPEG, mai intai impart imaginile in
componente YUV (o luminanta si doua componente de crominanta)
 Apoi, componentele de crominanta sunt esantionate relativ la componenta
de luminanta cu un Y:U:V raport specific aplicatii particulare (de exemplu,
in MPEG se utilizeaza un raport de 4:1:1 sau 4:2:2)
Compensarea miscarii prin predictie
(Motion-Compensed Predcition)
 Compensarea miscarii este o tehnica pentru reducerea redundantei
temporale intre cadre
 Este utilizata intensiv in MPEG-1 si MPEG-2 ca tehnica de predictie
temporala in codarea DPC
 Conceptul de compensare a miscarii este bazat pe estimarea miscarii
intre doua cadre video
 Asta inseamna ca daca toate elementele unei scene video sunt distribuite
spatial, miscarea dintre cadre poate fi descrisa printr-un numar limitat de
parametri, adica vectori de miscare pentru translatia pixelilor
 Pentru fiecare bloc in cadrul actual, N, se estimeaza un vector si care
va fi codat
 Vectorul de miscare este indreptat inspre un bloc de referinta de aceeasi
marime ca cel din cadrul anterior, N-1
 Se calculeaza o eroare a estimarii miscarii, prin scaderea miscarii
estimate pentru fiecare pixel al blocului DPCM = Differential Pulse
Code Modulation
Exemplu
 Fie un bloc de marime 8x8 pixeli
 Fiecare pixel este codat pe 8 biti (nivel de gri)
 Vectorul de miscare poate fi codat
 in coordonate polare, prin doi parametri (lungime si unghi)
 in coordonate carteziene prin doi parametri
 De asemenea – coordinatele centrului de greutate al noului
bloc, deci (xnew, ynew)
 Pentru exprimarea celor doi parametri este nevoie de 2 octeti
 Compresia calculata la acest nivel este (8 * 8) / ( 2 * 8) = 4
Principiul compensarii miscarii
Exemplu
 In mod uzual, numai eroarea de predictie si vectorii de
miscare se transmit receptorului
 In plus se presupune ca un vector miscare este
reprezentativ pentru un „bloc” de pixeli adiacenti
 In acest sens, imaginile sunt separate in blocuri disjuncte
de cate 16x16 pixeli (MPEG-1si 2) si se estimeaza numai
un singur vector, care este apoi codat si transmis
Intreteserea coeficientilor
transformatei
 Moduri de scanare a coeficientilor DCT in vederea
folosirii corelatiilor intre celule alaturate
Elementele de baza ale algoritmilor
de compresie MPEG
 Tehnica de compresie – video implementata in MPEG-1
acopera multe aplicatii, de la sistemele interactive din
CD_ROM la tehnicile de transmisie a informatiei video in
retele de telecomunicatii
 Pentru a suporta un numar cat mai mare de aplicatii, sunt
disponibili o serie de parametri de intrare cum sunt:


marimea de intrare a imaginii flexibila
frecventa cadrelor variabila
 Acestea pot fi specificate de utilizator.
Elementele de baza ale algoritmilor
de compresie MPEG
 MPEG recomanda un set de parametri de tip constrangeri
in ceea ce priveste partea de decodare
 Fiecare decodor trebuie sa suporte cel putin parametrii
unei surse video pana la dimensiunea unei imagini TV,
incluzand:
 un numar minim de 720 pixeli pe linie
 un numar minim de 576 linii pe imagine
 o rata minima a cadrelor de 30 cadre/secunda
 o rata minima de bit de 1.86 Mbiti/secunda
Schema de codare inter-cadru
 Tehnica de compresie MPEG-1,2 este bazata pe structura




macro-bloc, compensarea miscarii, si de inlocuirea
conditionata a macro-blocurilor
MPEG codeaza primul cadru dintr-o secventa cadru in
modul intra-cadru (I)
Fiecare cadru care urmeaza este codat prin predictie intercadru (modul sau cadre P)
Pentru predictie se folosesc datele (informatia) numai din
cadrul anterior, fie I , fie P
Cadrele sunt prelucrate pe baza unei secvente video bazata
pe bloc
Schema de codare inter-cadru
 Fiecare cadru color dintr-o secventa video este impartita in
„macro-blocuri”
 Fiecare macro-bloc contine blocuri de date din benzile de
luminanta si crominanta


patru blocuri de luminanta Y1, Y2, Y3 si Y4
doua blocuri de crominanta, U, V (fiecare din acestea are 8x8
pixeli)
 In acest fel, rata de esantionare intre Y:U:V luminanta si
crominanta este 4:1:1
Schema de codare inter-cadru
Schema de codare inter-cadru
(a) - Ilustrarea cadrelor I
si P intr-o secventa video
 Cadrele P sunt codate
folosind
compensarea
miscarii prin predictie
bazata pe cadrul anterior.
 Fiecare
cadru
este
divizat in macro-blocuri.
(b) – In fiecare macrobloc, informatia codata se
refera la 4 blocuri de
luminanta (Y1, Y2, Y3 si
Y4) si doua blocuri de
crominanta (U, V)
Concluzii
 Exista trei moduri de codare a unui cadru: I, B si P
 Imaginea de tip B provine de la (bidirectional predicted /
Bidirectional interpolated pictures)
 Acestea se prelucreaza cu referire atat la cadrul anterior cat
si la cadrul urmator celui considerat
 Utilitatea acetui tip se refera la asigurarea accesibilitatii
aleatoare in mediile de stocare ale imaginilor:



Tipul P nu permite accesarea oricarui cadru
Tipul I permite accesul la orice cadru
Tipul B permite accesul la cadre din doi in doi
Concluzii
 Cadrele I sunt codificate ca imagini statice, utilizand metoda DCT
 Cadrele P se obtin printr-un algoritm de predictie din cel mai
recent cadru I sau P
 Cadrele B sunt prezise din cele mai apropiate doua cadre I sau P
(anteriorul si urmatorul)
O
secventa
tipica
de
"IBBPBBPBBPBBIBB...«
cadre
ar
putea
fi:
 Din cauza ca pentru a decodifica un cadru B se cer cadrele I sau P
anterioare si ulterioare acestuia, cadrele nu sunt transmise in
ordine secventiala
Inlocuirea conditionata
 O trasatura esentiala suportata de algoritmul de codare
MPEG-1 este posibilittaea de a actualiza informatia
macro-bloc la decodare numai daca este necesar, adica
daca continutul macro-blocului a fost schimbat in
comparatie cu continutul aceluaiasi macro-bloc din cadrul
anterior
 Punctul cheie in obtinerea unei codari eficiente la rate de
bit mici consta in selectia corecta a modurilor de predictie
Inlocuirea conditionata
 Standardul MPEG distinge trei moduri de codare a macro-
blocurilor:
 MB ne-considerat/sarit = predictia din cadrul anterior cu vector
de miscare zero

Nu se codeaza si nu se transmite informatie despre macro-bloc
 MB inter-cadru: se utilizeaza predictia miscarii din cadrul anterior

Se transmit: tipul de MB, adresa MB si, daca este necesar, vectorul de
miscare, coeficientii DCT si pasul de cuantizare
 MB intra-cadru: nu se utilizeaza predictia din cadrele anterioare
 Se foloseste numai predictia in interiorul cadrului, deci intr-cadru
 Se transmit: tipul MB, adresa MB, coeficientii DCT si pasul de cuantizare
Diagrama bloc de baza a codorului/decodorului
hibrid DCT/DPCM


DCT=transformata cosinus discreta; Q=quantizare; Q*= refacere (DAC);
VLC=codare cu lungime variabila; VB=buffer variabil; FS =stocare cadre; MC = compensarea miscarii
Diagrama bloc de baza a codorului/decodorului
hibrid DCT/DPCM
 Primul cadru dintr-o secventa video este codat in mod INTRA fara sa se
considere cadrele anterioare sau superioare
 La nivelul codorului, fiecarui bloc de luminanta si crominanta de 8x8 i se
aplica o transformare DCT, fiecare din cei 64 coeficienti DCT fiind
cuantizati in mod uniform
 Pasul de cuantizare, q, utilizat pentru cuantizarea coeficientilor DCT dintr-
un macro-bloc se transmite – de asemenea – receptorului
 Dupa cuantizare, coeficientul DCT cu indicele cel mai mic (componeneta
medie) este tratat diferit de restul ceficientilor (ce reprezinta componenta
alternativa)
 Fiecare componenta DC reprezinta intensitatea medie a blocului si se
codeaza utilizand o metoda de predictie diferenatiala (intrucat exista o
corelatie mare intre componentele continue de la un bloc la altul)
 Valorile cuantizate diferite de zero ale coeficientilor ramasi, impreuna cu
locatiile lor, sunt scanate in „zig-zag” si sunt codate folosind algoritmi de
codare entropica (VLC = variable length code)
Diagrama bloc de baza a codorului/decodorului
hibrid DCT/DPCM
 Decodorul realizeaza operatia inversa, mai intai extragand
si decodand coeficientii transformarii (VLD = Variable
length decoding) din secventa de simboluri receptionata,
pentru a obtine locatia si valorile cuantizate ale
coeficientilor ne-nuli pentru fiecare bloc
 Pentru reconstructie se foloseste inversa transformatei
cosinus discrete
 La decodare, pixelilor cu miscarea compensata de la
cadrul anterior, (N-1), continuti in FS sunt adunati cu
eroarea de predictie pentru a reface cadrul N
Diagrama bloc de baza a codorului/decodorului
hibrid DCT/DPCM
 Pentru codarea cadrelor de tip P, cadrul anterior de tip I sau P este





stocat intr-un memorator de cadre (FS=frame store) atat in codor cat
si in decodor
Compensarea miscarii este efectuata pe o baza macro-bloc – astfel
incat se estimeaza numai vectorul de miscare dintre cadrele N si N-1,
pentru fiecare macro-bloc considerat.
Vectorii de miscare sunt codati si transmisi receptorului
Se aplica apoi o transformare DCT pe un bloc de 8x8 pentru fiecare
bloc continut in macro-bloc urmat de cuantizarea (Q) coeficientilor
DCT
Este necesar un buffer video pentru a asigura o rata de informatie
constanta la iesirea codorului
Pasul de cuantizare este ajustat pentru fiecare macro-bloc dintr-un
cadru pentru a obtine o rata de bit impusa si pentru a evita supra sau
sub – incarcarea bufferului
Concluzii
 Cadrele I sunt codificate ca imagini statice, utilizand metoda DCT
 Cadrele P se obtin printr-un algoritm de predictie din cel mai recent
cadru I sau P
 Cadrele B sunt prezise din cele mai apropiate doua cadre I sau P
(anteriorul si urmatorul)
 O secventa tipica de cadre ar putea fi:
"IBBPBBPBBPBBIBB...«
 Din cauza ca pentru a decodifica un cadru B se cer cadrele I sau P
anterioare si ulterioare acestuia, cadrele nu sunt transmise in ordine
secventiala