Share via


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

定義 macroblock 控制數據緩衝區的加密通訊協議類型。 如果未套用加密,此值會DXVA_NoEncrypt。 如果 ConfigBitstreamRaw 為 1,此值必須DXVA_NoEncrypt。

guidConfigResidDiffEncryption

定義剩餘差異譯碼數據緩衝區的加密通訊協定類型, (緩衝區包含空間領域數據或加速器型 IDCT) 轉換定義域係數集。 如果未套用加密,此值會DXVA_NoEncrypt。 如果 ConfigBitstreamRaw 為 1,此值必須DXVA_NoEncrypt。

ConfigBitstreamRaw

指出主機譯碼器是否傳送原始位數據流數據。 如果值為 1,圖片的數據將會以位數據流緩衝區的形式傳送為原始位數據流內容。 如果值為 0,則會使用 macroblock 控件命令緩衝區來傳送圖片數據。 如果 ConfigResidDiffHostConfigResidDiffAccelerator 為 1,此值必須為 0。

ConfigMBcontrolRasterOrder

指定宏區塊控件命令是點陣掃描順序還是任意順序。 如果值為 1,則每個 macroblock 控件命令緩衝區內的 macroblock 控制項命令會以點陣掃描順序排列。 如果值為 0,則順序為任意。 對於某些類型的位數據流,強制點陣順序會大幅增加必須處理的必要宏區塊控件緩衝區數目,或需要主機重新排列控件資訊。 因此,支援任意順序可能會更有效率。

ConfigResidDiffHost

包含主機剩餘差異設定。 如果值為 1,某些剩餘差異譯碼數據可能會傳送為主機空間網域中的區塊。 如果值為 0,將不會傳送空間定義域數據。

ConfigSpatialResid8

指出使用主機型殘差差譯碼時,用來代表預測 (非內部) 圖片的剩餘空間定義域區塊的字大小。

如果 ConfigResidDiffHost 為 1 且 ConfigSpatialResid8 為 1,則主機會使用 8 位帶正負號的樣本,以及預測 (非內部) 圖片中,根據 ConfigIntraResidUnsigned 值的格式傳送非內部宏區塊的剩餘空間域區塊:

  • 如果 ConfigIntraResidUnsigned 為 0,則內部宏區塊的空間定義域區塊會以 8 位帶正負號的整數值傳送,相對於 BPP–1 (BPP–1) 的常數參考值。
  • 如果 ConfigIntraResidUnsigned 為 1,則內部宏區塊的空間定義域區塊會以 8 位無符號整數值的形式傳送,相對於常數參考值為 0。
