Höchste Komprimierung für Dateien (für Webtransfer)?

14

Ich habe einige stark komprimierte Dateien gesehen, z. B. 700 MB Daten, die auf 30-50 MB komprimiert wurden.

Aber wie bekommt man solche komprimierten Dateien? Ich habe versucht, Software wie WinRAR und 7Zip zu verwenden, aber noch nie eine so hohe Komprimierung erzielt.

Mit welchen Techniken / Software können Sie Dateien so gut komprimieren?

(PS Ich benutze Windows XP)

rzlines
quelle
Gute Idee ... aber woher bekommt man solche Dateien überhaupt?
Robinicks
3
Ich habe gesehen, dass 7zip Server-Protokolldateien (hauptsächlich Text) auf ungefähr 1% ihrer ursprünglichen Größe komprimiert.
Umber Ferrule
2
Öffnen Sie den Editor. Tippe 1 Milliarde mal "A". Speichern und dann komprimieren. BEEINDRUCKEND! Erstellen Sie eine App, die 1 Milliarde (echte) Zufallszahlen in eine Datei schreibt. Komprimiere das. HUH?
Igrimpe
igrimpe: Viele Komprimierungsalgorithmen indexieren Muster. Eine Milliarde Einsen ist eine Milliarde Mal. Sie können dies auf [A] {1, 1000000000} komprimieren. Wenn Sie eine Milliarde Zufallszahlen haben, wird es schwierig, einen Musterabgleich durchzuführen, da jede aufeinanderfolgende Zahl in einer bestimmten Teilmenge die Wahrscheinlichkeit einer übereinstimmenden Teilmenge exponentiell verringert.
AaronF

Antworten:

11

Wenn die zum Komprimieren der Daten erforderliche Zeit kein Problem darstellt, können Sie die komprimierte Größe optimieren, indem Sie mehrere verschiedene Tools zusammen verwenden.

Komprimieren Sie die Daten mehrmals mit verschiedenen Tools wie 7zip, winrar (für zip) und bjwflate.

(Beachten Sie, dass dies nicht bedeutet, die ZIP-Datei immer wieder zu komprimieren, sondern eine Reihe alternativer ZIP-Dateien mit verschiedenen Tools zu erstellen.)

Führen Sie als Nächstes deflopt für jedes Archiv aus, um jedes Archiv ein wenig zu verkleinern.

Führen Sie schließlich zipmix für die Archivsammlung aus. Da verschiedene Zip-Tools für verschiedene Dateien besser geeignet sind, wählt zipmix die beste komprimierte Version jeder Datei aus jedem der Archive aus und erzeugt eine Ausgabe, die kleiner ist als die, die jedes der Zip-Tools einzeln hätte erzeugen können.

Sie sollten jedoch beachten, dass dies garantiert keine magischen Wirkungen auf Ihre Dateien hat. Bestimmte Datentypen wie JPEGs und MP3s lassen sich einfach nicht gut komprimieren. Diese Dateien sind bereits intern komprimiert.

izb
quelle
4
JPEGs und MP3s werden nicht komprimiert. Sie werden komprimiert, aber nicht komprimiert.
KovBal
Dies ist ein unglaublich schlechter Ratschlag. Der Versuch, mehrere Komprimierungsalgorithmen nacheinander zu verwenden, ist eine sehr schlechte Idee. Jeder Algorithmus erstellt eine komprimierte Datei + Overhead. Wenn Sie also mehrere verwenden, fügen Sie tatsächlich Daten zu den Daten hinzu , die Sie komprimieren möchten. Je tiefer Sie gehen, desto mehr Sand fließt in den Sand Sie. Es ist weitaus besser, einen einzigen guten Algorithmus bei maximalen Komprimierungseinstellungen zu verwenden.
Tacroy
Ich glaube, Sie haben ein Missverständnis. Dieselben Daten werden nicht wiederholt neu komprimiert. Vielmehr wählen Sie einfach den besten Einzelalgorithmus pro Datei und nicht pro Archiv.
izb
6
Die Daten mehrmals zu komprimieren ist ziemlich irreführend.
ta.speot.is
12

