CN1256832C - 互联网多媒体实时通信中的前向纠错方法 - Google Patents
互联网多媒体实时通信中的前向纠错方法 Download PDFInfo
- Publication number
- CN1256832C CN1256832C CN 02131208 CN02131208A CN1256832C CN 1256832 C CN1256832 C CN 1256832C CN 02131208 CN02131208 CN 02131208 CN 02131208 A CN02131208 A CN 02131208A CN 1256832 C CN1256832 C CN 1256832C
- Authority
- CN
- China
- Prior art keywords
- packet
- data
- packet loss
- group
- packets
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
本发明是一种互联网多媒体实时通信中的差错控制方法,其目标是解决Internet上多媒体通信中的丢包问题。该方法在数据发送端将多个数据包组成一个数据包组,并生成前向纠错的冗余数据包;在接收端,当检测到丢包时,则利用同组的数据包以及相应的冗余数据包将丢失的数据包恢复出来。通过对大量的实验测试,本发明提出了一个方案,在保证系统实时性的基础上大大降低了系统的丢包率。
Description
本发明涉及一种互联网多媒体实时通信中的差错控制方法。
在网络多媒体实时通信中,由于实时性的要求,多媒体数据一般是通过不可靠传输协议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),通过异或,其生成方法为:
D1D2D3=F1
这样,这四个包中任意丢失一个包,都可以无误的恢复出原始的三个语音数据包。方法如下:
D2=D1D3F1
XOR(5,3)
如果针对一组数据包要生成多个冗余数据包,也可以通过异或的方法来实现。其实现方法是多种多样的,比如要从3个数据包中生成2个冗余数据包,就可以这样实现:
D1D2=F1
D1D3=F2
通过这样的FEC机制,当5个数据包任意丢掉一个时,可以完全恢复出来;而如果5个数据包中任意丢掉了两个,就只有80%的概率可以将丢包完全恢复出来。
表格1
收到的数据包 | 恢复方法 | 恢复个数 |
D1、D2、F2 | D3=D1F2 | 3 |
D1、D3、F1 | D2=D1F1 | 3 |
D1、D2、D3 | 3 | |
D1、F1、F2 | D2=D1F1D3=D1F2 | 3 |
D1、D2、F1 | 2 | |
D1、D3、F2 | 2 | |
D2、D3、F1 | D1=D2F1 | 3 |
D2、D3、F2 | D1=D3F2 | 3 |
D2、F1、F2 | D1=D2F1;D3=D1F2 | 3 |
D3、F1、F2 | D1=D3F2;D2=D1F1 | 3 |
如果5个数据包中丢掉了3个,那么恢复情况如下:
表格2
收到的数据包 | 恢复方法 | 恢复个数 |
D1、F1 | D2=D1F1 | 2 |
D1、F2 | D3=D1F2 | 2 |
D2、F1 | D1=D2F1 | 2 |
D3、F2 | D1=D3F2 | 2 |
D1、D2 | 2 | |
D1、D3 | 2 | |
D2、D3 | 2 | |
D2、F2 | 1 | |
D3、F1 | 1 | |
F1、F2 | 0 |
XOR(6,3)
通过3个数据包生成3个冗余数据包,可以用如下方法实现:
D1D2=F1
D1D3=F2
D2D3=F3
这样,6个数据包中只要能保证有任意4个被对方接收到,就可以完全无误的恢复出所有原始数据包。
如果只收到3个数据包,有以下4种情况只能恢复出部分数据:
表格3
收到的数据包 | 恢复方法 | 恢复个数 |
D1、D2、F1 | 2 | |
D1、D3、F2 | 2 | |
D2、D3、F3 | 2 | |
F1、F2、F3 | 0 | |
其他(16种分布) | D1=D2F1D2=D1F1D3=D2F3... | 3 |
如果只收到2个数据包,数据恢复情况如下:
表格4
收到的数据包 | 恢复方法 | 恢复个数 |
D1、F1 | D2=D1F1 | 2 |
D1、F2 | D3=D1F2 | 2 |
D2、F1 | D1=D2F1 | 2 |
D3、F2 | D1=D3F2 | 2 |
D2、F3 | D1=D2F3 | 2 |
D3、F3 | D2=D3F3 | 2 |
D1、D2 | 2 | |
D1、D3 | 2 | |
D2、D3 | 2 | |
D1、F3 | 1 | |
D2、F2 | 1 |
D3、F1 | 1 | |
F1、F2 | 0 | |
F1、F3 | 0 | |
F2、F3 | 0 |
几种FEC机制的丢包恢复效果的理论分析
前面介绍了通过异或算法得出的几种FEC机制,不同的FEC机制会产生不同的丢包恢复率同时也引入不同的代价。下面我们首先从理论上分析三种FEC机制的各个参数。
网络的丢包现象可以看作是二阶的Gilbert模型。从状态0(不丢包)到状态1(丢包)的转移概率为p,从状态1到状态0的转移概率为q。在不做任何差错控制的情况下,网络的丢包率应该为:
loss rate=p/(p+q)
为了下面的讨论清楚起见,我们假设p+q=1。这样,原来的Gilbert模型就简化成为一个Bernoulli模型。而网络丢包率也就变成了p。显然,这个简化对我们的问题的性质和结论不会产生影响。
XOR(4,3)
每3个数据包为一组,生成1个冗余包,那么有效数据的传输效率为3/4=75%
下面我们以这4个包为一组,具体讨论其丢包恢复效果:
收到数据包情况 | 恢复出的原始数据包个数 | 概率 |
所有4个数据包 | 3 | C4 4*(1-p)4 |
任意3个数据包 | 3 | C4 3*p(1-p)3 |
只有2个原始数据包 | 2 | C3 2*p2(1-p)2 |
只有1个原始数据包和1个FEC包 | 1 | C3 1*p2(1-p)2 |
只有1个原始数据包 | 1 | C3 1*p3(1-p) |
通过上面的推导克制,经过XOR(4,3)进行差错控制后,得到的平均网络丢包率应该为:
举例来说,如果原来的网络丢包率p=20%的话,经过XOR(4,3)差错控制后,丢包率应该是p′≈9.8%
XOR(5,3)
每3个数据包为一组,生成2个冗余包,那么有效数据的传输效率为3/5=60%
下面我们以这5个包为一组,具体讨论其丢包恢复效果:
收到数据包情况 | 恢复出的原始数据包个数 | 概率 |
所有5个数据包 | 3 | C5 5*(1-p)5 |
任意4个数据包 | 3 | C5 4*p(1-p)4 |
任意3个数据包 | 3 | 8*p2(1-p)3 |
2 | 2*p2(1-p)3 | |
任意2个数据包 | 2 | 7*p3(1-p)2 |
1 | 2*p3(1-p)2 | |
1个原始数据包 | 1 | 3*p4(1-p) |
通过上面的推导克制,经过XOR(5,3)进行差错控制后,得到的平均网络丢包率应该为:
举例来说,如果原来的网络丢包率p=20%的话,经过XOR(5,3)差错控制后,丢包率应该是p′≈4.3%
XOR(6,3)
每3个数据包为一组,生成3个冗余包,那么有效数据的传输效率为3/6=50%
下面我们以这6个包为一组,具体讨论其丢包恢复效果:
收到数据包情况 | 恢复出的原始数据包个数 | 概率 |
所有6个数据包 | 3 | C6 6*(1-p)6 |
任意5个数据包 | 3 | C6 5*p(1-p)5 |
任意4个数据包 | 3 | C6 4*p2(1-p)4 |
任意3个数据包 | 3 | 16*p3(1-p)3 |
2 | 3*p3(1-p)3 | |
任意2个数据包 | 2 | 9*p4(1-p)2 |
1 | 3*p4(1-p)2 | |
1个原始数据包 | 1 | 3*p5(1-p) |
通过上面的推导克制,经过XOR(6,3)进行差错控制后,得到的平均网络丢包率应该为:
举例来说,如果原来的网络丢包率p=20%的话,经过XOR(6,3)差错控制后,丢包率应该是p′≈1.8%
前面介绍了三种通过异或来实现FEC的方案,XOR(4,3),XOR(5,3)和XOR(6,3)。在实际的实现中,考虑到纠错信息的发送方式对丢包恢复率、延时和传输效率也有很大的影响。我们将把这三种纠错方式进行更细致的划分,分别是:
方案1:FEC(4,3),纠错包F单独发送,记为FEC(4,3)-3。最后的3表示译码延时(以数据包为单位)。见附图2。
方案2:FEC(5,3),纠错包F1、F2分别跟随在D4、D5后发送,记为FEC(5,3)-5。见附图3。
方案3:FEC(6,3),纠错包F1、F2、F3分别跟随在D4、D5、D6后发送,已为FEC(6,3)-6。见附图4。
自适应差错控制方案
通过对FEC机制的理论分析和大量的实验结果分析,我们最后提出了一套自适应差错控制方案。
原始丢包率 | 差错控制方案 | 译码延时 |
<3% | 不做差错控制 | 60ms |
3%~10% | FEC(4,3)-3 | 180ms |
10%~25% | FEC(5,3)-5 | 300ms |
>25% | FEC(6,3)-6 | 360ms |
Claims (1)
1.一种互联网多媒体实时通信的前向纠错方法,包括使用UDP协议作为底层多媒体通信协议,将连续的几个数据包看成数据包组,通过前向纠错算法为数据包组生成冗余校验包,随数据包一起发送,对UDP数据包在传输中发生的丢包进行恢复,其特征在于:根据网络的数据包原始丢包率决定每个数据包组生成冗余校验包的个数,当所述的数据包原始丢包率小于3%时,不做差错处理,冗余校验包的个数为零;当所述的数据包原始丢包率在3%-10%之间时,3个数据包组成的一组数据包生成1个冗余校验包;当所述的数据包原始丢包率在10%-25%之间时,3个数据包组成的一组数据包生成2个冗余校验包;当所述的数据包原始丢包率在25%以上时,3个数据包组成的一组数据包生成3个冗余校验包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 02131208 CN1256832C (zh) | 2002-09-13 | 2002-09-13 | 互联网多媒体实时通信中的前向纠错方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 02131208 CN1256832C (zh) | 2002-09-13 | 2002-09-13 | 互联网多媒体实时通信中的前向纠错方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1482779A CN1482779A (zh) | 2004-03-17 |
CN1256832C true CN1256832C (zh) | 2006-05-17 |
Family
ID=34144834
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 02131208 Expired - Fee Related CN1256832C (zh) | 2002-09-13 | 2002-09-13 | 互联网多媒体实时通信中的前向纠错方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1256832C (zh) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7328393B2 (en) * | 2004-04-13 | 2008-02-05 | Cisco Technology, Inc. | Forward error correction in packet networks |
CN101193060B (zh) * | 2006-12-01 | 2010-09-01 | 武汉烽火网络有限责任公司 | 在分组网上采用前向纠错机制实现可靠的e1传送的方法 |
CN101123588B (zh) * | 2007-09-14 | 2013-01-23 | 华为技术有限公司 | 控制冗余数据包传输的方法、媒体网关及系统 |
CN100571217C (zh) * | 2007-09-19 | 2009-12-16 | 腾讯科技(深圳)有限公司 | 一种在数据传输过程中抵抗丢包的方法、收发装置及系统 |
CN101404661B (zh) * | 2008-11-20 | 2012-05-09 | 华北电力大学 | 一种基于udp协议的实时数据通讯方法 |
CN101854286B (zh) * | 2009-04-01 | 2012-09-05 | 北京大学 | 基于用户数据报协议的数据流发送、接收方法及装置 |
CN102025717B (zh) * | 2010-09-10 | 2013-09-11 | 香港城市大学深圳研究院 | 一种传输多媒体数据的方法 |
CN104065447A (zh) * | 2013-03-22 | 2014-09-24 | 联想(北京)有限公司 | 信息处理的方法及电子设备 |
CN104579579B (zh) * | 2015-01-30 | 2019-05-14 | 深圳信息职业技术学院 | 一种大数据包传输方法和系统 |
CN106034011A (zh) * | 2015-03-11 | 2016-10-19 | 中国移动通信集团四川有限公司 | 一种组播传输质量保障的控制方法及系统 |
CN106937134B (zh) * | 2015-12-31 | 2021-03-02 | 深圳市潮流网络技术有限公司 | 一种数据传输的编码方法、编码发送装置及系统 |
CN108616328A (zh) * | 2016-12-12 | 2018-10-02 | 北京视联动力国际信息技术有限公司 | 一种音视频流丢包恢复方法及音视频流发送端和接收端 |
CN107241166A (zh) | 2017-06-12 | 2017-10-10 | 京信通信系统(中国)有限公司 | 一种长期演进上的语音Volte数据保障方法和设备 |
CN110191488B (zh) * | 2019-05-17 | 2022-07-29 | 京信网络系统股份有限公司 | Volte保障传输的方法、装置及系统 |
CN110503935B (zh) * | 2019-07-16 | 2020-11-06 | 北京达佳互联信息技术有限公司 | 音频数据处理方法、装置、电子设备及存储介质 |
CN112532341A (zh) * | 2019-09-17 | 2021-03-19 | 青岛海信宽带多媒体技术有限公司 | 一种媒体数据播放方法及装置 |
CN112671509B (zh) * | 2020-12-18 | 2023-04-28 | 杭州叙简科技股份有限公司 | 一种基于fec冗余的数据包抗丢包方法和装置 |
CN113242155A (zh) * | 2021-03-30 | 2021-08-10 | 深圳震有科技股份有限公司 | 一种数据包丢包的恢复方法、系统及计算机可读存储介质 |
CN113938881A (zh) * | 2021-10-18 | 2022-01-14 | 上海华讯网络系统有限公司 | 适用于互联网数据的传输系统及方法 |
-
2002
- 2002-09-13 CN CN 02131208 patent/CN1256832C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1482779A (zh) | 2004-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1256832C (zh) | 互联网多媒体实时通信中的前向纠错方法 | |
TWI403133B (zh) | 對單一封包使用多調變方案之方法及裝置 | |
CN1100394C (zh) | 自动请求重发系统的检错方案 | |
CN1225860C (zh) | 一种混合自动重传方法 | |
CN101938334B (zh) | 随机网络编码和自动重传请求联合的自适应差错控制方法 | |
CN101136722B (zh) | 一种适用于高速移动终端的数据发送方法及传输设备 | |
CN1864335A (zh) | 基于前向纠错(fec)的可靠性控制协议 | |
CN101621367B (zh) | 一种基于包校验信息的harq译码方法 | |
WO2009015170A1 (en) | Hybrid automatic repeat request (harq) systems and methods for packet-based networks | |
CN1394029A (zh) | 进行重发管理的发射机、接收机、收发机以及通信系统 | |
CN1152511C (zh) | 通过合并数据包改变交织长度的信息重传方法 | |
CN1490972A (zh) | 基于均匀与非均匀调制星座图映射的不等保护混合自动重传请求方法 | |
CN101442383B (zh) | 一种高阶调制中的比特优先映射方法 | |
US8271860B2 (en) | Retransmission method and device based on low density parity check codes | |
CN101286819B (zh) | 一种数据接收方法及装置 | |
CN1925383A (zh) | 一种数据包重传方法及发送装置和重传系统 | |
CN1647440A (zh) | 在接收器端具有决定可能重传请求的拥塞控制的传输系统 | |
CN101060338A (zh) | 一种卷积码速率匹配的方法和装置 | |
CN1165143C (zh) | 在通信系统中生成编码 | |
CN1432212A (zh) | 通信系统中收缩编码码元的方法和装置 | |
CN105391530A (zh) | 一种基于网络编码的卫星网络可靠组播方法 | |
CN104009830B (zh) | 基于有限集合网络编码arq的大规模接收端数据广播方法 | |
CN101459490B (zh) | 一种数据传输方法及装置 | |
CN102891737A (zh) | 一种二进制无速率码的编码和译码方法及系统 | |
CN1186899C (zh) | 一种混合自动请求重发(harq)方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20060517 Termination date: 20200913 |
|
CF01 | Termination of patent right due to non-payment of annual fee |