Tramage (informatique)

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Page d'aide sur l'homonymie Pour les articles homonymes, voir Tramage.
Page d'aide sur l'homonymie Pour les articles homonymes, voir Dither.

Le tramage[réf. souhaitée], en jargon professionnel : « Dither », est une technique d'amélioration de données numériques graphiques basée sur la correction des défauts par une application volontaire de bruit rendant aléatoire les distorsions.

Le tramage est une forme de bruit volontairement appliqué pour rendre aléatoires les erreurs de quantification, ce qui empêche les motifs tels que le banding (rendu graduel de la luminosité ou de la teinte) dans les images. Le tramage est couramment utilisé dans le traitement graphique numérique.

Le Tramage est souvent employé dans le traitement des données numériques graphiques, où il s'applique aux conversions du taux d'échantillonnage et à la transition au niveau des bits. Il est aussi utilisé en audio pour réduire le bruit de fond numérique des fichiers[1].

Photographie numérique et traitement de l'image[modifier | modifier le code]

Illustration du tramage. Couleur rouge et couleur bleu. Plus le pixel devient petit, plus la zone semble de couleur violet.

Le tramage est une technique utilisée en infographie pour donner l'illusion de la profondeur de couleur d'une image à partir d'une palette couleurs limitée (quantification de couleur). Dans une image tramée, les couleurs non disponibles de la palette sont approchées par une diffusion de pixels colorés à partir de celle présente. L'œil humain perçoit la diffusion comme un mélange de couleurs (vision des couleurs). Le tramage est analogue à la technique du halftone utilisée dans l'impression. Des images tramées, spécifiquement celles avec relativement peu de couleurs, peuvent souvent être distinguées par leur grain ou leur apparence mouchetée.

Le tramage est un procédé permettant de simuler des couleurs non disponibles en juxtaposant des points diversement colorés. Ce procédé est également appelé « couleur indexée ». Par exemple sur un écran vidéo l'affichage d'une photo « True Color » dans un mode vidéo n'offrant que 256 couleurs impliquait le tramage des couleurs absentes de la palette couleurs du système.

Le tramage étant un procédé qui nécessite beaucoup de calculs, plusieurs constructeurs avaient développé, à une époque, des gestionnaires qui n'utilisaient que des couleurs unies, avec une incidence sur la qualité. Ainsi en fonction des applications, la qualité du tramage pouvait beaucoup varier.

Historiquement, le procédé de tramage avait donc été mis en œuvre dans les logiciels de retouche d'image pour un affichage en 16 millions de couleurs alors que le mode n'en proposait que 256. Chaque nuance manquante était simulée par la juxtaposition de plusieurs points diversement colorés.

Certains constructeurs de cartes graphiques avaient mis en œuvre une « power palette » qui permettait de remplacer la teinte manquante par la couleur de la palette la plus approchante. Dans cette technologie, l'affichage était plus rapide, car de fait le tramage dynamique disparaît, mais le rendu des couleurs était nettement moins bon.

Exemple[modifier | modifier le code]

Réduire la profondeur de couleur d'une image peut souvent avoir d'important effets secondaires. Si l'original est une photographie, elle a probablement des milliers ou même des millions de couleurs distinctes. Le processus de réduire les couleurs disponibles à une palette couleurs effectivement fait perdre une certaine quantité d'informations les concernant.

Plusieurs facteurs peuvent affecter la qualité d'une image dont le nombre de couleurs a été réduit. Peut-être le plus important est la palette couleurs qui sera utilisée pour une image réduite. Par exemple, une image originale (Figure 1) peut-être réduite aux 216 couleurs de la palette Web-safe. Si les couleurs des pixels originaux sont simplement traduits par les couleurs disponibles les plus proches dans la palette, aucun tramage n'est effectué (figure 2). Typiquement, cette approche se traduit dans des zones planes (sans profondeur de couleurs) par une perte de détails, pouvant produire des taches dont les couleurs sont différentes de l'image originale. Les zones ombragées ou de dégradé peuvent apparaître sous la forme de bandes de couleur, pouvant être dérangeante. L'utilisation du tramage peut contribuer à minimiser ces artéfacts visuels, et se traduit généralement par un résultat de meilleur qualité (figure3). Il permet de réduire les bandes de couleur et le manque de profondeur.

Un des problèmes lié à l'utilisation d'une palette couleurs fixe est que beaucoup de couleurs nécessaires peuvent ne pas être disponibles, et beaucoup d'autres présentes peuvent ne pas servir ; par exemple, une palette couleurs fixe contenant principalement des nuances de vert ne serait pas adaptée à une image ne contenant pas ces nuances. L'utilisation d'une palette couleurs optimisée peut être bénéfique dans de tels cas. Une palette couleurs est dite optimisée quand les couleurs à disposition sont choisies sur la base de leur fréquence d'utilisation dans l'image originale servant de source. Si la réduction de l'image est réalisée sur la base d'une palette optimisée, le résultat est souvent bien plus proche de l'original (Figure 4).

