Какое отношение имеет jpegtran к libjpeg-turbo, jpegoptim и mozjpeg?
Насколько я понимаю, jpegtran включен в libjpeg-turbo и используется при сохранении изображения с optimize=True
, Jpegoptim использует алгоритм, идентичный jpegtran, но требует, чтобы изображение было временно сохранено на диск, прежде чем его можно будет оптимизировать, а jpegoptim имеет дополнительную возможность сжатия с потерями.
Глядя на репозиторий mozjpeg на Github, есть много ссылок на libjpeg-turbo, и у него гораздо больше звезд, поэтому мой вопрос - как они связаны? Является ли mozjpeg форком libjpeg-turbo, который делает все и даже больше? Т.е. возможно ли отключить определенные функции в mozjpeg и получить в итоге ту же производительность и результаты, что и в libjpeg-turbo?
1 ответ
Да, mozjpeg - это форк libjpeg-turbo. В mozjpeg v1.0 они подтверждают это. На самом деле это сочетание трех технологий (прогрессивное кодирование JPEG, jpgcrush и решетчатое квантование) для уменьшения размера изображений JPEG. Прогрессивный JPEG поддерживается в libjpeg-turbo, но jpgcrush и квантование решеток - нет.
Реализация libjpeg API в mozjpeg включает в себя инфраструктуру расширяемости, которая позволяет добавлять новые функции без изменения прозрачных структур сжатия / распаковки libjpeg.
Файлы JPEG, которые генерирует mozjpeg, требуют гораздо больше времени для сжатия, чем для распаковки. Когда используются настройки по умолчанию, mozjpeg значительно медленнее, чем libjpeg-turbo или даже libjpeg при сжатии изображений. Таким образом, он обычно не подходит для сжатия в реальном времени. Лучше всего использовать его как часть рабочего процесса веб-кодирования.
Найти больше информации здесь.