Kodiranje videa

Preview:

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 Presentation

Citation preview

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:

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