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

§6. Подавление повторяющихся символов

Во многих данных часто присутствуют повторяющиеся подряд символы: в числовых – повторяющиеся старшие или младшие нули, в символьных – пробелы и т.п. Избыточность таких данных можно уменьшить, если вместо последовательности повторяющихся символов вида кодировать эквивалентную последовательность символов видаpka , в которой р – признак повторения (специальный символ или слово), k – число повторений символа a.

Очевидно, что эффективность такого метода определяется значением величины Е :

Здесь n – размерность алфавита А ();

R(p) – фиксированное число битов для кодирования признака повторения;

R(k) – фиксированное число битов для кодирования числа повторений символа a.

В случае, когда величина Е принимает отрицательное или нулевое значение, от использования данного метода вообще следует отказаться.

§7. Кодирование часто используемых данных

Некоторые данные, такие как имена и фамилии, принадлежат множеству возможных значений очень большого размера. Однако в большинстве случаев используется лишь малая часть возможных значений (действует так называемое «правило 90/10» - в 90% случаев используется 10% возможных значений). Поэтому для сжатия данных можно определить множество наиболее часто используемых значений, экономно закодировать его элементы и использовать эти коды вместо обычного представления.

В частности, можно составить список из 256 наиболее употребительных имен людей и кодировать их одним байтом. Одновременно следует обеспечить возможность записи имен, не входящих в закодированные: например, используя признак, аналогичный признаку повторения, кодируемый одним байтом и указывающий на то, что последующие байты содержат полное написание имени. Таким же образом может быть произведено кодирование наиболее употребительных фамилий (для этого могут потребоваться двухбайтовые коды).

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

Данный метод, таким образом, сочетает в себе оба подхода к кодированию (см. формулы 1.1 и 1.2).

§8. Сжатие данных на основе сравнения

В упорядоченных наборах данных часто совпадают начальные символы или даже целые последовательности начальных символов записей. Поэтому можно кодировать данные на основе их сравнения с предыдущими. В этом случае сжимаемым элементам данных может предшествовать специальный признак, указывающий на то, что элемент данных:

- совпадает с предыдущим;

- имеет следующее по порядку значение;

- совпадает с предыдущим кроме m последних символов;

- не имеет связи с предыдущим.

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

§9. Целесообразность сжатия данных

Реализация сжатия данных в информационных процессах требует дополнительных программных и аппаратных затрат, а также затрат времени и памяти на предварительное кодирование с целью сжатия и последующее декодирование для восстановления данных в первоначальном виде. Это означает, что сжатие данных – это не всегда целесообразное мероприятие. Например, в базах данных обычно сжимаются архивные файлы с невысокой частотой использования. Сжатие применяется также для сокращения размеров индексных таблиц, используемых для организации поиска данных в индексно-последовательных файлах.