DirectX ビデオ アクセラレーション( DXVA ) は、ビデオデコードをハードウェア アクセラレーションできるようにする、 Microsoft WindowsおよびXbox 360プラットフォーム用のMicrosoft API仕様です。パイプラインにより、 iDCT、モーション補正、デインターレースなどのCPUを集中的に使用する操作をGPUにオフロードできます。DXVA 2.0 では、ビデオのキャプチャや処理操作など、さらに 多くの操作をハードウェア アクセラレーションできます。
DXVA は、ビデオカードで使用されるビデオレンダリングモデルと連携して動作します。Windows 2000 ( DirectX 7 )で標準化された API として導入され、現在Windows 98以降で使用できる DXVA 1.0 は、オーバーレイレンダリングモードまたはVMR 7/9のいずれかを使用できます。[1] Windows Vista、Windows 7、Windows 8以降の OSでのみ使用できる DXVA 2.0 は、 Media Foundation (MF) と統合され、 MF にあるEnhanced Video Renderer (EVR) を使用します。[1]
概要
DXVA は、ソフトウェア ビデオ デコーダーによって使用され、コーデックのハードウェア アクセラレーションによるデコードとレンダリングのためのコーデック固有のパイプラインを定義します。パイプラインは、メディア ストリームの解析と DXVA 互換構造への変換に使用される CPU から始まります。DXVA は、ハードウェア アクセラレーションが可能な一連の操作と、グラフィック ドライバーが操作を高速化するために実装できるデバイス ドライバー インターフェイス(DDI)を指定します。コーデックが定義された操作のいずれかを実行する必要がある場合、これらのインターフェイスを使用して、これらの操作のハードウェア アクセラレーションによる実装にアクセスできます。グラフィック ドライバーが 1 つ以上のインターフェイスを実装していない場合、コーデックはソフトウェア フォールバックを提供する必要があります。デコードされたビデオはハードウェア ビデオ レンダラーに渡され、デバイスにレンダリングされる前に、さらにビデオの後処理が適用される場合があります。結果として得られるパイプラインは、DirectShow互換アプリケーションで使用できます。
DXVAは動き補償DDIを規定しており、 iDCT操作、ハフマン符号化、動き補償、アルファブレンディング、逆量子化、色空間変換、フレームレート変換操作などのインターフェイスを規定しています。 [2] [3]また、デインターレースDDI、COPP DDI、およびProcAmp DDIという3つのサブ仕様も含まれています。[4]デインターレースDDIは、デインターレース操作のコールバックを規定しています。 COPP(Certified Output Protection Protocol)DDI関数は、暗号化関数を指定することにより、DRMで保護されたメディアのパイプラインを保護できるようにします。 ProcAmp DDIは、ビデオの後処理を高速化するために使用されます。 ProcAmpドライバモジュールは、ハードウェアビデオレンダラとディスプレイドライバの間に位置し、圧縮解除されたビデオに後処理フィルタを適用する機能を提供します。
DXVA DDI によって公開される関数は、DirectShowクライアントから直接アクセスすることはできませんが、ビデオ レンダラーへのコールバック関数として提供されます。そのため、レンダラーはパイプラインのアンカーとして非常に重要な役割を果たします。
H.264の DXVA サポートはDirectX 9.0cで追加されました。
Windows Vista 以降の DXVA
DXVA 2.0 ではビデオ パイプラインの実装が強化され、ビデオ キャプチャ用の Capture DDI など、他の DDI も多数追加されています。DXVA 1.0 と共有する DDI も強化され、より多くの操作でハードウェア アクセラレーションを使用できるようになっています。また、DDI 関数は呼び出し側が直接使用できるため、ビデオ レンダラーを介する必要がありません。[5]そのため、プログラムは、メディアをデコードするだけのパイプライン (レンダリングなし) や、後処理とレンダリング (デコードなし) を行うパイプラインを作成することもできます。これらの機能にはWindows ディスプレイ ドライバー モデルドライバーが必要で、DXVA 2.0 はWindows Vista、Windows Server 2008、[1] [5] Windows 7、Windows Server 2008 R2、およびWindows 8に限定されています。Windows XPおよびWindows 2000では、プログラムは DXVA 1.0 を使用できます。 DXVA 2.0 では、Vista、Windows 7、Windows 8 でのみ、Enhanced Video Renderer をビデオ レンダラーとして使用できます。[1] (Windows XP では、DXVA レンダリングは VMR9 と有名な Overlay Mixer で可能です。) DXVA はMedia Foundationと統合されており、DXVA パイプラインをMedia Foundation Transforms ( MFT ) として公開できます。デコーダー パイプラインや後処理パイプラインも MFT として公開でき、Media Foundationトポロジ ローダーはこれを使用して完全なメディア再生パイプラインを作成できます。DXVA 1.0 は DXVA 2.0 を使用してエミュレートされます。[1] DXVA 2.0 には COPP DDI が含まれず、保護されたコンテンツにはPVPが使用されます。Windows 7 では、ドライバーがWDDM 1.1 に準拠している場合、 DXVA-HD [6]が実装されます。
DXVA2 実装: ネイティブとコピーバック
DXVA2 実装には、ネイティブとコピーバックの 2 つのバリエーションがあります。
ネイティブ実装では、デコードされたビデオは表示されるまで GPU メモリ内に残ります。ビデオ デコーダーは、中間処理フィルターなしでビデオ レンダラーに接続する必要があります。ビデオ レンダラーは DXVA もサポートする必要があり、レンダラーの選択の自由度が低くなります。
コピーバック実装では、デコードされたビデオが GPU メモリから CPU メモリにコピーされます。この実装には上記の制限はなく、通常のソフトウェア デコーダーと同様に動作しますが、GPU の速度が遅く、メモリを CPU メモリにコピーできない場合は、ビデオの途切れが発生します。
追加のコピーバック操作によってGPUメモリの負荷が増加するため、カスタマイズされた処理が必要でない限り、ネイティブモードが有利です。[7]
ソフトウェア
- Adobe Flash v10.3以降
- ボクシー
- CoreAVC v2.5.0以降[8]
- ダウムポットプレイヤー[9]
- DivX H.264 デコーダー v1.2 以降
- DVDFab メディアプレーヤー 3
- ffdshow-tryoutsリビジョン 3185 以降
- Freemake Video Converter v2.2以降
- コディ
- メディアプレーヤー クラシック ホームシネマ
- メディアポータル
- mpv (DXVA 2.0 のみ)
- Nero マルチメディア スイート(Nero Kwik Media、Nero MediaHub、Nero Showtime)
- プレックス
- パワーDVD
- VLCメディアプレーヤーv1.1以降(DXVA 2.0のみ)[10]
- ウィンDVD
- Windows Media Player v6.4以降[11]
- Windows Media Player 11 ( WMV3のみ)
- Windows Media Player 12
- ハンドブレーキ
参照
- AMD 統合ビデオデコーダー
- 分散コーデックエンジン
- インテル クリアビデオ
- メディア財団
- Nvidia ピュアビデオ
- オープンマックス
- VDPAU
- ビデオ アクセラレーション API
- X-Video ビットストリーム アクセラレーション
- X-ビデオモーション補正
参考文献
- ^ abcde 「DirectX Video Acceleration 2.0」。2007年10月24日閲覧。
- ^ 「DirectX VA の紹介」。2008 年 4 月 23 日時点のオリジナルよりアーカイブ。2007 年 10 月 24 日閲覧。
- ^ 「Microsoft DirectX ビデオ アクセラレーション (DirectX VA) サポート」 。2007年 10 月 24 日閲覧。
- ^ 「DirectX ビデオ アクセラレーション」。2008 年 4 月 8 日時点のオリジナルよりアーカイブ。2007 年 10 月 24 日閲覧。
- ^ ab 「DirectShow の新機能」 。2007年 10 月 24 日閲覧。
- ^ 「DXVA-HD (Windows)」。msdn.microsoft.com 。 2018年4月21日閲覧。
- ^ S, Ganesh T. 「ASRock のハイエンド Vision 3D 252B HTPC レビュー」。anandtech.com。2018年4 月 21 日閲覧。
- ^ 「CoreAVC Changelog | CoreCodec」。2011年7月4日時点のオリジナルよりアーカイブ。2011年4月9日閲覧。
- ^ “Daum tv팟”. tvpot.daum.net . 2017年5月22日時点のオリジナルよりアーカイブ。2018年4月21日閲覧。
- ^ 「VLC GPU デコード - VideoLAN Wiki」。wiki.videolan.org 。 2018年4月21日閲覧。
- ^ 「Windows Media Player でハードウェア アクセラレーションをオフにする方法」。
外部リンク
- DirectX ビデオ アクセラレーション
- DXVAChecker、特定のコンピュータが対応している DXVA モードを一覧表示するユーティリティ
