AV1的实时模式

Stella981
• 阅读 788

AV1的实时模式

不久前,Google Duo宣布将全面转向AV1。相比于VP9,AV1能够带来更好的编码效率,为用户提供更好的视频体验。本文来自Google软件工程师 姜健在LiveVideoStack线上分享的内容。

文 / 姜健

整理 / LiveVideoStack

视频回放:

https://www.livevideostack.cn/video/av1-real-time-mode/

AV1的实时模式

1

关于AV1

AV1编解码技术对视频质量有非常大的提高,尤其是在低码率和网络状态非常差的情况下,AV1编解码技术相对于VP9和H264编解码都有一个质的飞跃。

AV1的实时模式

从图中明显可以看出,在码率为30kbps情况下,左图是AV1编解码技术处理效果,右图是Duo目前所使用的编解码技术的处理效果,对比质量差别很大。

在印度、巴西等一些发展中国家大多数人的网络接入情况较差,这些网络较差的地区正是谷歌最受欢迎的市场,所以Google Duo也在尽力提高低码率的视频质量,因此AV1技术对Duo来说有非常大的帮助。

AV1的实时模式

关于AV1编码器的设定,图中最下端区域是可执行的命令行,一般使用该命令行测试手机或电脑上的速度,需要强调的设定有以下几点:

  • Profile必须设置为0;

  • Real-time的模式;

  • 在实时视频编解码时必须是1Pass

  • lag-in-frame必须设定0,目标码率必须恒定,若目标码率上下波动的起伏很大对网络的要求很高;

  • 最后比较重要的是速度设定必须大于等于6,目前我们有实时模式下6、7、8三个速度档,很多编码器的决策设定都需要根据CPU参数。

AV1的实时模式

AV1的实时模式与VOD的区别有以下四点:

三个速度档:6、7、8。

  • 速度档6严格来讲与VP9的区别非常大,VP9的实时速度档使用的是Non-RD进行决策,因为RD ( rate-distortion)决策会很慢,但是在AV1中特意增加了速度档6,使用了RD(rate-distortion)优化来进行决策,因此速度档6的质量是最好的(速度越小质量越好)。

  • 速度档7、8使用Non-RD进行决策,Non-RD即使用其他算法进行快速决策。但是速度越快质量越差。

  • AV1对于720P以及更高清视频使用了最大128×128的区块,低分辨率视频使用64×64分区。如果视频分辨率太小使用128×128分区后,区块很少,会降低质量,但是对于高清视频来讲,使用128×128可以提高编码速度。分区使用Variance进行决策,在VP9中的基于方差分区 (Variance based partition)使用的是机器学习中的CNN训练模型,通过计算Variance与提前设定的阈值进行比较。

  • AV1中加入了SVC支持,并且在libaom的代码中放入了SVC示例,该SVC支持比VP9更加灵活。

  • AV1目前的SIMD优化还没有完全结束,实时编码速度在未来还有比较大的提升空间,暂时还未对一些函数进行优化,目前正在手机端进行NEON的优化。

AV1的实时模式

2

测试成果

实时模式的优化主要是速度与质量的平衡。

手机端速度测试

AV1的实时模式

首先进行了低码率50Kvps QVGA的测试,320×240及以下分辨率的速度6档可达到40-50帧每秒的传输速度,速度7档可达到150-190帧每秒,速度8可达到200-250帧每秒,均为单线程测试。

AV1的实时模式

640×360或640×480的视频在500KbpsVGA进行测试,结果显示速度6档位的传输速度非常慢,速度7档可达到25-40帧每秒,速度8挡可达到40-60帧每秒的速度,同样均为单线程测试。

由于手机端诸多性能因素使用多线程测试数据不稳定,因此未进行大量多线程测试。

台式机的速度测试

AV1的实时模式

台式机CPU参数如图中最下端所见,单线程测试,500Kbps VGA测试,速度档7可达到80-130帧每秒的传输速度,速度档8可达到120-265帧每秒的传输速度。

AV1的实时模式

台式机上测试800Kbps HD的720P以上,单线程速度7挡的测试结果为35-45帧每秒,速度8的测试结果为40-70帧每秒,该速度较VP9差,因为AV1编码器的复杂程度较高,虽然速度较慢,但是视频质量高很多。

AV1的实时模式

3

AV1编码器优势

AV1的实时模式

如图为VP9与AV1区块划分的区别,VP9最大支持64×64区块,而AV1最大支持128×128区块。AV1中的区块存在边长比为1:4的长方形分块,这种情况很少见,在实时编码器不考虑搜索该区块,比VP9灵活很多。

AV1编码器的算法复杂度虽然高但是搜索空间大,视频质量提升很多。

AV1的实时模式

在视频编码之前,首先对原视频进行分析,即原视频的SAD(绝对误差和)和variance(方差),使用这两个数据跳过一些模式的选择,例如在计算运动向量(motion vector)时需要搜索很多模式,使用SAD和varance两个数据与阈值比较,可以跳过运动向量的一些模式选择,另外在帧内编码时,帧内模式的一些搜索也可以通过这两个数据简化。

手机端对SAD(绝对误差和)和variance(方差)的计算进行了优化,因此运算速度很快。

AV1的实时模式

VP9只支持固定256像素宽度的块,当出现分辨率较小的帧例如640×480等,最多只能使用两个区块做并行。但是AV1在这方面很灵活,720P分辨率以上的最大区块单元是128个像素宽度,720P以下为64像素宽度,因此可以根据情况灵活增加区块,以进行多线程操作。同时,AV1与VP9都支持多行并行处理。另外AV1的解码器可以只解码特定区域,例如某一个区块为64像素宽度,可以要求解码器解码其中某一部分,这样当用户对视频的某一部分感兴趣时就可以只解码该部分。

