MPC-BE forum

MPC-BE => Внешние фильтры / External filters => Тема начата: V0lt от 20 июля 2023, 21:20:18

Название: MPC VR - Поддержка Dolby Vision
Отправлено: V0lt от 20 июля 2023, 21:20:18
Cобираем информацию по Dolby Vision и пытаемся корректно отобразить такое видео в MPC-BE.

Описание патента по Dolby Vision (https://www.freepatentsonline.com/y2019/0373290.html).

Сэмплы можно найти на странице Samples - Official Kodi Wiki (https://kodi.wiki/view/Samples#4K_(UltraHD)_Formats).
Сэпмлы можно условно разделить на две группы:
1. Совместимые, которые нормально отображаются на большинстве плееров.
2. Несовместимие, которые нормально отображаются только на плеерах поддерживаемых Dolby Vision. На других плеерах цвета будут сильно искажены.

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

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

Для тестирования файлов Dolby Vision в MPC-BE нужно использовать:
1. MPC VR 0.6.8.2113 или новее (https://disk.yandex.ru/d/X0EVMKP4TcmnHQ)
2. MPC-BE 1.6.8.24 или новее (https://mpc-be.org/forum/index.php?topic=4.0).
Название: От: MPC VR - Поддержка Dolby Vision
Отправлено: V0lt от 20 июля 2023, 22:14:38
Поддержка Dolby Vision реализована в библиотеке libplacebo (https://github.com/haasn/libplacebo/blob/master/src/shaders/colorspace.c).
Преобразования цветов происходит в функции 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.
Название: От: MPC VR - Поддержка Dolby Vision
Отправлено: V0lt от 30 июля 2023, 08:22:43
Случайно найденные сэмплы
Спойлер
sampl1874-002.mp4 (https://cloud.mail.ru/public/ueH9/teG92EBPB)
sampl1925-002.mp4 (https://cloud.mail.ru/public/K23S/CHJkZtKoo)
sampl1929-002.mp4 (https://cloud.mail.ru/public/kML8/1ngumcE3i)
sampl1960-002.mp4 (https://cloud.mail.ru/public/d5MY/bHSeQsipX)

HDR10 compatible:
sampl1958-002.mkv (https://cloud.mail.ru/public/mH3m/rpUxQEQP2)
sampl1967-002.mkv (https://cloud.mail.ru/public/sN1F/4x55aKzvD)
Our.Planet.2019.S02E01.World.on.the.Move.2160p.NF.WEB-DL.DDP5.1.Atmos.DV.HDR.H.265.RGzsRutracker.mkv (https://disk.yandex.ru/d/Nwd6kVU5hget9w)
VojnaMirovZBDRip2160p.mkv (https://drive.google.com/u/0/uc?id=17AKdP5tylXDLJsCqhTdxfJ69sRBxRbmy)
Warrior.2019.S03E01.Exactly.the.Wrong.Time.to.Get.Proud.2160p.MAX.WEB-DL.DDP5.1.HDR.DoVi.x265-NTb.RGzsRutracker.mkv (https://disk.yandex.ru/i/pYTeRJ4WlyxY4g)
Warrior.2023.S03E01.Exactly.the.Wrong.Time.to.Get.Proud.2160p.REPACK.MAX.WEB_DL.DDP5.1.DV.HDR.x265_NTb_EniaHD_Sample.mkv (http://sendfile.su/1670865)
[свернуть]
Название: От: MPC VR - Поддержка Dolby Vision
Отправлено: V0lt от 30 июля 2023, 20:36:20
Выложил 3 варианта (https://disk.yandex.ru/d/tc4s2zb6KwzsgQ) поддержки 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 (https://www.demolandia.net/downloads.html?id=79032546) (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
Название: От: MPC VR - Поддержка Dolby Vision
Отправлено: MPCfan от 03 августа 2023, 23:09:14
Установил MpcVideoRenderer-0.6.8.2107_git2023.08.03-3257844
С Dovi файлами в статистике отсутствует Convert to SDR.
Но если на лету отключить эту опцию, появится Not used, и опять включить,
то только тогда получим Convert to SDR.
Пример > https://disk.yandex.ru/i/buGWQc2T0tJZAA
Название: От: MPC VR - Поддержка Dolby Vision
Отправлено: V0lt от 04 августа 2023, 06:22:04
Цитата: MPCfan от 03 августа 2023, 23:09:14С Dovi файлами в статистике отсутствует Convert to SDR.
Нужно больше информации.
С каким именно файлом проблема? Какие настройки видеорендерера.

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

(https://i.ibb.co/swsFfpN/convert-to-sdr.jpg) (https://ibb.co/swsFfpN)
Название: От: MPC VR - Поддержка Dolby Vision
Отправлено: MPCfan от 04 августа 2023, 06:41:36
Настройки рендерера по умолчанию. С вашим файлом также отсутствует. У меня софтовое декодирование.
И ещё. Если статистику включать через рендерер, то 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.
Название: От: MPC VR - Поддержка Dolby Vision
Отправлено: V0lt от 04 августа 2023, 21:31:12
MPCfan
Попробуйте 0.6.8.2112.
Название: От: MPC VR - Поддержка Dolby Vision
Отправлено: MPCfan от 04 августа 2023, 21:48:48
Да, теперь есть Convert to SDR в DX11 и 9.
Название: От: MPC VR - Поддержка Dolby Vision
Отправлено: V0lt от 04 августа 2023, 22:04:22
У кого-нибудь есть видео HDR10 compatible, чтобы при изменении опции "Prefer Dolby Vision over PQ and HLG" цвета заметно менялись. Даже для случая, когда опция "P010/P016" выключена.

PS: Выложил 0.6.8.2113.