Архивация файлов основана на сжатие данных (data compression), т.е. на алгоритмическом преобразовании данных, производимом с целью уменьшения их объёма путем устранения избыточности, содержащейся в исходных данных.
Простейшим примером избыточности является повторение в тексте фрагментов (например, слов естественного или машинного языка). Подобная избыточность обычно устраняется заменой повторяющейся последовательности ссылкой на уже закодированный фрагмент с указанием его длины. Другой вид избыточности связан с тем, что некоторые значения в сжимаемых данных встречаются чаще других. Сокращение объёма данных достигается за счёт замены часто встречающихся данных короткими кодовыми словами, а редких – длинными (энтропийное кодирование).
Сжатие данных применяется для более рационального использования устройств хранения и передачи данных. Обратная процедура называется восстановлением данных (распаковкой, декомпрессией).
Архивный файл представляет собой набор из нескольких файлов (одного файла), помещенных в сжатом виде в единый файл, из которого их можно при необходимости извлечь в первоначальном виде. Архивный файл содержит оглавление, позволяющее узнать, какие файлы содержатся в архиве.
В оглавлении архива для каждого содержащегося в нем файла хранится следующая информация:
- имя файла;
- размер файла на диске и в архиве;
- сведения о местонахождения файла на диске;
- дата и время последней модификации файла;
- код циклического контроля для файла, используемый для проверки целостности архива;
- степень сжатия.
Для оценки степени сжатияинформации используют количественный показатель коэффициент (процент) сжатия.
Коэффициент сжатия – основная характеристика алгоритма сжатия. Она определяется как отношение объёма исходных несжатых данных к объёму сжатых, то есть:
K = So / Sc,
где k – коэффициент сжатия, So – объём исходных данных, а Sс – объём сжатых данных. Таким образом, чем выше коэффициент сжатия, тем алгоритм эффективнее. Следует отметить:
- если k = 1, то алгоритм не производит сжатия, то есть выходное сообщение оказывается по объёму равным входному;
- если k < 1, то алгоритм порождает сообщение большего размера, нежели несжатое, то есть, совершает «вредную» работу.
Любой из архивов имеет свою шкалу степени сжатия. Чаще всего можно встретить следующую градацию методов сжатия:
- без сжатия (соответствует обычному копированию файлов в архив без сжатия)
- скоростной;
- быстрый (характеризуется самым быстрым, но наименее плотным сжатием);
- обычный;
- хороший;
- максимальный (максимально возможное сжатие является одновременно и самым медленным методом сжатия).