jpegtran 与 libjpeg-turbo、jpegoptim 和 mozjpeg 有何关系?

How is jpegtran related to libjpeg-turbo, jpegoptim, and mozjpeg?

据我了解,jpegtran 包含在 libjpeg-turbo 中,在使用 optimize=True 保存图像时会用到它。 Jpegoptim 使用与 jpegtran 相同的算法,但需要将图像临时保存到磁盘才能进行优化,并且 jpegoptim 具有额外的有损压缩能力。

查看 Github 上的 mozjpeg 存储库,有很多对 libjpeg-turbo 的引用,而且它有更多的星星,所以我的问题是它们有什么关系? mozjpeg 是 libjpeg-turbo 的一个分支吗?即,是否可以禁用 mozjpeg 中的某些功能并最终获得与 libjpeg-turbo 相同的性能和结果?

是的,mozjpeg 是 libjpeg-turbo 的一个分支。在mozjpeg v1.0,他们证实了这一点。 实际上它是三种技术(渐进式 JPEG 编码、jpgcrush 和网格量化)的组合,用于减小 JPEG 图像的大小。 libjpeg-turbo 支持渐进式 JPEG,但不支持 jpgcrush 和网格量化。

mozjpeg 的 libjpeg API 实现包括一个可扩展性框架,允许在不修改透明 libjpeg compress/decompress 结构的情况下添加新功能。

mozjpeg 生成的 JPEG 文件压缩比解压缩需要更多时间。使用默认设置时,mozjpeg 是 在压缩图像方面比 libjpeg-turbo 甚至 libjpeg 慢得多。因此,它一般不适用于实时压缩。它最好用作网络编码工作流程的一部分。

here 中查找更多信息。