Методы масштабирования разрешения в играх DLSS, FSR и NIS: разбираем их особенности, достоинства и недостатки

Немного истории

В последние годы появилось несколько методов повышения производительности рендеринга, основанных на масштабировании разрешения картинки от низкого к высокому. Это и понятно, ведь хотя большинство мониторов все еще имеют сравнительно низкое разрешение Full HD, постепенно широкое распространение получают и устройства с 2K- и 4K-разрешением. А рендеринг в 4K-разрешении вчетверо более требователен к мощности видеокарты по сравнению с Full HD (в 3840×2160 обрабатывается вчетверо больше пикселей, чем в 1920×1080), что вызывает проблемы в случае не самых мощных видеокарт.

Сначала игроки довольствовались простенькими алгоритмами пространственного масштабирования, встроенными в мониторы или производимыми аппаратно на GPU — чаще всего, это простая билинейная фильтрация. Но эти методы слишком просты, приводят к большой потере резкости и так называемому «мылу», поскольку каждый пиксель высокого разрешения формируется из усредненных нехитрым образом значений нескольких пикселей изображения низкого разрешения. И чтобы хоть немного улучшить картинку, после масштабирования можно применить фильтр увеличения резкости, который улучшает восприятие изображения.

Но деталей такие фильтры не добавляют, просто локально повышая контрастность, так что итоговая картинка после масштабирования все равно заметно хуже, чем при рендеринге в полном разрешении. Поэтому разработчики игр начали применять несколько более сложные методы масштабирования, вроде шахматного рендеринга с использованием временно́й компоненты (temporal checkerboard), когда пиксели рендерятся в шахматном порядке в количестве лишь 50% от родного разрешения, а недостающая половина реконструируется на основе информации из предыдущего кадра.

Такой метод имеет лучшее качество по сравнению с простыми алгоритмами пространственного масштабирования, и они получили широкое распространение на консолях, имеющих ограниченные мощности и относительно высокие разрешения вывода, вплоть до 4K даже в прошлом поколении. Также можно вспомнить качественный метод динамического масштабирования со сглаживанием из движка Unreal Engine 4 — Temporal Anti-Aliasing Upsample (TAAU), использующий информацию из предыдущих кадров.

Затем компания Nvidia представила свою технологию DLSS, использующую еще более сложный метод временно́го сглаживания с применением нейросетей. Она стала первой ласточкой последней волны специализированных технологий масштабирования, и ее главной отличительной особенностью является именно использование нейросети. Сначала суперкомпьютер тренирует эту нейросеть на парных изображениях с разным разрешением, а затем, уже на стороне пользователя, ранее натренированная нейросеть, исполняемая на выделенных тензорных ядрах GeForce RTX, восстанавливает изображение высокого разрешения из отрендеренной картинки низкого качества, используя при работе буферы с векторами движения из предыдущих кадров.

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

Компания Nvidia рассказала публике о технологии DLSS в далеком уже 2018 году — вместе с первым поколением GeForce RTX. Сейчас технология DLSS применяется более чем в 130 играх, и их число быстро растет. Среди проектов с поддержкой DLSS есть топовые игры разных жанров, типа Battlefield 2042, Fortnite, Cyberpunk 2077, Red Dead Redemption 2, Minecraft, улучшенные версии серий GTA и Crysis, и другие. Поддержка технологии давно появилась в известном игровом движке Unreal Engine, а для Unity пока что есть в бета-версии. Плагин для UE делает добавление DLSS к играм на этом движке очень простым делом — некоторые разработчики говорят, что смогли добавить поддержку буквально за пару дней.

Самые ранние версии DLSS были довольно сырыми, у пользователей были обоснованные претензии к качеству изображения, отмечались артефакты и низкая резкость. Игр с поддержкой технологии было мало, в то время даже не всегда использовались тензорные ядра, а качество масштабирования было спорным. Впрочем, самые важные проблемы были решены довольно быстро, а к версиям DLSS 2.x придраться уже было очень трудно. Если вкратце, разница между DLSS 1.0 и 2.0 заключалась в том, что в первой версии нейросеть тренировали специально под конкретные игры, список которых был довольно узок, а вот вторая версия уже заметно более универсальна и продвинута.

Тем не менее, совсем недавно Nvidia выкатила еще одно обновление DLSS в виде версии 2.3 — его уже получили игры Cyberpunk 2077 и Doom Eternal, и список игр будет расширяться. Самая последняя на данный момент версия технологии принесла улучшенное использование векторов движения, что повлияло на общее качество сглаживания в лучшую сторону, убрало некоторые артефакты, появляющиеся при движении объектов или камеры, а частицы перестали оставлять длинные шлейфы.

