structure DXVADDI_CONFIGPICTUREDECODE (d3dumddi.h)

La structure DXVADDI_CONFIGPICTUREDECODE décrit la configuration du décodage d’images compressées.

Syntaxe

typedef struct _DXVADDI_CONFIGPICTUREDECODE {
  [in] GUID   guidConfigBitstreamEncryption;
  [in] GUID   guidConfigMBcontrolEncryption;
  [in] GUID   guidConfigResidDiffEncryption;
  [in] UINT   ConfigBitstreamRaw;
  [in] UINT   ConfigMBcontrolRasterOrder;
  [in] UINT   ConfigResidDiffHost;
  [in] UINT   ConfigSpatialResid8;
  [in] UINT   ConfigResid8Subtraction;
  [in] UINT   ConfigSpatialHost8or9Clipping;
  [in] UINT   ConfigSpatialResidInterleaved;
  [in] UINT   ConfigIntraResidUnsigned;
  [in] UINT   ConfigResidDiffAccelerator;
  [in] UINT   ConfigHostInverseScan;
  [in] UINT   ConfigSpecificIDCT;
  [in] UINT   Config4GroupedCoefs;
  [in] USHORT ConfigMinRenderTargetBuffCount;
  [in] USHORT ConfigDecoderSpecific;
} DXVADDI_CONFIGPICTUREDECODE;

Membres

[in] guidConfigBitstreamEncryption

GUID de chiffrement pour la configuration d’un flux de bits.

[in] guidConfigMBcontrolEncryption

GUID de chiffrement pour la configuration du contrôle macroblock.

[in] guidConfigResidDiffEncryption

GUID de chiffrement pour la configuration du décodage des différences résiduelles.

[in] ConfigBitstreamRaw

Indicateur de traitement du flux de bits. La valeur 1 dans ce membre indique que les données d’image sont envoyées dans des mémoires tampons de flux binaire en tant que contenu de flux binaire brut. La valeur zéro indique que les données d’image sont envoyées à l’aide de mémoires tampons de commande de contrôle macroblock.

Définissez ce membre sur zéro si le membre ConfigResidDiffHost ou ConfigResidDiffAccelerator est 1. La valeur zéro dans ConfigBitstreamRaw est le niveau de prise en charge de base. La valeur 1 est recommandée.

[in] ConfigMBcontrolRasterOrder

Valeur UINT qui spécifie si les commandes de contrôle macroblock sont dans l’ordre d’analyse raster ou dans l’ordre arbitraire. La valeur 1 dans ce membre spécifie que les commandes de contrôle macroblock de chaque mémoire tampon de commande de contrôle macroblock sont dans l’ordre d’analyse raster. La valeur zéro indique l’ordre arbitraire. Un pilote peut restreindre la prise en charge de l’ordre d’analyse raster ; toutefois, un pilote doit prendre en charge l’ordre d’analyse arbitraire et raster.

[in] ConfigResidDiffHost

Configuration de la différence résiduelle de l’hôte. La valeur 1 dans ce membre spécifie que certaines données de décodage de différences résiduelles sont éventuellement envoyées sous forme de blocs dans le domaine spatial à partir de l’hôte. La valeur zéro spécifie que les données de domaine spatial ne sont pas envoyées. Définissez ce membre sur zéro si le membre ConfigBitstreamRaw est 1. Un accélérateur doit prendre en charge zéro et 1.

[in] ConfigSpatialResid8

Taille de mot utilisée pour représenter les blocs de domaine spatial de différence résiduelle pour les images prédites (non intras) lors de l’utilisation du décodage de différence résiduelle basée sur l’hôte (autrement dit, lorsque le membre ConfigResidDiffHost a la valeur 1).

Si ConfigSpatialResid8 a la valeur 1 et ConfigResidDiffHost a la valeur 1, l’hôte envoie des blocs de domaine spatial de différence résiduelle pour les macroblocks non intra qui utilisent des exemples signés 8 bits et pour les macroblocks intra dans les images prédites (non intra) dans un format qui dépend du membre ConfigIntraResidUnsigned comme suit :

  • Si ConfigIntraResidUnsigned a la valeur zéro, les blocs de domaine spatial pour les blocs intra macroblock sont envoyés sous forme de valeurs entières signées 8 bits qui sont relatives à une valeur de référence constante de 128.

  • Si ConfigIntraResidUnsigned a la valeur 1, les blocs de domaine spatial pour les blocs de macros intra sont envoyés sous forme de valeurs entières non signées 8 bits qui sont relatives à une valeur de référence constante de zéro.

Si ConfigSpatialResid8 a la valeur zéro et ConfigResidDiffHost a la valeur 1, l’hôte envoie des blocs de données de domaine spatial de différence résiduelle pour les macroblocks non intra qui utilisent des exemples signés 16 bits et pour les macroblocks intra dans les images prédites (nonintra) dans un format qui dépend de ConfigIntraResidUnsigned comme suit :

  • Si ConfigIntraResidUnsigned a la valeur zéro, les blocs de domaine spatial pour les blocs intra macroblocks sont envoyés sous forme de valeurs entières signées 16 bits par rapport à une valeur de référence constante de 2^(BPP-1), où BPP est le nombre de bits par exemple pour la vidéo non compressée (généralement une valeur de 8).

  • Si ConfigIntraResidUnsigned a la valeur 1, les blocs de domaine spatial pour les blocs intra macroblocks sont envoyés sous forme de valeurs entières non signées 16 bits qui sont relatives à une valeur de référence constante de zéro.

