Datenkomprimierungs-Simulator
Huffman-Codes für Text untersuchen, UTF-8- und Nutzdatenbits vergleichen und Ergebnisse kopieren. Lehrbeispiel ohne Archivdatei.
Jetzt verwenden
Bedeutung der Ergebnisse
Der Simulator zählt Unicode-Codepunkte und bildet einen binären Huffman-Baum durch Zusammenführen der zwei Knoten mit der geringsten Häufigkeit. Ein einzelnes unterschiedliches Symbol erhält Code 0. Dieselbe Eingabe erzeugt hier dieselben Codes. Bei gleichen Häufigkeiten kann eine andere Reihenfolge der Gleichstandsauflösung andere gültige Codes ergeben; entscheidend ist die gewichtete Nutzdatenlänge.
Nachprüfbare Beispiele
ABBC ergibt B=0, A=10 und C=11: 2×1 + 1×2 + 1×2 = 6 Nutzdatenbits gegenüber 32 UTF-8-Bits. AAAA ergibt 32 ursprüngliche und 4 Nutzdatenbits. 你好 ergibt 48 und 2 Bit, die tatsächlichen Zeichen 😀😀 ergeben 64 und 2 Bit.
Eingabe und Darstellung
Das Limit beträgt 100.000 JavaScript-UTF-16-Codeeinheiten, nicht UTF-8-Bytes oder sichtbare Zeichen. Viele Emojis verwenden zwei Einheiten; eine sichtbare Emoji-Sequenz kann mehrere Codepunkte enthalten. Leerer Text wird abgewiesen, Leerraum ist jedoch gültige Eingabe. JSON zeigt einen Zeilenumbruch als \n und einen Tabulator als \t; ein normales Leerzeichen steht als " " in Anführungszeichen. Die Darstellung verändert das Eingabesymbol nicht.
Grenzen der Demonstration
Die ursprüngliche Bitzahl ist UTF-8-Bytelänge mal acht. Die Nutzdatenbitzahl summiert Häufigkeit mal Codelänge für jedes Symbol. Codetabelle, Baum, Header, Auffüllung und Containerkosten fehlen. Das Ergebnis ist weder eine komprimierte Dateigröße noch eine garantierte praktische Ersparnis. Es entstehen kein Archiv, komprimierter Binärdownload oder Dekompressor; es ist keine Verschlüsselung. Die Berechnung läuft im Browser. Viele unterschiedliche Symbole erzeugen lange Tabellen.
Die Verarbeitung erfolgt lokal im Browser.