TopTekninen sanakirjaH.264 - videon koodausstandardi

H.264 - videon koodausstandardi

Vuonna 2003 H.264 standardi otettiin käyttöön, joka tunnetaan myös nimellä AVC (Advanced Video Coding), 10. osana MPEG-4 standardia.

 

H.264 standardi, samoin, kuin aikaisemmassa MPEG-2 ja MPEG-4, käyttää differentiaali puristusta, esim. nykyinen kuva luodaan yhden tai useamman aikaisemman kuvan ja erojen perusteella, joka tapahtui niiden välillä aikaa myöten. H.264 kuitenkin käyttää monia parannuksia. Yhdeltä osalta ne lisäävät merkittävästi kysyntää laskentateholle koodauksen aikana, toisaalta ne vähentävät siirtonopeutta merkittävästi tinkimättä kuvan laadusta.

 

H.264 puristuksen tärkeä elementti on kuvien ennustus (kuvansisäinen ennustus). Se koostuu seuraavan koodauskuvan ennustamisesta, joka perustuu aikaisemmin koodattuihin ja dekoodattuihin kuviin. Se toimii tarkalleen samalla tavalla kuin koodaaja ja dekoodaaja, jotta dekoodaaja voi toistaa koodatun kuvan kuvan ennustusvirheen perusteella, joka nimettiin koodatussa kuvassa ja sen ennustuksessa. Joten sitä seuraavia kuvia ei lähetetä, vaan ainoastaan ennustusvirheitä (ennakointeja) jotka hyvillä algoritmeillä eivät sisällä paljon tietoa ja voidaan koodata käyttämällä hyvin vähän paloja.

 

H.264 puristuksessa voimme erottaa kolme kehystyyppiä: I – Sisäisesti koodatut, P – Ennustavat, B – kaksoisennustava.

 

Kuva 1. Jokaisen jakson kehyksen tallennus, jossa on kolme kehystyyppiä läsnä

 

t - Aika

I kehystyyppi sisältää koko tietoja tietystä kuvasta. P kehykset sisältävät tietoja muutoksista viereisten kehysten välillä P tai I (tuloksena saatu kuva luodaa juuri sellaisten tietojen perusteella). B kehykset ovat kuvia, jotka koodattiin viittauskuvien perusteella, nimittäin yhtä ennen koodattua kuvaa ja yhtä kuvaa, joka esitettiin tietyn jakson jälkeen. B tyyppisissä kuvissa kaikkein samantapaisimmat näytteiden lohkot (makrolohkot) valitaan kahdesta viittauskuvasta tai ne määritetään keskimääräisinä lohkoina molemmista viittauskuvista. Jokaisen kurssikehyksen koko, riippuu monesta tekijästä. Se voidaan olettaa, että P kehys sopii noin 60% I kehyksen koolle ja B kehykset voivat omata vain 10% omasta volyymistaan. Siksi siitä voidaan helposti vähentää, että mitä enemmän B peräkkäistä kehystyyppiä nimenomaisessa jaksossa on, mitä suurempi puristus on. Se ei välttämättä sisällä kuvan laadun heikkenemistä.

 

Alla esitämme esimerkkivertauksen kolmesta puristusstandardista huippu signaalista-meluun suhteena (PSNR), riippuen palan siirtonopeudesta.

 

Kuva 2. H.264, MPEG-4 ja JPEG standardien vertaus

 

X - Palan siirtonopeus

Y - Huippu signaalista-meluun suhde (PSNR)

Alla on listattu joitakin parannuksia ja muunnoksia, jotka erottavat H.264 vanhempia standardeja vastaan, koodausta soveltamalla kuvan sisäisessä ennustuksessa, jossa on liikkeen kompensointi.

 

1. Vaihteleva lohkon koko liikkeen kompensoinnille. Liikkeen kompensointi voidaan suorittaa ei ainoastaan koko macrolohkoihin verrattuna, vaan niiden osina. Sitten niihin on osoitettu erilliset liikkevektorit. Pienimmillä lohkoilla on (4x4) luminanssikohtien koot. Tämän tuloksena saamme pienempiä ennustusvirheitä, jotka voidaan esittää vain muutamaa kohtaa soveltamalla.


2. Liikkeen ennustus 1/4 kuvapisteen näytteenottovälin tarkkuudella. Liikevektoreiden suuri tarkkuus auttaa saamaan enemmän tarkkuutta liikkeen kompensoinnilla.


3. Moniviittauskuvien käyttö - pitkäaikaisen muistin käyttö, käytännöllinen paljastettujen alueiden ennustuksessa.


4. Suuntainfrakehyksen ennustus infrakehyskoodatuille makrolohkoille.


5. De-estosuodatin poistaa eston vaikutukset, jotka ilmestyvät ennustetuissa korkean puristuksen kuvissa.


6. Kosinimuunnokset toimivat pienissä estoissa - (4x4) luminanssinäytteet ja (2x2) värikkyyden näytteet, jotka sallivat paremman adaptaation paikallisille kuvan ominaisuuksille.


7. Adaptiivinen entropiakoodaus: CAVLC (Context-Adaptive Variable Length Coding) - vaihtelevan sanapituuden avulla, ja CABAC (Context-Based Binary Arithmetic Coding) -monimutkaisempi adaptiivinen aritmeettinen koodaus, jonka avullla saavutamme vahvemman puristuksen.

Hyödytäkseen täysin H.264 standardin kyvyistä, koodaajan on sallittava optimaaliset valinnat erilaisten koodaustilojen välillä. H.264 käytöllä on suuri merkitys CCTV-järjestelmille, koska kuvan siirron nopeuden vähentäminen ilman laadun menettämistä sallii suuremman kanavamäärän siirron paremmassa laadussa.