Dies hängt ausschließlich von den zu komprimierenden Daten ab.

Text komprimiert sehr gut, Binärformate nicht so gut und komprimierte Daten (mp3, jpg, mpeg) überhaupt nicht.

Hier ist eine gute Komprimierungsvergleichstabelle von Wikipedia.

Nifle
quelle
Mir ist bewusst, dass die Komprimierung von der Art der Daten abhängt. Gibt es jedoch spezielle Techniken, mit denen Sie Dateien weiter komprimieren können?
Rzlines
3
Sobald Sie etwas komprimiert haben, ist es normalerweise unmöglich, es messbar kleiner zu machen. Sie müssen nur die geeignete Komprimierungsmethode für Ihre Daten auswählen.
Nifle
Text kann problemlos um bis zu 90% komprimiert werden.
Georg Schölly,
@ GeorgSchölly: Das ist hervorragend. Da ich beliebige Daten in Text konvertieren kann, konvertiere ich z. B. jedes Binärbyte in zwei hexadezimale Ziffern, die als Text angezeigt werden. Das würde meine Größe verdoppeln, aber wenn Sie dann 90% der verdoppelten Größe einsparen, ergibt sich eine Gesamteinsparung von 80%. (Oder ich könnte base64 für ein bisschen mehr Effizienz bei der Konvertierung von Binär in Text verwenden.) Das sind erstaunlich gute Neuigkeiten! :)
TOOGAM
8

Vorherige Antworten sind um eine Größenordnung falsch!

Der beste Komprimierungsalgorithmus, mit dem ich persönlich Erfahrung habe, ist paq8o10t (siehe zpaq- Seite und PDF ).

Hinweis: Der Befehl zum Komprimieren von files_or_folders sieht folgendermaßen aus:

paq8o10t -5 archive files_or_folders

Archivgröße im Verhältnis zur Zeit zum Komprimieren und Extrahieren von 10 GB (79.431 Dateien) auf eine externe USB-Festplatte bei Standard- und Maximaleinstellungen auf einem Dell Latitude E6510-Laptop (Core i7 M620, 2 + 2 Hyperthreads, 2,66 GHz, 4 GB, Ubuntu Linux , Wine 1.6).  Daten von 10 GB Benchmark (System 4).

Quelle: Incremental Journaling Backup Utility und Archiver

Sie können einen Spiegel des Quellcodes auf GitHub finden .


Ein etwas besserer Komprimierungsalgorithmus und Gewinner des Hutter-Preises ist decomp8 (siehe Link auf der Preisseite). Es gibt jedoch kein Kompressorprogramm, das Sie tatsächlich verwenden können.


Für wirklich große Dateien kann lrzip Komprimierungsraten erzielen, die einfach komisch sind .

Ein Beispiel aus README.benchmarks:


Nehmen wir sechs Kernel-Bäume, eine Version als Tarball, linux-2.6.31 bis linux-2.6.36. Diese zeigen viele redundante Informationen, aber Hunderte von Megabyte voneinander entfernt, was lrzip sehr gut komprimieren kann. Der Einfachheit halber wird nur 7z verglichen, da dies derzeit der mit Abstand beste Allzweckkompressor ist:

Hierbei handelt es sich um Benchmarks, die auf einem 2,53-GHz-Dual-Core-Intel-Core2-Prozessor mit 4 GB RAM unter Verwendung von lrzip v0.5.1 durchgeführt wurden. Beachten Sie, dass es mit einem 32-Bit-Benutzerbereich ausgeführt wurde, sodass nur eine 2-GB-Adressierung möglich war. Der Benchmark wurde jedoch mit der Option -U ausgeführt, sodass die gesamte Datei als ein großes Komprimierungsfenster behandelt werden kann.

