Freigeben über


Informationen zu DXVA 2.0

DirectX Video Acceleration (DXVA) ist eine API und ein entsprechender DDI für die Verwendung der Hardwarebeschleunigung zur Beschleunigung der Videoverarbeitung. Softwarecodecs und Softwarevideoprozessoren können DXVA verwenden, um bestimmte CPU-intensive Vorgänge in die GPU zu entladen. Beispielsweise kann ein Softwaredecoder die umgekehrte diskrete Kosinustransformation (iDCT) in die GPU entladen.

In DXVA werden einige Decodierungsvorgänge vom Grafikhardwaretreiber implementiert. Dieser Satz von Funktionen wird als Beschleuniger bezeichnet. Andere Dekodiervorgänge werden von der Anwendungssoftware im Benutzermodus, dem so genannten Host-Decoder oder Software-Decoder, durchgeführt. (Die Begriffe Hostdecoder und Softwaredecoder sind gleichwertig.) Die von der Zugriffstaste ausgeführte Verarbeitung wird als Offhostverarbeitung bezeichnet. Normalerweise verwendet der Beschleuniger den Grafikprozessor, um einige Operationen zu beschleunigen. Immer wenn der Beschleuniger einen Dekodiervorgang durchführt, muss der Host-Decoder dem Beschleuniger Puffer mit den für die Durchführung des Vorgangs erforderlichen Informationen übermitteln

Die DXVA 2-API erfordert Windows Vista oder höher. Die DXVA 1-API wird in Windows Vista weiterhin aus Gründen der Abwärtskompatibilität unterstützt. Es wird eine Emulationsebene bereitgestellt, die zwischen beiden Versionen der API und der entgegengesetzten Version der DDI konvertiert wird:

  • Wenn der Grafiktreiber dem Windows Display Driver Model (WDDM) entspricht, werden DXVA 1-API-Aufrufe in DXVA 2 DDI-Aufrufe konvertiert.
  • Wenn der Grafiktreiber das ältere Windows XP Display Driver Model (XPDM) verwendet, werden DXVA 2 API-Aufrufe in DXVA 1 DDI-Aufrufe umgewandelt.

Die folgende Tabelle zeigt die Anforderungen an das Betriebssystem und die unterstützten Videorenderer für jede Version der DXVA-API.

API-Version Anforderungen Unterstützung für Video-Renderer
DXVA 1 Windows 2000 oder höher Overlay-Mixer, VMR-7, VMR-9 (nur DirectShow)
DXVA 2 Windows Vista EVR (DirectShow und Media Foundation)

 

Bei DXVA 1 muss der Software-Decoder über den Video-Renderer auf die API zugreifen. Es gibt keine Möglichkeit, die DXVA 1 API zu verwenden, ohne den Video-Renderer aufzurufen. Diese Einschränkung ist mit DXVA 2 aufgehoben worden. Mit DXVA 2 kann der Host-Decoder (oder eine beliebige Anwendung) direkt auf die API zugreifen, und zwar über die Schnittstelle IDirectXVideoDecoderService .

Die DXVA 1-Dokumentation beschreibt die Dekodierungsstrukturen, die für die folgenden Videostandards verwendet werden:

  • ITU-T Rec. H.261
  • ITU-T Rec. H.263
  • MPEG-1 Video
  • MPEG-2 Hauptprofilvideo

Die folgenden Spezifikationen definieren DXVA-Erweiterungen für andere Videostandards:

DXVA 1 und DXVA 2 verwenden die gleichen Datenstrukturen für die Dekodierung. Das Verfahren zum Konfigurieren der Decodierungssitzung wurde jedoch geändert. DXVA 1 verwendet einen „Probe- und Sperr“-Mechanismus, bei dem der Host-Decoder verschiedene Konfigurationen testen kann, bevor er die gewünschte Konfiguration auf dem Beschleuniger einstellt. In DXVA 2 gibt der Beschleuniger eine Liste der unterstützten Konfigurationen zurück und der Host-Decoder wählt eine aus der Liste aus. Ausführliche Informationen finden Sie in den nachfolgenden Abschnitten.

DirectX Video Acceleration 2.0

DXVA 1.0-Spezifikation