DXVADDI_CONFIGPICTUREDECODE 構造体 (d3dumddi.h)

DXVADDI_CONFIGPICTUREDECODE構造では、圧縮された画像デコードの構成について説明します。

構文

typedef struct _DXVADDI_CONFIGPICTUREDECODE {
  [in] GUID   guidConfigBitstreamEncryption;
  [in] GUID   guidConfigMBcontrolEncryption;
  [in] GUID   guidConfigResidDiffEncryption;
  [in] UINT   ConfigBitstreamRaw;
  [in] UINT   ConfigMBcontrolRasterOrder;
  [in] UINT   ConfigResidDiffHost;
  [in] UINT   ConfigSpatialResid8;
  [in] UINT   ConfigResid8Subtraction;
  [in] UINT   ConfigSpatialHost8or9Clipping;
  [in] UINT   ConfigSpatialResidInterleaved;
  [in] UINT   ConfigIntraResidUnsigned;
  [in] UINT   ConfigResidDiffAccelerator;
  [in] UINT   ConfigHostInverseScan;
  [in] UINT   ConfigSpecificIDCT;
  [in] UINT   Config4GroupedCoefs;
  [in] USHORT ConfigMinRenderTargetBuffCount;
  [in] USHORT ConfigDecoderSpecific;
} DXVADDI_CONFIGPICTUREDECODE;

メンバー

[in] guidConfigBitstreamEncryption

ビットストリームを構成するための暗号化 GUID。

[in] guidConfigMBcontrolEncryption

マクロ ブロック コントロールを構成するための暗号化 GUID。

[in] guidConfigResidDiffEncryption

残差デコードを構成するための暗号化 GUID。

[in] ConfigBitstreamRaw

ビットストリーム処理インジケーター。 このメンバーの値 1 は、画像データが生のビットストリーム コンテンツとしてビットストリーム バッファーで送信されることを示します。 値 0 は、macroblock コントロール コマンド バッファーを使用して画像データが送信されることを示します。

ConfigResidDiffHost または ConfigResidDiffAccelerator メンバーが 1 の場合、このメンバーを 0 に設定します。 ConfigBitstreamRaw の 0 の値は、サポートの基本レベルです。 1 の値が推奨されます。

[in] ConfigMBcontrolRasterOrder

マクロ ブロック コントロール コマンドがラスター スキャン順か任意の順序かを指定する UINT 値。 このメンバーの値 1 は、各 macroblock コントロール コマンド バッファー内の macroblock コントロール コマンドがラスター スキャン順であることを指定します。 0 の値は、任意の順序を示します。 ドライバーは、ラスター スキャン順序のサポートを制限できます。ただし、ドライバーでは、任意のスキャン順序とラスター スキャン順序の両方をサポートする必要があります。

[in] ConfigResidDiffHost

ホスト残差の構成。 このメンバーの値 1 は、残差デコード データがホストから空間ドメインのブロックとして送信される可能性があることを指定します。 値 0 は、空間ドメイン データが送信されないことを指定します。 ConfigBitstreamRaw メンバーが 1 の場合、このメンバーを 0 に設定します。 アクセラレータは 0 と 1 の両方をサポートする必要があります。

[in] ConfigSpatialResid8

ホストベースの残差デコードを使用する場合 ( ConfigResidDiffHost メンバーが 1 に設定されている場合) に、予測された (非イントラ) 画像の残差空間ドメイン ブロックを表すために使用される単語サイズ。

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

  • ConfigIntraResidUnsigned が 0 の場合、マクロブロック内の空間ドメイン ブロックは、定数参照値 128 を基準とする 8 ビット符号付き整数値として送信されます。

  • ConfigIntraResidUnsigned が 1 の場合、マクロブロック内の空間ドメイン ブロックは、0 の定数参照値を基準とする 8 ビット符号なし整数値として送信されます。

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

  • ConfigIntraResidUnsigned が 0 の場合、マクロブロック内の空間ドメイン ブロックは、2^(BPP-1) の定数参照値を基準とする 16 ビット符号付き整数値として送信されます。ここで、BPP は非圧縮ビデオのサンプルあたりのビット数 (通常は値 8) です。

  • ConfigIntraResidUnsigned が 1 の場合、マクロブロック内の空間ドメイン ブロックは、定数参照値 0 を基準にした 16 ビット符号なし整数値として送信されます。

