Interpolation d'image numérique
L'interpolation d'image se produit dans toutes les photos numériques à un moment ou un autre — que ce soit dans le dématriçage Bayer ou l'agrandissement de photo. Cela arrive chaque fois que vous redimensionnez ou remappez (distordez) votre image d'une grille de pixels à une autre. Le redimensionnement est nécessaire quand vous devez augmenter ou diminuer le nombre total de pixels, tandis que le remappage peut survenir dans divers scénarios : correction de distorsion d'objectif, changement de perspective, rotation d'image.
Même si le même redimensionnement ou remappage est effectué, les résultats peuvent varier significativement selon l'algorithme d'interpolation. Ce n'est qu'une approximation, donc une image perd toujours un peu de qualité à chaque interpolation. Ce tutoriel vise à mieux comprendre comment les résultats peuvent varier — vous aidant à minimiser les pertes de qualité induites par l'interpolation.
Concept
L'interpolation utilise des données connues pour estimer des valeurs en points inconnus. Par exemple : pour connaître la température à midi, mais ne l'ayant mesurée qu'à 11h et 13h, vous pourriez l'estimer par interpolation linéaire :
Si vous aviez une mesure supplémentaire à 11h30, vous verriez que la majeure partie de la hausse s'est produite avant midi, et pourriez utiliser ce point de données additionnel pour une interpolation quadratique :
Plus vous avez de mesures proches de midi, plus votre algorithme d'interpolation peut être sophistiqué (et espérons-le, plus précis).
Exemple de redimensionnement d'image
L'interpolation d'image fonctionne dans deux directions, et tente d'atteindre la meilleure approximation de la couleur et l'intensité d'un pixel basée sur les valeurs des pixels environnants. L'exemple suivant illustre le fonctionnement du redimensionnement / agrandissement :
Agrandir 183 %→
Contrairement aux fluctuations de température et au dégradé idéal ci-dessus, les valeurs de pixels peuvent changer bien plus abruptement d'un emplacement à l'autre. Comme pour l'exemple de température, plus vous connaissez les pixels environnants, meilleure sera l'interpolation. Donc les résultats se dégradent rapidement plus vous étirez une image, et l'interpolation ne peut jamais ajouter du détail qui n'est pas déjà présent.
Exemple de rotation d'image
L'interpolation se produit aussi à chaque rotation ou distorsion d'image. L'exemple précédent était trompeur car c'est un cas où les interpolateurs excellent. Celui-ci montre comment le détail peut être perdu rapidement :
OriginalRotation
→
Rotation 45°
Rotation 90°(Sans perte)
2 x Rotations 45°
6 x Rotations 15°
La rotation de 90° est sans perte car aucun pixel n'a jamais à être repositionné sur la frontière entre deux pixels (et donc divisé). Notez comme la plupart du détail est perdu dès la première rotation, bien que l'image continue de se dégrader avec les rotations successives. On doit donc éviter de faire pivoter vos photos quand c'est possible ; si une photo de travers l'exige, ne la pivotez pas plus d'une fois.
Les résultats ci-dessus utilisent un algorithme « bicubique », et montrent une détérioration significative. Notez la baisse globale de contraste (couleurs moins intenses) et la création de halos sombres autour du bleu clair. Les résultats pourraient être significativement améliorés selon l'algorithme et le sujet.
Types d'algorithmes d'interpolation
Les algorithmes courants se regroupent en deux catégories : adaptatifs et non-adaptatifs. Les méthodes adaptatives changent selon ce qu'elles interpolent (contours nets vs texture lisse), alors que les méthodes non-adaptatives traitent tous les pixels de façon égale.
Algorithmes non-adaptatifs : plus proche voisin, bilinéaire, bicubique, spline, sinc, lanczos et autres. Selon leur complexité, ils utilisent de 0 à 256 (ou plus) pixels adjacents. Plus ils incluent de pixels adjacents, plus ils peuvent être précis, mais au prix de temps de traitement bien plus longs. Ces algorithmes servent à la fois à distordre et redimensionner une photo.
Original
Agrandi 250 %
Algorithmes adaptatifs : de nombreux algorithmes propriétaires dans des logiciels sous licence comme Qimage, PhotoZoom Pro, Genuine Fractals et autres. Beaucoup appliquent une version différente de leur algorithme (pixel par pixel) quand ils détectent un contour — visant à minimiser les artefacts disgracieux là où ils sont plus apparents. Ces algorithmes visent principalement à maximiser le détail sans artefact dans les photos agrandies, donc certains ne peuvent pas servir à distordre ou pivoter une image.
Interpolation au plus proche voisin (Nearest Neighbor)
Le plus proche voisin est le plus basique et demande le moins de temps de traitement car il ne considère qu'un pixel — le plus proche du point interpolé. Cela a pour effet de simplement agrandir chaque pixel.
Interpolation bilinéaire (Bilinear)
L'interpolation bilinéaire considère le voisinage 2x2 des valeurs de pixels connus les plus proches du pixel inconnu. Elle fait une moyenne pondérée de ces 4 pixels pour arriver à sa valeur finale. Cela donne des images bien plus lisses que le plus proche voisin.
Le diagramme à gauche est pour un cas où toutes les distances de pixels connus sont égales, donc la valeur interpolée est simplement leur somme divisée par quatre.
Interpolation bicubique (Bicubic)
Le bicubique va au-delà du bilinéaire en considérant le voisinage 4x4 des pixels connus — 16 pixels au total. Comme ils sont à diverses distances du pixel inconnu, les pixels plus proches reçoivent un poids plus fort dans le calcul. Le bicubique produit des images nettement plus nettes que les deux méthodes précédentes, et est peut-être la combinaison idéale de temps de traitement et qualité de sortie. C'est pourquoi c'est un standard dans de nombreux logiciels (dont Adobe Photoshop), pilotes d'imprimante et interpolation intégrée aux appareils.
Interpolation d'ordre supérieur : Spline & Sinc
Il existe beaucoup d'autres interpolateurs prenant plus de pixels environnants en compte, et donc bien plus intensifs en calcul. Ces algorithmes incluent spline et sinc, et conservent le plus d'information d'image après interpolation. Ils sont donc extrêmement utiles quand l'image requiert plusieurs rotations/distorsions en étapes séparées. Cependant, pour les agrandissements ou rotations en une seule étape, ces algorithmes d'ordre supérieur apportent une amélioration visuelle décroissante au fur et à mesure que le temps de traitement augmente.
Artefacts d'interpolation à surveiller
Tous les interpolateurs non-adaptatifs tentent de trouver un équilibre optimal entre trois artefacts indésirables : halos de contours, flou et aliasing.
Original Agrandi400 %
→
Aliasing
Flou
Halo de contour
Même les interpolateurs non-adaptatifs les plus avancés doivent toujours augmenter ou diminuer l'un des trois artefacts au détriment des deux autres — donc au moins un sera visible. Notez aussi comme le halo de contour est similaire à l'artefact produit par la sur-accentuation avec un masque flou, et améliore l'apparence de netteté en augmentant l'acutance.
Les interpolateurs adaptatifs peuvent ou non produire les artefacts ci-dessus, mais ils peuvent aussi induire des textures non-image ou des pixels étranges à petite échelle :
Original Agrandi220 %
→
Interpolation adaptative
D'un autre côté, certains de ces « artefacts » d'interpolateurs adaptatifs peuvent aussi être vus comme des avantages. Comme l'œil s'attend à voir du détail jusqu'aux plus petites échelles dans les zones à texture fine comme le feuillage, ces motifs ont été argumentés comme trompant l'œil à distance (pour certains sujets).
Anti-aliasing (Anticrénelage)
L'anti-aliasing (anticrénelage) est un processus qui tente de minimiser l'apparence des contours diagonaux crénelés ou « jaggies ». Ceux-ci donnent au texte ou aux images un aspect numérique rugueux :

