À propos de DXVA 2.0

DirectX Video Acceleration (DXVA) est une API et un DDI correspondant pour l’utilisation de l’accélération matérielle pour accélérer le traitement vidéo. Les codecs logiciels et les processeurs vidéo logiciels peuvent utiliser DXVA pour décharger certaines opérations gourmandes en UC vers le GPU. Par exemple, un décodeur logiciel peut décharger la transformée en cosinus discrète inverse (iDCT) vers le GPU.

Dans DXVA, certaines opérations de décodage sont implémentées par le pilote matériel graphique. Cet ensemble de fonctionnalités est appelé accélérateur. D’autres opérations de décodage sont implémentées par le logiciel d’application en mode utilisateur, appelé décodeur hôte ou décodeur logiciel. (Les termes décodeur hôte et décodeur logiciel sont équivalents.) Le traitement effectué par l’accélérateur est appelé traitement hors hôte. En règle générale, l’accélérateur utilise le GPU pour accélérer certaines opérations. Chaque fois que l’accélérateur effectue une opération de décodage, le décodeur hôte doit transmettre à l’accélérateur des tampons contenant les informations nécessaires à l’exécution de l’opération.

L’API DXVA 2 nécessite Windows Vista ou version ultérieure. L’API DXVA 1 est toujours prise en charge dans Windows Vista pour la compatibilité descendante. Une couche d’émulation est fournie pour assurer la conversion entre l’une ou l’autre version de l’API et la version opposée de la DDI :

  • Si le pilote graphique est conforme au modèle de pilote d’affichage de Windows (WDDM), les appels d’API DXVA 1 sont convertis en appels DDI DXVA 2.
  • Si les pilotes graphiques utilisent l’ancien modèle de pilote d’affichage de Windows XP (XPDM), les appels d’API DXVA 2 sont convertis en appels DDI DXVA 1.

Le tableau suivant présente la configuration requise du système d’exploitation et les renderers vidéo pris en charge pour chaque version de l’API DXVA.

Version d'API Spécifications Prise en charge de renderer vidéo
DXVA 1 Windows 2000 ou version ultérieure Overlay Mixer, VMR-7, VMR-9 (DirectShow uniquement)
DXVA 2 Windows Vista EVR (DirectShow et Media Foundation)

 

Dans DXVA 1, le décodeur logiciel doit accéder à l’API via le renderer vidéo. Il n’existe aucun moyen d’utiliser l’API DXVA 1 sans appeler le renderer vidéo. Cette restriction a été supprimée avec DXVA 2. À l’aide de DXVA 2, le décodeur hôte (ou toute application) peut accéder directement à l’API via l’interface IDirectXVideoDecoderService.

La documentation DXVA 1 décrit les structures de décodage utilisées pour les normes vidéo suivantes :

  • ITU-T Rec. H.261
  • ITU-T Rec. H.263
  • Vidéo MPEG-1
  • Vidéo de profil principal MPEG-2

Les spécifications suivantes définissent les extensions DXVA pour d’autres normes vidéo :

DXVA 1 et DXVA 2 utilisent les mêmes structures de données pour le décodage. Toutefois, la procédure de configuration de la session de décodage a changé. DXVA 1 utilise un mécanisme de « sonde et de verrouillage », dans lequel le décodeur hôte peut tester différentes configurations avant de définir la configuration souhaitée sur l’accélérateur. Dans DXVA 2, l’accélérateur renvoie une liste de configurations prises en charge et le décodeur hôte en sélectionne une dans la liste. Vous obtiendrez les détails dans les sections suivantes :

Accélération vidéo DirectX 2.0

Spécification DXVA 1.0