Да кто такой этот ваш DLSS?

Ответить
Аватара пользователя
MetalSnow
Сообщения: 472
Зарегистрирован: 05 мар 2021, 10:55
Да кто такой этот ваш DLSS?

Сообщение MetalSnow »

Создаю эту тему больше для удобства, чтоб незнающие узнали, чтоб мои изыскания не затерялись где-то в глубине форума, чтоб можно было если что скинуть ссылку с подробной информацией, которой в интернете, увы, мало.
Начнем с того, чем же на самом деле является DLSS? И..... это модифицированное TAA! Вот это новость, хотя для кого-то и нет. Как же я к этому пришел? Ну, начнем с того, что nvidia уже баловалась с многокадровым сглаживанием, достаточно вспомнить TXAA - для фильтрации пикселей на экране TXAA использует выборку сэмплов как внутри, так и снаружи пикселя, в соединении с выборками из предыдущих кадров, чтобы обеспечить по возможности самое высокое качество фильтрации. Или же чуть менее известное MFAA - по-сути тоже самое, что и TXAA, только почти не мылит. К слову, по какой-то причине и TXAA и MFAA требуют дополнительного сглаживания MSAA, вероятно, для лучшего эффекта сглаживания.
Спустя какое-то время появляется TAA, не понятно от кого, зато этот алгоритм не требует дополнительного MSAA и способен работать самостоятельно. Основан он чисто на сборе информации из предыдущих кадров, чем больше кадров, тем лучше сглаживание и тем мыльнее картинка (привет рдр2), и наоборот. Стоит отметить, что присутствует дополнительный алгоритм, который подтирает "остатки" предыдущих кадров, если он плохо справляется, мы видим дублирующиеся остатки, ореолы, пиксельную кашу, ну и просто мыло.
Мыло щиплет глазки
TAA ON
Изображение

TAA OFF
Изображение
И вот, спустя какое-то время nvidia выкатывает dlss 1.0, который продолжительное время обучают для каждой игры и т.д. и т.п. Долгое время я считал, что dlss 1.0 не использует предыдущие кадры, судя по качеству, складывалось ощущение, что он работает только с одним кадром, но спустя какое-то время, я заметил характерные для ТАА артефакты. На это потребовалось действительно много времени т.к. маскировались они просто на ура.
Метро Исходус
Здесь я и поймал те самые артефакты от предыдущих кадров
Изображение

а здесь просто пример, где артефактов нет, просто для понимания, как сложно было их найти, у ТАА есть, у DLSS - нет
Изображение

ну и полные скриншоты:
DLSS
Изображение
TAA
Изображение
DLSS
Изображение
TAA
Изображение
Выходит, что dlss 1.0 уже использовал предыдущие кадры, как и многие технологии до него, так чего же там нейронную сеть тренировали для каждой игры? Тут я точно не скажу, могу лишь предположить, что алгоритм поиска движения, дабы загасить артефакты у движущегося объекта, и в сравнении с ТАА этот алгоритм себя таки лучше проявляет, почти не давая повторения движущегося объекта.
А что же тогда улучшили в dlss 2.0? Ну, тут я опять же могу лишь предполагать, основываясь на наблюдениях и на презентации, посвященной dlss 2.0.
Презентация
Ключевые моменты из презентации:
Спойлер
Здесь представлен временный суперсэмплинг, как известно суперсемплинг - это очень тяжелое сглаживание, которое делает несколько выборок на пиксель, фактически кратно повышая разрешение рендеринга х2, х4 и т.д. Идея же временного суперсемплинга в том, чтоб эти выборки брать из предыдущих кадров, таким образом за 4 кадра, мы получаем суперсемплинг х4, правда проблемы начинаются, когда изображение не статичное.
Изображение

Тут вычурно представлено повторение движущегося предмета, как в примерах с Метро, называется гостинг, думаю, в дальнейшем буду этот эффект так и называть. Гостинг появляется без использования "history rectification" (типа временное исправление), некий алгоритм, который и подтирает лишнюю информацию из предыдущих кадров, либо если этот алгоритм плохо справляется.
Изображение

