Kompresija videa Multimediji Tehnoloki fakultet Univerzitet u Banjoj
Kompresija videa Multimediji Tehnološki fakultet Univerzitet u Banjoj Luci
Motivacija • HDTV (1920 x 1080 piksela) @ 30 fps, 8 bita po YCb. Cr kolor kanalu bez kompresije – 1920 * 1080 * 30 * 8 * 3 = 1, 49 Gb/s • Kompresija videa je neophodna na današnjem nivou razvoja računarskih mreža • Stepen kompresije metoda bez gubitaka (Hafman, LZW) nije dovoljan za kompresiju videa • Neophodno je korištenje kompresije sa gubicima
Intra-frejm kodovanje • • • Video se sastoji od niza frejmova (mirnih slika) Kompresija individualnih frejmova Koristi se prostorna redundansa Pododmjeravanje hrominantnih komponenata Formiraju se I-frejmovi Primjeri: Motion-JPEG (M-JPEG), DV kompresija – Slični JPEG kompresiji
Odmjeravanje videa Prostorno-vremenski domen
Vremenska redundansa u videu • Susjedni frejmovi u videu su jako korelisani • Kako iskoristiti korelaciju da bi se postigla kompresija?
Vremenska redundansa u videu Susjedni frejmovi u videu su jako korelisani Kako iskoristiti korelaciju da bi se postigla kompresija? Prediktivno kodovanje Prenosi se razlika između susjednih frejmova Frejm se rekonstruiše na osnovu prethodnog frejma i prenesene razlike • Histogram razlike susjednih frejmova ima izražen vrh u nuli – pogodan za entropijsko kodovanje • Postojanje pokretnih objekata kvari histogram razlike • • •
Kodovanje razlike frejmova • Pokretni krug trenutna slika prethodna slika razlika Enkoder razlika prethodna slika trenutna slika
Kompenzacija pokreta
Dekodovanje pokreta blokova
Estimacija pokreta • Određivanje vektora pomjeraja koji opisuju kako se jedna 2 D slika transformiše u drugu • Često se koristi za susjedne frejmove u videu • Zajedno sa kompenzacijom pokreta predstavlja ključni element u algoritmima za kompresiju videa (MPEG, H. 26 x) • Problem nije dobro definisan zato što su slike projekcije 3 D objekata u 2 D ravan • Algoritmi: – – – Uparivanje blokova Određivanje optičkog toka Fazna korelacija Piksel-rekurzivni algoritmi Algoritmi zasnovani na detekciji obilježja
Uparivanje blokova Block matching • Posmatraju se dvije slike/frejma – Ciljni frejm – Referentni frejm • Frejm se dijeli na blokove fiksne veličine • Za svaki blok B ciljnog frejma pronalazi se odgovarajući (najsličniji) blok na referentnom frejmu • Mjera sličnosti je najčešće suma apsolutnih razlika • Vektor pomjeraja je određen razlikom položaja posmatranog bloka na ciljnom i referentnom frejmu
Uparivanje blokova (nastavak) • Sekvencijalno pretraživanje referentnog frejma je računski vrlo složeno • Koriste se tehnike za ubrzavanje – Ograničava se oblast u kojem se traži upareni blok – 2 D logaritamsko pretraživanje – suboptimalno – Hijerarhijsko pretraživanje – koriste se frejmovi snižene rezolucije
Uparivanje blokova (nastavak)
Uparivanje blokova Primjer referentni frejm ciljni frejm
Primjer kompenzacije pokreta N razlika frejmova N+1 razlika sa kompenzacijom pokreta
Upotreba kompenzacije pokreta Inter-frejm kodovanje • Frejm se dijeli na blokove i za svaki blok se određuje vektor pomjeraja u odnosu na odgovarajući blok na prethodnom/sljedećem frejm – estimacija pokreta • Računaju se i prenose razlike uparenih blokova – entropijsko kodovanje • Prenose se i vektori pomjeraja kako bi se na osnovu prethodnog frejma i razlika mogao rekonstruisati tekući frejm • Prednosti: – Viši stepen kompresije • Mane: – Računska složenost – Potrebno je čuvati referentne slike u baferu
H. 261 standard za kompresiju videa • Prvi standard iz H. 26 x familije standarda ITU-T za kodovanje videa • Razvijan u periodu 1988 -1990. godine • Namijenjen za videokonferencije i videotelefoniju korištenjem ISDN linija (bit-rate p*64 kb/s) • Danas prevaziđen ali koristi kompenzaciju pokreta koja je zadržana u kasnijim standardima (zbog toga ga razmatramo ovdje) • Podržani su CIF (352 x 288) i QCIF (176 x 144) formati frejmova sa 4: 2: 0 pododmjeravanjem hromatske komponente • Dva tipa frejmova: – intra-frejmovi (I-frejmovi) – inter-frejmovi (P-frejmovi)
H. 261 sekvenca frejmova • I-frejmovi se posmatraju kao nezavisne slike – Kompresija slična JPEG – koristi se samo prostorna redundansa – I-frejmovi se koriste za slobodni pristup videu (ključni frejmovi) • P-frejmovi su zavisni – Kompresija koristi vremensku redundansu – Predikcija sadržaja frejma na osnovu prethodnih frejmova (mogu se koristiti I ili P-frejmovi) • Nakon I-frejma u sekvenci slijedi određen broj P-frejmova – Broj P-frejmova određuje enkoder – Zašto ovaj broj ne smije biti veliki? – Maksimalno svakih 132 P-frejma mora da se pojavi I-frejm
H. 261 Intra-frejm kodovanje • Makroblok se sastoji od četiri Y bloka i po jednog bloka Cb i Cr • Makroblokovi luminanse (Y) veličine 16 x 16 piksela • Pododmjeravanje hrome 4: 2: 0 • Makroblokovi hrominanse (Cb, Cr) veličine 8 x 8 piksela • Za svaki blok - DCT transformacija, kvantizacija, cik-cak skeniranje i entropijsko kodovanje
H. 261 inter-frejm kodovanje • Koristi se kompenzacija pokreta • Tačnost estimacije pokreta do jednog piksela • Za svaki makroblok (isti kao za I-frejmove) sa ciljnog frejma određuje se vektor pomjeraja u odnosu na prethodni frejm • Formira se makroblok razlike • Za svaki blok razlike: DCT, kvantizacija, cik-cak skeniranje i entropijsko kodovanje • I za vektore pomjeraja se koristi prediktivno kodovanje
H. 261 enkoder
H. 261 dekoder
H. 263 standard za kompresiju videa • Unapređenje H. 261 standarda za videokomunikacije telefonskim linijama • Namijenjen za bitske brzine manje od 64 kb/s • Podržani formati: Sub-QCIF (128 x 96), QCIF (176 x 144), CIF (352 x 288), 4 CIF(704 x 576), 16 CIF (1408 x 1152) • Koristi prediktivno kodovanje za P-frejmove i transformaciono kodovanje za I-frejmove i makroblokove razlike (kao H. 261)
Kompenzacija pokreta u H. 263 • Predikcija vektora pomjeraja makrobloka kao median vrijednosti vektora pomjeraja makroblokova “prije”, “iznad” i “iznad desno” u odnosu na posmatrani makroblok – Median vrijednost se računa posebno za horizontalnu i vertikalnu komponentu – Koduje se razlika vektora pomjeraja i predikcije • Estimacija pokreta sa preciznošću od pola piksela – Koristi se bilinearna interpolacija
Primjer kompresije korištenjem H. 263 a) orginalna slika b) slika kodovana sa 256 kbit/s c) slika kodovana sa 128 kbit/s d) slika kodovana sa 64 kbit/s
Moving Picture Experts Group (MPEG) • Formalno: ISO/IEC JTC 1/SC 29 WG 11 • Radna grupa zadužena za razvoj standarda za video i audio kodovanje, te memorisanje i pretraživanje multimedijalnih sadržaja • Osnivači: ISO, IEC, ITU • Prvi sastanak 1988. godine u Hanoveru
MPEG standardi • MPEG-1 (1991) – Cilj: VHS kvalitet na CD-u (320 x 240 + CD audio @ 1, 5 Mb/s) • MPEG-2 (1994) – Cilj: Emitovanje TV programa • MPEG-3 – Cilj: HDTV, ali kasnije uključen u MPEG-2 • MPEG-4 (1998): Audio-vizuelno kodovanje sa vrlo malim bitskim brzinama – MPEG-4 Part 10 (H. 264): širok opseg bitskih brzina i bolji kvalitet kompresije • MPEG-7 (2001): Interfejs za opis multimedijalnog sadržaja (Multimedija Content Descriptio Interface) • MPEG-21 (2002): “Multimedia Framework”
MPEG-1 • Standard za kodovanje videa na brzinama do 1, 5 Mbit/s – Namijenjen za CD i video CD • Podržava Standard Image Format (SIF): – NTSC video rezolucije 352 x 240 @ 30 fps – PAL video rezolucije 352 x 288 @ 25 fps • Koristi 4: 2: 0 pododmjeravanje hromatskih komponenata • Podržava samo progresivni video • Sastoji se iz pet dijelova: – – – Sistemi, Video, Audio, Usklađenost, Softver.
Kompenzacija pokreta u MPEG-1 • H. 261 koristi I i P-frejmove • Predikcija sadržaja makroblokova P-frejma na osnovu makroblokova iz prethodnog I/P-frejma (predikcija unaprijed) • Koristi se kompenzacija pokreta da bi se poboljšao kvalitet predikcije – Estimacija pokreta sa tačnošću do pola piksela • MPEG-1 uvodi B-frejmove i bidirekcionalnu kompenzaciju pokreta • Predikcija sadržaja makrobloka B-frejma na osnovu prethodnih i budućih frejmova (predikcija unazad) • Za makroblok se određuju dva vektora pomjeraja. Ako u jednom od frejmova ne može da se nađe dobro uparivanje, koristi se samo jedan vektor pomjeraja.
MPEG-1 tipovi frejmova • I frame: definiše tzv. Independent access point, tj. mjesto nezavisnog pristupa, koristi samo inter-frejm kompresiju. • P frame: koristi prediktivno kodovanje unaprijed bazirano na metodi kompenzacije pokreta u odnosu na prethodni I ili P frejm. • B frame: koristi bidirekciono interpolaciono kodovanje bazirano na metodi kompenzacije pokreta. • Stepen kompresije frejmova različitih tipova:
Kodovanje B-frejma korištenjem bidirekcione kompenzacije pokreta
MPEG-1 sekvenca frejmova • B-frejm se estimira korištenjem prethodnog i susjednog I/P-frejma • Redoslijed kojim se frejmovi koduju i prenose je različit od redoslijeda prikazivanja • Zavisi od enkodera, ne mora biti pravilan uzorak • Realizacija zahtjeva baferovanje I i P-frejmova – Baferovanje i kašnjenje predstavljaju probleme u prenosu videa u realnom vremenu
Slojevi toka bitova MPEG-1 videa
MPEG-2 • Projektovan kao standard za digitalno emitovanje TV programa – Zadovoljava zahtjeve za HDTV – odbačen MPEG-3 – Prihvaćen za DVD • Namijenjen za video visokog kvaliteta i bitske brzine veće od 4 Mb/s • Osobine: – – – Skalabilnost Bolja otpornost na greške Podržava video sa preplitanjem Nelinearna kvantizacija Podrška za 4: 2: 2 i 4: 4: 4 chroma subsampling Veličina slike može biti do 16 k x 16 k piksela
MPEG-2 profili • Definiše sedam profila namijenjenih za različite primjene (videokonferencije, skalabilni video, HDTV, . . . ) – Simple, Main, SNR scalable, Spatially scalable, High, 4: 2: 2, Multiview (namijenjen za 3 D video) • Za svaki profil definisana su do četiri nivoa – Low (SIF video), Main (CCIR 601), High 1440 (evropski HDTV), High (američki HDTV) • Četiri nivoa main profila:
Podrška za video sa preplitanjem • MPEG-2 definiše predikciju frejma i predikciju polja • Modaliteti predikcije: – Predikcija frejma na osnovu frejma – Predikcija polja na osnovu polja – Predikcija frejma na osnovu polja – 16 x 8 kompenzacija pokreta za polja – Dualna predikcija za P-slike
Skalabilnost • Video se prenosi mrežama sa različitim karakteristikama • Potrebno je da se tok može skalirati na različite bitske brzine • Skalabilno (slojevito) kodovanje • Video se sastoji od osnovnog i jednog ili više slojeva poboljšanja • Osnovni sloj se nezavisno koduje, prenosi i dekoduje da bi se dobio osnovni kvalitet videa • U zavisnosti od karakteristika mreže koriste se i slojevi poboljšanja – Zavise od osnovnog i prethodnog sloja poboljšanja
MPEG-2 skalabilnost • SNR skalabilnost – Sloj poboljšanja omogućava viši SNR • Prostorna skalabilnost – Sloj poboljšanja omogućava višu prostornu rezoluciju • Vremenska skalabilnost – Sloj poboljšanja omogućava višu frekvenciju osvježavanja (frame rate) • Hibridna skalabilnost – Kombinacija bilo koje dvije od prethodnih skalabilnosti – Obično tri sloja • Particionisanje podataka – Kvantovani DCT koeficijenti su podijeljeni u particije – Osnovna particija sadrži NF koeficijente – Particija poboljšanja sadrži VF koeficijente
SNR skalabilnost • DCT koeficijenti na baznom nivou su grubo kvantovani – Mali broj bita – Lošiji kvalitet videa • Računaju se razlike originalnih i kvantovanih koeficijenata i prenose kako bi se mogao popraviti kvalitet videa
Prostorna skalabilnost • Video tok na osnovnom sloju se dobija kodovanjem frejmova 2 puta niže rezolucije • Tok bita u sloju poboljšanja sadrži razliku između originalnog frejma i frejma snižene rezolucije • Za kompenzaciju pokreta se koristi predikcija makrobloka koja je težinska kombinacija makroblokva sa osnovnog i nivoa poboljšanja
Vremenska skalabilnost • Video u osnovnom i sloju poboljšanja imaju redukovanu frekvenciju osvježavanja (npr. polovina originalne, ali nije obavezno) • Tok na osnovnom nivou se dobija kodovanjem ulaznog videa sa redukovanom frekvencijom osvježavanja • U sloju poboljšanja koristi se kompenzacija pokreta zasnvovana na predikciji makroblokova kombinovanjem informacija iz osnovnog i nivoa poboljšanja (koristi se redundansa među slojevima)
MPEG-4 • Verzija 1 prihvaćena kao međunarodni standard 1999. godine • Objektno-orijentisano kodovanje videa – Objekti medija su entiteti koji se koduju – Objekti mogu biti prirodni ili sintetički • Omogućava veći stepen kompresije • Omogućava digitalnu kompoziciju, manipulaciju, indeksiranje i pretraživanje videa • Omogućava interaktivnost korisnika sa audiovizuelnom scenom • Bitske brzine od 5 kb/s do 10 Mb/s
Interaktivnost • Ciljne primjene – Digitalna televizija – Interaktivna grafika, računarske igre – Interaktivna multimedija, web • Manipulacija sadržajem i uređivanje toka bitova – – Interaktivna kupovina Kućna produkcija uređivanje filmova Ubacivanje titlova ili interpretera znakovnog pisma Digitalni efekti • Hibrid prirodnih i sintetičkih podataka – Animacije i sintetički zvuk mogu biti ukomponovani sa prirodnim zvukom i videom – Gledalac može ukloniti grafički sloj ili ga npr. prevesti – Grafika i zvuk se mogu renderovati na različite načine
Interaktivnost (nastavak) • Konkurentni tokovi podataka različitih modaliteta – Multimedijalna zabava, npr. igre u virtuelnoj stvarnosti, 3 D filmovi – Simulatori – Multimedijalne prezentacije i edukacija • Skalabilnost – Mogućnost selekcije kvaliteta objekata na sceni – Pretraživanje baze na različitim nivoima sadržaja, rezolucije i kvaliteta
MPEG-4 primjeri
MPEG-4 primjeri Sprajtovi
MPEG-4 primjeri
MPEG-4 primjeri Višestruki tokovi
Mogućnosti • Kreiranje audiovizuelnih scena kompozicijom objekata • Multipleksiranje i sinhronizovanje tokova bita kako bi se jedinice multimedijalnih podataka prenijele sa garantovanim kvalitetom usluga (Quality of Service) • Interakciju sa audiovizuelnom scenom na prijemnoj strani
Hijerarhijska struktura MPEG-4 vizuelnog toka bitova • Sekvenca video objekata prenosi čitavu MPEG-4 vizuelnu scenu • Video objekat je određeni objekat na sceni – Može biti proizvoljnog oblika – Odgovara objektu ili pozadini na sceni • Sloj video objekata podržava višeslojno skalabilno kodovanje – VO može imati više VOL • Grupa ravni video objekata grupiše ravni video objekata – Opcioni sloj • Ravan video objekta je slika VO u određenom trenutku – VOŠ može biti proizvoljnog oblika
Ravan video objekta (VOP) Primjeri
Objektno-zasnovano kodovanje u MPEG-4 • Traži se vektor pomjeraja za VOP proizvoljnog oblika • Kompenzacija pokreta u kodovanju VOP – Intra-frejm kodovani VOP (I -VOP) – Inter-frejm kodovani VOP (P-VOP) – Bidirekcionalni (B-VOP) • Kodovanje teksture – Intenzitet i boja • Kodovanje oblika
Kompenzacija pokreta za VOP • Za VOP proizvoljnog oblika se odredi bounding box • VOP (u stvari bounding box) se dijeli na makroblokove – Makroblokovi koji djelimično ili potpuno ne pripadaju VOPu se popunjavaju replikacijom piksela • Vektori pomjeraja se određuju kao u MPEG-1 i 2 s tim što se uzimaju u obzir samo pikseli u ciljnoj VOP • Koduje se razlika vektora pomjeraja i njegove predikcije na osnovu tri susjedna makrobloka • Preciznost vektora pomjeraja može biti pola ili četvrtina piksela • Vektori pomjeraja mogu izlaziti iz okvira VOP
Kodovanje teksture i oblika • I-VOP se koduje direktno (slično kao kod JPEG) • P-VOP i B-VOP koriste kompenzaciju pokreta – Koduje se greška predikcije • VOP može imati proizvoljan oblik • Dva metoda za kodovanje teksture: – Kodovanje zasnovano na DCT – DCT sa adaptacijom oblika (Shape Adaptive DCT) • Dva metoda za kodovanje oblika: – Binarno kodovanje oblika – Grayscale kodovanje oblika • Omogućava opis transparentnosti oblika • Kodovanje statičkih tekstura • Kodovanje sprajtova • Kodovanje sintetičkih objekata
Kompenzacija pokreta na nivou VOP
Kodovanje VOP proizvoljnog oblika
Kodovanje sintetičkih objekata • Sintetički objekti su objekti računarske grafike ili animacije dodati u video koji sadrži prirodne objekte • Tehnike kodovanja: – 2 D zasnovana na rešeci – 3 D zasnovana na modelu
Kodovanje 2 D rešetkastih objekata • 2 D rešetka je podjela planarnog regiona korištenjem poligona • Najpopularniji poligoni su trouglovi – trougaona rešetka • Može se koristiti za modelovanje prirodnih i sintetičkih objekata u videu • Omogućeno je mapiranje teksture na rešetku
Kodovanje 3 D modela • MPEG-4 definiše posebne 3 D modele za objekte lica i objekte tijela zbog čestog pojavljivanja ljudskih lica i tijela u videu • Primjene: telekonferencije, HCI, igre, trgovina • Površi objekata lica i tijela se mogu sjenčiti ili se može mapirati tekstura • Koristi se model lica koji je razvio VRML konzorcijum – Face Animation Parameters (FAP) se koriste da se opiše odstupanje od “neutralnog” lica – Face Definition Parameters (FDP) se koriste da se bolje opišu pojedina lica
Modelovanje lica
MPEG-4 Part 10/H. 264 • Zajednički rad ISO/IEC MPEG i ITU-T VCEG (Video Coding Experts Group) • Sreće se i naziv Advanced Video Coding (AVC) • Poboljšanje stepena kompresije – do 50% u odnosu na MPEG-2 – do 30% u odnosu na H. 263+ i MPEG-4 • Blokovski dekoder sa kompenzacijom pokreta • Trenutno se koristi za prenos HDTV sadržaja u mnogim primjenama (npr. Blu-ray)
Osnovni elementi H. 264 dekodera • Entropijsko dekodovanje • Kompenzacija pokreta ili intra-predikcija – Koriste se različite veličine blokova (16 x 16 do 4 x 4) – Vektori pomjeraja sa tačnošću do pola ili četvrtine piksela • Inverzno skeniranje, kvantizacija i transformacija piksela razlike – 4 x 4 DCT u cjelobrojnoj aritmetici • Rekonstrukcija • Deblocking filtar za rekonstruisane piksele – Uklanja artifakte nastale kao posljedica blokovske obrade (blocking artifakti) – Poboljšava subjektivni kvalitet videa
Fleksibilna blokovska podjela • Koristi se hijerarhijska segentacija pokreta do veličine bloka 4 x 4 piksela • Omogućava tačniju kompenzaciju pokreta
Višestruke reference Koder bira sliku iz liste koju će koristiti za predikciju
Filtar za uklanjanje blokovskog efekta
- Slides: 65