葛志辉,白轩瑜,李陶深
(广西大学 计算机与电子信息学院,广西 南宁 530004)
随着移动设备的普及以及通信技术的急速发展,目前人们对形式多样的多媒体数据的需求量有增无减。在未来的几年中移动数据流量将大幅度增加,从2014年的64 %的视频流量占有率到2021年估计将达到49 EB,并且其中接近80 %的流量为视频流量[1]。因此,高效视频流算法的设计对于提供高质量的用户体验(user’s quality of experience,QoE)具有关键意义。
目前市场上绝大部分的浏览器均支持HTTP传输协议的。而HTTP流和iS0/MPEG标准就被称为动态自适应HTTP流,简称DASH(dynamic adaptive streaming over HTTP)。DASH正广泛应用于网络视频传输,而目前浏览器使用的都是HTTP/1.1,因为其本身固有的缺陷导致DASH一直难以获得最佳性能,因此HTTP/2协议应运而生。与前一代协议相比,HTTP/2协议拥有了许多新的特性,如服务器推送、多路复用、流中止等。 这些特性可以有效地改进网络连接效率,进而优化DASH的表现。近年来对DASH自适应算法的研究主要集中在两个方向。一个方向是基于带宽的自适应算法,通过预测带宽的变化选择尽可能接近实际带宽的视频比特率作为分片传输的码率,这样可以尽可能减少带宽资源的浪费,给用户带来较高的观看体验。但是由于带宽在实际情况中可能存在较大的波动,预测带宽变得不那么容易,同时还可能使视频发生中断进而影响QoE[2]。另一个方向则是基于缓存的自适应算法,根据客户端当前的缓存状态选择视频码率。通过这种方法,可以尽可能地在变化的网络场景中保持缓冲区的稳定,避免缓冲区耗尽,从而减少了视频的中断次数。但是这种方法对于网络的快速变化有着明显的滞后性,在不稳定的网络中调整视频码率的速度跟不上网络的变化[3]。所以说这两种方法各有利弊,都做不到尽善尽美。
目前绝大部分的研究都是基于HTTP/2对以上两种算法进行优化和整合。一般都是把重点放在了如何改进传输效率上,这点在PC端上当然没有问题,因为当用户使用PC端时可以不用考虑电量的消耗。但是正如前文提到的,在未来几年移动数据流量将大幅增加,人们在移动设备上观看视频的需求会越来越大。而制约移动设备的关键性能之一就是设备电量。事实上,人们对于观看视频时设备电量的损耗是十分在意的。移动设备的剩余电量已经成为影响QoE的重要因素。同时目前移动设备上观看视频的应用越来越广泛,其中不乏一些观看短视频的应用,对于短视频和长视频应该区别对待。这些都是不曾被前人注意过的。同时,用户处于不同的环境下使用移动端时,影响QoE的因素也会有所不同。例如当用户在家中使用移动设备时,说明他正处于一个网络比较稳定同时不需要担心移动设备剩余电量的环境中,这时候对QoE影响比较大的就是视频的质量了,设备能量的损耗可以不去考虑。而当用户处于移动状态时,很可能出现网络急速波动的状态,同时没有外接电源的情况。这时候就需要在尽可能地保持视频流畅度的同时尽量地减少移动设备的能量损耗。目前研究HTTP/2协议在网络传输上的表现时考虑移动设备剩余电量QoE模型的相对较为少见,比较具有研究意义。
随着流媒体应用的飞速发展,越来越多的人对QoE的优化问题进行了研究。XIAO等[4]提出了并设计了动态自适应流媒体DASH2M(exploring HTTP/2 for internet streaming to mobile devices),通过研究HTTP/2的新功能服务器推送(服务器能够在接收到相应请求之前推测性地向客户端推送响应)和流终止(通过从发送方或接收方发送特定的帧来实现)并将其应用于DASH2M,DASH2M通过综合考虑用户所需的QoE,可能出现的网络波动,潜在的用户提前终止视频的可能性以及移动设备的电量消耗,精心安排了分段交付,能够自动根据带宽预测确定推送周期中每个相关段的比特率,极大地提高了用户体验。但是对于移动设备的电量消耗控制得并不理想,XIAO等[5]基于服务器的HTTP视频流推送机制,提出了基于k-push改进的推送方案,因为之前的方案在网络波动的情况下表现不佳,无法应对网络快速波动的情况。因此使用服务器推送技术改善了之前的k-push方案,动态地预测网络带宽的变化,根据预测结果去不断地改变推送段的大小以适应网络的波动。改进后的自适应推送提高了网络适应性并且有效缓解过度推送问题。但对于电量则没有考虑。CHANH等[6]研究了服务器推送过程中的不公平竞争问题,提出了一种新的框架来改善HTTP/2在进行自适应传输时出现的不公平问题。实验结果证实了所提出框架在确保公平性,协助客户端避免重新缓冲事件和降低比特率降级幅度的同时维持服务器推送功能机制方面的表现出色。ZHAO等[7]认为由于HTTP/2仍然是使用的TCP来进行媒体传输的,所以TCP中的一些众所周知的老问题比如慢启动和窗口崩溃等,仍然会限制了DASH媒体传输的速率。因此将使用UDP传输数据的WebRTC数据通道作为携带DASH视频会话的传输工具,也成功地减少了40.22 %的启动延迟和57.96 %的视频切换延迟,显著地改善了QoE。HOOFT等[8]认为把视频段的长度进一步缩小即超短视频段可以显著地减少启动延迟,还可以在缓存区大小有限的情况下更好地应对网络波动。但是短视频也有缺点,首先,由于每个段必须以瞬时解码器刷新(IDR)帧开始,使其独立于其他段,因此会引入显著的编码开销;其次,需要大量的HTTP GET请求来检索分段,导致更大的网络和服务器开销。而服务器推送也可以减少启动延迟和切换延迟,但是当客户端切换到另一个质量等级时,旧质量等级的推送流与要以新质量等级下载的分段会相互竞争。这会导致客户端的交换延迟的增加以及网络中带宽开销的增加。所以提出了一种新的基于服务器推送的方法来为服务器提供来自客户端的更加明确的反馈,以避免网络带宽下降时的网络拥塞和缓冲区匮乏。同时对短视频段的编码开销进行了详细分析,并将评估扩展到可用带宽和网络延迟变化较大的多客户端移动网络场景。跟现有的方法相比,提出了一种有效限制服务器推送的分段数量的方法,并对不同分段持续时间和网络延迟进行了最佳值分析。此外,还详细讨论了由短视频段引入的编码开销。通过实验,新方法可以将启动延迟减少30 %。该方法将应用于客户端在网络拥塞情况下的公平性研究。上述的研究都没有考虑到移动设备的剩余电量对QoE的影响。
另一类的研究工作则是基于设备的耗电量或者剩余电量展开的。TAO等[9]提出DASH能量效率的视频流算法,该算法考虑结合网络资源分配、视频质量适应优化传输机制,实现了视频QoE和能效之间的权衡。但是将剩余电量作为计算能效比的参数,而提出算法中并没有考虑剩余电量对能耗的影响,更没有提出剩余电量对QoE的影响。KHAN等[10]提出多用户资源分配针对DRX(discontinuous reception)参数的QoE策略,在保证一定视频质量的前提下,降低了设备能耗。但是该策略没有考虑在不同设备剩余电量状态下,QoE考虑情况的视频质量选择问题。HU等[11]认为视频播放完成之前,用户操作快进或者退出会造成的能耗和带宽浪费,从而提出了能耗感知的节能策略。该方案实现延迟和带宽的权衡,节省了大量能耗,却没有评估QoE,在该方案下,QoE得不到保证。ZHANG等[12]通过分析无线资源控制RRC(radio resource control),量化片段长度和缓存区对能耗的影响。认为较大片段长度和较大缓存区可减少能耗。但只考虑了节能,并没有考虑QoE。HOQUE等[13]希望估测用户放弃观看视频概率来预取视频内容,平衡能量损耗。并在算法中加入快启动算法,加快片段下载速度,但是在模拟环境中进行测试的,未将算法整合到真实的DASH环境中。
HTTP/2协议提供了许多新特性,这些特性可以用来降低请求开销、减少传输延迟,比如HTTP/2协议支持服务器在未收到客户端的对应请求的情况下预测性地向客户端回复HTTP响应[14]。通过这种模式服务器在响应客户端对某个片段的请求时可以一次性推送多个片段到客户端,而客户端也可以对推送的数据流数量进行限制并调整数据流控制窗口,还可以发出命令让服务器停止推送[15]。
笔者选择利用服务器推送将视频段提前推送到客户端,客户端可以选择缓存这些推送,这样在面对不稳定的网络状况时适应能力比较强,不会轻易出现卡顿,可以有效地提高用户QoE[16]。但是这么做也有新的问题出现了,那就是如果用户放弃观看视频,那么推送过去的大量视频片段都没有用了,就会造成带宽和流量的损失。推送的视频段数量大小设置的过大会提高网络资源浪费的风险;另一方面如果将推送的视频段数量设置的过小的话,固然可以最大限度地减少风险,但是推送的次数也会随之增加[17]。过多的推送次数又会过多地消耗移动设备的电量,也会影响QoE。
因此考虑了用户放弃视频的可能性,用户观看视频的时间越长就认为其对视频的兴趣越大,随着用户观看时间的增加去逐渐增大服务器给客户端推送视频段的数量,直到推送数量达到预设的阈值。笔者设计了基于HTTP/2服务器推送特性的QoE评估模型BMSQ(battery of the mobile state QoE),旨在解决用户移动带来的客户端缓存浪费以及服务器推送过量消耗移动设备电量的问题。
基于HTTP/2协议下剩余电量、网络状态、视频质量高低对QoE的损伤如式(1)所示:
IQoE=αIP+βID+γIR,
(1)
其中,IQoE为视频播放过程中设备剩余电量、网络状态、视频质量高低对QoE的损伤程度;α为剩余电量对QoE的损伤权值;IP为剩余电量对QoE的损伤程度;β为网络状态对QoE的损伤权值;ID为网络状态对QoE的损伤程度;γ为视频质量高低对QoE的损伤权值;IR为视频质量高低对QoE的损伤程度。α、β和γ满足条件0≤α≤1,0≤β≤1,0≤γ≤1,α+β+γ=1。
采用平均意见得分(MOS,mean opinion score)测试方法,针对移动设备处在不同电量下时对QoE的影响做了主观测试。最终得出剩余电量与QoE的关系为式(2)所示:
IP=5-SBexp(vp/vc),
(2)
其中:SB为MOS规模常量;vp为设备初始电量;vc为视频当前电量。
考虑了网络吞吐量对移动设备网络状态的影响,移动设备网络状态与QoE的关系为式(3)所示:
ID=λ(MSD/SFT),
(3)
其中:λ为当前视频码率;MSD为视频分片时间;SFT为下载视频分片所需时间。
考虑到播放过程中视频码率高低和切换视频码率的频率对QoE都有一定影响,视频的码率越高,视频的切换频率越低,则可认为视频的质量越高。播放的视频码率高低和切换视频码率的频率与QoE的关系如式(4)所示:
(4)
其中,Rmax为视频最大码率,Ri为第i个视频的码率,Rs为当前视频码率切换次数。
根据移动设备不同电量与QoE的关系,提出了QoE评估模型。
(5)
针对实验环境进行了大量测试,移动设备不同情况下α、β、γ的最优值如下:
① 当移动设备处于满电状态或者有WiFi连接时,用户对于设备剩余电量的问题无需考虑,此时用户希望得到最高质量的视频,这时视频质量对QoE的影响最大,即使会因此使得视频陷入短暂的停顿也是可以忍受的。故该情况下可以使用流推送将段的初始大小设为最大推送给客户端,此时α=0,β=0.2,γ=0.8。
② 当移动设备处于中等电量情况下,且没有连接到WiFi时,用户开始关注剩余电量,同时对视频的流畅度也有较高的要求,此时网络状态对QoE的影响最大而视频质量次之,最后才是剩余电量。故该情况下在流推送时将段的初始大小设为阈值的一半,之后再慢慢增加到阈值,此时α=0.2,β=0.5,γ=0.3。
③ 当移动设备处于低电量情况下,且没有连接到WiFi时,用户最关注的是移动设备的能耗问题,希望可以尽可能地减少设备的电量消耗,此时剩余电量对QoE的影响最大而网络状态次之,最后才是视频质量故该情况下在流推送时将段的初始大小设为最小,之后再慢慢增加到阈值,此时α=0.6,β=0.3,γ=0.1。
笔者提出一种基于HTTP/2流推送特性和移动设备应用场景的码率控制策略CSHAS(rate control strategy for HTTP/2 and application scenarios),具体操作步骤如下:
Begin
Step 1:获取当前网络吞吐量和预测吞吐量。
Step 2:设置服务器推送的初始段数大小为最小。
Step 3:获取当前设备请求码率、预测码率。
Step 4:识别移动设备上目前正在使用的应用场景,当识别到短视频APP时,则执行step 5,当识别到非短视频APP时,则执行step 6。
Step 5:使用服务器推送将内容一次全部推送到客户端。
Step 6:感知设备所处的移动状态以及设备剩余电量,当处于满电状态或者有WiFi连接时,则执行step 7;当处于中等电量情况下,且没有连接到WiFi时,则执行step 8;当处于低电量情况下,且没有连接到WiFi时,则执行step 9。
Step 7:将段的初始大小调到阈值,质量最高。
Step 8:将段的初始大小调到中等,以类慢开始算法的方式慢慢增大,直至阈值。
Step 9:将段的初始大小调到最小,以类慢开始算法方式慢慢增大,直至阈值。
End
BMSQ模型参数包括设备当前电量、设备当前网络状态、设备当前播放的视频的质量,通过BMSQ模型参数对DASH、DASH2M进行性能参数对比,对比结果见图1至图6。
从图1、图2、图3中得出,DASH自带的算法是根据平均吞吐量来估测当前的网络带宽的,在带宽环境较好时能提供质量较高的视频段,但是对于网络变化的情况过于敏感,一但网络带宽变得较差时,为了维持播放就会选择频繁切换视频码率,对QoE造成影响。DASH2M总体来说比DASH好些,但是面对急剧变化的网络状态时适应力同样不是很强。而本文提出的BMSQ算法根据设备剩余电量和网络状态综合来进行码率选择,当带宽处于不稳定状态时,将会优先选择请求较低的码率的视频片段,同时码率切换的频率与幅度也会相应地下降,直到网络稳定时才向上切换码率,可以有效保证QoE。当设备处于低电量状态时,也会选择请求低码率视频片段来实现视频质量与设备电量的平衡。
图1 电量较高状态时码率选择Fig.1 Bit rate selection when the battery is high
图2 电量中等状态时的码率选择Fig.2 Bit rate selection when the battery level is medium
图3 电量较低时的码率选择Fig.3 Bit rate selection when the battery is low
图4 高电量状态下QoE损伤Fig.4 QoE damage under high power state
图5 中等电量状态下QoE损伤Fig.5 QoE damage under medium charge state
图6 低电量状态下QoE损伤Fig.6 QoE damage in low battery state
从图4至图6中可以得出,当电量处于充电状态或者高电量状态下时,设备当前剩余电量造成的QoE损伤可以忽略不计,而网络状态造成的QoE损伤很小,这时视频质量切换造成的QoE损伤最大,此时各个算法差别不大,BMSQ算法的整体QoE损伤最少。当电量处于中等电量状态时,设备当前剩余电量和视频质量切换造成的QoE损伤较小,而网络状态造成的QoE损伤较大,此时BMSQ算法的电量损伤控制得很好,整体QoE损伤也最少。当电量处于低电量状态下时,网络状态和视频质量切换造成的QoE损伤较小,而设备当前剩余电量造成的QoE损伤最大,此时其他算法都在尽可能地请求高质量的视频,这样反而会加快设备电量的消耗,给QoE造成较大的损伤,BMSQ算法则会尽可能地请求较低质量的视频,通过减少设备电量消耗的方式来保证QoE。
本文基于HTTP/2研究了移动设备当前剩余电量在不同应用场景下对QoE的影响,主要提出了一种基于HTTP/2服务器推送特性的QoE评估模型。本文在保证一定QoE的前提下,提出一种基于HTTP/2服务器推送的自适应算法,根据移动设备的不同应用场景去推送不同初始大小的段。实验结果表明,该策略可以实现移动设备电量消耗和视频质量间的平衡,提升QoE。未来工作将结合移动设备端耗电应用的优化,进一步减少电量的消耗,同时考虑参考用户的视频记录来预测用户的行为。