CN1535505A - 编码和解码数据的方法和装置 - Google Patents

编码和解码数据的方法和装置 Download PDF

Info

Publication number
CN1535505A
CN1535505A CNA008121400A CN00812140A CN1535505A CN 1535505 A CN1535505 A CN 1535505A CN A008121400 A CNA008121400 A CN A008121400A CN 00812140 A CN00812140 A CN 00812140A CN 1535505 A CN1535505 A CN 1535505A
Authority
CN
China
Prior art keywords
look
gcd
visit
value
microprocessor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA008121400A
Other languages
English (en)
Inventor
建 杨
杨建�
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Motorola Solutions Inc
Original Assignee
Motorola Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Motorola Inc filed Critical Motorola Inc
Publication of CN1535505A publication Critical patent/CN1535505A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • H03M13/6505Memory efficient implementations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1545Determination of error locations, e.g. Chien search or other methods or arrangements for the determination of the roots of the error locator polynomial
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/158Finite field arithmetic processing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/159Remainder calculation, e.g. for encoding and syndrome calculation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6569Implementation on processors, e.g. DSPs, or software implementations

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

微处理器(201)在编码期间,利用标准的里德-索罗门编码技术来计算Ym。微处理器(201)然后应用Ym作为查找表(203)的一个索引,从查找表(203)中获得G0Ym,G1Ym,……,Gk-1Ym。在校正子计算期间,应用在与编码器相似的方法根据信息符号产生第二奇偶校验符号集,具体地说,以与编码器确定G0Ym,G1Ym,……,Gk-1Ym的值的相似方式从第一查找表(603)中得到G0Ym,G1Ym,……,Gk-1Ym的值。建立第二查找表(605)以确定差错定位多项式的根。第二查找表是由几个表组成的,每个表都含有(Q-1)个元素,这里Q表示GF(Q)域的规模。如果(Q-1)与m之间的最大公分母(GCD(Q-1,m)=1,则第m个查找表在位置i处存储GF元素α-mi。如果GCD(Q-1,m)≠1,则第m查找表实际上是由存储GF元素α-(mi+j)的GCD(Q-1,m)个子表组成的,这里j=0,1,……,GCD(Q-1,m)-1。

Description

编码和解码数据的方法和装置
技术领域:
本发明涉及编码和解码技术,具体涉及里德-索罗门编码和解码的方法和装置。
背景技术:
里德-索罗门编码技术在本技术领域内是众所周知的。Reed I.S.和Solomon G.首次在工业应用数学学会杂志(Journal of Society ofIndustrial Application Mathematics)8,300-304(1960)上发表了题为“在某些有限域上的多项式码”的论文(Polynomial codes over certain finitefields)。在数据传输期间利用里德-索罗门码可消除接收数据中的差错。编码器是根据伽罗华(Galois)域(下文简称为“GF”)数学设计的,业已在美国专利4,142,174和4,567,594中公开了,这两个公开文本引用在此作为参考。总体上说,里德-索罗门码是由从GF数字号码中的码符号定义的,表示为GF(Q),这里,Q=2b是2的正整数幂。GF具有有限数目的元素。GF(Q)中有Q个元素,它们可由一个特殊元素(α)的0至Q-1的接连幂(α°,α1,…,αQ-1)表示。
本技术领域内众所周知还有许多不同的方法应用里德-索罗门编码器和解码器。在差错校正中应用里德-索罗门码的一种方法是对传输的数据附加一个奇偶校验符号集,名词“符号”表示b个比特,用以组成GF(Q)域一个元素。奇偶校验符号用于检测和校正传输数据中的差错。更具体地说,编码器把消息比特看作是符号块,用以组成GF(Q)的消息多项式,并借助于将消息多项式(X)除以码生成多项式(G)而得到奇偶校验符号。该奇偶校验符号被标识为余数多项式(C)的系数。奇偶校验符号附加到消息符号上以组成码字多项式的系数。选择码生成多项式以将所需的特性赋予码字,以使码字属于一个具体等级的差错校正组的码。在传送期间该码字借助于将奇偶校验符号附加到消息数据上作为尾比特而被传送,接收机利用它们可校正在接收的消息多项式(R)内的差错。
图1示出先有技术的里德-索罗门编码器,它被实施为一个移位寄存器多项式除法电路。如图所示,该移位寄存器在延时单元(D)中初始化为0。在每次迭代期间,第m个数据符号Xm增加最右面延时单元的内容以形成符号Ym。然后,每个延时单元的内容借助于将其左面延时单元的内容与“符号Ym和Gm”之积相加而被更新,这里Gm是码生成多项式的系数,也即G(Z)=G0+G1Z+……+Gk-1Zk-1+Zk。(最左面的延时单元例外,它由乘积G0Ym来更新)。
通过接续地更新移位寄存器直至消息块结束时为止,产生奇偶校验符号。当该消息块的最后一个符号完成迭代时,移位寄存器的内容变为奇偶校验符号,最右面的延时单元含有第一个奇偶校验符号,它将由发射机附加到消息数据上。
迄今,除法处理典型地是由专用硬件(例如,乘法器101、延时电路102和加法器103)执行的,然而,该处理越来越倾向借助于先进的“软”调制解调技术利用微处理器/软件的组合来实施。
虽然软调制解调器具有执行里德-索罗门编码/解码的能力,但问题是先有技术实施需要很多处理能力。在图1所示的编码器中,为每个消息信号需作K次乘法和加法。尽管GF加法是逻辑异或运算,这典型地由微处理器指令集来支持,但GF乘法难以得到支持并且要由多个指令循环来完成。对于高速调制解调器(例如,ADSL调制解调器或缆式调制解调器),里德-索罗门编码器需要处理每秒百万数量级的消息符号。所需的总处理能力或MIPS即使不超出典型微处理器的总处理能力,也将占其能力的极其可观的百分比。其结果是全部调制解调器功能很难由微处理器来完成。即使微处理器能够实现调制解调器功能,但对于主处理或软件调制解调器而言由调制解调器所利用的处理能力也不能再用于其它应用。为此,需要一种编码/解码的方法和装置,它们能够以软调制解调器来实施,而不采用先有技术软调制解调器所需的MIPS。
为解决上述的需求,这里提供一种编码/解码数据的方法和装置。在编码期间,数据符号Xm输入微处理器,微处理器利用标准的里德-索罗门编码技术来计算Ym。具体地说,Ym是通过将消息符号Xm与移位寄存器最右面的延时单元的内容相加而计算出来的。由于Ym作为GF(Q)的一个元素只能对Q取不同的值,因此可预先计算乘积G0Ym,G1Ym,……,Gk-1Ym并存储入查找表中。然后,微处理器应用Ym作为查找表的一个索引,从查找表中获得乘积G0Ym,G1Ym,……,Gk-1Ym,这些乘积用于更新移位寄存器。
在解码操作期间,使用几个查找表。第一个查找表用于减小校正子计算的复杂性,第二个查找表用于减小确定差错定位多项式的根的复杂性,尤其是Chien搜索的复杂性。在计算校正子期间,G0Ym,G1Ym,……,Gk-1Ym的值是以类似于编码器确定G0Ym,G1Ym,……,Gk-1Ym值的方式从第一个查找表中获得的。第二个查找表由一组L个查找表组成,这里L是差错定位多项式的阶。建立这些表可使每个表都包含(Q-1)个元素,这里Q是GF(Q)域的规模大小。如果(Q-1)和m之间的最大公分母GCD(Q-1,m)=1,则第m个查找表将GF元素α-mi存储在位置i处。如果GCD(Q-1,m)≠1,则第m个查找表实际上由J=GCD(Q-1,m)个子表组成,将GF元素α-(mi+j)存储在第j个表的位置i处,这里j=0,1,……,J-1。微处理器根据差错定位多项式中相应的系数使每个查找表的起始地址初始化,然后在几次迭代之后完成Chien搜索,并在每次迭代中微处理器将在与各自起始地址有相同偏差的位置处的所有L表的内容相加起来,并将和值与1相比较,以确定对应于偏差(d)的元素是否是一个根。
由于先有技术需要乘法,而乘法运算与从查找表中获得数值相比则是更复杂的运算,因此微处理器所需的总处理能力或MIPS可得以减小。此外,根据本发明所述的查找表可使微处理器利用其寄存器宽度,所述的寄存器宽度通常是单一指令并行多操作时b的几倍,因此可进一步减小微处理器所需的MIPS。其结果是整个调制解调器功能可由具有处理其它应用能力的微处理器来实现。
本发明包括一种用于编码/解码数据的方法。该方法包括以下步骤:接收数据符号(Xm),计算第一值作为标准的编码/解码技术的一部分,并利用所述的第一值作为查找表的一个索引,从查找表中接收该第一值与多个其它值的多个乘积,该多个乘积用于编码/解码数据。
本发明还包括一种解码数据的方法。该方法包括以下步骤:执行校正子计算以确定在传输数据中是否有差错,根据校正子计算来计算差错定位多项式,以及执行Chien搜索,通过访问多个查找表来为GF(Q)域的Q个元素之中的每个估算一个多项式,以从差错定位多项式中确定差错的位置。
本发明还包括一种编码器/解码器,其中包括:微处理器,用以输出第一值作为标准的编码/解码技术的一部分,和一个第一查找表,将所述的第一值为其输入,并输出该第一值与多个其它值的多个乘积。
附图说明:
图1示出先有技术里德-索罗门编码器的方框图。
图2示出根据本发明优选实施例的里德-索罗门编码器的方框图。
图3示出根据本发明优选实施例如图2所示的查找表的一个代表例子。
图4示出根据本发明的优选实施例如图2所示的里德-索罗门编码器的操作流程图。
图5示出根据本发明优选实施例的里德-索罗门解码所需的步骤流程图。
图6示出根据本发明优选实施例的里德-索罗门解码器的方框图。
图7示出根据本发明优选实施例的GCD(Q-1,m)=1时,GF(Q)的奇印(Chien)搜索查找表的示例图。
图8示出根据本发明优选实施例的GCD(Q-1,m)≠1时,GF(Q)的Chien搜索查找表的示例图。
图9示出根据本发明优选实施例的基于查找表的Chien搜索步骤的流程图。
具体实施方式:
现在,转向附图,图中相同的标号表示相同的组成部分。图2示出根据本发明优选实施例的里德-索罗门编码器200的方框图。编码器200包括一个微处理器201和一个查找表203。在本发明的优选实施例中,微处理器201最好是一种具有很宽的寄存器宽度的微处理器,例如摩托罗拉公司供应的Aitivec能力的PC处理器(128比特寄存器),或是MMX能力的处理器(64比特寄存器),它包括Intel公司供应的pentium处理器和AMD(高级微电路设备公司)供应的K6处理器。在下文的描述中假设处理器的寄存器具有足够的宽度,足以容纳整个移位寄存器。此外,虽然图示的查找表203是独立于微处理器201的,但本发明的优选实施例实际上设在微处理器201内作为内部或外部存储器的一部分。查找表203存储预先计算的乘积G0Y,G1Y,……,Gk-1Y,这里k是码生成多项式的阶,等于奇偶校验符号的个数,Y是GF(Q)域的Q个元素的每一个。为此,对于具有K个奇偶校验符号的GF(Q)中的码来说,查找表203的规模是Q*K。对于Q=256和K=16的典型例子,其规模是总计4KB存储器。
根据本发明优选实施例的编码器200的操作情况如下所述:数据符号Xm由微处理器201接收。微处理器201计算第一值Ym作为标准的编码技术的一部分。具体地说,Ym是利用标准的里德-索罗门编码技术通过将消息符号Xm与一个变量值相加而计算出来的,所述的变量是最右面的延时单元内容。尔后,微处理器201应用第一值Ym作为查找表203的一个索引,获得Ym与多个其它值相乘的多个乘积。具体地说,G0Ym,G1Ym,……,Gk-1Ym是从查找表203返回到微处理器201的。然后,微处理器201用这些返回的值并行地更新移位寄存器的延时单元,以完成数据符号Xm的编码处理。
图3示出根据本发明优选实施例的、图2所示的查找表的一种代表例子。可以明显看出,针对每个GF(Q)元素都对应有G0Y,G1Y,……,Gk-1Y的值,这里Y=0,1,2,……,Q-1。当以Y值访问查找表203时,这些值就输出到微处理器201。在本发明的优选实施例中,查找表203是通过预先计算GmY值并以这些值填充入查找表203中而实现的,具体地说,将存储器组建成为Q个接连的字,而第i个字保存k个乘积,即I*Go,I*G1,……,I*Gk-1。再将这些字划分成宽度为b=log2(Q)比特的K个字段,按照上述次序用一个字段保存K个乘积之中的一个。由于该表对于一个具体码是恒定的,所以它可以存储入只读存储器中。在调制解调器具有几种操作模式并且每种模式可应用不同代码的情况下,还希望一旦确定调制解调器的操作模式就动态地产生该表成为读/写类型的存储器。
在本发明的优选实施例中,只需要查找一个表来获得K个乘法结果G0Ym,G1Ym,……,Gk-1Ym。眼前的益处是为每个消息符号节省了K次乘法运算,由于GF乘法运算是在微处理器上进行大量计算的昂贵的操作,所以与先有技术相比,这显著地减小了微处理器所需的总处理能力或MIPS。其结果是,调制解调器整体功能可以由具有处理其它应用能力的微处理器来实现。此外,K个乘积存储于单一寄存器的事实允许应用单个异或门和移位指令并行地更新所有K个移位寄存器延时单元。另一个益处是一次一个字地访问该表。由于每个字通常是由多个接连的字节组成的,所以可从典型系统所支持的突发存储器访问模式中获得最大利益。
在上述的实施过程中,假设微处理器寄存器的宽度宽得足以容纳整个移位寄存器。若不是这种情况,通过存储部分的移位寄存器运算,仍能得到由给定的寄存器宽度所提供的最大的利益。此外,上文所描述的查找表不仅可应用于里德-索罗门码,而且提供通用的高效MIPS方法,用以对已知类别的码例如循环码(里德-索罗门码是其中的一种)进行编码。
图4示出根据本发明优选实施例的图2所示的里德-索罗门编码器的操作流程图。移位寄存器被实施为该处理器的一个或多个整数的寄存器,该处理器从概念上可被划分成K个字段,每个宽b个比特,每个字段保存一个延时单元的内容。该逻辑流程在步骤401开始,该步骤令微处理器初始化移位寄存器使其全部为零。然后进入处理消息数据的循环。在步骤402微处理器201接收即将传送的数据符号(Xm)。在步骤403微处理器201根据Xm计算Ym的值。接着在步骤405微处理器201应用Ym作为查找表203的一个索引来访问查找表203,从查找表203中得到G0Ym,G1Ym,……,Gk-1Ym的值。然后在步骤407处理器通过使移位寄存器的内容与查找表的输出进行异或运算和使移位寄存器向右移位b比特,以更新该移位寄存器。在步骤408微处理器201确定是否已处理该数据块的最后一个消息符号。如果是“否”,则重复步骤402-408,否则,微处理器在步骤409输出该尾比特。在本发明的优选实施例中,尾比特被产生,如上所述它是输出的该移位寄存器的最后的内容。
里德-索罗门解码在几个步骤中发生,如图5所示。在步骤501计算校正子多项式。如本技术领域的普通技术人员所知道的,校正子多项式其系数被定义为接收的多项式,是对码生成多项式的根进行估算而得出的。在步骤502借助于确定是否校正子=0来判断在传送数据中是否存在差错。如果校正子为非零值就表明在接收数据中存在差错,就在步骤504计算差错定位多项式,并在步骤506根据差错定位多项式来确定差错的位置。最后在步骤508应用佛尼(Forney)算法根据差错定位多项式来确定差错量。
以上四个步骤之中的步骤1和3典型是基于微处理器的解码器的最精细的计算步骤。步骤1涉及整个接收消息多项式并且不管接收块是否有差错都是必要的。步骤3的典型算法涉及搜索GF(Q)域的所有Q个元素,相反,步骤2和4涉及校正子和差错定位多项式,其阶数通常比接收消息多项式的阶数或GF(Q)域的规模要小得多。
为了减小解码里德-索罗门编码数据所需的MIPS量,解码器600使用几个查找表,图6示出根据本发明优选实施例的解码器600的方框图。
第一查找表(查找表603)用于减小步骤1的复杂性。它的应用方式与编码器200的查找表203相似。在计算校正子期间,解码器600将接收的信息符号(Rm)认作是将要传送的消息符号(Xm)并据此产生第二尾比特集。本技术领域的技术人员知道计算校正子可以是将该第二尾比特集与接收尾比特相加。在计算第二尾比特集期间,按照与编码器确定G0Ym,G1Ym,……,Gk-1Ym相同的方式从查找表603中获得G0Ym,G1Ym,……,Gk-1Ym的值。具体地说,微处理器601利用标准的里德-索罗门编码技术计算Ym,也即如上所述的使信息符号Rm与最右面移位寄存器的内容相加,然后应用Ym作为查找表603的一个索引,查找表603返回G0Ym,G1Ym,  ……,Gk-1Ym
第二查找表605用来减小步骤3的复杂性。差错位置对应于差错定位多项式的根,λ(z)=1+λ1z+λ2z2+……+λLzL。寻找GF多项式根的一种公知算法是应用Chien搜索。在Chien搜索过程中,对于GF(Q)域的Q个元素之中的每个都简单估算该多项式以确定是否是一个根。显然由于第L阶多项式需要估算Q次,因此Chien搜索的直接前向运算要耗费许多处理能力。使用查找表605可以加速处理。查找表605实际上是由一组L个查找表607-611组成的,在Chien搜索期间被应用。
组建查找表607-611可使每个表内都含有(Q-1)个元素,其中Q是GF(Q)域的规模。如果在(Q-1)与m之间的最大公分母(GCD(Q-1,m))等于1,则第m个查找表在位置i处存储GF元素α-mi。也就是说,如果(Q-1)与m互为素数,则第m个查找表在位置i处存储GF元素α-mi。图7示出这种情况。请注意,α-m(i+Q-1)α-mi,也即如此构成的查找表是周期性的,周期为Q-1并且图7示出该查找表的单个周期。
如果GCD(Q-1,m)不等于1,则第m个查找表实际上含有(GCD(Q-1,m))个子表,存储GF元素α-(mi+j),其中j=0,1,……,GCD(Q-1,m)-1。由于α-(m(i+v)+j)=α-(mi+j),所以每个子表是周期性的,周期为V=(Q-1)/GCD(Q-1,m)。图8示出每个子表的单个周期。所有查找表都具有起始于任何位置i的特性,该表在接连的位置处存储{Tum:u=α0,α-1,α-2,…},式中T是位置i处的内容。此外,每个表或一个子表集含有GF(Q)中每个非零元素。
在Chien搜索期间,微处理器601在α-0,α-1,α-2,α-3等位置处依此顺序地估算差错定位多项式。为便于应用查找表,微处理器601在初始化阶段就为L个查找表之中的每一个确定起始地址。为第m个查找表作此事借助在查找表中确定其内容为λm的位置,λm是差错定位多项式中zm的系数。在查找表是一个子表集的情况下,微处理器601首先选择一个子表并确定已选表的起始地址。然后,微处理器601在几次迭代后来完成Chien搜索。在每次迭代时,微处理器601将从各自的起始地址(由上述的程序所确定的)来的、在具有相同偏移(d)的位置处的所有L个表的内容相加。由于查找表的特性,该和值变为S(d)=λ1u+λ2u2+……+λLuL|u=α-d=λ(α-d)-1,式中L是差错定位多项式的阶。也就是说,对于偏移d的和值是差错定位多项式对于元素α-d的值与1之差值。为此,微处理器通过将S(d)与1相比较来确定α-d是否是一个根。然后,微处理器使偏移增量以准备下一次迭代。如果微处理器的寄存器宽度为B,则微处理器在每次迭代和偏移增量B符号时可以计算B个接连的和值。据此,查找表的好处是用单个异或指令取代了2B次乘法运算。
由于0(α0)的偏移对应于最后接收符号的差错位置,所以1(α-1)的偏移对应于倒数第二个接收元符号为差错位置,依此类推。在对应于最先接收符号的元素业已检查之后,搜索可以停止,因为业已查完所有可能发生差错的位置。这对于缩短的里德-索罗门码提供另一种减小复杂性的途径。如本技术领域所公知的,缩短的里德-索罗门码等效于具有Q-1符号块规模的原始的里德-索罗门码(包括奇偶校验符号),其最初的几个符号强制为0值(解码器先验地已知此事)并且不被传送。由于通过读出接连的位置来访问查找表,所以可从大多数处理器所支持的突发存储器模式中获得最大的益处。
图9示出根据本发明优选实施例的、基于查找表的Chien搜索步骤流程图,在初始化步骤902微处理器601为差错定位多项式的L个系数之中的每个所关联的查找表确定起始地址,并将偏移(d)设定为0,然后微处理器601在几次迭代之后完成Chien搜索。在步骤904微处理器601在每次迭代后将离初始化阶段所确定的起始地址偏移(d)处的所有L个查找表的内容相加。然后,在步骤906微处理器601将步骤904所获得的B个和值与B个1相比较。对于等于1的每个B的和值,微处理器断定与该和值相关联的GF(Q)元素是差错定位多项式的一个根。在步骤908微处理器使偏移(d)增量B。在步骤910微处理器确定是否已检查所有可能的差错位置,如果没有检查完,则重复迭代步骤904-910。在微处理器检查所有可能的差错位置之后,该处理在步骤912结束。
由于差错定位多项式的阶(L)不能超过K/2,所以需要建立K/2个查找表来处理具有K个奇偶校验符号的里德-索罗门码。如上所述,查找表和子表都是周期性的,因此只要应用循环寻址来访问各表,也即将地址以查找表/子表的周期为模而围着查找表/子表的终端卷绕,它们的规模将是一个周期。作为Q=256和K=16的一个典型例子,所有K/2个表的总存储量为(Q-1)*K/2=2040字节,小于2KB。对于具有循环寻址能力的微处理器而言,可存储每个表的单个周期。对于其它微处理器而言,MIPS可能消耗于以软件来实施循环查找表。在这种情况下,存储GCD(Q-1,m)+1个周期。这里不发生地址的围转卷绕,可以应用线性寻址来对各表确定索引。
在本发明的另一个实施例中,建立了一个附加表,具有Q-1个0输入项,该表为差错定位多项式入m(为0)的系数所使用。
上文参照附图描述了本发明的具体细节,这并不意味着限制本发明的范围。例如,虽然本发明的优选实施例在里德-索罗门编码/解码期间应用查找表,但本技术领域的普通技术人员知道查找表也可以应用于其它形式的编码/解码。发明人的意图是在不偏离开本发明的精神和范的条件下可对本发明作出各种修改,并且所有这样的修改都在后附的权利要求书的范围之内。

Claims (20)

1.一种编码/解码数据的方法,其特征在于,包括以下步骤:
接收数据符号(Xm);
计算第一值作为标准的编码/解码技术的一部分;
应用所述的第一值作为查找表的一个索引;
从所述的查找表中接收该第一值与多个其它值的多个乘积;和
应用所述的多个乘积来编码/解码所述的数据。
2.根据权利要求1所述的方法,其特征在于,所述的计算第一值作为标准的编码技术的一部分的步骤,包括利用标准的里德-索罗门编码技术来计算Ym的步骤,其中,将消息比特当作为符号块,用以组成GF(Q)中的消息多项式,并且将所述的消息多项式(X)除以码生成多项式(G)从而得出奇偶校验符号。
3.根据权利要求2所述的方法,其特征在于,所述的从查找表中接收多个乘积的步骤包括从所述的查找表中接收G0Y,G1Y,……,Gk-1Y的步骤,其中Y=0,1,2,……,Q-1,这里Gm是码生成多项式的系数。
4.根据权利要求1所述的方法,其特征在于,还包括以下步骤:
初始地确定里德-索罗门码的参数;和
根据所述的参数动态地产生查找表。
5.根据权利要求1所述的方法,其特征在于,所述的应用第一值作为查找表的一个索引的步骤包括:在计算校正子期间应用所述的第一值作为查找表的一个索引的步骤。
6.根据权利要求1所述的解码数据方法,其特征在于,还包括以下步骤:
访问第二查找表集作为第二标准的一部分;和
响应所述的访问第二查找表集的步骤,从所述的第二查找表集中接收一个值。
7.根据权利要求6所述的方法,其特征在于,所述的访问第二查找表集的步骤还包括:访问第二查找表集作为Chien搜索的一部分。
8.根据权利要求7所述的方法,其特征在于,所述的访问第二查找表集的步骤还包括:访问其内含有(Q-1)个元素的第二查找表集的步骤,其中如果(Q-1)与m之间的最大公分母(GCD(Q-1,m)等于1,则第m查找表在位置i=0,1,2,......,Q-2处存储伽罗华域(GF)元素α-mi
9.根据权利要求6所述的方法,其特征在于,所述的访问第二查找表集的步骤还包括:访问其内含有(Q-1)个元素的第二查找表集的步骤,其中第m查找表包括:GCD(Q-1,m)个子表,在位置i=0,1,……,(Q-1)/GCD(Q-1,m)-1)处存储GF元素α-(mi+j),这里j=0,1,……,GCD(Q-1,m)-1。
10.根据权利要求9所述的方法,其特征在于,所述的访问第二查找表集的步骤包括:访问循环查找表集的步骤,其中,以具有所述查找表规模的一个地址模数进行超出所述查找表末端的访问。
11.一种解码数据的方法,其特征在于,包括以下步骤:
执行校正子计算以确定在传输的数据中是否存在差错;
根据所述的校正子计算,计算差错定位多项式;和
通过访问多个查找表来为GF(Q)域的Q个元素的每个元素来估算多项式,以执行Chien搜索来从所述的差错定位多项式确定差错的位置。
12.根据权利要求11所述的方法,其特征在于,通过访问所述多个查找表以执行Chien搜索的步骤包括:访问其内每个查找表含有(Q-1)个元素的多个查找表,这里Q为GF(Q)域的规模。
13.根据权利要求11所述的方法,其特征在于,所述的通过访问多个查找表以执行Chien搜索的步骤还包括:访问其内如果(Q-1)与m之间的最大公分母GCD(Q-1,m)等于1则第m查找表在位置i=0,1,……,Q-2处存储GF元素α-mi的多个查找表。
14.根据权利要求11所述的方法,其特征在于,所述的通过访问多个查找表以执行Chien搜索的步骤还包括:访问其内第m查找表含有(GCD(Q-1,m))个子表并在子表j的位置i=0,1,……,((Q-1)/GCD(Q-1,m)-1))处存储GF元素α-(mi+j)的多个查找表,这里j=0,1,……,GCD(Q-1,m)-1。
15.一种编码器/解码器,其特征在于,包括:
一个微处理器,输出第一值作为标准的编码/解码技术的一部分;和
一个第一查找表,将所述的第一值为其一个输入,并输出所述第一值与多个其它值的多个乘积。
16.根据权利要求15所述的装置,其特征在于,所述的第一值(Ym)是数据符号与一个变量之和。
17.根据权利要求16所述的装置,其特征在于,所述的第一值与多个其它值的多个乘积是G0Y,G1Y,……,Gk-1Y,这里Y=0,1,2,……,Q-1,而Gm是码生成多项式的系数。
18.根据权利要求15所述的解码器,其特征在于,还包括:一个第二查找表集,与所述的微处理器相连接,其中所述的第二查找表集在Chien搜索期间被应用。
19.根据权利要求18所述的解码器,其特征在于,所述的第二查找表集含有(Q-1)个元素,其中如果(Q-1)与m之间的最大公分母(GCD(Q-1,m))等于1,则第m查找表在位置i处存储GF元素α-mi
20.根据权利要求18所述的解码器,其特征在于,所述的第二查找表集含有(Q-1)个元素,其中第m个查找表含有(GCD(Q-1,m))个子表,用于存储GF元素α-(mi+j),这里j=0,1,……,GCD(Q-1,m)-1。
CNA008121400A 1999-08-27 2000-08-17 编码和解码数据的方法和装置 Pending CN1535505A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/384,530 1999-08-27
US09/384,530 US6360348B1 (en) 1999-08-27 1999-08-27 Method and apparatus for coding and decoding data

