FreeArc

Feb 17, 2008 16:18

    FreeArc - это относительно новый архиватор, объединяющий в себе лучшие современные алгоритмы сжатия данных. На сайте самого проекта он описывается как "архиватор, сочетающий беспрецедентное соотношение скорости и степени сжатия с широким набором возможностей". FreeArc бесплатен и оупенсорсен. Не так давно он занял первое место в тесте на эффективность на сайте MaximumCompression (в этом тесте учитывается как степень сжатия, так и время работы компрессоров). Разработкой архиватора занимается Булат Зиганшин.

Основные достоинства и возможности:
  1. Автоматическое переключение между различными методами сжатия. Переключение производится на основе анализа расширения файла, однако в ближайшем будущем автор анонсирует переключение на основе анализа содержимого. Подобная функция реализована в WinRAR, и к сожалению отсутствует в 7-Zip.
  2. Методы сжатия, которые используются в FreeArc:
    • PPMd. Разработан Дмитрием Шкариным, представляет собой очень эффективную реализацию алгоритма PPM (prediction by partial match). Хорошо подходит для сжатия текстовых данных. Алгоритм симметричен, т.е. для распаковки требуется приблизительно столько же времени, как и для сжатия. Насколько я понимаю, в FreeArc и 7-Zip используется более поздняя версия PPMd, чем в WinRAR, соответственно при сжатии больших текстов они проявляют себя несколько лучше.
    • LZMA. Разработан Игорем Павловым. Представляет собой чрезвычайно успешную реализацию алгоритма LZ77 (впрочем, там есть и элементы PPM). На мой взгляд, это лучший на сегодняшний день алгоритм сжатия общего назначения. Алгоритм асимметричен - распаковка происходит значительно быстрее, чем сжатие. LZMA входит также в состав 7-Zip, тогда как WinRAR ограничивается собственной реализацией LZ алгоритма, весьма посредственной по современным меркам (к тому же с маленьким размером словаря).
    • GrZip. Разработан Ильей Гребновым. Представляет собой одну из лучших реализаций алгоритма BWT. Как и PPMd, хорош для сжатия текстов. В WinRAR подобный алгоритм отсутствует, а в 7-Zip имеется менее эффективный алгоритм Bzip2.
    • Tornado. Разработан Булатом Зиганшиным. Представляет собой реализацию алгоритма LZ, заточенную для максимально быстрого сжатия, степень сжатия при этом невысока. В WinRAR имеется аналогичный по предназначению алгоритм, в 7-Zip он отсутствует.
    • TTA. Разработан Александром Джуриком. Предназначен для беспотерьного сжатия аудио-данных (сырых wav-файлов). По степени сжатия он уступает известному кодеку Monkey's Audio, но заметно опережает аудио-сжатие в WinRAR. В 7-Zip специализированные алгоритмы сжатия аудио отсутствуют.
  3. Помимо основных методов сжатия, в FreeArc также предусмотрены специальные препроцессоры. С их помощью можно обработать сжимаемые данные перед тем, как они будут поданы на вход одному из основных методов сжатия. В некоторых случаях это позволяет улучшить степень сжатия.
    • EXE. Предназначен для предварительной обработки исполняемых файлов. Позволяет заметно улучшить сжатие за счет преобразований адресов относительных переходов в абсолютные. Аналоги этого препроцессора имеются как в WinRAR, так и в 7-Zip (собственно, exe фильтр в FreeArc представляет собой ни что иное, как BCJ из 7-Zip).
    • REP. Предназначен для поиска повторений на очень длинных дистанциях. Может быть очень полезен, например, для периодического инкрементального бэкапа баз данных. Не имеет аналога ни в одном из широко распространенных архиваторов.
    • LZP. Близок по предназначению к REP.
    • MM. Фильтр для мультимедийных данных, которого так не хватает в 7-Zip. К сожалению (насколько мне удалось выяснить) препроцессор поддерживает только одномерную фильтрацию, т.е. при работе с графическими файлами для каждой точки преобразование производится только на основе цвета левых пикселей, а верхние пиксели не учитываются. Впрочем, даже такая реализация дает результат, позволяющий обойти WinRAR.
    • DELTA. Предназначен для улучшения сжатия табличных данных. Некий аналог имеется в WinRAR, в 7-Zip отсутствует.
    • DICT. Предназначен для улучшения сжатия данных, содержащих устойчивые цепочки байт (слова). Иногда дает довольно ощутимое улучшение сжатия. WinRAR и 7-Zip аналогов не имеют.
  4. Имеется стандартный набор функций: solid-сжатие, шифрование, комментарии, резервная информация для восстановления поврежденных архивов.
    На фоне устаревшего WinRAR и слишком медленно развивающегося 7-Zip (я уже потерял надежду когда-либо увидеть в нем мультимедиа-сжатие и динамическое переключение PPMd/LZMA) архиватор Зиганшина выглядит весьма перспективно. Конечно, в настоящее время он из-за отсутствия GUI не очень интересен широкой публике, но в будущем это может измениться.
    Кстати, обращает на себя внимание список имен авторов алгоритмов, использованных в FreeArc. В общем-то, это неудивительно: большинство самых эффективных методов сжатия сейчас разрабатывается программистами из России (например, в рейтинге "Best overall compression program #2" 7 из 10 лучших компрессоров создано в exUSSR). Сам же автор FreeArc назвал успех своего архиватора в тестировании на MaximumCompression "новой победой русского оружия".
    В общем, FreeArc - весьма достойный проект. Надеюсь, он продолжит свое динамичное развитие.

Материалы по теме:

сжатие

Previous post Next post
Up