stringtranslate.com

VDPAU

La API de decodificación y presentación de video para Unix ( VDPAU ) es una interfaz de programación de aplicaciones (API) libre de regalías , así como su implementación como biblioteca libre y de código abierto ( libvdpau ) distribuida bajo la licencia MIT . [1] VDPAU también cuenta con el soporte de Nvidia . [3]

La interfaz VDPAU debe ser implementada por controladores de dispositivos , como el controlador Nvidia GeForce , nouveau , amdgpu , para ofrecer al software de usuario final, como el reproductor multimedia VLC o GStreamer , un acceso estandarizado al hardware de aceleración de descompresión de video disponible en forma de bloques de circuitos integrados específicos de la aplicación (ASIC) en unidades de procesamiento de gráficos (GPU), como PureVideo de Nvidia o Unified Video Decoder de AMD y hacer uso de él.

VDPAU está dirigido a sistemas operativos tipo Unix (incluidos Linux , FreeBSD y Solaris ). [4] [5] [6]

Rango funcional de la interfaz

VDPAU permite que los programas de video accedan al ASIC de decodificación de video especializado en la GPU para descargar partes del proceso de decodificación de video y el posprocesamiento de video de la CPU a la GPU. [7]

Actualmente, las partes que VDPAU puede descargar en la GPU son la compensación de movimiento (mo comp), la transformada de coseno discreta inversa (iDCT), VLD (decodificación de longitud variable) y el desbloqueo para videos codificados en MPEG-1 , MPEG-2 , MPEG-4 ASP (MPEG-4 Parte 2) , H.264/MPEG-4 AVC y VC-1 , WMV3 / WMV9 . [4] Los códecs específicos que se pueden descargar en la GPU dependen de la versión de generación del hardware de la GPU.

Historia

VDPAU fue diseñado originalmente por Nvidia para su bloque SIP PureVideo presente en sus GPU de la serie GeForce 8 y posteriores. [8]

El 9 de marzo de 2015, Nvidia lanzó la versión 1.0 de VDPAU, que admite la decodificación de codificación de video de alta eficiencia (HEVC) para los perfiles Principal, Principal 4:4:4, Imagen fija principal, Principal 10 y Principal 12. [9]

Controladores de dispositivos y controladores de vídeo que implementan VDPAU

VDPAU se implementa en los controladores de dispositivos de software X11 , pero depende de las funciones de aceleración en la GPU de hardware.

Todas las tarjetas gráficas Nvidia para las que el controlador implementa VDPAU están enumeradas en Nvidia PureVideo . [10]

S3 Graphics agregó VDPAU a los controladores Linux de sus tarjetas de video Chrome 400. A partir de la versión 14.02.17 de su controlador de dispositivo Linux, VDPAU está disponible con el hardware S3 Chrome 430 GT, S3 Chrome 440 GTX, S3 Chrome 530 GT y S3 Chrome 540 GTX. [11]

ATI/AMD lanzó un controlador de código abierto para tarjetas gráficas Radeon HD 4000+ con aceleración VDPAU. [12] [13]

Intel no ofrece controladores VDPAU, solo admiten su VA-API . Sin embargo, es posible utilizar los controladores VA-API de Intel mediante libvdpau-va-gl.

Nvidia espera que otros diseñadores de GPU hagan que sus productos sean compatibles con la biblioteca VDPAU de código abierto y proporcionen controladores con aceleración VDPAU mencionando nombres de ejemplo de controladores de hardware específicos para Intel y ATI: libvdpau_intel.so y libvdpau_ati.so. [14] Intel ha declarado que están considerando VDPAU. [15]

Los SoC Sunxi ( Allwinner ) tienen una implementación VDPAU experimental. [16]

Mesa a partir de la versión v8.0 incluye VDPAU para tarjetas de video que utilizan Gallium3D .

Controlador VDPAU genérico

A finales de 2013, existe un controlador de back-end desarrollado independientemente que a su vez utiliza OpenGL (para dibujar y escalar) y VA-API si está disponible (para decodificar). [17] Se ha informado que funciona en algunos gráficos Intel y Adobe Flash Player . [18]

El escalado acelerado con solo la funcionalidad OpenGL es necesario principalmente debido al reproductor Flash, que utiliza un escalado no acelerado si VDPAU no está disponible. Casi todo el resto del software de video que se ejecuta en Linux o FreeBSD admite Xv . Es esencial para videos de pantalla completa en computadoras más lentas sin compatibilidad nativa con VDPAU.

La traducción de VDPAU a VA-API para la decodificación de HW es útil con hardware gráfico Intel reciente, ya que algunos programas admiten la decodificación de HW a través de VDPAU pero no de VA-API.

Software que soporta VDPAU

VDPAU también se puede utilizar como backend para VA-API y OpenMAX IL , que cubren un subconjunto de las capacidades de VDPAU; por lo que cualquier software que utilice VA-API o OpenMAX IL también es parcialmente capaz de utilizar VDPAU (por ejemplo, el reproductor multimedia VLC). [31]

Conjuntos de funciones de Nvidia VDPAU

