写点什么

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:322370

评论

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

Genymotion模拟器安装

芯动大师

android Genymotion Android模拟器

架构实战营10期-作业3

炮仗

微服务洞察,让微服务更透明

阿里巴巴云原生

阿里云 微服务 云原生

Web3 聚合平台 AIDAMETA,圣诞BNB 大放送

股市老人

华为云全球加速GA,为现代企业跨国办公保驾护航

清欢科技

2022年混过的那些SAP项目

SAP虾客

wms 2022年 SAP-QM

华为云桌面,助力企业智慧办公

科技之光

2022-12-26:有一个数组包含0、1、2三种值, 有m次修改机会,第一种将所有连通的1变为0,修改次数-1, 第二种将所有连通的2变为1或0,修改次数-2, 返回m次修改机会的情况下,让最大的0

福大大架构师每日一题

Linux 算法 Shell 福大大

国内首家!博睿数据获信通院AIOps能力成熟度模型优秀评级

博睿数据

智能运维 博睿数据 Swift AI K可观测性 荣誉奖项

华为全球加速GA带给你稳定的网络体验!

清欢科技

华为云弹性负载均衡服务,如何助企业应付流量压力

科技说

使用NineData实现企业级数据库备份, 数据备份告别“拆盲盒” ?

NineData

sql 数据恢复 多云架构 数据管理工具 数据备份

主数据的3大特征、4个超越和3个二八原则

用友BIP

怎么搭建自己的小型渲染农场?个人渲染农场配置

Renderbus瑞云渲染农场

渲染农场 搭建渲染农场

【JVM规范】第二章-JVM结构

四月

Java JVM

数智为线,经纬中国:新华三勾勒出的山河锦绣

脑极体

华为云桌面为建筑行业BIM落地实施提供有力支撑

科技之光

HTTP响应首部字段

穿过生命散发芬芳

HTTP 12月月更

《数字经济全景白皮书》中国产业数字化趋势报告2023

易观分析

产业数字化 报告

【JavaWeb】Java Web三大组件之Filter过滤器

No8g攻城狮

javaWeb #web

基于声网 Flat 实现“成语解谜”的 Web 小游戏

声网

JavaScript 开源 Web 互动白板

架构实战营 3-6 消息队列架构详设随堂练习

西山薄凉

「架构实战营」

极客时间运维进阶训练营第一周作业

独钓寒江

“灵、简、畅、安”,就选华为云桌面

科技之光

【前端】JS(javascript)中this的几种用法实例详解

No8g攻城狮

JavaScript js

从非洲到全球,看华为云连接CC如何助力出海企业更好发展

IT科技苏辞

正确理解和使用JAVA中的字符串常量池

JAVA旭阳

Java

有奖评测 | Serverless 应用引擎 SAE 征集令开启

阿里巴巴云原生

阿里云 Serverless 云原生

未来智安入围《2022年度中国数字安全能力图谱》威胁检测与响应领域能力者

未来智安XDR SEC

华为云连接CC——多场景构建数据网,助力企业享受高质量办公体验

IT科技苏辞

华为云左少夫:面向分布式云原生 构筑无处不在的云原生基础设施

爱科技的水月

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