Velké novinky v upscalingu u Nvidie: DLSS 2.3 a Nvidia Image Scaling jako alternativa FSR

16. 11. 2021

Sdílet

 Autor: Nvidia
Nvidia má nová verzi DLSS vylepšující kvalitu obrazu. Také ale uvádí vlastní alternativu FSR, ne-DLSS upscaling fungující na všech GPU.

Je to něco přes rok, co Nvidia oznámila novou generaci AI upscalingu DLSS sloužícího k navýšení FPS ve hrách, generaci 2.0 s výrazně lepší kvalitou díky temporální rekonstrukci a stabilizaci. Nyní přicházejí další novinky: nová verze DLSS 2.3 přináší novou Ai pro lepší kvalitu, současně ale také Nvidia uvádí čistě spatiální upscaler, který je vlastně konkurencí či alternativou pro podobnou technologii AMD FSR.

Nejnovější verze AI upscalingu a rekonstrukce nese jméno DLSS 2.3 a oficiálně byla odhalena dnes. Paradoxně ale již byla dopředu nějakou chvíli známá, protože soubory této verze už byly veřejně dostupné. A díky schopnosti nahrazení knihoven ve hrách už tedy hráči mohli DLSS 2.3 otestovat.

DLSS 2.3: vylepšení proti ghostingu

Podle Nvidie by tato verze měla rozšířit použití pohybových vektorů, ale není přesně řečeno jak. Teoreticky by mohlo jít o zvýšení počtu po sobě jdoucích snímků, které hra k temporálnímu filtrování a rekonstrukci používá. Ale ten již nyní byl zřejmě dost vysoký, takže je pravděpodobnější že změna je v tom, jak jsou vyhodnocovány a „mixovány“ do výsledku. Současně také Nvidia paralelně pokračuje v trénování AI modelu, který je v DLSS je použitý, díky čemuž se interpolace a temporální část může postupně zlepšovat v různých ohledech.

DLSS 2.3 by mělo zlepšovat v některých situacích ghosting (duchy, stopy předchozích snímků), který se někdy u DLSS 2.x tvoří kvůli temporální povaze tohoto filtru (více o fungování DLSS 2.0 jsme psali zde). DLSS 2.0 má tzv. motion compensation, kdy pomocí pohybových vektorů dává dohromady body z různých částí snímku dle toho, jak se v nich objekty pohybují, ve většině případů proto ghosting nenastane.

Kvůli různým rotacích, změnám velikosti, perspektivy a podobně tyto objekty ale nemusí přímo korespondovat a kombinují se pixely, které k sobě úplně nesedí, takže někdy se kombinace nepovede a vzniknou duchy, rozmazání a artefakty, kdy je v obraze z předchozího snímku něco, co tam být nemá. DLSS 2.3 má v tomto ohledu být zase úspěšnější a chytřejší, takže (minimálně v některých případech) se má nyní tvorbě ghostingu vyhnout.

Příklad Nvidie ukazující ghosting v Cyberpunku 2077 Příklad Nvidie ukazující ghosting v Cyberpunku 2077 (Zdroj: Nvidia)

Příklad můžete vidět třeba na tomto snímku na zpětném zrcátku v Cyberpunku 2077. prývě do této hry by se teď DLSS 2.3 mělo dostat (update by měl údajně dorazit dnešního dne). Další hrou, kde by už DLSS 2.3 mělo být teď použité, je Doom Eternal, kde by měl mít podobný efekt.

Příklad Nvidie ukazující ghosting v Doom Eternal Příklad Nvidie ukazující ghosting v Doom Eternal (Zdroj: Nvidia)

Nvidia uváděla příklad letících jisker, u kterých DLSS 2.1 někdy vytvářelo docela dlouhé ocasy, protože evidentně AI model nebo komponent dávající dohromady pixely pomocí pohybových vektorů nedokázal správně zpracovat malé objekty na tmavém pozadí. Obecně drobné pohybující se částice v různých scénách byly zřejmě jedním z problematických míst temporální rekonstrukce, takže v nich by mohlo DLSS 2.3 pomáhat.

Tip: DLSS Research: Nvidia zveřejňuje nejnovější experimentální verze DLSS, testovat může každý

Nvidia Image Scaling neboli Spatial Upscaling

