Wie wirkt sich die Größe des Wörterbuchs auf die Komprimierung aus?

39

Ich weiß, dass eine höhere Größe zu einem besseren Kompressionsverhältnis und umgekehrt führen kann. Aber gibt es einen Weg, wie ich mich besser entscheiden kann? ... da es so viele Möglichkeiten gibt 7zip


Bisher ist mir aufgefallen, dass die Größe des Wörterbuchs und die Dateigröße eine optimale Komprimierung ergeben. Dateigröße
Hier hat die 8-MB-Datei test.avidas gleiche Komprimierungsverhältnis für alle Wörterbuchgrößen größer als 8 MB. Dann fängt es an zu fallen.

laggingreflex
quelle
2
Ja, das liegt daran, dass sich die gesamte Datei im Speicher befindet. Dies ist jedoch möglicherweise nicht möglich, wenn Sie mit Multi-Gig-Dateien arbeiten. Der Return on Investment sinkt, je höher Sie gehen. Wenn Sie die letzten 1% benötigen, ist Größe = Dateigröße. Hinweis: Wenn Sie einen viel größeren Datensatz haben, wird die Zeit, die zum Komprimieren von Dateien benötigt wird, durch eine Wörterbuchgröße von 128 MB + erheblich verlängert.
Cybernard

Antworten:

28

Wiederholbare Elemente werden in einem Wörterbuch gespeichert und ein Code wird als Ersatz zugewiesen.

Dies ist eine übermäßige Vereinfachung

aaaaaaaaaaaaaaaaaaaaaaaa  0001
bbbbbbbbbbbbbbbbbbbbbbbb  0002
alsdjl;asjdfkl;asdfjkljj  0003

Anstelle der ganzen Zeile wird einfach der Code eingefügt. Je größer das Wörterbuch, desto mehr Codes können verarbeitet werden. Wenn ein Wörterbuch voll ist, wird normalerweise sofort ein neues gestartet. Wenn ein neues gestartet wird, ist es leer und den erkannten Mustern werden neue Codes zugewiesen.

Je größer, desto besser. Das gesamte Wörterbuch wird im Speicher abgelegt, sodass Sie mehr RAM als die Wörterbuchgröße benötigen.

Die Größe des Wörterbuchs hängt von der Komprimierbarkeit Ihrer Daten, der Anzahl der Dateien, der Größe und der Gesamtgröße ab.

Im Allgemeinen sind 32 MB mehr als genug, aber wenn Sie mehrere Multigig-Dateien komprimieren, kann eine viel höhere Anzahl verwendet werden. Größere Wörterbücher verlangsamen häufig den Vorgang, führen jedoch zu einer kleineren Datei.

Cybernard
quelle
2
Ist die von Ihnen festgelegte Größe ein Grenzwert für die Wörterbuchgröße oder die tatsächliche Größe? Bestimmen Programme (insbesondere 7-zip) normalerweise auf intelligente Weise, ob sie wirklich das gesamte Wörterbuch füllen müssen, das Sie zugelassen haben?
Stan
1
Ja, das ist eine Grenze. Wenn sie voll sind, starten sie entweder ein neues Wörterbuch oder geben alte Daten auf intelligente Weise heraus. Sofern die zu komprimierenden Daten nicht größer als das Wörterbuch sind, werden sie gefüllt.
Cybernard
@cybernard "es wird gefüllt"? Bleibt die Wörterbuchgröße, um es klar zu sagen, unter dem Grenzwert, wenn sie nicht gefüllt ist?
LonnieBest
1
@LonnieBest Ja, das Wörterbuch beginnt komplett leer. Bei so vielen Bits / Bytes wird ein neuer Wörterbucheintrag erstellt, bis er voll ist.
Cybernard