MPC VR - Поддержка Dolby Vision

Автор V0lt, 20 июля 2023, 21:20:18

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

V0lt

Cобираем информацию по Dolby Vision и пытаемся корректно отобразить такое видео в MPC-BE.

Описание патента по Dolby Vision.

Сэмплы можно найти на странице Samples - Official Kodi Wiki.
Сэпмлы можно условно разделить на две группы:
1. Совместимые, которые нормально отображаются на большинстве плееров.
2. Несовместимие, которые нормально отображаются только на плеерах поддерживаемых Dolby Vision. На других плеерах цвета будут сильно искажены.

Плееры, которые поддерживают Dolby Vision:
* Кино и ТВ. Необходимо установить в систему Dolby Vision Extension.
* mpv. Необходимо выбрать вывод видео - gpu-next. Я советую плеер mpv.net, в котором сделать это можно через окно настроек без ручного редактирования конфигурационных файлов.

Поддержка для MPC VR в разработке...

Для тестирования файлов Dolby Vision в MPC-BE нужно использовать:
1. MPC VR 0.6.8.2113 или новее
2. MPC-BE 1.6.8.24 или новее.

V0lt

#1
Поддержка Dolby Vision реализована в библиотеке libplacebo.
Преобразования цветов происходит в функции pl_shader_decode_color, из которой можно выделить следующие этапы:

1. Масштабирование
ident_t scale = SH_FLOAT(pl_color_repr_normalize(repr));
GLSL("color.rgb *= vec3("$"); \n", scale);
Этап не сильно важен, на оттенки цветов почти не влияет.

2. Изменение формы
pl_shader_dovi_reshape(sh, repr->dovi);Важный этап, но влияет больше на яркость, чем на цвета.

3. Цветовые преобразования
pl_transform3x3 tr = pl_color_repr_decode(repr, params);
...
GLSL("color.rgb = "$" * color.rgb + "$"; \n", cmat, cmat_c);
Самый важный этап, использует ycc_to_rgb_matrix и ycc_to_rgb_offset.

4. Эм-м, дополнительные цветовые преобразования.
pl_matrix3x3_mul(&dovi_lms2rgb, &repr->dovi->linear);
...
GLSL("color.rgb = "$" * color.rgb; \n", mat);
Этап использует rgb_to_lms_matrix.


V0lt

#3
Выложил 3 варианта поддержки Dolby Vision для DX9.
mpcvr_0.6.8.2080_dovi_dx9_lut_float32.zip
mpcvr_0.6.8.2081_dovi_dx9_lut_float16.zip
mpcvr_0.6.8.2082_dovi_dx9_func.zip
Кто имеет возможность, сравните по эффективности.

Проверил на ролике dolby-vision-containers-(www.demolandia.net).mp4 (23,976 к/сек), на котором кадры не дропаются. Режим энергопотребления - максимальная производительность. Процессор i5-11500, встройка Intel UHD 750.

dx9_lut_float32/16
CPU - 9%, GPU - 32%, 3,3W

dx9_func
CPU - 8%, GPU - 37%, 3,7W

MPCfan

#4
Установил MpcVideoRenderer-0.6.8.2107_git2023.08.03-3257844
С Dovi файлами в статистике отсутствует Convert to SDR.
Но если на лету отключить эту опцию, появится Not used, и опять включить,
то только тогда получим Convert to SDR.
Пример > https://disk.yandex.ru/i/buGWQc2T0tJZAA

V0lt

#5
Цитата: MPCfan от 03 августа 2023, 23:09:14С Dovi файлами в статистике отсутствует Convert to SDR.
Нужно больше информации.
С каким именно файлом проблема? Какие настройки видеорендерера.

04 августа 2023, 06:26:01
У меня проблемы нет.
Файл - dolby-vision-containers-(www.demolandia.net).mp4
Настройки по умолчанию, кроме включенной статистики.


MPCfan

#6
Настройки рендерера по умолчанию. С вашим файлом также отсутствует. У меня софтовое декодирование.
И ещё. Если статистику включать через рендерер, то Convert to SDR есть, Но через Ctrl+J нет.
Мой файл > https://disk.yandex.ru/d/5smoRy52XEOxIA
P.S. Такое поведение есть и в первой доступной сборке с dovi > https://disk.yandex.ru/i/OduK91CwzcEweg
Ещё дополнение. В эксклюзиве через Ctrl+j статистика полная с Convert to SDR.

V0lt


MPCfan

Да, теперь есть Convert to SDR в DX11 и 9.

V0lt

У кого-нибудь есть видео HDR10 compatible, чтобы при изменении опции "Prefer Dolby Vision over PQ and HLG" цвета заметно менялись. Даже для случая, когда опция "P010/P016" выключена.

PS: Выложил 0.6.8.2113.