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

用於設定 macroblock 控制件的加密 GUID。

[in] guidConfigResidDiffEncryption

用於設定剩餘差異譯碼的加密 GUID。

[in] ConfigBitstreamRaw

位數據流處理指標。 這個成員中的值 1 表示圖片數據是以原始位數據流內容的形式傳送在位數據流緩衝區中。 值為零表示使用macroblock控制項命令緩衝區傳送圖片數據。

如果 ConfigResidDiffHostConfigResidDiffAccelerator 成員為 1,請將此成員設定為零。 ConfigBitstreamRaw 中的值為零是基本層級的支援。 建議使用1的值。

[in] ConfigMBcontrolRasterOrder

UINT 值,指定 macroblock 控制項命令是點陣掃描順序還是任意順序。 這個成員中的值為 1,指定每個 macroblock 控件命令緩衝區內的 macroblock 控制項命令都是以點陣掃描順序排列。 值為零表示任意順序。 驅動程式可以限制點陣掃描順序的支援;不過,驅動程式應該同時支援任意和點陣掃描順序。

[in] ConfigResidDiffHost

主機剩餘差異設定。 這個成員中的值為 1,指定某些剩餘差異譯碼數據可能會傳送為主機空間網域中的區塊。 值為零,指定不會傳送空間定義域數據。 如果 ConfigBitstreamRaw 成員為 1,請將此成員設定為零。 加速器應該同時支援零和 1。

[in] ConfigSpatialResid8

ConfigResidDiffHost 成員設定為 1) 時,用於代表預測 (非) 圖片的剩餘 (差異) 圖片的文字大小。

如果 ConfigSpatialResid8 為 1 且 ConfigResidDiffHost 為 1,則主機會針對使用 8 位帶正負號樣本的非intra 宏區塊傳送剩餘差異空間網域區塊,並在預測 (nonintra) 圖片中,以相依於 ConfigIntraResidUnsigned 成員的格式傳送剩餘差異空間網域區塊,如下所示:

  • 如果 ConfigIntraResidUnsigned 為零,則會以相對於常數參考值為 128 的 8 位帶正負號整數值傳送內部宏區塊的空間定義域區塊。

  • 如果 ConfigIntraResidUnsigned 為 1,則內部宏區塊的空間定義域區塊會以相對於零常數參考值的 8 位無符號整數值傳送。

如果 ConfigSpatialResid8 為零,且 ConfigResidDiffHost 為 1,則主機會針對使用 16 位帶正負號樣本的非 intra macroblock,以及預測 (nonintra) 圖片,以相依於 ConfigIntraResidUnsigned 的格式傳送剩餘差異空間網域區塊,如下所示:

  • 如果 ConfigIntraResidUnsigned 為零,則宏區塊的空間定義域區塊會以 16 位帶正負號的整數值的形式傳送,這些整數值相對於 2^ (BPP-1) ,其中 BPP 是未壓縮視訊每個樣本的位數 (,通常為 8) 。

  • 如果 ConfigIntraResidUnsigned 為 1,則會以相對於零常數參考值 16 位無符號整數值的形式傳送內部宏區塊的空間定義域區塊。

如果 ConfigResidDiffHost 為零,ConfigSpatialResid8 必須是零。 如果 ConfigResidDiffHost1,ConfigSpatialResid8 可以是任何值。

注意

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

[in] ConfigResid8Subtraction

UINT 值,指定是否要減去或加入 8 位差異溢位區塊。 如果這個成員設定為 1,則會減去 8 位差異溢位區塊,而不是新增。 除非 ConfigSpatialResid8 為 1,否則此成員必須為零。 如果 ConfigSpatialResid81,ConfigResid8Subtraction 的慣用值為 1。 能夠減去差異,而不是新增差異,可讓8位差異譯碼完全符合視訊譯碼器規格中所需值範圍 -255到 +255的範圍。 這項功能可啟用完整合規性,因為 +255 無法表示為新增兩個帶正負號的 8 位數位,但範圍中從 -255 到 +255 的任何數位都可以表示為兩個帶正負號的 8 位數位之間的差異, (+255 等於 +127 減 -128) 。

[in] ConfigSpatialHost8or9Clipping

UINT 值,指定是否由主機執行裁剪。 如果此成員設定為 1,則會將主機上的 8 位範圍裁剪為內部宏區塊的空間網域區塊,而 nonintra macroblock 的空間網域區塊會裁剪到主機上的 9 位範圍。 值為零表示主機不會執行這類裁剪。 除非 ConfigSpatialResid8 設定為零,且 ConfigResidDiffHost 設為 1,否則此成員必須為零。 ConfigSpatialHost8or9Clipping 的慣用值為零。

[in] ConfigSpatialResidInterleaved

UINT 值,指定是否以 chrominance 交錯形式傳送空間定義域剩餘差異數據。 如果這個成員設定為 1,則會以符合 YUV 格式的 chrominance 交錯模式形式傳送任何空間網域剩餘差異數據。 除非 ConfigResidDiffHost 為 1,而且 YUV 格式為 NV12 或 NV21,否則此成員必須為零。 ConfigSpatialResidInterleaved 的慣用值為零。

[in] ConfigIntraResidUnsigned

