Lataa esitys
Esittely latautuu. Ole hyvä ja odota
217
6. Videon pakkausmenetelmiä
Kuvanpakkauksesta Liikekompensaatio Videonpakkausstandardit Audion pakkaus DVP J. Teuhola 2007
218
Datamääristä Video on kaikkein vaativin mediamuoto
Talletus ja siirto pakkaamattomana ei mahdollista 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 J. Teuhola 2007
219
Pakkauksen edellytykset
Pakkaus perustuu datan sisältämään redundanssiin. Spatiaalinen redundanssi: Kuvan sisällä vahva korrelaatio naapuripikselien välillä. Temporaalinen redundanssi: Peräkkäisten kuvien välillä vahva riippuvuus, paitsi leikkauskohdissa. DVP J. Teuhola 2007
220
Informaatioteorian alkeita
Jos koodataan pikseli kerrallaan, niin pikselin sävy voidaan ennustaa suurella todennäköisyydellä (p) naapureista tai edeltäjäkuvien vastinpikseleistä. Informaation määrä (bittimäärä) = log2(1/p) Jos sävyn i todennäköisyys on pi, niin bittimäärän odotusarvo/pikseli (ns. entropia) on DVP J. Teuhola 2007
221
Pakkauksen päävaiheet
1. Mallintaminen: Kuvataan sävyjen jakautuma ja riippuvuus naapureista 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 J. Teuhola 2007
222
Menetelmien ominaispiirteitä
Häviöttömyys: alkuperäinen kuvasarja voidaan palauttaa tarkasti; ei käytetä videolle. Häviöllisyys: voidaan palauttaa alkuperäisen kuvansarjan 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 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 J. Teuhola 2007
224
Kiintokuvien pakkauksesta
Jos videon kuvat pakataan toisistaan riip-pumatta, voidaan käyttää normaaleja kuvanpakkausmenetelmiä: JPEGMJPEG Helpottaa videon editointia pakatussa muodossa: voidaan leikata mistä kohdasta tahansa. Jättää peräkkäisten kuvien välisen (’tempo-raalisen’) riippuvuuden huomioimatta (ei tehokasta). DVP J. Teuhola 2007
225
JPEG Yksi yleisimpiä kuvanpakkausformaatteja
Häviöllinen, mutta hukka säädettävissä Tyypillinen pakkaussuhde 10:1 antaa riittävän laadukkaan dekoodaustuloksen. Perustuu kuvan ’frekvenssiesitykseen’: korkeat ’taajuudet’ voidaan esittää karkeammin – ihmissilmä ei herkkä virheille epätasaisilla alueilla. Vastaava idea myös videonpakkauksessa DVP J. Teuhola 2007
226
JPEG harmaasävykuville
Diskreetti kosinimuunnos (sukua Fourier-muunnokselle), tavoitteena dekorrelaatio. DVP J. Teuhola 2007
227
JPEG harmaasävykuville (jatk.)
Muunnos tehdään jokaiselle 8x8 –lohkolle Tulos 8x8 –matriisi; matalien taajuuksien kertoimet vas.ylhäällä, korkeiden taajuuksien kertoimet oik. alhaalla. Kertoimet kvantisoidaan (matalat taajuudet tarkemmin, koska tärkeämpiä) Suurin osa kertoimista on yleensä nollia. Lopuksi entropiakoodaus (Huffman tai aritmeettinen koodaus). DVP 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 saadaan hyvä pakkaussuhde, mutta informaatiohukka ilmenee lohkomaisuutena (’blocking artifacts’): Vain pienimpiä taajuuksia edustavat DCT-kertoimet nollasta poikkeavia. DVP J. Teuhola 2007
229
Värikuvien pakkauksesta
Suoraviivainen yleistys harmaasävykuvien pakkaukselle 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 koodata epätarkemmin kuin kirkkaus (Y). DVP J. Teuhola 2007
230
Videonpakkaus vs. kuvanpakkaus
Peräkkäisten kuvien korrelaatioita pitäisi käyttää hyväksi. Häiritsevät pakkaushäviöt voivat olla erityyppisiä kuin kiintokuvissa. Nopeissa liikkeissä häviöt eivät ole yhtä helposti havaittavissa. Eri käyttötilanteisiin omat menetelmänsä. Useimmissa pohjana DCT-muunnos Pakkaussuhde 50:1 kohtuullisen laadukas DVP J. Teuhola 2007
231
Liikekompensaatio Peräkkäisissä videokuvissa tausta on usein staattinen (pl. satunnaisvaihtelut); vain jotkin edustalla olevat kohteet liikkuvat (jos kamera paikallaan). Seuraava kuva voidaan ennustaa melko tarkasti, jos kohteiden liikevektorit tunnetaan. Liikekompensaatio = liikevektorien etsintä, koodaus ja käyttö ennustuksessa. DVP J. Teuhola 2007
232
Liikekompensaation tyypillinen toteutus
Kuvan jokainen lohko (yleensä 16x16 -makrolohko) ennustetaan naapurikuvasta (jo käsitelty ja dekoodaajankin tiedossa). Ennustaja = viereisen kuvan vastinlohkon naapuruston lohko, joka parhaiten täsmää tarkasteltavan lohkon kanssa. Liikevektori = ennustajan ja ennustetun lohkon välinen sijaintiero. DVP J. Teuhola 2007
233
Liikekompensaatio (jatk.)
Esim. erotus ilman liikekompensaatiota: Koodattavat asiat: Liikevektorit Erotuskuvat (’error image’), kuten JPEG - = DVP J. Teuhola 2007
234
Yleinen videonpakkausjärjestelmä
Erotus- kuva Muunnos- operaatio Kvanti- soija Arvojen koodaus Käänteis- kvantis. Käänteis- muunnos Kuva- muisti Liikekom- pensaatio Liikkeen arviointi Liikevekt. koodaus Kuva DVP 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; enkooderi jätetty avoimeksi. Max 150 ms viive (reaaliaikasovellukset) DVP 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 J. Teuhola 2007
237
ITU-T H.261 (jatk.) Standardi sisältää paljon optioita; esim. pelkkä liikekompensaatio tai DCT-muunnos 8x8-erotuslohkoille Kvantisoitujen kertoimien läpikäynti ’siksak’-järjes- tyksessä, jotta 0-jonojen pituudet maksimoituvat. Kertoimien (0) koodaus (Huffman) * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * DVP 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 = pikseliä Värit: makrolohkon ’subsampling’ (joka toinen arvo värierokanavista) DVP J. Teuhola 2007
239
ITU-T H.261 (jatk.) Myös lähettäjän pitää dekoodata kuva ja tallettaa se liikekompensaatiota varten. Silloin tällöin (esim. joka 15:s) kuva ilman liikekompensaatiota (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ä useita kvantisointitasoja (valinta per lohko, ilmoitetaan myös dekoodaajalle). DVP 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 J. Teuhola 2007
241
MPEG-1 Muistuttaa paljon H.261-standardia
Tarkoitettu 1.5 Mbps –siirtonopeuksille Enintään VHS-tasoa, elokuva mahtuu suunnilleen CD-ROMille Geneerinen standardi (ei rajoitu mihinkään tiettyyn sovellukseen). Sekä videon että audion koodaus (tarkastellaan myöh.) DVP J. Teuhola 2007
242
MPEG-1: liikekompensaatio
Kaksisuuntainen, perustuen joko edeltäjä- tai seuraajakuvaan tai molempiin. Liikevektori puolen pikselin tarkkuudella. Välipisteet lasketaan bilineaarisella interpolaatiolla. Liikevektorien koodaus: ero viereisen makrolohkon liikevektorista. Liikevektorin arvoalue – DVP 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 J. Teuhola 2007
244
MPEG-1: kuvatyypit I-frame (intra-coded): itsenäisesti koodattu kuva, ilman liikekompensaatiota; mahdollinen dekoodauksen aloituskohta P-frame (predictive-coded): liikekompensoitu edellisestä I/P-kuvasta. B-frame (bidirectionally coded): liikekompensoitu sekä edeltävästä että seuraavasta I/P-kuvasta DVP J. Teuhola 2007
245
MPEG-1: Kuvaryhmä GOB = Group-Of-Pictures
Pienin suorasaantiyksikkö, voidaan koodata riippumattomasti, esim. I B P Kaksisuuntainen ennustus Eteenpäin ennustus DVP J. Teuhola 2007
246
MPEG-1: Kuvajärjestys Kaksi järjestystä: näyttöjärjestys ja bittivirtajärjestys. Ennustajaroolissa olevat kuvat dekoodattava ennen ennustettavia. Tarvitaan puskuri Syntyy pieni viive DVP J. Teuhola 2007
247
MPEG-1: Bittivirran sisäinen hierarkia
Videosekvenssi Kuvaryhmä (GOP) Kuva Viipale (slice) Makrolohko Lohko DCT-kerroin DVP 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), DVD, HDTV Progressiivisen & lomitetun videon koodaus Kiinnitetään bittivirta ja dekooderi, mutta ei enkooderia (samoin kuin MPEG-1) DVP J. Teuhola 2007
249
MPEG-2: Yhteensopivuus
Dekooderi pystyy dekoodaamaan myös MPEG-1-bittivirtaa Skaalautuvassa koodauksessa MPEG-2:n perustason koodia voi dekoodata myös MPEG-1-dekooderilla Profiileja tarvitaan eri sovellusalueita varten Jokaisen dekooderin ei ole järkevää implementoida koko standardia DVP 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 J. Teuhola 2007
251
MPEG-2: Tasot Profiilien sisällä tasoja, jotka vastaavat eri laatutasoja; ilmenevät parametriarvojen rajoitteina (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 J. Teuhola 2007
252
MPEG-2: Rajoitteita Kaikki profiili-taso-yhdistelmät eivät mahdollisia
Matalampi profiili & taso -yhdelmä sisältyy aina korkeampaan. Periaatteellinen maksimikuvakoko 16K x 16K pikseliä. Kuvataajuudet: , 24, 25, 29.97, 30, 50, 59.94, 60 (kuten MPEG-1). Väriotanta: 4:2:0, 4:2:2, 4:4:4 DVP 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 samaa tyyppiä. Liikekompensaatiovaihtoehdot: Frame-based Field-based Dual-prime (2 referenssikenttää) Näistä erilaisia variaatioita DVP J. Teuhola 2007
254
MPEG-2: Lomitettu video (jatk)
DCT-koodaus Frame-based (jos vähän liikettä; makrolohkosta 4 erillistä 8 x 8 -lohkoa) Field-based (jos paljon liikettä; makrolohkosta 4 lomitettua 8 x 8 -lohkoa) Kaksi erilaista 'sik-sak-järjestystä' DCT-kertoimille; toinen suosii lomitettua videota, jossa vertikaalisuunnassa korkeita taajuuksia. DVP J. Teuhola 2007
255
MPEG-2: skaalautuva koodaus (kerrostus)
Voidaan käyttää useaa bittivirtaa (ei simple ja main –profiileissa) Peruskerros (layer): Peruslaatu Melko pieni datamäärä Korkea prioriteetti Tarkennuskerrokset Peruskerrokseen yhdistettynä parempi laatu Alempi prioriteetti DVP J. Teuhola 2007
256
MPEG-2: kerrostus (jatk.)
Tarvitaan häiriöisille siirtoteille; perustaso turvataan paremmin (virheenkorjaus) Joustava verkoissa, joissa siirtonopeus vaihtelee: Jos kaista kapenee, tarkennus-kerrokset jätetään pois. Sopii myös progressiiviseen siirtoon (nopeasti karkea versio videosta) Toteutus: alikaistajako (matalat & korkeat taajuudet) tai DCT-kertoimien jako ryhmiin DVP 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 kvantisointivirheet tarkemmin kvantisoituina. DVP J. Teuhola 2007
258
MPEG-2: Spatiaalinen skaalautuvuus
Karkea taso otannalla (downsampling) hienommasta resoluutiosta Esim. SDTV (Standard Definition TV) saadaan otannalla HDTV:stä (High Definition TV) Karkeata tasoa käytetään koodattaessa tarkempi taso: resoluution laajennus (up-sampling) interpolaatiolla ja yhdistäminen liikekompensaatioon sopivasti painotettuna DVP J. Teuhola 2007
259
MPEG-2: Muita skaalautuvuuksia
Temporaalinen skaalautuvuus: Perustaso pienemmällä kuvataajuudella Perustason kuvat toimivat 'ennustuskuvina' väliin lisättäville korkeamman kuvataajuuden kuville (esim. 25 kuvaa/ sek 50 kuvaa/sek) Hybridi-skaalautuvuus: Skaalautuvuuksia yhdistellään pareiksi 1 peruskerros ja 2 tarkennuskerrosta DVP J. Teuhola 2007
260
ITU-T H.263 -videonpakkausstandardi
Määritelty 1995 Monentyyppisiin verkkosovelluksiin (”Very low bitrate 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 J. Teuhola 2007
261
MPEG-4 Pohjana ITU-T H.263 –standardi
Työ alkoi 1993, pääosin valmis 1999 Alkuperäinen tavoite: videon tehokas koodaus hitaita siirtoteitä varten Laajeni sitten yleiseksi multimedian koodausstandardiksi Tukee interaktiivisuutta ja sisältöpohjaista saantia; tässä tarkoituksessa sitä täydentää MPEG-7-standardi. Lähes 20 erilaista profiilia! DVP J. Teuhola 2007
262
MPEG-4: Sovellusaloja Interaktiivinen videon siirtoyhteys, esim. videopuhelin, videoneuvottelu Ei-interaktiivisen videon siirto, esim. broadcast, video- Digitaalinen tallennus (optiset levyt) Videotietokannat, sisältöpohjainen käsittely Videovalvonta Interaktiiviset videopelit DVP J. Teuhola 2007
263
MPEG-4: Piirteitä Virhesietoisuus siirrossa
Luonnollisen ja synteettisen av-datan geneerinen koodaus ja yhdistäminen Oliopohjaisuus: videokuvat voidaan koota osista (esim. kohde + tausta), jotka ovat itsenäisiä ja koodataan omalla tavallaan Tuki erimuotoisille video-objekteille (muodot, 2D- ja 3D-polygoniverkot, kasvot, vartalo) Tehokas pakkaus eri oliotyypeille ja kuvamateriaaleille DVP J. Teuhola 2007
264
MPEG-4: Piirteitä (jatk.)
Oliokohtainen interaktiivisuus: käyttäjä voi vaikuttaa olioihin erikseen. Oliopohjainen hajasaanti Temporaalinen hajasaanti (katselun aloituskohdan valinta) Temporaalinen, spatiaalinen, laadullinen ja oliotason skaalautuvuus erinopeuksisia siirtoteitä ja eritasoisia katselu-/kuuntelu- laitteita varten. Progressiivisen ja lomitetun videon pakkaus DVP 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 J. Teuhola 2007
266
MPEG-4: AV-olioiden siirto ja näyttö
Interaktiivisuuden mahdollistamiseksi pitää käyttäjille välittää kunkin av-olion koordinaatit eli näkymän rakenneinfo siirretään omana virtanaan, multipleksoituna av-olioiden perusbittivirtojen kanssa Näkymä kootaan käyttäjän päätelaitteessa Kompositiota voidaan muuttaa muuttamatta av-olioiden sisältöä DVP J. Teuhola 2007
267
MPEG-4: AV-olioiden siirto ja näyttö (jatk.)
Olioiden ominaisuuksia voidaan muuttaa vastaanottopäässä, esim. zoomaus, resoluution muutos, ym. Jotkin toiminnot vaativat kontrollitiedon siirtoa palvelimeen (ns. upstream data), joka muuttaa bittivirtaa sen perusteella. DVP 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 ja vartalon synteettinen esitys ja animointi Kiintokuvien tekstuurien koodaus: Wavelet-menetelmä DVP 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- tai chroma key –tekniikoilla. DVP J. Teuhola 2007
270
MPEG-4: Video-olion (VO) koodaus (jatk.)
Koodaustehtäviä: Muodon koodaus Liikekompensaatio (= ennustus) Ennustusvirheiden DCT-koodaus Koodaus makroblokkitasolla, sijoitettuna objektia rajaavan suorakaiteen (MBR = Minimum Bounding Rectangle) sisälle Kolme VOP-tyyppiä (vrt. MPEG-1 ja -2): I-VOP, P-VOP ja B-VOP DVP J. Teuhola 2007
271
MPEG-4: Liikekompensaatio
Globaali liikevektori koko VOPille Kullekin makrolohkolle lokaali liikevektori: Vain P- ja B-VOPeille Perustuu kolmen naapurilohkon perusteella tehtävään ennustukseen Ennustamisvirheen vaiht.mittainen koodaus Pikseliarvoja ekstrapoloidaan tarvittaessa ennustusolion reunoilta ulospäin Tarkkuus 1/4 pikseliä Forward, backward, interpolaatio tai 'direct' DVP 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 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 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 lohkot on helppo koodata. Osittain sisällä olevat lohkot koodataan kontekstipohjaisella aritmeettisella kooderilla (I-VOPille konteksti = 10 jo käsiteltyä pikseliä ylävasemmalla); reunoilla kontekstiin mukaan naapurilohkojen pikseleitä DVP J. Teuhola 2007
275
MPEG-4: Muodon koodaus (jatk.)
P- ja B-VOPeille kontekstin muodostavat ennustava muotomatriisi ja nykyisen tunnetut naapurit; koodaus kontekstipohjaisella aritmeettisella kooderilla. Voidaan käyttää myös häviöllistä muodonkoodausta Osittainen läpinäkyvyys (alfa-kanava) koodataan samalla tavalla kuin tekstuuri. DVP J. Teuhola 2007
276
MPEG-4: Sprite-koodaus
Sprite = vakiosisältöinen video-olio, joka koodataan ja lähetetään kerran, esim. taustakuva Sprite-oliota on mahdollista panoroida ja zoomata dekoodauspäässä, jos sen kuva-ala on riittävän laaja. DVP J. Teuhola 2007
277
MPEG-4: Verkkorakenteisten olioiden koodaus
Mesh-rakenne Olio jaetaan monikulmioihin (yl. kolmioihin) 2D (grafiikassa yleisemmin 3D). Solmupisteet toimivat referenssipisteinä esitettäessä olion liikettä kuvasta toiseen. Liikevektori = ero edellisen solmupisteen liikevektoriin nähden. Ns. warping-tekniikka monikulmioiden tekstuureille DVP J. Teuhola 2007
278
MPEG-4: Verkkorakenteisten olioiden koodaus (jatk.)
Alkutilanne: tasainen tai mielivaltainen (Delanay) kolmiointi Olioesiintymä = MOP (Mesh Object Plane) Solmupisteiden valinta ja pisteiden seuranta eivät kuulu standardin piiriin. Keyframe-tekniikka: solmupisteiden paikat interpoloidaan välikuvissa. Vähentää lohkomaisuutta alhaisilla siirtonopeuksilla. DVP 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 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 taajuuden koodaus naapuriarvojen eroina (DPCM-menetelmä), muut kaistat zerotree-tekniikalla (nollasta poikkeavat arvot) Lopuksi aritmeettinen koodaus Spatiaalinen tai SNR-skaalautuva DVP 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 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 J. Teuhola 2007
283
MPEG-4: Virhesietoisuus
Sopeutuminen epäluotettaviin siirtoteihin Pääkategoriat: Uudelleensynkronointi: makrolohkopake-teissa tunnistusbittijono Tiedon partitiointi: Liikevektorit ja tekstuurit erikseen; tukee virheiden ’kätkemistä’ (ei standardoitu) Käänteinen vaihtelevanmittainen koodaus: dekoodaus kumpaan suuntaan tahansa. DVP J. Teuhola 2007
284
MPEG-4: Profiilit Koko välineistön toteutus kaikissa dekoodereissa ei mielekästä Standardi määrittelee osajoukkoja eli profiileja, mm. seuraavia ryhmiä: Luonnollinen video (simple, core, main, ... ; 15 kpl) Synteettinen video (basic animated texture, simple face animation, simple face and body animation) Hybridi DVP J. Teuhola 2007
285
Muita videostandardeja: ITU-T H.264
Maaliskuu 2003 Väite: puolet tehokkaampi kuin MPEG-2 Monipuolisempi liikekompensaatio kuin aiemmissa standardeissa Approksimatiivinen DCT-muunnos 4 x 4-lohkoille Erilaisia vaihtelevanmittaisia loppukoodaus-tekniikoita, mm. kontekstipohjainen aritmeettinen koodaus. DVP J. Teuhola 2007
286
H.264: Profiilit Baseline: Videoneuvottelut, langattomat verkot
Main: TV-broadcast, videotallennus 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 J. Teuhola 2007
287
H.264: Piirteitä Tarjoaa monipuoliset ennustusmahdollisuudet sekä kuvien kesken (liikekompensaatio) että niiden sisällä (spatiaalinen redundanssi). Koodauksessa pyritty sekä pakkaus-tehokkuuteen että nopeuteen. Lohkomaisuuden poistosuodatin mukana standardissa. Yleinen havainto: Niin paljon vaihtoehtoja, että tehokkaan kooderin toteutus on suuri haaste. DVP J. Teuhola 2007
288
H.264: Piirteitä Kuva koostuu makrolohkoista (16 x 16), joita ryhmitellään vaihtelevan kokoisiksi siivuiksi eli viipaleiksi (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 J. Teuhola 2007
289
H.264: Makrolohkotyypit I-lohko: Ei liikekompensaatiota; framen sisäinen (intra-) ennustus ja koodaus joko koko 16x16- tai 4x4-osalohkoille. P-lohko: Liikekompensaatio yhden referenssikuvan perusteella; mahdolliset osalohkokoot (kullekin liikevektori): 16x16, 16x8, 8x16, 8x8, 8x4, 4x8, 4x4 (chroma-komponenteille puolet näistä). B-lohko: 1 tai 2 referenssilohkoa. DVP J. Teuhola 2007
290
H.264: Liikekompensaatio Puskurissa pidetään useita aiemmin koodattuja referenssikuvia, 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ää referenssikuvan indeksin. DVP J. Teuhola 2007
291
H.264: Liikevektoreista Tarkkuus ¼ pikseliä (luma; chromalle 1/8 piks.) Kokonaisindeksien kohdalla käytetään todellisia referenssipikseleitä Puolikaspikselien kohdalla interpolaatio 3+3 naapurin suhteen (ensin toisen, sitten toisen dimension suhteen). Neljännespikseleille interpolaatio kahden naapurin (todellisen tai interpol.) keskiarvona Chroma: Lineaarinen interpolaatio 4:stä todellisesta naapuripikselistä. DVP J. Teuhola 2007
292
H.264: Liikevektorien koodaus
Läheisten lohkojen liikevektorit korreloivat. Lasketaan ennustevektori jo koodattujen naapurivektorien perusteella. Lasketaan ennusteen ja todellisen vektorin erotus ja koodataan se (paitsi skipped-lohkolle kopioidaan suoraan referenssilohkosta). B C B C A mediaani(A,B,C) A A DVP 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 ilman ennustusta Ennustustapa pitää signaloida dekooderille. Koska naapurien ennustustavat korreloivat, niin ennustustapa ennustetaan naapureista! DVP 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 J. Teuhola 2007
295
4 x 4 –DCT-muunnos missä DVP 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 J. Teuhola 2007
297
H.264: Kvantisointi Korkeat taajuudet eivät niin ’tärkeitä’ karkeampi kvantisointi H.264 tarjoaa 52 kvantisointitasoa, arvot taulukoitu, indeksi määräytyy tilanteen mukaan (kooderi voi valita). Kvantisointiarvot yhdistetään DCT-muunnoksen skaalausmatriisiin; laskenta järjestetty siten, että tarvitaan yksi kertolasku & shift per kerroin DVP J. Teuhola 2007
298
H.264: Entropiakoodaus Eri tilanteissa käytössä kaksi vaihtoehtoa:
Kontekstiriippuva aritmeettinen koodaus Eksponentiaalinen Golomb-koodaus: 0 0 1 DVP J. Teuhola 2007
299
H.264: Lohkomaisuuden poistosuodatin
Suoritetaan kooderissa ja dekooderissa ennen lohkon 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ävyrajojen kohdalla. DVP 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 kaksi ennustelohkoa: 2 ed., 2 tul. tai 1 ed. ja 1 tuleva. Short-term- ja long-term-referenssikuvat eri listoissa; molemmissa voi olla edeltäviä ja tulevia kuvia (jo koodattu). B-prediction = keskiarvo kahdesta ennustajalohkosta. DVP 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 vaihtamisen koodatusta streamista toiseen, sekä VCR-tyyppisiä toimintoja (random access). SP tukee tehokasta siirtymistä toiseen samankaltaiseen streamiin. DVP J. Teuhola 2007
302
Muita videonpakkausstandardeja: VC-1
Virallisesti SMPTE 421M (SMPTE =Society of Motion 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 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 J. Teuhola 2007
304
MPEG-audio (jatk.) Kanavamoodit Datanopeudet 32 ... 448 Kbps
Yksikanavamoodi Kaksikanavamoodit (koodataan erikseen) Stereomoodi (osa koodista yhteistä) Yhteisstereomoodi (korrelaatioiden hyväksikäyttö) Datanopeudet Kbps Pakkaussuhde käytännössä 1: :12 Virheenkorjaus (CRC = Cyclic Redundancy Code); virheen kätkentä jotenkin DVP 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 J. Teuhola 2007
306
MPEG-audio: Psykoakustinen mallinnus
Käyttää hyväkseen ihmiskuulon peitto-ominaisuuksia Taajuuspeitto: Voimakas ääni tietyllä taajuudella rajoittaa läheisten taajuuksien kuuluvuutta Aikapeitto: Hieman ennen voimakasta ääntä ja pidempään sen jälkeen heikommat äänet eivät kuulu. Peittovaikutukset myös summautuvat. DVP 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 psykoakustinen mallinnus Kvantisointi (epätasavälinen) Huffman-koodaus CRC-koodaus (cyclic redundancy check); virheiden havaitseminen DVP J. Teuhola 2007
308
Muita audionkoodausmenetelmiä
Olemassa lukuisa joukko, esim. AAC (Advanced Audio Coding; MPEG-2 ja -4) WMA = Windows Media Audio, osa Windows Media 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) DVP J. Teuhola 2007
Samankaltaiset esitykset
© 2024 SlidePlayer.fi Inc.
All rights reserved.