Agrandi 300 %(Avec aliasing)

Agrandi 300 %(Sans aliasing)
L'anti-aliasing élimine ces crénelures et donne l'apparence de contours plus lisses et d'une résolution plus élevée. Il fonctionne en tenant compte de combien un contour idéal chevauche les pixels adjacents. Le bord aliéné arrondit simplement vers le haut ou le bas sans valeur intermédiaire, alors que le bord anti-alié donne une valeur proportionnelle à la part du contour dans chaque pixel :
Diagonale parfaite
| Choisir : | Alié | Anti-alié |
Rééchantillonné à basse résolution
Un obstacle majeur lors de l'agrandissement est d'empêcher l'interpolateur d'induire ou d'aggraver l'aliasing. Beaucoup d'interpolateurs adaptatifs détectent les contours et s'ajustent pour minimiser l'aliasing tout en conservant la netteté des bords. Puisqu'un bord anti-alié contient l'information de la position de ce bord à plus haute résolution, il est concevable qu'un puissant interpolateur adaptatif (détecteur de contours) puisse au moins partiellement reconstruire ce bord lors de l'agrandissement.
Note sur zoom optique vs numérique
Beaucoup de compacts numériques font à la fois zoom optique et numérique. Le zoom optique déplace l'objectif pour augmenter la grossissement de la lumière avant qu'elle n'atteigne le capteur. En revanche, le zoom numérique dégrade la qualité en interpolant simplement l'image — après son acquisition au capteur.
Zoom optique 10x
Zoom numérique 10x
Même si la photo avec zoom numérique a le même nombre de pixels, le détail est clairement bien moindre qu'avec le zoom optique. Le zoom numérique devrait être presque entièrement évité, sauf s'il aide à visualiser un objet lointain sur l'écran LCD de l'appareil. Alternativement, si vous shootez régulièrement en JPEG et prévoyez de recadrer/agrandir après, le zoom numérique a au moins l'avantage d'interpoler avant que les artefacts de compression n'apparaissent. Si vous avez trop souvent besoin de zoom numérique, achetez un téléconvertisseur, ou mieux : un objectif à plus longue focale.
Pour aller plus loin, consultez les tutoriels spécifiques sur :
Agrandissement photo numérique
Redimensionnement d'image pour le web et l'email

