Warum entlüftet 7-Zip die Wortgröße 257 und 258?

456
abcjme

Die Größe der Komprimierungswörter beträgt normalerweise Potenzen von 2. Allerdings hat 7-Zip einige Ausnahmen:

  • Deflate hat sowohl 256 als auch 258 Wortgrößen.
  • Deflate64 hat sowohl 256 als auch 257 Wortgrößen.

Diese scheinen so trivial und seltsam zu sein. Was ist der Grund / Zweck für sie?

Hier ist ein Bild von dem, worüber ich spreche:

Warum entlüftet 7-Zip die Wortgröße 257 und 258?

-1

1 Antwort auf die Frage

1
abcjme

7-Zip zeigt nicht alle Wortgrößen an, für die Deflate und Deflate64 geeignet sind. Es zeigt nur eine ausgewählte Probe. Deflate ist tatsächlich in der Lage, alle Ganzzahlinkremente zwischen 3-258 zu berechnen. Da der Musterabgleich mit nur 1-2 Variablen nicht möglich oder sinnvoll ist, werden diese Größen übersprungen. Somit ist die Wortgrößenspanne von Deflate tatsächlich eine Potenz von 2. Da "1" und "2" keine möglichen Wortgrößenoptionen für Deflate sind, haben Sie -2 von der maximalen Größe von 258, was 256 entspricht.

Was Deflate64 angeht, können alle Ganzzahlschritte zwischen 3 und 257 vorgenommen werden. 258 wird tatsächlich als Erweiterungsflag verwendet, um den Wortgrößenbereich von 3-65538 zu vergrößern. 7-Zip nutzt diese Funktion jedoch einfach nicht. Wenn Sie -2 von 65538 auf -2 setzen, erhalten Sie 65536, was ebenfalls eine Potenz von 2 ist. Interessanterweise könnte Deflate64 jedoch verbessert werden, wenn das Erweiterungsflag stattdessen die Bereiche 258-65793 abdeckt, da 3-257 bereits abgedeckt sind .