DXVA_MBctrl_P_HostResidDiff_1結構 (dxva.h)

主機譯碼器會將每個宏區塊傳送一次DXVA_MBctrl_P_HostResidDiff_1結構至快捷鍵,以在使用 主機型 IDCT 時,針對大部分非複製圖片案例指定 macroblock 控件命令。

語法

typedef struct _DXVA_MBctrl_P_HostResidDiff_1 {
  WORD         wMBaddress;
  WORD         wMBtype;
  DWORD        dwMB_SNL;
  WORD         wPatternCode;
  WORD         wPC_Overflow;
  DWORD        dwReservedBits2;
  DXVA_MVvalue MVector[DXVA_NumMV_OBMC_off_BinPBwith4MV_off];
} DXVA_MBctrl_P_HostResidDiff_1;

成員

wMBaddress

以點陣掃描順序指定目前宏區塊的宏區塊位址。 如需macroblock位址的範例,請參閱 macroblock位址

wMBtype

指定要處理的宏區塊類型。 下列位會定義 wMBtype 的內容。

描述
15 到 12 MvertFieldSel_3 (位 15,最顯著位) 到MvertFieldSel_0 (位 12)
指定宏區塊控件命令稍後傳送之對應動作向量的垂直欄位選取範圍。 例如,對於具有框架圖片結構的框架式動作 (例如,針對 H.261 和 H.263) ,這些位都必須全部為零。 這些位的使用方式與針對 MPEG-2 第 6.3.17.2 節中對應的位所指定的位相同。
11 保留位。 必須為零。
10 HostResidDiff
指定是否傳送空間網域剩餘差異譯碼區塊,或是否針對目前宏區塊的離主機 IDCT 傳送轉換係數。
HostResidDif 旗標一律等於這個結構中的 1。 如果 bConfigResidDiffHost 為零,此旗標必須為零。 如果 bConfigResidDiffAccelerator 為零,則此旗標必須為 1。
9 和 8 MotionType
指定圖片中的動作類型。 例如,對於具有框架圖片結構 (的框架式動作,如 H.261) 所示,位 9 必須是 1,而位 8 必須是零。
當這些位出現在 MPEG-2 的 6.3.17.1 和表格 6-17 和 6-18 的 MPEG-2 視訊中,使用這些位會直接對應至使用frame_motion_type或field_motion_type位。 下列一節會進一步說明使用這些位。
7 和 6 MBscanMethod
這個變數沒有意義,而且此結構中的位應該設定為零。
5 FieldResidual
指出剩餘差異區塊是否使用如 MPEG-2 中所指定的欄位 IDCT 結構。
如果 DXVA_PictureParameters 的 bPicStructure 成員為 1 或 2,則必須為 1。 當用於 MPEG-2 時,如果 MPEG-2 語法中的frame_pred_frame_DCT變數為 1,則 FieldResidual 必須為零,而且如果宏區塊有dct_type,則必須等於 MPEG-2 語法中的dct_type變數。
4 H261LoopFilter
指定 H.261 循環篩選 (H.261) 區段 3.2.3 是否為目前宏區塊預測的作用中。 H.261 循環篩選條件是可分隔的 1/4、1/2、1/4 篩選條件,同時水準和垂直套用至 H.261 宏區塊中的所有六個區塊,但其中一個點選落在區塊外部的區塊邊緣除外。 在這種情況下,篩選條件會變更為具有係數 0、1、0。 完整算術精確度會保留在 2D 篩選程式的輸出中四捨五入為 8 位的整數, (半整數或更高的值四捨五入) 。
3 Motion4MV
變數,指出向前動作會針對宏區塊中四個亮度區塊的每一個使用相異動作向量,如 H.263 附錄 F 和 J.Motion4MV 所使用,如果 MotionForward 為零,或如果 DXVA_PictureParameters 的 bPic4MVallowed 成員為零,則 Motion4MV 必須為零。
2 MotionBackward
用於 MPEG-2 中對應macroblock_motion_backward變數所指定的方式。 如果DXVA_PictureParameters的 bPicBackwardPrediction 成員為零,MotionBackward 必須是零。 下列一節會進一步說明此位的使用方式。
1 MotionForward
用於 MPEG-2 中對應的macroblock_motion_forward變數。 下列一節會進一步說明此位的使用方式。
0 IntraMacroblock
表示宏區塊會編碼為內部,而且目前宏區塊不會使用任何動作向量。 對應至 macroblock_intrain MPEG-2。 下列一節會進一步說明此位的使用方式。

dwMB_SNL

