Freigeben über


DXVA_MBctrl_I_HostResidDiff_1 Struktur (dxva.h)

Die DXVA_MBctrl_I_HostResidDiff_1 Struktur wird einmal pro Makroblock vom Hostdecoder an die Zugriffstaste gesendet, um Makroblock-Steuerelementbefehle für ein intra pictureanzugeben.

Syntax

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;

Angehörige

wMBaddress

Gibt die Makroblockadresse des aktuellen Makroblocks in der Rasterscanreihenfolge an. Beispiele für Makroblockadressen finden Sie unter Makroblockadressen.

wMBtype

Gibt den Typ des zu verarbeitenden Makroblocks an. Die folgenden Bits definieren die Makroblockverarbeitung.

Bits Beschreibung
15 bis 12 MvertFieldSel_3 (Bit 15, das wichtigste Bit) bis MvertFieldSel_0 (Bit 12)
Gibt die vertikale Feldauswahl für entsprechende Bewegungsvektoren an, die später im Makroblock-Steuerelementbefehl gesendet werden. Bei framebasierten Bewegungen mit einer Rahmenbildstruktur (z. B. für H.261 und H.263) müssen diese Bits alle null sein. Die Bits in MvertFieldSel_0, MvertFieldSel_1, MvertFieldSel_2 und MvertFieldSel_3 entsprechen den motion_vertical_field_select[r][s] Bits in Abschnitt 6.3.17.2 von MPEG-2.
11 Reservierte Bit-
Muss null sein.
10 HostResidDiff-
Gibt an, ob decodierte Blöcke für räumliche Domänen gesendet werden oder ob Transformationskoeffizienten für off-host IDCT für den aktuellen Makroblock gesendet werden.
HostResidDiff ist immer gleich 1 in dieser Struktur. Dieses Flag muss null sein, wenn bConfigResidDiffHost null ist. Dieses Flag muss 1 sein, wenn bConfigResidDiffAccelerator null ist. Die Elemente "bConfigResidDiffHost" und "bConfigResidDiffAccelerator" sind in der DXVA_ConfigPictureDecode Struktur enthalten.
9 und 8 MotionType-
Muss null sein.
7 und 6 MBscanMethod-
Diese Bits haben keine Bedeutung und sollten auf Null festgelegt werden.
5 FieldResidual-
Gibt an, ob die Restdifferenzblöcke eine Feld-IDCT-Struktur verwenden, wie in MPEG-2 angegeben.
Muss 1 sein, wenn das bPicStructure-Element von DXVA_PictureParameters 1 oder 2 ist. Bei Verwendung für MPEG-2 muss FieldResidual null sein, wenn das frame_pred_frame_DCT Flag in der MPEG-2-Syntax 1 ist und gleich der dct_type Variable der MPEG-2-Syntax sein muss, wenn dct_type für den Makroblock vorhanden ist.
4 H261LoopFilter-
Muss null sein.
3 Motion4MV-
Muss null sein.
2 MotionBackward-
Muss null sein.
1 MotionForward-
Muss null sein.
0 IntraMacroblock-
Muss 1 sein.

dwMB_SNL

Gibt die Anzahl der übersprungenen Makroblocks an, die nach dem aktuellen Makroblock generiert werden sollen, und gibt die Position der Restdifferenzdaten für die Blöcke des aktuellen Makroblocks an. Dieses Element enthält zwei Variablen: MBskipsFollowing in den wichtigsten 8 Bits und MBdataLocation- in den am wenigsten signifikanten 24 Bit. MBskipsFollowing gibt die Anzahl der übersprungenen Makroblocks an, die nach dem aktuellen Makroblock generiert werden sollen. MBdataLocation- ist ein Index im Restdifferenz-Blockdatenpuffer. Dieser Index gibt die Position der Restdifferenzdaten für die Blöcke des aktuellen Makroblocks an, ausgedrückt als Vielfaches von 32 Bits.

wPatternCode

Gibt an, ob Restdifferenzdaten für jeden Block im Makroblock gesendet werden. In einem Intrabild werden Restdifferenzdaten für jeden Block im Makroblock gesendet. Die Bits in wPatternCode-, die auf alle Blöcke des aktuellen Makroblocks verweisen, müssen 1 in dieser Struktur sein.

Bit (11-i) von wPatternCode- (wobei Bit Null das am wenigsten signifikante Bit ist) gibt an, ob Restdifferenzdaten für Block-igesendet werden, wobei i der Index des Blocks innerhalb des Makroblocks ist, wie in MPEG-2 Abbildungen 6-10 angegeben, 6-11 und 6-12 (Rasterscanreihenfolge für Y, gefolgt von 4:2:0-Blöcken von Cb in Rasterscanreihenfolge, gefolgt von 4:2:0-Blöcken von Cr, gefolgt von 4:2:2-Blöcken von Cb, gefolgt von 4:2:2-Blöcken von Cr, gefolgt von 4:4:4 4 Blöcken von Cb, gefolgt von 4:4:4 Blöcken von Cr). Die Daten für die codierten Blöcke (diese Blöcke mit Bit (11i) gleich 1) befinden sich im Restcodierungspuffer in derselben Indizierungsreihenfolge (erhöhung i). Für 4:2:0 MPEG-2-Daten entspricht der Wert von wPatternCode dem Verschieben des decodierten Werts des CBP (codiertes Blockmuster) nach links um sechs Bitpositionen (die niedrigeren Bitpositionen werden für 4:2:2 und 4:4:4 Chroma-Formate verwendet).

Wenn das bConfigSpatialResidInterleaved Member der DXVA_ConfigPictureDecode Struktur 1 ist, werden hostbasierte Restunterschiede in einer farbübergreifenden Form gesendet, die dem verwendeten YUV-Pixelformat entspricht. In diesem Fall wird jedes Cb- und raumbezogene Cr-Blöckepaar als einzelne Restdifferenzstruktureinheit behandelt. Dadurch wird der Wert oder die Bedeutung von wPatternCode-nicht geändert, aber es impliziert, dass beide Elemente der einzelnen Cb- und Cr-Datenblöcke gesendet werden, wenn eine dieser Datenblöcke den entsprechenden Bitsatz in wPatternCodehat. Wenn das Bit in wPatternCode- für einen bestimmten Datenblock null ist, müssen die entsprechenden Restdifferenzdatenwerte als Null gesendet werden, wenn bei dieser Kopplung ein Restunterschiedsdatenblock für einen Block mit einem wPatternCode Bit gleich Null gesendet werden muss.

wPC_Overflow

Muss null sein.

dwReservedBits2

Reservierte Bits, die für Verpackung und Ausrichtung verwendet werden. Muss null sein.

Bemerkungen

Übersprungene Makroblocks werden nicht von intragrafiken verwendet, sodass die MBskipsFollowing Variable null sein muss. Die MBdataLocation- Variable muss null für den ersten Makroblock im Makroblock-Befehlspuffer sein. Weitere Informationen dazu, wie übersprungene Makroblocks generiert werden, finden Sie unter Generieren von übersprungenen Makroblocks.

Anforderungen

Anforderung Wert
Header- dxva.h (include Dxva.h)

Siehe auch

DXVA_ConfigPictureDecode

DXVA_MBctrl_I_OffHostIDCT_1

DXVA_PictureParameters

DXVA_TCoefSingle