背景和动机
与传统视频不同,360°视频为用户提供了沉浸式体验,即用户可以通过四处查看和与虚拟世界互动来导航虚拟世界。360°视频可以使用专用的头戴式显示器(如Oculus和HTC Vive)进行观看,或者通过将智能手机放入如Google Cardboard和Samsung Gear VR之类的头戴式设备中进行观看。下图展示了360°视频处理流程,其中现代移动设备中的硬件加速器(如硬件解码器、GPU和显示处理单元)被用于处理360°视频。具体来说,设备首先从视频服务器(如YouTube、Facebook-360等)接收编码的360°视频,或从本地加载视频。
图 1
现代移动设备具有多核心的三集群处理器架构,包括三个处理器集群,每个集群都被设计用于有效地处理不同类型的工作负载。例如,Samsung S20具有八个核心的三集群配置,包括两个大核、两个中核和四个小核。现有的系统在视频流中激活所有这些核心,这消耗了大量的能源,但这是不必要的。这是因为,在现代移动设备中,由于使用了许多硬件加速器,如硬件解码器、GPU等,大部分360°视频处理中的重型计算都由硬件加速器处理。由于360°视频的分辨率较高,视频处理消耗了大量的能源。然而,很少有工作针对这个问题进行研究,尤其是考虑到移动架构的最新进展。
视频、 能效和QoE模型
服务器端的视频模型
在服务器端,视频被划分为一系列的n个视频段,每个段包含固定时长的视频内容(例如,L秒)。每个视频段被编码为V个副本,对应于V种不同的质量(即,不同的视频分辨率和编码比特率)。例如,与YouTube的常见设置类似,视频被编码为八个质量级别。基于网络状况,客户端的视频播放器会请求具有特定质量级别的段。360°视频流的过程可以被视为n个任务,这些任务对应于下载和传输n个视频段。让Tk表示流第k个视频段的任务。让Tkv表示第k个任务,其中视频段以质量级别v编码(v ∈ {1, 2, ..., V})。让Bk表示当客户端请求第k个视频段时,缓冲区中已下载但尚未查看的视频的视频长度(以秒为单位)。为了避免重新缓冲(或视频停顿),视频段应在视频播放器缓冲区用尽之前完全下载。
客户端的能效模型
移动设备在360°视频流中的能源消耗主要包括两部分:视频下载(Pd)和视频处理(Pp)。下载的能源与视频的质量级别和无线链接接口有关,而处理的能源与视频的质量级别和移动设备的硬件特性有关。为了测量无线接口消耗的能源,作者进行了一系列实验,其中一个wget守护进程在后台运行(屏幕关闭)从服务器下载数据。由于所有其他的后台任务都被关闭,只有一个数据下载应用在运行,所以测量的下载数据的能源减去没有下载数据的基础能源将是无线链接接口的能源。为了模拟Pp,作者测量了使用不同CPU频率播放不同质量级别编码的360°视频时的能源消耗。当观看具有特定视频质量的360°视频时,考虑了两种情况:在第一种情况下(即基线情况),视频播放器被打开但没有播放视频;在第二种情况下(即播放情况),通过手动设置CPU频率值来控制CPU核心。下图展示了视频处理时的能效模型。
图 2
公式为:
用户感知的QoE模型
用户观看视频时的感知QoE是基于所有视频段的平均QoE值来定义的。对于每个视频段,QoE模型考虑了以下几个指标:平均视频质量、质量变化和重新缓冲。模型通过考虑这些指标来量化用户感知的质量。特别地,模型使用了Michaelis-Menten函数来模拟用户感知的视频质量,并考虑了由于比特率突然下降或增加而可能导致的QoE降级和重新缓冲事件:
能效和QoE感知的360°视频流问题
问题定义
为了最大化QoE并最小化能源消耗,文章将360°视频流的能效和QoE问题形式化为一个优化问题:
这个问题的核心是在给定的网络带宽和设备能源约束下,为每个视频段选择合适的视频质量和处理级别。由于在实际场景中获取所有未来任务的完美知识是不可能的,因此文章进一步提出了一个基于启发式的算法来解决这个优化问题。
启发式算法
为了解决360°视频流的能效和QoE问题,文章提出了一个基于启发式的算法。该算法首先估计网络带宽,然后基于可用带宽为每个视频段找到合适的比特率和处理频率。具体来说,算法计算了在下载特定质量级别的视频段时的能源消耗和QoE。此外,算法还考虑了其他因素,如视频段的数据大小、下载吞吐量和客户端开始请求视频段时缓冲区中的视频数据量。这个启发式算法旨在在实际场景中为360°视频流提供一个高效的解决方案。
图 3
评估
实验设置
为了评估所提算法的性能,作者使用Samsung S20智能手机观看七个不同的视频并收集了追踪数据。这些视频具有不同的长度,并以不同的质量级别进行编码。视频的比特率对应于YouTube中的常见视频分辨率,即{144p, 240p, 360p, 480p, 720p, 1080p, 1440p, 2160p}。与其他研究类似,每个视频被划分为一系列的视频段,每个段包含一秒的视频。用户的观看区域由观看中心和终端设备的视场(FoV)确定,水平和垂直方向均设为100度。对于QoE模型,权重设置为(ωv, ωr) = (1, 1)。电源模型基于使用root权限的Samsung Galaxy S20进行实际测量。播放缓冲区设置为五秒,权重因子γ设置为0.5。网络流量基于四十个吞吐量追踪生成,这些追踪具有不同的模式。为了考虑不同的网络条件,作者线性地缩放追踪数据,生成了三种追踪,称为低、中和高带宽追踪。
评估结果
能耗比较:与基线方法相比,所提出的EQA算法在低、中、高网络带宽下分别平均节省了21.0%、37.0%和50.7%的能源。此外,EQA与最优方法的能源节省相似,均明显优于DefFreq和AdaFreq方法,尤其在网络带宽较高时。
图 4
QoE比较:EQA算法可以实现非常高的QoE,与其他方法之间的QoE差距非常小。具体来说,对于低、中、高带宽追踪,EQA的平均QoE降级分别为0.2%、1.1%和4.6%。因此,EQA方法在节省大量能源的同时,只牺牲了很小的QoE。
图 5
其他手机的能源消耗:作者还使用其他基于Android的手机(如Pixel 6)进行了实验。结果显示,通过利用所提出的优化技术,Pixel 6上的360°视频流的能源可以显著减少。
视频下载与处理:能源消耗分为视频下载和视频处理两部分。EQA和最优方法的视频处理能源是之前章节中提供的电源模型来计算的。对于基线、DefFreq和AdaFreq方法,使用了测量的电源消耗数据。
这些评估结果证明了所提出的EQA算法在实际应用中的有效性和优越性,特别是在节省能源和保持高QoE方面。
结论
本文识别了移动设备上360°视频流的能源效率问题,并提出了能效的360°视频流算法。通过广泛的实验,作者发现现有的系统在视频流中激活了所有的CPU核心,这消耗了大量的能源,但这是不必要的,因为大部分360°视频处理中的重型计算都由硬件加速器(如硬件解码器、GPU和显示处理单元)处理。此外,作者还发现默认的CPU管理器即使在处理低分辨率视频时也会将CPU设置为高频率,这会消耗更多的能源。为了节省能源,作者提议根据视频质量有选择地激活适当的处理器集群,并根据视频质量自适应地调整CPU频率。