專利名稱:互聯(lián)網(wǎng)多媒體實時通信中的前向糾錯方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種互聯(lián)網(wǎng)多媒體實時通信中的差錯控制方法。
在網(wǎng)絡(luò)多媒體實時通信中,由于實時性的要求,多媒體數(shù)據(jù)一般是通過不可靠傳輸協(xié)議UDP來傳輸?shù)?。而?dāng)網(wǎng)絡(luò)帶寬不足或者網(wǎng)絡(luò)環(huán)境不穩(wěn)定時,由于UDP協(xié)議的不可靠性,就會出現(xiàn)數(shù)據(jù)包丟失的現(xiàn)象,或稱丟包。這會大大降低通信質(zhì)量。
為了抑制因為網(wǎng)絡(luò)丟包而造成的通信質(zhì)量下降,本發(fā)明提出了一種前向糾錯算法。即根據(jù)網(wǎng)絡(luò)環(huán)境的不同,在數(shù)據(jù)發(fā)送端給數(shù)據(jù)包加入不同的冗余信息,當(dāng)接受端發(fā)現(xiàn)有數(shù)據(jù)包丟失時,可以根據(jù)冗余信息將丟失數(shù)據(jù)恢復(fù)出來。
在Internet上傳輸數(shù)據(jù)時,由于底層通信協(xié)議已經(jīng)對傳輸中產(chǎn)生的誤碼做了校驗,所以可以保證收到的數(shù)據(jù)包的準(zhǔn)確性。但是對于UDP這樣的不可靠傳輸協(xié)議,丟包仍然會發(fā)生。傳統(tǒng)的解決丟包的方法是自動重復(fù)請求(ARQ),這種方法的最大代價就是引入了大量的延時,而增大的延時會直接導(dǎo)致實時通信系統(tǒng)的可用性大大降低。
為解決現(xiàn)有技術(shù)中存在的問題,本發(fā)明提出一種延時小并且能較好的對丟包進行恢復(fù)的算法。
下面對本發(fā)明的方法作出說明(1)在系統(tǒng)的發(fā)送端,將連續(xù)的幾個實時數(shù)據(jù)包看作一個數(shù)據(jù)包組;(2)根據(jù)網(wǎng)絡(luò)的丟包率大小,通過前向糾錯(FEC)算法為數(shù)據(jù)包組生成冗余校驗包,隨數(shù)據(jù)包一起發(fā)送;(3)接收方收到數(shù)據(jù)包后,如果發(fā)現(xiàn)有丟包現(xiàn)象,則通過同組的數(shù)據(jù)包已經(jīng)相應(yīng)的冗余校驗包對丟包進行恢復(fù)。
在附
圖1中,發(fā)送端的數(shù)據(jù)包為D1、D2、D3,此三個數(shù)據(jù)包形成了一個數(shù)據(jù)包組。通過前向糾錯(FEC)編碼器生成兩個冗余數(shù)據(jù)包F1、F2。在網(wǎng)絡(luò)傳輸中,假設(shè)D3、F1數(shù)據(jù)包被丟失,則在接收端,可以通過FEC解碼器,利用D1、D2、F2中的信息將原始的D3數(shù)據(jù)包恢復(fù)出來,從而保證通信的質(zhì)量。前向就錯(FEC)算法的選擇以及恢復(fù)方法在通信領(lǐng)域中,F(xiàn)EC有許多的實現(xiàn)方法,針對突發(fā)性的差錯,一般采用交織碼、BCH碼、Reed-Solomon碼等方法。
在我們的要解決的問題中可以看出UDP的數(shù)據(jù)包丟失具有這樣一些特點1.收到的數(shù)據(jù)都是正確的2.丟失的數(shù)據(jù)都知道其相應(yīng)的位置另外,考慮到延時的控制,前向糾錯的分組長度也應(yīng)該保證在2或3以內(nèi)。根據(jù)以上這些特點,我們可以采用更簡單、針對性更強的糾錯算法來實現(xiàn)FEC。在本發(fā)明中,我們使用的是異或方法。
為了表示方便,我們用XOR(m,n)來表示通過異或?qū)崿F(xiàn)的FEC。其中,m是經(jīng)過抑或后,整個組的數(shù)據(jù)包個數(shù);n是組中原始的多媒體數(shù)據(jù)包個數(shù);m-n就是經(jīng)過抑或生成的冗余數(shù)據(jù)包個數(shù)。XOR(4,3)假設(shè)前向糾錯為3個數(shù)據(jù)包(D1,D2,D3)一組,生成一個冗余數(shù)據(jù)包(F1),通過異或,其生成方法為D1D2D3=F1這樣,這四個包中任意丟失一個包,都可以無誤的恢復(fù)出原始的三個語音數(shù)據(jù)包。方法如下D2=D1D3F1XOR(5,3)如果針對一組數(shù)據(jù)包要生成多個冗余數(shù)據(jù)包,也可以通過異或的方法來實現(xiàn)。其實現(xiàn)方法是多種多樣的,比如要從3個數(shù)據(jù)包中生成2個冗余數(shù)據(jù)包,就可以這樣實現(xiàn)D1D2=F1D1D3=F2通過這樣的FEC機制,當(dāng)5個數(shù)據(jù)包任意丟掉一個時,可以完全恢復(fù)出來;而如果5個數(shù)據(jù)包中任意丟掉了兩個,就只有80%的概率可以將丟包完全恢復(fù)出來。
表格1
如果5個數(shù)據(jù)包中丟掉了3個,那么恢復(fù)情況如下表格2
XOR(6,3)通過3個數(shù)據(jù)包生成3個冗余數(shù)據(jù)包,可以用如下方法實現(xiàn)D1D2=F1
D1D3=F2D2D3=F3這樣,6個數(shù)據(jù)包中只要能保證有任意4個被對方接收到,就可以完全無誤的恢復(fù)出所有原始數(shù)據(jù)包。
如果只收到3個數(shù)據(jù)包,有以下4種情況只能恢復(fù)出部分?jǐn)?shù)據(jù)表格3
如果只收到2個數(shù)據(jù)包,數(shù)據(jù)恢復(fù)情況如下表格4
幾種FEC機制的丟包恢復(fù)效果的理論分析前面介紹了通過異或算法得出的幾種FEC機制,不同的FEC機制會產(chǎn)生不同的丟包恢復(fù)率同時也引入不同的代價。下面我們首先從理論上分析三種FEC機制的各個參數(shù)。
網(wǎng)絡(luò)的丟包現(xiàn)象可以看作是二階的Gilbert模型。從狀態(tài)0(不丟包)到狀態(tài)1(丟包)的轉(zhuǎn)移概率為p,從狀態(tài)1到狀態(tài)0的轉(zhuǎn)移概率為q。在不做任何差錯控制的情況下,網(wǎng)絡(luò)的丟包率應(yīng)該為loss rate=p/(p+q)為了下面的討論清楚起見,我們假設(shè)p+q=1。這樣,原來的Gilbert模型就簡化成為一個Bemoulli模型。而網(wǎng)絡(luò)丟包率也就變成了p。顯然,這個簡化對我們的問題的性質(zhì)和結(jié)論不會產(chǎn)生影響。XOR(4,3)每3個數(shù)據(jù)包為一組,生成1個冗余包,那么有效數(shù)據(jù)的傳輸效率為3/4=75%下面我們以這4個包為一組,具體討論其丟包恢復(fù)效果
通過上面的推導(dǎo)克制,經(jīng)過XOR(4,3)進行差錯控制后,得到的平均網(wǎng)絡(luò)丟包率應(yīng)該為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]]>舉例來說,如果原來的網(wǎng)絡(luò)丟包率p=20%的話,經(jīng)過XOR(4,3)差錯控制后,丟包率應(yīng)該是p′≈9.8%XOR(5,3)每3個數(shù)據(jù)包為一組,生成2個冗余包,那么有效數(shù)據(jù)的傳輸效率為3/5=60%下面我們以這5個包為一組,具體討論其丟包恢復(fù)效果
通過上面的推導(dǎo)克制,經(jīng)過XOR(5,3)進行差錯控制后,得到的平均網(wǎng)絡(luò)丟包率應(yīng)該為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]]>舉例來說,如果原來的網(wǎng)絡(luò)丟包率p=20%的話,經(jīng)過XOR(5,3)差錯控制后,丟包率應(yīng)該是p′≈4.3%XOR(6,3)每3個數(shù)據(jù)包為一組,生成3個冗余包,那么有效數(shù)據(jù)的傳輸效率為3/6=50%下面我們以這6個包為一組,具體討論其丟包恢復(fù)效果
通過上面的推導(dǎo)克制,經(jīng)過XOR(6,3)進行差錯控制后,得到的平均網(wǎng)絡(luò)丟包率應(yīng)該為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]]>舉例來說,如果原來的網(wǎng)絡(luò)丟包率p=20%的話,經(jīng)過XOR(6,3)差錯控制后,丟包率應(yīng)該是p′≈1.8%前面介紹了三種通過異或來實現(xiàn)FEC的方案,XOR(4,3),XOR(5,3)和XOR(6,3)。在實際的實現(xiàn)中,考慮到糾錯信息的發(fā)送方式對丟包恢復(fù)率、延時和傳輸效率也有很大的影響。我們將把這三種糾錯方式進行更細致的劃分,分別是方案1FEC(4,3),糾錯包F單獨發(fā)送,記為FEC(4,3)-3。最后的3表示譯碼延時(以數(shù)據(jù)包為單位)。見附圖2。
方案2FEC(5,3),糾錯包F1、F2分別跟隨在D4、D5后發(fā)送,記為FEC(5,3)-5。見附圖3。
方案3FEC(6,3),糾錯包F1、F2、F3分別跟隨在D4、D5、D6后發(fā)送,記為FEC(6,3)-6。見附圖4。自適應(yīng)差錯控制方案通過對FEC機制的理論分析和大量的實驗結(jié)果分析,我們最后提出了一套自適應(yīng)差錯控制方案。
權(quán)利要求
1.一種在互聯(lián)網(wǎng)多媒體實時通信系統(tǒng)中應(yīng)用的差錯控制方法,其特征包括(a)使用UDP協(xié)議作為底層多媒體通信協(xié)議,多媒體數(shù)據(jù)以UDP數(shù)據(jù)包的形式在網(wǎng)絡(luò)中傳輸。(b)系統(tǒng)對多媒體通信的要求為實時或準(zhǔn)實時。(c)通過前向糾錯方法對網(wǎng)絡(luò)通信中多媒體數(shù)據(jù)的丟包進行恢復(fù)。
2.在權(quán)力要求1中,多媒體可以是音頻、視頻或者是二者的結(jié)合。
3.在權(quán)利要求1(b)中,多媒體實時通信的端到端延時一般在1秒以內(nèi)。而準(zhǔn)實時的多媒體通信系統(tǒng)端到端延時一般在30秒以內(nèi)。具有這樣特征的通信系統(tǒng)我們稱之為實時通信系統(tǒng)或準(zhǔn)實時通信系統(tǒng)。
4.根據(jù)權(quán)利要求1(c)中所述的方法,其特征是利用前向糾錯方法對UDP數(shù)據(jù)包在Internet傳輸中發(fā)生的丟包進行恢復(fù)。
全文摘要
本發(fā)明是一種互聯(lián)網(wǎng)多媒體實時通信中的差錯控制方法,其目標(biāo)是解決Intemet上多媒體通信中的丟包問題。該方法在數(shù)據(jù)發(fā)送端將多個數(shù)據(jù)包組成一個數(shù)據(jù)包組,并生成前向糾錯的冗余數(shù)據(jù)包;在接收端,當(dāng)檢測到丟包時,則利用同組的數(shù)據(jù)包以及相應(yīng)的冗余數(shù)據(jù)包將丟失的數(shù)據(jù)包恢復(fù)出來。通過對大量的實驗測試,本發(fā)明提出了一個方案,在保證系統(tǒng)實時性的基礎(chǔ)上大大降低了系統(tǒng)的丟包率。
文檔編號H04L29/06GK1482779SQ02131208
公開日2004年3月17日 申請日期2002年9月13日 優(yōu)先權(quán)日2002年9月13日
發(fā)明者葉濱, 葉 濱 申請人:北京威速科技有限公司