Какво е VP6 файл?
VP6 е видео формат за компресия със загуба, който беше въведен от технологиите On2 през май 2003 г. Той е част от серия от видео кодеци, разработени от TrueMotion, включително V3, V4 и V5. Форматът беше използван скоро в областта на излъчването, като например с репортажи на BBC и софтуер QuickLink. VP6 беше наследен от VP7 Codec през януари 2005 г. с по-добра съвместимост на компресията.
VP6 файлов формат
Пълните спецификации за V6 файлове не са публично достъпни. On2 първоначално направи спецификациите публични, но скоро те бяха направени недостъпни за обикновените потребители. Неофициална документация за файловия формат VP6 е налична в мултимедийна уики, която може да се използва за справка от разработчиците.
Макроблокове (MB)
Подобно на MPEG-2, MPEG-4 части 2 и 10, всеки видеокадър на VP6 файл е съставен от масив от 16x16 макроблокове (MB). Всеки MB може да бъде в един от следните режими:
- Вътрешен MB
- Inter MB, null MV, препратка към предишен кадър
- Inter MB, диференциално MV, препратка към предишен кадър
- Inter MB, четири MVs, препратка към предишен кадър
- Inter MB, MV 1, препратка към предишен кадър
- Inter MB, MV 2, препратка към предишен кадър
- Inter MB, null MV, препратка към рамка с отметка
- Inter MB, диференциално MV, референтна рамка с отметка
- Inter MB, MV 1, препратка към рамка с отметка
- Inter MB, MV 2, препратка към рамка с отметки
Заглавка на рамка
Заглавната част на рамката на VP6 е както е показано по-долу, която следва пакетирането на битове в посока big-endian.
Синтаксис | Брой битове | Тип | Symantecs |
---|---|---|---|
frame_mode | 1 | Enum | 0x0 означава вътрешен кадър |
qp | 6 | Неподписан | Валиден диапазон на параметъра за квантуване 0..63 |
маркер | 1 | Константа | 0=VP61/62, 1=VP60 |
ако (frame_mode == 0) { | 0 | е равно на INTRA_FRAME | |
версия | 5 | Константа | 6=VP60/61, 7=VP60(Electronic Arts), 8=VP62 |
версия2 | 2 | Константа | 0=VP60, 3=VP61/62 |
преплитане | 1 | Boolean | true (1) означава, че ще се използва преплитане |
ако (маркер==1 или версия2==0) { | |||
отместване | 16 | Неподписан | отместване на вторичния буфер (байтове, свързани с началото на буфера) |
} | |||
dim_y | 8 | Неподписано | Височина на макроблока на видео |
dim_x | 8 | Неподписано | Ширина на макроблок на видео |
render_y | 8 | Неподписан | Височина на показване на видео |
render_x | 8 | Неподписан | Показване на ширина на видео |
}друго{ | |||
ако (маркер==1 или версия2==0) { | |||
отместване | 16 | без знак | отместване на вторичен буфер (байтове, свързани с началото на буфера) |
} | |||
} |