高朝龙,张景波,蔡星娟
(太原科技大学 计算机科学与技术学院,太原 030024)
随着网络技术以及视频编解码技术的发展,视频通信得到快速的发展,疫情期间,远程视频会议迎来井喷式发展并且被广泛应用于人们的日常生活中[1].腾讯会议与钉钉等视频会议软件可以满足日常会议需求,但是像一些特定场景,比如医院等对隐私要求比较高的行业,开发一套独立的视频会议系统尤为重要.传统的视频会议都是基于客户端开发,用户需要下载应用才能开启视频会议,现在越来越多的视频会议系统是基于Web端开发.WebRTC(Web Real-Time Communications)[2,3]是一种实现网页端实时通信的技术,该技术通过浏览器来实现视频通话,而不需要下载客户端,极大地方便了用户使用.目前大部分的音视频通信软件都是基于WebRTC技术开发,WebRTC实现了点到点在浏览器之间的通信.
WebRTC发展潜力巨大,预计到2026年,市场规模达到29.8亿.WebRTC有多种应用场景,其中包含流媒体播放,直播以及视频通话.在流媒体播放中,为了适应不同用户的需求,MBR(Multi-Bitrate Streaming)和ABR(Adaptive Bitrate Streaming)[4,5]被广泛研究.ABR是码率自适应调整算法,它会根据客户端网络状况对码率进行调整,从而实时为用户提供最高的视频质量.而MBR是多码率策略,它将视频流编码成多个不同码率的码流以供接收端选择,编码器确定了码率之后,码流不会根据网络条件进行调整.在流媒体播放和直播中,视频流来源都是固定的码率,ABR是单个流自适应转码成多个流,而MBR则是编码器编码多个码率并发送给CDN.传统的ABR仅从接收端报文决定发送码率,例如GCC(Google Congestion Control)[6,7],主要是从时延和丢包的角度进行码率调整.发送端基于丢包率对上传码率进行调整,接收端基于延时对上传码率进行调整.然后由媒体引擎根据码率来配置编码器,从而实现码率的自适应调整.Wang等人[8]针对多人互动直播场景设计了自适应码率算法,同时考虑收发码率,发送端采用SVC编码,提高了主播的用户体验.Petrangeli等人[9]针对基于WebRTC的远程教育提出了视频码率动态自适应方法,根据网络带宽对发送端码率重新计算.而在多人视频会议场景中,每个客户端既是视频发送端,又是视频接收端,因此在对码率进行调整的时候,需要同时考虑接收和发送码率.多人视频会议区别于一对一的视频通话,视频会议房间用户较多,每个用户的设备和网络环境不同,视频需求也不同,网络状况好的用户希望获得高质量的视频,网络状况差的用户希望降低视频质量以保证视频的流畅性.
因此,如何满足不同用户的需求是多人视频会议亟待解决的问题.针对这些异构网络环境,优化网络传输参数,调整客户端上传的码率,可以有效地改善视频会议性能.基于WebRTC技术的多人视频会议主要包括Mesh,MCU和SFU 3种架构,而SFU架构,由于对服务端消耗更小,同时支持发送多码率,客户端灵活性好,支持高负载,因此是当前主流的方案,大多数厂商采用SFU架构,例如思科,ZOOM和腾讯会议等.为了适应不同客户端的需求,SFU架构通过Simulcast[10,11]和SVC[12]两种模式来实现MBR.Simulcast模式下,每个发送端通过编码器编码上传三路不同分辨率的视频流,SFU服务器根据接收端的网络状况转发不同分辨率的音视频数据.由于SFU架构服务器不对视频流进行处理,因此不能像MCU架构那样使用GCC算法实现码率自适应.在对视频会议研究中,Grozev[13]等人使用simulcast模式进行编码,参会人发送三路视频流,SFU将高质量的视频流转发给讨论中的人员.为了适应接收端的带宽变化以及提高视频质量,Petrangelo[14]等人使用整数线性规划对发送端码率进行重计算.这些方法都是从接收端带宽出发,没有从服务器的带宽消耗以及多路视频流的视频质量的角度,考虑视频会议的整体性.码率的大小决定了带宽消耗和视频质量,为了使得视频会议更加合理化,需要对客户端上传的多个码率同时进行优化,得到最优的传输码率.为了让视频架构服务于中小型企业,在减少客户端带宽消耗的同时,需要尽可能地减少服务器的成本,而SFU架构服务器成本主要来源于上行带宽.
由于视频会议发送端也是接收端,因此需要统筹兼顾发送码率和接收码率,同时考虑多个目标.针对视频会议中的多码率控制问题,本文构建了高维多目标模型[15,16],同时对每个客户端上传的三路视频流的码率进行优化,并用高维多目标优化算法进行求解,得到目标权衡下的最优传输码率序列.借助高维多目标优化算法可以生成一组由非支配解组成的pareto解集,该解集可以满足不同需求下的最优解.因此,本文针对基于Simulcast+SFU架构下的视频会议多码率优化的问题引入高维多目标模型,构造包含客户端带宽消耗比,视频质量,码率差和服务器上行带宽消耗4个目标的高维多目标模型.本研究成果能在多个权衡目标中找到一个折衷解决方案,对提升多人视频会议在复杂环境下的通话质量具有重要的理论借鉴意义及很强的应用价值.
WebRTC是一种实现web端在线视频通讯的技术,无需安装应用,直接通过浏览器即能使用视频会议功能,极大地方便了客户端的使用.WebRTC是一种P2P技术,建立视频通讯是可以去中心化的,但是在大型多人视频通讯场景,使用端到端直连,在客户端上会出现严重的带宽和性能问题.因此针对多人视频通讯场景,由3种架构类型:Mesh、MCU、SFU,其中Mesh架构是基于端到端直连的设计方案.
图1展示了4人会议场景下的3种架构示意图,其中圆形代表参加视频会议的客户端.在表1中列出了3种架构的连接数和上行下行数.
表1 架构对比
图1 架构对比图
Mesh架构:如图1(a)所示,客户端两两建立p2p连接,端与端之间互相传输视频流,该架构的优点在于不需要中心服务器进行转发.由于每个客户端需要给其他视频接收端上传视频流,上行带宽消耗比较大,另外视频编解码均在客户端,对客户端的CPU消耗比较大.Mesh架构仅适用于人数比较少的视频会议,一般用于5人以下的视频会议场景.
MCU架构:MCU架构目前应用比较广泛,但是由于该架构下视频流是在服务端进行编码,因此需要对不同接收端的视频进行转码,对服务器的CPU消耗巨大[17],抖动缓冲区较大,端到端之间的时延长.MCU服务器将各客户端上传的视频流混合编码成单个视频流,并向其他参与会议的客户端转发该视频流.从表1可以看出,MCU架构带宽消耗较小,每个客户端仅需要向服务器上传一路音视频流,同时接收一路经服务端合流编码后的视频流,客户端的压力较小.但是对服务器需要对视频流重新解码编码、解码、混合,对CPU资源消耗较大,因此MCU架构对服务器的压力很大,使用此架构需要配置性能好的服务器.
SFU架构:SFU与MCU架构相似,都是借助服务器对音视频流进行转发,不同的是SFU服务器端不对视频流进行编码与合流,只是将接收到的视频流转发给视频会议房间中的其他客户端,因此相比MCU架构,SFU服务器的压力比较小,并且数据更安全.另外,在客户端资源消耗上,SFU架构对客户端的下行带宽消耗比较大.不过随着5G技术的发展,带宽问题得到有效的改善,SFU架构符合未来发展潮流.
多人视频会议由于参会人数比较多,并且不同客户端的网络状况和终端设备不同,为了满足不同设备在不同网络环境下的视频通话需求,SFU采用了MBR策略.SFU架构下两种MBR模式:SVC和Simulcast.
SVC模式:是一种可伸缩的分级编码模式,它在视频编码时将视频分成多层——核心层、中间层和扩展层.上层依赖于底层,而且越上层越清晰,越底层越模糊.在带宽不好的情况下,只传输底层,即核心层,在带宽充足的情况下,上传高层码流提高视频质量.Zoom和思科采用的都是SVC模式.
Simulcast模式:指视频的发送者即视频会议客户端,通过视频编码器将单个分辨率的视频编码成3个不同分辨率的视频流,并发送给SFU服务器.而SFU服务器根据各客户端的网络状况将接收到的三路视频流进行选择性转发.目前国内的声网采用的就是Simulcast模式.
与SVC分层编码方式相比,Simulcast的操作更简单,实用性更强,因此本文针对Simulcast模式下的多码流传输问题进行优化,调整房间内各客户端的传输码率,提高视频会议整体性能.
针对Simulcast模式,不同分辨率的码流所对应的码率是动态变化的,如何在减少客户端带宽消耗的同时,尽可能地提高视频质量、降低服务器的带宽消耗是本文的研究重点.视频会议多码率优化旨在从整体出发,从房间的概念考虑视频会议整体体验,并从客户端和服务器两个方面对传输码率进行优化,使得视频会议码率分配更合理,视频会议性能更好,在满足这些目标的同时,尽可能地提高视频质量.对视频房间进行统筹规划,从客户端带宽消耗,服务器成本,以及视频质量3个角度出发,构建4个目标函数同时对视频会议进行优化.
高维多目标模型示意图如图2所示,在视频会议中,每个参与方在发送视频的时候需要对视频进行编码,从而减少带宽消耗.在对传输视频进行编码之前,SFU服务器通过带宽评估模块[18]获取各个客户端的网络带宽,并通过构建的高维多目标模型计算得到各客户端码率传输的pareto最优解集,SFU服务器将得到的每个客户端的码率值传给客户端,客户端根据接收到的值对视频流重新编码.客户端将编码后的三路视频流发送给SFU服务器,最后,SFU服务器按照接收端的网路状况将不同分辨率的视频转发给各客户端.
图2 多码率优化高维多目标模型
服务器可利用Simulcast技术实现多码流传输,视频流发送端通过视频编码器编码三路分辨率不同的视频流,分别代表高清、标清和流畅.高分辨率视频流适用于网络状况好的客户端接收视频数据,可以获取高质量的视频;低分辨率视频流适用于网路状况不好的客户端接收音视频数据,仅需要较少的码率即可实现较清晰的视频.三路码率实现的是多用户需求的视频会议,解决异构网络下的客户端体验问题.
Simulcast模式旨在满足不同用户实际带宽和设备需求,基于SFU架构,客户端在向其他的客户端推送视频流的时候,视频编码器将客户端采集到的单路视频流编码成3个不同分辨率的视频流,SFU服务器根据接收端的实际状况转发合适的视频流.
每个客户端推流的三路视频流可以表示成公式(1),每一路对应一个固定分辨率.
(1)
(2)
在分辨率一定的情况下,码率与清晰度成正比关系,码率越高,图像越清晰;码率越低,图像越不清晰.
本章将介绍多人视频会议多码率优化的高维多目标模型的构建,模型包含4个目标:客户端带宽消耗比、视频质量、码率差和服务器上行带宽消耗.高维多目标模型构建如下:
目标1.最小化客户端带宽消耗比
SFU架构,每个客户端上行视频流数据,下行其他客户端发送的视频流数据,发送端发送的视频流消耗带宽包括发送端消耗的上行带宽和接收端的下行带宽.当房间会议中的参会人员比较多的时候.整个视频会议需要占用的带宽会特别大,会严重影响视频会议的通话性能.另外由于网络波动较大,不同客户端的实际带宽不同,因此需要根据客户端的实际带宽对上传的音视频流的码率进行调整,降低房间内客户端的带宽消耗.在公式(3)中,构建了客户端带宽消耗比模型,用来反映视频会议房间内的客户端平均带宽消耗比.
(3)
(4)
目标2.最大化房间视频质量
视频质量与传输码率,分辨率和帧率有关,其中传输码率是影响视频质量的关键因素[19],本文不考虑帧率的影响,仅考虑分辨率以及码率.码率越大,传输的视频流数据越多,越能反映出真实的视频效果.对于视频会议房间三路不同分辨率的视频,用传输的音视频客观评价分数来衡量视频质量,建立房间视频质量模型.
(5)
qk表示第k个客户端推送三路视频流的平均视频质量,即会议房间中视频接收方得到的视频质量期望.SFU服务器在进行转发的时候,假定转发的概率是随机的,即转发每一路的视频流的概率均相同,为1/3.qk的计算表达式如公式(6),其中f表示视频质量关于分辨率和码率的函数[20],R代表分辨率.该函数可以通过拟合得出:
(6)
目标3.最大化码率差
在Simulcast模式下的视频会议中,为了满足不同用户的需求,每个参会客户端上传三路不同分辨率的视频流以供服务器转发.每个分辨率对应一个码率,码率的大小决定了当前分辨率下的视频质量.在码率一定的情况下,分辨率与视频质量成反比,分辨率越高,像素点越多,视频越不清晰.高分辨率的视频对码率的要求高,因此在减少带宽消耗的同时,对高分辨率的码流应分配大的码率,即三路视频流的码率差值尽可能地大,为此,本文构建如下码率差模型:
(7)
目标4.最小化服务器带宽消耗
基于SFU架构的WebRTC服务器不需要对客户端推送的视频流进行编码以及合流,因此视频通话对服务器的CPU消耗很小,服务器只需要将各个客户端推送的视频流转发给视频流接收方,消耗上行带宽,如果上行带宽消耗过量,则会导致客户端不能正常接收到视频流.对于多人视频会议的服务端而言,由于需要应对大规模用户以及房间数目比较多的情况,为了满足视频会议的正常进行,对服务器的上行带宽要求也比较高.另外需要的上行带宽越大,服务器成本越高,因此应该尽可能地降低服务端的上行带宽消耗.
对于Simulcast模式,每个客户端会通过编码器编码上传三路不同码流,服务器根据客户端实际状况转发合适的码流.本文将最大上行带宽消耗作为目标函数,即最大上行带宽消耗等于各客户端上传的最大码率之和.服务器带宽消耗模型如公式(8)所示:
(8)
因此本文构建的高维多目标模型如下:
F=[bandc,quality,dis,bands]
(9)
由第3节可知,本文将各个客户端的传输码率作为决策变量,通过高维多目标优化算法,得到最优码率组合.将每个客户端的三路不同分辨率的码率按高中低顺序排列,对于参会人数为N的视频会议房间,决策变量个数为3N,码率值序列可表示为:
(10)
将序列中的每个元素进行归一化,得到各码率在[0,1]中的映射为:
(11)
归一化后的码率值序列为
(12)
对于在线视频会议多码率优化问题,本文采用实数编码对决策变量进行编码,编码长度为3N.使用实数编码对归一化后的码率值进行编码,生成初始种群,种群中的每个个体表示为一个C*序列,种群初始化后,通过迭代更新得到最优的归一化码率序列C*.在每次迭代时,需要将每代种群个体映射回实际码率值序列C.
在高维多目标优化算法求解过程中,交配池选择是关键的一个过程,用于选择好的个体进行交叉变异,交配池的选择影响着算法最终的性能.使用单一指标进行交配池选择无法适应不同的问题,因此本文提出了一种基于多指标交配池选择策略的MaOEA-MIPS,提高交配池的多样性,在交配池选择中,本文将适应度,ASF[21],角度以及FC[22]等指标作为交配池生成策略,提出了一种基于集成选择的高维多目标优化算法MAOEA-MIPS.适应度值可以反映种群个体的优劣性,ASF值可以反映出每个解的最佳收敛程度,基于角度信息的评价准则能消除个体收敛程度的影响,FC值可以反映种群的收敛性.适应度和角度是常用的指标,因此,本节重点介绍ASF和FC.
4.2.1 成绩标量函数
ASF表示成绩标量函数,通过加权向量w=(w1,w2,…,wM)和参考点z={z1,z2,…,zM}来构造,可以将多目标转化成单目标进行求解,公式(13)为改进版的ASF,前半部分为原始的ASF,原始ASF在解决高维多目标优化问题中会失效,因此在后半部分添加了附加项,其中增广系数ρ设置为10-4.
(13)
权重向量wi为个体x在每个目标对应权重偏好,定义为:
(14)
其中,当wi=0时,权重偏好wi用10-6替换.
4.2.2 收敛偏好函数
收敛偏好函数由切比雪夫函数和偏好向量构成,用于衡量个体的收敛性能.FC的定义如公式(15)所示,切比雪夫距离为两个点在坐标维度上差值的最大值,FC(u)值越小,反映了收敛性越好,z={z1,z2,…,zM}表示每个目标函数上的理想点集合,zi=minu∈Pfi(u).fi(u)表示个体u在第i个目标上的函数值.
FC(u)=max1≤i≤M{Wu,i|fi(u)-zi)}
(15)
其中,偏好向量定义为:
(16)
MAOEA-MIPS算法框架图如算法1所示,在交配池选择过程中,本文基于适应度,ASF,角度以及FC这4种指标设计了3种交配池选择策略,并让它们以相同的概率进行选择得到种群交配池.算法使用模拟二进制交叉变异生成子代,并与原种群合并产生新的种群.在环境选择过程中,为了保证种群大小的一致性,使用角度信息和欧式距离对种群个体进行选择和淘汰.种群个体到理想点的欧氏距离反映了种群的收敛性,个体之间的角度反映了种群的多样性,因此在淘汰个体时,可以去除多样性小并且收敛性差的个体.
算法1.MAOEA-MIPS算法伪代码
输入:初始化种群P,设置相关的参数
1. 初始外部归档集合E;
2. 计算理想点;
3. When gen 4. 生成随机数a=rand(0,1); 5. If a<1/3: 6. 使用基于适应度函数的锦标赛方式得到交配池pool; 7. If 1/3<=a<2/3: 8. 使用FC指标得到交配池pool; 9. If a>=2/3: 10. 使用ASF和角度信息指标得到交配池pool; 11. 模拟二进制交叉变异得到子代O,新种群P=P∪O; 12. 计算P中个体之间的角度和个体与理想点的欧式距离; 13. If|P|>N: 14. 选择角度最小的两个个体p1,p2,删除距离短的个体; 15. 更新归档集E; 输出:外部归档集E 算法主要包含以下3个过程:1)多指标交配池选择过程;2)交叉变异过程;3)环境选择过程.在算法中,算法的终止条件设定为最大迭代次数.对于每一代,多指标交配池选择过程中,需要对M维决策变量的N个个体计算指标值.其中适应度函数和FC指标的时间复杂度是O(MN),而计算角度信息指标和ASF时间复杂度为O(N2),根据指标选择交配池的时间复杂度为O(N),因此交配池选择过程的时间复杂度为O(MN)+O(N2).交叉变异过程的时间复杂度较小为O(N).其中M表示目标的个数,N表示种群的大小. 在环境选择过程中,需要对2N个个体进行非支配排序,并从中选出N个个体进入到下一代,在选择最后一个非支配层时,利用角度和欧式距离进行个体的选择.其中,非支配排序的时间复杂度是O(MN2),计算个体之间的角度和个体与理想点的欧式距离的时间复杂度为O(N2).因此环境选择的时间复杂度为O(MN2).综上所述,本文提出的MAOEA-MIPS算法的整体时间复杂度为O(MN2). 本实验所有的仿真实验,均在windows10,Matlab2016b版本下运行,并通过Matlab接口调用python程序,对比实验在优化算法平台(PlatEMO)上进行. 本研究选择DTLZ(1~7)函数作为测试集,测试函数配置如表2所示,最大迭代次数设置成10000,交叉概率为0.9,变异概率为0.1. 表2 DTLZ测试函数参数设置 表3 参数设置 表4 高维多目标优化算法对比结果 表5 不同参会人数结果对比 在高维多目标优化中,反向代际距离(IGD)和超体积(HV)是两个常用的评价指标.本实验采用IGD值来评估算法的性能.计算公式见公式(17): (17) 其中,Z代表均匀分布在pareto最优前沿面上的参考点集合,|Z|表示点集的个数.P代表算法得到的最优解集,d表示Z中点到解集P的最小距离.d越小,反映了解集P越接近真实pareto前沿,即算法收敛性好,另外,解集P应尽可能地覆盖最优前沿面,即多样性好. 为了验证算法的性能,本文将MAOEA-MIPS与NSGA-Ⅲ[23],GREA[24],PICEAG[25],MAOEA-DDFC[22]4个算法进行比较,并在DTLZ测试函数集上测试,结果如表6所示,其中加粗字体表示算法中的最好值.MAOEA-MIPS在大部分测试实例中IGD值优于其他算法.这是因为其他几个算法均是采用单一指标选择交配池,无法协调多样性和收敛性,而MAOEA-MIPS考虑多个指标,增加了种群选择压力,算法性能更好. 表6 算法在DTLZ测试函数上的比较 在使用高维多目标优化算法进行仿真实验的时候,需要提前构建视频会议场景模型,以10人视频会议场景为例,假定客户端的网路带宽均在15~20Mbps之间,随机生成10个不同网络环境的客户端,每个客户端上传3路视频流.在表3中列出了仿真实验所需的相关参数设置,根据会议场景进行仿真设置并构建对应的高维多目标模型,然后使用高维多目标优化算法进行求解.本节设计了两个实验:一个是不同高维多目标优化算法结果对比实验,另一个是不同参会人数场景下的目标值对比实验. 在实验1中,本研究将不同的高维多目标优化算法用于10人会议场景中,并对实验结果进行了分析,在实验2中,分析了不同参会人数对视频会议的影响. 表4为10人视频会议场景下的不同高维多目标优化算法的性能分析,MAOEA-MIPS在多个目标上表现优异,其中客户端带宽消耗比最小,视频质量较优,服务端上行带宽消耗最小.其中客户端带宽消耗比最小为0.470,最大为1.084,优于其他算法,带宽消耗比小的解适用于网络状况不好的情况.对于服务器上行带宽消耗方面,MAOEA-MIPS与NSGA-Ⅲ接近,明显优于其他3种算法,表明MAOEA-MIPS可以极大地降低服务器上行带宽消耗,减少服务器成本.码率差反映的是码流之间的差异性,当码率差保持在一个较高值,码流离散程度更大,视频流多样性更好,MAOEA-MIPS与其他4种算法码率差没有明显区别.在视频质量方面,MAOEA-MIPS在最差值优于其他4种算法,在最好值上仅次GREA,平均值和GREA和PICEAG接近,NSGA-Ⅲ的视频质量最低. 最好结果和平均结果反映了算法在模型上的收敛性,最差结果反映了算法的多样性.为了更好地反映算法的性能,在图3中绘制了箱线图.其中长条内横线表示外部归档集中的中位数,圆圈表示外部归档集中的离散解. 图3 箱线图 为了分析房间人数对视频会议的影响,在实验2中,参会人数分别设置成2,10,20,30和50.将MAOEA-MIPS用于求解高维多目标优化模型,不同参会人数对应不同的会议场景.实验结果如表5所示,由于最终解是一个pareto解集,本文取解集的平均值来表示各目标值. 从表5中可知,客户端带宽消耗比和服务器上行带宽消耗与参会人数呈正相关,MAOEA-MIPS可以保证视频质量和码率差维持在较好的范围.2人参会的时候,就是典型的一对一的视频通话,客户端带宽消耗比较小,仅为0.273.当客户端带宽消耗比大于1时,视频会议不能正常进行,在本实验设置的带宽下,视频会议最大可支持的参会人数约为14人.当会议人数达到50的时候,客户端带宽消耗比达到了3.828,说明客户端需要约70Mbps的带宽.实验结果证明,SFU架构对客户端带宽要求较高,而5G的发展,将解决带宽限制问题,因此在客户端带宽允许的情况下,MAOEA-MIPS可以有效提高多人视频会议整体性能. 本文针对多人视频会议中多码率优化问题,建立多码率优化的高维多目标模型,并且将高维多目标优化算法用于解决模型中的高维多目标优化问题.在模型求解中,本文提出了一种基于多指标交配池选择策略的MAOEA-MIPS算法,仿真结果表明,使用提出的高维多目标模型对视频会议进行优化,可以较好地提升视频会议整体性能以及系统的实用性,同时证明了MAOEA-MIPS的有效性.在未来的工作中,可以对高维多目标模型进行改进,并探索更优的算法进行求解,进一步提高视频会议系统的性能.4.3 算法时间复杂度分析
5 实验结果与分析
5.1 MAOEA-MIPS算法性能实验
5.2 MAOEA-MIPS解决多码率优化高维多目标模型
5.3 实验分析
6 结 论