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 di 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 la compatibilità con le versioni precedenti. Viene fornito un livello di emulazione che esegue la conversione tra una delle due versioni dell'API e la versione opposta dell'DDI:

  • Se il driver grafico è conforme al modello WDDM (Windows Display Driver Model), le chiamate API DXVA 1 vengono convertite in chiamate DDI DXVA 2.
  • Se i driver grafici usano il modello XP XP Display Driver Model (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 versioni successive Mixer overlay, 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 profilo principale MPEG-2

Le specifiche seguenti definiscono le estensioni DXVA per altri standard video:

DXVA 1 e DXVA 2 usano le stesse strutture di dati per la decodifica. Tuttavia, la procedura per la configurazione della sessione di decodifica è stata modificata. 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:

Accelerazione video DirectX 2.0

Specifica DXVA 1.0