В июне текущего года компания AMD наконец-то разродилась своим «ответом» на DLSS в виде техники масштабирования изображения FidelityFX Super Resolution (FSR). Эта технология более простая по сравнению с DLSS, так как в ней используется пространственное масштабирование изображения, без использования временно́й компоненты. Зато она работает на широком спектре графических ядер, включая интегрированную графику и решения конкурирующих с AMD компаний. Ее легче внедрить, так как она не использует векторы движения, ведь по сути это просто постфильтр. Также FSR имеет полностью открытый исходный код, и все это стало причинами достаточно широкой поддержки FSR со стороны игровых разработчиков.

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

Техника пространственного масштабирования Nvidia

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

Алгоритмы пространственного масштабирования в более высокое разрешение (spatial upscaling) используются уже долгое время, к ним относится в том числе и привычная билинейная фильтрация. Во всех мониторах и телевизорах есть какие-то алгоритмы масштабирования, позволяющие вывести в полный размер изображение с исходно меньшим разрешением. Чаще всего это довольно простые методы, вроде уже упомянутой билинейной фильтрации, но в некоторых случаях (современные телевизоры, медиаприставки и т. д.) могут использоваться и более продвинутые методы.

В жизни ПК-игроков масштабирование встречалось еще в давние времена, когда, к примеру, VGA-картинка выводилась на SVGA-монитор (можно вспомнить еще более ранние годы, но лучше не будем пугать последний десяток зумеров, продолжающих читать эти строки). Да, тогда масштабирование зачастую было еще более простым, но позже начали применять более качественные методы, а в последние годы прямо в настройках многих игр появились слайдеры масштабирования, и чаще всего это именно билинейное масштабирование.

Более того, та же Nvidia еще в 2019 году внедрила в драйверы метод пространственного масштабирования, который можно было включить из настроек драйвера, но уж очень глубоко он был закопан, и большинство пользователей о нем и не знало. Годами позже в компании увидели относительный успех аналогичного метода AMD FSR, увидели непонимание многими разницы между своей технологией и решением конкурента и решили сделать аналогичный более простой алгоритм масштабирования разрешения — Nvidia Image Scaling (NIS). Точнее, даже не сделать, а улучшить давно известный метод масштабирования и вытащить его на видное место в настройки драйвера:

Это метод пространственного масштабирования, очень близкий к FSR конкурента, различия между ними минимальны, но новинка Nvidia отличается тем, что NIS можно форсировать из панели управления драйверов или из дополнительной компоненты GeForce Experience (GFE), имеющей более современный и удобный интерфейс.

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

Также, что немаловажно для алгоритмов пространственного масштабирования, тут имеется и настройка повышения резкости, и не только в драйверах, но и прямо во время игры. Регулировка уровня повышения резкости доступна в интерфейсе Nvidia Freestyle, который вызывается при помощи сочетания клавиш Alt+F3 (оверлей GFE должен быть включен).

Как именно работает NIS? Да точно так же, как и FSR, при помощи простого алгоритма переводя изображение низкого разрешения в высокое. И так уж сложилось, что для самых распространенных разрешений (1920×1080, 2560×1440 и 3840×2160), современные техники масштабирования имеют устоявшиеся масштабные ряды для увеличения разрешения, что удобно для сравнения разных методов. К примеру, FSR Ultra Quality для 2560×1440 нужно сравнивать с Nvidia Image Scaling 77% (или в разрешении 1970×1108 пикселей, кому как удобнее), ну и так далее.

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

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

Интересно, что часть функциональности NIS в виде повышения резкости изображения можно использовать и совместно с DLSS, если изображение после него кажется вам слишком мыльным. Так можно получить максимально возможное качество картинки с изменяемой по вкусу резкостью. Для этого нужно включить NIS в панели управления, запустить игру с поддержкой DLSS и выбрать в ней родное разрешение монитора, не забыв включить и саму технологию DLSS. И тогда при разрешении, равном родному, NIS будет работать просто как фильтр повышения резкости, что бывает весьма полезно.

Отличия методов масштабирования

