77
Univerzitet u Banjaluci Elektrotehnički fakultet Banjaluka Darko Ćulibrk MPEG-4, AVC/H.264 I VC-1 STANDARDI VIDEO KODOVANJA Banjaluka, mart 2010.

Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

Embed Size (px)

Citation preview

Page 1: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

Univerzitet u Banjaluci Elektrotehnički fakultet

Banjaluka

Darko Ćulibrk

MPEG-4, AVC/H.264 I VC-1 STANDARDI VIDEO KODOVANJA

Banjaluka, mart 2010.

Page 2: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

SADRŽAJ SADRŽAJ __________________________________________________________________ 1

1. UVOD __________________________________________________________________ 4

2. MPEG-4 _________________________________________________________________ 5

2.1 Uvod u standard _____________________________________________________________ 5

2.2 MPEG-4 koder _______________________________________________________________ 7

2.3 Kodovanje teksture ___________________________________________________________ 9 2.3.1 Intra kodovanje __________________________________________________________________ 9 2.3.2 Kodovanje teksture za VOP proizvoljog oblika _________________________________________ 11 2.3.3 Inter kodovanje _________________________________________________________________ 12 2.3.4 Estimacija/kompenzacija pokreta za VOP proizvoljnog oblika _____________________________ 16

2.4 Kodovanje oblika ____________________________________________________________ 16 2.4.1 Binarno kodovanje oblika _________________________________________________________ 17

2.4.1.1 Kodovanje oblika bazirano na blokovima _________________________________________ 17 2.4.1.2 Kodovanje oblika bazirano na konturi ____________________________________________ 18

2.4.2 Kodovanje oblika tonovima sive ____________________________________________________ 20

2.5 Kodovanje sprajtova _________________________________________________________ 20

2.6 Kodovanje tekstura talasićima _________________________________________________ 21

2.7 Kodovanje mreža (ili kodovanje mrežnih objekata, ili kodovanje bazirano na mrežama) __ 23 2.7.1 Kodovanje 2D mreža _____________________________________________________________ 23 2.7.2 Kodovanje 3D mreža _____________________________________________________________ 24

2.8 Kodovanje modela ___________________________________________________________ 27 2.8.1 Animacija lica ___________________________________________________________________ 27 2.8.2 Animacija tijela __________________________________________________________________ 30

2.9 Skalabilnost ________________________________________________________________ 31 2.9.1 Prostorna skalabilnost ____________________________________________________________ 31 2.9.2 Vremenska skalabilnost ___________________________________________________________ 33 2.9.3 Skalabilnost finih detalja __________________________________________________________ 34

2.10 Otpornost na greške ________________________________________________________ 34 2.10.1 Resinhronizacija ________________________________________________________________ 34 2.10.2 Oporavak podataka _____________________________________________________________ 35 2.10.3 Skrivanje grešaka _______________________________________________________________ 36

2.11 MPEG-4 Part 2 profili ________________________________________________________ 37

2.12. MPEG-7 i MPEG-21 _________________________________________________________ 38 2.12.1 MPEG-7 ______________________________________________________________________ 38 2.12.2 MPEG-21 _____________________________________________________________________ 39

3. AVC/H.264 _____________________________________________________________ 40

3.1 Uvod u standard ____________________________________________________________ 40

Page 3: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

MPEG-4, AVC/H.264 i VC-1 standardi video kodovanja 2

3.2 AVC/H.264 koder ____________________________________________________________ 40

3.3 Intra predikcija ______________________________________________________________ 43 3.3.1 Predikcija luma komponente _______________________________________________________ 44 3.3.2 Predikcija hroma komponenti ______________________________________________________ 45

3.4. Inter predikcija _____________________________________________________________ 45 3.4.1 Prilagodljiva veličina bloka _________________________________________________________ 45 3.4.2 Preciznost estimacije pokreta ______________________________________________________ 46 3.4.3 Predikcija vektora pokreta _________________________________________________________ 47 3.4.4 Višestruke referentne slike ________________________________________________________ 48

3.5 Transformacija i kvantizacija ___________________________________________________ 52 3.5.1 Transformacija i kvantizacija 4x4 blokova ostataka predikcije _____________________________ 52 3.5.2 Transformacija i kvantizacija 8x8 blokova ostataka predikcije _____________________________ 55 3.5.3 Transformacija i kvantizacija 4x4 luma DC koeficijenata__________________________________ 56 3.5.4 Transformacija i kvantizacija 2x2 hroma DC koeficijenata ________________________________ 56

3.6 Entropijsko kodovanje ________________________________________________________ 57 3.6.1 Eksponencijalno Golombovo kodovanje ______________________________________________ 57 3.6.2 CAVLC kodovanje ________________________________________________________________ 58 3.6.3 CABAC kodovanje ________________________________________________________________ 59

3.7 Filter protiv blokovskih ostataka _______________________________________________ 59

3.8 Otpornost na greške _________________________________________________________ 61

3.9 AVC/H.264 profili i nivoi ______________________________________________________ 61 3.9.1 Profili _________________________________________________________________________ 61 3.9.2 Nivoi __________________________________________________________________________ 63

4. VC-1 ___________________________________________________________________ 63

4.1 Uvod u standard ____________________________________________________________ 63

4.2 VC-1 koder _________________________________________________________________ 64

4.3 Intra predikcija ______________________________________________________________ 65

4.4 Inter predikcija ______________________________________________________________ 65 4.4.1 Prilagodljiva veličina bloka _________________________________________________________ 65 4.4.2 Preciznost estimacije pokreta ______________________________________________________ 65 4.4.3 Predikcija vektora pokreta _________________________________________________________ 67 4.4.4 Kompenzacija pokreta pomoću jačine svjetline ________________________________________ 68

4.5 Transformacija i kvantizacija ___________________________________________________ 68

4.6 Entropijsko kodovanje ________________________________________________________ 71

4.7 Filteri u petlji _______________________________________________________________ 71 4.7.1 OLT filter _______________________________________________________________________ 71 4.7.2 Filter protiv blokovskih ostataka ____________________________________________________ 72

4.8 Otpornost na greške _________________________________________________________ 73 4.8.1 Smanjenje opsega _______________________________________________________________ 73 4.8.2 Višestruka rezolucija _____________________________________________________________ 73

Page 4: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

SADRŽAJ 3

4.9 VC-1 profili i nivoi ___________________________________________________________ 73 4.9.1 Profili _________________________________________________________________________ 73 4.9.2 Nivoi __________________________________________________________________________ 74

5. ZAKLJUČAK _____________________________________________________________ 75

LITERATURA ______________________________________________________________ 76

Page 5: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

MPEG-4, AVC/H.264 i VC-1 standardi video kodovanja 4

1. UVOD Standardi video kompresije MPEG-4 (u svojim implementacijama Part 2 i Part 10 AVC), H.264 i VC-1 predstavljaju prirodan nastavak ranijih, manje efikasnih sistema kodovanja MPEG-1, MPEG-2 i srodnih. Oni naravno naslijeđuju sve koncepte prethodnika, ali zahvaljujući uvođenju novih koncepata (alati koji omogućuju kombinaciju klasičnog videa i zvuka sa 2D i 3D grafikom i interakciju sa objektima scene kod MPEG-4 Part 2 standarda), kao i unapređenjem postojećih (efikasnije entropijsko kodovanje, kodovanje makroblokova bez gubitaka), ovi kodeci postižu efikasniju kompresiju (duplo manji bitski protok za isti kvalitet u odnosu na MPEG-2) i istovremeno donose novo multimedijalno iskustvo korisniku, kakvo nije moguće ostvariti sa ranijim standardima za kompresiju. Nudeći maksimalan kvalitet slike i zvuka, pri efikasnosti kodovanja koja je trenutno najbolja dostupna, ovi kodeci su se nametnuli kao industrijski standard čitavoj seriji sistema za prenos i reprodukciju multimedije. AVC/H.264 je podržan kao sistem HDTV video prenosa u Digital Video Broadcasting - Satellite - Second Generation (DVB-S2) satelitskom emitovanju. Ovaj kodek je i jedan od tri propisana za skladištenje videa visoke definicije na Blu-ray Disc i HD-DVD (sada već otpisanog standarda) diskove. Koristi se i za prenos videa na prenosne uređaje u Digital Video Broadcasting - Handheld (DVB-H), Digital Multimedia Broadcasting (DMB), i MediaFlo sistemima – koristi se u cijeloj porodici DVB standarda (satelitski, kablovski, zemaljski i za prenosne uređaje). Zahvaljujući velikom broju softverskih implementacija koristi se i za reprodukciju i prenos videa na personalnim računarima i Internetu (IPTV). VC-1 kodek je najpopularniji u svojim softverskim implementacijama od strane Microsofta. Također je jedan od standarda za zapis videa visoke definicije na Blu-ray Disc i HD-DVD diskove. Rad je podjeljen na poglavlja koja opisuju karakteristike sistema kodovanja te vrše njihovo poređenje:

• MPEG-4 – paket standarda koji se bave audio/video kompresijom. Ovdje ćemo pažnju posvetiti klasičnoj MPEG-4 Part 2 kompresiji vizuelnih podataka, čiji su pojedini nedostaci ispravljeni u naprednom Part 10 standardu. Objasnićemo i MPEG-7 i MPEG-21 standarde, usko vezane za napredne koncepte MPEG-4 kodovanja.

• H.264/AVC – faktički, MPEG-4 Part 10 Advanced Video Coding (AVC) i H.264 predstavljaju isti standard jer su razvijani zajedničkim snagama od strane ISO/IEC Moving Picture Experts Group-e (razvoj AVC-a) i ITU-T Video Coding Experts Group-e (zadužena za H.264). Opisaćemo unapređenja u odnosu na klasični MPEG-4.

• VC-1, efikasan standard kodovanja, alternativa i pandan H.264/AVC standardu. Postoje razlike i sličnosti ova dva standarda.

Ovi standardi su, naravno, predmet stalnog usavršavanja i osnova za naredne generacije standarda kakav bi trebao biti H.265 ili NGVC (Next-generation Video Coding) kodek ITU-T VCEG (Visual Coding Experts Group) grupe. Cilj bi trebao biti redukcija bitskog protoka od 25% i redukcija složenosti izračunavanja za 50% u odnosu na H.264. MPEG WG11 razvija High-performance Video Coding (HVC) kodek kao njihovu verziju nasljednika AVC/H.264 kodeka. Ove nove verzije popularnih kodeka neće biti predmet ovog rada.

Page 6: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

2. MPEG-4 5

2. MPEG-4

2.1 Uvod u standard MPEG-4 standard predstavlja paket povezanih, ali zasebnih dijelova koji se i označavaju upravo tako – dio, ili u anglosaksonskoj literaturi kao „Part“. Ovaj paket obuhvata problematiku kao što je sastavljanje audiovizuelnih podataka u tok, u dijelu MPEG-4 Part 1 – ovaj dio propisuje i MPEG-4 format podataka (ova prva verzija formata je odbačena u korist verzije 2 propisane u Part 14); predstavljanje i kodovanje vizuelnih podataka je opisano u MPEG-4 Part 2 (MPEG-4 Visual) i MPEG-4 Part 10 (H.264/AVC); predstavljanje i kodovanje audio podataka je obrađeno u MPEG-4 Part 3. Ostali dijelovi standarda pokrivaju raznovrsnu tematiku. Slikoviti prikaz paketa i funkcije pojedinih dijelova su prikazani na slici 1. Paket trenutno obuhvata 23 dijela od kojih je jedan dio prikazan na ilustraciji.

prezentacija

dekodovnje

demultipleksiranje i privremena memorija

transportna sprega

nije u standardu

11. opis scene20. LASeR21. GFX

2.Visual

3.Audio

10.AVC

1. Sistemi

6. DMIF

transport

4. P

rilag

ođen

ost

5. P

repo

ruče

ni s

oftv

er

LASeR - Lightweight Application Scene Representation

GFX - Graphical Framework eXtension

DMIF - Delivery Multimedia Integration Framework

Slika 1 Tok bita kroz MPEG-4 sistem

Predmet razmatranja u ovom poglavlju će biti dio koji se odnosi na kodovanje vizuelnih podataka, odnosno MPEG-4 Part 2. Part 10 će biti opisan u idućem poglavlju. MPEG-4 podržava sve funkcije implementirane u prethodnim standardima MPEG-1 i 2, te H.263. Osim što prethodne standarde unapređuje efikasnijim kodovanjem i boljim kvalitetom slike, MPEG-4 podržava ne samo prirodni video (jedini koji podržavaju prethodnici), već i sintetički generisan video, te 2D i 3D kompjutersku grafiku. Ono čim MPEG-4 unosi prekretnicu u video kodovanje je uvođenje kodovanja zasnovanog na sadržaju. Ovo praktično znači da se bilo kom objektu u sceni može pristupati nezavisno od drugih objekata, te se istim može manipulisati. Nažalost, ovaj najznačajniji napredak se zasad ne koristi u praktičnim sistemima, te se kod prosječnog korisnika novi sistem kodovanja manifestuje jedino kroz efikasniju kompresiju video sadržaja. Jedan od razloga ove situacije je to što je segmentisanje video sadržaja u objekte proizvoljnog oblika sa smislenim značenjem izuzetno težak zadatak. Isto, dodavanje mogućnosti dekoderima da rukuju pojedinim objektima scene povećava zahtjevanu procesorsku moć dekodera, a ova

Page 7: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

MPEG-4, AVC/H.264 i VC-1 standardi video kodovanja 6

mogućnost standardnim video aplikacijama i ne znači obavezno dobitak. Zbog toga ova izuzetna osobina MPEG-4 kodovanja ostaje zasad u interesu akademskih i istraživačkih krugova. MPEG-4 standard je uglavnom namjenjen multimedijalnim aplikacijama, te kao takav mora da ponudi određene osobine i mogućnosti. Funkcionalnost standarda se može sumirati kroz slijedeća tri aspekta. Interaktivnost zasnovana na sadržaju obuhvata slijedeća svojstva:

• Manipulacija i uređivanje bitskog toka zasnovani na sadržaju, ova opcija znači da MPEG-4 omogućuje pristup, uređivanje i manipulaciju na nivou objekata scene bez potrebe da se tok bita u toku operacije transkoduje, odnosno konvertuje iz jednog digitalnog oblika u drugi. MPEG-1 i 2 ne omogućuju manipulaciju i uređivanje u kompresovanom domenu.

• Hibridno kodovanje prirodnog i sintetičkog videa, kombinovanje vještačkih scena i objekata sa prirodnim videom. Tehnike koje ovo omogućuju su kodovanje sprajtova, efikasno kodovanje 2D i 3D površina i kodovanje talasićima za nepromjenljive teksture.

• Unapređen pristup u slučajnom vremenu, MPEG-4 posjeduje efikasne metode za slučajni pristup u vremenu, sa finom rezolucijom, video okvirima ili objektima u sceni.

Efikasno kodovanje zasnovano na sadržaju podrazumjeva tačke:

• Poboljšana efikasnost kodovanja, MPEG-4 video kodovanje pruža bolji subjektivni kvalitet u odnosu na MPEG-1/2 i H.263 kodovanje, bilo pri niskim ili visokim bitskim protocima.

• Kodovanje višestrukih istovremenih tokova podataka, MPEG-4 pruža mogućnost kodovanja višestrukih pogleda na scenu. Za stereoskopske (ili sa višestrukim pogledom) video aplikacije MPEG-4 iskorištava suvišnost podataka u više različitih pogleda na scenu i omogućuje efikasno združeno kodovanje pogleda na scenu, te reprodukciju na klasičnim ili 3D monitorima.

Univerzalni pristup znači slijedeća svojstva:

• Otpornost u sredinama sklonim greškama, ova osobina podrazumjeva pristup sa velikom otpornošću na greške u bežičnim ili žičnim mrežama, kao i pristup raznim tipovima skladišta podataka.

• Skalabilnost zasnovana na sadržaju, MPEG-4 omogućuje, uz veliku finoću, promjenu količine sadržaja, kvaliteta sadržaja (tj. prostorne i vremenske rezolucije) i kompleksnosti njegovog generisanja.

Da bi smo objasnili koncept kodovanja baziranog na objektima upoznaćemo se sa odgovarajućom nomenklaturom MPEG-4 standarda. Osnovni elementi kojima MPEG-4 operiše u formiranju scene su audio-vizuelni objekti (AVO). Ovi objekti se komponuju zajedno da bi se stvorila audiovizuelna scena. Ukoliko posmatramo samo MPEG-4 Part 2 (Visual), pojam koji ćemo definisati je video objekat. Video objekat (VO) je dio video scene koji može zauzimati područje proizvoljnog oblika i trajati proizvoljno vrijeme, a koji ima smisleno značenje. U najprostijem slučaju predstavlja video sekvencu pravougaonog oblika. VO može biti na primjer automobil koji se kreće scenom, kao i pozadina iza tog automobila. Svaki VO se opisuje tzv. informacijama za opis scene, tj. informacijama o teksturi, obliku i vektorima pokreta. Ove informacije zauzimaju poseban tok bita koji je multipleksiran i sinhronizovan sa osnovnim podacima o

Page 8: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

2. MPEG-4 7

VO-u. Video sekvenca se može kodovati na takav način da omogućuje da svaki VO može biti dekodovan i rekonstruisan posebno. Također je moguće svakom objektu pristupati u kompresovanom domenu i na taj način mijenjati scenu. VO na primjer može biti zumiran ili rotiran. Korisnik za svaki VO može podesiti prostornu i vremensku rezoluciju. MPEG-4 omogućuje i radnje kao što su ljepljenje sintetičkog ili prirodnog teksta, tekstura, slika ili videa preko rekonstruisanih VO-a. Kompletna MPEG-4 scena, koju mogu sačinjavati 2D i 3D prirodni ili vještački napravljeni objekti, čini vizuelnu sekvencu (VS). Uzorak VO-a u jednom trenutku vremena se naziva ravan video objekta (Video Object Plane – VOP). Ova definicija obuhvata i klasičnu definiciju okvira (frame) video sekvence, gdje je VOP pojedinačni okvir, a čitava sekvenca predstavlja VO. Slika 3 a) prikazuje primjer tri pravougaone VOP ravni, dok MPEG-4 dozvoljava proizvoljno oblikovane VO-e, gdje je svaki VO posebno kodovan. To znači i da VOP u MPEG-4 standardu ne mora obavezno biti pravougaonog oblika.

VO 1VO 1VO 1

VO 1 Pozadina VO 2 VO 3

VOP 1 VOP 2 VOP 3

a) b)

vrijeme vrijeme

VOP 1 VOP 2 VOP 3

Slika 2 VOP i VO – a) pravougaoni oblik VO-a, b) proizvoljni oblik VO-a

2.2 MPEG-4 koder VO je proizvoljnog oblika te je njegova VOP ravan, tj. vremenski 2D uzorak, također proizvoljnog oblika. VOP se definiše pomoću teksture (luminentna i hrominentna komponenta) i oblika. Isto kao i u MPEG-1/2 kompresiji, MPEG-4 propisuje različite vrste slika; one se u novoj terminologiji označavaju kao VOP:

• I-VOP, početna slika u grupi slika. Koduje se intrakodovanjem (I-), tj. koristi kodovanje zasnovano na DCT (Discrete Cosine Transform) transformaciji da smanji prostornu redudansu (niz istih vrijednosti piksela u nekom području) jedne slike. Da bi se dekodovala, ovoj slici nisu potrebne prethodne ili naredne slike.

• P-VOP, koduje se interkodovanjem, tj. koristi predikciju (P-) unaprijed na osnovu prethodnih I ili P slika. Iskorištava vremensku redudansu (grupa piksela će u idealnom slučaju samo promijeniti položaj u odnosu na prethodnu sliku). Vremenska redudansa se smanjuje tehnikom procjene (estimacije) i kompenzacije pokreta na nivou makrobloka. Razlika slike sa kompenzovanim pokretom i prethodne se transformiše sa DCT transformacijom, kvantuje i koduje VLC (Variable Length

Page 9: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

MPEG-4, AVC/H.264 i VC-1 standardi video kodovanja 8

Coding) kodovanjem. Predikcija se radi kako za teksture, tako i za oblik VOP-a (ukoliko koristimo proizvoljne oblike). P slika u osnovi ne predstavlja pravu sliku već niz instrukcija koje govore kako rekonstrisati tekući okvir iz prethodnog (mada P slika može da sadrži intrakodovane makroblokove, npr. neki objekat se pojavljuje u sceni).

• B-VOP, zasniva se također na predikciji, ali dvosmjernoj – bidirekcionoj (B-). To znači da se zasniva na prethodnim ili budućim I ili P VOP ravnima, ali nikako na B-VOP ravnima.

Sekvenca koja počinje sa I-VOP-om, pa sve do slijedećeg iste vrste, se naziva grupom VOP-ova (Group Of VOPs – GOV).

I-VOPtekstura

(vrijednosti piksela)

oblik (alfa ravan)

tekstura (vrijednosti piksela)

oblik (alfa ravan)

tekstura (vrijednosti piksela)

oblik (alfa ravan)

tekstura (vrijednosti piksela)

oblik (alfa ravan)

P-VOP B-VOP P-VOP

smijer predikcije

GOV

Slika 3 Tipovi slike za VOP ravni

Slika 4 prikazuje osnovnu šemu kodera čija su, kao što vidimo, dva osnovna bloka prediktor sa kompenzacijom pokreta/DCT baziran koder i koder oblika.

DCT Kvantizator Skeniranje / VLC

Koder teksture

Predikcija koeficijenata

Kompenzacija pokreta

Estimacija pokreta

Koder oblika

Obrnuta kvantizacija IDCT

Σ

Σ

Koder vektora pokreta

Video MUX

ulaz VOP-a

Tok bita+

-

++

Odabiranje načina (intra/inter)

Proizvoljan oblik VOP-a ili ne

Međumemorija za sliku

Slika 4 Osnovni blok MPEG-4 Part 2 video kodera

Page 10: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

2. MPEG-4 9

Šema očigledno ne obuhvata blok za segmentaciju scene na video objekte. Segmentaciju na smislene objekte je lako postići ukoliko se sadržaj scene vještački generiše, ali u opštem slučaju segmentaciju je potrebno izvršiti u već kreiranom sadržaju, najčešće prirodnim scenama. MPEG-4 standard ne obuhvata problem segmentacije već se smatra da će se ovaj problem riješiti u predobradi videa. Proces segmentacije je izuzetno složen te predstavlja uvijek aktuelan problem. Segmentacija se tipično sastoji iz tri koraka: uprošćenje (uklanjanje nevažnih podataka, npr. uklanjanje detalja filtriranjem), izvlačenje odlika (na bazi pokreta, boje, teksture, dubine, histograma itd.) i odluka (razdvajanje podataka u zasebna područja na osnovu analize odlika).

2.3 Kodovanje teksture U MPEG-1 i 2 standardima jedini način predstavljanja slike je bio pomoću piksela, te ovaj proces nije zahtijevao posebno ime. Pošto u MPEG-4 standardu postoje razni alati za opis slike, opis pikselima je dobio naziv kodovanje teksture. Kodovanje teksture u MPEG-4 koristi koncepte naslijeđene iz MPEG-1 i 2 i H.263 kodera uz unapređenja koja povećavaju kvalitet i pri niskim bitskim protocima, ali uz korištenje više procesne snage. Za uklanjanje vremenske redudanse među okvirima se koristi prediktivno kodovanje sa kompenzacijom pokreta (Motion Compensation – MC) korištenjem predviđanja pokreta (Motion Estimation –ME). Osnovna metoda koja se koristi za ME je poklapanje makroblokova sa susjednim okvirom. Pomjeraj makrobloka u odnosu na referentni iz susjednog okvira se opisuje vektorom pokreta (Motion Vector – MV). DCT se koristi za rješavanje prostorne redudanse u I-VOP-u kao i za kodovanje blokova greške MC predikcije. U narednim odjeljcima biće opisani unapređeni metodi kodovanja koji se koriste u MPEG-4 koderu.

2.3.1 Intra kodovanje Slika 5 pokazuje opštu šemu za kodovanje prostorne redudanse. Šema se koristi za kompresiju I-VOP-ova (intrakodovanje) kao i za kodovanje grešaka predikcije u P- i B-VOP-ovima.

DCT Cik-cak skeniranje

Kvantizaciona matrica Kvantizacija VLC-RLC

Pikseli Koeficijenti Nanizani koeficijenti

Težinovani koeficijenti

Dodan oblikovani šum

Izlazni podaci

Slika 5 Sistem kodovanja prostorne redudanse

MPEG-4 koristi Y, U, V kodovanje boja i 4:2:0 strukturu informacija o boji. Ovo znači da se luminansa koduje za svaki piksel, a vrijednosti za komponente hrominanse se decimuju stepenom dva vertikalno i horizontalno. Pošto se DCT izvodi na blokovima 8x8 piksela, jedan makroblok se sastoji od četiri bloka za luminansu (Y) i po jedan za komponente hrominanse (U, V). Najniži DCT koeficijent, tzv. DC koeficijent, nosi informaciju o prosječnoj vrijednosti luminanse za cijeli DCT blok i najčešće se malo razlikuje od bloka do bloka. Zbog toga se radi uštede u bitskom protoku koristi diferencijalno kodovanje DC koeficijenata, odnosno DCT prvog bloka se prenosi, a za slijedeće blokove u nizu se prenosi razlika između stvarne i prediktovane vrijednosti koeficijenta. Ovo se, naravno, ne može raditi u nedogled, već koder poslije jednog niza blokova počinje proces ispočetka. Logička cjelina koju čini ovaj niz blokova se naziva isječak slike (slice). Veličinu isječka bira koder zavisno od statistike

Page 11: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

MPEG-4, AVC/H.264 i VC-1 standardi video kodovanja 10

slike. MPEG-2 je koristio samo horizontalno skeniranje, odnosno njegov isječak je bila horizontalna traka koja se dobija isčitavanjem sa lijeva na desno, a predikcija DC koeficijenata se vršila samo u isječku skeniranjem koeficijenata u prethodnom DCT bloku.

Y1 Y2

Y3 Y4

U

V

8

8

8

8

16

16

4:2:0

Slika 6 Struktura makrobloka. Redoslijed kodiranja blokova je Y1, Y2, Y3, Y4, U, V

Novine koje uvodi MPEG-4 su trostuko skeniranje koeficijenata i predikcija za AC koeficijente. Kada se DCT blok intrakoduje, odluka na osnovu kog susjednog bloka (u istom okviru) će se kodovati se donosi na temelju gradijenta slike, tj. stepena promjene DC koeficijenata (intra blokovi, tj. blokovi koji sadrže informacije nezavisne od blokova u ostalim okvirima – frejmovima, mogu postojati i u P-slikama, npr. pojava novog objekta ili površine u slici). Kako slika 7 pokazuje, analiziraju se tri susjedna bloka A, B i C da bi se odlučilo da li će se predkcija vršiti na osnovu bloka iznad (vertikalna predikcija) ili na osnovu bloka lijevo (horizontalna predikcija). Koriste se blokovi iznad ili lijevo jer će oni već biti dostupni u koderu i dekoderu.

B C

A DCT blok koji će biti kodovan

F00A-F00B= vertikalni gradijent : V

F00B-F00C= horizontalni gradijent : H

Ako je V<H: vertikalna predikcija+ horizontalno skeniranje

Ako je V≥ H: horizontalna predikcija+ vertikalno skeniranje

I blok direktno

iznad

I blok koji će se

kodovati

+

¯

predviđene vrijednosti

stvarne vrijednosti

ostatak

8x razlika koeficijenata

I blok direktno

lijevo

I blok koji će

se kodovati

+

¯

predviđene vrijednosti

stvarne vrijednosti

ostatak:

8x razlika koeficijenata

a)

b) c) Slika 7 a) predikcija zasnovana na gradijentu, b) vertikalna predikcija, c) horizontalna predikcija

