腾讯技术开放日 | 腾讯会议如何进行视频质量评估与优化?

 

 

腾讯会议系统中,视频质量是影响用户体验的主要因素,对视频质量进行评估和优化是吸引和留住用户的关键。在开发腾讯会议质量评估系统的过程当中,有哪些技术难点和相应的解决方案?在【腾讯技术开放日 · 云视频会议专场】中,腾讯多媒体实验室高级研究员王海强进行了分享。算法

 

本次分享共包括四部分,第一部分是视频质量评估的背景介绍;第二部分,介绍在视频会议这种实时通讯系统中,与质量损伤相关的环节及对应的优化策略;第三部分,介绍针对腾讯会议场景所开发的基于深度学习的全参考视频质量评估算法;第四部分是围绕腾讯会议搭建的一个端到端的质量评估系统,它可以对会议进行自动化评估和监测。数据库

 

什么是视频质量评估?网络

 

视频质量评估致力于评估视频的人眼感知质量,总的来讲有两种评估方式:框架

  1. 主观质量评估,依赖人眼观看并打分,这种获得的分数比较精确,可是很耗时间,并且不方便大规模部署。
  2. 客观质量评估,主要是计算损伤视频的质量分数。评价一个算法的好坏就是衡量主观分数和客观分数的相关系数,通常来讲系数越高越好。

 

客观质量评估算法大概分三类,主要取决因而否使用无损的源视频做为参考。ide

  1. 全参考,好比PSNR就是典型的全参考算法,经过与源视频进行各类层面比对,来衡量损伤视频的质量。
  2. 无参考,有的算法不使用源视频,只使用接收端的视频,来衡量它本身自己的质量。
  3. 部分参考, 好比从源视频中提取一个特征向量,特征向量随着损伤视频一块发送到用户端用来计算质量。视频会议这种场景要作全参考原本是不现实的,由于不可能把本地无损的源视频送到用户端或者其余地方计算质量,咱们此次所作的工做就是把会议这种典型的实时场景转化成一个可使用全参考算法离线优化的场景

 

根据视频内容,视频质量评估能够分为PGC质量评估和UGC质量评估。PGC,就是专业制做内容,好比传统的电影、电视剧,它的内容,设备、光照、演员各类指标都是接近完美的状态。UGC是用户原创内容,像短视频、直播、实时视频通话都属于这一类。性能

 

UGC对视频质量优化提出了更多挑战。下面的图表给出了缘由,右上角这个表明着传统的PGC,而UGC可能属于四种状况中的任意一个。对于传统的PGC,你们基本默认很难加强它的质量,像素改变越多它的质量会越低。而UGC状况就比较复杂,有的视频能够经过算法,渐渐加强质量,可是若是作的过的话反而又会下降质量;有些视频的特性是,在小范围内调整它的质量几乎是不变的;还有些视频,这种比较少,质量改变和象素改变几乎成线性关系。会议这种场景就属于典型的UGC场景。学习

 

考虑到拍摄、构图、色彩、相机的稳定度等,相比PGC,UGC都更难优化。并且,PGC优化能够参考源视频,运用全参考算法,而UGC并非传统意义的无损源,因此UGC对视频质量评估领域提出不少挑战。测试

 

实时音视频通讯系统中质量相关模块优化

 

下面结合会议这种实时通讯系统来介绍和质量损伤有关的模块。整体来讲,实时通讯包括发送端采集“源视频”,这里加了个引号,来讲明并非传统意义上的无损源。采集环节以后,是预处理环节,好比背景虚化、各类加强,而后是编码、上行码流通过网络传输,接收端接收下行码流,而后解码再通过后处理,再渲染获得损伤视频。质量评估在于哪儿呢?在接收端,质量评估去评估损伤视频的质量,后面的全部模块对质量评估来讲都是一个黑盒。编码