Тут видно, что подается нейронной сети на вход, на выходе же получаем готовое изображение. Из всего, что подается на вход, лично я думаю, что только motion vectors целесообразно рассчитывать в нейронной сети, в остальных пунктах я не вижу сложных вычислений.
Изображение
Вернемся к вопросу: что же тогда улучшили в dlss 2.0? Я думаю, что они решили, что достаточно натренировали нейронную сеть ловить и устранять гостинг, и поэтому можно многократно увеличить количество предыдущих кадров. Именно поэтому во многих роликах с тестом dlss 2.0 в том же control, внезапно всплывали детали, которых не было видно без dlss. Увеличиваем количество кадров до 8, получаем суперсемплинг х8, увеличиваем до 16, получаем уже х16, а нейронная сеть, как нибудь подавит гостинг. Поэтому неудивительно, что всплывали такие мелкие детали.
Control
Изображение
Так сколько же кадров использовал dlss 1.0? Ну судя по наблюдениям - не более 8, думаю в районе 3-6. А сколько же использует dlss 2.0? Можно посчитать. Для сравнения добавил и ТАА
Control ghosting
DLSS
Изображение
TAA
Изображение

лично я у DLSS насчитал 23 следа от пневмопочты, хотя скорее всего больше. У TAA только 14, хотя, стоит сказать, что фпс там ниже, поэтому всего 14 за, примерно, то же расстояние. Вот уж действительно, навернем по-больше предыдущих кадров, а нейронка, как нибудь сама справится. Из того, что видно на скрине, получается минимум х24 суперсемплинг (относительно разрешения рендера, а не конечного)
Исходя из этого не должно возникать вопросов, почему dlss мылит, или откуда артефакты на проводах и перилах в death stranding. Тут хороши те же методы борьбы, что использовались в рдр2: шарп и увеличенное разрешение рендеринга.
И напоследок киберпанк и 2 стула: dlss - мыло и taa - четкость
Cyberpunk
здесь стоит отметить, что TAA использует мало кадров, поэтому плохо сглаживает, но не дает сильного мыла и гостинга, обратите внимание на зеркала у машины
DLSS
Изображение
TAA
Изображение
и еще DLSS
Изображение

а тут можно посмотреть на разницу в статике между DLSS и TAA. На первый взгляд картинка с ТАА может показаться лучше, но дьявол кроется в деталях, достаточно приглядеться к кактусам слева или к прутьям решетки, с TAA они имеют лесенки и вообще распадаются на пиксели, а с DLSS таких проблем нет, опять же, похоже, что здесь в ТАА используется крайне мало кадров, из-за чего не достает информации для качественного сглаживания.
DLSS
Изображение
TAA
Изображение
Так что же такое DLSS? Я бы сказал, что это эволюция (TXAA - MFAA - DLSS) идеи сглаживания, которое ело бы мало ресурсов, плюс щепотка шарпа... упс. Алгоритм основан на ТАА, но с куда большими масштабами. Остается надеяться, что технология будет и дальше развиваться, а нейронка научится еще лучше чистить изображение
Последний раз редактировалось MetalSnow 09 мар 2021, 10:20, всего редактировалось 6 раз.
Проц - красненький, видеокарта - зелёненькая
Аватара пользователя
RadeonForce
Сообщения: 5668
Зарегистрирован: 27 ноя 2020, 19:01
Re: Да кто такой этот ваш DLSS?

Сообщение RadeonForce »

это можно опубликовать где-нибудь в более видном месте. Ща подумаемс
Аватара пользователя
ghostwraith
Куратор
Сообщения: 569
Зарегистрирован: 12 мар 2021, 21:40
Re: Да кто такой этот ваш DLSS?

Сообщение ghostwraith »

