Приложение понятие процесса архивации файлов. От чего зависит степень сжатия файла? Понятие и основные аспекты Степень сжатия архивного файла зависит
В сети сегодня популярны десятки архиваторов, причем, в описание у каждой программы можно встретить что ее алгоритм самый-самый… Решил взять несколько популярных в сети архиваторов, а именно: WinRar, WinUha, WinZip, KGB archiver, 7Z и проверить их в «боевых» условиях.
Небольшое предисловие… Сравнение, возможно будет не слишком объективное. Сравнение ахиваторов проводилось на самом обычном домашнем компьютере, среднем по показателям на сегодняшний день. К тому же не брались различные типы данных: сравнение сжатия проводилось на обычном «вордовском» документе, коих у многих кто учиться или работает с ними - сможет скопиться огромное количество. Ну и логично, что информацию, которую редко используешь - целесообразно запаковать в архив и иногда извлекать. Да и передавать такой файл намного легче: и на флешку быстрее скопируется, нежели куча мелких файлов, да и по интернету быстрее скачается…
Таблица сравнения сжатия
Для небольшого эксперимента был взят сравнительно большой файл RTF - около 3,5 мб и сжат разными архиваторами. Время работы пока не берем, об особенностях работы программ будет рассказано далее, сейчас же только посмотрим степень сжатия.
Программа | Формат | Степень сжатия | Размер, к.байт | Во сколько раз уменьшился размер файла ? |
KGB Archiver 2 | .kgb | максимум | 141411 | 22,99 |
WinRar | .rar | максимум | 190546 | 17,07 |
WinUha | .uha | максимум | 214294 | 15,17 |
7Z | .7z | максимум | 218511 | 14,88 |
WinZip | .zip | максимум | 299108 | 10,87 |
Исходный файл | .rtf | Без сжатия | 3252107 | 1 |
Как видно из небольшой таблички, что самая высокая степень сжатия достигается у программы KGB Archiver 2 - в 23 раза уменьшился исходный размер файла! Т.е. если у вас на жестком диске несколько гигабайт различной документации, которой вы не пользуетесь и хотите удалить (но не покидает чувство, а вдруг пригодится) - не проще ли сжать такой программой и записать на диск…
Но обо всех «подводных камнях» по порядку…
KGB Archiver 2
В общем то не плохой архиватор, по заявлениям разработчиков их алгоритм сжатия один из самых «сильных». Сложно не согласиться…
Только вот скорость сжатия оставляет желать лучшего. Например, файл в примере (около 3 мб) программа сжимала около 3 мин! Нетрудно прикинуть, что один CD диск она будет сжимать пол дня, если не больше.
Но особое удивление вызывает не это. Распаковка файла длиться по времени столько же, сколько компрессия! Т.е. если вы потратили пол дня на то, чтобы сжать часть своих документов, то столько же времени вы потратите, чтобы достать их из архива.
Итог: программу можно использовать для небольших объемов информации, особенно, когда важен минимальный размер исходного файла (например, файл нужно разместить на дискете, или на небольшой по вместимости флешке). Но опять таки, угадать заранее размер сжатого файла нельзя, и возможно, время на сжатие вы потратите впустую…
WinRar
Знаменитая программа на постсоветском пространстве, установлена на большинстве компьютеров. Наверное, если бы она не показывала такие хорошие результаты, у нее бы и не было столько поклонников. Ниже скриншот на котором показаны настройки сжатия, ничего особенного, разве только степень сжатия была поставлена на максимум.
На удивление WinRar сжал файл за несколько секунд, причем размер файла уменьшился в 17 раз. очень достойный результат, если еще учесть что время затраченное на обработку ничтожно мало. А время на распаковку файла - еще меньше!
Итог: отличная программа, показывающая одни из самых лучших результатов. В процессе настроек сжатия можно так же указать максимальный размер архива и программа его разобьет на несколько частей. Это очень удобно, чтобы перенести файл с одного компьютера на другой на флешке или CD/DVD диске, когда целиком файл на не запишешь…
WinUha
Сравнительно молодой архиватор. Назвать его сверх-популярным нельзя, но интерес у многих пользователей к нему кто часто работает с архивами - есть. И не случайно, ведь по заявлениям разработчиков архиватора, его алгоритм сжатия сильнее чем у RAR и 7Z.
В нашем небольшом эксперименте я бы не сказал что это так. Возможно, что на некоторых других данных он и покажет куда лучшие результаты…
Кстати, при установке выбирайте английский язык, на русском - программа выдает «крякозабры».
Итог: неплохая программа с интересным алгоритмом сжатия. Время на обработку и создания архива, конечно, больше чем у WinRar, но на некоторых типах данных можно получить чуть большую степень сжатия. Хотя, лично я бы не стал делать на этом большой акцент…
7Z
Очень популярный бесплатный архиватор. Многие утверждают что степень сжатия в 7z реализована даже лучше чем в WinRar. Вполне возможно, но при сжатии с уровнем «Ультра» на большинстве файлов он проигрывает WinRar’у.
Итог: неплохая альтернатива WinRar’у. Вполне сопоставимая степень сжатия, хорошая поддержка русского языка, удобное встраивание в контекстное меню проводника.
WinZip
Легендарный, один из самых популярных некогда архиваторов. В сети, наверное, самые часто-встречающиеся архивы - это «ZIP». И не случайно - ведь несмотря на не самую высокую степень сжатия, скорость работы - просто поражает. Например, Windows открывает такие архивы как обычные папки!
К тому же не следует забывать, что этот архиватор и формат сжатия намного старше новомодных конкурентов. Да и далеко не у всех сейчас стоят мощные компьютеры, которые позволят быстро работать с новыми форматами. А формат Zip поддерживают все современные архиваторы!
АРХИВАТОРЫ
Сжатие информации – это процесс преобразования информации, хранящейся в файле, путем уменьшения избыточности данных. Целью этого процесса является уменьшения обьема, занимемого данными.
Архивный файл – это специально созданный файл, содержащий в себе один или несколько файлов в сжатом виде.
Степень сжатия : K c =V c /V o *100%
K c – коэффициент сжатия, V c – объем сжатого файла, V o – исходный объем файла.
Степень сжатия зависит от:
1) используемой пограммы – архиватора,
2) метода сжатия,
3) типа исходного файла: текстового, графического, видео, звукового и т.д.
Программы, осуществляющие упаковку и распаковку файлов называются архиваторами. Наиболее распространенными являются: ARJ, ZIP, RAR. Расширение архивных файлов совпадает с названием использованного для их создания архиватора.
Архиваторы позволяют создавать самораспаковывающиеся архивные файлы, т.е. для их распаковки не требуется запуска программы-архиватора, т.к. они сами содержат программу распаковки. Эти архивы называются SFX-архивы
(SelF-eXtracting). Расширение таких файлов *.EXE.
Принципы сжатия информации
В любом тексте встречаются повторяющиеся символы. Возможно указать один символ и число повторений. Еще выше эффективность этого алгоритма применительно к графическим файлам. Если взглянуть на монитор, то можно видеть очень много повторяющихся точек одного цвета. На этом принципе сжатия информации основан формат графических файлов PCX. Современные архиваторы выделяют, не только повторяющиеся символы, но и цепочки символов, отдельные слова.
Если в тексте используются не все символы алфавита ПК, то для их кодирования можно использовать в место одного байта, 8-ми бит, меньше число. Этот принцип используется в телеграфном аппарате, где используются только русские заглавные буквы, для их представления достаточно 5 бит, что позволяет записать в два байта три символа.
3. В следующим принципе используется закономерность что в тексте буквы встречаются с разной частотой. Например в этом тексте пробел самый распространенный символ, очень часто встречаются символы «а», «и». Эти часто встречающиеся символы можно представлять короткой комбинацией битов, остальные символы возможно кодировать более длинной последовательностью. Например:
4. Физически ПК выделяет место для размещения файлов на диске по кластерам - блоками по 4 кБ. Меньше выделить невозможно. Например если файл имеет размер 8193 байта (8 кБ и 1 байт), физически он будет занимать 16 кБ или 16384 байта. Объединение группы файлов в один позволяет сэкономить на этих остатков. При упаковки маленьких файлов это дает большую экономию.
Итого, при отдельном размещении файлов не используются 6 кБ, что составляет 100% от содержания файлов. Во втором случае неиспользуемыми остается 2 кБ, 33%.
Архиватор zip
Запаковка файлов pkzip [ключи] <имя архива> [пути файлов]
Ключи: -rp архивация с подкаталогами с сохранением структуры
SPWD защита архива паролем (PWD)
A добавить файлы в архив
M переместить файлы в архив
V просмотр содержимого архива
Если производится архивация всех файлов каталога, то обязательно указывать маску *.*
Распаковка файлов pkunzip [ключи] <имя архива> [имена файлов]
Ключи: -d распаковка с подкаталогами с сохранением структуры
SPWD пароль архива (PWD)
Архиватор arj
arj <команда> [ключи] <имя архива> [имена файлов]
Для архиватора arj один файл выполняет операции и распаковки и запаковки.
Команды: a архивация
e распаковка без сохранения структуры каталогов
x распаковка с сохранением структуры
l просмотр содержимого архива
m переместить файлы в архив
d удалить файлы из архива
Ключи: -r упаковка с подкаталогами с сохранением структуры
V разбивка архива на тома с объемом vol(если указан)
размер для стандартных дискет (360, 720, 1200, 1440) указывается в килобайтах, размер нестандартных дискет указывается в байтах
V указывается при распаковке многотомного архива
GPWD пароль архива (PWD )
Запаковка файлов
Распаковка файлов
ВведениеАрхиваторами мы пользуемся постоянно. На нашем сайте имеется подробное (пусть и давно написанное) описание наиболее популярных программ-архиваторов (Архиваторы: Взгляд со стороны
), которое мы здесь повторять не будем, а займемся только алгоритмами сжатия, которые применяются в этих программах. В чем здесь проблема? Современные архиваторы предоставляют нам возможность на выбор использовать несколько алгоритмов сжатия. Вот, например, характеристики некоторых программ...
Форматы, поддерживаемые архиваторами
Архиватор | Упаковка и распаковка | Только распаковка |
---|---|---|
WinZip | ZIP | TAR, GZIP, BH, ARJ, LZH, ARC |
WinRar | RAR, ZIP | CAB, ARJ, LZH,TAR, GZ, ACE, UUE, BZ2, JAR, JSO |
WinAce | ACE, ZIP, LHA, MSCAB | RAR, ARC, ATJ, GZIP, TAR ZOO |
7-Zip | 7Z, ZIP, GZIP, TAR, BZIP2 | RAR, CAB, ARJ, CPIO, RPM, DEB, SPLIT |
Power Archiver | TAR, BH, CAB, LHA, ZIP | RAR, ACE, ARJ, GZIP, BZIP2, ARC, ZOO |
В зависимости от обстоятельств, мы применяем архиватор как компрессор, от которого требуется сжать информацию для более быстрой передачи по каналам связи (почта и Интернет). В других случаях большее значение имеет функция собственно архивации, то есть преобразование информации в компактный вид (один файл), чтобы избавиться от разукомплектации и, кроме того, сократить место, занимаемое на диске за счет файловой таблицы. Соответственно, большой интерес представляет показатель сжатия исходной информации и показатель скорости переработки исходной информации. Целью нашего исследования является определение абсолютных и относительных показателей степени сжатия и быстродействия алгоритмов (форматов), которые предоставляются в наше распоряжение архиваторами, указанными в таблице...
Содержание исследования планируется в следующем виде:
1. Создание комплексного и частных (по типам файлов) наборов информации (папок) для проведения испытаний (тестов).
2. Проведение предварительных тестов на комплексном наборе и уточнение (по результатам) плана дальнейших локальных испытаний.
3. Обработка и анализ результатов с обоснованием рекомендаций по практическому применению разных алгоритмов (форматов) архивации.
В качестве показателя степени сжатия принимается процентное отношение размера сжатой папки к ее исходному размеру, а в качестве показателя быстродействия - скорость переработки как частное от деления исходного размера в килобайтах на время переработки в секундах. Собственно, измерения выполняются только в отношении времени (секундомером). Ошибка измерения времени может исказить показатель быстродействия, когда этот показатель очень большой (более 1000 кб/сек). В других случаях ошибкой можно пренебречь.
Определение общих характеристик основных архивных форматов
Для испытаний использовался материал, имитирующий некоторую "пользовательскую корзину", составленную из файлов формата DOC, HTM, JPG, MP3, PDF, TXT. Всего корзина содержит 359 папок и 3337 файлов, и имеет суммарный размер 208893 Кбайт (около 204 Мбайт). Состав этого набора приведен в следующей таблице:Состав набора файлов для испытаний
Тип | Количество папок | Количество файлов | Размер, Кбайт | На диске, Кбайт |
---|---|---|---|---|
TXT | 0 | 2 | 34781 | 34783 |
HTM | 329 | 2869 | 30913 | 36962 |
DOC | 3 | 24 | 31443 | 31474 |
0 | 1 | 33691 | 33694 |
|
JPG | 26 | 430 | 40493 | 41382 |
MP3 | 1 | 11 | 37571 | 37589 |
|
||||
Итого | 359 | 3337 | 208893 | 215884 |
Каждое испытание заключалось в проведении цикла архивации с фиксацией времени работы архиватора от момента нажатия кнопки Add до момента открытия окна с содержанием полученного архивного файла.
Тестировавшиеся программы:
WinZip 8.1 SR-1
WinRar 3.30
WinAce 2.5
7Zip 3.13
Power Archiver 8.70 07b
Информация о конфигурации системы
Процессор Intel Celeron 1700MHz
256 Mb (DDR SDRAM)
HDD ST360015A (60 Gb, 7200PRM)
Windows 2000 Pro, SP3
Результаты испытаний приведены в следующих таблицах:
Результаты тестирования для формата ZIP
Архиватор / Режим | Размер, Кбайт | Время, мин.-сек. | Сжатие | Скорость, Кбайт/с |
---|---|---|---|---|
|
||||
WinZip | |
|||
Без сжатия | 208893 | - | - | - |
Норма | 146408 | 2-00 | 70.0% | 1740 |
Максимум | 145884 | 2-45 | 69.8% | 1266 |
Быстро | 147690 | 1-58 | 70.7% | 1770 |
Очень быстро | 149450 | 1-50 | 71.5% | 1899 |
|
||||
WinRar | |
|||
Обычно | 146 078 | 2-22 | 69.9% | 1471 |
Максимум | 145881 | 3-07 | 69.8% | 1117 |
|
||||
WinAce | |
|||
Норма | 146 418 | 2-28 | 70.1% | 1411 |
Максимум | 145844 | 2-40 | 69.8% | 1305 |
|
||||
7-Zip | |
|||
Норма/Deflate | 145 480 | 3-22 | 69.6% | 1034 |
Ультра/Deflate | 145 341 | 5-55 | 69.6% | 588 |
Ультра/Deflate64 | 144924 | 6-10 | 69.4% | 565 |
|
||||
Power Archiver | |
|||
Норма | 146074 | 3-40 | 69.9% | 950 |
Максимум | 145948 | 3-42 | 69.9% | 941 |
В целом, сжатие, получаемое форматом ZIP, примерно одного порядка, и мало зависит от архиватора - за исключением архиватора 7-ZIP, в котором с помощью изменения метода сжатия можно несколько улучшить показатель и для формата ZIP. Размер словарей (архиваторы WinRar и 7-ZIP) специально в данной серии испытаний не изменялся, а устанавливался автоматически (по умолчанию).
Режим | Размер, Кбайт | Время, мин.-сек. | Сжатие | Скорость, Кбайт/с |
---|---|---|---|---|
Без сжатия | 208893 | - | - | - |
Store | 209129 | 0-58 | 100.1% | 3601 |
Fastest | 144017 | 6-00 | 68.9% | 580 |
Fast | 143281 | 6-22 | 68.6% | 547 |
Normal | 142830 | 6-40 | 68.4% | 522 |
Good | 139826 | 6-58 | 66.9% | 499 |
Best | 140023 | 7-25 | 67.0% | 469 |
Best (64kb) | 140685 | 5-40 | 67.3% | 614 |
В настройке режима возможно изменение размера словаря в пределах 64 - 4096 килобайт. По умолчанию устанавливается максимальный размер (4096 Кб), с которым и получены результаты в данной таблице. Только в строке Best (64kb) был установлен минимальный размер - 64 килобайта. Очевидно, что полученное изменение сжатия и быстродействия может служить аналогом для всех других строк этой таблицы.
Строки Good и Best проверялись, и их значения полностью подтвердились, поэтому нелогичный переход между ними нельзя считать следствием ошибок при тестировании.
Результаты тестирования формата ACE
Режим | Размер, Кбайт | Время, мин.-сек. | Сжатие | Скорость, Кбайт/с |
---|---|---|---|---|
Без сжатия | 208893 | - | - | - |
Normal | 132978 | 8-30 | 63.7% | 410 |
Maximum | 132918 | 8-42 | 63.6% | 400 |
Good | 132925 | 9-50 | 63.6% | 354 |
Fast | 133216 | 8-53 | 63.8% | 397 |
Super Fast | 133273 | 8-46 | 63.8% | 397 |
Store | 209136 | 1-48 | 100.1% | 1934 |
Изменения режима работы архиватора WinAce в нашем случае мало влияют на показатели сжатия - разброс находится в пределах десятых долей процента.
Результаты тестирования формата 7z
Режим | Размер, Кбайт | Время, мин.-сек. | Сжатие | Скорость, Кбайт/с |
---|---|---|---|---|
Без сжатия | 208893 | - | - | - |
Нормальный | 130964 | 9-24 | 64.2% | 362 |
Максимальный | 130000 | 13-51 | 63.7% | 246 |
Быстрый | 141922 | 4-16 | 69.6% | 797 |
Ультра (1 Мб) | 131392 | 8-47 | 64.4% | 387 |
Ультра (6 Мб) | 130101 | 11-40 | 63.8% | 291 |
Ультра (12 мб) | 129871 | 12-47 | 63.7% | 266 |
Ультра (24 мб) | - | - | - | - |
Ультра (Deflate) | 141171 | 3-15 | 69.2% | 1046 |
Ультра (PPMd) | 140171 | 8-45 | 68.7% | 389 |
Ультра (Bzip2) | 135342 | 7-32 | 66.4% | 451 |
Примечание:
Для формата 7z архиватор позволяет устанавливать:
- Уровень (Быстрый, Нормальный, Максимальный, Ультра),
- Метод (LZMA, PPMd, Bzip2, Deflate),
- Размер словаря (32кб - 192 мб),
- Размер слова (8 - 255).
Как видим, возможно очень большое число комбинаций настройки режима работы архиватора, что может сбить пользователя с толку. Можно руководствоваться следующими посылками:
- Чем больше размер словаря, тем больше сжатие и время упаковки. Сжатие возрастает медленно, а время упаковки - вырастает очень сильно.
- То же самое - в отношении размера слова.
- Оптимальные настройки устанавливаются сами (настройки по умолчанию), и без надобности их можно не сбивать.
Результаты тестирования формата CAB
Режим | Размер, Кбайт | Время, мин.-сек. | Сжатие | Скорость, Кбайт/с |
---|---|---|---|---|
Без сжатия | 208893 | - | - | - |
|
||||
PowerArchiver | |
|||
Medium | 140444 | 9-55 | 67.2% | 351 |
Maximum | 137152 | 15-55 | 65.6% | 219 |
|
||||
WinAce | |
|||
Норма | 144374 | 3-24 | 69.1% | 1024 |
Максимум | 138538 | 12-54 | 66.3% | 270 |
Формат CAB (cabinet file) основан на алгоритмах MS-Zip и LZX, поддерживается и применяется фирмой Microsoft. Распаковщики формата имеются в Windows 98 и выше. Алгоритм имеет открытый код и может свободно применяться всеми программистами.
Результаты тестирования форматов BH и LHA
Режим | Размер, Кбайт | Время, мин.-сек. | Сжатие | Скорость, Кбайт/с |
---|---|---|---|---|
Без сжатия | 208893 | - | - | - |
|
||||
PowerArchiver, формат LHA | |
|||
Norma | 147518 | 4-40 | 70.6% | 746 |
Maximum | 147518 | 4-47 | 70.6% | 728 |
|
||||
PowerArchiver, формат BH | |
|||
Norma | 145912 | 2-16 | 69.8% | 1536 |
Maximum | 145718 | 2-34 | 69.8% | 1356 |
Показатели архивных форматов LHA и BH имеют уровень показателей архивного формата ZIP, и каких-то преимуществ не просматривается.
В общем, как видно, наилучшие показатели сжатия обеспечиваются форматами ACE и 7Z. Лучшие показатели быстродействия - показали форматы ZIP и BH. Дальнейшие испытания планируется провести по такой же принципиальной схеме, но с "корзинами" однородного состава, с форматами файлов: TXT, HTML, DOC, JPG, MP3, PDF.
Определение сжимаемости файлов разных форматов
Для обеспечения этой серии испытаний были составлены совершенно однородные по форматам файлов наборы, причем, повторяющиеся файлы в наборе исключались. Файлы EXE и DLL брались из системной папки Windows без всякого отбора. Дело в том, что файлы формата EXE бывают уже сжатыми и дальнейшее их сжатие - не имеет смысла. Характеристики наборов приводятся в следующей таблице:Форматы файлов в наборах для испытаний
Формат | Кол-во папок | Кол-во файлов | Суммарный размер, Кбайт |
---|---|---|---|
TXT | 0 | 27 | 35096 |
HTM | 7 | 1371 | 25076 |
DOC | 1 | 33 | 37211 |
0 | 1 | 33691 |
|
JPG | 26 | 430 | 40493 |
MP3 | 2 | 11 | 37571 |
EXE | 0 | 316 | 32446 |
DLL | 0 | 184 | 40323 |
XLS | 6 | 15 | 17228 |
CHM | 0 | 69 | 33940 |
MPEG | 0 | 24 | 46606 |
WAV | 0 | 1 | 30804 |
BMP | 0 | 15 | 31713 |
AVI | 0 | 89 | 9261 |
При испытаниях использовался только нормальный (обычный) режим работы архиватора. При этом, каждый формат архива создавался собственным архиватором (WinZip, WinRar, WinAce, 7-Zip), для упаковки в формат CAB использовался Power Archiver, который своего (фирменного) формата не имеет.
Сжимаемость файлов в зависимости от формата архива
Формат | ZIP | RAR | ACE | 7Z | CAB |
---|---|---|---|---|---|
TXT | 43.7% | 37.8% | 37.4% | 34.3% | 36.3% |
HTM | 29.2% | 28.3% | 9.09% | 7.75% | 15.0% |
DOC | 8.76% | 6.39% | 5.47% | 5.21% | 6.49% |
97.7% | 97.4% | 97.8% | 97.5% | 97.3% |
|
JPG | 98.5% | 98.5% | 85.0% | 85.1% | 97.9% |
MP3 | 98.1% | 97.9% | 98.1% | 97.9% | 97.7% |
EXE | 46.9% | 42.1% | 37.8% | 32.7% | 39.3% |
DLL | 45.6% | 39.6% | 37.6% | 34.3% | 39.6% |
XLS | 11.8% | 8.27% | 7.44% | 5.97% | 8.49% |
CHM | 98.6% | 98.8% | 99.0% | 99.6% | 98.6% |
MPEG | 95.3% | 94.7% | 94.8% | 94.5% | 94.4% |
AVI | 86.1% | 84.1% | 84.5% | 82.7% | 83.4% |
WAV | 92.2% | 62.8% | 62.6% | 87.0% | 92.1% |
BMP | 63.5% | 31.9% | 30.6% | 51.5% | 56.2% |
|
|||||
Средний показатель | 65.5% | 59.2% | 56.2% | 58.3% | 61.6% |
В качестве комментария к таблице можно отметить следующее:
- Наилучшее сжатие по основным форматам исходных файлов обеспечивается архивным форматом 7z.
- Лучший показатель в среднем имеет архивный формат ACE за счет рекордного сжатия форматов WAV и BMP.
Если говорить о сжимаемости исходных файлов, то можно отметить следующее: показатель сжатия зависит от исходного формата файлов, иногда подразумевающего внутреннее сжатие данных. Если файл предварительно уплотнен по своим алгоритмам, то сжимаемость его архиватором - небольшая. Например, файл формата CHM является уплотненным вариантом файла формата HTML и, соответственно, сжимаемость их - разная. То же мы видим в отношении Wav и MP3, BMP и JPG и так далее.
Скорость работы архиватора, Кбайт/с
Формат | ZIP | RAR | ACE | 7Z | CAB |
---|---|---|---|---|---|
TXT | 2064 | 408 | 386 | 217 | 226 |
HTM | 2507 | 836 | 627 | 643 | 411 |
DOC | 7400 | 2862 | 1550 | 1378 | 886 |
2246 | 293 | 370 | 387 | 370 |
|
JPG | 2670 | 587 | 337 | 368 | 287 |
MP3 | 2348 | 458 | 368 | 335 | 332 |
EXE | 2318 | 773 | 601 | 416 | 433 |
DLL | 2016 | 858 | 672 | 474 | 434 |
XLS | 4300 | 1436 | 1148 | 507 | 224 |
CHM | 1886 | 556 | 365 | 357 | 323 |
MPEG | 2453 | 583 | 416 | 370 | 338 |
AVI | 1852 | 617 | 463 | 370 | 356 |
WAV | 2370 | 1711 | 1184 | 354 | 288 |
BMP | 2883 | 1269 | 933 | 401 | 373 |
|
|||||
Средний показатель | 2838 | 856 | 609 | 485 | 385 |
Эта таблица демонстрирует очевидное правило - за лучшее сжатие почти всегда необходимо платить скоростью упаковки.
Сжимаемость разных форматов файлов. Дополнение
Формат | ZIP | RAR | ACE | 7Z |
---|---|---|---|---|
VXD | 55.1% | 52.5% | 43.3% | 40.8% |
INF | 14.9% | 13.3% | 13.2% | 12.3% |
VBP | 78.3% | 72.6% | 26.0% | 18.5% |
GIF | 90.0% | 94.3% | 87.2% | 86.1% |
SCR | 88.8% | 88.0% | 88.1% | 87.9% |
DAT | 23.1% | 20.1% | 20.5% | 18.0% |
INI | 35.6% | 33.2% | 32.5% | 30.2% |
|
||||
Средний показатель | 55.1% | 53.4% | 44.4% | 42.0% |
Эта таблица содержит дополнительные данные по сжимаемости файловых форматов. Здесь тестирование проводилось без фиксации времени на наборах небольшого объема (100-200 кб). Как видно, по всем форматам наилучшее сжатие дает архивный формат 7z.
Далее, в качестве примера приведу результаты упаковки реального дистрибутива программы Norton Antivirus. Упаковка выполнялась в нормальном режиме, дополнительно получены самораспаковывающиеся варианты этих же архивов. Результат этого испытания приведен в следующей таблице (последняя колонка - примерное время загрузки упакованного дистрибутива по сети при обычном модемном соединении при скорости 2.7 Кбайт в секунду):
Формат архива | Размер, Кбайт | Время | Сжатие | Время загрузки, час.-мин. |
---|---|---|---|---|
Без сжатия | 47410 | - | - | 4-53 |
ZIP | 29045 | 0-21 | 61.3% | 2-59 |
RAR | 26619 | 1-15 | 56.1% | 2-44 |
ACE | 23838 | 1-30 | 50.3% | 2-27 |
7Z | 22871 | 1-50 | 48.2% | 2-21 |
CAB | 26804 | 2-22 | 56.5% | 2-45 |
EXE (RAR) | 26671 | 1-15 | 56.3% | 2-45 |
EXE (ACE) | 23903 | 1-30 | 50.4% | 2-28 |
EXE (7Z) | 22941 | 1-52 | 48.4% | 2-22 |
Результаты таблицы наглядно демонстрируют, что:
При передачи файлов по сети - упаковка практически обязательна.
Упаковка с хорошим сжатием может сократить время передачи файла, в нашем случае - на полчаса.
Применение перспективных форматов ACE и 7Z вполне оправдано уже сейчас в виде самораспаковывающихся архивов. Это обстоятельство желательно учитывать распространителям программной продукции по сети Интернет.
Архиватор 7-ZIP является хорошей программой с высокой степенью сжатия и обладает необходимым минимумом пользовательских удобств. Можно, в частности, удалять и просматривать отдельные файлы без общей распаковки архива. При этом, файлы открываются ассоциативными приложениями системы. Можно дополнять архив отдельными файлами.
Заключение
Программы-архиваторы остаются незаменимым средством упаковки и сжатия цифровой информации. Обработанная информация существенно экономит место на хранителях и время передачи по каналам связи в сети. Наиболее популярными и применяемыми являются сейчас форматы упаковки ZIP и RAR. Другие форматы, например, ARJ, ICE, PAC, ARC и некоторые еще - постепенно вытеснились и подзабылись. Но технология упаковки не стоит на месте. Архиваторы - востребованы, поэтому программисты непрерывно ведут поиск более эффективных методов сжатия. Об этом свидетельствуют и результаты нашего эксперимента. Реально существуют, по крайней мере, два архивных формата (ACE и 7z), которые по сжатию существенно превосходят привычные ZIP и RAR. Применение этих форматов позволит заметно сократить время передачи файлов по сети Интернет, что соответствует интересам многочисленных пользователей...Дополнение от 24 мая 2004 г.
В этом разделе мы рассмотрим влияние опции Solid на показатели работы архиваторов. Напомним, что упаковка с опцией Solid приводит к тому, что в архив нельзя добавить файл и нельзя из него извлечь отдельный файл, архив упаковывается и распаковывается только целиком. В общем случае это может вызывать определенные неудобства при использовании таких архивов. Но иногда такие неудобства могут иметь второстепенное значение в сравнении с преимуществами.Дополнительное тестирование проделано в точности так, как это описано в основном разделе на тех же самых наборах материала. С учетом дополнительного тестирования таблица "Результаты тестирования формата RAR" основного текста стала выглядеть так...
Результаты тестирования формата RAR
Режим | Размер, Кбайт | Время, мин.-сек. | Сжатие | Скорость, Кбайт/с |
---|---|---|---|---|
Без сжатия | 208893 | - | - | - |
Store | 209129 | 0-58 | 100.1% | 3601 |
Fastest | 144017 | 6-00 | 68.9% | 580 |
Fast | 143281 | 6-22 | 68.6% | 547 |
Normal | 142830 | 6-40 | 68.4% | 522 |
Normal (Solid) | 131664 | 9-14 | 63.0% | 377 |
Good | 139826 | 6-58 | 66.9% | 499 |
Good (Solid) | 129314 | 8-24 | 61.9% | 414 |
Best | 140023 | 7-25 | 67.0% | 469 |
Best (Solid) | 129527 | 8-36 | 62.0% | 405 |
Best (64kb) | 140685 | 5-40 | 67.3% | 614 |
Настройка архиватора WinRar включает в себя:
1. Выбор способа сжатия (Normal, Store, Fastest, Fast, Good, Best).
2. Выбор модификации:
- Add and replace files,
- Add and update files,
- Fresh existing files only,
- Syncronize axchive contents.
3. Выбор опции:
- Deleting files after archiving,
- Create SFX archive,
- Create solid archive,
- Put autohenlicity verification,
- Put recovery record,
- Test archived files,
- Lock archive.
Нетрудно заметить, что возможно более сотни комбинаций настроек, определяющих режим работы архиватора. Соответственно и диапазон результатов для этого формата и этого архиватора получился достаточно большим - степень сжатия: 61.9 - 68.9%, скорость: 377 - 614 Кбайт/сек.
Опцию Solid имеет также архиватор WinAce. Но в этом архиваторе опция (Make solid archive) включена постоянно (по умолчанию) и поэтому вошла в результаты тестирования. Таким образом, несправедливость была допущена только для формата RAR и архиватора WinRar.
С учетом новых обстоятельств таблица лидеров по степени сжатия выглядит так:
1. RAR (Good, Solid) - 61.9%.
2. 7-Zip (Максимум) - 62.2%.
3. ACE (Good) - 63.6%.
Дополненная таблица результатов упаковки реального дистрибутива программы Norton Antivirus ("Пример упаковки дистрибутива Norton Antivirus") стала выглядеть так...
Пример упаковки дистрибутива Norton Antivirus
Формат архива | Размер, Кбайт | Время | Сжатие | Время загрузки, час.-мин. |
---|---|---|---|---|
Без сжатия | 47410 | - | - | 4-53 |
ZIP | 29045 | 0-21 | 61.3% | 2-59 |
RAR | 26619 | 1-15 | 56.1% | 2-44 |
RAR (Normal, Solid) | 22745 | 1-21 | 48.0% | 2-20 |
RAR (Good, Solid) | 22680 | 1-28 | 47.8% | 2-20 |
ACE | 23838 | 1-30 | 50.3% | 2-27 |
7Z | 22871 | 1-50 | 48.2% | 2-21 |
CAB | 26804 | 2-22 | 56.5% | 2-45 |
EXE (RAR) | 26671 | 1-15 | 56.3% | 2-45 |
EXE (RAR, Normal, Solid) | 22797 | 1-29 | 48.1% | 2-21 |
EXE (ACE) | 23903 | 1-30 | 50.4% | 2-28 |
EXE (7Z) | 22941 | 1-52 | 48.4% | 2-22 |
Результаты этой таблицы также подтверждают, что архиватор WinRar может обеспечить максимальное сжатие, и по этому показателю является лидером. В сравнении с форматом ZIP загрузка этого же дистрибутива в формате RAR может осуществлена на 39 минут короче...
В таблице с результатами тестирования формата 7z наш читатель Александр Рыхлов обнаружил ошибку в расчете показателя сжатия. Александру большое спасибо, а исправленная таблица "Результаты тестирования формата 7z" стала выглядеть так...
Примечание: в режиме Ультра (LZMA) при задании размера Словаря в 24 мегабайт скорость снизилась настолько, что проведение теста стало невозможным.
Заключение
Назревавшая было сенсация о том, что архиватор WinRar не настолько хорош, как это считают многие пользователи, не состоялась. Наше тестирование подтвердило, что технические характеристики этого архиватора действительно на сегодняшний день самые высокие. Очень близкие показатели имеет архиватор 7-Zip, но по степени отработки и ползовательским качествам последний пока несколько уступает лидеру. Для получения максимального сжатия в архиваторе WinRar необходимо включать опцию Solid (по умолчанию она отключена), другие настройки (Normal, Good и т.д.) - имеют меньшее значение.
Программы-архиваторы предназначены для архивации, (упаковки) файлов путем сжатия хранимой в них информации, в целях экономии места на дисках.
Сжатие информации - это процесс преобразования информации, хранящейся в файле, к виду, при котором уменьшается избыточность в ее представлении и, соответственно, требуется меньший объем памяти для хранения.
Сжатие информации в файлах производится за счет устра нения избыточности различными способами, например, за счет упрощения кодов, исключения из них постоянных битов символов или повторяющейся последовательности символов, введения коэффициента повторения символов и т. п. Применяются различные алгоритмы подобного сжатия информации.
Сжиматься могут как один, так и несколько файлов, которые в сжатом виде помещаются в архивный файл или архив.
Архивный файл (архив, или файл-архив) - это специальным образом организованный файл, содержащий в себе один или не сколько файлов в сжатом или несжатом виде и служебную инфор мацию об именах файлов , дате и времени их создания или модифи кации, размерах и т. п.
Целью упаковки файлов обычно являются обеспечение более компактного размещения информации на диске, сокращение времени и, соответственно, стоимости передачи информации по каналам связи в компьютерных сетях. Кроме того, упаковка в один ар хивный файл группы файлов существенно упрощает их перенос с одного компьютера на другой, сокращает время копирования файлов на диски, позволяет защитить информацию от несанкционированного доступа, способствует защите от заражения компьютерными вирусами.
Степень сжатия зависит от используемой программы-архиватора, метода сжатия и типа исходного файла. Наиболее хорошо сжимаются текстовые файлы и файлы данных, для которых степень сжатия может достигать 80-90%, меньше сжимаются файлы исполняемых программ и загрузочных модулей - 5-40%. Почти не сжимаются архивные файлы.
Программы архивации отличаются используемыми методами сжатия, что соответственно влияет на степень сжатия.
Разархивация (распаковка) - процесс восстановления файлов из архива точно в таком виде, какой они имели до загрузки в ар хив. При распаковке файлы извлекаются из архива и помещаются на диск или в оперативную память.
Большие по объему архивные файлы могут быть размещены в нескольких томах. Такие архивы называются многотомными. Том - это составная часть многотомного архива. Создавая архив из нескольких частей, можно записать его части на несколько дискет.
ОСНОВНЫЕ ВИДЫ ПРОГРАММ-АРХИВАТОРОВ.
Все алгоритмы сжатия оперируют входным потоком информации с целью получения более компактного выходного потока при помощи некоторого преобразования. Основными техническими характеристиками процессов сжатия и результатов их работы являются:
·степень сжатия - отношение объемов исходного и результирующего потоков;
·скорость сжатия - время, затрачиваемое на сжатие некоторого объема информации входного потока, до получения из него эквивалентного выходного потока;
·качество сжатия - величина, показывающая, на сколько сильно упакован выходной поток при применении к нему повторного сжатия по тому же или другому алгоритму.
Алгоритмы, которые устраняют избыточность записи данных, называются алгоритмами сжатия данных, или алгоритмами архивации. В настоящее время существует огромное множество программ для сжатия данных, основанных на нескольких основных способах.
Все алгоритмы сжатия данных делятся на:
) алгоритмы сжатия без потерь, при использовании которых данные на приемной восстанавливаются без малейших изменений;
)алгоритмы сжатия с потерями, которые удаляют из потока данных информацию, незначительно влияющую на суть данных, либо вообще невоспринимаемую человеком.
Существует два основных метода архивации без потерь:
алгоритм Хаффмана (англ. Huffman), ориентированный на сжатие последовательностей байт, не связанных между собой,
алгоритм Лемпеля-Зива (англ. Lempel, Ziv), ориентированный на сжатие любых видов текстов, то есть использующий факт неоднократного повторения "слов" - последовательностей байт.
Практически все популярные программы архивации без потерь (ARJ, RAR, ZIP и т.п.) используют объединение этих двух методов - алгоритм LZH.
Алгоритм Хаффмана.
Алгоритм основан на том факте, что некоторые символы из стандартного 256-символьного набора в произвольном тексте могут встречаться чаще среднего периода повтора, а другие, соответственно, - реже. Следовательно, если $+o записи распространенных символов использовать короткие последовательности бит, длиной меньше 8, а для записи редких символов - длинные, то суммарный объем файла уменьшится.
Алгоритм Лемпеля-Зива. Классический алгоритм Лемпеля-Зива -LZ77, названный так по году своего опубликования, предельно прост. Он формулируется следующим образом: если в прошедшем ранее выходном потоке уже встречалась подобная последовательность байт, причем запись о ее длине и смещении от текущей позиции короче чем сама эта последовательность, то в выходной файл записывается ссылка (смещение, длина), а не сама последовательность.
4.Показатель степени сжатия файлов
Сжатие информации в архивных файлах производится за счет устранения избыточности различными способами, например за счет упрощения кодов, исключения из них постоянных битов или представления повторяющихся символов или повторяющейся последовательности символов в виде коэффициента повторения и соответствующих символов. Алгоритмы подобного сжатия информации реализованы в специальных программах-архиваторах (наиболее известные из которых arj/arjfolder, pkzip/pkunzip/winzip, rar/winrar) применяются определенные Сжиматься могут как один, так и несколько файлов, которые в сжатом виде помещаются в так называемый архивный файл или архив.
Целью упаковки файлов обычно являются обеспечение более компактного размещения информации на диске, сокращение времени и соответственно стоимости передачи информации по каналам связи в компьютерных сетях. Поэтому основным показателем эффективности той или иной программы-архиватора является степень сжатия файлов.
Степень сжатия файлов характеризуется коэффициентом Кс, определяемым как отношение объема сжатого файла Vc к объему исходного файла Vо, выраженное в процентах (в некоторых источниках используется обратное соотношение):
Кс=(Vc/Vo)*100%
Степень сжатия зависит от используемой программы, метода сжатия и типа исходного файла.
Наиболее хорошо сжимаются файлы графических образов, текстовые файлы и файлы данных, для которых коэффициент сжатия может достигать 5 - 40%, меньше сжимаются файлы исполняемых программ и загрузочных модулей Кс = 60 - 90%. Почти не сжимаются архивные файлы. Это нетрудно объяснить, если знать, что большинство программ-архиваторов используют для сжатия варианты алгоритма LZ77 (Лемпеля-Зива), суть которого заключается в особом кодировании повторяющихся последовательностей байт (читай - символов). Частота встречаемости таких повторов наиболее высока в текстах и точечной графике и практически сведена к нулю в архивах.
Кроме того, программы для архивации все же различаются реализациями алгоритмов сжатия, что соответственно влияет на степень сжатия.
В некоторые программы-архиваторы дополнительно включаются средства, направленные на уменьшение коэффициента сжатия Кс. Так в программе WinRAR реализован механизм непрерывного (solid) архивирования, при использовании которого может быть достигнута на 10 - 50% более высокая степень сжатия, чем дают обычные методы, особенно если упаковывается значительное количество небольших файлов однотипного содержания.
Характеристики архиваторов - обратно зависимые величины. То есть, чем больше скорость сжатия, тем меньше степень сжатия, и наоборот.
На компьютерном рынке предлагается множество архиваторов - у каждого свой набор поддерживаемых форматов, свои плюсы и минусы, свой круг почитателей, свято верящих в то, что используемый ими архиватор самый лучший. Не будем никого и ни в чем разубеждать - просто попытаемся беспристрастно оценить самые популярные архиваторы в плане функциональности и эффективности. К таковым отнесем WinZip, WinRAR, WinAce, 7-Zip - они лидируют по количеству скачиваний на софтовых серверах. Рассматривать остальные архиваторы вряд ли целесообразно, поскольку процент применяющих их пользователей (судя по числу скачиваний) невелик.