Le nombre de couleurs disponibles dans la palette est aussi un facteur contributif. Si, par exemple, la palette est limitée à seulement 16 couleurs, l'image traitée peut perdre des détails, et avoir des problèmes encore plus visibles liés à leur manque de profondeur et de graduation - cf. (en) color banding - (Figure 5). Une fois de plus, le tramage peut aider à réduire de tels artefacts (Figure 6).

Applications[modifier | modifier le code]

Les appareils graphiques, incluant les premières cartes graphiques d'ordinateur et de nombreux afficheurs LCD utilisés dans les téléphones portables et les appareils photo numérique d'entrée de gamme, offrent une profondeur de couleurs plus faible que sur ceux plus récents. Une application courante du tramage est d'afficher plus précisément des graphiques contenant un nombre de couleurs plus grand que l'appareil n'est capable d'en afficher. Par exemple, le tramage, peut être utilisé afin d'afficher une image photographique contenant un millions de couleurs sur des monitors vidéo qui ne sont capables que d'en restituer 256 à la fois. Ces 256 couleurs sont utilisées pour créer une approximation tramée de l'image originale. Sans cela, les couleurs de l'image original seraient simplement approximées par les couleurs les plus proches disponibles, donnant comme résultat une nouvelle image qui serait une médiocre représentation du modèle. Le tramage utilise la tendance de l'œil humain à "mélanger" deux couleurs proches l'une de l'autre.