使用主機型差異譯碼 (時, 當 ConfigResidDiffHost 成員等於 1) 時,內部區塊之剩餘差異數據的空間定義域區塊表示方法。

如果 ConfigIntraResidUnsigned 設定為零,且 ConfigResidDiffHost 設定為 1,則會傳送內部宏區塊的空間網域剩餘差異數據區塊,如下所示:

  • 如果 ConfigSpatialResid8 成員為零,則內部宏區塊的空間網域剩餘差異數據區塊會以 16 位帶正負號的整數值的形式傳送,這些值通常與 2^ (BPP-1) 的常數參考值相對,其中 BPP 是未壓縮視訊每個樣本的位數 (通常值為 8) 。

  • 如果 ConfigSpatialResid8 為 1,且 BPP 等於 8 (,而不論 ConfigSpatialResid8) 的值為何,則內部宏區塊的空間定義域剩餘差異數據區塊會以 8 位帶正負號的整數值傳送為 128。

如果 ConfigIntraResidUnsigned 設定為 1, 且 ConfigResidDiffHost 設定為 1,則會傳送內部宏區塊的空間網域剩餘差異數據區塊,如下所示:

  • 如果 ConfigSpatialResid8 為零,則內部宏區塊的空間定義域剩餘差異數據區塊會以 16 位無符號整數值的形式傳送,這些值相對於零的常數參考值。

  • 如果 ConfigSpatialResid8 為 1,且 BPP 等於 8 (,而不論 ConfigSpatialResid8) 的值為何,則內部宏區塊的空間定義域剩餘差異數據區塊會以相對於零常數參考值的 8 位不帶正負號整數值來傳送。

ConfigIntraResidUnsigned 必須是零,除非 ConfigResidDiffHost 為 1。 ConfigIntraResidUnsigned 的慣用值為零。

[in] ConfigResidDiffAccelerator

快速鍵剩餘差異設定。 這個成員中的值 1 表示可以從主機傳送係數數據的轉換網域區塊,以進行加速器型 IDCT。 值為零表示未使用快速鍵型 IDCT。

如果 ConfigResidDiffHost 成員和 ConfigResidDiffAccelerator 都是 1,則會在主機上執行一些殘差差異譯碼,有些則會在快捷鍵上執行,如宏區塊層級控制命令所指出。 如果 bConfigBitstreamRaw 成員為 1,ConfigResidDiffAccelerator 必須為零。

ConfigResidDiffAccelerator 的慣用值為 1。

如果 ConfigResidDiffAcceleratorConfigResidDiffHost 設定為 1,則可以在主機與快捷鍵之間以宏區塊為基礎共用剩餘差異譯碼。 此共用比 ConfigResidDiffAccelerator 設定為 1 且 ConfigResidDiffHost 設定為零時,此共用是更高層級的快捷鍵功能。

[in] ConfigHostInverseScan

UINT 值,指定在主機或加速器上執行轉換網域區塊處理的反向掃描。 這個成員中的值為 1 表示在主機上執行轉換網域區塊處理的反向掃描,而且會改為針對任何轉換係數傳送絕對索引。 值為零表示反向掃描是在加速器上執行。 如果 ConfigResidDiffAccelerator 為零,或 Config4GroupedCoefs 成員為 1,則 ConfigHostInverseScan 必須為零。

如果 ConfigResidDiffAccelerator 為 1,ConfigHostInverseScan 的慣用值為 1。

[in] ConfigSpecificIDCT

UINT 值,指定對 離主機 IDCT 使用特定 IDCT 方法。 此成員中的值 1 表示使用在「建議 H.263 附錄 W」中指定的 IDCT,您可以從 國際電信聯盟 網站瞭解此標識碼。 值為零表示任何符合規範的 IDCT 都可用於離主機 IDCT。 (零和 1 以外的值會保留。)

如果 ConfigResidDiffAccelerator 為零,則 ConfigSpecificIDCT 必須為零,這表示主機型剩餘差異譯碼。

注意

ConfigSpecificIDCT 不得設定為 1,才能與 MPEG-2 視訊搭配使用。

[in] Config4GroupedCoefs

UINT 值,指定如何傳送離主機 IDCT 的轉換係數。 這個成員中的值為 1,表示會使用 DXVA_TCoef4Group 結構而非 DXVA_TCoefSingle 結構來傳送離主機 IDCT 的轉換係數。 Config4GroupedCoefs 如果 ConfigResidDiffAccelerator 為零,或 ConfigHostInverseScan 為 1,則為零。

如果 ConfigResidDiffAccelerator 為 1,Config4GroupedCoefs 的慣用值為零。

[in] ConfigMinRenderTargetBuffCount

USHORT 值,指定轉譯目標緩衝區的最小數目。

[in] ConfigDecoderSpecific

USHORT 值,指定要設定的譯碼器特定功能。 如需譯碼器功能的相關信息,請參閱該譯碼器的規格。 如需譯碼器的清單,請參閱 提供影片譯碼的功能

規格需求

需求
最低支援的用戶端 可在 Windows Vista 和更新版本的 Windows 作業系統中使用。
標頭 d3dumddi.h (包含 D3dumddi.h)

另請參閱

D3DDDIARG_GETCAPS

D3DDDICAPS_TYPE

GetCaps