Combien de couleurs peut contenir un GIF ?
Jusqu'à 256 par palette. Chaque pixel stocke un index sur 8 bits (0–255) qui pointe vers une table de couleurs, et chaque entrée de cette table est une couleur RGB sur 24 bits. Ces 256 couleurs peuvent donc être n'importe lesquelles des 16,7 millions de couleurs RGB.
La taille d'une palette est une puissance de deux : 2, 4, 8, 16, 32, 64, 128 ou 256 entrées. Un GIF peut avoir une palette globale pour tout le fichier et une palette locale pour n'importe quelle image. Grâce aux palettes locales, une animation peut utiliser des couleurs différentes d'une image à l'autre, mais une image normale n'en affiche toujours que 256 au maximum. (Une astuce rare superpose plusieurs sous-images par image pour en afficher davantage, mais les fichiers deviennent énormes et certaines applications les affichent mal.)
Pourquoi les GIF ne prennent en charge que 256 couleurs
Le format GIF a été conçu en 1987, à une époque où 256 couleurs étaient considérées comme généreuses pour les écrans d'ordinateur. Il utilise des couleurs indexées sur 8 bits : chaque pixel stocke un index (0–255) qui référence une couleur dans une table de recherche (la palette). La palette contient jusqu'à 256 couleurs, chacune définie comme un triplet RGB.
L'idée clé : ces 256 couleurs peuvent être n'importe quelles 256 couleurs parmi les 16,7 millions de l'espace colorimétrique RGB complet. Un GIF d'un coucher de soleil peut utiliser 256 nuances d'orange, de rouge et de violet. Un GIF d'une forêt peut utiliser 256 nuances de vert. Le défi consiste à choisir les bonnes 256 couleurs pour votre contenu spécifique.
Pourquoi le choix de la palette est important
Une palette « web-safe » générique utilise un ensemble fixe de 216 couleurs réparties sur le spectre. Pour du contenu vidéo, cela produit des résultats médiocres car les couleurs peuvent ne pas correspondre du tout à votre vidéo.
Une palette personnalisée analyse les pixels réels de votre vidéo et sélectionne les 256 couleurs qui représentent le mieux le contenu. L'amélioration est spectaculaire — les couleurs paraissent naturelles, les dégradés sont plus lisses et les détails sont préservés.
Notre convertisseur utilise l'approche en deux passes de FFmpeg : d'abord analyser la vidéo pour générer une palette optimale (palettegen), puis appliquer cette palette pour créer le GIF (paletteuse). Cela produit des résultats nettement meilleurs que les outils en une seule passe.
Méthodes de génération de palette
Mode complet (stats_mode=full)
Analyse tous les pixels de toutes les images pour construire une palette globale unique. Idéal pour les vidéos à contenu varié et changeant comme les extraits de films, les séquences d'action et les clips musicaux où les couleurs varient d'une image à l'autre.
Mode diff (stats_mode=diff)
Ne compte que les pixels qui changent entre les images. Meilleur pour les vidéos avec des arrière-plans statiques comme les enregistrements d'écran, les présentations et les vidéos de tête parlante. Produit des fichiers plus petits car il alloue plus d'entrées de palette au contenu changeant et moins à l'arrière-plan invariant.
Mode unique (stats_mode=single)
Crée une nouvelle palette pour chaque image. Offre la meilleure qualité possible puisque chaque image obtient une palette optimisée, mais produit des fichiers plus volumineux. Idéal pour le contenu photographique où la précision des couleurs est critique.
Compromis du nombre de couleurs
| Couleurs | Qualité | Économie de taille | Idéal pour |
|---|---|---|---|
| 256 | Meilleure possible | Référence | Contenu photographique |
| 128 | À peine différente | 15–25 % | Point idéal pour la plupart des contenus |
| 64 | Léger banding | 30–45 % | Enregistrements d'écran |
| 32 | Postérisation perceptible | 45–60 % | Graphiques simples uniquement |
| 16 | Dégradation importante | 60–75 % | Logos, pixel art |
Dithering : simuler les couleurs manquantes
Le dithering utilise des motifs de couleurs disponibles pour simuler des couleurs absentes de la palette. C'est la différence entre des bandes de couleurs abruptes et des dégradés d'apparence lisse.
- Sans dithering : mappe chaque pixel à la couleur de palette la plus proche. Le plus rapide, fichiers les plus petits, mais montre un banding visible sur les dégradés. Idéal pour le contenu à couleurs plates comme les logos et le pixel art.
- Bayer (ordonné) : utilise un motif de hachures déterministe. Le motif régulier se compresse bien, ce qui en fait le meilleur choix lorsque la taille du fichier est critique. Motif légèrement visible à l'inspection rapprochée. Réduire le nombre de couleurs et alléger le dithering font partie des méthodes pour réduire la taille d'un fichier GIF.
- Floyd-Steinberg (diffusion d'erreur) : distribue l'erreur de quantification aux pixels voisins. Produit les résultats les plus naturels pour le contenu photographique. Fichiers plus volumineux à cause des motifs de pixels d'aspect aléatoire.
- Sierra2 : diffusion d'erreur améliorée avec un noyau de distribution plus large. Produit des résultats intermédiaires entre Floyd-Steinberg et Bayer en qualité comme en taille de fichier. Notre recommandation par défaut.
Recommandations par type de contenu
| Contenu | Mode de palette | Couleurs | Dithering |
|---|---|---|---|
| Enregistrement d'écran | diff | 128 | Bayer |
| Extrait de film | full | 256 | Sierra2 |
| Animation de logo | full | 64 | Aucun |
| Photographie | single | 256 | Floyd-Steinberg |
Alternatives modernes avec un meilleur support des couleurs
Si la limite de 256 couleurs du GIF est inacceptable pour votre contenu, envisagez ces alternatives :
- Animation WebP : couleur 24 bits (16,7 M de couleurs), transparence alpha complète, environ 64 % plus léger que le GIF en mode avec perte (chiffres de Google). Pris en charge par plus de 97 % des navigateurs.
- APNG : qualité PNG complète avec couleur 24 bits et alpha 8 bits. Même support navigateur que WebP. Idéal lorsque vous avez besoin de transparence avec des couleurs complètes.
- MP4/WebM : millions de couleurs, fichiers bien plus petits. Utilisez
<video autoplay loop muted playsinline>sur les sites web.
Comparez toutes les options dans notre comparaison des formats animés.
Pourquoi mon GIF change-t-il de couleurs ?
- Une seule palette pour tout le clip. Si un clip passe d'un ciel bleu à une pièce rouge, une palette unique doit couvrir les deux scènes, et chacune dispose donc de moins de couleurs exactes.
- La palette change d'une image à l'autre. Avec des palettes par image, un même objet peut être associé à des couleurs légèrement différentes à chaque image, ce qui crée un effet de scintillement.
- Le bruit de dithering se déplace. Les motifs de diffusion d'erreur changent d'une image à l'autre et scintillent sur les zones unies.
- Réenregistrer un GIF existant génère une nouvelle palette à partir de couleurs déjà réduites, si bien que chaque enregistrement dérive un peu plus.
Le convertisseur de cette page construit une seule palette pour le clip avec FFmpeg palettegen=max_colors=256:stats_mode=diff : les couleurs restent cohérentes d'une image à l'autre et privilégient les zones en mouvement. Il applique un dithering Sierra-2 et ne met à jour que les rectangles modifiés (diff_mode=rectangle).