现在的位置: 首页 > 综合 > 正文

流媒体代理缓存技术研究

2012年05月27日 ⁄ 综合 ⁄ 共 4568字 ⁄ 字号 评论关闭

这篇文章是一篇综述性的文章。对IPTV的缓存设计,还是有一定的提示作用。

流媒体代理缓存技术研究

标准版

(信息科学与技术学院,2002(4),00263146)

[  ] 随着流媒体技术在互联网上的广泛应用,原有用于加速Web内容分发的代理缓存技术也被应用于流媒体内容分发领域。然而,由于流媒体对象的一些独特特点,需要在传统Web缓存技术的基础上提出适用于流媒体对象的缓存技术。本丈分析了基于代理缓存的流媒体分发中的关键问题和技术挑战,对现有的各种流媒体缓存方案进行了综述、分类和比较,最后对流媒体代理缓存的未来发展方向进行了展望。

[关键词] 流媒体 代理缓存 Web内容分发

1 引言



1 部署代理缓存的网络体系结构

近年来,随着多媒体点播应用的日益普及,多媒体内容的传输占用了当前Internet上的大部分流量,导致骨干带宽紧张和用户接入时延增加。代理缓存正是缓解这一矛盾的有效技术手段。该技术通过将代理服务器部署在网络边缘靠近客户的地方,对热点对象进行缓存,使后续的视频流媒体请求由缓存提供服务来达到减轻骨干网络和服务器负载,提高用户服务质量的目的。具体网络拓扑如图1所示。

 

 

 

 

 

 

代理缓存技术最初是用在Web内容的分发上。然而研究发现,流媒体内容在多个方面呈现出与普通Web内容不同的特征。第一,流媒体需要占用比普通Web内容更大的存储空间,如果对流媒体对象进行类似于Web一样的整体缓存,少数视频流媒体对象就可以消耗掉所有的缓存容量,将大大降低缓存的利用率和命中率。第二,流媒体的分发需要在一段时间持续占用巨大的磁盘I/O带宽和网络带宽,以网络为主要研究场景时降低带宽的消耗成为主要考虑的技术目标之一。第三,用户通常会在流媒体播放过程中进行交互式操作,可能导致同一个会话中的流接入速率在不同时刻有所不同,对缓存的管理带来困难。第四,与无播放质量要求的传统Web内容不同,用户对于流媒体内容有一定的播放质量(如响应时延、画面抖动)需求,需要对从代理服务器播放的视频流和从媒体服务器播放的视频流采用一定的调度策略。

    如何针对流媒体对象的特点研制新型缓存机制,是目前多媒体分发技术发展所迫切需要解决的问题。本文对近年来提出的流媒体代理缓存技术的各类方法进行了全面综述和分析。后文组织如下:第2节对现有的代理缓存技术进行综述,第3节对各种算法进行分类分析和比较,最后对代理缓存技术的发展趋势进行展望。

2 几种典型的流媒体缓存算法

2.1选择缓存算法

2.1.1 选择缓存算法

在用户接入带宽资源有限的情况下,保证正常的媒体播放速率成为媒体缓存算法的主要设计目标。有一类缓存算法,根据带宽情况对影响媒体播放的关键数据或者内容有选择地缓存,我们把这类缓存算法称为选择缓存算法(Selective Caching)

Miao等人以保证正常媒体播放为前提,在考虑磁盘容量的约束条件下,提出了两种媒体数据帧选取缓存算法(Frame-Selected Caching)[1],分别针对骨干链路有无QoS保证时的情形。当骨干链路有QoS保证时,帧选取的原则是使得骨干链路的带宽需求和客户端播放缓存需求最小;当骨干链路无QoS保证时,帧选取的原则是使得代理缓存可以为客户端播放缓存提供尽可能多的帧,以提高网络拥塞时媒体播放的鲁棒性。

同样以降低骨干链路带宽需求为目标,Zhang提出不以媒体数据帧为缓存对象,而以部分超速率数据为对象的速率分段缓存算法(Rate-Staged Caching)[2]。该算法针对VBR流式传输,对高于指定数据传输阈值的媒体数据部分进行缓存。类比于时域上的前缀缓存,速率分段缓存算法也存在如何选取截断速率的问题。文[2]的研究表明,在磁盘容量和网络带宽两个约束下,确定优化的速率是一个背包问题。

2.2基于间隔的缓存算法

用户请求具有高度时域邻近性(Temporal locality)的情况下,对同一媒体对象的两个连续播放请求的间隔内容做缓存,可以显著降低服务器的吞吐量。该类缓存算法称为基于间隔的缓存(Interval Caching),最初的思想由Dan提出[3]。当存在对媒体对象相同部分的两个连续请求时,则连续请求的间隔部分将随着播放过程被缓存。该算法目前已经有多种衍生版本,最具代表性的是Tewari提出的基于资源的缓存(Resource Based CachingRBC)算法[4]RBC算法以每个媒体对象对缓存空间和传输带宽的需求为约束条件,提出了一种启发式的算法选择媒体对象的缓存粒度进行选择,其粒度可以是一个滑动间隔、一系列邻近间隔的组合([4]称为游程,run),甚至是完整的媒体对象。

2.3基于分段的缓存

基于间隔的缓存算法,其有效性依赖于用户请求在时域上的有效性。当到来请求的时间间隔较长时,其性能有可能退化到全对象缓存。为此,研究人员开始考虑选取部分的媒体关键内容进行缓存,例如由Sen等提出的前缀缓存(Prefix Caching)[5],是将媒体内容分成前缀(Prefix)和后缀(Suffix)两个片段部分,并且优先缓存前缀。前缀缓存可以有效地降低用户播放媒体对象时的启动时延,是目前应用较为广泛的流媒体缓存技术。其不足之处在于媒体前缀部分的长度不容易确定。Jin等人的研究[8]表明,在有限的网络资源的约束下,为达到指定的启动时延的前缀缓存,其部署是一个部分背包问题(Fractional Knapsack)

更为普遍的方式是将媒体内容分为多个片段,即基于分段的缓存(Segment based Caching ,以下简称分段缓存)。分段缓存将媒体内容沿着播放时间分成多个片段(Segment),并将片段作为存储和置换的基本单元。分段策略是分段缓存的主要研究热点,依据它可以将分段缓存算法分成等长划分和变长划分两类。变长划分算法的代表是Wu等人[6]提出的片段长度以指数增长的缓存算法策略,这类策略设基本的存储单位为块(block),则第i个片段由第2i-12i-1+12i-1块构成,片段长度为2i-1个块。由于可以通过一次性丢弃较大的后续片段,来适应缓存流行度的变化,该算法可以取得比普通的前缀缓存更低的平均启动时延和更高的字节命中率。在等长划分算法中,片段长度的选择是关键,文[7]提出基于媒体的受访特性确定等分片段的长度,可以获得比指数分段缓存或者前缀缓存更低的网络带宽占用[8]。分段缓存算法可以提供较为精细的缓存粒度,带来更多的灵活性,成为目前主流的代理服务器缓存算法之一。

2.4结合编码转换的缓存算法

然而,随着网络使用的普遍化,用户接入网络呈现出多样化的发展趋势,用户的终端环境、接入带宽以及允许获得的服务质量各不相同,因此请求的视频质量也可能各不相同。为了适应接入网络带宽的不同需求,需要根据用户的请求和带宽状况,动态地改变缓存内容质量和传输速率。结合编码转换技术,其缓存算法可以利用向不同用户提供不同版本的媒体内容来满足不同用户的需求,有两种简单方案:(1)缓存媒体的完整版本(Full Version OnlyFVO),每次根据用户请求由代理服务器进行编码转换。这种方式对代理服务器的CPU资源提出了很高的要求,无法很好地为不同的网络用户服务。(2)仅缓存经过编码转换后的流媒体(Transcoded Version OnlyTVO),编码转换预先由媒体服务器完成。这样的存储方式难以满足所有用户对流媒体质量的不同要求,而且会对网络带宽带来较大压力。

