JP2004297757A - リードソロモン符号又は拡大リードソロモン符号の復号方法及び復号器 - Google Patents

リードソロモン符号又は拡大リードソロモン符号の復号方法及び復号器 Download PDF

Info

Publication number
JP2004297757A
JP2004297757A JP2003337960A JP2003337960A JP2004297757A JP 2004297757 A JP2004297757 A JP 2004297757A JP 2003337960 A JP2003337960 A JP 2003337960A JP 2003337960 A JP2003337960 A JP 2003337960A JP 2004297757 A JP2004297757 A JP 2004297757A
Authority
JP
Japan
Prior art keywords
error
data
syndrome
errors
correction
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
Application number
JP2003337960A
Other languages
English (en)
Other versions
JP4346396B2 (ja
Inventor
Hiroyuki Senda
浩之 千田
Toshihiko Fukuoka
俊彦 福岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2003337960A priority Critical patent/JP4346396B2/ja
Publication of JP2004297757A publication Critical patent/JP2004297757A/ja
Application granted granted Critical
Publication of JP4346396B2 publication Critical patent/JP4346396B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic 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)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)

Abstract

【課題】 拡大リードソロモン符号を復号する際、非拡大成分及び拡大成分に対して誤訂正する場合があり、また誤りの個数の推定が間違ったとき、複数回のユークリッドアルゴリズム演算処理及び複数回のチェンサーチ処理を行う場合があった。
【解決手段】 入力データシンドロームSIから誤りの個数推定部60にて推定した誤りの個数EN1と、復号過程で誤りの個数算出部70にて算出した誤りの個数EN2とを比較し、この比較結果と入力データシンドロームSIとに基づいて誤り訂正部40にて誤り訂正処理を施した後、誤り訂正されたデータC1に対してシンドローム計算部10にて再度シンドローム計算を行って訂正データシンドロームを求め、誤訂正を行った場合又は推定した誤りの個数EN1と算出した誤りの個数EN2とが異なる場合には入力データDIを第2の訂正データC2として出力する。
【選択図】 図4

Description

