38
PROGRAMSKA PODRŠKA U TELEVIZIJI I OBRADI SLIKE 1 Osnove video kodovanja

PROGRAMSKA PODRŠKA - University of Novi Sad · 2020. 6. 28. · Programska podrška u Televiziji i Obradi Slike (E1) –2015/2016 3/38 Prirodna video scena (1/2) Prirodna video scena

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: PROGRAMSKA PODRŠKA - University of Novi Sad · 2020. 6. 28. · Programska podrška u Televiziji i Obradi Slike (E1) –2015/2016 3/38 Prirodna video scena (1/2) Prirodna video scena

PROGRAMSKA PODRŠKA

U TELEVIZIJI I OBRADI

SLIKE 1

Osnove video kodovanja

Page 2: PROGRAMSKA PODRŠKA - University of Novi Sad · 2020. 6. 28. · Programska podrška u Televiziji i Obradi Slike (E1) –2015/2016 3/38 Prirodna video scena (1/2) Prirodna video scena

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).

Page 3: PROGRAMSKA PODRŠKA - University of Novi Sad · 2020. 6. 28. · Programska podrška u Televiziji i Obradi Slike (E1) –2015/2016 3/38 Prirodna video scena (1/2) Prirodna video scena

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).

Page 4: PROGRAMSKA PODRŠKA - University of Novi Sad · 2020. 6. 28. · Programska podrška u Televiziji i Obradi Slike (E1) –2015/2016 3/38 Prirodna video scena (1/2) Prirodna video scena

Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 4/38

Prirodna video scena (2/2)

Page 5: PROGRAMSKA PODRŠKA - University of Novi Sad · 2020. 6. 28. · Programska podrška u Televiziji i Obradi Slike (E1) –2015/2016 3/38 Prirodna video scena (1/2) Prirodna video scena

Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 5/38

Snimanje video scene (1/2)

Page 6: PROGRAMSKA PODRŠKA - University of Novi Sad · 2020. 6. 28. · Programska podrška u Televiziji i Obradi Slike (E1) –2015/2016 3/38 Prirodna video scena (1/2) Prirodna video scena

Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 6/38

Snimanje video scene (2/2)

Page 7: PROGRAMSKA PODRŠKA - University of Novi Sad · 2020. 6. 28. · Programska podrška u Televiziji i Obradi Slike (E1) –2015/2016 3/38 Prirodna video scena (1/2) Prirodna video scena

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.

Page 8: PROGRAMSKA PODRŠKA - University of Novi Sad · 2020. 6. 28. · Programska podrška u Televiziji i Obradi Slike (E1) –2015/2016 3/38 Prirodna video scena (1/2) Prirodna video scena

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

Page 9: PROGRAMSKA PODRŠKA - University of Novi Sad · 2020. 6. 28. · Programska podrška u Televiziji i Obradi Slike (E1) –2015/2016 3/38 Prirodna video scena (1/2) Prirodna video scena

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.

Page 10: PROGRAMSKA PODRŠKA - University of Novi Sad · 2020. 6. 28. · Programska podrška u Televiziji i Obradi Slike (E1) –2015/2016 3/38 Prirodna video scena (1/2) Prirodna video scena

Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 10/38

Uštede korišćenjem YUV

Page 11: PROGRAMSKA PODRŠKA - University of Novi Sad · 2020. 6. 28. · Programska podrška u Televiziji i Obradi Slike (E1) –2015/2016 3/38 Prirodna video scena (1/2) Prirodna video scena

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

Page 12: PROGRAMSKA PODRŠKA - University of Novi Sad · 2020. 6. 28. · Programska podrška u Televiziji i Obradi Slike (E1) –2015/2016 3/38 Prirodna video scena (1/2) Prirodna video scena

Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 12/38

Video kompresija

Page 13: PROGRAMSKA PODRŠKA - University of Novi Sad · 2020. 6. 28. · Programska podrška u Televiziji i Obradi Slike (E1) –2015/2016 3/38 Prirodna video scena (1/2) Prirodna video scena

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

Page 14: PROGRAMSKA PODRŠKA - University of Novi Sad · 2020. 6. 28. · Programska podrška u Televiziji i Obradi Slike (E1) –2015/2016 3/38 Prirodna video scena (1/2) Prirodna video scena

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

Page 15: PROGRAMSKA PODRŠKA - University of Novi Sad · 2020. 6. 28. · Programska podrška u Televiziji i Obradi Slike (E1) –2015/2016 3/38 Prirodna video scena (1/2) Prirodna video scena

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).

Page 16: PROGRAMSKA PODRŠKA - University of Novi Sad · 2020. 6. 28. · Programska podrška u Televiziji i Obradi Slike (E1) –2015/2016 3/38 Prirodna video scena (1/2) Prirodna video scena

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.

Page 17: PROGRAMSKA PODRŠKA - University of Novi Sad · 2020. 6. 28. · Programska podrška u Televiziji i Obradi Slike (E1) –2015/2016 3/38 Prirodna video scena (1/2) Prirodna video scena

Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 17/38

Vremenska predikcija – vektori pomeraja

Page 18: PROGRAMSKA PODRŠKA - University of Novi Sad · 2020. 6. 28. · Programska podrška u Televiziji i Obradi Slike (E1) –2015/2016 3/38 Prirodna video scena (1/2) Prirodna video scena

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.

