(57)【特許請求の範囲】
【請求項１】
符号化された情報を復号化し、もとの情報を得る復号化装置において、
復号化の対象となるデータを記憶する記憶手段と、
前記記憶手段に記憶された前記データの行方向と列方向に対してそれぞれエラー訂正処理を行うエラー訂正手段と、
前記記憶手段に記憶された前記データの行方向または列方向のうちのいずれか一の方向に対して前記エラー訂正手段がエラー訂正を実行した結果に応じて、第１のフラグを生成する第１のフラグ生成手段と、
前記記憶手段に記憶された前記データの行方向または列方向のうちの前記一の方向と異なる他の方向に対して前記エラー訂正手段がエラー訂正を実行した結果に応じて、第２のフラグを生成する第２のフラグ生成手段と、
前記第１のフラグと前記第２のフラグを用いて補間フラグを生成する補間フラグ生成手段と
を備え、
前記第１のフラグ生成手段は、前記記憶手段に記憶された前記データの行方向と列方向のエラー訂正の後、さらに前記一の方向に対して第２回目のエラー訂正を前記エラー訂正手段が実行したとき、第２回目の前記一の方向のエラー訂正結果に応じて、新たに第３のフラグを生成し、
前記補間フラグ生成手段は、新たに生成した前記第３のフラグと前記第２のフラグを用いて補間フラグを生成し、
前記記憶手段は、前記補間フラグを前記データと異なる領域に独立してさらに記憶し、
前記補間フラグ生成手段は、前記一の方向に対する第２回目のエラー訂正により誤訂正がなければ、新たに生成した前記第３のフラグと前記第２のフラグの論理積を前記補間フラグとし、前記一の方向に対する第２回目のエラー訂正により誤訂正があれば、新たに生成した前記第３のフラグと前記第２のフラグの論理和を前記補間フラグとする
ことを特徴とする復号化装置。
【請求項２】
符号化された情報を復号化し、もとの情報を得る復号化装置において、
復号化の対象となるデータを記憶する記憶手段と、
前記記憶手段に記憶された前記データの行方向と列方向に対してそれぞれエラー訂正処理を行うエラー訂正手段と、
前記記憶手段に記憶された前記データの行方向または列方向のうちのいずれか一の方向に対して前記エラー訂正手段がエラー訂正を実行した結果に応じて、第１のフラグを生成する第１のフラグ生成手段と、
前記記憶手段に記憶された前記データの行方向または列方向のうちの前記一の方向と異なる他の方向に対して前記エラー訂正手段がエラー訂正を実行した結果に応じて、第２のフラグを生成する第２のフラグ生成手段と、
前記第１のフラグと前記第２のフラグを用いて補間フラグを生成する補間フラグ生成手段と
を備え、
前記第１のフラグ生成手段は、前記記憶手段に記憶された前記データの行方向と列方向のエラー訂正の後、さらに前記一の方向に対して第２回目のエラー訂正を前記エラー訂正手段が実行したとき、第２回目の前記一の方向のエラー訂正結果に応じて、新たに第３のフラグを生成し、
前記補間フラグ生成手段は、新たに生成した前記第３のフラグと前記第２のフラグを用いて補間フラグを生成し、
前記記憶手段は、前記補間フラグを前記データと異なる領域に独立してさらに記憶し、
前記補間フラグ生成手段は、前記一の方向に対する第２回目のエラー訂正によりエラーがあれば、新たに生成した前記第３のフラグと前記第２のフラグの論理積を演算し、それが０であるか否かに対応して、前記補間フラグを生成する
ことを特徴とする復号化装置。
【請求項３】
前記補間フラグ生成手段は、前記論理積が０であれば、前記補間フラグを１に設定する
ことを特徴とする請求項２に記載の復号化装置。
【請求項４】
前記補間フラグ生成手段は、前記論理積が０でなく、前記一の方向に対する第２回目のエラー訂正により誤訂正があれば、前記補間フラグを１に設定する
ことを特徴とする請求項２に記載の復号化装置。
【請求項５】
前記補間フラグ生成手段は、前記論理積が０でなく、前記一の方向に対する第２回目のエラー訂正により誤訂正がなければ、新たに生成した前記第３のフラグと前記第２のフラグの論理積を前記補間フラグとする
ことを特徴とする請求項２に記載の復号化装置。
【請求項６】
符号化された情報を復号化し、もとの情報を得る復号化方法において、
復号化の対象となるデータを記憶する記憶ステップと、
前記記憶ステップで記憶された前記データの行方向と列方向に対してそれぞれエラー訂正処理を行うエラー訂正ステップと、
前記記憶ステップで記憶された前記データの行方向または列方向のうちのいずれか一の方向に対して前記エラー訂正ステップがエラー訂正を実行した結果に応じて、第１のフラグを生成する第１のフラグ生成ステップと、
前記記憶ステップで記憶された前記データの行方向または列方向のうちの前記一の方向と異なる他の方向に対して前記エラー訂正ステップがエラー訂正を実行した結果に応じて、第２のフラグを生成する第２のフラグ生成ステップと、
前記第１のフラグと前記第２のフラグを用いて補間フラグを生成する補間フラグ生成ステップと
を備え、
前記第１のフラグ生成ステップは、前記記憶ステップで記憶された前記データの行方向と列方向のエラー訂正の後、さらに前記一の方向に対して第２回目のエラー訂正を前記エラー訂正ステップが実行したとき、第２回目の前記一の方向のエラー訂正結果に応じて、新たに第３のフラグを生成し、
前記補間フラグ生成ステップは、新たに生成した前記第３のフラグと前記第２のフラグを用いて補間フラグを生成し、
前記記憶ステップは、前記補間フラグを前記データと異なる領域に独立してさらに記憶し、
前記補間フラグ生成ステップは、前記一の方向に対する第２回目のエラー訂正によりエラーがあれば、新たに生成した前記第３のフラグと前記第２のフラグの論理積を演算し、それが０であるか否かに対応して、前記補間フラグを生成する
ことを特徴とする復号化方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、復号化装置および復号化方法に関し、特に、復号化するデータの行方向と列方向に対してそれぞれエラー訂正処理が実行され、その結果に基づいて行単位および列単位でエラーフラグを生成する復号化装置および復号化方法に関する。
【０００２】
【従来の技術】
例えば、光ディスク再生装置などにおいて、光ビームにより読み出された情報は、光ディスクの傷などに起因する読みとりエラーを含むため、エラー訂正が施される。
【０００３】
図３３は、従来の光ディスク再生装置の構成例を示す図である。この図において、光ディスク１には、画像や音声などのデータが可変レートで記録されている。ピックアップ２は、光ディスク１に記録されている情報をレーザビームにより読み出す。ピックアップ２が出力する再生信号は、復調回路３により復調され、セクタ検出回路４に供給される。セクタ検出回路４は、再生信号をもとにセクタを検出する。ＥＣＣ（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ  Ｃｏｄｅ）回路５は、セクタ検出回路４から入力された再生信号に対してエラー検出およびエラー訂正を施す。
【０００４】
セクタ検出回路４において、光ディスク１のセクタに割り当てられたセクタ番号が正常に検出されなかった場合、トラックジャンプ判定回路１８にセクタ番号異常信号が出力される。ＥＣＣ回路５は、訂正不能のデータが生じた場合に、トラックジャンプ判定回路１８に対して訂正不能エラー発生信号を出力する。エラー訂正されたデータは、ＥＣＣ回路５からリングバッファメモリ７に送出されて記憶される。
【０００５】
このときリングバッファ制御回路６は、セクタ検出回路４の出力から、各セクタ毎のアドレスを読みとり、そのアドレスに対応するリングバッファメモリ７上の書き込みアドレス（書き込みポインタＷＰ）を指定する。また、リングバッファ制御回路６は、後段の多重化データ分離回路８からのコードリクエスト信号に応じて、リングバッファメモリ７に書き込まれたデータの読み出しアドレス（読み出しポインタＲＰ）を指定し、その読み出しポインタＲＰからデータを読み出して、多重化データ分離回路８に供給する。
【０００６】
多重化データ分離回路８のヘッダ分離回路９は、リングバッファメモリ７から供給されたデータからパックヘッダとパケットヘッダを分離して分離回路制御回路１１に供給する。分離回路制御回路１１は、ヘッダ分離回路９から供給されたパケットヘッダのストリームＩＤ（Ｓｔｒｅａｍ  Ｉｄｅｎｔｉｆｉｅｒ）情報に従い、スイッチング回路１０の入力端子Ｇと出力端子（被切替端子）Ｈ１，Ｈ２を順次サイクリックに切り替えることにより、時分割多重化されたビデオコードデータとオーディオコードデータを正しく分離し、対応するコードバッファ１３または１５に供給する。
【０００７】
ビデオコードバッファ１３は、内部のコードバッファの残量に応じて、多重化データ分離回路８に対してコードリクエストを発生する。また、ビデオコードバッファ１３は、受け取ったデータを記憶すると共に、ビデオデコーダ１４からのコードリクエストの入力を受け、内部データを出力する。ビデオデコーダ１４は、供給されたデータをデコードしてビデオ信号を再生し、出力端子９１から出力する。
【０００８】
オーディオコードバッファ１５は、内部のコードバッファの残量に応じて、多重化データ分離回路８に対してコードリクエストを供給し、その結果供給されたデータを記憶する。また、このオーディオコードバッファ１５は、オーディオデコーダ１６からのコードリクエストを受け、内部のデータを出力する。オーディオデコーダ１６は、供給されたデータをデコードしてオーディオ信号を再生し、出力端子９２から出力する。
【０００９】
このように、ビデオデータとオーディオデータは、後段の回路（出力端子により近い回路）からの転送要求に応じて前段の回路から適宜供給される。例えば、ビデオデコーダ１４は、ビデオコードバッファ１３に対してデータの転送要求を行い、多重化データ分離回路８は、リングバッファ制御回路６に対してデータの転送要求を行う。そして、データは、リングバッファメモリ７からビデオデコーダ１４へと、転送要求が伝達されるのとは逆の方向に伝達されていくことになる。
【００１０】
次に、記録データのフォーマットについて説明する。この例においては、１クラスタ（３２ｋバイト）を１単位として、データが記録されている。このクラスタの構成を以下に詳述する。
【００１１】
すなわち、２ｋバイト（２０４８バイト）のデータが、１セクタ分のデータとして抽出され、これに図３４に示すように、１６バイトのオーバーヘッドが付加される。このオーバーヘッドには、セクタアドレスと、エラー検出のためのエラー検出符号（ＥＤＣ（Ｅｒｒｏｒ  Ｄｅｔｅｃｔｉｏｎ  Ｃｏｄｅ））などが含まれている。
【００１２】
この、合計２０６４（＝２０４８＋１６）バイトの１セクタ分のデータが、図３５に示すように、１２×１７２（＝２０６４）バイトのデータとされる。そして、この１セクタ分のデータが１６個集められ、１９２（＝１２×１６）×１７２バイトのデータとされる。この１９２×１７２バイトのデータに対して、１６バイトの外符号（ＰＯ）が、縦方向に各バイト毎にパリティとして付加される。また、２０８（＝１９２＋１６）×１７２バイトのデータとＰＯパリティに対して、１０バイトの内符号（ＰＩ）が、横方向に各バイト毎にパリティとして付加される。
【００１３】
さらに、このようにして２０８（＝１９２＋１６）×１８２（＝１７２＋１０）バイトにブロック化されたデータのうち、１６×１８２バイトの外符号（ＰＯ）の行は、１６個の１×１８２バイトの行に区分され、図３６に示すように、１２×１８２バイトの番号０乃至番号１５の１６個のセクタデータの下に１行ずつ挿入されて、インターリーブされる。そして、１３（＝１２＋１）×１８２バイトのデータが１セクタのデータとされる。
【００１４】
さらに、図３６に示す２０８×１８２バイトのデータは、図３７に示すように、縦方向に２分割され、１フレームを９１バイトのデータで構成して、２０８×２フレームのデータとされる。９１バイトのフレームデータの先頭には、さらに２バイトのフレーム同期信号（ＦＳ）が付加される。その結果、図３７に示すように、１フレームのデータは合計９３バイトのデータとなり、合計２０８×（９３×２）バイトのブロックのデータとなる。これが、１クラスタ（１ＥＣＣブロック）分のデータとなる。そのオーバーヘッド部分を除いた実データ部の大きさは３２ｋバイト（＝２０４８×１６／１０２４ｋバイト）となる。
【００１５】
すなわち、この例の場合、１クラスタ（１ＥＣＣブロック）が１６セクタより構成され、１セクタが２４フレームにより構成される。このようなデータが光ディスク１にクラスタ単位で記録されていることになる。
【００１６】
次に、図３３に示す例において、データのエラー訂正が実行され、エラーデータを補間するための補間フラグが生成される場合の動作について説明する。
【００１７】
図３８は、図３３の例において実行されるセクタデータのエラー判定方法の処理を説明するフローチャートである。この処理は、ＥＣＣ回路５により、内符号ＰＩを用いて図３５の行方向（横方向）に第１回目の訂正を行い（以下、ＰＩ１訂正という）、次に外符号ＰＯを用いて列方向（縦方向）の訂正を行い（以下、ＰＯ訂正という）、さらに、内符号ＰＩを用いて行方向に第２回目の訂正が行われた（以下、ＰＩ２訂正という）場合に実行される。
【００１８】
この処理では、ステップＳ１において、ＰＩ２訂正の結果、対象とするＥＣＣブロックにおいて、訂正不能のエラーが存在するか否かが判定される。訂正不能のエラーが存在しない（ＮＯ）と判定した場合は、ステップＳ４に進み、また、訂正不能のエラーが存在する（ＹＥＳ）と判定した場合は、ステップＳ２に進む。
【００１９】
ステップＳ２では、光ディスク１を再リード（再び再生）するか否かが判定される。すなわち、
（１）訂正不能のエラーが存在するＥＣＣブロックを光ディスク１から再度読み込むか、
または、
（２）そのＥＣＣブロックのデータに補間フラグを付加して出力する
のいずれにするのかが判定される。光ディスク１を再リードする（１）と判定された場合は、ステップＳ３に進み、光ディスク１を再リードし、ステップＳ１の処理に戻る。また、そのＥＣＣブロックのデータを使用しない（２）と判定された場合は、そのブロックの全てのデータに対して補間フラグ（補間が必要であることを示すフラグ）が付加され、ステップＳ４に進む。
【００２０】
次に、ステップＳ４では、セクタのＥＤＣチェック（図３４で説明した各セクタ毎に挿入されているエラー検出符号によるエラーの有無のチェック）の結果が正常であるか否かが判定される。すなわち、各セクタにエラーが含まれているか否かが検出される。セクタのＥＤＣチェックの結果が正常である（エラーがない）（ＹＥＳ）と判定された場合は、ステップＳ７に進み、データをそのまま出力する。また、セクタのＥＤＣチェックの結果が正常ではない（エラーがある）（ＮＯ）と判定された場合は、ステップＳ５に進む。
【００２１】
ステップＳ５では、光ディスク１を再リードするか否かが判定される。すなわち、
（１）エラーを含むセクタを光ディスク１から再度リードするか、
または、
（２）エラーを含むセクタのデータに補間フラグを付加して出力する
の何れかを選択する。光ディスク１の再リードを行う（１）と選択された場合、ステップＳ６に進み、エラーを生じたセクタを光ディスク１から再度読み出した後、ステップＳ１に戻る。また、エラーを含むセクタのデータを補間フラグを付加して出力する（２）と選択された場合は、そのセクタの全てのデータに対して補間フラグが付加され、ステップＳ７に進む。ステップＳ７では、処理されたデータ（いまの場合、補間フラグが付加されているデータ）が出力され、処理を終了する。
【００２２】
【発明が解決しようとする課題】
ところで、以上に説明した従来の例において、ＥＣＣ回路５により訂正不可能なデータが検出された場合は、補間フラグがそのＥＣＣブロックのすべてのデータに対して付加されることになる。このとき、ＥＣＣブロックを構成する各データは８ビット（１バイト）であり、また、補間フラグは１ビットとされている。従って、補間フラグが付加されたデータのビット長は９ビットとなり、このような９ビットのデータを記憶するためには、データを９ビット単位で記憶するメモリが必要となるが、そのようなメモリはあまり一般的ではなく、また高価であるため、装置の製造コストが高くなるという課題があった。
【００２３】
また、ある長さ（１ＥＣＣブロック）のデータを１処理単位としてＥＣＣ復号化が行われた場合、補間フラグの生成方法はこの処理単位に対しては同一の方法とされる。従って、処理単位（１ＥＣＣブロック）より小さい単位で補間フラグの生成方法を変更することはできないという課題があった。例えば、１セクタ単位で補間フラグの生成方法を変更することはできないという課題があった。
【００２４】
本発明は、以上のような状況に鑑みてなされたものであり、復号化装置のコストを削減すると共に、補間フラグの生成方法をセクタ単位で自由に変更し、もって、よりきめのこまかい単位でデータを有効に利用することを可能とする。
【００２５】
また、本発明は、補間が不可能なセクタのデータに対しては、エラーの検出確率を向上させると共に、エラーが生じていないセクタのデータの使用を可能とする。
【００２６】
【課題を解決するための手段】
本発明の第１の復号化装置は、復号化の対象となるデータを記憶する記憶手段と、記憶手段に記憶されたデータの行方向と列方向に対してそれぞれエラー訂正処理を行うエラー訂正手段と、記憶手段に記憶されたデータの行方向または列方向のうちのいずれか一の方向に対してエラー訂正手段がエラー訂正を実行した結果に応じて、第１のフラグを生成する第１のフラグ生成手段と、記憶手段に記憶されたデータの行方向または列方向のうちの一の方向と異なる他の方向に対してエラー訂正手段がエラー訂正を実行した結果に応じて、第２のフラグを生成する第２のフラグ生成手段と、第１のフラグと第２のフラグを用いて補間フラグを生成する補間フラグ生成手段とを備え、第１のフラグ生成手段は、記憶手段に記憶されたデータの行方向と列方向のエラー訂正の後、さらに一の方向に対して第２回目のエラー訂正をエラー訂正手段が実行したとき、第２回目の一の方向のエラー訂正結果に応じて、新たに第３のフラグを生成し、補間フラグ生成手段は、新たに生成した第３のフラグと第２のフラグを用いて補間フラグを生成し、記憶手段は、補間フラグをデータと異なる領域に独立してさらに記憶し、補間フラグ生成手段は、一の方向に対する第２回目のエラー訂正により誤訂正がなければ、新たに生成した第３のフラグと第２のフラグの論理積を補間フラグとし、一の方向に対する第２回目のエラー訂正により誤訂正があれば、新たに生成した第３のフラグと第２のフラグの論理和を補間フラグとすることを特徴とする。
本発明の第２の復号化装置は、復号化の対象となるデータを記憶する記憶手段と、記憶手段に記憶されたデータの行方向と列方向に対してそれぞれエラー訂正処理を行うエラー訂正手段と、記憶手段に記憶されたデータの行方向または列方向のうちのいずれか一の方向に対してエラー訂正手段がエラー訂正を実行した結果に応じて、第１のフラグを生成する第１のフラグ生成手段と、記憶手段に記憶されたデータの行方向または列方向のうちの一の方向と異なる他の方向に対してエラー訂正手段がエラー訂正を実行した結果に応じて、第２のフラグを生成する第２のフラグ生成手段と、第１のフラグと第２のフラグを用いて補間フラグを生成する補間フラグ生成手段とを備え、第１のフラグ生成手段は、記憶手段に記憶されたデータの行方向と列方向のエラー訂正の後、さらに一の方向に対して第２回目のエラー訂正をエラー訂正手段が実行したとき、第２回目の一の方向のエラー訂正結果に応じて、新たに第３のフラグを生成し、補間フラグ生成手段は、新たに生成した第３のフラグと第２のフラグを用いて補間フラグを生成し、記憶手段は、補間フラグをデータと異なる領域に独立してさらに記憶し、補間フラグ生成手段は、一の方向に対する第２回目のエラー訂正によりエラーがあれば、新たに生成した第３のフラグと第２のフラグの論理積を演算し、それが０であるか否かに対応して、補間フラグを生成することを特徴とする。
前記補間フラグ生成手段は、論理積が０であれば、補間フラグを１に設定するようにすることができる。
前記補間フラグ生成手段は、論理積が０でなく、一の方向に対する第２回目のエラー訂正により誤訂正があれば、補間フラグを１に設定するようにすることができる。
前記補間フラグ生成手段は、論理積が０でなく、一の方向に対する第２回目のエラー訂正により誤訂正がなければ、新たに生成した第３のフラグと第２のフラグの論理積を補間フラグとするようにすることができる。
【００２７】
本発明の復号化方法は、復号化の対象となるデータを記憶する記憶ステップと、記憶ステップで記憶されたデータの行方向と列方向に対してそれぞれエラー訂正処理を行うエラー訂正ステップと、記憶ステップで記憶されたデータの行方向または列方向のうちのいずれか一の方向に対してエラー訂正ステップがエラー訂正を実行した結果に応じて、第１のフラグを生成する第１のフラグ生成ステップと、記憶ステップで記憶されたデータの行方向または列方向のうちの一の方向と異なる他の方向に対してエラー訂正ステップがエラー訂正を実行した結果に応じて、第２のフラグを生成する第２のフラグ生成ステップと、第１のフラグと第２のフラグを用いて補間フラグを生成する補間フラグ生成ステップとを備え、第１のフラグ生成ステップは、記憶ステップで記憶されたデータの行方向と列方向のエラー訂正の後、さらに一の方向に対して第２回目のエラー訂正をエラー訂正ステップが実行したとき、第２回目の一の方向のエラー訂正結果に応じて、新たに第３のフラグを生成し、補間フラグ生成ステップは、新たに生成した第３のフラグと第２のフラグを用いて補間フラグを生成し、記憶ステップは、補間フラグをデータと異なる領域に独立してさらに記憶し、補間フラグ生成ステップは、一の方向に対する第２回目のエラー訂正によりエラーがあれば、新たに生成した第３のフラグと第２のフラグの論理積を演算し、それが０であるか否かに対応して、補間フラグを生成することを特徴とする。
【００２８】
本発明の第１の復号化装置においては、復号化の対象となるデータが記憶され、記憶されたデータの行方向と列方向に対してそれぞれエラー訂正処理が行われ、記憶されたデータの行方向または列方向のうちのいずれか一の方向に対してエラー訂正を実行した結果に応じて、第１のフラグが生成され、記憶されたデータの行方向または列方向のうちの一の方向と異なる他の方向に対してエラー訂正を実行した結果に応じて、第２のフラグが生成され、第１のフラグと第２のフラグを用いて補間フラグが生成される。また、記憶されたデータの行方向と列方向のエラー訂正の後、さらに一の方向に対して第２回目のエラー訂正が実行されたとき、第２回目の一の方向のエラー訂正結果に応じて、新たに第３のフラグが生成され、新たに生成した第３のフラグと第２のフラグを用いて補間フラグが生成される。また、補間フラグがデータと異なる領域に独立して記憶される。さらに、一の方向に対する第２回目のエラー訂正により誤訂正がなければ、新たに生成した第３のフラグと第２のフラグの論理積が補間フラグとされ、一の方向に対する第２回目のエラー訂正により誤訂正があれば、新たに生成した第３のフラグと第２のフラグの論理和が補間フラグとされる。
【００２９】
本発明の第２の復号化装置および復号化方法においては、復号化の対象となるデータが記憶され、記憶されたデータの行方向と列方向に対してそれぞれエラー訂正処理が行われ、記憶されたデータの行方向または列方向のうちのいずれか一の方向に対してエラー訂正を実行した結果に応じて、第１のフラグが生成され、記憶されたデータの行方向または列方向のうちの一の方向と異なる他の方向に対してエラー訂正を実行した結果に応じて、第２のフラグが生成され、第１のフラグと第２のフラグを用いて補間フラグが生成される。また、記憶されたデータの行方向と列方向のエラー訂正の後、さらに一の方向に対して第２回目のエラー訂正をエラー訂正ステップが実行したとき、第２回目の一の方向のエラー訂正結果に応じて、新たに第３のフラグが生成され、新たに生成した第３のフラグと第２のフラグを用いて補間フラグが生成される。また、補間フラグがデータと異なる領域に独立して記憶される。さらに、一の方向に対する第２回目のエラー訂正によりエラーがあれば、新たに生成した第３のフラグと第２のフラグの論理積が演算され、それが０であるか否かに対応して、補間フラグが生成される。
【００３０】
【発明の実施の形態】
図１は本発明の復号化装置において用いられるエラーフラグと補間フラグを説明する図である。従来の例では、ＥＣＣ処理により得られた、エラーデータの補間の必要性を示す補間フラグは、ＰＩ２訂正の結果、または、セクタのＥＤＣチェックの結果に対応して、直ちに生成されていた。本実施例では、行方向の第１回目のエラー訂正処理であるＰＩ１訂正の結果に対応して、ＰＩ１フラグ（２０８ビットのエラーフラグ）が生成され、列方向のエラー訂正処理であるＰＯ訂正の結果に対応して、ＰＯフラグ（１７２ビットのエラーフラグ）が生成され、さらに、行方向の第２回目のエラー訂正処理であるＰＩ２訂正の結果に対応して、ＰＩ２フラグ（２０８ビットのエラーフラグ）が生成される。そして、これらのエラーフラグ（ＰＩ１フラグ、ＰＩ２フラグ、およびＰＯフラグ）の状態に応じて、ＥＣＣブロックのメインデータ（パリティを除く、１９２×１７２バイトのデータ）に対応する１９２×１７２ビットの補間フラグをさらに生成するようになされている。
【００３１】
なお、本発明の復号化装置の主要部分の構成は、図３３に示す従来例における場合と同様であるので、その説明は省略する。
【００３２】
図２は、本発明の図３３の復調回路３（ＲＦ処理回路３０、ＥＦＭ＋復調回路３１）、セクタ検出回路４（ＳＢＣＤ回路３４、ＲＡＭコントローラ３５、ＲＡＭ３７）、およびＥＣＣ回路５（ＲＡＭコントローラ３５、ＥＣＣ制御回路３６、ＲＡＭ３７、ＥＣＣコア回路３８、ＯＣＴＬ回路３９）、並びにその周辺の回路の詳細な構成の一例を示す図である。
【００３３】
この図において、ＲＦ処理回路３０は、図３３に示すピックアップ２からのＲＦ信号の入力を受け、この信号を２値化した後、ＥＦＭ＋復調回路３１に出力する。ＥＦＭ＋復調回路３１は、入力された信号に対してＥＦＭ＋復調を施すと共に、同期パターンの検出を行う。ＣＬＶ制御回路３２は、ＥＦＭ＋復調回路３１が出力する同期パターンに基づき、ドライブインタフェース（以下、ドライブＩＦと略記する）３３を制御する。ＳＢＣＤ（サブコード）回路３４はＥＦＭ＋復調回路３１の出力からセクタの検出を行う。ＲＡＭコントローラ３５は、ＲＡＭ３７の読み書きを制御する。
【００３４】
なお、ＲＡＭ３７は、図３３に示すリングバッファメモリ７（記憶手段、記憶ステップ）とは異なる符号が付してあり、別の構成としているが、これらを同一の構成としてもよい。
【００３５】
ＲＡＭ３７は、ＥＣＣ制御回路３６がエラー訂正処理などを実行する際に、データ等を一時的に格納するようになされている。ＥＣＣコア回路３８（第１のフラグ生成手段、第１のフラグ生成ステップ、第２のフラグ生成手段、第２のフラグ生成ステップ）は、リードソロモン符号（ＰＩとＰＯ）を用いて、後述するＥＣＡ，ＥＣＤ，ＳＦＬＧなどを生成し、ＥＣＣ制御回路３６に出力する。ＥＣＣ制御回路３６は、ＥＣＣコア回路３８から供給されるＥＣＡ，ＥＣＤ，ＳＦＬＧなどを用いて、実際にエラー訂正を行う。ＯＣＴＬ回路３９は、デスクランブル処理、ＥＤＣチェック、または、出力データの制御等を行う。また、ホストＣＰＵ４０は、装置の各部の制御を行うようになされている。
【００３６】
次に、図２に示す実施例の動作について説明する。
【００３７】
光ディスク１からの再生信号は、ＲＦ処理回路３０において２値化信号に変換される。そして、２値化された信号から、ＥＦＭ＋復調回路３１により同期パターンが検出される。そして、ＣＬＶ制御回路３２において、この同期パターンに基づき、ラフサーボがかけられ、その結果、データ中のシンクコード（Ｓｙｎｃ  Ｃｏｄｅ）（図３におけるＳＹ０乃至ＳＹ７）がさらに検出され、ドライブインタフェース３３を介して光ディスク１の回転に対して、ＰＬＬ（Ｐｈａｓｅ  Ｌｏｃｋｅｄ  Ｌｏｏｐ）による位相サーボがかけられる。
【００３８】
図３に、光ディスク１の物理セクタの構成例を示す。この図に示すように、物理セクタは、横方向に２つのシンクフレーム（Ｓｙｎｃ  ｆｒａｍｅ）、縦方向に１３個のシンクフレーム、合計で２６個のシンクフレームにより構成されている。各シンクフレームは３２チャンネルビット（変調される前のデータビットで表現すると１６ビット（＝２バイト））のシンクコード（ＳＹ０乃至ＳＹ７）と、１４５６チャンネルビット（変調される前のデータビットで表現すると７２８ビット（＝９１バイト））のデータ部から構成される。先頭のシンクフレームのデータ部には、ＩＤ情報（セクタ番号）とＩＥＣ（ＩＤのＥＣＣ）情報の他、メインデータ（ｍａｉｎ  ｄａｔａ）が格納されている。
【００３９】
３２チャンネルビットのシンクパターンは、データ中には表れないユニークなパターンとして、その下位２２ビットが、“０００１０００００００００００００１０００１”のように設定されている。
【００４０】
図中左側の各シンクフレームのデータ部には、メインデータが記録され、左側の最後のシンクフレームのデータ部には、ＰＯ情報（パリティ）が記録されている。図中右側のシンクフレームには、メインデータとＰＩ情報が記録され、右側のシンクフレームの最後から２番目のシンクフレームには、ＥＤＣ情報とＰＩ情報（パリティ）が記録され、最後のシンクフレームには、ＰＯ情報とＰＩ情報が記録されている。
【００４１】
すなわち、本実施例においてもＥＣＣブロックは、図３７に示すように構成されており、そして、図３６に示すように、各セクタにＰＯ情報がインタリーブされている。
【００４２】
各セクタのＰＩ情報とＰＯ情報を除くデータの詳細は、図４に示されている。同図に示すように、ＩＤ（セクタ番号）（４バイト）、ＩＥＣ（ＩＤに対するＥＣＣ（２バイト））、ＲＳＶ（保留領域）（６バイト）、メインデータおよび、ＥＤＣ（４バイト）により１セクタのデータが構成されている。なお、メインデータにはスクランブル処理が施されている。
【００４３】
そして、このようなデータセクタが１６セクタ分集められ、図３５に示すように、１６バイトのＰＯ符号と１０バイトのＰＩ符号とが付加される。さらに、ＰＯ符号を含む１６行が１データセクタ毎に配置されるようにインターリーブされる。そして、得られたデータは、図３７に示すように、シンクコードＳＹｘ（ｘ＝０，１，２，・・・，７）が付加され、ＥＦＭ＋変調される。これによりＥＣＣブロック内の物理セクタは、図３に示すように、１３×２シンクフレームにより構成される。１ＥＣＣブロックは１６セクタにより構成されるので、物理セクタアドレスの下位４ビットは００００乃至１１１１のいずれかとなる。その結果、ＥＣＣブロックの先頭のセクタの物理アドレスは下位４ビットが００００となる。
【００４４】
なお、メインデータに対するスクランブル処理は、物理セクタアドレスの下位４ビット乃至７ビットにより指定される値を初期値として生成されたスクランブルデータと、メインデータとの間で排他的論理和を演算することにより実行される。
【００４５】
なお、この明細書においては、各種の信号に各種の記号が用いられているので、ここで、それらをまとめて説明する。
【００４６】
ｂｌｏｃｋ−ｔｏｐ      （Ｂｌｏｃｋ  Ｔｏｐ）
ＳＹＬＫ信号がＨの状態で、セクタの先頭からＨとなる信号である。
Ｃ１１Ｍ                （Ｃｌｏｃｋ  １１．２８９６  ＭＨｚ）
システムの動作クロックであり、その周波数は、１１．２８９６ＭＨｚである。
ＤＳＴＢ                （Ｄａｔａ  ｓｔｒｏｂｅ）
ストリームデータＳＤとしてメインデータが出力されているとき、Ｈとなるデータストローブ信号である。
ＥＣＡ                  （ＥＲＲ  Ｃｏｒｒｅｃｔｉｏｎ  Ａｄｄｒｅｓｓ）
エラーのある位置（アドレス）を示すエラー訂正アドレス信号である。
ＥＣＣＫ                （ＥＣＣ  Ｃｌｏｃｋ）
ＥＣＣコア回路３８の動作クロックである。
ＥＣＤ                  （Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｏｎ  Ｄａｔａ）
誤ったデータと排他的論理和を演算したとき、正しいデータとなるエラー訂正データである。
ＥＣＤＥ                （ＥＣＣ  Ｃｏｄｅ  Ｄａｔａ  Ｅｎｄ）
入力データの最後を示すコントロール信号である。
ＥＣＯＤ                （ＥＣＣ  Ｃｏｄｅ  ＥＲＲ）
エラー訂正不能のとき、Ｈとなる信号である。
ＥＣＯＲ                （ＥＣＣ  Ｃｏｒｒｅｃｔｉｏｎ）
エラー訂正可能なデータ（ＥＣＡ，ＥＣＤ）の出力を示すストローブ信号である。
ＥＣＹＥ                （ＥＣＣ  Ｃｙｃｌｅ  Ｅｎｄ）
入力符号データのサイクルの最後を示すコントロール信号である。
ＥＤＴ                  （ＥＣＣ  Ｄａｔａ）
エラー訂正のためＲＡＭ３７から読み出され、ＥＣＣ制御回路３６に転送されるデータである。
ＥＳＴＢ                （Ｅｒｒｏｒ  Ｓｔｒｏｂｅ）
エラー訂正結果ＥＲの転送時にＨとなるエラー訂正結果ストローブ信号である。
ＥＳＴＴ                （ＥＣＣ  Ｓｔａｒｔ）
入力データの先頭を示すコントロール信号である。
ＥＦＭ＋Ｗ  Ｆｒａｍｅ  （ＥＦＭ＋Ｗｒｉｔｅ  Ｆｒａｍｅ  Ｃｏｕｎｔｅｒ）
ＲＡＭ３７へ書き込むメインフレームを表す信号である。
ＨＤＥＮ                （Ｈｅａｄｅｒ  Ｄａｔａ  Ｅｎａｂｌｅ）
セクタヘッダデータのストローブ信号である。
ｍａｉｎ−ＦＭＳＹ      （ｍａｉｎ  Ｆｒａｍｅ  Ｓｙｎｃ）
各ＰＩ行のメインシンク（先頭のシンク）でＨとなる信号である。
ＭＷＥＮ                （Ｍｅｍｏｒｙ  Ｗｒｉｔｅ  Ｅｎａｂｌｅ）
ＥＦＭ＋復調データのＲＡＭ３７への書き込みイネーブル信号である。
ＭＷＲＱ                （ＥＦＭ  Ｗｒｉｔｅ  Ｒｅｑｕｅｓｔ）
ＥＦＭ＋復調データのＲＡＭ３７への書き込みリクエスト信号である。
ＯＵＴＦ                （Ｏｕｔｐｕｔ  Ｆｌａｇ）
補間フラグ（出力フラグ）である。
ＯＳＴＴ                （ＥＣＣ  Ｏｕｔｐｕｔ  Ｓｔａｒｔ）
所定の符号系列におけるＥＳＴＴから４７７（ＥＣＣＫ）後に遅延して出力される信号である。
ＲＤＴ                  （Ｒｅａｄ  Ｄａｔａ）
ＲＡＭ３７のリードデータバス上のデータである。
ＳＡＬＫ                （Ｓｅｃｔｏｒ  Ａｄｄｒｅｓｓ  Ｌｏｃｋ）
セクタアドレス（ＩＤ）が正常に検出されていることを表す信号である。
ＳＡＵＬ                （Ｓｅｃｔｏｒ  Ａｄｄｒｅｓｓ  Ｕｎｌｏｃｋ）
ＳＡＬＫ信号の逆極性の信号である。
ＳＣＳＹ                （Ｓｅｃｔｏｒ  Ｓｙｎｃ）
ＳＹ０のＦｒａｍｅでＨとなる、セクタの先頭を判別するための信号である。ＳＤ                    （Ｓｔｒｅａｍ  Ｄａｔａ）
ストリームデータ（デコード出力データ）である。
ＳＤＣＫ                （Ｓｔｒｅａｍ  Ｄａｔａ  Ｃｌｏｃｋ）
ストリームデータのクロックである。
ＳＦＬＧ                （Ｓｅｃｔｏｒ  Ｆｌａｇ）
ＰＩ１訂正のＥＣＣ訂正不能フラグである。
ＳＩＮＦ                （Ｓｅｃｔｏｒ  Ｉｎｆｏｍａｔｉｏｎ）
セクタの先頭でＨとなるセクタ情報ストローブ信号である。
ＳＵＢ                  （ＳＵＢ  Ｄａｔａ）
ＳＢＣＤ回路３４に対して転送するＩＤとＩＥＣを含むデータである。
ＳＹＬＫ                （Ｓｙｎｃ  Ｌｏｃｋ）
シンクコードが連続して３回検出されたとき、Ｈとなる信号である。
ＳＹＵＬ                （Ｓｙｎｃ  Ｕｎｌｏｃｋ）
ＳＹＬＫ信号の逆極性の信号である。
ＷＤＴ                  （Ｗｒｉｔｅ  Ｄａｔａ）
ＲＡＭ３７のライトデータバス上のデータである。
ＸＨＷＥ                （Ｓｅｃｔｏｒ  Ｈｅａｄｅｒ  Ｗｒｉｔｅ  Ｅｎａｂｌｅ）
ＳＢＣＤ回路３４からＲＡＭ３７へ書き込むセクタ情報の出力イネーブル信号である。
【００４７】
ＥＦＭ＋復調回路３１（図２参照）により復調処理が施されたデータは、ＲＡＭコントローラ３５の制御の下、図５に示すように、ＲＡＭ３７に格納される。この図５は、１ＥＣＣブロックについて示している。ＲＡＭ３７に格納されているデータを読み出す場合、ＲＡＭコントローラ３５は、図５に示す行および列の値を指定することにより、所望のデータを取得することができる。すなわち、図５において、第Ｍ行目の第Ｎバイト目にあるデータｘは、２値（Ｍ，Ｎ）を指定することによりＲＡＭ３７から読み出すことができる。
【００４８】
後述するセクタ情報ＳＩは、バイト単位で各ＰＩ行に対応して、最上行から１６個のＰＩ行に対応して記憶される。ＰＩ１フラグとＰＩ２フラグは、２０８行の各ＰＩ行に対応するように記憶される。また、ＰＯフラグは、上から順番に、１７２ＰＩ行に対応するように記憶される。
【００４９】
また、２０８ビット×１７２ビットの補間フラグは、バイト単位でまとめられ、２６バイト×２２バイト（実質的には２１．５バイト）の補間フラグが、ＥＣＣブロックのバイト単位のメインデータと異なる領域に記憶される。すなわち、１バイトのメインデータに対して、１ビットの補間フラグが対応するのであるが、これらは、独立に（９ビットのデータとしてまとめられることなく）記憶される。
【００５０】
このようにすることで、補間フラグを記憶するのに必要以上に大きな容量のメモリが必要になることを防止している。
【００５１】
光ディスク１に記録されているデータのセクタの先頭が、ＳＢＣＤ回路３４において、シンクコードの種類と連続性に基づき認識されると、ＥＦＭ＋復調回路３１により復調されたデータは、先頭データから順にＲＡＭ３７に格納される。図６は、このとき関係する回路の主要部分の信号のタイミングを示している。
【００５２】
すなわち、ＥＦＭ＋復調回路３１は、図７に示すように、シンクのロック状態を検出している。最初にステップＳ１において、図３に示すシンクコード（ＳＹ０乃至ＳＹ７）を各シンクフレームにおいて検出することができたか否かを判定する。シンクコードを検出することができた場合においては、ステップＳ２に進み、変数ＳＣｌｏｃｋを１だけインクリメントするとともに、変数ＳＣｕｎｌｏｃｋを０にセットする。この変数ＳＣｌｏｃｋは、シンクコードが連続して検出されたときの回数を表し、変数ＳＣｕｎｌｏｃｋは、シンクが連続して検出されなかったときの回数を表す。
【００５３】
次に、ステップＳ３において、変数ＳＣｌｏｃｋが３に等しいか否かを判定する。すなわち、シンクが連続して３回検出されたか否かを判定する。変数ＳＣｌｏｃｋが３より小さい場合においては、ステップＳ１に戻り、それ以降の処理を繰り返し実行する。ステップＳ３において、変数ＳＣｌｏｃｋが３に等しいと判定された場合、ロック状態になったものとして、ステップＳ４において、ＳＹＬＫ信号をＨに設定する。そして、ステップＳ５において、さらに連続して３回シンクが検出されたか否かを判定するために、変数ＳＣｌｏｃｋを２に設定し、ステップＳ１に戻り、それ以降の処理を繰り返し実行する。
【００５４】
これに対して、ステップＳ１において、シンクコードが検出されなかったと判定された場合、ステップＳ６に進み、変数ＳＣｕｎｌｏｃｋを１だけインクリメントするとともに、変数ＳＣｌｏｃｋを０に設定する。ステップＳ７においては、変数ＳＣｕｎｌｏｃｋが３に等しいか否かを判定する。すなわち、シンクコードが３回連続して検出されなかったか否かを判定する。連続して検出されなかった回数が２以下である場合には、ステップＳ１に戻り、それ以降の処理を繰り返し実行する。連続して３回シンクが検出されなかった場合においては、ステップＳ８に進み、ＳＹＬＫ信号をＬに設定する。そして、ステップＳ９に進み、変数ＳＣｕｎｌｏｃｋを２に設定して、次のシンクコードの発生タイミングにおいても、シンクコードが検出されなかったとき、ＳＹＬＫ信号をＬに設定したままとすることができるように、変数ＳＣｕｎｌｏｃｋを２に設定し、ステップＳ１に戻る。
【００５５】
以上のようにして、ＥＦＭ＋復調回路３１は、シンクコードを検出し、ロック状態になっているか否かを常に監視している。
【００５６】
なお、上記実施例においては、検出回数をそれぞれ３回としたが、基準となる連続検出回数ＮＬＯＣＫと、不連続の検出回数ＮＵＮＬＯＣＫは、それぞれ任意の値とすることが可能である。
【００５７】
ＥＦＭ＋復調回路３１は、上述したようにして、ＳＹＬＫ信号がＨになったとき、すなわち、ロック状態になったとき、図８のフローチャートに示す処理を実行する。すなわち、ステップＳ２１において、各セクタの先頭に配置されているシンクコードＳＹ０が検出されたか否かを判定する。シンクコードＳＹ０が検出された場合においては、ステップＳ２２に進み、セクタの先頭であることを表すＳＣＳＹ信号を所定時間Ｈに設定する。次にステップＳ２３に進み、ＳＹＬＫ信号がＬに変化したか否かを判定し、Ｌでなければ（Ｈのままであれば）ステップＳ２１に戻り、同様の処理を繰り返し実行する。ステップＳ２１において、シンクコードＳＹ０が検出されていないと判定された場合においては、ステップＳ２２の処理はスキップされる。
【００５８】
以上のようにして、ＥＦＭ＋復調回路３１は、各セクタの先頭において、図６（ａ）に示すＳＣＳＹ信号を発生する。
【００５９】
さらに、ＥＦＭ＋復調回路３１は、ＳＹＬＫ信号がＨになったとき、図９のフローチャートに示す処理を実行する。最初に、ステップＳ３１において、メインフレーム（以下、図３の横方向の２個のシンクフレームを、まとめて１個のメインフレームと称する）のシンクコード（以下、図３のシンクコードのうち、左側に示すシンクコードをメインフレームシンクと称する）を検出したか否かを判定する。メインフレームシンクを検出した場合においては、ステップＳ３２に進み、ＥＦＭ＋復調回路３１は図６（ｂ）に示すｍａｉｎ−ＦＭＳＹ信号を発生する。ステップＳ３１において、メインフレームシンクが検出されていないと判定された場合においては、ステップＳ３２の処理はスキップされる。
【００６０】
次にステップＳ３３に進み、ＳＹＬＫ信号がＬに変化したか否かが判定され、変化していない場合（Ｈのままである場合）、ステップＳ３１に戻り、それ以降の処理を繰り返し実行する。ＳＹＬＫ信号がＬに変化した場合においては、ｍａｉｎ−ＦＭＳＹ信号の生成処理は中止される。
【００６１】
このようにして、ＥＦＭ＋復調回路３１は、メインフレームシンクの周期（図３における水平方向の２つのシンクフレームの周期）毎に、ｍａｉｎ−ＦＭＳＹ信号を発生する。
【００６２】
ＲＡＭコントローラ３５は、ＥＦＭ＋復調回路３１よりＳＣＳＹ信号が入力されたとき、図６（ｄ）に示すように、ＭＷＥＮ信号をＨに設定し、ＲＡＭ３７に対する、いま検出されているセクタのデータの書き込み処理を開始させる。すなわち、このときＲＡＭコントローラ３５は、図６（ｅ）に示すように、内蔵するＥＦＭ＋Ｗ  Ｆｒａｍｅカウンタ（図示せず）で図３に示すメインフレームをカウントする。このカウント値は、図３に示すメインフレームの上から順番の番号を表すことになる。
【００６３】
また、ＲＡＭコントローラ３５は、図６（ｆ）に示すように、内蔵するＰＩ１Ｆｒａｍｅカウンタ（図示せず）により、ＲＡＭ３７に伝送するメインフレームの番号を管理する。
【００６４】
すなわち、図３に示す最初のメインフレーム（番号０のメインフレーム（図３における最上行のメインフレーム））のデータがＲＡＭ３７に書き込まれたとき、ＥＣＣ制御回路３６は、ＲＡＭコントローラ３５の制御の下に、そのメインフレームのデータの供給を受ける。そして、このデータを、ＥＣＣコア回路３８に転送し、誤り訂正処理を実行させる。すなわち、ＰＩ１処理を実行させる。ＰＩ１訂正後のデータは、再びＲＡＭ３７に書き戻される。
【００６５】
ＲＡＭコントローラ３５は、このＰＩ１訂正の実行の後、ＲＡＭ３７に記憶されている番号０のメインフレームのデータの中から、ＩＤとＩＥＣデータ（ＳＵＢ）を読み出し、図６（ｃ）の番号０で示すＳＵＢ信号のタイミングにおいて、この番号０のメインフレームのＩＤとＩＥＣデータをデータバスを介してＳＢＣＤ回路３４に転送させる。図３に示すように、ＩＤとＩＥＣデータは、各セクタの先頭にのみ配置されているため、この転送処理は、番号０のメインフレームにおいてのみ実行される。ＳＢＣＤ回路３４においては、このようにして、物理セクタのアドレス（ＩＤ）が検出される。
【００６６】
そして、検出された物理セクタのアドレスの下位４ビットにより、ＥＣＣブロックの先頭セクタが検出される。
【００６７】
図１０は、以上のＩＤの転送に続いてｂｌｏｃｋ−ｔｏｐを検出する場合のタイミング図を示しており、また、図１１はｂｌｏｃｋ−ｔｏｐ検出以降の処理を示しており、これらの図の動作については後述する。
【００６８】
図１２は、上述したＩＤの転送のより詳細なタイミングを示すタイミング図である。同図（ａ）に示すように、ＲＡＭコントローラ３５は、ＳＢＣＤ回路３４に対して、ＲＡＭ３７からＩＤとＩＥＣデータが読み出されるタイミングを表すＨＤＥＮ信号を出力する。このとき、ＲＡＭ３７から、ＳＢＣＤ回路３４に対して、第７ビットから第０ビットまでの合計８ビットのリードデータＲＤＴ（図１２（Ｃ））として、ＩＤデータ（４バイト）とＩＥＣデータ（２バイト）が、１１．２８９６ＭＨｚの周波数のクロックＣ１１Ｍ（図１２（ｆ））に同期して転送される。このＩＤデータとＩＥＣデータは、ＰＩ１訂正の結果、訂正不能の状態（この場合、ＳＦＬＧ信号はＨとなる）にはなっていないことが、ＥＣＣコア回路３８からＥＣＣ制御回路３６に供給されているＳＦＬＧ信号（＝１）により表されている。ＳＢＣＤ回路３４は、ＩＤ（セクタアドレス）の供給を受けると、そのＩＤ（セクタ）に対応するセクタ情報ＳＩを、ホストＣＰＵ４０からの指令（補間フラグの生成モード、スタートセクタ、エンドセクタなどの指令）に対応して生成する。例えば、ホストＣＰＵ４０から出力が指定されたＩＤのセクタには、セクタ情報のビット５に１を設定し、ビット４に０を設定する。
【００６９】
図１３は、セクタ情報（ＳＩ）の構成を示している。同図に示すように、セクタ情報の各ビットは、以下に示す情報を有している。
【００７０】
ビット７：補間フラグ（ＯＵＴＦ）生成モードの設定（１：補間フラグ生成モード）
ビット６：ＥＣＣブロックの先頭セクタ（物理セクタアドレスの下位４ビットが０である場合に１とされる）（１：先頭セクタ）
ビット５：スタートセクタ（物理セクタアドレスがホストＣＰＵ４０で指定されたスタートセクタアドレスと一致した場合は１とされる）（１：スタートセクタ）
ビット４：エンドセクタ（物理セクタアドレスがホストＣＰＵ４０で指定されたエンドセクタアドレスと一致した場合に１とされる）（１：エンドセクタ）
ビット３：デスクランブル初期化アドレスのビット３（物理セクタアドレスの第７ビット）
ビット２：デスクランブル初期化アドレスのビット２（物理セクタアドレスの第６ビット）
ビット１：デスクランブル初期化アドレスのビット１（物理セクタアドレスの第５ビット）
ビット０：デスクランブル初期化アドレスのビット０（物理セクタアドレスの第４ビット）
【００７１】
この４バイトのＩＤと２バイトのＩＥＣを用いて、図１４乃至図１６を参照して後述するようにチェック処理が行われた後、図１２（ｄ）に示すＸＨＷＥ信号が、ＥＣＣ制御回路３６でＬにされる。このとき、ＳＢＣＤ回路３４からＲＡＭ３７に、８ビットのライトデータＷＤＴとしてセクタ情報ＳＩが転送され、書き込まれる。１６セクタ分のセクタ情報は、図５に示すように、上方の１６個のＰＩ行に対応するように格納される。従って、所定のＰＩ行の行数を指定することにより、対応するセクタ情報を得ることができる。
【００７２】
次に、図１４乃至図１６のフローチャートを参照して、ＳＢＣＤ回路３４におけるＩＤとＩＥＣのチェック処理について説明する。
【００７３】
ＳＢＣＤ回路３４は、図１４のフローチャートに示す処理により、ＩＥＣが正常である（ＩＤにエラーがない）セクタがＮ個（この実施例の場合、３個）以上連続しているか否かを判定する。
【００７４】
このため、最初のステップＳ４１において、いま、取り込んだＩＥＣが正常であるか否かを判定する。ＩＥＣが正常である場合においては、ステップＳ４２に進み、正常であるＩＥＣのセクタの数を表す変数ＳＡｌｏｃｋを１だけインクリメントする。そして、正常でないＩＥＣを有する（ＩＤにエラーがある）セクタの連続回数を表す変数ＳＡｕｎｌｏｃｋを０に設定する。
【００７５】
次に、ステップＳ４３に進み、変数ＳＡｌｏｃｋが３に等しいか否かを判定する。ステップＳ４２でインクリメントした変数ＳＡｌｏｃｋが３に等しくないと判定された場合、ステップＳ４１に戻り、それ以降の処理を繰り返し実行する。ステップＳ４３において、変数ＳＡｌｏｃｋが３に等しいと判定された場合、すなわち、正常なＩＥＣを有するセクタが３回連続して再生されたとき、ステップＳ４４に進み、フラグＩＥＣＯＫをＨに設定する。ステップＳ４５においては、さらに次のＩＥＣが連続して正常である回数を検出するために、変数ＳＡｌｏｃｋを２に設定し、ステップＳ４１に戻り、それ以降の処理を繰り返し実行する。
【００７６】
ステップＳ４１において、ＩＥＣが正常でないと判定された場合、ステップＳ４６に進み、変数ＳＡｕｎｌｏｃｋを１だけインクリメントするとともに、変数ＳＡｌｏｃｋを０に設定する。そして、ステップＳ４７において、変数ＳＡｕｎｌｏｃｋが３に等しいか否かを判定し、等しくない場合においては、ステップＳ４１に戻り、それ以降の処理を繰り返し実行する。
【００７７】
ステップＳ４７において、変数ＳＡｕｎｌｏｃｋが３に等しいと判定された場合、すなわち、ＩＥＣが正常でないセクタが３回連続して検出されたとき、ステップＳ４８に進み、フラグＩＥＣＯＫをＬに設定する。次に、ステップＳ４９において、次のＩＥＣが正常でない場合に、その連続の回数が３回であることを連続して検出することができるようにするために、変数ＳＡｕｎｌｏｃｋを２に設定し、ステップＳ４１に戻り、それ以降の処理を繰り返し実行する。
【００７８】
以上のようにして、ＳＢＣＤ回路３４は、ＩＥＣが連続して３回以上正常である場合においては、フラグＩＥＣＯＫをＨに設定し、３回以上連続して正常でない場合においては、フラグＩＥＣＯＫをＬに設定する。
【００７９】
ＳＢＣＤ回路３４は、さらに図１５に示す処理により、ＩＤ（アドレス）の連続性を判定する。すなわち、１つのＥＣＣブロック内の各セクタのＩＤは、順次１ずつインクリメントするように規定されている。そこで、この連続性を次のようにして判定する。
【００８０】
最初に、ステップＳ６１において、ＩＤ（セクタアドレス）が検出されたか否かを判定する。ＩＤが検出された場合、ステップＳ６２に進み、そのＩＤを次のＩＤと比較することができるように記憶する。そして、ステップＳ６３においては、今回検出したＩＤが、前回検出し、ステップＳ６２において記憶したＩＤより１だけ大きいか否かを判定する。今回のＩＤが前回のＩＤより１だけ大きい場合には、ステップＳ６４に進み、正しいＩＤが連続して検出されたことを示す変数ＮＳを１だけインクリメントする。また、ＩＤが検出されなかったり、連続していない回数を表す変数ＮＮＳを０に設定する。
【００８１】
そして、ステップＳ６５において、変数ＮＳが３と等しいか否かを判定し、等しくなければ（３回連続して１ずつインクリメントしたＩＤが検出されていなければ）、ステップＳ６１に戻り、それ以降の処理を繰り返し実行する。変数ＮＳが３に等しいと判定された場合、ステップＳ６６に進み、ＩＤが連続して正しい状態であることを表すフラグＡＳをＨに設定する。そして、ステップＳ６７において、次のＩＤを検出したとき、再び連続して３回正しいＩＤが検出されたことを検出することができるように、変数ＮＳを２に設定し、ステップＳ６１に戻り、それ以降の処理を繰り返し実行する。
【００８２】
ステップＳ６１において、ＩＤが検出されなかったり、ステップＳ６３において、今回検出したＩＤが前回検出したＩＤより１だけ大きい値になっていないと判定された場合（不連続であると判定された場合）、ステップＳ６８に進み、フラグＳＡＬＫがＨであるか否かを判定する。このフラグＳＡＬＫは、図１６を参照して後述するが、ＩＥＣが３回以上連続して正常であり、かつ、ＩＤが３回以上連続性が保持されているとき、Ｈに設定されている。
【００８３】
ステップＳ６８において、フラグＳＡＬＫがＨに設定されていると判定された場合、ステップＳ６９に進み、ＩＤを補間する処理を実行する。すなわち、いま、ＩＤが検出されなかったか、あるいは、ＩＤが連続していなかった場合であるので、前回のＩＤに１を加算したＩＤを生成し、これを検出されたＩＤに代えて使用するようにする。フラグＳＡＬＫがＬに設定されている場合においては、このような補間処理は行われず、ステップＳ６９の処理はスキップされる。
【００８４】
次に、ステップＳ７０において、変数ＮＮＳを１だけインクリメントするとともに、変数ＮＳを０に設定する。そして、ステップＳ７１において、変数ＮＮＳが３と等しいか否かが判定され、等しくないと判定された場合においては、ステップＳ６１に戻り、それ以降の処理を繰り返し実行する。これに対して、ＮＮＳが３に等しいと判定された場合、ステップＳ７２に進み、フラグＡＳをＬに設定する。そして、ステップＳ７３において、次のＩＤが検出されなかった場合、連続して３回検出されなかったことを続けて検出することができるようにするために、変数ＮＮＳを２に設定し、ステップＳ６１に戻り、それ以降の処理を繰り返し実行する。
【００８５】
以上のようにして、ＳＢＣＤ回路３４は、ＩＤの連続性が確保されているとき、フラグＡＳをＨに設定し、確保されていないとき、Ｌに設定する。
【００８６】
ＳＢＣＤ回路３４は、以上のようにして生成した２つのフラグＩＥＣＯＫとＡＳを用いて、フラグＳＡＬＫを生成する。
【００８７】
すなわち、図１６のステップＳ８１においては、フラグＩＥＣＯＫがＨであるか否かが判定され、Ｈであると判定された場合、ステップＳ８２に進み、フラグＡＳがＨであるか否かが判定される。ステップＳ８２において、フラグＡＳがＨであると判定された場合、ステップＳ８３に進み、フラグＳＡＬＫをＨに設定する。
【００８８】
これに対して、ステップＳ８１において、フラグＩＥＣＯＫがＬであると判定された場合、あるいは、ステップＳ８２において、フラグＡＳがＬであると判定された場合、ステップＳ８４に進み、フラグＳＡＬＫをＬに設定する。
【００８９】
以上のようにして、ＳＢＣＤ回路３４においては、ＩＥＣが３回以上連続して正常であり、かつ、ＩＤが連続して３回以上１ずつインクリメントしている場合には、フラグＳＡＬＫがＨに設定され、ＩＥＣが連続して３回以上正常でなかったり、あるいはＩＤが連続して３回以上不連続である場合には、フラグＳＡＬＫがＬに設定される。
【００９０】
ホストＣＰＵ４０は、ＳＡＬＫの状態と共に、先に述べたＩＤデータを参照して、レーザビームが現在照射されている位置（光ディスク１上のアクセス位置）を検出する。
【００９１】
なお、ＰＩ１訂正の結果を図１４のＳＡｌｏｃｋまたはＳＡｕｎｌｏｃｋの条件に加えることも可能である。さらに、ＳＡｌｏｃｋまたはＳＡｕｎｌｏｃｋの回数は、前述のように３回と設定されているが、ホストＣＰＵ４０により異なる値に設定することも可能である。
【００９２】
ＳＡＬＫの状態が、ＳＡＬＫ＝Ｌの状態（このとき、ＳＡＵＬ＝Ｈとなる）で、ＳＹＬＫ＝Ｌ（このときＳＹＵＬ＝Ｈとなる）となると、ＲＡＭ３７に対するＥＦＭ＋復調回路３１からのＥＦＭ＋復調データの書き込みとＥＣＣの制御が、いずれもリセットされる。その後、ｕｎｌｏｃｋ状態が解除され（ＳＡＵＬ＝Ｌとされ）、ＳＹＬＫ＝Ｈとなると、ＲＡＭ３７に対してＥＦＭ＋復調データの書き込みが再開される。
【００９３】
なお、ｕｎｌｏｃｋは、ホストＣＰＵ４０により強制的に実行することも可能である。例えば、トラック間のジャンプ実行後にホストＣＰＵ４０によりｕｎｌｏｃｋ状態にすることで、ＥＣＣ制御をリセットすることもできる。
【００９４】
また、ｕｎｌｏｃｋ状態の解除は、ホストＣＰＵ４０により実行するか、ホストＣＰＵ４０の介入なしに自動的に実行するかの何れかを選択することができる。
【００９５】
ＳＹＬＫがＨの状態（ロック状態）であり、さらに、セクタ情報のビット６が１の状態（セクタの先頭）である場合、ＳＢＣＤ回路３４はＳＹＬＫ＝Ｌとなるまで（ロックがはずれるまで）、図１０に示すように、ｂｌｏｃｋ−ｔｏｐをＨの状態とする。ｂｌｏｃｋ−ｔｏｐ＝Ｌである場合は、ＳＣＳＹとｍａｉｎ−ＦＭＳＹが共にＨの状態の場合（セクタの先頭）になったとき、ＥＦＭ＋Ｗ  ｆｒａｍｅの値は、１２の次には０に設定される。すなわち、この場合、ＥＦＭ＋Ｗ
ｆｒａｍｅの値は各メインフレーム毎に、０乃至１２の値を繰り返す。
【００９６】
これに対して、ｂｌｏｃｋ−ｔｏｐ＝Ｈであれば、図１１に示すように、ＥＦＭ＋Ｗ  Ｆｒａｍｅの値は、その値が１３以上となった場合でも引き続きインクリメントされる。その結果、図５に示すように各ＥＣＣブロックの各メインフレームのデータがＲＡＭ３７の異なるアドレスに順次格納されることになる。
【００９７】
以下同様にして、ＥＦＭ＋復調データのＲＡＭ３７への書き込みが行われると共に、ＰＩ１訂正が実行される。そして、１ＥＣＣブロックのデータ（２０８行のデータ）に対するＰＩ１訂正が終了すると、次に、ＰＯ列方向のＥＣＣ処理（ＰＯ訂正）が実行される。
【００９８】
なお、ＰＯ列方向にデータを読み出す場合は、ＰＯ行のインターリーブ（図３６）を解除する必要がある。従って、例えば、図５に示す第Ｎバイト目の列を読み出す場合、先ず、インターリーブされたＰＯ行をスキップしながら、図の上から下方向に第Ｎバイト目の列のデータを読み出した後、再度、同じ第Ｎバイト目の列のＰＯ行の符号だけを読み出し、ＥＣＣコア回路３８に供給する。
【００９９】
そして、ＥＣＣコア回路３８が、ＰＯ訂正を終了すると（図５の右端のＰＩ列（１０列）を除く１７２列全ての処理が終了すると）、次に、ＰＩ２訂正を実行する。なお、ＰＩ行方向のＥＣＣ処理を２回実行するのは、エラーの訂正能力を向上させるためである。
【０１００】
また、ＰＯ訂正では、ＰＩ１訂正の結果に基づいて生成されたエラーフラグ（ＰＩ１フラグ）に応じてイレージャ訂正が実行される。さらに、ＰＩ２訂正においても、ＰＯ訂正の結果に応じて生成されたエラーフラグ（ＰＯフラグ）を利用してイレージャ訂正が実行される。このようなイレージャ訂正を行うのは、前述の場合と同様に、エラーの訂正能力を向上させるためである。
【０１０１】
ＰＩ２訂正の処理が終了したＰＩ系列のデータは、ＲＡＭ３７からＯＣＴＬ回路３９に転送され、メインデータに対するデスクランブル処理が、図１３に示したセクタ情報のビット３乃至ビット０を用いて、各セクタ単位で実行される。また、このとき、ＯＣＴＬ回路３９でＥＤＣに関する演算も行われる。そして、その演算結果や、メインデータに付加されているエラーフラグの有無により、対象となるセクタにエラーが存在するか否かが判定される。ホストＣＰＵ４０は、その判定結果に基づいて、光ディスク１から再度データを読み出すか否かを判定する。その結果、光ディスク１から再度データを読み出すと判定した場合は、光ディスク１に対するアクセスが再度実行される。また、データの読み出しを再度行わないと判定した場合は、エラーを含むセクタのデータが多重化データ分離回路８に出力される。
【０１０２】
ＥＣＣコア回路３８は、汎用のリードソロモン符号エラー訂正用ＬＳＩにより構成され、符号長、パリティ数、および訂正モード（通常訂正のみ、または、通常訂正およびイレージャ訂正の２つのモード）などをプログラムすることが可能とされている。また、ＥＣＣコア回路３８は、多符号連続符号化されたデータ（符号長が異なる複数の符号系列）もリアルタイムでデコードすることが可能である。なお、リードソロモン符号エラー訂正用ＬＳＩとしては、例えば、ＳＯＮＹ（商標）のＣＸＤ３０７−１１１Ｇがあり、このＬＳＩを使用して形成されたＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉａｌｉｚｅｄ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）をＥＣＣコアと呼ぶ。なお、図２に示すＥＣＣコア回路３８には、このＥＣＣコアが使用されている。
【０１０３】
次に、エラー訂正動作について説明する。
【０１０４】
図１７は、エラー訂正動作の実行時における信号のタイミングを示している。この図において、ＥＳＴＴ（図１７（ａ））は、符号（ＰＩ行またはＰＯ行）の先頭を示すコントロール信号であり、また、ＥＣＤＥ（図１７（ｂ））は、符号（ＰＩ行またはＰＯ行）の最後を示すコントロール信号である。ＥＣＹＥ（図１７（ｃ））は、符号（ＰＩ行またはＰＯ行）サイクルの最後を示すコントロール信号である。これらはいずれも、ＲＡＭコントローラ３５からＥＣＣ制御回路３６を介してＥＣＣコア回路３８に供給される。ＥＣＣコア回路３８は、ＲＡＭ３７から供給されるデータを、これらのコントロール信号から識別する。
【０１０５】
同図に示すように、ＰＩ符号は、ＥＳＴＴからＥＣＤＥまでの間に、１８２個のＥＣＣＫで転送される。ＰＯ符号も、ＥＳＴＴからＥＣＤＥまでの間に、２０８個のＥＣＣＫで転送される。
【０１０６】
なお、ＰＩ行の符号とＰＯ列の符号の符号長が異なる場合、符号サイクル長をＰＩ行の符号またはＰＯ列の符号のうち、符号長の長い方（この実施例の場合、ＰＯ列の符号の２０８）に合わせることにより、訂正すべきデータ（ＥＤＴ）およびイレージャ訂正のためのエラーフラグ（ＰＩ１フラグ、ＰＩ２フラグ、ＰＯフラグ）を、図１７に示すように、いずれの符号系列であったとしても、同様のタイミングで入力することができる。また、符号長およびパリティ数等のパラメータとしては任意の値を設定可能である。すなわち、設定を変更する際は、ＥＳＴＴ＝Ｈとなるタイミングで、ＥＣＣコア回路３８に新たな設定データを供給すると、ＥＣＣコア回路３８は供給されたデータに基づき、内部設定を自動的に変更する。
【０１０７】
データの訂正結果は、次式で示されるように、４７７ＥＣＣＫのサイクルで出力される。
0003562544.tif 000002
【０１０８】
ここで、ＮＣＹＣはＰＩ行の符号またはＰＯ列の符号のうちで長い方の符号長を示し、また、ＰＣＹＣは長い方のパリティ数を示している。図１７に示すように、ＯＳＴＴ（図１７（ｄ））は、ＥＳＴＴ（図１７（ａ））のタイミングから、データ出力サイクルの時間だけ遅延して（訂正結果出力のタイミングで）ＥＣＣコア回路３８からＥＣＣ制御回路３６に出力されるものであり、この実施例では、ＯＳＴＴはＥＳＴＴに対して４７７ＥＣＣＫだけ遅延されている。
【０１０９】
エラー検出処理が実行され、検出されたエラーが訂正可能であれば、ＥＣＣコア回路３８はＥＣＣ制御回路３６に対して、ＯＳＴＴ（図１８（ｅ））＝ＨのタイミングでＯ．ＣＯＤＥＥＲＲ（図１８（ｇ））＝Ｌを出力し、その後、ＥＣＯＲ（図１８（ｆ））＝Ｈの位置に、エラーパターンを表す８ビットのデータ（誤ったデータと排他的論理和をとったとき正しいデータが得られるデータ）ＥＣＤ［７：０］（図１８（ｈ））と、エラーポジション（エラーのある位置（アドレス）を示す８ビットのデータ）ＥＣＡ［７：０］（図１８（ｉ））が出力される。
【０１１０】
なお、イレージャ訂正モードにおいては、エラーフラグＥＦＬＧ（図１８（ｃ））を入力したポジションに対応するデータのエラーポジションＥＣＡ［７：０］データは必ず出力されるが、その位置のデータが正しい場合には、エラーパターンはＥＤＣ［７：０］＝００（Ｈ）となる。
【０１１１】
また、エラー訂正が不可能な場合には、そのタイミングチャートは図示していないが、ＯＳＴＴ（図１８（ｅ））がＨの状態になると同時に、Ｏ．ＣＯＤＥＥＲＲ（図１８（ｇ））＝Ｈとなり、その後、ＥＣＯＲ（図１８（ｆ））はＨの状態にはならない。また、ＥＣＯＤ（図１８（ｇ））の出力は、ＯＳＴＴ（図１８（ｅ））が再度Ｈの状態になるまでラッチされ、ＥＣＯＲ（図１８（ｆ））、ＥＣＤ［７：０］（図１８（ｈ））およびＥＣＡ［７：０］（図１８（ｉ））は、ＯＳＴＴ（図１８（ｅ））が次にＨの状態になるまで出力され続ける。
【０１１２】
図１９は、ＥＣＣ処理実行時における制御のタイミング図を示している。ここで、図１９（ｂ）に示す、ＰＩ１−Ｒ、ＰＯ−Ｒ、または、ＰＩ２−Ｒは、それぞれ、ＰＩ１、ＰＯ、またはＰＩ２の各系列の、エラーが訂正されるデータＥＤＴ［７：０］とＥＦＬＧ（図１８（ｃ））がＲＡＭ３７からＥＣＣ制御回路３６を介してＥＣＣコア回路３８に転送されるタイミングを示している。
【０１１３】
図１９（ａ）に示すように、ＥＦＭ＋復調回路３１からＲＡＭ３７に対して１ＰＩ行のデータＥＦＭ＋Ｗ（１８２バイトのデータ）を書き込むために、ＭＷＲＱ信号が１８２回供給され、これによりＲＡＭ３７に１ＰＩ行分のＥＦＭ＋復調データが書き込まれる。そして、この１ＰＩ行分のデータの書き込みが行われる間に、既にＲＡＭ３７に書き込みが完了しているＥＣＣブロックのデータが読み出され、ＥＣＣ制御回路３６を介してＥＣＣコア回路３８に転送される。すなわち、１ＰＩ行分のデータをＲＡＭ３７にゆっくり書き込む間に、既に書き込みが完了している他のＰＩ行またはＰＯ列のデータの読み出しが、３回迅速に行われる。さらに、セクタの先頭のＰＩ行のデータを転送する場合においては、サブコードデータ（ＩＤとＩＥＣ）の読み出しも行われる。これらの書き込みと読み出しは、一方が行われているとき、他方は中止されている。
【０１１４】
例えば、ＥＣＣブロックのＰＩ１訂正を行う場合においては、１ＰＩ行分のデータの書き込みが行われる期間に、１ＰＩ行分のデータの読み出しが行われる。すなわち、ＲＡＭ３７から１ＰＩ行分のデータが読み出され、ＥＣＣ制御回路３６を介してＥＣＣコア回路３８に転送される。なお、図１９（ｂ）においては、このＰＩ１訂正のための読み出しデータＰＩ１−Ｒの読み出しに、２０８個のＥＣＣＫを用いるようにしているが、このＥＣＣＫの数は、最長のデータ長であるＰＯ列の長さに合わせてあるためであり、ＰＩ行のデータを転送する場合には、実質的には、このうちの１８２個のＥＣＣＫのみが実際のデータ転送に利用され、残りのＥＣＣＫは、データ転送には実際には用いられない。
【０１１５】
ＰＩ１−Ｒの転送が完了しない状態では、ＰＯ系列のデータＰＯ−ＲまたはＰＩ２系列の読み出しデータＰＩ２−Ｒを転送することはできない。そこで、この場合においては、次の２×２０８ＥＣＣＫのタイミングにおいては、特にデータは転送されない。そして、その次にサブコードデータ（ＳＵＢ）が存在する場合においては、これが転送される。
【０１１６】
次の１８２ＭＷＲＱの区間においては、ＰＩ１−Ｒのみが転送される。以下、同様にして、合計２０８ＰＩ行分のデータ転送が完了した後、次の１８２ＭＷＲＱの期間においては、最初にＰＩ１−Ｒが転送され、次にＰＯ−Ｒが２回転送される（２列分のＰＯデータが転送される）。ただし、このタイミングにおける（ＰＯ−Ｒと同じ１８２ＭＷＲＱの期間で転送される）ＰＩ１−Ｒは、次のＥＣＣブロックのＰＩ行のデータとなる。
【０１１７】
このような動作が各１８２ＭＷＲＱの期間において行われ、合計１７２列のＰＯデータが転送されたとき、次に、ＰＩ２系列のデータＰＩ２−Ｒが転送される。このデータＰＩ２−Ｒは、図１９（ｂ）に示すデータＰＯ−Ｒの転送タイミングと同一のタイミングで転送される。このタイミングにおけるデータＰＩ１−Ｒは、次のＥＣＣブロックのデータのものとなる。
【０１１８】
なお、ＥＣＣＫ（図１８（ａ））は、データ転送期間においてのみ、ＲＡＭコントローラ３５からＥＣＣコア回路３８に出力される。また、上述したように、転送したデータの訂正結果は、その入力から、４７７クロック（ＥＣＣＫ）後に出力されることになる。従って、ある系列のデータにエラーが含まれているか否かの判定の結果（図１９（ｃ））は、その系列から２つ後の系列のデータが転送される際に出力されることになる（図１９（ｂ））。この出力は、後述するＥＲＲ  ＦＩＦＯ回路３６ｂ（図２０）に格納される。
【０１１９】
以上のようにして、ＲＡＭ３７からＥＣＣ制御回路３６にエラー訂正すべきデータが入力されると、ＥＣＣ制御回路３６は、その例えば１ＰＩ行分のデータのＰＩ１訂正を行い、４７７ＥＣＣＫ後に訂正結果を出力する（図１９（ｃ））。この訂正結果は、後述するＥＣＣ制御回路３６のバッファとしてのＥＲＲ  ＦＩＦＯ３６ｂに転送され、一時的に格納される。そして、このデータは、さらにＥＲＲ  ＦＩＦＯ３６ｂから読み出され、エラー訂正が完了したデータとして、再びＲＡＭ３７に転送され、図１９（ｄ）に示すように、データＰＩ１−Ｗとして書き込まれる。同様に、ＰＯ訂正あるいはＰＩ２訂正が完了したデータは、それぞれデータＰＯ−ＷまたはＰＩ２−Ｗとして、ＲＡＭ３７に書き込まれる。
【０１２０】
このように、ＲＡＭ３７に書き込まれたエラー訂正の完了したデータは、さらに図１９（ｅ）に示すように、１８２ＳＤＣＫの周期で各ＰＩ行毎に読み出され、ＯＣＴＬ回路３９から出力される。
【０１２１】
図２０は、エラー訂正処理が実行される際の信号の流れを示すブロック図である。なお、この図において、図２に対応する部分には、同一の符号が付してあるで、その説明は適宜省略する。
【０１２２】
この図に示すように、ＥＣＣ制御回路３６は、ＥＲＲ  ＣＯＵＮＴ３６ａ、ＥＲＲ  ＦＩＦＯ３６ｂ、ＦＬＡＧ  ＲＡＭ３６ｃ、およびＥＸ−ＯＲ（排他的論理和）回路３６ｄにより構成されている。
【０１２３】
ＥＦＭ＋復調回路３１から出力された復調データは、ＲＡＭコントローラ３５の制御の下、ＲＡＭ３７に書き込まれる。各セクタの先頭に記憶されているＳＵＢデータ（ＩＤとＩＥＣ）は、ＲＡＭ３７から読み出され、ＳＢＣＤ回路３４に転送される。ＳＢＣＤ回路３４は、図１３に示すようなセクタ情報ＳＩを生成する。このセクタ情報ＳＩは、ＳＢＣＤ回路３４から転送され、ＲＡＭ３７に書き込まれる。
【０１２４】
ＲＡＭコントローラ３５は、ＲＡＭ３７（記憶手段）に書き込まれている１ＰＩ行分のデータを８ビット毎のエラー訂正データＥＤＴとして、ＥＣＣ制御回路３６（エラー訂正手段）を介してＥＣＣコア回路３８に供給する（図２０においては、便宜上、ＥＤＴデータがＥＣＣコア回路３８に直接供給されるように示されている）。ＥＣＣコア回路３８は、１ＰＩ行分のデータが供給されたとき、ＰＩ符号を用いて、８ビットのエラー訂正データＥＣＤ（図１８（ｈ））と、８ビットのエラー訂正アドレスＥＣＡ（図１８（ｉ））を生成する。このエラー訂正データＥＣＤとエラー訂正アドレスＥＣＡは、ＥＣＣコア回路３８からＥＣＣ制御回路３６のＥＲＲ  ＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）３６ｂに転送され書き込まれる。
【０１２５】
次に、実際にエラー訂正を行うためにＲＡＭコントローラ３５は、ＲＡＭ３７から、そのＰＩ行のデータＥＤＴを読み出し、ＥＸ−ＯＲ回路３６ｄに供給する。このＥＸ−ＯＲ回路３６ｄには、ＥＲＲ  ＦＩＦＯ３６ｂからエラー訂正データＥＣＤとエラー訂正アドレスＥＣＡが供給される。ＥＸ−ＯＲ回路３６ｄは、エラー訂正アドレスＥＣＡで指定されるビットにおいて、エラー訂正データＥＣＤとＲＡＭコントローラ３５より読み出されたデータＥＤＴとの排他的論理和を演算することによりエラー訂正を行う。このエラー訂正の行われたデータは、ＥＸ−ＯＲ回路３６ｄから、ＲＡＭコントローラ３５を介してＲＡＭ３７に、再び書き戻される。
【０１２６】
また、ＥＣＣコア回路３８は、ＥＣＤとＥＣＡから、図２１に示すような８ビットデータにより構成されるエラー訂正結果ＥＲを生成し、ＥＣＣ制御回路３６のＥＲＲ  ＣＯＵＮＴ３６ａに供給し記憶させる。そして、この１バイトのエラー訂正結果ＥＲは、ＲＡＭコントローラ３５を介して、ＲＡＭ３７に、そのＰＩ行に対応して図５に示すように書き込まれる。
【０１２７】
なお、図２１に示すエラー訂正結果ＥＲの８ビットデータの各ビットには、以下のような情報が格納されている。
ビット７：訂正不能（０：訂正可能  ／  １：訂正不能）（その系列のエラー訂正が不可能である場合に１とされる）
ビット６：ＰＯ（０：ＰＩ  ／  １：ＰＯ）（その系列がＰＩまたはＰＯのいずれであるかを判別するための情報ビット）
ビット５：ＰＩ２（０：ＰＩ１  ／  １：ＰＩ２）（その系列がＰＩ１、またはＰＩ２のいずれであるかを判別するための情報ビット）
ビット４：訂正数  （エラー訂正数の第５ビット（ＭＳＢ）の値）
ビット３：訂正数  （４ビットのエラー訂正数の第４ビットの値）
ビット２：訂正数  （４ビットのエラー訂正数の第３ビットの値）
ビット１：訂正数    （４ビットのエラー訂正数の第２ビットの値）
ビット０：訂正数    （４ビットのエラー訂正数の第１ビット（ＬＳＢ）の値）
【０１２８】
データがＰＩ１訂正により訂正不能であったか否かの判定結果を示すエラーフラグ（ＰＩ１フラグ）（エラー訂正結果ＥＲのビット７）は、エラー訂正結果ＥＲの一部としてＥＲＲ  ＣＯＵＮＴ３６ａに格納される他、ＦＬＡＧ  ＲＡＭ３６ｃ（フラグ記憶手段）にも格納される。
【０１２９】
以上のようなＰＩ１訂正が、図５に示す２０８個のＰＩ行について行われる。
【０１３０】
次に、ＲＡＭコントローラ３５は、ＲＡＭ３７から最初のＰＯ列の２０８バイトのデータを読み出し、ＥＣＣ制御回路３６を介して、ＥＤＴとして、ＥＣＣコア回路３８に供給する。このＥＣＣコア回路３８にはまた、ＦＬＡＧ  ＲＡＭ３６ｃに書き込まれているＰＩ１フラグが読み出され、供給される。ＥＣＣコア回路３８は、パリティＰＯとＰＩ１フラグを利用して、通常の訂正またはイレージャ訂正のためのＥＣＤとＥＣＡを生成する。このＥＣＤとＥＣＡは、ＥＣＣコア回路３８からＥＣＣ制御回路３６のＥＲＲ  ＦＩＦＯ３６ｂに供給され、記憶される。また、ＥＣＣコア回路３８が、ＥＣＤとＥＣＡに基づき生成した、そのＰＯ列のエラー訂正結果ＥＲが、ＥＲＲ  ＣＯＵＮＴ３６ａに転送され、記憶される。そして、そのうちのエラー訂正結果ＥＲのビット７に対応するＰＯフラグは、ＦＬＡＧ  ＲＡＭ３６ｃにも書き込まれる。
【０１３１】
ＲＡＭ３７から読み出された、そのＰＯ列のデータＥＤＴは、ＥＸ−ＯＲ回路３６ｄに供給される。ＥＸ−ＯＲ回路３６ｄにはまた、ＥＲＲ  ＦＩＦＯ３６ｂからＥＣＤとＥＣＡが供給される。ＥＸ−ＯＲ回路３６ｄは、ＥＣＡにより指定されるアドレスのビットに対応して、ＥＣＤとＥＤＴとの排他的論理和を演算し、エラー訂正を行う。エラー訂正されたデータは、ＲＡＭ３７に書き戻される。
【０１３２】
また、そのＰＯ列のエラー訂正結果ＥＲは、ＥＲＲ  ＣＯＵＮＴ３６ａから読み出され、ＲＡＭ３７に書き込まれる。ＰＯ列のエラー訂正結果ＥＲは、図５に示すように、上から順番に、１７２行のＰＩ行に対応する位置に順番に書き込まれる。
【０１３３】
以上のＰＯ訂正が、１７２列のＰＯ列について行われる。
【０１３４】
次に、ＰＩ２訂正を行う場合においては、ＰＩ１訂正とＰＯ訂正が行われた後、最初の１ＰＩ行分のデータが、ＲＡＭ３７からＥＤＴとして読み出され、ＥＣＣコア回路３８に供給される。ＥＣＣコア回路３８にはまた、ＦＬＡＧ  ＲＡＭ３６ｃに書き込まれたＰＯフラグが読み出され供給される。ＥＣＣコア回路３８は、このＰＯフラグとパリティＰＩを用いて、ＥＣＤとＥＣＡと生成し、これをＥＣＣ制御回路３６のＥＲＲ  ＦＩＦＯ３６ｂに供給する。
【０１３５】
このＥＲＲ  ＦＩＦＯ３６ｂに書き込まれたＥＣＤとＥＣＡは、ＥＸ−ＯＲ回路３６ｄに供給され、ＲＡＭ３７から読み出されたＰＩ行のデータと排他的論理和演算が行われ、エラー訂正が実行される。エラー訂正が完了したデータは、ＥＸ−ＯＲ回路３６ｄから、ＲＡＭコントローラ３５を介してＲＡＭ３７に書き戻される。
【０１３６】
ＥＣＣコア回路３８はまた、ＥＣＤとＥＣＡから、エラー訂正結果ＥＲを生成し、ＥＣＣ制御回路３６のＥＲＲ  ＣＯＵＮＴ３６ａに供給し記憶させる。このうちのビット７に対応するＰＩ２フラグは、ＦＬＡＧ  ＲＡＭ３６ｃにも書き込まれる。
【０１３７】
ＥＲＲ  ＣＯＵＮＴ３６ａに書き込まれたＰＩ２行のエラー訂正結果ＥＲは、ＥＲＲ  ＣＯＵＮＴ３６ａから読み出され、ＲＡＭ３７に書き込まれる。このＰＩ２行のエラー訂正結果ＥＲは、図５に示すように、ＥＣＣブロックの２０８行の各ＰＩ行に対応する位置に書き込まれる。
【０１３８】
以上のようなＰＩ２訂正が、２０８行のＰＩ行すべてについて行われる。
【０１３９】
図２２は、ＲＡＭ３７にアクセスする際のバスアービトレーション（調停）の様子を示すタイミング図である。この図において、ＥＦＭＲＥＱ（図２２（ａ））は、ＥＦＭ＋復調回路３１がＥＦＭ＋復調データのＲＡＭ３７への書き込みを要求する際に、ＲＡＭコントローラ３５に対して出力する信号である。ＯＵＴＲＥＱ（図２２（ｂ））は、ＯＣＴＬ回路３９が、ＥＣＣ処理が施されたデータのＲＡＭ３７からの読み出しを要求する際に、ＲＡＭコントローラ３５に出力する信号である。また、ＥＣＣＲＥＱ（図２２（ｃ））は、ＥＣＣ制御回路３６がＥＣＣコア回路３８に対してデータを転送し、エラー訂正をさせるためにＲＡＭ３７にアクセスしたり、エラー訂正が施されたデータを得るためにＲＡＭ３７にアクセスしたり、または、ＳＢＣＤ回路３４に対してＳＵＢ転送（ＩＤとＩＥＣの転送）を行うためにＲＡＭ３７にアクセスする場合に、ＥＣＣ制御回路３６からＲＡＭコントローラ３５に出力される信号である。
【０１４０】
ＲＡＭコントローラ３５は、これら３つの信号に対して優先順位（Ｐｒｉｏｒｉｔｙ  Ｌｅｖｅｌ）を予め設定しており、これらの要求が同時になされた場合には、その優先順位に従って、ＲＡＭ３７のアクセス権を認めるＡＣＫ（認可）信号を順次出力する。ＥＦＭＡＣＫ（図２２（ｄ））、ＯＵＴＡＣＫ（図２２（ｅ））、ＥＣＣＡＣＫ（図２２（ｆ））は、それぞれ、ＥＦＭＲＥＱ、ＯＵＴＲＥＱ、または、ＥＣＣＲＥＱに対する認可信号である。この実施例において、前述の優先順位は、ＯＵＴＲＥＱ、ＥＦＭＲＥＱ、ＥＣＣＲＥＱの順とされている。従って、図２２に示すように、ＲＡＭコントローラ３５は、この順位に従って、ＲＥＱ信号に対するＡＣＫ信号を出力している。これらの信号は、システムクロックとしてのＣ１１Ｍ（図２２（ｇ））に同期して授受される。
【０１４１】
このように、本実施例において、ＲＡＭ３７のアクセス権は、所定のサイクル毎にＥＦＭＲＥＱ、ＥＣＣＲＥＱ、ＯＵＴＲＥＱの何れか１つに対応して与えられる。しかし、このサイクルは、ＲＡＭ３７の構成、種類、または、アクセスのスピードに対応して変更することも可能である。
【０１４２】
図２３は、１ＥＣＣブロックのデータに対してＰＩ１訂正、ＰＩ２訂正、およびＰＯ訂正を実行する場合に、ＲＡＭ３７がアクセスされる回数を示している。この図に示すように、ＰＩ１訂正、ＰＯ訂正およびＰＩ２訂正を実行した場合に必要となるＲＡＭ３７のアクセスの回数は、１ＥＣＣブロックあたり２１４７１６回であり、１メインフレームの平均は１０３３回となる。例えば、ＥＦＭ＋復調データの書き込み動作時におけるＲＡＭ３７のアクセス回数は、１メインフレームあたり１８２回であり、ＥＣＣの実行サイクル長は２０８バイト（２０８メインフレーム）とされているので、３７８５６（＝１８２×２０８）回が１ブロックあたりに必要なアクセス回数となる。このようにして各動作について必要なアクセス回数を算出し、これらの合計をとったものが前述の値となる。
【０１４３】
図２４は、ＲＡＭ３７からＯＣＴＬ回路３９を介してエラー訂正結果ＥＲのデータを出力するタイミングを示すタイミング図である。この図は、図１９（ｅ）の１８２ＳＤＣＫの期間に先行する部分を、時間軸を拡大して示している。この図において、ＳＤＣＫ（図２４（ａ））はＥＲのデータをストリームデータとして出力する場合のクロック信号を示す。ＳＩＮＦ（図２４（ｂ））はセクタ情報ストローブ信号であり、セクタの先頭においてＳＩＮＦ＝Ｈとなると共に、転送されるデータがセクタ情報（ＳＩ）であることを示す。ＥＳＴＢ（図２４（ｃ））は、エラー訂正結果ストローブ信号であり、ＥＳＴＢ＝Ｈとなることによりエラー訂正結果ＥＲが転送されることを示す。なお、各ＰＩ行においてエラー訂正結果ＥＲは、ＰＩ１訂正、ＰＯ訂正、およびＰＩ２訂正のそれぞれに対して１バイトずつ割り当てられているので、合計で３バイトとされる。これらのデータは図５に格納されている順序で出力されるので、エラー訂正結果ＥＲのビット５，６（図２１）を調べることにより、どの系列の結果（データ）であるのかを判定することができる。また、ＰＯ訂正の結果が出力されないＰＩ行では、ＰＯ訂正の結果を出力するタイミングでＥＳＴＢ＝Ｌとされる。
【０１４４】
ＤＳＴＢ（図２４（ｄ））は、信号ＳＤ［７：０］（図２４（ｅ））がメインデータであるときにＤＳＴＢ＝Ｈとされるデータストローブ信号である。ＳＩＮＦ、ＥＳＴＢ、またはＤＳＴＢの３つの信号は、ＯＣＴＬ回路３９により生成される。なお、図２４（ｅ）に示すように、セクタ情報ＳＩとエラー訂正結果ＥＲは、１８２ＳＤＣＫによりＰＩ行方向のデータを送出する直前に出力される。
【０１４５】
ＯＵＴＦ（補間フラグ）（図２４（ｆ））は、メインデータに対するエラーフラグであり、図２０のＦＬＡＧ  ＲＡＭ３６ｃに格納されているＰＩとＰＯの訂正不能フラグに基づき、エラーのあるメインデータに対して補間フラグが付加されて、出力されることになる。
【０１４６】
ＯＣＴＬ回路３９は、デコードが終了したセクタのデータが、出力されるべきデータであるか否かを、ＳＢＣＤ回路３４が生成したセクタ情報のビット４，５（図１３）より判定する。セクタ情報のビット４，５は、図１３に示すように、エンドセクタとスタートセクタとをそれぞれ示している。従って、ＯＣＴＬ回路３９は、ビット４＝０かつビット５＝１であるセクタのデータを、出力が指定された（出力されるべき）セクタのデータとして、出力する。
【０１４７】
また、ＯＣＴＬ回路３９は、例えば、メインデータのエラーフラグの有無やＥＤＣの結果などが、ホストＣＰＵ４０により予め設定された条件を満足するか否かも判定し、満足する場合、デコードデータを出力する。もし、設定された出力条件が満たされない場合には、デコードデータの出力を停止し、ホストＣＰＵ４０に異常を知らせる。
【０１４８】
データの出力条件は、例えば次のように設定される。
（１）出力を指定されたセクタのデータである。
（２）ＥＤＣ結果からエラーが検出されない。
（３）メインデータにエラーフラグが全く付加されていない。
出力条件がこのように設定された場合、これらの条件を全て満足するデータが最終的に出力される。また、以上の条件に拘らず、ホストＣＰＵ４０により強制的に出力を禁止することができる。
【０１４９】
なお、出力条件は以上に限定されるものではないことは勿論である。
【０１５０】
次に、補間フラグについて説明する。
【０１５１】
ＰＩ１訂正、ＰＩ２訂正、またはＰＯ訂正の結果に対応してそれぞれ生成されたＰＩ１フラグ、ＰＩ２フラグ、またはＰＯフラグは、ＥＣＣ制御回路３６のＦＬＡＧ  ＲＡＭ３６ｃに格納される。
【０１５２】
図２５は、ＦＬＡＧ  ＲＡＭ３６ｃのデータを、８ビット幅で構成されているＲＡＭ３７の所定の領域に格納し、読み出す部分のＥＣＣ制御回路３６の内部の構成を示すブロック図である。
【０１５３】
図２５において、ＥＣＣ制御回路３６に内蔵されている１−８変換回路５０は、ＦＬＡＧ  ＲＡＭ３６ｃより読み出された各行または各列毎に１ビットのＰＩフラグまたはＰＯフラグ（図２１のビット７）を８ビットのパラレルデータに変換する。ＲＡＭ３７は、８ビットに変換されたデータを格納する。ＥＣＣ制御回路３６に内蔵されているフリップフロップ５２−１乃至５２−２６は、ＦＩＦＯ方式によりデータを格納するようになされている。８−１変換回路５３は、８ビットデータを１ビットのデータに変換する。また、ＷＥ発生回路５６は、フリップフロップ５２−１乃至５２−２６に対するデータの書き込み動作の制御を行う。また、ＯＥ発生回路５５は、同じくフリップフロップ５２−１乃至５２−２６からデータを読み出す際の制御を行う。
【０１５４】
次に、この実施例の動作について説明する。
【０１５５】
ＦＬＡＧ  ＲＡＭ３６ｃより入力された１ビットのＰＩフラグ（ＰＩ１フラグまたはＰＩ２フラグ）またはＰＯフラグは、１−８変換回路５０により８ビットのパラレルデータに変換される。すなわち、各ＥＣＣブロックの先頭のＰＩ行より、８行毎にデータがまとめられ、バイトデータに変換される。そして、このバイトデータは、各ＥＣＣブロックのデータと共にアクセスできるように、ＲＡＭ３７へ格納される。
【０１５６】
ＰＩ行は、１ＥＣＣブロックあたり２０８行であり、各ＰＩ行のＰＩフラグは、１ビットであるので、２６（＝２０８／８）バイトの格納領域が必要となり、また、ＰＯ列は１ＥＣＣブロックあたり、１７２列であるので、ＰＯフラグの格納のためには、約２２（≒２１．５＝１７２／８）バイトの格納領域が必要となる。
【０１５７】
このように、ＲＡＭ３７に格納された８ビット単位のデータは、ＲＡＭコントローラ３５により読み出され、ＷＥ発生回路５６の制御に従って、８ビット単位でフリップフロップ５２−１乃至５２−２６に記憶される。８−１変換回路５３は、ＯＥ発生回路５５の制御に応じてフリップフロップ５２−１乃至５２−２６から出力される８ビット単位のデータを、１ビット単位のデータに変換する。そして、得られた１ビット単位のデータは、転送するデータの各系列のＰＩ行（またはＰＯ列）の番号に対応させてＥＣＣコア回路３８のエラーフラグの入力端子であるＥＦＬＧ端子に供給される。
【０１５８】
イレージャ訂正は、ＰＯ訂正とＰＩ２訂正の処理が行われるときに実行されるが、ＰＯ訂正とＰＩ２訂正は、ＥＣＣブロック単位で順次実行されることから、図２５の回路は、ＰＯ訂正とＰＩ２訂正で共通に使用することが可能である。但し、ＯＥ発生回路５５によるフリップフロップ５２−１乃至５２−２６からのデータの読みだしのタイミングと、８−１変換回路５３からのデータの読み出しのタイミングについては、ＰＩ２訂正とＰＯ訂正のそれぞれの場合で変更が必要である。
【０１５９】
図２６は、ＥＣＣ制御回路３６の補間フラグ（ＯＵＴＦ）を生成し、読み出す部分の回路の構成の一例を示すブロック図である。この図に示すように、補間フラグ読み出し回路は、ＦＩＦＯ方式でＲＡＭ３７からの８ビット単位のデータを格納するフリップフロップ７１−１乃至７１−２２、フリップフロップ７１−１乃至７１−２２より出力された８ビット単位のデータを１ビット単位のデータに変換する８−１変換回路７２、ＯＵＴＦ（補間フラグ）を発生するＯＵＴＦ発生回路（補間フラグ生成手段）７３、フリップフロップ７１−１乃至７１−２２にデータを書き込む際の制御を行うＷＥ発生回路７５、および、フリップフロップ７１−１乃至７１−２２からデータを読み出す際の制御を行うＯＥ発生回路７４により構成されている。
【０１６０】
次に、この実施例の動作について説明する。
【０１６１】
ＲＡＭコントローラ３５により読み出された８ビット単位のＰＯフラグのデータは、ＷＥ発生回路７５の制御のもとに、フリップフロップ７１−１乃至７１−２２に供給され、８ビット単位で書き込まれる。そして、このＰＯフラグのデータは、ＯＥ発生回路７４の制御のもと読み出され、８−１変換回路７２により、８ビット単位のデータから１ビット単位のデータに変換される。
【０１６２】
また、ＲＡＭ３７から読み出された８ビット単位のＰＩ２訂正のエラー訂正結果ＥＲと、８ビット単位のセクタ情報ＳＩも、ＯＵＴＦ発生回路７３に供給される。ＯＵＴＦ発生回路７３は、８−１変換回路７２より供給されたＰＯフラグと、ＰＩ２訂正のエラー訂正結果ＥＲのうち、ＰＩ２フラグ（ビット７）とエラー訂正数（ビット４乃至ビット０）、並びにセクタ情報ＳＩの補間フラグ生成モード（ビット７）に対応して、補間フラグ（ＯＵＴＦ）を生成する。この補間フラグの生成処理の詳細については、図３１と図３２のフローチャートを参照して後述する。
【０１６３】
なお、図２５および図２６に示す実施例において、エラーフラグは、ＲＡＭ３７以外の記憶装置に記憶させるようにしてもよい。また、これらの実施例では、ＦＩＦＯ方式の記憶装置（フリップフロップ５２−１乃至５２−２６またはフリップフロップ７１−１乃至７１−２２）を用いたが、ＦＩＦＯ方式以外の記憶装置を用いることも可能である。さらに、ＲＡＭ３７が１ビット幅である場合は、１−８変換回路５０、および８−１変換回路５３，７２を省略することも可能である。
【０１６４】
次に、ＥＣＣコア回路３８の動作モードの設定方法、および、データが訂正不能であるか否かの判定方法について説明する。
【０１６５】
まず、ＥＣＣコア回路３８の動作モード（エラー訂正モード）について説明する。ＥＣＣコア回路３８は、図２７に示すように、動作モードに関する入力端子としてＥＵＰ，ＥＦＬＧ，Ｐ，ＰＣＹＣ，Ｘ，Ｙ，Ｔの各端子を有し、動作モードに関する出力端子としてＯ．ＹＯＶＥＲ，Ｏ．ＣＯＤＥＥＲＲの各端子を有している。
【０１６６】
ＥＣＣコア回路３８のエラー訂正モードは、そのＥＵＰ端子に印加される信号により変更することができる。つまり、ＥＵＰ端子に印可される信号がＬの状態である場合には、シンドローム訂正（通常の訂正）のみが実行され、また、ＥＵＰ端子に印可される信号がＨの状態である場合には、先ず、イレージャ訂正が実行され、訂正能力に余裕がある場合には、通常訂正が続いて実行される。
【０１６７】
また、ＥＣＣコア回路３８のＯ．ＹＯＶＥＲ端子の出力は、そのＥＦＬＧ端子に入力されるエラーフラグの数が、予め設定されている所定の値を越えた場合にＨの状態となり、エラー訂正が不能の状態を示す。なお、ＥＵＰ端子がＨの状態（イレージャ訂正＋通常訂正モードが選択された状態）である場合に、Ｏ．ＹＯＶＥＲ端子がＨの状態になると、エラー訂正が不能とはされずに、通常の訂正が実行される。これは、エラー以外の原因でフラグが立ったデータを、通常訂正モードでエラー訂正できるようにするためである。
【０１６８】
なお、ＥＣＣ制御回路３６は、後述するように、エラーの数に応じて、ＥＣＣコア回路３８のＥＦＬＧ端子（図２５、図２７）に対して出力するＥＦＬＧ信号（エラーフラグに対応する信号）の状態を切り換える。
【０１６９】
ＥＣＤは空フラグ（ＥＣＤ＝０）を含むので、ＥＣＤが全て０である場合のデータは正しいデータであるとみなし、訂正を実行しない。従って、データの訂正数は、エラー位置ＥＣＡまたはエラーパターンＥＣＤの出力数より空フラグのＥＣＤの数を減じた値となる。
【０１７０】
なお、イレージャ訂正モードにおいて誤訂正が生じた場合には、ＥＣＣコア回路３８は、Ｏ．ＣＯＤＥＥＲＲ＝Ｈ、Ｏ．ＹＯＶＥＲ＝Ｌを出力する。従って、これらの信号を参照することにより誤訂正の発生を検出することができる。
【０１７１】
例えば、ＰＩ２訂正において、８イレージャ訂正を実行する場合、ＰＯフラグの入力数が７であれば、Ｏ．ＣＯＤＥＥＲＲ＝Ｈ、Ｏ．ＹＯＶＥＲ＝Ｌとなる。この場合、フラグが付加されていないデータエラーが１個以上存在することになる。
【０１７２】
明らかに、フラグが立っていないところに訂正不能のエラーがある場合、ＰＯ訂正において誤訂正が生じたことになる。そこでこの場合、ＰＯフラグが立っていないところにエラーが生じているので、ＯＵＴＦ＝１とする。
【０１７３】
これらの出力端子Ｏ．ＣＯＤＥＥＲＲとＯ．ＹＯＶＥＲの信号レベル（論理）は、ｆｌａｇとしてＲＡＭ３７に記録され、ＥＣＣ制御回路３６による補間フラグの生成時に使用される。例えば、ＰＩ１訂正、ＰＯ訂正、およびＰＩ２訂正の３つの訂正を実行する場合、ＰＩ２訂正のエラー訂正結果ＥＲの訂正数（図２１のビット４乃至ビット０）を以下のようにして設定することにより、誤訂正を判別することができる。
【０１７４】
（Ａ）  Ｏ．ＣＯＤＥＥＲＲ＝“Ｌ”，Ｏ．ＹＯＶＥＲ＝“Ｌ”の場合は、訂正結果の訂正数＝実際のエラー訂正数（訂正が実行された場合）
（Ｂ）  Ｏ．ＣＯＤＥＥＲＲ＝“Ｈ”，Ｏ．ＹＯＶＥＲ＝“Ｈ”の場合は、訂正結果の訂正数＝０（訂正が不能であった場合）
（Ｃ）  Ｏ．ＣＯＤＥＥＲＲ＝“Ｈ”，Ｏ．ＹＯＶＥＲ＝“Ｌ”の場合は、訂正結果の訂正数＝１Ｆ（Ｈ）（誤訂正があった場合）
なお、このＩＦ（Ｈ）の設定は、実際にはあり得ない訂正数として、５ビットで表現できる最大の値を設定することを意味する。
【０１７５】
次に、図２８と図２９を参照して、ＥＣＣコア回路３８の出力からＥＣＣ制御回路３６が行うエラーフラグの生成方法の例について詳述する。
【０１７６】
なお、図２８と図２９に示す各パラメータ（ＥＣＣコア回路３８の端子に印加される信号）等の意味を以下に示す。
【０１７７】
0003562544.tif 000003
【０１７８】
0003562544.tif 000004
【０１７９】
訂正結果
○：Ｏ．ＣＯＤＥＥＲＲとＯ．ＹＯＶＥＲ出力の状態により、エラーの訂正を
実行する場合
×：Ｏ．ＣＯＤＥＥＲＲとＯ．ＹＯＶＥＲ出力の状態により、エラーの訂正を
実行しない場合
【０１８０】
なお、“×”と判定された場合は、訂正が実行されないので、その系列のエラーフラグ＝Ｈとされる。
【０１８１】
図２８に示すように、ＥＣＣ制御回路３６は、ＰＩ１訂正を行うとき、ＥＣＣコア回路３８の端子ＥＦＬＧに入力されるフラグ入力ＥＲＲＯＲをＬとする。このとき、通常訂正が行われる。また、ＰＯ訂正を行う場合においては、ＥＣＣ制御回路３６は、ＥＣＣコア回路３８のＥＦＬＧ端子に対する入力ＥＲＲＯＲをＰＯ  ｆｌａｇとする。このとき、イレージャ訂正が行われる。従って、図２８におけるＰＩ  ｆｌａｇは、ＥＲＲＯＲ＝Ｌのとき、ＰＩ１フラグとなり、ＥＲＲＯＲ＝ＰＯ  ｆｌａｇのとき、ＰＯフラグとなる。
【０１８２】
ＥＣＣ制御回路３６は、Ｐ，ＰＣＹＣ，Ｘ，Ｙ，Ｔの各パラメータに対して、図２８に示すような設定を行い、ＥＣＣコア回路３８のＯ．ＣＯＤＥＥＲＲ端子とＯ．ＹＯＶＥＲ端子から、それぞれＬが出力されたとき、エラー訂正処理を実行し、ＰＩフラグまたはＰＯフラグとして、Ｌを設定する。
【０１８３】
また、ＥＣＣコア回路３８のＯ．ＣＯＤＥＥＲＲ端子からＨが出力され、Ｏ．ＹＯＶＥＲ端子からＬが出力されたときは、エラー訂正を実行せず、ＰＩフラグまたはＰＯフラグをＨとする。さらに、Ｏ．ＣＯＤＥＥＲＲ端子からＨが出力され、Ｏ．ＹＯＶＥＲ端子からＨが出力されたときは、エラー訂正を行わず、ＰＩフラグまたはＰＯフラグをＨとする。前者の場合は、誤訂正があったことを意味し、後者の場合は、エラー訂正が不能であったことを意味する。
【０１８４】
なお、図２８において、パラメータＸ，Ｙ，Ｔ＝１０は、訂正能力としては１０まで設定できるが、エラーが多いときなどは、誤訂正のおそれがあるので、より小さい値８に設定してもよい。
【０１８５】
ＥＣＣ制御回路３６は、ＰＯ訂正（イレージャ訂正）を行う場合においては、図２９に示すように、ＥＣＣコア回路３８のＥＦＬＧ端子に対する入力ＥＲＲＯＲをＰＩ１  ｆｌａｇとする。そして、そのＯ．ＣＯＤＥＥＲＲ端子と、Ｏ．ＹＯＶＥＲ端子の出力が、それぞれＬ，Ｌであるとき、ＥＣＣ制御回路３６は、エラー訂正を実行し、ＰＯフラグをＬとする。また、ＥＣＣコア回路３８の２つの出力が、Ｈ，Ｌ（誤訂正があった場合）またはＨ，Ｈ（訂正不能である場合）であるとき、ＥＣＣ制御回路３６はエラー訂正を実行せず、ＰＯフラグをＨとする。
【０１８６】
次に、補間フラグを生成する方法について説明する。図３０は、補間フラグを生成する第１の方法について示している。この方法においては、３つの方法のいずれか２つのうちの一方が選択できるようになされている。
【０１８７】
すなわち、この実施例においては、ＰＯフラグとＰＩ２フラグの論理積を補間フラグとする方法、ＰＯフラグとＰＩ２フラグの論理和を補間フラグとする方法、さらにＰＩ２訂正により誤訂正がなければＰＯフラグとＰＩ２フラグの論理積を補間フラグとし、ＰＩ２訂正において誤訂正があった場合には、ＰＯフラグとＰＩ２フラグの論理和を補間フラグとする方法のうちのいずれか２つの方法が先ず選択される。
【０１８８】
この３つの方法のうちの選択された２つを、それぞれを図１３に示すセクタ情報ＳＩのビット７の補間フラグ生成モード設定ビットの１または０に、対応させる。これにより、セクタ情報ＳＩのビット７に対応するモードで補間フラグが生成されることになる。
【０１８９】
このように、ＰＯフラグとＰＩ２フラグの論理積または論理和を用いて、補間フラグを生成することにより、ＥＤＣチェックの結果、エラーの存在が発見されたセクタのデータであっても、実際には誤っていないデータは、補間せずに、そのまま利用することが可能となる。
【０１９０】
なお、以上の実施例では、セクタ情報のビット７により、モードを選択するようにしたが、ホストＣＰＵ４０により、モードを強制的に変更することも可能である。
【０１９１】
次に、補間フラグを生成する他の実施例について、図３１と図３２のフローチャートを参照して説明する。
【０１９２】
この実施例の場合、最初にステップＳ２１（第２のフラグ生成手段）において、ＥＣＣ制御回路３６は、ＰＯ訂正の結果、エラーの訂正が不能である１バイトのデータに対しては、そのデータに対応する１ビットのＰＯフラグを１にし、それ以外のデータに対しては、ＰＯフラグを０にして、そのフラグをＲＡＭ３７に格納させる。次に、ステップＳ２２（第１のフラグ生成手段）において、ＥＣＣ制御回路３６は、ＰＩ２訂正の結果、エラーの訂正が不能であるデータに対応するＰＩ２フラグを１とし、その他のデータに対するＰＯフラグを０にして、ＲＡＭ３７に格納させる。
【０１９３】
さらに、ステップＳ２３では、ＰＩ２訂正において誤訂正が生じたか否かの検出結果がＲＡＭ３７に格納される。すなわち、図２８に示したように、ＰＩ２訂正（イレージャ訂正）で、誤訂正が生じた場合は、Ｏ．ＣＯＤＥＥＲＲ＝“Ｈ”、かつ、Ｏ．ＹＯＶＥＲ＝“Ｌ”となるので、ＥＣＣ制御回路３６は、ＥＣＣコア回路３８のこれらの端子の状態を読み込み、ＲＡＭ３７に格納させる。
【０１９４】
ステップＳ２４において、ＯＣＴＬ回路３９はセクタのＥＤＣのチェックを実行する。その結果、セクタデータにエラーが無い（ＹＥＳ）と判定された場合は、ステップＳ２５に進む。ステップＳ２５においては、そのセクタの補間フラグを０にする。補間フラグは、予め０に設定しておき、エラーが存在したときだけ１に設定する場合には、このステップにおいては特別な処理を行わないで済む。
【０１９５】
次にステップＳ２６に進み、データが補間フラグとともに出力される。
【０１９６】
すなわち、図１に示すように、１バイトのメインデータに対して、１ビットの補間フラグが対応して出力される。１つのＥＣＣブロックにおけるメインデータは、１９２×１７２バイト存在するため、補間フラグは、１９２×１７２ビット存在することになる。
【０１９７】
ステップＳ２４において、セクタのＥＤＣをチェックした結果、そのセクタにはエラーが存在する（ＮＯ）と判定された場合においては、ステップＳ２７に進む。ステップＳ２７においては、ホストＣＰＵ４０が、光ディスク１を再度読み出すのか（１）、またはエラーデータに補間フラグを付加して出力するのか（２）を選択する。光ディスク１を再び再生することが選択された場合、ステップＳ２８に進み、ホストＣＰＵ４０は、光ディスク１から、再びそのセクタを含むデータを再生させる。そして、再生された結果得られたデータについて、ステップＳ２１以降の処理が実行される。
【０１９８】
ステップＳ２７において、エラーデータに補間フラグを付加して出力することが選択された場合においては、ステップＳ２９に進む。ステップＳ２９においては、そのセクタのメインデータ（１２×１７２バイトのデータ）のすべてに対応するＰＯフラグとＰＩ２フラグの論理積を演算し、その論理積がすべて０であるか否かを判定する。
【０１９９】
ステップＳ２９において、すべてのメインデータのＰＯフラグとＰＩ２フラグの論理積が０であると判定された場合、いまステップＳ２４において、そのセクタのＥＤＣをチェックした結果、このセクタのデータにはエラーが存在すると判定されているのであるから、エラーが存在するにも拘らず、エラーの存在を表すフラグが設定されていない状態であることになる。すなわち、この場合、ＰＩ１訂正、ＰＯ訂正、またはＰＩ２訂正において、誤訂正が行われたことになる。そこで、この場合においては、ステップＳ３０（補間フラグ生成手段）に進み、そのセクタのすべてのＰＩ行（１２ＰＩ行）の補間フラグを１に設定する。すなわち、１２×１７２ビットの補間フラグをすべて１に設定する。
【０２００】
次にステップＳ２６に戻り、メインデータを補間フラグとともに、ＯＣＴＬ回路３９から出力する。
【０２０１】
ステップＳ２９において、すべてのメインデータのＰＯフラグとＰＩ２フラグの論理積が０ではないと判定された場合（少なくとも１つのメインデータについてのＰＯフラグとＰＩ２フラグの論理積が１であると判定された場合）、ステップＳ３１に進み、ＰＩ２訂正の訂正数が１Ｆであるか否かを判定する。すなわち、図２５と図２７を参照して上述したように、ＥＣＣコア回路３８の出力が、Ｏ．ＣＯＤＥＥＲＲ＝Ｈ、且つ、Ｏ．ＹＯＶＥＲ＝Ｌの場合は、誤訂正があった場合であるので、エラー訂正結果ＥＲの訂正数（図２１のビット４乃至ビット０）に、実際の訂正能力以上の所定の値（いまの場合１Ｆ）が設定されている。ＰＩ２訂正において、誤訂正が行われた場合においては、このＰＩ２訂正の訂正数が１Ｆに設定されていることになる。ステップＳ３１において、最初のＰＩ行のＰＩ２訂正の訂正数が１Ｆに設定されていると判定された場合（ＰＩ２訂正において誤訂正がなされたと判定された場合）、ステップＳ３２（補間フラグ生成手段）に進み、ＰＩ２訂正の訂正数が１Ｆと設定されているそのＰＩ行の補間フラグ（１×１７２ビットの補間フラグ）に１を設定する。
【０２０２】
次にステップＳ３３に進み、ＥＤＣチェックの結果、エラーが存在すると判定されたセクタの１２ＰＩ行のすべてについて、処理が終了したか否かが判定される。すべてのＰＩ行についての処理が終了していない場合、ステップＳ３４に進み、次のＰＩ行が選択される。そして、さらにステップＳ３１に戻り、新たに選択したＰＩ行について、同様の処理が実行される。
【０２０３】
ステップＳ３３において、そのセクタのすべてのＰＩ行（１２ＰＩ行）についての処理が終了したと判定された場合、ステップＳ２６に戻り、メインデータを補間フラグとともに出力する処理が実行される。
【０２０４】
ステップＳ３１において、ＰＩ２訂正の訂正数が１Ｆではないと判定された場合、エラーは存在するが、誤訂正は存在しないということになる。すなわち、この場合においては、フラグに信頼性が存在することになるので、ステップＳ３５に進み、そのＰＩ行のメインデータの補間フラグに、ＰＯフラグとＰＩ２フラグの論理積を設定する処理が実行される。
【０２０５】
すなわち、ステップＳ３２においては、そのＰＩ行の補間フラグがすべて１に設定されるのであるが、ステップＳ３５（補間フラグ生成手段）の処理においては、ＰＯフラグとＰＩ２フラグに信頼性が存在するため、その論理積が補間フラグとして利用される。補間フラグとともに出力されたメインデータは、後段の回路において、補間フラグに１が設定されている場合においては、補間処理が実行されるのであるが、ステップＳ３５の処理のように、補間フラグを設定すれば、実際にエラーの存在するデータだけを補間し、エラーの存在しないデータは、そのまま用いることが可能となる。この点、従来、ＥＤＣチェックの結果、エラーが存在すると判定された場合、そのセクタに属するすべてのメインデータについて、その補間フラグを１に設定する処理が行われる（従って、そのセクタのすべてのメインデータに対して補間処理が行われる）のと大きく異なっている。
【０２０６】
ステップＳ３５の処理の次にステップＳ３３に進み、そのセクタのすべてのＰＩ行についての処理が終了したか否かが判定され、処理が終了していないＰＩ行が存在する場合においては、ステップＳ３４において、新たなＰＩ行が選択され、ステップＳ３１において、その新たなＰＩ行についての処理が同様に実行される。
【０２０７】
以上の実施例によれば、ＥＣＣの訂正結果に基づいて生成されたエラーフラグによりイレージャ訂正を実行することで、エラーの訂正能力を高めることができる。また、各系列のエラーフラグに基づき、デコードデータ１バイト毎にエラーフラグを付けて後段のデコーダ１４，１６（図３３）に転送することにより、エラーデータの補間処理が可能となる。
【０２０８】
すなわち、ＴＯＣデータのように、エラーを補間することが適当でないデータの場合は、誤訂正が生ずる確率が低くなるようにエラー訂正モードを設定し、また、オーディオデータや映像データのように、補間が可能なデータに対しては、訂正不可能となる確率を下げるとともに、エラー検出もれ確率を抑制するようにエラー訂正モードを設定することができる。それにより、それぞれのセクタに記録されているデータの性質に合ったエラー訂正をセクタ単位で実行することが可能となる。
【０２０９】
なお、本実施例においては、ＯＣＴＬ回路３９において、デスクランブル処理、ＥＤＣチェック、出力条件判断を行うようにしたが、ＯＣＴＬ回路３９の後段に、さらに別の回路を設け、後段の多重化データ分離回路８からの転送要求に従って出力条件が充足されている訂正後のデータを出力させる制御を行わせるようにすることもできる。
【０２１０】
また、ＥＣＣ制御回路３６がＰＩ２訂正を実行する前に、セクタ情報のビット４，５（図１３）を参照して、出力が要求されているセクタのデータに対してのみＰＩ２訂正を実行することもできる。すなわち、ビット４，５を参照して、出力が要求されていないデータは、リングバッファ制御回路６のリードポインタにより、それらのデータをスキップするようにすればよい。
【０２１１】
さらに、リングバッファメモリ７（ＲＡＭ３７）からＯＣＴＬ回路３９にデータを転送する際にも、ＯＣＴＬ回路３９から出力を要求されているデータだけを、上述のように、リードポインタを用いて選択することができる。
【０２１２】
また、以上の実施例では、列方向に１回の訂正処理（ＰＯ訂正）と、行方向に２回の訂正処理（ＰＩ１訂正およびＰＩ２訂正）を行うようにしたが、本発明は、このような場合のみに限定されるものではなく、各方向に、それ以上の回数の訂正を行う場合にも適用可能であることは言うまでもない。
【０２１３】
【発明の効果】
本発明の第１の復号化装置によれば、復号化の対象となるデータを記憶し、行方向と列方向に対してそれぞれエラー訂正処理を行い、行方向または列方向のうちのいずれか一の方向に対するエラー訂正の結果に応じて第１のフラグを生成し、行方向または列方向のうちの一の方向と異なる他の方向に対してエラー訂正を実行した結果に応じて第２のフラグを生成し、第１のフラグと第２のフラグを用いて補間フラグを生成するとともに、行方向と列方向のエラー訂正の後、さらに一の方向に対する第２回目のエラー訂正の結果に応じて新たに第３のフラグを生成し、第３のフラグと第２のフラグを用いて補間フラグを生成し、一の方向に対する第２回目のエラー訂正により誤訂正がなければ、新たに生成した第３のフラグと第２のフラグの論理積を補間フラグとし、一の方向に対する第２回目のエラー訂正により誤訂正があれば、新たに生成した第３のフラグと第２のフラグの論理和を補間フラグとするようにした。
また、本発明の第２の復号化装置および復号化方法によれば、復号化の対象となるデータを記憶し、行方向と列方向に対してそれぞれエラー訂正処理を行い、行方向または列方向のうちのいずれか一の方向に対するエラー訂正の結果に応じて第１のフラグを生成し、行方向または列方向のうちの一の方向と異なる他の方向に対してエラー訂正を実行した結果に応じて第２のフラグを生成し、第１のフラグと第２のフラグを用いて補間フラグを生成するとともに、行方向と列方向のエラー訂正の後、さらに一の方向に対する第２回目のエラー訂正の結果に応じて新たに第３のフラグを生成し、第３のフラグと第２のフラグを用いて補間フラグを生成し、一の方向に対する第２回目のエラー訂正によりエラーがあれば、新たに生成した第３のフラグと第２のフラグの論理積を演算し、それが０であるか否かに対応して、補間フラグを生成するようにした。
従って、補間フラグを直ちに生成する必要がなくなり、エラー訂正の処理単位より小さい単位で、補間フラグの生成方法を変更することが可能となる。
【０２１４】
また、補間フラグをデータと異なる領域に独立して記憶するようにしたので、補間フラグをバイト単位で記憶させることが可能となり、補間フラグを記憶するメモリの容量を低減することが可能となり、低コスト化を図ることができる。
【図面の簡単な説明】
【図１】本発明に関するエラーフラグとデータの関係を示す図である。
【図２】本発明の復号化装置の主要部分の構成を示すブロック図である。
【図３】光ディスク１の物理セクタの構成例を示す図である。
【図４】光ディスク１のデータセクタの構成例を示す図である。
【図５】データ、エラーフラグ、および補間フラグのＲＡＭ３７における格納方法の例を示す図である。
【図６】ＥＦＭ＋復調回路の出力のＲＡＭへの書き込みを説明するタイミング図である。
【図７】ＥＦＭ＋復調回路のロック検出処理を説明するフローチャートである。
【図８】ＥＦＭ＋復調回路のＳＣＳＹ信号の生成処理を説明するフローチャートである。
【図９】ＥＦＭ＋復調回路のｍａｉｎ−ＦＭＳＹ信号の補間処理を説明するフローチャートである。
【図１０】ｂｌｏｃｋ−ｔｏｐの検出のタイミング図である。
【図１１】ｂｌｏｃｋ−ｔｏｐ検出後の処理のタイミング図である。
【図１２】ＳＵＢ転送が行われる場合の主要部分の信号のタイミング図である。
【図１３】セクタ情報の各ビットの持つ意味を説明する図である。
【図１４】ＳＢＣＤ回路のＩＥＣ正常連続性処理を説明するフローチャートである。
【図１５】ＳＢＣＤ回路のアドレス連続性判定処理を説明するフローチャートである。
【図１６】ＳＢＣＤ回路のＳＡＬＫ信号の生成処理を説明するフローチャートである。
【図１７】ＥＣＣ処理の結果を出力する際の主要部分の信号のタイミング図である。
【図１８】ＥＣＣ処理の結果を出力する際の主要部分の信号のタイミング図である。
【図１９】ＥＣＣ処理が実行される場合の制御のタイミングを示すタイミング図である。
【図２０】エラー訂正時のデータの流れを示すブロック図である。
【図２１】エラー訂正結果ＥＲの各ビットが有する情報を示す図である。
【図２２】ＲＡＭ３７のアクセスに関するアービトレーションを示すタイミング図である。
【図２３】１ブロックのデータを処理する際にＲＡＭ３７をアクセスする回数を示す図である。
【図２４】ＯＣＴＬ回路３９から訂正結果ＥＲを出力するタイミングを示すタイミング図である。
【図２５】エラーフラグの読み出しを行うための回路の構成例を示すブロック図である。
【図２６】補間フラグの格納または読み出しを行うための回路の構成例を示すブロック図である。
【図２７】ＥＣＣコア回路３８の入力端子と出力端子を説明する図である。
【図２８】ＰＩフラグの生成を説明する図である。
【図２９】ＰＯフラグの生成を説明する図である。
【図３０】補間フラグ生成モードを説明する図である。
【図３１】本発明の復号化装置において実行される動作を説明するフローチャートである。
【図３２】図３１に続くフローチャートである。
【図３３】復号化装置の構成の一例を示すブロック図である。
【図３４】１セクタ分のデータのフォーマットを示す図である。
【図３５】３２ｋバイトのデータの構成を説明する図である。
【図３６】図３５の外符号をインターリーブした状態を説明する図である。
【図３７】３２ｋバイトブロックのデータの構成を示す図である。
【図３８】従来の復号化装置において実行される処理を説明するフローチャートである。
【符号の説明】
７  リングバッファメモリ，  ３１  ＥＦＭ＋復調回路，  ３４  ＳＢＣＤ回路，  ３５  ＲＡＭコントローラ，  ３６  ＥＣＣ制御回路，  ３７  ＲＡＭ，３９  ＯＣＴＬ回路，  ３８  ＥＣＣコア回路，  ４０  ホストＣＰＵ，  ７３  ＯＵＴＦ発生回路
【図１】
0003562544.tif 000005
【図２】
0003562544.tif 000006
【図３】
0003562544.tif 000007
【図４】
0003562544.tif 000008
【図５】
0003562544.tif 000009
【図６】
0003562544.tif 000010
【図７】
0003562544.tif 000011
【図８】
0003562544.tif 000012
【図９】
0003562544.tif 000013
【図１０】
0003562544.tif 000014
【図１１】
0003562544.tif 000015
【図１２】
0003562544.tif 000016
【図１３】
0003562544.tif 000017
【図１４】
0003562544.tif 000018
【図１５】
0003562544.tif 000019
【図１６】
0003562544.tif 000020
【図１７】
0003562544.tif 000021
【図１８】
0003562544.tif 000022
【図１９】
0003562544.tif 000023
【図２０】
0003562544.tif 000024
【図２１】
0003562544.tif 000025
【図２２】
0003562544.tif 000026
【図２３】
0003562544.tif 000027
【図２４】
0003562544.tif 000028
【図２５】
0003562544.tif 000029
【図２６】
0003562544.tif 000030
【図２７】
0003562544.tif 000031
【図２８】
0003562544.tif 000032
【図２９】
0003562544.tif 000033
【図３０】
0003562544.tif 000034
【図３１】
0003562544.tif 000035
【図３２】
0003562544.tif 000036
【図３３】
0003562544.tif 000037
【図３４】
0003562544.tif 000038
【図３５】
0003562544.tif 000039
【図３６】
0003562544.tif 000040
【図３７】
0003562544.tif 000041
【図３８】
0003562544.tif 000042