写点什么

AV1 在 RTC 应用实践中的现状与展望

  • 2021-03-07
  • 本文字数:4104 字

    阅读完需:约 13 分钟

AV1在RTC应用实践中的现状与展望

本文首发于 InfoQ,由声网 Agora 开发者社区 与 InfoQ 联合策划,并由 InfoQ 审校。


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 年内会迎来生态的迅猛发展。

2021-03-07 09:322519

评论

发布
暂无评论
发现更多内容

AI引领,驱动未来:零售企业的新质生产力革命

第七在线

案例研究:如何在复杂环境中增强自组织

ShineScrum

自组织

MES系统的八大核心功能及车间落地实现

万界星空科技

制造业 生产管理系统 mes 万界星空科技 车间管理系统

人工智能 | 清华大学ChatGLM大模型

测试人

人工智能

关于告警,要想做好,从这些方面着手

巴辉特

告警降噪 oncall 告警聚合 告警排班 PagerDuty

高效整理,创造灵活工作空间——iCollections for Mac 🚀🌟

柠檬与橘子

如何通过关键词搜索API接口,淘宝商品关键词搜索电商API接口揭秘

联讯数据

Flink CDC 在新能源制造业的实践

Apache Flink

大数据 flink 实时计算 Flink CDC

重庆企业选择堡垒机需要考虑哪些因素?有没有推荐的?

行云管家

堡垒机 IT资产 重庆

2024-08-28:用go语言,给定一个从1开始、长度为n的整数数组nums,定义一个函数greaterCount(arr, val)可以返回数组arr中大于val的元素数量。 按照以下规则进行n次

福大大架构师每日一题

福大大架构师每日一题

DTCC2024|HashData Enterprise 4.0 正式发布:构建云原生统一数据处理平台

酷克数据HashData

BSC发力DEX交易量超过Solana,MEME赛道王者易主?

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

影子测试:软件测试的创新策略

FunTester

SD-WAN组网部署需要多久?

Ogcloud

SD-WAN 企业组网 SD-WAN组网 SD-WAN服务商 SDWAN

OgPhone海外云手机是什么

Ogcloud

云手机 海外云手机 tiktok云手机 云手机海外版 海外社媒运营

智谱开源 CogVideoX-5B 视频生成模型,RTX 3060 显卡可运行;曝 OpenAI 模型「草莓」今秋推出

声网

Java元注解介绍

不在线第一只蜗牛

Java

openGauss- 智能基数估计

Gauss松鼠会

opengauss

最新ps2024软件:Photoshop 2024 (Win&Mac)直装版

你的猪会飞吗

mac软件下载 ps2024 PS2024破解

阿里巴巴中国站1688商品详情API返回值解析:应对更新与变化的策略

代码忍者

API 测试 API 策略

独享代理IP有哪些优势?

IPIDEA全球HTTP

感谢 Fluent Editor 开源富文本首位贡献者!

OpenTiny社区

富文本 OpenTiny 开源前端

再获殊荣 | 澳鹏Appen获评2024全球数据标注领域Top领军者

澳鹏Appen

数据标注

AV1在RTC应用实践中的现状与展望_开源_Zoe Liu_InfoQ精选文章