Суперкомпьютер, достоверность и выбраковка: как работает суперсэмплинг DLSS 2.0
Новую технологию можно ввести в любой движок, поддерживающий временное сглаживание.
Кстати, на сайте читать удобнее
В конце марта Nvidia анонсировала DLSS 2.0, новую версию суперсэмплинга, использующего машинное обучение для увеличения разрешения в играх. Новое поколение DLSS работает одновременно и быстрее, и лучше первых версий технологии.
В рамках конференции GTC, перенесенной в онлайн из-за эпидемии, сотрудники Nvidia рассказали, как работает DLSS 2.0, чем она отличается от первого поколения и в чем разница между DLSS и апскейлом. Вот самые интересные моменты из этого рассказа.
Начнем с самых базовых вещей. Обычно для суперсэмплинга используется два подхода, однокадровый и многокадровый. В большинстве случаев применяется первый подход, реализуемый, как правило, с помощью одного из алгоритмов интерполяции.
Алгоритм растягивает исходное изображение, пытаясь одновременно сохранить качество картинки. Как правило, у стандартных алгоритмов это получается очень плохо — картинка мылится, теряются мелкие детали, появляются различные артефакты.
В последнее время для однокадрового суперсэмплинга начали использовать нейросети — например, ESRGAN. Сеть сперва обучают на наборе кадров, а затем она старается угадать, как будут выглядеть пиксели в той же версии картинки с большим разрешением.
Зачастую нейросети выдают более высокое качество картинки, чем обычные алгоритмы, но здесь есть другой нюанс. Искусственный интеллект не всегда корректно генерирует новые пиксели и картинка высокого разрешения может отличаться от исходной.
Характерный пример показан на слайде ниже — после апскейла с помощью нейросети заметно изменился внешний вид листвы на дереве. В Nvidia такие изменения считают недопустимыми: картинка, обработанная DLSS, должна быть максимально близкой к оригиналу, чтобы игра выглядела так, какой ее задумал разработчик.
Кроме того, у однокадрового подхода возникают проблемы, если сам кадр выглядит не слишком удачно — например, когда изображение на нем плывет или мерцает.
Поэтому в основе DLSS лежит многокадровый суперсэмплинг. Суть достаточно проста: система сохраняет несколько кадров, отрендеренных в низком разрешении, а затем на их основе собирает кадр уже высокого разрешения.
Наличие нескольких кадров позволяет сравнивать их между собой и восстанавливать детали, которые могут отсутствовать в случае однокадрового подхода. Примерно так же работает «шахматный» рендеринг на PlayStation 4 Pro.
Многокадровый суперсэмплинг позволяет не обращать внимание на большую часть проблем однокадрового подхода, однако у него есть свои нюансы. В первую очередь это касается ореолов вокруг объектов и разницы между их реальным и отрисованным положением в динамических сценах.
Чтобы разобраться с этими проблемами, разработчики применяют эвристические модели, позволяющие точно определять фрагменты изображения, изменившиеся в пределах разных кадров. Тут, впрочем, возникает новая проблема.
Использование эвристических моделей и отбраковка фрагментов кадров с данными, непригодными для качественного суперсэмплинга, приводит к потере части деталей изображения. Кроме того, картинка немного размывается.
Эту проблему 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 надеются, что это увеличит количество игр, поддерживающих технологию, и позволит игрокам увидеть более высокую частоту кадров.
- «Самый бесполезный в команде»: как у PlayStation 2 появилась обратная совместимость
- Высокий тикрейт и собственный провайдер: как работает сетевая часть Valorant
- Банды Cyberpunk 2077: 6th Street, ветераны войны
- Кортни Лав на кухне и молчаливый Киану: рассказы о странных встречах со знаменитостями
- Гейб Ньюэлл: игры смогут читать и писать данные напрямую в мозг
- Intel предлагает ускорять видеокарты, перенося часть нагрузку на видеоядро процессора