全面掌握移动端主流图片格式的特点、性能、调优等

  • 时间:
  • 浏览:0

因此 WebP 测试数据较多,这里只贴一下 512x512 大小的一要素测试结果,感兴趣的还还要看看Excel附件(附件下载):

在上边什么图片格式诞生后,时会 不少公司或团体尝试对你们都都进行改进,因此 创造其他更加优秀的图片格式,比如 JPEG 小组的 JPEG 800、微软的 JPEG-XR、Google 的 WebP、被委托人开发者发布的 BPG、FLIF 等。它们相对于老牌的那十几个 图片格式来说有了很大的进步,但出于各种各样的意味,有有助于有有助于 少数十几个 格式有有助于流行开来。下面三种本来 目前实力比较强的新兴格式了:

《基于社交网络的Yelp是怎么上能 实现海量用户图片的无损压缩的?》

bypass_filtering: 是是是否是是禁用滤波。该参数只对有损图片起作用,开启后合适能缩短 5%~10% 的解码时间,因此 造成其他颜色过渡平滑的区域产生色带(banding);

APNG 目前并没法被 PNG 官方所接受,什么都 libpng 不须能直接解码 APNG。但因此 APNG 本来 基于 PNG 的4个多 简单扩展,什么都在因此 支持 PNG 的平台上,还还要很轻松的用几滴 代码实现 APNG 的编解码。Chromium 为了支持 APNG 播放,只增加了有有助于 800 行代码 ,我被委托人也用合适 800 行 C 代码实现了4个多 简单的 APNG 编解码工具。另外,在支持 canvas 的浏览器上,还还要用 apng-canvas 直接显示 APNG 动画。APNG 压缩最好的工具目前是 apngasm,大要素图形化工具比如腾讯的 iSparta 时会 基于這個 工具开发的。

《QQ音乐团队分享:Android中的图片压缩技术详解(上篇)》

no_fancy_upsampling: 是是是否是是禁用上采样。该参数只对有损图片起作用。在我的测试中,开启该参数后,解码时间反而会增加 5~25%,同时会 造成其他图像细节的丢失,线条边缘会增加杂色,显得不自然。

《腾讯原创分享(三):怎么上能 大幅压缩移动网络下APP的流量消耗(下篇)》

《腾讯原创分享(一):怎么上能 大幅提升移动网络下手机QQ的图片传输宽度和成功率》

评测结果如下:

对于多样化的图像(比如照片)来说,WebP 无损编码表现不须好,但有损编码表现却非常棒。相近质量的图片解码宽度 WebP 相距 JPEG 也因此 相差不大了,而文件压缩比却能提升不少。

这几张图中,大要素内容是相近的,为了压缩文件体积,通常动图格式都支持其他特殊的最好的方法对类似图片进行裁剪,只保留前后帧不同的要素(如下图所示):

还还要看一遍,在编解码图形类型(颜色少、细节少)的图片时,PNG 和 JPEG 差距不须大;因此 对于照片类型(颜色和细节富于)的图片来说,PNG 在文件体积、编解码宽度上都差 JPEG 不少了。

《字符编码那点事:快速理解ASCII、Unicode、GBK和UTF-8》

《腾讯技术分享:社交网络图片的宽度压缩技术演进之路》

下面是没法经过优化的 GIF 和经过 ffmpeg 优化编码的 GIF,还还要看一遍差距非常大:

- 移动端IM开发入门文章:《新手入门一篇就够:从零开发移动端IM》

Blend None: 绘制时,完整篇 通道(含有Alpha通道)时会 覆盖到画布,合适绘制前先清空画布的指定区域;

Restore to Background:绘制当前帧后来,先把画布清空为默认背景色;

我把下面这张 GIF 分别转为 WebP、APNG、BPG 动图,并在 苹果6手机手机7机5 6 上对其所有帧进行解码。

除了上边這個个多 库,苹果6手机手机7机5被委托人也开发了4个多 AppleJPEG,但并没法开源。其调用了芯片提供的 DSP 硬编码和硬解码的功能。着实它不如上边這個个多 库功能完善,但其性能非常高。在我的测试中,其编解码宽度通常是 libjpeg-turbo 的 1~2 倍。可惜的是,目前开发者不须能直接访问這個 库。

