微帧科技对于AV1在RTC实时场景中的现状与展望
2018 年 6 月,AOM 联盟(Alliance for Open Media,开放媒体联盟)发布了新一代视频编码标准——AV1(Alliance for Open Media Video 1)。至今 AOM 联盟共有 47 家企业会员,其中包括 14 名理事会成员(Board Members)和 33 名 Promoter 会员。
AV1 的零号版本,起始由同样开源、免版税的 VP9 编解码代码库 libvpx 衍生而来,同时吸纳了 Google VP10、Mozilla Daala 以及 Cisco Thor 三款开源编码项目中的研发成果。截止 2018 年 6 月 AV1 封稿,AV1 相比其前身 VP9,共推出了 100 多个崭新的编码工具,代表了业界最新的编码技术。
本文我们将会探讨未来 AV1 在实时场景中可能会出现的技术趋势。同时,由于 AV1 在实时场景中的数据有限,为了能更直观地说明将产生的变化,我们会基于 Aurora AV1 在实时场景中的性能数据,以及与已有编码器,包括 H264、VP9 等开源编码器的对比统计来进行分享。通过 Aurora 的实例、数据,主要是为了说明 AV1 标准在实时场景中已完全进入实用阶段。我们在此也期待与业界同行围绕这些研究数据,与我们多多交流与讨论。
AV1在RTC场景中的应用实践和生态发展
RTC 技术升级与应用拓展,近年来风起云涌,尤其 2020 年疫情之下,RTC 领域呈爆发性增长,涵盖视频会议、在线教育、远程终端、游戏互动、电商互动直播、远程医疗、在线金融等各个领域,其典型视频内容主要为两类:屏幕内容以及摄像头 Talking Head 内容。对于 RTC 超低延时互动场景,视频编码器的打磨与应用,除编码效率、视频画质这些对编码器性能的基本考量外,在编码时延、编码速度、编码复杂度、自适应码控、以及与网络层适配容错等性能上,均有严格的要求。AV1 丰富的编码工具,比如其独特的屏幕内容编码工具,使得 AV1 对于 RTC 实时互动场景用户体验的提升,提供了很大的可能。
WebRTC是目前业界最具影响力的实时互动开源项目,提供 Web 端与移动端 RTC 应用程序的音视频 APIs。今年 2021 年 1 月,W3C 标准组织正式将 WebRTC 1.0 确定为标准推荐。WebRTC 开源代码库中,主要包括 libvpx 中的 VP8、VP9 以及 H264 Openh264 三款开源视频编码器。AV1 从 VP9 衍生而来,与 WebRTC 具备天然耦合协同性,包括对时域可伸缩性(Temporal Scalability)的支持等特性。与此同时,AV1 是第一款将屏幕内容编码(Screen Content Coding, SCC)工具,引入其主体的视频编码标准,即:任一 AV1 标准解码器,均需支持 SCC。这对 AV1 在实时场景中处理计算机生成内容,相比其他标准,占有巨大优势。
AV1 的有效软解,对于 RTC 场景,无论在 PC 平台、还是移动平台,都是必不可少的必备方案。AV1 软件开源解码器,目前包括 AOM/Google 维护的 libaom,AOM/Intel 维护的 SVT-AV1,Google 推出的尤其面向 Android 设备的 libgav1,以及由 VideoLAN、FFmpeg 开源社区维护、AOM 资助的 dav1d。我们的用户评测下来,dav1d 综合表现最佳,今年 2021 年 1 月 dav1d 0.8 推出,又在 AMD、arm architecture 上做了进一步的优化。
AOM/AV1 的开源编解码器 libaom 的实时档,又称为 libaom-RT 档,已被 WebRTC 吸纳进来,并从 Chrome 89 版本起正式采用。2020 年 Google 实时通话产品 DUO、视频会议产品 Meet 均以 libaom-RT AV1 为基准,率先推出 AV1 在 RTC 场景中的应用。之后 Cisco WebEx 也宣布,在其视频会议场景、尤其是屏幕共享场景中开始在 PC 端采用 AV1 编解码。
微帧团队在 2019 年推出了全自研 Aurora AV1 编码器,并成为全球首家 RTC 场景 AV1 商务编码器提供商。Aurora AV1 在实践应用中不断打磨升级,目前已实现 PC 端屏幕内容编码、以及摄像头 Talking Head 场景下的稳定运行。Aurora AV1 在移动端、以及其他 ARM 机型上的应用,也在日趋成熟,本文的性能数据都是基于 Aurora AV1 所得到的。
当然,无论是多么先进的编码标准,均需要一个完整的、可持续的生态体系来支撑。AOM 会员涵盖了视频从采集制作、传输分享到播放消费的完整生态系统,对于 RTC 领域,AOM 成员也囊括了多家 RTC 领域技术与应用的全球领衔企业,比如声网(Agora)、思科(Cisco/WebEx)、Poly 等。与此同时,AV1 成员包括浏览器提供商:如谷歌(Chrome)、苹果(Safari)、微软(Edge)以及 Mozilla(Firefox);硬件制造商:如 Intel、AMD、nvidia、arm、SAMSUNG、Xilinx、Broadcom,以及中国的华为等;云服务商:如北美的亚马逊(AWS)、微软(Azure)、谷歌(GCP)、IBM,以及中国的阿里(阿里云)、腾讯(腾讯云)、金山云、华为(华为云)等;同时包括思科等网络与系统提供商。AV1 具备着天然的生态优势。
AV1 RTC,目前在浏览器(Safari 除外,不过苹果是 AOM 董事会成员)支持、Android 移动端 OS 支持外,硬解支持日渐完善。Apple 是 AOM 董事会员,目前在 AV2 推进上也表现了积极的态度,预计 Apple 生态支持 AV1,为期不远。另外,高通(Qualcomm)虽不是 AOM 会员,但对于 AV1 的支持,业界普遍认为,最迟在 2021 年底、2022 年初,高通会推出支持 AV1 的硬解芯片。
AV1 RTC屏幕内容编码
AV1 标准中,提供了 IntraBC、调色板模式(Palette mode)等特别适用于屏幕内容编码的特定工具。此外,CfL (Chroma-from-Luma)这款工具,虽然并非专为屏幕内容打造,但对于屏幕内容编码是一个比较有效的工具。
注:图中 x264 采用 ffmpeg 命令行 - ffmpeg -r 30 -s 1920×1080 -c:v libx264 -x264-params bframes=0 -tune zerolatency -preset superfast -threads 1
Aurora AV1 相对已有编码标准方案,包括 VP9、H264 等,在不同分辨率屏幕内容压缩效率上,均展示了绝对优势。如图所示,比如利用普通 PC 单核资源编码, Aurora 相比开源 x264 superfast 实时档,对于 1080p30 的屏幕内容测试序列集,BD-rate (PSNR)增益为 81.25%,即:对于评测集,Aurora AV1 只需要 x264 的 (1-81.25%)=18.75%、也就是不到 1/5 的码率,即可获取相近的 PSNR 客观质量。
上图显示了 Aurora AV1 与 x264 superfast 档编码速度的对比。单线程下对于 1080p 屏幕内容视频,x264 速度高达 132+FPS(帧/秒),而 Aurora 为 46+FPS,是 x264 编码速度的 1/3 左右。Aurora 的编码速度虽远不如 x264,进一步考虑屏幕内容在多数场景下,所要求帧率一般小于普通摄像头内容的帧率,对于屏幕内容 RTC 场景,AV1 已完全达到实用需求。
AV1 RTC时域可伸缩性编码
时域可伸缩性(Temporal scalability)以及自适应丢帧,对于 RTC 场景尤其重要。由于网络带宽、RTT 时延、Jitter 抖动、包丢失等网络条件的动态变化,编码器需配合网络控制层,作出自适应调整。视频编码器的时域可伸缩性,相比空域可伸缩性,更为重要,因为时域可伸缩性,在编码器对抗网络带宽动态变动、容错鲁棒性、以及编码效率和视频主观体验上,综合性能更优,并适于保持主观质量平稳下的动态调整。
如图下所示,Aurora AV1 编码器中目前实现了两种时域可伸缩性模式。两种模式中,基本层外的其他视频帧,可自适应丢弃,以适合动态网络带宽需求。AV1 的时域可伸缩性,继承了 WebRTC 平台中已有的 VP8、VP9 的编码器特征,与 WebRTC 间具备天然契合度。
AV1 RTC摄像头拍摄内容编码
屏幕内容外,对于视频会议 Talking Head 场景,AV1 经由精细优化后,亦可凸显其标准优势。
如下面两图所示,在 480p、720p 视频会议场景中,Aurora AV1 对比 x264 medium 档,在 AMD Ryzen 9 3900X 12 核 (12C24T),2 线程编码,Auora superfast 可获取 BD-rate (PSNR) 增益平均在 20% 以上,与此同时编码速度优势在 30% 以上。
注:x264 所用命令行为 --nal-hrd none --preset medium --profile main --threads 2 --tune zerolatency --no-psy --aq-mode 0 --no-scenecut
AV1 RTC 移动平台编码性能
AV1 标准工具的复杂度,使其在手机移动端的应用落地更加挑战。
与此同时,本文前面也提到,WebRTC/Chrome 已开放基于 libaom-RT 档的 AV1 RTC 支持,libaom-RT 开源编码器的性能也在不断提升中。
如下图,我们将 Aurora 与 libvpx-VP9、x264、以及 libaom-RT,针对 RTC 移动端应用场景,在编码效率及编码速度上做一比对:编码平台为 Snapdragon 845 手机,单线程 CBR 设置,选取 40 个 180p 典型实时场景视频,目标码率范围设定在 50kps ~ 200kbps。
图中每一条曲线,代表一款编码器性能,曲线上每一坐标点,则表示该编码器的某一特定速度档。纵轴表示 BD-rate (PSNR),所有编码器 preset,均以 x264 medium 档为基准(anchor),BD-rate 为负值表示相比 anchor,采用更低码率可获取同样视频质量。因此,曲线坐标点位置越靠下方,编码器的压缩性能优势越大;横轴标识编码速度,曲线坐标点越靠右方,对应编码速度越快。
图中显示,Aurora 在编码效率上,远优于 VP9、以及 x264。Aurora 仍在持续优化中,目前 superfast、ultrafast 档的设置,大概率会成为更低速度档的配置,并将提供从 medium、fast、faster、veryfast、superfast 到 ultrafast 适用于 RTC 场景的多个速度档。相比 WebRTC 中的 libaom-RT AV1,Aurora 在编码速度及编码效率综合性能上,明显超出。Aurora 提速同时,会尽力保持 AV1 充分的标准优势。(注:Aurora 及 libaom-RT,均为 2021 年 3 月 5 日的版本)
无论开源代码库 libaom-RT,还是商务编码器 Aurora,AV1 在手机移动平台上的优化迭代,必将延续其历史轨迹,在未来一段时间内,性能持续提升,满足越来越多 RTC 场景的需求,在已有编码标准方案基础上,进一步大幅提升用户体验。
AV1与AI的结合
RTC 场景中,AV1 与 AI 结合,对于编码器各方面的性能优化,应该是有比较大的提升辅助作用的,包括前处理、内容分类、ROI 场景优化、以及智能码控设计与实现上,AV1 可利用 AI 技术,展示出进一步的潜力。微帧团队与国内、海外多家大学合作,撰写的题为“Advances In Video Compression System Using Deep Neural Network: A Review And Case Studies"的论文已被 IEEE 顶级期刊《The Proceedings of the IEEE》接收,文中以 AV1 为基准,对于视频编码与 AI 在前处理、后处理上的结合,以及对将 AI 用于未来编码标准,比如 AV2,有一定初步的探寻。这篇论文可以从 arXiv.org 上直接下载。(链接:https://arxiv.org/abs/2101.06341)
AV1主观编码性能
如图所示,利用 Aurora AV1 编码,在同样码率、即同等带宽条件下,AV1 编码画质明显优于 x264 的编码结果。
综合以上 AV1 的优质性能,以及其与 RTC 场景应用的天然契合度,我们预计 AV1 在 WebRTC、浏览器以及 Android 移动端等生态的推动下,随着 RTC 应用的爆发性增长,未来 2~3 年内会迎来生态的迅猛发展。