Simulateur de compression de données en ligne
Explorez les codes Huffman, comparez les bits UTF-8 et la charge utile, puis copiez les résultats. Démonstration sans fichier d’archive.
Commencer
Comprendre le résultat
Le simulateur compte les points de code Unicode et construit un arbre Huffman binaire en réunissant les deux nœuds les moins fréquents. Un symbole distinct unique reçoit le code 0. Une saisie exactement identique donne ici les mêmes codes. Avec des fréquences égales, une autre règle de départage peut donner d’autres codes valides ; comparez la longueur pondérée de la charge utile.
Exemples vérifiables
ABBC donne B=0, A=10 et C=11 : 2×1 + 1×2 + 1×2 = 6 bits de charge utile, contre 32 bits UTF-8. AAAA donne 32 et 4 bits ; 你好 donne 48 et 2 bits ; les caractères réels 😀😀 donnent 64 et 2 bits.
Saisie et affichage
La limite est de 100 000 unités de code UTF-16 JavaScript, et non des octets UTF-8 ou des caractères visibles. Beaucoup d’emojis utilisent deux unités ; une séquence visible peut contenir plusieurs points de code. Le texte vide est refusé, mais les blancs sont des données valides. JSON affiche un saut de ligne comme \n, une tabulation comme \t et un espace ordinaire entre guillemets : " ". Cette notation ne modifie pas le symbole saisi.
Limites de la démonstration
Les bits d’origine valent la longueur UTF-8 en octets multipliée par huit. La charge utile somme la fréquence de chaque symbole multipliée par la longueur de son code. Elle exclut table des codes, arbre, en-têtes, remplissage et conteneur : ce n’est ni une taille de fichier compressé ni une économie garantie. Aucun fichier d’archive, binaire compressé téléchargeable ou décompresseur n’est produit. Ce n’est pas du chiffrement. Le calcul reste dans le navigateur ; beaucoup de symboles distincts peuvent donner une longue table.
Le traitement s’effectue localement dans votre navigateur.