我在这个问题上发现了两篇略有冲突的博文,在这里我总结一下:
这让人感到困惑 Reddit thread表明mozjpeg使用了jpegcrush中使用的相同算法,并且jpegcrush是jpegtran的包装器...所以我们已经完整了?我只能假设那些Reddit评论是错误的,有人可以确认吗?
答案 0 :(得分:4)
MozJPEG库使用一种受jpegcrush
启发的算法(优化的逐行扫描),但从技术上讲,它是一个全新的实现。
MozJPEG库是流行的libjpeg的直接替代品,因此几乎所有与JPEG相关的工具都可以在"常规"中编译。和" MozJPEG"矫味剂。
存在"常规" jpegtran
和jpegtran
的MozJPEG版本。这是相同的程序,但MozJPEG版本具有不同的默认设置,并执行额外的工作以更好地压缩。
同样地,jpegoptim
通常使用库存libjpeg构建,但也可以使用MozJPEG的libjpeg版本(例如ImageOptim来构建它)。
使用MozJPEG有两种方法:
jpegtran
所做的事。cjpeg
的作用,以及jpegoptim
等其他工具可以与MozJPEG一起使用。两种操作模式都比vanilla非优化libjpeg慢。无损优化可以减少工作量,但也可以实现更小的增益。
更精确的速度分析在这里:https://libjpeg-turbo.org/About/Mozjpeg
请注意"慢"这是相对的。从绝对意义上讲,它每秒压缩几百万像素,因此对于大多数应用来说它可能足够快。