1. 引言
近年来,智能手机、平板电脑、超极本等移动设备越来越普及,人们对移动设备的使用也有赶超传统PC电脑之势。移动设备上的网络流量有了爆炸性的增长,平均每两年翻一番。显而易见的,视频流量占据着移动网络流量的主要比例,越来越多的人选择使用移动设备来观看视频。从2015年到2020年,移动端的网络流量将激增5倍,而视频流量占比将从50%增长到75%,与之相伴的,是用户对视频体验的更高需求。其中包括更高的视频分辨率、更低的视频载入延迟和更灵敏的视频交互反应速度等等,这些需求相应的对移动网络带宽的要求也会更高。增长的需求让流媒体传输技术也产生了变革,传统的实时流传输协议,对内容分发网络支持不够友好,取而代之的是基于HTTP的动态自适应流媒体协议(DASH)。自适应流媒体协议,在移动网络中有着优越的性能表现,可以适应多元化的移动设备和多元的异构移动网络,自动切换合适的码率,充分提高了网络带宽的利用率,并保障用户体验。
移动设备逐渐配备越来越多的无线网络接口,例如Cellular (蜂窝网络)、Wi-Fi (IEEE 802.1无线网络)、Bluetooth (蓝牙)和NFC (近距离无线通讯技术)等等。带宽聚合技术,是通过聚合多重网络链路的带宽,来为一个应用出口服务。如果将带宽聚合技术,应用到DASH传输中,便能提高用户的观看体验。本文提出了一个设备到设备(D2D)的协作式自适应流媒体传输框架,将结合蜂窝网络和Wi-Fi自组网络,让设备可以充分利用邻近设备闲置的网络带宽能力来下载和分享视频,并且跟现有的自适应流媒体协议(DASH)无缝结合在一起,使之可以兼容通用的DASH标准。设备终端通过Wi-Fi自组网络,连接成集群,集群的节点通过蜂窝网络从服务器下载视频切片,节点之间通过D2D自组网络传递消息和转发视频数据。它们通过集群QoE感知的方式,以提高设备集群的带宽利用率、缓存状况和能耗状况为目标,进行视频协作分发和下载。该框架不仅支持现有的DASH协议,并比其他协作方式兼容更多节点,可以实现多对多的协作传输,使群组用户有更好的观看体验(图1)。
2. 相关工作
在2015年的网络流量报告中,我们发现视频流量占据了网络数据流量的主要成分,已经超过了55%。而如今用户似乎更加习惯于在手机、平板电脑等移动设备上观看视频,视频流量在移动设备上的占比也超过了传统PC和电视。传统的实时流传输协议(Real Time Streaming Protocol, RTSP)难以满足新的移动网络的需求。如今内容分发网络(Content Delivery Networks, CDN)逐渐取代了传统服务器的网络架构,而RTSP协议由于使用TCP或UDP来传输数据,会产生难以穿透防火墙,占用过多的会话缓存开销,以及

