一种用于数字视频广播传输网络的均匀复用方法

文档序号:8005484阅读:515来源:国知局
专利名称:一种用于数字视频广播传输网络的均匀复用方法
技术领域
本发明涉及通信技术领域,特别是一种用于MPEG-2/DVB传输网络的均匀复用方法,尤其是用于支持DVB网络及IP与DVB互连网络中传输流的复用。
背景领域数字视频广播标准DVB(Digital Video Broadcast)是一个关于数字电视的通用国际标准。DVB标准以MPEG-2编码系统为基础,应用领域涉及到卫星、电缆、地面各种传输模式。
均匀复用问题源于MPEG-2/DVB传输流复用器的设计。MPEG-2系统标准定义复用器的功能为采用时分复用的形式复用输入的音频、视频、数据流以及相关信令表,最后产生包长为188字节的传输流,复用要求满足一定的实时要求。输入流具有恒码率或分段恒码率的特性。复用流进入调制器或直接进入数据传输网络(如SDH,SONET)。复用流的总码率受到一个预先设定的传输码率限制。如果复用流有效数据的码率小于传输码率,则应插入空包以填充剩余的带宽。
为了避免解码器的上溢和下溢,应当使输入流的TS包均匀地分配到复用输出流中。解码器对于各种输入流的处理能力应符合MPEG-2/DVB标准的规定并且依赖于具体实现。
复用决定了传输流进入解码器缓冲区的模式。为了确保高品质呈现,MPEG-2系统定义了一个用于解码处理的概念定时模型。在这一模型中,视频基本流、音频基本流及系统数据的传输缓冲区大小均为512字节。当缓冲区中有数据时,分别以18Mbps(MP@ML),2Mbps和1Mbps的速率取走数据。这些缓冲区应当避免上溢并每秒钟至少应清空一次。后续的缓冲区一般也应当避免上溢和下溢。如果在组合的传输流(如38Mbps的一路DVB传输流)中的组份流分布不均匀,那么突发与稀疏就会引起缓冲区的上溢和下溢,导至呈现质量的下降。
复用决定了组份传输流进入缓冲区的次序,以时戳同步机制确定了取走缓冲区数据的方式。例如,编码器的系统时钟采样周期性地转化为传输流中的系统时钟参考(PCR)域。用于解码器重建编码器系统时钟,呈现时戳(PTS)指示从缓冲区取出数据的时间。解码器根据由PCR生成的解码时钟和呈现时戳控制获取数据的过程。复用和同步基本上是两个独立的机制(没有一种能够完全决定另一种)。因为同步信息由传输流承载,但其位置(也就是延时与抖动)是由复用决定的,因而复用会影响同步。
多次复用会使原本十分准确的PCR值变得不精确。随意的复用方法可能严重影响PCR的准确性,远远超出PCR的容许范围500ns。因而保持PCR的准确是复用过程的必要条件,然而即使PCR是准确的,随意复用仍可能无法满足T-STD的缓冲区操作要求。如果能够使复用足够均匀,除了可能产生一个恒定的延时外,组份流在复用流中的分布与其原始分布相似。PCR的误差总能控制在容许的范围内,因而PCR校正就不是必要的了,特别是针对一些定时要求不很严格的应用。针对PCR还有其他的规定,MPEG-2系统标准规定每个节目两个连续的PCR之间的间隔不应超过100ms。而DVB建议间隔应不大于40ms。因而承载PCR的传送流必须均匀分布。
DVB采用MPEG-2作为源编码规范。为了辅助用户通过服务/事件浏览以及自动配置集成接收/解码器。DVB将MPEG-2系统规范扩展以产生完全的服务信息。特别是DVB规定了PSI/SI的最小重复速率。例如PMT和PAT最大重复间隔不应大于100ms。全部NIT段应至少每10秒传送一次;所有BAT段(section)应当至少每10秒传送一次。针对实际复用的SDT段应当至少每2秒传送一次。针对其它传输流的SDT段应每10秒传送一次。TDT和TOT应每30秒传送一次。因而SI表应当传送的足够快,但也不要太快。如前所述,因为不适当的SI数据复用导致的瞬时突发会引起解码器缓冲区上溢。
实际实现解码器时,也要求输入传输流是均匀的。例如,ST5500芯片组支持最多32个slot;每一个slot可配置成过滤基本流PES包或PSI/SI表。过滤出的数据通过DMA传送到长度为8K的循环FIFO中。因为CPU不得不支持实时计算、人与解码器的交互、及其它I/O操作,只留下有限时间处理FIFO中的数据。因而瞬时突发输入可能导致FIFO溢出并进而丢失数据,这将严重影响后续解码过程。
MPEG-2视音频流的复用中一般要求为视音频流分配固定的带宽;而对于数据流来说,分配每路PID承载的带宽,一方面是资源管理的需要,另一方面是平衡每路PID的负载情况,避免解码缓冲区上溢。
在面向IP与广电网络互连的系统中,用户端接收设备的种类和型号很多,如面向计算机的数据接收卡,交互式机顶盒等,由于其选用的器件不同、主CPU的处理能力不同,实现机制不同,对于单路PID流的过滤能力不同。如果相同PID数据流突发性过强,会超过接收设备的过滤能力,导致数据丢失。而IP网络本身的数据又具有突发性的特点,这一方面是由于象TCP这样的数据传输协议本身就会造成数据突发,另一方面,即使在发送端均匀发出的数据,经过路由、交换等设备后,同样会变得具有突发性。
数据服务对带宽的要求不同于MPEG-2视音频,其数据具有突发性。为每路数据服务分配固定的带宽,一方面不适应数据突发性要求,在数据带宽要求高时导致数据丢失;另一方面当数据带宽要求小于分配带宽时,又会浪费部分带宽。统计复用是提高带宽利用率的有效途径,然而在DVB网络中,由于接收设备的性能不同,要求每路PID承载的数据流的位率要受到一个上限的限制。
复用设备用于IP over DVB服务时,将每个IP地址或者网络地址映射到一个目的PID上,进行多协议封装后传输。传统的先进先出(FIFO)方法无法消除IP数据的突发性,而IP网络中应用的一些调度方法如加权公平队列(WFQ)、加权轮循(WRR)等虽然可以完成流的隔离功能,但它们调度的结果是按相对权重分配资源,在活动流较少的情况下,单个流的准许速率可以很高,甚至达到整个链路速率,造成延时抖动的上升,不适用于DVB网络特性的要求。

