里德-所罗门编码装置与编码方法

文档序号:6416509阅读:617来源:国知局
专利名称:里德-所罗门编码装置与编码方法
技术领域
本发明涉及数字信号处理的误差校正中广泛采用的进行多误差校正的里德-所罗门编码装置与编码方法。
在各种大容量存储装置的存储信息以及高速通信的传输信息等之中,广泛将里德-所罗门代码用作可能校正多重误差的代码。
里德-所罗门代码是在以P(x)为原始多项式,以α为P(x)=0的根时,将此根α作为原始元的加罗华(Galois)域上的代码。在此,考虑以t为误差校正数、m为扩展域的次数,而以α0、α1、…、α2m-2为加罗华域GF(2m)的原始元的码长n=2m-1的里德-所罗门代码。根据这种代码,m位为1处理单位即1个符号。原始信息量为(n-2t)个符号。在以下的说明中,取m=8,1符号由8位即1字节表示。1分组的接收数据由n个符号组成。此符号数n称为码长。在t=8时,能够作8个符号的误差校正。这里,为了对接收数据中的原始信息(n-2t)个符号进行信息数据的误差校正,将附加的2t代码称作为检查数据。
里德-所罗门代码的编码装置是在(n-2t)个符号的信息数据中附加上2t个符号的检查数据,生成码长为n的代码列组成的代码数据。
下面说明里德-所罗门代码(以下称作RS代码)的编码算法。
首先描述确定里德-所罗门编码的第一要素即原始多项式。
考虑m=8的情形,加罗华域的原始元共有从α0到α254共255个,各原始元的向量值由原始多项式确定。
一般,当m=8时,原始多项式多采用P(x)=X8+X4+X3+X2+1这时,原始元的向量值为α0=00000001α1=00000010α2=00000100α3=00001000α4=00010000α5=00100000
α6=01000000α7=10000000α8=00011101α9=00111010现在说明这种向量值的决定方法。m=8时,向量值表现为8位,从α0到α7,次数逐个加1,成为顺次向左位移位的值。α8是把α代入原始多项式P(x)中,置P(α)=0而按下述方法求出。在加罗华域中的计算,由于加和减是相同的,故由P(α)=α8+α4+α3+α2+1=0即得α8=α4+α3+α2+1于是有α8=00011101,而α9则是使α8进行向左的位移位的结果。
这样,原始元具有有规则地确定的向量值,随着次数的增加而向左进行位移位,当最上位的位值为1时,在使其向左作位移位后,对αm=α8=00011101进行加法计算的值即成为下一方次数的向量值。但是,加罗华计算中的加法运算相当于各向量值的“异”。
RS代码是加罗华域上的代码,加罗华域的原始元,例如在m=8时,是由采用255个原始元计算所确定的代码。因此,若是各原始元具有不同的向量值时,即使假定采用相同的计算步骤,也会成为完全不同的代码。这就是说,当采用不同的原始多项式时,得到的是完全不同的RS代码。
下面说明作为确定里德-所罗门编码的第二要素的生成多项式。
t重误差校正的RS代码按下述方式生成。在把输入数据的n-2t个原始信息作为信息多项式表示时,由以下所示的生成多项式去除此信息多项式,求出剩余多项式。然后把作为剩余多项式算出的2t个检查数据附加到(n-2t)个原始信息数据即信息语言上,作为码长为n的里德-所罗门代码。
码长n≤2m-1、误差校正数t而最小距离dmin≤2t+1的多误差校正RS代码的生成多项式,一般如以下所示,但是信息语言的相应数据长度或字长k=n-2t。
G(x)=(x-α0)(x-α1)(x-α2)…(x-α2t-1)=Πi=02t-1(x-αi)]]>=x2t+c2t-1x2t-1+c2t-2x2t-2+c2t-3x2t-3+…+c2x2+c1x+c0…(1)于是,把k个信息数据ak-1、ak-2、…、a2、a1、a0由下式表示I(X)=ak-1Xn-1+ak-2Xn-2+…+a1X2t+1+a0X2t(2)由(1)式去除(2)式所得的剩余多项式R(X)即成为检查多项式,此检查多项式的2t个系数即成为检查数据。也就是I(X)=Q(x)G(x)+R(x)由于加罗华计算中的加减法相同,R(x)=Q(x)G(x)+I(x)=b2t-1X2t-1+b2t-2X2t-2+b2t-3X2t-3+…+b1X+b0这里,I(x)信息多项式;G(x)生成多项式;Q(x)商多项式;R(x)剩余多项式。
于是,全体的代码多项式X(x)成为X(x)=I(x)+R(x)=ak-1xn-1+ak-2xn-2+…+a1x2t+1+a0x2t+b2t-1x2t-1+b2t-2x2t-2+…+b1x+b0…(3)此(3)式所示的代码多项式X(x)中n个系数ak-1、ak-2、…、a2、a1、a0、b2t-1、b2t-2、…b1、b0便是里德-所罗门代码。
这里,生成多项式(1)中的i个初始值,对于通信系统中传送的RS代码,一般如上所述是采用i=0,但对于磁盘系统中的RS代码,普遍多采用i=120。
取决于此i的开始值,在将(1)式展开时的各个系数C会完全不同,因而剩余多项式的系数b也完全不同,与原始多项式的情形相同,当生成多项式不同,即使采用完全相同的程序编码,也会得到完全不同的RS代码。
下面说明RS编码算法的硬件实现。
RS代码是由信息多项式的各系数组成的信息数据和用生成多项式去除此信息多项式而求得的剩余多项式的系数组成的检查数据两者构成。
因此,在求此剩余多项式时,为了顺次地用生成多项式的系数去除信息多项式的系数,就需用信息多项式的各系数和生成多项式(1)中各次幂的系数C,进行乘法和加法计算,用于实现这种除法的硬件,一般是由用来进行生成多项式(1)中各次幂的系数C(各次幂的系数为定值)和信息多项式的各个系数运算的加罗华域的乘法器、加罗华域的加法器和保持这些计算结果的移位寄存器等构成,这与现有的情形相同。
图6是特许第2591611号中公开的,示明现有的RS编码装置误差校正编码电路结构的框图,输入数据为信息多项式的各个系数,在把它们输送到末级的寄存器即寄存器605后,此信息多项式的最高次幂的系数和生成多项式各系数g0~g2t-1的相乘结果,即从乘法电路611~615,也即从乘法器一一输出,加到各寄存器601~605中所存储的信息多项式的系数值上。由此,一次除法运算成立,从而存储于各寄存器601~605中的数据能逐一地移位。这样,通过顺次地反复进行这种除法运算,就可以求得商多项式,而不传送到末级寄存器605中的剩留在其他寄存器601~604中的值便成为剩余多项式的系数。
在此,作为生成多项式各次幂的系数采用预先求得的固定值,为此,用于进行生成多项式和信息多项式二者的系数计算中加罗华域的乘法运算的乘法器,就可以采用称作系数器的固定值乘法器。由于RS代码是循环码,故可通过位移位计算来实现乘法运算。
但是,系数器的位移位计算中,它的位移位规则性是由原始多项式确定,更具体地说,是由αm的值决定,即使假定进行完全相同的固定值乘法运算,当原始多项式不同时,就必须进行完全不同的位移位计算。于是,当原始多项式改变时,就会有不能编成误差校正码的问题。此外,假定能够编成误差校正码,为此就存在着需要准备对应于各原始多项式的完全不同的系数器以及具备有这种系数器的乘法器等问题。
再有,生成多项式(1)中i的初始值因所用RS代码的系统而异。前面已经述及,在通信系统中一般取i=0或1,而在磁盘系统中,一般多用i=120。生成多项式(1)中各次幂的系数C当i的初始值一定即成为固定值,而当i改变,各次幂的系数C也成为完全不同的固定值。因此,当生成多项式改变时,就需准备与各生成多项式相对应的各次幂的系数。但是,作为生成多项式的各系数值当前总是相对于单一的生成多项式预先求出,应用这种系数值去对信息多项式进行除法运算,因而当生成多项式改变时就有不能生成误差校正码的问题。
再有,当误差校正数变化时,误差校正码生成电路级数也需变化。例如在图6中,当误差校正数减少1时,就需将级数设定为2t-2。但是,图6所示的备有误差校正码生成电路的现有的RS编码装置不能变更级数,从而存在着不能改变误差校正数的问题。
于是,在现有的里德-所罗门的编码装置和编码方法中,不论是否采用完全相同的算法和按相同的步骤进行计算,当原始多项式、生成多项式与误差校正数不同,就有不能进行RS编码的问题。此外,假定不同的原始多项式、生成多项式以及误差校正数相对应时,也极难有共同的硬件,由于必须准备能分别对应于原始多项式、生成多项式误差校正数的变化而变换的系数器,就会有电路规模庞大的问题。因此,一般地说,几乎都是对应于一种原始多项式和生成多项式的RS编码器。
本发明的目的即在于提供能对应于原始多项式、生成多项式以及误差校正数的变化,来进行里德-所罗门编码的里德-所罗门编码装置和编码方法,由此而解决上述的种种问题。
本发明的里德-所罗门编码装置包括生成多项式系数的生成装置,它把设扩展域的次数为m(m≥1,m为整数)而原始元之一为α时生成多项式为0的情况下作为α的幂乘的根中幂数为最小的原始元即生成初始值和αm的值即原始多项式的设定值输入,对应于生成初始值或原始多项式值中至少一个的变化,展开生成多项式而生成由各次幂的系数组成的系数数据;数据编码装置,它把信息数据和上述系数数据输入,应用此系数数据,对应生成初始值或原始多项式设定值的变化,去除上述信息数据,把通过此除法运算求得的余数数据与上述信息数据相结合,形成里德-所罗门的编码数据。
在上述里德-所罗门编码装置之中,所述生成多项式系数生成装置和数据编码装置备有多个乘法器,此种乘法器是由通过使原始元α位移位的结果,使原始元α位移位的结果和原始多项式设定值αm的“异”相结合,而进行原始元α的乘法运算的系数器作(m-1)级串联而成。
再有,在上述里德-所罗门编码装置中,使所述系数器在每次使原始元α进行乘法运算,将生成初始值的向量值向左作1位移位所得的结果顺次输出的同时,输出当最上位的位为1,次数增加时上述原始元α的位位移结果和原始多项式设定值αm的“异”。
在上述里德-所罗门编码装置中,所述生成多项式的系数生成装置包括设误差校正数为t(t≥1,t为整数)时,相对于生成初始值重复进行原始元α的乘法运算,而在每次循环后输出乘法计算结果的第2t乘法器;在把生成初始值和上述乘法器的计算结果相乘后,将此相乘计算结果与前述第2t的乘法计算结果反复进行乘法运算的第0乘法器;将第0乘法器的输出一面进行数据更新一面保持的第0寄存器;将第0寄存器的输出作为一方的输入进行两个输入的加法运算的第1加法器;将此第1加法器的输出作顺次更新的同时加以保持的第1寄存器;将此第1寄存器的输出与上述第2t乘法器的输出进行相乘,并将此相乘结果输入上述第1加法器另一方输入中的第1乘法器;将第(N-1)寄存器(2t-1≥N≥2,N为整数)的输出为一方的输入,进行两个输入的加法运算的第N加法器;将此第N加法器的输出在顺次更新的同时并保持的第N寄存器;将此第N寄存器的输出与上述第2t乘法器的输出进行乘法计算,而将其结果输入上述第N加法器另一方输入的第N乘法器;而将前述第0~第(2t-1)寄存器中各自保持的数据作为生成多项式的系数数据输出。
在上述里德-所罗门编码装置中,所述数据编码装置包括设误差校正数为t(t≥1,t为整数)时,对上述生成多项式的系数数据的第0次值和信息数据进行乘法运算的第0乘法器;保持第0乘法器的输出的第0寄存器;进行生成多项式的系数数据的第R(2t-2≥R≥1,R为整数)次的值与信息数据的乘法运算的第R乘法器;进行第R乘法器的输出和第(R-1)寄存器中所保持的数据的加法运算的第(R-1)加法器;保持第(R-1)加法器的输出的第R寄存器;进行生成多项式的系数数据中第(2t-1)次值和信息数据的乘法运算的第(2t-1)乘法器,进行第(2t-1)乘法器的输出和第(2t-2)寄存器中保持的数据的加法运算的第(2t-2)加法器;保持第(2t-2)加法器的输出的第(2t-1)寄存器;以及进行第(2t-1)寄存器的输出和信息数据的加法运算的第(2t-1)加法器。
在上述里德-所罗门编码装置中,所述各乘法器具有将成为被乘数的输入数据顺次乘以原始元α而输出的串联的多个系数器;取成为乘数的输入数据的比特数据和上述各系数器的输出的“与”的多个门电路;以及取此多个门电路各个输出的“异”的门电路。
在上述里德-所罗门编码装置中,所述系数器包括在使成为被乘数的输入数据最上位位以外的位进行位移位加以保持的同时,对该位移位数据中作为最下位的数据附加0而输出的寄存器;以上述输入数据的最上位位作为输入,在该最上位位为1时,选择原始多项式的设定值和上述寄存器的输出的“异”而输出,而当该最上位位为0时,选择上述寄存器的输出而输出的选择器。
在上述里德-所罗门编码装置中,所述生成多项式系数生成装置是在以误差校正数t(t≥1,t为整数)作为输入时,对应于此误差校正数t的变化,展开生成多项式,生成由各次幂的系数组成的系数数据;而所述数据编码装置则是在把误差校正数t作为输入时,对应于误差校正数t的变化而对前述信息数据进行除法运算的。
在上述里德-所罗门编码装置中,使误差校正数的最大值为S(S≥t,S为整数)时,所述数据编码装置包括进行上述生成多项式系数数据的第0次值和信息数据的乘法运算的第0乘法器;保持第0乘法器的输出的第0寄存器;进行生成多项式的系数数据的第(2M-1)(S-1≥M≥1,M为整数)次的值和信息数据的乘法运算的第(2M-1)乘法器;进行生成多项式系数数据的第2M次值和信息数据的乘法运算的第2M乘法器;进行第2M乘法器的输出和保持于第(2M-1)寄存器中数据的加法运算的第(2M-1)加法器;保持第(2M-1)加法器的输出的第M寄存器;进行第2M乘法器的输出和第(2M-1)寄存器中保持的数据的加法运算的第(2M-1)加法器;选择第(2M-1)加法器的输出和第2M乘法器的输出的第2M选择器;保持第2M选择器的输出的第2M寄存器;进行生成多项式系数数据的第(2S-1)次值和信息数据的乘法运算的第(2S-1)乘法器;进行第(2S-1)乘法器的输出和第(2S-2)寄存器中保持的数据的加法运算的第(2S-2)加法器;以及保持第(2S-2)加法器的输出的第(2S-1)寄存器,而相对于输入的误差校正数t,前述第2(S-t)选择器将选择第2(S-t)乘法器的输出。
本发明的里德-所罗门编码方法在设扩展域的次数为m(m≥1,m为整数)且原始元之一为α时生成多项式为0的情况下作为α的幂乘的根中幂数为最小的原始元即生成初始值和αm的值即原始多项式的设定值作为输入,对应于生成初始值或原始多项式设定值中至少一方的变化,展开生成多项式而生成各次幂的系数组成的系数数据,把信息数据和上述系数数据作为输入,应用该系数数据,对应于生成初始值或原始多项式设定值的变化,去除上述信息数据,把由此除法求得的余数数据与上述信息数据相结合,形成里德-所罗门编码数据。
在上述里德-所罗门编码化方法中,所述生成多项式的展开是把误差校正数t(t≥1,t为整数)作为输入,对应于此误差校正数t的变化来进行的;而所述信息数据的除法运算则是在把误差校正数t作为输入,对应于此误差校正数t的变化来进行的。
如上所述,根据本发明,能有效地提供对应于原始多项式或生成多项式变化的里德-所罗门编码装置,这是因为此装置包括生成多项式系数的生成装置,它把扩展域的次数为m(m≥1,m为整数)而原始元之一为α时生成多项式为0的情况下作为α的幂乘的根中幂数为最小的原始元即生成初始值和αm的值即原始多项式的设定值输入,对应于生成初始值或原始多项式值中至少一个的变化,展开生成多项式而生成由各次幂的系数组成的系数数据;数据编码装置,它把信息数据和上述系数数据输入,应用此系数数据,对应生成初始值或原始多项式设定值的变化,去除上述信息数据,把通过此除法运算求得的余数数据与上述信息数据相结合,形成了里德-所罗门的编码数据,因此,即使是原始多项式或生成多项式变化时,通过把与之相对应的生成初始值或原始多项式设定值输入,也能展开生成多项式而生成由各次幂系数组成的系数数据而实现信息数据的里德-所罗门编码。
根据本发明,能有效地提供对应于原始多项式变化的里德-所罗门编码装置,这是因为其中所述生成多项式系数生成装置和数据编码装置备有多个乘法器,此种乘法器是由通过使原始元α位移位的结果、使原始元α位移位的结果和原始多项式设定值αm的“异”相组合,而进行原始元α的乘法运算的系数器作(m-1)级串联而成,因此,当原始多项式变化时,通过输入原始多项式的设定值,就可以进行对应于变化后的原始多项式的加罗华运算。
根据本发明,能有效地提供对应于原始多项式变化而进行里德-所罗门编码的里德-所罗门编码装置,这是因为其中使所述系数器在每次使原始元α进行乘法运算,将生成初始值的向量值向左作1位移位所得的结果输出的同时,输出当最上位位为1,次数增加时上述原始元α的位位移结果和原始多项式设定值αm的“异”,因此,当原始多项式变化时,通过输入原始多项式的设定值,也能进行与变化后的原始多项式相对应的加罗华乘法。
根据本发明,能有效地提供对应于生成多项式的变化而进行里德-所罗门编码的里德-所罗门编码装置,这是因为其中所述生成多项式的系数生成装置包括有设误差校正数为t(t≥1,t为整数)时,相对于生成初始值重复进行原始元α的乘法运算,而在每次循环后输出乘法计算结果的第2t乘法器;在把生成初始值和上述乘法器的计算结果相乘后,将此相采结果与前述第2t的乘法计算结果反复进行乘法运算的第0乘法器;将第0乘法器的输出一面进行数据更新一面保持的第0寄存器;将第0寄存器的输出作为一方的输入的进行两个输入的加法运算的第1加法器;将此第1加法器的输出作顺次更新的同时加以保持的第1寄存器;将此第1寄存器的输出与上述第2t乘法器的输出进行相乘,并将此相乘结果输入上述第1加法器另一方输入中的第1乘法器;将第(N-1)寄存器(2t-1≥N≥2,N为整数)的输出为一方的输入,进行两个输入的加法运算的第N加法器;将此第N加法器的输出在顺次更新的同时并保持的第N寄存器;将此第N寄存器的输出与上述第2t乘法器的输出进行乘法运算,而将其结果输入上述第N加法器另一方输入的第N乘法器;可将前述第0~第(2t-1)寄存器中各自保持的数据作为生成多项式的系数数据输出,于是,在生成多项式变化时,通过输入生成初始值,即可对应于变化后的生成多项式,展开此生成多项式而生成系数数据。
根据本发明,能有效地提供可对应于原始多项式变化而进行里德-所罗门编码的里德-所罗门编码装置,这是因为其中所述数据编码装置包括有设误差校正数为t(t≥1,t为整数)时,对上述生成多项式的系数数据的第0次值和信息数据进行乘法运算的第0乘法器;保持第0乘法器的输出的第0寄存器;进行生成多项式的系数数据的第R(2t-2≥R≥1,R为整数)次的值与信息数据的乘法运算的第R乘法器;进行第R乘法器的输出和第(R-1)寄存器中所保持的数据的加法运算的第(R-1)加法器;保持第(R-1)加法器的输出的第R寄存器;进行生成多项式的系数数据中第(2t-1)次值和信息数据的乘法运算的第(2t-1)乘法器;进行第(2t-1)乘法器的输出和第(2t-2)寄存器中保持的数据的加法运算的第(2t-2)加法器;保持第(2t-2)加法器的输出的第(2t-1)寄存器以及进行第(2t-1)寄存器的输出和信息数据的加法运算的第(2t-1)加法器。
根据本发明,能有效地提供对应于原始多项式变化而进行里德-所罗门编码的里德-所罗门编码装置,这是因为其中所述系数器包括有在使成为被乘数的输入数据最上位位以外的位进行位移位加以保持的同时,对该位移位数据中作为最下位的数据附加上0而输出的寄存器;以上述输入数据的最上位位作为输入,在该最上位位为1时,选择原始多项式的设定值和上述寄存器的输出的“异”而输出,而当该最上位位为0时,选择上述寄存器的输出而输出的选择器。
根据本发明,能有效地提供可对应于误差校正数t的变化而进行里德-所罗门编码的里德-所罗门编码装置,这是因为其中所述生成多项式系数生成装置是在以误差校正数t(t≥1,t为整数)作为输入时,对应于此误差校正数t的变化,展开生成多项式,生成由各次幂的系数组成的系数数据;而所述数据编码装置则是在把误差校正数t作为输入,对应于误差校正数t的变化而对所述信息数据进行除法运算的,于是可对应于误差校正数t展开生成多项式,对信息数据进行除法运算而求出余数数据,而得以对应于误差校正数t的变化来实现里德-所罗门编码。
根据本发明,能有效地提供对应于误差校正数t的变化而进行里德-所罗门编码的里德-所罗门编码装置,这是因为设误差校正数的最大值为S(S≥t,S为整数)时,所述数据编码装置包括有进行上述生成多项式系数数据的第0次值和信息数据的乘法运算的第0乘法器;保持第0乘法器的输出的第0寄存器;进行生成多项式的系数数据的第(2M-1)(S-1≥M≥1,M为整数)次的值和信息数据的乘法运算的第(2M-1)乘法器;进行生成多项式系数数据的第2M次值和信息数据的乘法运算的第2M乘法器;进行第2M乘法器的输出和保持于第(2M-1)寄存器中数据的加法运算的第(2M-1)加法器;保持第(2M-1)加法器的输出的第M寄存器;选择第(2M-1)加法器的输出和第2M乘法器的输出的第2M选择器;保持第2M选择器的输出的第2M寄存器;进行生成多项式系数数据的第(2S-1)次值和信息数据的乘法运算的第(2S-1)乘法器;进行第(2S-1)乘法器的输出和第(2S-2)寄存器中保持的数据的加法运算的第(2S-2)加法器;以及保持第(2S-2)加法器的输出的第(2S-1)寄存器,而相对于输入的误差校正数t,前述第2(s-t)选择器将选择第2(s-t)乘法器的输出。
根据本发明,能有效地提供可对应于原始多项式或生成多项式的变化而进行里德-所罗门编码的里德-所罗门编码方法,这是因为此方法是在设扩展域的次数为m(m≥1,m为整数)且原始元之一为α时生成多项式为0的情况下作为a的幂乘的根中幂数为最小的原始元即生成初始值和αm的值即原始多项式的设定值作为输入,对应于生成初始值或原始多项式设定值中至少一方的变化,展开生成多项式而生成各次幂的系数组成的系数数据,把信息数据和上述系数数据作为输入,应用该系数数据,对应于生成初始值和原始多项式设定值的变化,去除上述信息数据,把由此除法求得的余数数据与上述信息数据相结合而形成里德-所罗门编码数据,于是,即使是原始多项式或生成多项式变化,通过输入与它们相对应的生成初始值或原始多项式设定值,展开原始多项式而生成由各次幂的系数组成的系数数据,由此即可实现信息数据的里德-所罗门编码。
此外,根据本发明,能有效地提供可对应于误差校正数t的变化而进行里德-所罗门编码的里德-所罗门编码方法,这是因为所述生成多项式的展开是在把误差校正数t(t≥1,t为整数)作为输入,对应于此误差校正数t的变化来进行的;而所述信息数据的除法运算则是在把误差校正数t作为输入,对应于此误差校正数t的变化来进行,于是,可以对应于误差校正数t展开生成多项式,对信息数据进行除法运算而求得余数数据,而得以对应于误差校正数t的变化来实现里德-所罗门编码。