Figure 1. D2D collaborative adaptive streaming media scene
图1. D2D协作式自适应流媒体场景示意图
需要铺设复杂的服务端系统等问题,导致难以兼容CDN网络 [1] 。而基于HTTP的分段式传输,则在CDN网络中如鱼得水,大大降低了视频内容部署的成本,并提高了传输效率。一种新型的,对移动设备友好的动态自适应流媒体技术(DASH)在商业应用中渐渐发展起来 [2] 。
其中流行的DASH协议包括:苹果公司发布的HLS (HTTP Live Streaming)技术,Adobe公司发布的HDS (HTTP Dynamic Streaming)和微软公司发布的Smooth Streaming。虽然这三家技术的核心原理相同,但都互不兼容。在2011年2月,MPEG和3GP发布了第一份公开的自适应码率协议MPEG-DASH。MPEG-DASH协议是基于HTTP的视频分段式传输协议,它支持视频按小段的时长分段,每个分段都具有不同码率的版本,并用一个索引文件MPD描述完整的分段信息。MPEG-DASH是客户端驱动的协议,它通过HTTP请求去获得视频索引文件和具体的视频数据文件。
DASH技术的核心部分,就是基于用户体验值(Quality of Experience, QoE)感应的反馈机制。QoE是衡量用户主观感受的度量值,在工业应用中难以测量。实际应用中,往往将其转化为可测量的QoS指标 [3] ,例如启动时延、卡顿总时延、功耗值以及码率自适应的变化等等 [4] 。客户端则将缓存时长、平均码率、观看时长和点击次数反馈给服务器,用于验证QoE的结果。基于QoE预测的DASH技术,能比传统流媒体技术提高20%的用户体验分数 [5] 。
现有的测试工作,分别对Smooth Streaming、HDS、HLS和MPEG-DASH等协议作了性能分析,检验客户端播放器分别对长时间和短时间的网络变化产生什么样的应变,是否可以快速地调整到当前网络带宽所能容忍的最高码率。其中Smooth Streaming表现优异,它播放平稳很少有剧烈的切换,而且对内存的消耗小,但是对短时间的网络变化反应不够灵敏,卡顿时间较长 [6] 。而当多个播放器共享同一个网络节点,产生TCP竞争时,Smooth Streaming表现平稳,而另一个播放器OSMF抖动剧烈 [7] 。针对大量的视频数据研究,得到一个有用的经验是,一定范围内,视频分段的长度越小,效果越佳 [8] 。这些研究对DASH的设计都能带来很好的帮助。
对于码率自适应算法的反馈机制,一直以来业界缺乏一个清晰的认识和统一的标准:哪个优化目标才是该机制所应该优先考虑的,哪个信号变量(预估的网络吞吐率,当前的缓存级别)才是控制回路中核心的参考信号;信号变量的影响权重应该是多少,反馈的灵敏度如何设置?围绕这个脉络,最初的码率切换算法都以网络带宽预测值作为信号变量。带宽预测是一个难点,传统的方法是分析TCP传输的回路时间(Round Trip Time,RTT)和丢包率来进行预测。可是这种方法在短时间内多变的无线网络环境下十分不准确,反而基于历史HTTP文件下载速率来预测带宽,对于DASH系统更加适用 [9] 。可是将带宽预测值作为反馈信号,码率的切换会剧烈抖动,因为TCP传输链路容量是多变的。实际上DASH中都有缓存,缓存可以有效缓解网络容量抖动,基于缓存感知的预测方法会比带宽预测更加鲁邦。只在启动的时候进行简单的带宽预测,其它时刻基于缓存感知来切换码率,会减少10%~20%的卡顿延迟 [10] 。
3. 去中心化协作传输
3.1. 自适应码率选择策略
假设现在节点
存在宽裕的蜂窝网络资源,在时间
内,可以给自组网内的其它节点集合
协作传输流媒体
。
对于
(总数为
),只要分配的切片数确定了,相应的码率也会一致。那么所有的最优码率分布可以表示为

其中
表示
对于节点
的方案向量,
表示给节点
分配
个切片时,所选择的码率。如何选择码率,从而保证相应节点的效益之和最高是本章节所考虑的内容。相应的节点的效益之和表现为视频质量的收益,码率切换的损失,以及能耗开销的线性叠加 [3] 。可以得到下面的最优化方程。

3.2. 迭代增益分配算法
节点
给自组网内的其它节点集合
分配自己的闲置资源,具体表现为将空闲的时长按一定比例分配给各个节点,并保证总体收益最高。最优资源分配的解可以通过迭代法而得,因为上一章的码率效益增量矩阵符合非递减特性。本章节的迭代法的基本思想是每一步多分配一个基本的资源,保证每一步的解都是当前最优,类似于贪心策略,到最后所有资源都分配出去得到的解便是最优解。具体来说,先初始化资源分配向量为空,即当前没有节点获得资源。然后分配第一个切片,遍历所有的节点,计算假设该节点多分配了此切片,带来的增益是多少,选择最大增益的节点,把该切片分配给它;然后分配第二个切片,以此类推,直到空闲的切片资源分配完毕,即可得整体QoE最优的分配方案。

