Palette en informatique

En infographie, une palette est un ensemble fini de couleurs. Les palettes peuvent être optimisées pour améliorer la précision de l’image en présence de contraintes logicielles ou matérielles.

Terminologie
Une palette de couleurs adaptative qui s’étend de 2 couleurs à 256 couleurs, montrant comment l’image change (cliquez pour voir l’animation).
Selon le contexte, la palette de termes et les termes associés tels que la palette Web et la palette RVB peuvent avoir des significations quelque peu différentes. Voici quelques-unes des significations les plus utilisées pour la palette en infographie:

Le nombre total de couleurs qu’un système donné est capable de générer ou de gérer (bien que, en raison des limitations de la mémoire vidéo, il puisse ne pas être capable de les afficher toutes simultanément):
palette complète: Par exemple, les affichages Highcolor sont censés avoir une palette RVB de 16 bits.

La sélection limitée de couleurs pouvant être affichées simultanément:
Sur tout l’écran:
sélection d’une palette fixe: une carte d’affichage donnée peut offrir une sélection de couleur fixe lorsque ses registres matériels sont correctement définis. Par exemple, l’adaptateur graphique couleur (CGA), dans l’un des modes graphiques standard, peut être configuré pour afficher la palette n ° 1 ou la palette n ° 2: deux combinaisons de trois couleurs fixes et une couleur d’arrière-plan définie par l’utilisateur chaque.
couleurs sélectionnées ou couleurs choisies: Dans ce cas, la sélection de couleur, généralement à partir d’une palette complète explicitement disponible plus large, est toujours choisie par logiciel, à la fois par l’utilisateur ou par un programme. Par exemple, l’adaptateur d’affichage VGA standard est censé fournir une palette de 256 couleurs simultanées à partir d’un total de 262 144 couleurs différentes.
Palette par défaut ou palette système: Les couleurs sélectionnées ont été officiellement standardisées par un organisme ou une société. Par exemple, les couleurs Web-safe bien connues à utiliser avec les navigateurs Internet ou la palette par défaut de Microsoft Windows.

Sur une image individuelle:
carte de couleurs ou table de couleurs: La sélection de couleur limitée est stockée dans le fichier image couleur indexé donné. Par exemple, GIF.
Palette d’images ou couleurs d’image: La sélection de couleur limitée est supposée être la liste complète des couleurs de l’image numérique donnée, même si le fichier d’image n’emploie pas d’encodage de pixel couleur indexé.
Le matériel sous-jacent qui peut être utilisé pour contenir ces couleurs simultanées:
palette matérielle ou CLUT (Colour Look-Up Table): pour les afficher, les valeurs des couleurs sélectionnées doivent être chargées dans les registres matériels couleur du sous-système d’affichage. Par exemple, les registres matériels du Commodore Amiga sont connus à la fois comme leur palette de couleurs et leur CLUT, selon les sources.

Palettes GUI
Un arrangement d’un ensemble limité de couleurs d’utilisateur ou de système qui peuvent être choisies. Dans de tels cas, la palette de couleurs d’expression ou la palette de couleurs de l’utilisateur sont des équivalents courants. Cet usage ressemble à la palette d’un vrai artiste.
Une palette d’outils, une zone rectangulaire, appelée une fenêtre de palette, de l’écran de l’application avec des boutons, des icônes ou d’autres commandes GUI disponibles pour un accès rapide aux commandes ou aux symboles; Si l’utilisateur est capable de le placer n’importe où en le déplaçant à l’aide d’une souris ou d’un périphérique de pointage similaire, il s’agit d’une palette flottante. Une palette pour choisir les couleurs peut également être une palette flottante.

Palette maître
Une application peut, à son tour, afficher plusieurs miniatures d’images dans une mosaïque à l’écran. Il est évident que le programme ne peut pas charger toutes les palettes adaptatives de chaque vignette d’image affichée en même temps dans les registres de couleurs du matériel. Une solution consiste à utiliser une palette principale commune unique ou une palette universelle, qui peut être utilisée pour afficher avec une précision raisonnable n’importe quel type d’image.

Ceci est fait en sélectionnant les couleurs de manière à ce que la palette maîtresse comprenne un espace colorimétrique RVB complet « en miniature », limitant les niveaux possibles que peuvent avoir les composantes rouge, verte et bleue. Ce type d’arrangement est parfois appelé une palette uniforme. L’œil humain normal a une sensibilité aux trois couleurs primaires à différents degrés: le plus au vert, le moins au bleu. Ainsi, les arrangements RVB peuvent en profiter en affectant plus de niveaux pour la composante verte et moins pour le bleu.

