Оригинальный автор(ы) | On2 Технологии / Google |
---|---|
Разработчик(и) | Альянс за открытые медиа |
Первоначальный выпуск | 19 мая 2010 г. ( 2010-05-19 ) | [1] [2]
Стабильный релиз | 1.14.1 [3] / 21 мая 2024 г. ( 21 мая 2024 ) |
Репозиторий |
|
Написано в | С , сборка |
Операционная система | Unix-подобные (включая Linux , FreeBSD и Mac OS X ), Windows |
Тип | Видеокодер и декодер |
Лицензия | Новая лицензия BSD |
Веб-сайт | www.webmproject.org/tools/ |
libvpx — это бесплатная библиотека видеокодеков от Google и Alliance for Open Media (AOMedia). Она служит эталонной реализацией программного обеспечения для форматов видеокодирования VP8 и VP9 , а для AV1 — специального ответвления под названием libaom , лишенного обратной совместимости.
Как свободное программное обеспечение оно также публикуется в исходном коде в соответствии с условиями пересмотренной лицензии BSD . Оно поставляется с инструментами командной строкиvpxenc
/ aomenc
и vpxdec
/, aomdec
которые основываются на его функциональности.
libvpx берет свое начало от компании On2 Technologies, производящей видеокодеки , которая продала свой первый программный кодек в середине 90-х годов.
libvpx был выпущен как бесплатное программное обеспечение компанией Google 19 мая 2010 года после приобретения On2 Technologies за сумму, оцениваемую более чем в 120 миллионов долларов США. [2] [4]
В июне 2010 года Google изменила лицензию программного обеспечения кодека VP8 на лицензию BSD из 3 пунктов [5] [6] [7] после некоторых разногласий по поводу того, была ли исходная лицензия действительно открытым исходным кодом . [8] [9] [10]
Google критиковали за то, что он выпустил неаккуратный код с плохой документацией для первоначального выпуска libvpx и разрабатывал его за закрытыми дверями, не вовлекая сообщество в процесс. [11] Процесс разработки был открыт после выпуска VP9.
Предварительная поддержка VP9 была добавлена в libvpx 17 июня 2013 года. Она была официально представлена с выпуском версии 1.3 2 декабря, которая также поддерживает сжатие без потерь . [12]
В апреле 2015 года Google выпустила значительное обновление своей библиотеки libvpx, добавив в версию 1.4.0 поддержку кодирования VP9 с 10-битной и 12-битной глубиной цвета , цветовой субдискретизации 4:2:2 и 4:4:4 (профили VP9 1, 2 и 3), а также многопоточное декодирование/кодирование VP9. [13]
Версии 1.5 (ноябрь 2015 г.), 1.6 (июль 2016 г.), 1.7 [14] (январь 2018 г.) и 1.8 [15] (февраль 2019 г.) обеспечили значительное ускорение как кодирования, так и декодирования.
libvpx реализует однопроходный и двухпроходный режимы кодирования с настройками битрейта или целевого качества.
libvpx предлагает асимметричный кодек – с кодированием, занимающим гораздо больше времени, чем декодирование – и опции для настройки расходов на кодирование независимо от сложности декодирования. Можно настроить предпросмотр до 25 кадров, что повышает эффективность сжатия, но вносит задержку и тем самым ухудшает производительность в реальном времени.
libvpx включает режим, в котором будут использоваться максимально возможные ресурсы ЦП, при этом скорость кодирования будет практически полностью соответствовать скорости воспроизведения (в реальном времени), что позволит сохранить максимально высокое качество без задержек.
libvpx поддерживает цветовые пространства Rec. 601 , Rec. 709 , Rec. 2020 , SMPTE-170 , SMPTE-240 и sRGB .
При высоких разрешениях (например, UHD ) VP9, закодированный libvpx для приложений VOD, обеспечивает значительное улучшение по сравнению с H.264 , закодированным x264 . [16] HEVC , закодированный x265 , может обеспечить даже лучшее качество, [16] но безвозмездный характер VP9 делает его привлекательным вариантом для доставки видео высокого разрешения на поддерживаемых платформах.
Производительность декодирования относительно низкая, отчасти для того, чтобы облегчить поддержку кодовой базы. [17] По сравнению с первоначальным выпуском libvpx, ffvp8 из проекта FFmpeg улучшил производительность на 22% до более чем 66%. [11] В 2016 году альтернативные декодеры VP9 все еще добились на 25–50% более быстрого декодирования. [18] [19]
libvpx написан на языке C и ассемблере . По состоянию на 2015 год он не имеет полного покрытия SIMD. [17]
libvpx используется крупными видеосервисами OTT, включая YouTube , Netflix , Amazon , JW Player , Brightcove и Telestream , среди которых есть крупнейшие источники интернет-трафика, причем на Netflix приходится почти треть всего интернет-трафика в Соединенных Штатах по состоянию на 2017 год. [20] [21]
Существуют альтернативы для декодирования VP8 и VP9, как коммерческие, так и с закрытым и открытым исходным кодом. Для кодирования существуют только коммерческие альтернативы и некоторое незаконченное экспериментальное ПО для VP8, включая xvp8 по состоянию на 2016 год.
{{cite journal}}
: Цитировать журнал требует |journal=
( помощь )