互联网多媒体实时通信中的前向纠错方法

文档序号:7920521阅读:416来源:国知局
专利名称:互联网多媒体实时通信中的前向纠错方法
技术领域
本发明涉及一种互联网多媒体实时通信中的差错控制方法。
在网络多媒体实时通信中,由于实时性的要求,多媒体数据一般是通过不可靠传输协议UDP来传输的。而当网络带宽不足或者网络环境不稳定时,由于UDP协议的不可靠性,就会出现数据包丢失的现象,或称丢包。这会大大降低通信质量。
为了抑制因为网络丢包而造成的通信质量下降,本发明提出了一种前向纠错算法。即根据网络环境的不同,在数据发送端给数据包加入不同的冗余信息,当接受端发现有数据包丢失时,可以根据冗余信息将丢失数据恢复出来。
在Internet上传输数据时,由于底层通信协议已经对传输中产生的误码做了校验,所以可以保证收到的数据包的准确性。但是对于UDP这样的不可靠传输协议,丢包仍然会发生。传统的解决丢包的方法是自动重复请求(ARQ),这种方法的最大代价就是引入了大量的延时,而增大的延时会直接导致实时通信系统的可用性大大降低。
为解决现有技术中存在的问题,本发明提出一种延时小并且能较好的对丢包进行恢复的算法。
下面对本发明的方法作出说明(1)在系统的发送端,将连续的几个实时数据包看作一个数据包组;(2)根据网络的丢包率大小,通过前向纠错(FEC)算法为数据包组生成冗余校验包,随数据包一起发送;(3)接收方收到数据包后,如果发现有丢包现象,则通过同组的数据包已经相应的冗余校验包对丢包进行恢复。
在附

