ニュース

Microsoft、「DirectX 12」の新しいビデオエンコードAPIを発表

Windows 11に標準で含まれる

公式ブログ「DirectX Developer Blog」

 米Microsoftは12月8日(現地時間)、「DirectX 12」の新しいVideo Encode APIを発表した。「Direct3D 12」(D3D12)のビデオAPIファミリーを拡張し、GPUアクセラレーションを用いたエンコード処理を行うための一貫したインターフェイスを開発者に提供する。

 APIの利用方法は既存の「DirectX 12」ビデオ機能とほぼ同じで、大まかな手順は以下の通りとなる。現在利用可能なコーデックはH264とHEVCだが、各コーデックとそのエンコードツールの具体的なサポート状況はドライバー次第となるため、APIによる事前のチェックが必要だ。

  1. ID3D12VideoDevice::CheckFeatureSupportを呼び出し、DirectX12ビデオエンコード操作のサポート詳細を確認
  2. ID3D12VideoDevice::CreateVideoEncoderを呼び出して、エンコードセッションの状態を保持するID3D12VideoEncoderインターフェースのインスタンスを作成
  3. ID3D12VideoDevice::CreateVideoEncoderHeapを呼び出して、ID3D12VideoEncoderHeapインターフェイスのインスタンスを作成
  4. フレームのエンコード処理を行う。ID3D12Resourceテクスチャで表されるそれぞれのビデオフレームをID3D12Resourceバッファーへ圧縮

 Video Encode APIはWindows 11に標準で含まれる。また、「DirectX 12 Agility SDK」(v1.700.10-preview以降)で「Windows 10 バージョン 1909」以降に追加することも可能。AMD、Intel、NVIDIA各社のGPUで利用可能だ。

現在利用可能なコーデックはH264とHEVCだが、各コーデックとそのエンコードツールの具体的なサポート状況はドライバー次第