Динамический диапазон и EVR-CP

Автор V0lt, 17 ноября 2017, 21:53:50

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

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

V0lt

Допустим мы имеем файлы: обычный 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.
Примечание:
1. Для каждого файла есть картинка в PNG, которая показывает, как примерно должно выглядеть видео. Да, у test_range_16-235_clip.mkv диапазон должен быть обрезан.
2. Лучше смотреть с черными полями вокруг кадра. Если рендерер пересветлит черный, то вы это сразу заметите.
3. Картинку test_range_0-255.png можно использовать для настройки дисплея.

Хронология попыток исправить ситуацию:
r2146 (см. EVRAllocatorPresenter.cpp)
r3126

V0lt

Результаты измерений для 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]

Скриншоты.