4.10.1. Архиваторы


Назначение программ архивации (программ-архиваторов) — экономить место на диске за счет сжатия (упаковки) одного или нескольких исходных файлов в архивный файл. Программы-архиваторы используются для хранения в упакованном виде больших объемов информации, которая понадобится только в бу­дущем; переноса информации между компьютерами с помощью дискет или электронной почты; создания в сжатом виде резерв­ных копий файлов. В результате работы программ-архиваторов создаются архивные файлы (архивы). 

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

Суть этого кодирования заключается в представлении часто встречающихся символов (сочетаний символов) короткими ко­дами, а редко встречаемых – более длинными. Предположим, что в исходной кодируемой последовательности встречаются только n символов: S1 S2, ..., Sn-2, Sn-1Sn с вероятностью появле­ния р1, р2, ..., рn-2, pn-1, Рп. Для простоты будем считать, что сим­волы отсортированы в порядке убывания этой вероятности. Объе­диним два символа Sn-1 и Sn с наименьшими вероятностями появления в один комбинированный символ S и рассчитаем ве­роятность его появления рn-1 + рn. В результате получим после­довательность из п-1 символов: S1, S2, ..., Sn-2, S. В дальнейшем этот символ S участвует в обработке наравне с исходными. Сим­волы опять сортируют в порядке убывания вероятности их по­явления, и повторяют процедуру объединения до тех пор; пока не останется только два символа. Затем в обратном порядке про­исходит кодирование исходных символов. Поясним это следую­щим примером.

Пример 1. Имеется файл, содержащий только символы S1, ..., S4 с вероятностями их появления {0,6 0,2 0,15 и 0,05} соответственно. Требуется представить эти символы сокращен­ным кодом.

Решение. Упорядочим символы по возрастанию вероятностей их появления и объединим по приведенному алгоритму (рис.4.10).



Рис. 4.10. Иллюстрация процесса кодирования информации


На последнем шаге объединения установим, что символ S1 коди­руется 1 (единицей), а код остальных символов имеет первый 0 (нуль). Затем установим, что символ S2 кодируется кодом 01, а коды сим­волов Sи S4 имеют первые 00. Аналогично, на последнем шаге определяем, что код символа S3 равен 001, а символа S4 — 000.

В результате символ S1 кодируется 1 (1 битом), символ S2 — 01 (2 битами), а символы S3 и S4 кодируются 001 и 000 (3 битами каждый). 

Оценим эффект уменьшения размера исходного текста при таком кодировании. Предположим, имеется последовательность из 1000 таких символов S1, ..., S4. Тогда символ, обозначенный через S1, присутствует в последовательности 600 раз, символ S2 — 200 раз и символы S3 и S4 по 150 и 50 раз соответственно. Расчет не сложный, достаточно вероятность появления символа умно­жить на объем выборки. Общая длина закодированной последо­вательности равна: (1x600) + (2x200)+ (3x150) + (3x50) = 1600бит.

Если кодировать символы без учета вероятности их встреча­емости, например символ S1 кодируется через 00, символ S2 че­рез 01 и символы S3 и S4 через 10 и 11 соответственно (каждый символ кодируется ровно двумя битами), то последовательность из 1000 таких символов займет 2x1000 = 2000 бит.

Эффект сокращения длины кода при использовании энтро­пийного кодирования с 2000 бит до 1600 (на 20%) очевиден, а с учетом обычно используемого для представления каждого сим­вола длины кода в 8 бит тем более очевиден (с 8000 бит до 1600 — то есть в 5 раз).

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

В реальных программах-архиваторах процедура поиска и пе­рекодировки намного сложнее.

Типовые функция программ-архиваторов состоят в помещении исходных файлов в архив,    извлечении файлов из архива,   удалении файлов из архива,  просмотре оглавления архива,   верификации (проверки) архива.

Первые программы-архиваторы были ориентированы на ра­боту под управлением MS DOS: ARJ, PKZIP/PKUNZIP, РАК, LHA, RAR. Эти программы отличались форматом архивных файлов, скоростью работы, степенью сжатия файлов в архиве, интерфейсом пользователя. Общим их недостатком являлся не­достаточно удобный интерфейс. Пользователю необходимо было помнить форматы команд и постоянно указывать их в команд­ной строке. Этого недостатка лишены программы-архиваторы, ориентированные на работу под управлением ОС Windows. 

Некоторые из современных программ-архиваторов представлены в табл.4.5.

Сре­ди современных программ-архиваторов выделяют WinRAR (раз­ра-ботка Е. Рошал) и WinZip фирмы Niko Mak Computing (а также ряд других).

 

Таблица 4.5

Различные типы современных архиваторов

п/п

Наименование архиватора

(объем в Кб или Мб)

Краткий комментарий

1.

