腾讯技术共享:腾讯如何显著降低带宽和网络流量(图片压缩)

 1.前言

 

 每年年初,腾讯都要设定SNG成本优化的年度目标,过去三年通过技术手段为公司节省了超过10亿的现金流。产品的结构和生产能力越来越健康,很难继续优化成本。

 

 然而,在混乱中,我们仍然设定了优化3亿元的目标。幸运的是,我们在2017年实现了这个目标,并再次获得公司级奖项,这非常困难。因为“成本与质量”是一个平衡的梁,SNG产品在2017年面临激烈的内外部竞争,降低产品质量是不可能的。因此,本文将与您分享如何在保证质量(指图像质量和音频视频质量)的前提下压缩带宽和网络流量,从而优化运营成本。

 

 腾讯SNG社交网络业务集团简介:

 腾讯技术共享:腾讯如何显著降低带宽和网络流量(图片压缩)_11.png

 腾讯SNG社交网络集团(简称SNG)是腾讯七大业务集团之一,成立于2012年5月。它建立了基于QQ和QQ空间的综合互联网服务。在腾讯的大系统中,SNG是一个非常重要的基础平台,也是腾讯产品线中用户数量最多的业务群体。

 

 

 2.系列文章

 

 因为文章太长,这篇分享分成两篇。这篇文章是两篇文章中的第一篇:

 

 腾讯技术共享:腾讯如何大幅降低带宽和网络流量(图片压缩)(本文)

 腾讯技术共享:腾讯如何大幅降低带宽和网络流量(音频和视频技术)

 

 相关技术文章:

 

 QQ音乐团队分享:安卓图像压缩技术详解(上)

 QQ音乐团队分享:安卓图像压缩技术详解(下)

 腾讯原创分享(一):如何在移动网络下大幅提高手机QQ的图片传输速度和成功率

 腾讯原创分享(2):如何大幅降低移动网络下应用的流量消耗(上)

 腾讯原创分享(3):如何在移动网络下大幅降低应用的流量消耗(下)

 腾讯技术共享:社交网络图片带宽压缩技术的演进

 基于社交网络的Yelp如何实现海量用户图片的无损压缩?》

 构成即时消息开发的基础知识(2):如何为大量图像文件设计服务器端存储架构?》

 

 这篇文章将集中在优化图片和带宽压缩。请继续阅读。

 3.关于作者

 

 腾讯技术共享:腾讯如何大幅降低带宽和网络流量(图片压缩)_2.jpg

 范京京:“我是腾讯SNG社交网络运营部的一名年长的女丝绸,被称为DSNO(丝绸一号)团队。”

 腾讯高级工程师,2008年加入腾讯,从事资源管理和预核算,现在主要从事成本优化,为SNG优化项目预防性维护。

 4.移动端的高流量时代即将到来

 

 “在非无线环境中玩手机时,你会在意“流量”吗?”

 

 我在我周围的同事和朋友圈子里做了同样的调查,得到了相似的答案。每个人都不太关心手机的流量,他们也不喜欢变成菊花和卡住。我使用腾讯金卡,这是免费的流量从腾讯部。其他交通流量为1元人民币每天800米。我有一张我姐姐用的支付宝卡,1元/克的全国日租流量,还有我领导用的全球联通套餐。他自己也不记得一个月要花多少钱。不管怎样,交通不会被用完的。他说他不缺乏流量和时间,但我总是发现他会偷偷看小视频,当他看到它们时不能停下来。

 

 今年3月,政府公布“取消交通漫游费,年内减收30%”。5G将于2020年问世,网络速度是4G的5-15倍。全国人民的交通时代即将到来,花在网上冲浪的时间将会增加,更多的富媒体应用将会迅速增长。例如,在QQ相册、朋友圈、微博和脸书都以图片为基础的时代,将会有更多基于原创短视频的快速、颤音和现场直播,这些视频比文字和图片更直观,视频更富同情心,但具有“高带宽”。

 

 目前,普通手机拍摄的图片都是关于2M的,没有压缩,一个3分钟的小视频约20M,直接存储或传输,不仅浪费用户的带宽,还容易造成菊花和堵塞。如何在不影响质量的情况下将图片和视频压缩到最小,降低手机的功耗和热量,使网络传输更快,从而提高用户体验。

 

 总之,正如本文将要分享的,通过技术手段为用户提供低成本、高质量的产品体验是未来移动产品的思考方向。

 5.以QQ相册图像压缩为例

 

 让我们来看看QQ相册图像压缩的例子。QQ相册业务稳步发展,每天有数万亿张图片、数百万张新上传的图片和数百亿张下载的图片。外部网络的日峰值带宽超过100克,成本压力一直存在。

 

 我们在不同的维度上练习了技术化,包括使用新的图片格式、最新的技术和一些技巧。

 

 5.1使用WebP格式进行图像压缩

 

 用户上传的图片通常有三种主流格式:JPEG、PNG和GIF动画。用户上传的谷歌网页格式的原始图片在后台压缩15年,同样质量的网页图片比原始图片小30%。

 

 5.2使用分辨率调整

 

 用户终端型号的分辨率各不相同,但有些产品是以最高分辨率分发的,但中低端型号不需要高分辨率图片,这可以通过优化来节省20%的流量,以便根据需要以适当的分辨率返回图像。在保持图像清晰度不变的前提下,过去15年进行的两次优化为用户和企业节省了流量和存储空间。

 

 腾讯技术共享:腾讯如何显著降低带宽和网络流量(图片压缩)_1.jpeg

 

 5.3GIF动画压缩

 

 16岁的时候,相册引入了一个新功能,用户可以选择自己的照片来合成GIF动画,当他们谈论它的时候。新功能导致流量快速增加,外部网络的带宽成本相应增加70%。流量分析发现,只有5%的GIF格式的下载图像占用了20%的带宽,而大多数剩余的图像是以WebP格式压缩的。

 

 GIF动画相当于一组图片,可以被视为一个小视频。但是,GIF格式是位图文件格式,它使用颜色表索引来表示每个像素的颜色,然后标记重复的数据。编码过程不会丢失图像的颜色数据,因此是一种无损压缩方法。与视频压缩算法相比,压缩率较低,用户编辑的GIF大小一般为2-4M,是普通图片的几十倍。它为用户和企业提供了大量的下载流量和存储空间。当时使用的开源WebP不支持GIF动画压缩,因此考虑了其他图像压缩格式。

 

 腾讯技术共享:腾讯如何大幅降低带宽和网络流量(图片压缩)_2.jpeg

 6.TPG图像压缩新技术选择

 

 腾讯SNG音视频实验室开发了基于AVS2国家标准内核的TPG图像压缩格式。采用视频编码方式,利用帧间参考大大减少冗余值,提高压缩率。尤其在运动图像中,它具有压缩比高、编解码时间短的明显优势。在QQ相册中证实,在同等质量的情况下,TPG可以减少90%的GIF和21%的WebP,比JPEG节省约43%。编码和解码性能得到优化,在耗时上优于WebP。为此,TPG格式的相册已经全面推广了17年。

 

 腾讯技术共享:腾讯如何显著降低带宽和网络流量(图片压缩)_3.jpeg

 

 右边是被压缩了11倍的TPG动画,很难看出人眼主观观察质量的差异:

 腾讯技术共享:腾讯如何显著降低带宽和网络流量(图片压缩)_4.jpeg

 7.相册访问TPG图像压缩-前后办公室的困难

 

 所有客户端的统一后台配置:

 相册显示场景复杂,访问方案应适用于所有客户端版本,如手机、电脑、H5内核等。根据用户的客户端能力,应该首先返回TPG > WebP > JPG。右图显示了在后台构建的所有客户端的统一后台配置。

 

 分层压缩,OC点碎片缓存:

 由于GIF相对较大,压缩需要很长时间。对于不同大小的GIF的分级压缩,实时压缩小于2M,设置超时2秒,设置超时4秒为2-8M,异步压缩大于8M,并更新缓存。同时,为了确保由于GIF太大而不容易消除OC点,采用了分段缓存策略。

 

 兼容性:

 对于共享的礼品,我们会提供原始的网址,优先保证用户体验。

 

 灰度发布:

 作为TPG第一个大规模综合接入服务,为了保证平滑过渡,首先对新上传的图片进行异步压缩并存储在源站,然后在接入后存储在中间源和OC点。在TPG热数据占70%后约一个月,旧图片需要手动触发或基于访问触发实时压缩。

 

 腾讯技术共享:腾讯如何显著降低带宽和网络流量(图片压缩)_5.jpeg

 8.廉价的转码资源

 

 TPG使用AVS2编码标准,通过非常复杂的计算来提高图像的压缩比。事实上,图片、音频和视频的压缩率的增加增加了计算的复杂性,这相当于用计算资源来换取带宽和存储。因此,带宽优化需要大量廉价的代码转换资源,如果专门购买代码转换服务器,则需要大量的现金流。因此,我们使用FPGA转码卡和离线平台来提供廉价的计算资源。

 

 离线平台:

 离线平台主要通过部署Docker来调度处理器空闲时间的资源。资源来源是母机超卖池、公司和部门资源池以及在线低负载设备。同时,为了不影响原有的在线业务和资源池的分配,通过监控任务的负载状态,容量将逐渐扩大和缩小,实现了小时调度能力和灵活的分配策略。

 

 FPGA卡:

 FPGA作为一种高性能、低功耗的可编程芯片,可以根据客户定制进行有针对性的算法设计。因此,在处理海量数据时,与CPU和GPU相比,FPGA具有更高的计算效率。以相册TPG转码为例,FPGA卡的性能是普通图像处理服务器的10倍,编码延迟降低了80%,用户等待时间大大减少。通过将现场可编程门阵列转码卡与Docker离线软件和硬件相结合,可以有效降低转码成本,现在已经节省了数千台服务器。

 

 腾讯技术共享:腾讯如何显著降低带宽和网络流量(图片压缩)_6.jpeg

 

 结果:

 该项目于今年上半年完成,现在TPG请求占80%以上,节省40%的带宽,减少存储,每年节省数千万。相反,由于文件较小,解码效率提高,用户等待时间减少了22%。

 

 腾讯技术共享:腾讯如何显著降低带宽和网络流量(图片压缩)_7.jpeg

 9.全类型多场景图像压缩解决方案

 

 虽然TPG编码压缩在压缩比上有优势,但它需要客户端和PC机有解码SDK才能正常使用。目前,在当前的网络中仍然有很多对原始图像的要求。

 

 Guetzli是谷歌2017推出的最新图像压缩格式,比同等质量的JPEG小30%。该算法不改变JPEG编码格式,但优化和减少了数据,因此编码后的图像适用于现有的解码器。然而,它的计算开销非常高,并且耗时是不可接受的。与传统的中央处理器相比,图形处理器对图像具有很高的并发计算能力,Guetzli和图形处理器可以将压缩时间大大减少到可接受的范围内。现在有一些场景(卡通)是这样的。

 

 HEIF是H.265标准的推荐格式,比JPEG小40%。HEIF格式是在苹果iPhone7升级到IOS 11及以上版本时直接生成的,同样质量的文件大小与TPG相似。腾讯的图片平台支持这种存储和请求返回的格式,只需要修改客户端的请求。专辑和魏云已经被使用。如果两个iPhone7(IOS11)用户互相发送本机拍摄的照片(HEIF格式),则无需转码,与原始JPEG图像相比,转码可节省40%以上的流量和存储空间,从其他不受支持的客户端下载时,转码为其他格式。因此,一些苹果用户的体验更好,需要推广成为主流。

 

 经过三年的积累,腾讯已经建立了一套全类型、多场景的图像压缩解决方案,根据用户的客户端情况返回最佳的图像格式,并降低服务访问阈值,如下图所示。

 腾讯技术共享:腾讯如何显著降低带宽和网络流量(图片压缩)_8.jpeg

 

----------------------------------------------------------------------------------

哇谷im_im即时通讯_私有云_公有云-哇谷云科技官网-JM沟通

IM下载体验 - 哇谷IM-企业云办公IM即时聊天社交系统-JM 沟通下载

IM功能与价格 - 哇谷IM-提供即时通讯IM开发-APP搭建私有化-公有云-私有化云-海外云搭建

新闻动态 - 哇谷IM-即时通讯热门动态博客聊天JM沟通APP

哇谷IM-JM沟通热门动态博客短视频娱乐生活

关于哇谷-哇谷IM-提供企业即时通讯IM开发-语音通话-APP搭建私有化-公有云-私有化云-海外云搭建

联系我们 - 哇谷IM-即时通讯IM私有化搭建提供接口与SDK及哇谷云服务

即时通讯IM融云世界

IM即时通讯钉钉技术:企业IM钉钉在后端架构上的优越之处

新的市场叫板环信、融云、腾讯云!开源版IM即使聊天工具

企业IM即时通讯聊天办公APP钉钉技术分析交流

哇谷云-怎么样正确认识海外云服务器

公有云和私有云之间有什么区别?类似融云、环信云、网易云、哇谷云?