指定要在目前宏區塊之後產生的略過宏區塊數目,並指出目前macroblock區塊的剩餘差異資料位置。 此成員包含兩個變數: MBskipsFollowing 在最重要的 8 位中,以及最小有效 24 位中的 MBdataLocationMBskipsFollowing 指出在目前的 macroblock 之後要產生的略過宏區塊數目。 MBdataLocation 是剩餘差異區塊數據緩衝區的索引。 此索引表示目前宏區塊的剩餘差異數據位置,以32位的倍數表示。

wPatternCode

指出是否針對目前宏區塊中的每個區塊傳送 剩餘差異數據

wPatternCode (的位 (11-i) ,其中位零是最小有效位) 指出是否針對區塊 i 傳送剩餘差異數據, 其中 i 是 MPEG-2 圖 6-10、6-11 和 6-1 (2 中宏區塊的索引,後面接著 Y 的點陣掃描順序,後面接著 4:2:0 Cb 的點陣掃描順序, 後面接著 Cr 的 4:2:0 區塊,後面接著 4:2:2 區塊,後面接著 4:2:2 區塊,後面接著 4:4:4 區塊的 Cb,後面接著 4:4:4:4 區塊的 Cr) 。 編碼區塊的數據 (這些區塊的位 (11-i) 等於 1) ,可在增加 i) (的剩餘編碼緩衝區中找到。 對於 4:2:0 MPEG-2 數據, wPatternCode 的值會對應到將 CBP (編碼區塊) 模式的譯碼值移轉至左邊, (用於 4:2:2 和 4:4:4:4 色碼格式) 。

如果 DXVA_ConfigPictureDecode的 bConfigSpatialResidInterleaved 成員為 1,則會以符合使用中 YUV 像素格式的 chroma 交錯形式傳送主機型剩餘差異。 在此情況下,每個 Cb 和空間對應的 Cr 區塊會被視為單一殘差結構單位。 這不會改變 wPatternCode 的值或意義,但表示每對 Cb 和 Cr 數據區塊的成員都會在 wPatternCode 中設定對應的位時傳送。 如果特定數據區塊 wPatternCode 中的位為零,則每當此配對需要為 wPatternCode 位等於零的區塊傳送剩餘差異數據區塊時,必須以零的形式傳送對應的殘差差異數據值。

wPC_Overflow

指定宏區塊的哪些區塊使用溢位剩餘差異數據。

當搭配 bPicOverflowBlocks 成員的 bPicOverflowBlocks 成員使用主機型剩餘差異譯碼時, DXVA_PictureParameters 等於 1 且 IntraMacroblock 等於零, (8-8 溢位方法 ) ,wPC_Overflow 包含溢位區塊的模式代碼。 (模式程式代碼的指定方式與 wPatternCode.) 編碼溢位區塊的數據相同, (這些區塊的數據位 (11-i) 等於 1) ,可在剩餘編碼緩衝區中找到, (增加 i) 。

dwReservedBits2

用於封裝和對齊的保留位。 必須為零。

MVector[DXVA_NumMV_OBMC_off_BinPBwith4MV_off]

陣列,包含宏區塊 () 的動作向量值,每個動作向量都是以 DXVA_MVvalue 結構表示。

備註

MBskipsFollowing 所指定的每個略過宏區塊都必須以數學方式產生,相當於遞增 wMBaddress 的值,然後重複相同的宏區塊控件命令。

具有 MBskipsFollowing 非零值的 macroblock 控件命令內容相當於 (除了 MBskipsFollowing) 與已略過宏區塊系列第一個內容的值之外。 因此,每當 MBskipsFollowing 不是零時,下列結構成員和變數都必須等於零:Motion4MV、IntraMacroblock、wPatternCodewPC_Overflow。 接著會以與第一個相同的方式產生每個後續略過的宏區塊,但增加 wMBaddress 的值除外。

MBdataLocation 必須是macroblock控件命令緩衝區中第一個宏區塊的零。 對於 macroblock 控制項命令緩衝區中第一個 macroblock 以外的 macroblock,如果 wPatternCode 為零,MBdataLocation 可能會包含任何值。 當 wPatternCode 為零時,建議使用譯碼器,但不需要將此值設定為零,或設定為與下一個 macroblock 控件命令相同的值。

如需如何產生略過宏區塊的詳細資訊,請參閱 產生略過的宏區塊

IntraMacroblockMotionForward、MotionBackwardMotionTypeMvertFieldSelMVector 的有效組合會顯示在 Macroblock 控件命令結構的第一個部分中的數據表中。

規格需求

需求
標頭 dxva.h (包含 Dxva.h)

另請參閱

DXVA_ConfigPictureDecode

DXVA_MBctrl_P_OffHostIDCT_1

DXVA_MVvalue

DXVA_PictureParameters