软件学报
JOURNAL OF SOFTWARE
1999年 第1期 No.1 1999



视频点播服务器中服务策略的研究*
刘衡竹　陈旭灿　陈福接
　　摘要　研讨了同时为多个点播用户服务的轮转服务策略和比例服务策略,并提出了VOD(video-on-demand)服务器在不破坏各路点播流实时播放率的前提下,应用这些服务策略的方法.
　　关键词　轮转服务策略,比例服务策略,视频点播,视频流,数据分布.
　　中图法分类号　TP391
Study of Servicing Policies in Video-on-Demand Server 
LIU Heng-zhu　CHEN Xu-can　CHEN Fu-jie 
　　Abstract　The round robin servicing policies and the proportional servicing policies which can simultaneously serve for the multiple subscribers of a VOD (video-on-demand) server are studied in this paper. And how to use these policies without violating the real-time playback rates of the subscribers of a VOD server is also proposed.
　　Key words　Round robin servicing policy, proportional servicing policy, video-on-demand, video stream, data placement.
　　中图法分类号　TP391
　　飞速发展的计算机和网络技术已经使中、大规模的VOD(video-on-demand)系统成为可能.［1,2］目前已有一些系统问世,但这些系统为了保证一定数目的并发点播流,都预留了大量的设备资源,这须以较高的系统成本为代价.为了降低VOD系统的成本,使它真正走向实用,必须对视频服务器、网络传输、机顶盒等几个方面的一些支撑技术问题进行较深入的研究,使预留的设备资源尽量多地被应用起来.基于这种需要,本文对服务时间的优化技术进行了研究,在保证每路流严格按其播放率所要求的速度来读取的同时,为尽量多的点播用户提供VOD服务.本文在对VOD系统的视频服务器设计进行量化分析的基础上,讨论了同时为多个点播用户服务的轮转策略（在一个服务循环中［3］,每路流读取的数据块数一样多）,提出了比例服务策略（在一个服务循环中,读出的视频流的数据块数与视频流的播放帧率成正比）,在保证视频播放率的前提下,证明了比例服务策略是一种能同时为最多用户提供服务的策略.
　　本文第1节讨论了保证多路流实时播放的约束条件;第2节讨论了轮转服务策略和比例服务策略,且证明了比例服务策略是一种能支持最多并发流的服务策略;第3节是实验结果,对轮转服务策略和比例服务策略的性能进行了比较.
1　保证多条点播流连续播放的约束条件
　　本文主要研究服务时间的优化技术,在保证每条流严格按其播放率所要求的速度来读取的同时,为尽量多的点播用户提供VOD服务.为了较精确地表示这些要求,假设视频服务器正在为n个点播用户提供服务,对应的n路点播流为S1,S2,...,Sn.由于等位率MPEG(moving picture experts group)视频流便于控制,带宽分配和平滑策略都较变位率视频流要简单,故在VOD系统的开发和研制中用得很多.我们在讨论和实验中,主要针对恒位率流,且假定在压缩过程中,做到每一个GoP(group of picture)包括同样多的帧,在存储分布过程中选择一个GoP为一块,在磁盘上存储,显然这是一种CTL［4］（constant time length）数据分布方法的变型（对于具有相同播放帧率的视频流是按CTL存储的）.本文所得出的结论稍加修改,同样适合于变位率流.对于压缩的等位率视频流（例如,等位率MPEG流）,让Bframe(1),Bframe(2),...,Bframe(n)分别为各路流每块数据对应的帧数,根据前面的假设,它们都应相同,就记为Bframe,单位为：帧/块；Sframe(1),Sframe(2),...,Sframe(n)分别为各路流每块数据中平均每帧的大小（因为针对恒位率流,所以通过插入填充位或者填充字节可以做到同一路流每块数据中平均每帧的大小相同）,单位为：字节/帧；Rpl(1),Rpl(2),...,Rpl(n)分别为各路流的播放帧率,单位为：帧/秒.这些参数一般因各路视频流的压缩方法、视频制式和图像质量等的不同而不同.从宏观上看,视频服务器同时为n路流提供播放,实际上是通过分时服务完成的,为流Si传输Ki块数据后,切换到为流Si+1提供Ki+1块数据传输.传输序列K1,K2,...,Kn构成了一个服务循环.服务器重复这个服务循环,直至n路流所需的数据全部播送完成为止.
　　从一路流切换到另一路流,需把磁头从前面的数据块移到另一路流的数据块的开始处,这一过程所需的时间小于盘的最大寻址时间＋磁盘旋转一周所需的最大时间.在此,我们不妨假设一条磁道上至少可存储1个数据块,则在这段时间里,肯定可以读出第1块数据.这样,在服务周期中,读取流Si的Ki块数据所需的时间由两部分组成.
　　(1) 额外开销加上传输第1块数据所用的时间T1(i)．因为磁盘寻址时间≤,磁盘旋转一周所用的时间≤,所以有T1(i)≤;
　　(2) 传输Ki－1块数据所需的时间T2(i).
 