图中最下边的文献是对AV1编码工具的综述,文中指出720P分辨率使用4个线程且进行4块区分,有3倍的速度提升。

AV1的实时模式

当实时视频的前后两帧的变化很大时,码率会突然升高,帧的尺寸会突然变化很大,对网络是很大的压力,导致视频质量突然变差,因此AV1编码器会每隔一个最大区块计算时域SAD与前一帧作比较,若该时域SAD非常高,编码器即认为发生很大变化,就使用更高的QP,缩小该帧的尺寸,以降低网络压力。

AV1的实时模式

AV1编码器会通过计算时域的方差简化模式选择。

AV1的实时模式

SVC的AV1设定(比VP9直观很多):其中有三个变量:参考帧(设定不同分辨率的参考帧位置)、当前帧刷新哪一个缓存、模式设定,AV1的设定直接将所有的控制权交给用户,用户需要哪种模式即可设置哪种模式。

AV1的实时模式

4

AV1编码器的未来

AV1的实时模式

目前AV1正在开发WebRTC支持,很快会推出。

AV1的实时模式

由于AV1编码器的复杂度远远高于VP9,因此在产品中较大的缺点是编码之后的尺寸是VP9的几倍,进行很多优化之后,例如去掉一些用不到的工具等,使编码后尺寸下降30%。

AV1的实时模式

点击【 阅读原文 】或扫描图中二维码,了解更多讲师及话题信息

本文分享自微信公众号 - LiveVideoStack(livevideostack)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
Stella981 Stella981
3年前
AV1编码持续优化
!(https://oscimg.oschina.net/oscnet/cdf117e0215f43c98649fa8825efe2e7.jpg)AV1比HEVC有30%以上的编码效率提升,但编码复杂度高的离谱。好在AOM联盟不断对AV1进行优化,预计今年内AV1的编码复杂度将降到VP9的10倍以内。文/包研参
Stella981 Stella981
3年前
Facebook:AV1比x264和libvpx
!(https://oscimg.oschina.net/oscnet/5ddf5fab43774e2996e5d61d066d4889.jpg)在AV1刚刚完成定稿后,Facebook公布了AV1的测试结果,测试结果显示AV1至少有30%以上的性能提升,这多少给了AV1的潜在用户一定的信心。Facebook还表示,将在内部继续推
Stella981 Stella981
3年前
AV1的五种编码进展
!(https://oscimg.oschina.net/oscnet/af32895689e54b48a55250433840e909.jpg)AV1正在做着最后的定稿工作,可以预见的是,Netflix、Youtube都将是第一批AV1的使用者。视频PaaS服务商Bitmovin撰文对AV1的最新特性进行了解读,LiveVideoSta
Stella981 Stella981
3年前
LiveVideoStack线上分享第五季(十):AV1的实时模式
不久前,GoogleDuo宣布将全面转向AV1。相比于VP9,AV1能够带来更好的编码效率,为用户提供更好的视频体验。5月10日14:30,LiveVideoStack线上分享第五季,第十期,我们邀请到了Google软件工程师 姜健详细介绍AV1的实时模式:AV1实时模式设定、实时模式的速度、实时模式在AV1的实现以及AV
Stella981 Stella981
3年前
AV1解码器模型
这篇文章可以作为AV1规范中与解码器型号和级别有关的部分的简介,本文的其余部分描述了一些AV1基本概念,AV1解码器模型,并提供了开发它时做出决策的原因。有关解码器模型的更多详细信息,请阅读AV1规范。文/ AndreyNorkin原文链接:https://norkin.org/research/av1\_decoder\_
Stella981 Stella981
3年前
Netflix在安卓移动启用AV1格式 较VP9编码效率提升20%
!Netflix在安卓移动启用AV1格式较VP9编码效率提升20%(http://p1.pstatp.com/large/pgcimage/6ba3ed4c06424383a59e87bb9eef50a5)Photobyfreestocks.orgonUnsplashNetflix启动了安卓移动客户端上的AV1格式支持,并在尝试将
Stella981 Stella981
3年前
AV1生态系统更新:2019年6月
!(https://oscimg.oschina.net/oscnet/600c08b8df0641ee9da73a4e09a07b99.jpg)Kay是热心的AV1关注者,他在blog上持续搜集了关于AV1的进展。很抱歉,我们延误了很久才发布这篇非常不错的blog,希望对你了解AV1有所帮助。文/KaySingh
Stella981 Stella981
3年前
AV1编码器优化技术
!(https://oscimg.oschina.net/oscnet/1de07eb5978a432db13f4c4bd41dab61.png)正文字数:7318 阅读时长:11分钟AV1视频编解码器是一种由开放媒体联盟AOM开发的royaltyfree的压缩技术。libaom库是AV1的参考软件,应用各种编码器优化技术来实现
Stella981 Stella981
3年前
AV1:为互联网提供开放、免费的视频编解码工具
!(https://oscimg.oschina.net/oscnet/ea2afc18e53a4b838f29d25b713ff5a3.jpg)从学术研究到进入工业界,ZoeLiu一直在算法和音视频领域,目前在谷歌编解码团队为编解码器AV1做开发支持。Zoe畅谈了评定编解码器的标准,以及AV1的最新进度。本文是『下一代编码器』
Stella981 Stella981
3年前
HEVC和AV1幕后视频编解码器之战
!(https://oscimg.oschina.net/oscnet/4c67bcb396c74b35a3a13b31cf58892b.jpg)在未来几天的NAB大会上,AOM联盟将展示AV1的性能,多媒体行业全部聚焦于HEVC与AV1比较上。这是AV1于3月底完成1.0版定稿(https://www.oschina.net