Kompressionslabor

LZ77, Huffman und Lauflängenkodierung vergleichen, Schritte untersuchen und Ergebnisse dekodieren.

Über dieses Tool

Vergleichen Sie, wie wiederholte Teilzeichenfolgen, Symbolhäufigkeiten und lange Wiederholungen die verlustfreie Kompression beeinflussen. Wählen Sie ein Beispiel oder geben Sie Text ein und klicken Sie auf Vergleichen. Änderungen verwerfen das alte Ergebnis; die Tabs untersuchen dieselbe berechnete Eingabe.

Der Vergleich verwendet die UTF-8-Eingabegröße und vereinfachte Bit-Schätzungen. Unter 100 % bedeutet kleiner, über 100 % größer. Huffman enthält das Codebuch; kurze Eingaben können trotz kleiner Nutzdaten wachsen. Dies sind Lehrformate, keine ZIP-, gzip- oder DEFLATE-Ausgaben.

LZ77 sucht in den vorigen 32 Unicode-Symbolen und betrachtet höchstens 16 voraus. Treffer ab drei Symbolen werden als Abstand/Länge/Folgesymbol gespeichert; überlappende Kopien sind erlaubt. Offsets beginnen bei null. Literale kosten ein Flag-Bit plus UTF-8-Bytes; Treffer kosten elf Steuerbits plus ein etwaiges Folgesymbol.

Huffman verbindet jeweils die zwei seltensten Knoten. Die Kanten 0 und 1 bilden die angezeigten präfixfreien Codes. Ein einziges Symbol erhält Code 0. Die Schätzung enthält 32 Bit für die Codebuchgröße und pro Symbol UTF-8-Bytes plus 16 Bit Codelänge. Daraus können kanonische Codes rekonstruiert werden; der gezeigte Baum kann andere Codewörter derselben Länge verwenden. Dateirahmen und Byte-Auffüllung fehlen.

RLE fasst aufeinanderfolgende gleiche Symbole zusammen und schätzt 16 Bit pro Anzahl plus das UTF-8-Symbol. ABABABA ergibt bei LZ77 A, B und eine Kopie von fünf Symbolen mit Abstand zwei: 29 geschätzte statt 56 Eingabe-Bit. Seine sieben RLE-Blöcke kosten 168 Bit. Dekodierter Text zeigt die tatsächliche Rekonstruktion.

Zulässig sind höchstens 1024 Unicode-Codepunkte und 64 unterschiedliche Symbole. Kombinierende Zeichen zählen einzeln, nicht als gemeinsames Schriftzeichen. ⎵ steht für Leerzeichen, \n für Zeilenumbruch und \t für Tab; andere Steuerzeichen erscheinen als U+. Tabellen und Baum scrollen lokal. Neue oder geänderte Entwürfe werden erst durch Vergleichen oder Strg/Meta+Enter analysiert. Sitzungen lassen sich vollständig herunterladen und importieren; übergroße Entwürfe bleiben in der laufenden Sitzung, ohne die bisherige automatische Speicherung zu überschreiben. Kein Text wird an einen Server gesendet. LZ77 hat ein festes Suchfenster; Huffman verwendet für das kleine Alphabet eine sortierte Liste.

Nur Eingabewerte bleiben in diesem Browser erhalten. Berechnete Ergebnisse und Versuchsverläufe werden nicht gespeichert.