APP下载

基于电量状态的移动流媒体码率自适应策略

2022-03-01陈仁康李泽平杨华蔚薛杨上王忠德

计算机工程与设计 2022年2期
关键词:码率缓冲区电量

陈仁康,李泽平+,林 川,杨华蔚,薛杨上,王忠德

(1.贵州大学 计算机科学与技术学院,贵州 贵阳 550025; 2.贵州财经大学 大数据应用与经济学院,贵州 贵阳 550025)

0 引 言

在移动视频服务中[1],基于HTTP的动态自适应流媒体传输协议(dynamic adaptive streaming over HTTP,DASH)已成为流媒体传输的国际标准,许多流媒体码率自适应策略研究也在此基础上开展,同时DASH也得到包括Netfix、Youtube在内的行业领先企业的支持[2]。尽管目前的码率自适应策略一定程度上解决了流媒体播放过程中存在的视频卡顿、初始延迟过长等问题,但由于流媒体视频播放会消耗移动设备相当多的资源,导致较高的电池电量消耗[3,4],为了实现更好的用户体验质量(quality of experience,QoE),还需要考虑移动流媒体应用中的电池电量消耗过快的问题。目前主流智能手机的电池容量都在3000 mhA以上[5],但仍然无法满足用户长时间使用流媒体服务的需求,否则电池电量会过快地消耗,缩短手机的续航时长,影响手机通讯功能的正常使用。如何平衡不同电量状态下的视频质量和设备电量消耗,成为当前移动流媒体领域的研究热点。

1 相关研究

目前,主流的码率自适应算法大致可分为两类:①基于吞吐量的自适应算法;②基于缓冲区的自适应算法。基于吞吐量的自适应算法根据当前估计的可用网络吞吐量,去选择尽可能高的码率[6]。而基于缓冲区的自适应算法,与基于吞吐量的自适应算法不同,这类算法仅使用播放器缓冲区的使用情况作为反馈信号,并使缓冲区占用保持在所需的水平[7]。

针对移动流媒体服务中能耗过高的问题,在基于缓冲区的自适应算法和基于吞吐量的自适应算法的研究基础上,研究人员提出了一些改进方法。

出于不是视频所有部分都需要高帧率的基本思想,Park等[8]提出一个EVSO(environment-aware video streaming optimization)模型,模型基于H.264/AVC编码器在视频压缩编码过程中采用宏块(macroblocks)计算视频帧之间相似度的考虑,为视频不同部分分配不同的帧率,实现了客户端节能的效果,该方法会导致视频中部分质量的下降,同时还需要对DASH的媒体描述文件(media presentation description,MPD)进行扩展,以添加对电池电量状态的支持。EVSO模型在移动流媒体视频质量和移动设备电量消耗之间取得了一定的平衡,实现了设备电池电量的节约,提高了用户QoE,然而,它需要对原视频进行重新的编码,还需要对视频编码器进行修改,并扩展标准的MPD文件,而这在一定程度上,增加了方案实际部署时的成本和难度。

Kim等[9]提出一种基于减少客户端重复帧刷新的电量节约算法。算法采用内容率(content rate)来度量1 s内有意义帧的变化数量,然后根据内容率来预估最优刷新速率,减少重复帧更新,从而达到电量节约的效果。但是该算法并没有减少客户端实际接收到的帧数,即客户端仍然需要消耗能量去接收播放过程中不需要的帧,所以该算法的节能效果并不好,同时,由于减少了视频中部分片段的刷新帧率,一定程度降低了视频质量,影响了用户QoE。

也有研究者,如Hu等[10],根据设备当前的电量状态,提前缓冲用于播放的视频,以便在不需要时关闭设备的无线网络接口,从而达到电量节约的目的。但是这种方法存在的问题是,如果用户中途退出播放,提前缓冲视频则会造成电量和带宽的浪费,使用较小的缓冲区可以避免这一问题,但同时,较小的缓冲区又会引入重新缓冲(即播放卡顿)的新问题。此外,由于移动设备所处网络条件的不稳定性以及用户观看视频的不确定性(如提前退出、快进等),使得设备无线网络接口的开启时机较难确定,而在缓冲区耗尽时,如果未及时打开无线网络接口缓冲新的视频,则会造成重新缓冲事件,影响用户QoE。

葛志辉等[11]提出一种基于剩余电量的用户QoE模型(power state QoE model,PSQM),模型考虑了剩余电量、初始延迟、暂停事件以及切换事件对用户QoE的影响。在提出的QoE模型的基础上,提出了一种基于移动设备剩余电量和网络环境的码率控制策略(power-level bitrate control scheme,PBCS)。该策略的基本思想是根据当前的网络吞吐量以及设备剩余电量,选择合适的码率,即在网络条件好和设备剩余电量充足时,选择高码率视频下载播放;而在网络条件差或者设备剩余电量不足时,选择低码率视频进行下载播放。对比其它考虑设备电量的码率自适应算法,PBCS策略能够比较方便地集成到客户端,但是,PBCS策略仅根据当前网络吞吐量和设备剩余电量进行码率决策,未考虑播放器缓冲区使用情况,容易造成码率切换频繁和视频卡顿的问题,此外,PSQM模型定义时,也未考虑平均视频质量对用户QoE的影响。

2 基于电量状态的移动流媒体用户QoE模型

码率自适应的最终目标是改善用户QoE,有关用户QoE的研究已经较为深入[12],而在流媒体服务中,不同研究者对于用户QoE模型的定义可能是不同的,但一般来讲,会考虑初始延迟、重新缓冲、码率切换平滑度以及平均视频质量这几个关键元素对用户QoE的影响[13]。

在移动流媒体服务中,除了视频质量QoE外,还需要考虑设备的电量消耗对用户QoE的影响。因此,在定义用户QoE时,综合设备电量状态对用户QoE的影响,提出了一种基于电量状态的移动流媒体用户QoE模型(battery status QoE model,BSQM)。模型包括视频损伤Imedia和设备电量消耗损伤Ibattery两部分。

视频损伤Imedia由初始延迟、重新缓冲(即卡顿)、平均视频质量及码率切换4部分组成。设Ω为所有可选码率,则播放器可以在播放第n个视频块时,选择码率为Bn∈Ω的视频进行播放。设dn(Bn) 为码率为Bn的第n视频块的大小,则第n视频块的下载时间可以表示为dn(Bn)/Cn, 这里Cn表示下载第n个视频块时的下载速率。设q(Bn) 表示选择码率为Bn时候的视频质量。设总的视频块为N。将组成视频质量损伤Imedia各部分描述如下:

(1)初始延迟:即播放器的初始缓冲时长,通常,播放器会在初始阶段缓冲一定长度(小于最大缓冲长度)的视频后,才进行播放,避免在初始阶段就出现重新缓冲事件。设播放器设置的初始缓冲时长为L,初始选择的码率为Binit,则初始延迟为

TID=(L*Binit)/Cinit

(1)

针对不同初始延迟对用户QoE的影响进行测试,发现初始延迟与用户QoE损伤基本呈线性关系,将初始延迟与用户QoE的损伤的关系表示为

IID=α*TID

(2)

其中,α为线性相关系数,取α=3.2。

(2)重新缓冲:对于每个视频块n来说,当开始播放后,如果视频块的下载时间高于播放缓冲长度(比如Buffern),则会发生重新缓冲事件,总的重新缓冲次数为

(3)

其中

(4)

重新缓冲对用户QoE的损伤除了和重新缓冲次数NRB有关,还与重新缓冲时长DRB有关,根据文献[14]的研究,发现当重新缓冲次数NRB固定时,用户QoE损伤会随着重新缓冲时长DRB单调增加;而当重新缓冲时长DRB固定时,用户QoE损伤则不会随着重新缓冲次数NRB单调增加。同时,频繁的重新缓冲造成较高用户QoE的损伤。基于这些发现,经测试,在不考虑视频内容类型(比如运动类、风景类)的情况下,将重新缓冲与用户QoE的损伤关系定义为

(5)

其中,系数a=3.35,b=3.98,c=2.50。

(3)平均视频质量:一般来讲,选择越高的码率,则用户获得的视频质量就越高,而视频质量越高,则用户QoE越好,反之,视频质量越低,则会对用户QoE造成越大的损伤。平均视频质量与用户QoE损伤关系如下

(6)