Page 12: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

2. MPEG-4 11

Isti metod se koristi i za predviđanje AC koeficijenata. Razlika je jedino u stepenu kvantizacije. Svaki DC koeficijent se kvantuje sa 8 bita, a kvantovanje AC koeficijenata može biti drugačije od bloka do bloka. Ako su A, B ili C blokovi (na osnovu kojih se vrši predikcija) van granica VOP-a ili ako nisu intra blokovi (slučaj P-slike) njihova kvantizovana vrijednost se postavlja na 128 za DC i 0 za AC koeficijente. Proces predikcije koeficijenata se ne koristi za P i B slike jer se u njima radi o greškama predikcije čija je satistika drugačija, a ne o stvarnim pikselima slike (sem u slučaju P intra blokova). Cik-cak skeniranje u MPEG-4 šemi zavisi od metode predikcije i provodi se po izmjenjivim putanjama da bi se koeficijenti za koje je vjerovatnije da postoje prenijeli ranije.

Izmjenjivo horizontalno skeniranje

(vertikalna predikcija)

Izmjenjivo vertikalno skeniranje

(horizontalna predikcija) Slika 8 Izmjenljivo cik-cak skeniranje u MPEG-4 kodovanju

2.3.2 Kodovanje teksture za VOP proizvoljog oblika Tokom kodovanja VOP je predstavljen sa pravougaonikom koji okružuje VO, ali na takav način da sadrži minimalan broj makroblokova. Postoje tri vrste makroblkova u VOP-u proizvoljnog oblika: MB-ovi koji su u potpunosti u VOP-u, oni duž njegove granice i MB-ovi izvan VOP-a (slika 9).

ugao slike

širina VOP-a

visi

na V

OP-

a MB izvan VOP-a

granični MB

MB u VOP-u

proizvoljni oblik

Slika 9 VOP ravan se predstavlja pravougaonikom koji je okružuje

Page 13: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

MPEG-4, AVC/H.264 i VC-1 standardi video kodovanja 12

Prva vrsta se koduje klasičnom metodom – entropijsko kodovanje kvantizovanih DCT koeficijenata. 8x8 blokovi koji leže na granici VOP-a se mogu kodovati dvjema predloženim metodama – popuna niskopropusnom ekstrapolacijom (Low Pass Extrapolation (LPE) padding) i DCT transformacija prilagodljiva obliku (Shape Adaptive DCT – SA-DCT). Blokovi izvan granice VOP-a se smatraju transparentnim i ne koduju se. Popuna niskopropusnom ekstrapolacijom (LPE padding), ova tehnika popune bloka se koristi za intrakodovane blokove su koji dijelom u granicama objekta. Prvo se svakom pikselu izvan granice objekta doda srednja vrijednost svih piksela u bloku (bilo unutrašnjih ili vanjskih). Tada se svaki piksel p(i, j) izvan granica objekta podvrgava operaciji usrednjavanja počevši od gornjeg lijevog ugla, red po red, do donjeg desnog ugla:

p(i, j)=[ p(i, j-1)+p(i-1, j)+p(i, j+1)+p(i+1, j)]/4 Ako su jedan ili više piksela koji se koriste za filtriranje van granica bloka, odgovarajući pikseli se ne uzimaju u obzir i faktor 1/4 se mijenja u skladu sa tim. Tehnika popune se koristi da bi se detalji koji su u graničnom bloku, a van objekta, zamijenili pikselima koji generišu minimalan broj DCT koeficijenata, što poboljšava kodovanje. Ovi detalji se ionako u dekoderu odbacuju na osnovu podataka o obliku objekta. DCT transformacija prilagodljiva obliku (SA-DCT) se također primjenjuje na 8x8 blokove locirane na granici objekta. Ideja je da se upotrijebi jednodimenzionalna (1-D) DCT vertikalno pa horizontalno u skladu sa brojem aktivnih piksela u bloku. Nakon što se provede vertikalna 1-D DCT za svaku kolonu koja sadrži bar jedan aktivni piksel, koeficijenti DCT transformacija sa istom frevencijom se poravnaju u red, tj. u prvom redu su DC koeficijenti svih vertikalnih DCT-a, u drugom redu koeficijenti prvog reda itd. Nakon ovoga se provode horizontalne 1-D DCT transformacije na svakom redu. Broj rezultućujih koeficijenata ostaje isti (isti kao i broj aktivnih piksela), a svi oni su koncentrisani u gornjem lijevom uglu što pogoduje cik-cak skeniranju. Pošto se dekoderu prenosi i kodovan oblik, na prijemu se vrši inverzna operacija i rekonstruišu se pikseli. U slučaju 8x8 aktivnih piksela, SA-DTC je jednaka 2-D DCT transformaciji.

1-D DCT po kolonama

1-D DCT po redovima

Aktivni pikseli slike

Koeficijenti DCT po kolonama Rezultat SA-DCT

Slika 10 Ilustracija SA-DCT transformacije

2.3.3 Inter kodovanje Inter kodovanje u MPEG-4 standardu koristi iste principe kao i prethodni standardi. Inter kodovanje teksture se zasniva na formiranju bloka greške predikcije. Ovaj blok se dobija tako što se oduzima vrijednost svakog piksela u MB sa kompenzovanim pokretom od odgovarajućih piksela MB-a u frejmu na osnovu kog je vršena estimacija pokreta. Na formiranu razliku se primjenjuje DCT na nivou 8x8 piksela, kvantizacija i VLC (Variable-Length Coding) kodovanje. Korištenjem unapređenja u inter kodovanju MPEG-4 čuva isti

Page 14: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

2. MPEG-4 13

kvalitet slike pri manjem bitskom protoku. Ova unapređenja su opisana u slijedećim paragrafima, a to su ustvari unapređenja uzeta iz H.263 naprednog moda predikcije. MPEG-4 omogućuje prilagodljivo odabiranje 16x16 bloka ili četiri 8x8 bloka koji se poklapaju sa tekućim 16x16 blokom. Svrha ovog prilagodljivog odabira je povećavanje efikasnosti kodovanja. Odluku donosi koder na osnovu toga da li je suma apsolutne razlike među pikselima odgovarajućih MB manja za slučaj četiri 8x8 bloka ili jednog 16x16 bloka. Ukoliko je riječ o prvom slučaju, koder bira četiri 8x8 bloka. Tada koder koristi četiri MV-a po makrobloku (MPEG-2 koristi samo jedan MV po MB). Radi se o blokovima luminanse, a za dva bloka hrominansi uzima se prosjek ova četiri MV-a i dijeli se sa dva. Svaki MV za 8x8 blok luminanse ima tačnost 1/2 piksela, a svaki MV za blok hrominanse može imati tačnost do 1/16 piksela. Ova vrijednost se zaokružuje na najbližu poziciju 1/2 piksela. ASP profil (vidi poglavlje 2.11) dozvoljava tačnost MV-a za blok luminanse od 1/4 piksela. Pošto za vrijednosti pozicija od 1/2 i 1/4 (Qpel) piksela u bloku ne postoje stvarni odbirci (pikseli), vrijednosti odbiraka na tim pozicijama se dobijaju interpolacijom. Vrijednosti na položajima 1/2 piksela se dobijaju bilinearnom interpolacijom horizontalno i vertikalno po slijedećoj formuli (slika 11):

a=A b=(A+B+1)/2 c=(A+C+1)/2 d=(A+B+C+D+2)/4 Rezultat se zaokružuje na cijeli broj prema nuli.

A b B

c d

C D

apoložaj cijelobrojnog pikslela

položaj polovine piksela

Slika 11 Interpolacija odbiraka za položaj pola piksela

Vrijednosti na položajima 1/4 piksela se računaju u dva koraka. U prvom koraku se vrijednost na položaju 1/2 piksela izračunava unapređenom interpolacijom koja u proračun uzima osam okolnih odbiraka u oba pravca (horizontalno i vertikalno), kako je na slici 12 prikazano za horizontalni pravac. Isti postupak se upotrebljava i za vertikalni pravac. Za uzorke u sredini (tj. kad su obe komponente MV-a na položajima 1/2 piksela) prvo se vrši horizontalna pa vertikalna interpolacija. Interpolacija se vrši FIR filterom po formuli:

a=(-8A4+24A3-48A2+160A1+160B1-48B2+24B3-8B4)/256

A b

c d

položaj cijelobrojnog pikslela položaj polovine piksela

A1 b B1

cC1 D1

B2

D2

B3

D3

B4

D4

A2

C2

A3

C3

A4

C4

a) b)položaj četvrtine piksela

b1

c1 d1

a1

Slika 12 Interpolacija odbiraka za položaj četvrtina piksela: a) prvi korak, b) drugi korak

Page 15: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

MPEG-4, AVC/H.264 i VC-1 standardi video kodovanja 14

U drugom koraku uzorci na položaju 1/4 piksela se izračunavaju bilinearnom transformacijom na osnovu uzoraka iz prvog koraka, po formuli:

a1=A b1=(A+b+1)/2 c=(A+c+1)/2 d=(A+b+c+d+2)/4 Za slučaj velikih pokretnih objekata mnogo MB-ova će imati slične vrijednosti vektora pokreta. Zbog toga se MV koduje diferencijalno na osnovu tri susjedna MV, kako slika 13 prikazuje, korištenjem medijan filtra. U slučaja kada se vrši predikcija jednog MV-a za cijeli MB, koristi se isti metod kao i za gornji lijevi DCT blok (slika 13 b)).

2 3

1

2

1 V

3

V

DCT

MB

1 V

2 3

2 3

1 V

2 3

1 V

Gornji lijevi DCT blok ili cijeli MB

Gornji desni DCT blok

Donji lijevi DCT blok

Donji desni DCT blok

b)

Predikcija vektora

Medijan filter

123

Predikcija

Preneseni ostatak(greška predikcije)

+-

Tekući vektor

a)

Slika 13 a) Diferencijalno kodovanje vektora pokreta, b) Predikcija MV-a tekućeg DCT bloka u MB-u (označen sa V) na

osnovu susjednih vektora pokreta (označeni sa 1, 2 i 3)

U slučaju kada se vektori kandidati za predikciju nalaze na granici tekućeg VOP-a primjenjuju se slijedeća pravila:

• ako je samo jedan MV izvan VOP-a on se postavlja na nulu, • ako su samo dva MV-a izvan VOP-a, oni se postavljaju na vrijednost trećeg MV-a, • ako su sva tri MV-a izvan VOP-a, oni se postavljaju na nulu.

Da bi se smanjile vrijednosti ostataka greške predikcije piksela, u inter kodovanju se primjenjuje tehnika predikcije vrijednosti piksela poznata kao kompenzacija pokreta sa preklopljenim blokovima (Overlapped Block Motion Compensation – OBMC). Tehnika se koristi jedino u P-VOP-ima. Koristi se uvijek u slučaju četiri 8x8 bloka luminanse, a slučaj jednog MV po 16x16 bloku luminanse se može posmatrati kao četiri identična MV-a po 8x8 blokovima. Sa samo jednim vektorom po DCT bloku u mnogim slučajevima vektor ne odgovara pomjeraju svih piksela u bloku. Ukoliko MV opisuje pomjeraj centra bloka njegova tačnost opada idući ka rubovima bloka. Piksel na ivici bloka je na skoro istoj udaljenosti od vektora u centru susjednog bloka.

Page 16: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

2. MPEG-4 15

OBMC koristi vektore iz susjednih blokova, tzv. udaljene vektore, uz vektor tekućeg bloka, za predikciju. Slika 14 prikazuje preklopljene blokove na osnovu kojih se vrši kompenzacija pokreta, a po jednačini koja slijedi.

blok iznad

tekući DCT blok

blok lijevo preklopljeno područje

Slika 14 Preklapajući blokovi za kompenzaciju pokreta

Svaki piksel u tekućem 8x8 bloku luminanse sa najboljim poklapanjem je težinovana suma tri piksela sa kompenzovanim pokretom, uzetih iz prethodnih P- ili B-VOP ravni po jednačini:

𝑝𝑝,(𝑖𝑖, 𝑗𝑗) = (𝐻𝐻0(𝑖𝑖, 𝑗𝑗) ∙ 𝑞𝑞(𝑖𝑖, 𝑗𝑗) + 𝐻𝐻1(𝑖𝑖, 𝑗𝑗) ∙ 𝑟𝑟(𝑖𝑖, 𝑗𝑗) + 𝐻𝐻2(𝑖𝑖, 𝑗𝑗) ∙ 𝑠𝑠(𝑖𝑖, 𝑗𝑗))/8 gdje se suma zaokružuje. Iznos matrica sa težinskim faktorima je:

𝐻𝐻0 =

⎣⎢⎢⎢⎢⎢⎡4 5 5 5 5 5 5 45 5 5 5 5 5 5 55 5 6 6 6 6 5 55 5 6 6 6 6 5 55 5 6 6 6 6 5 55 5 6 6 6 6 5 55 5 5 5 5 5 5 54 5 5 5 5 5 5 4⎦

⎥⎥⎥⎥⎥⎤

,𝐻𝐻1 =

⎣⎢⎢⎢⎢⎢⎡2 2 2 2 2 2 2 21 1 2 2 2 2 1 11 1 1 1 1 1 1 11 1 1 1 1 1 1 11 1 1 1 1 1 1 11 1 1 1 1 1 1 11 1 2 2 2 2 1 12 2 2 2 2 2 2 2⎦

⎥⎥⎥⎥⎥⎤

,𝐻𝐻2 =

⎣⎢⎢⎢⎢⎢⎡2 1 1 1 1 1 1 22 2 1 1 1 1 2 22 2 1 1 1 1 2 22 2 1 1 1 1 2 22 2 1 1 1 1 2 22 2 1 1 1 1 2 22 2 1 1 1 1 2 22 1 1 1 1 1 1 2⎦

⎥⎥⎥⎥⎥⎤

Suma H0(i, j)+H1(i, j)+H2(i, j) uvijek iznosi 8 za sve moguće (i, j). Vrijednosti q(i, j), r(i, j) i s(i, j) su vrijednosti piksela iz prethodnog okvira na lokacijama:

𝑞𝑞(𝑖𝑖, 𝑗𝑗) = 𝑝𝑝�𝑖𝑖 + 𝑀𝑀𝑀𝑀𝑥𝑥0, 𝑗𝑗 + 𝑀𝑀𝑀𝑀𝑦𝑦0�, 𝑟𝑟(𝑖𝑖, 𝑗𝑗) = 𝑝𝑝�𝑖𝑖 + 𝑀𝑀𝑀𝑀𝑥𝑥1, 𝑗𝑗 + 𝑀𝑀𝑀𝑀𝑦𝑦1�, 𝑠𝑠(𝑖𝑖, 𝑗𝑗) = 𝑝𝑝�𝑖𝑖 + 𝑀𝑀𝑀𝑀𝑥𝑥2, 𝑗𝑗 + 𝑀𝑀𝑀𝑀𝑦𝑦2�

gdje je (𝑀𝑀𝑀𝑀𝑥𝑥0, 𝑀𝑀𝑀𝑀𝑦𝑦0) MV tekućeg 8x8 bloka luminanse p(i, j), ( 𝑀𝑀𝑀𝑀𝑥𝑥1, 𝑀𝑀𝑀𝑀𝑦𝑦1) je MV bloka koji je iznad (za j=0, 1, 2, 3) ili ispod (za j=4, 5, 6, 7) tekućeg bloka i ( 𝑀𝑀𝑀𝑀𝑥𝑥2, 𝑀𝑀𝑀𝑀𝑦𝑦2) je MV bloka koji je bilo lijevo (za i=0, 1, 2, 3) ili desno (za i=4, 5, 6, 7) od tekućeg bloka. Vidimo da je DCT blok podjeljen u kvadrante i da se za predikciju biraju udaljeni vektori iz DCT bloka najbližeg kvadrantu. OBMC smanjuje veličinu razlike piksela nakon predikcije, samim tim i veličinu ili broj DCT koeficijenata koji se trebaju kodovati. OBMC je proces bez gubitaka jer dekoder već zna sve vektore i tabele sa težinskim koeficijentima.

Page 17: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

MPEG-4, AVC/H.264 i VC-1 standardi video kodovanja 16

MPEG-4 ima sposobnost da izvrši pododabiranje, sa faktorom 2, greške predikcije za makroblokove sa malo detalja na 8x8 blok, i označi ga tako da ga dekoder može prepoznati.

2.3.4 Estimacija/kompenzacija pokreta za VOP proizvoljnog oblika U slučaju VOP ravni proizvoljnog oblika koder i dekoder znaju oblik VOP-a na osnovu podataka o kodovanju oblika. ME i MC za VOP proizvoljnog oblika zahtijevaju tri modifikacije. Prvo, pošto VOP mijenja oblik tokom vremena, usklađenost koordinatnog sistema u koderu i dekoderu mora postojati. U MPEG-4 kodovanju se koristi apsolutni pravougaoni koordinatni sistem okvira. Za svaki odmjerak vremena prenosi se informacija o pravougaoniku koji okružuje VOP i koordinata njegovog gornjeg lijevog ugla u koordinatnom sistemu okvira. Drugo, za blokove koji se nalaze na granici VOP-a kriterijum poklapanja blokova mora biti modifikovan. Treće, posebna tehnika popune pikselima je potrebna za referentni VOP. Druga i treća modifikacija su vezane jer će popuna blokova na granici VOP-a imati uticaj na poklapanje blokova pri estimaciji pokreta. U upotrebi je tehnika ponavljajućeg popunjavanja referentnog VOP-a za ME i MC. Ovaj proces se odvija po slijedećim koracima:

• svaki piksel van granica objekta se definiše kao nulti, • skenira se svaka horizontalna linija bloka (16x16 blok za luminansu i 8x8 za

hrominansu); u slučaju da se segment nultih piksela nalazi između kraja linije skeniranja i krajnje tačke nenultog segmenta sve nulte vrijednosti se zamjenjuju vrijednostima krajnje tačke nenultog segmenta , a u slučaju da se nulti segment nalazi između dva nenulta segmenta sve nulte vrijednosti se zamjenjuju srednjom vrijednošću krajnjih tački nenultih segmenata. Linija koja nema aktivnih piksela ostaje popunjena nulama,

• skenira se svaka vertikalna linija uz isti postupak, • ukoliko se nulti piksel nalazi na ukrštanju horizontalne i vertikalne linije, uzima

vrijednost koja je srednja vrijednost dvije prethodno dobijene vrijednosti, • za ostale nulte piksele pronaći najbliže nenulte piksele po istoj vertikalnoj i istoj

horizontalnoj liniji skeniranja (ako je neriješeno uzima se piksel lijevo ili iznad od tekućeg). Zamjenjuje se vrijednost nultog piksela srednjom vrijednošću ova dva nenulta piksela,

• za objekte koji se brzo kreću popuna pikselima se širi na blokove van VOP-a koji neposredno dodiruju granične blokove. Oni se popunjavaju vrijednostima na ivicama susjednih graničnih blokova. Ova popuna se vrši i u horizontalnom i u vertikalnom pravcu. Ukoliko ovaj blok dodiruje više graničnih blokova njegova popuna se vrši kopiranjem nagore, nadolje, nalijevo ili nadesno linijom piksela iz ivice graničnog makrobloka, zavisno koji prioritet ima granični MB (prioriteti idu redom: ispod, desno, iznad, lijevo).

• ostali blokovi u VOP pravougaoniku dobijaju vrijednost 128.

Popuna pikselima za MC se vrši da bi se spriječilo slijedeće: u slučaju male greške u podacima o granici objekta, pikseli pozadine mogu procuriti u objekat uzrokujući velike greške predikcije.

2.4 Kodovanje oblika MPEG-4 Part 2 je prvi sistem kodovanja koji podržava kodovanje oblika (H.263+ ima ograničene mogućnosti preko hroma ključeva). Oblik se koduje upotrebom alfa ravni – 2D

Page 18: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

2. MPEG-4 17

matricom binarnih (informacije o obliku) ili nivo sivog (informacije o obliku i providnosti) vrijednosti. Upotreba alfa ravni omogućuje jasno razgraničavanje informacija o obliku i teksturi objekta, te efikasniju kompresiju. MPEG-4 omogućuje kodovanje oblika sa gubicima i bez njih, kao i intra i inter kodovanje oblika.

2.4.1 Binarno kodovanje oblika Binarna alfa ravan se sastoji od bitova 0 ili 1. Svaki bit označava da li uzorak slike pripada ili ne pripada VO-u. Kodovanje oblika se vrši na nivou 16x16 bloka koji se u slučaju binarne alfa ravni naziva binarni alfa blok (Binary Alpha Block – BAB). Svaki BAB je vezan za MB na istoj poziciji. Postoje tri vrste BAB-a: providni blok, neprovidni blok i alfa blok (ili blok oblika) (slika 15).

providni blok

neprovidni blok

alfa blok

Slika 15 Binarna alfa ravan

Postoje tri klase tehnika za binarno kodovanje oblika. Kodovanje bazirano na blokovima i kodovanje bazirano na konturi koduju oblik nesadržano u teksturi, odnosno posebnom alfa mapom. S druge stane kodovanje ključevima boje (chroma keying) koduje oblik obuhvatanjem podataka u samoj teksturi, te ne zahtijeva posebnu mapu. MPEG-4 koristi kodovanje bazirano na blokovima i kodovanje bazirano na konturi.

2.4.1.1 Kodovanje oblika bazirano na blokovima Kodovanje oblika bazirano na blokovima koduje oblik VOP-a blok po blok. Kodovanje je neophodno samo za BAB-ove na granici objekta, tj. alfa blokove. Blokovi unutar i van VOP-a se ne koduju pošto su jednolični i ovo se signalizira BAB tipom. Dvije tehnike kodovanja baziranog na blokovima su istražene za upotrebu sa MPEG-4 kodovanjem. Aritmetičko kodovanje bazirano na sadržaju (context-based arithmetic encoding – CAE) – koder koduje bite alfa BAB-ova skeniranjem liniju po liniju sa lijeva na desno, odozgo prema dolje. U intra kodovanju se iskorištava prostorna redudansa. Uzorak od deset piksela (uzročni sadržaj) sa slike 16 a) se koristi da se predvidi vrijednost tekuće vrijednosti piksela oblika. Ako tekući piksel leži u gornja dva reda ili dvije lijeve kolone BAB-a, piksel sadržaja uzima odgovarajuće vrijednosti iz BAB-ova iznad i lijevo. Ako je tekući piksel u dva desna reda BAB-a piksel sadržaja uzima vrijednost najbližeg piksela iz tekućeg BAB-a. 10-bitni sadržaj se izračunava za svaki piksel iz uzorka:

𝐶𝐶 = �𝐶𝐶𝑘𝑘 ∙ 2𝑘𝑘9

𝑘𝑘=0

10 bita u uzročnom sadržaju može dati 1024 mogućih sadržaja. Vrijednost sadržaja se koristi da se predvidi vrijednost tekućeg piksela (0 ili 1). Analiza stvarnih oblika je pokazala da za svaku od mogućih vrijednosti sadržaja postoji određena vrijednost da je tekući bit

Page 19: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

MPEG-4, AVC/H.264 i VC-1 standardi video kodovanja 18

jednak nuli. Predikcija tekućeg bita se vrši pretragom ovih vjerovatnoća u tabeli koja postoji u koderu i dekoderu.

C9 C8 C7

C6 C5 C4

C1 C0 X

C3 C2

X - tekući pikselC0...C9 – pikseli sadržaja

a)

C1 C0 X

C3 C2C8

C7 C6 C5

C4

b)

Pikseli tekućeg BAB-a (tekući okvir)

Pikseli BAB-a sa kompenzovanim pokretom (prethodni okvir)

poravnanje

Slika 16 Pikseli sadržaja za a) intra kodovanje oblika, b) inter kodovanje oblika

U inter kodovanju uzorak piksela koji se koristi za predikciju izgleda drugačije i koristi 8 piksela. Za estimaciju pokreta oblika se koriste dvodimenzionalni vektori pokreta oblika, tačnosti jednog piksela. Mogu se koristiti i MV-i za teksturu, ali tada predikcija daje lošije rezultate. Nakon kompenzacije pokreta izračunava se uzročni sadržaj koristeći ukupno osam piksela iz tekućeg i prethodnog frejma:

𝐶𝐶 = �𝐶𝐶𝑘𝑘 ∙ 2𝑘𝑘8

𝑘𝑘=0

što daje mogućih 512 sadržaja. Zbog povećanja kodne efikasnosti može se izvršiti pododabiranje BAB-a faktorom 2 ili 4. Modifikovano modifikovano READ (Modified Modified READ – MMR) kodovanje oblika koduje BAB direktno kao bitmapu koristeći READ kodovanje razvijeno za Fax standard. Linije se skeniraju jedna po jedna i koduju se položaji piksela promjene. Položaj piksela promjene u tekućoj liniji se koduje u odnosu na položaj odgovarajućeg piksela iz linije iznad. Neprovidni i providni BAB-ovi su označeni posebnim oznakama.

piksel promjene

referentna linijatekuća linija

Slika 17 MMR kodovanje

Može se koristiti i kompenzacija pokreta, pa se greška predikcije koduje ovom tehnikom. Može se koristiti pododmjeravanje stepenom 2 ili 4. Moguće je odabrati i pravac skeniranja – sa lijeva na desno ili odozgo prema dolje.

2.4.1.2 Kodovanje oblika bazirano na konturi Kodovanje oblika bazirano na konturi koduje konturu koja opisuje oblik VOP-a. Za upotrebu u MPEG-4 su razvijene dvije tehnike za ovaj tip kodovanja. Kodovanje oblika bazirano na tjemenima (Vertex-Based Shape Coding) – u ovoj vrsti kodovanja obris objekta je opisan približnim poligonom. Ključni element je odabir tjemena koja će minimizovati grešku aproksimacije oblika.

Page 20: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

2. MPEG-4 19

Postavljanje tačaka se odvija po slijedećem. Prve dvije tačke se postave na krajeve glavne ose objekta (u ovom slučaju poligon je linija). Za svaku stranu poligona se provjeri da li greška leži u okviru definisanom pragom. Ako je greška veća od praga dodaje se novo tjeme na mjesto najveće greške. Proces se ponavlja za svaku novu stranu poligona (slika 18).

tjeme 1

tjeme 2 tjeme 3aproksimacija

poligona korak n

tjeme 1

tjeme 2 tjeme 3

tjeme 4

tjeme 1

tjeme 2 tjeme 3

tjeme 4tjeme 5

aproksimacija poligona korak n+1

aproksimacija poligona korak n+2

Slika 18 Proces približnog izračunavanja oblika upotrebom poligona

Potrebno je kodovati samo pozicije tjemena. Ukoliko se radi o kodovanju bez gubitaka najbolje je koristiti lančano kodovanje. Svako tjeme se u odnosu na prethodno može opisati upotrebom 4 ili 8 pravaca (slika 19). Tjemena se koduju u pravcu kazaljke na satu. Efikasnost se može povećati diferencijalnim kodovanjem, tj. rotiranjem pravca tako da 0 odgovara prethodnom lokalnom pravcu.

četiri susjedne tačke osam susjednih tačaka

0

123

4

-3 -2 -1

Direktni lanac:-3,-3,4,4,-1,-2,-2,0,2,1, -1,-2,-2,2,1,1,2,2,4,3Diferencijalni kod:-3,0,-1,0,3,-1,0,2,2,-1, -2,-1,0,4,-1,0,1,0,2,-1

Slika 19 Lančano kodovanje

Kodovanje oblika bazirano na osnovi (Baseline-Based Shape Coding) također koduje konturu kojom je opisan oblik. Oblik je smješten u 2D koordinatnom sistemu sa X osom kao osnovom. Tjemena se koduju u pravcu kazaljke na satu tako što se položaj na Y osi koduje diferencijalno a promjene po X osi se koduju ubacivanjem u tok bita indikacije o tački preokreta po X osi. Tačka preokreta može značiti da X koordinata stalno opada, ostaje ista ili raste (slika 20).

