Inter ramme - Inter frame

En interramme er en ramme i en videokomprimeringsstrøm , der udtrykkes i form af et eller flere nabobilleder. Den "inter" del af udtrykket refererer til brugen af Inter frame forudsigelse . Denne form for forudsigelse forsøger at drage fordel af tidsmæssig redundans mellem naborammer, hvilket muliggør højere komprimeringshastigheder.

Interram forudsigelse

En interkodet ramme er opdelt i blokke kendt som makroblokke . Derefter vil encoderen i stedet for direkte at kode de rå pixelværdier for hver blok forsøge at finde en blok, der ligner den, den koder på en tidligere kodet ramme, kaldet en referenceramme . Denne proces udføres af en blokmatchingsalgoritme . Hvis encoderen lykkes med sin søgning, kan blokken kodes af en vektor, kendt som bevægelsesvektor , som peger på positionen af ​​den matchende blok ved referencerammen. Processen med bevægelsesvektorbestemmelse kaldes bevægelsesestimering .

I de fleste tilfælde vil encoderen lykkes, men den fundne blok er sandsynligvis ikke en nøjagtig match til den blok, den koder. Det er derfor, encoderen vil beregne forskellene mellem dem. Disse restværdier er kendt som forudsigelsesfejl og skal transformeres og sendes til dekoderen.

For at opsummere, hvis det lykkes for encoderen at finde en matchende blok på en referenceramme, vil den opnå en bevægelsesvektor, der peger på den matchede blok og en forudsigelsesfejl. Ved hjælp af begge elementer vil dekoderen være i stand til at gendanne blokens rå pixels. Følgende billede viser hele processen grafisk:

Image
Inter-frame forudsigelsesproces. I dette tilfælde har der været en belysningsændring mellem blokken ved referencerammen og blokken, der kodes: Denne forskel vil være forudsigelsesfejlen til denne blok.

Denne form for forudsigelse har nogle fordele og ulemper:

  • Hvis alt går fint, vil algoritmen være i stand til at finde en matchende blok med lille forudsigelsesfejl, så når den er transformeret, er den samlede størrelse af bevægelsesvektor plus forudsigelsesfejl lavere end størrelsen på en rå kodning.
  • Hvis blokmatchingsalgoritmen ikke finder et passende match, vil forudsigelsesfejlen være betydelig. Således vil den samlede størrelse af bevægelsesvektor plus forudsigelsesfejl være større end den rå kodning. I dette tilfælde ville encoderen gøre en undtagelse og sende en rå kodning for den specifikke blok.
  • Hvis den matchede blok ved referencerammen også er blevet kodet ved hjælp af Inter frame -forudsigelse, vil de fejl, der er lavet for dens kodning, blive overført til den næste blok. Hvis hvert billede blev kodet ved hjælp af denne teknik, ville der ikke være nogen måde for en dekoder at synkronisere med en videostream, fordi det ville være umuligt at få referencebillederne.

På grund af disse ulemper skal en pålidelig og periodisk referenceramme bruges for at denne teknik skal være effektiv og nyttig. Denne referenceramme er kendt som Intra-frame , som er strengt intrakodet, så den kan altid afkodes uden yderligere oplysninger.

I de fleste designs er der to typer mellemrammer: P-rammer og B-rammer. Disse to slags rammer og I-frames (Intra-kodede billeder) deltager normalt i en GOP (Group Of Pictures). I-rammen behøver ikke yderligere oplysninger for at blive afkodet, og den kan bruges som en pålidelig reference. Denne struktur giver også mulighed for at opnå en I-frame periodicitet, som er nødvendig for dekodersynkronisering.

Ramme typer

Forskellen mellem P-rammer og B-rammer er den referenceramme, de har lov til at bruge.

P-stel

P-frame er det udtryk, der bruges til at definere de forudsagte billeder. Forudsigelsen er baseret på et tidligere billede, hovedsageligt en I-ramme eller P-ramme, så det kræver mindre kodningsdata (≈50% i forhold til I-billedstørrelse).

Mængden af ​​data, der er nødvendig for at udføre denne forudsigelse, består af bevægelsesvektorer og transformationskoefficienter, der beskriver forudsigelseskorrektion. Det indebærer brug af bevægelseskompensation .

B-ramme

B-frame er betegnelsen for tovejs forudsagte billeder. Denne form for forudsigelsesmetode optager mindre kodningsdata end P-rammer generelt (≈25% sammenlignet med I-billedstørrelse), fordi forudsigelsen er lavet enten fra en tidligere ramme eller en senere ramme eller begge dem. (B-rammer kan også være mindre effektive end P-frames i visse tilfælde, f.eks .: tabsfri kodning)

På samme måde som P-rammer udtrykkes B-rammer som bevægelsesvektorer og transformationskoefficienter. For at undgå en voksende formeringsfejl bruges B-rammer ikke som reference til at forudsige yderligere forudsætninger i de fleste kodningsstandarder. I nyere kodningsmetoder (såsom H.264/MPEG-4 AVC og HEVC ) kan B-rammer dog bruges som reference for bedre udnyttelse af tidsmæssig redundans.

Typisk gruppe af billeder (GOP) struktur

Image
Illustration af afhængigheder af gruppen af ​​billeder skema IBBPBB ... Tiden går fra venstre mod højre.

Den typiske gruppe af billeder (GOP) struktur er IBBPBBP ... I-rammen bruges til at forudsige den første P-ramme, og disse to rammer bruges også til at forudsige den første og den anden B-ramme. Den anden P-ramme forudsiges også ved hjælp af den første I-ramme. Begge P-rammer går sammen for at forudsige den tredje og fjerde B-frame. Skemaet er vist på det næste billede:

