En gros on n'utilise plus un code de longueur fixe (8 bits) mais un code à longueur variable liées aux probabilités d'utilisation des informations. Par exemple, un caractère très fréquent sera codé sur 3 bits (au lieu de 8) tandis qu'un caractère très rare pourra être codé sur 14 bits... Mais globalement le nombre de bits utilisés sera inférieur.
Cette méthode est très efficace sur des fichiers comportant peu de caractères (fichiers textes). Par contre elle est très mauvaise sur certains fichiers comportant tous les caractères à des fréquences voisines (fichiers wav et bmp entre autres)... C'est pourquoi j'ai rajouté une fonctionnalité "variation" qui permet d'obtenir une bonne compression sur les fichiers de ce type.
Voici un résumé des résultats selon les types de
fichiers, comparés à la compression LZW proposée par
ZIP (0% est un taux très mauvais, 90% est un excellent taux de compression)
:
|
|
|
|
|
|
|
|
|
|
|
|
Téléchargez Huffman ! |