Лучшее  🚀
10.04.2020 в 17:52 Evernews

Суперкомпьютер, достоверность и выбраковка: как работает суперсэмплинг DLSS 2.0

Новую технологию можно ввести в любой движок, поддерживающий временное сглаживание.

Кстати, на сайте читать удобнее

В конце марта Nvidia анонсировала DLSS 2.0, новую версию суперсэмплинга, использующего машинное обучение для увеличения разрешения в играх. Новое поколение DLSS работает одновременно и быстрее, и лучше первых версий технологии.

В рамках конференции GTC, перенесенной в онлайн из-за эпидемии, сотрудники Nvidia рассказали, как работает DLSS 2.0, чем она отличается от первого поколения и в чем разница между DLSS и апскейлом. Вот самые интересные моменты из этого рассказа.

Что может DLSS: попробуйте найти апскейл

Начнем с самых базовых вещей. Обычно для суперсэмплинга используется два подхода, однокадровый и многокадровый. В большинстве случаев применяется первый подход, реализуемый, как правило, с помощью одного из алгоритмов интерполяции.

Алгоритм растягивает исходное изображение, пытаясь одновременно сохранить качество картинки. Как правило, у стандартных алгоритмов это получается очень плохо — картинка мылится, теряются мелкие детали, появляются различные артефакты.

В последнее время для однокадрового суперсэмплинга начали использовать нейросети — например, ESRGAN. Сеть сперва обучают на наборе кадров, а затем она старается угадать, как будут выглядеть пиксели в той же версии картинки с большим разрешением.

Зачастую нейросети выдают более высокое качество картинки, чем обычные алгоритмы, но здесь есть другой нюанс. Искусственный интеллект не всегда корректно генерирует новые пиксели и картинка высокого разрешения может отличаться от исходной.

Характерный пример показан на слайде ниже — после апскейла с помощью нейросети заметно изменился внешний вид листвы на дереве. В Nvidia такие изменения считают недопустимыми: картинка, обработанная DLSS, должна быть максимально близкой к оригиналу, чтобы игра выглядела так, какой ее задумал разработчик.

Кроме того, у однокадрового подхода возникают проблемы, если сам кадр выглядит не слишком удачно — например, когда изображение на нем плывет или мерцает.

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

Наличие нескольких кадров позволяет сравнивать их между собой и восстанавливать детали, которые могут отсутствовать в случае однокадрового подхода. Примерно так же работает «шахматный» рендеринг на PlayStation 4 Pro.

Многокадровый суперсэмплинг позволяет не обращать внимание на большую часть проблем однокадрового подхода, однако у него есть свои нюансы. В первую очередь это касается ореолов вокруг объектов и разницы между их реальным и отрисованным положением в динамических сценах.

DF: Wolfenstein Youngblood может показывать, как новые консоли справятся с «тяжелыми» технологиями

Чтобы разобраться с этими проблемами, разработчики применяют эвристические модели, позволяющие точно определять фрагменты изображения, изменившиеся в пределах разных кадров. Тут, впрочем, возникает новая проблема.

Использование эвристических моделей и отбраковка фрагментов кадров с данными, непригодными для качественного суперсэмплинга, приводит к потере части деталей изображения. Кроме того, картинка немного размывается.

Эту проблему Nvidia решает с помощью суперкомпьютера и нейронной сети, обученной на десятках тысяч изображений очень высокого качества. Задача этой нейронной сети заключается в том, чтобы найти оптимальную стратегию для объединения наборов данных, полученных из разных кадров.

Искусственный интеллект справляется с этим гораздо лучше, чем фиксированные алгоритмы и эвристики, созданные программистами, и обеспечивает куда более высокое качество изображения.

Такая технология позволяет справляться со сложными сценами и может генерировать качественную картинку высокого разрешения даже на базе рендера в достаточно низком разрешении.

При этом заранее обученная нейросеть работает очень быстро. Например, GeForce RTX 2080 Ti тратит на апскейл кадра до разрешения 4К всего 1.5 миллисекунды — в 4 раза меньше, чем на рендеринг самой картинки.

Без использования DLSS 2.0 эта видеокарта отрисовывала кадр с разрешением 4К за 16 миллисекунд. Выходит, использование технологии позволило ускорить процесс отрисовки кадра в 2.1 раза.

Автоматически перевести все игры с DLSS первых версий на DLSS 2.0 невозможно: в каждом конкретном случае разработчикам придется самим выпускать патч. Есть и хорошие новости: новую версию довольно просто внедрить в любой движок, поддерживающий временное сглаживание.

Кроме того, теперь поддержка DLSS 2.0 есть в движке Unreal Engine 4. В Nvidia надеются, что это увеличит количество игр, поддерживающих технологию, и позволит игрокам увидеть более высокую частоту кадров.

Читать далее