VP8
VP8 — видеокодек, созданный компанией On2 Technologies как замена предыдущим кодекам VP7 и VP6. Анонсирован в сентябре 2008 года[7][8][9]. В 2010 году компания Google приобрела компанию-создателя формата и 19 мая 2010 года представила открытые исходные коды на конференции Google I/O[10]. Таким образом, VP8 стал вторым продуктом компании On2, имеющим открытый исходный код (первым был кодек VP3, в 2002 году открытый под лицензией BSD как кодек Theora). Возможно, данное событие стало результатом открытого письма из Free Software Foundation от 12 марта 2010 к Google с предложением открыть формат и постепенно заменить им ныне используемую комбинацию из Adobe Flash Player и H.264/MPEG-4 AVC форматом VP8 и HTML5[11][12]. Исходные коды VP8 открыты под лицензией, схожей с BSD, но дополненной передачей некоторых патентных прав.
Общие сведения
| VP8 | |
|---|---|
| MIME-тип | video/VP8[2] |
| Разработчик | |
| Опубликован | 13 сентября 2008 года |
| Тип формата | Сжатое видео |
| Содержится в | WebM, Matroska, Ogg |
| Расширен из | VP7 |
| Развит в | VP9 |
| Стандарт(ы) | RFC6386 |
| Открытый формат? | Да (спецификация под CC Attribution)[1] |
| Сайт | webmproject.org |
| libvpx (VP8 codec library)[3][4][5] | |
|---|---|
| Тип | Видеокодек |
| Разработчик | |
| Написана на | Си |
| Операционные системы | UNIX-подобные (включая GNU/Linux, Mac OS X), Windows |
| Первый выпуск | 18 мая 2010 года |
| Последняя версия | 1.1.0 (11 мая 2012 года) |
| Состояние | Active |
| Лицензия | Новая лицензия BSD[6] |
| Сайт | webmproject.org |
Особенности кодека
- Golden Frames — введён новый тип ключевых кадров. Это опорные кадры, хранящиеся в отдельном буфере и допускающие ссылку на себя спустя значительное время после их декодирования.
- Повышенная устойчивость к потере пакетов (кадры типа Recovery строятся не на базе непосредственно предшествующих кадров).
- Loop Filtering (фильтрация артефактов от DCT-кодирования, может применяться по-разному к частям кадра с быстрым движением, с медленным движением, к неизменным частям).
- Multicore adaptability (возможно кодирование со множеством слабо зависимых подпотоков, позволяющее масштабировать декодирование на многоядерных архитектурах).
- Декодирование адаптировано как к SIMD-расширениям, так и к процессорам без них, со слабой (медленной) поддержкой байтовых операций (например, для ARM9 или ARM11 сложение 4 пар байт может быть заменено на одно сложение пары 32-битных слов за счёт того, что кодек гарантирует отсутствие переполнения или насыщения в некоторых операциях). Для архитектур без поддержки вывода в формате YUV возможно определение другого цветового пространства, более близкого к RGB.
- Упрощено по сравнению с предыдущими кодеками On2 энтропийное кодирование и субпиксельное предсказание для ускорения декодирования.
- Realtime Quality — кодек имеет профили, оптимизированные для проведения видеоконференций в реальном времени.
Ограничения формата
- Максимальный размер кадра составляет 16384x16384 пикселей, так как для высоты и ширины отводится всего по 14 бит.
- Нет поддержки B-кадров, что может уменьшить степень сжатия. С другой стороны, это упрощает декодер. Для повышения степени сжатия используются аналогичные, но непопадающие под патенты MPEG LA технологии: alternate reference frame[13].
- Заявляется о большей лёгкости декодирования, чем в VP7 — это связано с меньшей силой энтропийного сжатия. Из-за этого кодек очень медленный при кодировании (в 2 раза хуже, чем VP7) на максимальных настройках качества, это нужно для того, чтобы превосходить VP7 по сжатию.
- Отмечается большое сходство методик intra-предсказания с форматом H.264, вплоть до совпадающих имён функций. Это может повлечь патентные проблемы[14]. Так, в марте 2011 г. Министерство юстиции США начало расследование против MPEG LA по подозрению в использовании патентного права с целью устранения конкурента — WebM от Google. Поводом к началу расследования стали обвинения в нарушении патентов третьих разработчиков.[15].
- Спецификации формата не формализованы, содержат множество вставок исходного кода[14].
- Отсутствие независимой реализации кодера. Оригинальные кодер и декодер в реализации On2 имеют значительные общие части. Это усложняет поиск ошибок по сравнению со стандартами, для которых имеется независимая реализация[14]. Здесь стоит отметить, что существует декодер (но не кодер) VP8, созданный в рамках проекта FFmpeg[16], независимо от On2.
Поддержка VP8 операционными системами
| Microsoft Windows | macOS | Linux | Android OS | iOS | |
|---|---|---|---|---|---|
| Поддержка кодеков | да | Только сторонние приложения | да | да | Только сторонние приложения |
| Контейнерная поддержка | В Windows 10 Anniversary Update (1607) :
WebM (.webm не распознается; требуется псевдо-расширение) Matroska (.mkv)
|
WebM (.webm)
Matroska (.mkv) |
WebM (.webm)
Matroska (.mkv) |
WebM (.webm)
Matroska (.mkv) |
WebM (.webm)
Matroska (.mkv) |
| Заметки | В Windows 10 :
|
Отсутствует встроенная поддержка в мультимедийной среде MacOS. | - | - Поддержка введена в Android 2.3.3+
- Streamable в Android 4.0+ |
Нет встроенной поддержки в родной мультимедийной среде iOS. |