Составители:
Рубрика:
16
составляет по ним кодовую таблицу, идентичную той, которую состав-
ляет кодирующий алгоритм. Он несколько сложнее кодирующего и мо-
жет быть записан следующим образом:
• прочитать новый код сжатых данных Newcode;
• если Newcode представляет собой код конца записи, то завершить
работу;
• если Newcode представляет собой код очистки, то необходимо:
а) проинициализировать таблицу кодов;
б) прочитать следующий код сжатых данных (если это будет код кон-
ца записи, то завершить работу);
в) найти Newcode в кодовой таблице и вывести соответствующую
ему декомпрессированную последовательность отсчетов;
г) скопировать Newcode в буфер, где был записан предыдущий код
(Prevcode);
• если Newcode находится в таблице, но не является ни кодом очистки,
ни кодом конца записи, то необходимо:
а) вывести соответствующую ему декомпрессированную последова-
тельность отсчетов;
б) взять первый байт декомпрессированного кода Newcode и декомп-
рессированного кода Prevcode, конкатенировать их и добавить в кодо-
вую таблицу;
г) скопировать Newcode в буфер, где хранится Prevcode;
• если Newcode в таблице отсутствует, а, кроме того, он не является
кодом очистки и кодом конца записи, то необходимо:
а) конкатенировать и вывести значение декомпрессированного кода
Prevcode + первый байт того же значения;
б) добавить в таблицу элемент для вышеприведенного значения;
в) скопировать Newcode в буфер Prevcode.
Метод сжатия LZW может быть применен не только для сжатия дан-
ных, каждая единица которых имеет размер в один байт, например от-
счетов яркости черно-белого полутонового изображения, но и для дан-
ных, имеющих произвольный размер. В этом случае кодовые
последовательности этих данных объединяются в группы по восемь дво-
ичных единиц. Если каждый отсчет содержит четыре двоичных едини-
цы, то объединение в группы происходит по два отсчета, а если один
отсчет представлен 16 двоичными единицами кода, то такая кодовая
последовательность делится пополам. Величина сжатия, обеспечивае-
Страницы
- « первая
- ‹ предыдущая
- …
- 14
- 15
- 16
- 17
- 18
- …
- следующая ›
- последняя »