Videon pakkaus

Videon pakkaus on menetelmä tiedon pakkaus , joka on vähentää datan määrää, minimoida vaikutus visuaalisen laadun videon . Videon pakkaamisen etuna on vähentää videotiedostojen tallentamisen ja lähettämisen kustannuksia.

Historia ja standardit

Ensimmäiset videopakkausyritykset juontavat juurensa 1950-luvulle , mutta ensimmäiset toteuttamiskelpoiset ratkaisut syntyivät 1980-luvulta lähtien. Ensimmäinen videostandardi on H.120 , jonka CCITT julkaisi vuonna 1984 . Tämä ensimmäinen standardi käyttää DPCM- tekniikkaa , ja sen toiminnot ovat hyvin rajoitetut: suurin bittinopeus 2 Mbit / s, vain harmaataso ja epätyydyttävä laatu.

Standardointielimillä on erittäin tärkeä rooli videon pakkausmenetelmien edistämisessä ja levittämisessä. CCITT aloitti 1980-luvulla, sitten sen seuraaja ITU-T . Nämä standardointitoiminnassa sitten koordinoi ITU-R , jonka jälkeen ISO ja IEC .

Videopakkausalgoritmien perusteet

Videosekvenssit sisältävät erittäin suuren tilastollisen redundanssin sekä aika- että paikkatunnuksessa.

Pakkaustekniikoiden perustana oleva tilastollinen perusominaisuus on pikselien välinen korrelaatio . Tämä korrelaatio on sekä spatiaalinen, nykyisen kuvan vierekkäiset pikselit ovat samankaltaisia, että ajalliset, menneiden ja tulevien kuvien pikselit ovat myös hyvin lähellä nykyistä pikseliä.

Siten oletetaan, että kuvan tietyn pikselin tärkeys voidaan ennustaa saman kuvan vierekkäisistä pikseleistä (käyttämällä kuvan sisäisiä koodausmenetelmiä) tai naapurikuvan pikseleistä (käyttämällä kuvien välisiä tekniikoita). Intuitiivisesti, on selvää, että tietyissä olosuhteissa, esimerkiksi, vaihdon aikana laukaus videosekvenssin, ajallinen korrelaatio pikseliä vierekkäisten kuvien on pieni, tai jopa nolla. Tässä tapauksessa niin kutsutut sisäiset koodaustekniikat ovat sopivimpia paikkakorrelaation hyödyntämiseksi tehokkaan datan pakkaamisen aikaansaamiseksi.

MPEG- tyyppi video pakkausalgoritmit käyttää muunnoksena DCT (ja diskreetti kosinimuunnos tai ”  diskreetti kosinimuunnos  ”), lohkot 8 x 8 pikseliä, tehokkaasti analysoida avaruudellista korrelaatiota vierekkäisten pikselien samasta kuvasta. Muita menetelmiä on ehdotettu, käyttäen fraktaaleja , aaltoja tai jopa sovittamista .

Kuitenkin, jos vierekkäisten kehysten pikselien välinen korrelaatio on korkea, toisin sanoen tapauksissa, joissa kahdella peräkkäisellä kehyksellä on samanlainen tai identtinen sisältö, on toivottavaa käyttää esimerkiksi ns. Inter- koodaustekniikkaa , esimerkiksi DPCM ( Differential PCM ), joka käyttää ajallista ennustusta (kompensoitu ennuste kehysten välisestä liikkumisesta).

Klassisessa videopakkausmenetelmässä informaation kahden liikkeen (ajallisen ja spatiaalisen) välistä adaptiivista yhdistelmää käytetään merkittävän datan pakkaamisen (DPCM / DCT-hybridivideokoodaus) saavuttamiseksi.

Alanäytteenotto ja interpolointi

Suurin osa tässä osassa kuvatuista pakkaustekniikoista (joita kutsutaan väärin koodaukseksi, koska informaatio menetetään) suoritetaan näytteenotto ja kvantisointi ennen tiedon koodaamista. Alinäytteenoton peruskäsite on vähentää videokuvan mittoja (vaaka- ja pystysuora) ja siten vähentää koodattavien pikselien määrää.

Jotkin videosovellukset myös ottavat näytteitä ajallisesta liikkeestä pienentääkseen kehysnopeutta ennen koodausta. Vastaanottimen on siksi purettava kuvat ja interpoloitava ne ennen niiden näyttämistä.