(4)码率切换:在码率自适应的过程中,需要进行码率切换,从一个视频块切换到另一个视频块时视频质量的变化大小,反映了码率切换的平滑度,通常,频繁或者较大幅度的码率切换,都会对用户QoE造成损伤,码率切换与用户QoE损伤关系为

(7)

因为用户对于4个部分中哪个更重要有不同的偏好,用上述4个部分的加权求和来定义从视频块 1到N的总体视频用户QoE损伤Imedia

Imedia=βIID+δIRB+λIQ+μIS

(8)

式中:β、δ、λ、μ是分别和初始延迟、重新缓冲、平均视频质量以及码率切换相关的非负权重系数。在用户倾向于更低的初始延迟的情况下,则需要使用一个更大的β。一个大的δ,表明相对于其它因素,用户更关心重新缓冲事件。在用户倾向于更高视频质量时,使用一个更大的λ。一个相对较小的μ表明用户不是特别关心视频质量的变化;而一个更大的μ则说明需要保证更平滑的质量切换。在文献[13]的研究基础上,经测试,在平衡状态(即综合考虑各参数对用户QoE的影响)时,取β=0.18、δ=0.21、λ=0.48,μ=0.13。

同时考虑到设备的电量消耗对移动流媒体服务中用户QoE的影响,用放电速率(discharge rate)[15]来表示流媒体播放期间的电量消耗,经测试,将电量消耗与Ibattery的关系表示为

Ibattery=ω(Battery1-Batteryn)/n*t

(9)

其中,n为播放的视频片段数,t为视频切片长度,Battery1-Batteryn表示播放期间电池电量的消耗量,ω为线性相关系数,取ω=1.3。

综上,将基于电量状态的移动流媒体用户QoE模型BSQM表示为

IQoE=λ1Imedia+λ2Ibattery

(10)

其中,λ1、λ2分别为视频质量损伤和电量消耗损伤的权重系数, 0≤λ1≤1, 0≤λ2≤1, 且λ1+λ2=1。 定义的4种不同的设备剩余电量状态分别为H(≥70%)、M(40%~70%)、L(20%~40%)、E_L(≤20%),以及一种正在充电状态CHARGING。根据文献[11],当设备处于不同的电量等级时候,用户对视频质量和电量消耗的偏好程度不同,经过大量用户测试,设置权重参数如下

(11)

(1)高电量状态,或者是充电状态

在此状态下,用户对于电量的消耗不敏感,而对视频质量有较高的要求,因此,码率自适应策略应尽可能请求高码率视频,并减少重新缓冲次数,保证用户QoE。因此,在该状态下,设置参数权重值为:λ1=1.0,λ2=0。

(2)中电量状态

在此状态下,用户关心电量的消耗,同时,又不希望视频质量有较大的降低,因此,码率自适应策略应该适当降低视频质量,减少视频重新缓冲次数,减少设备电量消耗。因此,该状态下,设置参数权重值为:λ1=0.8,λ2=0.2。

(3)低电量状态

当设备处于低电量状态时,用户比较关心电量的消耗,愿意牺牲一部分视频质量来减少电量消耗,保证设备的通讯等基础功能的正常使用。因此,码率自适应策略应执行更保守的码率选择,即选择更低的码率等级,保证视频的流畅播放,避免重新缓冲。该状态下的参数权重值设置为:λ1=0.4,λ2=0.6。

(4)极低电量状态

在极低电量状态下,用户非常关心电量的消耗,但如果用户仍有观看在线视频的需求,码率自适应算法应该尽可能选择最低的码率,减少重新缓冲,缩短初始延迟时间,保证最小的电量消耗,确保设备有足够的电量使用通讯等基础功能。该状态下的参数权重值设置为:λ1=0.2,λ2=0.8。

3 基于电量状态的移动流媒体码率自适应策略

应用基于电量状态的移动流媒体码率自适应策略(battery status based bitrate adaptation scheme,BSAS)的客户端在视频播放过程中,执行如下的3个步骤:

(1)获取参数:使用文献[6]提出的带宽预测方法预测可用带宽Rateavail。因为BSAS策略主要是基于网络吞吐量来进行码率决策的,自然地,更准确的带宽预测将有助于做出更准确的码率决策,避免带宽浪费或者重新缓冲事件的发生。也就是,本文提出的码率自适应策略可以通过提高带宽预测机制的准确性来改进,如在LTE网络中,使用机器学习方法获得更准确的带宽预测[16]。还需要获取的参数是设备当前电量BSlevel和充电状态BSplugin,以及播放器当前的缓冲区占用情况Buffernow。

在两种情况下,策略不执行码率切换。第一种情况是,Bnext>Bnow且BuffernowmaxBufferForDecrease, 即选择的下一码率小于前一个码率,同时缓冲区的长度大于切换到更低码率的缓冲区最大值(默认是25 s)时,策略将保持当前码率,不切换到更低的码率。

(3)应用:开始加载码率为Bnext的视频块,并进行渲染播放。

算法1: BSAS码率选择算法

start

输入:Rateavail,BSlevel,BSplugin,Buffernow

输出:Bnext

(1)ifplayer state is startupthen

(2)ifBSlevel=E_Lthen

(3)Bnext=Blowest

(4)else

(6)else

(7)Bnow=Bnext

(8)ifBSlevel=HorBSplugin=CHARGINGthen

(10)elseifBSlevel=Mthen

(12)elseifBSlevel=Lthen

(14)elseifBSlevel=E_Lthen

(15)Bnext=Blowest

(16)ifBnext>Bnow

(17)andBuffernow

(18)Bnext=Bnow

(19)ifBnext

(20)andBuffernow>maxBufferForDecreasethen

(21)Bnext=Bnow

end

定性来看,本文提出的码率自适应策略有如下几个方面的优势。第一,策略进行码率选择时,将移动设备的剩余电量作为一个考虑因素,因此,比起单纯基于吞吐量的RB算法,能更好地适应不同的设备电量状态;第二,策略在客户端应用,不需要对原视频进行重新编码,也不需要对流媒体服务器进行额外配置,可以快速方便地集成;第三,和PBCS策略比较,策略对电量等级进行了更细的划分,能更好地实现视频质量和电量节省的平衡,同时,策略结合了播放器当前的缓冲区状态信息,避免作出不符合当前缓冲区的码率决策,导致卡顿和频繁码率切换等问题。

4 实验及结果

4.1 实验环境

实验平台采用Nginx服务器作为流媒体服务器,运行在Ubuntu 20.04系统上,采用华为FRD-AL10安卓手机作为实验设备,客户端采用Google开源的多媒体播放框架Exoplayer[17]。通过监听系统广播的方式获取设备电量及充电状态,使用Android性能分析工具Battery Historian[18]获取视频播放期间的设备电量消耗值,使用Exoplayer提供的API获取当前播放器缓冲区大小。

选用的实验视频为开源视频“Big Buck Bunny”[19],原视频数据集有20个不同的码率等级,实验中选取其中10个不同的码率等级,每个码率等级有150个视频切片,每个视频切片长度为4 s。实验视频分辨率及码率见表1。

表1 实验视频分辨率及码率

真实网络环境中,带宽变化情况不可控,为了测试本文提出的码率自适应策略在波动的网络环境中的性能,利用Linux系统的Traffic Control工具[20]进行带宽控制,设置如表2所示的4种不同的带宽序列。

表2 4种带宽序列平均码率及特点

4.2 实验结果及分析

根据提出的BSQM模型,从初始延迟、重新缓冲、平均视频质量、码率切换平滑度、电量消耗以及总体的QoE损伤等几个参数,对比了RB算法[6]、BBA-0算法[7]、BOLA算法[21]、Exo+CBF算法[22]以及BSAS算法在不同带宽条件和电量状态下的性能表现。

从图1可以看出,高电量(或者是充电)状态下,BSAS策略和RB算法以及Exo+CBF算法的码率选择策略接近,能在带宽状况变好时,及时切换到高码率视频,而BBA-0算法则在码率选择上存在较大的波动性,同为基于缓冲区的BOLA算法则相对稳定。从图2可以看出,总体来讲,BSAS对比RB算法,选择更低一级的码率等级,考虑了设备处于中等电量的这一状态变化,而在400 s后,带宽状态下降时,由于在350 s~400 s带宽条件较好时,缓存了足够的视频片段,BSAS策略没有进行降低码率,减少了码率的波动,而RB算法则请求下载新的更低码率的视频,BBA-0算法仍然存在幅度较大且频繁的码率波动,特别是在初始时,缓冲区为空,BBA-0算法选择最低的码率等级,而带宽序列2的初期带宽较高,则就导致BBA-0算法有一个较大幅度的码率波动。从图3可以看出,在一个带宽波动幅度较大,频率较高的带宽序列3下,且设备处于低电量的状态时,BSAS策略维持了一个较为中等偏下等级的码率选择,且较为稳定,而RB算法由于只根据网络带宽条件进行码率决策,则有一个幅度较大且频繁的波动,BBA-0算法和BOLA算法的码率选择波动性也较大,在100 s~200 s时带宽突然大幅度降低,而BBA-0算法仍然选择了高码率的视频,未及时切换,导致了重新缓冲事件。从图4看出,极低电量情况下,BSAS策略维持在最低的码率等级,而不会继续请求高码率的视频。

图1 带宽序列1高电量时算法码率选择情况

图2 带宽序列2中电量时算法码率选择情况

图3 带宽序列3低电量时算法码率选择情况

图4 带宽序列4极低电量时算法码率选择情况

图5 带宽序列1高电量状态下算法性能及QoE损伤

图6 带宽序列2中电量状态下算法性能及QoE损伤

图7 带宽序列3低电量状态下算法性能及QoE损伤

图8 带宽序列4极低电量状态下算法性能及QoE损伤

从图5的性能对比结果可以看出,由于BBA-0算法初始选择一个较低的视频码率,且在播放过程中,通常进行更为激进的码率选择策略,因此,该算法在初始延迟和平均视频质量这两项指标上,优于RB和BSAS,然而,频繁的码率切换则导致码率切换平滑性较差,而激进的码率选择策略,则常常导致重新缓冲事件的发生,因此,BBA-0算法在这两项上损伤较大。而由于使用了Lyapunov优化技术,BOLA算法相比BBA-0算法,减少了重新缓冲事件的发生,且在码率切换上表现更好。在高电量或者充电状态下,RB和BSAS的各指标和总体QoE损伤较为接近。而从图6、图7可以看出,中、低电量状态下,BSAS根据电量状态,进行自适应码率决策,选择更低的视频码率,有效减少了视频的码率切换和重新缓冲事件,降低设备电量消耗,在平均视频质量上,低于BBA-0算法和BOLA算法,略低于RB算法和Exo+CBF算法,但在总体QoE上表现更好。从图8可以看出,在极低电量状态时, 由于带宽序列4初始带宽条件较好,RB算法在初始阶段选择了较高的视频码率,导致初始缓冲时间过长,BBA-0算法则仍然存在重新缓冲次数较多,码率切换平滑度较差等问题,而BSAS则充分考虑了此时的设备电量状态,选择最低的码率等级,从而避免了初始延迟过大和码率切换频繁等问题,并且播放过程中没有重新缓冲时间发生,在总体QoE损伤上,优于RB算法和BBA-0算法。

5 结束语

通过研究不同电量状态下码率选择策略对用户QoE的影响,提出了一种基于电量状态的BSQM模型,模型的参数包括初始延迟、重新缓冲、平均视频质量、码率切换平滑度以及设备电量状态。在模型的基础上,给出了一种基于网络吞吐量,同时考虑设备电量状态的码率自适应策略BSAS。该策略在RB算法的基础上,针对不同电量状态执行不同的码率决策。与基于吞吐量和基于缓冲区的自适应算法的对比实验结果表明,BSAS能较好地平衡不同电量状态下的视频质量和电量消耗。未来工作是研究码率自适应策略BSAS在5G网络环境下的应用。

猜你喜欢

码率缓冲区电量
储存聊天记录用掉两个半三峡水电站电量
移动视频源m3u8多码率节目源终端自动适配技术
物联网智能燃气表电量自补给装置
一种基于HEVC 和AVC 改进的码率控制算法
基于功率的电量智能修复算法研究
串行连续生产线的可用度与缓冲库存控制研究*
基于状态机的视频码率自适应算法
基于ARC的闪存数据库缓冲区算法①
初涉缓冲区
多光谱图像压缩的联合码率分配—码率控制方法