# Editorial Note #

本次分享我们邀请到了来自Google Open Codec Team的韩敬宁博士,他向我们分享了AV1解码器的覆盖,AV1编码器性能的提升包括AV1压缩性能的提升和运算复杂度的降低,AV1实时编码器的应用和基于AV1的图像编码器格式AVIF的最新研究进展。

文 / 韩敬宁

整理 / LiveVideoStack

大家好,我是Google Open Codec Team韩敬宁,很高兴能有这样的机会与大家分享关于LibAOM和AV1的最新研发进展。

本次分享主要分为一下几个部分:AV1解码器的覆盖、AV1编码器性能的提升(AV1压缩性能的提升和运算复杂度的降低)、AV1实时编码器的应用、 基于AV1的图像编码器格式(AVIF的最新研究进展)。

#1. AV1解码器的覆盖

现在主要的支持AV1软件解码器的浏览器有Chrome、Edge、Firefox、Opera。操作系统中Android、ChromeOS、Linux、Windows都有支持AV1解码的原生library。为了进一步推动AV1软件解码器在移动端的覆盖,我们团队还研发了Libgav1 library,它的主要目标是Android设备,在实测的Android设备中Libgav1 library的解码运行速度相对于Libaom而言能提高2.5倍以上。在硬件解码器方向通常的最低要求是4K/60fps,大多数硬件解码器能够达到8K/60fps的性能。在现有和即将上市的电视中LG、三星、索尼和TCL都是已经有AV1硬件解码器的覆盖,手机端则是LG、OPPO、三星、Vivo和小米有AV1硬件解码器的覆盖。再GPU、CPU方向AMD、Nvidia和lntel在现在和未来会有更多的AV1硬件解码器支持。

#2. AV1编码器的性能

2.1 AV1编码器的压缩性能

AV1是在2018年中旬finalize bit-stream经过团队两年多的研究和尝试AV1的压缩性能在过去两年中有了显著的提高,现在相对于VP9而言能达到的peak compression performance是在以PSNR或SSIM这样的客观指标条件下能提高36%以上。相对于2018年bit-stream finalization的时候Libaom的AV1的压缩性能peak (compression) performance在PSNR条件下是能够提高超过14%,而在SSIM条件下是能够提高超过17%。这些数字的测试条件是基于通常的standard test set,在YouTube视频条件下实测压缩性能增益远远大于在此列举的数字。

2.2 编码器的速度和内存需求

相对于2018年bit-stream finalization的时候Libaom编码器的速度提升150倍以上,与此同时在4K的视频压缩条件下我们对内存的需求下降了80%。为了更好的支持不同的实际应用场景,Libaom支持不同的一个系列的speed setting(speed setting的数字越高就意味着编码器的运行速度越快)相对压缩性能增益会有所损耗。上图的表格中,speed setting3和3以下通常是比较高的压缩性能,运行速度5相对于VP9而言更慢一些;speed setting在5以上时,实际AV1的压缩性能运行速度更高于VP9运行速度,与此同时它会提供19%、16%的压缩性能增益。在比较encoding time时AV1和VP9都是用single thread进行处理;在speed6条件下,AV1比VP9的压缩性能提高了16%与此同时它实际的encoder复杂度只有VP9的40%。

2.3 技术亮点

关于编码器的优化,在很多层面都有新的算法出现包括group of picture level、frame coding level、coding block level,本次在每个层面选一到两个例子做简述。我们的codebase是完全开源的,如果大家感兴趣,非常欢迎大家能够参考我们的codebase,如果有新的想法也非常欢迎与我们一起合作。

2.3.1 Group of picture level

在group of picture level 中AV1 Libaom基于的算法是2-pass encoding,通常会有一非常快速的first pass encode去生成一些frame level statistics,2-pass encoding会对它做出一个更好的分析,例如动态的group of picture decision。通常对first pass statistics的分析会试图提取inter frame correlation和每个frame的acquisition noise的强度,基于这两个数据去分析当前一系列的frame是否属于相对稳定、相对静态或运动非常快、variance非常高的区间。基于这些分析再去决定实际的group of picture会包括多少个frame,在这当中一定要保证当出现scene-cut时,group of picture不会go across the scene-cut point。

2.3.2 Frame level

在frame level Libaom会对所有的long-term reference frame做decomposition。Decomposition的方法是把一个long term reference frame,如果一个 reference frame把它作为long term reference frame,通常会把它分解成Alternate reference frame(ARF)和Overlay frame。ARF会被作为一个正常的frame去encode和decode,在decoder端它不会给用户playback,它只是作为一个internal reference给后面的frame提供motion compensating prediction。Overlay frame是和ARF处于同一个位置的frame,但是Overlay frame相当于ARF到实际original frame的residual,它会去code这些residual作为实际能够playback的frame。ARF的好处是它允许对原始信号滤波能够降低frame里面的noise level,可以对滤波以后的frame做更高reconstruction quality的coding。在Libaom中采用的生成ARF的temporal filtering的non-local mean filter。它的reference patch是通过motion estimation从周围的frame找到。Filter的kernel会根据当前frame的estimated noise level进行调整。通常概念是,如果noise level越高相对的filter的强度就会更大。

