структура DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA (dxvahd.h)
Задает выходное цветовое пространство для операций заливки при использовании Microsoft DirectX Video Acceleration High Definition (DXVA-HD).
Синтаксис
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;
Члены
Usage
Указывает, предназначены ли выходные данные для воспроизведения или обработки видео (например, редактирования или разработки). Устройство может оптимизировать обработку в зависимости от типа. Значение состояния по умолчанию — 0 (воспроизведение).
Значение | Значение |
---|---|
|
Воспроизведения. |
|
Обработка видео. |
RGB_Range
Задает диапазон цветов RGB. Значение состояния по умолчанию — 0 (полный диапазон).
Значение | Значение |
---|---|
|
Полный диапазон (0–255). |
|
Ограниченный диапазон (16–235). |
YCbCr_Matrix
Задает матрицу передачи YCbCr. Значение состояния по умолчанию — 0 (BT.601).
Значение | Значение |
---|---|
|
ITU-R BT.601. |
|
ITU-R BT.709. |
YCbCr_xvYCC
Указывает, используется ли в выходных данных обычный YCbCr или расширенный YCbCr (xvYCC). Значение состояния по умолчанию равно нулю (обычное значение YCbCr).
Значение | Значение |
---|---|
|
Обычный YCbCr. |
|
Расширенный YCbCr (xvYCC). |
Reserved
Value
Комментарии
Элемент RGB_Range применяется к выходным данным RGB, а элементы YCbCr_Matrix и YCbCr_xvYCC — к выходным данным YCbCr (YUV). Если устройство выполняет преобразование цветового пространства в цвет фона, оно использует значения, которые применяются к обоим цветовым пространствам.
Расширенный YCbCr можно использовать с любой матрицей передачи. Расширенный YCbCr не изменяет черную или белую точку— черная точка по-прежнему имеет значение 16, а белая — 235. Однако расширенные значения YCbCr явно допускают черные значения в диапазоне от 1 до 15 и более белые значения в диапазоне 236–254. При использовании расширенного YCbCr драйвер не должен обрезать значения luma в номинальном диапазоне 16–235.
Если устройство поддерживает расширенные функции YCbCr, оно устанавливает флаг возможности DXVAHD_DEVICE_CAPS_xvYCC в элементе DeviceCaps структуры DXVAHD_VPDEVCAPS . В противном случае устройство игнорирует значение элемента YCbCr_xvYCC и обрабатывает все выходные данные YCbCr как обычные YCbCr. Чтобы получить возможности устройства, вызовите IDXVAHD_Device::GetVideoProcessorDeviceCaps.
Если выходной формат является форматом RGB с широкой гаммой, выходные данные могут выпадать за пределы номинального диапазона sRGB [0...1]. Это особенно верно, если один или несколько входных потоков используют расширенный YCbCr.
Примеры
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;
}
Требования
Минимальная версия клиента | Windows 7 [только классические приложения] |
Минимальная версия сервера | Windows Server 2008 R2 [только классические приложения] |
Верхняя часть | dxvahd.h |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по