專利名稱:編碼和解碼數(shù)據(jù)的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及編碼和解碼技術(shù),具體涉及里德-索羅門編碼和解碼的方法和裝置。
背景技術(shù):
里德-索羅門編碼技術(shù)在本技術(shù)領(lǐng)域內(nèi)是眾所周知的。Reed I.S.和Solomon G.首次在工業(yè)應(yīng)用數(shù)學(xué)學(xué)會雜志(Journal of Society ofIndustrial Application Mathematics)8,300-304(1960)上發(fā)表了題為“在某些有限域上的多項(xiàng)式碼”的論文(Polynomial codes over certain finitefields)。在數(shù)據(jù)傳輸期間利用里德-索羅門碼可消除接收數(shù)據(jù)中的差錯(cuò)。編碼器是根據(jù)伽羅華(Galois)域(下文簡稱為“GF”)數(shù)學(xué)設(shè)計(jì)的,業(yè)已在美國專利4,142,174和4,567,594中公開了,這兩個(gè)公開文本引用在此作為參考??傮w上說,里德-索羅門碼是由從GF數(shù)字號碼中的碼符號定義的,表示為GF(Q),這里,Q=2b是2的正整數(shù)冪。GF具有有限數(shù)目的元素。GF(Q)中有Q個(gè)元素,它們可由一個(gè)特殊元素(α)的0至Q-1的接連冪(α°,α1,…,αQ-1)表示。
本技術(shù)領(lǐng)域內(nèi)眾所周知還有許多不同的方法應(yīng)用里德-索羅門編碼器和解碼器。在差錯(cuò)校正中應(yīng)用里德-索羅門碼的一種方法是對傳輸?shù)臄?shù)據(jù)附加一個(gè)奇偶校驗(yàn)符號集,名詞“符號”表示b個(gè)比特,用以組成GF(Q)域一個(gè)元素。奇偶校驗(yàn)符號用于檢測和校正傳輸數(shù)據(jù)中的差錯(cuò)。更具體地說,編碼器把消息比特看作是符號塊,用以組成GF(Q)的消息多項(xiàng)式,并借助于將消息多項(xiàng)式(X)除以碼生成多項(xiàng)式(G)而得到奇偶校驗(yàn)符號。該奇偶校驗(yàn)符號被標(biāo)識為余數(shù)多項(xiàng)式(C)的系數(shù)。奇偶校驗(yàn)符號附加到消息符號上以組成碼字多項(xiàng)式的系數(shù)。選擇碼生成多項(xiàng)式以將所需的特性賦予碼字,以使碼字屬于一個(gè)具體等級的差錯(cuò)校正組的碼。在傳送期間該碼字借助于將奇偶校驗(yàn)符號附加到消息數(shù)據(jù)上作為尾比特而被傳送,接收機(jī)利用它們可校正在接收的消息多項(xiàng)式(R)內(nèi)的差錯(cuò)。
圖1示出先有技術(shù)的里德-索羅門編碼器,它被實(shí)施為一個(gè)移位寄存器多項(xiàng)式除法電路。如圖所示,該移位寄存器在延時(shí)單元(D)中初始化為0。在每次迭代期間,第m個(gè)數(shù)據(jù)符號Xm增加最右面延時(shí)單元的內(nèi)容以形成符號Ym。然后,每個(gè)延時(shí)單元的內(nèi)容借助于將其左面延時(shí)單元的內(nèi)容與“符號Ym和Gm”之積相加而被更新,這里Gm是碼生成多項(xiàng)式的系數(shù),也即G(Z)=G0+G1Z+……+Gk-1Zk-1+Zk。(最左面的延時(shí)單元例外,它由乘積G0Ym來更新)。
通過接續(xù)地更新移位寄存器直至消息塊結(jié)束時(shí)為止,產(chǎn)生奇偶校驗(yàn)符號。當(dāng)該消息塊的最后一個(gè)符號完成迭代時(shí),移位寄存器的內(nèi)容變?yōu)槠媾夹r?yàn)符號,最右面的延時(shí)單元含有第一個(gè)奇偶校驗(yàn)符號,它將由發(fā)射機(jī)附加到消息數(shù)據(jù)上。
迄今,除法處理典型地是由專用硬件(例如,乘法器101、延時(shí)電路102和加法器103)執(zhí)行的,然而,該處理越來越傾向借助于先進(jìn)的“軟”調(diào)制解調(diào)技術(shù)利用微處理器/軟件的組合來實(shí)施。
雖然軟調(diào)制解調(diào)器具有執(zhí)行里德-索羅門編碼/解碼的能力,但問題是先有技術(shù)實(shí)施需要很多處理能力。在圖1所示的編碼器中,為每個(gè)消息信號需作K次乘法和加法。盡管GF加法是邏輯異或運(yùn)算,這典型地由微處理器指令集來支持,但GF乘法難以得到支持并且要由多個(gè)指令循環(huán)來完成。對于高速調(diào)制解調(diào)器(例如,ADSL調(diào)制解調(diào)器或纜式調(diào)制解調(diào)器),里德-索羅門編碼器需要處理每秒百萬數(shù)量級的消息符號。所需的總處理能力或MIPS即使不超出典型微處理器的總處理能力,也將占其能力的極其可觀的百分比。其結(jié)果是全部調(diào)制解調(diào)器功能很難由微處理器來完成。即使微處理器能夠?qū)崿F(xiàn)調(diào)制解調(diào)器功能,但對于主處理或軟件調(diào)制解調(diào)器而言由調(diào)制解調(diào)器所利用的處理能力也不能再用于其它應(yīng)用。為此,需要一種編碼/解碼的方法和裝置,它們能夠以軟調(diào)制解調(diào)器來實(shí)施,而不采用先有技術(shù)軟調(diào)制解調(diào)器所需的MIPS。
為解決上述的需求,這里提供一種編碼/解碼數(shù)據(jù)的方法和裝置。在編碼期間,數(shù)據(jù)符號Xm輸入微處理器,微處理器利用標(biāo)準(zhǔn)的里德-索羅門編碼技術(shù)來計(jì)算Ym。具體地說,Ym是通過將消息符號Xm與移位寄存器最右面的延時(shí)單元的內(nèi)容相加而計(jì)算出來的。由于Ym作為GF(Q)的一個(gè)元素只能對Q取不同的值,因此可預(yù)先計(jì)算乘積G0Ym,G1Ym,……,Gk-1Ym并存儲入查找表中。然后,微處理器應(yīng)用Ym作為查找表的一個(gè)索引,從查找表中獲得乘積G0Ym,G1Ym,……,Gk-1Ym,這些乘積用于更新移位寄存器。
在解碼操作期間,使用幾個(gè)查找表。第一個(gè)查找表用于減小校正子計(jì)算的復(fù)雜性,第二個(gè)查找表用于減小確定差錯(cuò)定位多項(xiàng)式的根的復(fù)雜性,尤其是Chien搜索的復(fù)雜性。在計(jì)算校正子期間,G0Ym,G1Ym,……,Gk-1Ym的值是以類似于編碼器確定G0Ym,G1Ym,……,Gk-1Ym值的方式從第一個(gè)查找表中獲得的。第二個(gè)查找表由一組L個(gè)查找表組成,這里L(fēng)是差錯(cuò)定位多項(xiàng)式的階。建立這些表可使每個(gè)表都包含(Q-1)個(gè)元素,這里Q是GF(Q)域的規(guī)模大小。如果(Q-1)和m之間的最大公分母GCD(Q-1,m)=1,則第m個(gè)查找表將GF元素α-mi存儲在位置i處。如果GCD(Q-1,m)≠1,則第m個(gè)查找表實(shí)際上由J=GCD(Q-1,m)個(gè)子表組成,將GF元素α-(mi+j)存儲在第j個(gè)表的位置i處,這里j=0,1,……,J-1。微處理器根據(jù)差錯(cuò)定位多項(xiàng)式中相應(yīng)的系數(shù)使每個(gè)查找表的起始地址初始化,然后在幾次迭代之后完成Chien搜索,并在每次迭代中微處理器將在與各自起始地址有相同偏差的位置處的所有L表的內(nèi)容相加起來,并將和值與1相比較,以確定對應(yīng)于偏差(d)的元素是否是一個(gè)根。
由于先有技術(shù)需要乘法,而乘法運(yùn)算與從查找表中獲得數(shù)值相比則是更復(fù)雜的運(yùn)算,因此微處理器所需的總處理能力或MIPS可得以減小。此外,根據(jù)本發(fā)明所述的查找表可使微處理器利用其寄存器寬度,所述的寄存器寬度通常是單一指令并行多操作時(shí)b的幾倍,因此可進(jìn)一步減小微處理器所需的MIPS。其結(jié)果是整個(gè)調(diào)制解調(diào)器功能可由具有處理其它應(yīng)用能力的微處理器來實(shí)現(xiàn)。
本發(fā)明包括一種用于編碼/解碼數(shù)據(jù)的方法。該方法包括以下步驟接收數(shù)據(jù)符號(Xm),計(jì)算第一值作為標(biāo)準(zhǔn)的編碼/解碼技術(shù)的一部分,并利用所述的第一值作為查找表的一個(gè)索引,從查找表中接收該第一值與多個(gè)其它值的多個(gè)乘積,該多個(gè)乘積用于編碼/解碼數(shù)據(jù)。
本發(fā)明還包括一種解碼數(shù)據(jù)的方法。該方法包括以下步驟執(zhí)行校正子計(jì)算以確定在傳輸數(shù)據(jù)中是否有差錯(cuò),根據(jù)校正子計(jì)算來計(jì)算差錯(cuò)定位多項(xiàng)式,以及執(zhí)行Chien搜索,通過訪問多個(gè)查找表來為GF(Q)域的Q個(gè)元素之中的每個(gè)估算一個(gè)多項(xiàng)式,以從差錯(cuò)定位多項(xiàng)式中確定差錯(cuò)的位置。
本發(fā)明還包括一種編碼器/解碼器,其中包括微處理器,用以輸出第一值作為標(biāo)準(zhǔn)的編碼/解碼技術(shù)的一部分,和一個(gè)第一查找表,將所述的第一值為其輸入,并輸出該第一值與多個(gè)其它值的多個(gè)乘積。
圖1示出先有技術(shù)里德-索羅門編碼器的方框圖。
圖2示出根據(jù)本發(fā)明優(yōu)選實(shí)施例的里德-索羅門編碼器的方框圖。
圖3示出根據(jù)本發(fā)明優(yōu)選實(shí)施例如圖2所示的查找表的一個(gè)代表例子。
圖4示出根據(jù)本發(fā)明的優(yōu)選實(shí)施例如圖2所示的里德-索羅門編碼器的操作流程圖。
圖5示出根據(jù)本發(fā)明優(yōu)選實(shí)施例的里德-索羅門解碼所需的步驟流程圖。
圖6示出根據(jù)本發(fā)明優(yōu)選實(shí)施例的里德-索羅門解碼器的方框圖。
圖7示出根據(jù)本發(fā)明優(yōu)選實(shí)施例的GCD(Q-1,m)=1時(shí),GF(Q)的奇印(Chien)搜索查找表的示例圖。
圖8示出根據(jù)本發(fā)明優(yōu)選實(shí)施例的GCD(Q-1,m)≠1時(shí),GF(Q)的Chien搜索查找表的示例圖。
圖9示出根據(jù)本發(fā)明優(yōu)選實(shí)施例的基于查找表的Chien搜索步驟的流程圖。
具體實(shí)施例方式現(xiàn)在,轉(zhuǎn)向附圖,圖中相同的標(biāo)號表示相同的組成部分。圖2示出根據(jù)本發(fā)明優(yōu)選實(shí)施例的里德-索羅門編碼器200的方框圖。編碼器200包括一個(gè)微處理器201和一個(gè)查找表203。在本發(fā)明的優(yōu)選實(shí)施例中,微處理器201最好是一種具有很寬的寄存器寬度的微處理器,例如摩托羅拉公司供應(yīng)的Aitivec能力的PC處理器(128比特寄存器),或是MMX能力的處理器(64比特寄存器),它包括Intel公司供應(yīng)的pentium處理器和AMD(高級微電路設(shè)備公司)供應(yīng)的K6處理器。在下文的描述中假設(shè)處理器的寄存器具有足夠的寬度,足以容納整個(gè)移位寄存器。此外,雖然圖示的查找表203是獨(dú)立于微處理器201的,但本發(fā)明的優(yōu)選實(shí)施例實(shí)際上設(shè)在微處理器201內(nèi)作為內(nèi)部或外部存儲器的一部分。查找表203存儲預(yù)先計(jì)算的乘積G0Y,G1Y,……,Gk-1Y,這里k是碼生成多項(xiàng)式的階,等于奇偶校驗(yàn)符號的個(gè)數(shù),Y是GF(Q)域的Q個(gè)元素的每一個(gè)。為此,對于具有K個(gè)奇偶校驗(yàn)符號的GF(Q)中的碼來說,查找表203的規(guī)模是Q*K。對于Q=256和K=16的典型例子,其規(guī)模是總計(jì)4KB存儲器。
根據(jù)本發(fā)明優(yōu)選實(shí)施例的編碼器200的操作情況如下所述數(shù)據(jù)符號Xm由微處理器201接收。微處理器201計(jì)算第一值Ym作為標(biāo)準(zhǔn)的編碼技術(shù)的一部分。具體地說,Ym是利用標(biāo)準(zhǔn)的里德-索羅門編碼技術(shù)通過將消息符號Xm與一個(gè)變量值相加而計(jì)算出來的,所述的變量是最右面的延時(shí)單元內(nèi)容。爾后,微處理器201應(yīng)用第一值Ym作為查找表203的一個(gè)索引,獲得Ym與多個(gè)其它值相乘的多個(gè)乘積。具體地說,G0Ym,G1Ym,……,Gk-1Ym是從查找表203返回到微處理器201的。然后,微處理器201用這些返回的值并行地更新移位寄存器的延時(shí)單元,以完成數(shù)據(jù)符號Xm的編碼處理。
圖3示出根據(jù)本發(fā)明優(yōu)選實(shí)施例的、圖2所示的查找表的一種代表例子??梢悦黠@看出,針對每個(gè)GF(Q)元素都對應(yīng)有G0Y,G1Y,……,Gk-1Y的值,這里Y=0,1,2,……,Q-1。當(dāng)以Y值訪問查找表203時(shí),這些值就輸出到微處理器201。在本發(fā)明的優(yōu)選實(shí)施例中,查找表203是通過預(yù)先計(jì)算GmY值并以這些值填充入查找表203中而實(shí)現(xiàn)的,具體地說,將存儲器組建成為Q個(gè)接連的字,而第i個(gè)字保存k個(gè)乘積,即I*Go,I*G1,……,I*Gk-1。再將這些字劃分成寬度為b=log2(Q)比特的K個(gè)字段,按照上述次序用一個(gè)字段保存K個(gè)乘積之中的一個(gè)。由于該表對于一個(gè)具體碼是恒定的,所以它可以存儲入只讀存儲器中。在調(diào)制解調(diào)器具有幾種操作模式并且每種模式可應(yīng)用不同代碼的情況下,還希望一旦確定調(diào)制解調(diào)器的操作模式就動態(tài)地產(chǎn)生該表成為讀/寫類型的存儲器。
在本發(fā)明的優(yōu)選實(shí)施例中,只需要查找一個(gè)表來獲得K個(gè)乘法結(jié)果G0Ym,G1Ym,……,Gk-1Ym。眼前的益處是為每個(gè)消息符號節(jié)省了K次乘法運(yùn)算,由于GF乘法運(yùn)算是在微處理器上進(jìn)行大量計(jì)算的昂貴的操作,所以與先有技術(shù)相比,這顯著地減小了微處理器所需的總處理能力或MIPS。其結(jié)果是,調(diào)制解調(diào)器整體功能可以由具有處理其它應(yīng)用能力的微處理器來實(shí)現(xiàn)。此外,K個(gè)乘積存儲于單一寄存器的事實(shí)允許應(yīng)用單個(gè)異或門和移位指令并行地更新所有K個(gè)移位寄存器延時(shí)單元。另一個(gè)益處是一次一個(gè)字地訪問該表。由于每個(gè)字通常是由多個(gè)接連的字節(jié)組成的,所以可從典型系統(tǒng)所支持的突發(fā)存儲器訪問模式中獲得最大利益。
在上述的實(shí)施過程中,假設(shè)微處理器寄存器的寬度寬得足以容納整個(gè)移位寄存器。若不是這種情況,通過存儲部分的移位寄存器運(yùn)算,仍能得到由給定的寄存器寬度所提供的最大的利益。此外,上文所描述的查找表不僅可應(yīng)用于里德-索羅門碼,而且提供通用的高效MIPS方法,用以對已知類別的碼例如循環(huán)碼(里德-索羅門碼是其中的一種)進(jìn)行編碼。
圖4示出根據(jù)本發(fā)明優(yōu)選實(shí)施例的圖2所示的里德-索羅門編碼器的操作流程圖。移位寄存器被實(shí)施為該處理器的一個(gè)或多個(gè)整數(shù)的寄存器,該處理器從概念上可被劃分成K個(gè)字段,每個(gè)寬b個(gè)比特,每個(gè)字段保存一個(gè)延時(shí)單元的內(nèi)容。該邏輯流程在步驟401開始,該步驟令微處理器初始化移位寄存器使其全部為零。然后進(jìn)入處理消息數(shù)據(jù)的循環(huán)。在步驟402微處理器201接收即將傳送的數(shù)據(jù)符號(Xm)。在步驟403微處理器201根據(jù)Xm計(jì)算Ym的值。接著在步驟405微處理器201應(yīng)用Ym作為查找表203的一個(gè)索引來訪問查找表203,從查找表203中得到G0Ym,G1Ym,……,Gk-1Ym的值。然后在步驟407處理器通過使移位寄存器的內(nèi)容與查找表的輸出進(jìn)行異或運(yùn)算和使移位寄存器向右移位b比特,以更新該移位寄存器。在步驟408微處理器201確定是否已處理該數(shù)據(jù)塊的最后一個(gè)消息符號。如果是“否”,則重復(fù)步驟402-408,否則,微處理器在步驟409輸出該尾比特。在本發(fā)明的優(yōu)選實(shí)施例中,尾比特被產(chǎn)生,如上所述它是輸出的該移位寄存器的最后的內(nèi)容。
里德-索羅門解碼在幾個(gè)步驟中發(fā)生,如圖5所示。在步驟501計(jì)算校正子多項(xiàng)式。如本技術(shù)領(lǐng)域的普通技術(shù)人員所知道的,校正子多項(xiàng)式其系數(shù)被定義為接收的多項(xiàng)式,是對碼生成多項(xiàng)式的根進(jìn)行估算而得出的。在步驟502借助于確定是否校正子=0來判斷在傳送數(shù)據(jù)中是否存在差錯(cuò)。如果校正子為非零值就表明在接收數(shù)據(jù)中存在差錯(cuò),就在步驟504計(jì)算差錯(cuò)定位多項(xiàng)式,并在步驟506根據(jù)差錯(cuò)定位多項(xiàng)式來確定差錯(cuò)的位置。最后在步驟508應(yīng)用佛尼(Forney)算法根據(jù)差錯(cuò)定位多項(xiàng)式來確定差錯(cuò)量。
以上四個(gè)步驟之中的步驟1和3典型是基于微處理器的解碼器的最精細(xì)的計(jì)算步驟。步驟1涉及整個(gè)接收消息多項(xiàng)式并且不管接收塊是否有差錯(cuò)都是必要的。步驟3的典型算法涉及搜索GF(Q)域的所有Q個(gè)元素,相反,步驟2和4涉及校正子和差錯(cuò)定位多項(xiàng)式,其階數(shù)通常比接收消息多項(xiàng)式的階數(shù)或GF(Q)域的規(guī)模要小得多。
為了減小解碼里德-索羅門編碼數(shù)據(jù)所需的MIPS量,解碼器600使用幾個(gè)查找表,圖6示出根據(jù)本發(fā)明優(yōu)選實(shí)施例的解碼器600的方框圖。
第一查找表(查找表603)用于減小步驟1的復(fù)雜性。它的應(yīng)用方式與編碼器200的查找表203相似。在計(jì)算校正子期間,解碼器600將接收的信息符號(Rm)認(rèn)作是將要傳送的消息符號(Xm)并據(jù)此產(chǎn)生第二尾比特集。本技術(shù)領(lǐng)域的技術(shù)人員知道計(jì)算校正子可以是將該第二尾比特集與接收尾比特相加。在計(jì)算第二尾比特集期間,按照與編碼器確定G0Ym,G1Ym,……,Gk-1Ym相同的方式從查找表603中獲得G0Ym,G1Ym,……,Gk-1Ym的值。具體地說,微處理器601利用標(biāo)準(zhǔn)的里德-索羅門編碼技術(shù)計(jì)算Ym,也即如上所述的使信息符號Rm與最右面移位寄存器的內(nèi)容相加,然后應(yīng)用Ym作為查找表603的一個(gè)索引,查找表603返回G0Ym,G1Ym, ……,Gk-1Ym。
第二查找表605用來減小步驟3的復(fù)雜性。差錯(cuò)位置對應(yīng)于差錯(cuò)定位多項(xiàng)式的根,λ(z)=1+λ1z+λ2z2+……+λLzL。尋找GF多項(xiàng)式根的一種公知算法是應(yīng)用Chien搜索。在Chien搜索過程中,對于GF(Q)域的Q個(gè)元素之中的每個(gè)都簡單估算該多項(xiàng)式以確定是否是一個(gè)根。顯然由于第L階多項(xiàng)式需要估算Q次,因此Chien搜索的直接前向運(yùn)算要耗費(fèi)許多處理能力。使用查找表605可以加速處理。查找表605實(shí)際上是由一組L個(gè)查找表607-611組成的,在Chien搜索期間被應(yīng)用。
組建查找表607-611可使每個(gè)表內(nèi)都含有(Q-1)個(gè)元素,其中Q是GF(Q)域的規(guī)模。如果在(Q-1)與m之間的最大公分母(GCD(Q-1,m))等于1,則第m個(gè)查找表在位置i處存儲GF元素α-mi。也就是說,如果(Q-1)與m互為素?cái)?shù),則第m個(gè)查找表在位置i處存儲GF元素α-mi。圖7示出這種情況。請注意,α-m(i+Q-1)α-mi,也即如此構(gòu)成的查找表是周期性的,周期為Q-1并且圖7示出該查找表的單個(gè)周期。
如果GCD(Q-1,m)不等于1,則第m個(gè)查找表實(shí)際上含有(GCD(Q-1,m))個(gè)子表,存儲GF元素α-(mi+j),其中j=0,1,……,GCD(Q-1,m)-1。由于α-(m(i+v)+j)=α-(mi+j),所以每個(gè)子表是周期性的,周期為V=(Q-1)/GCD(Q-1,m)。圖8示出每個(gè)子表的單個(gè)周期。所有查找表都具有起始于任何位置i的特性,該表在接連的位置處存儲{Tumu=α0,α-1,α-2,…},式中T是位置i處的內(nèi)容。此外,每個(gè)表或一個(gè)子表集含有GF(Q)中每個(gè)非零元素。
在Chien搜索期間,微處理器601在α-0,α-1,α-2,α-3等位置處依此順序地估算差錯(cuò)定位多項(xiàng)式。為便于應(yīng)用查找表,微處理器601在初始化階段就為L個(gè)查找表之中的每一個(gè)確定起始地址。為第m個(gè)查找表作此事借助在查找表中確定其內(nèi)容為λm的位置,λm是差錯(cuò)定位多項(xiàng)式中zm的系數(shù)。在查找表是一個(gè)子表集的情況下,微處理器601首先選擇一個(gè)子表并確定已選表的起始地址。然后,微處理器601在幾次迭代后來完成Chien搜索。在每次迭代時(shí),微處理器601將從各自的起始地址(由上述的程序所確定的)來的、在具有相同偏移(d)的位置處的所有L個(gè)表的內(nèi)容相加。由于查找表的特性,該和值變?yōu)镾(d)=λ1u+λ2u2+……+λLuL|u=α-d=λ(α-d)-1,式中L是差錯(cuò)定位多項(xiàng)式的階。也就是說,對于偏移d的和值是差錯(cuò)定位多項(xiàng)式對于元素α-d的值與1之差值。為此,微處理器通過將S(d)與1相比較來確定α-d是否是一個(gè)根。然后,微處理器使偏移增量以準(zhǔn)備下一次迭代。如果微處理器的寄存器寬度為B,則微處理器在每次迭代和偏移增量B符號時(shí)可以計(jì)算B個(gè)接連的和值。據(jù)此,查找表的好處是用單個(gè)異或指令取代了2B次乘法運(yùn)算。
由于0(α0)的偏移對應(yīng)于最后接收符號的差錯(cuò)位置,所以1(α-1)的偏移對應(yīng)于倒數(shù)第二個(gè)接收元符號為差錯(cuò)位置,依此類推。在對應(yīng)于最先接收符號的元素業(yè)已檢查之后,搜索可以停止,因?yàn)闃I(yè)已查完所有可能發(fā)生差錯(cuò)的位置。這對于縮短的里德-索羅門碼提供另一種減小復(fù)雜性的途徑。如本技術(shù)領(lǐng)域所公知的,縮短的里德-索羅門碼等效于具有Q-1符號塊規(guī)模的原始的里德-索羅門碼(包括奇偶校驗(yàn)符號),其最初的幾個(gè)符號強(qiáng)制為0值(解碼器先驗(yàn)地已知此事)并且不被傳送。由于通過讀出接連的位置來訪問查找表,所以可從大多數(shù)處理器所支持的突發(fā)存儲器模式中獲得最大的益處。
圖9示出根據(jù)本發(fā)明優(yōu)選實(shí)施例的、基于查找表的Chien搜索步驟流程圖,在初始化步驟902微處理器601為差錯(cuò)定位多項(xiàng)式的L個(gè)系數(shù)之中的每個(gè)所關(guān)聯(lián)的查找表確定起始地址,并將偏移(d)設(shè)定為0,然后微處理器601在幾次迭代之后完成Chien搜索。在步驟904微處理器601在每次迭代后將離初始化階段所確定的起始地址偏移(d)處的所有L個(gè)查找表的內(nèi)容相加。然后,在步驟906微處理器601將步驟904所獲得的B個(gè)和值與B個(gè)1相比較。對于等于1的每個(gè)B的和值,微處理器斷定與該和值相關(guān)聯(lián)的GF(Q)元素是差錯(cuò)定位多項(xiàng)式的一個(gè)根。在步驟908微處理器使偏移(d)增量B。在步驟910微處理器確定是否已檢查所有可能的差錯(cuò)位置,如果沒有檢查完,則重復(fù)迭代步驟904-910。在微處理器檢查所有可能的差錯(cuò)位置之后,該處理在步驟912結(jié)束。
由于差錯(cuò)定位多項(xiàng)式的階(L)不能超過K/2,所以需要建立K/2個(gè)查找表來處理具有K個(gè)奇偶校驗(yàn)符號的里德-索羅門碼。如上所述,查找表和子表都是周期性的,因此只要應(yīng)用循環(huán)尋址來訪問各表,也即將地址以查找表/子表的周期為模而圍著查找表/子表的終端卷繞,它們的規(guī)模將是一個(gè)周期。作為Q=256和K=16的一個(gè)典型例子,所有K/2個(gè)表的總存儲量為(Q-1)*K/2=2040字節(jié),小于2KB。對于具有循環(huán)尋址能力的微處理器而言,可存儲每個(gè)表的單個(gè)周期。對于其它微處理器而言,MIPS可能消耗于以軟件來實(shí)施循環(huán)查找表。在這種情況下,存儲GCD(Q-1,m)+1個(gè)周期。這里不發(fā)生地址的圍轉(zhuǎn)卷繞,可以應(yīng)用線性尋址來對各表確定索引。
在本發(fā)明的另一個(gè)實(shí)施例中,建立了一個(gè)附加表,具有Q-1個(gè)0輸入項(xiàng),該表為差錯(cuò)定位多項(xiàng)式入m(為0)的系數(shù)所使用。
上文參照附圖描述了本發(fā)明的具體細(xì)節(jié),這并不意味著限制本發(fā)明的范圍。例如,雖然本發(fā)明的優(yōu)選實(shí)施例在里德-索羅門編碼/解碼期間應(yīng)用查找表,但本技術(shù)領(lǐng)域的普通技術(shù)人員知道查找表也可以應(yīng)用于其它形式的編碼/解碼。發(fā)明人的意圖是在不偏離開本發(fā)明的精神和范的條件下可對本發(fā)明作出各種修改,并且所有這樣的修改都在后附的權(quán)利要求書的范圍之內(nèi)。
權(quán)利要求
1.一種編碼/解碼數(shù)據(jù)的方法,其特征在于,包括以下步驟接收數(shù)據(jù)符號(Xm);計(jì)算第一值作為標(biāo)準(zhǔn)的編碼/解碼技術(shù)的一部分;應(yīng)用所述的第一值作為查找表的一個(gè)索引;從所述的查找表中接收該第一值與多個(gè)其它值的多個(gè)乘積;和應(yīng)用所述的多個(gè)乘積來編碼/解碼所述的數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述的計(jì)算第一值作為標(biāo)準(zhǔn)的編碼技術(shù)的一部分的步驟,包括利用標(biāo)準(zhǔn)的里德-索羅門編碼技術(shù)來計(jì)算Ym的步驟,其中,將消息比特當(dāng)作為符號塊,用以組成GF(Q)中的消息多項(xiàng)式,并且將所述的消息多項(xiàng)式(X)除以碼生成多項(xiàng)式(G)從而得出奇偶校驗(yàn)符號。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述的從查找表中接收多個(gè)乘積的步驟包括從所述的查找表中接收G0Y,G1Y,……,Gk-1Y的步驟,其中Y=0,1,2,……,Q-1,這里Gm是碼生成多項(xiàng)式的系數(shù)。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括以下步驟初始地確定里德-索羅門碼的參數(shù);和根據(jù)所述的參數(shù)動態(tài)地產(chǎn)生查找表。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述的應(yīng)用第一值作為查找表的一個(gè)索引的步驟包括在計(jì)算校正子期間應(yīng)用所述的第一值作為查找表的一個(gè)索引的步驟。
6.根據(jù)權(quán)利要求1所述的解碼數(shù)據(jù)方法,其特征在于,還包括以下步驟訪問第二查找表集作為第二標(biāo)準(zhǔn)的一部分;和響應(yīng)所述的訪問第二查找表集的步驟,從所述的第二查找表集中接收一個(gè)值。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述的訪問第二查找表集的步驟還包括訪問第二查找表集作為Chien搜索的一部分。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述的訪問第二查找表集的步驟還包括訪問其內(nèi)含有(Q-1)個(gè)元素的第二查找表集的步驟,其中如果(Q-1)與m之間的最大公分母(GCD(Q-1,m)等于1,則第m查找表在位置i=0,1,2,......,Q-2處存儲伽羅華域(GF)元素α-mi。
9.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述的訪問第二查找表集的步驟還包括訪問其內(nèi)含有(Q-1)個(gè)元素的第二查找表集的步驟,其中第m查找表包括GCD(Q-1,m)個(gè)子表,在位置i=0,1,……,(Q-1)/GCD(Q-1,m)-1)處存儲GF元素α-(mi+j),這里j=0,1,……,GCD(Q-1,m)-1。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,所述的訪問第二查找表集的步驟包括訪問循環(huán)查找表集的步驟,其中,以具有所述查找表規(guī)模的一個(gè)地址模數(shù)進(jìn)行超出所述查找表末端的訪問。
11.一種解碼數(shù)據(jù)的方法,其特征在于,包括以下步驟執(zhí)行校正子計(jì)算以確定在傳輸?shù)臄?shù)據(jù)中是否存在差錯(cuò);根據(jù)所述的校正子計(jì)算,計(jì)算差錯(cuò)定位多項(xiàng)式;和通過訪問多個(gè)查找表來為GF(Q)域的Q個(gè)元素的每個(gè)元素來估算多項(xiàng)式,以執(zhí)行Chien搜索來從所述的差錯(cuò)定位多項(xiàng)式確定差錯(cuò)的位置。
12.根據(jù)權(quán)利要求11所述的方法,其特征在于,通過訪問所述多個(gè)查找表以執(zhí)行Chien搜索的步驟包括訪問其內(nèi)每個(gè)查找表含有(Q-1)個(gè)元素的多個(gè)查找表,這里Q為GF(Q)域的規(guī)模。
13.根據(jù)權(quán)利要求11所述的方法,其特征在于,所述的通過訪問多個(gè)查找表以執(zhí)行Chien搜索的步驟還包括訪問其內(nèi)如果(Q-1)與m之間的最大公分母GCD(Q-1,m)等于1則第m查找表在位置i=0,1,……,Q-2處存儲GF元素α-mi的多個(gè)查找表。
14.根據(jù)權(quán)利要求11所述的方法,其特征在于,所述的通過訪問多個(gè)查找表以執(zhí)行Chien搜索的步驟還包括訪問其內(nèi)第m查找表含有(GCD(Q-1,m))個(gè)子表并在子表j的位置i=0,1,……,((Q-1)/GCD(Q-1,m)-1))處存儲GF元素α-(mi+j)的多個(gè)查找表,這里j=0,1,……,GCD(Q-1,m)-1。
15.一種編碼器/解碼器,其特征在于,包括一個(gè)微處理器,輸出第一值作為標(biāo)準(zhǔn)的編碼/解碼技術(shù)的一部分;和一個(gè)第一查找表,將所述的第一值為其一個(gè)輸入,并輸出所述第一值與多個(gè)其它值的多個(gè)乘積。
16.根據(jù)權(quán)利要求15所述的裝置,其特征在于,所述的第一值(Ym)是數(shù)據(jù)符號與一個(gè)變量之和。
17.根據(jù)權(quán)利要求16所述的裝置,其特征在于,所述的第一值與多個(gè)其它值的多個(gè)乘積是G0Y,G1Y,……,Gk-1Y,這里Y=0,1,2,……,Q-1,而Gm是碼生成多項(xiàng)式的系數(shù)。
18.根據(jù)權(quán)利要求15所述的解碼器,其特征在于,還包括一個(gè)第二查找表集,與所述的微處理器相連接,其中所述的第二查找表集在Chien搜索期間被應(yīng)用。
19.根據(jù)權(quán)利要求18所述的解碼器,其特征在于,所述的第二查找表集含有(Q-1)個(gè)元素,其中如果(Q-1)與m之間的最大公分母(GCD(Q-1,m))等于1,則第m查找表在位置i處存儲GF元素α-mi。
20.根據(jù)權(quán)利要求18所述的解碼器,其特征在于,所述的第二查找表集含有(Q-1)個(gè)元素,其中第m個(gè)查找表含有(GCD(Q-1,m))個(gè)子表,用于存儲GF元素α-(mi+j),這里j=0,1,……,GCD(Q-1,m)-1。
全文摘要
微處理器(201)在編碼期間,利用標(biāo)準(zhǔn)的里德-索羅門編碼技術(shù)來計(jì)算Y
文檔編號H03M13/15GK1535505SQ00812140
公開日2004年10月6日 申請日期2000年8月17日 優(yōu)先權(quán)日1999年8月27日
發(fā)明者楊建 , 建 楊 申請人:摩托羅拉公司