DirectX-videoacceleration

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 3 maj 2020; kontroller kräver 2 redigeringar .

DirectX Video Acceleration (förkortat DXVA , bokstavligen rysk DirectX-videoacceleration ) är ett applikationsprogrammeringsgränssnitt (API), en DirectX- komponent utvecklad av Microsoft och designad för att behandla (främst avkoda ) en bitström av videodata med hjälp av grafikprocessorer ( eng.  GPU ) .

DXVA är utformad för att köras på IBM PC-kompatibla datorer som kör operativsystem från Microsoft Windows -familjen och på Xbox 360 -spelkonsolen . DXVA-programvarupipelinen tillåter att vissa resurskrävande operationer, såsom diskret cosinustransform , rörelsekompensation och deinterlacing , kan utföras på GPU:n snarare än på CPU :n . DXVA 2.0 tillåter att fler operationer omdirigeras till grafikprocessorn, inklusive videoinspelning och videobearbetningsoperationer.

DXVA fungerar tillsammans med DirectShow , som stöds av grafikkort . DXVA 1.0, som introducerades som ett standard-API och har varit tillgängligt sedan Windows 2000 , kunde använda antingen överlagringsläge eller VMR 7/9. [1] DXVA 2.0, tillgänglig endast från och med Windows Vista , är integrerad med Media Foundations multimediaramverk och använder Enhanced Video Renderer -videorenderaren . [ett]

Översikt

DXVA används av mjukvaruvideocodec för att definiera en codec-specifik pipeline som krävs för hårdvaruavkodning och rendering av en videoström av den codec. Pipelinen börjar med CPU:n, som analyserar mediaströmmen och omvandlar den till DXVA-kompatibla strukturer. DXVA definierar en uppsättning operationer som kan hårdvaruaccelereras och ett enhetsdrivrutinsgränssnitt ( DDI ) som avgör om en grafikkortsdrivrutin kan hantera dessa operationer i hårdvara. Om någon codec använder dessa operationer kan den använda dessa videodrivrutinsgränssnitt för att få tillgång till hårdvaruacceleration. Om grafikdrivrutinen inte stöder ett eller flera av dessa gränssnitt, omdirigeras behandlingen av dessa operationer till den centrala processorn. Redan avkodad video kan överföras till grafikprocessorn för efterbearbetning av video . Den resulterande pipelinen är tillgänglig i DirectShow -kompatibla applikationer .  

För rörelsekompensation definierar DXVA ett drivrutinsgränssnitt (DDI), som i sin tur definierar gränssnitt för diskret cosinustransform (iDCT), Huffman-kodning , alfablandning , invers kvantisering, färgrymdskonvertering, förändring av bildhastighet och andra operationer. [2] [3] Den innehåller också tre underspecifikationer: "Deinterlacing DDI", "COPP DDI" och "ProcAmp DDI". [4] Deinterlacing DDI definierar callback-funktioner för deinterlacing- operationer . COPP (Certified Output Protection Protocol) DDI-funktioner tillåter pipeline att skydda mediadata genom att specificera krypteringsfunktioner. ProcAmp DDI används för att påskynda efterbehandling av video. ProcAmp-drivrutinsmodulen sitter mellan videohårdvaruåtergivningen och bildskärmsdrivrutinen och tillhandahåller funktioner som låter dig tillämpa efterbehandlingsfilter på redan avkodad video.

DXVA DDI-funktionerna är inte tillgängliga direkt för DirectShow-klienten, utan tillhandahålls som återuppringningar till videorenderaren. Således spelar renderaren en mycket viktig roll i sammansättningen av pipelinen.

DXVA 1.0 används på Windows XP och Windows 2000 .

DXVA på Windows Vista och nyare

DXVA 2.0 förbättrade implementeringen av videopipeline och lade till några andra DDI:er som "Capture DDI" designad för videoinsamling . Två av de ursprungliga tre DDI:erna som levererades med DXVA 1.0 förbättrades i den andra versionen, med fler funktioner tillgängliga för hårdvarubearbetning. DXVA 2.0 inkluderar inte COPP DDI, utan använder istället Protected Media Path för skyddat innehåll. DXVA 1.0 emuleras med DXVA 2.0. [1] I DXVA 2.0 är DDI-funktioner tillgängliga direkt för klientprogrammet och kräver ingen mellanliggande videorenderare. [5] Således blev det möjligt att skapa pipelines för enkel videoavkodning (ingen rendering) eller efterbearbetning och rendering (ingen avkodning). Alla dessa funktioner kräver Windows Display Driver Model , som medföljer DirectX 10 , som begränsar listan över operativsystem från DXVA 2.0 till Windows Vista , Windows Server 2008 , Windows 7 och Windows Server 2008 R2 . [1] [5] DXVA 2.0 stöder endast Enhanced Video Renderer som videorenderare på Vista och Windows 7 (på Windows XP är DXVA-rendering möjlig med VMR9 och Overlay Mixer [1] ). DXVA är integrerat med Media Foundation och gör att DXVA-pipelines kan erkännas som Media Foundation Transforms (MFTs) . Till och med avkodningspipelinen och efterbehandlingspipelinen kan kännas igen som MFTs, vilket resulterar i en komplett videouppspelningspipeline med hjälp av Media Foundations topologilastare.

Det finns DXVA-HD som är en vidareutveckling av DXVA 2.0 och är tillgänglig på Windows 7 om WDDM 1.1 stöds. [6]

Programvarustöd

Se även

Anteckningar

  1. 1 2 3 4 5 DirectX Video Acceleration 2.0 . Hämtad 24 oktober 2007. Arkiverad från originalet 23 april 2012.
  2. Introduktion till DirectX VA . Hämtad 24 oktober 2007. Arkiverad från originalet 23 april 2012.
  3. ↑ Stöd för Microsoft DirectX Video Acceleration (DirectX VA) . Hämtad 24 oktober 2007. Arkiverad från originalet 23 april 2012.
  4. DirectX-videoacceleration . Hämtad 24 oktober 2007. Arkiverad från originalet 23 april 2012.
  5. 12 Vad är nytt i DirectShow . Hämtad 24 oktober 2007. Arkiverad från originalet 23 april 2012.
  6. DXVA -HD  . MSDN (8 april 2010). Hämtad 24 april 2010. Arkiverad från originalet 23 april 2012.
  7. Adobe Flash HD-Video GPU Acceleration Guide | GPU Acceleration,Adobe Flash,HD-Video,ATI AVIVO-HD,NVIDIA PureVideo-HD,Adobe Flash HD-Video GPU Acceleration Guide Guide . Hämtad 22 april 2010. Arkiverad från originalet 2 maj 2013.
  8. VLC GPU-avkodning - VideoLAN Wiki . Hämtad 7 maj 2022. Arkiverad från originalet 13 maj 2021.

Länkar