Итак, методов упомянуто уже три, и два — одной только Nvidia, а в чем отличия-то? Сразу скажем, что технология DLSS и алгоритмы пространственного масштабирования — это абсолютно разные техники, общего у них — только сама суть приведения изображения низкого разрешения в более высокое. А вот методы работы и итоговое качество отличаются весьма сильно. Между DLSS и алгоритмами пространственного масштабирования (Nvidia Image Scaling, AMD FSR, билинейная или бикубическая фильтрация, фильтр Lanczos и другие) есть фундаментальные отличия.

Технология масштабирования (лучше ее называть технологией повышения и производительности, и качества) DLSS была разработана с учетом ограничений существующих методов масштабирования и сглаживания, она использует временну́ю компоненту и нейросеть для улучшения картинки. В итоге получается изображение с качеством, близким к родному разрешению, иногда чуть хуже, а местами даже чуть лучше — и при этом общая производительность прилично растет! В общем, DLSS обеспечивает лучшую детализацию, бо́льшую стабильность изображения и лучшее качество восстановленных граней по сравнению с более простыми алгоритмами.

Методы пространственного масштабирования NIS и FSR не используют никаких усложняющих процесс элементов и довольно прямы и просты, поэтому за счет повышения производительности выходное качество страдает куда сильнее. Итоговая картинка после подобных алгоритмов масштабирования вверх далека по качеству от родного разрешения, особенно в режимах наибольшей производительности, вроде 50% от выходного разрешения. А главное — из-за отсутствия временно́й компоненты (использование данных из предыдущих кадров) они страдают от артефактов, связанных с недостатком детализации и движением пикселей в кадре.

Техники пространственного масштабирования «берут» в основном банальным повышением уровня резкости, что положительно сказывается на многочисленных текстурах, и они зачастую действительно могут казаться нам более детализированными, чем при сложном временно́м масштабировании методом DLSS. Многие люди в принципе предпочитают более контрастные изображения — так уж устроено наше восприятие, хотя всё это субъективно, конечно же.

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

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

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

Родное разрешение — Пространственное масштабирование — DLSS

При использовании техник пространственного масштабирования (FSR и NIS) на этом примере хорошо заметна потеря детализации на тонких объектах, вроде проводов, антенн, сеточных заборов и другой подобной геометрии. Если временно́е масштабирование DLSS сохраняет такие детали за счет большего количества информации, взятой из предыдущих кадров, то техники пространственного масштабирования зачастую их портят или вовсе не отрисовывают — особенно на большом расстоянии. Посмотрите на решетчатый шар и проволоку рядом: DLSS справляется с делом на уровне родного разрешения, если не лучше, чего не скажешь о пространственном масштабировании, просто растягивающем одну картинку в большее разрешение.

Еще один вид артефактов, выявляемый при использовании техники пространственного масштабирования и фильтра повышения резкости — свечение (ореолы) вокруг некоторых граней, возникающие из-за слишком большого повышения локальной контрастности, например когда темные объекты отображаются на светлом фоне. Это перекликается с еще одним побочным эффектом пространственного масштабирования — приданием изображению некоей «акварельности», когда оно становится похожим на картину, написанную красками, в результате объединения близких тонов в один (также с потерей детализации).

Следующий пример Nvidia из игры Necromunda тоже наглядно показывает разницу в качестве между DLSS и FSR/NIS. Более продвинутый метод DLSS даже позволяет использовать режим худшего качества Performance и при этом достигает как минимум уровня качества методов пространственного масштабирования при самом высоком — FSR Ultra Quality или NIS 77%. И так как DLSS дает лучшее качество в целом, можно использовать менее качественный режим для дополнительного прироста производительности — при том же уровне качества картинки, а то и лучшем.

Очень важный момент: все эти режимы (Quality, Balanced, Performance) отличаются у разных алгоритмов, и их приравнивание между разными технологиями не имеет смысла, ведь это просто названия. Например, DLSS Performance впереди по качеству, если сравнивать с FSR Ultra Quality или NIS 77% (хотя их и непросто сравнивать друг с другом). Но, как минимум, нужно постараться привести разные режимы к единому знаменателю — примерно одинаковому качеству картинки. Конечно, объективно это сделать не получится, поэтому речь идет сугубо о субъективной оценке.

Удивительно, что даже при сравнении DLSS худшего качества с FSR/NIS лучшего качества преимущество во многих (если не во всех) случаях остается именно за DLSS: продвинутый метод масштабирования обеспечивает лучшее качество мелких деталей, вроде линий проводов и веток деревьев. На примерах изображений явно видна разница между DLSS и простыми методами, и только «умная» технология Nvidia обеспечивает качественную передачу тонких линий вдали. Мы не говорим уже о тексте: пространственное масштабирование убивает такие детали, а DLSS использует данные из предыдущих кадров и обеспечивает отличное качество текста.