上图是long-term reference frame就premium coding structure而言,最底层的frame会被分解成ARF和Overlay frame。对于long-term reference frame都是被当成两个frame去做process。

2.3.3 Coding block level

在coding block level为了更好的平衡编码器的速度和编码器的压缩性能采取了multi-winner multi-stage的搜索philosophy。基本的概念是我们在更靠前的early stage,比如试图找到prediction mode时会采取比较简单的rate decision cost estimate去分析在所有可能的prediction mode中找出小部分相对可以提供更好的prediction quality,换句话说更有可能提供更低的RD cost的prediction mode 。在选中的subset当中在下一个stage会对他们进行更精确的rate decision cost estimation,例如transform kernel selection等逐级地选到最好的、最有可能成为最优的coding mode。在motion estimation方向对传统的diamond shape motion search、center-biased search 和square search算法进行了调整。例如在Libaom中我们采用polar coordinate的sampling approach,就是对在motion search当中的sampling的distribution做了重新调整,使它在搜索密度的方向能够更加均匀分布,也能提高压缩性能。

除此之外Libaom也支持对一系列不同的metric的optimization mode,包括SSE、VMAF/VMAF-NEG等。VMAF是近年出现的比较popular的metric。它相对于PSNR也能够更好的接近实际用户的视觉感受。在Libaom中对VMAF和VMAF的衍生版本VMAF-NEG也有相应的优化模式,在这个模式下,会允许用户采取动态的pre-processing filter,也就是说有一个option是可以对原始的视频信号做pre-filter去增强关键的对比度,在安全区间相对降低一些noise level。可以根据VMAF metric在不同的block、不同context下对reconstruction error的penalty不同,对此采取不同的adapt rate trade-off,基于此条件下相对于base line的Libaom也就是对PSNR SSIM Optimization,VMAF mode会在VAMF条件下提高压缩性能30%-40%,对VMAF-NEG提高大概7%-9%的空间,这些数字是相对于PSNR based Libaom optimization的运行结果。

#3. AV1实时编码器

Libaom AV1实时编码器是从Chrome M90开始被enable by default。

在desktop方向,它相对于VP9的压缩性能提高15%-20%,相对复杂度控制在1.25倍以内。相对于VP9而言,AV1的实时编码器会提供更好的主观压缩指标。在移动端,目前Libaom AV1的实时压缩器主要的目标是对低分辨率,比如QVGA 的resolution可以支持非常低的比特率条件下进行视频通信,最低可以达到15kbps。从2020年8月份开始逐渐把Libaom AV1实时编码器放到production开始roll out。得到的用户反馈是相对于VP8/H264的软件编码器和HEVC的硬件编码器而言反馈是更好的,有更高的frame rate,更少的freeze,用户给的quality rating 也更高。Overall在移动端让用户有更长的视频通话时间。

#4. 图像压缩格式AVIF

AVIF是基于AV1的图像压缩格式,相当于AV1的bitstream在一个HEIF container形式出现,相对于传统的JPEG 而言,AVIF的压缩性能要提高超过80%,在同样的质量条件下,同样reconstruction quality条件下AVIF所需要的file size 应该是JPEG的五分之一以下。我们团队正在积极的推进AVIF编码器的性能优化,在编码器复杂度方向加速了8倍,与此同时造成的压缩性能损耗控制在5%左右,对内存的需求降低了5倍。从去年秋天开始Chrome M85已经支持使用AVIF图像格式,在今年会有更多的运算平台会支持AVIF格式,比如Android、Firefox和Safari。

#5. Libaom v3.0版本的release

今年3月我们进行了Libaom v3.0版本发布。它相对2.0版本压缩性提高大约5%以上,编码器速度进一步加快,如果目标是实时编码器的话实际会产生的binary size会变小,对VOD setting和Real-time setting做了更好的多线程优化,同时也对整个codebase 做了更系统化的文档,希望能够帮助更广泛的developer society,更容易去读懂codebase design并方便大家的使用和contribute Libaom的codebase。

以上就是我的全部分享,谢谢大家!

The cover from creativeboom.com

讲师招募 LiveVideoStackCon 2021 北京站

LiveVideoStackCon 2021 北京站(9月3-4日)正在面向社会公开招募讲师,欢迎通过 speaker@livevideostack.com 提交个人及议题资料,无论你的公司大小,title高低,老鸟还是菜鸟,只要你的内容对技术人有帮助,其他都是次要的,我们将会在24小时内给予反馈。

