次の方法で共有


D3D11_1DDI_VIDEO_DECODER_CONFIG構造体 (d3d10umddi.h)

Microsoft DirectX ビデオ アクセラレーション (DXVA) 用の Microsoft Direct3D 11 デコーダー デバイスの構成について説明します。

構文

typedef struct D3D11_1DDI_VIDEO_DECODER_CONFIG {
  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;
} D3D11_1DDI_VIDEO_DECODER_CONFIG;

メンバーズ

guidConfigBitstreamEncryption

ビット ストリーム データ バッファーの暗号化プロトコルの種類を定義します。 暗号化が適用されていない場合、値は DXVA_NoEncrypt されます (Dxva.h で定義されている GUID 名)。 ConfigBitstreamRaw 0 の場合、値は DXVA_NoEncryptする必要があります。

D3DWDDM2_0DDI_DECODER_ENCRYPTION_HW_CENCに設定すると、次のパラメーターが VideoDecoderBeginFrame 呼び出しに渡されることを示します。

値の 意味
pContentKey する フレームの暗号化解除に使用する CryptoSession とキー情報を示す、D3DWDDM2_0DDI_VIDEO_DECODER_BEGIN_FRAME_CRYPTO_SESSION 構造体へのポインター。
ContentKeySize D3DWDDM2_0DDI_VIDEO_DECODER_BEGIN_FRAME_CRYPTO_SESSION 構造体のサイズに設定します。

guidConfigMBcontrolEncryption

マクロ ブロック制御データ バッファーの暗号化プロトコルの種類を定義します。 暗号化が適用されていない場合、値は DXVA_NoEncrypt されます (Dxva.h で定義されている GUID 名)。 ConfigBitstreamRaw 1 の場合、値は DXVA_NoEncryptする必要があります。

guidConfigResidDiffEncryption

データ バッファーをデコードする残差の暗号化プロトコルの種類を定義します (アクセラレータ ベースの逆離散コサイン変換 [IDCT] の空間ドメイン データまたは変換ドメイン係数のセットを含むバッファー)。 暗号化が適用されていない場合、値は DXVA_NoEncrypt されます (Dxva.h で定義されている GUID 名)。 ConfigBitstreamRaw 1 の場合、値は DXVA_NoEncryptする必要があります。

ConfigBitstreamRaw

ホスト デコーダーが生のビット ストリーム データを送信するかどうかを示します。 値が 1 の場合、画像のデータは生のビット ストリーム コンテンツとしてビット ストリーム バッファーに送信されます。 値が 0 の場合、図データは macroblock コントロール コマンド バッファーを使用して送信されます。 ConfigResidDiffHost または ConfigResidDiffAccelerator が 1 の場合、値は 0 である必要があります。

ConfigMBcontrolRasterOrder

マクロ ブロック 制御コマンドをラスター スキャン順にするか、任意の順序で実行するかを指定します。 値が 1 の場合、各マクロ ブロック コントロール コマンド バッファー内のマクロ ブロック 制御コマンドはラスター スキャン順になります。 値が 0 の場合、順序は任意です。 ビット ストリームの種類によっては、ラスターの順序を強制すると、処理する必要があるマクロ ブロック コントロール バッファーの数が大幅に増えるか、コントロール情報のホストの並べ替えが必要になります。 したがって、任意の順序をサポートする方が効率的です。

ConfigResidDiffHost

ホスト残差の構成が含まれています。 値が 1 の場合、一部の残差デコード データがホストから空間ドメインのブロックとして送信される可能性があります。 値が 0 の場合、空間ドメイン データは送信されません。

ConfigSpatialResid8

ホストベースの残差デコードを使用する場合に、予測された (非内部) 画像の残差空間ドメイン ブロックを表すために使用される単語サイズを示します。