本発明は、リードソロモン(Reed-Solomon)符号又は拡大リードソロモン符号の多重誤り訂正を行う復号技術に関するものである。
デジタル放送、デジタル磁気記録等において、リードソロモン符号が使用されており、例えば米国デジタルケーブルテレビシステムにおいては拡大リードソロモン符号が採用されている。
第1の従来技術では、拡大リードソロモン符号を復号する際、受信語である入力データに誤り訂正処理を施した後、誤り訂正されたデータに対して、シンドローム計算を再度行って訂正データシンドロームを求め、誤訂正を行った場合には誤り訂正前の入力データを出力する(特許文献1参照)。
第2の従来技術では、拡大リードソロモン符号を復号する際、受信語からシンドロームを生成し、このシンドロームから受信語中に生じた誤りの個数を推定し、推定した誤りの個数に応じて、ユークリッドアルゴリズム演算操作の初期値及び終了条件を変更して誤り訂正を行う(特許文献2参照)。
特開2001−274694号公報 特開平11−3573号公報
上記第1の従来技術では、拡大成分のみならず非拡大成分に対しても誤訂正する場合があった。
また、上記第2の従来技術では、誤りの個数の推定が間違ったとき、複数回のユークリッドアルゴリズムの演算処理及び複数回のチェンサーチ処理を行う場合があり、更に誤訂正する場合があった。
本発明の目的は、リードソロモン符号又は拡大リードソロモン符号を復号する際に生じる誤訂正を防止することにある。
上記目的を達成するため、本発明は、ある誤り訂正数のリードソロモン符号又は拡大リードソロモン符号からなる受信語を入力データとして復号する方法において、入力データ並びに前記誤り訂正数のシンドロームに基づいて導出した誤り位置多項式及び誤り評価多項式を用いて入力データに対して誤り訂正処理を行って当該処理の結果を第1の訂正データとし、当該第1の訂正データのシンドロームの拡大成分及び拡大成分でない成分を算出し、当該算出したシンドロームに基づいて第1の訂正データに対して誤り訂正処理を行い、当該処理の結果を第2の訂正データとすることとしたものである。
更に、入力データのシンドロームに基づいて当該入力データ中に発生した誤りの個数を推定するとともに、入力データのシンドローム並びに前記誤り訂正数に基づいて導出した誤り位置多項式及び誤り評価多項式を用いて誤りの個数を算出し、推定した誤りの個数と算出した誤りの個数とを用いて前記第1の訂正データを求めることとする。
本発明によれば、入力データシンドロームから推定した誤りの個数と復号過程で算出した誤りの個数とを比較し、この比較結果と入力データシンドロームとに基づいて誤り訂正処理を施した後、誤り訂正されたデータに対して再度シンドローム計算を行って訂正データシンドロームを求め、誤訂正を行った場合又は推定した誤りの個数と算出した誤りの個数とが異なる場合には入力データを最終の訂正データとして出力することとしたので、拡大成分でない成分及び拡大成分に対して誤訂正を防止でき、複数回のユークリッドアルゴリズム演算処理及び複数回のチェンサーチ処理を行わずに済む。これにより、小面積、ローパワー、かつ高信頼性の復号器アーキテクチャを提供することができる。更に、拡大リードソロモン符号だけでなく、通常のリードソロモン符号に対しても誤訂正を防止できる。
以下、本発明の実施の形態について、図面を参照しながら説明する。
ここで扱う拡大リードソロモン符号は、ガロア体GF(27)上において、
原始多項式P(x) = x7+x3+1
生成多項式G(x) = (x+α)(x+α2)(x+α3)(x+α4)(x+α5
を用いた、
符号長n=128
誤り訂正数t=3
1シンボルのビット数m=7
情報シンボル数i0=122
パリティシンボル数p0=6
拡大前の符号多項式W0(x) = c126126+c125125+・・・+c1x+c0
拡大パリティシンボルc-=W0(α6
=c126(α6126+c125(α6125+・・・+c1α6+c0
拡大後の符号多項式W(x)=xW0(x)+c-
=c126127+c125126+・・・+c12+c0x+c-
の1次拡大リードソロモン符号である。なお、拡大前の符号、つまり拡大成分でない符号(c126,c125,・・・,c1,c0)を非拡大成分と呼ぶことにする。また、拡大パリティシンボルc-を拡大成分と呼ぶことにする。
図1及び図2は、本発明の拡大リードソロモン符号の復号方法を説明するフローチャートである。ここで、受信語である入力データDIに、入力データDI中の位置juのシンボルに大きさeuの誤りが生じているものとする。ただし、
非拡大成分のみの受信多項式Y0(x)=y126126+y125125+・・・+y1x+y0
非拡大成分及び拡大成分の受信多項式Y(x)=y126127+y125126+・・・+y12+y0x+y-
とする。このような入力データDI中の誤りシンボルの位置juを誤りの位置という。
まず、図1中のステップS10は、第1のシンドローム算出ステップである。このステップS10ではシンドローム算出を行うように、以下のステップS11及びステップS12を行う。
ステップS11では、
入力データDI=(y126,y125,・・・,y1,y0,y-
のシンドロームを入力データシンドロームSIとして算出する。すなわち、ステップS11Aにて、非拡大成分の入力データシンドローム
SIi=Y0(αi
=y126(αi126+y125(αi125+・・・+y1αi+y0
(i=1,2,3,4,5)
を算出し、ステップS11Bにて、拡大成分の入力データシンドローム
SI6=Y0(α6)+y-
=y126(α6126+y125(α6125+・・・+y1α6+y0+y-
を算出する。
ステップS12では、入力データシンドロームSIの成分が全て零であるか否かを判断し、入力データシンドロームSIの成分が全て零である場合には入力データDIに誤りがないと判定し、ステップS50内のステップS52の処理に移る。入力データシンドロームSIの成分のいずれかが零でない場合には入力データDIに誤りがあると判定し、ステップS20の処理に移る。
ステップS20では、ユークリッドアルゴリズム演算によって、入力データシンドロームSIから誤り位置多項式σ(z)及び誤り評価多項式ω(z)の各次数の係数を求める。ユークリッドアルゴリズム演算終了時に、誤り位置多項式σ(z)の次数が誤り評価多項式ω(z)の次数以下である場合でも、これらの多項式の係数を出力する。
ステップS30では、チェンサーチを行って、誤り位置多項式σ(z)の根α-juを求める。すなわち、誤り位置多項式σ(z)にガロア体GF(27)の元を順次代入し、誤り位置多項式σ(z)の値が零となる元をこの誤り位置多項式σ(z)の根α-juとして求める。この際、誤り位置多項式σ(z)がガロア体GF(27)に持つ互いに異なる根の数が当該誤り位置多項式σ(z)の次数未満である場合でも、誤り訂正が可能か否かを判断せず、根α-juを出力する。誤り位置多項式σ(z)の根α-juのそれぞれには、誤りの位置juが対応している。更に、誤り評価多項式ω(z)に誤り位置多項式σ(z)の根α-juのそれぞれを代入して誤りの評価値ω(α-ju)を求めるとともに、誤り位置多項式σ(z)の導関数に誤り位置多項式σ(z)の根α-juのそれぞれを代入して誤り位置多項式の微分値σ'(α-ju)を求める。
ステップS40では、誤りの評価値ω(α-ju)を、対応する誤り位置多項式の微分値σ'(α-ju)で除算して、誤りの位置juのそれぞれのシンボル中の誤りビットを示す誤りの大きさeuを求める。
ステップS50では、第1の誤り訂正を行う。具体的には、以下のステップS51、ステップS52、ステップS53、及びステップS54を行う。
ステップS51では誤り訂正処理を行うように、非拡大成分及び拡大成分に対してはステップS51Aを行い、拡大成分に対してはステップS51Bを行う。
ステップS51Aでは、誤り位置多項式σ(z)の根α-juのそれぞれに対応した誤りの位置juと、誤りの大きさeuとに基づいて、入力データDIに対して誤り訂正処理を行い、誤り訂正処理データとし、
非拡大成分のみの誤り訂正処理データの多項式F0(x)=f126126+f125125+・・・+f1x+f0
非拡大成分及び拡大成分の誤り訂正処理データの多項式F(x)=xF0(x)+f-=f126127+f125126+・・・+f12+f0x+f-
(f-は拡大成分(暫定値))
とする。すなわち、入力データDIの誤りの位置juのシンボルから、それに対応した誤りの大きさeuを減算する。ガロア体GF(2)の拡大体上での演算であるので、誤りの大きさeuを減算する代わりに加算してもよい。
ステップS51Bでは、拡大成分に対して更に、非拡大成分のみの誤り訂正処理データの多項式F0(x)にx=α6を代入したものに誤り訂正処理データの拡大成分f-(暫定値)を加算する。つまり、
0(α6)+f-=f126(α6126+f125(α6125+・・・+f1α6+f0+f-
を計算する。F0(α6)+f-が零である場合には誤り訂正処理データの拡大成分f-(暫定値)に誤りがないと考えられるので、誤り訂正処理データの拡大成分f-(暫定値)をそのまま拡大成分の誤り訂正処理データとし、拡大成分の誤りの個数NB=0とする。F0(α6)+f-が零でない場合には誤り訂正処理データの拡大成分f-(暫定値)に誤りがあると判断し、誤り訂正処理データの拡大成分f-(暫定値)の誤りの大きさe-はF0(α6)+f-となる。そこで、誤り訂正処理データの拡大成分f-(暫定値)に対して誤り訂正処理を行い、つまり、誤り訂正処理データの拡大成分f-(暫定値)に誤りの大きさe-=F0(α6)+f-を加算し、
-+e-=f-+F0(α6)+f-=F0(α6)+2f-=F0(α6
を拡大成分の誤り訂正処理データとし、拡大成分の誤りの個数NB=1とする。
一方、ステップS60では、ステップS10内のステップS11にて計算された入力データシンドロームSIから入力データDI中に発生した誤りの個数EN1を推定する(詳細は後で説明する)。
ステップS80では、ステップS30にて算出された誤り位置多項式σ(z)の根α-juから求めた誤りの個数NAと、ステップS51内のステップS51Bからの拡大成分の誤りの個数NBとを加算する。つまり、
誤りの個数EN2=NA+NB
を算出する。ただし、拡大成分の誤りの個数を重複して加算することはない。
ステップS50内のステップS53では、ステップS60にて推定した誤りの個数EN1とステップS80にて算出した誤りの個数EN2とが等しく、かつ、ステップS60にて推定した誤りの個数EN1とステップS80にて算出した誤りの個数EN2とがともに3(誤り訂正数t)以下か否か、つまり、「EN1=EN2≦3」か否かを判断し、「EN1=EN2≦3」の場合にはステップS54の処理に移り、そうでない場合(「EN1≠EN2又はEN1>3又はEN2>3」の場合)にはステップS52に移る。
ステップS54では、入力データシンドロームSIの成分のいずれかが零でなく、かつ、「EN1=EN2≦3」の場合であり、誤り訂正処理データを第1の訂正データC1とする。
ステップS52では、入力データシンドロームSIの成分が全て零であるか、又は、「EN1≠EN2又はEN1>3又はEN2>3」の場合であり、入力データDIをそのまま第1の訂正データC1とする。
図2中のステップS90では第1の訂正データC1のシンドローム算出を行うように、以下のステップS91及びステップS92を行う。
ステップS91では、
非拡大成分のみの第1の訂正データC1の多項式D0(x)=d126126+d125125+・・・+d1x+d0
非拡大成分及び拡大成分の第1の訂正データC1の多項式D(x)=d126127+d125126+・・・+d12+d0x+d-
とし、
第1の訂正データC1=(d126,d125,・・・,d1,d0,d-
のシンドロームを訂正データシンドロームSCとして算出する。すなわち、ステップS91Aにて、非拡大成分の訂正データシンドローム
SCi=D0(αi
=d126(αi126+d125(αi125+・・・+d1αi+d0
(i=1,2,3,4,5)
を算出し、ステップS91Bにて、拡大成分の訂正データシンドローム
SC6=D0(α6)+d-
=d126(α6126+d125(α6125+・・・+d1α6+d0+d-
を算出する。
ステップS92では、『訂正データシンドロームSCの成分が全て零であるか、又は、「EN1≠EN2又はEN1>3又はEN2>3」である』という判定条件の真偽を判断し、当該判定条件が真である場合には第1の訂正データC1に誤りがないと判定し、ステップS100内のステップS101の処理に移る。そうでない場合(訂正データシンドロームSCの成分のいずれかが零でなく、かつ、「EN1=EN2≦3」である場合)には第1の訂正データC1に誤りがあると判定し、ステップS100内のステップS102の処理に移る。
ステップS100は、第2の誤り訂正ステップである。具体的には、ステップS101及びステップS102を行う。
ステップS101では、第1の訂正データC1に誤りがないと考えられるので、第1の訂正データC1をそのまま、第2の訂正データC2として出力する。
ステップS102では、第1の訂正データC1に誤りがあると考えられるので、誤り位置多項式σ(z)の根α-juのそれぞれに対応した誤りの位置ju及び誤りの大きさeuと、拡大成分に対する誤りの大きさe-とに基づいて、第1の訂正データC1を入力データDIに復元する処理を行う。すなわち、第1の訂正データC1の誤りの位置juのシンボルに対してはそれに対応した誤りの大きさeuを加算又は減算し、第1の訂正データC1の拡大成分のシンボルに対しては更に誤りの大きさe-を加算又は減算する(つまり、第1の訂正データC1の拡大成分のシンボルに対しては誤りの大きさeu及び誤りの大きさe-を加算又は減算する)。復元して得られた入力データDIを第2の訂正データC2として出力する。
図3は、図1中の誤りの個数推定ステップS60の詳細フローチャートである。以下、図3を参照しながら誤りの個数の推定方法を説明する。
ステップS61では、第1のシンドローム算出ステップS10内の入力データシンドローム算出ステップS11にて計算された入力データシンドロームSIの成分が全て零か否かを判断し、入力データシンドロームSIの成分が全て零である場合にはステップS62の処理に移り、入力データシンドロームSIの成分のいずれかが零でない場合にはステップS63の処理に移る。
ステップS62では、入力データシンドロームSIの成分が全て零である場合であり、誤りの個数が0個と推定する。
ステップS63では、入力データシンドロームSIの成分のいずれかが零でない場合であり、
第1の誤り個数推定式N1=S2 2+S13
第2の誤り個数推定式N2=S3 2+S15
第3の誤り個数推定式N3=S4 2+S35
第4の誤り個数推定式N4=S51+S32+S13
を計算する。
ステップS64では、第1、第2及び第3の誤り個数推定式(N1及びN2及びN3)の値が全て零か否かを判断する。N1及びN2及びN3の値が全て零である場合にはステップS65の処理に移り、N1又はN2又はN3の値のいずれかが零でない場合にはステップS68の処理に移る。
ステップS65では、ステップS64においてN1及びN2及びN3の値が全て零である場合であり、ステップS11にて計算された入力データシンドロームの拡大成分SI6が零か否かを判断する。SI6が零である場合にはステップS66の処理に移り、SI6が零でない場合にはステップS67の処理に移る。
ステップS66では、ステップS65においてSI6が零である場合であり、誤りの個数が1個と推定する。
ステップS67では、ステップS65においてSI6が零でない場合であり、誤りの個数が2個と推定する。
ステップS68では、ステップS64においてN1又はN2又はN3の値のいずれかが零でない場合であり、第4の誤り個数推定式N4の値が零か否かを判断する。N4の値が零である場合にはステップS69の処理に移り、N4の値が零でない場合にはステップS72の処理に移る。
ステップS69では、ステップS68においてN4の値が零である場合であり、入力データシンドロームの拡大成分SI6が零か否かを判断する。SI6が零である場合にはステップS70の処理に移り、SI6が零でない場合にはステップS71の処理に移る。
ステップS70では、ステップS69においてSI6が零である場合であり、誤りの個数が2個と推定する。
ステップS71では、ステップS69においてSI6が零でない場合であり、誤りの個数が3個と推定する。
ステップS72では、ステップS68においてN4の値が零でない場合であり、SI6が零か否かを判断する。SI6が零である場合にはステップS73の処理に移り、SI6が零でない場合にはステップS74の処理に移る。
ステップS73では、ステップS72においてSI6が零である場合であり、誤りの個数が3個と推定する。
ステップS74では、ステップS72においてSI6が零でない場合であり、誤りの個数が4個と推定する。
以上のように、本復号方法によれば、入力データシンドロームSIから推定した誤りの個数EN1と復号過程で算出した誤りの個数EN2とを比較し、この比較結果と入力データシンドロームSIとに基づいて誤り訂正処理を施した後、誤り訂正されたデータC1に対して再度シンドローム計算を行って訂正データシンドロームSCを求め、誤訂正を行った場合又は推定した誤りの個数EN1と算出した誤りの個数EN2とが異なる場合には入力データDIを第2の訂正データC2として出力するため、非拡大成分及び拡大成分に対して誤訂正を防止でき、更に複数回のユークリッドアルゴリズム演算処理及び複数回のチェンサーチ処理を行わずに済む。
なお、図1ではステップS51Bにおいて拡大成分の誤りの個数NBを求めたが、同図中に一点鎖線で示すように、ステップS40にて、入力データDI及び誤り位置多項式σ(z)の根α-juのそれぞれに対応した誤りの位置juと、誤りの大きさeuとに基づいて、F0(α6)+f-を計算し、F0(α6)+f-が零か否かに応じて、拡大成分の誤りの個数NBを求め、その結果をステップS80の処理に反映させることとしてもよい。
また、図1中のステップS52から図2中のステップS100の中へ延びる一点鎖線で示すように、入力データシンドロームSIの成分が全て零であるか、又は、「EN1≠EN2又はEN1>3又はEN2>3」である場合には、入力データDIをそのまま第2の訂正データC2としてもよい。
また、図1中のステップS80にて根α-juから誤りの個数NAを求めたが、ステップS30にて誤りの個数NAを求めてもよい。図3中のステップS61の代わりに図1中のステップS12の判定結果を用いて、図3中のステップS62及びステップS63の処理をすることも可能である。
また、図1中のステップS60、ステップS80及びステップS53の処理を省略することで、誤りの個数を推定したり、誤りの個数を算出したりせずに、訂正データシンドロームSCを算出することのみを行い、その結果を誤訂正防止のために使用してもよい。
次に、上記本発明の復号方法を実現するための装置構成を説明する。
図4は、本発明に係る拡大リードソロモン符号の復号器の構成例を示すブロック図である。図4において、10はシンドローム計算部、20は評価多項式及び位置多項式導出部、30はチェンサーチ部、40は誤り訂正部、50はデータ記憶部、60は誤りの個数推定部、70は誤りの個数算出部である。
シンドローム計算部10及びデータ記憶部50には、入力データDIが入力される。データ記憶部50は、入力データDIを記憶して当該入力データDIと同じデータXDIを誤り訂正部40に出力する。
シンドローム計算部10は、
入力データDI=(y126,y125,・・・,y1,y0,y-
のシンドロームを入力データシンドロームSIとして算出する。すなわち、非拡大成分の入力データシンドローム
SIi=Y0(αi
=y126(αi126+y125(αi125+・・・+y1αi+y0
(i=1,2,3,4,5)
を算出し、拡大成分の入力データシンドローム
SI6=Y0(α6)+y-
=y126(α6126+y125(α6125+・・・+y1α6+y0+y-
を算出する。更に、入力データシンドロームSIの成分が全て零であるか否かを検出する。入力データシンドロームSIの成分が全て零である場合には入力データDIに誤りがないと判定し、第1のフラグ信号F1をアクティブにして誤り訂正部40に出力する。入力データシンドロームSIの成分のいずれかが零でない場合には入力データDIに誤りがあると判定し、第1のフラグ信号F1を非アクティブにして誤り訂正部40に出力する。いずれの場合も、入力データシンドロームSIを評価多項式及び位置多項式導出部20並びに誤りの個数推定部60に出力する。ただし、評価多項式及び位置多項式導出部20に出力する入力データシンドロームをXSIと表記して、誤りの個数推定部60に出力する入力データシンドロームSIと区別することとする。
誤りの個数推定部60では、シンドローム計算部10にて計算された入力データシンドロームSIから入力データDI中に発生した誤りの個数EN1を推定する。
評価多項式及び位置多項式導出部20は、ユークリッドアルゴリズム演算によって、入力データシンドロームXSIから誤り位置多項式σ(z)及び誤り評価多項式ω(z)の各次数の係数を求め、これらの多項式の係数をチェンサーチ部30に出力する。また、評価多項式及び位置多項式導出部20は、データ保持器及びガロア演算器を備えており、データ保持器は、入力データシンドロームXSI及びユークリッドアルゴリズム演算の中間結果を保持し、最終的に誤り位置多項式σ(z)及び誤り評価多項式ω(z)の各次数の係数を出力する。ガロア演算器は、データ保持器の出力からユークリッドアルゴリズム演算を行って中間結果を求め、データ保持器に出力する。なお、ユークリッドアルゴリズム演算終了時に、誤り位置多項式σ(z)の次数が誤り評価多項式ω(z)の次数以下である場合でも、これらの多項式の係数を出力する。
チェンサーチ部30は、チェンサーチを行って、誤り位置多項式σ(z)の根α-juを求める。すなわち、誤り位置多項式σ(z)にガロア体GF(27)の元を順次代入し、誤り位置多項式σ(z)の値が零となる元をこの誤り位置多項式σ(z)の根α-juとして求め、誤り訂正部40及び誤りの個数算出部70に出力する。この際、誤り位置多項式σ(z)がガロア体GF(27)に持つ互いに異なる根の数が当該誤り位置多項式σ(z)の次数未満である場合でも、誤り訂正が可能か否かを判断せず、根α-juを誤り訂正部40及び誤りの個数算出部70に出力する。誤り位置多項式σ(z)の根α-juのそれぞれには、誤りの位置juが対応している。更に、誤り評価多項式ω(z)に誤り位置多項式σ(z)の根α-juのそれぞれを代入して、誤りの評価値ω(α-ju)を求めるとともに、誤り位置多項式σ(z)の導関数に誤り位置多項式σ(z)の根α-juのそれぞれを代入して、誤り位置多項式の微分値σ'(α-ju)を求め、誤りの評価値ω(α-ju)と誤り位置多項式の微分値σ'(α-ju)とを評価多項式及び位置多項式導出部20に出力する。また、評価多項式及び位置多項式導出部20におけるガロア演算器は、誤りの評価値ω(α-ju)を、対応する誤り位置多項式の微分値σ'(α-ju)で除算して、誤りの位置juのそれぞれのシンボル中の誤りビットを示す誤りの大きさeuを求め、これを誤り訂正部40に出力する。
誤りの個数算出部70では、チェンサーチ部30にて算出された誤り位置多項式σ(z)の根α-juから求めた誤りの個数NAと、誤り訂正部40からの拡大成分の誤りの個数NBとを加算する。つまり、
誤りの個数EN2=NA+NB
を算出し、当該算出した誤りの個数EN2を誤り訂正部40へ供給する。ただし、拡大成分の誤りの個数を重複して加算することはない。
誤り訂正部40は、チェンサーチ部30が出力する誤り位置多項式σ(z)の根α-juのそれぞれに対応した誤りの位置juと、評価多項式及び位置多項式導出部20が出力する誤りの大きさeuとに基づいて、データ記憶部50が出力する入力データXDIに対して誤り訂正処理を行い、誤り訂正処理データとし、
非拡大成分のみの誤り訂正処理データの多項式F0(x)=f126126+f125125+・・・+f1x+f0
非拡大成分及び拡大成分の誤り訂正処理データの多項式F(x)=xF0(x)+f-=f126127+f125126+・・・+f12+f0x+f-
(f-は拡大成分(暫定値))
とする。すなわち、入力データXDIの誤りの位置juのシンボルから、それに対応した誤りの大きさeuを減算する。ガロア体GF(2)の拡大体上での演算であるので、誤りの大きさeuを減算する代わりに加算してもよい。拡大成分に対しては、更に非拡大成分のみの誤り訂正処理データの多項式F0(x)にx=α6を代入したものに誤り訂正処理データの拡大成分f-(暫定値)を加算し、つまり、
0(α6)+f-=f126(α6126+f125(α6125+・・・+f1α6+f0+f-
を計算し、F0(α6)+f-が零である場合には誤り訂正処理データの拡大成分f-(暫定値)に誤りがないと考えられるので、誤り訂正処理データの拡大成分f-(暫定値)をそのまま拡大成分の誤り訂正処理データとし、拡大成分の誤りの個数NB=0とする。F0(α6)+f-が零でない場合には誤り訂正処理データの拡大成分f-(暫定値)に誤りがあると判断し、誤り訂正処理データの拡大成分f-の誤りの大きさe-はF0(α6)+f-となる。そこで、誤り訂正処理データの拡大成分f-(暫定値)に対して誤り訂正処理を行い、つまり、誤り訂正処理データの拡大成分f-(暫定値)に誤りの大きさe-=F0(α6)+f-を加算し、
-+e-=f-+F0(α6)+f-=F0(α6)+2f-=F0(α6
を拡大成分の誤り訂正処理データとし、拡大成分の誤りの個数NB=1とする。そして、誤りの個数推定部60にて推定した誤りの個数EN1と誤りの個数算出部70にて算出した誤りの個数EN2とが等しく、かつ、誤りの個数推定部60にて推定した誤りの個数EN1と誤りの個数算出部70にて算出した誤りの個数EN2とがともに3(誤り訂正数t)以下か否か、つまり、「EN1=EN2≦3」か否かを検出し、「EN1=EN2≦3」の場合には、後述する第3のフラグ信号F3をアクティブにする。更に、「EN1=EN2≦3」(第3のフラグ信号F3がアクティブ)であり、かつ、入力データシンドロームSIの成分のいずれかが零でない(第1のフラグ信号F1が非アクティブであり、誤り訂正の必要がある)場合には、誤り訂正処理データを第1の訂正データC1としてシンドローム計算部10及びデータ記憶部50に出力する。そうでない場合、つまり「EN1≠EN2又はEN1>3又はEN2>3」(第3のフラグ信号F3が非アクティブ)であるか、又は、入力データシンドロームSIの成分が全て零である(第1のフラグ信号F1がアクティブであり、誤り訂正の必要がない)場合には、データ記憶部50が出力する入力データXDIをそのまま、第1の訂正データC1としてシンドローム計算部10及びデータ記憶部50に出力する。
データ記憶部50は、第1の訂正データC1を記憶し、これと同じ訂正データXC1を誤り訂正部40へ返す。
シンドローム計算部10は、
非拡大成分のみの第1の訂正データC1の多項式D0(x)=d126126+d125125+・・・+d1x+d0
とし、かつ、
第1の訂正データC1の多項式D(x)=d126127+d125126+・・・+d12+d0x+d-
として、
第1の訂正データC1=(d126,d125,・・・,d1,d0,d-
のシンドロームを訂正データシンドロームSCとして算出する。すなわち、非拡大成分の訂正データシンドローム
SCi=D0(αi
=d126(αi126+d125(αi125+・・・+d1αi+d0
(i=1,2,3,4,5)
を算出し、拡大成分の訂正データシンドローム
SC6=D0(α6)+d-
=d126(α6126+d125(α6125+・・・+d1α6+d0+d-
を算出する。更に、『訂正データシンドロームSCの成分が全て零であるか、又は、「EN1≠EN2又はEN1>3又はEN2>3」(第3のフラグ信号F3が非アクティブ)である』という判定条件の真偽を判断し、当該判定条件が真である場合には第1の訂正データC1に誤りがないと判定して、第2のフラグ信号F2をアクティブにして誤り訂正部40に出力する。そうでない場合、つまり訂正データシンドロームSCの成分のいずれかが零でなく、かつ、「EN1=EN2≦3」(第3のフラグ信号F3がアクティブ)である場合には第1の訂正データC1に誤りがあると判定し、第2のフラグ信号F2を非アクティブにして誤り訂正部40に出力する。
誤り訂正部40は、第2のフラグ信号F2がアクティブの場合には第1の訂正データC1に誤りがないと考えられるので、データ記憶部50が出力する第1の訂正データXC1をそのまま、第2の訂正データC2として出力する。しかし、第2のフラグ信号F2が非アクティブの場合には第1の訂正データC1に誤りがあると考えられるので、チェンサーチ部30が出力する誤り位置多項式σ(z)の根α-juのそれぞれに対応した誤りの位置juと、評価多項式及び位置多項式導出部20が出力する誤りの大きさeuと、拡大成分に対する誤りの大きさe-とに基づいて、データ記憶部50が出力する第1の訂正データXC1を入力データDIに復元する処理を行う。すなわち、第1の訂正データXC1の誤りの位置juのシンボルに対してはそれに対応した誤りの大きさeuを加算又は減算し、第1の訂正データXC1の拡大成分のシンボルに対しては更に誤りの大きさe-を加算又は減算する(つまり、第1の訂正データXC1の拡大成分のシンボルに対しては誤りの大きさeu及び誤りの大きさe-を加算又は減算する)。復元して得られた入力データDIを第2の訂正データC2として出力する。
図5は、図4中のシンドローム計算部10の要部を示すブロック図である。図5において、11はセレクタ、12はシンドローム演算器、13は入力データシンドローム保持器、14は訂正データシンドローム保持器、15は第1のシンドローム零検出器、16は第2のシンドローム零検出器である。
セレクタ11は、モード信号MODに従って入力データDI又は第1の訂正データC1を選択してシンドローム演算器12に出力する。
シンドローム演算器12は、モード信号MODに従ってセレクタ11と同期して動作し、入力データシンドロームSIを求める計算と、訂正データシンドロームSCを求める計算とを行い、入力データシンドロームSIを求めた計算結果を入力データシンドローム保持器13及び誤りの個数推定部60に出力し、訂正データシンドロームSCを求めた計算結果を訂正データシンドローム保持器14に出力する。回路規模の縮小のためには、非拡大成分シンドロームの処理と拡大成分シンドロームの処理とを同じ処理器にて行うようにシンドローム演算器12を構成するのがよい。
入力データシンドローム保持器13は、シンドローム演算器12の出力のうち、入力データシンドロームSIのみをモード信号MODに従って取り込んで保持した後、これを入力データシンドロームXSIとして第1のシンドローム零検出器15に出力する。
第1のシンドローム零検出器15は、入力データシンドロームXSIの成分が全て零である場合には入力データDIに誤りがないと判定して、第1のフラグ信号F1をアクティブにし、入力データシンドロームXSIの成分のいずれかが零でない場合には入力データDIに誤りがあると判定して、第1のフラグ信号F1を非アクティブにし、当該第1のフラグ信号F1を誤り訂正部40へ出力する。
また、入力データシンドローム保持器13は、第1のシンドローム零検出器15が第1のフラグ信号F1を出力するタイミングに同期して、入力データシンドロームXSIを評価多項式及び位置多項式導出部20に出力する。
同様に、訂正データシンドローム保持器14は、シンドローム演算器12の出力のうち、訂正データシンドロームSCのみをモード信号MODに従って取り込んで保持した後、当該訂正データシンドロームSCを第2のシンドローム零検出器16に出力する。
第2のシンドローム零検出器16は、訂正データシンドロームSCの成分が全て零である場合には第1の訂正データC1に誤りがないと判定して、第2のフラグ信号F2をアクティブにし、訂正データシンドロームSCの成分のいずれかが零でない場合には第1の訂正データC1に誤りがあると判定して、第2のフラグ信号F2を非アクティブにし、当該第2のフラグ信号F2を誤り訂正部40へ出力する。
図6は、図4中の誤り訂正部40の要部を示すブロック図である。図6において、41は第1の誤り訂正器、42は誤りの位置データ保持器、43は誤りの大きさデータ保持器、44は第2の誤り訂正器、45は比較器である。
比較器45は、誤りの個数推定部60にて推定した誤りの個数EN1と誤りの個数算出部70にて算出した誤りの個数EN2とを比較し、更にこれら誤りの個数EN1及びEN2と3(誤り訂正数t)とを比較して、「EN1=EN2≦3」の場合には第3のフラグ信号F3をアクティブにし、そうでない場合(「EN1≠EN2又はEN1>3又はEN2>3」の場合)には第3のフラグ信号F3を非アクティブにして、当該第3のフラグ信号F3を第1の誤り訂正器41及び第2の誤り訂正器44に出力する。
第1の誤り訂正器41は、第1のフラグ信号F1がアクティブ(入力データDIを誤り訂正する必要がない)であるか、又は、第3のフラグ信号F3が非アクティブ(「EN1≠EN2又はEN1>3又はEN2>3」)である場合には、入力データDIをそのまま第1の訂正データC1として出力し、拡大成分の誤りの個数NB=0とする。また、第1のフラグ信号F1が非アクティブ(入力データDIは誤りを含み、誤り訂正の必要がある)であり、かつ、第3のフラグ信号F3がアクティブ(「EN1=EN2≦3」)である場合には、入力データXDIにおいて、根α-juに対応した誤りの位置juのそれぞれが示すシンボルに対し、その誤りの位置juに対する誤りの大きさeuを減算又は加算する誤り訂正を行い、訂正処理後のデータを誤り訂正処理データとする。拡大成分に対しては、更に非拡大成分のみの誤り訂正処理データの多項式F0(x)にx=α6を代入したものに誤り訂正処理データの拡大成分f-(暫定値)を加算し、つまり、
0(α6)+f-=f126(α6126+f125(α6125+・・・+f1α6+f0+f-
を計算し、F0(α6)+f-が零である場合には誤り訂正処理データの拡大成分f-(暫定値)に誤りがないと考えられるので、誤り訂正処理データの拡大成分f-(暫定値)をそのまま拡大成分の誤り訂正処理データとし、拡大成分の誤りの個数NB=0とする。F0(α6)+f-が零でない場合には誤り訂正処理データの拡大成分f-(暫定値)に誤りがあると判断し、誤り訂正処理データの拡大成分f-(暫定値)の誤りの大きさe-はF0(α6)+f-となる。そこで、誤り訂正処理データの拡大成分f-(暫定値)に対して誤り訂正処理を行い、つまり、誤り訂正処理データの拡大成分f-(暫定値)に誤りの大きさe-=F0(α6)+f-を加算し、
-+e-=f-+F0(α6)+f-=F0(α6)+2f-=F0(α6
を拡大成分の誤り訂正処理データとし、拡大成分の誤りの個数NB=1とする。そして、誤り訂正処理データを第1の訂正データC1として出力する。上記のようして求めた第1の訂正データC1は、シンドローム計算部10及びデータ記憶部50に出力される。
誤りの位置データ保持器42は、根α-juと、拡大成分に対する誤りの位置j-とを記憶し、これらを第2の誤り訂正器44に出力する。
誤りの大きさデータ保持器43は、誤りの大きさeuと、拡大成分に対する誤りの大きさe-とを記憶し、これらを第2の誤り訂正器44に出力する。
第2の誤り訂正器44は、第2のフラグ信号F2がアクティブ(第1の訂正データC1には誤り訂正の必要がない)であるか、又は、第3のフラグ信号F3が非アクティブ(「EN1≠EN2又はEN1>3又はEN2>3」)である場合には、第1の訂正データXC1をそのまま第2の訂正データC2として出力する。また、第2のフラグ信号F2が非アクティブ(第1の訂正データC1は誤りを含み、誤り訂正の必要がある)であり、かつ、第3のフラグ信号F3がアクティブ(「EN1=EN2≦3」)である場合には、根α-juに対応した誤りの位置juと誤りの大きさeuとに基づき、拡大成分に対しては更に誤りの位置j-と誤りの大きさe-とに基づいて、第1の訂正データXC1を入力データDIに戻す復元処理を行う。この復元処理は、第1の訂正データXC1の誤りの位置juのそれぞれが示すシンボルに対し、その誤りの位置juに対応する誤りの大きさeuを加算又は減算することにより行うことができ、拡大成分に対しては第1の訂正データXC1の誤りの位置j-が示すシンボル(拡大成分)に対し、その誤りの位置j-(拡大成分)に対応する誤りの大きさe-を更に加算又は減算する(つまり、第1の訂正データXC1の拡大成分のシンボルに対しては誤りの大きさeu及び誤りの大きさe-を加算又は減算する)ことにより行うことができる。このように復元して得られた入力データDIを第2の訂正データC2として出力する。上記のように、第2の誤り訂正器44は、第1の誤り訂正器41において誤り訂正処理を正しく行うことができず、第1の訂正データC1が誤りを含むときは、当該第1の訂正データC1ではなく、復元した入力データDIを出力する。
図7は、図6中の第1の誤り訂正部41の要部を示すブロック図である。図7において、41Aは誤り訂正処理器、41Bは拡大成分誤り訂正処理器、41Cはバスドライバである。
誤り訂正処理器41Aは、第1のフラグ信号F1がアクティブ(入力データDIを誤り訂正する必要がない)であるか、又は、第3のフラグ信号F3が非アクティブ(「EN1≠EN2又はEN1>3又はEN2>3」)である場合には、入力データXDIをそのまま第1の訂正データとして出力する。また、第1のフラグ信号F1が非アクティブ(入力データDIは誤りを含み、誤り訂正の必要がある)であり、かつ、第3のフラグ信号F3がアクティブ(「EN1=EN2≦3」)である場合には、入力データXDIにおいて、根α-juに対応した誤りの位置juのそれぞれが示すシンボルに対し、その誤りの位置juに対する誤りの大きさeuを減算又は加算する誤り訂正を行い、訂正処理後のデータを第1の訂正データとして出力する。
拡大成分誤り訂正処理器41Bは、第1のフラグ信号F1がアクティブ(入力データDIを誤り訂正する必要がない)であるか、又は、第3のフラグ信号F3が非アクティブ(「EN1≠EN2又はEN1>3又はEN2>3」)である場合には、誤り訂正処理データの拡大成分(暫定値)、つまり拡大成分の入力データXDIをそのまま拡大成分の第1の訂正データとして出力し、拡大成分の誤りの個数NB=0とする。また、第1のフラグ信号F1が非アクティブ(入力データDIは誤りを含み、誤り訂正の必要がある)であり、かつ、第3のフラグ信号F3がアクティブ(「EN1=EN2≦3」)である場合には、拡大成分に対して、更に非拡大成分のみの誤り訂正処理データの多項式F0(x)にx=α6を代入したものに誤り訂正処理データの拡大成分f-(暫定値)を加算し、つまり、
0(α6)+f-=f126(α6126+f125(α6125+・・・+f1α6+f0+f-
を計算し、F0(α6)+f-が零である場合には誤り訂正処理データの拡大成分f-(暫定値)に誤りがないと考えられるので、誤り訂正処理データの拡大成分f-(暫定値)をそのまま拡大成分の誤り訂正処理データとし、拡大成分の誤りの個数NB=0とする。F0(α6)+f-が零でない場合には誤り訂正処理データの拡大成分f-(暫定値)に誤りがあると判断し、誤り訂正処理データの拡大成分f-(暫定値)の誤りの大きさe-はF0(α6)+f-となる。そこで、誤り訂正処理データの拡大成分f-(暫定値)に対して誤り訂正処理を行い、つまり、誤り訂正処理データの拡大成分f-(暫定値)に誤りの大きさe-=F0(α6)+f-を加算し、
-+e-=f-+F0(α6)+f-=F0(α6)+2f-=F0(α6
を拡大成分の誤り訂正処理データとし、拡大成分の誤りの個数NB=1とする。そして、拡大成分誤り訂正処理器41Bは、これら拡大成分の誤り訂正処理データを、拡大成分の第1の訂正データとして出力する。
バスドライバ41Cは、誤り訂正処理器41Aからの第1の訂正データと、拡大成分誤り訂正処理器41Bからの拡大成分の第1の訂正データとを一括して、非拡大成分と拡大成分とからなる第1の訂正データC1として出力する。
以上のように、図4〜図7に示した復号器では、入力データシンドロームSIから誤りの個数推定部60にて推定した誤りの個数EN1と、復号過程で誤りの個数算出部70にて算出した誤りの個数EN2とを誤り訂正部40にて比較し、この比較結果と入力データシンドロームSIとに基づいて誤り訂正部40にて誤り訂正処理を施した後、誤り訂正されたデータC1に対してシンドローム計算部10にて再度シンドローム計算を行って訂正データシンドロームSCを求め、誤訂正を行った場合又は推定した誤りの個数EN1と算出した誤りの個数EN2とが異なる場合には入力データDIを第2の訂正データC2として出力する。
なお、図4の誤りの個数推定部60の機能をシンドローム計算部10の内部に、誤りの個数算出部70の機能を誤り訂正部40の内部にそれぞれ移動してもよい。
また、図4では誤りの個数算出部70にて根α-juから誤りの個数NAを求めたが、チェンサーチ部30にて誤りの個数NAを求めてもよい。
また、図7中の2つの処理器41A,41Bにおける処理を同じ処理器にて行うように構成してもよい。
図5中のシンドローム演算器12における非拡大成分の処理と拡大成分の処理とをそれぞれ異なる処理器で行うように構成してもよい。図8は、この場合のシンドローム演算器12の要部を示すブロック図である。図8において、12Aは非拡大成分シンドローム処理器、12Bは拡大成分シンドローム処理器、12Cはバスドライバである。
非拡大成分シンドローム処理器12Aは、入力データDIの非拡大成分及び第1の訂正データC1の非拡大成分のシンドロームをそれぞれ算出し、バスドライバ12Cに出力する。
拡大成分シンドローム処理器12Bは、入力データDIの拡大成分及び第1の訂正データC1の拡大成分のシンドロームをそれぞれ算出し、バスドライバ12Cに出力する。
バスドライバ12Cは、非拡大成分シンドローム処理器12Aからの入力データ非拡大成分のシンドロームと、拡大成分シンドローム処理器12Bからの入力データ拡大成分のシンドロームとを一括してこれを入力データシンドロームSIとし、非拡大成分シンドローム処理器12Aからの訂正データ非拡大成分のシンドロームと、拡大成分シンドローム処理器12Bからの訂正データ拡大成分のシンドロームとを一括してこれを訂正データシンドロームSCとしてそれぞれ出力する。
好ましくは、シンドローム計算部10による入力データシンドロームSIの計算等の処理を第1のステージとし、評価多項式及び位置多項式導出部20並びにチェンサーチ部30の処理を第2のステージとし、誤り訂正部40による第1の訂正データC1の出力及びシンドローム計算部10による訂正データシンドロームSCの計算等の処理を第3のステージとし、かつ誤り訂正部40による第2の訂正データC2の出力処理を第4のステージとするパイプラインアーキテクチャを採用するのがよい。シンドローム計算部10は、基準となるクロック信号の2倍の周波数で動作し、一連の復号過程において2回(第1及び第3のステージで)使用される。
以上説明してきたとおり、本発明に係る復号方法及び復号器は、復号の際の誤訂正を防止でき、デジタル放送、デジタル磁気記録等におけるリードソロモン符号又は拡大リードソロモン符号の多重誤り訂正に有用である。
本発明に係る拡大リードソロモン符号の復号方法の手順の一例を示すフローチャートである。 図1に続くフローチャートである。 図1中の誤りの個数推定ステップの詳細フローチャートである。 本発明に係る拡大リードソロモン符号の復号器の構成例を示すブロック図である。 図4中のシンドローム計算部の要部ブロック図である。 図4中の誤り訂正部の要部ブロック図である。 図6中の第1の誤り訂正部の要部ブロック図である。 図5中のシンドローム演算器の一構成例を示す要部ブロック図である。
符号の説明
S10 第1のシンドローム算出ステップ
S20 誤り位置多項式及び誤り評価多項式算出ステップ
S30 誤りの位置算出ステップ
S40 誤りの大きさ算出ステップ
S50 第1の誤り訂正ステップ
S60 誤りの個数推定ステップ
S80 誤りの個数算出ステップ
S90 第2のシンドローム算出ステップ
S100 第2の誤り訂正ステップ
10 シンドローム計算部
11 セレクタ
12 シンドローム演算器
12A 非拡大成分シンドローム処理器
12B 拡大成分シンドローム処理器
12C バスドライバ
13 入力データシンドローム保持器
14 訂正データシンドローム保持器
15 第1のシンドローム零検出器
16 第2のシンドローム零検出器
20 評価多項式及び位置多項式導出部
30 チェンサーチ部
40 誤り訂正部
41 第1の誤り訂正器
41A 誤り訂正処理器
41B 拡大成分誤り訂正処理器
41C バスドライバ
42 誤りの位置データ保持器
43 誤りの大きさデータ保持器
44 第2の誤り訂正器
45 比較器
50 データ記憶部
60 誤りの個数推定部
70 誤りの個数算出部
C1,XC1 第1の訂正データ
C2 第2の訂正データ
DI,XDI 入力データ(受信語)
EN1 推定した誤りの個数
EN2 算出した誤りの個数
u 誤りの大きさ
- 拡大成分に対する誤りの大きさ
F1 第1のフラグ信号
F2 第2のフラグ信号
F3 第3のフラグ信号
- 拡大成分に対する誤りの位置
MOD モード信号
NA 誤りの個数
NB 拡大成分の誤りの個数
SI,XSI 入力データシンドローム
SC 訂正データシンドローム
α-ju 誤り位置多項式の根
σ(z) 誤り位置多項式
σ'(α-ju) 誤り位置多項式の微分値
ω(z) 誤り評価多項式
ω(α-ju) 誤りの評価値

Claims (14)

  1. ある誤り訂正数のリードソロモン符号又は拡大リードソロモン符号からなる受信語を入力データとして復号する方法であって、
    前記入力データ並びに前記誤り訂正数のシンドロームに基づいて導出した誤り位置多項式及び誤り評価多項式を用いて、前記入力データに対して誤り訂正処理を行い、当該処理の結果を第1の訂正データとする第1の誤り訂正ステップと、
    前記第1の訂正データのシンドロームを算出するシンドローム算出ステップと、
    前記シンドローム算出ステップにて算出したシンドロームに基づいて、前記第1の訂正データに対して誤り訂正処理を行い、当該処理の結果を第2の訂正データとする第2の誤り訂正ステップとを備えたことを特徴とする復号方法。
  2. 請求項1記載の復号方法において、
    前記入力データのシンドロームに基づいて前記入力データ中に発生した誤りの個数を推定する、誤りの個数推定ステップと、
    前記入力データのシンドローム並びに前記誤り訂正数に基づいて導出した誤り位置多項式及び誤り評価多項式を用いて誤りの個数を算出する、誤りの個数算出ステップとを更に備え、
    前記第1の誤り訂正ステップでは、前記誤りの個数推定ステップにて推定した誤りの個数と、前記誤りの個数算出ステップにて算出した誤りの個数とを用いて、前記入力データに対して誤り訂正処理を行うことを特徴とする復号方法。
  3. 請求項2記載の復号方法において、
    前記第1の誤り訂正ステップは、
    前記推定した誤りの個数と前記算出した誤りの個数とが等しく、かつ、前記推定した誤りの個数と前記算出した誤りの個数とがともに前記誤り訂正数以下であるという第1の判定条件の真偽を判定する、誤りの個数判定ステップと、
    前記入力データの誤り訂正処理を行って、誤り訂正処理データを求め、かつ前記誤り訂正処理データに基づいて、拡大成分の誤り訂正処理データを求める誤り訂正処理ステップと、
    前記誤りの個数判定ステップにおいて前記第1の判定条件が真であると判定され、かつ、前記入力データのシンドロームの成分のいずれかが零でないと判定された場合には、前記誤り訂正処理ステップにて求められた誤り訂正処理データを前記第1の訂正データとするステップと、
    前記誤りの個数判定ステップにおいて前記第1の判定条件が偽であると判定されるか、又は、前記入力データのシンドロームの成分が全て零であると判定された場合には、前記入力データを前記第1の訂正データとするステップとを備えたことを特徴とする復号方法。
  4. 請求項2記載の復号方法において、
    前記第2の誤り訂正ステップでは、前記第1の訂正データのシンドローム並びに前記推定した誤りの個数及び前記算出した誤りの個数に基づいて、前記第1の訂正データに対して誤り訂正処理を行うことを特徴とする復号方法。
  5. 請求項3記載の復号方法において、
    前記第1の訂正データのシンドロームの成分が全て零であるか、又は、前記誤りの個数判定ステップにて前記第1の判定条件が偽であるという第2の判定条件の真偽を判定するステップを更に備え、
    前記第2の誤り訂正ステップでは、前記第2の判定条件が真である場合には前記第1の訂正データを前記第2の訂正データとし、前記第2の判定条件が偽である場合には前記入力データを復元して前記第2の訂正データとすることを特徴とする復号方法。
  6. 請求項2記載の復号方法において、
    前記誤りの個数推定ステップは、
    前記入力データのシンドロームの成分が全て零か否かを判断する第1のステップと、
    前記入力データのシンドロームの成分が全て零である場合には誤りがないと推定する第2のステップと、
    前記入力データのシンドロームの成分のいずれかが零でない場合には、前記入力データの拡大されていない成分の誤りの個数を推定するように、第1、第2、第3及び第4の誤り個数推定式を計算する第3のステップと、
    前記第1、第2及び第3の誤り個数推定式の値が全て零か否かを判断する第4のステップと、
    前記第4のステップにおいて前記第1、第2及び第3の誤り個数推定式の値が全て零である場合には、前記入力データのシンドロームの拡大成分が零か否かを判断する第5のステップと、
    前記第5のステップにおいて前記入力データのシンドロームの拡大成分が零である場合には、誤りの個数が前記誤り訂正数から2を減じた数に等しいと推定する第6のステップと、
    前記第5のステップにおいて前記入力データのシンドロームの拡大成分が零でない場合には、誤りの個数が前記誤り訂正数から1を減じた数に等しいと推定する第7のステップと、
    前記第4のステップにおいて前記第1、第2又は第3の誤り個数推定式の値のいずれかが零でない場合には、前記第4の誤り個数推定式の値が零か否かを判断する第8のステップと、
    前記第8のステップにおいて前記第4の誤り個数推定式の値が零である場合には、前記入力データのシンドロームの拡大成分が零か否かを判断する第9のステップと、
    前記第9のステップにおいて前記入力データのシンドロームの拡大成分が零である場合には、誤りの個数が前記誤り訂正数から1を減じた数に等しいと推定する第10のステップと、
    前記第9のステップにおいて前記入力データのシンドロームの拡大成分が零でない場合には、誤りの個数が前記誤り訂正数に等しいと推定する第11のステップと、
    前記第8のステップにおいて前記第4の誤り個数推定式の値が零でない場合には、前記入力データのシンドロームの拡大成分が零か否かを判断する第12のステップと、
    前記第12のステップにおいて前記入力データのシンドロームの拡大成分が零である場合には、誤りの個数が前記誤り訂正数に等しいと推定する第13のステップと、
    前記第12のステップにおいて前記入力データのシンドロームの拡大成分が零でない場合には、誤りの個数が前記誤り訂正数に1を加えた数に等しいと推定する第14のステップとを備えたことを特徴とする復号方法。
  7. 請求項1〜6のいずれか1項に記載の復号方法において、
    前記誤り訂正数が3であることを特徴とする復号方法。
  8. ある誤り訂正数のリードソロモン符号又は拡大リードソロモン符号からなる受信語を入力データとして復号するための復号器であって、
    前記入力データのシンドロームを入力データシンドロームとして求め、前記入力データシンドロームに基づいて前記入力データに誤りが存在するか否かを示す第1のフラグ信号を出力するとともに、前記入力データ及び前記入力データシンドロームに基づいて求められた第1の訂正データのシンドロームを訂正データシンドロームとして求め、前記訂正データシンドロームに基づいて前記第1の訂正データに誤りが存在するか否かを示す第2のフラグ信号を出力するためのシンドローム計算部と、
    前記シンドローム計算部にて計算された入力データシンドロームに基づいて前記入力データ中に発生した誤りの個数を推定するための誤りの個数推定部と、
    前記入力データシンドロームに基づいて誤り評価多項式及び誤り位置多項式の各次数の係数を求めるとともに、前記係数から求められた誤りの評価値及び対応する誤り位置多項式微分値に基づいて誤りの大きさを求めるための評価多項式及び位置多項式導出部と、
    前記係数に基づいて前記誤り位置多項式の根を求めるとともに、前記誤り評価多項式に前記根のそれぞれを代入して得られる誤りの評価値及び前記誤り位置多項式の導関数に前記根のそれぞれを代入して得られる誤り位置多項式微分値を求めるためのチェンサーチ部と、
    前記入力データ並びに前記根及び前記誤りの大きさに基づいて誤りの個数を算出するための誤りの個数算出部と、
    前記入力データ並びに前記根及び対応する前記誤りの大きさに基づいて、前記入力データに対して誤り訂正処理を行って誤り訂正処理データを求めるための誤り訂正部とを備え、
    前記誤り訂正部は、
    前記誤りの個数推定部にて推定した誤りの個数と前記誤りの個数算出部にて算出した誤りの個数とが等しく、かつ、前記誤りの個数推定部にて推定した誤りの個数及び前記誤りの個数算出部にて算出した誤りの個数がともに前記誤り訂正数以下であり、かつ、前記第1のフラグ信号が前記入力データに誤りが存在することを示す場合には、前記誤り訂正処理データを前記第1の訂正データとして出力し、
    前記誤りの個数推定部にて推定した誤りの個数と前記誤りの個数算出部にて算出した誤りの個数とが等しくないか、又は、前記誤りの個数推定部にて推定した誤りの個数若しくは前記誤りの個数算出部にて算出した誤りの個数のいずれかが前記誤り訂正数より大きいか、又は、前記第1のフラグ信号が前記入力データに誤りが存在しないことを示す場合には、前記入力データを前記第1の訂正データとして出力するとともに、
    前記第2のフラグ信号が前記第1の訂正データに誤りが存在することを示し、かつ、前記誤りの個数推定部にて推定した誤りの個数と前記誤りの個数算出部にて算出した誤りの個数とが等しく、かつ、前記誤りの個数推定部にて推定した誤りの個数及び前記誤りの個数算出部にて算出した誤りの個数がともに前記誤り訂正数以下である場合には、前記第1の訂正データに対して前記入力データに戻す復元処理を行って得たデータを第2の訂正データとして出力し、
    前記第2のフラグ信号が前記第1の訂正データに誤りが存在しないことを示すか、又は、前記誤りの個数推定部にて推定した誤りの個数と前記誤りの個数算出部にて算出した誤りの個数とが等しくないか、又は、前記誤りの個数推定部にて推定した誤りの個数若しくは前記誤りの個数算出部にて算出した誤りの個数のいずれかが前記誤り訂正数より大きい場合には、前記第1の訂正データを第2の訂正データとして出力することを特徴とする復号器。
  9. 請求項8記載の復号器において、
    前記シンドローム計算部は、
    前記入力データ及び前記誤り訂正部が出力する前記第1の訂正データを入力とし、入力された前記入力データと入力された前記第1の訂正データとを順次選択して出力するためのセレクタと、
    前記セレクタが出力する前記入力データに基づいて前記入力データシンドロームを、前記第1の訂正データに基づいて前記訂正データシンドロームをそれぞれ求めるためのシンドローム演算器と、
    前記入力データシンドロームを保持して出力するための入力データシンドローム保持器と、
    前記訂正データシンドロームを保持して出力するための訂正データシンドローム保持器と、
    前記入力データシンドローム保持器が出力する前記入力データシンドロームの成分が全て零である場合には前記入力データに誤りが存在しないことを示すように前記第1のフラグ信号を出力し、前記入力データシンドローム保持器が出力する前記入力データシンドロームの成分のいずれかが零でない場合には前記入力データに誤りが存在することを示すように前記第1のフラグ信号を出力するための第1のシンドローム零検出器と、
    前記訂正データシンドローム保持器が出力する前記訂正データシンドロームの成分が全て零である場合には前記第1の訂正データに誤りが存在しないことを示すように前記第2のフラグ信号を出力し、前記訂正データシンドローム保持器が出力する前記訂正データシンドロームの成分のいずれかが零でない場合には前記第1の訂正データに誤りが存在することを示すように前記第2のフラグ信号を出力するための第2のシンドローム零検出器とを備えたことを特徴とする復号器。
  10. 請求項9記載の復号器において、
    前記シンドローム演算器は、
    前記セレクタが順次出力する前記入力データ及び前記第1の訂正データに基づいて、拡大成分でない成分の前記入力データシンドローム及び前記訂正データシンドロームをそれぞれ求めるための非拡大成分シンドローム処理器と、
    前記セレクタが順次出力する前記入力データ及び前記第1の訂正データに基づいて、拡大成分の前記入力データシンドローム及び前記訂正データシンドロームをそれぞれ求めるための拡大成分シンドローム処理器と、
    前記非拡大成分シンドローム処理器から出力された拡大成分でない成分の前記入力データシンドロームと、前記拡大成分シンドローム処理器から出力された拡大成分の前記入力データシンドロームとを一括し、かつ、前記非拡大成分シンドローム処理器から出力された拡大成分でない成分の前記訂正データシンドロームと、前記拡大成分シンドローム処理器から出力された拡大成分の前記訂正データシンドロームとを一括して出力するためのバスドライバとを備えたことを特徴とする復号器。
  11. 請求項8記載の復号器において、
    前記誤り訂正部は、
    前記誤りの個数推定部にて推定した誤りの個数と前記誤りの個数算出部にて算出した誤りの個数とを比較するための比較部と、
    前記第1の訂正データと、誤りの位置、誤りの大きさ及び誤りの個数とを出力するための第1の誤り訂正器と、
    前記誤りの位置を保持して出力するための誤りの位置データ保持器と、
    前記誤りの大きさを保持して出力するための誤りの大きさデータ保持器と、
    前記第2の訂正データを出力するための第2の誤り訂正器とを備え、
    前記比較部は、前記誤りの個数推定部にて推定した誤りの個数と前記誤りの個数算出部にて算出した誤りの個数とが等しく、かつ、前記誤りの個数推定部にて推定した誤りの個数及び前記誤りの個数算出部にて算出した誤りの個数がともに前記誤り訂正数以下であるか否かを示す第3のフラグ信号を出力し、
    前記第1の誤り訂正器は、
    前記入力データに対して、前記根のそれぞれに対応する誤りの位置が示すシンボルから対応する前記誤りの大きさを減算又は加算する誤り訂正処理を行って、誤り訂正処理データを求め、かつ、前記誤り訂正処理データに基づいて、拡大成分の誤り訂正処理データを求めて、これらを誤り訂正処理データとし、
    前記誤りの個数推定部にて推定した誤りの個数と前記誤りの個数算出部にて算出した誤りの個数とが等しく、かつ、前記誤りの個数推定部にて推定した誤りの個数及び前記誤りの個数算出部にて算出した誤りの個数がともに前記誤り訂正数以下であることを前記第3のフラグ信号が示し、かつ、前記入力データに誤りが存在することを前記第1のフラグ信号が示す場合には、前記誤り訂正処理データを前記第1の訂正データとして出力し、
    前記誤りの個数推定部にて推定した誤りの個数と前記誤りの個数算出部にて算出した誤りの個数とが等しくないか、又は、前記誤りの個数推定部にて推定した誤りの個数若しくは前記誤りの個数算出部にて算出した誤りの個数のいずれかが前記誤り訂正数より大きいことを前記第3のフラグ信号が示すか、又は、前記入力データに誤りが存在しないことを前記第1のフラグ信号が示す場合には、前記入力データを前記第1の訂正データとして出力し、
    前記第2の誤り訂正器は、
    前記第1の訂正データに誤りが存在することを前記第2のフラグ信号が示し、かつ、前記誤りの個数推定部にて推定した誤りの個数と前記誤りの個数算出部にて算出した誤りの個数とが等しく、かつ、前記誤りの個数推定部にて推定した誤りの個数及び前記誤りの個数算出部にて算出した誤りの個数がともに前記誤り訂正数以下であることを前記第3のフラグ信号が示す場合には、前記第1の訂正データに対して、前記誤りの位置が示すシンボルに対応する前記誤りの大きさの値を加算又は減算して前記入力データに戻す復元処理を行って得られたデータを前記第2の訂正データとして出力し、
    前記第1の訂正データに誤りが存在しないことを前記第2のフラグ信号が示すか、又は、前記誤りの個数推定部にて推定した誤りの個数と前記誤りの個数算出部にて算出した誤りの個数とが等しくないか、又は、前記誤りの個数推定部にて推定した誤りの個数若しくは前記誤りの個数算出部にて算出した誤りの個数のいずれかが前記誤り訂正数より大きいことを前記第3のフラグ信号が示す場合には、前記第1の訂正データを前記第2の訂正データとして出力することを特徴とする復号器。
  12. 請求項11記載の復号器において、
    前記第1の誤り訂正器は、
    前記第1の訂正データを出力するための誤り訂正処理器と、
    拡大成分の前記第1の訂正データと、前記拡大成分に対する誤りの位置、誤りの大きさ及び誤りの個数とを出力するための拡大成分誤り訂正処理器と、
    前記第1の訂正データと拡大成分の前記第1の訂正データとを一括して、前記第1の訂正データとして出力するためのバスドライバとを備え、
    前記誤り訂正処理器は、
    前記入力データに対して、前記根のそれぞれに対応する誤りの位置が示すシンボルから対応する前記誤りの大きさを減算又は加算する誤り訂正処理を行って、誤り訂正処理データを求め、
    前記誤りの個数推定部にて推定した誤りの個数と前記誤りの個数算出部にて算出した誤りの個数とが等しく、かつ、前記誤りの個数推定部にて推定した誤りの個数及び前記誤りの個数算出部にて算出した誤りの個数がともに前記誤り訂正数以下であることを前記第3のフラグ信号が示し、かつ、前記入力データに誤りが存在することを前記第1のフラグ信号が示す場合には、前記誤り訂正処理データを前記第1の訂正データとして出力し、
    前記誤りの個数推定部にて推定した誤りの個数と前記誤りの個数算出部にて算出した誤りの個数とが等しくないか、又は、前記誤りの個数推定部にて推定した誤りの個数若しくは前記誤りの個数算出部にて算出した誤りの個数のいずれかが前記誤り訂正数より大きいことを前記第3のフラグ信号が示すか、又は、前記入力データに誤りが存在しないことを前記第1のフラグ信号が示す場合には、前記入力データを前記第1の訂正データとして出力し、
    前記拡大成分誤り訂正処理器は、
    前記誤り訂正処理データに基づいて拡大成分の誤り訂正処理データを求めるとともに、拡大成分の誤りの個数を求め、
    前記誤りの個数推定部にて推定した誤りの個数と前記誤りの個数算出部にて算出した誤りの個数とが等しく、かつ、前記誤りの個数推定部にて推定した誤りの個数及び前記誤りの個数算出部にて算出した誤りの個数がともに前記誤り訂正数以下であることを前記第3のフラグ信号が示し、かつ、前記入力データに誤りが存在することを前記第1のフラグ信号が示す場合には、拡大成分の前記誤り訂正処理データを拡大成分の前記第1の訂正データとして出力し、
    前記誤りの個数推定部にて推定した誤りの個数と前記誤りの個数算出部にて算出した誤りの個数とが等しくないか、又は、前記誤りの個数推定部にて推定した誤りの個数若しくは前記誤りの個数算出部にて算出した誤りの個数のいずれかが前記誤り訂正数より大きいことを前記第3のフラグ信号が示すか、又は、前記入力データに誤りが存在しないことを前記第1のフラグ信号が示す場合には、拡大成分の前記入力データを拡大成分の前記第1の訂正データとして出力することを特徴とする復号器。
  13. 請求項8記載の復号器において、
    前記誤り訂正部が前記第1の訂正データを求め始めるまで前記入力データを保持出力し、かつ、前記誤り訂正部が前記第2の訂正データを求め始めるまで前記第1の訂正データを保持出力するためのデータ記憶部を更に備えたことを特徴とする復号器。
  14. 請求項8〜13のいずれか1項に記載の復号器において、
    前記誤り訂正数が3であることを特徴とする復号器。
JP2003337960A 2003-03-12 2003-09-29 リードソロモン符号又は拡大リードソロモン符号の復号方法及び復号器 Expired - Fee Related JP4346396B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003337960A JP4346396B2 (ja) 2003-03-12 2003-09-29 リードソロモン符号又は拡大リードソロモン符号の復号方法及び復号器

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003066149 2003-03-12
JP2003337960A JP4346396B2 (ja) 2003-03-12 2003-09-29 リードソロモン符号又は拡大リードソロモン符号の復号方法及び復号器

Publications (2)

Publication Number Publication Date
JP2004297757A true JP2004297757A (ja) 2004-10-21
JP4346396B2 JP4346396B2 (ja) 2009-10-21

Family

ID=33421570

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003337960A Expired - Fee Related JP4346396B2 (ja) 2003-03-12 2003-09-29 リードソロモン符号又は拡大リードソロモン符号の復号方法及び復号器

Country Status (1)

Country Link
JP (1) JP4346396B2 (ja)

Also Published As

Publication number Publication date
JP4346396B2 (ja) 2009-10-21

Similar Documents

Publication Publication Date Title
US8683293B2 (en) Method and system for fast two bit error correction
JPH0936755A (ja) 復号装置及びその方法
EP1458105B1 (en) Method and device for decoding of Reed-Solomon codes
JPH06311050A (ja) 誤り訂正方法及びその装置
JP4134029B2 (ja) リードソロモン符号の軟判定復号方法
JP3352659B2 (ja) 復号装置及び復号方法
JP3255386B2 (ja) 誤り訂正符号の復号器
JP3343857B2 (ja) 復号装置、演算装置およびこれらの方法
JP2605966B2 (ja) 誤り訂正回路
JP4346396B2 (ja) リードソロモン符号又は拡大リードソロモン符号の復号方法及び復号器
KR100330642B1 (ko) 오류정정방법및오류정정장치
JP2694794B2 (ja) 誤り訂正処理方法
JP2907138B2 (ja) 誤り訂正の演算処理方法及び処理回路
KR20000037517A (ko) 리드-솔로몬 디코더 회로
JP3099890B2 (ja) Bch符号の誤り訂正装置
JP2001251196A (ja) リードソロモン復号方法及びリードソロモン復号装置
JP2008112522A (ja) 誤り検出装置および誤り検出方法
JP3889988B2 (ja) エラー訂正回路およびエラー訂正プログラム
JP2532258B2 (ja) 誤り検出方式
JP2003168983A (ja) 復号回路および復号方法
JPH05259924A (ja) 誤り訂正符号の復号方法
KR19990032073A (ko) 디지털 티브이의 에러 정정 장치
JP2000091924A (ja) 誤り訂正符号の復号方法および復号装置
JPH1141113A (ja) 誤り訂正装置
JP2000148522A (ja) ユークリッド互除演算回路

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060915

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090324

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090407

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: 20090616

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090714

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120724

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120724

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130724

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees