Архиваторы. Размышления

Некоторое время назад, возникла необходимость записать на BD-R некоторое количество SEG-Y файлов. Размер носителя 25Gb, файлов много больше. Решил воспользоваться архиватором, обычно это 7z, настройки по-умолчанию.

Сжималось достаточно долго, пару часов, и результат оставлял желать лучшего. На болванку немного не влазило все равно — пошел читать маны, и недолго думая взял строку из примера, увеличив лишь размер словаря

7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=256m -ms=on archive.7z mysegy_dir1

Время сжатия выросло, и в ожидании окончания. я начал читать гугл изучая, что есть из нового в архиваторах, обзоры из серии LZMA vs LZMA2, pbzip2 vs bzip2 и так далее. Среди невероятной кучи скудных обзоров, были таблички-пузомерки, где в топовых строках, в качестве победителя, почти всегда был представитель семейства архиваторов PAQ. OpenSource, ультрасжатие, нейронные сети, кроссплатформенность.. Я не мог пройти мимо.

Вкраце (а детально можно почитать в той же Википедии), все это хорошо, но время сжатия просто космически велико. Днями можно ждать (для моих данных, размеры которых в десятках-сотнях гигабайт)! Для jpg, png, wav и некоторых других идеальный вариант. Их он сжимает очень хорошо, хотя зависит от подверсии, основное отличие в которых это наличие описания форматов (context model) поддерживабщихся самим архиватором o_O. Если есть желание и хотите попробовать находясь в Windows, качайте PeaZip, там есть все. Я же в CentOS Linux 6 x64, и я собрал себе где бинарники, где RPM пакеты.

Интересная система, но не для больших объемов. Ну очень долго..

Дальше больше, ZPAQ — целая система архивирования. Тут не только бэкапы, тут и версионность, аналитика и пр. Активно развивающийся продукт, взял на заметку!

Ну и напоследок, нашел проект SEG-Y ZIP. Спорное решение, особенно исходя из того, что loseless режим практически не сжимает, а lossy, как-то не наша тема (хотя сжатие > 50% бинарного файла — вполне недурно). Ну и собрал в виде RPM sezyzip-0.0.2-el6.x86_64.rpm.

P.S. Начитавшись теории по компрессии данных, понял, что понимание многих процессов у меня отсутствует. Списался с автором zpaq — Matt Mahoney, рассказал что нашел его патенты по теории сжатия данных, сослался на упоминания в его реферате применимости paq* алгоритмов к SEG-Y и он поведал мне экспериментальные опции zpaq, которые максимально утрамбуют среднегипотетический SEG-Y.

zpaq a archivename file -method x6.0c0.4i1.1.1.1c0.4.0.0.0.255am

x6 = 2^6 MB block size
c0 = ICM
.4 = adds offset mod 4 to context
i1.1.1.1 = ICM chain order 1..4
c0.4 = another ICM with offset mod 4 as context
.0.0.0.255 = sparse model with 4’th byte as context
a = match
m = mixer