Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций ТИК.doc
Скачиваний:
381
Добавлен:
10.02.2016
Размер:
7.57 Mб
Скачать
          1. Декодирование по lzw

Особенность алгоритма LZW заключается в том, что для декомпрессии нам не надо сохранять всю таблицу строк в файл для распаковки. Алгоритм построен таким образом, что мы в состоянии восстановить таблицу строк, пользуясь только имеющейся сжатой последовательностью и начальным словарем, или ASCII таблицей.

Теперь представим, что мы получили закодированное сообщение, приведённое выше, и нам нужно его декодировать. Прежде всего, нам нужно знать начальный словарь, а последующие записи словаря мы можем реконструировать уже на ходу, поскольку они являются просто соединением-объединением предыдущих записей.

Итак, декодирование.

          1. Достоинства и недостатки lzw

Достоинства

+ Не требует вычисления вероятностей встречаемости символов или кодов.

+ Для декомпрессии не надо сохранять таблицу строк в сжатом файле. Алгоритм построен таким образом, что мы в состоянии восстановить таблицу строк, пользуясь только сжатым кодом.

+ Данный тип компрессии не вносит искажений в исходный файл, и подходит для сжатия данных любого типа.

Недостатки

Алгоритм не проводит анализ входных данных поэтому не оптимален.

13.2 Применение lz-алгоритмов упаковки данных

Опубликование алгоритма LZW произвело большое впечатление на всех специалистов по сжатию информации. За этим последовали разработки большого количество программ и приложений с различными вариантами этого метода. Этот метод позволяет достичь одну из наилучших степеней сжатия среди других существующих методов сжатия графических данных, при полном отсутствии потерь или искажений в исходных файлах. В настоящее время он широко используется в файлах формата TIFF, PDF, GIF, PostScript и других, а также отчасти во многих популярных программах сжатия данных (ZIP, ARJ, LHA).

Если коды алгоритмов типа LZ передать для кодирования (адаптивному) алгоритму Хаффмена , то полученный двухшаговый (конвейерный, а не двухпроходный) алгоритм даст результаты сжатия подобные широко известным программам: GZIP, ARJ, PKZIP,

Наибольшую степень сжатия дают двухпроходные алгоритмы, которые исходные данные последовательно сжимают два раза, но они работают до двух раз медленнее однопроходных при незначительном увеличении степени сжатия.

Большинство программ-архиваторов сжимает каждый файл по отдельности, но некоторые сжимают файлы в общем потоке, что дает увеличение степени сжатия, но одновременно усложняет способы работы с полученным архивом, . Примером программы, имеющей возможность сжимать файлы в общем потоке, является RAR. Архиваторы ОС Unix (gzip, bzip2, ...) сжимают файлы в общем потоке практически всегда.

Формат файла, содержащего данные, которые перед использованием требуется распаковать соответствующей программой архиватором, как правило, может быть идентифицирован расширением имени файла.

В следующей таблице приводятся некоторые типичные расширения и соответствующие им программы-архиваторы и методы сжатия данных.

Практически все форматы файлов для хранения графической информации используют сжатие данных. Формат графического файла также, как правило, идентифицируется расширением имени файла.

Лекция 14