一种流媒体传输系统中的速率控制方法

文档序号:7595749阅读:133来源:国知局
专利名称:一种流媒体传输系统中的速率控制方法
技术领域
本发明涉及网络多媒体数据传输与播放领域中一种在网络上有效传输视音频数据流的技术,特别是公开一种流媒体传输系统中的速率控制方法,有效利用网络带宽,在流媒体视频点播系统上对视音频数据流的码率控制技术。
背景技术
对于现在的网络,基于TCP/IP的数据传输都是突发的、间歇的、贪婪的、尽力的。这种方式的数据传输就象没有红绿灯的交通系统,很容易交通堵塞。造成网络阻塞,并导致数据包的大量重发,大大降低了通道带宽的利用率。
IP分组网中的实时多媒体业务在网络中传输时,由于在每一个网络节点中都要进行路由选择,而且传输包要进行排队导致包传输的时延,延时超过一定时间后会采取丢包处理。这些都对视频处理的质量造成影响。
网络技术自身的发展很难为流媒体应用提供绝对的服务质量保证。目前的Internet只提供Best-effort的服务,没有质量保证。因此,需要通过应用层的机制来实现质量的控制。现在在IP网上传输流媒体数据时,为保证服务质量,一般采用拥塞控制和差错控制。拥塞控制主要是通过调整视频编码的速度使其适应网络的带宽。因为网络的带宽是时变而非固定的,而且是一个未知量,所以不能直接设定一个编码速率来适应网络状态。通常采用两个方法实时调节一是窗口法通过逐渐增大传送的码率,当发现网络上出现包的碰撞(检测到了丢包)时,再减小发送的码率;另外是基于速率的方法先估计网络的带宽资源,再调整编码的目标速率来适应网络的状态。基于窗口的解决方案会引入类似TCP的重传,这是不能忍受的。
RealNetworks的真实流(Sure Streaming)和Microsoft的智能流(Intelligent Streaming)解决方案都是基于收端的速率控制方法。在与用户建立连接的初始,检测用户的网络带宽资源状况以及连接数目的多少,以此来判断,发送文件大小最适合的流媒体文件。而在用户观看流媒体文件的过程中,网络状况和带宽资源其实一直在发生不可预测的变化,对于服务器,可能不断有新的用户连接上来,并发数不断在变化,收端根据网络状态增加或减少信道,主要用于分级的图象编码。在这种控制方法中,编码部分本身并不作调整,只是在发送层参与调整。不过每一次发送的码率是以分级码流的级为单位进行调整,而不是连续的。降低了带宽的有效利用。结果引起在用户端的播放质量下降,通常还是会时常出现图像卡壳、抖动和停停放放的情况,服务质量仍然无法保证。