图1中,发送端的数据包为D1、D2、D3,此三个数据包形成了一个数据包组。通过前向纠错(FEC)编码器生成两个冗余数据包F1、F2。在网络传输中,假设D3、F1数据包被丢失,则在接收端,可以通过FEC解码器,利用D1、D2、F2中的信息将原始的D3数据包恢复出来,从而保证通信的质量。前向就错(FEC)算法的选择以及恢复方法在通信领域中,FEC有许多的实现方法,针对突发性的差错,一般采用交织码、BCH码、Reed-Solomon码等方法。
在我们的要解决的问题中可以看出UDP的数据包丢失具有这样一些特点1.收到的数据都是正确的2.丢失的数据都知道其相应的位置另外,考虑到延时的控制,前向纠错的分组长度也应该保证在2或3以内。根据以上这些特点,我们可以采用更简单、针对性更强的纠错算法来实现FEC。在本发明中,我们使用的是异或方法。
为了表示方便,我们用XOR(m,n)来表示通过异或实现的FEC。其中,m是经过抑或后,整个组的数据包个数;n是组中原始的多媒体数据包个数;m-n就是经过抑或生成的冗余数据包个数。XOR(4,3)假设前向纠错为3个数据包(D1,D2,D3)一组,生成一个冗余数据包(F1),通过异或,其生成方法为D1D2D3=F1这样,这四个包中任意丢失一个包,都可以无误的恢复出原始的三个语音数据包。方法如下D2=D1D3F1XOR(5,3)如果针对一组数据包要生成多个冗余数据包,也可以通过异或的方法来实现。其实现方法是多种多样的,比如要从3个数据包中生成2个冗余数据包,就可以这样实现D1D2=F1D1D3=F2通过这样的FEC机制,当5个数据包任意丢掉一个时,可以完全恢复出来;而如果5个数据包中任意丢掉了两个,就只有80%的概率可以将丢包完全恢复出来。
表格1
如果5个数据包中丢掉了3个,那么恢复情况如下表格2
XOR(6,3)通过3个数据包生成3个冗余数据包,可以用如下方法实现D1D2=F1
D1D3=F2D2D3=F3这样,6个数据包中只要能保证有任意4个被对方接收到,就可以完全无误的恢复出所有原始数据包。
如果只收到3个数据包,有以下4种情况只能恢复出部分数据表格3
如果只收到2个数据包,数据恢复情况如下表格4
几种FEC机制的丢包恢复效果的理论分析前面介绍了通过异或算法得出的几种FEC机制,不同的FEC机制会产生不同的丢包恢复率同时也引入不同的代价。下面我们首先从理论上分析三种FEC机制的各个参数。
网络的丢包现象可以看作是二阶的Gilbert模型。从状态0(不丢包)到状态1(丢包)的转移概率为p,从状态1到状态0的转移概率为q。在不做任何差错控制的情况下,网络的丢包率应该为loss rate=p/(p+q)为了下面的讨论清楚起见,我们假设p+q=1。这样,原来的Gilbert模型就简化成为一个Bemoulli模型。而网络丢包率也就变成了p。显然,这个简化对我们的问题的性质和结论不会产生影响。XOR(4,3)每3个数据包为一组,生成1个冗余包,那么有效数据的传输效率为3/4=75%下面我们以这4个包为一组,具体讨论其丢包恢复效果
通过上面的推导克制,经过XOR(4,3)进行差错控制后,得到的平均网络丢包率应该为1-1/3*[C44*(1-p)4*3+C43*p(1-p)3*3+C32*p2(1-p)2*2]]>+C31*p2(1-p)2*1+C31*p3(1-p)*1]]]>
=3p2-3p3+p4]]>举例来说,如果原来的网络丢包率p=20%的话,经过XOR(4,3)差错控制后,丢包率应该是p′≈9.8%XOR(5,3)每3个数据包为一组,生成2个冗余包,那么有效数据的传输效率为3/5=60%下面我们以这5个包为一组,具体讨论其丢包恢复效果
通过上面的推导克制,经过XOR(5,3)进行差错控制后,得到的平均网络丢包率应该为1-1/3*[C55*(1-p)5*3+C54*p(1-p)4*3+8*p2(1-p)3*3]]>+2*p2(1-p)3*2+7*p3(1-p)2*2+2*p3(1-p)2*1+3*p4(1-p)*1]]]>=(2p2+8p3-10p4+3p5)/3]]>举例来说,如果原来的网络丢包率p=20%的话,经过XOR(5,3)差错控制后,丢包率应该是p′≈4.3%XOR(6,3)每3个数据包为一组,生成3个冗余包,那么有效数据的传输效率为3/6=50%下面我们以这6个包为一组,具体讨论其丢包恢复效果
通过上面的推导克制,经过XOR(6,3)进行差错控制后,得到的平均网络丢包率应该为1-1/3*[C66*(1-p)6*3+C65*p(1-p)5*3+C64*p2(1-p)4*3]]>+16*p3(1-p)3*3+9*p3(1-p)3*2+9*p4(1-p)2*2]]>+3*p4(1-p)2*1+3*p5(1-p)*1]]]>=2p3+2p4-5p5+2p6]]>举例来说,如果原来的网络丢包率p=20%的话,经过XOR(6,3)差错控制后,丢包率应该是p′≈1.8%前面介绍了三种通过异或来实现FEC的方案,XOR(4,3),XOR(5,3)和XOR(6,3)。在实际的实现中,考虑到纠错信息的发送方式对丢包恢复率、延时和传输效率也有很大的影响。我们将把这三种纠错方式进行更细致的划分,分别是方案1FEC(4,3),纠错包F单独发送,记为FEC(4,3)-3。最后的3表示译码延时(以数据包为单位)。见附图2。
方案2FEC(5,3),纠错包F1、F2分别跟随在D4、D5后发送,记为FEC(5,3)-5。见附图3。
方案3FEC(6,3),纠错包F1、F2、F3分别跟随在D4、D5、D6后发送,记为FEC(6,3)-6。见附图4。自适应差错控制方案通过对FEC机制的理论分析和大量的实验结果分析,我们最后提出了一套自适应差错控制方案。
权利要求
1.一种在互联网多媒体实时通信系统中应用的差错控制方法,其特征包括(a)使用UDP协议作为底层多媒体通信协议,多媒体数据以UDP数据包的形式在网络中传输。(b)系统对多媒体通信的要求为实时或准实时。(c)通过前向纠错方法对网络通信中多媒体数据的丢包进行恢复。
2.在权力要求1中,多媒体可以是音频、视频或者是二者的结合。
3.在权利要求1(b)中,多媒体实时通信的端到端延时一般在1秒以内。而准实时的多媒体通信系统端到端延时一般在30秒以内。具有这样特征的通信系统我们称之为实时通信系统或准实时通信系统。
4.根据权利要求1(c)中所述的方法,其特征是利用前向纠错方法对UDP数据包在Internet传输中发生的丢包进行恢复。
全文摘要
本发明是一种互联网多媒体实时通信中的差错控制方法,其目标是解决Intemet上多媒体通信中的丢包问题。该方法在数据发送端将多个数据包组成一个数据包组,并生成前向纠错的冗余数据包;在接收端,当检测到丢包时,则利用同组的数据包以及相应的冗余数据包将丢失的数据包恢复出来。通过对大量的实验测试,本发明提出了一个方案,在保证系统实时性的基础上大大降低了系统的丢包率。
文档编号H04L29/06GK1482779SQ02131208
公开日2004年3月17日 申请日期2002年9月13日 优先权日2002年9月13日
发明者叶滨, 叶 滨 申请人:北京威速科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1