HuffZip

Codage de Huffman · démonstration interactive

Chaque caractère mérite
sa juste longueur

Tapez un texte : HuffZip compte les caractères, construit l'arbre de Huffman et attribue les codes les plus courts aux symboles les plus fréquents. Compression sans perte, calculée en direct dans votre navigateur.

Texte source aller-retour vérifié
0 caractères · 0 symboles
ou glissez-déposez un .txt ici
Résultat
0% de taille en moins
Origine
0 b
Huffman
0 b
Longueur moyenne
0 bits/symb.
Entropie (limite)
0 bits/symb.
Poids d'origine
0 o
Poids compressé
0 o

La structure

L'arbre de Huffman

On fusionne à répétition les deux symboles les plus rares. Le chemin de la racine à une feuille est son code : à gauche on écrit 0, à droite 1. Les feuilles proches de la racine — donc les caractères fréquents — obtiennent les codes les plus courts.

à gauche = 0 à droite = 1

La correspondance

Table des codes

Aucun code n'est le préfixe d'un autre, si bien que la suite de bits se relit sans ambiguïté ni séparateur. Les symboles les plus fréquents apparaissent en premier.

Le résultat brut

Le flux binaire

Chaque caractère du texte remplacé par son code, bout à bout. C'est cette suite que l'on regroupe en octets pour l'écrire sur le disque.

Le principe

Quatre étapes

01

Compter

On relève le nombre d'occurrences de chaque caractère du texte.

02

Construire

On fusionne les deux nœuds les plus rares, encore et encore, jusqu'à un seul arbre.

03

Coder

Le chemin vers chaque feuille donne un code binaire, court pour les fréquents.

04

Empaqueter

On concatène les codes et on regroupe les bits en octets écrits sur le disque.

À propos

D'un projet C à une démo web

HuffZip est né d'un projet universitaire de 2022 : un compresseur et un décompresseur écrits en C, avec leurs propres listes chaînées et arbres binaires, sans aucune bibliothèque. Le code d'origine vit toujours dans le dépôt, sous engine/.

Cette interface reprend le même algorithme, réécrit en JavaScript pour s'exécuter dans le navigateur. Rien n'est envoyé à un serveur : tout le calcul se fait sur votre machine, et chaque compression est revérifiée par décodage pour garantir qu'elle est sans perte.

AlgorithmeHuffman (1952)
TypeSans perte
Moteur d'origineC — 2022
InterfaceJavaScript, sans dépendance
Calcul100 % côté client