FidelityFX Super Resolution (FSR) : utilisez la solution d'AMD pour améliorer n'importe quelle image

FidelityFX Super Resolution (FSR) : utilisez la solution d’AMD pour améliorer n’importe quelle image

Upscale everything

Avatar de l'auteur
David Legrand

Publié dans

Hardware

12/08/2021 10 minutes
29

FidelityFX Super Resolution (FSR) : utilisez la solution d'AMD pour améliorer n'importe quelle image

Avec son FidelityFX Super Resolution (FSR), AMD a introduit une solution simple et efficace pour améliorer la définition d'une image dans le domaine des jeux vidéo. Elle est bien moins élégante que le DLSS de NVIDIA, mais a l'avantage d'être plus ouverte. On peut d'ailleurs la détourner à notre intérêt.

Cela fait maintenant trois ans que NVIDIA a mis sur le marché ses GeForce RTX de série 20 (Turing), premières à intégrer des RT et Tensor Cores au sein de l'offre grand public, ouvrant la voie au ray tracing et au Deep Learning Super Sampling (DLSS). Une solution qui vise à effectuer un rendu dans les jeux dans une définition plus basse que celle demandée, puis à l'agrandir en cherchant à limiter au maximum la perte de qualité.

DLSS : une petite révolution pour les jeux vidéo

La société a opté pour une approche peu conventionnelle pour l'époque : utiliser un modèle issu de l'entrainement d'un réseau de neurones. Son but est ainsi de remplir le vide issu de l'agrandissement en recréant tous les détails manquants. Un travail de « retouche photo » pour lequel les IA sont de plus en plus utilisées, mais devant cette fois être réalisé à très grande vitesse, puisque cela doit réduire le temps de rendu (16,7 ms pour 60 ips), pas l'augmenter.

Assez peu efficace dans sa première version, DLSS était bien plus convaincant dans sa seconde itération que l'on trouve désormais dans un nombre croissant de jeux, avec une intégration native à des moteurs comme Unity ou l'Unreal Engine. Il fallait donc qu'AMD réagisse. Depuis 2018, la société promettait régulièrement de proposer une solution équivalente. Nommée Fidelity FX Super Resolution (FSR), elle est désormais exploitable

AMD FidelityFX Super Resolution FSRAMD FidelityFX Super Resolution FSR

FSR : ce n'est pas DLSS, mais ça peut être utile

Il s'agit d'une solution open source, qui n'utilise pas du tout l'intelligence artificielle (les CPU et GPU grand public d'AMD ne proposant aucun accélérateur pour ces usages). Mais plutôt un algorithme d'augmentation de la définition à l'ancienne, présenté comme plus efficace que les solutions actuelles, accompagné d'un filtre de netteté. 

Une solution moins convaincante, donc, que celle de NVIDIA, mais bien plus ouverte. Au point que l'on peut l'utiliser pour augmenter la définition de n'importe quelle image, que ce soit avec un GPU AMD, NVIDIA ou même une machine équipée d'un vieux processeur Intel. On vous explique comment faire.

Commençons cet article par un aveu. Il est né de notre volonté de publier un dossier sur l'amélioration des images, notamment de leur définition. De nombreuses solutions sont désormais disponibles sur le marché, certaines profitant d'accélération matérielle. Il était donc temps de faire le point sur le sujet et sur ce que chacune apporte.

Au gré de nos recherches, nous avons découvert qu'il était possible d'utiliser FSR de manière simple pour augmenter la définition et la netteté d'une image, sans nécessiter d'application payante ou de matériel spécifique. Nous avons donc décidé d'ouvrir notre dossier par cette possibilité.

Elle sera également l'occasion d'évoquer comment nous avons développé une interface graphique (GUI) pour exploiter FSR pour l'amélioration d'image encore plus simplement sous Windows. C'était un peu notre « summer project » à nous, qui nous a occupé une partie de ces dernières semaines.

FSR, simple comme un Compute Shader

Commençons par répondre à une question : qu'est-ce que le Fidelity FX Super Resolution en réalité ? Comme le précise sa documentation technique, il s'agit d'une solution pensée pour être intégrée simplement, sans dépendance particulière, via un Compute Shader, un petit programme appliqué pendant le rendu graphique.

AMD FSR TechniqueAMD FSR Technique

C'est ce qui explique que l'on voit déjà naître plusieurs projets pour intégrer FSR même à des jeux qui n'en profitent pas nativement. Le nombre de titres supportés devrait néanmoins rapidement s'étendre puisque, comme pour DLSS, une intégration à Unity 2021.2 HDRP ou l'Unreal Engine via un patch sont disponibles.

Il faut d'ailleurs savoir que Timothy Paul Lottes, qui travaille au sein de l'Unity Graphics Innovation Group, était auparavant chez AMD où il a créé la version 1.0 de FSR. Il est aussi connu pour son travail sur le FXAA et le TXAA chez NVIDIA il y a une dizaine d'années (entre autres). Il vient d'ailleurs de publier avec Kleber Garcia (également chez Unity, ex-EA) une présentation technique sur l'implémentation de FSR à l'occasion du SIGGRAPH 2021.

Outre sa simplicité d'implémentation, FSR se veut aussi très largement compatible, adapté aux consoles disposant d'un SoC AMD comme les Xbox et PlayStation, de la dernière génération ou de la précédente. En réalité, nous avons pu l'utiliser sur un vieux processeur Intel Core de 6e génération (mais avec de moins bonnes performances).

  • AMD FSR Technique
  • AMD FSR Technique
  • AMD FSR Technique
  • AMD FSR Technique
  • AMD FSR Technique
  • AMD FSR Technique

Il peut être exécuté avec des calculs en double précision (FP32) ou simple précision (FP16), le premier étant recommandé pour les architectures antérieures à Vega chez AMD, qui ne supportent pas très bien le groupement de calculs en FP16 et ont alors de moins bonnes performances.

Ainsi, une image doit pouvoir être calculée en 1440p entre 0,2 et 0,5 ms sur une carte graphique plus ou moins puissante, le double pour de la 4K. AMD définit plusieurs niveaux de qualité, selon le facteur d'augmentation de la définition qui va de 1,3x par côté (Ultra Quality) à 2x par côté (Performance). Comme nous le verrons plus loin, ces modes n'existent en réalité pas dans FSR, qui nécessite une image en entrée et une définition de sortie.

FSR = EASU + RCAS

Comme nous l'avons évoqué précédemment, FSR est une solution en deux passes. La première consiste à augmenter la définition de l'image via l'algorithme EASU : Edge Adaptative Spatial Upsampling. Un nom complexe qui consiste à dire, en très simplifié, que l'on va agrandir l'image dans son ensemble (spatial), de manière variable au sein de celle-ci (adaptive), avec une analyse au niveau des points saillants (edge).

AMD FSR TechniqueAMD FSR Technique

L'idée est de proposer une solution qui offre un meilleur résultat que la montée en définition basique proposée par les écrans, tout en gardant un impact assez faible sur les performances. Elle utilise donc un filtre de Lanczos, courant dans la reconstruction d'image mais gourmand en puissance de calcul, notamment parce qu'il utilise le sinus cardinal (sinc). EASU introduit donc une approximation polynomiale pour en améliorer les performances.

AMD précise que FSR n'est pas pensé pour remplacer un dispositif d'Anti-Aliasing (AA), contrairement à DLSS, ajoutant qu'il est préférable qu'une telle passe ait été effectuée avant d'appliquer EASU. Cela vient notamment du fait que celui-ci va ajouter une dose de flou, il serait contre-productif d'effectuer l'AA ensuite.

C'est pour contre-balancer l'ajout de ce « flou » que la seconde passe de FSR est nécessaire : RCAS (Robust Contrast Adaptative Sharpening). Une version améliorée du CAS précédemment proposé par AMD (et conçu par Timothy Lottes), qui est grosso modo un filtre d'amélioration de la netteté de l'image.

La société prévient d'ailleurs les développeurs : ils ne doivent pas proposer EASU et RCAS séparémment. Dans leur interface, ils doivent bien ne proposer qu'une fonctionnalité FSR activant automatiquement l'anti-aliasing :

AMD FSR TechniqueAMD FSR Technique

Utilisez FSR sur n'importe quelle image

À la mise en ligne du code source de FSR, AMD a également publié un nouvel outil : FidelityFX CLI. Ce dernier intègre les shaders de CAS, RCAS et EASU, permettant de les appliquer à n'importe quelle image ou photo. On peut ainsi effectuer des essais avec ces différentes solutions. Les formats BMP, PNG, ICO, JPG, TIF et GIF sont gérés.

Transformons par exemple une image nommée 1080p.jpg en 4K. jpg :

FidelityFX_CLI.exe -Mode EASU -Scale 3840 2160 1080p.jpg 4K.jpg

Le mode FP16 (format de textures R16G16B16A16_FLOAT) n'est pas appliqué par défaut (format de textures R8G8B8A8_UNORM). Vous pouvez l'activer si vous le désirez en ajoutant un paramètre : 

FidelityFX_CLI.exe -Mode EASU -Scale 3840 2160 -FP16 1080p.jpg 4K.jpg

Autre possibilité, utiliser l'espace de couleurs linéaire plutôt que sRGB, là aussi à n'activer que si nécessaire. Notez que cela ne fonctionnera que si le paramètre FP16 n'est pas utilisé :

FidelityFX_CLI.exe -Mode EASU -Scale 3840 2160 -Linear 1080p.jpg 4K.jpg

La passe RCAS a un fonctionnement peu classique, puisqu'il faut indiquer une valeur pour ce filtre de netteté. Mais 0.0 est la valeur maximale, puisqu'elle désigne un niveau de réduction. Plus il sera élevé moins le filtre sera appliqué. AMD recommande une valeur de 0.2 et précise qu'à partir de 2.0, la différence n'est plus perceptible :

FidelityFX_CLI.exe -Mode RCAS -Sharpness 0.0 4K.jpg 4K_RCAS.jpg // Image avec le plus grand niveau de netteté
FidelityFX_CLI.exe -Mode RCAS -Sharpness 0.5 4K.jpg 4K_RCAS.jpg // Image avec un niveau de netteté réduit

À titre de comparaison, vous pouvez augmenter la définition de l'image via des méthodes natives à Windows :

FidelityFX_CLI.exe -Mode NearestNeighbor -Scale 3840 2160 1080p.jpg 4K_NN.jpg
FidelityFX_CLI.exe -Mode Linear -Scale 3840 2160 1080p.jpg 4K_Linear.jpg
FidelityFX_CLI.exe -Mode Cubic -Scale 3840 2160 1080p.jpg 4K_Cubic.jpg
FidelityFX_CLI.exe -Mode HighQualityCubic -Scale 3840 2160 1080p.jpg 4K_HQC.jpg
FidelityFX_CLI.exe -Mode Fant -Scale 3840 2160 1080p.jpg 4K_Fant.jpg

Vous pouvez aussi opter pour la solution précédente d'AMD avec le filtre de netteté CAS en une seule passe. Attention, cette fois le niveau de netteté doit être indiqué entre 0.0 (le plus faible, par défaut) et 1.0 (le plus fort) :

FidelityFX_CLI.exe -Mode CAS -Scale 3840 2160 -Sharpness 1.0 1080p.jpg 4K_CAS.jpg // Image avec le plus grand niveau de netteté
FidelityFX_CLI.exe -Mode CAS -Scale 3840 2160 -Sharpness 0.5 1080p.jpg 4K_CAS.jpg // Image avec un niveau de netteté réduit

Amélioration d'une photo : comment s'en tire FSR ?

Et dans la pratique, quel résultat obtient-on ? Pour le savoir, nous avons utilisé une des images de référence de Gigapixel AI qui représente un perroquet, d'une définition de 640 x 411 pixels. Nous l'avons doublée, via GIMP en utilisant les paramètres par défaut de l'outil, puis avec le mode EASU de FSR :

Upscaling GIMPUpscaling EASU
Image originale - x2 via GIMP (à gauche) - x2 via EASU (à droite)

Ici, on voit clairement que l'image de droite (EASU) est plus nette que celle de gauche, même avant l'application de RCAS pour ajouter de la netteté. Effectuons maintenant cette seconde passe avec RCAS (0.2) et comparons avec CAS (0.8) :

Upscaling EASU + RCASUpscaling CAS
EASU + RCAS 0.2 (à gauche) - CAS 0.8 (à droite)

Cette fois encore on voit bien le gain de netteté apporté par RCAS en complément d'EASU (à gauche), avec une meilleure fidélité à l'originale que CAS (à droite). Avec ce dernier, les ombres sous le plumage sont en effet trop nettement accentuées. Dans les deux cas, on note que cette passe de netteté ajoute du bruit à l'image.

Autre point à noter : la taille des fichiers, qui varie beaucoup selon les cas : 

  • Original (640x822 px) : 47 ko
  • Upscaling GIMP : 156 ko
  • EASU : 121 ko
  • EASU + RCAS : 137 ko
  • CAS : 139 ko

Écrit par David Legrand

Tiens, en parlant de ça :

Sommaire de l'article

Introduction

DLSS : une petite révolution pour les jeux vidéo

FSR : ce n'est pas DLSS, mais ça peut être utile

FSR, simple comme un Compute Shader

FSR = EASU + RCAS

Utilisez FSR sur n'importe quelle image

Amélioration d'une photo : comment s'en tire FSR ?

next n'a pas de brief le week-end

Le Brief ne travaille pas le week-end.
C'est dur, mais c'est comme ça.
Allez donc dans une forêt lointaine,
Éloignez-vous de ce clavier pour une fois !

Fermer

Commentaires (29)



Ici, on voit clairement que l’image de droite (EASU) est plus nette que celle de gauche, même avant l’application de RCAS pour ajouter de la netteté.




Je dois être aveugle, mais je ne trouve pas que ce soit flagrant.



Après je vois que l’image est censé être d’une définition de 640 x 411 pixels mais la miniature et l’agrandi font toutes deux moins de 1280*822px (= nous avons doublé).



(l’article est intéressant en revanche, même si j’attends sa version DLSS / Image neurale bidule truc muche car au vu de la vidéo de nvidia du SIGGRAPH j’ai l’impression que ça sera nettement plus efficace).


Relis plus attentivement ;) Pour les difference, ouvre les images dans un onglet et si tu ne vois pas les écarts, c’est que tu es bon pour des lunettes :transpi:



Toute l’idée de FSR étant de dire « on ne va pas produire une image équivalente ou meilleure à la DLSS, mais l’approximation sera suffisamment faible pour ne pas créer de drama chez les joueurs à 60 ips »



D’ailleurs c’est assez captivant pour un journaliste de voir la perception de ces fonctionnalités chez les joueurs/lecteurs, quand on pense qu’il y a une dizaine d’années, la moindre optimisation graphique destructrice pour gratter des performances pouvait créer un scandale mondial :D


petite question David, sans vouloir troller hein, c’est une vraie question, mais pourquoi est-ce que le FSR est “moins élégant” et en quoi est-ce “Une solution moins convaincante” ?



l’élégance technique d’un réseau de neurone par rapport à un shader m’échappe (pourquoi pas hein, c’est juste que ça me saute pas aux yeux), mais c’est peut-être autre chose que j’aurai raté.



j’ai pas forcément examiné à la loupe tous les comparatifs DLSS/FSR, mais j’avais cru comprendre que ça se valait à quelques pouillèmes à réglage équivalent.



autre question mais d’un point de vue pratique cette fois, à priori on a des exemples de frame sans DLSS / avec DLSS suivant les réglages (à minima dans les documents fournis par Nvidia), est-ce qu’utiliser le script sur l’image sans DLSS pourrait permettre de comparer le résultat obtenu par les scripts (j’entend bien qu’il manquerai le temps de rendu, mais ça serait pour pouvoir comparer la qualité de la mise à l’échelle)



sinon sympa comme idée, j’aime ce genre d’article “bidouille” :p



perso, depuis que j’ai compris que le DLSS et le FSR n’était que des astuces pour augmenter la résolution et alléger le boulot de la CG, ça me fais pas envie, je reconnais le coté astucieux pour gagner des fps, c’est toujours mieux que de jouer en “ultra de la mort qui tue” en 640*480 sur un écran 4k en le laissant se débrouiller pour la mise à l’échelle, mais ça me chagrine un peu quand même.



dans le même style que le mp3 320 vs flac, alors que je suis probablement incapable de déceler la moindre différence à l’écoute.


Ce me donne envie de le passer sur quelques DVD… (genre Abyss, DVD commercial vendu avec les bandes noires du 43 et les bandes noires du 169 en même temps)


De tous mes jeux, seul RE8 est compatible avec le FSR, mais je fais déjà du ultra 120fps en 1080p donc ça m’est inutile, augmenter artificiellement la définition ne m’améliore en rien l’image, j’utilise l’accentuation de la netteté dans les paramètres Radeon pour tous mes jeux et ça me suffit pour avoir une image plus net. J’essayerai le FSR sur d’autres jeux si j’en ai la possibilité. Merci pour l’article.


La remarque sur les “strong edges” m’interpelle. Les codec vidéos type H265 font du sous-découpage pour conserver les détails: hors les versions des films diffusés par amazon prime sont souvent moches sur les effets spéciaux, quand la version Bluray ne me semble pas les souligner autant.
J’ai supposé que cela était lié au contour de ce qui est filmé et ce qui est ajouté, notamment à cause de légère différences dans l’éclairage ou de légers problèmes dans les reflets (par exemple sur les épaules des gens)
-> j’aimerais bien voir ce que ce FSR ferait sur un film comme les Harry Potter ou Black Panther qui font souvent “carton pâte” en version 4K.


