У меня есть набор файлов, которые я хотел бы сжать, и я знаю, что они являются повторяющимися и сжимаемыми, но 7zip выбирает неоптимальный порядок сжатия файлов и не может воспользоваться их сжимаемостью. Как я могу заставить 7zip сжать файлы в другом порядке?
Файлы, которые я хочу сжать, следующие:
- PDF-файл объемом 200 МБ, содержащий большое количество встроенных файлов JPG
- 190 МБ файлов JPG, каждый из которых отдельно встроен в PDF
- Около 500 МБ разных других умеренно сжимаемых файлов
Я знаю, что 7zip может воспользоваться повторением PDF и JPG, потому что, когда я архивирую только PDF и JPG вместе, я получаю степень сжатия 47%. Но когда я пытаюсь включить 500 МБ других файлов, 7zip сначала сжимает файлы JPG, а затем другие данные, и к тому времени, когда он попадает в PDF, алгоритм сжатия должен был «забыть» о файлах JPG, поскольку PDF вряд ли сжато на всех.
Используя 7-zip 9.32 alpha, используя формат архива 7z, уровень ультра сжатия, алгоритм LZMA2, размер словаря 256 МБ, размер 128 слов, размер сплошного блока 4 ГБ и 2 потока ЦП, я получаю следующие коэффициенты сжатия:
- Только PDF: 93%
- Только JPG: 95%
- PDF и JPG вместе: 47%
- Разный только файлы: 44%
- Разный файлы и PDF: 55%
- Разный файлы и PDF и JPG: 63%
Так как разное файлы сжимаются до 44% от их первоначального размера, а PDF и JPG вместе сжимаются до 47%, я ожидаю, что все вместе будет сжимаемым где-то на нижнем уровне 44-47%, но из-за плохого порядка файлы 7zip, я получаю значительно худший результат.
Я пытался изменить порядок сжатия файлов 7zip, играя с датами создания, изменения и доступа к файлам. Я попытался переместить файлы в другую папку и скопировать их обратно, чтобы они последовательно перезаписывались на диск. Я даже попытался заархивировать все файлы JPG в zip-файле со сжатием на уровне магазина, чтобы их размер приблизительно соответствовал формату PDF. Независимо от того, что я делаю, я не могу заставить 7zip сжать PDF и JPG без разницы. файлы между ними.
Есть идеи? Я не могу увеличить размер словаря из-за ограничений памяти.