Page 21: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

MPEG-4, AVC/H.264 i VC-1 standardi video kodovanja 20

X osa

Y osa

0

3

-4

tačka preokreta

Y koordinate:-2,-1,-1,0,1,2,2,1,1,0,-1,-1

Diferencijalne vrijednosti:-2,1,0,1,1,1,0,-1,0,-1,-1,0

Slika 20 Kodovanje oblika zasnovano na osnovi

2.4.2 Kodovanje oblika tonovima sive Kodovanje oblika upotrebom alfa mape sivih tonova se koristi da bi se pored oblika objekta kodovala i njegova providnost. Postoje dva slučaja kodovanja objekta alfa mapom sivih tonova. Kodovanje VOP-a sa konstantnom providnošću svodi kodovanje alfa mape na kodovanje binarne mape uz dodatni 8-bitni podatak koji saopštava nivo providnosti. Kodovanje VOP-a sa promjenljivom providnošću se izvodi u dva koraka. Prvo se obrisi objekta koduju tehnikama binarnog kodovanja oblika. U drugom koraku se alfa mapa posmatra kao mapa luminanse i koduje se popunom pikselima, kompenzacijom pokreta i DCT transformacijom. U nekim slučajevima je potrebno alfa mapu na ivici objekta isfiltrirati radi finijeg utapanja u pozadinu. Ovaj proces se naziva zarubljivanje (feathering). Filtriranje se obavlja na traci debljine do 3 piksela sa unutrašnje strane granice objekta. Moguće je izabrati jedan od šest modova zarubljivanja: 1) bez efekta, 2) linearno zarubljivanje, 3) konstantna alfa vrijednost, 4) linearno zarubljivanje i konstantna alfa vrijednost, 5) filter zarubljivanja i 6) filter zarubljivanja i konstantna alfa vrijednost.

2.5 Kodovanje sprajtova Sprajt (engleski: duh, viljenjak) predstavlja nepokretnu sliku ili dijelove slike koji se ne mijenjaju kroz video scenu. Primjer sprajta je pozadina video sekvence generisane pokretnom kamerom. Sprajt generisan pokretnom kamerom može biti kodiran kao velika nepokretna slika nezavisno od objekata ispred (slika 21). Ustvari, najčešća upotreba sprajtova i jeste kodovanje nepromjenljive pozadine iza video objekata u sceni. Na ovaj način se drastično smanjuje bitski protok pošto se pozadina šalje samo jedanput u prvom okviru video sekvence. Dekoder rekonstruiše pozadinu na osnovu parametara gobalnog pokreta koji opisuju kretanje kamere tokom sekvence. Postoje dva tipa sprajtova: statički i dinamički. Statički sprajtovi se generišu prije kodovanja ostatka scene (off-line), što podrazumjeva da je dostupan cijeli video objekat od kog se generiše sprajt. Sprajt sadrži sve piksele pozadine vidljive u svim okvirima scene, odnosno sprajt je dimenzijama veći od okvira. Odgovarajući dio pozadine će biti prikazan u odgovarajućem okviru tako što se dekoderu prenose parametri kamere, odnosno globalnog pokreta koji pokazuju koja transformacija će biti primjenjena na sprajt. Ove transformacije podrazumjevaju: stacionarnu transformaciju, translaciju, izotropnu transformaciju, afinu transformaciju i transformaciju perspektive. Svaka transformacija je opisana odgovarajućim koeficijentima tj. trajektorijama kretanja referentnih tačaka u sprajtu.

Page 22: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

2. MPEG-4 21

Slika 21 Sprajt kodovanje video sekvence (sekvenca "Stefan")

Pošto statički sprajt predstavlja nepromjenljivu sliku, njegovi oblik i tekstura se tretiraju kao I-VOP i koduju se kao on. Pošto sprajt može biti velik, primjenjuju se dva pristupa da bi se izbjeglo kašnjenje pri njegovom prenosu – prvo se prenese dio sprajta dovoljan za rekonstruisanje nekoliko okvira a ostatak se prenosi kad to zatraži dekoder; ili, prvo se prenese sprajt lošije rezolucije, a ostatak informacija se prenosi kad je dostupan propusni opseg. Ove dvije metode se mogu koristiti nezavisno ili kombinovano. Dinamički sprajtovi se generišu tokom prediktivnog kodovanja (on-line) u koderu i dekoderu. Parametri globalne kompenzacije pokreta se proračunavaju iz uzastopnih okvira i ovako kompenzovani sprajt služi kao osnova za prediktivno kodovanje tekućeg okvira. Greška predikcije se koduje i šalje dekoderu.

2.6 Kodovanje tekstura talasićima MPEG-4 ima mod za kodovanje tekstura koji koristi transformaciju talasićima (Wavelet-Based Texture Coding). Ova vrsta kodovanja se koristi za teksture objekata ili statične slike. Razlog upotrebe talasića nije samo efikasnije kodovanje, već i to što oni omogućuju skalabilnost, odnosno promjenljivu prostornu rezoluciju i promjenljiv SNR odnos.

4

65

0

32

1

0 1 2 3

4 5 6

Slika 22 Primjer razlaganja talasićima sa dubinom 2

Transformacija talasićima razlaže teksturu u podopsege. Svaki podopseg predstavlja određeni opseg prostornih frekvencija. Kod stvarnih slika ivice objekata sadrže širok obuhvat frekvencija. U slučaju oštrih ivica postojaće energija u svim podopsezima. Informacija o ivici će se u svakom podopsegu nalaziti na istom mjestu. Primjer razlaganja teksture je prikazan na slici 22. Ovaj proces se može ponavljati na svakom dobijenom podopsegu. Za svaki koeficijent na određenoj rezoluciji, postojaće u stablu četiri odgovarajuća koeficijenta

Page 23: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

MPEG-4, AVC/H.264 i VC-1 standardi video kodovanja 22

na slijedećem nivou. U slučaju oštre ivice svi bitni koeficijenti će se uglavnom nalaziti na jednoj putanji u stablu. Za područje koje sadrži samo niske frekvencije obično važi da ako je koeficijent u određenom nivou stabla nula, njegovo podstablo će se sastojati također od nula. Slika 21 pokazuje strukturu kodera za kodovanje teksture upotrebom talasića. Dekompozicija teksture se vrši 2D separabilnom diskretnom transformacijom talasićima (Discrete Wavelet Transform – DWT). Dekompozicija se vrši korištenjem Dobeuši (9, 3) biortogonalnog filtera čiji su koeficijenti dati na slici 24.

DWT

kvantizacija predikcija aritmetičko kodovanje

kvantizacija skeniranje stabla nula

aritmetičko kodovanje

podaci teksture

tok bita

najniži opseg

ostali opsezi

Slika 23 Blok šema kodera teksture

Nikopropusni filter0.03314563036812-0.06629126073624-0.176776695296650.419844651329520.994368911043600.41984465132952-0.17677669529665-0.066291260736240.03314563036812

Visokopropusni filter-0.353553390593270.70710678118655-0.35355339059327

Slika 24 Koeficijenti Dobeuši (9, 3) filtera

Poslije razlaganja koeficijenti najnižeg opsega se kvantuju drugačije nego za druge opsege. Ovi koeficijenti se kvantuju uniformnim kvantizerom sa neparnim brojem kvanata (jedan nivo je jednak nuli, u anglosaksonskoj literaturi se naziva midriser quantizer). Koeficijenti viših opsega se kvantuju višenivojskom ili dvonivojskom kvantizacijom. Višenivojska kvantizacija omogućuje prostornu i SNR skalabilnost. U dvonivojskom modu kvantovanja koeficijenti se ne šalju kao binarni brojevi već kao ravni bita. Prvo se šalju najznačajniji biti, pa biti sa rednim brojem dva i tako dalje. I višenivojski i dvonivojski kvantizeri su uniformni midriser sa mrtvom zonom dvostruko većom od koraka kvantovanja.

wa

wb wc

wx

ako je |wa-wb|<|wb-wc|, wx=wcinače wx=wa

Slika 25 DPCM kodovanje za koeficijente u najnižem opsegu

Najniži koeficijenti se kvantuju diferencijalnom impulsnom kodnom modulacijom (Differential Pulse Code Modulation – DPCM). Tekući koeficijent se predviđa na osnovu tri

Page 24: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

2. MPEG-4 23

susjedna kvantovana koeficijenta (slika 25). Koficijenti u višim opsezima se koduju algoritmom stabla nula (zero-tree). Stablo koeficijenata se skenira od korjena prema čvorovima i svakom čvoru se dodjeljuje jedan od simbola – od vrijednosti simbola zavisiće i tok algoritma. Vrijednosti simbola su: korijen stabla nula (svi koeficijenti niz stablo su nula), valjan korijen stabla nula (čvor nije nula ali svi naredni jesu, skeniranje prestaje ovdje), nula (koeficijent je nula, ali potomci nisu – skeniranje se nastavlja) i vrijednost (koeficijent nije nula kao ni potonji niz stablo). Kvantovani koeficijenti i simboli generisani algoritmom stabla nula se entropijski koduju adaptivnim aritmetičkim koderom koji koristi tri tabele koeficijenata koje odgovaraju trima statističkim modelima.

2.7 Kodovanje mreža (ili kodovanje mrežnih objekata, ili kodovanje bazirano na mrežama) Mreža je podjela slike (2D) ili geometrijskog tijela (3D) na komade poligonalnog oblika. Ovi komadi (patch) zajednički predstavljaju, sa većom ili manjom tačnošću, originalne objekte i najčeće su u obliku trougla. Koncept mreže je razvijen za kompjutersku grafiku i omogućuje efikasno modelovanje i predstavljanje objekata. MPEG-4 podržava predstavljanje 2D i 3D prirodnih i vještačkih objekata, kao i mirnih tekstura, mrežama, korištenjem trouglastih komada. U nekim klasifikacijama se kodovanje 2D mreža naziva kodovanjem 2D modela, a kodovanje 3D mreža se naziva kodovanjem baziranim na 3D odlikama. Mreža se može posmatrati kao uzorkovana površina, a pošto je predstavljena određenim brojem poligona može se efikasnijim kodovanjem ostvariti i dobitak u bitskom protoku. Što je površina ravnija zahtjevaće manje uzoraka jer se ostatak uzoraka može dobiti interpolacijom.

2.7.1 Kodovanje 2D mreža 2D mreža se sastoji od tačaka zvanih čvorovi koje moraju ostati u ravni video objekta (tjemena 3D mreža ne leže u istoj ravni), kao što slika 26 pokazuje. Slika prikazuje pravilnu mrežu, ali mreža može biti i nepravilna, tzv. Delounijeva (Delaunay), gdje se naznači položaj svakog tjemena. Nepravilne mreže mogu biti efikasnije pri kodovanju objekata nepravilnog oblika.

svi čvorovi u istoj ravni

Slika 26 Svi čvorovi 2D mreže leže u istoj ravni

Mreže također obezbjeđuju skalabilnost – zavisno od broja čvorova objekat će biti opisan bolje ili lošije. Oblik mreže se može interkodovati. U I-VOP-u se šalje objekat sa intrakodovanim oblikom i teksturom. Ovdje je objekat predstavljen sa pravilnom mrežom sa jednoliko raspoređenim pikselima teksture. Pravilna mreža zahtijeva malo podataka za opis (slika 27 a)). Oblik mreže se može mijenjati prenosom vektora mreže u P-VOP-u (slika 27 b)). Pošto dva susjedna trougla dijele dva zajednička čvora, znači da je na osnovu prethodno kodovanog trougla dovoljno kodovati samo jedan čvor tekućeg trougla. Vektor trećeg čvora se predviđa na osnovu prosjeka prethodna dva vektora zaokruženog na najbližu vrijednost

Page 25: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

MPEG-4, AVC/H.264 i VC-1 standardi video kodovanja 24

1/2 piksela. Ovaj predikovani vektor se oduzima od stvarnog, a razlika se koduje i prenosi dekoderu. U koderu se također vrši predikcija vrijednosti piksela teksture koji su se transformisali na osnovu pomjeraja čvorova (promjena perspektive). Diferencijalni kod oblika se koristi da se predvidi novi oblik (diferencijalna alfa ravan). Novodobijeni objekat sa promjenjenom perspektivom i oblikom se poredi sa stvarnim, a rezultat je razlika u vrijednostima piksela teksture koja se DCT koduje.

čvor 0x

čvor 0y

horizontalni razmak

vertikalni razmak

br. čvorova vertikalno

br. čvorova horizontalno

I-VOP P-VOP

a) b)

čvor vektor pokretapredikovani čvor

Slika 27 U kodovanju mreže objekat se koduje teksturom, oblikom i podacima o mreži a) I-VOP mreža je pravilna i zahtijeva malo podataka, b) oblik mreže se može mijenjati vektorima koji izmještaju čvorove

Pomenuti proces predikcije je vrlo tačan tako da je izračunata vrijednost razlike piksela mala, te može biti kodovana malim brojem bita.

2.7.2 Kodovanje 3D mreža Kodovanje 3D mreža predstalja efikasan način predstavljanja geometrijskih tijela i njhovih osobina. 3D prostor je uzorkovan po sve tri ose tako da je geometrijsko tijelo predstavljeno konačnim brojem tačaka, odnosno mrežom koju one formiraju. Odabiranje u 3D prostoru nije uniformno, tjemena se odabiraju tako da mogu opisati sva zakrivljenja na objektu. Mreža je formirana od trouglova. Tjemena (vertex) trouglova su povezana pravim linijama zvanim ivice (edge). Rekonstrukcija oblika se vrši upotrebom algoritma krive (spline) tako da tjemena neće biti prosto spojena pravim linijama (mada su ivice predstavljene takvim linijama), već će površina posjedovati fina zakrivljenja. Predstavljanje uz pomoć trouglova je efikasno jer su oni ravne površine i njihov dalji opis nije potreban s obzirom da će stvarni oblik površine biti dobijen interpolacijom između tjemena. Slika 29 prikazuje da se tijelo predstavljeno trouglovima, sječenjem po određenim ivicama a zakretanjem oko drugih, može razmotati u ravan. Kada se trougao prenese dekoderu on kasnije može poslužiti kao baza za formiranje dodatnih tjemena, tj. dodatnih trouglova mreže. Ovo omogućuje skalabilnost prostorne rezolucije objekta. Geometrija tijela je kodovana pomoću tjemena, dok se osobine tijela koduju u odnosu na trouglove između tjemena. Međusobni odnos tjemena i trouglova koje tjemena formiraju se naziva vezanost (connectivity). Pozicije tjemena i osobine trouglova se mogu kodovati sa gubicima dok se vezanost mora kodovati bez gubitaka. Trouglovi imaju osobine pogodne za kodovanje. Slika 28 pokazuje da su trouglovi u osnovi binaran podatak. Pri skeniranju trougla, kad uđemo preko jedne ivice postoje samo dvije ivice preko kojih možemo napustiti trougao. Odluka može biti predstavljena pomoću jednog bita za svaki trougao. Ovaj bit se zove maršujući (marching) bit.

Page 26: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

2. MPEG-4 25

ulaz

izlaz desno

‘1’

izlaz lijevo

‘0’

Slika 28 Binarna priroda trougla

Slika 29 prikazuje proizvoljni sferoid čija je površina uzorkovana tako da se sastoji od 12 tjemena. Između tjemena su povučene ivice tako da formiraju ravne trouglove. Kako trouglovi dijele ista tjemena, trouglova je više nego tjemena, u ovom slučaju njih 20.

Slika 29 a) sferoid uzorkovan na tjemena i sa formiranom mrežom trouglova, b) djelimično razvijeni trouglovi, c)

potpuno razvijeni trouglovi, d) petlja tjemena

Page 27: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

MPEG-4, AVC/H.264 i VC-1 standardi video kodovanja 26

Kada se prenose podaci o tjemenima dovoljno je prenijeti samo apsolutnu koordinatu jednog tjemena, dok se položaj slijedećeg tjemena određuje u relativnom odnosu na prethodno tjeme. Slika 29 c) pokazuje da su neka tjemena suvišna jer ona predstavljaju istu stvarnu lokaciju jednog tjemena. Ovo je proizvod razvijanja tijela u jednu ravan. Tjemena se očitavaju u petlji kako slika 29 d) pokazuje. U grafičkoj terminologiji ivice duž kojih je polihedron (gemetrijsko tijelo sa ravnim elementarnim površinama i pravim ivicama) isječen tokom razvijanja čine ukorjenjeno drvo tjemena (rooted vertex tree). Prilikom skeniranja trouglova moguće je naići na četiri različita tipa pomenutih. Kada uđemo preko jedne ivice druge dvije mogu biti bilo unutrašnje (vode do drugog trougla) ili granične. Ovo može biti opisano dvobitnim kodom – jednim bitom za desnu ivicu i jednim bitom za lijevu.

10

11

00

01

01

10

00

dalje

1 - unutrašnja ivica0 - granična ivica

0 0 – kraj niza0 1 – niz se nastavlja na lijevo1 0 – niz se nastavlja na desno1 1 – trougao račvanja

desno lijevo

Slika 30 Četiri tipa trougla na koje se može naići tokom skeniranja

Slika 31 Primjer kodovanja trouglova

Page 28: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

2. MPEG-4 27

Trouglovi se skeniraju u nizovima, a kodovanje je efikasnije što je niz duži. Skeniranje u istom nizu se nastavlja sve dok se nailazi na trouglove tipa 01 ili 10. Trougao tipa 11 izaziva račvanje. Koder mora zapamtiti lokaciju račvanja i vratiti se na nju kad iskenira jednu od račvi. Kad se naiđe na trougao tipa 00 skeniranje se završava. Niz 01 se koduje kao 0 a niz 10 kao 1. Prenošenjem dužine niza dekoder zna gdje se niz završava. Primjer kodovanja trougla je dat na slici 31. Dužine nizova su prikazane iznad pozicija u kodnoj sekvenci.

2.8 Kodovanje modela Korištenje unaprijed standardizovanih modela opisanih grupom parametara za kodovanje određene klase objekata predstavlja efikasan način video kodovanja uz nizak bitski protok. Umjesto pojedinačnih video okvira moguće je prenijeti niz parametara koji opisuju ponašanje objekta. MPEG-4 Part 2 podržava kodovanje dva tipa modela koji opisuju ponašanje ljudi – model objekta lica i model objekta tijela. Kreiranje ovih modela je nastalo iz potrebe za efikasnijim kodovanjem jedne od najčešćih upotreba video komunikacije – personalna videokomunikacija. Da bi zahtjevi za personalnom komunikacijom bili efikasno ispunjeni, kreiran je poseban video objekat koji opisuje ponašanje stvarnih ili vještačkih osoba – FBA (Face and Body Animation) objekat. FBA objekat obuhvata 2D i 3D mreže koje predstavljaju ljudsko lice i tijelo. FBA definiše dva skupa parametara:

• parametri određenja (definition parameters) – ovi parametri opisuju određenje geometrijskog oblika koristeći elemente FDP (Face Definition Parameters) i BDP (Body Definition Parameters). Omogućuju dekoderu da formiraju FBA model naznačenog oblika i teksture,

• parametri animacije (animation parameters) – opisuju animaciju lica i tijela koristeći elemente FAP (Face Animation Parameters) i BAP (Body Animation Parameters).

FDP i BDP elementi se tipično prenose jedanput za scenu, a FAP i BAP za svaki video okvir.

2.8.1 Animacija lica MPEG-4 propisuje model lica u neutralnom stanju, određeni broj tačaka koje opisuju odlike lica i služe kao referentne tačke, i skup FAP parametara, gdje svaki odgovara određenoj akciji deformisanja lica u neutralnom stanju. Niz ovih deformacija u pojedinim trenucima vremena čine animaciju. Dekoder za animaciju može koristiti i podatke sadržane u FAT (Face Animation Table) tabelama. Ove tabele sadrže podatke o amplitudama pojedinačnih deformacija i pomoću njih se može dobiti željeni način animacije. Neutralno lice predstavlja početak svake animacije (deformacije). Neutralno lice ima slijedeće osobine (slika 32): pogled je u pravcu Z ose, svi mišići lica su opušteni, kapci su tangencijalni na šarenicu, zenica je jedna trećina širine šarenice, usne su spojene horizontalnom linijom sa oba kraja u istoj visini, usta su zatvorena i gornji zubi dodiruju donje, jezik je ravan a vrh mu dotiče mjesto gdje se spajaju zubi. Da bi se definisali FAP parametri za lice proizvoljnog oblika, MPEG-4 definiše FAP jedinice (FAPU – Face Animation Parameter Units) koje omogućuju da animacija bude primjenjena na bilo koji model lica. FAPU-i se definišu kao razlomci razdaljina među ključnim odlikama lica (slika 32). Definicija FAPU-a je data u tabeli 1. Oznake u posljednjoj koloni označavaju x ili y koordinate odlika lica prikazanih na slici 33.

Page 29: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

MPEG-4, AVC/H.264 i VC-1 standardi video kodovanja 28

Slika 32 Model lica u neutralnom stanju i definicija FAPU-a

Skup odlika lica (FDP – Face Definition Parameter) obuhvata 84 ključne tačke na neutralnom licu. Ove tačke obezbjeđuju reference FAP parametrima za animaciju, mada nisu sve tačke podložne FAP parametrima. Ove tačke su grupisane u logičke grupe i prikazane su na slici 33. FDP je specifikovan u BIFS (Binary Format for Scenes) sintaksi. FDP može, a i ne mora, da sadrži podatke o teksturi.

Slika 33 Tačke odlika lica

Page 30: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

2. MPEG-4 29

Tabela 1 FAP jedinice i njihove definicije IRISD0 Prečnik šarenice (jednak

razmaku gornjeg i donjeg kapka u neutralnom stanju)

IRISD=IRISD0/1024 3.1.y–3.3.y= 3.2.y–3.4.y

ES0 Razmak očiju ES=ES0/1024 3.5.x–3.6.x ENS0 Udaljenost oči–nos ENS=ENS0/1024 3.5.y–9.15.y MNS0 Udaljenost usta–nos MNS=MNS0/1024 9.15.y–2.2.y MW0 Širina usta MW=MW0/1024 8.3.x–8.4.x AU Jedinica ugla 10-5 rad

FAP (Face Animation Parameters) parametri su zasnovani na minimalnim pokretima lica i vezani su za pokrete mišića. Predstavljaju potpun skup svih osnovnih izraza lica, te dozvoljavaju rekonstrukciju prirodnog izraza. Mogući su i pretjerani izrazi lica, neostvarivi u prirodi, ali pogodni za prikazivanje animiranih likova. Postoji 68 FAP-ova grupisanih u 10 skupova (tabela 2).

Tabela 2 FAP grupe

Grupa Broj FAP parametara

Vizemi* i izrazi 2 Vilica, brada, unutrašnjost donje usne, uglovi usana, sredina usana 16 Očne jabučice, zjenice, kapci 12 Obrve 8 Obrazi 4 Jezik 5 Obrtanje glave 3 Položaj obima usana 10 Nos 4 Uši 4 * vizem je izraz lica koji opisuje određeni zvuk

Postoje dva FAP parametra višeg reda. Prvi je vizem, vizuelna ekspresija fonema. U MPEG-4 standardu je definisano 14 vizema. Pri animaciji izgovora oblik usta je vezan ne samo za tekući vizem, već i za prethodni i slijedeći. Drugi parametar višeg reda je izraz lica. Definisano je šest primarnih izraza lica (slika 34).

Slika 34 Izrazi lica

Page 31: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

MPEG-4, AVC/H.264 i VC-1 standardi video kodovanja 30

MPEG-4 standard definiše i upotrebu FAP tabela za interpolaciju (FIT – FAP Interpolation Table). Dekoderu se može prenijeti manji broj FAP parametara, a ostale dekoder određuje sam na osnovu FIT tabele. FDP-ovi se prenosi jedanput po sesiji, praćeni tokom kompresovanih FAP-ova. Ako dekoder ne primi FDP on još uvijek može intepretirati FAP-ove na osnovu FAPU elemenata.

2.8.2 Animacija tijela Animacija tijela je standardizovana kroz skup parametara sličan onom za animaciju lica. Reprezentacija skeleta u MPEG-4 standardu se bazira na Web3-D Humanoid Animation 1.0 (H-Anim) specifikaciji, jer je razvijana u isto vrijeme kad i potonja. H-Anim standard definiše ljudski skelet kao hijerarhiju spojnih čvorova (JOINT) koji definišu unutrašnji skelet. Čvor segment (SEGMENT) definiše geometriju i može biti samo podčvor JOINT čvora. Čvor područje (SITE) definiše područja od interesa i može biti samo podčvor SEGMENT čvora. JOINT ima ime, vlastitu rotaciju i rotaciju relativnu prema nadčvoru. Također definiše i okvir u kojem granice rotacije mogu biti primjenjene. SEGMENT definiše spoljni oblik humanoida. Oblik segmenta je definisan mrežom. Segment ima masu, centar mase, moment inercije i ako treba polje vektora koji opisuju pomjeraj (displacers); oni su korisni za promjenu oblika tijela i simulaciju pokreta mišića. SITE određuje lokaciju i orijentaciju tačke u odnosu na segment. Pogodni su za postavljanje dodataka (npr. naočale) kao i za objekte koji učestvuju u proračunu inverzne kinematike. HUMANOID povezuje sve navedene elemente u niz brojeva. Definiše i ime, broj verzije, kutiju koja okuržuje oblik u stanju mirovanja i informacije za korisnika.

Slika 35 Primjer H-Anim modela

Razlika između H-Anim standarda i MPEG-4 specifikacije je ta što su u posljednjoj dozvoljene samo rotacije spojeva koje su anatomski moguće. Oblik tijela se određuje uz pomoć BDP (Body Definition Parameters) parametara. Oni se obično šalju jedanput na početku sesije. Koduju se upotrebom BIFS sintakse. Deformacija kože humanoida se može opisati na dva načina – upotrebom H-Anim Displacer čvorova i tabelom deformacije tijela (BodyDefTables). Svaki unos u ovu tabelu je kombinacija BAP parametara. BAP (Body Animation Parameters) parametri manipulišu stepenima slobode u skeletu da bi proizveli animaciju dijelova tijela. Ako su BAP-ovi pravilno dekodovani proizvesće slične rezultate u položaju i pokretu na različitim modelima tijela. BAP elementi su razvrstani u grupe s obzirom na njihov efekat na položaj tijela i ima ih 186 unaprijed definisanih sa dodatnih 110 koje definiše korisnik (tabela 3).

Page 32: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

2. MPEG-4 31

Tabela 3 BAP grupe

Grupa Broj BAP parametara

Karlica 3 Lijeva noga 1 4 Desna noga 1 4 Lijeva noga 2 6 Desna noga 2 6 Lijeva ruka 1 5 Desna ruka 1 5 Lijeva ruka 2 7 Desna ruka 2 7 Kičma 1 12 Kičma 2 15 Kičma 3 18 Kičma 4 18 Kičma 5 12 Lijeva ruka 1 16 Desna ruka 1 16 Lijeva ruka 2 13 Desna ruka 2 13 Globalno postavljanje 6 Dodatni BAP-ovi 1 22 Dodatni BAP-ovi 2 22 Dodatni BAP-ovi 3 22 Dodatni BAP-ovi 4 22 Dodatni BAP-ovi 5 22

