330 likes | 616 Views
Kodiranje videa. Digitalna obdelava zvoka, slik in videa Podiplomski študij FE 18.3.2003 Boštjan Marušič. Ponovitev: transformacijsko kodiranje slik. Izločanje odvisnosti med slikovnimi elementi (transformacija) Izločanje redundantne informacije
E N D
Kodiranje videa Digitalna obdelava zvoka, slik in videa Podiplomski študij FE 18.3.2003 Boštjan Marušič
Ponovitev: transformacijsko kodiranje slik • Izločanje odvisnosti med slikovnimi elementi (transformacija) • Izločanje redundantne informacije • Izločanje irelevantne informacije (entropijsko kodiranje) • Korelacija je posledica visoke prostorske (krajevne) vzorčne frekvence (visoke ločljivosti slik)! Linearna transformacija Kvantizacija Entropijsko kodiranje Dekorelacija (DCT, wavelet) Slike navadno vsebujeje veliko redundantne informacije – področja konstantne intenzitete Izločanje redundance (oko ni občutljivo na visoke frekvence), bitna alokacija Izločanje irelevantne informacije (Huffman, aritmetični kodirnik, LZW)
O predavanju • Email: • bostjan.marusic@fe.uni-lj.si • Prosojnice, gradiva • http://ldos.fe.uni-lj.si/vaje/PODOS/ • Glej “Kodiranje videa”
Potreba po kodiranju videa • 25 fps • VHS: 352x288, 12bitov/slikovni element = 30,4 Mbit/s • TV 704x576, 12 bitov/ slikovni element = 121,7 Mbit/s • Video CD (MPEG 1) 1,2 Mbit/s • DVD (MPEG 2) 4-8 Mbit/s • MPEG 4 (DivX) < 28 kbit/s • Kompromis med kvaliteto in pasovno širino!
Lastnosti video signalov • Zaporedje slik (frame) -> odvisnost med slikovnimi elementi • Časovna vzorčna frekvenca (slik/s = fps) > 25 fps (človeška percepcija) – zaporedne slike se malo razlikujejo medslikovna odvisnost (korelacija) • Definicija inter- in intra-korelacije/kodiranja Tri slike iz videa “Mom&kid” s časovno vzorčno periodo 1/10s oz. fvz = 10fps
Lastnosti video signalov 2 • Prepletajoče / progresivno vrstično vzorčenje • 25 sodo- oz. liho vrstičnih slik (field)/s – kompromis med časovno in prostorsko ločljivostjo ter pasovno širino signala – uporabljeno pri analognem TV prenosu, npr. PAL • Digitalni video signal = diskretna 3D funkcija • S[i, j, t]
Najpreprostejši način – vsako sliko kodiramo neodvisno • Uporabimo transformacijski kodirnik na vsaki sliki • JPEG MJPEG • Nizka zgostitvena razmerja (1:10) • Nizka računska kompleksnost • Ne upoštevamo časovne odvisnosti slik!
Diferenčno kodiranje videa • S transformacijskim kodirnikom kodiramo najprej referenčno sliko, nato pa razlike med zaporednimi slikami • Bistveno zmanjšanje informacije, ki jo moramo kodirati • Prvi video kodirniki
Napoved gibanja = postopek računanja vektorjev premika • Predpostavka: • Izravnava gibanja – napoved trenutne slike iz referenčne: • Napaka napovedi:
Napoved gibanja – osnovna ideja • Kodiramo parametre premika = vektorje premika • Napoved gibanja = računanje vektorjev premika
Računanje vektorjev premika na osnovi OF enačb • Predpostavka (korelacija) – vsaka točka iz referenčne slike se premakne v trenutno sliko. • Za vsako točko dobimo dva parametra (vektor premika), ki določa kje se je točka nahajala v referenčni sliki. • Ali se izplača? (NE!) • Zahtevno računanje sistema enačb. • Preveliko število parametrov, ki jih je potrebno kodirati • Nov vpogled v kodiranje videa! Ne kodiramo slike oz. Razlike temveč parametre translacije slikovnih elementov = vektorje premika. Pozor: dx = dx(x,y) ter dy = dy(x,y)
Bločna napoved gibanja • Število vektorjev premika zmanjšamo tako, da predpostavimo translacijsko gibanje makroblokov iz slike v sliko (tipična velikost 16x16)
Bločna napoved gibanja • Računanje vektorjev premika na osnovi minimizacije kriterijske funkcije • Navadno uporabljamo MSE kriterij • Ali pa SAD (v večini implementacij)
Primer Uporaba bločne napovedi gibanja: a) referenčna slika, b) trenutna slika z vektorji premika, c) razllika, d) napovedana slika e) OBMC napoved, f) napaka napovedi
Vektorji premika glede na tip gibanja in napoved gibanja – problem bločne napovedi gibanja
Kompleksnost napovedi gibanja • Približno 2/3 operacij kodiranja je posledica napovedi gibanja • Najosnovnejši pristop je omejitev področja iskanja na najbolj verjetno področje • Ni/miNj/mj2Mi2Mj (kmimj) kNiNj 2Mi2Mj.
Hitri postopki iskanja vektorjev premika • Popolno iskanje je prekompleksno. Nikoli ni uporabljeno pri kodiranju v realnem času. • Kompromis med natančnostjo in hitrostjo – testiramo samo manjši del vseh možnih hipotez = hitri postopki iskanja • Trikoračni postopek • Logaritemski postopek • Hierarhično iskanje vektorjev premika
Izboljšave pri napovedi gibanja “fractional pel” accuracy • Pogosto se objekt premakne za manj kot 1 slikovni element v dani smeri • Rešitev: napoved gibanja z neceloštevilčnimi vektorji premika (fractional motion estimation) – interpolacija referenčne slike
Primer • Slika napake napovedi s celoštevilčnimi vektorji premika ter z vektorji z natančnostjo ½ slikovnega elementa (2x interpolacija)
Izboljšave: Neomejeni vektorji premika • “Unrestricted motion vector” • Pogosto se kamara transaltorno premika in objekti uhajajo iz vidnega polja – napake na robu slike z omejenimi vektorji premika
Izravnava gibanja z OBMC • “Overlapping block motion compensation” • Uporaba prekrivajočih makroblokov 32x32 ter okenske funkcije
Primer: rezultat OBMC Navadna izravnava gibanja OBMC
Dodatne izboljšave napovedi gibanja • Prilagodljiva velikost makroblokov • “Backward motion estimation” – referenčna slika je prihodnja slika • “Bidirectional motion estimation” – za vsak makroblok se sproti odločimo, ali bo referenčna slika predhodna ali naslednja (vsi sodobni kodirniki). • Deformabilni makrobloki
Alternativa h hibridnemu kodiranju – Transformacija vzdolž časovne osi • Ne vnaša odvisnosti med zaporedne slike – optimalna bitna alokacija je možna • Haarova transformacija vzdolž časovne osi • Ekvivalentna diferenčnemu kodiranju • Neučinkovita, ko je prisotno gibanje
Transformacija v smeri vektorjev premika • Izvedenka iz Haarove transformacije • Poveča se učinkovitost postopka • Poveča se kompleksnost zaradi napovedi gibanja (ni pa izravnave) • Problem: ne obstaja vedno enolično določljiva povezava med slikovnimi elementi, če uporabimo bločno napoved gibanja
Primerjava hibridnih kodirnikov s kodirniki na osnovi časovne transformacije Opazna bločna popačenja Nizka kompleksnost Nizka zakasnitev Ni bločnih popačenj, slika je zamegljena – večja učinkovitost zaradi optimalne bitne alokacija Visoka računska kompleksnost Visoka zakasnitev kodiranja zaradi hkratnega kodiranja več slik.
Zaključek – pregled standardnih postopkov • H261 – najosnovnejši hibridni koder • Samo P napoved gibanja z celoštevilčnimi vektorji • MPEG 1 • OBMC, “half pixel” napoved gibanja, P in B napoved gibanja • MPEG 2 • H.263 (APM, neomejeni vektorji premika, aritmetično kodiranje) • MPEG4 (DivX) • H.264 (H.26L) = MPEG 4 L10