iOS 底层是用 ImageIO.framework 实现的图片编解码。目前 iOS 原生支持的格式有:JPEG、JPEG800、PNG、GIF、BMP、ICO、TIFF、PICT,自 iOS 8.0 起,ImageIO 又加入了 APNG、SVG、RAW 格式的支持。在上层,开发者还还要直接调用 ImageIO 对上边什么图片格式进行编码和解码。对于动图来说,开发者还还要解码动画 GIF 和 APNG、还还要编码动画 GIF。

《开发IM是被委托人设计协议用字节流好还是字符流好?》

相对于 JPEG 来说,PNG 标准更为清晰和简单,因此 有什么都公司或被委托人时会 被委托人的 PNG 编码解码实现。但目前使用最广的还是 PNG 官方发布的 libpng 库。iOS 和 Android 底层时会 调用這個 库实现的 PNG 编解码。

Blend Mode (混合模式) :

下面是 PNG 在 苹果6手机手机7机5 6 上的编解码性能:

《浅谈移动端IM的多点登陆和消息漫游原理》

除此之外,动图格式通常有更为完整篇 的参数控制每一帧的绘制过程,下面是 GIF/APNG/WebP 通用的十几个 参数。

这张表情由 6 幅静态图构成,每幅图片有一定的存活时间,连贯播放就形成了动画:

GIF 不够非常明显:

《IM单聊和群聊中的在线情况汇报同步应该用“推”还是“拉”?》

BPG 是著名线程员 Fabrice Bellard 在去年 (2014年) 发布的一款超高压缩比的图片格式。這個 线程员该人因此 感觉面生,但说起他的作品 FFmpeg、QEMU 你们都都想必是都知道的。BPG 使用 HEVC (即 H.265) 帧内编码作为其算法基础,就这点而言,它毋庸置疑是当下最为先进的图片压缩格式。相对于 JP2、JPEG-XR、WebP 来说,同等体积下 BPG 能提供更高的图像质量。另外,得益于它三种基于视频编码算法的价值形式,它能以非常小的文件体积保存多帧动画。 Fabrice Bellard 聪明的地方在于,他知道被委托人4个多 人无法得到各大浏览器厂商的支持,什么都他还特地开发了 Javascript 版的解码器,任何浏览器我希望加载了這個 76KB 大小的 JS 文件,就还还要直接显示 BPG 格式的图片了。目前阻碍它流行的意味本来 HEVC 的版权问题报告 和它较长的编码解码时间。尽管這個 图片格式才后来发布一年,但因此 有不少厂子始于试用了,比如阿里和腾讯。

下面是常见的十几个 PNG 压缩工具的性能对比:

像另4个多 的第一帧就被称为关键帧(即 I 帧,帧内编码帧),而后续的什么通过补偿计算得到的帧被称为预测编码帧(P帧)。4个多 压缩的比较好的动图内,通常有有助于有有助于 几滴 的关键帧,而其余时会 预测编码帧;4个多 较差的压缩工具制作的动图内,则基本时会 关键帧。不同的动图压缩工具通常能得到不同的结果。

目前通常的除理方案是在图片的边缘加一圈白边,以减轻這個 视觉效果:

我在这里写了个简单的利用 libbpg 解码动图的最好的方法,如有还要还还要参考下。

《小白必读:闲话HTTP短连接中的Session和Token》

《开源IM工程“蘑菇街TeamTalk”的现状:一场有始无终的开源秀》

libbpg 目前并没法针对 ARM NEON 做优化,什么都其在移动端的性能表现一般。下面是 苹果6手机手机7机5 6 上的性能测试:

BPG 三种是基于 HEVC (H.265) 视频编码的,其最始于设计时就考虑到了动图的实现。因此 它充分利用了 HEVC 的高压缩比和视频编码的价值形式,其动图压缩比远超其他格式。这里和这里有几张 BPG 动图示例,还还要看一遍相同质量下 BPG 动图有有助于有有助于 APNG/WebP/GIF 几十分之一的大小。

WebP 动图实际上是把多个单帧 WebP 数据简单打包到4个多 文件内,而并时会 由单帧 WebP 扩展而来,以至于动图格式不须能向上兼容静态图。因此 要支持动图,首先在编译 libwebp 时还要加上 demux 模块,解码 WebP 时还要先用 WebPDemuxer 尝试拆包,后来再把拆出来的单帧用 WebPDecode 解码。为了方便编译,我写了个脚本用于打包 iOS 的静态库,加入了 mux 和 demux 模块。

本文你们都都一齐全面分析学习目前主流和新兴的几种图片格式的特点、性能、调优等,以及相关开源库的挑选,希望能为您的移动端应用(包括本社区主要讨论的即时通讯应用)中的图片优化带来其他启发。

Disposal Method (清除最好的方法) :

还还要看一遍,JPEG 编码中 quality 越小,图片体积就越小,质量越也差,编码时间也越短。解码时间并没法很大的差距,因此 是其大要素时间消耗在了函数调用、硬件调用上。苹果6手机手机7机5在被委托人的相册 Demo 中提供的 quality 的默认值是 0.9,在這個 值符近,图像质量和体积、编码解码时间之间都能取得不错的平衡。

上边什么技术,本来 常见动图格式的基础了,下面分别介绍一下不同动图格式的特点。

上边这是腾讯博客里的一张演示图,还还要看一遍 GIF 因此 Alpha 通道的问题报告 ,产生了严重的“毛边”问题报告 。

目前比较知名的 JPEG 库有以下4个多 :

《腾讯技术分享:腾讯是怎么上能 大幅降低宽度和网络流量的(图片压缩篇)》

下面是一张 GIF 格式的 QQ 大表情:

WebP 解码有4个多 参数:

它的 Alpha 通道有有助于有有助于 1 bit,这意味4个多 像素有有助于有有助于 是完整篇 透明因此 完整篇 不透明。

《通俗易懂:基于集群的移动端IM接入层负载均衡方案分享》

最后做4个多 小广告:因此 你是 iOS 平台的开发者,还还要试试我开发的 YYWebImage,它支持 APNG、WebP、GIF 动图的异步加载与播放、编码与解码,支持渐进式图像加载,还还要替代 SDWebImage、PINRemoteImage、FLAnimatedImage 等开源库。

Google 提供了4个多 简单的命令行工具用于制作动图:gif2webp 能把 GIF 转换为 WebP, webpmux 能把多个 WebP 图片打包为动态图,因此 有着什么都参数还还要调节。這個个多 工具对相近帧的压缩不须太理想,以至于有的情况汇报下压缩比还不如 APNG,但除此以外也没法其他什么更好的工具还还要用了 (update: 在最近的 libwebp v0.6.0 中, Google 新提供了4个多 img2webp 命令专门用于制作动图的,效果不错)。

测试素材很少,有有助于有有助于 4个多 :

《腾讯技术分享:腾讯是怎么上能 大幅降低宽度和网络流量的(图片压缩篇)》

就目前而言, APNG 是 GIF 最好的替代了:实现简单,可用范围广,压缩比不错,显示效果好。

因此 我目前主本来 做 iOS 开发,什么都下面的性能评测时会 基于 苹果6手机手机7机5 的,主要测试代码还还要在这里看一遍。

WebP 编码主要有十几个 参数:

>> 更多类似文章 ……

