(57)【特許請求の範囲】
【請求項１】
第１の方向の誤り訂正符号と、前記第１の方向とは異なる第２の方向の誤り訂正符号とからなる二次元の誤り訂正符号内の誤りを訂正する誤り訂正方法であって、
前記第１の方向の誤り訂正符号についての誤り訂正を行う第１のステップと、
前記第２の方向の誤り訂正符号についての誤り訂正を行う第２のステップと、
前記第１のステップと前記第２のステップとが終了した後に、前記第１の方向の誤り訂正符号内の誤りの有無を示すポインタと、前記第２の方向の誤り訂正符号内の誤りの有無を示すポインタとを用いて誤訂正の有無を検出する第３のステップ
とを有し、
前記第３のステップで誤訂正が検出された場合は、前記第１の方向の誤り訂正符号についての誤り訂正、前記第２の方向の誤り訂正符号についての誤り訂正、イレージャ訂正の何れも行わないようにし、
前記第３のステップで誤訂正が検出されなかった場合であって、訂正されていない誤りが存在するときは、少なくとも前記第１の方向の誤り訂正符号についての誤り訂正を再度行うようにする
ことを特徴とする誤り訂正方法。
【請求項２】
さらに、前記第１の方向の誤り訂正符号についての誤り訂正を再度行った後に、前記第１の方向の誤り訂正符号内の誤りの有無を示すポインタと、前記第２の方向の誤り訂正符号内の誤りの有無を示すポインタとを用いて誤訂正の有無を検出する第４のステップを有し、
前記第４のステップで誤訂正が検出された場合は、前記第２の方向の誤り訂正符号についての誤り訂正、イレージャ訂正の何れも行わないようにし、
前記第４のステップで誤訂正が検出されなかった場合であって、訂正されていない誤りが存在するときは、前記第２の方向の誤り訂正符号についての誤り訂正、イレージャ訂正の何れかを行うようにする
ことを特徴とする請求項１に記載の誤り訂正方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ディジタル・データの誤りを訂正する誤り訂正方法に関する。
【０００２】
【従来の技術】
図３及び図４は、従来の誤り訂正方式のフローチャートを示し、図５は、二次元の誤り訂正符号Ｃ１，Ｃ２の符号構成を示す。入力データに対しＣＩ，Ｃ２符号のシンドロームを計算し（Ｓ３１）、符号語のシンドロームが０でなければ、誤りポインタを立てる（Ｓ３２）。すべてデータのシンドロームを確認した後、データ内にエラーがあるか否かを判断する（Ｓ４）。これは、誤りポインタが立っているか否かで判断される。
【０００３】
データ内にエラーが無ければ（Ｓ３３）、現在のポインタ（エラー無し）を出力して（Ｓ４９）、終了する。
【０００４】
データ内にエラーがあれば、Ｃ１符号を使って誤りを訂正する（Ｓ３４）。Ｃ１符号による訂正（Ｃ１訂正）によりＣ１符号及びＣ２符号のシンドロームが変化するので、ＣＩ符号及びＣ２符号の誤りポインタを更新し（Ｓ３５）、データ内にエラーがあるか否かを判断する（Ｓ３６）。
【０００５】
データ内にエラーが無ければ（Ｓ３６）、現在のポインタ（エラー無し）を出力して（Ｓ４９）、終了する。
【０００６】
データ内にエラーがあれば（Ｓ３６）、Ｃ２符号を使って誤りを訂正する（Ｓ３７）。Ｃ２符号による訂正（Ｃ２訂正）によってＣ２符号及びＣ１符号のシンドロームが変化するので、Ｃ１符号及びＣ２符号の誤りポインタを更新し（Ｓ３８）、データ内にエラーがあるか否かを判断する（Ｓ３９）。
【０００７】
データ内にエラーが無ければ（Ｓ３９）、現在のポインタ（エラー無し）を出力して（Ｓ４９）、終了する。
【０００８】
データ内にエラーがあれば（Ｓ３９）、Ｃ１符号を使って誤りを訂正する（Ｓ４０）。Ｃ１符号による訂正（Ｃ１訂正）によって、Ｃ１符号及びＣ２符号のシンドロームが変化するので、Ｃ１符号及びＣ２符号の誤りポインタを更新し（Ｓ４１）、データ内にエラーがあるか否かを判断する（Ｓ４２）。
【０００９】
データ内にエラーが無ければ（Ｓ４２）、現在のポインタ（エラーなし）を出力して（Ｓ４９）、終了する。
【００１０】
データ内にエラーがあれば（Ｓ４２）、イレージャ訂正かＣ２訂正かを選択する（Ｓ４３）。どちらを選択するかは、Ｃ１符号及びＣ２符号の誤りポインタの数等によって決定される。
【００１１】
Ｃ２訂正が選択されれば（Ｓ４３）、Ｃ２符号による訂正を実行し（Ｓ４５）、Ｃ２訂正によってＣ２符号及びＣ１符号のシンドロームが変化するので、Ｃ１符号及びＣ２符号の誤りポインタを更新し（Ｓ４７）、現在のポインタ（エラー無し）を出力して（Ｓ４９）、終了する。
【００１２】
イレージャ訂正が選択されれば（Ｓ４３）、イレージャ訂正を実行する（Ｓ４４）。全ての誤りを訂正できたか否かを判断する（Ｓ４６）。イレージャ訂正において全ての誤りを訂正できない場合（Ｓ４６）、レンジオーバー、又は、算出した誤り位置及び値をシンドロームに代入してもシンドロームがすべて０とならなかった等により、イレージャ訂正前の訂正処理によって誤訂正が発生していることがわかるので、全ての符号に対して誤りポインタを立てて（Ｓ４６）、終了する。
【００１３】
イレージャ訂正によって全てを訂正できた場合（Ｓ４６）、 Ｃ１符号及びＣ２符号の誤りポインタを更新し（Ｓ４７）、現在のポインタ（エラー無し）を出力して（Ｓ４９）、終了する。
【００１４】
このような誤り訂正処理の終了後に、誤りポインタを用いて誤り修正のために補間などを行なう。
【００１５】
【発明が解決しようとする課題】
しかし、従来例では、誤り訂正処理途中に誤訂正が発生した場合、Ｃ１訂正及びＣ２訂正の何れも誤訂正を検出できないことがある。
【００１６】
本発明は、このような問題点を解決し、誤訂正に伴うデータへの悪影響を軽減することができる誤り訂正方法を提示することを目的とする。
【００１７】
【課題を解決するための手段】
本発明に係る誤り訂正方法は、例えば、第１の方向の誤り訂正符号と、前記第１の方向とは異なる第２の方向の誤り訂正符号とからなる二次元の誤り訂正符号内の誤りを訂正する誤り訂正方法であって、前記第１の方向の誤り訂正符号についての誤り訂正を行う第１のステップと、前記第２の方向の誤り訂正符号についての誤り訂正を行う第２のステップと、前記第１のステップと前記第２のステップとが終了した後に、前記第１の方向の誤り訂正符号内の誤りの有無を示すポインタと、前記第２の方向の誤り訂正符号内の誤りの有無を示すポインタとを用いて誤訂正の有無を検出する第３のステップとを有し、前記第３のステップで誤訂正が検出された場合は、前記第１の方向の誤り訂正符号についての誤り訂正、前記第２の方向の誤り訂正符号についての誤り訂正、イレージャ訂正の何れも行わないようにし、前記第３のステップで誤訂正が検出されなかった場合であって、訂正されていない誤りが存在するときは、少なくとも前記第１の方向の誤り訂正符号についての誤り訂正を再度行うようにすることを特徴とする。
【００２３】
【発明の実施の形態】
以下、図面を参照して、本発明の実施の形態を詳細に説明する。
【００２４】
図１及び図２は、本発明の一実施例のフローチャートである。本実施例も、誤り訂正符号は、図５に示すような符号構成をとる。
【００２５】
入力データに対しＣ１符号及びＣ２符号の各シンドロームを計算し（Ｓ１）、符号語のシンドロームが０でなければ、シンドロームエラーポインタを立て、Ｃ１符号及びＣ２符号のシンドロームポインタ数を数える（Ｓ２）。すべてデータのシンドロームを確認した後、データ内にエラーがあるか否かを、例えば、シンドロームエラーポインタが立っているか否か等で判断する（Ｓ３）。
【００２６】
データ内にエラーが無ければ（Ｓ３）、現在のポインタ（エラー無し）を出力して（Ｓ２０）、終了する。
【００２７】
データ内にエラーがあれば（Ｓ３）、Ｃ１符号を使って誤りを訂正する（Ｓ４）。Ｃ１符号による訂正（Ｃ１訂正）によって、Ｃ１符号及びＣ２符号のシンドロームが変化するので、Ｃ１符号及びＣ２符号のシンドロームエラーポインタとは別の誤りポインタを立てて、Ｃ１符号及びＣ２符号の誤りポインタ数を数え（Ｓ５）、データ内にエラーがあるか否かを判断する（Ｓ６）。
【００２８】
データ内にエラーが無ければ（Ｓ６）、現在のポインタ（エラーなし）を出力して（Ｓ２０）、終了する。
【００２９】
データ内にエラーがあれば（Ｓ６）、Ｃ２符号を使って誤りを訂正する（Ｓ７）。Ｃ２符号による訂正（Ｃ２訂正）によって、Ｃ１符号及びＣ２符号のシンドロームが変化するので、Ｃ１符号及びＣ２符号の誤りポインタを更新し、Ｃ１符号及びＣ２符号の誤りポインタ数を数える（Ｓ８）。
【００３０】
そして、Ｃ１符号及びＣ２符号のポインタ数が正常かどうかを調べる（Ｓ９）。例えば、Ｃ１符号及びＣ２符号の誤りポインタ数をそれぞれＮ１，Ｎ２としたとき、誤訂正によって、Ｎ１＝０でＮ２＞０、又はＮ１＞０でＮ２＝０といったような異常が発生するので、これらを検出する。ポインタ数に異常が起こっていれば（Ｓ９）、シンドロームエラーポインタを使用してシンドローム計算時のポインタを出力して（Ｓ２１）、終了する。異常が起こっていなければ（Ｓ９）、データ内にエラーがあるか否かを判断する（Ｓ１０）。
【００３１】
データ内にエラーが無ければ（Ｓ１０）、現在のポインタ（エラーなし）を出力して（Ｓ２０）、終了する。
【００３２】
データ内にエラーがあれば（Ｓ１０）、Ｃ１符号を使って誤りを訂正する（Ｓ１１）。Ｃ１符号による訂正（Ｃ１訂正）によって、Ｃ１符号及びＣ２符号のシンドロームが変化するので、Ｃ１符号及びＣ２符号の誤りポインタを更新し、Ｃ１符号及びＣ２符号の誤りポインタ数を数える（Ｓ１２）。そして、ここでも、誤りポインタの数に異常が起こっているか否かを判定する（Ｓ１３）。
【００３３】
異常があれば（Ｓ１３）、シンドロームエラーポインタを使用して、シンドローム計算時のポインタを出力して（Ｓ２１）、終了する。
【００３４】
異常が起こっていなければ（Ｓ１３）、データ内にエラーがあるか否かを判断する（Ｓ１４）。データ内にエラーが無ければ（Ｓ１４）、現在のポインタ（エラーなし）を出力して（Ｓ２０）、終了する。データ内にエラーがあれば（Ｓ１４）、イレージャ訂正かＣ２訂正かを選択する（Ｓ１５）。イレージャ訂正かＣ２訂正かは、Ｃ１符号及びＣ２符号のポインタの数等によって決定される。
【００３５】
Ｃ２訂正が選択されれば（Ｓ１５）、Ｃ２符号により誤りが訂正され（Ｓ１７）、イレージャ訂正が選択されれば（Ｓ１５）、イレージャ訂正が実行される（Ｓ１６）。Ｃ２訂正又はイれージャ訂正によりＣ１符号及びＣ２符号のシンドロームが変化するので、Ｃ１符号及び，Ｃ２符号の誤りポインタを更新し、Ｃ１符号及びＣ２符号の誤りポインタ数を数え（Ｓ１８）、誤りポインタの数に異常が起こっているか否かを判定する（Ｓ１９）。
【００３６】
Ｃ２訂正後、誤りポインタ数に異常が起こっていれば（Ｓ１９）、シンドロームエラーポインタを使用してシンドローム計算時のポインタを出力し（Ｓ２１）、終了する。Ｃ２訂正後に誤りポインタ数に異常が起こっていなけれぱ（Ｓ１９）、現在のポインタを出力して（Ｓ２０）、終了する。
【００３７】
イレージャ訂正後、Ｃ１符号及びＣ２符号の誤りポインタ数が共に０ならば、即ち、ポインタ数に異常がなければ（Ｓ１９）、現在のポインタ（エラーなし）を出力して（Ｓ２０）、終了する。イレージャ訂正後、Ｃ１符号及びＣ２のいずれかの誤りポインタ数が０でなければ（Ｓ１９）、シンドロームエラーポインタを使用してシンドローム計算時のポインタを出力し（Ｓ２１）、終了する。これは、イレージャ訂正において、レンジオーバー、又は、算出した誤り位置及び値をシンドロームに代入してもシンドロームがすべて０とならなかった等により、イレージャ訂正前の訂正処理によって誤訂正が発生していることがわかるからである。
【００３８】
また、シンドローム計算後の誤訂正確率は、各訂正時の誤訂正確率よりも非常に低いので、シンドロームエラーポインタは信頼性が高い。従って、全てのエラーポインタを立てる必要はない。
【００３９】
このような誤り訂正処理の終了後に、誤りポインタを用いて補間を行なう。
【００４０】
本実施例では、誤り訂正の順序をＣ１訂正、Ｃ２訂正、Ｃ１訂正及び、Ｃ２訂正又はイレージャ訂正として説明したが、Ｃ１訂正、Ｃ２訂正又はイレージャ訂正、Ｃ１訂正、Ｃ２訂正及びイレージャ訂正というようにしてもよい。
【００４１】
【発明の効果】
以上の説明から容易に理解できるように、本発明によれば、誤訂正に伴うデータへの悪影響を軽減することができる。
【図面の簡単な説明】
【図１】  本発明の一実施例のフローチャートの一部である。
【図２】  本実施例のフローチャートの残りである。
【図３】  従来例のフローチャートの一部である。
【図４】  従来例のフローチャートの残りである。
【図５】  誤り訂正符号Ｃ１，Ｃ２の符号構成を示す図である。
【図１】
0003880144.tif 000002
【図２】
0003880144.tif 000003
【図３】
0003880144.tif 000004
【図４】
0003880144.tif 000005
【図５】
0003880144.tif 000006