Merci pour ce papier, c’est une sacrée idée que ce dossier !
Ce que je retiens principalement, c’est qu’une image retravaillée via EASU + RCAS est plus légère et plus nette qu’une image retravaillée via GIMP, et c’est quand même une belle évolution.
J’ai vraiment l’impression que, de tout temps en informatique, beaucoup de grosses évolutions sont directement liées aux améliorations des algos de compression.



fry a dit:




Je te rejoins dans tout ceque tu viens de dire fry!!



fry a dit:


petite question David, sans vouloir troller hein, c’est une vraie question, mais pourquoi est-ce que le FSR est “moins élégant” et en quoi est-ce “Une solution moins convaincante” ?




Comme expliqué, FSR c’est de l’upscaling performant mais à l’ancienne. ça agrandit l’image, ça applique un algo pour remplir les trous qui ne peut pas faire de miracle, résultat on a du flou et du bruit au final (parce que le filtre de netteté). FSR est plutôt bon dans son genre, mais ça s’arrête là.



Les solutions type DLSS (mais tout ce qui touche à la reconstruction d’image par l’IA), c’est différent puisque les modèles sont entrainés à reconstituer une image originale depuis une version dégradée (ici une image en basse définition). Cela laisse une part d’aléatoire (le modèle peut “inventer” des détails), mais in fine tu peux avoir une image plus nette que celle qui aurait été calculée en définition native (voir le cas de DLSS dans certains jeux où c’est le cas).



Et avec certains outils, qui peuvent se permettre d’avoir plus de quelques milisecondes pour effectuer leur calcul :D, tu as des résultats assez impressionnant même sur de l’upscaling 6x/8x.




j’ai pas forcément examiné à la loupe tous les comparatifs DLSS/FSR, mais j’avais cru comprendre que ça se valait à quelques pouillèmes à réglage équivalent.




Tu as mal compris (et il n’y a pas de “réglage équivalent” ça n’a rien à voir)




autre question mais d’un point de vue pratique cette fois, à priori on a des exemples de frame sans DLSS / avec DLSS suivant les réglages (à minima dans les documents fournis par Nvidia), est-ce qu’utiliser le script sur l’image sans DLSS pourrait permettre de comparer le résultat obtenu par les scripts (j’entend bien qu’il manquerai le temps de rendu, mais ça serait pour pouvoir comparer la qualité de la mise à l’échelle)




Tu peux mais ça n’a pas trop de sens. L’important dans les jeux c’est l’implémentation pratique, qui peut changer (voir les conseils d’AMD qui peuvent être bien ou mal appliqués par les développeurs). Surtout que DLSS fonctionne dans un flux de rendu (il utilise tout un tas de données qui alimentent le modèle pas que l’image brute de départ pour effectuer son rendu final) et ne peut donc pas être comparé à des solutions d’upscaling de photos/image (et ne peut d’ailleurs pas être utilisé pour ça en l’état).



Mais comme dit dans l’article, il y a déjà plusieurs solution d’upscale reposant sur l’IA dans le domaine de la photo, et là il y a matière à comparer à ce que fait FSR en qualité et en perf.




sinon sympa comme idée, j’aime ce genre d’article “bidouille” :p




