Share via


D3D12_VIDEO_DECODE_TIER列挙 (d3d12video.h)

アプリケーション定義のテクスチャとバッファーの必要な形式を決定するハードウェア ビデオ デコーダーのデコード層を指定します。

構文

typedef enum D3D12_VIDEO_DECODE_TIER {
  D3D12_VIDEO_DECODE_TIER_NOT_SUPPORTED,
  D3D12_VIDEO_DECODE_TIER_1,
  D3D12_VIDEO_DECODE_TIER_2,
  D3D12_VIDEO_DECODE_TIER_3
} ;

定数

 
D3D12_VIDEO_DECODE_TIER_NOT_SUPPORTED
ビデオデコードはサポートされていません。
D3D12_VIDEO_DECODE_TIER_1
階層 1 では、ハードウェア デコーダーでは、アプリケーションが参照テクスチャをテクスチャ配列として割り当てる必要があります。 これは、ハードウェアが個々の画像バッファーのフル サイズ ポインターをサポートしていないため、アドレス空間でテクスチャが "閉じる" ハードウェア要件に対応するためです。 代わりに、1 つのポインターと、より制限されたビット オフセットがあります。 テクスチャ配列の詳細については、「 Direct3D 11 のテクスチャの概要」を参照してください。

デコーダー ハードウェアで、他のエンジンまたは別のビデオ操作での操作でサポートされていない一意のメモリ レイアウトが必要な場合、デコーダーは、プロファイルのサポートを照会するときに 、D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT 構造体に D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED 構成フラグを設定する可能性があります。 このフラグは、アプリケーションが D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY フラグを使用して参照を割り当てる必要があることを示します。 出力が将来の参照フレームとして必要な場合、アプリケーションは D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS 構造体を使用して参照専用の出力を設定する必要があります。 ID3D12VideoCommandList::D ecodeFrame に渡される出力フレームは、パイプラインの他の部分で使用できる D3D12 リソースであり、D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY フラグを持つ必要はありません。

#### 圧縮入力バッファーの階層 1 の要件
- 特定のフレームのすべてのスライスは順番に配置する必要があり、連続している必要があります。つまり、スライス間にギャップがない必要があります。 スライス コントロール バッファーでは、この要件を満たすオフセットパラメーターとサイズ パラメーターを指定する必要があります。
- 最初のスライスは、128 バイト境界で開始する必要があります。 D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM構造体のオフセット セットは、128 バイトの倍数である必要があります。
- デコードは、 D3D12_MEMORY_POOL_L0で割り当てられたバッファーからサポートされます。 これは常にシステム メモリですが、それでも D3D12 バッファーです。
- デコードは、D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLEで割り当てられたバッファーを含め、既定のプールである D3D12_MEMORY_POOL_L1 で割り当てられたバッファーからサポートされます。
D3D12_VIDEO_DECODE_TIER_2
デコード層 2 では、テクスチャをテクスチャ配列として、または個別のテクスチャ 2D リソースの配列として参照できます (配列サイズが 1 の各リソース)。 これは呼び出し元にとって柔軟性が高く、テクスチャ配列は 1 つのユニットとしてのみ割り当ておよび割り当て解除できますが、個別のテクスチャ 2D リソースを個別に割り当ておよび割り当て解除できるため、ストリーミング ビデオなどで解像度が頻繁に変化するシナリオで重要です。

デコード ハードウェアで、他のエンジンまたは別のビデオ操作での操作でサポートされていない一意のタイリング形式が必要な場合、デコーダーは、プロファイルのサポートに対してクエリを実行したときに 、D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT 構造に D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED 構成フラグを設定する場合があります。 このフラグは、アプリケーションが D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY フラグを使用して参照を割り当てる必要があることを示します。 アプリケーションでは 、D3D12_VIDEO_DECODE_CONVERSION_ARGUMENTS 構造体を使用して、出力が将来の参照フレームとして必要な場合にのみ参照出力を設定する必要があります。 ID3D12VideoCommandList::D ecodeFrame に渡される出力フレームは、パイプラインの他の部分で使用できる D3D12 リソースであり、D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY フラグを持つ必要はありません。

#### 圧縮入力バッファーの階層 2 の要件

これらの要件は、レベル 1 の要件と同じです。

- 特定のフレームのすべてのスライスは順番に配置する必要があり、連続している必要があります。つまり、スライス間にギャップがない必要があります。 スライス コントロール バッファーでは、この要件を満たすオフセットパラメーターとサイズ パラメーターを指定する必要があります。
- 最初のスライスは、128 バイト境界で開始する必要があります。 D3D12_VIDEO_DECODE_COMPRESSED_BITSTREAM構造体のオフセット セットは、128 バイトの倍数である必要があります。
- デコードは、 D3D12_MEMORY_POOL_L0で割り当てられたバッファーからサポートされます。 これは常にシステム メモリですが、それでも D3D12 バッファーです。
- デコードは、D3D12_CPU_PAGE_PROPERTY_NOT_AVAILABLEで割り当てられたバッファーを含め、既定のプールである D3D12_MEMORY_POOL_L1 で割り当てられたバッファーからサポートされます。
-
D3D12_VIDEO_DECODE_TIER_3
このフィールドは予約されています。

要件

要件
Header d3d12video.h