À 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 :
- Spécification DXVA pour le décodage H.264/AVC Decoding
- Spécification DXVA pour le codage H.264/MPEG-4 AVC Multiview Video Coding (MVC), y compris le profil stéréo élevé
- Spécification DXVA pour le décodage MPEG-1 VLD et Combined MPEG-1/MPEG-2 VLD Video Decoding.
- Spécification DXVA pour le mode VLD hors hôte pour le décodage vidéo MPEG-4 partie 2
- Spécification DXVA pour le décodage Windows Media Video® v8, v9 et vA (y compris SMPTE 421M « VC-1 »)
- Spécification de l’accélération vidéo DirectX (DXVA) pour le décodage en mode VLD hors hôte H.264/MPEG-4 Scalable Video Coding (SVC)
- Spécification de l’accélération vidéo DirectX pour le codage vidéo VP8 et VP9
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 :
Rubriques connexes