JPH11346157A - リードソロモン符号化装置および方法 - Google Patents
リードソロモン符号化装置および方法Info
- Publication number
- JPH11346157A JPH11346157A JP10153196A JP15319698A JPH11346157A JP H11346157 A JPH11346157 A JP H11346157A JP 10153196 A JP10153196 A JP 10153196A JP 15319698 A JP15319698 A JP 15319698A JP H11346157 A JPH11346157 A JP H11346157A
- Authority
- JP
- Japan
- Prior art keywords
- data
- output
- coefficient
- multiplier
- galois
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/28—Programmable structures, i.e. where the code converter contains apparatus which is operator-changeable to modify the conversion process
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic 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
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
(57)【要約】
【課題】 原始多項式、生成多項式及び誤り訂正数の変
化に対応してリードソロモン符号化を行うことが可能な
リードソロモン符号化装置及び方法を提供することを課
題とする。 【解決手段】 原始多項式設定値4と生成初期値3とを
入力として、これらを用いて生成多項式を展開して係数
データ8を得る生成多項式係数生成ブロック1と、原始
多項式設定値4を入力として、これを用いて情報多項式
を生成多項式により除算してデータの符号化を行うデー
タ符号化ブロック2を備えるようにした。
化に対応してリードソロモン符号化を行うことが可能な
リードソロモン符号化装置及び方法を提供することを課
題とする。 【解決手段】 原始多項式設定値4と生成初期値3とを
入力として、これらを用いて生成多項式を展開して係数
データ8を得る生成多項式係数生成ブロック1と、原始
多項式設定値4を入力として、これを用いて情報多項式
を生成多項式により除算してデータの符号化を行うデー
タ符号化ブロック2を備えるようにした。
Description
【0001】
【発明の属する技術分野】本発明は、ディジタル信号処
理の誤り訂正において広く利用される多重誤り訂正を行
うためのリードソロモン符号化装置及び方法に関するも
のである。
理の誤り訂正において広く利用される多重誤り訂正を行
うためのリードソロモン符号化装置及び方法に関するも
のである。
【0002】
【従来の技術】各種大容量記憶装置の記憶情報、高速通
信の伝送情報等において、多重誤り訂正を可能とする符
号としてリードソロモン符号が広く使用されている。
信の伝送情報等において、多重誤り訂正を可能とする符
号としてリードソロモン符号が広く使用されている。
【0003】リードソロモン符号は、原始多項式をP(x)
とし、P(x)=0の根をαとするとき、この根αを原始元
とするガロア体(Galois field)の上の符号であって、
ブロック誤り訂正符号の1つである。ここで、t を誤り
訂正数、m を拡大体の次数、αをガロア体GF(2m )
の原始元とし、α,α2 ,…,α2tを根とする符号長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のシンボル列からなる符号語を生成するもので
ある。
とし、P(x)=0の根をαとするとき、この根αを原始元
とするガロア体(Galois field)の上の符号であって、
ブロック誤り訂正符号の1つである。ここで、t を誤り
訂正数、m を拡大体の次数、αをガロア体GF(2m )
の原始元とし、α,α2 ,…,α2tを根とする符号長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のシンボル列からなる符号語を生成するもので
ある。
【0004】次に、リードソロモン符号( 以下、RS符
号と呼ぶ) の符号化のアルゴリズムについて説明する。
まず、リードソロモン符号を決定する第1 の要素とし
て、原始多項式について述べる。
号と呼ぶ) の符号化のアルゴリズムについて説明する。
まず、リードソロモン符号を決定する第1 の要素とし
て、原始多項式について述べる。
【0005】今、m=8を考える場合、ガロア体の原始
元は、α0 からα254 の255個存在し、各原始元のベ
クトル値は、原始多項式P(z) によって決定される。一
般に、m=8の場合、原始多項式P(x) は、 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 と以下続く。
元は、α0 からα254 の255個存在し、各原始元のベ
クトル値は、原始多項式P(z) によって決定される。一
般に、m=8の場合、原始多項式P(x) は、 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 と以下続く。
【0006】ここで、このベクトル値の決め方を説明す
る。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 を左にビットシフトしたものとなる。
る。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 を左にビットシフトしたものとなる。
【0007】このように、原始元は、規則的に決められ
たベクトル値を有し、次数が増加するに従い、左にビッ
トシフトするとともに、最上位ビットが1の場合は、こ
れを左にビットシフトした後、αm = α8 = 00011101を
加算した値が、次の次数のベクトル値となる。但し、ガ
ロア演算における加算は、各ベクトル値の排他的論理和
に相当する。
たベクトル値を有し、次数が増加するに従い、左にビッ
トシフトするとともに、最上位ビットが1の場合は、こ
れを左にビットシフトした後、αm = α8 = 00011101を
加算した値が、次の次数のベクトル値となる。但し、ガ
ロア演算における加算は、各ベクトル値の排他的論理和
に相当する。
【0008】RS符号は、ガロア体上の符号であり、ガ
ロア体の原始元、例えばm=8の場合は、255個の原
始元を用いた演算により決定される符号である。したが
って、各原始元が異なるベクトル値を有すれば、仮に、
同じ演算手順をとったとしても、全く異なった符号とな
る。つまり、異なった原始多項式を用いれば、全く、異
なったRS符号が得られることとなる。
ロア体の原始元、例えばm=8の場合は、255個の原
始元を用いた演算により決定される符号である。したが
って、各原始元が異なるベクトル値を有すれば、仮に、
同じ演算手順をとったとしても、全く異なった符号とな
る。つまり、異なった原始多項式を用いれば、全く、異
なったRS符号が得られることとなる。
【0009】次に、リードソロモン符号を決定する第2
の要素として、生成多項式について述べる。t重誤り訂
正のRS符号は、次のようにして生成する。入力データ
であるn−2t個の原情報を情報多項式として表現した
場合、その情報多項式を、以下に示す生成多項式で割っ
た剰余多項式を求める。そして、(n−2t)個の原情
報データ即ち情報語に、剰余多項式として算出された2
t個の検査語を付加して、符号長nのリードソロモン符
号として使用する。
の要素として、生成多項式について述べる。t重誤り訂
正のRS符号は、次のようにして生成する。入力データ
であるn−2t個の原情報を情報多項式として表現した
場合、その情報多項式を、以下に示す生成多項式で割っ
た剰余多項式を求める。そして、(n−2t)個の原情
報データ即ち情報語に、剰余多項式として算出された2
t個の検査語を付加して、符号長nのリードソロモン符
号として使用する。
【0010】符号長n≦2m −1、誤り訂正数t 、最小
距離dmin≦2t+1の多重誤り訂正RS符号の生成多項
式は、一般に、以下のようになる。但し、情報語長k=
n−2tとする。
距離dmin≦2t+1の多重誤り訂正RS符号の生成多項
式は、一般に、以下のようになる。但し、情報語長k=
n−2tとする。
【0011】
【数1】
【0012】したがって、k 個の情報データa k-1ak-2
… a2,a1,a0 を次の情報多項式で表し、
… a2,a1,a0 を次の情報多項式で表し、
【0013】
【数2】
【0014】この(2) 式を(1) で割った剰余多項式R
(x) が検査多項式となり、この検査多項式の2t個の各
係数が検査語となる。即ち、 I(x)=Q(x) G(x) +R(x) ガロア演算は、加減同一であるので、 R(x)=Q(x) G(x) +I(x)=b2t-1x2t-1+b2t-2x
2t-2+b2t-3x2t-3+…+b1 x+b0 但し、I(x):情報多項式、G(x):生成多項式、Q(x):商
多項式、R(x):剰余多項式とする。
(x) が検査多項式となり、この検査多項式の2t個の各
係数が検査語となる。即ち、 I(x)=Q(x) G(x) +R(x) ガロア演算は、加減同一であるので、 R(x)=Q(x) G(x) +I(x)=b2t-1x2t-1+b2t-2x
2t-2+b2t-3x2t-3+…+b1 x+b0 但し、I(x):情報多項式、G(x):生成多項式、Q(x):商
多項式、R(x):剰余多項式とする。
【0015】よって、全体の符号多項式X(x) は、次の
ようになる。 X(x)=I(x) +R(x) = ak-1 xn-1+ak-2 xn-2+…+ a1 x2t+1+ a0 x2t+ b2t-1x2t-1+ b2t-2 x2t-2+ …+ b1 x+ b0 …(3) この式(3) で示した符号多項式X(x) のn個の各係数、
a k-1,a k-2 … a2,a1,a0,b2t-1,b2t-2,…b1,b0 がリー
ドソロモン符号となる。
ようになる。 X(x)=I(x) +R(x) = ak-1 xn-1+ak-2 xn-2+…+ a1 x2t+1+ a0 x2t+ b2t-1x2t-1+ b2t-2 x2t-2+ …+ b1 x+ b0 …(3) この式(3) で示した符号多項式X(x) のn個の各係数、
a k-1,a k-2 … a2,a1,a0,b2t-1,b2t-2,…b1,b0 がリー
ドソロモン符号となる。
【0016】ここで、生成多項式(1) におけるiの値で
あるが、通信系の伝送におけるRS符号では、一般に、
上記のようにi=0が用いられるが、ディスクシステム
におけるRS符号では、一般に、i=120が用いられ
ることが多い。
あるが、通信系の伝送におけるRS符号では、一般に、
上記のようにi=0が用いられるが、ディスクシステム
におけるRS符号では、一般に、i=120が用いられ
ることが多い。
【0017】このi がどのような値から始まるかによっ
て、(1) 式を展開したときの各係数Cが、全く異なるた
め、剰余多項式の係数bも全く異なり、原始多項式の場
合と同様、この生成多項式が異なると、全く同じ手順で
符号化しても、まったく異なったRS符号となってしま
う。
て、(1) 式を展開したときの各係数Cが、全く異なるた
め、剰余多項式の係数bも全く異なり、原始多項式の場
合と同様、この生成多項式が異なると、全く同じ手順で
符号化しても、まったく異なったRS符号となってしま
う。
【0018】次に、RS符号化アルゴリズムのハードウ
ェアへのインプリメントについて述べる。RS符号は、
情報多項式の各係数からなる情報語と、この情報多項式
を生成多項式で割ることにより求まる剰余多項式の係数
からなる検査語で構成する。
ェアへのインプリメントについて述べる。RS符号は、
情報多項式の各係数からなる情報語と、この情報多項式
を生成多項式で割ることにより求まる剰余多項式の係数
からなる検査語で構成する。
【0019】したがって、この剰余多項式を求める際
に、情報多項式の係数を順次、生成多項式の係数で割り
算するために、情報多項式の各係数と、生成多項式(1)
における各次数の係数Cを用いて、乗算および加算を行
なう必要がある。この割り算を実現するための、ハード
ウェアは、従来、生成多項式(1) における各次数の係数
C(各次数の係数は固定値) と、情報多項式の各係数によ
る演算を行うためのガロア体の乗算器と、ガロア体の加
算器と、これらの演算結果を保持するシフトレジスタに
より構成するのが一般的である。
に、情報多項式の係数を順次、生成多項式の係数で割り
算するために、情報多項式の各係数と、生成多項式(1)
における各次数の係数Cを用いて、乗算および加算を行
なう必要がある。この割り算を実現するための、ハード
ウェアは、従来、生成多項式(1) における各次数の係数
C(各次数の係数は固定値) と、情報多項式の各係数によ
る演算を行うためのガロア体の乗算器と、ガロア体の加
算器と、これらの演算結果を保持するシフトレジスタに
より構成するのが一般的である。
【0020】図6は特許第2591611 号に開示された従来
のRS符号化装置の誤り訂正符号作製回路の構造を示す
ブロック図であり、入力データである情報多項式の各係
数が、最終段のレジスタであるレジスタ605まで送ら
れた後、その情報多項式の最高次数の係数と生成多項式
の各係数g0 〜g2t-1との乗算結果が積回路611〜6
15、即ち乗算器からそれぞれ出力され、各レジスタ6
01〜605に格納されている情報多項式の係数値に加
算される。これによって一回の除算が成立し、これによ
って、各レジスタ601〜605に格納されている内容
が一つずつ移動していく。こうしてこの除算を順次繰り
返していくことにより商多項式が求まり、最終段のレジ
スタ605に転送されずに他のレジスタ601〜604
に残った値が剰余多項式の係数となる。
のRS符号化装置の誤り訂正符号作製回路の構造を示す
ブロック図であり、入力データである情報多項式の各係
数が、最終段のレジスタであるレジスタ605まで送ら
れた後、その情報多項式の最高次数の係数と生成多項式
の各係数g0 〜g2t-1との乗算結果が積回路611〜6
15、即ち乗算器からそれぞれ出力され、各レジスタ6
01〜605に格納されている情報多項式の係数値に加
算される。これによって一回の除算が成立し、これによ
って、各レジスタ601〜605に格納されている内容
が一つずつ移動していく。こうしてこの除算を順次繰り
返していくことにより商多項式が求まり、最終段のレジ
スタ605に転送されずに他のレジスタ601〜604
に残った値が剰余多項式の係数となる。
【0021】ここで、生成多項式の各次数の係数として
は、あらかじめ求められた固定値を用いられ、そのた
め、生成多項式と情報多項式の係数の演算におけるガロ
ア体の乗算を行う乗算器としては、係数器と呼ばれる固
定値乗算器を用いたものが用いられる。係数器は、RS
符号が巡回符号であることから、ビットシフト演算によ
り乗算を実現することができる。
は、あらかじめ求められた固定値を用いられ、そのた
め、生成多項式と情報多項式の係数の演算におけるガロ
ア体の乗算を行う乗算器としては、係数器と呼ばれる固
定値乗算器を用いたものが用いられる。係数器は、RS
符号が巡回符号であることから、ビットシフト演算によ
り乗算を実現することができる。
【0022】しかしながら、係数器のビットシフト演算
は、そのビットシフトの規則性が、原始多項式により規
定される,より具体的にはαm の値により決まるため、
仮に、全く同じ固定値乗算を行なう場合でも、原始多項
式が異なると、全く異なったビットシフト演算を行なわ
なけらばならない。そのため、原始多項式が変わると、
誤り訂正符号を作成することができなくなるという問題
があった。また、仮に誤り訂正符号を作成できるように
するためには、各原始多項式に対応した全く異なった係
数器、及びこれを備えた乗算器を用意する必要があると
いう問題があった。
は、そのビットシフトの規則性が、原始多項式により規
定される,より具体的にはαm の値により決まるため、
仮に、全く同じ固定値乗算を行なう場合でも、原始多項
式が異なると、全く異なったビットシフト演算を行なわ
なけらばならない。そのため、原始多項式が変わると、
誤り訂正符号を作成することができなくなるという問題
があった。また、仮に誤り訂正符号を作成できるように
するためには、各原始多項式に対応した全く異なった係
数器、及びこれを備えた乗算器を用意する必要があると
いう問題があった。
【0023】また、生成多項式(1) におけるiの初期値
は、RS符号を用いる系によって異なる。先にも述べた
が、通信系では、一般にi=0、ディスク系では、一般
にi=120である。生成多項式(1) の各次数の係数C
は、iが一定であれば固定値となるが、iが変われば、
各次数の係数Cも全く異なった固定値となる。したがっ
て、生成多項式が変わると、各生成多項式に対応した各
次数の係数を用意する必要がある。しかしながら、従来
は、生成多項式の各係数値としては、単一の生成多項式
についてあらかじめ求めておき、この係数値を用いて情
報多項式の除算を行うようにしていたため、生成多項式
が変化すると誤り訂正符号を作成することができなくな
るという問題があった。
は、RS符号を用いる系によって異なる。先にも述べた
が、通信系では、一般にi=0、ディスク系では、一般
にi=120である。生成多項式(1) の各次数の係数C
は、iが一定であれば固定値となるが、iが変われば、
各次数の係数Cも全く異なった固定値となる。したがっ
て、生成多項式が変わると、各生成多項式に対応した各
次数の係数を用意する必要がある。しかしながら、従来
は、生成多項式の各係数値としては、単一の生成多項式
についてあらかじめ求めておき、この係数値を用いて情
報多項式の除算を行うようにしていたため、生成多項式
が変化すると誤り訂正符号を作成することができなくな
るという問題があった。
【0024】さらに、誤り訂正数が変化する場合には、
誤り訂正符号作製回路の段数も変化させる必要がある。
例えば図6において誤り訂正数が1減少すると、段数を
(2t−2)とする必要がある。しかしながら、図6に
示すような誤り訂正符号作製回路を備えた従来のRS符
号化装置では段数を変更できないため、誤り訂正数を変
化させることができないという問題があった。
誤り訂正符号作製回路の段数も変化させる必要がある。
例えば図6において誤り訂正数が1減少すると、段数を
(2t−2)とする必要がある。しかしながら、図6に
示すような誤り訂正符号作製回路を備えた従来のRS符
号化装置では段数を変更できないため、誤り訂正数を変
化させることができないという問題があった。
【0025】
【発明が解決しようとする課題】このように、従来のリ
ードソロモン符号化装置及び方法では、全く同じアルゴ
リズムで、同じ手順により演算するにも関わらず、原始
多項式、生成多項式及び誤り訂正数が異なるとRS符号
化できなくなるという問題があった。また、仮に異なる
原始多項式、生成多項式及び誤り訂正数に対応しようと
した場合、ハードウェアを共有することが非常に困難と
なり、原始多項式,生成多項式、或いは誤り訂正数の変
化に各々対応して切り替えられるような係数器等を用意
しなければならないため、回路規模が膨大となるという
問題があった。そのため、一般的に、一種類の原始多項
式および生成多項式に対応したRS符号器がほとんどで
あった。この発明は上記のような問題点を解消するため
になされたものであり、原始多項式、生成多項式及び誤
り訂正数の変化に対応してリードソロモン符号化を行う
ことが可能なリードソロモン符号化装置及び方法を提供
することを目的とする。
ードソロモン符号化装置及び方法では、全く同じアルゴ
リズムで、同じ手順により演算するにも関わらず、原始
多項式、生成多項式及び誤り訂正数が異なるとRS符号
化できなくなるという問題があった。また、仮に異なる
原始多項式、生成多項式及び誤り訂正数に対応しようと
した場合、ハードウェアを共有することが非常に困難と
なり、原始多項式,生成多項式、或いは誤り訂正数の変
化に各々対応して切り替えられるような係数器等を用意
しなければならないため、回路規模が膨大となるという
問題があった。そのため、一般的に、一種類の原始多項
式および生成多項式に対応したRS符号器がほとんどで
あった。この発明は上記のような問題点を解消するため
になされたものであり、原始多項式、生成多項式及び誤
り訂正数の変化に対応してリードソロモン符号化を行う
ことが可能なリードソロモン符号化装置及び方法を提供
することを目的とする。
【0026】
【課題を解決するための手段】この発明に係るリードソ
ロモン符号化装置は、生成多項式を0とおいた場合にべ
き数が最小となる元である生成初期値と、拡大体の次数
をm(m≧1、mは整数)、原始元をαとしたとき、そ
のべきの1つであるαm の値である原始多項式設定値と
を入力とし、生成初期値または原始多項式設定値の少な
くともいずれか一方の変化に対応して生成多項式を展開
して各次数の係数からなる係数データを生成する生成多
項式係数生成手段と、情報データと、上記係数データと
を入力とし、該係数データを用いて上記情報データを生
成初期値または原始多項式設定値の変化に対応して除算
し、この除算により得られた剰余データを、上記情報デ
ータに結合してリードソロモン符号化したデータを形成
するデータ符号化手段とを備えたものである。
ロモン符号化装置は、生成多項式を0とおいた場合にべ
き数が最小となる元である生成初期値と、拡大体の次数
をm(m≧1、mは整数)、原始元をαとしたとき、そ
のべきの1つであるαm の値である原始多項式設定値と
を入力とし、生成初期値または原始多項式設定値の少な
くともいずれか一方の変化に対応して生成多項式を展開
して各次数の係数からなる係数データを生成する生成多
項式係数生成手段と、情報データと、上記係数データと
を入力とし、該係数データを用いて上記情報データを生
成初期値または原始多項式設定値の変化に対応して除算
し、この除算により得られた剰余データを、上記情報デ
ータに結合してリードソロモン符号化したデータを形成
するデータ符号化手段とを備えたものである。
【0027】また、上記リードソロモン符号化装置にお
いて、上記生成多項式係数生成手段とデータ符号化手段
は、複数の乗算器を備えており、該乗算器は、原始元α
のビットシフトしたものと、原始元αをビットシフトし
たものと原始多項式設定値αm との排他的論理和との組
合わせにより原始元αの乗算を行う係数器を、(m−
1)段シリアル接続してなるようにしたものである。
いて、上記生成多項式係数生成手段とデータ符号化手段
は、複数の乗算器を備えており、該乗算器は、原始元α
のビットシフトしたものと、原始元αをビットシフトし
たものと原始多項式設定値αm との排他的論理和との組
合わせにより原始元αの乗算を行う係数器を、(m−
1)段シリアル接続してなるようにしたものである。
【0028】また、上記リードソロモン符号化装置にお
いて、上記係数器を、原始元αを乗算するごとに、生成
初期値のベクトル値を左に1ビットシフトさせたものを
順次出力するとともに、最上位ビットが1の際には、次
数の増加時に上記原始元αのビットシフトしたものと原
始多項式設定値αm との排他的論理和を出力するものと
したものである。
いて、上記係数器を、原始元αを乗算するごとに、生成
初期値のベクトル値を左に1ビットシフトさせたものを
順次出力するとともに、最上位ビットが1の際には、次
数の増加時に上記原始元αのビットシフトしたものと原
始多項式設定値αm との排他的論理和を出力するものと
したものである。
【0029】上記リードソロモン符号化装置において、
上記生成多項式係数生成手段は、誤り訂正数をt( t≧
1、tは整数) としたとき、生成初期値に対して原始元
αの乗算を繰り返し、この繰り返しごとに乗算結果を出
力する第2tの乗算器と、生成初期値と上記乗算手段の
乗算結果との乗算を行った後、その乗算結果と上記第2
tの乗算結果との乗算を繰り返す第0の乗算器と、第0
乗算器の出力をデータ更新しながら保持する第0のレジ
スタと、第0のレジスタの出力を一方の入力とする、2
つの入力の加算を行う第1の加算器と、この第1の加算
器の出力を順次更新しながら保持する第1のレジスタ
と、この第1のレジスタの出力と上記第2tの乗算器の
出力との乗算を行い、その結果を上記第1の加算器の他
方の入力に入力させる第1の乗算器と、第(N−1)の
レジスタ(2t−1≧N≧2、Nは整数)の出力を一方
の入力とする、2つの入力の加算を行う第Nの加算器
と、この第Nの加算器の出力を順次更新しながら保持す
る第Nのレジスタと、この第Nのレジスタの出力と上記
第2tの乗算器の出力との乗算を行い、その結果を上記
第Nの加算器の他方の入力に入力させる第Nの乗算器と
を備え、上記第0〜第(2t−1)のレジスタにそれぞ
れ保持されているデータを、生成多項式の係数データと
して出力するようにしたものである。
上記生成多項式係数生成手段は、誤り訂正数をt( t≧
1、tは整数) としたとき、生成初期値に対して原始元
αの乗算を繰り返し、この繰り返しごとに乗算結果を出
力する第2tの乗算器と、生成初期値と上記乗算手段の
乗算結果との乗算を行った後、その乗算結果と上記第2
tの乗算結果との乗算を繰り返す第0の乗算器と、第0
乗算器の出力をデータ更新しながら保持する第0のレジ
スタと、第0のレジスタの出力を一方の入力とする、2
つの入力の加算を行う第1の加算器と、この第1の加算
器の出力を順次更新しながら保持する第1のレジスタ
と、この第1のレジスタの出力と上記第2tの乗算器の
出力との乗算を行い、その結果を上記第1の加算器の他
方の入力に入力させる第1の乗算器と、第(N−1)の
レジスタ(2t−1≧N≧2、Nは整数)の出力を一方
の入力とする、2つの入力の加算を行う第Nの加算器
と、この第Nの加算器の出力を順次更新しながら保持す
る第Nのレジスタと、この第Nのレジスタの出力と上記
第2tの乗算器の出力との乗算を行い、その結果を上記
第Nの加算器の他方の入力に入力させる第Nの乗算器と
を備え、上記第0〜第(2t−1)のレジスタにそれぞ
れ保持されているデータを、生成多項式の係数データと
して出力するようにしたものである。
【0030】また、上記リードソロモン符号化装置にお
いて、上記データ符号化手段は、誤り訂正数をt( t≧
1、tは整数) としたとき、上記生成多項式の係数デー
タの第0次の値と情報データとの乗算を行う第0の乗算
器と、第0乗算器の出力を保持する第0レジスタと、生
成多項式の係数データの第R次( 2t−2≧R≧1)の
値と情報データとの乗算を行う第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)の加算器とを備えているようにしたものである。
いて、上記データ符号化手段は、誤り訂正数をt( t≧
1、tは整数) としたとき、上記生成多項式の係数デー
タの第0次の値と情報データとの乗算を行う第0の乗算
器と、第0乗算器の出力を保持する第0レジスタと、生
成多項式の係数データの第R次( 2t−2≧R≧1)の
値と情報データとの乗算を行う第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)の加算器とを備えているようにしたものである。
【0031】また、上記リードソロモン符号化装置にお
いて、上記各乗算器は、被乗数となる入力データを、順
次、原始元α倍して出力する、シリアル接続された複数
の係数器と、乗数となる入力データのビットデータと上
記各係数器の出力との論理積をとる複数個のゲート回路
と、この複数のゲート回路の各出力の排他的論理和をと
るゲート回路とを備えるようにしたものである。
いて、上記各乗算器は、被乗数となる入力データを、順
次、原始元α倍して出力する、シリアル接続された複数
の係数器と、乗数となる入力データのビットデータと上
記各係数器の出力との論理積をとる複数個のゲート回路
と、この複数のゲート回路の各出力の排他的論理和をと
るゲート回路とを備えるようにしたものである。
【0032】また、上記リードソロモン符号化装置にお
いて、上記係数器は、被乗数となる入力データの最上位
ビット以外のビットをビットシフトさせて保持するとと
もに、該ビットシフトさせたデータに最下位データとし
て0を付加して出力するレジスタと、上記入力データの
最上位ビットを入力とし、該最上位ビットが1の時は原
始多項式設定値と上記レジスタの出力との排他的論理和
を選択し出力し、0の時は上記レジスタの出力を選択し
出力するセレクタとを備えるようにしたものである。
いて、上記係数器は、被乗数となる入力データの最上位
ビット以外のビットをビットシフトさせて保持するとと
もに、該ビットシフトさせたデータに最下位データとし
て0を付加して出力するレジスタと、上記入力データの
最上位ビットを入力とし、該最上位ビットが1の時は原
始多項式設定値と上記レジスタの出力との排他的論理和
を選択し出力し、0の時は上記レジスタの出力を選択し
出力するセレクタとを備えるようにしたものである。
【0033】また、上記リードソロモン符号化装置にお
いて、上記生成多項式係数生成手段は、誤り訂正数t
(t≧1、tは整数)を入力として、この誤り訂正数t
の変化に対応して生成多項式を展開して各次数の係数か
らなる係数データを生成するものであり、上記データ符
号化手段は、誤り訂正数tを入力とし、誤り訂正数tの
変化に応じて上記情報データを除算するようにしたもの
である。
いて、上記生成多項式係数生成手段は、誤り訂正数t
(t≧1、tは整数)を入力として、この誤り訂正数t
の変化に対応して生成多項式を展開して各次数の係数か
らなる係数データを生成するものであり、上記データ符
号化手段は、誤り訂正数tを入力とし、誤り訂正数tの
変化に応じて上記情報データを除算するようにしたもの
である。
【0034】また、上記リードソロモン符号化装置にお
いて、誤り訂正数の最大値を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)の加算器の出力を保
持する第2Mのレジスタと、第2Mの乗算器の出力と第
(2M−1)のレジスタに保持されているデータとの加
算を行う第(2M−1)の加算器と、第(2M−1)の
加算器の出力と、第2Mの乗算器の出力とを選択する第
2Mのセレクタと、第2Mのセレクタの出力を保持する
第2Mのレジスタと、生成多項式の係数データの第(2
s−1)次の値と情報データとの乗算を行う第(2s−
1)の乗算器と、第(2s−1)の乗算器の出力と第
(2s−2)のレジスタに保持されているデータとの加
算を行う第(2s−2)の加算器と、第(2s−2)の
加算器の出力を保持する第(2s−1)のレジスタとを
含み、入力される誤り訂正数tに対して、上記第2(s
−t) のセレクタが第2(s−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)の加算器の出力を保
持する第2Mのレジスタと、第2Mの乗算器の出力と第
(2M−1)のレジスタに保持されているデータとの加
算を行う第(2M−1)の加算器と、第(2M−1)の
加算器の出力と、第2Mの乗算器の出力とを選択する第
2Mのセレクタと、第2Mのセレクタの出力を保持する
第2Mのレジスタと、生成多項式の係数データの第(2
s−1)次の値と情報データとの乗算を行う第(2s−
1)の乗算器と、第(2s−1)の乗算器の出力と第
(2s−2)のレジスタに保持されているデータとの加
算を行う第(2s−2)の加算器と、第(2s−2)の
加算器の出力を保持する第(2s−1)のレジスタとを
含み、入力される誤り訂正数tに対して、上記第2(s
−t) のセレクタが第2(s−t) の乗算器の出力を選
択するようにしたものである。
【0035】また、この発明に係るリードソロモン符号
化方法は、生成多項式を0とおいた場合に、べき数が最
小となる元である生成初期値と、拡大体の次数をm(m
≧1、mは整数)、原始元をαとしたとき、そのべきの
1つであるαm の値である原始多項式設定値とを入力と
し、生成初期値または原始多項式設定値の少なくともい
ずれか一方の変化に対応して生成多項式を展開して各次
数の係数からなる係数データを生成し、情報データと、
上記係数データとを入力とし、該係数データを用いて上
記情報データを生成初期値または原始多項式設定値の変
化に対応して除算し、この除算により得られた剰余デー
タを、上記情報データに結合してリードソロモン符号化
したデータを形成するものである。
化方法は、生成多項式を0とおいた場合に、べき数が最
小となる元である生成初期値と、拡大体の次数をm(m
≧1、mは整数)、原始元をαとしたとき、そのべきの
1つであるαm の値である原始多項式設定値とを入力と
し、生成初期値または原始多項式設定値の少なくともい
ずれか一方の変化に対応して生成多項式を展開して各次
数の係数からなる係数データを生成し、情報データと、
上記係数データとを入力とし、該係数データを用いて上
記情報データを生成初期値または原始多項式設定値の変
化に対応して除算し、この除算により得られた剰余デー
タを、上記情報データに結合してリードソロモン符号化
したデータを形成するものである。
【0036】また、上記リードソロモン符号化方法にお
いて、上記生成多項式の展開は、誤り訂正数t(t≧
1、tは整数)を入力とし、この誤り訂正数tの変化に
対応して行われ、上記情報データの除算は、誤り訂正数
tを入力とし、この誤り訂正数tの変化に対応して行わ
れるようにしたものである。
いて、上記生成多項式の展開は、誤り訂正数t(t≧
1、tは整数)を入力とし、この誤り訂正数tの変化に
対応して行われ、上記情報データの除算は、誤り訂正数
tを入力とし、この誤り訂正数tの変化に対応して行わ
れるようにしたものである。
【0037】
【発明の実施の形態】図1は本発明の実施の形態に係る
リードソロモン符号化装置の構成を模式的に示すブロッ
ク図であり、生成多項式係数生成ブロック1及びデータ
符号化ブロック2の2つの機能ブロックからなってい
る。生成多項式係数生成ブロック1は生成多項式係数生
成初期値(以下、生成初期値と称す)3,原始多項式設
定値4及び誤り訂正数5を入力とし、生成多項式係数デ
ータ8をデータ符号化ブロック2に出力する。また、デ
ータ符号化ブロック2は、原始多項式設定値4,最大の
誤り訂正数s(s≧1、以下最大訂正数と称す)とした
場合の誤り訂正数t( s≧t≧1、tは整数) を定義す
る誤り訂正数データ5,符号長データ6,情報データ
7,及び生成多項式係数データ8を入力としリードソロ
モン符号化された符号化データ9を出力する。
リードソロモン符号化装置の構成を模式的に示すブロッ
ク図であり、生成多項式係数生成ブロック1及びデータ
符号化ブロック2の2つの機能ブロックからなってい
る。生成多項式係数生成ブロック1は生成多項式係数生
成初期値(以下、生成初期値と称す)3,原始多項式設
定値4及び誤り訂正数5を入力とし、生成多項式係数デ
ータ8をデータ符号化ブロック2に出力する。また、デ
ータ符号化ブロック2は、原始多項式設定値4,最大の
誤り訂正数s(s≧1、以下最大訂正数と称す)とした
場合の誤り訂正数t( s≧t≧1、tは整数) を定義す
る誤り訂正数データ5,符号長データ6,情報データ
7,及び生成多項式係数データ8を入力としリードソロ
モン符号化された符号化データ9を出力する。
【0038】以下、本実施の形態に係るリードソロモン
符号化装置について説明する。なお、説明の便宜上、誤
り訂正数t= 10とし、符号長データ6、即ち情報デー
タ7の符号長を255とする。また拡大体の次数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 とする。
符号化装置について説明する。なお、説明の便宜上、誤
り訂正数t= 10とし、符号長データ6、即ち情報デー
タ7の符号長を255とする。また拡大体の次数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 とする。
【0039】ここで、従来の技術においても説明したよ
うに、原始元は、規則的に決められたベクトル値を有
し、次数が増加するに従い、左にビットシフトするとと
もに、最上位ビットが1の場合は、これを左にビットシ
フトした後、αm のベクトル値を加算した値が、次の次
数のベクトル値となる。そこで、原子元αのべきの1つ
であるrαm =α8 を求めて、これを原始多項式設定値
4としてガロア演算に用いるようにする。
うに、原始元は、規則的に決められたベクトル値を有
し、次数が増加するに従い、左にビットシフトするとと
もに、最上位ビットが1の場合は、これを左にビットシ
フトした後、αm のベクトル値を加算した値が、次の次
数のベクトル値となる。そこで、原子元αのべきの1つ
であるrαm =α8 を求めて、これを原始多項式設定値
4としてガロア演算に用いるようにする。
【0040】例えば、原始多項式が上記P(x) の場合、
P(α)=0 とすると、 α8 = α4+α3+α2+1 となり、このα8 をベクトル表現した値は、 α8 =00011101 となる。
P(α)=0 とすると、 α8 = α4+α3+α2+1 となり、このα8 をベクトル表現した値は、 α8 =00011101 となる。
【0041】このα8 のベクトル値を16進数表現した
値、「1d」を原始多項式の初期値4として入力してやる
ことにより符号化演算を行なう。補足であるが、ここ
で、仮に、 P(x)=x8 +x8 +x2 +x+1 であるならば、α8=10000111となり、原始多項式設定値
4は、16進数表現で「87」となる。このように使用す
る原始多項式によって、原始多項式設定値4は異なるも
のとなる。
値、「1d」を原始多項式の初期値4として入力してやる
ことにより符号化演算を行なう。補足であるが、ここ
で、仮に、 P(x)=x8 +x8 +x2 +x+1 であるならば、α8=10000111となり、原始多項式設定値
4は、16進数表現で「87」となる。このように使用す
る原始多項式によって、原始多項式設定値4は異なるも
のとなる。
【0042】次に、生成多項式について、その生成多項
式を0とおいた時に、べき数が最小となる元を生成多項
式生成初期値3としてあらかじめ求めておく。例えば、 G(x)=( x−α0)( x−α1)( x−α2)・・・( x−α19) であるならば、生成初期値3はα0 のベクトル値を16
進数表現した値となる。また、生成多項式が G(x)=( x−α120)( x−α121)( x−α122)・・・( x−α139) であるならば、生成初期値3はα120 のベクトル値を1
6進数表現した値となる。このベクトル値を16進数表
現した値は、原始多項式によって決まるから、例えば、
原始多項式が P(x)=x8 +x4 +x3 +x2 +1 の場合は、α120 は「3b」となり、 P(x)=x8 +x7 +x2 +x+1 の場合は、α120 は「e1」となる。このようにしてあら
かじめ使用する生成多項式に応じて生成初期値3を求め
ておく。なお、α0 が生成初期値3の場合は、どのよう
な原始多項式でも、「01」となる。
式を0とおいた時に、べき数が最小となる元を生成多項
式生成初期値3としてあらかじめ求めておく。例えば、 G(x)=( x−α0)( x−α1)( x−α2)・・・( x−α19) であるならば、生成初期値3はα0 のベクトル値を16
進数表現した値となる。また、生成多項式が G(x)=( x−α120)( x−α121)( x−α122)・・・( x−α139) であるならば、生成初期値3はα120 のベクトル値を1
6進数表現した値となる。このベクトル値を16進数表
現した値は、原始多項式によって決まるから、例えば、
原始多項式が P(x)=x8 +x4 +x3 +x2 +1 の場合は、α120 は「3b」となり、 P(x)=x8 +x7 +x2 +x+1 の場合は、α120 は「e1」となる。このようにしてあら
かじめ使用する生成多項式に応じて生成初期値3を求め
ておく。なお、α0 が生成初期値3の場合は、どのよう
な原始多項式でも、「01」となる。
【0043】各データについて整理すると、本実施の形
態においては、説明を容易とするために、生成多項式の
初期値3を「01」(16進数) とし、原始多項式設定値
4を「1d」( 16進数) とし、誤り訂正数5をt=10
( 10進数) とし、符号長データ6を255(10進
数) 、情報データ7は、順次、バイトデータが入力され
るものとする。
態においては、説明を容易とするために、生成多項式の
初期値3を「01」(16進数) とし、原始多項式設定値
4を「1d」( 16進数) とし、誤り訂正数5をt=10
( 10進数) とし、符号長データ6を255(10進
数) 、情報データ7は、順次、バイトデータが入力され
るものとする。
【0044】生成多項式係数生成ブロック1の概略につ
いて説明する。生成多項式係数生成ブロック1は生成多
項式を順次展開していくものであり、まず、生成多項式
係数生成初期値3をもとに、生成初期値をα倍したα1
を生成し、この値を用いて、次の2つの項、 (x2 −Ax−B)(x−α2)、(但しA=α0 +α1 、
B=α0 ×α1 とする) を展開したときの、係数を計算する。即ち、α0 +
α1 、α0 ×α1 を計算して、計算データを保持する。
そして、次に保持したα1 をもとに、この値をα倍した
α2 を生成し、この値を保持し、上記式を展開したとき
の、係数を計算する。即ち、A+α2 、A×α2 +B、
B×α2 を計算して、各値を保持する。
いて説明する。生成多項式係数生成ブロック1は生成多
項式を順次展開していくものであり、まず、生成多項式
係数生成初期値3をもとに、生成初期値をα倍したα1
を生成し、この値を用いて、次の2つの項、 (x2 −Ax−B)(x−α2)、(但しA=α0 +α1 、
B=α0 ×α1 とする) を展開したときの、係数を計算する。即ち、α0 +
α1 、α0 ×α1 を計算して、計算データを保持する。
そして、次に保持したα1 をもとに、この値をα倍した
α2 を生成し、この値を保持し、上記式を展開したとき
の、係数を計算する。即ち、A+α2 、A×α2 +B、
B×α2 を計算して、各値を保持する。
【0045】こうしてα3 、α4 …と順次、生成多項式
を展開する際に必要となるガロア体の原始元を算出する
と同時に、G(x) の各項を展開する計算を繰り返して係
数を求めて、最高次数係数の値「1」以外の20個の値
を算出して保持した後、生成多項式係数データ8とし
て、データ符号化ブロック2に出力する。生成多項式係
数生成ブロック1の詳細な構成については、後述する。
を展開する際に必要となるガロア体の原始元を算出する
と同時に、G(x) の各項を展開する計算を繰り返して係
数を求めて、最高次数係数の値「1」以外の20個の値
を算出して保持した後、生成多項式係数データ8とし
て、データ符号化ブロック2に出力する。生成多項式係
数生成ブロック1の詳細な構成については、後述する。
【0046】次にデータ符号化ブロック2について説明
する。符号長が255で、誤り訂正数が10であること
から、データ符号化ブロック2においては、255−2
×10=235個の情報データ7が順次入力される。こ
の情報データをa234 、a23 3 …a0 とすると、従来の
技術において説明したように、情報多項式は、 I(x)=a234 x254 +a233 x253 +…+a1 x21+a
0 x20 とおくことができる。
する。符号長が255で、誤り訂正数が10であること
から、データ符号化ブロック2においては、255−2
×10=235個の情報データ7が順次入力される。こ
の情報データをa234 、a23 3 …a0 とすると、従来の
技術において説明したように、情報多項式は、 I(x)=a234 x254 +a233 x253 +…+a1 x21+a
0 x20 とおくことができる。
【0047】一方、生成多項式係数生成ブロック1で算
出されて入力される係数データを、c19、c18…c0 と
すると、生成多項式は、 G(x)=x20+c19x19+c18x18+c17x17+…+c2
x2 +c1 x+c0 となる。データ符号化ブロック2は、上記I(x) をG
(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+…+
b1 x+b0 となる。
出されて入力される係数データを、c19、c18…c0 と
すると、生成多項式は、 G(x)=x20+c19x19+c18x18+c17x17+…+c2
x2 +c1 x+c0 となる。データ符号化ブロック2は、上記I(x) をG
(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+…+
b1 x+b0 となる。
【0048】よって、符号化多項式は、 X(x)=I(x) +R(x) = a234 x254 +a233 x253 +…+a1 x21+a0 x20+b19x19+b18 x18+…+b1 x+b0 となる。
【0049】従って、リードソロモン符号化データは、
上記符号化多項式の係数であるa23 4 、a233 …a0 、
b19、b18…b0 の255個のデータが出力される。こ
の剰余多項式R(x) の算出は、情報多項式の各次数の係
数を、生成多項式の各次数の係数で除算を行なうことに
よって実現する。データ符号化ブロック2の内部構成に
ついても後述する。
上記符号化多項式の係数であるa23 4 、a233 …a0 、
b19、b18…b0 の255個のデータが出力される。こ
の剰余多項式R(x) の算出は、情報多項式の各次数の係
数を、生成多項式の各次数の係数で除算を行なうことに
よって実現する。データ符号化ブロック2の内部構成に
ついても後述する。
【0050】図2は生成多項式係数生成ブロック1の構
成を示す回路図であり、係数計算の制御を行なう制御ブ
ロック10と、第0,第1,第2,第N(3≦N≦2s
−2、Nは整数),第(2s−1)の2s個のガロア乗
算器21〜25と、定数αを乗算する第2sのガロア乗
算器20と、第1,第2,第N,第(2s−1 )の(2
s−1)個のガロア加算器60〜63と、第0,第1,
第2,第N,第(2s−1)の2s個の係数データ保持
レジスタ42〜46と、生成多項式を展開するための初
期値データ入力レジスタ41と、初期値データ保持レジ
スタ40と、第1および第2の2個の初期値データセレ
クタ30,51と、第0,第1,第2,第N,第(2s
−1)の2s個の入力データセレクタ50,52〜55
と、第0,第1,第2,第N,第(2s−1)の2s個
の乗算器データセレクタ31〜35からなっている。
成を示す回路図であり、係数計算の制御を行なう制御ブ
ロック10と、第0,第1,第2,第N(3≦N≦2s
−2、Nは整数),第(2s−1)の2s個のガロア乗
算器21〜25と、定数αを乗算する第2sのガロア乗
算器20と、第1,第2,第N,第(2s−1 )の(2
s−1)個のガロア加算器60〜63と、第0,第1,
第2,第N,第(2s−1)の2s個の係数データ保持
レジスタ42〜46と、生成多項式を展開するための初
期値データ入力レジスタ41と、初期値データ保持レジ
スタ40と、第1および第2の2個の初期値データセレ
クタ30,51と、第0,第1,第2,第N,第(2s
−1)の2s個の入力データセレクタ50,52〜55
と、第0,第1,第2,第N,第(2s−1)の2s個
の乗算器データセレクタ31〜35からなっている。
【0051】制御ブロック10は、誤り訂正数tによ
り、生成多項式における各次数の係数の個数、および、
係数の値が異なることから、入力される誤り訂正数tを
定義する誤り訂正数データ5に対応して、情報データ7
の冗長バイト長をチェックして係数生成計算の終了を示
唆する信号を第1及び第2の初期値データセレクタ3
0,51に出力する。また、第0の入力データセレクタ
50を制御する入力データ制御信号15と第1〜第(2
s−1)の入力データセレクタ52〜55を制御するシ
フトデータセレクタ信号16と、第0〜第(2s−1)
の乗算器データセレクタ31〜35を制御する乗算器デ
ータセレクタ制御信号14を出力する。
り、生成多項式における各次数の係数の個数、および、
係数の値が異なることから、入力される誤り訂正数tを
定義する誤り訂正数データ5に対応して、情報データ7
の冗長バイト長をチェックして係数生成計算の終了を示
唆する信号を第1及び第2の初期値データセレクタ3
0,51に出力する。また、第0の入力データセレクタ
50を制御する入力データ制御信号15と第1〜第(2
s−1)の入力データセレクタ52〜55を制御するシ
フトデータセレクタ信号16と、第0〜第(2s−1)
の乗算器データセレクタ31〜35を制御する乗算器デ
ータセレクタ制御信号14を出力する。
【0052】初期値データ入力レジスタ41は、生成多
項式を展開するための生成初期値データ3を受けて保持
した後、第0の乗算器データセレクタ31および第2の
初期値データセレクタ51に出力する。第1の初期値デ
ータセレクタ30は、生成初期値データ3と、初期値デ
ータ保持レジスタ40の出力データのいずれか一方を選
択し、第20のガロア乗算器20に出力する。
項式を展開するための生成初期値データ3を受けて保持
した後、第0の乗算器データセレクタ31および第2の
初期値データセレクタ51に出力する。第1の初期値デ
ータセレクタ30は、生成初期値データ3と、初期値デ
ータ保持レジスタ40の出力データのいずれか一方を選
択し、第20のガロア乗算器20に出力する。
【0053】初期値データ保持レジスタ40は、第1の
初期値データセレクタ30で選択されたデータと定数値
である原始元αとを、原始多項式に対応したガロア演算
則に従って、第20のガロア乗算器20で乗算したデー
タを受けて保持した後、第1の初期値データセレクタ3
0に出力をフィードバックすると共に、第0のガロア乗
算器21に出力する。第0のガロア乗算器21は、係数
器データ保持レジスタ40の出力データと、第0の乗算
器データセレクタ31の出力データとをガロア乗算した
後、乗算結果を第0の入力データセレクタ50に出力す
る。
初期値データセレクタ30で選択されたデータと定数値
である原始元αとを、原始多項式に対応したガロア演算
則に従って、第20のガロア乗算器20で乗算したデー
タを受けて保持した後、第1の初期値データセレクタ3
0に出力をフィードバックすると共に、第0のガロア乗
算器21に出力する。第0のガロア乗算器21は、係数
器データ保持レジスタ40の出力データと、第0の乗算
器データセレクタ31の出力データとをガロア乗算した
後、乗算結果を第0の入力データセレクタ50に出力す
る。
【0054】第0の入力データセレクタ50は、第0の
ガロア乗算器21の出力データあるいは、定数値0を選
択して、第0の係数データ保持レジスタ42に出力し、
第0の係数データ保持レジスタ42は、第0の入力デー
タセレクタ50の出力データを受けて保持した後、これ
を第2の初期値データセレクタ51および第0の乗算器
データセレクタ31に出力し、第0の乗算器データセレ
クタ31は、初期値データ入力レジスタ41から出力さ
れるデータあるいは第0の係数データ保持レジスタ42
から出力されるデータを選択して、第0のガロア乗算器
21に出力する。
ガロア乗算器21の出力データあるいは、定数値0を選
択して、第0の係数データ保持レジスタ42に出力し、
第0の係数データ保持レジスタ42は、第0の入力デー
タセレクタ50の出力データを受けて保持した後、これ
を第2の初期値データセレクタ51および第0の乗算器
データセレクタ31に出力し、第0の乗算器データセレ
クタ31は、初期値データ入力レジスタ41から出力さ
れるデータあるいは第0の係数データ保持レジスタ42
から出力されるデータを選択して、第0のガロア乗算器
21に出力する。
【0055】第2の初期値データセレクタ51は、初期
値データ入力レジスタ41から出力されるデータあるい
は第0の係数データ保持レジスタ42から出力されるデ
ータを選択して、第1の入力データセレクタ52および
第1 のガロア加算器60に出力する。
値データ入力レジスタ41から出力されるデータあるい
は第0の係数データ保持レジスタ42から出力されるデ
ータを選択して、第1の入力データセレクタ52および
第1 のガロア加算器60に出力する。
【0056】第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に出力する。第(2
s−1)のガロア乗算器25は、係数器データ保持レジ
スタ40の出力データと、第(2s−1)の乗算器デー
タセレクタ35の出力データとを入力として、原始多項
式に対応したガロア演算則に従って、これらをガロア乗
算した後、乗算結果を第(2s−1)のガロア加算器6
3に出力する。
保持レジスタ40の出力データと、第1の乗算器データ
セレクタ32の出力データとを受けて、原始多項式に対
応したガロア演算則に従って、これらをガロア乗算した
後、その乗算結果を第1のガロア加算器60に出力す
る。第2のガロア乗算器23は、係数器データ保持レジ
スタ40の出力データと、第2の乗算器データセレクタ
33の出力データとを、原始多項式に対応したガロア演
算則に従ってガロア乗算した後、乗算結果を第2のガロ
ア加算器61に出力する。第N( 2s−2≧N≧3,N
は整数) のガロア乗算器24は、係数器データ保持レジ
スタ40の出力データと、第Nの乗算器データセレクタ
34の出力データとを入力として、原始多項式に対応し
たガロア演算則に従って、これらをガロア乗算した後、
乗算結果を第Nのガロア加算器62に出力する。第(2
s−1)のガロア乗算器25は、係数器データ保持レジ
スタ40の出力データと、第(2s−1)の乗算器デー
タセレクタ35の出力データとを入力として、原始多項
式に対応したガロア演算則に従って、これらをガロア乗
算した後、乗算結果を第(2s−1)のガロア加算器6
3に出力する。
【0057】第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に出力す
る。
の係数データ保持レジスタ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に出力す
る。
【0058】第1のガロア加算器60は、第1のガロア
乗算器22の出力データと、第2の初期値データセレク
タ51の出力データとを入力として、これらのガロア加
算を行なって、第1の入力データセレクタ52に出力す
る。第2のガロア加算器61は、第2のガロア乗算器2
3の出力データと、第1の係数データ保持レジスタ43
の出力データを受けてガロア加算を行なって、第2の入
力データセレクタ53に出力する。第Nのガロア加算器
62は、第Nのガロア乗算器24の出力データと、第
(N−1)の係数データ保持レジスタの出力データとを
受けてガロア加算を行なって第Nの入力データセレクタ
54に出力する。第(2s−1)のガロア加算器63
は、第(2s−1)のガロア乗算器25の出力データ
と、第(2s−2)の係数データ保持レジスタの出力デ
ータとを受けてガロア加算を行なって第(2s−1)の
入力データセレクタ55に出力する。
乗算器22の出力データと、第2の初期値データセレク
タ51の出力データとを入力として、これらのガロア加
算を行なって、第1の入力データセレクタ52に出力す
る。第2のガロア加算器61は、第2のガロア乗算器2
3の出力データと、第1の係数データ保持レジスタ43
の出力データを受けてガロア加算を行なって、第2の入
力データセレクタ53に出力する。第Nのガロア加算器
62は、第Nのガロア乗算器24の出力データと、第
(N−1)の係数データ保持レジスタの出力データとを
受けてガロア加算を行なって第Nの入力データセレクタ
54に出力する。第(2s−1)のガロア加算器63
は、第(2s−1)のガロア乗算器25の出力データ
と、第(2s−2)の係数データ保持レジスタの出力デ
ータとを受けてガロア加算を行なって第(2s−1)の
入力データセレクタ55に出力する。
【0059】第1の入力データセレクタ52は、第2の
初期値データセレクタ51の出力データ、あるいは、第
1のガロア加算器60の出力データを選択して、第1の
係数データ保持レジスタ43に出力し、第2の入力デー
タセレクタ53は、第1の係数データ保持レジスタ43
の出力データ、第2のガロア加算器61の出力データ、
あるいは、定数値1を選択して、第2の係数保持レジス
タ44に出力する。第Nの入力データセレクタ54は、
第(N−1)の係数データ保持レジスタの出力データ、
第Nのガロア加算器62の出力データ、あるいは、定数
値1を選択して、第Nの係数データ保持レジスタ45に
出力する。第(2s−1)の入力データセレクタ54
は、第(2s−2)の係数データ保持レジスタの出力デ
ータ、第(2s−1)のガロア加算器63の出力デー
タ、あるいは、定数値1を選択して、第(2s−1)の
係数データ保持レジスタ46に出力する。
初期値データセレクタ51の出力データ、あるいは、第
1のガロア加算器60の出力データを選択して、第1の
係数データ保持レジスタ43に出力し、第2の入力デー
タセレクタ53は、第1の係数データ保持レジスタ43
の出力データ、第2のガロア加算器61の出力データ、
あるいは、定数値1を選択して、第2の係数保持レジス
タ44に出力する。第Nの入力データセレクタ54は、
第(N−1)の係数データ保持レジスタの出力データ、
第Nのガロア加算器62の出力データ、あるいは、定数
値1を選択して、第Nの係数データ保持レジスタ45に
出力する。第(2s−1)の入力データセレクタ54
は、第(2s−2)の係数データ保持レジスタの出力デ
ータ、第(2s−1)のガロア加算器63の出力デー
タ、あるいは、定数値1を選択して、第(2s−1)の
係数データ保持レジスタ46に出力する。
【0060】第1の係数データ保持レジスタ43は、第
1の入力データセレクタ52の出力データを受けて、保
持した後、第2のガロア加算器61、第1の乗算器デー
タセレクタ32、および、第2の入力データセレクタ5
3に出力する。第2の係数データ保持レジスタ44は、
第2の入力データセレクタ53の出力データを受けて、
保持した後、第3のガロア加算器、第2の乗算器データ
セレクタ33、第3の入力データセレクタに出力する。
第Nの係数データ保持レジスタ45は、第Nの入力デー
タセレクタ54の出力データを受けて、保持した後、第
(N+1)のガロア加算器、第Nの乗算器データセレク
タ34、第(N+1)の入力データセレクタに出力す
る。第(2s−1)の係数データ保持レジスタ46は、
第(2s−1)の入力データセレクタ55の出力データ
を受けて、保持した後、第(2s−1)の乗算器データ
セレクタ35に出力する。
1の入力データセレクタ52の出力データを受けて、保
持した後、第2のガロア加算器61、第1の乗算器デー
タセレクタ32、および、第2の入力データセレクタ5
3に出力する。第2の係数データ保持レジスタ44は、
第2の入力データセレクタ53の出力データを受けて、
保持した後、第3のガロア加算器、第2の乗算器データ
セレクタ33、第3の入力データセレクタに出力する。
第Nの係数データ保持レジスタ45は、第Nの入力デー
タセレクタ54の出力データを受けて、保持した後、第
(N+1)のガロア加算器、第Nの乗算器データセレク
タ34、第(N+1)の入力データセレクタに出力す
る。第(2s−1)の係数データ保持レジスタ46は、
第(2s−1)の入力データセレクタ55の出力データ
を受けて、保持した後、第(2s−1)の乗算器データ
セレクタ35に出力する。
【0061】また、第0から第(2s−1)の2s個の
係数データ保持レジスタ42〜46に保持されたデータ
が、生成多項式を展開した際の、第0から第(2s−
1)の2s個の生成多項式係数データ8として出力され
る。第(2s−1)の係数データ保持レジスタ46側の
データが高次側の係数データとなる。これらの係数デー
タ保持レジスタ42〜46は、制御ブロック10から出
力される係数計算終了示唆信号11がアクティブになっ
たときに出力データを保持し、データ符号化ブロック2
に対して出力する。
係数データ保持レジスタ42〜46に保持されたデータ
が、生成多項式を展開した際の、第0から第(2s−
1)の2s個の生成多項式係数データ8として出力され
る。第(2s−1)の係数データ保持レジスタ46側の
データが高次側の係数データとなる。これらの係数デー
タ保持レジスタ42〜46は、制御ブロック10から出
力される係数計算終了示唆信号11がアクティブになっ
たときに出力データを保持し、データ符号化ブロック2
に対して出力する。
【0062】次に、生成多項式係数生成ブロック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 」は、第1から第19の各ガロア乗算器21〜
25に入力される。
作について説明する。ここでは特に誤り訂正数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 」は、第1から第19の各ガロア乗算器21〜
25に入力される。
【0063】先にも記したが、本ブロックでは、まず、
( x−α0)( x−α1)を計算するので、α0 +α1 、α
0 ×α1 を求める必要がある。そこで、まず、第0のガ
ロア乗算器21および第1のガロア乗算器22に注目す
る。第0ガロア乗算器21の一方の入力には、係数保持
レジスタ40からα1 が入力されているので、もう一方
の入力には、第0乗算器データセレクタ31において、
初期値データ入力レジスタ41の出力データを選択する
ように制御ブロック10で制御する。これにより、第0
のガロア乗算器21では、α0 ×α1 が実行されて、第
0入力データセレクタ50に送られ、さらに、第0係数
データ保持レジスタ42で保持される。
( x−α0)( x−α1)を計算するので、α0 +α1 、α
0 ×α1 を求める必要がある。そこで、まず、第0のガ
ロア乗算器21および第1のガロア乗算器22に注目す
る。第0ガロア乗算器21の一方の入力には、係数保持
レジスタ40からα1 が入力されているので、もう一方
の入力には、第0乗算器データセレクタ31において、
初期値データ入力レジスタ41の出力データを選択する
ように制御ブロック10で制御する。これにより、第0
のガロア乗算器21では、α0 ×α1 が実行されて、第
0入力データセレクタ50に送られ、さらに、第0係数
データ保持レジスタ42で保持される。
【0064】ここで、ガロア乗算器20〜25は、入力
される原始多項式設定値4によって決まる,原始多項式
に対応したガロア演算則にしたがって乗算を実行する
が、各ガロア乗算器20〜25の構成および動作につい
ては後述する。
される原始多項式設定値4によって決まる,原始多項式
に対応したガロア演算則にしたがって乗算を実行する
が、各ガロア乗算器20〜25の構成および動作につい
ては後述する。
【0065】第1ガロア乗算器22の一方の入力にも、
係数保持レジスタ40からα1 が入力されているので、
もう一方の入力には、第1乗算器データセレクタ32に
おいて、定数値「1」を選択するように制御ブロック1
0で制御する。これにより、第1のガロア乗算器22か
らは、α1 がそのまま出力されて第1のガロア加算器6
0に入力される。この第1のガロア加算器60のもう一
方の入力には、第2の初期値データセレクタ51におい
て、初期値データ入力レジスタ41の出力データを選択
するように制御することで、α0 が入力される。したが
って、第1のガロア加算器60において、α0 +α1 が
実行されて、第1の入力データセレクタ52を経て、第
1の係数データ保持レジスタ43に保持される。
係数保持レジスタ40からα1 が入力されているので、
もう一方の入力には、第1乗算器データセレクタ32に
おいて、定数値「1」を選択するように制御ブロック1
0で制御する。これにより、第1のガロア乗算器22か
らは、α1 がそのまま出力されて第1のガロア加算器6
0に入力される。この第1のガロア加算器60のもう一
方の入力には、第2の初期値データセレクタ51におい
て、初期値データ入力レジスタ41の出力データを選択
するように制御することで、α0 が入力される。したが
って、第1のガロア加算器60において、α0 +α1 が
実行されて、第1の入力データセレクタ52を経て、第
1の係数データ保持レジスタ43に保持される。
【0066】次に、α0 +α1 =A、α0 ×α1 =Bと
した時に、( x2 −Ax−B)(x−α2)を展開したとき
の、各次数の係数を計算する。即ち、A+α2 、A×α
2 +B、B×α2 を計算する。
した時に、( x2 −Ax−B)(x−α2)を展開したとき
の、各次数の係数を計算する。即ち、A+α2 、A×α
2 +B、B×α2 を計算する。
【0067】係数器データ保持レジスタ40に保持され
ているα1 が第1の初期値データセレクタ30に入力さ
れるので、このセレクタ30において、今度は生成多項
式初期値データ3ではなく、係数器データ保持レジスタ
40の出力データを選択する。これにより、セレクタ3
0の出力値データを、第20ガロア乗算器20によりさ
らにα倍したα2 を生成し、係数器データ保持レジスタ
40は新たに、「α2」を保持する。したがって、第0
ガロア乗算器21から第19ガロア乗算器25の一方の
入力データに、「α2 」が入力される。
ているα1 が第1の初期値データセレクタ30に入力さ
れるので、このセレクタ30において、今度は生成多項
式初期値データ3ではなく、係数器データ保持レジスタ
40の出力データを選択する。これにより、セレクタ3
0の出力値データを、第20ガロア乗算器20によりさ
らにα倍したα2 を生成し、係数器データ保持レジスタ
40は新たに、「α2」を保持する。したがって、第0
ガロア乗算器21から第19ガロア乗算器25の一方の
入力データに、「α2 」が入力される。
【0068】ここで、第0ガロア乗算器21、第1ガロ
ア乗算器22および第2ガロア乗算器23の3つのガロ
ア乗算器に注目する。第0ガロア乗算器21のもう一方
の入力データを決定する第0乗算器データセレクタ31
では、初期値データ入力レジスタ41の出力データ、あ
るいは、第0係数データ保持レジスタ42の出力データ
が選択される。レジスタ41は生成多項式初期値データ
3を保持しており、レジスタ42は先の計算により生成
した係数データB=α0 ×α1 を保持している。そこ
で、今回、セレクタ31では、レジスタ42で保持して
いる係数データBを選択して、ガロア乗算器に入力し、
B×α2 を実行し、第0の入力データセレクタ50では
第0のガロア乗算器21の出力データを選択して、第0
係数データ保持レジスタ42のデータを更新して、B×
α2 を新たに保持する。
ア乗算器22および第2ガロア乗算器23の3つのガロ
ア乗算器に注目する。第0ガロア乗算器21のもう一方
の入力データを決定する第0乗算器データセレクタ31
では、初期値データ入力レジスタ41の出力データ、あ
るいは、第0係数データ保持レジスタ42の出力データ
が選択される。レジスタ41は生成多項式初期値データ
3を保持しており、レジスタ42は先の計算により生成
した係数データB=α0 ×α1 を保持している。そこ
で、今回、セレクタ31では、レジスタ42で保持して
いる係数データBを選択して、ガロア乗算器に入力し、
B×α2 を実行し、第0の入力データセレクタ50では
第0のガロア乗算器21の出力データを選択して、第0
係数データ保持レジスタ42のデータを更新して、B×
α2 を新たに保持する。
【0069】第1のガロア乗算器22のもう一方の入力
データを決定する第1乗算器データセレクタ32では、
先の計算で生成した、第1の係数データ保持レジスタ4
3の出力データA=α0 +α1 を選択して、第1ガロア
乗算器22のもう一方の入力データとし、A×α2 を計
算して、第1のガロア加算器60に出力する。第1のガ
ロア加算器60のもう一方の入力を決定する第2の初期
値データセレクタ51は、第0係数データ保持レジスタ
42に保持された先の計算で生成したデータB=α0 ×
α1 を選択し、ガロア加算器60で、A×α2 +Bが実
行される。第1の入力データセレクタ52は、加算器6
0の出力を選択して、第1の係数データ保持レジスタ4
3は、新たに、A×α2 +Bを保持する。
データを決定する第1乗算器データセレクタ32では、
先の計算で生成した、第1の係数データ保持レジスタ4
3の出力データA=α0 +α1 を選択して、第1ガロア
乗算器22のもう一方の入力データとし、A×α2 を計
算して、第1のガロア加算器60に出力する。第1のガ
ロア加算器60のもう一方の入力を決定する第2の初期
値データセレクタ51は、第0係数データ保持レジスタ
42に保持された先の計算で生成したデータB=α0 ×
α1 を選択し、ガロア加算器60で、A×α2 +Bが実
行される。第1の入力データセレクタ52は、加算器6
0の出力を選択して、第1の係数データ保持レジスタ4
3は、新たに、A×α2 +Bを保持する。
【0070】第2のガロア乗算器23のもう一方の入力
データを決定する第2の乗算器データセレクタ33で
は、定数値「1」を選択することで、第2のガロア乗算
器23は係数器データ保持レジスタ40から入力されて
いるα2 がそのまま第2のガロア加算器61に出力され
る。第2のガロア加算器61のもう一方の入力データ
は、先の計算で生成した、第1 の係数データ保持レジス
タの出力データA=α0 +α1 であるから、加算器60
においてA+α2 が実行されて、第2の入力データセレ
クタ53を経て、第2の係数データ保持レジスタ44に
入力される。
データを決定する第2の乗算器データセレクタ33で
は、定数値「1」を選択することで、第2のガロア乗算
器23は係数器データ保持レジスタ40から入力されて
いるα2 がそのまま第2のガロア加算器61に出力され
る。第2のガロア加算器61のもう一方の入力データ
は、先の計算で生成した、第1 の係数データ保持レジス
タの出力データA=α0 +α1 であるから、加算器60
においてA+α2 が実行されて、第2の入力データセレ
クタ53を経て、第2の係数データ保持レジスタ44に
入力される。
【0071】このようにα3 、α4 、…α19と、係数器
データ保持レジスタ40の値が更新されるにしたがっ
て、上述した計算と全く同様に、第3ガロア乗算器、第
4ガロア乗算器、…第19ガロア乗算器を順に使用し
て、第0から第19の係数データ保持レジスタ42〜4
6の値を更新する計算を繰り返し実行する。
データ保持レジスタ40の値が更新されるにしたがっ
て、上述した計算と全く同様に、第3ガロア乗算器、第
4ガロア乗算器、…第19ガロア乗算器を順に使用し
て、第0から第19の係数データ保持レジスタ42〜4
6の値を更新する計算を繰り返し実行する。
【0072】係数器データ保持レジスタ40の値がα19
に到達して、各係数の計算が終了した時点で、制御ブロ
ック10から出力される係数計算終了示唆信号11がア
クティブとなり、この示唆信号11がアクティブとなる
ことで係数データ保持レジスタ42〜46の値は保持状
態になり、係数値ce1 〜ce19が生成多項式係数データ8
として出力される。
に到達して、各係数の計算が終了した時点で、制御ブロ
ック10から出力される係数計算終了示唆信号11がア
クティブとなり、この示唆信号11がアクティブとなる
ことで係数データ保持レジスタ42〜46の値は保持状
態になり、係数値ce1 〜ce19が生成多項式係数データ8
として出力される。
【0073】以上の繰り返し演算により、以下の生成多
項式 G(x)=( x−α0)( x−α1)( x−α2)・・・( x−α19) が、順次展開されて、 G(x)=x20+c19x19+c18x18+c17x17+…+c2
x2 +c1 x+c0 となり、c0 からc19の20個の係数を持つ式になる。
なお、第19係数データ保持レジスタ46に保持される
データce19が高次側の係数c19に相当し、第0係数デー
タ保持レジスタ42に保持されるデータce0 が高次側の
係数c0 に相当する。
項式 G(x)=( x−α0)( x−α1)( x−α2)・・・( x−α19) が、順次展開されて、 G(x)=x20+c19x19+c18x18+c17x17+…+c2
x2 +c1 x+c0 となり、c0 からc19の20個の係数を持つ式になる。
なお、第19係数データ保持レジスタ46に保持される
データce19が高次側の係数c19に相当し、第0係数デー
タ保持レジスタ42に保持されるデータce0 が高次側の
係数c0 に相当する。
【0074】ここで、生成多項式が変化した場合には、
生成初期値3としてα0 の変わりに、生成多項式を0と
おいたときに、べき数が最小となる元を生成初期値3と
して入力してやれば上記と同様に生成多項式を展開して
係数を生成できる。したがって、この実施の形態によれ
ば、生成初期値3を入力として、これを用いて生成多項
式を展開して係数データ8を得る生成多項式係数生成ブ
ロック1を設けるようにしたから、生成多項式にあわせ
て生成初期値3をあらかじめ求めておき、これを入力し
てやることにより異なる生成多項式に対しても、これを
展開したときの各次数の係数を求めることが可能とな
り、生成多項式が異なる場合においても各生成多項式に
対応した係数データ8をデータ符号化ブロック2に出力
することが可能となり、生成多項式の変化に対応してリ
ードソロモン符号化を行うことが可能となる。
生成初期値3としてα0 の変わりに、生成多項式を0と
おいたときに、べき数が最小となる元を生成初期値3と
して入力してやれば上記と同様に生成多項式を展開して
係数を生成できる。したがって、この実施の形態によれ
ば、生成初期値3を入力として、これを用いて生成多項
式を展開して係数データ8を得る生成多項式係数生成ブ
ロック1を設けるようにしたから、生成多項式にあわせ
て生成初期値3をあらかじめ求めておき、これを入力し
てやることにより異なる生成多項式に対しても、これを
展開したときの各次数の係数を求めることが可能とな
り、生成多項式が異なる場合においても各生成多項式に
対応した係数データ8をデータ符号化ブロック2に出力
することが可能となり、生成多項式の変化に対応してリ
ードソロモン符号化を行うことが可能となる。
【0075】図3はデータ符号化ブロック2の構成を示
す回路図であり、係数計算の制御を行なう制御ブロック
10と、第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)個のデータセレクタ1
20〜122と、第1および第2の2個の入力データセ
レクタ130,131と、入力データレジスタ100
と、出力データセレクタ132と、出力データレジスタ
101からなっている。
す回路図であり、係数計算の制御を行なう制御ブロック
10と、第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)個のデータセレクタ1
20〜122と、第1および第2の2個の入力データセ
レクタ130,131と、入力データレジスタ100
と、出力データセレクタ132と、出力データレジスタ
101からなっている。
【0076】制御ブロック70は、誤り訂正数tにより
冗長バイト長が異なることから、誤り訂正数データ5を
入力としてこれをチェックして各データセレクタ80〜
85の制御を行なうセレクタ制御信号72を出力し、ま
た、情報データの符号長nおよび誤り訂正数tによって
符号化される冗長データの構成が異なることから、冗長
部の開始位置を示唆する冗長部示唆信号71を第2の入
力データセレクタ131に出力し、入出力データを制御
する入出力データ信号73を第1の入力データセレクタ
130及び出力データセレクタ132に出力する。
冗長バイト長が異なることから、誤り訂正数データ5を
入力としてこれをチェックして各データセレクタ80〜
85の制御を行なうセレクタ制御信号72を出力し、ま
た、情報データの符号長nおよび誤り訂正数tによって
符号化される冗長データの構成が異なることから、冗長
部の開始位置を示唆する冗長部示唆信号71を第2の入
力データセレクタ131に出力し、入出力データを制御
する入出力データ信号73を第1の入力データセレクタ
130及び出力データセレクタ132に出力する。
【0077】第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次の生成多項式係数データ
ce2 と、第2の入力データセレクタ131の出力データ
とを入力とし、これらを原始多項式に対応したガロア演
算則に従ってガロア乗算した後、乗算結果を第3のガロ
ア加算器113に出力する。第(2M−1)のガロア乗
算器85は、生成多項式係数生成ブロック1から出力さ
れる第(2M−1)次の生成多項式係数データce2M-1
と、第2の入力データセレクタ131の出力データとを
入力とし、これらを原始多項式に対応したガロア演算則
に従ってガロア乗算した後、乗算結果を第2M−1のガ
ロア加算器114に出力する。第2Mのガロア乗算器8
6は、生成多項式係数生成ブロック1から出力される第
2M次の生成多項式係数データce2Mと、第2の入力デー
タセレクタ131の出力データとを入力とし、これらを
原始多項式に対応したガロア演算則に従ってガロア乗算
した後、乗算結果を第(2M−1)のガロア加算器11
5に出力する。第(2s−1)のガロア乗算器87は、
生成多項式係数生成ブロック1の第(2s−1)係数デ
ータ保持レジスタ46から出力される第(2s−1)次
の生成多項式係数データce2s-1と、第2の入力データセ
レクタ131の出力データとを入力とし、これらを原始
多項式に対応したガロア演算則に従ってガロア乗算した
後、乗算結果を第(2s−2)のガロア加算器116に
出力する。
数生成ブロック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次の生成多項式係数データ
ce2 と、第2の入力データセレクタ131の出力データ
とを入力とし、これらを原始多項式に対応したガロア演
算則に従ってガロア乗算した後、乗算結果を第3のガロ
ア加算器113に出力する。第(2M−1)のガロア乗
算器85は、生成多項式係数生成ブロック1から出力さ
れる第(2M−1)次の生成多項式係数データce2M-1
と、第2の入力データセレクタ131の出力データとを
入力とし、これらを原始多項式に対応したガロア演算則
に従ってガロア乗算した後、乗算結果を第2M−1のガ
ロア加算器114に出力する。第2Mのガロア乗算器8
6は、生成多項式係数生成ブロック1から出力される第
2M次の生成多項式係数データce2Mと、第2の入力デー
タセレクタ131の出力データとを入力とし、これらを
原始多項式に対応したガロア演算則に従ってガロア乗算
した後、乗算結果を第(2M−1)のガロア加算器11
5に出力する。第(2s−1)のガロア乗算器87は、
生成多項式係数生成ブロック1の第(2s−1)係数デ
ータ保持レジスタ46から出力される第(2s−1)次
の生成多項式係数データce2s-1と、第2の入力データセ
レクタ131の出力データとを入力とし、これらを原始
多項式に対応したガロア演算則に従ってガロア乗算した
後、乗算結果を第(2s−2)のガロア加算器116に
出力する。
【0078】第0のガロア加算器110は、第1のガロ
ア乗算器81の出力データと、第0のデータ保持レジス
タ90の出力データを受けて、ガロア加算を行なって、
第1のデータ保持レジスタ91に出力する。第1のガロ
ア加算器111は、第2のガロア乗算器82の出力デー
タと、第1のデータ保持レジスタ91の出力データを受
けて、ガロア加算を行なって、第2のデータセレクタ1
20に出力する。第2のガロア加算器112は、第3の
ガロア乗算器83の出力データと、第2のデータ保持レ
ジスタ92の出力データを受けて、ガロア加算を行なっ
て、第3のデータ保持レジスタ93に出力する。第3の
ガロア加算器113は、第4のガロア乗算器84の出力
データと、第3のデータ保持レジスタ93の出力データ
を受けて、ガロア加算を行なって、第4のデータセレク
タ121に出力する。第(2M−2)のガロア加算器1
14は、第(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−3)のデータ保持レジ
スタの出力データを受けて、ガロア加算を行なって、第
(2s−1)のデータ保持レジスタ97に出力する。第
(2s−1)のガロア加算器117は、第(2s−1)
のデータ保持レジスタ97の出力データと、入力データ
レジスタ100の出力データを受けて、ガロア加算を行
なって、第2の入力データセレクタ131に出力する。
ア乗算器81の出力データと、第0のデータ保持レジス
タ90の出力データを受けて、ガロア加算を行なって、
第1のデータ保持レジスタ91に出力する。第1のガロ
ア加算器111は、第2のガロア乗算器82の出力デー
タと、第1のデータ保持レジスタ91の出力データを受
けて、ガロア加算を行なって、第2のデータセレクタ1
20に出力する。第2のガロア加算器112は、第3の
ガロア乗算器83の出力データと、第2のデータ保持レ
ジスタ92の出力データを受けて、ガロア加算を行なっ
て、第3のデータ保持レジスタ93に出力する。第3の
ガロア加算器113は、第4のガロア乗算器84の出力
データと、第3のデータ保持レジスタ93の出力データ
を受けて、ガロア加算を行なって、第4のデータセレク
タ121に出力する。第(2M−2)のガロア加算器1
14は、第(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−3)のデータ保持レジ
スタの出力データを受けて、ガロア加算を行なって、第
(2s−1)のデータ保持レジスタ97に出力する。第
(2s−1)のガロア加算器117は、第(2s−1)
のデータ保持レジスタ97の出力データと、入力データ
レジスタ100の出力データを受けて、ガロア加算を行
なって、第2の入力データセレクタ131に出力する。
【0079】第0のデータ保持レジスタ90は、第0の
ガロア乗算器80の出力データを受けて保持した後、第
0のガロア加算器110に出力する。第1のデータ保持
レジスタ91は、第0のガロア加算器110の出力を受
けて保持した後、第1のガロア加算器111に出力す
る。第2のデータ保持レジスタ92は、第2データセレ
クタ120の出力を受けて保持した後、第2のガロア加
算器112に出力する。第3のデータ保持レジスタ93
は、第2のガロア加算器112の出力を受けて保持した
後、第1のガロア加算器113に出力する。第4のデー
タ保持レジスタ94は、第4データセレクタ121の出
力を受けて保持した後、第5のガロア加算器に出力す
る。第(2M−1)のデータ保持レジスタ95は、第
(2M−2)のガロア加算器114の出力を受けて保持
した後、第2Mのガロア加算器115に出力する。第2
Mのデータ保持レジスタ96は、第2Mデータセレクタ
122の出力を受けて保持した後、第2Mのガロア加算
器に出力する。第(2s−1)のデータ保持レジスタ9
7は、第(2s−2)のガロア加算器116の出力デー
タを受けて保持した後、(2s−1)のガロア加算器1
17および出力データセレクタ132に出力する。
ガロア乗算器80の出力データを受けて保持した後、第
0のガロア加算器110に出力する。第1のデータ保持
レジスタ91は、第0のガロア加算器110の出力を受
けて保持した後、第1のガロア加算器111に出力す
る。第2のデータ保持レジスタ92は、第2データセレ
クタ120の出力を受けて保持した後、第2のガロア加
算器112に出力する。第3のデータ保持レジスタ93
は、第2のガロア加算器112の出力を受けて保持した
後、第1のガロア加算器113に出力する。第4のデー
タ保持レジスタ94は、第4データセレクタ121の出
力を受けて保持した後、第5のガロア加算器に出力す
る。第(2M−1)のデータ保持レジスタ95は、第
(2M−2)のガロア加算器114の出力を受けて保持
した後、第2Mのガロア加算器115に出力する。第2
Mのデータ保持レジスタ96は、第2Mデータセレクタ
122の出力を受けて保持した後、第2Mのガロア加算
器に出力する。第(2s−1)のデータ保持レジスタ9
7は、第(2s−2)のガロア加算器116の出力デー
タを受けて保持した後、(2s−1)のガロア加算器1
17および出力データセレクタ132に出力する。
【0080】第1の入力データセレクタ130は、入力
される情報データ7あるいは定数値0を選択して、入力
データレジスタ100に出力する。第2の入力データセ
レクタ131は、第(2s−1)のガロア加算器117
の出力データあるいは定数値0を選択して、第0から第
(2s−1)のガロア乗算器80〜87に出力する。
される情報データ7あるいは定数値0を選択して、入力
データレジスタ100に出力する。第2の入力データセ
レクタ131は、第(2s−1)のガロア加算器117
の出力データあるいは定数値0を選択して、第0から第
(2s−1)のガロア乗算器80〜87に出力する。
【0081】入力データレジスタ100は、第1 の入力
データレジスタの出力データを受けて保持した後、第
(2s−1)のガロア加算器117および出力データセ
レクタ132に出力する。出力データセレクタ132
は、第(2s−1)のデータ保持レジスタ97の出力デ
ータ、あるいは入力データレジスタ100の出力データ
を選択して、出力データレジスタ101に出力し、出力
データレジスタ100は、出力データセレクタ132の
出力データを受けて、保持した後、リードソロモン符号
化データとして出力する。
データレジスタの出力データを受けて保持した後、第
(2s−1)のガロア加算器117および出力データセ
レクタ132に出力する。出力データセレクタ132
は、第(2s−1)のデータ保持レジスタ97の出力デ
ータ、あるいは入力データレジスタ100の出力データ
を選択して、出力データレジスタ101に出力し、出力
データレジスタ100は、出力データセレクタ132の
出力データを受けて、保持した後、リードソロモン符号
化データとして出力する。
【0082】リードソロモン符号などの巡回符号のデー
タ符号化回路は、従来から知られており、その例とし
て、多項式の割り算回路に対して、データの入力位置を
を2t段シフトしたものが一般的である。本回路に関し
ては、「誤り訂正符号とその応用」テレビジョン学会編
pp180 −181 、あるいは、「符号理論」電気通信情報学
会編pp113 −118 にその構成および動作が開示されてい
る。本データ符号化ブロックも、入力シフト型の多項式
の割り算回路を基本構成とするが、誤り訂正数、原始多
項式を可変とした構成をとる点で異なる。
タ符号化回路は、従来から知られており、その例とし
て、多項式の割り算回路に対して、データの入力位置を
を2t段シフトしたものが一般的である。本回路に関し
ては、「誤り訂正符号とその応用」テレビジョン学会編
pp180 −181 、あるいは、「符号理論」電気通信情報学
会編pp113 −118 にその構成および動作が開示されてい
る。本データ符号化ブロックも、入力シフト型の多項式
の割り算回路を基本構成とするが、誤り訂正数、原始多
項式を可変とした構成をとる点で異なる。
【0083】次に本実施の形態のデータ符号化ブロック
2の動作を、最大訂正数s=10の場合について説明す
る。まず、生成多項式係数生成データブロック1から2
0個の係数データce0 〜ce19からなる生成多項式係数デ
ータ8が第0から第19のガロア乗算器80〜87に低
次数の係数値側から順に入力される。これら20個の係
数データce0 〜ce19からなる生成多項式係数データ8
は、データ符号化の計算が終了するまで保持し続けられ
る。
2の動作を、最大訂正数s=10の場合について説明す
る。まず、生成多項式係数生成データブロック1から2
0個の係数データce0 〜ce19からなる生成多項式係数デ
ータ8が第0から第19のガロア乗算器80〜87に低
次数の係数値側から順に入力される。これら20個の係
数データce0 〜ce19からなる生成多項式係数データ8
は、データ符号化の計算が終了するまで保持し続けられ
る。
【0084】一方、被除多項式である、情報多項式の係
数となる235個の情報データ7は、高次側の係数デー
タから順に入力され、まず、第1の入力データセレクタ
130を経て、入力データレジスタ100で保持された
後、第19ガロア加算器117および出力データセレク
タ132に出力される。
数となる235個の情報データ7は、高次側の係数デー
タから順に入力され、まず、第1の入力データセレクタ
130を経て、入力データレジスタ100で保持された
後、第19ガロア加算器117および出力データセレク
タ132に出力される。
【0085】出力データセレクタ132は、情報データ
7が入力されている間は、常に、入力データレジスタ1
00の出力を選択し、情報データ7をそのまま通過させ
て、出力データレジスタ101に送る。出力データレジ
スタ101は、一旦保持したデータを符号化データとし
て出力する。
7が入力されている間は、常に、入力データレジスタ1
00の出力を選択し、情報データ7をそのまま通過させ
て、出力データレジスタ101に送る。出力データレジ
スタ101は、一旦保持したデータを符号化データとし
て出力する。
【0086】入力データレジスタ100から第19ガロ
ア加算器117に入力された情報データは、第19デー
タ保持レジスタ117の出力値と加算されて第2の入力
データセレクタ131に入力される。第1から第19の
データ保持レジスタ90〜97は、初期値を「0」とし
てリセットされるので、最初の20個の入力情報データ
は、第19ガロア加算器117をそのまま通過すること
になる。
ア加算器117に入力された情報データは、第19デー
タ保持レジスタ117の出力値と加算されて第2の入力
データセレクタ131に入力される。第1から第19の
データ保持レジスタ90〜97は、初期値を「0」とし
てリセットされるので、最初の20個の入力情報データ
は、第19ガロア加算器117をそのまま通過すること
になる。
【0087】第2の入力データセレクタ131は235
個の情報データ7が入力される間は、第19ガロア加算
器117の出力を選択するが、その後20個分、即ち2
s個分のデータは定数値「0」を選択する。
個の情報データ7が入力される間は、第19ガロア加算
器117の出力を選択するが、その後20個分、即ち2
s個分のデータは定数値「0」を選択する。
【0088】情報データ7は、第2の入力データセレク
タ131を経て、第0から第19のガロア乗算器80〜
87に入力されて、ガロア乗算器80〜87にそれぞれ
入力される生成多項式係数データ8とそれぞれガロア乗
算される。この時、生成多項式生成ブロック1同様、第
0から第19のガロア乗算器には、原始多項式設定値4
が入力され、原始多項式に対応したガロア演算則に従っ
たガロア乗算が実行される。第0のガロア乗算器80の
出力データは第0データ保持レジスタ90に送られて保
持される。第1から第19のガロア乗算器81〜87の
出力データは、第0から第18のガロア加算器110か
ら114に入力される。但し、第2、第4…第2M(9
≧M≧3)の偶数番のガロア乗算器82,84,86
は、同時に、第2データセレクタ120、第4データセ
レクタ121…第2Mデータセレクタ122に対しても
出力する。第0から第19のガロア加算器110〜11
9のもう一方の入力には、それぞれ第0から第19のデ
ータ保持レジスタ90〜97の保持データを入力する。
タ131を経て、第0から第19のガロア乗算器80〜
87に入力されて、ガロア乗算器80〜87にそれぞれ
入力される生成多項式係数データ8とそれぞれガロア乗
算される。この時、生成多項式生成ブロック1同様、第
0から第19のガロア乗算器には、原始多項式設定値4
が入力され、原始多項式に対応したガロア演算則に従っ
たガロア乗算が実行される。第0のガロア乗算器80の
出力データは第0データ保持レジスタ90に送られて保
持される。第1から第19のガロア乗算器81〜87の
出力データは、第0から第18のガロア加算器110か
ら114に入力される。但し、第2、第4…第2M(9
≧M≧3)の偶数番のガロア乗算器82,84,86
は、同時に、第2データセレクタ120、第4データセ
レクタ121…第2Mデータセレクタ122に対しても
出力する。第0から第19のガロア加算器110〜11
9のもう一方の入力には、それぞれ第0から第19のデ
ータ保持レジスタ90〜97の保持データを入力する。
【0089】第0および第1データ保持レジスタ90,
91には、それぞれ第0および第1ガロア乗算器80,
81の出力データを入力する。第2データ保持レジスタ
92には、第1データセレクタ120で選択されるデー
タが入力されるが、このセレクタ120は、第2のガロ
ア乗算器82の出力データと第1 のガロア加算器111
の出力データを選択する。誤り訂正数tが10の場合、
このセレクタ120は、常に、第1 ガロア加算器111
の出力データを選択するが、誤り訂正数tが最大誤り訂
正数s=10よりも小さい、即ち9以下の場合、常に、
第2ガロア算器の出力データを選択して、第0データ保
持レジスタ90、第1 データ保持レジスタ91の計算結
果を遮断して、シフト段数を削減する。
91には、それぞれ第0および第1ガロア乗算器80,
81の出力データを入力する。第2データ保持レジスタ
92には、第1データセレクタ120で選択されるデー
タが入力されるが、このセレクタ120は、第2のガロ
ア乗算器82の出力データと第1 のガロア加算器111
の出力データを選択する。誤り訂正数tが10の場合、
このセレクタ120は、常に、第1 ガロア加算器111
の出力データを選択するが、誤り訂正数tが最大誤り訂
正数s=10よりも小さい、即ち9以下の場合、常に、
第2ガロア算器の出力データを選択して、第0データ保
持レジスタ90、第1 データ保持レジスタ91の計算結
果を遮断して、シフト段数を削減する。
【0090】第3データ保持レジスタ93には、第2ガ
ロア加算器112の出力データを入力し、第4データ保
持レジスタ94には、第4データセレクタ121で選択
されるデータが入力される。このセレクタ121は、第
4のガロア乗算器84の出力データと第3のガロア加算
器113の出力データとを選択し、誤り訂正数tが9以
上の場合、このセレクタ121は、常に、第3ガロア加
算器の出力データを選択するが、誤り訂正数tが8以下
の場合、常に、第4ガロア乗算器84の出力データを選
択して、第1から第3のデータ保持レジスタ91〜93
の計算結果を遮断し、シフト段数を削減する。
ロア加算器112の出力データを入力し、第4データ保
持レジスタ94には、第4データセレクタ121で選択
されるデータが入力される。このセレクタ121は、第
4のガロア乗算器84の出力データと第3のガロア加算
器113の出力データとを選択し、誤り訂正数tが9以
上の場合、このセレクタ121は、常に、第3ガロア加
算器の出力データを選択するが、誤り訂正数tが8以下
の場合、常に、第4ガロア乗算器84の出力データを選
択して、第1から第3のデータ保持レジスタ91〜93
の計算結果を遮断し、シフト段数を削減する。
【0091】同様に、奇数番の第(2M−1)(9≧M
≧3)レジスタ95には、第(2M−2)ガロア加算器
の出力データを入力し、偶数番の第2Mレジスタ96に
は、第2Mデータセレクタ122の出力データを入力す
る。第2Mのデータセレクタ122は、第2Mガロア乗
算器86の出力データと第(2M−1)ガロア加算器1
15の出力データとを選択する。
≧3)レジスタ95には、第(2M−2)ガロア加算器
の出力データを入力し、偶数番の第2Mレジスタ96に
は、第2Mデータセレクタ122の出力データを入力す
る。第2Mのデータセレクタ122は、第2Mガロア乗
算器86の出力データと第(2M−1)ガロア加算器1
15の出力データとを選択する。
【0092】ここで、第2Mのデータセレクタ122の
選択制御も上記と同様に誤り訂正数データ5に依存し、
誤り訂正数tが7の場合は、第6データセレクタが第6
ガロア乗算器の出力を選択し、誤り訂正数tが6の場合
は、第8データセレクタが第8ガロア乗算器の出力を選
択し、同様に、誤り訂正数tが5、4、…1となる場合
は、第10、第12、…第18データセレクタが第1
0、第12、…第18ガロア乗算器の出力を選択し、そ
れぞれシフトレジスタの段数を削減する。即ちこのデー
タ符号化ブロック2においては、最大訂正数s=10以
下の誤り訂正数t( s≧t≧1,) に対して、第2( s−
t) のセレクタが第2( s−t)の乗算器の出力を選択
するようになっている。
選択制御も上記と同様に誤り訂正数データ5に依存し、
誤り訂正数tが7の場合は、第6データセレクタが第6
ガロア乗算器の出力を選択し、誤り訂正数tが6の場合
は、第8データセレクタが第8ガロア乗算器の出力を選
択し、同様に、誤り訂正数tが5、4、…1となる場合
は、第10、第12、…第18データセレクタが第1
0、第12、…第18ガロア乗算器の出力を選択し、そ
れぞれシフトレジスタの段数を削減する。即ちこのデー
タ符号化ブロック2においては、最大訂正数s=10以
下の誤り訂正数t( s≧t≧1,) に対して、第2( s−
t) のセレクタが第2( s−t)の乗算器の出力を選択
するようになっている。
【0093】上記の構成により、誤り訂正数tが10の
場合には、第0から第19データ保持レジスタ90〜9
7すべてを使用して、235個の情報データ7すべて
が、順次入力し終わるまで計算を繰り返したとき、第0
から第19のデータ保持レジスタ90〜97に保持され
たデータが冗長データとなる。そして、この第0から第
19のデータ保持レジスタ90〜97に保持された冗長
データを出力するために、出力データセレクタ132
は、第19データ保持レジスタ97の出力データを選択
して、一旦、出力データレジスタ101にデータを保持
した後、上述した情報データ7にこれを付加してリード
ソロモン符号化データとして出力する。
場合には、第0から第19データ保持レジスタ90〜9
7すべてを使用して、235個の情報データ7すべて
が、順次入力し終わるまで計算を繰り返したとき、第0
から第19のデータ保持レジスタ90〜97に保持され
たデータが冗長データとなる。そして、この第0から第
19のデータ保持レジスタ90〜97に保持された冗長
データを出力するために、出力データセレクタ132
は、第19データ保持レジスタ97の出力データを選択
して、一旦、出力データレジスタ101にデータを保持
した後、上述した情報データ7にこれを付加してリード
ソロモン符号化データとして出力する。
【0094】なお、セレクタ制御信号72は、誤り訂正
数データ5により制御され、入出力データ制御信号7
3、冗長部示唆信号は、符号長データ6および誤り訂正
数データ5で制御され、ここでは、235個の情報デー
タ、20個の冗長データを認識して制御する。
数データ5により制御され、入出力データ制御信号7
3、冗長部示唆信号は、符号長データ6および誤り訂正
数データ5で制御され、ここでは、235個の情報デー
タ、20個の冗長データを認識して制御する。
【0095】このように情報データ7を係数データで除
算するとともに、誤り訂正数tに対して、第2(s−
t)のセレクタが第2(s−t)の乗算器の出力を選択
することにより、第0〜第19のデータ保持レジスタか
らなるシフトレジスタの段数を誤り訂正数tに対して変
化させることができ、誤り訂正数tを変化させた場合に
おいても訂正数の変化に対してリードソロモン符号化を
行うことが可能である。
算するとともに、誤り訂正数tに対して、第2(s−
t)のセレクタが第2(s−t)の乗算器の出力を選択
することにより、第0〜第19のデータ保持レジスタか
らなるシフトレジスタの段数を誤り訂正数tに対して変
化させることができ、誤り訂正数tを変化させた場合に
おいても訂正数の変化に対してリードソロモン符号化を
行うことが可能である。
【0096】図4は、図2及び図3に示したガロア乗算
器20〜25、及びガロア乗算器80〜87の構成を示
す回路図であり、第1および第2の、2つのnビットの
入力データ301,302を入力としており、この2つ
のデータのガロア乗算を行う。原始多項式に対応したガ
ロア演算則に従ってデータをα倍するシリアル接続され
た第1から第(n−1)の(n−1)個の係数器141
〜147と、nビットのデータおよび1ビットデータと
の2入力の論理積を出力する第1から第nのn個の論理
積ゲート151〜158と、nビットn入力で排他的論
理和を出力する1個の排他的論理和ゲート160で構成
している。なお、この図3では特にn=8ビットのもの
を示している。nが変化数がする場合には、nの増減に
あわせて係数器や論理積ゲート数を増減させるようにす
る。
器20〜25、及びガロア乗算器80〜87の構成を示
す回路図であり、第1および第2の、2つのnビットの
入力データ301,302を入力としており、この2つ
のデータのガロア乗算を行う。原始多項式に対応したガ
ロア演算則に従ってデータをα倍するシリアル接続され
た第1から第(n−1)の(n−1)個の係数器141
〜147と、nビットのデータおよび1ビットデータと
の2入力の論理積を出力する第1から第nのn個の論理
積ゲート151〜158と、nビットn入力で排他的論
理和を出力する1個の排他的論理和ゲート160で構成
している。なお、この図3では特にn=8ビットのもの
を示している。nが変化数がする場合には、nの増減に
あわせて係数器や論理積ゲート数を増減させるようにす
る。
【0097】第1の係数器141は、ガロア乗算器に入
力されるnビットの第1の入力データ301と、原始多
項式に対応して決定されるnビットの数値,即ち原始多
項式設定値4を受けて、該数値に対応するガロア演算則
にしたがって、nビットの入力データ301をα倍し
て、第2の係数器142および第2の論理積ゲート15
2に出力する。同様に第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に
出力する。
力されるnビットの第1の入力データ301と、原始多
項式に対応して決定されるnビットの数値,即ち原始多
項式設定値4を受けて、該数値に対応するガロア演算則
にしたがって、nビットの入力データ301をα倍し
て、第2の係数器142および第2の論理積ゲート15
2に出力する。同様に第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に
出力する。
【0098】第1の論理積ゲート151は、ガロア乗算
器に入力されるnビットの第1の入力データ301と、
同じくガロア乗算器に入力されるnビットの第2の入力
データ302における最下位ビットを受けて、第1の入
力データ301と、第2の入力データ302の最下位ビ
ットをnビットに拡張したnビットデータとの論理積を
排他的論理和ゲート160に出力する。第2の論理積ゲ
ート152は、第1の係数器141の出力と、nビット
の第2の入力データBにおける最下位ビットから数えて
2ビット目のビットを受けて、これらの論理積を排他的
論理和ゲート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に出力する。
器に入力されるnビットの第1の入力データ301と、
同じくガロア乗算器に入力されるnビットの第2の入力
データ302における最下位ビットを受けて、第1の入
力データ301と、第2の入力データ302の最下位ビ
ットをnビットに拡張したnビットデータとの論理積を
排他的論理和ゲート160に出力する。第2の論理積ゲ
ート152は、第1の係数器141の出力と、nビット
の第2の入力データBにおける最下位ビットから数えて
2ビット目のビットを受けて、これらの論理積を排他的
論理和ゲート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に出力する。
【0099】排他的論理和ゲート160は、第1から第
nのn個の論理積ゲート151〜158から出力された
n個のnビットデータの排他的論理和データを、このガ
ロア乗算器の出力データとして出力する。
nのn個の論理積ゲート151〜158から出力された
n個のnビットデータの排他的論理和データを、このガ
ロア乗算器の出力データとして出力する。
【0100】図5は、図4に示すα倍を実行する係数器
141〜147の構成を示す回路図であり、第1から第
nのn個のレジスタ201〜208からなるnビットレ
ジスタ200と、nビット2入力の1個の排他的論理和
ゲート210と、出力データセレクタ211からなり、
nビットの入力データ303と、原始多項式に対応した
原始多項式設定値4を受けて、この数値に対応するガロ
ア演算則にしたがって、nビットの入力データ303を
α倍して出力する。なお、データ[n−1:0]は第0
から第n−1までのビットを有するnビットのデータで
あることを表わし、データ[0]は、nビットの入力デ
ータ303の最下位のビットを示し、括弧内の値が増え
るにつれて上位のビットデータを表わすものとする。こ
こでは特にn=8のものを示している。nの値が8以外
の場合にはnの値の増減に従いレジスタの数を増減させ
たものを用いるようにする。
141〜147の構成を示す回路図であり、第1から第
nのn個のレジスタ201〜208からなるnビットレ
ジスタ200と、nビット2入力の1個の排他的論理和
ゲート210と、出力データセレクタ211からなり、
nビットの入力データ303と、原始多項式に対応した
原始多項式設定値4を受けて、この数値に対応するガロ
ア演算則にしたがって、nビットの入力データ303を
α倍して出力する。なお、データ[n−1:0]は第0
から第n−1までのビットを有するnビットのデータで
あることを表わし、データ[0]は、nビットの入力デ
ータ303の最下位のビットを示し、括弧内の値が増え
るにつれて上位のビットデータを表わすものとする。こ
こでは特にn=8のものを示している。nの値が8以外
の場合にはnの値の増減に従いレジスタの数を増減させ
たものを用いるようにする。
【0101】第1のレジスタ201は、定数値0を入力
し、該ビットデータを保持した後、出力する。第Q(n
≧Q≧2、Qは整数)のレジスタ202〜208には、
nビットの入力データCにおける第(Q−2)ビットの
データをそれぞれ入力し、各ビットデータを保持した
後、出力する。排他的論理和ゲート210は、原始多項
式設定値4と、第1 から第nの、n個のレジスタ201
〜208から出力されるnビットのデータの排他的論理
和を求めて、nビットとして出力し、出力セレクタ21
1は、この係数器に入力されるnビットの入力データ3
03の最上位ビットデータを選択信号として、第1から
第nのレジスタ201〜208から出力されるnビット
データ、あるいは、排他的論理和ゲート210の出力の
いずれかを選択して、係数器の出力データとして出力す
る。
し、該ビットデータを保持した後、出力する。第Q(n
≧Q≧2、Qは整数)のレジスタ202〜208には、
nビットの入力データCにおける第(Q−2)ビットの
データをそれぞれ入力し、各ビットデータを保持した
後、出力する。排他的論理和ゲート210は、原始多項
式設定値4と、第1 から第nの、n個のレジスタ201
〜208から出力されるnビットのデータの排他的論理
和を求めて、nビットとして出力し、出力セレクタ21
1は、この係数器に入力されるnビットの入力データ3
03の最上位ビットデータを選択信号として、第1から
第nのレジスタ201〜208から出力されるnビット
データ、あるいは、排他的論理和ゲート210の出力の
いずれかを選択して、係数器の出力データとして出力す
る。
【0102】次に、本実施の形態のガロア乗算器と、定
数倍乗算器である係数器の構成および動作について説明
する。なお、ここでは、原始多項式が P(x)=x8 +x4 +x3 +x2 +1 を仮定しているので、入出力データは、それぞれ8ビッ
ト幅である。図4に示すガロア乗算器は、α倍を実行す
る係数器141〜147を使って構成されるので、ま
ず、α倍を実行する係数器141〜147の構成および
動作について図5に基づいて説明する。
数倍乗算器である係数器の構成および動作について説明
する。なお、ここでは、原始多項式が P(x)=x8 +x4 +x3 +x2 +1 を仮定しているので、入出力データは、それぞれ8ビッ
ト幅である。図4に示すガロア乗算器は、α倍を実行す
る係数器141〜147を使って構成されるので、ま
ず、α倍を実行する係数器141〜147の構成および
動作について図5に基づいて説明する。
【0103】先にも説明したが、ガロア体の元を考える
と、原始多項式が上記の場合、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 以下の元で
表される。
と、原始多項式が上記の場合、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 以下の元で
表される。
【0104】これをベクトル表現すると、 α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」はあらかじめ作成しておき、これを
原始多項式設定値4として係数器に入力するようにす
る。特定の元をα倍してα8 の項が出現する場合は、そ
の元にα7 の項が含まれている場合であり、ベクトル値
で考えると、最上位ビットに「1」が立っている場合で
ある。
は、基本的には左シフトとなるが、α8 の項が出現する
場合は、α8 に相当するα4+α3+α2+1 に置換して演算
するため、ベクトル値としては、「00011101」、即ち、
16進数で「1d」をガロア加算する。このα8 に相当す
るベクトル値「1d」はあらかじめ作成しておき、これを
原始多項式設定値4として係数器に入力するようにす
る。特定の元をα倍してα8 の項が出現する場合は、そ
の元にα7 の項が含まれている場合であり、ベクトル値
で考えると、最上位ビットに「1」が立っている場合で
ある。
【0105】α倍の係数器は、図5に示した通り、ま
ず、8ビットレジスタ200を用意し、左シフトした値
を求めるために、最下位ビットのレジスタ201に固定
値「0」を挿入し、係数器に入力される8ビットデータ
をデータ303とすると、データ303の0ビット目か
ら6ビット目のデータをレジスタの上位7ビットのレジ
スタ202〜208に入力する。そして、入力データ3
03の最上位ビットが「1」の場合は、α8 の項が次に
出現する場合であるから、保持された8ビットレジスタ
200の値と原始多項式設定値4のガロア加算値、即
ち、排他的論理和した値を選択して出力し、最上位ビッ
トが「0」の場合は、左シフトされて保持されたレジス
タの値をそのまま出力する。
ず、8ビットレジスタ200を用意し、左シフトした値
を求めるために、最下位ビットのレジスタ201に固定
値「0」を挿入し、係数器に入力される8ビットデータ
をデータ303とすると、データ303の0ビット目か
ら6ビット目のデータをレジスタの上位7ビットのレジ
スタ202〜208に入力する。そして、入力データ3
03の最上位ビットが「1」の場合は、α8 の項が次に
出現する場合であるから、保持された8ビットレジスタ
200の値と原始多項式設定値4のガロア加算値、即
ち、排他的論理和した値を選択して出力し、最上位ビッ
トが「0」の場合は、左シフトされて保持されたレジス
タの値をそのまま出力する。
【0106】ここで、ガロア演算側を決定するα8 、即
ち原始多項式設定値4は、原始多項式に応じて異なる値
となるため、本実施の形態では、異なる原始多項式を用
いる場合には、それぞれの原始多項式に対応した原始多
項式設定値4をあらかじめ用意しておき、これを入力す
ることにより、異なる原始多項式に対してもそれぞれに
適応したα倍のビット演算が可能となる。
ち原始多項式設定値4は、原始多項式に応じて異なる値
となるため、本実施の形態では、異なる原始多項式を用
いる場合には、それぞれの原始多項式に対応した原始多
項式設定値4をあらかじめ用意しておき、これを入力す
ることにより、異なる原始多項式に対してもそれぞれに
適応したα倍のビット演算が可能となる。
【0107】なお、8ビットのデータの場合において
は、原始多項式設定値4はα8 となるが、nビットのデ
ータの場合、即ち拡大体αの次数がm(m≧1、mは整
数)の場合には、原始多項式設定値4としては原子元α
のべきの1つであるαm を用いればよい。
は、原始多項式設定値4はα8 となるが、nビットのデ
ータの場合、即ち拡大体αの次数がm(m≧1、mは整
数)の場合には、原始多項式設定値4としては原子元α
のべきの1つであるαm を用いればよい。
【0108】次に図4に示したガロア乗算器の動作につ
いて説明する。ここでは、8ビット×8ビットのガロア
乗算を考える。まず、ガロア体の元として、A、B、C
を考えて、C=A×Bとする。ここで、Bのベクトル値
を、B=B7 B6 B5 B4 B3 B2 B1 B0(B0 からB
7 は、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α7 B7+Aα6 B6+Aα5 B5+Aα4 B4+Aα3 B3+Aα2 B2+AαB1+ AB0 が導ける。
いて説明する。ここでは、8ビット×8ビットのガロア
乗算を考える。まず、ガロア体の元として、A、B、C
を考えて、C=A×Bとする。ここで、Bのベクトル値
を、B=B7 B6 B5 B4 B3 B2 B1 B0(B0 からB
7 は、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α7 B7+Aα6 B6+Aα5 B5+Aα4 B4+Aα3 B3+Aα2 B2+AαB1+ AB0 が導ける。
【0109】この計算を実現したものが、図4に示すガ
ロア乗算器である。図においてはデータ301がA、デ
ータ302がBにそれぞれ相当する。上述したAに相当
するデータ301を、各々α7 、α6 …α倍したデータ
と、B7 からB0 のデータ302のビットデータをかけ
て、さらに各々の乗算データを最後に加算、即ち排他的
論理和をとって、乗算データとして出力している。
α7 、α6 …αの定数倍乗算を実現する係数器は、図5
に示したα倍を実現する係数器を7段シリアル接続し
て、各係数器の出力データを使用することで実現してい
る。
ロア乗算器である。図においてはデータ301がA、デ
ータ302がBにそれぞれ相当する。上述したAに相当
するデータ301を、各々α7 、α6 …α倍したデータ
と、B7 からB0 のデータ302のビットデータをかけ
て、さらに各々の乗算データを最後に加算、即ち排他的
論理和をとって、乗算データとして出力している。
α7 、α6 …αの定数倍乗算を実現する係数器は、図5
に示したα倍を実現する係数器を7段シリアル接続し
て、各係数器の出力データを使用することで実現してい
る。
【0110】このガロア乗算器においては、上述したよ
うに原始多項式設定値4により、異なる原始多項式に対
してもα倍が可能な係数器を用いていることにより、原
始多項式の変化に対応してガロア乗算が可能とすること
ができる。したがって、本実施の形態においては、原始
多項式設定値4を入力として、原始多項式設定値4を用
いて生成多項式を展開して係数データ8を得る生成多項
式係数生成ブロック1と、原始多項式設定値4を用いて
情報多項式を生成多項式により除算してデータの符号化
を行うデータ符号化ブロック2とを備えるようにしたか
ら、いかなる原始多項式に対しても完全に適応してリー
ドソロモン符号化が実現できる。
うに原始多項式設定値4により、異なる原始多項式に対
してもα倍が可能な係数器を用いていることにより、原
始多項式の変化に対応してガロア乗算が可能とすること
ができる。したがって、本実施の形態においては、原始
多項式設定値4を入力として、原始多項式設定値4を用
いて生成多項式を展開して係数データ8を得る生成多項
式係数生成ブロック1と、原始多項式設定値4を用いて
情報多項式を生成多項式により除算してデータの符号化
を行うデータ符号化ブロック2とを備えるようにしたか
ら、いかなる原始多項式に対しても完全に適応してリー
ドソロモン符号化が実現できる。
【0111】以上のように、本実施の形態に係るリード
ソロモン符号化装置および方法は、原始多項式設定値、
生成初期値、誤り訂正数のパラメータを完全に可変型の
リードソロモン符号化が実現でき、いかなる原始多項
式、生成多項式に対しても、完全に適応できる。
ソロモン符号化装置および方法は、原始多項式設定値、
生成初期値、誤り訂正数のパラメータを完全に可変型の
リードソロモン符号化が実現でき、いかなる原始多項
式、生成多項式に対しても、完全に適応できる。
【0112】なお、本実施の形態においては、最大訂正
数sを10とし、ガロア体の次数を8、即ちガロア乗算
器等のビット数を8ビットとしたものについて説明した
が、本発明はこれらの値が増減させたものに適用しても
上記実施の形態1と同様の効果を奏する。
数sを10とし、ガロア体の次数を8、即ちガロア乗算
器等のビット数を8ビットとしたものについて説明した
が、本発明はこれらの値が増減させたものに適用しても
上記実施の形態1と同様の効果を奏する。
【0113】また、本発明においては、上記実施の形態
に係るリードソロモン符号化装置を、この装置と同様の
手段を有するようにプログラミングしたコンピュータに
より実現するようにしてもよく、上記実施の形態と同様
の効果を奏する。
に係るリードソロモン符号化装置を、この装置と同様の
手段を有するようにプログラミングしたコンピュータに
より実現するようにしてもよく、上記実施の形態と同様
の効果を奏する。
【0114】なお、上記実施の形態においては、データ
符号化ブロック2として、誤り訂正数tの1から最大訂
正値sの間での変化に対して、符号化を対応できるもの
について説明したが、本発明においては、誤り訂正数t
を固定値としてもよく、例えば、データ符号化ブロック
を図7に示すような構成とすればよい。即ち、誤り訂正
数tを最大訂正数sとして、生成多項式の係数データ8
の第0次の値ce0 と情報データ7との乗算を行う第0の
ガロア乗算器80aと、第0乗算器の出力を保持する第
0データ保持レジスタ90aと、生成多項式の係数デー
タ8の第R次(2t−2≧R≧1、Rは整数)の値ce
R と情報データとの乗算を行う第Rのガロア乗算器8
6aと、第Rのガロア乗算器86aの出力と第(R−
1)のデータ保持レジスタ95aに保持されているデー
タとの加算を行う第(R−1)のガロア加算器115a
と、第(R−1)のガロア加算器115aの出力を保持
する第Rのデータ保持レジスタ96aと、生成多項式の
係数データ8の第(2t−1)次の値ce2t-1と情報デー
タ7との乗算を行う第(2t−1)のガロア乗算器87
aと、第(2t−1)のガロア乗算器87aの出力と第
(2t−2)のレジスタに保持されているデータとの加
算を行う第(2t−2)のガロア加算器116aと、第
(2s−2)のガロア加算器116aの出力を保持する
第(2t−1)のデータ保持レジスタ97aと、第(2
t−1)のデータ保持レジスタ97aの出力と情報デー
タ7との加算を行う第(2t−1)のガロア加算器11
7aとを含んでいるものとすればよい。このようなデー
タ符号化ブロックを用いた場合においても生成多項式の
変化または原始多項式の変化に対応してリードソロモン
符号化を行うことができる。
符号化ブロック2として、誤り訂正数tの1から最大訂
正値sの間での変化に対して、符号化を対応できるもの
について説明したが、本発明においては、誤り訂正数t
を固定値としてもよく、例えば、データ符号化ブロック
を図7に示すような構成とすればよい。即ち、誤り訂正
数tを最大訂正数sとして、生成多項式の係数データ8
の第0次の値ce0 と情報データ7との乗算を行う第0の
ガロア乗算器80aと、第0乗算器の出力を保持する第
0データ保持レジスタ90aと、生成多項式の係数デー
タ8の第R次(2t−2≧R≧1、Rは整数)の値ce
R と情報データとの乗算を行う第Rのガロア乗算器8
6aと、第Rのガロア乗算器86aの出力と第(R−
1)のデータ保持レジスタ95aに保持されているデー
タとの加算を行う第(R−1)のガロア加算器115a
と、第(R−1)のガロア加算器115aの出力を保持
する第Rのデータ保持レジスタ96aと、生成多項式の
係数データ8の第(2t−1)次の値ce2t-1と情報デー
タ7との乗算を行う第(2t−1)のガロア乗算器87
aと、第(2t−1)のガロア乗算器87aの出力と第
(2t−2)のレジスタに保持されているデータとの加
算を行う第(2t−2)のガロア加算器116aと、第
(2s−2)のガロア加算器116aの出力を保持する
第(2t−1)のデータ保持レジスタ97aと、第(2
t−1)のデータ保持レジスタ97aの出力と情報デー
タ7との加算を行う第(2t−1)のガロア加算器11
7aとを含んでいるものとすればよい。このようなデー
タ符号化ブロックを用いた場合においても生成多項式の
変化または原始多項式の変化に対応してリードソロモン
符号化を行うことができる。
【0115】また、上記実施の形態においては生成初期
値、原始多項式設定値、誤り訂正数tを変化させるもの
について説明したが、本発明はこれらの少なくとも一つ
が変化するものにおいても上記実施の形態と同様の効果
を奏する。
値、原始多項式設定値、誤り訂正数tを変化させるもの
について説明したが、本発明はこれらの少なくとも一つ
が変化するものにおいても上記実施の形態と同様の効果
を奏する。
【0116】
【発明の効果】以上のようにこの発明によれば、生成多
項式を0とおいた場合に、べき数が最小となる元である
生成初期値と、拡大体の次数をm(m≧1、mは整
数)、原始元をαとしたとき、そのべきの1つであるα
m の値である原始多項式設定値とを入力とし、生成初期
値または原始多項式設定値の少なくともいずれか一方の
変化に対応して生成多項式を展開して各次数の係数から
なる係数データを生成する生成多項式係数生成手段と、
情報データと、上記係数データとを入力とし、該係数デ
ータを用いて上記情報データを生成初期値または原始多
項式設定値の変化に対応して除算し、この除算により得
られた剰余データを、上記情報データに結合してリード
ソロモン符号化したデータを形成するデータ符号化手段
とを備えるようにしたから、原始多項式または生成多項
式が変化した場合においても、これらに対応した生成初
期値または原始多項式設定値を入力してやることによ
り、生成多項式を展開して各次数の係数からなる係数デ
ータを生成して情報データのリードソロモン符号化を行
うことができ、原始多項式または生成多項式の変化に対
応できるリードソロモン符号化装置を提供できる効果が
ある。
項式を0とおいた場合に、べき数が最小となる元である
生成初期値と、拡大体の次数をm(m≧1、mは整
数)、原始元をαとしたとき、そのべきの1つであるα
m の値である原始多項式設定値とを入力とし、生成初期
値または原始多項式設定値の少なくともいずれか一方の
変化に対応して生成多項式を展開して各次数の係数から
なる係数データを生成する生成多項式係数生成手段と、
情報データと、上記係数データとを入力とし、該係数デ
ータを用いて上記情報データを生成初期値または原始多
項式設定値の変化に対応して除算し、この除算により得
られた剰余データを、上記情報データに結合してリード
ソロモン符号化したデータを形成するデータ符号化手段
とを備えるようにしたから、原始多項式または生成多項
式が変化した場合においても、これらに対応した生成初
期値または原始多項式設定値を入力してやることによ
り、生成多項式を展開して各次数の係数からなる係数デ
ータを生成して情報データのリードソロモン符号化を行
うことができ、原始多項式または生成多項式の変化に対
応できるリードソロモン符号化装置を提供できる効果が
ある。
【0117】また、この発明によれば、上記生成多項式
係数生成手段とデータ符号化手段は、複数の乗算器を備
えており、該乗算器は、原始元αのビットシフトしたも
のと、原始元αをビットシフトしたものと原始多項式設
定値αm との排他的論理和との組合わせにより原始元α
の乗算を行う係数器を、(m−1)段シリアル接続して
なるようにしたから、原始多項式が変化した場合に、原
始多項式設定値を入力してやることにより、変化後の原
始多項式に対応したガロア乗算を行うことができ、原始
多項式の変化に対応できるリードソロモン符号化装置を
提供できる効果がある。
係数生成手段とデータ符号化手段は、複数の乗算器を備
えており、該乗算器は、原始元αのビットシフトしたも
のと、原始元αをビットシフトしたものと原始多項式設
定値αm との排他的論理和との組合わせにより原始元α
の乗算を行う係数器を、(m−1)段シリアル接続して
なるようにしたから、原始多項式が変化した場合に、原
始多項式設定値を入力してやることにより、変化後の原
始多項式に対応したガロア乗算を行うことができ、原始
多項式の変化に対応できるリードソロモン符号化装置を
提供できる効果がある。
【0118】また、この発明によれば、上記係数器を、
原始元αを乗算するごとに、生成初期値のベクトル値を
左に1ビットシフトさせたものを順次出力するととも
に、最上位ビットが1の際には、次数の増加時に上記原
始元αのビットシフトしたものと原始多項式設定値αm
との排他的論理和を出力するものとしたから、原始多項
式が変化した場合に、原始多項式設定値を入力してやる
ことにより、変化後の原始多項式に対応したガロア乗算
を行うことができ、原始多項式の変化に対応してリード
ソロモン符号化できるリードソロモン符号化装置を提供
できる効果がある。
原始元αを乗算するごとに、生成初期値のベクトル値を
左に1ビットシフトさせたものを順次出力するととも
に、最上位ビットが1の際には、次数の増加時に上記原
始元αのビットシフトしたものと原始多項式設定値αm
との排他的論理和を出力するものとしたから、原始多項
式が変化した場合に、原始多項式設定値を入力してやる
ことにより、変化後の原始多項式に対応したガロア乗算
を行うことができ、原始多項式の変化に対応してリード
ソロモン符号化できるリードソロモン符号化装置を提供
できる効果がある。
【0119】また、この発明によれば、上記生成多項式
係数生成手段は、誤り訂正数をt(t≧1、tは整数)
としたとき、生成初期値に対して原始元αの乗算を繰り
返し、この繰り返しごとに乗算結果を出力する第2tの
乗算器と、生成初期値と上記乗算手段の乗算結果との乗
算を行った後、その乗算結果と上記第2tの乗算結果と
の乗算を繰り返す第0の乗算器と、第0乗算器の出力を
データ更新しながら保持する第0のレジスタと、第0の
レジスタの出力を一方の入力とする、2つの入力の加算
を行う第1の加算器と、この第1の加算器の出力を順次
更新しながら保持する第1のレジスタと、この第1のレ
ジスタの出力と上記第2tの乗算器の出力との乗算を行
い、その結果を上記第1の加算器の他方の入力に入力さ
せる第1の乗算器と、第(N−1)のレジスタ(2t−
1≧N≧2、Nは整数)の出力を一方の入力とする、2
つの入力の加算を行う第Nの加算器と、この第Nの加算
器の出力を順次更新しながら保持する第Nのレジスタ
と、この第Nのレジスタの出力と上記第2tの乗算器の
出力との乗算を行い、その結果を上記第Nの加算器の他
方の入力に入力させる第Nの乗算器とを備え、上記第0
〜第(2t−1)のレジスタにそれぞれ保持されている
データを、生成多項式の係数データとして出力するよう
にしたから、生成多項式が変化した場合に、生成初期値
を入力してやることにより、変化後の生成多項式に対応
してこの生成多項式を展開して係数データを生成するこ
とができ、生成多項式の変化に対応してリードソロモン
符号化できるリードソロモン符号化装置を提供できる効
果がある。
係数生成手段は、誤り訂正数をt(t≧1、tは整数)
としたとき、生成初期値に対して原始元αの乗算を繰り
返し、この繰り返しごとに乗算結果を出力する第2tの
乗算器と、生成初期値と上記乗算手段の乗算結果との乗
算を行った後、その乗算結果と上記第2tの乗算結果と
の乗算を繰り返す第0の乗算器と、第0乗算器の出力を
データ更新しながら保持する第0のレジスタと、第0の
レジスタの出力を一方の入力とする、2つの入力の加算
を行う第1の加算器と、この第1の加算器の出力を順次
更新しながら保持する第1のレジスタと、この第1のレ
ジスタの出力と上記第2tの乗算器の出力との乗算を行
い、その結果を上記第1の加算器の他方の入力に入力さ
せる第1の乗算器と、第(N−1)のレジスタ(2t−
1≧N≧2、Nは整数)の出力を一方の入力とする、2
つの入力の加算を行う第Nの加算器と、この第Nの加算
器の出力を順次更新しながら保持する第Nのレジスタ
と、この第Nのレジスタの出力と上記第2tの乗算器の
出力との乗算を行い、その結果を上記第Nの加算器の他
方の入力に入力させる第Nの乗算器とを備え、上記第0
〜第(2t−1)のレジスタにそれぞれ保持されている
データを、生成多項式の係数データとして出力するよう
にしたから、生成多項式が変化した場合に、生成初期値
を入力してやることにより、変化後の生成多項式に対応
してこの生成多項式を展開して係数データを生成するこ
とができ、生成多項式の変化に対応してリードソロモン
符号化できるリードソロモン符号化装置を提供できる効
果がある。
【0120】また、この発明によれば、上記データ符号
化手段は、誤り訂正数をt( t≧1、tは整数) とした
とき、上記生成多項式の係数データの第0次の値と情報
データとの乗算を行う第0の乗算器と、第0乗算器の出
力を保持する第0レジスタと、生成多項式の係数データ
の第R次( 2t−2≧R≧1)の値と情報データとの乗
算を行う第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)の加算器とを備えている
ようにしたから、原始多項式の変化に対応してリードソ
ロモン符号化できるリードソロモン符号化装置を提供で
きる効果がある。
化手段は、誤り訂正数をt( t≧1、tは整数) とした
とき、上記生成多項式の係数データの第0次の値と情報
データとの乗算を行う第0の乗算器と、第0乗算器の出
力を保持する第0レジスタと、生成多項式の係数データ
の第R次( 2t−2≧R≧1)の値と情報データとの乗
算を行う第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)の加算器とを備えている
ようにしたから、原始多項式の変化に対応してリードソ
ロモン符号化できるリードソロモン符号化装置を提供で
きる効果がある。
【0121】また、この発明によれば、上記係数器が、
被乗数となる入力データの最上位ビット以外のビットを
ビットシフトさせて保持するとともに、該ビットシフト
させたデータに最下位データとして0を付加して出力す
るレジスタと、上記入力データの最上位ビットを入力と
し、該最上位ビットが1の時は原始多項式設定値と上記
レジスタの出力との排他的論理和を選択し出力し、0の
時は上記レジスタの出力を選択し出力するセレクタとを
備えるようにしたから、原始多項式の変化に対応してリ
ードソロモン符号化できるリードソロモン符号化装置を
提供できる効果がある。
被乗数となる入力データの最上位ビット以外のビットを
ビットシフトさせて保持するとともに、該ビットシフト
させたデータに最下位データとして0を付加して出力す
るレジスタと、上記入力データの最上位ビットを入力と
し、該最上位ビットが1の時は原始多項式設定値と上記
レジスタの出力との排他的論理和を選択し出力し、0の
時は上記レジスタの出力を選択し出力するセレクタとを
備えるようにしたから、原始多項式の変化に対応してリ
ードソロモン符号化できるリードソロモン符号化装置を
提供できる効果がある。
【0122】また、この発明によれば、上記生成多項式
係数生成手段は、誤り訂正数t(t≧1、tは整数)を
入力として、この誤り訂正数tの変化に対応して生成多
項式を展開して各次数の係数からなる係数データを生成
するものであり、上記データ符号化手段は、誤り訂正数
tを入力とし、誤り訂正数tの変化に応じて上記情報デ
ータを除算するようにしたから、誤り訂正数tに対応し
て生成多項式を展開し、情報データを除算して剰余デー
タを求めることができ、誤り訂正数tの変化に対応して
リードソロモン符号化できるリードソロモン符号化装置
を提供できる効果がある。
係数生成手段は、誤り訂正数t(t≧1、tは整数)を
入力として、この誤り訂正数tの変化に対応して生成多
項式を展開して各次数の係数からなる係数データを生成
するものであり、上記データ符号化手段は、誤り訂正数
tを入力とし、誤り訂正数tの変化に応じて上記情報デ
ータを除算するようにしたから、誤り訂正数tに対応し
て生成多項式を展開し、情報データを除算して剰余デー
タを求めることができ、誤り訂正数tの変化に対応して
リードソロモン符号化できるリードソロモン符号化装置
を提供できる効果がある。
【0123】また、この発明よれば、誤り訂正数の最大
値を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)の加算器の出力を保持する第2Mのレジス
タと、第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)) の乗算器の出力を選択するようにし
たから、誤り訂正数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)の加算器の出力を保持する第2Mのレジス
タと、第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)) の乗算器の出力を選択するようにし
たから、誤り訂正数tの変化に対応してリードソロモン
符号化できるリードソロモン符号化装置を提供できる効
果がある。
【0124】また、この発明によれば、生成多項式を0
とおいた場合に、べき数が最小となる元である生成初期
値と、拡大体の次数をm(m≧1、mは整数)、原始元
をαとしたとき、そのべきの1つであるαm の値である
原始多項式設定値とを入力とし、生成初期値または原始
多項式設定値の少なくともいずれか一方の変化に対応し
て生成多項式を展開して各次数の係数からなる係数デー
タを生成し、情報データと、上記係数データとを入力と
し、該係数データを用いて上記情報データを生成初期値
または原始多項式設定値の変化に対応して除算し、この
除算により得られた剰余データを、上記情報データに結
合してリードソロモン符号化したデータを形成するよう
にしたから、原始多項式または生成多項式が変化した場
合においても、これらに対応した生成初期値または原始
多項式設定値を入力してやることにより、生成多項式を
展開して各次数の係数からなる係数データを生成して情
報データのリードソロモン符号化を行うことができ、原
始多項式または生成多項式の変化に対応できるリードソ
ロモン符号化方法を提供できる効果がある。
とおいた場合に、べき数が最小となる元である生成初期
値と、拡大体の次数をm(m≧1、mは整数)、原始元
をαとしたとき、そのべきの1つであるαm の値である
原始多項式設定値とを入力とし、生成初期値または原始
多項式設定値の少なくともいずれか一方の変化に対応し
て生成多項式を展開して各次数の係数からなる係数デー
タを生成し、情報データと、上記係数データとを入力と
し、該係数データを用いて上記情報データを生成初期値
または原始多項式設定値の変化に対応して除算し、この
除算により得られた剰余データを、上記情報データに結
合してリードソロモン符号化したデータを形成するよう
にしたから、原始多項式または生成多項式が変化した場
合においても、これらに対応した生成初期値または原始
多項式設定値を入力してやることにより、生成多項式を
展開して各次数の係数からなる係数データを生成して情
報データのリードソロモン符号化を行うことができ、原
始多項式または生成多項式の変化に対応できるリードソ
ロモン符号化方法を提供できる効果がある。
【0125】また、この発明によれば、上記生成多項式
の展開は、誤り訂正数t(t≧1、tは整数)を入力と
し、この誤り訂正数tの変化に対応して行われ、上記情
報データの除算は、誤り訂正数tを入力とし、この誤り
訂正数tの変化に対応して行われるようにしたから、誤
り訂正数tに対応して生成多項式を展開し、情報データ
を除算して剰余データを求めることができ、誤り訂正数
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,115a116a,11
7a ガロア加算器 70 制御ブロック 71 冗長部示唆信号 72 セレクタ制御信号 73 入出力データ制御信号 90〜97,90a,95a,96a,97a データ
保持レジスタ 100 入力データレジスタ 101 出力データレジスタ 20〜122 データセレクタ 130,131 入力データセレクタ 132 出力データセレクタ 141〜147 係数器 151〜158 論理積ゲート 160 排他的論理和ゲート 200 シフトレジスタ 201〜208 レジスタ 210 排他的論理和ゲート 211 出力セレクタ 301 第1のデータ 302 第2のデータ 303 データ 601〜605 レジスタ 611〜615 乗算器 621〜625 加算器
ロア乗算器 31〜35 乗算器データセレクタ 40 係数器データ保持レジスタ 41 初期値データ入力レジスタ 42〜46 係数データ保持レジスタ 50〜55 入力データセレクタ 60〜63,110〜116,115a116a,11
7a ガロア加算器 70 制御ブロック 71 冗長部示唆信号 72 セレクタ制御信号 73 入出力データ制御信号 90〜97,90a,95a,96a,97a データ
保持レジスタ 100 入力データレジスタ 101 出力データレジスタ 20〜122 データセレクタ 130,131 入力データセレクタ 132 出力データセレクタ 141〜147 係数器 151〜158 論理積ゲート 160 排他的論理和ゲート 200 シフトレジスタ 201〜208 レジスタ 210 排他的論理和ゲート 211 出力セレクタ 301 第1のデータ 302 第2のデータ 303 データ 601〜605 レジスタ 611〜615 乗算器 621〜625 加算器
【手続補正書】
【提出日】平成11年5月27日
【手続補正1】
【補正対象書類名】明細書
【補正対象項目名】請求項1
【補正方法】変更
【補正内容】
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】請求項4
【補正方法】変更
【補正内容】
【手続補正3】
【補正対象書類名】明細書
【補正対象項目名】請求項8
【補正方法】変更
【補正内容】
【手続補正4】
【補正対象書類名】明細書
【補正対象項目名】請求項10
【補正方法】変更
【補正内容】
【手続補正5】
【補正対象書類名】明細書
【補正対象項目名】請求項11
【補正方法】変更
【補正内容】
【手続補正6】
【補正対象書類名】明細書
【補正対象項目名】0003
【補正方法】変更
【補正内容】
【0003】リードソロモン符号は、原始多項式をP(x)
とし、P(x)=0の根をαとするとき、この根αを原始元
とするガロア体(Galois field)の上の符号であって、
ブロック誤り訂正符号の1つである。ここで、t を誤り
訂正数、m を拡大体の次数、ガロア体GF(2 m )の原
始元をα 0 ,α 1 ,…,α 2m-2 とする符号長n=2 m −1
のリードソロモン符号を考える。この符号によれば、m
ビットが1処理単位すなわち1シンボルとされる。原情
報の量は(n−2t)シンボルである。以下の説明で
は、m=8とし、1シンボルが8ビットすなわち1バイ
トで表わされるものとする。1パケットの受信語は、n
個のシンボルからなる。このシンボル数nを符号長と呼
ぶことにする。t=8の場合には8シンボルの誤り訂正
が可能である。また、ここで、受信語中の原情報、(n
−2t)シンボルを情報語、誤り訂正を行なうために付
加した2tシンボルを検査語と呼ぶことにする。リード
ソロモン符号の符号化装置は、(n−2t)シンボルの
情報語に2tシンボルの検査語を付加して、符号長nの
シンボル列からなる符号語を生成するものである。
とし、P(x)=0の根をαとするとき、この根αを原始元
とするガロア体(Galois field)の上の符号であって、
ブロック誤り訂正符号の1つである。ここで、t を誤り
訂正数、m を拡大体の次数、ガロア体GF(2 m )の原
始元をα 0 ,α 1 ,…,α 2m-2 とする符号長n=2 m −1
のリードソロモン符号を考える。この符号によれば、m
ビットが1処理単位すなわち1シンボルとされる。原情
報の量は(n−2t)シンボルである。以下の説明で
は、m=8とし、1シンボルが8ビットすなわち1バイ
トで表わされるものとする。1パケットの受信語は、n
個のシンボルからなる。このシンボル数nを符号長と呼
ぶことにする。t=8の場合には8シンボルの誤り訂正
が可能である。また、ここで、受信語中の原情報、(n
−2t)シンボルを情報語、誤り訂正を行なうために付
加した2tシンボルを検査語と呼ぶことにする。リード
ソロモン符号の符号化装置は、(n−2t)シンボルの
情報語に2tシンボルの検査語を付加して、符号長nの
シンボル列からなる符号語を生成するものである。
【手続補正7】
【補正対象書類名】明細書
【補正対象項目名】0011
【補正方法】変更
【補正内容】
【0011】
【数1】
【手続補正8】
【補正対象書類名】明細書
【補正対象項目名】0016
【補正方法】変更
【補正内容】
【0016】ここで、生成多項式(1) におけるiの初期
値であるが、通信系の伝送におけるRS符号では、一般
に、上記のようにi=0が用いられるが、ディスクシス
テムにおけるRS符号では、一般に、i=120が用い
られることが多い。
値であるが、通信系の伝送におけるRS符号では、一般
に、上記のようにi=0が用いられるが、ディスクシス
テムにおけるRS符号では、一般に、i=120が用い
られることが多い。
【手続補正9】
【補正対象書類名】明細書
【補正対象項目名】0020
【補正方法】変更
【補正内容】
【0020】図6は特許第2591611 号に開示された従来
のRS符号化装置の誤り訂正符号作成回路の構造を示す
ブロック図であり、入力データである情報多項式の各係
数が、最終段のレジスタであるレジスタ605まで送ら
れた後、その情報多項式の最高次数の係数と生成多項式
の各係数g0〜g2t-1との乗算結果が積回路611〜6
15、即ち乗算器からそれぞれ出力され、各レジスタ6
01〜605に格納されている情報多項式の係数値に加
算される。これによって一回の除算が成立し、これによ
って、各レジスタ601〜605に格納されている内容
が一つずつ移動していく。こうしてこの除算を順次繰り
返していくことにより商多項式が求まり、最終段のレジ
スタ605に転送されずに他のレジスタ601〜604
に残った値が剰余多項式の係数となる。
のRS符号化装置の誤り訂正符号作成回路の構造を示す
ブロック図であり、入力データである情報多項式の各係
数が、最終段のレジスタであるレジスタ605まで送ら
れた後、その情報多項式の最高次数の係数と生成多項式
の各係数g0〜g2t-1との乗算結果が積回路611〜6
15、即ち乗算器からそれぞれ出力され、各レジスタ6
01〜605に格納されている情報多項式の係数値に加
算される。これによって一回の除算が成立し、これによ
って、各レジスタ601〜605に格納されている内容
が一つずつ移動していく。こうしてこの除算を順次繰り
返していくことにより商多項式が求まり、最終段のレジ
スタ605に転送されずに他のレジスタ601〜604
に残った値が剰余多項式の係数となる。
【手続補正10】
【補正対象書類名】明細書
【補正対象項目名】0023
【補正方法】変更
【補正内容】
【0023】また、生成多項式(1) におけるiの初期値
は、RS符号を用いる系によって異なる。先にも述べた
が、通信系では、一般にi=0、ディスク系では、一般
にi=120が用いられることが多い。生成多項式(1)
の各次数の係数Cは、iの初期値が一定であれば固定値
となるが、iが変われば、各次数の係数Cも全く異なっ
た固定値となる。したがって、生成多項式が変わると、
各生成多項式に対応した各次数の係数を用意する必要が
ある。しかしながら、従来は、生成多項式の各係数値と
しては、単一の生成多項式についてあらかじめ求めてお
き、この係数値を用いて情報多項式の除算を行うように
していたため、生成多項式が変化すると誤り訂正符号を
作成することができなくなるという問題があった。
は、RS符号を用いる系によって異なる。先にも述べた
が、通信系では、一般にi=0、ディスク系では、一般
にi=120が用いられることが多い。生成多項式(1)
の各次数の係数Cは、iの初期値が一定であれば固定値
となるが、iが変われば、各次数の係数Cも全く異なっ
た固定値となる。したがって、生成多項式が変わると、
各生成多項式に対応した各次数の係数を用意する必要が
ある。しかしながら、従来は、生成多項式の各係数値と
しては、単一の生成多項式についてあらかじめ求めてお
き、この係数値を用いて情報多項式の除算を行うように
していたため、生成多項式が変化すると誤り訂正符号を
作成することができなくなるという問題があった。
【手続補正11】
【補正対象書類名】明細書
【補正対象項目名】0026
【補正方法】変更
【補正内容】
【0026】この発明に係るリードソロモン符号化装置
は、拡大体の次数をm(m≧1、mは整数)、原始元の
一つをαとしたとき、生成多項式を0とおいた場合に、
αのべき乗となるその根のうちの、べき数が最小となる
原始元である生成初期値と、α mの値である原始多項式
設定値とを入力とし、生成初期値または原始多項式設定
値の少なくともいずれか一方の変化に対応して生成多項
式を展開して各次数の係数からなる係数データを生成す
る生成多項式係数生成手段と、情報データと、上記係数
データとを入力とし、該係数データを用いて上記情報デ
ータを生成初期値または原始多項式設定値の変化に対応
して除算し、この除算により得られた剰余データを、上
記情報データに結合してリードソロモン符号化したデー
タを形成するデータ符号化手段とを備えたものである。
は、拡大体の次数をm(m≧1、mは整数)、原始元の
一つをαとしたとき、生成多項式を0とおいた場合に、
αのべき乗となるその根のうちの、べき数が最小となる
原始元である生成初期値と、α mの値である原始多項式
設定値とを入力とし、生成初期値または原始多項式設定
値の少なくともいずれか一方の変化に対応して生成多項
式を展開して各次数の係数からなる係数データを生成す
る生成多項式係数生成手段と、情報データと、上記係数
データとを入力とし、該係数データを用いて上記情報デ
ータを生成初期値または原始多項式設定値の変化に対応
して除算し、この除算により得られた剰余データを、上
記情報データに結合してリードソロモン符号化したデー
タを形成するデータ符号化手段とを備えたものである。
【手続補正12】
【補正対象書類名】明細書
【補正対象項目名】0035
【補正方法】変更
【補正内容】
【0035】また、この発明に係るリードソロモン符号
化方法は、拡大体の次数をm(m≧1、mは整数)、原
始元の一つをαとしたとき、生成多項式を0とおいた場
合に、αのべき乗となるその根のうちの、べき数が最小
となる原始元である生成初期値と、α mの値である原始
多項式設定値とを入力とし、生成初期値または原始多項
式設定値の少なくともいずれか一方の変化に対応して生
成多項式を展開して各次数の係数からなる係数データを
生成し、情報データと、上記係数データとを入力とし、
該係数データを用いて上記情報データを生成初期値また
は原始多項式設定値の変化に対応して除算し、この除算
により得られた剰余データを、上記情報データに結合し
てリードソロモン符号化したデータを形成するものであ
る。
化方法は、拡大体の次数をm(m≧1、mは整数)、原
始元の一つをαとしたとき、生成多項式を0とおいた場
合に、αのべき乗となるその根のうちの、べき数が最小
となる原始元である生成初期値と、α mの値である原始
多項式設定値とを入力とし、生成初期値または原始多項
式設定値の少なくともいずれか一方の変化に対応して生
成多項式を展開して各次数の係数からなる係数データを
生成し、情報データと、上記係数データとを入力とし、
該係数データを用いて上記情報データを生成初期値また
は原始多項式設定値の変化に対応して除算し、この除算
により得られた剰余データを、上記情報データに結合し
てリードソロモン符号化したデータを形成するものであ
る。
【手続補正13】
【補正対象書類名】明細書
【補正対象項目名】0039
【補正方法】変更
【補正内容】
【0039】ここで、従来の技術においても説明したよ
うに、原始元は、規則的に決められたベクトル値を有
し、次数が増加するに従い、左にビットシフトするとと
もに、最上位ビットが1の場合は、これを左にビットシ
フトした後、αmのベクトル値を加算した値が、次の次
数のベクトル値となる。そこで、原子元αのべきの1つ
であるα m=α8を求めて、これを原始多項式設定値4と
してガロア演算に用いるようにする。
うに、原始元は、規則的に決められたベクトル値を有
し、次数が増加するに従い、左にビットシフトするとと
もに、最上位ビットが1の場合は、これを左にビットシ
フトした後、αmのベクトル値を加算した値が、次の次
数のベクトル値となる。そこで、原子元αのべきの1つ
であるα m=α8を求めて、これを原始多項式設定値4と
してガロア演算に用いるようにする。
【手続補正14】
【補正対象書類名】明細書
【補正対象項目名】0041
【補正方法】変更
【補正内容】
【0041】このα8のベクトル値を16進数表現した
値、「1d」を原始多項式の設定値4として入力してやる
ことにより符号化演算を行なう。補足であるが、ここ
で、仮に、P(x)=x 8 +x 7 +x 2 +x+1 であるならば、α 8 =10000111となり、原始多項式設定値
4は、16進数表現で「87」となる。このように使用す
る原始多項式によって、原始多項式設定値4は異なるも
のとなる。
値、「1d」を原始多項式の設定値4として入力してやる
ことにより符号化演算を行なう。補足であるが、ここ
で、仮に、P(x)=x 8 +x 7 +x 2 +x+1 であるならば、α 8 =10000111となり、原始多項式設定値
4は、16進数表現で「87」となる。このように使用す
る原始多項式によって、原始多項式設定値4は異なるも
のとなる。
【手続補正15】
【補正対象書類名】明細書
【補正対象項目名】0042
【補正方法】変更
【補正内容】
【0042】次に、生成多項式について、その生成多項
式を0とおいた時に、αのべき乗となるその根のうち
の、べき数が最小となる原始元を生成多項式生成初期値
3としてあらかじめ求めておく。例えば、 G(x)=( x−α0)( x−α1)( x−α2)・・・( x−α19) であるならば、生成初期値3はα0 のベクトル値を16
進数表現した値となる。また、生成多項式が G(x)=( x−α120)( x−α121)( x−α122)・・・( x−α139) であるならば、生成初期値3はα120のベクトル値を1
6進数表現した値となる。このベクトル値を16進数表
現した値は、原始多項式によって決まるから、例えば、
原始多項式が P(x)=x8+x4+x3+x2+1 の場合は、α120は「3b」となり、 P(x)=x8+x7+x2+x+1 の場合は、α120は「e1」となる。このようにしてあら
かじめ使用する生成多項式に応じて生成初期値3を求め
ておく。なお、α0 が生成初期値3の場合は、どのよう
な原始多項式でも、「01」となる。
式を0とおいた時に、αのべき乗となるその根のうち
の、べき数が最小となる原始元を生成多項式生成初期値
3としてあらかじめ求めておく。例えば、 G(x)=( x−α0)( x−α1)( x−α2)・・・( x−α19) であるならば、生成初期値3はα0 のベクトル値を16
進数表現した値となる。また、生成多項式が G(x)=( x−α120)( x−α121)( x−α122)・・・( x−α139) であるならば、生成初期値3はα120のベクトル値を1
6進数表現した値となる。このベクトル値を16進数表
現した値は、原始多項式によって決まるから、例えば、
原始多項式が P(x)=x8+x4+x3+x2+1 の場合は、α120は「3b」となり、 P(x)=x8+x7+x2+x+1 の場合は、α120は「e1」となる。このようにしてあら
かじめ使用する生成多項式に応じて生成初期値3を求め
ておく。なお、α0 が生成初期値3の場合は、どのよう
な原始多項式でも、「01」となる。
【手続補正16】
【補正対象書類名】明細書
【補正対象項目名】0050
【補正方法】変更
【補正内容】
【0050】図2は生成多項式係数生成ブロック1の構
成を示す回路図であり、係数計算の制御を行なう制御ブ
ロック10と、第0,第1,第2,第N(3≦N≦2s
−2、Nは整数),第(2s−1)の2s個のガロア乗
算器21〜25と、定数αを乗算する第2sのガロア乗
算器20と、第1,第2,第N,第(2s−1 )の(2
s−1)個のガロア加算器60〜63と、第0,第1,
第2,第N,第(2s−1)の2s個の係数データ保持
レジスタ42〜46と、生成多項式を展開するための初
期値データ入力レジスタ41と、係数器データ保持レジ
スタ40と、第1および第2の2個の初期値データセレ
クタ30,51と、第0,第1,第2,第N,第(2s
−1)の2s個の入力データセレクタ50,52〜55
と、第0,第1,第2,第N,第(2s−1)の2s個
の乗算器データセレクタ31〜35からなっている。
成を示す回路図であり、係数計算の制御を行なう制御ブ
ロック10と、第0,第1,第2,第N(3≦N≦2s
−2、Nは整数),第(2s−1)の2s個のガロア乗
算器21〜25と、定数αを乗算する第2sのガロア乗
算器20と、第1,第2,第N,第(2s−1 )の(2
s−1)個のガロア加算器60〜63と、第0,第1,
第2,第N,第(2s−1)の2s個の係数データ保持
レジスタ42〜46と、生成多項式を展開するための初
期値データ入力レジスタ41と、係数器データ保持レジ
スタ40と、第1および第2の2個の初期値データセレ
クタ30,51と、第0,第1,第2,第N,第(2s
−1)の2s個の入力データセレクタ50,52〜55
と、第0,第1,第2,第N,第(2s−1)の2s個
の乗算器データセレクタ31〜35からなっている。
【手続補正17】
【補正対象書類名】明細書
【補正対象項目名】0052
【補正方法】変更
【補正内容】
【0052】初期値データ入力レジスタ41は、生成多
項式を展開するための生成初期値データ3を受けて保持
した後、第0の乗算器データセレクタ31および第2の
初期値データセレクタ51に出力する。第1の初期値デ
ータセレクタ30は、生成初期値データ3と、係数器デ
ータ保持レジスタ40の出力データのいずれか一方を選
択し、第2sのガロア乗算器20に出力する。
項式を展開するための生成初期値データ3を受けて保持
した後、第0の乗算器データセレクタ31および第2の
初期値データセレクタ51に出力する。第1の初期値デ
ータセレクタ30は、生成初期値データ3と、係数器デ
ータ保持レジスタ40の出力データのいずれか一方を選
択し、第2sのガロア乗算器20に出力する。
【手続補正18】
【補正対象書類名】明細書
【補正対象項目名】0053
【補正方法】変更
【補正内容】
【0053】係数器データ保持レジスタ40は、第1の
初期値データセレクタ30で選択されたデータと定数値
である原始元αとを、原始多項式に対応したガロア演算
則に従って、第2sのガロア乗算器20で乗算したデー
タを受けて保持した後、第1の初期値データセレクタ3
0に出力をフィードバックすると共に、第0のガロア乗
算器21に出力する。第0のガロア乗算器21は、係数
器データ保持レジスタ40の出力データと、第0の乗算
器データセレクタ31の出力データとをガロア乗算した
後、乗算結果を第0の入力データセレクタ50に出力す
る。
初期値データセレクタ30で選択されたデータと定数値
である原始元αとを、原始多項式に対応したガロア演算
則に従って、第2sのガロア乗算器20で乗算したデー
タを受けて保持した後、第1の初期値データセレクタ3
0に出力をフィードバックすると共に、第0のガロア乗
算器21に出力する。第0のガロア乗算器21は、係数
器データ保持レジスタ40の出力データと、第0の乗算
器データセレクタ31の出力データとをガロア乗算した
後、乗算結果を第0の入力データセレクタ50に出力す
る。
【手続補正19】
【補正対象書類名】明細書
【補正対象項目名】0056
【補正方法】変更
【補正内容】
【0056】第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に出力する。第(2
s−1)のガロア乗算器25は、係数器データ保持レジ
スタ40の出力データと、第(2s−1)の乗算器デー
タセレクタ35の出力データとを入力として、原始多項
式に対応したガロア演算則に従って、これらをガロア乗
算した後、乗算結果を第(2s−1)のガロア加算器6
3に出力する。
保持レジスタ40の出力データと、第1の乗算器データ
セレクタ32の出力データとを受けて、原始多項式に対
応したガロア演算則に従って、これらをガロア乗算した
後、その乗算結果を第1のガロア加算器60に出力す
る。第2のガロア乗算器23は、係数器データ保持レジ
スタ40の出力データと、第2の乗算器データセレクタ
33の出力データとを、原始多項式に対応したガロア演
算則に従ってガロア乗算した後、乗算結果を第2のガロ
ア加算器61に出力する。第N( 2s−2≧N≧3,N
は整数) のガロア乗算器24は、係数器データ保持レジ
スタ40の出力データと、第Nの乗算器データセレクタ
34の出力データとを入力として、原始多項式に対応し
たガロア演算則に従って、これらをガロア乗算した後、
乗算結果を第Nのガロア加算器62に出力する。第(2
s−1)のガロア乗算器25は、係数器データ保持レジ
スタ40の出力データと、第(2s−1)の乗算器デー
タセレクタ35の出力データとを入力として、原始多項
式に対応したガロア演算則に従って、これらをガロア乗
算した後、乗算結果を第(2s−1)のガロア加算器6
3に出力する。
【手続補正20】
【補正対象書類名】明細書
【補正対象項目名】0059
【補正方法】変更
【補正内容】
【0059】第1の入力データセレクタ52は、第2の
初期値データセレクタ51の出力データ、あるいは、第
1のガロア加算器60の出力データを選択して、第1の
係数データ保持レジスタ43に出力し、第2の入力デー
タセレクタ53は、第1の係数データ保持レジスタ43
の出力データ、第2のガロア加算器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に出力する。
初期値データセレクタ51の出力データ、あるいは、第
1のガロア加算器60の出力データを選択して、第1の
係数データ保持レジスタ43に出力し、第2の入力デー
タセレクタ53は、第1の係数データ保持レジスタ43
の出力データ、第2のガロア加算器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に出力する。
【手続補正21】
【補正対象書類名】明細書
【補正対象項目名】0062
【補正方法】変更
【補正内容】
【0062】次に、生成多項式係数生成ブロック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〜2
5に入力される。
作について説明する。ここでは特に誤り訂正数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〜2
5に入力される。
【手続補正22】
【補正対象書類名】明細書
【補正対象項目名】0067
【補正方法】変更
【補正内容】
【0067】係数器データ保持レジスタ40に保持され
ているα1が第1の初期値データセレクタ30に入力さ
れるので、このセレクタ30において、今度は生成多項
式初期値データ3ではなく、係数器データ保持レジスタ
40の出力データを選択する。これにより、セレクタ3
0の出力値データを、第2sガロア乗算器20によりさ
らにα倍したα2を生成し、係数器データ保持レジスタ
40は新たに、「α2」を保持する。したがって、第0
ガロア乗算器21から第19ガロア乗算器25の一方の
入力データに、「α2」が入力される。
ているα1が第1の初期値データセレクタ30に入力さ
れるので、このセレクタ30において、今度は生成多項
式初期値データ3ではなく、係数器データ保持レジスタ
40の出力データを選択する。これにより、セレクタ3
0の出力値データを、第2sガロア乗算器20によりさ
らにα倍したα2を生成し、係数器データ保持レジスタ
40は新たに、「α2」を保持する。したがって、第0
ガロア乗算器21から第19ガロア乗算器25の一方の
入力データに、「α2」が入力される。
【手続補正23】
【補正対象書類名】明細書
【補正対象項目名】0073
【補正方法】変更
【補正内容】
【0073】以上の繰り返し演算により、以下の生成多
項式 G(x)=( x−α0)( x−α1)( x−α2)・・・( x−α19) が、順次展開されて、 G(x)=x20+c19x19+c18x18+c17x17+…+c2
x2+c1x+c0 となり、c0 からc19の20個の係数を持つ式になる。
なお、第19係数データ保持レジスタ46に保持される
データce19が高次側の係数c19に相当し、第0係数デー
タ保持レジスタ42に保持されるデータce0 が低次側の
係数c0 に相当する。
項式 G(x)=( x−α0)( x−α1)( x−α2)・・・( x−α19) が、順次展開されて、 G(x)=x20+c19x19+c18x18+c17x17+…+c2
x2+c1x+c0 となり、c0 からc19の20個の係数を持つ式になる。
なお、第19係数データ保持レジスタ46に保持される
データce19が高次側の係数c19に相当し、第0係数デー
タ保持レジスタ42に保持されるデータce0 が低次側の
係数c0 に相当する。
【手続補正24】
【補正対象書類名】明細書
【補正対象項目名】0074
【補正方法】変更
【補正内容】
【0074】ここで、生成多項式が変化した場合には、
生成初期値3としてα0の変わりに、生成多項式を0と
おいたときに、αのべき乗となるその根のうちの、べき
数が最小となる原始元を生成初期値3として入力してや
れば上記と同様に生成多項式を展開して係数を生成でき
る。したがって、この実施の形態によれば、生成初期値
3を入力として、これを用いて生成多項式を展開して係
数データ8を得る生成多項式係数生成ブロック1を設け
るようにしたから、生成多項式にあわせて生成初期値3
をあらかじめ求めておき、これを入力してやることによ
り異なる生成多項式に対しても、これを展開したときの
各次数の係数を求めることが可能となり、生成多項式が
異なる場合においても各生成多項式に対応した係数デー
タ8をデータ符号化ブロック2に出力することが可能と
なり、生成多項式の変化に対応してリードソロモン符号
化を行うことが可能となる。
生成初期値3としてα0の変わりに、生成多項式を0と
おいたときに、αのべき乗となるその根のうちの、べき
数が最小となる原始元を生成初期値3として入力してや
れば上記と同様に生成多項式を展開して係数を生成でき
る。したがって、この実施の形態によれば、生成初期値
3を入力として、これを用いて生成多項式を展開して係
数データ8を得る生成多項式係数生成ブロック1を設け
るようにしたから、生成多項式にあわせて生成初期値3
をあらかじめ求めておき、これを入力してやることによ
り異なる生成多項式に対しても、これを展開したときの
各次数の係数を求めることが可能となり、生成多項式が
異なる場合においても各生成多項式に対応した係数デー
タ8をデータ符号化ブロック2に出力することが可能と
なり、生成多項式の変化に対応してリードソロモン符号
化を行うことが可能となる。
【手続補正25】
【補正対象書類名】明細書
【補正対象項目名】0075
【補正方法】変更
【補正内容】
【0075】図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)個のデータセレクタ1
20〜122と、第1および第2の2個の入力データセ
レクタ130,131と、入力データレジスタ100
と、出力データセレクタ132と、出力データレジスタ
101からなっている。
す回路図であり、係数計算の制御を行なう制御ブロック
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)個のデータセレクタ1
20〜122と、第1および第2の2個の入力データセ
レクタ130,131と、入力データレジスタ100
と、出力データセレクタ132と、出力データレジスタ
101からなっている。
【手続補正26】
【補正対象書類名】明細書
【補正対象項目名】0076
【補正方法】変更
【補正内容】
【0076】制御ブロック70は、誤り訂正数tにより
冗長バイト長が異なることから、誤り訂正数データ5を
入力としてこれをチェックして各データセレクタ80〜
85の制御を行なうセレクタ制御信号72を出力し、ま
た、情報データの符号長nおよび誤り訂正数tによって
符号化される冗長データの構成が異なることから、冗長
部の開始位置を示唆する冗長部示唆信号71を第2の入
力データセレクタ131に出力し、入出力データを制御
する入出力データ制御信号73を第1の入力データセレ
クタ130及び出力データセレクタ132に出力する。
冗長バイト長が異なることから、誤り訂正数データ5を
入力としてこれをチェックして各データセレクタ80〜
85の制御を行なうセレクタ制御信号72を出力し、ま
た、情報データの符号長nおよび誤り訂正数tによって
符号化される冗長データの構成が異なることから、冗長
部の開始位置を示唆する冗長部示唆信号71を第2の入
力データセレクタ131に出力し、入出力データを制御
する入出力データ制御信号73を第1の入力データセレ
クタ130及び出力データセレクタ132に出力する。
【手続補正27】
【補正対象書類名】明細書
【補正対象項目名】0077
【補正方法】変更
【補正内容】
【0077】第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)次の生成多項式係数データce2M-1
と、第2の入力データセレクタ131の出力データとを
入力とし、これらを原始多項式に対応したガロア演算則
に従ってガロア乗算した後、乗算結果を第2M−1のガ
ロア加算器114に出力する。第2Mのガロア乗算器8
6は、生成多項式係数生成ブロック1から出力される第
2M次の生成多項式係数データce2Mと、第2の入力デー
タセレクタ131の出力データとを入力とし、これらを
原始多項式に対応したガロア演算則に従ってガロア乗算
した後、乗算結果を第(2M−1)のガロア加算器11
5に出力する。第(2s−1)のガロア乗算器87は、
生成多項式係数生成ブロック1の第(2s−1)係数デ
ータ保持レジスタ46から出力される第(2s−1)次
の生成多項式係数データce2s-1と、第2の入力データセ
レクタ131の出力データとを入力とし、これらを原始
多項式に対応したガロア演算則に従ってガロア乗算した
後、乗算結果を第(2s−2)のガロア加算器116に
出力する。
数生成ブロック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)次の生成多項式係数データce2M-1
と、第2の入力データセレクタ131の出力データとを
入力とし、これらを原始多項式に対応したガロア演算則
に従ってガロア乗算した後、乗算結果を第2M−1のガ
ロア加算器114に出力する。第2Mのガロア乗算器8
6は、生成多項式係数生成ブロック1から出力される第
2M次の生成多項式係数データce2Mと、第2の入力デー
タセレクタ131の出力データとを入力とし、これらを
原始多項式に対応したガロア演算則に従ってガロア乗算
した後、乗算結果を第(2M−1)のガロア加算器11
5に出力する。第(2s−1)のガロア乗算器87は、
生成多項式係数生成ブロック1の第(2s−1)係数デ
ータ保持レジスタ46から出力される第(2s−1)次
の生成多項式係数データce2s-1と、第2の入力データセ
レクタ131の出力データとを入力とし、これらを原始
多項式に対応したガロア演算則に従ってガロア乗算した
後、乗算結果を第(2s−2)のガロア加算器116に
出力する。
【手続補正28】
【補正対象書類名】明細書
【補正対象項目名】0078
【補正方法】変更
【補正内容】
【0078】第0のガロア加算器110は、第1のガロ
ア乗算器81の出力データと、第0のデータ保持レジス
タ90の出力データを受けて、ガロア加算を行なって、
第1のデータ保持レジスタ91に出力する。第1のガロ
ア加算器111は、第2のガロア乗算器82の出力デー
タと、第1のデータ保持レジスタ91の出力データを受
けて、ガロア加算を行なって、第1のデータセレクタ1
20に出力する。第2のガロア加算器112は、第3の
ガロア乗算器83の出力データと、第2のデータ保持レ
ジスタ92の出力データを受けて、ガロア加算を行なっ
て、第3のデータ保持レジスタ93に出力する。第3の
ガロア加算器113は、第4のガロア乗算器84の出力
データと、第3のデータ保持レジスタ93の出力データ
を受けて、ガロア加算を行なって、第4のデータセレク
タ121に出力する。第(2M−2)のガロア加算器1
14は、第(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に出力する。
ア乗算器81の出力データと、第0のデータ保持レジス
タ90の出力データを受けて、ガロア加算を行なって、
第1のデータ保持レジスタ91に出力する。第1のガロ
ア加算器111は、第2のガロア乗算器82の出力デー
タと、第1のデータ保持レジスタ91の出力データを受
けて、ガロア加算を行なって、第1のデータセレクタ1
20に出力する。第2のガロア加算器112は、第3の
ガロア乗算器83の出力データと、第2のデータ保持レ
ジスタ92の出力データを受けて、ガロア加算を行なっ
て、第3のデータ保持レジスタ93に出力する。第3の
ガロア加算器113は、第4のガロア乗算器84の出力
データと、第3のデータ保持レジスタ93の出力データ
を受けて、ガロア加算を行なって、第4のデータセレク
タ121に出力する。第(2M−2)のガロア加算器1
14は、第(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に出力する。
【手続補正29】
【補正対象書類名】明細書
【補正対象項目名】0079
【補正方法】変更
【補正内容】
【0079】第0のデータ保持レジスタ90は、第0の
ガロア乗算器80の出力データを受けて保持した後、第
0のガロア加算器110に出力する。第1のデータ保持
レジスタ91は、第0のガロア加算器110の出力を受
けて保持した後、第1のガロア加算器111に出力す
る。第2のデータ保持レジスタ92は、第1データセレ
クタ120の出力を受けて保持した後、第2のガロア加
算器112に出力する。第3のデータ保持レジスタ93
は、第2のガロア加算器112の出力を受けて保持した
後、第3のガロア加算器113に出力する。第4のデー
タ保持レジスタ94は、第4データセレクタ121の出
力を受けて保持した後、第4のガロア加算器に出力す
る。第(2M−1)のデータ保持レジスタ95は、第
(2M−2)のガロア加算器114の出力を受けて保持
した後、第(2M−1)のガロア加算器115に出力す
る。第2Mのデータ保持レジスタ96は、第2Mデータ
セレクタ122の出力を受けて保持した後、第2Mのガ
ロア加算器に出力する。第(2s−1)のデータ保持レ
ジスタ97は、第(2s−2)のガロア加算器116の
出力データを受けて保持した後、(2s−1)のガロア
加算器117および出力データセレクタ132に出力す
る。
ガロア乗算器80の出力データを受けて保持した後、第
0のガロア加算器110に出力する。第1のデータ保持
レジスタ91は、第0のガロア加算器110の出力を受
けて保持した後、第1のガロア加算器111に出力す
る。第2のデータ保持レジスタ92は、第1データセレ
クタ120の出力を受けて保持した後、第2のガロア加
算器112に出力する。第3のデータ保持レジスタ93
は、第2のガロア加算器112の出力を受けて保持した
後、第3のガロア加算器113に出力する。第4のデー
タ保持レジスタ94は、第4データセレクタ121の出
力を受けて保持した後、第4のガロア加算器に出力す
る。第(2M−1)のデータ保持レジスタ95は、第
(2M−2)のガロア加算器114の出力を受けて保持
した後、第(2M−1)のガロア加算器115に出力す
る。第2Mのデータ保持レジスタ96は、第2Mデータ
セレクタ122の出力を受けて保持した後、第2Mのガ
ロア加算器に出力する。第(2s−1)のデータ保持レ
ジスタ97は、第(2s−2)のガロア加算器116の
出力データを受けて保持した後、(2s−1)のガロア
加算器117および出力データセレクタ132に出力す
る。
【手続補正30】
【補正対象書類名】明細書
【補正対象項目名】0081
【補正方法】変更
【補正内容】
【0081】入力データレジスタ100は、第1 の入力
データセレクタの出力データを受けて保持した後、第
(2s−1)のガロア加算器117および出力データセ
レクタ132に出力する。出力データセレクタ132
は、第(2s−1)のデータ保持レジスタ97の出力デ
ータ、あるいは入力データレジスタ100の出力データ
を選択して、出力データレジスタ101に出力し、出力
データレジスタ101は、出力データセレクタ132の
出力データを受けて、保持した後、リードソロモン符号
化データとして出力する。
データセレクタの出力データを受けて保持した後、第
(2s−1)のガロア加算器117および出力データセ
レクタ132に出力する。出力データセレクタ132
は、第(2s−1)のデータ保持レジスタ97の出力デ
ータ、あるいは入力データレジスタ100の出力データ
を選択して、出力データレジスタ101に出力し、出力
データレジスタ101は、出力データセレクタ132の
出力データを受けて、保持した後、リードソロモン符号
化データとして出力する。
【手続補正31】
【補正対象書類名】明細書
【補正対象項目名】0086
【補正方法】変更
【補正内容】
【0086】入力データレジスタ100から第19ガロ
ア加算器117に入力された情報データは、第19デー
タ保持レジスタ97の出力値と加算されて第2の入力デ
ータセレクタ131に入力される。第1から第19のデ
ータ保持レジスタ90〜97は、初期値を「0」として
リセットされるので、最初の20個の入力情報データ
は、第19ガロア加算器117をそのまま通過すること
になる。
ア加算器117に入力された情報データは、第19デー
タ保持レジスタ97の出力値と加算されて第2の入力デ
ータセレクタ131に入力される。第1から第19のデ
ータ保持レジスタ90〜97は、初期値を「0」として
リセットされるので、最初の20個の入力情報データ
は、第19ガロア加算器117をそのまま通過すること
になる。
【手続補正32】
【補正対象書類名】明細書
【補正対象項目名】0088
【補正方法】変更
【補正内容】
【0088】情報データ7は、第2の入力データセレク
タ131を経て、第0から第19のガロア乗算器80〜
87に入力されて、ガロア乗算器80〜87にそれぞれ
入力される生成多項式係数データ8とそれぞれガロア乗
算される。この時、生成多項式生成ブロック1同様、第
0から第19のガロア乗算器には、原始多項式設定値4
が入力され、原始多項式に対応したガロア演算則に従っ
たガロア乗算が実行される。第0のガロア乗算器80の
出力データは第0データ保持レジスタ90に送られて保
持される。第1から第19のガロア乗算器81〜87の
出力データは、第0から第18のガロア加算器110か
ら116に入力される。但し、第2、第4…第2M(9
≧M≧3)の偶数番のガロア乗算器82,84,86
は、同時に、第1データセレクタ120、第4データセ
レクタ121…第2Mデータセレクタ122に対しても
出力する。第0から第19のガロア加算器110〜11
7のもう一方の入力には、それぞれ第0から第19のデ
ータ保持レジスタ90〜97の保持データを入力する。
タ131を経て、第0から第19のガロア乗算器80〜
87に入力されて、ガロア乗算器80〜87にそれぞれ
入力される生成多項式係数データ8とそれぞれガロア乗
算される。この時、生成多項式生成ブロック1同様、第
0から第19のガロア乗算器には、原始多項式設定値4
が入力され、原始多項式に対応したガロア演算則に従っ
たガロア乗算が実行される。第0のガロア乗算器80の
出力データは第0データ保持レジスタ90に送られて保
持される。第1から第19のガロア乗算器81〜87の
出力データは、第0から第18のガロア加算器110か
ら116に入力される。但し、第2、第4…第2M(9
≧M≧3)の偶数番のガロア乗算器82,84,86
は、同時に、第1データセレクタ120、第4データセ
レクタ121…第2Mデータセレクタ122に対しても
出力する。第0から第19のガロア加算器110〜11
7のもう一方の入力には、それぞれ第0から第19のデ
ータ保持レジスタ90〜97の保持データを入力する。
【手続補正33】
【補正対象書類名】明細書
【補正対象項目名】0089
【補正方法】変更
【補正内容】
【0089】第0および第1データ保持レジスタ90,
91には、それぞれ第0および第1ガロア乗算器80,
81の出力データを入力する。第2データ保持レジスタ
92には、第1データセレクタ120で選択されるデー
タが入力されるが、このセレクタ120は、第2のガロ
ア乗算器82の出力データと第1 のガロア加算器111
の出力データを選択する。誤り訂正数tが10の場合、
このセレクタ120は、常に、第1 ガロア加算器111
の出力データを選択するが、誤り訂正数tが最大誤り訂
正数s=10よりも小さい、即ち9以下の場合、常に、
第2ガロア乗算器の出力データを選択して、第0データ
保持レジスタ90、第1 データ保持レジスタ91の計算
結果を遮断して、シフト段数を削減する。
91には、それぞれ第0および第1ガロア乗算器80,
81の出力データを入力する。第2データ保持レジスタ
92には、第1データセレクタ120で選択されるデー
タが入力されるが、このセレクタ120は、第2のガロ
ア乗算器82の出力データと第1 のガロア加算器111
の出力データを選択する。誤り訂正数tが10の場合、
このセレクタ120は、常に、第1 ガロア加算器111
の出力データを選択するが、誤り訂正数tが最大誤り訂
正数s=10よりも小さい、即ち9以下の場合、常に、
第2ガロア乗算器の出力データを選択して、第0データ
保持レジスタ90、第1 データ保持レジスタ91の計算
結果を遮断して、シフト段数を削減する。
【手続補正34】
【補正対象書類名】明細書
【補正対象項目名】0107
【補正方法】変更
【補正内容】
【0107】なお、8ビットのデータの場合において
は、原始多項式設定値4はα8となるが、nビットのデ
ータの場合、即ち拡大体αの次数がm(m≧1、mは整
数)の場合には、原始多項式設定値4としては原始元α
のべきの1つであるαmを用いればよい。
は、原始多項式設定値4はα8となるが、nビットのデ
ータの場合、即ち拡大体αの次数がm(m≧1、mは整
数)の場合には、原始多項式設定値4としては原始元α
のべきの1つであるαmを用いればよい。
【手続補正35】
【補正対象書類名】明細書
【補正対象項目名】0116
【補正方法】変更
【補正内容】
【0116】
【発明の効果】以上のようにこの発明によれば、拡大体
の次数をm(m≧1、mは整数)、原始元の一つをαと
したとき、生成多項式を0とおいた場合に、αのべき乗
となるその根のうちの、べき数が最小となる原始元であ
る生成初期値と、α mの値である原始多項式設定値とを
入力とし、生成初期値または原始多項式設定値の少なく
ともいずれか一方の変化に対応して生成多項式を展開し
て各次数の係数からなる係数データを生成する生成多項
式係数生成手段と、情報データと、上記係数データとを
入力とし、該係数データを用いて上記情報データを生成
初期値または原始多項式設定値の変化に対応して除算
し、この除算により得られた剰余データを、上記情報デ
ータに結合してリードソロモン符号化したデータを形成
するデータ符号化手段とを備えるようにしたから、原始
多項式または生成多項式が変化した場合においても、こ
れらに対応した生成初期値または原始多項式設定値を入
力してやることにより、生成多項式を展開して各次数の
係数からなる係数データを生成して情報データのリード
ソロモン符号化を行うことができ、原始多項式または生
成多項式の変化に対応できるリードソロモン符号化装置
を提供できる効果がある。
の次数をm(m≧1、mは整数)、原始元の一つをαと
したとき、生成多項式を0とおいた場合に、αのべき乗
となるその根のうちの、べき数が最小となる原始元であ
る生成初期値と、α mの値である原始多項式設定値とを
入力とし、生成初期値または原始多項式設定値の少なく
ともいずれか一方の変化に対応して生成多項式を展開し
て各次数の係数からなる係数データを生成する生成多項
式係数生成手段と、情報データと、上記係数データとを
入力とし、該係数データを用いて上記情報データを生成
初期値または原始多項式設定値の変化に対応して除算
し、この除算により得られた剰余データを、上記情報デ
ータに結合してリードソロモン符号化したデータを形成
するデータ符号化手段とを備えるようにしたから、原始
多項式または生成多項式が変化した場合においても、こ
れらに対応した生成初期値または原始多項式設定値を入
力してやることにより、生成多項式を展開して各次数の
係数からなる係数データを生成して情報データのリード
ソロモン符号化を行うことができ、原始多項式または生
成多項式の変化に対応できるリードソロモン符号化装置
を提供できる効果がある。
【手続補正36】
【補正対象書類名】明細書
【補正対象項目名】0124
【補正方法】変更
【補正内容】
【0124】また、この発明によれば、拡大体の次数を
m(m≧1、mは整数)、原始元の一つをαとしたと
き、生成多項式を0とおいた場合に、αのべき乗となる
その根のうちの、べき数が最小となる原始元である生成
初期値と、α mの値である原始多項式設定値とを入力と
し、生成初期値または原始多項式設定値の少なくともい
ずれか一方の変化に対応して生成多項式を展開して各次
数の係数からなる係数データを生成し、情報データと、
上記係数データとを入力とし、該係数データを用いて上
記情報データを生成初期値または原始多項式設定値の変
化に対応して除算し、この除算により得られた剰余デー
タを、上記情報データに結合してリードソロモン符号化
したデータを形成するようにしたから、原始多項式また
は生成多項式が変化した場合においても、これらに対応
した生成初期値または原始多項式設定値を入力してやる
ことにより、生成多項式を展開して各次数の係数からな
る係数データを生成して情報データのリードソロモン符
号化を行うことができ、原始多項式または生成多項式の
変化に対応できるリードソロモン符号化方法を提供でき
る効果がある。
m(m≧1、mは整数)、原始元の一つをαとしたと
き、生成多項式を0とおいた場合に、αのべき乗となる
その根のうちの、べき数が最小となる原始元である生成
初期値と、α mの値である原始多項式設定値とを入力と
し、生成初期値または原始多項式設定値の少なくともい
ずれか一方の変化に対応して生成多項式を展開して各次
数の係数からなる係数データを生成し、情報データと、
上記係数データとを入力とし、該係数データを用いて上
記情報データを生成初期値または原始多項式設定値の変
化に対応して除算し、この除算により得られた剰余デー
タを、上記情報データに結合してリードソロモン符号化
したデータを形成するようにしたから、原始多項式また
は生成多項式が変化した場合においても、これらに対応
した生成初期値または原始多項式設定値を入力してやる
ことにより、生成多項式を展開して各次数の係数からな
る係数データを生成して情報データのリードソロモン符
号化を行うことができ、原始多項式または生成多項式の
変化に対応できるリードソロモン符号化方法を提供でき
る効果がある。
【手続補正37】
【補正対象書類名】明細書
【補正対象項目名】図面の簡単な説明
【補正方法】変更
【補正内容】
【図面の簡単な説明】
【図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,115a116a,11
7a ガロア加算器 70 制御ブロック 71 冗長部示唆信号 72 セレクタ制御信号 73 入出力データ制御信号 90〜97,90a,95a,96a,97a データ
保持レジスタ 100 入力データレジスタ 101 出力データレジスタ 20〜122 データセレクタ 130,131 入力データセレクタ 132 出力データセレクタ 141〜147 係数器 151〜158 論理積ゲート 160 排他的論理和ゲート 200 シフトレジスタ 201〜208 レジスタ 210 排他的論理和ゲート 211 出力セレクタ 301 第1のデータ 302 第2のデータ 303 データ 601〜605 レジスタ 611〜615 乗算器 621〜625 加算器
ロア乗算器 31〜35 乗算器データセレクタ 40 係数器データ保持レジスタ 41 初期値データ入力レジスタ 42〜46 係数データ保持レジスタ 50〜55 入力データセレクタ 60〜63,110〜116,115a116a,11
7a ガロア加算器 70 制御ブロック 71 冗長部示唆信号 72 セレクタ制御信号 73 入出力データ制御信号 90〜97,90a,95a,96a,97a データ
保持レジスタ 100 入力データレジスタ 101 出力データレジスタ 20〜122 データセレクタ 130,131 入力データセレクタ 132 出力データセレクタ 141〜147 係数器 151〜158 論理積ゲート 160 排他的論理和ゲート 200 シフトレジスタ 201〜208 レジスタ 210 排他的論理和ゲート 211 出力セレクタ 301 第1のデータ 302 第2のデータ 303 データ 601〜605 レジスタ 611〜615 乗算器 621〜625 加算器
Claims (11)
- 【請求項1】 生成多項式を0とおいた場合に、べき数
が最小となる元である生成初期値と、拡大体の次数をm
(m≧1、mは整数)、原始元をαとしたとき、そのべ
きの1つであるαm の値である原始多項式設定値とを入
力とし、生成初期値または原始多項式設定値の少なくと
もいずれか一方の変化に対応して生成多項式を展開して
各次数の係数からなる係数データを生成する生成多項式
係数生成手段と、 情報データと、上記係数データとを入力とし、該係数デ
ータを用いて上記情報データを生成初期値または原始多
項式設定値の変化に対応して除算し、この除算により得
られた剰余データを、上記情報データに結合してリード
ソロモン符号化したデータを形成するデータ符号化手段
とを備えたことを特徴とするリードソロモン符号化装
置。 - 【請求項2】 請求項1に記載のリードソロモン符号化
装置において、 上記生成多項式係数生成手段とデータ符号化手段は、複
数の乗算器を備えており、 該乗算器は、原始元αのビットシフトしたものと、原始
元αをビットシフトしたものと原始多項式設定値αm と
の排他的論理和との組合わせにより原始元αの乗算を行
う係数器を、(m−1)段シリアル接続してなることを
特徴とするリードソロモン符号化装置。 - 【請求項3】 請求項2に記載のリードソロモン符号化
装置において、 上記係数器は、原始元αを乗算するごとに、生成初期値
のベクトル値を左に1ビットシフトさせたものを順次出
力するとともに、最上位ビットが1の際には、次数の増
加時に上記原始元αのビットシフトしたものと原始多項
式設定値αm との排他的論理和を出力することを特徴と
するリードソロモン符号化装置。 - 【請求項4】 請求項1に記載のリードソロモン符号化
装置において、 上記生成多項式係数生成手段は、 誤り訂正数をt( t≧1、tは整数) としたとき、 生成初期値に対して原始元αの乗算を繰り返し、この繰
り返しごとに乗算結果を出力する第2tの乗算器と、 生成初期値と上記乗算手段の乗算結果との乗算を行った
後、その乗算結果と上記第2tの乗算結果との乗算を繰
り返す第0の乗算器と、 第0乗算器の出力をデータ更新しながら保持する第0の
レジスタと、 第0のレジスタの出力を一方の入力とする、2つの入力
の加算を行う第1の加算器と、 この第1の加算器の出力を順次更新しながら保持する第
1のレジスタと、 この第1のレジスタの出力と上記第2tの乗算器の出力
との乗算を行い、その結果を上記第1の加算器の他方の
入力に入力させる第1の乗算器と、 第(N−1)のレジスタ(2t−1≧N≧2、Nは整
数)の出力を一方の入力とする、2つの入力の加算を行
う第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−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】 請求項10に記載のリードソロモン符号
化装置において、 上記生成多項式係数生成手段は、誤り訂正数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)の加算器の出力を保持する第2Mのレジ
スタと、 第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】 生成多項式を0とおいた場合に、べき
数が最小となる元である生成初期値と、拡大体の次数を
m(m≧1、mは整数)、原始元をαとしたとき、その
べきの1つであるαm の値である原始多項式設定値とを
入力とし、生成初期値または原始多項式設定値の少なく
ともいずれか一方の変化に対応して生成多項式を展開し
て各次数の係数からなる係数データを生成し、 情報データと、上記係数データとを入力とし、該係数デ
ータを用いて上記情報データを生成初期値または原始多
項式設定値の変化に対応して除算し、この除算により得
られた剰余データを、上記情報データに結合してリード
ソロモン符号化したデータを形成することを特徴とする
リードソロモン符号化方法。 - 【請求項11】 請求項1に記載のリードソロモン符号
化方法において、 上記生成多項式の展開は、誤り訂正数t(t≧1、tは
整数)を入力とし、この誤り訂正数tの変化に対応して
行われ、 上記情報データの除算は、誤り訂正数tを入力とし、こ
の誤り訂正数tの変化に対応して行われることを特徴と
するリードソロモン符号化方法。
Priority Applications (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15319698A JP3238128B2 (ja) | 1998-06-02 | 1998-06-02 | リードソロモン符号化装置および方法 |
TW088108731A TW418571B (en) | 1998-06-02 | 1999-05-27 | Reed solomon coding apparatus and coding method thereof |
US09/321,553 US6467063B1 (en) | 1998-06-02 | 1999-05-28 | Reed Solomon coding apparatus and Reed Solomon coding method |
DE69907566T DE69907566T2 (de) | 1998-06-02 | 1999-06-01 | Reed Solomon Kodierungsgerät und Reed Solomon Kodierungsverfahren |
KR1019990019948A KR100309724B1 (ko) | 1998-06-02 | 1999-06-01 | 리드 솔로몬 부호화 장치 및 방법 |
EP99110568A EP0963047B1 (en) | 1998-06-02 | 1999-06-01 | Reed Solomon coding apparatus and Reed Solomon coding method |
CNB991071395A CN1164039C (zh) | 1998-06-02 | 1999-06-02 | 里德-所罗门编码装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP15319698A JP3238128B2 (ja) | 1998-06-02 | 1998-06-02 | リードソロモン符号化装置および方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH11346157A true JPH11346157A (ja) | 1999-12-14 |
JP3238128B2 JP3238128B2 (ja) | 2001-12-10 |
Family
ID=15557151
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP15319698A Expired - Fee Related JP3238128B2 (ja) | 1998-06-02 | 1998-06-02 | リードソロモン符号化装置および方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US6467063B1 (ja) |
EP (1) | EP0963047B1 (ja) |
JP (1) | JP3238128B2 (ja) |
KR (1) | KR100309724B1 (ja) |
CN (1) | CN1164039C (ja) |
DE (1) | DE69907566T2 (ja) |
TW (1) | TW418571B (ja) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001188468A (ja) * | 1999-12-27 | 2001-07-10 | Toyo Commun Equip Co Ltd | ガロア体上の元の除算演算方法および除算演算回路 |
JP2003032122A (ja) * | 2001-07-18 | 2003-01-31 | Nec Eng Ltd | 符号化装置 |
JP2007129618A (ja) * | 2005-11-07 | 2007-05-24 | Renesas Technology Corp | ガロア体のα乗算回路および演算回路 |
US7478310B2 (en) | 2005-07-05 | 2009-01-13 | Electronics And Telecommunications Research Institute | Programmable error correcting device |
JP2009204536A (ja) * | 2008-02-28 | 2009-09-10 | Toshiba Corp | 電力量計 |
JP2010217922A (ja) * | 2010-06-21 | 2010-09-30 | Toyo Networks & System Integration Co Ltd | ガロア体上の元の除算演算回路 |
JP2010217921A (ja) * | 2010-06-21 | 2010-09-30 | Toyo Networks & System Integration Co Ltd | ガロア体上の元の除算演算回路 |
JP2011520404A (ja) * | 2008-05-12 | 2011-07-14 | アスペン・アクイジション・コーポレーション | プログラム可能なプロセッサにおける随意選択的なガロア域計算の実行 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6647051B1 (en) * | 1999-12-29 | 2003-11-11 | Koninklijke Philips Electronics N.V. | Zero delay mask for galois LFSR |
JP2001298370A (ja) * | 2000-04-13 | 2001-10-26 | Matsushita Electric Ind Co Ltd | 符号化装置 |
US6725412B1 (en) * | 2000-08-15 | 2004-04-20 | Dolby Laboratories Licensing Corporation | Low latency data encoder |
US6836869B1 (en) * | 2001-02-02 | 2004-12-28 | Cradle Technologies, Inc. | Combined cyclic redundancy check (CRC) and Reed-Solomon (RS) error checking unit |
US20030061527A1 (en) * | 2001-09-26 | 2003-03-27 | Intel Corporation | Method and apparatus for realigning bits on a parallel bus |
KR100920723B1 (ko) * | 2002-10-08 | 2009-10-07 | 삼성전자주식회사 | 동적환경변화에 적응가능한 단일반송파 전송시스템 및 그방법 |
US7761776B1 (en) * | 2005-11-03 | 2010-07-20 | Xilinx, Inc. | Method and apparatus for a modular, programmable cyclic redundancy check design |
US7836386B2 (en) * | 2006-09-27 | 2010-11-16 | Qimonda Ag | Phase shift adjusting method and circuit |
CN100425000C (zh) * | 2006-09-30 | 2008-10-08 | 东南大学 | 双涡轮结构低密度奇偶校验码解码器及解码方法 |
CN100459438C (zh) * | 2006-10-20 | 2009-02-04 | 东南大学 | 里德所罗门解码器的关键方程与错误值求解优化电路 |
US8099655B1 (en) * | 2007-12-20 | 2012-01-17 | Pmc-Sierra Us, Inc. | Galois field multiplier system and method |
CN108665940B (zh) * | 2018-05-14 | 2020-09-04 | 联芸科技(杭州)有限公司 | Ecc编码电路、解码电路以及存储器控制器 |
CN111884680A (zh) * | 2020-06-20 | 2020-11-03 | 青岛鼎信通讯股份有限公司 | 一种应用于电力线载波通信系统的rs编码方法 |
US20230305846A1 (en) * | 2022-03-24 | 2023-09-28 | Intel Corporation | Processor hardware and instructions for vectorized fused and-xor |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5130990A (en) * | 1990-02-15 | 1992-07-14 | The United States Of America, As Represented By The Administrator, National Aeronautics And Space Administration | VLSI architecture for a Reed-Solomon decoder |
US5323402A (en) * | 1991-02-14 | 1994-06-21 | The Mitre Corporation | Programmable systolic BCH decoder |
JP2543319B2 (ja) | 1993-09-24 | 1996-10-16 | 三菱電機株式会社 | 符号化装置 |
US5642367A (en) * | 1994-02-07 | 1997-06-24 | Mitsubishi Semiconductor America, Inc. | Finite field polynomial processing module for error control coding |
JP2725598B2 (ja) | 1994-05-13 | 1998-03-11 | 日本電気株式会社 | 誤り訂正符号化器 |
US5914969A (en) | 1995-10-03 | 1999-06-22 | Matsushita Electric Industrial Co., Ltd. | Device and method for error correcting coding, and device and method for error correcting decoding |
JP3614978B2 (ja) | 1996-05-13 | 2005-01-26 | 株式会社東芝 | ガロア体の除算方法および除算装置 |
KR100192795B1 (ko) * | 1996-05-14 | 1999-06-15 | 전주범 | 리드 솔로몬 복호기의 에러 위치 다항식 계산 장치 |
JPH09331263A (ja) | 1996-06-11 | 1997-12-22 | Seiko Epson Corp | 誤り訂正方法及び装置 |
JP3233860B2 (ja) * | 1996-10-25 | 2001-12-04 | 松下電器産業株式会社 | リードソロモン復号器 |
JPH10135848A (ja) | 1996-10-30 | 1998-05-22 | Texas Instr Japan Ltd | リードソロモン符号化装置およびその方法 |
-
1998
- 1998-06-02 JP JP15319698A patent/JP3238128B2/ja not_active Expired - Fee Related
-
1999
- 1999-05-27 TW TW088108731A patent/TW418571B/zh not_active IP Right Cessation
- 1999-05-28 US US09/321,553 patent/US6467063B1/en not_active Expired - Fee Related
- 1999-06-01 DE DE69907566T patent/DE69907566T2/de not_active Expired - Fee Related
- 1999-06-01 KR KR1019990019948A patent/KR100309724B1/ko not_active IP Right Cessation
- 1999-06-01 EP EP99110568A patent/EP0963047B1/en not_active Expired - Lifetime
- 1999-06-02 CN CNB991071395A patent/CN1164039C/zh not_active Expired - Fee Related
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001188468A (ja) * | 1999-12-27 | 2001-07-10 | Toyo Commun Equip Co Ltd | ガロア体上の元の除算演算方法および除算演算回路 |
JP2003032122A (ja) * | 2001-07-18 | 2003-01-31 | Nec Eng Ltd | 符号化装置 |
US7478310B2 (en) | 2005-07-05 | 2009-01-13 | Electronics And Telecommunications Research Institute | Programmable error correcting device |
JP2007129618A (ja) * | 2005-11-07 | 2007-05-24 | Renesas Technology Corp | ガロア体のα乗算回路および演算回路 |
JP2009204536A (ja) * | 2008-02-28 | 2009-09-10 | Toshiba Corp | 電力量計 |
JP2011520404A (ja) * | 2008-05-12 | 2011-07-14 | アスペン・アクイジション・コーポレーション | プログラム可能なプロセッサにおける随意選択的なガロア域計算の実行 |
US9146708B2 (en) | 2008-05-12 | 2015-09-29 | Qualcomm Incorporated | Implementation of arbitrary galois field arithmetic on a programmable processor |
JP2010217922A (ja) * | 2010-06-21 | 2010-09-30 | Toyo Networks & System Integration Co Ltd | ガロア体上の元の除算演算回路 |
JP2010217921A (ja) * | 2010-06-21 | 2010-09-30 | Toyo Networks & System Integration Co Ltd | ガロア体上の元の除算演算回路 |
Also Published As
Publication number | Publication date |
---|---|
EP0963047A3 (en) | 2000-07-19 |
DE69907566D1 (de) | 2003-06-12 |
JP3238128B2 (ja) | 2001-12-10 |
EP0963047B1 (en) | 2003-05-07 |
US6467063B1 (en) | 2002-10-15 |
KR100309724B1 (ko) | 2001-09-29 |
KR20000005785A (ko) | 2000-01-25 |
EP0963047A2 (en) | 1999-12-08 |
CN1164039C (zh) | 2004-08-25 |
TW418571B (en) | 2001-01-11 |
DE69907566T2 (de) | 2004-02-19 |
CN1238604A (zh) | 1999-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3238128B2 (ja) | リードソロモン符号化装置および方法 | |
US6928602B2 (en) | Encoding method and encoder | |
US6760742B1 (en) | Multi-dimensional galois field multiplier | |
CN104391675B (zh) | 用于提高处理效率的设备和处理器 | |
EP0480621B1 (en) | Apparatus and method for parallel generation of cyclic redundancy check (CRC) codes | |
JPH07212248A (ja) | エラー位置多項式の計算方法およびその装置 | |
EP1146652B1 (en) | High speed coding apparatus for convolutional codes | |
JPH11296347A (ja) | ガロワ体乗算器及びガロワ体乗算の方法 | |
JP2001127645A (ja) | 誤り訂正方法および誤り訂正装置 | |
JP4045872B2 (ja) | 符号化方法および符号化装置 | |
JPH11136136A (ja) | リードソロモン符号化装置及び方法 | |
JP3239522B2 (ja) | データ消失訂正方法とその回路 | |
JP3614978B2 (ja) | ガロア体の除算方法および除算装置 | |
JP4177125B2 (ja) | 演算装置及び演算装置の演算方法 | |
JPH0476540B2 (ja) | ||
JP3233502B2 (ja) | 復号化装置 | |
JP4057876B2 (ja) | ガロア体掛け算器の制御方法 | |
JPH06230991A (ja) | 有限体での任意元素の逆数算出方法及び装置 | |
JPH11237973A (ja) | 乗算器 | |
US11489544B2 (en) | Fast CRC computation circuit using an on-the-fly reconfigurable generator polynomial | |
JPH1196030A (ja) | 有限体上の乗算方法及び乗算回路 | |
JP4293665B2 (ja) | 剰余乗算装置 | |
JP2611721B2 (ja) | イレージャロケーション多項式乗算回路 | |
JP2855988B2 (ja) | 誤り訂正復号装置 | |
JPH0468619A (ja) | リードソロモン符号器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081005 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091005 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091005 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101005 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |