structure DXVA_MBctrl_I_OffHostIDCT_1 (dxva.h)

La structure DXVA_MBctrl_I_OffHostIDCT_1 est envoyée une fois par macroblock par le décodeur hôte à l’accélérateur pour spécifier les commandes de contrôle macroblock pour les images intra 4 :2 :0 lors de l’utilisation d’IDCT hors hôte.

Syntaxe

typedef struct _DXVA_MBctrl_I_OffHostIDCT_1 {
  WORD  wMBaddress;
  WORD  wMBtype;
  DWORD dwMB_SNL;
  WORD  wPatternCode;
  BYTE  bNumCoef[DXVA_NumBlocksPerMB_420];
} DXVA_MBctrl_I_OffHostIDCT_1;

Membres

wMBaddress

Spécifie l’adresse macroblock du macroblock actuel dans l’ordre d’analyse raster. Pour obtenir des exemples d’adresses macroblock, consultez Adresses macrobloc.

wMBtype

Spécifie le type de macroblock en cours de traitement. Les bits suivants définissent le traitement macroblock.

Bits Description
15 à 12 MvertFieldSel_3 (bit 15, le bit le plus significatif) à MvertFieldSel_0 (bit 12)
Doit être zéro.
11 Bit réservé
Doit être zéro.
10 HostResidDiff
Spécifie si les blocs décodés de différence résiduelle de domaine spatial sont envoyés ou si les coefficients de transformation sont envoyés pour l’IDCT hors hôte pour le macroblock actuel.
L’indicateur HostResidDiff est toujours égal à zéro dans cette structure. Cet indicateur doit être égal à zéro si bConfigResidDiffHost est égal à zéro. Cet indicateur doit être égal à 1 si bConfigResidDiffAccelerator est égal à zéro. Les membres bConfigResidDiffHost et bConfigResidDiffAccelerator sont contenus dans la structure DXVA_ConfigPictureDecode .
9 et 8 MotionType
Cela ne s’applique pas aux images intra. Les deux bits doivent être zéro.
7 et 6 MBscanMethod
Spécifie la méthode d’analyse de la commande de contrôle macroblock. Cette valeur doit être égale à bPicScanMethod si bPicScanFixed a la valeur 1.
Si bConfigHostInverseScan est égal à zéro, MBscanMethod est l’une des valeurs suivantes :
  • Analyse zigzag de zéro â̈s (MPEG-2 Figure 7-2)
  • 1 analyse alternative-verticale (MPEG-2 Figure 7-3)
  • 2 â̈' analyse alternative-horizontale (H.263 Figure I.2 Partie a)
Si bConfigHostInverseScan a la valeur 1, MBscanMethod est égal à 3, qui est une analyse arbitraire avec une adresse à coefficient absolu. bPicScanMethod et bPicScanFixed sont membres de DXVA_PictureParameters . bConfigHostInverseScan est membre de DXVA_ConfigPictureDecode.
5 FieldResidual
Indique si les blocs de différence résiduelle utilisent une structure IDCT de champ comme spécifié dans MPEG-2.
Doit être égal à 1 si le membre bPicStructure de DXVA_PictureParameters est 1 ou 2. Lorsqu’il est utilisé pour MPEG-2, FieldResidual doit être égal à zéro si l’indicateur frame_pred_frame_DCT dans la syntaxe MPEG-2 est 1, et doit être égal à l’élément dct_type de la syntaxe MPEG-2 si dct_type est présent pour le macroblock.
4 H261LoopFilter
Doit être zéro.
3 Motion4MV
Doit être zéro.
2 MotionBackward
Doit être zéro.
1 MotionForward
Doit être zéro.
0 IntraMacroblock
Doit être égal à 1.

dwMB_SNL

wPatternCode

Indique si les données de différence résiduelle sont envoyées pour chaque bloc du macroblock. Dans une image intra, les données de différence résiduelle sont envoyées pour chaque bloc du macroblock. Les bits dans wPatternCode qui font référence à tous les blocs du macroblock actuel doivent être de 1 dans DXVA_MBctrl_I_OffHostIDCT_1.

Le bit (11-i) de wPatternCode (où le bit 0 est le bit le moins significatif) indique si les données de différence résiduelle sont envoyées pour le bloc i, où i est l’index du bloc dans le macroblock comme spécifié dans mpeg-2 figures 6-10, 6-11 et 6-12 (ordre d’analyse raster pour Y, suivi des blocs Cb 4 :2 :0 dans l’ordre d’analyse raster, suivi de 4 :2 :0 blocs de Cr, suivi de 4 :2 :2 blocs de Cb, suivi de 4 :2 :2 blocs de Cr, suivi de 4 :4 :4 blocs de Cb, suivi de 4 :4 :4 blocs de Cr). Les données des blocs codés (ces blocs dont le bit (11-i) est égal à 1) se trouvent dans la mémoire tampon de codage résiduelle dans le même ordre d’indexation (augmentation de i). Pour les données MPEG-2 4 :2 :0, la valeur de wPatternCode correspond au déplacement de la valeur décodée de CBP (modèle de bloc codé) vers la gauche par six positions de bits (ces positions bits inférieures utilisées pour les formats chroma 4 :2 :2 et 4 :4 :4).

bNumCoef[DXVA_NumBlocksPerMB_420]

Chaque valeur du tableau bNumCoef indique le nombre de coefficients dans la mémoire tampon de données de différence résiduelle pour chaque bloc i du macroblock.

L’indice de tableau i est l’index du bloc dans le macroblock comme spécifié dans la vidéo MPEG-2 Figures 6-10, 6-11 et 6-12 (ordre raster-scan for Y, suivi de Cb, suivi de Cr).

Ce membre est utilisé uniquement lorsque l’indicateur HostResidDiff (bit 10 en wMBtype) est égal à zéro et que bChromaFormat a la valeur 1 (4 :2 :0). S’il est utilisé dans les formats 4 :2 :2 ou 4 :4 :4, il augmente la taille des commandes de contrôle macroblock classiques au-delà d’une limite d’alignement de mémoire critique. Par conséquent, le bit TCoefEOB dans la structure DXVA_TCoefSingle est utilisé pour déterminer le nombre de coefficients dans chaque bloc dans des cas autres que 4 :2 :0.

L’objectif de bNumCoef est d’indiquer la quantité de données présentes pour chaque bloc dans la mémoire tampon de données de différence résiduelle, exprimée en tant que nombre de coefficients présents. Lorsque le membre bConfig4GroupedCoefs de la structure DXVA_ConfigPictureDecode est 1, bNumCoef peut contenir le nombre réel de coefficients envoyés pour le bloc ou cette valeur arrondie à un multiple de quatre. Les données de ces coefficients se trouvent dans la mémoire tampon de différence résiduelle dans le même ordre.

Remarques

Les macroblocks ignorés ne étant pas utilisés par les images intra, la variable MBskipsFollowing doit être zéro. La variable MBdataLocation doit être égale à zéro pour le premier macroblock de la mémoire tampon de la commande macroblock. Pour plus d’informations sur la façon dont les macroblocks ignorés sont générés, consultez Génération de macroblocks ignorés.

Configuration requise

Condition requise Valeur
En-tête dxva.h (inclure Dxva.h)

Voir aussi

DXVA_ConfigPictureDecode

DXVA_MBctrl_I_HostResidDiff_1

DXVA_PictureParameters

DXVA_TCoefSingle