Commandes de contrôle Macroblock

La génération de chaque macroblock décodé pendant le décodage d’images compressées est régie par une structure de commande de contrôle macroblock. Quatre structures de commande de contrôle macroblock sont définies dans le fichier d’en-tête dxva.h :

DXVA_MBctrl_I_HostResidDiff_1

DXVA_MBctrl_I_OffHostIDCT_1

DXVA_MBctrl_P_HostResidDiff_1

DXVA_MBctrl_P_OffHostIDCT_1

Les structures explicitement définies dans dxva.h sont des cas spéciaux d’une conception générique utilisée pour les commandes de contrôle macroblock dans DirectX VA. Pour obtenir une description de cette conception générique, consultez La forme générique des structures de commande de contrôle Macroblock.

La sélection de la structure de commande de contrôle macroblock à utiliser est basée sur le type d’image à décoder et sur la façon dont elle sera décodée. Les membres et indicateurs de structure suivants déterminent le type d’image, les options de décodage et les structures de contrôle macroblock DirectX VA qui seront utilisées :

  • Les membres bPicIntra, bChromaFormat, bPicOBMC, bPicBinPB, bPic4MVallowed et bMV_RPS de la structure DXVA_PictureParameters .

  • Membre bConfigResidDiffHost de la structure DXVA_ConfigPictureDecode .

  • Indicateur HostResidDiff (bit 10 dans le membre wMBtype de chaque structure de contrôle macroblock).

Les valeurs de ces membres et indicateurs de structure sont indiquées dans les sections suivantes.

DXVA_MBctrl_I_HostResidDiff_1

La structure DXVA_MBctrl_I_HostResidDiff_1 est utilisée pour les images intra avec décodage de différence résiduelle basée sur l’hôte. Les membres et indicateurs de structure suivants doivent être égaux aux valeurs indiquées :

  • bPicIntra doit être égal à 1 (images intra).

  • bChromaFormat doit être égal à 1 (échantillonnage 4:2:0).

  • HostResidDiff doit être égal à 1 (IDCT basé sur l’hôte).

  • bConfigResidDiffHost doit être égal à 1 (décodage de différence résiduelle basé sur l’hôte).

DXVA_MBctrl_I_OffHostIDCT_1

La structure DXVA_MBctrl_I_OffHostIDCT_1 est utilisée pour les images intra avec échantillonnage 4:2:0 avec décodage de la différence résiduelle hors hôte. Les membres et indicateurs de structure suivants doivent être égaux aux valeurs indiquées :

  • bPicIntra doit être égal à 1 (images intra).

  • bChromaFormat doit être égal à 1 (échantillonnage 4:2:0).

  • HostResidDiff doit être égal à zéro (IDCT hors hôte).

  • bConfigResidDiffHost doit être égal à zéro (décodage de différence résiduelle hors hôte).

DXVA_MBctrl_P_HostResidDiff_1

La structure DXVA_MBctrl_P_HostResidDiff_1 est utilisée pour les images P et B avec décodage de différence résiduelle basée sur l’hôte. Les processus de contrôle macroblock suivants ne sont pas utilisés : OBMC, utilisation de quatre vecteurs de mouvement par macroblock pour la partie B d’une image PB et utilisation de la sélection d’images de référence de vecteur de mouvement.

Les membres et indicateurs de structure suivants doivent être égaux aux valeurs indiquées :

  • bPicIntra doit être égal à zéro (décodage de l’image P et des vecteurs de mouvement d’image B ou de dissimulation dans i image).

  • bChromaFormat doit être égal à 1 (échantillonnage 4:2:0).

  • HostResidDiff doit être égal à 1 (IDCT basé sur l’hôte).

  • bPicOBMC doit être égal à zéro (OBMC non utilisé).

  • bMV_RPS doit être égal à zéro (sélection d’image de référence de vecteur de mouvement non utilisée).

  • Au moins un de bPicBinPB (image B dans la compensation de mouvement pb-frame non utilisée) et bPic4MVallowed (quatre vecteurs de mouvement de référence avant par macroblock non utilisé) doit être égal à zéro.

  • bConfigResidDiffHost doit être égal à 1 (décodage de différence résiduelle basé sur l’hôte).

DXVA_MBctrl_P_OffHostIDCT_1

La structure DXVA_MBctrl_P_OffHostIDCT_1 est utilisée pour les images P et B avec échantillonnage 4:2:0 avec décodage de la différence résiduelle hors hôte. Les processus de contrôle macroblock suivants ne sont pas utilisés : OBMC, utilisation de quatre vecteurs de mouvement par macroblock pour la partie B d’une image PB et utilisation de la sélection d’images de référence de vecteur de mouvement.

Les membres et indicateurs de structure suivants doivent être égaux aux valeurs indiquées :

  • bPicIntra membre de la structure DXVA_PictureParameters doit être égal à zéro (décodage des images P et B ou vecteurs de mouvement de dissimulation dans les images I).

  • bChromaFormat doit être égal à 1 (échantillonnage 4:2:0).

  • HostResidDiff doit être égal à zéro (IDCT hors hôte).

  • bPicOBMC doit être égal à zéro (OBMC non utilisé).

  • bMV_RPS doit être égal à zéro (sélection d’image de référence de vecteur de mouvement non utilisée).

  • Au moins un de bPicBinPB (image B dans la compensation de mouvement pb-frame non utilisée) et bPic4MVallowed (quatre vecteurs de mouvement de référence avant par macroblock non utilisé) doit être égal à zéro.

  • bConfigResidDiffHost doit être égal à zéro (décodage de différence résiduelle hors hôte).