專利名稱:用于通信系統的子集編碼的制作方法
用于通信系統的子集編碼
背景技術:
本發明涉及大量相關數字數據的可靠通信,更具體地涉及大型數據文件的可靠的點到多點通信,其中文件為數字數據集合。在通信網絡上將大型數字數據文件從源節點傳輸至多個確認正確接收的目的節點的過程中存在固有的問題。在本文中出于示例的目的描述了單個源節點實施方式,但是允許使用多個源節點來發送單個源文件。文件可以是操作系統更新、高清晰視頻或由環境傳感器收集的數據。存在考慮以下性能度量的情況下用于這些任務的有效傳輸方案的需求:1.編碼/解碼復雜度:希望復雜度與包的總數量成線性關系;2.網絡傳輸延遲:為了允許方案支持時間敏感服務,較小的傳輸延遲是必要的;3.傳輸吞吐量:對于組播通信模式,方案支持目標組播容量;4.中間網絡節點的成本:應該最小化中間節點(參與傳輸但不需要文件的節點)的計算和存儲要求;5.傳輸協議開銷:協議開銷應該最小。通信網絡可以是有線網絡、無線網絡或者基于有線和無線網絡的組合構建的覆蓋網絡。先決條件是,網絡傳輸是被分組化,即,全部傳輸的數據被分組成適當大小的塊,稱為包。網絡節點可通過無線或有線鏈路將包傳輸至其相鄰的節點。然而,已知的是,網絡鏈路不是完美的;因為包可能在傳輸過程中被損壞或擦除,或者中間節點在傳輸過程中可能故障。損壞的包可被刪除并被處理成擦除(erasure)。(在該模式下,僅考慮網絡鏈路上的擦除。)網絡編碼是已知的網絡傳輸技術,其通常改進網絡吞吐量并且對丟包有容錯性。具體地,線性網絡編碼是實現組播網絡容量的已知有效的方式。路由是線性網絡編碼的特殊情況。替代僅進行路由,線性網絡編碼允許中間網絡節點發送通過它們所接收的包的線性組合生成的新包。中間網絡節點中的這種操作被稱為網絡節點的重新編碼。然而,當網絡的線性組合系數所確定的轉換矩陣的大小增加時,編碼、重新編碼和解碼的復雜度也快速地增加。使用網絡編碼的許多文件分布方案是本領域已知的。已知方案的一個共同特性是使用組塊(chunk)(也被稱為類(class)或代(generation))的概念,其中待傳輸的數據文件被劃分成相同大小的包,并且所有包被分組到相同大小的若干組塊中,這些組塊可以是不相交的或者重疊的。在傳輸過程中,對同一組塊中的包應用網絡編碼。在組塊的大小較小的情況下,這些方案具有較低的編碼/解碼復雜度。但是它們均具有各種缺陷并不能滿足以上定義的性能度量的要求。基于組塊的方案的一個問題在于如何調度這些組塊的傳輸。簡單的解決方案是一個一個地傳輸組塊, 其中源節點保持傳輸一個組塊的多個編碼的包。目的節點收集包直至其可正確地解碼當前的組塊。然后,目的節點將控制消息發送至源節點以指示成功的解碼。然而,在該方案中,控制消息開銷可能較大,并且在對等應用中,消息必須被發送至全部相關的網絡節點。而且,該方案不可擴展成多個目的節點,因為組塊的傳輸直到全部目的節點解碼了當前組塊后才會停止。為了解決順序調度的問題,可以循環的次序或隨機地調度組塊。然而,這兩種方法都帶來了新的問題。首先,當存在僅一小部分的組塊未被解碼時,兩種方法都不是有效的。其次,需要中間節點緩存全部組塊。考慮預編碼來解決第一個問題,但是對于實際的組塊大小而言,該方法不能很好的工作。重疊的組塊可改進用于實際組塊大小的隨機調度的吞吐量。直覺地,重疊的組塊的優勢是使用解碼的組塊來幫助其他組塊的解碼。已知的重疊組塊的設計是啟發式的,并且性能僅可通過仿真來估算。前景良好但是迄今為止沒有完全開發的一類碼是噴泉碼。噴泉碼是以低編碼/解碼復雜度通過刪除信道傳輸消息的一類碼。刪除信道是僅具有一個鏈路的簡單網絡。其包括LT碼和Raptor碼,LT碼是由M.Luby為刪除信道引入的具有低編碼/解碼復雜度的一類碼,Raptor碼通過組合LT碼的變型與一些預編碼來實現甚至更低的編碼/解碼復雜度。LT碼的編碼包含以下過程:首先,采樣預設計的度分布并且獲得整數值d。然后隨機地選擇d個不同的輸入包并使用位或相加以得到輸出包。通過刪除信道傳輸輸出包,并且傳輸的輸出包的數量可以是無限的。LT解碼器可使用任意η個輸出包來恢復原始的K個輸入包,其中η為大于K的某個數。解碼過程可通過LT碼的解碼圖(被稱為Tanner圖)來描述。解碼圖是在一側具有K個節點而在另一側具有η個節點的二分圖,稱為變量節點和校驗節點,分別對應于輸入包和輸出包。如果輸入包對輸出包的值有貢獻,則輸入包與輸出包之間存在邊。在解碼算法的每個步驟中,解碼器識別度為I的輸出包。度為I的輸出包的值正是輸入包中其唯一相鄰包的值。一旦輸入包被恢復,就將其值從全部相鄰的輸出包中減去,并將該輸入包和將其全部相關的邊從圖中去除。LT碼的度分布需要小心地設計以使得LT碼具有低編碼/解碼復雜度并且以上的解碼算法以高概率實現。由Μ.Luby提出的LT碼需要由LT解碼器恢復全部輸入包。Raptor碼放松了此條件,即僅需要恢復恒定的一部分輸入包。其余輸入包使用預編碼恢復。然而,噴泉碼并未被設計用于一般的通信網絡;在這些網絡中簡單地應用噴泉碼可能不是最優的。對于一般的網絡,一個鏈路一個鏈路地應用噴泉碼和網絡編碼可實現最大的吞吐量。但是該方案具有兩個缺陷:首先,需要在每個中間節點處進行LT碼的解碼和重新編碼,因此復雜度不低。其次,在每個中間節點處發生與文件大小成比例的解碼延遲,因此端對端解碼延遲隨網絡的大小增長。對于具有樹結構的網絡,可通過以堆疊的方式應用噴泉碼來減少延遲:中間節點緩存其接收的包并使用噴泉碼重新編碼包,目的節點解碼多層噴泉碼。該方法僅將全部解碼移至目的節點。在采用線性網絡編碼的網絡中難以應用噴泉碼是因為網絡編碼改變了包的度,從而導致有效的置信傳播解碼的失敗。已針對特定的通信場景開發了啟發式算法,使得在目的節點接收到的被編碼的包組近似于LT碼。但是通常,難以確保接收到的包的度遵循使用分布編碼的特定分布。因此,期望一種在中間節點處不需要過多計算和存儲并且可用于在采用線性網絡編碼的網絡中有效地分布文件的文件傳輸方案。
以下專利在本領域中備受關注:第7,068,729號、第6,373,406號、第6,307,487號美國專利。以下參考文獻提供本發明的背景信息:S.-Y.R.Li,R.W.Yeung 和 N.Cai 的 “Linear network coding (線性網絡編碼)”,IEEE Trans.1nform.Theory,第 49 卷,第 2 期,第 371-381 頁,2003 年 2 月;P.Maymounkov, N.J.A.Harvey 和 D.S.Lun 的 “Methods for efficient networkcoding (有效網絡編碼的方法),,,Proc.Allerton Conf.Comm.,Control,and Computing,2006年9月;Τ.Ho,Β.Leong,Μ.Medard,R.Koetter,Υ.Chang 和 Μ.Effros 的 “The benefits ofcoding over routing in a randomized setting(在隨機化設置中基于路由編碼的益處)”,Proc.1EEE ISIT,03,2003 年 6 月;D.S.Lun,M.Medard, R.Koetter 和 M.Effros 的 “On coding for reliablecommunication over packet networks (分組網絡上用于可靠通信的編碼)”,PhysicalCommunication,第 I 卷,第 I 期,第 3-20 頁,2008 ;D.Silva,W.Zeng 和 F.R.Kschischang 的“Sparse network coding with overlapping classes (具有重疊類的稀疏網絡)”,CoRR,vol.abs/0905.2796,2009 ;A.Hei darzadeh 和 Α.Η.Banihashemi 的“Overlapped chunked network coding(重疊分塊網絡編碼)”,CoRR, vol.abs/0908.3234,2009 ;R.Ahjswede,N.Cai,S.-Y.R.Li 和 R.W.Yeung 的“Network information flow (網絡信息流)”,IEEE Trans.1nform.Theory,第 46 卷,第 4 期,第 1204-1216 頁,2000 年 7 月;R.Koetter 和 Μ.Medard 的 “An algebraic approach to network coding (網絡編碼的代數方法)” IEEE/ACM Trans.Networking,第 11 卷,第 5 期,第 782-795 頁,2003 年10月;P.A.Chou,Y.Wu和K.Jain 的“Practical network coding(實際網絡編碼)”,Proc.Allerton Conf.Comm, Control, and Computing,2003 年 10 月;M.Luby 的 “LT Codes (LT 碼)”,Proc.43rd Ann.1EEE Symp.0n Foundations ofComputer Science,2002 年 11 月,第 271-282 頁;A.Shokrollahi 的“Raptor Codes (Raptor 碼)”,IEEE Trans.1nform.Theory,第52 卷,第 6 期,第 2551-2567 頁,2006 ;R.Gummadi 和 R.S.Sreenivas 的 “Relaying a fountain code across multiplenodes (在多個節點上中繼噴泉碼)”,Proc.1EEE Information Theory Workhop, 2008,ITW,08,2008,第 149-153 頁;M.-L Champel,K.Huguenin,A.-M.Kermarrec 和 N.L Scouarnec 的 “LT networkcodes (LT 網絡碼)”,Techreport, INRIA,2009o
發明內容
根據本發明,基于批概念提供了用于數據編碼和關聯解碼的方法和系統,其中批允許從源節點將大型數據文件通過可釆用網絡編碼的通信網絡傳輸至多個目的節點。在特定的實施方式中,批包含M個編碼的包,其中M>1。(當M=I時,本發明的碼退化為LT/RaptOT碼)。源節點通過以下步驟使用稀疏矩陣碼生成批:
1.通過采樣度分布獲得度d ;2.選取d個不同的輸入包;3.使用當前的d個包和生成矩陣生成編碼的包的批。編碼器可生成一個或多個批,一個或多個批通常是彼此獨立的。在特定的實施方式中,源節點僅一個接一個地調度批的傳輸。在發送批的M個包后,源節點生成和發送另一批。批的主要特征在于,在網絡中傳輸批的過程中,允許包的各種損壞和在中間節點處的各種操作,只要通過線性函數給出了網絡的整體端對端轉換。這種包校正的實施例是包丟失或擦除。這種中間節點操作的實施例為路由,更具體地為線性網絡編碼。在特定的實施方式中,中間節點將屬于共同批的接收的(編碼的)包重新編碼成用于同一批的新包,然后在其外向鏈路上傳輸這些新包。這是在網絡中采用線性網絡編碼的場景。在另一特定的實施方式中,提供了子集編碼方法,其中,將待傳輸的文件在大小為q的有限域上分成相等長度的包。根據本發明的目的節點接收包,其中,接收到每個的包屬于一個批。目的節點使用解碼器,該解碼器使用稀疏矩陣碼的置信傳播解碼算法對接收到的批解碼。解碼器需要至少恢復全部輸入包的預定部分。在另一特定的實施方式中,首先在源節點處通過預編碼對輸入包進行編碼以引入一些冗余。然后在源節點處使用稀疏矩陣碼對預編碼的輸入包進行編碼并發送。目的節點使用解碼器,該解碼器使用稀疏矩陣碼的置信傳播解碼算法對接收到的批解碼。解碼器需要恢復全部輸入包的預定部分。通過預編碼恢復原始的輸入包。
該編碼和解碼技術的優勢包括:1.低編碼/解碼復雜度;2.最小的網絡傳輸延遲;3.得益于網絡編碼的高傳輸吞吐量;4.中間網絡節點在計算和存儲方面的低成本;以及5.簡單的傳輸協議。該編碼方案提供了各種情況的解決方案。該方案適用于在無線網絡中實現。這些無線網絡的示例包括無線傳感器網絡和蜂窩電話的自組織網絡。該方法可用于分布式存儲系統,其中每個批可視為原始文件的存儲塊。批可存儲在多個網絡位置的存儲裝置中。為了恢復文件,恢復某一數量的批。該編碼方法還可在對等文件分布系統中實現。能夠將該方法應用于視頻/音頻分流和廣播系統,盡管本文公開的特定碼沒有為這些系統特別優化。相比之下,之前用于類似問題的編碼方案需要中間網絡節點具有與整個文件相等的緩存大小,或者依賴于大的控制消息以協調傳輸。比較而言,該方案僅需要中間節點處的較小緩存尺寸以及最小化的控制消息。結合附圖通過以下的詳細描述將更好地理解本發明。
圖1是根據本發明的采用編碼和解碼的系統的框圖;圖2是示出根據本發明的編碼過程的二分Tanner圖3是示出根據本發明的解碼過程的二分Tanner圖;圖4是示出編碼方案圖,在編碼方案中輸入包被附加有系統預編碼的冗余包;圖5是恢復一組輸入包的92%所需的批的數量的直方圖;圖6是示出根據所接收的批的數量解碼的輸入包的數量的視圖;圖7是根據本發明在源節點處進行的操作的流程圖;圖8是根據本發明在中間節點的一個實施方式中進行操作的流程圖;圖9是根據本發明在源節點的特定實施方式中進行操作的流程圖;圖10是根據本發明在目的節點處進行操作的流程圖;圖11是根據本發明的一個實施方式的稀疏矩陣碼編碼器的框圖;圖12是根據本發明的一個實施 方式的稀疏矩陣碼解碼器的操作的流程圖;圖13是根據本發明的一個實施方式在源節點處進行的操作的流程圖;圖14是根據本發明的另一實施方式在源節點處進行的操作的流程圖;圖15是根據本發明的一個實施方式在中間節點處進行的操作的流程圖;圖16是根據本發明的一個實施方式在目的節點處進行的操作的流程圖;圖17是根據本發明的另一實施方式在目的節點處進行的操作的流程圖。
具體實施例方式圖1是示出采用根據本發明的方法的通信系統10的元素的框圖。源節點12包括聯接至數據源16的編碼器14,數據源16向編碼器14提供作為輸入的多個大型數據文件,例如大型數據文件18。編碼器14可包括預編碼器20。此外還存在稀疏矩陣編碼器22。編碼器14的輸出聯接至發送器26,發送器26接著聯接至鏈路28,批(batch) 21、23、25在鏈路28上傳輸。鏈路28聯接至通常在網或云36內的一個或多個中間節點30、32、34。對編碼器14的輸入是與大型數據文件18對應的一系列源包15、17、19。編碼器14向發送器26的輸出是一組編碼的輸出包,在本文中為自主的批21、23、25。發送器26將這些批以適于網絡的形式發送。這些批通過中間節點例如30傳送至目的節點53,中間節點不對文件或任何批進行解碼但它們可應用網絡編碼以產生批40、42、44。從目的節點53的輸入,接收器52和解碼器54可恢復作為恢復后的包46、48、50的源大型數據文件18,恢復后的包46、48、50向存儲單元56或其他使用裝置提供輸入。在下文中闡述根據本發明的用于編碼和解碼的技術。稀疏矩陣碼根據本發明,為在文件分布問題中傳輸一個文件提出了方法和編碼方案。該方案的核心成分為稀疏矩陣碼。因此,關鍵組件為稀疏矩陣編碼器22。生成批文件由K個不相交的包構成,每個包具有位于大小為q的有限域F中的T個符號。包長度T受到網絡協議限制并且可為幾千字節。這些包被表示成:B=Lb1, b2,...,bK]其中,bi被稱為輸入包,為包含來自F的T個符號的列向量。批為一組M個編碼的包,M個編碼的包通過使用這些輸入包的同一子集的M種可能的不同線性組合而生成。批使用通過將批的M個包并置而形成的矩陣來表示。對于i=l,2,...,批乂^皮生成為Xi=BiGi其中,Gi被稱為第i個批的生成矩陣。下面描述關于Gi的設計的細節。Bi中的包被表示為第i個批的貢獻者。每個批在無需考慮其他批如何生成的情況下生成。根據本發明,Bi的形成依賴于度分布Ψ= ( Ψ。,Ψ1;…,Ψκ),如LT/Raptor碼。然而,Ψ的設計不同于LT/Raptor碼的度分布,并且在本文的別處討論。為了生成第i個批,分布Ψ首先被采樣以獲得度φ。然后,一致隨機地選擇Cli個輸入包,并且通過將這些包并置形成B”生成矩陣的設計設計生成矩陣的一種方法是簡單地使用被預先設計且由源節點和目的節點共享的Gp另一方法是由源節點隨機生成G”沒有必要將Gi傳送至目的節點,因為目的節點僅需要Gi和第i批的轉換矩陣的乘積來解碼。目的節點需要度d1、貢獻者的指標和生成矩陣Gi用于解碼。在現有技術中存在可實現該目的的多種方法,例如,為LT碼和Raptor碼引入的方法。一個優選的方法是在源節點與目的節點之間共享偽隨機生成器。源節點全部使用由某一種子初始化的偽隨機生成器來生成度、貢獻者的指標和生成矩陣。目的節點可使用由同一種子初始化的偽隨機生成器來恢復該信息。可通過二分Tanner圖描述稀疏矩陣碼的編碼。與稀疏矩陣碼關聯的Tanner圖是二分圖。其具有K個與輸入包對應的變量節點,和η個與批對應的校驗節點。如果匕是批j的貢獻者,校驗節點j連接至變量節點i。在圖2中,該圖的最上面兩層示出了編碼過程。η個批的編碼復雜度為O(TnMWavg),其中Wavg=E ddVd。如果Wavg被選擇為常數,則編碼復雜度與η為線性關系。能夠用不依賴與K的常數Wavg設計Ψ。批的發送根據應用,存在許多選擇來調度批的發送。例如,可順次地發送批。為了發送批,源節點發送批中的M個包。在發送批之后,源節點可生成和發送另一批。因為對整個數據集進行確認,所以無需對每個批進行單獨的確認。對網絡僅有的要求在于,通過線性函數給出網絡針對每個批的整體端到端轉換。中間節點可應用線性網絡編碼。中間節點使用線性組合將接收到的批的包編碼成新的包,并在外向鏈路上傳輸這些新的包。這些新的包被視為處于同一批中。不同批中的包在網絡中不混合。由于端到端網絡轉換保持線性,所以允許網絡拓撲動態和丟包。因此,通過第i批的接收到的包形成的矩陣為:Yi=XiHi=BiGiHi,其中,Hi為由網絡確定的第i批的轉換矩陣。在氏中,行數等于M,而列數可依賴于i。圖2的底層中的節點對應于接收到的包。使用隨機線性網絡編碼的典型方法,轉換矩陣Hi可從編碼的包的包頭恢復。解碼目的節點試圖通 過在知曉GiHi的情況下使用線性方程系統Yi=BiGiHi對輸入包進行解碼。如果GiHi具有秩Cli,第i批是可解碼的。假設第i批是可解碼的。然后,可通過求解線性方程系統Yi=BiGiHi來恢復Bi中的包,該線性方程必須具有唯一解。在對第i個批解碼之后,Bi中的Cli個包被恢復。然后,將這些被解碼的輸入包的值代入與未被解碼的批關聯的線性方程系統中。考慮到bk處于Bi中并且被恢復。如果bk也包含在第j個批中,其中j不等于i,則減少第j個批的度,移除Gpi中與bk對應的行并且移除Yi中bk的貢獻。解碼過程可在圖3中使用二分圖更好地描述,除了與每個校驗節點i關聯的是線性方程系統Yi=BiGiHi之外,圖3與編碼圖相同。在解碼圖中,等同于首先移除第i個校驗節點、其相鄰的變量節點和相應的邊,然后,對于每個移除的變量節點,更新其相鄰校驗節點的關聯的線性方程系統。在新圖上重復該解碼代入過程,直至沒有更多的校驗節點可解碼。當不存在更多的可解碼的批時,目的節點等待/請求新的批并繼續對新批的可解碼性的校驗。這種解碼具有復雜度
權利要求
1.一種用于發送大型數據文件的方法,包括: 在源節點的編碼器裝置處接收數據文件,每個數據文件包括大量源包; 在所述源節點處根據稀疏矩陣碼對所述源包進行編碼,以生成自主批中的輸出包;以及 從所述源節點經由至少一個中間節點將所述自主批以網絡可兼容形式發送至目的節點,以在所述目的節點處進行解碼從而恢復每個所述數據文件。
2.根據權利要求1所述的方法,還包括: 在所述中間節點處對接收到的且被編碼的包進行重新編碼,所述接收到的且被編碼的包為所述自主批中的單獨一個自主批的一部分,以形成所述單獨一個自主批的新包; 在所述中間節點處接收到不屬于所述單獨一個自主批的被編碼的包,于是 發送中間節點編碼包,然后清除包含已被發送的包的緩存器。
3.根據權利要求1所述的方法,還包括: 在所述發送步驟前,將待發送的文件分割成相等長度的包。
4.一種用于將大型數據文件發送至多個目的節點的方法,包括: 在源節點處使用預編碼對源包進行編碼以引入冗余,從而獲得預編碼的輸入包; 在所述源節點處通過以下步驟使用稀疏矩陣碼對預編碼的源包進行編碼; 1)通過采樣度分布 獲得度d; 2)選取d個不同的預編碼的輸入包; 3)使用當前的d個包和生成矩陣生成編碼的包的批;然后 4)將包的當前批發送至目的節點;以及 在所述源節點處重復步驟I)至4)直至所述源節點從全部或部分目的節點接收到特定的反饋或者直至滿足某一條件。
5.一種用于處理電信網絡中的包的方法,包括: 在目的節點處接收自主批的表示,所述自主批已被應用到大量源包的稀疏矩陣碼編碼,所述大量源包包括數據文件并且被預編碼為形成自主包的輸出包; 在所述目的節點處使用稀疏矩陣碼的置信傳播解碼算法對接收到的自主批的表示進行解碼,所述算法被操作為恢復所有預編碼的源包的一部分; 在所述目的節點處恢復其余的預編碼的源包;以及 從被恢復的包重新構造所述數據文件。
6.一種用于發送和接收大型數據文件的系統,所述系統包括: 源節點,具有稀疏矩陣編碼器,用于從多個大型數據文件生成自主批中的輸出包;以及 目的節點,具有解碼器,用于從接收的自主批的表示自主地重新構造每個大型數據文件, 所述源節點和所述目的節點通過網絡中的至少一個中間節點通信,其中,所述中間節點不對所述自主批進行重新編碼。
7.一種用于發送和接收大型數據文件的系統,所述系統包括: 源節點,具有稀疏矩陣編碼器,用于從多個大型數據文件生成自主批中的輸出包;以及 目的節點,具有解碼器,用于從接收的自主批的表示自主地重新構造每個大型數據文件,所述源節點和所述目的節點通過網絡中的至少一個中間節點通信,其中,所述中間節點被配置為對 所述自主批進行重新編碼。
全文摘要
用于數據編碼和關聯的解碼的方法是基于批的概念,批允許從源節點將大型數據文件通過可采用網絡編碼的通信網絡傳輸至多個目的節點,其中在網絡設置中采用了稀疏矩陣碼。批是使用稀疏矩陣編碼器通過輸入包的子集生成的一組包。稀疏矩陣編碼器可重復地訪問以生成多個批。批通常是彼此獨立的。在通信網絡的傳輸過程中,可對屬于同一批的包應用網絡編碼從而改進組播吞吐量。解碼器使用接收到的批恢復輸入包的全部或至少固定的一部分。可在應用稀疏矩陣碼前使用預編碼對輸入包進行預編碼。然后可通過對預編碼進一步解碼來重新構造數據文件。
文檔編號H04W92/10GK103250463SQ201180055775
公開日2013年8月14日 申請日期2011年11月17日 優先權日2010年11月23日
發明者楊升浩, 楊偉豪 申請人:香港中文大學