laborator 4 - erasmus pulse 4.pdf · 2012-02-15 · comunicaţii multimedia – laborator 4 7...

28
Comunicaţii multimedia – Laborator 4 1 LABORATOR 4 4.1. Estimarea mişcării 4.1.1 Noţiuni teoretice Estimarea mişcării este o tehnică importantă pentru compresia secvenţelor video. Ideea de bază este căutarea de regiuni de pixeli, care s- au deplasat dintr-un cadru in următorul şi codarea doar a operatorului de deplasare, nu a setului complet de date. Această operaţie de bază se aplică şi la alte operaţii de procesare a imaginilor cum ar fi de tectarea contururilor şi recunoaştera formelor. Cea mai populară metodă practică pentru estimarea mişcării este metoda potrivirii blocurilor. Această metodă presupune că imaginea este formată din blocuri în mişcare. Datorită complexităţii ei hardware mai mici, este intens folosită în VLSI şi aproape toate codec-urile H.261 şi MPEG 1-2 utilizează potrivirea blocurilor ca metodă de estimare a mişcării. In potrivirea blocurilor, cel mai bun estimat al vectorului de mişcare este găsit printr-o procedură de căutare în domeniul pixelilor. Ideea de bază este prezentată în Figura 3.12, unde deplasamentul pentru un pixel ) , ( 2 1 n n din cadrul k este determinat considerând un bloc 2 1 N N × centrat în jurul lui ) , ( 2 1 n n şi căutând în cadrul k-1 (cadrul de căutare) locul celui mai potrivit bloc de aceeaşi dimensiune. Căutarea este de obicei limitată din motive de calcul numai în interiorul ferestrei de căutare de dimensiune 2 2 1 1 2 2 M N M N + × + . Figura 3.12 Potrivirea blocurilor Bloc Cadrul k Fereastră de căutare Cadrul k-1

Upload: others

Post on 16-Feb-2020

13 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Laborator 4 - ERASMUS Pulse 4.pdf · 2012-02-15 · Comunicaţii multimedia – Laborator 4 7 Figura 3.17 Ferestrele afişate pentru Estimarea mişcării 4.1.3 Exerciţii Încărcaţi

Comunicaţii multimedia – Laborator 4 1 LABORATOR 4 4.1. Estimarea mişcării 4.1.1 Noţiuni teoretice

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

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

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

21 NN × centrat în jurul lui ),( 21 nn şi căutând în cadrul k-1 (cadrul de căutare) locul celui mai potrivit bloc de aceeaşi dimensiune. Căutarea este de obicei limitată din motive de calcul numai în interiorul ferestrei de căutare de dimensiune 2211 22 MNMN +×+ .

Figura 3.12 Potrivirea blocurilor

Bloc

Cadrul k

Fereastră de căutare

Cadrul k-1

Page 2: Laborator 4 - ERASMUS Pulse 4.pdf · 2012-02-15 · Comunicaţii multimedia – Laborator 4 7 Figura 3.17 Ferestrele afişate pentru Estimarea mişcării 4.1.3 Exerciţii Încărcaţi

Comunicaţii multimedia – Laborator 4 2

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

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

∑∈

−+++=Bnn

knnskdndnsNN

ddMSE),(

2212211

2121

21

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

unde B este un bloc de dimensiune 21 NN × , pentru un set de vectori de mişcare ),( 21 dd . • Diferenţa medie absolută minimă (MAD)

−+++=β),(

21221121

2121

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

knnskdndnsNN

ddMAD

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

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

222 MdM ≤≤− centrată în jurul fiecărui pixel, pentru care va fi estimat un vector de mişcare, unde 1M şi 2M sunt întregi predefiniţi.

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

Căutarea completă

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

Căutarea în trei paşi

Vom explica procedura de căutare în trei paşi cu ajutorul Figurii 3.13, unde este reprezentat doar cadrul de căutare cu parametrii ferestrei de căutare 721 == MM : • Numărul „0” marchează pixelul din cadrul de căutare care este chiar

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

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

Page 3: Laborator 4 - ERASMUS Pulse 4.pdf · 2012-02-15 · Comunicaţii multimedia – Laborator 4 7 Figura 3.17 Ferestrele afişate pentru Estimarea mişcării 4.1.3 Exerciţii Încărcaţi

Comunicaţii multimedia – Laborator 4 3

Figura 4.13 Căutare în trei paşi

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

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

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

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

Căutarea încrucişată

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

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

0

1 11

1 1

2

1

1

2 2

2

2

2

2

2

3 33 3 3 3 3

3

Page 4: Laborator 4 - ERASMUS Pulse 4.pdf · 2012-02-15 · Comunicaţii multimedia – Laborator 4 7 Figura 3.17 Ferestrele afişate pentru Estimarea mişcării 4.1.3 Exerciţii Încărcaţi

Comunicaţii multimedia – Laborator 4 4

Figura 3.14 Căutare încrucişată

4.1.2 Opţiuni de compresie

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

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

0

1

1

1

1

2

2

2

3

3

4 5

4

3

55

5

Page 5: Laborator 4 - ERASMUS Pulse 4.pdf · 2012-02-15 · Comunicaţii multimedia – Laborator 4 7 Figura 3.17 Ferestrele afişate pentru Estimarea mişcării 4.1.3 Exerciţii Încărcaţi

Comunicaţii multimedia – Laborator 4 5 Hierarchy: Aici se poate selecta algoritmul de potrivire a blocurilor

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

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

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

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

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

xd xd

yd

yd blocul curent

fereastra de căutare

Page 6: Laborator 4 - ERASMUS Pulse 4.pdf · 2012-02-15 · Comunicaţii multimedia – Laborator 4 7 Figura 3.17 Ferestrele afişate pentru Estimarea mişcării 4.1.3 Exerciţii Încărcaţi

Comunicaţii multimedia – Laborator 4 6 N-Step: Pentru strategia de „căutare în N paşi” poate fi selectat

numărul de nivele (paşi). Cu cât este mai mare numărul de paşi, cu atât este mai mare şi deplasamentul maxim admisibil. Pentru estimarea ierarhică este dat numărul de paşi pentru fiecare nivel de rezoluţie.

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

Imaginile afişate:

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

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

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

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

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

Page 7: Laborator 4 - ERASMUS Pulse 4.pdf · 2012-02-15 · Comunicaţii multimedia – Laborator 4 7 Figura 3.17 Ferestrele afişate pentru Estimarea mişcării 4.1.3 Exerciţii Încărcaţi

Comunicaţii multimedia – Laborator 4 7

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

4.1.3 Exerciţii

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

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

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

Dacă nu, în ce parte a imaginii pare să nu funcţioneze compensarea mişcării?

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

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

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

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

Page 8: Laborator 4 - ERASMUS Pulse 4.pdf · 2012-02-15 · Comunicaţii multimedia – Laborator 4 7 Figura 3.17 Ferestrele afişate pentru Estimarea mişcării 4.1.3 Exerciţii Încărcaţi

Comunicaţii multimedia – Laborator 4 8 4.2. Standardul H.261 4.2.1. Noţiuni teoretice

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

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

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

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

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

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

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

Page 9: Laborator 4 - ERASMUS Pulse 4.pdf · 2012-02-15 · Comunicaţii multimedia – Laborator 4 7 Figura 3.17 Ferestrele afişate pentru Estimarea mişcării 4.1.3 Exerciţii Încărcaţi

Comunicaţii multimedia – Laborator 4 9 • Poziţia eşantioanelor de luminanţă (Y) şi crominanţă (CB şi CR):

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

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

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

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

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

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

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

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

Figura 4.2 Structura unui macrobloc

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

Figura 4.3 Structura grupului de blocuri

1 2 3 4 5 6 7 8 9 10 11

12 13 14 15 16 17 18 19 20 21 22

23 24 25 26 27 28 29 30 31 32 33

Page 10: Laborator 4 - ERASMUS Pulse 4.pdf · 2012-02-15 · Comunicaţii multimedia – Laborator 4 7 Figura 3.17 Ferestrele afişate pentru Estimarea mişcării 4.1.3 Exerciţii Încărcaţi

Comunicaţii multimedia – Laborator 4 10

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

Figura 4.4 Structura unei imagini CIF, respeciv QCIF

Algoritmul de codare

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

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

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

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

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

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

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

Vectorul de mişcare

Cadrul curent

Cadrul anterior (de referinţă)

Page 11: Laborator 4 - ERASMUS Pulse 4.pdf · 2012-02-15 · Comunicaţii multimedia – Laborator 4 7 Figura 3.17 Ferestrele afişate pentru Estimarea mişcării 4.1.3 Exerciţii Încărcaţi

Comunicaţii multimedia – Laborator 4 11

• Pentru obţinerea vectorilor de mişcare se consideră diferenţa dintre macro-blocurile localizate pe aceeaşi poziţie în imaginile anterioare.

• Vectorii de mişcare sunt codaţi DPCM şi dacă valoarea codată depăşeşte o anumită valoare de prag, se aplică DCT şi se transmit coeficienţii.

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

Figura 4.6 Schema de principiu a codorului H.261

• Toţi coeficienţii sunt cuantizaţi uniform şi codaţi cu lungime

variabilă. • În plus un filtru trece-jos poate fi aplicat înaintea DCT pentru a

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

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

• Schema detaliată a codorului:

Page 12: Laborator 4 - ERASMUS Pulse 4.pdf · 2012-02-15 · Comunicaţii multimedia – Laborator 4 7 Figura 3.17 Ferestrele afişate pentru Estimarea mişcării 4.1.3 Exerciţii Încărcaţi

Comunicaţii multimedia – Laborator 4 12

Figura 4.7 Schema codorului H.261

• Schema decodorul:

Figura 4.8 Schema decodorului H.261

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

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

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

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

(VLC).

Page 13: Laborator 4 - ERASMUS Pulse 4.pdf · 2012-02-15 · Comunicaţii multimedia – Laborator 4 7 Figura 3.17 Ferestrele afişate pentru Estimarea mişcării 4.1.3 Exerciţii Încărcaţi

Comunicaţii multimedia – Laborator 4 13 Tabelul 4.1 Tabel pentru codare cu lungime variabilă

RUN Level Cod

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

Escape

1 1 2 3 4 5 6 7 8 9

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

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

0000 01

• Cele mai întâlnite combinaţii de zerouri succesive (RUN) şi al doilea

simbol (LEVEL) sunt codate cu lungime variabilă (vezi Tabelul 4.1). Celelalte combinaţii (RUN, LEVEL) sunt codate cu cuvinte de 20 de biţi, care conţin 6 biţi ESCAPE, 6 biţi RUN şi 8 biţi LEVEL.

Tabelul 4.2 Exemplificarea codurilor pentru RUN şi LEVEL

Run este un cod cu lungime fixă de 6

biţi

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

Run Code Level Code

0 0000 00 −128 1 0000 01 −127 1000 0001 2 0000 10 ⋅ ⋅ ⋅ ⋅ 00−2 1111 1110 ⋅ ⋅ 00−1 1111 1111

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

Page 14: Laborator 4 - ERASMUS Pulse 4.pdf · 2012-02-15 · Comunicaţii multimedia – Laborator 4 7 Figura 3.17 Ferestrele afişate pentru Estimarea mişcării 4.1.3 Exerciţii Încărcaţi

Comunicaţii multimedia – Laborator 4 14 • De exemplu: 0 0 0 –1 6 0 3 EOB

se codează: 001111 001000010 001001010 10 Codarea vectorilor de mişcare (MV)

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

Difference) cu lungime variabilă (vezi Tabelul 4.3)

