Найти тему

Алгоритмы сжатия 7-zip, какой выбрать?

Бесплатный архиватор 7-zip. Выбираем лучший алгоритм сжатия данных.
Бесплатный архиватор 7-zip. Выбираем лучший алгоритм сжатия данных.

Наверно большинство из нас знает о бесплатном архиваторе 7-zip, но не все представляют, какой алгоритм сжатия подходит именно для наших задач. Давайте вместе разберемся. По состоянию на начало 2021 года доступны следующие варианты:

  • LZMA — немного улучшенная и оптимизированная версия алгоритма LZ77 (впервые разработка была опубликована в 1977 году, как вы понимаете это и привело к названию семейства алгоритмов);
  • LZMA2 — еще более улучшенная версия LZ77, в настоящее время используется в архиваторе 7-zip «по умолчанию». Преимущества перед LZMA: поток может содержать одновременно несжатые и сжатые данные (нет смысла тратить время на сжатие заведомо слабо сжимаемых типов информации), более стабильная поддержка многопоточности при компрессии и декомпрессии (что позитивно сказалось на качестве и скорости работы);
  • PPMD — немного измененная версия алгоритма PPMdH. Представляет собой другой подход к сохранению данных без потерь, а именно — статистический метод. Хорошо показал себя для сжатия текстов на естественном языке. Как минус можно отметить большой объем оперативной памяти для сжатия, невозможность использовать многопоточность;
  • BZip2 — алгоритм BWT, построенный на преобразованиях Барроуза — Уилера. Основной минус — высокая нагрузка на CPU вашего компьютера, медленная скорость работы алгоритма.
-2

Проведя закулисные тесты мы можем сделать выводы:

  • алгоритм LZMA отметаем как устаревший;
  • PPMD как требовательный к ресурсам и не обладающий хорошей гибкостью при сжатии разных типов файлов. Если вам совсем некуда спешить и сжимаете только определенные типы файлов, от имеет смысл рассмотреть этот вариант;
  • BZip2 трудно рекомендовать из-за завышенных требований к компьютерному "железу" и в частности процессору.

А теперь СЮРПРИЗ… остается один алгоритм для использования каждый день — установленный «по умолчанию» LZMA2.

Быстрый, многопоточный, сбалансированный по степени сжатия.

Лучший ли это в мире алгоритм для сжатия данных? Отнюдь нет. Существуют более быстрые, более мощные в плане сжатия. Мы до них еще доберемся в ближайшее время и обязательно рассмотрим.