拍乐云基于AV1的实时视频系统技术实践 | 2021 LiveVideoStackCon 演讲回顾

·  阅读 75
拍乐云基于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 ] www.w3.org/TR/webrtc-s…

[3 ] RTP Payload Format For AV1 (v1.0)

分类:
代码人生
收藏成功!
已添加到「」, 点击更改