Druhá novinka není už přímo o DLSS. Nvidia totiž nyní aktualizovala i algoritmus „obyčejného“ upscalingu či škálování, který lze použít skrze její ovladače. Ten nepoužívá intepolátor na bázi neuronové sítě (AI) jako DLSS, jde o konvenční „2D“ spatiální algoritmus. Nvidia mu říká „Nvidia Image Scaling“ nebo pro potřeby srovnání s DLSS „Spatial Upscaling“. Firma tento druh upscalingu při svém důrazu na DLSS v poslední době moc neprezentovala, ale to se teď mění, nová verze byla dnes předvedena a představena.

Nvidia Spatial Upscaling Nvidia Spatial Upscaling, funkce Image Scaling (Zdroj: Nvidia)

Smyslem tohoto jednoduššího škálovacího algoritmu je být použitelný prakticky všude – nepotřebuje žádná tensor jádra (běží na obecných shaderech) a není závislý na pohybových vektorech (takže také nebude trpět artefakty jako je ghosting). To není ani DLSS 1.0, ale tam závislost na tensor jádrech je (DLSS 1.0 neběží na ničem jiném než kartách GeForce RTX 2000/3000) a AI filtr má tendenci více měnit obsah obrazu plus má možná větší komplexitu. Nvidia ale každopádně asi teď vidí příležitost i pro běžný upscaling. Takto prezentovaná technologie je vlastně asi blízkou obdobou upscalingu FSR (FidelityFX Super Resolution) od AMD.

Open source a univerzální řešení

A vlastně také konkurencí. Nvidia totiž uvádí, že toto škálování bude podobně volně dostupné pro vývojáře (kód by měl být open source na Githubupod licencí MIT) a má fungovat i na konkurenčních GPU a platformách, vývojáři ho budou moci použít třeba i na konzolích (která mají GPU od AMD). Zřejmě také integrace do hry má být velmi snadná, mají být k dispozici i pluginy pro enginy a vývojářské nástroje.

Nvidia Image Scaling tedy je asi do značné míry alternativa, kterou Nvidia nabízí vývojářům her místo FSR, i když těžko říct, zda jí vyloženě jde o to, aby řešení od konkurence přebíjela nebo nahrazovala. Ve hrách by mohlo samozřejmě asi být obojí, ale protože oba algoritmy plní stejnou roli, mělo by to pak asi jen tu funkci, že by si hráč mohl vybrat ze dvou verzí filtru, kde každá má trochu odlišný obraz (a pravděpodobně také dopad na výkon). Každopádně by ale tento způsob upscalingu měl mít stejné výhody jako FSR, tedy jednoduchost, univerzální fungování na všech GPU, přenositelnost a multiplatformnost.

Tato nová verze Image Scalingu se údajně vyvinula z funkce Nvidia Image Sharpening, která byla přítomná v Nvidia Control Panelu a dala se používat ke kombinaci upscalingu a přiostření. Dnes byla ale s ovladači GeForce GameReady 496.70 vydána nová verze, která má vylepšený algoritmus, jenž by podle Nvidie měl mýt vyšší výkon a lepší kvalitu.

Srovnání Nvidia Image Scaling a DLSS Srovnání Nvidia Image Scaling a DLSS (Zdroj: Nvidia)

Stejně jako FSR se Nvidia Image Scaling skládá ze škálovacího algoritmu („Spatial Scaling“) a následně aplikovaného ostřícího filtru („Sharpening“), který má vylepšit vzhled hran. Rozlišení, na kterém se hra vykresluje, se dá nastavit, a stejně tak se dá posuvníkem nastavit síla pro ostřící filtr. Zatímco AMD u FSR klade důraz na několik přednastavených presetů (byť volné nastavení parametrů asi algoritmus také dovoluje), u Nvidie presety nejsou.

Projev v obraze tak není jen jeden jediný, kvalita a charakter výstupu záleží na obou těchto parametrech (na což je dobré pamatovat při srovnávání snímků mezi různými těmito technologiemi).

NecroDetailSBS Srovnání Nvidia Image Scaling a DLSS (Zdroj: Nvidia)

Vyšší kvalita, než u FSR?

Podle Nvidie je tento Spatial Upscaling nejkvalitnější spatiální algoritmus tohoto druhu pro hry. Nemá logicky schopnosti DLSS 2.0 (s DLSS 1.0 ho zřejmě Nvidia nesrovnává), ale podle Nvidie by kvalita obrazu měla být vyšší než u AMD FSR. Použitý je 6-tap filtr používající directional scaling se čtyřmi kernely a ostřící algoritmus je adaptivní. Obě operace (scaling i ostření je ovšem provedené v jednom průchodu kvůli výkonu). Všechny operace provádějí samozřejmě shadery na obecných jednotách, nevíme, zda používají třeba operace FP16.

NIS2Godfall4KSBS Srovnání Nvidia Image Scaling a AMD FSR dle Nvidie (Zdroj: Nvidia)

Podle počtu tapů by možná algoritmus mohl být výpočetně náročnější, což sedí s tím, že podle Nvidia má být kvalita výstupního obrazu vyšší. FSR by snad mělo používat 2-tap filter (EASU), což je asi zaměřeno na vyšší rychlost. Nicméně více tapů vedle toho, že dodává větší ostrost, také u škálovacích algoritmů zvyšuje ringing. AMD ve FSR/EASU má přidané další operace, které fungují jako filtr eliminující ringing. Zda je v algoritmu Nvidie také je nějaký anti-ringing, to nevíme. Pokud ne, pak by asi Image Upscaling mohlo mít více ostrý, ale o něco méně čistý obraz.

V oblasti škálovacích algoritmů jde o dost obvyklý jev, kdy různé metody mají různě nastavené kompromisy. Ringing se projevuje jako zvlnění kolem hran, které se někdy zamaskuje tím, že vypadá jako ostrost či zrnitost textury, jindy je ale rušivý.

NIS2.0RE84KSBS Srovnání Nvidia Image Scaling a AMD FSR dle Nvidie (Zdroj: Nvidia)

Kvalitu obou řešení asi bude ale dobré hodnotit až podle většího množství nezávislých testů. Nvidia ukazovala například srovnání v Necromunda: Hired Gun, kde algoritmus Nvidia Image Scaling škáloval z 2954 × 1662 bodů na 4K o něco rychlejší než AMF FSR Ultra Quality, nicméně nešlo asi o úplně stejnou práci, protože u Nvidie se použil upscaling z ovladačů, takže postprocessing běžel na nižším rozlišení, než u AMD FSR. Toto by nemuselo mít velký dopad, ale nevíme, zda například Image Scaling nemá lepší výsledky na kartách GeForce (a AMD FSR na Radeonech), což by mohlo nastat kvůli odlišnostem v tom, jak mají GPU obou firem implementované operace s přesností FP16. FSR je patrně optimalizováno pro technologii AMD Rapid Packed Math a na GeForce běžet pomalji, Nvidia by zase mohla mít shadery napsané pro optimální výkon na architekturách Turing/Ampere.

Srovnání AMD FSR Nvivia Image Scaling a DLSS podle Nvidie Srovnání AMD, FSR Nvidia Image Scaling a DLSS podle Nvidie (Zdroj: Nvidia)

Globální verze pro všechny hry…

Filtr Image Upscaling lze používat z nvidia Control Panelu, ale také ho lze jednoduše zapnout z aplikace GeForce Experience (lze ho tedy asi používat globálně i na hry, které pro něj nemají přímou podporu, jen pak je asi použitý na neselektivní postprocessing celého finálního snímku).

Zapnutí Nvidia Image Scaling v Control Panelu Zapnutí Nvidia Image Scaling v Control Panelu (Zdroj: Nvidia)

Nevýhoda je, že tento způsob zřejmě není kompatibilní s řadou softwarových nástrojů na snímání a záznam obrazu. Protože ke škálování a ostření dochází až nakonec a v rámci grafického ovladače na GPU, může dojít k tomu, že váš záznam bude místo výstupního rozlišení pořízený na nižším vykreslovacím rozlišení (a asi bez efektu celého filtru). Může tedy být nutné pro záznam videa ze hry používat hardwarovou kartu ukládající obraz z obrazového výstupu HDMI.

Zapnutí Nvidia Image Scaling v GeForce Experience Zapnutí Nvidia Image Scaling v GeForce Experience (Zdroj: Nvidia)

… nebo integrace do her jako u FSR

