JP3562544B2 - 復号化装置および復号化方法 - Google Patents

復号化装置および復号化方法 Download PDF

Info

Publication number
JP3562544B2
JP3562544B2 JP21349296A JP21349296A JP3562544B2 JP 3562544 B2 JP3562544 B2 JP 3562544B2 JP 21349296 A JP21349296 A JP 21349296A JP 21349296 A JP21349296 A JP 21349296A JP 3562544 B2 JP3562544 B2 JP 3562544B2
Authority
JP
Japan
Prior art keywords
flag
data
error correction
interpolation
correction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP21349296A
Other languages
English (en)
Other versions
JPH1055630A (ja
Inventor
高廣 市川
一博 安田
直 中田
重治 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP21349296A priority Critical patent/JP3562544B2/ja
Priority to US08/901,290 priority patent/US5886654A/en
Priority to EP97305878A priority patent/EP0825603A3/en
Priority to CN97118563A priority patent/CN1127086C/zh
Priority to KR1019970038619A priority patent/KR19980018647A/ko
Publication of JPH1055630A publication Critical patent/JPH1055630A/ja
Application granted granted Critical
Publication of JP3562544B2 publication Critical patent/JP3562544B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1876Interpolating methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Error Detection And Correction (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、復号化装置および復号化方法に関し、特に、復号化するデータの行方向と列方向に対してそれぞれエラー訂正処理が実行され、その結果に基づいて行単位および列単位でエラーフラグを生成する復号化装置および復号化方法に関する。
【0002】
【従来の技術】
例えば、光ディスク再生装置などにおいて、光ビームにより読み出された情報は、光ディスクの傷などに起因する読みとりエラーを含むため、エラー訂正が施される。
【0003】
図33は、従来の光ディスク再生装置の構成例を示す図である。この図において、光ディスク1には、画像や音声などのデータが可変レートで記録されている。ピックアップ2は、光ディスク1に記録されている情報をレーザビームにより読み出す。ピックアップ2が出力する再生信号は、復調回路3により復調され、セクタ検出回路4に供給される。セクタ検出回路4は、再生信号をもとにセクタを検出する。ECC(Error Correction Code)回路5は、セクタ検出回路4から入力された再生信号に対してエラー検出およびエラー訂正を施す。
【0004】
セクタ検出回路4において、光ディスク1のセクタに割り当てられたセクタ番号が正常に検出されなかった場合、トラックジャンプ判定回路18にセクタ番号異常信号が出力される。ECC回路5は、訂正不能のデータが生じた場合に、トラックジャンプ判定回路18に対して訂正不能エラー発生信号を出力する。エラー訂正されたデータは、ECC回路5からリングバッファメモリ7に送出されて記憶される。
【0005】
このときリングバッファ制御回路6は、セクタ検出回路4の出力から、各セクタ毎のアドレスを読みとり、そのアドレスに対応するリングバッファメモリ7上の書き込みアドレス(書き込みポインタWP)を指定する。また、リングバッファ制御回路6は、後段の多重化データ分離回路8からのコードリクエスト信号に応じて、リングバッファメモリ7に書き込まれたデータの読み出しアドレス(読み出しポインタRP)を指定し、その読み出しポインタRPからデータを読み出して、多重化データ分離回路8に供給する。
【0006】
多重化データ分離回路8のヘッダ分離回路9は、リングバッファメモリ7から供給されたデータからパックヘッダとパケットヘッダを分離して分離回路制御回路11に供給する。分離回路制御回路11は、ヘッダ分離回路9から供給されたパケットヘッダのストリームID(Stream Identifier)情報に従い、スイッチング回路10の入力端子Gと出力端子(被切替端子)H1,H2を順次サイクリックに切り替えることにより、時分割多重化されたビデオコードデータとオーディオコードデータを正しく分離し、対応するコードバッファ13または15に供給する。
【0007】
ビデオコードバッファ13は、内部のコードバッファの残量に応じて、多重化データ分離回路8に対してコードリクエストを発生する。また、ビデオコードバッファ13は、受け取ったデータを記憶すると共に、ビデオデコーダ14からのコードリクエストの入力を受け、内部データを出力する。ビデオデコーダ14は、供給されたデータをデコードしてビデオ信号を再生し、出力端子91から出力する。
【0008】
オーディオコードバッファ15は、内部のコードバッファの残量に応じて、多重化データ分離回路8に対してコードリクエストを供給し、その結果供給されたデータを記憶する。また、このオーディオコードバッファ15は、オーディオデコーダ16からのコードリクエストを受け、内部のデータを出力する。オーディオデコーダ16は、供給されたデータをデコードしてオーディオ信号を再生し、出力端子92から出力する。
【0009】
このように、ビデオデータとオーディオデータは、後段の回路(出力端子により近い回路)からの転送要求に応じて前段の回路から適宜供給される。例えば、ビデオデコーダ14は、ビデオコードバッファ13に対してデータの転送要求を行い、多重化データ分離回路8は、リングバッファ制御回路6に対してデータの転送要求を行う。そして、データは、リングバッファメモリ7からビデオデコーダ14へと、転送要求が伝達されるのとは逆の方向に伝達されていくことになる。
【0010】
次に、記録データのフォーマットについて説明する。この例においては、1クラスタ(32kバイト)を1単位として、データが記録されている。このクラスタの構成を以下に詳述する。
【0011】
すなわち、2kバイト(2048バイト)のデータが、1セクタ分のデータとして抽出され、これに図34に示すように、16バイトのオーバーヘッドが付加される。このオーバーヘッドには、セクタアドレスと、エラー検出のためのエラー検出符号(EDC(Error Detection Code))などが含まれている。
【0012】
この、合計2064(=2048+16)バイトの1セクタ分のデータが、図35に示すように、12×172(=2064)バイトのデータとされる。そして、この1セクタ分のデータが16個集められ、192(=12×16)×172バイトのデータとされる。この192×172バイトのデータに対して、16バイトの外符号(PO)が、縦方向に各バイト毎にパリティとして付加される。また、208(=192+16)×172バイトのデータとPOパリティに対して、10バイトの内符号(PI)が、横方向に各バイト毎にパリティとして付加される。
【0013】
さらに、このようにして208(=192+16)×182(=172+10)バイトにブロック化されたデータのうち、16×182バイトの外符号(PO)の行は、16個の1×182バイトの行に区分され、図36に示すように、12×182バイトの番号0乃至番号15の16個のセクタデータの下に1行ずつ挿入されて、インターリーブされる。そして、13(=12+1)×182バイトのデータが1セクタのデータとされる。
【0014】
さらに、図36に示す208×182バイトのデータは、図37に示すように、縦方向に2分割され、1フレームを91バイトのデータで構成して、208×2フレームのデータとされる。91バイトのフレームデータの先頭には、さらに2バイトのフレーム同期信号(FS)が付加される。その結果、図37に示すように、1フレームのデータは合計93バイトのデータとなり、合計208×(93×2)バイトのブロックのデータとなる。これが、1クラスタ(1ECCブロック)分のデータとなる。そのオーバーヘッド部分を除いた実データ部の大きさは32kバイト(=2048×16/1024kバイト)となる。
【0015】
すなわち、この例の場合、1クラスタ(1ECCブロック)が16セクタより構成され、1セクタが24フレームにより構成される。このようなデータが光ディスク1にクラスタ単位で記録されていることになる。
【0016】
次に、図33に示す例において、データのエラー訂正が実行され、エラーデータを補間するための補間フラグが生成される場合の動作について説明する。
【0017】
図38は、図33の例において実行されるセクタデータのエラー判定方法の処理を説明するフローチャートである。この処理は、ECC回路5により、内符号PIを用いて図35の行方向(横方向)に第1回目の訂正を行い(以下、PI1訂正という)、次に外符号POを用いて列方向(縦方向)の訂正を行い(以下、PO訂正という)、さらに、内符号PIを用いて行方向に第2回目の訂正が行われた(以下、PI2訂正という)場合に実行される。
【0018】
この処理では、ステップS1において、PI2訂正の結果、対象とするECCブロックにおいて、訂正不能のエラーが存在するか否かが判定される。訂正不能のエラーが存在しない(NO)と判定した場合は、ステップS4に進み、また、訂正不能のエラーが存在する(YES)と判定した場合は、ステップS2に進む。
【0019】
ステップS2では、光ディスク1を再リード(再び再生)するか否かが判定される。すなわち、
(1)訂正不能のエラーが存在するECCブロックを光ディスク1から再度読み込むか、
または、
(2)そのECCブロックのデータに補間フラグを付加して出力する
のいずれにするのかが判定される。光ディスク1を再リードする(1)と判定された場合は、ステップS3に進み、光ディスク1を再リードし、ステップS1の処理に戻る。また、そのECCブロックのデータを使用しない(2)と判定された場合は、そのブロックの全てのデータに対して補間フラグ(補間が必要であることを示すフラグ)が付加され、ステップS4に進む。
【0020】
次に、ステップS4では、セクタのEDCチェック(図34で説明した各セクタ毎に挿入されているエラー検出符号によるエラーの有無のチェック)の結果が正常であるか否かが判定される。すなわち、各セクタにエラーが含まれているか否かが検出される。セクタのEDCチェックの結果が正常である(エラーがない)(YES)と判定された場合は、ステップS7に進み、データをそのまま出力する。また、セクタのEDCチェックの結果が正常ではない(エラーがある)(NO)と判定された場合は、ステップS5に進む。
【0021】
ステップS5では、光ディスク1を再リードするか否かが判定される。すなわち、
(1)エラーを含むセクタを光ディスク1から再度リードするか、
または、
(2)エラーを含むセクタのデータに補間フラグを付加して出力する
の何れかを選択する。光ディスク1の再リードを行う(1)と選択された場合、ステップS6に進み、エラーを生じたセクタを光ディスク1から再度読み出した後、ステップS1に戻る。また、エラーを含むセクタのデータを補間フラグを付加して出力する(2)と選択された場合は、そのセクタの全てのデータに対して補間フラグが付加され、ステップS7に進む。ステップS7では、処理されたデータ(いまの場合、補間フラグが付加されているデータ)が出力され、処理を終了する。
【0022】
【発明が解決しようとする課題】
ところで、以上に説明した従来の例において、ECC回路5により訂正不可能なデータが検出された場合は、補間フラグがそのECCブロックのすべてのデータに対して付加されることになる。このとき、ECCブロックを構成する各データは8ビット(1バイト)であり、また、補間フラグは1ビットとされている。従って、補間フラグが付加されたデータのビット長は9ビットとなり、このような9ビットのデータを記憶するためには、データを9ビット単位で記憶するメモリが必要となるが、そのようなメモリはあまり一般的ではなく、また高価であるため、装置の製造コストが高くなるという課題があった。
【0023】
また、ある長さ(1ECCブロック)のデータを1処理単位としてECC復号化が行われた場合、補間フラグの生成方法はこの処理単位に対しては同一の方法とされる。従って、処理単位(1ECCブロック)より小さい単位で補間フラグの生成方法を変更することはできないという課題があった。例えば、1セクタ単位で補間フラグの生成方法を変更することはできないという課題があった。
【0024】
本発明は、以上のような状況に鑑みてなされたものであり、復号化装置のコストを削減すると共に、補間フラグの生成方法をセクタ単位で自由に変更し、もって、よりきめのこまかい単位でデータを有効に利用することを可能とする。
【0025】
また、本発明は、補間が不可能なセクタのデータに対しては、エラーの検出確率を向上させると共に、エラーが生じていないセクタのデータの使用を可能とする。
【0026】
【課題を解決するための手段】
本発明の第1の復号化装置は、復号化の対象となるデータを記憶する記憶手段と、記憶手段に記憶されたデータの行方向と列方向に対してそれぞれエラー訂正処理を行うエラー訂正手段と、記憶手段に記憶されたデータの行方向または列方向のうちのいずれか一の方向に対してエラー訂正手段がエラー訂正を実行した結果に応じて、第1のフラグを生成する第1のフラグ生成手段と、記憶手段に記憶されたデータの行方向または列方向のうちの一の方向と異なる他の方向に対してエラー訂正手段がエラー訂正を実行した結果に応じて、第2のフラグを生成する第2のフラグ生成手段と、第1のフラグと第2のフラグを用いて補間フラグを生成する補間フラグ生成手段とを備え、第1のフラグ生成手段は、記憶手段に記憶されたデータの行方向と列方向のエラー訂正の後、さらに一の方向に対して第2回目のエラー訂正をエラー訂正手段が実行したとき、第2回目の一の方向のエラー訂正結果に応じて、新たに第3のフラグを生成し、補間フラグ生成手段は、新たに生成した第3のフラグと第2のフラグを用いて補間フラグを生成し、記憶手段は、補間フラグをデータと異なる領域に独立してさらに記憶し、補間フラグ生成手段は、一の方向に対する第2回目のエラー訂正により誤訂正がなければ、新たに生成した第3のフラグと第2のフラグの論理積を補間フラグとし、一の方向に対する第2回目のエラー訂正により誤訂正があれば、新たに生成した第3のフラグと第2のフラグの論理和を補間フラグとすることを特徴とする。
本発明の第2の復号化装置は、復号化の対象となるデータを記憶する記憶手段と、記憶手段に記憶されたデータの行方向と列方向に対してそれぞれエラー訂正処理を行うエラー訂正手段と、記憶手段に記憶されたデータの行方向または列方向のうちのいずれか一の方向に対してエラー訂正手段がエラー訂正を実行した結果に応じて、第1のフラグを生成する第1のフラグ生成手段と、記憶手段に記憶されたデータの行方向または列方向のうちの一の方向と異なる他の方向に対してエラー訂正手段がエラー訂正を実行した結果に応じて、第2のフラグを生成する第2のフラグ生成手段と、第1のフラグと第2のフラグを用いて補間フラグを生成する補間フラグ生成手段とを備え、第1のフラグ生成手段は、記憶手段に記憶されたデータの行方向と列方向のエラー訂正の後、さらに一の方向に対して第2回目のエラー訂正をエラー訂正手段が実行したとき、第2回目の一の方向のエラー訂正結果に応じて、新たに第3のフラグを生成し、補間フラグ生成手段は、新たに生成した第3のフラグと第2のフラグを用いて補間フラグを生成し、記憶手段は、補間フラグをデータと異なる領域に独立してさらに記憶し、補間フラグ生成手段は、一の方向に対する第2回目のエラー訂正によりエラーがあれば、新たに生成した第3のフラグと第2のフラグの論理積を演算し、それが0であるか否かに対応して、補間フラグを生成することを特徴とする。
前記補間フラグ生成手段は、論理積が0であれば、補間フラグを1に設定するようにすることができる。
前記補間フラグ生成手段は、論理積が0でなく、一の方向に対する第2回目のエラー訂正により誤訂正があれば、補間フラグを1に設定するようにすることができる。
前記補間フラグ生成手段は、論理積が0でなく、一の方向に対する第2回目のエラー訂正により誤訂正がなければ、新たに生成した第3のフラグと第2のフラグの論理積を補間フラグとするようにすることができる
【0027】
本発明の復号化方法は、復号化の対象となるデータを記憶する記憶ステップと、記憶ステップで記憶されたデータの行方向と列方向に対してそれぞれエラー訂正処理を行うエラー訂正ステップと、記憶ステップで記憶されたデータの行方向または列方向のうちのいずれか一の方向に対してエラー訂正ステップがエラー訂正を実行した結果に応じて、第1のフラグを生成する第1のフラグ生成ステップと、記憶ステップで記憶されたデータの行方向または列方向のうちの一の方向と異なる他の方向に対してエラー訂正ステップがエラー訂正を実行した結果に応じて、第2のフラグを生成する第2のフラグ生成ステップと、第1のフラグと第2のフラグを用いて補間フラグを生成する補間フラグ生成ステップとを備え、第1のフラグ生成ステップは、記憶ステップで記憶されたデータの行方向と列方向のエラー訂正の後、さらに一の方向に対して第2回目のエラー訂正をエラー訂正ステップが実行したとき、第2回目の一の方向のエラー訂正結果に応じて、新たに第3のフラグを生成し、補間フラグ生成ステップは、新たに生成した第3のフラグと第2のフラグを用いて補間フラグを生成し、記憶ステップは、補間フラグをデータと異なる領域に独立してさらに記憶し、補間フラグ生成ステップは、一の方向に対する第2回目のエラー訂正によりエラーがあれば、新たに生成した第3のフラグと第2のフラグの論理積を演算し、それが0であるか否かに対応して、補間フラグを生成することを特徴とする。
【0028】
本発明の第1の復号化装置においては、復号化の対象となるデータが記憶され記憶されたデータの行方向と列方向に対してそれぞれエラー訂正処理が行われ記憶されたデータの行方向または列方向のうちのいずれか一の方向に対してエラー訂正を実行した結果に応じて、第1のフラグ生成され記憶されたデータの行方向または列方向のうちの一の方向と異なる他の方向に対してエラー訂正を実行した結果に応じて、第2のフラグ生成され、第1のフラグと第2のフラグを用いて補間フラグが生成される。また、記憶されたデータの行方向と列方向のエラー訂正の後、さらに一の方向に対して第2回目のエラー訂正実行されたとき、第2回目の一の方向のエラー訂正結果に応じて、新たに第3のフラグ生成され、新たに生成した第3のフラグと第2のフラグを用いて補間フラグが生成される。また、補間フラグデータと異なる領域に独立して記憶される。さらに、一の方向に対する第2回目のエラー訂正により誤訂正がなければ、新たに生成した第3のフラグと第2のフラグの論理積が補間フラグとされ、一の方向に対する第2回目のエラー訂正により誤訂正があれば、新たに生成した第3のフラグと第2のフラグの論理和が補間フラグとされる。
【0029】
本発明の第2の復号化装置および復号化方法においては、復号化の対象となるデータ記憶され記憶されたデータの行方向と列方向に対してそれぞれエラー訂正処理が行われ記憶されたデータの行方向または列方向のうちのいずれか一の方向に対してエラー訂正を実行した結果に応じて、第1のフラグ生成され記憶されたデータの行方向または列方向のうちの一の方向と異なる他の方向に対してエラー訂正を実行した結果に応じて、第2のフラグ生成され、第1のフラグと第2のフラグを用いて補間フラグが生成される。また、記憶されたデータの行方向と列方向のエラー訂正の後、さらに一の方向に対して第2回目のエラー訂正をエラー訂正ステップが実行したとき、第2回目の一の方向のエラー訂正結果に応じて、新たに第3のフラグ生成され、新たに生成した第3のフラグと第2のフラグを用いて補間フラグが生成される。また、補間フラグデータと異なる領域に独立して記憶される。さらに、一の方向に対する第2回目のエラー訂正によりエラーがあれば、新たに生成した第3のフラグと第2のフラグの論理積が演算され、それが0であるか否かに対応して、補間フラグが生成される。
【0030】
【発明の実施の形態】
図1は本発明の復号化装置において用いられるエラーフラグと補間フラグを説明する図である。従来の例では、ECC処理により得られた、エラーデータの補間の必要性を示す補間フラグは、PI2訂正の結果、または、セクタのEDCチェックの結果に対応して、直ちに生成されていた。本実施例では、行方向の第1回目のエラー訂正処理であるPI1訂正の結果に対応して、PI1フラグ(208ビットのエラーフラグ)が生成され、列方向のエラー訂正処理であるPO訂正の結果に対応して、POフラグ(172ビットのエラーフラグ)が生成され、さらに、行方向の第2回目のエラー訂正処理であるPI2訂正の結果に対応して、PI2フラグ(208ビットのエラーフラグ)が生成される。そして、これらのエラーフラグ(PI1フラグ、PI2フラグ、およびPOフラグ)の状態に応じて、ECCブロックのメインデータ(パリティを除く、192×172バイトのデータ)に対応する192×172ビットの補間フラグをさらに生成するようになされている。
【0031】
なお、本発明の復号化装置の主要部分の構成は、図33に示す従来例における場合と同様であるので、その説明は省略する。
【0032】
図2は、本発明の図33の復調回路3(RF処理回路30、EFM+復調回路31)、セクタ検出回路4(SBCD回路34、RAMコントローラ35、RAM37)、およびECC回路5(RAMコントローラ35、ECC制御回路36、RAM37、ECCコア回路38、OCTL回路39)、並びにその周辺の回路の詳細な構成の一例を示す図である。
【0033】
この図において、RF処理回路30は、図33に示すピックアップ2からのRF信号の入力を受け、この信号を2値化した後、EFM+復調回路31に出力する。EFM+復調回路31は、入力された信号に対してEFM+復調を施すと共に、同期パターンの検出を行う。CLV制御回路32は、EFM+復調回路31が出力する同期パターンに基づき、ドライブインタフェース(以下、ドライブIFと略記する)33を制御する。SBCD(サブコード)回路34はEFM+復調回路31の出力からセクタの検出を行う。RAMコントローラ35は、RAM37の読み書きを制御する。
【0034】
なお、RAM37は、図33に示すリングバッファメモリ7(記憶手段、記憶ステップ)とは異なる符号が付してあり、別の構成としているが、これらを同一の構成としてもよい。
【0035】
RAM37は、ECC制御回路36がエラー訂正処理などを実行する際に、データ等を一時的に格納するようになされている。ECCコア回路38(第1のフラグ生成手段、第1のフラグ生成ステップ、第2のフラグ生成手段、第2のフラグ生成ステップ)は、リードソロモン符号(PIとPO)を用いて、後述するECA,ECD,SFLGなどを生成し、ECC制御回路36に出力する。ECC制御回路36は、ECCコア回路38から供給されるECA,ECD,SFLGなどを用いて、実際にエラー訂正を行う。OCTL回路39は、デスクランブル処理、EDCチェック、または、出力データの制御等を行う。また、ホストCPU40は、装置の各部の制御を行うようになされている。
【0036】
次に、図2に示す実施例の動作について説明する。
【0037】
光ディスク1からの再生信号は、RF処理回路30において2値化信号に変換される。そして、2値化された信号から、EFM+復調回路31により同期パターンが検出される。そして、CLV制御回路32において、この同期パターンに基づき、ラフサーボがかけられ、その結果、データ中のシンクコード(Sync Code)(図3におけるSY0乃至SY7)がさらに検出され、ドライブインタフェース33を介して光ディスク1の回転に対して、PLL(Phase Locked Loop)による位相サーボがかけられる。
【0038】
図3に、光ディスク1の物理セクタの構成例を示す。この図に示すように、物理セクタは、横方向に2つのシンクフレーム(Sync frame)、縦方向に13個のシンクフレーム、合計で26個のシンクフレームにより構成されている。各シンクフレームは32チャンネルビット(変調される前のデータビットで表現すると16ビット(=2バイト))のシンクコード(SY0乃至SY7)と、1456チャンネルビット(変調される前のデータビットで表現すると728ビット(=91バイト))のデータ部から構成される。先頭のシンクフレームのデータ部には、ID情報(セクタ番号)とIEC(IDのECC)情報の他、メインデータ(main data)が格納されている。
【0039】
32チャンネルビットのシンクパターンは、データ中には表れないユニークなパターンとして、その下位22ビットが、“0001000000000000010001”のように設定されている。
【0040】
図中左側の各シンクフレームのデータ部には、メインデータが記録され、左側の最後のシンクフレームのデータ部には、PO情報(パリティ)が記録されている。図中右側のシンクフレームには、メインデータとPI情報が記録され、右側のシンクフレームの最後から2番目のシンクフレームには、EDC情報とPI情報(パリティ)が記録され、最後のシンクフレームには、PO情報とPI情報が記録されている。
【0041】
すなわち、本実施例においてもECCブロックは、図37に示すように構成されており、そして、図36に示すように、各セクタにPO情報がインタリーブされている。
【0042】
各セクタのPI情報とPO情報を除くデータの詳細は、図4に示されている。同図に示すように、ID(セクタ番号)(4バイト)、IEC(IDに対するECC(2バイト))、RSV(保留領域)(6バイト)、メインデータおよび、EDC(4バイト)により1セクタのデータが構成されている。なお、メインデータにはスクランブル処理が施されている。
【0043】
そして、このようなデータセクタが16セクタ分集められ、図35に示すように、16バイトのPO符号と10バイトのPI符号とが付加される。さらに、PO符号を含む16行が1データセクタ毎に配置されるようにインターリーブされる。そして、得られたデータは、図37に示すように、シンクコードSYx(x=0,1,2,・・・,7)が付加され、EFM+変調される。これによりECCブロック内の物理セクタは、図3に示すように、13×2シンクフレームにより構成される。1ECCブロックは16セクタにより構成されるので、物理セクタアドレスの下位4ビットは0000乃至1111のいずれかとなる。その結果、ECCブロックの先頭のセクタの物理アドレスは下位4ビットが0000となる。
【0044】
なお、メインデータに対するスクランブル処理は、物理セクタアドレスの下位4ビット乃至7ビットにより指定される値を初期値として生成されたスクランブルデータと、メインデータとの間で排他的論理和を演算することにより実行される。
【0045】
なお、この明細書においては、各種の信号に各種の記号が用いられているので、ここで、それらをまとめて説明する。
【0046】
block−top (Block Top)
SYLK信号がHの状態で、セクタの先頭からHとなる信号である。
C11M (Clock 11.2896 MHz)
システムの動作クロックであり、その周波数は、11.2896MHzである。
DSTB (Data strobe)
ストリームデータSDとしてメインデータが出力されているとき、Hとなるデータストローブ信号である。
ECA (ERR Correction Address)
エラーのある位置(アドレス)を示すエラー訂正アドレス信号である。
ECCK (ECC Clock)
ECCコア回路38の動作クロックである。
ECD (Error Correction Data)
誤ったデータと排他的論理和を演算したとき、正しいデータとなるエラー訂正データである。
ECDE (ECC Code Data End)
入力データの最後を示すコントロール信号である。
ECOD (ECC Code ERR)
エラー訂正不能のとき、Hとなる信号である。
ECOR (ECC Correction)
エラー訂正可能なデータ(ECA,ECD)の出力を示すストローブ信号である。
ECYE (ECC Cycle End)
入力符号データのサイクルの最後を示すコントロール信号である。
EDT (ECC Data)
エラー訂正のためRAM37から読み出され、ECC制御回路36に転送されるデータである。
ESTB (Error Strobe)
エラー訂正結果ERの転送時にHとなるエラー訂正結果ストローブ信号である。
ESTT (ECC Start)
入力データの先頭を示すコントロール信号である。
EFM+W Frame (EFM+Write Frame Counter)
RAM37へ書き込むメインフレームを表す信号である。
HDEN (Header Data Enable)
セクタヘッダデータのストローブ信号である。
main−FMSY (main Frame Sync)
各PI行のメインシンク(先頭のシンク)でHとなる信号である。
MWEN (Memory Write Enable)
EFM+復調データのRAM37への書き込みイネーブル信号である。
MWRQ (EFM Write Request)
EFM+復調データのRAM37への書き込みリクエスト信号である。
OUTF (Output Flag)
補間フラグ(出力フラグ)である。
OSTT (ECC Output Start)
所定の符号系列におけるESTTから477(ECCK)後に遅延して出力される信号である。
RDT (Read Data)
RAM37のリードデータバス上のデータである。
SALK (Sector Address Lock)
セクタアドレス(ID)が正常に検出されていることを表す信号である。
SAUL (Sector Address Unlock)
SALK信号の逆極性の信号である。
SCSY (Sector Sync)
SY0のFrameでHとなる、セクタの先頭を判別するための信号である。SD (Stream Data)
ストリームデータ(デコード出力データ)である。
SDCK (Stream Data Clock)
ストリームデータのクロックである。
SFLG (Sector Flag)
PI1訂正のECC訂正不能フラグである。
SINF (Sector Infomation)
セクタの先頭でHとなるセクタ情報ストローブ信号である。
SUB (SUB Data)
SBCD回路34に対して転送するIDとIECを含むデータである。
SYLK (Sync Lock)
シンクコードが連続して3回検出されたとき、Hとなる信号である。
SYUL (Sync Unlock)
SYLK信号の逆極性の信号である。
WDT (Write Data)
RAM37のライトデータバス上のデータである。
XHWE (Sector Header Write Enable)
SBCD回路34からRAM37へ書き込むセクタ情報の出力イネーブル信号である。
【0047】
EFM+復調回路31(図2参照)により復調処理が施されたデータは、RAMコントローラ35の制御の下、図5に示すように、RAM37に格納される。この図5は、1ECCブロックについて示している。RAM37に格納されているデータを読み出す場合、RAMコントローラ35は、図5に示す行および列の値を指定することにより、所望のデータを取得することができる。すなわち、図5において、第M行目の第Nバイト目にあるデータxは、2値(M,N)を指定することによりRAM37から読み出すことができる。
【0048】
後述するセクタ情報SIは、バイト単位で各PI行に対応して、最上行から16個のPI行に対応して記憶される。PI1フラグとPI2フラグは、208行の各PI行に対応するように記憶される。また、POフラグは、上から順番に、172PI行に対応するように記憶される。
【0049】
また、208ビット×172ビットの補間フラグは、バイト単位でまとめられ、26バイト×22バイト(実質的には21.5バイト)の補間フラグが、ECCブロックのバイト単位のメインデータと異なる領域に記憶される。すなわち、1バイトのメインデータに対して、1ビットの補間フラグが対応するのであるが、これらは、独立に(9ビットのデータとしてまとめられることなく)記憶される。
【0050】
このようにすることで、補間フラグを記憶するのに必要以上に大きな容量のメモリが必要になることを防止している。
【0051】
光ディスク1に記録されているデータのセクタの先頭が、SBCD回路34において、シンクコードの種類と連続性に基づき認識されると、EFM+復調回路31により復調されたデータは、先頭データから順にRAM37に格納される。図6は、このとき関係する回路の主要部分の信号のタイミングを示している。
【0052】
すなわち、EFM+復調回路31は、図7に示すように、シンクのロック状態を検出している。最初にステップS1において、図3に示すシンクコード(SY0乃至SY7)を各シンクフレームにおいて検出することができたか否かを判定する。シンクコードを検出することができた場合においては、ステップS2に進み、変数SClockを1だけインクリメントするとともに、変数SCunlockを0にセットする。この変数SClockは、シンクコードが連続して検出されたときの回数を表し、変数SCunlockは、シンクが連続して検出されなかったときの回数を表す。
【0053】
次に、ステップS3において、変数SClockが3に等しいか否かを判定する。すなわち、シンクが連続して3回検出されたか否かを判定する。変数SClockが3より小さい場合においては、ステップS1に戻り、それ以降の処理を繰り返し実行する。ステップS3において、変数SClockが3に等しいと判定された場合、ロック状態になったものとして、ステップS4において、SYLK信号をHに設定する。そして、ステップS5において、さらに連続して3回シンクが検出されたか否かを判定するために、変数SClockを2に設定し、ステップS1に戻り、それ以降の処理を繰り返し実行する。
【0054】
これに対して、ステップS1において、シンクコードが検出されなかったと判定された場合、ステップS6に進み、変数SCunlockを1だけインクリメントするとともに、変数SClockを0に設定する。ステップS7においては、変数SCunlockが3に等しいか否かを判定する。すなわち、シンクコードが3回連続して検出されなかったか否かを判定する。連続して検出されなかった回数が2以下である場合には、ステップS1に戻り、それ以降の処理を繰り返し実行する。連続して3回シンクが検出されなかった場合においては、ステップS8に進み、SYLK信号をLに設定する。そして、ステップS9に進み、変数SCunlockを2に設定して、次のシンクコードの発生タイミングにおいても、シンクコードが検出されなかったとき、SYLK信号をLに設定したままとすることができるように、変数SCunlockを2に設定し、ステップS1に戻る。
【0055】
以上のようにして、EFM+復調回路31は、シンクコードを検出し、ロック状態になっているか否かを常に監視している。
【0056】
なお、上記実施例においては、検出回数をそれぞれ3回としたが、基準となる連続検出回数NLOCKと、不連続の検出回数NUNLOCKは、それぞれ任意の値とすることが可能である。
【0057】
EFM+復調回路31は、上述したようにして、SYLK信号がHになったとき、すなわち、ロック状態になったとき、図8のフローチャートに示す処理を実行する。すなわち、ステップS21において、各セクタの先頭に配置されているシンクコードSY0が検出されたか否かを判定する。シンクコードSY0が検出された場合においては、ステップS22に進み、セクタの先頭であることを表すSCSY信号を所定時間Hに設定する。次にステップS23に進み、SYLK信号がLに変化したか否かを判定し、Lでなければ(Hのままであれば)ステップS21に戻り、同様の処理を繰り返し実行する。ステップS21において、シンクコードSY0が検出されていないと判定された場合においては、ステップS22の処理はスキップされる。
【0058】
以上のようにして、EFM+復調回路31は、各セクタの先頭において、図6(a)に示すSCSY信号を発生する。
【0059】
さらに、EFM+復調回路31は、SYLK信号がHになったとき、図9のフローチャートに示す処理を実行する。最初に、ステップS31において、メインフレーム(以下、図3の横方向の2個のシンクフレームを、まとめて1個のメインフレームと称する)のシンクコード(以下、図3のシンクコードのうち、左側に示すシンクコードをメインフレームシンクと称する)を検出したか否かを判定する。メインフレームシンクを検出した場合においては、ステップS32に進み、EFM+復調回路31は図6(b)に示すmain−FMSY信号を発生する。ステップS31において、メインフレームシンクが検出されていないと判定された場合においては、ステップS32の処理はスキップされる。
【0060】
次にステップS33に進み、SYLK信号がLに変化したか否かが判定され、変化していない場合(Hのままである場合)、ステップS31に戻り、それ以降の処理を繰り返し実行する。SYLK信号がLに変化した場合においては、main−FMSY信号の生成処理は中止される。
【0061】
このようにして、EFM+復調回路31は、メインフレームシンクの周期(図3における水平方向の2つのシンクフレームの周期)毎に、main−FMSY信号を発生する。
【0062】
RAMコントローラ35は、EFM+復調回路31よりSCSY信号が入力されたとき、図6(d)に示すように、MWEN信号をHに設定し、RAM37に対する、いま検出されているセクタのデータの書き込み処理を開始させる。すなわち、このときRAMコントローラ35は、図6(e)に示すように、内蔵するEFM+W Frameカウンタ(図示せず)で図3に示すメインフレームをカウントする。このカウント値は、図3に示すメインフレームの上から順番の番号を表すことになる。
【0063】
また、RAMコントローラ35は、図6(f)に示すように、内蔵するPI1Frameカウンタ(図示せず)により、RAM37に伝送するメインフレームの番号を管理する。
【0064】
すなわち、図3に示す最初のメインフレーム(番号0のメインフレーム(図3における最上行のメインフレーム))のデータがRAM37に書き込まれたとき、ECC制御回路36は、RAMコントローラ35の制御の下に、そのメインフレームのデータの供給を受ける。そして、このデータを、ECCコア回路38に転送し、誤り訂正処理を実行させる。すなわち、PI1処理を実行させる。PI1訂正後のデータは、再びRAM37に書き戻される。
【0065】
RAMコントローラ35は、このPI1訂正の実行の後、RAM37に記憶されている番号0のメインフレームのデータの中から、IDとIECデータ(SUB)を読み出し、図6(c)の番号0で示すSUB信号のタイミングにおいて、この番号0のメインフレームのIDとIECデータをデータバスを介してSBCD回路34に転送させる。図3に示すように、IDとIECデータは、各セクタの先頭にのみ配置されているため、この転送処理は、番号0のメインフレームにおいてのみ実行される。SBCD回路34においては、このようにして、物理セクタのアドレス(ID)が検出される。
【0066】
そして、検出された物理セクタのアドレスの下位4ビットにより、ECCブロックの先頭セクタが検出される。
【0067】
図10は、以上のIDの転送に続いてblock−topを検出する場合のタイミング図を示しており、また、図11はblock−top検出以降の処理を示しており、これらの図の動作については後述する。
【0068】
図12は、上述したIDの転送のより詳細なタイミングを示すタイミング図である。同図(a)に示すように、RAMコントローラ35は、SBCD回路34に対して、RAM37からIDとIECデータが読み出されるタイミングを表すHDEN信号を出力する。このとき、RAM37から、SBCD回路34に対して、第7ビットから第0ビットまでの合計8ビットのリードデータRDT(図12(C))として、IDデータ(4バイト)とIECデータ(2バイト)が、11.2896MHzの周波数のクロックC11M(図12(f))に同期して転送される。このIDデータとIECデータは、PI1訂正の結果、訂正不能の状態(この場合、SFLG信号はHとなる)にはなっていないことが、ECCコア回路38からECC制御回路36に供給されているSFLG信号(=1)により表されている。SBCD回路34は、ID(セクタアドレス)の供給を受けると、そのID(セクタ)に対応するセクタ情報SIを、ホストCPU40からの指令(補間フラグの生成モード、スタートセクタ、エンドセクタなどの指令)に対応して生成する。例えば、ホストCPU40から出力が指定されたIDのセクタには、セクタ情報のビット5に1を設定し、ビット4に0を設定する。
【0069】
図13は、セクタ情報(SI)の構成を示している。同図に示すように、セクタ情報の各ビットは、以下に示す情報を有している。
【0070】
ビット7:補間フラグ(OUTF)生成モードの設定(1:補間フラグ生成モード)
ビット6:ECCブロックの先頭セクタ(物理セクタアドレスの下位4ビットが0である場合に1とされる)(1:先頭セクタ)
ビット5:スタートセクタ(物理セクタアドレスがホストCPU40で指定されたスタートセクタアドレスと一致した場合は1とされる)(1:スタートセクタ)
ビット4:エンドセクタ(物理セクタアドレスがホストCPU40で指定されたエンドセクタアドレスと一致した場合に1とされる)(1:エンドセクタ)
ビット3:デスクランブル初期化アドレスのビット3(物理セクタアドレスの第7ビット)
ビット2:デスクランブル初期化アドレスのビット2(物理セクタアドレスの第6ビット)
ビット1:デスクランブル初期化アドレスのビット1(物理セクタアドレスの第5ビット)
ビット0:デスクランブル初期化アドレスのビット0(物理セクタアドレスの第4ビット)
【0071】
この4バイトのIDと2バイトのIECを用いて、図14乃至図16を参照して後述するようにチェック処理が行われた後、図12(d)に示すXHWE信号が、ECC制御回路36でLにされる。このとき、SBCD回路34からRAM37に、8ビットのライトデータWDTとしてセクタ情報SIが転送され、書き込まれる。16セクタ分のセクタ情報は、図5に示すように、上方の16個のPI行に対応するように格納される。従って、所定のPI行の行数を指定することにより、対応するセクタ情報を得ることができる。
【0072】
次に、図14乃至図16のフローチャートを参照して、SBCD回路34におけるIDとIECのチェック処理について説明する。
【0073】
SBCD回路34は、図14のフローチャートに示す処理により、IECが正常である(IDにエラーがない)セクタがN個(この実施例の場合、3個)以上連続しているか否かを判定する。
【0074】
このため、最初のステップS41において、いま、取り込んだIECが正常であるか否かを判定する。IECが正常である場合においては、ステップS42に進み、正常であるIECのセクタの数を表す変数SAlockを1だけインクリメントする。そして、正常でないIECを有する(IDにエラーがある)セクタの連続回数を表す変数SAunlockを0に設定する。
【0075】
次に、ステップS43に進み、変数SAlockが3に等しいか否かを判定する。ステップS42でインクリメントした変数SAlockが3に等しくないと判定された場合、ステップS41に戻り、それ以降の処理を繰り返し実行する。ステップS43において、変数SAlockが3に等しいと判定された場合、すなわち、正常なIECを有するセクタが3回連続して再生されたとき、ステップS44に進み、フラグIECOKをHに設定する。ステップS45においては、さらに次のIECが連続して正常である回数を検出するために、変数SAlockを2に設定し、ステップS41に戻り、それ以降の処理を繰り返し実行する。
【0076】
ステップS41において、IECが正常でないと判定された場合、ステップS46に進み、変数SAunlockを1だけインクリメントするとともに、変数SAlockを0に設定する。そして、ステップS47において、変数SAunlockが3に等しいか否かを判定し、等しくない場合においては、ステップS41に戻り、それ以降の処理を繰り返し実行する。
【0077】
ステップS47において、変数SAunlockが3に等しいと判定された場合、すなわち、IECが正常でないセクタが3回連続して検出されたとき、ステップS48に進み、フラグIECOKをLに設定する。次に、ステップS49において、次のIECが正常でない場合に、その連続の回数が3回であることを連続して検出することができるようにするために、変数SAunlockを2に設定し、ステップS41に戻り、それ以降の処理を繰り返し実行する。
【0078】
以上のようにして、SBCD回路34は、IECが連続して3回以上正常である場合においては、フラグIECOKをHに設定し、3回以上連続して正常でない場合においては、フラグIECOKをLに設定する。
【0079】
SBCD回路34は、さらに図15に示す処理により、ID(アドレス)の連続性を判定する。すなわち、1つのECCブロック内の各セクタのIDは、順次1ずつインクリメントするように規定されている。そこで、この連続性を次のようにして判定する。
【0080】
最初に、ステップS61において、ID(セクタアドレス)が検出されたか否かを判定する。IDが検出された場合、ステップS62に進み、そのIDを次のIDと比較することができるように記憶する。そして、ステップS63においては、今回検出したIDが、前回検出し、ステップS62において記憶したIDより1だけ大きいか否かを判定する。今回のIDが前回のIDより1だけ大きい場合には、ステップS64に進み、正しいIDが連続して検出されたことを示す変数Nを1だけインクリメントする。また、IDが検出されなかったり、連続していない回数を表す変数NNSを0に設定する。
【0081】
そして、ステップS65において、変数Nが3と等しいか否かを判定し、等しくなければ(3回連続して1ずつインクリメントしたIDが検出されていなければ)、ステップS61に戻り、それ以降の処理を繰り返し実行する。変数Nが3に等しいと判定された場合、ステップS66に進み、IDが連続して正しい状態であることを表すフラグASをHに設定する。そして、ステップS67において、次のIDを検出したとき、再び連続して3回正しいIDが検出されたことを検出することができるように、変数Nを2に設定し、ステップS61に戻り、それ以降の処理を繰り返し実行する。
【0082】
ステップS61において、IDが検出されなかったり、ステップS63において、今回検出したIDが前回検出したIDより1だけ大きい値になっていないと判定された場合(不連続であると判定された場合)、ステップS68に進み、フラグSALKがHであるか否かを判定する。このフラグSALKは、図16を参照して後述するが、IECが3回以上連続して正常であり、かつ、IDが3回以上連続性が保持されているとき、Hに設定されている。
【0083】
ステップS68において、フラグSALKがHに設定されていると判定された場合、ステップS69に進み、IDを補間する処理を実行する。すなわち、いま、IDが検出されなかったか、あるいは、IDが連続していなかった場合であるので、前回のIDに1を加算したIDを生成し、これを検出されたIDに代えて使用するようにする。フラグSALKがLに設定されている場合においては、このような補間処理は行われず、ステップS69の処理はスキップされる。
【0084】
次に、ステップS70において、変数NNSを1だけインクリメントするとともに、変数Nを0に設定する。そして、ステップS71において、変数NNSが3と等しいか否かが判定され、等しくないと判定された場合においては、ステップS61に戻り、それ以降の処理を繰り返し実行する。これに対して、NNSが3に等しいと判定された場合、ステップS72に進み、フラグASをLに設定する。そして、ステップS73において、次のIDが検出されなかった場合、連続して3回検出されなかったことを続けて検出することができるようにするために、変数NNSを2に設定し、ステップS61に戻り、それ以降の処理を繰り返し実行する。
【0085】
以上のようにして、SBCD回路34は、IDの連続性が確保されているとき、フラグASをHに設定し、確保されていないとき、Lに設定する。
【0086】
SBCD回路34は、以上のようにして生成した2つのフラグIECOKとASを用いて、フラグSALKを生成する。
【0087】
すなわち、図16のステップS81においては、フラグIECOKがHであるか否かが判定され、Hであると判定された場合、ステップS82に進み、フラグASがHであるか否かが判定される。ステップS82において、フラグASがHであると判定された場合、ステップS83に進み、フラグSALKをHに設定する。
【0088】
これに対して、ステップS81において、フラグIECOKがLであると判定された場合、あるいは、ステップS82において、フラグASがLであると判定された場合、ステップS84に進み、フラグSALKをLに設定する。
【0089】
以上のようにして、SBCD回路34においては、IECが3回以上連続して正常であり、かつ、IDが連続して3回以上1ずつインクリメントしている場合には、フラグSALKがHに設定され、IECが連続して3回以上正常でなかったり、あるいはIDが連続して3回以上不連続である場合には、フラグSALKがLに設定される。
【0090】
ホストCPU40は、SALKの状態と共に、先に述べたIDデータを参照して、レーザビームが現在照射されている位置(光ディスク1上のアクセス位置)を検出する。
【0091】
なお、PI1訂正の結果を図14のSAlockまたはSAunlockの条件に加えることも可能である。さらに、SAlockまたはSAunlockの回数は、前述のように3回と設定されているが、ホストCPU40により異なる値に設定することも可能である。
【0092】
SALKの状態が、SALK=Lの状態(このとき、SAUL=Hとなる)で、SYLK=L(このときSYUL=Hとなる)となると、RAM37に対するEFM+復調回路31からのEFM+復調データの書き込みとECCの制御が、いずれもリセットされる。その後、unlock状態が解除され(SAUL=Lとされ)、SYLK=Hとなると、RAM37に対してEFM+復調データの書き込みが再開される。
【0093】
なお、unlockは、ホストCPU40により強制的に実行することも可能である。例えば、トラック間のジャンプ実行後にホストCPU40によりunlock状態にすることで、ECC制御をリセットすることもできる。
【0094】
また、unlock状態の解除は、ホストCPU40により実行するか、ホストCPU40の介入なしに自動的に実行するかの何れかを選択することができる。
【0095】
SYLKがHの状態(ロック状態)であり、さらに、セクタ情報のビット6が1の状態(セクタの先頭)である場合、SBCD回路34はSYLK=Lとなるまで(ロックがはずれるまで)、図10に示すように、block−topをHの状態とする。block−top=Lである場合は、SCSYとmain−FMSYが共にHの状態の場合(セクタの先頭)になったとき、EFM+W frameの値は、12の次には0に設定される。すなわち、この場合、EFM+W
frameの値は各メインフレーム毎に、0乃至12の値を繰り返す。
【0096】
これに対して、block−top=Hであれば、図11に示すように、EFM+W Frameの値は、その値が13以上となった場合でも引き続きインクリメントされる。その結果、図5に示すように各ECCブロックの各メインフレームのデータがRAM37の異なるアドレスに順次格納されることになる。
【0097】
以下同様にして、EFM+復調データのRAM37への書き込みが行われると共に、PI1訂正が実行される。そして、1ECCブロックのデータ(208行のデータ)に対するPI1訂正が終了すると、次に、PO列方向のECC処理(PO訂正)が実行される。
【0098】
なお、PO列方向にデータを読み出す場合は、PO行のインターリーブ(図36)を解除する必要がある。従って、例えば、図5に示す第Nバイト目の列を読み出す場合、先ず、インターリーブされたPO行をスキップしながら、図の上から下方向に第Nバイト目の列のデータを読み出した後、再度、同じ第Nバイト目の列のPO行の符号だけを読み出し、ECCコア回路38に供給する。
【0099】
そして、ECCコア回路38が、PO訂正を終了すると(図5の右端のPI列(10列)を除く172列全ての処理が終了すると)、次に、PI2訂正を実行する。なお、PI行方向のECC処理を2回実行するのは、エラーの訂正能力を向上させるためである。
【0100】
また、PO訂正では、PI1訂正の結果に基づいて生成されたエラーフラグ(PI1フラグ)に応じてイレージャ訂正が実行される。さらに、PI2訂正においても、PO訂正の結果に応じて生成されたエラーフラグ(POフラグ)を利用してイレージャ訂正が実行される。このようなイレージャ訂正を行うのは、前述の場合と同様に、エラーの訂正能力を向上させるためである。
【0101】
PI2訂正の処理が終了したPI系列のデータは、RAM37からOCTL回路39に転送され、メインデータに対するデスクランブル処理が、図13に示したセクタ情報のビット3乃至ビット0を用いて、各セクタ単位で実行される。また、このとき、OCTL回路39でEDCに関する演算も行われる。そして、その演算結果や、メインデータに付加されているエラーフラグの有無により、対象となるセクタにエラーが存在するか否かが判定される。ホストCPU40は、その判定結果に基づいて、光ディスク1から再度データを読み出すか否かを判定する。その結果、光ディスク1から再度データを読み出すと判定した場合は、光ディスク1に対するアクセスが再度実行される。また、データの読み出しを再度行わないと判定した場合は、エラーを含むセクタのデータが多重化データ分離回路8に出力される。
【0102】
ECCコア回路38は、汎用のリードソロモン符号エラー訂正用LSIにより構成され、符号長、パリティ数、および訂正モード(通常訂正のみ、または、通常訂正およびイレージャ訂正の2つのモード)などをプログラムすることが可能とされている。また、ECCコア回路38は、多符号連続符号化されたデータ(符号長が異なる複数の符号系列)もリアルタイムでデコードすることが可能である。なお、リードソロモン符号エラー訂正用LSIとしては、例えば、SONY(商標)のCXD307−111Gがあり、このLSIを使用して形成されたASIC(Application Specialized Integrated Circuit)をECCコアと呼ぶ。なお、図2に示すECCコア回路38には、このECCコアが使用されている。
【0103】
次に、エラー訂正動作について説明する。
【0104】
図17は、エラー訂正動作の実行時における信号のタイミングを示している。この図において、ESTT(図17(a))は、符号(PI行またはPO行)の先頭を示すコントロール信号であり、また、ECDE(図17(b))は、符号(PI行またはPO行)の最後を示すコントロール信号である。ECYE(図17(c))は、符号(PI行またはPO行)サイクルの最後を示すコントロール信号である。これらはいずれも、RAMコントローラ35からECC制御回路36を介してECCコア回路38に供給される。ECCコア回路38は、RAM37から供給されるデータを、これらのコントロール信号から識別する。
【0105】
同図に示すように、PI符号は、ESTTからECDEまでの間に、182個のECCKで転送される。PO符号も、ESTTからECDEまでの間に、208個のECCKで転送される。
【0106】
なお、PI行の符号とPO列の符号の符号長が異なる場合、符号サイクル長をPI行の符号またはPO列の符号のうち、符号長の長い方(この実施例の場合、PO列の符号の208)に合わせることにより、訂正すべきデータ(EDT)およびイレージャ訂正のためのエラーフラグ(PI1フラグ、PI2フラグ、POフラグ)を、図17に示すように、いずれの符号系列であったとしても、同様のタイミングで入力することができる。また、符号長およびパリティ数等のパラメータとしては任意の値を設定可能である。すなわち、設定を変更する際は、ESTT=Hとなるタイミングで、ECCコア回路38に新たな設定データを供給すると、ECCコア回路38は供給されたデータに基づき、内部設定を自動的に変更する。
【0107】
データの訂正結果は、次式で示されるように、477ECCKのサイクルで出力される。
Figure 0003562544
【0108】
ここで、NCYCはPI行の符号またはPO列の符号のうちで長い方の符号長を示し、また、PCYCは長い方のパリティ数を示している。図17に示すように、OSTT(図17(d))は、ESTT(図17(a))のタイミングから、データ出力サイクルの時間だけ遅延して(訂正結果出力のタイミングで)ECCコア回路38からECC制御回路36に出力されるものであり、この実施例では、OSTTはESTTに対して477ECCKだけ遅延されている。
【0109】
エラー検出処理が実行され、検出されたエラーが訂正可能であれば、ECCコア回路38はECC制御回路36に対して、OSTT(図18(e))=HのタイミングでO.CODEERR(図18(g))=Lを出力し、その後、ECOR(図18(f))=Hの位置に、エラーパターンを表す8ビットのデータ(誤ったデータと排他的論理和をとったとき正しいデータが得られるデータ)ECD[7:0](図18(h))と、エラーポジション(エラーのある位置(アドレス)を示す8ビットのデータ)ECA[7:0](図18(i))が出力される。
【0110】
なお、イレージャ訂正モードにおいては、エラーフラグEFLG(図18(c))を入力したポジションに対応するデータのエラーポジションECA[7:0]データは必ず出力されるが、その位置のデータが正しい場合には、エラーパターンはEDC[7:0]=00(H)となる。
【0111】
また、エラー訂正が不可能な場合には、そのタイミングチャートは図示していないが、OSTT(図18(e))がHの状態になると同時に、O.CODEERR(図18(g))=Hとなり、その後、ECOR(図18(f))はHの状態にはならない。また、ECOD(図18(g))の出力は、OSTT(図18(e))が再度Hの状態になるまでラッチされ、ECOR(図18(f))、ECD[7:0](図18(h))およびECA[7:0](図18(i))は、OSTT(図18(e))が次にHの状態になるまで出力され続ける。
【0112】
図19は、ECC処理実行時における制御のタイミング図を示している。ここで、図19(b)に示す、PI1−R、PO−R、または、PI2−Rは、それぞれ、PI1、PO、またはPI2の各系列の、エラーが訂正されるデータEDT[7:0]とEFLG(図18(c))がRAM37からECC制御回路36を介してECCコア回路38に転送されるタイミングを示している。
【0113】
図19(a)に示すように、EFM+復調回路31からRAM37に対して1PI行のデータEFM+W(182バイトのデータ)を書き込むために、MWRQ信号が182回供給され、これによりRAM37に1PI行分のEFM+復調データが書き込まれる。そして、この1PI行分のデータの書き込みが行われる間に、既にRAM37に書き込みが完了しているECCブロックのデータが読み出され、ECC制御回路36を介してECCコア回路38に転送される。すなわち、1PI行分のデータをRAM37にゆっくり書き込む間に、既に書き込みが完了している他のPI行またはPO列のデータの読み出しが、3回迅速に行われる。さらに、セクタの先頭のPI行のデータを転送する場合においては、サブコードデータ(IDとIEC)の読み出しも行われる。これらの書き込みと読み出しは、一方が行われているとき、他方は中止されている。
【0114】
例えば、ECCブロックのPI1訂正を行う場合においては、1PI行分のデータの書き込みが行われる期間に、1PI行分のデータの読み出しが行われる。すなわち、RAM37から1PI行分のデータが読み出され、ECC制御回路36を介してECCコア回路38に転送される。なお、図19(b)においては、このPI1訂正のための読み出しデータPI1−Rの読み出しに、208個のECCKを用いるようにしているが、このECCKの数は、最長のデータ長であるPO列の長さに合わせてあるためであり、PI行のデータを転送する場合には、実質的には、このうちの182個のECCKのみが実際のデータ転送に利用され、残りのECCKは、データ転送には実際には用いられない。
【0115】
PI1−Rの転送が完了しない状態では、PO系列のデータPO−RまたはPI2系列の読み出しデータPI2−Rを転送することはできない。そこで、この場合においては、次の2×208ECCKのタイミングにおいては、特にデータは転送されない。そして、その次にサブコードデータ(SUB)が存在する場合においては、これが転送される。
【0116】
次の182MWRQの区間においては、PI1−Rのみが転送される。以下、同様にして、合計208PI行分のデータ転送が完了した後、次の182MWRQの期間においては、最初にPI1−Rが転送され、次にPO−Rが2回転送される(2列分のPOデータが転送される)。ただし、このタイミングにおける(PO−Rと同じ182MWRQの期間で転送される)PI1−Rは、次のECCブロックのPI行のデータとなる。
【0117】
このような動作が各182MWRQの期間において行われ、合計172列のPOデータが転送されたとき、次に、PI2系列のデータPI2−Rが転送される。このデータPI2−Rは、図19(b)に示すデータPO−Rの転送タイミングと同一のタイミングで転送される。このタイミングにおけるデータPI1−Rは、次のECCブロックのデータのものとなる。
【0118】
なお、ECCK(図18(a))は、データ転送期間においてのみ、RAMコントローラ35からECCコア回路38に出力される。また、上述したように、転送したデータの訂正結果は、その入力から、477クロック(ECCK)後に出力されることになる。従って、ある系列のデータにエラーが含まれているか否かの判定の結果(図19(c))は、その系列から2つ後の系列のデータが転送される際に出力されることになる(図19(b))。この出力は、後述するERR FIFO回路36b(図20)に格納される。
【0119】
以上のようにして、RAM37からECC制御回路36にエラー訂正すべきデータが入力されると、ECC制御回路36は、その例えば1PI行分のデータのPI1訂正を行い、477ECCK後に訂正結果を出力する(図19(c))。この訂正結果は、後述するECC制御回路36のバッファとしてのERR FIFO36bに転送され、一時的に格納される。そして、このデータは、さらにERR FIFO36bから読み出され、エラー訂正が完了したデータとして、再びRAM37に転送され、図19(d)に示すように、データPI1−Wとして書き込まれる。同様に、PO訂正あるいはPI2訂正が完了したデータは、それぞれデータPO−WまたはPI2−Wとして、RAM37に書き込まれる。
【0120】
このように、RAM37に書き込まれたエラー訂正の完了したデータは、さらに図19(e)に示すように、182SDCKの周期で各PI行毎に読み出され、OCTL回路39から出力される。
【0121】
図20は、エラー訂正処理が実行される際の信号の流れを示すブロック図である。なお、この図において、図2に対応する部分には、同一の符号が付してあるで、その説明は適宜省略する。
【0122】
この図に示すように、ECC制御回路36は、ERR COUNT36a、ERR FIFO36b、FLAG RAM36c、およびEX−OR(排他的論理和)回路36dにより構成されている。
【0123】
EFM+復調回路31から出力された復調データは、RAMコントローラ35の制御の下、RAM37に書き込まれる。各セクタの先頭に記憶されているSUBデータ(IDとIEC)は、RAM37から読み出され、SBCD回路34に転送される。SBCD回路34は、図13に示すようなセクタ情報SIを生成する。このセクタ情報SIは、SBCD回路34から転送され、RAM37に書き込まれる。
【0124】
RAMコントローラ35は、RAM37(記憶手段)に書き込まれている1PI行分のデータを8ビット毎のエラー訂正データEDTとして、ECC制御回路36(エラー訂正手段)を介してECCコア回路38に供給する(図20においては、便宜上、EDTデータがECCコア回路38に直接供給されるように示されている)。ECCコア回路38は、1PI行分のデータが供給されたとき、PI符号を用いて、8ビットのエラー訂正データECD(図18(h))と、8ビットのエラー訂正アドレスECA(図18(i))を生成する。このエラー訂正データECDとエラー訂正アドレスECAは、ECCコア回路38からECC制御回路36のERR FIFO(First In First Out)36bに転送され書き込まれる。
【0125】
次に、実際にエラー訂正を行うためにRAMコントローラ35は、RAM37から、そのPI行のデータEDTを読み出し、EX−OR回路36dに供給する。このEX−OR回路36dには、ERR FIFO36bからエラー訂正データECDとエラー訂正アドレスECAが供給される。EX−OR回路36dは、エラー訂正アドレスECAで指定されるビットにおいて、エラー訂正データECDとRAMコントローラ35より読み出されたデータEDTとの排他的論理和を演算することによりエラー訂正を行う。このエラー訂正の行われたデータは、EX−OR回路36dから、RAMコントローラ35を介してRAM37に、再び書き戻される。
【0126】
また、ECCコア回路38は、ECDとECAから、図21に示すような8ビットデータにより構成されるエラー訂正結果ERを生成し、ECC制御回路36のERR COUNT36aに供給し記憶させる。そして、この1バイトのエラー訂正結果ERは、RAMコントローラ35を介して、RAM37に、そのPI行に対応して図5に示すように書き込まれる。
【0127】
なお、図21に示すエラー訂正結果ERの8ビットデータの各ビットには、以下のような情報が格納されている。
ビット7:訂正不能(0:訂正可能 / 1:訂正不能)(その系列のエラー訂正が不可能である場合に1とされる)
ビット6:PO(0:PI / 1:PO)(その系列がPIまたはPOのいずれであるかを判別するための情報ビット)
ビット5:PI2(0:PI1 / 1:PI2)(その系列がPI1、またはPI2のいずれであるかを判別するための情報ビット)
ビット4:訂正数 (エラー訂正数の第5ビット(MSB)の値)
ビット3:訂正数 (4ビットのエラー訂正数の第4ビットの値)
ビット2:訂正数 (4ビットのエラー訂正数の第3ビットの値)
ビット1:訂正数 (4ビットのエラー訂正数の第2ビットの値)
ビット0:訂正数 (4ビットのエラー訂正数の第1ビット(LSB)の値)
【0128】
データがPI1訂正により訂正不能であったか否かの判定結果を示すエラーフラグ(PI1フラグ)(エラー訂正結果ERのビット7)は、エラー訂正結果ERの一部としてERR COUNT36aに格納される他、FLAG RAM36c(フラグ記憶手段)にも格納される。
【0129】
以上のようなPI1訂正が、図5に示す208個のPI行について行われる。
【0130】
次に、RAMコントローラ35は、RAM37から最初のPO列の208バイトのデータを読み出し、ECC制御回路36を介して、EDTとして、ECCコア回路38に供給する。このECCコア回路38にはまた、FLAG RAM36cに書き込まれているPI1フラグが読み出され、供給される。ECCコア回路38は、パリティPOとPI1フラグを利用して、通常の訂正またはイレージャ訂正のためのECDとECAを生成する。このECDとECAは、ECCコア回路38からECC制御回路36のERR FIFO36bに供給され、記憶される。また、ECCコア回路38が、ECDとECAに基づき生成した、そのPO列のエラー訂正結果ERが、ERR COUNT36aに転送され、記憶される。そして、そのうちのエラー訂正結果ERのビット7に対応するPOフラグは、FLAG RAM36cにも書き込まれる。
【0131】
RAM37から読み出された、そのPO列のデータEDTは、EX−OR回路36dに供給される。EX−OR回路36dにはまた、ERR FIFO36bからECDとECAが供給される。EX−OR回路36dは、ECAにより指定されるアドレスのビットに対応して、ECDとEDTとの排他的論理和を演算し、エラー訂正を行う。エラー訂正されたデータは、RAM37に書き戻される。
【0132】
また、そのPO列のエラー訂正結果ERは、ERR COUNT36aから読み出され、RAM37に書き込まれる。PO列のエラー訂正結果ERは、図5に示すように、上から順番に、172行のPI行に対応する位置に順番に書き込まれる。
【0133】
以上のPO訂正が、172列のPO列について行われる。
【0134】
次に、PI2訂正を行う場合においては、PI1訂正とPO訂正が行われた後、最初の1PI行分のデータが、RAM37からEDTとして読み出され、ECCコア回路38に供給される。ECCコア回路38にはまた、FLAG RAM36cに書き込まれたPOフラグが読み出され供給される。ECCコア回路38は、このPOフラグとパリティPIを用いて、ECDとECAと生成し、これをECC制御回路36のERR FIFO36bに供給する。
【0135】
このERR FIFO36bに書き込まれたECDとECAは、EX−OR回路36dに供給され、RAM37から読み出されたPI行のデータと排他的論理和演算が行われ、エラー訂正が実行される。エラー訂正が完了したデータは、EX−OR回路36dから、RAMコントローラ35を介してRAM37に書き戻される。
【0136】
ECCコア回路38はまた、ECDとECAから、エラー訂正結果ERを生成し、ECC制御回路36のERR COUNT36aに供給し記憶させる。このうちのビット7に対応するPI2フラグは、FLAG RAM36cにも書き込まれる。
【0137】
ERR COUNT36aに書き込まれたPI2行のエラー訂正結果ERは、ERR COUNT36aから読み出され、RAM37に書き込まれる。このPI2行のエラー訂正結果ERは、図5に示すように、ECCブロックの208行の各PI行に対応する位置に書き込まれる。
【0138】
以上のようなPI2訂正が、208行のPI行すべてについて行われる。
【0139】
図22は、RAM37にアクセスする際のバスアービトレーション(調停)の様子を示すタイミング図である。この図において、EFMREQ(図22(a))は、EFM+復調回路31がEFM+復調データのRAM37への書き込みを要求する際に、RAMコントローラ35に対して出力する信号である。OUTREQ(図22(b))は、OCTL回路39が、ECC処理が施されたデータのRAM37からの読み出しを要求する際に、RAMコントローラ35に出力する信号である。また、ECCREQ(図22(c))は、ECC制御回路36がECCコア回路38に対してデータを転送し、エラー訂正をさせるためにRAM37にアクセスしたり、エラー訂正が施されたデータを得るためにRAM37にアクセスしたり、または、SBCD回路34に対してSUB転送(IDとIECの転送)を行うためにRAM37にアクセスする場合に、ECC制御回路36からRAMコントローラ35に出力される信号である。
【0140】
RAMコントローラ35は、これら3つの信号に対して優先順位(Priority Level)を予め設定しており、これらの要求が同時になされた場合には、その優先順位に従って、RAM37のアクセス権を認めるACK(認可)信号を順次出力する。EFMACK(図22(d))、OUTACK(図22(e))、ECCACK(図22(f))は、それぞれ、EFMREQ、OUTREQ、または、ECCREQに対する認可信号である。この実施例において、前述の優先順位は、OUTREQ、EFMREQ、ECCREQの順とされている。従って、図22に示すように、RAMコントローラ35は、この順位に従って、REQ信号に対するACK信号を出力している。これらの信号は、システムクロックとしてのC11M(図22(g))に同期して授受される。
【0141】
このように、本実施例において、RAM37のアクセス権は、所定のサイクル毎にEFMREQ、ECCREQ、OUTREQの何れか1つに対応して与えられる。しかし、このサイクルは、RAM37の構成、種類、または、アクセスのスピードに対応して変更することも可能である。
【0142】
図23は、1ECCブロックのデータに対してPI1訂正、PI2訂正、およびPO訂正を実行する場合に、RAM37がアクセスされる回数を示している。この図に示すように、PI1訂正、PO訂正およびPI2訂正を実行した場合に必要となるRAM37のアクセスの回数は、1ECCブロックあたり214716回であり、1メインフレームの平均は1033回となる。例えば、EFM+復調データの書き込み動作時におけるRAM37のアクセス回数は、1メインフレームあたり182回であり、ECCの実行サイクル長は208バイト(208メインフレーム)とされているので、37856(=182×208)回が1ブロックあたりに必要なアクセス回数となる。このようにして各動作について必要なアクセス回数を算出し、これらの合計をとったものが前述の値となる。
【0143】
図24は、RAM37からOCTL回路39を介してエラー訂正結果ERのデータを出力するタイミングを示すタイミング図である。この図は、図19(e)の182SDCKの期間に先行する部分を、時間軸を拡大して示している。この図において、SDCK(図24(a))はERのデータをストリームデータとして出力する場合のクロック信号を示す。SINF(図24(b))はセクタ情報ストローブ信号であり、セクタの先頭においてSINF=Hとなると共に、転送されるデータがセクタ情報(SI)であることを示す。ESTB(図24(c))は、エラー訂正結果ストローブ信号であり、ESTB=Hとなることによりエラー訂正結果ERが転送されることを示す。なお、各PI行においてエラー訂正結果ERは、PI1訂正、PO訂正、およびPI2訂正のそれぞれに対して1バイトずつ割り当てられているので、合計で3バイトとされる。これらのデータは図5に格納されている順序で出力されるので、エラー訂正結果ERのビット5,6(図21)を調べることにより、どの系列の結果(データ)であるのかを判定することができる。また、PO訂正の結果が出力されないPI行では、PO訂正の結果を出力するタイミングでESTB=Lとされる。
【0144】
DSTB(図24(d))は、信号SD[7:0](図24(e))がメインデータであるときにDSTB=Hとされるデータストローブ信号である。SINF、ESTB、またはDSTBの3つの信号は、OCTL回路39により生成される。なお、図24(e)に示すように、セクタ情報SIとエラー訂正結果ERは、182SDCKによりPI行方向のデータを送出する直前に出力される。
【0145】
OUTF(補間フラグ)(図24(f))は、メインデータに対するエラーフラグであり、図20のFLAG RAM36cに格納されているPIとPOの訂正不能フラグに基づき、エラーのあるメインデータに対して補間フラグが付加されて、出力されることになる。
【0146】
OCTL回路39は、デコードが終了したセクタのデータが、出力されるべきデータであるか否かを、SBCD回路34が生成したセクタ情報のビット4,5(図13)より判定する。セクタ情報のビット4,5は、図13に示すように、エンドセクタとスタートセクタとをそれぞれ示している。従って、OCTL回路39は、ビット4=0かつビット5=1であるセクタのデータを、出力が指定された(出力されるべき)セクタのデータとして、出力する。
【0147】
また、OCTL回路39は、例えば、メインデータのエラーフラグの有無やEDCの結果などが、ホストCPU40により予め設定された条件を満足するか否かも判定し、満足する場合、デコードデータを出力する。もし、設定された出力条件が満たされない場合には、デコードデータの出力を停止し、ホストCPU40に異常を知らせる。
【0148】
データの出力条件は、例えば次のように設定される。
(1)出力を指定されたセクタのデータである。
(2)EDC結果からエラーが検出されない。
(3)メインデータにエラーフラグが全く付加されていない。
出力条件がこのように設定された場合、これらの条件を全て満足するデータが最終的に出力される。また、以上の条件に拘らず、ホストCPU40により強制的に出力を禁止することができる。
【0149】
なお、出力条件は以上に限定されるものではないことは勿論である。
【0150】
次に、補間フラグについて説明する。
【0151】
PI1訂正、PI2訂正、またはPO訂正の結果に対応してそれぞれ生成されたPI1フラグ、PI2フラグ、またはPOフラグは、ECC制御回路36のFLAG RAM36cに格納される。
【0152】
図25は、FLAG RAM36cのデータを、8ビット幅で構成されているRAM37の所定の領域に格納し、読み出す部分のECC制御回路36の内部の構成を示すブロック図である。
【0153】
図25において、ECC制御回路36に内蔵されている1−8変換回路50は、FLAG RAM36cより読み出された各行または各列毎に1ビットのPIフラグまたはPOフラグ(図21のビット7)を8ビットのパラレルデータに変換する。RAM37は、8ビットに変換されたデータを格納する。ECC制御回路36に内蔵されているフリップフロップ52−1乃至52−26は、FIFO方式によりデータを格納するようになされている。8−1変換回路53は、8ビットデータを1ビットのデータに変換する。また、WE発生回路56は、フリップフロップ52−1乃至52−26に対するデータの書き込み動作の制御を行う。また、OE発生回路55は、同じくフリップフロップ52−1乃至52−26からデータを読み出す際の制御を行う。
【0154】
次に、この実施例の動作について説明する。
【0155】
FLAG RAM36cより入力された1ビットのPIフラグ(PI1フラグまたはPI2フラグ)またはPOフラグは、1−8変換回路50により8ビットのパラレルデータに変換される。すなわち、各ECCブロックの先頭のPI行より、8行毎にデータがまとめられ、バイトデータに変換される。そして、このバイトデータは、各ECCブロックのデータと共にアクセスできるように、RAM37へ格納される。
【0156】
PI行は、1ECCブロックあたり208行であり、各PI行のPIフラグは、1ビットであるので、26(=208/8)バイトの格納領域が必要となり、また、PO列は1ECCブロックあたり、172列であるので、POフラグの格納のためには、約22(≒21.5=172/8)バイトの格納領域が必要となる。
【0157】
このように、RAM37に格納された8ビット単位のデータは、RAMコントローラ35により読み出され、WE発生回路56の制御に従って、8ビット単位でフリップフロップ52−1乃至52−26に記憶される。8−1変換回路53は、OE発生回路55の制御に応じてフリップフロップ52−1乃至52−26から出力される8ビット単位のデータを、1ビット単位のデータに変換する。そして、得られた1ビット単位のデータは、転送するデータの各系列のPI行(またはPO列)の番号に対応させてECCコア回路38のエラーフラグの入力端子であるEFLG端子に供給される。
【0158】
イレージャ訂正は、PO訂正とPI2訂正の処理が行われるときに実行されるが、PO訂正とPI2訂正は、ECCブロック単位で順次実行されることから、図25の回路は、PO訂正とPI2訂正で共通に使用することが可能である。但し、OE発生回路55によるフリップフロップ52−1乃至52−26からのデータの読みだしのタイミングと、8−1変換回路53からのデータの読み出しのタイミングについては、PI2訂正とPO訂正のそれぞれの場合で変更が必要である。
【0159】
図26は、ECC制御回路36の補間フラグ(OUTF)を生成し、読み出す部分の回路の構成の一例を示すブロック図である。この図に示すように、補間フラグ読み出し回路は、FIFO方式でRAM37からの8ビット単位のデータを格納するフリップフロップ71−1乃至71−22、フリップフロップ71−1乃至71−22より出力された8ビット単位のデータを1ビット単位のデータに変換する8−1変換回路72、OUTF(補間フラグ)を発生するOUTF発生回路(補間フラグ生成手段)73、フリップフロップ71−1乃至71−22にデータを書き込む際の制御を行うWE発生回路75、および、フリップフロップ71−1乃至71−22からデータを読み出す際の制御を行うOE発生回路74により構成されている。
【0160】
次に、この実施例の動作について説明する。
【0161】
RAMコントローラ35により読み出された8ビット単位のPOフラグのデータは、WE発生回路75の制御のもとに、フリップフロップ71−1乃至71−22に供給され、8ビット単位で書き込まれる。そして、このPOフラグのデータは、OE発生回路74の制御のもと読み出され、8−1変換回路72により、8ビット単位のデータから1ビット単位のデータに変換される。
【0162】
また、RAM37から読み出された8ビット単位のPI2訂正のエラー訂正結果ERと、8ビット単位のセクタ情報SIも、OUTF発生回路73に供給される。OUTF発生回路73は、8−1変換回路72より供給されたPOフラグと、PI2訂正のエラー訂正結果ERのうち、PI2フラグ(ビット7)とエラー訂正数(ビット4乃至ビット0)、並びにセクタ情報SIの補間フラグ生成モード(ビット7)に対応して、補間フラグ(OUTF)を生成する。この補間フラグの生成処理の詳細については、図31と図32のフローチャートを参照して後述する。
【0163】
なお、図25および図26に示す実施例において、エラーフラグは、RAM37以外の記憶装置に記憶させるようにしてもよい。また、これらの実施例では、FIFO方式の記憶装置(フリップフロップ52−1乃至52−26またはフリップフロップ71−1乃至71−22)を用いたが、FIFO方式以外の記憶装置を用いることも可能である。さらに、RAM37が1ビット幅である場合は、1−8変換回路50、および8−1変換回路53,72を省略することも可能である。
【0164】
次に、ECCコア回路38の動作モードの設定方法、および、データが訂正不能であるか否かの判定方法について説明する。
【0165】
まず、ECCコア回路38の動作モード(エラー訂正モード)について説明する。ECCコア回路38は、図27に示すように、動作モードに関する入力端子としてEUP,EFLG,P,PCYC,X,Y,Tの各端子を有し、動作モードに関する出力端子としてO.YOVER,O.CODEERRの各端子を有している。
【0166】
ECCコア回路38のエラー訂正モードは、そのEUP端子に印加される信号により変更することができる。つまり、EUP端子に印可される信号がLの状態である場合には、シンドローム訂正(通常の訂正)のみが実行され、また、EUP端子に印可される信号がHの状態である場合には、先ず、イレージャ訂正が実行され、訂正能力に余裕がある場合には、通常訂正が続いて実行される。
【0167】
また、ECCコア回路38のO.YOVER端子の出力は、そのEFLG端子に入力されるエラーフラグの数が、予め設定されている所定の値を越えた場合にHの状態となり、エラー訂正が不能の状態を示す。なお、EUP端子がHの状態(イレージャ訂正+通常訂正モードが選択された状態)である場合に、O.YOVER端子がHの状態になると、エラー訂正が不能とはされずに、通常の訂正が実行される。これは、エラー以外の原因でフラグが立ったデータを、通常訂正モードでエラー訂正できるようにするためである。
【0168】
なお、ECC制御回路36は、後述するように、エラーの数に応じて、ECCコア回路38のEFLG端子(図25、図27)に対して出力するEFLG信号(エラーフラグに対応する信号)の状態を切り換える。
【0169】
ECDは空フラグ(ECD=0)を含むので、ECDが全て0である場合のデータは正しいデータであるとみなし、訂正を実行しない。従って、データの訂正数は、エラー位置ECAまたはエラーパターンECDの出力数より空フラグのECDの数を減じた値となる。
【0170】
なお、イレージャ訂正モードにおいて誤訂正が生じた場合には、ECCコア回路38は、O.CODEERR=H、O.YOVER=Lを出力する。従って、これらの信号を参照することにより誤訂正の発生を検出することができる。
【0171】
例えば、PI2訂正において、8イレージャ訂正を実行する場合、POフラグの入力数が7であれば、O.CODEERR=H、O.YOVER=Lとなる。この場合、フラグが付加されていないデータエラーが1個以上存在することになる。
【0172】
明らかに、フラグが立っていないところに訂正不能のエラーがある場合、PO訂正において誤訂正が生じたことになる。そこでこの場合、POフラグが立っていないところにエラーが生じているので、OUTF=1とする。
【0173】
これらの出力端子O.CODEERRとO.YOVERの信号レベル(論理)は、flagとしてRAM37に記録され、ECC制御回路36による補間フラグの生成時に使用される。例えば、PI1訂正、PO訂正、およびPI2訂正の3つの訂正を実行する場合、PI2訂正のエラー訂正結果ERの訂正数(図21のビット4乃至ビット0)を以下のようにして設定することにより、誤訂正を判別することができる。
【0174】
(A) O.CODEERR=“L”,O.YOVER=“L”の場合は、訂正結果の訂正数=実際のエラー訂正数(訂正が実行された場合)
(B) O.CODEERR=“H”,O.YOVER=“H”の場合は、訂正結果の訂正数=0(訂正が不能であった場合)
(C) O.CODEERR=“H”,O.YOVER=“L”の場合は、訂正結果の訂正数=1F(H)(誤訂正があった場合)
なお、このIF(H)の設定は、実際にはあり得ない訂正数として、5ビットで表現できる最大の値を設定することを意味する。
【0175】
次に、図28と図29を参照して、ECCコア回路38の出力からECC制御回路36が行うエラーフラグの生成方法の例について詳述する。
【0176】
なお、図28と図29に示す各パラメータ(ECCコア回路38の端子に印加される信号)等の意味を以下に示す。
【0177】
Figure 0003562544
【0178】
Figure 0003562544
【0179】
訂正結果
○:O.CODEERRとO.YOVER出力の状態により、エラーの訂正を
実行する場合
×:O.CODEERRとO.YOVER出力の状態により、エラーの訂正を
実行しない場合
【0180】
なお、“×”と判定された場合は、訂正が実行されないので、その系列のエラーフラグ=Hとされる。
【0181】
図28に示すように、ECC制御回路36は、PI1訂正を行うとき、ECCコア回路38の端子EFLGに入力されるフラグ入力ERRORをLとする。このとき、通常訂正が行われる。また、PO訂正を行う場合においては、ECC制御回路36は、ECCコア回路38のEFLG端子に対する入力ERRORをPO flagとする。このとき、イレージャ訂正が行われる。従って、図28におけるPI flagは、ERROR=Lのとき、PI1フラグとなり、ERROR=PO flagのとき、POフラグとなる。
【0182】
ECC制御回路36は、P,PCYC,X,Y,Tの各パラメータに対して、図28に示すような設定を行い、ECCコア回路38のO.CODEERR端子とO.YOVER端子から、それぞれLが出力されたとき、エラー訂正処理を実行し、PIフラグまたはPOフラグとして、Lを設定する。
【0183】
また、ECCコア回路38のO.CODEERR端子からHが出力され、O.YOVER端子からLが出力されたときは、エラー訂正を実行せず、PIフラグまたはPOフラグをHとする。さらに、O.CODEERR端子からHが出力され、O.YOVER端子からHが出力されたときは、エラー訂正を行わず、PIフラグまたはPOフラグをHとする。前者の場合は、誤訂正があったことを意味し、後者の場合は、エラー訂正が不能であったことを意味する。
【0184】
なお、図28において、パラメータX,Y,T=10は、訂正能力としては10まで設定できるが、エラーが多いときなどは、誤訂正のおそれがあるので、より小さい値8に設定してもよい。
【0185】
ECC制御回路36は、PO訂正(イレージャ訂正)を行う場合においては、図29に示すように、ECCコア回路38のEFLG端子に対する入力ERRORをPI1 flagとする。そして、そのO.CODEERR端子と、O.YOVER端子の出力が、それぞれL,Lであるとき、ECC制御回路36は、エラー訂正を実行し、POフラグをLとする。また、ECCコア回路38の2つの出力が、H,L(誤訂正があった場合)またはH,H(訂正不能である場合)であるとき、ECC制御回路36はエラー訂正を実行せず、POフラグをHとする。
【0186】
次に、補間フラグを生成する方法について説明する。図30は、補間フラグを生成する第1の方法について示している。この方法においては、3つの方法のいずれか2つのうちの一方が選択できるようになされている。
【0187】
すなわち、この実施例においては、POフラグとPI2フラグの論理積を補間フラグとする方法、POフラグとPI2フラグの論理和を補間フラグとする方法、さらにPI2訂正により誤訂正がなければPOフラグとPI2フラグの論理積を補間フラグとし、PI2訂正において誤訂正があった場合には、POフラグとPI2フラグの論理和を補間フラグとする方法のうちのいずれか2つの方法が先ず選択される。
【0188】
この3つの方法のうちの選択された2つを、それぞれを図13に示すセクタ情報SIのビット7の補間フラグ生成モード設定ビットの1または0に、対応させる。これにより、セクタ情報SIのビット7に対応するモードで補間フラグが生成されることになる。
【0189】
このように、POフラグとPI2フラグの論理積または論理和を用いて、補間フラグを生成することにより、EDCチェックの結果、エラーの存在が発見されたセクタのデータであっても、実際には誤っていないデータは、補間せずに、そのまま利用することが可能となる。
【0190】
なお、以上の実施例では、セクタ情報のビット7により、モードを選択するようにしたが、ホストCPU40により、モードを強制的に変更することも可能である。
【0191】
次に、補間フラグを生成する他の実施例について、図31と図32のフローチャートを参照して説明する。
【0192】
この実施例の場合、最初にステップS21(第2のフラグ生成手段)において、ECC制御回路36は、PO訂正の結果、エラーの訂正が不能である1バイトのデータに対しては、そのデータに対応する1ビットのPOフラグを1にし、それ以外のデータに対しては、POフラグを0にして、そのフラグをRAM37に格納させる。次に、ステップS22(第1のフラグ生成手段)において、ECC制御回路36は、PI2訂正の結果、エラーの訂正が不能であるデータに対応するPI2フラグを1とし、その他のデータに対するPOフラグを0にして、RAM37に格納させる。
【0193】
さらに、ステップS23では、PI2訂正において誤訂正が生じたか否かの検出結果がRAM37に格納される。すなわち、図28に示したように、PI2訂正(イレージャ訂正)で、誤訂正が生じた場合は、O.CODEERR=“H”、かつ、O.YOVER=“L”となるので、ECC制御回路36は、ECCコア回路38のこれらの端子の状態を読み込み、RAM37に格納させる。
【0194】
ステップS24において、OCTL回路39はセクタのEDCのチェックを実行する。その結果、セクタデータにエラーが無い(YES)と判定された場合は、ステップS25に進む。ステップS25においては、そのセクタの補間フラグを0にする。補間フラグは、予め0に設定しておき、エラーが存在したときだけ1に設定する場合には、このステップにおいては特別な処理を行わないで済む。
【0195】
次にステップS26に進み、データが補間フラグとともに出力される。
【0196】
すなわち、図1に示すように、1バイトのメインデータに対して、1ビットの補間フラグが対応して出力される。1つのECCブロックにおけるメインデータは、192×172バイト存在するため、補間フラグは、192×172ビット存在することになる。
【0197】
ステップS24において、セクタのEDCをチェックした結果、そのセクタにはエラーが存在する(NO)と判定された場合においては、ステップS27に進む。ステップS27においては、ホストCPU40が、光ディスク1を再度読み出すのか(1)、またはエラーデータに補間フラグを付加して出力するのか(2)を選択する。光ディスク1を再び再生することが選択された場合、ステップS28に進み、ホストCPU40は、光ディスク1から、再びそのセクタを含むデータを再生させる。そして、再生された結果得られたデータについて、ステップS21以降の処理が実行される。
【0198】
ステップS27において、エラーデータに補間フラグを付加して出力することが選択された場合においては、ステップS29に進む。ステップS29においては、そのセクタのメインデータ(12×172バイトのデータ)のすべてに対応するPOフラグとPI2フラグの論理積を演算し、その論理積がすべて0であるか否かを判定する。
【0199】
ステップS29において、すべてのメインデータのPOフラグとPI2フラグの論理積が0であると判定された場合、いまステップS24において、そのセクタのEDCをチェックした結果、このセクタのデータにはエラーが存在すると判定されているのであるから、エラーが存在するにも拘らず、エラーの存在を表すフラグが設定されていない状態であることになる。すなわち、この場合、PI1訂正、PO訂正、またはPI2訂正において、誤訂正が行われたことになる。そこで、この場合においては、ステップS30(補間フラグ生成手段)に進み、そのセクタのすべてのPI行(12PI行)の補間フラグを1に設定する。すなわち、12×172ビットの補間フラグをすべて1に設定する。
【0200】
次にステップS26に戻り、メインデータを補間フラグとともに、OCTL回路39から出力する。
【0201】
ステップS29において、すべてのメインデータのPOフラグとPI2フラグの論理積が0ではないと判定された場合(少なくとも1つのメインデータについてのPOフラグとPI2フラグの論理積が1であると判定された場合)、ステップS31に進み、PI2訂正の訂正数が1Fであるか否かを判定する。すなわち、図25と図27を参照して上述したように、ECCコア回路38の出力が、O.CODEERR=H、且つ、O.YOVER=Lの場合は、誤訂正があった場合であるので、エラー訂正結果ERの訂正数(図21のビット4乃至ビット0)に、実際の訂正能力以上の所定の値(いまの場合1F)が設定されている。PI2訂正において、誤訂正が行われた場合においては、このPI2訂正の訂正数が1Fに設定されていることになる。ステップS31において、最初のPI行のPI2訂正の訂正数が1Fに設定されていると判定された場合(PI2訂正において誤訂正がなされたと判定された場合)、ステップS32(補間フラグ生成手段)に進み、PI2訂正の訂正数が1Fと設定されているそのPI行の補間フラグ(1×172ビットの補間フラグ)に1を設定する。
【0202】
次にステップS33に進み、EDCチェックの結果、エラーが存在すると判定されたセクタの12PI行のすべてについて、処理が終了したか否かが判定される。すべてのPI行についての処理が終了していない場合、ステップS34に進み、次のPI行が選択される。そして、さらにステップS31に戻り、新たに選択したPI行について、同様の処理が実行される。
【0203】
ステップS33において、そのセクタのすべてのPI行(12PI行)についての処理が終了したと判定された場合、ステップS26に戻り、メインデータを補間フラグとともに出力する処理が実行される。
【0204】
ステップS31において、PI2訂正の訂正数が1Fではないと判定された場合、エラーは存在するが、誤訂正は存在しないということになる。すなわち、この場合においては、フラグに信頼性が存在することになるので、ステップS35に進み、そのPI行のメインデータの補間フラグに、POフラグとPI2フラグの論理積を設定する処理が実行される。
【0205】
すなわち、ステップS32においては、そのPI行の補間フラグがすべて1に設定されるのであるが、ステップS35(補間フラグ生成手段)の処理においては、POフラグとPI2フラグに信頼性が存在するため、その論理積が補間フラグとして利用される。補間フラグとともに出力されたメインデータは、後段の回路において、補間フラグに1が設定されている場合においては、補間処理が実行されるのであるが、ステップS35の処理のように、補間フラグを設定すれば、実際にエラーの存在するデータだけを補間し、エラーの存在しないデータは、そのまま用いることが可能となる。この点、従来、EDCチェックの結果、エラーが存在すると判定された場合、そのセクタに属するすべてのメインデータについて、その補間フラグを1に設定する処理が行われる(従って、そのセクタのすべてのメインデータに対して補間処理が行われる)のと大きく異なっている。
【0206】
ステップS35の処理の次にステップS33に進み、そのセクタのすべてのPI行についての処理が終了したか否かが判定され、処理が終了していないPI行が存在する場合においては、ステップS34において、新たなPI行が選択され、ステップS31において、その新たなPI行についての処理が同様に実行される。
【0207】
以上の実施例によれば、ECCの訂正結果に基づいて生成されたエラーフラグによりイレージャ訂正を実行することで、エラーの訂正能力を高めることができる。また、各系列のエラーフラグに基づき、デコードデータ1バイト毎にエラーフラグを付けて後段のデコーダ14,16(図33)に転送することにより、エラーデータの補間処理が可能となる。
【0208】
すなわち、TOCデータのように、エラーを補間することが適当でないデータの場合は、誤訂正が生ずる確率が低くなるようにエラー訂正モードを設定し、また、オーディオデータや映像データのように、補間が可能なデータに対しては、訂正不可能となる確率を下げるとともに、エラー検出もれ確率を抑制するようにエラー訂正モードを設定することができる。それにより、それぞれのセクタに記録されているデータの性質に合ったエラー訂正をセクタ単位で実行することが可能となる。
【0209】
なお、本実施例においては、OCTL回路39において、デスクランブル処理、EDCチェック、出力条件判断を行うようにしたが、OCTL回路39の後段に、さらに別の回路を設け、後段の多重化データ分離回路8からの転送要求に従って出力条件が充足されている訂正後のデータを出力させる制御を行わせるようにすることもできる。
【0210】
また、ECC制御回路36がPI2訂正を実行する前に、セクタ情報のビット4,5(図13)を参照して、出力が要求されているセクタのデータに対してのみPI2訂正を実行することもできる。すなわち、ビット4,5を参照して、出力が要求されていないデータは、リングバッファ制御回路6のリードポインタにより、それらのデータをスキップするようにすればよい。
【0211】
さらに、リングバッファメモリ7(RAM37)からOCTL回路39にデータを転送する際にも、OCTL回路39から出力を要求されているデータだけを、上述のように、リードポインタを用いて選択することができる。
【0212】
また、以上の実施例では、列方向に1回の訂正処理(PO訂正)と、行方向に2回の訂正処理(PI1訂正およびPI2訂正)を行うようにしたが、本発明は、このような場合のみに限定されるものではなく、各方向に、それ以上の回数の訂正を行う場合にも適用可能であることは言うまでもない。
【0213】
【発明の効果】
本発明の第1の復号化装置によれば、復号化の対象となるデータを記憶し、行方向と列方向に対してそれぞれエラー訂正処理を行い、行方向または列方向のうちのいずれか一の方向に対するエラー訂正の結果に応じて第1のフラグを生成し、行方向または列方向のうちの一の方向と異なる他の方向に対してエラー訂正を実行した結果に応じて第2のフラグを生成し、第1のフラグと第2のフラグを用いて補間フラグを生成するとともに、行方向と列方向のエラー訂正の後、さらに一の方向に対する第2回目のエラー訂正の結果に応じて新たに第3のフラグを生成し、第3のフラグと第2のフラグを用いて補間フラグを生成し、一の方向に対する第2回目のエラー訂正により誤訂正がなければ、新たに生成した第3のフラグと第2のフラグの論理積を補間フラグとし、一の方向に対する第2回目のエラー訂正により誤訂正があれば、新たに生成した第3のフラグと第2のフラグの論理和を補間フラグとするようにした
また、本発明の第2の復号化装置および復号化方法によれば、復号化の対象となるデータを記憶し、行方向と列方向に対してそれぞれエラー訂正処理を行い、行方向または列方向のうちのいずれか一の方向に対するエラー訂正の結果に応じて第1のフラグを生成し、行方向または列方向のうちの一の方向と異なる他の方向に対してエラー訂正を実行した結果に応じて第2のフラグを生成し、第1のフラグと第2のフラグを用いて補間フラグを生成するとともに、行方向と列方向のエラー訂正の後、さらに一の方向に対する第2回目のエラー訂正の結果に応じて新たに第3のフラグを生成し、第3のフラグと第2のフラグを用いて補間フラグを生成し、一の方向に対する第2回目のエラー訂正によりエラーがあれば、新たに生成した第3のフラグと第2のフラグの論理積を演算し、それが0であるか否かに対応して、補間フラグを生成するようにした。
従って、補間フラグを直ちに生成する必要がなくなり、エラー訂正の処理単位より小さい単位で、補間フラグの生成方法を変更することが可能となる。
【0214】
また、補間フラグをデータと異なる領域に独立して記憶するようにしたので、補間フラグをバイト単位で記憶させることが可能となり、補間フラグを記憶するメモリの容量を低減することが可能となり、低コスト化を図ることができる。
【図面の簡単な説明】
【図1】本発明に関するエラーフラグとデータの関係を示す図である。
【図2】本発明の復号化装置の主要部分の構成を示すブロック図である。
【図3】光ディスク1の物理セクタの構成例を示す図である。
【図4】光ディスク1のデータセクタの構成例を示す図である。
【図5】データ、エラーフラグ、および補間フラグのRAM37における格納方法の例を示す図である。
【図6】EFM+復調回路の出力のRAMへの書き込みを説明するタイミング図である。
【図7】EFM+復調回路のロック検出処理を説明するフローチャートである。
【図8】EFM+復調回路のSCSY信号の生成処理を説明するフローチャートである。
【図9】EFM+復調回路のmain−FMSY信号の補間処理を説明するフローチャートである。
【図10】block−topの検出のタイミング図である。
【図11】block−top検出後の処理のタイミング図である。
【図12】SUB転送が行われる場合の主要部分の信号のタイミング図である。
【図13】セクタ情報の各ビットの持つ意味を説明する図である。
【図14】SBCD回路のIEC正常連続性処理を説明するフローチャートである。
【図15】SBCD回路のアドレス連続性判定処理を説明するフローチャートである。
【図16】SBCD回路のSALK信号の生成処理を説明するフローチャートである。
【図17】ECC処理の結果を出力する際の主要部分の信号のタイミング図である。
【図18】ECC処理の結果を出力する際の主要部分の信号のタイミング図である。
【図19】ECC処理が実行される場合の制御のタイミングを示すタイミング図である。
【図20】エラー訂正時のデータの流れを示すブロック図である。
【図21】エラー訂正結果ERの各ビットが有する情報を示す図である。
【図22】RAM37のアクセスに関するアービトレーションを示すタイミング図である。
【図23】1ブロックのデータを処理する際にRAM37をアクセスする回数を示す図である。
【図24】OCTL回路39から訂正結果ERを出力するタイミングを示すタイミング図である。
【図25】エラーフラグの読み出しを行うための回路の構成例を示すブロック図である。
【図26】補間フラグの格納または読み出しを行うための回路の構成例を示すブロック図である。
【図27】ECCコア回路38の入力端子と出力端子を説明する図である。
【図28】PIフラグの生成を説明する図である。
【図29】POフラグの生成を説明する図である。
【図30】補間フラグ生成モードを説明する図である。
【図31】本発明の復号化装置において実行される動作を説明するフローチャートである。
【図32】図31に続くフローチャートである。
【図33】復号化装置の構成の一例を示すブロック図である。
【図34】1セクタ分のデータのフォーマットを示す図である。
【図35】32kバイトのデータの構成を説明する図である。
【図36】図35の外符号をインターリーブした状態を説明する図である。
【図37】32kバイトブロックのデータの構成を示す図である。
【図38】従来の復号化装置において実行される処理を説明するフローチャートである。
【符号の説明】
7 リングバッファメモリ, 31 EFM+復調回路, 34 SBCD回路, 35 RAMコントローラ, 36 ECC制御回路, 37 RAM,39 OCTL回路, 38 ECCコア回路, 40 ホストCPU, 73 OUTF発生回路

Claims (6)

  1. 符号化された情報を復号化し、もとの情報を得る復号化装置において、
    復号化の対象となるデータを記憶する記憶手段と、
    前記記憶手段に記憶された前記データの行方向と列方向に対してそれぞれエラー訂正処理を行うエラー訂正手段と、
    前記記憶手段に記憶された前記データの行方向または列方向のうちのいずれか一の方向に対して前記エラー訂正手段がエラー訂正を実行した結果に応じて、第1のフラグを生成する第1のフラグ生成手段と、
    前記記憶手段に記憶された前記データの行方向または列方向のうちの前記一の方向と異なる他の方向に対して前記エラー訂正手段がエラー訂正を実行した結果に応じて、第2のフラグを生成する第2のフラグ生成手段と、
    前記第1のフラグと前記第2のフラグを用いて補間フラグを生成する補間フラグ生成手段と
    を備え、
    前記第1のフラグ生成手段は、前記記憶手段に記憶された前記データの行方向と列方向のエラー訂正の後、さらに前記一の方向に対して第2回目のエラー訂正を前記エラー訂正手段が実行したとき、第2回目の前記一の方向のエラー訂正結果に応じて、新たに第3のフラグを生成し、
    前記補間フラグ生成手段は、新たに生成した前記第3のフラグと前記第2のフラグを用いて補間フラグを生成し、
    前記記憶手段は、前記補間フラグを前記データと異なる領域に独立してさらに記憶し、
    前記補間フラグ生成手段は、前記一の方向に対する第2回目のエラー訂正により誤訂正がなければ、新たに生成した前記第3のフラグと前記第2のフラグの論理積を前記補間フラグとし、前記一の方向に対する第2回目のエラー訂正により誤訂正があれば、新たに生成した前記第3のフラグと前記第2のフラグの論理和を前記補間フラグとする
    ことを特徴とする復号化装置。
  2. 符号化された情報を復号化し、もとの情報を得る復号化装置において、
    復号化の対象となるデータを記憶する記憶手段と、
    前記記憶手段に記憶された前記データの行方向と列方向に対してそれぞれエラー訂正処理を行うエラー訂正手段と、
    前記記憶手段に記憶された前記データの行方向または列方向のうちのいずれか一の方向に対して前記エラー訂正手段がエラー訂正を実行した結果に応じて、第1のフラグを生成する第1のフラグ生成手段と、
    前記記憶手段に記憶された前記データの行方向または列方向のうちの前記一の方向と異なる他の方向に対して前記エラー訂正手段がエラー訂正を実行した結果に応じて、第2のフラグを生成する第2のフラグ生成手段と、
    前記第1のフラグと前記第2のフラグを用いて補間フラグを生成する補間フラグ生成手段と
    を備え、
    前記第1のフラグ生成手段は、前記記憶手段に記憶された前記データの行方向と列方向のエラー訂正の後、さらに前記一の方向に対して第2回目のエラー訂正を前記エラー訂正手段が実行したとき、第2回目の前記一の方向のエラー訂正結果に応じて、新たに第3のフラグを生成し、
    前記補間フラグ生成手段は、新たに生成した前記第3のフラグと前記第2のフラグを用いて補間フラグを生成し、
    前記記憶手段は、前記補間フラグを前記データと異なる領域に独立してさらに記憶し、
    前記補間フラグ生成手段は、前記一の方向に対する第2回目のエラー訂正によりエラーがあれば、新たに生成した前記第3のフラグと前記第2のフラグの論理積を演算し、それが0であるか否かに対応して、前記補間フラグを生成する
    ことを特徴とする復号化装置
  3. 前記補間フラグ生成手段は、前記論理積が0であれば、前記補間フラグを1に設定する
    ことを特徴とする請求項に記載の復号化装置。
  4. 前記補間フラグ生成手段は、前記論理積が0でなく、前記一の方向に対する第2回目のエラー訂正により誤訂正があれば、前記補間フラグを1に設定する
    ことを特徴とする請求項に記載の復号化装置。
  5. 前記補間フラグ生成手段は、前記論理積が0でなく、前記一の方向に対する第2回目のエラー訂正により誤訂正がなければ、新たに生成した前記第3のフラグと前記第2のフラグの論理積を前記補間フラグとする
    ことを特徴とする請求項に記載の復号化装置。
  6. 符号化された情報を復号化し、もとの情報を得る復号化方法において、
    復号化の対象となるデータを記憶する記憶ステップと、
    前記記憶ステップで記憶された前記データの行方向と列方向に対してそれぞれエラー訂正処理を行うエラー訂正ステップと、
    前記記憶ステップで記憶された前記データの行方向または列方向のうちのいずれか一の方向に対して前記エラー訂正ステップがエラー訂正を実行した結果に応じて、第1のフラグを生成する第1のフラグ生成ステップと、
    前記記憶ステップで記憶された前記データの行方向または列方向のうちの前記一の方向と異なる他の方向に対して前記エラー訂正ステップがエラー訂正を実行した結果に応じて、第2のフラグを生成する第2のフラグ生成ステップと、
    前記第1のフラグと前記第2のフラグを用いて補間フラグを生成する補間フラグ生成ステップと
    を備え、
    前記第1のフラグ生成ステップは、前記記憶ステップで記憶された前記データの行方向と列方向のエラー訂正の後、さらに前記一の方向に対して第2回目のエラー訂正を前記エラー訂正ステップが実行したとき、第2回目の前記一の方向のエラー訂正結果に応じて、新たに第3のフラグを生成し、
    前記補間フラグ生成ステップは、新たに生成した前記第3のフラグと前記第2のフラグを用いて補間フラグを生成し、
    前記記憶ステップは、前記補間フラグを前記データと異なる領域に独立してさらに記憶し、
    前記補間フラグ生成ステップは、前記一の方向に対する第2回目のエラー訂正によりエラーがあれば、新たに生成した前記第3のフラグと前記第2のフラグの論理積を演算し、それが0であるか否かに対応して、前記補間フラグを生成する
    ことを特徴とする復号化方法。
JP21349296A 1996-08-13 1996-08-13 復号化装置および復号化方法 Expired - Fee Related JP3562544B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP21349296A JP3562544B2 (ja) 1996-08-13 1996-08-13 復号化装置および復号化方法
US08/901,290 US5886654A (en) 1996-08-13 1997-07-31 Apparatus and method for decoding data using flags to indicate decoding errors in data rows and columns
EP97305878A EP0825603A3 (en) 1996-08-13 1997-08-04 Apparatus and method for decoding data
CN97118563A CN1127086C (zh) 1996-08-13 1997-08-13 用数据行和列译码错误标记来对数据译码的设备和方法
KR1019970038619A KR19980018647A (ko) 1996-08-13 1997-08-13 데이터 행과 열에서 복호화 에러를 나타내는 플래그를 이용해 데이터를 복호화하는 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP21349296A JP3562544B2 (ja) 1996-08-13 1996-08-13 復号化装置および復号化方法

Publications (2)

Publication Number Publication Date
JPH1055630A JPH1055630A (ja) 1998-02-24
JP3562544B2 true JP3562544B2 (ja) 2004-09-08

Family

ID=16640104

Family Applications (1)

Application Number Title Priority Date Filing Date
JP21349296A Expired - Fee Related JP3562544B2 (ja) 1996-08-13 1996-08-13 復号化装置および復号化方法

Country Status (5)

Country Link
US (1) US5886654A (ja)
EP (1) EP0825603A3 (ja)
JP (1) JP3562544B2 (ja)
KR (1) KR19980018647A (ja)
CN (1) CN1127086C (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100244190B1 (ko) * 1997-08-29 2000-02-01 구자홍 동기신호 검출회로
EP1146515A1 (en) * 1998-02-25 2001-10-17 Matsushita Electric Industrial Co., Ltd. High-speed error correcting apparatus with efficient data transfer
JP3945602B2 (ja) * 1998-04-14 2007-07-18 富士通株式会社 訂正検査方法及び訂正検査装置
JP2000040079A (ja) * 1998-07-24 2000-02-08 Fujitsu Ltd 並列データ分析装置
JP3214478B2 (ja) 1998-12-28 2001-10-02 日本電気株式会社 誤り訂正復号装置
KR100620184B1 (ko) * 1999-02-04 2006-09-01 엘지전자 주식회사 재생데이터의 오류정정방법
KR100335438B1 (ko) * 1999-03-22 2002-05-04 윤종용 고밀도 디스크를 위한 에러 정정 코드 블록 구조와 그 에러 정정방법
US6983413B2 (en) * 2000-12-12 2006-01-03 Kabushiki Kaisha Toshiba Data processing method using error-correcting code and an apparatus using the same method
KR100856399B1 (ko) * 2002-01-23 2008-09-04 삼성전자주식회사 디코딩 방법 및 그 장치
US7177658B2 (en) 2002-05-06 2007-02-13 Qualcomm, Incorporated Multi-media broadcast and multicast service (MBMS) in a wireless communications system
EP1590808A4 (en) * 2003-01-21 2008-07-02 Lg Electronics Inc METHOD FOR ENCODING AND DECODING AN ERROR CORRECTION BLOCK
JP2004253099A (ja) 2003-02-21 2004-09-09 Toshiba Corp シンクフレーム構造、情報記憶媒体、情報記録方法、情報再生方法、および情報再生装置
US8694869B2 (en) * 2003-08-21 2014-04-08 QUALCIMM Incorporated Methods for forward error correction coding above a radio link control layer and related apparatus
US8804761B2 (en) * 2003-08-21 2014-08-12 Qualcomm Incorporated Methods for seamless delivery of broadcast and multicast content across cell borders and/or between different transmission schemes and related apparatus
US7318187B2 (en) * 2003-08-21 2008-01-08 Qualcomm Incorporated Outer coding methods for broadcast/multicast content and related apparatus
CN100359587C (zh) * 2003-12-10 2008-01-02 联发科技股份有限公司 用于单晶片电子电路的影音编解码方法
JP2006004560A (ja) * 2004-06-18 2006-01-05 Elpida Memory Inc 半導体記憶装置及びその誤り訂正方法
US20100169742A1 (en) * 2008-12-29 2010-07-01 Texas Instruments Incorporated Flash memory soft error recovery
CN101667837B (zh) * 2009-08-21 2013-04-10 苏州国芯科技有限公司 一种基于理德-所罗门码的ecc控制器
EP2571172A4 (en) 2010-05-11 2013-10-16 Asip Solutions Inc METHOD AND DEVICE FOR PROCESSING ERROR CORRECTING CODE
GB2526943B (en) * 2011-12-20 2016-04-27 Imagination Tech Ltd Method and apparatus for compressing and decompressing data
US10114696B2 (en) 2016-07-14 2018-10-30 International Business Machines Corporation Tracking data access in a dispersed storage network
US11057060B1 (en) * 2020-03-23 2021-07-06 Sage Microelectronics Corporation Method and apparatus for matrix flipping error correction

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BR8407228A (pt) * 1983-12-20 1985-11-26 Sony Corp Processo e aparelho para decodificador codigo de correcao de erros
EP0156440B1 (en) * 1984-03-24 1990-01-24 Koninklijke Philips Electronics N.V. An information transmission method with error correction for user words, an error correcting decoding method for such user words, an apparatus for information transmission for use with the method, a device for information decoding for use with the method and an apparatus for use with such device
JP2970994B2 (ja) * 1994-05-25 1999-11-02 三洋電機株式会社 誤り訂正復号回路

Also Published As

Publication number Publication date
EP0825603A2 (en) 1998-02-25
CN1175771A (zh) 1998-03-11
EP0825603A3 (en) 1999-03-17
JPH1055630A (ja) 1998-02-24
US5886654A (en) 1999-03-23
KR19980018647A (ko) 1998-06-05
CN1127086C (zh) 2003-11-05

Similar Documents

Publication Publication Date Title
JP3562544B2 (ja) 復号化装置および復号化方法
JP3305966B2 (ja) データ復号装置及びその方法並びにデータ再生装置
US6401228B1 (en) Data decoding apparatus and method and data reproduction apparatus
US20040257900A1 (en) Data recording method, recording medium and reproduction apparatus
US7370262B2 (en) Apparatus and method generating error flag for error correction
JP5115914B2 (ja) デジタルデータの符号化装置とdvdへの記録装置及びその方法
JP4140344B2 (ja) 復号化装置及びコンピュータプログラム
US6804182B2 (en) Optical disc reproducing apparatus and semiconductor integrated circuit and therefor
JP3564910B2 (ja) データ再生装置及びデータ再生方法
US7216286B2 (en) Data reproducing method and data reproducing apparatus
JPH09265730A (ja) データ再生装置、再生方法
JP3759992B2 (ja) 記録情報再生装置
JP3672139B2 (ja) データ復号装置及びその方法並びにデータ再生装置
JP3698662B2 (ja) デジタル情報再生装置
JP3700885B2 (ja) データ復号装置及びその方法並びにデータ再生装置
JP3259359B2 (ja) データ再生装置及び方法
JP4076907B2 (ja) エラー訂正方法、エラー訂正装置
KR100315768B1 (ko) 고속의 데이타재생을 위한 메모리액세스방법 및 이를 채용한dvd시스템
JP3619151B2 (ja) 誤り訂正符号を用いたデータ処理方法とその方法を用いた装置
JP2004152337A (ja) 記録再生装置及びコンピュータプログラム並びに送受信システム
JP4504591B2 (ja) 光ディスク記録方法及び記録再生装置
JP2000057712A (ja) データ再生装置およびこれを具備した電子機器
JP2002074854A (ja) ディジタルデータ記録伝送方法およびその装置
JP2003173633A (ja) 光ディスク装置
JP2004310824A (ja) 誤り訂正方法、誤り訂正回路、および情報再生装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20031226

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040127

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040329

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20040414

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20040512

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040525

LAPS Cancellation because of no payment of annual fees