在实时视频多播中实现QoS过滤的方法
作者:ling 来源:赛迪论坛 添加时间:2006-5-26 12:42:30 算法的具体描述如下:
(1)收集RR反馈报文,拆解得到各接收端当前期望接收速率的集合r1,r2,r3,…,rN,并计算在当前分层数l和逐层累积码率向量βl=c1,c2,…,cl下的总体接收公平指数。
(2)根据条件(1)和(2)的约束,将数值超过∑Li=1bimax的ri全部合并为数值等于∑Li=1bimax的一项,对低于b1min的则进行删除,不列入平均公平指数的计算。这样,接收端有效期望接收速率集合(可有重复项)的项数实际还剩余N′=N-m-n+1,其中m为数值超过∑Li=1bimax的ri项数,n为数值低于b1min的ri项数。由此得到经过预处理的接收端期望接收速率集合r′1,r′2,…,r′N′。
(3)将公式Jr,βl=1N∑Ni=1Jri,βl修正惟Jr′,βl′=1N′∑N′i=1Jr′i,βl′,代入数据进行计算试探,搜寻使总体公平指数达到最大值的l′和βl′。定义调整容限ε,当Jr′,βl′-Jr,βl>ε时,编码器按照参数l′和βl′做相应优化调整,反之维持当前状态以保证系统的相对平稳性。
(4)返回第一步重新开始。源端在执行上述步骤的同时,每隔TSR秒通过多播方式向各接收端发送一次SR报文,报告源端当前的视频分层数、逐层累积码率向量βl。TSR的设定为:TSR=TAdj/k,k为大于1的整数,TAdj为源端执行上述算法的周期,也称为源端调整周期。 TAdj的选取不能过小,否则会加大源端的计算负担并引起调整振荡,不利于实时视频数据的传输和接收,同时也会给正确收集和统计各接收端的期望接收速率报告带来困难。分析表明,TAdj取值在10~15 s较为合理。
2.2SRLM的接收端部分算法实现
接收端算法的具体描述如下:
(1)估算参数p,tRTT和tRTO的值;
(2)如果收到SR报文转到下一步,否则返回上一步;
(3)拆解SR报文得到源端当前的βl,利用(1)计算本接收端期望接收速率r;
(4)根据βl和期望接收速率r来调整本端预订的视频层数。
(5)返回第一步。
接收端在执行上述步骤的同时,每隔TRR秒向源端发送一个RR报文,报告接收端期望的接收速率。同时该报文还用作tRTT估算的一个请求。
tRTT采用闭环估算方法。源端收到接收端RR报文时会通过多播方式返回一个SR报文作为回应,但为了降低系统开销,源端不会单独回应每一个RR报文,而是成批进行处理。也即,假设源端在本地t时刻发送了一个SR报文,并在下一个SR报文发出时刻t+TSR之前的treturn1,treturn2,…,treturnk时刻,陆续收到k个接收端返回的RR报文,这些报文都带有各自的同步源标识符SSRCi。源端在时刻t+TSR通过多播方式发送下一个SR报文,该报文除了βl参数外,还包含一个列表,列表内容为上述k个接收端的SSRCi及其对应的tdelayi。tdelayi是源端响应某个RR报文的延迟时间(即源端从收到某个报文至发送下一个SR报文的时间间隔)。