Beide Verfahren basieren auf LZ77 und der Huffmann-Kodierung. LZ77 wurde 1977 von Abraham Lempel und Jacob Ziv entwickelt. Der Name besteht aus dem Entwicklungsjahr und den Initialen der Nachnamen der Entwickler. LZ77 ist ein verlustfreies Verfahren der Datenkompression. Es beruht auf einem Wörterbuch, das sich zunutze macht, das in einem Datensatz komplette Sequenzen mehrfach vorkommen. Kombiniert wird es mit der der Huffmann-Kodierung, die David A. Huffman entwickelte. Kurz zusammengefasst: Es werden eine feste Anzahl an Quellsymbolen jeweils Codewörter mit variabler Länge zugeordnet. Damit sind Kompressionsraten von bis zu 90 % möglich.
gzip
gzip war das erste Verfahren zur Datenkompression und ist 1992 erschienen. Ursprünglich entwickelt wurde es von Jean-Loup Laily. Aktuell ist es ein frei verfügbares Programm. Bei dem Komprimierungsverfahren werden – vereinfacht gesagt – die Dateien auf identische Teile geprüft und diese zusammengefasst. Dafür legt gzip sein eigenes Wörterbuch an. Das Anlegen eines eigenen Wörterbuches ist zeitaufwendiger als bei dem neueren Verfahren Brotli. Inwiefern sich die beiden Kompressionsverfahren gzip und Brotli auf die Komprimierung auswirken, erläutern wir noch anhand eines konkreten Beispiels.
Brotli
Im Vergleich zu gzip braucht Brotli weniger Ressourcen und macht die Daten noch kleiner. Wobei es hier nicht um riesige Einsparungen geht, sondern um das "bisschen Mehr". Das liegt daran, dass es bei diesem Verfahren ein vordefiniertes Wörterbuch gibt. Als erstes werden alle bekannten Elemente zugeordnet. Danach müssen nur noch die unbekannten Teile dem Wörterbuch zugeordnet werden. Das Ziel ist es mit der Open-Source-Software langfristig gzip abzulösen. Übrigens: Der Name Brotli leitet sich tatsächlich vom Schweizer Gebäck (Brötli) ab. Entwickelt wurde es von Zoltán Szabadka und Jyrki Alakuijala – beides sind Mitarbeiter von Google.
Kompressionsstufen
Was zu beachten ist: Brotli oder gzip sorgen auf der einen Seite durch die Komprimierung für eine geringere Datenübertragung. Auf der anderen Seite geht das Verfahren auf Kosten der Ladezeit. Hier muss, wie bei der Bildkompression, ein gutes Verhältnis zwischen der Dateigröße und der Dauer der Komprimierung gefunden werden.
Sowohl gzip und Brotli lassen sich auf verschiedene Kompressionsstufen einstellen. Diese reichen von 1 bis 9. Wobei eins schwach und neun hoch ist. Eine kleine Komprimierungsstufe hat auf der einen Seite den Vorteil, dass das Verfahren enorm schnell geht. Auf der anderen Seite ist die Komprimierung dann entsprechend gering. Eine Komprimierungsstufe neun dauert länger, das Datenvolumen ist aber wesentlich geringer. Meist ist die Kompressionsstufe 4 beziehungsweise ein Mittelwert eine gute Wahl. Bei einer höheren Kompression wird das Datenvolumen im Verhältnis zur Dauer der Kompression nicht mehr deutlich geringer.
gzip und Brotli im Vergleich
Im Vergleich haben wir einmal eine Textdatei der Bibel genommen: bible.txt. Diese haben wir für einen Vergleich mit allen Kompressionsstufen sowohl mit Brotli als auch mit gzip komprimiert.
Das Schaubild 1 zeigt die Dateigröße nach der Komprimierung. Brotli erreicht bei Stufe 3 und 4 eine deutlich geringere Dateigröße als gzip.