Kompresija videa

Download Report

Transcript Kompresija videa

Kompresija videa
Multimediji
Tehnološki fakultet
Univerzitet u Banjoj Luci
Motivacija
• HDTV (1920 x 1080 piksela) @ 30 fps, 8 bita po
YCbCr 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
prostorni
domen
vremenski
domen
vertikalna
osa
horizontalna
osa
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
2D 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.26x)
• Problem nije dobro definisan zato što su slike projekcije 3D
objekata u 2D 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
– 2D 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.26x 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 (352x288) i QCIF (176x144) 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 16x16 piksela
• Pododmjeravanje hrome
4:2:0
• Makroblokovi hrominanse
(Cb, Cr) veličine 8x8 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 (128x96), QCIF
(176x144), CIF (352x288), 4CIF(704x576),
16CIF (1408x1152)
• 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 256kbit/s
c) slika kodovana sa 128kbit/s d) slika kodovana sa 64kbit/s
Moving Picture Experts Group (MPEG)
• Formalno: ISO/IEC JTC1/SC29 WG11
• 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 352x240 @ 30fps
– PAL video rezolucije 352x288 @ 25fps
• 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 16k x 16k 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 3D 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
– 16x8 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, 3D 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:
– 2D zasnovana na rešeci
– 3D zasnovana na modelu
Kodovanje 2D rešetkastih objekata
• 2D 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 3D modela
• MPEG-4 definiše posebne 3D 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 (16x16 do 4x4)
– Vektori pomjeraja sa tačnošću do pola ili četvrtine piksela
• Inverzno skeniranje, kvantizacija i transformacija
piksela razlike
– 4x4 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 4x4 piksela
• Omogućava tačniju kompenzaciju pokreta
Višestruke reference
Koder bira sliku iz liste koju će koristiti za predikciju
predikcija
predikcija
Filtar za uklanjanje blokovskog efekta