Video Decode and Presentation API for Unix ( VDPAU ) es una interfaz de programación de aplicaciones (API) libre de regalías, así como su implementación como biblioteca gratuita y de código abierto ( libvdpau ) distribuida bajo la licencia MIT . [1] VDPAU también es compatible con Nvidia . [2]
Autor (es) original (es) | Nvidia |
---|---|
Desarrollador (es) | freedesktop.org |
Lanzamiento estable | 1.3 / 18 de octubre de 2019 |
Escrito en | C , C ++ |
Sistema operativo | Multiplataforma |
Tipo | |
Licencia | Licencia MIT |
Sitio web | www |
La interfaz VDPAU se implementará mediante controladores de dispositivo , como el controlador Nvidia GeForce , nouveau , amdgpu , para ofrecer software para el 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 aplicación. - Bloques de circuitos integrados específicos (ASIC) en unidades de procesamiento de gráficos (GPU), como PureVideo de Nvidia o Decodificador de video unificado de AMD, y utilícelo.
VDPAU está dirigido a sistemas operativos similares a Unix (incluidos Linux , FreeBSD , Solaris ). [3] [4] [5]
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 posprocesamiento de video desde la CPU a la GPU. [6]
Actualmente, las porciones que VDPAU pueden descargar en la GPU son compensación de movimiento (mo comp), transformada de coseno discreta inversa (iDCT), VLD (decodificación de longitud variable) y desbloqueo para MPEG-1 , MPEG-2 , MPEG-4 Vídeos codificados ASP (MPEG-4 Parte 2) , H.264 / MPEG-4 AVC y VC-1 , WMV3 / WMV9 . [3] Los códecs específicos de estos que se pueden descargar a 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 PureVideo SIP presente en su serie GeForce 8 y GPU posteriores. [7]
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 Main, Main 4: 4: 4, Main Still Picture, Main 10 y Main 12. [8]
Controladores de dispositivos y controladores de video que implementan VDPAU
VDPAU se implementa en los controladores de dispositivos de software X11 , pero se basa en funciones de aceleración en la GPU de hardware.
Todas las tarjetas gráficas Nvidia para las que el controlador implementa VDPAU se enumeran en Nvidia PureVideo . [9]
S3 Graphics agregó VDPAU a los controladores de 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. [10]
ATI / AMD lanzó un controlador de código abierto para tarjetas gráficas Radeon HD 4000+ con aceleración VDPAU. [11] [12]
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 específicos de hardware para Intel y ATI: libvdpau_intel.so y libvdpau_ati.so. [13] Intel ha declarado que están considerando VDPAU. [14]
Los Sunxi SoC ( Allwinner ) tienen implementación VDPAU experimental. [15]
Mesa a partir de la 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 de forma independiente que a su vez utiliza OpenGL (para dibujar y escalar) y VA-API si está disponible (para decodificar). [16] Se ha informado que funciona en algunos gráficos Intel y Adobe Flash Player . [17]
El escalado acelerado con solo la funcionalidad OpenGL se necesita principalmente debido a Flash Player, que usa escalado no acelerado si VDPAU no está disponible. Casi todos los demás programas de video que se ejecutan en Linux o FreeBSD son compatibles con Xv . Es esencial para videos de pantalla completa en computadoras más lentas sin soporte nativo de VDPAU.
La traducción de VDPAU a VA-API para la decodificación de HW es útil con el hardware de gráficos Intel reciente, ya que algunos programas admiten la decodificación de HW a través de VDPAU pero no de VA-API.
Software que admite VDPAU
- Avidemux a partir de la versión 2.6
- Boxee [18]
- FFmpeg
- GStreamer [19]
- MPlayer
- MythTV [20]
- Kodi (anteriormente XBMC) [21] [22] [23] [24]
- Xine [25] [26]
- MLT [27]
- Adobe Flash 10.2 Stage Video y versiones posteriores [28]
- Reproductor multimedia VLC 2.1
- mpv [29]
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 use VA-API u OpenMAX IL también es parcialmente capaz de usar VDPAU (por ejemplo, VLC media player). [30]
Conjuntos de funciones de Nvidia VDPAU
Los conjuntos de funciones de Nvidia VDPAU [31] son diferentes generaciones de hardware de GPU que admiten diferentes niveles de capacidades de decodificación de hardware (Nvidia PureVideo). Para los conjuntos de funciones A, B y C, el ancho y alto máximo de video son 2048 píxeles , el ancho y alto mínimo 48 píxeles, y todos los códecs están actualmente limitados a un máximo de 8192 macrobloques (8190 para VC-1 / WMV9). La aceleración parcial significa que la decodificación de 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 todos los VLD, IDCT, compensación de movimiento y desbloqueo.
- Conjunto de funciones A
- Admite aceleración completa para H.264 y aceleración parcial para MPEG-1 , MPEG-2 , VC-1 / WMV9
- Conjunto de funciones 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 funciones C
- Admite aceleración completa para MPEG-1, MPEG-2, MPEG-4 Part 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 funciones D
- Similar al conjunto de funciones C, pero se agregó soporte 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 funciones E
- Similar al conjunto de funciones D, pero se agregó soporte 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 funciones E de VDPAU admiten un modo de ocultación de errores mejorado que proporciona un manejo de errores más sólido al decodificar secuencias de video corruptas. [32]
- Conjunto de funciones F
- Se introdujo la decodificación de video HEVC principal (8 bits) y principal 10 (10 bits) dedicada hasta una resolución de 4096 × 2304 píxeles.
- Conjunto de funciones G
- Soporte de hardware para decodificación de video HEVC Main 12 (12 bits) pero VDPAU no es compatible actualmente con este perfil. [33]
- Conjunto de funciones H
- El conjunto de funciones H es capaz de decodificar con aceleración por hardware de 8192x8192 (resolución de 8k) secuencias de video H.265 / HEVC. [34]
biblioteca VDPAU independiente libvdpau
La biblioteca independiente VDPAU libvdpau es distribuida por Nvidia independientemente de su controlador de gráficos de Linux patentado en un esfuerzo por ayudar a la adopción de VDPAU por aquellos fuera de 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 dispositivo. [7] [35] [36] [37]
Ver también
- PureVideo
- Decodificador de video unificado
- Aceleración de video DirectX (DXVA) : la API equivalente a VDPAU para el sistema operativo Microsoft Windows .
- Video Acceleration API (VA API) : una API de aceleración de video alternativa para el sistema operativo Linux / UNIX.
- X-Video Bitstream Acceleration (XvBA) : una API de aceleración de video alternativa para el sistema operativo Linux / UNIX.
- API de compensación de movimiento de X-Video (XvMC): API de aceleración de video alternativa y más antigua para el sistema operativo Linux / UNIX.
- Distributed Codec Engine (libcde) es una API de Texas Instruments para el motor de códec de video en sistemas embebidos basados en OMAP
- Video Decode Acceleration Framework es la API de Apple Inc. para la decodificación acelerada por hardware de H.264 en Mac OS X
- VideoToolbox es una API de Apple Inc. para su descodificación acelerada por hardware en Apple TV y Mac OS X . [38]
- OpenMAX IL (Capa de integración de aceleración de medios abiertos) : una API de abstracción de medios multiplataforma libre de regalías de Khronos Group
Referencias
- ^ "Anuncio de libvdpau 0.2" . freedesktop.org . 2009-09-17.
- ^ https://www.phoronix.com/scan.php?page=news_item&px=NVIDIA-NVDEC-GStreamer
- ^ a b Michael Larabel ( 14 de noviembre de 2008). "El controlador NVIDIA trae características PureVideo a Linux" . Phoronix . Consultado el 13 de marzo de 2009 .
- ^ Michael Larabel ( 14 de noviembre de 2008). "Puntos de referencia de NVIDIA VDPAU" . Phoronix . Consultado el 13 de marzo de 2009 .
- ^ "VDPAU: API de presentación y decodificación de video para Unix" . Nvidia.
- ^ "Video4Linux2: Ruta a una API de códec de video estandarizado" (PDF) . Events.linusfoundation.org \ accessdate = 2016-05-25 .
- ^ a b "NVIDIA lanza la biblioteca VDPAU independiente - Phoronix" . Phoronix.
- ^ 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 .
- ^ "Tabla de soporte de PureVideo" (PDF) . Nvidia . Consultado el 22 de mayo de 2014 .
- ^ "Copia archivada" . Archivado desde el original el 8 de julio de 2012 . Consultado el 28 de febrero de 2010 .CS1 maint: copia archivada como título ( enlace )
- ^ "[PATCH] drm / radeon: soporte UVD para RV710-SI" . Lists.freedesktop.org . Consultado el 25 de mayo de 2016 .
- ^ "AMD lanza soporte de video UVD de código abierto - Phoronix" . Phoronix . Consultado el 25 de mayo de 2016 .
- ^ "VDPAU: Capa de integración del sistema de ventanas X11" . Download.nvidia.com .
- ^ "Intel considerando la compatibilidad con VDPAU para el controlador X.Org - Phoronix" . Phoronix . Consultado el 25 de mayo de 2016 .
- ^ "GitHub - linux-sunxi / libvdpau-sunxi: VDPAU experimental para SoCs Allwinner sunxi (WiP)" . GitHub . Consultado el 25 de mayo de 2016 .
- ^ "GitHub - i-rinat / libvdpau-va-gl: controlador VDPAU con backend OpenGL / VAAPI" . GitHub . Consultado el 25 de mayo de 2016 .
- ^ "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 .
- ^ "Copia archivada" . Archivado desde el original el 26 de junio de 2009 . Consultado el 26 de junio de 2009 .CS1 maint: copia archivada como título ( enlace )
- ^ "Los nuevos códecs de Fluendo admiten VDPAU, VA-API - Phoronix" . Phoronix.com . Consultado el 25 de mayo de 2016 .
- ^ Michael Larabel ( 29 de noviembre de 2008). "MythTV agrega soporte para NVIDIA VDPAU" . Phoronix . Consultado el 13 de marzo de 2009 .
- ^ "XBMC para Linux VDPAU - Soporte de decodificación de video NVIDIA GPU (ahora en la línea principal SVN)" . Xbmc.org. Archivado desde el original el 28 de febrero de 2009 . Consultado el 25 de mayo de 2016 .
- ^ "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 .
- ^ "XBMC recibe soporte de línea principal para VDPAU - Phoronix" . Phoronix.
- ^ "XBMC recibe soporte de línea principal para VDPAU" . Phoronix.com . 2009-03-23 . Consultado el 25 de mayo de 2016 .
- ^ Michael Larabel ( 17 de diciembre de 2008 ). "Xine elige soporte para VDPAU de NVIDIA" . Phoronix . Consultado el 13 de marzo de 2009 .
- ^ "xine-lib / xine-lib-1.2: conjunto de cambios 11335: 9b68f6efb713" . Debian.org . Consultado el 25 de mayo de 2016 .
- ^ ddennedy (30 de noviembre de 2009). "VDPAU para MLT 0.4.11 versión Git" . MLT . Archivado desde el original el 27 de febrero de 2010 . Consultado el 30 de noviembre de 2009 .
- ^ "Flash Player 10.2 beta - ¡con aceleración VDPAU!: Linux" . reddit .
- ^ "Manual de referencia de mpv" . Consultado el 9 de abril de 2016 .
- ^ Michael Larabel (3 de febrero de 2009 ). "Un back-end NVIDIA VDPAU para VA-API de Intel" . Phoronix . Consultado el 13 de marzo de 2009 .
- ^ "Apéndice G. Soporte de VDPAU" . Nvidia . 2016-12-14 . Consultado el 3 de enero de 2017 .
- ^ "VDPAU para la GPU Maxwell de NVIDIA en Linux" . Phoronix.com . 2014-03-03 . Consultado el 25 de mayo de 2016 .
- ^ "Apéndice G. Soporte de VDPAU" . us.download.nvidia.com . Consultado el 17 de septiembre de 2017 .
- ^ http://www.nvidia.com/download/driverResults.aspx/104284/en-us Nvidia LINUX X64 (AMD64 / EM64T) DISPLAY DRIVER Versión: 367.27
- ^ "[ANUNCIO] libvdpau 0.2" . Lists.freedesktop / org . Consultado el 25 de mayo de 2016 .
- ^ "NVIDIA propone VDPAU para parches DRI2 - Phoronix" . Phoronix . Consultado el 25 de mayo de 2016 .
- ^ "[PULL] Agregue controladores VDPAU a la implementación DRI2 del servidor" . xorg . Consultado el 25 de mayo de 2016 .
- ^ "VideoToolbox - Documentación para desarrolladores de Apple" . developer.apple.com . Consultado el 5 de agosto de 2018 .
enlaces externos
- VDPAU (API de presentación y decodificación de video para Unix) de Nvidia
- Puntos de referencia de NVIDIA VDPAU
- Un back-end NVIDIA VDPAU para VA-API de Intel
- Uso de VDPAU por MythTV