交叉循环码的编码方法与装置 【技术领域】
本发明关于一种编码方法,特别是一种关于交叉雷德-所罗门循环码(cross interleaved Reed-Solomon cyclic code,CIRC)的编码方法。
背景技术
现有数据记录系统的编码方法中,对于代码字进行编码而得到相对应的奇偶校验码的方法有许多种。代码字包含多个数据码元(data symbol)。现有的编码方法是将奇偶校验码置于这些数据码元的最后端,其编码的运算相当繁复且秏时。CIRC的编码方法则是将奇偶校验码置于这些数据码元之中,其编码的运算则较为简化且省时。以光盘片规格的CIRC RS(28,24)为例,其总共24个数据码元且最后希望产生4个奇偶校验码,现有CIRC的编码方法总计需要255个运算周期。
现有的编码方法或编码系统中,关于缩短运算周期及降低系统复杂度,还有许多改善的空间。
【发明内容】
本发明的主要目的为提供一种关于交叉雷德-所罗门循环码(CIRC)的编码方法及编码装置,以缩短运算周期并降低系统复杂度。
在实施例中,本发明提供一种编码方法,用来将代码字进行编码而得对应的奇偶校验码。该奇偶校验码置于该代码字中并将该代码字分隔以形成至少第一组数据码元以及第二组数据码元(the parity code havingintermediate symbol locations between a first and a second set of datasymbols)。这些数据码元的每一个都形成一系数。而该两组数据码元与奇偶校验码分别形成两组数据码元多项式M1(x)、M2(x)及奇偶校验码多项式R(x)。
依据所需的奇偶校验精确度经一过程来设计出第一码生成多项式(firstcode generator polynomial)G1(x)。依据预定的倒数置换过程(reciprocalsubstitution procedure),由该第一码生成多项式G1(x)生成(generating)第二码生成多项式G2(x)。产生第三多项式M3(x),其中该第三多项式M3(x)经过升幂排列(ascending order)后各项系数为该第二多项式M2(x)经过升幂排列后各项系数的相反顺序(reverse order)。
将该第一多项式M1(x)除以该第一码生成多项式G1(x),以得到第一余数多项式R1(x)。将该第三多项式M3(x)除以该第二码生成多项式G2(x),以得到第二余数多项式R2(x)。将该第一余数多项式R1(x)与该第二余数多项式R2(x)经过一相加过程,以得到该奇偶校验码多项式R(x)。利用该奇偶校验码多项式R(x)的各项系数以得出该奇偶校验码。
本发明的编码装置及方法,以一种CIRC的编码方法来对代码字进行编码,以得到相对应的奇偶校验码。以本发明的方法不仅可减少所需地运算周期且可降低系统的复杂度。
【附图说明】
图1为本发明编码方法的示意图。
图2为本发明编码装置的示意图。
图3为一实施例的示意图。
图中标号说明
30:代码字 32:奇偶校验码
34:第一组数据码元 36:第二组数据码元
50:编码装置 51:定时控制器
54:乘法器 56:寄存器
57:加法器 60:编码电路
70:输入端
【具体实施方式】
请参阅图1,图1用以说明本发明的编码方法。本发明的编码方法是用来对代码字(codeword)30进行编码,进而得到对应的奇偶校验码(paritycode)32。如图1所示,在实施例中,代码字30是以一种用于光盘片的交叉雷德-所罗门循环码(cross interleaved Reed-Solomon cyclic code,CIRC)编码方法来进行编码。奇偶校验码32置于代码字30中并将代码字30分隔,以形成第一组数据码元34以及第二组数据码元36(a first and a second setof data symbols)。第一组数据码元34与第二组数据码元36分别包含有12个数据码元,而奇偶校验码32包含有4个数据码元。
每一数据码元都形成一系数。第一组数据码元34所对应的系数为m23、m22、m21、...、m12;第二组数据码元36所对应的系数为m11、m10、m9、...、m0。由第一组数据码元34、第二组数据码元36以及奇偶校验码32分别形成第一多项式M1(x)、第二多项式M2(x)以及奇偶校验码多项式R(x),其中R(x)为欲求的多项式。此外,产生第三多项式M3(x),由第二多项式M2(x)将其系数转置而形成,其中第三多项式M3(x)经过升幂排列(ascending order)后各项系数为第二多项式M2(x)经过升幂排列后各项系数的相反顺序(reverseorder)。各多项式如下列:
第一多项式为M1(x)=m23x11+m22x10+...+m13x+m12;
第二多项式为M2(x)=m11x11+m10x10+...+m1x+m0;
第三多项式M3(x)=M0x11+m1x10+...+m10x+m11。
每一数据码元为一8位的数字数据,而其数值选自(0...255)的范围。这些数据码元的数值为经由预定的对应关系一一对应到一GF(28)域(GaloisField,伽罗瓦域)中的元素。这些数据码元为(0...255)共256个数值,以对应到该GF(28)域的(0、α0、α1...α254)共256个元素。亦即,这些系数(m0...m23)皆选自该GF(28)域中(0、α0、α1...α254)元素。
除了用于光盘片的交叉雷德-所罗门循环码,本发明的编码方法亦可用于其它以交叉雷德-所罗门循环码为概念的应用。而这些数据码元也可为任意位的数字数据。
本发明的编码方法中,依据所需的奇偶校验精确度(a desired parityresolution)来设计出第一码生成多项式G1(x),其中G1(x)=(x+α0)(x+α1)(x+α2)(x+α3)=α6+α78x+α249x2+α75x3+x4。并依据预定的倒数置换过程(reciprocal substitution procedure),由第一码生成多项式(first codegenerator polynomial)G1(x)生成(generating)第二码生成多项式G2(x),其中倒数置换过程将G1(x)=(x+α0)(x+α1)(x+α2)(x+α3)的α0、α1、α2及α3取倒数,使G2(x)=(x+α0)(x+α-1)(x+α-2)(x+α-3)。G2(x)乘开后再对应到该GF(28)域的(0、α0、α1..α254),可获得G2(x)=(x+α0)(x+α-1)(x+α-2)(x+α-3)=α249+α69x+α243x2+α72x3+x4。
将第一多项式M1(x)除以第一码生成多项式G1(x),以得到第一余数多项式R1(x)。然后将第三多项式M3(x)除以第二码生成多项式G2(x),以得到第二余数多项式R2(x)。将第一余数多项式R1(x)与第二余数多项式R2(x)经过一相加过程,以得到奇偶校验码多项式R(x)。再利用奇偶校验码多项式R(x)的各项系数以得出奇偶校验码32。
本发明的编码方法中,是以该GF(28)域的(0、α0、α1..α254)256个元素来取代这些数据码元的数值,而作为后续多项式计算时的系数。并且利用该GF(28)域的元素计算出奇偶校验码多项式R(x)之后,利用所得到奇偶校验码多项式R(x)的各项系数,经由该对应关系回推出相对应的数值,以形成奇偶校验码32。
上述的第一码生成多项式G1(x)与第二码生成多项式G2(x),并非唯一。亦可表示为G1(x)=C1(x+α0)(x+α1)(x+α2)(x+α3)及G2(x)=C2(x+α0)(x+α-1)(x+α-2)(x+α-3),C1与C2可为GF(28)域中(0、α0、α1...α254)的任一元素。即不同的G1(x)可对应一G2(x)。
此外,本发明的编码方法中,所需的奇偶校验精确度愈高,第一码生成多项式所包含的项次亦愈多,而奇偶校验码32也愈长。
本发明的编码方法实施在第一编码电路以及第二编码电路中(未显示于图1)。上述的相加过程详细说明如下。由该第一编码电路依序接收(m23、m22...m13、m12、0、0、0、0)共十六个输入,并相对应产生十六个输出,最后的四个输出依序定义为R3(1)、R2(1)、R1(1)、R0(1),即形成该第一余数多项式R1(x)=R3(1)+R2(1)x+R1(1)x2+R0(1)x3.]]>并且,由该第二编码电路依序接收(m0、m1...m10、m11、0、0、0、0)共十六个输入,并相对应产生十六个输出,最后的四个输出依序定义为R0(2)、R1(2)、R2(2)、R3(2),即形成该第二余数多项式R2(x)=R0(2)+R1(2)x+R2(2)x2+R3(2)x3.]]>将该第二余数多项式R2(x)的系数的顺序反转,即形成第三余数多项式R3(x)=R3(2)+R2(2)x+R1(2)x2+R0(2)x3.]]>然后,将第一余数多项式R1(x)以及第三余数多项式R3(x)相加,以得到奇偶校验码多项式R(x)=R3+R2x+R1x2+R0x3=R1(x)+R3(x)=(R3(1)+R3(2))]]>+(R2(1)+R2(2))x+(R1(1)+R1(2))x2+(R0(1)+R0(2))x3.]]>
请参阅图2,图2为本发明的编码装置50的示意图。图2所示的实施例中,本发明的编码装置50包含定时控制器51、八个乘法器54、八个寄存器56以及八个加法器57。四个乘法器54、四个寄存器56、一个输入端70以及四个加法器57组成第一编码电路50a;而另外的四个乘法器54、四个寄存器56、一个输入端70以及四个加法器57组成第二编码电路50b。第一编码电路50a及第二编码电路50b共享一个定时控制器51。
定时控制器51是用来发出定时控制信号以控制编码装置50的操作。每一个乘法器54是用来将一输入与一预先储存的系数相乘,以得到对应的输出。四个寄存器56形成四级串联的寄存器56,而每一级的寄存器56用来暂存对应乘法器54的输出,而形成该级寄存器56的暂存数据。每一个加法器57会依据该定时控制信号的控制,将一乘法器54的输出与上一级寄存器56的暂存数据相加,以对下一级寄存器56的暂存数据加以更新。
每一编码电路50a、50b的这些寄存器56的初始值可为0或GF(28)域的(0、α0、α1...α254)任意一个元素。这些寄存器56的初始值为已知,仅需在运算出相对应该初始值的奇偶校验码32后,再将奇偶校验码32减去已知的这些寄存器56的初始值,即可得一欲求的奇偶校验码32。
在第一编码电路50a中,首先,将G1(x)的系数α6、α78、α249、α75分别由左到右预先存入四个乘法器54。此时,第一编码电路50a包含四个分别预先储存有系数α6、α78、α249以及α75的GF乘法器54、四个寄存器56以及四个GF加法器57。而四个寄存器56在初始状态的暂存数据皆为0。经由该定时控制信号的控制,再在输入端70依序接收第一多项式M1(x)的系数,依序由高次项至低次项输入M1(x)系数(m23、m22..、0、0、0、0)共十六个系数作为乘法器54的输入,并相应产生十六个输出,最后的四个输出依序定义为R3(1)、R2(1)、R1(1)、R0(1),即形成该第一余数多项式R1(x)=R3(1)+R2(1)x+R1(1)x2+R0(1)x3.]]>
第二编码电路50b中,首先将G2(x)的系数α249、α69、α243、α72由左到右预先存入四个乘法器54。此时,第二编码电路50b则包含四个分别预先储存有系数α249、α69、α243以及α72的GF乘法器54、四个寄存器56以及四个GF加法器57。依据该定时控制信号的控制,再在输入端70依序接收第三多项式M3(x)的系数,由高次项至低次项输入M3(x)系数(m0、m1..m11、0、0、0、0)共十六个输入,并相对应产生十六个输出,最后的四个输出依序定义为R0(2)、R1(2)、R2(2)、R3(2),即形成第二余数多项式R2(x)=R0(2)+R1(2)x+R2(2)x2+R3(2)x3.]]>将第二余数多项式R2(x)的系数的顺序反转,即形成第三余数多项式
R3(x)=R3(2)+R2(2)x+R1(2)x2+R0(2)x3.]]>
将第一余数多项式R3(x)以及第三余数多项式R3(x)相加,以得到奇偶校验码多项式R(x)=R3+R2x+R1x2+R0x3=R1(x)+R3(x)=(R3(1)+R3(2))+(R2(1)+R2(2))x+]]>(R1(1)+R1(2))x2+(R0(1)+R0(2))x3.]]>由奇偶校验码多项式R(x)的各项系数(R3、R2、R1、R0),配合该对应关系即可回推出相对应的数值,以得出奇偶校验码32。
以上所提及的实施例,是以两个编码电路来作运算,每个编码电路并不复杂,因此本发明可降低系统的复杂度。此外,本发明为CIRC的编码方法,编码的运算则较为简化且省时。
本发明亦可仅以一个编码电路来进行编码动作,只需在运算输入M1(x)及M3(x)的系数时,将G1(x)与G2(x)的系数依序存入乘法器54,即可达到同样的功效。
请参阅图3,图3为本发明的另一实施例编码装置50的编码电路60及推导多项式的示意图。图3的编码装置60可以取代图2的编码装置50a,50b。在编码电路60中,可同时输入两组数据,亦即,一个脉冲处理两笔数据。由图3的推导知,当输入m(n-1)、m(n)以及前一次的余数r3(n-1)、r2(n-1)、r1(n-1)、r0(n-1)时,就直接可得到下一次的余数r3(n+1)、r2(n+1)、r1(n+1)、r0(n+1)。m(n-1)及m(n)在一周期内同时输入,一个周期后就可以得到两个步骤后的余数结果。其中(n)代表现在周期,(n-1)为前一周期,(n+1)为后一周期,依此类推。同时输入三组以上数据的电路也可以类似方法得到。
本发明的编码方法,亦可利用数字信号处理器(DSP,Digital SignalProcessor)来进行。
综上所述,本发明的编码装置50及方法,以一种CIRC的编码方法来对代码字30来进行编码,以得到相对应的奇偶校验码32。本发明的方法不仅可减少所需的运算周期,而且可降低系统的复杂度。
通过以上优选实施例的详述,希望能更加清楚描述本发明的特征与精神,而并非以上述所公开的优选实施例来对本发明的范畴加以限制。相反地,其目的是希望将各种改变及类似安排涵盖在本发明的权利要求的范畴内。