Frage

Diese Frage auf der Archivierung PDF bekam frage mich - wenn ich (für Archivierungszwecke) vielen Dateien komprimieren will, die auf ein Master-Template im wesentlichen kleine Änderungen vorgenommen werden (ein Briefkopf), scheint es wie große Kompression Gewinne können mit inter-Datei-Komprimierung zu haben.

Führen Sie einen der Standard-Komprimierung / Archivierung Formate unterstützt? AFAIK, alle gängigen Formate konzentrieren sich auf jede einzelne Datei zu komprimieren.

War es hilfreich?

Lösung

Mehrere Formate tun inter Datei-Komprimierung.

Das älteste Beispiel ist Tar.gz; ein TAR hat keine Kompression, sondern verkettet alle Dateien zusammen mit Header vor jeder Datei und ein gz kann nur eine Datei komprimieren. Beide werden in der Reihenfolge angewendet, und es ist ein traditionelles Format in der Unix-Welt. .tar.bz2 ist das gleiche, nur mit bzip2 anstelle von gzip.

Neuere Beispiele sind Formate mit optionaler „solid“ Komprimierung (zB, RAR und 7-Zip), die vor dem Komprimieren alle Dateien intern verketten kann, wenn sie von einer Befehlszeilenmarkierung oder GUI-Option aktiviert.

Andere Tipps

Werfen Sie einen Blick auf Googles Open-VCDIFF.

http://code.google.com/p/open-vcdiff/

Es ist für kleine Druck Deltas Berechnung und implementiert RFC 3284.

http://www.ietf.org/rfc/rfc3284.txt

Microsoft hat eine API für etwas zu tun ähnlich, sans jeden Anschein eines Standard.

Im Allgemeinen sind die Algorithmen Sie suchen sind solche auf Basis von Bentley / McIlroy:

http://citeseerx.ist.psu.edu /viewdoc/summary?doi=10.1.1.11.8470

Insbesondere werden diese Algorithmen ein Gewinn sein, wenn die Größe der Vorlage größer ist als die Fenstergröße (~ 32k), die von gzip oder der Blockgröße (100-900k) von bzip2 verwendet.

Sie werden verwendet, um Google intern innerhalb ihrer Bigtable Implementierung komprimierte Web-Seiten zu speichern viel dem gleichen Grund können Sie sie suchen.

Da LZW-Komprimierung (die so ziemlich alle Nutzung) beinhaltet den Aufbau einer Tabelle von wiederholten Zeichen, wie Sie entlang, wie Schema gehen, wie Sie Sie würde begrenzen wünschen, die das gesamte Archiv auf einmal entpacken.

Wenn dies in Ihrer Situation akzeptabel ist, kann es einfacher sein, ein Verfahren zu implementieren, die nur Ihre Dateien in eine große Datei vor der Kompression verbindet.

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