kodiranje videa

33
Kodiranje videa Digitalna obdelava zvoka, slik in videa Podiplomski študij FE 18.3.2003 Boštjan Marušič

Upload: fala

Post on 13-Jan-2016

51 views

Category:

Documents


0 download

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

TRANSCRIPT

Page 1: Kodiranje videa

Kodiranje videa

Digitalna obdelava zvoka, slik in videa

Podiplomski študij FE

18.3.2003 Boštjan Marušič

Page 2: Kodiranje videa

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)

Page 3: Kodiranje videa

O predavanju

Email: [email protected]

Prosojnice, gradiva http://ldos.fe.uni-lj.si/vaje/PODOS/ Glej “Kodiranje videa”

Page 4: 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!

Page 5: Kodiranje videa

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

Page 6: Kodiranje videa

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]

Page 7: Kodiranje videa

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!

Page 8: Kodiranje videa

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

Page 9: Kodiranje videa

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

Page 10: Kodiranje videa

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

Page 11: Kodiranje videa

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)

Page 12: Kodiranje videa

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

Page 13: Kodiranje videa

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)(),()(

Page 14: Kodiranje videa

Bločna napoved gibanja (Dodatna folija)

MV

Page 15: Kodiranje videa

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

Page 16: Kodiranje videa

Vektorji premika glede na tip gibanja in napoved gibanja – problem bločne napovedi gibanja

Page 17: Kodiranje videa

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

Page 18: Kodiranje videa

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

Page 19: Kodiranje videa

Logaritemski postopek iskanja

Page 20: Kodiranje videa

Trikoračni postopek iskanja

Page 21: Kodiranje videa

Ortogonalni postopek iskanja

Page 22: Kodiranje videa

Hierarhični postopek iskanja

Page 23: Kodiranje videa

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

Page 24: Kodiranje videa

Primer

Slika napake napovedi s celoštevilčnimi vektorji premika ter z vektorji z natančnostjo ½ slikovnega elementa (2x interpolacija)

a) b)

Page 25: Kodiranje videa

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 ]

Page 26: Kodiranje videa

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

Page 27: Kodiranje videa

Primer: rezultat OBMC

Navadna izravnava gibanja OBMC

Page 28: Kodiranje videa

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

Page 29: Kodiranje videa

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

Page 30: Kodiranje videa

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)

Page 31: Kodiranje videa

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),(),,(

Page 32: Kodiranje videa

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.

Page 33: Kodiranje videa

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