DVP-6     J. Teuhola 2007
217
6. Videon pakkausmenetelmiä
Kuvanpakkauksesta
Liikekompensaatio
Videonpakkausstandardit
Audion pakkaus
DVP-6     J. Teuhola 2007
218
Datamääristä
Video on kaikkein vaativin mediamuoto
Talletus ja siirto pakkaamattomana eimahdollista nykyisillä laitteilla ja siirto-nopeuksilla.
1 kuva karkeasti 8 Mbittiä
25 kuvaa/sek noin 200 Mbittiä
Tunnin video noin 720 Gbittiä
Lisäksi audiodata
DVP-6     J. Teuhola 2007
219
Pakkauksen edellytykset
Pakkaus perustuu datan sisältämäänredundanssiin.
Spatiaalinen redundanssi: Kuvan sisällä vahvakorrelaatio naapuripikselien välillä.
Temporaalinen redundanssi: Peräkkäistenkuvien välillä vahva riippuvuus, paitsileikkauskohdissa.
DVP-6     J. Teuhola 2007
220
Informaatioteorian alkeita
Jos koodataan pikseli kerrallaan, niin pikselinsävy voidaan ennustaa suurellatodennäköisyydellä (p) naapureista taiedeltäjäkuvien vastinpikseleistä.
Informaation määrä (bittimäärä) = log2(1/p)
Jos sävyn i todennäköisyys on pi, niinbittimäärän odotusarvo/pikseli (ns. entropia) on
DVP-6     J. Teuhola 2007
221
Pakkauksen päävaiheet
1. Mallintaminen:
Kuvataan sävyjen jakautuma ja riippuvuusnaapureista ja muista kuvista jollakin tavalla
Muodostetaan koodattavia elementtejä
2. Koodaus:
Annetaan elementeille binäärikoodit
Perustuu elementtien todennäköisyyksiin
Tunnettuja algoritmeja: Huffman-koodaus,aritmeettinen koodaus
DVP-6     J. Teuhola 2007
222
Menetelmien ominaispiirteitä
Häviöttömyys: alkuperäinen kuvasarja voidaanpalauttaa tarkasti; ei käytetä videolle.
Häviöllisyys: voidaan palauttaa alkuperäisenkuvansarjan approksimaatio; riittää videolle.
Pakkausteho (pakattu/alkuperäinen)
Nopeus: Käytännön kannalta tärkeä
Koodausnopeus ( live-lähetykset)
Dekoodausnopeus ( katselu)
Herkkyys tiedonsiirtovirheille (’robustness’)
DVP-6     J. Teuhola 2007
223
Kuvan pakkaushäviön mittaus
Keskineliövirhe:
Keskimääräinen absoluuttinen virhe:
Peak Signal-to-Noise Ratio (n=bittiä/pikseli):
DVP-6     J. Teuhola 2007
224
Kiintokuvien pakkauksesta
Jos videon kuvat pakataan toisistaan riip-pumatta, voidaan käyttää normaalejakuvanpakkausmenetelmiä: JPEGMJPEG
Helpottaa videon editointia pakatussamuodossa: voidaan leikata mistä kohdastatahansa.
Jättää peräkkäisten kuvien välisen (’tempo-raalisen’) riippuvuuden huomioimatta (eitehokasta).
DVP-6     J. Teuhola 2007
225
JPEG
Yksi yleisimpiä kuvanpakkausformaatteja
Häviöllinen, mutta hukka säädettävissä
Tyypillinen pakkaussuhde 10:1 antaa riittävänlaadukkaan dekoodaustuloksen.
Perustuu kuvan ’frekvenssiesitykseen’:korkeat ’taajuudet’ voidaan esittää karkeammin– ihmissilmä ei herkkä virheille epätasaisillaalueilla.
Vastaava idea myös videonpakkauksessa
DVP-6     J. Teuhola 2007
226
JPEG harmaasävykuville
Diskreetti kosinimuunnos (sukua Fourier-muunnokselle), tavoitteena dekorrelaatio.
DVP-6     J. Teuhola 2007
227
JPEG harmaasävykuville (jatk.)
Muunnos tehdään jokaiselle 8x8 –lohkolle
Tulos 8x8 –matriisi; matalien taajuuksienkertoimet vas.ylhäällä, korkeiden taajuuksienkertoimet oik. alhaalla.
Kertoimet kvantisoidaan (matalat taajuudettarkemmin, koska tärkeämpiä)
Suurin osa kertoimista on yleensä nollia.
Lopuksi entropiakoodaus (Huffman taiaritmeettinen koodaus).
DVP-6     J. Teuhola 2007
228
DCT-pohjaisen pakkauksen laadusta
DCT-muunnos on itsessään häviötön
Häviö tulee kvantisoinnista
Suurta kvantisointiaskelta käyttäen saadaanhyvä pakkaussuhde, mutta informaatiohukkailmenee lohkomaisuutena (’blocking artifacts’):Vain pienimpiä taajuuksia edustavatDCT-kertoimet nollasta poikkeavia.
DVP-6     J. Teuhola 2007
229
Värikuvien pakkauksesta
Suoraviivainen yleistys harmaasävykuvienpakkaukselle
Ensimmäinen idea:
Kullekin värikanavalle erikseen
Ei tehokas, koska värit korreloivat
Parempi idea:
Erotetaan luminanssi väri-infosta
JPEG: muunnos YUV-järjestelmään;krominanssikomponentit (U, V) voidaan koodataepätarkemmin kuin kirkkaus (Y).
DVP-6     J. Teuhola 2007
230
Videonpakkaus vs. kuvanpakkaus
Peräkkäisten kuvien korrelaatioita pitäisikäyttää hyväksi.
Häiritsevät pakkaushäviöt voivat ollaerityyppisiä kuin kiintokuvissa.
Nopeissa liikkeissä häviöt eivät ole yhtä helpostihavaittavissa.
Eri käyttötilanteisiin omat menetelmänsä.
Useimmissa pohjana DCT-muunnos
Pakkaussuhde 50:1 kohtuullisen laadukas
DVP-6     J. Teuhola 2007
231
Liikekompensaatio
Peräkkäisissä videokuvissa tausta on useinstaattinen (pl. satunnaisvaihtelut); vain jotkinedustalla olevat kohteet liikkuvat (jos kamerapaikallaan).
Seuraava kuva voidaan ennustaa melkotarkasti, jos kohteiden liikevektorit tunnetaan.
Liikekompensaatio = liikevektorien etsintä,koodaus ja käyttö ennustuksessa.
DVP-6     J. Teuhola 2007
232
Liikekompensaation tyypillinen toteutus
Kuvan jokainen lohko (yleensä 16x16-makrolohko) ennustetaan naapurikuvasta(jo käsitelty ja dekoodaajankin tiedossa).
Ennustaja = viereisen kuvan vastinlohkonnaapuruston lohko, joka parhaiten täsmäätarkasteltavan lohkon kanssa.
Liikevektori = ennustajan ja ennustetun lohkonvälinen sijaintiero.
DVP-6     J. Teuhola 2007
233
Liikekompensaatio (jatk.)
Esim. erotus ilman liikekompensaatiota:
Koodattavat asiat:
Liikevektorit
Erotuskuvat (’error image’), kuten JPEG
-
=
DVP-6     J. Teuhola 2007
234
Yleinen videonpakkausjärjestelmä
Erotus-kuva
Muunnos-operaatio
Kvanti-soija
Arvojenkoodaus
Käänteis-kvantis.
Käänteis-muunnos
Kuva-muisti
Liikekom-pensaatio
Liikkeenarviointi
Liikevekt.koodaus
Kuva
DVP-6     J. Teuhola 2007
235
ITU-T H.261 -standardi
International Telecommunication Union, 1990
Tarkoitettu symmetrisiin käyttötilanteisiin,(koodaus ja dekoodaus yhtä nopeita)
Sovelluksina videokonferenssi, kuvapuhelin,yms.
Määrittelee bittivirran ja dekooderin; enkooderijätetty avoimeksi.
Max 150 ms viive (reaaliaikasovellukset)
DVP-6     J. Teuhola 2007
236
ITU-T H.261 (jatk.)
Ennustajalohkoa etsitään max 15 pikselin päästävaaka-/pystysuunnassa.
Yksikkönä 16x16 –makrolohko
Vertaillaan vain luminanssikomponentteja
Ennustuslohkon pehmennys suodattimella.
31 mahdollista askelpituutta kvantisoinnissa(DCT-kertoimien jakaja).
DVP-6     J. Teuhola 2007
237
ITU-T H.261 (jatk.)
Standardi sisältää paljon optioita; esim. pelkkäliikekompensaatio tai DCT-muunnos 8x8-erotuslohkoille
Kvantisoitujen kertoimienläpikäynti ’siksak’-järjes-tyksessä, jotta 0-jonojenpituudet maksimoituvat.
Kertoimien (0) koodaus(Huffman)
* * * * * * * *
* * * * * * * *
* * * * * * * ** * * * * * * ** * * * * * * ** * * * * * * ** * * * * * * ** * * * * * * *
DVP-6     J. Teuhola 2007
238
ITU-T H.261 (jatk.)
Datahierarkia:
1 CIF-kuva (Common Interchange Format)
= 12 GOBs (Groups Of Blocks)
= 12 x 33 makrolohkoa)
= 12 x 33 x 4 peruslohkoa
= 12 x 33 x 4 x 8 x 8 = 101376 pikseliä
Värit: makrolohkon ’subsampling’ (joka toinenarvo värierokanavista)
DVP-6     J. Teuhola 2007
239
ITU-T H.261 (jatk.)
Myös lähettäjän pitää dekoodata kuva jatallettaa se liikekompensaatiota varten.
Silloin tällöin (esim. joka 15:s) kuva ilmanliikekompensaatiota (virheiden kasaantuminen)
Paljon toimintaa  paljon dataa,vähän toimintaa  vähän dataa
Puskuri ei saisi täyttyä eikä tyhjentyä.
Tasainen siirto saadaan käyttämällä useitakvantisointitasoja (valinta per lohko,ilmoitetaan myös dekoodaajalle).
DVP-6     J. Teuhola 2007
240
MPEG-standardiperhe
ISO / Moving Pictures Experts Group,Aloitti työnsä 1988
MPEG-1:   1.5 Mbps  CD-ROM (1992)
MPEG-2:  10 Mbps  digi-tv (1994)
MPEG-3:  40 Mbps  HDTV; Hylättiin
MPEG-4: Oliopohjainen multimedia (1998/99)
MPEG-7: AV-sisällönkuvaus (2001)
MPEG-21: Integraatio (2001)
DVP-6     J. Teuhola 2007
241
MPEG-1
Muistuttaa paljon H.261-standardia
Tarkoitettu  1.5 Mbps –siirtonopeuksille
Enintään VHS-tasoa, elokuva mahtuusuunnilleen CD-ROMille
Geneerinen standardi (ei rajoitu mihinkääntiettyyn sovellukseen).
Sekä videon että audion koodaus(tarkastellaan myöh.)
DVP-6     J. Teuhola 2007
242
MPEG-1: liikekompensaatio
Kaksisuuntainen, perustuen joko edeltäjä- taiseuraajakuvaan tai molempiin.
Liikevektori puolen pikselin tarkkuudella.Välipisteet lasketaan bilineaarisellainterpolaatiolla.
Liikevektorien koodaus: ero viereisenmakrolohkon liikevektorista.
Liikevektorin arvoalue –512 .. 511.5
DVP-6     J. Teuhola 2007
243
MPEG-1: syöttöformaatti
PAL tai NTSC
Pikselimäärän pienennys: otanta (subsampling)ja suodatus (filtering)
Luminanssidimensiot:352 x 288 (PAL), tai 352 x 240 (NTSC)
Krominanssidimensiot:176 x 144  (PAL), tai 176 x 120 (NTSC).
DVP-6     J. Teuhola 2007
244
MPEG-1: kuvatyypit
I-frame (intra-coded): itsenäisesti koodattu kuva,ilman liikekompensaatiota;mahdollinen dekoodauksen aloituskohta
P-frame (predictive-coded): liikekompensoituedellisestä I/P-kuvasta.
B-frame (bidirectionally coded): liikekompensoitusekä edeltävästä että seuraavasta I/P-kuvasta
DVP-6     J. Teuhola 2007
245
MPEG-1: Kuvaryhmä
GOB = Group-Of-Pictures
Pienin suorasaantiyksikkö, voidaan koodatariippumattomasti, esim.
I
B
 P