Форс привет, могу курировать ветку водянок. Спасибо
AMD 5900x 5.050 MHz PBO -21 AllCore,32DDR4-3733 CL14-14-14-28
Radeon VII 2125Mhz 1221mV Zima, Radeon VII 2099Mhz 1218mV Leto, Bench...
https://sysprofile.ru/p/1/ghostwraith
Аватара пользователя
RadeonForce
Сообщения: 5668
Зарегистрирован: 27 ноя 2020, 19:01
Re: Да кто такой этот ваш DLSS?

Сообщение RadeonForce »

Привет, я не против. Пока работаю над правами группы "кураторы", чуть позже(сегодня) дам статус куратора.
Но хочу прояснить: тут не оверы. Думаю, подробнее объяснять не нужно. Чистый лист, чистая совесть, любые фанатские срачи и прочее тут страшное преступление (на мелкие перепалки в несколько постов я еще может глаза закрою). Это не только тебя касается, а всех и каждого, в том числе и меня.

Для срачей создадим подвал, все же есть любители этого дела, от этого никуда не деться...
Аватара пользователя
ghostwraith
Куратор
Сообщения: 569
Зарегистрирован: 12 мар 2021, 21:40
Re: Да кто такой этот ваш DLSS?

Сообщение ghostwraith »

спасибо за статью! многое объясняет, почему в статике все нормально. А в динамике вылазят проблемы. Думаю лет через 10 нейросеть научится адекватно гасить артефакты.
AMD 5900x 5.050 MHz PBO -21 AllCore,32DDR4-3733 CL14-14-14-28
Radeon VII 2125Mhz 1221mV Zima, Radeon VII 2099Mhz 1218mV Leto, Bench...
https://sysprofile.ru/p/1/ghostwraith
Аватара пользователя
ghostwraith
Куратор
Сообщения: 569
Зарегистрирован: 12 мар 2021, 21:40
Re: Да кто такой этот ваш DLSS?

Сообщение ghostwraith »

RadeonForce писал(а): 12 мар 2021, 21:50
Для срачей создадим подвал, все же есть любители этого дела, от этого никуда не деться...
сегодня думал по этому поводу. Предлагаю создать правило, где оскорбительные выражения закрашиваются черным. Для всех будет скрыто, а кому надо те ткнут и прочитают (для некоторых людей это норма общения и не является оскорблением. И не ущемит в праве выражения мысли). Инструменты форума это позваляют делать?
AMD 5900x 5.050 MHz PBO -21 AllCore,32DDR4-3733 CL14-14-14-28
Radeon VII 2125Mhz 1221mV Zima, Radeon VII 2099Mhz 1218mV Leto, Bench...
https://sysprofile.ru/p/1/ghostwraith
Аватара пользователя
RadeonForce
Сообщения: 5668
Зарегистрирован: 27 ноя 2020, 19:01
Re: Да кто такой этот ваш DLSS?

Сообщение RadeonForce »

ghostwraith писал(а): 12 мар 2021, 22:12 сегодня думал по этому поводу. Предлагаю создать правило, где оскорбительные выражения закрашиваются черным. Для всех будет скрыто, а кому надо те ткнут и прочитают (для некоторых людей это норма общения и не является оскорблением. И не ущемит в праве выражения мысли). Инструменты форума это позваляют делать?
зачем вообще доводить до ругательств? Такое можно реализовать в подвале, чтобы эти посты не отображались на основном сайте.
Аватара пользователя
ghostwraith
Куратор
Сообщения: 569
Зарегистрирован: 12 мар 2021, 21:40
Re: Да кто такой этот ваш DLSS?

Сообщение ghostwraith »

дело не в доводить, а в том, что для многих это нормальная форма общения. Которая в принципе порицается, но всеми используется. Если данное предложение не подходит, то я только предложил.
AMD 5900x 5.050 MHz PBO -21 AllCore,32DDR4-3733 CL14-14-14-28
Radeon VII 2125Mhz 1221mV Zima, Radeon VII 2099Mhz 1218mV Leto, Bench...
https://sysprofile.ru/p/1/ghostwraith
Аватара пользователя
ultrafx
Сообщения: 309
Зарегистрирован: 27 ноя 2020, 19:01
Re: Да кто такой этот ваш DLSS?

