MozJPEG 库使用一种受(优化的逐行扫描)启发的算法jpegcrush
,但从技术上讲,它是一种全新的实现。
MozJPEG 库是流行的 libjpeg 的替代品,因此几乎所有与 JPEG 相关的工具都可以编译为“常规”和“MozJPEG”风格。
存在“常规”jpegtran
和 MozJPEG 版本的jpegtran
. 这是同一个程序,但 MozJPEG 版本具有不同的默认设置,并执行额外的工作以更好地压缩。
类似地,jpegoptim
通常是用股票 libjpeg 构建的,但也可以用 MozJPEG 的 libjpeg 版本构建它(例如ImageOptim 就是这样做的)。
MozJPEG有两种使用方式:
- 无损(获取现有的 JPEG 文件并使其更小)。这就是 MozJPEG
jpegtran
所做的。
- 有损(从未压缩的像素创建一个新的 JPEG 文件,具有更高的质量/文件大小比率)。这就是 MozJPEG
cjpeg
所做的,其他类似的工具jpegoptim
也可以用于 MozJPEG。
两种操作模式都比普通的非优化 libjpeg 慢。无损优化做的工作更少,但获得的收益也更小。
更精确的速度分析在这里:https ://libjpeg-turbo.org/About/Mozjpeg
请注意,这里的“慢”是相对的。从绝对意义上讲,它每秒压缩几百万像素,因此对于大多数应用程序来说它可能足够快。