2.9 Skalabilnost MPEG-4 podržava prostornu i vremensku skalabilnost, baš kao i MPEG-2. Međutim, novi koncept koji se uvodi je skalabilnost bazirana na sadržaju. Ovo znači da se sistemski može pristupati svakom pojedinačnom VOP-u i različiti nivoi skalabilnosti mogu biti primjenjeni na različite VOP-ove. Skalabilnost bazirana na sadržaju omogućuje i uklanjanje ili dodavanje VO-a, kao i postavljanje njihovih prioriteta u sceni. U osnovi, skalabilnost bazirana na sadržaju omogućuje primjenu prostorne i vremenske skalabilnosti na pojedinačne objekte, te neće biti obrađena kroz posebno poglavlje. MPEG-4 podržava i poseban tip skalabilnosti, tzv. skalabilnost finih detalja. Također je i omogućena kombinacija svih tipova skalabilnosti. Novi tip skalabilnosti je i skalabilnost složenosti. Ona omogućava da kvalitet rekonstrusanog toka bita bude odgovarajući procesnoj moći dekodera.

2.9.1 Prostorna skalabilnost Prostorna skalabilnost omogućuje promjenljivost prostorne rezolucije. Skalabilnost se sastoji od dva sloja – osnovni sloj pruža osnovnu rezoluciju, a sloj poboljšanja povećava rezoluciju osnovnog sloja. Primjer kodera sa prostornom skalbilnošću je dat na slici 36. Prikazan je jedan sloj za unapređenje prostorne rezolucije. Osnovni sloj se koduje u manjoj prostornoj rezoluciji nego sloj poboljšanja (npr. osnovni sloj u QCIF rezoluciji a poboljšanje u CIF rezoluciji). Ukoliko je na prijemu potrebna niža rezolucija dekoduje se samo osnovni sloj, a koliko je potrebna bolja rezolucija dekoduje se sloj poboljšanja. VOP se u sloju poboljšanja koduje kao P-VOP ili B-VOP. Odnos VOP-ova u osnovnom sloju i sloju poboljšanja je prikazan na slici 37. VOP koji je na istoj vremenskoj

Page 33: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

MPEG-4, AVC/H.264 i VC-1 standardi video kodovanja 32

koordinati kao i I-VOP osnovnog sloja se koduje kao P-VOP. VOP koji je na istoj vremenskoj koordinati kao i P-VOP osnovnog sloja se koduje kao B-VOP.

Pododabiranje

Koder Osnovnog

sloja

Podizanje rezolucije

Dekoder osnovnog

sloja

Oduzimanje

Multiplekser

Koder Sloja poboljšanja

1

VOP ulaz

Multipleksirani izlaz

VOL Osnovnog sloja

VOL Poboljšanja

VOL – Video Object Layer

Slika 36 Koder sa prostornom skalabilnošću

Dekodirani neuzorkovani VOP osovnog sloja se koristi kao osnova za predikciju sloja poboljšanja. VOP iz osnovnog sloja se mora kodovati prije odgovarajućeg VOP-a (na istoj vremenskoj koordinati) u sloju poboljšanja. U slučaju P-VOP-a odluka o INTER/INTRA modu je ista kao i za osnovni sloj. U slučaju B-VOP-a, VOP koji se koristi za predikciju unazad je P-VOP koji se nalazi u istom vremenskom trenutku u osnovnom sloju. Za predikciju unaprijed se koristi P-VOP ili B-VOP iz sloja poboljšanja, koji se posljednji dekodovao.

I P P

P B BSloj poboljšanja

Osnovni sloj

Slika 37 Predikcija prostorne rezolucije u sloju poboljšanja

Podržano je maksimalno tri nivoa prostorne skalabilnosti za video objekte i jedanaest nivoa za nepomične teksture i tekst.

Page 34: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

2. MPEG-4 33

2.9.2 Vremenska skalabilnost Vremenska skalabilnost je također omogućena primjenom slojeva. Osnovni sloj nosi nižu vremensku rezoluciju (manji broj okvira u sekundi) od slojeva poboljšanja. Postoje dva tipa vremenske skalabilnosti. Prvi tip (slika 38) podrazumjeva da je VOL0 (Video Object Layer 0) u osnovnom sloju, a koji predstavlja ukupan okvir (objekat pozadine i ostali VO-i), kodovan sa manjom vremenskom rezolucijom nego sloj unapređenja koji se sastoji samo od objekata ispred pozadine. Ovaj sloj video objekta je označen kao VOL1. Predikcija VOL1 sloja može biti predikcija unaprijed sa VOL0 kao referencom za formiranje P-VOP-a u sloju unapređenja (slika 38 a)), ili bidirekciona predikcija sa VOL0 kao referencom za formiranje B-VOP-a u sloju unapređenja (slika 38 b)). U oba slučaja se koduje i oblik objekta, zbog uklapanja u pozadinu.

0 2 4 6 8 10 12

0 6 12

VOL1

VOL0

broj okvira

broj okvira

OSNOVNI SLOJ

SLOJ POBOLJŠANJA

a)

0 2 4 6 8 10 12

0 6 12

VOL1

VOL0

broj okvira

broj okvira

OSNOVNI SLOJ

SLOJ POBOLJŠANJA

b) Slika 38 Tip 1 vremenske skalabilnosti –

a) predikcija sloja poboljšanja za formiranje P-VOP ravni, i b) za formiranje B-VOP ravni

Page 35: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

MPEG-4, AVC/H.264 i VC-1 standardi video kodovanja 34

Drugi tip vremenske skalabilnosti je onaj gdje objekat pozadine VO0 nema slojeve skalabilnosti, a VO1, neki poseban objekat, ima dva sloja skalabilnosti (slika 39).

0 2 4 6 8 10 12

0 6 12

VOL1 od VO1

VOL0 od VO1

broj okvira

broj okvira

OSNOVNI SLOJ

SLOJ POBOLJŠANJA

0 2 4 6 8 10 12 broj okvira

VO0

Slika 39 Tip 2 vremenske skalabilnosti

2.9.3 Skalabilnost finih detalja Skalabilnost finih detalja (Fine Granular Scalability – FGS) obuhvata niz alata koji omogućuju kvalitetsku (tj. SNR), vremensku i hibridnu SNR/vrijeme skalabilnost. FGS zahtijeva dva kodera – jedan za osnovni sloj i jedan za sloj poboljšanja . Za razliku od ostalih vrsta skalabilnosti, koje za kodovanje slojeva poboljšanja koriste RLC kodovanje, FGS koristi kodovanje bitskih ravni (bit-plane coding) što omogućuje blaže prelaze između različitih nivoa kvaliteta. Ovo FGS čini pogodnim za video prenos u mrežama sa promjenljivim uslovima prenosa. Pri kodovanju bitskih ravni sa greškama predikcije (ravni su u sloju poboljšanja), koriste se adaptivna kvantizacija, selektivno poboljšanje koeficijenata u makroblokovima i težinovanje frekvencijskih koeficijenata. FGS omogućuje do 11 slojeva poboljšanja, ali zbog određenih problema koje je sistem imao pri kodovanju, ovaj tip skalabilnosti je napušten od strane MPEG komiteta za standardizaciju te danas služi čisto u akademske svrhe.

2.10 Otpornost na greške MPEG-4 Visual standard obezbjeđuje otpornost na greške kroz niz razvijenih alata, sa ciljem povećanja robustnosti pri upotrebi u svim vrstama prenosnih i skladišnih sredina. Ovi alati se mogu svrstati u tri grupe: ponovna sinhronizacija (resinhronizacija), oporavak podataka i skrivanje grešaka.

2.10.1 Resinhronizacija Upoteba VLC koda u MPEG-4 toku podataka kao poslijedicu ima gubitak sinhronizacije u slučaju pojave greške u toku podataka. Proces resinhronizacije ima za cilj

Page 36: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

2. MPEG-4 35

ponovno uspostavljnje sinhronizacije u dekoderu u odnosu na primljeni tok bita. U principu, podaci između posljednje sinhronizacione tačke u toku bita i tačke gdje je sinhronizacija ponovo uspostavljena se odbacuju. Resinhronizacija tačno utvrđuje položaj podataka koje je dekoder odbacio, a potom tehnika skrivanja grešaka sakrije dijelove slike koji su oštećeni. Tehnika koja se koristi u MPEG-4 sistemu je paktetski prenos sa resinhronizacionim markerima periodično raspoređenim kroz bitski tok video podataka pojedinačnog video okvira. Dok su kod standarda H.261 i H.263 verzija 1 logičke podjele okvira bile dozvoljene jedino u redove makroblokova zvane grupe blokova (Groups Of Blocks – GOBs), kod MPEG-4 standarda bilo koji cijeli broj MB-ova može činiti jednu takvu logičku cjelinu koja se zove video paket (Video Packet – VP). Dužina video paketa ne mora biti bazirana na broju makroblokova već može biti bazirana i na broju bita koje paket sadrži. Početak logičke cjeline je označem jedinstvenom 17-bitnom riječju koja se naziva marker resinhronizacije (resynchronization marker), slika 40.

VOP2

MB2MB1

DCTD1MVD1DQUANT1CBPY1MCBPC1COD1 DCTD2MVD2DQUANT2CBPY2MCBPC2COD2

VP2

...MB2MB1MBN/QP/HECRM

VP3

MB1MBN/QP/HECRM

...VP4VP3VP2VP1VOPH

VOP3

...VP4VP3VP2VP1VOPH

VOL

...VOP4VOP3VOP2VOP1VOLH

Slika 40 MPEG-4 tok podataka sa resinhronizacionim markerima

Da bi se podaci pravilno dekodovali, nakon resinhronizacionog markera (RM) se ubacuju i slijedeći podaci: apsolutni broj makroblokova u slici (MBN), kvantizacioni parametri za makroblok (QP), te podaci kao prostorna rezolucija, vremenske oznake, tip VOP-a i slično koristeći kod za produženje zaglavlja (Header Extension Code – HEC). MPEG-4 može koristiti i metodu ubacivanja markera sa fiksnim intervalima u toku bita. Ovim se izbjegava mogući slučaj da se serija grešaka dekoduje kao startni kod VOP-a.

2.10.2 Oporavak podataka Nakon što je sinhronizacija ponovo uspostavljena, proces oporavka podataka pokušava obnoviti izgubljene podatke. Dekodovanje će se bez problema nastaviti od bilo kog RM-a, a da bi šansa za opravak podataka bila dobra treba omogućiti da se podaci mogu dekodovati u oba pravca od markera. Alat koji ovo omogućuje je dvosmjerni VLC kod (Reversible Variable Length Code – RVLC). U ovom slučaju se VLC kodne riječi prave tako da budu čitljive u oba smijera, odnosno od početka ka kraju i obrnuto. Samo značenje podataka (da li je riječ o diferencijalno kodovanim vektorima pokreta ili teksturi) je također dvosmjerno čitljivo. Ova mogućnost naravno znači gubitak u kodnoj efikasnosti, ali su dobici u otpornosti na greške značajni. U MPEG-4 verziji 2 uveden je novi alat koji smanjuje vremensku propagaciju greške. Ovaj alat se naziva NEWPRED (od new prediction, nova predikcija). NEWPRED omogućuje brz oporavak od greške u video kanalima sa dvosmjernim tokom (sam povratni

Page 37: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

MPEG-4, AVC/H.264 i VC-1 standardi video kodovanja 36

kanal nije definisan MPEG-4 standardom već zavisi od transportne mreže). Ovaj alat je vrlo sličan alatima iz H.263 standarda – Reference Picture Selection (RPS) Mode i Slice Structured Mode. Poruka preko povratnog kanala označava koji NEWPRED segment (ND segment) je pravilno dekodovan, a koji nije. ND segment je ili cijeli VOP, ili video paket. Kad je NEWPRED mod uključen, slika na osnovu koje će se vršiti predikcija u koderu se bira zavisno od povratne informacije sa dekodera. Na osnovu ove informacije koder će vršiti predikciju bilo na osnovu najsvježijeg ND segmenta, ili starijeg ND segmenta koji sadrži odgovarajuće prostorne informacije. Koder može raditi u dva NEWPRED moda (slika 41).

a b c d e f g h i j

a b c d e f g h i jkoder

dekoder

greškaACK

a)

a b c d e f g h i j

a b c d e f g h i jkoder

dekoder

greška NACK

b)

Slika 41 Koder u NEWPRED režimu a) ACK mod i b) NACK mod

Prvi mod je ACK mod u kom dekoder šalje potvrdu o svakom pravilno primljenom ND segmentu. Koder za predikciju bira samo ND segmente koji su pravilno primljeni. U drugom modu, NACK modu, koder mijenja predikciju jedino kad mu dekoder pošalje poruku o nepravilnom prijemu ND segmenta. Koder tada za predikciju bira posljedni ND segment koji je pravilno primljen u dekoderu. MPEG-4 omogućuje i intraosvježavanje (Intrarefresh), odnosno povremeno ubacivanje intra makroblokova u P-VOP-ove. Ovo ubacivanje može biti prilagođeno video sadržaju (za poboljšanje kodne efikasnosti) ili prilagođeno očekivanim uslovima prenosa (za poboljšanje otpornosti na greške).

2.10.3 Skrivanje grešaka Skrivanje grešaka predstavlja funkciju dekodera sa ciljem da se nađe odgovarajuća zamjena za dio slike koji je oštećen. Tipična šema za skrivanje grešaka uzima podatke u prostornom i vremenskom domenu, iz područja oko dijela sa greškom, da sakrije nedostajuće podatke. Efikasnost šeme skrivanja podataka zavisi od efikasnosti procesa resinhronizacije. Ukoliko resinhronizacija precizno odredi položaj greške, za video sa niskim bitskim protokom i malim kašnjenjem zadovoljavajući rezultati se postižu jednostavnim šemama skrivanja kakva je kopiranje blokova iz prethodnog okvira. Dodatna tehnika koja omogućuje dekoderu da lakše lokalizuje grešku je razdvajanje podataka (Data Partitioning). Dodatni marker za resinhronizaciju se ubacuje između podataka o pokretu i teksturi. Ukoliko se izgube podaci o teksturi, dekoder koristi podatke o pokretu da sakrije grešku koristeći kompenzaciju pokreta prethodno dekodovanog VOP-a. Ovaj marker se naziva MBM (Motion Boundary Marker) i sastoji se od jedinstvene grupe od 17 bita. Podaci o pokretu svih makroblokova u jednom video paketu su kodovani prije MBM-a, a DCT podaci svih makroblokova nakon ovog markera (slika 42). Ako se greška detektuje u podacima o pokretu, cijeli video paket se odbacuje. Ako se greška detektuje u DCT podacima, onda se podaci o pokretu koriste za skrivanje grešaka.

Page 38: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

2. MPEG-4 37

VOP2

DCT podaci1Podaci o pokretu1

...MVD2MCBPC2COD2MVD1MCBPC1COD1 ...DCTD2DCTD1...DQUANT2CBPY2DQUANT1CBPY1

VP2

DCTMBMPokretMBN/QP/HECRM

VP3

PokretMBN/QP/HECRM

...VP4VP3VP2VP1VOPH

VOP3

...VP4VP3VP2VP1VOPH

VOL

...VOP4VOP3VOP2VOP1VOLH

Slika 42 MPEG-4 tok podataka sa resinhronizacionim markerima i razdvajanjem podataka

2.11 MPEG-4 Part 2 profili Tabela 4 MPEG-4 Part2 vizuelni profili

Grupa Ime Podržane funkcije

Prirodni video sadržaj

Simple (SP) Kodovanje, sa otpornošću na greške, VO-a u obliku pravougaonika

Simple scalable SP + vremenska i prostorna skalabilnost

Advanced Simple (ASP)

SP + B slike, kompenzacija pokreta do 1/4 piksela (Qpel), dodatne tabele za kvantizaciju, globalna kompenzacija pokreta

Core SP + kodovanje objekata proizvoljnog oblika

Main Core + kodovanje videa sa preplitanjem, kodovanje providnosti, kodovanje sprajtova

N-bit Core + kodovanje objekata sa dubinom piksela od 4 do 12 bita Advanced real time

Simple (ARTS) Poboljšano kodovanje sa otpornošću na greške VO-a u obliku pravougaonika, sa malim kašnjenjem u međumemoriji

Core scalable Core + vremenska i prostorna skalabilnost objekata proizvoljnog oblika

Advanced coding Efficiency (ACE)

Kodovanje VO-a u obliku pravougaonika i objekata proizvoljnog oblika sa unapređenom kompresijom

Fine Granularity Scalability

SP ili ASP + odsjecanje toka bita sloja unapređenja na bilo kojoj bitskoj poziciji s ciljem prilagođenja uslovima prenosa

Simple Studio Visok kvalitet, ima samo I slike sa podrškom za objekte proizvoljnog oblika i višestruke alfa kanale

Core Studio Simple Studio + P slike

Sintetički i hibridni (prirodni + sintetički) video sadržaj

Simple face animation Osnovno kodovanje jednostavne animacije lica

Scalable texture Kodovanje sa prostornom skalabilnošću nepromjenljivih tekstura

Simple basic animated 2D texture

Simple face animation + prostorna i vremenska skalabilnost, predstavljanje nepromjenljivih tekstura 2D mrežom

Hybrid Kodovanje objekata proizvoljnog oblika, vremenska skalabilnost, kodovanje objekta lica, kodovanje mrežom objekata sa nepromjenljivim teksturama

Advanced scalable texture

Kodovanje sa skalabilnošću tekstura i proizvoljnih oblika, kodovanje talasićima po podopsezima

Advanced core Core + Advanced scalable texture Simple face and body

animation Simple face animation + animacija tijela

Page 39: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

MPEG-4, AVC/H.264 i VC-1 standardi video kodovanja 38

MPEG-4 omogućuje korištenje mnogih alata i parametara, ali bilo bi nepraktično sve mogućnosti standarda ugraditi u koder, te su definisani profili koji predstavljaju podskupove mogućih kombinacija koji ciljaju na specifične grupe primjena. Profili su predstavljeni u tabeli 4. Pored profila za video, MPEG-4 definiše i profile za audio, grafiku i opis scene. Od navedenih profila u upotrebi preovlađuju SP i ASP.

2.12. MPEG-7 i MPEG-21 MPEG-7 i MPEG-21 predstavljaju standarde razvijene sa ciljem omogućavanja pristupa multimedijalnim podacima na osnovu njihovog sadržaja, te pristup istim bez obzira na vrstu pristupne mreže ili korisničke platforme. MPEG-7 obezbjeđuje organizovani sistem metapodataka (podaci o podacima) u bogatom semantičkom (objekti imaju smisleno značenje) multimedijalnom sadržaju. MPEG-21 obezbjeđuje otvoren okvir za razmjenu sadržaja, objedinjujući MPEG-4 sesije (ne obavezno MPEG-4) i njihov opis (MPEG-7).

2.12.1 MPEG-7 MPEG-7 je ISO-IEC skup standarda koji se trenutno sastoji od dvanaest dijelova. MPEG-7 je standard za opis multimedijalnog sadržaja koji do određenog stepena dopušta tumačenje informacija koje se mogu prenijeti ili im može biti pristupljeno uređajem ili programskim kodom. Pruža sveobuhvatan set alata za opis koji generišu opisivače (deskriptore), koji omogućuju pristup sadržaju kao i njegovu razmjenu i upotrebu u raznim domenima primjene. Predstavićemo samo opisivače bitne za vizuelni opis sadržaja. Oni su razvrstani prema slijedećoj podjeli. Postoji sedam opisivača boje:

• Prostor boje (Color space) – podržava šest prostora: RGB, YCbCr, HSV, HMMD, matrica linearne transformacije u odnosu na RGB i monohromno,

• Kvantizacija boje (Color quantization) – definiše uniformnu kvantizaciju prostora boje i može biti kombinovan sa opisivačem dominantne boje,

• Dominantna boja (Dominant color) – određuje skup boja koji je dovoljan da opiše informacije o bojama u regionu od interesa,

• Skalabilna boja (Scalable color) – HSV histogram boje kodovan Harovom transformacijom, koja je skalabilna u smislu tačnosti predstavljanja,

• Raspored boje (Color layout) – određuje prostorni raspored boje u kompaktnoj formi, definisan je u frekvencijskom domenu i omogućuje skalabilnost,

• Sklop boje (Color structure) – obuhvata i sadržaj boje slično histogramu i sastav sadržaja. Drugačiji je od histograma jer može razlikovati slike sa istim količinama komponenti boje sve dok sklop pojedinačnih grupa piksela ima različite komponente,

• Boja grupe okvira/slika (Group of Frames/Group of Picture color) – proširenje deskriptora skalabilne boje u tome što predstavlja histogram grupe slika.

Postoje tri opisivača teksture:

• Istovrsnost teksture (Homogeneous texture) – predstavlja prvi i drugi momenat energije u frekvencijskom domenu,

• Izgled teksture (Texture browsing) – 12 bitni podatak (maksimalno) koji opisuje zakonitost, usmjerenost i grubost teksture,

• Histogram ivice (Edge histogram) – predstavlja prostornu raspodjelu pet ivica u različitim pravcima.

Page 40: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

2. MPEG-4 39

Postoje tri opisivača oblika:

• Oblik područja (Region shape) – koristi sve piksele koji čine oblik u okviru i skup koeficijenata ugaone radijalne transformacije (Angular Radial Transform) da opiše područje,

• Oblik konture (Contour shape) – obuhvata karakteristične odlike oblika i koristi CSS (curvature scale-space) predstavljanje da prikupi odlike objekta koje se primjećuju ljudskim opažanjem,

• 3D oblik (Shape 3D) – omogućuje suštinski opis 3D mreže modela zasnovane na 3D histogramu lokalnih oznaka na modelu.

Postoje četiri opisivača pokreta:

• Pokret kamere (Camera motion) – predstavlja parametre pokreta kamere u 3D prostoru koji se automatski prave na uređaju koji snima,

• Putanja pokreta (Motion trajectory) – predstavlja prostornu i vremensku lokaciju glavnih tačaka na objektu,

• Kretanje po parametrima (Parametric motion) – opisuje pokret objekta u 2D video sekvenci preko 2D parametarskih modela: translacija, rotacija, skaliranje, projekcija perspektive i slično,

• Kretanje (Motion activity) – opisuje količinu kretanja u video segmentu, kretanje obuhvata obilježja kao snaga, pravac, prostorni i vremenski raspored kretanja.

Postoje dva opisivača položaja:

• Lokator područja (Region locator) – omogućuje lociranje regiona u video okviru pomoću kutije ili poligona,

• Lokator prostor-vrijeme (Spatio-temporal locator) – opisuje 3D područje u video okviru.

MPEG-7 obezbjeđuje i opisivač za prepoznavanje lica baziran na PCA (Principal Components Analysis) tehnici. Grupa odlika se izračunava iz modela normalizovanog lica i predstavlja projekciju vektora lica na 49 osnovnih vektora.

2.12.2 MPEG-21 MPEG-21 standard (trenutno se sastoji od osamnaest dijelova) definiše sveukupni multimedijalni okvir koji omogućuje transparentnu upotrebu sadržaja na različitim mrežama. Okvir obuhvata cijeli lanac isporuke sadržaja počev od kreiranja, preko obrade, dostavljanja, personalizacije, korištenja i razmjene. MPEG-21 se zasniva na dva suštinska koncepta – digitalni artikal i koncept međudejstva korisnika i artikla. Digitalni artikal (Digital Item – DI) je osnovna jedinica raspodjele i razmjene sa korisnicima. Predstavlja multimedijalni sadržaj koji se može pretraživati i koristiti, zajedno sa metapodacima, dozvolama, identifikatorima, podacima o intelektualnoj svojini i zaštiti i metodama unutar standardizovane strukture. Sadržaj DI-a može biti izuzetno složen sa velikim brojem komponentama koje su međusobno povezane. Korisnik (User) je bilo koja strana koja međudejstvuje sa digitalnim artiklom (pojedinac, grupa, zajednica, preduzeće...). MPEG-21 tretira sve korisnike ravnopravno. Korisnik može međudejstvovati sa drugim korisnicima preko DI-a. Takva međudejstva obuhvataju kreiranje sadržaja, pružanje sadržaja, arhiviranje, ocjenjivanje, poboljšanje i dostavu sadržaja, sakupljanje, prodaju, upravljanje autorskim pravima i tako dalje.

Page 41: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

MPEG-4, AVC/H.264 i VC-1 standardi video kodovanja 40

3. AVC/H.264

3.1 Uvod u standard MPEG-4 Part 10 (AVC)/H.264 standard kodovanja predstavlja plod zajedničkih napora ISO MPEG (International Organization for Standardization Moving Picture Experts Group) grupe i ITU VCEG (International Telecommunications Union Video Coding Experts Group) grupe, koje su su kombinovale snage u JVT (Joint Video Team) grupu 2001. godine. Prva verzija standarda je odobrena 2003. godine. Ovo je prvi standard optimizovan i za upotrebu u video-telekomunikacijama (rad VCEG grupe) i za digitalnu televiziju i kreiranje video sadržaja (rad MPEG grupe). Glavni cilj novog standarda je bio poboljšanje dostupne kodne efikasnosti uz pružanje paketskog prenosa prilagodljivog svim postojećim i budućim protokolima i mrežama. AVC/H.264 pruža 50% i više unapređenja u kodnoj efikasnosti u odnosu na MPEG-2, te 25% i više u odnosu na MPEG-4 Part 2 standard. Ovo je postignuto upotrebom novih alata i unapređenjem već postojećih, što je zahtjevalo povećanje složenosti kodeka. U odnosu na MPEG-2 standard kompleksnost kodera je i do devet puta veća, dok je složenost dekodera veća do četiri puta. Ovo trenutno i ne predstavlja problem zahvaljujući konstantnom napretku u poluprovodničim tehnologijama. MPEG-4 Part 2 nije imao pretjeranog uspjeha u oblasti industrijskih standarda. Njegov prethodnik MPEG-2 se nametnuo kao standard za DVB (Digital Video Broadcasting) i DVD (Digital Video/Versatile Disc). AVC/H.264 je, uz široko rasprostranjeni MPEG-2 sistem, postao dio Blue-ray, HD-DVD i DVB-S2 standarda. MPEG-4 Part 2 je, kao prelazna stepenica između pomenutih sistema kodovanja, postao rasprostranjen u popularnim implementacijama kodeka DivX, Xvid, Nero Digital i sličnim zahvaljujući otvorenosti izvornog koda. Implementiran je i u dijelu profesionalne video opreme u sistemima za nadzor i sistemima za kodovanje visokog kvaliteta, ali se nikad nije ustoličio kao standard koji bi razmatrali velike industrijske grupe. Ovom je doprinjeo i razvoj AVC/H.264 standarda, koji je pokazao bolje kodne performanse. Čak ni najnapredniji element Part 2 standarda, kodovanje bazirano na sadržaju, nije pronašao put do šire potrošačke zajednice. Široku primjenu su pronašli jedino SP i ASP profili. MPEG-4 Part 2 je i podlegao kritikama zbog nedostatka kao što su: nepostojanje filtera protiv blokovskih ostataka slike, OBMC je određen standardom ali ga ne podržava nijedan profil, kompenzacija globalnog pokreta (GMC) je suviše komplikovana za izračunavanje, parametri za kvantizaciju (quantization parameter – QP) u B slikama su ograničeni ili na parne ili na neparne brojeve, itd. AVC/H.264 standard ne podržava kodovanje objekata, on jednostavno predstavlja unapređenje efikasnosti kodovanja pravougaone video slike i unapređenje pristupa sadržaju. Novi koncept koji uvodi AVC/H.264 je razdvajanje strukture kodeka na dva odvojena sloja – sloj za kodovanje videa (Video Coding Layer – VCL) i sloj koji predstavlja mrežu (Network Abstraction Layer – NAL). Uloga VCL-a je da efikasno koduje video sadržaj. NAL služi da omogući efikasan prenos sadržaja neovisno o transportnom ili skladišnom mediju ili protokolu. Fokus ovog rada će biti na unapređenjima video kodovanja. AVC/H.264 sadrži niz novih alata koji izuzetno povećavaju efikasnost kodovanja i otpornost na greške u raznovrsnim mrežnim okruženjima. Ova unapređenja će biti opisana u narednim poglavljima.

