Ces dernières années, l'intelligence artificielle est devenue de plus en plus populaire. Demandez et Siri vous dira le résultat du match de football que vous avez manqué la nuit dernière. Les recommandations de Spotify vous indiqueront ce qu'il faut ajouter à votre bibliothèque musicale et Amazon essaiera de prédire quel produit vous achèterez ensuite, même si vous ne le savez pas encore.
Il n'est pas non plus passé par l'industrie du jeu. Alors que l'environnement de jeu compare les graphiques publiés sur le PC Death Stranding avec et sans la technologie DLSS, l'autre jour, il est devenu connu que les processeurs NVIDIA Ampere utiliseraient déjà DLSS 3.0. Cependant, il fonctionnera avec n'importe quel jeu avec TAA (Temporal Anti-Aliasing) et le pilote Game Ready. Cela signifie que les développeurs devront affiner la technologie de leurs jeux - cependant, ce processus sera beaucoup plus facile qu'il ne l'est actuellement.
Dans cet article, nous verrons comment NVIDIA utilise l'apprentissage automatique pour améliorer notre expérience de jeu.
Qu'est-ce que DLSS?
La qualité des graphismes dans les jeux modernes ne fait qu'augmenter, et avec elle la complexité de calcul des opérations effectuées augmente. Nous devons cela au lancer de rayons, qui simule un éclairage réel en temps réel, laissant ainsi les reflets précuits une relique du passé. La complexité de calcul du lancer de rayons est due au fait que la résolution des jeux modernes dépasse le bon vieux 1080p. D'où la nécessité d'accélérer les calculs lors du rendu.
Le Deep Learning Super Sampling (DLSS) est une technologie NVIDIA qui utilise l'apprentissage automatique en profondeur pour améliorer les fréquences d'images dans les jeux à forte intensité graphique. Avec DLSS, les joueurs peuvent utiliser des paramètres et des résolutions plus élevés sans se soucier de la stabilité des images par seconde.
En particulier, DLSS remplit la tâche de super résolution. Avec lui, une image avec une résolution de, par exemple, 1080p peut être convertie en 4K avec une perte de qualité minimale. Cela supprime le besoin de jouer au jeu en 4K (et donc probablement de faire fondre votre PC). La résolution sera toujours de 1080p, ce qui permet des fréquences d'images plus élevées, mais avec la conversion ascendante DLSS, vous remarquerez à peine une différence par rapport à la 4K.
Architecture DLSS 2.0
Essentiellement, DLSS est un réseau neuronal formé sur les supercalculateurs NVIDIA. La sortie de ce réseau de neurones est comparée à une image de référence 16K, et l'erreur entre eux est renvoyée au réseau via une boucle de rétroaction. Pour éviter les problèmes de vitesse, DLSS utilise des cœurs Tensor, qui sont l'épine dorsale des processeurs RTX 2000 (et du futur RTX 3000). Cela peut considérablement accélérer les opérations de tenseur et améliorer l'efficacité de la formation en IA et des tâches liées au calcul haute performance.
Évolution DLSS: de 1.0 à 2.0
DLSS 1.0 a été formé pour chaque jeu séparément, et donc il a fallu un temps extrêmement long à étudier. Il ne prenait pas non plus en charge le suréchantillonnage 4x, par exemple de 1080p à 4K, et présentait un certain nombre d'autres imperfections de qualité d'image qui ne valaient pas l'amélioration de la fréquence d'images.
DLSS 2.0 est un algorithme plus général, dépourvu de restrictions d'entraînement et de suréchantillonnage, ainsi que d'une latence de sortie plus faible en raison de l'utilisation de cœurs de tenseur: il est de l'ordre de 1,5 ms à 4K sur le RTX 2080ti - et dans certains cas, il fournit un résultat encore meilleur que l'original image. Les images DLSS sont finales 1080p
Dans DLSS 1.0, vous pouvez maximiser 720p à 1080p, tandis que DLSS 2.0 peut passer à 1080p même à 540p. Comme vous pouvez le voir dans l'exemple, l'image à 540p semble complètement délavée. Dans le même temps, le résultat avec DLSS 2.0 s'est avéré meilleur qu'avec DLSS 1.0, et même légèrement meilleur que l'image d'origine. Autrement dit, DLSS 2.0 gère le remplissage des pixels plus efficacement que DLSS 1.0, même si ce dernier doit redimensionner une plus petite différence de résolution.
La capacité de DLSS 2.0 à mettre à l'échelle les images à 540p, combinée à la faible latence de la méthode elle-même, offre une amélioration significative des performances par rapport à son prédécesseur.
Temps de rendu avec et sans DLSS 2.0 (en ms)
En savoir plus sur le fonctionnement de DLSS
Lors du rendu de la géométrie de la scène dans les jeux (par exemple, dans un triangle), le nombre de pixels utilisés (ou la fréquence d'échantillonnage - masque de sous-pixels) détermine l'apparence de l'image.
Lorsque vous utilisez une grille d'échantillonnage 4x4 pour rendre le triangle, nous pouvons voir que le résultat laisse beaucoup à désirer.
En agrandissant la grille d'échantillonnage de 4 fois - jusqu'à 8x8 - l'image ressemble davantage au triangle prévu. C'est l'essence même du DLSS: convertir une image basse résolution en une image plus élevée.
L'essence du DLSS
Par conséquent, pour le même coût de rendu qu'une image de basse qualité, vous obtenez une image de résolution plus élevée.
Objectif de DLSS
Cela résout en fait le problème de super-résolution qui n'est pas nouveau.
Jetons un coup d'œil à l'évolution des techniques d'amélioration de la résolution assistée par l'IA.
Super-résolution d'image unique
Cette technique permet d'obtenir des images haute résolution à partir d'une image inférieure en utilisant des techniques d'interpolation telles que les filtres bilinéaire, bicubique et Lanczos. Vous pouvez également l'implémenter à l'aide de réseaux de neurones profonds, mais il y a alors un problème de distorsion des nouveaux pixels obtenus à partir des données d'apprentissage. Cela rend l'image crédible, mais pas trop similaire à l'original. La méthode produit une image trop lisse, non détaillée et instable dans le temps, ce qui entraîne une incohérence et un scintillement des images.
Super-résolution d'image unique
Comparons certains des résultats de ces techniques de super-résolution d'image unique avec ce qu'offre DLSS 2.0. Résolution cible - 1080p
De toute évidence, DLSS 2.0 est meilleur que l'interpolation bicubique et ESRGAN , une architecture de réseau neuronal qui utilise un réseau antagoniste génératif pour obtenir une super-résolution. En conséquence, les fougères dans le cas de DLSS 2.0 semblent encore plus détaillées que dans l'image d'origine.
Super-résolution multi-images
Cette méthode utilise plusieurs images basse résolution pour produire une image haute résolution. Cela aide à récupérer les détails mieux que l'approche précédente. Il a été principalement conçu pour la vidéo et la photographie en rafale et n'utilise donc pas d'informations spécifiques au rendu. Un exemple de son utilisation est l'alignement de trame utilisant un flux optique au lieu de vecteurs de mouvement géométriques. Dans ce cas, les calculs sont moins chers et les résultats sont plus précis. Cette approche semble plus prometteuse que la précédente et nous amène à la technique suivante.
Super échantillonnage spatio-temporel
Cette méthode utilise plusieurs cadres pour super-échantillonner des images.
Nous avons le cadre actuel. Disons que le précédent y ressemble. En utilisant un taux d'échantillonnage inférieur, nous pouvons augmenter le nombre total d'échantillons nécessaires pour reconstruire l'image.
Histogramme de super échantillonnage spatio-temporel
Le problème est que dans les jeux, tout est constamment en mouvement. Par conséquent, pour corriger l'historique des trames, cette méthode de suréchantillonnage est obligée de réaliser une recherche heuristique, par exemple, selon le principe de voisinage de serrage. Ces heuristiques contribuent au flou, à l'instabilité temporelle, au moiré, au décalage et aux images fantômes. Effets indésirables du serrage du voisin Scintillement et moirage temporaires des images avec le serrage du voisin
DLSS 2.0: Deep Learning-based multi-frame reconstruction
Le réseau de neurones DLSS apprend à partir de dizaines de milliers d'images d'entraînement conçues pour effectuer une meilleure reconstruction que ce que l'heuristique peut offrir, éliminant ainsi leurs effets. Cela conduit à un résultat bien meilleur en utilisant des données provenant de plusieurs cadres.
En implémentant DLSS dans le moteur, tout d'abord, il est nécessaire de rendre la scène en basse résolution: toute sa géométrie, l'éclairage dynamique, les effets dans l'espace écran et le lancer de rayons. Après cela, DLSS peut être appliqué au stade où l'anti-crénelage se produit généralement - après tout, la technologie remplit exactement la même fonction, uniquement avec un super-échantillonnage. Ensuite, le post-traitement de l'image a lieu, y compris le flou de mouvement, la floraison, l'aberration chromatique, le mappage des tons et d'autres effets.
DLSS n'est pas seulement un algorithme de traitement d'image. Il fonctionne généralement en conjonction avec le rendu, son processus doit donc également être revu. Cependant, dans le cas de DLSS 2.0, ces changements ne sont pas aussi difficiles à implémenter qu'auparavant.
Des tests de performance
Le dernier titre Remedy Control prend en charge à la fois le lancer de rayons et le DLSS. Comme vous pouvez le voir dans le graphique ci-dessus, le RTX 2060 a reçu une amélioration des performances de 8 ips à environ 36,8 ips via DLSS, ce qui a considérablement augmenté la jouabilité du projet. Ce résultat est encore meilleur que le RTX 2080ti sans DLSS, ce qui prouve encore plus l'efficacité de cette technologie.
Digital Foundry a comparé la qualité d'image en utilisant DLSS 1.9 et 2.0 dans cette vidéo.
Gauche - Contrôle avec DLSS 1.9, droite - avec DLSS 2.0. Images capturées sur un RTX 2060 à 1080p puis mises à l'échelle en 4K
Dans la comparaison ci-dessus, nous pouvons voir comment DLSS 2.0 rend les mèches de cheveux déformées dans le cas de DLSS 1.9.
Conclusion
DLSS n'est disponible que pour les GPU RTX 2000 et Turing (et les prochains GPU RTX 3000 basés sur Ampère) et ne prend en charge qu'une poignée de jeux pour le moment. DLSS 2.0 est pris en charge par encore moins de titres, mais le niveau de détail peut même dépasser l'image d'origine, tandis que la fréquence d'images reste élevée. C'est une réalisation vraiment cool pour NVIDIA, et la technologie a définitivement un avenir prometteur.