Les algorithmes de dithering sont une pierre angulaire de l'imagerie numérique, permettant la simulation d'une gamme de couleurs plus large et des gradients plus lisses dans les contraintes d'une palette limitée. En plaçant stratégiquement des pixels de couleurs disponibles, le dithering crée l'illusion de nuances et de teintes qui ne sont pas directement supportées. Cette technique est essentielle dans tout, de l'impression et du web graphiques à la rétro-jouis et aux technologies modernes d'affichage.

Qu'est-ce que Dithering ?

Au cœur de cette technique, le dithering est un processus d'ajout de bruit, habituellement sous forme d'erreur de quantification, à une image pour réduire les artefacts de bande lors de la conversion d'un espace de couleur à haute profondeur en un espace inférieur. Lorsqu'une image numérique est réduite à un nombre limité de couleurs, les zones de gradients lisses se divisent souvent en bandes brusques. Le dithering se décompose en alternant des pixels de différentes couleurs dans un motif qui, de loin, se mélange dans les nuances intermédiaires manquantes.

Le dithering n'est pas un concept nouveau, il a été utilisé depuis les premiers jours de l'informatique graphique et de la reproduction d'impression. Le nom lui-même est censé dériver du verbe Ancien Anglais didderen Dans le domaine numérique, la dithering reste un outil essentiel pour optimiser les images pour les appareils avec des capacités de couleur limitées, tels que les écrans e-ink, matrices LED ou encres d'imprimante. L'efficacité perceptuelle de la dithering repose sur le fait que l'œil humain agit comme un filtre passe-bas, brouillant les variations spatiales à haute fréquence en une moyenne lisses.

L'erreur de quantification se produit lorsque chaque intensité originale de pixel est arrondie à la valeur de couleur disponible la plus proche. Sans dithering, cet arrondi conduit à des bandes de contour visibles. La dithering répartit l'erreur sur les pixels voisins, en maintenant la luminance locale et en créant l'apparence de tons continus.

Types d'algorithmes dithing

Les algorithmes de dithage peuvent être classés en deux familles : le dithage ordonné et la diffusion d'erreurs. Chacun a ses propres compromis en vitesse, apparence d'artefact et qualité d'image. Des variantes plus avancées comme le dithage bleu existent également, combinant le meilleur des deux mondes.

Ordre de dithering

La dithering ordonnée est l'une des techniques de dithering les plus simples et les plus rapides. Elle fonctionne en comparant la valeur de chaque pixel à un seuil d'une matrice fixe, souvent appelée matrice de dither ou matrice Bayer. Si l'intensité du pixel dépasse le seuil, le pixel de sortie correspondant est réglé à la couleur plus claire; sinon, il est réglé à la couleur plus foncée. La matrice est carrelée sur l'image, créant un motif répétitif qui correspond aux intensités originales.

La famille la plus courante de matrices de dithering ordonnées est la matrice Bayer, nommée d'après Bryce Bayer (l'inventeur du filtre Bayer), qui est définie de façon récursive et qui produit un modèle qui minimise les artefacts à basse fréquence tout en conservant la simplicité de calcul. La taille de la matrice détermine le nombre de nuances pouvant être simulées – par exemple, une matrice Bayer 4×4 peut représenter 17 niveaux distincts (0 à 16).

La dithering ordonnée est déterministe, ce qui signifie que la même entrée produit toujours la même sortie. Cette propriété est précieuse pour la cohérence dans les applications d'animation et vidéo. Cependant, le modèle de seuil fixe peut produire une texture caractéristique "checkerboard" ou comme une grille, en particulier dans les zones de couleur uniforme.

Avantages de la dithering ordonnée:

  • Extrêmement rapide et facile à mettre en œuvre, ce qui le rend adapté aux applications en temps réel et aux systèmes embarqués.
  • Produit une sortie déterministe et répétable.
  • Très faible mémoire au-dessus.

Inconvénients:

  • Il s'agit de créer des artefacts visibles comme des grilles (l'aspect « checkerboard »), surtout avec des matrices plus petites.
  • Moins précis pour les gradients lisses que pour les techniques de diffusion des erreurs.
  • Le motif fixe peut être visuellement intrusif, surtout dans les grandes zones uniformes.

La dithering commandée est encore largement utilisée dans les scénarios où la vitesse est primordiale, comme le traitement vidéo en temps réel sur du matériel de faible puissance, ou lorsque le périphérique de sortie cible a une résolution limitée (p. ex., imprimantes thermiques).

Erreur Diffusion Dithering

Les algorithmes de diffusion des erreurs adoptent une approche plus intelligente. Au lieu d'utiliser un modèle de seuil fixe, ils distribuent l'erreur de quantification – la différence entre la valeur pixel originale et la valeur sortie – aux pixels voisins qui n'ont pas encore été traités. Cette propagation d'erreur préserve efficacement la luminosité moyenne locale, ce qui entraîne des gradients beaucoup plus lisses avec moins d'artefacts à motifs.

L'algorithme général fonctionne comme suit pour chaque pixel (en ordre de balayage raster, généralement de gauche à droite, de haut en bas):

  1. Quantifiez la valeur du pixel à la couleur disponible la plus proche.
  2. Calculez l'erreur & #160;: erreur = valeur originale - valeur de sortie- Oui.
  3. Diffusez une fraction de cette erreur à un ou plusieurs pixels voisins (futurs), généralement à droite et à bas, en utilisant un noyau de filtre d'erreur prédéfini.

Le noyau de filtre d'erreur exact distingue les différentes variantes de diffusion d'erreur. Le choix du noyau influence le biais directionnel, le flou et la texture globale du résultat dithéré. Ci-dessous sont les plus notables.

Dithering Floyd–Steinberg

Développé par Robert W. Floyd et Louis Steinberg en 1976, c'est l'algorithme de diffusion d'erreurs le plus célèbre. Son filtre distribue l'erreur à quatre pixels voisins:

  • 7/16 au pixel directement à droite
  • 3/16 au pixel en dessous à gauche
  • 5/16 au pixel directement ci-dessous
  • 1/16 au pixel en dessous à droite

Cette distribution produit d'excellents résultats sur une grande variété d'images, préservant efficacement le contraste et le détail. Floyd–Steinberg dithering est la norme de facto pour la quantification d'images dans des bibliothèques comme ImageMagick et est largement utilisé dans le traitement d'images pipelines, web graphiques, et l'art de pixel rétro. Sa propagation d'erreurs tend à créer un motif de point fin, relativement isotrope qui est visuellement agréable pour les photographies en continu.

Avantages:

  • Très bonne qualité visuelle avec des artefacts minimums pour la plupart des images.
  • Largement soutenu et bien documenté.
  • Relativement simple à mettre en œuvre et assez rapide pour de nombreuses applications non-réelles.

Inconvénients:

  • Peut créer des artefacts directionnels « vers » dans les zones plates, en particulier avec de grandes régions uniformes.
  • La propagation d'erreur peut causer des saignements de couleurs dans les zones adjacentes, potentiellement modifier l'aspect global si elle n'est pas soigneusement gérée.

Floyd–Steinberg reste la norme aurifère pour le dithage général, mais les développeurs devraient être conscients de sa tendance à introduire la texture dans les régions du ciel ou de l'ombre.

Atkinson Dithering

Développé par Bill Atkinson (de renommée MacPaint), cette variante utilise une distribution d'erreur plus étroite que Floyd–Steinberg. Le filtre d'Atkinson étend l'erreur à seulement trois pixels voisins, avec une diffusion totale de seulement 3/4 de l'erreur (le reste 1/4 est laissé non-refusé). Les coefficients sont:

  • 1/4 à droite
  • 1/4 à gauche
  • 1/4 au bas

Parce que moins d'erreur est diffusée, Atkinson dithering produit une apparence plus légère et plus contrastée qui est particulièrement efficace pour les images avec des palettes de couleurs limitées (par exemple, 16 ou 256 couleurs) et pour préserver les lignes et les bords fins. La texture résultante a un aspect distinctif « pointillé », souvent vu dans les graphiques Macintosh classiques. Il est moins sujet aux artefacts de vers de Floyd–Steinberg mais peut parfois perdre des variations de luminosité subtiles dans les gradients. La diffusion d'erreur réduite signifie également que Atkinson dithering tend à mieux préserver les détails fins, ce qui en fait un favori parmi les artistes de pixel.

Autres erreurs Variantes de diffusion

