共用方式為


DXVA_MBctrl_I_HostResidDiff_1 結構 (dxva.h)

主機譯碼器會針對每個宏區塊傳送一次DXVA_MBctrl_I_HostResidDiff_1結構,以指定 圖片內部圖片的宏區塊控制命令。

語法

typedef struct _DXVA_MBctrl_I_HostResidDiff_1 {
  WORD  wMBaddress;
  WORD  wMBtype;
  DWORD dwMB_SNL;
  WORD  wPatternCode;
  WORD  wPC_Overflow;
  DWORD dwReservedBits2;
} DXVA_MBctrl_I_HostResidDiff_1;

成員

wMBaddress

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

wMBtype

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

描述
15 到 12 MvertFieldSel_3 (位 15,透過MvertFieldSel_0 (位 12 位) 最重要的位)
指定宏區塊控件命令稍後傳送之對應動作向量的垂直欄位選取範圍。 例如,對於具有框架圖片結構 (的框架式動作,例如 H.261 和 H.263) ,這些位都必須全部為零。 MvertFieldSel_0、 MvertFieldSel_1、 MvertFieldSel_2和MvertFieldSel_3中的位會對應至 MPEG-2 第 6.3.17.2 節中的motion_vertical_field_select[r][s] 位。
11 保留位
必須為零。
10 HostResidDiff
指定是否傳送空間網域剩餘差異譯碼區塊,或是否針對目前宏區塊的離主機 IDCT 傳送轉換係數。
HostResidDiff 一律等於這個結構中的 1。 如果 bConfigResidDiffHost 為零,此旗標必須為零。 如果 bConfigResidDiffAccelerator 為零,此旗標必須是 1。 bConfigResidDiffHost 和 bConfigResidDiffAccelerator 成員包含在 DXVA_ConfigPictureDecode 結構中。
9 和 8 MotionType
必須為零。
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
必須為零。
3 Motion4MV
必須為零。
2 MotionBackward
必須為零。
1 MotionForward
必須為零。
0 IntraMacroblock
必須是 1。

dwMB_SNL

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

wPatternCode

指出是否針對宏區塊中的每個區塊傳送剩餘差異數據。 在圖片內部,會針對宏區塊中的每個區塊傳送剩餘差異數據。 參考目前宏區塊之所有區塊 的 wPatternCode 位必須在此結構中為 1。

wPatternCode (11-i) 位 (其中位零是最小有效位) 指出是否針對區塊 i 傳送剩餘差異數據, 其中 i 是宏區塊內的索引,如 MPEG-2 圖 6-10、6-11 和 6-12 (Y 的點陣掃描順序,後面接著 4:2:0 Cb 的點陣掃描順序, 後面接著 4:2:0 區塊的 Cr,後面接著 Cb 的 4:2:2 區塊,後面接著 4:2:2 區塊 Cr,後面接著 4:4:4 區塊的 Cb,後面接著 4:4:4 區塊的 Cr) 。 編碼區塊的數據 (那些區塊的位 (11i) 等於 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

必須為零。

dwReservedBits2

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

備註

略過的宏區塊不會由圖片內部使用,因此 MBskipsFollowing 變數必須是零。 MBdataLocation 變數必須是macroblock控件命令緩衝區中第一個宏區塊的零。 如需如何產生略過宏區塊的詳細資訊,請參閱 產生略過宏區塊

規格需求

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

另請參閱

DXVA_ConfigPictureDecode

DXVA_MBctrl_I_OffHostIDCT_1

DXVA_PictureParameters

DXVA_TCoefSingle