Tabelul 4.3 Codarea vectorilor de mişcare

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

MVD Cod

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

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

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

Page 15: Laborator 4 - ERASMUS Pulse 4.pdf · 2012-02-15 · Comunicaţii multimedia – Laborator 4 7 Figura 3.17 Ferestrele afişate pentru Estimarea mişcării 4.1.3 Exerciţii Încărcaţi

Comunicaţii multimedia – Laborator 4 15 Cuantizarea coeficienţilor

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

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

iar rata cadrelor 30k

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

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

• Pasul de cuantizare este 2 int 2200

umplerebufferq

⎛ ⎞× +⎜ ⎟×⎝ ⎠

Tabelul 4.4 Codarea vectorilor de mişcare

Umplerea bufferului Pasul de cuantizare < 200q 2 < 400q 4 < 600q 6 < 800q 8

... ... < 6000q 60 < 6200q 62

Fluxul de date

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

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

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

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

Page 16: Laborator 4 - ERASMUS Pulse 4.pdf · 2012-02-15 · Comunicaţii multimedia – Laborator 4 7 Figura 3.17 Ferestrele afişate pentru Estimarea mişcării 4.1.3 Exerciţii Încărcaţi

Comunicaţii multimedia – Laborator 4 16

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

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

Figura 4.9 Structura fluxului de date

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

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

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

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

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

