Logo EMF – École des Métiers Fribourg

Module 114 - la compression Huffman

1 Texte à compresser

Jusqu'à 32 caractères (lettres, espaces et chiffres). Exemple : BANANE, ABRACADABRA.

2 Contrôle de l'animation

Clavier : Espace lecture/pause · ← / → étapes · F11 plein écran

3 Vitesse

1100 ms / étape

4 Texte et fréquences

Chaque caractère reçoit une fréquence : son nombre d'apparitions dans le texte.

5 Construction animée de l'arbre

Les nœuds se déplacent et se regroupent directement dans l’arbre après chaque addition. Utilisez « Suivant » pour observer chaque fusion.
Jaune : deux nœuds fusionnés0 : branche gauche1 : branche droite

6 Explication de l'étape

7 Table des codes binaires

CaractèreFréquenceCode Huffman
Les codes sont attribués en parcourant l'arbre : gauche = 0, droite = 1. Aucun code n'est préfixe d'un autre.

8 Résultat binaire

—

9 Comparaison pédagogique

—Avant (bits)
—Après (bits)
—Gain
Hypothèse : 8 bits par caractère avant compression. Le coût de stockage/transmission de l'arbre n'est pas inclus.

10 Algorithme Python

Implémentation illustrative avec heapq. En cas d'égalité, un ordre stable est utilisé.

11 À vous de jouer !

Avec le texte BANANE, combien de bits utilise le texte compressé (sans compter l'arbre) ?
Astuce : comptez les fréquences puis additionnez fréquence × longueur du code.