(本文同步发布于:http://www.52im.net/thread-1802-1-1.html)

pngcrush 是 Xcode 自带的 PNG 压缩工具,相对于设计师用 Photoshop 生成的图片来说,它能取得不错的压缩效果。ImageOptim 则更进一步,对每张图用多种缩算法进行比对,挑选压缩比更高的结果,进一步缩小了文件体积。TinyPNG.com 相对于其他工具来说,压缩比高得不像话。它启用了类似 GIF 那样的颜色索引表对 PNG 进行压缩,什么都会意味颜色富于的图片丢失掉一要素细节。因此 使用 TinyPNG 说说,最好在压缩完成后让设计师看一下颜色效果是是是否是是还还要接受。

首先谈一下你们都都耳熟能详的几种老牌的图片格式吧。

《腾讯原创分享(二):怎么上能 大幅压缩移动网络下APP的流量消耗(上篇)》

GIF 的制作工具有什么都,但效果好、压缩比高的工具非常少。对于因此 制作好的 GIF 来说,用 imagemagick 除理一下还还要把文件体积压缩不少。因此 还要将视频转为 GIF,Cinemagraph Pro 是个不错的傻瓜化工具。文章《使用 FFmpeg 除理高质量 GIF 图片》介绍了怎么上能 用 ffmpeg 压缩 GIF,着实参数调节一阵一阵麻烦,但效果非常理想。

《腾讯技术分享:腾讯是怎么上能 大幅降低宽度和网络流量的(音视频技术篇)》

WebP 标准是 Google 定制的,迄今为止有有助于够有有助于 Google 发布的 libwebp 实现了该的编解码 。 什么都這個 库也是该格式的事实标准。

《缘何说即时通讯社交APP创业本来 4个多 坑?》

4个多 平台在导入第三方编解码库时,都十几个 对你们都都进行了其他修改,比如 Android 对 libjpeg 等进行的调整以更好的控制内存,iOS 对 libpng 进行了修改以支持 APNG,并增加了线程编解码的价值形式。除此之外,iOS 专门针对 JPEG 的编解码开发了 AppleJPEG.framework,实现了性能更高的硬编码和硬解码,有有助于有有助于 当硬编码解码失败时,libjpeg 才会被用到。

Blend over:绘制时,Alpha 通道会被合成到画布,即通常情况汇报下两张图片重叠的效果。

在解码动图时,解码器通常采用所谓“画布模式”进行渲染。想象一下:播放的区域是一张画布,第一帧播放前先把画布清空,因此 完整篇 的绘制上第一帧图;播放第二帧时,不再清空画布,本来 只把和第一帧不同的区域覆盖到画布上,就像油画的创作那样。

《现代移动端网络短连接的优化手段总结:请求宽度、弱网适应、安全保障》

WebP 是 Google 在 2010 年发布的图片格式,希望以更高的压缩比替代 JPEG。它用 VP8 视频帧内编码作为其算法基础,取得了不错的压缩效果。它支持有损和无损压缩、支持完整篇 的透明通道、也支持多帧动画,因此 没法版权问题报告 ,是三种非常理想的图片格式。借由 Google 在网络世界的影响力,WebP 在几年的时间内因此 得到了广泛的应用。看看你手机里的 App:微博、微信、QQ、淘宝、网易新闻等等,每个 App 里时会 WebP 的身影。Facebook 则更进一步,用 WebP 来显示聊天界面的贴纸动画。(腾讯技术团队在《腾讯技术分享:社交网络图片的宽度压缩技术演进之路》、《腾讯技术分享:腾讯是怎么上能 大幅降低宽度和网络流量的(图片压缩篇)》这两篇文章中时会 提到WebP格式的技术实践)

图片通常是移动端应用流量耗费最多的要素,因此 居于着重要的视觉空间。以你们都都最常用的即时通讯IM应用为例,应用中居于几滴 的图片数据往来(比如图片消息、用户相册、用户头像等等)。合理的图片格式挑选和优化不仅能减小图片传递过程中的数据量、提升视觉效果,还能显著降低服务端的宽度、计算资源等基础设施成本,一举多得。

《移动端IM登录时拉取数据怎么上能 作到省流量?》

《移动端IM开发者必读(一):通俗易懂,理解移动网络的“弱”和“慢”》

还还要仔细观察一下 QQ、微信等 App 上边的动画表情,几乎每个表情都被一圈白边所环绕,不得不说是三种很无奈的除理方案。

《IM消息送达保证机制实现(一):保证在线实时消息的可靠投递》

2)libjpeg-turbo:4个多 致力于提升编解码宽度的 JPEG 库。它基于 libjpeg 进行了改造,用 SIMD 指令集 (MMX、SSE2、NEON) 重写了要素代码,官网称相对于 libjpeg 有 2 到 4 倍的性能提升;

Do Not Dispose:把当前帧增量绘制到画布上,不清空画布;

《IM消息送达保证机制实现(二):保证离线消息的可靠投递》

动图在网络上非常受欢迎,它近似视频,但通常实现简单、文件体积小,应用范围非常广泛。动图的始祖是 GIF,它自 Windows 1.0 时代就在互联网上流行开来,直到今天仍然难以被其他格式取代。尽管它非常古老,但其所用的原理和今天几种新兴格式几乎一样。

它通常只支持 256 色索引颜色,这意味它有有助于有有助于 通过抖动、差值等最好的方法模拟较多富于的颜色;

1)libjpeg:开发时间最早,使用最广泛的 JPEG 库。因此 JPEG 标准过于多样化和模糊,并没法被委托人去实现,什么都這個 库是 JPEG 的事实标准;

《QQ音乐团队分享:Android中的图片压缩技术详解(下篇)》

- 即时通讯开发交流3群:185926912[推荐]

《4个多 低成本确保IM消息时序的最好的方法探讨》

use_threads: 是是是否是是启用 pthread 线程解码。该参数只对宽度大于 512 的有损图片起作用。开启后内内外部会用线程解码,CPU 占用会更高,解码时间平均能缩短 10%~20%;

《IM群聊消息没法多样化,怎么上能 保证不丢不重?》

