(57)【要約】【課題】データ記憶装置において、引き起こされるエラー伝搬がより少なく、複雑さの度合いも高くない、誤り訂正の反復的技術が望まれる。また、エラーフロアを制御可能な、誤り訂正の反復的技術も望まれる。【解決手段】データ記憶装置上に記録されたデータを反復的に復号化する技術が提供される。反復デコーダは、復号化を複数回反復させることによってデータを復号化して、誤りを訂正する。反復デコーダによる複数回の反復において、後処理ブロックはソフト情報を生成する。デコーダは、最小和復号化アルゴリズムを低密度・パリティ・チェック（ＬＤＰＣ）コードに適用することによって、前記ソフト情報および更新済みソフト情報に基づく外的情報を生成する。【選択図】図２
2008257842.tif 000002
【特許請求の範囲】
【請求項１】
データ記憶媒体上に記録されたデータに含まれる誤りを訂正する反復デコーダを有するデータ記憶装置であって、前記反復デコーダの複数の反復において、
後処理ブロックは、前記データに対するソフト情報を生成し、
最小和デコーダは、最小和復号化アルゴリズムを低密度・パリティ・チェック・コードに適用することによって、前記ソフト情報および更新済みソフト情報に基づく外的情報を生成することを特徴とするデータ記憶装置。
【請求項２】
請求項１記載のデータ記憶装置において、
前記反復デコーダの第１の反復において、第１の検出器は、前記データに整合済みビタビアルゴリズムを実行し、前記第１の検出器の出力ストリームは、前記第１の反復における前記後処理ブロックに送信されることを特徴とするデータ記憶装置。
【請求項３】
請求項２記載のデータ記憶装置において、
前記反復デコーダの第２の反復において、第２の検出器は、前記データに整合済みビタビアルゴリズムを実行し、前記第２の検出器の出力ストリームは、前記第２の反復における前記後処理ブロックに送信されることを特徴とするデータ記憶装置。
【請求項４】
請求項１記載のデータ記憶装置において、
硬判定デコーダは、前記後処理ブロックからの前記ソフト情報を使用して前記データを復号化することを特徴とするデータ記憶装置。
【請求項５】
請求項４記載のデータ記憶装置において、
前記最小和デコーダによって生成された早期停止パラメータが閾値よりも小さい場合、前記反復デコーダは追加の反復を実行しないことを特徴とするデータ記憶装置。
【請求項６】
請求項２記載のデータ記憶装置において、
前記反復デコーダの第１の反復において、目標フィルタは前記第１の検出器の出力ストリームをフィルタにかけ、
加算器は、前記目標フィルタの出力ストリームを、前記反復デコーダの入力ストリームの等価済みサンプルに加え、
ロング・マッチ・フィルタは、前記加算器の出力ストリームをフィルタにかけ、ここで、前記ロング・マッチ・フィルタの出力ストリームは前記後処理ブロックに送信されることを特徴とするデータ記憶装置。
【請求項７】
請求項１記載のデータ記憶装置において、
前記反復デコーダから受信されるデータを復号化するリードソロモンデコーダをさらに有することを特徴とするデータ記憶装置。
【請求項８】
請求項１記載のデータ記憶装置において、
前記データ記憶装置はハードディスクドライブであることを特徴とするデータ記憶装置。
【請求項９】
請求項１記載のデータ記憶装置において、
停止条件が満たされない場合、前記反復デコーダは反復を少なくとも３回実行することを特徴とするデータ記憶装置。
【請求項１０】
請求項１記載のデータ記憶装置において、
前記反復デコーダの第２の反復において、
乗算器は、前記反復デコーダの第１の反復からの外的情報にスケール係数を乗じて、スケール変更済み外的情報を生成し、
前記第２の反復における前記後処理ブロックは、ポストプロセッサと加算器とを有し、ここで、前記加算器は、前記ポストプロセッサの出力ストリームを前記スケール変更済み外的情報に加えて、前記ソフト情報を生成することを特徴とするデータ記憶装置。
【請求項１１】
反復デコーダを使用してデータ記憶装置のデータに含まれる誤りを訂正する方法であって、
前記反復デコーダによる複数回の反復において、前記方法は、
後処理ブロックを使用して前記データに関するソフト情報を生成するステップと、
最小和復号化アルゴリズムを低密度・パリティ・チェック・コードに適用する最小和デコーダを使用して、前記ソフト情報と更新済みソフト情報との差に基づく外的情報を生成するステップとを含むことを特徴とする方法。
【請求項１２】
請求項１１に記載の方法において、
前記反復デコーダによる第１の反復において、前記方法は、
第１の検出器を使用して前記データに整合済みビタビアルゴリズムを実行するステップをさらに含み、ここで、前記第１の検出器の出力ストリームは前記後処理ブロックに送信されることを特徴とする方法。
【請求項１３】
請求項１２に記載の方法において、
前記第１の反復において、前記方法は、
第１の目標フィルタを使用して、前記第１の検出器の出力ストリームをフィルタにかけるステップと、
第１の加算器を使用して、前記第１の目標フィルタの出力ストリームを、前記データを表す等価済みサンプルに加えるステップとをさらに含むことを特徴とする方法。
【請求項１４】
請求項１３に記載の方法において、
前記第１の反復において、前記方法は、
第１のロング・マッチ・フィルタを使用して、前記第１の加算器の出力ストリームをフィルタにかけるステップと、
前記第１のロング・マッチ・フィルタの出力ストリームを前記後処理ブロックに送信するステップとをさらに含むことを特徴とする方法。
【請求項１５】
請求項１４に記載の方法において、
前記反復デコーダによる第２の反復において、前記方法は、
第２の目標フィルタを使用して、前記第１の反復の出力ストリームをフィルタにかけるステップと、
第２の加算器を使用して、前記第２の目標フィルタの出力ストリームを前記等価済みサンプルに加えるステップと、
第２のロング・マッチ・フィルタを使用して、前記第２の加算器の出力ストリームをフィルタにかけるステップと、
乗算器を使用して、前記第１の反復において前記最小和デコーダによって生成された前記外的情報にスケール係数を乗じることによって、スケール変更済み外的情報を生成するステップと、
第３の加算器を使用して、前記スケール変更済み外的情報を、前記第２のロング・マッチ・フィルタの出力ストリームに加えるステップと、
前記第３の加算器の出力ストリームを、前記第２の反復における後処理ブロックに送信するステップとをさらに含み、ここで、前記第２の反復における前記後処理ブロックは、ポストプロセッサと、第４の加算器とを有し、前記第４の加算器は、前記ポストプロセッサの出力ストリームを前記スケール変更済み外的情報に加えて、前記ソフト情報を生成することを特徴とする方法。
【請求項１６】
請求項１１に記載の方法において、
前記反復デコーダによる少なくとも１回の反復において、前記方法は、
前記後処理ブロックからの前記ソフト情報を使用して、硬判定復号化を実行するステップをさらに含むことを特徴とする方法。
【請求項１７】
請求項１１に記載の方法において、
停止条件が満たされない場合、前記反復デコーダは反復を少なくとも３回実行することを特徴とする方法。
【請求項１８】
請求項１１に記載の方法において、
前記反復デコーダによる反復において、前記方法は、
前記最小和デコーダによって生成された前記外的情報に硬判定復号化を実行して、前記反復デコーダの後続の反復における後処理ブロックに送信されるシンボルを生成するステップをさらに含むことを特徴とする方法。
【請求項１９】
ハードディスク上に記録されたデータに含まれる誤りを訂正する反復デコーダを有するハードディスクドライブであって、
前記反復デコーダは、
前記反復デコーダの第１の反復において、前記データに対する第１のソフト情報を生成する第１の後処理ブロックと、
最小和復号化アルゴリズムを低密度・パリティ・チェック・コードに適用することによって、更新済み第１のソフト情報を生成するとともに、前記更新済み第１のソフト情報と前記第１のソフト情報との差に基づく第１の外的情報を生成する第１のデコーダと、
前記第１の反復の出力ストリームに応じて、前記反復デコーダの第２の反復における前記データに対する第２のソフト情報を生成する第２の後処理ブロックと、
最小和復号化アルゴリズムを低密度・パリティ・チェック・コードに適用することによって、更新済み第２のソフト情報を生成するとともに、前記更新済み第２のソフト情報と前記第２のソフト情報との差に基づく第２の外的情報を生成する第２のデコーダとを有することを特徴とするハードディスクドライブ。
【請求項２０】
請求項１９に記載のハードディスクドライブにおいて、
前記反復デコーダは、前記データに整合済みビタビアルゴリズムを実行する第１の検出器をさらに有し、ここで、前記第１の検出器の出力ストリームは、前記第１の後処理ブロックの入力に送信されることを特徴とするハードディスクドライブ。
【請求項２１】
請求項１９に記載のハードディスクドライブにおいて、
前記反復デコーダは、前記第１のソフト情報を使用して硬判定復号化を実行する硬判定デコーダをさらに有し、
前記硬判定デコーダによって生成された復号化済み出力ストリームは、前記第２の後処理ブロックの入力に送信されることを特徴とするハードディスクドライブ。
【請求項２２】
請求項１９に記載のハードディスクドライブにおいて、
前記反復デコーダは、前記第１の外部情報を使用して硬判定復号化を実行する硬判定デコーダをさらに有し、
前記硬判定デコーダによって生成されたシンボルは、前記第２の後処理ブロックの入力に送信されることを特徴とするハードディスクドライブ。
【請求項２３】
請求項２１に記載のハードディスクドライブにおいて、
前記第１のデコーダによって生成された早期停止パラメータが閾値よりも小さい場合、前記反復デコーダは反復の実行を停止し、
前記早期停止パラメータが前記閾値以上である場合のみ、前記硬判定デコーダの復号化済み出力ストリームは、前記第２の後処理ブロックに送信されることを特徴とするハードディスクドライブ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、誤りを訂正する技術に関し、特に、ハードディスクドライブなどのデータ記憶装置において反復的復号化を使用して誤りを訂正する技術に関する。
【背景技術】
【０００２】
データの信頼性を確保するために、およびチャネルノイズの副作用を減少させるために、データ記録装置において誤り訂正符号が使用される。パリティコードは、誤り訂正符号の例である。多くの場合、パリティコードを使用することによって、通信チャネルを通じて送信されたデータ、またはデジタル記憶媒体上に記録されたデータに発生する誤りを訂正する。例えば、磁気ハードディスク上に記録されたデータの誤りを訂正するには、パリティ・チェック・コードが使用されることが多い。
【０００３】
誤り訂正復号化は、硬判定デコーダまたは軟判定デコーダを使用して実行することができる。一般に、硬判定復号化は、誤りである可能性は符号語に含まれる全てのビットについて等しいという仮定に基づいている。一般に、硬判定復号化では、一部のビットが他のビットよりも信頼性が高いとは考えていない。しかし、一部の硬判定復号化コードは、記録ビットに対して等しくない保護を行う。
【０００４】
軟判定復号化は、入力アナログデータ（例えば、等価済みリードバック信号またはビット信頼性情報）を受信して、信頼性のないビットを優先的に反転させる。軟判定復号化において、ログ尤度比（ＬＬＲ）は、ビットが「１」である可能性をビットが「０」である可能性で割った基準である。ＬＬＲの絶対値が大きくなれば、ビットの信頼性はさらに高くなることを示す。軟判定デコーダは、各ビットに対してＬＬＲを使用することによって、ビットに誤りがある可能性を評価する。軟判定復号化は、硬判定復号化よりも優れている。なぜならば、一部のビットはその他のビットよりもより信頼性が高いという事実を利用することができるためである。
【０００５】
低密度・パリティ・チェック（ＬＤＰＣ）コードは、パリティ・チェック・マトリクスＨを有する線形誤り訂正符号である。このパリティ・チェック・マトリクスＨの各行および各列には、少数の非ゼロ要素が含まれる。ＬＤＰＣ符号語は、軟判定復号化を使用して復号化することができる。ＬＤＰＣコードは、任意の有限フィールド上に定義することができる。例えば、ＬＤＰＣコードは、「１」が唯一の非ゼロ要素であるガロア域ＧＦ（２）上に定義することができる。ＬＤＰＣコードの行（または列）の重み（または程度）とは、パリティ・チェック・マトリクスの行（または列）に含まれる数の中でゼロ以外の値を有する要素の数を指す。
【０００６】
標準の符号化プロセスにおいては、情報ビットのブロックは、ＬＤＰＣコードのパリティ・チェック・マトリクスに由来する生成行列を使用して符号化される。軟判定復号化では、各ビットに提供される誤り保護の強度は、符号語の復号化に使用されるパリティ・チェック・マトリクスに含まれる対応する列の重みに依存する。重みのより低い列に対応するビットには、より低い誤り保護が提供される。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
いくつかの種類の誤り検出方式は、反復的である。反復的な誤り検出方式に関する１つの問題は、それらの誤り検出方式は、磁気ハードディスクドライブで使用する場合、エラー伝搬を引き起こしたり、受け入れがたいエラーフロアを生じたりする傾向があることである。また、磁気ハードディスクドライブに使用される多くの反復的な誤り検出方式は、非常に複雑でもある。
【０００８】
したがって、引き起こされるエラー伝搬がより少なく、複雑さの度合いも高くない、誤り訂正の反復的技術が望まれる。また、エラーフロアを制御可能な、誤り訂正の反復的技術も望まれる。
【課題を解決するための手段】
【０００９】
本発明は、データ記憶装置上に記録されたデータを反復的に復号化する技術を提供する。反復デコーダは、復号化を複数回反復させることによって前記データを復号化して、誤りを訂正する。前記反復デコーダによる複数回の反復において、後処理ブロックはソフト情報を生成する。デコーダは、最小和復号化アルゴリズムを低密度・パリティ・チェック（ＬＤＰＣ）コードに適用することによって、前記ソフト情報および更新済みソフト情報に基づく外的情報を生成する。
【００１０】
本発明のその他の目的、機能、および利点は、以下の詳細な説明および添付図面を考慮することによって明らかになる。
【発明の効果】
【００１１】
本発明によれば、データ記憶装置において、引き起こされるエラー伝搬がより少なく、複雑さの度合いも高くない、誤り訂正の反復的技術を提供することができる。
【発明を実施するための最良の形態】
【００１２】
図１は、本発明の一実施例による、誤り訂正および変調符号化方式を示す図である。最初に、入力データは、変調符号化技術を使用して変調エンコーダ１０１によって符号化される。変調エンコーダ１０１の出力ストリームは、リードソロモン（ＲＳ）エンコーダ１０２に供給される。ＲＳエンコーダ１０２は、誤り訂正機能を提供するＲＳチェックバイトを生成する。
【００１３】
ＲＳエンコーダ１０２の出力ストリームは、ロー・カラム・ウェイト・低密度・パリティ・チェック（ＬＤＰＣ）コードエンコーダ１０３に供給される。ＬＤＰＣコードエンコーダ１０３は、ＬＤＰＣコードチェックバイトを生成する。当該ＬＤＰＣコードチェックバイトは、データストリームに対して付加的レベルの誤り訂正を可能にするものである。磁気ハードディスクドライブは、任意の好適な磁気データ記録技術を使用して、エンコーダ１０３の符号化済み出力データを磁気ハードディスク上に記録することができる。
【００１４】
本発明の一部の実施例によれば、誤り訂正デコーダは復号化を複数回（Ｎ）反復させる。反復デコーダは、軟判定ポストプロセッサおよび最小和ＬＤＰＣコードデコーダを使用して、復号化を複数回反復させる。ここで、本発明による特定の復号化について様々な例をあげて、本発明の原理を詳細に説明する。
【００１５】
図２は、本発明の一実施例による反復誤り訂正デコーダの第１の例を示す図である。図２の誤り訂正デコーダおよび本発明の他のデコーダは、ハードディスクドライブまたは他の種類のストレージデバイスにおいて使用することができる。本発明の一部の実施例によれば、反復デコーダによってエラー伝搬は減少し、制御可能なエラーフロアが拡大するとともに、それ自体も単純化する。
【００１６】
最初に、入力等化器（図示されていない）は、磁気ハードディスクなどのデータ記憶媒体から読み取ったデータの入力ストリームを受信する。当該等化器は、そのデータを表す等価済みサンプルのストリームを生成する。等価済みサンプルは、ＭＦ２０２、加算器２０８、加算器２２２、加算器２４４、およびデコーダ内のその他の加算器のそれぞれの入力に送信される。ここに説明されるＭＦ２０２のブロックおよびその他のＭＦブロックは、長く整合させられたノイズ・ホワイトン・フィルタである。ブロックＭＦ２０２によって、誤り信号は、より長いノイズ・ホワイトン・フィルタを通過することが可能になり、符号間干渉（ＩＳＩ）残留ノイズおよびその他のノイズをさらに抑制することができる。
【００１７】
図２のデコーダは、等価済みサンプルに対して復号化をＮ回反復させる。Ｎとして可能なのは、１より大きい任意の好適な正の整数である。図２では、例として、反復１、２、３、およびＮが示されている。反復１は、整合済みビタビブロック２０４、目標フィルタブロック２０６、加算器２０８、ＬＭＦ２１０、ソフト・ポスト・プロセッサ２１２、およびソフト入力ソフト出力デコーダ（最小和デコーダ）２１４などを含む。反復２は、加算器２１７、整合済みビタビブロック２１８、目標フィルタブロック２２０、加算器２２２、ＬＭＦ２２４、加算器２２６、ソフト・ポスト・プロセッサ２２８、加算器２２９、および最小和デコーダ２３０などを含む。反復３は、加算器２３９、整合済みビタビブロック２４０、目標フィルタブロック２４２、加算器２４４、ＬＭＦ２４６、加算器２５０、ポストプロセッサ２５２、加算器２５３、および最小和デコーダ２５４などを含む。
【００１８】
デコーダの第１の反復（反復１）において、ＭＦ２０２の出力ストリームは、検出器２０４の整合済みビタビアルゴリズムによって処理される。整合済みビタビ検出器２０４は、目標フィルタブロック２０６およびソフト・ポスト・プロセッサ２１２のそれぞれの入力に送信される出力ストリームを生成する。目標フィルタブロック２０６は、検出器２０４の出力ストリームから理想的な等価済みサンプルを再生する。
【００１９】
加算器２０８は、目標フィルタブロック２０６によって生成される理想的な等価済みサンプルを、デコーダの入力ストリームに含まれる対応する等価済みサンプルから減じる。デコーダの入力ストリームからの等価済みサンプルは、加算器２０８により使用される前に、ブロック２０２、２０４、２０６の遅延分だけ遅延される。一般に、デコーダの入力ストリームに含まれる等価済みサンプルは、図２や下記の他の実施例に示す現在ブロック（例えば、図２の場合、加算器２２２、２４４）により使用される前に、それ以前のブロックの遅延分だけ遅延される。加算器２０８の出力ストリームは、ロング・マッチ・フィルタ（ＬＭＦ）２１０の入力に送信される。ＬＭＦ２１０は、ソフト・ポスト・プロセッサ２１２に送信されるホワイトン・ノイズを有する出力ストリームを生成する。
【００２０】
ソフト・ポスト・プロセッサ２１２は、整合済みビタビ検出器２０４およびＬＭＦ２１０からそれぞれ出力ストリームを受信する。ソフト・ポスト・プロセッサ２１２は、検出される可能性が最も高いビットストリーム、および各検出ビットに対応した信頼性メトリック値などを含むソフト情報を生成する。ソフト・ポスト・プロセッサ２１２によって生成されるソフト情報は、最小和デコーダ２１４の入力に送信される。
【００２１】
最小和デコーダ２１４は、低密度・パリティ・チェック（ＬＤＰＣ）コードに最小和復号化アルゴリズムを適用して、ソフト・ポスト・プロセッサ２１２によって生成されたソフト情報を用いたさらに信頼性の高い更新済みソフト情報を生成する。その後、最小和デコーダ２１４は、更新済みソフト情報と、ソフト・ポスト・プロセッサ２１２によって生成されたソフト情報との差を計算して、外的情報を生成する。最小和デコーダ２１４からの（およびここに説明される他の最小和デコーダからの）外的情報は、更新済みソフト情報と、ソフト・ポスト・プロセッサ２１２によって生成されるソフト情報とのメトリックの差である。
【００２２】
軟判定復号化において、復号化をローカルで複数回反復させて、受信した語をより信頼性の高い語（すなわち、符号語、または符号語に近いハミング距離を有する語）に収束しようと試みる。図２に示すデコーダに使用される最小和デコーダの複雑さのレベルは低い。なぜならば、それらの最小和デコーダの使用するＬＤＰＣコードの重みは低く、それらの最小和デコーダの行うローカル反復の回数も少ないためである（例えば、１回または２回）。また、図２に示す最小和デコーダの引き起こすエラー伝搬はさらに少なく、それらの最小和デコーダの有するエラーフロアはより一層制御可能となる。なぜならば、それらの最小和デコーダの使用するＬＤＰＣコードの重みは低く、それらの最小和デコーダの行うローカル反復の回数も少ないためである。
【００２３】
最小和デコーダ２１４の出力ストリームは、乗算器２１６に送信される。乗算器２１６は、最小和デコーダ２１４の出力ストリームに含まれる外的情報に、スケール係数アルファを乗じる。乗算器２１６の出力ストリームを加算器２１７、２２６、２２９のそれぞれの入力に送信した後、デコーダの第２の反復が開始される。
【００２４】
加算器２１７は、ＭＦ２０２の出力ストリームの整合済み等価済みサンプルから、乗算器２１６の出力ストリームに含まれる乗算された外的情報を減じる。ＭＦ２０２の整合済み等価済みサンプルの出力ストリームは、加算器２１７に入力される前に、反復１の遅延分だけ遅延される。一般に、図２の実施例および下記の図６の実施例において、ＭＦブロックの整合済み等価済みサンプルの出力ストリームは、現在の反復により使用される前に、それ以前の反復の遅延分だけ遅延される。検出器２１８は、その後、加算器２１７の出力ストリームに、整合済みビタビアルゴリズムを実行する。整合済みビタビブロック２１８は、目標フィルタブロック２２０およびソフト・ポスト・プロセッサ２２８のそれぞれの入力に送信される出力ストリームを生成する。
【００２５】
加算器２２２は、目標フィルタブロック２２０によって生成された再生済み等価済みサンプルを、対応する元の等価済みサンプルから減じる。加算器２２２の出力ストリームは、ＬＭＦ２２４の入力に送信される。加算器２２６は、乗算器２１６の出力ストリームに含まれるスケール変更済み外的情報を、ＬＭＦ２２４の出力ストリームに加算する。
【００２６】
ソフト・ポスト・プロセッサ２２８は、整合済みビタビ検出器２１８および加算器２２６からそれぞれ出力ストリームを受信する。ソフト・ポスト・プロセッサ２２８は、検出される可能性が最も高いビットストリーム、および各検出ビットに対応した信頼性メトリック値などを含むソフト情報を生成する。ポストプロセッサ２２８によって生成されたソフト情報は、入力加算器２２９に送信される。加算器２２９は、ポストプロセッサ２２８の出力ストリームに含まれるソフト情報から、乗算器２１６の出力ストリームに含まれるスケール変更済み外的情報を減じる。
【００２７】
最小和デコーダ２３０は、最小和低密度・パリティ・チェック（ＬＤＰＣ）コードを適用して、加算器２２９からのソフト情報を使用したより信頼性の高い更新済みソフト情報を生成する。その後、最小和デコーダ２３０は、更新済みソフト情報と加算器２２９からのソフト情報との差を計算して、外的情報を生成する。最小和デコーダ２３０の出力ストリームは、乗算器２３２の入力に送信される。乗算器２３２は、最小和デコーダ２３０の出力ストリームに、スケール係数アルファを乗じる。
【００２８】
乗算器２３２の出力ストリームを加算器２３９に送信した後、デコーダの第３の反復が開始される。加算器２３９は、ＭＦ２０２の出力ストリームに含まれる誤り信号から、乗算器２３２の出力ストリームに含まれるスケール変更済み外的情報を減じる。検出器２４０は、加算器２３９の出力ストリームに整合済みビタビアルゴリズムを実行する。整合済みビタビブロック２４０は、目標フィルタブロック２４２およびソフト・ポスト・プロセッサ２５２のそれぞれの入力に送信される出力ストリームを生成する。
【００２９】
加算器２４４は、目標フィルタブロック２４２によって生成された再生済み等価済みサンプルを、対応する元の等価済みサンプルから減じる。加算器２４４の出力ストリームは、ＬＭＦ２４６の入力に送信される。加算器２５０は、乗算器２３２の出力ストリームを、ＬＭＦ２４６の出力ストリームに加える。
【００３０】
ソフト・ポスト・プロセッサ２５２は、整合済みビタビ検出器２４０および加算器２５０からそれぞれ出力ストリームを受信する。ソフト・ポスト・プロセッサ２５２は、検出される可能性が最も高いビットストリーム、および各検出ビットに対応した信頼性メトリック値などを含むソフト情報を生成する。ポストプロセッサ２５２によって生成されたソフト情報は、加算器２５３に送信される。
【００３１】
加算器２５３は、ソフト・ポスト・プロセッサ２５２の出力ストリームに含まれるソフト情報から、乗算器２３２の出力ストリームに含まれるスケール変更済み外的情報を減じる。最小和デコーダ２５４は、低密度・パリティ・チェック（ＬＤＰＣ）コードに最小和復号化アルゴリズムを適用して、加算器２５３からのソフト情報を用いたさらに信頼性の高い更新済みソフト情報を生成する。その後、最小和デコーダ２５４は、更新済みソフト情報と加算器２５３からのソフト情報との差を計算して、外的情報を生成する。最小和デコーダ２５４の出力ストリームは、デコーダの次の反復における乗算器の入力に送信される。
【００３２】
図２に示されるデコーダの反復２、３に関する上記手順は、各追加反復に対して繰り返される。しかし、デコーダの最後の反復Ｎには最小和デコーダは含まれない。反復Ｎにおける最後のブロックは、硬判定ブロック２６６である。硬判定ブロック２６６は、ソフト・ポスト・プロセッサ２６４からのソフト情報をシンボルのストリームに変換する。硬判定ブロック２６６の出力ストリームは、リードソロモン（ＲＳ）デコーダ２７０に送信される。ＲＳデコーダは、ＲＳ復号化技術を使用して、反復Ｎの出力ストリームにＲＳ復号化を実行する。ＲＳデコーダ２７０は、等価済みサンプルにおける多数の誤りを訂正することができる。これらの誤りは、最小和デコーダでは訂正されない。
【００３３】
図３は、本発明の別の実施例による反復誤り訂正デコーダの第２の例を示す図である。前述の実施例と同様に、ＭＦブロック３０２は、入力等化器（図示されていない）から等価済みサンプルを受信する。図３のデコーダは、等価済みサンプルに対して復号化をＮ回反復させる。Ｎとして可能なのは、１より大きい任意の好適な正の整数である。図３では、例として、反復１、２、３、およびＮが示されている。
【００３４】
反復１は、整合済みビタビアルゴリズム３０４、目標フィルタブロック３０６、加算器３０８、ロング・マッチ・フィルタ（ＬＭＦ）ブロック３１２、ソフト・ポスト・プロセッサ３１４、および最小和デコーダ３１６などを含む。反復２は、硬判定デコーダ３１８、目標フィルタブロック３２０、加算器３２２、ロング・マッチ・フィルタ（ＬＭＦ）ブロック３２６、乗算器３２８、加算器３３０、ソフト・ポスト・プロセッサ３３２、加算器３３４、および最小和デコーダ３３６などを含む。Ｎ番目の反復を除いて、後続の反復は、それぞれ反復２と同じ手順を実行する。デコーダのＮ番目の反復は、第３加算器３３４または最小和デコーダ３３６を備えていない。
【００３５】
ＭＦブロック３０２は、整合済みビタビ検出器３０４に送信される出力ストリームを生成する。反復１は、ビタビ検出器３０４から開始する。検出器３０４は、整合済みビタビアルゴリズムを使用して、ＭＦブロック３０２の出力から出力ストリームを生成する。図３に示すデコーダは、整合済みビタビアルゴリズムを使用する検出器ブロック３０４を１つのみ備えている。
【００３６】
ビタビアルゴリズム３０４によって生成された出力ストリームは、目標フィルタブロック３０６およびソフト・ポスト・プロセッサ３１４のそれぞれの入力に送信される。目標フィルタブロック３０６は、加算器３０８に送信される再生済み等価済みサンプルの出力ストリームを生成する。加算器３０８は、目標フィルタブロック３０６の出力ストリームに含まれる再生済み等価済みサンプルを、デコーダの入力ストリームに含まれる対応する元の等価済みサンプルから減じて、誤りサンプルを取得する。
【００３７】
加算器３０８の出力ストリームは、ＬＭＦブロック３１２の入力に送信される。ソフト・ポスト・プロセッサ３１４は、整合済みビタビ検出器３０４およびＬＭＦ３１２からそれぞれ出力ストリームを受信する。ソフト・ポスト・プロセッサ３１４は、検出される可能性が最も高いビットストリーム、および各検出ビットに対応した信頼性メトリック値などを含むソフト情報を生成する。ソフト・ポスト・プロセッサ３１４によって生成されたソフト情報は、最小和デコーダブロック３１６の入力および硬判定デコーダ３１８の入力に送信される。
【００３８】
最小和デコーダ３１６は、低密度・パリティ・チェック（ＬＤＰＣ）コードに最小和復号化アルゴリズムを適用して、ソフト・ポスト・プロセッサ３１４によって生成されるソフト情報を用いたさらに信頼性の高い更新済みソフト情報を生成する。その後、最小和デコーダ３１６は、更新済みソフト情報と、ソフト・ポスト・プロセッサ３１４によって生成されたソフト情報との差を計算して、外的情報を生成する。最小和デコーダ３１６の出力ストリームは、乗算器３２８の入力に送信される。
【００３９】
図３に示すデコーダに使用される最小和デコーダの複雑さのレベルは低い。なぜならば、それらの最小和デコーダの使用するＬＤＰＣコードの重みは低く、それらの最小和デコーダの行うローカル反復の回数も少ないためである（例えば、ちょうどｌ回または２回）。また、図３に示す最小和デコーダの引き起こすエラー伝搬はさらに少なく、それらの最小和デコーダの有するエラーフロアはより一層制御可能となる。なぜならば、それらの最小和デコーダの使用するＬＤＰＣコードの重みは低く、それらの最小和デコーダの行うローカル反復の回数も少ないためである。
【００４０】
図３に示すデコーダの反復２において、硬判定デコーダ３１８は、複雑さの低い任意の適切な硬判定復号化方式を使用して、ポストプロセッサ３１４の出力ストリームに硬判定復号化を実行する。硬判定デコーダ３１８は、目標フィルタブロック３２０およびソフト・ポスト・プロセッサ・ブロック３３２のそれぞれの入力に送信される復号化済み出力ストリームを生成する。加算器３２２は、目標フィルタブロック３２０の出力ストリームに含まれる再生済み等価済みサンプルを、入力ストリームに含まれる元の等価済みサンプルから減じる。
【００４１】
加算器３２２の出力ストリームは、ＬＭＦブロック３２６に送信される。乗算器３２８は、最小和デコーダ３１６の出力ストリームに、スケール係数アルファを乗じる。加算器３３０は、ＬＭＦブロック３２６の出力ストリームに含まれる誤りサンプルを、乗算器３２８の出力ストリームに含まれるスケール変更済み外的情報に加える。
【００４２】
ポストプロセッサ３３２は、硬判定デコーダ３１８および加算器３３０からそれぞれの出力ストリームを受信する。ソフト・ポスト・プロセッサ３３２は、検出される可能性が最も高いビットストリーム、および各検出ビットに対応した信頼性メトリック値などを含むソフト情報を生成する。ポストプロセッサ３３２によって生成されたソフト情報は、加算器３３４の入力および硬判定デコーダ３４０の入力に送信される。
【００４３】
加算器３３４は、ソフト・ポスト・プロセッサ３３２の出力ストリームから、乗算器３２８の出力ストリームに含まれるスケール変更済み外的情報を減じる。加算器３３４の出力ストリームは、最小和デコーダブロック３３６の入力に送信される。最小和デコーダ３３６は、低密度・パリティ・チェック（ＬＤＰＣ）コードに最小和復号化アルゴリズムを適用して、加算器３３４からのソフト情報を用いたさらに信頼性の高い更新済みソフト情報を生成する。その後、最小和デコーダ３３６は、更新済みソフト情報と加算器３３４からのソフト情報との差を計算して、外的情報を生成する。デコーダブロック３３６の復号化済み出力ストリームは、乗算器３４２の入力に送信される。
【００４４】
デコーダの反復３は、硬判定デコーダブロック３４０から開始する。図３に示すデコーダの各々の追加反復は、上述したように、最後の反復Ｎを除いて、反復２の手順を繰り返す。最後の反復Ｎは、加算器３３４または最小和デコーダ３３６を含まない。その代わりに、ソフト・ポスト・プロセッサ３６４の出力ストリームを硬判定復号化ブロック３６５に送信して、ソフト情報を硬判定シンボルに変換する。ＲＳデコーダ３６６は、ＲＳ復号化技術を使用して、硬判定ブロック３６５の出力ストリームを復号化する。ＲＳデコーダ３６６は、等価済みサンプルにおける多数の誤りを訂正することができる。これらの誤りは、例えば最小和デコーダでは訂正されない。
【００４５】
図４は、本発明の別の実施例による反復誤り訂正デコーダの第３の例を示す図である。前述の実施例と同様に、ＭＦブロック４０２は、入力等化器（図示されていない）から等価済みサンプルを受信する。図４のデコーダは、等価済みサンプルに対して復号化をＮ回反復させる。Ｎとして可能なのは、１より大きい任意の好適な正の整数である。図４では、反復１、２、３、およびＮが示されている。
【００４６】
反復１は、整合済みビタビアルゴリズム４０４、目標フィルタブロック４０６、加算器４０８、ロング・マッチ・フィルタ（ＬＭＦ）ブロック４１２、ソフト・ポスト・プロセッサ４１４、および最小和デコーダ４１６などを含む。反復２は、硬判定デコーダ４２０、目標フィルタブロック４２２、加算器４２４、ロング・マッチ・フィルタ（ＬＭＦ）ブロック４２８、乗算器４３０、加算器４３２、ソフト・ポスト・プロセッサ４３４、加算器４３６、および最小和デコーダ４３８などを含む。Ｎ番目の反復を除いて、後続の反復は、それぞれ反復２と同じ手順を実行する。デコーダのＮ番目の反復は、第３加算器４３６または最小和デコーダ４３８を備えていない。
【００４７】
ＭＦブロック４０２は、整合済みビタビ検出器４０４に送信される出力ストリームを生成する。図４に示されるデコーダの反復１は、ビタビ検出器４０４から開始する。検出器４０４は、整合済みビタビアルゴリズムを使用して、ＭＦブロック４０２の出力から出力ストリームを生成する。図４に示すデコーダは、整合済みビタビアルゴリズムを使用する検出器ブロック４０４を１つのみ備えている。
【００４８】
ビタビアルゴリズム４０４によって生成された出力ストリームは、目標フィルタブロック４０６およびソフト・ポスト・プロセッサ４１４のそれぞれの入力に送信される。目標フィルタブロック４０６は、加算器４０８に送信される再生済み等価済みサンプルの出力ストリームを生成する。加算器４０８は、目標フィルタブロック４０６の出力ストリームに含まれる再生済み等価済みサンプルを、デコーダの入力ストリームに含まれる対応する元の等価済みサンプルから減じる。
【００４９】
加算器４０８の出力ストリームは、ＬＭＦブロック４１２の入力に送信される。ポストプロセッサ４１４は、整合済みビタビ検出器４０４およびＬＭＦ４１２からそれぞれ出力ストリームを受信する。ソフト・ポスト・プロセッサ４１４は、検出される可能性が最も高いビットストリーム、および各検出ビットに対応した信頼性メトリック値などを含むソフト情報を生成する。ポストプロセッサ４１４によって生成されたソフト情報は、最小和デコーダ４１６の入力に送信される。
【００５０】
最小和デコーダ４１６は、低密度・パリティ・チェック（ＬＤＰＣ）コードに最小和復号化アルゴリズムを適用して、ソフト・ポスト・プロセッサ４１４によって生成されるソフト情報を用いたさらに信頼性の高い更新済みソフト情報を生成する。その後、最小和デコーダ４１６は、更新済みソフト情報と、ソフト・ポスト・プロセッサ４１４によって生成されたソフト情報との差を計算して、外的情報を生成する。図４に示すデコーダに使用される最小和デコーダの複雑さのレベルは低く、引き起こされるエラー伝搬もより少なく、制御可能なエラーフロアも拡大する。なぜならば、それらの最小和デコーダの使用するＬＤＰＣコードの重みは低く、それらの最小和デコーダの行うローカル反復の回数も少ないためである（例えば、ｌ回または２回）。最小和デコーダ４１６の出力ストリームは、乗算器４３０および硬判定デコーダ４２０のそれぞれの入力に送信される。
【００５１】
図４に示すデコーダの反復２において、硬判定デコーダ４２０は、複雑さの低い任意の適切な硬判定復号化方式を使用して、最小和デコーダ４１６の出力ストリームに硬判定復号化を実行する。硬判定デコーダ４２０は、目標フィルタブロック４２２およびソフト・ポスト・プロセッサ・ブロック４３４のそれぞれの入力に送信される復号化済み出力ストリームを生成する。加算器４２４は、目標フィルタブロック４２２の出力ストリームを、入力ストリームに含まれる等価済みサンプルから減じる。
【００５２】
加算器４２４の出力ストリームは、ＬＭＦブロック４２８に送信される。乗算器４３０は、最小和デコーダ４１６の出力ストリームに含まれる外的情報を、スケール係数アルファで乗じる。加算器４３２は、ＬＭＦブロック４２８の出力ストリームに含まれる誤りサンプルを、乗算器４３０の出力ストリームに含まれるスケール変更済み外的情報に加える。
【００５３】
ポストプロセッサ４３４は、硬判定デコーダ４２０および加算器４３２から出力ストリームをそれぞれ受信する。ソフト・ポスト・プロセッサ４３４は、検出される可能性が最も高いビットストリーム、および各検出ビットに対応した信頼性メトリック値などを含むソフト情報を生成する。ソフト・ポスト・プロセッサ４３４によって生成されたソフト情報は、加算器４３６の入力に送信される。
【００５４】
ソフト・ポスト・プロセッサ４３４の出力ストリームは、加算器４３６の入力に送信される。加算器４３６は、乗算器４３０の出力ストリームを、ソフト・ポスト・プロセッサ４３４の出力ストリームから減じる。加算器４３６の出力ストリームは、最小和デコーダブロック４３８の入力に送信される。最小和デコーダ４３８は、低密度・パリティ・チェック（ＬＤＰＣ）コードに最小和復号化アルゴリズムを適用して、加算器４３６からのソフト情報を用いたさらに信頼性の高い更新済みソフト情報を生成する。その後、最小和デコーダ４３８は、更新済みソフト情報と加算器４３６からのソフト情報との差を計算して、外的情報を生成する。デコーダブロック４３８の出力ストリームは、硬判定デコーダブロック４４０および乗算器４４２のそれぞれの入力に送信される。
【００５５】
デコーダの反復３は、硬判定デコーダブロック４４０から開始する。図４に示すデコーダの各々の追加反復は、上述したように、最後の反復Ｎを除いて、反復２の手順を繰り返す。最後の反復Ｎは、加算器４３６または最小和デコーダ４３８を含まない。その代わりに、ソフト・ポスト・プロセッサ４５０の出力ストリームを硬判定復号化ブロック４５１に送信する。硬判定復号化ブロック４５１は、ソフト情報を硬判定シンボルに変換する。ＲＳデコーダ４５２は、ＲＳ復号化技術を使用して、硬判定デコーダブロック４５１の出力ストリームを復号化する。ＲＳデコーダ４５２は、等価済みサンプルにおける多数の誤りを訂正することができる。これらの誤りは、最小和デコーダでは訂正されない。
【００５６】
図５は、本発明の別の実施例による反復誤り訂正デコーダの第４の例を示す図である。前述の実施例と同様に、ＭＦブロック５０２は、入力等化器（図示されていない）から等価済みサンプルを受信する。図５のデコーダは、等価済みサンプルに対して復号化をＮ回反復させる。Ｎとして可能なのは、１より大きい任意の好適な正の整数である。図５では、例として、反復１、２、３、およびＮが示されている。
【００５７】
反復１は、整合済みビタビアルゴリズム５０４、目標フィルタブロック５０６、加算器５０８、ロング・マッチ・フィルタ（ＬＭＦ）ブロック５１２、ソフト・ポスト・プロセッサ５１４、および最小和デコーダ５１６などを含む。反復２は、乗算器５２０、加算器５２２、ソフト・ポスト・プロセッサ５２４、加算器５２６、および最小和デコーダ５２８などを含む。Ｎ番目の反復を除いて、後続の反復は、それぞれ反復２と同じ手順を実行する。デコーダのＮ番目の反復は、第２加算器５２６または最小和デコーダ５２８を備えていない。
【００５８】
ＭＦブロック５０２は、整合済みビタビ検出器５０４に送信される出力ストリームを生成する。図５に示されるデコーダの反復１は、ビタビ検出器５０４から開始する。検出器５０４は、整合済みビタビアルゴリズムを使用して、ＭＦブロック５０２の出力ストリームから出力ストリームを生成する。図５に示されるデコーダは、ビタビ検出器ブロック５０４、目標フィルタ５０６、およびロング・マッチ・フィルタ（ＬＭＦ）ブロック５１２をそれぞれ１つずつ備えている。
【００５９】
ビタビアルゴリズム５０４によって生成された出力ストリームは、目標フィルタブロック５０６およびソフト・ポスト・プロセッサ５１４のそれぞれの入力に送信される。目標フィルタブロック５０６は、加算器５０８に送信される再生済み等価済みサンプルの出力ストリームを生成する。加算器５０８は、目標フィルタブロック５０６の出力ストリームに含まれる再生済み等価済みサンプルを、デコーダの入力ストリームに含まれる対応する元の等価済みサンプルから減じる。
【００６０】
加算器５０８の出力ストリームは、ＬＭＦブロック５１２の入力に送信される。ポストプロセッサ５１４は、整合済みビタビ検出器５０４およびＬＭＦ５１２からそれぞれ出力ストリームを受信する。ソフト・ポスト・プロセッサ５１４は、検出される可能性が最も高いビットストリーム、および各検出ビットに対応した信頼性メトリック値などを含むソフト情報を生成する。ポストプロセッサ５１４によって生成されたソフト情報は、最小和デコーダ５１６の入力に送信される。
【００６１】
最小和デコーダ５１６は、低密度・パリティ・チェック（ＬＤＰＣ）コードに最小和復号化アルゴリズムを適用して、ソフト・ポスト・プロセッサ５１４によって生成されるソフト情報を用いたさらに信頼性の高い更新済みソフト情報を生成する。その後、最小和デコーダ５１６は、更新済みソフト情報と、ソフト・ポスト・プロセッサ５１４によって生成されたソフト情報との差を計算して、外的情報を生成する。図５に示すデコーダに使用される最小和デコーダの複雑さのレベルは低く、引き起こされるエラー伝搬もより少なく、制御可能なエラーフロアも拡大する。なぜならば、それらの最小和デコーダの使用するＬＤＰＣコードの重みは低く、それらの最小和デコーダの行うローカル反復の回数も少ないためである（例えば、１回または２回）。
【００６２】
最小和デコーダ５１６の出力ストリームは、乗算器５２０の入力に送信される。乗算器５２０は、最小和デコーダ５１６の出力ストリームに、スケール係数アルファを乗じる。加算器５２２は、ＬＭＦブロック５１２の出力ストリームを、乗算器５２０からのスケール変更済み外的情報に加える。
【００６３】
ポストプロセッサ５２４は、整合済みビタビ検出器５０４および加算器５２２からそれぞれ出力ストリームを受信する。ソフト・ポスト・プロセッサ５２４は、検出される可能性が最も高いビットストリーム、および各検出ビットに対応した信頼性メトリック値などを含むソフト情報を生成する。ソフト・ポスト・プロセッサ５２４によって生成されたソフト情報は、加算器５２６の入力に送信される。
【００６４】
加算器５２６は、乗算器５２０の出力ストリームを、ソフト・ポスト・プロセッサ５２４の出力ストリームから減じる。加算器５２６の出力ストリームは、最小和デコーダブロック５２８の入力に送信される。最小和デコーダ５２８は、低密度・パリティ・チェック（ＬＤＰＣ）コードに最小和復号化アルゴリズムを適用して、加算器５２６からのソフト情報を用いたさらに信頼性の高い更新済みソフト情報を生成する。その後、最小和デコーダ５２８は、更新済みソフト情報と加算器５２６からのソフト情報との差を計算して、外的情報を生成する。デコーダブロック５２８の出力ストリームは、乗算器５３０の入力に送信される。
【００６５】
図５に示されるデコーダの反復３は、乗算器５３０から開始する。図５に示すデコーダの各々の追加反復は、上述したように、最後の反復Ｎを除いて、反復２の手順を繰り返す。最後の反復Ｎは、加算器５２６または最小和デコーダ５２８を含まない。その代わりに、ソフト・ポスト・プロセッサ５４０の出力ストリームを硬判定ブロック５４１に送信する。硬判定ブロック５４１は、ソフト情報を硬判定シンボルに変換する。ＲＳデコーダ５４２は、ＲＳ復号化技術を使用して、硬判定ブロック５４１の出力ストリームを復号化する。ＲＳデコーダ５４２は、等価済みサンプルにおける多数の誤りを訂正することができる。これらの誤りは、最小和デコーダでは訂正されない。
【００６６】
図６は、本発明の別の実施例による反復誤り訂正デコーダの第５の例を示す図である。前述の実施例と同様に、ＭＦブロック６０２は、入力等化器（図示されていない）から等価済みサンプルを受信する。図６のデコーダは、等価済みサンプルに対して復号化をＮ回反復させる。Ｎとして可能なのは、１より大きい任意の好適な正の整数である。図６では、例として、反復１、２、３、およびＮが示されている。図６に示されるデコーダは、図２および図３のデコーダから手順を取り入れたハイブリッド復号化方式を使用する。
【００６７】
反復１は、整合済みビタビアルゴリズム６０４、目標フィルタブロック６０６、加算器６０８、ロング・マッチ・フィルタ（ＬＭＦ）ブロック６１２、ソフト・ポスト・プロセッサ６１４、および最小和デコーダ６１６などを含む。反復２は、加算器６２０、整合済みビタビアルゴリズム６２２、目標フィルタブロック６２４、加算器６２６、ロング・マッチ・フィルタ（ＬＭＦ）ブロック６３０、加算器６３４、ソフト・ポスト・プロセッサ６３６、加算器６３８、および最小和デコーダ６４０などを含む。反復３は、硬判定デコーダブロック６４４、目標フィルタブロック６４６、加算器６４８、ロング・マッチ・フィルタ（ＬＭＦ）ブロック６５２、乗算器６４２、加算器６５４、ソフト・ポスト・プロセッサ６５６、加算器６５８、および最小和デコーダ６６０などを含む。Ｎ番目の反復を除いて、後続の反復は、それぞれ反復３と同じ手順を実行する。デコーダのＮ番目の反復は、第３加算器６５８または最小和デコーダ６６０を備えていない。
【００６８】
図６に示すデコーダの第１の反復（反復１）において、ＭＦ６０２の出力ストリームは、ブロック６０４にある整合済みビタビアルゴリズムによって処理される。整合済みビタビ検出器ブロック６０４は、目標フィルタブロック６０６およびソフト・ポスト・プロセッサ６１４のそれぞれの入力に送信される再生済み等価済みサンプルの出力ストリームを生成する。
【００６９】
加算器６０８は、目標フィルタブロック６０６によって生成された再生済み等価済みサンプルを、デコーダの入力ストリームに含まれる等価済みサンプルの対応するビットから減じる。加算器６０８の出力ストリームは、ロング・マッチ・フィルタ（ＬＭＦ）６１２の入力に送信される。ＬＭＦ６１２は、ソフト・ポスト・プロセッサ６１４に送信される出力ストリームを生成する。
【００７０】
ポストプロセッサ６１４は、整合済みビタビ検出器６０４およびＬＭＦ６１２からそれぞれ出力ストリームを受信する。ソフト・ポスト・プロセッサ６１４は、検出される可能性が最も高いビットストリーム、および各検出ビットに対応した信頼性メトリック値などを含むソフト情報を生成する。ポストプロセッサ６１４によって生成されたソフト情報は、最小和デコーダ６１６の入力に送信される。
【００７１】
最小和デコーダ６１６は、低密度・パリティ・チェック（ＬＤＰＣ）コードに最小和復号化アルゴリズムを適用して、ソフト・ポスト・プロセッサ６１４によって生成されたソフト情報を用いたさらに信頼性の高い更新済みソフト情報を生成する。その後、最小和デコーダ６１６は、更新済みソフト情報と、ソフト・ポスト・プロセッサ６１４によって生成されたソフト情報との差を計算して、外的情報を生成する。図６に示すデコーダに使用される最小和デコーダの複雑さのレベルは低く、引き起こされるエラー伝搬もより少なく、制御可能なエラーフロアも拡大する。なぜならば、それらの最小和デコーダの使用するＬＤＰＣコードの重みは低く、それらの最小和デコーダの行うローカル反復の回数も少ないためである（例えば、１回または２回）。
【００７２】
最小和デコーダ６１６は、乗算器６１８に送信される出力ストリームを生成する。乗算器６１８は、最小和デコーダ６１６の出力ストリームを、スケール係数アルファで乗じる。乗算器６１８の出力ストリームを加算器６２０、６３４、６３８に送信した後、デコーダの第２の反復が開始される。
【００７３】
加算器６２０は、ＭＦ６０２の出力ストリームに含まれる誤りサンプルから、乗算器６１８の出力ストリームに含まれるスケール変更済み外的情報を減じる。検出器６２２は、その後、加算器６２０の出力ストリームに、整合済みビタビアルゴリズムを実行する。整合済みビタビ検出器６２２は、目標フィルタブロック６２４およびソフト・ポスト・プロセッサ６３６のそれぞれの入力に送信される出力ストリームを生成する。
【００７４】
加算器６２６は、目標フィルタブロック６２４によって生成された再生済み等価済みサンプルを、入力ストリームに含まれる対応する元の等価済みサンプルから減じる。加算器６２６の出力ストリームは、ＬＭＦ６３０の入力に送信される。加算器６３４は、乗算器６１８の出力ストリームに含まれるスケール変更済み外的情報を、ＬＭＦ６３０の出力ストリームに含まれる再生済み等価済みサンプルに加える。
【００７５】
ソフト・ポスト・プロセッサ６３６は、整合済みビタビ検出器６２２および加算器６３４からそれぞれ出力ストリームを受信する。ソフト・ポスト・プロセッサ６３６は、検出される可能性が最も高いビットストリーム、および各検出ビットに対応した信頼性メトリック値などを含むソフト情報を生成する。ソフト・ポスト・プロセッサ６３６によって生成されたソフト情報は、加算器６３８の入力および硬判定デコーダ６４４の入力に送信される。加算器６３８は、乗算器６１８の出力ストリームを、ソフト・ポスト・プロセッサ６３６の出力ストリームから減じる。
【００７６】
最小和デコーダ６４０は、低密度・パリティ・チェック（ＬＤＰＣ）コードに最小和復号化アルゴリズムを適用して、加算器６３８からのソフト情報を用いたさらに信頼性の高い更新済みソフト情報を生成する。その後、最小和デコーダ６４０は、更新済みソフト情報と加算器６３８からのソフト情報との差を計算して、外的情報を生成する。最小和デコーダ６４０の出力ストリームは、乗算器６４２の入力に送信される。
【００７７】
図６に示すデコーダの反復３において、硬判定デコーダ６４４は、複雑さの低い任意の適切な硬判定復号化方式を使用して、ソフト・ポスト・プロセッサ６３６の出力ストリームに硬判定復号化を実行する。硬判定デコーダ６４４は、目標フィルタブロック６４６およびソフト・ポスト・プロセッサ・ブロック６５６のそれぞれの入力に送信される復号化済み出力ストリームを生成する。加算器６４８は、目標フィルタブロック６４６の出力ストリームに含まれる再生済み等価済みサンプルを、入力ストリームに含まれる元の等価済みサンプルから減じる。
【００７８】
加算器６４８の出力ストリームは、ロング・マッチ・フィールド（ＬＭＦ）ブロック６５２に送信される。乗算器６４２は、最小和デコーダ６４０の出力ストリームに、スケール係数アルファを乗じる。加算器６５４は、ＬＭＦブロック６５２の出力ストリームを、乗算器６４２の出力ストリームに加える。
【００７９】
ソフト・ポスト・プロセッサ６５６は、硬判定デコーダ６４４および加算器６５４から出力ストリームを受信する。ソフト・ポスト・プロセッサ６５６は、検出される可能性が最も高いビットストリーム、および各検出ビットに対応した信頼性メトリック値などを含むソフト情報を生成する。ソフト・ポスト・プロセッサ６５６によって生成されたソフト情報は、加算器６５８の入力および次の反復における硬判定デコーダ（例えば、硬判定デコーダ６６２）の入力に送信される。
【００８０】
加算器６５８は、乗算器６４２の出力ストリームを、ソフト・ポスト・プロセッサ６５６の出力ストリームから減じる。加算器６５８の出力ストリームは、最小和デコーダブロック６６０の入力に送信される。最小和デコーダ６６０は、低密度・パリティ・チェック（ＬＤＰＣ）コードに最小和復号化アルゴリズムを適用して、加算器６５８からのソフト情報を用いたさらに信頼性の高い更新済みソフト情報を生成する。その後、最小和デコーダ６６０は、更新済みソフト情報と、加算器６５８によって生成されたソフト情報との差を計算して、外的情報を生成する。デコーダブロック６６０の出力ストリームは、次の反復における乗算器の入力に送信される（例えば、乗算器６６４）。
【００８１】
図６に示すデコーダの各々の追加反復は、上述したように、最後の反復Ｎを除いて、反復３の手順を繰り返す。最後の反復Ｎは、加算器６５８または最小和デコーダ６６０を含まない。その代わりに、ソフト・ポスト・プロセッサ６７０の出力ストリームを硬判定デコーダ６７１に送信する。硬判定デコーダ６７１は、ソフト情報を硬判定シンボルに変換する。ＲＳデコーダ６７２は、ＲＳ復号化技術を使用して、硬判定ブロック６７１の出力ストリームを復号化する。ＲＳデコーダ６７２は、等価済みサンプルにおける多数の誤りを訂正することができる。これらの誤りは、最小和デコーダおよびポストプロセッサでは訂正されない。
【００８２】
反復検出器の消費電力の削減を目的として、最後の反復が終了する前に反復検出器を停止させることが可能な新機能を、図２〜図６に示される方式に追加することができる。図７は、本発明の一実施例による早期停止反復デコーダの例を示す図である。図７に示す反復デコーダは、図３の検出方式に基づいている。本発明のさらに別の実施例によれば、早期停止技術は、図２〜図６に示されるすべての検出方式に使用することができる。
【００８３】
図７に示すデコーダは、等価済みサンプルに対して復号化を１〜Ｎ回反復させる。復号化の反復回数は、ブロック７１８、７４０などにおける停止条件（Ｓ＜ＴＨ）が満たされているか否かに基づいて決定される。Ｓは、チェックサム違反に基づいて、またはＬＤＰＣコードブロック間における最も信頼性の低い値に基づいて、最小和復号化ブロック７１４、７３６などによって計算される停止条件値である。ＴＨは、あらかじめ定義された閾値パラメータである。反復の最大回数Ｎは、１より大きな任意の好適な正の整数である。図７では、例として、反復１、２、およびＮが示されている。
【００８４】
反復１は、整合済みビタビアルゴリズム７０４、目標フィルタブロック７０６、加算器７０８、ロング・マッチ・フィルタ（ＬＭＦ）ブロック７１０、ソフト・ポスト・プロセッサ７１２、最小和デコーダ７１４、硬判定デコーダ７１６、および停止ブロック７１８などを含む。反復２は、目標フィルタブロック７２２、加算器７２４、ロング・マッチ・フィルタ（ＬＭＦ）ブロック７２６、乗算器７２８、加算器７３０、ソフト・ポスト・プロセッサ７３２、加算器７３４、最小和デコーダ７３６、硬判定デコーダ７３８、および停止ブロック７４０などを含む。Ｎ番目の反復を除いて、後続の反復は、それぞれ反復２と同じ手順を実行する。デコーダのＮ番目の反復は、第３加算器７３４、最小和デコーダ７３６、硬判定デコーダ７３８、または停止ブロック７４０を備えていない。
【００８５】
最初に、前述の実施例と同様に、ＭＦブロック７０２は入力等化器（図示されていない）から等価済みサンプルを受信する。ＭＦブロック７０２は、整合済みビタビ検出器７０４に送信される出力ストリームを生成する。反復１は、ビタビ検出器７０４から開始する。検出器７０４は、整合済みビタビアルゴリズムを使用して、ＭＦブロック７０２の出力から出力ストリームを生成する。図７に示すデコーダは、整合済みビタビアルゴリズムを使用する検出器ブロック７０４を１つのみ備えている。
【００８６】
ビタビアルゴリズム７０４によって生成された出力ストリームは、目標フィルタブロック７０６およびソフト・ポスト・プロセッサ７１２のそれぞれの入力に送信される。目標フィルタブロック７０６は、加算器７０８に送信される再生済み等価済みサンプルの出力ストリームを生成する。加算器７０８は、目標フィルタブロック７０６の出力ストリームに含まれる再生済み等価済みサンプルを、デコーダの入力ストリームに含まれる対応する元の等価済みサンプルから減じて、誤りサンプルを取得する。
【００８７】
加算器７０８の出力ストリームは、ＬＭＦブロック７１０の入力に送信される。ソフト・ポスト・プロセッサ７１２は、整合済みビタビ検出器７０４およびＬＭＦ７１０からそれぞれの出力ストリームを受信する。ソフト・ポスト・プロセッサ７１２は、検出される可能性が最も高いビットストリーム、および各検出ビットに対応した信頼性メトリック値などを含むソフト情報を生成する。ソフト・ポスト・プロセッサ７１２によって生成されたソフト情報は、最小和デコーダブロック７１４の入力および硬判定デコーダ７１６の入力に送信される。
【００８８】
最小和デコーダ７１４は、低密度・パリティ・チェック（ＬＤＰＣ）コードに最小和復号化アルゴリズムを適用して、ソフト・ポスト・プロセッサ７１２によって生成されたソフト情報を用いたさらに信頼性の高い更新済みソフト情報を生成する。その後、最小和デコーダ７１４は、更新済みソフト情報と、ソフト・ポスト・プロセッサ７１２によって生成されたソフト情報との差を計算して、外的情報を生成する。最小和デコーダ７１４の出力ストリームに含まれる外的情報は、乗算器７２８の入力に送信される。また、最小和デコーダ７１４は、停止ブロック７１８に送信される早期停止値Ｓを生成する。Ｓは、例えば、満足されないシンドロームの数にすることができる。
【００８９】
図７に示すデコーダに使用される最小和デコーダの複雑さのレベルは低く、引き起こされるエラー伝搬もより少なく、制御可能なエラーフロアも拡大する。なぜならば、それらの最小和デコーダの使用するＬＤＰＣコードの重みは低く、それらの最小和デコーダの行うローカル反復の回数も少ないためである（例えば、ｌ回または２回）。
【００９０】
硬判定デコーダ７１６は、複雑さの低い任意の適切な硬判定復号化方式を使用して、ソフト・ポスト・プロセッサ７１２の出力ストリームに硬判定復号化を実行することによって、復号化済み出力ストリームを生成する。停止ブロック７１８における停止条件（Ｓ＜ＴＨ）によって、硬判定デコーダ７１６の復号化済み出力ストリームの送信先ブロックが決定される。停止ブロック７１８では、停止条件（Ｓ＜ＴＨ）が満たされる場合、硬判定デコーダ７１６からの復号化済み出力ストリームは、（図７のＡを経由して）バッファブロック７５６に直接送信される。その後、当該復号化済み出力ストリームは、反復デコーダにおける残りの反復を通過せずに、リードソロモンデコーダ７５４に送信される。
【００９１】
停止条件（Ｓ＜ＴＨ）が満たされない場合、図７に示す反復デコーダは反復２に進む。反復２において、硬判定デコーダ７１６からの復号化済み出力ストリームは、目標フィルタブロック７２２およびソフト・ポスト・プロセッサ・ブロック７３２のそれぞれの入力に送信される。加算器７２４は、目標フィルタブロック７２２の出力ストリームに含まれる再生済み等価済みサンプルを、入力ストリームに含まれる元の等価済みサンプルから減じる。
【００９２】
加算器７２４の出力ストリームは、ＬＭＦブロック７２６に送信される。乗算器７２８は、最小和デコーダ７１４の出力ストリームに含まれる外的情報に、スケール係数アルファを乗じる。加算器７３０は、ＬＭＦブロック７２６の出力ストリームに含まれる誤りサンプルを、乗算器７２８の出力ストリームに含まれるスケール変更済み外的情報に加える。
【００９３】
ソフト・ポスト・プロセッサ７３２は、硬判定デコーダ７１６および加算器７３０から出力ストリームをそれぞれ受信する。ソフト・ポスト・プロセッサ７３２は、検出される可能性が最も高いビットストリーム、および各検出ビットに対応した信頼性メトリック値などを含むソフト情報を生成する。ソフト・ポスト・プロセッサ７３２によって生成されたソフト情報は、加算器７３４の入力および硬判定デコーダ７３８の入力に送信される。
【００９４】
加算器７３４は、ソフト・ポスト・プロセッサ７３２の出力ストリームから、乗算器７２８の出力ストリームに含まれるスケール変更済み外的情報を減じる。加算器７３４の出力ストリームは、最小和デコーダブロック７３６の入力に送信される。最小和デコーダ７３６は、低密度・パリティ・チェック（ＬＤＰＣ）コードに最小和復号化アルゴリズムを適用して、加算器７３４からのソフト情報を用いたさらに信頼性の高い更新済みソフト情報を生成する。その後、最小和デコーダ７３６は、更新済みソフト情報と、加算器７３４からのソフト情報との差を計算して、外的情報を生成する。デコーダブロック７３６の復号化済み出力ストリームに含まれる外的情報は、次の反復における乗算器の入力に送信される（例えば、乗算器７４２）。また、最小和デコーダ７３６は、停止ブロック７４０に送信される早期停止値Ｓを生成する。Ｓは、例えば、満足されないシンドロームの数にすることができる。
【００９５】
硬判定デコーダブロック７３８は、複雑さの低い任意の適切な硬判定復号化方式を使用して、ソフト・ポスト・プロセッサ７３２の出力ストリームに硬判定復号化を実行する。停止ブロック７４０における閾値条件（Ｓ＜ＴＨ）によって、硬判定デコーダ７３８の復号化済み出力ストリームの送信先ブロックが決定される。停止ブロック７４０では、停止条件（Ｓ＜ＴＨ）が満たされる場合、硬判定デコーダ７４０からの復号化済み出力ストリームは、（図７のＡを経由して）バッファブロック７５６に直接送信される。その後、当該復号化済み出力ストリームは、反復デコーダにおける残りの反復を通過せずに、リードソロモンデコーダ７５４に送信される。
【００９６】
停止条件（Ｓ＜ＴＨ）が満たされない場合、図７に示す反復デコーダは反復３に進み、硬判定デコーダ７３８の復号化済み出力ストリームは、反復３における目標フィルタおよびソフト・ポスト・プロセッサに送信される。デコーダの反復３は、目標フィルタブロック７４１などの目標フィルタブロックから開始する。図７に示すデコーダの各々の追加反復は、上述したように、最後の反復Ｎを除いて、反復２の手順を繰り返す。最後の反復Ｎは、加算器７３４、最小和デコーダ７３６、硬判定デコーダ７３８、または停止ブロック７４０を含まない。その代わりに、ソフト・ポスト・プロセッサ７５０の出力ストリームを硬判定復号化ブロック７５２に送信して、ソフト情報を硬判定シンボルに変換する。ＲＳデコーダ７５４は、ＲＳ復号化技術を使用して、硬判定ブロック７５２の出力ストリームを復号化する。ＲＳデコーダ７５４は、等価済みサンプルにおける多数の誤りを訂正することができる。これらの誤りは、最小和デコーダでは訂正されない。
【００９７】
本発明の種々の実施例によれば、図１〜図７に関する上記のブロックは、ハードウェア回路、ソフトウェア、またはハードウェアとソフトウェアの組み合わせによって実装することができる。本発明の一部の実施例によれば、反復デコーダは、各タイプのブロックのうち１つのみを使用して、上記の手順を何度も繰り返すことによって実施することができる。この場合、各反復において異なるブロックを使用するというよりも、各反復において同じ一連のブロックを使用する。例えば、本発明の反復デコーダは、１つのポストプロセッサと、１つの最小和デコーダとを備えることができる。各反復において、復号化は、同じポストプロセッサおよび同じ最小和デコーダを使用して実行される。
【００９８】
本発明の典型的な実施例についての前述の説明は、図示および説明の目的で行われたものである。そのため、前述の説明は、網羅的であることを意図したものではなく、または本発明の適用範囲を、開示された厳密な形式に限定することを意図したものでもない。本発明においては、修正、種々の変更、および代用の自由裁量が意図されている。場合によっては、本発明の機能は、述べられたような対応するその他の機能を使用せずに利用することができる。上記の教示の見地から、本発明の適用範囲から逸脱することなく、多数の修正および変更が可能である。本発明の適用範囲は、この詳細な説明によって限定されることはなく、ここに添付された特許請求の範囲によって限定されるように意図されている。
【図面の簡単な説明】
【００９９】
【図１】本発明の一実施例による、誤り訂正および変調符号化方式を示す図である。
【図２】本発明の一実施例による反復誤り訂正デコーダの第１の例を示す図である。
【図３】本発明の別の実施例による反復誤り訂正デコーダの第２の例を示す図である。
【図４】本発明の別の実施例による反復誤り訂正デコーダの第３の例を示す図である。
【図５】本発明の別の実施例による反復誤り訂正デコーダの第４の例を示す図である。
【図６】本発明の別の実施例による反復誤り訂正デコーダの第５の例を示す図である。
【図７】本発明のさらに別の実施例による反復誤り訂正デコーダの第６の例を示す図である。
【符号の説明】
【０１００】
２０２…ＭＦ、２０４，３１８，２４０，…整合済みビタビ検出器、
２０６，２２０，２４２，…目標フィルタブロック、
２０８，２１７,２２２，２２６，２２９，２３９，２４４，２５０，２５３…加算器、２１０，２２４，２４６，…ＬＭＦ、
２１２，２２８，２５２…ソフト・ポスト・プロセッサ、
２１４，２３０，２５４，２６６…最小和デコーダ、
２１６，２３２，…乗算器、２６６…硬判定デコーダ、２７０…ＲＳデコーダ。
【図１】
2008257842.tif 000003
【図２】
2008257842.tif 000004
【図３】
2008257842.tif 000005
【図４】
2008257842.tif 000006
【図５】
2008257842.tif 000007
【図６】
2008257842.tif 000008
【図７】
2008257842.tif 000009