LibAOM与AV1的最新研发进展相关推荐

  1. Conflux 创始人龙凡教授向浙江省委书记车俊汇报 Conflux 最新研发进展

    12 月 27 日上午,一年一度的"海归学子创新创业座谈会"在浙江省人民大会堂举行. 浙江省委书记车俊,清华大学党委书记陈旭出席会议并发表讲话.浙江省委常委.秘书长陈金彪,省委常委 ...

  2. 海归学子创新创业座谈会:龙凡教授向浙江省委书记车俊汇报 Conflux 研发进展...

    12 月 27 日上午,一年一度的"海归学子创新创业座谈会"在浙江省人民大会堂举行.浙江省委书记车俊,清华大学党委书记陈旭出席会议并发表讲话. 浙江省委常委.秘书长陈金彪,省委常委 ...

  3. Pd1 药物研发进展|销售数据|市场规模|竞争格局|前景分析

    Programmed Death-1 (PD-1; CD279) 是一种在活化 T 细胞中诱导的抑制性受体,作为多种癌症的一线治疗药物.然而,严重的免疫相关不良反应限制了PD-1/PD-L1单克隆抗体 ...

  4. ARM研发进展与企业清单

    ARM研发进展与企业清单 根据EETimes 分析师Colin Barnden的预测,Apple Car将搭载基于ARM架构的C1芯片,并支持眼球追踪等AI功能.新造车势力高通.Nvidia以及海思, ...

  5. 拓展ARM研发进展与玩家

    拓展ARM研发进展与玩家 根据EETimes 分析师Colin Barnden的预测,Apple Car将搭载基于ARM架构的C1芯片,并支持眼球追踪等AI功能.新造车势力高通.Nvidia以及海思, ...

  6. 通信技术——水下通信技术的分类、特征、应用及其最新研究进展

    水下通信技术的分类.特征.应用及其最新研究进展 一.水下电磁波通信 ⒈ 水下电磁波传播特点 ⒉ 传统的水下电磁波通信 ⒊ 水下无线射频通信 ⒋ 水下电磁波通信的新进展 二.水声通信 ⒈ 水声信道的特性 ...

  7. NLP领域的最新研究进展

    2022年,在NLP领域,哪些技术场景最值得关注?为了回答这个问题,在本次 DataFun 举办的自然语言处理峰会上,我们邀请了NLP领域的领衔专家和学者,共同精选了大模型预训练.自然语言生成.多模态 ...

  8. 基于激光诱导石墨烯的柔性传感器最新研究进展[转]

    [1]崔进京,文丹良,徐丽,陈爽,张晓升.基于激光诱导石墨烯的柔性传感器最新研究进展[J].功能材料与器件学报,2021,27(04):304-314. 电子皮肤器件作为其中重要的一部分,它是一种模拟 ...

  9. 新冠肺炎最新研究进展(2022年5月)

    COVID-19流行病自爆发以来,不断演变进化,不同毒株的传染性.感染后的严重程度.临床结局都是人们非常关注的问题.有关的生物学标志物研究也是层出不穷,然而这些标志物种类繁多.未知程度高.机制复杂,在 ...

最新文章

  1. Javascript在客户端导出multi-sheet excel
  2. VB Mid函数作用
  3. oracle 提取首字母,oracle 取字段文字拼音首字母
  4. 吴恩达新书AI实战圣经《Machine Learning Yearning》中英文版分享
  5. hbase shell相关命令
  6. 文本框输入限制正则表达式收集
  7. 55)函数指针和其意义
  8. html标签asp/,HTML标签及ASP函数速查表
  9. revit二次开发概念_半天入门Revit二次开发
  10. 用c语言函数判断是否为水仙花数,输入三位数,判断是不是水仙花数c语言c语言...
  11. SpringCloud版本选择
  12. Navicat 中文显示乱码解决之道 ,亲测可行
  13. JSD-2204-酷莎商城(后端)-Day17,18
  14. gensim.corpora中Dictionaryd的用法
  15. 微信小程序开发教程-微信小程序入门
  16. python爬虫之 爬取案例网页ajax请求的数据
  17. C++ Reference: Standard C++ Library reference: C Library: cstdio: vsprintf
  18. Reflected File Download Attack
  19. 第五章 阻抗匹配与调谐 Smith圆图
  20. Jmeter压力测试中的相关参数(QPS、TPS)

热门文章

  1. TB6600原理图(最完整并量产过的版本!!)
  2. Java Longest Palindromic Substring(最长回文字符串)
  3. 安卓开源项目周报0215
  4. KineticJS教程(3)
  5. (转)Objective-C Autorelease Pools(自动释放池)详解
  6. 数据结构-线性表(栈与队列的特殊性)
  7. CodeForces - 431C k-Tree(dp)
  8. LightOJ - 1237 Cyber Cafe(费用流)
  9. CodeForces - 78E Evacuation(最大流)
  10. 洛谷 - P4013 数字梯形问题(最大费用最大流+举一反三)