Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
007-9 Сжатие данных.doc
Скачиваний:
29
Добавлен:
01.03.2025
Размер:
1 Мб
Скачать
☆

Алгоритмы обратимых методов

При исследовании методов сжатия данных следует иметь в виду существование следующих доказанных теорем.

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

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

  3. Для любого алгоритма сжатия можно указать такую последовательность дан­ ных, для которой данный алгоритм вообще не позволит получить сжатия.

Таким образом, обсуждая различные методы сжатия, следует иметь в виду, что наивысшую эффективность они демонстрируют для данных разных типов и раз­ных объемов.

Существует достаточно много обратимых методов сжатия данных, однако в их основе лежит сравнительно небольшое количество теоретических алгоритмов, пред­ставленных в таблице 14.1.

Таблица 14.1. Свойства алгоритмов сжатия

Алгоритм

Выходная структура

Сфера применения

Примечание

RLE (Run-Length Encoding

Список (вектор данных)

Графические данные

Эффективность алгоритма не зависит от объема данных

KWE (Keyword Encoding)

Таблица данных (словарь)

Текстовые , данные

Эффективен для массивов большого объема

Алгоритм Хафмана

Иерархическая структура (дерево кодировки)

Любые данные

Эффективен для массивов большого объема

Алгоритм rle

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

Например, для последовательности: 0; 0; 0; 127; 127; 0; 255; 255; 255; 255 (всего 10 байтов) образуется следующий вектор:

Значение

Коэффициент повтора

0

3

127

2

0

1

255

4

При записи в строку он имеет вид:

0; 3; 127; 2; 0; 1; 255; 4 (всего 8 байтов). В данном примере коэффициент сжатия равен 8/10 (80 %). Программные реализации алгоритмов RLE отличаются простотой, высокой ско­ростью работы, но в среднем обеспечивают недостаточное сжатие. Наилучшими объектами для данного алгоритма являются графические файлы, в которых боль­шие одноцветные участки изображения кодируются длинными последовательнос­тями одинаковых байтов. Этот метод также может давать заметный выигрыш на некоторых типах файлов баз данных, имеющих таблицы с фиксированной длиной полей. Для текстовых данных методы RLE, как правило, неэффективны.

Алгоритм kwe

В основу алгоритмов кодирования по ключевым словам (Keyword Encoding) положено кодирование лексических единиц исходного документа группами бай­тов фиксированной длины. Примером лексической единицы может служить слово (последовательность символов, справа и слева ограниченная пробелами или сим­волами конца абзаца). Результат кодирования сводится в таблицу, которая при­кладывается к результирующему коду и представляет собой словарь. Обычно для англоязычных текстов принято использовать двухбайтную кодировку слов. Обра­зующиеся при этом пары байтов называют токенами.

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

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