Plusieurs autres filtres de diffusion d'erreurs ont été proposés au fil des ans, chacun affinant le compromis entre qualité et coût de calcul :

  • Sierra dithering (dont Sierra Lite et Sierra-2-4A) utilise une distribution plus large et plus symétrique qui réduit les artefacts directionnels mais augmente le nombre de pixels voisins impliqués. Sierra Lite, par exemple, diffuse à trois voisins (comme Atkinson) mais avec des coefficients différents (1/2, 1/4, 1/4) et conserve l'erreur restante 1/4, donnant une texture différente.
  • Des bourrasques qui détrempent est similaire à Stucki mais avec des coefficients légèrement plus simples (voir ci-dessous).
  • Jarvis, Judice et Ninke (Jarvis) se dissocient utilise un noyau 3×3 qui propage l'erreur à cinq pixels voisins. Il produit un résultat très lisse mais est plus intensif en calcul et peut causer un flou des détails fins.
  • C'est un dithering de Stucki Il utilise également un noyau 3×3, mais avec des pondérations différentes. Il offre un bon équilibre entre qualité et vitesse, et est fréquemment employé dans des flux de travail d'impression de haute qualité.

Ces variantes sont moins courantes aujourd'hui mais restent utiles dans des contextes spécifiques, tels que des flux de travail d'impression de haute qualité où les petits artefacts sont inacceptables. Le choix entre eux descend souvent à la texture souhaitée: Jarvis et Stucki produisent des résultats plus doux et plus flous, tandis que Sierra Lite maintient des bords plus nets.

Dithering bleu du bruit

Le dithering bleu est une approche plus moderne qui vise à combiner les meilleurs aspects des méthodes de diffusion ordonnée et d'erreur. Il utilise un masque de bruit bleu précompulé – un motif où les basses fréquences sont supprimées, ce qui entraîne un bruit non corrélé qui est visuellement agréable – pour seuilr l'image. Contrairement au dithering ordonné, le motif n'est pas une matrice simple répétitive mais une texture de bruit isotrope. Contrairement à la diffusion d'erreur, il est non-initatif et peut être parallélisé facilement.

Le terme « bruit bleu » désigne le bruit avec la majeure partie de sa puissance concentrée dans les hautes fréquences spatiales, qui sont moins perceptibles pour l'œil humain. Des algorithmes tels que la méthode « sans mélange » peuvent générer des masques bleus qui tuilent sans couture. La dithering du bruit bleu est souvent utilisé dans les écrans d'impression et dans les cartes graphiques modernes pour la dithering temporelle pour améliorer la profondeur perçue des bits. Son principal inconvénient est le coût initial de la production du masque, mais une fois généré, le masque peut être réutilisé pour n'importe quelle image.

Choisir un algorithme dithing

La sélection de l'algorithme de dilution approprié dépend de plusieurs facteurs :

  • Dispositif ou support de sortie cible: Les imprimantes nécessitent souvent une diffusion d'erreurs pour minimiser les motifs visibles, tandis que les écrans simples LED peuvent bénéficier de la vitesse de dithering ordonné.
  • Taille de la palette de couleurs : Avec de très petites palettes (par exemple, 2 couleurs), Atkinson ou Floyd–Steinberg peut préserver plus de détails. Avec des palettes plus grandes (par exemple, 256 couleurs), le dithering commandé peut suffire.
  • Exigences fonctionnelles: Les applications en temps réel sur des appareils mobiles ou embarqués utilisent généralement une diffusion ditherante ordonnée ou une simple diffusion d'erreurs (comme Floyd-Steinberg).
  • Considérations esthétiques: L'art du pixel rétro embrasse souvent les artefacts visibles de la ditherie ordonnée pour un look nostalgique, tandis que le design graphique moderne favorise la douceur du bruit bleu ou Floyd-Steinberg.
  • Type d'image & #160;: Les photographies aux tons continus bénéficient de la diffusion d'erreurs; l'art de ligne et les graphiques avec des bords tranchants peuvent être plus beaux avec Atkinson ou dithering ordonné.
  • Espace de couleur et gamma: Les algorithmes de dilution fonctionnent idéalement dans un espace de couleur linéaire. L'application de la dilution dans un espace de gamma-corrigé peut conduire à des changements de luminosité. De nombreuses implémentations modernes effectuent la dilution dans un espace de couleur perceptuelle pour améliorer la précision.

En règle générale, si la vitesse est critique et que les artefacts sont acceptables, utilisez la dithering ordonnée (par exemple, 4×4 Bayer). Si la qualité est primordiale et le temps de traitement n'est pas une contrainte, le bruit bleu ou Floyd–Steinberg est préféré. Pour un compromis, Atkinson ou Sierra Lite offre un bon équilibre. Considérez également la possibilité de replanifier les résultats de dithering : certains algorithmes permettent de régler la quantité d'erreur retenue, ce qui peut aider à s'adapter à différents affichages gamma.

