Программы-архиваторы — это программные приложения, предназначенные для формирования архивов, которые позволяют хранить информационные данные в удобном и компактном формате.
Сущность и предназначение архиваторов
Архиваторами называются программные продукты, предназначенные для формирования архивов из информационных данных. Архивы служат для сохранения информации в удобном и компактном формате.
Как правило, информационными данными являются различные файлы и папки в памяти компьютера. Обычно сначала информация проходит процедуру упаковки или сжатия. То есть, все архиваторы одновременно являются и приложением, способным упаковывать данные. Но тогда и все программы, способные сжимать данные, могут считаться архиваторами.
Самым главным параметром архиватора считается эффективность сжатия, которая определяет размер формируемого архива. Чем меньше размеры архива, тем меньше памяти потребуется для его сохранения. При пересылке архивных данных требуется меньшая пропускная способность канала трансляции или же пересылка происходит за более короткий временной интервал. Достоинства архивирования несомненны, учитывая, что размер информационных данных может быть уменьшен в два и более раз.
Главным минусом архивации считается невозможность непосредственного доступа к информационным данным. Данные, прежде всего, нужно вынуть из архива или выполнить их распаковку. Процедуры упаковки и распаковки информационных данных должны быть обеспечены достаточными системными ресурсами, и они выполняются достаточно медленно. По этой причине архивацию используют для данных, которые требуются сравнительно не часто. К примеру, архивации подвергаются резервные копии и установочные файлы. На сегодняшний день разработано достаточно много программ архиваторов, обладающих разной эффективностью и распространённостью.
Принципы работы программ архиваторов
Известно много различных методик архивации информационных данных. Сегодняшние архиваторы, обычно, способны применять целый набор методов архивации, основными из которых являются следующие:
- Осуществление кодирования длин серий (run length encoding, сокращённо RLE).
- Словарная методика (Lempel Ziv, то есть имена авторов, сокращённо LZ).
- Энтропийная методика или кодирование Хаффмана.
- Методика контекстного моделирования (context modeling, сокращенно CM).
- Метод предсказания по частному совпадению (Prediction by Partial Matching, сокращённо PPM).
- Метод предварительного преобразования или фильтрации.
- Метод непрерывных блоков или непрерывного режима.
RLE метод является достаточно простым. Очерёдность одних и тех же компонентов данных подменяется двумя символами, то есть компонент и количество его повторений. Этот метод обширно применяется и как добавочный, и как промежуточный. В отдельных случаях используется и как самостоятельный метод.
Метод LZ считается самой популярной методикой. Здесь применяется словарь, который состоит из наборов информационных данных или слов. При выполнении сжатия осуществляется замена слов на их кодовые обозначения, которые берутся из словаря. В самом известном варианте архиваторов этого типа в качестве словаря принимается непосредственно исходные информационные блоки. Базовым параметром словарной методики считается словарный размер, который напрямую определяет эффективность архиватора. Но следует заметить, что для данных неоднородного типа слишком завышенный размер словаря может принести вред, поскольку при кардинальной смене типа данных словарь заполняется неактуальными словами. Достоинством этого метода является простота и скорость операции распаковки.
В энтропийном методе компоненты данных, наиболее часто встречающиеся, подвергаются кодированию наиболее короткими кодами, а редко используемые компоненты получают более длинные коды. Так как коротких кодов в итоге получается существенно больше, то и суммарный объём архива будет меньше исходного размера данных. Данный метод широко применяется в качестве дополнительного метода.
В методе контекстного моделирования выполняется построение модели исходных данных. При осуществлении сжатия очередного компонента данных такая модель формирует некоторое предсказание или вероятность, в соответствии с которой выполняется кодирование компонента данных по энтропийному методу. Чем более точно модель будет отображать исходные данные, тем точнее будут предсказания, и, соответственно, более короткими станут коды компонентов исходных данных. Но для формирования эффективной модели необходим большой объём памяти, и при разархивации нужно сформировать снова эту модель.
Метод PPM является продвинутым методом контекстного моделирования. Предсказание осуществляется на базе некоторого числа предшествующих компонентов данных. Главным параметром будет порядок модели, задающий это число компонентов. Чем выше порядок модели, тем больше уровень сжатия информации, но необходимо и больше оперативной памяти для сохранения модельной информации.
Метод предварительного преобразования или фильтрации служит собственно не для сжатия, а для отображения данных в удобном для дальнейших преобразований формате. К примеру, для исходных данных в формате мультимедиа присущи плавные колебания уровня сигнала. По этой причине с такими данными используется дельта-преобразование, при котором вместо абсолютной величины берётся относительное значение. Известны фильтры, предназначенные для текстовых данных, исполняемых файлов, информационных баз и так далее.
Метод непрерывных блоков или непрерывного режима имеет ряд достоинств. В большинстве методов сжатия начальные участки информационных данных или файлов слабо поддаются кодировке. К примеру, в словарной методике изначально словарь просто пустой. При контекстном моделировании изначально модель просто отсутствует и её надо формировать. Чтобы этого избежать, в методе непрерывных блоков выполняется простое отображение исходных файлов в формате единого непрерывного файла.