Exemple de compression d'image
Exemple : Image bitmap
Pour une image bitmap, le codage RGB Windows (24 bits) sert de référence puisqu'elle code l'image sans la compresser. Sa structure est en gros la suivante : En-tête / Palette / Suite de pixels. Une première compression, avec perte, consiste à réduire le nombre de bits alloués à chaque pixel. A la place des 16 777 216 couleurs (24 bits par pixel, c'est-à-dire 3 octets par pixel pour indiquer ses intensités en rouge, vert et bleu) on a ainsi :
256 couleurs (8 bits par pixel, c'est-à-dire un octet par pixel)
16 couleurs (4 bits/pixel)
monochrome (1 bit par pixel)
Ci dessus, deux images d'un papillon, dans un carré de 128 pixels de côté. La photo de gauche est en 24 bits/pixel, tandis que celle de droite est en 8bits/pixel (256 couleurs).
La place mémoire tombe dans cet exemple de 49 208 octets à 17 642 octets, soit une compression de près de 65%. La détérioration de la qualité n'est pas forcément perceptible à l’œil.
Complément : Principe de la Compression RLE
Considérons un écran de texte noir sur fond blanc : il est constitué de longues séquences de pixels blancs pour le fond et de courtes séquences de pixels noirs pour le texte.
Représentons une ligne d'un tel écran, avec B (Black) pour les pixels noirs et w (White) pour les pixels blancs :
wwwwwwwwwwwwBwwwwwwwwwwwwwwBBBwwwwwwwwwwwwwwwwwwwwwwwBwwwwwwwwwww
Le codage RLE consiste à indiquer pour chaque suite de pixels d'une même couleur le nombre de pixels de cette séquence.
On obtient : 12w1B14w3B23w1B11w
Le résultat comporte donc moins de caractères, mais ce n'est pas toujours vrai.
Ainsi, une alternance de blanc et de noir wBwBwBwBwB donne : 1w1B1w1B1w1B1w1B1w1B ce qui est DEUX FOIS PLUS LONG !
La compression RLE ne donne donc pas toujours de bons résultats :
la taille d'un fichier peut légèrement augmenter ! (si l'image ne possède pas beaucoup de pixels consécutifs identiques)
la taille peut en revanche dans certains cas être divisée par 2