aspose.info
NL

VP6 - TrueMotion-videobestand

Bijgewerkt

Wat is een VP6-bestand?

VP6 is een video-indeling met compressie met verlies die in mei 2003 werd geïntroduceerd door On2-technologieën. Het maakt deel uit van een reeks videocodecs die zijn ontwikkeld door TrueMotion, waaronder V3, V4 en V5. Het formaat werd kort gebruikt in de omroepsector, zoals bij BBC-rapporten en QuickLink-software. VP6 werd in januari 2005 opgevolgd door VP7 Codec met betere compressiecompatibiliteit.

VP6-bestandsindeling

Volledige specificaties voor V6-bestanden zijn niet openbaar beschikbaar. On2 maakte de specificaties aanvankelijk openbaar, maar al snel werden deze niet beschikbaar gemaakt voor algemene gebruikers. Een niet-officiële documentatie van het VP6-bestandsformaat is beschikbaar op multimedia wiki waarnaar kan worden verwezen ter referentie van de ontwikkelaar.

Macroblokken (MB)

Net als bij MPEG-2, MPEG-4 delen 2 en 10, is elk videoframe van een VP6-bestand samengesteld uit een reeks van 16x16 macroblokken (MB). Elke MB kan zich in een van de volgende modi bevinden:

  • Intra MB
  • Inter MB, null MV, vorige framereferentie
  • Inter MB, differentiële MV, vorige framereferentie
  • Inter MB, vier MV’s, vorige framereferentie
  • Inter MB, MV 1, vorige framereferentie
  • Inter MB, MV 2, vorige framereferentie
  • Inter MB, null MV, framereferentie met bladwijzer
  • Inter MB, differentiële MV, framereferentie met bladwijzer
  • Inter MB, MV 1, framereferentie met bladwijzer
  • Inter MB, MV 2, framereferentie met bladwijzer

Framekoptekst

De frameheader van een VP6 is zoals hieronder weergegeven en volgt de big-endian bitverpakking.

SyntaxisAantal bitsTypeSymantecs
frame_mode1Enum0x0 betekent een intra frame
qp6UnsignedKwantiseringsparameter geldig bereik 0..63
markering1Constante0=VP61/62, 1=VP60
if (frame_mode == 0) {0is gelijk aan INTRA_FRAME
versie5Constante6=VP60/61, 7=VP60 (elektronische kunst), 8=VP62
versie22Constante0=VP60, 3=VP61/62
interlace1Booleantrue (1) betekent dat interlace wordt gebruikt
if (marker==1 of version2==0) {
offset16Niet ondertekendsecundaire bufferoffset (bytes ten opzichte van het begin van de buffer)
}
dim_y8Niet ondertekendMacroblokhoogte van video
dim_x8Niet ondertekendMacroblokbreedte van video
render_y8Niet ondertekendToon hoogte van video
render_x8Niet ondertekendWeergavebreedte van video
}anders{
if (marker==1 of version2==0) {
offset16UnsignedSecundaire bufferoffset (bytes ten opzichte van het begin van de buffer)
}
}

Referenties

Zie ook