leadership
HUFFMAN
ANTOINE Thomas
BENMEZIANE Mélina
ERHEL Mathieu
KELLER Florence
MANGIN Yann
ROLLOT Jordan
Atelier « Maths en Jeans »
Année scolaire 2007-2008
Lycée Louis Lapicque - Épinal
Le codage de Huffman est un processus qui permet de compresser des données informatiques afin de libérer de la place dans la mémoire d'un ordinateur. Or tout fichier informatique (qu'il s'agisse d'un fichier texte, d'une image ou d'une musique) est formé d'une suite de caractères. Chacun de ces caractères étant lui-même codé par une suite de 0 et de 1. L'idée du codage de Huffman est de repérer les caractères les plus fréquents et de leur attribuer des codes courts (c'est-à-dire nécessitant moins de 0 et de 1) alors que les caractères les moins fréquents auront des codes longs. Pour déterminer le code de chaque caractère on utilise un arbre binaire. Cet arbre est également utilisé pour le décodage.
Nous avons aussi fait des recherches sur un autre procédé appelé transformation de Burrows Wheeler. Pour cela il faut construire deux tableaux (une permutation permet de passer de l'un à l'autre). On peut alors procéder à des regroupements de lettres de façon à transformer le texte initial. L'application du codage de
Huffman sur ce texte transformé permet alors (en général) une compression encore meilleure.
Enfin, nous avons essayé de mettre en œuvre le codage de Huffman en rédigeant un programme en langage
C permettant de construire l'arbre binaire nécessaire au codage du fichier. Si notre programme ne fournit pas le codage final, il permet tout de même de connaître la taille du codage final et de la comparer avec la taille du codage initial.
2
Table des matières
Introduction......................................................................................................................................................5
1 Exemple de codage de