Принципы архивирования данных. Программы архиваторы.
Архивация - это сжатие одного или более файлов с целью экономии памяти и размещение сжатых данных в одном архивном файле.
Архивация данных - это уменьшение физических размеров файлов, в которых хранятся данные, без значительных информационных потерь.
Архивация проводится в следующих случаях:
- необходимо создать резервные копии наиболее ценных файлов
- необходимо освободить место на диске
- необходимо передать файлы по E-mail
Основным недостатком архивов является невозможность прямого доступа к данным. Их сначала необходимо извлечь из архива или распаковать.
Операция распаковки, впрочем, как и упаковки, требует некоторых системных ресурсов. Это не мгновенная операция. Поэтому архивы в основном применяют со сравнительно редко используемыми данными. Например, для хранения резервных копий или установочных файлов.
Методы сжатия архиваторов.
Кодирование длин серий ( RLE - сокращение от run - length encoding - кодирование длин серий).
Последовательная серия одинаковых элементов данных заменяется на два символа: элемент и число его повторений. Широко используется как дополнительный, так и промежуточный метод. В качестве самостоятельного метода применяется, например, в графическом формате BMP .
_________________________________________________________________________
Предположим, есть некоторый фрагмент данных:
110110110110
В фрагменте наблюдается определенная закономерность. Последовательность " 110 " повторяется четыре раза подряд. Таким образом появляется возможность заменить вышеуказанный фрагмент следующей последовательностью:
КЛЮЧ\повтор\повтор\повтор\
Где под ключом обозначается участок 110, а символ повтора означает, что на его месте должен находиться тот ключ, что и в предыдущем. Если условно сказать, что повтор обозначается как 1 , то исходный фрагмент преобразуется в:
110111
В результате из последовательности длиной двенадцать бит получается последовательность в шесть бит. То есть применение алгоритма кодирования позволило сжать исходный файл в два раза.
Словарный метод ( LZ - сокращение от Lempel Ziv - имена авторов).
Наиболее распространенный метод. Используется словарь, состоящий из последовательностей данных или слов. При сжатии эти слова заменяются на их коды из словаря. В наиболее распространенном варианте реализации в качестве словаря выступает сам исходный блок данных.
Основным параметром словарного метода является размер словаря. Чем больше словарь, тем больше эффективность. Однако для неоднородных данных чрезмерно большой размер может быть вреден, так как при резком изменении типа данных словарь будет заполнен неактуальными словами. Для эффективной работы данного метода при сжатии требуется дополнительная память. Приблизительно на порядок больше, чем нужно для исходных данных словаря. Существенным преимуществом словарного метода является простая и быстрая процедура распаковки. Дополнительная память при этом не требуется. Такая особенность особенно важна, если необходим оперативный доступ к данным.
Энтропийный метод ( Huffman - кодирование Хаффмена, Arithmetic coding - арифметическое кодирование)
В этом методе элементы данных, которые встречаются чаще, кодируются при сжатии более коротким кодом, а более редкие элементы данных кодируются более длинным кодом. За счет того, что коротких кодов значительно больше, общий размер получается меньше исходного.
Широко используется как дополнительный метод. В качестве самостоятельного метода применяется, например, в графическом формате JPG .
Метод контекстного моделирования ( CM - сокращение от context modeling - контекстное моделирование).
В этом методе строится модель исходных данных. При сжатии очередного элемента данных эта модель выдает свое предсказание или вероятность. Согласно этой вероятности, элемент данных кодируется энтропийным методом. Чем точнее модель будет соответствовать исходным данным, тем точнее она будет выдавать предсказания, и тем короче будут кодироваться элементы данных.
Для построения эффективной модели требуется много памяти. При распаковке приходится строить точно такую же модель. Поэтому скорость и требования к объему оперативной памяти для упаковки и распаковки почти одинаковы. В данный момент методы контекстного моделирования позволяют получить наилучшую степень сжатия, но отличаются чрезвычайно низкой скоростью.
PPM ( PPM - Prediction by Partial Matching - предсказание по частичному совпадению).
Подвид контекстного моделирования. Предсказание выполняется на основании определенного количества предыдущих элементов данных.
Метод сортировки блока данных ( BWT - сокращение от Burrows Wheeler Transform - по имени авторов).
Это особый вид или группа преобразований, в основе которых лежит сортировка . Такому преобразованию можно подвергать почти любые данные. Сортировка производится над блоками, поэтому данные предварительно разбиваются на части. Основным параметром является размер блока, который подвергается сортировке. Для распаковки данных необходимо проделать почти те же действия, что и при упаковке. Поэтому скорость и требования к оперативной памяти почти одинаковы. Архиваторы, которые используют данный метод, обычно показывают высокую скорость и степень сжатия для текстовых данных.
Предварительные преобразования или фильтрация.
Данные методы служат не для сжатия, а для представления информации в удобном для дальнейшего сжатия виде.
Например, для несжатых мультимедиа данных характерны плавные изменения уровня сигнала. Поэтому для них применяют дельта-преобразование, когда вместо абсолютного значения берется относительное.
Существуют фильтры для текста, исполняемых файлов, баз данных и другие.
Сегментирование.
Это предварительная разбивка на однородные части. Затем эти части кодируются по отдельности или группами.
Существует большое количество методов сжатия. Каждый метод обычно ориентирован на один вид или группу реальных данных. Хорошие результаты показывает комплексное использование методов.
Особенности данных.
Степень сжатия в основном зависит от исходных данных.
Хорошо сжимаются почти все предварительно несжатые данные.
Ограниченно сжимаются несжатый звук ( WAV ), сложные несжатые изображения ( BMP ).
Не сжимаются почти все уже сжатые данные,
например, архивы ( ZIP , CAB ), сжатые документы ( PDF ), сжатая графика и видео ( JPG , GIF , AVI , MPG ), сжатый звук ( MP 3).
Программы архиваторы.
Архиваторы – это программы (комплекс программ) выполняющие сжатие и восстановление сжатых файлов в первоначальном виде. Процесс сжатия файлов называется архивированием. Процесс восстановления сжатых файлов – разархивированием.
Современные архиваторы отличаются используемыми алгоритмами, скоростью работы, степенью сжатия (WinZip 9.0, WinAce 2.5, PowerArchiver 2003 v.8.70, 7Zip 3.13, WinRAR 3.30, WinRAR 3.70 RU).
Другие названия архиваторов: утилиты - упаковщики, программы - упаковщики, служебные программы, позволяющие помещать копии файлов в сжатом виде в архивный файл.
Следует различать
- программу-архиватор,
- формат архивов и
- методы сжатия.
Кроме собственно сжатия данных, современные архиваторы обеспечивают некоторые дополнительные функции.
Можно выделить несколько основных:
- сжатие некоторых файлов и целых директорий;
- создание самораспаковывающихся (SFX) архивов. То есть для распаковки архива программа-архиватор не требуется;
- изменение содержимого архива;
- шифрование содержимого архива;
- информация для восстановления архива при частичном повреждении и возможность
восстановления поврежденных архивов;
- разбивка архива на несколько частей или томов;
- консольная версия программы для работы из командной строки;
Асимметричные и симметричные архиваторы.
Асимметричные архиваторы требуют для операции распаковки значительно меньше времени и оперативной памяти, чем для операции упаковки. Это позволяет быстро получать содержимое архива на маломощных компьютерах.
Симметричные архиваторы требуют для операций упаковки и распаковки одинаковое время и объем оперативной памяти.
Факторы, влияющие на выбор архиватора.
Приложения и совместимость
Уровень сжатия, скорость и типы данных
Возможность создания многотомных архивов.
Поддержка командной строки (скрипты)
Пароли и шифрование
Дополнительные ограничения (файловые системы)
Функциональность и характеристики архиваторов
(7-zip, ACE, PAQAR, RAR, Slim, Squeez,
UHARC, WinRK, WinUDA, ZIP)
Критерии при выборе архиватора:
Какие объемы предполагается сжимать.
Какой тип данных среди архивируемой информации преобладает.
Удобство интерфейса.