Daten im Archiv transparent dekomprimieren, um später eine stärkere Komprimierung zu ermöglichen

2

Ich habe zum Beispiel ein Dateisystem-Image, das einige komprimierte Dateien (mit schwacher Komprimierung wie z. B. gzip) enthält, zum Beispiel Hilfeseiten oder Archive mit demselben unkomprimierten Inhalt in der Nähe.

Wie werden die Daten vorgefiltert, um komprimierte Daten in normaler Form zu "expandieren" (um sie mit starker Komprimierung erneut zu komprimieren) und nach der Dekomprimierung nachzufiltern, um das ursprüngliche "halbkomprimierte" Bild wiederherzustellen? Eine SHA-1-Übereinstimmung wird empfohlen, ist aber nicht unbedingt erforderlich (das resultierende Image muss jedoch funktionieren, z. B. sollten neu komprimierte Dateien nicht zu groß werden, dekomprimierbar sein usw.).

Wie das Verbessern des Kompressionsverhältnisses durch Umkehren schwacher Kompressionsalgorithmen.

Gibt es Programme dafür?

Vi.
quelle
Unabhängig. Meine Frage betrifft die Vorbereitung von Informationen, die besser komprimiert werden sollen, nicht nur komprimierte Dateisysteme.
Vi.
Ich denke, das scheint relevant genug zu sein. Der Grund für die Verknüpfung war, dass gute Antworten auf beide Fragen wahrscheinlich für alle interessant sein werden, die an beiden interessiert sind. Übrigens klingt das, was Sie beschreiben, wie ein Produkt, das jemand niemals tun würde, ohne dafür gut bezahlt zu werden. Hoffentlich werden sie diese Frage bemerken. Es ist auch viel einfacher, einfach mehr Festplatten zu beschaffen und sich keine Gedanken über eine um 15% höhere Komprimierungsrate der gespeicherten Daten zu machen. Außerdem verlieren Sie Zeit beim Komprimieren und Dekomprimieren.
Ярослав Рахматуллин
"Hört sich nach einem Produkt an, das jemand niemals tun würde, ohne dafür gut bezahlt zu werden" -> Es wird höchstwahrscheinlich von jemandem gemacht, der fortschrittliche Komprimierungsalgorithmen entwickelt (zum Beispiel für Wettbewerbe). Wenn Sie einen Reißverschluss explizit rückgängig machen, können Sie den Vorteil des Kompressionsverhältnisses erzielen. Beispielsweise können Sie eine JAR-Datei komprimieren, ohne die Signatur zu beschädigen.
Vi.

Antworten:

0

Vorausgesetzt, Sie befinden sich in einer Umgebung, in der Sie Shell-Skripte schreiben und ausführen können, ist dies recht einfach:

wenn Sie ein Geschäft machen:

  1. Hängen Sie das Dateisystem-Image ein.
  2. Suchen Sie nach allen Dateien mit dem Suffix "Schwache Komprimierung"
  3. Dekomprimieren Sie diese Dateien
  4. Speichern Sie die Liste der nicht komprimierten Dateien irgendwo
  5. Hängen Sie das Image aus
  6. komprimiere das Bild

wiederherstellen:

  1. Dekomprimiere das Bild
  2. montieren Sie das System
  3. Verwenden Sie die zuvor gespeicherte Liste, um die Dateien zu komprimieren

Dies kann unter Verwendung eines Teils des Dateierkennungscodes in lesspipe.sh von Gentoo, find and gzip, bzipt2 usw. erfolgen.

Wenn Sie es vorziehen, einzelne Dateien mit "starker Komprimierung" anstelle der gesamten Bilder zu komprimieren, ist dies sicherlich auch möglich.

Ярослав Рахматуллин
quelle
Gibt es bereits Programme (zB FUSE-Dateisysteme), die dies tun? Außerdem möchte ich, dass dies auf einer niedrigeren Dateiebene liegt. So etwas wie "Sieht aus wie komprimierter Zip-Inhalt? Dekomprimieren und speichern Sie zusätzliche Tipps, um später eine exakte komprimierte Kopie zu erstellen " (in einem großen Datenblock)
Vi.