920 likes | 1.1k Views
6. Videon pakkausmenetelmiä. Kuvanpakkauksesta Liikekompensaatio Videonpakkausstandardit Audion pakkaus. Datamääristä. Video on kaikkein vaativin mediamuoto Talletus ja siirto pakkaamattomana ei mahdollista nykyisillä laitteilla ja siirto-nopeuksilla. 1 kuva karkeasti 8 Mbittiä
E N D
6. Videon pakkausmenetelmiä Kuvanpakkauksesta Liikekompensaatio Videonpakkausstandardit Audion pakkaus DVP-6 J. Teuhola 2007
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-6 J. Teuhola 2007
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-6 J. Teuhola 2007
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-6 J. Teuhola 2007
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-6 J. Teuhola 2007
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-6 J. Teuhola 2007
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
Kiintokuvien pakkauksesta • Jos videon kuvat pakataan toisistaan riip-pumatta, voidaan käyttää normaaleja kuvanpakkausmenetelmiä: JPEGMJPEG • Helpottaa videon editointia pakatussamuodossa: voidaan leikata mistä kohdasta tahansa. • Jättää peräkkäisten kuvien välisen (’tempo-raalisen’) riippuvuuden huomioimatta (ei tehokasta). DVP-6 J. Teuhola 2007
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-6 J. Teuhola 2007
JPEG harmaasävykuville • Diskreetti kosinimuunnos (sukua Fourier-muunnokselle), tavoitteena dekorrelaatio. DVP-6 J. Teuhola 2007
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-6 J. Teuhola 2007
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 edustavatDCT-kertoimet nollasta poikkeavia. DVP-6 J. Teuhola 2007
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-6 J. Teuhola 2007
Videonpakkaus vs. kuvanpakkaus • Peräkkäisten kuvien korrelaatioita pitäisikä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-6 J. Teuhola 2007
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-6 J. Teuhola 2007
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-6 J. Teuhola 2007
- = Liikekompensaatio (jatk.) • Esim. erotus ilman liikekompensaatiota: • Koodattavat asiat: • Liikevektorit • Erotuskuvat (’error image’), kuten JPEG DVP-6 J. Teuhola 2007
Erotus-kuva Muunnos-operaatio Kvanti-soija Arvojenkoodaus Kuva Liikekom-pensaatio Kuva-muisti Käänteis-muunnos Käänteis-kvantis. Liikkeenarviointi Liikevekt.koodaus Yleinen videonpakkausjärjestelmä DVP-6 J. Teuhola 2007
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-6 J. Teuhola 2007
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
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
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 toinen arvo värierokanavista) DVP-6 J. Teuhola 2007
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-6 J. Teuhola 2007
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
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-6 J. Teuhola 2007
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 –512 .. 511.5 DVP-6 J. Teuhola 2007
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
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-6 J. Teuhola 2007
I I B B B B B B B B B P P Kaksisuuntainen ennustus Eteenpäin ennustus MPEG-1: Kuvaryhmä • GOB = Group-Of-Pictures • Pienin suorasaantiyksikkö, voidaan koodata riippumattomasti, esim. DVP-6 J. Teuhola 2007
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-6 J. Teuhola 2007
MPEG-1: Bittivirran sisäinen hierarkia Videosekvenssi Kuvaryhmä (GOP) Kuva Viipale (slice) Makrolohko Lohko DCT-kerroin DVP-6 J. Teuhola 2007
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-6 J. Teuhola 2007
MPEG-2: Yhteensopivuus • Dekooderi pystyy dekoodaamaan myösMPEG-1-bittivirtaa • Skaalautuvassa koodauksessa MPEG-2:n perustason koodiavoi dekoodata myösMPEG-1-dekooderilla • Profiileja tarvitaan eri sovellusalueita varten • Jokaisen dekooderin ei ole järkevää implementoida koko standardia DVP-6 J. Teuhola 2007
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
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-6 J. Teuhola 2007
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: 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
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-6 J. Teuhola 2007
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-6 J. Teuhola 2007
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-6 J. Teuhola 2007
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-6 J. Teuhola 2007
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-6 J. Teuhola 2007
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) interpolaatiollaja yhdistäminen liikekompensaatioon sopivasti painotettuna DVP-6 J. Teuhola 2007
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-6 J. Teuhola 2007
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-6 J. Teuhola 2007
MPEG-4 • Pohjana ITU-T H.263 –standardi • Työ alkoi 1993, pääosin valmis 1999 • Alkuperäinen tavoite: videon tehokas koodaus hitaitasiirtoteitä 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-6 J. Teuhola 2007
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
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 jakuvamateriaaleille DVP-6 J. Teuhola 2007
MPEG-4: Piirteitä (jatk.) • Oliokohtainen interaktiivisuus:käyttäjä voi vaikuttaa olioihin erikseen. • Oliopohjainen hajasaanti • Temporaalinen hajasaanti (katselun aloituskohdan valinta) • Temporaalinen, spatiaalinen, laadullinen ja oliotasonskaalautuvuus erinopeuksisia siirtoteitä ja eritasoisiakatselu-/kuuntelu-laitteita varten. • Progressiivisen ja lomitetun videon pakkaus DVP-6 J. Teuhola 2007
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
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 omana virtanaan, multipleksoituna av-olioiden perusbittivirtojen kanssa • Näkymä kootaan käyttäjän päätelaitteessa • Kompositiota voidaan muuttaa muuttamattaav-olioiden sisältöä DVP-6 J. Teuhola 2007