Partager via


structure DXVA_TCoefSingle (dxva.h)

La structure DXVA_TCoefSingle est envoyée par le décodeur hôte à l’accélérateur pour spécifier valeurs de coefficient IDCT.

Syntaxe

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

Membres

wIndexWithEOB

Ce membre contient deux champs : TCoefIDX et TCoefEOB.

TCoefIDX

Spécifie l’index d’analyse du coefficient dans le bloc, tel que déterminé à partir du membre bConfigHostInverseScan de la structure DXVA_ConfigPictureDecode. Ce champ se trouve dans les 15 bits les plus significatifs du membre wIndexWithEOB .

Il existe deux façons d’utiliser TCoefIDX :

  1. Ordre de longueur d’exécution : lorsque bConfigHostInverseScan est égal à zéro, l’élément MBscanMethod de la commande de contrôle macroblock indique une analyse inverse zigzag, alternative verticale ou horizontale alternative. Ces commandes de contrôle macroblock sont définies dans les structures suivantes : DXVA_MBctrl_I_OffHostIDCT_1 ou DXVA_MBctrl_P_OffHostIDCT_1. Dans ce cas, TCoefIDX contient le nombre de coefficients à valeur zéro qui précèdent le coefficient actuel dans l’ordre d’analyse spécifié, suite au dernier coefficient transmis pour le bloc (ou par rapport au début du bloc si aucun ne précède). Tous les coefficients restants après le dernier coefficient envoyé dans l’ordre d’analyse inverse sont implicites pour avoir la valeur zéro.
  2. Ordre arbitraire : lorsque bConfigHostInverseScan est 1, l’élément MBscanMethod de la commande de contrôle macroblock indique un ordre arbitraire. Ces commandes de contrôle macroblock sont définies dans les structures suivantes : DXVA_MBctrl_I_OffHostIDCT_1 et DXVA_MBctrl_P_OffHostIDCT_1. Dans ce cas, TCoefIDX contient simplement l’index raster du coefficient dans le bloc (TCoefIDX = u + 8 * v, où vous et v êtes les coordonnées de fréquence horizontale et verticale de transformation), et tous les coefficients qui ne sont pas envoyés sont implicites pour avoir la valeur 0.
TCoefIDX doit toujours être inférieur à 64.

TCoefEOB

Indique si le coefficient actuel est le dernier associé au bloc actuel de coefficients de transformation. La valeur 1 indique que le coefficient actuel est le dernier pour le bloc et qu’une valeur de zéro indique qu’il n’est pas. Ce champ est dans le bit le moins significatif du membre wIndexWithEOB.

TCoefValue

Indique la valeur du coefficient dans le bloc. TCoefValue doit être découpée dans la plage appropriée, comme spécifié dans Low-Level IDCT Processing Elements par l’hôte avant de passer la valeur du coefficient à l’accélérateur pour opération de IDCT. Le contrôle d’incompatibilité MPEG-2, si nécessaire, est également la responsabilité de l’hôte, et non de l’accélérateur. (Cela peut nécessiter la création de coefficients « fantômes » supplémentaires non nuls.)

Remarques

La structure DXVA_TCoefSingle est utilisée chaque fois que l’indicateur HostResidDiff (bit 10 dans le membre wMBtype de la structure DXVA_MBctrl_P_OffHostIDCT_1 ou DXVA_MBctrl_I_OffHostIDCT_1) est égal à 1 et que le bConfig4GroupedCoefs membre de la structure DXVA_ConfigPictureDecode est égal à zéro.

Exigences

Exigence Valeur
d’en-tête dxva.h (include Dxva.h)

Voir aussi

DXVA_ConfigPictureDecode

DXVA_MBctrl_I_OffHostIDCT_1

DXVA_MBctrl_P_OffHostIDCT_1