Höchste Komprimierung für Dateien (für Webübertragung)?

55749
rzlines

Ich habe einige hochkomprimierte Dateien gesehen, wie etwa 700 MB Daten, die auf ca. 30-50 MB komprimiert wurden.

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

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

(PS Ich verwende Windows XP)

14
Schöne Idee ... aber woher bekommst du solche Dateien? Robinicks vor 14 Jahren 0
Ich habe gesehen, dass 7zip-Compress-Server-Protokolldateien (hauptsächlich Text) auf etwa 1% ihrer ursprünglichen Größe abgesunken sind. Umber Ferrule vor 14 Jahren 3
Öffnen Sie den Editor. Geben Sie 1 Milliarde mal "A" ein. Speichern und komprimieren. BEEINDRUCKEND! Erstellen Sie eine App, die 1 Milliarde (wahre) Zufallszahlen in eine Datei schreibt. Komprimiere das. HUH? igrimpe vor 11 Jahren 2
igrimpe: Viele Kompressionsalgorithmen indexieren. Eine Milliarde As ist eine Milliarde Mal ein A. Sie können das auf [A] 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 vor 7 Jahren 0

9 Antworten auf die Frage

12
Nifle

Dies hängt vollständig von den zu komprimierenden Daten ab.

Text komprimiert sehr gut, binäre Formate nicht so gut und komprimierte Daten (mp3, jpg, mpeg) überhaupt nicht.

Hier ist eine gute Komprimierungsvergleichstabelle von Wikipedia.

Mir ist bekannt, dass die Komprimierung von der Art der Daten abhängt. Gibt es bestimmte Techniken, mit denen Sie Dateien weiter komprimieren können? rzlines vor 14 Jahren 0
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 vor 14 Jahren 3
Text kann leicht bis zu 90% komprimiert werden. Georg Schölly vor 13 Jahren 0
@ GeorgSchölly: Das ist ausgezeichnet. Weil ich beliebige Daten in Text konvertieren kann, z. B. jedes binäre Byte in zwei hexadezimale Ziffern umwandeln, die in Text angezeigt werden. Das würde meine Größe verdoppeln, aber dann würde eine Einsparung von 90% der doppelten Größe zu einer Gesamteinsparung von 80% führen. (Oder ich könnte base64 für ein bisschen mehr Effizienz bei der Binär-Text-Konvertierung verwenden.) Dies sind erstaunlich gute Nachrichten! :) TOOGAM vor 6 Jahren 0
11
izb

Wenn die Zeit zum Komprimieren der Daten 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, dass Sie die ZIP-Datei immer wieder komprimieren müssen, sondern mehrere alternative ZIP-Dateien mit verschiedenen Tools erstellen.)

Führen Sie als Nächstes deflopt für jedes Archiv aus, um jedes Archiv etwas zu reduzieren.

Führen Sie schließlich zipmix für die Archivsammlung aus. Da unterschiedliche Zip-Tools für unterschiedliche Dateien besser geeignet sind, wählt zipmix aus jedem Archiv die beste komprimierte Version jeder Datei aus und erzeugt eine Ausgabe, die kleiner ist als die, die jedes Zip-Tool einzeln erstellt haben könnte.

Sie sollten jedoch beachten, dass dies nicht garantiert ist, dass Ihre Dateien auf irgendeine Art von Magie wirken. Bestimmte Datentypen lassen sich einfach nicht gut komprimieren, beispielsweise JPEGs und MP3s. Diese Dateien sind bereits intern komprimiert.

JPEGs und MP3s werden nicht gezippt. Sie sind komprimiert, aber nicht gezippt. KovBal vor 14 Jahren 4
Dies ist ein unglaublich schlechter Ratschlag. Es ist eine sehr schlechte Idee, mehrere Kompressionsalgorithmen nacheinander zu verwenden. Jeder Algorithmus erstellt eine komprimierte Datei + Mehraufwand. Wenn Sie also mehrere Daten verwenden, addieren Sie tatsächlich _Daten zu den Daten, die Sie zu komprimieren versuchen - es ist, als würden Sie versuchen, ein Loch in den Sand zu graben. Je tiefer Sie gehen, desto mehr Sand strömt hinein Sie. Es ist viel besser, einen einzigen guten Algorithmus bei maximalen Kompressionseinstellungen zu verwenden. Tacroy vor 11 Jahren 0
Ich denke, Sie missverstehen .. die gleichen Daten werden nicht immer wieder neu komprimiert. Stattdessen wählen Sie einfach den besten einzelnen Algorithmus pro Datei und nicht pro Archiv. izb vor 11 Jahren 0
* Komprimiere die Daten mehrmals * ist ziemlich irreführend. ta.speot.is vor 11 Jahren 6
7
Alexander Riccio

