云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

百度云_二哈和他的白猫师尊百度云txt_学生机

小七 141 0

试用mozjpeg 2.0

CloudFlare为付费客户提供的服务之一称为"波兰"。Polish会自动重新压缩CloudFlare缓存的图像,以确保它们尽可能小,并且可以尽快地传递到web浏览器。我们最近推出了一个新版本的Polish,它使用了更新的技术(并且完全从一个程序集合重写为一个用Go编写的可执行文件)。作为重写的一部分,我们研究了最近发布的用于JPEG压缩的mozjpeg 2.0项目的性能。为了了解它与libjpeg-turbo相比的性能(压缩和CPU使用率),我随机选择了10000张JPEG图像(总计2564135,285个字节,平均图像大小约为256KB),并使用libjpeg turbo 1.3.1和mozjpeg 2.0提供的jpegtran程序重新压缩。两种情况下使用的确切命令是:JPETRAN-输出文件输出.jpg-优化-无复制英寸jpg在缓存中的10000幅图像中,mozjpeg 2.0未能使其中的691幅变得更小,而libjpeg-turbo则只有3471幅。所以mozjpeg 2.0在重新压缩图像方面明显更好。平均来说,使用mozjpeg 2.0(忽略根本没有压缩的图像)压缩了3.0%,使用libjpeg-turbo压缩了2.5%(同样忽略了根本没有压缩的图像)。这似乎与Mozilla报告的比libjpeg-turbo提高了5%类似。因此,mozjpeg 2.0在这组文件上实现了更好的压缩,并压缩了更多的文件(93.1%对65.3%)。举个例子,这是一个图像,而不是来自样本集。它的原始大小是1984669字节。用libjpeg-turbo压缩时,为1956200字节(删除2.4%);用mozjpeg 2.0压缩时为1874491字节(删除5.6%)。(mozjpeg 2.0版本比libjpeg turbo版本小4.2%)。

Pic du Midi

下面显示了使用mozjpeg 2.0时的压缩比分布。

压缩已见

这种改进的压缩是要付出代价的。对于libjpegturbo和mozjpeg2.0,完整压缩的运行时间(包括压缩失败的地方)是273秒,而mozjpeg2.0是474秒。因此,mozjpeg 2.0花费了大约1.7倍的时间,但是,当然,在更多的文件上实现了更好的压缩。因为我们希望获得尽可能高的压缩比,我们已经在内部指派了一名工程师来研究mozjpeg 2.0的优化(特别是针对我们使用的英特尔处理器),并将对项目进行改进。我们在优化项目上投入了大量的资金(比如对gzip(这里的代码)和LuaJIT的改进,以及像非常快速的Aho-Corasick实现之类的东西)。如果您对英特尔处理器的低级优化感兴趣,请考虑加入我们。PS在这篇博文发表后,一些人指出最好的比较是使用-progressive标志。我回去检查,事实上我已经在10000个文件测试中做过了,所以那里的数据是正确的。但是,上面显示的命令不是。实际使用的命令是:JPETRAN-输出文件输出.jpg-优化-渐进-无复制英寸jpg另外,上面显示的图像是使用错误的命令生成的,因为我是在10000文件测试之外完成的。上面这一段应该说:举个例子,这是一个图像,而不是来自样本集。它最初的尺寸是1984669字节。当用libjpeg-turbo压缩时,它是1885090字节(删除4%);用mozjpeg 2.0压缩时,为1874491(删除5.6%)。(mozjpeg 2.0版本比libjpeg turbo版本小0.6%)。