4. 系统设计与实现
自组网D2D协作流媒体系统主要是流媒体系统中嵌入D2D协作传输控制来实现的。如图2所示,一个完整的流媒体系统,主要由网络数据传输模块和播放器模块两大块构成。播放器由视频缓存队列,编解码器和控制器组成;数据协助传输模块主要是对控制消息和数据转发两部分进行调度,由一个总的调度器来完成;底层的网络环境是Wi-Fi网络和蜂窝网络的混合网络,分别对应两个网络接口。数据传
图2. 系统框架结构示意图
输模块控制着网络的视频下载和协作调度,跟播放器的信息交换主要通过共享缓存队列来实现,缓存队列可以估算当前的网络带宽,是数据传输模块中QoE感知算法的重要的信号器。播放器不会与调度器直接交互,播放器只会读取缓存队列来进行编解码以及播放,这样的实现减少了耦合,并提高了效率。
消息控制流程如图3所示。真实系统设计中,节点与节点之间的发现需要依靠UDP广播协议实现。而每一次的资源分配,需要一次等待周期,在该时间内,执行闲置资源的通知,以及受助节点的资源分配算法。在交换控制消息等过程中,为了网络传输的稳定性,应用UDP传输协议以及校验机制来实现。
5. 实验结果与性能评估
5.1. 实验方法
本文在树莓派平台上实现了D2D协作式DASH系统,通过4G网络来与外网视频服务器通信,应用UDP协议来实现组内的Wi-Fi控制消息通信,以及视频数据转发。当关闭了Wi-Fi网络时,系统便退化为非协作式系统。通过控制设备节点的数目,以及设备节点的4G带宽,便可以评估在不同场景下,整体性能的表现。
5.2. 协作式与非协作式传输对比
实验结果表明,在带宽受限或者带宽充裕的情况下协作式系统的性能有明显的提高。因为在带宽分布不均匀的时候,带宽受限的节点的用户体验值十分的低,而带宽充裕的节点也会浪费掉部分的网络资源,但是在协作式传输中,这样的不公平性得以缓解。从图中我们可以看到,虽然QoE随着网络带宽的增加逐渐增长,但是带宽越高,QoE的增长速度也越慢,因为网络带宽已经可以满足移动设备对高清视频码率的最高需求,后面的增长空间不足。因此,当集群流媒体传输系统的公平性得到保障时,网络带宽的利用率也会越高,用户的平均体验也会随之上升。协作式系统要比非协作式系统的性能更加优异,平均QoE可以增长20%左右(图4)。
5.3. 系统稳定性
本文选取了4个设备节点的场景,记录了带宽分布不均匀时,系统的性能表现。C和D蜂窝网络带宽较低的用户,只依靠自身的网络,他们无法观看高码率的视频;此时A和B节点的蜂窝网络带宽充裕

Figure 3. Controlling and data forwarding protocol message
图3. 消息控制与数据转发协议

Figure 4. Collaborative transmission compared with non cooperative transmission
图4. 协作式传输与非协作式传输对比
且闲置。在整个协作流媒体过程,C和D通过自己的蜂窝网络下载切片的比例,比A和B帮助他们下载的比例要低。在A和B的协助下,C和D可以观看他们自身带宽无法支持的码率,这证明了在带宽分布多样化的网络中,协作式传输系统可以保障各个节点的性能表现(图5)。
本文还对断网的场景进行了测量,节点B经历了50秒到230秒的断网过程,此间没有断网的节点A,分享了自己的网络带宽给节点B,让B可以流畅地播放下去。虽然A的视频码率也因此而下降,但是码率下降的影响跟视频卡顿的影响相比是十分小的,所以总的用户体验得到了提升。这证明了,集群协作传输可以有效提高整体网络的QoE鲁棒性(图6)。

Figure 5. Limited bandwidth node in the collaborative system performance
图5. 带宽受限节点在协作式系统中的表现

Figure 6. The influence of network disturbance on the collaborative system
图6. 网络干扰对协作式系统的影响
6. 结论
本文提出了一个基于QoE感知的D2D协作式自适应流媒体框架。该框架将D2D对等集群带宽聚合技术,嵌入通用的DASH机制当中,其本质是应用Wi-Fi等短程无线自组网络,补充蜂窝网络的带宽短缺改善网络质量,有效缓解了移动网络的带宽瓶颈,并提高了用户的观看体验。本文对自适应流媒体的基于集群QoE的码率选择算法和资源分配算法进行优化。在UNIX系统上实现了通用的D2D协作式DASH系统,并在搭建的D2D自组网络树莓派平台上验证了该系统的可行性。经过该实际系统的评估实验,对比了与其他流媒体系统的性能差异,证明了该系统可以有效提高移动数据网络的利用率。该系统兼容通用的DASH协议,不仅支持直播系统,也支持点播系统,拥有去中心的对等协作机制,具备更强的可拓展性,对自适应流媒体传输等研究方向具有较大的参考价值。未来的研究可以结合可伸缩的视频编码技术,进一步提高视频传输效率。