estructura DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA (dxvahd.h)
Especifica el espacio de color de salida para las operaciones de blit, cuando se usa la alta definición de alta definición de aceleración de vídeo directX (DXVA-HD).
Sintaxis
typedef struct _DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA {
union {
struct {
UINT Usage : 1;
UINT RGB_Range : 1;
UINT YCbCr_Matrix : 1;
UINT YCbCr_xvYCC : 1;
UINT Reserved : 28;
};
UINT Value;
};
} DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA;
Miembros
Usage
Especifica si la salida está pensada para la reproducción o el procesamiento de vídeo (por ejemplo, la edición o la creación). El dispositivo puede optimizar el procesamiento en función del tipo. El valor de estado predeterminado es 0 (reproducción).
Valor | Significado |
---|---|
|
Reproducción. |
|
Procesamiento de vídeo. |
RGB_Range
Especifica el intervalo de colores RGB. El valor de estado predeterminado es 0 (intervalo completo).
Valor | Significado |
---|---|
|
Intervalo completo (0-255). |
|
Intervalo limitado (16-235). |
YCbCr_Matrix
Especifica la matriz de transferencia YCbCr. El valor de estado predeterminado es 0 (BT.601).
Valor | Significado |
---|---|
|
UIT-R BT.601. |
|
UIT-R BT.709. |
YCbCr_xvYCC
Especifica si la salida usa YCbCr convencional o YCbCr extendido (xvYCC). El valor de estado predeterminado es cero (YCbCr convencional).
Valor | Significado |
---|---|
|
YCbCr convencional. |
|
YCbCr extendido (xvYCC). |
Reserved
Value
Comentarios
El miembro RGB_Range se aplica a la salida RGB, mientras que los miembros YCbCr_Matrix y YCbCr_xvYCC se aplican a la salida de YCbCr (YUV). Si el dispositivo realiza la conversión de espacio de color en el color de fondo, usa los valores que se aplican a ambos espacios de color.
YCbCr extendido se puede usar con cualquier matriz de transferencia. YCbCr extendido no cambia el punto negro o el punto blanco: el punto negro sigue siendo 16 y el punto blanco sigue siendo 235. Sin embargo, YCbCr extendido permite explícitamente valores más negros que negros en el intervalo 1–15, y los valores más blancos en el intervalo 236–254. Cuando se usa YCbCr extendido, el controlador no debe recortar los valores luma al intervalo nominal de 16–235.
Si el dispositivo admite YCbCr extendido, establece la marca de funcionalidad DXVAHD_DEVICE_CAPS_xvYCC en el miembro DeviceCaps de la estructura DXVAHD_VPDEVCAPS . De lo contrario, el dispositivo omite el valor del miembro YCbCr_xvYCC y trata todas las salidas YCbCr como YCbCr convencionales. Para obtener las funcionalidades del dispositivo, llame a IDXVAHD_Device::GetVideoProcessorDeviceCaps.
Si el formato de salida es un formato RGB de gama amplia, la salida podría estar fuera del intervalo nominal [0...1] de sRGB. Esto es especialmente cierto si una o varias secuencias de entrada usan YCbCr extendido.
Ejemplos
HRESULT DXVAHD_SetOutputColorSpace(
IDXVAHD_VideoProcessor *pVP,
BOOL bPlayback, // TRUE = playback, FALSE = video processing
UINT RGB_Range, // 0 = 0-255, 1 = 16-235
UINT YCbCr_Matrix, // 0 = BT.601, 1 = BT.709
UINT YCbCr_xvYCC // 0 = Conventional YCbCr, 1 = xvYCC
)
{
DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA data =
{
bPlayback ? 0 : 1,
RGB_Range ? 1 : 0,
YCbCr_Matrix ? 1 : 0,
YCbCr_xvYCC ? 1 : 0
};
HRESULT hr = pVP->SetVideoProcessBltState(
DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE,
sizeof(data),
&data
);
return hr;
}
Requisitos
Cliente mínimo compatible | Windows 7 [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2008 R2 [solo aplicaciones de escritorio] |
Encabezado | dxvahd.h |
Consulte también
Estructuras de vídeo de Direct3D