專(zhuān)利名稱(chēng):一種ip語(yǔ)音數(shù)據(jù)包的抗丟包處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種計(jì)算機(jī)網(wǎng)絡(luò)傳輸技術(shù),更確切地說(shuō)是涉及一種基于IP(因特網(wǎng)協(xié)議)傳送與控制相結(jié)合的、具有抗丟包能力的IP語(yǔ)音數(shù)據(jù)包的抗丟包處理方法。
IP電話(huà)業(yè)務(wù)不同于傳統(tǒng)的電路交換,它是基于分組交換進(jìn)行傳輸?shù)?,先按時(shí)間段將語(yǔ)音編碼數(shù)據(jù)分割成幀,再將一幀或多幀語(yǔ)音打成一個(gè)IP語(yǔ)音包在網(wǎng)絡(luò)上傳輸,打包時(shí)按時(shí)間順序?yàn)槊總€(gè)IP語(yǔ)音包插入一序列號(hào)標(biāo)記,供接收端在接收時(shí)判斷是否發(fā)生丟包等,傳輸網(wǎng)絡(luò)可以是公共數(shù)據(jù)網(wǎng)或因特網(wǎng)。由于網(wǎng)絡(luò)的業(yè)務(wù)繁忙狀態(tài)是不斷變化的,不同的IP語(yǔ)音數(shù)據(jù)包經(jīng)過(guò)的傳輸路徑也是不同的,因此IP語(yǔ)音數(shù)據(jù)包從發(fā)送端到接收端的時(shí)延就不可能固定不變,即產(chǎn)生延時(shí)抖動(dòng),且這種延時(shí)抖動(dòng)隨當(dāng)前網(wǎng)絡(luò)業(yè)務(wù)流量的變化和所選擇的路由不同而有著很大的差異,這就導(dǎo)致了在接收端收到的各IP語(yǔ)音數(shù)據(jù)包間的時(shí)間間隔是變化的。但是,接收端必須在固定的時(shí)間間隔內(nèi)對(duì)收到的各IP語(yǔ)音數(shù)據(jù)包進(jìn)行解碼處理而輸出語(yǔ)音,因此要求有效地解決IP語(yǔ)音數(shù)據(jù)包在到達(dá)接收端時(shí)的延時(shí)抖動(dòng)問(wèn)題。目前解決這一問(wèn)題的方法是在接收端增加一緩沖區(qū),但該緩沖區(qū)是定長(zhǎng)的,即緩沖時(shí)間固定不變。
圖1中所示的就是目前防延時(shí)抖動(dòng)的實(shí)現(xiàn)方法,第n-2、第n-1、第n、第n+1、第n+2、第n+3、第n+4、第n+5包IP語(yǔ)音數(shù)據(jù)依序語(yǔ)音解碼輸出,相鄰兩IP語(yǔ)音數(shù)據(jù)包占據(jù)定長(zhǎng)的緩沖區(qū)。
由于在接收端增加了緩沖時(shí)間,必然造成解碼后語(yǔ)音信號(hào)的延時(shí),使實(shí)際交談的自然度變差。因此,在接收端加入的緩沖時(shí)間不能太長(zhǎng),一般只能是幾十個(gè)毫秒,相當(dāng)于緩沖了2-3個(gè)IP語(yǔ)音數(shù)據(jù)包。
但由于接收端加入的緩沖時(shí)間固定不變,這就決定了該方法抵抗網(wǎng)絡(luò)延時(shí)抖動(dòng)的能力也是有限的。在網(wǎng)絡(luò)業(yè)務(wù)流量的變化加劇時(shí),IP語(yǔ)音數(shù)據(jù)包的時(shí)延變化幅度就比較大,往往超過(guò)了幾十個(gè)毫秒的緩沖時(shí)間,這時(shí)接收端的緩沖時(shí)間將基本失去作用,則不可避免地引起丟包。
而當(dāng)網(wǎng)絡(luò)狀態(tài)比較平穩(wěn)時(shí),IP語(yǔ)音數(shù)據(jù)包的延時(shí)抖動(dòng)則較小且相對(duì)固定,但由于接收端的緩沖時(shí)間是固定的,總的語(yǔ)音延時(shí)也是固定的,此時(shí)也并不能使話(huà)音的自然度得到改善。
本發(fā)明的目的是設(shè)計(jì)一種IP語(yǔ)音數(shù)據(jù)包的抗丟包處理方法,以克服因接收端的緩沖時(shí)間固定而造成的兩方面的缺點(diǎn),同時(shí)兼顧網(wǎng)絡(luò)擁擠時(shí)的丟包和提高網(wǎng)絡(luò)平穩(wěn)時(shí)的語(yǔ)音質(zhì)量,從而使接收端解碼后的語(yǔ)音自然度得到改善。
本發(fā)明的目的是這樣實(shí)現(xiàn)的一種IP語(yǔ)音數(shù)據(jù)包的抗丟包處理方法,其特征在于在接收端IP語(yǔ)音數(shù)據(jù)包的時(shí)延抖動(dòng)變化幅度大時(shí),自適應(yīng)地增加接收端IP語(yǔ)音數(shù)據(jù)包緩沖區(qū)的長(zhǎng)度;在接收端IP語(yǔ)音數(shù)據(jù)包的時(shí)延抖動(dòng)變化幅度小時(shí),自適應(yīng)地減小接收端IP語(yǔ)音數(shù)據(jù)包緩沖區(qū)的長(zhǎng)度。
所述的自適應(yīng)地增加、減小接收端IP語(yǔ)音包緩沖區(qū)的長(zhǎng)度,進(jìn)一步包括根據(jù)接收端每個(gè)IP語(yǔ)音數(shù)據(jù)包的到達(dá)時(shí)間計(jì)算每?jī)蓚€(gè)相鄰IP語(yǔ)音數(shù)據(jù)包的延時(shí);根據(jù)每?jī)蓚€(gè)相鄰IP語(yǔ)音數(shù)據(jù)包的延時(shí)計(jì)算延時(shí)抖動(dòng);用平滑系數(shù)對(duì)延時(shí)抖動(dòng)作平滑濾波,預(yù)測(cè)出下一個(gè)到達(dá)IP語(yǔ)音數(shù)據(jù)包的延時(shí)抖動(dòng);設(shè)置一增/緩沖區(qū)的門(mén)限值,并計(jì)算預(yù)測(cè)出的下一個(gè)到達(dá)IP語(yǔ)音數(shù)據(jù)包的延時(shí)抖動(dòng)與當(dāng)前變長(zhǎng)緩沖區(qū)的時(shí)間長(zhǎng)度之差,根據(jù)門(mén)限值與該差值之比,對(duì)當(dāng)前變長(zhǎng)緩沖區(qū)作增加或減小一個(gè)IP語(yǔ)音數(shù)據(jù)包長(zhǎng)度的處理。
所述的根據(jù)門(mén)限值與該差值之比,是在差值大于門(mén)限值且當(dāng)前變長(zhǎng)緩沖區(qū)的時(shí)間長(zhǎng)度小于一最大值時(shí),對(duì)當(dāng)前的變長(zhǎng)緩沖區(qū)作增加一個(gè)IP語(yǔ)音數(shù)據(jù)包長(zhǎng)度的處理;在差值小于負(fù)門(mén)限值且當(dāng)前變長(zhǎng)緩沖區(qū)的時(shí)間長(zhǎng)度大于一最小值時(shí),對(duì)當(dāng)前變長(zhǎng)緩沖區(qū)作減小一個(gè)IP語(yǔ)音數(shù)據(jù)包長(zhǎng)度的處理。
所述的最大值是4個(gè)IP語(yǔ)音數(shù)據(jù)包長(zhǎng)度,所述的最小值是1個(gè)IP語(yǔ)音數(shù)據(jù)包長(zhǎng)度。
還包括設(shè)置一緩沖區(qū)變化標(biāo)識(shí)符,在自適應(yīng)地增加或減小接收端IP語(yǔ)音包緩沖區(qū)長(zhǎng)度的同時(shí),還分別對(duì)緩沖區(qū)變化標(biāo)識(shí)符作加1、減1處理。
還包括當(dāng)所述的緩沖區(qū)變化標(biāo)識(shí)符不為零時(shí),在增加或減小接收端IP語(yǔ)音數(shù)據(jù)包緩沖區(qū)長(zhǎng)度的同時(shí),對(duì)當(dāng)前IP語(yǔ)音數(shù)據(jù)包的語(yǔ)音幀作話(huà)音激活檢測(cè),在檢測(cè)結(jié)果是非激活期時(shí),修正處理當(dāng)前IP語(yǔ)音數(shù)據(jù)包的數(shù)目,使與增加或減小后的接收端IP語(yǔ)音數(shù)據(jù)包緩沖區(qū)長(zhǎng)度相對(duì)應(yīng),同時(shí)將緩沖區(qū)變化標(biāo)識(shí)符清為零。
所述的在話(huà)音激活檢測(cè)結(jié)果是非激活期時(shí),處理當(dāng)前IP語(yǔ)音數(shù)據(jù)包的數(shù)目包括當(dāng)所述的緩沖區(qū)變化標(biāo)識(shí)符大于零時(shí),在增加接收端IP語(yǔ)音數(shù)據(jù)包緩沖區(qū)長(zhǎng)度的同時(shí)簡(jiǎn)單重復(fù)當(dāng)前IP語(yǔ)音數(shù)據(jù)包;當(dāng)所述的緩沖區(qū)變化標(biāo)識(shí)符小于零時(shí),在減小接收端IP語(yǔ)音數(shù)據(jù)包緩沖區(qū)長(zhǎng)度的同時(shí)簡(jiǎn)單丟棄當(dāng)前IP語(yǔ)音數(shù)據(jù)包。
還包括在話(huà)音激活檢測(cè)結(jié)果是激活期時(shí),修正處理當(dāng)前IP語(yǔ)音數(shù)據(jù)包的數(shù)目將延續(xù)到檢測(cè)結(jié)果是非激活期時(shí)再進(jìn)行。
本發(fā)明的一種IP語(yǔ)音數(shù)據(jù)包的抗丟包處理方法,根據(jù)網(wǎng)絡(luò)狀況自適應(yīng)調(diào)整防延時(shí)抖動(dòng)的緩沖區(qū)長(zhǎng)度,在接收端根據(jù)各IP語(yǔ)音數(shù)據(jù)包到達(dá)的時(shí)間計(jì)算延時(shí)抖動(dòng),并經(jīng)過(guò)平滑、預(yù)測(cè)下一個(gè)IP語(yǔ)音數(shù)據(jù)包的延時(shí)抖動(dòng),據(jù)此判定是否增加或減少緩沖區(qū)大小。
當(dāng)改變緩沖區(qū)大小時(shí),在語(yǔ)音的非激活期通過(guò)增加IP語(yǔ)音數(shù)據(jù)包達(dá)到增加緩沖區(qū)的目的,和通過(guò)丟棄IP語(yǔ)音數(shù)據(jù)包達(dá)到減小緩沖區(qū)的目的,該過(guò)程不會(huì)對(duì)語(yǔ)音質(zhì)量帶來(lái)負(fù)面影響。
而對(duì)于在話(huà)音激活期出現(xiàn)的丟包,則可以通過(guò)插值或線(xiàn)性預(yù)測(cè)的方法進(jìn)行處理,以降低由于丟包帶來(lái)的語(yǔ)音質(zhì)量下降(該丟包恢復(fù)方法另案申請(qǐng)發(fā)明專(zhuān)利)。
本發(fā)明的一種IP語(yǔ)音數(shù)據(jù)包的抗丟包處理方法,可根據(jù)網(wǎng)絡(luò)的具體情況,自適應(yīng)地調(diào)整IP語(yǔ)音數(shù)據(jù)包緩沖區(qū)的大小(自適應(yīng)變長(zhǎng)緩沖),即在網(wǎng)絡(luò)的業(yè)務(wù)流量加劇時(shí)自動(dòng)加大緩沖區(qū),提高抗延時(shí)抖動(dòng)的能力、抗丟包;同時(shí)在網(wǎng)絡(luò)狀態(tài)比較平衡時(shí),即在延時(shí)抖動(dòng)小的情況下自動(dòng)減小緩沖區(qū),以縮短語(yǔ)音延時(shí)??纱蟠蟾纳朴捎诰彌_區(qū)大小固定所引起的語(yǔ)音不自然度問(wèn)題。并且,為解決因自動(dòng)調(diào)整緩沖區(qū)的大小后會(huì)對(duì)話(huà)音的質(zhì)量帶來(lái)負(fù)面影響的問(wèn)題,本發(fā)明還在接收端同時(shí)采用話(huà)音激活檢測(cè)(VAD)方法,在非激活期完成對(duì)IP語(yǔ)音數(shù)據(jù)包緩沖區(qū)的增減,在話(huà)音激活期則利用插值或線(xiàn)性預(yù)測(cè)的方法對(duì)已發(fā)生的丟包進(jìn)行恢復(fù)處理(不在本專(zhuān)利申請(qǐng)的范圍內(nèi)討論),以降低由于丟包帶來(lái)的語(yǔ)音質(zhì)量下降問(wèn)題。
本發(fā)明是一種通過(guò)自適應(yīng)調(diào)整IP語(yǔ)音數(shù)據(jù)包緩沖區(qū)的大小以達(dá)到抗丟包、改善語(yǔ)音自然度目的的處理方法。本發(fā)明的有益效果是由于采用自適應(yīng)的變長(zhǎng)緩沖,可以明顯地抵御因網(wǎng)絡(luò)業(yè)務(wù)流量急劇變化所引起的大的IP語(yǔ)音數(shù)據(jù)包延時(shí)抖動(dòng),大大地降低由于延時(shí)抖動(dòng)引起的丟包概率,提高了IP語(yǔ)音解碼的質(zhì)量和可靠性;由于防延時(shí)抖動(dòng)的緩沖時(shí)延是根據(jù)網(wǎng)絡(luò)情況自適應(yīng)可變的,當(dāng)網(wǎng)絡(luò)狀況比較好時(shí),IP語(yǔ)音數(shù)據(jù)包的延時(shí)較為固定,時(shí)延抖動(dòng)較小,緩沖的時(shí)延可隨之變小,使IP語(yǔ)音數(shù)據(jù)包總的延時(shí)變小,就可以減少由于要防抖動(dòng)而增加的延時(shí),降低了語(yǔ)音的不自然度,改善了IP語(yǔ)音數(shù)據(jù)包的語(yǔ)音解碼質(zhì)量。
下面結(jié)合實(shí)施例及附圖進(jìn)一步說(shuō)明本發(fā)明的技術(shù),對(duì)IP語(yǔ)音數(shù)據(jù)包的解碼一般在IP網(wǎng)關(guān)中進(jìn)行。
圖1是現(xiàn)有的防延時(shí)抖動(dòng)的實(shí)現(xiàn)原理示意圖。
圖2是本發(fā)明自適應(yīng)變長(zhǎng)緩沖的防延時(shí)抖動(dòng)的實(shí)現(xiàn)原理示意圖。
圖3是本發(fā)明自適應(yīng)變長(zhǎng)緩沖的防延時(shí)抖動(dòng)的實(shí)現(xiàn)原理流程框圖。
參見(jiàn)圖2、圖3,圖中示出自適應(yīng)變長(zhǎng)緩沖(區(qū))的防延時(shí)抖動(dòng)的實(shí)現(xiàn)方法。具體包括以下步驟(1)根據(jù)每個(gè)IP語(yǔ)音數(shù)據(jù)包n-k、…、n-1、n、n+1、n+2、n+3、n+4、n+5、…,到達(dá)的時(shí)間t(n-k)、…、t(n-2)、t(n-1)、t(n)、t(n+1)、t(n+2)、t(n+3)、t(n+4)、t(n+5)、…,計(jì)算相鄰兩IP語(yǔ)音數(shù)據(jù)包的實(shí)際延時(shí),如Tn-1=tn-1-tn-2,Tn=tn-tn-1,Tn+1=tn+1-tn,…Tn+2=tn+2-tn+1,Tn+3=tn+3-tn+2,Tn+4=tn+4-tn+3,Tn+5=tn+5-tn+4,…;(2)根據(jù)計(jì)算出的相鄰兩IP語(yǔ)音數(shù)據(jù)包的實(shí)際延時(shí),計(jì)算延時(shí)抖動(dòng),如圖3中的步驟302所示,表示為Δn=Tn-Tn-1(3)對(duì)計(jì)算出的IP語(yǔ)音數(shù)據(jù)包延時(shí)抖動(dòng)Δn以平滑系數(shù)α做平滑濾波,再預(yù)測(cè)第n+1個(gè)IP語(yǔ)音數(shù)據(jù)包的延時(shí)抖動(dòng),如圖3中的步驟303所示,表示為Δ’n+1=αΔ’n+(1-α)Δn;(4)預(yù)先設(shè)置一個(gè)增/減緩沖區(qū)的門(mén)限值Ttb、一個(gè)緩沖區(qū)變化標(biāo)識(shí)符buf-change,并設(shè)當(dāng)前變長(zhǎng)緩沖區(qū)的時(shí)間長(zhǎng)度為T(mén)buf和設(shè)一個(gè)IP語(yǔ)音數(shù)據(jù)包的語(yǔ)音長(zhǎng)度為t0(在圖3所示步驟301中完成),如果,經(jīng)判斷Δ’n+1-Tbuf>Tth(在圖3所示步驟304中完成),且Tbuf<Tmax(在圖3所示步驟305中完成),則對(duì)當(dāng)前變長(zhǎng)緩沖區(qū)的時(shí)間長(zhǎng)度再增加一個(gè)IP語(yǔ)音數(shù)據(jù)包的長(zhǎng)度(在圖3所示步驟306中完成),同時(shí)將緩沖區(qū)變化標(biāo)識(shí)符buf-change加1,即使Tbuf=Tbuf+t0;如果,經(jīng)判斷Δ’n+1-Tbuf<-Tth(在圖3所示步驟304中完成),且Tbuf>Tmin(在圖3所示步驟310中完成),則對(duì)當(dāng)前變長(zhǎng)緩沖區(qū)的時(shí)間長(zhǎng)度再減少一個(gè)IP語(yǔ)音數(shù)據(jù)包的長(zhǎng)度(在圖3所示步驟311中完成),同時(shí)將緩沖區(qū)變化標(biāo)識(shí)符buf-change減1,即使Tbuf=Tbuf-t0,上述變長(zhǎng)緩沖區(qū)的實(shí)現(xiàn)可由自適應(yīng)控制算法實(shí)現(xiàn)(如圖2中所示)。
(5)如果緩沖區(qū)變化標(biāo)識(shí)符buf-change不為零,即改變了當(dāng)前緩沖區(qū)的大小時(shí),則對(duì)當(dāng)前IP語(yǔ)音數(shù)據(jù)包中的語(yǔ)音幀做話(huà)音激活檢測(cè)(VAD),如圖3所示步驟307、312所示,在當(dāng)前語(yǔ)音檢測(cè)結(jié)果是非激活的狀態(tài)下(由圖3所示步驟308、313完成),即處于談話(huà)的靜音段,則由圖3所示步驟309、314,根據(jù)緩沖區(qū)的變化對(duì)IP語(yǔ)音數(shù)據(jù)包作相應(yīng)的修正,修正后同時(shí)將緩沖區(qū)變化標(biāo)識(shí)符buf-change清零。
修正的方法是當(dāng)緩沖區(qū)變化標(biāo)識(shí)符buf-change>0,則增加相應(yīng)數(shù)目的IP語(yǔ)音數(shù)據(jù)包,如可以簡(jiǎn)單重復(fù)某個(gè)IP語(yǔ)音數(shù)據(jù)包(在圖3所示步驟309中完成),對(duì)當(dāng)前的IP語(yǔ)音數(shù)據(jù)包重復(fù)作解碼;當(dāng)緩沖區(qū)變化標(biāo)識(shí)符buf-change<0,則減少相應(yīng)數(shù)目的IP語(yǔ)音數(shù)據(jù)包,如可以簡(jiǎn)單地拋(丟)棄IP語(yǔ)音數(shù)據(jù)包(在圖3所示步驟314中完成)。因?yàn)樘幱诜羌せ顮顟B(tài)下的語(yǔ)音所描述的只是背景噪聲,所以上述簡(jiǎn)單的修正處理不會(huì)對(duì)語(yǔ)音質(zhì)量帶來(lái)負(fù)面影響。
(6)對(duì)丟包的處理即圖2中的“若丟包丟包處理”和圖3所示的“含丟包處理的語(yǔ)音解碼”步驟315。盡管可以通過(guò)α平滑濾波預(yù)測(cè)第n+1個(gè)IP語(yǔ)音數(shù)據(jù)包延時(shí)抖動(dòng)的變化,以自適應(yīng)的改變緩沖區(qū)的大小,但是真正完成這一調(diào)整過(guò)程是在話(huà)音的非激活期,所以在完成該調(diào)整之前,即話(huà)音非激活期之前,就有可能出現(xiàn)丟包,并且當(dāng)延時(shí)抖動(dòng)超過(guò)了預(yù)測(cè)范圍時(shí),丟包現(xiàn)象也會(huì)在話(huà)音激活期出現(xiàn)。
本發(fā)明的方法是在判斷緩沖區(qū)大小是否有變化且在緩沖區(qū)大小有變化時(shí)作出的,如果緩沖區(qū)大小沒(méi)有變化則正常解碼輸出(還包括在丟包情況下的丟包恢復(fù)處理)。如果緩沖區(qū)變大,且話(huà)音處于非激活狀態(tài),則作重復(fù)上一包IP語(yǔ)音數(shù)據(jù)包的修正處理,使增加一包IP語(yǔ)音數(shù)據(jù),如果話(huà)音處于激活狀態(tài),則一直保持到非激活狀態(tài)時(shí)再作增加一包IP語(yǔ)音數(shù)據(jù)的修正處理,同時(shí)對(duì)變長(zhǎng)緩沖區(qū)的緩沖區(qū)變化標(biāo)識(shí)符做相應(yīng)修改,buf-change加1。;如果緩沖區(qū)變小,且話(huà)音處于非激活狀態(tài),則作丟棄當(dāng)前IP語(yǔ)音數(shù)據(jù)的修正處理,使減少一包IP語(yǔ)音數(shù)據(jù),如果話(huà)音處于激活狀態(tài),則一直保持到非激活狀態(tài)時(shí)再作丟棄一包IP語(yǔ)音數(shù)據(jù)的修正處理,同時(shí)對(duì)變長(zhǎng)緩沖區(qū)的緩沖區(qū)變化標(biāo)識(shí)符做相應(yīng)修改,buf-change減1。
本發(fā)明采用插值或線(xiàn)性預(yù)測(cè)方法處理丟包是利用語(yǔ)音的幀間相關(guān)性作出的,利用上一包與下一包的IP語(yǔ)音數(shù)據(jù)對(duì)丟失的當(dāng)前包IP語(yǔ)音數(shù)據(jù)作最大限度的恢復(fù)。具體步驟是如果下一個(gè)IP語(yǔ)音數(shù)據(jù)包被收到,則利用上一包和下一包的IP語(yǔ)音數(shù)據(jù)進(jìn)行線(xiàn)性插值,來(lái)恢復(fù)當(dāng)前丟失的IP語(yǔ)音數(shù)據(jù)包;如果下一包的IP語(yǔ)音數(shù)據(jù)未收到,則根據(jù)上一包的IP語(yǔ)音數(shù)據(jù)做線(xiàn)性預(yù)測(cè),來(lái)估計(jì)當(dāng)前丟失的語(yǔ)音數(shù)據(jù)(該線(xiàn)性插值與線(xiàn)性預(yù)測(cè)方法,由本申請(qǐng)人另案提出發(fā)明)。
如可假定IP語(yǔ)音數(shù)據(jù)包的語(yǔ)音長(zhǎng)度t0為30ms,每一路語(yǔ)音接收變長(zhǎng)緩沖區(qū)的最大值Tmax設(shè)為4個(gè)IP語(yǔ)音數(shù)據(jù)包的語(yǔ)音長(zhǎng)度(t0×4)即120ms,每一路語(yǔ)音接收變長(zhǎng)緩沖區(qū)的最小值Tmin設(shè)為1個(gè)IP語(yǔ)音數(shù)據(jù)包的語(yǔ)音長(zhǎng)度(t0×1)即30ms,將變長(zhǎng)緩沖區(qū)的時(shí)間長(zhǎng)度初值Tbuf設(shè)為2個(gè)IP語(yǔ)音數(shù)據(jù)包即60ms,增減緩沖的門(mén)限Tth取為15ms。
根據(jù)圖3所示的步驟,依次計(jì)算相鄰IP語(yǔ)音包的延時(shí)、延時(shí)抖動(dòng)、作α濾波平滑(其中的平滑系數(shù)α取0.8)、預(yù)測(cè)下一個(gè)IP語(yǔ)音數(shù)據(jù)包的延時(shí)抖動(dòng),及作增加與減小緩沖區(qū)大小。
本發(fā)明的抗丟包方法可以應(yīng)用于目前公用數(shù)據(jù)網(wǎng)、因特網(wǎng)或局域網(wǎng)的IP語(yǔ)音業(yè)務(wù),也可用于未來(lái)移動(dòng)通信(無(wú)線(xiàn)接入)中基于IP的核心網(wǎng)語(yǔ)音傳送。
權(quán)利要求
1.一種IP語(yǔ)音數(shù)據(jù)包的抗丟包處理方法,其特征在于在接收端IP語(yǔ)音數(shù)據(jù)包的時(shí)延抖動(dòng)變化幅度大時(shí),自適應(yīng)地增加接收端IP語(yǔ)音數(shù)據(jù)包緩沖區(qū)的長(zhǎng)度;在接收端IP語(yǔ)音數(shù)據(jù)包的時(shí)延抖動(dòng)變化幅度小時(shí),自適應(yīng)地減小接收端IP語(yǔ)音數(shù)據(jù)包緩沖區(qū)的長(zhǎng)度。
2.根據(jù)權(quán)利要求1所述的一種IP語(yǔ)音數(shù)據(jù)包的抗丟包處理方法,其特征在于所述的自適應(yīng)地增加、減小接收端IP語(yǔ)音包緩沖區(qū)的長(zhǎng)度,進(jìn)一步包括以下步驟;根據(jù)接收端每個(gè)IP語(yǔ)音數(shù)據(jù)包的到達(dá)時(shí)間計(jì)算每?jī)蓚€(gè)相鄰IP語(yǔ)音數(shù)據(jù)包的延時(shí);根據(jù)每?jī)蓚€(gè)相鄰IP語(yǔ)音數(shù)據(jù)包的延時(shí)計(jì)算延時(shí)抖動(dòng);用平滑系數(shù)對(duì)延時(shí)抖動(dòng)作平滑濾波,預(yù)測(cè)出下一個(gè)到達(dá)IP語(yǔ)音數(shù)據(jù)包的延時(shí)抖動(dòng);設(shè)置一增/減緩沖區(qū)的門(mén)限值,并計(jì)算預(yù)測(cè)出的下一個(gè)到達(dá)IP語(yǔ)音數(shù)據(jù)包的延時(shí)抖動(dòng)與當(dāng)前變長(zhǎng)緩沖區(qū)的時(shí)間長(zhǎng)度之差,根據(jù)門(mén)限值與該差值之比,對(duì)當(dāng)前變長(zhǎng)緩沖區(qū)作增加或減小一個(gè)IP語(yǔ)音數(shù)據(jù)包長(zhǎng)度的處理。
3.根據(jù)權(quán)利要求2所述的一種IP語(yǔ)音數(shù)據(jù)包的抗丟包處理方法,其特征在于所述的根據(jù)門(mén)限值與該差值之比,是在差值大于門(mén)限值且當(dāng)前變長(zhǎng)緩沖區(qū)的時(shí)間長(zhǎng)度小于一最大值時(shí),對(duì)當(dāng)前的變長(zhǎng)緩沖區(qū)作增加一個(gè)IP語(yǔ)音數(shù)據(jù)包長(zhǎng)度的處理;在差值小于負(fù)門(mén)限值且當(dāng)前變長(zhǎng)緩沖區(qū)的時(shí)間長(zhǎng)度大于一最小值時(shí),對(duì)當(dāng)前變長(zhǎng)緩沖區(qū)作減小一個(gè)IP語(yǔ)音數(shù)據(jù)包長(zhǎng)度的處理。
4.根據(jù)權(quán)利要求1或3所述的一種IP語(yǔ)音數(shù)據(jù)包的抗丟包處理方法,其特征在于所述的最大值是4個(gè)IP語(yǔ)音數(shù)據(jù)包長(zhǎng)度,所述的最小值是1個(gè)IP語(yǔ)音數(shù)據(jù)包長(zhǎng)度。
5.根據(jù)權(quán)利要求1所述的一種IP語(yǔ)音數(shù)據(jù)包的抗丟包處理方法,其特征在于還包括設(shè)置一緩沖區(qū)變化標(biāo)識(shí)符,在自適應(yīng)地增加或減小接收端IP語(yǔ)音包緩沖區(qū)長(zhǎng)度的同時(shí),還分別對(duì)緩沖區(qū)變化標(biāo)識(shí)符作加1、減1處理。
6.根據(jù)權(quán)利要求1或5所述的一種IP語(yǔ)音數(shù)據(jù)包的抗丟包處理方法,其特征在于還包括當(dāng)所述的緩沖區(qū)變化標(biāo)識(shí)符不為零時(shí),在增加或減小接收端IP語(yǔ)音數(shù)據(jù)包緩沖區(qū)長(zhǎng)度的同時(shí),對(duì)當(dāng)前IP語(yǔ)音數(shù)據(jù)包的語(yǔ)音幀作話(huà)音激活檢測(cè),在檢測(cè)結(jié)果是非激活期時(shí),修正處理當(dāng)前IP語(yǔ)音數(shù)據(jù)包的數(shù)目,使與增加或減小后的接收端IP語(yǔ)音數(shù)據(jù)包緩沖區(qū)長(zhǎng)度相對(duì)應(yīng),同時(shí)將緩沖區(qū)變化標(biāo)識(shí)符清為零。
7.根據(jù)權(quán)利要求6所述的一種IP語(yǔ)音數(shù)據(jù)包的抗丟包處理方法,其特征在于所述的在話(huà)音激活檢測(cè)結(jié)果是非激活期時(shí),處理當(dāng)前IP語(yǔ)音數(shù)據(jù)包的數(shù)目包括當(dāng)所述的緩沖區(qū)變化標(biāo)識(shí)符大于零時(shí),在增加接收端IP語(yǔ)音數(shù)據(jù)包緩沖區(qū)長(zhǎng)度的同時(shí)簡(jiǎn)單重復(fù)當(dāng)前IP語(yǔ)音數(shù)據(jù)包;當(dāng)所述的緩沖區(qū)變化標(biāo)識(shí)符小于零時(shí),在減小接收端IP語(yǔ)音數(shù)據(jù)包緩沖區(qū)長(zhǎng)度的同時(shí)簡(jiǎn)單丟棄當(dāng)前IP語(yǔ)音數(shù)據(jù)包。
8.根據(jù)權(quán)利要求6所述的一種IP語(yǔ)音數(shù)據(jù)包的抗丟包處理方法,其特征在于還包括在話(huà)音激活檢測(cè)結(jié)果是激活期時(shí),修正處理當(dāng)前IP語(yǔ)音數(shù)據(jù)包的數(shù)目將延續(xù)到檢測(cè)結(jié)果是非激活期時(shí)再進(jìn)行。
全文摘要
本發(fā)明涉及一種IP語(yǔ)音數(shù)據(jù)包的抗丟包處理方法,針對(duì)因特網(wǎng)或公共數(shù)據(jù)網(wǎng)傳輸?shù)腎P語(yǔ)音數(shù)據(jù)包的抗丟包而作出。在接收端IP語(yǔ)音數(shù)據(jù)包的時(shí)延抖動(dòng)變化幅度大時(shí),自適應(yīng)地增加接收端IP語(yǔ)音數(shù)據(jù)包緩沖區(qū)的長(zhǎng)度;在接收端IP語(yǔ)音數(shù)據(jù)包的時(shí)延抖動(dòng)變化幅度小時(shí),自適應(yīng)地減小接收端IP語(yǔ)音數(shù)據(jù)包緩沖區(qū)的長(zhǎng)度。通過(guò)變長(zhǎng)調(diào)整緩沖區(qū)大小,達(dá)到防止時(shí)延抖動(dòng)和抗丟包,改善了IP語(yǔ)音的質(zhì)量,解決了因網(wǎng)絡(luò)業(yè)務(wù)流量變化和不同路由的差異所產(chǎn)生的語(yǔ)音自然度變差問(wèn)題。
文檔編號(hào)H04L12/54GK1346198SQ0012959
公開(kāi)日2002年4月24日 申請(qǐng)日期2000年9月30日 優(yōu)先權(quán)日2000年9月30日
發(fā)明者孫亞民, 霍其增, 潘勝昔 申請(qǐng)人:華為技術(shù)有限公司