前言
随着硬件的发展,不管是手机还是专业摄像设备拍出的图片随便可能就有几M,甚至几十M,并且现在我们处于随处可及的信息海洋里,海量的图片带来了存储问题、带宽问题、加载时延问题等等。对图片信息进行有效的压缩处理无疑会极大的降低存储成本、流量压力,并且还能显著提升页面加载速度。
图片压缩指在图片质量保持不变的情况,尽可能的减小图片大小,以达到节省图片存储空间、减少图片访问流量、提升图片访问速度的效果。数据万象(Cloud Infinite,CI)
AVIF技术原理
AVIF(AV1 image format)压缩格式,是采用 AV1 帧内编码的一种图像编码格式,是目前最新的图片压缩格式。AV1 是由开放媒体联盟(AOMedia)的成员共同推动研发的一个标准。而 AVIF 则是基于 AV1 编码产生的具有更高压缩能力、保留更佳画面细节的图形压缩格式,相比于其他格式,其帧内编码具有非常多的改进优化:
- 更灵活的编码树划分:引入更大的编码/变换块单元,编码单元尺寸可达128x128,划分方式更加灵活,多达10种。
- 更精细的帧内预测模式:56种角度模式,intra copy 调色板模式、帧内预测滤波CFL等使得帧内预测更为精确。
- 更先进的滤波技术:基于方向约束的增强滤波(CDEF),环路复原滤波(restoration)等有效改善了图像质量。
TXAV1图片编码器
数据万象所使用的 AVIF 压缩能力,底层编解码所使用的是腾讯自研的 AV1 编解码器——TXAV1 编码器。在2021年MSU比赛中,关于 AV1 的比赛指标,TXAV1 参加了29项,取得了28项领先,获得综合最佳。
腾讯作为AOM联盟的成员之一,一直致力于技术研发上的深耕,TXAV1 中包含了很多腾讯自研技术:
1、核心数据架构设计
AVIF的划分模式非常复杂,可能性非常多。为了更好的获取数据、减少重复计算和数据的拷贝,设计了一套以treeNode(方便获取节点属性信息, 避免重复计算),IdenticalCU(利用相同Cu计算结果,减少计算量),和SwapBuffer(通过内存交替使用,减少拷贝和重算)为核心的数据架构。在算法和输出码流不变的情况下,为AVIF编码提速20%以上。
2、帧内快速CU,TU决策算法设计
- 以周边块的信息,包括划分尝试,划分模式,失真代价等,提前决策当前块是否继续划分。
- 以当前块的CU/TU或子CU/TU的信息为参考, 提前终止当前划分。
3、帧内模式算法设计
采用多级帧内预测算法,通过简单估算,初步筛选出几个重要候选,然后做完整变换,再根据模式和代价补做角度和滤波,大幅加速帧内编码效率。
4、滤波快速算法
AV1中deblock,cdef,restoration等滤波耗时很高,通过对图像内容及参考图像的滤波使用情况分析,对当前帧的滤波进行搜索范围的缩小或跳过处理, 从而大帧提前滤波的处理速度。
5、编码后处理滤波按行并行处理
在图片上可以提速50%。AV1的后处理滤波包括deblock,cdef,restoration等,deblock和cdef滤波的参数导出过程均依赖整帧的数据,这与HEVC标准中的基于块导出参数的过程有很大不同,不利于按行级并行处理;在TXAV1针对图片的优化中实现了基于部分图像进行参数导出,并针对图片优化了参数导出算法。
6、编码intra block copy优化,提速240%
intra block copy对一些游戏或者文字较多的图片收益很大,但intra block copy在搜索最优匹配块的过程中通常使用hash搜索,而对图片生成hash的过程耗时很长。因此在TXAV1的优化中,使用了网格运动搜索算法替换原有的hash搜索,并针对图片优化了网格搜索算法,最终优化后相对原有算法提速240%,压缩性能仅损失2.9%。在大幅加速的同时,保留了intra block copy大部分性能。
数据万象产出的AVIF图片效果对比
1、AVIF 图片视觉对比
以下面一张图作为例子说明 AVIF 图片的优势,保持图片分辨率不变,将图片分别转成 JPG,WebP,AVIF 格式。
从上面四张图可以看到,在经过压缩后,图片原有尺寸均不变的情况下,JPG格式的图片画质相对较差,房屋后面的云层变成大片的明显的色块色条;webp虽然没有出现色块,但整体颜色和原图相比有明显失真;avif格式的图形显示依旧平滑,体积也很小,效果明显优于JPG和WEBP。此时的AVIF相比无损PNG有约42倍的压缩性能,仍保留了原图数据的大部分细节,堪称完美。说明了avif有着更高的压缩效率,很好的保真效果。
2、AVIF 图片质量数据对比
通过大量图片样本测试,不同的压缩质量比较图片压缩前后的文件大小、 PSNR、SSIM,将 AVIF 与最为常见的图片格式 JPG、WebP 、PNG 进行了对比,从以下的实测数据可以看出,AVIF 在压缩方面具有绝对的优势。
AVIF 图片相对 WebP 图片大小平均减小30%多,相对 JPG 图片大小平均减小50%多,相对 PNG 图片平均减少90%左右。
3、AVIF 图片编解码速度对比
通过样本测试比较得到解码时间平均耗时只有某竞品AVIF解码器的58.83%,编码平均耗时只有竞品的63.76%,性能相对竞品在耗时方面优势明显。
数据万象AVIF图片压缩的使用方法
1、通过数据万象接口使用
AVIF 图片压缩可通过数据万象图片处理的 imageMogr2 参数进行使用。
该参数支持以下的处理方式:下载时处理、上传时处理、云上数据处理。
使用前提条件
需要先开通数据万象图片高级压缩功能,您需要在已绑定数据万象服务的存储桶中,开启图片高级压缩功能。
操作指引
a. 登录对象存储控制台,选择指定存储桶,然后选择界面左边红框内“数据处理”,再选择“图片处理”,然后点击编辑,开通后保存即可。
b. 选择该存储桶的一张图片,复制图片链接,比如:https://XXXXXXX-1258125638.cos.ap-nanjing.myqcloud.com/1.png
c. 使用基础图片处理中图片格式转换的参数,在图片链接后面拼上参数:https://XXXXXXX-1258125638.cos.ap-nanjing.myqcloud.com/1.png?imageMogr2/format/avif
d. 即可获取 AVIF 格式图片。
2、通过 CDN 的 AVIF 自适应功能使用
在使用腾讯云 CDN 进行海量图片分发时,可通过开启图片优化,对符合要求的图片请求,自动进行 webp、guetzli、tpg、avif 格式图片压缩,可有效降低因图片产生的下行流量,降低成本。配置步骤如下:
a. 登录 CDN 控制台,在菜单栏里选择域名管理(右侧红框),单击域名右侧管理(左下角红框),即可进入指定域名配置页面。
b. 源站为 COS 对象存储时,可看到图片优化菜单栏,将 AVIF 自适应打开,点击确认之后即可。
c. 开启了 AVIF 自适应图片压缩功能后,满足以下条件的请求,将直接返回 AVIF 处理后的图片:
- HTTP 请求头中 accept 头部包含 image/avif。
- 图片后缀为:jpg、png、bmp、gif。
【具体详情及收费细节请参考】:https://cloud.tencent.com/document/product/228/43121
总结
与传统的压缩格式相比,AVIF 在解决了图片保存、传播、下载过程中的成本和效率问题的同时,还可以在保证更高压缩性能的基础上保留更多的图像细节、支持更多的图片种类、传递更多的图片信息,大大提升用户体验。
赶快来使用腾讯云吧,将图片存储在腾讯云 COS,通过数据万象将业务图片轻松转为 AVIF,让您成为 AVIF 的最先受益者!