énumération DXVA2_NominalRange (dxva2api.h)

Décrit comment mapper des données de couleur à une plage [0...1] normalisée.

Ces indicateurs sont utilisés dans la structure DXVA2_ExtendedFormat . Ils indiquent si la plage de valeurs de couleur inclut la salle d’attente (valeurs supérieures à 100 % blanches) et l’orte-ciel (les valeurs situées sous le noir font référence).

Syntaxe

typedef enum _DXVA2_NominalRange {
  DXVA2_NominalRangeMask = 0x7,
  DXVA2_NominalRange_Unknown = 0,
  DXVA2_NominalRange_Normal = 1,
  DXVA2_NominalRange_Wide = 2,
  DXVA2_NominalRange_0_255 = 1,
  DXVA2_NominalRange_16_235 = 2,
  DXVA2_NominalRange_48_208 = 3
} DXVA2_NominalRange;

Constantes

 
DXVA2_NominalRangeMask
Valeur : 0x7
Masque de bits pour valider les valeurs d’indicateur. Cette valeur n’est pas un indicateur valide.
DXVA2_NominalRange_Unknown
Valeur : 0
Plage nominale inconnue ou non spécifiée.

Si cette valeur est utilisée dans le membre DestFormat de la structure DXVA2_VideoProcessBltParams , le pilote détermine la plage nominale optimale en fonction de l’espace de couleurs de destination. Par exemple, la surface de destination est généralement sRGB, qui a une plage nominale de 0 à 255 par canal. Toutefois, un pilote peut utiliser une technique telle que le contrôle de gain automatique pour optimiser la plage dynamique tout en conservant les valeurs au-dessus du blanc de référence.
DXVA2_NominalRange_Normal
Valeur : 1
Équivalent à DXVA2_NominalRange_0_255.
DXVA2_NominalRange_Wide
Valeur : 2
Équivalent à DXVA2_NominalRange_16_235.
DXVA2_NominalRange_0_255
Valeur : 1
La plage normalisée [0...1] est mappée à [0...255] pour les exemples 8 bits ou à [0...1023] pour les exemples 10 bits.
DXVA2_NominalRange_16_235
Valeur : 2
La plage normalisée [0...1] est mappée à [16...235] pour les exemples 8 bits ou [64...940] pour les exemples 10 bits.
DXVA2_NominalRange_48_208
Valeur : 3
La plage normalisée [0..1] est mappée à [48...208] pour les exemples 8 bits ou [192...832] pour les exemples 10 bits.

Notes

Pour les couleurs YUV, ces indicateurs spécifient la conversion entre Y’CbCr et Y’PbPr. L’espace de couleur Y’PbPr a une plage de [0..1] pour Y' (luma) et [-0.5...0.5] pour Pb/Pr (chroma).

Valeur Description
DXVA2_NominalRange_0_255 Ne doit pas être utilisé pour les données YUV.
DXVA2_NominalRange_16_235 Pour les composants Y’CbCr 8 bits :
  • La plage Y de [0...1] est mappée à [16..235] pour les valeurs Y 8 bits.
  • Les plages Pb/Pr de [-0,5...0.5] correspondent à [16...240] pour les valeurs Cb/Cr 8 bits.
Pour les exemples avec n bits de précision, les équations générales sont les suivantes :
  • Y' = (Y' * 219 + 16) * 2 ^ (n-8)
  • Cb = (Pb * 224 + 128) * 2 ^ (n-8)
  • Cr = (Pr * 224 + 128) * 2 ^ (n-8)
Les équations inverses à convertir de Y’CbCr en Y’PbPr sont les suivantes :
  • Y' = (Y' / 2 ^ (n-8) - 16) / 219
  • Pb = (Cb / 2 ^ (n-8) - 128) / 224
  • Pr = (Cr / 2 ^ (n-8) - 128) / 224
DXVA2_NominalRange_48_208 Pour les valeurs Y’CbCr 8 bits, la plage Y' de [0..1] correspond à [48...208].
 

Pour les couleurs RVB, les indicateurs différencient différents espaces RVB.

Valeur Description
DXVA2_NominalRange_0_255 Srgb
DXVA2_NominalRange_16_235 Studio RVB ; UIT-R BT.709
DXVA2_NominalRange_48_208 ITU-R BT.1361 RVB
 

Les données vidéo peuvent contenir des valeurs supérieures ou inférieures à la plage nominale.

Note Les valeurs nommées DXVA2_NominalRange_Normal et DXVA2_NominalRange_Wide sont une source potentielle de confusion. Large fait référence à la plage possible de valeurs analogiques qui peuvent être représentées, en mappant la plage nominale [0...1] dans une plage plus étroite de valeurs numériques . Étant donné que la signification de large dans ce contexte est ambiguë, les valeurs équivalentes nommées DXVA2_NominalRange_0_255 et DXVA2_NominalRange_16_235 sont préférées. Ces noms transmettent explicitement la signification de l’énumération et sont moins susceptibles d’être mal interprétés.
 
Cette énumération équivaut à l’énumération DXVA_NominalRange utilisée dans DXVA 1.0, même si elle définit des valeurs supplémentaires.

Si vous utilisez l’interface IMFMediaType pour décrire le format vidéo, la plage nominale est spécifiée dans l’attribut MF_MT_VIDEO_NOMINAL_RANGE .

Spécifications

   
Client minimal pris en charge Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau uniquement]
En-tête dxva2api.h

Voir aussi

Informations de couleur étendues

Énumérations Media Foundation