Compartir a través de


estructura DXVA_MBctrl_I_HostResidDiff_1 (dxva.h)

El descodificador host envía una vez por cada macroblock a la estructura de DXVA_MBctrl_I_HostResidDiff_1 para especificar comandos de control de macroblock para una imagen interna.

Sintaxis

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;

Miembros

wMBaddress

Especifica la dirección de bloqueo de macros del bloque de macros actual en orden de examen de trama. Para obtener ejemplos de direcciones de macroblock, consulte Direcciones de bloqueo de macros.

wMBtype

Especifica el tipo de macroblock que se está procesando. Los bits siguientes definen el procesamiento de macrobloqueos.

Bits Descripción
De 15 a 12 MvertFieldSel_3 (bit 15, el bit más significativo) a través de MvertFieldSel_0 (bit 12)
Especifica la selección de campo vertical para los vectores de movimiento correspondientes enviados más adelante en el comando de control de macroblock. Para el movimiento basado en fotogramas con una estructura de imagen de marco (por ejemplo, para H.261 y H.263), estos bits deben ser cero. Los bits de MvertFieldSel_0, MvertFieldSel_1, MvertFieldSel_2 y MvertFieldSel_3 corresponden a los bits de motion_vertical_field_select[r][s] de la sección 6.3.17.2 de MPEG-2.
11 Bit reservado
Debe ser cero.
10 HostResidDiff
Especifica si se envían bloques descodificados de diferencia residual de dominio espacial o si se envían coeficientes de transformación para idCT fuera del host para el bloque de macros actual.
HostResidDiff siempre es igual a 1 en esta estructura. Esta marca debe ser cero si bConfigResidDiffHost es cero. Esta marca debe ser 1 si bConfigResidDiffAccelerator es cero. Los miembros bConfigResidDiffHost y bConfigResidDiffAccelerator se encuentran en la estructura DXVA_ConfigPictureDecode .
9 y 8 MotionType
Debe ser cero.
7 y 6 MBscanMethod
Estos bits no tienen significado y deben establecerse en cero.
5 FieldResidual
Indica si los bloques de diferencia residual usan una estructura IDCT de campo como se especifica en MPEG-2.
Debe ser 1 si el miembro bPicStructure de DXVA_PictureParameters es 1 o 2. Cuando se usa para MPEG-2, FieldResidual debe ser cero si la marca de frame_pred_frame_DCT en la sintaxis MPEG-2 es 1 y debe ser igual a la variable dct_type de la sintaxis MPEG-2 si dct_type está presente para el macroblock.
4 H261LoopFilter
Debe ser cero.
3 Motion4MV
Debe ser cero.
2 MotionBackward
Debe ser cero.
1 MotionForward
Debe ser cero.
0 IntraMacroblock
Debe ser 1.

dwMB_SNL

Especifica el número de macroblocks omitidos que se van a generar después del bloque de macros actual e indica la ubicación de los datos de diferencia residual para los bloques del bloque de macroblock actual. Este miembro contiene dos variables: MBskipsFollowing en los 8 bits más significativos y MBdataLocation en los 24 bits menos significativos. MBskipsFollowing indica el número de macroblocks omitidos que se van a generar después del bloque de macros actual. MBdataLocation es un índice en el búfer de datos de bloque de diferencia residual. Este índice indica la ubicación de los datos de diferencia residual para los bloques del bloque de macrobloque actual, expresado como múltiplo de 32 bits.

wPatternCode

Indica si se envían datos de diferencia residual para cada bloque del macroblock. En una imagen interna, los datos de diferencia residual se envían para cada bloque del bloque macroblock. Los bits de wPatternCode que hacen referencia a todos los bloques del bloque de macros actual deben ser 1 en esta estructura.

Bit (11-i) de wPatternCode (donde el bit cero es el bit menos significativo) indica si los datos de diferencia residual se envían para el bloque i, donde i es el índice del bloque dentro del macroblock según se especifica en las figuras MPEG-2 6-10, 6-11 y 6-12 (orden de análisis de ráster para Y, seguido de 4:2:0 bloques de Cb en orden de examen ráster, seguido de 4:2:0 bloques de Cr, seguidos de 4:2:2 bloques de Cb, seguidos de 4:2:2 bloques de Cr, seguidos de 4:4:4 bloques de Cb, seguidos de 4:4:4:4 bloques de Cr). Los datos de los bloques codificados (esos bloques que tienen bit (11i) igual a 1) se encuentran en el búfer de codificación residual en el mismo orden de indexación ( aumentando i). Para los datos MPEG-2 de 4:2:0, el valor de wPatternCode corresponde a cambiar el valor descodificado del CBP (patrón de bloque codificado) a la izquierda por seis posiciones de bits (esas posiciones de bits inferiores que se usan para formatos de cromática 4:2:2 y 4:4:4).

Si el miembro bConfigSpatialResidInterleaved de la estructura de DXVA_ConfigPictureDecode es 1, las diferencias residuales basadas en host se envían en una forma intercalada cromática que coincida con la del formato de píxel YUV en uso. En este caso, cada par cb y cr correspondiente espacialmente de bloques se trata como una sola unidad de estructura de diferencia residual. Esto no modifica el valor ni el significado de wPatternCode, pero implica que ambos miembros de cada par de bloques de datos Cb y Cr se envían siempre que alguno de estos bloques de datos tenga el bit correspondiente establecido en wPatternCode. Si el bit de wPatternCode para un bloque de datos determinado es cero, los valores de datos de diferencia residual correspondientes se deben enviar como cero siempre que este emparejamiento requiera enviar un bloque de datos de diferencia residual para un bloque con un bit wPatternCode igual a cero.

wPC_Overflow

Debe ser cero.

dwReservedBits2

Bits reservados usados para empaquetar y alinear. Debe ser cero.

Comentarios

Las macroblocks omitidas no se usan en imágenes intra, por lo que la variable MBskipsFollowing debe ser cero. La variable MBdataLocation debe ser cero para el primer bloque de macros en el búfer del comando de control de macroblock. Para obtener más información sobre cómo se generan los macroblocks omitidos, consulte Generación de macros omitidas.

Requisitos

Requisito Valor
Header dxva.h (include Dxva.h)

Consulte también

DXVA_ConfigPictureDecode

DXVA_MBctrl_I_OffHostIDCT_1

DXVA_PictureParameters

DXVA_TCoefSingle