Сравнение архиваторов RAR и BZIP2 (использование, эффективность, сравнение, писание алгоритмов работы)

Архиватор RAR

RAR — распространённый проприетарный формат сжатия данных и программа-архиватор.

Формат разработан российским программистом Евгением Рошалом (отсюда и название RAR: Roshal Archiver). Он написал программу-архиватор для упаковки/распаковки RAR, изначально под DOS, затем и для других операционных систем. Версия для Microsoft Windows распространяется в составе многоформатного архиватора с графическим интерфейсом WinRAR.

Программа распространяется как условно-бесплатное программное обеспечение (shareware). Для файлов формата RAR обычно используется расширение .rar и MIME-тип application/x-rar-compressed.

Архиватор RAR (так же, как и ARJ) позволяет разбить сжимаемый файл на несколько томов (частей). Это бывает необходимо для записи архива на носители небольшого объёма (дискеты, CD-R). Например, популярный архиватор ZIP не даёт такой возможности.

Для компрессии текстовых данных программа использует алгоритм PPMd, также используемый в 7-Zip и WinZip. PPM (англ. Prediction by Partial Matching — предсказание по частичному совпадению) — адаптивный статистический алгоритм сжатия данных без потерь, основанный на контекстном моделировании и предсказании. Модель PPM использует контекст — множество символов в несжатом потоке, предшествующих данному, чтобы предсказывать значение символа на основе статистических данных. Сама модель PPM лишь предсказывает значение символа, непосредственное сжатие осуществляется алгоритмами энтропийного кодирования, как например, алгоритм Хаффмана, арифметическое кодирование [1].

Длина контекста, который используется при предсказании обычно сильно ограничена. Эта длина обозначается n и определяет порядок модели PPM, что обозначается как PPM(n). Неограниченные модели так же существуют и обозначаются просто PPM*. Если предсказание символа по контексту из n символов не может быть произведено, то происходит попытка предсказать его с помощью n-1 символов. Рекурсивный переход к моделям с меньшим порядком происходит пока предсказание не произойдёт в одной из моделей, либо когда контекст станет нулевой длины (n=0). Модели степени 0 и −1 следует описать особо. Модель нулевого поpядка эквивалента случаю контекстно-свободного моделиpования, когда веpоятность символа опpеделяется исключительно из частоты его появления в сжимаемом потоке данных. Подобная модель обычно пpименяется вместе с кодиpованием по Хаффману. Модель поpядка −1 пpедставляют собой статическую модель, пpисваивающую веpоятности символа опpеделенное фиксиpованное значение; обычно все символы, котоpые могут встpетиться в сжимаемом потоке данных, пpи этом считаются pавновеpоятными. Для получения хоpошей оценки веpоятности символа необходимо учитывать контексты pазных длин. PPM пpедставляет собой ваpиант стpатегии пеpемешивания, когда оценки веpоятностей, сделанные на основании контекстов pазных длин, объединяются в одну общую веpоятность. Полученная оценка кодиpуется любым энтpопийным кодеpом (ЭК), обычно это некая pазновидность аpифметического кодеpа. На этапе энтpопийного кодиpования и пpоисходит собственно сжатие [1].

Большое значение для алгоритма PPM имеет проблема обработки новых символов, ещё не встречавшихся во входном потоке. Это проблема носит название проблема нулевой частоты. Некоторые варианты реализаций PPM полагают счётчик нового символа равным фиксированной величине, например, единице. Другие реализации, как например, PPM-D, увеличивают псевдосчётчик нового символа каждый раз, когда, действительно, в потоке появляется новый символ. (Другими словами, PPM-D оценивает вероятность появления нового символа как отношение числа уникальных символов к общему числу используемых символов).

Опубликованные исследование алгоритмов семейства PPM появились в середине 1980-х годов. Программные реализации не были популярны до 1990-х годов, потому как модели PPM требуют значительное количество оперативной памяти. Современные реализации PPM являются одними из лучших среди алгоритмов сжатия без потерь для текстов на естественном языке. Варианты алгоритма PPM на данный момент широко используются, главным образом для компрессии избыточной информации и текстовых данных. Следующие архиваторы используют PPM [1]:

  • RAR (версии 3 и выше) — реализация варианта PPMd, PPMII;
  • WinZip (версии 10 и выше) — реализация варианта PPMd.

Исходный код распаковщика (unrar) выпущен Рошалом под лицензией, позволяющей свободное распространение и изменение, за исключением условия, что он не будет использован для написания совместимого упаковщика. Несмотря на это существует версия RAR-а, работающая на ZX-Spectrume на процессоре Z80 (ZXRAR). Программа для сжатия и распаковки существует для множества платформ; например, в виде плагина для 7-Zip.

В 2011 году в свободном комплекте утилит для распаковки архивов «The Unarchiver» появилась поддержка RARv3. Архиватор RAR является самой распространенной программой после операционной системы и браузера, ведь большинство программ и в Интернете, и у пользователей хранятся в сжатом виде в архивах.

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

Разработчики WinRAR, выпуская новые версии, постоянно увеличивают скорость извлечения данных из архива RAR. Так, 14 июня 2012 года выпущена последняя на текущий момент версия WinRAR 4.20. Теперь архивы будут распаковываться до 30% быстрее, а значит, станет удобнее работать с мультимедиа-контентом (музыкой, видео и т.п.). Сделаны изменения в поддержке ISO-образов, что позволяет открывать архивы ISO-файлов формата Blu-ray [7]. Доработано окно ввода пароля:

  • функция «Показать пароль» доступна и при извлечении данных;
  • вы можете сохранить часто используемые пароли с помощью средства организации паролей;
  • параметр «Использовать для всех архивов» позволяет применить введенный пароль для всех распаковываемых архивов.

WinRAR больше не поддерживает Windows 98, Windows Me, Windows NT. В отчетах WinRAR в формате HTML или Unicode корректно отображаются неанглийские символы в именах файлов. При создании томов RAR в FAT или FAT32 WinRAR автоматически ограничивает максимальный объем тома до 4 ГБ минус 1 байт, так как эти файловые системы не поддерживают файлы объемом больше 4 ГБ [6].

 
Hosted by uCoz