Une palette maîtresse construite de cette manière peut être remplie avec jusqu’à 8R × 8G × 4B = 256 couleurs, mais cela ne laisse pas d’espace dans la palette pour les couleurs réservées, indices de couleur que le programme pourrait utiliser à des fins spéciales. Il est plus général d’utiliser seulement 6R × 6G × 6B = 216 (comme dans le cas des couleurs Web), 6R × 8G × 5B = 240 ou 6R × 7G × 6B = 252, ce qui laisse de la place pour certaines couleurs réservées.

Ensuite, lors du chargement de la mosaïque de vignettes d’images (ou d’autres images hétérogènes), le programme mappe simplement chaque pixel couleur indexé original à son plus proche dans la palette principale (après avoir jeté cela dans les registres de couleurs du matériel) et écrit le résultat dans tampon vidéo. Voici un exemple d’une mosaïque simple des quatre miniatures d’image utilisant une palette maîtresse de 240 couleurs arrangées RVB plus 16 nuances intermédiaires supplémentaires de gris; toutes les images sont assemblées sans perte significative de précision des couleurs:

Palette adaptative
Lors de l’utilisation de techniques de couleurs indexées, les images de la vie réelle sont représentées avec une meilleure fidélité à la couleur originale en utilisant des palettes adaptatives (parfois orthographiées), dans lesquelles les couleurs sont sélectionnées ou quantifiées par un algorithme directement à partir de l’image originale. couleurs les plus fréquentes). De cette façon, et avec un tramage supplémentaire, l’image couleur indexée peut presque correspondre à l’original.

Mais cela crée une forte dépendance entre les pixels de l’image et sa palette adaptative. En supposant un affichage graphique en profondeur de 8 bits limité, il est nécessaire de charger la palette adaptative d’une image donnée dans les registres matériels de couleur avant de charger la surface de l’image elle-même dans le tampon de trame. Pour afficher différentes images avec différentes palettes adaptatives, elles doivent être chargées une par une, comme dans un diaporama. Voici des exemples de quatre images couleur indexées différentes avec des patchs de couleur pour montrer leurs palettes adaptatives respectives (et largement incompatibles):

Transparence dans les palettes
Une entrée de palette unique dans une image couleur indexée peut être désignée comme une couleur transparente, afin de réaliser une superposition vidéo simple: superposition d’une image donnée sur un fond de telle sorte qu’une partie de l’image chevauchée masque l’arrière-plan et . La superposition de titres de films / TV et de crédits est une application typique de la superposition vidéo.

Dans l’image à superposer (la couleur indexée est supposée), une entrée de palette donnée joue le rôle de la couleur transparente. Habituellement, le numéro d’index 0, mais d’autres peuvent être choisis si la superposition est effectuée par un logiciel. Au moment du design, l’entrée de la palette de couleurs transparente est assignée à une couleur arbitraire (généralement distinctive). Dans l’exemple ci-dessous, un pointeur à flèche typique pour un périphérique de pointage est conçu sur un fond orange, donc ici les zones orange désignent les zones transparentes (à gauche). Au moment de l’exécution, l’image superposée est placée n’importe où sur l’image d’arrière-plan et est mélangée de telle manière que si l’index de couleur de pixel est la couleur transparente, le pixel d’arrière-plan est conservé, sinon il est remplacé.

Cette technique est utilisée pour les pointeurs, dans les jeux vidéo 2-D typiques pour les personnages, les puces, etc. (les sprites), le titrage vidéo et d’autres applications de mélange d’images.

Certains ordinateurs anciens, comme Commodore 64, MSX et Amiga, prennent en charge les sprites et / ou la superposition vidéo en plein écran par matériel. Dans ces cas, le numéro d’entrée de la palette transparente est défini par le matériel et était le numéro 0.

Certains formats de fichiers d’image couleur indexés comme GIF et PNG prennent en charge de façon native la désignation d’une entrée de palette donnée comme transparente, librement sélectionnable parmi l’une quelconque des entrées de palette utilisées pour une image donnée.
Le format de fichier BMP réserve de l’espace pour les valeurs de canal Alpha dans sa table de couleurs, mais actuellement cet espace n’est pas utilisé pour contenir des données de translucidité et est mis à zéro.

