本發(fā)明涉及數(shù)據(jù)傳輸,尤其涉及一種實時視頻數(shù)據(jù)高可靠傳輸方法及系統(tǒng)。
背景技術(shù):
1、由于視頻電話、視頻會議、視頻監(jiān)控等ip化的視頻業(yè)務(wù)主要依賴互聯(lián)網(wǎng)等ip通信網(wǎng)絡(luò)進行承載和傳輸,而互聯(lián)網(wǎng)屬于典型的多方共同建設(shè)與運維的全球化網(wǎng)絡(luò),其傳輸質(zhì)量和網(wǎng)絡(luò)性能具有明顯的地域化差異,某些地域的通信帶寬、丟包率等數(shù)據(jù)傳輸指標可能明顯劣于其它地域,這給端到端視頻數(shù)據(jù)可靠傳輸帶來了巨大的挑戰(zhàn),一旦視頻傳輸路徑經(jīng)過了互聯(lián)網(wǎng)中傳輸質(zhì)量相對較差的數(shù)據(jù)交換節(jié)點,則可能面臨明顯的丟包或誤碼,導(dǎo)致接收端畫面馬賽克或視頻信號中斷,嚴重影響視頻業(yè)務(wù)傳輸效果。
2、現(xiàn)有技術(shù)主要通過優(yōu)選視頻編解碼算法或調(diào)整視頻編碼參數(shù)實現(xiàn)對視頻數(shù)據(jù)傳輸?shù)目煽啃栽鰪?,依靠高冗余度的視頻編碼算法,使視頻數(shù)據(jù)在編碼后具有一定的冗余,能夠在一定程度上抵抗傳輸過程中的丟包與誤碼。但是,在實際應(yīng)用過程中,現(xiàn)有技術(shù)存在兩個方面的不足:一是目前最常用的視頻編解碼算法僅h.264、h.265兩種,且不同視頻編解碼算法在抵抗傳輸誤碼時效果大同小異,切換編解碼算法難以帶來視頻傳輸可靠性質(zhì)的提升;二是典型的視頻編解碼算法及合法的編碼參數(shù)范圍往往需要考慮平衡通信性能與視頻傳輸可靠性,并不支持通過調(diào)整編碼參數(shù)引入過大的數(shù)據(jù)冗余,在面對較惡劣的網(wǎng)絡(luò)傳輸環(huán)境時,通過優(yōu)化視頻編碼參數(shù)并不能夠有效地提高視頻數(shù)據(jù)傳輸?shù)目煽啃浴?/p>
技術(shù)實現(xiàn)思路
1、鑒于此,本發(fā)明提供一種實時視頻數(shù)據(jù)高可靠傳輸方法及系統(tǒng),解決了現(xiàn)有技術(shù)嚴重依賴于視頻編解碼算法自身糾錯能力,且難以適應(yīng)極端惡劣通信環(huán)境的問題,使任意條件下對實時視頻數(shù)據(jù)的傳輸可靠性得到了明顯提升。
2、本發(fā)明公開了一種實時視頻數(shù)據(jù)高可靠傳輸方法,通過將原始視頻數(shù)據(jù)劃分為多個區(qū)塊,每個區(qū)塊加入完整度標識,對區(qū)塊進行預(yù)處理生成多份含有相同信息量的視頻分量數(shù)據(jù),不同視頻分量數(shù)據(jù)帶有不同的網(wǎng)絡(luò)通信標識,根據(jù)通信標識使視頻分量數(shù)據(jù)在相應(yīng)的網(wǎng)絡(luò)路徑中傳輸,接收端根據(jù)視頻完整度標識對多個視頻分量的數(shù)據(jù)進行合并,有效提升視頻數(shù)據(jù)傳輸可靠性,包括以下步驟:
3、步驟1,視頻區(qū)塊劃分:根據(jù)事先約定的方式,以像素點集合的表示方法,將每幀視頻劃分為多個不同的視頻區(qū)塊,每個視頻區(qū)塊內(nèi)含有不同的像素點集合,不同視頻區(qū)塊不含有相同的像素點,所有視頻區(qū)塊包含整個視頻幀的全部像素點;
4、步驟2,完整度標識嵌入:采用約定的方式,為每個視頻區(qū)塊嵌入一段完整度標識數(shù)據(jù),作為接收端判斷區(qū)塊信息完整度的依據(jù);
5、步驟3,原始視頻幀數(shù)據(jù)預(yù)處理:通過基于像素點位移的預(yù)處理方式,利用1份原始視頻幀數(shù)據(jù)生成n份預(yù)處理后的視頻幀數(shù)據(jù),每份預(yù)處理后的視頻幀數(shù)據(jù)含有與原始視頻幀數(shù)據(jù)相同的信息量,其中n表示方案中計劃生成的視頻分量數(shù)量;
6、步驟4,視頻分量生成:根據(jù)事先約定的冗余度和生成方法,分別基于n份預(yù)處理后的視頻幀數(shù)據(jù),生成n個視頻分量數(shù)據(jù);
7、步驟5,多通道并行傳輸控制:通過在視頻業(yè)務(wù)報文封裝時為不同的視頻分量數(shù)據(jù)指定不同的的網(wǎng)絡(luò)通信標識字段,引導(dǎo)中轉(zhuǎn)路由器根據(jù)不同轉(zhuǎn)發(fā)策略對不同的視頻分量進行轉(zhuǎn)發(fā)處理,達到視頻分量數(shù)據(jù)多通道傳輸?shù)男Ч?/p>
8、步驟6,視頻分量合并:接收端對收到的多個視頻分量數(shù)據(jù)進行合并,對于不同視頻分量數(shù)據(jù)中的同一個視頻區(qū)塊,根據(jù)嵌入的數(shù)據(jù)完整度標識,選擇完整度最高的視頻區(qū)塊組成最終的視頻數(shù)據(jù)。
9、進一步地,所述步驟1包括:
10、對于同一幀視頻數(shù)據(jù),視頻數(shù)據(jù)的發(fā)送端與視頻數(shù)據(jù)的接收端采用相同的規(guī)則實現(xiàn)視頻區(qū)塊劃分,該規(guī)則采用像素點集合的方式表達,通過事先約定或通過相同的算法及參數(shù)生成;采用像素點集合的方式表示視頻區(qū)塊的方法為:對于每幀原始視頻數(shù)據(jù),首先按照統(tǒng)一的規(guī)則對組成該幀視頻數(shù)據(jù)的全部像素點編號,例如對于分辨率為m×n的視頻數(shù)據(jù),一幀共有m×n個像素點,則分別編號為1至m×n;然后根據(jù)所需的視頻區(qū)塊完整度鑒別精確性,按需選擇恰當?shù)膮^(qū)塊大小,區(qū)塊大小應(yīng)當能整除像素點總數(shù),例如對于分辨率為m×n的視頻數(shù)據(jù),選擇m作為區(qū)塊大小;最后根據(jù)預(yù)先約定的方式為每個視頻區(qū)塊生成一個像素點集合,例如對于分辨率為m×n的視頻數(shù)據(jù),采用每行像素點組成一個視頻區(qū)塊的方式,則每個集合內(nèi)共包括m個像素點,以zi表示第i個集合,生成的n個集合分別為
11、z1{1,2,…,m},
12、z2{m+1,m+2,…,m+m},
13、…,
14、zn{m×(n-1)+1,m×(n-1)+2,…,m×n};
15、集合生成方式高度靈活,本方案支持采用不連續(xù)編號等任意方式自定義生成表示視頻區(qū)塊的像素點集合。
16、進一步地,所述步驟2包括:
17、對各視頻區(qū)塊的rgb格式數(shù)據(jù)進行完整度標識嵌入處理,為每個視頻區(qū)塊嵌入完整度標識數(shù)據(jù)的方法為:首先,采用具備均勻分布特征的隨機數(shù)函數(shù)rand()生成長度為視頻區(qū)塊幀像素點總數(shù)3倍的二進制序列m={m1,m2,m3,…},序列中的每個元素取值均為0或1,該序列在視頻數(shù)據(jù)收、發(fā)兩端需保持一致;然后,依次使用二進制序列m中的每個元素分別替代視頻區(qū)塊幀中每個像素點r、g、b數(shù)據(jù)中的最低比特,即每個像素點中嵌入了來自二進制序列m的3比特信息;最后,針對不同的視頻區(qū)塊幀,可分別生成不同的二進制序列,多個二進制序列及其與視頻區(qū)塊間的對應(yīng)關(guān)系在視頻數(shù)據(jù)收、發(fā)兩端需保持一致。
18、進一步地,所述步驟3包括:
19、基于像素點位移對原始視頻幀數(shù)據(jù)預(yù)處理的方法為:首先,針對分辨率為m×n的原始視頻幀數(shù)據(jù),根據(jù)像素點編號規(guī)則進行編號,形成像素點編碼序列s0={1,2,3,…,m×n};然后,以s0為基礎(chǔ)序列,隨機打亂s0中的像素點順序,形成新的像素點序列s1,若將該序列中的像素點按上述像素點編號規(guī)則回填入原始視頻幀,則將形成一幀與原始視頻幀數(shù)據(jù)完全不同的新視頻幀數(shù)據(jù),該新視頻幀數(shù)據(jù)作為其中1份預(yù)處理后的視頻幀數(shù)據(jù);最后,重復(fù)上述步驟,生成n-1份預(yù)處理后的視頻幀數(shù)據(jù),加上原始視頻幀數(shù)據(jù),共形成n份預(yù)處理后的視頻幀數(shù)據(jù),其中n表示方案中計劃生成的視頻分量數(shù)量。
20、進一步地,所述步驟4包括:
21、生成多個視頻分量的方法為:首先,確定一個視頻分量冗余度k,取值范圍為[0,1],0表示零冗余,1表示100%冗余;然后,基于冗余度k生成一個隨機的二進制序列b={b1,b2,b3,…,bm×n},二進制序列中“1”的占比與k的值相等,其中m×n代表待處理的視頻幀分辨率;再次,將隨機的二進制序列b作為視頻幀掩碼,與前述步驟中通過像素點位移生成的預(yù)處理后的視頻幀數(shù)據(jù)“相與”,逐個遍歷序列b中的全部元素,當元素為“1”時,預(yù)處理后的視頻幀數(shù)據(jù)中的對應(yīng)視頻像素點數(shù)據(jù)保持不變,當元素為“0”時,預(yù)處理后的視頻幀數(shù)據(jù)中的對應(yīng)視頻像素點數(shù)據(jù)重置為“全零值”;最后,重復(fù)上述步驟n-1次,直到對所有基于像素點位移實現(xiàn)預(yù)處理的視頻幀數(shù)據(jù)都處理完畢,即利用n-1個預(yù)處理后的視頻幀數(shù)據(jù)和n-1個不同的二進制序列b形成n-1個新的視頻幀數(shù)據(jù),加上最初的原始視頻幀數(shù)據(jù),共同構(gòu)成n個視頻分量數(shù)據(jù)。
22、進一步地,所述步驟5包括:
23、實現(xiàn)多通道并行傳輸?shù)姆椒椋菏紫?,將生成的n個視頻分量數(shù)據(jù)作為n路獨立的視頻數(shù)據(jù)流進行編碼,生成n個視頻編碼后的視頻數(shù)據(jù),按照常規(guī)方式進行ip層數(shù)據(jù)封裝;然后,在填充視頻數(shù)據(jù)ip報文的tos字段時,分別循環(huán)填充一般服務(wù)(0000)、最大吞吐量(0100)、最高可靠性(0010)、最小延遲(1000)、最小費用(0001)5種類型,引導(dǎo)中轉(zhuǎn)路由器根據(jù)不同的路徑轉(zhuǎn)發(fā)策略對不同的視頻分量數(shù)據(jù)進行轉(zhuǎn)發(fā)處理,達到視頻分量數(shù)據(jù)多通道傳輸?shù)男Ч?/p>
24、進一步地,所述步驟6包括:
25、接收端實現(xiàn)多個視頻分量合并的方法為:視頻數(shù)據(jù)解碼后,遍歷每個視頻分量數(shù)據(jù)中的所有視頻區(qū)塊,逐個比較不同視頻分量數(shù)據(jù)中相同視頻區(qū)塊的完整度標識,選取具有最高完整度得分的視頻區(qū)塊作為最終接收的視頻區(qū)塊;所有最終接收的視頻區(qū)塊選擇完成后,將組成一幀完整的視頻幀數(shù)據(jù)。
26、進一步地,在所述步驟6中,完整度得分的計算方法為:提取出視頻區(qū)塊中夾帶的完整度標識序列q={q1,q2,q3,…}后,與發(fā)送端嵌入的原始完整度標識m={m1,m2,m3,…}比較,計算數(shù)值一致的集合元素數(shù)量占總元素數(shù)量的比值p%,則p為該視頻區(qū)塊的完整度得分。
27、本發(fā)明公開了一種實時視頻數(shù)據(jù)高可靠傳輸系統(tǒng),實現(xiàn)上述任一項所述的實時視頻數(shù)據(jù)高可靠傳輸方法,其包括:
28、視頻區(qū)塊劃分模塊:用于對輸入的每幀視頻數(shù)據(jù)進行視頻區(qū)塊劃分,決定系統(tǒng)進行可靠傳輸控制的最小數(shù)據(jù)單元;
29、完整度標識嵌入模塊:用于對每個視頻區(qū)塊嵌入一個視頻數(shù)據(jù)完整度標識,作為傳輸后視頻區(qū)塊完整度的判斷依據(jù);
30、視頻幀預(yù)處理模塊:用于通過像素點位移的方式,將一幀原始視頻幀數(shù)據(jù)擴展為含有相同信息的多幀預(yù)處理后的視頻幀數(shù)據(jù);
31、視頻分量生成模塊:用于根據(jù)可靠性要求和信道丟包情況,將含有相同信息的多幀預(yù)處理后的視頻幀數(shù)據(jù)裁剪為冗余度適中的視頻分量幀數(shù)據(jù);
32、多通道并行傳輸模塊:用于控制編碼后的視頻報文傳輸參數(shù),以達到多路徑視頻數(shù)據(jù)并行傳輸?shù)男Ч?/p>
33、視頻分量合并模塊:用于根據(jù)視頻區(qū)塊完整度信息,對接收到的多個視頻分量數(shù)據(jù)進行合并,恢復(fù)出與原始視頻幀最相近的視頻數(shù)據(jù)。
34、由于采用了上述技術(shù)方案,本發(fā)明具有如下的優(yōu)點:
35、1、本發(fā)明變革了視頻數(shù)據(jù)在發(fā)送端與接收端之間的傳輸方法。通過增加多通道并行傳輸控制步驟,使同一份原始視頻數(shù)據(jù)被拆分為多個包含增量信息和重復(fù)信息的視頻分量數(shù)據(jù),分散至多個不同的網(wǎng)絡(luò)路徑傳輸,接收端再對多個視頻分量數(shù)據(jù)進行合并,恢復(fù)出最完整的原始視頻數(shù)據(jù),這種傳輸方式克服了基于單路徑傳輸時單徑傳輸質(zhì)量不佳的缺陷,明顯優(yōu)化了視頻數(shù)據(jù)的端到端傳輸可靠性。
36、2、本發(fā)明明顯提升了多通道并行傳輸條件下對突發(fā)的全信道質(zhì)量波動的抵抗能力。通過在生成多個視頻分量前增加基于像素點位移的視頻幀預(yù)處理步驟,明顯改變了同一個像素點在屬于不同視頻分量的單幀視頻畫面中的位置,從而改變了同一個像素點在屬于不同視頻分量視頻數(shù)據(jù)流中的位置,使多個視頻分量在網(wǎng)絡(luò)中多通道同步傳輸時,在出現(xiàn)無線網(wǎng)絡(luò)快衰落、主干路徑擁塞等影響所有傳輸路徑的大范圍瞬時傳輸質(zhì)量波動時,不同視頻分量中受到影響的像素點并不是原始視頻數(shù)據(jù)中的同一個像素點,使多通道傳輸條件下不同視頻分量合并后得到的原始視頻數(shù)據(jù)并不會受到全路徑瞬時傳輸質(zhì)量波動的影響,明顯提升了多通道傳輸條件下的視頻數(shù)據(jù)傳輸可靠性。
37、3、本發(fā)明提出了一種基于視頻完整度標識實現(xiàn)多視頻分量高質(zhì)量合并的全新方法。通過采用將原始視頻幀數(shù)據(jù)細分為多個視頻數(shù)據(jù)區(qū)塊,并修改視頻區(qū)塊中每個像素點r、g、b數(shù)據(jù)的最低比特值為預(yù)設(shè)的完整度標識數(shù)據(jù),最后在接收端基于視頻區(qū)塊完整度得分實現(xiàn)多個視頻分量間的視頻區(qū)塊優(yōu)選與組合的方式,一方面實現(xiàn)了在不增加額外網(wǎng)絡(luò)負載、不明顯影響視頻質(zhì)量條件下的視頻數(shù)據(jù)完整度信息攜帶,有效平衡了視頻傳輸質(zhì)量與網(wǎng)絡(luò)通信帶寬之間的矛盾,另一方面提供了一種高度細粒度的多視頻分量數(shù)據(jù)合并方式,不再局限于基于視頻幀或視頻流的粗粒度優(yōu)選,而是直接基于像素點(區(qū)塊)粒度的優(yōu)選,在多個視頻分量同時遭受了不同程度(例如分量1的區(qū)塊1、2、3受損,分量2的區(qū)塊4、5、6受損)的質(zhì)量損害時,能夠明顯提升多視頻分量合并后生成的原始視頻數(shù)據(jù)的視頻質(zhì)量。