使用Galois域乘法查询表的Reed-Solomon码的编码和解码制造技术

技术编号:3421315 阅读:207 留言:0更新日期:2012-04-11 18:40
提供了用于对数据编码的方法和设备。该方法包括:(a)提供与码生成器系数相乘的第一分量值的第一表和与所述码生成器系数相乘的第二分量值的第二表,(b)基于消息符号和高阶余数符号确定Galois域元素,(c)将所述Galois域元素分成第一和第二分量,(d)使用所述第一分量和生成器系数索引访问所述第一表中的一个或多个第一表值,并使用所述第二分量和所述生成器系数索引访问所述第二表中的一个或多个第二表,(e)基于具有相等生成器系数索引的第一和第二表值以及先前余数符号确定当前余数符号,(f)针对码生成器的每个生成器系数执行步骤(e)以提供一组余数符号,以及(g)针对码字中的每个消息符号执行步骤(b)-(f)以提供一组最终余数符号,其构成将与所述码字的消息符号一起发送的校验符号。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及对数据进行编码,且更具体地,涉及用于Reed-Solomon编码的方法和设备。
技术介绍
用于使用用于错误检测和校正的Reed-Solomon码发送和接收信息的过程可描述如下。一般表示为位流的待发送信息被划分为某个大小m的小块。这些m位的小块在如下的意义上可利用一种公知为有限域(或Galois域)的数学结构的元素来标识在m位的所有可能的2m个块的集合与2m维的Galois域(GF)、即GF(2m)的所有2m个元素的集合之间存在一对一映射。Galois域本身可构造为具有来自“基础(ground)”二进制域GF(2)的系数和两个域运算的次数<m的所有多项式的集合,所述“基础”二进制域GF(2)的元素为0和1,且所述两个域运算为加法和乘法,定义如下加法执行为对有序m元多项式系数的“异或”(XOR)运算,且乘法实施为作为域乘法的以某个m次“本原”二进制多项式为模的多项式乘法,其中“本原”二进制多项式是不可约的(不能进一步因数分解为较低次二进制多项式的积),且另外对于d<2m-1,不除尽形式为xd-1的任何二进制多项式。最重要和最一般的情形之一是m=8,其中每个这样的块表示为字节,且可以由任何种类的计算机方便地处理,所以下面的讨论针对字节是GF(256)的元素的情形,其中理解“字节”可以是2m维的Galois域的元素或“符号”,其中m≠8。允许GF(256)的构建的本原多项式是p(x)=x8+x4+x3+x2+1。在建立信息的基本单位(字节或符号)和对应的Galois域(GF)之后,待发送的信息被划分为相等大小k的符号的群,k基于码的所需错误校正能力而得到。每个这样的群称为“消息”。消息进一步被解释为k-1次的GF上的多项式M(x)M(x)=m0xk-1+m1xk-2+...+mk-1(1)其处于升序的系数mi是这样的信息符号它们处于它们从视作GF元素的位的原始流被获得的顺序。为了构造能够校t个错误的Reed-Solomon码,公知为生成器多项式的2t次多项式G(x)根据下面的公式来定义G(x)=(x-a2t-1)(x-a2t-2)...(x-a1)(x-a0)=x2t+g2t-1x2t-1+...+g0(2)其中a表示处理两个重要(和相关)特性的GF的所谓“本原”元素,这两个特性是首先,其满足方程p(a)=0,且第二,作为结果,GF的所有非零元素可表达为本原元素的幂并在GF乘法的运算下形成abelian(或交换)群。正是此特性允许创建“反对数”表,其建立了一种方便的方式来使用此表执行GF元素的乘法。然后得到消息多项式M(x)与x2t相乘除以生成器多项式G(x)的余数R(x)M(x)x2t=Q(x)*G(x)+R(x), (3)该余数是2t-1次的多项式,且最终此多项式的2t个系数用作校验符号,其附加到k个消息符号,形成k+2t个符号的串,该k+2t个符号包括系统形式的“码字”。码字的长度不应超过GF中非零元素的数目n-1。这样在通信信道上实际发送的消息可表示为多项式M(x)*x2t+R(x)=M(x)*x2t+r2t-1x2t-1+...+r0(4)其中rm是校验符号-允许检测和校正多达t个错误的冗余符号。因此,编码的任务在于执行其系数为某个GF的符号的多项式的除法。处理GF中的计算的传统软件方法基于使用两个查询表,其中存储了从GF符号的多项式形式到指数形式的变换以及相反的变换。此方法可概括(针对我们的主要情形GF(28))如下1.处于多项式形式的符号(GF的元素)表示为字节 b=(b7b6b5b4b3b2b1b0). (5)2.符号之和被获得为逐位的XOR运算f+g=f^g。3.处于多项式形式的本原元素a表示为a=(00000010),其在多项式表示法中对应于a(x)=x。4.每个非零符号s是本原元素a的某个升幂s=ak。使用利用二进制多项式的多项式代数操作,预先计算离散的对数表log_table和指数表exp_table以方便(非零)元素的指数(幂)与多项式(字节)表示之间的变换,使得如果ak=b,则k=log_table, b=exp_table. (6)为了使用这些表对GF符号做乘法,应执行下面的运算链,假定运算数u和v和结果r是以字节的形式GFMUL(u,v)=GFMUL(alog_table,alog_table)=a(log_table+log_table)%255(7)r=GFMUL(u,v)=exp_table+log_table)%255] (8)其中%表示模运算(x%255是x除以255的余数)。清楚的是,基于此方法的GF上的乘法结果的计算速度由这样的事实所限制,即需要对表进行多次访问,并且还应通过加法来计算到指数表中的条目的地址。在许多情形下,通过修改地址寄存器的访问需要2-3个等待周期,所以一个GF乘法的总时间可以是每符号(字节)10-12个时钟周期。这使得Reed-Solomon码的软件实施成为挑战性的问题-例如在188个数据字节和16个校验字节用以对一个码字进行编码的(204,188,16)Reed-Solomon码的典型情形下,需要188*16*(10-12)~=30-36K个周期,如下面所描述的。因此,例如,对于具有4K符号/秒的传输速率的ADSL应用,仅编码器操作的MIPS的总消耗就是120-144MIPS,这是极高的。
技术实现思路
根据本专利技术的第一方面,提供了一种用于对数据编码的方法。该方法包括(a)提供与码生成器系数相乘的第一分量值的第一表和与所述码生成器系数相乘的第二分量值的第二表,(b)基于消息符号和高阶余数符号确定Galois域元素,(c)将所述Galois域元素分成第一和第二分量,(d)使用所述第一分量和生成器系数索引访问所述第一表中的一个或多个第一表值,并使用所述第二分量和所述生成器系数索引访问所述第二表中的一个或多个第二表,(e)基于具有相等生成器系数索引的第一和第二表值以及先前余数符号确定当前余数符号,(f)针对所述码生成器的每个生成器系数执行步骤(e)以提供一组余数符号,以及(g)针对码字中的每个消息符号执行步骤(b)-(f)以提供一组最终余数符号,其构成将与所述码字的消息符号一起发送的校验符号。根据本专利技术的第二方面,提供了一种用于对数据编码的设备。该设备包括第一查询表,其包含与码生成器系数相乘的第一分量值;第二查询表,其包含与所述码生成器系数相乘的第二分量值;以及处理器。该处理器包括用于基于消息符号和高阶余数符号确定Galois域元素的装置;用于将Galois域元素分成第一和第二分量的装置;用于使用第一分量和生成器系数索引访问第一查询表中的一个或多个第一表值、并且用于使用第二分量和生成器系数索引访问第二查询表中的一个或多个第二表值的装置;以及用于针对码生成器的每个生成器系数、基于具有相等生成器系数索引的第一和第二表值以及先前余数符号确定当前余数符号提供一组余数符号的装置。码字的每个消息符号被处理以提供一组最终余数符号,其构成将与码字的消息符号一起发送的校验符号。附图说明为了更好地理解本专利技术,参考了附图,其通过参考合并于此,且其中图1是用于Reed-Solomon编码的现有技术方法的示意性块图; 图2是图示了用于Ree本文档来自技高网
...

【技术保护点】
一种用于对数据编码的方法,包括:(a)提供与码生成器系数相乘的第一分量值的第一表和与所述码生成器系数相乘的第二分量值的第二表;(b)基于消息符号和高阶余数符号确定Galois域元素;(c)将所述Galois域元素分成 第一和第二分量;(d)使用所述第一分量和生成器系数索引访问所述第一表中的一个或多个第一表值,并使用所述第二分量和所述生成器系数索引访问所述第二表中的一个或多个第二表;(e)基于具有相等生成器系数索引的第一和第二表值以及先前余 数符号确定当前余数符号;(f)针对码生成器的每个生成器系数执行步骤(e)以提供一组余数符号;以及(g)针对码字中的每个消息符号执行步骤(b)-(f)以提供一组最终余数符号,其构成将与所述码字的消息符号一起发送的校验符号。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:博里斯利贝罗尔李允荣
申请(专利权)人:模拟装置公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1