Průvodce světem technologií NVIDIA: K čemu slouží a jak funguje DLSS
i Zdroj: Madfinger Games
Grafické karty Článek Průvodce světem technologií NVIDIA: K čemu slouží a jak funguje DLSS

Průvodce světem technologií NVIDIA: K čemu slouží a jak funguje DLSS | Kapitola 2

Adam Vágner

Adam Vágner

5. 7. 2024 15:00 97

Seznam kapitol

1. Nejde o výmysl umělé inteligence 2. Kde se berou detaily? 3. V čem je obraz s DLSS kvalitnější? 4. Vliv DLSS na kvalitu obrazu a herní výkon

NVIDIA označuje DLSS za revoluci v grafice a násobitel výkonu, který s pomocí umělé inteligence vytváří vyšší počet snímků a zvyšuje kvalitu obrazu. To je hodně silné prohlášení. Ukážeme si na praktických ukázkách, jak DLSS funguje, jeho výhody a nevýhody a otestujeme výkon.

Reklama

Odkud se vzaly detaily?

Princip podobný algoritmům pro zvětšování obrázků (upscalingu) využívala pouze první generace DLSS chvíli po uvedení prvních GeForce z řad RTX 20. Nejstarší verze DLSS (označovaná jako 1.x) obraz rekonstruovala primárně z jednoho naposledy vykresleného snímku. I DLSS první generace už ale mohlo využívat i rozšířené informace ze hry třeba pro zlepšení stability obrazu, takže výsledek mohl být lepší než klasický upscaling. Významnou nevýhodou první generace DLSS byla nutnost trénovat model přímo na příslušnou hru.

Grafická karta však ve hrách nerenderuje pouze jediný snímek, nýbrž desítky či stovky snímků za sekundu, čehož lze při vytváření nového snímku využít také. A právě s tímto přístupem přišla NVIDIA v březnu 2020 při uvedení DLSS druhé generace.

Od DLSS verze 2.0 už je obraz rekonstruovaný z více po sobě jdoucích snímků a algoritmus přitom využívá i další informace o pohybu a změnách mezi snímky. Vzorky, na jejichž základě se vykresluje obrazový bod, jsou mezi snímky mírně posunuté. Seskládáním obrazu z více snímků pak lze pro vykreslení toho aktuálního získat mnohem vyšší počet vzorků než z jednoho snímku. Výsledek se tak nemusí významně lišit od renderingu obrazu v plném rozlišení. 

Pro začátek to maximálně zjednodušíme. Představte si, že máte dva statické snímky. Jeden renderovaný v rozlišení 4K, druhý jen se čtvrtinou pixelů v rozlišení 1080p. O tom, jak se barva objektu ve scéně promítne do pixelů, rozhodne barva, kterou při renderingu „naberete“ v místě, vzorku (sample). Vzorek můžete nabrat buď při jenom průchodu v rozlišení 4K, nebo lze rozlišení snížit třeba 1080p, pixel zvětšit, ale vzorky nabírat na různých místech pixelu. Nebudete je ovšem brát z jediného snímku, ale ze čtyř různých snímků, které následují po sobě. A místo, ve kterém vzorkujete, vždy v rámci pixelu o kousek posunete.

Porovnávání Porovnávání
i Zdroj: PCTuning.cz
i Zdroj: PCTuning.cz

Získáte tím obdobně kvalitní soubor vzorků. Podstatné je, že není třeba fabulovat, protože počet nabraných vzorků je u obou přístupů obdobný. Neuronová síť nemusí vycházet jen z aktuálního snímku a scházející informace „domýšlet“, ale má je i ze snímků předchozích. Vzorků pro sestavení výsledného obrazu ve vysoké kvalitě má tedy DLSS k dispozici více než dost. 

Na obrázku níže už NVIDIA (opět se zjednodušením) ilustruje rozdíly mezi nativním rozlišením, tradičním upscalingem (zvětšením) aktuálního snímku a DLSS. Ve 4K je v pixelu pouze jeden vzorek. Pokud máte jen jeden snímek v nízkém rozlišení, při upscalingu je vzorků stále pouze čtvrtina. Při zvětšování jej používaná interpolace obvykle ještě rozmaže, takže je dobré výsledek doostřit. Vždy ale bude vycházet z menšího počtu vzorků. U DLSS je v každém pixelu vzorků více (proto označení „SuperSampling“). Roli hrají i v prezentaci zmíněné pohybové vektory, k nim se hned dostaneme.

Průvodce světem technologií NVIDIA: K čemu slouží a jak funguje DLSS
i Zdroj: NVIDIA

Výhodou DLSS je, že nemusí využívat pouze stejný počet vzorků jako nativní rozlišení. To znamená, že na převzorkování obrazu z rozlišení 1920×1080 na 3840×2160 bodů nemusí vycházet jen ze stejného počtu vzorků jako u jednoho snímku v plném rozlišení. Může jich sesbírat klidně víc třeba z deseti snímků. Na jeden snímek tak může mít nakonec i mnohem více vzorků než rendering v nativním rozlišení a dosáhnout tak požadované kvality.

NVIDIA podle příručky pro vývojáře zvolila pro jednotlivé režimy DLSS následující výchozí rozlišení:

předvolba kvalityměřítkonativní rozlišení 3840×2160nativní rozlišení 2560×1440nativní rozlišení 1920×1080
Ultra Quality77 %2954×16621970×11081477×831
Quality66,67 %2560×14401706×9601280×720
Balanced59 %2259×12711506×8471129×635
Performance50 %1920×10801280×720960×540
Custom50–100%1920×1080 až 3840×21601280×720 až 2560×1440960×540 až 1920×1080