Faut bien que quelqu’un se colle à ce genre de bêtises :D




perso, depuis que j’ai compris que le DLSS et le FSR n’était que des astuces pour augmenter la résolution et alléger le boulot de la CG, ça me fais pas envie, je reconnais le coté astucieux pour gagner des fps, c’est toujours mieux que de jouer en “ultra de la mort qui tue” en 640*480 sur un écran 4k en le laissant se débrouiller pour la mise à l’échelle, mais ça me chagrine un peu quand même.




Comme je le dis souvent, il ne faut pas oublier un point essentiel de ces technos qui sont le plus souvent analysées que par le petit bout de la lorgnette des benchmarks : passer de 120 à 160 ips à qualité équivalente via FSR/DLSS, ça utilise certe une “astuce”, mais ça permet aussi d’avoir assez de marge pour passer éventuellement au niveau de qualité graphique supérieur. Et là, le gain visuel peut être bien plus intéressant que l’éventuelle perte de détails qu’on verra sur une capture analysée en zoom x10.




dans le même style que le mp3 320 vs flac, alors que je suis probablement incapable de déceler la moindre différence à l’écoute.




Comparaison n’est pas raison :D (mais on en revient aussi à un avantage indirect lié à la solution destructrice mise en place : on peut stocker en MP3 une quantité impressionnante de chansons, impossible à stocker en FLAC sans des moyens professionnels. C’est comme toujours : une balance et des choix à faire.




(quote:59266:brice.wernet)
Ce me donne envie de le passer sur quelques DVD… (genre Abyss, DVD commercial vendu avec les bandes noires du 43 et les bandes noires du 169 en même temps)




Oui il y a sans doute possibilité de faire un traitement image par image et obtenir un upscale comme ça. Par contre il serait sans doute plus intéressant de regarder du côté des solutions IA (qui ont des versions vidéo, notamment chez Gigapixel) qui peuvent donner des résultats sympas pour de la “mise à jour” d’archives.




Vaark a dit:


Merci pour ce papier, c’est une sacrée idée que ce dossier ! Ce que je retiens principalement, c’est qu’une image retravaillée via EASU + RCAS est plus légère et plus nette qu’une image retravaillée via GIMP, et c’est quand même une belle évolution.




Oui ce serait même intéressant de voir FSR intégré comme filtre GIMP par exemple ou en shader via VLC (j’ai déjà soumis l’idée à JBK :D)




J’ai vraiment l’impression que, de tout temps en informatique, beaucoup de grosses évolutions sont directement liées aux améliorations des algos de compression.




Au final, l’informatique, c’est toujours des maths :D


Super intéressant ! hâte de voir la suite du dossier :incline:



David_L a dit:


Et avec certains outils, qui peuvent se permettre d’avoir plus de quelques milisecondes pour effectuer leur calcul :D, tu as des résultats assez impressionnant même sur de l’upscaling 6x/8x.




Je suis très intéressé :)



Article sympa, je me demande juste si ce ne serait pas intéressant d’avoir une image originale en 4k pour comparer.


Oui, cette époque, que j’espère révolue, où les constructeurs dégradaient volontairement les graphismes de certains jeux, mais sans prévenir les joueurs, pour tricher sur les FPS dans les benchs. Le DLSS et le FSR ont au moins l’avantage d’être potentiellement amenés sous forme d’options dans les jeux. C’est cohérent avec les nouveaux modes “60 fps” sur les consoles de la génération actuelle et c’est plutôt chouette.


En relisant comment ça marche, je me dis qu’on peut l’intégrer directement dans l’écran en fait :)
Les maths impliqués n’ont pas l’air de dépasser ce que peut faire un petit copro pour l’IA…


Sur un outil comme celui-ci ce n’est pas nécessaire, on voit clairement les dégradations suite à l’upscale. Par contre sur d’autres outils oui il faut avoir une image native en 1080p/4K et regarder les différences par rapport à des images calculées pour mieux se rendre compte des éventuels écarts




(quote:59278:brice.wernet)
En relisant comment ça marche, je me dis qu’on peut l’intégrer directement dans l’écran en fait :) Les maths impliqués n’ont pas l’air de dépasser ce que peut faire un petit copro pour l’IA…




