Делаем из слона муху
Архив"Как уменьшить размер файла?" — еще один вечный вопрос помимо "Что делать?" и "Кто виноват?". Обзор девяти программ-архиваторов поможет найти ответ на него.
«Как уменьшить размер файла?» — еще один вечный вопрос помимо «Что делать?» и «Кто виноват?». Компактные архивы нужны всем — и пользователям, и программистам, и производителям больших программных пакетов. Поэтому архиваторы остаются одной из самых популярных категорий утилит.
В этом обзоре, кроме вполне обычных архиваторов, будут рассмотрены и «более экзотические», которые привлекли внимание автора великолепным сжатием и полезными дополнительными возможностями — по многим параметрам они превосходят конкурентов. Быть может, некоторые из выводов окажутся для вас неожиданными, и вы захотите сменить архиватор, которым обычно пользуетесь.
WinZip
Производитель: WinZip Computing
Сайт: www.winzip.com
Статус: shareware (21 день), $29
Размер дистрибутива: 1,7 Mбайт (версия 8.1)
Самый распространенный формат архивов сегодня — Zip, и самый распространенный архиватор — WinZip. Невысокая степень сжатия (ниже всех архиваторов нашего обзора) компенсируется хорошей скоростью и широкой известностью WinZip (как говорят поклонники других форматов, во многом незаслуженной).
Не достигая главной цели архиватора — хорошего сжатия, — программа привлекает новичков простым интерфейсом, а также мастерами для создания и распаковки архивов. Zip-архивы могут включать в себя комментарии и быть зашифрованными с использованием пароля. Поддержка многотомных архивов в самом формате Zip ограничена: их можно создавать только на дискетах, так как WinZip меняет метку диска, указывая в ней номер тома. Кроме того, WinZip позволяет разбивать архивы на части, но такие архивы не по зубам большинству других распаковщиков.
Стандартная версия WinZip может создавать только простейшие самораспаковывающиеся (SFX) архивы, но модуль распаковки почему-то очень большой — 61 Кбайт. Чтобы запустить программу после извлечения файлов из архива или изменить текст в окне распаковщика, вы должны купить утилиту WinZip Self-Extractor, заплатив еще $49.
Дополнительно WinZip поддерживает распаковку из архивов Cab, GZip, Tar и форматов кодирования UUencode, XXencode, BinHex и MIME; можно подключать архиваторы Arj, Lha, Arc, запуская их как приложение командной строки.
WinZip — один из первых архиваторов с графическим интерфейсом под Windows. Сегодня конкуренты обогнали его и по сжатию, и по удобству интерфейса. Вам может понадобиться WinZip, только если вы нуждаетесь в высокой скорости создания архивов. Платить же деньги за WinZip как за обычный Zip-архиватор, наверное, не стоит: в Интернете можно найти множество его бесплатных аналогов (см., например, www.filzip.com).
Info-Zip
Производитель: InfoZip group
Сайт: www.info-zip.org/pub/ infozip
Статус: freeware
Это не программа, а алгоритм сжатия, доступный программистам для свободного использования. Тем не менее, он вошел в наш тест, так как на нем построено zip-сжатие в Windows Commander, WinRar и во многих других программах. Алгоритм Info-Zip поддерживает многотомные архивы на дискетах, пароли, комментарии и остальные возможности формата Zip.
7-Zip
Производитель: Игорь Павлов
Сайт: www.7-zip.com
Статус: freeware, GPL
Размер дистрибутива: 463 Кбайт (версия 2.24), 978 Кбайт (версия 2.30 beta)
Архиватор 7-Zip позволяет создать хорошо сжатый zip-архив и, кроме того, поддерживает свой формат 7z с очень высокой степенью сжатия и возможностью создания непрерывных архивов. Можно легально пользоваться программой бесплатно, автор лишь просит поддержать разработку, выплатив ему вознаграждение размером в $20.
Основная работа с 7-Zip ведется через оболочку Windows, так что вы можете использовать Проводник, Windows Commander или любой другой файловый менеджер (для Far имеется отдельный плагин), вызывая скромное, но вполне достаточное по возможностям окно добавления файлов в архив. Уникальна способность программы открывать архив прямо в окне Проводника Windows. Есть и поддержка командной строки для операций с архивами.
Новая версия 2.30, которая пока находится в стадии бета-тестирования, содержит собственный файловый менеджер и поддерживает формат 7z. Степень сжатия в этом формате просто невероятна, она существенно превышает возможности коммерческих архиваторов Rar и Ace (см. итоговую таблицу). 7-Zip сжимает долго, но очень хорошо; распаковка идет гораздо быстрее. Используется основанный на LZ алгоритм LZMA (размер словаря до 256 Мбайт) и специальный алгоритм PPMdH для сжатия текстов. Конвертер адресов BCJ2 дает отличное сжатие программных файлов, хотя и требует большого объема оперативной памяти.
Кроме мелких недоработок интерфейса, которые, вероятно, будут исправлены в конечной версии, удручает только размер SFX-модуля: 70 Кбайт для самого примитивного распаковщика. Впрочем, следует учесть, что архиватор использует более сложные алгоритмы сжатия, чем его «коллеги». Вдобавок 7-Zip способен открывать архивы форматов Cab, Rar, Arj, GZip, BZip2, Tar, Cpio, Rpm и создавать GZip-, BZip2-, Tar-архивы. Программа не поддерживает многотомные архивы, комментарии, шифрование в формате 7z и записи для восстановления, но несмотря на это ее можно назвать лучшим архиватором по степени сжатия, который к тому же обладает простым и удобным интерфейсом без лишних «украшательств».
На мой взгляд, когда уровень проработанности интерфейса 7-Zip приблизится к WinRar, можно будет смело отбросить все остальные программы, рассмотренные в этом обзоре, и сказать, что лучше архиватора нет и не может быть.
Microsoft Cab SDK
Производитель: Microsoft
Сайт: www.microsoft.com/ workshop/prog/cab
Статус: freeware, открытый API
Размер дистрибутива: 548 Кбайт (версия 1.00.0601, март 1997 г.)
Поначалу формат Cab (cabinet file) давал невысокую степень сжатия по алгоритму MS-Zip. Но в 1997 году Microsoft добавила поддержку мощного алгоритма LZX, и Cab-архивы стали в среднем даже компактнее, чем старый Rar (до 2.9). Главное достоинство архивов в формате Cab/LZX состоит в том, что Windows версии 98 и выше может открыть их без каких-либо дополнительных программ. Просто дважды щелкните по архиву — появится окно с его содержимым, из которого можно перетащить файлы в другую папку, чтобы распаковать их.
Как это работает Вы никогда не задумывались над тем, как вообще можно сжать данные и уместить в архив множество файлов? Алгоритм LZH, на разных модификациях которого построены все современные архиваторы, использует для этого два шага. |
Выбор формата архива
Простые советы, приведенные ниже, помогут вам выбрать оптимальный формат для конкретной задачи. |
Для сжатия файлов потребуется архиватор CabArc, работа с которым идет через командую строку. Cab-архивы всегда непрерывные, и допаковка архиватором не поддерживается — то есть вы можете только создавать и распаковывать файлы, но не добавлять в уже созданный архив. Не поддерживаются пароли на архивы, записи для восстановления и комментарии. Зато в отличие от Rar и Ace есть возможность более гибко управлять общим словарем в непрерывных архивах и разделением файлов между томами в многотомных (для этого служит программа MakeCab).
Другая приятная неожиданность — Microsoft не держит в секрете алгоритм сжатия «кабинетных файлов». В MS Cab SDK входит, кроме архиватора, подробное описание формата Cab и библиотека для создания и распаковки архивов. Некоторые программисты уже воспользовались ею и написали свои приложения, поддерживающие формат Cab1, что обеспечило продукту Microsoft широкую популярность и дальнейшее развитие, хотя сам Cab SDK не обновлялся с 1997 года.
WinRar
Производитель: Rar Lab
Сайт: www.rarlab.com
Статус: shareware (40 дней), $29
Размер дистрибутива: 970 Кбайт (версия 3.00)
Широко известный в России архиватор Rar обеспечивает неплохую степень сжатия, обладает красивым и функциональным интерфейсом. В новой версии изменился формат файлов, и созданные в ней архивы уже нельзя открыть в Rar ниже 2.9.
Несмотря на это неудобство, обновление формата — безусловный плюс. Тот же Zip не обновлялся коренным образом лет десять-пятнадцать, потому уже давно уступает конкурентам по сжатию и дополнительным возможностям, удерживаясь на плаву только за счет «раскрученности». Архивы Rar 3.0 в большинстве случаев компактнее, чем те, что были созданы в старой версии. Авторы расширили до четырех мегабайт максимальный размер словаря, переработали алгоритмы сжатия и слегка улучшили интерфейс программы. Для сжатия текстов был взят тот же алгоритм, что и в 7-Zip, поэтому при тестировании оба архиватора показали близкие результаты на html-файле.
Как и прежде, Rar позволяет создавать непрерывные и многотомные архивы, шифровать файлы (новая версия использует более стойкий алгоритм AES), добавлять в архивы комментарии и электронную подпись. Последняя возможность доступна только после регистрации, так как электронная подпись основана на имени и регистрационном ключе пользователя WinRar.
Программа хорошо восстанавливает и реконструирует поврежденные архивы. Разговоры о том, что Rar якобы менее надежен, чем Zip, не имеют под собой достаточных оснований. Формат Zip защищен от повреждения оглавления архива, так как оно для надежности записывается два раза: в конец и в начало файла. Зато Rar имеет возможность добавлять в архив избыточную информацию, которая может помочь при частичном повреждении архивного файла. Еще одна функция новой версии архиватора — создание «томов для восстановления», по которым можно восстановить недостающие части многотомных архивов.
Rar позволяет создавать мощные SFX-архивы со скриптами, в которых можно запускать внешние программы, удалять файлы, перезаписывать файлы автоматически или по запросу, менять тексты в окне распаковщика, запускать распаковку, минуя это окно. Последние версии позволяют еще и создавать ярлыки, показывать лицензию и выводить тексты с html-оформлением — это практически все, что нужно для создания простого инсталлятора. Модуль самораспаковки при этом довольно компактен: 45,5 Кбайт в Rar 3.0 и всего 22 Кбайт в 2.80.
Дополнительно поддерживаются архивы формата Zip для сжатия/распаковки и множество форматов только для распаковки: Cab, Arj, LZH, Tar, Gz, Ace, Uue, Bz2, Jar, ISO (образы компакт-диска). Консольная версия Rar дублирует возможности графической. Кроме нее Rar Lab предлагает программу RCVT, преобразующую архивы в пакетном режиме2, и бесплатную, с исходными текстами, программу для извлечения файлов из Rar-архивов. Еще один довод в пользу Rar: у этого архиватора есть версии для всех основных платформ, от Unix до OS/2.
WinAce
Производитель: Ace Compression Software
Сайт: www.winace.com
Статус: shareware (30 дней), $29
Размер дистрибутива: 2,69 Мбайт (версия 2.21)
По своим возможностям WinAce похож на WinRar, как 7-Zip похож на Cab. У 7-Zip и Cab нет шифрования, комментариев, электронной подписи и информации для восстановления. У Rar и Ace все это есть, обе программы дают похожую степень сжатия, обе недавно обновили свои алгоритмы и форматы.
Но интерфейс WinAce существенно отличается от Rar, и не в лучшую сторону. Стандартные значки, налепленные на кнопки «в стиле Office XP», смотрятся тускло и невзрачно по сравнению с оригинальной полноцветной графикой WinRar, которая уже успела стать настоящей визитной карточкой этого архиватора. Окно, показывающее степень выполнения операции, нельзя свернуть, чтобы продолжить работу с архиватором. Курсор при наведении на кнопки и флажки зачем-то меняется на «указующий перст», хотя кнопки панели имеют очень отдаленное отношение к гиперссылкам. Когда установлен режим «Отображать имена файлов как гиперссылки», имена подчеркиваются, но файлы все так же открываются по двойному щелчку, что противоречит самому смыслу гиперссылки.
1 (назад)Например, Ghost Installer (www.ghostinstaller. com) использует Cab для сжатия своих дистрибутивов, благодаря чему он обгоняет по сжатию коммерческие программы вроде InstallShield и Wise Installer.
2 (назад) Теперь RCVT распространяется отдельно от основной версии Rar.
Кроме обычной справки, WinAce показывает несколько html-страниц в основном окне программы. Непонятно, почему те же темы не включили в основной файл справки. Излишества выливаются в весьма большой размер дистрибутива, что вряд ли обрадует пользователей, как и отдельные непродуманные детали в интерфейсе программы.
Но встроенная программа просмотра, поддерживающая разнообразные графические форматы (BMP, GIF, JPEG, TIFF, PSD, PSP, PNG, SGI и др.), заслуживает только похвал: просмотровщик Rar имеет гораздо более скромные возможности. Комментарии в Ace-архивах могут задаваться в HTML.
Неплохо реализовано и создание SFX-архивов: можно указать распаковку не только в каталог Program Files, как в Rar, но и в каталоги Windows, System или Common Files3. Для создания более сложных SFX-архивов предлагается купить отдельную программу SFX Factory за $29. С сайта программы также можно бесплатно скачать программу распаковки Ace-архивов и библиотеки распаковки для использования в своих собственных программах.
WinAce умеет извлекать файлы из архивов Ace, Zip, Lha, Cab, Rar (с поддержкой формата Rar 2.9), Arc, Arj, Gzip, Tar, Zoo, Jar и создавать архивы в форматах Ace, Zip, Lha, Cab, Jar, Gzip, Tar, GZippedTar. Нужно особо выделить Cab среди других слабеньких по сжатию форматов: сжатие в нем иногда превосходит возможности собственного формата Ace. Оптимизатор архивов позволяет в пакетном режиме перепаковать все выделенные архивы в формат Ace. Другие форматы и обработка всех архивов в заданном каталоге не поддерживаются, в отличие от аналогичной утилиты RCVT от производителей Rar.
В целом WinAce можно назвать аналогом WinRar с рядом собственных достоинств и недостатков. Вряд ли этот архиватор когда-нибудь получит широкое распространение в России: существенных отличий от более популярного WinRar у него нет.
SBC
Производитель: Sami J. Mдkinen
Сайт: sbcarchiver.netfirms.com
Статус: shareware (30 дней), $10–20
Размер дистрибутива: 160 Кбайт (версия 0.969 beta)
Несмотря на то что разработка этого архиватора еще не закончена, автор уже просит за него деньги. Впрочем, есть за что: сайт compression.ca, посвященный тестированию архиваторов, называет SBC одним из лучших по сжатию. Кроме того, в нем реализованы мощные криптографические алгоритмы AES, Blowfish, CAST-128, Twofish и Serpent, различные алгоритмы для контрольных сумм: CRC16, CRC32, Adler32, Sum32, MD5, SHA1 и SHA256. Этими алгоритмами шифруются не только файлы, но и оглавление архива (злоумышленник не сможет даже прочитать имена файлов, хранящихся в нем). Так что программа будет полезна хранителям коммерческих и государственных тайн — особенно если автор когда-нибудь сделает для нее полноценную графическую оболочку. Пока же SBC работает только в режиме командной строки.
SBC поддерживает многотомные архивы, большое количество файлов в одном архиве и огромный размер каждого файла (до 16 экзабайт). Программа создает только непрерывные архивы.
Тестовые образцы
Для тестирования я отобрал пять образцов файлов: восемь глав одной книги в формате MS Word, одна веб-страница (только HTML, без графики), программа и два рисунка — 16-цветный и полноцветный (24 бит на точку, 16 млн. цветов).
Первый образец (главы книги), кроме своего очевидного назначения — проверки степени сжатия doc-файлов — показывает существенную разницу между обычными и непрерывными архивами. Главы книги содержат повторяющиеся слова и выражения, и, сжимая их архиватором Zip, мы получаем частично повторяющиеся словари и весьма невысокую компрессию.
Веб-страница с текстом книги из электронной библиотеки была рассчитана на проверку сжатия ASCII-файлов (содержащих только алфавитно-цифровые символы) и, в частности, широко распространенного сегодня формата HTML.
В качестве теста на сжатие exe-файлов взят файл Excel.exe из Office XP. Эта программа содержит электронную подпись, ресурсы с множеством значков, курсоров и даже HTML-файлов — хорошая проверка на сжатие разнородных типов данных.
Три 16-цветных скриншота в bmp не удалось хорошо сжать ни одному распространенному архиватору. Странные результаты показал Rar 3.0, почему-то оказавшись хуже своего предшественника Rar 2.80.
Последний образец, девятимегабайтный скин из поставки Ghost Installer, примерно наполовину состоял из одного байта FF, обозначающего белый цвет на несжатом 24-битном рисунке. Пример довольно искусственный (не каждый день приходится сжимать такие файлы), но он может показать теоретическую способность архиватора устранять избыточность информации.
Дополнительно была проверена скорость сжатия на медленном компьютере Pentium 166 с 64 мегабайтами оперативной памяти: замерялось время создания архива со всеми перечисленными образцами данных.
Часто в тестах приводят цифры для файлов формата wav. Но кто хранит в архивах звуки? Ничего практически полезного этот образец не показывает и лишь сбивает читателя с толку. По той же причине не проверялось сжатие уже сжатых mp3-файлов.
Основной критерий тестирования — степень сжатия. Дополнительно оценивались возможности архивных форматов по хранению информации для восстановления, парольной защите архивов и добавлению комментариев.
Все размеры приводятся в байтах, время — минутах и секундах. Если архиватор предлагает несколько SFX-модулей с разными возможностями, приводится размер наименьшего. Когда проверялось время создания архивов и их размер, все архиваторы были настроены на максимальное сжатие; режимы мультимедиа-сжатия и сжатия отдельных типов файлов (если таковые имелись) были включены.
Как пользоваться результатами тестов? Основной совет: не пытайтесь сравнить общее сжатие таких архиваторов, как Rar, Cab, Ace. Все они сжимают примерно одинаково, но один лучше работает с графикой, другой — с текстами, третий — с программами. Выберите тот тип данных, который вы помещаете в архив чаще всего, и сравнивайте сжатие по нему.
3 (назад) А вот задать каталог «Мои документы» почему-то нельзя.