La compression de Huffman

publicité
La compression
BTS IG 1ère année
Algorithmique : la compression de Huffman
BTS IG première année - durée 2 h.
Objectifs :



comprendre le mécanisme de compression – décompression des fichiers .zip,
analyser une structure d’arbre binaire,
réaliser un algorithme mettant en œuvre un tableau à trier.
Prérequis :



Notion de représentation d’un schéma conceptuel (analyse),
La structure des tableaux (algorithmique),
La codification (architecture matérielle).
Présentation générale :
Pour diminuer la taille d’un fichier quelconque sans perdre d’information, on utilise différents
algorithmes dont l’un est dû à Huffman.
Le principe de base consiste à codifier chaque caractère non pas avec un octet, mais avec un
nombre de bits variable ; les caractères les plus fréquents bénéficieront d’un codage avec peu
de bits, alors que les moins fréquents seront codés avec beaucoup de bits. Ce codage doit bien
entendu être bijectif, si l’on veut pouvoir, après décompression récupérer le contenu du fichier
original.
Mais pourquoi des codes de longueur variable assurent-ils une compression de l’ensemble des
données ? Tout simplement parce que la fréquence d’apparition des différents caractères ne
suit pas une distribution normale.
Mécanisme :
Considérons un texte dont le nombre d’apparition des différents caractères a été calculé ; dans
l’exemple ci-dessous, il y a 7 caractères différents dans notre texte (c’est un exemple !), et
leur nombre d’apparitions est compté dans le tableau de départ.
Suivez le mécanisme de l’algorithme qui, à partir de ce tableau, génère d’autres tableaux puis
fabrique un arbre binaire qui donne enfin le code de chaque caractère.
TRAVAIL A FAIRE
1.
Analysez l’exemple fourni.
2.
Modélisez la structure arborescente (schéma entité-association). Indication : un
élément (entité) a toujours un frère, a un père (sauf la racine), et a 0 ou 2 fils.
3.
Ecrivez l’algorithme permettant d’obtenir le tableau de départ (liste ordonnée des
caractères par ordre d’apparitions). Vous utiliserez un tableau dont vous
préciserez la taille et la structure.
4.
Expliquez pourquoi cette codification est réversible (application bijective entre
caractère et code).
Jean-Philippe Pujol
La compression
BTS IG 1ère année
Jean-Philippe Pujol
Téléchargement