Henryk Plötz: dt. Doku zu inflate deflate gesucht

Beitrag lesen

Moin,

Also brauche ich ja eine "Übersetzungtabelle" in der die einzelnen Zeichen mit ihrem bitfolgen beschrieben werden. Nur wie diese genau funktioniert konnte ich nicht genau herausfinden bisher.

LZW funktioniert so, dass die Tabelle beim Übertragen der Informationen quasi nebenbei aufgebaut wird. Die ersten 256 Einträge der Tabelle entsprechen erstmal den normalen 256 Bytes. Danach läuft eine Schleife durch: Es nimmt so lange Eingabezeichen in einen temporären String wie es einen Tabelleneintrag für diesen String gibt. Sobald er an eine Stelle kommt wo ein neues Zeichen dazu führen würde, dass dieser String keinen Tabelleneintrag mehr hat, schreibt er den Code für den bis daher angesammelten String raus, schreibt das Zeichen raus und macht einen neuen Tabelleneintrag für den String mit dem angehängten Zeichen. Sobald die Tabelle voll ist, macht man sie wieder leer und beginnt von vorne.
(Modulo Ungenauigkeiten in meinem Gedächtnis. Ich habe vor langer, langer Zeit mal ein Tutorial dazu gelesen. Das finde ich jetzt aber nicht wieder.)

Dadurch wird die Codetabelle quasi nebenbei aufgebaut und muß nicht extra übermittelt werden. Trotzdem komprimiert das ganz gut.

--
Henryk Plötz
Grüße aus Berlin
~~~~~~~~ Un-CDs, nein danke! http://www.heise.de/ct/cd-register/ ~~~~~~~~
~~ Help Microsoft fight software piracy: Give Linux to a friend today! ~~