发明内容
本发明的目的是TCP/IP数据传输网在用户日益增加的情况下,保证服务质量,不发生拥塞现象,使用户享受到稳定的视频服务。
本发明是这样实现的采用本发明的流媒体传输系统的速率控制方法是基于收端的,但信道是固定的,而不是动态增加或减少的;该信道的速率是动态变化的,而且是连续的,不是分级的。该信道的速率是由流媒体文件本身的编码速率决定的,同时受网络丢包率及接收端的缓存占有率影响的。流媒体内容在传输过程中质量是稳定的,不降级的,不跳帧的,这样可以保证用户端的播放质量的稳定。对于网络带宽的长时间尺度波动,则通过调整解码速率来保证播放的连续,而不会出现卡壳停顿的现象。
发送端的传输速率基于收端随时调整,并进行平滑控制。这是根据流量控制来实现的。流量控制的策略是根据期望传输速率,调整下一时刻的发送数据量。本发明使用两个队列分别记录以前若干时刻点的流量和传输用的时间,根据期望的传输速率r来预测下一时刻点的流量。并每次刷新两个队列。通过调整队列的长度,可以调整传输速率的平滑程度。队列越短,则瞬时性越强,反之,队列越长,速度越平滑。这样不断调整每个时刻的发送数据量,不仅起到精确控制传输速率的作用,而且能够使传输速率更平滑。
通过实时调整发送端的传输速率来适应网络的传输。如果传输码率和网络带宽相匹配则包丢失率会大大下降。RTCP作为反向信道,从收端监测网络的状态,把网络的状态信息反传给发端。RTP即作为数据信道把视音频数据从发送端传输到播放器端,同时也作为反向信道把播放器端的缓存状态反馈到发送端。发送端同时根据网络状态信息与播放器端的缓存状态信息进行传输速率调整。具体方法如下首先设定一个包丢失率的阈值Pth,在收端检测包丢失率p,并将p通过反向信道RTCP传回发送端,发送时可以采用以下的策略进行码率调整如果(p≤Pth)
r=min{r+StepR},MaxR}如果(p≥Pth)r=max{(α×r),MinR}其中r是传输速率,p是包丢失率,MaxR和MinR是最大和最小传输速率。StepR是码率递增的步长,也就是每次码率增加的幅度。α是码率的递减系数。
同时,StepR和α是与接收端缓冲状态相关。设定接收端缓存的占有率为B,将B通过RTP信道传回发送端,发送端根据B调整码率的递增步长和递减系数。
StepR=F((3/4)*B,(1/4)*B)α=F1((3*4)/B,(1*4)/B)上述两个表达式的意思就是当缓冲占有率越小,则每次的码率递增步长越大,递减系数越小;反之,缓冲占有率越大,则每次的码率递增步长越小,递减系数越大;缓冲占有率为3/4和1/4时为码率递增递减转换的临界点。
为了使可变的解码速率Rv和传输速率r相匹配,播放器中设置了一个缓存。随着每一帧被解码,解码数据以可变的Rv速率移出缓存,同样以可变的传输速率r填充缓存。由于没有对变化的速率Rv及r有限制,缓存的数据既有可能漫出(“上溢”),也有可能变空(“下溢”)。为了避免这种情况的发生,可将缓存的占有率B的信息“反馈”到发送端去控制量化步长,即递增步长StepR和递减系数α。随着B的增加/减少,α也随着增加/减少,StepR也随着减少/增加,这就引起传输速率r的变化,正常情况下,解码速率Rv和传输速率r总体上是匹配的,就可以始终维持缓存容量在一个合理的范围内。同时增加在缓冲占有率临界点对解码速率的控制,增强系统对网络恶化的抵抗能力。
这样,当播放端点播节目,发送请求到发送端,发送端根据请求从存储装置读取文件内容到发送缓冲,发送端先根据流媒体内容的编码速率确定初始传输速率r,同时确定MaxR,MinR;把数据内容从发送缓冲中以速率r通过RTP信道发送到网络上,播放器从RTP信道收到发送端传来的数据后,临时存放在接收缓冲,这时一边是解码回放装置从接收缓冲中读取数据进行解码回放,一边从RTP信道接收数据,同时检测丢包率p及时延d,而且根据丢包信息和时延d来判断丢包是否需要重传,如果重传后的包能够低于时延的阈值,就可重传。把p(及d)通过RTCP信道回传给发送端,而且计算接收缓存占有率B,定时把接收缓存占有率B(以及丢包信息)通过RTP信道回传给发送端;发送端从RTCP信道接收p,根据p调整发送码率,同时在RTP信道定时接收接收缓存占有率B及丢包信息,根据B来调整当前的递增步长或递减系数,当由于长时间尺度的网络拥塞,接收缓存占有率B下降到最低临界点后或上升到最高临界点后,播放器适当减慢或加快播放速度,确保缓存即不下溢也不上溢,同时保证了节目播放的清晰度,而且避免了停顿现象。
本发明的效果与优点是由于拥塞控制的作用,网络带宽的短时间尺度波动常常比较大,如果直接按照网络实时带宽进行视频质量调节,必然会造成视频质量抖动剧烈,影响播放效果。采用本发明的方法,可以准确控制数据流的传输速率,但并不需要进行视频质量调节,能保证客户享受到稳定的视频服务。
该技术能使流媒体服务器自动适应网络状况实时传送流媒体数据。即使在剧烈变化的网络环境下,采用该技术仍能保证客户享受到清晰的、流畅的视频服务。
在流媒体服务器上应用本发明,可以有效控制每个媒体流的传输速率,降低服务器资源利用率。同样由于每个媒体流的传输速率可以灵敏控制,使每个媒体流的传输速率更稳定,充分利用服务器输出带宽,提供更多的客户连接。