Oui et non, dans les JV par exemple (et le graphique de la doc AMD le montre bien), les technos type DLSS/FSR sont appliquées avant certains effets et la mise en place d’élements d’interface pour éviter que ça ne pose problème. Mais dans la vidéo oui ça peut être appliqué plus automatiquement, c’est d’ailleurs que ce que fait NVIDIA avec ses dernières SHIELD TV qui ont un upscale IA intégré, certaines TV haut de gamme ont aussi de tels dispositifs plus ou moins efficaces gérés par le SoC.



Oui désormais c’est assumé et présenté comme tel (même si les débuts de DLSS n’étaient pas très clairs sur la façon dont tout ça fonctionnait). Mais c’est comme à l’époque du limiteur de tesselation actif dans les pilotes AMD : on réduit des détails pour améliorer les performances :D



Ce qui a posé souci avec DLSS c’est surtout que l’image était dégradée (ce qui est le cas de FSR aussi, plus ou moins selon les modes). Là où DLSS 2.0 a réussi a obtenir de bien meilleurs résultats dans pas mal de situations (et aveec bien moins de limitations).


je crois que je pige pour l’élégance : le FSR étant “bête et méchant” il risque d’agrandir une zone sans détail en collant un “pavé noir” dans une zone sombre de l’image, là où un réseau de neurone aura peut-être reconnu une texture présente ailleurs dans l’image (ou dans les images précédentes) et l’appliquera à la place du “pavé noir”, quelque chose dans ce genre ?
j’avais pas bien percuté le fait que le DLSS prenait en compte le fait qu’il s’agisse d’une image parmi d’autres et pouvait donc potentiellement utiliser qqch présent dans une frame pour remplir des trous dans une autre frame un peu plus tard, si c’est bien ça je comprend le coté “élégant” de cette solution :)



quand je parlais de “réglage équivalent”, vu que la technique est totalement différente, c’est pas du tout les mêmes paramètres, pas de souci, mais il me semblait que des deux cotés les “niveaux” avaient des noms similaires (de mémoire les deux ont “performance” et des choses comme “ultra” ou autre joyeuseté marketing XD) et que les résultats était assez proche au final



je note l’idée que passer de 120 à 160 ips n’est pas la seule utilisation possible, mais que ça permettrait de rester à 120 en passant au niveau de détail supérieur, j’avoue que je suis bien incapable de savoir ce que je ferai si j’avais à faire un choix entre “120ips détails moyens”, “160ips détails moyens mais image “truquée” via DLSS” ou “120 ips détails élevés mais image “truquée” via DLSS”



je peux juste dire qu’il y a … aouch >15 ans (:pleure:) je préférais tourner en résolution native (1440*900 ?) avec moins d’ips que baisser la résolution ou le niveau de détail



la comparaison avec les mp3 c’était juste pour illustrer mon goût personnel (ou mon biais psychologique, je le prendrai pas mal :D) à préférer une méthode sans perte (avec en contre partie un souci d’espace disque pour le flac, de vitesse de rendu ou de niveau de détail pour une résolution d’image), même si je suis conscient de ma probable incapacité à détecter la différence par moi même à l’utilisation ;)



:p



edit : seconde citation + rattrapage de commentaires :D


Je vois que l’exécutable est un .exe. La solution peut fonctionner sous Linux et Mac ? Par exemple si GIMP et VLC l’implémentent, les pilotes graphiques Linux et Mac pourront gérer ? (je suis en full Intel sous Linux).



Super intéressant, merci !


Ce qui serait intéressant (parce que je m’intéresse aux outils comme Topaz justement), c’est de faire un comparatif avec les différents types de cartes graphiques (si vous avez réussi à mettre la main sur une 3090).
J’ai des photos et vidéos de 2004 en VGA (ah, le Sanyo XACTI, ce petit camescope qui a capturé tant de débauche…👀) et vu le temps de traitement (1fps avec une GTX1080), autant dire que ça prendra une éternité…
Merci pour le dossier en tout cas, super intéressant !



(quote:59278:brice.wernet)
En relisant comment ça marche, je me dis qu’on peut l’intégrer directement dans l’écran en fait :) Les maths impliqués n’ont pas l’air de dépasser ce que peut faire un petit copro pour l’IA…