Publications (1)

Publication Number Publication Date
CN1535505A true CN1535505A (zh) 2004-10-06

Family

ID=23517690

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA008121400A Pending CN1535505A (zh) 1999-08-27 2000-08-17 编码和解码数据的方法和装置

Country Status (7)

Country Link
US (1) US6360348B1 (zh)
EP (1) EP1400022A4 (zh)
JP (1) JP2003529233A (zh)
KR (1) KR20020047134A (zh)
CN (1) CN1535505A (zh)
AU (1) AU6913900A (zh)
WO (1) WO2001017154A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100345098C (zh) * 2004-11-19 2007-10-24 国际商业机器公司 磁盘阵列控制器及磁盘阵列环境中的运行方法
CN101038776B (zh) * 2006-03-15 2010-05-26 联发科技股份有限公司 产生数据区块奇偶符的方法与相关装置
CN104202057A (zh) * 2014-02-12 2014-12-10 中兴通讯股份有限公司 信息处理方法及装置

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6598201B1 (en) * 1999-03-15 2003-07-22 Texas Instruments Incorporated Error coding structure and method
US6850566B2 (en) * 2000-02-22 2005-02-01 Intervideo, Inc. Implementation of quantization for SIMD architecture
US6763492B1 (en) * 2000-09-26 2004-07-13 Qualcomm Incorporated Method and apparatus for encoding of linear block codes
US6934730B2 (en) * 2000-10-13 2005-08-23 Xpriori, Llc Method and system for generating a transform
US6985633B2 (en) * 2001-03-26 2006-01-10 Ramot At Tel Aviv University Ltd. Device and method for decoding class-based codewords
US6954892B2 (en) * 2002-06-06 2005-10-11 National Chiao Tung University Method for calculating syndrome polynomial in decoding error correction codes
EP1547252A4 (en) * 2002-07-29 2011-04-20 Robert Halford MULTIDIMENSIONAL DATA PROTECTION AND MIRRORING METHOD FOR MICROBIAL DATA
US7633976B2 (en) * 2002-09-19 2009-12-15 Industrial Technology Research Institute Method and apparatus for code group identification and frame synchronization by use of Reed-Solomon decoder and reliability measurement for UMTS W-CDMA
US7162679B2 (en) * 2003-12-12 2007-01-09 Analog Devices, Inc. Methods and apparatus for coding and decoding data using Reed-Solomon codes
CN100388629C (zh) * 2003-12-22 2008-05-14 普天信息技术研究院 一种循环冗余校验的快速计算方法
EP1704647B1 (en) * 2004-01-15 2019-03-20 Qualcomm Incorporated A method of reed-solomon encoding and decoding
US7788570B1 (en) * 2005-03-23 2010-08-31 Marvell International Ltd. Optimized Reed-Solomon decoder
US7370258B2 (en) * 2005-04-28 2008-05-06 Sandbridge Technologies Inc. Iterative concatenated convolutional Reed-Solomon decoding method
US7793195B1 (en) * 2006-05-11 2010-09-07 Link—A—Media Devices Corporation Incremental generation of polynomials for decoding reed-solomon codes
JP4891704B2 (ja) * 2006-08-28 2012-03-07 株式会社東芝 半導体記憶装置
JP4313391B2 (ja) * 2006-12-13 2009-08-12 株式会社日立コミュニケーションテクノロジー 光集線装置および光加入者装置
US8171368B1 (en) 2007-02-16 2012-05-01 Link—A—Media Devices Corporation Probabilistic transition rule for two-level decoding of reed-solomon codes
TWI334279B (en) * 2007-06-23 2010-12-01 Lite On Technology Corp Efficient chien search method for reed-solomon decoding and machine readable recording medium comprising instructions for performing the method
GB2460417B (en) * 2008-05-28 2011-04-06 Mirics Semiconductor Ltd Broadcast receiver system
GB2460416B (en) * 2008-05-28 2010-07-07 Mirics Semiconductor Ltd Broadcast receiver system
GB2460418B (en) * 2008-05-28 2010-04-14 Mirics Semiconductor Ltd Broadcast receiver system
JP4945513B2 (ja) * 2008-06-04 2012-06-06 ルネサスエレクトロニクス株式会社 可変長復号装置およびそれを用いた動画復号装置
JP5259343B2 (ja) * 2008-10-31 2013-08-07 株式会社東芝 メモリ装置
US8312346B2 (en) * 2009-05-01 2012-11-13 Mirics Semiconductor Limited Systems and methods for communications
US8433985B2 (en) * 2010-03-29 2013-04-30 Intel Corporation Error correction mechanisms for flash memories
US8479082B2 (en) * 2010-04-07 2013-07-02 Indian Institute Of Technology Delhi Packet error correction in networks
WO2011154750A1 (en) * 2010-06-11 2011-12-15 Mirics Limited Decoding of reed - solomon codes using look-up tables for error detection and correction
EP2434650A1 (en) 2010-09-23 2012-03-28 Panasonic Corporation Reed-Solomon encoder with simplified Galois field multipliers
WO2013051139A1 (ja) * 2011-10-06 2013-04-11 株式会社日立製作所 有限体上の乗算方法、計算機、およびプログラム
CN105024707B (zh) * 2015-07-31 2018-05-11 福建联迪商用设备有限公司 一种rs纠错解码方法
US10318433B2 (en) * 2016-12-20 2019-06-11 Texas Instruments Incorporated Streaming engine with multi dimensional circular addressing selectable at each dimension

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3668632A (en) * 1969-02-13 1972-06-06 Ibm Fast decode character error detection and correction system
US4856004A (en) * 1987-10-05 1989-08-08 Motorola, Inc. Microprocessor based BCH decoder
US4890287A (en) * 1988-03-09 1989-12-26 Magnetic Peripherals Inc. On-the-fly error correction
US4958349A (en) * 1988-11-01 1990-09-18 Ford Aerospace Corporation High data rate BCH decoder
US5329618A (en) * 1992-04-02 1994-07-12 Fibronics Ltd. Look-up table for a bridge in a data communications system
MX9603336A (es) * 1994-02-17 1997-05-31 Micrilor Inc Red de area local inalambrica de alto indice de datos.
US5627843A (en) * 1995-02-23 1997-05-06 Seagate Technology, Inc. Correcting up to two disc drive read errors and detecting the occurrence of more than two read errors
JP3622981B2 (ja) * 1995-10-03 2005-02-23 松下電器産業株式会社 誤り訂正符号化装置及び方法、並びに誤り訂正復号化装置及び方法
US5701314A (en) * 1995-12-21 1997-12-23 Cirrus Logic, Inc. On-the-fly error correction using thermal asperity erasure pointers from a sampled amplitude read channel in a magnetic disk drive
US5894565A (en) * 1996-05-20 1999-04-13 Atmel Corporation Field programmable gate array with distributed RAM and increased cell utilization
US5926647A (en) * 1996-10-11 1999-07-20 Divicom Inc. Processing system with dynamic alteration of a color look-up table
US6081555A (en) * 1996-12-04 2000-06-27 Conexant Systems, Inc. Methods and apparatus for implementing shell mapping techniques in the context of a PCM-based modem communications system
US5948117A (en) * 1997-01-23 1999-09-07 Quantum Corporation Modified Reed-Solomon error correction system using (W+i+1)-bit representations of symbols of GF(2w+i)
US6173429B1 (en) * 1997-03-14 2001-01-09 Harris Corporation Apparatus for providing error correction data in a digital data transfer system
US5942005A (en) * 1997-04-08 1999-08-24 International Business Machines Corporation Method and means for computationally efficient error and erasure correction in linear cyclic codes
JPH113573A (ja) * 1997-04-15 1999-01-06 Mitsubishi Electric Corp 拡大リードソロモン符号の誤り訂正復号方法と誤り訂正復号装置、1次伸長拡大リードソロモン符号の誤り訂正方法と誤り訂正装置、および2次伸長拡大リードソロモン符号の誤り訂正方法と誤り訂正装置
US6058500A (en) * 1998-01-20 2000-05-02 3Com Corporation High-speed syndrome calculation
KR100304193B1 (ko) * 1998-02-06 2001-11-22 윤종용 리드솔로몬복호기의역수구현회로

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100345098C (zh) * 2004-11-19 2007-10-24 国际商业机器公司 磁盘阵列控制器及磁盘阵列环境中的运行方法
CN101038776B (zh) * 2006-03-15 2010-05-26 联发科技股份有限公司 产生数据区块奇偶符的方法与相关装置
CN104202057A (zh) * 2014-02-12 2014-12-10 中兴通讯股份有限公司 信息处理方法及装置
CN104202057B (zh) * 2014-02-12 2019-08-16 中兴通讯股份有限公司 信息处理方法及装置

