Ramtyper

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 19 augusti 2018; kontroller kräver 6 redigeringar .

Ramtyper i en komprimerad videoström är metoder för att koda och lagra information om nästa bildruta , som skiljer sig från varandra i närvaro eller frånvaro av beroenden av denna bildruta på tidigare och efterföljande.

En ram är den grundläggande kodningsstrukturen. Följande parametrar är associerade med en ram: tid, ramtyp, buffertinitieringsflagga, upplösning av rörelsevektorer och deras ordning samt användardata

Vanligtvis är en ram uppdelad i kvadratiska makroblock och länktypen för vart och ett av makroblocken bestäms individuellt, men med en begränsning som ges av typen av hela ramen:

Den nya MPEG-4 AVC/H.264-standarden introducerar också konceptet med SI- och SP-ramar .

Beskrivning av ramtyper

I-frames

I-ramar kodas på samma sätt som JPEG -ramar . I varianten av algoritmen där det bara finns I-frames konverteras videosekvensen till M-JPEG . I-frames kan användas för slumpmässig åtkomst eftersom de inte kräver ytterligare information. I-ramar har det lägsta kompressionsförhållandet.

P-ramar

P-ramar kodas med hjälp av tidigare I- och P-ramar. Till exempel, en ram som omedelbart följer en I-frame använder den oförändrade informationen från den I-ramen och fyller den med sin inter-frame-skillnad. Om denna P-ram följs av en annan P-ram, så tar den i sin tur den oförändrade informationen från den tidigare P-ramen (som i sin tur använde den oförändrade I-raminformationen) och kompletterar den med sin skillnad mellan ramarna.

B-ramar

B-ramar används som en interpolation mellan föregående och följande ramar av både I- och P-typer.

D-frames

MPEG-1 har en unik ramtyp som inte finns i senare videostandarder. D-ramar refereras aldrig till med I-, P- eller B-ramar. D-frames används bara för snabba videoförhandsvisningar, till exempel när du snabbt söker efter ett önskat videosegment.

Med lite bättre avkodningshårdvara kan förhandsgranskning göras genom att avkoda I-frames istället för D-frames. Detta ger en bättre förhandsvisning eftersom I-frames komprimeras med mindre förlust. Om kodaren kan anta att snabb avkodning av I-frames är tillgänglig i avkodare, kan den spara bitar genom att inte skicka D-frames (och därmed förbättra videoinnehållskomprimeringen). Av denna anledning används D-frames sällan i MPEG-1-videokodning, och D-frame-funktionen har inte inkluderats i några senare videokodningsstandarder.

Ramgrupp

En grupp bilder (GOP) är den minsta oberoende kodningsstrukturen i en videosekvens. Slumpmässig åtkomst till videosekvensen är möjlig upp till en grupp bildrutor. Den ramgruppsrelaterade informationen inkluderar tidskod, stängd flagga och användarinformation.

GOP-strukturen betecknas ofta med två siffror, såsom M = 3, N = 12. Den första siffran anger avståndet mellan två ankarramar (I eller P). Den andra talar om avståndet mellan två kompletta bilder (I-frames): detta är storleken på GOP. Till exempel M = 3, N = 12, GOP-strukturen är IBBBPBBPBBPBBI. Istället för M-parametern kan du använda det maximala antalet B-ramar mellan två på varandra följande ankarramar.

Till exempel, i en sekvens med mönstret IBBBPBBBBPBBBBBI, är GOP-storleken ( N-värde ) 15 (längden mellan två I-ramar) och avståndet mellan två ankarramar ( M-värde ) är 5 (längden mellan I- och P-ramar, eller längden mellan två på varandra följande P-ramar).

Ramgrupptyper

Jag

I videoströmmens MJPEG- och DV - codec är alla bildrutor av I-typ.

IP

Familjen MPEG4-codecs av ​​den "tredje versionen" (den mest populära var DivX 3.11, DivX 4.12 och OpenDivX är också kända) har två typer av ramar - I och P. B-ramar tillhandahålls inte. Situationen är densamma i familjen av codecs från On2 : VP3 , VP6 , VP8 .

Dessutom har många moderna codecs möjliga inställningar som stänger av skapandet av B-ramar för att minska kostnaden för processorkraft för realtidsbehandling.

Standarderna för videokomprimering som antagits av ITU-T VCEG och ISO / IEC MPEG komprimerar vanligtvis bara skillnaden mellan bildrutor. Till exempel, i en scen där en person går mot en bakgrund av stationära föremål, krävs det att endast spara information om förändrade områden (till exempel med hjälp av rörelsekompensation , som sparar blockpositionsändringsvektorn eller, om ett liknande område inte är som finns i föregående bildruta, komprimeras detta område som en oberoende bild). Delar av scenen som inte ändras sparas inte i strömmen, vilket kraftigt ökar komprimeringsförhållandet jämfört med format som använder oberoende komprimering av varje bildruta.

Till exempel, för I- och P-ramar i strömmen, bildas IPPPPPPPPPPPPP...- kedjor när den första ramen komprimeras oberoende, och efterföljande komprimeras med referens till den första ramen. Detta är det enklaste exemplet på att använda olika typer av ramar i en ström.

Medan den största fördelen med att använda P-ramar är ökningen av kompressionsförhållandet, är deras största nackdel den dramatiskt ökande ramåtkomsttiden, eftersom hela kedjan av ramar från närmaste I-frame måste dekomprimeras helt för att erhålla den önskade ramen. I synnerhet, om komprimeringen har ställts in på parametrar som maximerar komprimeringsförhållandet, så att I-ramar är sällsynta, kan fördröjningstiden för att visa en godtycklig ram i strömmen vara mycket märkbar.

IPB

I en ström komprimerad av en videocodec enligt MPEG-2 , MPEG-4 , H.261 , H.263 och H.264 standarder används tre huvudtyper av ramar : I-frames (från engelska  Intra pictures ), P -frames (från Predicted pictures ) och B-frames (från Bi-predictive pictures eller Bi-directional pictures ).

Användningen av B-ramar innebär att en given ram refererar till två intilliggande I- eller P-ramar i strömmen, i vilket fall ramkedjan kan se ut så här: IBPBPBPBPBPBPBPBP . Mer vanligt förekommande kedjor är IBBBPBBPBBPBBPBBPBBPBBPBBP, där B-ramar fortfarande hänvisar till de två närmaste intilliggande I- eller P-ramarna och är oberoende av varandra.

Denna struktur gör det möjligt att snabba upp tiden för att erhålla en godtycklig ram i strömmen med 2–3 gånger, eftersom det för att erhålla det är nödvändigt att packa upp endast varannan (tredje) bildruta (som är en P-ram ), med början från I-ramen. Dessutom ökar hastigheten för "spolning framåt med showen" flera gånger.

Funktioner i implementeringar

Xvid- codec , med lämpliga inställningar, låter dig få 4 eller fler B-ramar i rad. Och en sådan ström kommer att reproduceras korrekt av sig själv, såväl som av ffdshow- avkodaren . Vissa avkodare kan inte korrekt återge mer än en B-bildruta i rad.[ betydelsen av faktum? ]

Länkar