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

Post Reply
User avatar
MetalSnow
Posts: 472
Joined: 05 Mar 2021, 10:55
Да кто такой этот ваш DLSS?

Post by MetalSnow »

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

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

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

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

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

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

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

а тут можно посмотреть на разницу в статике между DLSS и TAA. На первый взгляд картинка с ТАА может показаться лучше, но дьявол кроется в деталях, достаточно приглядеться к кактусам слева или к прутьям решетки, с TAA они имеют лесенки и вообще распадаются на пиксели, а с DLSS таких проблем нет, опять же, похоже, что здесь в ТАА используется крайне мало кадров, из-за чего не достает информации для качественного сглаживания.
DLSS
Image
TAA
Image
Так что же такое DLSS? Я бы сказал, что это эволюция (TXAA - MFAA - DLSS) идеи сглаживания, которое ело бы мало ресурсов, плюс щепотка шарпа... упс. Алгоритм основан на ТАА, но с куда большими масштабами. Остается надеяться, что технология будет и дальше развиваться, а нейронка научится еще лучше чистить изображение
Last edited by MetalSnow on 09 Mar 2021, 10:20, edited 6 times in total.
Проц - красненький, видеокарта - зелёненькая
RadeonForce
Posts: 6878
Joined: 27 Nov 2020, 19:01
Re: Да кто такой этот ваш DLSS?

Post by RadeonForce »

это можно опубликовать где-нибудь в более видном месте. Ща подумаемс
User avatar
ghostwraith
Posts: 836
Joined: 12 Mar 2021, 21:40
Re: Да кто такой этот ваш DLSS?

Post by 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
Posts: 6878
Joined: 27 Nov 2020, 19:01
Re: Да кто такой этот ваш DLSS?

Post by RadeonForce »

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

Для срачей создадим подвал, все же есть любители этого дела, от этого никуда не деться...
User avatar
ghostwraith
Posts: 836
Joined: 12 Mar 2021, 21:40
Re: Да кто такой этот ваш DLSS?

Post by 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
User avatar
ghostwraith
Posts: 836
Joined: 12 Mar 2021, 21:40
Re: Да кто такой этот ваш DLSS?

Post by ghostwraith »

RadeonForce wrote: 12 Mar 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
Posts: 6878
Joined: 27 Nov 2020, 19:01
Re: Да кто такой этот ваш DLSS?

Post by RadeonForce »

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

Post by 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
User avatar
ultrafx
Posts: 313
Joined: 27 Nov 2020, 19:01
Re: Да кто такой этот ваш DLSS?

Post by ultrafx »

А где ссылка на блог нв в вк, где они сами это разбирают?
Конфигурация - https://sysprofile.ru/p/1/ultrafx
Core i3-12100F
16GB DDR4
RTX 3060 8GB MSI
RadeonForce
Posts: 6878
Joined: 27 Nov 2020, 19:01
Re: Да кто такой этот ваш DLSS?

Post by RadeonForce »

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

Post by 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.Аппаратное обеспечение в виде тензорных ядер которые позволяют очень быстро слаживать эти самые матрицы которые нейронке нужны
Для сравнения как бы оно работало без них-есть технический анализ нейронки для реконструкции изображений от фейсбука и там приведены результаты
Image
Запускалось это на Titan V с использованием FP16, то есть не использовались тензорные операции и всё работало на обычных ALU
Результат я думаю очевиден

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

Post Reply