简体   繁体   English

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

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

From what I understand, jpegtran is included with libjpeg-turbo and it is used when saving an Image with optimize=True . 根据我的理解,jpegtran包含在libjpeg-turbo中,在使用optimize=True保存图像时使用。 Jpegoptim uses an identical algorithm as jpegtran, but requires the image to be temporarily saved to disk before it can be optimized, and jpegoptim has the additional ability to compress lossly. Jpegoptim使用与jpegtran相同的算法,但是需要先将映像临时保存到磁盘上,然后才能对其进行优化,并且jpegoptim具有附加压缩功能。

Looking at the mozjpeg repo on Github, there are a lot of references to libjpeg-turbo, and it has way more stars, so my question is how are they related? 看看Github上的mozjpeg回购,有很多关于libjpeg-turbo的引用,并且它有更多的星星,所以我的问题是它们之间有什么关系? Is mozjpeg a fork of libjpeg-turbo that does everything and more? mozjpeg是libjpeg-turbo的叉子吗? Ie, is it possible to disable certain features in mozjpeg and end up with identical performance and results as libjpeg-turbo? 即,是否可以禁用mozjpeg中的某些功能,最终获得与libjpeg-turbo相同的性能和结果?

Yes, mozjpeg is a fork of libjpeg-turbo. 是的,mozjpeg是libjpeg-turbo的一个分支。 In mozjpeg v1.0 , they confirm it. mozjpeg v1.0中 ,他们确认了这一点。 Actually it's a combination of three technologies (progressive JPEG encoding, jpgcrush, and trellis quantization) to reduce the size of JPEG images. 实际上,它是三种技术(渐进式JPEG编码,jpgcrush和格子量化)的组合,以减小JPEG图像的大小。 Progressive JPEG is supported in libjpeg-turbo, but jpgcrush and trellis quantization are not. libjpeg-turbo支持渐进式JPEG,但jpgcrush和trellis量化不支持。

mozjpeg's implementation of the libjpeg API includes an extensibility framework that allows new features to be added without modifying the transparent libjpeg compress/decompress structures. mozjpeg对libjpeg API的实现包括一个可扩展性框架,该框架允许添加新功能而无需修改透明的libjpeg压缩/解压缩结构。

The JPEG files mozjpeg generates require much more time to compress than to decompress. 生成的JPEG文件mozjpeg需要更多的时间进行压缩而不是解压缩。 When the default settings are used, mozjpeg is considerably slower than libjpeg-turbo or even libjpeg at compressing images. 使用默认设置时,mozjpeg在压缩图像时比libjpeg-turbo或libjpeg慢得多。 Thus, it is not generally suitable for real-time compression. 因此,它通常不适合实时压缩。 It is best used as part of a web encoding workflow. 它最好用作Web编码工作流程的一部分。

Find more information from here . 这里查找更多信息。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何将Pillow3.1.1中使用的libjpeg9切换到libjpeg8? - How to switch libjpeg9 used in Pillow3.1.1 to libjpeg8? 未加载PIL库:/opt/local/lib/libjpeg.9.dylib - PIL Library not loaded: /opt/local/lib/libjpeg.9.dylib ImportError:libjpeg.so.8:无法打开共享对象文件:没有这样的文件或目录 - ImportError: libjpeg.so.8: cannot open shared object file: No such file or directory OSX Pillow不兼容的库版本libtiff.5.dylib和libjpeg.8.dylib - OSX Pillow Incompatible library version libtiff.5.dylib & libjpeg.8.dylib 在OSX上从_imaging.so / libjpeg.8.dylib枕头导入错误 - Pillow import error from _imaging.so / libjpeg.8.dylib on OSX 找到PIL / PILLOW正在使用的libjpeg - Find which libjpeg is being used by PIL / PILLOW 在Windows上安装枕头无法找到libjpeg - Installing pillow on windows fails to find libjpeg 尝试使用弹性beanstalk安装libjpeg-devel时出错 - Error trying to install libjpeg-devel with elastic beanstalk python-pyinstaller“ RuntimeWarning:处理绝对导入时找不到父模块'PyInstaller.hooks.hook-PIL'”和“ tcl”相关的错误 - python - pyinstaller “RuntimeWarning: Parent module 'PyInstaller.hooks.hook-PIL' not found while handling absolute import” and “tcl” related errors 无法在Django中正确设置与模型相关的图像的路径 - Not being able to set the path for an image related to a model properly in Django
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM