关于图像识别:这个开发者易忽略的优化点腾讯视频竟靠它省上千万元

2次阅读

共计 4960 个字符,预计需要花费 13 分钟才能阅读完成。

👉腾小云导读

在互联网行业降本增效的大背景下,如何联合业务本身状况降低成本是每个业务都须要思考的问题。腾讯视频业务产品全平台日均笼罩人数超 2 亿。图片作为流媒体之外最外围的流传介质,宏大的业务量让动态带宽老本始终居高不下——腾讯视频各端日均图片下载次数超过 100 亿次,均匀图片大小超 100kb,由此带来的图片动态带宽老本月均超千万。本文将具体介绍腾讯视频业务产品借助腾讯云数据万象来优化动态带宽老本过程中的挑战与解决方案,输入同畛域通用的教训办法,心愿能够对宽广开发爱好者有所启发。

01 前言

在降本增效的互联网大背景下,如何联合本身业务状况降低成本是许多业务都须要思考的命题。

腾讯视频作为我国当先的在线视频媒体平台,全平台日均笼罩人数超 2 亿,付费会员数超过 1 亿。作为处于行业领先地位的产品,腾讯视频实现了对热门剧集、电影、综艺、动漫、体育等各内容的全面笼罩。同时腾讯视频业务很简单、业务散布很宽泛。除了挪动端,还有 Web 端、PC 端、客厅和 H5 等多个产品状态。

在这泛滥状态之中,图片是除了流媒体之外最外围的传播媒介。如此宏大简单的业务,势必会导致图片爆炸式的增长。据不齐全统计,腾讯视频各端日均图片下载次数超过 100 亿次,均匀图片大小超 100kb,由此带来的图片动态带宽老本月均超千万。如何在保障用户体验的前提下升高图片带宽老本,便成为了团队的重点课题。

本文在科普图片解决的通识常识后,将具体介绍腾讯视频业务借助腾讯云数据万象进行动态带宽老本优化过程中的挑战与解决方案,输入通用的教训办法。心愿能够对诸位看官有所启发。

02 图片解决重要概念

现有的图片格式有哪些?什么是有损压缩、无损压缩?在介绍计划之前,咱们有必要理解下相干的根底概念。

2.1 图片压缩

无损压缩

简介:无损压缩是对文件自身的压缩,和其它数据文件的压缩一样,是对文件的数据存储形式进行优化。采纳某种算法示意反复的数据信息,文件能够齐全还原,不会影响文件内容。对于数码图像而言,也就不会使图像细节有任何损失。

原理:无损压缩的基本原理是雷同的色彩信息只需保留一次。压缩图像的软件首先会确定图像中哪些区域是雷同的,哪些是不同的。包含了反复数据的图像(如蓝天) 就能够被压缩,只有蓝天的起始点和终结点须要被记录下来。然而蓝色可能还会有不同的深浅,天空有时也可能被树木、山峰或其余的对象覆盖,这些就须要另外记录。

从实质上看,无损压缩的办法能够删除一些反复数据,大大减少要在磁盘上保留的图像尺寸。然而,无损压缩的办法并不能缩小图像的内存占用量,这是因为,当从磁盘上读取图像时,软件又会把失落的像素用适当的色彩信息填充进来。如果要缩小图像占用内存的容量,就必须应用有损压缩办法。

罕用算法:游程编码、熵编码法:如 LZW 这样的自适应字典算法。

有损压缩

简介:有损压缩是对图像自身的扭转,在保留图像时保留了较多的亮度信息,而将色相和色纯度的信息和四周的像素进行合并。
合并的比例不同,压缩的比例也不同,因为信息量缩小了,所以压缩比能够很高,图像品质也会相应降落。
原理:有损压缩能够缩小图像在内存和磁盘中占用的空间,在屏幕上观看图像时,不会发现它对图像的外观产生太大的不利影响。
因为人的眼睛对光线比拟敏感,光线对风物的作用比色彩的作用更为重要,这就是有损压缩技术的根本根据。

罕用算法:
色调空间:这是化减到图像中罕用的色彩。所抉择的色彩定义在压缩图像头的调色板中,图像中的每个像素都用调色板中色彩索引示意。这种办法能够与抖动一起应用以含糊色彩边界。
色度抽样:这利用了人眼对于亮度变动的敏感性远大于色彩变动,这样就能够将图像中的色彩信息缩小一半甚至更多。
变换编码:这是最罕用的办法。首先应用如离散余弦变换(DCT)或者小波变换这样的傅立叶相干变换,而后进行量化和用熵编码法压缩。
分形压缩:是一种以碎形为根底的图像压缩,实用于纹理及一些天然影像。

2.2 图片格式
格局 介绍
JPEG JPEG 是用于间断色调动态图像压缩的一种规范,文件后缀名为 .jpg 或 .jpeg,是最罕用的图像文件格式。它采纳联结编码方式,以去除冗余的图像和黑白数据,属于有损压缩格局,可能将图像压缩在很小的贮存空间,但肯定水平上会造成图像数据的伤害。
JPEG 编码中 quality 越小,图片体积就越小,品质越也差,编码工夫也越短。

PNG PNG 是一种采纳无损压缩算法的位图格局。其设计目标是试图代替 GIF 和 TIFF 文件格式,同时减少一些 GIF 文件格式所不具备的个性,它自身的设计目标是代替 GIF 格局,所以它与 GIF 有更多类似的中央。
无损压缩 PNG 文件采纳 LZ77 算法的派生算法进行压缩,其后果是取得高的压缩比,不损失数据。它利用非凡的编码方法标记反复呈现的数据,因此对图像的色彩没有影响,也不可能产生色彩的损失,这样就能够反复保留而不升高图像品质。
绝对于 JPEG 和 GIF 来说,它最大的劣势在于反对残缺的通明通道。因为反对通明成果,PNG 能够为原图像定义 256 个通明档次,使得彩色图像的边缘能与任何背景平滑地交融,从而彻底地打消锯齿边缘,这种性能是 GIF 和 JPEG 没有的。

GIF 全称 Graphics Interchange Format,它是无损的、采纳索引色的点阵图。GIF 通常状况下只反对 256 种颜色、通明通道只有 1 bit、文件压缩比不高。它惟一的劣势就是反对多帧动画。
它通常只反对 256 色索引色彩,导致只能通过抖动、差值等形式模仿较多丰盛的色彩,Alpha 通道只有 1 bit,这意味着一个像素只能是齐全通明或者齐全不通明,会有毛边成果。

APNG APNG(Animated Portable Network Graphics)顾名思义是基于 PNG 格局扩大的一种动画格局,能够实现 PNG 格局的动静图片成果,旨在替换掉画质低劣的 GIF 动画。
它减少了对动画图像的反对,同时退出了 24 位图像和 8 位 Alpha 透明度的反对,这意味着动画将领有更好的品质,其诞生的目标是为了代替老旧的 GIF 格局。

WEBP WEBP 是 Google 开发以更高的压缩比代替 JPEG。它用 VP8 视频帧内编码作为其算法根底,领有很不错的压缩成果,同时提供了有损压缩与无损压缩(可逆压缩)的形式。

SHARPP SHARPP 是腾讯音视频实验室自研的基于新一代视频编码标准 H.265 的图片压缩技术。压缩效率绝对其余图片格式具备很显著的劣势。

AVIF AVIF 是一种基于 AV1 视频编码的新图像格式。绝对于 JPEG,WEBP 这类图片格式来说,它的压缩率更高,并且画面细节更好。
AVIF 反对多种色调空间,包含高动静范畴影像(HDR),还包含规范动静范畴影像(SDR),以及经由独立编码码位的色调空间讯号或合乎 ICC 色调个性文件。同时它反对 8 位元、10 位元、12 位元和更高的色调深度。

基于腾讯视频现有的业务,比照了多组同一图片在雷同品质的前提下,不同格局的图片的压缩状况:

应用 AVIF 压缩图片是否会造成体验上的影响?肉眼观感较为主观,无奈量化。所以咱们也援用了一些主观的指标来进行比照。这里应用 PSNR(峰值信噪比)和 SSIM(构造相似性)来掂量 AVIF 压缩之后的图片品质:其中 PSNR 越高,压缩后失真越小,SSIM 值越大,图像品质越高。

腾讯云数据万象通过一直调整和优化,实现:在雷同品质下,AVIF 的 PSNR 和 SSIM 会比 WEBP 更靠近甚至更高,但 AVIF 会比 WEBP 升高体积 30% 以上。这是在 95 品质下对图片进行 AVIF 压缩后的 PSNR 和 SSIM 数据比照。

因而,想要升高动态带宽老本,应用 AVIF 格局图片是最优的抉择。03 腾讯视频图片存储两大绝招  

3.1 绝招一:AVIF 压缩 - 轻轻变”小“,压缩率超 50%

AVIF 格局简介

AVIF 是一种基于 AV1 视频编码的新图像格式。绝对于 JPEG,WEBP 这类图片格式来说,它的压缩率更高,画面细节更好。对于 AVIF 的介绍和调研,业内有很多文章介绍。例如:Netflix 的 AVIF for Next-Generation Image Coding。
如下图所示,AVIF 相比拟 WEBP 压缩率 52% 左右,相比拟 PNG 能够达到惊人的 90% 以上,并且画面成果简直无影响。

