Frage

Zu Ehren des Hutter-Preis , Was sind die Top-Algorithmen (und eine kurze Beschreibung der einzelnen) für Textkompression?

. Hinweis: Die Absicht dieser Frage ist eine Beschreibung von Komprimierungsalgorithmen zu erhalten, nicht von Kompressionsprogrammen

War es hilfreich?

Lösung

Die Boundary-Schub Kompressoren kombinieren Algorithmen für verrückt Ergebnisse. Gemeinsame Algorithmen sind:

  • Die Burrows-Wheeler-Transformation und hier - Shuffle-Zeichen (oder andere Bit-Blöcke) mit einem vorhersehbaren Algorithmus wiederholt Blöcke zu erhöhen, welche die Quelle leichter macht zu komprimieren. Dekomprimierung tritt als normal und das Ergebnis ist un-schlurfte mit der Rücktransformation. Hinweis: BWT ist allein nicht wirklich etwas komprimieren. Es macht einfach die Quelle leichter zu komprimieren.
  • Prediction by Partial Matching (PPM) - eine Weiterentwicklung des arithmetische Kodierung wo das Vorhersagemodell (Kontext) durch Knirschen Statistiken über die Quelle im Vergleich mit statischen Wahrscheinlichkeiten erzeugt wird. Obwohl seine Wurzeln in der arithmetischen Kodierung sind, kann das Ergebnis mit Huffman-Kodierung oder einem Wörterbuch dargestellt werden sowie arithmetische Codierung.
  • Kontext Mischen - Die arithmetische Codierung verwendet einen statischen Kontext für die Vorhersage, PPM dynamisch einen einzigen Kontext wählt, nutzt Context Mixing vielen Kontexten und wiegt ihre Ergebnisse. PAQ verwendet Kontext Mischung. Hier eine Übersicht auf höchster Ebene.
  • Dynamische Markov Compression - bezogen auf PPM nutzt aber Bit-Level-Kontexte im Vergleich Byte oder länger.
  • Zusätzlich können der Hutter Preis Teilnehmer gemeinsamen Text mit kleinen Byte Einträgen aus externen Wörterbücher ersetzen und Groß- und Kleinschreibung Text mit einem speziellen Symbol unterscheiden im Vergleich mit zwei verschiedenen Einträgen. Deshalb sind sie bei Komprimieren Text so gut sind (vor allem ASCII-Text) und nicht so wertvoll für die allgemeine Kompression.

Maximum Compression ist ein ziemlich cooler Text und allgemeine Kompression Benchmark-Website. Matt Mahoney veröffentlicht einen weiteren Benchmark . Mahoneys von besonderem Interesse sein kann, weil sie den primären Algorithmus pro Eintrag verwendet auflistet.

Andere Tipps

Es gibt immer lzip .

Alle Scherz beiseite:

  • Wo Kompatibilität ist ein Anliegen, PKZIP (DEFLATE Algorithmus) noch gewinnt.
  • bzip2 ist der beste Kompromiss zwischen Sein eine relativ breite Installationsbasis und ein ziemlich gutes Kompressionsverhältnis zu genießen, sondern erfordert einen separaten Archivierungs.
  • 7-Zip (LZMA Algorithmus) komprimiert sehr gut und ist für unter der LGPL verfügbar. Nur wenige Betriebssysteme Schiff mit integrierten Unterstützung jedoch.
  • rzip ist eine Variante von bzip2, dass meiner Meinung nach mehr Aufmerksamkeit verdient. Es könnte sein, besonders interessant für große Protokolldateien, die Langzeitarchivierung benötigen. Es erfordert auch eine separate Archivierungs.

Wenn Sie PAQ als Programm verwenden möchten, können Sie das zpaq Paket auf Debian-basierten Systemen installieren. Die Nutzung ist (siehe auch man zpaq)

zpaq c archivename.zpaq file1 file2 file3

Compression wurde auf etwa 1 / 10tel einer Zip-Datei der Größe . (1.9M vs 15M)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top