Ведь важнейшим преимуществом DLSS является то, что технология использует данные из нескольких предыдущих кадров. А в каждом кадре есть информация о том, как на нем были расположены пиксели. И для накапливания этой информации по нескольким предыдущим кадрам используются векторы движения, помогающие отслеживать движение объектов в кадре. Это, в свою очередь, используется нейросетью, которая старается понять, куда и как движутся те или иные пиксели. На основе этой информации, включая отрисованный текущий кадр в сниженном разрешении, искусственный интеллект, исполняемый на выделенных тензорных блоках видеокарт GeForce RTX, хитрым образом воссоздает картинку более высокого качества.

Если говорить о числах, то при рендеринге в разрешении 2560×1440 в режиме DLSS Quality для реконструкции 3,5 миллионов пикселей используется информация из более чем 6 миллионов пикселей текущего и предыдущих кадров. Умная нейросеть использует все эти данные при реконструкции в максимально высокое качество — близкое к тому, что получается при рендеринге в родном разрешении.

Методы пространственного масштабирования используют в таких же условиях только один кадр — с низким разрешением по сравнению с выходным. Например, если взять FSR Ultra Quality или NIS 77%, то это всего лишь 2,2 млн пикселей, которые должны как-то превратиться в 3,5 млн. И для перевода из низкого разрешения в высокое в случае пространственного масштабирования используется простой фиксированный алгоритм, которому еще и доступен заметно меньший объем информации. Неудивительно, что результат будет заметно менее качественный, а детализация кадра и качество граней заметно пострадают.

Технология DLSS использует нейросеть, натренированную на большом объеме качественных изображений с разрешением 16K и суперсэмплингом, и на их примере искусственный интеллект учится, как из меньшего разрешения восстанавливать качественную картинку — он «знает», как должно выглядеть итоговое изображение. Ну а простые алгоритмы пространственного масштабирования просто сэмплируют результат рендеринга меньшего разрешения в более высокое и увеличивают резкость постфильтрацией, которая не добавляет деталей, а только усиливает локальную контрастность. Качество выходного изображения при этом получается не слишком высоким.

Еще немаловажно то, что при работе DLSS из векторов движения (motion vectors) выделяется информация о движении объектов в предыдущих кадрах, и нейросеть использует ее для снижения артефактов нестабильности пикселей, связанных с их движением, мерцанием и появлением-пропаданием на картинке. Модель искусственного интеллекта постоянно учится и улучшается при помощи обучения нейросети на суперкомпьютерах компании Nvidia, и с каждой новой версией эта технология обеспечивает всё лучшее качество изображения.

Но это была в основном теория, а теперь переходим к практике.

Практическое сравнение качества

Важный момент для честного сравнения качества картинки: далеко не все артефакты и детали можно оценить по статичным скриншотам или их участкам, многие моменты желательно сравнивать по видеофрагментам. И очень полезно, что для удобного сравнения изображений и видеороликов компания Nvidia выпустила утилиту Image Comparison & Analysis Tool (ICAT), которая позволяет сравнивать несколько скриншотов или видеороликов в двух режимах: с наложением друг на друга и слайдером или рядом друг с другом, с возможностью увеличения фрагментов, выравнивания картинок и видеороликов по картинке и времени.

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

К сравнению мы с вами как раз и переходим. Сначала рассмотрим пару игр Necromunda: Hired Gun и Chernobylite, которые отличаются одновременной поддержкой техник DLSS и FSR, что пока встречается не так уж часто, а NIS на видеокартах Nvidia (после установки свежих драйверов) можно включить вообще в любой игре, из настроек драйвера или GFE. Вот так выглядит кадр из первой упомянутой игры:

FSR Ultra Quality
DLSS Performance

Первый же пример показывает очевидную разницу между DLSS и FSR, которые, к слову, взяты не с одинаковым исходным разрешением рендеринга — мы позже разберемся, почему так. Хотя скриншот с FSR сходу кажется нам чуть более четким и детальным, эта детализация на нем в основном мнимая — из-за фильтра повышения резкости, который усиливает контрастность, не добавляя деталей.

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

Вот еще одно наглядное сравнение из этой же игры, да и техники тут применяются те же и в тех же условиях: слева — FSR Ultra Quality, а справа — DLSS Performance:

FSR Ultra Quality — DLSS Performance