En ce qui concerne les images truecolor, certains équipements de mixage vidéo peuvent utiliser le triplet RGB (0,0,0) (pas de rouge, pas de vert, pas de bleu: la nuance la plus sombre de noir, parfois appelée super noir dans ce contexte) comme couleur transparente . Au moment du design, il est remplacé par ce qu’on appelle le rose magique. De la même manière, un logiciel de publication assistée par ordinateur peut supposer un triplet RVB blanc pur (255,255,255) à partir de photos et illustrations à exclure afin de laisser les paragraphes de texte envahir le cadre de l’image pour l’arrangement irrégulier des sujets.

Les programmes de peinture 2D, tels que Microsoft Paint et Deluxe Paint, peuvent utiliser la couleur d’arrière-plan désignée par l’utilisateur comme couleur transparente lors des opérations de découpe, de copie et de collage.

Bien qu’ils soient liés (du fait qu’ils sont utilisés aux mêmes fins), les masques de bits d’image et les canaux alpha sont des techniques qui n’impliquent pas l’utilisation de palettes ni de couleurs transparentes, mais des couches de données binaires supplémentaires sont ajoutées hors image.

Palettes de logiciels

Microsoft Windows
Les applications Microsoft Windows gèrent la palette des périphériques d’affichage couleur indexés 4 ou 8 bits via des fonctions spécialisées de l’API Win32 (pour les modes d’affichage Highcolor et Truecolor, ces fonctionnalités ne possèdent aucune fonctionnalité intéressante). Ces API traitent de la palette système et de nombreuses palettes logiques.

La palette système est une copie dans la RAM des registres matériels de l’affichage couleur, principalement une palette physique, et il s’agit d’une ressource commune unique et partagée du système. Au démarrage, il est chargé avec la palette système par défaut (principalement une palette principale qui fonctionne assez bien avec la plupart des programmes).

Lorsqu’une application donnée a l’intention de produire des graphiques et / ou des images colorisées, elle peut définir sa propre palette logique, c’est-à-dire sa propre sélection de couleurs privée (jusqu’à 256). On suppose que chaque élément graphique que l’application essaie de montrer à l’écran utilise les couleurs de sa palette logique. Chaque programme peut gérer librement une ou plusieurs palettes logiques sans interférence supplémentaire anticipée (à l’avance).

Avant que la sortie soit effectivement faite, le programme doit réaliser sa palette logique: le système essaie alors de faire correspondre les couleurs logiques avec les couleurs physiques. Si une couleur prévue est déjà présente dans la palette système, le système mappe à la fois les index logiques et les index de la palette système (en raison de leur coïncidence rarement). Si la couleur souhaitée n’est pas encore présente, le système applique un algorithme interne pour ignorer la couleur la moins utilisée dans la palette système (généralement utilisée par une autre fenêtre en arrière-plan) et la remplace par la nouvelle couleur. En raison de l’espace limité pour les couleurs dans la palette système, l’algorithme essaie également de remapper des couleurs similaires ensemble, et toujours en évitant les couleurs redondantes.

Le résultat final dépend du nombre d’applications qui fonctionnent avec les couleurs de l’écran. La fenêtre de premier plan est toujours privilégiée, de sorte que les fenêtres en arrière-plan peuvent se comporter de différentes façons: de se corrompre pour se redessiner rapidement. Lorsque la palette du système change, le système déclenche un événement spécifique pour informer chaque application. Une fois reçue, une fenêtre peut rapidement se redessiner en utilisant une seule fonction de l’API Win32. Mais cela doit être fait explicitement dans le code du programme; d’où le fait que de nombreux programmes manquent de gérer cet événement, et leurs fenêtres deviennent corrompues dans cette situation.

Une application peut forcer le chargement de la palette système avec des couleurs spécifiques et même dans un ordre spécifique, en trichant le système en indiquant qu’il s’agit d’entrées de couleur destinées à l’animation (changements de couleurs rapides des couleurs dans la palette physique). Le système ne peut donc pas supposer que chaque entrée de palette matérielle est libre pour la gestion des couleurs de la palette, et ces entrées sont exclues de son algorithme. Le résultat final dépend des compétences du programme de forçage des couleurs et du comportement des autres programmes (la durée est la même que dans le cas normal), et celle du système d’exploitation en soi.