You are on page 1of 2

CODES ET CODAGE DE HUFFMAN

Un code est un ensemble de mots E sur un alphabet (typiquement {0, 1}) tel quun mot quelconque u peut etre d ecompos e dune seule fa con au plus. Un code est pr exe (respectivement suxe ) si aucun mot de E nest pr exe (resp. suxe) dun autre, ce qui fait quon peut trouver la s eparation en lisant simplement de gauche ` a droite (resp. de droite ` a gauche). Exercice 1. Codes. Parmi les ensembles suivants sur {0, 1}, lesquels sont des codes, des codes pr exes, des codes suxes? Pour ceux qui sont des codes, permettent-ils d ecrire tous les mots? (1) E1 = {0, 10} (2) E2 = {0, 11, 100, 101} (3) E3 = {001, 100, 101} (4) E4 = {01, 10, 101} (5) E5 = {0, 011, 10} (6) E6 = {0n 1 | n N} Le principe du codage de Human ` a deux lettres est de r eduire la taille n ecessaire pour enregistrer (ou transmettre) un mot en donnant ` a chaque lettre un nouveau code. Lalgorithme est le suivant : on dispose de chaque lettre munie de son nombre doccurrences dans le mot. On consid` ere une lettre comme un arbre (constitu e dune seule feuille), et on les range dans une liste dans par ordre croissant doccurrences. tant que la liste contient plus dun arbre : fusionner les premiers deux arbres, leur associer la somme des occurrences, ranger ce nouvel arbre dans la liste. On obtient nalement un arbre binaire : on lit ensuite le codage de chaque lettre en prenant 0 pour gauche et 1 pour droite. Exemple : 40 lettre code lettre occurrences a ,23 a 1 17 a 23 b 011 b 5 c,8 9 c 00 c 8 010 d d 4 d,4 b,5 Exercice 2. Encodage. . . On consid` ere le message suivant : m = tacuitracriatuactaura (1) Quelle sera la taille du codage du message en code ASCII? (2) Quelle sera la taille minimale du codage du message en code ` a longueur xe? (3) Appliquez le proc ed e de Human et proposez un code pour repr esenter le message. Ecrivez le codage associ e au message. Quelle est sa taille? (4) Montrez quon peut obtenir plusieurs codages di erents mais que la longueur du message une fois cod e reste la m eme.

Exercice 3. . . . d ecodage. On consid` ere le codage de Human suivant : a1 b 011 c 000 r 010 t 001 (1) D ecodez le message m = 011101000110111000. (2) On suppose quune erreur a et e commise en transmettant m et que le 4eme bit a et e transform e en 0. Quel devient le nouveau d ecodage du message? Exercice 4. Avec des probabilit es. On consid` ere une source qui emet continument des 0 avec une probabilit e p0 = 1 4 et des 1 avec 3 une probabilit e p1 = 4 . On d esire utiliser la m ethode de Human pour compresser linformation re cue. Pour cela on regroupe par blocs de 2 bits 00, 01, 10 et 11. On calcule la probabilit e que chaque bloc apparaisse et on applique la m ethode de Human. (1) Quel est le taux moyen de compression (taille moyenne du message compress e/bit de la source)? (2) On regroupe maintenant les bits 3 par 3. Quel est le taux moyen de compression? Exercice 5. Le mot des premiers. On rappelle que les nombres premiers plus petits que 100 sont : 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 et 97. On considere le mot u, de longueur 100, sur lalphabet binaire B = {0, 1} dont les lettres sont u1 u2 u100 , avec ui = 1 si i est un nombre premier et 0 sinon (il nest pas n ecessaire d ecrire le mot en entier pour r epondre aux questions suivantes). On d ecoupe le mot en blocs de taille 2, de la forme u2n1 u2n , pour n 1. (1) Indiquez le nombre doccurrences de chacun de ces blocs dans u (attention au d ebut du mot avec la particularit e de 2). (2) Construisez un arbre de Human sur les blocs de longueur 2. (3) Quelle sera la taille du message une fois compress e par la m ethode dHuman?

You might also like