專利名稱:基于多索引表的任意位多項(xiàng)式除法類型編碼的編解碼方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于多索引表的任意位多項(xiàng)式除法類型編碼的編解碼方法,屬于 通信技術(shù)領(lǐng)域。
背景技術(shù):
在當(dāng)前各類通信系統(tǒng)中,為了保證數(shù)據(jù)傳輸?shù)恼_性和穩(wěn)定性,通常會(huì)在源信息 的基礎(chǔ)之上附加相應(yīng)的控制信息。例如,循環(huán)冗余交織碼(CRC=Cyclic Redundancy Code) 和行列交織碼,前者被廣泛應(yīng)用于錯(cuò)誤檢測而后者能將傳輸過程中較長的突發(fā)性錯(cuò)誤離散 化、隨機(jī)化,確保錯(cuò)誤在檢測能力范圍之內(nèi)。上述兩類編碼都可以使用底數(shù)為2的多項(xiàng)式除 法生成,即由源信息末端補(bǔ)若干位零后與相應(yīng)生成式作除法并求余式。特別的,在嵌入式系 統(tǒng)中,此類型編碼可通過附加硬件電路的方法實(shí)現(xiàn),但增設(shè)硬件編解碼電路將導(dǎo)致嵌入式 系統(tǒng)整體成本增加,而且硬件電路不能根據(jù)新的需求進(jìn)行調(diào)整。此外,對(duì)于一些采用多層次 協(xié)議的通信系統(tǒng)而言,若其物理層和鏈路層(參照OSI七層協(xié)議)并不能提供可靠的傳輸 (例如,底層為模擬信號(hào)傳輸),則當(dāng)高層協(xié)議需要采用上述類型的編碼完成糾檢錯(cuò)等相關(guān) 功能時(shí),可通過對(duì)具備計(jì)算能力的芯片進(jìn)行軟件編程實(shí)現(xiàn)。針對(duì)生成式的任意位問題可采用模擬硬件寄存器的方法實(shí)現(xiàn)。此方法在內(nèi)存建立 生成式位長大小的數(shù)據(jù)結(jié)構(gòu)用于模擬“硬件電路法”中的移位寄存器。并將源信息按照生 成式所決定的移位規(guī)則逐位運(yùn)算。此方法實(shí)現(xiàn)簡易但由于按位運(yùn)算導(dǎo)致編碼效率低,尤其 在處理器能力有限的嵌入式系統(tǒng)中,往往無法滿足數(shù)據(jù)實(shí)時(shí)性的要求。現(xiàn)有主流的軟件實(shí)現(xiàn)方法為查表法,但多數(shù)查表法僅適用于常見生成多項(xiàng)式(如 CRC-12,CRC-CCITT等)和(或)單次傳輸數(shù)據(jù)量較小的應(yīng)用。采用多字節(jié)表可以進(jìn)一步提 高單次處理能力,但按照傳統(tǒng)查表法的表格生成算法,多字節(jié)表格所占空間將隨單次處理 位長的增加而呈指數(shù)增長,以CRC-16為例,四節(jié)表所占空間為8GB。這在實(shí)際工程中,特別 是嵌入式系統(tǒng)應(yīng)用中是不可行的。加之生成多項(xiàng)式理論上可以是任意位長。而單次傳輸?shù)?數(shù)據(jù)塊大小一般與生成式位長成正相關(guān)關(guān)系。當(dāng)前各類通信應(yīng)用中,甚至嵌入式通信應(yīng)用 中,單次傳輸?shù)臄?shù)據(jù)塊大小量級(jí)已達(dá)KB級(jí)(例如,DARC系統(tǒng)單次傳輸?shù)臄?shù)據(jù)塊約為4KB)。 由于多字節(jié)中間值表空間過大,故傳統(tǒng)查表法面臨無法滿足大數(shù)據(jù)塊數(shù)據(jù)處理實(shí)時(shí)性要求 的問題。
發(fā)明內(nèi)容
本發(fā)明的技術(shù)解決問題針對(duì)現(xiàn)有技術(shù)的不足,提供一種基于多索引表的任意位 多項(xiàng)式除法類型編碼的編解碼方法,該方法不僅提高了并行編碼的能力,所占空間較傳統(tǒng) 查表法也大大減小,適合嵌入式設(shè)備采用。本發(fā)明的技術(shù)解決方案基于多索引表的任意位多項(xiàng)式除法類型編碼的編解碼方 法,包括中間值表格生成算法和利用已生成的中間值表格對(duì)源信息進(jìn)行編碼和解碼的算 法,其中
4
中間值表格生成算法用于快速生成編解碼算法中所需要的中間值表格,支持任 意位的生成多項(xiàng)式。中間值表包含單字節(jié)基本表和深度索引表。單字節(jié)基本表的表項(xiàng)值即 為單一字節(jié)對(duì)其后若干字節(jié)(由生成式位長決定)的異或影響值;深度索引表為以單字節(jié) 基本表或其上層索引表的表項(xiàng)值的各字節(jié)的值為表號(hào)再次按照基本表建立過程生成的索 引表,建立此表的目的是快速計(jì)算一個(gè)編碼單元(大小為并行處理的字節(jié)數(shù))末端參與影 響本編碼單元后續(xù)字節(jié)編碼值的若干字節(jié)值。基于中間值表格的任意位長編解碼算法此算法利用已生成的中間值表,通過查 深度索引表的方式計(jì)算出一個(gè)編碼單元末端若干字節(jié)的值,并用此若干字節(jié)值查單字節(jié)基 本表求出對(duì)后續(xù)編碼單元的異或影響值。編碼算法使用此異或影響值更新待編碼信息。編 碼過程中的迭代次數(shù)由源信息的位長決定基于P字節(jié)表的編碼算法迭代次數(shù)q為q=源 信息位長度/(8*p)。本算法考慮源信息為編碼單元整數(shù)倍長度和非整數(shù)倍長度兩類情況, 整數(shù)倍長度情況下用迭代可直接求出冗余位;非整數(shù)倍情況下在迭代完成后需要通過修整 邏輯(按位運(yùn)算)求取冗余位。解碼算法無需進(jìn)行末尾補(bǔ)0操作,其迭代過程和尾端修整邏輯與編碼算法相同。 求得N-I位冗余位后需判斷其是否為全0,是則代表傳輸正確,否則代表傳輸錯(cuò)誤。所述中間值表生成算法的具體實(shí)現(xiàn)步驟如下(1)單字節(jié)基本表生成算法取生成多項(xiàng)式高8位b,分析當(dāng)前處理字節(jié)CB的當(dāng)前 位,若其值為1則將CB與b異或,結(jié)果賦值給CB,并令本次的異或影響值為生成多項(xiàng)式的局 部位,且b右移一位,當(dāng)前位賦值為0 ;若當(dāng)前位值為0則b右移一位,并令本次異或影響值 為0。按照此方法完成8個(gè)位的處理后將8次的異或影響值做二次異或,結(jié)果即為CB的基 本表表項(xiàng)值。(2)深度索引表生成算法深度索引表以上一層索引表(含基本表T)的表項(xiàng)值的 各個(gè)字節(jié)值作為當(dāng)前處理字節(jié)CB,通過基本表T的生成過程(或直接查基本表T),生成相 應(yīng)表項(xiàng)值。Tindex(N) [X ;Y0,Y1,Y2-H]的生成過程為 JfTindex(N-I) [XjYqjYijY2-, YnJ的值的第Yim個(gè)(計(jì)算機(jī)含義的第0為邏輯的第1,0彡Y彡m-l,m為添0后的生成多 項(xiàng)式字節(jié)數(shù))字節(jié)值賦值給CB,并按T表生成過程生成m字節(jié)的表項(xiàng)值;N層表項(xiàng)值大小為 N-I層表項(xiàng)值的m倍。若已事先生成基本表T,可利用T表查詢操作代替深度索引表的表項(xiàng) 值生成過程。所述的基于中間值表的任意位長編解碼算法具體實(shí)現(xiàn)步驟如下⑴編碼算法a.將源信息末尾增添N-I位0,N為生成多項(xiàng)式位長,同時(shí)將生成多項(xiàng)式末尾添0 擴(kuò)充為 m 字節(jié),m= [(N-I)/8]+1 ;b.按照所需求的并行度,設(shè)為P字節(jié),將P字節(jié)視為一個(gè)編碼單元,利用各層深度 索引表個(gè)數(shù)間的遞推關(guān)系式,通過查深度索引表快速計(jì)算出一個(gè)編碼單元末端W字節(jié)的編 碼值,w為P和m間的較小者,將此w字節(jié)對(duì)應(yīng)的基本表T的表項(xiàng)值與緊鄰本編碼單元的后 續(xù)字節(jié)做異或,更新后續(xù)字節(jié)編碼值;c.若待編碼信息字節(jié)數(shù)為ρ的整數(shù)倍則重復(fù)步驟②,可直接求得最終的N-I位冗 余信息;否則將通過修整邏輯求得N-I位冗余信息;
⑵解碼算法①將待解碼信息按照編碼算法步驟b,c進(jìn)行字節(jié)值的更新操作;②求得N-I位冗余位后,判斷其是否為全0,是則傳輸正確,否則傳輸存在錯(cuò)誤位。本發(fā)明的工作過程(1)初始生成默認(rèn)協(xié)議中的中間值表,并按照默認(rèn)的源信息位長進(jìn)行編解碼。(2)檢查通信協(xié)議是否改變?nèi)羯墒礁淖儎t按照新的生成式重建中間值表;若 源信息位長改變則更新源信息位長。(3)按照新的中間值表和新的源信息位長進(jìn)行編解碼。本發(fā)明與現(xiàn)有技術(shù)相比具有的有益效果在于(1)當(dāng)前嵌入式通信系統(tǒng)中多項(xiàng)式除法類型的編解碼技術(shù)未能很好的支持任意位 生成式和大數(shù)據(jù)塊的源信息,其實(shí)現(xiàn)方式有硬件電路,硬件模擬法以及簡易查表法。本發(fā)明 相對(duì)于硬件電路實(shí)現(xiàn)方法而言①節(jié)約了整體成本使用本發(fā)明無需消耗精力與物力開發(fā) 附加硬件電路,節(jié)省了整體開發(fā)成本。②提高了可擴(kuò)展性采用硬件電路來解決任意位編碼 問題,當(dāng)生成式位長較長時(shí)電路將非常復(fù)雜,并且其支持位長長度的上限將受到硬件電路 設(shè)計(jì)的制約。采用本方案無需考慮此類問題③易于修改硬件電路一旦設(shè)計(jì)完成,將很難修 改,而采用本發(fā)明可靈活配置生成式與源信息位長。(2)本發(fā)明相對(duì)于硬件模擬法而言①編碼效率高本發(fā)明相對(duì)硬件模擬法而言 將按位運(yùn)算提升為按字節(jié)或多字節(jié)運(yùn)算,極大的提高了編碼效率。以DARC82交織碼為例, 采用硬件模擬法對(duì)一個(gè)大小為4180字節(jié)的數(shù)據(jù)塊編碼所需的基本運(yùn)算次數(shù)(異或)約為 767萬次,而采用本方案僅需要12. 5萬次。②空間消耗小硬件模擬法在實(shí)際的實(shí)現(xiàn)中需 要建立大量數(shù)據(jù)結(jié)構(gòu)模擬硬件寄存器,并且在編碼過程中需要大量數(shù)據(jù)結(jié)構(gòu)保存按位運(yùn)算 的中間值,空間消耗大;本方案僅需要存儲(chǔ)中間余數(shù)表而在編碼過程中無需消耗多余存儲(chǔ) 空間③結(jié)構(gòu)靈活采用本發(fā)明相對(duì)硬件模擬法而言結(jié)構(gòu)靈活性得到了進(jìn)一步的提高,在通 信協(xié)議改變引發(fā)生成式和(或)源信息位長改變時(shí)能快速重構(gòu)中間值表,實(shí)現(xiàn)對(duì)任意位編 碼的良好支持。(3)相對(duì)傳統(tǒng)查表法而言①適用范圍更廣傳統(tǒng)查表法未能給出一種通用的高 效的支持任意位長生成式的中間值表格生成方案,而本發(fā)明提出的多字節(jié)中間值表格表項(xiàng) 值的大小(等于生成式位長)為理論意義的任意位長,故理論上支持任意位生成式的編解 碼。②處理能力更強(qiáng)傳統(tǒng)查表法的中間值表多為單字節(jié)表,僅能將按位運(yùn)算提升為按8位 運(yùn)算,在大數(shù)據(jù)塊的情況下,仍然難以滿足某些應(yīng)用對(duì)編碼實(shí)時(shí)性的需求。本發(fā)明進(jìn)一步提 高了單次處理的運(yùn)算并行度,面對(duì)單次傳輸大數(shù)據(jù)塊的數(shù)據(jù)流仍可保持高效的編碼性能??傊?,本發(fā)明對(duì)硬件平臺(tái)無依賴性;編碼效率高,單次編碼時(shí)間消耗小,本發(fā)明滿 足嵌入式應(yīng)用對(duì)數(shù)據(jù)傳輸高實(shí)時(shí)性,高可靠性的要求。
圖1為本發(fā)明的編解碼數(shù)據(jù)流圖;圖2為本發(fā)明的基本表T的生成算法流程圖;圖3為本發(fā)明的深度索引表Tindex的生成算法流程圖;圖4為本發(fā)明的編解碼過程詳細(xì)流程圖。
具體實(shí)施例方式如圖1所示,本發(fā)明的編碼算法輸入數(shù)據(jù)流為待編碼源信息,輸出數(shù)據(jù)流為帶冗 余位的編碼信息;解碼算法輸入數(shù)據(jù)流為接收的帶冗余位的信息,輸出數(shù)據(jù)流為解碼所得 的冗余位。編解碼算法均依靠中間值表格提供迭代運(yùn)算過程中的中間異或影響值來提高單 次處理數(shù)據(jù)能力(位長)?,F(xiàn)對(duì)中間值表格生成算法和利用中間值表格作編解碼的編解碼 算法的具體實(shí)施方式
做如下說明中間值表包含單字節(jié)基本表和深度索引表,其中單字節(jié)基本表生成過程如下單字節(jié)基本表,設(shè)為T,其表項(xiàng)值為單次處理待編碼信息中的一個(gè)字節(jié)時(shí),對(duì)后續(xù) 若干字節(jié)(取決于生成式長度)的異或影響值。設(shè)生成多項(xiàng)式為G (N),N為其位長(二進(jìn) 制形式)。單字節(jié)表對(duì)應(yīng)的并行處理數(shù)據(jù)的能力為8位,故中間值表格大小為N*28位(參照 長除法過程,當(dāng)一個(gè)字節(jié)處理完畢時(shí),后續(xù)生成式位長等同大小位數(shù)據(jù)將受到異或影響)。 表項(xiàng)值的生成算法源于異或運(yùn)算的結(jié)合律,即將按位運(yùn)算所得的8次中間異或值做二次異 或,求得表值。若記每個(gè)字節(jié)將對(duì)其后m個(gè)字節(jié)產(chǎn)生異或影響,則有m= [(N-I)/8]+I0通 常情況下,N-I不能被8整除,由于與0作異或所得值不變,故在生成式末端添增補(bǔ)若干位0 湊足m字節(jié)不會(huì)對(duì)原來的運(yùn)算結(jié)果產(chǎn)生影響,本發(fā)明使用此種“末尾補(bǔ)整”的方法將任意位 生成式轉(zhuǎn)化為整8位生成式,表格大小亦擴(kuò)充為([(N-I) /8] +1) *8*28位。設(shè)某字節(jié)的一比特位對(duì)應(yīng)的中間異或影響值為bb,則此字節(jié)對(duì)其后的異或影響值 為8個(gè)比特位對(duì)應(yīng)的異或影響值的合并異或結(jié)果。而bb即G(N)的局部數(shù)據(jù)位(參考長除 法過程),將bb在G(N)中由高至低順序的其起始位置記為startb。如圖2所示,建立字符型的大小為8*m字節(jié)的二維數(shù)組bt [8] [m]用于保存8次逐 位異或求得的bb的值,再令b為生成式的前8位(若生成式不足8位則在b末端添零補(bǔ)齊 8位)。若令當(dāng)前處理字節(jié)為CB ( 二進(jìn)制形式,0x00 OxFF),在單字節(jié)基本表T中,當(dāng)前處 理字節(jié)CB等于表序號(hào)。設(shè)處理當(dāng)前位為CB中的由高至低順序的第j位,j初值為0。則 T[CB]的生成過程分為以下4步Stepl若j = 8,即CB已經(jīng)全部移出則轉(zhuǎn)至St印4 ;若j < 8則判斷當(dāng)前位的值是 否為1,為1則轉(zhuǎn)向St印2,否則轉(zhuǎn)向St印3。Step2將CB與b相異或,結(jié)果賦值給CB,并將當(dāng)前位賦值為0,然后將b右移一 位。令startb = N-(8-j+l),若startb小于零則將bb賦值為0 ;否則將G(N)中的數(shù)據(jù)從 startb位開始以從高到低的順序賦值到bb中,并在末尾補(bǔ)若干位0湊足m字節(jié);然后將bb 中的數(shù)據(jù)存入bt數(shù)組第j行,j增1后轉(zhuǎn)至Stepl.St印3直接將當(dāng)前位賦值為0,b右移一位后將bt數(shù)組第j行全部賦值為0,j增 1后轉(zhuǎn)至Stepl.St印4將bt數(shù)組各行數(shù)組一并做異或運(yùn)算,所得結(jié)果就是需求的表項(xiàng)值。由此,基本表T生成完畢。設(shè)需要達(dá)到的并行度為ρ字節(jié)(p>=2)(即傳 統(tǒng)查表法中的P字節(jié)查表法),則還需生成P-I個(gè)深度索引表,現(xiàn)設(shè)為Tindex(I), Tindex (2)... Tindex (p_l)(單字節(jié)基本表T即為第0層深度索引表Tindex (0)),下標(biāo)越大 深度索引的層數(shù)就越高。由于本層索引表表項(xiàng)值是由上層索引表表項(xiàng)值的各個(gè)字節(jié)作為當(dāng) 前處理字節(jié)(T生成時(shí)的CB)所生成的,故本層索引表的表項(xiàng)值大小為其上一層表項(xiàng)值大小的m倍?,F(xiàn)約定TindeX(i) [X ;Y0, Y1, . . . YiJ的含義為,i層深度索引表的,序號(hào) 為x( 二進(jìn)制形式,0x00 OxFF),且前i-Ι層(含0層)各層字節(jié)序號(hào)分別為Y。, Y1, ...Yi^1 (O^Y ^m-I)時(shí)的表項(xiàng)值。深度索引表的生成方法為以上一層索引表的表項(xiàng) 值的各個(gè)字節(jié)值作為當(dāng)前處理字節(jié)CB,以基本表T的生成過程,生成相應(yīng)表項(xiàng)值。Tindex 表項(xiàng)的詳細(xì)生成過程如圖3所示。例如,Tindex(I) [X ;0]的生成過程為將T[X]的值的第0個(gè)(計(jì)算機(jī)含義的第0 為邏輯的第1)字節(jié)值賦值給CB,并按T表生成過程生成m字節(jié)的表項(xiàng)值;同理Tindex (1) [X ;1], Tindex(I) [X ;2]……Tindex(I) [X ;m-1]也按 Tindex(I) [X ;0]的生成過程生成。 易見Tindex(I)表項(xiàng)值的大小為m2字節(jié)。再如,Tindex(2) [X ;a,b]的生成方法為,將 Tindex(I) [X;a]的第b個(gè)字節(jié)作為CB生成m字節(jié)的表項(xiàng)值,故Tindex (2)表項(xiàng)值的大小 為m3。實(shí)際中若已經(jīng)完成對(duì)基本表T全部表項(xiàng)值的的生成,則Tindex局部表項(xiàng)值可通過 查基本表T求得,這樣可大大減少Tindex的生成時(shí)間?;谥虚g值表格的任意位長編解碼算法編碼算法在并行度為ρ字節(jié)的情況下,設(shè)已經(jīng)生成了單字節(jié)基本表T和相應(yīng)的 P-I個(gè)索引表?,F(xiàn)將編碼原理作如下闡述若待編碼信息組成方式為:B0,B1,B2,B3,B4,B5......BN,則采用單字節(jié)基本表T
作中間余數(shù)表進(jìn)行8位并行計(jì)算時(shí),令T [X]表示當(dāng)前字節(jié)值為X時(shí)對(duì)其后續(xù)的m個(gè)字節(jié)產(chǎn) 生的異或影響值,利用T[X~Y] = Τ[ΧΓΤ[Υ] ( 為異或運(yùn)算符;等式的證明略),可將各 字節(jié)移出時(shí)后續(xù)字節(jié)的改動(dòng)作如下化簡BO = Β0"0 ;Bl = Β1"Τ[Β0]
;Β2 = Β2"Τ[Β0] [1] "Τ [Bi]
"Τ [Τ [BO]
]
;B3 = B3"T[B0] [2] "Τ [Bi] [1] "Τ[Β2]
"Τ [Τ [Bi]
]
"Τ[Τ[Β0]
] [1] "Τ[Τ[Β0] [1]]
"Τ[Τ[Τ[Β0]
]
;Β4 = Β4"Τ[Β0] [3]"Τ [Bi] [2] "Τ [Β2] [1] "Τ [Β3]
"Τ [Τ [Β0]
] [2] "Τ [Τ [Β0] [1]] [1] "Τ[Τ[Β0] [2]]
"Τ[Τ[Β1] [1]]
"Τ[Τ[Β2]
]
"Τ[Τ[Τ[Β0]
]
] [1]"Τ[Τ[Τ[Β1]
]
]
"Τ[Τ[Τ[Β0]
] [ 1 ] ]
" T [Τ [Τ [Β0] [1]]
]
"Τ[Τ[Τ[Τ[Β0]
]
]
通過數(shù)學(xué)歸納法得出以下結(jié)論(證明略)令T(N) (ρ)為第ρ字節(jié)(BP)的化簡后表達(dá)式中第N層索引表(Tindex(N))的個(gè) 數(shù)。并令基本表T為T(O);則有如下遞推關(guān)系式成立
權(quán)利要求
1.基于多索引表的任意位多項(xiàng)式除法類型編碼的編解碼方法,其特征在于包括中間 值表生成算法和利用已生成的中間值表對(duì)源數(shù)據(jù)進(jìn)行編碼和解碼的算法,其中所述中間值表生成算法用于生成中間值表,支持任意位的生成多項(xiàng)式,所述中間值表 包含單字節(jié)基本表和深度索引表,單字節(jié)基本表的表項(xiàng)值即為單一字節(jié)對(duì)其后若干字節(jié)的 異或影響值;深度索引表為以單字節(jié)基本表或其上層索引表的表項(xiàng)值的各字節(jié)的值為表號(hào) 再次按照基本表建立過程生成的索引表,利用多個(gè)深度索引表可快速計(jì)算一個(gè)編碼單元內(nèi) 部任何字節(jié)的編碼值;基于中間值表的任意位長編解碼算法,利用已生成的中間值表,通過查深度索引表的 方式計(jì)算出一個(gè)編碼單元末端若干字節(jié)的值,并用此若干字節(jié)值查單字節(jié)基本表,求出對(duì) 后續(xù)編碼單元的異或影響值;編碼算法使用此異或影響值更新待編碼信息,編碼過程中首 先對(duì)源信息進(jìn)行末尾增0,然后利用中間值表格做若干次迭代操作,完成后通過尾端修整邏 輯以求取余數(shù)值即冗余位;解碼算法同樣利用中間值表格的迭代與尾端修整邏輯求取冗余 位值。
2.根據(jù)權(quán)利要求1所述的基于多索引表的任意位多項(xiàng)式除法類型編碼的編解碼方法, 其特征在于所述中間值表生成算法的步驟如下(1)單字節(jié)基本表生成算法取生成多項(xiàng)式高8位b,分析當(dāng)前處理字節(jié)CB的當(dāng)前位, 若其值為1則將CB與b異或,結(jié)果賦值給CB,并令本次的異或影響值為生成多項(xiàng)式的局部 位,且b右移一位,當(dāng)前位賦值為0 ;若當(dāng)前位值為0則b右移一位,并令本次異或影響值為 0。按照此方法完成8個(gè)位的處理后將8次的異或影響值做二次異或,結(jié)果即為CB的基本 表表項(xiàng)值;(2)深度索引表生成算法深度索引表以上一層索引表(含基本表T)的表項(xiàng)值的各個(gè) 字節(jié)值作為當(dāng)前處理字節(jié)CB,通過基本表T的生成過程(或直接查基本表T),生成相應(yīng)表 項(xiàng)值;Tindex(N) [X ;Y0, Y1, Y2-,YN_2, YN_J 的生成過程為將 Tindex(N-I) [XjYqjYijY2-, YnJ 的值的第Yim個(gè)(計(jì)算機(jī)含義的第0為邏輯的第1,0彡Y彡m-l,m為添0后的生成多項(xiàng)式 字節(jié)數(shù))字節(jié)值賦值給CB,并按T表生成過程生成m字節(jié)的表項(xiàng)值;N層表項(xiàng)值大小為N-I 層表項(xiàng)值的m倍。若已事先生成基本表T,可利用T表查詢操作代替深度索引表的表項(xiàng)值生 成過程。
3.根據(jù)權(quán)利要求1所述的基于多索引表的任意位多項(xiàng)式除法類型編碼的編解碼方法, 其特征在于所述的基于中間值表的任意位長編解碼算法實(shí)現(xiàn)步驟如下(1)編碼算法a.將源信息末尾增添N-I位0,N為生成多項(xiàng)式位長,同時(shí)將生成多項(xiàng)式末尾添0擴(kuò)充 為 m 字節(jié),m= [(N-I)/8]+1 ;b.按照所需求的并行度,設(shè)為P字節(jié),將P字節(jié)視為一個(gè)編碼單元,利用各層深度索 引表個(gè)數(shù)間的遞推關(guān)系式,通過查深度索引表快速計(jì)算出一個(gè)編碼單元末端w字節(jié)的編碼 值,w為ρ和m間的較小者,將此w字節(jié)對(duì)應(yīng)的基本表T的表項(xiàng)值與緊鄰本編碼單元的后續(xù) 字節(jié)做異或,更新后續(xù)字節(jié)編碼值;c.若待編碼信息字節(jié)數(shù)為ρ的整數(shù)倍則重復(fù)步驟②,可直接求得最終的N-I位冗余信 息;否則將通過修整邏輯求得N-I位冗余信息;(2)解碼算法①將待解碼信息按照編碼算法步驟b,c進(jìn)行字節(jié)值的更新操作;②求得N-I位冗余位后,判斷其是否為全0,是則傳輸正確,否則傳輸存在錯(cuò)誤位。
4.根據(jù)權(quán)利要求1所述的基于多索引表的任意位多項(xiàng)式除法類型編碼的編解碼方法, 其特征在于所述編碼過程中迭代次數(shù)由源信息的位長決定基于P字節(jié)表的編碼算法迭 代次數(shù)q =源信息位長度/(8*p)。
5.根據(jù)權(quán)利要求1所述的基于多索引表的任意位多項(xiàng)式除法類型編碼的編解碼方法, 其特征在于所述源信息為編碼單元整數(shù)倍長度和非整數(shù)倍長度兩類情況,整數(shù)倍長度情 況下用迭代可直接求出冗余位;非整數(shù)倍情況下在迭代完成后需要通過修整邏輯,即按位 運(yùn)算求取冗余位。
全文摘要
一種基于多索引表的任意位多項(xiàng)式除法類型編碼的編解碼方法,包括中間值表格生成算法和利用已生成的中間值表格對(duì)源信息進(jìn)行編碼和解碼的算法;中間值表格生成算法以異或運(yùn)算的結(jié)合律為核心,配合整字節(jié)轉(zhuǎn)換的修整邏輯實(shí)現(xiàn)對(duì)任意位長生成多項(xiàng)式的支持,當(dāng)通信協(xié)議改變引發(fā)生成多項(xiàng)式改變和(或)源信息位長改變時(shí),能快速的重建中間值表格。編碼生成算法首先對(duì)源信息進(jìn)行末尾增0,然后利用中間值表格做若干次迭代操作,完成后通過尾端修整邏輯以求取余數(shù)值;解碼算法同樣利用中間值表格的迭代與尾端修整邏輯求取冗余位值。本發(fā)明對(duì)硬件平臺(tái)無依賴性,編碼效率高,資源消耗小,更適合嵌入式系統(tǒng)采用。
文檔編號(hào)H04L1/00GK102118225SQ201010622520
公開日2011年7月6日 申請(qǐng)日期2010年12月28日 優(yōu)先權(quán)日2010年12月28日
發(fā)明者諸彤宇, 鐘鎮(zhèn)撼 申請(qǐng)人:北京航空航天大學(xué)