Les différentes méthodes d’interpolation

Interpolation au plus proche voisin

La méthode d’interpolation la plus simple est appelée la méthode du plus proche voisin. Ce nom vient du fait que chaque pixel créé par l’agrandissement prend la couleur du pixel le plus proche de lui.

Cela revient à dire que pour agrandir une image avec un facteur , on remplace chaque pixel par un bloc de pixels identiques.

interpolation-plusprocheExemple avec un agrandissement de facteur 3

C’est aussi la méthode la plus efficace en terme de performances, mais visuellement il existe très peu de cas où elle produit un résultat intéressant. En effet, bien qu’elle garde tous les détails de l’image originale, l’image agrandie souffre presque toujours d’un effet de crénelage (effet d’escalier au niveau des contours, et de mosaïque dans les dégradés).

image départ

image plus proche

Les seules images sur lesquelles cette méthode ne pose pas de problème ne sont donc composées que de lignes horizontales ou verticales, et de couleurs unies.

mondrian

mondrigranComme un tableau de Piet Mondrian, par exemple.


Interpolation bilinéaire

L’interpolation bilinéaire, quoique reposant sur un algorithme un peu plus complexe, reste très simple à appliquer, notamment pour un agrandissement de facteur 2 : la valeur de chaque pixel interpolé est la moyenne des deux ou quatre pixels les plus proches.

interpolation-bilineaireLes flèches représentent quels pixels ont été utilisés pour calculer la valeur des pixels inconnus

Pour interpoler un pixel situé entre des pixels connus plus éloignés, on calcule une moyenne entre ces pixels que l’on pondère selon la distance du pixel interpolé à chacun des pixels originaux.

Cela revient à calculer la fonction qui passe par toutes les valeurs des pixels connus, puis à l’échantillonner à la taille voulue afin d’attribuer une valeur aux pixels inconnus. Dans le cas de l’interpolation bilinéaire, il s’agit d’une fonction à deux variables continue et bilinéaire par morceaux, d’où le nom.

Le résultat est plus lisse qu’avec la méthode du plus proche voisin, mais cela peut poser un problème : l’image agrandie paraît moins détaillée, voire floue.

image départ

image bilineaire


Interpolation bicubique

L’interpolation bicubique repose sur le même principe que l’interpolation bilinéaire, si ce n’est que la fonction utilisée pour interpoler est cette fois une fonction continue et continûment dérivable, bicubique (c’est-à-dire polynomiale de degré 3) par morceaux.

Elle est plus complexe à mettre en place que les autres méthodes. Tout d’abord, elle prend en compte plus de pixels de l’image originale pour calculer les pixels interpolés : 16 au lieu de 4, car l’on utilise l’entourage de chaque pixel pour approximer sa dérivée. De plus, elle convoque des opérations arithmétiques de haut niveau, tels que des polynômes de Lagrange, pour résoudre les équations permettant d’obtenir les paramètres de chaque morceau bicubique de la fonction.

La conséquence de cette complexité est que les résultats qu’elle produit sont encore plus lisses et contiennent moins d’artefacts. L’interpolation bicubique est donc finalement l’interpolation la plus utilisée, sauf dans certains cas critiques demandant une grande vitesse d’interpolation.

image départ

image bicubique