Sauf que, y’a des trucs qui ne doivent pas passer dans l’algo, comme dit dans les diapos (notamment l’HUD, les lens flare, etc.). Cf “Where is my frame”.



Sinon, c’est rigolo, mais j’ai l’impression que le CAS est meilleur sur les plumes que EASU + RCAS. Mais il est largement battu sur l’œil, notamment. Bref, c’est intéressant à explorer cette nouvelle technique :)



David_L a dit:


Relis plus attentivement ;) Pour les difference, ouvre les images dans un onglet et si tu ne vois pas les écarts, c’est que tu es bon pour des lunettes :transpi:




J’ai déjà des lunettes…
Mais effectivement, ouvertes dans un nouvel onglet, je vois la différence.



Moi je pense qu’il y a un complot, les images ont été changées ! J’aurai du les sauvegarder :D




Toute l’idée de FSR étant de dire « on ne va pas produire une image équivalente ou meilleure à la DLSS, mais l’approximation sera suffisamment faible pour ne pas créer de drama chez les joueurs à 60 ips »



D’ailleurs c’est assez captivant pour un journaliste de voir la perception de ces fonctionnalités chez les joueurs/lecteurs, quand on pense qu’il y a une dizaine d’années, la moindre optimisation graphique destructrice pour gratter des performances pouvait créer un scandale mondial :D




Non, mais en fait, vu que ce matin je ne voyais pas de grandes différences visuelles (bon ça ne doit pas aider de se coucher tard :p ), ça me paraissait bizarre :)


Waifu2x ftw


J’ai testé avec l’image de référence utilisée ici, c’est un peu mieux que GIMP mais franchement pas génial comparé à EASU même sans RCAS en complément :D


Finalement les trucs chelou que l’on voit dans les séries policières où ils reconstituent le visage de quelqu’un avec une bouilli de pixel va devenir réalité :D


Oui avec un risque pas anodin : une IA “invente” des détails. Je prends souvent l’exemple d’une puce sur un PCB : une IA peut être entrainée à savoir qu’il faut placer du texte lisible dans ce genre de cas pour avoir une image nette. Mais le texte qu’elle y mettra ne sera pas forcément le bon ou extrapolé par rapport aux pixels de départ. On imagine ce que ça peut impliquer dans le cadre d’enquêtes policières :transpi:


Je viens de faire un teste de mon coté, le résultat est meilleurs que sur Photopea, mais identique avec l’outil de redimensionnement des PowerToys.



J’ai aussi testé avec de la vidéo, c’est un peut mieux qu’avec la zoom natif de VLC niveau netteté, mais je ne maitrise pas asse bien ffmpeg pour recomposer la vidéo au mieux et j’ai une vidéo plus contrasté :fou:


:roll: c’est asse brute faut mettre les mains dans le cambouis, mais j’ai push une version pour upscale les vidéos, sur github.



oui y a des partie en dur dans le code qui ne devrait pas l’être, c’est fait a l’arrache :D



FidelityFXOnVideo


Je suis le seul à voir un gros problème de colorimétrie sur les images EASU / CAS / RCAS (contrairement au redimensionnement gimp qui conserve les couleurs originelles) ? Parce que si ce n’est pas gênant pour du jeu vidéo, pour de la photo c’est rédhibitoire….


j’espère que ça sera ajouté dans reshade comme ça on pourra l’ajouter dans tout plein de jeux


c’est encore plus flagrant sur une dessin animé
704x396 -> 1920x1080
https://www.dropbox.com/sh/m0dzvg3a6fmfkhp/AADzKvBlr9wFsZoDMQPKLMZta?dl=0


J’utilise beaucoup le redimensionnement d’images photo donc en réduisant la définition. Dans ce cas les logiciels propose souvent plusieurs algorithmes (XnView propose Lanzcos, Gaussian, Bell, Mitchell…). Ces formules semblent utilisables pour augmenter ou réduire la définition, comme une sorte de bijection. Je comprends qu’AMD a juste une nouvelle formule je me trompe ?
Sur la méthode utilisée dans l’article pourquoi pas - par exemple - partir d’une image haute-définition, la sous-échantillonner d’un facteur 2, puis de demander au logiciel de retrouver les pixels manquant ? Ce serait plus chiffrable que comparer avec du flou.