《数据万象带你玩转视图场景》第一期:avif图片压缩详解

2023-03-06 12:35:41 浏览数 (2)

前言

随着硬件的发展,不管是手机还是专业摄像设备拍出的图片随便可能就有几M,甚至几十M,并且现在我们处于随处可及的信息海洋里,海量的图片带来了存储问题、带宽问题、加载时延问题等等。对图片信息进行有效的压缩处理无疑会极大的降低存储成本、流量压力,并且还能显著提升页面加载速度。

图片压缩指在图片质量保持不变的情况,尽可能的减小图片大小,以达到节省图片存储空间、减少图片访问流量、提升图片访问速度的效果。数据万象(Cloud Infinite,CI) 产品推出了 AVIF 压缩功能,可将图片转换为 avif 格式,avif 是基于 av1 的一种全新图片格式,在2020年2月由 Netflix 首次公布于众,目前已支持 Chrome、Firefox 等浏览器。

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 参数进行使用。

该参数支持以下的处理方式:下载时处理、上传时处理、云上数据处理。

使用前提条件

需要先开通数据万象图片高级压缩功能,您需要在已绑定数据万象服务的存储桶中,开启图片高级压缩功能。

操作指引

  1. 登录对象存储控制台,选择指定存储桶,然后选择界面左边红框内“数据处理”,再选择“图片处理”,然后点击编辑,开通后保存即可。

2. 选择该存储桶的一张图片,复制图片链接,比如:https://XXXXXXX-1258125638.cos.ap-nanjing.myzijiebao.com/1.png

3. 使用基础图片处理中图片格式转换的参数,在图片链接后面拼上参数:https://XXXXXXX-1258125638.cos.ap-nanjing.myzijiebao.com/1.png?imageMogr2/format/avif

4. 即可获取 AVIF 格式图片。

2、通过 CDN 的 AVIF 自适应功能使用

在使用腾讯云 CDN 进行海量图片分发时,可通过开启图片优化,对符合要求的图片请求,自动进行 webp、guetzli、tpg、avif 格式图片压缩,可有效降低因图片产生的下行流量,降低成本。配置步骤如下:

  1. 登录 CDN 控制台,在菜单栏里选择域名管理(右侧红框),单击域名右侧管理(左下角红框),即可进入指定域名配置页面。
  2. 源站为 COS 对象存储时,可看到图片优化菜单栏,将 AVIF 自适应打开,点击确认之后即可。

3. 开启了 AVIF 自适应图片压缩功能后,满足以下条件的请求,将直接返回 AVIF 处理后的图片:

  • HTTP 请求头中 accept 头部包含 image/avif。
  • 图片后缀为: jpg、png、bmp、gif。

具体详情及收费细节请参考https://cloud.tencent.com/document/product/228/43121。

总结

与传统的压缩格式相比,AVIF 在解决了图片保存、传播、下载过程中的成本和效率问题的同时,还可以在保证更高压缩性能的基础上保留更多的图像细节、支持更多的图片种类、传递更多的图片信息,大大提升用户体验。

赶快来使用腾讯云吧,将图片存储在腾讯云 COS,通过数据万象将业务图片轻松转为 AVIF,让您成为 AVIF 的最先受益者!

0 人点赞