(本文同步发布于:http://www.52im.net/thread-1802-1-1.html)

通常情况汇报下,這個个多 参数都设为 NO 即可,因此 要追求更高的解码宽度,则还还要尝试开启 use_threads 和 bypass_filtering 這個个多 参数。而 no_fancy_upsampling 在任何情况汇报下都没必要开启。

《腾讯技术分享:社交网络图片的宽度压缩技术演进之路》

GIF 诞生于 1987 年,随着初代互联网流行开来。它有什么都缺点,比如通常情况汇报下只支持 256 种颜色、透明通道有有助于有有助于 1 bit、文件压缩比不高。它唯一的优势本来 支持多帧动画,凭借這個 价值形式,它得以从 Windows 1.0 时代流行至今,因此 仍然大受欢迎。

lossless: YES:有损编码 NO:无损编码。WebP 主要优势在于有损编码,其无损编码的性能和压缩比表现一般;

BPG 是目前已知最优秀的有损压缩格式了,它能在相同质量下比 JPEG 减少 80% 的体积。下面是经典的 Lena 图的对比,你也还还要在这里看一遍几滴 其他图片的 BPG、JPEG、JPEG800、JPEG-XR、WebP 压缩效果的在线对比,效果非常明显。

目前主流的移动端对图片格式的支持情况汇报怎么上能 呢?

3)MozJPEG: 4个多 致力于提升压缩比的 JPEG 库。它是 Mozilla 在 2014 年发布的基于 libjpeg-turbo 进行改造的库,相对于 libjpeg 有 5% ~ 15%  的压缩比提升,但相应的其编码宽度也慢了什么都。

JPEG 是目前最常见的图片格式,它诞生于 1992 年,是4个多 很古老的格式。它只支持有损压缩,其压缩算法还还要精确控制压缩比,以图像质量换得存储空间。因此 它太过常见,以至于其他移动设备的 CPU 都支持针对它的硬编码与硬解码。

第一张是Dribbble 的 Logo,含有 Alpha 通道,用于测试简单的、图形类的图像。第二张经典的 Lena 图,用于测试照片类的、具有富于细节的图像。每个图像时会 64×64、128×128、256×256、512×512 三种分辨率。测试素材过少因此 意味其他测试不够准确,但作为参考大致是没问题报告 的。

《从客户端的宽度来谈谈移动端IM的消息可靠性和送达机制》

APNG 是 Mozilla 在 808 年发布的三种图片格式,旨在替换掉画质低劣的 GIF 动画。它实际上本来 合适 PNG 格式的4个多 扩展,什么都 Mozilla 无缘无故想把它合并到 PNG 标准上边去。然而 PNG 开发组并没法接受 APNG 這個 扩展,本来 无缘无故在推进它被委托人的 MNG 动图格式。MNG 格式过于多样化以至于并没法什么系统或浏览器支持,而 APNG 格式因此 简单容易实现,目前因此 渐渐流行开来。Mozilla 被委托人的 Firefox 首先支持了 APNG,后来苹果6手机手机7机5的 Safari 也始于有了支持, Chrome 目前也因此 尝试始于支持 ,还还要说未来前景很好。

APNG 在文件体积上比 GIF 略有优势,解码时间相差很多。WebP 在体积和解码时间上都具有较大的优势。BPG 在体积上优势最大,但解码时间也最长。没法看来,APNG 和 WebP 时会 不错的挑选,而 BPG 还有待性能优化。

你们都都分别来看一下 Android 和 iOS 目前的图片编解码架构吧:

WebP 在 2010 年 发布时并没法支持动图。2012 年 libwebp v0.2 的后来,Google 才始于尝试支持动画,但着实现有什么都问题报告 ,性能也非常差,以至于 Chrome 团队无缘无故都没法接受。直到 2013 年,libwebp v0.4 时,动画格式才稳定下来才被 Chrome 所接受。

BPG 目前有有助于有有助于 作者发布的 libbpg 可用。但作者基于 libbpg 编译出了4个多 Javascript 解码器,很大的扩展了可用范围。bpg 还还要以无损和有损压缩三种最好的方法进行编码,有损压缩时还还要用 quality 参数控制压缩比,可选范围为 0~51,数值越大压缩比越高。通常来说,25 符近是4个多 不错的挑选,BPG 官方工具默认值是 28。

和 JPEG 不同,PNG 是无损压缩,其不须能提供压缩比的选项,其压缩比是有上限的。目前网上有什么都针对 PNG 进行优化的工具和服务,旨在提升 PNG 的压缩比。