3.2 AVC/H.264 koder AVC/H.264 podržava jednobojno, 4:2:0, 4:2:2 i 4:4:4 predstavljanje informacija o boji (pododabiranje hroma komponente).

Page 42: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

3. AVC/H.264 41

Prethodni standardi video kodovanja su organizovali video sekvencu u grupu slika ili ravni (GOP ili VOP) i ove slike su se nazivale I, P i B slike (odnosno ravni). Riječ slika se koristi kao uopšteni pojam koji obuhvata i okvir i polje (u slučaju slike sa preplitanjem). Međutim, AVC/H.264 ne operiše sa slikama, tj. okvirima, već radi na nivou isječaka slike (slice). Ovo praktično znači da se okvir može sastojati od I, P i B isječaka u bilo kojoj kombinaciji. AVC/H.264 podržava sljedeće vrste isječaka:

• I (Intra) – sadrži samo I makroblokove (svaki blok ili MB je prediktovan na osnovu prethodno kodovanih podataka u istom isječku),

• P (Predicted) – Sadrži P makroblokove (svaki MB ili odjeljak MB-a je prediktovan na osnovu liste 0 referentnih slika) i/ili I makroblokove,

• B (Bi-predictive) – Sadrži B makroblokove (svaki MB ili odjeljak MB-a je prediktovan na osnovu liste 0 i/ili liste 1 referentnih slika) i/ili I makroblokove,

• SP (Switching P) – omogućuje prebacivanje sa kodovanog toka jedne bitske brzine na tok druge brzine, sadrži P i/ili I makroblokove,

• SI (Switching I) – omogućuje prebacivanje sa kodovanog toka jedne bitske brzine na tok druge brzine, sadrži SI makroblokove (poseban tip intra kodovanog MB-a).

AVC/H.264 koder koristi jednu ili dvije liste prethodno kodovanih slika. Ovo omogućuje koderu da za tekući makroblok ima na izboru širi skup referentnih slika. Interkodovani makroblokovi i odjeljci MB-a u P isječcima su prediktovani na osnovu jedne liste – liste 0. Interkodovani makroblokovi i odjeljci MB-a u B isječcima su prediktovani na osnovu dvije liste – liste 0 i liste 1. Liste će biti objašnjene u poglavlju o inter kodovanju. AVC definiše i posebnu vrstu I slike, to je takozvana slika za trenutno osvježavanje dekodera (Instantaneous Decoder Refresh – IDR). To je slika koja sadrži samo I ili SI isječke. Ova vrsta slike postavlja ograničenje da slike koje se u bitskom toku pojavljuju iza nje ne mogu koristiti za predikciju slike ispred nje. Prva slika svake kodovane video sekvence je IDR slika. P isječci se sastoje od makroblokova ili odjeljaka MB-a koji mogu koristiti jedan MV za predikciju. P isječci mogu sadržavati intra MB-ove. Za razliku od P slika u Part 2 standardu, P isječci se mogu predviđati na osnovu slika u prošlosti ili budućnosti u odnosu na tekući video okvir. B isječci se sastoje od makroblokova ili odjeljaka MB-a koji mogu koristiti do 2 MV-a za predikciju. Različiti dijelovi B isječaka mogu koristiti različite referentne slike za predikciju. Za razliku od B slika u Part 2 standardu, dvije referentne slike koje odgovaraju dvima vektorima mogu biti ili u prošlosti ili budućnosti u odnosu na tekući B isječak, ili jedna u prošlosti a druga u budućnosti. Isto, B isječci mogu sadržavati intra blokove i mogu služiti kao referentne slike za predikciju, što kod B slika u Part 2 standardu nije slučaj. Dodatna pojašnjenja su data u poglavlju o inter kodovanju. Svrha SP i SI isječaka je da omoguće efikasno prebacivanje između video tokova i efikasan slučajan pristup u tok od strane dekodera. Prenos videa je važna aplikacija u IP, 3G i 4G mrežama. Zbog moguće promjene uslova u prenosu videa do korisnika, potrebno je u stvarnom vremenu omogućiti i odgovarajuću promjenu kapaciteta kanala za prenos, samim tim i promjenu bitske brzine prenosa podataka. Najjednostavniji način za promjenu bitske brzine u realnom vremenu je unaprijed imati već kodovane bitske tokove koji odgovaraju različitim brzinama prenosa, odnosno različitom kvalitetu. Server se može prebaciti sa video toka većeg kvaliteta na tok manjeg čim dođe do pada u kapacitetu kanala. Slika 41 prikazuje dva video toka u koji su, sa određenim intervalima, ubačene tačke prebacivanja između bitskih tokova (S1 i S2 npr.). Isječak S12 se nalazi na lokaciji tačaka prebacivanja i omogućuje da isječci iz toka 2 mogu kao referencu koristiti isječke iz toka 1.

Page 43: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

MPEG-4, AVC/H.264 i VC-1 standardi video kodovanja 42

P2 P2 S2 P2 P2

S12

P1 P1 S1 P1 P1Tok 1

Tok 2

n-2 n-1 n n+1 Slika 43 Uloga SP i SI isječaka

Ukoliko je S12 isječak formiran korištenjem vremenske predikcije naziva se SP isječak, a ukoliko je formiran upotrebom prostorne predikcije naziva se SI isječak. Već smo napomenuli da se okvir (slika) u AVC/H.264 standardu može sastojati od proizvoljne kombinacije različitih vrsta isječaka. AVC/H.264 unosi i novinu u mogućem obliku isječaka. Kod MPEG-2 standarda oblik isječka je dobijen skeniranjem redova makroblokova, a kod MPEG-4 Part 2 standarda skeniranjem redova ili kolona makroblokova u okviru. Kod AVC/H.264 standarda isječci su raspoređeni u tzv. grupe isječaka (slice groups), koncept poznat i pod imenom prilagodljivo redanje makroblokova (Flexible Macroblock Ordering – FMO). FMO koncept se koristi radi povećanja otpornosti na greške, prilagodljivog kodovanja regiona od interesa, te formiranja scene sa više pogleda u realnom vremenu, korištenjem više ulaznih video tokova nižeg bitskog protoka. Okvir se može sastojati od jedne ili više grupa isječaka (slika 44).

isječak 0

isječak 1

isječak 2

isječak 3

jedna grupa isječaka grupa isječaka 0

grupa isječaka 1

grupa isječaka 2

isječak 0

isječak1

isječak 2

isječak0

isječak1

isječak 2isječak0isječak1isječak 2

a) b)

Slika 44 a) jednostruka i b) višestruke grupe isječaka

AVC/H.264 definiše sedam tipova grupa isječaka. Šest tipova je prikazano na slici 45, a sedmi tip je onaj koji se definiše proizvoljno od strane korisnika, te je samim tim i najopštiji. AVC/H.264 koder je baziran na istim principima kao kod prethodnih standarda, odnosno na hibridu intra i inter kodovanja, da bi se iskoristila redudansa u vremenskom i prostornom domenu. Blok šema AVC/H.264 kodera je data na slici 46, a opis funkcija pojedinih blokova je objašnjen u nastavku rada.

Page 44: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

3. AVC/H.264 43

grupa isječaka 1

grupa isječaka 1

0 1 2 0 1 2 0 11 2 0 1 2 0 1 22 0 1 2 0 1 2 00 1 2 0 1 2 0 11 2 0 1 2 0 1 22 0 1 2 0 1 2 0grupa isječaka 1

grupa isječaka 0grupa isječaka 1grupa isječaka 0grupa isječaka 1

grupa isječaka 0

grupa isječaka 0

grupa isječaka 0

...

...012

grupa isječaka 0grupa isječaka 1grupa isječaka 2

grupa isječaka 0

grupa isječaka 1

a) b) c)

d) e) f)

grupa isječaka 0

grupa isječaka 1

grupa isječaka 0

grupa isječaka 1 grupa isječaka 1

grupa isječaka 0

Slika 45 Različiti tipovi grupa isječaka: a) učešljana mapa, b) rasuta mapa, c) mapa prednji plan/pozadina,

d) box-out mapa, e) vodoravno skeniranje (raster map) i f) vertikalno skeniranje (wipe map)

Transformacija Kvantizator

Entropijsko kodovanje

Prostorna predikcija

Kompenzacija pokreta

Estimacija pokreta

Filter protiv blokova

Obrnuta kvantizacija

Obrnuta transformacija

Σ

Σ

ulaz slike

Tok bita

+

-

++

Odabiranje načina (intra/inter)

Međumemorija za tekuću sliku

Međumemorija za dekodovanu sliku

Kvantizovani koeficijenti

Predikcija

Informacije o predikciji

Slika 46 Blok šema AVC/H.264 kodera

3.3 Intra predikcija Intra predikcija zahtjeva podatke samo iz tekućeg okvira. Za razliku od prethodnih standarda kodovanja kod kojih su se za predikciju intrablokova koristile samo DC vrijednosti (MPEG-2) ili blok iznad ili lijevo (MPEG-4 Part 2), AVC/H.264 koristi prostorno usmjerenu predikciju (directional spatial prediction), gdje su pojedine vrijednosti predviđene na osnovu već dekodovanih i potpuno rekonstruisanih susjednih vrijednosti

Page 45: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

MPEG-4, AVC/H.264 i VC-1 standardi video kodovanja 44

odbiraka. Prednost usmjerene predikcije je što može izvršiti ekstrapolaciju ivica prethodno dekodovanih dijelova iste slike, u MB-ove koji trebaju biti kodovani. Ovo povećava tačnost predikcije i kodnu efikasnost. Koder će odabrati pravac predikcije za koji je greška predikcije najmanja. Predikcija se ne može vršiti van jednog istog isječka jer bi mogućnost oporavka od greške bila onemogućena.

3.3.1 Predikcija luma komponente Predikcija luma komponente se može vršiti na nivou 4x4 blokova, 8x8 blokova i 16x16 blokova. U 4x4 predikciji svaki 4x4 luma blok može koristiti drugačiji način predikcije. Postoji devet mogućih načina predikcije – DC predikcija i osam prostorno usmjerenih predikcija. Slika 47 i tabela 5 opisuju ovih devet načina predikcije. Sa slovima A do M su označeni odbirci, odnosno pikseli, ivica susjednih blokova na osnovu kojih se vrši predikcija. Ovo su odbirci koji su već poznati koderu i dekoderu.

0 (vertikalna) 1 (horizontalna) 2 (DC)

Prosjek(A-D, I-L)

A B C D E F G H

I

J

K

L

M A B C D E F G H

I

J

K

L

M A B C D E F G H

I

J

K

L

M

A B C D E F G H

I

J

K

L

M A B C D E F G H

I

J

K

L

M

A B C D E F G H

I

J

K

L

M A B C D E F G H

I

J

K

L

M A B C D E F G H

I

J

K

L

M

A B C D E F G H

I

J

K

L

M

3 (dijagonalna dolje-lijevo)

4 (dijagonalna dolje-desno) 5 (vertikalna na desno)

6 (horizontalna na dolje) 7 (vertikalna na lijevo) 8 (vertikalna na gore)

Slika 47 Načini predikcije za 4x4 luma blokove

Tabela 5 Načini intra predikcije za blokove 4x4 piksela Način Opis

0 (vertikalna) Vertikalna ekstrapolacija gornjih piksela A, B, C i D 1 (horizontalna) Horizontalna ekstrapolacija lijevih piksela I, J, K i L 2 (DC) Svi pikseli su predviđeni kao srednja vrijednost piksela A-D i I-L

3 (dijagonalna dolje-lijevo) Dijagonalna predikcija piksela pod uglom 45º između gornjeg desnog i donjeg lijevog ugla

4 (dijagonalna dolje-desno) Dijagoalna predikcija piksela pod uglom 45º na dolje na lijevo 5 (vertikalna na desno) Predikcija piksela pod uglom 26.6º desno od vertikale 6 (horizontalna na dolje) Predikcija piksela pod uglom 26.6º ispod horizontale 7 (vertikalna na lijevo) Predikcija piksela pod uglom 26.6º lijevo od vertikale 8 (vertikalna na gore) Predikcija piksela pod uglom 26.6º iznad horizontale

Page 46: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

3. AVC/H.264 45

8x8 predikcija je slična 4x4 predikciji, odnosno postoji devet načina predikcije, ali u ovom slučaju svi 8x8 blokovi moraju koristiti isti način predikcije. 16x16 predikcija se koristi za intra kodovanje područja slike sa malo prostornih detalja. Postoje četiri načina predikcije 16x16 luma blokova. Prva tri načina funkcionišu na istom principu kao način 0,1 i 2 kod predikcije 4x4 blokova. Četvrti način, mod ravni (plane mod), predstavlja usavršenje DC načina. Umjesto da vrijednosti svih piksela u bloku budu namještene na istu srednju vrijednost, prediktor traži u gornjem redu piksela i lijevoj koloni piksela pravce promjene svjetline. Na osnovu toga on proračunava blok čije vrijednosti leže u ravni koja se može zakrenuti u pravcu promjene. Ovaj mod je računski najzahtjevniji. Ima najbolje karakteristike u područjima slike gdje se svjetlina lagano mijenja.

0 (vertikalna) 1 (horizontalna) 2 (DC)

V

H

V

H

V

H

Srednja vrijednost

V i H

3 (ravanska)

V

H

Slika 48 Načini predikcije za 16x16 luma blokove

3.3.2 Predikcija hroma komponenti Intra predikcija hroma komponenti se odvija na nivou cijelih makroblokova. Zbog toga što svaki sistem predstavljanja boja radi sa različitim veličinama polja hroma uzoraka za makroblok (8x8 u 4:2:0 MB-ovima, 8x16 u 4:2:2 MB-ovima i 16x16 u 4:4:4 MB-ovima), predikcija hroma komponenti je definisana za tri veličine blokova. Načini predikcije su isti kao i kod 16x16 predikcije luma komponente, samo što se označavaju drugačije: način 0 (intra hroma DC), način 1 (intra hroma horizontalna), način 2 (intra hroma vertikalna) i način 3 (intra hroma ravanska). Izbor tipa predikcije hroma komponenti se vrši nezavisno od izabranog načina predikcije luma komponente.

3.4. Inter predikcija Inter predikcija se u AVC/H.264 standardu zasniva na istim principima kao i prethodni standardi uz unapređenja koja je bilo moguće ostvariti zahvaljujući bržem hardveru.

3.4.1 Prilagodljiva veličina bloka Raniji standardi kodovanja su estimaciju pokreta vršili na nivou 16x16 blokova koji se nazivaju makroblokovi (MB). Raditi estimaciju na sitnijim blokovima je prosto koštalo previše procesorske snage. U vrijeme razvoja AVC/H.264 standarda stepen razvoja VLSI (Very Large Scale Integration) kola je bio na visokom nivou, te je bilo razumljivo razviti proces estimacije za blokove veličine manje od 16x16. U ranijoj terminologiji imenom MB je nazivan blok veličine 16x16 (ili 16x8 za video sa preplitanjem) kojem je dodjeljen MV za predikciju pokreta. Imenom blok je nazivan blok dimenzija 8x8, osnovna jedinica DCT transformacije. Kod AVC/H.264 standarda ove razlike se gube te se blokovi raznih veličina koji se koriste u estimaciji pokreta mogu nazivati MB, pod-MB, odjeljak MB-a ili prosto blok. Koder, za estimaciju pokreta luma komponente, može da bira jednu od veličina bloka sa slike 49, koja najviše odgovara za dato područje slike. Na ovaj način se dobija efikasnija predikcija oko pomičućih ivica u kadru. Svaki MB može biti podjeljen na odjeljke iz gornjeg

Page 47: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

MPEG-4, AVC/H.264 i VC-1 standardi video kodovanja 46

reda slike. Svaki 8x8 blok dobijen na ovaj način može podjeljen na odjeljke na način kako je to prikazano na donjem redu slike.

0 0 1

0

1

0 1

2 3

16x16 8x16 16x8 8x8

16

16 8 8

a)

0 0 1

0

1

0 1

2 3

8x8 4x8 8x4 4x4

8

8 4 4

b)

Slika 49 a) odjeljci makrobloka: 16x16, 8x16, 16x8 i 8x8, b) odjeljci pod-makrobloka: 8x8, 4x8, 8x4 i 4x4

Kompenzacija pokreta koja koristi prikazani način podjele MB-a na pod-makroblokove se naziva kompenzacija pokreta sa strukturom stabla (Tree structured motion compensation). Kao i kod ranijih standarda, AVC/H.264 ne propisuje na koji će način koder procjeniti pokret makrobloka/pod-makrobloka. To se ostavlja na izbor konkretnom koderu. Opisani način patricionisanja makrobloka omogućuje maksimalno 16 MV-a po makrobloku, što je povećanje u odnosu na prethodne standarde. Svaka hroma komponenta u makrobloku (Cb i Cr) ima pola horizontalne i vertikalne rezolucije luma komponente. Horizontalna i vertikalna komponenta MV-a se polove kada se primjenjuju na hroma komponente.

3.4.2 Preciznost estimacije pokreta Vektor pokreta (MV) u AVC/H.264 standardu ima preciznost od 1/4 piksela za luma komponentu i 1/8 piksela za hroma komponente. Interpolacija luma odbiraka na položajima 1/2 piksela (half-pel) se izračunava pomoću FIR filtra. Slika 50 pokazuje odbirke koji se koriste u interplolaciji.

G b H

h j

M N

položaj cijelobrojnog pikslela

položaj polovine piksela

J

Q

I

P

m

s

E

K

F

L

R S

T U

A B

C Dbb

aa

gg

hh

ddcc ee ff

Slika 50 Interpolacija luma odbiraka na položaju 1/2 piksela

Page 48: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

3. AVC/H.264 47

Primjer izračunavanja za poziciju b je:

b=(E-5F+20G+20H-5I+J)/32 Vrijednost se zaokružuje na cijeli broj. Vrijednost h se izračunava na isti način koristeći odbirke A, C, G, M, R i T. Vrijednost j se dobija filtriranjem vrijednosti aa, bb, b, s, gg i hh, ili cc, dd, h, m, e i ff. Ove vrijednosti su dobijene istim filterom. Kada se izračunaju vrijednosti na položajima 1/2 piksela možemo izračunati vrijednosti na položajima 1/4 piksela (quarter-pel) (slika 51).

G b H

h j

M N

položaj četvrtine piksela

m

s

b ba c

i k

G b H

h j

M N

m

s

d f

n q

G b H

h j

M N

m

s

e g

p r

Slika 51 Interpolacija luma odbiraka na položaju 1/4 piksela

Vrijednosti na položaju 1/4 piksela se računaju linearnom interpolacijom po primjeru:

a=(G+b)/2 gdje se vrijednost a zaokružuje na cijeli broj. Vrijednost 1/4 piksela u luma komponenti zahtijeva vrijednost 1/8 piksela u hroma komponentama (za 4:2:0 sistem). Vrijednost se dobija linearnom interpolacijom između četiri okolne vrijednosti cjelobrojnih pozicija piksela (slika 52) po formuli:

a=((8-dx)(8-dy)A+dx(8-dy)B+(8-dx)dyC+dxdyD))/64 gdje se rezultat zaokružuje na cjelobrojnu vrijednost.

A B

D

a

C

dx 8-dx

dy

8-dy

Slika 52 Interpolacija hroma odbiraka na položaju 1/8 piksela

Na primjeru gornje slike gdje je dx=2 i dy=3 dobijamo:

a=(30A+10B+18C+6D)/64

3.4.3 Predikcija vektora pokreta Radi kodne efikasnosti MV tekućeg bloka se predviđa iz MV-a susjednih blokova, a razlika predikcije koduje. Predikcija tekućeg MV-a se vrši na osnovu MV-a iz susjednih blokova, kako je prikazano na slici 53. Postoje dva načina predikcije – bazirana na ne-medijan operacijama i bazirana na medijan operacijama.

Page 49: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

MPEG-4, AVC/H.264 i VC-1 standardi video kodovanja 48

Ne-medijan način se koristi kada se vrši kompenzacija pokreta za blokove dimenzija 16x8 i 8x16 (slika 53 a)). Predikcija se vrši na osnovu jednog kandidata vektora. Medijan način predikcije MV-a se koristi za predikciju blokova dimenzija 8x8, 8x4, 4x8, 4x4 i 16x16. Predikcija se vrši na osnovu tri kandidata vektora (A, B i C na slici). Ukoliko postoji više od jednog bloka/odjeljka lijevo od tekućeg MB-a/bloka/odjeljka, najgornji od ovih odjeljaka se koristi kao A blok za predikciju (slika 53 b)). Ukoliko postoji više od jednog bloka/odjeljka iznad tekućeg MB-a/bloka/odjeljka, onaj koji je najviše lijevo od ovih odjeljaka se koristi kao B blok za predikciju. Ukoliko postoji više od jednog bloka/odjeljka iznad i desno od tekućeg MB-a/bloka/odjeljka, onaj koji je najviše lijevo od ovih odjeljaka se koristi kao C blok za predikciju. Ako vektori kandidati za B i C nisu dostupni, umjesto njih se koristi vrijednost vektora za A blok. Ukoliko je C kandidat nedostupan bira se kandidat vektor bloka D. Ako nijedan od kandidata A, B i C nije dostupan, ili su intra kodovani, vrijednosti tri kandidata vektora za predikciju se postavljaju na nulu.

B C

AB C

A

B C

A

B C

A

tekući blok16x8

tekući blok16x8

8x16

8x16

a)

tekući MBili odjeljak

b)

tekući MBili odjeljak

tekući MBili odjeljak

AB C

nije dostupan

nije dostupan

A

B C

A

C

nije dostupanB

Dmedijan medijanmedijan

Slika 53 a) predikcija MV-a ne-medijan operacijom i b) predikcija MV-a medijan operacijom

3.4.4 Višestruke referentne slike AVC/H.264 pruža veliku prilagodljivost u odabiru slika koje će se, u procesu predikcije sa kompenzacijom pokreta, koristiti kao referentne za naredne slike. Prethodni standardi su dozvoljavali jednu sliku u prošlosti za predikciju P slike, te jednu sliku u prošlosti i jednu u budućnosti za predikciju B slike. Slike koje su prethodno kodovane, AVC/H.264 koder i dekoder drže u refernetnoj međumemoriji (Decoded Picture Buffer – DPB). Ove slike mogu biti kratkoročne, skoro kodovane, ili dugoročne, tj. starije slike kodovane prije kratkoročnih. Svaki pojedinačni blok u P isječku može da koristi jednu referentnu sliku za kompenzaciju pokreta, ali ne izričito sliku u prošlosti. Svaki pojedinačni blok u B isječku može da koristi jednu ili par referentnih slika za kompenzaciju pokreta, ali ne izričito jednu

Page 50: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

3. AVC/H.264 49

sliku u prošlosti a jednu u budućnosti. Ovo naglašava razliku u odnosu na prethodne standarde kodovanja. Pošto ne postoji striktna vremenska odrednica o referentnim slikama uvedena je nova terminologija za opis grupe referentnih slika. P isječci za predikciju koriste tzv. Listu 0, koja predstavlja grupu slika u međumemoriji za sliku. B isječci koriste dvije liste za predikciju – spomenutu Listu 0 i novu Listu 1. To su dvije grupe slika u međumemoriji čije liste mogu da se preklapaju. B isječci mogu biti reference za predikciju drugih isječaka. Međumemorija može da sadrži najviše 16 referentnih slika. Dozvoljavajući koderu da bira koje referentne slike iz liste će da koristi za predikciju (sa ciljem minimalizacije greške predikcije), sistem ostvaruje dobitak u kodnoj efikasnosti, pogotovo u situacijama kod video sekvenci u kojima se pojavljuje zaklanjanje objekata, nagle promjene u svjetlini slike ili periodično kretanje (slika 54).

predikcija

predikcija

Slika 54 AVC/H.264 omogućuje bolji izbor referentne slike za predikciju od prethodnih standarda

Blokovi u P isječcima mogu biti intra kodovani, inter kodovani i kodovani preskakanjem (skip mode). Blokovi u B isječcima mogu koristiti direktnu predikciju, predikciju iz Liste 0, predikciju iz Liste 1, dvosmjernu predikciju iz Lista 0 i 1, i preskakanje. Različiti odjeljci B makrobloka mogu koristiti drugačiji način predikcije (tabela 6 i slika 55). Ako se koriste 8x8 blokovi, isti način predikcije koriste i svi njihovi pod-blokovi.

Tabela 6 Načini predikcije za blokove B isječka Blok Mogućnosti predikcije

16x16 Direktna, Lista 0, Lista 1 ili dvosmjerna 16x8 ili 8x16 Lista 0, Lista 1 ili dvosmjerna (posebno za svaki odjeljak) 8x8 Direktna, Lista 0, Lista 1 ili dvosmjerna (posebno za svaki odjeljak)

L0

dvosmjerna

direktna

dvosmjerna

L0

L1

16

16

Slika 55 Primjeri načina predikcije u makroblokovima B isječka

Page 51: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

MPEG-4, AVC/H.264 i VC-1 standardi video kodovanja 50

Preskakanje predstavlja način rada u kom koder ne šalje izričito ni vektore pokreta, ni vrijednosti ostataka (grešaka) predikcije dekoderu, već dekoder izvodi MV tekućeg bloka na osnovu MV-a okolnih blokova. Ovo je moguće jer postoje situacije u kojima su pokreti blokova, kao i njihove greške predikcije visoko korelisani. Preskočeni B blokovi imaju vrijednost MV-a kao blokovi na osnovu kog se predviđaju, a i veličina im je ista. Preskočeni P blokovi imaju samo istu vrijednost MV-a. Kod dvosmjerne predikcije referentni blok (koji je iste veličine kao tekući blok) se formira od odbiraka iz blokova sa kompenzovanim pokretom iz slika koje pripadadaju Listi 0 i Listi 1 (tj. potrebna su dva MV-a). Vrijednosti odbiraka u tom referentnom bloku se izračunavaju po formuli:

p(i, j)=(p0(i, j)+p1(i, j)+1)/2, gdje su p0(i, j) i p1(i,j) odbirci iz blokova uzetih iz Lista 0 i 1, a p(i, j) je odbirak bloka za dvosmjernu predikciju. Ostatak sa kompenzacijom pokreta se dobija oduzimanjem vrijednosti odbiraka p(i, j) od odbiraka sa istim koordinatama tekućeg bloka, kao što je i uobičajno. Primjer izračunavanja bloka koji služi za dvosmjernu predikciju je dat na slici 56.

a) b) c)

Slika 56 Primjer izračunavanja referentnog bloka za dvosmjernu predikciju: a) blok iz slike iz Liste 0, b) blok iz slike iz Liste 1 i c) dobijeni referentni blok

U direktnoj predikciji se vektor pokreta za blok iz B isječka ne prenosi dekoderu. Dekoder sam izračunava vektore Liste 0 i Liste 1 na osnovu već dekodovanih vektora, te ih koristi za dvosmjernu predikciju dekodovane greške predikcije. Postoje dva načina direktne predikcije – prostorna i vremenska. U prostornom direktnom modu vrijednosti vektora za Listu 0 i Listu 1 se dobijaju načinom opisanim u poglavlju 3.4.3. Prostorni direktni mod je efikasan u trenucima u kojima se scena mijenja (slika 57 a)). Velika promjena scene smanjuje vremensku korelaciju među slikama. Klasični način predikcije bi bio predikcija unazad ili unaprijed sa prenosom vrijednosti i MV-a i greške predikcije. Direktni mod zahtijeva samo prenos greške predikcije.

promjena scene

B isječci

Direktna prostorna predikcija

Slika 57 Prostorna direktna predikcija se efikasno upotrebljava pri promjeni scene

Page 52: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

3. AVC/H.264 51