在会议实时通讯过程当中,网络可用带宽是限制整个系统的瓶颈。能够经过二阶统计量来描述带宽,一个是平都可用带宽,它决定了视频编码出来的平均码率,另一个是网络实时抖动决定了最高码率。由于若是网络在某一段时间带宽比较低,而码率持续的比较高,就会引发卡顿、丢帧甚至掉线等等,固然也能够经过在某些部位加一些缓冲区加强它的稳定性,可是缓冲期通常会增大时延。

 

对于编码器来讲,就是给定一个恒定码率,编码器要调整编码策略,通常经过调节QP,也能够经过调分辨率、或者调帧率来把编码码流对齐到目标码流

 

先说一下帧率,由于帧率对视频质量的影响远远大于分辨率和QP。对比下面两个视频,左边是24 fps其实它压的比较厉害,QP是36;右边的通过两次时域SVC,只有6fps,QP18。原本右边画面质量更好,可是它帧率更低,跳帧对质量的影响很大,因此有些人会以为右边视频质量反而没有左边的好。

接下来看QP和分辨率。视频压缩失真引发主要的质量损伤,也就是说给定一个目标码率,要经过适配必定的QP和分辨率策略,来达到给到的码率目标。

下面以传统的PGC优化分辨率和压缩比的组合做为例子,讲一下优化编码策略,这两个材料都来自VMAF。

 

左边这个图给出了一些码率和视频质量的组合,这里面有三条黑色的线,表明着同一个视频不一样分辨率的版本,红色的线Convex Hull是结合这三个分辨率找出最优曲线,在码率肯定的时候,只要找到和Convex Hull接近的点就是在当前场景下应该采用的分辨率。

 

右边是传统的基于反复测试获得的关于PGC视频的码率表,可能如今业界也有些人用固定的码率表,可是那个码率表要么是基于经验,要么是基于本身的反复测量的结果,没有通过太多优化。对于会议这样一个场景,腾讯会议也想要一个它的convex  Hull和码率表。

 

追求更高精确度,腾讯会议开发全参考视频质量评估算法

 

基于前面讲到的内容,腾讯会议开发了一个实时视频全参考质量评估算法。由于视频编解码是整个系统中的核心模块,因此咱们但愿这个视频质量准则有足够的精确度和区分度来衡量编解码器细微的差别。

 

咱们测试了已有的图像质量评估算法,包括PSNR、VMAF等等,发现他们有的对于网络波动区分度不够,有的对时域上的运动信息或质量波动把控不够,测试完后以为这些算法并不知足需求

 

因而腾讯会议使用深度学习设计了一个新的网络,来自动学习视频质量的相关特征,而后在PGC数据集上训练获得一个通用的网络。而对于UGC的网络,咱们构建了一个新的主观质量数据库来调优模型。

这是腾讯会议开发的视频质量评估算法,名字是Video Quality Assessment with 3D Convolutional Neural Network。这里面一个大的创新点是使用三维卷积核来提取时空联合特征,使得视频质量和时域运动大小更相关。

 

这个模型是用PyTorch开发的,也在VideoSet这个PGC主观数据库上进行了预训练,用额外收集的会议视频质量数据库进行微调。对应的算法开源在腾讯的官方Github上,算法名字叫作DVQA,感兴趣的话能够看一下。

下图给出咱们所设计的神经网络结构图,它的输入包含两部分,损伤的视频帧 (distorted frames)和residual frames,这两部分相加就是源视频帧。前面黄色框是两层二维卷积网络,而后通过四层三维卷积获得失帧可感知度的阈值,再把阈值和residual frames乘起来,最后是一个Pooling和两层FC层,来把获得的特征regression到最终的score上面。

 

下面的例子更直观一些,图(b)中小女孩的头发区域,头发比较黑并且纹理复杂,在人眼视觉下,若是头发区域有一些压缩失帧是很难看出来的,图(g)是神经网络学习的结果,这片是黑色,也就是说可感知失真很小,那么这个神经网络学习到的特征和人眼视觉感知特征是一致的。图(i)中砖块是相对平滑的区域,若是在这里有损伤应该是比较容易被看出来,那么在神经网络学习的图(n)中也是一样的结果。

