查看原文
其他

BIGO RTC如何低成本实现高画质

The following article is from BIGO技术 Author 技术君

BIGO RTC具有高画质、低成本、满足业务场景的延迟约束等多种优势,已服务全球150多个国家近4亿月活用户。本文将主要介绍BIGO RTC在核心算子和场景自适应两个方向上的研究及成果。



  RTC服务面临的挑战




音视频实时通话、直播都属于RTC(Real-Time Communication)服务,这些RTC服务的共性是要求音视频链路处理是实时的,区别是允许的最大延时有所不同。对于音视频实时通话场景来说,根据ITU-T G.114的建议,延时低于400ms的通话体验是可接受的,低于200ms是令人愉悦的。

直播场景又可以分为低延迟互动直播、非互动直播,低延迟互动直播一般采用文字视频互动(如主播看到公屏文字,读出文字或者解答问题,再到观众听到,就属于文字视频互动),延迟可以到秒级,一般低延迟互动直播(如秀场直播)的延迟在(1-10)s之间,对于非互动直播的场景,譬如游戏直播、赛事直播,延迟可以更久,超过30s的延迟都是可以的。因此,如果不明确业务场景,一味的追求低延迟是无意义的。


对于同一个业务来说,多种RTC应用场景可能都会用到,譬如在线教育,老师直播的时候可以采用低延迟互动直播,在提问环节,如果有同学要连麦,就会切换为音视频实时通话服务(至少对连麦的同学而言,就是一个实时通话服务)。这种情况下,延迟瓶颈就是最苛刻场景下的延迟,也就是音视频实时通话场景的延迟。


一般来说,RTC服务面临以下挑战

1、链路处理环节要实时,实时不代表无延迟,实时指的是处理环节要满足帧率要求,也就是说单位时间内必须处理完规定的视频帧,这对算法性能提出了苛刻的要求。

2、延迟要低,特别是实时通话场景需要低至百毫秒级别,低延迟意味着链路各个环节的缓冲不能过长,缓冲区(JitterBuffer)的长短会影响传输的稳定性和画质的稳定性。

3、音视频要流畅(低卡顿),在带宽限制的情况下,流畅就意味着需要低码率;对于音视频服务来说,带宽成本是运营成本的主要组成部分,低成本也需要低码率。

3、画质要高,画质影响着观看体验,高画质是RTC服务的核心竞争力,高带宽、高算力、高延迟、高画质一般是相辅相成的,但对于RTC服务来说,却需要低带宽、低算力、低延迟、高画质,这对我们画质提升带来巨大的挑战。

针对这些挑战,BIGO RTC在核心算子和场景自适应方向持续深耕,获得了低成本下的高画质体验。接下来,对BIGO RTC的这些优势以及如何达成这些优势做详细的介绍。




   BIGO RTC的优势



1、高画质:业界领先的核心算子,充分的场景自适应,极致的画质体验。

2、低成本:低带宽(码率),低算力消耗,业界低廉的运营成本。

3、满足业务场景的延迟约束:多人音视频通话延迟低至300ms,低延迟互动直播延迟低至2s。




   BIGO RTC如何做到这些优势



BIGO RTC主要在核心算子和场景自适应两个方向发力:核心算子通过快速算法、代码架构、汇编级别的持续深入优化,达到低算力消耗下的高画质;多种业务场景下,高画质体验的提升没有银弹,需要根据业务场景做充分的自适应,最大的自适应莫过于人手工调参,但靠人一个场景一个场景去调参,人力成本是巨大的,因此除了个别非常重要的场景人工调参外,一般的场景用AI调参。


1、核心算子:HEVC编码内核

虽然现在编码内核算法已经发展到H266(VVC),但是业界最实用的内核算法还是H265(HEVC)和H264,BIGO最新的实用化H265在MSU国际大赛中取得综合第二的成绩,是我们RTC低成本高画质体验的主要技术。

详见:【斩获佳绩】BIGO编码器全球编码大赛名列前茅

(https://www.compression.ru/video/codec_comparison/hevc_2020/)


2、核心算子:超分

通常来说,视频高分辨率意味着逼真的细节表现力,细节表现力是画质的决定因素之一。但是由于主播的手机性能参差不齐,网络能力参差不齐,对于性能差的手机,我们需要降低分辨率确保实时性,对于网络差的情况,我们需要降低码率,为了不使单位像素的画质下降,降低码率也需要降低分辨率。那如何在低分辨率也获得高的细节表现力呢?现在业界常用的方法就是超分。


目前比较好的超分算子都是基于深度学习的,一般来说,基于深度学习的算法运算量较高。超分如何在RTC环境下能够实时处理,是我们必须要克服的难题,BIGO自研BigoNN推理框架,在多个平台对逐个推理算子做针对性调优,推理性能在主流Benchmark上取得Top效果,BigoNN+自研超分算法,为BIGO RTC画质带来进一步体验。


3、核心算子:HDR

对于一些摄像头能力差、或者直播环境不佳的场景来说,看起来“灰蒙蒙”、比较“土”,是很多用户吐槽的一个点,针对这个点,我们采用去雾等HDR算子,提升对比度体验。我们的自研HDR算子除了满足实时要求,效果也出类拔萃,我们针对效果进行了盲测,盲测结果显示,81%的评价认为我们效果占优。

我们对真正的HDR也做了初步尝试,详见:打造极致的视觉体验 ——BIGO在HDR领域的探索与尝试


4、场景自适应:手机性能自适应+机型白黑名单

不同手机的摄像头能力、CPU/GPU能力、软硬编能力、屏幕表现能力参差不齐,同一套参数也许在A型手机效果显著,在B型手机就差强人意。如何为不同型号的手机找到最优的一套参数,是一个比较有价值的工作,在这个方向上,我们没有捷径,用手工白黑名单方式对大部分机型做最佳音视频参数的配置,同时对手机的性能适配做负反馈机制的自适应策略。


5、场景自适应:CAE(Content Adaptive Encoding) 自适应编码

内容自适应编码的本质是要根据内容的不同来设置不同的编码参数,简单来说就是谈话节目和舞蹈节目不应该用相同的编码参数,因为这两种场景内容的信息冗余度是不一样的。对于RTC场景来说,处理需要实时,因此很难对内容做多次精准分析,我们采用历史信息做当前信息的预测,借助控制论(如卡尔曼滤波)的思想,采用前几秒的信息来预测当前正在处理的信息,做到内容自适应编码。


6、场景自适应:CAP(Content Adaptive PreProcessing) 自适应前处理

RTC场景中,不是所有的场景都存在主观画质问题,大部分场景是不需要做任何视频增强处理的,站在节约计算资源的角度,也不应该所有场景都进行视频增强。如何区分哪些场景该做,哪些场景不该做,是一个AI范畴的自适应问题,我们借助近年兴起的多分类AI技术手段,对前处理算子进行了CAP处理,在低计算成本下,保证了较好的主观画质。




   BIGO RTC画质优化的未来



随着网络基础设施的升级和高端手机的普及,带宽和算力会越来越充足,1080p 60fps直播将逐步成为主流,画质体验也将进一步提升。新技术方向,我们将逐步开始支持HDR、4K等更逼近真实体验的技术方案。在不远的将来,音视频结合VR技术,虚拟与现实的区别越来越小,我们的音画体验,达到如同“头号玩家”描绘的一样,“虚拟就是现实,现实如同虚拟”的混合世界体验境界中。


参考阅读:



本文由高可用架构翻译。技术原创及架构实践文章,欢迎通过公众号菜单「联系我们」进行投稿。


高可用架构改变互联网的构建方式


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存