Tools zum Komprimieren?

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
Antworten
Nocta
User
Beiträge: 290
Registriert: Freitag 22. Juni 2007, 14:13

Hey.
Ich suche ein Tool, mit dem ich Dateien möglichst Platzsparend archivieren kann. Es sollte also eine hohe Kompression möglich sein. Von mir aus kann das auch ein paar Stunden dauern, es geht mir darum Files zu archivieren, die ich nicht mehr oder nur selten brauche, aber trotzdem nicht löschen will.

Wie viel kann man die Dateien ca. komprimieren? Mir ist klar, dass das auch von den Dateien an sich abhängt aber ihr könnt ja mal einen Richtwert nennen.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Die Frage kann man dir eigentlich nicht beantworten; das müsstest du selbst ausprobieren.

Mit LZMA liegen meine Stichproben bei etwa 17% der Ursprungsgröße.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Ich habe früher bei mir mal sehr große Programme mit UHARC komprimiert. Das gibt es aber anscheinend nur für Windows. Wenn die Zeit keine Rolle spielt, gibt es wohl noch bessere. Schau mal hier und hier.
MfG
HWK
Nocta
User
Beiträge: 290
Registriert: Freitag 22. Juni 2007, 14:13

Hm ich denke ich werde erstmal 7-Zip (das das von Leonidas erwähnte LZMA zur Kompression benutzt) testen.
Was hat die Wörterbuchgröße und Wortgröße zu bedeuten? Ist die Kompression besser, wenn ich beides möglichst groß wähle?

Dann gucke ich mir erstmal an, wie stark das meine Dateien komprimiert. Falls ich damit nicht zufrieden bin, gucke ich mir nochmal das, was HWK verlinkt hat an. 7z liegt aber in dieser Liste immerhin auf Platz 24 :)
BlackJack

@Nocta: Ich denke nicht, dass man einen Richtwert nennen kann, eben weil es sehr stark von den Daten abhängt.

Von den verbreiteteren Programmen sind wohl `bzip2` und `7zip` am besten. Wobei man bei `7zip` die Wahl zwischen LZMA und PPMd als Algorithmen hat. Letzteres eignet sich zum Beispiel gut für grössere Texte.

Wenn es etwas exotischer sein darf, dann gibt es mit bzz eine Variante des Algorithmus' von `bzip2`, die oft ein klein wenig besser komprimiert.

Und dann gibt's da noch die "PAQ-Familie": http://www2.cs.fit.edu/~mmahoney/compression/

Komprimiert ziemlich gut, dauert aber extrem lange, sowohl beim Komprimieren, als auch beim Dekomprimieren! Und ganz wichtig: Das Binary bzw. den Quelltext für genau die Version aufheben, mit der man komprimiert hat, denn diese experimentellen Programme sind untereinander alle inkompatibel. Da scheint der Autor mit dem neuen ZPAQ aber dran zu arbeiten. :-)
Nocta
User
Beiträge: 290
Registriert: Freitag 22. Juni 2007, 14:13

Ja PAQ war ganz vorne bei der Liste, die HWK verlinkt hat :D Aber ich glaube ich muss es auch nicht übertreiben :)
Erstmal teste ich jetzt 7z und dann eventuell noch ein paar andere Algorithmen, um zu testen, was meine Daten besser komprimiert.

Edit: Ich lass einfach mal PAQ8, ZPAC (1.0) und 7Z (LZMA auf Ultra) parallel laufen, wird wohl etwas dauern.
Das sind übrigens groößtenteils mp3s, wahrscheinlich kann man da gar nicht mehr so viel rausholen. Aber selbst wenn's nur 5-10% sind, ist das schonmal was :) Videos werde ich auch noch archivieren.
Vielleicht gibt es ja auch Algorithmen die gut für mp3s und welche die gut für Videos geeignet sind.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Bei bereits komprimierten Daten kann die Einsparung durch Kompression aber durchaus auch mal negativ sein, d.h. die Daten sind dann größer als vorher. Speziell verlustbehaftete Kompression nochmal zu komprimieren.. naja.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Nocta
User
Beiträge: 290
Registriert: Freitag 22. Juni 2007, 14:13

Joa deswegen hab ich mir schon gedacht, dass es bei den mp3s wohl nicht so viel bringt.
Aber anscheinend schon etwas, 7z gibt als Kompressionsrate 91% an (ist noch nicht fertig, könnte noch auf 90% oder weniger sinken - Am Anfang war's auf 95%).
Wäre auf 10 GB immerhin schon 1 GB.
Naja, nicht so der krasse Speicherplatzgewinn :p
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Wenn es um's Archivieren geht, würde ich den Algorithmus ja danach auswählen, wie sicher ich mir bin, auch noch nach z.B. 10 Jahren ein Programm und Betriebssystem zu finden, mit dem ich wieder an die Daten wieder heran komme.

1 GB zu sparen erscheint mir den Aufwand nicht wert, wenn man davon ausgeht, dass eine externe 1 TB-Festplatte ca. 100€ kostet und damit das Gigabyte 10 Cent. 100 DVDs kostet laut Amazon 15€, macht also 3 Cent pro GB, wenn man sich die Zeit nehmen will, alles auf DVDs zu brennen.

Stefan
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Würde auf 7zip setzten. Gibt's schon eine weile und hat eine recht große Verbreitung.

Wörterbuchgröße und Wortgröße haben Einfluss auf die Kompression. Je höher die Werte umso besser wird Komprimiert. Allerdings verbrauchen größere Werte auch mehr RAM beim komprimieren und dekomprimieren.

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Nocta
User
Beiträge: 290
Registriert: Freitag 22. Juni 2007, 14:13

@sma: Joa, das mit dem einem GB hab ich mir auch gedacht. Da lohnts sich wirklich nicht besonders.
Das waren aber auch mp3 Files, wo ich mir schon dachte, dass es nicht allzu viel bringt (weil es ja schon komprimiert ist) und Leonidas hat das ja nochmal bestätigt.
Aber sogesehn wars den Aufwand trotzdem wert, weil ich die Dateien wenigstens mal an einen Ort geschafft hab.
Wenn ich jetzt demnächst ein paar Videos archiviere wird's wahrscheinlich/hoffentlich auch etwas mehr Gewinn bringen :)
@jens: thx, gibt's da irgendwie einen Optimalwert oder richtet der sich auch nach den Dateien? Oder gilt einfach immer je höher, desto besser?
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Nocta hat geschrieben:Wenn ich jetzt demnächst ein paar Videos archiviere wird's wahrscheinlich/hoffentlich auch etwas mehr Gewinn bringen :)
@jens: thx, gibt's da irgendwie einen Optimalwert oder richtet der sich auch nach den Dateien? Oder gilt einfach immer je höher, desto besser?
Bei Videos kommt es ganz darauf an, welcher Codec verwendet wurde. Ist es z.B. ein verlustfreier, lohnt sich die komprimierung meist. Ist es aber sowas wie h264 oder MPEG4, dann kann 7zip nicht viel machen, ähnlich wie mit den MP3s.

Den Optimalen Wert gibt es nicht wirklich. Nutzte einfach den Wert, der noch mit deinem RAM Ausbau funktioniert :)

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Antworten