前面讲的都是基于PGC数据库的例子,咱们的UGC的数据库尚未公开出来。咱们在LIVE和CSIQ两个公开数据集上把咱们的算法同其它算法进行比较。从下面的表格能够看出,咱们算法的性能在大部分状况下是领先的。

你们知道,要训练一个深度学习算法,须要很大的数据库来支持。可能会有人问,大家这个算法用的数据库是什么?左边这个表给出了如今业界常规的主观质量数据库的大小,总共的视频包括源和损伤视频大概在100、200左右甚至几十个,这里面还包含着一个源和一个源对应的五个或者几个损伤视频。其实真正的源算下来也就十个左右。用这样的数据量去训练网络仍是是比较困难的。

 

因此,腾讯会议搭建了一个在线视频质量打分平台来收集视频的主观数据,这个打分平台既有PGC也有UGC。网址是mos.medialab.qq.com,你们能够体验,右边是看完视频展现以后的打分界面。

 

这里的例子是采用AB tst模式,每次播放两个视频,一个源,另一个是处理过的。两个是随机模式,看完以后会问志愿者,以为第一个视频质量效果好仍是第二个好,仍是以为两个都同样,选完以后能够进入下一个比较。腾讯会议收集了超过100多万次打分,对上百个源视频进行了打分。

我所在的质量平台组负责腾讯会议的专项测试工做,包含性能、码率、抗性、时延、音画同步,其实这也是网络组须要的参数,还包括最终的视频质量。根据实践,前面这些像性能、码率、抗性、时延、音画同步均可以借助专门的硬件和软件测出来,而对于视频的主观质量,咱们更多时候是经过人工看来判断。

 

另外,视频会议一直在快速迭代,有不少版本,其中比较头疼的是须要对齐电脑当前的本地环境和网络环境,若是这两个对不齐的话,版本比较结果不容易让人信服

 

 

自动化评估与检测,开发端到端视频质量评估系统

 

腾讯视频也开发了端到端自动的质量评测系统,这是总体的框架图。其实它的策略相对来讲没那么复杂,就是在发送端播放源视频,通过可控的损伤网络以后,另外一边是接收端,在接收端捕获会议呈现的画面,把这个画面拿出来再结合发送端的源视频去计算它的质量分数。前面提到的性能、码率这些绝对的指标均可以获得,抗性更多取决于什么样的网络状况下体验特别糟糕,时延、卡顿、音画同步、包括帧率均可以经过比对这两个视频获得结果。通过几个月的努力,这个系统已经实现彻底自动化。

这是端到端质量评估系统的外部交互界面,叫RTQoE-Real  Time  Quality  of  Experience。在这个系统中,能够选定源视频,能够选定上行和下行的网络情况,提交任务以后就是发送端、接收端各自完成以后去算对应的指标,而后在这里展现出来。

下一步的计划,是在RTQoE系统中引入temporal纬度。上面的模型目前只能作调QP和调分辨率这两个组合的方式,引入temporal纬度后就变成QP、分辨率、帧三个组合,一块儿衡量网络波动对视频质量的影响。

 

Q&A

 

Q: 能介绍一些公开的PGC数据库吗?

A: 腾讯会议的PGC数据库是公开的,搜索Videoset应该能搜到,若是找不到的话能够查一下代码库,里面提到了数据库在那里能够下载。

 

Q: 网络如何影响视频质量评估?

A: 这里面包含丢帧的状况。由于网络决定了分辨率和编码器的编码策略,调QP、调分辨率、调帧率可能取决于不一样的厂商。实时的网络波动也会影响丢帧的状况。腾讯会议计划引入temporal纬度衡量网络波动,这里有两个目的:一个是网络波动对丢帧的影响,另一个是网络可用状况对编码策略的影响,怎么调QP的、怎么调分辨率、怎么调帧率的,是这样一个问题。

相关文章
相关标签/搜索