其中Rdr为磁盘数据传输带宽,单位为：字节/秒.
　　为流Si读取Ki块数据所需的时间为T(i)=T1(i)＋T2(i),一个服务循环所用的时间为
 
要满足n路流都能严格按照它们各自播放率的要求来读取,必须满足一个服务循环周期要比n路流中播放率最高的流Si播放Ki块数据所用的时间小,即
　　　　　(1) 
因为式（1）包括n个参数k1,k2,...,kn,要确定ki则必须有另外的条件.
2　服务策略
2.1　轮转服务策略
　　轮转服务策略：在一个服务循环中每路流都读取相同块数据,即k1=k2=...=kn=k.
　　这时,式（1）变为
 
其中可推导出
　　　　　　　　　　　　　　　　　(2) 
任何流Si的一个块都能在时间内读出,
故　　　　　　　　　　　　
又因为k≥0,所以
 
令nrmax为轮转服务策略能支持的最多点播用户数,则有
　　　　　　　　　　　　(3) 
由式（3）可以看出,用轮转服务策略服务器同时为点播用户提供服务的个数受播放率最快的那个用户所限制,这时得出的最大用户数nrmax通过稍加改进服务策略就可得以增加.这是因为,播放最快的用户在一个服务循环中所读出的数据正好够它播放一个服务循环的时间,而其他用户所读出的数据超过了它在一个服务循环中所能播完的数据,因此,可以减少这些用户的数据传输,而为更多的用户提供服务.
　　下面,我们提出一种在一个服务循环中一路流所读出的数据块数与它的播放帧率成正比的服务策略,不妨简称为比例服务策略.然后,我们证明它是一种能同时为最多用户提供服务的策略.
2.2　比例服务策略
　　比例服务策略：在每个服务循环中,为每路流读取的数据块数与该流的播放帧率成正比,即
i∈［1,n］　　　ki∝Rpl(i). 
　　让c为比例常数,则
k1=c.Rpl(1),k2=c.Rpl(2),...,kn=c.Rpl(n). 
　　这时,式（1）变成
　　（4） 
因为所讨论的是恒位率流,显然当Rpl(i)增大时,Sframe(i)减小;当Rpl(i)减小时,Sframe(i)增大,所以,可以得出
　　　　　　(5) 
其中　　　　　　　　　
由式（4）、（5）可得出
　　　　　　　　　　(6)
　　　　　(7) 
令npmax为轮转服务策略能支持的最多点播用户数,则有 
　　　　　　　　　　　　　　　(8) 
　　如果给定同时提供点播服务的用户数n≤npmax,可由式(6)求出c,因此就可以求出在一个服务循环中每路流需读出的数据块数,ki=c.Rpl(i),i=1,2,...,n.由ki可进一步对缓冲空间提出要求,以保证连续播放.
　　在以上的讨论中,我们一直假设数据从盘上读出都是以块为单位的,每块包含整数个帧,因为视频帧的大小在帧与帧之间都是变化的,这要求上述从盘上读取的块大小是可变的.在从盘上读出数据的单位块大小是固定的情况下,这时是一种CDL存储分布［4］（constant data length）,那么,一个盘块数据不一定刚好包括整数个帧,因此,盘块边界和帧的边界不可能总是耦合的,在这种情况下,同时为n个点播用户提供服务,可以根据播放位率（而不是像式（1）那样根据播放帧率）来建立约束公式.这样可得出
　　　　　(9) 
D为一个盘块大小,Rbr（i）为第i个点播用户所需要的传输位率（如果为MPEG流,在流参数中有指示）.这时要求出最多可同时为多少点播用户提供服务,可按如下方法来计算.
　　在一个服务循环中每路流所需传输的数据块数与播放该流所要求的传输位率成正比.即 i∈［1,n］,ki∝Rbr(i),如果c为比例常数,则ki=c.Rbr（i）,i=1,2,...,n,把它们代入式（9）可求得
　　　　　　　　　　　　　(10)
　　　　　　　　　　　　　　　　　(11) 
如果应用轮转服务策略,可求出
　　　　　　　　　　　　(12)
　　　　　　　　　　　　　　(13) 
2.3　比例服务策略是一种能同时为最多用户提供服务的策略的证明
　　一般比例服务策略可同时提供点播服务的个数比轮转服务策略能同时提供的服务个数要多,这可由下式明显看出.比例服务策略最多同时能提供的服务个数为npmax,轮转服务策略最多同时能提供的服务个数为nrmax,
 
