MPC-BE forum

MPC-BE => Обсуждение / Discussion => Тема начата: V0lt от 17 ноября 2017, 21:53:50

Название: Динамический диапазон и EVR-CP
Отправлено: V0lt от 17 ноября 2017, 21:53:50
Допустим мы имеем файлы: обычный YUV(16-235) и редкий YUV(0-255). Имеем дисплеем подключенным по DVI иди HDMI, причем для HDMI задан вывод в RGB и полный диапазон. В драйвере выставлено, что диапазон входного видео определяет плеер. Настройки плеера по умолчанию. Система Win7sp1, Win8.1 или Win10.

Что должно происходить в идеале? YUV(16-235) и YUV(0-255) должны преобразоваться в RGB(0-255). В первом случае яркость растянется от 16-235 до 0-255, во втором - не меняется.
PS: Настройках видео есть опция, которая позволяет получать RGB(16-235), но мы пока не будем ее затрагивать.

Можем ли мы гарантировать правильное преобразование диапазонов в EVR-CP на любой машине? Увы, но нет.
Но не стоит отчаиваться, на обычном EVR еще хуже.

Три тестовых файла - test_range.zip (https://yadi.sk/d/o0f1r63K3Pns5Y).
Примечание:
1. Для каждого файла есть картинка в PNG, которая показывает, как примерно должно выглядеть видео. Да, у test_range_16-235_clip.mkv диапазон должен быть обрезан.
2. Лучше смотреть с черными полями вокруг кадра. Если рендерер пересветлит черный, то вы это сразу заметите.
3. Картинку test_range_0-255.png можно использовать для настройки дисплея.

Хронология попыток исправить ситуацию:
r2146 (https://sourceforge.net/p/mpcbe/code/2146/) (см. EVRAllocatorPresenter.cpp)
r3126 (https://sourceforge.net/p/mpcbe/code/3126/)
Название: Динамический диапазон и EVR-CP
Отправлено: V0lt от 18 ноября 2017, 08:42:18
Результаты измерений для Nvidia GTX950 и ТВ Sony, подключенного по HDMI. Настройки диапазона входного видео в драйвере 16-235, но переопределяем приложением (стандартная настройка).
Windows7 x64, MPC-BE 1.5.2 (build 3126) beta, драйвер 387.92.

Стандартные настройки:
test_range_0-255 - корректно
test_range_16-235_clip - корректно (диапазон обрезан)
test_range_16-235_scale - корректно

Диапазон вывода EVR-CP 16-235:
test_range_0-255 - ничего не поменялось
test_range_16-235_clip - корректно (видим полный диапазон)
test_range_16-235_scale - корректно (стало белёсо)

В общем для Nvidia все хорошо, но есть вопрос при выводе test_range_0-255 если задать EVR-CP 16-235.
[merge_posts_bbcode]Добавлено: 2017-11-18 08:24:26[/merge_posts_bbcode]

Результаты измерений для Intel HD4000 и ТВ Sony, подключенного по HDMI.
Все тоже самон, драйвер 15.33.45.64.4653 (10.18.10.4653).

Стандартные настройки:
test_range_0-255 - некорректно (диапазон обрезан)
test_range_16-235_clip - корректно (диапазон обрезан)
test_range_16-235_scale - корректно

Диапазон вывода EVR-CP 16-235:
test_range_0-255 - ничего не поменялось (так же некорректно)
test_range_16-235_clip - ничего не поменялось
test_range_16-235_scale - ничего не поменялось

В общем Intel на стандартных настройках не умеет выводить YUV(0-255). Более того он напроч игнорирует выбор EVR-CP 16-235.
[merge_posts_bbcode]Добавлено: 2017-11-18 08:42:18[/merge_posts_bbcode]

Скриншоты (https://cloud.mail.ru/public/9UF5/h3ac97Qxm).