Intro : le DLSS, une techno à élucider
La nouvelle technologie NVIDIA DLSS (Deep Learning Super Sampling) apparaît comme l’une des plus prometteuses de la génération RTX, comme nous l’expliquions à l’issue de notre test des GeForce RTX 2080 et 2080 Ti. Mais c’est aussi la plus mystérieuse. Nous nous sommes penchés sur le sujet pour en savoir plus : en quoi consiste vraiment le DLSS ? Après des dizaines d’heures de tests et d’analyse d’images, nous pensons enfin avoir la réponse.
Le DLSS selon NVIDIA
Comme à son habitude, et c’est normal, NVIDIA reste très sommaire dans l’explication de ses technologies propriétaires. A première vue, dans notre premier dossier d’analyse de l’architecture Turing, NVIDIA présentait le DLSS comme une technique permettant de surpasser l’antialiasing en haute définition QHD et 4K, avec un meilleur résultat visuel et des performances en hausse de presque 50 % par rapport au TAA. C’est ce gain de performance qui nous a surtout interrogés, nous expliquerons en détail pourquoi. Notre premier test du DLSS avec les RTX 2080 et 2080 Ti tendait donc à comparer sa qualité d’antialiasing face au TAA. Mais nous allons plus loin dans ce dossier.
Par la suite, NVIDIA a plutôt présenté le DLSS comme une technique d’amélioration d’image permettant à la carte graphique de s’épargner le rendu de certains « samples » pour deviner les parties manquantes de l’image. Cette explication laissait donc imaginer que la carte graphique faisait un shading partiel lors du rendu, pour que l’IA du DLSS reproduise ensuite les pixels manquants. Une explication déjà plus intéressante, brièvement évoquée par le PDG de NVIDIA lors de la dernière GTC 2018 en Europe, mais pas encore assez claire.
Plongée au cœur du DLSS
Il est aussi possible que le DLSS soit une simple technique d’upscaling de l’image, un agrandissement perfectionné à grand coup d’IA. Surtout que ce domaine de traitement d’image est particulièrement avancé pour l’intelligence artificielle. Ce fut même l’un de ses premiers secteurs d’expérimentation (reconnaissance d’image, upscaling, etc.). Le DLSS pourrait aussi être un savant mélange de plusieurs techniques d’upscaling, d’antialiasing et de création de pixels manquants… Il nous fallait en savoir plus !
Nous avons considéré la technologie DLSS comme la plus prometteuse des GeForce RTX dans notre premier test des 2080 et 2080 Ti. Néanmoins, nous nous interrogeons sur la réalité de cette technologie, très peu expliquée par NVIDIA. En quoi consiste vraiment le DLSS ? Antialiasing, ou reconstruction d’image, upscaling, ou tout à la fois ? Nous avons souhaité en savoir plus pour mieux cerner ces nouvelles GeForce.
Premiers indices visuels
Le DLSS offre une qualité d’image parfois meilleure, parfois moins bonne que la version antialiasing TAA. Il faut tout de même réaffirmer que le résultat est globalement très bon, surtout à l’œil nu en pleine action : il est vraiment difficile de faire la différence entre un 4K DLSS et un 4K TAA, et pour certaines parties de l’image, le rendu est parfois meilleur. Nous avons aussi clairement constaté que le DLSS est plus efficace en 4K qu’en QHD, avec un rendu final clairement plus propre.
Cependant, quand on se penche sur certaines captures d’image, on peut déceler quelques premiers indices qui nous ont fait soupçonner un rendu en définition inférieure. Nous avons aussi pu modifier les fichiers de configuration des démos DLSS de Infiltrator et FF XV pour les faire tourner sans AA, ce qui nous a aidé dans nos analyses.
Toutes les captures font ici des comparaisons sur une image strictement identique (malgré quelques variations inévitables sur certains effets aléatoires et de lumière, jamais identiques). Les agrandissements sont effectués sans filtrage, pour conserver au mieux l’authenticité de l’image. Cliquez sur les images pour les voir en format PNG (sans perte et en taille d’origine).
Quand le DLSS fonctionne à merveille
Sur ce images, difficile de distinguer la moindre différence. Le DLSS fait un excellent boulot, et on peut même voir sur la végétation en arrière-plan que le DLSS offre un meilleur rendu, avec plus de piqué que le TAA, ce qui est assez remarquable. Globalement, la démo de FF XV est actuellement la plus efficace pour montrer les bienfaits du DLSS. La démo Infiltrator est toutefois moins flatteuse pour la techno de NVIDIA, même si son rendu DLSS est aussi très efficace à l’œil nu en plein action. Toutefois, dans certaines scènes, Infiltrator montre un DLSS parfois très efficace :
Ici quasiment proche de la perfection
Quand le DLSS montre ses limites
A force de zoomer sur des dizaines de captures d’écran pour tenter de vraiment connaître les capacités et les méthodes du DLSS, nous avons pu trouver quelques failles de rendu qui ont fait naître en nous un doute : les images en DLSS sont-elles vraiment rendues en 4K ou QHD en natif ?
Première image d’une nouvelle scène (zoomée sans filtre)
Première image aussi, en QHD, non zoomé (1:1)
Nous avons aussi remarqué que le DLSS trahit cette définition native de rendu sur la toute première image d’une nouvelle scène (voir ci-dessus). Comme vous pouvez le voir ci-dessous dans les captures prises 40 images après, le DLSS parvient à estomper le crènelage avec une très grande efficacité, surtout en 4K, le rendu final étant difficile à distinguer du rendu 4K TAA. Nous avons reproduit ce phénomène systématiquement dans toutes nos captures en 4K DLSS et QHD DLSS.
Le DLSS devient quasi parfait 40 images après la coupe de la nouvelle scène
Toutefois, cet aliasing est parfois visible en milieu de scène, et persiste tout au long d’un même « plan séquence ». Comme on peut le voir sur l’image ci-dessous (capturée en plein milieu d’une scène), l’aliasing du 4K DLSS correspond beaucoup plus au QHD qu’au 4K natif…
Il nous fallait en savoir plus sur la méthode de rendu de la carte graphique quand le DLSS est activé. Ce que nous sommes finalement parvenus à faire dans les pages suivantes.
Synthèse du DLSS en une capture
Cette scène résume bien les forces et les faiblesses du DLSS, et démontre encore un soupçon d’upscaling. En DLSS, l’arrière plan de la végétation est clairement d’une qualité excellente, plus détaillée et réaliste que sans AA ou avec TAA. En revanche, l’aliasing est plus prononcé sur les arrêtes de la voiture (l’image est pourtant en milieu de scène). Dernier indice : l’écriture en bas de la plaque d’immatriculation, qui révèle clairement un manque de définition par rapport aux captures en TAA et sans AA. Bref, le DLSS ne fait pas tout le temps des miracles.
Tests de performances
Le DLSS est plus rapide que l’antialiasing TAA, déjà très rapide. Après avoir réussi à faire tourner les démos DLSS sans antialiasing, nous avons décidé de mesurer toutes les performances dans différentes configurations possibles. Il faut dire que le DLSS est limité aux définitions QHD et 4K, et que les démos sont assez verrouillées, notamment en 4K pour la démos FF XV. Voici nos résultats :
Pas vraiment révélateurs
Le plus surprenant, c’est que le 4K DLSS est plus rapide que le 4K sans antialiasing. Voilà un détail qui ne trompe pas : il y a forcément un gain de performances qui se fait avant le post processing de l’image. Un gain de performance qui est forcément lié à la simplification d’un mode de rendu, ou tout simplement à une baisse de définition.
Toutefois, il n’y a pas de différence d’occupation VRAM entre 4K DLSS et 4K native, même sans antialiasing, ce qui nous a aussi laissés perplexes car les définitions ont un impact direct sur la quantité de mémoire vidéo utilisée. Les occupations processeurs et autre utilisation de mémoire vive centrale ne bougent pas non plus significativement. Il y a donc juste un gain d’images par seconde, à nous de savoir pourquoi.
Analyse des étapes de rendu
C’est là que nous avons décidé de sortir l’artillerie lourde : l’analyseur Nsight Graphics de NVIDIA. Un logiciel qui permet tout simplement de décomposer toutes les étapes de rendu d’une image, pour tout savoir sur sa genèse.
Rendu dans FF XV
Pour la démo FF XV, il y a donc environ 50 000 étapes de rendu, que nous avons résumé en quelques clichés majeurs. Mais il y a surtout une chose à retenir : en mode 4K DLSS, toutes ces étapes de rendu sont en effectuées en… QHD ! Seule l’avant dernière image passe tout d’un coup en 4K, juste avant l’application du menu en surimpression.
Autre chose à remarquer : lorsque le rendu est terminé en QHD, la carte graphique applique un antialiasing à l’image, juste avant de passer en 4K. Un antialiasing dont nous ignorons la nature, mais que nous soupçonnons être tout simplement du TAA pour deux raisons : cet AA est inefficace sur les premières images de nouvelles scènes (aspect temporel), et le DLSS ne semble compatible qu’avec les jeux (ou démos pour l’instant) qui gèrent le TAA d’origine.
Rendu dans Infiltrator
Le rendu de la démo Infiltrator semble légèrement plus complexe que celui de FF XV, car on peut monter cette fois à 100 000 étapes de rendu pour certaines images. Toujours est-il que le résultat est le même : toutes les étapes de rendu sont effectuées dans une définition inférieure, et l’image passe en définition finale tout à la fin du rendu.
Pour du 4K DLSS, c’est la même chose, l’image est rendue en QHD à la base. Pour du QHD DLSS, le résultat est encore plus intéressant, puisque l’image est rendue dans une définition inférieure au Full HD : 1708 x 960 pixels, soit exactement 2/3 de la définition finale QHD en DLSS.
D’après ces résultats, il est désormais clair que le DLSS consiste à rendre l’image dans une définition inférieure à celle annoncée au final. Le 4K DLSS est un rendu en QHD (2560 x 1440 pixels) upscalé en 4K (3840 x 2160 pixels). Et le QHD DLSS est rendu à partir d’une définition de base en 1708 x 960 pixels. Le rapport est toujours de 150 % entre la définition de base et la définition finale.
Star Wars Reflections, un cas spécial
La démo Star Wars Reflections est un cas plus complexe, car elle combine DLSS et ray tracing RTX en temps réel. Nous avons passé des heures à scruter des captures pour les comparer, sans conclusion possible. Seule une remarque nous saute aux yeux : les effets de reflet ne sont jamais vraiment identiques entre les différents modes de rendu. Certains reflets sur les arrêtes du casque du personnage central s’affichent plus ou moins précisément, et sont parfois presque invisibles. La capture ci-dessus figure donc ici à titre indicatif, car elle ne nous en apprend pas vraiment plus, à part que le QHD DLSS est beaucoup moins propre que le 4K DLSS. Notez que la définition QHD sans DLSS (tout à gauche) est le résultat d’un bug de la démo (non reproductible), rendu en 4K final… sans autre possibilité d’en savoir plus.
Etapes de rendu
L’analyse des étapes de rendu nous en apprend beaucoup plus : le QHD DLSS est bien rendu à la base en 1708 x 964 pixels, exactement comme dans la démo Infiltrator (à 4 pixels près de hauteur, 728 pixels sans les bandes noires). En 4K, impossible de faire tourner l’outil de NVIDIA de manière stable, nous n’avons donc pas plus d’information sur le sujet, mais nous pensons qu’il s’agit encore d’un rendu en QHD d’origine.
Autre cas spécial, nous avons ici remarqué un nouveau détail, absent des démos précédentes : le DLAA. On imagine qu’il s’agit d’un antialiasing. Il est appliqué sur l’image en définition de base, juste avant l’upscaling. Final Fantasy applique aussi un filtre AA avant l’upscaling, mais on ne peut pas confirmer qu’il s’agisse du même type d’antialiasing. Dans cette démo Reflections, le DLAA évoquerait-il un antialiasing par Deep Learning préparant l’image avant son upscaling ? Mise à jour : DLAA veut aussi dire Directionally Localized Anti Aliasing, ce qui est plus plausible à nos yeux finalement (qui semble aussi de type temporel).
Bonus : l’étape de ray tracing
Dans les étapes de rendu, nous avons isolé des étapes de ray tracing. Deux images appliquent un ray tracing sur deux angles différents, une troisième image semble débruiter le résultat en fonction des deux angles calculés. Remarquons d’ailleurs que le ray tracing est aussi calculé avant upscaling. Mais c’est hors sujet, nous y reviendrons par la suite !
Ray Tracing Etape 1Ray Tracing Etape 2Ray Tracing Etape 3
Conclusion : upscaling IA à 150 %
Première chose à remarquer, nous avons tenté de comprendre le DLSS avec nos propres moyens, et nos constatations ne sont pas des plus précises. Seule chose certaine : le DLSS se fait à partir d’un rendu dans une définition inférieure, ensuite upscalée à 150 % pour atteindre la définition finale. Côté qualité, le DLSS en 4K est nettement plus propre que le DLSS en QHD.
Le contenu même de cette technique d’upscaling DLSS reste encore mystérieux. Il existe de très nombreux travaux visant à agrandir une image de manière très propre grâce à l’intelligence artificielle par Deep Learning. Ce domaine est très avancé car c’est l’une des toutes premières applications de l’intelligence artificielle à l’heure actuelle. Nous ne pouvons toutefois pas nous empêcher de penser que cet upscaling est très proche de ce que NVIDIA proposera dans Ansel RTX, avec le Ansel AI UP-RES, qui permet de passer d’une image Full HD à une image en 8K avec la meilleure qualité possible. Nous pensons que la même méthode par inférence IA est appliquée en temps réel pour le DLSS. Notez aussi l’application d’un filtre AA (TAA, DLAA ?) juste avant l’upscaling.
Reste que le DLSS n’avait pas vraiment été décrit de cette manière à l’origine par NVIDIA, et que l’explosion des performances a désormais une cause claire : un rendu quasi complet en définition inférieure (et pas seulement sur la partie shading du rendu).
Toujours prometteur
Néanmoins, le DLSS reste pour nous une technologie très intéressante pour plusieurs raisons. Tout d’abord, car elle affiche globalement une qualité d’image excellente à l’œil nu, difficile de faire la différence en pleine action. Ensuite parce qu’elle ne peut que s’améliorer au fur et à mesure que le Deep Learning progresse en amont sur les serveurs de NVIDIA. Enfin car elle pourrait même être poussée dans le secteur de l’entrée de gamme, pour voir des GPU à faible puissance rendre des jeux complexes en Full HD de manière fluide, à partir d’un rendu en 720p (le Full HD étant pile à 150 % du 720p). En attendant d’en savoir plus… vous en savez déjà pas mal !
Excellent article.
Merci pour cette analyse poussée !