Druhá cesta, jak může být tento upscaling použitý, je to, že ho vývojáři přímo integrují do hry, tedy jako to AMD FSR. Toto bude možné pomocí knihoven Nvidia Image Scaling SDK. Pokud bude Nvidia Image Scaling integrované do hry, bude sice používat stejný algoritmus, který lze nastavit globálně „nasilu“ v ovladačích, ale bude mít některé výhody navíc. Místo použití na celý hotový snímek se totiž škálovací filtr zařadí do pipeline vykreslování na vhodnější místo – po vyhlazování a mapování barev, ale před další postprocessing a také předtím, než se vykreslí GUI/HUD hry (to pak bude bez stop upscalingu, který u něj zrovna může být rušivý).

Nvidia Spatial Upscaling SDK umožňuje integraci do her jako v FSR Nvidia Spatial Upscaling SDK umožňuje integraci do her jako v FSR (Zdroj: Nvidia)

Také je důležité, že se škáluje a ostří před postprocessingové filtry jako je přidání šumu. Ostření šumu má totiž opět negativní dopady, často to nevypadá dobře. Naopak přidání šumu na upscalovaný snímek je přínosné, protože maskuje neduhy upscalingu. Přesně stejně na to jde také AMD FSR, takže v případě integrace Nvidia Image Scalingu přímo ve hře budou samotné škálovací a ostřící algoritmy mít stejné podmínky.

Řešení pro vyšší rozlišení

Nvidia doporučuje Image Scaling používat jen pro výstupní rozlišení 1440p a 4K a s relativně nižšími škálovacími faktory, kdy není rozdíl v kvalitě proti nativnímu vykreslování tak velký. Pro hraní s výstupním rozlišením 1920 × 1080 bodů už to moc vhodné nebude, protože zdrojový obraz už bude mít poměrně velkou nouzi o detaily. DLSS 2.x v nízkých rozlišeních zachraňuje ona temporální rekonstrukce z předešlých snímků, zde není a výsledky tedy budou špatné. Toto lze ale stoprocentně vztáhnout i na konkurenční alternativu (FSR), jde o vlastnost použitého přístupu.

Co bude podle vás lepší spatial (netemporální) upscaling pro hry?

ICAT: snadné porovnávání snímků či záznamů

Pro potřeby porovnávání kvality obrazu ve hře (nebo videa) Nvidia zveřejnila nástroj ICAT, který dovoluje porovnávat snímky nebo videa ze hry. Srovnávat se dají až čtyři zdroje, a to vedle sebe, nebo se dá použít přetahovací posuvník, který vám může pomoci zpozorovat změny.

Program umožňuje také sladit snímky různých rozlišení nebo videa temporálně (pokud nesedí délka). Také se dá zazoomovat na určité místo a analyzovat rozdíly.

Nvidia Spatial uvádí nástroj ICAT Nvidia Spatial uvádí nástroj ICAT (Zdroj: Nvidia)

Nvidia toto řešení používá interně k vlastnímu vývoji, ale ode dneška by ICAT měl být vydán i veřejně, takže ho budete moci používat také.

Nvidia chce vydáním tohoto nástroje motivovat recenzenty, aby při testech různých upscalovacích technik nekoukali pouze na výkon, ale aby také porovnávali, jak obraz vypadá, tj. aby nesrovnávali metody jako AMD FSR nebo nyní nový Nvidia Image Upscaling s nějakým konkrétním režimem DLSS, pokud má DLSS vyšší kvalitu.

Porovnávání záznamů ze hry v ICAT Porovnávání záznamů ze hry v ICAT (Zdroj: Nvidia)

Pomůcka pro ekvalizaci obrazových nastavení při testech výkonu?

Toto nicméně nebude vůbec jednoduché realizovat, protože hodnocení kvality obrazu může být velmi neexaktní problematika. Kromě preferencí, sleposti nebo citlivosti na určitý a ne zase jiný druh artefaktů v obrazu, může být hodně těžké zvážit, které artefakty jsou horší a které (relativně) lepší.

bitcoin školení listopad 24

Při srovnání různých upscalovacích technik včetně těch využívajících umělé inteligence, totiž často dochází k případům, kdy v nějakém místě nebo nějaké scéně se jedno nastavení/řešení chová viditelně lépe, ale v jiných scénách nebo částech obrazu se zase může projevit nějaká nectnost. Co je přesně ekvivalentní kvalita, tedy bude dost těžké rozhodovat.

Zdroj: Nvidia