Vad är VP6 fil?
VP6 är ett förlustformat komprimerat videoformat som introducerades av On2-teknologier i maj 2003. Det är en del av en serie videocodecs som utvecklats av TrueMotion, inklusive V3, V4 och V5. Formatet användes inom kort inom sändningsområdet som med BBC-rapporter och QuickLink-mjukvara. VP6 efterträddes av VP7 Codec i januari 2005 med bättre kompressionskompatibilitet.
VP6 filformat
Fullständiga specifikationer för V6-filer är inte tillgängliga offentligt. On2 offentliggjorde till en början specifikationerna men snart gjordes dessa otillgängliga för allmänna användare. En inofficiell dokumentation av VP6-filformatet finns tillgänglig på multimedia wiki som kan hänvisas till utvecklarens referens.
Makroblock (MB)
I likhet med MPEG-2, MPEG-4 delar 2 och 10, är varje videobildruta i en VP6-fil sammansatt av en array med 16x16 makroblock (MB). Varje MB kan vara i ett av följande lägen:
- Intra MB
- Inter MB, noll MV, tidigare ramreferens
- Inter MB, differential MV, tidigare ramreferens
- Inter MB, fyra MV, föregående ramreferens
- Inter MB, MV 1, föregående ramreferens
- Inter MB, MV 2, föregående ramreferens
- Inter MB, noll MV, bokmärkt ramreferens
- Inter MB, differential MV, bokmärkt ramreferens
- Inter MB, MV 1, bokmärkt ramreferens
- Inter MB, MV 2, bokmärkt ramreferens
Ramhuvud
Ramhuvudet för en VP6 är som visas nedan som följer big-endian bitpackningen.
Syntax | Antal bitar | Typ | Symantecs |
---|---|---|---|
frame_mode | 1 | Enum | 0x0 anger en intraram |
qp | 6 | Osignerad | Giltigt intervall för kvantiseringsparameter 0..63 |
markör | 1 | Konstant | 0=VP61/62, 1=VP60 |
om (ramläge == 0) { | 0 | lika med INTRA_FRAME | |
version | 5 | Konstant | 6=VP60/61, 7=VP60(Electronic Arts), 8=VP62 |
version2 | 2 | Konstant | 0=VP60, 3=VP61/62 |
interlace | 1 | Boolean | true (1) betyder att interlace kommer att användas |
if (markör==1 eller version2==0) { | |||
offset | 16 | Osignerad | sekundär buffertförskjutning (byte i förhållande till buffertstart) |
} | |||
dim_y | 8 | Osignerad | Makroblockhöjd på video |
dim_x | 8 | Osignerad | Makroblockbredd på video |
render_y | 8 | Osignerad | Visningshöjd på video |
render_x | 8 | Osignerad | Visningsbredd på video |
}annat{ | |||
if (markör==1 eller version2==0) { | |||
offset | 16 | Osignerad | Sekundär buffertförskjutning (byte relaterad till start av buffert) |
} | |||
} |