Applications des algorithmes dithing

La dythrage est omniprésente dans de nombreux domaines de la technologie d'imagerie et d'affichage :

Impression et édition

Les imprimantes jet d'encre et laser utilisent généralement seulement quelques couleurs d'encre (cyan, magenta, jaune, noir). La dithering – surtout la diffusion d'erreurs – est essentielle pour simuler des milliers de nuances en modifiant la densité et le motif des points d'encre. Sans dithering, les images imprimées semblent bloc et bagué. De nombreux flux de travail professionnels d'impression dépendent de Floyd–Steinberg ou Stucki pour obtenir des résultats optimaux.

Technologie d'affichage

Les écrans informatiques anciens et de nombreux écrans modernes d'encre électronique (par exemple Amazon Kindle) sont intrinsèquement binaires ou ont une profondeur de couleur limitée. La dithering leur permet d'afficher des gradients et des images lisses. Les écrans haut de gamme de smartphones utilisent également la dithering sous-pixel pour améliorer la résolution perçue et la précision de la couleur.

Retro Gaming et Pixel Art

Les palettes de couleurs limitées des consoles de jeu classiques (par exemple NES, Game Boy, Commodore 64) ont fait dithering une technique essentielle pour les artistes. Les motifs distinctifs de dither shop et de cross-hatch de dithering ordonné sont emblématiques dans les graphismes de jeu vintage. Aujourd'hui, les artistes de pixel utilisent souvent dithering intentionnellement pour évoquer une esthétique rétro, parfois en choisissant des algorithmes spécifiques (comme Bayer ou Atkinson) pour atteindre un look particulier.

Compression et stockage de l'image

Avant d'envoyer des images sur des réseaux lents ou de les stocker dans une mémoire limitée, le dithering permet une réduction de la profondeur de la couleur tout en minimisant la dégradation visuelle. Les formats comme GIF utilisent des options de dithering pour réduire le nombre de couleurs par cadre. Certains codecs d'image modernes intègrent le dithering dans le cadre de l'étape de quantification pour améliorer la qualité perceptuelle.

Art numérique et illustration

De nombreux programmes de peinture numérique (p. ex. Adobe Photoshop, Krita, Procreate) incluent des filtres de dithring pour des effets comme le halftoning, le hachage croisé ou la réduction du baguage dans les dégradés. Les artistes utilisent également le dithering pour créer des textures qui imitent les médias traditionnels comme l'ombrage ou le bâillonnage au crayon. Le choix de l'algorithme peut affecter de façon considérable l'humeur et le style de l'œuvre.

Visualisation scientifique et imagerie médicale

Dans des domaines comme l'astronomie, la microscopie et l'imagerie médicale, de grandes quantités de données sont souvent affichées sur des moniteurs à portée dynamique limitée. La dithering aide à préserver des variations d'intensité subtiles qui pourraient être perdues autrement. La dithering du bruit bleu est particulièrement favorisée parce qu'elle n'introduise aucun artefact structuré visible qui pourrait être mal interprété comme structure dans les données originales.

Conclusion

De l'efficacité de la dithering ordonnée à la précision de Floyd-Steinberg et à la subtilité du bruit bleu, chaque algorithme offre des caractéristiques uniques qui conviennent à différents cas d'utilisation. La compréhension de ces algorithmes permet aux ingénieurs du traitement d'images, aux graphistes et aux amateurs de prendre des décisions éclairées, en conciliant vitesse, qualité et objectifs esthétiques. Que vous optimisiez les graphismes pour un jeu rétro, que vous prépariez un fichier d'impression ou simplement que vous soyez curieux de savoir comment fonctionne votre affichage, une bonne compréhension de la dithering est une partie essentielle de la boîte à outils d'imagerie numérique.

Pour plus de détails, explorez la Wikipedia article sur le dithering, les Floyd–Steinberg page de ditheringet les entrée de dithering ordonnée. Pour les mises en œuvre pratiques, Documentation ImageMagick fournit des exemples d'utilisation de différentes méthodes de dithering dans un outil réel. Une plongée plus profonde dans la génération de bruit bleu peut être trouvée dans le Costella page de dithering- Oui.