VP8

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
VP8
Vp8-logo-for-mediawiki.svg
MIME-тип video/VP8[1]
Разработчик Google
Опубликован 13 сентября 2008 года
Тип формата Сжатое видео
Содержится в WebM, Matroska, Ogg
Расширен из VP7
Стандарт(ы) RFC6386
Сайт webmproject.org
libvpx (VP8 codec library)[2][3][4]
Vp8-logo-for-mediawiki.svg
Тип Видеокодек
Разработчик Google
Написана на Си
Операционная система UNIX-подобные (включая GNU/Linux, Mac OS X), Windows
Первый выпуск 18 мая 2010 года
Последняя версия 1.1.0 (11 мая 2012 года)
Состояние Active
Лицензия Новая лицензия BSD[5]
Сайт webmproject.org

VP8 — видеокодек, созданный компанией On2 Technologies как замена предыдущим кодекам VP7 и VP6. Анонсирован в сентябре 2008 года[6][7][8]. В 2010 году компания Google приобрела компанию-создателя формата и 19 мая 2010 года представила открытые исходные коды на конференции Google I/O[9]. Таким образом, VP8 стал вторым продуктом компании On2, имеющим открытый исходный код (первым был кодек VP3, в 2002 году открытый под лицензией BSD как кодек Theora). Возможно, данное событие стало результатом открытого письма из Free Software Foundation от 12 марта 2010 к Google с предложением открыть формат и постепенно заменить им ныне используемую комбинацию из Adobe Flash Player и H.264/MPEG-4 AVC форматом VP8 и HTML5[10][11]. Исходные коды VP8 открыты под лицензией, схожей с BSD, но дополненной передачей некоторых патентных прав.

Особенности кодека[править | править код]

  • 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[12].
  • Заявляется о большей лёгкости декодирования, чем в VP7 — это связано с меньшей силой энтропийного сжатия. Из-за этого кодек очень медленный при кодировании (в 2 раза хуже, чем VP7) на максимальных настройках качества, это нужно для того, чтобы превосходить VP7 по сжатию.
  • Отмечается большое сходство методик intra-предсказания с форматом H.264, вплоть до совпадающих имён функций. Это может повлечь патентные проблемы[13]. Так, в марте 2011 г. Министерство юстиции США начало расследование против MPEG LA по подозрению в использовании патентного права с целью устранения конкурента — WebM от Google. Поводом к началу расследования стали обвинения в нарушении патентов третьих разработчиков.[14].
  • Спецификации формата не формализованы, содержат множество вставок исходного кода[13].
  • Отсутствие независимой реализации кодера. Оригинальные кодер и декодер в реализации On2 имеют значительные общие части. Это усложняет поиск ошибок по сравнению со стандартами, для которых имеется независимая реализация[13]. Здесь стоит отметить, что существует декодер (но не кодер) VP8, созданный в рамках проекта FFmpeg[15], независимо от On2.

См. также[править | править код]

Примечания[править | править код]

  1. https://www.iana.org/assignments/media-types/video/VP8
  2. WebM Code - Build Prerequisites. Дата обращения 2 июня 2010. Архивировано 18 июня 2012 года.
  3. WebM Downloads. Дата обращения 1 ноября 2010. Архивировано 18 июня 2012 года.
  4. WebM Code > Repository Layout. Дата обращения 2 июня 2010. Архивировано 18 июня 2012 года.
  5. Software License. Дата обращения 4 июня 2010. Архивировано 18 июня 2012 года.
  6. On2 VP8 (недоступная ссылка). Yenra. Дата обращения 11 сентября 2009. Архивировано 18 июля 2011 года.
  7. Glen Dickson. IBC2008: On2 Touts New Codec for Web Video. Broadcasting & Cable (16 сентября 2008). Дата обращения 11 сентября 2009. Архивировано 26 апреля 2012 года.
  8. On2 Technologies. On2 Technologies Unveils New Advanced Video Compression Format (недоступная ссылка). On2 Technologies (13 сентября 2008). Дата обращения 11 сентября 2009. Архивировано 22 сентября 2008 года.
  9. Google Makes Major Announcements at Google I/O, Ben Parr, mashable.com, May 19, 2010
  10. Open letter to Google: free VP8, and use it on YouTube, Holmes Wilson, Free Software Foundation, March 12, 2010
  11. OpenNews: Фонд свободного ПО предложил перевести видекодек VP8 в разряд свободных продуктов
  12. Inside WebM Technology: The VP8 Alternate Reference Frame — The WebM Open Media Project Blog
  13. 1 2 3 Анализ VP8 одним из разработчиков x264 Архивировано 21 мая 2010 года.
  14. В США MPEG LA подозревают в попытках нечестно конкурировать с Google. ITC.ua (7 марта 2011). Дата обращения 7 марта 2011. Архивировано 15 февраля 2012 года.
  15. Разработчики FFmpeg написали собственный декодер для видеокодека VP8

Ссылки[править | править код]