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 控件命令緩衝區來傳送圖片數據。 如果 ConfigResidDiffHost 或 ConfigResidDiffAccelerator 為 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。
- 如果 ConfigIntraResidUnsigned 為 0,則內部宏區塊的空間定義域區塊會以 16 位帶正負號的整數值傳送,相對於 BPP-1) 的常數參考值 2^ (。
- 如果 ConfigIntraResidUnsigned 為 1,則內部宏區塊的空間定義域區塊會以 16 位無符號整數值的形式傳送,相對於常數參考值為 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) 。
- 在非內部圖片中,如果 ConfigSpatialResid8 為 0,則內部宏區塊的空間定義域剩餘差異數據區塊必須傳送為 16 位無符號整數值,相對於常數參考值為 0。
- 在非內部圖片中,如果 ConfigSpatialResid8 為 1,則內部宏區塊的空間定義域剩餘差異數據區塊會以 8 位無符號整數值的形式傳送,相對於常數參考值為 0。
- 在內部圖片中,如果 BPP 為 8,則不論 ConfigSpatialResid8 的值為何,內部宏區塊的空間領域剩餘差異數據區塊都會以 8 位無符號整數值的形式傳送為 0。
ConfigResidDiffAccelerator
如果值為 1,可能會從主機傳送係數數據的轉換領域區塊,以進行加速器型 IDCT。 如果值為 0,則不會使用加速器型 IDCT。 如果 ConfigResidDiffHost 和 ConfigResidDiffAccelerator 都是 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 |