Previous answers are wrong by an order of magnitude!

The best compression algorithm that I have personal experience with is paq8o10t (see zpaq page and PDF).

Hint: the command to compress files_or_folders would be like:

paq8o10t -5 archive files_or_folders 

Archive size vs. time to compress and extract 10 GB (79,431 files) to an external USB hard drive at default and maximum settings on a Dell Latitude E6510 laptop (Core i7 M620, 2+2 hyperthreads, 2.66 GHz, 4 GB, Ubuntu Linux, Wine 1.6). Data from 10 GB Benchmark (system 4).

Source: Incremental Journaling Backup Utility and Archiver

You can find a mirror of the source code on GitHub.


A slightly better compression algorithm, and winner of the Hutter Prize, is decomp8 (see link on prize page). However, there is no compressor program that you can actually use.


For really large files lrzip can achieve compression ratios that are simply comical.

An example from README.benchmarks:


Let's take six kernel trees one version apart as a tarball, linux-2.6.31 to linux-2.6.36. These will show lots of redundant information, but hundreds of megabytes apart, which lrzip will be very good at compressing. For simplicity, only 7z will be compared since that's by far the best general purpose compressor at the moment:

These are benchmarks performed on a 2.53Ghz dual core Intel Core2 with 4GB ram using lrzip v0.5.1. Note that it was running with a 32 bit userspace so only 2GB addressing was posible. However the benchmark was run with the -U option allowing the whole file to be treated as one large compression window.

Tarball of 6 consecutive kernel trees.

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 
Es ist optimiert, um ein maximales Kompressionsverhältnis zu bieten, ist aber enorm langsamer als Konkurrenzprodukte. Eric J. vor 11 Jahren 0
@Eric J. ja, aber die Frage hat nicht die Geschwindigkeit der Komprimierung / Dekomprimierung angegeben;) Alexander Riccio vor 10 Jahren 1
3
idan315

Squeezechart.com enthält Vergleiche verschiedener Kompressionsraten. Wie bereits in der Antwort von Nifle dargelegt, werden Sie bei Binärformaten wahrscheinlich nicht so hohe Komprimierungsraten erzielen.

2
tjrobinson

Die meisten Komprimierungswerkzeuge verfügen über Einstellungen, mit denen Sie eine höhere Komprimierungsrate bei einem Kompromiss aus niedrigeren Komprimierungs- / Dekompressionszeiten und mehr RAM-Auslastung erreichen können.

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

2
LifeH2O

Überprüfen Sie einfach die Zusammenfassung der Benchmark-Tests für mehrere Dateikomprimierungen, die die beste Kompressionsliste enthält die den vollständigen Komprimierungs-Benchmark enthält.

Top 30

enter image description here

Top-Performer (basierend auf Komprimierung) in diesem Test sind PAQ8 und WinRK (PWCM). Sie können das 300+ Mb-Testset auf unter 62 MB (80% Verkleinerung) komprimieren, benötigen jedoch mindestens 8,5 Stunden, um den Test abzuschließen. Das Programm Nummer eins (PAQ8P) dauert fast 12 Stunden und Nummer vier (PAQAR) sogar 17 Stunden, um den Test abzuschließen. WinRK, das Programm mit der zweitbesten Kompression (79,7%) dauert etwa 8,5 Stunden. Es ist nicht überraschend, dass alle genannten Programme zur Komprimierung eine PAQ-Engine verwenden. Wenn Sie Dateien mit eingebetteten Bildern (z. B. Word-DOC-Dateien) mit PAQ8 verwenden, werden sie von PAQ8 erkannt und separat komprimiert, wodurch die Komprimierung erheblich gesteigert wird. Alle genannten Programme (außer WinRK) sind kostenlos.

2
kenorb

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

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

Your best bet here seems to be trial and error. Try all your available compression techniques on each file and pick the best to put on your website. Luckily computers do this sort of thing pretty fast and don't get bored. You could write a simple script to automate the process so it would be "relatively painless".

Just don't expect miracles - 700 mb down to 30 mb just doesn't happen that often. Log files as mentioned above - yes. "Your average file" - no way.

0
user712092

Nanozip scheint zusammen mit FreeArc die höchste Kompression zu haben. Es ist aber noch nicht in der endgültigen Version. Es ist, wie gute Kompression Nanozip erzielt . Die Komprimierung ist sehr hoch und es dauert nicht zu lange. Überprüfen Sie die Zusammenfassung der Benchmark-Tests für mehrere Dateikomprimierungen. FreeArc ist jedoch schneller.