Los conjuntos de características Nvidia VDPAU [32] son ​​diferentes generaciones de hardware de GPU que admiten diferentes niveles de capacidades de decodificación de hardware (Nvidia PureVideo). Para los conjuntos de características A, B y C, el ancho y alto máximos del video son 2048 píxeles , el ancho y alto mínimos 48 píxeles, y todos los códecs están limitados actualmente a un máximo de 8192 macrobloques (8190 para VC-1/WMV9). La aceleración parcial significa que la decodificación VLD (flujo de bits) se realiza en la CPU, y la GPU solo realiza IDCT , compensación de movimiento y desbloqueo . La aceleración completa significa que la GPU realiza todo el VLD, IDCT, compensación de movimiento y desbloqueo.

Conjunto de características A
Admite aceleración completa para H.264 y aceleración parcial para MPEG-1 , MPEG-2 , VC-1 / WMV9 .
Conjunto de características B
Admite aceleración completa para MPEG-1, MPEG-2, VC-1/WMV9 y H.264.
Tenga en cuenta que todo el hardware del conjunto de funciones B no puede decodificar H.264 para los siguientes anchos: 769-784, 849-864, 929-944, 1009-1024, 1793-1808, 1873-1888, 1953-1968, 2033-2048 píxeles.
Conjunto de características C
Admite aceleración completa para MPEG-1, MPEG-2, MPEG-4 Parte 2 (también conocido como MPEG-4 ASP) , VC-1/WMV9 y H.264.
La compensación de movimiento global y la partición de datos no son compatibles con MPEG-4 Parte 2.
Conjunto de características D
Similar al conjunto de características C, pero con soporte agregado para decodificar H.264 con una resolución de hasta 4032 × 4080 y MPEG-1/MPEG-2 con una resolución de hasta 4032 × 4048 píxeles.
Conjunto de características E
Similar al conjunto de características D, pero con soporte adicional para decodificar H.264 con una resolución de hasta 4096 × 4096 y MPEG-1/MPEG-2 con una resolución de hasta 4080 × 4080 píxeles. Las GPU con el conjunto de características E de VDPAU admiten un modo de ocultación de errores mejorado que proporciona un manejo de errores más sólido al decodificar transmisiones de video corruptas. [33]
Conjunto de características F
Se introdujo la decodificación de video dedicada HEVC Main (8 bits), Main 10 (10 bits) y VP9 Profile 0 (8 bits) con una resolución de hasta 4096 × 2304 píxeles. [34]
Conjunto de características G
Se agregó soporte de hardware para decodificación de video HEVC Main 12 (12 bits) y VP9 Profile 2 (12 bits). [34]
Conjunto de características H
El conjunto de características H es capaz de realizar una decodificación acelerada por hardware de transmisiones de video H.265/HEVC de 8192 x 8192 (resolución de 8k). [35]
Conjunto de características I
Similar al conjunto de características H. [34]
Conjunto de características J
El conjunto de características J agrega soporte para decodificación HEVC 444. [34]
Conjunto de características K
El conjunto de características K es capaz de realizar una decodificación acelerada por hardware de transmisiones de video del perfil PRINCIPAL AV1 con resolución de 8192 x 8192 (8k). [34]

libvdpau biblioteca VDPAU independiente

La biblioteca independiente VDPAU libvdpau es distribuida por Nvidia independientemente de su controlador de gráficos propietario para Linux en un esfuerzo por ayudar a la adopción de VDPAU por parte de aquellos que no pertenecen a Nvidia. Este paquete de biblioteca de código abierto contiene una biblioteca contenedora y una biblioteca de depuración que permite a otros fabricantes implementar VDPAU en sus controladores de dispositivos. [8] [36] [37] [38]

Véase también

