Определение лучшего алгоритма сжатия для данного файла 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 в большинстве случаев.
Затраты на сжатие не должны быть такими большими, если только сами изображения не являются большими или алгоритм сжатия неоптимален.