视频通信关键技术探索及实践
导读:2021 年 10 月 21 日,「QCon 全球软件开发大会」在上海举办,网易智企技术 VP 陈功作为出品人发起了「AI 时代下的融合通信技术」专场,邀请到多位技术专家与大家一起分享相关技术话题。
我们会针对四个演讲专题逐一进行介绍与分享,本期是我们的第二期,视频通信关键技术探索及实践。
嘉宾介绍:韩庆瑞,网易云信音视频实验室,高级技术专家。
前言
无论在娱乐社交、线上学习,还是远程银行等生活场景中,视频都已成为最重要的互动方式之一,用户对于视频效果也提出越来越高的要求。延时低,弱网对抗能力强,视频画质清晰等也让企业面临很高的技术挑战。
作为融合通信云服务专家,网易云信的业务覆盖了主要的视频场景,包括低延时的实时音视频场景,允许部分延时的直播场景和不强调延时的点播场景,本文介绍了网易云信视频在各个场景下的关键技术和应用尝试。
网易云信视频技术部署
下图为网易云信整个融合通信的主网图。左边和右边是端侧的设备,可以接入任何设备,手机、pad、PC、web 等。中心这部分是服务器,其中有编译的转发服务器还有 MCU 服务器,如果牵涉到一定时延会转推到互动直播的服务器。云信的视频技术在 RTC 场景下主要部署在端侧,如果是是直播点播的业务,云信主要提供直播转推部署的视频转码服务。
RTC 场景的视频技术
下面介绍网易云信在 RTC 场景下面的视频技术,主要分为三点。
新一代的音视频 SDK 架构
下图是网易云信的音视频 SDK 架构图。去年年底,网易云信发布了新一代的音视频 SDK——G2。在这个 SDK 架构里面分为五层,其中媒体引擎层是核心所在地,主要分为三个视频引擎,视频、音频和传播引擎。
网易云信视频引擎架构和应用场景
下图是云信的一个视频引擎的架构。主要分为五大模块,视频前处理、视频编码、视频 QoE、视频解码、视频后处理。从采集端输入,云信支持的业务主要是分为两种,一种是从摄像头采集的真实的画面,另一种是从屏幕分享采集的画面。采集的画面会先送入视频前处理,云信业务分布在全球,有各种设备,有一些低端设备也有一些入门级的设备,由于摄像头的原因导致采集的画面变差,为了提升和恢复这样的画质,视频前处理完成了画质处理后进入编码压缩,会传送给网络。
由于各种网络的影响,我们会有一个视频 QoE 模块,保证云信用户都有一个完美的视频体验。经过网络传输到了对端之后进行解码,做一个后处理。后处理主要为了减轻或者提升由于网络压缩传输带来的画质的损失。
下图是视频引擎的应用场景,云信的视频场景分为 4 种,一种是实时通信应用场景,一种是低延时的应用场景,还有视频会议相关的,互动直播类的场景以及互动教学类低延时的直播场景。
视频引擎的关键技术
视频前处理
视频前处理主要是为了提升实时视频端到端的视频效果。网易云信全球化的业务中,各种各样的设备都会接入,我们需要这样的视频前处理来提升画质。
视频 AI 增强
这种技术是比较古老的技术,很多年前就开始研究了。随着 AI 技术和深度学习的进步,视频增强技术有了极大的提升。但是深度学习或者是 AI,运算量太大,云信的业务遍布全球,各种设备都会接入,尤其是移动端,像印度市场,东南亚市场中入门级设备比较多。
这些移动端对功耗和性能都非常敏感,稍微大一点的运算量,功耗和电量就会掉得很快,这导致出现了大模型,一个比较好的深度学习模型就很难在这些场景下落地。如果采用一些小模型,效果又不能得到保证。
我们的业务是通信业务,需要传到对端去。单纯增强也许效果好,但传到对端效果不一定好。经过解码后的图像,虽然有增强效果,但它的块效应比没有增强的更严重,在本端表现可能比较好,但是高频分量变多,结果导致了压缩率过高,损失过大。
云信通过两个方法来解决以上问题。一是训练易过拟合,另一个是增强后主观可能变差。
首先有一个场景识别模块,可以识别出一些文字区域的内容、运动场景和游戏场景,针对每种不同的场景会有不同的模型。比如说游戏场景是一种模型,文字场景是一种模型,也许是同样的模型但是可能参数不一样,这样可以保证运算能力足够,同时效果也不错。
我们的模型是采用的是小模型。前面提到模型不能太小,太小了表达能力不好,因此我们的模型是一种“轻量级模型”,参数量是 1-2K,实际上达不到这种小模型效果,因为业界的很多小模型参数不到 1K,可能只有几百,它的网络程度是三到四层。因为我们有自研的高效的推理框架 NENN。它和开源的推理框架相比,对小模型做了独有的优化,保证小模型的速度比其他开源框架速度快得多。
视频降噪
由于有的设备或者摄像头在暗场景下噪声比较多,需要高频噪声消除掉不必要的 bit。如果进行降噪,有利于编码,有利于传输,有利于提高主观质量。
在 RTC 场景中降噪是一样的,移动端业务居多,很多地区是入门级的设备,对性能功耗非常敏感,复杂功耗无法使用的,速度快的算法,效果又不好。如果采用不合适的降噪可能不仅把噪声抹除掉了,也可能把有用的高频分量减少,这样对整个视频质量会带来不好的影响。
网易云信在关注这个问题时,我们是从人眼主观的感觉来考虑的。从人眼主观来说,人眼观看是有区别的,一些场景下人眼的分辨率很高,分辨出很多高频系数。另一些场景中,人眼分辨率很低,分辨率会急剧下降。
网易云信采用了人眼敏感性分析方法,能够提取出像素级图像中的人眼敏感区域,我们宁愿将降噪的系数降低,宁愿放过一些噪声,也不愿意牺牲掉高频系数。即使放掉了,人眼也感觉不出来,我们也有一个非常简单但非常高效的噪声估计算法,这样的两种方法产生了一个权重值,因此视频速度会很快,而且效果也不错。
视频编解码
云信的视频编码支持主流编码器,包括应用最广泛的 264 和 265,还有基于对 RTC 的深刻理解,开发了自研的编码器,叫 NE264CC。
云信编码器的速度非常快,我们的质量可以提升 50%,跟 265 相比,我们编码速度可以快 60 倍。下图是我们自研的 NE264,这是一个非常优秀的协议,在行业界存在了 20 年,经久不衰,它也是目前覆盖最多的一种实时通信协议。云信在 264 基础上面研发了 NE264 编码器,有快速模式决策、高效亚像素搜索、自适应参考帧、 CBR 码控。
从下图中可以看到和 openh264、X264 的编码器以及 iphone 的编码器相比,在编码速度和编码质量方面云信都是领先的。同时可能会忽略的码率波动性,对于 RTC 来说,视频质量和速度是一方面,还有一个很重要的方面就是码率的波动性。对于 RTC 严格的低延时场景来说,码率一波动就会带来画面抖动,分辨率降低,在这里面 NE264 的码率波动性也是最小的。
下图是与 X264-ultrafast 的比较,这是最快的一种模式,我们的速度比它降低了 25%左右,但是我们的压缩率比它提升了接近 50%,如果同样的质量,X264 用一兆带宽,我们只需要 500,这是基本图像的优化。
针对屏幕共享的压缩优化,业界有很多非常好的方案,比如说 H265+SCC、AV1、H264+SCC,这些都是一些非常好的想法。
网易云信在思考这个问题时,我们认为对于 RTC 场景来说,264 是使用最广泛的协议,作为一种轻量级的协议,开销非常小。264 这种协议对成本来说是最小的。
另一方面,即使我们不改变协议,不增加工具,仅仅对编码器进行优化,屏幕共享这种内容本身对于编码端有很多可以挖掘的空间,我们基于 264 的协议,通过深挖屏幕共享的改进,来提升效果。下面是我们的成果一些成果,加与不加屏幕共享编码算法,在屏幕共享场景下,我们的压缩率提升了 36.72%,同时我们速度只慢了 3%-4%。可以看到我们的压缩率比 openh264 提升了 41%,速度基本不变。
再来看一下自研的 NE265,目前也在持续不断的迭代中。NE265 的特点是高效架构可实现的设计。对于计算复杂性的一些算法都进行了非常精细的 3D 优化。了解编码器的都知道 veryslow 那一档,我们速度比它快 64 倍,这还不是最快的档位,最快的要比它快 200 倍以上。
264 和 265 也进行了比较,我们和 faster 这个档位进行了比较,265 主要的缺点是速度慢。可以看到和 X264 faster 这个档位比快了近 30%,同时压缩率平均提升 34.78%。这些测试序列用了官方标准测试序列以及云信 RTC 业务相关的测试序列和社交娱乐的测试序列。
基于对 RTC 和音视频通信的深刻理解,我们发明了 NEVC,多尺度的视频压缩技术。相比 NE265,速度基本不变,但是压缩率提升了,右边的纹理提升得比较清楚,左边的纹理基本上模糊掉了。我们讲完了视频编码之后,码就应该被压缩了,应该送到网络去了。网络对 RTC 来说是最复杂的,尤其是在全球化的业务中,有各种不同的网络存在。如何保证在多网络、复杂的网络环境下面,视频质量还能最佳,我们有一个视频 QoE 的模块来支撑。视频 QoE 模块将从视频的流畅度、清晰度、质量平稳度、时延和性能功耗五个方面来进行保证。
视频 QoE
视频质量控制模块
视频质量控制从视频的流畅度、清晰度和质量平稳度三个维度来解读。经过采集、前处理、编码再发送,最后传给了网络,这里的网络可能有各种不同的网络存在,比如有些带宽很低的网络,有些有持续丢包的网络,或一些比较抖动的网络。
每种不同的网络不可能用一种分辨率、一种帧率、一种码率来传输,这可能产生不同的很差的效果。我们这里视频质量控制模块叫 VQC,它会首先接收从网络 QoS 评估出来的一个网络带宽或网络有效带宽,根据这个带宽分配合适的视频分辨率、视频帧率,设置编码器,达到最合适的视频质量,同时图像在各种不同的网络中,有的是噪声比较大的网络,有的是暗场景的网络,对于 VQC 的模块会进行采集信息,会决定打开或者关闭哪些视频算法开关,或者调整视频参数,增强或降噪,还有编码的一些算法。
设备控制模块
云信的业务遍布全球,有各种不同的网络存在,比如亚非拉地区、印度以及东南亚的极端不好的网络,当然也包括欧美的,国内的网络是比较好的。另外一点是终端平台的种类众多,有高端手机,有低端手机有 PC 和平板,云信的设备控制模块根据不同的网络特点根据不同区域来设置视频的算法,同时根据设备的平台种类来设置我们的算法。
比如对一些差的设备用低分辨率,低帧率;对比较好的设备会用高帧率,用先进的算法。
在实际过程中由于网络不是一成不变的,还有设备的状态、GPU 的占用率等影响因素,设备控制模块通过实时监测的数据来实时对算法进行调整,达到最优。
视频解码
QoE 讲完之后,码流传到了接收端进行视频解码。云信视频解码的特点是非常高效且几乎支持所有的视频格式,互联互通是没有问题的。
视频后处理
视频后处理通过视频屏幕内容优化和视频超分优化,恢复和改善视频画质。云信的视频超分,网络参数量是 2K-4K,网络层数小于 8,我们有自研的 AI 推理引擎,进行独有的优化,速度非常快,同时我们会加速,对于超分的效果有针对的数据集处理,利用苹果或者变焦的手机,对不同焦段的数据进行采集,进行真实的数据训练,同时也会用一些数据的预处理和增强来确定效果,主要优势还是高效和快速。
下图的表中,前三个是传统的处理耗时,这是我们自研的超分,这是一个比较著名的轻量级的网络,从处理耗时来看,云信 AI 的耗时比以 AI 著名的轻量级网络快了 30 多倍;从效果来看,云信 AI 超分的视频质量远远超过了非 AI 的效果,和经典的效果相差极其微小,基本上看不出差别。
其次是桌面共享优化,对于桌面屏幕共享不止有 264 的编码做了后处理,针对文字场景的优化,对于深度学习来说,屏幕共享最大的难点是它的分辨率一般是很大的,云信有高精度的文字识别功能,对解读出的文字进行增强,同时我们自研的推理框架 NENN 也会保持这种速度,这就是文字增强效果。
直播点播业务视频技术
直播点播的架构
前面介绍了编译服务器,基本上是 RTC 低延时的线路,如果直播就走直播点播的短推服务器,可以通过 CTO 下达。
直播点播的链路是从客户端经过推流到边缘媒体服务器再转推到直播转码再转到 CDN。
这个链路有两个问题,一个是设备上传时,它的画质存在损失,是压缩过的,有可能摄像头采集本身就有问题,也会带来损失。第二个是转码之后,经过 CDN 分发时,转码非常高。
为了解决以上两个问题,云信提出了智码超清技术。首先利用深度学习视频修复技术对转码前的视频进行修复或增强,再基于人眼感知的编码技术在视频主观质量不下降情况下节省码率。
图像首先经过视频修复模块,对视频进行了修复或增强或美化,再进行感知编码,感知编码会分析视频内容,前置一个视频分析模块。
智码超清技术架构
视频修复技术
视频修复在业界是一种比较难的技术,由于退化模型多种多样,视频退化有非常多的原因,比如由于摄像头噪声的影响,压缩上的损失,摄像头本身不好造成的过曝欠曝,也有可能是对焦没对好等。
云信用了一种画质评估算法,通过深入学习算法,得出这个视频的退化模型是什么。针对不同的退化模型用不同的恢复方法。如果是噪声,我们会用视频降噪的方法;如果是模糊,会用去模糊的方法;如果纹理不好,会用纹理增强的方法,还有画面矫正等。通过评估再进行修复,能够美化或者提升视频的主观效果。
视频感知编码技术
修复之后,就会进行编码。云信的感知编码采用了 JND 这种技术,用人眼最小可察觉的误差来度量人眼对图像中不同区域失真的敏感性。
JND 是一种提出比较多的技术。从下图可以看出,客观的失真是连续的曲线,人眼是一个阶梯状,有冗余的地方可以优化,节省码率,同时主观下降。
JND 是一种比较传统的方法,但传统 JND 编码是一种以图像低层特征为主的方法,比如纹理、边缘、亮度、颜色。
云信 JND 和其他不同的是加入了视频内容分析。比如上图中,我们会进行视频分析,分析出这个图像的前景、人脸、文字等信息,针对不同的信息再单独构造出 JND,来达到节省码流的目的,经过这样的流程会输出前景、文字、人脸,每种特性都有 JND 的共识,得出 JND 的系数进行编码。
下图是智码超清的测试结果,蓝色代表的是云信,其他颜色是业界友商的。左边是人眼主观的得分,因此越高越好,而压缩后文件大小显然是越低越好。
网易云信娱乐社交行业线视频技术
这是网易云信的重点投入和产出。
美颜技术
云信的美颜技术,提供了磨皮、美白、大眼等 26 种功能,50 款以上的滤镜,年龄、性别、视线识别跟踪,支持 2D、3D 贴纸,这些业界都有,但我们的特点是能够在美颜质量下高效的处理速度,这是我们核心的竞争优势。
对 720P 的视频进行美颜、磨皮、美白、瘦脸等的开销,在骁龙处理器上面,云信的基础美颜可以达到 30,对于我们的海外市场,尤其是在印度、东南亚这样的市场,在入门级机型遍布的情况下,这是非常有竞争力的,整个视频体验是完全不一样的。
背景分割技术
云信背景分割技术,采用了大量的数据集。我们精度比较高,iou 达到 0.93,鲁棒性比较好,推理速度比较快,小于 10 毫秒。下图是我们的精度和业界的友商对比,精度越高越好。
落地实践
技术讲完了,可以具体看看网易云信的落地实践。网易云信的视频引擎,已经服务了全球 10000+以上的用户。
既接入了 SDK 也接入了视频引擎的用户,比如 LOOK 直播,网易云音乐在线 KTV,网易会议,还有网易内部的 POPO 等,其中还包括一些第三方基于会议组件的厂商。
网易新闻的直播点播应用,有云音乐大型演唱会都是使用了网易云信的直播点播功能,比如去年非常著名的破纪录人数的演唱会,也是用了云信的视频引擎,后续我们也会持续的在技术领域深耕下去,为大家带来更多更好的产品。
版权声明: 本文为 InfoQ 作者【网易云信】的原创文章。
原文链接:【http://xie.infoq.cn/article/c74d3bd92c29c854be6a299aa】。文章转载请联系作者。
评论