Már több megoldás is van
Az utóbbi évek egyik legdinamikusabban fejlődő irányának a felskálázási eljárások számítottak. Először a nem túl jó emlékeket idéző DLSS került terítékre, aminek később megjelent a sokkal jobban sikerült 2.0-s verziója, illetve ennek frissítései, majd az előző év nyarán az AMD is beszállt a FidelityFX Super Resolution 1.0-val (FSR). Mára elérhetővé vált az utóbbi konstrukció 2.0-s megvalósítása, ami működését tekintve a DLSS 2.0-hoz hasonlóan egy temporális eljárás.
Most úgy néz ki, hogy a jövőben leginkább ezek a rendszerek fognak terjedni, mivel az Intel saját XeSS alternatívája is temporális megoldásnak készül, így elmondható, hogy a DLSS 2.0-hoz és az FSR 2.0-hoz hasonló a működési elve. Ezek a temporális konstrukciók a számolt képkocka szín- és mélységadatait igénylik a mozgásvektorok mellett, továbbá a korábban elkészült felskálázott kép információit is beolvassák előzményminták formájában. A nyers elmélet szempontjából mindegyik alternatíva ugyanolyan futószalagot használ, és az adott grafikus motoron belül is ugyanoda kell őket beépíteni, ami azt a szakaszt jelenti, ahol a gyárilag használt temporális élsimítás dolgozik. Utóbbi fontos, mert az XeSS, a DLSS 2.0 és az FSR 2.0 is lecseréli az adott rendszer temporális élsimítását egy saját verzióra.
A fentiek alapján leszűrhető, hogy a temporális felskálázási konstrukciók akármelyik gyártótól is származnak, lényegében ugyanazon az elven működnek, viszont az egyes futószalaglépcsők az eredményeket más módon számolják ki. Ilyen szempontból az AMD a saját megoldását teljesen analitikai, míg az Intel és az NVIDIA gépi tanulásra építő eljárásként kategorizálja.
Ezen a ponton érdemes pár dolgot tisztába tenni, mert korábban többen is azt hangoztatták, hogy mesterséges intelligencia nélkül nem lehet jó felskálázást tervezni – viszont ez nagyon általános kijelentés, mert egy neuronhálót rengeteg dologra lehet használni. Amikor elvi szinten felmerül, hogy egy képből nagyobb felbontású verziót generálnánk, akkor alapvetően a problémára kereshetünk valamilyen matematikai modellt, vagy egy rakás adat alapján tréningeltethetünk egy neuronhálót a géppel, amikor is nyers erőből megkerestetjük a legjobbnak tűnő algoritmust.
Mindkét esetben fontos azonban szem előtt tartani, hogy milyen gyorsan szeretnénk eredményt, mert a megoldásunk számításigénye nem mindegy, ha valós idejű feldolgozásban gondolkodunk. Amikor tehát egy felskálázás akár percekig is futhat, akkor célszerű a legjobb minőséget megcélozni, és ezen a ponton a gépi tanulás valószínűleg verhetetlen is lesz, viszont ha egy-két ezredmásodperc alatt kell eredmény, akkor már nem olyan egyértelmű a helyzet. Világos, hogy a rendelkezésre álló idő annyira szűkös, hogy a minőség mellett kalkulálni kell az algoritmus számításigényével, és ebből a szempontból már erősen kérdéses a gépi tanulás általános haszna.
Hirdetés
Sajnos egyelőre az XeSS és a DLSS 2.0 pontos működése nem ismert, de a jelenlegi adatok szerint az aktuális képkocka rekonstrukciójával kapcsolatban ott nyúlnak a neuronhálóhoz, amikor eldöntik, hogy miképp kombinálják a korábbi képkockáról származó előzménymintákat az új képkocka felskálázásához. Ugyanakkor az aktuális képkockán látható alakzatok felismerése és kezelése szempontjából már analitikai megoldásokról van szó, vagyis hasonló elven működnek, mint az FSR 2.0.
Természetesen a valós idejű feldolgozás során a rendelkezésre álló időkeret jelentősen korlátozza a lehetőségeket, így nem meglepő, hogy a percekig futó, gépi tanulásra építő felskálázási eljárások sokkal többet tudnak, mint a valós idejű eredményt igénylő alternatívák. A kérdés innentől csupán az, hogy a korábbi képkockáról származó előzményminták felhasználása megoldható-e egy emberek által kidolgozott matematikai modell alapján. Az AMD szerint ennek abszolút van realitása, sőt, a vállalat úgy gondolja, hogy így előnyösebb is dolgozni, mivel a működés szabályozása szempontjából nagyobb szabadságot jelent egy kézzel és nem gép által kidolgozott algoritmus.
Tekintve a probléma jellegét és figyelembe véve azt, hogy valós idejű feldolgozásnál tényleg jelentős hátrány, hogy a munkavégzésnek bele kell férnie pár ezredmásodpercbe, nem biztos, hogy egy neuronháló alkalmazása működésbeli előnyt jelent. Pusztán abból a szempontból lehet hasznos, hogy hamarabb dolgozható ki egy gépi tanulásra építő algoritmus, mert a gép magát a problémát, vagyis egy kellően jó algoritmus megtalálását nyers erőből oldja meg, míg gépi tanulás nélkül ezt az algoritmust embereknek kell kidolgozniuk és optimalizálniuk, ami nyilván időigényesebb a fejlesztés szempontjából. Ezért sem az FSR 2.0 jelent meg elsőként.
Az FSR 1.0 gondja
Tisztázva azt, hogy a gépi tanulás csak egy eszköz a felskálázás felé, rá lehet térni arra a kérdésre, hogy az FSR 2.0 neuronháló nélkül is meg tudja-e oldani a előzményminták hatékony kezelését. Ehhez egyelőre a Deathloop című játék adja az eszközt, amelynek Game Update 3 nevű frissítése tartalmazza az FSR 1.0-s és 2.0-s, illetve a DLSS 2.0-ként ismert technika 2.3-as verzióját. Ráadásul az Arkane Studios mindegyik alternatívát a gyárilag ajánlott paraméterezéssel építette be, tehát effektíve az alapértelmezett működést láthatjuk.
Először is célszerű natív minőségben megnézni a kiválasztott jelenetet, amelynél aktiváltuk a játékba épített gyári temporális élsimítást, amelynek a minősége azért bőven hagy kívánnivalót maga után, de végeredményben ez a legjobb, amit natívan el lehet érni.
Deathloop TAA – 1080p, 1440p és 2160p [+]
A FidelityFX Super Resolution 1.0 kapcsán egy picit speciális körülményt teremtettünk. Mint ismeretes, ennek az eljárásnak szüksége van élsimításra, mert nem tartalmaz erre semmilyen megoldást. És ez az a tényező, amely alapvetően az FSR 1.0 képminőségét meghatározza. Természetesen vannak olyan játékok, amelyekben igen jó élsimítás található, és ezáltal az FSR 1.0 is jól működik, de ennek az ellentéte is igaz.
Deathloop FSR 1.0 Performance mód élsimítás és élesítés nélkül – 1080p, 1440p és 2160p [+]
Deathloop FSR 1.0 Performance mód élesítéssel élsimítás nélkül – 1080p, 1440p és 2160p [+]
Deathloop FSR 1.0 Balanced mód élsimítás és élesítés nélkül – 1080p, 1440p és 2160p [+]
Deathloop FSR 1.0 Balanced mód élesítéssel élsimítás nélkül – 1080p, 1440p és 2160p [+]
Deathloop FSR 1.0 Quality mód élsimítás és élesítés nélkül – 1080p, 1440p és 2160p [+]
Deathloop FSR 1.0 Quality mód élesítéssel élsimítás nélkül – 1080p, 1440p és 2160p [+]
Deathloop FSR 1.0 Ultra Quality mód élsimítás és élesítés nélkül – 1080p, 1440p és 2160p [+]
Deathloop FSR 1.0 Ultra Quality mód élesítéssel élsimítás nélkül – 1080p, 1440p és 2160p [+]
A Deathloop esetében szándékosan kikapcsoltunk minden ilyen beállítást, mivel meg akartuk mutatni azt a problémát, ami az FSR 1.0 nagy hibája: jól működő élsimítás nélkül nem igazán legénykedik a rendszer. Ilyenkor már a bemeneti adatok nem teszik lehetővé a jó minőségű felskálázást, és nyilván ez a Deathloop esetében valamennyire korrigálható a gyárilag implementált temporális élsimítás, illetve az FSR 1.0 párhuzamos aktiválásával, de nem minden játék tartalmaz ilyen lehetőséget. Sőt, az FSR 1.0 fő előnye, hogy nem is követeli meg a temporális élsimítást, elvan nélküle is, és ezért implementálták olyan címekbe, amelyek például DLSS 2.0-t sosem láttak, és soha nem is fognak a megfelelő grafikai futószalag hiányában. Persze az FSR 1.0 így is több a semminél, viszont egyértelműen kijelenthető, hogy aktív élsimítás nélkül jelentős hiányosságokkal küzd, ami rányomja a bélyegét a képminőségre.
Az FSR 2.0 megoldása
Az FSR 2.0 és a DLSS 2.0 már működésben is más, mint az előző oldalon elemzett felskálázás, ugyanis alapvetően alkalmaznak temporális élsimítást. Gyakorlatilag mindkét rendszer kicseréli a Deathloop saját megoldását, és ezt még kiegészítik a felskálázással. A két konstrukciót érdemes egy kicsit részletesebben szemügyre venni, de megjegyzendő, hogy a szóban forgó játék az FSR 2.0-ra alkalmaz külön szabályozható élesítőt is, ami viszont a DLSS 2.0 esetében kimaradt. Emiatt az előbbi eljárást megnéztük élesítés nélkül is.
Deathloop DLSS 2.0 Quality mód – 1080p, 1440p és 2160p [+]
Deathloop FSR 2.0 Quality mód élesítés nélkül – 1080p, 1440p és 2160p [+]
Deathloop FSR 2.0 Quality mód élesítéssel – 1080p, 1440p és 2160p [+]
Deathloop DLSS 2.0 Balanced mód – 1080p, 1440p és 2160p [+]
Deathloop FSR 2.0 Balanced mód élesítés nélkül – 1080p, 1440p és 2160p [+]
Deathloop FSR 2.0 Balanced mód élesítéssel – 1080p, 1440p és 2160p [+]
Quality és Balanced minőségi szinteken a különbségek egészen nüansznyiak. Mindegy, hogy milyen felbontást használunk, ha csinálnánk egy vaktesztet, akkor kizárt, hogy bárki felismerné, hogy melyik monitoron milyen módon lett számolva a kép. Persze, ha nagyon belenagyítunk a mentett képekbe, akkor vannak árulkodó részletek, amelyekre még visszatérünk, de játék közben ezek észrevehetetlenek. Maximális élesítés mellett ugyanakkor az FSR 2.0-nak látható előnye van, de ez nyilván magából az élesítőből ered, amelyhez hasonló beállítás elméletben a DLSS 2.0-hoz is implementálható lenne.
Deathloop DLSS 2.0 Performance mód – 1080p, 1440p és 2160p [+]
Deathloop FSR 2.0 Performance mód élesítés nélkül – 1080p, 1440p és 2160p [+]
Deathloop FSR 2.0 Performance mód élesítéssel – 1080p, 1440p és 2160p [+]
A Performance minőségi szinten már egy kicsit más a helyzet, mivel itt a DLSS 2.0 valamivel élesebb eredményt produkál, és helyzetet az FSR 2.0 csak élesítéssel képes menteni. Ugyanakkor általánosan kiemelnénk, hogy maga a Performance beállítás nem tűnik optimális választásnak se az FSR 2.0, se a DLSS 2.0 esetében. Egyszerűen a finom képrészletek már túlságosan romlanak a natív minőséghez képest, ami különösen mozgás közben zavaró, és emiatt minimum Balanced minőségi szintet javaslunk temporális felskálázás során, mert ilyenkor a végeredmény még nagyon meggyőző, és a sebességnövekedés is erőteljes a modernebb hardvereken.
Előnyök és hátrányok
Gyorstesztünk alapján azt helyből kijelenthetjük, hogy az FSR 2.0 alapvetően DLSS 2.0-hoz nagyon hasonló eredményt kínál. Vannak azonban az egyes eljárásokra jellemző tulajdonságok, amelyeket a tesztelés során észrevettünk. A szellemképes hatás tekintetében a DLSS 2.0 kicsivel rosszabb az FSR 2.0-nál, azonban az utóbbi meg nem ad olyan kedvező eredményt, ha közel függőleges és vízszintes éleket kell kisimítani. Érdekes módon azonban a 45 fokos szög környéki éleknél a DLSS 2.0 muzsikál rosszabbul, de a nagyon vékony alakzatokat valamivel jobban rekonstruálja, ha azok függőlegeshez közeli éleket eredményeznek.
Ebből azért látható, hogy különbség van, de ezeket pár centiméterre a monitortól, a képkockákat igencsak kinagyítva lehet csak észrevenni, és a mozgás elemzésénél is alaposan le kell lassítanunk a felvételt, hogy a DLSS 2.0 szellemképessége kivehető legyen az egyes fegyvereknél. Normál körülmények között, tényleges játék mellett ugyanakkor szinte kiszúrhatatlan eltérésekről beszélünk, tehát alapvetően nem zavartatnánk magunkat miattunk. Csak azért számoltunk be róluk, mert ezek az aprócska eltérések azért jelzik, hogy a két technológia valamelyest másképp dolgozik.
A teljesítményt vizsgálva elmondható, hogy egy DLSS 2.0-t futtatni képes, Ampere architektúrára épülő GeForce-on nagyjából hasonló előnyt jelent az FSR 2.0 és a DLSS 2.0 az egyes minőségi szinteken. Gyakorlatilag mindegy, hogy melyiket aktiváljuk, a különbség 1-4 képkocka/másodperc lesz.
Annyi látható, hogy ha valamilyen modern architektúrára épülő GPU-t használunk, gondolva itt az AMD RDNA vagy RDNA 2, illetve az NVIDIA Ampere dizájnokra, akkor az FSR 2.0 a natív 4K-s minőséghez képest nagyjából 35-45%-ot gyorsít a Quality, 65-75%-ot Balanced, illetve közel 90-95%-ot Performance módban. A régebbi architektúrát használó hardvereknél a tempóelőny mértéke korlátozottabb lehet, de mindenképpen lesz valamennyi extra teljesítmény.
Az AMD szerint, ha feltételezzük, hogy az adott beállításon nincs processzorlimit, akkor a gyorsulás mértéke két fő tényezőtől függ. A legfontosabb, hogy az algoritmust úgy tervezték meg, hogy nagyon jól gyorsítótárazható legyen. Fontos, hogy itt nem az Infinity Cache-re kell gondolni, hanem minden hardver előnyt tud kovácsolni a szoftveresen implementált optimalizálásból, mivel ez növeli a gyorsítótárakban a találat esélyét, de számít, hogy az adott GPU mennyire modern gyorsítótár-struktúrát használ. Ezen túlmenően a hardver által támogatott wave-méret is fontos. Magát a kódot 32 munkaelemet tartalmazó wave-ekre tervezték, de atomi operációk mellett jobb, ha 64 munkaelemet tartalmazó wave-vel fut, és erre van is beépítve egy optimalizálás. Ugyanakkor ennek az előnyeit csak az RDNA és RDNA 2 architektúra képes kihasználni, mert más dizájn még nem támogat egyszerre kétféle wave-méretet. Utóbbi nem akadályozza meg a programfuttatást, de az egyes kódrészletek nem optimális módon kerülnek majd végrehajtásra.
Végeredményben az FSR 2.0 elméletben minden olyan grafikus vezérlőn futtatható, amely támogatja a DirectX 12-t, illetve a meghajtóprogram képes lefordítani a shader modell 6.0-s kódot. A legmodernebb hardvereken persze a shader modell 6.6-os kódút kerül végrehajtásra, ami egyszerűen gyorsabb. Ettől függetlenül ez az eljárás tényleg széleskörűen alkalmazható, sok-sok éve vásárolt grafikus vezérlőkön is működik, és ezekbe életet lehelhet még akkor is, ha a felskálázással elérhető gyorsulás mértéke nem lesz olyan nagy, mint a modernebb architektúrák esetében.
Abu85, Wombath