DirectX Video Acceleration (zkráceně DXVA , doslova rusky DirectX video Acceleration ) je rozhraní pro programování aplikací (API), komponenta DirectX vyvinutá společností Microsoft a určená ke zpracování (především dekódování ) bitového toku video dat pomocí grafických procesorů ( angl. GPU ) .
DXVA je navržen tak, aby fungoval na počítačích kompatibilních s IBM PC s operačními systémy rodiny Microsoft Windows a na herní konzoli Xbox 360 . Softwarový kanál DXVA umožňuje provádění určitých operací náročných na zdroje, jako je diskrétní kosinusová transformace , kompenzace pohybu a odstranění prokládání , na GPU spíše než na CPU . DXVA 2.0 umožňuje přesměrování více operací na GPU, včetně snímání videa a operací zpracování videa.
DXVA pracuje ve spojení s DirectShow , který je podporován grafickými kartami . DXVA 1.0, které bylo představeno jako standardní API a bylo dostupné od Windows 2000 , mohlo používat buď režim překrytí , nebo VMR 7/9. [1] DXVA 2.0, dostupný pouze počínaje Windows Vista , je integrován s multimediálním rámcem Media Foundation a používá video renderer Enhanced Video Renderer . [jeden]
DXVA používají softwarové video kodeky k definování kanálu specifického pro kodek, který je vyžadován pro hardwarové dekódování a vykreslování toku videa tímto kodekem. Potrubí začíná CPU, které analyzuje mediální tok a převádí jej do struktur kompatibilních s DXVA. DXVA definuje sadu operací, které lze hardwarově akcelerovat, a rozhraní ovladače zařízení ( DDI ) , které určuje, zda ovladač grafické karty může tyto operace v hardwaru zvládnout. Pokud některý kodek používá tyto operace, může použít tato rozhraní ovladače videa k získání přístupu k hardwarové akceleraci. Pokud grafický ovladač nepodporuje jedno nebo více těchto rozhraní, pak je zpracování těchto operací přesměrováno na centrální procesor. Již dekódované video lze přenést do GPU pro následné zpracování videa . Výsledný kanál je dostupný v aplikacích kompatibilních s DirectShow .
Pro kompenzaci pohybu definuje DXVA rozhraní ovladače (DDI), které zase definuje rozhraní pro diskrétní kosinusovou transformaci (iDCT), Huffmanovo kódování , prolínání alfa , inverzní kvantizaci, konverzi barevného prostoru, změnu snímkové frekvence a další operace. [2] [3] Zahrnuje také tři dílčí specifikace: "Deinterlacing DDI", "COPP DDI" a "ProcAmp DDI". [4] Deinterlacing DDI definuje funkce zpětného volání pro operace odstraňování prokládání . Funkce DDI COPP (Certified Output Protection Protocol) umožňují kanálu chránit data médií specifikací funkcí šifrování. ProcAmp DDI se používá k urychlení následného zpracování videa. Modul ovladače ProcAmp je umístěn mezi vykreslováním hardwaru videa a ovladačem displeje a poskytuje funkce, které vám umožňují aplikovat filtry pro následné zpracování na již dekódované video.
Funkce DXVA DDI nejsou dostupné přímo klientovi DirectShow, ale jsou poskytovány jako zpětná volání do video rendereru. Renderer tedy hraje velmi důležitou roli ve složení potrubí.
DXVA 1.0 se používá na Windows XP a Windows 2000 .
DXVA 2.0 zlepšila implementaci video pipeline a přidala některá další DDI, jako je „Capture DDI“ navržená pro zachycení videa . Dvě z původních tří DDI dodávaných s DXVA 1.0 byly vylepšeny ve druhé verzi, s více operacemi dostupnými pro hardwarové zpracování. DXVA 2.0 nezahrnuje COPP DDI, ale místo toho používá chráněnou cestu médií pro chráněný obsah. DXVA 1.0 je emulován pomocí DXVA 2.0. [1] V DXVA 2.0 jsou funkce DDI dostupné přímo klientskému programu a nevyžadují zprostředkující video renderer. [5] Tak bylo možné vytvořit potrubí pro jednoduché dekódování videa (bez vykreslování) nebo následné zpracování a vykreslování (bez dekódování). Všechny tyto funkce vyžadují model Windows Display Driver Model , který je součástí DirectX 10 , což omezuje seznam operačních systémů od DXVA 2.0 po Windows Vista , Windows Server 2008 , Windows 7 a Windows Server 2008 R2 . [1] [5] DXVA 2.0 podporuje pouze Enhanced Video Renderer jako video renderer na Vista a Windows 7 (ve Windows XP je vykreslování DXVA možné pomocí VMR9 a Overlay Mixer [1] ). DXVA je integrován s Media Foundation a umožňuje, aby potrubí DXVA bylo rozpoznáno jako Media Foundation Transforms (MFT) . Dokonce i kanál dekódování a potrubí následného zpracování lze rozpoznat jako MFT, což vede k úplnému potrubí přehrávání videa pomocí zavaděče topologie Media Foundation.
Existuje DXVA-HD, což je evoluce DXVA 2.0 a je k dispozici ve Windows 7 , pokud je podporováno WDDM 1.1. [6]