Kodierung

Als Ausgangsbasis für die Kodierung erhält der Algorithmus einen Datenstrom und ein initialisiertes Lexikon (im Falle eines Textes wird das Lexikon mit 256 Einträgen initialisiert).

LZW verwendet bei der Kodierung einen Buffer (Zwischenspeicher) um sich die neuen Einträge für das Lexikon zusammenzubauen. Am Anfang ist der Buffer leer.

Der Datenstrom wird nun Zeichen für Zeichen eingelesen.

Sind die Zeichen des Buffers + Input (eingelesenes Zeichen) bereits im Lexikon vorhanden, so wird der Input am Ende der Zeichenkette im Buffer angefügt.

Ist die Zeichenkette des Buffers + Input (eingelesenes Zeichen) noch nicht im Lexikon vorhanden, so wird der "Code" der Zeichenkette des Buffers ausgegeben und das Lexikon um einen Eintrag (Zeichenkette des Buffers +Input) erweitert. Anschließend wird der Buffer auf den Input gesetzt.

Ist das Ende des Datenstroms erreicht, d.h. es sind keine weiteren Zeichen zum Einlesen mehr vorhanden, dann wird der "Code" der Zeichenkette des Buffers ausgegeben.

Ist noch ein (oder auch mehrere) Zeichen zum Einlesen vorhanden, so wird das nächste Zeichen eingelesen und der Algorithmus beginnt von vorne.

Bei der nun folgenden Animation wird Text kodiert. Bei der Initialisierung des Lexikons werden zur Vereinfachung nur jene Einzelzeichen ins Lexikon eingetragen, die auch im Datenstrom vorkommen.

Ergänzende und vertiefende Module