Also Published As

Publication number Publication date
JP2003529233A (ja) 2003-09-30
EP1400022A2 (en) 2004-03-24
AU6913900A (en) 2001-03-26
WO2001017154A3 (en) 2004-01-08
US6360348B1 (en) 2002-03-19
WO2001017154A2 (en) 2001-03-08
KR20020047134A (ko) 2002-06-21
EP1400022A4 (en) 2004-05-19

Similar Documents

Publication Publication Date Title
CN1535505A (zh) 编码和解码数据的方法和装置
US7162679B2 (en) Methods and apparatus for coding and decoding data using Reed-Solomon codes
WO1988009011A1 (en) Real-time bch error correction code decoding mechanism
US8689078B2 (en) Determining a message residue
EP1474873B1 (en) Obtaining cyclic redundancy code
WO2000057561A1 (en) Pipelined high speed reed-solomon error/erasure decoder
CN101277119B (zh) 里德所罗门码解码器硬件复用方法及其低硬件复杂度解码装置
WO1997000559A1 (en) Dedicated alu architecture for 10-bit reed-solomon error correction module
US7461329B2 (en) Channel encoding adapted to error bursts
Kounavis et al. A systematic approach to building high performance software-based CRC generators
US20040117719A1 (en) Methods and devices for decoding one-point algebraic geometric codes
EP0660535B1 (en) Apparatus for uniformly correcting erasure and error of received word by using a common polynomial
US6735737B2 (en) Error correction structures and methods
EP0608848B1 (en) Cyclic coding and cyclic redundancy code check processor
US7398456B2 (en) Information encoding by shortened Reed-Solomon codes
EP0991196B1 (en) Method of correcting lost data and circuit thereof
US20060010363A1 (en) Method and system for correcting low latency errors in read and write non volatile memories, particularly of the flash type
CN1167373A (zh) 用在里德-所罗门解码器中的多项式求值器
US6598201B1 (en) Error coding structure and method
CN101873143A (zh) 一种rs纠错码解码器中的伴随式计算电路及其计算方法
CN1250980A (zh) 里德-索罗门解码器和解码方法
JP2760192B2 (ja) 誤り訂正符号の復号装置
CN1267964A (zh) 里德-索罗门码的快速译码方法及编译码器
WO2004059487A1 (en) An apparatus and method for parallel calculation of an error code syndrome
JPH06104773A (ja) 線形代数符号のキー式の解を求めるためのプログラム可能な逐次形キー式求解回路及び方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication