PCX

Un article de Wikipédia, l'encyclopédie libre.

Le PCX est un format d'image numérique dont l'encodage est basé sur une forme de run-length encoding.

PCX a été développé par la société ZSoft Corporation à Marietta, en Géorgie. C'était le format de base de leur logiciel PC Paintbrush, un des logiciels d'édition d'images les plus populaires sous DOS à l'époque.

La plupart des fichiers PCX utilisent une palette de couleurs, mais le format a été étendu pour permettre l'utilisation d'images 24 bits (3 octets) et dans ce cas l'encodage est réalisé en séparant les trois composantes de couleur. Le format PCX était très populaire sur les premiers systèmes DOS et Windows, mais il se fait de plus en plus rare, car il existe de nos jours des formats permettant une compression bien meilleure, comme par exemple GIF, JPEG et PNG.

Le run-length encoding utilisé dans le format PCX permet de factoriser les pixels de couleurs seuls dans l'image si leur couleur est placée dans l'intervalle 0xC1 … 0xFF de la palette de couleur. Il est ainsi important de bien trier la palette. Il suffit en général (mais pas toujours) de mettre les couleurs les plus fréquentes aux premières positions (0x00 … 0xC0), et les moins fréquentes aux dernières positions (0xC1 … 0xFF). L'algorithme de tri de la palette consiste à compter combien de fois une couleur apparaît de façon consécutive et à assigner aux couleurs de fréquence maximale les indices 0x00 … 0xC0, et les autres aux indices 0xC1 … 0xFF. Ceci produit les meilleurs résultats.

Cet algorithme de compression est très rapide et peu exigeant en mémoire, mais n'est pas très efficace, surtout pour les images issues du monde réel.

[modifier] Exemple

  • Suite de couleur : bleu bleu bleu vert rouge rouge rouge vert
  • Association d'un index dans la palette de couleur : 0x00 0x00 0x00 0xC1 0x01 0x01 0x01 0xC1
  • Encodage : ×3 0x00 0xC1 ×3 0x01 0xC1
  • Codage final : 0x03 0x00 0xC1 0x03 0x01 0xC1

[modifier] Liens externes