Tätä puristustekniikkaa voidaan pitää yhtenä alkeellisimmista, jossa otetaan huomioon silmän fysiologiset ominaisuudet ja joka poistaa videodatan sisältämän redundanssin.

Ihmissilmät ovat herkempiä valon vaihteluille kuin väreille. Tämän silmävirheen takia suurin osa videopakkausalgoritmeista edustaa kuvia YUV- väriavaruudessa , joka sisältää yhden kirkkauden ja kaksi kromia . Sitten kromaattikomponentit näytteistetään alaspäin luminanssikomponentin mukaan siten, että Y: U: V-suhde on spesifinen tietylle sovellukselle (esimerkiksi MPEG-2: ssa suhde on 4: 1: 1 tai 4: 2: 2).

Kompensoitu liikeennuste

Liikekompensoitu ennustus tai liikkeen kompensointi on tehokas tapa vähentää kehysten välisiä ajallisia redundansseja, ja sitä käytetään MPEG-1: ssä ja MPEG-2: ssa ennusteena DPCM-koodaukselle. Liikkeen kompensoinnin käsite perustuu videokehysten välisen liikkeen arviointiin; jos kaikki videonäkymän elementit ovat spatiaalisesti lähellä, kehysten välistä liikettä voidaan kuvata rajoitetulla määrällä parametreja (pikseliliikkevektorit).

Parhaan ennusteen pikselistä antaa edellisen kehyksen liikeennuste. Jokaisen kuvan pikselin liiketietoja ei tarvitse koodata.

Jos liikevektorien välinen spatiaalinen korrelaatio on riittävän korkea, liikevektori voi edustaa vierekkäisten pikselien lohkoa.

Nämä lohkot koostuvat usein 16x16 pikselin ryhmästä, ja vain yksi liikevektori arvioidaan, koodataan ja lähetetään kullekin lohkolle.

Johtopäätös

Liikekompensoitujen ennustustekniikoiden ja DCT-muunnoksen yhdistelmä voidaan määritellä MPEG-tyyppisen videopakkauksen avaintekijöiksi. Kolmas ominaisuus on, että näitä tekniikoita käytetään pienissä kuvalohkoissa (usein 16x16 pikseliä liikekorjauksessa ja 8x8 pikseliä DCT-koodauksessa).

Näistä syistä MPEG-koodaus on osa hybridi-DPCM / DCT-algoritmeja.

Kehystenvälisen koodauksen peruskaavio

MPEG-1: n (ja MPEG-2) peruspakkausmenetelmä perustuu makrolohkirakenteeseen. Algoritmi koodaa sekvenssin ensimmäisen kehyksen kehyksen sisäisellä koodauksella (I kehys). Jokainen peräkkäinen kehys koodataan käyttämällä kehysten välistä ennustusta (P-kehystä); vain ennalta koodattujen kehysten tietoja (I tai P kehyksiä) käytetään ennustamiseen. Jokainen kehyksen väri jaetaan makrolohkoihin.

Jokainen makrolohko sisältää tietoja kirkkaudesta ja krominanssista: 4 kirkkauslohkoa (Y1, Y2, Y3, Y4) ja kaksi krominanssia (U, V), kukin 8x8 pikseliä; mikä antaa kirkkauden ja kromin välisen suhteen 4: 1: 1.

Lohkokaavio DCT / DPCM-koodauksesta

Videosekvenssin ensimmäinen kehys (I-kehys) koodataan kehyksen sisäisellä tilalla viittaamatta menneisiin tai tuleviin kehyksiin. DCT käytetään jokaiseen 8x8 kirkkaus- ja kromilohkoon, kukin 64 DCT-kertoimesta kvantisoidaan tasaisesti (Q). Kvantifioinnin jälkeen pienempää kerrointa (jatkuva kerroin, joka tunnetaan nimellä DC) käsitellään eri tavalla kuin muita (AC-kertoimia). DC-kerroin vastaa lohkon keskimääräistä intensiteettiä ja se koodataan DC-differentiaaliennustusmenetelmällä. Loput nollasta poikkeavat kertoimet koodataan sitten siksak-koodauksella kuten JPEG-koodauksessa.

Lohkokaavio DCT / DPCM-dekoodauksesta

Dekooderi suorittaa käänteisen operaation. Se aloitetaan purkamalla ja dekoodaamalla kunkin lohkon eri DCT-kertoimien tiedot. Nollasta poikkeavien kertoimien rekonstruoinnilla (Q *) se suorittaa käänteisen DCT: n (DCT -1 ) ja lohkojen pikselien kvantisointiarvot rekonstruoidaan. Kunkin kuvan kaikki lohkot dekoodataan ja rekonstruoidaan.

P- kehysten koodaamiseksi edelliset N-1-kehykset (I- tai P-kehykset) tallennetaan väliaikaisesti FS: ään (kehystallennus). Liikkeen kompensointi (MC) suoritetaan makrolohkojen perusteella. Video -puskuria (VB) on tarpeen varmistaa vakiobittinopeudella videovirran.

Täyttöolosuhteet

MPEG-1-algoritmin tarjoama ominaisuus on mahdollisuus päivittää makrolohkojen tiedot dekooderiin vain tarvittaessa (jos lohkon sisältöä muutetaan verrattuna edellisen kuvan saman lohkon sisältöön). Avain videosekvenssien tehokkaaseen koodaamiseen pienellä bittinopeudella sekunnissa on ennustusalgoritmin oikea valinta. MPEG-standardi erottaa pääasiassa kolme menetelmää (MB-tyypit):

MPEG-1: n ominaisuudet

Mediatiedostovälineen käyttämiseksi MPEG-1- algoritmi on suunniteltu tukemaan erilaisia ​​ominaisuuksia, kuten satunnainen pääsy, pikakelaus eteenpäin (FF-pikakelaus eteenpäin) ja taaksepäin (FR-pikakelaus eteenpäin) videovirrassa jne.

Näiden ominaisuuksien sisällyttämiseksi ja liikekompensoinnista ja liikkeen interpoloinnista saatavien etujen saamiseksi MPEG-1-algoritmi esittelee ennustettujen ja kaksisuuntaisesti interpoloitujen kuvien (B-kehykset) käsitteen.

Kolme kehystyyppiä otetaan huomioon:

Käyttäjä voi järjestää erityyppisten kehysten järjestyksen sovelluksen tarpeiden mukaan. Yleensä pelkästään I (IIIII ...) -kehyksillä koodattu videosekvenssi antaa korkean satunnaisen pääsyn, FF / FR-muokkauksen ja muokkauksen, mutta erittäin alhaisen pakkausnopeuden. Ainoastaan ​​P-kehyksillä koodattu videosekvenssi (IPPPPPPIPPPPP ...) Sallii keskitason satunnaiskäytön ja FF / FR.

Jos käytämme kolmen tyyppisiä kehyksiä (IBBPBBPBBIBBBP ...) Saavutamme korkean pakkausnopeuden ja kohtuullisen määrän satunnaista pääsyä ja FF / FR, mutta lisäämme huomattavasti koodausaikaa. Videopuhelun tai videoneuvottelun kaltaisissa sovelluksissa tämä aika voi tulla sietämättömäksi.

MPEG-2

MPEG-2-algoritmi on suunniteltu laadultaan vähintään NTSC / PAL: n laatua vastaavaksi ja paremmaksi kuin CCIR 60: n .

Pohjimmiltaan MPEG-2: n algoritmi on identtinen MPEG-1: n kanssa ja on siksi yhteensopiva. Jokaisen MPEG-2-dekooderin on kyettävä purkamaan kelvollinen MPEG-1-videovirta. Useita algoritmeja on lisätty mukautumaan uusiin tarpeisiin. MPEG-2: ta käytetään lomitettujen kuvien käsittelyyn.

MPEG-2 esittelee "profiilien" ja "tasojen" käsitteen yhteensopivaksi järjestelmien kanssa, jotka eivät toteuta kaikkia näitä ominaisuuksia.

Jokainen taso määrittää koodaamiseen hyödyllisten eri parametrien alueen.

Päätaso tukee enimmäistiheyttä 720 pikseliä vaakasuunnassa ja 576 pikseliä pystysuorassa, kuvanopeutta 30 kuvaa sekunnissa ja nopeutta 15 Mbit / s.

Bibliografia

Aiheeseen liittyvät artikkelit

Huomautuksia ja viitteitä

  1. Christine Fernandez-Maloigne, Frédérique Robert-Inacio, Ludovic Macaire, Digital Color: hankinta, havaitseminen, koodaus ja renderöinti , Pariisi, Lavoisier, coll.  ”IC2-sopimus”, 348  s. ( ISBN  978-2-7462-2555-8 ) , s.  249

Ulkoiset linkit