而腾讯云数据万象已早早反对 avif 转码性能,其所应用的底层编解码是腾讯自研的 AV1 编解码器——TXAV1 编码器。在 2021 年 MSU 较量中,对于 AV1 的较量指标,TXAV1 加入了 29 项,获得了 28 项当先,取得综合最佳。

图片压缩计划有了上述强力的性能反对,腾讯视频抉择了数据万象实现图片 AVIF 转码。为了验证成果,咱们也进行了图片大小的横向比照调研:

比照验证中咱们采取了不同大小的图片作为样本,别离比照了压缩成 SHARPP 和 AVIF 格局的图片大小。从图表中能够显著看出 AVIF 图的大小比照原图有着显著升高,甚至相较 SHARPP 图都有很大的优化幅度。
在端内咱们通过 hook 图片申请,在申请头的 accept 中携带 image/avif 标记以后环境反对 AVIF 类型图片。相比间接在 URL 后缀拼接 format 参数,在把域名适配反对 AVIF 后,Web 端能够间接失效,也节俭 Web 端的图片带宽老本,施行流程如下:

在应用形式上,数据万象的 AVIF 压缩性能也极其不便易用。只需在原拜访链接上增加压缩参数即可,业务利用及切换非常便捷。此外,腾讯云数据万象与 CDN 服务实现了买通,仅需在腾讯云 CDN 控制台开启配置开关,即可实现域名级别的批量图片优化,非常便捷:

在端内图片解码上,由腾讯云数据万象提供的腾讯自研解码库,能够收费集成。有自研实验室提供的编解码配套服务,性能与稳定性都有了牢靠的保障。实际效果现如今,腾讯视频线上 80% 的图片曾经切换成 AVIF 格局,日均 AVIF 申请达到 35 亿次,整体上均匀图片大小升高 70%,均匀解码耗时升高 20%。

依据搭建的看板数据,咱们也比照了 AVIF 和其余类型图片的数据:

能够直观看到 AVIF 图片均匀大小 20kb 左右,远低于 PNG/WEBP/SHARPP 等其余图片。

3.2 绝招二:图片采样 - 最合适的窗口,显示最合适的图片

图片采样简介
图片采样逻辑,简略来说就是利用腾讯云数据万象的图片缩放及裁剪能力,在申请图片时依据 View 的理论宽高下载尺寸绝对适合的图片,从而防止因图片的原尺寸过大超过渲染图片的宽高,造成了带宽节约和内存节约。

通过图片裁剪能力的反对,腾讯视频端侧能够依据业务指定的尺寸实时裁剪生成任意尺寸的图片,流程如下:

该策略的一大特点是整个压缩裁剪过程全副在云上实现、反对自定义尺寸。保障图片理论下载时能展现最合适的宽高,从而升高图片传输的带宽老本,同时还能升高本地图片内存峰值。计划劣势云端缩放裁剪,无需业务后端染指,开发成本低。图片体验无影响,View 渲染尺寸等于图片下载时尺寸。灵便度高,能够缩放裁剪成任意尺寸,更好适配各个分辨率客户端。升高网络运输成本,升高客户端内存占用。实际效果在图片下采样策略上线之后,通过线上数据统计:均匀图片下载大小——升高 53%

均匀图片内存大小——升高 24.3%

均匀图片下载耗时——升高 7.8%

均匀图片解码耗时——升高 35.3%

04 总结

动态带宽老本优化是一个非常复杂的我的项目,波及到图片、Push、文件下载三个次要大方向,每个方向的计划各不相同。腾讯视频给出的答卷,能够简略总结为以下两个局部:

AVIF 图片压缩:对线上图片进行 AVIF 转码,端侧集成 AVIF 解码能力,从源头升高图片大小。
图片采样策略:依据理论申请时的窗口大小对图片进行相应的裁剪及缩放,防止带宽及内存的节约。

AVIF 图片压缩及图片采样策略作为整个腾讯视频动态带宽老本优化的一部分,对整体老本的降落起到了无足轻重的作用。在两大绝招并行不悖后,咱们对整体的流量数据也作了一个比照统计:在不思考用户增长的前提下,腾讯视频业务头部前 10 个图片域名月均流量从 650G 升高到 250G 左右,降幅超过 60%,单位成本也从 22 年 6 月到 22 年 10 月升高了 57%,22 年 H2 节约超千万老本。

目前腾讯视频业务根本已全量利用了 AVIF 和图片采样的技术计划,同时也将我的项目教训共享给腾讯动漫、腾讯新闻等业务,帮忙更多产品高效的升高动态带宽老本。读到这里,心愿咱们的案例也可能帮忙到你,解决图片带宽老本的头疼问题。

正文完
 0