Архиватор ZPAQ

Пожалуй, самый мощный в плане максимального сжатия архиватор на сегодняшний день. Основной разработчик — Matt Mahoney (плюс на разных этапах разработки, особенно во времена PAQ, принимали участие многие эксперты в области сжатия данных). Основное достоинство на мой взгляд — можно добавлять новые алгоритмы сжатия, заточенные под определённые типы файлов, без потери обратной совместимости. Т.е. старые версии архиватора смогут распаковывать даже более новые архивы. Для добавления новых алгоритмов нужно использовать ZPAQD. Главный недостаток для обычных пользователей — отсутствие привычного оконного интерфейса, всё надо делать через командную строку. Хотя в последнее время и появляются оконные оболочки от других разработчиков.

Также он поддерживает версионность файлов, т.е. внутри одного архива можно сохранять например 10 копий одного и того же файла с разными датами изменения. Это очень удобно например, когда надо посмотреть, как выглядел тот или иной документ до внесения в него правок. При этом размер архива с каждой новой копией увеличивается не очень сильно (добавляются только изменённые куски файла, а основное «тело» записано 1 раз, поэтому и достигается экономия места).

Ещё одна ключевая особенность — дедупликация. Т.е. при создании архива программа анализирует все добавляемые файлы, находит среди них одинаковые куски и добавляет в архив только по одному такому кусочку, тем самым уменьшая размер итогового архива.

Для ZPAQ написано несколько специальных конфигурационных файлов для сжатия определённых типов файлов с максимальным сжатием. Автор большинства из них — Jan Ondrus.
Это bmp_j4.cfg для сжатия BMP-файлов (графика, картинки). bwt_j3.cfg — алгоритм BWT. exe_j1.cfg — для EXE и DLL файлов (программы, исполняемые файлы и библиотеки). jpg_test2.cfg для упаковки JPEG файлов. Стоит отметить, что эти типы файлов архиватор сжимает гораздо лучше, чем 7-zip или WinRar, правда немного медленнее. Не хватает только такого конфигурационного файла для WAV-файлов, поэтому их архиватор сжимает чуть хуже чем специализированные программы для сжатия звука. Надеюсь, в ближайшем будущем найдётся программист, который напишет и его. Для использования этих конфигурационных файлов необходимо запускать ZPAQD, а для распаковки полученных архивов можно использовать любую версию обычного ZPAQ.

Это проект с открытым исходным кодом и свободной лицензией, любой желающий может пользоваться архиватором бесплатно.

The equivalent of method 1 in streaming mode would be like -method s4.1.4.0.3.25 for highly compressible files. or s4.0 for random data. The first 4 selects the block size (2^4 MB), 1 or 0 selects the compression method (LZ77 or none, use 5 for E8E9+LZ77), the second 4 selects the minimum match length, 0 selects no secondary match length, 3 selects the search depth (try 2^3 = 8 matches), and 25 (block size + 21) selects a suffix array rather than a hash table for finding matches. If you compile zpaq with -DDEBUG then you get an extended help screen that briefly describes these options, or see the docs in libzpaq.h for a more detailed description.

In streaming mode, each file is compressed in a separate block, and large files are broken into smaller blocks. With methods s or x, there is no option to have zpaq detect file type or compressibility and select the appropriate compression method. Everything is compressed using the same method.

Скачать последнюю версию можно с официального сайта — http://mattmahoney.net/dc/zpaq.html