U slučaju da vektor pokreta bloka na istoj poziciji u refernetnim slikama (u Listi 0 i Listi 1) ima vrijednost u opsegu [-1, +1], računa se da je vrijednost vektora pokreta jednaka nuli, pa se vrijednosti odbiraka tekućeg bloka dobijaju interpolacijom vrijednosti referentnih blokova. Ako je došlo do promjene scene, kopira se vrijednost bloka na osnovu MV-a iz refrentne slike unaprijed ili unazad, zavisno gdje je došlo do promjene scene. Posljednji slučaj je kada se ne može pronaći korelacija sa referentnim slikama 0 i 1. Tada se vrijednost tekućeg bloka dobija interpolacijom vrijednosti blokova na istim mjestima u referentnim slikama (slika 58).

MV0=0 MV1=0

MVC

[-1, +1] MV opseg

MV0

ne koristi se

nema korelacije

nema korelacije

ne koristi se MV1

nema korelacije nema korelacije

MV0=0 MV1=0

prostorna predikcija

prostorna predikcija

slučaj 1

slučaj 2

slučaj 3

slučaj 4

referenca iz Liste 0 referenca iz Liste 1

B

Slika 58 Različiti slučajevi kod direktne prostorne predikcije

U vremenskom direktnom modu vrijednosti dva vektora pokreta na osnovu kojih se vrši interpolacija za MV tekućeg bloka se dobijaju na sljedeći način: prvo se pronađe odgovarajuća referentna slika u Listi 0 za blok na istoj poziciji u referentnoj slici iz Liste 1. Ova referenca iz Liste 0 postaje referenca iz Liste 0 za tekući blok. Drugo, nađe se MV Liste 0 za blok na istoj poziciji tekućeg bloka u Listi 1. MV se skalira na osnovu razmaka u rednom broju između tekuće slike i slike u Listi 1 – dobije se vektor MV1. MV se zatim skalira na osnovu razmaka između tekuće slike i slike u Listi 0 – dobije se vektor MV0. Na osnovu vektora MV0 i MV1 vrši se interpolacija MV-a tekućeg bloka. Težinovana predikcija predstavlja skaliranje odbiraka koji se koriste za predikciju podataka u P i B blokovima. Svaki odbirak predikcije u bloku iz Liste 0 i Liste 1 se skalira prije predikcije sa kompenzacijom pokreta. P blokovi se skaliraju u direktnom modu, a B blokovi u direktnom i indirektnom modu. Direktni mod znači da koder određuje faktore skaliranja, a indirektni da se faktori skaliranja određuju na osnovu razmaka tekuće slike od referentne slike iz Liste 0 i referentne slike iz Liste 1. Veći faktor se primjenjuje za slike bliže tekućoj, a manji za slike dalje od tekuće. Težinovana predikcija je korisna u situacijama kada se jedna scena pretapa u drugu.

Page 53: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

MPEG-4, AVC/H.264 i VC-1 standardi video kodovanja 52

3.5 Transformacija i kvantizacija Nakon procesa predikcije svaki blok ostataka predikcije sa kompenzacijom pokreta (Motion Compensated Error Residual – MCER) se podvrgava transformaciji, kvantizaciji i entropijskom kodovanju. Za razliku od prethodnih standarda video kodovanja koji isključivo koriste DCT transformaciju nad 8x8 blokom, AVC/H.264 koristi transformaciju cijelih brojeva (integer transform) nad blokovima dimenzije 4x4. Ova transformacija predstavlja aproksimaciju DCT transformacije. Veličina bloka 4x4 bolje iskorištava lokalnu promjenu sadržaja, smanjuje složenost implementacije, i prilagođava se procesu kompenzacije pokreta koji se može odvijati na nivou 4x4 blokova. Korištenjem transformacije aritmetikom cijelih brojeva uproštava se implementacija i, što je važnije, izbjegavaju se greške vezane za preciznost transformacije. Naime, kod prave DCT transformacije neki koeficijenti su iracionalni brojevi i ne mogu biti obrađeni bez odsjecanja. Drugi problem je što dio za obrnutu transformaciju u koderu (dekoderski dio, slika 46) vjerovatno neće biti isti kao dio u dekoderu koji je dizajniran od strane drugog proizvođača (svaki proizvođač će koristiti svoju aproksimaciju idealne IDCT jednačine). Mada u stvarnim signalima ova neusklađenost i ne predstavlja problem, dizajneri AVC/H.264 standarda su željeli izbjeći ovaj potencijalni izvor grešaka. Zavisno od tipa greške predikcije, AVC/H.264 koristi različite tipove transformacija. Podaci u bloku se prenose po redoslijedu prikazanom na slici 59. Ako je blok kodovan u 16x16 intra modu onda se blok označen kao „-1“, koji sadrži transformisane DC koeficijente svakog 4x4 luma bloka, prenosi prvi. Zatim se prenose blokovi luma ostataka predikcije označeni sa 0-15 (DC koeficijenti u bloku kodovanom u 16x16 inter modu se ne prenose). Poslije toga se šalju 2x2 blokovi 16 i 17 koji sadrže DC kooeficijente hroma komponenti Cb i Cr. Posljednji se prenose blokovi hroma ostataka predikcije označeni sa 18-25. Zbog podrške videu visoke definicije i studijske obrade, omogućena je i transformacija 8x8 blokova luma ostataka predikcije. Načini transformacije za pojedine blokove su opisani u narednim redovima.

0 1 2 3

4 5 6 7

8 9 10 11

12 13 14 15

18 19

20 21

22 23

24 25

Luma

Cb Cr

DC

-1 (jedino u 16x16 intra modu) 16 17

Slika 59 Redoslijed skeniranja blokova ostataka u makrobloku

3.5.1 Transformacija i kvantizacija 4x4 blokova ostataka predikcije Ova transformacija se primjenjuje na 4x4 blokove ostataka intra predikcije (blokovi označeni brojevima 0-15 i 18-25 na slici 59). Transformacija cijelih brojeva je zasnovana na DCT transformaciji. DCT transformaciju su razvili Ahmed i Rao 1974. godine. Postoje četiri verzije ove

Page 54: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

3. AVC/H.264 53

transformacije, a ona koja se najčešće koristi u video kodovanju se označava kao DCT tip II, ili DCT-II. 2D transformacija NxN bloka piksela je data formulom:

𝐹𝐹(𝑈𝑈,𝑀𝑀) = 𝐶𝐶(𝑢𝑢)𝐶𝐶(𝑣𝑣) � �𝑓𝑓(𝑥𝑥,𝑦𝑦)𝑁𝑁−1

𝑦𝑦=0

cos�(2𝑥𝑥 + 1)𝑢𝑢𝑢𝑢

2𝑁𝑁� cos�

(2𝑦𝑦 + 1)𝑣𝑣𝑢𝑢2𝑁𝑁

� 𝑁𝑁−1

𝑥𝑥=0

,

gdje je f(x, y) vrijednost piksela na poziciji (x, y) u bloku, F(U, V) je odgovarajući koeficijent transformacije, i gdje važi da je 0 ≤ u, v, x, y ≤ N-1, i

𝐶𝐶(𝑢𝑢) = 𝐶𝐶(𝑣𝑣) =

⎩⎪⎨

⎪⎧

�1𝑁𝑁

𝑢𝑢, 𝑣𝑣 = 0,

�2𝑁𝑁

𝑑𝑑𝑟𝑟𝑢𝑢𝑑𝑑𝑑𝑑𝑗𝑗𝑑𝑑.

DCT transformacija se može predstaviti i u matričnom obliku kao:

𝑌𝑌 = 𝐴𝐴𝐴𝐴𝐴𝐴𝑇𝑇 = �

𝑎𝑎 𝑎𝑎 𝑎𝑎 𝑎𝑎𝑏𝑏 𝑐𝑐 −𝑐𝑐 −𝑏𝑏𝑎𝑎 −𝑎𝑎 −𝑎𝑎 𝑎𝑎𝑐𝑐 −𝑏𝑏 𝑏𝑏 −𝑐𝑐

� �

𝑥𝑥00 𝑥𝑥01 𝑥𝑥02 𝑥𝑥03𝑥𝑥10 𝑥𝑥11 𝑥𝑥12 𝑥𝑥13𝑥𝑥20 𝑥𝑥21 𝑥𝑥22 𝑥𝑥23𝑥𝑥30 𝑥𝑥31 𝑥𝑥32 𝑥𝑥33

� �

𝑎𝑎 𝑏𝑏 𝑎𝑎 𝑐𝑐𝑎𝑎 𝑐𝑐 −𝑎𝑎 −𝑏𝑏𝑎𝑎 −𝑐𝑐 −𝑎𝑎 𝑏𝑏𝑎𝑎 −𝑏𝑏 𝑎𝑎 −𝑐𝑐

� ,

gdje je

𝑎𝑎 =12

, 𝑏𝑏 = �12

cos �𝑢𝑢8� = 0,653 … , 𝑐𝑐 = �1

2cos �

3𝑢𝑢8 � = 0,382 …

Množenje matrica može biti faktorizovano u slijedeću formu:

𝑌𝑌 = (𝐶𝐶𝐴𝐴𝐶𝐶𝑇𝑇)⨂𝐸𝐸

= ��

1 1 1 11 𝑑𝑑 −𝑑𝑑 −11 −1 −1 1𝑑𝑑 −1 1 −𝑑𝑑

� [𝐴𝐴] �

1 1 1 𝑑𝑑1 𝑑𝑑 −1 −11 −𝑑𝑑 −1 11 −1 1 −𝑑𝑑

��⨂�𝑎𝑎2 𝑎𝑎𝑏𝑏 𝑎𝑎2 𝑎𝑎𝑏𝑏𝑎𝑎𝑏𝑏 𝑏𝑏2 𝑎𝑎𝑏𝑏 𝑏𝑏2

𝑎𝑎2 𝑎𝑎𝑏𝑏 𝑎𝑎2 𝑎𝑎𝑏𝑏𝑎𝑎𝑏𝑏 𝑏𝑏2 𝑎𝑎𝑏𝑏 𝑏𝑏2

� ,

CXCT predstavlja srž transformacije. E je matrica skalirajućih faktora, a predstavlja skalarno množenje. Vrijednost broja d je c/b, odnosno 0,414... Da bi se uprostila implementacija transformacije vrijednost d je zaokružena na 0,5. Da bi transformacija ostala ortogonalna vrijednost broja b se mijenja na √(2/5). Drugi i četvrti red matrice C, kao i druga i četvrta kolona matrice CT su skalirane faktorom 2. Matrica E je također skalirana da kompenzira ove promjene. Ovim se izbjegava množenje jednom polovinom u srži transformacije, koje može izazvati gubitke u tačnosti kad se koristi aritmetika cijelih brojeva. Konačni oblik transformacije je:

𝑌𝑌 = �𝐶𝐶𝑓𝑓𝐴𝐴𝐶𝐶𝑓𝑓𝑇𝑇�⨂𝐸𝐸𝑓𝑓

= ��

1 1 1 12 1 −1 −21 −1 −1 11 −2 2 −1

� [𝐴𝐴] �

1 2 1 11 1 −1 −21 −1 −1 21 −2 1 −1

��⨂

⎣⎢⎢⎢⎡ 𝑎𝑎

2 𝑎𝑎𝑏𝑏/2 𝑎𝑎2 𝑎𝑎𝑏𝑏/2𝑎𝑎𝑏𝑏/2 𝑏𝑏2/4 𝑎𝑎𝑏𝑏/2 𝑏𝑏2/4𝑎𝑎2 𝑎𝑎𝑏𝑏/2 𝑎𝑎2 𝑎𝑎𝑏𝑏/2𝑎𝑎𝑏𝑏/2 𝑏𝑏2/4 𝑎𝑎𝑏𝑏/2 𝑏𝑏2/4⎦

⎥⎥⎥⎤ ,

Inverzna transformacija je data formulom:

𝑌𝑌 = 𝐶𝐶𝑖𝑖𝑇𝑇(𝑌𝑌 ⊗ 𝐸𝐸𝑖𝑖)𝐶𝐶𝑖𝑖 ,

Page 55: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

MPEG-4, AVC/H.264 i VC-1 standardi video kodovanja 54

gdje su vrijednosti matrica Ci i Ei :

𝐶𝐶𝑖𝑖 =

⎣⎢⎢⎢⎢⎡1 1 1 1

112

−12

−11 −1 −1 112

−1 1 −12⎦⎥⎥⎥⎥⎤

, 𝐸𝐸𝑖𝑖 = �𝑎𝑎2 𝑎𝑎𝑏𝑏 𝑎𝑎2 𝑎𝑎𝑏𝑏𝑎𝑎𝑏𝑏 𝑏𝑏2 𝑎𝑎𝑏𝑏 𝑏𝑏2

𝑎𝑎2 𝑎𝑎𝑏𝑏 𝑎𝑎2 𝑎𝑎𝑏𝑏𝑎𝑎𝑏𝑏 𝑏𝑏2 𝑎𝑎𝑏𝑏 𝑏𝑏2

Direktna i inverzna transformacija su ortogonalne, odnosno važi da je T-1(T(X))=T. Proces kvantizacije u AVC/H.264 koderu i dekoderu je zakomplikovan zahtjevima da se izbjegne dijeljenje i/ili aritmetika sa pokretnim zarezom, i da se ugrade skalirajuće matrice Ef i Ei. Osnovni kvantizer unaprijed je dat formulom:

𝑍𝑍𝑖𝑖𝑗𝑗 = 𝑟𝑟𝑟𝑟𝑢𝑢𝑟𝑟𝑑𝑑 �𝑌𝑌𝑖𝑖𝑗𝑗

𝑄𝑄𝑠𝑠𝑄𝑄𝑑𝑑𝑝𝑝�,

gdje operacija round znači zaokruživanje na cjelobrojnu vrijednost, ali ne neophodno na najbliži cijeli broj. Qstep, vrijednost koraka kvantizacije, uzima jednu od 52 moguće vrijednosti. Ove vrijednosti su označene kao kvantizacioni parametar (QP – Quantisation Parameter) brojevima od 0 do 51. Za svako povećanje QP-a za 6 vrijednost Qstep-a raste duplo (tabela 7). Tabela 7 Vrijednosti koraka kvantizacije u AVC/H.264 kodeku

QP 0 1 2 3 4 5 6 7 8 9 10 11 12 ...

Qstep 0.625 0.6875 0.8125 0.875 1 1.125 1.25 1.375 1.625 1.75 2 2.25 2.5

QP ... 18 ... 24 ... 30 ... 36 ... 42 ... 48 ... 51

Qstep 5 10 20 40 80 160 224

Vrijednost Zij se može napisati i kao:

𝑍𝑍𝑖𝑖𝑗𝑗 = 𝑟𝑟𝑟𝑟𝑢𝑢𝑟𝑟𝑑𝑑 �𝑊𝑊𝑖𝑖𝑗𝑗𝐹𝐹𝐹𝐹𝑖𝑖𝑗𝑗𝑄𝑄𝑠𝑠𝑄𝑄𝑑𝑑𝑝𝑝�

,

gdje su Wij članovi matrice W=CXCT, a FSij faktor skaliranja koji uzima vrijednosti matrice Ef na odgovrajućim pozicijama. FSij može imati vrijednosti a2, b2/4 i ab/2. Zbog pojednostavljene aritmetike faktor FSij/Qstep se izračunava pomoću množenja sa faktorom MF i pomjeranjem udesno u registru:

𝑍𝑍𝑖𝑖𝑗𝑗 = 𝑟𝑟𝑟𝑟𝑢𝑢𝑟𝑟𝑑𝑑 �𝑊𝑊𝑖𝑖𝑗𝑗𝑀𝑀𝐹𝐹

2𝑞𝑞𝑏𝑏𝑖𝑖𝑄𝑄𝑠𝑠 �,

𝑠𝑠𝑖𝑖𝑑𝑑𝑟𝑟�𝑍𝑍𝑖𝑖𝑗𝑗 � = 𝑠𝑠𝑖𝑖𝑑𝑑𝑟𝑟(𝑊𝑊𝑖𝑖𝑗𝑗 )

gdje je 𝑀𝑀𝐹𝐹

2𝑞𝑞𝑏𝑏𝑖𝑖𝑄𝑄𝑠𝑠=

𝐹𝐹𝐹𝐹𝑖𝑖𝑗𝑗𝑄𝑄𝑠𝑠𝑄𝑄𝑑𝑑𝑝𝑝

, 𝑖𝑖 𝑞𝑞𝑏𝑏𝑖𝑖𝑄𝑄𝑠𝑠 = 15 + 𝑓𝑓𝑓𝑓𝑟𝑟𝑟𝑟𝑟𝑟 �𝑄𝑄𝑝𝑝6 �

Funkcija floor označava zaokruživanje na cijeli broj manji ili jednak argumentu. Izračunavanje vrijednosti Zij se vrši na slijedeći način:

�𝑍𝑍𝑖𝑖𝑗𝑗 � = ��𝑊𝑊𝑖𝑖𝑗𝑗 �𝑀𝑀𝐹𝐹 + 𝑓𝑓� ≫ 𝑞𝑞𝑏𝑏𝑖𝑖𝑄𝑄𝑠𝑠,

gdje >> označava binarni pomjeraj udesno. U referntnom softveru vrijednost f je jednaka 2qbits/3 za intra blokove i 2qbits/6 za inter blokove.

Vrijednosti faktora množenja MF, za vrijednosti QP od 0 do 5 su date u tabeli 8. Za vrijednosti QP>5 vrijednost QP ostaje nepromijenjena, ali se vrijednost 2qbits mijenja.

Page 56: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

3. AVC/H.264 55

Tabela 8 Vrijednosti faktora MF

QP Pozicije (0,0), (2,0), (2,2), (0,2)

Pozicije (1,1), (1,3), (3,1), (3,3) Ostale pozicije

0 13107 5243 8066 1 11916 4660 7490 2 10082 4194 6554 3 9362 3647 5825 4 8192 3355 5243 5 7282 2893 4559

Inverzni kvantizer radi po formuli:

𝑌𝑌𝑖𝑖𝑗𝑗′ = 𝑍𝑍𝑖𝑖𝑗𝑗 𝑄𝑄𝑠𝑠𝑄𝑄𝑑𝑑𝑝𝑝 Faktor skaliranja FSij izveden iz matrice Ei se koristi zajedno sa faktorom 64, kojim se izbjegavaju greške zaokruživanja, na sljedeći način:

𝑊𝑊𝑖𝑖𝑗𝑗′ = 𝑍𝑍𝑖𝑖𝑗𝑗 𝑄𝑄𝑠𝑠𝑄𝑄𝑑𝑑𝑝𝑝 ⋅ 𝐹𝐹𝐹𝐹𝑖𝑖𝑗𝑗 ⋅ 64

W’ij se podvrgava inverznoj tansformaciji CTiWCi. Vrijednosti dobijene inverznom

transformacijom se dijele brojem 64 da se ukloni faktor iste vrijednosti. AVC/H.264 standard ne definiše Qstep ili PF direktno. Umjesto toga definiše se faktor V=Qstep⋅PF⋅64 za 0≤QP≤5 za svaku poziciju koeficijenata, te operacija skaliranja poprima oblik:

𝑊𝑊𝑖𝑖𝑗𝑗′ = 𝑍𝑍𝑖𝑖𝑗𝑗 𝑀𝑀𝑖𝑖𝑗𝑗 2𝑓𝑓𝑓𝑓𝑟𝑟𝑟𝑟𝑟𝑟 (𝑄𝑄𝑄𝑄/6)

Vrijednosti faktora V su date u tabeli 9. Tabela 9 Vrijednosti faktora skaliranja V

QP Pozicije (0,0), (2,0), (2,2), (0,2)

Pozicije (1,1), (1,3), (3,1), (3,3) Ostale pozicije

0 10 16 13 1 11 18 14 2 13 20 16 3 14 23 18 4 16 25 20 5 18 29 23

3.5.2 Transformacija i kvantizacija 8x8 blokova ostataka predikcije Ova transformacija ima dvostruko veću imunost na greške kvantizacije u poređenju sa 4x4 transformacijom. Matrice transformacije imaju slijedeći oblik:

𝐶𝐶𝑓𝑓 =

⎣⎢⎢⎢⎢⎢⎢⎡

8 8 8 8 8 8 8 812 10 6 3 −3 −6 −10 −128 4 −4 −8 −8 −4 4 8

10 −3 −12 −6 6 12 3 −108 −8 −8 8 8 −8 −8 86 −12 3 10 −10 −3 12 −64 −8 8 −4 −4 8 −8 43 −6 10 −12 12 −10 6 −3 ⎦

⎥⎥⎥⎥⎥⎥⎤

∙ 1/8

Page 57: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

MPEG-4, AVC/H.264 i VC-1 standardi video kodovanja 56

Ci =

⎣⎢⎢⎢⎢⎢⎢⎡8 12 8 10 8 6 4 38 10 4 −3 −8 −12 −8 −68 6 −4 −12 −8 3 8 108 3 −8 −6 8 10 −4 −128 −3 −8 6 8 −10 −4 128 −6 −4 12 −8 −3 8 −108 −10 4 3 −8 12 −8 68 −12 8 −10 8 −6 4 −3 ⎦

⎥⎥⎥⎥⎥⎥⎤

∙ 1/8

Proces kvantizacije se obavlja po slijedećem:

�𝑍𝑍𝐷𝐷(𝑖𝑖 ,𝑗𝑗 )� = ��𝑌𝑌𝐷𝐷(𝑖𝑖 ,𝑗𝑗 )�𝑀𝑀𝐹𝐹 + 2𝑓𝑓� ≫ (𝑞𝑞𝑏𝑏𝑖𝑖𝑄𝑄𝑠𝑠 + 1),

𝑠𝑠𝑖𝑖𝑑𝑑𝑟𝑟�𝑍𝑍𝐷𝐷(𝑖𝑖 ,𝑗𝑗 )� = 𝑠𝑠𝑖𝑖𝑑𝑑𝑟𝑟(𝑌𝑌𝐷𝐷(𝑖𝑖 ,𝑗𝑗 ))

3.5.3 Transformacija i kvantizacija 4x4 luma DC koeficijenata Ova transformacija se koristi kada je makroblok kodovan u 16x16 modu intra predikcije. Svaki 4x4 blok iz makrobloka se transformiše na način opisan u odjeljku 3.5.1. Zatim se svaki DC koeficijent pojedinačnih 4x4 blokova transformiše upotrebom 4x4 Hadamardove transformacije:

𝑌𝑌𝐷𝐷 = �

1 1 1 11 1 −1 −11 −1 −1 11 −1 1 −1

� [𝑊𝑊𝐷𝐷] �

1 1 1 11 1 −1 −11 −1 −1 11 −1 1 −1

� /2

WD je blok 4x4 DC koeficijenata, a YD je blok nakon transformacije. Izlazni koeficijenti YD(i,j) se kvantizuju da bi se dobio blok kvantizovanih DC koeficijenata:

�𝑍𝑍𝐷𝐷(𝑖𝑖 ,𝑗𝑗 )� = ��𝑌𝑌𝐷𝐷(𝑖𝑖 ,𝑗𝑗 )�𝑀𝑀𝐹𝐹(0,0) + 2𝑓𝑓� ≫ (𝑞𝑞𝑏𝑏𝑖𝑖𝑄𝑄𝑠𝑠 + 1),

𝑠𝑠𝑖𝑖𝑑𝑑𝑟𝑟�𝑍𝑍𝐷𝐷(𝑖𝑖 ,𝑗𝑗 )� = 𝑠𝑠𝑖𝑖𝑑𝑑𝑟𝑟(𝑌𝑌𝐷𝐷(𝑖𝑖 ,𝑗𝑗 ))

MF(0,0) je faktor množenja na poziciji (0,0) iz tabele 8. Na strani dekodera se primjenjuje inverzna Hadamardova transformacija, koju slijedi skaliranje:

𝑊𝑊𝑄𝑄𝐷𝐷 = �

1 1 1 11 1 −1 −11 −1 −1 11 −1 1 −1

� [𝑍𝑍𝐷𝐷] �

1 1 1 11 1 −1 −11 −1 −1 11 −1 1 −1

Skaliranje u dekoderu se izvodi po sljedećem:

�𝑊𝑊𝐷𝐷(𝑖𝑖 ,𝑗𝑗 )′ � = 𝑊𝑊𝑄𝑄𝐷𝐷(𝑖𝑖 ,𝑗𝑗 )𝑀𝑀(0,0)2𝑓𝑓𝑓𝑓𝑟𝑟𝑟𝑟𝑟𝑟 �

𝑄𝑄𝑄𝑄6 �−2 (𝑄𝑄𝑄𝑄 ≥ 12),

�𝑊𝑊𝐷𝐷(𝑖𝑖 ,𝑗𝑗 )′ � = �𝑊𝑊𝑄𝑄𝐷𝐷(𝑖𝑖 ,𝑗𝑗 )𝑀𝑀(0,0)+21−𝑓𝑓𝑓𝑓𝑟𝑟𝑟𝑟𝑟𝑟 �𝑄𝑄𝑄𝑄6 �� ≫ (2 − 𝑓𝑓𝑓𝑓𝑟𝑟𝑟𝑟𝑟𝑟(𝑄𝑄𝑄𝑄/6)) (𝑄𝑄𝑄𝑄 < 12)

V(0,0) je vrijednost faktora skaliranja V na poziciji (0,0) iz tabele 9.

3.5.4 Transformacija i kvantizacija 2x2 hroma DC koeficijenata Svaki 4x4 blok hroma komponenti se transformiše kako je opisano u odjeljku 3.5.1. DC koeficijenti svakog 4x4 hroma bloka se grupišu u 2x2 blokove (WD) i transformišu se prije kvantizacije:

Page 58: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

3. AVC/H.264 57

𝑌𝑌𝐷𝐷 = �1 11 −1� [𝑊𝑊𝐷𝐷] �1 1

1 −1� Kvantizacija izlaznog 2x2 bloka YD se izvodi kao:

�𝑍𝑍𝐷𝐷(𝑖𝑖 ,𝑗𝑗 )� = ��𝑌𝑌𝐷𝐷(𝑖𝑖 ,𝑗𝑗 )�𝑀𝑀𝐹𝐹(0,0) + 2𝑓𝑓� ≫ (𝑞𝑞𝑏𝑏𝑖𝑖𝑄𝑄𝑠𝑠 + 1),

𝑠𝑠𝑖𝑖𝑑𝑑𝑟𝑟�𝑍𝑍𝐷𝐷(𝑖𝑖 ,𝑗𝑗 )� = 𝑠𝑠𝑖𝑖𝑑𝑑𝑟𝑟(𝑌𝑌𝐷𝐷(𝑖𝑖 ,𝑗𝑗 ))

U dekodovanju, inverzna transformacija se primjenjuje prije skaliranja:

𝑊𝑊𝑄𝑄𝐷𝐷 = �1 11 −1� [𝑍𝑍𝐷𝐷] �1 1

1 −1�

Skaliranje je definisano kao:

�𝑊𝑊𝐷𝐷(𝑖𝑖 ,𝑗𝑗 )′ � = 𝑊𝑊𝑄𝑄𝐷𝐷(𝑖𝑖 ,𝑗𝑗 )𝑀𝑀(0,0)2𝑓𝑓𝑓𝑓𝑟𝑟𝑟𝑟𝑟𝑟 �

𝑄𝑄𝑄𝑄6 �−1 (𝑄𝑄𝑄𝑄 ≥ 6),

�𝑊𝑊𝐷𝐷(𝑖𝑖 ,𝑗𝑗 )

