VP9 es un formato de codificación de vídeo abierto y libre de regalías [1] desarrollado por Google .
VP9 es el sucesor de VP8 y compite principalmente con el formato de codificación de vídeo de alta eficiencia (HEVC/H.265) de MPEG. Al principio, VP9 se utilizaba principalmente en la plataforma de vídeo de Google, YouTube . [2] [3] La aparición de la Alliance for Open Media y su apoyo al desarrollo en curso del sucesor AV1 , del que Google forma parte, condujeron a un creciente interés en el formato.
A diferencia de HEVC, la compatibilidad con VP9 es común entre los navegadores web modernos (consulte el video HTML § Compatibilidad con navegadores ). Android ha admitido VP9 desde la versión 4.4 KitKat , [4] mientras que Safari 14 agregó compatibilidad con VP9 en iOS / iPadOS / tvOS 14 y macOS Big Sur . [5] [6]
Algunas partes del formato están protegidas por patentes propiedad de Google. La empresa concede el uso gratuito de sus propias patentes relacionadas en base a reciprocidad, es decir, siempre que el usuario no participe en litigios de patentes. [7]
VP9 es la última iteración oficial de la serie de formatos de vídeo TrueMotion que Google compró en 2010 por 134 millones de dólares junto con la empresa On2 Technologies que la creó. El desarrollo de VP9 comenzó en la segunda mitad de 2011 bajo los nombres de desarrollo de Next Gen Open Video ( ONGV ) y VP-Next . [8] [9] [10] Los objetivos de diseño para VP9 incluían reducir la tasa de bits en un 50% en comparación con VP8 manteniendo la misma calidad de vídeo, y apuntar a una mejor eficiencia de compresión que el estándar MPEG High Efficiency Video Coding (HEVC). [9] [11] En junio de 2013 se finalizó el "perfil 0" de VP9, y dos meses después se lanzó el navegador Chrome de Google con soporte para la reproducción de vídeo VP9. [12] [13] En octubre de ese año se añadió un decodificador VP9 nativo a FFmpeg , [14] y a Libav seis semanas después. Mozilla agregó soporte para VP9 a Firefox en marzo de 2014. [15] En 2014, Google agregó dos perfiles de alta profundidad de bits: perfil 2 y perfil 3. [16] [17]
En 2013 se publicó una versión actualizada del formato WebM , con soporte para VP9 junto con audio Opus.
En marzo de 2013, la Administración de Licencias MPEG abandonó una reclamación anunciada de reclamaciones de patentes en disputa contra VP8 y sus sucesores después de que el Departamento de Justicia de los Estados Unidos comenzara a investigar si estaba actuando para sofocar injustamente la competencia. [18] [19] [20]
A lo largo de todo este tiempo, Google ha trabajado con proveedores de hardware para conseguir compatibilidad con VP9 en silicio. En enero de 2014, Ittiam , en colaboración con ARM y Google, demostró su decodificador VP9 para dispositivos ARM Cortex . Utilizando técnicas GPGPU , el decodificador era capaz de reproducir 1080p a 30 fps en una placa Arndale . [21] [22] A principios de 2015, Nvidia anunció compatibilidad con VP9 en su SoC Tegra X1 , y VeriSilicon anunció compatibilidad con VP9 Profile 2 en su IP decodificador Hantro G2v2. [23] [24] [25]
En abril de 2015, Google lanzó una actualización importante de su biblioteca libvpx , con la versión 1.4.0 agregando soporte para profundidad de bits de 10 y 12 bits , submuestreo de croma 4:2:2 y 4:4:4 , y decodificación/codificación multiproceso VP9. [26]
En diciembre de 2015, Netflix publicó un borrador de propuesta para incluir vídeo VP9 en un contenedor MP4 con cifrado común MPEG . [27]
En enero de 2016, Ittiam demostró un codificador VP9 basado en OpenCL . [28] El codificador está dirigido a las GPU móviles ARM Mali y se demostró en un Samsung Galaxy S6 .
La compatibilidad con VP9 se agregó al navegador web Edge de Microsoft en 2016. [29]
En marzo de 2017, Ittiam anunció la finalización de un proyecto para mejorar la velocidad de codificación de libvpx. Se dijo que la mejora de velocidad era del 50 al 70 % y que el código estaba "disponible públicamente como parte de libvpx". [30]
VP9 está personalizado para resoluciones de video superiores a 1080p (como UHD ) y también permite la compresión sin pérdida . Admite resoluciones de hasta 65536×65536, mientras que HEVC admite resoluciones de hasta 8192×4320 píxeles .
El formato VP9 admite los siguientes espacios de color (y las matrices de transformación YCbCr a RGB correspondientes): Rec. 601 , Rec. 709 , Rec. 2020 , SMPTE-170 , SMPTE-240 y sRGB . [31] [32]
VP9 admite muchas funciones de transferencia y admite video HDR con log-gamma híbrido (HLG) o cuantificador perceptual (PQ). [33] [34]
Una comparación temprana que tuvo en cuenta distintas velocidades de codificación mostró que x265 superaba por poco a libvpx en la más alta calidad (codificación más lenta), mientras que libvpx era superior en cualquier otra velocidad de codificación, según SSIM. [35]
En una comparación de calidad subjetiva realizada en 2014 con los codificadores de referencia para HEVC (HM 15.0), MPEG-4 AVC/H.264 (JM 18.6) y VP9 (libvpx 1.2.0 con soporte preliminar para VP9), VP9, al igual que H.264, requirió aproximadamente el doble de tasa de bits para alcanzar una calidad de video comparable a HEVC, mientras que con imágenes sintéticas VP9 estaba cerca de HEVC. [36] Por el contrario, otra comparación subjetiva de 2014 concluyó que en configuraciones de mayor calidad HEVC y VP9 estaban empatados con una ventaja de tasa de bits de 40 a 45% sobre H.264. [37]
Netflix , después de una gran prueba en agosto de 2016, concluyó que libvpx era un 20% menos eficiente que x265, pero en octubre del mismo año también descubrió que ajustar los parámetros de codificación podría "reducir o incluso revertir la brecha entre VP9 y HEVC". [38] En NAB 2017 , Netflix compartió que habían cambiado al codificador EVE , que según sus estudios ofrecía un mejor control de velocidad de dos pasadas y era un 8% más eficiente que libvpx. [39]
En una comparación de codificadores fuera de línea entre libvpx, dos codificadores HEVC y x264 realizada en mayo de 2017 por Jan Ozer de Streaming Media Magazine, con parámetros de codificación suministrados o revisados por cada proveedor de codificadores (Google, MulticoreWare y MainConcept respectivamente), y utilizando la métrica objetiva VMAF de Netflix , se concluyó que "VP9 y ambos códecs HEVC producen un rendimiento muy similar" y "particularmente a tasas de bits más bajas, tanto los códecs HEVC como VP9 ofrecen un rendimiento sustancialmente mejor que H.264". [40]
En septiembre de 2015, un desarrollador de FFmpeg realizó una comparación de la velocidad de codificación frente a la eficiencia de la implementación de referencia en libvpx , x264 y x265: según el índice SSIM , libvpx era mayoritariamente superior a x264 en todo el rango de velocidades de codificación comparables, pero el principal beneficio estaba en el extremo más lento de x264@veryslow (alcanzando un punto óptimo de mejora de la tasa de bits del 30 al 40 % en el doble de lento que esto), mientras que x265 solo se volvió competitivo con libvpx alrededor de 10 veces más lento que x264@veryslow . Se concluyó que libvpx y x265 eran capaces de la supuesta mejora de la tasa de bits del 50 % sobre H.264, pero solo a 10-20 veces el tiempo de codificación de x264. [35] A juzgar por la métrica de calidad objetiva VQM a principios de 2015, el codificador de referencia VP9 entregó una calidad de video equivalente a las mejores implementaciones HEVC . [41]
Una comparación de decodificadores realizada por el mismo desarrollador mostró que la decodificación de ffvp9 es un 10 % más rápida que la de ffh264 para videos de la misma calidad, o "idéntica" a la misma tasa de bits. También demostró que la implementación puede marcar la diferencia, y concluyó que "ffvp9 supera a libvpx de manera consistente en un 25-50 %". [42]
Otra comparación de decodificadores indicó una carga de CPU entre un 10 y un 40 por ciento mayor que H.264 (pero no dice si esto fue con ffvp9 o libvpx), y que en dispositivos móviles, el reproductor de demostración Ittiam fue aproximadamente un 40 por ciento más rápido que el navegador Chrome al reproducir VP9. [43]
Existen varias variantes del formato VP9 (conocidas como "perfiles de codificación"), que permiten sucesivamente más funciones; el perfil 0 es la variante básica, que requiere menos de una implementación de hardware:
VP9 ofrece los siguientes 14 niveles: [45]
VP9 es un formato tradicional de codificación de transformada basado en bloques . El formato de flujo de bits es relativamente simple en comparación con formatos que ofrecen una eficiencia de tasa de bits similar, como HEVC. [46]
VP9 tiene muchas mejoras de diseño en comparación con VP8 . Su mayor mejora es el soporte para el uso de unidades de codificación [47] de 64×64 píxeles. Esto es especialmente útil con video de alta resolución. [3] [8] [9] Además, se mejoró la predicción de vectores de movimiento. [48] Además de los cuatro modos de VP8 (promedio/"DC", "movimiento verdadero", horizontal, vertical), VP9 admite seis direcciones oblicuas para la extrapolación lineal de píxeles en la predicción intra-frame . [ cita requerida ]
Las nuevas herramientas de codificación también incluyen:
Para permitir un procesamiento paralelo de fotogramas, los fotogramas de vídeo se pueden dividir a lo largo de los límites de la unidad de codificación en hasta cuatro filas de mosaicos de 256 a 4096 píxeles de ancho espaciados uniformemente con cada columna de mosaico codificada de forma independiente. Esto es obligatorio para resoluciones de vídeo superiores a 4096 píxeles. Un encabezado de mosaico contiene el tamaño del mosaico en bytes para que los decodificadores puedan avanzar y decodificar cada fila de mosaico en un hilo separado . Luego, la imagen se divide en unidades de codificación llamadas superbloques de 64×64 píxeles que se subdividen de forma adaptativa en una estructura de codificación de árbol cuádruple . [8] [9] Se pueden subdividir horizontal o verticalmente o ambas; las (sub)unidades cuadradas se pueden subdividir recursivamente hasta bloques de 4×4 píxeles. Las subunidades se codifican en orden de escaneo de trama: de izquierda a derecha, de arriba a abajo.
A partir de cada fotograma clave, los decodificadores mantienen 8 fotogramas almacenados en búfer para utilizarlos como fotogramas de referencia o para mostrarlos más tarde. Los fotogramas transmitidos indican qué búfer se debe sobrescribir y, opcionalmente, se pueden decodificar en uno de los búferes sin mostrarse. El codificador puede enviar un fotograma mínimo que simplemente activa uno de los búferes para que se muestre ("fotograma de salto"). Cada fotograma intermedio puede hacer referencia a hasta tres de los fotogramas almacenados en búfer para la predicción temporal. Se pueden utilizar hasta dos de esos fotogramas de referencia en cada bloque de codificación para calcular una predicción de datos de muestra, utilizando contenido desplazado espacialmente ( compensación de movimiento ) de un fotograma de referencia o un promedio de contenido de dos fotogramas de referencia ("modo de predicción compuesta"). La diferencia restante (idealmente pequeña) ( codificación delta ) de la predicción calculada al contenido de la imagen real se transforma utilizando una DCT o ADST (para bloques de borde) y se cuantifica.
Se puede codificar algo así como un b-frame, conservando al mismo tiempo el orden de los fotogramas originales en el flujo de bits, utilizando una estructura denominada superframes. Los fotogramas de referencia alternativos ocultos se pueden empaquetar junto con un interframe ordinario y un fotograma de salto que activa la visualización del contenido de altref oculto anterior desde su búfer de fotogramas de referencia justo después del p-frame que lo acompaña. [46]
VP9 permite una codificación sin pérdidas al transmitir en el nivel de cuantificación más bajo (índice q 0) una señal residual transformada de Walsh-Hadamard (WHT) codificada en bloques 4×4 adicional . [49] [50]
Para poder buscarlos, los flujos de bits VP9 sin procesar deben encapsularse en un formato contenedor , por ejemplo Matroska (.mkv), su formato WebM derivado (.webm) o el antiguo formato minimalista de archivo de video Indeo (IVF) que tradicionalmente es compatible con libvpx. [46] [47] VP9 se identifica como V_VP9
en WebM y VP09
en MP4 , adhiriéndose a las respectivas convenciones de nomenclatura. [51]
Adobe Flash , que tradicionalmente utilizaba formatos VPx hasta VP7 , nunca se actualizó a VP8 o VP9, sino a H.264 . Por lo tanto, VP9 a menudo penetró en las aplicaciones web correspondientes solo con el cambio gradual de Flash a la tecnología HTML5 , que todavía era algo inmadura cuando se introdujo VP9. Las tendencias hacia resoluciones UHD , mayor profundidad de color y gamas más amplias están impulsando un cambio hacia formatos de video nuevos y especializados. Con la clara perspectiva de desarrollo y el apoyo de la industria demostrados por la fundación de la Alliance for Open Media, así como la costosa y compleja situación de licencias de HEVC, se espera que los usuarios de los formatos MPEG líderes hasta ahora a menudo cambien a los formatos alternativos libres de regalías de la serie VPx/AVx en lugar de actualizar a HEVC. [52]
Un usuario principal de VP9 es la popular plataforma de vídeo de Google, YouTube , que ofrece vídeo VP9 en todas las resoluciones [52] junto con audio Opus en el formato de archivo WebM , a través de transmisión DASH .
Wikipedia fue otro de los primeros en adoptar esta tecnología (en concreto, Wikimedia Commons , que aloja archivos multimedia en las subpáginas y los idiomas de Wikipedia). Wikipedia respalda los formatos multimedia abiertos y libres de regalías. [53] En 2016, los tres formatos de vídeo aceptados eran VP9, VP8 y Theora . [54]
Desde diciembre de 2016, Netflix utiliza la codificación VP9 para su catálogo, junto con H.264 y HEVC . A partir de febrero de 2020, se comenzó a adoptar AV1 para dispositivos móviles, de manera similar a cómo comenzó VP9 en la plataforma. [55]
Google TV utiliza (al menos en parte) el perfil VP9 2 con Widevine DRM . [56] [57] [58]
Stadia utilizó VP9 para la transmisión de videojuegos hasta 4k en hardware compatible como Chromecast Ultra , teléfonos móviles y navegadores web. [59]
Una serie de servicios de codificación en la nube ofrecen codificación VP9, incluidos Amazon , Bitmovin , [60] Brightcove , castLabs, JW Player , Telestream y Wowza. [43]
Encoding.com ha ofrecido codificación VP9 desde el cuarto trimestre de 2016, [61] lo que representó un promedio anual de 11 % de popularidad para VP9 entre sus clientes ese año. [62]
JW Player es compatible con VP9 en su reproductor de vídeo HTML de software como servicio ampliamente utilizado . [43]
VP9 está implementado en estos navegadores web:
VP9 es compatible con todos los principales programas de reproducción multimedia de código abierto , incluidos VLC , MPlayer /MPlayer2/ MPV , Kodi , MythTV , [68] y FFplay .
Android cuenta con decodificación de software VP9 desde la versión 4.4 "KitKat" . [69] Para obtener una lista de productos electrónicos de consumo con soporte de hardware, incluidos televisores, teléfonos inteligentes, decodificadores y consolas de juegos, consulte la lista de webmproject.org. [70]
Hoy en día, la compatibilidad con la decodificación acelerada por hardware de VP9 es omnipresente, ya que la mayoría de las GPU y los SoC lo admiten de forma nativa. La codificación por hardware está presente en los procesadores Kaby Lake de Intel y superiores. [71]
La Sony PlayStation 5 admite la captura de imágenes de 1080p y 2160p utilizando VP9 en un contenedor WebM. [72]
La implementación de referencia de Google se encuentra en la biblioteca de programación de software libre . Tiene un modo de codificación de una sola pasada y de dos pasadas , pero el modo de una sola pasada se considera defectuoso y no ofrece un control efectivo sobre la tasa de bits de destino. [43] [73] libvpx
El decodificador VP9 de FFmpeg aprovecha un conjunto de optimizaciones SIMD compartidas con otros códecs para hacerlo más rápido. Una comparación realizada por un desarrollador de FFmpeg indicó que era más rápido que libvpx y, en comparación con el decodificador h.264 de FFmpeg, el rendimiento era "idéntico" para videos con la misma tasa de bits, o aproximadamente un 10 % más rápido para videos de la misma calidad. [42]
En marzo de 2019, Sisvel, con sede en Luxemburgo, anunció la formación de consorcios de patentes para VP9 y AV1. Entre los miembros de los consorcios se encontraban JVCKenwood , NTT , Orange SA , Philips y Toshiba , todos los cuales también estaban otorgando licencias de patentes a MPEG-LA para los consorcios de patentes AVC, DASH o HEVC. [75] [76] El 10 de marzo de 2020 se publicó por primera vez una lista de patentes reclamadas. Esta lista contiene más de 650 patentes. [77]
Los precios de Sisvel son de 0,24 euros para dispositivos con pantalla y 0,08 euros para dispositivos sin pantalla que utilicen VP9, pero no solicitarían regalías por el contenido codificado. [78] [75] Sin embargo, su licencia no hace ninguna exención para el software. [77]
Según The WebM Project, Google no planea alterar sus planes de uso actuales o futuros de VP9 o AV1 a pesar de que conocen los consorcios de patentes, ninguno de los licenciantes de los consorcios de patentes estuvo involucrado en el desarrollo de VP9 o VP8, y no se puede impedir que terceros exijan tarifas de licencia de cualquier tecnología que sea de código abierto, libre de regalías y/o gratuita. [79]
El 12 de septiembre de 2014, Google anunció que el desarrollo de VP10 había comenzado y que después del lanzamiento de VP10 planeaban tener una brecha de 18 meses entre los lanzamientos de formatos de video. [80] En agosto de 2015, Google comenzó a publicar código para VP10. [81]
Sin embargo, Google decidió incorporar VP10 en AOMedia Video 1 (AV1). El códec AV1 se desarrolló basándose en una combinación de tecnologías de VP10, Daala ( Xiph / Mozilla ) y Thor ( Cisco ). [82] [83] [84] En consecuencia, Google ha declarado que no implementarán VP10 internamente ni lo lanzarán oficialmente, lo que convierte a VP9 en el último de los códecs basados en VPx que lanzará Google. [85]
Se implementó la nueva decodificación de video VP9
Vídeo H.265, VP9 4K a 60 fps
x265/libvpx son aproximadamente un 50 % mejores que x264, como se afirma. Pero también son entre 10 y 20 veces más lentos.
{{cite book}}
: |journal=
ignorado ( ayuda )Entonces, ¿cómo se compara el rendimiento de decodificación de VP9 con el de otros códecs? Básicamente, hay dos formas de medir esto: misma tasa de bits o misma calidad (…) Hicimos mediciones de la misma calidad y descubrimos que: ffvp9 tiende a superar a ffh264 por un poquito (10%) (…) hicimos algunas comparaciones de la misma tasa de bits y descubrimos que x264 y ffvp9 son esencialmente idénticos en ese escenario
este WHT más algunas variantes a Google para su uso en el modo de codificación sin pérdida de VP9; eligieron una de las versiones alternativas del WHT ilustradas anteriormente.
NVIDIA nos ha confirmado que SHIELD Android TV se actualizará a su debido tiempo para ser compatible con contenido VP9 cifrado y Google Play Movies & TV 4K.
El nuevo Chromecast Ultra es compatible con (…) los perfiles VP9 0 y 2
WebM
{{cite book}}
: |journal=
ignorado ( ayuda )...] El código de VP10, con diferencia el más maduro de los tres, dominará.