Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
53
Добавлен:
19.02.2016
Размер:
220.67 Кб
Скачать

1. Принципы и методы сжатия информации Понятия технологии сжатия данных

Разработка алгоритмов сжатия информации относится к одной из отраслей прикладной математики. В их основе лежит принцип устранения естественной избыточности.

Методы сжатия информации условно делятся на два непересекающихся класса: сжатие с потерей информацииисжатие без потери информации.

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

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

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

К алгоритмам сжатия с потерей информации относятся такие алгоритмы как JPEG(используются при сжатии фотоизображений) иMPEG(используются при сжатии видео и аудио). Алгоритмы сжатия с потерей информации применяют только для потребительских задач.

Величиной допустимой потери при сжатии обычно можно управлять, что позволяет достигнуть оптимального соотношения «размер/качество». На фотографических иллюстрациях, предназначенных для воспроизведения на экране, потеря 5% информации обычно некритична, а в некоторых случаях можно допустить потерю и в 20-25%.

Методы сжатия без потери информацииприменяются при работе с текстовыми документами и программами и не могут допустить утрату информации. Они основаны только на устранении ее избыточности.

Пример 1.В украинском языке 32 буквы, десять цифр и еще примерно полтора десятка знаков препинания и прочих специальных символов. Для текста, который записан только прописными буквами (как в телеграммах) вполне хватило бы шестидесяти разных значений. Тем не менее, каждый символ обычно кодируется байтом, который содержит 8 битов и может выражать 256 различных кодов. Это первое основание для избыточности. Для «телеграфного» текста вполне хватило бы шести битов на символ.

Рис. 1. Азбука Морзе

Пример 2.В международной кодировке символов ASCII для кодирования любого символа отводится одинаковое количество битов (8). Вместе с тем очевидно, что наиболее часто встречающиеся символы имеет смысл кодировать меньшим количеством знаков. Так, например, вазбуке Морзебуквы «Е» и «Т», которые встречаются часто, кодируются одним знаком (соответственно это точка и тире). А такие редкие буквы, как «Ю» (••--) и «Ц» (-•-•) кодируются четырьмя знаками. Неэффективная кодировка — второе основание для избыточности.

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

Наличие повторяющихся фрагментов — третье основание для избыточности. В текстах это встречается редко, но в таблицах и в графике повторение кодов — обычное явление. Так, например, если число 0 повторяется двадцать раз подряд, то нет смысла ставить двадцать нулевых байтов. Вместо них ставят один ноль и коэффициент 20. Такие алгоритмы, основанные на выявлении повторов, называют методами кодирования длин серий(RLE, Run Length Encoding). Большими повторяющимися последовательностями одинаковых байтов особенно отличаются графические иллюстрации. Метод достаточно эффективен для графических изображений в формате «байт на пиксел» (например, форматыPCXилиBMP).

При создании резервных копий на жестких дисках есть еще одна возможность получения выигрыша в рабочем пространстве при сжатии файлов, которая связана не с избыточностью информации, а с тем, как организована файловая система компьютера. Суть ее заключается в том, что любой файл, большой или маленький, может занимать на диске только целое число кластеров. В файловой системе FAT16 на жестком диске не может быть более 65536 кластеров (216). А это значит, что для дисков размером от 1 до 2 Гбайт размер кластера составляет 32 Кбайт.

При уплотнении большой группы файлов в один файл экономия составляет минимум по 16 Кбайт на каждом файле только за счет сокращения потерь от нерациональной организации файловой системы.

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

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

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