Tarball von 6 aufeinander folgenden Kernelbäumen.

Compression    Size                 Percentage      Compress    Decompress
None           2373713920           100             [n/a]       [n/a]
7z             344088002            14.5            17m26s      1m22s
lrzip          104874109            4.4             11m37s      56s
lrzip -l       223130711            9.4             05m21s      1m01s
lrzip -U       73356070             3.1             08m53s      43s
lrzip -Ul      158851141            6.7             04m31s      35s
lrzip -Uz      62614573             2.6             24m42s      25m30s
Alexander Riccio
quelle
Es ist optimiert, um ein maximales Kompressionsverhältnis zu bieten, ist aber enorm langsamer als nahezu konkurrierende Systeme.
Eric J.
2
@ Eric J. ja, aber die Frage nicht angegeben Geschwindigkeit der Komprimierung / Dekomprimierung;)
Alexander Riccio
3

Squeezechart.com enthält Vergleiche verschiedener Kompressionsraten. Wie in der Antwort von Nifle angegeben, ist es jedoch unwahrscheinlich, dass Sie für Binärformate so hohe Komprimierungsraten erzielen.

idan315
quelle
2

Die meisten Komprimierungstools verfügen über Einstellungen, mit denen Sie eine höhere Komprimierungsrate erzielen können, wenn Sie langsamere Komprimierungs- / Dekomprimierungszeiten und mehr RAM verwenden.

Suchen Sie für 7-Zip in der integrierten Hilfe nach "Zum Archiv hinzufügen", um weitere Einzelheiten zu erfahren.

Tom Robinson
quelle
2

Sie können 7zip mit den folgenden Ultra-Einstellungen ausprobieren:

7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on big_file.mysql.7z big_file.mysql
Kenorb
quelle
2

Überprüfen Sie einfach die Zusammenfassung der Benchmark-Tests für die Komprimierung mehrerer Dateien, die die beste Komprimierungsliste enthält die den vollständigen Komprimierungsbenchmark enthält.

Top 30

Bildbeschreibung hier eingeben

Spitzenreiter (basierend auf der Komprimierung) in diesem Test sind PAQ8 und WinRK (PWCM). Sie können das Testset mit mehr als 300 MB auf unter 62 MB (80% Größenreduzierung) komprimieren, benötigen jedoch mindestens 8,5 Stunden, um den Test abzuschließen. Das Programm Nummer eins (PAQ8P) benötigt fast 12 Stunden und Nummer vier (PAQAR) sogar 17 Stunden, um den Test abzuschließen. WinRK, das Programm mit der zweitbesten Komprimierung (79,7%), dauert ca. 8,5 Stunden. Es überrascht nicht, dass alle genannten Programme eine PAQ-ähnliche Engine zur Komprimierung verwenden. Wenn Sie Dateien mit eingebetteten Bildern haben (z. B. Word-DOC-Dateien), die PAQ8 verwenden, werden diese erkannt und separat komprimiert, wodurch die Komprimierung erheblich gesteigert wird. Alle genannten Programme (außer WinRK) sind kostenlos.

LifeH2O
quelle
1

Ihre beste Wette scheint hier Versuch und Irrtum zu sein. Probieren Sie alle verfügbaren Komprimierungstechniken für jede Datei aus und wählen Sie das Beste aus, das auf Ihrer Website verwendet werden kann. Glücklicherweise machen Computer so etwas ziemlich schnell und langweilen sich nicht. Sie könnten ein einfaches Skript schreiben, um den Prozess zu automatisieren, damit er "relativ schmerzfrei" ist.

Erwarten Sie einfach keine Wunder - 700 MB bis 30 MB kommen nur selten vor. Protokolldateien wie oben erwähnt - ja. "Ihre durchschnittliche Datei" - auf keinen Fall.

hotei
quelle