ConfigSpatialResid8 doit être égal à zéro si ConfigResidDiffHost est égal à zéro. Si ConfigResidDiffHost a la valeur 1, ConfigSpatialResid8 peut être n’importe quelle valeur.

Notes

Pour les images intra avec un BPP égal à 8, les blocs de domaine spatial doivent être envoyés à l’aide d’exemples 8 bits. Pour les images intra avec un BPP supérieur à 8, les blocs de domaine spatial doivent être envoyés à l’aide d’exemples 16 bits. Si ConfigIntraResidUnsigned est égal à zéro, ces exemples sont envoyés sous forme de valeurs entières signées qui sont relatives à une valeur de référence constante de 2^(BPP-1). Si ConfigIntraResidUnsigned a la valeur 1, ces exemples sont envoyés sous forme de valeurs entières non signées qui sont relatives à une valeur de référence constante de zéro.

[in] ConfigResid8Subtraction

Valeur UINT qui spécifie si les blocs de dépassement de capacité de différence 8 bits sont soustraits ou ajoutés. Si ce membre est défini sur 1, les blocs de dépassement de capacité de différence de 8 bits sont soustraits plutôt qu’ajoutés. Ce membre doit être égal à zéro, sauf si ConfigSpatialResid8 a la valeur 1. Si ConfigSpatialResid8 est 1, la valeur préférée pour ConfigResid8Subtraction est 1. La possibilité de soustraire les différences plutôt que de les ajouter permet au décodage de différence 8 bits d’être entièrement conforme à la plage comprise entre -255 et +255 des valeurs requises dans les spécifications du décodeur vidéo. Cette fonctionnalité permet une conformité complète, car +255 ne peut pas être représenté comme l’ajout de deux nombres 8 bits signés, mais tout nombre dans la plage comprise entre -255 et +255 peut être représenté comme la différence entre deux nombres 8 bits signés (+255 est égal à +127 moins -128).

[in] ConfigSpatialHost8or9Clipping

Valeur UINT qui spécifie si le découpage est effectué par l’hôte. Si ce membre est défini sur 1, les blocs de domaine spatial pour les blocs intra macroblock sont clippés à une plage de 8 bits sur l’hôte et les blocs de domaine spatial pour les macroblocks nonintra sont coupés à une plage de 9 bits sur l’hôte. La valeur zéro indique qu’aucune coupe de ce type n’est effectuée par l’hôte. Ce membre doit être égal à zéro, sauf si ConfigSpatialResid8 a la valeur zéro et ConfigResidDiffHost a la valeur 1. La valeur préférée pour ConfigSpatialHost8or9Clipping est zéro.

[in] ConfigSpatialResidInterleaved

Valeur UINT qui spécifie si les données de différence résiduelle de domaine spatial sont envoyées sous une forme entrelacée de chrominance. Si ce membre a la valeur 1, toutes les données de différence résiduelle de domaine spatial sont envoyées sous une forme entrelacée de chrominance qui correspond au modèle d’entrelacement de chrominance au format YUV. Ce membre doit être égal à zéro, sauf si ConfigResidDiffHost a la valeur 1 et que le format YUV est NV12 ou NV21. La valeur préférée pour ConfigSpatialResidInterleaved est zéro.

[in] ConfigIntraResidUnsigned

Méthode de représentation des blocs de domaine spatial des données de différence résiduelle pour les blocs intra lors de l’utilisation du décodage de différence basé sur l’hôte (autrement dit, lorsque le membre ConfigResidDiffHost est égal à 1).

Si ConfigIntraResidUnsigned a la valeur zéro et ConfigResidDiffHost a la valeur 1, les blocs de données de différence résiduelle de domaine spatial pour les blocs de macroblocks intra sont envoyés comme suit :

  • Dans une image non-intra, si le membre ConfigSpatialResid8 est égal à zéro, les blocs de données de différence résiduelle de domaine spatial pour les blocs de macros intra sont envoyés sous forme de valeurs entières signées 16 bits relatives à une valeur de référence constante de 2^(BPP-1), où BPP est le nombre de bits par exemple pour la vidéo non compressée (généralement une valeur de 8).

  • Dans une image non intra si ConfigSpatialResid8 a la valeur 1 et dans une image intra si BPP est égal à 8 (quelle que soit la valeur de ConfigSpatialResid8), les blocs de données de différence résiduelle de domaine spatial pour les blocs intra macroblocks sont envoyés sous forme de valeurs entières signées 8 bits qui sont relatives à une valeur de référence constante de 128.