为了解决这两种方案之间的矛盾,Xueyan Tang等人提出了一种自适应的缓存方式[9]。该算法根据代理服务器CPU资源和网络带宽资源的状况,动态地决定是缓存原始版本还是缓存编码转换后的版本。这种方法的缺点在于可能会对同一个视频对象缓存多个版本,对缓存空间提出了较高的要求。

Masahirok[10]等人则建议只为每个媒体对象缓存所得到的最高质量的版本,但是代理服务器可以灵活地采用最大申请(根据网络带宽)、平均申请(根据一段时间内用户申请质量的最大值与网络带宽比较,取较小值)和等同申请(按照用户请求的质量申请)三种不同的策略向媒体服务器请求所需内容。这种算法在缓存空间受限的情况下对缓存效率改善明显。然而,由于代理缓存可向服务器申请不同质量的流媒体版本,媒体服务器仍然必须为此承担编码的负载。

为了降低媒体服务器的编码负担,Bo Shen等人[11]提出了一种可编码转换的缓存系统,采用降低比特速率(bit-rate reduction)和降低空间分辨率(spatial resolution reduction)两种编码转换技术在网络边缘完成质量自适应。根据缓存版本数量和缓存命中后的行为,文献提出了TEC-11TEC-12TEC-2三种缓存策略。TEC-1lTEC-12都只会对同一个缓存对象存储一个版本,不同的是TE-11总是缓存最高质量的,TEC-12总是缓存最低质量的,而TEC-2则会为同一个缓存对象存储多个版本。

随着编码理论和信号处理技术的发展,编码转换技术几乎可以达到实时的效果[20],大大增加了此类技术的实用性。

2.5结合可扩展编码的缓存算法

结合可扩展编码的缓存算法同结合编码转换技术的缓存、算法一样,可以很好地满足不同接入速率要求,但是它利用的是缓存对象采用的可扩展编码的属性。可扩展编码通常也称为分层编码,采用分层的比特流结构对媒体数据进行压缩。第l层称为基本层,可以被独立解码;其余层称为增强层,其解码依赖于基本层;获得的数据层次越多,解码出来的质量越高,所占用的带宽也越大[12]。结合可扩展编码的缓存技术的主要思路是通过向不同的客户提供编码数据的不同层次子集来达到质量白适应。

Jussi Kangasharju首先提出了以层为单位Revenue缓存算法[13]。该算法以网络带宽和缓存空间为约束,以总体缓存受益为优化目标,将层次作为基本粒度,一旦满足条件,视频对象的一层都将整体被缓存。缓存层次的选择建模为一个随机背包问题,采用启发式算法来决定为每个视频选择什么数量的缓存层次。该算法充分考虑了约束条件对缓存效率的影响,但是其以整层作为缓存粒度不够精细,缓存空间的利用率有待提高。

Reza Rejaie等人则将每一层划分为等长片段[14],当缓存内容的质量高于用户的请求(即所缓存的层数高于用户请求的层数)时,代理服务缓存只需要向媒体服务器预取那些同层次或低层次缺失的片段数据。反之,如果缓存内容的质量低于用户的请求,则代理服务器缓存还需要对缺失的高层次数据进行预取。

Stefan Podlipnig等人[15]进一步改进了可扩展编码算法中的置换策略部分,提出了一个新的性能评价指标——质量权重命中率,用来衡量请求命中率与缓存质量之间的平衡程度。并在原有水平和垂直的置换策略的基础上,提出了改进的垂直与水平相结合的置换策略,如图2所示。

实验发现,垂直与水平相结合的置换策略可以在改善字节命中率(byte-hit-rateBHR)与提高质量命中率(quality-hit-rateQHIT)之间取得较好的平衡且有良好的适应性。

M.Zink等人则对可扩展编码缓存算法中的预取算法进行了研究,提出一种无窗口大小


2 置换策略[15]

<

【上篇】
【下篇】

抱歉!评论已关闭.