Des écrans à cristaux liquides utilisent le tramage temporel pour obtenir des effets similaires. En alternant rapidement chacune des valeurs des couleurs des pixels entre deux couleurs approximatives de la palette (connu également sous le nom de contrôle du taux d'affichage), un moniteur qui supporte nativement des couleurs de 18-bit (six bits par canaux) peut afficher une image en 24 bits true color (8 bits par canaux)[2].

Un tel tramage, pour lequel le matériel d'affichage informatique est la principale limite de la profondeur des couleurs, est habituellement employé dans les logiciels comme les navigateurs web. Puisqu'un navigateur peut afficher des images provenant d'une source externe, il peut lui être nécessaire d'effectuer un tramage sur celles ayant trop de couleurs par rapport à celles disponibles sur la palette. C'est pour les problèmes liés au tramage qu'une palette couleurs appelée web-safe color a été définie, ne permettant de sélectionner que celles qui ne soient pas tramées sur les moniteurs ne permettant d'en afficher que 256.

Toutefois, même quand le nombre total de couleurs disponibles du matériel d'affichage est suffisamment élevé pour le rendu des photos numériques en couleur comme celles de 15 et 16 bits Rouge vert bleu Hicolor offrant entre 32 768 et 65 536 couleurs, des bandes peuvent être visibles pour l'œil, en particulier dans les grandes zones de dégradé des ombres (bien qu'elles n'apparaissent pas sur le fichier de l'image d'origine). Tramé à un niveau de 32 ou 64 bits RVB, le rendu donnera une bonne approximation d'un affichage pseudo truecolor, que l'œil n'interprétera pas comme granuleux. De plus, une image affichée sur du matériel supportant le 24-bits RVB (8 bits par couleur primaire) peut être tramée pour simuler une profondeur de couleurs un peu plus grande et/ou pour minimiser la perte de teintes disponibles après une correction gamma.

Une autre utilisation utile du tramage est pour les cas dans lesquels le format graphique des fichiers est le facteur limitant. En particulier, le format GIF d'usage courant est restreint à l'utilisation de 256 couleurs ou moins dans de nombreux programme d'édition graphique. Des images dans d'autres formats de fichier, tel que le PNG, peut également avoir de telles restrictions imposées au nom de la réduction de la taille des fichiers. De telles images ont une palette couleurs fixée définissant toutes les couleurs que l'image peut utiliser. Dans ces situations, les éditeurs d'image matricielle peuvent prendre en charge le tramage des images avant de les enregistrer dans ces formats restrictifs.

Algorithmes[modifier | modifier le code]

Plusieurs algorithmes permettent de réaliser le tramage. Le plus connu et un des tout premiers, développé en 1975, est l'algorithme de Floyd-Steinberg qui utilise une diffusion de l'erreur d'un pixel à ses voisins via une matrice. Un des atouts de cet algorithme est qu'il minimise les artefacts visuels grâce à un processus d'erreur diffusion ; les algorithmes d'erreur diffusion (du type Halftoning) produisent des images plus proches de l'original que des algorithmes plus simples de tramage[3].

Les méthodes de tramage comprennent :

  • Seuillage ((en) Thresholding également appelé tramage moyen[4]) : chaque valeur de couleur de pixel est comparé à un seuil fixé. Il s'agit peut-être du plus simple algorithme de tramage existant, mais il est la cause d'une grande perte de détails et de contours[3]. La méthode d'Otsu consiste à déterminer le seuil par analyse de l'histogramme des valeurs de l'image.
  • Le tramage aléatoire (dithering, tremblottement) tenta dès 1951 de remédier aux inconvénients du seuillage. Il compare la valeur de chaque pixel à un seuil aléatoire. Bien que cette méthode ne génère pas d'artéfacts répétitifs, le bruit tend à déborder sur les détails de l'image. La méthode a un rendu analogue à la manière noire utilisée dans la gravure[3].
  • Le tramage par modèle utilisant un modèle fixé. Pour chaque pixel dans l'image la valeur du "modèle" à la position correspondante est utilisée comme seuil. Différents modèles peuvent créer des effets de tramage complètement différents.
    • Le tramage Halftone ressemble à l'impression halftone des journaux. Il s'agit d'une forme de tramage par cluster, dans lesquels les points tend à être regroupés. Cela permet de masquer les effets secondaires de pixels flous affichés sur d'ancien périphériques d'affichage.
    • Le tramage ordonné ou Bayer génère un motif de hachures. Il s'agit d'une forme de tramage dispersé. Parce que les points ne sont pas regroupés en clusters, le résultat obtenu est beaucoup moins granuleux.
(Original) Threshold Aléatoire Halftone Bayer (ordonné)
Michelangelo's David - 63 grijswaarden.png Michelangelo's David - drempel.png Michelangelo's David - ruis.png Michelangelo's David - halftoon.png Michelangelo's David - Bayer.png
  • Le tramage par erreur-diffusion diffuse les erreurs de quantification au pixels voisins.
    • Le tramage Floyd-Steinberg diffuse l'erreur uniquement aux pixels voisins. Il en résulte un tramage très fin.
    • Le tramage jarvis, Judice, and Ninke diffuse les erreurs aux pixels un peu plus éloignés. Ce tramage est plus grossier, mais génère moins d'artefacts visuels. Il est plus lent que le précédent parce qu'il distribue les erreurs jusqu'aux douzième pixels au lieu du quatrième pour le Floyd-Steinberg.
    • Le tramage Stucki est basé sur le précédent, mais est un peu plus rapide. Son résultat tend à être propre et précis.
    • Le tramage Burkes est une forme simplifiée du tramage Stuki qui est plus rapide mais moins propre.
    • Scolorq est un algorithme expérimental de quantification de couleur spatiale qui combine la quantification de couleur et le tramage pour produire une image optimale. À cause de sa nature, l'image d'exemple ci-dessous n'est pas strictement en noir et blanc, mais à deux tons de gris[5].
Floyd–Steinberg Jarvis, Judice & Ninke Stucki Burkes
Michelangelo's David - Floyd-Steinberg.png Michelangelo's David - Jarvis, Judice & Ninke.png Michelangelo's David - Stucki.png Michelangelo's David - Burkes.png
  • Tramage par erreur-diffusion (suite) :
    • Le tramage Sierra est basé sur celui de Jarvis, il est plus rapide tout en rendant des résultats similaires.
    • Le tramage Two-row Sierra est une variante du précédent par son auteur pour améliorer sa rapidité.
    • Le Filtre Lite est un algorithme créé par Sierra qui est plus simple et plus rapide que le Floyd-Steinberg, bien que donnant des résultats similaires.
    • Le tramage Atkinson ressemble au tramage Jarvis et Sierra mais est plus rapide. Une autre différence est qu'il ne diffuse pas intégralement l'erreur de quantification, mais seulement les trois-quarts. Il tend à bien préserver les détails, mais les zones très claires ou très sombres peuvent apparaître comme "soufflé".
    • Le tramage Hilbert-Peano est une variante[6] du tramage Riemersma et est utilisé par Imagemagick[7].
Sierra Two-row Sierra Filter Lite Atkinson
Michelangelo's David - Sierra.png Michelangelo's David - tweerijig Sierra.png Michelangelo's David - Sierra's Filter Lite.png Michelangelo's David - Atkinson.png

.

Notes et références[modifier | modifier le code]

  1. voir Dither (audio)
  2. (en) 6-Bit vs. 8-Bit....PVA/MVA vs. TN+Film Are Things Changing?, www.tfcentral.co.uk [lire en ligne]
  3. a, b et c (en) Lee Daniel, Boulay Paul, Morra Mike, Digital halftoning, www.efg2.com, dernier accès le 10/09/2007 [lire en ligne]
  4. (en) Aristófanes Correia Silva, Lucena Paula Salgado, Figuerola Wilfredo Blanco, Average Dithering, Visgraf Lab, Image Based Artistic Dithering, 13/12/2000 consulté le 10/09/2007 [lire en ligne]
  5. (en) scolorq : A Spatial Color Quantization Utility, www.cs.berkeley.edu, consulté le 26/04/2010 [lire en ligne]
  6. (en) Error Correction Dithering, www.imagemagick.org, consulté le 28/04/2010 [lire en ligne]
  7. Voir le lien suivant montrant le code sourde d'Imagemagick, le fichier magick/quantize.c, et le manuel d'utilisation en ligne qui mentionne le nom de la méthode de tramage : (en) command-line-options, www.imagemagick.org, consulté le 28/04/2010 [lire en ligne]

Annexes[modifier | modifier le code]

Articles connexes[modifier | modifier le code]