Ответ 1
Библиотека MozJPEG использует один алгоритм, вдохновленный jpegcrush
(оптимизированное прогрессивное сканирование), но технически это совершенно новая реализация.
Библиотека MozJPEG является заменой для популярного libjpeg, поэтому почти каждый инструмент, связанный с JPEG, может быть скомпилирован в "обычных" и "MozJPEG" вариантах.
Существует "регулярная" jpegtran
и версия MozJPEG jpegtran
. То же самое, но версия MozJPEG имеет разные настройки по умолчанию и выполняет дополнительную работу для сжатия.
Аналогично, jpegoptim
обычно создается с помощью файла libjpeg, но также возможно построить его с версией libjpeg в версии MozjpEG (например, ImageOptim делает это).
Существует два способа использования MozJPEG:
- lossless (возьмите существующий файл JPEG и сделайте его немного меньше). Это то, что делает MozJPEG
jpegtran
. - lossy (создайте новый JPEG файл из несжатых пикселей с более высоким соотношением качество/размер файла). Это то, что делает MozJPEG
cjpeg
, и другие инструменты, такие какjpegoptim
, могут быть сделаны с MozJPEG.
Оба режима работы медленнее, чем ванильный, не оптимизирующий libjpeg. Оптимизация без потерь делает меньше работы, но также обеспечивает меньший выигрыш.
Более точный анализ скорости здесь: https://libjpeg-turbo.org/About/Mozjpeg
Обратите внимание, что "медленный" здесь относительный. В абсолютном выражении он сжимает несколько мегапикселей в секунду, поэтому он может быть достаточно быстрым для большинства приложений.