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