基于mpeg-4编码的多媒体数据流自适应网络带宽的传输方法

文档序号:7703300阅读:145来源:国知局
专利名称:基于mpeg-4编码的多媒体数据流自适应网络带宽的传输方法
技术领域
本发明涉及一种基于MPEG-4编码的多媒体数据流自适应网络带宽的传输方法。

背景技术
RTP实时传输协议是用于因特网(Internet)上针对多媒体数据流的一种实时应用的传输协议,可以提供端到端的网络传输服务,是解决视频实时传输问题的比较好的办法。与RTP密切相关的是RTCP实时传输控制协议,两者是密不可分的,配合使用的。RTCP实时传输控制协议可以为传送的RTP数据的服务质量(QoS)提供反馈信息如丢包率,延时抖动等等,人们可以根据RTCP数据包中提供的接收者报告RR中的反馈信息进行计算,从而判断网络带宽的使用状况。RTCP数据包有如下五种不同控制信息的包类型发送者报告SR,接收者报告RR,源描述SDES,退出指示BYE以及特定应用信息APP。RTCP数据包在发送端和接收端分别使用发送报告SR和接收报告RR提供服务质量(QoS)反馈。发送端根据接收者报告RR计算丢包率、数据包到达间隔抖动和回路时间等,确定网络负载的状况,判别网络信道状况。
由于网络带宽一般是有限制的,特别是无线网络信道的带宽极其有限,而多媒体数据流(如高清视频图像等)又具有海量的信号特征,因此,传输高分辨率的多媒体数据流需要消耗大量带宽。MPEG-4是基于对象的视频编码标准,它的比特流提供了视觉场景的分级描述。由于MPEG-4编码具有内容的交互性,高效的压缩性和通用的访问性,而成为多媒体数据流在进行RTP传输前最常用的编码方式。MPEG-4在对多媒体数据流进行编码时,使用的是视频对象平面VOP的概念,即将某一个画面上的每个物体(物件)切割出来,个别压缩,同一个画面由许多个VOP数据包组成。以传输分辨率为640*480的VGA大小的视频图像为例,若输入为每秒30帧的RGB原始数据,则编码前每秒的数据量约为221Mbit,假设普通MPEG-4编码器的压缩比为50∶1,则编码后的每秒须传输的数据量约为4.4Mbit。这个数据量是相当大的,会对网络路径(特别是无线网络)造成很大的负荷。同时,无线网络的信道又具有易受干扰、差错率高以及时变和不对称传播的特性,因此,高分辨率视频图像在无线网络中的丢包率就更高了。一般,无线网络中丢包情况分为3种统计级别15%~20%属于高丢包率,5%~10%属于中丢包率,1%~3%属于低丢包率。
研究表明,在无线信道中,信道带宽的利用率和发送的RTP数据包的长度有直接的关系。在一定区域内,信道的利用率随着发送的RTP数据包的长度的增长而增高。但无线信道容量有限,到某一利用率时,会因为发送的RTP数据包的长度过大,而造成丢包,信道利用率也随之降低。因此,发送的RTP数据包的长度并不是越长越好。
在对MPEG-4编码的多媒体数据流进行RTP传输时,先对MPEG-4码流进行RTP打包,在对MPEG-4码流进行打包时,RTP实时传输协议先对MPEG-4码流的数据进行以VOP作为封装基本单元的软分包;然后再对打入的VOP封装基本单元进行RTP硬分包,即不管数据的内容,机械的将固定的值(常常以网络路径的最大传输单元MTU)作为每个发送RTP包的大小。由于对高分辨率的MPEG-4码流来说中几乎每个VOP都会超过MTU的大小,这样就需要对每一个超过MTU大小的VOP进行分包,分成几个不同的RTP包来发送,这样,同一个视频帧可能会被放入两个不同的RTP包内,每个数据包之间的相关性会非常大,数据一旦发生丢包,就无法在接收端采取差错掩盖的技术进行恢复,因为接收到的数据有可能是不完整的,也不知道是哪一帧被丢弃了。因此,这种方法有可能造成接收端画面的黑屏或者不连续,大大影响了播放的质量。