На этом фрагменте кадра мы видим ровно то же самое: FSR даже в самом качественном режиме имеет более высокую контрастность на текстурах (на скриншоте меньше «мыла»), но эта детализация снова лишь мнимая, ее легко получить и в случае DLSS, применив к изображению фильтр повышения резкости — хотя бы тот же NIS. А вот чего не вытянуть из пространственного метода вообще никак, так это деталей на решетке ограждения справа внизу — их гораздо лучше прорисовывает метод DLSS, имеющий доступ к предыдущим кадрам.

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

Теперь переходим к игре Chernobylite, сравниваем все те же методы: FSR Ultra Quality против DLSS Performance:

FSR Ultra Quality vs DLSS Performance

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

А раз DLSS Performance неплохо справляется, то, может, и Ultra Performance покажет хороший результат на уровне конкурента даже самого высокого качества? Рассмотрим и такой вариант из той же игры:

DLSS Ultra Performance vs FSR Ultra Quality

Тут DLSS получает исходную картинку еще меньшего разрешения, так что технологии становится действительно сложнее справляться с качественным масштабированием. Но посмотрите, раскрыв картинку в полном размере: преимущество по детализации тонких линий и листвы все равно осталось у хитрой технологии Nvidia! Даже при большом преимуществе по исходному разрешению у FSR. Вот так влияют используемые нейросетью векторы движения, дающие информацию о предыдущих кадрах в полном разрешении.

Давайте теперь посмотрим пример сравнения картинки из игры Chernobylite в видеоформате самой Nvidia. Здесь записано проигрывание встроенного бенчмарка при масштабировании теми же двумя методами: DLSS Performance и FSR Ultra Quality. На наш взгляд, на видео очень хорошо видны многие из описанных выше проблем при пространственном масштабировании изображения в этой игре:

Все деревья и детали колеса обозрения имеют явно худшую детализацию при FSR (к слову, NIS ничем не лучше, это точно такое же пространственное масштабирование), а вот DLSS даже при меньшем разрешении рендеринга способен отрисовать всё это заметно более детально, что лучше всего видно при движении. При этом еще и лучше сохраняются цветовые градиенты в сцене, а пиксели в ней имеют явно лучшую стабильность — эффекты дрожания, прыганья и пропадания пикселей практически отсутствуют в отличие от пространственного масштабирования.

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

Часть проблем FSR и преимуществ DLSS не слишком хорошо видны по скриншотам, но в видеоролике отличия бросаются в глаза: масштабирование методом DLSS гораздо детальнее, стабильнее и оставляет меньше паразитного шума. Рассмотрим последний статический пример из этой же игры. Все те же DLSS Performance против FSR Ultra Quality:

DLSS Performance
FSR Ultra Quality

Мы можем лишь повторить написанное выше: DLSS даже в режиме производительности обеспечивает более детальную картинку по сравнению с самым качественным методом FSR. Да, последний снова выигрывает по локальной контрастности, которую часто путают с детализацией, и некоторые текстуры действительно смотрятся четче в случае пространственного масштабирования.

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

Хорошо, с DLSS и FSR более-менее понятно, а что с FSR против NIS? Мы дополнительно проверили качество изображения при масштабировании всеми доступными методами в ремастере игры Crysis 2, которая имеет поддержку DLSS, а NIS можно форсировать из драйверов. Техника AMD FSR была добавлена в игру при помощи утилиты Magpie, текстурные уровни детализации (texture LOD bias) отодвинуты подальше от камеры, как рекомендует компания AMD при использовании FSR. В результате должен получиться почти полный эквивалент «настоящего» AMD FSR, хотя это и не точно.

Вот картинки для сравнения всех возможных техник масштабирования, их можно раскрыть в полном размере и скачать:

SMAA 2TX
DLSS Quality
DLSS Balanced
DLSS Performance
FSR 77%
FSR 50%
NIS 77%
NIS 50%

А мы приведем фрагменты этих же скриншотов при сравнении нескольких техник масштабирования и сначала посмотрим на разницу между NIS и FSR — есть ли она вообще? По теории, она если и должна быть в наличии, то совсем уж неуловимая минимальная.

FSR 50% — NIS 50% — FSR 77% — NIS 70%

Результат очень похожий как для пары FSR Performance (он же 50%) против NIS 50%, так и для FSR 77% против NIS 77%, что и требовалось доказать и показать. Поэтому далее мы будем сравнивать лишь родное разрешение (в Crysis 2 применяется сглаживание SMAA 2TX — метод, также использующий временну́ю компоненту) с DLSS и NIS, так как между NIS и FSR просто нет разницы. И если далее мы пишем NIS, то подразумеваем и FSR тоже.

Рассмотрим отличия результатов масштабирования при помощи одного и того же метода пространственного масштабирования NIS 50% (примерно то же самое, что и FSR Performance) и NIS 77% (аналогичен FSR Ultra Quality) от картинки родного разрешения со сглаживанием:

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

А что в сравнении с DLSS? Это же самое интересное! Сравниваем два разных по сути метода масштабирования: пространственное NIS/FSR 77% и временно́е DLSS (сбалансированный режим), а в качестве референсного взят еще и кадр в полном исходном разрешении со сглаживанием:

DLSS Balanced — NIS 77% — SMAA 2TX

Хорошо видно, что NIS 77% (как и FSR Ultra Quality) заметно уступает родному разрешению без масштабирования по детализации, особенно выделяются потери на тонких линиях забора и листьях деревьев. Еще больше удивляет другое: в изображении, полученном с применением умной технологии DLSS, деталей, кажется, даже больше, чем в родном разрешении со сглаживанием!

То есть применение данных из предыдущих кадров в случае DLSS оказывается несколько лучше, чем алгоритм SMAA 2TX. Прутья забора и листья с DLSS даже чуть лучше сглажены, чем в полном разрешении. Вот еще одна пачка скриншотов, уже в меньшем количестве, так как с FSR и NIS нам все более-менее понятно, ведь они обеспечивают практически идентичное качество изображения.

SMAA 2TX
DLSS Balanced
FSR 77%
NIS 77%

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

SMAA 2TX — DLSS Balanced — NIS 77%

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

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

SMAA 2TX
DLSS Quality
NIS 77%

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

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

SMAA 2TX
DLSS Quality
NIS 77%

В статике отличия совсем неочевидны, кроме явно более мыльного изображения у NIS 77%, поэтому сразу же переходим к анимации:

И вот тут технология DLSS наглядно раскрывает еще одно свое преимущество. Посмотрите, насколько стабильнее картинка посередине. Даже родное разрешение с временны́м сглаживанием не дает стабильности пикселям на гранях окон, решеток и в других деталях — они мерцают, появляются и исчезают, что не добавляет цельности и реалистичности картинке. Пространственный метод масштабирования NIS просто не может добавить деталей и устранить артефакты, поэтому все они остались на месте. Ровно то же самое будет и с FSR.

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

Подведем некоторые итоги. Пространственное масштабирование на первый взгляд может показаться довольно качественным методом повышения разрешения, так как наше восприятие более чувствительно к контрасту. Но если приглядеться внимательно, сравнивая результат работы разных техник, то становится понятно, что детализация в случае FSR/NIS фактически не улучшается, а то и ухудшается, так как некоторая информация в процессе увеличения локальной контрастности даже пропадает. Так мы теряем реальные детали изображения в обмен на иллюзию, обманывающую наше восприятие.

Кроме того, поскольку при сниженном разрешении рендеринга отрисовывается меньше текстурных деталей, алгоритм временно́го масштабирования DLSS требует большей информации о текстурах для того, чтобы обеспечить достаточно высокую резкость изображения. Для этого во многих случаях рекомендуется изменение детализации мип-уровней текстур, что не всегда делают разработчики игр, особенно в ранних версиях DLSS, и в результате при включении этой технологии некоторые пользователи якобы видят сильное «мыло». Но сейчас таких проблем уже практически не осталось.

Теперь понятно, почему в начале мы сравнивали лишь самый качественный метод FSR Ultra Quality с DLSS Performance? Хотя в случае разных игр и сцен ситуация может отличаться, но в среднем метод DLSS даже при уровне качества Performance дает примерно такое же визуальное качество, как пространственное масштабирование в режимах FSR Ultra Quality или NIS 77%. И нужно обязательно учитывать это при сравнениях технологий, а не просто ставить знак равенства лишь на основании одинаковых названий методов, вроде DLSS Performance = FSR Performance. На самом деле это далеко не так, DLSS заметно сложнее и качественнее. Правда, у нее есть свои недостатки, но об этом мы поговорим уже в выводах.

Оценка производительности

