Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
PROGRAMSKA PODRŠKA
U TELEVIZIJI I OBRADI
SLIKE 1
Osnove video kodovanja
Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 2/38
Uvod u video kodovanje
Video kodovanje (video coding) je postupak
kompresije i dekompresije digitalnog video signala.
Digitalni video signal je reprezentacija vidljive
prirodne scene, koja je digitalizovana prostornim I
vremenskim odabiranjem (sampling).
Jedan odbirak scene u vremenu naziva se frejm ili
polje (koje sadrži parne, odnosno neparne linije),
koji predstavlja jednu statičnu sliku.
Odabiranje se ponavlja uzastopno, u intervalima
(npr. svakih 1/25 ili 1/30 sekundi), što kao rezultat
ima pokretnu sliku (video).
Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 3/38
Prirodna video scena (1/2)
Prirodna video scena se sastoji od više objekata koji
poseduju karakteristike poput oblika, dubine, teksture i
osvetljenosti.
Prirodna scena je vremenski i prostorno kontinualna.
Za video kodovanje, analiziraju se sledeći aspekti:
Prostorne karakteristike (varijacija teksture unutar scene,
broj i oblik objekata, boja i sl)
Vremenske karakteristike (kretanje objekata, promene
osvetljenosti, promena ugla gledanja kamere i sl)
S tim u vezi, kodovanje može biti:
Prostorno (na nivou jednog frejma);
Vremensko (na nivou više uzastopnih frejmova).
Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 4/38
Prirodna video scena (2/2)
Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 5/38
Snimanje video scene (1/2)
Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 6/38
Snimanje video scene (2/2)
Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 7/38
Progresivno i učešljano snimanje (1/2)
Video signal se može snimiti kao serija celih
frejmova (progresivno – progressive), ili kao serija
poluslika – parnih, odnosno neparnih redova matrice
(učešljano – interlaced).
Prednost učešljanog snimanja je udvostručavanje
bitskog protoka u odnosu na ekvivalentnu
progresivnu sekvencu, uz impresiju „tečnijeg“
pomeranja.
Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 8/38
Progresivno i učešljano snimanje (2/2)
Parne linije Neparne linije
Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 9/38
Prostori boja (podsećanje)
Svaki piksel jednog frejma slike beleži se korišćenjem
metrika nekog od prostora boja:
RGB (proporcija crvene, zelene i plave boje kao aditivnih
primarnih boja svetlosti); RGB je prirodniji sa stanovišta
snimanja / optičkih senzora.
YCbCr, odnosno YUV (Y je odvojen kao komponenta koja čini
osvetljaj, a U i V kao komponente boje). Ljudsko oko je
najosetljivije na osvetljaj; to znači da bitski protok za prenos
komponenti boje može biti smanjen u odnosu na protok
potreban za komponentu osvetljaja.
Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 10/38
Uštede korišćenjem YUV
Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 11/38
Video kompresija
Video kompresija se zasniva na otklanjanju
redundanse:
Statistički, kompresijom bez gubitaka (lossless) – relativno
skromne uštede (3-4x u odnosu na nekompresovan video)
Uklanjanjem subjektivne redundanse, odnosno podataka
koje ljudsko oko ne primećuje, odnosno na koje nije
značajno osetljivo (lossy). Ova redundansa može biti:
Vremenska, koja koristi činjenicu da obično postoji visok
stepen korelacije (sličnosti) između frejmova snimljenih u
slično vreme
Prostorna, koja koristi činjenicu da postoji korelacija između
piksela koji su u međusobnoj blizini, odnosno da su
međusobno susedni pikseli vrlo sličnih vrednosti
Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 12/38
Video kompresija
Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 13/38
Principi rada video kodera
Video koder se sastoji od:
Vremenskog modela (temporal model) – predikcija +
kompenzacija
Prostornog modela (spatial model) – sličnosti unutar
frejma, kvantizacija
Entropijskog enkodovanja (entropy encoder) – primena
statističkih metoda za ostvarivanje lossless kompresije
Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 14/38
Vremenska predikcija - rezidual
Korišćenje jednog ili više
prethodnih frejmova da bi se
predvideo izgled trenutnog
frejma, tipično računanjem
razlike koja se prenosi
umesto celokupnog frejma.
Frejm 1
Frejm 2Razlika
Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 15/38
Vremenska predikcija – vektori pomeraja
Razlike među frejmovima često nastaju usled kretanja
objekata (npr. automobil koji se kreće, ruka koja se
pomera i sl) i pomeranja kamere (pan, tilt, zum…).
Cilj je da se proceni trajektorija kretanja svakog piksela
između dva frejma (optički tok).
Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 16/38
Vremenska predikcija – vektori pomeraja
Vektori pomeraja se lakše izračunavaju ukoliko se
posmatraju pravougaone sekcije (blokovi) umesto
pojedinačnih piksela.
U ciljnom frejmu se traži blok veličine MxN, koji se najbolje
poklapa sa blokom iz početnog frejma. Poklapanje se
računa na osnovu razlike (energije) vrednosti piksela bloka
u ciljnom i početnom frejmu.
Blok zadate veličine (npr. 16x16) se zove makroblok.
Razlika (rezidual) se računa za MxN blok koji se najbolje
poklapa, što se naziva kompenzacija pokreta (motion
compensation).
Umesto celokupnog frejma, prenosi se vektor pomeraja
bloka i njegov rezidual.
Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 17/38
Vremenska predikcija – vektori pomeraja
Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 18/38
Vremenska predikcija – vektori pomeraja
Veći makroblok (npr. 16x16) => veći rezidual, manje vektora pomeraja
Manji makroblok (npr. 4x4) => manji residual, više vektora pomeraja
Najbolje rešenje je adaptivna veličina makrobloka spram delova frejma.
Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 19/38
Prostorno kodovanje
Uključuje transformaciju slike, odnosno reziduala, u
drugi metrički prostor; transformacija treba da
obezbedi uvid u komponente koje nisu
međuzavisne, i da je energija koncentrisana u
malom broju komponenti; ona mora imati inverznu
transformaciju (zbog dekodovanja), i ne sme da
bude suviše procesorski zahtevna.
Tipične transformacije:
Diskretna kosinusna transformacija (DCT)
Diskretna vejvlet transformacija (DWT)
Podsetimo se JPEG algoritma za kompresiju slike
Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 20/38
JPEG - podsećanje
konverzijaprostora
boja
R
G
B
Dodelabita
U datotekuili na mrezu
Y
U
V
JPEGkoder
Komprimovnekomponentetoka podataka
pomeranjenivoa
DCTZig Zag +
kvantizacija
EntropijskoKodovanjeRun Lenght
Huffman
Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 21/38
Ilustracija koncepta (tok kodovanja)
Snimljen je novi nekompresovani video frejm Fn.
Rezolucija u ovom primeru je 352x288.
Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 22/38
Ilustracija koncepta (tok kodovanja)
Do tog trenutka koder je već kodovao prethodne
frejmove, te poseduje referentni frejm Fn-1
Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 23/38
Ilustracija koncepta (tok kodovanja)
Rezidual, bez kompenzacije pokreta, pokazuje značajnu
energiju, posebno oko ivica objekata koji se pomeraju.
Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 24/38
Ilustracija koncepta (tok kodovanja)
Primenjena je kompenzacija pokreta sa makroblokovima
veličine 16x16 piksela, i dobijeni su vektori pomeraja.
Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 25/38
Ilustracija koncepta (tok kodovanja)
Koder rekonstruiše referentni frejm na osnovu vektora
pomeraja.
Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 26/38
Ilustracija koncepta (tok kodovanja)
Novi rezidual nakon kompenzacije pokreta je mnogo
optimizovaniji, sa daleko manjom energijom.
Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 27/38
Ilustracija koncepta (tok kodovanja)
Sada se primenjuje prostorno kodovanje. Na primer,
uzmimo makroblok iz gornjeg desnog ugla, jedan iz
originalnog frejma (levo), a drugi iz reziduala (desno).
Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 28/38
Ilustracija koncepta (tok kodovanja)
Primenom 2D DCT nad semplovima bloka 8x8 iz gornjeg
desnog ugla makrobloka:
Dobijaju se DCT koeficijenti:
Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 29/38
Ilustracija koncepta (tok kodovanja)
Histogram snage
koeficijenata
(apsolutne
vrednosti) pokazuje
da su koeficijenti
bliže DC koeficijentu
(0,0), koji
korespondiraju nižim
frekvencijama, veće
vrednosti, te da
značajno opadaju po
dijagonali DC
matrice.
Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 30/38
Ilustracija koncepta (tok kodovanja)
Nakon Q-kvantizacije, koja ima za cilj da koeficijente
male snage izjednači sa nulom, dobijamo novu matricu
DCT koeficijenata, spremne za ZigZag skeniranje, nakon
kojeg će nule biti pozicionirane na kraj niza:
Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 31/38
Ilustracija koncepta (tok kodovanja)
Primenom entropijskog kodovanja na prethodnom
nizu kvantizovanih koeficijenata (Run Length),
nizovi jednakih vrednosti se koduju na efikasan
način; osnovna ideja je da se dugačak niz nultih
vrednosti koduje kratkim kodom EOB.
Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 32/38
Ilustracija koncepta (tok kodovanja)
Uvođenjem kodne knjige po VLC metodi (kraći kod za
reči koje se pojavljuju često, a duži za reči koje se
pojavljuju retko), dobija se binarni kod za svaku reč:
Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 33/38
Ilustracija koncepta (tok kodovanja)
Konačno, makroblok u ovom primeru se smešta u
kodovani strim sa sledećim elementima:
Zaglavlje makrobloka
Vektor pomeraja makrobloka, u ovom primeru (0,1) – ravno
nadole
VLC kodovani koeficijenti reziduala
Makroblok se smešta u okviru dela slike (frejma), koji se
sa ostalim frejmovima (sekvencom) smešta u payload
odgovarajućeg PES paketa.
PES paket se dalje paketizuje u TS, dostavlja do
prijemnika, demoduliše, demultipleksira, te konačno
dolazi do video dekodera na dekodovanje
Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 34/38
Ilustracija koncepta (tok dekodovanja)
Dekoder, na osnovu VLC tabele, rekonstruiše originalnu
linearnu Run Length sekvencu, te zatim konvertuje Run
Length sekvencu u niz koeficijenata.
Konačno, dobija se niz kvantizovanih koeficijenata koje
treba prevesti u DCT koeficijente; s obzirom na
zaokruživanje, odnosno izjednačavanje originalnih DCT
koeficijenata sa nulama, dobija se nešto drugačiji niz
koeficijenata.
Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 35/38
Ilustracija koncepta (tok dekodovanja)
Obavlja se inverzna DCT, i dobijaju se vrednosti piksela
bloka iz rezidualnog frejma.
Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 36/38
Ilustracija koncepta (tok dekodovanja)
Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 37/38
Ilustracija koncepta (tok dekodovanja)
Dekoder rekonstruiše
vrednost makrobloka,
a analogno i čitavog
frejma, tako što
primenjuje vektor
pomeraja na svoj
prethodno
dekodovani frejm, i
sabira vrednosti sa
rezidualom, te dobija
rekonstruisani frejm:
Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 38/38
Zaključak
Izloženi koncepti su u osnovi svih MPEG standarda
kodovanja koji su u primeni danas: MPEG2, H.264,
H.265
Koncepti su dodatno usložnjeni, sa detaljnijim
algoritmima predikcije (na primer, uz upotrebu više
referentnih frejmova), varijabilnim veličinama
makroblokova, modernijim šemama kodovanja,
kompenzacijom pokreta na sub-piksel nivoima i sl.
Na sledećem predavanju: detalji o konkretnim
standardima video kodovanja koji su danas u
upotrebi