Page 17: Laborator 4 - ERASMUS Pulse 4.pdf · 2012-02-15 · Comunicaţii multimedia – Laborator 4 7 Figura 3.17 Ferestrele afişate pentru Estimarea mişcării 4.1.3 Exerciţii Încărcaţi

Comunicaţii multimedia – Laborator 4 17 4.2.2 Programul Vprove

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

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

Figura 4.10 Încărcarea secvenţei de test

În Tabelul 4.5 sunt descrise diversele butoane din meniu şi

semnificaţia lor:

Page 18: Laborator 4 - ERASMUS Pulse 4.pdf · 2012-02-15 · Comunicaţii multimedia – Laborator 4 7 Figura 3.17 Ferestrele afişate pentru Estimarea mişcării 4.1.3 Exerciţii Încărcaţi

Comunicaţii multimedia – Laborator 4 18 Tabelul 4.5 Butoanele din meniu Icoana Funcţie Apelare Meniu Control tastatura

Rulează secvenţa

Play – Play

CTRL+P

Opreşte secvenţa Play – Stop

CTRL+S

Pauză/Avansează un cadru

Play – Pause/Frame Advance

CTRL+A

Derulare rapidă Play – Fast Fwd

CTRL+F

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

Play – Blind Fast Fwd

CTRL+F

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