如果 ConfigResidDiffHost 為 1 且 ConfigSpatialResid8 為 0,則主機會使用 16 位帶正負號的樣本,以及預測 (非內部) 圖片中,根據 ConfigIntraResidUnsigned 值的格式傳送非內部宏區塊數據的剩餘差異空間域區塊:
  • 如果 ConfigIntraResidUnsigned 為 0,則內部宏區塊的空間定義域區塊會以 16 位帶正負號的整數值傳送,相對於 BPP-1) 的常數參考值 2^ (。
  • 如果 ConfigIntraResidUnsigned 為 1,則內部宏區塊的空間定義域區塊會以 16 位無符號整數值的形式傳送,相對於常數參考值為 0。
如果 ConfigResidDiffHost0,ConfigSpatialResid8 必須是 0。

如果是內部圖片,如果每個圖元的位 (BPP) 為 8,而且如果 BPP > 8,則必須使用 8 位樣本傳送空間網域區塊。 如果 ConfigIntraResidUnsigned 為 0,這些範例會傳送為相對於常數參考值 2^ (BPP-1) 的帶正負號整數值,如果 ConfigIntraResidUnsigned 為 1,這些範例會以與常數參考值 0 相對的不帶正負號整數值來傳送。

ConfigResid8Subtraction

如果值為 1,則會減去 8 位差異溢位區塊,而不是新增。 除非 ConfigSpatialResid8 為 1,否則此值必須為 0。

減去差異的能力,而不是新增差異,可讓8位差異譯碼器規格中的完整±255值範圍完全相容, 因為 +255 無法表示為新增兩個帶正負號的8位數位,但範圍±255中的任何數位都可以表示為兩個帶正負號的8位數位之間的差異, (+255 = +127 減 –128) 。

ConfigSpatialHost8or9Clipping

如果值為 1,則內部宏區塊的空間定義域區塊必須裁剪到主機上的 8 位範圍,而非內部宏區塊的空間網域區塊必須裁剪到主機上的 9 位範圍。 如果值為 0,主機就不需要這類裁剪。

除非 ConfigSpatialResid8 為 0,且 ConfigResidDiffHost 為 1,否則此值必須為 0。

ConfigSpatialResidInterleaved

如果值為 1,則任何空間領域剩餘差異數據都必須以符合 YUV 格式的 chrominance 交錯模式形式傳送。 除非 ConfigResidDiffHost 為 1,而且 YUV 格式為 NV12 或 NV21,否則此值必須為 0。

ConfigIntraResidUnsigned

指出使用主機型差異譯碼時,內部區塊之剩餘差異數據的空間定義域區塊表示方法。

如果 ConfigResidDiffHost 為 1 且 ConfigIntraResidUnsigned 為 0,則必須傳送宏區塊的空間網域剩餘差異數據區塊,如下所示:

  • 在非內部圖片中,如果 ConfigSpatialResid8 為 0,則內部宏區塊的空間領域剩餘差異數據區塊會以 16 位帶正負號的整數值傳送,相對於 BPP-1) 的常數參考值 2^ (BPP-1。
  • 在非內部圖片中,如果 ConfigSpatialResid8 為 1,則內部宏區塊的空間定義域剩餘差異數據區塊會以 8 位帶正負號的整數值來傳送,相對於 BPP-1 (BPP-1) 的常數參考值。
  • 在內部圖片中,如果 BPP 為 8,則不論 ConfigSpatialResid8 的值為何,內部宏區塊的空間領域剩餘差異數據區塊都會以 8 位帶正負號的整數值傳送為 2^ (BPP–1) 。
如果 ConfigResidDiffHost 為 1 且 ConfigIntraResidUnsigned 為 1,則必須傳送宏區塊的空間網域剩餘差異數據區塊,如下所示:
  • 在非內部圖片中,如果 ConfigSpatialResid8 為 0,則內部宏區塊的空間定義域剩餘差異數據區塊必須傳送為 16 位無符號整數值,相對於常數參考值為 0。
  • 在非內部圖片中,如果 ConfigSpatialResid8 為 1,則內部宏區塊的空間定義域剩餘差異數據區塊會以 8 位無符號整數值的形式傳送,相對於常數參考值為 0。
  • 在內部圖片中,如果 BPP 為 8,則不論 ConfigSpatialResid8 的值為何,內部宏區塊的空間領域剩餘差異數據區塊都會以 8 位無符號整數值的形式傳送為 0。
除非 ConfigResidDiffHost 為 1,否則成員的值必須是 0。

ConfigResidDiffAccelerator

如果值為 1,可能會從主機傳送係數數據的轉換領域區塊,以進行加速器型 IDCT。 如果值為 0,則不會使用加速器型 IDCT。 如果 ConfigResidDiffHostConfigResidDiffAccelerator 都是 1,這表示將會在主機上完成一些剩餘差異譯碼,有些則會在快捷鍵上完成,如宏區塊層級控制命令所指示。

如果 ConfigBitstreamRaw 為 1,此值必須為 0。

ConfigHostInverseScan

如果值為 1,則會在主機上執行轉換網域區塊處理的反向掃描,並改為針對任何轉換係數傳送絕對索引。 如果值為 0,則會在加速器上執行反向掃描。

如果 ConfigResidDiffAccelerator 為 0 或 Config4GroupedCoefs 為 1,則此值必須為 0。

ConfigSpecificIDCT

如果此值為 1,則會使用在「建議 H.263」的附錄 W 中指定的 IDCT。 如果值為 0,則任何符合規範的 IDCT 都可用於離主機 IDCT。

H.263 附錄不符合 MPEG-2 更正 2 的 IDCT 需求,因此值不得為 1,才能與 MPEG-2 視訊搭配使用。

如果 ConfigResidDiffAccelerator 為 0,則此值必須為 0,表示純主機型剩餘差異譯碼。

Config4GroupedCoefs

如果值為 1,則會使用 DXVA_TCoef4Group 結構來傳送離主機 IDCT 的轉換係數。 如果值為 0,則會使用 DXVA_TCoefSingle 結構。 如果 ConfigResidDiffAccelerator 為 0 或 ConfigHostInverseScan 為 1,則此值必須為 0。

ConfigMinRenderTargetBuffCount

指定譯碼器裝置在任何時間處理多少畫面格。

ConfigDecoderSpecific

包含譯碼器特定的組態資訊。

規格需求

需求
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 [僅限傳統型應用程式]
標頭 dxva2api.h

另請參閱

DirectX 視訊加速 2.0

媒體基礎結構