Вход(символы) | Выход(коды) | Новые коды и соответствующие строки |
/W | / | 256 = /W |
E | W | 257 = WE |
D | E | 258 = ED |
/ | D | 259 = D/ |
WE | 260 = /WE | |
/ | E | 261 = E/ |
WEE | 262 = /WEE | |
/W | 263 = E/W | |
EB | 264 = WEB | |
/ | B | 265 = B/ |
WET | 266 = /WET | |
<EOF> | T |
Рис. 2 Процесс сжатия
Выходной поток для заданной строки показан на рис. 2, также как и полученная в результате таблица строк. Как вы можете заметить, эта таблица быстро заполняется, т.к. новая строка добавляется в таблицу каждый раз, когда генерируется код. В этом явно вырожденном примере было выведено пять закодированных подстрок и семь символов. Если использовать 9-битные коды для вывода, то 19-символьная входная строка будет преобразована в 13.5-символьная выходную строку. Конечно, этот пример был выбран только для демонстрации. В действительности сжатие обычно не начинается до тех пор, пока не будет построена достаточно большая таблица, обычно после прочтения порядка 100 входных байт.