С качеством разобрались, результат работы DLSS Performance не хуже FSR Ultra Quality или NIS 77%, осталось лишь рассмотреть производительность всех рассмотренных выше техник масштабирования — а ну как DLSS не настолько качественнее, насколько требовательнее к вычислительной мощности? Или вдруг в FSR/NIS на видеокартах GeForce RTX вообще нет смысла, если схожий по качеству режим DLSS обеспечивает бо́льшую производительность? Сейчас во всем этом разберемся.

Для тестов скорости рендеринга мы взяли уже знакомую игру Chernobylite, в которой с легкостью можно включать все три техники масштабирования: DLSS, FSR и NIS. Первые две доступны в меню графических настроек, третья — в настройках свежих драйверов Nvidia. Естественно, все остальные настройки графики в игре были выставлены на максимально возможные значения, иначе какой смысл в таком сравнении?

А вот видеокарту для тестов мы решили взять не топовую GeForce RTX 3090, которая чаще всего применяется в таких тестах, и даже не любую другую модель из современной линейки Nvidia, а самую мощную игровую видеокарту этой компании предыдущего поколения — GeForce RTX 2080 Ti. Она отлично подходит для выбранной игры и условий, так как с ней при 4K-разрешении и максимальных настройках качества не обеспечивается стабильная частота кадров в 60 FPS. Среднее значение во встроенном бенчмарке составляет 66,6 FPS при минимальном в 57,2 FPS — то есть иногда частота кадров все же падает ниже минимально допустимой.

Так что проверяем, насколько хорошо помогают доступные варианты качества трех методов масштабирования. Для DLSS и FSR в таблице присутствует по четыре доступных варианта, а в случае NIS есть еще один более качественный режим — 85%, который может быть полезен как раз в случае вроде нашего, когда до постоянных 60 FPS не хватает совсем немного.

  Avg Min
FSR Performance (50%) 156.0 127.2
FSR Balanced (59%) 131.1 109.4
FSR Quality (67%) 112.9 94.8
FSR Ultra Quality (77%) 94.6 79.7
NIS 50% 171.8 138.1
NIS 59% 140.9 116.9
NIS 67% 121.5 102.2
NIS 77% 97.8 83.8
NIS 85% 85.5 72.7
DLSS Ultra Performance 142.7 119.4
DLSS Performance 120.3 101.9
DLSS Balanced 108.1 92.0
DLSS Quality 95.7 82.0
Native + TAA 66.6 57.2

Сначала посмотрим, получаем ли мы искомое в принципе: в каких случаях частота кадров возрастает и хватает ли этого? Хорошо видно, что любой из режимов качества всех трех алгоритмов позволил получить более 60 FPS как минимум. То есть в теории нам подойдет любая из трех технологий, и любая из них даст необходимую плавность в самом качественном режиме из доступных.

А насколько отличаются по скорости методы пространственного масштабирования AMD FSR и Nvidia NIS? В теории они должны быть практически идентичны по производительности, так как техники почти не отличаются друг от друга, и в случае видеокарт GeForce разница в скорости между ними не должна превышать нескольких процентов — в пользу NIS, естественно.

На практике разница между схожими по качеству режимами (FSR Ultra Quality против NIS 77% и так далее) составила от 3% до 8%, что несколько больше ожидавшейся нами. Возможно, так обстоят дела конкретно в игре Chernobylite или на GeForce RTX 2080 Ti, но разница оказывалась такой из раза в раз. Все же в целом можно признать FSR и NIS условно равными по качеству и производительности. Однако в случае NIS есть еще самый качественный режим 85%, который можно включить при совсем небольшой нехватке плавности. В нашем случае он позволил поднять минимальную частоту кадров с 57,2 FPS до 72,7 FPS, что уже соответствует критериям максимально комфортной игры, так что метод полезный.

Ну и теперь — самое интересное в виде сравнения DLSS и FSR, раз уж это технологии конкурирующих на рынке GPU компаний. В разделе исследования качества мы условно приравняли DLSS Performance и FSR Ultra Quality, а что же с производительностью этих технологий масштабирования? В конкретных условиях игры и выбранного графического процессора у нас получилось, что DLSS Performance обеспечивает 101,9—120,3 FPS, а FSR Ultra Quality — лишь 79,7—94,6 FPS. И даже если сравнить, скажем, режимы качества DLSS Balanced и FSR Quality, когда по качеству картинки уже откровенным победителем будет технология Nvidia, разница в производительности почти отсутствует: 109,1 и 112,9 FPS в среднем.

