Share via


DXVA2_NominalRange enumeração (dxva2api.h)

Descreve como mapear dados de cor para um intervalo normalizado [0...1].

Esses sinalizadores são usados na estrutura DXVA2_ExtendedFormat . Eles indicam se o intervalo de valores de cor inclui espaço para a cabeça (valores acima de 100% de branco) e toeroom (valores abaixo da referência preto).

Syntax

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
Valor: 0x7
Máscara de bits para validar valores de sinalizador. Esse valor não é um sinalizador válido.
DXVA2_NominalRange_Unknown
Valor: 0
Intervalo nominal desconhecido ou não especificado.

Se esse valor for usado no membro DestFormat da estrutura DXVA2_VideoProcessBltParams , o driver determinará o intervalo nominal ideal com base no espaço de cor de destino. Por exemplo, a superfície de destino geralmente é sRGB, que tem um intervalo nominal de 0 a 255 por canal. No entanto, um driver pode usar uma técnica como controle de ganho automático para maximizar o intervalo dinâmico, preservando valores acima do branco de referência.
DXVA2_NominalRange_Normal
Valor: 1
Equivalente a DXVA2_NominalRange_0_255.
DXVA2_NominalRange_Wide
Valor: 2
Equivalente a DXVA2_NominalRange_16_235.
DXVA2_NominalRange_0_255
Valor: 1
O intervalo normalizado [0...1] mapeia para [0...255] para amostras de 8 bits ou [0...1023] para amostras de 10 bits.
DXVA2_NominalRange_16_235
Valor: 2
O intervalo normalizado [0...1] mapeia para [16...235] para amostras de 8 bits ou [64...940] para amostras de 10 bits.
DXVA2_NominalRange_48_208
Valor: 3
O intervalo normalizado [0..1] mapeia para [48...208] para amostras de 8 bits ou [192...832] para amostras de 10 bits.

Comentários

Para cores YUV, esses sinalizadores especificam como converter entre Y'CbCr e Y'PbPr. O espaço de cor Y'PbPr tem um intervalo de [0..1] para Y' (luma) e [-0.5...0.5] para Pb/Pr (chroma).

Valor Descrição
DXVA2_NominalRange_0_255 Não deve ser usado para dados YUV.
DXVA2_NominalRange_16_235 Para componentes Y'CbCr de 8 bits:
  • O intervalo Y' de [0...1] é mapeado para [16..235] para valores Y' de 8 bits.
  • Intervalos Pb/Pr de [-0.5...0.5] mapeiam para [16...240] para valores Cb/Cr de 8 bits.
Para exemplos com n bits de precisão, as equações gerais são:
  • Y' = (Y' * 219 + 16) * 2 ^ (n-8)
  • Cb = (Pb * 224 + 128) * 2 ^ (n-8)
  • Cr = (Pr * 224 + 128) * 2 ^ (n-8)
As equações inversas a serem convertidas de Y'CbCr para Y'PbPr são:
  • 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 Para valores Y'CbCr de 8 bits, o intervalo Y' de [0..1] é mapeado para [48...208].
 

Para cores RGB, os sinalizadores diferenciam vários espaços RGB.

Valor Descrição
DXVA2_NominalRange_0_255 Srgb
DXVA2_NominalRange_16_235 Studio RGB; ITU-R BT.709
DXVA2_NominalRange_48_208 ITU-R BT.1361 RGB
 

Os dados de vídeo podem conter valores acima ou abaixo do intervalo nominal.

Nota Os valores chamados DXVA2_NominalRange_Normal e DXVA2_NominalRange_Wide são uma possível fonte de confusão. Wide refere-se ao possível intervalo de valores analógicos que podem ser representados, mapeando o intervalo nominal [0...1] em um intervalo mais estreito de valores digitais . Como o significado de wide nesse contexto é ambíguo, os valores equivalentes chamados DXVA2_NominalRange_0_255 e DXVA2_NominalRange_16_235 são preferenciais. Esses nomes transmitem explicitamente o significado da enumeração e são menos propensos a serem interpretados incorretamente.
 
Essa enumeração é equivalente à enumeração DXVA_NominalRange usada no DXVA 1.0, embora defina valores adicionais.

Se você estiver usando a interface IMFMediaType para descrever o formato de vídeo, o intervalo nominal será especificado no atributo MF_MT_VIDEO_NOMINAL_RANGE .

Requisitos

   
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Cabeçalho dxva2api.h

Confira também

Informações de cor estendidas

Enumerações do Media Foundation