Составители:
98
a) сформировать последовательность, соответствующую
OldCode + первый байт последовательности OldCode и
вывести значения декодированного кода в файл
изображения;
b)
добавить в таблицу полученную последовательность байтов;
c)
скопировать Code в буфер, где хранится OldCode.
Прочитать код Code из входного потока. Перейти на начало цикла.
Для приведенного примера процесс декодирования выполняется в
соответствии с таблицей 8.3.
Таблица 8.3. Пример декодирования по алгоритму LZW
Чтение
кода
№
Код,
вводимый
из потока
Последовательность
байтов, выводимых
в файл изображения
Содержимое
таблицы кодов
OldCode
0 256
1 7 7 Инициализировать
таблицу
7
2 258 7,7 258
⇔
7,7 258
3 10 10 259
⇔
7,7,10 10
4 10 10 260
⇔
10,10 10
5 258 7,7 261
⇔
10,7 258
6 5 5 262
⇔
7,7,5 5
7 5 5 263
⇔
5,5 5
8 257 5
В результате декодирования исходная последовательность байтов
восстановлена без потери информации.
Метод сжатия LZW может быть применен не только для кодирования
восьмиразрядных данных, но и для кодирования данных произвольной
разрядности. В этом случае кодовые размерности объединяются в группы
из восьми разрядов. Например, в четырехразрядных данных два отсчета
объединяются в один, а при
16-разрядном представлении один отсчет
разбивается на 2 группы. Коэффициент сжатия при использовании этого
метода равен обычно 2-3.
8.4 Метод кодирования Хаффмана
Метод кодирования Хаффмана [55] относится к группе методов
сжатия данных без потерь информации. Этот метод используется для
поддержки факсимильной связи и представления документов.
Применяется также при записи графических изображений в файлы и
является компонентом алгоритмов сжатия данных JPEG и MPEG - 2.
Метод предложен Дэвидом Хаффманом в 1952 г. Особенностью метода
является использование кодов переменной
длины, при этом наиболее
Страницы
- « первая
- ‹ предыдущая
- …
- 96
- 97
- 98
- 99
- 100
- …
- следующая ›
- последняя »