Denne struktur antyder et problem, fordi den fjerde ramme (en P-ramme) er nødvendig for at forudsige den anden og den tredje (B-ramme). Så vi skal sende P-rammen før B-rammerne, og det vil forsinke transmissionen (det vil være nødvendigt at beholde P-rammen). Denne struktur har stærke sider:

  • Det minimerer problemet med mulige afdækkede områder.
  • P-frames og B-frames har brug for færre data end I-frames, så der overføres færre data.

Men det har svage punkter:

  • Det øger dekoderens kompleksitet, hvilket kan betyde mere hukommelse, der er nødvendig for at omarrangere rammerne, og en lille smule mere processorkraft.
  • B-rammer kan indføre afkodningsafhængighed, som uundgåeligt øger dekodningstid.

H.264 Forbedringer i interram -forudsigelser

De vigtigste forbedringer af denne teknik med hensyn til tidligere H.264 -standard er:

  • Mere fleksibel blokpartition
  • Opløsning på op til ¼ pixel bevægelseskompensation
  • Flere referencer
  • Forbedret direkte/spring over makroblokering

Mere fleksibel blokpartition

Luminansblokpartition på 16 × 16 ( MPEG-2 ), 16 × 8, 8 × 16 og 8 × 8. Den sidste sag tillader opdeling af blokken i nye blokke på 4 × 8, 8 × 4 eller 4 × 4.

H.264 blok division.svg

Rammen, der skal kodes, er opdelt i blokke af samme størrelse som vist på billedet ovenfor. Hver blokforudsigelse vil være blokke af samme størrelse som referencebillederne, opvejet af en lille forskydning.

Opløsning på op til ¼ pixel bevægelseskompensation

Pixels ved halvpixelposition opnås ved at anvende et filter med længde 6.

H = [1-5 20 20 -5 1]

For eksempel:

b = A - 5B + 20C + 20D - 5E + F

Pixels ved kvart-pixel-position opnås ved bilinear interpolation .

Mens MPEG-2 tillod en ½ pixel opløsning, tillader Inter frame op til ¼ pixel opløsning. Det betyder, at det er muligt at søge i en blok i rammen, der skal kodes i andre referencerammer, eller vi kan interpolere ikke -eksisterende pixels for at finde blokke, der er endnu bedre egnet til den aktuelle blok. Hvis bevægelsesvektoren er et helt tal enheder af prøver, betyder det, at det er muligt at finde den kompenserede blok i bevægelse i referencebilleder. Hvis bevægelsesvektoren ikke er et helt tal, vil forudsigelsen blive opnået fra interpolerede pixels ved hjælp af et interpolatorfilter til vandrette og lodrette retninger.

Subpel interpolation.jpg

Flere referencer

Flere referencer til bevægelsesestimering gør det muligt at finde den bedste reference i 2 mulige buffere (liste 0 til tidligere billeder, liste 1 til fremtidige billeder), der indeholder op til 16 billeder i alt. Blokforudsigelse udføres med en vægtet sum af blokke fra referencebilledet. Det giver forbedret billedkvalitet i scener, hvor der er ændringer i fly, zoom eller når nye objekter afsløres.

Flere referencer.jpg

Forbedret direkte/spring over makroblokering

Skip og Direct-tilstand bruges meget ofte, især med B-rammer. De reducerer betydeligt antallet af bits, der skal kodes. Disse tilstande henvises til, når en blok er kodet uden at sende restfejl eller bevægelsesvektorer. Koderen registrerer kun, at det er en Skip -makroblok. Dekoderen vil udlede bevægelsesvektoren for den direkte/spring -tilstand -kodede blok fra andre blokke, der allerede er afkodet.

Der er to måder at udlede forslaget på: Direkte spring.jpg

Midlertidig
Den bruger blokbevægelsesvektoren fra liste 1 -ramme, der er placeret i samme position til at udlede bevægelsesvektoren. Liste 1 -blok bruger en liste 0 -blok som reference.
Rumlig
Det forudsiger bevægelsen fra nabo makroblokke i samme ramme. Et muligt kriterium kunne være at kopiere bevægelsesvektoren fra en tilstødende blok. Disse tilstande bruges i ensartede zoner i billedet, hvor der ikke er meget bevægelse.

Bloker partition.jpg

I figuren ovenfor er pink blokke kodede blokke i Direct/Skip Mode. Som vi kan se, bruges de meget ofte, hovedsageligt i B-rammer.

Yderligere Information

Selvom brugen af ​​udtrykket "ramme" er almindelig i uformel brug, anvendes der i mange tilfælde (f.eks. I internationale standarder for videokodning med MPEG og VCEG ) et mere generelt begreb ved at bruge ordet "billede" frem for "ramme" , hvor et billede enten kan være en komplet ramme eller et enkelt sammenflettet felt.

Video codecs såsom MPEG-2 , H.264 eller Ogg Theora reducere mængden af data i en strøm ved at følge de vigtigste rammer med en eller flere inter rammer. Disse rammer kan typisk kodes ved hjælp af en lavere bithastighed, end det er nødvendigt for nøglerammer, fordi meget af billedet normalt er ens, så kun de skiftende dele skal kodes.

Se også

Referencer

  • Software H.264: http://iphome.hhi.de/suehring/tml/download/
  • T.Wiegand, GJ Sullivan, G. Bjøntegaard, A.Luthra: Oversigt over H.264/AVC -videokodningsstandarden . IEEE -transaktioner på kredsløb og systemer til videoteknologi, bind. 13, nr. 7, juli 2003