Was sind einige typische verlustfreie Kompressionsverhältnisse?


8

Ein Client hat versucht, mir Dateien im Wert von 250 GB zu senden. Nachdem er verschiedene Möglichkeiten zur Freigabe der Daten ausprobiert hatte, schickte er mir einen komprimierten Ordner mit einer Größe von nur 4 GB. Das klingt für mich nach zu viel Komprimierung - ich glaube nicht, dass ich beim Komprimieren von Dingen jemals mehr als 20% der Größe reduziert habe.

Was sind einige typische verlustfreie Kompressionsverhältnisse, die man in der Praxis sehen würde? (Oder alternativ eine Reichweite.)

UPDATE: Mir ist klar, dass es unmöglich ist, etwas zu sagen, ohne den tatsächlichen Informationsgehalt erraten zu können. Vielleicht war dies eine schlecht formulierte Frage. Ich kann die Daten des Kunden nicht teilen. Aber wenn man sich die XMLDateien ansieht , gibt es viele wiederholte Sätze, z

<thing>
    <property="1" value="2" />
    <property="3" value="4" />
    <property="5" value="6" />
    <property="7" value="8" />
    <property="9" value="10" />
    <property="11" value="12" />
    <property="13" value="14" />
</thing>

das scheint ziemlich komprimierbar.


5
Ich habe gerade eine 1-GB-Datei mit allen Null-Bytes erstellt und diese zu einer 1-MB-Zip-Datei komprimiert, was einem Komprimierungsverhältnis von 900: 1 entspricht. (Komprimieren auf die Phrase 1000000000 null byteswäre ein Komprimierungsverhältnis von 50.000.000: 1.)
Endolith

Das von Ihnen erwähnte Verhältnis von 250: 4 scheint möglich, wenn man die Quelle (Textdatei) berücksichtigt, die Sie hier hochgeladen haben.
Fat32

Antworten:


3

Mein Umfragepapier zur Komprimierung "Eine Übersicht über Architekturansätze für die Datenkomprimierung in Cache- und Hauptspeichersystemen" zeigt, dass die meisten praktischen Techniken für allgemeine Benchmarks ein Komprimierungsverhältnis von ~ 2X und einige bis zu 4X erreichen, obwohl das Potenzial höher ist (z. B. ~ 16X in einigen Fälle) besteht (siehe Abschnitt 2.2). Der Grund dafür, dass das Potenzial nicht voll ausgeschöpft wird, besteht darin, dass Techniken mit einem höheren Komprimierungsverhältnis auch einen höheren Overhead haben (z. B. zusätzliche Hardware, die Strom verbraucht, viel zusätzliche Verarbeitung usw.) oder möglicherweise nicht allgemein genug sind (z. B. Komprimieren von Dateien mit allen Nullen).


8

Es hängt wirklich davon ab, wie viel Redundanz in den Daten vorhanden ist. Wenn alle 250 GB nur '0' wären, könnten Sie fabelhafte Komprimierungsstufen erzielen.

Diese Seite zeigt einige Ergebnisse für die Komprimierung von englischem Text. Mit verschiedenen Techniken werden Text im Wert von 2.988.578 Byte komprimiert. Die drei besten sind: 330.571 (88,94%), 333.759 (88,83%) und 352.722 (88,20%).

Dies bezieht sich wieder auf Ihren Fall: Das bedeutet, dass 250 GB (bestenfalls) auf 27,65 GB komprimiert werden.

Vielleicht sind also viele leere, sich wiederholende Patches in den Daten?


AKTUALISIEREN:

Basierend auf Ihrer Bearbeitung finden Sie hier ein weiteres Dokument, das sich mit den XML-Komprimierungsraten befasst . Das Ergebnis (Abbildung 8; Screenshot unten) ist, dass Komprimierungsraten von maximal 1 (keine) bis maximal 50 angezeigt werden. Dies deutet darauf hin, dass Sie der Komprimierungsrate Ihres Kunden von 62,5 zu 1 (250 zu 4) zu Recht misstrauisch gegenüberstehen.

Geben Sie hier die Bildbeschreibung ein


Tolle Antwort Peter und @endolith. Ich habe die Frage basierend auf Ihren Antworten aktualisiert. Sehr hilfreich.
Isomorphismen
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.