Разработан | |
---|---|
Первоначальный выпуск | 17 июня 2013 г. |
Тип формата | Сжатое видео |
Содержится | |
Расширено из | VP8 |
Расширен до | AV1 |
Стандарт | (Спецификация битового потока ) |
Открытый формат ? | Да |
Веб-сайт | webmproject.org/vp9 |
VP9 есть открытый и беспроигрышный формат кодирования видео, разработанный Google.
VP9, является преемником VP8 и конкурирует в основном с помощью MPEG High Efficiency Video Coding (HEVC / H.265). Сначала VP9 в основном использовался на видеоплатформе Google YouTube. Появление Alliance for Open Media и его поддержка продолжающейся разработки преемника AV1, частью которого является Google, привели к растущему интересу к формату.
В отличие от HEVC, поддержка VP9 широко распространена среди современных веб-браузеров (см. видео HTML5 § Поддержка браузера ), за исключением Apple Safari. (как настольная, так и мобильная версия). Android поддерживает VP9, начиная с версии 4.4 KitKat.
Части формата защищены патентами, принадлежащими Google. Компания предоставляет бесплатное использование своих собственных патентов на основе взаимности, то есть до тех пор, пока пользователь не участвует в патентных тяжбах.
VP9 - последняя официальная итерация серии видеоформатов TrueMotion, которые Google купил в 2010 году за 134 доллара. млн вместе с компанией On2 Technologies, которая его создала. Разработка VP9 началась во второй половине 2011 года под названиями Next Gen Open Video (NGOV) и VP-Next. Цели разработки VP9 включали снижение скорости передачи данных на 50% по сравнению с VP8 при сохранении того же качества видео и стремление к большей эффективности сжатия, чем у MPEG High Efficiency Video Кодирование (HEVC) стандарт. В июне 2013 года был завершен «профиль 0» VP9, а два месяца спустя был выпущен браузер Google Chrome с поддержкой воспроизведения видео VP9. В октябре того же года собственный декодер VP9 был добавлен в FFmpeg, а шесть недель спустя - в Libav. Mozilla добавила поддержку VP9 в Firefox в марте 2014 года. В 2014 году Google добавила два профиля с высокой битовой глубиной: профиль 2 и профиль 3.
В 2013 году была опубликована обновленная версия формата WebM, с поддержкой VP9 и Opus audio.
В марте 2013 года Управление по лицензированию MPEG отклонило объявленное заявление о спорных патентных претензиях против VP8 и его преемников после того, как Министерство юстиции США начало расследовать, есть ли это действовало для того, чтобы несправедливо подавить конкуренцию.
На протяжении всего времени Google работал с поставщиками оборудования, чтобы внедрить поддержку VP9 в кремниевые кристаллы. В январе 2014 года Ittiam в сотрудничестве с ARM и Google продемонстрировали свой декодер VP9 для устройств ARM Cortex. Используя методы GPGPU, декодер смог обеспечить разрешение 1080p при 30 кадрах в секунду на плате Arndale. В начале 2015 года Nvidia объявила о поддержке VP9 в своей SoC Tegra X1, а VeriSilicon объявила о поддержке VP9 Profile 2 в своем IP-декодере Hantro G2v2.
В апреле 2015 года Google выпустила значительное обновление для своего libvpx, в версии 1.4.0 добавлена поддержка 10-битной и 12-битной битовой глубины, 4: 2: 2 и 4: 4: 4 субдискретизации цветности и многопоточное декодирование / кодирование VP9.
В декабре 2015 года Netflix опубликовала проект предложения по включению видео VP9 в контейнер MP4 с MPEG Common Encryption.
. В январе 2016 года Иттиам продемонстрировал Кодировщик VP9 на основе OpenCL. Кодировщик предназначен для мобильных графических процессоров ARM Mali и был продемонстрирован на Samsung Galaxy S6.
. Поддержка VP9 была добавлена в веб-браузер Microsoft Edge. Он присутствует в разрабатываемых версиях, начиная с EdgeHTML 14.14291 и должен быть официально выпущен летом 2016 года.
В марте 2017 года Ittiam объявил о завершении проекта по повышению скорости кодирования libvpx.. Было сказано, что прирост скорости составил 50-70%, а код «общедоступен как часть libvpx».
VP9 настроен для видео с разрешением выше 1080p (например, UHD ), а также включает сжатие без потерь.
Формат VP9 поддерживает следующие цветовые пространства : Rec. 601, Рек. 709, Рек. 2020, SMPTE-170, SMPTE-240 и sRGB.
VP9 поддерживает HDR-видео с использованием Hybrid Log- Гамма (HLG) и Perceptual Quantizer (PQ).
Раннее сравнение, в котором учитывалась разная скорость кодирования, показало, что x265 чуть превосходит libvpx при самое высокое качество (самое медленное кодирование), тогда как libvpx превосходит SSIM при любой другой скорости кодирования.
Сравнение артефактов кодированияПри субъективном сравнении качества, проведенном в 2014 году с использованием эталонных кодеров для HEVC (HM 15.0), MPEG-4 AVC / H.264 (JM 18.6) и VP9 (libvpx 1.2.0 с предварительной поддержкой VP9), VP9, как и H.264, требовали примерно в два раза большего битрейта для достижения качества видео, сопоставимого с HEVC, в то время как с синтетическим снимок VP9 был близок к HEVC. Напротив, другое субъективное сравнение, проведенное в 2014 году, показало, что при более высоких настройках качества HEVC и VP9 были связаны с преимуществом битрейта от 40 до 45% по сравнению с H.264.
Netflix после большого теста в августе 2016 года пришел к выводу, что libvpx был на 20% менее эффективным, чем x265, но к октябрю того же года также обнаружил, что настройка параметров кодирования может «уменьшить или даже обратить вспять разрыв между VP9 и HEVC». На NAB 2017 Netflix поделилась, что они перешли на кодировщик EVE, который, согласно их исследованиям, предлагал лучшее двухпроходное управление скоростью и был на 8% эффективнее, чем libvpx.
Офлайн-режим Сравнение кодировщиков между libvpx, двумя кодировщиками HEVC и x264 в мае 2017 года, проведенное Яном Озером из Streaming Media Magazine, с параметрами кодирования, предоставленными или проверенными каждым поставщиком кодировщика (Google, MulticoreWare и MainConcept соответственно), и с использованием целевой метрики Netflix VMAF, пришел к выводу, что VP9 и оба кодека HEVC обеспечивают очень схожую производительность »и« В частности, при более низких битрейтах оба кодека HEVC и VP9 обеспечивают значительно лучшую производительность, чем H.264 ».
Скорость кодирования в сравнении с эффективностью сравнение эталонной реализации в libvpx, x264 и x265 было выполнено разработчиком FFmpeg в сентябре 2015 г.: По индексу SSIM libvpx в основном превосходила x264 в диапазоне сопоставимых скоростей кодирования, но главное быть nefit оказался на более медленном конце x264 @ veryslow (достигнув оптимальной точки увеличения битрейта на 30–40% в два раза медленнее, чем это), тогда как x265 стал конкурентоспособным с libvpx только примерно в 10 раз медленнее, чем x264 @ veryslow. Был сделан вывод, что libvpx и x265 способны обеспечить заявленное улучшение битрейта на 50% по сравнению с H.264, но только в 10–20 раз больше времени кодирования, чем x264. Судя по объективной метрике качества в начале 2015 года, эталонный кодер VP9 обеспечивал качество видео на уровне лучших реализаций HEVC.
Сравнение декодеров, проведенное тем же разработчиком, показало, что декодирование для ffvp9 на 10% быстрее, чем для ffh264 для тех же самых- качественное видео, или «идентичное» с одинаковым битрейтом. Он также показал, что реализация может иметь значение, сделав вывод, что «ffvp9 последовательно превосходит libvpx на 25–50%».
Другое сравнение декодеров показало, что загрузка ЦП на 10–40% выше, чем у H.264 (но не сказано, было ли это с ffvp9 или libvpx), и что на мобильных устройствах демонстрационный проигрыватель Ittiam был примерно на 40 процентов быстрее, чем браузер Chrome при воспроизведении VP9.
Существует несколько вариантов формата VP9 (известных как «профили кодирования»), которые последовательно расширяют возможности; профиль 0 - это базовый вариант, минимально требующий аппаратной реализации:
VP9 предлагает следующие 14 уровней:
Уровень. | Образцов яркости / с | Размер изображения яркости | Макс. Скорость передачи данных (Мбит / с) | Макс. Размер CPB для визуального уровня (МБит) | Мин. Коэффициент сжатия | Макс. Плитки | Мин. Alt -Ref Distance | Max Reference Frames | Примеры разрешения при частоте кадров |
---|---|---|---|---|---|---|---|---|---|
1 | 829440 | 36864 | 0.20 | 0.40 | 2 | 1 | 4 | 8 | 256 × 144 @ 15 |
1.1 | 2764800 | 73728 | 0.80 | 1.0 | 2 | 1 | 4 | 8 | 384 × 192 @ 30 |
2 | 4608000 | 122880 | 1,8 | 1,5 | 2 | 1 | 4 | 8 | 480 × 256 @ 30 |
2,1 | 9216000 | 245760 | 3,6 | 2,8 | 2 | 2 | 4 | 8 | 640 × 384 @ 30 |
3 | 20736000 | 552960 | 7,2 | 6.0 | 2 | 4 | 4 | 8 | 1080 × 512 @ 30 |
3.1 | 36864000 | 983040 | 12 | 10 | 2 | 4 | 4 | 8 | 1280 × 768 @ 30 |
4 | 83558400 | 2228224 | 18 | 16 | 4 | 4 | 4 | 8 | 2048 × 1088 @ 30 |
4.1 | 160432128 | 2228224 | 30 | 18 | 4 | 4 | 5 | 6 | 2048 × 1088 @ 60 |
5 | 311951360 | 8912896 | 60 | 36 | 6 | 8 | 6 | 4 | 4096 × 2176 @ 30 |
5.1 | 588251136 | 8912896 | 120 | 46 | 8 | 8 | 10 | 4 | 4096 × 2176 @ 60 |
5.2 | 1176502272 | 8912896 | 180 | TBD | 8 | 8 | 10 | 4 | 4096 × 2176 @ 120 |
6 | 1176502272 | 35651584 | 180 | TBD | 8 | 16 | 10 | 4 | 8192 × 4352 @ 30 |
6.1 | 2353004544 | 35651584 | 240 | TBD | 8 | 16 | 10 | 4 | 8192 × 4352 @ 60 |
6.2 | 4706009088 | 35651584 | 480 | TBD | 8 | 16 | 10 | 4 | 8192 × 4352 @ 120 |
VP9 - это традиционный блочный формат кодирования преобразование. Формат битового потока относительно прост по сравнению с форматами, которые предлагают аналогичную эффективность битрейта, например, HEVC.
VP9 имеет много конструктивных улучшений по сравнению с VP8. Его самое большое улучшение - это поддержка использования блоков кодирования 64 × 64 пикселей. Это особенно полезно для видео высокого разрешения. Также было улучшено прогнозирование векторов движения. В дополнение к четырем режимам VP8 (среднее / «DC», «истинное движение», горизонтальное, вертикальное), VP9 поддерживает шесть наклонных направлений для линейной экстраполяции пикселей в внутрикадровом прогнозировании.
Новые инструменты кодирования также включают:
Чтобы обеспечить некоторую параллельную обработку кадров, видеокадры могут быть разделены по границам единиц кодирования на до четырех строк шириной от 256 до 4096 пикселей, равномерно распределенных плитки, каждый столбец которых закодирован независимо. Это обязательно для разрешений видео, превышающих 4096 пикселей. Заголовок тайла содержит размер тайла в байтах, поэтому декодеры могут пропустить и декодировать каждую строку тайла в отдельном потоке . Затем изображение разделяется на единицы кодирования, называемые суперблоками размером 64 × 64 пикселя, которые адаптивно разбиваются на разделы в структуре кодирования квадродерево. Их можно разделить по горизонтали, вертикали или по обоим направлениям; квадратные (суб) блоки могут быть рекурсивно разделены на блоки размером 4 × 4 пикселей. Субъединицы кодируются в порядке растровой развертки: слева направо, сверху вниз.
Начиная с каждого ключевого кадра, декодеры сохраняют в буфере 8 кадров для использования в качестве опорных кадров или для отображения позже. Переданные кадры сигнализируют о том, какой буфер следует перезаписать, и при необходимости могут быть декодированы в один из буферов без отображения. Кодер может послать минимальный кадр, который просто запускает отображение одного из буферов («пропустить кадр»). Каждый межкадр может ссылаться на до трех буферизованных кадров для временного предсказания. До двух из этих опорных кадров может быть использован в каждом кодирования блока для вычисления предсказания выборки данных, с использованием пространственно смещена (компенсации движения ) содержимого из опорного кадра или в среднем содержании от двух опорных кадров (» режим составного прогноза »). Оставшаяся (в идеале малая) разница (дельта-кодирование ) от вычисленного предсказания до фактического содержимого изображения преобразуется с использованием DCT или ADST (для краевых блоков) и квантуется.
Что-то вроде b-кадра может быть закодировано с сохранением исходного порядка кадров в потоке битов с использованием структуры, называемой суперкадрами. Скрытые альтернативные опорные кадры могут быть упакованы вместе с обычным промежуточного кадра и пропускаемого кадра, спусковые отображения предыдущего скрытого содержимого altref от его опорного кадра буфера сразу после сопровождающего р-кадра.
VP9 обеспечивает кодирование без потерь посредством передачи на самом низком уровне квантования (q индекс 0) дополнительный 4 × 4-блочный кодированный сигнал остатка с преобразованием Уолша-Адамара (WHT).
Для того, чтобы быть доступными для поиска, необработанные битовые потоки VP9 имеют для инкапсуляции в контейнерный формат , например Matroska (.mkv), его производный формат WebM (.webm) или более старый минималистичный видеофайл Indeo ( IVF), который традиционно поддерживается libvpx. VP9 идентифицируется как V_VP9
в WebM и VP90
в MP4, с соблюдением соответствующих соглашений об именах.
Adobe Flash, который традиционно использовал форматы VPx до VP7, никогда не обновлялся до VP8 или VP9, а вместо этого был обновлен до H.264. Поэтому VP9 часто проникал в соответствующие веб-приложения только с постепенным переходом от Flash к технологии HTML5, которая была еще незрелой, когда была представлена VP9. Тенденции к разрешению UHD, большей глубине цвета и более широкому диапазону приводят к переходу на новые специализированные видеоформаты. Учитывая четкую перспективу развития и поддержку со стороны отрасли, продемонстрированную основанием Alliance for Open Media, а также дорогостоящую и сложную ситуацию с лицензированием HEVC, ожидается, что пользователи ведущих до сих пор форматов MPEG будут часто переключаются на бесплатные альтернативные форматы серии VPx / AVx вместо обновления до HEVC.
Основным пользователем VP9 является популярная видеоплатформа Google YouTube, который предлагает видео VP9 во всех разрешениях вместе с аудио Opus в формате файла WebM через потоковую передачу DASH.
Еще одним ранним последователем была Википедия (в частности, Wikimedia Commons, на котором размещаются мультимедийные файлы на подстраницах и языках Википедии). Википедия поддерживает открытые и бесплатные мультимедийные форматы. По состоянию на 2016 год тремя принятыми видеоформатами являются VP9, VP8 и Theora.
С декабря 2016 года Netflix использует кодировку VP9 для своего каталога наряду с H.264 и HEVC.. По состоянию на февраль 2020 года AV1 начал адаптироваться для мобильных устройств, мало чем отличается от того, как VP9 был запущен на платформе.
Google Play Фильмы и ТВ использует (по крайней мере частично) Профиль VP9 2 с Widevine DRM.
Stadia использует VP9 для потоковой передачи видеоигр с разрешением до 4k на поддерживаемом оборудовании, таком как Chromecast Ultra, поддерживаемых мобильных телефонах, а также компьютерах.
Серия облачных сервисов кодирования предлагает кодирование VP9, включая Amazon, Bitmovin, Brightcove, castLabs, JW Player, Telestream и Wowza.
Encoding.com предлагает кодирование VP9 с четвертого квартала 2016 г., что составляет годовой Средняя популярность VP9 среди клиентов в этом году составила 11%.
JW Player поддерживает VP9 в широко используемом программном обеспечении как услуге видео HTML5 player.
VP9 реализована в следующих веб-браузерах:
Internet Explorer полностью лишен поддержки VP9. По оценкам, в марте 2016 года от 65 до 75% браузеров, используемых на настольных компьютерах и ноутбуках, могли воспроизводить видео VP9 на веб-страницах HTML5, на основе данных из StatCounter.
Microsoft Windows | macOS | BSD / Linux | ОС Android | iOS | |
---|---|---|---|---|---|
Поддержка кодеков | Да | Третий только сторонние приложения | Да | Да | Только сторонние приложения |
Поддержка контейнеров | В юбилейном обновлении Windows 10 (1607) :. WebM (. Webm не распознается; требуется псевдорасширение). Matroska (.mkv) В Windows 10 October 2018 Update (1809) :. WebM (.webm признан официально) | Н / Д | WebM (.webm). Matroska (.mkv) | WebM (.webm). Matroska (.mkv) | Н / Д |
Примечания | В Windows 10 :. - В Юбилейном обновлении (1607), ограниченная поддержка доступна в Microsoft Edge (только через MSE ) и Приложения универсальной платформы Windows. - В обновлении апреля 2018 г. (1803) с предустановленными Web Media Extensions Microsoft Edge (EdgeHTML 17) поддерживает видео VP9, встроенные в теги - в обновлении Октябрь 2018 г. (1809) предустановлено видеорасширения VP9. Он позволяет кодировать содержимое VP8 и VP9 на устройствах, на которых нет аппаратного видеокодера. | Нет встроенной поддержки в собственной мультимедийной среде macOS. | - | Поддержка появилась в Android 4.4 | Нет встроенной поддержки в собственной мультимедийной платформе iOS. |
VP9 поддерживается во всех основных программном обеспечении медиаплеера с открытым исходным кодом, включая VLC, MPlayer / MPlayer2 / MPV, Kodi, MythTV и FFplay.
Android имеет программное декодирование VP9, начиная с версии 4.4 «КитКат». Список бытовой электроники с поддержкой оборудования, включая телевизоры, смартфоны, телеприставки и игровые консоли, см. В списке webmproject.org.
Следующие микросхемы, архитектуры, процессоры, графические процессоры и SoC обеспечивают аппаратное ускорение VP9. Известно, что некоторые из них имеют аппаратное обеспечение с фиксированными функциями, но этот список также включает реализации на основе GPU или DSP - программные реализации на аппаратном обеспечении без CPU. Последняя категория также служит для разгрузки ЦП, но энергоэффективность не так хороша, как у аппаратного обеспечения с фиксированными функциями (более сопоставимо с хорошо оптимизированным программным обеспечением, поддерживающим SIMD ).
Все перечисленное ниже оборудование обеспечивает декодирование с аппаратным ускорением.
Компания | Чип / Архитектура | Известные применения | Кодирование |
---|---|---|---|
AllWinner | A80 | N | |
AMD | Raven Ridge | Ryzen 5 2400G, Ryzen 7 2800H, Ryzen 3 2300U | N |
Picasso | Ryzen 5 3400G, Ryzen 7 3750H, Ryzen 3 3300U | N | |
Navi | Radeon RX 5000 GPU серии | N | |
Renoir | Ryzen 5 4600G, Ryzen 7 4800H, Ryzen 3 4300U | N | |
Amlogic | Семейство S9 | N | |
ARM | Mali-V61 ("Egil") VPU | Y | |
HiSilicon | HI3798C | N | |
Kirin 980 | Huawei Mate 20 / P30 | ? | |
Imagination | PowerVR Series6 | Apple iPhone 6 / 6s | N |
Intel | Bay Trail | Celeron J1750 | N |
Меррифилд | Atom Z3460 | N | |
Мурфилд | Atom Z3530 | N | |
Skylake | Core i7-6700 | N | |
Kaby Lake | Core i7-7700 | Только Linux | |
Coffee Lake | Core i7-8700, Core i9-9900 | только Linux | |
Whiskey Lake | только Linux | ||
Comet Lake | только Linux | ||
Ice Lake | Y | ||
Tiger Lake | Y | ||
Rocket Lake | Y | ||
Alder Lake | Y | ||
MediaTek | MT6595 | N | |
MT8135 | N | ||
Helio X20 / X25 | N | ||
Helio X30 | Y | ||
Helio P30 | Y | ||
Nvidia | Maxwell GM206 | GTX 960/950 / 750v2 | N |
Pascal | GTX 1080/1060/1050 Ti | N | |
Volta | Nvidia Titan V | N | |
Turing | GeForce RTX 2080, GTX 1660 Ti | N | |
Ampere | GeForce RTX 3090, RTX 3080, RTX 3070 | N | |
Tegra X1 | Nvidia Shield Android TV, Nintendo Switch | N | |
Qualcomm | Snapdragon 660/665/670 | ? | |
Snapdragon 710/712/730 | ? | ||
Snapdragon 820/821 | OnePlus 3, LG G5 /G6, Pixel | ? | |
Snapdragon 835 | Pixel 2, OnePlus 5 /5T, LG V30 | Y | |
Snapdragon 845 | Pixel 3, Asus Zenfone 5Z, OnePlus 6 /6T | Y | |
Snapdragon 855 | Pixel 4 | Y | |
Realtek | RTD1295 | N | |
Samsung | Exynos 7 Octa 7420 | Samsung Galaxy S6, Samsung Galaxy Note 5 | N |
Exynos 8 Octa 8890 | Samsung Galaxy S7 | N | |
Exynos 9 Octa 8895 | Samsung Galaxy S8, Samsung Galaxy Note 8 | Y | |
Exynos 9 Octa 9810 | Samsung Galaxy S9 | Y | |
Exynos 9 Octa 9820 | Samsung Galaxy S10 | Y | |
Exynos 9 Octa 9825 | Samsung Galaxy Note 10 | Y |
Это не полный список. Другие SoC, а также поставщики аппаратного IP можно найти на webmproject.org.
Найдена эталонная реализация от Google в бесплатном программном обеспечении программная библиотека libvpx
. Он имеет однопроходный и двухпроходный режимы кодирования, но однопроходный режим считается нарушенным и не обеспечивает эффективного контроля над целевым битрейтом.
Декодер VP9 FFmpeg использует преимущества корпуса оптимизаций SIMD, совместно используемых с другие кодеки, чтобы сделать это быстро. Сравнение, проведенное разработчиком FFmpeg, показало, что это было быстрее, чем libvpx, и по сравнению с декодером FFmpeg h.264, "идентичная" производительность для видео с таким же битрейтом или примерно на 10% быстрее для такого же качества видео.
В марте 2019 г. люксембург объявил о создании патентных пулов для VP9 и AV1. В состав пулов входили JVCKenwood, NTT, Orange SA, Фили ps и Toshiba, все из которых также лицензировали патенты на MPEG-LA для пулов патентов AVC, DASH или HEVC. Sisvel объявила, что будет требовать лицензионную плату за устройства, использующие VP9, но не будет требовать лицензионных отчислений за кодированный контент. На момент объявления список патентов, принадлежащих Sisvel, не был общедоступным. Однако генеральный директор Sisvel заявил в интервью, что такой список будет размещен на веб-сайте Sisvel до того, как будут разосланы какие-либо лицензионные требования.
12 сентября 2014 г. Google объявил, что разработка VP10 началась и что после выпуска VP10 планируется сделать 18-месячный перерыв между выпусками видеоформатов. В августе 2015 года Google начал публиковать код для VP10.
Однако Google решил включить VP10 в AOMedia Video 1 (AV1). Кодек AV1 был разработан на основе комбинации технологий из VP10, Daala (Xiph / Mozilla ) и Thor (Cisco ). Соответственно, Google заявила, что они не будут развертывать VP10 внутри компании и не выпускать ее официально, что делает VP9 последним из кодеков на основе VPx, выпущенных Google.
Викискладе есть материалы, связанные с VP9. |