ConfigResidDiffHost が 0 の場合、ConfigSpatialResid8 は 0 である必要があります。 ConfigResidDiffHost が 1 の場合、ConfigSpatialResid8 には任意の値を指定できます。

注意

BPP が 8 に等しい画像内では、8 ビット サンプルを使用して空間ドメイン ブロックを送信する必要があります。 BPP が 8 より大きい画像内では、16 ビット サンプルを使用して空間ドメイン ブロックを送信する必要があります。 ConfigIntraResidUnsigned が 0 の場合、これらのサンプルは、2^(BPP-1) の定数参照値を基準とする符号付き整数値として送信されます。 ConfigIntraResidUnsigned が 1 の場合、これらのサンプルは、0 の定数参照値を基準とする符号なし整数値として送信されます。

[in] ConfigResid8Subtraction

8 ビット差分オーバーフロー ブロックを減算するか加算するかを指定する UINT 値。 このメンバーが 1 に設定されている場合、8 ビット差分オーバーフロー ブロックは加算ではなく減算されます。 ConfigSpatialResid8 が 1 でない限り、このメンバーは 0 である必要があります。 ConfigSpatialResid8 が 1 の場合、ConfigResid8Subtraction の推奨値は 1 です。 差分を加算するのではなく減算する機能により、8 ビット差分デコードは、ビデオ デコーダー仕様で必要な -255 ~ +255 の値の範囲に完全に準拠できます。 2 つの符号付き 8 ビット数値の加算として +255 を表すことはできませんが、-255 ~ +255 の範囲の任意の数値を 2 つの符号付き 8 ビット数値の差として表すことができるため、この機能により完全なコンプライアンスが可能になります (+255 は +127 から -128 を引いた値に等しくなります)。

[in] ConfigSpatialHost8or9Clipping

クリッピングがホストによって実行されるかどうかを指定する UINT 値。 このメンバーが 1 に設定されている場合、マクロブロック内の空間ドメイン ブロックはホスト上の 8 ビット範囲にクリップされ、nonintra マクロブロックの場合は空間ドメイン ブロックがホスト上の 9 ビット範囲にクリップされます。 値 0 は、ホストによってこのようなクリッピングが実行されていないことを示します。 ConfigSpatialResid8 が 0 に設定され、ConfigResidDiffHost が 1 に設定されていない限り、このメンバーは 0 である必要があります。 ConfigSpatialHost8or9Clipping の推奨値は 0 です。

[in] ConfigSpatialResidInterleaved

空間ドメイン残差データをクロミナンスインターリーブ形式で送信するかどうかを指定する UINT 値。 このメンバーが 1 に設定されている場合、空間ドメイン残差データは、YUV 形式のクロミナンス インターリーブ パターンに一致するクロミナンス インターリーブ形式で送信されます。 ConfigResidDiffHost が 1 で YUV 形式が NV12 または NV21 でない限り、このメンバーは 0 である必要があります。 ConfigSpatialResidInterleaved の推奨値は 0 です。

[in] ConfigIntraResidUnsigned

ホストベースの差分デコードを使用する場合 (つまり、 ConfigResidDiffHost メンバーが 1 と等しい場合) に対する、イントラ ブロックの残差データの空間ドメイン ブロックの表現方法。

ConfigIntraResidUnsigned がゼロに設定され、ConfigResidDiffHost が 1 に設定されている場合、マクロブロック内の空間ドメイン残差データ ブロックは次のように送信されます。

  • ConfigSpatialResid8 メンバーが 0 の場合、非トラ図では、マクロブロック内の空間ドメイン残差データ ブロックは、2^(BPP-1) の定数参照値を基準とする 16 ビット符号付き整数値として送信されます。ここで、BPP は圧縮されていないビデオのサンプルあたりのビット数 (通常は 8) です。

  • ConfigSpatialResid8 が 1 の場合は nonintra 図で、BPP が 8 に等しい場合は内部図で (ConfigSpatialResid8 の値に関係なく)、マクロブロック内の空間ドメイン残差データ ブロックは、定数参照値 128 に対して相対的な 8 ビット符号付き整数値として送信されます。

