Компьютерная обработка и распознавание изображений - 97 стр.

UptoLike

Составители: 

97
Выходной поток представляет следующую последовательность кодов:
{256, 7, 258, 10, 10, 258, 5, 5, 257}.
Таблица 8.2. Пример кодирования по алгоритму LZW
Чтение
байта
Byte
Код,
выводимый в
поток
Содержимое
таблицы кодов
CurBuf
256 пустой
0 7 7
1 7 7 258
7,7 7
2 7 7,7
3 10 258 259
7,7,10 10
4 10 10 260
10,10 10
5 7 10 261
10,7 7
6 7 7,7
7 5 258 262
7,7,5 5
8 5 5 263
5,5 5
5
257
8.3.2 Декодирование
При декодировании кодовая таблица не нужна, поскольку
первоначально инициируется словарь в соответствии с таблицей 8.1. По
мере поступления кодов комбинаций исходных отсчетов, в процессе
декодирования составляется кодовая таблица, идентичная той, что была
составлена кодером.
Алгоритм
Прочитать код сжатых данных в буфер Code.
Далее в цикле до конца потока выполняются следующие операции:
Если Code равен коду очистки, то
a)
Инициализировать таблицу кодов.
b)
Прочитать следующий код сжатых данных.
c)
Найти последовательность байтов в кодовой таблице,
соответствующую коду Code и записать ее в файл изображения.
d)
Скопировать Code в буфер OldCode.
Если Code равен коду конца записи, то завершить работу.
Иначе:
Если Code находится в таблице, то
a)
вывести соответствующую ему декодированную
последовательность отсчетов в файл;
b)
последовательность отсчетов, соответствующую OldCode +
первый байт последовательности, соответствующей Code,
добавить в кодовую таблицу;
c)
cкопировать Code в буфер, где хранится OldCode.
Иначе, если Code не находится в таблице, необходимо: