Какие настройки использовать при создании 7zip-файлов, чтобы получить максимальное сжатие при сжатии PDF-файлов?

15

Какие настройки использовать при создании 7zip-файлов, чтобы получить максимальное сжатие? Я сжимаю PDF документы, содержащие отсканированные изображения. Я думаю об использовании LZMA2, но я не знаю, что установить в словарном размере, размере слова и т. Д. Кроме того, LZMA или PPMd были бы лучшими вариантами?

Мне нужно, чтобы некоторые файлы передавались (~ 200 МБ) по сети, и скорость загрузки здесь очень низкая, поэтому я бы хотел сжать данные как можно больше. Затрачиваемое время процессора не очень важно.

РЕДАКТИРОВАТЬ

Вот что я получил после тестирования различных методов сжатия:

Несжатый размер был: 25 462 686 B

Мой процессор Intel Core 2 Due T8100, и у меня 4 ГБ ОЗУ.

Лучшее сжатие было с PeaZip с использованием алгоритма PAQ8O. Результирующий размер файла был 19,994,325B. Использовались следующие параметры: уровень сжатия: максимальный. К сожалению, скорость сжатия составила около 5 КБ / с, поэтому сжатие данных заняло более одного часа.

Далее был экспериментальный компрессор PAQ9O. Используя его, я получил 20 132 660B примерно за 3 минуты сжатия. К сожалению, программа только для командной строки, и не многие другие программы используют этот алгоритм сжатия. Он также использует около 1,5 ГБ ОЗУ с настройками, которые я использовал (-9 -c)

После этого была бета-версия 7-Zip 9.15 (2010-06-20) с использованием LZMA2. Используя его, я получил 20 518 802B примерно за 3 минуты. Использовались следующие параметры: размер слова 273, размер словаря 64 МБ, и я использовал 2 потока для сжатия.

Теперь вернемся к моему первоначальному вопросу: в моем случае сплошной размер блока не дал заметных результатов. Увеличение размера слова действительно дало некоторые результаты. Разница между самым высоким размером слова и самым маленьким была 115,260B. Я считаю, что такая экономия оправдывает усилия, необходимые для двух необходимых кликов и изменения размера слова.

Я попытался использовать другие алгоритмы сжатия, поддерживаемые 7zip и PeaZip, и они генерируют файлы размером от 19,8 МБ до 21,5 МБ.

В итоге я пришел к выводу, что при сжатии документов PDF, содержащих в основном изображения, усилия, необходимые для использования экзотических алгоритмов сжатия, не оправданы. Сжатие с использованием LZMA2 в 7zip дало вполне приемлемые результаты за наименьшее количество времени.

AndrejaKo
источник
Чем отличается использование PeaZip? Это просто оболочка для GUI вокруг 7zip и многих других инструментов
Коул Джонсон
@Cole "Cole9" Джонсон Ну, разница в том, что в моем случае я использовал некоторые "другие" инструменты от PeaZip, у которых в то время не было GUI. Если я правильно помню, тогда только PeaZip предложил алгоритм PAQ8O с графическим интерфейсом.
AndrejaKo

Ответы:

7

Содержимое PDF-файлов (текст и изображения), вероятно, уже сжато, поэтому, если попытаться снова сжать их, выиграть не составит особого труда.

afrazier
источник
3
Ну нет. Я провел небольшое тестирование, взял 24 МБ PDF-файлов и сжал их, используя настройки по умолчанию. Результат был файл 19 МБ. В моем случае, те 5 MiB имеют значение в моем случае.
AndrejaKo
1
Похоже, ты прав. Я не мог получить результаты значительно лучше, чем значения по умолчанию в 7zip, что бы я ни делал. Я все еще убежден, что некоторое сжатие лучше, чем ничего.
AndrejaKo
3
Если бы вы могли сэкономить так много места, то, вероятно, можно было бы сделать работу с самими PDF-файлами, чтобы сэкономить почти все это пространство без 7-Zip. Поездка через Acrobat PDF Optimizer может творить чудеса.
afrazier
Смотрите ответ пользователя - сжатие, используемое в PDF (zlib), может быть отменено для дальнейшего сжатия (и снова применено при реконструкции). Это часто приводит к уменьшению размера на ~ 50%
Schnaader
@schnaader: Это действительно интересно. Я видел и использовал такие инструменты, как Acrobat PDF Optimizer и MuPDF, чтобы модифицировать PDF-файлы, сохраняя их видимыми, но возможность трансформировать их без потерь также очень ценно и может быть использовано с большим преимуществом.
afrazier
8

Попробуйте precomp - он сначала распаковывает уже сжатые данные внутри ваших PDF-файлов. Тогда 7z может творить чудеса с несжатыми данными.

Также попробуйте нанозип, который, как я проверял, очень эффективен, но очень эффективен (400 Кбит / с при коэффициентах сжатия алгоритмов PAQ).

USR
источник
2

7za a -t7z -mx-9 -mfb = 258 -mpass = 15 filename.7z subdir

При необходимости измените первое слово для имени исполняемого файла командной строки и отрегулируйте части после «-mpass = 15», чтобы настроить имя файла и то, что оно должно включать.

Этот ответ не относится к документам PDF.
Это использует LZMA, а не PPM. Я держался подальше от PPM, потому что есть слишком много вариантов, которые не совместимы с другими вариантами. LZMA выглядит более стабильным, а совместимость поддерживается более широко. Так что я остался в стороне от PPM именно потому, что, как вы сказали, мое мнение заключалось в том, что «усилия, необходимые для использования экзотических алгоритмов сжатия, не оправданы».

TOOGAM
источник
2
LZMA2 значительно лучше, чем LZMA, но предназначен для (эффективного) использования только в 64-битных системах.
OMY
-3

Лучше всего использовать сжатие lzma, потому что вы можете создать файл sfx или пакет msi с высокой степенью сжатия. в вашем случае вы не сжимаете большой файл, поэтому разница довольно мала, особенно если файл был сжат, например: mp3 или png

попробуйте выиграть дугу бесплатно и дает степень сжатия gret

Надер
источник