Samozřejmě záleží na vývojářích, zda se toho budou striktně držet. V některých hrách lze místo předvolených režimů nastavovat přímo samotné měřítko, nebo můžete nastavit přímo rozlišení, ze kterého se bude obraz rekonstruovat na rozlišení nastavené ve hře.

Věci se dávají do pohybu

U statické scény to funguje perfektně. Když se ale obraz nebo objekty začnou pohybovat a v novém snímku jsou už vzorky jinde než předchozím, je před vykreslováním aktuálního snímku nezbytné opravit umístění starších vzorků podle toho, odkud a kam se mezi snímky pohnuly. A k tomu, aby DLSS vědělo, co a kam má posunout, slouží mapa pohybových vektorů, v níž je zaznamenaný směr i vzdálenost pohybu objektů ve scéně. Na základě ní pak DLSS přesouvá data ze starších snímků při vytváření nového na správné místo.

Průvodce světem technologií NVIDIA: K čemu slouží a jak funguje DLSS
i Zdroj: NVIDIA

Další problém může také nastat, když se po obrazu pohybuje něco, co část snímků zakrývá. Potom může být v novém snímku méně vzorků v místech, která byla dříve překrytá. 

Představte si to třeba tak, že máte data sestavená z několika snímků, ale v každém z nich část dat pro skládání nového snímku chybí. Když je v této podobě sestavíte, budou ve výsledném snímku nežádoucí obrazové artefakty – pohybující se čtverec za sebou potáhne postupně blednoucí stopu (ducha, používá se i termín ghosting).

Průvodce světem technologií NVIDIA: K čemu slouží a jak funguje DLSS
i Zdroj: PCTuning.cz

Zde už musí nastoupit ono reálné „retušování“ obrazu s pomocí AI. Scházející data je nutné nějak doplnit a opravit zároveň opravit data, která už nejsou aktuální. U příkladu výše je to třeba poloprůhledný „duch“ čtverečku, který v předchozích snímcích přejížděl přes písmeno M. 

Jednoduché algoritmy mohou zaplnit prázdná místa třeba naklonovaným vzorem z okolí, průměrnou barvou okolních pixelů, či šumem, aby rekonstruovaná oblast moc netloukla do očí. Při vysokém počtu snímků ale není čas na zdlouhavé analýzy. A tady má DLSS s možností využít natrénovanou neuronovou síť s akcelerací AI pro vygenerování vzorů pro „záplatování“ chybějících dat proti jednodušším algoritmům jednoznačně navrch. 

Právě kvůli tomu, s čím se DLSS musí při skládání snímků vypořádat, neodpovídá jeho výstup nativnímu renderingu za všech okolností. Hodně problematický byl u prvních generací DLSS 2.x například rendering částicových efektů (zjednodušené napodobení drobných částic jako jiskry, oheň, poletující listí či smetí apod.), které DLSS nevnímalo po jednotlivých částicích, ale jako nadřazené větší objekty. Kvůli tomu neprovádělo přesné korekce. Ale to se od DLSS 2.3 významně zlepšilo. 

S čím se musí vypořádat?

V některých ohledech může být obraz při využití DLSS horší (problematické bývají především velké změny mezi snímky, jako střih v animacích, nebo třeba zmiňovaná rekonstrukce pozadí za velkými objekty, které se obrazem rychle mihnou), u jiných artefaktů vznikajících při renderingu může být výsledek zase naopak lepší než u nativního rozlišení. 

Rendering v nativním rozlišení je situacích kritických pro DLSS ve výhodě, ale ani u něj nemáte jistotu, že bude bezchybný – řada technologií, náročnějších efektů a postprocessingových filtrů nebo rychlých technik pro vyhlazování hran (anti-aliasing) či odšumování využívá taktéž akumulace dat z více snímků. Následkem toho se pak mohou ve snímku objevovat podobné nežádoucí artefakty jako „ghosting“ či nedostatky v obrazu v okolí objektů, které se pohybují. A někdy jsou tyto artefakty kvůli zaměnitelnosti dokonce nechtěně přičítány DLSS.

A výsledek záleží pochopitelně i na tom, jak se řadou parametrů, které lze u DLSS nastavit pro účely dané hry, poperou samotní vývojáři. I proto DLSS v některých hrách funguje na výbornou a v jiných můžete narážet na nedostatky.

Jenom pro jistotu dodám, že zjednodušené vysvětlení, že hra skládá vzorky z mnoha snímků a z nich generuje obraz, není zcela přesné. V souladu se schématy prezentujícími DLSS by bylo přesnější říct, že DLSS nový snímek neskládá pokaždé znovu z posledních třeba deseti snímků v nižším rozlišení. Místo toho si data ze všech vzorků přenáší již zpracovaná v podobě snímku v plném nativním rozlišení a po renderingu aktuálního snímku provádí potřebné korekce pohybu a přidává k němu nové vzorky z čerstvě vyrenderovaného snímku.

Průvodce světem technologií NVIDIA: K čemu slouží a jak funguje DLSS
i Zdroj: Nvidia

Co DLSS často zvládá lépe než nativní rendering, na to se podíváme hned v další kapitole.

Předchozí
Další
Reklama
Reklama

Sponzorovaný redakční článek

Autorem článku je redaktor našeho webu. Text reprezentuje názory autora, vychází z našich nezávislých testů a obsahuje výsledky našich měření. Mohl vzniknout díky finanční podpoře partnera. Děkujeme!

Komentáře naleznete na konci poslední kapitoly.

Reklama
Reklama