Определение лучшего алгоритма сжатия для данного файла PDF

В настоящее время я использую библиотеку Docotic PDF для написания программы сжатия для файлового сервера PDF, на котором размещаются большие отсканированные документы. (Намерение состоит в том, чтобы получить наименьший размер в черно-белом формате, который поддерживает читабельный документ - в основном юридические записки)

При тестировании я заметил, что некоторые файлы лучше реагируют на сжатие JPEG, а другие лучше реагируют на Group3Fax или Flate. Можно ли проанализировать файл и принять разумное решение о том, какой алгоритм будет создавать наименьший PDF-файл, или я бы фактически сжал каждый файл всеми тремя алгоритмами и выбрал наименьший, что потребляет массу дополнительных ресурсов ЦП.

Любое руководство с благодарностью. Спасибо

1 ответ

Решение

Если изображение в PDF является монохромным, я бы предложил использовать сжатие JBIG2 (если оно доступно в вашей программе PDF), оно обычно превышает сжатие группы. Однако будьте осторожны, если вы используете JBIG2 с потерями (подробности о том, что может пойти не так, где текст может измениться, см. В блоге моей компании).

Сжатие в группе 3 (хотя я бы рекомендовал использовать группу 4, если она доступна, должна обеспечивать лучшие результаты) применимо только для монохромных (1 бпк) изображений, JPEG - для цветных изображений или изображений в оттенках серого (хотя не все программное обеспечение PDF поддерживает его для оттенков серого). Flate совместим с монохромными, серыми или цветными изображениями.

Поскольку это отсканированные изображения, JPEG обычно должен превышать сжатие Flate, поэтому я бы сказал, что вам не нужно сжимать их для сравнения. JPEG2000 (если доступно из вашего программного обеспечения PDF) будет превышать JPEG в большинстве случаев. Аналогично, групповое сжатие должно превышать Flate в большинстве случаев.

Затраты на сжатие не должны быть такими большими, если только сами изображения не являются большими или алгоритм сжатия неоптимален.

Другие вопросы по тегам