Compartir a través de


estructura DXVA_MBctrl_I_HostResidDiff_1 (dxva.h)

El descodificador del host envía la estructura DXVA_MBctrl_I_HostResidDiff_1 una vez por cada bloque de macros al acelerador para especificar comandos de control de macrobloqueo para un dentro de la imagen.

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 macrobloqueo del bloque de macros actual en orden de examen de trama. Para obtener ejemplos de direcciones de macrobloqueo, 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 de 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 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 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 de
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 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 bloque de macros.
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 bloques de macros 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 macros 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 macrobloqueos 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 los datos de diferencia residual se envían para cada bloque del bloque macroblock. En una imagen intra, 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 bit cero es el bit cero 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 bloque macroblock tal como se especifica en las figuras MPEG-2 6-10, 6-11 y 6-12 (orden de examen ráster para Y, seguido de 4:2:0 bloques de Cb en orden de examen de trama, 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 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 de la CBP (patrón de bloque codificado) a la izquierda por seis posiciones de bits (esas posiciones de bits inferiores que se usan para formatos cromáticos 4:2 y 4:4:4).

Si el bConfigSpatialResidInterleaved miembro de la estructura 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 cr y correspondiente espacialmente correspondiente de bloques se trata como una única 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 cualquiera 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 wPatternCode bit igual a cero.

wPC_Overflow

Debe ser cero.

dwReservedBits2

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

Observaciones

Los macrobloqueos omitidos no se usan en imágenes intra, por lo que el MBskipsFollowing variable debe ser cero. La variable MBdataLocation debe ser cero para el primer bloque de macros del búfer de comandos de control de macrobloqueo. Para obtener más información sobre cómo se generan los bloques de macro omitidos, vea Generar bloques de macro omitidos.

Requisitos

Requisito Valor
encabezado de dxva.h (include Dxva.h)

Consulte también

DXVA_ConfigPictureDecode

DXVA_MBctrl_I_OffHostIDCT_1

DXVA_PictureParameters

DXVA_TCoefSingle