发明内容
本发明所要解决的技术问题是针对上述现有技术提供一种基于MPEG-4编码的多媒体数据流自适应网络带宽的传输方法,该方法能根据当前络带宽的使用状况,自适应地调整发送RTP包的大小,将把网络丢包率控制在中低程度,同时能提高带宽使用率,不浪费有限的带宽资源。
本发明解决上述技术问题所采用的技术方案为该基于MPEG-4编码的多媒体数据流自适应网络带宽的传输方法,发送端将经过MPEG-4编码后的多媒体数据流采用RTP实时传输协议与RTCP实时控制协议通过网络传输给接收端,其特征在于包括以下步骤 步骤一设置网络路径最大传输单元MTU的大小; 步骤二在发送端截取RTCP数据包中提供的接收者报告RR,并计算当前网络的丢包率; 步骤三根据当前网络的丢包率确定当前网络的带宽使用状态是处于拥塞状态还是处于轻载状态; 步骤四将发送端的经过MPEG-4编码后的多媒体数据流进行RTP封装,读入一个封装单元VOP,若该封装单元VOP的大小小于或等于网络路径最大传输单元MTU的大小,则直接将该封装单元VOP中的数据封装成一个RTP发送数据包进行传输;若该封装单元VOP的大小大于网络路径最大传输单元MTU的大小,则根据当前网络的带宽使用状态,对当前打入的一个封装单元VOP以宏块为单位进行分包,分成不同的RTP发送数据包进行传输,并且还根据当前网络的带宽使用状态,实时更新下次传输的RTP发送数据包中的宏块数量,即如果当前网络的带宽使用状态处于拥塞状态,则根据本次传输的RTP发送数据包的宏块数量,减少下次传输的RTP发送数据包中的宏块数量;如果当前网络的带宽使用状态处于轻载状态,则根据本次传输的RTP发送数据包的宏块数量,增加下次传输的RTP发送数据包中的宏块数量。
作为改进,所述步骤三中,通过以下方法判断当前网络的的带宽使用状态是处于拥塞状态还是处于轻载状态 步骤(3-1)、设置一个网络丢包率的门限值,该网络丢包率的门限值范围为[3%,10%]; 步骤(3-2)、如果当前网络的丢包率大于网络丢包率的门限值,则判断当前网络处于拥塞状态;反之则判断当前网络处于轻载状态。
所述步骤四中,通过以下步骤对当前打入的一个封装单元VOP以宏块为单位进行分包 步骤(4-1)、设置一个宏块数量初始值,该宏块数量初始值设为不超过网络路径最大传输单元MTU的最大宏块数量; 步骤(4-2)、将MBnew个宏块数据封装成一个RTP发送数据包进行传输,MBnew的初始值即为宏块数量初始值; 步骤(4-3)、判断当前读入的封装单元VOP是否还有剩余宏块,如没有,则当前读入的封装单元VOP分包处理结束,返回步骤四,读入下一个封装单元VOP;如果还有剩余宏块,则判断当前网络的带宽使用状态; 步骤(4-4)、如果当前网络的带宽使用状态处于拥塞状态,采用以下方式更新下次传输的RTP发送数据包中的宏块数量,并返回步骤(4-2) MBnew=MIN{[MBpre·α],MBsuiplus} 其中MBnew为根据当前网络的带宽使用状态更新后下次传输的RTP发送数据包中的宏块数量,MBpre为当前本次传输的RTP发送数据包的宏块数量,α为乘性减少因子,α的取值范围为0<α<1,MBsuiplus为一个封装单元VOP中所剩余的宏块个数; 步骤(4-5)、如果当前网络处于轻载状态时,采用以下方式更新RTP发送数据包中的宏块数量,并返回步骤(4-2) MBnew=MIN{[MBpre+AIR],MBsuiplus} 其中MBnew为根据当前网络的带宽使用状态更新后下次传输的RTP发送数据包中的宏块数量,MBpre为当前本次传输的RTP发送数据包的宏块数量,AIR为线性增量因子,AIR的取值范围为0<AIR<50,MBsuiplus为一个封装单元VOP中所剩余的宏块个数。
这样,在对于每封装单元VOP进行分包时,本发明采用了类似AIMD的方法,即乘性减少,加性增加,这是一种快降慢升的策略,能迅速对当前网络负载进行改善。
所述步骤二中,当前网络的丢包率通过以下方法计算 步骤(2-1)、计算发送端一个发送时隙前后接收的两个接收者报告RR中丢失的RTP发送数据包的累计数之差,得到发送端一个发送时隙丢失的RTP发送数据包个数L(n),用公式表达为 L(n)=C(n)-C(n-1),其中C(n)是发送端在第n个发送时隙后共丢失的RTP发送数据包的累计数; 步骤(2-2)、计算发送端一个发送时隙前后接收的两个接收者报告RR中最高序列号的差,得到接收端一个发送时隙应收到的RTP发送数据包的个数R(n),用公式表达为 R(n)=H(n)-H(n-1),其中,H(n)是发送端第n个发送时隙后收到的接收者报告RR中最高序列号; 步骤(2-3)、计算第n个发送时隙时网络的包丢失率F(n),为发送端第n个发送时隙丢失的RTP发送数据包个数L(n)与接收端第n个发送时隙应收到的RTP发送数据包的个数R(n)之比,用公式表达为 F(n)=L(n)/R(n); 步骤(2-4)、对第n个发送时隙时网络的包丢失率F(n)进行平滑处理得到当前网络的丢包率P(n), P(n)=(1-β)×P(n-1)+β×F(n),其中,β为平滑因子,0.5≤β≤0.8。
与现有技术相比,本发明的优点在于 1、通过在发送端截取RTCP数据包中提供的接收者报告RR,在发送端建立了一个网络带宽使用状态信息的反馈机制,能实时了解当前网络的丢包率状态; 2、本发明对经过MPEG-4编码后的多媒体数据流采取合理的、动态的RTP分包方法,可以根据网络条件(如带宽、拥塞程度等)的变化自适应地调整RTP发送数据包大小,以此来提供更好的服务质量,把丢包率控制在中低程度。同时能提高带宽使用率,不浪费有限的带宽资源。
3、采用本发明的传输方法,接收端在解码时可以采用差错掩盖技术,使解码时尽可能掩盖和减小由于丢包而出现的差错,使图像的视觉效果接近于原来的效果。



图1为本发明实施例中,发送端与接收端之间的传输机制示意图; 图2为本发明实施例中,根据当前网络的带宽使用状态对一个封装单元VOP进行分包的流程图。

具体实施例方式 以下结合附图实施例对本实用新型作进一步详细描述。
如图1所示,在无线网络系统中,发送端将经过MPEG-4编码后的多媒体数据流采用RTP实时传输协议与RTCP实时控制协议通过网络传输给接收端,并使用RTCP数据包来建立反馈,使之动态的分配传输的RTP发送数据包的大小,其包括以下步骤 步骤一设置网络路径最大传输单元MTU的大小,优选值为512字节; 步骤二在发送端截取RTCP数据包中提供的接收者报告RR,并计算当前网络的丢包率;这里当前网络的丢包率通过以下方法计算 步骤(2-1)、计算发送端一个发送时隙前后接收的两个接收者报告RR中丢失的RTP发送数据包的累计数之差,得到发送端一个发送时隙丢失的RTP发送数据包个数L(n),用公式表达为 L(n)=C(n)-C(n-1),其中C(n)是发送端在第n个发送时隙后共丢失的RTP发送数据包的累计数; 步骤(2-2)、计算发送端一个发送时隙前后接收的两个接收者报告RR中最高序列号的差,得到接收端一个发送时隙应收到的RTP发送数据包的个数R(n),用公式表达为 R(n)=H(n)-H(n-1),其中,H(n)是发送端第n个发送时隙后收到的接收者报告RR中最高序列号; 步骤(2-3)、计算第n个发送时隙时网络的包丢失率F(n),为发送端第n个发送时隙丢失的RTP发送数据包个数L(n)与接收端第n个发送时隙应收到的RTP发送数据包的个数R(n)之比,用公式表达为 F(n)=L(n)/R(n); 步骤(2-4)、对第n个发送时隙时网络的包丢失率F(n)进行平滑处理得到当前网络的丢包率P(n), P(n)=(1-β)×P(n-1)+β×F(n),其中,β为平滑因子,0.5≤β≤0.8。
这里,第n个发送时隙时网络的包丢失率F(n)是发送端估计无线网络信道状况的指标,但不能直接利用第n个发送时隙时网络的包丢失率F(n)判断网络信道状况并据此调整传输RTP发送数据包的大小,因为,这会使传输RTP发送数据包的大小变动得过于频繁,也使接收端的图像质量不稳定。在利用第n个发送时隙时网络的包丢失率F(n)估计网络信道状况之前,先对其作平滑处理;当β值增加时,第n个发送时隙时网络的包丢失率F(n)对平滑的结果P(n)影响增大;当β值取低时,以前的平滑结果P(n-1)对当前产生的平滑结果P(n)影响增大。根据实验的统计结果来确定平滑因子β值,一般β的取值范围为
;本发明采用的最优选择值为0.6。采用用平滑处理后的丢包率进行网络信道状况的判断有利于合理调整RTP发送数据包的大小; 步骤三根据当前网络的丢包率确定当前网络的带宽使用状态是处于拥塞状态还是处于轻载状态;这里,当前网络的带宽使用状态通过以下方法判断 步骤(3-1)、设置一个网络丢包率的门限值,该网络丢包率的门限值范围为[3%,10%],这里优选为5%; 步骤(3-2)、如果当前网络的丢包率大于网络丢包率的门限值,则判断当前网络处于拥塞状态;反之则判断当前网络处于轻载状态; 步骤四将发送端的经过MPEG-4编码后的多媒体数据流进行RTP封装通过以下步骤实现参见图2所示 步骤(4-1)、读入一个封装单元VOP; 步骤(4-2)、首先判断该封装单元VOP数据大小是否超出了网络路径的最大传输单元MTU的大小,MTU的优选值选为512字节;若该封装单元VOP的大小小于或等于网络路径最大传输单元MTU的大小,则直接将该封装单元VOP中的数据封装成一个RTP发送数据包进行传输,当前读入的封装单元VOP分包处理结束,返回步骤(4-1); 步骤(4-3)、该封装单元VOP的大小大于网络路径最大传输单元MTU的大小,首先设置一个宏块数量初始值,该宏块数量初始值设为不超过网络路径最大传输单元MTU的最大宏块数量,这里设为100个宏块; 步骤(4-4)、将MBnew个宏块数据封装成一个RTP发送数据包进行传输,MBnew的初始值即为宏块数量初始值; 步骤(4-5)、判断当前读入的封装单元VOP是否还有剩余宏块,如没有,则当前读入的封装单元VOP分包处理结束,返回步骤(4-1),读入下一个封装单元VOP;如果还有剩余宏块,则判断当前网络的带宽使用状态; 步骤(4-6)、如果当前网络的带宽使用状态处于拥塞状态,采用以下方式更新下次传输的RTP发送数据包中的宏块数量,并返回步骤(4-4) MBnew=MIN{[MBpre·α],MBsuiplus} 其中MBnew为根据当前网络的带宽使用状态更新后下次传输的RTP发送数据包中的宏块数量,MBpre为当前本次传输的RTP发送数据包的宏块数量,α为乘性减少因子,α的取值范围为0<α<1,MBsuiplus为一个封装单元VOP中所剩余的宏块个数;使用乘性方式快速地减少下一个RTP发送数据包中的宏块个数,使之尽快地适应网络的丢包状况; 步骤(4-7)、如果当前网络处于轻载状态时,采用以下方式更新RTP发送数据包中的宏块数量,并返回步骤(4-4) MBnew=MIN{[MBpre+AIR],MBsuiplus} 其中MBnew为根据当前网络的带宽使用状态更新后下次传输的RTP发送数据包中的宏块数量,MBpre为当前本次传输的RTP发送数据包的宏块数量,AIR为线性增量因子,AIR的取值范围为0<AIR<50,由于网络条件较好,通过加上一个线性增量因子AIR,来使用线性方式逐渐增加下一个RTP发送数据包中的宏块个数;MBsuiplus为一个封装单元VOP中所剩余的宏块个数。
权利要求
1、一种基于MPEG-4编码的多媒体数据流自适应网络带宽的传输方法,发送端将经过MPEG-4编码后的多媒体数据流采用RTP实时传输协议与RTCP实时控制协议通过网络传输给接收端,其特征在于包括以下步骤
步骤一设置网络路径最大传输单元MTU的大小;
步骤二在发送端截取RTCP数据包中提供的接收者报告RR,并计算当前网络的丢包率;
步骤三根据当前网络的丢包率确定当前网络的带宽使用状态是处于拥塞状态还是处于轻载状态;
步骤四将发送端的经过MPEG-4编码后的多媒体数据流进行RTP封装,读入一个封装单元VOP,若该封装单元VOP的大小小于或等于网络路径最大传输单元MTU的大小,则直接将该封装单元VOP中的数据封装成一个RTP发送数据包进行传输;若该封装单元VOP的大小大于网络路径最大传输单元MTU的大小,则根据当前网络的带宽使用状态,对当前打入的一个封装单元VOP以宏块为单位进行分包,分成不同的RTP发送数据包进行传输,并且还根据当前网络的带宽使用状态,实时更新下次传输的RTP发送数据包中的宏块数量,即如果当前网络的带宽使用状态处于拥塞状态,则根据本次传输的RTP发送数据包的宏块数量,减少下次传输的RTP发送数据包中的宏块数量;如果当前网络的带宽使用状态处于轻载状态,则根据本次传输的RTP发送数据包的宏块数量,增加下次传输的RTP发送数据包中的宏块数量。
2、根据权利要求1所述的自适应网络带宽的多媒体数据流的传输方法,其特征在于所述步骤三中,通过以下方法判断当前网络的的带宽使用状态是处于拥塞状态还是处于轻载状态
步骤(3-1)、设置一个网络丢包率的门限值,该网络丢包率的门限值范围为[3%,10%];
步骤(3-2)、如果当前网络的丢包率大于网络丢包率的门限值,则判断当前网络处于拥塞状态;反之则判断当前网络处于轻载状态。
3、根据权利要求1所述的自适应网络带宽的多媒体数据流的传输方法,其特征在于所述步骤四中,通过以下步骤对当前打入的一个封装单元VOP以宏块为单位进行分包
步骤(4-1)、设置一个宏块数量初始值,该宏块数量初始值设为不超过网络路径最大传输单元MTU的最大宏块数量;
步骤(4-2)、将MBnew个宏块数据封装成一个RTP发送数据包进行传输,MBnew的初始值即为宏块数量初始值;
步骤(4-3)、判断当前读入的封装单元VOP是否还有剩余宏块,如没有,则当前读入的封装单元VOP分包处理结束,返回步骤四,读入下一个封装单元VOP;如果还有剩余宏块,则判断当前网络的带宽使用状态;
步骤(4-4)、如果当前网络的带宽使用状态处于拥塞状态,采用以下方式更新下次传输的RTP发送数据包中的宏块数量,并返回步骤(4-2)
MBnew=MIN{[MBpre·α],MBsuiplus }
其中MBnew为根据当前网络的带宽使用状态更新后下次传输的RTP发送数据包中的宏块数量,MBpre为当前本次传输的RTP发送数据包的宏块数量,α为乘性减少因子,α的取值范围为0<α<1,MBsuiplus为一个封装单元VOP中所剩余的宏块个数;
步骤(4-5)、如果当前网络处于轻载状态时,采用以下方式更新RTP发送数据包中的宏块数量,并返回步骤(4-2)
MBnew=MIN{[MBpre+AIR],MBsuiplus}
其中MBnew为根据当前网络的带宽使用状态更新后下次传输的RTP发送数据包中的宏块数量,MBpre为当前本次传输的RTP发送数据包的宏块数量,AIR为线性增量因子,AIR的取值范围为0<AIR<50,MBsuiplus为一个封装单元VOP中所剩余的宏块个数。
4、根据权利要求1所述的自适应网络带宽的多媒体数据流的传输方法,其特征在于所述步骤二中,当前网络的丢包率通过以下方法计算
步骤(2-1)、计算发送端一个发送时隙前后接收的两个接收者报告RR中丢失的RTP发送数据包的累计数之差,得到发送端一个发送时隙丢失的RTP发送数据包个数L(n),用公式表达为
L(n)=C(n)-C(n-1),其中C(n)是发送端在第n个发送时隙后共丢失的RTP发送数据包的累计数;
步骤(2-2)、计算发送端一个发送时隙前后接收的两个接收者报告RR中最高序列号的差,得到接收端一个发送时隙应收到的RTP发送数据包的个数R(n),用公式表达为
R(n)=H(n)-H(n-1),其中,H(n)是发送端第n个发送时隙后收到的接收者报告RR中最高序列号;
步骤(2-3)、计算第n个发送时隙时网络的包丢失率F(n),为发送端第n个发送时隙丢失的RTP发送数据包个数L(n)与接收端第n个发送时隙应收到的RTP发送数据包的个数R(n)之比,用公式表达为
F(n)=L(n)/R(n);
步骤(2-4)、对第n个发送时隙时网络的包丢失率F(n)进行平滑处理得到当前网络的丢包率P(n),
P(n)=(1-β)×P(n-1)+β×F(n),其中,β为平滑因子,0.5≤β≤0.8。
全文摘要
本发明涉及基于MPEG-4编码的多媒体数据流自适应网络带宽的传输方法,其特征在于包括以下步骤首先在发送端截取RTCP数据包中提供的接收者报告RR,并计算当前网络的丢包率;根据当前网络的丢包率确定当前网络的带宽使用状态是处于拥塞状态还是处于轻载状态;将发送端的经过MPEG-4编码后的多媒体数据流进行RTP封装,根据当前网络的带宽使用状态,自适应更新下次传输的RTP发送数据包中的宏块数量。与现有技术相比,本发明的优点在于能实时了解当前网络的丢包率状态,可以根据网络条件(如带宽、拥塞程度等)的变化自适应地调整RTP发送数据包大小,以此来提供更好的服务质量,把丢包率控制在中低程度。同时能提高带宽使用率,不浪费有限的带宽资源。
文档编号H04L29/06GK101562615SQ20091009892
公开日2009年10月21日 申请日期2009年5月20日 优先权日2009年5月20日
发明者鸣 杨, 薇 卓, 旭 吴, 湖 章, 王建宏, 邵赛赛 申请人:宁波大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1