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