JP2004260646A - 復号装置、誤り位置多項式計算方法、プログラム - Google Patents
復号装置、誤り位置多項式計算方法、プログラム Download PDFInfo
- Publication number
- JP2004260646A JP2004260646A JP2003050327A JP2003050327A JP2004260646A JP 2004260646 A JP2004260646 A JP 2004260646A JP 2003050327 A JP2003050327 A JP 2003050327A JP 2003050327 A JP2003050327 A JP 2003050327A JP 2004260646 A JP2004260646 A JP 2004260646A
- Authority
- JP
- Japan
- Prior art keywords
- error
- value
- polynomial
- erasure
- syndrome
- 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
Images
Classifications
-
- 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
- H03M13/154—Error and erasure correction, e.g. by using the error and erasure locator or Forney polynomial
-
- 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
- H03M13/1525—Determination and particular use of error location polynomials
- H03M13/153—Determination and particular use of error location polynomials using the Berlekamp-Massey algorithm
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
【解決手段】シンドロームS0、S1、・・・、S2t−1と消失位置のガロア体表現である消失位置情報Er0、Er1、・・・、Er2t−1に基づいて誤り位置多項式σ(x)を計算する。また演算の途中結果を保持するバッファと演算器の結合の切り替えを、消失した受信語の数と処理ステップ数に基づき制御することによって、消失位置情報からの消失位置多項式の導出と誤り位置多項式の導出について、同一の回路(誤り位置多項式計算手段)において実現する。
【選択図】 図1
Description
【発明の属する技術分野】
本発明はリードソロモン符号の復号装置、及び誤り位置多項式計算方法、さらには誤り位置多項式計算方法を実行させるプログラムに関するものである。
【0002】
【従来の技術】
【非特許文献1】
A (208,192;8) Reed−Solomon decoder for DVD applicationRsie−Chia Chang; Shung, C.B.
Communications, 1998. ICC 98. Conference Record. 1998 IEEE International Conference on , Volume: 2 , 1998
Page(s): 957 −960 vol.2
【非特許文献2】
On decoding of both errors and erasures of a Reed−Solomon code using an inverse−free Berlekamp−Massey algorithmJyh−Horng Jeng; Trieu−Kien Truong
Communications, IEEE Transactions on , Volume: 47 Issue: 10 , Oct. 1999Page(s): 1488 −1494
【0003】
リードソロモン符号の復号において、伝送経路における受信語の欠落の位置が与えられた場合、その情報に基づくことによって、通常に訂正を行うよりも多くの誤りの訂正が可能となる復号方法が存在する。
この手法は、通常の復号時に受信語より計算して求めるシンドロームという数値群に加え、消失位置をその解として持つ消失位置多項式を利用することによって、最大でパリティ数に等しいデーターの欠落を補うことができ、インターリーブといわれる手法と組み合わせて使用することによって、記録メディアの欠損に依存するような大きな受信データーの欠落に対応することができる。
【0004】
リードソロモン符号の復号法にそった形で説明を続ける。
リードソロモンの復号において、通常に訂正を行う場合には、最大訂正可能数tと符号パラメータ(N,K)との間には、
N−K=2t−1
という関係がある。
【0005】
まず、受信したデータから、シンドローム計算回路により、シンドロームS0、S1、・・・、S2t−1を計算する。
シンドローム多項式は次の(数1)の形であらわされる。
【数1】
【0006】
また、シンドロームS0、S1、・・・、S2t−1から、誤り位置多項式計算回路を用いて誤り位置多項式を求める。誤り位置多項式とは、誤りの位置をZ0、Z1、・・・、Z2t−1とした場合に、次の(数2)として表される多項式である。
【数2】
【0007】
さらに、誤り数値多項式Ω(x)は、上記の誤り位置多項式σ(x)とシンドロームから以下の(数3)で求められる。
【数3】
これらの式から実際の誤りの位置と数値を導くことが出来る。
【0008】
リードソロモン符号の復号を行う回路を構成する際には、誤り位置多項式σ(x)を導出する回路が、最も回路規模や演算ステップ数に影響を及ぼす。この誤り位置多項式σ(x)を導出する回路として、バーレカンプアルゴリズムを実装した回路が、上記非特許文献1にて紹介されている。この回路を図7に示す。
この図7の回路では、シンドロームS0、S1、・・・、S2t−1についての入力レジスタrg14、及び入力レジスタrg14を選択するセレクタSEL14が設けられる。また変数σ系列のシフトレジスタSR1,変数λ系列のシフトレジスタSR2が設けられる。さらに加算器11,12、乗算器ML11,ML12,ML13、レジスタrg11,rg12,rg13、セレクタSEL11,SEL12が設けられる。
この回路の場合、回路規模の大きなガロア体演算回路(乗算器ML11,ML12,ML13)が3つのみで構成され、回路規模の面で優れている。但し次に述べる消失訂正はサポートされていない。
【0009】
【発明が解決しようとする課題】
リードソロモン符号の訂正処理において、あらかじめ符号語中のシンボルの誤り位置を示す消失位置のガロア体表現が得られた場合には、訂正可能数をN−Kまで引き上げる事が出来る。これを消失訂正という。消失位置符号の数、Neras(消失誤りの数)とNerr(誤りの数)には次の(数4)のような関係が成り立つ。
【数4】
【0010】
消失訂正のみを行うには、まず次の(数5)のような消失位置多項式Λ(x)を消失位置のガロア体表現から計算する。
【数5】
消失訂正のみを行う場合は、これを上記(数2)のσ(x)に置き換えて誤り数値多項式を導けばよい。
【0011】
通常の誤り訂正と消失訂正を同時に行う場合には、シンドロームと消失位置多項式Λから誤り位置多項式σを導出する。
上記非特許文献2には、従来のアルゴリズムにあまり変更が加えられない形で消失訂正も行うことの出来る、修正バーレカンプアルゴリズムが提示されている。
上記非特許文献2に示されている、通常の誤り訂正と消失訂正を同時に行うの場合の復号装置全体の構成は図8のようになる。
シンドローム計算部31は、入力データcからシンドロームS0、S1、・・・、S2t−1の計算を行う。
消失位置多項式計算部32は、入力される消失フラグe0、e1、・・・、e2t−1から上記(数5)により消失位置多項式Λ(x)を得る。
誤り位置多項式計算部33は、シンドロームS0、S1、・・・、S2t−1と消失位置多項式Λ(x)から誤り位置多項式σ(x)を導出する。
誤り数値多項式計算部34は、誤り位置多項式σを用いて上記(数3)により誤り数値多項式Ω(x)を得る。
チェンサーチ部35は、誤り位置多項式σと誤り数値多項式Ω(x)から誤り数値を得る。そして入力データcは遅延バッファ36により所定タイミング遅延されて演算器37に入力されるが、この演算器37においてチェンサーチ部35による誤り数値との演算が行われ、復号データc’として出力される。
【0012】
このような構成で通常の誤り訂正と消失訂正が同時に行われる。ところが、このような構成では、誤り位置多項式σ(x)の導出以前に、消失フラグe0、e1、・・・、e2t−1から消失位置多項式Λ(x)を導出する必要がある。また消失位置多項式Λ(x)は消失フラグが全て入力されてからでなければ計算できないため、シンドローム計算後の処理となる。従って、この図8の構成をとると、シンドローム計算終了後に消失位置多項式を計算する演算ステップが必要になり、必要な演算ステップ数が増大してしまうという問題が生ずる。
【0013】
【課題を解決するための手段】
本発明はこのような問題点に鑑みてなされたもので、従来のBerlekamp−Masseyアルゴリズムの計算回路から少ない変更により、消失訂正を行うことのできる復号装置、及び誤り位置多項式計算方法を実現することを目的とする。
【0014】
このため本発明の復号装置は、入力データについてシンドローム計算を行うシンドローム計算手段と、入力された消失フラグから消失位置情報を計算する消失位置情報計算手段と、上記シンドローム計算手段で得られたシンドロームと、上記消失位置情報計算手段で得られた消失位置情報に基づいて誤り位置多項式を計算する誤り位置多項式計算手段と、上記誤り位置多項式から誤り数値多項式を計算する誤り数値多項式計算手段と、上記誤り位置多項式及び誤り数値多項式から誤り数値を算出し、入力データについて訂正処理を行う訂正処理手段とを備える。
また、上記誤り位置多項式計算手段は、処理開始からの処理ステップ数を元に入力を切り替えるセレクタを持つバッファ部と、処理ステップ数及び消失データ数により上記バッファ部と演算器の結合を切り替えるセレクタとを有し、消失位置のガロア体表現及びシンドロームから、誤り位置情報を解として持つ誤り位置多項式を求める構成とされる。
【0015】
本発明の誤り位置多項式計算方法は、入力データから計算されたシンドロームと、入力された消失フラグから計算された消失位置情報とを用いて、誤り位置多項式を計算する。
特に、演算の途中結果を保持するバッファと演算器の結合の切り替えを、消失した受信語の数と処理ステップ数に基づいて制御することで、消失位置のガロア体表現及びシンドロームから、誤り位置情報を解として持つ誤り位置多項式を求める。
本発明のプログラムは、このような誤り位置多項式計算方法を実現するプログラムである。
【0016】
即ち、従来、消失訂正をサポートした場合において、シンドロームS0、S1、・・・、S2t−1と消失位置多項式Λ(x)に基づいて誤り位置多項式σ(x)を計算していたところ、上記本発明によれば、シンドロームS0、S1、・・・、S2t−1と消失位置情報Er0、Er1、・・・、Er2t−1に基づいて誤り位置多項式σ(x)を計算するものとなる。
また、演算の途中結果を保持するバッファと演算器の結合の切り替えを、消失した受信語の数と処理ステップ数に基づき制御することによって、消失位置情報からの消失位置多項式の導出と誤り位置多項式の導出について、同一の回路(誤り位置多項式計算手段)において実現する。
【0017】
【発明の実施の形態】
以下、本発明の実施の形態の復号装置及び誤り位置多項式計算方法について、図1〜図6を参照しながら説明する。
本実施の形態の復号装置は、回路規模や演算ステップ数を抑えながらも、消失位置訂正をサポートできるものである。
【0018】
図1は、本例のリードソロモン符号の復号装置の全体を示している。
シンドローム計算部1は、入力データcからシンドロームS0、S1、・・・、S2t−1の計算を行う。
消失位置情報計算部2は、入力される消失フラグe0、e1、・・・、e2t−1から消失位置情報をEr0、Er1、・・・、Er2t−1を計算する。
誤り位置多項式計算部3は、シンドロームS0、S1、・・・、S2t−1と消失位置情報をEr0、Er1、・・・、Er2t−1から誤り位置多項式σ(x)を導出する。
誤り数値多項式計算部4は、誤り位置多項式σを用いて上記(数3)により誤り数値多項式Ω(x)を得る。
チェンサーチ部5は、誤り位置多項式σと誤り数値多項式Ω(x)から誤り数値を得る。そして入力データcは遅延バッファ6により所定タイミング遅延されて演算器7に入力されるが、この演算器7においてチェンサーチ部5による誤り数値との演算が行われ、復号データc’として出力される。
【0019】
このような本例の復号装置において、上述した図8の復号装置と異なる点は次の▲1▼、▲2▼の2つの点である。
▲1▼ 図8ではシンドロームの計算と並行して消失位置多項式計算部32で消失位置多項式Λ(x)を求めていたところ、本例の図1においては、消失位置情報計算部2として、消失フラグe0、e1、・・・、e2t−1を、消失位置をガロア体の冪表現である消失位置情報Er0、Er1、・・・、Er2t−1に変換するモジュールが設けられている。
▲2▼ 図8では誤り位置多項式計算部33で、シンドロームS0、S1、・・・、S2t−1と消失位置多項式Λ(x)から誤り位置多項式σ(x)を導出したが、本例の図1においては、誤り位置多項式計算部3では、シンドロームS0、S1、・・・、S2t−1と消失位置情報をEr0、Er1、・・・、Er2t−1から誤り位置多項式σ(x)を導出する。
【0020】
まず▲1▼に挙げた消失位置情報計算部2は、このモジュールで得られた消失位置のガロア体表現(Er0、Er1、・・・、Er2t−1)を、▲2▼に挙げた誤り位置多項式計算部3、即ち今回改良された修正バーレカンプアルゴリズムを実行するモジュールに送るものである。
消失位置情報計算部2は、消失位置多項式を計算する代わりに、消失フラグ(消失位置)e0、e1、・・・、e2t−1から、消失位置のガロア体表現である消失位置情報Er0、Er1、・・・、Er2t−1を、
【数6】
と計算する。ここでαはガロア体の原始元(primitive element)である。消失位置多項式の計算には多くの演算ステップを要するが、各消失位置のガロア体表現は、消失位置より1演算ステップで計算することができ、従って消失位置情報計算部2は簡便な回路になる。
【0021】
▲2▼として挙げた誤り位置多項式計算部3では、入力として、シンドロームと消失位置情報が与えられた場合に、バーレカンプアルゴリズムを基にして改善された図4〜図6のアルゴリズムで誤り位置多項式σ(x)を導出する。またそれを実現する回路構成は図2のようになる。
まず図2の構成を説明する。
【0022】
図2の回路は、以下のような部分より構成される。
・処理ステップ数により更新される2つのカウンタ値(C1,C2)
・カウンタ値により制御されたバッファ
・ガロア体乗算器
・ガロア体乗算器の切り替え回路
・シンドローム選択回路
これら各部について説明する。
【0023】
<処理ステップ数により更新される2つのカウンタ値(C1,C2)>
このカウンタ値C1,C2は、図2の回路上に現れるものではないが、この回路の動作を制御する値とされるものである。後述する図4〜図6のアルゴリズムにおいて、変数j,iとしてカウンタ値C1,C2が設定される。C1=j、C2=iとなる。
【0024】
このカウンタ値C1,C2という2つのカウンタ値は以下のI,II,III,IVのような処理を行う。C1n,C2nをカウンタ値を保持するためのレジスタとする。
I.C1n=0、C2n=0
II.C1=C1n、C2=C2n
III.C1=C2ならC1n=C1+1、C2n=0
C1=C2でなければC1n=C1、C2n=C2+1
IV.IIへ
このI〜IVについて、処理開始時にIを実行し、1処理ステップ毎にII〜IVの動作を繰り返す。
【0025】
これにより具体的には、各カウンタ値「C1,C2」は処理ステップ毎に次の各値に遷移する。
「C1,C2」=「0,0」→「1,0」→「1,1」→「2,0」→「2,1」→「2,2」→「3,0」→・・・
但しこれは一例であり、カウンタ値C1、C2は後述する図4から図6で説明するように、変数j,iとしてカウントする値の範囲が設定される。
【0026】
<カウンタ値により制御されたバッファ>
カウンタ値により制御されたバッファとは、図2のバッファ部Bf1,Bf2のことである。
バッファ部Bf1、Bf2はそれぞれ、処理開始からの処理ステップ数を元に入力を切り替えるセレクタを持つシフトレジスタとして構成される。
即ちバッファ部Bf1は、レジスタσrg(0)〜σrg(2t−1)によりシフトレジスタが構成されるとともに、各レジスタσrg(0)〜σrg(2t−2)に対して、その前段のレジスタの出力と、バッファ部Bf1に入力される演算結果とを選択して入力するセレクタSLσ(0)〜SLσ(2t−2)が設けられる。
またバッファ部Bf2は、レジスタλrg(0)〜λrg(2t−1)によりシフトレジスタが構成されるとともに、各レジスタλrg(1)〜σrg(2t−2)に対して、その前段のレジスタの出力と、バッファ部Bf2に入力される演算結果とを選択して入力するセレクタSLλ(1)〜SLλ(2t−2)が設けられる。
【0027】
またバッファ部Bf1には、加算器AD1の演算結果σiterが入力される。
バッファ部Bf2に対しては、入力段にセレクタSEL0、SEL2が設けられる。セレクタSEL0は、バッファ部Bf1のレジスタσrg(0)の値σregと、バッファ部Bf2のレジスタλrg(0)の値λregとを選択する。セレクタSEL2は、加算器AD1の演算結果σiterと、セレクタSEL0の選択値とを選択して値λiter+1としてバッファ部Bf2に入力する。
【0028】
各シフトレジスタレジスタ(σrg(0)〜σrg(2t−1)、λrg(0)〜λrg(2t−1))は、カウンタ値C2の値により、入力を前段のレジスタと、バッファに入力される演算結果(σiter、λiter+1)とから選択することになる。つまりセレクタSLσ(0)〜SLσ(2t−2)及びセレクタSLλ(1)〜SLλ(2t−2)はカウンタ値C2によってその選択状態が制御される。
なお、このような構成は、上記図7の回路に比べ必要な処理ステップ数を削減するものとなる。
【0029】
<ガロア体乗算器>
ガロア体乗算器ML1,ML2,ML3が設けられる。これらガロア体乗算器ML1,ML2,ML3は、2個の任意のガロア体の元を乗算する。
【0030】
<ガロア体乗算器切り替え回路>
まずガロア体乗算器ML1,ML2,ML3を含む回路系は次のように構成されている。
ガロア体乗算器ML3はセレクタSEL6によって選択されたシンドロームSと加算器AD1の演算結果σiterを乗算して乗算結果MUL3を出力する。ガロア体乗算器ML3の出力MUL3は加算器AD2に供給される。
加算器AD2はレジスタrg6とガロア体乗算器ML3の出力を加算して出力する(δk+1)。またこの加算器AD2の出力δk+1はレジスタrg6に保持される。つまりレジスタrg6は値δk+1を保持するレジスタとなる。
加算器AD2の出力δk+1はセレクタSEL3に供給される。セレクタSEL3は、出力δk+1と、レジスタrg5の値を選択してレジスタrg5に入力する。このレジスタrg5は値δを保持するレジスタとなる。
レジスタrg5の値δはセレクタSEL1,SEL4に供給される。
セレクタSEL4は、値δと消失位置の値Erを選択してガロア体乗算器ML2に供給する。ガロア体乗算器ML2では、セレクタSEL4からの値とバッファ部Bf2からの値λregを乗算し、乗算結果MUL2を加算器AD1に供給する。
セレクタSEL1は、レジスタrg5からの値δと、レジスタrg7に保持された値γを選択して、レジスタrg7に入力する。レジスタrg7は値γを保持するレジスタとなる。
レジスタrg7の値γはセレクタSEL5に供給される。セレクタSEL5は値γと、値「1」を選択してガロア体乗算器ML1に出力する。
ガロア体乗算器ML1では、セレクタSEL5からの値とバッファ部Bf1からの値σregを乗算し、乗算結果MUL1を加算器AD1に供給する。
【0031】
このような回路系において、ガロア体乗算器ML1,ML2,ML3の入出力の切り替えはカウンタ値C1と、消失フラグの立っているデータの数Eras_numを比較することによって行われる。
3つの各ガロア体乗算器ML1,ML2,ML3については、それぞれ上記セレクタSEL5,SEL4,SEL6によって図3に示すように接続の切り替えが行われる。
【0032】
まずカウンタ値C1と、消失フラグの立っているデータの数Eras_numの比較結果がC1<Eras_numの場合は、図3(a)のようになる。
ガロア体乗算器ML1には、値「1」とバッファ部Bf1からの値σ(σreg)が入力され、その乗算結果MUL1を出力する。
ガロア体乗算器ML2には、カウンタ値C1に基づく消失位置情報の値ErC1とバッファ部Bf2からの値λ(λreg)が入力され、その乗算結果MUL2を出力する。
ガロア体乗算器ML3には、シンドロームSと加算器AD1の演算結果(σiter=MUL1+MUL2)が入力され、その乗算結果MUL3を出力する。
【0033】
カウンタ値C1と、消失フラグの立っているデータの数Eras_numの比較結果がC1≧Eras_numの場合は、図3(b)のようになる。
ガロア体乗算器ML1には、値γとバッファ部Bf1からの値σ(σreg)が入力され、その乗算結果MUL1を出力する。
ガロア体乗算器ML2には、値δとバッファ部Bf2からの値λ(λreg)が入力され、その乗算結果MUL2を出力する。
ガロア体乗算器ML3には、シンドロームSと加算器AD1の演算結果(σiter=MUL1+MUL2)が入力され、その乗算結果MUL3を出力する。
このようにガロア体乗算器切り替え回路が構成される。
【0034】
<シンドローム選択回路>
シンドローム選択回路は、入力されるシンドロームS0、S1、・・・、S2t−1を保持するレジスタrg8と、レジスタrg8の値(S0、S1、・・・、S2t−1)を選択したシンドロームSをガロア体乗算器ML3に供給するセレクタSEL6により構成される。
セレクタSEL6は、カウンタ値C2、C1の値から計算した値をインデックスとして、そのインデックスに対応したシンドロームSを出力する。つまりインデックスとしてiが与えられた場合は、シンドロームS0、S1、・・・、S2t−1のうちでSiを出力する回路である。
【0035】
以下、このような図2の回路で実現できる本例のアルゴリズムを図4〜図6で説明する。
図1で説明したように、図2の回路とされる誤り位置多項式計算部3には、入力としては、シンドロームS0、S1、・・・、S2t−1と消失位置情報Er0、Er1、・・・、Er2t−1が与えられる。
その場合に、誤り位置多項式σ(x)を導出するアルゴリズムが図4〜図6のようになる。
なお上記もしたが、Eras_numは前段の消失位置計算ブロックより与えられる消失の起こった位置の数である。
またtは先の説明にあるように、符号長をN、送信情報語長をKとした場合に、N−K=2t−1で与えられる。
σregはσを保存するパラメータであり、λregはλを保存するパラメータである。σiter、λiterは繰り返し回数の変数iterの値に応じ、それぞれσ0〜σ2t−1、λ0〜λ2t−1から選択される値である。
【0036】
図5のステップF101では初期化が行われる。即ちσ0〜σ2t−1、λ0〜λ2t−1は全て「0」にセットされる。また処理に用いる内部変数L=0とされる。さらにσ0=λ0=γ=1とされ、δ=S0とされる。具体的には図2のバッファ部Bf1,Bf2の各レジスタ、及び値δを保持するレジスタrg5,値γを保持するレジスタrg7の値がこのように初期化される。
【0037】
ステップF102で、カウント値C1に相当する変数jとして、0から消失位置の数Eras_numをセットし、変数jのループ回数、つまりカウント値C1のカウント範囲を規定する。
ステップF103では、繰り返し回数の変数iterにj+1の値をセットし、またレジスタrg6における値δk+1を「0」とする。
またF104で、カウント値C2に相当する変数iとして、0から値iterをセットし、変数iのループ回数、つまりカウント値C2のカウント範囲を規定する。
【0038】
ステップF105では、値σregとして値σ0を設定する。また値λregとして値λ0を設定する。
そしてステップF106で変数kについて0から2t−1をセットし、変数kのループ回数を規定する。
そしてステップF107で、値σkを値σk+1とし、値λkを値λk+1とする。これをステップF108でkのループ終了とされるまで実行する。
つまり、この処理により、バッファ部Bf1,Bf2の各シフトレジスタの値が値kのループ回数だけシフトされるものとなる。
【0039】
ステップF109では、ガロア体乗算器ML1,ML2の乗算と、その乗算結果MUL1、MUL2の加算器AD1での加算が行われて演算結果σiterが得られる。
このときステップF102でのカウント値C1(=jの値)の設定により、C1<Eras_num、つまり図3(a)の切換状態であることで、ガロア体乗算器ML1ではMUL1=1×σreg、ガロア体乗算器ML2ではMUL2=Erj×λregの乗算が行われ、加算器AD1での演算結果σiterは、σiter=1×σreg+Erj×λregとなる。
【0040】
ステップF110では値λiter+1が上記演算結果σiterとされる。つまり値σiterは、バッファ部Bf1に入力されるとともに、セレクタSEL2が値σiterを選択することで、バッファ部Bf2にも値σiterが入力される。
ステップF111では、ガロア体乗算器ML3の乗算及び加算器AD2の加算が行われ、レジスタrg6の値δk+1が更新される。
即ちガロア体乗算器ML3では、上記演算結果σiterと、セレクタSEL6で選択されたシンドロームSj+1−iについて乗算を行って乗算結果MUL3(=σiter×Sj+1−i)を出力し、加算器AD2では、乗算結果MUL3とレジスタrg6の値δk+1を加算する。そしてこの加算結果(δk+1+σiter×Sj+1−i)がレジスタrg6の値δk+1とされる。
【0041】
以上の処理は変数iのループ終了まで行われ、終了したらステップF112からF113に進み、値δが値δk+1に更新される。即ちセレクタSEL3が値δk+1を選択してレジスタrg5の値δを更新する。
変数jのループが終了したら、ステップF114から図5のステップF115に進む。
【0042】
ステップF115では、カウント値C1に相当する変数jとして、消失位置の数Eras_numから2t−1をセットし、変数jのループ処理を規定する。
ステップF116では、繰り返し回数の変数iterにj+1の値をセットし、またレジスタrg6における値δk+1を「0」とする。
またF117で、カウント値C2に相当する変数iとして、0から値iterをセットし、変数iのループ処理を規定する。
【0043】
ステップF118では、値σregとして値σ0を設定する。また値λregとして値λ0を設定する。
そしてステップF119で変数kについて0から2t−1をセットし、変数kのループ処理を規定する。
そしてステップF120で、値σkを値σk+1とし、値λkを値λk+1とする。これをステップF121でkのループ終了とされるまで実行する。
つまり、この処理により、バッファ部Bf1,Bf2の各シフトレジスタの値が値kのループ回数だけシフトされるものとなる。
【0044】
ステップF122では、ガロア体乗算器ML1,ML2の乗算と、その乗算結果MUL1、MUL2の加算器AD1での加算が行われて演算結果σiterが得られる。
このときはステップF115でのカウント値C1(=jの値)の設定により、C1≧Eras_num、つまり図3(b)の切換状態となっているため、ガロア体乗算器ML1ではMUL1=γ×σreg、ガロア体乗算器ML2ではMUL2=δ×λregの乗算が行われ、加算器AD1の演算結果σiterは、σiter=γ×σreg+δ×λregとなる。
【0045】
ステップF123では、δ=0であるか、或いは制御変数Lについて2L>j−Eras_numであるかを判別する。
このいずれかの条件が満たされていれば、ステップF124で値λiter+1が値σregとされる。
この場合、上記演算結果σiterは、バッファ部Bf1に入力される。またセレクタSEL0、SEL2がバッファ部Bf1の値σregを選択することで、バッファ部Bf2に値σregが入力される。
【0046】
一方、ステップF123の条件が満たされていない場合は、ステップF125で値λiter+1が値λregとされる。
この場合、上記演算結果σiterは、バッファ部Bf1に入力される。またセレクタSEL0、SEL2がバッファ部Bf2の値λregを選択することで、バッファ部Bf2に値λregが入力される。
【0047】
ステップF126では、ガロア体乗算器ML3の乗算及び加算器AD2の加算が行われ、レジスタrg6の値δk+1が更新される。
即ちガロア体乗算器ML3では、上記演算結果σiterと、セレクタSEL6で選択されたシンドロームSj+1−iについて乗算を行って乗算結果MUL3(=σiter×Sj+1−i)を出力し、加算器AD2では、乗算結果MUL3とレジスタrg6の値δk+1を加算する。そしてこの加算結果(δk+1+σiter×Sj+1−i)がレジスタrg6の値δk+1とされる。
【0048】
以上の処理は変数iのループ終了まで行われ、終了したらステップF127から図6のステップF128に進む。そして、δ=0であるか、或いは2L>j−Eras_numであるかを判別する。
いずれかの条件が満たされていればステップF130に進む。
条件が満たされていなければ、ステップF129で、変数Lを、j−Eras_num+1−Lの値とし、また値γを値δに更新する。値γについては、セレクタSEL1がレジスタrg5の値δを選択し、レジスタrg7を更新することになる。
【0049】
ステップF130では、値δが値δk+1に更新される。即ちセレクタSEL3が値δk+1を選択してレジスタrg5の値δを更新する。
このステップF116〜F131の処理を変数jのループ終了まで実行し、終了したらステップF132に進む。この時点でバッファ部Bf1としてのシフトレジスタσrg(0)〜σrg(2t−1)に保持されている値として、値σ0〜σ2t−1を出力して処理が終了される。
以上の処理で誤り位置多項式計算部3から誤り位置多項式σ(x)が出力されるものとなる。
【0050】
即ち本実施の形態によれば、、従来、消失訂正をサポートした場合において、シンドロームS0、S1、・・・、S2t−1と消失位置多項式Λ(x)に基づいて誤り位置多項式σ(x)を計算していたところを、シンドロームS0、S1、・・・、S2t−1と消失位置情報Er0、Er1、・・・、Er2t−1に基づいて誤り位置多項式σ(x)を計算するものとなる。
また、演算の途中結果を保持するバッファBf1,Bf2と演算器(ガロア体乗算器ML1,ML2,ML3)の結合の切り替えを、消失した受信語の数(Eras_num)と処理ステップ数(カウント値C1)に基づき制御することによって、消失位置情報からの消失位置多項式の導出と誤り位置多項式の導出について、図2の回路のみで実現できる。
【0051】
このような手法により、Berlekamp−Masseyアルゴリズムの計算回路から少ない変更で消失訂正を行うことのできる復号装置を構成することができる。
またガロア体乗算器の増加を伴わず、回路規模の増大も最小限に抑えることができる。
また、受信符号語における消失数に関わらず、必要最小限かつ固定のステップ数での処理が実現でき、復号遅延を最小限に抑えることができる。
【0052】
本発明の復号装置は、例えば図2の回路構成により例えば図4〜図6のアルゴリズムで誤り位置多項式σ(x)を得る誤り位置多項式計算部3を用いた図1の構成の復号装置である。
また本発明の誤り位置多項式計算方法或いはプログラムは、一例として上記図4〜図6のようなアルゴリズムによる計算方法、或いはその計算方法を実行させるプログラムである。
即ち上記実施の形態は、本発明の復号装置、誤り位置多項式計算方法、及びプログラムに相当するものであるが、本発明はこの実施の形態の例に限定されず、その要旨の範囲内で各種の変形例が考えられる。
【0053】
本発明のプログラムについては、復号装置含む電子機器(例えばディスクドライブ装置、テープ記録再生装置、通信装置その他)内のROM、不揮発性メモリ、又はRAMに一時的あるいは永続的に格納(記録)しておくことができる。また、フレキシブルディスク、CD−ROM(Compact Disc Read Only Memory)、MO(Magnet Optical)ディスク、DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納(記録)しておくこともできる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウェアとして提供することができ、上記ディスクドライブ装置等の電子機器の設計/製造などにも利用できる。
なお、プログラムは、上記のようなリムーバブルな記録媒体からインストールする他、プログラムを記憶しているサーバなどから、LAN(Local Area Network)、インターネットなどのネットワークを介してダウンロードすることもできる。
【0054】
【発明の効果】
以上の説明からわかるように本発明によれば、シンドロームS0、S1、・・・、S2t−1と消失位置情報Er0、Er1、・・・、Er2t−1に基づいて誤り位置多項式σ(x)を計算する。また消失位置情報計算手段においては、消失位置のガロア体表現である消失位置情報Er0、Er1、・・・、Er2t−1は消失フラグe0、e1、・・・、e2t−1から簡単な計算で求められる。また誤り位置多項式計算手段では、演算の途中結果を保持するバッファと演算器の結合の切り替えを、消失した受信語の数と処理ステップ数に基づき制御することによって、消失位置情報からの消失位置多項式の導出と誤り位置多項式の導出を実現できる。
これによって、従来のBerlekamp−Masseyアルゴリズムの計算回路から少ない変更により、消失訂正を行うことのできる復号装置を構成できるという効果がある。またこれは、ガロア体乗算器の増加を伴わず、回路規模の増大も最小限に抑えることができる。
さらに受信符号語における消失数に関わらず、必要最小限かつ固定のステップ数での処理が実現でき、復号遅延を最小限に抑えることができる。
【図面の簡単な説明】
【図1】本発明の実施の形態の復号装置のブロック図である。
【図2】実施の形態の誤り位置多項式計算部の回路図である。
【図3】実施の形態のガロア体乗算器の切換動作の説明図である。
【図4】実施の形態の誤り位置多項式計算処理のフローチャートである。
【図5】実施の形態の誤り位置多項式計算処理のフローチャートである。
【図6】実施の形態の誤り位置多項式計算処理のフローチャートである。
【図7】バーレカンプアルゴリズム実装回路の回路図である。
【図8】消失訂正をサポートした復号装置のブロック図である。
【符号の説明】
1 シンドローム計算部、2 消失位置情報計算部、3 誤り位置多項式計算部、4 誤り数値多項式計算部、5 チェンサーチ部、6 遅延バッファ、7 演算部、ML1,ML2,ML3 ガロア体乗算器
Claims (6)
- 入力データについてシンドローム計算を行うシンドローム計算手段と、
入力された消失フラグから消失位置情報を計算する消失位置情報計算手段と、
上記シンドローム計算手段で得られたシンドロームと、上記消失位置情報計算手段で得られた消失位置情報に基づいて誤り位置多項式を計算する誤り位置多項式計算手段と、
上記誤り位置多項式から誤り数値多項式を計算する誤り数値多項式計算手段と、
上記誤り位置多項式及び誤り数値多項式から誤り数値を算出し、入力データについて訂正処理を行う訂正処理手段と、
を備えたことを特徴とする復号装置。 - 上記誤り位置多項式計算手段は、
処理開始からの処理ステップ数を元に入力を切り替えるセレクタを持つバッファ部と、
処理ステップ数及び消失データ数により上記バッファ部と演算器の結合を切り替えるセレクタとを有し、
消失位置のガロア体表現及びシンドロームから、誤り位置情報を解として持つ誤り位置多項式を求める構成とされたことを特徴とする請求項1に記載の復号装置。 - 入力データから計算されたシンドロームと、入力された消失フラグから計算された消失位置情報とを用いて、誤り位置多項式を計算することを特徴とする誤り位置多項式計算方法。
- 演算の途中結果を保持するバッファと演算器の結合の切り替えを、消失した受信語の数と処理ステップ数に基づいて制御することで、消失位置のガロア体表現及びシンドロームから、誤り位置情報を解として持つ誤り位置多項式を求めることを特徴とする請求項3に記載の誤り位置多項式計算方法。
- 入力データから計算されたシンドロームと、入力された消失フラグから計算された消失位置情報とを用いて、誤り位置多項式を計算する処理を実行させるプログラム。
- 演算の途中結果を保持するバッファと演算器の結合の切り替えを、消失した受信語の数と処理ステップ数に基づいて制御することで、消失位置のガロア体表現及びシンドロームから、誤り位置情報を解として持つ誤り位置多項式を求める処理を実行させる請求項5に記載のプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003050327A JP3843952B2 (ja) | 2003-02-27 | 2003-02-27 | 復号装置、誤り位置多項式計算方法、プログラム |
US10/787,710 US7222287B2 (en) | 2003-02-27 | 2004-02-26 | Decoder, error position polynomial calculation method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003050327A JP3843952B2 (ja) | 2003-02-27 | 2003-02-27 | 復号装置、誤り位置多項式計算方法、プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004260646A true JP2004260646A (ja) | 2004-09-16 |
JP3843952B2 JP3843952B2 (ja) | 2006-11-08 |
Family
ID=33115769
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003050327A Expired - Fee Related JP3843952B2 (ja) | 2003-02-27 | 2003-02-27 | 復号装置、誤り位置多項式計算方法、プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US7222287B2 (ja) |
JP (1) | JP3843952B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007150488A (ja) * | 2005-11-25 | 2007-06-14 | Fujitsu Ltd | 誤り訂正装置、誤り訂正プログラム、及び誤り訂正方法 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100849344B1 (ko) * | 2005-03-07 | 2008-07-29 | 삼성전자주식회사 | 이동통신 시스템에서의 리드-솔로몬 부호 및 복호 방법과그 장치 |
KR20180059151A (ko) | 2016-11-25 | 2018-06-04 | 에스케이하이닉스 주식회사 | 에러 정정 회로 및 이를 포함하는 메모리 컨트롤러 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4868828A (en) * | 1987-10-05 | 1989-09-19 | California Institute Of Technology | Architecture for time or transform domain decoding of reed-solomon codes |
JP3239522B2 (ja) * | 1992-10-30 | 2001-12-17 | ソニー株式会社 | データ消失訂正方法とその回路 |
JP3176171B2 (ja) * | 1993-04-21 | 2001-06-11 | キヤノン株式会社 | 誤り訂正方法及びその装置 |
JP3255386B2 (ja) * | 1993-12-27 | 2002-02-12 | キヤノン株式会社 | 誤り訂正符号の復号器 |
JPH0936755A (ja) * | 1995-07-21 | 1997-02-07 | Canon Inc | 復号装置及びその方法 |
US6119262A (en) * | 1997-08-19 | 2000-09-12 | Chuen-Shen Bernard Shung | Method and apparatus for solving key equation polynomials in decoding error correction codes |
KR100258951B1 (ko) * | 1997-09-25 | 2000-06-15 | 윤종용 | 리드-솔로몬(rs) 복호기와 그 복호방법 |
KR100258952B1 (ko) * | 1997-10-14 | 2000-06-15 | 윤종용 | 새로운 다항식 배열 구조를 채용한 리드-솔로몬(rs) 복호기와그 복호방법 |
KR100265769B1 (ko) * | 1998-05-19 | 2000-09-15 | 윤종용 | 광 디스크 시스템에서의 에러 정정 장치 및 그 에러 정정 방법 |
US6449746B1 (en) * | 1998-08-17 | 2002-09-10 | T. K. Truong | Decoding method for correcting both erasures and errors of reed-solomon codes |
US6704902B1 (en) * | 1998-09-07 | 2004-03-09 | Sony Corporation | Decoding system for error correction code |
US6347389B1 (en) * | 1999-03-23 | 2002-02-12 | Storage Technology Corporation | Pipelined high speed reed-solomon error/erasure decoder |
KR100403634B1 (ko) * | 2001-10-17 | 2003-10-30 | 삼성전자주식회사 | 고속 파이프라인 리드-솔로몬 디코더에 적용하기 위한메모리 장치와 메모리 액세스 방법 및 그 메모리 장치를구비한 리드-솔로몬 디코더 |
US7047481B2 (en) * | 2001-10-26 | 2006-05-16 | Koninklijke Philips Electronics N.V. | Decoding method and decoder for Reed Solomon code |
-
2003
- 2003-02-27 JP JP2003050327A patent/JP3843952B2/ja not_active Expired - Fee Related
-
2004
- 2004-02-26 US US10/787,710 patent/US7222287B2/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007150488A (ja) * | 2005-11-25 | 2007-06-14 | Fujitsu Ltd | 誤り訂正装置、誤り訂正プログラム、及び誤り訂正方法 |
JP4583294B2 (ja) * | 2005-11-25 | 2010-11-17 | 東芝ストレージデバイス株式会社 | 誤り訂正装置、誤り訂正プログラム、及び誤り訂正方法 |
Also Published As
Publication number | Publication date |
---|---|
US7222287B2 (en) | 2007-05-22 |
US20040255226A1 (en) | 2004-12-16 |
JP3843952B2 (ja) | 2006-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5300170B2 (ja) | 順方向のチェンサーチ方式のリードソロモンデコーダ回路 | |
US6374383B1 (en) | Determining error locations using error correction codes | |
US5170399A (en) | Reed-Solomon Euclid algorithm decoder having a process configurable Euclid stack | |
US8650466B2 (en) | Incremental generation of polynomials for decoding reed-solomon codes | |
US6119262A (en) | Method and apparatus for solving key equation polynomials in decoding error correction codes | |
JP2004032737A (ja) | リード−ソロモン復号器 | |
EP1502356B1 (en) | A method of soft-decision decoding of reed-solomon codes | |
JPH11225079A (ja) | 新たな多項式配列構造を採用したリード−ソロモン復号器とその復号方法 | |
US6304994B1 (en) | Reed Solomon decoder and decoding method utilizing a control signal indicating a new root for an initial error locator polynomial with respect to new erasure information | |
JP3843952B2 (ja) | 復号装置、誤り位置多項式計算方法、プログラム | |
US6826723B2 (en) | Multi-rate reed-solomon encoders | |
US20040059989A1 (en) | High throughput reed-solomon encoder | |
KR100747487B1 (ko) | 리드-솔로몬 복호 장치 및 수정된 유클리드 알고리즘연산회로 | |
US7281196B2 (en) | Single error Reed-Solomon decoder | |
US20070011592A1 (en) | Decoder architecture for Reed Solomon codes | |
EP0793352B1 (en) | Apparatus for determining the error evaluator polynomial for use in a Reed-Solomon decoder | |
JPH09305572A (ja) | ガロア体の除算方法および除算装置 | |
JP2000091926A (ja) | 符号化装置および方法、復号装置および方法、並びに提供媒体 | |
EP1159787A1 (en) | A high speed pre-computing circuit and method for finding the error-locator polynomial roots in a reed-solomon decoder | |
JPH0750595A (ja) | 復号化装置 | |
US6023782A (en) | RAM based key equation solver apparatus | |
KR100298833B1 (ko) | 유크리드 알고리즘 연산 회로 | |
JPH1065552A (ja) | 誤り訂正の演算処理方法及び処理回路 | |
Laijin et al. | Design and implementation of RS (255,223) decoder on FPGA | |
Abirsha et al. | An Efficient Carry Skip Adder Based Reduced Complexity RS-Decoder |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060417 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060425 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060626 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060725 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060807 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100825 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110825 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120825 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |