Архивация файлов, назначение, виды и основные возможности архиваторов.

Алгоритмы и методы архивации

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

Самый простой алгоритм сжатия данных (running) основан на замене повторяющихся битов (в тексте может иметься последовательность одинаковых символов, в графическом файле − закрашенная одним цветом область и так далее). Например , в тексте подряд идут 10 пробелов, которые кодируются 10-ю байтами. При архивации они заменяются 3-мя байтами (первый байт − кодирует заменяемый символ; второй байт − специальный байт «флажка» архивации, который указывает на необходимость развернуть первый байт в последовательность байтов; третий байт указывает количество повторяющихся байтов).

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

Существуют различные методы архивации файлов (ZIP, RAR, ARJ и др.), которые используют вышеописанные и другие алгоритмы архивации.

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


Программы-архиваторы.

Зачем нужны архиваторы; \

Какой архиватор лучше;

Архиватор ZIP:

Архивирование в Total Commander;

Архиватор WinRar;

Архиватор 7-Zip.

Назначение архиваторов - сжатие (архивирование) информации – приведение ее к виду, при котором уменьшается избыточность ее представления. В чем суть?
Если мы напишем текст, в котором 10 раз упоминаются слова "торт " или "компьютер ", то можно создать такой файл , в котором эти слова будет присутствовать один раз, но будет и точная информация, в каких местах текста они упоминались. Такой файл получится гораздо меньшим по занимаемому на диске месту, т.е. он будет как бы сжатым по отношению к исходному.
В общем случае архивный файл – это специальным образом организованный файл, в котором присутствуют данные о типовых или повторяющихся символах или кодах, а также данные о структуре их исходного размещения.

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

Часто задают вопрос: Какой архиватор лучше? Существует достаточно большое количество программ-архиваторов, наиболее популярные из них ARJ, ZIP, RAR, 7-Zip (произносится севэн зип). Если говорить о двух архиваторах - лидерах сервиса - из их большого семейства, то это на мой взгляд

WinRar - платная рограмма, вернее 30 дней бесплатно на тестирование, а потом надо покупать ключ)


7-Zip
- бесплатное программное обеспечение.

У программы WinRar по моему мнению, большое преимущество в том, что она появилась раньше, народ ее освоил и переучиваться особого резона нет.
И это действительно так, если особых требований к сжатию файлов нет. Но если нужно максимально сжать файлы, то эксперимент показывает, что лучше это сделает 7-Zip , причем это касается и загрузочных файлов и музыки и видио,

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

Для извлечения файла из архива необходимо щелкнуть правой клавишей по архиву и в контекстном меню выбрать последовательно «Извлечь все» и для конкретного файла «Извлечь». Вы получите папку с файлом в исходном виде.
Так работают архиваторы, которые называют файловыми. Есть еще и программные архиваторы. Они также создают сжатые архивы, с той разницей, что для извлечения исходных файлов не требуется предварительная распаковка, при запуске архивы распаковываются автоматически. Поскольку это уже исполняемые (программные) файлы, они имеют расширение *.exe.

Если на вашем компьютере установлен файл-менеджер Total Commander, то вы приобретаете достаточно широкие возможности по выбору архиваторов и их настроек, что показано на рисунках ниже:


Допустим, мы хотим сделать архив файла с названием «Заявление». Выбрав этот файл на правой панели (выделен синим цветом), в верхнем меню окна выбираем вкладку «Файл», затем опцию «Упаковать».

Появляется окно «Упаковка файлов» с предложением целого ряда архиваторов, их настроек, выбора опций при архивировании.
При распаковке (извлечении) файла в той же вкладке «Файл» выбираем опцию «Распаковать».

Появляется окно «Распаковка файлов» с предложением пути, куда будет помещен распакованный файл и настроек при осуществлении операции.


Если согласны с предлагаемым размещением программы, жмем "Install". Если нет - выбираем путь, по которому она будет размещена после установки. В конце установки появляется окно, в котором выберем опцию "Finish".


Теперь можем пользоваться архиватором. Для запуска найдем папку с программой и кликнем по значку программы-менеджера:

Впрочем, значок может иметь и другой вид, например:

Возможно это зависит от версии исходного файла.

После запуска открывается основное окно программы. Выберем папку \Temp\ на локальном диске D: и проделаем процедуры разархивации и архивации файла "Заявление". (Кстати, в предлагаемом программой интерфейсе выбор диска производится значком "стрелка вверх", на рисунке слева от поля, в котором указан путь D:\Temp\).

Для того, чтобы извлечь файл из архива, выберем файл (в нашем примере "Заявление.zip"), затем выберем опцию "Извлечь" (синий минус) из меню предложенных в верхней части инструментов. Появится окно с предлагаемыми опциями извлечения

Если мы согласны с предложенными опциями и путем размещения файла, жмем ОК, если нет - выбираем нужные опции и путь.

Чтобы положить какой-либо файл в архив, в предложенном выше рабочем окне архиватора необходимо выбрать опцию "Добавить" (зеленый плюс).
Тогда появится окно с выбором опций архивирования. Также выбираем файл, который хотим положить в архив и выбираем путь, где мы хотим его видеть. В нашем случае мы опять тренируемся с файлом "Заявление". Для начала оставим предлагаемые опции таковыми, какими их предлагает архиватор. Ну а потом, с опытом - выбираем свои, если что-то не устраивает.


Архивация файлов, назначение, виды и основные возможности архиваторов.

Характерной особенностью большинства «классических» типов данных, с которыми традиционно работают люди, является определенная избыточность. Степень избыточности зависит от типа данных. Кроме того, степень избыточности данных зависит от принятой системы кодирования. Так, например, можно сказать, что кодирование текстовой информации средствами русского языка (с использованием русской азбуки) дает в среднем избыточность на 20-30% больше, чем кодирование адекватной информации средствами английского языка.

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

Если методы сжатия информации применяют к готовым документам, то нередко термин сжатие данных подменяют термином архивация данных, а программные средства, выполняющие эти операции, называют архиваторами.

В зависимости от того, в каком объекте размещены данные, подвергаемые сжатию, различают :

Уплотнение (архивацию) файлов;

Уплотнение (архивацию) папок;

Уплотнение дисков.

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

Характерными форматами сжатия с потерей информации являются:

JPG для графических данных;

MPG для видеоданных;

М РЗ для звуковых данных.

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

Характерными форматами сжатия без потери информации являютс я:

GIF, TIP,. PCX и многие другие для графических данных;

AVI для видеоданных;

ZIP, .ARJ, .BAR, .LZH, .LH, .CAB и многие другие для любых типов данных.

«Классическими» форматами сжатия данных, широко используемыми в повседневной работе с компьютером, являются форматы.ZIP и.ARJ. В последнее время к ним добавился популярный формат.RAR.

К базовым функциям, которые выполняют большинство современных диспетчеров архивов, относятс я:

Извлечение файлов из архивов;

Создание новых архивов;

Добавление файлов в имеющийся архив;

Создание самораспаковывающихся архивов;

Создание распределенных архивов на носителях малой емкости;

Тестирование целостности структуры архивов;

Полное или частичное восстановление поврежденных архивов;

Защита архивов от просмотра и несанкционированной модификации.

Самораспаковывающиеся архивы

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

Распределенные архивы.

Некоторые диспетчеры (например WinZip) выполняют разбиение сразу на гибкие диски, а некоторые (например WinRAR и WinArj) позволяют выполнить предварительное разбиение архива на фрагменты заданного размера на жестком диске. Впоследствии их можно перенести на внешние носители путем копирования.

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

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

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

Просмотр файлов различных форматов без извлечения их из архива;

Поиск файлов и данных внутри архивов;

Установку программ из архивов без предварительной распаковки;

Проверку отсутствия компьютерных вирусов в архиве до его распаковки;

Криптографическую защиту архивной информации;

Декодирование сообщений электронной почты;

- «прозрачное» уплотнение исполнимых файлов.ЕХЕ и.DLL;

Создание самораспаковывающихся многотомных архивов;

Выбор или настройку коэффициента сжатия информации.

WinRAR - это 32-разрядная версия архиватора RAR для Windows, мощного средства создания и управления архивными файлами. Для Windows имеются две версии RAR:

1. Версия для командной строки в текстовом режиме - консольная версия;

2. Версия с графическим интерфейсом пользователя.

Функциональные возможности WinRAR следующие:

    полная поддержка архивов RAR и ZIP и управление архивами других форматов;

    просмотр содержимого файлов, в том числе заархивированных;

    поддержка технологии «Drag&Drop»;

    интерфейс командной строки;

    поддержка непрерывных (Solid), многотомных и самораспаковывающихся (SFX) архивов;

    восстановление физически поврежденных архивов;

    запуск программ непосредственно из архива (например, установка новой программы не распаковывая дистрибутив);

    другие дополнительные функции, например: шифрование, добавление архивных комментариев, протоколирование ошибок и пр.

WinRAR может создавать архивы двух форматов: RAR и ZIP. С архивами других форматов WinRAR может выполнять некоторые операции (просмотр содержимого, извлечение и удаление файлов и др.), но не может их создавать и добавлять в них файлы.

При установке WinRAR встраивается в оболочку Windows и в Контекстные меню объектов добавляются соответствующие пункты (рис. 3.7)

Рис. 3.7. Фрагменты контекстных меню файлов/папок и архивов

Оболочка WinRAR имеет два основных режима работы: режим управления файлами (выводится список файлов и папок в текущей папке) ирежим управления архивами (выводится список файлов и папок в архиве). В режиме управления файлами производится работа с файлами и папками, находящимися в папке (в том числе добавление их в архив), а в режиме управления архивами - с файлами и папками, находящимися в архиве (в том числе извлечение их из архива). В разных режимах WinRAR различается операция удаление объектов: в режиме управления файлами объекты удаляются в «Корзину» (если не использовалась комбинация клавиш+), а в режиме управления архивами - удаляются полностью (при этом выводится запрос на подтверждение).

Окно WinRAR содержит следующие элементы:

    меню и панель инструментов (их элементы зависят от режима работы);

    адресную строку;

    рабочее окно для отображения информации о содержимом папки или архива.

    строку состояния (отображает информацию о текущем состоянии и содержит значки «Диск» и «Ключ» для быстрого изменения текущего диска и пароля).

Если включена опция «Показывать комментарий» и в открытом архиве есть комментарий, он выводится справа от списка файлов (рис. 3.8). Ширину окна комментария можно изменить, перетаскивая мышью его левый край.

Рис. 3.8. Архив КИТ.rar в окне программы WinRAR

При создании в WinRAR нового архива или добавлении файлов в архив задаются следующие параметры (рис. 3.9):

    имя архива (при необходимости - путь к нему);

    формат архива - RAR или ZIP;

    метод сжатия - поддерживаются шесть методов архивации: «Без сжатия», «Скоростной», «Быстрый», «Обычный», «Хороший» и «Максимальный» («Максимальный» метод обеспечивает наиболее высокую степень сжатия, но с наименьшей скоростью, «Скоростной» сжимает плохо, но очень быстро, метод «Без сжатия» просто помещает файлы в архив без их упаковки);

    тип архива - SFX, непрерывный или многотомный (для многотомного архива надо указать размер тома).

    метод обновления - с заменой файлов, с обновлением файлов или обновление существующих файлов.

    другие параметры архивации, например.

Создание архивов;

Извлечение файлов из архивов;

Добавление файлов в имеющийся архив;

Создание самораспаковывающихся архивов;

Создание распределённых архивов на носителях малой ёмкости;

Тестирование целостности структуры архивов;

Полное или частичное восстановление повреждённых архивов;

Защита архивов от просмотра и несанкционированной модификации.

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

Распределённые архивы (ещё их называют многотомными архивами) создаются в тех случаях, когда предполагается создание большого архива на носителях малой ёмкости (например, на дискетах). В том случае архив разбивается на фрагменты и записывается на носители.

WinZip выполняет разбиение сразу на гибкие диски. WinRAR и WinArj позволяют выполнить предварительное разбиение архива на фрагменты заданного размера на жёстком диске, затем их можно перенести на внешние носители.

При создании распределенного архива WinZip создает фрагменты архива на гибких дисках с одинаковыми именами, поэтому каждый диск следует маркировать метками на наклейке. В случае необходимости можно узнать номер тома архива по метке на диске (Мой компьютер, КМ для диска А:, Свойства, вкладка Общие – в поле Метка тома можно узнать номер тома распределённого архива).

Архиваторы WinRAR, WinArj маркируют все файлы распределённого архива разными именами.

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

Один из наиболее популярных архиваторов для Windows - WinRAR.

Стандартом на сегодняшний день являются архиваторы типа ZIP.

· Антивирусные программы обеспечивают пользователя необходимыми средствами борьбы с упоминавшимися ранее компьютерными вирусами.

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



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

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

Вирус может «заражать» программу, такая программа способна передавать вирус другим программам и ЭВМ, т.е. заражать их, так же как и заражённый, например, гриппом больной обладает способностью передавать свой вирус другим лицам.

Заражению подвергаются в основном программные файлы типа СОМ, ЕХЕ. Текстовые файлы, т.е. файлы, содержащие тексты программ на языке программирования, тексты документов и т.д. вирусом не заражаются, они могут лишь искажаться. А также могут быть и другие такие как Word и Excel,

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



· программы-доктора «лечат» программы, восстанавливая их первоначальный вид и удаляя при этом из них вирус;

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