′ � = �𝑊𝑊𝑄𝑄𝐷𝐷(𝑖𝑖 ,𝑗𝑗 )𝑀𝑀(0,0)� ≫ 1 (𝑄𝑄𝑄𝑄 < 6) 3.6 Entropijsko kodovanje AVC/H.264 standard uključuje tri različita tipa kodovanja bez gubitaka – eksponencijalni Golombov kod (Exp-Golomb), CAVLC (Context Adaptive VLC) i CABAC (Context Adaptive Binary Arithmetic Coding). Exp-Golomb kodovanje se koristi za elemente sintakse koji ne zauzimaju veliki broj bita, npr. hroma format, bitska dubina, broj referentnih okvira itd. Kvantizovani koeficijenti transformacije se koduju CAVLC ili CABAC kodom. Oba ova koda koriste činjenicu da video signal nije stacionaran, i da postoje varijacije u vjerovatnoćama pojedinih elemenata, od sekvence do sekvence.

3.6.1 Eksponencijalno Golombovo kodovanje Eksponencijalni Golombov kod je kod promjenljive dužine pravilne konstrukcije. Kodna riječ se sastoji od sljedeće forme:

[M nula][1][Informacija]

Informacija je polje dužine M bita koje nosi informaciju. Dužina svake kodne riječi je (2M+1) bita, i svaka riječ se u koderu može konstruisati na osnovu indeksa kodni_broj:

M=floor(log2[kodni_broj+1])

Informacija=kodni_broj+1-2M

Primjeri kodnih riječi su date u tabeli 10. Tabela 10 Exp-Golomb kodne riječi kodni_broj kodna riječ

0 1 1 010 2 011 3 00100 4 00101 5 00110 6 00111 7 0001000 8 0001001 ... ...

Page 59: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

MPEG-4, AVC/H.264 i VC-1 standardi video kodovanja 58

Kodna riječ se dekoduje po slijedećem: • pročitaj M vodećih nula prije bita vrijednosti 1, • pročitaj M-bitno polje Informacija, • kodni_broj=2M+Informacija-1

Parametar k koji se treba kodirati, se mapira u kodni_broj na jedan od načina prikazanim u tabeli 11. Tabela 11 Mapiranje parametra k u kodni_broj

Tip mapiranja Opis

ue Neoznačeno direktno mapiranje (unsigned) – kodni_broj=k. Koristi se za tip makrobloka, indeks referentnog okvira i drugo.

te Verzija koda u kojoj su kratke kodne riječi skraćene (truncated).

se

Označeno mapiranje (signed) – koristi se razliku između MV-a, delta QP i drugo. k se mapira u kodni_broj po slijedećem: kodni_broj=2|k|, k≤0, kodni_broj=2|k|-1, k>0.

me Mapirani simboli (mapped) – parametar k se mapira u kodni_broj na osnovu tabele određene u standardu.

Sva četiri tipa mapiranja su napravljena da proizvedu kraće kodne riječi za vrijednosti koje se češće javljaju, i duže kodne riječi za vrijednosti koje se javljaju rjeđe.

3.6.2 CAVLC kodovanje Prilagodljivo VLC kodovanje zasnovano na sadržaju (Context-Based Adaptive Variable Length Coding – CAVLC) u AVC/H.264 standardu koristi 32 VLC koda, od kojih su većina tabele, a neki dopuštaju jednostavno generisanje u hodu bez potrebe za skladištenjem u tabele. CAVLC kodovanje je prostije od CABAC kodovanja i predstavlja osnovni metod kodovanja u AVC/H.264 standardu. Zavisno od istorije prethodno prenesenih simbola, CAVLC šema prelazi sa jedne VLC tabele na drugu, za različite komponente sintaksi. Osnovi kod za VLC tabele je eksponencijalni Golombov kod. CAVLC se koristi za kodovanje ostataka predikcije, cik-cak poredane 4x4 i 2x2 blokove koeficijenata transformacije. CAVLC koristi nekoliko karakteristika kvantizovanih 4x4 blokova:

• poslije transformacije i kvantizacije, blokovi su raštrkani (sadrže uglavnom nule). CAVLC koristi kodovanje dužine nizova da predstavi niz nula kompaktno,

• najveći nenulti koeficijenti nakon cik-cak skeniranja su često sekvence brojeva ±1. CAVLC prikazuje broj visokofrekventnih ±1 koeficijenata u kompaktnom obliku,

• brojevi nenultnih keficijenata u susjednim blokovima su korelisani. Broj koeficijenata su kodovani pretraživanjem tabela, a izbor tabele zavisi od broja nenultih koeficijenata u susjednim blokovima,

• Veličina nenultih koeficijenata teži da bude veća na početku ispremještanog niza (blizu DC koeficijenta), i niža prema visokim frekvencijama. CAVLC bira tabelu za veličine na osnovu skoro kodovanih veličina koeficijenata.

CAVLC kodovanje se provodi po sljedećim koracima: • kodovanje broja koeficijenata i jedinica (±1), • kodovanje znaka svake jedinice, • kodovanje nivoa preostalih nenultih koeficijenata, • kodovanje ukupnog broja nula prije posljedenjeg koeficijenta, • kodovanje svakog niza nultih koeficijenata.

Page 60: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

3. AVC/H.264 59

CAVLC je efikasna metoda entropijskog kodovanja. Pruža 2 do 7% veću kodnu efikasnost u odnosu na šeme sa jednom VLC Exp-Golomb tabelom. Ali, CAVLC ne pruža potpuno prilagođenje statistici sadržaja, što mu ograničava učinak. Za simbole čija je vjerovatnoća iznad 0,5, a koji zahtijevaju veliku bitsku preciznost pri kodovanju, efikasno kodovanje CAVLC kodom nije moguće, jer CAVLC pruža tačnost od 1 bita po simbolu.

3.6.3 CABAC kodovanje Prilagodljivo binarno aritmetičko kodovanje bazirano na sadržaju (Context-based Adaptive Binary Arithmetic Coding – CABAC) postiže 10 do 15% veću kodnu efikasnost u odnosu na CAVLC kodovanje, na račun veće kompleksnosti algoritma. CABAC postiže bolje performanse zahvaljući slijedećim elementima:

• biranje modela vjerovatnoće za svaki element sintakse zavisno od sadržaja elementa, • prilagođavanje procjene vjerovatnoće na osnovu lokalne statistike, • korištenje aritmetičkog kodera, a ne VLC kodera, čime se postiže veća bitska tačnost

kodovanja.

Kodovanje simbola se provodi kroz sljedeće tačke:

• Binarizacija – CABAC koristi binarni aritmetički kod, što znači da se koduju samo binarne vrijednosti. Nebinarni simboli se prevode u binarni niz prije aritmetičkog kodovanja. Ovo sliči VLC kodovanju, ali se ovakav binarni kod dalje koduje aritmetičkim koderom, prije prenosa.

• Biranje modela sadržaja – Model sadržaja je model vjerovatnoće za jednu ili više binarnih vrijednosti binarizovanog simbola. Zavisno od statistike skoro kodovanih simbola bira se jedan od skoro 400 modela sadržaja za tekuću grupu.

• Aritmetičko kodovanje – Aritmetički koder koduje svaku binarnu vrijednost zavisno od odabranog modela sadržaja.

• Obnavljanje vjerovatnoća – Izabrani model sadržaja se osvježava na osnovu stvarnih kodovanih vrijednosti.

Tačke 2 do 4 navedenog postupka se ponavljaju za svaku binarnu vrijednost binarizovanog simbola.

3.7 Filter protiv blokovskih ostataka Jedna od posljedica kodovanja baziranog na blokovima piksela je moguća promjena u intenzitetu na granicama između kodovanih blokova. Ove vidljive promjene se nazivaju blokovskim ostacima (blocking artifacts). Najznačajniji blokovski ostaci u AVC/H.264 sistemu video kodovanja nastaju zbog 4x4 transformacije cijelih brojeva, ostataka intra i inter predikcije, koji su kvantizovani. Mada je šum na ivicama blokova kod AVC/H.264 standarda znatno niži u odnosu na prethodne, zahvaljujući fleksibilnoj veličini blokova, pri većem stepenu kompresije ovi ostaci postaju vidljivi. Da bi se smanjio uticaj ove vrste šuma, AVC/H.264 standard propisuje filter protiv blokovskih ostataka (In-Loop Deblocking Filter) koji je ugrađen u petlju kodiranja i to u koderu – poslije inverzne transformacije, a prije rekonstruisanja i skladištenja bloka za narednu predikciju, te u dekoderu – prije rekonstruisanja i prikazivanja. Filter protiv blokovskih ostataka ima dvije uloge – prva je da izgladi ivice blokova i poboljša izgled dekodovane slike (slika 60), pogotovo pri većoj kompresiji; druga uloga je da smanji ostatke predikcije za MC predikciju u narednim okvirima u koderu. Prethodni standardi omogućuju opcionu upotrebu filtera protiv blokovskih ostataka, ali ne u petlji, već na kraju procesa dekodovanja.

Page 61: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

MPEG-4, AVC/H.264 i VC-1 standardi video kodovanja 60

Slijedi opis funkcionisanja filtera – koder može sam da bira jačinu filtera ili da ga čak isključi. Filter se primjenjuje na vertikalne i horizontalne ivice 4x4 bloka u makrobloku (osim za ivice na granicama isječaka) po slijedećem redoslijedu:

• filtriranje četiri vertikalne granice luma komponente (po redu a, b, c, d na slici 61 a)),

• filtriranje četiri horizontalne granice luma komponente (po redu e, f, g, h na slici 61 a)),

• filtriranje dvije vertikalne granice svake hroma komponente (po redu i, j na slici 61 a)),

• filtriranje dvije horizontalne granice svake hroma komponente (po redu k, l na slici 61 a)),

Slika 60 Dekodovani video okvir a) bez primjene filtera protiv blokovskih ostataka i b) uz primjenu filtera

Filtriranje obuhvata do tri odbirka sa svake strane granice. Slika 61 b) prikazuje po četiri odbirka na granici susjednih blokova p i q (p0, p1, p2, p3, q0, q1, q2 i q3). Intenzitet filtra zavisi od tekućeg kvantizera, kodnog moda susjednih blokova i gradijenta odbiraka slike preko granice. Rezultat filtriranja zavisi i od parametra nazvanog jačina granice (boundary strength – bS).

8x8 hroma MB

vertikalne ivice horizontalne ivice

a b c d

e

f

g

h

16x16 luma MB

i j

k

l

p3

p2 p1 p0 q0 q1 q2 q3

vertikalna granicap2

p1

p0

q0

q1

q2

q3

horizontalna granica

a)

b)

p3

Slika 61 a) Redoslijed filtriranja ivica i b) Odbirci uz vertikalne i horizontalne granice

Page 62: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

3. AVC/H.264 61

Vrijednost parametra bS se bira na osnovu slijedećih pravila (za progresivni video):

• p i/ili q su intrakodovani i granica je granica makrobloka – bS=4 (najjače filtriranje), • p i q su intrakodovani i granica nije granica makrobloka – bS=3, • ni p ni q nisu intrakodovani; p i q sadrže kodovane koeficijente – bS=2, • ni p ni q nisu intrakodovani; ni p ni q ne sadrže kodovane koeficijente; p i q koriste

različite referentne slike ili drugačiji broj referentnih slika ili imaju vrijednosti MV-a koje se razlikuju za jedan ili više luma odbiraka – bS=1,

• u ostalim slučajevima – bS=0 (nema filtriranja).

Zahvaljujući ovim pravilima, jači filter se primjenjuje na mjestima gdje je jača blokovska distorzija vjerovatnija. Grupa odbiraka iz niza (p2, p1, p0, q0, q1, q2) se filtrira samo ako je ispunjeno:

bS˃0 i |p0-q0|˂α i |p1-p0|˂β i |q1-q0|≤β.

α i β su pragovi definisani standardom, i rastu sa prosjekom parametara QP, blokova q i p.

3.8 Otpornost na greške U AVC/H.264 standardu za povećanje otpornosti na greške se koristi nekoliko alata. Promjenljiva veličina isječaka slike omogućuje koderu da se izborom odgovarajuće veličine prilagodi uslovima prenosa. Prilagodljivo redanje blokova (Flexible Macroblock Ordering – FMO) omogućuje podjelu makroblokova u isječke na prilagodljiv način. Pošto se svaki isječak koduje nezavisno, FMO može značajno da poveća otpornost na greške upravljajući prostornim odnosima MB-ova u isječku, odnosno grupama isječaka (slike 44 i 45 ). Struktura NALU (NAL Unit) sintakse omogućuje prenos podataka koji je najoptimalniji za datu mrežu. Proizvoljno redanje isječaka (Arbitrary Slice Ordering – ASO) podrazumjeva da se isječci mogu pojaviti u bitskom toku bilo kojim redom. ASO smanjuje probleme sa promjenljivim kašnjenjem s kraja na kraj veze kod aplikacija u realnom vremenu, posebno u aplikacijama koje koriste Internet protokol. Tehnika višak isječaka (Redundant Slices), kako samo ime kaže, omogućuje da se isti isječak pošalje više puta, tako da prijemnik može da izabere onaj sa najmanjom greškom.

3.9 AVC/H.264 profili i nivoi

3.9.1 Profili Profil definiše podskup standardizovanih alata i algoritama za kodovanje bitskog toka odgovarajućih osobina. Za aplikacije prosječnih korisnika koristi se 4:2:0 hroma format. Postoji niz profila namjenjenih prije svega profesionalnoj upotrebi. Takvi su High 10, High 4:2:2, i High 4:4:4 Predictive te Intra profili. Profili su opisani u slijedećim redovima, a tabela 12 sumira karakteristike nekih definisanih profila. Osnovni (baseline) profil je pojednostavljen profil koji izostavlja mnoge procesorski zahtjevnije elemente standarda kao što su: B-slike, CABAC, kodovanje slika sa proredom, 8x8 blokovi itd. Ovaj profil zahtjeva više bita u odnosu na više profile, za isti kvalitet slike, ali radi na jeftinim procesorima male potrošnje kakvi se koriste kod prenosnih multimedijalnih plejera. Podvrsta osnovnog profila je ograničeni osnovni profil (Constrained baseline). U ovom profilu su isključeni alati za otpornost na greške. Ovaj

Page 63: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

MPEG-4, AVC/H.264 i VC-1 standardi video kodovanja 62

podprofil se koristi u uređajima koji, pored njega, mogu dekodovati i više profile, a greške u prenosnoj sredini su male (dekoderi u risiverima i TV uređajima). Prošireni (Extended) profil cilja aplikacije sa tokom video podataka (streaming) gdje su alati za otpornost za greške najpotrebniji. Koristi SI i SP isječke, B slike i kodovanje videa sa proredom, ali ne i CABAC. Bez obzira na svrhu, ovaj profil je rijetko ugrađen u kodere i dekodere. Glavni (main) profil je planiran kao osnovni profil za široku upotrebu. Podržava sve korisne alate sem 8x8 blokova. Pošto su greške nakon FEC (Forward Error Correction) zaštite male, ovaj profil isključuje alate za otpornost na greške. Ali zbog male promjene u procesorskoj zahtjevnosti pri upotrebi 8x8 blokova, svi današnji koderi/dekoderi koji koriste glavni profil, koriste i visoki profil također. Visoki (high) profil dodaje tri bitna alata glavnom profilu: podršku za 8x8 blokove, podršku crnobijelom videu (samo luma komponenta) i prilagodljive tabele za kvantizaciju. Ovaj profil pruža najveću kodnu efikasnost i fleksibilnost za 4:2:0 format. U odnosu na glavni profil omogućuje oko 10% bolju kodnu efikasnost pri kodovanju 720p videa. Visoki 10 (High 10) profil dozvoljava upotrebu 10-bitnih boja u 4:2:0 sistemu. Namjenjen je za upotrebu u elektronskim bioskopima, za studijsku upotrebu i prenos nekompresovanog videa u sistemima TV obrade. Jedini šire prihvaćen plejer koji dekoduje ovaj profil je Flash, ali ga dekoduje u 8-bitne boje. Visoki 4:2:2 (High 4:2:2) profil dodaje 4:2:2 odabiranje boja 10-bitnoj luma komponenti. Visoki 4:4:4 prediktivni (High 4:4:4 Predictive) profil, ili samo visoki 4:4:4 profil, omogujuće 14-bitno odabiranje luma i hroma komponenti u 4:4:4 sistemu odabiranja boja. Intra profili su razvijeni za rad u studijima i drugim okruženjima gdje je potrebno pristupiti svakoj slici ponaosob. Intra profili obuhvataju sljedeće: High 10 Intra, High 4:2:2 Intra, High 4:4:4 Intra i CAVLC 4:4:4 Intra.

Tabela 12 Neki AVC/H.264 profili

Podržana funkcionalnost Naziv profila

Baseline High Extended High 10 Intra

High 4:2:2 Intra

I isječci P isječci B isječci

SI i SP isječci Filter u petlji protiv blokova

CAVLC CABAC

Težinovana predikcija Slike sa proredom

MB-AFF* Višestruke grupe isječaka,

FMO

Arbitrary slice order (ASO) Redundant pictures (RP) Data partitioning (DP) Skalirajuće matrice za

kvantizaciju

8x8 transformacija 8x8 Intra predikcija

10-bitni odbirci 4:2:2 hroma odabiranje

*macroblock-adaptive field/frame coding

Page 64: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

4. VC-1 63

SVC (Scalable Video Coding) profili podržavaju vremensku i prostornu skalabilnost. Namjenjeni su prenosu u IP mrežama. Ovi profili obuhvataju: Scalable Baseline, Scalable High i Scalable High Intra.

3.9.2 Nivoi Unutar svakog profila, i granica kojeg on nameće, moguće je zahtijevati različitu procesnu snagu i količinu memorije u koderima i dekoderima. Ove varijacije zavise od slijedećih faktora: maksimalni bitski protok, veličina slike, broj frejmova po sekundi, veličina CPB (Coded Picture Buffer) i DPB (Decoded Picture Buffer) međumemorije i broj referentnih slika. Tabela 13 pokazuje definisane nivoe.

Tabela 13 AVC/H.264 nivoi

Broj nivoa

Max komprimovani

protok

Max MB-

ova po slici

Max protok

MB-ova (MB/s)

Tipična veličina slike i slika/s

Max CPB

veličina

Max kašnjenje pri

najvećem bit/s

Max DPB veličina (bajtovi)

Max broj referentnih slika

za tipičnu veličinu slike

1 64 kbps 99 1485

SQCIF (128 × 96) × 30fps

QCIF (176 × 144) × 15fps

175 kbit 2,7 s 152064 SQCIF: 8 QCIF: 4

1b 128 kbps 99 1485 QCIF (176 × 144) × 15fps 350 kbit 2,7 s 152064 QCIF: 4

1.1 192 kbps 396 3000 QCIF × 30fps 500 kbit 2,6 s 345000 QCIF: 9

1.2 384 kbps 396 6000 CIF (352 × 288) × 15fps 1 Mbit 2,6 s 912384 CIF: 6

1.3 768 kbps 396 11880 CIF × 30fps 2 Mbit 2,6 s 912384 CIF: 6 2 2 Mbps 396 11880 CIF × 30fps 2 Mbit 1 s 912384 CIF: 6

2.1 4 Mbps 792 19800

525 HHR (352 × 480) × 30fps

625 HHR (352 × 576) × 25fps

4 Mbit 1 s 1824768 525 HHR: 7 625 HHR: 6

2.2 4 Mbps 1620 20250

525 SD (720 × 480) × 15fps

625 SD (720 × 576) × 12.5fps

4 Mbit 1 s 3110400 525 SD: 6 625 SD: 5

3 10 Mbps 1620 40500

525 SD × 30fps 625 SD × 25fps

VGA (640 × 480) × 30fps

10 Mbit 1 s 3110400 525 SD: 6 625 SD: 5 VGA: 6

3.1 14 Mbps 3600 108000 720p HD (1280 × 720) × 30fps 14 Mbit 1 s 6912000 720p HD: 5

3.2 20 Mbps 5120 216000 720p HD × 60fps 20 Mbit 1 s 7864320 720p HD: 5

4 20 Mbps 8192 245760

720p HD × 60fps 1080 HD (1920 ×

1088) × 30fps 2k × 1k (2048 × 1024) × 30fps

25 Mbit 1,25 s 12582912 720p HD: 9 1080 HD: 4 2k × 1k: 4

4.1 50 Mbps 8192 245760 62,5 Mbit 1,25 s 12582912

720p HD: 9 1080 HD: 4 2k × 1k: 4

4.2 50 Mbps 8704 522240 1080 HD × 60fps 2k × 1k × 60fps

62,5 Mbit 1,25 s 13369344 1080 HD: 4

2k × 1k: 4

5 135 Mbps 22080 589824 2k × 1k × 72fps 135 Mbit 1 s 42393600 2k × 1k: 13

5.1 240 Mbps 36864 983040 2k × 1k × 120fps 4k × 2k (4096 × 2048) × 30fps

240 Mbit 1 s 70778880 2k × 1k:16

4k × 2k: 5

4. VC-1

4.1 Uvod u standard VC-1 standard video kodovanja je u osnovi isto što i WMV-9 (Windows Media Video 9) standard, ustvari predstavlja njegovu standardizovanu verziju od strane SMPTE (Society

Page 65: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

MPEG-4, AVC/H.264 i VC-1 standardi video kodovanja 64

of Motion Picture and Television Engineers) udruženja. Standard 421M je prvi put objavljen 2005. godine pod oznakom VC-1 (Video Codec 1), a sam proces standardizacije je završen 2006. godine. Razlog velike popularnosti ovog kodeka je to što predstavlja najbolji Majkrosoftov kodek, implementiran u Windows Media platformu njihovih operativnih sistema, koji su još uvijek najzastupljeniji na korisničkom hardveru. VC-1 kodek je projektovan sa ciljem da pruži veliku efikasnost i dobre dekoderske performanse na procesorima iz familije x86. Zbog toga, ako razmatramo kodeke sličnog kvaliteta, maksimalna složenost VC-1 kodera je otprilika polovina zahtjevane procesorske snage potrebne za AVC/H.264 High Profile koder. Za prenosne uređaje, VC-1 glavni (main) profil pruža bolje detalje nego H.264 osnovni (baseline) profil. Ali, kad poredimo AVC/H.264 High Profile i VC-1 Advanced Profile, ne uzimajući u obzir zahtjevanu procesorsku snagu, najbolji AVC/H.264 koder odnosi pobjedu nad najboljim VC-1 koderom. VC-1 je također stvaran sa filozofijom unapređenja starijih standarda u cilju povećanja efikasnosti kompresije, a istovremeno minimalno povećavajući komplesnost kodera. U odnosu na MPEG-2, VC-1 koder zahtijeva dvostruko više procesorske snage za isti kvalitet slike, koristeći dvostruko manje bita. Pored Windows Media platforme VC-1 kodek se koristi i u Smooth Streaming .ismv fajlovima (prenos videa u Microsoft Silverlight platformi) i HD DVD/Blu-ray optičkim diskovima.

4.2 VC-1 koder VC-1 koder u suštini ima istu blok šemu kao i AVC/H.264 koder, sem što u petlji, pored filtera protiv blokovskih ostataka, sadrži i OLT (Overlap Transform Smoothing) blok. OLT smanjuje efekat blokova tako da maksimalno rekonstruiše originalne podatke. Zasnovan je na direktnoj transformaciji u koderu i indirektnoj u dekoderu. Filter protiv blokova, sa druge strane, primjenjuje heuristički pristup jer blokovski uzorak posmatra kao visokofrekventni šum. Tipovi slika podržanih standardom su I, P, preskočene P, B i BI. U VC-1 standardu B slike ne mogu služiti kao referentne slike. Mogući broj uzastopnih B slika je sedam. Broj referentnih slika je ograničen na dva. I-slike ne moraju biti periodične već, kao i bilo koja P slika, služe kao referentna slika. U dužoj sceni bez promjena mogu postojati samo P slike kao referenca. BI-slike su skoro iste kao i I-slike. Ukoliko dođe do nagle promjene u sceni između dvije referentne slike, obična B slika ne bi bila u stanju da uhvati sličnosti između referentnih slika. Tada su BI slike pravi izbor za ovakvu situaciju jer su, kako i ime sugeriše, intra kodovane. Posljednji tip slike su preskočene P (Skipped P) slike. Ako ukupna dužina podataka koji obuhvataju kompresovani okvir iznosi 8 bita, ovaj tip signalizira da je okvir kodovan kao nekodovani P okvir u koderu.

isječak 1

isječak 2

isječak 3

isječak 0

Slika 62 VC-1 isječci

Page 66: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

4. VC-1 65

Tipovi isječaka su prostiji nego kod AVC/H.264 kodovanja. Svi isječci su pravougaonog oblika visine jedan ili više MB-ova, i isčitavaju se horizontalnim skeniranjem (slika 62). Svi isječci iz jedne vrste slike su istog tipa – I-slike sadrže samo I-isječke, B-slike samo B-isječeke (P-slike mogu da sadrže I-isječke).

4.3 Intra predikcija VC-1 koder koristi isti sistem DC/AC intra predikcije kao i MPEG-4 Part 2 koder (slika 7). DC predikcija je obavezna, dok je AC predikcija opciona. Zbog unapređenja kodne efikasnosti koristi se 8 različitih kodnih skupova za AC koeficijente. Četiri od njih označeni kao „intra“ se koriste za luma blokove, a četiri označena kao „inter“ se koriste za hroma blokove. Treba primjetiti da se intra predikcija kod VC-1 standarda odvija u frekvencijskom domenu (nad koeficijentima), dok se u H.264/AVC standardu intra predikcija odvija u prostornom domenu (nad odbircima, tj. pikselima).

4.4 Inter predikcija VC-1 standard kodovanja također koristi iste metode inter predikcije kao i prethodni standardi, odnosno ME i MC procese, uz određene specifičnosti opisane u narednim odjeljcima.

4.4.1 Prilagodljiva veličina bloka 16x16 luma MB može biti razložen na četiri 8x8 bloka radi efikasnije estimacije sa kompenzacijom pokreta (slika 63), čime se povećava efikasnost kompresije. VC-1 standard omogućuje da svaki od 8x8 blokova može biti intra kodovan (npr. pri pojavi novog objekta u sceni).

0

0 1

2 3

16x16 8x8

16

16

bilo koji 8x8 blok može biti intra kodovan (Y, Cb, Cr)

Slika 63 Odjeljci makrobloka u VC-1 standardu

4.4.2 Preciznost estimacije pokreta Osnovna jedinica za ME/MC proces je blok veličine 16x16 ili 8x8 piksela. Postoje četiri metode za MC, predstavljene u kombinaciji veličina MC bloka/preciznost estimacije/metod interpolacije:

• blok 16x16 (1 MV)/ 1/2 piksela/ bilinearna interpolacija, • blok 16x16 (1 MV)/ 1/2 piksela/ bikubna interpolacija, • blok 16x16 (1 MV)/ 1/4 piksela/ bikubna interpolacija, • blok 8x8 (4 MV)/ 1/4 piksela/ bikubna interpolacija,

Postoje dvije vrste interpolacije u VC-1 standardu – bilinearna i bikubna. Kod bilinearne transformacije redoslijed filtriranja nije bitan, a kod bikubne transformacija se prvo obavlja vertikalno, zatim horizontalno. Bilinearna transformacija se računa po slijedećoj formuli (slika 64):

a=(A+B)/2, c=(A+B+C+D)/4

Page 67: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

MPEG-4, AVC/H.264 i VC-1 standardi video kodovanja 66

A a B

b c

C D

položaj cijelobrojnog pikslela

položaj polovine piksela

d

e

Slika 64 Interpolacija 1/2 položaja luma odbiraka bilinearnom transformacijom

Bikubna transformacija se računa po slijedećem (slika 65):

dd = (−4A + 53D +18H − 3K + 32 − r) >> 6 , ii = (−A + 9D + 9H − K + 8 − r) >> 4 ,

nn = (−3A +18D + 53H − 4K + 32 − r) >> 6, hh = (−4B + 53E +18I − 3L + 32 − r) >> 6,

mm = (−B + 9E + 9I − L + 8 − r) >> 4 , rr = (−3B +18E + 53I − 4L + 32 − r) >> 6 ,