附图1 是本发明流媒体传输系统发送端的速率控制过程;附图2 是发送端根据期望速率来预测下一个时刻点的流量控制过程;附图3 是视频点播系统的速率控制示意图。
具体实施例方式流媒体传输系统发送端的速率控制过程如附图l所示。步骤如下1、首先,流媒体发送端接收播放终端请求;2、根据播放终端的请求确定多媒体数据源;3、根据多媒体数据源的编码信息确定初始发送速率;4、根据预期的传输速率确定当前的发送数据量;5、发送一定量数据到网络;6、接收播放终端反馈的丢包率和接收缓存占有率;7、判断多媒体流是否结束或用户停止播放,如果结束就退出;
8、根据步骤4传输速率以及步骤6的丢包率和接收缓存占有率调整预期的发送速率;9、返回第4步。
对于其中的第4步,根据预期的传输速率确定当前的发送数据量,在具体实施时可以起到速率精确控制与速率平滑控制的作用。方法如下a.我们使用一个队列来记录以前若干时刻点的流量。即流量队列,计作Q-flow[SIZE]。
b.同时我们用一个队列记录以前若干时刻点的传输用时间。即时差队列,计作Q-difference[SIZE]。
c.然后,根据我们设置的期望速率R来预测下一时刻点的流量。
d.循环以上3步,不断修正下一时刻点的流量,实现对该路数据流的传输速率控制。
e.其中,a中若干时刻点的若干即SIZE作为参数是可以设置的。它确定了用于预测任一时刻数据通道流量时所用的历史数据队列的大小。这个队列的大小正比于计算瞬时速率所用的窗口时间。这个参数值越小,计算出来的速率的瞬时性就越强,但与此同时,速率控制的稳定性相对越差。
f.前面提到的流量实际上就是数据通道在两个时刻点之间传输的数据量。
g.b的若干时刻点与a的若干时刻点是一一对应的,也就是一致的。
h.b的传输用时间指的是两个记录时刻点之间的时间差。
至于c根据我们设置的期望速率来预测下一个时刻点的流量,如附图2所示。具体操作如下1、首先计时次数索引Index自动加1,如果达到SIZE,Index归零;实际上,Index也就是该计时时刻点记录在两个队列中的位置。
2、判断队列是否已经满了,也就是记录次数是否超过SIZE。如果满了,就把队列中Index的位置腾空,准备用当前记录值填充。
3、计算出最近SIZE记录的时间段内总的耗时T。
4、计算出最近SIZE记录的时间段内总的流量F。
5、计算最近SIZE记录时段内的实际发送平均码率。R0=F/T。其中F和T为到上个记录时刻的连续SIZE个记录时间段内的总流传输量和总耗时。
6、取得当前时间now,计算当前时间与上次计录时间lasttime的时间差td。
7、填充态度td到Q-difference[Index];刷新时差队列。
8、更新上次记录时间,lasttime=now。
9、计算当前记录时刻点准备传输的流量X。X=R*T-F。R为期望传输速率,T和F为到当前记录时刻的连续SIZE个记录时间段内的总传输流量和总耗时。
10、把X填充到Q-flow[Index];刷新流量队列。
本发明可以在视频点播系统中实施。如附图3所示。系统由视频服务器和多个客户播放器以及网络组成。视频服务器包括存储系统1、速率控制模块2、发送缓冲区3、及传输子系统4。客户播放器包括传输子系统5、接收缓冲区6、解码回放模块7。
对于每个客户的点播请求,客户播放器传输子系统5通过网络传递点播请求到视频服务器的传输子系统4。
视频服务器从存储系统1中读取相应的媒体文件内容到发送缓冲区3。
速率控制模块2把该节目的编码码率作为我们的期望码率,也就是初始发送速率,同时根据网络状况和客户播放器缓冲状态,不断调整发送速率,计算每次的传输数据量。
视频服务器把该数据量的媒体内容从发送缓冲区3送到及传输子系统4,通过网卡传输到网络上。
客户播放器传输子系统5接收媒体内容,送入接收缓冲区6。
客户播放器传输子系统5检查丢包状态,并监视接收缓冲占有率,及时把丢包率和接收缓冲占有率通过传输子系统5经网络反馈给视频服务器。
解码回放模块7从接收缓冲区6中取的媒体数据进行解码回放。
既保证了视频服务器传输速率和网络速率的匹配,又保证客户播放器的接收缓冲区6既不上溢,也不下溢,能够平稳流畅的播放。
权利要求
1.一种流媒体传输系统中的速率控制方法,其特征在于本发明采用流媒体传输系统的速率控制方法是基于收端的,但信道是固定的,而不是动态增加或减少的;该信道的速率是动态变化的,而且是连续的,不是分级的,该信道的速率是由流媒体文件本身的编码速率决定的,同时受网络丢包率及接收端的缓存占有率影响的;对于网络带宽的长时间尺度波动,则通过调整解码速率来保证播放的连续,而不会出现卡壳停顿的现象;发送端的传输速率基于收端随时调整,并进行平滑控制,策略是根据期望传输速率,调整下一时刻的发送数据量,本发明使用两个队列分别记录以前若干时刻点的流量和发送用的时间,根据期望的传输速率r来预测下一时刻点的流量,并每次刷新两个队列,通过调整队列的长度,可以调整发送速率的平滑程度,队列越短,则瞬时性越强,反之,队列越长,速度越平滑。
2.根据权利要求1所述的流媒体传输系统中的速率控制方法,其特征在于通过实时调整发送端的传输速率来适应网络的传输,RTCP作为反向信道,从收端监测网络的状态,把网络的状态信息反传给发端,RTP即作为数据信道把视音频数据从发送端传输到播放器端,同时也作为反向信道把播放器端的缓存状态反馈到发送端,发送端同时根据网络状态信息与播放器端的缓存状态信息进行传输速率调整,具体方法如下首先设定一个包丢失率的阈值Pth,在收端检测包丢失率p,并将p通过反向信道RTCP传回发送端,发送时可以采用以下的策略进行码率调整如果(p≤Pth)r=min{r+StepR},MaxR}如果(p≥Pth)r=max{(α×r),MinR},其中r是传输速率,p是包丢失率,MaxR和MinR是最大和最小传输速率,StepR是码率递增的步长,也就是每次码率增加的幅度,α是码率的递减系数,同时,StepR和α是与接收端缓冲状态相关,设定接收端缓存的占有率为B,将B通过RTP信道传回发送端,发送端根据B调整码率的递增步长和递减系数;StepR=F((3/4)*B,(1/4)*B)α=F1((3*4)/B,(1*4)/B)上述两个表达式的意思就是当缓冲占有率越小,则每次的码率递增步长越大,递减系数越小;反之,缓冲占有率越大,则每次的码率递增步长越小,递减系数越大;缓冲占有率为3/4和1/4时为码率递增递减转换的临界点。
3.根据权利要求1或2所述的一种流媒体传输系统中的速率控制方法,其特征在于为了使可变的解码速率Rv和传输速率r相匹配,播放器中设置了一个缓存,解码数据以可变的Rv速率移出缓存,同样以可变的传输速率r填充缓存,由于没有对变化的速率Rv及r有限制,缓存的数据既有可能漫出(“上溢”),也有可能变空(“下溢”),为了避免这种情况的发生,将缓存的占有率B的信息“反馈”到发送端去控制量化步长,即递增步长StepR和递减系数α。随着B的增加/减少,α也随着增加/减少,StepR也随着减少/增加,这就引起传输速率r的变化,正常情况下,解码速率Rv和传输速率r总体上是匹配的,就可以始终维持缓存容量在一个合理的范围内,同时增加在缓冲占有率临界点对解码速率的控制,增强系统对网络恶化的抵抗能力。
全文摘要
本发明为一种流媒体传输系统中的速率控制方法,本发明公开了怎样有效利用网络带宽,在媒体视频点播系统上对视音频数据流的码率控制技术,通过接收端设定缓存的占有率B,并将B通过数据信道传回发送端,发送端根据B值网络丢包率调整码率的递增步长StepR和递减系数α,也就是调整流量队列的长度可以调整传输速率的平滑程度。本发明方法可以准确控制数据流的传输速率,并不需要进行视频质量调节,能够保证客户享受到稳定的视频服务,客户享受到清晰的、流畅的视频服务节目,充分利用服务器的输出带宽,提供更多的客户连接。
文档编号H04L29/02GK1655547SQ200410066218
公开日2005年8月17日 申请日期2004年9月9日 优先权日2004年9月9日
发明者朱爱玺 申请人:上海川海信息科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1