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 :
- 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.
- 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.
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) |