各路流演播帧率（或传输位率）相差很大时,这个比值也就较大.我们可以证明比例服务策略是一种能同时为最多用户提供服务的策略,证明过程见如下命题.
　　命题1. 在保证各路流都能按它们各自的播放帧率要求读取的前提下,比例服务策略能支持最多路独立并发流的演播（即,比例服务策略是一种能同时为最多用户提供服务的策略）.
　　证明：不失一般性,不妨设Rpl(1)≥Rpl(2)≥...≥Rpl(i).这样可以得出
Rpl(1)=a2.Rpl(2)=...=ai.Rpl(i),　　　a1=1. 
如果有一种服务策略,在保证各路流都能按它们各自播放帧率要求读取的前提下,它能同时提供最多点播服务个数,不妨设服务个数为n,在某个服务循环中,第i路流读出的数据块数为k′i,因为该策略能保证各路流都按它们各自播放帧率要求读取,所以k′1,k′2,...,k′n应该满足方程（1）.
　　这时,只要我们能够找到分别与播放帧率Rpl(i) 成正比的ki（其中i=1,2,...,n）,使得
k1=a2.k2=a3.k3=...=an.kn（即a1=1）也满足式（1）,且比例因子,这样就证明了：在每个服务循环中每路流分别读取k1,k2,...,kn块数据的比例服务策略,在保证各路流按点播帧率读取的前提下,也能同时为n个点播用户提供服务.这也说明了：在保证各路流按点播帧率读取的前提下,比例服务策略不比任何其他服务策略最多能提供的服务流数少.故命题成立.下面的主要问题是,如何寻找k1,k2,...,kn.
让　　　　　
显然有　　　　　　　　　　　
增加k′m1到km1,使得am1.km1=am2.k′m2,这时可得出 
 
即,这时在一个服务循环中,流m1和m2分别读取km1和k′m2块数据,如果这时式（1）仍然成立的话,那么,这两路流的读取就符合一种比例服务策略,且能保证各路流按点播帧率读取.现在来证明,把k′m1块提高到km1块后,不会使式（1）成立的条件受到破坏.
　　式（1）的右手端：
 
我们可以构造如下函数
 
