Очень компактный бесплатный файловый компрессор

Не могли бы вы порекомендовать мне компрессор файлов без потерь для общего использования, который более экономичен, чем стандартное сжатие ZIP? Конечно, чем лучше он сжимается, тем лучше…

Он должен удовлетворять следующим дополнительным критериям:

  • Сжимает файлы и каталоги (может содержать внутреннюю структуру каталогов).
  • Должна быть разработана для эффективной работы с размерами входных файлов от 1 до 200 МБ.
  • Защита паролем хороша, но необязательна.
  • Сжимает как текст, так и мультимедийные файлы (MP3, EXE, фильмы, фотографии), в большинстве случаев не увеличивая их.
  • Бесплатное использование.
  • Количество времени, которое требуется для сжатия файлов, не является очень важным критерием, пока оно завершается за «разумное» время (и я имею в виду, что несколько часов на обычном настольном компьютере могут хватить на несколько сотен сжатых файлов). мегабайт входных данных, но несколько сотен лет, вероятно, неприемлемы).
  • Кроссплатформенность (Windows, Linux и OS X) предпочтительна, но не обязательна.

Поскольку я ищу что-то более компактное, было бы здорово, если бы вы сравнили свою рекомендацию со стандартным сжатием ZIP.

Примечание . Я не прошу «лучший» инструмент. Я ищу «инструменты более эффективные, чем ZIP» , которые соответствуют указанным критериям. В конце концов, я решу для себя, какие рекомендации мне нравятся больше всего .

Этот вопрос обсуждается на мета: meta.softwarerecs.stackexchange.com/questions/185/…

Ответы (4)

Компрессоры PAQ (официальный сайт здесь ) очень эффективны (как в отношении размера сжатого файла). Это происходит за счет скорости и использования памяти (примечание: это верно только для некоторых экспериментальных версий PAQ).

PAQ выиграл приз Хаттера и вызов Калгари .

ПРИМЕЧАНИЕ. Архив ведения журналов открытого стандарта ZPAQ является кульминацией всех экспериментальных библиотек PAQ.

ZPaQ использует дедупликацию, многопоточность и ряд алгоритмов сжатия (LZ77, BWT и смешивание контекста) для обеспечения высокой производительности.

ОБНОВЛЕНИЕ: для ZPAQ создана оболочка с графическим интерфейсом (с использованием .Net), которая называется winzpaq. Вы можете прочитать примечания к выпуску здесь и скачать последнюю версию прямо с этого сайта. На момент этого редактирования он работает в Windows, но, судя по примечаниям к выпуску, он может работать и в Linux (из-за Mono).


ОБНОВЛЕНИЕ: я рассмотрю список критериев:

  • Сжимает файлы и каталоги (может содержать внутреннюю структуру каталогов).
  • Да, большинство версий PAQ будут делать это ( paq8hp12any — это специализированная версия PAQ8hp, в которой специально указано , что она не сжимает и не создает каталоги ).
  • Должна быть разработана для эффективной работы с размерами входных файлов от 1 до 200 МБ.
  • Этот тест показывает, что различные утилиты PAQ смогли сжать текстовый файл enwik8 размером 100 МБ (используемый в тесте сжатия большого текста ) менее чем до 20 МБ (тогда как тот же тест показывает ZIP при сжатии уровня 9 примерно при 36 МБ).
  • Защита паролем хороша, но необязательна.
  • ZPAQ (который на самом деле является кульминацией всех экспериментальных библиотек PAQ, помещенных в утилиту сжатия общего назначения) поддерживает шифрование паролей (об этом упоминается в разделе « История » начиная с версии 6.44).
  • Сжимает как текст, так и медиафайлы (mp3, exe, фильмы, фотографии), в большинстве случаев не увеличивая их.
  • Хотя мне не удалось найти непосредственного упоминания о mp3/exe/movies, тест Silesia Open Source Compression Benchmark был протестирован на различных типах файлов (Windows DLL, двоичные файлы, изображения DICOM, PDF, текст ASCII), а различные библиотеки PAQ превзошли различные утилиты zip. . На первый взгляд (данных много), все файлы были меньше оригинала (исходные размеры файлов находятся внизу списка). В этом тесте также упоминается возможность сжатия файлов JPG .
  • Бесплатное использование.
  • Согласно официальному веб-сайту ZPAQ , zpaq является бесплатным и открытым исходным кодом (GPL v3).
  • Количество времени, которое требуется для сжатия файлов, не является очень важным критерием, пока оно завершается за «разумное» время (и я имею в виду, что несколько часов на обычном настольном компьютере могут хватить на несколько сотен сжатых файлов). мегабайт входных данных, но несколько сотен лет, вероятно, неприемлемы).
  • Скорость будет зависеть от используемой вами версии PAQ. Когда я изучал их, чтобы улучшить этот ответ, я заметил, что библиотека ZPAQ значительно улучшила скорость и по-прежнему имеет коэффициент сжатия, близкий к некоторым экспериментальным библиотекам, которые намного медленнее. На основе библиотеки ZPAQ здесь есть хороший бенчмарк :

