LINUX.ORG.RU

распознавание схожести файлов при архивировании

 , ,


0

1

Из-за «печальки», что SDL-версия (то есть нативная для Linux) fceux не поддерживает работу с 7z-архивами, я решил, «а ну и ладно, перепакую подборку в поддерживаемый zip». Перепаковал и ... подборка с кучей zip-архивов она стала занимать 300 Мб, вместо 27 Мб в 7z-архивах. Что как-то не очень :(

Оказалось, что 7z распознаёт схожие файлы и при достаточном размере словаря очень хорошо это дело сжимает посредством LZMA. Разные rom-файлы одной игры могут слабо отличаться, но самих файлов может быть несколько десятков.

Всё что смог найти - один из найденных примеров рассматривает сжатие драйверов. Там упоминается, что для подобного сжатия нужно, чтобы файлы влазили в словарь. Winrar 4 поддерживает максимальный размер словаря 4 Мб, winrar 5 поддеривает до 1024 Мб словарь, но так сильно сжать winrar'om всё равно не получилось, хотя и вышло меньше чем перепаковка zip архивами - 276 Мб.

Может кто знает, какие архиваторы/алгоритмы сжатия ещё обладают такой возможностью распознавания схожих файлов для более эффективного сжатия?

★★★★★
Ответ на: комментарий от anonymous

Спасибо, не заметил этот ключ командной строки. С ним лучше, хоть получившийся архив и немного больше.

grem ★★★★★
() автор топика
Ответ на: комментарий от EXL

Спасибо, попробую. В истории версий указано, что поддержка 7z была добавлена, в том числе и для linux, в версии 0.76 (текущая 0.100). Также заявлена поддержка rar-архивов в обеих системах.

Кавайная линеечка это для отмотки времени назад во время прохождения?

grem ★★★★★
() автор топика

Первая фаза lrzip — дедупликация.

Твоя проблема элементарно решается скриптом-обёрткой.

anonymous
()
Ответ на: комментарий от anonymous

Твоя проблема элементарно решается скриптом-обёрткой.

Какая проблема? С перепаковкой кучи отдельных архивов в другой формат у меня проблемы нет. Или имеется ввиду запуск fceux в обёртке?

Про lrzip спасибо, не знал. Только у меня куча мелких файлов, но теперь буду знать и о мелких.

EXL, спасибо, приятный на вид эмулятор, пока наткнулся на один глюк, когда после переключения режимов pal и т.д. (жаль резет игры при этом делает) вместо звука треск почему-то начался. Пропало после второго перезапуска программы, поэтому как воспроизвести опять не знаю, но всё равно выглядит круто.

grem ★★★★★
() автор топика
Ответ на: комментарий от grem

Кавайная линеечка это для отмотки времени назад во время прохождения?

Именно. Очень удобная фича, если игрушка очень хардкорная.

EXL ★★★★★
()

Ты хочешь сжать посильнее раром? Посмотри опции сортировки файлов. При похожих файлах от того, как именно сортировать перед сжатием, результат может меняться.

greenman ★★★★★
()

Можно методом топора, обработать папку fdupes с заменой с заменой дубликатов на ссылки, и тем же tar xz

ism ★★★
()

Возьми и сам выяви различия с помощью какого-нибудь bsdiff.
Получишь искомые бинарные дельты вместо «почти похожих» бинарников для упаковки чем угодно.

blexey ★★★★★
()
Ответ на: комментарий от greenman

Насчёт сортировки не знаю, чтобы было понятнее, есть игра «Кастельвания», у неё около 80 вариаций rom-файлов в архиве, не слишком сильно отличающихся и эти 11 Мб сжимаются примерно в 250 Кб по умолчанию 7z или winrar с ключом "-s"

Всем спасибо, фактически в первом сообщении подсказали, что эта вещь называется «Непрерывный архив», статья на вики есть, где также упоминаются FreeArc, Tar + сжимающий (Tar+gzip, Tar+bzip2, Tar+lzma и т. д), WinAce.

grem ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.