Informazioni su DXVA 2.0
DirectX Video Acceleration (DXVA) è un'API e un DDI corrispondente per l'uso dell'accelerazione hardware per velocizzare l'elaborazione video. Codec software e processori video software possono usare DXVA per eseguire l'offload di determinate operazioni a elevato utilizzo di CPU nella GPU. Ad esempio, un decodificatore software può eseguire l'offload della trasformazione coseno discreta inversa (iDCT) nella GPU.
In DXVA alcune operazioni di decodifica vengono implementate dal driver hardware grafico. Questo set di funzionalità è definito acceleratore. Altre operazioni di decodifica vengono implementate dal software applicativo in modalità utente, denominato decodificatore host o decodificatore software. I termini decodificatore host e decodificatore software sono equivalenti. L'elaborazione eseguita dall'acceleratore viene chiamata elaborazione off-host. In genere l'acceleratore usa la GPU per velocizzare alcune operazioni. Ogni volta che l'acceleratore esegue un'operazione di decodifica, il decodificatore host deve comunicare ai buffer dell'acceleratore contenenti le informazioni necessarie per eseguire l'operazione
L'API DXVA 2 richiede Windows Vista o versione successiva. L'API DXVA 1 è ancora supportata in Windows Vista per garantire la compatibilità con le versioni precedenti. Viene fornito un livello di emulazione che esegue la conversione tra una versione dell'API e la versione opposta dell'DDI:
- Se il driver di grafica è conforme al modello wdDM (Windows Display Driver Model), le chiamate API DXVA 1 vengono convertite in chiamate DDI DXVA 2.
- Se i driver di grafica usano il modello xp di driver di visualizzazione di Windows XP (XPDM), le chiamate API DXVA 2 vengono convertite in chiamate DDI DXVA 1.
La tabella seguente illustra i requisiti del sistema operativo e i renderer video supportati per ogni versione dell'API DXVA.
Versione API | Requisiti | Supporto del renderer video |
---|---|---|
DXVA 1 | Windows 2000 o versione successiva | Mixer sovrapposto, VMR-7, VMR-9 (solo DirectShow) |
DXVA 2 | Windows Vista | EVR (DirectShow e Media Foundation) |
In DXVA 1, il decodificatore software deve accedere all'API tramite il renderer video. Non è possibile usare l'API DXVA 1 senza chiamare il renderer video. Questa limitazione è stata rimossa con DXVA 2. Usando DXVA 2, il decodificatore host (o qualsiasi applicazione) può accedere direttamente all'API, tramite l'interfaccia IDirectXVideoDecoderService .
La documentazione di DXVA 1 descrive le strutture di decodifica usate per gli standard video seguenti:
- ITU-T Rec. H.261
- ITU-T Rec. H.263
- Video MPEG-1
- Video del profilo principale MPEG-2
Le specifiche seguenti definiscono le estensioni DXVA per altri standard video:
- Specifica DXVA per la decodifica H.264/AVC
- Specifica DXVA per codifica video H.264/MPEG-4 AVC multiview (MVC), incluso il profilo alto stereo
- Specifica DXVA per la decodifica video MPEG-1 VLD e MPEG-1/MPEG-2 VLD combinato.
- Specifica DXVA per la modalità VLD off-host per la decodifica video MPEG-4 Parte 2
- Specifica DXVA per la decodifica di Windows Media Video® v8, v9 e vA (incluso SMPTE 421M "VC-1")
- Specifica DXVA (DirectX Video Acceleration) per la decodifica in modalità VLD off-host H.264/MPEG-4 Scalable Video Coding (SVC)
- Specifica di accelerazione video DirectX per VP8 e VP9 Video Coding
DXVA 1 e DXVA 2 usano le stesse strutture di dati per la decodifica. Tuttavia, la procedura per la configurazione della sessione di decodifica è cambiata. DXVA 1 usa un meccanismo di "probe e blocco", in cui il decodificatore host può testare varie configurazioni prima di impostare la configurazione desiderata sull'acceleratore. In DXVA 2, l'acceleratore restituisce un elenco di configurazioni supportate e il decodificatore host ne seleziona uno dall'elenco. I dettagli sono indicati nelle sezioni seguenti:
Argomenti correlati