Автор Тема: Двухпроходная интерполяция [Готово]  (Прочитано 1536 раз)

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

V0lt

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1698
Двухпроходная интерполяция [Готово]
« : 04 Сентябрь 2016, 12:04:28 »
В планах заменить текущую однопроходную шейдерную интерполяцию на двухпроходную.
Двухпроходка используется в madVR, MPDN. Ее "тестируют" в PotPlayer. За основу будут взяты шейдеры из тестовых сборок MPC-HC от JanWillem32.

Суть двухпроходной интерполяции в том, что изменение размера кадра происходит в два этапа. Сначала изменяется ширина, а затем - высота.
При правильной реализации качество двухпроходной интерполяции ничем не отличается от однопроходной.

Преимущества:
1. Правильное масштабирование анаморфного видео, когда по одной координате размер увеличивается, а по другой уменьшается.
2. Меньшая нагрузка при масштабировании лишь по одной координате (у нас эта фича пока не используется).
3. В целом двухпроходная интерполяция обычно дает меньшую нагрузку.

Недостатки:
1. Повышенное потребление видеопамяти.

Тестовые билды: ССЫЛКА.

PS: Оценивать нагрузку на картах Nvidia следует после того, как частота GPU перестанет изменяться (примерно через 10-20 секунд). Как правило, если установившаяся частота выше, то и реальная нагрузка также будет больше.

Aleksoid1978

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1999
Двухпроходная интерполяция [Готово]
« Ответ #1 : 04 Сентябрь 2016, 13:16:24 »
В данный момент какие проблемы с реализацией ??
Повышение потребление видеопамяти - на сколько ??

А по поводу нагрузки - не только на Nvidia но и на AMD частота поднимается при старте и опускается(если надо) после.
I7 2600K@4.2 / Asrock P67 Extreme 4 Gen 3 / Kingston HyperX 8Gb 1866 (4x2) Kit / GIGABYTE GTX 960 / BenQ EW2430 / LG 47LM620T / Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

V0lt

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1698
Двухпроходная интерполяция [Готово]
« Ответ #2 : 04 Сентябрь 2016, 18:04:51 »
Цитата: Aleksoid1978
В данный момент какие проблемы с реализацией ??
Особых проблем нет. Исчезнет метод Perlin Smootherstep, и память побольше скушаем.

Цитировать
Повышение потребление видеопамяти - на сколько ??
высота кадра * ширина экрана * 8
Я не измерял, но по прикидкам для FullHD видео на мониторе 1920x1080/1200 дополнительно скушаем 15,8 МБ видеопамяти.
[merge_posts_bbcode]Добавлено: 2016-09-04 16:48:49[/merge_posts_bbcode]

Быстрый тест.
Видео 1920x804, экран - 1680x1050.
Рабочий стол (AERO, браузер, неиграющий плеер) - 218 МБ видеопамяти
1-проход - 320 МБ
2-прохода - 332 МБ
[merge_posts_bbcode]Добавлено: 2016-09-04 21:04:51[/merge_posts_bbcode]

По скорости хорошо видно разницу на дополнительном дисплее.
Видеокарта Intel HD 4000, 1920x1080. Видео 720x576 25 fps, софтовое декодирование.
рабочий стол: 0% (350 МГц), 0 Вт, 65 МБ.
1-проходка: 24% (350/650 МГц), 1,7 Вт, 89 МБ.
2-проходка: 18% (350/650 МГц), 1,0 Вт, 97 МБ.

Aleksoid1978

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1999
Двухпроходная интерполяция [Готово]
« Ответ #3 : 04 Сентябрь 2016, 20:59:43 »
Нет проблем - внедряй и все.
I7 2600K@4.2 / Asrock P67 Extreme 4 Gen 3 / Kingston HyperX 8Gb 1866 (4x2) Kit / GIGABYTE GTX 960 / BenQ EW2430 / LG 47LM620T / Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

V0lt

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 1698
Двухпроходная интерполяция [Готово]
« Ответ #4 : 05 Сентябрь 2016, 15:24:54 »
Сделано в r1885.