Quand on agrandit une photo ou une vidéo, on s’attend souvent à ce que l’image reste nette et détaillée. Pourtant, dès qu’on dépasse le facteur ×2 ou ×4, le résultat devient rapidement flou, pixelisé ou artificiel. C’est le cœur du problème de l’upscaling : on passe d’une grille de pixels à une grille plus fine, mais l’information manquante ne peut pas être créée à partir de rien.
Pourquoi ça pose problème dès le départ : le repliement de spectre et l’effet de moiré
Quand on réduit une image (pour la compresser ou l’afficher sur un petit écran), les détails très fins (les hautes fréquences) ne disparaissent pas simplement : ils se « replient » sur les basses fréquences. On appelle ça le repliement de spectre (ou aliasing).
Le résultat visuel le plus connu est l’effet de moiré : une chemise à fines rayures qui apparaît avec de grosses bandes ondulées à l’écran, ou les roues d’une voiture qui semblent tourner à l’envers au cinéma. Cela montre que l’information fine a été perdue et ne peut plus être récupérée.
1. L’upscaling, c’est d’abord un problème de ré-échantillonnage
Une image numérique est une matrice de pixels. Quand on veut passer d’une résolution à , on doit calculer les valeurs des nouveaux pixels qui n’existent pas encore.
Les méthodes les plus simples reposent sur l’interpolation : on estime la valeur d’un pixel intermédiaire à partir des pixels voisins.
a) Interpolation au plus proche voisin (nearest-neighbor)
La plus basique. Chaque nouveau pixel prend tout simplement la valeur du pixel le plus proche dans l’image originale.
Avantage : ultra-rapide.
Inconvénient : effet « escalier » très visible.
b) Interpolation bilinéaire
On fait une moyenne pondérée sur les 4 pixels les plus proches.
La formule pour un pixel interpolé est :
où et sont les fractions entre 0 et 1.
Résultat : plus doux, mais encore très flou sur les contours.
c) Interpolation bicubique (la référence des logiciels classiques)
C’est la méthode la plus utilisée dans Photoshop, GIMP, etc. Elle utilise 16 pixels voisins et une fonction polynomiale cubique.
La fonction de base la plus courante est le noyau bicubique de Keys :
Le pixel interpolé est la somme pondérée des 16 voisins avec ce noyau.
C’est déjà bien plus net, mais dès qu’on pousse le facteur d’agrandissement, les contours deviennent mous et les textures artificielles.
2. Derrière l’interpolation : la convolution
En réalité, toute interpolation de qualité est une convolution avec un noyau spécifique.
L’image résultante est obtenue par :
où est le noyau (bilinéaire, bicubique, Lanczos, etc.).
Le noyau idéal théorique serait la fonction sinc (sinus cardinal) :
C’est exactement ce que préconise le théorème d’échantillonnage de Nyquist-Shannon.
3. Pourquoi ça ne suffit jamais : les limites mathématiques
Le théorème de Nyquist-Shannon dit qu’on peut reconstruire parfaitement un signal à partir de ses échantillons… à condition que ce signal ait un spectre borné (c’est-à-dire que toutes ses fréquences soient limitées à une valeur maximale).
Or, une vraie image numérique n’est pas à spectre borné :
- Un contour très net, un contraste brusque ou un détail très fin correspond à des fréquences très élevées (théoriquement infinies).
- Au moment de la prise de vue, le capteur et le filtre anti-aliasing ont déjà supprimé une partie de ces hautes fréquences.
- Quand on upscale, on demande au système de deviner ces fréquences qui n’ont jamais été capturées.
Résultat :
- Avec du sinc tronqué (Lanczos), on obtient des oscillations (ringing) sur les contours forts.
- Avec du bicubique, on lisse trop : perte de netteté.
- Dans tous les cas, on ne crée pas d’information nouvelle. On redistribue simplement ce qui existe déjà.
C’est pour ça qu’un agrandissement ×4 donne souvent un résultat qui semble « peint » ou « en plastique ».
Remarque
Si vous avez étudié le traitement du signal vous savez qu’il existe des méthodes plus avancées de reconstruction (spline, EWA, etc.). Mais même avec un noyau parfait, le problème reste mal posé : plusieurs images haute résolution peuvent donner la même image basse résolution après sous-échantillonnage. On est dans un problème inverse sous-déterminé.
En résumé
L’interpolation et la convolution sont les fondations incontournables de l’upscaling. Elles sont rapides et maîtrisées, mais elles atteignent très vite leur limite : elles ne peuvent pas inventer les détails qui n’ont jamais été enregistrés (contours nets, textures fines, contrastes brusques).
C’est exactement là que l’IA change la donne : elle apprend à estimer les détails les plus probables à partir de millions d’exemples.
Dans le prochain article, on passe à la théorie de l’information : pourquoi l’upscaling est un problème « impossible » au sens strict.