　　为了保证流Si能按播放率Rpl(i)连续播放,必须要求读取一块数据所用的时间小于或等于一块数据能播放的时间,
故有　　　　　　　　　
所以　　　　　　
即f(k1,k2,...,kn)是ki的递增数,i=1,2,...,n.
　　因为k′1,k′2,...,k′n满足式（1）,所以,f(k′1,k′2,...,k′n)≥0,
　　因为km1≥k′m1,故有
f(k′1,k′2,...,km1,...,k′n)≥f(k′1,k′2,...,k′m1,...,k′n)≥0, 
即k′1,k′2,...,km1,...,k′n满足式（1）.
　　因此,当k′m1增加到km1时,不会破坏式（1）的成立.
　　我们用Mprop表示那些在一个服务循环中视频流回取的数据块数与该播放的帧率成比例的那些视频流的集合.这样,Mprop={m1,m2}.只要｜Mprop｜＜n,就说明还有一些流不在集合Mprop中.
让　　　　　　　　　　
增加Mprop集合中流对应的km1,km2,...,使得这样,增加kmi同样满足式（1）,证明过程与以上步骤相同,然后,令Mprop=Mprop∪{m},这一过程一直进行下去,直到｜Mprop｜=n.这时,k1=a2.k2=a3.k3=...=an.kn,且k1,k2,...,kn满足式（1）.　　　　　　　　　□ 
3　实验结果
　　针对以上所讨论的服务策略,在我们构筑的VOD开发平台上,做了一些实验,对服务策略进行了一些模拟,对性能进行了初步评估,我们所用系统的数据传输率为100MB/s.我们对PAL制式和NTSC制式的影片按MPEG-1进行了压缩,并且每个GoP有10帧,I帧,P帧,B帧的演播次序为IBBPBBPBBP,每个GoP为一个存储块,所得的限制参数压缩视频流特性分别为：
　　PAL制式：视频流传输位率为：180000字节/s　　　播放帧率为：25帧/s
　　　　　　I帧平均每帧为：21000字节　　　　　　P帧平均每帧为：11000字节
　　　　　　B帧平均每帧为：3000字　　　　　　　节平均每个GoP：72000字节
　　NTSC制式：视频流传输位率为：180000字节/s　　播放帧率为：30帧/s
　　　　　　　I帧平均每帧为：18000字节P帧　　　平均每帧为：9500字节
　　　　　　　B帧平均每帧为：2250字节　　　　　平均每个GoP：60000字节
　　在一个服务循环中,当点播流由以上两种类型流构成时,轮转服务策略最多能支持多达485路流的播放,而比例服务策略最多能支持582路流的播放.在不增加任何硬件资源的前提下,把系统的效率大约提高了20%,这是十分可观的.
本文研究得到国防预研基金资助。
作者介绍：刘衡竹,1963年生,副研究员,主要研究领域为分布式多媒体。
　　　　　陈旭灿,1966年生,女,讲师,主要研究领域为并行技术.
　　　　　陈福接,1935年生,教授,博士生导师,主要研究领域为大规模并行、存储技术,分布式多媒体.
本文通讯联系人：刘衡竹,长沙 410073,长沙工学院计算机科学系617研究室
作者单位：刘衡竹　陈旭灿　陈福接　长沙工学院计算机科学系　长沙　410073
E-mail: hzhliu@nudt.edu.cn
参考文献
　［1］Rangan P V, Vin H M, Ramanathan S. Designing a multiuser multimedia on-demand service. IEEE Communications, 1992,30(7):56～65
　［2］Sincoskie W D. System architecture for a large scale video on demand service. Computer Networks and ISDN System, 1991,22(2):155～162
　［3］Vin H M, Rngan P V. Designing a multi-user HDTV storage server. IEEE Journal on Selected Areas in Communi
cations, 1993,11(1):153～164
　［4］Edward Te Chang. Storage and retrieval of compressed video ［Dissertation]. Berkeley, California: University of California, 1996
本文1997-07-18收到原稿,1998-01-23收到修改稿 