Получается, что по соотношению качества рендеринга и производительности технология масштабирования DLSS явно выигрывает у FSR и NIS. С одной важной оговоркой: технология FSR доступна вообще для всех современных GPU любых производителей, а DLSS — лишь для двух поколений Nvidia GeForce RTX. И в этом — главный ее недостаток. Что же касается качества и выводов, то мы напомним, что это лишь наша оценка этих технологий, она во многом субъективная, а вы можете запросто считать иначе, оценив наши скриншоты, ролики и анимации из предыдущего раздела или сделав самостоятельное сравнение.

Выводы

В материале мы наглядно показали, насколько велика разница между DLSS и более простыми алгоритмами пространственного масштабирования, вроде AMD FSR и NIS. Если DLSS обеспечивает достаточно высокое качество даже в Performance-режиме, с 50%-ным масштабированием, то FSR/NIS при половинном разрешении оправданы только при острейшей нехватке производительности, ведь выглядят они гораздо хуже. Для сравнения с DLSS Performance подойдет скорее FSR Ultra Performance или NIS 77%. Хотя подобрать пары режимов качества DLSS и NIS/FSR для сравнения очень непросто, так как на практике зачастую получается, что качество у DLSS даже в производительном режиме во многом не хуже, чем у методов пространственного масштабирования самого лучшего качества. При этом по скорости рендеринга преимущество также будет за DLSS Performance. Так что, победитель найден? Не все так просто.

Техники пространственного масштабирования куда легче встроить в игровые движки, ведь это просто дополнительный постфильтр. При этом Nvidia Image Scaling можно даже форсировать из драйверов для любой игры, хотя и только на видеокартах этой компании, а вот FidelityFX Super Resolution — вообще самый универсальный метод, который работает на широком наборе аппаратного обеспечения, а далеко не только на графических процессорах компании AMD. Обе техники пространственного масштабирования имеют открытый код и их легко встроить в игры, но решение AMD годится для всех видеокарт, а форсированный NIS будет работать только на GeForce, естественно.

Так что основные выводы будут крайне простыми: при наличии видеокарты GeForce RTX мы советуем всегда включать DLSS, иногда даже если производительности GPU хватает для рендеринга в родном разрешении — потому что временно́й метод масштабирования зачастую позволяет получить лучшее качество сглаживания и более стабильную картинку без артефактов даже по сравнению с родным разрешением. При этом не обязательно гнаться за качественным (Quality) режимом, оптимальным нам видится сбалансированный (Balanced), да и производительный Performance вполне можно применять. А вот Ultra Performance, который использует слишком низкое изначальное разрешение рендеринга, может быть оправдан разве что для 8K-разрешения.

То есть на видеокартах GeForce RTX нет никакого смысла в более простых алгоритмах NIS и FSR (если в игре есть возможность включения DLSS, конечно). А вот если у вас видеокарта AMD Radeon или GeForce GTX, тогда остается выбирать любой из двух методов: AMD FSR или Nvidia NIS. Они весьма близки друг к другу и по принципу работы, и по качеству и производительности. Правда, лучше не использовать пару режимов наименьшего качества — FSR Balanced и FSR Performance, а также NIS 59% и NIS 50% соответственно. Они дают слишком низкое итоговое качество, на наш взгляд, и допустимы разве что при самой острой нехватке плавности. Более качественные методы хоть и будут хуже DLSS, но вполне имеют право на жизнь.

Если честно, нам не очень нравится расширение «зоопарка» методов масштабирования разрешения. Если раньше выбор был только между DLSS и FSR, то теперь добавится и NIS, не слишком-то отличающийся от решения AMD. На наш взгляд, было бы неплохо, если бы игровые разработчики называли два последних метода просто «пространственное масштабирование», а конкретный алгоритм игра выбирала бы в зависимости от имеющегося графического процессора. Если в системе видеокарта AMD — то FSR, ну а если Nvidia — NIS. Все равно разница в качестве несущественна, да и производительность близкая.

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

Ну и напоследок мы предлагаем посмотреть наглядный ролик по теме «DLSS 2.3 против всех» со словами вице-президента по исследованиям в области прикладного глубокого обучения в Nvidia — Брайаном Катанзаро, который неплохо говорит по-русски (ролик, увы, на английском языке) и является давним читателем нашего сайта. Да-да, это не шутка, Брайан много лет назад жил некоторое время в России (в основном в Екатеринбурге), выучил русский язык и говорит на нем лучше многих местных жителей. А самое приятное для нас — он уважает материалы нашего сайта и не раз отмечал их высокий технический уровень.

22 ноября 2021 Г.