Si ConfigIntraResidUnsigned a la valeur 1 et ConfigResidDiffHost a la valeur 1, les blocs de données de différence résiduelle de domaine spatial pour les macroblocks intra sont envoyés comme suit :

  • Dans une image non intra si ConfigSpatialResid8 est égal à zéro, les blocs de données de différence résiduelle de domaine spatial pour les blocs intra macroblocks sont envoyés sous forme de valeurs entières non signées 16 bits qui sont relatives à une valeur de référence constante de zéro.

  • Dans une image non intra si ConfigSpatialResid8 a la valeur 1 et dans une image intra si BPP est égal à 8 (quelle que soit la valeur de ConfigSpatialResid8), les blocs de données de différence résiduelle de domaine spatial pour les blocs intra macroblocks sont envoyés sous forme de valeurs entières non signées 8 bits par rapport à une valeur de référence constante de zéro.

ConfigIntraResidUnsigned doit être égal à zéro, sauf si ConfigResidDiffHost a la valeur 1. La valeur préférée pour ConfigIntraResidUnsigned est zéro.

[in] ConfigResidDiffAccelerator

Configuration de la différence résiduelle de l’accélérateur. La valeur 1 dans ce membre indique que les blocs de domaine de transformation de données à coefficient peuvent être envoyés à partir de l’hôte pour IDCT basé sur un accélérateur. La valeur zéro indique que l’IDCT basé sur un accélérateur n’est pas utilisé.

Si le membre ConfigResidDiffHost et ConfigResidDiffAccelerator sont tous deux 1, un décodage de différences résiduelles est effectué sur l’hôte et d’autres sur l’accélérateur, comme indiqué par les commandes de contrôle au niveau macroblock. ConfigResidDiffAccelerator doit être égal à zéro si le membre bConfigBitstreamRaw est 1.

La valeur préférée pour ConfigResidDiffAccelerator est 1.

Si ConfigResidDiffAccelerator et ConfigResidDiffHost ont la valeur 1, le décodage des différences résiduelles peut être partagé entre l’hôte et l’accélérateur sur une base macroblock. Ce partage est un niveau de capacité d’accélérateur encore plus élevé que lorsque ConfigResidDiffAccelerator a la valeur 1 et ConfigResidDiffHost est défini sur zéro.

[in] ConfigHostInverseScan

Valeur UINT qui spécifie si l’analyse inverse du traitement de bloc de domaine de transformation est effectuée sur l’hôte ou sur l’accélérateur. La valeur 1 dans ce membre indique que l’analyse inverse pour le traitement de bloc de domaine de transformation est effectuée sur l’hôte, et que les index absolus sont envoyés à la place pour les coefficients de transformation. La valeur zéro indique que l’analyse inverse est effectuée sur l’accélérateur. ConfigHostInverseScan doit être égal à zéro si ConfigResidDiffAccelerator est égal à zéro ou si le membre Config4GroupedCoefs est 1.

La valeur préférée pour ConfigHostInverseScan est 1 si ConfigResidDiffAccelerator est 1.

[in] ConfigSpecificIDCT

Valeur UINT qui spécifie l’utilisation d’une méthode IDCT spécifique pour IDCT hors hôte. La valeur 1 dans ce membre indique l’utilisation de l’IDCT qui est spécifié dans l’Annexe W de la Recommandation UIT-T H.263, que vous pouvez découvrir sur le site web de l’Union internationale des télécommunications . La valeur zéro indique que n’importe quel IDCT conforme peut être utilisé pour l’IDCT hors hôte. (Les valeurs autres que zéro et 1 sont réservées.)

ConfigSpecificIDCT doit être égal à zéro si ConfigResidDiffAccelerator est égal à zéro, ce qui indique le décodage de différence résiduelle basé sur l’hôte.

Notes

ConfigSpecificIDCT ne doit pas être défini sur 1 pour une utilisation avec la vidéo MPEG-2.

[in] Config4GroupedCoefs

Valeur UINT qui spécifie la façon dont les coefficients de transformation pour IDCT hors hôte sont envoyés. La valeur 1 dans ce membre indique que les coefficients de transformation pour IDCT hors hôte sont envoyés à l’aide de la structure DXVA_TCoef4Group plutôt que de la structure DXVA_TCoefSingle . Config4GroupedCoefs est égal à zéro si ConfigResidDiffAccelerator est égal à zéro ou si ConfigHostInverseScan a la valeur 1.

La valeur préférée pour Config4GroupedCoefs est zéro si ConfigResidDiffAccelerator est 1.

[in] ConfigMinRenderTargetBuffCount

Valeur USHORT qui spécifie le nombre minimal de mémoires tampons cibles de rendu.

[in] ConfigDecoderSpecific

Valeur USHORT qui spécifie les fonctionnalités spécifiques au décodeur à configurer. Pour plus d’informations sur les fonctionnalités d’un décodeur, consultez la spécification de ce décodeur. Pour obtenir la liste des décodeurs, consultez Fourniture de fonctionnalités pour le décodage vidéo.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible dans Windows Vista et les versions ultérieures des systèmes d’exploitation Windows.
En-tête d3dumddi.h (inclure D3dumddi.h)

Voir aussi

D3DDDIARG_GETCAPS

D3DDDICAPS_TYPE

GetCaps