Следующее сравнение взято из эталонного теста 10 ГБ (10 ГБ в 83 437 файлах и каталогах) с настройками по умолчанию для резервной копии Core i7 M620, 2,66 ГГц, 4 ГБ на внешний жесткий диск USB в Ubuntu Linux.

  Archiver    Size     Compress  Extract  License
  --------    -------  --------  -------  ------- 
  zip         4844 MB  1206 sec  229 sec  Free, open source with specification
  rar         4493 MB  1423 sec  239 sec  Commercial, unrar is free and open source
  7zip        3892 MB  6593 sec  472 sec  Free, open source
  freearc     3711 MB  1448 sec  422 sec  Free, open source
  zpaq        3825 MB   379 sec  249 sec  Free, open source with specification
Я бы сказал, что теперь это отличный ответ - на самом деле, возможно, лучше, чем мой ответ. Меня также интересует это сравнение; возможно, придется попробовать ZPAQ самому и подумать об использовании его вместо этого, если он работает хорошо и этот тест правильный, и обычно для немного лучшего сжатия требуется 1/20 времени 7z .
@Nick-BriarMoonDesign: я только что впервые попробовал ZPAQ (в основном я использовал PAQ8f около 5 лет назад). Я сравнил 7zip (параметры по умолчанию из контекстного меню в файл .7z) и zpaq (параметры по умолчанию из командной строки). Я попытался сжать каталог с книгами по программированию (221 файл, 8 папок, 690 МБ... в основном PDF и несколько epub). 7zip - 1m 23s - 419 MB. ZPAQ - 14s - 423 MB. Таким образом, при примерно той же степени сжатия ZPAQ был намного быстрее.
+1. На самом деле, я заинтригован этим компрессором и обязательно попробую сам, у него даже есть API на C++. Спасибо за рекомендацию.
@IvayloSlavov: Пожалуйста. Автор инструмента, безусловно, провел много исследований в области сжатия. Он прошел долгий путь с тех пор, как я впервые попробовал его примерно в 2006/7 году.

Лично я рекомендую 7-zip , использующий формат архива 7z и алгоритм сжатия LZMA2.

  • Поддерживает относительную структуру каталогов.
  • Он предназначен для полной функциональности с размерами файлов до «16 000 000 000 ГБ» (для простоты вы можете прочитать это как 16 экзабайт).
  • довольно качественное шифрование — AES-256 — поэтому безопасность в основном зависит от качества пароля.
  • Даже с очень плохими несжимаемыми типами файлов раздувание ОЧЕНЬ минимально.
  • Бесплатный и в основном с открытым исходным кодом
  • Довольно быстро - около 350 МБ музыки (что я только что сделал, чтобы дать хорошее число) с LZMA2 при 2-м наивысшем сжатии занимает ~ 4 минуты на разумном ноутбуке (2 ГБ оперативной памяти, Win7, процессор Intel i7).

Графический интерфейс поддерживает только Windows, но для командной строки доступны сборки Linux (хотя я лично их не использовал - в отличие от строки cmd для версии Windows, которую я использовал довольно значительно (1))

(1): прочитано: протестировано сотни команд для извлечения и сжатия из программы Python (Wrye Bash)

Инструменты POSIX cli подходят для большинства целей. Я определенно рекомендую это, так как большинство инструментов теперь могут извлекать файлы 7z, поэтому большинство людей смогут их извлечь.
Имейте в виду, что 7z не сохраняет права доступа к файлам в Linux, если только они не исправили это недавно.

Я хотел бы создать gzip и bzip2 . Эти два формата очень распространены в системах POSIX (например, Linux) и доступны почти во всех из них, поэтому они также проникли в окружающую экосистему (например, MySQL).

Оба они сжимают только файлы и, таким образом, обычно сочетаются с tar(которые объединяют файлы) yield .tar.gzи .tar.bzfiles

преимущества:

  • (Оба) Очень распространены в экосистеме POSIX
  • gzip очень быстр как при сжатии, так и при распаковке, наравне с zip
  • (Оба) с открытым исходным кодом, без патентов и бесплатно

недостатки:

  • (Оба) Поддержка инструментов Windows в лучшем случае неоптимальна (например, 7zip .tar.gzсначала извлекает в .tarфайл, который необходимо снова извлечь)
  • У gzip не очень высокий коэффициент сжатия по сравнению с большинством других инструментов, но он лучше, чем zip
  • bzip2 довольно медленный, наравне с 7zip
  • bzip2 имеет хорошую степень сжатия, наравне с rar, но хуже, чем 7zip и другие современные методы.
+1 к вашему убедительному списку преимуществ/недостатков! Я хотел бы видеть это в других ответах.

PeaZip — это бесплатный менеджер файлов и архивов с открытым исходным кодом для 32- и 64-разрядных версий Windows и Linux. Он доступен как устанавливаемое, так и портативное приложение (не требующее установки).

Сжимайте, конвертируйте, разделяйте, шифруйте, безопасно удаляйте, открывайте файлы RAR TAR 7Z ZIP ZIPX, поддерживается более 150 форматов.

Поддерживаемые системы: Windows 9x, Windows NT/2K/XP, Windows Vista/7/8 (32 и 64 бит), ReactOS, Wine.

Более подробная информация доступна здесь, на SourceForge.