去抖動(dòng)、抗丟包處理方法及裝置制造方法
【專利摘要】本發(fā)明實(shí)施例涉及一種去抖動(dòng)、抗丟包處理方法及裝置,包括:根據(jù)每個(gè)數(shù)據(jù)包距離當(dāng)前時(shí)間的遠(yuǎn)近,為每個(gè)數(shù)據(jù)包設(shè)定數(shù)據(jù)包權(quán)值;根據(jù)丟失數(shù)據(jù)包和所述數(shù)據(jù)包權(quán)值計(jì)算丟包率,根據(jù)抖動(dòng)數(shù)據(jù)包和所述數(shù)據(jù)包權(quán)值計(jì)算抖動(dòng)率;根據(jù)所述丟包率計(jì)算丟包比值;如果所述丟包比值小于所述抖動(dòng)率,則增大抖動(dòng)緩沖器JB的容量,以減緩或消除抖動(dòng)。由于在計(jì)算丟包率和抖動(dòng)率時(shí),加入了與當(dāng)前時(shí)間相關(guān)的數(shù)據(jù)包權(quán)值,即數(shù)據(jù)包距離當(dāng)前時(shí)間越近,其權(quán)值越大,因此,以此計(jì)算出的丟包率和抖動(dòng)率更能反映出當(dāng)前的丟包情況和抖動(dòng)情況,從而可以對(duì)JB進(jìn)行更合適的調(diào)節(jié)。
【專利說(shuō)明】去抖動(dòng)、抗丟包處理方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信【技術(shù)領(lǐng)域】,尤其涉及一種去抖動(dòng)、抗丟包處理方法及裝置。
【背景技術(shù)】
[0002]對(duì)于實(shí)時(shí)的視頻、音頻通信,通常由編碼端(即發(fā)送端)的編碼器對(duì)采集的視頻、音頻信息進(jìn)行編碼,產(chǎn)生一系列的數(shù)據(jù)包,并根據(jù)實(shí)時(shí)傳輸協(xié)議(Real-time TransportProtocol, RTP)通過(guò)傳輸信道將編碼端產(chǎn)生的數(shù)據(jù)包,傳送到解碼端;解碼端(即接收端)的解碼器對(duì)收到的數(shù)據(jù)包進(jìn)行解碼,恢復(fù)出原始的視頻、音頻。但是,在傳輸信道上傳輸實(shí)時(shí)碼流時(shí),由于信道本身存在的丟包或者誤碼,特別在沒(méi)有服務(wù)質(zhì)量(Quality ofService,QoS)保證的網(wǎng)絡(luò)上,數(shù)據(jù)包可能會(huì)在傳輸過(guò)程中產(chǎn)生丟包,一旦解碼端接收到有丟的數(shù)據(jù)包,解碼器是無(wú)法正確恢復(fù)出原始的視頻、音頻,因而差錯(cuò)控制措施的采取是非常重要的。
[0003]針對(duì)上述問(wèn)題,在申請(qǐng)日為2006年10月30日、
【公開(kāi)日】為2008年05年07號(hào)、申請(qǐng)?zhí)枮?00610142736.8的專利“一種重傳類型選擇方法、相應(yīng)的發(fā)送設(shè)備、接收設(shè)備及系統(tǒng)”中闡述一種減少丟包的方法。該方法通過(guò)信道質(zhì)量信息設(shè)置門限值為兩個(gè),分別為第一門限值A(chǔ)和第二門限值B,且第一門限值A(chǔ)小于第二門限值B。所述發(fā)送設(shè)備根據(jù)判斷結(jié)果確定重傳類型包括:當(dāng)信道質(zhì)量信息小于第一門限值A(chǔ)時(shí),將完全遞增冗余機(jī)制(HybridAutomatic Repeat Request with Full Increase Redundancy, HARQ with Full IR)作為重傳類型;當(dāng)信道質(zhì)量信息小于第二門限值B時(shí),將部分遞增冗余機(jī)制(Hybrid AutomaticRepeat Request with Partial Increase Redundancy, HARQ with Partial IR)作為重傳類型;當(dāng)信道質(zhì)量信息在第一門限值A(chǔ)和第二門限值B之間時(shí),選擇其中一種作為重傳類型。該方法存在的缺點(diǎn)為:一方面,由于是主要信道質(zhì)量(FEC恢復(fù)數(shù)據(jù)的能力)而沒(méi)有將網(wǎng)絡(luò)狀況參數(shù)作為判斷參數(shù),當(dāng)信道質(zhì)量很好而用戶較多造成網(wǎng)絡(luò)擁塞時(shí),則該方法無(wú)法起作用;另一方面,該方法只是針對(duì)信道采取的處理策略,沒(méi)有針對(duì)信源(編碼器)采取處理策略。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實(shí)施例提供了一種去抖動(dòng)、抗丟包處理方法及裝置,解決了現(xiàn)有技術(shù)中丟包率和抖動(dòng)率準(zhǔn)確導(dǎo)致對(duì)JB調(diào)整不合適,以及只針對(duì)FEC的數(shù)據(jù)恢復(fù)能力進(jìn)行能夠抗丟包處理,使得網(wǎng)絡(luò)狀態(tài)不好引起丟包處理時(shí)上述處理方法不起作用的問(wèn)題,實(shí)現(xiàn)了利用數(shù)據(jù)包權(quán)值計(jì)算丟包率和抖動(dòng)率,以此為判斷依據(jù)可以對(duì)JB進(jìn)行更合適的調(diào)節(jié),另外從FEC恢復(fù)數(shù)據(jù)包的能力和網(wǎng)絡(luò)狀態(tài)的好壞兩個(gè)方面判斷丟包原因,并分別采用不同的處理方法,使得處理效果更好。
[0005]在第一方面,本發(fā)明實(shí)施例提供了一種去抖動(dòng)處理方法,包括:
[0006]根據(jù)每個(gè)數(shù)據(jù)包距離當(dāng)前時(shí)間的遠(yuǎn)近,為每個(gè)數(shù)據(jù)包設(shè)定數(shù)據(jù)包權(quán)值;
[0007]根據(jù)丟失數(shù)據(jù)包和所述數(shù)據(jù)包權(quán)值計(jì)算丟包率,根據(jù)抖動(dòng)數(shù)據(jù)包和所述數(shù)據(jù)包權(quán)值計(jì)算抖動(dòng)率;
[0008]根據(jù)所述丟包率計(jì)算丟包比值;
[0009]如果所述丟包比值小于所述抖動(dòng)率,則增大抖動(dòng)緩沖器JB的容量,以減緩或消除抖動(dòng)。
[0010]在第二方面,本發(fā)明實(shí)施例提供了一種抗丟包處理方法,包括:
[0011]判斷FEC恢復(fù)的數(shù)據(jù)包個(gè)數(shù)是否超過(guò)恢復(fù)閾值;
[0012]如果所述FEC恢復(fù)的所述數(shù)據(jù)包個(gè)數(shù)不超過(guò)所述恢復(fù)閾值,則判斷連續(xù)丟包數(shù)是否超過(guò)連續(xù)丟包閾值;
[0013]如果所述連續(xù)丟包數(shù)不超過(guò)所述連續(xù)丟包閾值,則根據(jù)網(wǎng)絡(luò)狀態(tài)控制發(fā)送端重傳丟失的數(shù)據(jù)包,或者控制發(fā)送端發(fā)送FEC冗余包,利用所述冗余包對(duì)丟失的數(shù)據(jù)包進(jìn)行FEC恢復(fù)。
[0014]在第三方面,本發(fā)明實(shí)施例提供了一種去抖動(dòng)處理裝置,包括:
[0015]設(shè)定單元,用于根據(jù)每個(gè)數(shù)據(jù)包距離當(dāng)前時(shí)間的遠(yuǎn)近,為每個(gè)數(shù)據(jù)包設(shè)定數(shù)據(jù)包權(quán)值,將所述數(shù)據(jù)包權(quán)值發(fā)送至第一計(jì)算單元;
[0016]第一計(jì)算單元,用于接收所述設(shè)定單元發(fā)送的所述數(shù)據(jù)包權(quán)值,根據(jù)丟失數(shù)據(jù)包和所述數(shù)據(jù)包權(quán)值計(jì)算丟包率,根據(jù)抖動(dòng)數(shù)據(jù)包和所述數(shù)據(jù)包權(quán)值計(jì)算抖動(dòng)率,將所述丟包率和抖動(dòng)率發(fā)送至第二計(jì)算單元;
[0017]第二計(jì)算單元,用于接收所述第一計(jì)算單元發(fā)送所述丟包率和抖動(dòng)率,根據(jù)所述丟包率計(jì)算丟包比值,將所述丟包率、抖動(dòng)率和丟包比值發(fā)送至處理單元;
[0018]處理單元,用于接收所述第二計(jì)算單元發(fā)送的所述丟包率、抖動(dòng)率和丟包比值,如果所述丟包比值小于所述抖動(dòng)率,則增大抖動(dòng)緩沖器JB的容量,以減緩或消除抖動(dòng)。
[0019]在第四方面,本發(fā)明實(shí)施例提供了 一種抗丟包處理裝置,包括:
[0020]第一判斷單元,用于判斷FEC恢復(fù)的數(shù)據(jù)包個(gè)數(shù)是否超過(guò)恢復(fù)閾值,將判斷結(jié)果發(fā)送至第二判斷單元;
[0021]第二判斷單元,用于接收所述第一判斷單元發(fā)送的判斷結(jié)果,如果所述判斷結(jié)果為FEC恢復(fù)的所述數(shù)據(jù)包個(gè)數(shù)不超過(guò)所述恢復(fù)閾值,則判斷連續(xù)丟包數(shù)是否超過(guò)連續(xù)丟包閾值,將判斷結(jié)果發(fā)送至處理單元;
[0022]處理單元,用于接收所述第二判斷單元發(fā)送的所述判斷結(jié)果,如果所述判斷結(jié)果為連續(xù)丟包數(shù)不超過(guò)所述連續(xù)丟包閾值,則根據(jù)網(wǎng)絡(luò)狀態(tài)控制發(fā)送端重傳丟失的數(shù)據(jù)包,或者控制發(fā)送端發(fā)送FEC冗余包,利用所述冗余包對(duì)丟失的數(shù)據(jù)包進(jìn)行FEC恢復(fù)。
[0023]本發(fā)明實(shí)施例中,通過(guò)根據(jù)每個(gè)數(shù)據(jù)包距離當(dāng)前時(shí)間的遠(yuǎn)近,為每個(gè)數(shù)據(jù)包設(shè)定數(shù)據(jù)包權(quán)值;根據(jù)丟失數(shù)據(jù)包和所述數(shù)據(jù)包權(quán)值計(jì)算丟包率,根據(jù)抖動(dòng)數(shù)據(jù)包和所述數(shù)據(jù)包權(quán)值計(jì)算抖動(dòng)率;根據(jù)所述丟包率計(jì)算丟包比值;如果所述丟包比值小于所述抖動(dòng)率,則增大抖動(dòng)緩沖器JB的容量,以減緩或消除抖動(dòng)。由于在計(jì)算丟包率和抖動(dòng)率時(shí),加入了與當(dāng)前時(shí)間相關(guān)的數(shù)據(jù)包權(quán)值,即數(shù)據(jù)包距離當(dāng)前時(shí)間越近,其權(quán)值越大,因此,以此計(jì)算出的丟包率和抖動(dòng)率更能反映出當(dāng)前的丟包情況和抖動(dòng)情況,從而可以對(duì)JB進(jìn)行更合適的調(diào)節(jié)。另外,通過(guò)判斷FEC恢復(fù)的數(shù)據(jù)包個(gè)數(shù)是否超過(guò)恢復(fù)閾值;如果所述FEC恢復(fù)的所述數(shù)據(jù)包個(gè)數(shù)不超過(guò)所述恢復(fù)閾值,則判斷連續(xù)丟包數(shù)是否超過(guò)連續(xù)丟包閾值;如果所述連續(xù)丟包數(shù)不超過(guò)所述連續(xù)丟包閾值,則根據(jù)網(wǎng)絡(luò)狀態(tài)控制發(fā)送端重傳丟失的數(shù)據(jù)包,或者控制發(fā)送端發(fā)送FEC冗余包,利用所述冗余包對(duì)丟失的數(shù)據(jù)包進(jìn)行FEC恢復(fù)。從FEC恢復(fù)數(shù)據(jù)包的能力和網(wǎng)絡(luò)狀態(tài)的好壞兩個(gè)方面判斷丟包原因,并分別采用不同的處理方法,使得處理效果更好。
【專利附圖】
【附圖說(shuō)明】
[0024]圖1為本發(fā)明實(shí)施例一提供的去抖動(dòng)處理方法應(yīng)用場(chǎng)景示意圖;
[0025]圖2為本發(fā)明實(shí)施例一提供的去抖動(dòng)處理方法流程圖;
[0026]圖3為本發(fā)明實(shí)施例二提供的抗丟包處理方法應(yīng)用場(chǎng)景示意圖;
[0027]圖4為本發(fā)明實(shí)施例二提供的抗丟包處理方法流程圖
[0028]圖5為本發(fā)明實(shí)施例三提供的去抖動(dòng)處理裝置示意圖;
[0029]圖6為本發(fā)明實(shí)施例三提供的另一種去抖動(dòng)處理裝置示意圖;
[0030]圖7為圖6中裝置的第二處理單元示意圖;
[0031]圖8為本發(fā)明實(shí)施例四提供的抗丟包處理裝置示意圖;
[0032]圖9為本發(fā)明實(shí)施例四提供的另一種抗丟包處理裝置示意圖;
[0033]圖10為圖9中裝置的第二處理單元示意圖。
【具體實(shí)施方式】
[0034]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖對(duì)本發(fā)明具體實(shí)施例作進(jìn)一步的詳細(xì)描述。
[0035]本發(fā)明實(shí)施例針對(duì)現(xiàn)有技術(shù)的缺陷,提供了 一種處理方法和裝置。通過(guò),從而增加了網(wǎng)絡(luò)轉(zhuǎn)發(fā)設(shè)備接口的擴(kuò)展性,并實(shí)現(xiàn)了負(fù)載均衡。
[0036]下述實(shí)施例描述的為一種去抖動(dòng)的處理方法,圖1為本發(fā)明實(shí)施例一提供的去抖動(dòng)處理方法應(yīng)用場(chǎng)景示意圖。如圖1所示,發(fā)送端將信號(hào)通過(guò)傳輸網(wǎng)絡(luò)發(fā)送至接收端,接收端接收到數(shù)據(jù)后,將數(shù)據(jù)放到抖動(dòng)緩沖器(Jitter Buffer, JB)中,在JB中,利用數(shù)據(jù)包權(quán)值計(jì)算丟包率和抖動(dòng)率,根據(jù)丟包率和抖動(dòng)率的大小關(guān)系對(duì)JB的容量進(jìn)行調(diào)節(jié),從而實(shí)現(xiàn)去抖動(dòng)的目的,最后對(duì)數(shù)據(jù)進(jìn)行解碼并顯示。去抖動(dòng)處理方法如下所示:
[0037]圖1為本發(fā)明實(shí)施例一提供的去抖動(dòng)處理方法流程圖。如圖1所示,本發(fā)明實(shí)施例提供的方法包括:
[0038]S101,根據(jù)每個(gè)數(shù)據(jù)包距離當(dāng)前時(shí)間的遠(yuǎn)近,為每個(gè)數(shù)據(jù)包設(shè)定數(shù)據(jù)包權(quán)值。
[0039]具體地,首先對(duì)抖動(dòng)包和丟包進(jìn)行介紹:接收端通過(guò)傳輸網(wǎng)絡(luò)接收到數(shù)據(jù)后,將數(shù)據(jù)通過(guò)一個(gè)緩沖器(buffer)來(lái)保存,假設(shè)這個(gè)buffer可分為三個(gè)區(qū)域:0?1.5秒(second, s)區(qū)、1.5s?3s區(qū)和3s?IOs區(qū),即將第O秒到第1.5秒時(shí)間段接收到的數(shù)據(jù)放到O?1.5s區(qū),將第1.6秒到第3秒時(shí)間段接收到的數(shù)據(jù)放到1.6s?3s區(qū),將第3.1秒到第10秒時(shí)間段接收到的數(shù)據(jù)放到3.1s?IOs區(qū),如果我們定義JB的最大深度為1.5s,即假設(shè)數(shù)據(jù)應(yīng)該在X秒內(nèi)傳輸?shù)浇邮斩?,但?shí)際卻經(jīng)過(guò)了 1.5s的延遲傳輸?shù)搅私邮斩耍绻舆t時(shí)間超過(guò)1.5s,則接收端接收不到該數(shù)據(jù),那么這1.5秒稱為JB的最大深度,所以,如果延遲時(shí)間超過(guò)最大深度,則認(rèn)為沒(méi)有接收到該數(shù)據(jù),即認(rèn)為該數(shù)據(jù)包丟失。如果數(shù)據(jù)包傳輸出現(xiàn)了延遲,但是延遲時(shí)間小于最大深度,則可以判斷該數(shù)據(jù)包為抖動(dòng)包。需要注意的是,抖動(dòng)只是引起丟包的一種情況,也有其它原因可以導(dǎo)致數(shù)據(jù)包的丟失??傊?,通過(guò)上述方法可以統(tǒng)計(jì)出某一時(shí)間段內(nèi)的抖動(dòng)包個(gè)數(shù)和丟包個(gè)數(shù)。
[0040]現(xiàn)有技術(shù)中計(jì)算丟包率和抖動(dòng)率的方法為:在一個(gè)時(shí)間段內(nèi),統(tǒng)計(jì)出丟包數(shù)和抖動(dòng)數(shù),丟包率=丟包數(shù)/數(shù)據(jù)包總數(shù),抖動(dòng)率=抖動(dòng)包數(shù)/數(shù)據(jù)包總數(shù)。
[0041]本發(fā)明實(shí)施例提供的計(jì)算方法為:由于接收端對(duì)數(shù)據(jù)包進(jìn)行解碼時(shí),對(duì)當(dāng)前數(shù)據(jù)包解碼時(shí)需要依賴其前面的數(shù)據(jù)包,即數(shù)據(jù)包之間是相互關(guān)聯(lián)的,數(shù)據(jù)包距離當(dāng)前時(shí)間越近,其對(duì)后面的數(shù)據(jù)包的解碼的正確性影響越大。而在當(dāng)前時(shí)間點(diǎn)計(jì)算丟包率和抖動(dòng)率的目的是根據(jù)丟包情況和抖動(dòng)情況對(duì)JB進(jìn)行調(diào)節(jié),以使之后的時(shí)間段內(nèi)能減緩或消除抖動(dòng),因此,距離當(dāng)前時(shí)間點(diǎn)越近的丟包和抖動(dòng)包在計(jì)算丟包率和抖動(dòng)率時(shí)的參考價(jià)值越大,介于上述原因,本發(fā)明實(shí)施例給每個(gè)數(shù)據(jù)包賦予一個(gè)數(shù)據(jù)包權(quán)值,數(shù)據(jù)包距離當(dāng)前時(shí)間越近,則其權(quán)值越大。假設(shè)接收端應(yīng)該接收到的數(shù)據(jù)包為K’…’ K’…’ Ακ-1;K為數(shù)據(jù)包總數(shù),Ai為第i個(gè)數(shù)據(jù)包,則可以給每個(gè)數(shù)據(jù)包Ai賦予一個(gè)權(quán)值1/21。也可以根據(jù)實(shí)際需要采用其它權(quán)值。
[0042]S102,根據(jù)丟失數(shù)據(jù)包和所述數(shù)據(jù)包權(quán)值計(jì)算丟包率,根據(jù)抖動(dòng)數(shù)據(jù)包和所述數(shù)據(jù)包權(quán)值計(jì)算抖動(dòng)率。
[0043]具體地,計(jì)算公式如下所示:
[0044]根據(jù)公式Ρζ^/^+ΑΑ+Α;^2+...+Ai/21+...+A^1/2K O/K 計(jì)算所述丟包率,其中,P為丟包率,K為數(shù)據(jù)包總數(shù),Ai為第i個(gè)數(shù)據(jù)包,1/21為Ai的數(shù)據(jù)包權(quán)值,當(dāng)Ai為丟包時(shí),Ai = 1,否則Ai = 0,0≤i≤K-l,i越小,則Ai距離當(dāng)前時(shí)間越近,即距離當(dāng)前時(shí)間由近至遠(yuǎn)的數(shù)據(jù)包為A。,...,Ai,...,Aim。
[0045]根據(jù)公式J= (A0/2°+A1/2+A2/22+...+Ai/2i+...+Aih/^1) /K 計(jì)算所述抖動(dòng)率,其中,J為抖動(dòng)率,K為數(shù)據(jù)包總數(shù),Ai為第i個(gè)數(shù)據(jù)包,1/21為Ai的數(shù)據(jù)包權(quán)值,當(dāng)Ai為抖動(dòng)包時(shí),Ai = I,否則Ai = 0,0≤i≤K-1, i越小,則Ai距離當(dāng)前時(shí)間越近。
[0046]S103,根據(jù)所述丟包率計(jì)算丟包比值。
[0047]具體地,獲得丟包率和抖動(dòng)率后,可以對(duì)丟包率大于抖動(dòng)率,和丟包率小于抖動(dòng)率這兩種情況分別采用不同的調(diào)整策略。
[0048]但是,SlOl中判斷丟包的方法為:若一個(gè)數(shù)據(jù)包的抖動(dòng)時(shí)間大于最大深度,則認(rèn)為該數(shù)據(jù)包丟失,但是若經(jīng)過(guò)若干時(shí)間后,接收端接收到了該數(shù)據(jù)包,則說(shuō)明該數(shù)據(jù)包沒(méi)有丟失,因此,該數(shù)據(jù)包不是丟包,所以,通過(guò)SlOl中的方法統(tǒng)計(jì)出的丟包個(gè)數(shù)是多于實(shí)際丟包個(gè)數(shù)的,是不準(zhǔn)確的。而抖動(dòng)包的統(tǒng)計(jì)是準(zhǔn)確的。介于上述原因,在根據(jù)丟包率和抖動(dòng)率對(duì)JB進(jìn)行調(diào)節(jié)時(shí),需要將丟包率除以n (n ≥ 1)獲得一個(gè)丟包比值,再將該丟包比值與抖動(dòng)率進(jìn)行比較。
[0049]S104,如果所述丟包比值小于所述抖動(dòng)率,則增大抖動(dòng)緩沖器JB的容量,以減緩或消除抖動(dòng)。
[0050]具體地,如果丟包比值小于所述抖動(dòng)率,則說(shuō)明抖動(dòng)相對(duì)于丟包更嚴(yán)重,因此,需要調(diào)節(jié)JB減緩或消除抖動(dòng),即需要增大JB的容量,這樣可以接收到更多因?yàn)槎秳?dòng)而導(dǎo)致的丟包。
[0051]另外,如果丟包比值大于所述抖動(dòng)率,則說(shuō)明丟包相對(duì)于抖動(dòng)更嚴(yán)重,由前面可知,丟包可能是由于抖動(dòng)引起的,也可能是由于其他原因引起的,因此,如果丟包比值大于抖動(dòng)率,說(shuō)明這里的丟包主要是由于其他原因引起的。由于丟包是其他原因引起,所以JB容量增大不會(huì)減少丟包;而且JB容量越大,說(shuō)明其緩存的數(shù)據(jù)包越多,這樣會(huì)導(dǎo)致接收端的數(shù)據(jù)播放顯示存在較大的延遲,因此,為了減小播放顯示的延遲,需要減小JB容量。
[0052]如果丟包率和抖動(dòng)率都為0,則通過(guò)上述兩種情況可以推知,這時(shí)不需要對(duì)JB容量進(jìn)行調(diào)整。
[0053]上述四個(gè)步驟描述的為去抖動(dòng)的處理方法,可選地,去抖動(dòng)之后還可以進(jìn)行抗丟包處理。處理過(guò)程如下:
[0054]首先,判斷前向糾錯(cuò)編碼(Forward Error Correction, FEC)恢復(fù)的數(shù)據(jù)包個(gè)數(shù)是否超過(guò)恢復(fù)閾值;如果所述FEC恢復(fù)的所述數(shù)據(jù)包個(gè)數(shù)不超過(guò)所述恢復(fù)閾值,則判斷連續(xù)丟包數(shù)是否超過(guò)連續(xù)丟包閾值;如果所述連續(xù)丟包數(shù)不超過(guò)所述連續(xù)丟包閾值,則根據(jù)網(wǎng)絡(luò)狀態(tài)控制發(fā)送端重傳丟失的數(shù)據(jù)包,或者控制發(fā)送端發(fā)送FEC冗余包,利用所述冗余包對(duì)丟失的數(shù)據(jù)包進(jìn)行FEC恢復(fù)。從中可以看出,該方法不僅可以根據(jù)FEC恢復(fù)數(shù)據(jù)的能力對(duì)丟包情況進(jìn)行處理,還可以根據(jù)網(wǎng)絡(luò)狀態(tài)對(duì)丟包進(jìn)行處理,因此,可以更準(zhǔn)確的判斷引起丟包的原因,從而選擇合適的處理方法。
[0055]上述實(shí)施例描述的為,根據(jù)每個(gè)數(shù)據(jù)包距離當(dāng)前時(shí)間的遠(yuǎn)近,為每個(gè)數(shù)據(jù)包設(shè)定數(shù)據(jù)包權(quán)值;根據(jù)丟失數(shù)據(jù)包和所述數(shù)據(jù)包權(quán)值計(jì)算丟包率,根據(jù)抖動(dòng)數(shù)據(jù)包和所述數(shù)據(jù)包權(quán)值計(jì)算抖動(dòng)率;根據(jù)所述丟包率計(jì)算丟包比值;如果所述丟包比值小于所述抖動(dòng)率,則增大抖動(dòng)緩沖器JB的容量,以減緩或消除抖動(dòng)。由于在計(jì)算丟包率和抖動(dòng)率時(shí),加入了與當(dāng)前時(shí)間相關(guān)的數(shù)據(jù)包權(quán)值,即數(shù)據(jù)包距離當(dāng)前時(shí)間越近,其權(quán)值越大,因此,以此計(jì)算出的丟包率和抖動(dòng)率更能反映出當(dāng)前的丟包情況和抖動(dòng)情況,從而可以對(duì)JB進(jìn)行更合適的調(diào)節(jié)。
[0056]下述實(shí)施例描述的為抗丟包的處理方法。圖3為本發(fā)明實(shí)施例二提供的抗丟包處理方法應(yīng)用場(chǎng)景示意圖。如圖3所示,發(fā)送端將信號(hào)通過(guò)傳輸網(wǎng)絡(luò)發(fā)送至接收端,接收端接收到數(shù)據(jù)后,首先將數(shù)據(jù)進(jìn)行抗丟包處理,再對(duì)數(shù)據(jù)進(jìn)行解碼并顯示??箒G包處理方法如下所示:
[0057]圖4為本發(fā)明實(shí)施例二提供的抗丟包處理方法流程圖。如圖4所示,本發(fā)明實(shí)施例提供的方法包括:
[0058]S401,判斷FEC恢復(fù)的數(shù)據(jù)包個(gè)數(shù)是否超過(guò)恢復(fù)閾值。
[0059]具體地,可以預(yù)先設(shè)定一個(gè)比值,該比值表示需要恢復(fù)出的數(shù)據(jù)包個(gè)數(shù)占總的丟包數(shù)的百分比,該比值與總的丟包數(shù)的乘積即為恢復(fù)閾值,并判斷FEC恢復(fù)的數(shù)據(jù)包個(gè)數(shù)是否超過(guò)恢復(fù)閾值。
[0060]S402,如果所述FEC恢復(fù)的所述數(shù)據(jù)包個(gè)數(shù)不超過(guò)所述恢復(fù)閾值,則判斷連續(xù)丟包數(shù)是否超過(guò)連續(xù)丟包閾值。
[0061]具體地,如果所述FEC恢復(fù)的所述數(shù)據(jù)包個(gè)數(shù)不超過(guò)所述恢復(fù)閾值,說(shuō)明FEC的恢復(fù)能力不夠,沒(méi)有達(dá)到預(yù)先設(shè)定的恢復(fù)目標(biāo),因此,需要采取其它方法進(jìn)行處理,本發(fā)明實(shí)施例中采用的方法為:繼續(xù)判斷連續(xù)丟包數(shù)是否超過(guò)連續(xù)丟包閾值,這里的連續(xù)丟包閾值為預(yù)先設(shè)定的,若連續(xù)丟包數(shù)超過(guò)該連續(xù)丟包閾值,則說(shuō)明網(wǎng)絡(luò)狀態(tài)很差,或者其他原因?qū)е聰?shù)據(jù)包傳輸效果較差,丟失數(shù)據(jù)太多,由于接收端對(duì)數(shù)據(jù)進(jìn)行解碼時(shí),后一個(gè)數(shù)據(jù)需要依賴前一個(gè)數(shù)據(jù),因此,如果接收到的數(shù)據(jù)丟失較多,則解碼時(shí),若前一個(gè)數(shù)據(jù)丟失或出錯(cuò),必定會(huì)導(dǎo)致后面的數(shù)據(jù)都出錯(cuò),因此,這時(shí)較好的解決方法為控制發(fā)送端重傳I幀,即重傳關(guān)鍵幀(I幀/關(guān)鍵幀與其之前的數(shù)據(jù)沒(méi)有關(guān)聯(lián))。另外,發(fā)送端發(fā)送數(shù)據(jù)時(shí)都會(huì)設(shè)定一個(gè)時(shí)間段,每經(jīng)過(guò)一個(gè)該時(shí)間段,發(fā)送端都會(huì)重傳I幀,以此來(lái)減小數(shù)據(jù)出錯(cuò)率,因此,如果連續(xù)丟包數(shù)超過(guò)連續(xù)丟包閾值,也可以縮短I幀間隔也可以減小數(shù)據(jù)出錯(cuò)率。
[0062]另外,如果所述FEC恢復(fù)的所述數(shù)據(jù)包個(gè)數(shù)超過(guò)所述恢復(fù)閾值,說(shuō)明FEC有足夠的恢復(fù)能力,因此,對(duì)于后面的丟包可以繼續(xù)采用FEC進(jìn)行恢復(fù)。
[0063]S403,如果所述連續(xù)丟包數(shù)不超過(guò)所述連續(xù)丟包閾值,則根據(jù)網(wǎng)絡(luò)狀態(tài)控制發(fā)送端重傳丟失的數(shù)據(jù)包,或者控制發(fā)送端發(fā)送FEC冗余包,利用所述冗余包對(duì)丟失的數(shù)據(jù)包進(jìn)行FEC恢復(fù)。
[0064]具體地,如果所述連續(xù)丟包數(shù)不超過(guò)所述連續(xù)丟包閾值,則并不能說(shuō)明網(wǎng)絡(luò)很差,因此,可以根據(jù)網(wǎng)絡(luò)往返時(shí)延(Round-Trip Time,RTT)、接收端碼率和抖動(dòng)時(shí)間來(lái)判斷網(wǎng)絡(luò)狀態(tài),根據(jù)網(wǎng)絡(luò)狀態(tài)的好壞分情況處理。
[0065]進(jìn)一步地,如果網(wǎng)絡(luò)阻塞,則控制發(fā)送端發(fā)送FEC冗余包,利用所述冗余包對(duì)丟失的數(shù)據(jù)包進(jìn)行FEC恢復(fù),并縮短I幀間隔;如果網(wǎng)絡(luò)不阻塞,則重傳丟失的數(shù)據(jù)包。
[0066]可選地,在S401之前還可以包括:根據(jù)每個(gè)數(shù)據(jù)包距離當(dāng)前時(shí)間的遠(yuǎn)近,為每個(gè)數(shù)據(jù)包設(shè)定數(shù)據(jù)包權(quán)值;根據(jù)丟失數(shù)據(jù)包和所述數(shù)據(jù)包權(quán)值計(jì)算丟包率,根據(jù)抖動(dòng)數(shù)據(jù)包和所述數(shù)據(jù)包權(quán)值計(jì)算抖動(dòng)率;根據(jù)所述丟包率計(jì)算丟包比值;如果所述丟包比值小于所述抖動(dòng)率,則增大抖動(dòng)緩沖器JB的容量,以減緩或消除抖動(dòng)。
[0067]從中可以看出,在進(jìn)行抗丟包處理之前還可以進(jìn)行去抖動(dòng)處理,并且由于在計(jì)算丟包率和抖動(dòng)率時(shí),加入了與當(dāng)前時(shí)間相關(guān)的數(shù)據(jù)包權(quán)值,即數(shù)據(jù)包距離當(dāng)前時(shí)間越近,其權(quán)值越大,因此,以此計(jì)算出的丟包率和抖動(dòng)率更能反映出當(dāng)前的丟包情況和抖動(dòng)情況,從而可以對(duì)JB進(jìn)行更合適的調(diào)節(jié),以減緩或消除抖動(dòng)。
[0068]可選地,上述步驟之后還可以包括:如果丟包率超丟包率閾值,則將發(fā)送端編碼器中的編碼模式切換為第一編碼模式,所述第一編碼模式對(duì)當(dāng)前數(shù)據(jù)編碼時(shí)不需要參考之前的數(shù)據(jù),所述第一編碼模式可以為大P小P模式,也可唯為其它符合要求的模式。這里的丟包率閾值是預(yù)先設(shè)定的,如果丟包率超過(guò)該閾值,說(shuō)明丟失數(shù)據(jù)包太多,而接收端解碼時(shí),后一個(gè)數(shù)據(jù)需要依賴前一個(gè)數(shù)據(jù),如果丟包太多,則一個(gè)數(shù)據(jù)丟失或出錯(cuò),后面的數(shù)據(jù)都會(huì)出錯(cuò),因此,為降低解碼時(shí)的錯(cuò)率,可以控制發(fā)送端切換編碼模式,將編碼模式切換為對(duì)數(shù)據(jù)編碼時(shí)不需要依賴其之前的數(shù)據(jù)的編碼模式。
[0069]本發(fā)明實(shí)施例中,判斷FEC恢復(fù)的數(shù)據(jù)包個(gè)數(shù)是否超過(guò)恢復(fù)閾值;如果所述FEC恢復(fù)的所述數(shù)據(jù)包個(gè)數(shù)不超過(guò)所述恢復(fù)閾值,則判斷連續(xù)丟包數(shù)是否超過(guò)連續(xù)丟包閾值;如果所述連續(xù)丟包數(shù)不超過(guò)所述連續(xù)丟包閾值,則根據(jù)網(wǎng)絡(luò)狀態(tài)控制發(fā)送端重傳丟失的數(shù)據(jù)包,或者控制發(fā)送端發(fā)送FEC冗余包,利用所述冗余包對(duì)丟失的數(shù)據(jù)包進(jìn)行FEC恢復(fù)。從FEC恢復(fù)數(shù)據(jù)包的能力和網(wǎng)絡(luò)狀態(tài)的好壞兩個(gè)方面判斷丟包原因,并分別采用不同的處理方法,使得處理效果更好。
[0070]相應(yīng)地,本發(fā)明是實(shí)施例提供了與去抖動(dòng)處理方法對(duì)應(yīng)的去抖動(dòng)裝置。圖5為本發(fā)明實(shí)施例三提供的去抖動(dòng)處理裝置示意圖。如圖5所示,本發(fā)明實(shí)施例提供的裝置包括:設(shè)定單元501、第一計(jì)算單元502、第二計(jì)算單元503和處理單元504。
[0071]設(shè)定單元501,用于根據(jù)每個(gè)數(shù)據(jù)包距離當(dāng)前時(shí)間的遠(yuǎn)近,為每個(gè)數(shù)據(jù)包設(shè)定數(shù)據(jù)包權(quán)值,將所述丟包權(quán)值和抖動(dòng)權(quán)值發(fā)送至第一計(jì)算單元。[0072]第一計(jì)算單元502,用于接收所述設(shè)定單元501發(fā)送的所述丟包權(quán)值和抖動(dòng)權(quán)值,,根據(jù)丟失數(shù)據(jù)包和所述數(shù)據(jù)包權(quán)值計(jì)算丟包率,根據(jù)抖動(dòng)數(shù)據(jù)包和所述數(shù)據(jù)包權(quán)值計(jì)算抖動(dòng)率,將所述丟包率和抖動(dòng)率發(fā)送至第二計(jì)算單元503。
[0073]第二計(jì)算單元503,用于接收所述第一計(jì)算單元502發(fā)送的所述丟包率和抖動(dòng)率,根據(jù)所述丟包率計(jì)算丟包比值,將所述丟包率、抖動(dòng)率和丟包比值發(fā)送至處理單元504。
[0074]處理單元504,用于接收所述第二計(jì)算單元503發(fā)送的所述丟包率、抖動(dòng)率和丟包比值,如果所述丟包比值小于所述抖動(dòng)率,則增大抖動(dòng)緩沖器JB的容量,以減緩或消除抖動(dòng)。
[0075]具體地,所述第一計(jì)算單元502具體用于:
[0076]根據(jù)公式Ρζ^/^+ΑΑ+??;^2+...+Ai/21+...+A^1/2K O/K 計(jì)算所述丟包率,其中,P為丟包率,K為數(shù)據(jù)包總數(shù),Ai為第i個(gè)數(shù)據(jù)包,1/21為Ai的數(shù)據(jù)包權(quán)值,當(dāng)Ai為丟包時(shí),Ai=I,否則Ai=O, O≤i≤K-1, i越小,則Ai距離當(dāng)前時(shí)間越近;
[0077]根據(jù)公式^(Αυ/^+ΑΑ+?。籢2+...+Ai/21+...+A^1/2K O/K 計(jì)算所述抖動(dòng)率,其中,J為抖動(dòng)率,K為數(shù)據(jù)包總數(shù),Ai為第i個(gè)數(shù)據(jù)包,1/21為Ai的數(shù)據(jù)包權(quán)值,當(dāng)Ai為抖動(dòng)包時(shí),Ai=I,否則Ai=O, O≤i ^ K-1, i越小,則Ai距離當(dāng)前時(shí)間越近。具體地,第二計(jì)算單元503通過(guò)計(jì)算所述丟包率與η的比值,獲得所述丟包比值,η > I。
[0078]處理單元504還用于,如果所述丟包比值大于所述抖動(dòng)率,則減小JB的容量。 [0079]可選地,本發(fā)明實(shí)施還提供了另一種去抖動(dòng)處理裝置。圖6為本發(fā)明實(shí)施例三提供的另一種去抖動(dòng)處理裝置示意圖。如圖6所示,本發(fā)明實(shí)施例提供的裝置包括:設(shè)定單元601、第一計(jì)算單元602、第二計(jì)算單元603、處理單元604和第二處理單元605。
[0080]其中,設(shè)定單元601、第一計(jì)算單元602、第二計(jì)算單元603和處理單元604與上述裝置中的設(shè)定單元501、第一計(jì)算單元502、第二計(jì)算單元503和處理單元504單元一樣,因此,各個(gè)單元的功能在此不復(fù)贅述。
[0081]圖7為圖6中裝置的第二處理單元示意圖。如圖7所示,第二處理單元包括:第一判斷子單元701、第二判斷子單元702和處理子單元703。
[0082]第一判斷子單元701,用于判斷FEC恢復(fù)的數(shù)據(jù)包個(gè)數(shù)是否超過(guò)恢復(fù)閾值。
[0083]第二判斷子單元702,用于如果所述FEC恢復(fù)的所述數(shù)據(jù)包個(gè)數(shù)不超過(guò)所述恢復(fù)閾值,則判斷連續(xù)丟包數(shù)是否超過(guò)連續(xù)丟包閾值。
[0084]處理子單元703,用于如果所述連續(xù)丟包數(shù)不超過(guò)所述連續(xù)丟包閾值,則根據(jù)網(wǎng)絡(luò)狀態(tài)控制發(fā)送端重傳丟失的數(shù)據(jù)包,或者控制發(fā)送端發(fā)送FEC冗余包,利用所述冗余包對(duì)丟失的數(shù)據(jù)包進(jìn)行FEC恢復(fù)。
[0085]從中可以看出,第二處理單元不僅可以根據(jù)FEC恢復(fù)數(shù)據(jù)的能力對(duì)丟包情況進(jìn)行處理,還可以根據(jù)網(wǎng)絡(luò)狀態(tài)對(duì)丟包進(jìn)行處理,因此,可以更準(zhǔn)確的判斷引起丟包的原因,從而選擇合適的處理方法。
[0086]本發(fā)明實(shí)施例提供的裝置中植入了本發(fā)明實(shí)施例一提供的方法,因此,上述裝置中各個(gè)單元的具體工作過(guò)程在此不復(fù)贅述。
[0087]本發(fā)明實(shí)施例中,根據(jù)每個(gè)數(shù)據(jù)包距離當(dāng)前時(shí)間的遠(yuǎn)近,為每個(gè)數(shù)據(jù)包設(shè)定數(shù)據(jù)包權(quán)值;根據(jù)丟失數(shù)據(jù)包和所述數(shù)據(jù)包權(quán)值計(jì)算丟包率,根據(jù)抖動(dòng)數(shù)據(jù)包和所述數(shù)據(jù)包權(quán)值計(jì)算抖動(dòng)率;根據(jù)所述丟包率計(jì)算丟包比值;如果所述丟包比值小于所述抖動(dòng)率,則增大抖動(dòng)緩沖器JB的容量,以減緩或消除抖動(dòng)。由于在計(jì)算丟包率和抖動(dòng)率時(shí),加入了與當(dāng)前時(shí)間相關(guān)的數(shù)據(jù)包權(quán)值,即數(shù)據(jù)包距離當(dāng)前時(shí)間越近,其權(quán)值越大,因此,以此計(jì)算出的丟包率和抖動(dòng)率更能反映出當(dāng)前的丟包情況和抖動(dòng)情況,從而可以對(duì)JB進(jìn)行更合適的調(diào)節(jié)。
[0088]下述實(shí)施例描述的為一種抗丟包處理裝置。圖8為本發(fā)明實(shí)施例四提供的抗丟包處理裝置示意圖。如圖8所示,本發(fā)明實(shí)施例提供的裝置包括:第一判斷單元801、第二判斷單元802和處理單元803。
[0089]第一判斷單元801,用于判斷FEC恢復(fù)的數(shù)據(jù)包個(gè)數(shù)是否超過(guò)恢復(fù)閾值,將判斷結(jié)果發(fā)送至第二判斷單元802 ;
[0090]第二判斷單元802,用于接收所述第一判斷單元801發(fā)送的判斷結(jié)果,如果所述判斷結(jié)果為FEC恢復(fù)的所述數(shù)據(jù)包個(gè)數(shù)不超過(guò)所述恢復(fù)閾值,則判斷連續(xù)丟包數(shù)是否超過(guò)連續(xù)丟包閾值,將判斷結(jié)果發(fā)送至處理單元803;
[0091]處理單元803,用于接收所述第二判斷單元802發(fā)送的所述判斷結(jié)果,如果所述判斷結(jié)果為連續(xù)丟包數(shù)不超過(guò)所述連續(xù)丟包閾值,則根據(jù)網(wǎng)絡(luò)狀態(tài)控制發(fā)送端重傳丟失的數(shù)據(jù)包,或者控制發(fā)送端發(fā)送FEC冗余包,利用所述冗余包對(duì)丟失的數(shù)據(jù)包進(jìn)行FEC恢復(fù)。
[0092]可選地,所述第一判斷單元801還用于,如果FEC恢復(fù)的所述數(shù)據(jù)包個(gè)數(shù)超過(guò)所述恢復(fù)閾值,則對(duì)丟失的數(shù)據(jù)包進(jìn)行FEC恢復(fù)。
[0093]所述第二判斷單元802還用于,如果所述連續(xù)丟包數(shù)超過(guò)所述連續(xù)丟包閾值,則控制發(fā)送端重傳I幀,并縮短I幀間隔;如果網(wǎng)絡(luò)阻塞,則控制發(fā)送端發(fā)送FEC冗余包,利用所述冗余包對(duì)丟失的數(shù)據(jù)包進(jìn)行FEC恢復(fù),并縮短I幀間隔;如果網(wǎng)絡(luò)不阻塞,則重傳丟失的數(shù)據(jù)包。
[0094]本發(fā)明實(shí)施還提供了另一種抗丟包處理裝置。圖9為本發(fā)明實(shí)施例四提供的另一種抗丟包處理裝置示意圖。如圖9所示,本發(fā)明實(shí)施例提供的裝置包括:第一判斷單元901、第二判斷單元902、處理單元903和第二處理單元904。
[0095]其中,第一判斷單元901、第二判斷單元902和處理單元903與上述裝置中的第一判斷單元801、第二判斷單元802和處理單元803單元相同,因此,各個(gè)單元的功能在此不復(fù)贅述。
[0096]圖10為圖9中裝置的第二處理單元示意圖。如圖10所示,第二處理單元具體包括:設(shè)定子單元1001、第一計(jì)算子單元1002、第二計(jì)算子單元1003、處理子單元1004。
[0097]設(shè)定子單元1001,用于根據(jù)每個(gè)數(shù)據(jù)包距離當(dāng)前時(shí)間的遠(yuǎn)近,為每個(gè)數(shù)據(jù)包設(shè)定數(shù)據(jù)包權(quán)值。
[0098]第一計(jì)算子單元1002,用于根據(jù)丟失數(shù)據(jù)包和所述數(shù)據(jù)包權(quán)值計(jì)算丟包率,根據(jù)抖動(dòng)數(shù)據(jù)包和所述數(shù)據(jù)包權(quán)值計(jì)算抖動(dòng)率。
[0099]第二計(jì)算子單元1003,用于根據(jù)所述丟包率計(jì)算丟包比值。
[0100]處理子單元1004,用于如果所述丟包比值小于所述抖動(dòng)率,則增大抖動(dòng)緩沖器JB的容量,以減緩或消除抖動(dòng)。
[0101]從中可以看出,第二處理單元在進(jìn)行抗丟包處理之前還可以進(jìn)行去抖動(dòng)處理,并且由于在計(jì)算丟包率和抖動(dòng)率時(shí),加入了與當(dāng)前時(shí)間相關(guān)的數(shù)據(jù)包權(quán)值,即數(shù)據(jù)包距離當(dāng)前時(shí)間越近,其權(quán)值越大,因此,以此計(jì)算出的丟包率和抖動(dòng)率更能反映出當(dāng)前的丟包情況和抖動(dòng)情況,從而可以對(duì)JB進(jìn)行更合適的調(diào)節(jié),以減緩或消除抖動(dòng)。
[0102]可選地,所述第二處理單元還包括:
[0103]切換子單元,用于如果所述丟包率超丟包率閾值,則將發(fā)送端編碼器中的編碼模式切換為第一編碼模式,所述第一編碼模式對(duì)當(dāng)前數(shù)據(jù)編碼時(shí)不需要參考之前的數(shù)據(jù)。
[0104]本發(fā)明實(shí)施例中,判斷FEC恢復(fù)的數(shù)據(jù)包個(gè)數(shù)是否超過(guò)恢復(fù)閾值;如果所述FEC恢復(fù)的所述數(shù)據(jù)包個(gè)數(shù)不超過(guò)所述恢復(fù)閾值,則判斷連續(xù)丟包數(shù)是否超過(guò)連續(xù)丟包閾值;如果所述連續(xù)丟包數(shù)不超過(guò)所述連續(xù)丟包閾值,則根據(jù)網(wǎng)絡(luò)狀態(tài)控制發(fā)送端重傳丟失的數(shù)據(jù)包,或者控制發(fā)送端發(fā)送FEC冗余包,利用所述冗余包對(duì)丟失的數(shù)據(jù)包進(jìn)行FEC恢復(fù)。從FEC恢復(fù)數(shù)據(jù)包的能力和網(wǎng)絡(luò)狀態(tài)的好壞兩個(gè)方面判斷丟包原因,并分別采用不同的處理方法,使得處理效果更好。
[0105]專業(yè)人員應(yīng)該還可以進(jìn)一步意識(shí)到,結(jié)合本文中所公開(kāi)的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、計(jì)算機(jī)軟件或者二者的結(jié)合來(lái)實(shí)現(xiàn),為了清楚地說(shuō)明硬件和軟件的可互換性,在上述說(shuō)明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來(lái)執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來(lái)使用不同方法來(lái)實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
[0106]結(jié)合本文中所公開(kāi)的實(shí)施例描述的方法或算法的步驟可以用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來(lái)實(shí)施。軟件模塊可以置于隨機(jī)存儲(chǔ)器(RAM)、內(nèi)存、只讀存儲(chǔ)器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動(dòng)磁盤、CD-ROM、或【技術(shù)領(lǐng)域】?jī)?nèi)所公知的任意其它形式的存儲(chǔ)介質(zhì)中。
[0107]以上所述的【具體實(shí)施方式】,對(duì)本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步詳細(xì)說(shuō)明,所應(yīng)理解的是,以上所述僅為本發(fā)明的【具體實(shí)施方式】而已,并不用于限定本發(fā)明的保護(hù)范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種去抖動(dòng)處理方法,其特征在于,所述方法包括: 根據(jù)每個(gè)數(shù)據(jù)包距離當(dāng)前時(shí)間的遠(yuǎn)近,為每個(gè)數(shù)據(jù)包設(shè)定數(shù)據(jù)包權(quán)值; 根據(jù)丟失數(shù)據(jù)包和所述數(shù)據(jù)包權(quán)值計(jì)算丟包率,根據(jù)抖動(dòng)數(shù)據(jù)包和所述數(shù)據(jù)包權(quán)值計(jì)算抖動(dòng)率; 根據(jù)所述丟包率計(jì)算丟包比值; 如果所述丟包比值小于所述抖動(dòng)率,則增大抖動(dòng)緩沖器JB的容量,以減緩或消除抖動(dòng)。
2.根據(jù)權(quán)利要求1所述的去抖動(dòng)處理方法,其特征在于,所述根據(jù)丟失數(shù)據(jù)包和所述數(shù)據(jù)包權(quán)值計(jì)算丟包率,根據(jù)抖動(dòng)數(shù)據(jù)包和所述數(shù)據(jù)包權(quán)值計(jì)算抖動(dòng)率具體為: 根據(jù)公式 P=(A0/2°+A1/2+A2/22+...+Ai/2i+...+A^/2^1)/K 計(jì)算所述丟包率,其中,P 為丟包率,K為數(shù)據(jù)包總數(shù),Ai為第i個(gè)數(shù)據(jù)包,1/21為Ai的數(shù)據(jù)包權(quán)值,當(dāng)Ai為丟包時(shí),Ai=I,否則Ai=O, O≤i≤K-1, i越小,則Ai距離當(dāng)前時(shí)間越近;
根據(jù)公式 J= (A0/2°+A1/2+A2/22+...+Ai/2i+...+Ακ^/2^1) /K 計(jì)算所述抖動(dòng)率,其中,J 為抖動(dòng)率,K為數(shù)據(jù)包總數(shù),Ai為第i個(gè)數(shù)據(jù)包,1/21為Ai的數(shù)據(jù)包權(quán)值,當(dāng)Ai為抖動(dòng)包時(shí),Ai=I,否則Ai=O, O ^ i ^ K-1, i越小,則Ai距離當(dāng)前時(shí)間越近。
3.根據(jù)權(quán)利要求1所述的去抖動(dòng)處理方法,其特征在于,所述丟包比值具體為所述丟包率與η的比值,η≥1。
4.根據(jù)權(quán)利要求1所述的去抖動(dòng)處理方法,其特征在于,所述根據(jù)所述丟包率計(jì)算丟包比值之后還包括: 如果所述丟包比值大于所述抖動(dòng)率,則減小JB的容量。
5.根據(jù)權(quán)利要求1所述的去抖動(dòng)處理方法,其特征在于,所述如果所述丟包比值小于所述抖動(dòng)率,則增大抖動(dòng)緩沖器JB的容量,以減緩或消除抖動(dòng)之后還包括: 判斷前向糾錯(cuò)編碼FEC恢復(fù)的數(shù)據(jù)包個(gè)數(shù)是否超過(guò)恢復(fù)閾值; 如果所述FEC恢復(fù)的所述數(shù)據(jù)包個(gè)數(shù)不超過(guò)所述恢復(fù)閾值,則判斷連續(xù)丟包數(shù)是否超過(guò)連續(xù)丟包閾值; 如果所述連續(xù)丟包數(shù)不超過(guò)所述連續(xù)丟包閾值,則根據(jù)網(wǎng)絡(luò)狀態(tài)控制發(fā)送端重傳丟失的數(shù)據(jù)包,或者控制發(fā)送端發(fā)送FEC冗余包,利用所述冗余包對(duì)丟失的數(shù)據(jù)包進(jìn)行FEC恢復(fù)。
6.一種抗丟包處理方法,其特征在于,所述方法包括: 判斷FEC恢復(fù)的數(shù)據(jù)包個(gè)數(shù)是否超過(guò)恢復(fù)閾值; 如果所述FEC恢復(fù)的所述數(shù)據(jù)包個(gè)數(shù)不超過(guò)所述恢復(fù)閾值,則判斷連續(xù)丟包數(shù)是否超過(guò)連續(xù)丟包閾值; 如果所述連續(xù)丟包數(shù)不超過(guò)所述連續(xù)丟包閾值,則根據(jù)網(wǎng)絡(luò)狀態(tài)控制發(fā)送端重傳丟失的數(shù)據(jù)包,或者控制發(fā)送端發(fā)送FEC冗余包,利用所述冗余包對(duì)丟失的數(shù)據(jù)包進(jìn)行FEC恢復(fù)。
7.根據(jù)權(quán)利要求6所述的抗丟包處理方法,其特征在于,所述判斷FEC恢復(fù)的數(shù)據(jù)包個(gè)數(shù)是否超過(guò)恢復(fù)閾值之后還包括: 如果FEC恢復(fù)的所述數(shù)據(jù)包個(gè)數(shù)超過(guò)所述恢復(fù)閾值,則對(duì)丟失的數(shù)據(jù)包進(jìn)行FEC恢復(fù)。
8.根據(jù)權(quán)利要求6所述的抗丟包處理方法,其特征在于,所述如果所述FEC恢復(fù)的所述數(shù)據(jù)包個(gè)數(shù)不超過(guò)所述恢復(fù)閾值,則判斷連續(xù)丟包數(shù)是否超過(guò)連續(xù)丟包閾值之后還包括:如果所述連續(xù)丟包數(shù)超過(guò)所述連續(xù)丟包閾值,則控制發(fā)送端重傳I幀,并縮短I幀間隔。
9.根據(jù)權(quán)利要求6所述的抗丟包處理方法,其特征在于,所述根據(jù)網(wǎng)絡(luò)狀態(tài)控制發(fā)送端重傳丟失的數(shù)據(jù)包,或者控制發(fā)送端發(fā)送FEC冗余包,利用所述冗余包對(duì)丟失的數(shù)據(jù)包進(jìn)行FEC恢復(fù)具體包括: 如果網(wǎng)絡(luò)阻塞,則控制發(fā)送端發(fā)送FEC冗余包,利用所述冗余包對(duì)丟失的數(shù)據(jù)包進(jìn)行FEC恢復(fù),并縮短I幀間隔; 如果網(wǎng)絡(luò)不阻塞,則重傳丟失的數(shù)據(jù)包。
10.根據(jù)權(quán)利要求6所述的抗丟包處理方法,其特征在于,所述判斷FEC恢復(fù)的數(shù)據(jù)包個(gè)數(shù)是否超過(guò)恢復(fù)閾值之前還包括: 根據(jù)每個(gè)數(shù)據(jù)包距離當(dāng)前時(shí)間的遠(yuǎn)近,為每個(gè)數(shù)據(jù)包設(shè)定數(shù)據(jù)包權(quán)值; 根據(jù)丟失數(shù)據(jù)包和所述數(shù)據(jù)包權(quán)值計(jì)算丟包率,根據(jù)抖動(dòng)數(shù)據(jù)包和所述數(shù)據(jù)包權(quán)值計(jì)算抖動(dòng)率; 根據(jù)所述丟包率計(jì)算丟包比值; 如果所述丟包比值小于所述抖動(dòng)率,則增大抖動(dòng)緩沖器JB的容量,以減緩或消除抖動(dòng)。
11.根據(jù)權(quán)利要求10所述的抗丟包處理方法,其特征在于,所述如果所述丟包比值小于所述抖動(dòng)率,則增大抖動(dòng)緩沖器JB的容量,以減緩或消除抖動(dòng)之后還包括: 如果所述丟包率超丟包率閾值,則將發(fā)送端編碼器中的編碼模式切換為第一編碼模式,所述第一編碼模式對(duì)當(dāng)前數(shù)據(jù)編碼時(shí)不需要參考之前的數(shù)據(jù)。
12.—種去抖動(dòng)處理裝置,其特征在于,所述裝置包括: 設(shè)定單元,用于根據(jù)每個(gè)數(shù)據(jù)包距離當(dāng)前時(shí)間的遠(yuǎn)近,為每個(gè)數(shù)據(jù)包設(shè)定數(shù)據(jù)包權(quán)值,將所述數(shù)據(jù)包權(quán)值發(fā)送至第一計(jì)算單元; 第一計(jì)算單元,用于接收所述設(shè)定單元發(fā)送的所述數(shù)據(jù)包權(quán)值,根據(jù)丟失數(shù)據(jù)包和所述數(shù)據(jù)包權(quán)值計(jì)算丟包率,根據(jù)抖動(dòng)數(shù)據(jù)包和所述數(shù)據(jù)包權(quán)值計(jì)算抖動(dòng)率,將所述丟包率和抖動(dòng)率發(fā)送至第二計(jì)算單元; 第二計(jì)算單元,用于接收所述第一計(jì)算單元發(fā)送所述丟包率和抖動(dòng)率,根據(jù)所述丟包率計(jì)算丟包比值,將所述丟包率、抖動(dòng)率和丟包比值發(fā)送至處理單元; 處理單元,用于接收所述第二計(jì)算單元發(fā)送的所述丟包率、抖動(dòng)率和丟包比值,如果所述丟包比值小于所述抖動(dòng)率,則增大抖動(dòng)緩沖器JB的容量,以減緩或消除抖動(dòng)。
13.根據(jù)權(quán)利要求11所述的去抖動(dòng)處理裝置,其特征在于,所述第一計(jì)算單元具體用于, 根據(jù)公式 P=(A0/2°+A1/2+A2/22+...+Ai/2i+...+A^/2^1)/K 計(jì)算所述丟包率,其中,P 為丟包率,K為數(shù)據(jù)包總數(shù),Ai為第i個(gè)數(shù)據(jù)包,1/21為Ai的數(shù)據(jù)包權(quán)值,當(dāng)Ai為丟包時(shí),Ai=I,否則Ai=O, O≤i≤K-1, i越小,則Ai距離當(dāng)前時(shí)間越近;
根據(jù)公式 J= (A0/2°+A1/2+A2/22+...+Ai/2i+...+Ακ^/2^1) /K 計(jì)算所述抖動(dòng)率,其中,J 為抖動(dòng)率,K為數(shù)據(jù)包總數(shù),Ai為第i個(gè)數(shù)據(jù)包,1/21為Ai的數(shù)據(jù)包權(quán)值,當(dāng)Ai為抖動(dòng)包時(shí),Ai=I,否則Ai=O, O≤ i ≤ K-1, i越小,則Ai距離當(dāng)前時(shí)間越近。
14.根據(jù)權(quán)利要求11所述的去抖動(dòng)處理裝置,其特征在于,所述第二計(jì)算單元通過(guò)計(jì)算所述丟包率與η的比值,獲得所述丟包比值,n≥1。
15.根據(jù)權(quán)利要求11所述的去抖動(dòng)處理裝置,其特征在于,所述處理單元還用于, 如果所述丟包比值大于所述抖動(dòng)率,則減小JB的容量。
16.根據(jù)權(quán)利要求11所述的去抖動(dòng)處理裝置,其特征在于,所述裝置還包括第二處理單元,所述第二處理單元具體包括: 第一判斷子單元,用于判斷FEC恢復(fù)的數(shù)據(jù)包個(gè)數(shù)是否超過(guò)恢復(fù)閾值; 第二判斷子單元,用于如果所述FEC恢復(fù)的所述數(shù)據(jù)包個(gè)數(shù)不超過(guò)所述恢復(fù)閾值,則判斷連續(xù)丟包數(shù)是否超過(guò)連續(xù)丟包閾值; 處理子單元,用于如果所述連續(xù)丟包數(shù)不超過(guò)所述連續(xù)丟包閾值,則根據(jù)網(wǎng)絡(luò)狀態(tài)控制發(fā)送端重傳丟失的數(shù)據(jù)包,或者控制發(fā)送端發(fā)送FEC冗余包,利用所述冗余包對(duì)丟失的數(shù)據(jù)包進(jìn)行FEC恢復(fù)。
17.—種抗丟包處理裝置,其特征在于,所述裝置包括: 第一判斷單元,用于判斷FEC恢復(fù)的數(shù)據(jù)包個(gè)數(shù)是否超過(guò)恢復(fù)閾值,將判斷結(jié)果發(fā)送至第二判斷單元; 第二判斷單元,用于接收所述第一判斷單元發(fā)送的判斷結(jié)果,如果所述判斷結(jié)果為FEC恢復(fù)的所述數(shù)據(jù)包個(gè)數(shù)不超過(guò)所述恢復(fù)閾值,則判斷連續(xù)丟包數(shù)是否超過(guò)連續(xù)丟包閾值,將判斷結(jié)果發(fā)送至處理單元; 處理單元,用于接收所述第二判斷單元發(fā)送的所述判斷結(jié)果,如果所述判斷結(jié)果為連續(xù)丟包數(shù)不超過(guò)所述連續(xù)丟包閾值,則根據(jù)網(wǎng)絡(luò)狀態(tài)控制發(fā)送端重傳丟失的數(shù)據(jù)包,或者控制發(fā)送端發(fā)送FEC冗余包,利用所述冗余包對(duì)丟失的數(shù)據(jù)包進(jìn)行FEC恢復(fù)。
18.根據(jù)權(quán)利要求17所述的抗丟包處理裝置,其特征在于,所述第一判斷單元還用于, 如果FEC恢復(fù)的所述數(shù)據(jù)包個(gè)數(shù)超過(guò)所述恢復(fù)閾值,則對(duì)丟失的數(shù)據(jù)包進(jìn)行FEC恢復(fù)。
19.根據(jù)權(quán)利要求17所述的抗丟包處理裝置,其特征在于,所述第二判斷單元還用于, 如果所述連續(xù)丟包數(shù)超過(guò)所述連續(xù)丟包閾值,則控制發(fā)送端重傳I幀,并縮短I幀間隔。
20.根據(jù)權(quán)利要求17所述的抗丟包處理裝置,其特征在于,所述處理單元具體用于, 如果網(wǎng)絡(luò)阻塞,則控制發(fā)送端發(fā)送FEC冗余包,利用所述冗余包對(duì)丟失的數(shù)據(jù)包進(jìn)行FEC恢復(fù),并縮短I幀間隔; 如果網(wǎng)絡(luò)不阻塞,則重傳丟失的數(shù)據(jù)包。
21.根據(jù)權(quán)利要求17所述的抗丟包處理裝置,特征在于,所述裝置還包括第二處理單元,所述第二處理單元具體包括: 設(shè)定單子元,用于根據(jù)每個(gè)數(shù)據(jù)包距離當(dāng)前時(shí)間的遠(yuǎn)近,為每個(gè)數(shù)據(jù)包設(shè)定數(shù)據(jù)包權(quán)值; 第一計(jì)算子單元,用于根據(jù)丟失數(shù)據(jù)包和所述數(shù)據(jù)包權(quán)值計(jì)算丟包率,根據(jù)抖動(dòng)數(shù)據(jù)包和所述數(shù)據(jù)包權(quán)值計(jì)算抖動(dòng)率; 第二計(jì)算子單元,用于根據(jù)所述丟包率計(jì)算丟包比值; 處理子單元,用于如果所述丟包比值小于所述抖動(dòng)率,則增大抖動(dòng)緩沖器JB的容量,以減緩或消除抖動(dòng)。
22.根據(jù)權(quán)利要求21所述的抗丟包處理裝置,特征在于,所述第二處理單元還包括:切換子單元,用于如果所述丟包率超丟包率閾值,則將發(fā)送端編碼器中的編碼模式切換為第一編碼 模式,所述第一編碼模式對(duì)當(dāng)前數(shù)據(jù)編碼時(shí)不需要參考之前的數(shù)據(jù)。
【文檔編號(hào)】H04L1/18GK103916208SQ201210591563
【公開(kāi)日】2014年7月9日 申請(qǐng)日期:2012年12月31日 優(yōu)先權(quán)日:2012年12月31日
【發(fā)明者】韓慶瑞 申請(qǐng)人:華為技術(shù)有限公司