DirectX Video Acceleration (forkortet DXVA , bogstaveligt talt russisk DirectX-videoacceleration ) er en applikationsprogrammeringsgrænseflade (API), en DirectX - komponent udviklet af Microsoft og designet til at behandle (primært afkode ) en bitstrøm af videodata ved hjælp af grafikprocessorer ( eng. GPU ) .
DXVA er designet til at køre på IBM PC-kompatible computere , der kører operativsystemer fra Microsoft Windows -familien og på Xbox 360 -spillekonsollen . DXVA-softwarepipelinen tillader, at visse ressourcekrævende operationer, såsom diskret cosinustransformation , bevægelseskompensation og deinterlacing , kan udføres på GPU'en i stedet for på CPU'en . DXVA 2.0 gør det muligt at omdirigere flere operationer til GPU'en, herunder videooptagelse og videobehandling.
DXVA fungerer sammen med DirectShow , som understøttes af videokort . DXVA 1.0, der blev introduceret som en standard API og har været tilgængelig siden Windows 2000 , kunne bruge enten overlejringstilstand eller VMR 7/9. [1] DXVA 2.0, der kun er tilgængelig fra Windows Vista , er integreret med Media Foundations multimedieramme og bruger Enhanced Video Renderer video renderer . [en]
DXVA bruges af software -video-codecs til at definere en codec-specifik pipeline, der kræves til hardware-afkodning og gengivelse af en video-stream af det pågældende codec. Pipelinen starter med CPU'en, som analyserer mediestrømmen og konverterer den til DXVA-kompatible strukturer. DXVA definerer et sæt operationer, der kan hardwareaccelereres, og et enhedsdriverinterface ( DDI ), der bestemmer, om en grafikkortdriver kan håndtere disse operationer i hardware. Hvis en codec bruger disse operationer, kan den bruge disse videodrivergrænseflader til at få adgang til hardwareacceleration. Hvis grafikdriveren ikke understøtter en eller flere af disse grænseflader, omdirigeres behandlingen af disse operationer til den centrale processor. Allerede afkodet video kan overføres til GPU'en til videoefterbehandling . Den resulterende pipeline er tilgængelig i DirectShow- kompatible applikationer .
Til bevægelseskompensation definerer DXVA en drivergrænseflade (DDI), som igen definerer grænseflader til diskret cosinustransformation (iDCT), Huffman-kodning , alfablanding , invers kvantisering, farverumskonvertering, billedhastighedsændring og andre operationer. [2] [3] Det inkluderer også tre underspecifikationer: "Deinterlacing DDI", "COPP DDI" og "ProcAmp DDI". [4] Deinterlacing DDI definerer tilbagekaldsfunktioner til deinterlacing- operationer . COPP (Certified Output Protection Protocol) DDI-funktionerne gør det muligt for pipelinen at beskytte mediedata ved at specificere krypteringsfunktioner. ProcAmp DDI bruges til at fremskynde videoefterbehandling. ProcAmp-drivermodulet sidder mellem videohardwaregengivelsen og skærmdriveren og giver funktioner, der giver dig mulighed for at anvende efterbehandlingsfiltre på allerede afkodet video.
DXVA DDI-funktionerne er ikke tilgængelige direkte for DirectShow-klienten, men leveres som tilbagekald til videorendereren. Renderen spiller således en meget vigtig rolle i sammensætningen af rørledningen.
DXVA 1.0 bruges på Windows XP og Windows 2000 .
DXVA 2.0 forbedrede implementeringen af videopipeline og tilføjede nogle andre DDI'er såsom "Capture DDI" designet til videooptagelse . To af de originale tre DDI'er, der blev leveret med DXVA 1.0, blev forbedret i den anden version, med flere operationer tilgængelige til hardwarebehandling. DXVA 2.0 inkluderer ikke COPP DDI, men bruger i stedet Protected Media Path til beskyttet indhold. DXVA 1.0 emuleres ved hjælp af DXVA 2.0. [1] I DXVA 2.0 er DDI-funktioner tilgængelige direkte til klientprogrammet og kræver ikke en mellemliggende videorenderer. [5] Således blev det muligt at skabe pipelines til simpel videoafkodning (ingen gengivelse) eller efterbehandling og gengivelse (ingen afkodning). Alle disse funktioner kræver Windows Display Driver Model , som er bundtet med DirectX 10 , som begrænser listen over operativsystemer fra DXVA 2.0 til Windows Vista , Windows Server 2008 , Windows 7 og Windows Server 2008 R2 . [1] [5] DXVA 2.0 understøtter kun Enhanced Video Renderer som en videorenderer på Vista og Windows 7 (på Windows XP er DXVA-gengivelse mulig med VMR9 og Overlay Mixer [1] ). DXVA er integreret med Media Foundation og gør det muligt at anerkende DXVA-pipelines som Media Foundation Transforms (MFT'er) . Selv afkodningspipelinen og efterbehandlingspipelinen kan genkendes som MFT'er, hvilket resulterer i en komplet videoafspilningspipeline ved hjælp af Media Foundation-topologiindlæseren.
Der er DXVA-HD, som er en videreudvikling af DXVA 2.0 og er tilgængelig på Windows 7 , hvis WDDM 1.1 understøttes. [6]