Datenkompression durch LZWDas Verfahren LZW wurde 1984 von Terry Welch entwickelt und ist patentiert. Es basiert auf dem LZ78-Verfahren. Der Vorteil dieses Verfahrens ist, dass es schneller Daten komprimiert und darüber hinaus in der Ausgabe nur noch Indizes des Wörterbuchs, also keine Zeichen mehr auftreten. Vor dem Start werden alle möglichen Zeichen (d.h. Zeichenketten der Länge 1) im Wörterbuch implizit untergebracht. Bei der Kompression wird zum nächsten Eingabetext eine möglichst lange Zeichenkette im Wörterbuch gesucht und als Index ausgegeben. Die Zeichenkette zusammen mit dem ersten nicht passenden Zeichen wird als neue Zeichenkette in das Wörterbuch übernommen. Beispiel
Kompression (im Wörterbuch steht bereits 1: A, 2: B, 3: C)
Die Dekompression führt die analogen Schritte durch, wobei der Aufbau des Wörterbuchs immer einen Schritt später erfolgt, da für das aktuelle Wort das erste Zeichen des nächsten ausgegebenen Worts benötigt wird. Dekompression (im Wörterbuch steht bereits 1: A, 2: B, 3: C)
Dieses führt zu Problemen, wenn das bei der Kompression zuletzt in das Wörterbuch übernommene Wort als nächstes kodiert wird.
Dieses Verfahren ist ähnlich effektiv wie LZ78, Varianten hierzu ändern die Größe der Indizes in der Ausgabe, indem sie diese von der Größe des Wörterbuchs abhängig machen (die monoton wächst), oder löschen alte Einträge aus dem Wörterbuch, wenn dieses zu groß wird. Dieses Verfahren wird u.a. im UNIX-Programm compress sowie im GIF-Kompressions-Format verwendet. |