Codage de Huffman

Fermé
rodja Messages postés 5 Date d'inscription jeudi 28 février 2008 Statut Membre Dernière intervention 31 mai 2008 - 28 févr. 2008 à 16:45
 Humph - 28 févr. 2008 à 20:23
Bonjour, je prépare actuellement un exposé sur LE CODAGE DE HUFFMAN si quelqu'un pouvait me venir en aide !

1 réponse

Bonjour,

Le codage de Huffman désigne une manière de coder des données en fonction de leurs fréquences de répétition afin que celles-ci prennent le moins de place possible.

On prend typiquement l'exemple d'un texte. Tel qu'il est à l'état brut, chaque caractère est codé sur 8 bits. Huffman permet de detéminer sur combien de bit coder chaque caractère pour que le texte soit moins gourmand en place.

"Ceci est une phrase".

Cette phrase contient 19 caractères, soit 19 * 8 bits sur le codage classique.

Pour appliquer le codage de Huffman on s'appuie sur la fréquence de chaque caractère de la phrase.

1 a
2 c
4 e
1 h
1 i
1 n
1 p
1 r
2 s
1 t
1 u
3 espace

Le codage consiste à regrouper successivement les symboles de manières à faire de groupes dont la somme des fréquences d'apparition sont les plus proches possibles.

19 symboles, on va tenter 9 et 10 au premier tour.

a, e, c, s et a, h, i, n, p, r, t, u soit (1 + 2 + 4 + 2) et (1 + 1 + 1 + 1 + 1 + 1 + 1 + 3)

Puis on recommence dans chaque groupe afin de construire un arbre binaire. (chaque noeud à deux feuilles au maximum) Les noeuds intermédiaires sont des groupes de symboles et les feuilles, un des symboles.

Une fois l'arbre construit, pour chaque noeud, on place un 1 sur le trait vers son fils gauche et un 0 sur le trait vers son fils droit. Pour connaître le codage à attribuer à chaque symbole, on parcours l'arbre depuis la racine jusqu'au symbole voulu en écrivant les valeurs rencontrées de gauche à droite.

Dans notre exemple on redécoupera par exemple le premier lot en isolant 'e'. Son codage sera alors 1.
En redécoupant a, c et s en (a et c) et s on aura
e -> 1
a -> 111
c -> 110
s -> 10


Bref ce codage est valable pour donner une manière de coder des données qui se répètent de manière à ce qu'elle prennent le moins de place possible en attribuant à celles les plus fréquentes le codage le plus petit. Il est optimal lorsque toutes les fréquences sont des puissances de deux. (Car il n'y a pas de perte comme ici avec 9 et 10 -> déséquilibre)


Wikipédia, Codage de Huffman
0