发明内容
本发明的目的在于提供一种用于MPEG-2/DVB传输网络的均匀复用方法,是简单易行的复用算法,保证复用流中每路PID流承载的MPEG-2视音频流、信令流以及其它数据流具有均匀性。减小多路复用不均匀性对后续通信节点设备,包括终端设备的缓冲区造成上溢或下溢的概率。或在相同接收质量下减小缓冲区容量。本发明另一个目的在于将信令信息(PSI、SI、PCR等)纳入一个以带宽为唯一控制参数的统一调度框架,简化数据复用调度操作,同时保证信令信息实时性要求。
技术方案本发明主要包括三部分内容,1.支持均匀复用的调度算法eMUX;2.适用于均匀复用的信令带宽分配方案;3.基于测量的时变带宽分配方案。本发明采用固定与时变两种带宽分配方式,并且在复用流的均匀性控制方面具有良好性能。其中eMUX均匀复用调度算法是本发明的核心内容。本发明将复用问题抽象转化为实时调度问题,从而设计了一种eMUX均匀调度算法。采用这种调度算法,使每个流的TS包均匀地分布在复用流中,理论证明其均匀性优于传统的PFair调度算法,如PF、PD、PD2等。
1.用于均匀复用的eMUX调度算法传统的MPEG2复用方法对于信令信息的复用往往采用优先级调度,给承载信令信息的TS流以高优先权,然而由于信令流的插入,会改变其它流TS包的时序特征,而且优先权调度的方法经过多级复用后会使一些流具有突发性。为了简化调度输出,本发明将通过带宽分配,将信令调度与视音频流和数据流纳入统一的eMUX调度方案。
设链路传输位率为kbps,第i个复用流的位率为ki。满足∑1≤i≤nki≤k,n为流的个数。均匀复用的目标是使MPEG-2视、音频流及信令表的TS包均匀地分布在整个复用流中,使其比特率最大限度保持恒定。对于数据流则根据实时性要求保证流的峰值速率不超过某一限定,避免接收缓冲区上溢。
调度算法的调度单位为长度为188字节的TS包。引入虚拟时间参考系统,一个TS包的传输时间抽象为1。则对于一个位率为kibps的复用流,可以抽象成一个周期性任务实例τi={(Ii,Gi,Di,Pi)};其中Ii为任务起始时间,Gi为单个任务执行时间,Di为相对死限(deadline),Pi为任务周期。对于定长TS包的复用,Ci=1;Pi=k/ki;Di=Pi。EMUX算法描述如下
(1) 初始化vt=0;dm=0;for(i=1 to n){ri=0;ci=0;fi=ri+k/ki;HeapActive.Insert(i)}(2)每一个调度周期Ts执行m=Ts*k/188/8;//求出本调度周期需要调度的TS包个数m=m+dm; //记下非整数部分 for(j=1 to m){if(IsEmpty(HeapActive)){输出一个空包;}else{i=HeapActive.Delete();ri=fi;fi=ri+k/ki;Heap Wait.Insert(i);//堆插入if(q[i].Length()<>0){q[i].OutPut();//调度输出队首包;ci=ci+1;//输出包计数}else{输出一个空包;}
}vt=vt+1;while(!Heap Wait.IsEmpty()){i=Heap Wait.Look(); //取优先权最高元素的TS队列索引 {//堆非空i=Heap Wait.Delete();//堆删除操作HeapActive.Insert(i);}else break;}if(vt=Max_VT){//调整vt;避免溢出vt=0;for(i=1 to n){ri=ri-Max_VT;fi=fi-Max_VT;}}}其中n复用流个数;vt虚拟参考时间;ri流i队首包的可调度输出时间;fi流i队首包的传输完成时间;ci复用流i调度输出的TS包数,不含空包,每个带宽分配周期清零一次;Ts调度周期。根据具体实现环境中的处理器能力,时钟精度等确定,体现了调度粒度;dm记录上次调度的剩余的非整数部分包Max_VT给定的常数,当参考时钟数值等于此常数时,进行时钟调整,避免溢出。
HeapWait实现以可调度输出时间为优先权的队列的堆,此堆中元素对应复用TS流队列队首包可调度输出时间上取整小于参考时钟当前值vt,称此堆为待调度堆。
HeapActive实现以传输完成时间为优先权队列的堆,此堆中元素对应复用TS流队列队首包的可调度输出时间上取整大于或等于参考时钟当前值vt,也就是代表活动包,称为活动堆。
eMUX均匀复用算法的复杂度主要体现在确定下一个调度输出包的操作上,本发明采用两个堆进行优先权队列的具体实现,为待调度堆HeapWait,另一个活动堆HeapActive。调度器从活动堆中取优先级最高的元素(传输完成时间最小的元素),从相对应TS队列调度输出一个TS包,并生成一个新的待调度元素插入待调度堆,更新参考时钟后,检查待调度堆中是否有元素处于活动状态,如有,依次从待调度堆中移出,插入活动堆。堆的实现建议采用数组,元素包含TS队列编号TSQueneNo,优先权分别为流队首包的可调度输出时间rTSQueneNo和流TSQueneNo队首包的传输完成时间fTSQueneNo采用这一实现方式,eMUX算法复杂度为log(n),n为复用流数。
均匀性分析为了分析本发明的均匀复用调度算法性能,本发明首先定义如下概念L上的覆盖数对于以时隙为单位的时间间隔L=[t,t+l)中属于同一流数据项出现的次数称为此数据项在时间间隔L内的覆盖数,记为Cover(S,i,t,l),S为一个调度产生的序列。
s上的间隔属于同一流的数据项的第j次出现与第(j+s)次出现的距离。记为Space(i,j,s)。
l上的最小覆盖数cvr(S,i,l)=min{Cover(S, i,t,l)|t∈N0},简记为cvri,l;l上的最大覆盖数CVR(S,i,l)=max{Cover(S,i,t,l)|t∈N0},简记为CVRi,l;稀疏覆盖偏离
突发覆盖偏离 s上的最小间隔spc(S,i,s)=min{Space(S,i,j,s)| j∈N0},简记为spci,ss上的最大间隔SPC(S,i,s)=max{Space(S,i,j,s)|j∈N0},简记为SPCi,s;稀疏间隔偏离 突发间隔偏离 稀疏覆盖偏离、突发覆盖偏离、稀疏间隔偏离、突发间隔偏离是用于体现复用均匀性的指标,其值越小,表明组分流数据在服用流中的分布越均匀。
定理1将复用流看作一个可行的单位周期性任务集,τi={(Ii,Ci,Di,Pi)};Ci=1;当采用eMUX调度时,有如下结论成立 (证明从略)定理2给定一个均匀复用实例(k;k1,k2,...,kn)或等价表示(w1,w2,...,wn),其中wi=ki/k,∑l≤i≤nwi≤1。将此实例建模为实时调度问题{τi}={(Ii,Ci,Di,Pi)|Ii=0,Ci=1,Di=Pi=1/Wi,∑1 ≤i≤nwi≤1},那么采用eMUX将产生如下属性的调度 (4)cvr-devi≤1.
(证明从略)
采用传统的Pfair调度方法如PF、PD、PD2等,其均匀性属性如下 比较而言,采用eMUX调度,spci,s,SPCi,s,cvri,l,CVRi,l的变化范围均小于传统的Pfair调度方法。eMUX具有更好的均匀性属性。
2.适用于均匀复用的信令带宽分配方法为了简化调度过程,将信令流、视音频流、数据流纳入一个统一的eMUX调度框架,本发明建立了DVB规范中信令表重复周期约束与使用eMUX调度时带宽要求之间的关系,按照下面所述的信令表传输带宽分配方法进行信令带宽分配,然后利用eMUX算法进行调度输出,将同时满足均匀性与信令表传输实时性要求,并且不会对其它流的约束条件满足性造成破坏。
本发明中所涉及的信令信息主要包括PSI/SI表,PCR等。针对解码过程所选的节目,包含系统信息的完整传送流分组进入系统传送缓冲区,TBsys。这类分组有PID值为0或1的传送流分组和由PAT表识别的具有program_map_PID值的传送流分组。
分配PAT、PMT及CAT表带宽RPAT、RPMT、RCAT应满足如下约束 RPAT+ RPMT+ RCAT≤ Rsys(5)
其中 R传输流带宽;Rxsys缓冲区数据处理速率;T’ 缓冲区清空周期;Tslot传输一个TS包的时间;NPAT 承载PAT表的TS包数;NPMT 承载PMT表的TS包数;NCAT 承载CAT表的TS包数;TPAT PAT表出现的最大重复周期约束;TPMT PMT表出现的最大重复周期约束;TCAT CAT表出现的最大重复周期约束。
按照满足上述约束(1)、(2)、(3)、(4)、(5)分配信令表带宽,采用均匀复用调度算法eMUX,复用结果可严格满足相关表的最小重复周期要求,并保证在任意时间段内缓冲区不上溢。为了节约带宽,本发明建议取 对于其他的信令表带宽分配应满足约束 其中Tslot传输一个TS包的时间Ntab 承载某类信令表的TS包数Ttab 信令表出现的最大重复时间间隔约束最大重复周期约束取值可参考DVB相关标准要求,为了节约带宽,建议取 PCR编码频率确定如果PCR由一个独立的流承载,那么应当使
其中RPCR 承载PCR流带宽;Tslot传输一个TS包的时间;R传输流带宽;TPCR 标准规定的PCR最大重复时间间隔;为了节约带宽,本发明建议取 如果PCR用某路基本流承载,那么应当使 其中M连续两个含有PCR的TS包间隔(以TS包为单位);Ri承载PCR的TS流带宽;Tslot传输一个TS包的时间;R传输流带宽;TPCR标准规定的PCR最大重复时间间隔。建议取 3.基于测量的时变带宽分配方法本发明使用基于测量的时变带宽分配方案,与均匀复用算法一起应用,解决速率受限的复用流统计复用问题,适应DVB网络传输,提高带宽利用率。
设共有n个流共享容量为r的链路。第i个复用流具有保证带宽gi,最高带宽hi。带宽统计复用的原则为按gi保证第i个复用流带宽,剩余带宽在复用流之间平等共享,但复用流i获得的带宽ki受hi限制。∑1≤i≤ngi≤r;gi≥0;hi≥ki≥gi;首先确定hi。hi受到两个约束,第一是接收端的处理能力的约束Hc1,第二为在发送端人为设定的最高速率的约束Hc2,则hi=min(Hc1,Hc2)。
每一个带宽分配周期Tb执行如下算法<pre listing-type="program-listing"><![CDATA[ for(i=1 to n){ ni=(ci+qi)*188*8/Tb;//计算复用流i所需带宽 ci=0;ki=gi;//分配确保带宽 r=r-gi } while(r>0){ N={Si|ki<ni∧ki<hi,1≤i≤n};//确定带宽要求未满足流 if (|N|==0)break; arv=r|N|;//计算均分额度 ki=ki+max{0,min{min{ni-ki,hi-ki},arv}}; r=r-max{0,min{min{ni-ki,hi-ki},arv}};}]]></pre>其中gi复用流i的确保速率;hi复用流i的最高速率;ni复用流i的需求速率;qi带宽分配时复用流i队列TS包数;ci自上次带宽分配后复用流i调度输出的TS包数,不含空包;ki复用流i分配的带宽;r 剩余可分配带宽;Tb带宽分配周期,为Ts的整数倍;arv数据流可得到的均分额度;N带宽要求未满足流集合。
复用流所需带宽的计算综合两个测量信息后确定,一为自上一次带宽分配后调度输出数据的平均位率,带宽分配时复用流i队列TS包数,使用公式ni=(ci+qi)*188*8/Tb计算得到自上一次带宽分配后的数据到达速率,作为本次带宽分配所须带宽的依据。
完成带宽分配后,使用均匀复用算法,实现以带宽分配周期为粒度的时变均匀复用。在提高带宽利用率的同时,各流公平共享剩余带宽,并且有效地控制每路PID承载数据流的突发速率。上述带宽分配算法可统一处理固定带宽要求与可变带宽要求两种情况,对于要求固定带宽的复用流,只需令hi=gi,这保证了固定比特率传输的流的要求。
以下结合附图及一较佳实施例对本发明作进一步的详细说明


图1是本发明用于IP-DVB网关的均匀复用的逻辑框图;图2是本发明用于IP-DVB网关带宽分配模块与均匀复用调度的控制流程图;图3是带宽分配模块的处理流程图;图4是调度模块完成TS包的调度输出流程图。
图1为本发明一实施例的用于IP-DVB网关的均匀复用的逻辑框图,本网关同时支持MPEG-2复用功能。
如图1所示的本发明用于IP-DVB网关均匀复用调度的系统模型,复用流包括PSI,SI表信息、MPEG-2视音频流、数据服务流(IP及其它)等。图1中设置有计数器(未示出)。图1中的各模块工作机制如下IP数据输入模块从IP数据输入接口(如以太网接口)读入IP数据,进行封装后数据转化为MPEG-2 TS包的形式,然后根据规定的流映射规则(如目的地址为159.226.42.1的IP数据包封装后进入PID为1001的TS流队列)将TS包送入对应TS包队列,等待调度输出。
TS流输入模块从TS流输入接口(如ASI接口)读入TS流数据,消除PID冲突后,依据PID的不同,将TS流送入相应TS流队列,等待调度输出。
信令数据生成模块根据MPEG-2/DVB标准规定生成信令数据,因为同类信令流有同样的周期约束要求,同类信令流(如不同节目的PMT表)依次进入同一TS流队列,等待调度输出。
以上三类数据传送过程可独立进行,在软件实现的情况下,采用不同的线程进行并行处理。
每一个带宽分配周期,流量测量与缓冲区监视模块将把上一周期调度输出的流量与队列中现存待输出的数据量通知带宽分配模块。
带宽分配模块主要完成两部分带宽分配功能。首先检查产生用于产生信令信息的原始数据和设置是否有变化,如果有变化,检查是否引起信令表大小变化,如果有变化,依据MPEG-2/DVB标准规定及新的大小调整变化信令表流的带宽。如没有变化,则进入数据及视音频流带宽分配过程。时变均匀复用带宽分配器收集流量测量模块统计的流输出速率及队列管理模块监视的队列长度情况,计算各个复用流的所需带宽,结合确保速率信息、约束条件等,完成复用流的时变带宽分配。
带宽分配的结果送入eMUX均匀复用调度器,在每一个调度周期,eMUX均匀复用调度模块根据带宽参数,采用eMUX调度算法,调度输出各个TS队列的TS包,送入输出接口。
图2为本发明一实施例的用于IP-DVB网关带宽分配模块与均匀复用调度的控制流程图。带宽分配与均匀复用调度采用定时器驱动,设调度例程的启动周期为Ts,带宽分配例程的启动周期为Tb=n*Ts,通过调整带宽分配周期的大小,可以调整调度器对流量变化的反应速度。由于规定Tb为Ts的整数倍,则可用一个超时周期为Ts的定时器控制两个例程的执行。具体如图2。其过程简要说明如下(1)判断计数器C是否为0,如果为0,转入带宽分配过程(2),否则转入(3);(2)进行带宽分配;(3)执行eMUX调度(4)计数器加1,并以n取模,转1。
带宽分配模块的处理流程如图3。其过程说明如下(1)判断是否首次带宽分配,如果不是,转入(3);(2)为所有信令表流分配带宽,依据公式 如果PCR由一个独立的流承载,为承载PCR流分配带宽,依据公式 其中RPCR承载PCR流带宽;TPCR标准规定的PCR最大重复时间间隔;然后转步骤(5);(3)判断是否有某类信令长度发生变化,如无变化,转(5);(4)为发生长度变化的信令重新分配带宽,依据公式同步骤(2);(5)计算未分配剩余带宽r,依据公式
r=R-&Sigma;i=1MRtabi-RPCR]]>(6)分配视音频及数据流确保带宽(如某流未规定确保带宽,视为确保带宽为0),依据如下算法for(i=1 to n){ni=(ci+qi)*188*8/Tb;//计算复用流i所需带宽ci=0;ki=gi;//分配确保带宽r=r-gi}(7)分配剩余带宽,依据如下算法while(r>0){N={Si|ki<ni∧ki<hi,1≤i≤n};//确定带宽要求未满足流if(|N|==0)break;arv=r|N|;//计算均分额度ki=ki+max{0,min{min{ni-ki,hi-ki},arv}};r=r-max{0,min{min{ni-ki,hi-ki},arv}};}带宽分配过程描述所用符号意义如下Tslot传输一个TS包的时间;R传输流带宽,下同;Ntab 承载某类信令表的TS包数Ttab 信令表出现的最大重复时间间隔约束M信令表种类。
ni复用流i的需求速率;qi带宽分配时复用流i队列TS包数;ci上次带宽分配后复用流i调度输出的TS包数,不含空包;ki复用流i分配的带宽;r 剩余可分配带宽;gi复用流i的确保速率;
Tb带宽分配周期,为Ts的整数倍;arv数据流可得到的均分额度;N带宽要求未满足流集合;eMUX调度模块完成TS包的调度输出,如图4。算法采用双堆实现以可调度输出时间和传输完成时间为优先级的队列,管理TS包由等待调度到可调度状态的转换及调度输出TS包的选择。其具体步骤如下(1)判断是否首次执行调度,如果不是,转入(3);(2)变量初始化,过程如下vt=0;dm=0;for(i=1 to n){ri=0;ci=0;fi=ri+k/ki;HeapActive.Insert(i)}(3)求出本次调度应调度输出的TS包数m,依据算法如下m=Ts*k/188/8+dm; //记下非整数部分 (4)置计数器j等于1;(5)判断活动堆是否为空,如果非空,转第(10)步;(6)从活动堆删除一个元素,得到对应队列索引ii=HeapActive.Delete();(7)计算队列i对应的下一个输出包可调度时间和传输完成时间,队列索引进入等待堆;ri=fi;fi=ri+k/ki;Heap Wait.Insert(i);
(8)如果第队列i为空,则转(10);(9)从队列i中调度输出一个TS包,相应输出计数器加1,转(11);(10)调度输出一个空包;(11)调整虚拟时钟vt=vt+1;(12)将队首包可调度输出时间上取整,如果大于系统虚拟时间,将对应队列索引从等待队列移出,以传输完成时间为优先级进入活动队列,算法如下while(!Heap Wait.IsEmpty()){i=Heap Wait.Look();//取优先权最高元素的TS队列索引 {//堆非空i=Heap Wait.Delete();//堆删除操作HeapActive.Insert(i);}else break;}(13)判断系统系统虚拟时钟是否达到设定最大值MAX_VT,如果不是,转(15);(14)调整系统虚拟时间及各队列队应待传送包的可调度时间和传输完成时间vt=0;for(i=1 to n){ri=ri-Max_VT;fi=fi-Max_VT;}(15)计数器j加1;(16)如果j大于m,退出,否则转(5)。EMUX复用调度过程描述涉及符号意义如下n复用流个数;vt虚拟参考时间;
ri流i队首包的可调度输出时间;fi流i队首包的传输完成时间;ci复用流i调度输出的TS包数,不含空包,每个带宽分配周期清零一次;Ts调度周期。根据具体实现环境中的处理器能力,时钟精度等确定,体现了调度粒度;dm记录上次调度的剩余的非整数部分包;qTS包队列;Max_VT给定的常数,当参考时钟数值等于此常数时,进行时钟调整,避免溢出。
HeapWait实现以可调度输出时间为优先权的队列的堆,此堆中元素对应复用TS流队列队首包可调度输出时间上取整小于参考时钟当前值vt,称此堆为待调度堆。
HeapActive实现以传输完成时间为优先权队列的堆,此堆中元素对应复用TS流队列队首包的可调度输出时间上取整大于或等于参考时钟当前值vt,也就是代表活动包,称为活动堆。
权利要求
1.一种用于MPEG-2/DVB传输网络的均匀复用方法,包括如下步骤(1)判断计数器C是否为0,如果为0,转入带宽分配步骤(2),否则转入步骤(3);(2)进行带宽分配,首先检查产生用于产生信令信息的原始数据和设置是否有变化,如果有变化,检查是否引起信令表大小变化,如果有变化,依据MPEG-2/DVB标准规定及新的大小调整变化信令表流的带宽;如没有变化,则进入数据及视音频流带宽分配过程;(3)执行eMUX调度,带宽分配的结果送入eMUX均匀复用调度器,在每一个调度周期,eMUX均匀复用调度模块根据带宽参数,采用eMUX调度算法,调度输出各个TS队列的TS包,送入输出接口;(4)计数器加1,并以n取模,转1。
2.根据权利要求1的用于MPEG-2/DVB传输网络的均匀复用方法,其特征在于,带宽分配步骤包括(1)判断是否首次带宽分配,如果不是,转入(3);(2)为所有信令表流分配带宽,依据公式 如果PCR由一个独立的流承载,为承载PCR流分配带宽,依据公式 其中RPCR承载PCR流带宽;TPCR标准规定的PCR最大重复时间间隔;然后转步骤(5);(3)判断是否有某类信令长度发生变化,如无变化,转(5);(4)为发生长度变化的信令重新分配带宽,依据公式同步骤(2);(5)计算未分配剩余带宽r,依据公式r=R-&Sigma;i=1MRtabi-RPCR]]>(6)分配视音频及数据流确保带宽(如某流未规定确保带宽,视为确保带宽为0),依据如下算法for(i=1 to n){ni=(ci+qi)*188*8/Tb;//计算复用流i所需带宽ci=0;ki=gi;//分配确保带宽r=r-gi}(7)分配剩余带宽,依据如下算法while(r>0){N={Si|ki<ni∧ki<hi,1≤i≤n};//确定带宽要求未满足流if(|N|==0)break;arv=r/|N|;//计算均分额度ki=ki+max{0,min{min{ni-ki,hi-ki},arv}};r=r-max{0,min{min{ni-ki,hi-ki},arv}};}
3.根据权利要求1的用于MPEG-2/DVB传输网络的均匀复用方法,其特征在于,eMUX调度步骤包括(1)判断是否首次执行调度,如果不是,转入(3);(2)变量初始化,过程如下vt=0;dm=0;for(i=1 ton n){ri=0;ci=0;fi=ri+k/ki;HeapActive.Insert(i)}(3)求出本次调度应调度输出的TS包数m,依据算法如下m=Ts*k/188/8+dm; //记下非整数部分 (4)置计数器j等于1;(5)判断活动堆是否为空,如果非空,转第(10)步;(6)从活动堆删除一个元素,得到对应队列索引ii=HeapActive.Delete();(7)计算队列i对应的下一个输出包可调度时间和传输完成时间,队列索引进入等待堆;ri=fi;fi=ri+k/ki;Heap Wait.Insert(i);(8)如果第队列i为空,则转(10);(9)从队列i中调度输出一个TS包,相应输出计数器加1,转(11);(10)调度输出一个空包;(11)调整虚拟时钟vt=vt+1;(12)将队首包可调度输出时间上取整,如果大于系统虚拟时间,将对应队列索引从等待队列移出,以传输完成时间为优先级进入活动队列,算法如下while(!Heap Wait.IsEmpty()){i=Heap Wait.Look();//取优先权最高元素的TS队列索引 {//堆非空i=Heap Wait.Delete();//堆删除操作HeapActive.Insert(i);}else break;}(13)判断系统系统虚拟时钟是否达到设定最大值MAX VT,如果不是,转(15);(14)调整系统虚拟时间及各队列队应待传送包的可调度时间和传输完成时间vt=0;for(i=1 to n){ri=ri-Max_VT;fi=fi-Max_VT;}(15)计数器j加1;(16)如果j大于m,退出,否则转(5)。
全文摘要
本发明通信技术中的一种用于MPEG-2/DVB网络的均匀复用方法,主要包括eMUX均匀复用调度算法、适用于均匀复用的信令带宽分配方法、基于测量的数据时变带宽分配方法等三部分,其中eMUX均匀复用调度算法是本发明的核心内容。方法步骤包括(1)判断计数器C是否为0,(2)进行带宽分配,(3)执行eMUX调度,(4)计数器加1。基于eMUX的均匀复用算法适用于面向广电网络接入的应用,适应异种接入设备以及输入流特征复杂的DVB以及DVB与IP网络互连的网络。复用算法可严格保证信令信息实时性,数据流的均匀性,避免接收端缓冲区瞬时溢出,确保接收质量。或在同等条件下减小缓冲区的大小,节约资源。
文档编号H04N7/015GK1489387SQ0317869
公开日2004年4月14日 申请日期2003年7月22日 优先权日2003年7月22日
发明者贺思敏, 赵巍, 孙书韬, 高文 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1