kodiranje videa
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
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: [email protected]
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:
1),,(),,(,, tjidjjidiStjiS ji
tjidjjidiStjiP ji ),,(),,(1,,
1,,),,(),,(1,,1,,1,, tjiStjidjjidiStjiStjiPtji ji
Napoved gibanja – osnovna ideja Kodiramo parametre premika = vektorje premika Napoved gibanja = računanje vektorjev premika
trenutna slikaS [ ., ., t+1 ]
referenčna slikaS [ ., ., t ]
gibajoči objekt
S [i,j,t ]
S [i,j,t+1 ]
MV(i,
j)
d i(i,j)
d j(i,j)
t
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.
0
0
),,(),,(:
),,(),,(
ty
xT
tyx
tyxtyx
tyx
dt
Sd
dS
ali
dt
Sd
y
Sd
x
S
dt
Sd
y
Sd
x
StyxSdtdydxSTaylor
tyxSdtdydxS
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)
trenutna slikaS [ ., ., t+1 ]
referenčna slikaS [ ., ., t ]
gibajoci objekt<
t
makroblok
Bločna napoved gibanja Računanje vektorjev premika na osnovi minimizacije kriterijske funkcije
Navadno uporabljamo MSE kriterij
Ali pa SAD (v večini implementacij)
),,(),,(1,,minarg)(),()(
,)(),(tjidjjidiStjiSddMV ji
jidd
Tji
ji
jiji
dd
Tji tjidjjidiStjiSddMV
ji ,
2
)(),(),,(),,(1,,minarg)(),()(
jiji
dd
Tji tjidjjidiStjiSddMV
ji ,)(),(
),,(),,(1,,minarg)(),()(
Bločna napoved gibanja (Dodatna folija)
MV
Primer
a) b) c)
d) e) f)
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/mj 2Mi2Mj (kmimj) kNiNj 2Mi2Mj.
N i
N j
2M i
2M j
makroblok
področje iskanja
S [. , ., t ]
S [. , ., t+1 ]
),,(),,(1,,minarg)(),( )(,
)(,)(
T tjidjjidiStjiSddMV jiji
MdMMdM
ji
jjj
iii
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
Logaritemski postopek iskanja
Trikoračni postopek iskanja
Ortogonalni postopek iskanja
Hierarhični postopek iskanja
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)
a) b)
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
trenutna slikaS [ ., ., t+1 ]
gibajoči objekt
MV(i,j)
t
makroblok
premik o
bjekta
razširjeno področje
referenčna slikaS [ ., ., t ]
Izravnava gibanja z OBMC
“Overlapping block motion compensation” Uporaba prekrivajočih makroblokov 32x32 ter okenske
funkcije
,31 0,...n ,16
2
1
cos12
1 ,),(
n
ooonmo nnm
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
Hibridni kodirnikinter/intraodločanje
medpomnilniktrenutna slikaS [i,j,t+1 ]
Transformacija kvantizatorentropijski
koder
Transformacija kvantizatorentropijski
koder
inverzni kvantizator
inverznatransformacija
P q [i,j,t+1 ]
-
+
pomnilnikreferenčne slike
izravnavagibanja
napoved gibanja
vektorjipremika
++
S q [ i,j,t+1 ]
S q[i,j,t ]
q [i,j,t+1 ]
[ i,j,t+1 ]
S q[ i,j,t ]S [ i,j,t+1 ]
kontrola bitnegapretoka
vektorji premika
entropijskikoder
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
jiHjiLtjiS
jiHjiLtjiS
tt
tt
,,2
1,,
,,2
11,,
objekt vsliki
t
objekt vsliki
a) b)
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
trenutna slikaS [ ., ., t+1 ]
referenčna slikaS [ ., ., t ]
področjeprekrivanja
t
makroblok
)( 1MV
)( 2MV
1
2
tjidjjidiStjiSjiH
tjidjjidiStjiSjidjjidiL
jit
jijit
),,(),,(1,,2
1,
),,(),,(1,,2
1),(),,(
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