Page 19: PROGRAMSKA PODRŠKA - University of Novi Sad · 2020. 6. 28. · Programska podrška u Televiziji i Obradi Slike (E1) –2015/2016 3/38 Prirodna video scena (1/2) Prirodna video scena

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

Page 20: PROGRAMSKA PODRŠKA - University of Novi Sad · 2020. 6. 28. · Programska podrška u Televiziji i Obradi Slike (E1) –2015/2016 3/38 Prirodna video scena (1/2) Prirodna video scena

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

Page 21: PROGRAMSKA PODRŠKA - University of Novi Sad · 2020. 6. 28. · Programska podrška u Televiziji i Obradi Slike (E1) –2015/2016 3/38 Prirodna video scena (1/2) Prirodna video scena

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.

Page 22: PROGRAMSKA PODRŠKA - University of Novi Sad · 2020. 6. 28. · Programska podrška u Televiziji i Obradi Slike (E1) –2015/2016 3/38 Prirodna video scena (1/2) Prirodna video scena

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

Page 23: PROGRAMSKA PODRŠKA - University of Novi Sad · 2020. 6. 28. · Programska podrška u Televiziji i Obradi Slike (E1) –2015/2016 3/38 Prirodna video scena (1/2) Prirodna video scena

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.

Page 24: PROGRAMSKA PODRŠKA - University of Novi Sad · 2020. 6. 28. · Programska podrška u Televiziji i Obradi Slike (E1) –2015/2016 3/38 Prirodna video scena (1/2) Prirodna video scena

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.

Page 25: PROGRAMSKA PODRŠKA - University of Novi Sad · 2020. 6. 28. · Programska podrška u Televiziji i Obradi Slike (E1) –2015/2016 3/38 Prirodna video scena (1/2) Prirodna video scena

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.

Page 26: PROGRAMSKA PODRŠKA - University of Novi Sad · 2020. 6. 28. · Programska podrška u Televiziji i Obradi Slike (E1) –2015/2016 3/38 Prirodna video scena (1/2) Prirodna video scena

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.

Page 27: PROGRAMSKA PODRŠKA - University of Novi Sad · 2020. 6. 28. · Programska podrška u Televiziji i Obradi Slike (E1) –2015/2016 3/38 Prirodna video scena (1/2) Prirodna video scena

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).

Page 28: PROGRAMSKA PODRŠKA - University of Novi Sad · 2020. 6. 28. · Programska podrška u Televiziji i Obradi Slike (E1) –2015/2016 3/38 Prirodna video scena (1/2) Prirodna video scena

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:

Page 29: PROGRAMSKA PODRŠKA - University of Novi Sad · 2020. 6. 28. · Programska podrška u Televiziji i Obradi Slike (E1) –2015/2016 3/38 Prirodna video scena (1/2) Prirodna video scena

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.

Page 30: PROGRAMSKA PODRŠKA - University of Novi Sad · 2020. 6. 28. · Programska podrška u Televiziji i Obradi Slike (E1) –2015/2016 3/38 Prirodna video scena (1/2) Prirodna video scena

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:

Page 31: PROGRAMSKA PODRŠKA - University of Novi Sad · 2020. 6. 28. · Programska podrška u Televiziji i Obradi Slike (E1) –2015/2016 3/38 Prirodna video scena (1/2) Prirodna video scena

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.

Page 32: PROGRAMSKA PODRŠKA - University of Novi Sad · 2020. 6. 28. · Programska podrška u Televiziji i Obradi Slike (E1) –2015/2016 3/38 Prirodna video scena (1/2) Prirodna video scena

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č:

Page 33: PROGRAMSKA PODRŠKA - University of Novi Sad · 2020. 6. 28. · Programska podrška u Televiziji i Obradi Slike (E1) –2015/2016 3/38 Prirodna video scena (1/2) Prirodna video scena

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

Page 34: PROGRAMSKA PODRŠKA - University of Novi Sad · 2020. 6. 28. · Programska podrška u Televiziji i Obradi Slike (E1) –2015/2016 3/38 Prirodna video scena (1/2) Prirodna video scena

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.

Page 35: PROGRAMSKA PODRŠKA - University of Novi Sad · 2020. 6. 28. · Programska podrška u Televiziji i Obradi Slike (E1) –2015/2016 3/38 Prirodna video scena (1/2) Prirodna video scena

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.

Page 36: PROGRAMSKA PODRŠKA - University of Novi Sad · 2020. 6. 28. · Programska podrška u Televiziji i Obradi Slike (E1) –2015/2016 3/38 Prirodna video scena (1/2) Prirodna video scena

Programska podrška u Televiziji i Obradi Slike (E1) – 2015/2016 36/38

Ilustracija koncepta (tok dekodovanja)

Page 37: PROGRAMSKA PODRŠKA - University of Novi Sad · 2020. 6. 28. · Programska podrška u Televiziji i Obradi Slike (E1) –2015/2016 3/38 Prirodna video scena (1/2) Prirodna video scena

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:

Page 38: PROGRAMSKA PODRŠKA - University of Novi Sad · 2020. 6. 28. · Programska podrška u Televiziji i Obradi Slike (E1) –2015/2016 3/38 Prirodna video scena (1/2) Prirodna video scena

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