Сообщение ultrafx »

А где ссылка на блог нв в вк, где они сами это разбирают?
Конфигурация - https://sysprofile.ru/p/1/ultrafx
Core i5-11400F
32GB DDR4
RX 6500 XT Sapphire Pulse
Аватара пользователя
RadeonForce
Сообщения: 5668
Зарегистрирован: 27 ноя 2020, 19:01
Re: Да кто такой этот ваш DLSS?

Сообщение RadeonForce »

ultrafx писал(а): 09 авг 2021, 16:43 А где ссылка на блог нв в вк, где они сами это разбирают?
Он появился позже. Они же на нас ссылку не скинули :pardon:
Там пишут, что в динамике у длсс проблем нет, занятно
Maillog
Сообщения: 85
Зарегистрирован: 05 июн 2022, 22:32
Re: Да кто такой этот ваш DLSS?

Сообщение Maillog »

Наткнулся на эту статью из другого топика и хочу уточнить пару моментов по работе DLSS и не только
появляется TAA, не понятно от кого
TAA никем на запатентован и под этим словосочетанием подразумеваться может что угодно.Сам по себе он ничего нового не предлагает, обычное уравнивание цвета пикселей, но с применением нескольких кадров
Сам элемент темпорального накопления применялся очень давно ещё для оффлайн рендеров трассировки лучей, а идея использовать это при растре для сглаживания появилась примерно в 2009 году, в статье Amortized supersampling.Там предлагались различные варианты увеличения производительности суперсэмплинга
Первая же игра с подобным антиялясингом NV называет Halo Reach(2010 год)
Из всего, что подается на вход, лично я думаю, что только motion vectors целесообразно рассчитывать в нейронной сети
Неа, подробно рассказываю что тут подаётся
1.Лоу рез сцена, тут всё понятно-это тот самый ренедр в пониженном разрешении
2.Jitter Offsets-это берется несколько предыдыдущих кадров и смещается относительно текущего чтобы и получить те самые сэмплы
3.Depth-G buffer
4.Moution Vectors-моушн векторы это такие координаты которые показывают на какое конкретно расстояние и на какую позицию "переместился" пиксель, рассчитываются они как раз при пункте 2 когда происходит наложение нескольких кадров и вычисления сэмплов, этот процесс вообще есть в каждой игре с TAA
5.Карта глубины
6.Карта цветов
что же тогда улучшили в dlss 2.0?
Очень просто, генеративно-состязательная сеть с версии 2.0 не обучается конкретно под каждую игру
сеть ловить и устранять гостинг
На самом деле гостинг она не устраняет, сама нейронка занимается лишь реконструкцией, алгоритма подавления гостинга в ней нет.NV лишь улучшает эту самую сеть чтобы гостинга было меньше, но самого алгоритма подавления у DLSS нет
в остальных пунктах я не вижу сложных вычислений
Самое сложно здесь эту самую нейронку запустить, почему dlss работает так быстро? 2 вещи

1.DLSS не тренируется в реальном времени, нейронка УЖЕ обучена и лишь инференсно запускается
2.Аппаратное обеспечение в виде тензорных ядер которые позволяют очень быстро слаживать эти самые матрицы которые нейронке нужны
Для сравнения как бы оно работало без них-есть технический анализ нейронки для реконструкции изображений от фейсбука и там приведены результаты
Изображение
Запускалось это на Titan V с использованием FP16, то есть не использовались тензорные операции и всё работало на обычных ALU
Результат я думаю очевиден

Вообще чтобы действительно понимать как работает DLSS, надо погрузиться в нейронные сети и понять что такое автоэнкодеры, какие сети вообще бывают, почему они впринципе называются "нейронными" и как происходит обучение
Из всех роликов что на ру что англ сегменте это самое простое в понимании и самое полное
Спойлер
Рассказано проще некуда, но тема такая обширная и сложная для понимания обычного человека что меньше чем за час там не управиться :-D

Ответить