專利名稱:一種隨機線性網(wǎng)絡(luò)編碼的方法、裝置和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)編碼,尤其涉及一種隨機線性網(wǎng)絡(luò)編碼的方法、裝置和系統(tǒng)。
背景技術(shù):
網(wǎng)絡(luò)編碼屬于一種被稱為無比率編碼的特定的信道編碼。發(fā)送端和接收端
之間的傳輸模型相對來說很簡單發(fā)送端以最大的速率連續(xù)發(fā)送編碼數(shù)據(jù)包給 接收端,而無需等待接收端的反饋信息;接收端在積累足夠的編碼包后,恢復(fù) 原始數(shù)據(jù)。
在抽象代數(shù)中,伽羅華域Galois Field(又名有限域)是一個包含有限多個 元素(數(shù)字)的域,可以用W丫^來表示一個擁有《個元素的伽羅華域。伽羅華域 運算被定義為有限元素之間特定的循環(huán)映射關(guān)系,典型的C尸運算是C加法和 W乘法。由于循環(huán)的特性,C尸中的有限元素相互關(guān)if關(guān)形成了一個有限環(huán);對任 何不屬于該環(huán)的其他元素,執(zhí)行模運算使得該元素被映射到有限環(huán)中的某個元 素。它的加法和乘法表是全局唯一的;C尸加法和乘法運算因為是一對一映射, 所以存在反向運算。對67Y^加法和乘法的直觀理解如下所示,
爿②5二(^x萬)mod《
其中,④是W中的加法運算符,<8)是"尸中的乘法運算符,raod為模運算。 網(wǎng)絡(luò)編碼的編碼和解碼過程用f尸的加法和乘法來操作原始數(shù)據(jù)塊。由于C 中的運算是完全可逆的,解碼過程只要簡單地反向執(zhí)行編碼過程中的運算即可。 編碼過程
參照圖1可以清楚看到編碼過程包括以下步驟將原始數(shù)據(jù)分成M個數(shù)據(jù)塊,其中M > 2; 將所述數(shù)據(jù)塊轉(zhuǎn)換成編碼包;
可以采用公式^ =S<^xX,.,/G{l,2,3,...,M},將所述數(shù)據(jù)塊轉(zhuǎn)換成編碼包;
其中,^表示第i個編碼包,用Z,表示第/個數(shù)據(jù)塊;G,表示第l個編碼包中 第/個數(shù)據(jù)塊的隨機系數(shù)。
所述數(shù)據(jù)塊經(jīng)過GF運算生成至少M個編碼包,將這些編碼包挨個發(fā)送到接
收端,
1
2
3
M
解碼過程
接收端接收所述編碼包和與之對應(yīng)的隨機系數(shù);
在接收端接收到M個線性獨立的編碼包后,構(gòu)建一線性方程組;其中I,是 M個未知數(shù);Q,和j;是編碼包中包含的參數(shù)。 對所述線性方程組求解,得到原始lt據(jù)。
在通過研究上述網(wǎng)絡(luò)編碼進(jìn)行內(nèi)容傳輸?shù)倪^程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有網(wǎng)絡(luò)編 碼的解碼過程復(fù)雜,需要的處理時間太長,無法在因特網(wǎng)應(yīng)用中推廣。
發(fā)明內(nèi)容
本發(fā)明的實施例提供一種隨機線性網(wǎng)絡(luò)編碼的方法,能夠使網(wǎng)絡(luò)編碼的編 碼、解碼過程更加簡便,大大縮短解碼處理時間。
為達(dá)到上述目的,本發(fā)明的實施例提供的隨機線性網(wǎng)絡(luò)編碼的方法,包括
8
f 1 fsl f3
f
3 s! 3
vas-
9將原始數(shù)據(jù)順序分成至少兩個數(shù)據(jù)塊;
確定至少兩個系數(shù)組,其中所述系數(shù)組的長度與數(shù)據(jù)塊個數(shù)相同,所述系 數(shù)組包含兩個元素;
所述數(shù)據(jù)塊與其對應(yīng)的系數(shù)進(jìn)行位與運算,得到編碼數(shù)據(jù)塊; 所述編碼數(shù)據(jù)塊之間進(jìn)行位異或運算,得到編碼包。
為達(dá)到上述目的,本發(fā)明的實施例還提供了一種隨機線性網(wǎng)絡(luò)編碼進(jìn)行解 碼的方法,包括以下步驟
通過位異或運算的逆運算對編碼包中的系數(shù)組進(jìn)行簡化; 獲取原始數(shù)據(jù)。
本發(fā)明的實施例提供一種隨機線性網(wǎng)絡(luò)編碼的裝置,能夠使網(wǎng)絡(luò)編碼的編 碼、解碼過程更加簡便,大大縮短解碼處理時間。
為達(dá)到上述目的,本發(fā)明的實施例提供的隨機線性網(wǎng)絡(luò)編碼的編碼裝置, 包括
數(shù)據(jù)分割模塊,用于將原始數(shù)據(jù)順序分成至少兩個數(shù)據(jù)塊; 確定系數(shù)模塊,用于確定至少兩個系數(shù)組,其中所述系數(shù)組的長度與數(shù)據(jù)
塊個數(shù)相同,所述系數(shù)組包含兩個元素;
與運算模塊,用于對所述數(shù)據(jù)塊與其對應(yīng)的系數(shù)進(jìn)行位與運算,得到編碼
數(shù)據(jù)塊;
異或運算模塊,用于對所述數(shù)據(jù)塊進(jìn)行位異或運算,得到編碼包。 為達(dá)到上述目的,本發(fā)明的實施例還提供一種隨機線性網(wǎng)絡(luò)編碼的解碼裝 置,包括 簡化模塊,用于通過位異或運算的逆運算對編碼包中的數(shù)據(jù)組進(jìn)行簡化;數(shù)據(jù)獲取模塊,用于獲取原始數(shù)據(jù)。
本發(fā)明的實施例提供一種隨機線性網(wǎng)絡(luò)編碼的系統(tǒng),使網(wǎng)絡(luò)編碼的解碼過 程更加簡便,大大縮短解碼處理時間。
為達(dá)到上述目的,本發(fā)明的實施例提供的隨機線性網(wǎng)絡(luò)編碼的系統(tǒng),包括 編碼裝置,用于隨機地為原始數(shù)據(jù)塊分配系數(shù)、并通過位與運算和位異或 運算將原始數(shù)據(jù)塊轉(zhuǎn)化成編碼包;
解碼裝置,用于對所述編碼包進(jìn)行簡化、解碼得到原始數(shù)據(jù)。 本發(fā)明實施例4是供的隨^i線性網(wǎng)絡(luò)編碼的方法、裝置和系統(tǒng),在編碼過程 中采用了基于GF(2)的網(wǎng)絡(luò)編碼,隨機為原始數(shù)據(jù)塊分配系數(shù),并通過位與運算 和位異或運算將原始數(shù)據(jù)塊轉(zhuǎn)化成編碼包;在解碼過程中通過將每個編碼包中 非主元元素消減為0從而將其系數(shù)矩陣最終簡化為單位矩陣,此時便得到相應(yīng) 的原始數(shù)據(jù),與現(xiàn)有技術(shù)相比,其在解碼過程中避免了繁瑣的系數(shù)矩陣求逆運 算,使得解碼過程較之前簡便很多,運算時間縮短;本發(fā)明實施例提供的網(wǎng)絡(luò) 編碼的方法、裝置和系統(tǒng),使得網(wǎng)絡(luò)編碼、解碼過程能夠更加快速、有效地進(jìn) 行。
圖1為現(xiàn)有技術(shù)中線性隨機網(wǎng)絡(luò)編碼的編碼過程示意圖2為本發(fā)明實施例中線性隨機網(wǎng)絡(luò)編碼的方法流程圖3為本發(fā)明實施例中線性隨機網(wǎng)絡(luò)編碼進(jìn)行解碼的方法流程圖4為本發(fā)明實施例中線性隨機網(wǎng)絡(luò)編碼進(jìn)行解碼的高斯消去法的示意圖5為本發(fā)明實施例中線性隨機網(wǎng)絡(luò)編碼的編碼裝置的結(jié)構(gòu)示意圖6為本發(fā)明實施例中線性隨機網(wǎng)絡(luò)編碼的解碼裝置的結(jié)構(gòu)示意圖7為本發(fā)明實施例中線性隨機網(wǎng)絡(luò)編碼的系統(tǒng)的結(jié)構(gòu)示意圖。
10
具體實施例方式
為了解決現(xiàn)有網(wǎng)絡(luò)編碼的解碼過程太過繁瑣,致使處理時間太長的問題, 本發(fā)明的實施例提出 一種隨機線性網(wǎng)絡(luò)編碼的方法,下面結(jié)合附圖對本發(fā)明實 施例隨機線性網(wǎng)絡(luò)編碼的方法進(jìn)行詳細(xì)描述。
如圖2所示,本發(fā)明隨機線性網(wǎng)絡(luò)編碼方法的實施例包括以下步驟
21、 將原始數(shù)據(jù)順序分成至少兩個數(shù)據(jù)塊;
22、 確定至少兩個系數(shù)組,其中所述系數(shù)組的長度與數(shù)據(jù)塊個數(shù)相同,所 述系數(shù)組包含兩個元素;
23、 所述數(shù)據(jù)塊與其對應(yīng)的系數(shù)進(jìn)行位與運算,得到編碼數(shù)據(jù)塊;
24、 所述編碼數(shù)據(jù)塊之間進(jìn)行位異或運算,得到編碼包。 本發(fā)明還提出一種隨機線性網(wǎng)絡(luò)編碼進(jìn)行解碼的方法,如圖3所示,本發(fā)
明隨機線性網(wǎng)絡(luò)編碼進(jìn)行解碼的方法的實施例包括以下步驟
31 、通過位異或運算的逆運算對編碼包中的系數(shù)組進(jìn)行簡化; 32、獲取原始數(shù)據(jù)。
步驟31中,所述位異或運算的逆運算仍為位異或運算。 本發(fā)明實施例提供的隨機線性網(wǎng)絡(luò)編碼的方法,在編碼過程中采用了基于 GF(2)的網(wǎng)絡(luò)編碼,隨機為原始數(shù)據(jù)塊分配系數(shù),并通過位與運算和位異或運算 將原始數(shù)據(jù)塊轉(zhuǎn)化成編碼包;在解碼過程中通過將編碼包中非主元元素消減為0 從而將其系數(shù)矩陣化筒為單位矩陣,此時便得到相應(yīng)的原始數(shù)據(jù),與現(xiàn)有技術(shù) 相比,本發(fā)明實施例在解碼過程中避免了繁瑣的系數(shù)矩陣求逆運算,使得解碼 過程較之前簡便^f艮多,運算時間縮短。 GF ( 2 )編碼
采用GF (2)編碼簡化了編碼過程。對于一個分成n (n>2)個數(shù)據(jù)塊的編數(shù),與對應(yīng)的數(shù)據(jù)塊進(jìn)行位與運算, 數(shù)據(jù)塊和O相與為O,和l相與仍為其本身,這樣得到編碼數(shù)據(jù)塊;然后,將這 些編碼數(shù)據(jù)塊進(jìn)行位異或運算,生成一個編碼包。該編碼過程也就相當(dāng)于,隨 機地選擇幾個數(shù)據(jù)塊執(zhí)行位異或運算,生成一個編碼包,較現(xiàn)有技術(shù)中的編碼 過程簡便了很多。
用高斯消去法進(jìn)行解碼
本發(fā)明隨機線性網(wǎng)絡(luò)編碼的方法的實施例中,對編碼包中系數(shù)組進(jìn)行簡化 的過程包括通過高斯消去法對至少兩個編碼包的系數(shù)矩陣進(jìn)行簡化,使得系 數(shù)矩陣每行的主元為1,其它位置的元素均為0。
如果當(dāng)前編碼包和以前收到的編碼包線性獨立,它就包含一個主元,通過 高斯消去法將其對應(yīng)于已確定的主元(pivot element)位置上的元素都置為0。 通過消除多余的非0元素,來簡化編碼包的系數(shù)組,進(jìn)而得到編碼包系數(shù)中的 主元。其后,利用新的主元還可以進(jìn)一步簡化其他已收到的編碼包。
在本發(fā)明隨機線性網(wǎng)絡(luò)編碼的方法的實施例中,所述高斯消去法是通過對 系數(shù)矩陣中的行進(jìn)行位異或運算來對編碼包中的系數(shù)組進(jìn)行簡化的,簡化過程 大致如下
如圖4所示,設(shè)定n為4, Y,、 Y2為接收端已經(jīng)收到并進(jìn)行簡化了的編碼包, Y3為接收端新收到的編碼包,且與Yi、 Y2之間線性獨立;通過高斯消去法對編碼 包系數(shù)矩陣進(jìn)行簡化的過程包括以下步驟
Sl,將編碼包Y3的系數(shù)組添加到系數(shù)矩陣中;
S2、 S3,如果Y3的系數(shù)組中包含冗余元素(主元之外的非0元素),且它們 對應(yīng)的主元在Yi、 Y2的系數(shù)組中已經(jīng)得到確認(rèn),那么通過位異或運算將丫3的系 數(shù)組中的冗余元素消除;S4, Y3的系數(shù)組中主元已經(jīng)確定,利用Y3進(jìn)一步簡化其它已收到的編碼包; S5,得到簡化后的系數(shù)矩陣。
只有在接收到n個線性獨立的編碼包,且經(jīng)簡化后所有的主元都為1、所有 的冗余元素都消除,解碼才算完成。即解碼過程的目標(biāo)就是用高斯消去法將編 碼包系數(shù)矩陣簡化成單位矩陣。
本發(fā)明實施例采用高斯消去法進(jìn)行解碼的方法,編碼包到達(dá)時,編碼包內(nèi) 的數(shù)據(jù)可以隨時得到處理,使得編碼包下載和編碼包處理可以同時進(jìn)行,大大 降低了解碼處理時間。
可調(diào)節(jié)的系數(shù)分配
由于每個獨立的編碼包只有一個主元,解碼過程通過將非主元元素消減為0 來解碼編碼包,非o系數(shù)的個數(shù)決定進(jìn)行異或運算的次數(shù)。在編碼過程中可以 調(diào)節(jié)編碼包系數(shù)組中非Q系數(shù)個數(shù)的平均值來改變處理復(fù)雜度。如果系數(shù)組中 非0系數(shù)個數(shù)的平均值很小,網(wǎng)絡(luò)編碼處理數(shù)據(jù)的時間就比較少。
系數(shù)組中非0系數(shù)個數(shù)的平均值的確定過程發(fā)送端擁有接收端請求的原 始數(shù)據(jù),通過檢查原始數(shù)據(jù)的大小,發(fā)送端確定數(shù)據(jù)塊的數(shù)量n和數(shù)據(jù)塊的長 度L。發(fā)送端傳遞數(shù)據(jù)塊數(shù)量n和長度L給接收端;接收端返回一個自身軟硬件 配置信息;發(fā)送端根據(jù)該配置信息確定K值,該K值表示所有系數(shù)組中非0系 數(shù)個數(shù)的平均值。
對一個有n個系數(shù)的編碼包,如果所有系數(shù)組中非0系數(shù)個數(shù)的平均值是K, 那么每個系數(shù)被選為1的概率就是I,每個系數(shù)被選為0的概率就是()。 如果K較小,網(wǎng)絡(luò)編碼處理數(shù)據(jù)的時間就比較少。
系數(shù)協(xié)商協(xié)議
對于接收端收到的每個編碼包,通過高斯消去法對其進(jìn)行簡化。如果新接收到的編碼包與前面的編碼包線性相關(guān),則該編碼包所有的非0系數(shù)都會被消
除,那么該編碼包就會#:4妄收端丟棄。
如果接收端接收到大量的與以往的編碼包線性相關(guān)的、無用的編碼包,就 會嚴(yán)重影響接收端設(shè)備進(jìn)行解碼的速度,浪費解碼時間。
本發(fā)明隨機線性網(wǎng)絡(luò)編碼的方法的實施例中,引入了系數(shù)協(xié)商協(xié)議
發(fā)送端傳輸編碼包和其對應(yīng)的系數(shù)組,以及隨后要傳輸?shù)木幋a包的系數(shù)組
給接收端;
接收端檢測隨后要傳輸?shù)木幋a包是否與目前收到的編碼包線性相關(guān); 如果線性相關(guān),接收端發(fā)送拒絕信號給發(fā)送端,同時發(fā)送一個線性獨立的 系數(shù)組給發(fā)送端;
發(fā)送端接收該系數(shù)組,并根據(jù)該系數(shù)組生成新的編碼包,發(fā)送給接收端。 由于網(wǎng)絡(luò)時延和丟包,有可能同時有多個包在網(wǎng)絡(luò)中傳輸。為了應(yīng)付這種
情況,可以在當(dāng)前編碼包里嵌入兩組以上(包括兩組)隨后將要傳輸?shù)木幋a包
的系數(shù)組。
為了能更好地對本發(fā)明進(jìn)行理解,現(xiàn)以一具體實施例對本發(fā)明的技術(shù)方案 做進(jìn)一步介紹。
發(fā)送端具體實施
發(fā)送端擁有接收端請求的原始數(shù)據(jù)的完整拷貝,通過檢查原始數(shù)據(jù)的大小, 發(fā)送端能動態(tài)確定數(shù)據(jù)塊的數(shù)量n和數(shù)據(jù)塊的長度L。發(fā)送端釆用握手協(xié)議傳遞 數(shù)據(jù)塊數(shù)量和數(shù)據(jù)塊長度信息給接收端;作為響應(yīng),接收端返回一個關(guān)于接收 端潛在計算能力的信息,這樣發(fā)送端就能確定合適的K值,它表示所有系數(shù)組 中非0系數(shù)的平均個數(shù)。
一旦K值確定了,發(fā)送端開始傳輸,為每個編碼包隨機分配的系數(shù)中非0系數(shù)的個數(shù)會受到K值的限制。當(dāng)數(shù)據(jù)塊的數(shù)量為n,即系數(shù)矩陣大小為nxn 時,每組系數(shù)包括n個2進(jìn)制系數(shù),則每個系數(shù)選擇為1的概率為互,為0的 概率為(i-A)。
根據(jù)當(dāng)前系數(shù)組中的系數(shù)生成編碼包。首先,為將要輸出的數(shù)據(jù)分配存儲 空間,并將該輸出數(shù)據(jù)初始化為0向量;然后從左到右掃描當(dāng)前的系數(shù)組,如 果第i個位置上的系數(shù)不為0,則將第i個數(shù)據(jù)塊與輸出數(shù)據(jù)進(jìn)行位異或運算, 生成編碼包;完成這一步后,發(fā)送端將兩組預(yù)測系數(shù)組(即分配給將要發(fā)送的 編碼包的系數(shù)組)與該編碼包綁定,發(fā)送給接收端。
編碼包發(fā)送完成后,第一組預(yù)測系數(shù)組變成當(dāng)前系數(shù)組,第二組預(yù)測系數(shù) 組就變成了第一組預(yù)測系數(shù)組,發(fā)送端自動生成新的第二組預(yù)測系數(shù)組。
在發(fā)送過程中,如果發(fā)送端從接收端收到一個編碼包的系數(shù)相關(guān)的報告, 那就意味著兩組預(yù)測系數(shù)組中至少有一組將會導(dǎo)致發(fā)送端生成與接收端已接收 編碼包線性相關(guān)的編碼包。發(fā)送端用接收端建議的系數(shù)組來替換與接收端已接 收編碼包中系數(shù)組線性相關(guān)的預(yù)測系數(shù)組。如下是發(fā)送端處理流程的偽碼。
接收端具體實施
接收端與發(fā)送端握手以獲得數(shù)據(jù)塊的數(shù)量和長度的信息,然后就可以初始 化相關(guān)設(shè)備。
解碼過程由接收到的編碼包驅(qū)動。當(dāng)編碼包到達(dá)時,首先處理其中包含的3 組系數(shù)組。為了確定系數(shù)組是否會導(dǎo)致相關(guān)的包,嘗試定位系數(shù)組中的主元。 首先查詢主元表中每個已經(jīng)恢復(fù)出來的主元,對位置i上的主元來說,如果新 接收的系數(shù)組相應(yīng)的位置上系數(shù)不為0,那么將該系數(shù)組和擁有所述主元的系數(shù) 組進(jìn)行異或運算以消除該非0系數(shù)。當(dāng)新接收的系數(shù)組中所有與已確定的主元 位置對應(yīng)的非0系數(shù)都被消除后,系數(shù)組就變成了簡化形式。如果簡化系數(shù)組沒有包含任何非0元素,那么該系數(shù)組與以前的收到的數(shù) 據(jù)包就是線性相關(guān)的。如果與已經(jīng)收到的編碼包線性相關(guān)的系數(shù)組是當(dāng)前系數(shù)
組,則丟棄剛收到的數(shù)據(jù)包;如果與已經(jīng)收到的編碼包線性相關(guān)的系數(shù)組是預(yù) 測系數(shù)組,則發(fā)送拒絕消息和建議的系數(shù)組給發(fā)送端,所述建議的系數(shù)組與已 經(jīng)收到的編碼包的系數(shù)是線性獨立的。
在所有的主元都確定后,解碼編碼包并恢復(fù)原始數(shù)據(jù)。每個存儲的編碼包 的系數(shù)組只在自己相應(yīng)的主元位置上有非0元素。這時編碼包中的數(shù)據(jù)已經(jīng)恢 復(fù)成原來的數(shù)據(jù)了 ,然后接收端向發(fā)送端報告解碼成功。
上述隨機線性網(wǎng)絡(luò)編碼的方法的實施例只描述了發(fā)送和接收一個編解碼單 元(大小為nxL字節(jié))的過程。通常一個單元的大小不會^艮大,因此傳輸一個內(nèi) 容時,需要將內(nèi)容在邏輯上分成多個連續(xù)的編解碼單元。接收端一般按順序下 載編解碼單元,且同時向多個發(fā)送端請求數(shù)據(jù)。發(fā)送端收到下載請求后,對所
請求編解碼單元的數(shù)據(jù)進(jìn)行編碼,發(fā)送編碼包給接收端。接收端從多個發(fā)送端 獲取所請求編解碼單元的編碼包,當(dāng)獲得足夠的編碼包并能解碼得到編解碼單 元原始數(shù)據(jù)時,通知發(fā)送端接收完成,并可能請求下一個編解碼單元。發(fā)送端 收到接收端的完成報告后,開始發(fā)送下一個所請求編解碼單元的編碼包。
本發(fā)明隨機線性網(wǎng)絡(luò)編碼的方法的實施例,在編碼過程中采用了基于GF(2) 的網(wǎng)絡(luò)編碼,編碼系數(shù)只有0和1,通過對原始數(shù)據(jù)塊進(jìn)行位異或運算生成編碼 包,簡化了現(xiàn)有技術(shù)中編碼的過程;本發(fā)明隨^L線性網(wǎng)絡(luò)編碼的方法的實施例, 在解碼過程中采用了高斯消去法對編碼包系數(shù)矩陣進(jìn)行簡化,使其最終簡化成 一單位矩陣,原始數(shù)據(jù)隨之得到,該方法避免了現(xiàn)有技術(shù)中繁瑣的矩陣求逆運 算,節(jié)省了解碼時間;本發(fā)明隨機線性網(wǎng)絡(luò)編碼的方法的實施例,實現(xiàn)了可調(diào) 節(jié)的系數(shù)分配,可以針對不同設(shè)備調(diào)節(jié)編解碼的復(fù)雜度;本發(fā)明隨機線性網(wǎng)絡(luò)編碼的方法的實施例,還提出了一種系數(shù)協(xié)商協(xié)議,接收端通過檢測隨后將要 收到的編碼包的系數(shù)組來判定是否要接收該編碼報,降低編碼包線性相關(guān)的可 能性,降低了對線性相關(guān)的編碼包進(jìn)行解碼所造成的時間上、資源上的浪費。 采用本發(fā)明實施例的隨機線性網(wǎng)絡(luò)編碼的方法,計算設(shè)備能以很高的吞吐率快 速編解碼,同時又能將編碼包線性相關(guān)導(dǎo)致的通訊開銷控制在最小。
本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述方法實施例的全部或部分步驟可 以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲于一計算機可讀取存 儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲 介質(zhì)包括R0M、 RAM、 ^茲碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
為了解決現(xiàn)有網(wǎng)絡(luò)編碼的解碼過程太過繁瑣,致使處理時間太長的問題, 本發(fā)明的實施例提出 一種隨機線性網(wǎng)絡(luò)編碼的裝置,下面結(jié)合附圖對本發(fā)明實 施例隨機線性編碼的裝置進(jìn)行詳細(xì)描述。
如圖5所示,本發(fā)明隨機線性網(wǎng)絡(luò)編碼的編碼裝置的實施例包括 數(shù)據(jù)分割模塊,用于將原始數(shù)據(jù)順序分成至少兩個數(shù)據(jù)塊; 確定系數(shù)模塊,用于確定至少兩個系數(shù)組,其中所述系數(shù)組的長度與數(shù)據(jù) 塊個數(shù)相同,所述系數(shù)組包含兩個元素;
與運算模塊,用于對所述數(shù)據(jù)塊與其對應(yīng)的系數(shù)進(jìn)行位與運算,得到編碼 數(shù)據(jù)塊;
異或運算模塊,用于對所述數(shù)據(jù)塊進(jìn)行位異或運算,得到編碼包。
其中,所述數(shù)據(jù)分割模塊之后還包括系數(shù)均值設(shè)定模塊,用于設(shè)定所有
系數(shù)組中非0系數(shù)個數(shù)的平均值K。
本發(fā)明實施例的隨機線性網(wǎng)絡(luò)編碼的編碼裝置還包括發(fā)送模塊,用于發(fā)
送包含所述編碼包的編碼信號。所述發(fā)送模塊,還用于發(fā)送包含所述編碼包以及隨后至少一個編碼包的系 數(shù)組的編碼信號。
本發(fā)明實施例的隨機線性網(wǎng)絡(luò)編碼的編碼裝置還包括系數(shù)接收模塊,用 于接收由接收端發(fā)送的一組系數(shù)。
本發(fā)明的實施例還提出一種隨機線性網(wǎng)絡(luò)編碼的解碼裝置,如圖6所示, 本發(fā)明隨機線性網(wǎng)絡(luò)編碼的解碼裝置的實施例包括
簡化模塊,用于通過位異或運算的逆運算對編碼包中的數(shù)據(jù)組進(jìn)行簡化;
數(shù)據(jù)獲取模塊,用于獲取原始數(shù)據(jù)。
本發(fā)明實施例的隨機線性網(wǎng)絡(luò)編碼的解碼裝置還包括接收模塊,用于接 收包含編碼包的編碼信號。
所述接收模塊,還用于接收包含編碼包及其隨后至少一個編碼包的系數(shù)組 的編碼信號。
本發(fā)明實施例的隨機線性網(wǎng)絡(luò)編碼的解碼裝置中,還包括
檢測模塊,用于檢測所述編碼包中的系數(shù)組與已接收到的編碼包的系數(shù)組
是否線性相關(guān);
丟棄/拒收^t塊,用于指示丟棄所述線性相關(guān)的編碼包。
所述檢測模塊,還用于檢測隨后的編碼包的系數(shù)組與已接收到的編碼包的
系數(shù)組是否線性相關(guān);
所述丟棄/拒收模塊,還用于指示拒收所述線性相關(guān)的系數(shù)組對應(yīng)的編碼包。
本發(fā)明實施例的隨機線性網(wǎng)絡(luò)編碼的解碼裝置還包括系數(shù)傳送模塊,用 于在拒收一編碼包之后,向發(fā)送端傳送一個與已接收到的系數(shù)組之間線性獨立 的系凄史組。
18本發(fā)明實施例的隨機線性網(wǎng)絡(luò)編碼的解碼裝置中,所述簡化模塊包括 添加系數(shù)組模塊,用于將所述編碼包的系數(shù)組添加到已有的系數(shù)矩陣中; 異或化簡模塊,用于通過位異或運算消除所述編碼包的系數(shù)組中主元之外 的非0元素;
矩陣簡化模塊,用于進(jìn)一步簡化已有的系數(shù)矩陣。
應(yīng),本發(fā)明實施例提供的隨機線性網(wǎng)絡(luò)編碼的裝置進(jìn)行網(wǎng)絡(luò)編碼,在編碼 過程中釆用基于GF(2)的網(wǎng)絡(luò)編碼,隨機為原始數(shù)據(jù)塊分配系數(shù),并通過位與運 算和位異或運算將原始數(shù)據(jù)塊轉(zhuǎn)化成編碼包;在解碼過程中通過將每個編碼包 中非主元元素消減為0從而將其系數(shù)矩陣化筒為單位矩陣,此時便得到相應(yīng)的 原始數(shù)據(jù),與現(xiàn)有技術(shù)相比,其在解碼過程中避免了繁瑣的系數(shù)矩陣求逆運算, 使得解碼過程較之前簡便很多,運算時間縮短。
為了解決現(xiàn)有網(wǎng)絡(luò)編碼的解碼過程太過繁瑣,致使處理時間太長的問題, 本發(fā)明的實施例提出 一種隨機線性網(wǎng)絡(luò)編碼的系統(tǒng),下面結(jié)合附圖對本發(fā)明實 施例隨機線性編碼的系統(tǒng)進(jìn)行詳細(xì)描述。
如圖7所示,本發(fā)明隨機線性網(wǎng)絡(luò)編碼的系統(tǒng)的實施例包括
編碼裝置,用于隨機地為原始數(shù)據(jù)塊分配系數(shù)、并通過位與運算和位異或 運算將原始數(shù)據(jù)塊轉(zhuǎn)化成編碼包;
解碼裝置,用于對所述編碼包進(jìn)行簡化、解碼得到原始數(shù)據(jù)。
所述編碼裝置包括
數(shù)據(jù)分割模塊,用于將原始數(shù)據(jù)順序分成至少兩個數(shù)據(jù)塊; 確定系數(shù)模塊,用于確定至少兩個系數(shù)組,其中所述系數(shù)組的長度與數(shù)據(jù) 塊個數(shù)相同,所述系數(shù)組包含兩個元素;
與運算模塊,用于對所述數(shù)據(jù)塊與其對應(yīng)的系數(shù)進(jìn)行位與運算,得到編碼數(shù)據(jù)塊;
異或運算模塊,用于對所述數(shù)據(jù)塊進(jìn)行位異或運算,得到編碼包。 所述解碼裝置包括
簡化模塊,用于通過位異或運算的逆運算對編碼包中的數(shù)據(jù)組進(jìn)行筒化; 數(shù)據(jù)獲取模塊,用于獲取原始數(shù)據(jù)。
應(yīng)用本發(fā)明實施例提供的隨機線性網(wǎng)絡(luò)編碼的系統(tǒng)進(jìn)行網(wǎng)絡(luò)編碼,在編碼 過程中釆用基于GF(2)的網(wǎng)絡(luò)編碼,隨機為原始數(shù)據(jù)塊分配系數(shù),并通過位與運 算和位異或運算將原始數(shù)據(jù)塊轉(zhuǎn)化成編碼包;在解碼過程中通過將每個編碼包 中非主元元素消減為0從而將其系數(shù)矩陣化簡為單位矩陣,此時便得到相應(yīng)的 原始數(shù)據(jù),與現(xiàn)有技術(shù)相比,其在解碼過程中避免了繁瑣的系數(shù)矩陣求逆運算, 使得解碼過程較之前簡便很多,運算時間縮短。
以上所述,僅為本發(fā)明的具體實施方式
,但本發(fā)明的保護(hù)范圍并不局限于 此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到 變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng) 以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1、一種隨機線性網(wǎng)絡(luò)編碼的方法,其特征在于,包括將原始數(shù)據(jù)順序分成至少兩個數(shù)據(jù)塊;確定至少兩個系數(shù)組,其中所述系數(shù)組的長度與數(shù)據(jù)塊個數(shù)相同,所述系數(shù)組包含兩個元素;所述數(shù)據(jù)塊與其對應(yīng)的系數(shù)進(jìn)行位與運算,得到編碼數(shù)據(jù)塊;所述編碼數(shù)據(jù)塊之間進(jìn)行位異或運算,得到編碼包。
2、 根據(jù)權(quán)利要求1所述的隨機線性網(wǎng)絡(luò)編碼的方法,其特征在于,所述系 數(shù)組中的兩個元素為0和1。
3、 根據(jù)權(quán)利要求2所述的隨機線性網(wǎng)絡(luò)編碼的方法,其特征在于,將原始 數(shù)據(jù)順序分成至少兩個數(shù)據(jù)塊之后還包括設(shè)定所有系數(shù)組中非Q系數(shù)個數(shù)的 平均值K。
4、 根據(jù)權(quán)利要求2和3所述的隨機線性網(wǎng)絡(luò)編碼的方法,其特征在于,所 述確定系數(shù)組的步驟包括隨機生成所述系數(shù)組,其中某一系數(shù)為1的概率為^4rir^,某一系數(shù) >系凄t組的長度為0的概率為l ^系數(shù)組的長度
5、 根據(jù)權(quán)利要求1所述的隨機線性網(wǎng)絡(luò)編碼的方法,其特征在于,還包括: 發(fā)送包含所述編碼包的編碼信號。
6、 根據(jù)權(quán)利要求1所述的隨機線性網(wǎng)絡(luò)編碼的方法,其特征在于,還包括: 發(fā)送包含所述編碼包及其隨后至少一個編碼包的系數(shù)組的編碼信號。
7、 根據(jù)權(quán)利要求6所述的隨機線性網(wǎng)絡(luò)編碼的方法,其特征在于,還包括: 接收由接收端發(fā)送的 一個系數(shù)組。
8、 一種隨機線性網(wǎng)絡(luò)編碼進(jìn)行解碼的方法,其特征在于,包括通過位異或運算的逆運算對編碼包中的系數(shù)組進(jìn)行簡化; 獲取原始數(shù)據(jù)。
9、 根據(jù)權(quán)利要求8所述的隨機線性網(wǎng)絡(luò)編碼進(jìn)行解碼的方法,其特征在于, 還包括接收包含編碼包的編碼信號。
10、 根據(jù)權(quán)利要求9所述的隨機線性網(wǎng)絡(luò)編碼進(jìn)行解碼的方法,其特征在 于,還包括檢測所述編碼包中的系數(shù)組與已接收到的編碼包的系數(shù)組是否線性相關(guān); 如果線性相關(guān),則丟棄該編碼包。
11、 根據(jù)權(quán)利要求8所述的隨機線性網(wǎng)絡(luò)編碼進(jìn)行解碼的方法,其特征在 于,還包括 接收包含編碼包及其隨后至少 一個編碼包的系數(shù)組的編碼信號。
12、 根據(jù)權(quán)利要求11所述的隨機線性網(wǎng)絡(luò)編碼進(jìn)行解碼的方法,其特征在 于,還包括檢測所述隨后的系數(shù)組與已接收到的編碼包的系數(shù)組是否線性相關(guān); 如果線性相關(guān),則拒收該系數(shù)組對應(yīng)的編碼包;向發(fā)送端傳送一個與已接收到的編碼包的系數(shù)組之間線性獨立的系數(shù)組。
13、 根據(jù)權(quán)利要求8所述的隨機線性網(wǎng)絡(luò)編碼進(jìn)行解碼的方法,其特征在 于,所述通過位異或運算的逆運算對編碼包中的系數(shù)組進(jìn)行簡化的步驟包括將所述編碼包的系數(shù)組添加到已有的系數(shù)矩陣中;如果所述系數(shù)組包含主元之外的非0元素,且所述非0元素對應(yīng)的主元在 已有的系數(shù)矩陣中已經(jīng)得到確認(rèn),那么通過位異或運算將所述系數(shù)組中的主元 之外的非0元素消除;確定所述系數(shù)組中的主元后,利用該系數(shù)組進(jìn)一步簡化已有的系數(shù)矩陣。
14、 一種隨機線性網(wǎng)絡(luò)編碼的編碼裝置,其特征在于,包括 數(shù)據(jù)分割模塊,用于將原始數(shù)據(jù)順序分成至少兩個數(shù)據(jù)塊; 確定系數(shù)模塊,用于確定至少兩個系數(shù)組,其中所述系數(shù)組的長度與數(shù)據(jù)塊個數(shù)相同,所述系數(shù)組包含兩個元素;與運算模塊,用于對所述數(shù)據(jù)塊與其對應(yīng)的系數(shù)進(jìn)行位與運算,得到編碼 數(shù)據(jù)塊;異或運算模塊,用于對所述數(shù)據(jù)塊進(jìn)行位異或運算,得到編碼包。
15、 根據(jù)權(quán)利要求14所述的隨機線性網(wǎng)絡(luò)編碼的編碼裝置,其特征在于, 數(shù)據(jù)分割模塊之后還包括系數(shù)均值設(shè)定模塊,用于設(shè)定所有系數(shù)組中非0系數(shù)個數(shù)的平均值K。
16、 根據(jù)權(quán)利要求14所述的隨機線性網(wǎng)絡(luò)編碼的編碼裝置,其特征在于, 還包括發(fā)送模塊,用于發(fā)送包含所述編碼包的編碼信號。
17、 根據(jù)權(quán)利要求16所述的隨機線性網(wǎng)絡(luò)編碼的編碼裝置,其特征在于, 所述發(fā)送模塊,還用于發(fā)送包含所述編碼包以及隨后至少 一個編碼包的系數(shù)組 的編碼信號。
18、 根據(jù)權(quán)利要求17所述的隨機線性網(wǎng)絡(luò)編碼的編碼裝置,其特征在于, 還包括系數(shù)接收模塊,用于接收由接收端發(fā)送的一組系數(shù)。
19、 一種隨機線性網(wǎng)絡(luò)編碼的解碼裝置,其特征在于,包括 簡化模塊,用于通過位異或運算的逆運算對編碼包中的數(shù)據(jù)組進(jìn)行簡化; 數(shù)據(jù)獲取模塊,用于獲取原始數(shù)據(jù)。
20、 根據(jù)權(quán)利要求19所述的隨機線性網(wǎng)絡(luò)編碼的解碼裝置,其特征在于, 還包括接收模塊,用于接收包含編碼包的編碼信號。
21、 根據(jù)權(quán)利要求20所述的隨機線性網(wǎng)絡(luò)編碼的解碼裝置,其特征在于, 還包括檢測模塊,用于檢測所述編碼包中的系數(shù)組與已接收到的編碼包的系數(shù)組 是否線性相關(guān);丟棄/拒收才莫塊,用于指示丟棄所述線性相關(guān)的編碼包。
22、 根據(jù)權(quán)利要求20所述的隨機線性網(wǎng)絡(luò)編碼的解碼裝置,其特征在于, 所述接收模塊,還用于接收包含編碼包及其隨后至少一個編碼包的系數(shù)組的編碼信號。
23、 根據(jù)權(quán)利要求21或22所述的隨機線性網(wǎng)絡(luò)編碼的解碼裝置,其特征 在于, 所述檢測模塊,還用于檢測所述隨后的編碼包的系數(shù)組與已接收到的編碼 包的系數(shù)組是否線性相關(guān);所述丟棄/拒收模塊,還用于指示拒收所述線性相關(guān)的系數(shù)組對應(yīng)的編碼包。
24、 根據(jù)權(quán)利要求23所述的隨機線性網(wǎng)絡(luò)編碼的解碼裝置,其特征在于, 還包括系數(shù)傳送模塊,用于向發(fā)送端傳送一個與已接收到的系數(shù)組之間線性獨立 的系數(shù)組。;
25、 根據(jù)權(quán)利要求19所述的隨機線性網(wǎng)絡(luò)編碼的解碼裝置,其特征在于, 所述簡化模塊,包括添加系數(shù)組模塊,用于將所述編碼包的系數(shù)組添加到已有的系數(shù)矩陣中; 異或化簡模塊,用于通過位異或運算消除所述編碼包的系數(shù)組中主元之外 的非0元素;矩陣簡化模塊,用于進(jìn)一步簡化已有的系數(shù)矩陣。
26、 一種隨機線性網(wǎng)絡(luò)編碼的系統(tǒng),其特征在于,包括編碼裝置,用于隨機地為原始數(shù)據(jù)塊分配系數(shù)、并通過位與運算和位異或 運算將原始數(shù)據(jù)塊轉(zhuǎn)化成編碼包;解碼裝置,用于對所述編碼包進(jìn)行簡化、解碼得到原始lt據(jù)。
27、 根據(jù)權(quán)利要求26所述的隨機線性網(wǎng)絡(luò)編碼的系統(tǒng),其特征在于, 所述編碼裝置包括數(shù)據(jù)分割模塊,用于將原始數(shù)據(jù)順序分成至少兩個數(shù)據(jù)塊; 確定系數(shù)模塊,用于確定至少兩個系數(shù)組,其中所述系數(shù)組的長度與數(shù)據(jù)塊個數(shù)相同,所述系數(shù)組包含兩個元素;與運算模塊,用于對所述數(shù)據(jù)塊與其對應(yīng)的系數(shù)進(jìn)行位與運算,得到編碼數(shù)據(jù)塊;異或運算模塊,用于對所述數(shù)據(jù)塊進(jìn)行位異或運算,得到編碼包。
28、 根據(jù)權(quán)利要求26所述的隨機線性網(wǎng)絡(luò)編碼的系統(tǒng),其特征在于, 所述解碼裝置包括簡化模塊,用于通過位異或運算的逆運算對編碼包中的數(shù)據(jù)組進(jìn)行簡化; 數(shù)據(jù)獲取模塊,用于獲取原始數(shù)據(jù)。
全文摘要
本發(fā)明公開了一種隨機線性網(wǎng)絡(luò)編碼的方法、裝置和系統(tǒng),涉及網(wǎng)絡(luò)編碼,為解決現(xiàn)有網(wǎng)絡(luò)編碼技術(shù)過程繁瑣、耗時太長的問題而發(fā)明。本發(fā)明實施例提供的隨機線性網(wǎng)絡(luò)編碼的方法包括將原始數(shù)據(jù)順序分成至少兩個數(shù)據(jù)塊;確定至少兩個系數(shù)組,其中所述系數(shù)組的長度與數(shù)據(jù)塊個數(shù)相同,所述系數(shù)組包含兩個元素;所述數(shù)據(jù)塊與其對應(yīng)的系數(shù)進(jìn)行位與運算,得到編碼數(shù)據(jù)塊;所述編碼數(shù)據(jù)塊之間進(jìn)行位異或運算,得到編碼包;本發(fā)明實施例提供的隨機線性網(wǎng)絡(luò)編碼進(jìn)行解碼的方法包括通過位異或運算的逆運算對編碼包中的系數(shù)組進(jìn)行簡化;獲取原始數(shù)據(jù)。本發(fā)明適用于對編碼效率要求較高的網(wǎng)絡(luò)編碼。
文檔編號H04L1/00GK101621353SQ200810126079
公開日2010年1月6日 申請日期2008年7月3日 優(yōu)先權(quán)日2008年7月3日
發(fā)明者耀 于, 曾憲國, 陳浩華, 哲 黃 申請人:華為技術(shù)有限公司