拍乐云基于 AV1 的实时视频系统技术实践 | 2021 LiveVideoStackCon 演讲回顾
实时视频系统对于时延的要求极高,视频编码器必须满足实时性的要求。新一代视频标准 AV1 相比主流 H.264 在 Rate-distortation 性能的提升上是以复杂度的上升为代价的,当前应用设备的碎片化非常严重、设备的运算能力差异巨大,这些都是新技术落地实时系统面临的挑战。本次分享将围绕拍乐云在设计 Pano Venus 实时 AV1 通信系统时的一些技术实践展开深入分析与讲解,期望和大家共同探索实时视频技术的未来。
文 | 拍乐云首席科学家 章琦
PART 01 背景
视频编码标准的历史
视频编码标准的发展已经有近 40 年的历史了,在视频编码标准的发展中,国际电信联盟(ITU)和运动图像专家组(MPEG)这两个组织具有举足轻重的地位。
最早是视频编码标准 H.120 和 H.261 就是国际电信联盟在上个世纪 80 年代所制定,然后运动图像专家组制定了 MPEG-1,MPEG-1 是以 VCD 之名被大家所熟知的编码标准。
接下来两大组织联手成立了联合视频专家组(JVET),联合视频专家组定了 MPEG-2 中的视频部分,也被称为 H.262。MPEG-2 是以 DVD 之名被大家所了解,可以说 MPEG-2 是迄今为止最成功的视频标准之一,绝不逊色于现在的 H.264-AVC。
后来国际电信联盟又制定了 H.263 标准,运动图像专家组制定了 MPEG-4,这两个标准都没有取得像 MPEG-2 这样的成功. 然后两大组织再次联手(JVET)制定了 H.264-AVC 标准。H.264 制定于二十一世纪初,到现在已经近 20 年,却依然在行业应用占据了绝对的领先地位,独领风骚二十年。
联合视频专家组在 2014 年制定了 H.265-HEVC,其技术值得称道,但是专利费用的混乱和昂贵,阻碍了 H.265 在行业内的应用,无法撼动 H.264 的地位。JVET 后续又制定了 H.266-VVC,其专利授权问题依然需要被关注,如果 H.266 能提供比较友好的专利授权方案,未来会是充满期望的。
另一个重要的视频标准组织是以 Google 为代表的开放媒体联盟(AOM),AOM 制定的 AV1 标准,展示出超过 H.265-HEVC 的编码性能,拥有丰富的编码工具支持,可以极大地提高视频的压缩比,节省大量带宽,同时,AV1 作为开放媒体联盟 AOM 制定的第一代标准,除了有非常好的生态支持,还提供了免费的专利政策,相比 H.265 / H.266 等知识产权政策不明确的视频标准,有巨大的优势。清晰明确的专利政策也是 AV1 在产业界被推崇的一大优势。
除了上述三家标准组织,AVS 也值得一提。AVS 是我国自己的标准组织,它定义的 AVS 标准迄今已经发展到 AVS-3,从 AVS 分享的数据来看,AVS-3 具备了优秀的编码性能,不过要建立 AVS 的生态,依然非常困难。
编码器的基本框架
虽然编码标准的发展经历了多个迭代,新的编码工具令人眼花缭乱,不过编码器的基本框架却没有大的变化。
从 H.261 到现在的 H.266 和 AV1, 都依然是混合编码框架,其核心模块包括:块的分割(16x16~128x128)、基于块的预测(intra and inter prediction)、基于块的变换(transform)、量化(quantization)、熵编码(entropy coding)。对于开发视频应用的同学来说,不需要了解编码器和解码器的技术细节,不过需要了解一些最基本的概念,比如说关键帧(Key-frame/I-frame)。
所谓关键帧,就是它的块预测仅使用帧内预测(intra prediction),这就意味着,关键帧并不依赖于它之前或者之后的帧,只需要关键帧的数据是完整的,就可以被正确解码(这个描述忽略了 SPS/PPS 等参数集, 参数集的重要性可以被认为是等同于关键帧),这就是在实时系统中,当解码遇到错误的时候,会采用关键帧请求的技术来恢复解码的原因。
另一个需要了解的概念是 P-frame(实时系统中一般不使用 B-frame, 因此本文避免提及)。P-frame 也就是使用了前向预测的帧,它的解码会依赖于前面的某一帧或者某几帧,在编码器的实现中,可以采用非常灵活的前向预测结构,根据条件的不同,可以参考最近的前一帧(latest frame),也可以选择稍微远一些的前向帧,利用 long-term-reference 技术,甚至可以选择非常早的帧,编码器的时间分级技术,本质上就是参考结构的选择。灵活的前向参考结构,可以结合实际使用场景和拥塞控制算法,衍生出丰富的变化。
PART 02 Pano Venus 的挑战
AV1 在实时系统中的落地面临着巨大挑战,用户系统的碎片化非常严重,很多的低端设备甚至无法很好的支持 H.264 视频。另一个比 CPU 性能更严峻的挑战是设备过热问题。
拍乐云实时低码高清编码引擎 Pano Venus,采用新一代视频编码标准 AV1,克服了 AV1 运算复杂度过高的问题,创新地提出多种加速编码算法,大幅提升实时视频的编码性能和编码速度。经过算法和处理器特性相关的优化,可以在全平台设备上将编码时延控制在毫秒级,同时,在相同的视频质量下,Pano Venus 的所需带宽相比主流采用 H.264 标准的编码引擎平均降低 40%到 70%,其所使用的编码器是目前已知的国内最快的 AV1 编码器。
值得一提的是,Pano Venus 选择落地移动设备的时候,非常关注设备的过热问题,每个落地的设备都会在 Pano 音视频实验室经历了长时间的测试,分析温度的变化和电量的消耗,确保不会影响用户体验。
PART 03 AV1 复杂度分析
AV1 编码性能的提升,源于它的高复杂度。我们需要对 AV1 编码和解码的复杂度有比较清晰的认知。以目前开源的 aomenc 和 dav1d 为参照,我们通过一些实验来分析,下文是一些测试结果。
解码性能:
编码性能:
这个测试数据可见,尽管 AOM 开源的 aomenc 和 Vidaolan 的 dav1d 在性能上已经做了非常大的优化,但是相比 Cisco 开源的 openH.264,AV1 编码和解码的复杂度增加仍然非常巨大, 这些对落地 AV1 于实时场景造成了很大挑战。Pano Venus 以 aomenc 和 dav1d 作为 benchmark,尤其针对移动 ARM 平台,实现了多种加速算法和平台相关的工程优化,为 AV1 的落地打造了可能。
PART 04 可伸缩 AV1 编码
AV1 标准定义了灵活的可伸缩编码结构,它可以用如下的式子来描述:
[L|S] [Number] [T] [Number] [h] [KEY] [SHIFT]
目前行业内广泛采用的 simulcast 方案,可以被视为上述的可伸缩编码结构的子集,相比 simulcast,更灵活的 SVC 结构未来很可能会成为实时通信中主流。
PART 05 Pano Venus 的未来
Pano Venus 已经正式上线,但是我们对它的期望不止于此,未来我们希望继续提升它的性能:
更灵活的编码复杂度伸缩方案, 覆盖更多设备
主观视觉编码, 进一步提升编码性能
支持桌面编码工具集, 支持桌面编码
并行编码框架, 充分利用多核处理器的性能, 提升编码效率
AV1 技术虽然早已加入到 WebRTC,但由于算法复杂度比 H.264 高很多倍,实时性一直是大家特别担心的问题。拍乐云对 AV1 在实时通信方面做了积极的商业化探索,我们坚信技术的创新能为多媒体生态的发展创造更大的想象力。
参考文献
[1] AV1 Bitstream & Decoding Process Specification
[2] https://www.w3.org/TR/webrtc-svc
[3] RTP Payload Format For AV1 (v1.0)
版权声明: 本文为 InfoQ 作者【拍乐云Pano】的原创文章。
原文链接:【http://xie.infoq.cn/article/d51f3cab4c476286398325273】。文章转载请联系作者。
评论