DirectX Video Acceleration ( DXVA ) es una especificación API de Microsoft para las plataformas Microsoft Windows y Xbox 360 que permite que la decodificación de video sea acelerada por hardware . La canalización permite que ciertas operaciones de CPU intensivas como iDCT , compensación de movimiento y desentrelazado se descarguen en la GPU . DXVA 2.0 permite que más operaciones, incluidas las operaciones de captura y procesamiento de video , también sean aceleradas por hardware.
DXVA trabaja en conjunto con el modelo de renderizado de video utilizado por la tarjeta de video . DXVA 1.0, que se introdujo como una API estandarizada con Windows 2000 y actualmente está disponible en Windows 98 o posterior, puede usar el modo de renderizado de superposición o VMR 7/9 . [1] DXVA 2.0, disponible solo en Windows Vista , Windows 7 , Windows 8 y sistemas operativos posteriores, se integra con Media Foundation (MF) y utiliza el Enhanced Video Renderer (EVR) presente en MF. [1]
Descripción general
Los decodificadores de vídeo de software utilizan el DXVA para definir una canalización específica del códec para la decodificación y la reproducción aceleradas por hardware del códec. La canalización comienza en la CPU que se utiliza para analizar el flujo de medios y la conversión a estructuras compatibles con DXVA. DXVA especifica un conjunto de operaciones que pueden acelerarse por hardware e interfaces de controlador de dispositivo (DDI) que el controlador gráfico puede implementar para acelerar las operaciones. Si el códec necesita realizar alguna de las operaciones definidas, puede utilizar estas interfaces para acceder a la implementación acelerada por hardware de estas operaciones. Si el controlador gráfico no implementa una o más de las interfaces, depende del códec proporcionar una alternativa de software. El video decodificado se entrega al procesador de video de hardware, donde se le puede aplicar más posprocesamiento de video antes de ser procesado en el dispositivo. La canalización resultante se puede utilizar en una aplicación compatible con DirectShow .
DXVA especifica Motion Compensation DDI, que especifica las interfaces para operaciones iDCT , codificación Huffman , compensación de movimiento , fusión alfa , cuantificación inversa , conversión de espacio de color y operaciones de conversión de velocidad de fotogramas, entre otras. [2] [3] También incluye tres subespecificaciones: Desentrelazado DDI, COPP DDI y ProcAmp DDI. [4] El DDI de desentrelazado especifica las devoluciones de llamada para las operaciones de desentrelazado . Las funciones DDI de COPP (Protocolo de protección de salida certificado) permiten proteger la canalización para medios protegidos con DRM , especificando funciones de cifrado . El ProcAmp DDI se utiliza para acelerar el posprocesamiento de video. El módulo del controlador ProcAmp se encuentra entre el procesador de video de hardware y el controlador de pantalla, y proporciona funciones para aplicar filtros de posprocesamiento en el video descomprimido.
Las funciones expuestas por DXVA DDI no son accesibles directamente por un cliente DirectShow , pero se suministran como funciones de devolución de llamada al renderizador de video. Como tal, el renderizador juega un papel muy importante en el anclaje de la canalización.
DXVA en Windows Vista y posterior
DXVA 2.0 mejora la implementación de la canalización de video y agrega una serie de otras DDI, incluida una Capture DDI para captura de video. Los DDI que comparte con DXVA 1.0 también se mejoran con la capacidad de utilizar la aceleración de hardware de más operaciones. Además, las funciones DDI están directamente disponibles para las personas que llaman y no necesitan ser mediadas por el renderizador de video. [5] Como tal, un programa también puede crear una canalización para simplemente decodificar los medios (sin renderizar) o postprocesar y renderizar (sin decodificar). Estas características requieren los controladores del modelo de controlador de pantalla de Windows , que limita DXVA 2.0 a Windows Vista , Windows Server 2008 , [1] [5] Windows 7 , Windows Server 2008 R2 y Windows 8 . En Windows XP y Windows 2000 , los programas pueden utilizar DXVA 1.0. DXVA 2.0 permite a Enhanced Video Renderer como el renderizador de video solo en Vista, Windows 7 y Windows 8. [1] (Con Windows XP, DXVA-Rendering es posible con VMR9 y el conocido Overlay Mixer). DXVA se integra con Media Foundation y permite que las canalizaciones de DXVA se expongan como Transformaciones Media Foundation ( MFT ). Incluso las canalizaciones de decodificadores o las canalizaciones de posprocesamiento pueden exponerse como MFT, que pueden ser utilizadas por el cargador de topología de Media Foundation para crear una canalización de reproducción de medios completa. DXVA 1.0 se emula usando DXVA 2.0. [1] DXVA 2.0 no incluye COPP DDI, sino que usa PVP para contenido protegido. Windows 7 implementa DXVA-HD [6] si el controlador cumple con WDDM 1.1.
Implementaciones de DXVA2: nativo y copy-back
Las implementaciones de DXVA2 vienen en dos variantes: nativa y copia .
Con la implementación nativa, el video decodificado permanece en la memoria de la GPU hasta que se muestra. El decodificador de video debe estar conectado al renderizador de video sin un filtro de procesamiento intermedio. El renderizador de video también debe ser compatible con DXVA, lo que da menos libertad en la elección de los renderizadores.
Con la implementación de copia de respaldo, el video decodificado se copia de la memoria de la GPU a la memoria de la CPU. Esta implementación no tiene las limitaciones mencionadas anteriormente y actúa de manera similar a un decodificador de software normal; sin embargo, se producirá una tartamudez en el video si la GPU no es lo suficientemente rápida para copiar su memoria de nuevo a la memoria de la CPU.
El modo nativo es ventajoso a menos que sea necesario un procesamiento personalizado, ya que las operaciones de copia de respaldo adicionales aumentarán la carga de memoria de la GPU. [7]
Software
- Adobe Flash v10.3 y posterior
- Boxee
- CoreAVC v2.5.0 y posterior [8]
- Daum PotPlayer [9]
- Decodificador DivX H.264 v1.2 y posterior
- Reproductor multimedia DVDFab 3
- Complemento Elecard MPEG-2 para WMP y MPEG Player
- ffdshow-tryouts revisión 3185 y posteriores
- Freemake Video Converter v2.2 y posterior
- Kodi
- Media Player Classic Home Cinema
- MediaPortal
- mpv (solo DXVA 2.0)
- Nero Multimedia Suite (Nero Kwik Media, Nero MediaHub, Nero Showtime)
- Plex
- PowerDVD
- Reproductor multimedia VLC v1.1 y posterior (solo DXVA 2.0) [10]
- WinDVD
- Reproductor de Windows Media 11 ( solo WMV3 )
- Reproductor de Windows Media 12
- Freno de mano
Ver también
- Decodificador de video unificado AMD
- Motor de códec distribuido
- Vídeo nítido de Intel
- Fundación de medios
- Nvidia PureVideo
- OpenMAX
- VDPAU
- API de aceleración de video
- Aceleración de flujo de bits de X-Video
- Compensación de movimiento X-Video
Referencias
- ^ a b c d e "Aceleración de vídeo DirectX 2.0" . Consultado el 24 de octubre de 2007 .
- ^ "Introducción a DirectX VA" . Archivado desde el original el 23 de abril de 2008 . Consultado el 24 de octubre de 2007 .
- ^ "Compatibilidad con Microsoft DirectX Video Acceleration (DirectX VA)" . Consultado el 24 de octubre de 2007 .
- ^ "Aceleración de video DirectX" . Archivado desde el original el 8 de abril de 2008 . Consultado el 24 de octubre de 2007 .
- ^ a b "Novedades de DirectShow" . Consultado el 24 de octubre de 2007 .
- ^ "DXVA-HD (Windows)" . msdn.microsoft.com . Consultado el 21 de abril de 2018 .
- ^ S, Ganesh T. "Revisión de ASRock's High-End Vision 3D 252B HTPC" . anandtech.com . Consultado el 21 de abril de 2018 .
- ^ "Copia archivada" . Archivado desde el original el 4 de julio de 2011 . Consultado el 9 de abril de 2011 .Mantenimiento de CS1: copia archivada como título ( enlace )
- ^ "Daum tv 팟" . tvpot.daum.net . Archivado desde el original el 22 de mayo de 2017 . Consultado el 21 de abril de 2018 .
- ^ "Decodificación de GPU VLC - VideoLAN Wiki" . wiki.videolan.org . Consultado el 21 de abril de 2018 .
enlaces externos
- Aceleración de video DirectX
- DXVAChecker , utilidad que enumera los modos DXVA de los que es capaz la computadora dada