Principes
La compression, par définition, consiste à réduire la taille de codage des informations présentes dans un flux (un fichier par exemple). Pour y parvenir, le codage de Huffman traite chaque caractère arrivant sur son entrée ainsi :
- si le caractère n’a jamais été rencontré, il est renvoyé sur la sortie.
- si une précédente occurence du caractère a déjà été lue, on inscrit sur la sortie un identifiant permettant de le retrouver (cf. figure 1).
Si la taille de l’identifiant du caractère est plus petit qu’un octet, on gagne quelques bits à chaque fois.
Figure 1 : Schéma de principe
Dans le cas d’un codage sur 8 bits ( sizeof( char ) = 8 ) : un fichier texte par exemple), on gagne sizeof( char ) - sizeof( id( A ) ) bits à chaque nouvelle réception du caractère A.