專利名稱:解碼處理方法、裝置及編解碼系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,具體而言,涉及ー種解碼處理方法、裝置及編解碼系統(tǒng)。
背景技術(shù):
云存儲(chǔ)是指通過集群應(yīng)用、網(wǎng)格技術(shù)或分布式文件系統(tǒng)等功能,將網(wǎng)絡(luò)中大量各種不同類型的存儲(chǔ)設(shè)備通過應(yīng)用軟件集合起來協(xié)同工作,共同對(duì)外提供數(shù)據(jù)存儲(chǔ)和業(yè)務(wù)訪問功能的ー個(gè)系統(tǒng)。在云計(jì)算環(huán)境中,文件一般被分片保存在多個(gè)云存儲(chǔ)服務(wù)器中。在數(shù)據(jù)通訊時(shí),需要通訊的數(shù)據(jù)也會(huì)被分為多個(gè)分片,逐片傳送給對(duì)方。在數(shù)據(jù)存儲(chǔ)時(shí)和通訊時(shí),為了解決可靠性的問題,一般采用里德-所羅門(Reed-Solomon,簡(jiǎn)稱為RS)糾刪碼(Erasure Codes,簡(jiǎn)稱為EC)技術(shù),將文件編碼后,分為大小相同的m個(gè)分片和η個(gè)校驗(yàn)分片,分別進(jìn)行存儲(chǔ)或通訊。對(duì)于文件存儲(chǔ)或者通訊接收 方,只要獲得其中任意m個(gè)分片,即可通過解碼恢復(fù)原文件或者數(shù)據(jù),因此可以抗η個(gè)分片損壞或者丟失,大大提高了系統(tǒng)的可靠性。對(duì)于計(jì)算機(jī)文件存儲(chǔ),糾刪碼系統(tǒng)的存儲(chǔ)空間利用率為m/ (m+n),遠(yuǎn)遠(yuǎn)高于副本存儲(chǔ)方式,因此,RS糾刪碼通過計(jì)算能力換取存儲(chǔ)能力,顯著降低了存儲(chǔ)成本和運(yùn)維成本。1960年,里德(I. S. Reed)和所羅門(G. Solomon)提出一種構(gòu)造糾刪碼的方法,使用該方法的糾刪碼被稱作Reed-Solomon碼,簡(jiǎn)稱RS碼?;赗S編碼技術(shù)構(gòu)造的糾刪碼則稱作RS糾刪碼。ー個(gè)(n,k)糾刪碼是把k個(gè)源數(shù)據(jù)編碼為n(n>k)個(gè)數(shù)據(jù),使得用這η個(gè)數(shù)據(jù)中任意k個(gè)數(shù)據(jù)均可重構(gòu)原來的k個(gè)源數(shù)據(jù)。采用m個(gè)分片和η個(gè)校驗(yàn)分片的糾刪碼體制就是(m+n,m)糾刪碼。RS糾刪碼的實(shí)現(xiàn)技術(shù)關(guān)鍵是尋找ー個(gè)生成矩陣G,該矩陣中任意k列均線性無關(guān)。RS編碼技術(shù)中,比較常用的生成矩陣是范德蒙矩陣和柯西矩陣。使用范德蒙矩陣生成的編碼叫范德蒙碼(Vandermond Code),使用柯西矩陣生成的編碼叫柯西碼(Cauchy Code)。其編碼原理是原始數(shù)據(jù)D [Dl,D2,. . Dm]乘以生成矩陣G,產(chǎn)生m個(gè)原始數(shù)據(jù)D [Dl,D2,. . Dm]和η個(gè)校驗(yàn)數(shù)據(jù)Ρ[Ρ1,Ρ2,. . .,Pn]。解碼原理是在m+n個(gè)原始數(shù)據(jù)和校驗(yàn)數(shù)據(jù)中任意獲得m個(gè)數(shù)據(jù),組成待解碼數(shù)據(jù)D’,例如[Dl,.. .Di,Pl. .P]。在生成矩陣中去掉η個(gè)未出現(xiàn)數(shù)據(jù)對(duì)應(yīng)的那一列,組成ー個(gè)新的生成矩陣G,然后計(jì)算G的逆矩陣G’,最后D’ *G’ =D。為了使矩陣運(yùn)算的結(jié)果保持在實(shí)數(shù)域,運(yùn)算改為限定在伽羅瓦(Galois)域G(2~8)或者G(2~16)進(jìn)行。在伽羅瓦域運(yùn)算,為加快運(yùn)算速度起見,乘法操作一般采用查雙表法,一個(gè)乘法操作相當(dāng)于5個(gè)基本操作;加法和減法則采用異或(XOR)操作。RS和伽羅瓦域運(yùn)算、矩陣求逆等的具體運(yùn)算流程和特性,早已被研究透徹,在相關(guān)數(shù)學(xué)書籍和刊物上可以查到,因此在此不再贅述。但無論范德蒙矩陣和柯西矩陣的RS糾刪碼體制,都有ー個(gè)共同的缺點(diǎn),就是編碼、解碼速度慢,時(shí)間復(fù)雜度均為0(πΓ2)。因此RS編碼的原始數(shù)據(jù)塊和校驗(yàn)塊數(shù)目都不能太大,目前商用系統(tǒng)中分片數(shù)量m—般不超過10,校驗(yàn)片η—般不超過6。為了在計(jì)算機(jī)通訊領(lǐng)域更好地運(yùn)用RS糾刪碼體制,一般采用專用硬件實(shí)現(xiàn)編解碼功能,提高編解碼速度。另ー個(gè)缺點(diǎn)是,目前的RS糾刪碼體制,都采用雙表法進(jìn)行伽羅瓦域乘法計(jì)算,通過查對(duì)數(shù)-反対數(shù)表進(jìn)行,而雙表法需要5個(gè)基本操作才能完成伽羅瓦域乘法,造成計(jì)算結(jié)果較慢。如果把所有伽羅瓦域乘法數(shù)據(jù)都移入內(nèi)存,則需要8G內(nèi)存。在目前計(jì)算機(jī)硬件配置下,成本太高?!矫?,RS糾刪碼體制在計(jì)算機(jī)存儲(chǔ)和計(jì)算機(jī)通訊中能顯著提高存儲(chǔ)和傳輸可靠性,但是其軟件編解碼速度慢,而且隨著分片m的増加而呈指數(shù)型增長(zhǎng)。另ー方面,為了提升系統(tǒng)可靠性,校驗(yàn)分片η不能過小,商用系統(tǒng)應(yīng)至少保持在4飛為宜,而m又不能增長(zhǎng)很多,這就限制了存儲(chǔ)系統(tǒng)的有效利用率。例如m=10,n=6,系統(tǒng)有效存儲(chǔ)即編碼率只有10/16=62. 5%。如果在n=6時(shí)要求90%的編碼率,則m必須大于等于54。在現(xiàn)有RS糾刪碼計(jì)算方式下,單純使用軟件實(shí)現(xiàn),要么很難做到,要么性能很差不實(shí)用。因此,在相關(guān)技術(shù)中基于RS糾刪碼的編解碼方法存在編解碼計(jì)算量龐大,速度慢,以及系統(tǒng)存儲(chǔ)的有效利用率低的問題
發(fā)明內(nèi)容
本發(fā)明提供了ー種解碼處理方法、裝置及編解碼系統(tǒng),以至少解決相關(guān)技術(shù)中基于RS糾刪碼的編解碼方法存在編解碼計(jì)算量龐大,速度慢,以及系統(tǒng)存儲(chǔ)的有效利用率低的問題。根據(jù)本發(fā)明的ー個(gè)方面,提供了ー種解碼處理方法,包括確定包括部分原數(shù)據(jù)與校驗(yàn)數(shù)據(jù)的待解碼數(shù)據(jù),其中,所述校驗(yàn)數(shù)據(jù)對(duì)應(yīng)丟失的原數(shù)據(jù);根據(jù)所述校驗(yàn)數(shù)據(jù)以及用于編碼的第一生成矩陣,獲取與所述丟失的原數(shù)據(jù)對(duì)應(yīng)的小生成矩陣,以及與所述丟失的原數(shù)據(jù)對(duì)應(yīng)的新的待解碼數(shù)據(jù);根據(jù)所述新的待解碼數(shù)據(jù)以及所述小生成矩陣,獲取所述丟失的原數(shù)據(jù)。優(yōu)選地,根據(jù)所述校驗(yàn)數(shù)據(jù)以及用于編碼的所述第一生成矩陣,獲取與所述丟失的原數(shù)據(jù)對(duì)應(yīng)的小生成矩陣包括對(duì)所述待解碼數(shù)據(jù)進(jìn)行規(guī)格化處理,其中,所述規(guī)格化處理包括保留所述部分原數(shù)據(jù)在所述待解碼數(shù)據(jù)中的位置與所述部分原數(shù)據(jù)在編碼之前的原始數(shù)據(jù)中的位置一致,并將所述校驗(yàn)數(shù)據(jù)填充到所述待解碼數(shù)據(jù)中的剰余位置;獲取與經(jīng)過規(guī)格化處理之后的待解碼數(shù)據(jù)對(duì)應(yīng)的第二生成矩陣;根據(jù)所述第二生成矩陣以及所述校驗(yàn)數(shù)據(jù),獲取與所述丟失的原數(shù)據(jù)對(duì)應(yīng)的小生成矩陣。優(yōu)選地,獲取與經(jīng)過所述規(guī)格化處理之后的待解碼數(shù)據(jù)對(duì)應(yīng)的所述第二生成矩陣包括保留所述第一生成矩陣的単位矩陣中與所述原數(shù)據(jù)對(duì)應(yīng)列的列數(shù)據(jù);在所述第一生成矩陣的単位矩陣的校驗(yàn)列中填充所述校驗(yàn)數(shù)據(jù)。優(yōu)選地,根據(jù)所述第二生成矩陣以及所述校驗(yàn)數(shù)據(jù),獲取與所述丟失的原數(shù)據(jù)對(duì)應(yīng)的所述小生成矩陣包括在所述第二生成矩陣中提取所述校驗(yàn)數(shù)據(jù)出現(xiàn)的行與列;將提取的所述校驗(yàn)數(shù)據(jù)出現(xiàn)的行與列組成所述丟失的原始數(shù)據(jù)對(duì)應(yīng)的所述小生成矩陣。優(yōu)選地,在獲取與所述丟失的原數(shù)據(jù)對(duì)應(yīng)的小生成矩陣之后,還包括根據(jù)所述小生成矩陣包含的校驗(yàn)數(shù)據(jù)和對(duì)應(yīng)丟失的原始數(shù)據(jù)之間的關(guān)系,判斷對(duì)應(yīng)的小生成矩陣逆矩陣文件是否存在;在判斷結(jié)果為是的情況下,通過讀取所述小生成矩陣逆矩陣文件獲取小生成矩陣的逆矩陣;和/或,在判斷結(jié)果為否的情況下,計(jì)算所述小生成矩陣的逆矩陣,并把所述小生成矩陣的逆矩陣寫入到所述小生成矩陣逆矩陣文件。
優(yōu)選地,在獲取到所述小生成矩陣的逆矩陣后,還包括建立所述小生成矩陣的逆矩陣中的各個(gè)元素與伽羅瓦域中的O到65535構(gòu)成的逆矩陣伽羅瓦域數(shù)組。優(yōu)選地,在根據(jù)所述校驗(yàn)數(shù)據(jù)以及用于編碼的第一生成矩陣,獲取與所述丟失的原數(shù)據(jù)對(duì)應(yīng)的小生成矩陣之后,通過以下公式獲取與所述丟失的原數(shù)據(jù)對(duì)應(yīng)的新的待解碼數(shù)據(jù)
權(quán)利要求
1.ー種解碼處理方法,其特征在于,包括確定包括部分原數(shù)據(jù)與校驗(yàn)數(shù)據(jù)的待解碼數(shù)據(jù),其中,所述校驗(yàn)數(shù)據(jù)對(duì)應(yīng)丟失的原數(shù)據(jù);根據(jù)所述校驗(yàn)數(shù)據(jù)以及用于編碼的第一生成矩陣,獲取與所述丟失的原數(shù)據(jù)對(duì)應(yīng)的小生成矩陣,以及與所述丟失的原數(shù)據(jù)對(duì)應(yīng)的新的待解碼數(shù)據(jù);根據(jù)所述新的待解碼數(shù)據(jù)以及所述小生成矩陣,獲取所述丟失的原數(shù)據(jù)。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,根據(jù)所述校驗(yàn)數(shù)據(jù)以及用于編碼的所述第一生成矩陣,獲取與所述丟失的原數(shù)據(jù)對(duì)應(yīng)的小生成矩陣包括對(duì)所述待解碼數(shù)據(jù)進(jìn)行規(guī)格化處理,其中,所述規(guī)格化處理包括保留所述部分原數(shù)據(jù)在所述待解碼數(shù)據(jù)中的位置與所述部分原數(shù)據(jù)在編碼之前的原始數(shù)據(jù)中的位置一致,并將 所述校驗(yàn)數(shù)據(jù)填充到所述待解碼數(shù)據(jù)中的剰余位置; 獲取與經(jīng)過規(guī)格化處理之后的待解碼數(shù)據(jù)對(duì)應(yīng)的第二生成矩陣;根據(jù)所述第二生成矩陣以及所述校驗(yàn)數(shù)據(jù),獲取與所述丟失的原數(shù)據(jù)對(duì)應(yīng)的小生成矩陣。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,獲取與經(jīng)過所述規(guī)格化處理之后的待解碼數(shù)據(jù)對(duì)應(yīng)的所述第二生成矩陣包括保留所述第一生成矩陣的単位矩陣中與所述原數(shù)據(jù)對(duì)應(yīng)列的列數(shù)據(jù);在所述第一生成矩陣的単位矩陣的校驗(yàn)列中填充所述校驗(yàn)數(shù)據(jù)。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,根據(jù)所述第二生成矩陣以及所述校驗(yàn)數(shù)據(jù),獲取與所述丟失的原數(shù)據(jù)對(duì)應(yīng)的所述小生成矩陣包括在所述第二生成矩陣中提取所述校驗(yàn)數(shù)據(jù)出現(xiàn)的行與列;將提取的所述校驗(yàn)數(shù)據(jù)出現(xiàn)的行與列組成所述丟失的原始數(shù)據(jù)對(duì)應(yīng)的所述小生成矩陣。
5.根據(jù)權(quán)利要求I至4中任一項(xiàng)所述的方法,其特征在于,在獲取與所述丟失的原數(shù)據(jù)對(duì)應(yīng)的小生成矩陣之后,還包括根據(jù)所述小生成矩陣包含的校驗(yàn)數(shù)據(jù)和對(duì)應(yīng)丟失的原始數(shù)據(jù)之間的關(guān)系,判斷對(duì)應(yīng)的小生成矩陣逆矩陣文件是否存在;在判斷結(jié)果為是的情況下,通過讀取所述小生成矩陣逆矩陣文件獲取小生成矩陣的逆矩陣;和/或,在判斷結(jié)果為否的情況下,計(jì)算所述小生成矩陣的逆矩陣,并把所述小生成矩陣的逆矩陣寫入到所述小生成矩陣逆矩陣文件。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,在獲取到所述小生成矩陣的逆矩陣后,還包括建立所述小生成矩陣的逆矩陣中的各個(gè)元素與伽羅瓦域中的O到65535構(gòu)成的逆矩陣伽羅瓦域數(shù)組。
7.根據(jù)權(quán)利要求I至4中任一項(xiàng)所述的方法,其特征在于,在根據(jù)所述校驗(yàn)數(shù)據(jù)以及用于編碼的第一生成矩陣,獲取與所述丟失的原數(shù)據(jù)對(duì)應(yīng)的小生成矩陣之后,通過以下公式獲取與所述丟失的原數(shù)據(jù)對(duì)應(yīng)的新的待解碼數(shù)據(jù)
8.根據(jù)權(quán)利要求I至4中任一項(xiàng)所述的方法,其特征在于,在確定包括所述部分原數(shù)據(jù)與校驗(yàn)數(shù)據(jù)的待解碼數(shù)據(jù)之前,通過以下編碼方式得到所述待解碼數(shù)據(jù)建立由所述第一生成矩陣中除単位矩陣外的各個(gè)元素與伽羅瓦域中的O到65535構(gòu)成的生成矩陣伽羅瓦域數(shù)組;判斷是否存在存儲(chǔ)所述第一生成矩陣中除単位矩陣外的各個(gè)元素與伽羅瓦域中的O到65535的乘法操作結(jié)果對(duì)應(yīng)的文件;在判斷為是的情況下,從所述文件中讀取所述生成矩陣伽羅瓦域數(shù)組中所存儲(chǔ)的乘法操作結(jié)果。
9.根據(jù)權(quán)利要求8所述的方法,其特征在干,在判斷是否存在存儲(chǔ)所述第一生成矩陣除單位矩陣外的各個(gè)元素與伽羅瓦域中的O到65535的乘法操作結(jié)果對(duì)應(yīng)的文件之后,還包括在判斷為否的情況下,獲取所述第一生成矩陣中除単位矩陣外的各個(gè)元素與伽羅瓦域中的O到65535的乘法操作結(jié)果;將獲取的所述第一生成矩陣中除単位矩陣外的各個(gè)元素與伽羅瓦域中的O到65535的乘法操作結(jié)果保存在所述生成矩陣伽羅瓦域數(shù)組中。
10.ー種解碼處理裝置,其特征在于,包括第一確定模塊,用于確定包括部分原數(shù)據(jù)與校驗(yàn)數(shù)據(jù)的待解碼數(shù)據(jù),其中,所述校驗(yàn)數(shù)據(jù)對(duì)應(yīng)丟失的原數(shù)據(jù);第一獲取模塊,用于根據(jù)所述校驗(yàn)數(shù)據(jù)以及用于編碼的第一生成矩陣,獲取與所述丟失的原數(shù)據(jù)對(duì)應(yīng)的小生成矩陣,以及與所述丟失的原數(shù)據(jù)對(duì)應(yīng)的新的待解碼數(shù)據(jù);第二獲取模塊,用于根據(jù)所述新的待解碼數(shù)據(jù)以及所述小生成矩陣,獲取所述丟失的原數(shù)據(jù)。
11.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述第一獲取模塊包括第一處理單元,用于對(duì)所述待解碼數(shù)據(jù)進(jìn)行規(guī)格化處理,其中,所述規(guī)格化處理包括保留所述部分原數(shù)據(jù)在所述待解碼數(shù)據(jù)中的位置與所述部分原數(shù)據(jù)在編碼之前的原始數(shù)據(jù)中的位置一致,并將所述校驗(yàn)數(shù)據(jù)填充到所述待解碼數(shù)據(jù)中的剰余位置;第一獲取單元,用于獲取與經(jīng)過規(guī)格化處理之后的待解碼數(shù)據(jù)對(duì)應(yīng)的第二生成矩陣;第二獲取單元,用于根據(jù)所述第二生成矩陣以及所述校驗(yàn)數(shù)據(jù),獲取與所述丟失的原數(shù)據(jù)對(duì)應(yīng)的小生成矩陣。
12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述第一獲取單元包括保留子単元,用于保留所述第一生成矩陣的単位矩陣中與所述原數(shù)據(jù)對(duì)應(yīng)列的列數(shù)據(jù);填充子單元,用于在所述第一生成矩陣的単位矩陣的校驗(yàn)列中填充所述校驗(yàn)數(shù)據(jù)。
13.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述第二獲取單元包括提取子単元,用于在所述第二生成矩陣中提取所述校驗(yàn)數(shù)據(jù)出現(xiàn)的行與列;組成子単元,用于將提取的所述校驗(yàn)數(shù)據(jù)出現(xiàn)的行與列組成所述丟失的原始數(shù)據(jù)對(duì)應(yīng)的所述小生成矩陣。
14.根據(jù)權(quán)利要求10至13中任一項(xiàng)所述的裝置,其特征在于,還包括第一判斷模塊,用于根據(jù)所述小生成矩陣包含的校驗(yàn)數(shù)據(jù)和對(duì)應(yīng)丟失的原始數(shù)據(jù)之間的關(guān)系,判斷對(duì)應(yīng)的小生成矩陣逆矩陣文件是否存在;第三獲取模塊,用于在判斷結(jié)果為是的情況下,通過讀取所述小生成矩陣逆矩陣文件獲取小生成矩陣的逆矩陣;和/或, 第一寫入模塊,用于在判斷結(jié)果為否的情況下,計(jì)算所述小生成矩陣的逆矩陣,并把所述小生成矩陣的逆矩陣寫入到所述小生成矩陣逆矩陣文件。
15.根據(jù)權(quán)利要求14所述的裝置,其特征在于,還包括第一建立模塊,用于建立所述小生成矩陣的逆矩陣中的各個(gè)元素與伽羅瓦域中的O到65535構(gòu)成的逆矩陣伽羅瓦域數(shù)組。
16.一種編解碼系統(tǒng),其特征在于,包括權(quán)利要求10至15中任一項(xiàng)所述的裝置和編碼裝置,其中,所述編碼裝置包括第二建立模塊,用于建立由所述第一生成矩陣中除単位矩陣外的各個(gè)元素與伽羅瓦域中的O到65535構(gòu)成的生成矩陣伽羅瓦域數(shù)組;第二判斷模塊,用于判斷是否存在存儲(chǔ)所述第一生成矩陣中除単位矩陣外的各個(gè)元素與伽羅瓦域中的O到65535的乘法操作結(jié)果對(duì)應(yīng)的文件是否存在;讀取模塊,用于在所述判斷模塊的判斷結(jié)果為是的情況下,從所述文件中讀取所述生成矩陣伽羅瓦域數(shù)組中所存儲(chǔ)的乘法操作結(jié)果。
全文摘要
本發(fā)明提供了一種解碼處理方法、裝置及編解碼系統(tǒng),該方法包括確定包括部分原數(shù)據(jù)與校驗(yàn)數(shù)據(jù)的待解碼數(shù)據(jù),其中,校驗(yàn)數(shù)據(jù)對(duì)應(yīng)丟失的原數(shù)據(jù);根據(jù)校驗(yàn)數(shù)據(jù)以及用于編碼的第一生成矩陣,獲取與丟失的原數(shù)據(jù)對(duì)應(yīng)的小生成矩陣,以及與丟失的原數(shù)據(jù)對(duì)應(yīng)的新的待解碼數(shù)據(jù);根據(jù)新的待解碼數(shù)據(jù)以及小生成矩陣,獲取丟失的原數(shù)據(jù),通過本發(fā)明,解決了相關(guān)技術(shù)中基于RS糾刪碼的編解碼方法存在編解碼計(jì)算量龐大,速度慢,以及系統(tǒng)存儲(chǔ)的有效利用率低的問題,進(jìn)而達(dá)到了在解碼處理的過程中與數(shù)據(jù)分片的數(shù)量無關(guān),并且在整個(gè)過程中使用很少的內(nèi)存保存編解碼中使用的伽羅瓦域乘法數(shù)據(jù),取代了原有的雙表法,大大減少了編解碼的計(jì)算量,提高了編解碼的處理效率以及系統(tǒng)存儲(chǔ)的有效利用率的效果。
文檔編號(hào)H04L1/00GK102833040SQ20121027542
公開日2012年12月19日 申請(qǐng)日期2012年8月3日 優(yōu)先權(quán)日2012年8月3日
發(fā)明者孫崎, 遲恩宇 申請(qǐng)人:中興通訊股份有限公司