gzip (DEFLATE)
Sehen Sie, wie gzip Text verkleinert: Wiederholungen werden zu kurzen Kopien, und Huffman-Codes geben häufigen Symbolen weniger Bits.
- Fenster: 32 KB
- Kopien: 3-258 Bytes
- Codes: bis 15 Bit
- gzip-Rahmen: 18 Bytes
Was bedeutet das?
- Literal: ein Zeichen, das als es selbst geschrieben wird, weil an seiner Position keine Wiederholung von 3 oder mehr Zeichen beginnt.
- Kopie: eine Länge und ein Abstand mit der Bedeutung "nimm so viele Zeichen von so weit zurück". Sie darf den Text überlappen, den sie erzeugt.
- Fenster: wie weit der Kompressor nach einer Wiederholung zurückschauen darf. 32 KB bei gzip, bis 16 MB bei Brotli.
- Huffman-Code: ein Bitcode für jedes Symbol, kürzer für häufige Symbole, gebildet aus einem Baum, der immer wieder die zwei seltensten Symbole verbindet.
- Präfixfrei: Kein Code ist der Anfang eines anderen, deshalb lässt sich ein Strom von Codes ohne Trennzeichen zurücklesen.
Der Text hat 23 Zeichen, unkomprimiert 184 Bit. Der Kompressor liest ihn von links nach rechts und fragt an jeder Position, ob das Folgende schon einmal vorkam.
Leertaste: abspielen oder pausieren. Pfeiltasten links/rechts: Schritt. Pos1 und Ende: springen.
Probieren Sie es aus: Tippen Sie viele Male denselben Buchstaben. Eine einzige Kopie mit Abstand 1 deckt sie alle ab, denn eine Kopie darf den Text überlappen, den sie selbst erzeugt.
So funktioniert es
gzip führt DEFLATE in zwei Stufen aus. LZ77 geht den Text durch und sucht an jeder Position die längste Folge von Bytes, die in den letzten 32 KB schon vorkam. Statt sie zu wiederholen, schreibt es ein Paar: wie viele Bytes kopiert werden (3-258) und wie weit sie zurückliegen. Was übrig bleibt, also die Literale und diese Paare, wird dann mit Huffman-Codes geschrieben: Häufige Symbole bekommen kurze Codes, seltene lange. gzip verpackt das Ergebnis in einen 10-Byte-Header und einen 8-Byte-Trailer mit einer CRC-32-Prüfsumme.
Wann es sich eignet
gzip komprimiert Text, der sich wiederholt: HTML, CSS, JavaScript, JSON, Logs, CSV. Jeder Browser und jeder Server versteht es, es ist auf jeder Stufe schnell und die sichere Wahl, um Antworten im laufenden Betrieb zu komprimieren. Bereits komprimierte Daten wie JPEG, PNG, WOFF2 oder ZIP enthalten keine Wiederholungen mehr, dort fügt gzip nur seinen Rahmen hinzu.
Mit Ihrem eigenen Text
Dieselben zwei Stufen, ausgeführt von echtem gzip (Stufe 6) auf einem längeren Text. Fügen Sie Ihren eigenen ein oder übernehmen Sie einen aus dem Tool Gzip- & Brotli-Komprimierung.