DXVA 2.0 について
DirectX ビデオ アクセラレーション (DXVA) は、ハードウェア アクセラレータを使用してビデオ処理を高速化するための API および対応する DDI です。 ソフトウェア コーデックとソフトウェア ビデオ プロセッサでは、DXVA を使用して、CPU 負荷の高い特定の操作を GPU にオフロードできます。 たとえば、ソフトウェア デコーダーは、逆離散コサイン変換 (iDCT) を GPU にオフロードできます。
DXVA では、一部のデコード操作はグラフィックス ハードウェア ドライバーによって実装されます。 この一連の機能はアクセラレータと呼ばれます。 その他のデコード操作は、ホスト デコーダーまたはソフトウェア デコーダーと呼ばれるユーザー モードのアプリケーション ソフトウェアによって実装されます。 (ホスト デコーダーとソフトウェア デコーダーという用語は同等です)。アクセラレータによって実行される処理は、オフホスト処理と呼ばれます。 通常、アクセラレータは GPU を使用して一部の操作を高速化します。 アクセラレータがデコード操作を実行するたびに、ホスト デコーダーは操作を実行するために必要な情報を含むアクセラレータ バッファーに伝達する必要があります
DXVA 2 API には Windows Vista 以降が必要です。 後方互換対応のために、DXVA 1 API は引き続き Windows Vista でサポートされています。 いずれかのバージョンの API と逆のバージョンの DDI を変換するエミュレーション レイヤが用意されています。
- グラフィックス ドライバーが Windows ディスプレイ ドライバー モデル (WDDM) に準拠している場合、DXVA 1 API 呼び出しは DXVA 2 DDI 呼び出しに変換されます。
- グラフィックス ドライバーが以前の Windows XP ディスプレイ ドライバー モデル (XPDM) を使用している場合、DXVA 2 API 呼び出しは DXVA 1 DDI 呼び出しに変換されます。
次の表は、DXVA API の各バージョンのオペレーティング システム要件とサポートされているビデオ レンダラーを示しています。
API バージョン | 要件 | ビデオ レンダラーのサポート |
---|---|---|
DXVA 1 | Windows 2000 以降 | オーバーレイ ミキサー、VMR-7、VMR-9 (DirectShow のみ) |
DXVA 2 | Windows Vista | EVR (DirectShow とメディア ファンデーション) |
DXVA 1 では、ソフトウェア デコーダーはビデオ レンダラーを介して API にアクセスする必要があります。 ビデオ レンダラーを呼び出さずに DXVA 1 API を使用する方法はありません。 この制限は、DXVA 2 で削除されました。 DXVA 2 を使用すると、ホスト デコーダー (または任意のアプリケーション) は、IDirectXVideoDecoderService インターフェイスを介して API に直接アクセスできます。
DXVA 1 のドキュメントでは、次のビデオ標準で使用されるデコード構造について説明します。
- ITU-T Rec. H.261
- ITU-T Rec. H.263
- MPEG-1 ビデオ
- MPEG-2 メイン プロファイル ビデオ
次の仕様では、他のビデオ標準の DXVA 拡張機能を定義します。
- H.264/AVC デコードの DXVA 仕様
- ステレオ ハイ プロファイルを含む H.264/MPEG-4 AVC マルチビュー ビデオ コーディング (MVC) の DXVA 仕様
- MPEG-1 VLD および結合 MPEG-1/MPEG-2 VLD ビデオ デコードの DXVA 仕様。
- MPEG-4 パート 2 ビデオ デコード用のオフホスト VLD モードの DXVA 仕様
- Windows Media Video® v8、v9、vA デコードの DXVA 仕様 (SMPTE 421M "VC-1" を含む)
- H.264/MPEG-4 Scalable Video Coding (SVC) オフホスト VLD モード デコードの DirectX ビデオ アクセラレーション (DXVA) 仕様
- VP8 および VP9 ビデオ コーディング用 DirectX ビデオ アクセラレーション仕様
DXVA 1 と DXVA 2 は、デコードに同じデータ構造を使用します。 ただし、デコード セッションを構成する手順が変更されました。 DXVA 1 は"プローブとロック" メカニズムを使用します。ホスト デコーダーは、アクセラレータで目的の構成を設定する前に、さまざまな構成をテストできます。 DXVA 2 では、アクセラレータはサポートされている構成の一覧を返し、ホスト デコーダーは一覧から 1 つを選択します。 詳細については、次のセクションを参照してください。
関連トピック