(57)【要約】【課題】ＥＣＣ符号とパリティ符号との連接符号により誤り訂正する符号化・復号化装置において、回路規模の増大を防止し、且つ誤り訂正性能を向上する。【解決手段】データ列を、ｍ（ｍ≧２）ビット毎に、複数ブロックにインターリーブし、誤り訂正符号のパリティを付加し、ｍ×ｎビット毎に、パリティビットを付加した連接型符号化データを作成する符号化器（２３５，２３４）を設けたので、複数ブロックにインターリーブして、誤り訂正符号のパリティを生成しても、回路規模の増加を防止できる。又、軟出力復号器（２２６）の尤度とパリティチエック結果で、ＥＣＣ復号データ列を訂正するＥＣＣ復号回路（２３０，２２７，２３３）を設けたため、訂正性能劣化も防止できる。【選択図】図１
2008136173.tif 000002
【特許請求の範囲】
【請求項１】
データ列を、ｍ（ｍ≧２）ビット毎に、ｎ（ｎ≧２）ブロックのデータ列にインターリーブし、インターリーブされた各ブロックのデータ列から誤り訂正符号のパリティを生成し、前記データ列に各ブロックの前記誤り訂正符号のパリティを付加して、誤り訂正符号語を作成するＥＣＣ符号器と、
前記誤り訂正符号語の複数のビット数毎に、パリティビットを作成し、前記誤り訂正符号語に付加するパリティ符号器とを有する
ことを特徴とする符号化器。
【請求項２】
データ列を、ｍ（ｍ≧２）ビット毎に、ｎ（ｎ≧２）ブロックのデータ列にインターリーブされた各ブロックのデータ列から生成された誤り訂正符号のパリティと、前記データ列と前記誤り訂正符号のパリティとからなる誤り訂正符号語の複数のビット数毎に、作成されたパリティビットとを、前記誤り訂正符号語に付加された符号化データ列を復号化する復号化器であって、
受信した前記符号化データ列を符号ビット列に復号化し、且つ各ビットの尤度を出力する軟出力復号器と、
前記軟出力復号器の符号ビット列の誤り訂正符号による誤り訂正復号と、前記パリティビットによる誤り検出に従う、前記尤度による前記符号ビット列の訂正復号とを反復して行うＥＣＣ復号回路とを有する
ことを特徴とする復号化器。
【請求項３】
前記ＥＣＣ復号回路は、
前記軟出力復号器の符号ビット列の誤り訂正符号による誤り訂正を行うＥＣＣ復号器と、
前記ＥＣＣ復号器の復号失敗に応じて、前記パリティビットによる誤り検出を行い、前記誤り検出結果により、前記尤度により、前記ＥＣＣ復号器に入力される前記符号ビット列の訂正を行うパリティ・尤度訂正器とを有する
ことを特徴とする請求項２の復号化器。
【請求項４】
前記軟出力復号器の符号ビット列から前記パリティビットを分離し、前記パリティ・尤度訂正器に出力する分割部と、
前記パリティビットが分離された前記符号ビット列を、前記ｍ（ｍ≧２）ビット毎に、ｎ（ｎ≧２）ブロックのデータ列にインターリーブするインターリーブ部と、
インターリーブされた各ブロックのデータ列を保存するデータ保存部とを更に有し、
前記ＥＣＣ復号器は、前記データ保存部の各ブロックのデータ列を前記誤り訂正符号による誤り訂正を行い、
前記パリティ・尤度訂正器は、前記データ保存器のデータ列の訂正を行う
ことを特徴とする請求項３の復号化器。
【請求項５】
前記パリティ・尤度訂正器は、前記復号失敗時に、前記ＥＣＣ復号器から前記復号を失敗した前記ブロックの識別子を受け、前記失敗したブロックの前記パリティビットによる誤り検出された前記ｍビットのデータを対象として、前記尤度による訂正を行う
ことを特徴とする請求項３の復号化器。
【請求項６】
前記パリティ・尤度訂正器は、前記ＥＣＣ復号器の前記誤り訂正符号語のｍ×ｎビット毎にパリティビットを計算し、且つｍ×ｎビット毎の計算されたパリティビットと前記分離された対応するパリティビットとの比較により、前記誤り検出された前記ｍビットのデータを特定する
ことを特徴とする請求項５の復号化器。
【請求項７】
前記パリティ・尤度訂正器は、前記パリティビットの比較により、前記誤り検出された前記計算されたパリティビットと前記分離されたパリティビットとの加算結果からパリティラー値を計算し、前記ｍビットのデータの誤り発生位置を特定する
ことを特徴とする請求項６の復号化器。
【請求項８】
前記パリティ・尤度訂正器は、前記ｍビット単位に、前記ｍビットの各ビットの尤度から尤度の比較的低いビット位置を前記訂正候補として、抽出する
ことを特徴とする請求項５の復号化器。
【請求項９】
データ列を、ｍ（ｍ≧２）ビット毎に、ｎ（ｎ≧２）ブロックのデータ列にインターリーブし、インターリーブされた各ブロックのデータ列から誤り訂正符号のパリティを生成し、前記データ列に各ブロックの前記誤り訂正符号のパリティを付加して、誤り訂正符号語を作成するＥＣＣ符号器と、
前記誤り訂正符号語の複数のビット数毎に、パリティビットを作成し、前記誤り訂正符号語に付加するパリティ符号器とを有する符号化器と、
受信した符号化データ列を符号ビット列に復号化し、且つ各ビットの尤度を出力する軟出力復号器と、
前記軟出力復号器の符号ビット列の誤り訂正符号による誤り訂正復号と、前記パリティビットによる誤り検出に従う、前記尤度による前記符号ビット列の訂正復号とを反復して行うＥＣＣ復号回路とを有する復号化器とを有する
ことを特徴とする符号化・復号化装置。
【請求項１０】
記憶媒体にデータを書き込み且つ読み取るヘッドと、
前記記憶媒体に書き込むべきデータ列を、ｍ（ｍ≧２）ビット毎に、ｎ（ｎ≧２）ブロックのデータ列にインターリーブし、インターリーブされた各ブロックのデータ列から誤り訂正符号のパリティを生成し、前記データ列に各ブロックの前記誤り訂正符号のパリティを付加して、誤り訂正符号語を作成するＥＣＣ符号器と、
前記誤り訂正符号語の複数のビット数毎に、パリティビットを作成し、前記誤り訂正符号語に付加して、前記ヘッドに出力するパリティ符号器と、
前記ヘッドから読み出した符号化データ列を符号ビット列に復号化し、且つ各ビットの尤度を出力する軟出力復号器と、
前記軟出力復号器の符号ビット列の誤り訂正符号による誤り訂正復号と、前記パリティビットによる誤り検出に従う、前記尤度による前記符号ビット列の訂正復号とを反復して行うＥＣＣ復号回路とを有する
ことを特徴とする記録再生装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記録再生装置や通信装置に使用される誤り訂正符号を含むデータの符号化装置、復号化装置、符号化・復号化装置及び記録再生に関し、特に、ＥＣＣコードを付与したデータブロックの誤り訂正のための符号化装置、復号化装置、符号化・復号化装置及び記録再生装置に関する。
【背景技術】
【０００２】
磁気ディスク装置等の記録再生装置や通信系の分野においては、低品質の伝送信号や記録再生信号からデータを再生する際に、データ再生の信頼性を向上するため、最尤シーケンス検出（Ｍａｘｉｍｕｎｍ−Ｌｉｋｅｌｉｈｏｏｄ  Ｓｅｑｕｅｎｃｅ  Ｄｅｔｅｃｔｉｏｎ）を用いたデータ復号技術と、ＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ  Ｃｏｄｅ）を用いた誤り訂正技術が広く普及している。
【０００３】
このＥＣＣ符号として、ＲＳ（Ｒｅｅｄ  Ｓｏｌｏｍｏｎ）符号が利用されている。最尤検出器から出力されたビット列は、媒体ノイズや回路ノイズの影響のため、数ビットに誤った値が代入される。ＥＣＣは、誤りを持つビット列の誤り訂正を行い、誤り訂正されたビット列を出力する。  例えば、磁気ディスク装置では、ＥＣＣの訂正に失敗した場合、リトライを行う必要があるが、リトライは極力避けたい。そこで、最尤検出器からいくつかの候補列を受け取って、候補列をＥＣＣで復号できるかを順番に試すことが提案されている（例えば、特許文献１参照）。
【０００４】
図３７乃至図３９は、リードソロモン符号に基づく誤り訂正動作の説明図、図４０は、従来の最尤シーケンスを用いた誤り訂正回路のブロック図である。
【０００５】
先ず、符号化を説明する。図３７に示すように、誤り訂正数ｔのリードソロモン符号は、次数２ｔの生成多項式から生成される。例えば、符号化に用いるガロア体をＧＦ（２の３乗）とし、誤り訂正数ｔを「１」とすると、リードソロモン符号の生成多項式は、原始元αを用いて、例えば、次式（１）のように表現される。
【０００６】
【数１】
2008136173.tif 000003
この例では、α０＝１から開始し、３ビットのビット列が１シンボルとして扱われ、ＥＣＣ符号化では、２ｔ（＝２）のシンボルのパリティ列が情報列に付加される。例えば、図３７の情報列を符号化する場合、情報列（ビット表示）”００１“，”１１０“，”１０１“は、ガロア体表示における１、αの五乗、αの四乗にそれぞれ対応付けられる。ここで、ｊ番目のシンボルは、送信語列の多項式におけるｘｊの項の係数を表す。従って、ビット列（情報列）は、多項式ｘ４＋α５ｘ３＋α４ｘ２を表す。
【０００７】
ＥＣＣ符号化は、図３８に示すように、ビット列が表す多項式を、式（１）の生成多項式で割り算し、得られた剰余多項式α４ｘ＋α４を表すパリティ列を、ビット列に付加する。この剰余多項式は、ｘの１次及び０次の項の係数がともにα４であるから、図３７に示すようなパリティ列が付加され、５シンボルからなる送信語列が生成される。
【０００８】
この送信語列が、例えば、磁気ディスクに記録され、読み出された場合に、図３９に示すように、誤りを含む受信列が、ＥＣＣ復号器に入力される可能性がある。この受信語列は、次式（２）で示される。
【０００９】
【数２】
2008136173.tif 000004
図４０に示すように、受信側の誤り訂正回路では、最尤検出器２０は、入力信号から最尤シーケンスに従い、複数の候補データ列を作成する。データ保存部３１は、作成された複数の候補データ列を格納する。ＥＣＣ復号器２２は、シンドローム計算部４１と、誤り位置多項式計算部４２と、チェーンサーチ実行部４３と、誤り値計算部４４を備える。
【００１０】
シンドローム計算部４１は、ＥＣＣ復号器２２に入力されたデータ列のシンドローム計算式（以下で説明する）を計算する。誤り位置多項式計算部４２は、シンドローム多項式から誤り位置多項式（以下で説明する）を計算する。誤り位置多項式の計算アルゴリズムとしては、例えば、ユークリッド法又はバーレカンプマッシ（Ｂｅｒｌｅｋａｍｐ  Ｍａｓｓｅｙ）法が用いられる（例えば、非特許文献１，２参照）。
【００１１】
チェーンサーチ実行部４３は、前述の誤り位置多項式を用いて、チェーンサーチを実行し、データ列上の誤りのある位置（誤り位置）を決定する。誤り値計算部４４は、誤り位置の誤った値を正しい値に訂正する。その後、復号判定部３２は、誤り値計算部４４から出力される訂正後のデータ列の正当性をチエックし、正当でなければ、訂正失敗と判定して、データ保存部３１に次の復号候補データ列を出力するように指示する。
【００１２】
先ず、シンドローム計算部４１は、例えば、図３９の受信語列に対し、次式（３）によりシンドローム多項式を計算する。
【００１３】
【数３】
2008136173.tif 000005
式（３）において、シンドロームｓｉ（ｉ＝１，２、．．．．，２ｔ）は、式（１）の生成多項式Ｇ（ｘ）のｉ番目の根を、受信語多項式Ｙ（ｘ）に代入して得られる値であり、シンドローム多項式Ｓ（ｘ）は、シンドロームｓｉを、ｘｉ−１の項の係数とする多項式である。受信語列に誤りが含まれていなければ、すべてのｓｉが「０」となる。
【００１４】
次に、誤り位置多項式計算部４２は、バーレカンプマッシ（Ｂｅｒｌｅｋａｍｐ  Ｍａｓｓｅｙ）法に従い、シンドローム多項式Ｓ（ｘ）から、次式（４）の誤り位置多項式Ｃ（ｘ）を計算する。
【００１５】
【数４】
2008136173.tif 000006
次に、チェーンサーチ実行部４３は、式（４）の誤り位置多項式Ｃ（ｘ）を用いて、Ｃ（αｊ）の値（ｊ＝０，１，２，３，４）を計算し、Ｃ（αｊ）＝０となる位置ｊを、誤り位置として、出力する。図３９の例では、Ｃ（α４）＝１＋α−４・α４＝０となるので、４番目のシンボルに誤りがあることが検出できる。
【００１６】
次に、誤り値計算部４４は、式（３）のシンドローム多項式Ｓ（ｘ）と式（４）の誤り位置多項式Ｃ（ｘ）を用いて、所定のアルゴリズムで４番目のシンボルの正しい値を計算し、そのビット列を訂正する。ここでは、正しい値「１」が求められ、図３９に示す受信語列における４番目のシンボルが、αから「１」に訂正される。
【００１７】
例えば、図４１に示すように、磁気ディスク装置では、誤り訂正数ｔ＝２０となるリードソロモン符号が用いられる。ＥＣＣ符号化では、１０ビットを１シンボルとし、４０シンボルのパリティ列が、１セクタのビット列（４０９６ビット＝４１０シンボル）の前に挿入される。この場合、シンドローム多項式Ｓ（ｘ）と誤り位置多項式Ｃ（ｘ）は、例えば、下記式（５）、（６）で表される。
【００１８】
【数５】
2008136173.tif 000007
【００１９】
【数６】
2008136173.tif 000008
【特許文献１】特開平１１−３３０９８５号公報
【非特許文献１】E. R. Berlekamp, “Algebraic Coding Theory”, McGraw-Hill Book Co., pp.176-199 and pp. 218-240, New York, 1968
【非特許文献２】J. L. Massay, “Shift-register Synthesis and BCH Decoding”, IEEE Transactions on Information Theory, vol. IT-15, pp. 122-127, 1969
【発明の開示】
【発明が解決しようとする課題】
【００２０】
一方、図４２に示すように、ブロック長が長い場合には、ｒインターリーブ方式を用いることがある（図３０では、ｒ＝４インターリーブの例である）。即ち、ブロックをｒ個のブロックに分割し、分割したブロックに対し、前述の多項式により、ＲＳ符号（ＥＣＣ符号）を計算し、付加する。
【００２１】
誤り訂正性能の面では、ｒインターリーブ方式より、１インターリーブ方式の方が良い。即ち、図４１に示したように、１インターリーブ方式は、前述の符号化、復号化原理によれば、１ブロック全体を対象として、ＲＳ符号を作成するので、誤り性能が１ブロック全体となり、高い。一方、ｒインターリーブ方式は、図４２に示したように、１ブロックのｒ分の１を対象として、ＲＳ符号を作成するので、誤り性能が１ブロックのｒ分の１となり、１インターリーブ方式より低い。
【００２２】
例えば、１ブロックを４ｋｂｙｔｅ（＝３２，０００ビット）とした場合には、ＥＣＣ符号として、1シンボル当たり１２ビットのＲＳ符号を使用する必要がある。即ち、１シンボルを１０ビットとすると、対象ビット数は、２１０−１＝１０２３シンボル（＝１０２３０ビット）となり、１ブロック全体の訂正ができない。
【００２３】
一方、１シンボルを１２ビットとすると、対象ビット数は、２１２−１＝４０９２シンボル（＝４９１０４ビット）となり、１ブロック全体の訂正が可能である。しかしながら、１シンボルのビット数を増加すると、ＥＣＣの符号器、復号器、それに付随するバッファ等が増加し、回路規模が、現行の１シンボル１０ビットの場合の数倍になる問題がある。
【００２４】
逆に、現行の１シンボル１０ビットＥＣＣを使用する場合は、１インターリーブ構成は、使用できないので、４インターリーブ構成で、行う必要がある。しかし、前述のように、誤り訂正性能は、１インターリーブ構成より劣化する問題がある。
【００２５】
従って、本発明の目的は、回路規模の増加と、誤り訂正性能の劣化を防止するための符号化器、復号化器、符号化・復号化装置及び記録再生装置を提供することにある。
【００２６】
又、本発明の他の目的は、複数インターリーブ構成でＥＣＣ符号化しても、誤り訂正性能の劣化を防止するための符号化器、復号化器、符号化・復号化装置及び記録再生装置を提供することにある。
【００２７】
更に、本発明の更に他の目的は、複数インターリーブ構成でＥＣＣ符号化、復号化して、少ない回路規模で実現するとともに、誤り訂正性能の劣化を防止するための符号化器、復号化器、符号化・復号化装置及び記録再生装置を提供することにある。
【課題を解決するための手段】
【００２８】
この目的の達成のため、本発明の符号化器は、データ列を、ｍ（ｍ≧２）ビット毎に、ｎ（ｎ≧２）ブロックのデータ列にインターリーブし、インターリーブされた各ブロックのデータ列から誤り訂正符号のパリティを生成し、前記データ列に各ブロックの前記誤り訂正符号のパリティを付加して、誤り訂正符号語を作成するＥＣＣ符号器と、前記誤り訂正符号語の所定のビット数毎に、パリティビットを作成し、前記誤り訂正符号語に付加するパリティ符号器とを有する。
【００２９】
又、本発明の復号化器は、データ列を、ｍ（ｍ≧２）ビット毎に、ｎ（ｎ≧２）ブロックのデータ列にインターリーブされた各ブロックのデータ列から生成された誤り訂正符号のパリティと、誤り訂正符号語の所定のビット数毎に、作成されたパリティビットとを、前記誤り訂正符号語に付加された符号化データ列を復号化する復号化器であって、受信した符号化データ列を符号ビット列に復号化し、且つ各ビットの尤度を出力する軟出力復号器と、前記軟出力復号器の符号ビット列の誤り訂正符号による誤り訂正復号と、前記パリティビットによる誤り検出に従う、前記尤度による前記符号ビット列の訂正復号とを反復して行うＥＣＣ復号回路とを有する。
【００３０】
又、本発明の符号化・復号化装置は、データ列を、ｍ（ｍ≧２）ビット毎に、ｎ（ｎ≧２）ブロックのデータ列にインターリーブし、インターリーブされた各ブロックのデータ列から誤り訂正符号のパリティを生成し、前記データ列に各ブロックの前記誤り訂正符号のパリティを付加して、誤り訂正符号語を作成するＥＣＣ符号器と、前記誤り訂正符号語の所定のビット数毎に、パリティビットを作成し、前記誤り訂正符号語に付加するパリティ符号器とを有する符号化器と、受信した符号化データ列を符号ビット列に復号化し、且つ各ビットの尤度を出力する軟出力復号器と、前記軟出力復号器の符号ビット列の誤り訂正符号による誤り訂正復号と、前記パリティビットによる誤り検出に従う、前記尤度による前記符号ビット列の訂正復号とを反復して行うＥＣＣ復号回路とを有する復号化器とを有する。
【００３１】
又、本発明の記録再生装置は、記憶媒体にデータを書き込み且つ読み取るヘッドと、前記記憶媒体に書き込むべきデータ列を、ｍ（ｍ≧２）ビット毎に、ｎ（ｎ≧２）ブロックのデータ列にインターリーブし、インターリーブされた各ブロックのデータ列から誤り訂正符号のパリティを生成し、前記データ列に各ブロックの前記誤り訂正符号のパリティを付加して、誤り訂正符号語を作成するＥＣＣ符号器と、前記誤り訂正符号語の所定のビット数毎に、パリティビットを作成し、前記誤り訂正符号語に付加して、前記ヘッドに出力するパリティ符号器と、前記ヘッドから読み出した符号化データ列を符号ビット列に復号化し、且つ各ビットの尤度を出力する軟出力復号器と、前記軟出力復号器の符号ビット列の誤り訂正符号による誤り訂正復号と、前記パリティビットによる誤り検出に従う、前記尤度による前記符号ビット列の訂正復号とを反復して行うＥＣＣ復号回路とを有する。
【００３２】
更に、本発明は、好ましくは、前記ＥＣＣ符号器は、前記各ブロックのデータ列を前記ｍビット毎に、デ・インターリーブし、前記データ列に復元する。
【００３３】
更に、本発明は、好ましくは、前記ＥＣＣ符号器は、前記データ列を、ｍ（ｍ≧２）ビット毎に、ｎ（ｎ≧２）ブロックのデータ列にインターリーブするインターリーブ部と、インターリーブされた各ブロックのデータ列から誤り訂正符号のパリティを生成するＥＣＣ符号部と、前記各ブロックのデータ列を前記ｍビット毎に、デ・インターリーブし、且つ前記データ列に復元し、且つ前記誤り訂正符号のパリティ誤り訂正符号語を前記復元されたデータ列に付加するデ・インターリーブ部とを有する。
【００３４】
更に、本発明は、好ましくは、前記ＥＣＣ符号器は、前記誤り訂正符号として、リードソロモン符号を生成する。
【００３５】
更に、本発明は、好ましくは、前記パリティ符号器は、多項式の割り算の余りにより前記パリティを作成する。
【００３６】
更に、本発明は、好ましくは、前記ＥＣＣ復号回路は、前記軟出力復号器の符号ビット列の誤り訂正符号による誤り訂正を行うＥＣＣ復号器と、前記ＥＣＣ復号器の復号失敗に応じて、前記パリティビットによる誤り検出を行い、前記誤り検出結果により、前記尤度により、前記ＥＣＣ復号器に入力される前記符号ビット列の訂正を行うパリティ・尤度訂正器とを有する。
【００３７】
更に、本発明は、好ましくは、前記軟出力復号器の符号ビット列から前記パリティビットを分離し、前記パリティ・尤度訂正器に出力する分割部と、前記パリティビットが分離された前記符号ビット列を、前記ｍ（ｍ≧２）ビット毎に、ｎ（ｎ≧２）ブロックのデータ列にインターリーブするインターリーブ部と、インターリーブされた各ブロックのデータ列を保存するデータ保存部とを更に有し、前記ＥＣＣ復号器は、前記データ保存部の各ブロックのデータ列を前記誤り訂正符号による誤り訂正を行い、前記パリティ・尤度訂正器は、前記データ保存器のデータ列の訂正を行う。
【００３８】
更に、本発明は、好ましくは、前記パリティ・尤度訂正器は、前記復号失敗時に、前記ＥＣＣ復号器から前記復号を失敗した前記ブロックの識別子を受け、前記失敗したブロックの前記パリティビットによる誤り検出された前記ｍビットのデータを対象として、前記尤度による訂正を行う。
【００３９】
更に、本発明は、好ましくは、前記パリティ・尤度訂正器は、前記ＥＣＣ復号器の前記誤り訂正符号語のｍ×ｎビット毎にパリティビットを計算し、且つｍ×ｎビット毎の計算されたパリティビットと前記分離された対応するパリティビットとの比較により、前記誤り検出された前記ｍビットのデータを特定する。
【００４０】
更に、本発明は、好ましくは、前記パリティ・尤度訂正器は、前記パリティビットの比較により、前記誤り検出された前記計算されたパリティビットと前記分離されたパリティビットとの加算結果からパリティラー値を計算し、前記ｍビットのデータの誤り発生位置を特定する。
【００４１】
更に、本発明は、好ましくは、前記パリティ・尤度訂正器は、前記誤り検出されたｍビットの各ビットの尤度から誤り候補ビットを特定する。
【００４２】
更に、本発明は、好ましくは、前記パリティ・尤度訂正器は、前記ｍビット単位に、前記ｍビットの各ビットの尤度から尤度の比較的低いビット位置を前記訂正候補として、抽出する。
【００４３】
更に、本発明は、好ましくは、前記パリティ・尤度訂正器は、前記パリティビットの生成多項式に従い、前記パリティラー値に対応するエラー候補位置のテーブルを有し、前記パリティラー値で前記テーブルを参照し、且つ前記参照結果と前記尤度とから、前記ｍビットのデータの誤り発生位置を特定する。
【００４４】
更に、本発明は、好ましくは、前記パリティ・尤度訂正器は、前記ｍビットのデータの誤り発生位置のデータをフリップし、前記データ保存器の前記データ列を更新する。
【発明の効果】
【００４５】
データ列を、ｍ（ｍ≧２）ビット毎に、複数ブロックにインターリーブし、誤り訂正符号のパリティを付加し、所定のビット数毎に、パリティビットを付加した連接型符号化データを作成するので、複数ブロックにインターリーブして誤り訂正符号のパリティを生成しても、回路規模の増加を防止できる。又、軟出力復号器の尤度とパリティチエック結果で、ＥＣＣ復号データ列を訂正するため、訂正性能劣化も防止できる。
【発明を実施するための最良の形態】
【００４６】
以下、本発明の実施の形態を、記録再生システム、エラー候補抽出器、符号化器、ＥＣＣ復号器、他の符号化器、他のＥＣＣ復号器、他の実施の形態の順で説明するが、本発明は、この実施の形態に限られない。
【００４７】
（記録再生システム）
図１は、本発明の一実施の形態の磁気ディスク装置の記録再生システムのブロック図である。図１に示すように、磁気ディスク装置の記録再生系は、大きく分けて、ハードディスクコントローラ（ＨＤＣ）２０３と、リードチャネル（ＲＤＣ）２０２と、プリアンプ（又はヘッドＩＣ）２０１からなる。
【００４８】
先ず、記録時には、記録データは、ＨＤＣ２０３内のＣＲＣ符号器２３７で、ＣＲＣ符号（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｏｄｅ）が付加される。その後に、記録符号器２３６が、ＭＴＲ符号（Ｍａｘｉｍｕｍ  Ｔｒａｎｓｉｔｉｏｎ  Ｒｕｎ  Ｃｏｄｅ）やＲＬＬ（Ｒｕｎ  Ｌｅｎｇｔｈ  Ｌｉｍｉｔｅｄ）符号などの拘束条件が満たされるデータ列に変換する。そして、ＥＣＣ符号器２３５は、図２以下で後述するように、インターリーブして、ＲＳパリティ列を付加する。
【００４９】
更に、パリティ符号器２３４は、図２以下で説明するように、ＥＣＣとは別のエラー検出を行うための２ビットパリティを求め、求めた全ての２ビットパリティを、ＥＣＣ符号化データ列に付加する。
【００５０】
パリティが付加されたＥＣＣ符号化されたデータ列は、ＲＤＣ２０２に入力する。ＲＤＣ２０２内の記録補償器２２９は、磁化反転が隣接する箇所で、反転間隔を多少広げる補償処理を行う。そして、ＲＤＣ２０２内のドライバ２２８は、記録補償されたデータ列をプリアンプ２０１に出力する。プリアンプ２０１では、ドライバ２１２が、図示しない記録ヘッド（ライトヘッド）のライト電流を発生し、記録ヘッドを駆動して、図示しない磁気ディスクに記録を行う。
【００５１】
一方、再生の際は、プリアンプ２０１のアンプ２１１が、再生ヘッド（リードヘッド）からのアナログ電圧を増幅した後、ＲＤＣ２０２に出力する。ＲＤＣ２０２のサーマルアスペリティ検出処理部２２１は、サーマルアスピリテイ処理した後、可変利得アンプ（ＶＧＡ）２２２が、振幅調整する。
【００５２】
その後、ローパスフィルタ（ＬＰＦ）２２３が、振幅調整されたリード信号の高周波数域をカットし、Ａ／Ｄコンバータ（ＡＤＣ）２２４が、そのアナログ出力をデジタル信号へ変換する。その後、ＦＩＲ（Ｆｉｎｉｔｅ  Ｉｍｐｕｌｓｅ  Ｒｅｓｐｏｎｓｅ）フィルタ２２５が、ＰＲ（Ｐａｒｔｉａｌ  Ｒｅｓｐｏｎｓｅ）波形等化を行った後、軟出力検出器２２６に入力する。
【００５３】
軟出力検出器（復号器）２２６は、ＳＯＶＡ（Ｓｏｆｔ  Ｏｕｔｐｕｔ  Ｖｉｔｅｒｂｉ），ＮＰＳＯＶＡ（Ｎｏｉｓｅ  Ｐｒｅｄｉｃｔｉｖｅ  Ｓｏｆｔ  Ｏｕｔｐｕｔ  Ｖｉｔｅｒｂｉ），ＢＣＪＲ（Ｂａｈｌ，Ｃｏｃｋｅ，Ｊｅｌｉｎｅｋ  ａｎｄ  Ｒａｖｉｖ  Ａｌｇｏｒｉｔｈｍ）などの軟出力検出器（復号器）で構成され、最尤復号を行う。
【００５４】
第１のパリティ・尤度訂正器２２７は、検出器２２６が求めた尤度を使用して、誤り候補の位置情報を求め、尤度と位置情報のテーブルを作成する。軟出力検出器２２６から０又は１に硬判定された復号列は、ＨＤＣ２０３に送られる。ＥＣＣ復号器２３０は、４インターリーブ構成での誤り訂正を行う。
【００５５】
復号が成功した場合は、記録復号器２３１が、記録符号器２３６の符号化と逆の復号化を行い、ＣＲＣ復号器２３２が、ＣＲＣ復号し、再生データとして出力する。
【００５６】
又、ＥＣＣ復号器２３０で復号が失敗した場合は、第２のパリティ・尤度訂正器２３３にデータが入力される。第２のパリティ・尤度訂正器２３３は、第１のパリティ・尤度訂正器２２７の尤度と位置情報テーブルを利用して、ＥＣＣの訂正が失敗したブロックの訂正を行う。
【００５７】
第２のパリティ・尤度訂正器２３３で訂正されたデータは、ＥＣＣ復号器２３０へ入力され、ＥＣＣによる誤り訂正を行う。ＥＣＣ復号器２３０で復号が成功した場合は、前述のように、記録復号器２３１、ＣＲＣ復号器２３２を経て、再生データとして出力される。一方、ＥＣＣ復号が、失敗した場合は、第２のパリティ・尤度訂正器２３３に再度データが入力され、ブロックの訂正が行われる。
【００５８】
このようにＥＣＣによる誤り訂正が失敗した場合は、尤度情報を使用して、第２のパリティ・尤度訂正器２３３とＥＣＣ復号器２３０での反復を繰り返すことによって、訂正能力を高めていくことができる。
【００５９】
ここで、ＥＣＣ復号器２３０での誤り訂正を何回か繰り返す場合があるため、図９以下で説明する高速判定ＥＣＣ回路を使用する。これにより、計算量が削減できる。
【００６０】
又、本発明では、第１のパリティ・尤度訂正器２２７は、軟出力検出器２２６から復号列の各ビットの位置と、その尤度を受け、パリティが付加されたデータ列の単位で、尤度が低い（誤りの可能性の高い）ビット位置をエラー候補として、抽出し、テーブルを作成する。
【００６１】
即ち、エラー候補として、誤りの可能性の高いビット位置を抽出するため、ＥＣＣ復号器２３０に、有効な訂正ができるエラー候補を提供できる。又、エラー候補として、誤りの可能性の高いビット位置のみを抽出するため、ＥＣＣ復号器２３０が、尤度の低い順にエラー候補を取り出すことができるように、尤度順にソートする回数を削減でき、計算量削減に有効である。
【００６２】
（符号化器）
次に、図１のＥＣＣ符号器及びパリティ符号器の構成を説明する。図２は、図１のＥＣＣ符号器２３５及びパリティ符号器２３４のブロック図、図３は、図２のインターリーブ部の動作説明図、図４は、図２のＥＣＣ符号器の動作説明図、図５乃至図７は、図２のパリティ符号器の動作説明図である。
【００６３】
図２に示すように、ＥＣＣ符号器２３５は、インターリーブ部１０２、ＥＣＣ符号器１０４、デ・インターリーブ部１０６からなる。インターリーブ部１０２は、図３に示すように、４ｋＢｙｔｅセクタのデータ列１０００を、４つのブロック１００１，１００２，１００３，１００４にインターリーブする。このインターリーブを行う際、セクタのデータ列１０００を、２０ビットのビット間隔でインターリーブを行う。
【００６４】
ＥＣＣ符号器１０４は、４つに分割された各ブロック１００１，１００２，１００３，１００４に対し、ＥＣＣ符号化を行い、図４に示すように、各ブロック１００１〜１００４に、ＲＳ符号のパリティ１０１１，１０１２，１０１３，１０１４を付加する。ＥＣＣ符号器１０４は、復号が失敗したという情報を、誤り位置多項式を求めた際に判定できるように、ｔシンボル訂正に対し、２ｔ＋１シンボルのＲＳパリティを付加することが望ましい。
【００６５】
即ち、誤り訂正数ｔのリードソロモン符号の生成多項式は、下記式（７）で表される。但し、式（１）と異なり、αから開始して、表している。
【００６６】
【数７】
2008136173.tif 000009
従って、誤り訂正数ｔ＝２０の場合は、次式（８）のような４０次の生成多項式が用いられる。
【００６７】
【数８】
2008136173.tif 000010
これに対し、本実施の形態では、誤り位置多項式計算で復号の成否を早期に判定するため、生成多項式の次数を増やして、次式（９）のような４１次の生成多項式を用いる。
【００６８】
【数９】
2008136173.tif 000011
即ち、ＥＣＣ符号化に、４１シンボルのパリティ列が生成され、１セクタのビット列（４１０シンボル）の前に挿入される。
【００６９】
デ・インターリーブ部１０６は、図４に示すように、ＲＳパリティが付加された各ブロックに対し、２０ビットの間隔で、デ・インターリーブ処理を行い、１系列のデータ列（ＲＳ符号列）へ変換する。
【００７０】
例えば、４ｋＢｙｔｅのセクタデータ列を４分割すると、１ブロックは、１ｋＢｙｔｅとなる。誤り訂正数ｔを５５シンボルとすると、２ｔ＋１シンボル（＝１１１シンボル）のＲＳパリティを付加する。
【００７１】
次に、パリティ符号器２３４は、図５に示すように、ＲＳ符号列１１００を、８０ビット（＝２０ビット＊４）の間隔で分割する。分割された各ブロック（８０ビット）に対し、図５に示すように、２ビットのパリティ１１１０，１１１１，・・・、１１１ｍ、１１１ｎを求め、全パリティをＲＳ符号列の後に挿入し、データを出力する。
【００７２】
パリティ符号器２３４のパリティの求め方を、図６に示す。尚、図６では、図５の最初の８０ビットブロックのデータからパリティを求める例を示す。図６に示すように、８０ビットブロックのデータ「１１００１・・・」を、３ビットの「１１１」で割った余りをパリティ列として、求める。ここで、３ビット「１１１」は、多項式（ｘ２＋ｘ＋１）を示している。
【００７３】
図７は、ＥＣＣ符号器２３５とパリティ符号器２３４で生成される符号の構成を示す。２０ビットのビット間隔でのインターリーブにより生成された４つのブロック１００１，１００２，１００３，１００４に、ＥＣＣ符号器により、ＲＳパリティ１０１１，１０１２，１０１３，１０１４が付加される。
【００７４】
又、２０ビット×４（４ブロック）＝８０ビットの縦方向に対し、パリティ符号器２３４により、２ビットパリティ１１１０〜１１１ｎが計算され、付加される。このため、ここで、生成される符号は、横方向がＲＳ符号による誤り訂正符号であり、縦方向がマルチパリティ（２ビットパリティ）による誤り検出符号からなる連接型の符号の構成になっている。
【００７５】
このように、４分割ブロックを、２０ビットでのインターリーブで作成し、誤り訂正及び検出符号を連接型符号とし、４分割したブロックの横方向に、ＲＳ符号による誤り訂正符号を、縦方向に、マルチパリティによる誤り検出符号を適用する。これを、セクタデータ列で見ると、横方向に８０ビット毎に、誤り検出符号が設けられ、８０ビット単位で誤りを検出でき、且つ２０ビット（８０ビットの１／４）の４インターリーブ単位で、ＲＳ符号が設けられ、４インターリーブ単位で、誤り訂正が可能となる。
【００７６】
これにより、ＥＣＣ復号失敗時に、訂正位置を、局所的に特定でき、利得向上に寄与する。ここで、２０ビット単位で、２ビットパリティとしたのは、符号化効率と訂正能力とバランスで採用したものであり、２ビットパリティなら、２０ビット単位のインターリーブが最適である。又、他の値を採用でき、例えば、４ビットパリティなら、３０ビット単位のインターリーブが最適である。
【００７７】
（復号化装置）
図８は、図１の復号化装置の基本構成のブロック図、図９は、図８の詳細ブロック図である。
【００７８】
図８に示すように、軟出力検出器２２６は、０又は１の硬判定ビット列と、各ビットの尤度（ソフトインフォーメーション）を出力する。ＥＣＣ復号器（ＲＳ復号器）２３０は、後述するように、硬判定ビット列を受け、４インターリーブし、各ブロックをＥＣＣ復号し、復号成功なら、復号列を出力する。
【００７９】
パリティ・尤度訂正器２２７，２３３は、後述するように、軟出力検出器２２６からの尤度から尤度の低いビット位置を選択且つ保持し、ＲＳ復号器２３０の復号失敗により、保持した尤度の低いビット位置から誤り位置を絞り、ビット列のその位置をフリップして、ＲＳ復号器２３０に入力する。復号失敗時に、これを反復し、訂正能力を高める。
【００８０】
図９で詳細に説明する。ＥＣＣ復号器２３０は、ＲＳ符号部・パリティ部の分割部１１０、インターリーブ部１１２、データ保存・更新部１１４、ＥＣＣ復号器１１６、デ・インターリーブ部１１８からなる。
【００８１】
ＥＣＣ復号器１１６は、シンドローム計算部２６０と、シンドローム保存部２６２と、シンドローム値更新部２６４と、誤り位置多項式作成部２６６と、チェーンサーチ実行部２６８と、誤り値計算部２７０とを備える。
【００８２】
シンドローム値計算部２６０が、検出器２２６からの復号列のシンドロームを計算し、シンドローム値保存部２６２に計算したシンドローム値を保存する。誤り位置多項式作成部２６６は、作成されたシンドローム多項式から誤り位置多項式を計算し、訂正能力を超えているかを判定する。
【００８３】
シンドローム値更新部２６４は、パリティ・尤度訂正器２３３により、データ更新されたビット列の更新部分のシンドローム値を計算し、シンドローム値保存器２６２に保存されたシンドローム値を更新する。
【００８４】
チェーンサーチ実行部２６８は、誤り位置多項式作成部２６６で、復号が失敗しないと判断された場合に、チェーンサーチにより誤り位置を求める。誤り値計算部２７０は、チェーンサーチで復号が失敗と判断されない場合に、即ち、チェーンサーチで誤り位置が特定された場合は、誤り値を計算する。
【００８５】
このように、前のシンドローム値を保存しておき、復号失敗時に、パリティ・尤度訂正器２３３で訂正された復号列の訂正部分のシンドローム値を計算して、前のシンドローム値を更新する。このため、訂正されたビット列は、シンドローム値を１から計算する必要がないので、計算量を削減できる。
【００８６】
また、後述するように、誤り位置多項式を計算した段階で、復号が失敗したかどうかを判定できるため、復号が失敗した場合は、次のビット列の復号に移ることができ、計算量が削減される。
【００８７】
次に、パリティ・尤度訂正器は、第１のパリティ・尤度訂正器２２７と、第２のパリティ・尤度訂正器２３３とからなる。第１のパリティ・尤度訂正器２２７は、後述するように、検出器２２６からの各ビットの尤度を受け、４インターリーブの各ブロック毎に、尤度の低いビット位置を抽出する。
【００８８】
第２のパリティ・尤度訂正器２３３は、後述するように、パリティ計算部１２０と、パリティ値チエック部１２２と、エラー候補テーブル保存器１２４と、エラーフリップ部１２６とからなる。
【００８９】
（第１のパリティ・尤度訂正器）
図１０は、第１のパリティ・尤度訂正器２２７のブロック図、図１１は、図１０のＲＳ符号部の尤度とパリティ部の尤度の分割動作の説明図、図１２は、図１０の候補選出部の動作説明図、図１３は、図１０のパリティ部ソート部の動作説明図、図１４は、図１０のエラー候補テーブルの説明図である。
【００９０】
図１０に示すように、第１のパリティ・尤度訂正器２２７は、尤度をブロック部の尤度と、パリティ部の尤度に分割する分割部１３０と、分割された尤度を保持するスタックテーブル１３２と、ブロック部の尤度の低いビット位置を抽出する候補抽出部１３４と、パリティ部の尤度を低い順にソートするパリティ部ソート部１３６とを有する。
【００９１】
分割部１３０は、図９の検出器（NPSOVA）により求められた各ビットの尤度を示すビット尤度列を、図１１に示すように、２０ビットブロックの尤度と２ビットパリティの尤度に分割し、スタックテーブル１３２に格納する。この分割による各ブロックは、図１１に示すように、ＲＳ符号列を、縦方向・横方向で分割した１成分（２０ビット）に対応する。
【００９２】
候補選出部１３４は、各２０ビットブロックの尤度から尤度の低いビットの位置を抽出する。図１２に示すように、スタックテーブル１３２には、２０ビットブロックの尤度値が対応するビット位置に格納されている。尤度の絶対値が高いほど、そのビットは、正しい確率が高いことを示し、低いと、そのビットは、誤っている確率が高いことを示す。誤っている確率の高いビットを抽出したいので、尤度の低いビットのみを扱う。
【００９３】
候補選出部１３４は、もっとも尤度の絶対値が小さいビット位置と、２番目に尤度の絶対値が小さいビット位置を抽出する。図１２では、スタックテーブル１３２の２０ビットの尤度値から、もっとも尤度の絶対値が小さい（０．３）のビット位置「８」と、２番目に尤度の絶対値が小さい（０．６）のビット位置「２」、「３」と、それらの尤度の絶対値「０．３」、「０．６」を抽出した状態を示す。
【００９４】
又、パリティソート部１３６は、スタックテーブル１３２の２ビットパリティの尤度値から、尤度の絶対値の小さい順に並べ、リストを作成する。
【００９５】
図１４は、図１０のエラー候補テーブル１２４を示し、選出部１３４、ソート部１３６で、作成したリストを、図１１の縦方向に従って、格納したテーブルが作成される。図１４に示されたテーブル１２４は、２０×４＝８０ビットブロックでの誤っている確率の高いビット位置のテーブルである。エラー候補テーブル１２４に、各８０ビットブロックでの誤り確率の高いビット位置テーブルを作成し、これらの結果を第２のパリティ・尤度訂正器２３３に出力する。
【００９６】
また、図１４のように、尤度の絶対値が同じになる連続ビット列は同一の行に保存され、このビット列が1つの誤り候補となる。図１４に示したように、尤度の絶対値が同じになるためには、等化ターゲット（線形等化のパラメータ）として、例えば、ＰＲ（Ｐａｒｔｉａｌ  ｒｅｓｐｏｎｓｅ）−４のように、対称となるようなものを用いると良い。
【００９７】
このようなエラー候補保存器１２４の上位エラー候補を利用して、以下で説明するＥＣＣ復号器２３０が、効率的にエラー訂正を行う。
【００９８】
（ＥＣＣ復号器）
図１５は、図９のＥＣＣ復号器の分割動作説明図、図１６は、図９のインターリーブ動作説明図、図１７は、図９の復号成功時のデ・インターリーブ動作説明図、図１８は、図９の復号失敗時のデ・インターリーブ動作説明図である。
【００９９】
図９のＥＣＣ復号器２３０の動作を、図１５乃至図１８を用いて、説明する。図９に示したように、検出器（ＮＰＳＯＶＡ）２２６の尤度値を“0”または“1”の値に硬判定された結果が、ＥＣＣ復号器２３０に代入される。
【０１００】
ＥＣＣ復号器２３０では、分割部１１０が、図１５に示すように、硬判定されたビット列を、ＲＳ符号部１１００と、２ビットパリティ部１１１１〜１１１ｎに分割する。分割されたすべての２ビットパリティ１１１１〜１１１ｎは、第２のパリティ・尤度訂正器２３３のパリティ値チエック部１２２へ出力される。
【０１０１】
次に、インターリーブ部１１２は、分割されたＲＳ符号部１１００を、図１６に示すように、２０ビット間隔で、インターリーブを行い、４つのＲＳブロック１００１、１０１１〜１００４，１０１４に分割する。即ち、図４の符号化のデ・インターリーブと逆の置き換えを行う。
【０１０２】
分割された各ＲＳブロックは、データ保存・更新部１１４に格納された後、ＥＣＣ復号器１１６により復号される。復号の結果、すべてのＲＳブロックの復号が成功した場合は、デ・インターリーブ部１１８は、図１７に示すように、各ＲＳブロックからＲＳパリティ１０１１〜１０１４を除去した後に、２０ビット間隔でのデ・インターリーブ処理を行い、セクタデータ１０００を出力して、終了する。
【０１０３】
復号の結果、いくつかのＲＳブロックでの復号が失敗した場合は、ＥＣＣ復号器２３０から復号が失敗したすべてのＲＳブロック番号を、第２のパリティ・尤度訂正器２３３に出力する。また、デ・インターリーブ部１１８は、図１８に示すように、各ＲＳブロック１００１〜１０１４からＲＳパリティ１０１１〜１０１４を除去せずに、２０ビット間隔でのデ・インターリーブ処理を行い、結果である元のＲＳ符号部１１００を、第２のパリティ・尤度訂正器２３３に出力する。
【０１０４】
次に、ＥＣＣ復号器１１６を説明する。シンドローム計算部２６０は、式（３）に従い、データ列のシンドローム多項式（多項式の係数ｓ１，ｓ２，・・・）を計算し、計算したシンドローム多項式を誤り位置多項式計算部２６６に出力する。この時、２ｔ＋１個のシンドローム係数ｓｉ（ｉ＝１，２，．．．．，２ｔ，２ｔ＋１）の値を計算する。これとともに、２回目以降の候補の復号処理で利用するため、シンドローム計算部２６０は、計算したシンドローム多項式をシンドローム値保存部２６２に格納する。
【０１０５】
誤り位置多項式計算部２６６は、バーレカンプマッシ（ＢＭ）法により、シンドローム多項式を計算する。バーレカンプマッシ法では、周知のように、多項式の初期値から始めて、生成多項式の次数と同じ回数だけ多項式の更新を繰り返すことで、誤り位置多項式を計算する。このとき、ｉ番目の多項式Ｃｉ（ｘ）を求めるには、ｉ番目のシンドロームｓｉの値が必要となる。
【０１０６】
この誤り位置多項式計算部２６６は、２ｔ番目の多項式Ｃ２ｔ（ｘ）と、２ｔ＋１番目の多項式Ｃ２ｔ＋１（ｘ）を、生成する。そして、誤り位置多項式計算部２６６は、２ｔ番目の多項式Ｃ２ｔ（ｘ）と、２ｔ＋１番目の多項式Ｃ２ｔ＋１（ｘ）の係数を比較し、２つの多項式が一致するか否かを判定する。
【０１０７】
バーレカンプマッシ法では、データ列に含まれる誤りの数がｋ個（ｋ≦ｔ）の場合、２ｋ＋１回目以降の繰り返しでは、多項式が更新されず、Ｃ２ｋ（ｘ）以降の多項式は、全て同じとなるという性質がある。従って、Ｃ２ｔ（ｘ）とＣ２ｔ＋１（ｘ）が一致すれば、誤りの数は、高々ｔ個であり、誤り訂正能力の範囲内であることが判る。逆に、Ｃ２ｔ（ｘ）とＣ２ｔ＋１（ｘ）が一致しなければ、誤り訂正能力を超えていることになる。
【０１０８】
従って、Ｃ２ｔ（ｘ）とＣ２ｔ＋１（ｘ）が一致すれば、この候補の訂正が成功すると判定し、データ列、シンドローム多項式、誤り位置多項式、及び判定結果をチェーンサーチ実行部２６８に出力する。又、Ｃ２ｔ（ｘ）とＣ２ｔ＋１（ｘ）が異なる場合は、候補の訂正が失敗したと判断して、現在復号中のＲＳブロックに対し、復号失敗のフラグを立て、第２のパリティ・尤度訂正器２３３のそのブロック番号を出力する。
【０１０９】
このように、１シンボルのパリティを余分にデータ列に付加することにより、バーレカンプマッシ法の多項式を１つ余分に計算することにより、復号途中でデータ列の訂正失敗を検出できる。なお、数シンボルのパリティを余分に付加するフォーマットを用いても良い。
【０１１０】
復号が失敗しないと判断された場合は、チェーンサーチにより誤り位置を求める。即ち、チェーンサーチ実行部２６８は、誤り位置多項式Ｃ（ｘ）を用いて、チェーンサーチを実行し、データ列上の全ての位置ｊについて、Ｃ（αｊ）の値（ｊ＝０，１，２，３，４、．．．、ｎ）を計算する。尚、Ｃ（αｊ）＝０となる位置ｊが、誤り位置である。
【０１１１】
更に、チェーンサーチ実行部２６８は、シンドローム多項式と、Ｃ（αｊ）の値を用いて、訂正の成否を判定し、訂正が成功すると判定した場合は、チェーンサーチ実行部２６８が、受け取ったデータ列、シンドローム多項式、誤り位置多項式を、誤り値計算部２７０に出力する。又、訂正が失敗すると判断した場合には、現在復号中のＲＳブロックに対し、復号失敗のフラグを立て、第２のパリティ・尤度訂正器２３３のそのブロック番号を出力する。
【０１１２】
チェーンサーチで誤り位置が特定された場合は、誤り値を計算する。即ち、誤り値計算部２７０は、シンドローム多項式と誤り位置多項式を用いて、所定のアルゴリズムで、データ列の誤り位置の誤った値を、正しい値に訂正する。そして、訂正後のデータ列を、デ・インターリーブ部１１８に出力する。
【０１１３】
即ち、復号が成功した場合には、誤り訂正されたデータ列が、ＥＣＣ復号器２３０から出力される。訂正が失敗して、２回目以降の復号をする必要が生じた場合は、シンドローム値保存部２６２に格納された情報を用いて、復号処理を行う。
【０１１４】
次に、後述するように、第２のパリティ・尤度訂正器２３２で、エラー箇所をフリップすることにより、データ更新・保存部１１４のデータを更新し、保存する。この更新されたＲＳブロックに対し、データを更新された箇所に対応して、シンドローム値更新部２６４が、シンドロームを計算し、保存部２６２に保存されていたシンドローム値を更新し、且つ更新したシンドローム多項式を、誤り位置多項式計算部２６６に出力する。
【０１１５】
以下、前述のように、誤り位置多項式計算部２６６で、誤り位置多項式を作成し、復号が失敗と判断された場合は、現在のＲＳブロックに対し、復号が失敗したというフラグを立て、第２のパリティ・尤度訂正器２３２に出力する。同様に、復号が失敗しないと判断された場合は、チェーンサーチ実行部２６８により誤り位置を求める。更に、チェーンサーチで復号が失敗と判断された場合は、同様に、現在のＲＳブロックに対し、復号が失敗したというフラグを立て、第２のパリティ・尤度訂正器２３２に出力する。チェーンサーチで誤り位置が特定された場合は、誤り値を計算する。
【０１１６】
以上のように、フリップされたビット列は、シンドローム値を１から計算する必要がないので計算量を削減できる。また誤り位置多項式を計算した段階で復号が失敗したかどうかを判定できるため、復号が失敗した場合は次の工程に移ることができ計算量が削減される。このように、このＥＣＣ復号器１１６は、従来のＥＣＣ復号器より、計算量が削減でき、高速な復号が可能となる。
【０１１７】
（第２のパリティ・尤度訂正器）
図１９は、第２のパリティ・尤度訂正器のエラーフリップ部１２６のブロック図、図２０は、図９のパリティチエックによる誤り位置特定動作を説明図、図２１は、図１９のパリティラー値の説明図、図２２は、図１９のパリティブロックの位置番号の定義の説明図、図２３は、エラー発生位置対応テーブルの説明図、図２４は、図１９のビットフリップ動作の説明図である。
【０１１８】
第２のパリティ・尤度訂正器２３３に、復号が失敗したすべてのＲＳブロック番号と、デ・インターリーブ処理が行われたＲＳ符号部１１００（図１８参照）が入力された後、図２のパリティ符号器と同様にパリティを求める。
【０１１９】
すなわち、図９のパリティ計算部１２０は、図５に示したように、ＲＳ符号部１１００を、８０ビットの間隔で分割し、分割された各ブロックに対し、図５、図６のように、２ビットのパリティを再計算する。
【０１２０】
パリティ値チエック部１２２は、分割部１１０からのパリティ符号器で生成されたパリティ値と再計算によるパリティ値が一致するかパリティ値チェックを行う。図２０は、パリティチェックの状態図を示す。図２０の例では、最初のパリティブロック列でのパリティ値が異なる値をもつ。
【０１２１】
パリティチェックで、値が一致しているパリティブロック列は、誤りなしと判断し、値が一致していないパリティブロック列は、誤りがあると判断する。ここでは、最初のパリティブロック列が、誤りがあると判断される。
【０１２２】
図１９に示すように、図９のエラーフリップ部１２６は、パリティチエック結果と復号失敗ブロック番号とからブロック内でのエラー位置を絞り込むブロック内エラー特定部１４０と、パリティラー値を計算するパリティラー値計算部１４２と、図２３で説明するエラー開始位置を格納するエラー開始位置テーブル１４４と、パリティラー値からテーブル１４４を参照して、エラー位置を特定し、エラー位置のビット値を反転するビットフリップ部１４６とを有する。
【０１２３】
図２０の例に示すように、ＲＳブロック列では、２番目のＲＳブロック１００２の復号が失敗し、他のＲＳブロック１００１，１００３，１００４では、復号が成功している。ブロック内エラー特定部１４０は、復号が成功しているＲＳブロックでは、誤りがないと判断し、復号が失敗したＲＳブロック１００２に誤りがあると判断する。この例では、２番目のＲＳブロック１００２に誤りがあると判断する。
【０１２４】
そこで、ブロック内エラー特定部１４０は、誤りは、最初のパリティブロック列と２番目のＲＳブロック１００２内にあると断定できる。即ち、図２０の灰色の領域に誤りがあると特定する。このように、誤りのある領域を、パリティ値が一致しないパリティブロック列と、復号が失敗したＲＳブロック列との共通部分に絞り込むことができる。
【０１２５】
更に、図２０では、灰色の２０ビットブロックに誤りがあると特定したが、誤りの位置のさらなる絞込みを行う。そこで、パリティ値に注目する。図２１に示すように、パリティラー値計算部１４２は、パリティ符号器で生成されたパリティ値と、再計算によるパリティ値の足し算を行った結果を計算し、パリティラー値とする。
【０１２６】
図２２に示すように、パリティブロックの位置番号を定義するとき、図２３に示すような、パリティラー値からエラーの発生位置を絞り込む関係（テーブル）がある。即ち、図６で説明したパリティ作成ルールでは、３ビットの「１１１」で８０ビットのデータ列を割り、余りの２ビットをパリティとしている。２ビットのパリティでは、パリティが一致しない場合は、パリティラー値は、「０１」、「１０」、「１１」の３通りである。
【０１２７】
このため、３つのケースで、エラー開始位置を１ビットエラー、２ビットエラーで求めると、図２３のように、３の倍数で、異なる開始位置が得られる。このため、パリティラー値からエラーの発生位置を絞り込むことができる。この例では、図２１のように、パリティラー値が「１０」であるから、１ビットエラーが発生している場合は、図２３のように、図２２の位置番号０，３，６・・・のいずれかの場所に発生し、それ以外での場所では、発生しえないことがわかる。
【０１２８】
また、２ビットエラーが発生している場合は、図２２の位置番号１，２，４，５，７，８・・・のいずれかの場所に発生し、それ以外での場所では発生しえないことがわかる。このパリティラー値によるエラーの位置の絞込みについては、３の倍数ビットのエラー以外のすべてのエラーに対して絞込みを行うことができる。
【０１２９】
ビットフリップ部１４６は、パリティラー値から図２３のエラー開始位置テーブルを参照して、１ビットエラー開始位置と、２ビットエラー開始位置を求める。そして、エラー候補テーブル１２４と、パリティラー値から求めたエラー開始位置とから、エラー箇所を特定し、エラー箇所のビットのフリップを行う。
【０１３０】
例えば、パリティブロック列のエラー候補テーブル１２４を、図１４の内容であるとする。図１４と図２２の位置情報を対応させるため、図１４の位置情報に対し、２０ビットブロック番号ｉ(ｉ＝１，２，３，４)に対し，図１４の位置ｊを、図２２の位置２０（ｉ−１）＋ｊに対応させる。
【０１３１】
図２０の例では、灰色の領域以外に誤りは発生していないため、２０ビットブロック番号１，３，４は使用しなくて良い。図１４のエラー候補テーブル１２４では、２０ビットブロック２の２番目、即ち、図２２の２２番目の場所に、１ビットエラーが発生している可能性がもっとも高いということを示している。
【０１３２】
しかし、図２３では、パリティラー値が「１０」の場合、２２番目の場所に、１ビットエラーは発生しないことを示している。そこで、ビットフリップ部１４６は、エラー候補テーブル１２４の示す候補は間違いと判断して、次に誤っている可能性が高い２５，２６番目（図１４の尤度０．５の位置５，６）の場所に、２ビットエラーが発生していると判定する。
【０１３３】
図２３でも、パリティラー値が「１０」の場合、２５，２６番目の場所の２ビットエラーの発生がありうることを示している。このため、ビットフリップ部１４６は、２５，２６番目の場所に、２ビットエラーが発生していると判断し、図２４に示すように、２５，２６番目のビットの値をフリップ（反転）する。
【０１３４】
他の誤りのあるパリティブロック列に対しても、同様の処理を行い、エラーフリップのされた２番目のＲＳブロックに、保存器１１４のデータを更新し、ＥＣＣ復号器１１６で誤り訂正を行う。２回目以降の誤り訂正では，１回目で復号が失敗したＲＳブロックのみを行えばよく、すべてのＲＳブロックの訂正を行う必要がない。
【０１３５】
又、図１４のエラー候補テーブル１２４において、パリティのビットが、もっとも誤っている可能性が高い（尤度が最も低い）ことを示す場合がある。この場合、ビットフリップ部１４６は、先に、テーブル１２４に示すパリティ値のビットをフリップし、再計算されたパリティ値と同じ値になるかを判定し、同じ値なら、パリティのビットに誤りがあったと判断して、パリティのビットをフリップする。そして、この場合は、ＲＳブロックの訂正は行わない。
【０１３６】
また，複数のＲＳブロックで復号が失敗する場合がある。この場合，図１４のエラー候補テーブル１２４からＲＳブロックの復号が失敗したブロックに対応するすべての２０ビットブロックに対し、１番目に誤っている可能性の高い候補と、２番目に誤っている可能性の高い候補を取り出す。そして、それらの候補と、図２３の開始位置とを比較して、フリップする候補を選びだす。また、１，２番目の両候補とも、図２３の開始位置と合わない場合は、候補なしと判断して、フリップ操作は行わず、終了する。
【０１３７】
このようして、エラー位置を絞り込むことができるため、１インターリーブのＥＣＣを超える性能を有することが確認できた。
【０１３８】
更に、図９のＥＣＣ復号器１１６と組み合わせることにより、ＥＣＣ復号器の訂正不可の判定の高速化と、復号対象のデータ列のシンドローム作成を高速化でき、計算量の少ない復号が可能となる。
【０１３９】
（他の符号化器）
前述の図２のパリティ符号器２３４は、図５に示したように、ＲＳ符号列１１００を、８０ビット（＝２０ビット＊４）の間隔で分割し、分割された各ブロック（８０ビット）に対し、２ビットのパリティ１１１０，１１１１，・・・、１１１ｍ、１１１ｎを求め、全パリティをＲＳ符号列の後に挿入し、データを出力していた。
【０１４０】
そして、図７に示したように、４分割ブロックを、２０ビットでのインターリーブで作成し、誤り訂正及び検出符号を連接型符号とし、４分割したブロックの横方向に、ＲＳ符号による誤り訂正符号を、縦方向に、マルチパリティによる誤り検出符号を適用していた。
【０１４１】
しかしながら、他の縦方向の分割方法も適用できる。図２５は、本発明の他のパリティ付加方法の説明図、図２６は、図２５の付加方法によるパリティ符号器２３４で生成される符号の構成の説明図である。
【０１４２】
図２５に示すように、ＲＳ符号列１１００を、３０ビットなどの任意の間隔で分割し、パリティ１１１０，１１１１、・・・・を付加する。図５では、４分割単位の８０ビットの間隔で、パリティを付加していたが、このように、８０ビット（ｍ×ｎビット）間隔に限らず、他のビット数の間隔で、パリティを付加しても良い。
【０１４３】
図２５の場合、パリティ符号器２３４で生成される符号の構成は、図２６に示すように、２つのＲＳ符号列１００１，１００２との間にパリティを挿入する形となる。また、２つにＲＳ符号列１００２，１００３との間では、２０ビットのビット間隔の間にパリティが付加される。
【０１４４】
図２７は、本発明の更に他のパリティ付加方法の説明図、図２８は、図２６の付加方法によるパリティ符号器２３４で生成される符号の構成の説明図である。
【０１４５】
図２７に示すように、先ず、ＲＳ符号列１１００を、２０ビットのビット間隔でインターリーブを行い、２つのブロックＡ，Ｂを作成する。そして、各ブロックＡ，Ｂを４０ビットの間隔で分割し、このブロックを４０ビット間隔で、パリティ１１１０，１１１１、・・・を作成する。この場合、パリティ符号器２３４で生成される符号の構成は、図２８に示すように、離れたＲＳブロック１００１と１０１３に対して、パリティ１１１０が付加されていることを意味する。
【０１４６】
このように、インターリーブして、２０ビット分離したブロック間で、パリティを作成しても良い。
【０１４７】
次に、図６では、パリティ符号器２３４のパリティの求め方を、８０ビットブロックのデータ「１１００１・・・」を、３ビットの「１１１」で割った余りをパリティ列として、求めていた。ここで、３ビット「１１１」は、多項式（ｘ２＋ｘ＋１）を示している。
【０１４８】
この実施例では、より高速にパリティを計算できる他のパリティ生成器２３４を説明する。図２９は、高速パリティ演算の説明図、図３０は、図２９の実現のためのパリティ生成器２３４の構成図である。
【０１４９】
図２９に示すように、パリティ多項式x^2+x+1の場合、図６で説明した８０ビットブロックのデータ列を、３ビットずつ、上段、中段、下段に振り分ける。そして、振り分けられたビット値について、上段、中段、下段のそれぞれに、ＸＯＲ演算を行う。図２９では、ＸＯＲ演算の結果が、上段、中段、下段で、それぞれ「０」、「１」、「０」となる。
【０１５０】
次に、ＸＯＲ演算の結果から、２ビット値をそれぞれ選択する。上段の結果が、「０」の場合は、２ビット値「００」を選択し、「１」の場合は、２ビット値「１０」を選択する。図２９の例では、上段の結果が「０」なので、「００」を選択する。
【０１５１】
中段の結果が「０」の場合は、２ビット値「００」を選択し、「１」の場合は、２ビット値「１１」を選択する。図２９の例では、中段の結果が「１」なので、「１１」を選択する。下段の結果が「０」の場合は、２ビット値「００」を選択し、「１」の場合は、２ビット値「０１」を選択する。図２９の例では、下段の結果が「０」なので、「００」を選択する。
【０１５２】
そして、それぞれ選択した２ビット値を、ビットごとに、ＸＯＲ演算を行う。図２９の例では、００＋１１＋００＝１１となる。そして、このＸＯＲした結果が求めるべきパリティの値となる。
【０１５３】
即ち、図６の式において、８０ビットの１つのデータブロックを複数のブロックに分割し、分割した各ブロックのＸＯＲを計算し、計算結果をＸＯＲすることにより、図６の計算式と同じ結果が得られる。図６の手法では、８０ビットブロックのデータからパリティを求めるために、約２４０回のＸＯＲが必要なのに対し、この実施の形態のパリティ符号化方式では、８２回のＸＯＲで済み、計算量が約１／３に減らすことができる。
【０１５４】
また，８０ビットブロックのデータからパリティを求めるために、この実施の形態のパリティ符号化方式では、８０ビットブロックのデータの両端から計算を開始することも出来、また、８０ビットブロックのデータを、複数のブロックに分割して、分割データの両端から計算を開始することも出来るため、パラレル処理に有効である。これに対し、図６に方法は、データの両端から計算を開始することは難しく、パラレル処理に不向きである。
【０１５５】
図３０は、本発明の他のパリティ付加器２３４のブロック図である。図３０に示すように、インターリーブ回路２３４−１は、８０ビットブロックのデータ列を、３ビットずつ、上段、中段、下段に振り分ける。ＸＯＲ演算器２３４−２，２３４−３，２３４−４は、振り分けられたビット値について、上段、中段、下段のそれぞれに、ＸＯＲ演算を行う。
【０１５６】
２ビット変換部２３４−５，２３４−６，２３４−７は、各々、ＸＯＲ演算器２３４−２，２３４−３，２３４−４の結果から、図２９で説明した２ビット値をそれぞれ選択する。そして、ＸＯＲ回路２３４−８は、各変換結果をＸＯＲして、パリティを生成する。
【０１５７】
（他の復号化器）
次に、本発明の他の復号化器を説明する。図３１は、本発明の他の復号化方法の説明のためパリティラーと復号失敗ブロックの関係図、図３２は、図３１の場合のエラーテーブルの説明図である。
【０１５８】
図８で説明したように、パリティ・尤度訂正器２２７，２３３は、復号が失敗したすべてのＲＳブロック番号とデ・インターリーブ処理が行われたＲＳ符号部が入力された後、パリティ符号器と同様にパリティを求める。すなわち、図７のようにＲＳ符号部を８０ビットの間隔で分割し、分割された各ブロックに対し、図２０のように、２ビットのパリティを求める。
【０１５９】
パリティを再計算した後、パリティ符号器（又は高速パリティ符号器）で生成されたパリティ値と、再計算によるパリティ値が一致するか、パリティ値チェックを行う。図３１は、パリティチェックによる復号結果の図を示す。
【０１６０】
図３１の例では、すべてのＲＳブロックの復号が失敗している点で、図２０、図２２の例とは異なる。また、図３１では、最初のパリティブロック列でのパリティ値が異なる値をもつ。パリティチェックで、値が一致しているパリティブロック列は、誤りなしと判断し、値が一致していないパリティブロック列は、誤りがあると判断する。
【０１６１】
従って、図３１では、最初のパリティブロック列は、誤りがあると判断する。また復号が成功しているＲＳブロックでは、誤りがないと判断し、復号が失敗したＲＳブロックに誤りがあると判断するため、この例では、すべてのＲＳブロックに誤りがあると判断する。図３１では、灰色の領域に誤りがある。
【０１６２】
また図３２のエラー候補テーブル１２４を見ると、図１４と異なり、どのＲＳブロックの誤り位置候補も、誤っている確率が非常に大きい。即ち、尤度が低い。このようなケースの場合は、従来のように、１つの誤り候補を絞り込んでも、誤訂正をしている可能性が高い。
【０１６３】
図３３、図３４は、本発明の他の復号化方法の説明図である。そこで、このようなケースに対しては、図３３に示すように、パリティブロック列全体に、イレージャフラグ（図３３のＥ)を立てる。又は、図３４に示すように、パリティブロック列の一部にイレージャフラグ（図３４のＥ）を立てる。
【０１６４】
そして、ＲＳ（ＥＣＣ）復号器で、イレージャとして訂正を行う。このほうが、結果として誤り性能を向上させることができる。
【０１６５】
図３５は、本発明の他の実施の形態の復号化器の説明図、図３６は、本発明の他の実施の形態の復号化器のブロック図である。図中、図９で示したものと同一のものは、同一の記号で示してある。
【０１６６】
図９で説明したシンドローム値保存部２６２とシンドローム値更新部２６４とを有しない従来のＥＣＣ復号器１１６は、通常の訂正に加え、消失訂正を行うことができる。
【０１６７】
この実施の形態では、この従来のＥＣＣ復号器１１６を使用して訂正を行う。消失訂正を行う場合は、図３６に示すように、ＥＣＣ復号器１１６に、ＲＳブロックに加え、消失位置情報を入力する必要がある。
【０１６８】
図３６の消失位置検出部１２８が、消失位置情報を求める。図３５を用いて、説明する。消失位置検出部１２８は、パリティ値チエック部１２２の結果が、不一致であり、且つエラー候補テーブル１２４のエラーブロックの候補の尤度が低い場合に、その消失位置を検出し、出力する。
【０１６９】
図３５では、上記の符号化とあわせるため、ＲＳブロックは、８００シンボル（１ｋＢｙｔｅビット）のブロックと、４０シンボルのＲＳパリティからなると仮定する。ここで、ＲＳブロックの右から０，１・・・、８３９とシンボル番号を振るとき、消失位置検出部１２８が、８３８番目と８３９番目の位置に、消失を立てる場合、ＥＣＣ復号器１１６に、消失位置のシンボル番号（８３８，８３９）を入力する。また、８３８番目、８３９番目の各シンボルのデータ値は、すべて「０」の値を代入しておく。
【０１７０】
次に、ＥＣＣ復号器１１６を説明する。シンドローム計算部２６０は、前述の式（３）に従い、データ列のシンドローム多項式（多項式の係数ｓ１，ｓ２，・・・）を計算し、計算したシンドローム多項式を、誤り位置多項式計算部２６６に出力する。この時、２ｔ（＝４０）個のシンドローム係数ｓｉ（ｉ＝１，２，．．．．，２ｔ，）の値を計算する。
【０１７１】
また、消失多項式計算部２７２は、入力された消失位置のシンボル番号（８３８、８３９）から、以下式（１０）の消失多項式を計算する。
【０１７２】
λ（ｘ）＝（１−α838・ｘ）（１−α839・ｘ）    ・・・・（１０）
そして、誤り位置多項式計算部２６６は、バーレカンプマッシ（ＢＭ）法により、上記で求めたシンドローム多項式と、消失多項式を用いて、誤り位置多項式を計算する。消失多項式を用いたＢＭ法の計算方法は、周知であり、例えば、文献：Error Control Systems for Digital Communication and Storage（著者：Stephen B. Wicker、出版社：Prentice Hall）により、詳述されている。
【０１７３】
次に、求められた誤り位置多項式を使用して、チェーンサーチ実行部２６８により誤り位置を求める。即ち、チェーンサーチ実行部２６８は、誤り位置多項式Ｃ（ｘ）を用いて、チェーンサーチを実行し、データ列上の全ての位置ｊについて、Ｃ（αｊ）の値（ｊ＝０，１，２，３，４、．．．、ｎ）を計算する。尚、Ｃ（αｊ）＝０となる位置ｊが、誤り位置である。
【０１７４】
更に、チェーンサーチ実行部２６８は、シンドローム多項式と、Ｃ（αｊ）の値を用いて、訂正の成否を判定し、訂正が成功すると判定した場合は、チェーンサーチ実行部２６８が、受け取ったデータ列、シンドローム多項式、消失多項式、誤り位置多項式を、誤り値計算部２７０に出力する。
【０１７５】
又、訂正が失敗すると判断した場合には、現在復号中のＲＳブロックに対し、復号失敗のフラグを立て、そのブロック番号を出力する。このチェーンサーチで、誤り位置が特定された場合は、誤り値を計算する。即ち、誤り値計算部２７０は、シンドローム多項式、消失多項式、誤り位置多項式を用いて、所定のアルゴリズムで、データ列の誤り位置の誤った値を、正しい値に訂正する。
【０１７６】
ここで、消失訂正を行わない場合の誤り訂正能力ｔを２０シンボルとするとき、消失訂正を行う場合の誤り訂正能力ｔ’と消失数ｈには、次の関係式が成り立つ。
【０１７７】
２ｔ’＋ｈ＝２ｔ＝４０
上記の例では、消失数が２個となるので、上記の関係式から、ｔ’＝１９が求まる。よって，上記の例では、２個の消失と、１９個の誤りを訂正できることを意味する。もし、２個の消失位置に誤りがある場合は、合計２１個のシンボルの誤りを訂正できることを意味し、消失訂正を行わない場合の誤り訂正能力以上の誤りを訂正できることを意味する。
【０１７８】
（他の実施の形態）
前述の実施の形態では、ＥＣＣ符号として、リードソロモン符号で説明したが、ＢＣＨ（Bose Chaudhari Hocquengham）符号等の他の符号を利用できる。インターリーブを４インターリーブで説明したが、２以上のインターリーブ構成に適用でき、インターリーブも２０ビット単位に限られない。パリティを２ビットとしたが、１ビットや３ビット以上も適用できる。又、ＥＣＣ復号器は、図９の構成に限らず、他の構成のものも適用できる。更に、磁気ディスク装置の記録再生装置の適用の例で説明したが、光ディスク装置等の他の媒体記憶装置や、通信装置にも適用できる。
【０１７９】
以上、本発明を、実施の形態で説明したが、本発明は、その趣旨の範囲内で種々の変形が可能であり、これを本発明の範囲から排除するものではない。
【０１８０】
（付記１）データ列を、ｍ（ｍ≧２）ビット毎に、ｎ（ｎ≧２）ブロックのデータ列にインターリーブし、インターリーブされた各ブロックのデータ列から誤り訂正符号のパリティを生成し、前記データ列に各ブロックの前記誤り訂正符号のパリティを付加して、誤り訂正符号語を作成するＥＣＣ符号器と、前記誤り訂正符号語の複数のビット数毎に、パリティビットを作成し、前記誤り訂正符号語に付加するパリティ符号器とを有することを特徴とする符号化器。
【０１８１】
（付記２）前記ＥＣＣ符号器は、前記各ブロックのデータ列を前記ｍビット毎に、デ・インターリーブし、前記データ列に復元することを特徴とする付記１の符号化器。
【０１８２】
（付記３）前記ＥＣＣ符号器は、前記データ列を、ｍ（ｍ≧２）ビット毎に、ｎ（ｎ≧２）ブロックのデータ列にインターリーブするインターリーブ部と、インターリーブされた各ブロックのデータ列から誤り訂正符号のパリティを生成するＥＣＣ符号部と、前記各ブロックのデータ列を前記ｍビット毎に、デ・インターリーブし、且つ前記データ列に復元し、且つ前記誤り訂正符号のパリティを前記復元されたデータ列に付加するデ・インターリーブ部とを有することを特徴とする付記２の符号化器。
【０１８３】
（付記４）前記ＥＣＣ符号器は、前記誤り訂正符号として、リードソロモン符号を生成することを特徴とする付記１の符号化器。
【０１８４】
（付記５）前記パリティ符号器は、多項式の割り算の余りにより前記パリティを作成することを特徴とする付記１の符号化器。
【０１８５】
（付記６）データ列を、ｍ（ｍ≧２）ビット毎に、ｎ（ｎ≧２）ブロックのデータ列にインターリーブされた各ブロックのデータ列から生成された誤り訂正符号のパリティと、誤り訂正符号語の複数のビット数毎に、作成されたパリティビットとを、前記誤り訂正符号語に付加された符号化データ列を復号化する復号化器であって、受信した前記符号化データ列を符号ビット列に復号化し、且つ各ビットの尤度を出力する軟出力復号器と、前記軟出力復号器の符号ビット列の誤り訂正符号による誤り訂正復号と、前記パリティビットによる誤り検出に従う、前記尤度による前記符号ビット列の訂正復号とを反復して行うＥＣＣ復号回路とを有することを特徴とする復号化器。
【０１８６】
（付記７）前記ＥＣＣ復号回路は、前記軟出力復号器の符号ビット列の誤り訂正符号による誤り訂正を行うＥＣＣ復号器と、前記ＥＣＣ復号器の復号失敗に応じて、前記パリティビットによる誤り検出を行い、前記誤り検出結果により、前記尤度により、前記ＥＣＣ復号器に入力される前記符号ビット列の訂正を行うパリティ・尤度訂正器とを有することを特徴とする付記６の復号化器。
【０１８７】
（付記８）前記軟出力復号器の符号ビット列から前記パリティビットを分離し、前記パリティ・尤度訂正器に出力する分割部と、前記パリティビットが分離された前記符号ビット列を、前記ｍ（ｍ≧２）ビット毎に、ｎ（ｎ≧２）ブロックのデータ列にインターリーブするインターリーブ部と、インターリーブされた各ブロックのデータ列を保存するデータ保存部とを更に有し、前記ＥＣＣ復号器は、前記データ保存部の各ブロックのデータ列を前記誤り訂正符号による誤り訂正を行い、前記パリティ・尤度訂正器は、前記データ保存器のデータ列の訂正を行うことを特徴とする付記７の復号化器。
【０１８８】
（付記９）前記パリティ・尤度訂正器は、前記復号失敗時に、前記ＥＣＣ復号器から前記復号を失敗した前記ブロックの識別子を受け、前記失敗したブロックの前記パリティビットによる誤り検出された前記ｍビットのデータを対象として、前記尤度による訂正を行うことを特徴とする付記８の復号化器。
【０１８９】
（付記１０）前記パリティ・尤度訂正器は、前記ＥＣＣ復号器の前記誤り訂正符号語のｍ×ｎビット毎にパリティビットを計算し、且つｍ×ｎビット毎の計算されたパリティビットと前記分離された対応するパリティビットとの比較により、前記誤り検出された前記ｍビットのデータを特定することを特徴とする付記９の復号化器。
【０１９０】
（付記１１）前記パリティ・尤度訂正器は、前記パリティビットの比較により、前記誤り検出された前記計算されたパリティビットと前記分離されたパリティビットとの加算結果からパリティラー値を計算し、前記ｍビットのデータの誤り発生位置を特定することを特徴とする付記１０の復号化器。
【０１９１】
（付記１２）前記パリティ・尤度訂正器は、前記誤り検出されたｍビットの各ビットの尤度から誤り候補ビットを特定することを特徴とする付記１０の復号化器。
【０１９２】
（付記１３）前記パリティ・尤度訂正器は、前記ｍビット単位に、前記ｍビットの各ビットの尤度から尤度の比較的低いビット位置を前記訂正候補として、抽出することを特徴とする付記９の復号化器。
【０１９３】
（付記１４）前記パリティ・尤度訂正器は、前記パリティビットの生成多項式に従い、前記パリティラー値に対応するエラー候補位置のテーブルを有し、前記パリティラー値で前記テーブルを参照し、且つ前記参照結果と前記尤度とから、前記ｍビットのデータの誤り発生位置を特定することを特徴とする付記１１の復号化器。
【０１９４】
（付記１５）前記パリティ・尤度訂正器は、前記ｍビットのデータの誤り発生位置のデータをフリップし、前記データ保存器の前記データ列を更新することを特徴とする付記８の復号化器。
【０１９５】
（付記１６）前記符号化データ列の前記誤り訂正符号が、リードソロモン符号からなることを特徴とする付記７の復号化器。
【０１９６】
（付記１７）データ列を、ｍ（ｍ≧２）ビット毎に、ｎ（ｎ≧２）ブロックのデータ列にインターリーブし、インターリーブされた各ブロックのデータ列から誤り訂正符号のパリティを生成し、前記データ列に各ブロックの前記誤り訂正符号のパリティを付加して、誤り訂正符号語を作成するＥＣＣ符号器と、前記誤り訂正符号語の複数のビット数毎に、パリティビットを作成し、前記誤り訂正符号語に付加するパリティ符号器とを有する符号化器と、受信した前記符号化データ列を符号ビット列に復号化し、且つ各ビットの尤度を出力する軟出力復号器と、前記軟出力復号器の符号ビット列の誤り訂正符号による誤り訂正復号と、前記パリティビットによる誤り検出に従う、前記尤度による前記符号ビット列の訂正復号とを反復して行うＥＣＣ復号回路とを有する復号化器とを有することを特徴とする符号化・復号化装置。
【０１９７】
（付記１８）前記誤り訂正符号が、リードソロモン符号からなることを特徴とする付記１７の符号化・復号化装置。
【０１９８】
（付記１９）記憶媒体にデータを書き込み且つ読み取るヘッドと、前記記憶媒体に書き込むべきデータ列を、ｍ（ｍ≧２）ビット毎に、ｎ（ｎ≧２）ブロックのデータ列にインターリーブし、インターリーブされた各ブロックのデータ列から誤り訂正符号のパリティを生成し、前記データ列に各ブロックの前記誤り訂正符号のパリティを付加するＥＣＣ符号器と、前記誤り訂正符号語の複数のビット数毎に、パリティビットを作成し、前記誤り訂正符号語に付加して、前記ヘッドに出力するパリティ符号器と、前記ヘッドから読み出した前記符号化データ列を符号ビット列に復号化し、且つ各ビットの尤度を出力する軟出力復号器と、前記軟出力復号器の符号ビット列の誤り訂正符号のパリティによる誤り訂正復号と、前記パリティビットによる誤り検出に従う、前記尤度による前記符号ビット列の訂正復号とを反復して行うＥＣＣ復号回路とを有することを特徴とする記録再生装置。
【０１９９】
（付記２０）前記誤り訂正符号が、リードソロモン符号からなることを特徴とする付記１９の記録再生装置。
【産業上の利用可能性】
【０２００】
データ列を、ｍ（ｍ≧２）ビット毎に、複数ブロックにインターリーブし、誤り訂正符号のパリティを付加し、複数のビット数毎に、パリティビットを付加した連接型符号化データを作成するので、複数ブロックにインターリーブして誤り訂正符号のパリティを生成しても、回路規模の増加を防止できる。又、軟出力復号器の尤度とパリティチエック結果で、ＥＣＣ復号データ列を訂正するため、訂正性能劣化も防止できる。このため、ＷＩＮＤＯＷＳ（登録商標）のＶＩＳＴＡ（登録商標）に使用されるロングセクタータイプの記録再生装置の回路規模増加を防止しつつ、訂正性能を向上できる。
【図面の簡単な説明】
【０２０１】
【図１】本発明の一実施形態を示す媒体記憶装置の記録再生系の構成図である。
【図２】図１の符号器のブロック図である。
【図３】図２のインターリーブ部の動作説明図である。
【図４】図２のＥＣＣ符号器の動作説明図である。
【図５】図２のパリティ符号器のパリティ付与動作の説明図である。
【図６】図２のパリティ生成式の説明図である。
【図７】図２のパリティ符号器の出力の説明図である。
【図８】図１の復号器のブロック図である。
【図９】図８の復号器の詳細ブロック図である。
【図１０】図９の第１のパリティ・尤度訂正器のブロック図である。
【図１１】図１０のＲＳ符号部の尤度とパリティ部の尤度の分割動作の説明図である。
【図１２】図１０の候補選出部の動作説明図である。
【図１３】図１０のパリティ部ソート部の動作説明図である。
【図１４】図１０のエラー候補テーブルの説明図である。
【図１５】図９のＥＣＣ復号器の分割動作説明図である。
【図１６】図９のインターリーブ動作説明図である。
【図１７】図９の復号成功時のデ・インターリーブ動作説明図である。
【図１８】図９の復号失敗時のデ・インターリーブ動作説明図である。
【図１９】図９の第２のパリティ・尤度訂正器のビットフリップ部のブロック図である。
【図２０】図９のパリティチエックによる誤り位置特定動作の説明図である。
【図２１】図１９のパリティラー値の説明図である。
【図２２】図１９のパリティブロックの位置番号の定義の説明図である。
【図２３】図１９のエラー発生位置対応テーブルの説明図である。
【図２４】図１９のビットフリップ動作の説明図である。
【図２５】本発明の他の実施の形態のパリティ付加方法の説明図である。
【図２６】図２５のパリティとＲＳ符号ブロックの関係図である。
【図２７】本発明の更に他の実施の形態のパリティ付加方法の説明図である。
【図２８】図２７のパリティとＲＳ符号ブロックの関係図である。
【図２９】本発明の他の実施の形態のパリティ付加器の説明図である。
【図３０】図２９のパリティ付加器のブロック図である。
【図３１】本発明の他の実施の形態の復号化方法の説明のためのパリティチエック結果とＲＳ復号失敗ブロックの関係図である。
【図３２】本発明の他の実施の形態の復号化方法のエラー候補テーブルの説明図である。
【図３３】本発明の他の実施の形態の復号化方法の説明図である。
【図３４】本発明の更に他の実施の形態の復号化方法の説明図である。
【図３５】本発明の他の実施の形態の復号化動作の説明図である。
【図３６】本発明の他の実施の形態の復号化器のブロック図である。
【図３７】従来の誤り訂正のための符号化動作の説明図である。
【図３８】図３７のパリティ列生成動作の説明図である。
【図３９】従来の誤り訂正動作の説明図である。
【図４０】従来の誤り訂正回路のブロック図である。
【図４１】従来の１インターリーブ構成の説明図である。
【図４２】従来の４インターリーブ構成の説明図である。
【符号の説明】
【０２０２】
１０２  インターリーブ部
１０４  ＥＣＣ符号器
１０６  デ・インターリーブ部
１１０  分割部
１１２  インターリーブ部
１１４  データ保存・更新部
１１６  ＥＣＣ復号器
１１８  デ・インターリーブ部
１２０  パリティ計算部
１２２  パリティ値チエック部
１２４  エラー候補テーブル保存器
１２６  エラーフリップ部
１３０  ブロック・パリティ尤度分割部
１３２  スタックテーブル
１３４  候補選出部
１３６  パリティ尤度ソート部
１４０  ブロック内エラー特定部
１４２  パリティラー値計算部
１４４  エラー開始位置テーブル
１４６  ビットフリップ部
２０１  プリアンプ
２０２  リードチャネル
２０３  ハードディスクコントローラ
２２６  軟出力検出器
２２７  第１のパリティ・尤度訂正器
２３０  ＥＣＣ復号器
２３３  第２のパリティ・尤度訂正器
２３４  パリティ符号器
２３５  ＥＣＣ符号器
【図１】
2008136173.tif 000012
【図２】
2008136173.tif 000013
【図３】
2008136173.tif 000014
【図４】
2008136173.tif 000015
【図５】
2008136173.tif 000016
【図６】
2008136173.tif 000017
【図７】
2008136173.tif 000018
【図８】
2008136173.tif 000019
【図９】
2008136173.tif 000020
【図１０】
2008136173.tif 000021
【図１１】
2008136173.tif 000022
【図１２】
2008136173.tif 000023
【図１３】
2008136173.tif 000024
【図１４】
2008136173.tif 000025
【図１５】
2008136173.tif 000026
【図１６】
2008136173.tif 000027
【図１７】
2008136173.tif 000028
【図１８】
2008136173.tif 000029
【図１９】
2008136173.tif 000030
【図２０】
2008136173.tif 000031
【図２１】
2008136173.tif 000032
【図２２】
2008136173.tif 000033
【図２３】
2008136173.tif 000034
【図２４】
2008136173.tif 000035
【図２５】
2008136173.tif 000036
【図２６】
2008136173.tif 000037
【図２７】
2008136173.tif 000038
【図２８】
2008136173.tif 000039
【図２９】
2008136173.tif 000040
【図３０】
2008136173.tif 000041
【図３１】
2008136173.tif 000042
【図３２】
2008136173.tif 000043
【図３３】
2008136173.tif 000044
【図３４】
2008136173.tif 000045
【図３５】
2008136173.tif 000046
【図３６】
2008136173.tif 000047
【図３７】
2008136173.tif 000048
【図３８】
2008136173.tif 000049
【図３９】
2008136173.tif 000050
【図４０】
2008136173.tif 000051
【図４１】
2008136173.tif 000052
【図４２】
2008136173.tif 000053