ConfigResidDiffHost が 1 で、ConfigSpatialResid8 が 1 場合、ホストは、8 ビット符号付きサンプルを使用する非内部マクロブロックと、ConfigIntraResidUnsigned の値に依存する形式で予測された (非内部) 画像のマクロブロック内の残差空間ドメイン ブロック送信します。

  • ConfigIntraResidUnsigned 0 の場合、マクロ ブロック内の空間ドメイン ブロックは、定数参照値 2^(BPP-1) に対して 8 ビット符号付き整数値として送信されます。
  • ConfigIntraResidUnsigned が 1 の場合、マクロ ブロック内の空間ドメイン ブロックは、定数参照値 0 に対して 8 ビット符号なし整数値として送信されます。

ConfigResidDiffHost が 1 で、ConfigSpatialResid8 が 0 場合、ホストは、16 ビットの符号付きサンプルを使用して非内部マクロブロックのデータの残留差空間ドメイン ブロックを送信し、予測された (非内部) 画像内のマクロブロック内のデータ ConfigIntraResidUnsignedの値に依存する形式で送信します。

  • ConfigIntraResidUnsigned が 0 の場合、マクロ ブロック内の空間ドメイン ブロックは、定数参照値 2^(BPP-1) に対して 16 ビット符号付き整数値として送信されます。
  • ConfigIntraResidUnsigned が 1 の場合、マクロ ブロック内の空間ドメイン ブロックは、定数参照値 0 に対して 16 ビット符号なし整数値として送信されます。
  • ConfigResidDiffHost 0 の場合、ConfigSpatialResid8 は 0 である必要があります。

画像内では、空間ドメイン ブロックは、ピクセルあたりのビット数 (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 ビット符号付き整数値として送信されます。

ConfigResidDiffHost が 1 で、ConfigIntraResidUnsigned が 1 の場合、マクロブロック内の空間ドメイン残差データ ブロックは次のように送信する必要があります。

  • 非内部図では、ConfigSpatialResid8 が 0 の場合、マクロブロック内の空間ドメイン残差データ ブロックは、定数参照値 0 に対して 16 ビット符号なし整数値として送信する必要があります。
  • 非内部図では、ConfigSpatialResid8 が 1 の場合、マクロブロック内の空間ドメイン残差データ ブロックは、定数参照値 0 に対して 8 ビット符号なし整数値として送信されます。
  • 図内では、BPP が 8 の場合、ConfigSpatialResid8 の値に関係なく、マクロ ブロック内の空間ドメイン残差データ ブロックは、定数参照値 0 に対して 8 ビット符号なし整数値として送信されます。

ConfigResidDiffHost が 1 でない限り、メンバーの値は 0 である必要があります。

ConfigResidDiffAccelerator

値が 1 の場合、係数データの変換ドメイン ブロックは、アクセラレータ ベースの IDCT 用にホストから送信される可能性があります。 値が 0 の場合、アクセラレータ ベースの IDCT は使用されません。 ConfigResidDiffHost と ConfigResidDiffAccelerator の両方が 1 の場合、これは、マクロブロック レベルの制御コマンドで示されているように、ホストとアクセラレータ上の一部の残差デコードが行われることを示します。

ConfigBitstreamRaw 1 の場合、値は 0 にする必要があります。

ConfigHostInverseScan

値が 1 の場合、transform-domain ブロック処理の逆スキャンがホストで実行され、変換係数の代わりに絶対インデックスが送信されます。 値が 0 の場合、アクセラレータで逆スキャンが実行されます。

ConfigResidDiffAccelerator が 0 の場合、または Config4GroupedCoefs が 1 の場合は、値を 0 にする必要があります。

ConfigSpecificIDCT

値が 1 の場合、ITU-T 推奨 H.263 の付属書 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 8
サポートされる最小サーバー Windows Server 2012
ヘッダー d3d10umddi.h (D3d10umddi.h を含む)

関連項目

D3DWDDM2_0DDI_VIDEO_DECODER_BEGIN_FRAME_CRYPTO_SESSION

DXVA_TCoef4Group

DXVA_TCoefSingle