Chinaunix首页 | 论坛 | 博客
  • 博客访问: 304814
  • 博文数量: 118
  • 博客积分: 313
  • 博客等级: 二等列兵
  • 技术积分: 615
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-12 22:51
文章分类

全部博文(118)

文章存档

2012年(68)

2011年(50)

分类:

2012-02-06 22:36:34

基于RTP/RTCP的无线视频传输自适应带宽控制

1RTP/RTCP简介

RTP协议是IP网络中针对实时业务的一种传输协议,一般构架在UDP协议之上。另外,它也是一个数据封装协议,实时业务数据封装于RTP包的数据域中。RTP协议的设计目的是提供实时数据传输中的时间戳信息及各数据流(/ 视频等)同步功能。RTP提供序列号(Sequence Number)以恢复数据包的顺序,实现丢包检测,为实时传输提供网络拥塞等信息; 提供时间戳(Timestamp)用于媒体同步,使接收端按正确的速率回放数据;提供同步源标志(Source Identification)使接收端有可能获得有关发送方的信息。RTCP控制包共有五种类型,其中用于提供QoS反馈的有两种:发送端报告(Sender Report , SR)和接收端报告(Receiver Report ,RR) 。前者描述发送端的发送和接收统计数据;后者描述接收端的接收统计数据。这些统计数据包括发送包数、发送字节数、累计丢包数、已收报文的最大序列号、到达时间间隔抖动

2、基于RTP/RTCP的控制理论基础及控制模型

λ为当前丢包率,λc为丢包率下限,λl为丢包率上限。

当λ>λc,网络拥塞;

当λ<λl ,网络空闲;

当λl=<λ<=λc,网络负载适中

当网络拥塞时,降低发送速度,当网络空闲时,可适当提升发送速度。控制模型如下:

3、反馈控制算法

我们采取基于RTP协议的端到端反馈拥塞控制策略。接收端根据RTP数据包的接收情况生成RTCP接收报告RR ,周期性地向发送端反馈此RTCP,通告发送端当前的网络状况。发送端根据反馈的信息采取相应的控制算法调节输出码率,从而实现拥塞控制。我们利用某段时间内的丢包率作为判断网络是否拥塞的标准。发送端根据RTCP反馈包中的信息可计算出丢包率。

为了防止QoS抖动,我们使用下述低通滤波器对丢,包率λ进行平滑处理:

λ=aλ+ (1-a)b(λ为最新计算出的丢包率,b为当前使用中的丢包率,a为权重(0)。我们设置两个门限值λc ,λl,根据平滑后的丢包率λ,作如下估计:

当λ>λc,网络拥塞;

当λ<λl ,网络空闲;

当λl=<λ<=λc,网络负载适中

MaxRate/ MinRate是发送端最大/ 最小输出比特率; Speed0 是初始速率;Step是速率的线性增量;β是乘性减小因子。我们采取下述反馈控制算法:

●发送端

(1)按初始速率Speed0发送数据

Speed : = Speed0 ;(MinRateSpeedMaxRate)

(2)根据接收端反馈的RTCP包中的信息计算出丢包率,平滑处理后进行网络负载判断并调整输出码率:

if (λ>λc)

  Speed = max{(β*Speed) ,MinRate} ;

Else if (λ<λl)

  Speed = min{( Speed + Step) ,MaxRate}

Else

Speed = Speed

●接收端

每收到N个数据包或最多5s发送一RTCP反馈包至发送端,其中包含从发出上一个反馈包到发送此包期间内的QoS信息。此反馈拥塞控制策略能使整个H264视频传输系统实时监视带宽的变化,动态地改变输出码率,充分利用当前带宽。当网络拥塞时,发送速率乘性减小,降低对所需带宽的要求,同时设置一最小发送码率MinRate ,保证发送端所需的最小带宽;当网络空闲时,线性增加发送码率,同时设置一最大发送码率MaxRate ,保证发送端不会过度占用资源;当网络负载正常时,不作任何调整。由于发送端采取类似TCP拥塞控制中的AIMD策略(Addictive Increase ,Multiplicative Decrease) ,它可以进一步缩短实时传输系统处于拥塞状态下的时间,进一步降低丢包率和时延,为用户提供良好的服务质量,并且保证了同其它协议的数据流竞争带宽的公平性。

建议参数

MTU

Speed0

MaxSpeed

MinSpeed

Step

a

β

N

λc

λl

 

 

 

 

5kbps

0.7

0.8

 

5%

1%

 

阅读(1427) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~