7-Zip 4.30 Alpha 6 (256 Кб)

Поддерживает работу с многими архивными форматами (ZIP, CAB, RAR, ARJ, GZIP, BZIP2, TAR и др.); имеется собственный формат архивов 7z  по степени сжатия значительно превосходящий  zip и rar.

2.

ARiD v0.02 (12Kb)

Идентификатор архивов; определяет 145 архивных форматов;  GUI интерфейс.

4.

Advanced Shell for UPX v1.25 (353Kb)

Windows оболочка для популярного упаковщика исполняемых файлов UPX.

5.

Advanced Zip Repairer 1.53 (792Kb)

Предназначена для восстановления поврежденных ZIP и самораспаковывающихся (SFX) архивов.

6.

Alpha ZIP 1.1 (2.8Mb)

Полностью встраивается в Windows и позволяет работать с архивами как с обычными папками, поддерживает 216 архивных форматов.

7.

AnyZip v1.00 (2.4Mb)

Архиватор для Windows.

8.

ArcConvert 0.33 (3.7Mb)

Преобразовывает архивные файлы из одного формата в другой.

9.

Archivarius v1.1.5 (1.4Mb)

Поддерживает  ZIP, RAR, ACE, ARC, ARJ, BH, CAB, ENC, GZ, HA, JAR, LHA, LZH, PAK, PK3, TAR, TGZ, UU, UUE, XXE, Z и ZOO; преобразовывает один тип архива в другой.

10.

ArchiveXpert v2.02.80 (1.6Mb)

Позволяет извлекать, изменять, и создавать новые архивы; поддерживает более 25 популярных форматов (ACE, ARC, ARJ, BH, CAB, ENC, GZ, HA, JAR, LHA, LZH, PAK, PK3, RAR, TAR, TGZ, UU, UUE, XXE, Z, ZIP, ZOO).

11.

AutoZip 4.3 (770Kb)

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

12.

BitZipper 4.0 (2.1Mb)

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

13.

CAM UnzZip 4.0 (854Kb)

Позволяет создавать, просматривать и распаковывать архивы в формате ZIP; поддерживает длинные имена файлов.

14.

CCZip 5.1 (1.5Mb)

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

15.

Cabinet Manager 2003 v4.1 (1.1Mb)

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

16.

ChilkatZip Self-Extractor 1.0.0 (228 bytes)

Позволяет создавать самоизвлекающиеся архивы из архивов обычных (формат ZIP);  может также зашифровывать содержимое архива (128, 192, 256-bit).

17.

Easy Backup for Outlook Express v1.51 (862Kb)

Позволяет создавать резервные копии, а следовательно и восстанавливать данные Outlook Express (сообщения, настройки учетной записи, правила сообщений, записную книгу и т.п.) – особенно полезна при переустановке Windows.

18.

ExpressZIP 3.2 (5.1Mb)

Поддерживает функции Drag&Drop; позволяет создавать и распаковывать zip-архивы (в том числе и самораспаковывающиеся); кроме того может служить для распаковки форматов ACE, RAR, CAB.

19.

Jetpak 2.0 Alpha (309Kb)

Работает с архивами ZIP, RAR и ACE; интегрируется в оболочку Windows, добавляя новый пункт в контекстное меню.

20.

MyPhotoZip Pro (4.2Mb)

Предназначена для сжатия изображений;  помогает отправлять по e-mail цифровые фотографии с высоким разрешением.

21.

PowerArchiver 2006 9.51 (3.2Mb)

Поддерживает форматы архивов: ZIP, CAB, LHA (LZH), TAR, TAR.GZ, TAR.BZ2, BH (BlakHole), RAR, RAR v3.0, ARJ, ARC, ACE, ZO; имеет внутреннее средство просмотра TXT, RTF, BMP, ICO, WMF, EMF, GIF и JPG файлов.

22.

UltimateZip v2.7.1 (3.3Mb)

Поддерживает 16 типов архивов: Ace, Cab, Lha, Rar, GZip, Zip и т.д.; имеет функции отправки файлов по почте, шифрования и восстановления файлов.

23.

WinAce 2.6 Beta 2 (3.5Mb)

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

24.

WinZip 10.0 Build 6667 Final (5.6Mb)

Новая версия мощного, многофункционального архиватора от WinZip Computing, Inc.

25.

ZipZag 1.44 (2.1Mb)

Позволяет обрабатывать ZIP, 7ZIP, ACE, ARC, ARJ, BZ2, BZA, CAB, CPIO, CZIP, DEB, EAR, ENC, GCA, GZ, GZA, JAR, LHA, LZH, LZS, PAK, PK3, RAR, RPM, TAR, TAR.Z, TAZ, TZ, TAR.BZ2, TBZ, TB2, TBZ2, TAR.GZ, TGZ и др.


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

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