(57)【要約】【課題】復号対象データ列を作成する最尤復号器において、誤り訂正回路に有効なエラー候補を提供する。【解決手段】復号対象データ列を作成する検出器（２２６）と、検出器（２２６）からの尤度情報により、復号対象データ列のエラー候補として、各ビットの尤度から誤りの可能性の高いビット位置を抽出するエラー候補抽出器（２２７）を設けた。エラー候補として、誤りの可能性の高いビット位置のみを抽出するため、訂正回路が、尤度の低い順にエラー候補を取り出すことができ、且つ、尤度順にソートする回数を削減できる。【選択図】図２
2008136166.tif 000002
【特許請求の範囲】
【請求項１】
入力された信号から復号対象データ列を作成し、誤り訂正回路に出力する最尤検出器において、
前記入力信号から復号対象データ列を作成し、前記復号対象データ列の各ビットの尤度を検出する検出器と、
前記各ビットの尤度を受け、所定の閾値以下の尤度を有する任意の個数のビット位置情報を、前記尤度順に、前記誤り訂正回路の選択エラー候補として格納するエラー候補テーブルを作成するエラー候補抽出器とを有する
ことを特徴とする最尤検出器。
【請求項２】
前記エラー候補抽出器は、
前記復号対象データ列の各ビットの尤度と所定の閾値とを比較して、所定の閾値以下の尤度のビット位置を抽出する閾値判定部と、
前記抽出されたビット位置情報を、前記尤度順に、前記誤り訂正回路の選択エラー候補として格納するエラー候補テーブルを作成する上位候補選択部とを有する
ことを特徴とする請求項１の最尤検出器。
【請求項３】
前記閾値判定部は、前記抽出した所定の閾値以下の尤度のビット位置を、複数の尤度レベルに応じて、前記尤度と前記ビット位置とをスタックテーブルに格納する
ことを特徴とする請求項２の最尤検出器。
【請求項４】
前記上位候補選択部は、前記尤度レベル毎のスタックテーブルを参照して、前記尤度順に、前記誤り訂正回路の選択エラー候補のビット位置を格納する
ことを特徴とする請求項３の最尤検出器。
【請求項５】
前記エラー候補抽出器は、前記抽出されたビット位置を、前記エラー候補の開始位置とエラー長の形式で、前記テーブルを作成する
ことを特徴とする請求項１の最尤検出器。
【請求項６】
入力信号から復号対象データ列を作成し、前記復号対象データ列の各ビットの尤度を検出する検出器と、
前記各ビットの尤度を受け、所定の閾値以下の尤度を有する任意の個数のビット位置情報を、前記尤度順に、選択エラー候補として格納するエラー候補テーブルを作成するエラー候補抽出器と、
前記復号対象データ列の誤りを訂正して、出力する訂正回路とを有し、前記訂正回路は、前記訂正に失敗したと判定した時に、前記エラー候補テーブルから前記エラー候補を取り出し、新たな前記復号対象データ列を作成する
ことを特徴とする誤り訂正回路。
【請求項７】
前記エラー候補抽出器は、
前記復号対象データ列の各ビットの尤度と所定の閾値とを比較して、所定の閾値以下の尤度のビット位置を抽出する閾値判定部と、
前記抽出されたビット位置を、前記尤度順に、前記訂正回路の選択エラー候補を格納するエラー候補テーブルを作成する上位候補選択部とを有する
ことを特徴とする請求項６の誤り訂正回路。
【請求項８】
前記閾値判定部は、前記抽出した所定の閾値以下の尤度のビット位置を、複数の尤度レベルに応じて、前記尤度と前記ビット位置とをスタックテーブルに格納する
ことを特徴とする請求項７の誤り訂正回路。
【請求項９】
前記上位候補選択部は、前記テーブルに、前記尤度の絶対値が同一のビット位置を１つの選択エラー候補として、前記エラー候補テーブルに格納する
ことを特徴とする請求項７の誤り訂正回路。
【請求項１０】
前記訂正回路は、
前記復号対象データ列から１組のシンドロームを計算するシンドローム計算部と、
前記１組のシンドロームから、誤り位置多項式の係数を計算し、且つ前記誤り位置多項式の係数を用いて、訂正が成功するか否かを判定し、訂正失敗と判定した時に、前記エラー候補テーブルに前記エラー候補を要求する誤り位置多項式計算部と、
前記誤り位置多項式計算部の訂正成功の判定に応じて、前記シンドロームと前記誤り位置多項式の係数を用いて、前記復号対象データ列の誤りを訂正する訂正回路とを有する
ことを特徴とする請求項６の誤り訂正回路。
【請求項１１】
前記エラー候補抽出器は、前記抽出されたビット位置を、前記エラー候補の開始位置とエラー長の形式で、前記テーブルを作成する
ことを特徴とする請求項６の誤り訂正回路。
【請求項１２】
記憶媒体から信号を読み出すヘッドと、
前記ヘッドの読出し信号から復号対象データ列を作成し、前記復号対象データ列の各ビットの尤度を検出する検出器と、
前記各ビットの尤度を受け、所定の閾値以下の尤度を有する任意の個数のビット位置情報を、前記尤度順に、選択エラー候補として格納するエラー候補テーブルを作成するエラー候補抽出器と、
前記復号対象データ列の誤りを訂正して、出力する訂正回路とを有し、
前記訂正回路は、前記訂正に失敗したと判定した時に、前記エラー候補テーブルから前記エラー候補を取り出し、新たな前記復号対象データ列を作成する
ことを特徴とする媒体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、最尤検出器、誤り訂正回路及び媒体記憶装置に関し、特に、ＥＣＣコードを付与したデータの誤り訂正のための最尤検出器、誤り訂正回路及び媒体記憶装置に関する。
【背景技術】
【０００２】
磁気ディスク装置等の記録再生装置や通信系の分野においては、誤り訂正符号（ＥＣＣ）として、リードソロモン（Reed Solomon）符号が、用いられている。 低品質の伝送信号や記録再生信号からデータを再生する際に、データ再生の信頼性を向上するため、最尤シーケンス検出（Ｍａｘｉｍｕｎｍ−Ｌｉｋｅｌｉｈｏｏｄ  Ｓｅｑｕｅｎｃｅ  Ｄｅｔｅｃｔｉｏｎ）を用いたデータ復号技術と、ＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ  Ｃｏｄｅ）を用いた誤り訂正技術が広く普及している。
【０００３】
最尤検出器から出力されたビット列は、媒体ノイズや回路ノイズの影響のため、数ビットに誤った値が代入される。ＥＣＣは、誤りを持つビット列の誤り訂正を行い、誤り訂正されたビット列を出力する。例えば、磁気ディスク装置では、ＥＣＣの訂正に失敗した場合、リトライを行う必要があるが、リトライは極力避けたい。そこで、最尤検出器からいくつかの候補列を受け取って、候補列をＥＣＣで復号できるかを順番に試すことが提案されている（例えば、特許文献１参照）。
【０００４】
図１７は、従来の最尤シーケンスを用いた誤り訂正回路のブロック図、図１８乃至図２０は、その動作説明図である。
【０００５】
図１７に示すように、最尤検出器２０は、入力信号から最尤シーケンスに従い、複数の候補データ列を作成する。データ保存部３１は、作成された複数の候補データ列を格納する。ＥＣＣ復号器２２は、シンドローム計算部４１と、誤り位置多項式計算部４２と、チェーンサーチ実行部４３と、誤り値計算部４４を備える。
【０００６】
シンドローム計算部４１は、ＥＣＣ復号器２２に入力されたデータ列のシンドローム計算式（図１８以下で説明する）を計算する。誤り位置多項式計算部４２は、シンドローム多項式から誤り位置多項式（図１８以下で説明する）を計算する。誤り位置多項式の計算アルゴリズムとしては、例えば、ユークリッド法又はバーレカンプマッシ（Ｂｅｒｌｅｋａｍｐ  Ｍａｓｓｅｙ）法が用いられる（例えば、非特許文献１，２参照）。
【０００７】
チェーンサーチ実行部４３は、前述の誤り位置多項式を用いて、チェーンサーチを実行し、データ列上の誤りのある位置（誤り位置）を決定する。誤り値計算部４４は、誤り位置の誤った値を正しい値に訂正する。その後、復号判定部３２は、誤り値計算部４４から出力される訂正後のデータ列の正当性をチエックし、正当でなければ、訂正失敗と判定して、データ保存部３１に次の復号候補データ列を出力するように指示する。
【０００８】
図１８乃至図２０を用いて、リードソロモン符号に基づく誤り訂正を具体的に説明する。図１８に示すように、誤り訂正数ｔのリードソロモン符号は、次数２ｔの生成多項式から生成される。符号化に用いるガロア体をＧＦ（２の３乗）とし、誤り訂正数ｔを「１」とすると、リードソロモン符号の生成多項式は、原始元αを用いて、例えば、次式（１）のように表現される。
【０００９】
【数１】
2008136166.tif 000003
この場合、α０＝１から開始し、３ビットのビット列が１シンボルとして扱われ、ＥＣＣ符号化では、２ｔ（＝２）のシンボルのパリテイ列が情報列に付加される。例えば、図１８の情報列を符号化する場合、”００１“，”１１０“，”１０１“は、ガロア体表示における１、αの五乗、αの四乗にそれぞれ対応付けられる。ｊ番目のシンボルは、送信語列の多項式におけるｘｊの項の係数を表す。従って、ビット列（情報列）は、多項式ｘ４＋α５ｘ３＋α４ｘ２を表す。
【００１０】
ＥＣＣ符号化は、図１９に示すように、ビット列が表す多項式を、式（１）の生成多項式で割り算し、得られた剰余多項式α４ｘ＋α４を表すパリテイ列を、ビット列に付加する。この剰余多項式は、ｘの１次及び０次の項の係数がともにα４であるから、図１８に示すようなパリテイ列が付加され、５シンボルからなる送信語列が生成される。
【００１１】
この送信語列が、例えば、磁気ディスクに記録され、読み出された場合に、図２０に示すように、誤りを含む受信列が、ＥＣＣ復号器２２に入力される可能性がある。この受信語列は、次式（２）で示される。
【００１２】
【数２】
2008136166.tif 000004
この図２０の受信語列に対し、シンドローム計算部４１は、次式（３）によりシンドローム多項式を計算する。
【００１３】
【数３】
2008136166.tif 000005
式（３）において、シンドロームｓｉ（ｉ＝１，２、．．．．，２ｔ）は、式（１）の生成多項式Ｇ（ｘ）のｉ番目の根を、受信語多項式Ｙ（ｘ）に代入して得られる値であり、シンドローム多項式Ｓ（ｘ）は、シンドロームｓｉを、ｘｉ−１の項の係数とする多項式である。受信語列に誤りが含まれていなければ、すべてのｓｉが「０」となる。
【００１４】
次に、誤り位置多項式計算部４２は、シンドローム多項式Ｓ（ｘ）から、次式（４）の誤り位置多項式Ｃ（ｘ）を計算する。
【００１５】
【数４】
2008136166.tif 000006
次に、チェーンサーチ実行部４３は、式（４）の誤り位置多項式Ｃ（ｘ）を用いて、Ｃ（αｊ）の値（ｊ＝０，１，２，３，４）を計算し、Ｃ（αｊ）＝０となる位置ｊを、誤り位置として、出力する。図２０の例では、Ｃ（α４）＝１＋α−４・α４＝０となるので、４番目のシンボルに誤りがあることが検出できる。
【００１６】
次に、誤り値計算部４４は、式（３）のシンドローム多項式Ｓ（ｘ）と式（４）の誤り位置多項式Ｃ（ｘ）を用いて、所定のアルゴリズムで４番目のシンボルの正しい値を計算し、そのビット列を訂正する。ここでは、正しい値「１」が求められ、図２０に示す受信語列における４番目のシンボルが、αから「１」に訂正される。
【００１７】
例えば、磁気ディスク装置では、誤り訂正数ｔ＝２０となるリードソロモン符号が用いられ、ＥＣＣ符号化では、１０ビットを１シンボルとし、４０シンボルのパリテイ列が、１セクタのビット列（４０９６ビット＝４１０シンボル）の前に挿入される。この場合、シンドローム多項式Ｓ（ｘ）と誤り位置多項式Ｃ（ｘ）は、例えば、下記式（５）、（６）で表される。
【００１８】
【数５】
2008136166.tif 000007
【００１９】
【数６】
2008136166.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
【発明の開示】
【発明が解決しようとする課題】
【００２０】
実際の受信語列は、長いため、受信語多項式Ｙ（ｘ）の次数が大きくなる。従来技術では、複数の候補のデータ列を受け取って、候補のデータ列をＥＣＣで復号できるかを順番に試す必要があるため、最尤検出器の候補のデータ列の作成が適切でないと、すべての候補のデータ列でのＥＣＣ復号が失敗する可能性があり、訂正性能が上がらないという問題がある。
【００２１】
また、最尤検出器が、すべての候補を用意すると、その候補の順番をソートして、尤度の低い順に、ＥＣＣ復号器に渡す必要があり、候補のデータ列の作成のための計算量が増加し、回路規模が増大する問題がある。
【００２２】
従って、本発明の目的は、ＥＣＣ復号器に適切な候補のデータ列を与え、訂正性能を向上するための最尤検出器、誤り訂正回路及び媒体記憶装置を提供することにある。
【００２３】
又、本発明の他の目的は、少ない計算量でも、ＥＣＣ復号器に適切な候補のデータ列を与え、訂正性能を向上するための最尤検出器、誤り訂正回路及び媒体記憶装置を提供することにある。
【００２４】
更に、本発明の他の目的は、回路規模が小さくても、ＥＣＣ復号器に適切な候補のデータ列を与え、訂正性能を向上するための最尤検出器、誤り訂正回路及び媒体記憶装置を提供することにある。
【課題を解決するための手段】
【００２５】
この目的の達成のため、本発明の最尤検出器は、入力信号から復号対象データ列を作成し、前記復号対象データ列の各ビットの尤度を検出する検出器と、前記各ビットの尤度を受け、所定の閾値以下の尤度を有する任意の個数のビット位置情報を、前記尤度順に、前記誤り訂正回路の選択エラー候補として格納するエラー候補テーブルを作成するエラー候補抽出器とを有する。
【００２６】
又、本発明の誤り訂正回路は、入力信号から復号対象データ列を作成し、前記復号対象データ列の各ビットの尤度を検出する検出器と、前記各ビットの尤度を受け、所定の閾値以下の尤度を有する任意の個数のビット位置情報を、前記尤度順に、選択エラー候補として格納するエラー候補テーブルを作成するエラー候補抽出器と、前記復号対象データ列の誤りを訂正して、出力する訂正回路とを有し、前記訂正回路は、前記訂正に失敗したと判定した時に、前記エラー候補テーブルから前記エラー候補を取り出し、新たな前記復号対象データ列を作成する。
【００２７】
又、本発明の媒体記憶装置は、記憶媒体から信号を読み出すヘッドと、前記ヘッドの読出し信号から復号対象データ列を作成し、前記復号対象データ列の各ビットの尤度を検出する検出器と、前記各ビットの尤度を受け、所定の閾値以下の尤度を有する任意の個数のビット位置情報を、前記尤度順に、選択エラー候補として格納するエラー候補テーブルを作成するエラー候補抽出器と、前記復号対象データ列の誤りを訂正して、出力する訂正回路とを有し、前記訂正回路は、前記訂正に失敗したと判定した時に、前記エラー候補テーブルから前記エラー候補を取り出し、新たな前記復号対象データ列を作成する。
【００２８】
更に、本発明は、好ましくは、前記エラー候補抽出器は、前記復号対象データ列の各ビットの尤度と所定の閾値とを比較して、所定の閾値以下の尤度のビット位置を抽出する閾値判定部と、前記抽出されたビット位置を、前記尤度順に、前記誤り訂正回路の選択エラー候補を格納するエラー候補テーブルを作成する上位候補選択部とを有する。
【００２９】
更に、本発明は、好ましくは、前記閾値判定部は、前記抽出した所定の閾値以下の尤度のビット位置を、複数の尤度レベルに応じて、前記尤度と前記ビット位置とをスタックテーブルに格納する。
【００３０】
更に、本発明は、好ましくは、前記上位候補選択部は、前記尤度レベル毎のスタックテーブルを参照して、前記尤度順に、前記誤り訂正回路の選択エラー候補のビット位置を格納する。
【００３１】
更に、本発明は、好ましくは、前記上位候補選択部は、前記テーブルに、前記尤度の絶対値が同一のビット位置を１つの選択エラー候補として、前記エラー候補テーブルに格納する。
【００３２】
更に、本発明は、好ましくは、前記上位候補選択部は、前記尤度レベル毎のスタックテーブルを参照し、前記尤度レベルが比較的低いスタックテーブルのビット位置を前記エラー候補テーブルに格納し、且つ前記尤度レベルが比較的高いスタックテーブルをソートして、前記エラー候補テーブルに、ソートされたビット位置を格納する。
【００３３】
更に、本発明は、好ましくは、前記エラー候補抽出器は、前記閾値以下の尤度のビットが、所定ビット数連続していることを検出して、前記連続しているビット位置の前記テーブルへの格納を禁止する。
【００３４】
更に、本発明は、好ましくは、前記エラー候補抽出器は、前記抽出されたビット位置を、前記エラー候補の開始位置とエラー長の形式で、前記テーブルを作成する。
【００３５】
更に、本発明は、好ましくは、前記訂正回路は、前記復号対象データ列から１組のシンドロームを計算するシンドローム計算部と、前記１組のシンドロームから、誤り位置多項式の係数を計算し、且つ前記誤り位置多項式の係数を用いて、訂正が成功するか否かを判定し、訂正失敗と判定した時に、前記エラー候補テーブルに前記エラー候補を要求する誤り位置多項式計算部と、前記誤り位置多項式計算部の訂正成功の判定に応じて、前記シンドロームと前記誤り位置多項式の係数を用いて、前記復号対象データ列の誤りを訂正する訂正回路とを有する。
【００３６】
更に、本発明は、好ましくは、前記訂正回路は、前記計算したシンドロームを保持するシンドローム保持部と、前記復号対象データ列と、前記新たな復号対象データ列との差分からシンドロームの差分を計算し、前記差分で、前記保持されたシンドロームを更新するシンドローム更新部とを有する。
【発明の効果】
【００３７】
復号対象データ列のエラー候補として、各ビットの尤度から誤りの可能性の高いビット位置を抽出するため、訂正回路に、有効な訂正ができるエラー候補を提供できる。又、エラー候補として、誤りの可能性の高いビット位置のみを抽出するため、訂正回路が、尤度の低い順にエラー候補を取り出すことができるように、尤度順にソートする回数を削減でき、計算量削減に有効である。
【発明を実施するための最良の形態】
【００３８】
以下、本発明の実施の形態を、記録再生システム、エラー候補抽出器、ＥＣＣ復号器、他のエラー候補抽出器、他の実施の形態の順で説明するが、本発明は、この実施の形態に限られない。
【００３９】
（記録再生システム）
図１は、本発明の一実施の形態の磁気ディスク装置の記録再生システムのブロック図である。図１に示すように、磁気ディスク装置の記録再生系は、大きく分けて、ハードディスクコントローラ（ＨＤＣ）２０３と、リードチャネル（ＲＤＣ）２０２と、プリアンプ（又はヘッドＩＣ）２０１からなる。
【００４０】
先ず、記録時には、記録データは、ＨＤＣ２０３内のＣＲＣ符号器２３７で、ＣＲＣ符号（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｏｄｅ）が付加される。その後に、記録符号器２３６が、ＭＴＲ符号（Ｍａｘｉｍｕｍ  Ｔｒａｎｓｉｔｉｏｎ  Ｒｕｎ  Ｃｏｄｅ）やＲＬＬ（Ｒｕｎ  Ｌｅｎｇｔｈ  Ｌｉｍｉｔｅｄ）符号などの拘束条件が満たされるデータ列に変換する。そして、ＥＣＣ符号器２３５は、前述の式（１）により、パリティ列を付加する。
【００４１】
ＥＣＣ符号化されたデータ列は、ＲＤＣ２０２に入力する。ＲＤＣ２０２内の記録補償器２２９は、磁化反転が隣接する箇所で、反転間隔を多少広げる補償処理を行う。そして、ＲＤＣ２０２内のドライバ２２８は、記録補償されたデータ列をプリアンプ２０１に出力する。プリアンプ２０１では、ドライバ２１２が、図示しない記録ヘッド（ライトヘッド）のライト電流を発生し、記録ヘッドを駆動して、図示しない磁気ディスクに記録を行う。
【００４２】
一方、再生の際は、プリアンプ２０１のアンプ２１１が、再生ヘッド（リードヘッド）からのアナログ電圧を増幅した後、ＲＤＣ２０２に出力する。ＲＤＣ２０２のサーマルアスペリティ検出処理部２２１は、サーマルアスピリテイ処理した後、可変利得アンプ（ＶＧＡ）２２２が、振幅調整する。
【００４３】
その後、ローパスフィルタ（ＬＰＦ）２２３が、振幅調整されたリード信号の高周波数域をカットし、Ａ／Ｄコンバータ（ＡＤＣ）２２４が、そのアナログ出力をデジタル信号へ変換する。その後、ＦＩＲ（Ｆｉｎｉｔｅ  Ｉｍｐｕｌｓｅ  Ｒｅｓｐｏｎｓｅ）フィルタ２２５が、波形等化を行った後、最尤検出器２２６に入力する。
【００４４】
最尤検出器２２６は、ＳＯＶＡ（Ｓｏｆｔ  Ｏｕｔｐｕｔ  Ｖｉｔｅｒｂｉ），ＮＰＳＯＶＡ（Ｎｏｉｓｅ  Ｐｒｅｄｉｃｔｉｖｅ  Ｓｏｆｔ  Ｏｕｔｐｕｔ  Ｖｉｔｅｒｂｉ），ＢＣＪＲ（Ｂａｈｌ，Ｃｏｃｋｅ，Ｊｅｌｉｎｅｋ  ａｎｄ  Ｒａｖｉｖ  Ａｌｇｏｒｉｔｈｍ）などの最尤検出器で構成され、最尤復号を行う。
【００４５】
最尤検出器２２６から復号列は、ＨＤＣ２０３に送られる。これとともに、エラー候補抽出器２２７は、最尤復号で誤っている可能性の高いビット列候補を抽出し、ＨＤＣ２０３のエラー候補保存器２３１に送る。ＨＤＣ２０３のエラー候補保存器２３１は、誤っている可能性の高いビット列候補を保存する。
【００４６】
一方、最尤検出器２２６からの復号列は、ＥＣＣ復号器２３２により誤り訂正が行われる。復号が成功した場合は、記録復号器２３３が、記録符号器２３６の符号化と逆の復号化を行い、ＣＲＣ復号器２３４が、ＣＲＣ復号し、再生データとして出力する。
【００４７】
又、ＥＣＣ復号器２３２で復号が失敗した場合は、ＥＣＣ復号器２３２が、エラー候補保存器２３１内の誤っている可能性の高いビット列を数個選び出し、そのビット列の各値を‘0’から‘1’、又は‘1’から‘0’へフリップした復号列を作成する。そして、再度、ＥＣＣ復号器２３２が誤り訂正を行う。
【００４８】
復号が成功した場合は、前述のように、記録復号器２３３、ＣＲＣ復号器２３４を経て、再生データとして出力される。一方、復号が失敗した場合は、ＥＣＣ復号器２３２が、エラー候補保存器２３２から誤っている可能性の高い別のビット列を数個選び出し、そのビット列の各値をフリップした復号列を作成し、誤り訂正を行う。
【００４９】
ＥＣＣ復号器２３２での誤り訂正を何回か繰り返す場合があるため、図５以下で説明する高速判定ＥＣＣ回路を使用する。これにより、計算量が削減できる。
【００５０】
ここで、本発明では、エラー候補抽出器２２７は、最尤検出器２２６から最尤検出された復号列の各ビットの位置と、その尤度を受け、尤度が低い（誤りの可能性の高い）ビット位置をエラー候補として、抽出し、エラー候補保存器２３１に格納する。
【００５１】
即ち、エラー候補として、誤りの可能性の高いビット位置を抽出するため、ＥＣＣ復号器２３２に、有効な訂正ができるエラー候補を提供できる。又、エラー候補として、誤りの可能性の高いビット位置のみを抽出するため、ＥＣＣ復号器２３２が、尤度の低い順にエラー候補を取り出すことができるように、尤度順にソートする回数を削減でき、計算量削減に有効である。
【００５２】
（エラー候補抽出器）
次に、図１のエラー候補抽出器２２７の構成を説明する。図２は、図１のエラー候補抽出器２２７のブロック図、図３は、図２の閾値判定部の動作説明図、図４は、図２の閾値判定部と上位候補選出部２４８の動作説明図である。
【００５３】
図２に示すように、エラー候補抽出器２２７は、閾値判定部２４０と、レベル別スタックテーブル２４２と、上位候補選出部２４８を備える。前述のＳＯＶＡ，ＮＳＯＶＡ，ＢＣＪＲ等の検出器２２６は、図３に示すように、データ列（セクタ）の各ビットの尤度を計算する。そして、尤度値が高いほど、そのビットは正しい確率が高いことを示し、低いとそのビットは誤っている確率が高いことを示す。
【００５４】
誤っている確率の高いビットを、テーブル２４２に保存したいので、尤度の低いビットのみを扱えばよい。このため、閾値判定部２４０は、閾値を設け、閾値以下の尤度値をもつビット（の位置）のみを、テーブル２４２に保存する。
【００５５】
図３では、閾値を１．５に設定し、尤度値が、−１．５〜＋１．５の範囲にあるビット位置を抽出し、テーブル２４２に保存する。図３では、１セクタの２０３，２０４，２０５番目のビットの尤度値が、−１．５〜＋１．５の範囲にあるので、ビット位置（２０３，２０４，２０５）がテーブル２４２に保存される。閾値は、想定されるＳＮＲ（Ｓｉｇｎａｌ  ｔｏ  Ｎｏｉｓｅ  Ｒａｔｉｏ）の範囲と、テーブル２４２のメモリ量に応じて決定される。
【００５６】
ビット位置と尤度値を保存するスタックテーブル２４２は、図４に示すように、いくつかの尤度値の範囲（レベル）に分割されている。図４では、スタックテーブル２４２は、尤度値の絶対値が、０〜０．５、０．５〜１．０、１．０〜１．５の３つの範囲２４２−１，２４２−２，２４２−３に分割されている。
【００５７】
例えば、図３の２０３，２０４，２０５番目のビットの尤度の絶対値は、「０．６」であるので、図４のように、０．５〜１．０の範囲のテーブル２４２−２に位置情報が保存され、且つ尤度値の絶対値が保存される。
【００５８】
また、図４のように、尤度の絶対値が同じになる連続ビット列は同一の行に保存され、このビット列が1つの誤り候補となる。例えば、図３で示した２０３，２０４，２０５番目のビットが、１つの誤り候補となる。図４に示したように、尤度の絶対値が同じになるためには、等化ターゲット（線形等化のパラメータ）として、例えば、ＰＲ（Ｐａｒｔｉａｌ  ｒｅｓｐｏｎｓｅ）−４のように、対称となるようなものを用いると良い。
【００５９】
更に、記録符号として、連続のエラーを抑制するＭＴＲ符号を使用する場合には、テーブル２４２の列数を制限し、テーブルメモリを節約することができる。例えば、１６／１７ＭＴＲ符号は、１６ビットのデータを１７ビットのデータに符号化するものであり、４ビット以上の連続のエラーを発生しないようにできる。
【００６０】
このため、図４に示すように、尤度の絶対値の低い尤度「０．３」の値をもつ４連続のビット列があった場合でも、４ビット連続のエラーは、符号化原理から発生しないため、このビット列を誤り候補とはせずに無視する。即ち、閾値判定部２４０は、尤度が閾値以下のビットを抽出し、且つその抽出されたビット位置により、閾値以下のビットが４連続ビットかを判定し、４連続ビットである場合には、無視し、スタックテーブル２４２に格納しない。
【００６１】
この符号化原理を利用すれば、誤訂正を防ぐ効果があり、訂正能力の向上につながる。また、誤り候補となるのは、３連続以下のビットとなるため、スタックテーブル２４２の位置情報テーブルの列数を３以下に減らすことができ、メモリを節約する効果がある。
【００６２】
次に、上位候補選出部２４８は、スタックテーブル２４２に保存された誤り候補のうち、尤度のもっとも低い候補から数種類を選び出し、これを上位エラー候補として、エラー候補保存器２３１へ出力する。エラー候補保存器２３１は、上位エラー候補テーブルに、上位候補選出部２４８から出力された上位エラー候補を保存する。
【００６３】
図４の例では、スタックテーブル２４２から上位８個のエラー候補を選び出し、上位エラー候補テーブル２３１に保存している。スタックテーブル２４２から上位８個のエラー候補を選びだすためには、各レベルのテーブルに、何個の候補が保存されているか確かめる必要がある。
【００６４】
図４では、尤度値の絶対値が、０〜０．５の範囲では、５個の候補がある。また、尤度値の絶対値が、０．５〜１．０の範囲では、１個の候補があり、尤度値の絶対値が、１．０〜１．５の範囲では、４個の候補がある。
【００６５】
８個のエラー候補を選びだすためには、０〜０．５の範囲のすべての候補、０．５〜１．０の範囲のすべての候補、１〜１．５の範囲の４個の候補のうち尤度の低い２個の候補を選べばよい。
【００６６】
１〜１．５の範囲の４個の候補のうち尤度の低い２個の候補を選ぶには、ソートを行う必要があるが、ソートは、すべての尤度レベルの範囲で行う必要がなく、１〜１．５の範囲の尤度レベルに対してのみ行えばよい。これにより、計算量の削減の効果を発揮する。又、ソート回路を簡単化できる。
【００６７】
又、エラー候補保存器２３１のエラー候補データには、尤度値は必要なく、尤度値の低い順に、そのビット位置を格納する。これによっても、メモリ容量を節約できる。このように、ソートの回数を減らすなどの計算量削減を行うために、適切なレベルにテーブルを分割することは、有効である。
【００６８】
このようなエラー候補保存器２３１の上位エラー候補を利用して、以下で説明するＥＣＣ復号器２３２が、効率的にエラー訂正を行う。
【００６９】
（ＥＣＣ復号器）
図５は、図１のＥＣＣ復号器のブロック図、図６及び図７は、図５の誤り位置多項式計算部の処理フロー図、図８は、図５のチェーンサーチ実行部の処理フロー図、図９は、復号候補の説明図、図１０は、図５のフリップ動作の説明図、図１１は、図５のシンドローム更新部の処理フロー図である。
【００７０】
図５に示すように、ＥＣＣ復号器２３２は、シンドローム計算部２６０と、シンドローム保存部２６０と、誤り位置多項式作成部２６２と、チェーンサーチ実行部２６８と、誤り値計算部２７０とを備える。
【００７１】
シンドローム値計算部２６０が、検出器２２６からの復号列のシンドロームを計算し、シンドローム値保存部２６２に計算したシンドローム値を保存する。誤り位置多項式作成部２６２は、作成されたシンドローム多項式から誤り位置多項式を計算し、訂正能力を超えているかを判定する。
【００７２】
シンドローム値更新部２６４は、誤り位置多項式作成部２６２又はチェーンサーチ実行部２６８で、復号が失敗と判断された場合に、エラー候補保存器２３１からエラー候補を数個選び出し、対応する場所をフリップし、フリップした場所とシンドローム値保存器２６２に保存されたシンドローム値からフリップされたビット列のシンドローム値を更新する。
【００７３】
チェーンサーチ実行部２６８は、誤り位置多項式作成部２６２で、復号が失敗しないと判断された場合に、チェーンサーチにより誤り位置を求める。誤り値計算部２７０は、チェーンサーチで復号が失敗と判断されない場合に、即ち、チェーンサーチで誤り位置が特定された場合は、誤り値を計算する。
【００７４】
このように、前のシンドローム値を保存しておき、復号失敗時に、エラー候補を引き出し、復号列のその位置のビット列をフリップし、フリップしたビット列のシンドローム値を計算して、前のシンドローム値を更新する。このため、フリップされたビット列は、シンドローム値を１から計算する必要がないので、計算量を削減できる。
【００７５】
また、後述するように、誤り位置多項式を計算した段階で、復号が失敗したかどうかを判定できるため、復号が失敗した場合は、次のエラー候補のフリップに移ることができ、計算量が削減される。
【００７６】
以下、図６乃至図１１を用いて、ＥＣＣ復号器２３２を詳細に説明する。先ず、ＥＣＣ符号化を説明する。一般に、誤り訂正数ｔのリードソロモン符号の生成多項式は、下記式（７）で表される。但し、式（１）と異なり、αから開始して、表している。
【００７７】
【数７】
2008136166.tif 000009
従って、誤り訂正数ｔ＝２０の場合は、次式（８）のような４０次の生成多項式が用いられる。
【００７８】
【数８】
2008136166.tif 000010
これに対し、本実施の形態では、誤り位置多項式計算部２６６で復号の成否を早期に判定するため、生成多項式の次数を増やして、次式（９）のような４１次の生成多項式を用いる。
【００７９】
【数９】
2008136166.tif 000011
即ち、ＥＣＣ符号化に、４１シンボルのパリテイ列が生成され、１セクタのビット列（４１０シンボル）の前に挿入される。
【００８０】
一方、ＥＣＣ復号器２３２のシンドローム計算部２６０は、式（３）に従い、データ列のシンドローム多項式（多項式の係数ｓ１，ｓ２，．．）を計算し、計算したシンドローム多項式を誤り位置多項式計算部２６６に出力する。この時、２ｔ＋１個のシンドローム係数ｓｉ（ｉ＝１，２，．．．．，２ｔ，２ｔ＋１）の値を計算する。これとともに、２番目以降の候補の復号処理で利用するため、シンドローム計算部２６０は、計算したシンドローム多項式をシンドローム保存部２６２に格納する。
【００８１】
誤り位置多項式計算部２６６は、バーレカンプマッシ法により、シンドローム多項式を計算する。バーレカンプマッシ法では、周知のように、多項式の初期値から始めて、生成多項式の次数と同じ回数だけ多項式の更新を繰り返すことで、誤り位置多項式を計算する。このとき、ｉ番目の多項式Ｃｉ（ｘ）を求めるには、ｉ番目のシンドロームｓｉの値が必要となる。
【００８２】
この誤り位置多項式計算部５０４は、２ｔ番目の多項式Ｃ２ｔ（ｘ）と、２ｔ＋１番目の多項式Ｃ２ｔ＋１（ｘ）を、生成する。そして、誤り位置多項式計算部５０４は、２ｔ番目の多項式Ｃ２ｔ（ｘ）と、２ｔ＋１番目の多項式Ｃ２ｔ＋１（ｘ）の係数を比較し、２つの多項式が一致するか否かを判定する。
【００８３】
バーレカンプマッシ法では、データ列に含まれる誤りの数がｋ個（ｋ≦ｔ）の場合、２ｋ＋１回目以降の繰り返しでは、多項式が更新されず、Ｃ２ｋ（ｘ）以降の多項式は、全て同じとなるという性質がある。従って、Ｃ２ｔ（ｘ）とＣ２ｔ＋１（ｘ）が一致すれば、誤りの数は、高々ｔ個であり、誤り訂正能力の範囲内であることが判る。逆に、Ｃ２ｔ（ｘ）とＣ２ｔ＋１（ｘ）が一致しなければ、誤り訂正能力を超えていることになる。
【００８４】
従って、Ｃ２ｔ（ｘ）とＣ２ｔ＋１（ｘ）が一致すれば、この候補の訂正が成功すると判定し、データ列、シンドローム多項式、誤り位置多項式、及び判定結果をチェーンサーチ実行部２６８に出力する。又、Ｃ２ｔ（ｘ）とＣ２ｔ＋１（ｘ）が異なる場合は、候補の訂正が失敗したと判断して、データ保存部２３１に次の復号候補を出力するように指示する。
【００８５】
このように、１シンボルのパリテイを余分にデータ列に付加することにより、バーレカンプマッシ法の多項式を１つ余分に計算することにより、復号途中でデータ列の訂正失敗を検出できる。なお、数シンボルのパリテイを余分に付加するフォーマットを用いても良い。
【００８６】
図６、図７により、その処理を説明する。
【００８７】
（Ｓ８０１）誤り多項式計算部２６６は、先ず、初期化処理を行い、多項式Ｃ０（ｘ）と、多項式Ｂ（ｘ）、整数ａ，ｂを、「１」に、Ｌを「０」に初期化する。
【００８８】
（Ｓ８０２）次に、反復回数を示す制御変数ｉを「１」とおく。
【００８９】
（Ｓ８０３）そして、シンドロームｓｉの値を用いて、バーレカンプマッシ法により、（ｉ−１）番目の多項式Ｃｉ−１（ｘ）の係数から、ｉ番目の多項式Ｃｉ（ｘ）の係数を求める。ここでは、多項式Ｃｉ−１（ｘ）のｊ次の項の係数を、ｃｊ（ｊ＝１，２、．．．．，Ｌ）として、図７に示す計算アルゴリズムにより、多項式Ｃｉ（ｘ）の係数を求める。
【００９０】
（Ｓ８０４）次に、制御変数ｉと、生成多項式の次数２ｔ＋１とを比較する。
【００９１】
（Ｓ８０５）ｉ＜２ｔ＋１であれば、ｉ＝ｉ＋１に更新し、ステップＳ８０３に戻る。
【００９２】
（Ｓ８０６）一方、ｉ＝２ｔ＋１であると、多項式Ｃ２ｔ（ｘ）、Ｃ２ｔ＋１（ｘ）の係数を出力する。
【００９３】
（Ｓ９０１）次に、出力された多項式Ｃ２ｔ（ｘ）の各係数と多項式Ｃ２ｔ＋１（ｘ）の各係数を比較する。
【００９４】
（Ｓ９０２）全てに係数が一致する場合には、訂正可能と判定し、多項式Ｃ２ｔ＋１（ｘ）の係数を誤り位置多項式の係数として、チェーンサーチ実行部２６８に出力する。
【００９５】
（Ｓ９０３）一方、いずれかの係数が一致しない場合には、訂正失敗と判定し、データ保存部２３１に次の候補を要求する。
【００９６】
次に、チェーンサーチ実行部２６８は、誤り位置多項式Ｃ（ｘ）を用いて、チェーンサーチを実行し、データ列上の全ての位置ｊについて、Ｃ（αｊ）の値（ｊ＝０，１，２，３，４、．．．、ｎ）を計算する。ここでｎ+１は符号長（シンボル）を意味する。尚、Ｃ（αｊ）＝０となる位置ｊが、誤り位置である。
【００９７】
次に、チェーンサーチ実行部２６８は、シンドローム多項式と、Ｃ（αｊ）の値を用いて、訂正の成否を判定し、訂正が成功すると判定した場合は、チェーンサーチ実行部２６８が、受け取ったデータ列、シンドローム多項式、誤り位置多項式を、誤り値計算部２７０に出力する。又、訂正が失敗すると判断した場合には、データ保存部２３１に次の候補を要求する。
【００９８】
図８は、チェーンサーチ実行部２６８の判定処理フロー図である。
【００９９】
（Ｓ１００１）先ず、シンドローム多項式ｓｉ（ｉ＝１，２，．．．，２ｔ、２ｔ＋１）の値をチエックする。
【０１００】
（Ｓ１００２）いずれかのシンドロームｓｉが、「０」でなければ、次に、Ｃ（αｊ）の値（ｊ＝０，１，２，３，４、．．．、ｎ）をチエックする。
【０１０１】
（Ｓ１００３）ステップＳ１００１で、全てのシンドロームｓｉが、「０」であれば、訂正不要と判定して、判定結果を誤り値計算部２７０に出力する。
【０１０２】
（Ｓ１００４）ステップＳ１００２で、Ｃ（αｊ）の値が、「０」となるものがあれば、その位置ｊを、誤り位置として、誤り値計算部２７０に出力する。
【０１０３】
（Ｓ１００５）全てのＣ（αｊ）の値（ｊ＝０，１，２，３，４、．．．、ｎ）が、「０」でないと判定すると、訂正失敗と判定し、データ保存部２３１に次の候補を要求する。
【０１０４】
次に、誤り値計算部２７０は、シンドローム多項式と誤り位置多項式を用いて、所定のアルゴリズムで、データ列の誤り位置の誤った値を、正しい値に訂正する。そして、訂正後のデータ列からパリテイ列を削除して、後段の記録復号器（ＲＬＬ復号器）２３３（図１参照）に出力する。
【０１０５】
即ち、１番目の候補の訂正が成功する場合には、誤り訂正されたデータ列が、ＥＣＣ復号器２３２から出力される。訂正が失敗して、２番目以降の候補を復号する必要が生じた場合は、シンドローム値保存部２６２に格納された情報を用いて、復号処理を行う。
【０１０６】
この候補データの選択及びシンドローム更新について、図９乃至図１１で説明する。例えば、図９のように、ｎ＋１シンボルからなる１番目の候補と、現在の復号対象の候補を比較すると、１番目の候補におけるｊ＝１の位置のシンボルは、α１２であり、復号対象の候補における同じ位置のシンボルは、α６であるから、値が異なっていることが判る。
【０１０７】
この場合に、１番目の候補の受信語多項式Ｙ１（ｘ）と、復号対象の候補の受信語多項式Ｙ（ｘ）は、各々、下記式（１０）、（１１）で表される。
【０１０８】
【数１０】
2008136166.tif 000012
【０１０９】
【数１１】
2008136166.tif 000013
又、この受信語に対し、１番目の候補のシンドローム多項式Ｓ１（ｘ）と、復号対象の候補のシンドローム多項式Ｓ（ｘ）は、下記式（１２）、（１３）で表される。
【０１１０】
【数１２】
2008136166.tif 000014
【０１１１】
【数１３】
2008136166.tif 000015
式（１２）、（１３）において、ｓ１ｉは、１番目の候補のｉ番目のシンドロームを表し、ｓｉは、復号対象の候補のｉ番目のシンドロームを表す。この時、ｓｉは、ｓ１ｉを用いて、次式（１４）のように表現できる。
【０１１２】
【数１４】
2008136166.tif 000016
（１４）式は、シンボル値の変化量（α６−α１２）と、αｉとの積を、シンドローム値保存部２６２に格納されたｓ１ｉの値に加算することにより、更新後のシンドロームｓｉの値が得られることを示す。
【０１１３】
又、複数のシンボルの値が異なっている場合も、式（１４）と同様にして、更新後のシンドロームｓｉを計算できる。この場合に、シンドロームの差分（Ｙ（αｉ）−Ｙ１（αｉ））は、シンボル値が異なっているすべての位置ｊについて、シンボル値の変化量と、（αｉ）ｊとの積を加算した結果となる。
【０１１４】
このように更新されたシンドロームｓｉを用いて、バーレカンプマッシ法により、多項式シンドロームＣ１（ｘ）〜Ｃ２ｔ＋１（ｘ）を順次計算する。例えば、ｔ＝２０の場合に、多項式Ｃ１（ｘ）、Ｃ４０（ｘ）、Ｃ４１（ｘ）は、次式（１５）のように計算される。
【０１１５】
【数１５】
2008136166.tif 000017
式（１５）の場合には、Ｃ４０（ｘ）とＣ４１（ｘ）との係数が一致しないため、復号対象の候補の訂正は失敗と判定され、次の候補の復号を行う。
【０１１６】
この次の候補として、例えば、２つの尤度の候補を取り出す例で説明する。図１０のように、エラー候補保存器２３１に、エラー候補が、誤りの高い順に格納されている。即ち、８個のエラー候補から２つの候補を選び、フリップする。８個から２個の候補を選び出す組み合わせは、８Ｃ２＝２８通りあり、エラー候補は、図１０に示すように、組み合わせる。
【０１１７】
例えば、エラー候補Ｎｏ．１とＮｏ．２の場所を、フリップする場合は、データ列内のＮｏ．１で示す１０２番目のビットと、Ｎｏ．２で示す４１５，４１６番目のビットの値を、「０」から「１」、又は「１」から「０」へフリップする。そして、フリップされたビット列を用いて、復号を行う。
【０１１８】
図１１に示すシンドローム更新部の処理フロー図を用いて、説明する。
【０１１９】
（Ｓ７０１）前述のように、誤り位置多項式計算部２６６又はチェーンサーチ実行部２６８から次の候補の要求を受けると、前述の順番に従い、８個から２個の候補を選び、データ列中のその候補のビット位置のデータをフリップし、復号対象のデータ列を作成する。復号対象のデータ列と、シンドローム値保存部２６２の候補のデータ列を比較して、異なっているシンボルの値を取り出す。
【０１２０】
（Ｓ７０２）次に、シンボルが異なっている全ての位置ｊについて、シンボルの変化量と、（αｉ）ｊとの積の総和を計算し、その値を、シンドロームの差分（Ｙ（αｉ）−Ｙ１（αｉ））とする。
【０１２１】
（Ｓ７０３）そして、シンドローム値保存部２６２に格納されたシンドロームに差分を加算して、シンドロームを更新する。
【０１２２】
このように、エラー候補として、誤りの可能性の高いビット位置を抽出するため、ＥＣＣ復号器２３２に、有効な訂正ができるエラー候補を提供でき、復号速度を向上できる。
【０１２３】
又、エラー候補として、ＥＣＣ復号器２３２が、尤度の低い順にエラー候補を取り出すことができるように準備するので、より復号速度を向上でき、しかも、このようにしても、尤度順にソートする回数を削減でき、計算量削減に有効である。
【０１２４】
更に、図５のＥＣＣ復号器２３２と組み合わせることにより、ＥＣＣ復号器の訂正不可の判定時では、復号対象のデータ列のシンドローム作成を高速化でき、より高速で、計算量の少ない復号が可能となる。
【０１２５】
（他のエラー候補抽出器）
図１２は、図１の構成における他のエラー候補抽出器のブロック図、図１３は、図１２のスタックテーブルの説明図、図１３は、図１２の候補選出部の説明図、図１４は、図１２の候補選出部の出力フォーマット図、図１５は、図１２のエラー候補テーブルの説明図である。この例は、エラー候補テーブルのメモリ容量を削減するため、出力形式を工夫したものである。
【０１２６】
図１２に示すように、エラー候補抽出器２２７Ａは、スタックテーブル２４４と、候補選出部２４６と、エラー候補テーブル２４７とを備える。前述の図１のＳＯＶＡ，ＮＳＯＶＡ，ＢＣＪＲ等の検出器２２６は、図１３に示すように、データ列（セクタ）の各ビットの尤度を計算する。そして、尤度値が高いほど、そのビットは正しい確率が高いことを示し、低いとそのビットは誤っている確率が高いことを示す。
【０１２７】
スタックテーブル２４４は、検出器２２６からの１セクタ分の各ビットの尤度の値を格納する。図１３は、１セクタ分の各ビット位置の尤度値の列を示す。候補選出部２４６は、スタックテーブル２４６の各ビットの尤度の値から尤度の値が、低いビットの位置を抽出する。
【０１２８】
図１３に示したように、スタックテーブル２４６には、１セクタの各ビットの尤度値が、対応するビット位置に格納されている。候補選出部２４６は、誤っている確率の高いビットを抽出したいので、尤度の低いビットのみを扱う。
【０１２９】
候補選出部２４６は、もっとも尤度の絶対値が小さいビット位置、２番目に尤度の絶対値が小さいビット位置、３番目に尤度の絶対値が小さいビット位置等を抽出する。例えば、１セクタを４０９６ビットとすると、８番目に尤度が低いビット位置まで抽出することが、好適である。
【０１３０】
図１４では、候補選出部２４６が、図１３のスタックテーブル２４４の１セクタ分のビットの尤度値から、もっとも尤度の絶対値が小さい（尤度値０.３）のビット位置「８」と、２番目に尤度の絶対値が小さい（尤度値０．４）のビット位置「２２」と、３番目に尤度の絶対値が小さい（尤度値０．６）の連続したビット位置「２５」「２６」と、それらの尤度の絶対値「０．３」、「０．４」、「０．６」を抽出した状態を示す。
【０１３１】
候補選出部２４６は、図１４に示したように、抽出したビット位置を、尤度順に並べたリストを作成する。そして、候補選出部２４６は、尤度の小さい順に、エラー候補１，２，３、・・・とし、作成したリストを、所定の出力形式に変換し、エラー候補テーブル２４７を作成する。
【０１３２】
図１５に示すように、エラー候補情報として、変換される出力形式は、誤っている確率の高い候補のビット開始位置と、エラー長とからなる。候補選出部２４６は、エラー候補テーブル２４７に、１セクタで誤っている確率の高い候補のビット開始位置とエラー長からなるテーブルを作成し、これらの結果を、ＨＤＣ２０３のエラー候補保存器２３１に出力する。
【０１３３】
出力形式は、例えば、図１５に示すように、エラー候補情報として、１５ビットからなり、前段の１３ビットは、エラー開始位置が代入され、後段の２ビットは、エラー長が代入される。
【０１３４】
図１６により、リストの変換方法を次に示す。エラー候補１のビット位置「８」は、１セクタの８ビット目に、１ビットエラーがあることを示すので、最初の１３ビットには、８の２進数表現「０００００００００１００」が代入され、残り２ビットは、エラー長が１ビットであるから「０１」が代入される。
【０１３５】
エラー候補２のビット位置「２２」は、２２ビット目に、１ビットエラーがあることを示すので、最初の１３ビットには、２２の２進数表現「００００００００１０１１０」が代入され、残り３ビットは、エラー長が１ビットであるから、「０１」が代入される。
【０１３６】
エラー候補３のビット位置「２５」「２６」は、２５、２６ビット目に、２ビットエラーがあることを示すので、最初の１３ビットにはエラー開始位置２５の２進数表現「００００００００１１００１」が代入され、残り３ビットは、エラー長が２ビットであるから、「１０」が代入される。
【０１３７】
エラー長は、２ビットで表現されるため、最長エラーは、３ビットまでの対応となる簡略型である。しかし、図４の例と同様に、記録符号として、連続のエラーを抑制するＭＴＲ符号を使用する場合には、例えば、１６／１７ＭＴＲ符号は、１６ビットのデータを１７ビットのデータに符号化する場合には、４ビット以上の連続のエラーを発生しないようにできる。このため、ＭＴＲを使用する場合には、簡略型でない。
【０１３８】
このため、図１６においても、尤度の絶対値の低い値をもつ４連続のビット列があった場合でも、４ビット連続のエラーは、符号化原理から発生しないため、このビット列を誤り候補とはせずに、無視する。
【０１３９】
このように、出力形式を、エラー候補のビット開始位置と、エラー長で構成することにより、エラー候補テーブルのメモリ量の削減が可能となり、リードチャネル２０２の構成を簡素化できる。例えば、前述のビット位置を１３ビット表現する場合には、図４のケースでは、２４×１３＝３１２ビットの容量が必要となる。一方、図４のケースと同様の場合では、本実施例では、８×１５＝１２０ビットで済み、約１／３のメモリ容量で良い。
【０１４０】
（他の実施の形態）
前述の実施の形態では、エラー候補を、尤度レベルで、２つ選択しているが、１つでも、３つ以上であっても良い。又、ＥＣＣ復号器は、図５の構成に限らず、他の構成のものも適用できる。更に、磁気ディスク装置の記録再生装置の適用の例で説明したが、光ディスク装置等の他の媒体記憶装置や、通信装置にも適用できる。
【０１４１】
以上、本発明を、実施の形態で説明したが、本発明は、その趣旨の範囲内で種々の変形が可能であり、これを本発明の範囲から排除するものではない。
【０１４２】
（付記１）入力された信号から復号対象データ列を作成し、誤り訂正回路に出力する最尤検出器において、前記入力信号から復号対象データ列を作成し、前記復号対象データ列の各ビットの尤度を検出する検出器と、前記各ビットの尤度を受け、所定の閾値以下の尤度を有する任意の個数のビット位置情報を、前記尤度順に、エラー候補テーブルに格納し、前記誤り訂正回路の選択エラー候補として出力するエラー候補抽出器とを有することを特徴とする最尤検出器。
【０１４３】
（付記２）前記エラー候補抽出器は、前記復号対象データ列の各ビットの尤度と所定の閾値とを比較して、所定の閾値以下の尤度のビット位置を抽出する閾値判定部と、前記抽出されたビット位置を、前記尤度順に、前記誤り訂正回路の選択エラー候補として格納するエラー候補テーブルを作成する上位候補選択部とを有することを特徴とする付記１の最尤検出器。
【０１４４】
（付記３）前記閾値判定部は、前記抽出した所定の閾値以下の尤度のビット位置を、複数の尤度レベルに応じて、前記尤度と前記ビット位置とをスタックテーブルに格納することを特徴とする付記２の最尤検出器。
【０１４５】
（付記４）前記上位候補選択部は、前記尤度レベル毎のスタックテーブルを参照して、前記尤度順に、前記誤り訂正回路の選択エラー候補のビット位置を格納することを特徴とする付記３の最尤検出器。
【０１４６】
（付記５）前記上位候補選択部は、前記テーブルに、前記尤度の絶対値が同一のビット位置を１つの選択エラー候補として、前記エラー候補テーブルに格納することを特徴とする付記２の最尤検出器。
【０１４７】
（付記６）前記上位候補選択部は、前記尤度レベル毎のスタックテーブルを参照し、前記尤度レベルが比較的低いスタックテーブルのビット位置を前記エラー候補テーブルに格納し、且つ前記尤度レベルが比較的高いスタックテーブルをソートして、前記エラー候補テーブルに、ソートされたビット位置を格納することを特徴とする付記４の最尤検出器。
【０１４８】
（付記７）前記エラー候補抽出器は、前記閾値以下の尤度のビットが、所定ビット数連続していることを検出して、前記連続しているビット位置の前記テーブルへの格納を禁止することを特徴とする付記１の最尤検出器。
【０１４９】
（付記８）前記エラー候補抽出器は、前記抽出されたビット位置を、前記エラー候補の開始位置とエラー長の形式で、前記テーブルを作成することを特徴とする付記１の最尤検出器。
【０１５０】
（付記９）入力信号から復号対象データ列を作成し、前記復号対象データ列の各ビットの尤度を検出する検出器と、前記各ビットの尤度を受け、所定の閾値以下の尤度を有する任意の個数のビット位置情報を、前記尤度順に、選択エラー候補として格納するエラー候補テーブルを作成するエラー候補抽出器と、前記復号対象データ列の誤りを訂正して、出力する訂正回路とを有し、前記訂正回路は、前記訂正に失敗したと判定した時に、前記エラー候補テーブルから前記エラー候補を取り出し、新たな前記復号対象データ列を作成することを特徴とする誤り訂正回路。
【０１５１】
（付記１０）前記エラー候補抽出器は、前記復号対象データ列の各ビットの尤度と所定の閾値とを比較して、所定の閾値以下の尤度のビット位置を抽出する閾値判定部と、前記抽出されたビット位置を、前記尤度順に、前記訂正回路の選択エラー候補を格納するエラー候補テーブルを作成する上位候補選択部とを有することを特徴とする付記９の誤り訂正回路。
【０１５２】
（付記１１）前記閾値判定部は、前記抽出した所定の閾値以下の尤度のビット位置を、複数の尤度レベルに応じて、前記尤度と前記ビット位置とをスタックテーブルに格納することを特徴とする付記１０の誤り訂正回路。
【０１５３】
（付記１２）前記上位候補選択部は、前記尤度レベル毎のスタックテーブルを参照して、前記尤度順に、前記訂正回路の選択エラー候補のビット位置を格納することを特徴とする付記１１の誤り訂正回路。
【０１５４】
（付記１３）前記上位候補選択部は、前記テーブルに、前記尤度の絶対値が同一のビット位置を１つの選択エラー候補として、前記エラー候補テーブルに格納することを特徴とする付記１０の誤り訂正回路。
【０１５５】
（付記１４）前記上位候補選択部は、前記尤度レベル毎のスタックテーブルを参照し、前記尤度レベルが比較的低いスタックテーブルのビット位置を前記エラー候補テーブルに格納し、且つ前記尤度レベルが比較的高いスタックテーブルをソートして、前記エラー候補テーブルに、ソートされたビット位置を格納することを特徴とする付記１２の誤り訂正回路。
【０１５６】
（付記１５）前記エラー候補抽出器は、前記閾値以下の尤度のビットが、所定ビット数連続していることを検出して、前記連続しているビット位置の前記テーブルへの格納を禁止することを特徴とする付記９の誤り訂正回路。
【０１５７】
（付記１６）前記訂正回路は、前記復号対象データ列から１組のシンドロームを計算するシンドローム計算部と、前記１組のシンドロームから、誤り位置多項式の係数を計算し、且つ前記誤り位置多項式の係数を用いて、訂正が成功するか否かを判定し、訂正失敗と判定した時に、前記エラー候補テーブルに前記エラー候補を要求する誤り位置多項式計算部と、前記誤り位置多項式計算部の訂正成功の判定に応じて、前記シンドロームと前記誤り位置多項式の係数を用いて、前記復号対象データ列の誤りを訂正する訂正回路とを有することを特徴とする付記９の誤り訂正回路。
【０１５８】
（付記１７）前記訂正回路は、前記計算したシンドロームを保持するシンドローム保持部と、前記復号対象データ列と、前記新たな復号対象データ列との差分からシンドロームの差分を計算し、前記差分で、前記保持されたシンドロームを更新するシンドローム更新部とを有することを特徴とする付記１６の誤り訂正回路。
【０１５９】
（付記１８）前記エラー候補抽出器は、前記抽出されたビット位置を、前記エラー候補の開始位置とエラー長の形式で、前記テーブルを作成することを特徴とする付記９の誤り訂正回路。
【０１６０】
（付記１９）記憶媒体から信号を読み出すヘッドと、前記ヘッドの読出し信号から復号対象データ列を作成し、前記復号対象データ列の各ビットの尤度を検出する検出器と、前記各ビットの尤度を受け、所定の閾値以下の尤度を有する任意の個数のビット位置情報を、前記尤度順に、選択エラー候補として格納するエラー候補テーブルを作成するエラー候補抽出器と、前記復号対象データ列の誤りを訂正して、出力する訂正回路とを有し、前記訂正回路は、前記訂正に失敗したと判定した時に、前記エラー候補テーブルから前記エラー候補を取り出し、新たな前記復号対象データ列を作成することを特徴とする媒体記憶装置。
【０１６１】
（付記２０）前記エラー候補抽出器は、前記復号対象データ列の各ビットの尤度と所定の閾値とを比較して、所定の閾値以下の尤度のビット位置を抽出する閾値判定部と、前記抽出されたビット位置を、前記尤度順に、前記訂正回路の選択エラー候補を格納するエラー候補テーブルを作成する上位候補選択部とを有することを特徴とする付記１９の媒体記憶装置。
【０１６２】
（付記２１）前記訂正回路は、前記復号対象データ列から１組のシンドロームを計算するシンドローム計算部と、前記１組のシンドロームから、誤り位置多項式の係数を計算し、且つ前記誤り位置多項式の係数を用いて、訂正が成功するか否かを判定し、訂正失敗と判定した時に、前記エラー候補テーブルに前記エラー候補を要求する誤り位置多項式計算部と、前記誤り位置多項式計算部の訂正成功の判定に応じて、前記シンドロームと前記誤り位置多項式の係数を用いて、前記復号対象データ列の誤りを訂正する訂正回路とを有することを特徴とする付記１９の媒体記憶装置。
【０１６３】
（付記２２）前記訂正回路は、前記計算したシンドロームを保持するシンドローム保持部と、前記復号対象データ列と、前記新たな復号対象データ列との差分からシンドロームの差分を計算し、前記差分で、前記保持されたシンドロームを更新するシンドローム更新部とを有することを特徴とする付記１９の媒体記憶装置。
【０１６４】
（付記２３）前記エラー候補抽出器は、前記抽出されたビット位置を、前記エラー候補の開始位置とエラー長の形式で、前記テーブルを作成することを特徴とする付記１９の媒体記憶装置。
【産業上の利用可能性】
【０１６５】
復号対象データ列のエラー候補として、各ビットの尤度から誤りの可能性の高いビット位置を抽出するため、訂正回路に、有効な訂正ができるエラー候補を提供できる。又、エラー候補として、誤りの可能性の高いビット位置のみを抽出するため、訂正回路が、尤度の低い順にエラー候補を取り出すことができるように、尤度順にソートする回数を削減でき、計算量削減に有効である。このため、復号速度を少ない計算量で向上できる。
【図面の簡単な説明】
【０１６６】
【図１】本発明の一実施形態を示す媒体記憶装置の記録再生系の構成図である。
【図２】図１のエラー候補抽出器のブロック図である。
【図３】図２の閾値判定部の動作説明図である。
【図４】図１の上位候補選出部の動作説明図である。
【図５】図１のＥＣＣ復号器のブロック図である。
【図６】図５の誤り位置多項式計算部の処理フロー図である。
【図７】図６の誤り位置多項式の計算アルゴリズムの説明図である。
【図８】図５のチェーンサーチ実行部の処理フロー図である。
【図９】図５のＥＣＣ復号器の動作説明図である。
【図１０】図５のシンドローム更新部の動作説明図である。
【図１１】図５のシンドローム更新部の処理フロー図である。
【図１２】図１のエラー候補抽出器の他の実施の形態のブロック図である。
【図１３】図１２のスタックテーブルの動作説明図である。
【図１４】図１２の上位候補選出部の動作説明図である。
【図１５】図１２の上位候補選出部の出力形式の説明図である。
【図１６】図１２のエラー候補テーブルの説明図である。
【図１７】従来の誤り訂正回路のブロック図である。
【図１８】従来の誤り訂正のための符号化動作の説明図である。
【図１９】図１８のパリテイ列生成動作の説明図である。
【図２０】従来の誤り訂正動作の説明図である。
【符号の説明】
【０１６７】
２０１  プリアンプ
２０２  リードチャネル
２０３  ハードディスクコントローラ
２２６  検出器
２２７  エラー候補抽出器
２３１  エラー候補保存器
２３２  ＥＣＣ復号器
２４０  閾値判定部
２４２  レベル別スタックテーブル
２４８  上位候補選出部
２４４  スタックテーブル
２４６  候補選出部
２４７  エラー候補テーブル
【図１】
2008136166.tif 000018
【図２】
2008136166.tif 000019
【図３】
2008136166.tif 000020
【図４】
2008136166.tif 000021
【図５】
2008136166.tif 000022
【図６】
2008136166.tif 000023
【図７】
2008136166.tif 000024
【図８】
2008136166.tif 000025
【図９】
2008136166.tif 000026
【図１０】
2008136166.tif 000027
【図１１】
2008136166.tif 000028
【図１２】
2008136166.tif 000029
【図１３】
2008136166.tif 000030
【図１４】
2008136166.tif 000031
【図１５】
2008136166.tif 000032
【図１６】
2008136166.tif 000033
【図１７】
2008136166.tif 000034
【図１８】
2008136166.tif 000035
【図１９】
2008136166.tif 000036
【図２０】
2008136166.tif 000037