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