Play – Pause On frame…

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

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

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

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

Page 19: Laborator 4 - ERASMUS Pulse 4.pdf · 2012-02-15 · Comunicaţii multimedia – Laborator 4 7 Figura 3.17 Ferestrele afişate pentru Estimarea mişcării 4.1.3 Exerciţii Încărcaţi

Comunicaţii multimedia – Laborator 4 19

Figura 4.11 Artefacte vizuale

Observaţi calitatea compresiei. Imaginea este destul de

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

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

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

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

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

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

cadrul anterior

Artefacte vizuale

Page 20: Laborator 4 - ERASMUS Pulse 4.pdf · 2012-02-15 · Comunicaţii multimedia – Laborator 4 7 Figura 3.17 Ferestrele afişate pentru Estimarea mişcării 4.1.3 Exerciţii Încărcaţi

Comunicaţii multimedia – Laborator 4 20

Figura 4.12 Vizualizarea diferitelor tipuri de macroblocuri

Priviţi datele din macroblocuri. • Activaţi caseta de informaţii despre macrobloc din “Frame/MB

Tooltip” • Trageţi fereastra MB Tooltip în afara imaginii • Mişcaţi mouse-ul peste imagine. O să apară un pătrat alb în jurul

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

În fereastra de MB Tooltip avem:

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

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

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

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

Page 21: Laborator 4 - ERASMUS Pulse 4.pdf · 2012-02-15 · Comunicaţii multimedia – Laborator 4 7 Figura 3.17 Ferestrele afişate pentru Estimarea mişcării 4.1.3 Exerciţii Încărcaţi

Comunicaţii multimedia – Laborator 4 21

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

Figura 4.13 Selectarea macroblocului

Figura 4.14 Fereastra MB Tooltip

Macrobloc selectat cu mouse-ul

Macrobloc de culoare

verde

Numărul macroblocului

(X Y)

Numărul cadrului

