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