Referencias

  1. ^ ab "Anuncio de libvdpau 0.2". freedesktop.org . 17 de septiembre de 2009.
  2. ^ "[VDPAU] [ANUNCIO] libvdpau 1.5". Freedesktop.org . Consultado el 8 de marzo de 2022 .
  3. ^ "GStreamer agrega soporte para decodificación de GPU NVIDIA NVDEC - Phoronix".
  4. ^ de Michael Larabel (14 de noviembre de 2008). "El controlador NVIDIA incorpora las características de PureVideo a Linux". Phoronix . Consultado el 13 de marzo de 2009 .
  5. ^ Michael Larabel (14 de noviembre de 2008). «Puntos de referencia de NVIDIA VDPAU». Phoronix . Consultado el 13 de marzo de 2009 .
  6. ^ "VDPAU: API de presentación y decodificación de video para Unix". Nvidia.
  7. ^ "Video4Linux2: camino hacia una API de códec de vídeo estandarizada" (PDF) . Events.linusfoundation.org\accessdate=2016-05-25 .
  8. ^ ab "NVIDIA lanza la biblioteca independiente VDPAU: Phoronix". Phoronix.
  9. ^ Larabel, Michael (9 de marzo de 2015). "NVIDIA anuncia VDPAU 1.0 con decodificación HEVC/H.265". Phoronix . Consultado el 9 de marzo de 2015 .
  10. ^ "Tabla de compatibilidad de PureVideo" (PDF) . Nvidia . Consultado el 22 de mayo de 2014 .
  11. ^ "Copia archivada". Archivado desde el original el 8 de julio de 2012. Consultado el 28 de febrero de 2010 .{{cite web}}: CS1 maint: copia archivada como título ( enlace )
  12. ^ "[PATCH] drm/radeon: compatibilidad con UVD para RV710-SI". Lists.freedesktop.org . Consultado el 25 de mayo de 2016 .
  13. ^ "AMD lanza compatibilidad con video UVD de código abierto – Phoronix". Phoronix . Consultado el 25 de mayo de 2016 .
  14. ^ "VDPAU: Capa de integración del sistema de ventanas X11". Download.nvidia.com .
  15. ^ "Intel está considerando la compatibilidad con VDPAU para el controlador X.Org – Phoronix". Phoronix . Consultado el 25 de mayo de 2016 .
  16. ^ "GitHub – linux-sunxi/libvdpau-sunxi: VDPAU experimental para SoCs Allwinner sunxi (WiP)". GitHub . Consultado el 25 de mayo de 2016 .
  17. ^ "GitHub – i-rinat/libvdpau-va-gl: controlador VDPAU con backend OpenGL/VAAPI". GitHub . Consultado el 25 de mayo de 2016 .
  18. ^ "Aceleración de hardware de Adobe Flash Player en tarjetas gráficas Intel". WebUpd8 . 5 de septiembre de 2013 . Consultado el 25 de mayo de 2016 .
  19. ^ "Boxee blog » boxee para windows, ascendiendo a las Grandes Ligas". Archivado desde el original el 26 de junio de 2009 . Consultado el 26 de junio de 2009 .
  20. ^ "Los nuevos códecs de Fluendo admiten VDPAU y VA-API – Phoronix". Phoronix.com . Consultado el 25 de mayo de 2016 .
  21. ^ Michael Larabel (29 de noviembre de 2008). "MythTV agrega compatibilidad con NVIDIA VDPAU". Phoronix . Consultado el 13 de marzo de 2009 .
  22. ^ "XBMC para Linux VDPAU: compatibilidad con decodificación de video de GPU NVIDIA (ahora en el SVN principal)". Xbmc.org. Archivado desde el original el 28 de febrero de 2009. Consultado el 25 de mayo de 2016 .
  23. ^ "Kodi – Software de cine en casa de código abierto". Xbmc.org. Archivado desde el original el 14 de abril de 2009. Consultado el 25 de mayo de 2016 .
  24. ^ "XBMC recibe soporte principal para VDPAU – Phoronix". Phoronix.
  25. ^ "XBMC recibe soporte principal para VDPAU". Phoronix.com . 23 de marzo de 2009 . Consultado el 25 de mayo de 2016 .
  26. ^ Michael Larabel (17 de diciembre de 2008). "Xine obtiene soporte para VDPAU de NVIDIA". Phoronix . Consultado el 13 de marzo de 2009 .
  27. ^ "xine-lib/xine-lib-1.2: conjunto de cambios 11335:9b68f6efb713". Debian.org . Consultado el 25 de mayo de 2016 .
  28. ^ ddennedy (30 de noviembre de 2009). «VDPAU para la versión Git de MLT 0.4.11». MLT . Archivado desde el original el 27 de febrero de 2010 . Consultado el 30 de noviembre de 2009 .
  29. ^ "Flash Player 10.2 beta – ¡con aceleración VDPAU! : linux". reddit . Diciembre de 2010.
  30. ^ "Manual de referencia de MPV" . Consultado el 9 de abril de 2016 .
  31. ^ Michael Larabel (3 de febrero de 2009). "Un back-end NVIDIA VDPAU para la VA-API de Intel". Phoronix . Consultado el 13 de marzo de 2009 .
  32. ^ "Apéndice G. Compatibilidad con VDPAU". Nvidia . 2016-12-14 . Consultado el 2017-01-03 .
  33. ^ "VDPAU para la GPU Maxwell de NVIDIA en Linux". Phoronix.com . 2014-03-03 . Consultado el 2016-05-25 .
  34. ^ abcde "Apéndice G. Compatibilidad con VDPAU". us.download.nvidia.com . Consultado el 2 de junio de 2022 .
  35. ^ http://www.nvidia.com/download/driverResults.aspx/104284/en-us CONTROLADOR DE PANTALLA Nvidia LINUX X64 (AMD64/EM64T) Versión:367.27
  36. ^ "[ANUNCIO] libvdpau 0.2". Listas.freedesktop/org . Consultado el 25 de mayo de 2016 .
  37. ^ "NVIDIA propone VDPAU para parches DRI2 – Phoronix". Phoronix . Consultado el 25 de mayo de 2016 .
  38. ^ "[PULL] Agregar controladores VDPAU a la implementación DRI2 del servidor". xorg . Consultado el 25 de mayo de 2016 .
  39. ^ "VideoToolbox - Documentación para desarrolladores de Apple". developer.apple.com . Consultado el 5 de agosto de 2018 .

Enlaces externos