本發(fā)明屬于通訊技術領域,尤其涉及多媒體數(shù)據(jù)傳輸過程中音視頻數(shù)據(jù)包編碼處理的方法。
背景技術:
隨著網(wǎng)絡技術日新月異的發(fā)展,流媒體技術成為當下最為熱門的互聯(lián)網(wǎng)技術之一,是保證我們可以快速高保真的分享圖像、音頻、視頻等多媒體文件的基礎。在流媒體技術中,視頻圖像由于數(shù)據(jù)量大以及網(wǎng)絡帶寬的限制,數(shù)據(jù)包丟失或出錯現(xiàn)象不可避免。如果視頻文件的丟包(本發(fā)明實例中對數(shù)據(jù)包出錯或丟失簡稱為“丟包現(xiàn)象”)達到一定程度,則嚴重影響接收端的視頻視覺效果,出現(xiàn)塊效應,視頻模糊,嚴重時甚至無法觀看。
為了保證發(fā)送視頻在接收端能夠正常播放,則需要對丟包進行恢復,這一般都是通過在傳輸?shù)囊曨l媒體包中增加冗余包來實現(xiàn)的。視頻糾錯編碼是一種能夠恢復一定數(shù)量范圍內(nèi)丟包的編碼方法。在糾錯編碼中,冗余包數(shù)量越多,則能夠恢復的丟失或出錯包數(shù)量越多。然而,冗余包的數(shù)量增多同樣會導致占用網(wǎng)絡帶寬過大。在傳輸?shù)臄?shù)據(jù)包總數(shù)量一定的情況下,用盡量少的冗余包來達到最大可能恢復發(fā)送視頻包,則糾錯編碼效率越高。fec編碼是目前較常采用的一種數(shù)據(jù)恢復編碼,其有較為高效的丟包恢復能力,fec又分為多種編碼實現(xiàn)方式,rs編碼是其中最為高效的一種編碼方式。然而,目前的fec編碼設計,存在對丟包恢復效果與編碼效率之間難以達到平衡的難題。
技術實現(xiàn)要素:
本發(fā)明的目的在于提供一種數(shù)據(jù)傳輸?shù)木幋a方法、裝置及系統(tǒng),可以根據(jù)預測的丟包率,計算信息包數(shù)量與冗余包數(shù)量的不同組合,即不同的rs編碼模式下的視頻完全恢復概率,并以此為依據(jù)來選擇最佳的rs編碼模式,從而找出最高效的fecrs編碼設計。
本發(fā)明的一種數(shù)據(jù)傳輸?shù)木幋a方法,包括以下步驟:步驟a:設置預測丟包率的初始值
優(yōu)選的,上述步驟c中,具體包括:步驟c-1:把所述信息包劃分子信息組包再分別進行rs編碼,根據(jù)所述子信息包組中信息包的數(shù)量及冗余度r劃分出出
步驟c-3:根據(jù)步驟c-1中選擇出所有滿足條件
優(yōu)選的,上述步驟e進一步包括以下步驟:步驟e-1:求出伽羅華域
優(yōu)選的,在上述步驟e中還包括:信道接收端對接收到的信息包構造伴隨矩陣,并計算校驗包進行丟包校驗,進一步判斷是否發(fā)生丟包現(xiàn)象。
優(yōu)選的,在所述步驟e中,如果發(fā)生丟包現(xiàn)象,則根據(jù)校驗包計算丟包發(fā)生位置,并對丟包恢復能力范圍內(nèi)的丟包進行丟包恢復,同時根據(jù)丟包情況對上述預測丟包率進行更新。
此外,本發(fā)明還公開了一種數(shù)據(jù)傳輸?shù)木幋a發(fā)送裝置,該裝置主要包括:音視頻編碼器、計算單元、糾錯編碼單元、傳輸發(fā)送單元,其中,所述音視頻編碼器用于對信道當前發(fā)送音視頻信號進行編碼,生成若干信息包;上述計算單元用于根據(jù)預測丟包率計算丟包恢復概率,從而確定選擇最優(yōu)rs編碼模式rs
優(yōu)選的,計算單元確定最優(yōu)rs編碼模式rs
步驟(3):根據(jù)所述步驟(1)中選擇出所有滿足條件的rs編碼模式,其中閾值
優(yōu)選的,上述糾錯編碼單元通過以下操作得到
此外,本發(fā)明還公開一種數(shù)據(jù)傳輸系統(tǒng),主要包括編碼發(fā)送裝置和解碼接收裝置,所述編碼發(fā)送裝置包括:音視頻編碼器、計算單元、糾錯編碼單元、傳輸發(fā)送單元,其中,音視頻編碼器用于對信道當前發(fā)送音視頻信號進行編碼,生成若干信息包;計算單元用于根據(jù)預測丟包率計算丟包恢復概率,從而確定選擇最優(yōu)rs編碼模式rs
優(yōu)選的,丟包恢復單元的丟包恢復是指根據(jù)校驗包計算丟包發(fā)生位置,并對丟包恢復能力范圍內(nèi)的丟包進行丟包恢復。
優(yōu)選的,當發(fā)生丟包現(xiàn)象時,則根據(jù)校驗包計算丟包發(fā)生位置,對丟包恢復能力范圍內(nèi)的丟包進行丟包恢復,由音視頻解碼器用于對恢復后的信息包進行解碼,同時根據(jù)丟包情況對預測丟包率進行更新;當沒有發(fā)生丟包現(xiàn)象時,音視頻解碼器對接收到的信息包進行解碼。
優(yōu)選的,計算單元確定最優(yōu)rs編碼模式rs
步驟(3):根據(jù)所述步驟(1)中選擇出所有滿足條件
優(yōu)選的,糾錯編碼單元通過以下操作得到
采用本發(fā)明的數(shù)據(jù)傳輸編碼方法,通過設計高效的視頻fec編碼算法,在fec冗余度確定時,根據(jù)統(tǒng)計預測的丟包率選擇發(fā)送包數(shù)量與冗余包數(shù)量的組合以實現(xiàn)最佳的丟包恢復效果。同時,對發(fā)送端視頻進行rs編碼時,在保證丟包恢復概率的前提下,選擇信息包數(shù)量最小的rs編碼模式,提高了編碼的實時性。
本發(fā)明提供的方案通過在信道發(fā)送端發(fā)送信息包的同時發(fā)送高效編碼的fec冗余包,保證了信道接收端能夠對視頻傳輸過程中的丟包進行恢復,從而保證了接收端的視頻質量。
此外,本發(fā)明實例fecrs編碼的計算過程中,對部分運算事先制作成為運算表,使得在編解碼的過程中部分運算轉換為查表的方式,提高了運算效率。
附圖說明
圖1為本發(fā)明具體實施例中數(shù)據(jù)傳輸?shù)木幗獯a方法流程圖;
圖2為本發(fā)明具體實施例中編碼發(fā)送裝置和解碼接收裝置的功能模塊圖。
具體實施方式
本發(fā)明提供的方案在發(fā)送冗余包與信息包數(shù)量比例一定的情況下,根據(jù)統(tǒng)計的丟包率選擇最佳的rs編碼模式,即確定rs編碼最佳的信息包數(shù)量與冗余包數(shù)量,來進行fec編碼,能夠使丟包恢復率得到保證,從而保證信道接收端視頻有較好的質量。
為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明實施例的發(fā)明原理:依據(jù)在fec冗余度一定的情況下,丟包恢復率隨丟包率、發(fā)送包數(shù)量與冗余包數(shù)量組合變化的原理,以統(tǒng)計預測的丟包率作為發(fā)送包數(shù)量與冗余包數(shù)量組合調整的依據(jù),從而實現(xiàn)對發(fā)送視頻數(shù)據(jù)包進行最大概率的恢復,提高了接收端視頻的質量。
圖1為本發(fā)明具體實施例中數(shù)據(jù)傳輸?shù)木幗獯a方法流程圖。如圖1所示,本發(fā)明的主要流程步驟包括:
步驟110:設置預測丟包率初始值,fec冗余度。
步驟120:對信道發(fā)送端的視頻進行編碼得到信息包
步驟130:根據(jù)預測丟包率計算丟包恢復概率,選擇最優(yōu)rs編碼模式。
步驟140:根據(jù)步驟120中的視頻信息包及步驟130中選擇的rs編碼模式進行rs糾錯編碼,得到冗余包。
其中,步驟110至步驟140為本發(fā)明的編碼部分,步驟160至步驟180為本發(fā)明的解碼部分,步驟110的初始化只需對開始的發(fā)送視頻組進行設置,步驟120至步驟130則是所有視頻編碼幀進行fec,rs編碼不可少的部分。
步驟150:將編碼完成的冗余包與信息包組合封裝,一起發(fā)送至信道。
步驟160:在信道接收端對接收到的信息包進行校驗,如果沒有發(fā)生丟包則轉至步驟180,否則轉至步驟170。
步驟170:根據(jù)冗余包對接收到的信息包進行rs丟包恢復。
步驟180:對校驗恢復后的視頻數(shù)據(jù)包進行解碼,對預測丟包率進行更新。
進一步的,在本發(fā)明具體實施例中,數(shù)據(jù)傳輸?shù)木幗獯a方法具體操作如下所述:
步驟210:根據(jù)經(jīng)驗值對預測丟包率
步驟220:對信道當前發(fā)送視頻組的視頻信號用主流視頻編碼器進行編碼,得到當前視頻組待發(fā)送的
本發(fā)明實例中,為了保證發(fā)送端視頻在接收端能夠抵抗信道中的丟包而正常播放,需要對其添加用于校驗的冗余包。記發(fā)送端第
步驟230:根據(jù)預測丟包率
步驟230-a:在本發(fā)明具體實施例中,采用高效的rs糾錯編碼,對發(fā)送視頻組中的k個信息包添加n-k個冗余包。為了保證視頻編碼傳輸?shù)膶崟r性,在進行rs編碼時,需對信息包劃分為子信息包組再分別進行rs編碼,即選擇發(fā)送視頻組rs編碼模式。由于設定的fec冗余度為r,即子信息包組的信息包數(shù)量與冗余包數(shù)量比例k/n為r。根據(jù)子信息包組信息包的數(shù)量可劃分出種rs編碼模式,分別記為模式1:rs
步驟230-b:根據(jù)預測丟包率
步驟230-c:根據(jù)步驟230-b中計算的各rs編碼模式的丟包完全恢復概率,從步驟230-a中選擇出所有滿足條件:
步驟230-d:根據(jù)上述步驟230-c得到的所有rs編碼模式中,選擇其中子信息包數(shù)量最小的rs編碼模式:rs
步驟240:根據(jù)步驟230選擇的最優(yōu)rs編碼模式rs
步驟240-a:建立
步驟240-b:由rs編碼模式rs
步驟240-c:根據(jù)生成矩陣構造校驗矩陣。
步驟240-d:根據(jù)校驗矩陣和
步驟250:將信息包和經(jīng)過rs糾錯編碼得到的校驗冗余包添加相關信息,一起發(fā)送至傳輸信道。在傳輸過程中,某些發(fā)送包可能會發(fā)生丟失或出錯的情況。
步驟210至步驟240為本發(fā)明具體實施例的編碼部分,在信道的發(fā)送端執(zhí)行,用于對發(fā)送視頻組添加校驗冗余包,其中,步驟210的初始化只需對第1個發(fā)送視頻組執(zhí)行,步驟220至步驟230則是對所有發(fā)送視頻組都需要執(zhí)行的。
步驟260:在信道接收端對接收到的信息包構造伴隨矩陣,并計算校驗冗余包進行丟包校驗,如果所有用于校驗包均指示沒有發(fā)生丟包,則轉至步驟280,否則轉至步驟270。
步驟270:根據(jù)校驗包計算丟包發(fā)生位置,并對丟包恢復能力范圍內(nèi)丟失的包進行丟包恢復。
步驟280:對校驗恢復后的視頻信息包或者沒有發(fā)生丟包的信息包進行視頻解碼,并根據(jù)丟包的情況對預測丟包率進行更新。此處的預測丟包率是作為選擇rs編碼模式的一個參數(shù),其會不斷被更新,更新的數(shù)據(jù)來自于接收端的反饋。
步驟260至步驟280為本發(fā)明實例的解碼部分,在信道的接收端執(zhí)行,用于對接收的視頻組進行校驗以及丟包恢復,再進行視頻解碼,得到播放視頻。其中步驟260至步驟270為rs解碼,其運算所用的數(shù)據(jù)表與步驟240-a中建立的運算數(shù)據(jù)表一致。
圖2所示為本發(fā)明具體實施例中編碼發(fā)送裝置和解碼接收裝置的功能模塊圖。由圖所示,本發(fā)明數(shù)據(jù)傳輸系統(tǒng)主要包括了編碼發(fā)送裝置和解碼接收裝置。
其中,所述編碼發(fā)送裝置包括:音視頻編碼器、計算單元、糾錯編碼單元、傳輸發(fā)送單元。
音視頻編碼器,用于對信道當前發(fā)送音視頻信號進行編碼,生成若干信息包。
計算單元,用于根據(jù)預測丟包率計算丟包恢復概率,從而確定選擇最優(yōu)rs編碼模式rs
糾錯編碼單元,用于根據(jù)所述最優(yōu)rs編碼模式rs
傳輸發(fā)送單元,用于將所述冗余包與所述信息包一起封裝后發(fā)送。
上述計算單元在確定所述最優(yōu)rs編碼模式rs
步驟(2):計算
步驟(3):根據(jù)上述步驟(1)中選擇出所有滿足條件
步驟(4):從所述步驟(3)中得到的所有rs編碼模式中,選擇其中子信息包數(shù)量最小的rs編碼模式為所述最優(yōu)rs編碼模式:rs
解碼接收裝置包括:傳輸接收單元、丟包恢復單元、音視頻解碼器。
傳輸接收單元,用于接收所述冗余包和所述信息包數(shù)據(jù),以及更新后的預測丟包率
丟包恢復單元,用于信息包構造伴隨矩陣,并計算校驗包進行丟包檢驗、丟包恢復。該丟包恢復是指根據(jù)校驗包計算丟包發(fā)生位置,并對丟包恢復能力范圍內(nèi)的丟包進行丟包恢復,以及根據(jù)丟包的情況對預測丟包率
音視頻解碼器,用于對恢復后的信息包進行解碼;當沒有發(fā)生丟包現(xiàn)象時,所述音視頻解碼器對接收到的所述信息包進行解碼。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。