Page 22: Laborator 4 - ERASMUS Pulse 4.pdf · 2012-02-15 · Comunicaţii multimedia – Laborator 4 7 Figura 3.17 Ferestrele afişate pentru Estimarea mişcării 4.1.3 Exerciţii Încărcaţi

Comunicaţii multimedia – Laborator 4 22 Analiza grafică

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

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

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

Figura 4.15 Opţiuni în meniul Graph

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

‘H261 example’)

Figura 4.16 Salvarea fişierului de ieşire

Selectaţi opţiunile

Page 23: Laborator 4 - ERASMUS Pulse 4.pdf · 2012-02-15 · Comunicaţii multimedia – Laborator 4 7 Figura 3.17 Ferestrele afişate pentru Estimarea mişcării 4.1.3 Exerciţii Încărcaţi

Comunicaţii multimedia – Laborator 4 23 • Selectaţi “Graph / View Graph”. Datele sunt exportate în fişierul

respectiv şi acest fişier este deschis folosind Microsoft Excel. • Alegeţi “Enable macros”. Va rula programul macro. La sfârşit va

apărea tab-ul Vprov în stânga sus. • Selectaţi tab-ul ‘Ave Bits per MB’, care afişează numărul mediu de biţi

folosiţi pentru fiecare macrobloc (în culori). Puteţi vedea că cei mai mulţi biţi sunt folosiţi în centru (unde are loc mişcarea bărbatului); folosirea de relativ mulţi biţi şi în partea stânga sus şi pe marginea de jos este o eroare a codorului (vezi Figura 4.17)

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

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

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

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

graficele.

Page 24: Laborator 4 - ERASMUS Pulse 4.pdf · 2012-02-15 · Comunicaţii multimedia – Laborator 4 7 Figura 3.17 Ferestrele afişate pentru Estimarea mişcării 4.1.3 Exerciţii Încărcaţi

Comunicaţii multimedia – Laborator 4 24

Figura 4.18 Graficul frecvenţă relativă de codare intra

4.2.3 Aplicaţia H.261

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

Codorul H.261

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

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

Page 25: Laborator 4 - ERASMUS Pulse 4.pdf · 2012-02-15 · Comunicaţii multimedia – Laborator 4 7 Figura 3.17 Ferestrele afişate pentru Estimarea mişcării 4.1.3 Exerciţii Încărcaţi

Comunicaţii multimedia – Laborator 4 25

Figura 4.19 Codor H.261 Salvarea fişierului video codat H.261 se face sub forma

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

Figura 4.20 Meniul ”Fişier”

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

Prin selectarea opţiunii “Sursă” se poate alege sursa video externă: camera video, tuner tv. Se poate seta din driverul sistemului de operare

Page 26: Laborator 4 - ERASMUS Pulse 4.pdf · 2012-02-15 · Comunicaţii multimedia – Laborator 4 7 Figura 3.17 Ferestrele afişate pentru Estimarea mişcării 4.1.3 Exerciţii Încărcaţi

Comunicaţii multimedia – Laborator 4 26 funcţile specifice unei camere video luminozitate, contrast, hue, nivel de saturaţie al culorii din opţiunea “Device Settings” .

Figura 4.21 Alegerea sursei video Prin opţiunea “Format” se setează formatul video al fluxului codat

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

Figura 4.22 Alegerea formatului video Din meniul Video/Opţiuni se poate introduce pasul de cuantizare

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

Page 27: Laborator 4 - ERASMUS Pulse 4.pdf · 2012-02-15 · Comunicaţii multimedia – Laborator 4 7 Figura 3.17 Ferestrele afişate pentru Estimarea mişcării 4.1.3 Exerciţii Încărcaţi

Comunicaţii multimedia – Laborator 4 27

Figura 4.23 Alegerea pasului de cuantizare Decodorul H.261

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

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

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

Page 28: Laborator 4 - ERASMUS Pulse 4.pdf · 2012-02-15 · Comunicaţii multimedia – Laborator 4 7 Figura 3.17 Ferestrele afişate pentru Estimarea mişcării 4.1.3 Exerciţii Încărcaţi

Comunicaţii multimedia – Laborator 4 28

Figura 4.25 Harta video a imaginii

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