Compartir a través de


estructura DXVA_TCoefSingle (dxva.h)

El descodificador del host envía la estructura DXVA_TCoefSingle al acelerador para especificar valores de coeficiente de IDCT .

Sintaxis

typedef struct _DXVA_TCoefSingle {
  WORD  wIndexWithEOB;
  SHORT TCoefValue;
} DXVA_TCoefSingle, *LPDXVA_TCoefSingle;

Miembros

wIndexWithEOB

Este miembro contiene dos campos: TCoefIDX y TCoefEOB.

TCoefIDX

Especifica el índice de examen del coeficiente en el bloque, determinado del miembro bConfigHostInverseScan de la estructura DXVA_ConfigPictureDecode . Este campo está en los 15 bits más significativos del miembro wIndexWithEOB .

Hay dos maneras de usar TCoefIDX :

  1. Orden de longitud de ejecución: cuando bConfigHostInverseScan es cero, el elemento MBscanMethod del comando de control de macroblock indica un examen inverso de zigzag, vertical alternativo o horizontal alternativo. Estos comandos de control de macroblock se definen en las siguientes estructuras: DXVA_MBctrl_I_OffHostIDCT_1 o DXVA_MBctrl_P_OffHostIDCT_1. En este caso, TCoefIDX contiene el número de coeficientes con valores cero que preceden al coeficiente actual en el orden de examen especificado, posterior al último coeficiente transmitido para el bloque (o en relación con el inicio del bloque si ninguno lo precede). Los coeficientes restantes después del último coeficiente enviado en el orden de examen inverso están implícitos en tener el valor cero.
  2. Ordenación arbitraria: cuando bConfigHostInverseScan es 1, el elemento MBscanMethod del comando de control de macroblock indica la ordenación arbitraria. Estos comandos de control de macroblock se definen en las siguientes estructuras: DXVA_MBctrl_I_OffHostIDCT_1 y DXVA_MBctrl_P_OffHostIDCT_1. En este caso, TCoefIDX simplemente contiene el índice de trama del coeficiente dentro del bloque (TCoefIDX = u + 8 * v, donde usted y v son las coordenadas de frecuencia horizontal y vertical del dominio de transformación) y los coeficientes que no se envían están implícitos en tener el valor 0.
TCoefIDX siempre debe ser menor que 64.

TCoefEOB

Indica si el coeficiente actual es el último asociado al bloque actual de coeficientes de transformación. Un valor de 1 indica que el coeficiente actual es el último para el bloque y un valor de cero indica que no lo es. Este campo está en el bit menos significativo del miembro wIndexWithEOB .

TCoefValue

Indica el valor del coeficiente en el bloque. TCoefValue debe recortarse en el intervalo adecuado, tal como se especifica en Elementos de procesamiento de IDCT de bajo nivel por el host antes de pasar el valor de coeficiente al acelerador para la operación IDCT . El control de discrepancia MPEG-2, si es necesario, también es responsabilidad del host, no del acelerador. (Esto puede requerir la creación de coeficientes adicionales "fantasma" distinto de cero).

Comentarios

La estructura DXVA_TCoefSingle se usa siempre que la marca HostResidDiff (bit 10 en el miembro wMBtype de la estructura DXVA_MBctrl_P_OffHostIDCT_1 o DXVA_MBctrl_I_OffHostIDCT_1 ) es 1 y el miembro bConfig4GroupedCoefs de la estructura DXVA_ConfigPictureDecode es cero.

Requisitos

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

Consulte también

DXVA_ConfigPictureDecode

DXVA_MBctrl_I_OffHostIDCT_1

DXVA_MBctrl_P_OffHostIDCT_1