图1是示明本发明实施形式的里德-所罗门编码装置结构的框图。
图2示明本发明实施形式的里德-所罗门编码装置中生成多项式系数生成块的结构。
图3示明本发明实施形式的里德-所罗门编码装置中数据编码块的结构。
图4示明本发明实施形式的里德-所罗门编码装置中加罗华乘法器的结构。
图5示明本发明实施形式的里德-所罗门编码装置中系数器的结构。
图6示明既有的里德-所罗门编码装置的误差校正码生成电路。
图7示明本发明实施形式的里德-所罗门编码装置中数据编码块变形例的结构。
以上附图中各标号的意义如下1,生成多项式系数生成程序块;2,数据编码块;3,生成多项式系数生成初始值;4,原始多项式设定值;5,误差校正数数据;6,码长数据;7,信息数据;8,原始多项式系数数据;9,编码数据;10,控制块;11,系数计算终结指示信号;12,系数器数据选择器控制信号;13,加法器数据选择器控制信号;14,乘法器数据选择器控制信号;15,输入数据选择器控制信号;16,移位数据选择器控制信号;20~25、80~87、80a、86a、87a,加罗华乘法器;31~35,乘法器数据选择器;40,系数器数据保持寄存器;41,初始值数据输入寄存器;42~46,系数数据保持寄存器;50~55,输入数据选择器;60~63、110~116、115a、116a、117a,加罗华加法器;70,控制块;71,冗余部指示信号;72,选择器控制信号;73,输入/输出数据控制信号;90~97、90a、95a、96a、97a,数据保持寄存器;100,输入数据寄存器;101,输出数据寄存器;120~122,数据选择器;130、131,输入数据选择器,132,输出数据选择器;141~147,系数器;151~158,与门;160,“异”门;211,输出选择器;301,第1数据;302,第2数据;303,数据;601~605,寄存器;611~615,乘法器;621~625,加法器。
下面描述本发明的实施形式图1为概示本发明实施形式的里德-所罗门编码装置结构的框图,由生成多项式系数生成块1和数据编码块202两种功能块组成。生成多项式系数生成块1以生成多项式系数生成初始值(以下称作生成初始值)3、原始多项式设定值4和误差校正数5作为输入,而把生成多项式系数数据8输出给数据编码块2。数据编码块2把原始多项式设定值4、最大误差校正数S(S≥1,以下称作最大校正数)时定义误差校正数t(S≥t≥1,t为整数)的误差校正数数据5、码长数据6、信息数据7和生成多项式系数数据8作为输入,而输出里德-所罗门编码的编码数据9。
下面说明本实施形式的里德-所罗门编码装置。为便于说明,设误差校正数t=10,码长数据6即信息数据7的码长为225。再设扩展域的次数m=8。
首先设生成多项式为G(x)=(x-α0)(x-α1)(x-α2)…(x-α2t-1)在此,由于t=10,G(x)=(x-α0)(x-α1)(x-α2)…(x-α19)再设原始多项式P(x)=X8+X4+X3+X2+1这里,如同先有技术中所说明的,原始元具有可规则地确定的向量值,它随着次数的增加而向左位移位的同时,当最上位位为1而使其向左位移位后,对αm的向量值进行加法计算后即成为下一方幂的向量值。于是,求出原始元α的方幂之一αm=α8,设其为原始多项式设定值4,就可用于加罗华计算。
例如,当原始多项式为上述的P(x)时,设P(α)=0,则α8=α4+α3+α2+1此α8的向量表示值即成为α8=00011101。
使此α8的向量值作为16进位表示的值同时使“1d”作为原始多项式设定值4输入,进行编码计算。这虽然可以起到补充作用,但在此要是假定P(x)=X8+X7+X2+X+1则α8=10000111,而原始多项式设定值4按16进位表示成为“87”。由于这样地使用原始多项式,原始多项式设定值4会是不同的。
下面说明生成多项式,在将此生成多项式设定为0时,将作为幂乘的根中幂数为最小的原始元作为生成多项式生成初始值3预先求出。例如设G(x)=(x-α0)(x-α1)(x-α2)…(x-α19)生成初始值3成为以16进位表示的α0的向量值的值。要是生成多项式为G(x)=(x-α120)(x-α121)(x-α122)…(x-α139)则生成初始值3成为以16进位表示的α120的向量值的值。以16进位表示的这一向量值的值由于是由原始多项式确定,例如当原始多项式为P(x)=X8+X4+X3+X2+1时,α120成为“3b”,而当P(x)=X8+X7+X2+X+1时,α120即成为“e1”。这样,可根据预先使用的生成多项式求出生成初始值3。此外,α0对于生成初始值3的情形,不论原始多项式如何都成为“01”。
在整理各数据时,在本实施形式中,为便于说明,取生成多项式的初始值3为“01”(16进位)、原始多项式设定值4为“1d”(16进位)、误码校正数5为t=10(10进位),码长数据6为255(10进位),而信息数据7则顺次作为字节数据输入。
现在概略说明生成多项式系数生成块1。生成多项式系数生成块1是使生成多项式顺次展开的结果,首先根据生成多项式系数生成初始值3,生成使生成初始值倍乘α的α1,应用此值,展开以下的两项(x2-Ax-B)(x-α2)(其中A=α0+α1,B=α0×α1)计算系数。即计算α0+α1、α0×α1,保持计算数据。然后,根据所保持的α1,α倍乘该值生成α2,保持此值,计算展开上式时的系数。也即计算A+α2、A×α2+B、B×α2,保持各值。
这样,顺次有α3、α4、…,算出展开生成多项式时所必要的加罗华域的原始元,同时重复展开G(x)的各项的计算而求得系数,算出最高次幂系数的值“1”以外的20个值,保持后,作为生成多项式系数数据8,输出给数据编码块2。生成多项式系数生成块1的详细结构以后说明。
下面说明数据编码块2。由于码长为255、误差校正数为10,在数据编码块2中可顺次输入255-2×10=235个信息数据7。设此信息数据为a234、a233、…、a0,如同先有技术中所说明的,信息多项式可设为I(x)=a234x254+a233x253+…+a1x21+a0x20另一方面,设由生成多项式系数生成块1算出,输入的系数数据为C19、C18、…、C0,则生成多项式成为G(x)=x20+C19x19+C18x18+C17x17+…+C2X2+C1X+C0数据编码块2具有这样的功能算出由G(x)去除上述I(x)获得的剩余多项式R(x),而使组合此I(x)和R(x)而得的里德-所罗门编码的编码多项式X(x)的各系数数据输出。也就是,由于有表示式I(x)=Q(x)G(x)+R(x)而有R(x)=Q(x)G(x)+I(x)=b19x19+b18x18+…+b1x+b0于是,编码多项式成为X(x)=I(x)+R(x)=a234x254+a233x253+…+a1x21+a0x20+b19x19+b18x18+…+b1x+b0从而,里德-所罗门编码数据输出上述编码多项式的系数a234、a233、…、a0、b19、 b18、…、b0共255个数据。此剩余多项式R(x)的算出是以生成多项式中各次幂的系数去除信息多项式的各次幂的系数而实现的。后面还将描述数据编码块2的内部结构。
图2是示明生成多项式系数生成块1的结构的电路图,包括进行系数计算控制的控制块10;第0、第1、第2、第N(3≤N≤2S-2,N为整数)、第(2S-1)共2S个加罗华乘法器21~25;以常数α相乘的第2S加罗华乘法器20;第1、第2、第N、第(2S-1)共(2S-1)个加罗华加法器60~63;第0、第1、第2、第N、第(2S-1)共2S个系数数据保持寄存器42~46;用于展开生成多项式的初始值数据输入寄存器41,系数器数据保持寄存器40,第1与第2两个初始值数据选择器30、51;第0、第1、第2、第N、第(2S-1)共2S个输入数据选择器50、52~55,以及第0、第1、第2、第N、第(2S-1)共2S个乘法器数据选择器31~35。
控制块50,由于取决于误差校正数t的生成多项式中各次幂的系数个数与系数值不同,对应于定义输入的误差校正数t的误差校正数据5,检查信息数据7的冗余字节长,而将指示系数生成计算结束的信号输出给第1与第2初始值数据选择器30、51;此外,输出控制第0输入数据选择器50的输入数据控制信号15、控制第1~第(2S-1)输入数据选择器52~55的移位数据选择器信号16、控制第0~第(2S-1)乘法器数据选择器31~35的乘法器数据选择控制信号14。
初始值数据输入寄存器41在接收并保持用于展开生成多项式的生成初始值数据后,输出给第0乘法器数据选择器31和第2初始值数据选择器51。第一初始值数据选择器30选择生成初始值数据3和系数器数据保持寄存器40的输出数据两者中的任一,输出给第2S加罗华乘法器20。
系数器数据保持寄存器40在接收依据对应于原始多项式的加罗华运算规则由第2S加罗华乘法器20算出的数据并保持后,作为输出反馈给第1初始值数据选择器30的同时,将第1初始值数据选择器30所选择的数据和常数值的原始元α输出给第0加罗华乘法器21。
第0加罗华乘法器21将系数器数据保持寄存器40的输出数据和第0乘法器数据选择器31的输出数据进行加罗华乘法运算后,将相乘结果输出给第0输入数据选择器50。
第0输入数据选择器50选择第0加罗华乘法器21的输出数据或常数值0,输出给第0系数数据保持寄存器42,后者在接受保持第0输入数据选择器50的输出数据后,将其输出给第2初始值数据选择器51和第0乘法器数据选择器31,此第0乘法器数据选择器31选择从初始值数据输入寄存器41输出的数据或是从第0系数数据保持寄存器42输出的数据,输出给第0加罗华乘法器21。
第2初始值数据选择器51选择从初始值数据输入寄存器41输出的数据或是从第0系数数据保持寄存器42输出的数据,输出给第1输入数据选择器52和第1加罗华加法器60。
第1加罗华加法器22接受系数器数据保持寄存器40的输出数据和第1乘法器数据选择器32的输出数据,按照对应于原始多项式的加罗华运算规则,把它们进行加罗华乘法运算后,将此相乘结果输出给第1加罗华加法器60。第2加罗华乘法器23在把系数器保持寄存器40的输出数据和第2乘法器数据选择器33的输出数据,按照对应于原始多项式的加罗华运算规则进行加罗华乘法运算后,将相乘结果输出给第2加罗华加法器61。第N(2S-2≥N≥3,N为整数)加罗华乘法器24输入系数器数据保持寄存器40的输出数据和第N乘法器数据选择器34的输出数据,依照对应于原始多项式的加罗华运算规则把它们作加罗华乘法运算后,将此相乘结果输出给第N加罗华加法器62。第(2S-1)加罗华乘法器25输入系数器数据保持寄存器40的输出数据和第(2S-1)乘法器数据选择器35的输出数,依据对应于原始多项式的加罗华运算规则将它们进行加罗华乘法运算后,将此相乘结果输出给第(2S-1)的加罗华加法器63。
第1乘法器数据选择器32选择第1系数数据保持寄存器43的输出数据或常数值1,输出给第1加罗华乘法器22。第2乘法器数据选择器33选择第2系数数据保持寄存器44的输出数据或常数值1,输出给第2加罗华乘法器23。第N乘法器数据选择器34,选择第N系数数据保持寄存器45的输出数据或常数值1,输出给第N加罗华乘法器24。第(2S-1)乘法器数据选择器35选择第(2S-1)的系数数据保持寄存器46的输出数据或常数值1,输出给第(2S-1)的加罗华乘法器25。
第1加罗华加法器60输入第1加罗华乘法器22的输出数据和第2初始值数据选择器51的输出数据,将它们进行加罗华加法运算,输出给第1输入数据选择器52。第2加罗华加法器61接受第2加罗华乘法器23的输出数据和第1系数数据保持寄存器43的输出数据,进行加罗华加法运算,输出给第2输入数据选择器53。第N加罗华加法器62接受第N加罗华乘法器24的输出数据和第(N-1)系数数据保持寄存器的输出数据,进行加罗华加法运算而输出给第N输入数据选择器54。第(2S-1)加华加法器63接受第(2S-1)加罗华乘法器25的输出数据和第(2S-2)系数数据保持寄存器的输出数据,进行加罗华加法运算后输出给第(2S-1)输入数据选择器55。
第一输入数据选择器52选择第2初始值数据选择器51的输出数据或第1加罗华加法器60的输出数据,输出给第1系数数据保持寄存器43,第二输入数据选择器53选择第1系数数据保持寄存器43的输出数据、第二加罗华加法器61的输出数据或是常数值1,输出给第2系数保持寄存器44。第N输入数据选择器54选择第(N-1)系数数据保持寄存器的输出数据、第N加罗华加法器62的输出数据或是常数值1,输出给第N系数数据保持寄存器45。第(2S-1)输入数据选择器55选择第(2S-2)系数数据保持寄存器的输出数据、第(2S-1)加罗华加法器63的输出数据或是常数值1,输出给第(2S-1)系数数据保持寄存器46。
第1系数数据保持寄存器43接受第1输入数据选择器52的输出数据,保持后,输出给第2加罗华加法器61、第1乘法器数据选择器32以及第2输入数据选择器53。第2系数数据保持寄存器44接受第2输入数据选择器53的输出数据,保持后,输出给第3加罗华加法器、第2乘法器数据选择器33与第3输入数据选择器。第N系数数据保持寄存器54接受第N输入数据选择器54的输出数据,保持后,输出给第(N+1)加罗华加法器、第N乘法器数据选择器34、第(N+1)输入数据选择器。第(2S-1)系数数据保持寄存器46接受第(2S-1)输入数据选择器55的输出数据,保持后,输出给第(2S-1)乘法器数据选择器53。
此外,第0至第(2S-1)共2S个系数数据保持寄存器42~46中所保持的数据,则作为生成多项式展开时的第0至第(2S-1)共2S个生成多项式系数数据8输出。第(2S-1)系数数据保持寄存器46中的数据则成为高次幂侧的系数数据。这些系数数据保持寄存器42~46在控制块10输出的系数计算结束的指示信号11成为有效的时,保持输出的数据而输出给数据编码块2。
下面说明生成多项式系数生成块1的工作。在此,特别使误差校正数t为常数,误差校正数t=最大校正数S进行说明。首先设生成多项式为G(x)=(x-α0)(x-α1)(x-α2)…(x-α19)取生成多项式的生成初始值数据3,生成多项式为0时的作为α的幂乘的根中幂数最小的原始元“α0”输入初始值数据输入寄存器41和第1初始值数据选择器30,寄存器41保持“α0”。输入选择器30的数据再于系数器中为α倍乘,生成“α1”,保持于系数器数据保持寄存器40之中。然后,从系数器数据保持寄存器40输出的数据“α1”输入第0至第19的各个加罗华乘法器21~25中。
与以前所述的相同,在该块中,首先由于要计算(x-α0)(x-α1),需要求出α0+α1和α0×α1。为此,首先注意第0加罗华乘法器21和第1加罗华乘法器22。在第0加罗华乘法器21的一方的输入中,由于从系数保持寄存器40输入了α1,而对于另一方的输入,在第0乘法器数据选择器31中则通过控制块10的控制来选择初始值数据输入寄存器41的输出数据。这样,由第0加罗华乘法器21进行α0×α1,输送给第0输入数据选择器50,再由第0系数数据保持寄存器42保持。
在此,加罗华乘法器20~25根据输入的原始多项式设定值4所确定的对应于原始多项式的加罗华运算规则进行乘法运算,而各个加罗华乘法器20~25的结构与操作则于以后说明。
在第1加罗华乘法器22一方的输入中,由于从系数保持寄存器40输入了α1,对于另一方的输入,则要在第一乘法器数据选择器32中通过控制块10控制来选择常数值“1”。据此,从第1加罗华乘法器22使α1原样地输出,而输入第1加罗华加法器60。对于此第1加罗华加法器60的再一方的输入,是在第二初始值数据选择器51之中,通过控制来选择初始值数据输入寄存器41的输出数据,输入α0。这样,在第1加罗华加法器中执行α0+α1,经由第1输入数据选择器52,保持于第1系数数据保持寄存器43中。
下面设α0+α1=A和α0×α1=B,计算展开(x2-Ax-B)(x-α2)时各次幂的系数。即计算A+α2、A×α2+B、Bxα2。
保持于系数器数据保持寄存器40中的α1输入于第1初始值数据选择器30中,于是在此选择器30之内这次不选择生成多项式初始值数据3,而选择系数器数据保持寄存器40的输出数据。由此,将选择器30的输出值数据通过第2S加罗华乘法器20再倍乘α而生成α2,系数器数据保持寄存器40新保持着“α2”。由此,将“α2”输入第0加罗华乘法器21至第19加罗华乘法器25一方的输入数据中。
现在,注意第0加罗华乘法器21、第一加罗华乘法器22以及第2加罗华乘法器23这三个加罗华乘法器。由确定第0加罗华乘法器另一方输入数据的第0乘法器数据选择器31,选择初始值数据输入寄存器41的输出数据或是第0系数数据保持寄存器42的输出数据。寄存器41保持生成多项式初始值数据3,寄存器42则保持通过先前计算而生成的系数数据B=α0×α1。于是选择器31此时选择由寄存器42保持的系数数据B,输入加罗华乘法器,执行B×α2,由第0输入数据选择器50选择第0加罗华乘法器21的输出数据,更新第0系数数据保持寄存器42的数据,新保持B×α2。
确定第1加罗华乘法器22另一方输入数据的第1乘法器数据选择器32,选择先前计算生成的第1系数数据保持寄存器43的输出数据A=α0+α1,作为第1加罗华乘法器22又一方的输入数据,计算A×α2,输出给第1加罗华加法器60。确定第1加罗华加法器60又一方输入的第2初始值数据选择器51,选择第0系数数据保持寄存器42中所保持的由先前计算而生成的数据B=α0×α2,由加罗华加法器60执行A×α2+B。第1输入数据选择器52选择加法器60的输出,而第1系数数据保持寄存器43则保持着A×α2+B。
确定第2加罗华乘法器23又一方输入数据的第2乘法器数据选择器33选择常数值“1”,而第2加罗华乘法器23则使系数器数据保持寄存器40输入的α2原样地输出给第2加罗华加法器61。第2加罗华加法器61的又一方的输入数据由于是先前计算生成的第1系数数据保持寄存器的输出数据A=α0+α1,在加法器60中执行A+α2,经第2输入数据选择器53输入第2系数数据保持寄存器44。
这样,按α3、α4、…、α19,随着系数器数据保持寄存器40的值更新,与上述计算步骤完全相同,顺次应用第3、第4、…、第19加罗华乘法器,反复地执行从第0至第19系数数据保持寄存器42~46的值的更新计算。
当系数器数据保持寄存器40的值达到α19而结束各系数的计算时,由控制块10输出的系数计算结束指示信号11即成为有效的,在此指示信号11成为有效时,系数数据保持寄存器42~46的值成为保持状态,系数值Ce1~Ce19即作为生成多项式系数数据8输出。
通过以上反复的计算,下面的生成多项式G(x)=(x-α0)(x-α1)(x-α2)…(x-α19)便顺次展开成G(x)=x20+C19x19+C18x18+C17x17+…+C2x2+C1x+C0成为具有从C0到C19共20个系数的式子。再有,第19系数数据保持寄存器46中所保持的数据Ce19相当于高次幂侧的系数C19,而第0系数数据保持寄存器42中所保持的数据则相当于低次幂侧的系数C0。
对于生成多项式变化的情形,在作为生成初始值3的α0变化时,置生成多项式为0,使α的幂乘的根中幂数最小的原始元作为生成初始值3,输入后,与前述相同地展开生成多项式而生成系数。
于是,根据这一实施形式,输入生成初始值3,由于设置了用它来展开生成多项式而获得系数数据8的生成多项式系数生成块1,结合生成多项式,预先求出生成初始值3,通过使其输入,即使对于不同的生成多项式,也能求出将其展开时的各次幂的系数,后生成多项式不同时,也能将对应于各生成多项式的系数数据8输出给数据编码块2,从而能对应于生成多项式的变化为实现里德-所罗门编码。
图3是示明数据编码块2的结构的电路图,它包括进行系数计算控制的控制块70;第0、第1、第2、第(2M-1)、第2M(3≤M≤S-1,M为整数,S为最大校正数)、第(2S-1)共2S个加罗华乘法器80~87;第0、第1、第2、第(2M-1)、第2M(3≤M≤S-1,M为整数)、第(2S-1)共2S个加罗华加法器110~117;构成第0、第1、第2、第(2M-1)、第2M(3≤M≤S-1,M为整数)、第(2S-1)共2S个移位寄存器的数据保持寄存器90~97;第2、第4、第2M(3≤M≤S-1,M为整数)共(S-1)个数据选择器120~122;第1与第2共两个输入数据选择器130、131;输入数据寄存器100;输出数据选择器132以及输出数据寄存器101。
控制块70对于因误差校正数t不同致冗余的字节长不同时,输入误差校正数数据5,对其检查,输出对各数据选择器80~85进行控制的选择器控制信号72;而在因信息数据的码长n和误差校正数t的不同而致冗余数结构不同时,则将指示冗余部开始位置的冗余部指示信号71输出给第2输入数据选择器131,将控制输入/输出数据的输入/输出数据控制信号73输出给第1输入数据选择器130和输出数据选择器132。
第0加罗华乘法器80输入生成多项式系数生成块1的第0系数数据保持寄存器42输出的第0次生成多项式系数数据Ce0以及第2输入数据选择器131的输出数据,在使它们按照对应于原始多项式的加罗华运算规则进行加罗华乘法运算后,将相乘结果输出给第0数据保持寄存器90。第1加罗华乘法器81输入生成多项式系数生成块1的第1系数数据保持寄存器43输出的第1次生成多项式系数数据Ce1以及第2输入数据选择器131的输出数据,在使它们按照对应于原始多项式的加罗华运算规则进行加罗华乘法运算后,将相乘结果输出给第0加罗华加法器110。第2加罗华乘法器82输入生成多项式系数生成块1的第2系数数据保持寄存器44输出的第2次生成多项式系数数据Ce2以及第2输入数据选择器131的输出数据,在使它们按照对应于原始多项式的加罗华运算规则进行加罗华乘法运算后,将相乘结果输出给第1加罗华加法器111第3加罗华乘法器83输入生成多项式系数生成块1输出的第3次生成多项式系数数据Ce3以及第2输入数据选择器131的输出数据,在使它们按照对应于原始多项式的加罗华运算规则进行加罗华乘法运算后,将相乘结果输出给第2加罗华加法器112。第4加罗华乘法器84输入生成多项式系数生成块1输出的第4次生成多项式系数数据Ce4以及第2输入数据选择器131的输出数据,在使它们按照对应于原始多项式的加罗华运算规则进行加罗华乘法运算后,将相乘结果输出给第3加罗华加法器113。第(2M-1)加罗华乘法器85输入生成多项式系数数据块1输出的第(2M-1)次生成多项式系数数据Ce 2M-1以及第2输入数据选择器131的输出数据,在使它们按照对应于原始多项式的加罗华运算规则进行加罗华乘法运算后,将相乘结果输出给第(2M-1)加罗华加法器114。第2M加罗华乘法器86输入生成多项式系数生成块1输出的第2M次生成多项式系数数据Ce2M以及第2输入数据选择器131的输出数据,在使它们按照对应于原始多项式的加罗华运算规则进行乘法运算后,将相乘结果输出给第(2M-1)加罗华加法器115。第(2S-1)加罗华乘法器87输入生成多项式系数生成块1的第(2S-1)系数数据保持寄存器46输出的第(2S-1)次生成多项式系数数据Ce2S-1以及第2输入数据选择器131的输出数据,在使它们按照对应于原始多项式的加罗华运算规则进行乘法运算后,将相乘结果输出给第(2S-2)加罗华加法器116。
第0加罗华加法器110接收第1加罗华乘法器81的输出数据和第0数据保持寄存器90的输出数据,进行加罗华加法运算后输出给第1数据保持寄存器91。第1加罗华加法器111接受第2加罗华乘法器82的输出数据和第1数据保持寄存器91的输出数据,进行加罗华加法运算后输出给第1数据选择器120。第1加罗华加法器112接受第3加罗华乘法器83的输出数据和第2数据保持寄存器92的输出数据,进行加罗华加法运算,输出给第3数据保持寄存器93。第3加罗华加法器113接受第4加罗华乘法器84的输出数据和第3数据保持寄存器93的输出数据,进行加罗华加法运算后输出给第4数据选择器121第(2M-2)加罗华加法器114,接受第(2M-1)的加罗华乘法器85的输出数据和第(2M-2)数据保持寄存器的输出数据,进行加罗华加法运算后输出给第(2M-1)数据保持寄存器95。第(2M-1)加罗华加法器115接受第2M加罗华乘法器86的输出数据和第(2M-1)的数据保持寄存器95的输出数据,进行加罗华加法运算后输出给第2M数据选择器122。第(2S-2)加罗华加法器116接受第(2S-1)加罗华乘法器87的输出数据和第(2S-2)数据保持寄存器的输出数据,进行加罗华运算后输出给第(2S-1)数据保持寄存器97。第(2S-1)加罗华加法器117接受第(2S-1)数据保持寄存器97的输出数据和输入数据寄存器100的输出数据,进行加罗华加法运算后输出给第2输入数据选择器131。
第0数据保持寄存器90在接受和保持第0加罗华乘法器80的输出数据后,输出给第0加罗华加法器110。第1数据保持寄存器91在接受和保持第0加罗华加法器110的输出后,输出给第1加罗华加法器111。第2数据保持寄存器92在接收并保持第1数据选择器120的输出后,输出给第2加罗华加法器112。第3数据保持寄存器93在接受并保持第2加罗华加法器112的输出后,输出给第1加罗华加法器113。第4数据保持寄存器94在接收并保持第4数据选择121的输出后,输出给第4加罗华加法器。第(2M-1)数据保持寄存器95在接受并保持第(2M-2)加罗华加法器114的输出后,输出给第2M加罗华加法器115。第2M数据保持寄存器96在接受并保持第2M-1数据选择器122的输出后,输出给第2M加罗华加法器。第(2S-1)数据保持寄存器97在接受并保持第(2S-2)加罗华加法器116的输出数据后,输出给(2S-1)加罗华加法器117和输出数据选择器132。
第1输入数据选择器130选择输入的信息数据7或常数值0,输出给输入数据寄存器100。第2输入数据选择器131选择第(2S-1)加罗华加法器117的输出数据或常数值0,输出给第0~第(2S-1)加罗华乘法器80~87。
输入数据寄存器100在接受并保持第1输入数据选择器的输出数据后,输出给第(2S-1)的加罗华加法器117和输出数据选择器132。
输出数据选择器132选择第(2S-1)的数据保持寄存器97的输出数据或是输入数据寄存器100的输出数据,输出给输出数据寄存器101,输出数据寄存器101在接受并保持输出数据选择器132的输出数据后,作为里德-所罗门编码数据输出。
里德-所罗门代码等的循环码的数据编码电路是已知的,例如相对于多项式的除法电路,使数据的输入位置作2t级移位便是其一般情形。有关这种电路的结构和操作已示明于“误差校正码及其应用”,电视学会编,pp180~181;或“编码理论”,电气通信情报学会编,pp131-118。这里的数据编码块虽然也是把输入移位型的多项式除法电路作为基本结构,但在把误差校正数、原始多项式取作可变结构的方面则有不同。
下面就最大校正数S=10的情形来说明本实施形式的数据编码块2的工作。首先从生成多项式系数生成数据块1将20个系数数据Ce0-Ce19组成的生成多项式系数数据8,从低次幂系数值开始顺次输入第0至第19加罗华乘法器80~87。此20个系数数据Ce0~Ce19组成的多项式系数数据8继续保持到数据编码计算结束。
另一方面,将成为被除式多项式即信息多项式的系数的235个信息数据从高次幂侧的系数数据起顺次地输入,首先经过第1输入数据选择器130,然后由输入数据寄存器100保持,再输出给第19加罗华加法器117和输出数据选择器132。
输出数据选择器132在信息数据7输入时,通常选择输入数据寄存器100的输出,使信息数据7原样地通过,输送给输出数据寄存器101。输出数据寄存器101将一度保持的数据作为编码数据输出。
从输入数据寄存器100输入第19加罗华加法器117的信息数据同第19数据保持寄存器119的输出值相加,输入第二输入数据选择器131第1至第19数据保持寄存器90~97由于将初始值重置“0”,最先的20个输入信息数据便原样地通过第19加罗华加法器117。
第2输入数据选择器131在235个信息数据输入时,选择第19加罗华加法器117的输出,将其后20个部分即2S个部分的数据选择常数值“0”。
信息数据7经第2输入数据选择器131,输入第0至第19加罗华乘法器80~87,同分别输入加罗华乘法器80~87的生成多项式系数数据分别进行加罗华乘法运算。此时,与生成多项式生成块1相同,在第0至第19加罗华乘法器中输入原始多项式设定值,按照对应于原始多项式的加罗华运算规则,执行加罗华乘法运算。第0加罗华乘法器80的输出数据输送到第0数据保持寄存器90中保持。第1至第19加罗华乘法器81~87输出的数据输入第0至第18加罗华加法器110至116。但是偶序数的第2、第4、…第2M 19≥M≥3)加罗华乘法器82、84、86也同时输出给第2数据选择器120、第4数据选择器121、…、第2M数据选择器122。第0至第19加罗华加法器110~117另一方的输入中则分别来自第0至第19数据保持寄存器90~97的保持数据。
第0和第1数据保持寄存器90、91之中分别输入第0和第1加罗华乘法器81、81的输出数据。第2数据保持寄存器92之中输入由第1数据选择器120选择的数据,此选择器120则是选择第2加罗华乘法器82和第1加罗华加法器111的输出数据。当误差校正数t为10时,选择器120通常选择第1加罗华加法器111的输出数据,而当误差校正数t比最大误差校正数S=10小即在9以下时,则常选择第2加罗华乘法器的输出数据,截断第0数据保持寄存器90、第1数据保持寄存器91的计算结果,减少移位级数。
第3数据保持寄存器93中输入第2加罗华加法器112的输出数据,第4数据保持寄存器94中输入第4数据选择器121选择的数据。此选择器121选择第4加罗华乘法器84的和第3加罗华加法器113的输出数据;与选择器121当误差校正数t在9以上时,常选择第3加罗华加法器的输出数据,而当误差校正数t在8以下时常选择第4加罗华乘法器84的输出数据,截断第1至第3数据保持寄存器91~93的计算结果,减少移位级数。
同样,在奇序数的第(2M-1)(9≥M≥3)寄存器95中,输入第(2M-2)加罗华加法器的输出数据,而在偶序数的第2M寄存器96中则输入第2M数据选择器122的输出数据。第2M数据选择器122选择第2M加罗华乘法器86的和第2(M-1)加罗华加法器115的输出数据。
在此,第2M数据选择器122的选择控制与上述相同也依赖于误差校正数数据5,当误差校正数t为7时,第6数据选择器选择第6加罗华乘法器的输出,同样地,当误差校正数t为5、4、…1时,第10、第12、…第18数据选择器则选择第10、第12、…、第18加罗华乘法器的输出,分别减少移位寄存器的级数。
于是在此数据编码块2之中,对于最大校正数S=10以下的误差校正数来说,第2(s-t)选择器将选择第2(s-t)乘法器的输出。
根据上述结构,当误差校正数t为10时,使用第0到第19全部的数据保持寄存器90~97,在将235个信息数据全部顺次输入完成而反复计算时,保持于第0至第19数据保持寄存器90~97中的数据就成为冗余数据。于是,为了输出保持于此第0至第19数据保持寄存器90~97中的冗余数据,输出数据选择器132便选择第19数据保持寄存器97的输出数据,一旦将数据保持于输出数据寄存器101中后,就把它附加到上述信息数据7上,作为里德-所罗门编码数据输出。
另外,选择器控制信号72根据误差校正数数据5进行控制,输入/输出数据控制信号73、冗余部指示信号则据码长数据6和误差校正数数据5控制,在此对235个信息数据、20个冗余数据进行识别、控制。
这样,在以系数数据对信息数据进行除法运算时,通过第2(s-t)选择器来选择第2(s-t)乘法器的输出,就能相对于误差校正数t变动第0~第19数据保持寄存器组成的移位寄存器的级数,因而即使在误差校正数t有变化时,也能相对于误差校正数的变化进行里德-所罗门编码。
图4是示明图2和图3中所示加罗华乘法器20~25与加罗华乘法器80~87的结构的电路图,输入第1与第2两个n位的输入数据301、302,对这两个数据进行加罗华乘法运算;由按照对应于原始多项式的加罗华运算规则对数据作α倍乘的串联连接的第1至第(n-1)共(n-1)个系数器141~147、输出n位数据和1位数据这两个输入的“与”的第1至第n共n个与门151~158、由n位n输入输出“异”的1个“异”门160构成。另外,此图4中特别示明了n=8位的情形。当n为变数时,随着n的增减,要增减系数器数和与门数。
第1系数器141接受输入加罗华乘法器的n位的第1输入数据301和对应于原始多项式所确定的n位的数值即原始多项式4,按照对应于该数值的加罗华运算规则,以α倍乘n位的输入数据301,输出给第2系数器142和第2与门152。同样,第K(n-2≥K≥2,K为整数)系数器142~146接受分别从第(K-1)系数器输出的n位数据和对应于原始多项式确定的n位的原始多项式设定值4,按照对应于此值的加罗华运算规则,以α倍乘n位的输入数据,输出给第(K+1)系数器和第(K+1)与门。第(n-1)系数器147接受从第(n-2)系数器146输出n位的数据和对应于原始多项式的n位的原始多项式设定值4,按照对应于此值的加罗华运算规则,以α倍乘n位的输入数据,输出给第n与门158。
第1与门接受输入加罗华乘法器的n位的第1输入数据301和输入同一加罗华乘法器中的n位的第2输入数据302中的最下位位,将第1输入数据301和把第2输入数据302的最下位位扩展成n位的n位数据两者的“与”输出给“异”门。第2与门152接受第1系数器141的输出和n位的第2输入数据B中最下位位开始数起的第二位的位,将它们的“与”输出给“异”门160。第(K+1)与门152~158将第K系数器输出的n位数据和使输入到加罗华乘法器中的n位的第2输入数据302中第K位扩展成n位的n位数据两者的“与”,输出给“异”门160。这里的第2输入数据302中的第K位是指以最下位位为第0位、以最上位位为第(n-1)位时,从最下位位数起的结果。第n与门158将第(n-1)系数器147输出的n位数据和把第2输入数据302中的第(n-1)位扩展成n位的n位数据的“与”,输出给“异”门160。
“异”门160将第1至第n共n个与门151~158输出的n个n位数据的“异”数据,作此加罗华乘法器的输出数据输出。
图5为示明图4中所示进行α倍乘的系数器141~147的结构的电路图,包括从第1至第n共n个寄存器201~208组成的n位寄存器200、n位2输入的一个“异”门201以及输出数据选择器211,接受n位的输入数据303和对应于原始多项式的原始多项式设定值4,按照对应于此值的加罗华运算规则,以α倍乘n位的输入数据303再输出。此外,数据[n-1∶0]表示具有从第0到第n-1位的n位数据,数据
表示n位的输入数据303的最下位的比特,随着此方括号内数值的增加而表示上位的位数据。在此,特别表明n=8的情形。当n的值在8以外时,则随着n值的增减而采用相应增减寄存器数的结构。
第1寄存器201输入常数值0,保持该位数据后再输出。在第Q(n≥Q≥2,Q为整数)的寄存器202~208中,分别输入n位的输入数据C中第(Q-2)位的数据,保持各位数据后再输出。“异”门210求出原始多项式设定值4和从第1至第n共n个寄存器201~208输出的n位的数据的“异”,作为n位输出,输出选择器211将输入此系数器的n位的输入数据303的最上位位数据作为选择信号,选择第1至第n寄存器201~208输出的n位数据,或是选择“异”门的输出中的一个,作为系数器的输出数据输出。
下面说明本实施形式的加罗华来法器、常数倍乘器即系数器的结构和操作。在此,由于假定原始多项式P(x)=X8+X4+X3+X2+1输入/输出数据分别为8位宽度。
图4所示的加罗华乘法器由于是使用实行了α倍乘的系数器141~147构成,故首先根据图5说明实行α倍乘的系数器141~147的结构与操作。
如同先前所说明的,当考虑加罗华域的元时,对于上述情形的原始多项式,设P(α)=0则有α8=α4+α3+α2+1从而
α9=α5+α4+α3+αα10=α6+α5+α4+α2α11=α7+α6+α5+α3α12=α8+α7+α6+α4=(α4+α3+α2+1)+α7+α6+α4=α7+α6+α3+α2+1…通常可以置换α8,以α7以下的元表示。
把它们以向量表示时,则成为α0=00000001α1=00000010…α7=10000000α8=00011101α9=00111010α10=01110100α11=11101000α12=11001101…从而作为用于α倍乘的运算基本上是左移位,在出现有α8的项时,由于是置换为相当α8的α4+α3+α2+1进行运算,作为向量值“00011101”即在16进位下对“1d”作加罗华加法运算。首先构成相当于此α8的向量值“1d”,以之作为原始多项式设定值输入系数器。当特定的元经α倍乘出现α8的项时,对于在该元中含有α7的项时,若考虑到向量值,则是在最上位位中为“1”的情形。
α倍乘系数器如图5所示,首先设置8位寄存器200,为了求出左移位的值,在最下位位的寄存器201中插入固定值“0”,设输入系数器的8位数据为数据303,把从数据303的第0位至第6位的数据输入寄存器的上位7位的寄存器202~208中。这样,在输入数据303的最上位位为“1”的情形,由于是接着出现α8的项的情形,即选择所保持的8位寄存器200的值和原始多项式设定值4的加罗华加和值也就是“异”的值而输出,而当最上位位为“0”时,则将左移保持的寄存器的值原样地输出。
在此,由于确定加罗华运算一方的α8即原始多项式设定值4是因原始多项式而异的值,故在本实施形式中当采用不同的原始多项式时,预先准备对应于各个原始多项式的原始多项式设定值4,通过将其输入,则即令对于不同的原始多项式,也能进行与其分别相适应的α倍乘的位运算。
此外,在8位的数据的情形,原始多项式设定值4虽成为α8,但在n位的数据情形,即扩展域中α的次数为m(m≥1,m为整数)的情形,作为原始多项式设定值4也可以采用原始元α的方幂之一αm。
下面说明图4所示加罗华乘法器的作业。在此考虑8位×8位的加罗华乘法运算。
首先,作为加罗华域中的元考虑A、B、C,设C=A×B。
在此把B的向量值设定为B=B7B6B5B4B3B2B1B0(B0至B7为0或1的比特图案),可以表示为B=B7α7+B6α6+B5α5+B4α4+B3α3+B2α2+B1α+B0由此,即使在加罗华域的计算中,分配律和交换律都成立,于是可导出C=A×B=A×(B7α7+B6α6+B5α5+B4α4+B3α3+B2α2+B1α+B0)=Aα7B7+Aα6B6+Aα5B5+Aα4B4+Aα3B3+Aα2B2+AαB1+AB0实现上述运算结果的是图4所示的加罗华乘法器。图中的数据301、302分别相当于A、B。将相当于上述A的数据301倍乘以α7、α6…α的数据,再乘以从B7到B0的数据302的位数据,最后将各个相乘出的数据相加,即成为“异”而作为乘法运算数据输出。实现α7、α6…α的常数倍乘运算的系数器是把图5所示的实现α倍乘的系数器按7级串联,通过使用各系数器的输出数据来实现。
在此加罗华乘法器中,如上所述,通过原始多项式设定值4,即使对于不同的原始多项式,由于可以采用能倍乘α的系数器,故可对应于原始多项式的变化进行加罗华乘法运算。这样,在本实施形式中,由于配备有生成多项式系数生成块1,它能通过输入原始多项式设定值4,用此原始多项式设定值4展开生成多项式而求得系数数据8;还由于配备有数据编码块2,能利用原始多项式设定值4由生成多项式来除信息多项式而进行数据编码,从而不论原始多项式如何,也能完全适应地实现里德-所罗门编码。
如上所述,本实施形式的里德-所罗门编码装置与编码方法,对于原始多项式设定值、生成初始值、误差校正数等参数,能够实现完全可变型的里德-所罗门编码,不论原始多项式和生成多项式如何,都是可以完全适应的。
此外,在本实施形式中,虽然是对最大校正数S为10、加罗华域的次数为8即加罗华乘法器等的位数为8位的情形进行说明,但本发明即使用于上述值有增或减的情形,也同样可取得与所述实施形式1相同的效果。
此外,在本发明中,对于具有上述实施形式的里德-所罗门编码装置,也可采用与此装置具有相同装置的程序控制计算来实现,而能取得与上述实施形式相同的效果。
再有,在上述实施形式中,作为数据编码块2是相对于误差校正数t在1到最大校正值S之间变化,能进行相对应的编码来说明的,但在本发明中,也可使误差校正数t取作定值,例如可使数据编码块取图7所示的结构,也就是可以包括设误差校正数t为最大校正数S,使生成多项式的系数数据8的第0次的值Ce0同信息数据7进行相乘的第0加罗华乘法器80a、保持第0乘法器的输出的第0数据保持寄存器90a、进行生成多项式的系数数据8的第R(2t-2≥R≥1,R为整数)次值CeR和信息数据乘法运算的第R加罗华乘法器86a、进行第R加罗华乘法器86a的输出和第(R-1)数据保持寄存器95a中所保持的数据作加法运算的第(R-1)加罗华加法器115a、保持第(R-1)加罗华加法器115a的输出的第R数据保持寄存器96a、进行生成多项式的系数数据8的第(2t-1)次值Ce2t-1同信息数据7作乘法运算的第(2t-1)加罗华乘法器87a、进行第(2t-1)加罗华乘法器87a的输出同第(2t-2)寄存器中保持的数据作加法运算的第(2t-2)加罗华加法器116a、保持第(2S-2)加罗华加法器116a的输出的第(2t-1)数据保持寄存器97a,以及进行第(2t-1)数据保持寄存器97a的输出同信息数据7作加法运算的第(2t-1)加罗华加法器117a。在采用这样的数据编码块时,同样能对应于生成多项式的变化和/或原始多项式的变化来进行里德-所罗门编码。
另外,上述实施形式是相对于生成初始值、原始多项式设定值、误差校正数t变化的情形加以说明,但本发明对于这些数中至少有一个变化的情形,也能取得与上述实施形式相同的效果。
权利要求
1.一种里德-所罗门编码装置,其特征在于,它包括生成多项式系数的生成装置,它把扩展域的次数为m(m≥1,m为整数)而原始元之一为α时生成多项式为0的情况下作为α的幂乘的根中幂数最小的原始元即生成初始值和αm的值即原始多项式的设定值输入,对应于生成初始值或原始多项式值中至少一个的变化,展开生成多项式而生成由各次幂的系数组成的系数数据;数据编码装置,它把信息数据和上述系数数据输入,用该系数数据,对应生成初始值或原始多项式设定值的变化,去除上述信息数据,把通过此除法运算求得的余数数据与上述信息数据相结合,形成里德-所罗门编码数据。
2.权利要求1所述的里德-所罗门编码装置,其特征在于,所述生成多项式系数生成装置和数据编码装置备有多个乘法器,该乘法器是由通过使原始元α位移位的结果、使原始元α位移位的结果和原始多项式设定值αm的“异”相组合,而进行原始元α的乘法运算的系数器作(m-1)级串联而成。
3.权利要求2所述的里德-所罗门编码装置,其特征在于,其中所述系数器在每次使原始元α进行乘法运算时,将生成初始值的向量值向左作1位移位所得的结果顺次输出,同时输出当最上位的位为1,次数增加时上述原始元α的位位移结果和原始多项式设定值αm的“异”。
4.权利要求1所述的里德-所罗门编码装置,其特征在于,其中所述生成多项式的系数生成装置包括设误差校正数为t(t≥1,t为整数)时,相对于生成初始值重复进行原始元α的乘法运算,而在每次循环都输出乘法计算结果的第2t乘法器;在把生成初始值和上述第2t乘法器的计算结果相乘后,将此相乘计算结果与前述第2t的乘法计算结果反复进行乘法运算的第0乘法器;将第0乘法器的输出一面进行数据更新一面保持的第0寄存器;将第0寄存器的输出作为一方的输入进行两个输入的加法运算的第1加法器;将此第1加法器的输出作顺次更新的同时加以保持的第1寄存器;将此第1寄存器的输出与上述第2t乘法器的输出进行相乘,并将此相乘结果输入上述第1加法器另一方输入中的第1乘法器;将第(N-1)寄存器(2t-1≥N≥2,N为整数)的输出作为一方的输入,进行两个输入的加法运算的第N加法器;将此第N加法器的输出在顺次更新的同时并保持的第N寄存器,将此第N寄存器的输出与上述第2t乘法器的输出进行乘法运算,而将其结果输入上述第N加法器另一方输入的第N乘法器;可将前述第0~第(2t-1)寄存器中各自保持的数据作为生成多项式的系数数据输出。
5.权利要求1所述的里德-所罗门编码装置,其特征在于,其中所述数据编码装置包括设误差校正数为t(t≥1,t为整数)时,对上述生成多项式的系数数据的第0次值和信息数据进行乘法运算的第0乘法器;保持第0乘法器的输出的第0寄存器;进行生成多项式的系数数据的第R(2t-2≥R≥1,R为整数)次的值与信息数据的乘法运算的第R乘法器;进行第R乘法器的输出和第(R-1)寄存器中所保持的数据的加法运算的第(R-1)加法器;保持第(R-1)加法器的输出的第R寄存器;进行生成多项式的系数数据中第(2t-1)次值和信息数据的乘法运算的第(2t-1)乘法器;进行第(2t-1)乘法器的输出和第(2t-2)寄存器中保持的数据的加法运算的第(2t-2)加法器;保持第(2t-2)加法器的输出的第(2t-1)寄存器;以及进行第(2t-1)寄存器的输出和信息数据的加法运算的第(2t-1)加法器。
6.权利要求4或5所述的里德-所罗门编码装置,其特征在于,其中所述各乘法器具有将成为被乘数的输入数据顺次乘以原始元α而输出并串联连接的多个系数器;取成为乘数的输入数据的比特数据和上述各系数器的输出的“与”的多个门电路;以及取此多个门电路各个输出的“异”的门电路。
7.权利要求6所述的里德-所罗门编码装置,其特征在于,其中所述系数器包括在使成为被乘数的输入数据最上位位以外的位进行位移位加以保持的同时,对该位移位数据中作为最下位的数据附加上0而输出的寄存器;以上述输入数据的最上位位作为输入,在该最上位位为1时,选择原始多项式的设定值和上述寄存器的输出的“异”而输出,而当该最上位位为0时,选择上述寄存器的输出而输出的选择器。
8.权利要求1所述的里德-所罗门编码装置,其特征在于,其中所述生成多项式系数生成装置是在以误差校正数t(t≥1,t为整数)作为输入时,对应于此误差校正数t的变化,展开生成多项式,生成由各次幂的系数组成的系数数据;而所述数据编码装置则是在把误差校正数t作为输入时,对应于误差校正数t的变化而对所述信息数据进行除法运算。
9.权利要求8所述的里德-所罗门编码装置,其特征在于,其中设误差校正数的最大值为S(S≥t,S为整数)时,所述数据编码装置包括进行上述生成多项式系数数据的第0次值和信息数据的乘法运算的第0乘法器;保持第0乘法器的输出的第0寄存器;进行生成多项式的系数数据的第(2M-1)(S-1≥M≥1,M为整数)次和信息数据的乘法运算的第(2M-1)乘法器;进行生成多项式系数数据的第2M次值和信息数据的乘法运算的第2M乘法器;进行第2M乘法器的输出和保持于第(2M-1)寄存器中数据的加法运算的第(2M-1)加法器;保持第(2M-1)加法器的输出的第M寄存器;进行第2M乘法器的输出和第(2M-1)寄存器中保持的数据的加法运算的第(2M-1)加法器;选择第(2M-1)加法器的输出和第2M乘法器的输出的第2M选择器;保持第2M选择器的输出的第2M寄存器;进行生成多项式系数数据的第(2S-1)次值和信息数据的乘法运算的第(2S-1)乘法器;进行第(2S-1)乘法器的输出和第(2S-2)寄存器中保持的数据的加法运算的第(2S-2)加法器;以及保持第(2S-2)加法器的输出的第(2S-1)寄存器,而相对于输入的误差校正数t,前述第2(s-t)选择器将选择第2(s-t)乘法器的输出。
10.一种里德-所罗门编码方法,其特征在于,此方法在设扩展域的次数为m(m≥1,m为整数)且原始元之一为α时生成多项式为0的情况下作为α的幂乘的根中幂数为最小的原始元即生成初始值和αm的值即原始多项式的设定值作为输入,对应于生成初始值或原始多项式设定值中至少一方的变化,展开生成多项式而生成各次幂的系数组成的系数数据,把信息数据和上述系数数据作为输入,应用该系数数据,对应于生成初始值或原始多项式设定值的变化,去除上述信息数据,把由此除法求得的余数数据与上述信息数据相结合,形成里德-所罗门编码数据。
11.权利要求10所述的里德-所罗门编码化方法,其特征在于,其中所述生成多项式的展开是把误差校正数t(t≥1,t为整数)作为输入,对应于此误差校正数t的变化来进行的;而所述信息数据的除法运算是在把误差校正数t作为输入,对应于此误差校正数t的变化来进行。
全文摘要
提供了能对应于原始多项式、生成多项式和误差校正数的变化来进行里德-所罗门编码的里德-所罗门编码装置和编码方法。此装置具备有生成多项式系数生成块1,它输入原始多项式设定值4和生成初始值3,用它们展开生成多项式而求得系数数据8;数据编码块2,它输入原始多项式设定值4,应用它由生成多项式来除信息多项式以进行数据编码。
文档编号G06F11/10GK1238604SQ99107139
公开日1999年12月15日 申请日期1999年6月2日 优先权日1998年6月2日
发明者福冈俊彦 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1