DirectX Video Acceleration - DirectX Video Acceleration

DirectX Video Acceleration ( DXVA ) je Microsoft API specifikace pro Microsoft Windows a Xbox 360 platformy, která umožňuje videa dekódování být hardwarovou akcelerací . Potrubí umožňuje některým CPU -intensive operace, jako je idct , kompenzace pohybu a odstranění prokladu má být vyložen na GPU . DXVA 2.0 umožňuje hardwarově akcelerovat také více operací, včetně operací snímání a zpracování videa .

DXVA funguje ve spojení s modelem vykreslování videa používaným grafickou kartou . DXVA 1.0, který byl představen jako standardizované API s Windows 2000 a je aktuálně k dispozici ve Windows 98 nebo novějším, může používat buď režim vykreslování překrytí, nebo VMR 7/9 . DXVA 2.0, k dispozici pouze v operačních systémech Windows Vista , Windows 7 , Windows 8 a novějších, se integruje s Media Foundation (MF) a používá Enhanced Video Renderer (EVR) přítomný v MF.

Přehled

DXVA se používá v softwarových video dekodérech k definování kanálu specifického pro kodek pro hardwarově akcelerované dekódování a vykreslení kodeku. Kanál začíná na CPU, který se používá k analýze mediálního proudu a převodu na struktury kompatibilní s DXVA. DXVA určuje sadu operací, které mohou být hardwarově akcelerované a rozhraní ovladačů zařízení (DDI), které může grafický ovladač implementovat k urychlení operací. Pokud kodek potřebuje provést některou z definovaných operací, může pomocí těchto rozhraní získat přístup k hardwarově akcelerované implementaci těchto operací. Pokud grafický ovladač neimplementuje jedno nebo více rozhraní, je na kodeku, aby pro něj poskytl záložní software. Dekódované video je předáno hardwarovému vykreslovači videa, kde na něj může být před vykreslením do zařízení aplikováno další následné zpracování videa . Výsledný kanál je použitelný v aplikaci kompatibilní s DirectShow .

DXVA specifikuje Motion Compensation DDI, který mimo jiné specifikuje rozhraní pro operace iDCT , Huffmanovo kódování , kompenzaci pohybu , alfa míchání , inverzní kvantování , konverzi barevného prostoru a konverzi snímkové frekvence. Zahrnuje také tři dílčí specifikace: Deinterlacing DDI, COPP DDI a ProcAmp DDI. Deinterlacing DDI specifikuje zpětná volání pro prokladu operace. Funkce DDI COPP (Certified Output Protection Protocol) umožňují zabezpečit kanál pro média chráněná DRM zadáním funkcí šifrování . ProcAmp DDI se používá k urychlení videa po zpracování . Modul ovladače ProcAmp je umístěn mezi hardwarovým vykreslovačem videa a ovladačem displeje a poskytuje funkce pro použití filtrů následného zpracování na dekomprimované video.

Funkce vystavené DXVA DDI nejsou přístupné přímo klientem DirectShow , ale jsou dodávány jako funkce zpětného volání do vykreslovacího modulu videa. Renderovač jako takový hraje velmi důležitou roli při ukotvení kanálu.

DXVA ve Windows Vista a novějších

DXVA 2.0 vylepšuje implementaci video kanálu a přidává řadu dalších DDI, včetně Capture DDI pro snímání videa. DDI, které sdílí s DXVA 1.0, jsou také vylepšeny o schopnost využívat hardwarovou akceleraci více operací. Funkce DDI jsou také přímo k dispozici volajícím a nemusí být zprostředkovány vykreslovačem videa. Jako takový může program také vytvořit kanál pro jednoduché dekódování média (bez vykreslování) nebo pro následné zpracování a vykreslení (bez dekódování). Tyto funkce vyžadují ovladače modelu displeje Windows , které omezují DXVA 2.0 na Windows Vista , Windows Server 2008 , Windows 7 , Windows Server 2008 R2 a Windows 8 . Ve Windows XP a Windows 2000 mohou programy používat DXVA 1.0. DXVA 2.0 umožňuje Enhanced Video Renderer jako vykreslovač videa pouze na systémech Vista, Windows 7 a Windows 8. (U Windows XP je DXVA-Rendering možné s VMR9 a známým Overlay Mixer.) DXVA se integruje s Media Foundation a umožňuje DXVA potrubí, která mají být vystavena jako Media Foundation Transforms ( MFT ). Dokonce i kanály dekodéru nebo kanály pro následné zpracování lze vystavit jako MFT, které lze použít zavaděčem topologie Media Foundation k vytvoření kanálu úplného přehrávání médií. DXVA 1.0 je emulován pomocí DXVA 2.0. DXVA 2.0 neobsahuje COPP DDI, spíše používá PVP pro chráněný obsah. Windows 7 implementuje DXVA-HD, pokud ovladač vyhovuje WDDM 1.1.

Implementace DXVA2: nativní a zpětné kopírování

Implementace DXVA2 přicházejí ve dvou variantách: nativní a copy-back .

Při nativní implementaci zůstává dekódované video v paměti GPU, dokud se nezobrazí. Dekodér videa musí být připojen k vykreslovacímu modulu videa bez filtru zprostředkujícího zpracování. Video renderer musí také podporovat DXVA, což dává menší volnost při výběru rendererů.

Při implementaci zpětného kopírování se dekódované video zkopíruje z paměti GPU zpět do paměti CPU. Tato implementace nemá výše uvedená omezení a funguje podobně jako normální softwarový dekodér; koktání videa však nastane, pokud GPU není dostatečně rychlý na to, aby zkopíroval svou paměť zpět do paměti CPU.

Nativní režim je výhodný, pokud není potřeba přizpůsobené zpracování, protože další operace zpětného kopírování zvýší zatížení paměti GPU.

Software

Viz také

Reference

externí odkazy