B
B
B
B
B
 P
B
B
B
I
Kaksisuuntainen ennustus
Eteenpäin ennustus
DVP-6     J. Teuhola 2007
246
MPEG-1: Kuvajärjestys
Kaksi järjestystä: näyttöjärjestys jabittivirtajärjestys.
Ennustajaroolissa olevat kuvat dekoodattavaennen ennustettavia.
Tarvitaan puskuri
Syntyy pieni viive
DVP-6     J. Teuhola 2007
247
MPEG-1: Bittivirran sisäinen hierarkia
Videosekvenssi
 Kuvaryhmä (GOP)
 Kuva
  Viipale (slice)
Makrolohko
    Lohko
DCT-kerroin
DVP-6     J. Teuhola 2007
248
MPEG-2
= ITU-T H.262
Bittinopeuden suositusväli 4-15 Mbps
Periaatteessa sovellusriippumaton; alueita:Video-On-Demand (VOD), broadcast-TV(kaapeli/satelliitti/terrestiaali-digi-tv), DVDHDTV
Progressiivisen & lomitetun videon koodaus
Kiinnitetään bittivirta ja dekooderi, mutta eienkooderia (samoin kuin MPEG-1)
DVP-6     J. Teuhola 2007
249
MPEG-2: Yhteensopivuus
Dekooderi pystyy dekoodaamaan myösMPEG-1-bittivirtaa
Skaalautuvassa koodauksessa MPEG-2:nperustason koodia voi dekoodata myösMPEG-1-dekooderilla
Profiileja tarvitaan eri sovellusalueita varten
Jokaisen dekooderin ei ole järkevääimplementoida koko standardia
DVP-6     J. Teuhola 2007
250
MPEG-2: Profiilit
Useita optioita, joilla voidaan säätäädatamäärää ja kuvan laatua:
Simple (ei B-frameja)
Main
SNR-skaalautuva
Spatiaalisesti skaalautuva
High
DVP-6     J. Teuhola 2007
251
MPEG-2: Tasot
Profiilien sisällä tasoja, jotka vastaavat erilaatutasoja; ilmenevät parametriarvojenrajoittein(otantataajuus, kuvataajuus,bittimäärä/sek)
Vaihtoehdot (PAL-järjestelmässä):
High (1920 x 1152)
High-1440 (1440 x 1152)
Main (720 x 576)
Low (352 x 288)
DVP-6     J. Teuhola 2007
252
MPEG-2: Rajoitteita
Kaikki profiili-taso-yhdistelmät eivät mahdollisia
Matalampi profiili & taso -yhdelmä sisältyy ainakorkeampaan.
Periaatteellinen maksimikuvakoko 16K x 16Kpikseliä.
Kuvataajuudet: 23.976, 24, 25, 29.97, 30, 50,59.94, 60 (kuten MPEG-1).
Väriotanta: 4:2:0, 4:2:2, 4:4:4
DVP-6     J. Teuhola 2007
253
MPEG-2: Lomitettu video
Kentät (2 kpl/kuva) koodataan erikseen
Jos 1. kenttä I-kuva, niin toinen voi olla I- tai P-kuva;P-kuva ennustetaan I-kuvasta
Jos 1. kenttä on P-/B-kuva, niin toisen oltava samaatyyppiä.
Liikekompensaatiovaihtoehdot:
Frame-based
Field-based
Dual-prime (2 referenssikenttää)
Näistä erilaisia variaatioita
DVP-6     J. Teuhola 2007
254
MPEG-2: Lomitettu video (jatk)
DCT-koodaus
Frame-based (jos vähän liikettä; makrolohkosta 4erillistä 8 x 8 -lohkoa)
Field-based (jos paljon liikettä; makrolohkosta 4lomitettua 8 x 8 -lohkoa)
Kaksi erilaista 'sik-sak-järjestystä' DCT-kertoimille; toinen suosii lomitettua videota, jossavertikaalisuunnassa korkeita taajuuksia.
DVP-6     J. Teuhola 2007
255
MPEG-2: skaalautuva koodaus(kerrostus)
Voidaan käyttää useaa bittivirtaa (ei simple jamain –profiileissa)
Peruskerros (layer):
Peruslaatu
Melko pieni datamäärä
Korkea prioriteetti
Tarkennuskerrokset
Peruskerrokseen yhdistettynä parempi laatu
Alempi prioriteetti
DVP-6     J. Teuhola 2007
256
MPEG-2: kerrostus (jatk.)
Tarvitaan häiriöisille siirtoteille; perustasoturvataan paremmin (virheenkorjaus)
Joustava verkoissa, joissa siirtonopeusvaihtelee: Jos kaista kapenee, tarkennus-kerrokset jätetään pois.
Sopii myös progressiiviseen siirtoon (nopeastikarkea versio videosta)
Toteutus: alikaistajako (matalat & korkeattaajuudet) tai DCT-kertoimien jako ryhmiin
DVP-6     J. Teuhola 2007
257
MPEG-2: SNR-skaalautuvuus
SNR = Signal-to-Noise-Ratio(signaali-kohina-suhde)
Kaksi laatutasoa:
Karkea taso sisältää karkeasti kvantisoidut DCT-kertoimet
Tarkennustaso esittää syntyneet kvantisointivirheettarkemmin kvantisoituina.
DVP-6     J. Teuhola 2007
258
MPEG-2: Spatiaalinen skaalautuvuus
Karkea taso otannalla (downsampling)hienommasta resoluutiosta
Esim. SDTV (Standard Definition TV) saadaanotannalla HDTV:stä (High Definition TV)
Karkeata tasoa käytetään koodattaessa tarkempitaso: resoluution laajennus (up-sampling)interpolaatiolla ja yhdistäminenliikekompensaatioon sopivasti painotettuna
DVP-6     J. Teuhola 2007
259
MPEG-2: Muita skaalautuvuuksia
Temporaalinen skaalautuvuus:
Perustaso pienemmällä kuvataajuudella
Perustason kuvat toimivat 'ennustuskuvina' väliinlisättäville korkeamman kuvataajuuden kuville(esim. 25 kuvaa/ sek  50 kuvaa/sek)
Hybridi-skaalautuvuus:
Skaalautuvuuksia yhdistellään pareiksi
1 peruskerros ja 2 tarkennuskerrosta
DVP-6     J. Teuhola 2007
260
ITU-T H.263 -videonpakkausstandardi
Määritelty 1995
Monentyyppisiin verkkosovelluksiin (”Very lowbitrate Internet telephony”)
 64 Kbps
