DXVA2_ConfigPictureDecode構造体 (dxva2api.h)
DXVA デコーダー デバイスの構成について説明します。
構文
typedef struct _DXVA2_ConfigPictureDecode {
GUID guidConfigBitstreamEncryption;
GUID guidConfigMBcontrolEncryption;
GUID guidConfigResidDiffEncryption;
UINT ConfigBitstreamRaw;
UINT ConfigMBcontrolRasterOrder;
UINT ConfigResidDiffHost;
UINT ConfigSpatialResid8;
UINT ConfigResid8Subtraction;
UINT ConfigSpatialHost8or9Clipping;
UINT ConfigSpatialResidInterleaved;
UINT ConfigIntraResidUnsigned;
UINT ConfigResidDiffAccelerator;
UINT ConfigHostInverseScan;
UINT ConfigSpecificIDCT;
UINT Config4GroupedCoefs;
USHORT ConfigMinRenderTargetBuffCount;
USHORT ConfigDecoderSpecific;
} DXVA2_ConfigPictureDecode;
メンバー
guidConfigBitstreamEncryption
ビット ストリーム データ バッファーの暗号化プロトコルの種類を定義します。 暗号化が適用されていない場合、値はDXVA_NoEncrypt。 ConfigBitstreamRaw が 0 の場合、値はDXVA_NoEncryptする必要があります。
guidConfigMBcontrolEncryption
マクロブロック制御データ バッファーの暗号化プロトコルの種類を定義します。 暗号化が適用されていない場合、値はDXVA_NoEncrypt。 ConfigBitstreamRaw が 1 の場合、値はDXVA_NoEncryptする必要があります。
guidConfigResidDiffEncryption
データ バッファーをデコードする残差の暗号化プロトコルの種類を定義します (空間ドメイン データを含むバッファー、またはアクセラレータ ベースの IDCT の変換ドメイン係数のセット)。 暗号化が適用されていない場合、値はDXVA_NoEncrypt。 ConfigBitstreamRaw が 1 の場合、値はDXVA_NoEncryptする必要があります。
ConfigBitstreamRaw
ホスト デコーダーが生のビット ストリーム データを送信するかどうかを示します。 値が 1 の場合、画像のデータは生のビット ストリーム コンテンツとしてビット ストリーム バッファーに送信されます。 値が 0 の場合、図データは macroblock 制御コマンド バッファーを使用して送信されます。 ConfigResidDiffHost または ConfigResidDiffAccelerator のいずれかが 1 の場合、値は 0 である必要があります。
ConfigMBcontrolRasterOrder
マクロ ブロック コントロール コマンドがラスター スキャン順か、または任意の順序で実行されるかを指定します。 値が 1 の場合、各 macroblock コントロール コマンド バッファー内のマクロブロック 制御コマンドはラスター スキャン順になります。 値が 0 の場合、順序は任意です。 一部の種類のビット ストリームでは、ラスターの順序を強制すると、処理する必要があるマクロブロック コントロール バッファーの数が大幅に増えるか、コントロール情報のホストの並べ替えが必要になります。 したがって、任意の順序をサポートする方が効率的です。
ConfigResidDiffHost
ホスト残差の構成が含まれます。 値が 1 の場合、残差デコード データがホストから空間ドメインのブロックとして送信される場合があります。 値が 0 の場合、空間ドメイン データは送信されません。
ConfigSpatialResid8
ホストベースの残差デコードを使用する場合に、予測された (非イントラ) 画像の残差空間ドメイン ブロックを表すために使用される単語サイズを示します。
ConfigResidDiffHost が 1 で ConfigSpatialResid8 が 1 の場合、ホストは、ConfigIntraResidUnsigned の値に依存する形式で、8 ビット符号付きサンプルを使用して、および予測された (非イントラ) 画像内のマクロ ブロックに対して、非イントラ マクロブロックの残差空間ドメイン ブロックを送信します。
- ConfigIntraResidUnsigned が 0 の場合、マクロブロック内の空間ドメイン ブロックは、2^(BPP-1) の定数参照値に対して 8 ビット符号付き整数値として送信されます。
- ConfigIntraResidUnsigned が 1 の場合、マクロブロック内の空間ドメイン ブロックは、定数参照値 0 に対して 8 ビット符号なし整数値として送信されます。
- ConfigIntraResidUnsigned が 0 の場合、マクロブロック内の空間ドメイン ブロックは、定数参照値 2^(BPP-1) に対して 16 ビット符号付き整数値として送信されます。
- ConfigIntraResidUnsigned が 1 の場合、マクロブロック内の空間ドメイン ブロックは、定数参照値 0 に対して 16 ビット符号なし整数値として送信されます。
画像内では、ピクセルあたりのビット数 (BPP) が 8 の場合は 8 ビット サンプルを使用し、BPP 8 の場合 > は 16 ビット サンプルを使用して空間ドメイン ブロックを送信する必要があります。 ConfigIntraResidUnsigned が 0 の場合、これらのサンプルは定数参照値 2^(BPP-1) に対して符号付き整数値として送信され、ConfigIntraResidUnsigned が 1 の場合、これらのサンプルは定数参照値 0 に対して符号なし整数値として送信されます。
ConfigResid8Subtraction
値が 1 の場合、8 ビット差分オーバーフロー ブロックは加算ではなく減算されます。 ConfigSpatialResid8 が 1 でない限り、値は 0 である必要があります。
差分を加算するのではなく減算する機能により、8 ビット差分デコードは、ビデオ デコーダーの仕様で必要な値の完全な±255 範囲に完全に準拠できます。 2 つの符号付き 8 ビット数値の加算として +255 を表すことはできませんが、±255 の範囲内の任意の数値は、2 つの符号付き 8 ビット数値の差として表すことができます (+255 = +127 - -128)。
ConfigSpatialHost8or9Clipping
値が 1 の場合、マクロブロック内の空間ドメイン ブロックをホスト上の 8 ビット範囲にクリップし、非イントラ マクロブロックの空間ドメイン ブロックをホスト上の 9 ビット範囲にクリップする必要があります。 値が 0 の場合、ホストでこのようなクリッピングは必要ありません。
ConfigSpatialResid8 が 0 で ConfigResidDiffHost が 1 でない限り、値は 0 である必要があります。
ConfigSpatialResidInterleaved
値が 1 の場合、空間ドメイン残差データは、YUV 形式のクロミナンス インターリーブ パターンに一致するクロミナンス インターリーブ形式で送信する必要があります。 ConfigResidDiffHost が 1 で、YUV 形式が NV12 または NV21 でない限り、値は 0 である必要があります。
ConfigIntraResidUnsigned
ホストベースの差分デコードを使用する場合の、イントラ ブロックの残差データの空間ドメイン ブロックの表現方法を示します。
ConfigResidDiffHost が 1 で ConfigIntraResidUnsigned が 0 の場合、マクロブロック内の空間ドメイン残差データ ブロックは次のように送信する必要があります。
- 非イントラ図では、 ConfigSpatialResid8 が 0 の場合、マクロブロック内の空間ドメイン残差データ ブロックは、定数参照値 2^(BPP-1) に対して 16 ビット符号付き整数値として送信されます。
- 非イントラ図では、 ConfigSpatialResid8 が 1 の場合、マクロブロック内の空間ドメイン残差データ ブロックは、定数参照値 2^(BPP-1) に対して 8 ビット符号付き整数値として送信されます。
- 画像内では、BPP が 8 の場合、 ConfigSpatialResid8 の値に関係なく、マクロブロック内の空間ドメイン残差データ ブロックは、定数参照値 2^(BPP-1) に対して 8 ビット符号付き整数値として送信されます。
- 非イントラ図では、 ConfigSpatialResid8 が 0 の場合、マクロブロック内の空間ドメイン残差データ ブロックは、定数参照値 0 に対して 16 ビット符号なし整数値として送信する必要があります。
- 非イントラ図では、 ConfigSpatialResid8 が 1 の場合、マクロブロック内の空間ドメイン残差データ ブロックは、定数参照値 0 に対して 8 ビット符号なし整数値として送信されます。
- 画像内では、BPP が 8 の場合、 ConfigSpatialResid8 の値に関係なく、マクロブロック内の空間ドメイン残差データ ブロックは、定数参照値 0 に対して 8 ビット符号なし整数値として送信されます。
ConfigResidDiffAccelerator
値が 1 の場合、係数データの変換ドメイン ブロックは、アクセラレータ ベースの IDCT 用にホストから送信される可能性があります。 値が 0 の場合、アクセラレータ ベースの IDCT は使用されません。 ConfigResidDiffHost と ConfigResidDiffAccelerator の両方が 1 の場合、これは、マクロブロック レベルの制御コマンドで示されているように、ホストとアクセラレータで一部の残差デコードが行われることを示します。
ConfigBitstreamRaw が 1 の場合、値は 0 である必要があります。
ConfigHostInverseScan
値が 1 の場合、変換ドメイン ブロック処理の逆スキャンがホストで実行され、変換係数の代わりに絶対インデックスが送信されます。 値が 0 の場合、アクセラレータで逆スキャンが実行されます。
ConfigResidDiffAccelerator が 0 の場合、または Config4GroupedCoefs が 1 の場合、値は 0 である必要があります。
ConfigSpecificIDCT
値が 1 の場合、ITU-T レコメンデーション H.263 の Annex W で指定された IDCT が使用されます。 値が 0 の場合は、準拠している IDCT をオフホスト IDCT に使用できます。
H.263 付属文書は MPEG-2 corrigendum 2 の IDCT 要件に準拠していないため、MPEG-2 ビデオで使用する場合、値を 1 にすることはできません。
ConfigResidDiffAccelerator が 0 の場合、値は 0 である必要があります。これは、純粋にホストベースの残差デコードを示します。
Config4GroupedCoefs
値が 1 の場合、オフホスト IDCT の変換係数は 、DXVA_TCoef4Group 構造体を使用して送信されます。 値が 0 の場合は、 DXVA_TCoefSingle 構造体が使用されます。 ConfigResidDiffAccelerator が 0 の場合、または ConfigHostInverseScan が 1 の場合、値は 0 である必要があります。
ConfigMinRenderTargetBuffCount
デコーダー デバイスが一度に処理するフレームの数を指定します。
ConfigDecoderSpecific
デコーダー固有の構成情報が含まれます。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2008 [デスクトップ アプリのみ] |
Header | dxva2api.h |