学习交流:

因此 bpg 编码时间太长,我并没法将数据倒入表格里。还还要看一遍相同质量下,BPG 的解码宽度还是差 JPEG 很多,合适慢了 3~5 倍。目前来说,BPG 适用于什么对流量非常敏感,但对解码时间不敏感的地方。从网上的新闻来看,手机淘宝和手机QQ都因此 有所尝试,但不清楚你们都都不 否对 BPG 解码进行了优化。

下面是 ImageIO (AppleJPEG/libpng) 在 苹果6手机手机7机5 6 上的编解码性能:

Restore to Previous:绘制下一帧前,把先把画布恢复为当前帧的前一帧。

《IM开发基础知识补课:正确理解前置HTTP SSO单点登陆接口的原理》

《即时通讯系统的原理、技术和应用(技术论文)》

《腾讯原创分享(二):怎么上能 大幅压缩移动网络下APP的流量消耗(上篇)》

《移动端IM中大规模群消息的推送怎么上能 保证宽度、实时性?》

《QQ音乐团队分享:Android中的图片压缩技术详解(上篇)》

《QQ音乐团队分享:Android中的图片压缩技术详解(下篇)》

《请问一群人知道语音留言聊天的主流实现最好的方法吗?》

Android 的图片编码解码是由 Skia 图形库负责的,Skia 通过收集第三方开源库实现了常见的图片格式的编解码支持。目前来说,Android 原生支持的格式有有助于有有助于 JPEG、PNG、GIF、BMP 和 WebP (Android 4.0 加入),在上层能直接调用的编码最好的方法有有助于够有有助于 JPEG、PNG、WebP 这三种。目前来说 Android 还不支持直接的动图编解码。

《完整篇 自已开发的IM该怎么上能 设计“失败重试”机制?》

郭曜源:毕业于哈尔滨工程大学,现为优酷iOS开发工程师,是iOS上的热门开源工程YYWebImage、YYText等的作者,被委托人github地址:https://github.com/ibireme/。

《移动端IM开发还要面对的技术问题报告 》

《基于社交网络的Yelp是怎么上能 实现海量用户图片的无损压缩的?》

《腾讯原创分享(三):怎么上能 大幅压缩移动网络下APP的流量消耗(下篇)》

《如约而至:微信自用的移动端IM网络层跨平台组件库Mars已正式开源》

PNG 诞生在 1995 年,比 JPEG 晚几年。它三种的设计目的是替代 GIF 格式,什么都它与 GIF 有更多类似的地方。PNG 只支持无损压缩,什么都它的压缩比是有上限的。相对于 JPEG 和 GIF 来说,它最大的优势在于支持完整篇 的透明通道。

对于简单的图形类型的图像(比如 App 内的各种 UI 素材),WebP 无损压缩的文件体积和解码宽度其他情况汇报下因此 比 PNG 还要理想了,因此 你我想要对 App 安装包体积进行优化,还还要尝试一下 WebP。

《微信对网络影响的技术试验及分析(论文全文)》

《深入学习移动端主流图片格式的特点、性能、调优等》

《腾讯原创分享(一):怎么上能 大幅提升移动网络下手机QQ的图片传输宽度和成功率》

对于编码无损图片来说,quality=0, method=0~3 是相对来说比较合适的参数,有有助于节省编码时间,一齐时会 不错的压缩比。无损编码图片,quality=75, method=2~4 是比较合适的参数,能在编码时间、图片质量、文件体积之间有着不错的平衡。

《移动端IM开发者必读(二):史上最全移动弱网络优化最好的方法总结》

method: [0~6] 压缩比,0表示快速压缩,耗时短,压缩质量一般,6表示极限压缩,耗时长,压缩质量好。该参数也只针对有损压缩有明显效果。调节该参数最高能带来 20% ~ 40% 的更高压缩比,但相应的编码时间会增加 5~20 倍。Google 推荐的值是 4。

quality: [0~80] 图像质量,0表示最差质量,文件体积最小,细节损失严重,80表示最高图像质量,文件体积较大。该参数只针对有损压缩有明显效果。Google 官方的建议是 75,腾讯在对 WebP 评测时给出的建议也是 75。在這個 值符近,WebP 能在压缩比、图像质量上取得较好的平衡;

《谈谈移动端 IM 开发中登录请求的优化》

《怎么上能 保证IM实时消息的“时序性”与“一致性”?》