Laajennus H.261:stä (tehokkaampi)
Kaksisuuntainen liikekompensaatio
Koodausmenetelmät:
DPCM (Differential Pulse Code Modulation)
DCT (Discrete Cosine Transform)
Pohjana MPEG-4 Visualin Simple-profiilille
DVP-6     J. Teuhola 2007
261
MPEG-4
Pohjana ITU-T H.263 –standardi
Työ alkoi 1993, pääosin valmis 1999
Alkuperäinen tavoite: videon tehokas koodaushitaita siirtoteitä varten
Laajeni sitten yleiseksi multimediankoodausstandardiksi
Tukee interaktiivisuutta ja sisältöpohjaistasaantia; ssä tarkoituksessa sitä täydentääMPEG-7-standardi.
Lähes 20 erilaista profiilia!
DVP-6     J. Teuhola 2007
262
MPEG-4: Sovellusaloja
Interaktiivinen videon siirtoyhteys, esim.videopuhelin, videoneuvottelu
Ei-interaktiivisen videon siirto, esim. broadcast,video-email
Digitaalinen tallennus (optiset levyt)
Videotietokannat, sisältöpohjainen käsittely
Videovalvonta
Interaktiiviset videopelit
DVP-6     J. Teuhola 2007
263
MPEG-4: Piirteitä
Virhesietoisuus siirrossa
Luonnollisen ja synteettisen av-datangeneerinen koodaus ja yhdistäminen
Oliopohjaisuus: videokuvat voidaan kootaosista (esim. kohde + tausta), jotka ovatitsenäisiä ja koodataan omalla tavallaan
Tuki erimuotoisille video-objekteille (muodot,2D- ja 3D-polygoniverkot, kasvot, vartalo)
Tehokas pakkaus eri oliotyypeille jakuvamateriaaleille
DVP-6     J. Teuhola 2007
264
MPEG-4: Piirteitä (jatk.)
Oliokohtainen interaktiivisuus: käyttäjä voivaikuttaa olioihin erikseen.
Oliopohjainen hajasaanti
Temporaalinen hajasaanti (katselunaloituskohdan valinta)
Temporaalinen, spatiaalinen, laadullinen jaoliotason skaalautuvuus erinopeuksisiasiirtoteitä ja eritasoisia katselu-/kuuntelu-laitteita varten.
Progressiivisen ja lomitetun videon pakkaus
DVP-6     J. Teuhola 2007
265
MPEG-4: AV-oliot
AV-olio on visuaalinen komponentti,audiokomponentti tai näiden yhdelmä.
Video:
Luonnollinen (kamerasta) tai synteettinen
Audio:
Luonnollinen/synteettinen
Mono/stereo/monikanava
Audiovisuaalinen näkymä (scene):
AV-olioiden kompositio
DVP-6     J. Teuhola 2007
266
MPEG-4: AV-olioiden siirtoja näyttö
Interaktiivisuuden mahdollistamiseksi pitääkäyttäjille välittää kunkin av-olion koordinaatiteli näkymän rakenneinfo siirretään omanavirtanaan, multipleksoituna av-olioidenperusbittivirtojen kanssa
Näkymä kootaan käyttäjän päätelaitteessa
Kompositiota voidaan muuttaa muuttamattaav-olioiden sisältöä
DVP-6     J. Teuhola 2007
267
MPEG-4: AV-olioiden siirtoja näyttö (jatk.)
Olioiden ominaisuuksia voidaan muuttaavastaanottopäässä, esim. zoomaus,resoluution muutos, ym.
Jotkin toiminnot vaativat kontrollitiedon siirtoapalvelimeen (ns. upstream data), joka muuttaabittivirtaa sen perusteella.
DVP-6     J. Teuhola 2007
268
MPEG-4: Olioiden koodaus
Video-olioiden vaihtoehdot:
Luonnollinen tai synteettinen
Suorakulmainen tai mielivaltaisen muotoinen
Verkkomaisten (mesh) olioiden koodaus, esim.kolmioverkoista rakennetut oliot
Mallipohjainen koodaus: ihmiskasvojen javartalon synteettinen esitys ja animointi
Kiintokuvien tekstuurien koodaus: Wavelet-menetelmä
DVP-6     J. Teuhola 2007
269
MPEG-4: Video-olion (VO) koodaus
Mielivaltaisen muotoinen olio
2D-kuva tietyllä hetkellä = VO-taso(VO-plane = VOP)
VOPin määrittely: Muoto (maski)+ tekstuuri (luminanssi & krominanssi)
Koodauksessa määriteltävä lisäksi liike
Suorakulmainen VOP: koodaus  MPEG-2
Muut muodot löydetään segmentointi- taichroma key tekniikoilla.
DVP-6     J. Teuhola 2007
270
MPEG-4: Video-olion (VO) koodaus (jatk.)
Koodaustehtäviä:
Muodon koodaus
Liikekompensaatio (= ennustus)
Ennustusvirheiden DCT-koodaus
Koodaus makroblokkitasolla, sijoitettunaobjektia rajaavan suorakaiteen (MBR =Minimum Bounding Rectangle) sisälle
Kolme VOP-tyyppiä (vrt. MPEG-1 ja -2):I-VOP, P-VOP ja B-VOP
DVP-6     J. Teuhola 2007
271
MPEG-4: Liikekompensaatio
Globaali liikevektori koko VOPille
Kullekin makrolohkolle lokaali liikevektori:
Vain P- ja B-VOPeille
Perustuu kolmen naapurilohkon perusteellatehtävään ennustukseen
Ennustamisvirheen vaiht.mittainen koodaus
Pikseliarvoja ekstrapoloidaan tarvittaessaennustusolion reunoilta ulospäin
Tarkkuus 1/4 pikseliä
Forward, backward, interpolaatio tai 'direct'
DVP-6     J. Teuhola 2007
272
MPEG-4: Tekstuurin koodaus
I-VOPit ja P-/B-VOPien ennustusvirheet
DCT-koodaus: Makrolohkossa
4 kpl 8 x 8 luminanssimatriisia
2 kpl 8 x 8 krominanssimatriiseja (U, V)
Jos makrolohko osittain VOPin ulkopuolella,niin
I-VOPeille ekstrapolointi
P/B-VOPeille ennustusvirhe = 0
DVP-6     J. Teuhola 2007
273
MPEG-4: Tekstuurin koodaus (jatk.)
Vaihtoehto: muotoon mukautuva(shape-adaptive) SA-DCT:
Tehokkaampi koodaus, mutkikkaampi toteutus
Sisälohkot kuten MPEG-2
VOPin ulkopuolella olevia lohkoja ei koodata
Lisäksi variaatioita.
DVP-6     J. Teuhola 2007
274
MPEG-4: Muodon koodaus
Bittikartta: 0 = sisällä, 1 = ulkona
Koodaus 16 x 16 –lohkoina
Kokonaan muodon sisällä/ulkona olevat lohkoton helppo koodata.
Osittain sisällä olevat lohkot koodataankontekstipohjaisella aritmeettisella kooderilla(I-VOPille konteksti = 10 jo käsiteltyä pikseliäylävasemmalla); reunoilla kontekstiin mukaannaapurilohkojen pikseleitä
DVP-6     J. Teuhola 2007
275
MPEG-4: Muodon koodaus (jatk.)
P- ja B-VOPeille kontekstin muodostavatennustava muotomatriisi ja nykyisen tunnetutnaapurit; koodaus kontekstipohjaisellaaritmeettisella kooderilla.
Voidaan käyttää myös häviöllistämuodonkoodausta
Osittainen läpinäkyvyys (alfa-kanava)koodataan samalla tavalla kuin tekstuuri.
DVP-6     J. Teuhola 2007
276
MPEG-4: Sprite-koodaus
Sprite = vakiosisältöinen video-olio, jokakoodataan ja lähetetään kerran, esim.taustakuva
Sprite-oliota on mahdollista panoroida jazoomata dekoodauspäässä, jos sen kuva-alaon riittävän laaja.
DVP-6     J. Teuhola 2007
277
MPEG-4: Verkkorakenteisten olioidenkoodaus
Mesh-rakenne
Olio jaetaan monikulmioihin (yl. kolmioihin)
2D (grafiikassa yleisemmin 3D).
Solmupisteet toimivat referenssipisteinäesitettäessä olion liikettä kuvasta toiseen.
Liikevektori = ero edellisen solmupisteenliikevektoriin nähden.
Ns. warping-tekniikka monikulmioidentekstuureille
DVP-6     J. Teuhola 2007
278
MPEG-4: Verkkorakenteisten olioidenkoodaus (jatk.)
Alkutilanne: tasainen tai mielivaltainen (Delanay)kolmiointi
Olioesiintymä = MOP (Mesh Object Plane)
Solmupisteiden valinta ja pisteiden seurantaeivät kuulu standardin piiriin.
Keyframe-tekniikka: solmupisteiden paikatinterpoloidaan välikuvissa.
Vähentää lohkomaisuutta alhaisillasiirtonopeuksilla.
DVP-6     J. Teuhola 2007
279
MPEG-4: Mallipohjainen koodaus
Tukee erittäin alhaista siirtonopeutta
Kasvojen mallinnus:
Pään geometria + tekstuuri
FDP/FAP = Face Definition/Animation Param.
Kiintopisteiden (82 kpl) liikuttelu luo ilmeitä
68 perusanimaatiota
Korkean tason ilmauksia: ilo, suru, pelko, ...
Suun liikkeet, puheanimaatio
Vastaavasti vartalon (body) mallinnus
DVP-6     J. Teuhola 2007
280
MPEG-4: Kiinteän tekstuurin koodaus
Menetelmä: 2D-wavelet-muunnos
Myös muotoon sopeutuva (shape-adaptive)variaatio mahdollinen
Jako taajuuskaistoihin; alhaisimman taajuudenkoodaus naapuriarvojen eroina (DPCM-menetelmä), muut kaistat zerotree-tekniikalla(nollasta poikkeavat arvot)
Lopuksi aritmeettinen koodaus
Spatiaalinen tai SNR-skaalautuva
DVP-6     J. Teuhola 2007
281
MPEG-4: Skaalautuvuus
Bittivirta koostuu perus- ja tarkennusker-roksista, joista jälkimmäiset optionaalisia
Sopeutuu
Eri siirtonopeuksiin
Verkon ruuhkaisuuteen
Eri näyttöresoluutioihin
Dekooderin tasoon.
DVP-6     J. Teuhola 2007
282
MPEG-4: Skaalautuvuus (jatk)
Skaalautuvuustyyppejä:
Kehyspohjaiset:
Temporaalinen (kuvia/sek)
Spatiaalinen (pikselimäärä)
Laatu (kvantisointitarkkuus)
Oliopohjainen
Tärkeät oliot muita tarkemmin
DVP-6     J. Teuhola 2007
283
MPEG-4: Virhesietoisuus
Sopeutuminen epäluotettaviin siirtoteihin
Pääkategoriat:
Uudelleensynkronointi: makrolohkopake-teissatunnistusbittijono
Tiedon partitiointi: Liikevektorit ja tekstuurit erikseen;tukee virheiden ’kätkemistä’ (ei standardoitu)
Käänteinen vaihtelevanmittainen koodaus:dekoodaus kumpaan suuntaan tahansa.
DVP-6     J. Teuhola 2007
284
MPEG-4: Profiilit
Koko välineistön toteutus kaikissadekoodereissa ei mielekästä
Standardi määrittelee osajoukkoja eli profiileja,mm. seuraavia ryhmiä:
Luonnollinen video (simple, core, main, ... ; 15 kpl)
Synteettinen video (basic animated texture, simpleface animation, simple face and body animation)
Hybridi
DVP-6     J. Teuhola 2007
285
Muita videostandardeja:ITU-T H.264
Maaliskuu 2003
Väite: puolet tehokkaampi kuin MPEG-2
Monipuolisempi liikekompensaatio kuinaiemmissa standardeissa
Approksimatiivinen DCT-muunnos 4 x 4-lohkoille
Erilaisia vaihtelevanmittaisia loppukoodaus-tekniikoita, mm. kontekstipohjainenaritmeettinen koodaus.
DVP-6     J. Teuhola 2007
286
H.264: Profiilit
1.Baseline:Videoneuvottelut, langattomat verkot
2.Main:TV-broadcast, videotallennus
3.Extended:Streaming media
Myöhemmin lisätty useita high-profiileja, mm. HD-tasoista videota varten, sekä tiheämpää väriotantaa(4:2:2, 4:4:4) ja isompaa bittimäärää/pikseli varten.
DVP-6     J. Teuhola 2007
287
H.264: Piirteitä
Tarjoaa monipuoliset ennustusmahdollisuudetsekä kuvien kesken (liikekompensaatio) ettäniiden sisällä (spatiaalinen redundanssi).
Koodauksessa pyritty sekä pakkaus-tehokkuuteen että nopeuteen.
Lohkomaisuuden poistosuodatin mukanastandardissa.
Yleinen havainto: Niin paljon vaihtoehtoja, ettätehokkaan kooderin toteutus on suuri haaste.
DVP-6     J. Teuhola 2007
288
H.264: Piirteitä
Kuva koostuu makrolohkoista (16 x 16), joitaryhmitellään vaihtelevan kokoisiksi siivuiksi eliviipaleiksi (slice):
I-siivu vain I/P-makrolohkoja
P-siivu: I/P/skipped-makrolohkoja
B-siivu: I/B-makrolohkoja
SI-siivu: Tuki streamin vaihdolle (extended profile)
SP-siivu: Tuki streamin vaihdolle (extended profile)
Siivuille erilaisia ryhmittelytapoja ja koodaus-järjestyksiä (virheiden spatiaalinen rajoitt.).
DVP-6     J. Teuhola 2007
289
H.264: Makrolohkotyypit
I-lohko: Ei liikekompensaatiota; framensisäinen (intra-) ennustus ja koodaus jokokoko 16x16- tai 4x4-osalohkoille.
P-lohko: Liikekompensaatio yhdenreferenssikuvan perusteella; mahdollisetosalohkokoot (kullekin liikevektori):16x16, 16x8, 8x16, 8x8, 8x4, 4x8, 4x4(chroma-komponenteille puolet näistä).
B-lohko: 1 tai 2 referenssilohkoa.
DVP-6     J. Teuhola 2007
290
H.264: Liikekompensaatio
Puskurissa pidetään useita aiemmin koodattujareferenssikuvia, joita on kahta tyyppiä:
Lyhytaikaisia (short-term); liukuva ikkuna
Pitkäaikaisia (long-term); poisto eksplisiittisesti
Baseline-profiilissa vain yksi referenssikuvalista,main-profiilissa kaksi.
Makrolohkon koodaus sisältää referenssikuvanindeksin.
DVP-6     J. Teuhola 2007
291
H.264: Liikevektoreista
Tarkkuus ¼ pikseliä (luma; chromalle 1/8 piks.)
Kokonaisindeksien kohdalla käytetään todellisiareferenssipikseleitä
Puolikaspikselien kohdalla interpolaatio 3+3naapurin suhteen (ensin toisen, sitten toisendimension suhteen).
Neljännespikseleille interpolaatio kahdennaapurin (todellisen tai interpol.) keskiarvona
Chroma: Lineaarinen interpolaatio 4:stätodellisesta naapuripikselistä.
DVP-6     J. Teuhola 2007
292
H.264: Liikevektorien koodaus
Läheisten lohkojen liikevektorit korreloivat.
Lasketaan ennustevektori jo koodattujennaapurivektorien perusteella.
Lasketaan ennusteen ja todellisen vektorinerotus ja koodataan se (paitsi skipped-lohkollekopioidaan suoraan referenssilohkosta).
A
B
A
C
A
B
C
mediaani(A,B,C)
DVP-6     J. Teuhola 2007
293
H.264: Kuvan sisäinen ennustus
Tehdään intra-moodissa
4 x 4 –lohkot: 9 vaihtoehtoista ennustusmoodia
16 x 16 –lohkot: 4 vaihtoehtoista enn.moodia
chroma-lohkot: 4 vaihtoehtoista enn.moodia
Tai: pikselien koodaus suoraan ilmanennustusta
Ennustustapa pitää signaloida dekooderille.
Koska naapurien ennustustavat korreloivat, niinennustustapa ennustetaan naapureista!
DVP-6     J. Teuhola 2007
294
H.264: Taajuusmuunnos
4 x 4 –lohkoille (koodataan erotus ennusteesta)
Intra-koodatut 16 x 16 –lohkot ja 8 x 8 chroma-lohkot: Hadamard-muunnos 4 x 4 -osille
Muut: DCT-pohjainen muunnos 4 x 4 -osille:
Kokonaislukuaritmetiikka (16-bittinen)
Käänteismuunnoksen tulos yksikäsitteinen
Voidaan pääosin suorittaa yhteenlaskuin ja shiftein
Skaalauskerroin integroitu kvantisoijaan
DVP-6     J. Teuhola 2007
295
4 x 4 –DCT-muunnos
missä
DVP-6     J. Teuhola 2007
296
H.264: 4 x 4 -DCT-approksimaatio
missä
ja  on tulo alkioittain eli kertoimien skaalaus
Huomaa: kakkosella kertominen = shift left
DVP-6     J. Teuhola 2007
297
H.264: Kvantisointi
Korkeat taajuudet eivät niin ’tärkeitä’ karkeampi kvantisointi
H.264 tarjoaa 52 kvantisointitasoa, arvottaulukoitu, indeksi määräytyy tilanteen mukaan(kooderi voi valita).
Kvantisointiarvot yhdistetään DCT-muunnoksenskaalausmatriisiin; laskenta järjestetty siten,että tarvitaan yksi kertolasku & shift per kerroin
DVP-6     J. Teuhola 2007
298
H.264: Entropiakoodaus
Eri tilanteissa käytössä kaksi vaihtoehtoa:
Kontekstiriippuva aritmeettinen koodaus
Eksponentiaalinen Golomb-koodaus: 0 010  2  011 00100 00101 00110 00111...
DVP-6     J. Teuhola 2007
299
H.264: Lohkomaisuuden poistosuodatin
Suoritetaan kooderissa ja dekooderissa ennenlohkon käyttöä ennustuksessa (intra-koodauksessa ennustajat suodattamattomia)
Suodatusteho riippuu
lohkorajan tyypistä (makro-/pienempi),
sävyjen gradientin suuruudesta,
kvantisointiparametrista
Vaikutus max 3 pikselin päähän lohkorajasta
Suodatin ’kytketään pois’ selkeiden sävyrajojenkohdalla.
DVP-6     J. Teuhola 2007
300
H.264: Main-profiili
Lähes superjoukko baseline-profiilista, mutta:Ei siivuryhmiä, ei mielivaltaista siivujärjestystä,ei redundantteja siivuja
Tarkoitettu TV:hen ja videon tallennukseen.
B-tyyppisen siivun makrolohko sallii kaksiennustelohkoa: 2 ed., 2 tul. tai 1 ed. ja 1 tuleva.
Short-term- ja long-term-referenssikuvat erilistoissa; molemmissa voi olla edeltäviä jatulevia kuvia (jo koodattu).
B-prediction = keskiarvo kahdestaennustajalohkosta.
DVP-6     J. Teuhola 2007
301
H.264: Extended-profiili
Tarkoitettu streaming-sovelluksiin
Baselinen laajennus
B-siivut käytössä
Painotettu ennustus
SP- ja SI-siivut mahdollistavat vaihtamisenkoodatusta streamista toiseen, sekä VCR-tyyppisiä toimintoja (random access).SP tukee tehokasta siirtymistä toiseensamankaltaiseen streamiin.
DVP-6     J. Teuhola 2007
302
Muita videonpakkausstandardeja: VC-1
Virallisesti SMPTE 421M (SMPTE =Society ofMotion Picture and Television Engineers)
Virallinen julkistus huhtikuussa 2006
Vaihtoehto H.264:lle; samantasoinen laatu.
Taustalla Microsoft Windows Media 9 codec;dekooderi sisältyy Windows Vistaan
HD DVD ja Blue-ray –soittimien pystyttävätoistamaan VC-1:tä
DCT-pohjainen, hyvä tuki lomitetulle videolle,useita profiileja.
DVP-6     J. Teuhola 2007
303
MPEG-audio
Layer I, II ja III (= MP1, MP2, MP3)
Asteittain tehokkaampia koodauksia
Geneerisiä: eivät oleta äänen tyypiltä mitään
Hyödyntävät ihmisen kuuloaistin vajavaisuutta
Näytteenottotaajuudet 32, 44.1 ja 48 KHz
Jako kehyksiin (384 tai 1152 näytettä)
DVP-6     J. Teuhola 2007
304
MPEG-audio (jatk.)
Kanavamoodit
Yksikanavamoodi
Kaksikanavamoodit (koodataan erikseen)
Stereomoodi (osa koodista yhteistä)
Yhteisstereomoodi (korrelaatioiden hyväksikäyttö)
Datanopeudet 32 ... 448 Kbps
Pakkaussuhde käytännössä 1:4 ... 1:12
Virheenkorjaus (CRC = Cyclic RedundancyCode); virheen kätkentä jotenkin
DVP-6     J. Teuhola 2007
305
MPEG-audio: Alikaistat
Alikaistajako taajuusalueisiin, toteutus ali-,yli- tai kaistanpäästösuodattimilla
Desimointi: Pudotetaan alikaistan näytemäärääsiten, että ne yhdessä vastaavat alkuperäistänäytemäärää
Vaarana aliasointi (’laskostuminen’).
DVP-6     J. Teuhola 2007
306
MPEG-audio: Psykoakustinen mallinnus
Käyttää hyväkseen ihmiskuulon peitto-ominaisuuksia
Taajuuspeitto: Voimakas ääni tietyllätaajuudella rajoittaa läheisten taajuuksienkuuluvuutta
Aikapeitto: Hieman ennen voimakasta ääntäja pidempään sen jälkeen heikommat ääneteivät kuulu.
Peittovaikutukset myös summautuvat.
DVP-6     J. Teuhola 2007
307
MP3 = MPEG Layer III
Yleinen musiikin jakeluformaatti
Pakkausvaiheet:
Alikaistajako 32 tasalevyiseen kaistaan
Modifioitu DCT-muunnos (1-ulott.)
Nopea Fourier-muunnos ja psykoakustinenmallinnus
Kvantisointi (epätasavälinen)
Huffman-koodaus
CRC-koodaus (cyclic redundancy check);virheiden havaitseminen
DVP-6     J. Teuhola 2007
308
Muita audionkoodausmenetelmiä
Olemassa lukuisa joukko, esim.
AAC (Advanced Audio Coding; MPEG-2 ja -4)
WMA = Windows Media Audio, osa WindowsMedia Playeria
Real Audio (RA), yksi vanhimmista
QuickTime audio
Synteettisen audion koodaus
Musiikki: MIDI, SA (Structured Audio/MPEG-4)
Puhe: TTS (Text-TO-Speech / MPEG-4)