M = (−4S + 53C +18G − 3U + 32 − r) >> 6 , O = (−S + 9C + 9G −U + 8 − r) >> 4 ,

Q = (−3S +18C + 53G − 4U + 32 − r) >> 6 , N = (−4T + 53F +18J − 3V + 32 − r) >> 6 ,

P = (−T + 9F + 9J −V + 8 − r) >> 4 , R = (−3T + 18F + 53J − 4V + 32 − r) >> 6 ,

a = (−4C + 53D + 18E − 3F + 32 − r) >> 6 , (6-7) b = (−C + 9D + 9E − F + 8 − r) >> 4 ,

c = (−3C +18D + 53E − 4F + 32 − r) >> 6 , e = (−4M + 53dd + 18hh − 3N + 32 − r) >> 6 ,

........ , u = (−3G + 18H + 53I − 4J + 32 − r) >> 6,

gdje je r=1-RND u vertikalnom pravcu, i r=RND u horizontalnom pravcu. RND je kontrolna vrijednost zaokruživanja koja zavisi od vrste slike i profila. Ima vrijednost između 0 i 1.

položaj četvrtine piksela

D b E

ii k

H I

mm

t

e g

o q

a c

dd f hh

l

u

p

j

nn

s

rr

F

J

P

N

R

C

G

O

M

Q

S A B T

U K L V

Slika 65 Interpolacija luma odbiraka bikubnom transformacijom

Page 68: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

4. VC-1 67

Prethodni algoritam daje preciznost hroma odbiraka tačnosti 1/8 piksela, ali se ova vrijednost interpolira na tačnost 1/4 piksela. MV-i čija dva posljednja bita imaju vrijednost 0, 1 ili 2 se dijele sa vrijednošću 2. MV-ima čija dva posljednja bita imaju vrijednost 3 se dodaje vrijednost 1 te se dijele sa 2. Dekoderi mogu i da smanje kompleksnost interpolacije zaokružujući vrijednosti MV-a na tačnost 1/2 piksela.

4.4.3 Predikcija vektora pokreta U slučaju 16x16 bloka MV prediktor se izračunava kao medijan vrijednost tri vektora kandidata. Ukoliko je tekući MB na kraju reda koristi se šema desno gornjeg reda slike 66. U slučaju da su susjedni blokovi u 8x8 MC modu, koristi se takozvani miješani mod (donji red slike 66), odnosno MC 16x16 bloka se izračunava na osnovu MV-a susjednih 8x8 blokova.

A B

C

A nije dostupan

Btekući blok

tekući blokC

A B

16

16

B

tekući blok

16

16

tekući blokC

A

16

16

B

nije dostupan

Slika 66 MV prediktori za 16x16 blok

MV prediktor za 8x8 blok se bira na osnovu tri MV-a kandidata, kako slika 67 pokazuje za slučaj svakog bloka u makrobloku.

8x8C

AB

16

16

a)

8x8C

A B

b)

8x8C

BA

c)

8x8C

AB

16

16

d)

8x8C

A B

e)

8x8C

B A

f) Slika 67 MV prediktori za 8x8 blok: a) prediktor za blok 0 ako nije prvi MB u redu, b) prediktor za blok 0 ako je prvi MB u redu, c) prediktor za blok 1 ako nije posljednji MB u redu, d) prediktor za blok 1 ako je posljednji MB u redu, e) prediktor

za blok 2 i f) prediktor za blok 3

Page 69: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

MPEG-4, AVC/H.264 i VC-1 standardi video kodovanja 68

Blokovi u P slikama mogu biti intra kodovani, inter kodovani i kodovani preskakanjem (skip mode). Blokovi u B slikama mogu koristiti direktnu predikciju, predikciju unazad, predikciju unaprijed, dvosmjernu predikciju i preskakanje.

4.4.4 Kompenzacija pokreta pomoću jačine svjetline Kad se scena pojavljuje ili isčezava, sadržaj i tekstura se obično ne pomiču već se uglavnom mijenja veličina svjetline slike. Da bi se uspješno nosilo sa ovom situacijom, u VC-1 standardu je razvijena tehnika po imenu kompenzacija pokreta pomoću jačine (Intensity Motion Compensation – IMC). Ideja je mapirati luma i hroma vrijednosti u domen sa povećanim ili smanjenim intenzitetom. Ako bi se primjenila obična MC tehnika, ostatak predikcije bi bio velik. Ova tehnika se primjenjuje jedino na P slike. Mapirane vrijednosti se koriste kao referenca dolazećim B slikama. Mapiranje se izvodi linearnom funkcijom koristeći parametre LUMSCALE i LUMSHIFT. Koder proračunava ove parametre tako da greška predikcije bude najmanja. Kada se vrši dekodiranje dekoder prvo pravi tabelu pretraživanja zasnovanu na parametrima LUMSCALE i LUMSHIFT čime štedi procesorske resurse. Mapiranje se primjenjuje i na hroma komponente.

0 255

0

255

originalna jačina

mapirana jačina

linija je definisana LUMASCALE i LUMASHIFT parametrima

originalna jačina mapirana jačina

012

.

.

.

255

123123124

.

.

.

255

Slika 68 Mapiranje jačine i tabela pretraživanja

4.5 Transformacija i kvantizacija Transformacije u VC-1 standardu su zasnovane na aritmetici cijelih brojeva i zasnivaju se na DCT transformaciji. U VC-1 standardu pažnja je posvećena implementaciji brzog algoritma jedino za inverznu transformaciju. Inverzna transformacija je 1D transformacija u 8 tačaka i odvija se po slijedećem:

𝐻𝐻�8𝑖𝑖𝑟𝑟𝑣𝑣 = �

12 16 12 612 6 −12 −1612 −6 −12 1612 −16 12 −6

� i 𝐻𝐻�8𝑖𝑖𝑟𝑟𝑣𝑣 = �

16 15 9 415 −4 −16 −99 −16 4 154 −9 15 −16

� ,

𝑥𝑥(0)𝑥𝑥(1)𝑥𝑥(2)𝑥𝑥(3)

� = 𝐻𝐻�8𝑖𝑖𝑟𝑟𝑣𝑣 /8 �

𝐴𝐴(0)𝐴𝐴(2)𝐴𝐴(4)𝐴𝐴(6)

� + 𝐻𝐻�8𝑖𝑖𝑟𝑟𝑣𝑣 /8 �

𝐴𝐴(1)𝐴𝐴(3)𝐴𝐴(5)𝐴𝐴(7)

� + �

4444

� /8 𝑖𝑖

Page 70: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

4. VC-1 69

𝑥𝑥(7)𝑥𝑥(6)𝑥𝑥(5)𝑥𝑥(4)

� = 𝐻𝐻�8𝑖𝑖𝑟𝑟𝑣𝑣 /8 �

𝐴𝐴(0)𝐴𝐴(2)𝐴𝐴(4)𝐴𝐴(6)

� − 𝐻𝐻�8𝑖𝑖𝑟𝑟𝑣𝑣 /8 �

𝐴𝐴(1)𝐴𝐴(3)𝐴𝐴(5)𝐴𝐴(7)

� + �

4444

� /8

Treći član predstavlja zaokruživanje. Inverzna transformacija 4x4 bloka ima oblik:

𝐻𝐻�4𝑖𝑖𝑟𝑟𝑣𝑣 = �17 1717 −17� i 𝐻𝐻

�4𝑖𝑖𝑟𝑟𝑣𝑣 = �22 1010 −22� ,

�𝑥𝑥(0)𝑥𝑥(1)� = 𝐻𝐻�4𝑖𝑖𝑟𝑟𝑣𝑣 /8 �𝐴𝐴(0)

𝐴𝐴(2)� + 𝐻𝐻�4𝑖𝑖𝑟𝑟𝑣𝑣 /8 �𝐴𝐴(1)𝐴𝐴(3)� + �44� /8 𝑖𝑖

�𝑥𝑥(3)𝑥𝑥(2)� = 𝐻𝐻�4𝑖𝑖𝑟𝑟𝑣𝑣 /8 �𝐴𝐴(0)

𝐴𝐴(2)� − 𝐻𝐻�4𝑖𝑖𝑟𝑟𝑣𝑣 /8 �𝐴𝐴(1)𝐴𝐴(3)� + �44� /8

Treći član predstavlja zaokruživanje. Matrice za inverznu transformaciju u dekoderu poprimaju oblik:

𝑇𝑇8 =

⎣⎢⎢⎢⎢⎢⎢⎡12 12 12 12 12 12 12 1216 15 9 4 −4 −9 −15 −1616 6 −6 −16 −16 −6 6 1615 −4 −16 −9 9 16 4 −1512 −12 −12 12 12 −12 −12 129 −16 4 15 −15 −4 16 −96 −16 16 −6 −6 16 −16 64 −9 15 −16 16 −15 9 −4 ⎦

⎥⎥⎥⎥⎥⎥⎤

i

𝑇𝑇4 = �

17 17 17 1722 10 −10 −2217 −17 −17 1710 −22 22 −10

Inverzna transformacija se izračunava na slijedeći način:

EMxN=(DMxN⋅TM+4)˃˃3,

RMxN=(TtN⋅EMxN+CN⋅1M+64)˃˃7

gdje M i N mogu biti 4 ili 8. DMxN su ulazni podaci čije su vrijednosti u opsegu -2048 ≤ x ˂ 2047, EMxN je prelazna matrica čiji su članovi u opsegu -4096 ≤ x˂ 4095. RMxN su izlazne vrijednosti piksela i nalaze se u opsegu -512 ≤ x˂ 511. Vrijednost matrice CN zavisi od N i iznosi Ct

8=(0 0 0 0 1 1 1 1) ili Ct4=(0 0 0 0). 1M je red jedinica dužine M.

Transformacija unaprijed nije razmatrana za brzu implementaciju i može biti izračunata aritmetikom cijelih brojeva ili pomoću pokretnog zareza. Transformacije unaprijed u VC-1 standardu su ortogonalne, ali ne i ortonormalne. Inverzna kvantizacija se izvodi pomoću dvije metode – uniformni i neuniformni kvantizer.

Page 71: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

MPEG-4, AVC/H.264 i VC-1 standardi video kodovanja 70

Uniformni kvantizer se koristi za dva slučaja – jedan za intra DC koeficijente, i drugi za sve ostale AC koeficijente. Intra DC koeficijenti se rekonstruišu kao:

DC = qDC × DCVeličinaKoraka

gdje je qDC kvantizovana DC diferencijalna vrijednost. DCVeličinaKoraka ima vrijednosti iz tabele 14: Tabela 14 Izvođenje vrijednosti DCVeličina koraka za uniformnu i neuniformnu kvantizaciju

Tip bloka MQUANT≤2 3≤MQUANT≤4 5≤MQUANT luma 2xMQUANT 8 MQUANT/2+6

hroma 2xMQUANT 8 MQUANT/2+6

Svi ostali AC koeficijenti se izračunavaju po slijedećem:

F'' = qF × (2xMQUANT+Δ(sintaksa))

MQUANT je korak kvantizacije, Δ(sintaksa) ima slijedeću vrijednost – ako se koristi kvantizer konstantnog koraka vrijednost je 1 kada se koristi inkrement od pola kvantizacionog koraka, ili 0 kada se koristi inkrement od cijelog koraka, u nižem opsegu kvantizera; ako se koristi kvantizer promjenljivog koraka vrijednost parametra Δ(sintaksa) iznosi 0. Neuniformni kvantizer se također koristi za dva slučaja – jedan za intra DC koeficijente, i drugi za sve ostale AC koeficijente. Intra DC kvantizer radi po istoj formuli kao i uniformni intra kvantizer. Ostali AC koeficijenti se rekonstruišu kao:

F'' = qF × (2xMQUANT+Δ(sintaksa))+sign(qF) × MQUANT

Vrijednosti dobijene iz inverznog kvantizera se zaokružuju na najbliži cijeli broj i smještaju u opseg:

𝐹𝐹 = �2047, 𝐹𝐹′′ > 2047

𝐹𝐹′′ , − 2048 ≤ 𝐹𝐹′′ ≤ 2047−2048 , 𝐹𝐹′′ < −2048

U VC-1 standardu postoje tri šeme cik- cak skeniranja za intra blokove, te po jedna za četiri veličine inter blokova. Prikazane šeme skeniranja se odnose na progresivni video.

a)

b)

Slika 69 VC-1 cik-cak skeniranje u a) intra kodovanju i b) inter kodovanju

Page 72: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

4. VC-1 71

4.6 Entropijsko kodovanje VC-1 standard koristi VLC kodovanje koje koristi različite VLC tabele, zavisno od vrijednosti kvantizacionog parametra (QP). U ovom kontekstu VC-1 koder provodi vrstu VLC kodovanja zavisnog od sadržaja (Context-Adaptive VLC – CA-VLC) baziranog na vrijednosti kvantizacionog parametra. Zavisno od QP-a, od čega zavisi i kvalitet kodovanja, koriste se različite VLC tabele, npr. VLC tabele za srednji bitski protok, ili VLC tabele za visoki bitski protok. Drugi skup tabela koji se koristi je baziran na MV-ima. Primjeri uključuju DC diferencijalne tabele za male pokrete i DC diferencijalne tabele za velike pokrete.

4.7 Filteri u petlji VC-1 standard propisuje dvije tehnike za uklanjanje efekta blokova – OLT umekšavanje i filter u petlji (ILF). Zajedničkim imenom se nazivaju DBF (DeBlocking Filter). Prelaz sa visokog na niski kvalitet detalja se tretira OLT filterom, a prelaz sa niskog na niski, i prelaz sa visokog na visoki kvalitet se tretira ILF filterom.

4.7.1 OLT filter Osnovna ideja filtera za umekšavanje transformacijom sa preklapanjem (OverLapped Transform – OLT) je da se preko granice dva bloka, koja se dodiruju, prebace odbirci sa jedne strane na drugu i obrnuto. U dekoderu se operacija prebacivanja izvršava ponovo sa ciljem obnavljanja originalnih podataka (slika 70). Na ovaj način blok dobrog kvaliteta sadrži ivice lošeg kvaliteta, a blokovi lošeg kvaliteta sadrže ivice dobrog kvaliteta. Drugim riječima, blokovi dobrog i lošeg kvaliteta rasprše podatke jedan u drugi.

transformacija/kvantizacija

inverzna transformacija/

kvantizacija

pojava greške kvantizacije i efekta blokova

visok kvalitet

loš kvalitet

prebacivanje preko ivice

prebacivanje unazad

međusobno raspršavanje podataka

Slika 70 Princip OLT filtriranja

Ukoliko bi se šema sa slike 70 primjenila direktno, odnosno ukoliko bi se vršilo prosto prebacivanje piksela, moglo bi doći do pojave visokofrekventnih komponenti sa obe strane granice. Zbog toga se OLT definiše kao filter dat slijedećim algoritmom, za slučaj inverznog proračuna u dekoderu (odgovarajući pikseli su prikazani na slici 71):

⎣⎢⎢⎡𝑝𝑝1′𝑝𝑝0′𝑞𝑞0′𝑞𝑞1′⎦

⎥⎥⎤

=

⎣⎢⎢⎢⎡�

7 0 0 1−1 7 1 11 1 7 −11 0 0 7

� �

𝑝𝑝1𝑝𝑝0𝑞𝑞0𝑞𝑞1

� + �

𝑟𝑟0𝑟𝑟1𝑟𝑟0𝑟𝑟1

⎦⎥⎥⎥⎤≫ 3

Page 73: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

MPEG-4, AVC/H.264 i VC-1 standardi video kodovanja 72

Vrijednosti r0 i r1 mijenjaju vrijednost (3, 4) ili (4, 3) zavisno jesu li ineksi kolone/reda, respektivno, parni ili neparni. OLT se ne provodi na B slikama. OLT se provodi kada je veličina koraka kvantizera slike veća ili jednaka 9.

p3

p2 p1 p0 q0 q1 q2 q3

vertikalna granicap2

p1

p0

q0

q1

q2

q3

horizontalna granica

p3

Slika 71 Ivični pikseli za OLT filtriranje

4.7.2 Filter protiv blokovskih ostataka Filter protiv blokovskih ostataka, ili kao se naziva filter u petlji (In-Loop Filter – ILF), se izvršava na pikselima na granicama blokova, kako to slika 72 prikazuje. Filtriranje se provodi u dvije faze – prvo svaki treći od četiri piksela prolazi filtriranje, u drugoj fazi se filtriraju po sva četiri piksela; da li će se ova faza provoditi zavisi od rezultata prve faze.

p1

p2 p3 p4 p5 p6 p7 p8

vertikalna granicap2

p3

p4

p5

p6

p7

p8

horizontalna granica

p1

Slika 72 Ivični pikseli za ILF filtriranje

Algoritam za selekciju ivica za filtriranje se odvija po slijedećem:

• za I slike filtriranje se provodi na svim 8x8 blokovima, prvo po svim horizontalnim granicama u okviru, zatim po svim vertikalnim granicama u okviru,

• za P slike filtriranje između blokova se provodi sem u slučaju kad su oba bloka oko granice intra kodovani, i kad su MV-i oba bloka ista i kad oba bloka imaju ostatak predikcije jednak nuli,

• za B slike se primjenjuje isto pravilo kao i za I slike, samo za 8x8 blokove.

Filtriranje se obavlja u tri koraka. Prvi korak utvrđuje da li ulazna slika ima uočljivu blokovsku strukturu:

a0=(2× (p3-p6)-5× (p4-p5)+4)>>3, a1=(2× (p1-p4)-5× (p2-p3)+4)>>3, a2=(2 ×(p5-p8)-5 × (p6-p7)+4)>>3, ako je (|a0|≥korak kvantizacije) izlaz,

u suprotnom izračunaj a3=min (|a1|, |a2|).

Page 74: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

4. VC-1 73

Drugi korak je provjera da li je efekat bloka na ivici ozbiljan u odnosu na strane oko ivice:

ako je (a3≥|a0|) izlaz, u suprotnom izračunaj d=5×((sign(a0)×a3)-a0)/8,

izračunaj c = (p4-p5)/2. Treći korak je podešavanje vrijednosti piksela p4 i p5:

ako je (c=0) izlaz, ako je (c>0) uradi slijedeće: ako je (d˂0) d=0; ako je (d>c) d=c, ako je (c˂0) uradi slijedeće: ako je (d>0) d=0; ako je (d˂c) d=c,

korekcija: p4=p4-d, p5=p5+d.

4.8 Otpornost na greške U VC-1 standardu su razvijene posebne tehnike za prilagođavanje propusnom opsegu u okruženjima bez omogućenog modela kvaliteta servisa (QoS). Ove tehnike obuhvataju smanjenje opsega i višestruku rezoluciju.

4.8.1 Smanjenje opsega Ideja smanjenja opsega (Range Reduction ili PreProc) je da promjenji raspodjelu vjerovatnoće ulaznih simbola. Kada je dinamički opseg ulazne jačine svjetline manji, u principu se postiže bolji stepen kompresije. Ako dođe do smanjenja propusnog opsega, mapiranje ulaznog videa u mapirani se izvodi prije kodovanja (isti princip kao na slici 68). U dekoderu se vrši skaliranje, tj. inverzna operacija po formulama:

Y[n] = Clip((Y[n] −128) × 2 +128) , Cb [n] = Clip((Cb [n] −128) × 2 + 128), Cr [n] = Clip((Cr [n] −128) × 2 + 128).

Sve prethodno rekonstruisane slike u dekoderu se skaliraju po istom principu prije MC operacija. Ovaj proces može dovesti do gubitaka informacija pošto dvije različite vrijednosti mogu biti skalirane u istu vrijednost.

4.8.2 Višestruka rezolucija Ideja višestruke rezolucije (Multi-resolution) je da se, ukoliko dođe do smanjenja propusnog opsega, videu smanji rezolucija prije kodiranja. Postoje četiri opcije smanjenja: bez smanjenja, smanjenje po vertikali, smanjenje po horizontali i smanjenje po obe ose. Kada se video smanji prije kodiranja veličina rezultujućeg bitskog toka je vrlo mala, mada, naravno, dolazi do gubitka u kvalitetu.

4.9 VC-1 profili i nivoi VC-1 sistem kodovanja ima definisan niz profila i nivoa.

4.9.1 Profili VC-1 obuhvata slijedeće profile. Jednostavni profil (Simple Profile) je osiromašena verzija glavnog profila, iz kojeg su izostavljene značajne stavke. Namjenjen je za prenos videa u mobilnim mrežama i prikaz na ručnim multimedijalnim uređajima. Ustvari, svi ručni uređaji kadri da dekoduju video u jednostavnom profilu od 300kb/s mogu da dekoduju i video u glavnom profilu pri 200 kb/s, koji je kvalitetniji.

Page 75: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

MPEG-4, AVC/H.264 i VC-1 standardi video kodovanja 74

Glavni profil (Main Profile) je najzastupljeniji profil. Namjenjen je za prenos videa IP protokolom. U odnosu na napredni profil nedostaju mu tri stvari: kodovanje videa sa proredom, nezavisnost od transportne sredine i diferencijalna kvantizacija I-slika. Napredni profil (Advanced Profile) je namjenjem mrežama za emitovanje programa, HDTV i skladištenje u visokoj rezoluciji. Ovaj profil omogućuje i transportnu nezavisnost jer se video može pakovati u razne tokove (VC-1 elementary stream, MPEG-2 Transport Stream, MPEG-2 Program Stream, MPEG-4 Program, MPEG-4 Program fragmented mode). Ostali profili rade u ASF (Advanced Systems Format) fajl formatu. Opcije pojedinih profila su sumirane u tabeli 15.

Tabela 15 VC-1 profili

Podržana funkcionalnost Naziv profila

Simple Main Advanced Baseline Intra Frame Compression Variable-sized Transform 16-bit Transform Overlapped Transform 8x8, 16x16 Motion Modes Quarter-pixel Motion Compensation Y Quarter-pixel Motion Compensation U, V Start Codes Extended Motion Vectors Loop Filter Dynamic Resolution Change Adaptive MB Quantization Bidirectional (B) Frames Intensity Compensation Range Adjustment Interlace: Field/ Frame Coding Modes Self Descriptive Fields/ Flags GOP Layer/ Entry Points Display Metadata (Pan/ Scan, Colorimetry, Aspect Ratio, Pulldown, Top Field First, Repeat First Field, itd.)

4.9.2 Nivoi Nivoi imaju oznake L, M i H (Low, Medium and High). Njihove kombinacije sa profilima su date u slijedećoj tabeli. Tabela 16 VC-1 profili i nivoi

Profil Nivo Max bitski protok Max rezolucija/ max br. slika u s Simple L 96 Kbps 176x144p15 Simple M 384 Kbps 240x176p30, 352x288p15 Main L 2 Mbps 320x240p24 Main M 10 Mbps 720x480p30, 720x576p25 Main H 20 Mbps 1920x1080p30

Advanced L0 2 Mbps 352x288p30 Advanced L1 10 Mbps 720x480p/i30, 720x576p/i25 Advanced L2 20 Mbps 720x480p60, 1280x720p30

Advanced L3 45 Mbps 1920x1080p24, 1920x1080p/i30, 1280x720p60

Advanced L4 135 Mbps 1920x1080p60, 2048x1536p24

Page 76: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

5. ZAKLJUČAK 75

5. ZAKLJUČAK Sistemi video kodovanja MPEG-4 Part 2, AVC/H.264 i VC-1 predstavljaju široko rasprostranjene i efikasne sisteme kodovanja. Zahvaljujući performansama postali su sastavni dio tehničkih standarda za prenos, skladištenje, prikazivanje i pristup vizuelnim podacima. Napredni koncepti MPEG-4 kodovanja (pristup objektima u video sadržaju) su stalni predmet usavršavanja i, mada još nisu našli put do šire potrošačke zajednice, predstavljaju prekretnicu u evoluciji video kodovanja. Zahvaljujući sve jeftinijim i sve bržim čipovima, pružena je mogućnost unapređenja efikasnosti kodovanja, kao i razvijanja platformi za pristup i pretraživanje vizuelnih podataka, nezavisno od transportne mreže ili hardvera. Stalno aktuelna tema je pristup multimediji u mobilnim mrežama; ovo zahtjeva efikasan sistem kodovanja koji omogućuje i slabijem hardveru kvalitetno dekodovanje, kao i efikasne tehnike za povećanje otpornosti na greške u kanalima za bežični prenos podataka. Opisani sistemi kodovanja se uspješno nose sa pomenutim problemima zahvaljujući posebno razvijenim alatima. Jeftiniji i efikasniji čipovi znače i masovnu proizvodnju i implementaciju multimedijalnih tehnologija, bilo u poslovnom ili zabavnom segmentu društvenih aktivnosti. Masovna eksploatacija daje pokretačku snagu razvojnim timovima i kompanijama, s ciljem da uspješno odgovore na zahtjeve tržišta za što većom interaktivnošću sa multimedijom. MPEG grupa trenutno radi na nizu aplikacija i tehnologija vezanih za video informacije, a koje će doprinijeti bogatijem iskustvu korisnika: MVS (Mobile Visual Search), MMT (MPEG Media Transport), AIT (Advanced IPTV Terminal), MPEG-M: MPEG-Extensible Middleware (MXM), MPEG-U: Rich Media User Interfaces (RMUI), MPEG-V: Media Contex and Control (MMC), 3DVC (3D Video Coding), HVC (High-Performance Video Coding).

Page 77: Mpeg-4, Avc h.264 i Vc-1 Standardi Video Kodovanja

MPEG-4, AVC/H.264 i VC-1 standardi video kodovanja 76

LITERATURA

[1] Al Bovik, The Essential Guide to Video Processing, Elsevier, 2009. [2] Ben Waggoner, Compression for great video and audio : master tips and common

sense, Elsevier, 2010. [3] Fernando Pereira, Touradj Ebrahimi, MPEG-4 Book, Prentice Hall, 2002. [4] Haohong Wang, Lisimachos P. Kondi, Ajay Luthra, Song Ci, 4G wireless video

communications, John Wiley & Sons, 2009. [5] Harald Kosch, Distributed Multimedia Database Technologies Supported by

MPEG-7 and MPEG-21, Auerbach Publications, 2004. [6] Iain E. G. Richardson, H.264 and MPEG-4 Video Compression, John Wiley & Sons,

2003. [7] Igor S. Pandzi, Robert Forchheimer, MPEG-4 Facial Animation The Standard,

Implementation and Applications, John Wiley & Sons, 2002. [8] Jae-Beom Lee, Hari Kalva, The VC-1 and H.264 Video Compression Standards for

Broadband Video Services, Springer, 2008. [9] John Watkinson, MPEG Handbook : MPEG-1, MPEG-2, MPEG-4, Elsevier, 2004. [10] King N. Ngan, Thomas Meier, Douglas Chai, Advanced Video Coding:Principles

and Techniques, Elsevier, 1999. [11] L. Hanzo, P. J. Cherriman, J. Streit, Video Compression and Communications, John

Wiley & Sons, 2007. [12] Markus Rupp, Video and Multimedia Transmissions over Cellular Networks, John

Wiley & Sons, 2009. [13] Mihaela van der Schaar, Deepak S Turaga, Thomas Stockhammer, MPEG-4 Beyond

Conventional Video Coding: Object Coding, Resilience, and Scalability, Morgan & Claypool, 2006.

[14] Miodrag Popović, Digitalna obrada slike, Akademska misao, 2006. [15] N. Magnenat-Thalmann, D. Thalmann, Handbook of Virtual Humans, John Wiley

& Sons, 2004. [16] Robert Bleidt, Understanding MPEG-4: Technologies, Advantages, and Markets,

The MPEG Industry Forum, 2005. [17] Yun Q. Shi, Huifang Sun, Image and video compression for multimedia

engineering : fundamentals, algorithms, and standards, CRC Press, 2008.