Ich versuche zu verstehen, wie verschiedene Komprimierungsstufen (1-9) von gzip sich in der Art und Weise unterscheiden, wie die Codierung implementiert wird.Wie unterscheiden sich die verschiedenen Komprimierungsstufen von gzip?
Ich habe den Zlib C-Quellcode angeschaut und es scheint, dass es damit zu tun hat, wie erschöpfend die Suche nach der längsten übereinstimmenden Zeichenkette ist, aber nach spezifischeren Informationen suchend.
Zum Beispiel ergeben die Ebenen irgendwelche Unterschiede in der Zuordnung von Huffman-Codes?
Danke! Habe ich richtig gedacht, dass, wenn wiederholte Strings eher weiter hinten auftreten (aber innerhalb desselben Blocks), mehr Speicher benötigt wird, um die größere Distanz zu speichern? Wenn beispielsweise der gleiche Grad an (vollständiger) Wiederholung in einer Datei angenommen wird, wenn wiederholte Strings im Durchschnitt 50 Bytes zurück auftreten, ergibt sich ein etwas besseres Kompressionsverhältnis, als wenn wiederholte Strings im Durchschnitt 500 Bytes auftreten würden. Oder ist der Speicher für Entfernungen reserviert? – glupyan
Es dauert mehr Bits für weitere Entfernungen. Ein Abstand von 50 benötigt 4 Bits plus einen Huffman-Code (mindestens ein Bit), während ein Abstand von 500 7 Bits plus einen Huffman-Code benötigt. Die Größe der Huffman-Codes hängt davon ab, wie oft diese Fächer im Vergleich zu den anderen Bins als Entfernungen angezeigt werden. –