К наиболее известным антивирусным российским программам относятся Антивирус Касперского (http://www,kav.ru) и Dr.Web (http://www.drweb.ru). Эти программы уверенно проходят все без исключения тесты и обеспечивают надёжный уровень защиты.

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

Лучшими по функциональности и надёжности среди подобных «комбайнов» являются последние версии Антивируса Касперского иSymantec (Norton) Antivirus. Хорошие результаты демонстрирует также программа Panda Titanium от Panda Software и комплект ZoneAlarm Security Suite . Стоимость всех этих пакетов довольно высока.

Существуют и бесплатные антивирусные программы - например, AVG Antivirus (http://www.grisoft.com) и avast (http://www.avast.com). Возможности у этих программ несколько скоромнее.

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

Наконец, существуют и бесплатные антивирусные «сканеры».. Если полноценные антивирусы все время «висят» в оперативной памяти и сканируют открытый файл или запущенную программу в «теневом» режиме, то сканеры просто проверяют всё содержимое жёсткого диска. Однако обновлять антивирусную базу таких сканеров в автоматическом режиме невозможно - она «зашита» в теле программ, зато новые версии самих сканеров появляются довольно часто. Пожалуй, лучшая программа этого класса Dr.Web Cure.IT! (http://drweb.ru/download/).

Какие существуют архиваторы и чем они отличаются?

Следует различать собственно программу-архиватор, формат архивов и методы сжатия. Даже один и тот же метод сжатия может иметь варианты реализации. Например, существует более десятка программ-архиваторов, которые могут создавать архивы в формате ZIP. В свою очередь данные в формате ZIP могут быть сжаты различными методами: Deflate, Deflate64, BZip2. Метод Deflate имеет несколько реализаций с разной скоростью и степенью сжатия (разница порядка 5%). С помощью этого метода архиватор 7-zip позволяет создавать архивы в формате ZIP и 7Z.

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

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

  • сжатие некоторых файлов и целых директорий;
  • создание самораспаковывающихся (SFX) архивов. То есть для распаковки архива программа-архиватор не требуется;
  • изменение содержимого архива;
  • шифрование содержимого архива;
  • информация для восстановления архива при частичном повреждении и возможность восстановления поврежденных архивов;
  • разбивка архива на несколько частей или томов;
  • консольная версия программы для работы из командной строки;
  • графическая (GUI) версия программы.

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

Кроме различий в функциональности, можно разбить архиваторы на две группы: асимметричные и симметричные. Асимметричные архиваторы требуют для операции распаковки значительно меньше времени и оперативной памяти, чем для операции упаковки. Это позволяет быстро получать содержимое архива на маломощных компьютерах. Симметричные архиваторы требуют для операций упаковки и распаковки одинаковое время и объем оперативной памяти. Использование таких архиваторов на широком парке компьютеров или для оперативного доступа к содержимому архива ограничено. Известный архиватор RAR в качестве основного использует асимметричный словарный метод сжатия, а для текстов может использовать симметричный PPM-метод. Таким образом, распаковка архивов RAR, сжатых с максимальной степенью сжатия, может быть невозможна на компьютерах с ограниченным объемом оперативной памяти. Все или почти все передовые архиваторы с высокой степенью сжатия являются симметричными.

Точной статистики по распространенности архиваторов у меня нет. Я выскажу свою субъективную точку зрения на основе личного опыта. Безусловно, самым распространенным архиватором являются ZIP и его модификации. По своей распространенности он значительно превосходит ближайших конкурентов. Следом идут RAR и ACE. В последние годы встречается архиватор 7-zip. Других архиваторов и архивов лично мы не встречали. Исключение составляют некогда популярные ARJ и LHA. В данный момент они не актуальны из-за очень низкой степени сжатия.

Несмотря на очень скромные данные о распространенности архиваторов, их существует большое множество. Основная масса относится к категории экспериментальных и архиваторов с ограниченной функциональностью. Тем не менее каждый их них позволяет выполнять собственно процедуру сжатия данных. Меньшая распространенность увеличивает вероятность ошибок в программе. К ним стоит относиться с некоторой осторожностью. Например, при проведении тестирования была найдена ошибка в архиваторе WinRK (PWCM), которую, однако, оперативно исправили.

Тестирование максимальной степени сжатия

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

Для разностороннего тестирования и выявления сильных и слабых сторон использовалось несколько наборов данных, требующих различных подходов и методов для хорошего сжатия. Их размер выбран достаточно большим, чтобы архиваторы с большим размером словаря или более эффективно использующие оперативную память могли показать свое преимущество. В сжатом при помощи ZIP виде они занимают размер в районе 15 MB.

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

Стоит подчеркнуть, что выбор исходных данных очень сильно влияет на результаты тестирования. Например, при использовании текстовых (TXT,HTML,DOC,LOG) и мультимедиа (WAV) данных архиватор 7-zip (LZMA) покажет худшие результаты, чем RAR, который имеет специальные методы для таких типов данных. Использование несжимаемых данных (JPG, PDF) покажет мизерную разницу между архиваторами с плохой и хорошей степенью сжатия. Кстати, многие файлы могут содержать как сжимаемую информацию, так и не- сжимаемую. В том числе файлы в формате DOC и PDF.

Сильное влияние оказывает и подбор оптимальных параметров сжатия. Например, по данным www.maximumcompression.com, используещего оптимальные параметры сжатия для каждого набора данных, разница между 7-zip и RAR около 3%, что значительно меньше разницы, полученной в данном тестировании.

Тестовая система

Тестирование производилось на системе: процессор - Athlon XP 2800+, оперативная память - 512 MB.

Набор данных

Данные

Размер

Сжатие ZIP

bak

54.4 MB, 13 файлов

Набор резервных копий. Резервные копии конфигураций (настроек) 1С:Предприятие. Размер файлов от 3 MB до 9 MB. Файлы имеют блочную структуру (compound) и содержат довольно много похожих и одинаковых блоков.
dat

41.5 MB, 4 файла

Сложный набор разнообразных данных. Файлы, содержащие информацию об игровых уровнях (картах) в играх Half-Life 2 и UnrealTurnament 2003.
dbf

69.1 MB, 8 файлов

Файлы баз данных. Файлы таблиц из юридической программы и базы данных 1С:Предприятие небольшого предприятия.
exe

25.3 MB, 3 файла

Исполняемые файлы. Исполняемый файл из игры Half-Life 2, а так же динамическая библиотека и исполняемый файл из пакета MS Office XP.
med

25.5 MB, 27 файлов

Мультимедиа файлы. Несколько файлов изображений в формате PSD, несколько текстур из игр Half-Life 2 и Unreal Tournament 2003 во внутреннем формате, несколько файлов несжатого звука WAV из игры Half-Life 2.
txt

41.4 MB, 472 файла

Текстовые файлы. Текстовые файлы в формате HTML на русском языке (16.5 MB), исходные коды на языках программирования JAVA, Delphi, Python (24.8 MB). Размер файлов от 20 MB.

Архиваторы

Под архиватором понимается программа-архиватор, формат архива и метод сжатия в комплексе. Далее по тексту для выделения этой совокупности используется курсив.

Были выбраны наиболее интересные и яркие с моей точки зрения архиваторы. Для этого протестированы наиболее распространённые архиваторы и лучшие архиваторы по данным http://techlabs.by/click.php?url=http://www.maximumcompression.com/ . Некоторые архиваторы были протестированы, но в итоговые результаты не попали. В том числе 7-zip (PPMd), Compressia, DGCA, DURILCA, EPM, PPMonstr, StuffIt, SBC, WinRK (PPMZ), WinRK (ROLZ). Некоторые архиваторы были отброшены после первых предварительных тестов. Это обусловлено более низкими результатами, без каких либо существенных преимуществ. Тем не менее, такие архиваторы, как Compressia, DURILCA, EPM, WinRK (PPMZ) являются одними из лучших по степени сжатия. Такой малоизвестный архиватор DGCA обладает почти идентичной степенью сжатия, скоростью и функциональностью с RAR, за исключением возможности изменять содержимое архива. При этом он является асимметричным, бесплатным и требует меньше оперативной памяти. Отмечу, что DGCA совершенно другой архиватор, который имеет свои недостатки.

Так как не все протестированные архиваторы поддерживают возможность сжатия папок, для них набор данных предварительно преобразовывался в архив ZIP с нулевой степенью сжатия.

Архиватору Slim немного подыграли. Дело в том, что этот неплохой архиватор может сжимать целые папки, но не использует непрерывный режим сжатия. В результате на тестовом наборе txt он показал сравнительно плохой результат. Если же использовать архив ZIP с нулевой степенью сжатия, тогда на тестовых наборах exe и med степень сжатия получалась значительно хуже. Это объясняется тем, что архиватор Slim использует специальные методы для некоторых форматов файлов. Архив ZIP хоть и содержит несжатые файлы, для Slim представляется только как архив ZIP. Таким образом, для архиватора Slim тестовый набор txt и bak предварительно преобразовывался в архив ZIP с нулевой степенью сжатия.

Архиватор

Версия

Параметры

7zip Format=7z, Compression level=Ultra, Compression method=LZMA, Dictionary size=32 MB, Word size=255
ACE Compression=maximum, Solid=on, V2.0=on, Dictionary=4096 KB
PAQAR Compression option=6
RAR Compression method=best, Solid=on, Advanced compression parameters=(Все включено или авто), Text compression memory to use=128 MB, Dictionary=4096 KB
Slim Use of memory=400 MB
Squeez Format=SQX, Compression rate=maximum, Dictionary size=4096 KB, Multimedia compression=on, EXE compression=on
UHARC Compression mode=PPM, Dictionary size=32768 KB
WinRK Compression method=PWCM, Model size=400 MB
WinUDA Mode-3
ZIP Format=ZIP, Compression method=Deflate, Word size=255

Функциональность и характеристики архиваторов

Указаны характеристики и функциональность только для выбранных параметров. При использовании других параметров эти характеристики могут сильно измениться. Например, WinRK при использовании стандартного метода PPMZ позволяет создавать самораспаковывающиеся (SFX) архивы. Требования к оперативной памяти в основном определены выбранными параметрами и могут быть уменьшены.

7zip ACE PAQAR RAR Slim Squeez UHARC WinRK WinUDA ZIP
Сжатие директорий
Создание самораспаковывающихся (SFX) архивов
Изменение содержимого архива
Шифрование
Восстановление архива
Разбивка архива на части
Консольная версия
Графическая (GUI) версия
Асимметричность
Требования к оперативной памяти, MB
Бесплатность
  1. Не поддерживается непрерывный режим. Архиватор не эффективен при сжатии большого числа маленьких файлов.
  2. Архиватор 7-zip не поддерживает cоздание самораспаковывающихся (SFX) архивов ZIP , однако такая возможность имеется во многих других архиваторах, которые могут создавать архивы ZIP.
  3. Архиватор WinRK не имеет отдельной консольной версии, однако существует возможность работы с архиватором из командной строки.
  4. Архиватор WinUDA имеет консольную версию, но она использует более старый метод сжатия и создаёт несовместимые с графической (GUI) версией архивы.
  5. Архиватор UHARC не имеет отдельной версии с графической оболочкой. Однако существует полнофункциональная сторонняя оболочка WinUHA.
  6. Основной метод сжатия архиватора RAR - асимметричный словарный метод. Однако при максимальном сжатии может использоваться и используется симметричный метод для сжатия текста (PPM).
  7. Если установить автоматическое определение размера оперативной памяти для текстового сжатия, то на тестовых данных и тестовой системе для архиватора RAR требовалось всего 64 MB, а степень сжатия ухудшалась незначительно.
  8. В большинстве архиваторов для создания архивов ZIP требуется значительно меньше оперативной памяти.

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

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

Основными характеристиками программ-архиваторов являются:

1.скорость работы;

2.сервис (набор функций архиватора);

3.степень сжатия - отношение размера исходного файла к размеру упакованного файла.

Степень сжатия файла характеризуется коэффициентом Кс, отражающим процентное отношение объёма сжатого файла Vс к объёму исходного файла Vо: Кс=Vс/Vо*100%

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

Сжатие данных используется очень широко. Можно сказать, почти везде. Например, документы PDF , как правило, содержат сжатую информацию.

Довольно много исполняемых файлов EXE сжаты специальными упаковщиками. Всевозможные мультимедийные файлы (GIF, JPG, MP3, MPG) являются своеобразными архивами.

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

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

Методы сжатия архиваторов

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

Кодирование длин серий (RLE) - сокращение от run - length encoding. Очень простой метод. Последовательная серия одинаковых элементов данных заменяется на два символа: элемент и число его повторений. Широко используется как дополнительный, так и промежуточный метод. В качестве самостоятельного метода применяется, например, в графическом формате BMP .

Словарный метод или метод Лемпела - Зива (LZ) - сокращение от Lempel Ziv - имена авторов. Наиболее распространенный метод. Используется словарь, состоящий из последовательностей данных или слов. При сжатии эти слова заменяются на их коды из словаря. В наиболее распространенном варианте реализации в качестве словаря выступает сам исходный блок данных. Основным параметром словарного метода является размер словаря. Чем больше словарь, тем больше эффективность. Однако для неоднородных данных чрезмерно большой размер может быть вреден, так как при резком изменении типа данных словарь будет заполнен неактуальными словами. Для эффективной работы данного метода при сжатии требуется дополнительная память. Приблизительно на порядок больше, чем нужно для исходных данных словаря. Существенным преимуществом словарного метода является простая и быстрая процедура распаковки. Дополнительная память при этом не требуется. Такая особенность особенно важна, если необходим оперативный доступ к данным.

Энтропийный метод (Huffman - кодирование Хаффмана, Arithmetic coding - арифметическое кодирование) . В этом методе элементы данных, которые встречаются чаще, кодируются при сжатии более коротким кодом, а более редкие элементы данных кодируются более длинным кодом. За счет того, что коротких кодов значительно больше, общий размер получается меньше исходного. Широко используется как дополнительный метод. В качестве самостоятельного метода применяется, например, в графическом формате JPG .

Метод контекстного моделирования (CM) - сокращение от context modeling - контекстное моделирование. В этом методе строится модель исходных данных. При сжатии очередного элемента данных эта модель выдает свое предсказание или вероятность. Согласно этой вероятности, элемент данных кодируется энтропийным методом. Чем точнее модель будет соответствовать исходным данным, тем точнее она будет выдавать предсказания, и тем короче будут кодироваться элементы данных. Для построения эффективной модели требуется много памяти. При распаковке приходится строить точно такую же модель. Поэтому скорость и требования к объему оперативной памяти для упаковки и распаковки почти одинаковы. В данный момент методы контекстного моделирования позволяют получить наилучшую степень сжатия, но отличаются чрезвычайно низкой скоростью.

PPM (Prediction by Partial Matching - предсказание по частичному совпадению). Это особый подвид контекстного моделирования. Предсказание выполняется на основании определенного количества предыдущих элементов данных. Основным параметром является порядок модели, который задает это количество элементов. Чем больше порядок модели, тем выше степень сжатия, но требуется больше оперативной памяти для хранения данных модели. Если оперативной памяти недостаточно, то такая модель с большим порядком показывает низкие результаты. Метод PPM особенно эффективен для сжатия текстовых данных. Предварительные преобразования или фильтрация. Данные методы служат не для сжатия, а для представления информации в удобном для дальнейшего сжатия виде. Например, для несжатых мультимедиа данных характерны плавные изменения уровня сигнала. Поэтому для них применяют дельта-преобразование, когда вместо абсолютного значения берется относительное. Существуют фильтры для текста, исполняемых файлов, баз данных и другие.

Метод сортировки блока данных (BWT) - сокращение от Burrows Wheeler Transform - по имени авторов. Это особый вид или группа преобразований, в основе которых лежит сортировка. Такому преобразованию можно подвергать почти любые данные. Сортировка производится над блоками, поэтому данные предварительно разбиваются на части. Основным параметром является размер блока, который подвергается сортировке. Для распаковки данных необходимо проделать почти те же действия, что и при упаковке. Поэтому скорость и требования к оперативной памяти почти одинаковы. Архиваторы, которые используют данный метод, обычно показывают высокую скорость и степень сжатия для текстовых данных.

Непрерывные блоки или непрерывный режим (Solid mode - непрерывный режим). Во многих методах сжатия начальный участок данных или файла кодируется плохо. Например, в словарном методе словарь пуст. В методе контекстного моделирования модель не построена. Когда количество файлов большое, а их размер маленький, общая степень сжатия значительно ухудшается за счет этих начальных участков. Чтобы этого не происходило при переходе на следующий файл, используется информация, полученная исходя из предыдущих файлов. Аналогичного эффекта можно добиться простым представлением исходных файлов в виде одного непрерывного файла. Этот метод используется во многих архиваторах и имеет существенный недостаток. Для распаковки произвольного файла необходимо распаковать и файлы, которые оказались в начале архива. Это необходимо для правильного заполнения словаря или построения модели. Существует и промежуточный вариант, когда используются непрерывные блоки фиксированного размера. Потери сжатия получаются минимальными, но для извлечения одного файла, который находится в конце большого архива, необходимо распаковать только один непрерывный блок, а не весь архив.

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

Особенности данных Степень сжатия в основном зависит от исходных данных. Хорошо сжимаются почти все предварительно несжатые данные, например, исполняемые файлы (EXE), тексты (TXT , DOC), базы данных (DBF), простые несжатые изображения (BMP). Ограниченно сжимаются несжатый звук (WAV), сложные несжатые изображения (BMP). Не сжимаются почти все уже сжатые данные, например, архивы (ZIP ,CAB), сжатые документы (PDF), сжатая графика и видео (JPG, GIF, AVI, MPG), сжатый звук (MP3). Их сжатие находится в пределах пары процентов за счет служебных блоков и небольшой избыточности.

Для сжатия некоторых специфических данных (текст, несжатые изображения, несжатый звук) существуют специальные методы и архиваторы . Такие архиваторы обеспечивают высокую степень сжатия и высокую скорость. Однако так называемые универсальные архиваторы постепенно дополняются подобными методами. В данный момент только для несжатого звука существуют высокоэффективные специальные архиваторы, такие, как OptimFROG, Monkey Audio. Для текстов и изображений лучшие универсальные архиваторы показывают лучшую степень сжатия. Например, архив изображений получится меньше, если использовать формат BMP и архиватор WinRK вместо специализированных графических форматов, таких как JPEG 2000 (LossLess - сжатие без потерь).

Большое количество типов данных уже являются сжатыми . Использование архиваторов дает мизерное уменьшение размера. Тем не менее даже в таких случаях эффективное сжатие теоретически возможно. Это обусловлено тем, что в большинстве распространенных форматов файлов, использующих сжатие, применены не самые эффективные методы. Например, в основе формата JPG лежит энтропийное сжатие, которое используется после преобразований Фурье. Данные кодируются не оптимальными блоками, что обусловлено желанием сделать формат JPG устойчивым к повреждениям и возможности частичного извлечения информации. Перекодировав файлы JPG при помощи высокоэффективных методов, можно добиться сжатия порядка 75% от исходного файла (архиватор StuffIt). Собственно сам исходный файл JPG сжимается обычными архиваторами только до 96%. Однако подобные манипуляции с файлами JPG стали возможны только недавно и еще не получили распространения. В большинстве случаев сжимать уже сжатые данные бесполезно.

Какие существуют архиваторы и чем они отличаются?

Следует различать собственно программу-архиватор, формат архивов и методы сжатия. Даже один и тот же метод сжатия может иметь варианты реализации. Например, существует более десятка программ-архиваторов, которые могут создавать архивы в формате ZIP. В свою очередь данные в формате ZIP могут быть сжаты различными методами: Deflate, Deflate64, BZip2. Метод Deflate имеет несколько реализаций с разной скоростью и степенью сжатия (разница порядка 5%). С помощью этого метода архиватор 7-zip позволяет создавать архивы в формате ZIP и 7Z.

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

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

Функции архиваторов

1.сжатие некоторых файлов и целых директорий;

2.создание самораспаковывающихся (SFX) архивов;

3.изменение содержимого архива;

4.шифрование содержимого архива;

5.информация для восстановления архива при частичном повреждении и возможность восстановления поврежденных архивов;

6.разбивка архива на несколько частей или томов;

7.консольная версия программы для работы из командной строки;

8.графическая (GUI) версия программы.

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

Классификация архиваторов

1.Файловые архиваторы.

2.Компрессоры.

С файловыми архиваторами многим, наверняка, приходилось сталкиваться. Достаточно перечислить их названия: ZIP, RAR . Такие архиваторы позволяют упаковывать один или несколько файлов в единый архивный файл. Размер архива, как правило, меньше чем суммарный размер исходных файлов.

Компрессоры сжимают за один прием всего один исполняемый файл (типа ЕХЕ) таким образом, что после запуска программа самораспаковывается в оперативной памяти и продолжает свою работу.

Кроме различий в функциональности, можно разбить архиваторы на две группы: асимметричные и симметричные. Асимметричные архиваторы требуют для операции распаковки значительно меньше времени и оперативной памяти, чем для операции упаковки. Это позволяет быстро получать содержимое архива на маломощных компьютерах. Симметричные архиваторы требуют для операций упаковки и распаковки одинаковое время и объем оперативной памяти. Использование таких архиваторов на широком парке компьютеров или для оперативного доступа к содержимому архива ограничено. Известный архиватор RAR в качестве основного использует асимметричный словарный метод сжатия, а для текстов может использовать симметричный PPM-метод. Таким образом, распаковка архивов RAR, сжатых с максимальной степенью сжатия, может быть невозможна на компьютерах с ограниченным объемом оперативной памяти. Все или почти все передовые архиваторы с высокой степенью сжатия являются симметричными.

Точной статистики по распространенности архиваторов нет. Безусловно, самым распространенным архиватором являются ZIP и его модификации. По своей распространенности он значительно превосходит ближайших конкурентов. Следом идут RAR и ACE. В последние годы встречается архиватор 7-zip. Исключение составляют некогда популярные ARJ и LHA. В данный момент они не актуальны из-за очень низкой степени сжатия.

Несмотря на очень скромные данные о распространенности архиваторов, их существует большое множество. Основная масса относится к категории экспериментальных и архиваторов с ограниченной функциональностью. Тем не менее, каждый их них позволяет выполнять собственно процедуру сжатия данных. Меньшая распространенность увеличивает вероятность ошибок в программе. К ним стоит относиться с некоторой осторожностью. Например, при проведении тестирования была найдена ошибка в архиваторе WinRK (PWCM), которую, однако, оперативно исправили.