ConfigIntraResidUnsigned が 1 に設定され、ConfigResidDiffHost が 1 に設定されている場合、マクロブロック内の空間ドメイン残差データ ブロックは次のように送信されます。

  • ConfigSpatialResid8 が 0 の場合、nonintra 画像では、マクロブロック内の空間ドメイン残差データ ブロックは、0 の定数参照値に対して相対的な 16 ビット符号なし整数値として送信されます。

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

ConfigResidDiffHost が 1 でない限り、ConfigIntraResidUnsigned は 0 である必要があります。 ConfigIntraResidUnsigned の推奨値は 0 です。

[in] ConfigResidDiffAccelerator

アクセラレータの残差の構成。 このメンバーの値 1 は、係数データの変換ドメイン ブロックをアクセラレータ ベースの IDCT 用にホストから送信できることを示します。 値 0 は、アクセラレータ ベースの IDCT が使用されていないことを示します。

ConfigResidDiffHost メンバーと ConfigResidDiffAccelerator の両方が 1 の場合は、マクロブロック レベルの制御コマンドで示されているように、ホストとアクセラレータで一部の残差デコードが実行されます。 bConfigBitstreamRaw メンバーが 1 の場合、ConfigResidDiffAccelerator は 0 である必要があります。

ConfigResidDiffAccelerator の推奨値は 1 です。

ConfigResidDiffAcceleratorConfigResidDiffHost が 1 に設定されている場合、残差デコードはマクロブロックベースでホストとアクセラレータの間で共有できます。 この共有は、 ConfigResidDiffAccelerator が 1 に設定され、 ConfigResidDiffHost が 0 に設定されている場合よりも高いレベルのアクセラレータ機能です。

[in] ConfigHostInverseScan

変換ドメイン ブロック処理の逆スキャンをホストまたはアクセラレータで実行するかどうかを指定する UINT 値。 このメンバーの値 1 は、変換ドメイン ブロック処理の逆スキャンがホストで実行され、変換係数の代わりに絶対インデックスが送信されることを示します。 0 の値は、アクセラレータで逆スキャンが実行されることを示します。 ConfigResidDiffAccelerator が 0 の場合、または Config4GroupedCoefs メンバーが 1 の場合、ConfigHostInverseScan は 0 である必要があります。

ConfigResidDiffAccelerator が 1 の場合、ConfigHostInverseScan の推奨値は 1 です。

[in] ConfigSpecificIDCT

オフホスト IDCT に対する特定の IDCT メソッドの使用を指定する UINT 値。 このメンバーの値 1 は、 国際電気通信連合 の Web サイトから学習できる ITU-T レコメンデーション H.263 の付録 W で指定されている IDCT の使用を示します。 値 0 は、準拠している IDCT をオフホスト IDCT に使用できることを示します。 (0 と 1 以外の値は予約されています)。

ConfigResidDiffAccelerator が 0 の場合、ConfigSpecificIDCT は 0 である必要があります。これは、ホストベースの残差デコードを示します。

注意

MPEG-2 ビデオで使用するには、ConfigSpecificIDCT を 1 に設定しないでください。

[in] Config4GroupedCoefs

オフホスト IDCT の変換係数を送信する方法を指定する UINT 値。 このメンバーの値 1 は、オフホスト IDCT の変換係数が、DXVA_TCoefSingle構造体ではなく、DXVA_TCoef4Group構造体を使用して送信されることを示します。 ConfigResidDiffAccelerator が 0 の場合、または ConfigHostInverseScan が 1 の場合、Config4GroupedCoefs は 0 です。

ConfigResidDiffAccelerator が 1 の場合、Config4GroupedCoefs の推奨値は 0 です。

[in] ConfigMinRenderTargetBuffCount

レンダー ターゲット バッファーの最小数を指定する USHORT 値。

[in] ConfigDecoderSpecific

構成するデコーダー固有の機能を指定する USHORT 値。 デコーダーの機能については、そのデコーダーの仕様を参照してください。 デコーダーの一覧については、「 ビデオ デコードの機能の提供」を参照してください。

要件

要件
サポートされている最小のクライアント Windows Vista 以降のバージョンの Windows オペレーティング システムで使用できます。
Header d3dumddi.h (D3dumddi.h を含む)

こちらもご覧ください

D3DDDIARG_GETCAPS

D3DDDICAPS_TYPE

GetCaps