Страница 8: Deep Learning Super Sampling на практике
Почти во всех играх полученный в процессе рендеринга кадр выводится не сразу, а проходит через ряд этапов пост-обработки, например, через временное сглаживание Temporal Anti-Aliasing (TAA). Данный алгоритм опирается на потоковые процессоры и сравнивает два последовательных кадра, используя векторы движения. TAA не всегда работает идеально, приводя к появлению артефактов. Без TAA этих артефактов не было, но в таком случае пришлось бы играть без сглаживания. Здесь как раз на помощь приходит Deep Learning Super Sampling.
Позвольте разъяснить принцип работы DLSS. С одной стороны, у нас есть картинка, которая создается видеокартой (в меньшем разрешении, чем целевое). С другой стороны, предварительно рассчитанные идеальные кадры. Они были получены с помощью суперсемплинга 64x (64xAA) на суперкомпьютере NVIDIA SATURN V. Результат достигается через алгоритм сравнения отличий между картинкой видеокарты и идеальными кадрами. За инференс как раз отвечают ядра Tensor.
По сути, алгоритм DLSS представляет собой высоко специализированный (и временной) фильтр скейлинга. Конечно, результат уступает по качеству картинке в родном высоком разрешении, но приближается к ней благодаря оптимизациям и тренировке сети глубокого обучения. Чтобы получить такой же результат, как в высоком родном разрешении, сеть глубокого обучения должна обладать бесконечно большим массивом данных, а также тренироваться бесконечное время. Так что DLSS неизбежно приводит к неточностям и артефактам, другой вопрос, насколько они заметны.
Поскольку данные для тренировки доступны с суперсемплингом 64x, кадр 2K с масштабированием до 4K может выглядеть даже лучше, чем кадр в родном разрешении 4K. Но здесь все зависит от тренировки сети глубокого обучения, которая в конечном итоге и дает наилучший результат. Чем больше будет тренировок сети, тем лучше будет работать алгоритм.
В тестах мы провели некоторые измерения DLSS, и на видеокартах GeForce RTX показали разницу между TAA и DLSS. Мы также провели тесты некоторых старых видеокарт с TAA, чтобы показать отличия по производительности. На втором этапе внедрения технологии будет работать DLSS 2x, когда в качестве основы для алгоритма будет браться кадр с видеокарты в планируемом выходном разрешении (пока разрешение меньше). После чего будет выполняться такой же процесс инференса. Но на первом этапе кадр берется в меньшем разрешении, всегда выполняется масштабирование.
При оценке работы DLSS ключевым остается вопрос качества картинки. Прирост производительности, с одной стороны, связан с тем, что на первом этапе используется низкое разрешение. Да и сглаживание по сравнению с TAA выполнять уже не требуется. В результате новые видеокарты могут выводить игры, которые раньше в 4K просто не шли плавно - с полным уровнем детализации и без раздражающих рывков или с более высокой частотой кадров.
Ниже приведены игры, которые начнут поддерживать DLSS в ближайшем будущем или с момента выхода:
- Ark: Survival Evolved
- Atomic Heart
- Darksiders III
- Dauntless
- Deliver Us The Moon: Fortuna
- Fear the Wolves Hellblade: Senua's Sacrifice
- Final Fantasy XV
- Fractured Lands
- Hitman 2
- Islands of Nyne
- KINETIK
- Justice
- JX3
- Mechwarrior 5: Mercenaries
- Outpost Zero
- Overkill's The Walking Dead
- PlayerUnknown’s Battlegrounds
- Remnant: From the Ashes
- SCUM
- Serious Sam 4: Planet Badass
- Shadow of the Tomb Raider
- Stormdivers
- The Forge Arena
- We Happy Few
Сравнение видео
Для сравнения качества картинки мы привели две демонстрации GeForce RTX 2080 Ti Founders Edition. Слева активно сглаживание TAA, справа - DLSS.
Конечно, провести полноценное сравнение сложно. Для записи мы выставили максимальный поток видео, но YouTube проводит собственное сжатие. По персональным ощущениям качество картинки между TAA и DLSS отличить сложно. Хотя в Final Fantasy XV заметно мерцание травы при активации DLSS, но фильтр TAA часто "замывает" многие детали. К сожалению, тесты FFXV не идентичны от прогона к прогону, что приводит к разбросу.
Следует отметить, что на данном этапе работает только DLSS 1x. В данном случае картинка берется в низком разрешении, после чего масштабируется.