JP3672139B2 - Data decoding apparatus and method, and data reproducing apparatus - Google Patents

Data decoding apparatus and method, and data reproducing apparatus Download PDF

Info

Publication number
JP3672139B2
JP3672139B2 JP30869796A JP30869796A JP3672139B2 JP 3672139 B2 JP3672139 B2 JP 3672139B2 JP 30869796 A JP30869796 A JP 30869796A JP 30869796 A JP30869796 A JP 30869796A JP 3672139 B2 JP3672139 B2 JP 3672139B2
Authority
JP
Japan
Prior art keywords
data
sector
error correction
decoding
circuit
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
JP30869796A
Other languages
Japanese (ja)
Other versions
JPH09288870A (en
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 JP30869796A priority Critical patent/JP3672139B2/en
Publication of JPH09288870A publication Critical patent/JPH09288870A/en
Application granted granted Critical
Publication of JP3672139B2 publication Critical patent/JP3672139B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Television Signal Processing For Recording (AREA)

Description

【0001】
【目次】
以下の順序で本発明を説明する。
発明の属する技術分野
従来の技術(図53〜図57)
発明が解決しようとする課題
課題を解決するための手段
発明の実施の形態(図1〜図52)
(1)第1実施例(図1〜図20)
(1−1)データ再生装置の全体構成(図1)
(1−2)ECC回路及びECC復号(図2〜図9)
(1−3)セクタ検出(図10〜図20)
(2)第2実施例
(2−1)記録データフオーマツト(図21〜図24)
(2−2)データ再生装置及びECC復号(図1、図25〜図52)
(2−3)第2実施例の動作及び効果(図43〜図45)
(3)他の実施例
発明の効果
【0002】
【発明の属する技術分野】
本発明はデータ復号装置及びその方法並びにデータ再生装置に関し、例えば、デイジタル化されてデイスクに記録されている動画像を再生するものに用いて好適なものである。
【0003】
【従来の技術】
従来、例えばMPEG(Moving Pictures Expert Group)規格による動画像がデイジタル化されて可変レートで記録されたデイスクがある。
ここで用いられているMPEGは、画像データに対してフレーム内符号画像であるIピクチヤ(Intra-Picture)、フレーム間順方向予測符号化画像であるPピクチヤ(Predictive-Picture) 、双方向予測符号化画像であるBピクチヤ(Bidirectionally predictive-Picture)の3つのタイプを規定し、これら3つの画像により画面群構造 GOP(Group Of Pictures)を形成するものである。
また音声データに対しても同様にMPEG規格を適用しているが、音声データについてはMPEG以外でも例えば、ATRAC(Aditive TRansform Acoustic Coding)によりデイジタル化及び圧縮符号化している。因みにATRAC は商標である。
【0004】
図53にデイスクに可変レートで記録されているデータを再生するデータ復号装置1を示す。データ復号装置1は、光デイスク2に記録されたデータをピツクアツプ3によつてレーザ光を照射し、その反射光から再生する。ピツクアツプ3が出力する再生信号S1は、システムコントローラ4によつて制御される復号回路系5の復調回路6に入力され、復調される。復調回路6により復調されたデータは、セクタ検出回路7を介してECC(Error Correction Code) 回路8に入力され、エラー検出及び誤り訂正が実行される。
【0005】
ここでセクタ検出回路7において、光デイスク2のセクタに割り当てられたアドレスであるセクタ番号が正常に検出されなかつた場合、トラツクジヤンプ判定回路9にセクタ番号異常信号が出力される。ECC回路8は、訂正不能のデータが生じた場合、トラツクジヤンプ判定回路9にエラー発生信号を出力する。エラー訂正されたデータは、ECC回路8からリングバツフアメモリ10に送出されて記録される。
【0006】
このときリングバツフア制御回路11は、セクタ検出回路7の出力から各セクタ毎のアドレスを読み取り、そのアドレスに対応するリングバツフアメモリ10上の書き込みアドレス(以下、ライトポインタWPという)を指定する。
また、システムコントローラ4によつて制御されるリングバツフア制御回路11は、後段の多重化データ分離回路13からのコードリクエスト信号R10に基づき、リングバツフアメモリ10に書き込まれたデータの読み出しアドレス(以下、リードポインタRPという)を指定し、その読み出しポインタRPからデータを読み出して多重化データ分離回路13に供給する。
【0007】
ここで多重化データ分離回路13のヘツダ分離回路14は、リングバツフアメモリ10から供給されたデータからパツクヘツダ及びパケツトヘツダを分離して分離回路制御回路15に供給する。分離回路制御回路15は、ヘツダー分離回路11から供給されたパケツトヘツダのストリームID(Stream IDentifier)情報に従い、スイツチング回路16の入力端子Gと出力端子(被切換端子)H1、H2を順次サイクリツクに切り換え接続することによつて、時分割多重されたデータを正しく分離して対応するコードバツフアに供給する。
【0008】
ここでビデオコードバツフア17は内部のコードバツフアの残量により、多重化データ分離回路13に対してコードリクエストR1を発生する。そして受け取つたデータを記憶する。また、ビデオデコーダ18からのコードリクエストR1を受付け、内部のデータを出力する。ビデオデコーダ18は供給されたデータからビデオ信号を再生し、出力端子OUT1から出力する。
【0009】
オーデイオコードバツフア19は内部のコードバツフアの残量により、多重化データ分離回路13に対してコードリクエストR2を発生する。そして受け取つたデータを記憶する。また、オーデイオデコーダ20からのコードリクエストR2を受付け、内部のデータを出力する。オーデイオデコーダ20は供給されたデータからオーデイオ信号を再生し、出力端子OUT2から出力する。
【0010】
このように、ビデオデコーダ18はビデオコードバツフア17にデータを要求し、ビデオコードバツフア17は多重化データ分離回路13に要求を出し、多重化データ分離回路13はリングバツフア制御回路11に対して要求を出す。この時にはデータがリングバツフアメモリ10から、今度は要求とは逆向きに流れていく。
【0011】
ここで復調回路系5におけるデータ復号について説明する。先ず、デイスク2から読み出された再生信号S1は、復調回路6にてRF処理によつて2値化信号に変換され、この信号S1のマーク長の計測結果に基づいてラフサーボがかけられる。ここでセクタ検出回路7は、システムコントローラ4のインターフエイスとしてEFM+でシンクヘツダを検出すると、PLL(Phase Locked Loop)サーボがかけられる。その後、シンクヘツダが数回連続して検出されると、EFM+復調後のデータS2がインタリーブを解かれる(以下、デインターリーブという)。
【0012】
図54に示すように、ECC回路8に送出されたEFM+復調データS2は先ず、RAM24に一旦格納された後、ECCデコーダ25、27、29において、C1/C2畳み込み・リードソロモン符号(CIRC Plus) による3系列C11(C1系列1回目)、C2及びC12(C1系列2回目)についてECC の復号を実行する。
【0013】
ECC回路8におけるECC 復号は、例えば図55に示すように、00、01、〜A8、A9の順にEFM+復調後のデータS2をRAM24へ書き込み、(EFM Write) 、RAM24へのEFM+復調後のデータが2フレーム格納されたところで、フレーム1の00′、02′、〜A8′、01、03、〜A9の順にECCデコーダ25へデータを転送することでデインタリーブされたC1系列データのECC 復号を実行する。
ここでエラー訂正は、ECCデコーダ25からエラーの位置と訂正パターンを読み出すとともに、RAM24からエラーのあるデータを読み出し(C1 read )、訂正パターンとの排他的論理和をとつて、図56に示すように、再びRAM26に書き戻すことで実行する(C1 Write)。ここでECCデコーダ25によつてC1系列のECC 復号がC2符号系列長だけ実行される。
【0014】
C1系列のECC 復号がC2符号系列長だけ実行されると、C2系列のECC 復号の実行が可能となる。次にRAM26上のデータが00′、01′、02′、03′、〜A9′の順に読み出され(C2 read )、ECCデコーダ27でC2系列のECC 復号が実行される。ここで各フレームに対する訂正不能フラグはデータに同期させて後段のECCデコーダへ転送することでイレージヤ訂正を行なうことができる。C2系列のイレージヤ訂正については、C1の訂正不能フラグを使用する。エラー訂正動作は、C1の場合と同様である。
図57に示すように、C2系列のECC 復号結果がRAM28に書き込まれ(C2 Write)、C2系列のECC 復号がC1符号系列長だけ実行されるとC12系列のECC 復号が実行可能となり、ECCデコーダ29によつて00′、01、02、03、〜A9の順に読み出される(C12 read )C12系列のECC 復号が実行される。
【0015】
ここでC12系列のイレージヤ訂正については、C2の訂正不能フラグを使用する。そして、C12のエラー訂正が終了すると、図58に示すようにRAM30に00、01、02、03、〜A9の順にC12系列のECC 復号結果が書き込まれる。こうしてRAM30には、ECC の各系列C11、C2及びC12の復号データが格納されていて、00、01、02、03、〜A9の順に読み出され(OUT read)、デスクランブル処理されて、リングバツフアメモリ10にデータ送出され、これにより必要なセクタデータが書き込まれる。
【0016】
ここで読み出しを求める出力データが属する目的セクタは、ECC 復号に用いるメモリとは別のメモリに格納した再生データからセクタアドレスを抜き出すことによつて検出される。すなわちセクタアドレスを検出するために前段のインターリーブを解くためのメモリ(RAM24)と、ECC 復号用のメモリ(RAM26、28及び30)をセクタアドレス単位にセクタアドレスが先頭に来るように割り当てている。このようにしてメモリ上に読み出された再生データよりセクタアドレスが検出され、システムコントローラ4による光デイスク2へのアクセスの際の位置情報として用いられる。
【0017】
実際、ECC回路8においてECC 復号されたECC 復号データS10は、検出されたセクタアドレスとシステムコントローラ4によつて設定した目的セクタアドレスとをリングバツフア制御回路11で比較判定して、そのアドレスが一致していればECC 復号データをリングバツフアメモリ10に書き込む。
【0018】
このECC 復号方法では、デイスクアクセスで目的セクタに対してECCのインタリーブ分を見込んで、数セクタ前のセクタを検出した後、EFM+復調された再生データをセクタの先頭にECC 復号用メモリの開始フレームを対応させて書き込み、ECC 復号を実行してリングバツフアメモリ10に復号データを書き込んでいる。
【0019】
【発明が解決しようとする課題】
ここでインターリーブされた符号化データを復号する場合、システムコントローラ4によるデイスクアクセスのためのセクタアドレス認識と、そのセクタのデータが、ECC 復号後に出力されるセクタアドレスとの間にECC 復号に要する時間分のずれが生じる。このずれのために、デイスクアクセスのときにセクタアドレスを認識した時点では該セクタのECC 復号は未だ実行されていないので、ECC 復号データS10が必ずリングバツフアメモリ10に書き込まれるものかどうかを判別することができないという問題があつた。
【0020】
またインタリーブがかかつている符号化データを復号する場合、目的セクタを検出するためのメモリと、ECC 復号に必要なメモリ等の記憶媒体とがそれぞれ別々に必要となるためメモリ容量が比較的大きくなるという問題があつた。
またセクタを認識するために、デインターリーブされたデータを任意のセクタ単位でまず復号用メモリのRAM24に書き込むが、この際光デイスク2より読み出された再生データをメモリの先頭からセクタの先頭を対応させて記憶させるため、メモリの容量はセクタのN倍分用意する必要がある。
【0021】
さらにリングバツフアメモリ10へ書き込む段階では、復号データの先頭が必ずしもセクタの先頭とは限らないのでECC 復号用のメモリ(RAM30)に記憶したECC 復号データS10の中から再び、目的セクタを検出する必要がある。このためにデイスクアクセスの際のセクタアドレスを認識する回路とは別に目的のセクタアドレスのデータであるかを認識するための別の回路を設けなければならず回路構成が複雑になるという問題があつた。
本発明は以上の点を考慮してなされたもので、ECC 復号用のメモリ容量を削減するとともに、目的セクタへのアクセスを迅速になし得るデータ復号装置及びその方法並びにデータ再生装置を提案しようとするものである。
【0022】
【課題を解決するための手段】
かかる課題を解決するため本発明においては、記録媒体に記録された符号化データを復号するデータ復号装置において、記録媒体から読み出した符号化データを記憶するメモリと、メモリに記憶した符号化データを復号処理し、当該復号処理の結果得られる復号データをメモリに記憶させるデータ復号回路と、復号処理途中の符号化データから記録媒体における記録位置を示す位置情報を検出すると共に、当該位置情報に基づいて、当該符号化データから得られる復号データの出力可否を当該符号化データの復号処理途中で判定し、当該判定の結果を示すデータ情報を生成してメモリに記憶させるデータ情報生成回路と、メモリに記憶されたデータ情報に基づいてメモリに記憶された復号データの出力を制御するデータ出力制御回路とを設けるようにした。
【0023】
さらに本発明においては、記録媒体に記録された符号化データを復号するデータ復号方法において、記録媒体から読み出した符号化データメモリに記憶する記憶ステツプと、記メモリに記憶した符号化データを復号処理し、当該復号処理の結果得られる復号データをメモリに記憶するデータ復号ステツプと、復号処理途中の符号化データから記録媒体における記録位置を示す位置情報を検出すると共に、当該位置情報に基づいて、当該符号化データから得られる復号データの出力可否を当該符号化データの復号処理途中で判定し、当該判定の結果を示すデータ情報を生成してメモリに記憶するデータ情報生成ステツプと、メモリに記憶されたデータ情報に基づいて、メモリに記憶された復号データの出力を制御するデータ出力制御ステツプとを設けるようにした。
【0024】
このように、符号化データの復号処理とは独立して、当該符号化データより得られる復号データの出力可否を当該符号化データの復号処理途中で判定しておくと共に、当該判定の結果を示すデータ情報を符号化データ及び複合化データを記憶するメモリに記憶しておくことにより、データ情報を記憶し得るわずかな領域をメモリに別途確保しておくだけで、符号化データの復号処理終了後に復号データの出力可否の判定処理を行う場合と比べて、一段と高速に復号データの出力を開始することができる。
【0025】
さらに本発明においては、記録媒体に記録された符号化データでなる画像信号及び又は音声信号を読み出して再生するデータ再生装置において、記録媒体から読み出した符号化データを記憶するメモリと、メモリに記憶した符号化データを復号処理し、当該復号処理の結果得られる復号データをメモリに記憶させるデータ復号回路と、復号処理途中の符号化データから記録媒体における記録位置を示す位置情報を検出すると共に、当該位置情報に基づいて、当該符号化データから得られる復号データの出力可否を当該符号化データの復号処理途中で判定し、当該判定の結果を示すデータ情報を生成してメモリに記憶させるデータ情報生成回路と、メモリに記憶されたデータ情報に基づいてメモリに記憶された復号データの出力を制御するデータ出力制御回路とを有するデータ復号装置を設けるようにした。
【0026】
このように、符号化データの復号処理とは独立して、当該符号化データより得られる復号データの出力可否を当該符号化データの復号処理途中で判定しておくと共に、当該判定の結果を示すデータ情報を符号化データ及び複合化データを記憶するメモリに記憶しておくことにより、データ情報を記憶し得るわずかな領域をメモリに別途確保しておくだけで、符号化データの復号処理終了後に復号データの出力可否の判定処理を行う場合と比べて、一段と高速に復号データの出力を開始することができる。
【0027】
【発明の実施の形態】
以下図面について、本発明の一実施例を詳述する。
【0028】
(1)第1実施例
(1−1)データ再生装置の全体構成
図52との対応部分に同一符号を付した図1において40は、本発明によるデータ復号装置を用いたデータ再生装置の全体構成を示す。データ再生装置40は、光デイスク2に可変レートで記録されている画像データ及び音声データを光デイスク2に対してレーザ光を照射し、その反射光から記録されているデータを読み出して再生する。ピツクアツプ3で再生された再生信号S1は、システムコントローラ4によつて制御される復調/復号回路系35の復調回路6に送られる。復調回路6は、再生信号S1を復調してセクタ検出回路7に出力する。
【0029】
セクタ検出回路7は、供給されたデータから各セクタ毎に記録されているアドレスを検出し、リングバツフア制御回路11に出力すると共に、後段のECC回路50にセクタ同期をとつた状態でデータを出力する。システムコントローラ4によつて制御されるリングバツフア制御回路11は、リングバツフアメモリ10に対する書き込みと読み出しを制御すると共に、多重化データ分離回路13より出力されるデータを要求するコードリクエスト信号R10を監視する。
ここでセクタ検出回路7は、アドレスを検出することができなかつたり、検出したアドレスが連続していなかつた場合、リングバツフア制御回路11を介してセクタ番号異常信号をトラツクジヤンプ判定回路9に出力する。
【0030】
ECC回路50は、セクタ検出回路7より供給されるデータの誤りを検出し、データに付加されている冗長ビツトを用いて誤り訂正を実行して、FIFO(First In First Out)機能をもつトラツクジヤンプ用のリングバツフアメモリ10に出力する。リングバツフアメモリ10のデータは、多重化データ分離回路13に供給される。このときECC回路50はセクタヘツダデータを検出してセクタ検出回路7を通じてシステムコントローラ4に送出される。
ここでECC回路50は、データの誤りを訂正することができなかつた場合、エラー発生信号をシステムコントローラ4に出力する。
【0031】
トラツクジヤンプ判定回路9は、リングバツフア制御回路11の出力をモニタし、トラツクジヤンプが必要なときトラツクジヤンプ信号JP1をトラツキングサーボ回路22に出力し、ピツクアツプ3の光デイスク2に対する再生位置をトラツクジヤンプさせるようになつている。ここでシステムコントローラ4は、セクタ検出回路7からのセクタ番号異常信号、またはECC回路50からのエラー発生信号を検出すると、トラツクジヤンプ判定回路9よりトラツクジヤンプ信号をトラツキングサーボ回路22に出力してピツクアツプ3の再生位置をトラツクジヤンプさせるようになされている。
【0032】
多重化データ分離回路13へのヘツダ分離回路14は、リングバツフアメモリ10から供給されたデータからパツクヘツダ及びパケツトヘツダを分離して分離回路制御回路15に供給するとともに、時分割多重されたデータをスイツチング回路16の入力端子Gに供給する。スイツチング回路16の出力端子(被切換端子)H1、H2はそれぞれビデオコードバツフア17、オーデイオコードバツフア19の入力端子に接続されている。
ここでスイツチング回路16によつて出力端子がH1に切り換えられると、ビデオコード出力はビデオコードバツフア17を通じてビデオデコーダ18に送出され、出力端子OUT1より出力される。またスイツチング回路16によつて出力端子がH2に切り換えられると、オーデイオコード出力はオーデイオコードバツフア19を通じてオーデイオデコーダ20に送出され、出力端子OUT2より出力される。
【0033】
また、ビデオデコーダ18が発生するコードリクエスト信号R1はビデオコードバツフア17に入力された後、多重化データ分離回路13に入力されている。
同様にオーデイオデコーダ20が発生するコードリクエスト信号R2はオーデイオコードバツフア19に入力された後、多重化データ分離回路13に入力されている。
【0034】
ところで、例えば単純な画面に関するデータ処理が続き、ビデオデコーダ18の単位時間当たりのデータ消費量が少なくなると、リングバツフアメモリ10からの読み出しも少なくなる。この場合、リングバツフアメモリ10の記憶データ量が多くなり、オーバーフローするおそれがある。このため、トラツクジヤンプ判定回路9は、ライトポインタWPおよびリードポインタRPによりリングバツフアメモリ10が現在記憶しているデータ量を算出し、そのデータがあらかじめ設定された所定の基準値を越えた場合、リングバツフアメモリ10がオーバーフローするおそれがあると判断して、トラツキングサーボ回路22にトラツクジヤンプ指令を出力する。
【0035】
また、トラツクジヤンプ判定回路9は、セクタ検出回路7からのセクタ番号異常信号またはECC回路50からのエラー発生信号を検出した場合、ライトポインタWPとリードポインタRPからリングバツフアメモリ10内に残存しているデータ量を求めると共に、現在のトラツク位置から、光デイスク2が1回転する間に(光デイスク2の1回転待ちの間に)、リングバツフアメモリ10から多重化データ分離回路13の読み出しを保証するのに必要なデータ量を求める。
ここでリングバツフアメモリ10の残存データ量が大きい場合、リングバツフアメモリ10から最高の転送レートでデータが読み出されてもリングバツフアメモリ10にはアンダーフローが生じない。このため、トラツクジヤンプ判定回路9はエラー発生位置をピツクアツプ3で再度再生することによりエラー回復が可能であると判断して、トラツキングサーボ回路22にトラツクジヤンプ指令を出力する。
【0036】
(1−2)ECC回路及びECC復号
図2に示すECC回路50は、C1/C2畳み込み・リードソロモン符号(CIRC Plus) によるECC を復号する。ECC回路50は、リングバツフアメモリでなるRAM(Random access Memory)51と、EFM+復調されたデータに対して誤り訂正を実行してECC 復号するECCデコーダ52と、エラー訂正不能フラグ、エラー訂正パターン及びエラー位置を格納するためのエラーレジスタ53とによつて形成される。
【0037】
図2及び図3に示すようにECC復号は、デイスク2から読み出された再生信号S1をRF処理回路42にてRF処理及び2値化処理した後、復調回路44でEFM+の同期パターンを検出する。ここでEFM+の同期パターンが検出されると、CLV制御回路46によつて先ずラフサーボがかけられる。続いて復調回路44でEFM+のシンクパターンが検出されると、PLL(Phase Locked Loop)サーボがかけられる。その後、シンクパターンが数回連続して検出されると、EFM+復調後のデータS2がRMIF(Random Access Memory InterFace)48を通じてECC回路50のRAM51にフレーム単位で書き込まれる。そしてOCTL(出力制御回路)56を通じてリングバツフアメモリ10に出力される。
【0038】
ECC回路50では、RMIF48を通じてRAM51への書き込みアドレスを生成する。ここでRAM51から読み出されるデータはRMIF48を通じてECC制御部54及びECC復号部55に転送される。
ここでエラーが検出され、そのエラーが訂正可能であつた場合、エラー位置とエラーの訂正パターンがECC復号部55からECC制御部54に出力される。この場合、エラー位置とエラーの訂正パターンは、RAM51の各フレーム毎に出力され、エラーレジスタ53(図2)に格納される。エラー訂正は、エラーレジスタ53からエラー位置と訂正パターンとを読み出し、RAM51からエラー位置に対応するエラーデータを読み出して訂正パターンとの排他的論理和(EXclusive OR,EXOR) をとつて再びRAM51に書き戻すことで実行する。
またエラーの訂正不能が検出されたら、そのフレームの訂正不能フラグを後段のECC のイレージヤ訂正に使用するためにエラーレジスタ53に格納する。
【0039】
この結果、エラーレジスタ53にはECC の各系列C11、C2及びC12のそれぞれについてECC を解くために必要なデータとしてエラー位置及び訂正パターンが蓄積される。ここでECC を解くために必要かつ十分なエラー位置及び訂正パターンが揃えられると、ECC制御部54によつてRAM51に格納されているデータとのエラー訂正が実行される。
【0040】
ここでデータの格納アドレスRAは、図4に示すようなRAM51に書き込まれたデータよりC1系列のデータ順Dn、C1符号単位のフレームカウントFnを用いて次式
【数1】

Figure 0003672139
【数2】
Figure 0003672139
【数3】
Figure 0003672139
【数4】
Figure 0003672139
により求められる。
【0041】
ここでRMIF48はRAM51上において、ECC 復号の3系列C11、C2及びC12の結果を、その系列の先頭のデータが含まれるフレームのAA、AB、AC、AD、AE、AF番目のアドレスのいずれかに書き込む。ここで例えば、ECC 結果をAA、AB、ACに書き込むとすると、フレームカウントFnとデータ順AA、AB、ACによりECC 復号の3系列C11、C2及びC12の結果に対するRAM51のメモリアドレスを容易に生成できる。
【0042】
ここでデイスク再生装置40では、リングバツフアメモリ10から、多重化データ分離回路13への読み出しを保証するだけのデータ量を確保する必要があるためRFCKは、デイスクの記録(カツテイング)時のリフアレンス・チヤネル・ビツトレート26.6(Mbit/s)に対して、再生時のチヤネルビツトレートのほうが大きい値となるように設定しておく。
【0043】
図5に示すように、例えばRAM51のフレーム182 に対してEFM+の書き込み(EFM+ Wrire )が実行されると、同時にC11系列のデータを00、02〜A9の順にECCデコーダ52へデータ転送(C11read)する。続いてECCデコーダ52へは、C2系列のデータがデータ転送(C2read)された後、C12系列のデータ転送(C12read)が実行される。そして、各系列C11、C2、C12のECC が実行されたフレーム0はOCTL56にデータ転送(OUT) される。ここでは各系列C11、C2及びC12のECC データ転送を固定間隔で途切れがないように実行する。つまり1168サイクルのRFCK1周期中、コード長が170 〔byte〕のECC は一旦、ECC データが転送されればRFCKの周期内で必ず3回のECC データが転送されるように設定されている。
【0044】
このようにしてRAM51に蓄えられたECC の3系列C11、C2及びC12の各データS2は、RFCKの1周期内でECCデコーダ52へデータが転送される。この際、RAM51内のECC データは、そのまま残される。ここでECCデコーダ52においてECC エラーが検出され、そのECC エラーが訂正可能であつた場合、エラー位置とエラーの訂正パターンとがエラー結果ERとしてエラーレジスタ53に送出される。ECC回路50は、エラーレジスタ53から読み出される訂正パターンと、エラー位置に基づいてRAM51より読み出されるエラーのあるデータとの排他的論理和(EXOR)をとつて、再びRAM51に書き戻すことでエラー訂正を実行する。
ECC回路50からは、復号されたデータS10及びセクタヘツダデータSHとが分離されてそれぞれ、リングバツフアメモリ10及びセクタ検出回路7へ送出される。
【0045】
図6にRAM51上のECC データの各系列C11、C2及びC12の実際のデータ転送、エラー結果出力及びエラー訂正の実行制御タイミングを示す。ECC制御部54は、先ずECC復号部55へECC のC12系列のデータ転送を終了したときのタイミングでC11系列のエラー訂正(C11W)を実行する。次にRAM51から次フレームのC11系列のデータをECCデコーダ52へ転送した後のタイミングで現フレームのC2系列のエラー訂正(C2W)を実行する。さらに現フレームのC12系列のエラー訂正(C12W)を次フレームのC2系列のデータ転送後のタイミングで実行する。
【0046】
このようにECC の各3系列のデータをRAM51からECC復号部55へ連続して転送(C11R、C2R及びC12R)し、引き続いて各3系列のデータのECC エラー訂正(C11W、C2W及びC12W)を実行することにより、ECC データの読み出し及びエラー訂正をそれぞれRFCKの1周期内でなし得る。この結果、ECC の各系列C11、C2及びC12について、RFCKに対して固定間隔で、かつ途切れないようにRAM51よりデータ出力することができる。
【0047】
ここでECC の転送コード長NCYCが170 サイクル、パリテイの転送コード長PCYCがmax 14サイクルのとき、エラー結果がECC レジスタに出力されるタイミングは、次式
【数5】
Figure 0003672139
によつてECC 動作クロツク(ECCK)395 サイクルのタイミングに設定される。
ここでECC回路50のRMIF48からは、C1及びC2系列分のシンボル数のECCKがカウントされ、1RFCK周期内に、C11R、C2R及びC12Rのデータ転送に同期して3回分を必ず出力するようになされている。従つて、C11の結果は、C12のデータ転送中に必ず出力される。また、C2、C12系列の結果についても、C11、C2のデータ転送中に必ず出力することができる。
【0048】
図7にECC回路50のエラー出力のタイミングの様子を示す。ここで(5)式によつて得られる(ECCK)395 サイクル後にECC 結果の出力タイミングとなるOSTT信号が出力されると、OSTT信号より3クロツク後に、OCORRECT=1となり、ODATA[7:0]、OORIG[7:0]にエラーパターンEDX 、エラーポジシヨンEAX が出力される。この例では3つのエラーED0 〜ED2 を出力する場合について記す。因みにECC スタートパルス信号ESTTは、ECCデコード部55がC1及びC2のデータの先頭を認識する信号、OCORRECT信号は、ECC 結果ODATA[7:0]、OORIG[7:0]を取り込むためのストローブ信号である。
エラーパターンEDX 、エラーポジシヨンEAX は、エラーレジスタ53に一旦保持され、その時点のECCデコーダ52へのデータ転送が終わつたところでエラー訂正が実行される。
【0049】
ここで図8に各EFM+、C11、C2、C12、OUT の1フレーム(RFCK)周期、すなわち1168サイクル中のRAM51のアクセスに要するECC 動作クロツク(ECCK)のクロツク数を示す。EFM+は、セクタシンクパターン書き込み1サイクル及び、EFM+復調出力に170 ±αサイクルを要する。ECC C11系列は、C11の読み出しに170 サイクル、C11のエラー訂正に8+8 サイクル及び、C11の書き込みに1サイクルを要し、SUB においてセクタシンクパターン読み出し1サイクル、ヘツダデータ読み出し20サイクル及びセクタ情報書き込みとして1+(14)サイクルを要する。
【0050】
さらにECC のC2系列は、C2の読み出しに170 サイクル、C2のエラー訂正に14+14 サイクル及び、C2の書き込みに1サイクルを要する。またECC C12系列は、C12の読み出しに170 サイクル、C12のエラー訂正に8+8 サイクル及び、C12の書き込みに1サイクルを要する。さらにECC 復号の終了を示すOUT をセクタ情報の読み出しに1サイクル、C11の訂正結果読み出しに1サイクル、C2のエラー訂正結果読み出しに1サイクル、C12の訂正結果読み出しに1サイクル及び、OUT に170 サイクルを要する。これによりC11、C2、C12、OUT のRAM51に対するアクセスは合計948 サイクルになる。
【0051】
ヘツダデータの読み出し等を実行するSUB は、セクタ検出回路7へのシンクコード(4バイト)+ヘツダデータ(16バイト)の転送で、セクタを検出するためのセクタ検出回路7では、ヘツダデータの中からセクタアドレスを抜き出し、CRC チエツク後、フライホイール(FW)を掛けて、システムコントローラに転送する。セクタヘツダデータSHは、図6に示すC11W後のタイミング(SUB) にて、C11系列のみECCデコードされたデータから抜き出すことにより、セクタ検出回路8を通してシステムコントローラ4はセクタアドレスを取り出すことでデイスクの位置情報をC2、C12系列のECC 復号にかかる時間だけ早く取り出す。
フライホイールは、数回シンクが未検出となつてもロツク状態を保持するような保護及び内挿動作のことである。システムコントローラ4では、目的セクタであるか否かを比較判定する。フライホイールは、RF信号から取り出した2値化信号のシンクパターンを数回連続して検出し、そのときメインシンクパターン及びサブシンクパターンを数回連続して検出すると、FWロツクする。
【0052】
また、メモリアドレスとRAM51に対するライト及びリードについてのフレーム単位動作(JOB )の実行条件を次式
【数6】
Figure 0003672139
【数7】
Figure 0003672139
【数8】
Figure 0003672139
【数9】
Figure 0003672139
のように設定する。ここでJOBXXXに対するフレームカウントをFn(XXX )としたとき、カウントは、フレーム単位のXXX に対するJOB が全て終了すると+1インクリメントされる。なお、SUB はC11に含める。
【0053】
EFM+において、シンクを数回連続して検出するとシンクパターンFWロツクとなる。このときメモリライトイネーブル信号MWENS は、MWENS =1となり、EFM+復調データの書き込みが始まる。また、シンクを数回連続して検出できない時には、シンクパターンFWアンロツクとなり、メモリライトイネーブル信号はMWENS =0となつてEFM+の書き込みが禁止され、各フレームカウンタは0にリセツトされる。ここでMWENS は、シンクパターンFWがロツクしているときに1となる信号で、MWENS=1のときにメモリへの書き込みを実行するメモリライトイネーブル信号である。
【0054】
ここで図9に、例えば、復号データの出力OUT はC11Mの4周期に1度リクエストOUTREQを出すとするとき、それぞれのリクエストに対して、OUTREQ、EFMREQ、ECCREQの順に、アクセス獲得を優先させた時のRAM51に対するアクセスの獲得タイミングを示す。ここではXXX ACK(ACKnowledge)=1で所定のJOB が実行される。 ECCデータの出力は、RFCKの立ち上がりで起動され、JOB 実行条件に基づいて実行される。ECC の各系列C11、C2及びC12は、SUB を含めてC11R−C2W−C2R−C12W−C12R−C11W−SUB の順に実行される。
【0055】
従つて、ECC の各系列C11、C2及びC12並びにOUT は、一度シンクFWがロツクし、MWENS =1の状態が続き、各JOB の実行条件が成立し続ければFn(C11)〜Fn(OUT)のカウント値の差分値は、RFCK周期で固定値となる。
ところで、本発明が適用されるデータ復号装置40では、リングバツフアメモリ10から、多重化データ分離回路13への読み出しを保証するだけのデータ量を確保する必要がある。従つてRFCKは、デイスクの記録(カツテイング)時のリフアレンス・チヤネル・ビツトレート26.6(Mbit/s)に対して、再生時のチヤネルビツトレートのほうが大きい値となるように設定する。
【0056】
(1−3)セクタ検出
図10〜図12を用いて光デイスク2の目的セクタの検出及びセクタ情報の生成について説明する。まず図10(A)及び(B)には光デイスク2より読み出される再生データのフレーム構成及びシンクワードの具体的な内容を示す。図10(B)に示すようにシンクワードは、アデイシヨナルシンク(Additional Sync)S1、C1シンク(C1 Sync)S2及びセクタシンク(Sector Sync)S3からなつている。図11は、デインタリーブ後のセクタフオーマツトを示す。
セクタ検出回路7 によつてシンクパターン(S1〜S3)を検出すると、シンクパターンFWロツクし、続いてセクタヘツダSH(HEADER)においてセクタFWした後、さらにセクタアドレスSA(ADRESS)を検出してセクタアドレスFWロツクする。
【0057】
次に図12に示すセクタ情報の各ビツトBITデータについて説明する。先ず、ビツト7はセクタシンクパターンS3の有無の検出結果を示すもので、セクタシンクパターンS3が検出されたフレームで1がセツトされる。ビツト6はシンクコードの有無の検出結果を示し、セクタ検出回路7でセクタの頭のシンクコードの位置に”HDCD”という特定コードが検出できたフレームで"1" をセツトする。ビツト5はセクタシンクの認識を示すもので、セクタシンクパターンS3とセクタシンクコードSCの情報を用いて最終的にセクタシンクであるとセクタ検出回路7で見なしたフレームを1とするもので補間されたセクタシンクになる。
【0058】
次にビツト4はCRC チエツク結果を示すもので、毎セクタCRC の演算を実行した結果、エラーが検出されなかつた場合、"0" を書き込む。
ビツト3はC1系列のECC 復号結果を示すもので、エラーが検出されなければ"0" に設定される。これはRMIF48からのC11系列のECC 復号の結果、データが訂正不能であるか否かを示すフラグをセクタ検出回路7で取り込み、このビツトに書き込んでいるものである。
【0059】
ビツト2はセクタアドレスSAの連続性を示すもので、現在、読み出されているセクタアドレス(Raw Sector Adrress,RSA)とセクタ検出回路7に保管されているセクタアドレス(Current Sector Adrress,CSA)とが等しいときに(実際にはRSAと前のセクタのCSA+1とを比較している。)、セクタに連続性があると判断し、BIT2=1 とする。
ビツト1は開始のセクタアドレスBSAの検出結果を示すもので、アドレスBSAを検出すると"1" に設定される。そしてビツト0は終了のセクタアドレスESAの検出結果を示すもので、アドレスESAを検出すると"1" に設定される。
【0060】
実際のセクタ検出は図13(A)に示すように、システムコントローラ4によつてセクタ検出回路7内のレジスタ(図示せず)へBSA設定モードSACT=1(後述する図19に示す)を設定すると共に、目的とするセクタの先頭のアドレスBSA及びセクタの最後のアドレスESAとを設定し、セクタ検出回路7内のレジスタ(図示せず)において、再生データから抜き出し、セクタアドレスFWロツクしているセクタアドレスとを比較する。この比較結果により検出したセクタアドレスが目的セクタのものであることが確認されると、この比較結果はセクタ情報(ビツト0、1)としてRAM51に書き戻される。
【0061】
ここで、SACT=1の場合、フレームMから出力可能になる(図18)。ただし、セクタアドレスによりデスクランブルの初期化が行なわれる場合は、それ以前にデスクランブルのための出力のセクタアドレスが抜き出せているのが条件となる。出力セクタアドレスは、セクタ情報のアドレス連続性により、保護された出力セクタアドレスを使用する。
【0062】
さらにこのセクタ情報は、ECC回路50によるECC 復号の終了したECC 復号データS10とともにOCTL56に送出され、ECC 復号データのデータ出力OUT の制御に用いられる。このときシステムコントローラ4は、ECC のインターリーブを見込んで、デイスクアクセス位置を目的とする光デイスク2上のセクタよりも前方の位置にトラツクジヤンプさせる。
また、このときシステムコントローラ4によつて目的とするセクタを特定しなければ予め、SACT=0に設定しておくことで、ECC 復号データを読み出せる時点からデータ出力することができる。
【0063】
セクタ情報のビツト7のセクタシンクパターンS3の有無の検出結果は、EFM+復調回路44におけるEFM+復調の際、再生データより検出されるEFM+復調データとともにフレームごとにRAM51に書き込まれ、ヘツダデータSHとともにセクタ検出回路7に転送される。セクタ検出回路7では、各フレームでセクタシンクパターンS3の有無の検出結果により光デイスク2よりセクタを認識する。ここでセクタ検出回路7において光デイスク2のセクタが認識されると、該セクタのヘツダデータSHの中からセクタアドレスSAが抜き出される。
【0064】
セクタ検出回路7では、ヘツダデータSH内のCRC チエツクの結果、アドレスの連続性、セクタフレームのC1系列のECC 復号結果等を適応的に用いてセクタアドレスSAに対してフライホイールFWがかけられる。システムコントローラ4では、フライホイールFWがかけられ保護されたセクタアドレスFWロツク状態であるセクタアドレスSAを取り出し、光デイスク2の位置情報ADD として用いる。
【0065】
セクタ情報の内、ビツト0及び1はOCTL56で参照され、セクタ情報のビツト1が"1" でビツト0が"0" のとき、すなわちセクタアドレスBSAからESAまでのセクタが検出されている場合はシステムコントローラ4の目的とするセクタのデータを出力できるように設定している。ここで、セクタアドレスESAを指定しない場合、ビツト0は、"0" を保持する。この間、ECC 復号データはリングバツフアメモリ10に出力され続けることになる。ここで例えば、OCTL56内に設けられたデータ出力コントロールレジスタ(図示せず)を用いてビツト0及び1の状態に関係なくデータ出力を制御するようにしてもよい。
【0066】
ここで、図13(B)に示すように、開始のセクタアドレスBSA及び終了のセクタアドレスESAの設定はトラツクジヤンプするとき以外にも、トラツクジヤンプ後にシステムコントローラ4から再設定することも可能である。例えば、早送り操作時に要らないデータを読み飛ばすとき等、デイスク上のアクセス位置が近接している場合は、現在のセクタアドレスSAを認識してからセクタアドレスBSA及び又はESAを再設定する。これによりトラツクジヤンプをせずともセクタアドレスBSAからのデータ出力ができる。
【0067】
ここで図14にシンクパターン(S1〜S3)がロツクしてからセクタアドレスSAが読めるようになり、データが出力されるまでの時間関係を示す。システムコントローラ4によりデイスクアクセス位置をトラツクジヤンプ後、EFM+復調が開始されてからシンクパターン(S1〜S3)がロツクすると、シンクパターンロツクSYLKがSYLK=1となる。続いて目的セクタのセクタアドレスSAが(SALK=1において)フライホイールFWロツクする。続いてECC 復号のC11実行フレームが170 以上となるとSTOK=1になり、それ以降のデータはECC 復号後にデータの出力OUT が可能となる。
実際にはSTOK= 1のタイミングよりさらにジツタ分も含めたC2系列のECC 復号分、約173 フレームを実行した後、開始セクタアドレスBSAが検出されたタイミングでECC 復号データの有効データを次段のリングバツフアメモリ10に出力させるデータストローブ信号DSTBが、DSTB= 1となり、ECC 復号データS10の有効データの出力が開始される。
【0068】
以上の構成において、実際のセクタ検出及びデータ出力は、EFM+復号データを書き込み可能にするイネーブル信号+LATCHED MWENが"1" となつた状態でまず図15に矢印で示すC11実行後のタイミングでフレームのセクタ情報のビツト7のセクタシンクパターンの有無とシンクコードSC、ヘツダデータSHのデータをセクタ検出回路7で解析してセクタアドレスSAの読み取り動作を開始する。ここでリードフレームクロツクRFCKの周期は次式、
【数10】
Figure 0003672139
によつて求められる。
【0069】
続いて図16に示すように、セクタの先頭となるフレームが検出され(3フレーム)、例えばセクタ情報のビツト6及び7が"1" となるセクタ確定条件が満たされるとセクタFWがロツクする。さらに、セクタアドレスの連続性が正しいと判断されると、セクタアドレスSA確定条件が満たされ、セクタアドレスFWがロツクする(3フレーム)。この結果、(さらにジツタ等のマージン約1フレーム分を考慮した)図中矢印で示すタイミングでSALK=1となる。システムコントローラ4では、SALK=1であればFWがロツクしたセクタアドレスSAを読み出すことができる。このときのECC 復号のC11系列のフレームカウントFn(C11) 、Nは次式、
【数11】
Figure 0003672139
によつて表される。
【0070】
続いて図17に示すように、C11系列のECC 復号の170 フレーム以降は、ECC 復号の各C11、C2及びC12系列全てが実行され、かつ出力されるフレームであるとRMIF48で判断されると、STOK= 1となり、出力可能であることを、SUBのタイミングでセクタ検出回路7に知らせる。
【0071】
続いて図18に示すように、セクタの頭のフレームMで開始セクタアドレスBSAが検出されたときにSTOK=1の場合、フレームMは将来、ECC 復号が実行されて出力可能なのでセクタ情報のビツト1を"1" すなわちセクタの先頭アドレスであるセクタアドレスBSAが検出されると"1" となる信号ISTTをISTT= 1にセツトし、セクタ情報のビツト7〜0がSUBの終わりのタイミングでRMIF48よりRAM51へ書き戻される。このときもし、開始セクタアドレスBSAの検出時に、STOK=0のときは、エラーとして、システムコントローラ4は、例えば前回よりも前方の位置から光デイスク2に対して再アクセスを実行する。
【0072】
ここで図19に示すように、セクタアドレスBSAが設定され、SACT=1になつたとき、データストローブ信号DSTB=1となりフレームMから順次、ECC 復号データFn(OUT) が出力可能になる(図中、矢印で示す)。ただし、セクタアドレスSAによりデスクランブルの初期化が実行される場合は、それ以前に、デスクランブルのための出力セクタアドレスSAが抜き出せていることが条件となる。出力セクタアドレスSAは、セクタ情報のアドレス連続性により保護された出力セクタアドレスSAを用いる。
【0073】
また図20に示すように、セクタアドレスBSA及びESAを設定しないSACT=0の場合、170 番目のフレーム以降のセクタの頭から出力可能になる(図中、矢印で示す)。しかし、ここで170 番目のフレームから出力できないのは、デスクランブルのための出力セクタアドレスSAが必要となるためである。このため最大1セクタ分、出力セクタアドレスSAが読み出されるのを待機する。そして出力セクタアドレスSAによりデスクランブルの初期化が実行されると、DSTB=1となりリングバツフアメモリ10への出力が開始される。
このようにセクタ情報によりセクタ検出し、目的セクタのデータの出力を制御することができる。かくしてRAM51内に僅かなセクタ情報用のメモリ領域を設定することでECC 復号に必要なメモリを増やすことなく、セクタ情報を用いて目的セクタデータに対して確実にアクセスしてデータ出力を制御することができる。
【0074】
以上の構成によれば、セクタ検出に用いるセクタ情報を格納する僅かな領域をECC回路50内の復号用のRAM51内に設けることにより、ECC回路50において復号する符号化データにインタリーブがかかつている場合でもセクタ検出用のメモリを別に設けることなく、ほぼECC 復号に用いるだけのメモリ容量でECC 復号が実行できる。
【0075】
さらに上述の実施例によれば、セクタ検出回路7において生成するセクタ情報及びRMIF48により生成するSTOK信号により、ECC 復号のC11系列を終了したタイミングで次段のリングバツフアメモリ10への出力の可否を判定することができる。これによりシステムコントローラ4によるデイスクアクセスのためのセクタアドレスSAを認識するタイミングで直ちにセクタデータを次段のリングバツフアメモリ10へ書き込むことが可能か否かを判断することができ、セクタデータに対するアクセスが高速かつ確実になし得る。
【0076】
さらに上述の実施例によれば、システムコントローラ4によつてデイスクアクセスするためのセクタアドレスSAを認識するタイミングOCCRRECT=1(図7)で次段のリングバツフアメモリ10へデータ出力することが可能か否かを判定することができるので、RAM51に格納されるECC 復号後のデータからセクタアドレスSAを検出するための回路を新たに設ける必要がなくなり、全体の回路構成を簡略化し得る。
【0077】
(2)第2実施例
(2−1)記録データフオーマツト
図21〜図24は第2実施例における記録データフオーマツトを示し、この実施例においては、1クラスタ(32kバイト)を1単位として、データが記録されている。このクラスタの構成を以下に詳述する。
【0078】
すなわち、2kバイト(2060バイト)のデータが、1セクタ分のデータとして抽出され、これに図21に示すように、4バイトのオーバヘツドが付加される。このオーバヘツドには、エラー検出のためのエラー検出符号(EDC(Error
Detection Code))などが含まれている。
【0079】
この合計2064(=2060+4)バイトの1セクタ分のデータが、図22に示すように、12×172(=2064)バイトのデータとされる。そして、この1セクタ分のデータが16個集められ、192(=12×16)×172バイトのデータとされる。この192×172バイトのデータに対して、16バイトの外符号(PO)が、縦(列)方向に各バイト毎にパリテイとして付加される。また、208(=192+16)×172バイトのデータとPOパリテイに対して、10バイトの内符号(PI)が、横(行)方向に各バイト毎にパリテイとして付加される。
【0080】
さらに、このようにして208(=192+16)×182(=172+10)バイトにブロツク化されたデータのうち、16×182バイトの外符号(PO)の行は、16個の1×182バイトの行に区分され、図23に示すように、12×182バイトの番号0〜番号15の16個のセクタデータの下に1行ずつ挿入されて、インターリーブされる。そして、13(=12+1)×182バイトのデータが1セクタのデータとされる。
【0081】
さらに、図23に示す208×182バイトのデータは、図24に示すように、縦方向に2分割され、1フレームを91バイトのデータで構成して、208×2フレームのデータとされる。91バイトのフレームデータの先頭には、さらに2バイトのフレーム同期信号(FS)が付加される。その結果、図24に示すように、1フレームのデータは合計93バイトのデータとなり、合計208×(93×2)バイトのブロツクのデータとなる。これが、1クラスタ(1ECCブロツク)分のデータとなる。そのオーバヘツド部分を除いた実データ部の大きさは2kバイト(=2048×16/1024kバイト)となる。
【0082】
すなわち、この例の場合、1クラスタ(1ECCブロツク)が16セクタより構成され、1セクタが24フレームにより構成される。このようなデータが光デイスク2にクラスタ単位で記録されていることになる。
【0083】
(2−2)データ再生装置及びECC復号
ここで図25は、第1実施例について上述したデータ再生装置40に第2実施例の記録データフオーマツトを適用する場合の、復調回路系35を示し、復調回路6(RF処理回路130、EFM+復調回路131)、セクタ検出回路7(SBCD回路134、RAMコントローラ135、RAM137)、およびECC回路50(RAMコントローラ135、ECC制御回路136、RAM137、ECCコア回路138、OCTL回路139)、並びにその周辺の回路の詳細な構成である。
【0084】
この図において、RF処理回路130は、図1に示すピツクアツプ3からのRF信号の入力を受け、この信号を2値化した後、EFM+復調回路131に出力する。EFM+復調回路131は、入力された信号に対してEFM+復調を施すと共に、同期パターンの検出を行う。CLV制御回路132は、EFM+復調回路131が出力する同期パターンに基づき、ドライブインタフエース(以下、ドライブIFと略記する)133を制御する。SBCD(サブコード)回路134はEFM+復調回路131の出力からセクタの検出を行う。RAMコントローラ135は図3のRMIF48に対応し、RAM137の読み書きを制御する。
【0085】
RAM137は、ECC制御回路136がエラー訂正処理などを実行する際に、データ等を一時的に格納するようになされている。ECCコア回路138は図3のECC復号部55に対応し、リードソロモン符号(PIとPO)を用いて、後述するECA、ECD、SGLGなどを生成し、ECC制御回路136に出力する。ECC制御回路136は、ECCコア回路138から供給されるECA、ECD、SFLGなどを用いて、実際にエラー訂正を行う。OCTL回路139は、デスクランブル処理、EDCチエツク、または、出力データの制御等を行う。また、ホストCPU140は図1のシステムコントローラ4に対応し、装置の各部の制御を行うようになれている。
【0086】
光デイスク2(図1)からの再生信号は、RF処理回路130において2値化信号に変換される。そして、2値化された信号から、EFM+復調回路131により同期パターンが検出される。そして、CLV制御回路132において、この同期パターンに基づき、ラフサーボがかけられ、その結果、データ中のシンクコード(Sync Code )(図26におけるSY0〜SY7)がさらに検出され、ドライブインタフエース133を介して光デイスク2の回転に対して、PLL(Phase Locked Loop )による位相サーボがかけられる。
【0087】
図26に、光デイスク2の物理セクタの構成例を示す。この図に示すように、物理セクタは、横方向に2つのシンクフレーム(Sync frame)、縦方向に13個のシンクフレーム、合計で26個のシンクフレームにより構成されている。各シンクフレームは32チヤンネルビツト(変調される前のデータビツトで表現すると16ビツト(=2バイト))のシンクコード(SY0〜SY7)と、1456チヤンネルビツト(変調される前のデータビツトで表現すると728ビツト(=91バイト))のデータ部から構成される。先頭のシンクフレームのデータ部には、ID情報(セクタ番号)とIED(IDに対するエラー検出符号)情報の他、メインデータ(main data )が格納されている。
【0088】
32チヤンネルビツトのシンクパターンは、データ中には表れないユニークなパターンとして、その下位22ビツトが、「0001000000000000010001」のように設定されている。
【0089】
図26の左側の各シンクフレームのデータ部には、メインデータが記録され、左側の最後のシンクフレームのデータ部には、PO情報(パリテイ)が記録されている。図26の右側のシンクフレームには、メインデータとPI情報が記録され、右側のシンクフレームの最後から2番目のシンクフレームには、EDC情報とPI情報(パリテイ)が記録され、最後のシンクフレームには、PO情報とPI情報が記録されている。
【0090】
図27は各セクタのPI情報とPO情報を除くデータの詳細を示し、ID(セクタ番号)(4バイト)、IED(IDに対するエラー検出符号(2バイト))、RSV(保留領域)(6バイト)、メインデータおよび、EDC(4バイト)により1セクタのデータが構成されている。なお、メインデータにはスクランブル処理が施されている。
【0091】
そして、このようなデータセクタが16セクタ分集められ、図22に示すように、16バイトのPO符号と10バイトのPI符号とが付加される。さらに、PO符号を含む16行が1データセクタ毎に配置されるようにインターリーブされる。そして、得られたデータは、図24に示すように、シンクコードSYx(x=0、1、2、……、7)によつて表わされるFS(フレーム同期)コードが付加され、EFM+変調される。これによりECCブロツク内の物理セクタは、図26に示すように、13×2シンクフレームにより構成される。1ECCブロツクは16セクタにより構成されるので、物理セクタアドレスの下位4ビツトは0000〜1111のいずれかとなる。その結果、ECCブロツクの先頭のセクタの物理アドレスは下位4ビツトが0000となる。
【0092】
なお、メインデータに対するスクランブル処理は、物理セクタアドレスの下位4ビツト〜7ビツトにより指定される値を初期値として生成されたスクランブルデータと、メインデータとの間で排他的論理和を演算することにより実行される。
【0093】
なお、この明細書においては、各種の信号に各種の記号が用いられているので、ここで、それらをまとめて説明する。
【0094】
block−top(Block Top )
SYLK信号がHの状態で、セクタの先頭からHとなる信号である。
C11M(Clock 11.2896 MHz)
システムの動作クロツクであり、その周波数は11.2896〔MHz〕である。
DSTB(Data strobe )
ストリームデータSDとしてメインデータが出力されているとき、Hとなるデータストローブ信号である。
ECA(ERR Correction Address)
エラーのある位置(アドレス)を示すエラー訂正アドレス信号である。
ECCK(ECC Clock )
ECCコア回路138の動作クロツクである。
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 )
エラー訂正のためRAM137から読み出され、ECC制御回路36に転送されるデータである。
ESTB(Error Strobe)
エラー訂正結果ERの転送時にHとなるエラー訂正結果ストローブ信号である。
ESTT(ECC Start)
入力データの先頭を示すコントローラ信号である。
EFM+W Frame(EFM+Write Frame Counter )
RAM137へ書き込むメインフレームを表す信号である。
HDEN(Header Data Enable)
セクタヘツダデータのストローブ信号である。
main−FMSY(main Frame Sync )
各PI行のメインシンク(先頭のシンク)でHとなる信号である。
MWEN(Memory Write Enable )
EFM+復調データのRAM137への書き込みイネーブル信号である。
MWRQ(EFM Write Request)
EFM+復調データのRAM137への書き込みリクエスト信号である。
OUTE(Output Flag )
補間フラグ(出力フラグ)である。
OSTT(ECC Output Start )
所定の符号系列におけるESTTから477(ECCK)後に遅延して出力される信号である。
RDT(Read Data )
RAM137のリードデータバス上のデータである。
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回路134に対して転送するIDとIEDを含むデータである。
SYLK(Sync Lock )
シンクコードが連続して3回検出されたとき、Hとなる信号である。
SYUL(Sync Unlock )
SYLK信号の逆極性の信号である。
WDT(Write Data)
RAM137のライトデータバス上のデータである。
XHWE(Sector Header Write Enable)
SBCD回路134からRAM137へ書き込むセクタ情報の出力イネーブル信号である。
【0095】
EFM+復調回路131(図25)により復調処理が施されたデータは、RAMコントローラ135の制御の下、図28に示すように、RAM137に格納される。この図28は、1ECCブロツクについて示している。RAM137に格納されているデータを読み出す場合、RAMコントローラ35は、図28に示す行および列の値を指定することにより、所望のデータを取得することができる。すなわち、図28において、第M行目の第Nバイト目にあるデータxは、2値(M,N)を指定することによりRAM137から読み出すことができる。
【0096】
ここで光デイスク2に記録されているデータセクタの先頭が、SBCD回路134において、シンクコードの種類と連続性に基づき認識されると、EFM+復調回路131により復調されたデータは、先頭データから順にRAM137に格納される。図29は、このとき関係する回路の主要部分の信号のタイミングを示している。
【0097】
すなわち、EFM+復調回路131は、図30に示すように、シンクのロツク状態を検出している。最初にステツプSP1において、図26に示すシンクコード(SY0〜SY7)を各シンクフレームにおいて検出することができたか否かを判定する。シンクコードを検出することができた場合においては、ステツプSP2に進み、変数SClockを1だけインクリメントするとともに、変数SCunlockを0にセツトする。この変数SClockは、シンクコードが連続して検出されたときの回数を表し、変数SCunlockは、シンクが連続して検出されなかつたときの回数を表す。
【0098】
次に、ステツプSP3において、変数SClockが3に等しいか否かを判定する。すなわち、シンクが連続して3回検出されたか否かを判定する。変数SClockが3より小さい場合においては、ステツプSP1に戻り、それ以降の処理を繰り返し実行する。ステツプSP3において、変数SClockが3に等しいと判定された場合、ロツク状態になつたものとして、ステツプSP4において、SYLK信号をHに設定する。そして、ステツプSP5において、さらに連続して3回シンクが検出されたか否かを判定するために、変数SClockを2に設定し、ステツプSP1に戻り、それ以降の処理を繰り返し実行する。
【0099】
これに対して、ステツプSP1において、シンクコードが検出されなかつたと判定された場合、ステツプSP6に進み、変数SCunlockを1だけインクリメントするとともに、変数SClockを0に設定する。ステツプSP7においては、変数SCunlockが3に等しいか否かを判定する。すなわち、シンクコードが3回連続して検出されなかつたか否かを判定する。連続して検出されなかつた回数が2以下である場合には、ステツプSP1に戻り、それ以降の処理を繰り返し実行する。連続して3回シンクが検出されなかつた場合においては、ステツプSP8に進み、SYLK信号をLに設定する。そして、ステツプSP9に進み、変数SCunlockを2に設定して、次のシンクコードの発生タイミングにおいても、シンクコードが検出されなかつたとき、SYLK信号をLに設定したままとすることができるように、変数SCunlockを2に設定し、ステツプSP1に戻る。
【0100】
以上のようにして、EFM+復調回路131は、シンクコードを検出し、ロツク状態になつているか否かを常に監視している。
【0101】
なお、上述の実施例においては、検出回数をそれぞれ3回としたが、基準となる連続検出回数NLOCKと、不連続の検出回数NUNLOCKは、それぞれ任意の値とすることが可能である。
【0102】
このようにEFM+復調回路131は、SYLK信号がHになつたとき、すなわち、ロツク状態になつたとき、図31のフローチヤートに示す処理を実行する。すなわち、ステツプSP21において、各セクタの先頭に配置されているシンクコードSY0が検出されたか否かを判定する。シンクコードSY0が検出された場合においては、ステツプSP22に進み、セクタの先頭であることを表すSCSY信号を所定時間Hに設定する。次にステツプSP23に進み、SYLK信号がLに変化したか否かを判定し、Lでなければ(Hのままであれば)ステツプSP21に戻り、同様の処理を繰り返し実行する。ステツプSP21において、シンクコードSY0が検出されていないと判定された場合においては、ステツプSP22の処理はスキツプされる。
【0103】
以上のようにして、EFM+復調回路131は、各セクタの先頭において、図29(A)に示すSCSY信号を発生する。
【0104】
さらに、EFM+復調回路131は、SYLK信号がHになつたとき、図32のフローチヤートに示す処理を実行する。最初に、ステツプSP31において、メインフレーム(以下、図26の横方向の2個のシンクフレームを、まとめて1個のメインフレームと称する)のシンクコード(以下、図26のシンクコードのうち、左側に示すシンクコードをメインフレームシンクと称する)を検出したか否かを判定する。メインフレームシンクを検出した場合においては、ステツプSP32に進み、EFM+復調回路131は図29(B)に示すmain−FMSY信号を発生する。ステツプSP31において、メインフレームシンクが検出されていないと判定された場合においては、ステツプSP32の処理はスキツプされる。
【0105】
次にステツプSP33に進み、SYLK信号がLに変化したか否かが判定され、変化していない場合(Hのままである場合)、ステツプSP31に戻り、それ以降の処理を繰り返し実行する。SYLK信号がLに変化した場合においては、main−FMSY信号の生成処理は中止される。
【0106】
このようにして、EFM+復調回路131は、メインフレームシンクの周期(図26における水平方向の2つのシンクフレームの周期)毎に、main−FMSY信号を発生する。
【0107】
RAMコントローラ135は、EFM+復調回路131よりSCSY信号が入力されたとき、図29(D)に示すように、MWEN信号をHに設定し、RAM137に対する、いま検出されているセクタのデータの書き込み処理を開始させる。すなわち、このときRAMコントローラ135は、図29(E)に示すように、内蔵するEFM+W Frameカウンタ(図示せず)で図26に示すメインフレームをカウントする。このカウント値は、図26に示すメインフレームの上から順番の番号を表すことになる。
【0108】
また、RAMコントローラ135は、図29(F)に示すように、内蔵するPI1 Frameカウンタ(図示せず)により、RAM137に伝送するメインフレームの番号を管理する。
【0109】
すなわち、図26に示す最初のメインフレーム(番号0のメインフレーム(図26における最上行のメインフレーム))のデータがRAM137に書き込まれたとき、ECC制御回路136は、RAMコントローラ135の制御の下に、そのメインフレームのデータの供給を受ける。そして、このデータを、ECCコア回路138に転送し、誤り訂正処理を実行させる。すなわち、PI1処理を実行させる。PI1訂正後のデータは、再びRAM137に書き戻される。
【0110】
RAMコントローラ135は、このPI1訂正(PI訂正の1回目)の実行の後、RAM137に記憶されている番号0のメインフレームのデータの中から、IDとIEDデータ(SUB)を読み出し、図29(C)の番号0で示すSUB信号のタイミングにおいて、この番号0のメインフレームのIDとIEDデータをデータバスを介してSBCD回路134に転送させる。図26に示すように、IDとIEDデータは、各セクタの先頭にのみ配置されているため、この転送処理は、番号0のメインフレームにおいてのみ実行される。SBCD回路134においては、このようにして、物理セクタのアドレス(ID)が検出される。
【0111】
そして、検出された物理セクタのアドレスの下位4ビツトにより、ECCブロツクの先頭セクタが検出される。
【0112】
図33は、以上のIDの転送に続いてblock−topを検出する場合のタイミング図を示しており、また、図34はblock−top検出以降の処理を示しており、これらの図の動作については後述する。
【0113】
図35は、上述したIDの転送のより詳細なタイミングを示すタイミング図である。図35(A)に示すように、RAMコントローラ135は、SBCD回路134に対して、RAM137からIDとIEDデータが読み出されるタイミングを表すHDEN信号を出力する。このとき、RAM137から、SBCD回路134に対して、第7ビツトから第0ビツトまでの合計8ビツトのリードデータRDT(図35(C))として、IDデータ(4バイト)とIEDデータ(2バイト)が、11.2896〔MHz〕の周波数のクロツクC11M(図35(F))に同期して転送される。このIDデータとIEDデータは、PI1訂正の結果、訂正不能の状態(この場合、SFLG信号はHとなる)にはなつていないことが、ECCコア回路138からECC制御回路136に供給されているSFLG信号(=1)により表されている。SBCD回路134は、ID(セククアドレス)の供給を受けると、そのID(セクタ)に対応するセクタ情報SIを、ホストCPU140からの指令(補間フラグの生成モード、スタートセクタ、エンドセクタなどの指令)に対応して生成する。例えば、ホストCPU140から出力が指定されたIDのセクタには、セクタ情報のビツト5に1を設定し、ビツト4に0を設定する。
【0114】
図36は、セクタ情報(SI)の構成を示している。同図に示すように、セクタ情報の各ビツトは、以下に示す情報を有している。
【0115】
ビツト7:補間フラグ(OUTF)生成モードの設定(1:補間フラグ生成モード)
ビツト6:ECCブロツクの先頭セクタ(物理セクタアドレスの下位4ビツトが0である場合に1とされる)(1:先頭セクタ)
ビツト5:スタートセクタ(物理セクタアドレスがホストCPU140で指定されたスタートセクタアドレスと一致した場合は1とされる)(1:スタートセクタ)
ビツト4:エンドセクタ(物理セクタアドレスがホストCPU140で指定されたエンドセクタアドレスと一致した場合に1とされる)(1:エンドセクタ)
ビツト3:デスクランブル初期化アドレスのビツト3(物理セクタアドレスの第7ビツト)
ビツト2:デスクランブル初期化アドレスのビツト2(物理セクタアドレスの第6ビツト)
ビツト1:デスクランブル初期化アドレスのビツト1(物理セクタアドレスの第5ビツト)
ビツト0:デスクランブル初期化アドレスのビツト0(物理セクタアドレスの第4ビツト)
【0116】
この4バイトのIDと2バイトのIEDを用いて、図38〜図40を参照して後述するようにチエツク処理が行われた後、図35(D)に示すXHWE信号が、ECC制御回路136でLにされる。このとき、SBCD回路134からRAM137に、8ビツトのライトデータWDTとしてセクタ情報SIが転送され、書き込まれる。16セクタ分のセクタ情報は、図28に示すように、上方の16個のPI行に対応するように格納される。従つて、所定のPI行の行数を指定することにより、対応するセクタ情報を得ることができる。
【0117】
実際のセクタ検出は図37(A)に示すように、ホストCPU140によつてSBCD回路134内のレジスタ(図示せず)へBSA設定モードを設定すると共に、目的とするセクタの先頭のアドレスBSA及びセクタの最後のアドレスESAとを設定し、SBCD回路134内のレジスタ(図示せず)において、再生データから抜き出し、セクタアドレスFWロツクしているセクタアドレスとを比較する。この比較結果により検出したセクタアドレスが目的セクタのものであることが確認されると、この比較結果はセクタ情報(ビツト4及び5)としてRAM137に書き戻される。
【0118】
さらにこのセクタ情報は、ECC回路50によるECC 復号の終了したECC デコードデータとともにOCTL139に送出され、ECC デコードデータ出力時の制御に用いられる。このときホストCPU140は、ECC のインターリーブを見込んで、デイスクアクセス位置を目的とする光デイスク2上のセクタよりも前方の位置にトラツクジヤンプさせる。
また、このときホストCPU140によつて目的とするセクタを特定しなければ、予め、BSA設定モードを解除しておくことで、ECC 復号データを読み出せる時点からデータ出力することができる。
【0119】
セクタ情報の内、ビツト4及び5はOCTL139で参照され、セクタ情報のビツト5が"1" でビツト4が"0" のとき、すなわちセクタアドレスBSAからESAまでのセクタが検出されている場合はホストCPU140の目的とするセクタのデータを出力できるように設定している。ここで、セクタアドレスESAを指定しない場合、ビツト0は、"0" を保持する。この間、ECC 復号データはリングバツフアメモリ10に出力され続けることになる。ここで例えば、OCTL139内に設けられたデータ出力コントロールレジスタ(図示せず)を用いてビツト0及び1の状態に関係なくデータ出力を制御するようにしてもよい。
【0120】
ここで、図37(B)に示すように、開始のセクタアドレスBSA及び終了のセクタアドレスESAの設定はトラツクジヤンプするとき以外にも、トラツクジヤンプ後にホストCPU140から再設定することも可能である。例えば、早送り操作時に要らないデータを読み飛ばすとき等、デイスク上のアクセス位置が近接している場合は、現在のセクタアドレスSAを認識してからセクタアドレスBSA及び又はESAを再設定する。これによりトラツクジヤンプをせずともセクタアドレスBSAからのデータ出力ができる。
【0121】
次に、図38〜図40のフローチヤートを参照して、SBCD回路134におけるIDとIEDのチエツク処理について説明する。
【0122】
SBCD回路134は、図38のフローチヤートに示す処理により、IEDのチエツク結果が正常である(IDにエラーがない)セクタがN個(この実施例の場合、3個)以上連続しているか否かを判定する。
【0123】
このため、最初のステツプSP41において、いま、取り込んだIEDチエツクが正常であるか否かを判定する。IEDチエツクが正常である場合においては、ステツプSP42に進み、正常であるIDのセクタの数を表す変数SAlockを1だけインクリメントする。そして、正常でないIDを有する(IDにエラーがある)セクタの連続回数を表す変数SAunlockを0に設定する。
【0124】
次に、ステツプSP43に進み、変数SAlockが3に等しいか否かを判定する。ステツプSP42でインクリメントした変数SAlockが3に等しくないと判定された場合、ステツプSP41に戻り、それ以降の処理を繰り返し実行する。ステツプSP43において、変数SAlockが3に等しいと判定された場合、すなわち、正常なIDを有するセクタが3回連続して再生されたとき、ステツプSP44に進み、フラグIECOKをHに設定する。ステツプSP45においては、さらに次のIEDチエツクが連続して正常である回数を検出するために、変数SAlockを2に設定し、ステツプSP41に戻り、それ以降の処理を繰り返し実行する。
【0125】
ステツプSP41において、IEDが正常でないと判定された場合、ステツプSP46に進み、変数SAunlockを1だけインクリメントするとともに、変数SAlockを0に設定する。そして、ステツプSP47において、変数SAunlockが3に等しいか否かを判定し、等しくない場合においては、ステツプSP41に戻り、それ以降の処理を繰り返し実行する。
【0126】
ステツプSP47において、変数SAunlockが3に等しいと判定された場合、すなわち、IEDチエツクが正常でないセクタが3回連続して検出されたとき、ステツプSP48に進み、フラグIECOKをLに設定する。次に、ステツプSP49において、次のIEDチエツクが正常でない場合に、その連続の回数が3回であることを連続して検出することができるようにするために、変数SAunlockを2に設定し、ステツプSP41に戻り、それ以降の処理を繰り返し実行する。
【0127】
以上のようにして、SBCD回路134は、IEDチエツクが連続して3回以上正常である場合においては、フラグIECOKをHに設定し、3回以上連続して正常でない場合においては、フラグIECOKをLに設定する。
【0128】
SBCD回路134は、さらに図39に示す処理により、ID(アドレス)の連続性を判定する。すなわち、1つのECCブロツク内の各セクタのIDは、順次1ずつインクリメントするように規定されている。そこで、この連続性を次のようにして判定する。
【0129】
最初に、ステツプSP61において、ID(セクタアドレス)が検出されたか否かを判定する。IDが検出された場合、ステツプSP62に進み、そのIDを次のIDと比較することができるように記憶する。そして、ステツプSP63においては、今回検出したIDが、前回検出し、ステツプSP62において記憶したIDより1だけ大きいか否かを判定する。今回のIDが前回のIDより1だけ大きい場合には、ステツプSP64に進み、正しいIDが連続して検出されたことを示す変数NS を1だけインクリメントする。また、IDが検出されなかつたり、連続していない回数を表す変数NNSを0に設定する。
【0130】
そして、ステツプSP65において、変数NS が3と等しいか否かを判定し、等しくなければ(3回連続して1ずつインクリメントしたIDが検出されていなければ)、ステツプSP61に戻り、それ以降の処理を繰り返し実行する。変数NS が3に等しいと判定された場合、ステツプSP66に進み、IDが連続して正しい状態であることを表すフラグASをHに設定する。そして、ステツプSP67において、次のIDを検出したとき、再び連続して3回正しいIDが検出されたことを検出することができるように、変数NS を2に設定し、ステツプSP61に戻り、それ以降の処理を繰り返し実行する。
【0131】
ステツプSP61において、IDが検出されなかつたり、ステツプSP63において、今回検出したIDが前回検出したIDより1だけ大きい値になつていないと判定された場合(不連続であると判定された場合)、ステツプSP68に進み、フラグSALKがHであるか否かを判定する。このフラグSALKは、図26を参照して後述するが、IEDチエツクが3回以上連続して正常であり、かつ、IDの連続性が3回以上保持されているとき、Hに設定されている。
【0132】
ステツプSP68において、フラグSALKがHに設定されていると判定された場合、ステツプSP69に進み、IDを補間する処理を実行する。すなわち、いま、IDが検出されなかつたか、あるいは、IDが連続していなかつた場合であるので、前回のIDに1を加算したIDを生成し、これを検出されたIDに代えて使用するようにする。フラグSALKがLに設定されている場合においては、このような補間処理は行われず、ステツプSP69の処理はスキツプされる。
【0133】
次に、ステツプSP70において、変数NNSを1だけインクリメントするとともに、変数NS を0に設定する。そして、ステツプSP71において、変数NNSが3と等しいか否かが判定され、等しくないと判定された場合においては、ステツプSP61に戻り、それ以降の処理を繰り返し実行する。これに対して、NNSが3に等しいと判定された場合、ステツプSP72に進み、フラグASをLに設定する。そして、ステツプSP73において、次のIDが検出されなかつた場合、連続して3回検出されなかつたことを続けて検出することができるようにするために、変数NNSを2に設定し、ステツプSP61に戻り、それ以降の処理を繰り返し実行する。
【0134】
以上のようにして、SBCD回路134は、IDの連続性が確保されているとき、フラグASをHに設定し、確保されていないとき、Lに設定する。
【0135】
SBCD回路134は、以上のようにして生成した2つのフラグIECOKとASを用いて、フラグSALKを生成する。
【0136】
すなわち、図40のステツプSP81においては、フラグIECOKがHであるか否かが判定され、Hであると判定された場合、ステツプSP82に進み、フラグASがHであるか否かが判定される。ステツプSP82において、フラグASがHであると判定された場合、ステツプSP83に進み、フラグASLKをHに設定する。
【0137】
これに対して、ステツプSP81において、フラグIECOKがLであると判定された場合、あるいは、ステツプSP82において、フラグASがLであると判定された場合、ステツプSP84に進み、フラグSALKをLに設定する。
【0138】
以上のようにして、SBCD回路34においては、IECが3回以上連続して正常であり、かつ、IDが連続して3回以上1ずつインクリメントしている場合には、フラグSALKがHに設定され、IECが連続して3回以上正常でなかつたり、あるいはIDが連続して3回以上不連続である場合には、フラグSALKがLに設定される。
【0139】
ホストCPU140は、SALKの状態と共に、先に述べたIDデータを参照して、レーザビームが現在照射されている位置(光デイスク2上のアクセス位置)を検出する。
【0140】
なお、PI1訂正の結果を図38のSAlockまたはSAunlockの条件に加えることも可能である。さらに、SAlockまたはSAunlockの回数は、前述のように3回と設定されているが、ホストCPU140により異なる値に設定することも可能である。
【0141】
SALKの状態が、SALK=Lの状態(このとき、SALK=Hとなる)で、SYLK=L(このときSYUL=Hとなる)となると、RAM37に対するEFM+復調回路31からのEFM+復調データの書き込みとECCの制御が、いずれもリセツトされる。その後、unlock状態が解除され(SAUL=Lとされ)、SYLK=Hとなると、RAM137に対してEFM+復調データの書き込みが再開される。
【0142】
なお、unlockは、ホストCPU140により強制的に実行することも可能である。例えば、トラツク間のジヤンプ実行後にホストCPU140によりunlock状態にすることで、ECC制御をリセツトすることもできる。
【0143】
また、unlock状態の解除は、ホストCPU140により実行するか、ホストCPU140の介入なしに自動的に実行するかの何れかを選択することができる。
【0144】
SYLKがHの状態(ロツク状態)であり、さらに、セクタ情報のビツト6が1の状態(セクタの先頭)である場合、SBCD回路134はSYLK=Lとなるまで(ロツクがはずれるまで)、図33に示すように、block−topをHの状態とする。block−top=Lである場合は、SCSYとmain−FMSYが共にHの状態の場合(セクタの先頭)になつたとき、EFM+W frameの値は、12の次には0に設定される。すなわち、この場合、EFM+W frameの値は各メインフレーム毎に、0〜12の値を繰り返す。
【0145】
これに対して、block−top=Hであれば、図34に示すように、EFM+W Frameの値は、その値が13以上となつた場合でも引き続きインクリメントされる。その結果、図28に示すように各ECCブロツクの各メインフレームのデータがRAM137の異なるアドレスに順次格納されることになる。
【0146】
以下同様にして、EFM+復調データのRAM137への書き込みが行われると共に、PI1訂正が実行される。そして、1ECCブロツクのデータ(208行のデータ)に対するPI1訂正が終了すると、次に、PO列方向のECC処理(PO訂正)が実行される。
【0147】
なお、PO列方向にデータを読み出す場合は、PO行のインターリーブ(図23)を解除する必要がある。従つて、例えば、図28に示す第Nバイト目の列を読み出す場合、先ず、インターリーブされたPO行をスキツプしながら、図の上から下方向に第Nバイト目の列のデータを読み出した後、再度、同じ第Nバイト目の列のPO行の符号だけを読み出し、ECCコア回路138に供給する。
【0148】
そして、ECCコア回路138が、PO訂正を終了すると(図28の右端のPI列(10列)を除く172列全ての処理が終了すると)、次に、PI2訂正(PI訂正の2回目)を実行する。なお、PI行方向のECC処理を2回実行するのは、エラーの訂正能力を向上させるためである。
【0149】
また、PO訂正では、PI1訂正の結果に基づいて生成されたエラーフラグ(PI1フラグ)に応じてイレージヤ訂正が実行される。さらに、PI2訂正においても、PO訂正の結果に応じて生成されたエラーフラグ(POフラグ)を利用してイレージヤ訂正が実行される。このようなイレージヤ訂正を行うのは、前述の場合と同様に、エラーの訂正能力を向上させるためである。
【0150】
PI2訂正の処理が終了したPI系列のデータは、RAM137からOCTL回路139に転送され、メインデータに対するデスクランブル処理が、図36に示したセクタ情報のビツト3〜ビツト0を用いて、各セクタ単位で実行される。また、このとき、OCTL回路139でEDCに関する演算が行われる。そして、その演算結果や、メインデータに付加されているエラーフラグの有無により、対象となるセクタにエラーが存在するか否かが判定される。ホストCPU140は、その判定結果に基づいて、光デイスク2から再度データを読み出すか否かを判定する。その結果、光デイスク2から再度データを読み出すと判定した場合は、光デイスク2に対するアクセスが再度実行される。また、データの読み出しを再度行わないと判定した場合は、エラーを含むセクタのデータが多重化データ分離回路13(図1)に出力される。
【0151】
ECCコア回路138は、汎用のリードソロモン符号エラー訂正用LSIにより構成され、符号長、パリテイ数、および訂正モード(通常訂正のみ、または、通常訂正およびイレージヤ訂正の2つのモード)などをプログラムすることが可能とされている。また、ECCコア回路138は、多符号連続符号化されたデータ(符号長が異なる複数の符号系列)もリアルタイムでデコードすることが可能である。なお、リードソロモン符号エラー訂正用LSIとしては、例えば、SONY(商標)のCXD307−111Gがあり、このLSIを使用して形成されたASIC(Application Specialized Integrated Circuit)をECCコアと呼ぶ。なお、図25に示すECCコア回路138には、このECCコアが使用されている。
【0152】
図41は、エラー訂正動作の実行時における信号のタイミングを示している。この図において、ESTT(図41(A))は、符号(PI行またはPO行)の先頭を示すコントロール信号であり、また、ECDE(図41(B))は、符号(PI行またはPO行)の最後を示すコントロール信号である。ECYE(図41(C))は、符号(PI行またはPO行)サイクルの最後を示すコントロール信号である。これらはいずれも、RAMコントローラ135からECC制御回路136を介してECCコア回路138に供給される。ECCコア回路138は、RAM137から供給されるデータを、これらのコントロール信号が識別する。
【0153】
図41に示すように、PI符号は、ESTTからEDCEまでの間に、182個のECCKで転送される。PO符号も、ESTTからECDEまでの間に、208個のECCKで転送される。
【0154】
なお、PI行の符号とPO列の符号の符号長が異なる場合、符号サイクル長をPI行の符号またはPO列の符号のうち、符号長の長い方(この実施例の場合、PO列の符号の208)に合わせることにより、訂正すべきデータ(EDT)およびイレージヤ訂正のためのエラーフラグ(PI1フラグ、PI2フラグ、POフラグ)を、図41に示すように、いずれの符号系列であつたとしても、同様のタイミングで入力することができる。また、符号長およびパリテイ数等のパラメータとしては任意の値を設定可能である。すなわち、設定を変更する際は、ESTT=Hとなるタイミングで、ECCコア回路138に新たな設定データを供給すると、ECCコア回路138は供給されたデータに基づき、内部設定を自動的に変更する。
【0155】
データの訂正結果は、次式で示されるように、477ECCKのサイクルで出力される。
Figure 0003672139
【0156】
ここで、NCYCはPI行の符号またはPO列の符号のうちで長い方の符号長を示し、また、PCYCは長い方のパリテイ数を示している。図41に示すように、OSTT(図41(D))は、ESTT(図41(A))のタイミングから、データ出力サイクルの時間だけ遅延して(訂正結果出力のタイミングで)ECCコア回路138からECC制御回路136に出力されるものであり、この実施例では、OSTTはESTTに対して477ECCKだけ遅延されている。
【0157】
エラー検出処理が実行され、検出されたエラーが訂正可能であれば、ECCコア回路138はECC制御回路136に対して、OSTT(図42(E))=HのタイミングでO.CODEERR(図42(G))=Lを出力し、その後、ECOR(図42(F))=Hの位置に、エラーパターンを表す8ビツトのデータ(誤つたデータと排他的論理和をとつたとき正しいデータが得られるデータ)ECD〔7:0〕(図42(H))と、エラーポジシヨン(エラーのある位置(アドレス)を示す8ビツトのデータ)ECA〔7:0〕(図42(I))が出力される。
【0158】
なお、イレージヤ訂正モードにおいては、エラーフラグEFLG(図42(C))を入力したポジシヨンに対応するデータのエラーポジシヨンECA〔7:0〕(図42(I))データは必ず出力されるが、その位置のデータが正しい場合には、エラーパターンはECD〔7:0〕=00(H)となる。
【0159】
また、エラー訂正が不可能な場合には、そのタイミングチヤートは図示していないが、OSTT(図42(E))がHの状態になると同時に、O.CODEERR(図42(G))=Hとなり、その後、ECOR(図42(F))はHの状態にはならない。また、O.CODEERR(図42(G))の出力は、OSTT(図42(E))が再度Hの状態になるまでラツチされ、ECOR(図42(F))、ECD〔7:0〕(図42(H))およびECA〔7:0〕(図42(I))は、OSTT(図42(E))が次にHの状態になるまで出力され続ける。
【0160】
図43〜図45は、ECC処理実行時における制御のタイミング図を示している。ここで、図43(B)、図44(B)及び図45(B)に示すPI1−R、PO−R、または、PI2−Rは、それぞれ、PI1(PI訂正の1回目)、PO(PO訂正)、またはPI2(PI訂正の2回目)の各系列の、エラーが訂正されるデータEDT〔7:0〕とEFLG(図42(C))がRAM137からECC制御回路136を介してECCコア回路138に転送されるタイミングを示している。
【0161】
図43(A)、図44(A)及び図45(A)に示すように、EFM+復調回路131からRAM137に対して1PI行のデータEFM+W(182バイトのデータ)を書き込むために、MWRQ信号が182回供給され、これによりRAM137に1PI行分のEFM+復調データが書き込まれる。そして、この1PI行分のデータの書き込みが行われる間に、既にRAM137に書き込みが完了しているECCブロツクのデータが読み出され、ECC制御回路136を介してECCコア回路138に転送される。すなわち、1PI行分のデータをRAM137にゆつくり書き込む間に、既に書き込みが完了している他のPI行またはPO列のデータの読み出しが、3回迅速に行われる。さらに、セクタの先頭のPI行のデータを転送する場合においては、サブコードデータ(IDとIED)の読み出しも行われる。これらの書き込みと読み出しは、一方が行われているとき、他方は中止されている。
【0162】
例えば、ECCブロツクのPI1訂正を行う場合においては、1PI行分のデータの書き込みが行われる期間に、1PI行分のデータの読み出しが行われる。すなわち、RAM137から1PI行分のデータが読み出され、ECC制御回路136を介してECCコア回路138に転送される。なお、図43(B)、図44(B)及び図45(B)においては、このPI1訂正のための読み出しデータPI1−Rの読み出しに、208個のECCKを用いるようにしているが、このECCKの数は、最長のデータ長であるPO列の長さに合わせてあるためであり、PI行のデータを転送する場合には、実質的には、このうちの182個のECCKのみが実際のデータ転送に利用され、残りのECCKは、データ転送には実際には用いられない。
【0163】
図46はECC訂正処理の際のRAMコントローラ135によるRAM137に対するデータの書き込み及び読み出し処理手順を示し、RAMコントローラ135はステツプSP101においてRAM137から1PI行分のデータをECCコア回路138に転送する。この実施例の場合、ECCブロツクごとにPI符号(パリテイ)及びPO符号(パリテイ)が付加されていることにより、第1のECCブロツク分の第1回目のPI系列の訂正及び書き戻しが終了するまでは同一ECCブロツクのPO系列のデータPO−RまたはPI2系列の読み出しデータPI2−Rを転送することはできない。そこで、この場合においては、次の2×208ECCKのタイミングにおいては、特にデータは転送されない。そして、その次にサブコードデータ(SUB)が存在する場合においては、これが転送される。
【0164】
従つてRAMコントローラ135は、図46のステツプSP101及びSP102において第1のECCブロツクの1PI行分のデータ及び必要に応じてSUBコードデータの転送を順次行いながら、ステツプSP103において第1のECCブロツクの208行分のPI1−Rデータが転送されたか否かを判断し、肯定結果が得られるまで当該ステツプSP101、SP102及びSP103の処理を繰り返す。ステツプSP103において肯定結果が得られると、このことは第1のECCブロツクの208PI行分のデータ転送がすべて完了したことを表しており、このときRAMコントローラ135はステツプSP104に移つて第1のECCブロツクに続く第2のECCブロツクのPI1−Rの転送及び第1のECCブロツクのPO−Rの転送を次の182MWRQの期間において開始する。
【0165】
すなわち次の182MWRQ期間においては、最初に第1のECCブロツクに続く第2のECCブロツクのPI1−Rが転送され、次に第1のECCブロツクのPO−Rが2回転送される(2列分のPOデータが転送される)。
【0166】
このような動作が各182MWRQの期間において行われ、第1のECCブロツクの合計172列のPOデータが転送されたとき、RAMコントローラ135は、図46のステツプSP105において肯定結果を得、続くステツプSP106において図45に示すように第1のECCブロツクのPI2系列のデータPI2−Rを転送する。このデータPI2−Rは、図44(B)に示す第1のECCブロツクのデータPO−Rの転送タイミングと同一のタイミングで転送される。このタイミングにおけるデータPI1−Rは、次のECCブロツク(第2のECCブロツク)のデータのものとなる。このようにして第1のECCブロツクのPI2−Rが208PI行分転送され、第1のECCブロツクのPI1−R、PO−R及びPI2−Rの処理が終了すると、図46のステツプSP107において肯定結果が得られ、このときRAMコントローラ135は上述のステツプSP101に戻つて続くECCブロツクに対する処理を続ける。
【0167】
なお、ECCK(図42(A))は、データ転送期間においてのみ、RAMコントローラ135からECCコア回路138に出力される。また、上述したように、転送したデータの訂正結果は、その入力から、477クロツク(ECCK)後に出力されることになる。従つて、ある系列のデータにエラーが含まれているか否かの判定の結果(図43(C)、図44(C)、図45(C))は、その系列から2つ後の系列のデータが転送される際に出力されることになる(図43(B)、図44(B)、図45(B))。この出力は、後述するERR FIFO回路136B(図47)に格納される。
【0168】
以上のようにして、RAM137からECC制御回路136にエラー訂正すべきデータが入力されると、ECC制御回路136は、その例えば1PI行分のデータのPI1訂正を行い、477ECCK後に訂正結果を出力する(図43(C)、図44(C)、図45(C))。この訂正結果は、後述するECC制御回路136のバツフアとしてのERR FIFO136Bに転送され、一時的に格納される。そして、このデータは、さらにERR FIFO136Bから読み出され、エラー訂正が完了したデータとして、再びRAM137に転送され、図44(D)、図45(D)に示すように、データPI1−Wとして書き込まれる。同様に、PO訂正あるいはPI2訂正が完了したデータは、それぞれデータPO−WまたはPI2−Wとして、RAM137に書き込まれる。
【0169】
このように、RAM137に書き込まれたエラー訂正の完了したデータは、さらに図43(E)、図44(E)及び図45(E)に示すように、182SDCKの周期で各PI行毎に読み出され、OCTL回路139から出力される。
【0170】
図25との対応部分に同一符号を付して示す図47は、エラー訂正処理が実行される際の信号の流れを示すブロツク図であり、ECC制御回路136は、ERR COUNT136A、ERR FIFO136B、FLAG RAM136C、およびEX−OR(排他的論理和)回路136Dにより構成されている。
【0171】
EFM+復調回路131から出力された復調データは、RAMコントローラ135の制御の下、RAM137に書き込まれる。各セクタの先頭に記憶されているSUBデータ(IDとIED)は、RAM137から読み出され、SBCD回路134に転送される。SBCD回路134は、図36に示すようなセクタ情報SIを生成する。このセクタ情報SIは、SBCD回路134から転送され、RAM137に書き込まれる。
【0172】
RAMコントローラ135は、RAM137(記憶手段)に書き込まれている1PI行分のデータを8ビツト毎のエラー訂正データEDTとして、ECC制御回路136(エラー訂正手段)を介してECCコア回路138に供給する(図47においては、便宜上、EDTデータがECCコア回路138に直接供給されるように示されている)。ECCコア回路138は、1PI行分のデータが供給されたとき、PI符号を用いて、8ビツトのエラー訂正データECD(図42(H))と、8ビツトのエラー訂正アドレスECA(図42(I))を生成する。このエラー訂正データECDとエラー訂正アドレスECAは、ECCコア回路138からECC制御回路136のERR FIFO(First In First Out) 136Bに転送され書き込まれる。
【0173】
次に、実際にエラー訂正を行うためにRAMコントローラ135は、RAM137から、そのPI行のデータEDTを読み出し、EX−OR回路136Dに供給する。このEX−OR回路136Dには、ERR FIFO136Bからエラー訂正データECDとエラー訂正アドレスECAが供給される。EX−OR回路136Dは、エラー訂正アドレスECAで指定されるビツトにおいて、エラー訂正データECDとRAMコントローラ135より読み出されたデータEDTとの排他的論理和を演算することによりエラー訂正を行う。このエラー訂正の行われたデータは、EX−OR回路136Dから、RAMコントローラ135を介してRAM137に、再び書き戻される。
【0174】
また、ECCコア回路138は、ECDとECAから、図48に示すような8ビツトデータにより構成されるエラー訂正結果ERを生成し、ECC制御回路136のERR COUNT136Aに供給し記憶させる。そして、この1バイトのエラー訂正結果ERは、RAMコントローラ135を介して、RAM137に、そのPI行に対応して図28に示すように書き込まれる。
【0175】
なお、図48に示すエラー訂正結果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ビツトの値)
【0176】
データがPI1訂正により訂正不能であつたか否かの判定結果を示すエラーフラグ(PI1フラグ)(エラー訂正結果ERのビツト7)は、エラー訂正結果ERの一部としてERR COUNT136Aに格納される他、FLAG RAM136C(フラグ記憶手段)にも格納される。
以上のようなPI1訂正が、図28に示す208個のPI行について行われる。
【0177】
次に、RAMコントローラ135は、RAM137から最初のPO列の208バイトのデータを読み出し、ECC制御回路136を介して、EDTとして、ECCコア回路138に供給する。このECCコア回路138にはまた、FLAGRAM136Cに書き込まれているPI1フラグが読み出され、供給される。ECCコア回路138は、パターンPOとPI1フラグを利用して、通常の訂正またはイレージヤ訂正のためのECDとECAを生成する。このECDとECAは、ECCコア回路138からECC制御回路136のERR FIFO136Bに供給され、記憶される。また、ECCコア回路138が、ECDとECAに基づき生成した、そのPO列のエラー訂正結果ERが、ERR COUNT136Aに転送され、記憶される。そして、そのうちのエラー訂正結果ERのビツト7に対応するPOフラグは、FLAG RAM136Cにも書き込まれる。
【0178】
RAM137から読み出された、そのPO列のデータEDTは、EX−OR回路136Dに供給される。EX−OR回路136Dにはまた、ERR FIFO136BからECDとECAが供給される。EX−OR回路136Dは、ECAにより指定されるアドレスのビツトに対応して、ECDとEDTとの排他的論理和を演算し、エラー訂正を行う。エラー訂正されたデータは、RAM137に書き戻される。
【0179】
また、そのPO列のエラー訂正結果ERは、ERR COUNT136Aから読み出され、RAM137に書き込まれる。PO列のエラー訂正結果ERは、図28に示すように、上から順番に、172行のPI行に対応する位置に順番に書き込まれる。
以上のPO訂正が、172列のPO列について行われる。
【0180】
次に、PI2訂正を行う場合においては、PI1訂正とPO訂正が行われた後、最初の1PI行分のデータが、RAM137からEDTとして読み出され、ECCコア回路138に供給される。ECCコア回路138にはまた、FLAGRAM136Cに書き込まれたPOフラグが読み出され供給される。ECCコア回路138は、このPOフラグとパリテイPIを用いて、ECDとECAとを生成し、これをECC制御回路136をERR FIFO136Bに供給する。
【0181】
このERR FIFO136Bに書き込まれたECDとECAHは、EX−OR回路136Dに供給され、RAM137から読み出されたPI行のデータと排他的論理和演算が行われ、エラー訂正が実行される。エラー訂正が完了したデータは、EX−OR回路136Dから、RAMコントローラ135を介してRAM137に書き戻される。
【0182】
ECCコア回路138はまた、ECDとECAから、エラー訂正結果ERを生成し、ECC制御回路136のERR COUNT136Aに供給し記憶させる。このうちのビツト7に対応するPI2フラグは、FLAG RAM136Cにも書き込まれる。
【0183】
ERR COUNT136Aに書き込まれたPI2行のエラー訂正結果ERは、ERR COUNT136Aから読み出され、RAM137に書き込まれる。このPI2行のエラー訂正結果ERは、図28に示すように、ECCブロツクの208行の各PI行に対応する位置に書き込まれる。
以上のようなPI2訂正が、208行のPI行すべてについて行われる。
【0184】
図49は、RAM137にアクセスする際のバスアービトレーシヨン(調停)の様子を示すタイミング図である。この図49において、EFMREQ(図49(A))は、EFM+復調回路131がEFM+復調データのRAM137への書き込みを要求する際に、RAMコントローラ135に対して出力する信号である。OUTREQ(図49(B))は、OCTL回路139が、ECC処理が施されたデータのRAM137からの読み出しを要求する際に、RAMコントローラ135に出力する信号である。また、ECCREQ(図49(C))は、ECC制御回路136がECCコア回路138に対してデータを転送し、エラー訂正をさせるためにRAM137にアクセスしたり、エラー訂正が施されたデータを得るためにRAM137にアクセスしたり、または、SBCD回路134に対してSUB転送(IDとIEDのRAMコントローラ135に出力される信号である。
【0185】
RAMコントローラ135は、これら3つの信号に対して優先順位(Priority Level)を予め設定しており、これらの要求が同時になされた場合には、その優先順位に従つて、RAM137のアクセス権を認めるACK(認可)信号を順次出力する。EFMACK(図49(D))、OUTACK(図49(E))、ECCACK(図49(F))は、それぞれ、EFMREQ、OUTREQ、または、ECCREQに対する認可信号である。この実施例において、前述の優先順位は、OUTREQ、EFMREQ、ECCREQの順とされている。従つて、図49に示すように、RAMコントローラ135は、この順位に従つて、REQ信号に対するACK信号を出力している。これらの信号は、システムクロツクとしてのC11M(図49(G))に同期して授受される。
【0186】
このように、本実施例において、RAM137のアクセス権は、所定のサイクル毎にEFMREQ、ECCREQ、OUTREQの何れか1つに対応して与えられる。しかし、このサイクルは、RAM137の構成、種類、または、アクセスのスピードに対応して変更することも可能である。
【0187】
図50は、1ECCブロツクのデータに対してPI1訂正、PI2訂正、およびPO訂正を実行する場合に、RAM137がアクセスされる回数を示している。この図50に示すように、PI1訂正、PO訂正およびPI2訂正を実行した場合に必要となるRAM137のアクセスの回数は、1ECCブロツクあたり214716回であり、1メインフレームの平均は1033回となる。例えば、EFM+復調データの書き込み動作時におけるRAM37のアクセス回数は、1メインフレームあたり182回であり、ECCの実行サイクル長は208バイト(208メインフレーム)とされているので、37856(=182×208)回が1ブロツクあたりに必要なアクセス回数となる。このようにして各動作について必要なアクセス回数を算出し、これらの合計をとつたものが前述の値となる。
【0188】
図51は、RAM137からOCTL回路139を介してエラー訂正結果ERのデータを出力するタイミングを示すタイミング図である。この図は、図43(E)、図44(E)、図45(E)の182SDCKの期間に先行する部分を、時間軸を拡大して示している。この図において、SDCK(図51(A))はERのデータをストリームデータとして出力する場合のクロツク信号を示す。SINF(図51(B))はセクタ情報ストローブ信号であり、セクタの先頭においてSINF=Hとなると共に、転送されるデータがセクタ情報(SI)であることを示す。ESTB(図51(C))は、エラー訂正結果ストローブ信号であり、ESTB=Hとなることによりエラー訂正結果ERが転送されることを示す。なお、各PI行においてエラー訂正結果ERは、PI1訂正、PO訂正、およびPI2訂正のそれぞれに対して1バイトずつ割り当てられているので、合計で3バイトとられる。これらのデータは図28に格納されている順序で出力されるので、エラー訂正結果ERのビツト5及び6(図48)を調べることにより、どの系列の結果(データ)であるのかを判定することができる。また、PO訂正の結果が出力されないPI行では、PO訂正の結果を出力するタイミングでESTB=Lとされる。
【0189】
DSTB(図51(D))は、信号SD〔7:0〕(図51(E))がメインデータであるときにDSTB=Hとされるデータストローブ信号である。SINF、ESTB、またはDSTBの3つの信号は、OCTL回路139により生成される。なお、図51(E)に示すように、セクタ情報SIとエラー訂正結果ERは、182SDCKによりPI行方向のデータを送出する直前に出力される。
【0190】
OUTF(補間フラグ)(図51(F))は、メインデータに対するエラーフラグであり、図47のFLAG RAM136Cに格納されているPIとPOの訂正不能フラグに基づき、エラーのあるメインデータに対して補間フラグで付加されて、出力されることになる。
【0191】
OCTL回路139は、デコードが終了したセクタのデータが、出力されるべきデータであるか否かを、SBCD回路134が生成したセクタ情報のビツト4、5(図36)より判定する。セクタ情報のビツト4、5は、図36に示すように、エンドセクタとスタートセクタとをそれぞれ示している。従つて、OCTL回路139は、ビツト4=0かつビツト5=1であるセクタのデータを、出力が指定された(出力されるべき)セクタのデータとして、出力する。
【0192】
また、OCTL回路139は、例えば、メインデータのエラーフラグの有無やEDCの結果などが、ホストCPU140により予め設定された条件を満足するか否かも判定し、満足する場合、デコードデータを出力する。もし、設定された出力条件が満たされない場合には、デコードデータの出力を停止し、ホストCPU140に異常を知らせる。
【0193】
データの出力条件は、例えば次のように設定される。
(1)出力を指定されたセクタのデータである。
(2)ECC結果からエラーが検出されない。
(3)メインデータにエラーフラグが全く付加されていない。
出力条件がこのように設定された場合、これらの条件を全て満足するデータが最終的に出力される。また、以上の条件に拘らず、ホストCPU140により強制的に出力を禁止することができる。
【0194】
OCTL回路139は、図52に示すようなセクタ・データの出力手順に従つてメインデータとセクタ情報SI及びエラー訂正結果ERを順次出力する。
まずOCTL回路139は、ステツプSP111においてOCTL回路139にてセクタ情報SI(図36)のビツト4に格納されたエンドセクタ検出の結果及びビツト5に格納されているスタートセクタ検出の結果を解析して、ビツト4が0で、かつビツト5が1であるセクタ・データを出力されるべきセクタ・データであると判断する。
これにより次のステツプSP112において、デコードデータが出力されるべきデータではないと判断された場合はステツプSP114に移つてデータの出力を停止する。またデコードデータが出力条件を満たした出力されるべきデータであると判断された場合はステツプSP113に進む。
【0195】
OCTL回路139はステツプSP113において、出力データの各ストローブ信号を生成してセクタ情報SIのストローブ信号SINF(図51(B))、エラー訂正結果ERのストローブ信号ESTB(図51(C))、メインデータのストローブ信号DSTB(図51(D))を順で出力する。この結果、OCTL回路139は次のステツプSP115でセクタ情報SI、エラー訂正結果ER及びメインデータ(D0、D1、D2……)の順でデータ出力し、全てのセクタ・データを出力し終えるとセクタ・データの出力手順を終了する。
【0196】
(2−3)第2実施例の動作及び効果
以上の構成において、182MWRQ期間内にRAM137からECCコア回路138に転送されるデータ(PI1−R、PO−R及びPI2−R(図43、図44、図45))は、転送用クロツク(ECCK)に応じてRAM137から読み出される。このとき各データ(PI1−R、PO−R及びPI2−R)の転送区間相互の間にそれぞれ所定期間だけ転送用クロツク(ECCK)を停止させることにより、当該停止期間においてはデータ(PI1−R、PO−R及びPI2−R)の転送が停止される。すなわち、各データ(PI1−R、PO−R及びPI2−R)の間には所定期間だけデータの転送が行われない期間が形成される。
【0197】
この期間において、RAMコントローラ135は、PI1訂正(PI1−W)の実行後、RAM137内の番号0のメインフレームに格納されているセクタアドレス情報(ID)及びIDに対するエラー検出符号(IED)をSUB(図43(B)、図45(B))のタイミングで読み出してSBCD回路134に転送させる。SBCD回路134は、セクタアドレス情報IDを検出すると、そのセクタの開始セクタアドレスBSA及び終了セクタアドレスESAと、ホストCPU140によつて予め指定されている出力すべき目的セクタのセクタアドレスとを比較する。すなわちそのセクタが目的セクタであつたときは、その目的セクタの開始セクタアドレスBSAであることを示すためにセクタ情報SIのビツト5を”1”に設定し、さらに終了セクタアドレスESAの検出ビツト4を”0”に設定する。そしてSBCD回路134は、セクタアドレス情報IDを検出したセクタデータが目的セクタか否かをセクタ情報SIのビツト4及び5に設定した後、そのセクタ情報SIを所定のPI行に対応するようにRAM137内に設けられた僅かな領域内に格納する。
【0198】
ここでRAMコントローラ135は、EFM+復調データのRAM137への書き込みの際にECC回路50においてデコード処理されたセクタデータをOCTL回路139に転送する。
OCTL回路139は、転送されてくるセクタデータの中にセクタ情報SIを検出すると、セクタ情報SIのビツト4及び5の情報に応じてそのセクタデータが目的セクタであるか否かを判別して次段のリングバツフアメモリ10に対する出力を制御する。
【0199】
このようにSBCD回路134において、開始のセクタアドレスBSA及び終了のセクタアドレスESAを検出して予めホストCPU140によつて設定されている目的セクタであるか否かに関するセクタ情報SIを生成してRAM137内に設けられた僅かな領域内に格納しておくことにより、デコードデータの出力時、OCTL回路139においてセクタ情報SIに基づいてデコードデータの出力を制御し得る。
これにより例えば、検出したセクタアドレス情報IDをもとにしてホストCPU140によつて予め設定しておいた目的セクタのセクタアドレスとの比較処理ステツプを省略し得る。
【0200】
以上の構成によれば、ECC復号したECCブロツクデータのメインデータを次段のリングバツフアメモリ10に出力する場合、前もつてSBCD回路134において、ECC復号時にセクタデータが目的セクタであるか否かの情報をセクタ情報SIのビツト4及び5に記録しておくようにしたことにより、データ出力時に、再びセクタアドレス情報IDと目的セクタのセクタアドレスとを比較してデータ出力の可否を判定するステツプを省くことができる。
かくしてセクタ単位のECCデコードを出力する場合、ECCデコードデータからセクタアドレス情報IDを検出してセクタアドレスとの比較処理をするための回路を新たに設ける必要がなくなり、全体の回路構成を簡略化し得ると共に、セクタデータに対するアクセスを高速かつ確実になし得る。
【0201】
さらに上述の実施例によれば、RAM137内に設けられた僅かな領域内にセクタ情報SIを格納しておくようにしたことにより、特別にセクタ検出用のメモリ領域を設けずとも良く、これによりメモリ容量を節約し得る。
【0202】
さらに上述の実施例によれば、PI系列及びPO系列によつてブロツク化してECC処理するようにしたことにより、C1系列及びC2系列によるECC符号化のときのように次のECCブロツクに跨がつた斜め方向のC2系列の復号終了を待たずに1ECCブロツクのデコード終了時に、直ちにリングバツフアメモリ10へのデータ出力の可否を判断することができる。
【0203】
(3)他の実施例
なお上述の実施例においては、C1/C2畳み込み・リードソロモン符号化、又は行方向に誤り訂正内符号を付加すると共に列方向に誤り訂正外符号を付加して符号化したデータを復号した場合について述べたが、本発明はこれに限らず、広く一般にインタリーブ又はクロス・インタリーブにより誤り訂正符号が付加された符号化データの復号に適用し得る。
また上述の実施例においては、符号化データを誤り訂正符号とした場合について述べたが、本発明はこれに限らず、広く一般に符号化データを復号するのに用いることができる。
【0204】
さらに上述の実施例においては、データ再生装置40によつて光デイスク2に記録された符号化データを復号して再生する場合について述べたが、本発明はこれに限らず、一般に符号化データを記録した記録媒体から符号化データを読み出し、復号して再生する場合に適用し得る。
【0205】
【発明の効果】
上述のように本発明によれば、符号化データの復号処理とは独立して、当該符号化データより得られる復号データの出力可否を当該符号化データの復号処理途中で判定しておくと共に、当該判定の結果を示すデータ情報を符号化データ及び複合化データを記憶するメモリに記憶しておくことにより、データ情報を記憶し得るわずかな領域をメモリに別途確保しておくだけで、符号化データの復号処理終了後に復号データの出力可否の判定処理を行う場合と比べて迅速に復号データの出力を開始することができ、かくしてメモリ容量をほとんど増やすことなく、一段と迅速に復号データの出力を開始することができるデータ復号装置及びデータ復号方法を実現できる。
【0206】
また同様に、符号化データの復号処理とは独立して、当該符号化データより得られる復号データの出力可否を当該符号化データの復号処理途中で判定しておくと共に、当該判定の結果を示すデータ情報を符号化データ及び複合化データを記憶するメモリに記憶しておくことにより、データ情報を記憶し得るわずかな領域をメモリに別途確保しておくだけで、符号化データの復号処理終了後に復号データの出力可否の判定処理を行う場合と比べて迅速に復号データの出力を開始することができ、かくしてメモリ容量をほとんど増やすことなく、復号データの再生が一段と迅速になし得るデータ再生装置を実現できる。
【図面の簡単な説明】
【図1】データ再生装置の全体構成を示すブロツク図である。
【図2】図1のECC回路の構成を示すブロツク図である。
【図3】図1の復調回路、セクタ検出回路及びECC回路の接続の説明に供するブロツク図である。
【図4】図2のRAMに格納するデータの説明に供する略線図である。
【図5】図2のECC回路によるECC 結果の説明に供する略線図である。
【図6】図2のECC回路によるECC 復号の実行制御の説明に供するタイミングチヤートである。
【図7】図2のECC回路によるエラー出力の説明に供するタイミングチヤートである。
【図8】図2のECC回路のRAMに対するアクセスの説明に供する表である。
【図9】図2のECC回路のRAMに対するアクセスの優先順位の説明に供するタイミングチヤートである。
【図10】再生データのフレーム構成を示す略線図である。
【図11】復調データのセクタフオーマツトの説明に供する略線図である。
【図12】セクタ情報の説明に供する図表である。
【図13】セクタアドレスの設定の説明に供するタイミングチヤートである。
【図14】セクタ検出及びデータ出力の説明に供するタイミングチヤートである。
【図15】セクタ検出及びデータ出力の説明に供するタイミングチヤートである。
【図16】セクタ検出及びデータ出力の説明に供するタイミングチヤートである。
【図17】セクタ検出及びデータ出力の説明に供するタイミングチヤートである。
【図18】セクタ検出及びデータ出力の説明に供するタイミングチヤートである。
【図19】セクタ検出及びデータ出力の説明に供するタイミングチヤートである。
【図20】セクタ検出及びデータ出力の説明に供するタイミングチヤートである。
【図21】第2実施例のセクタデータの構成を示す略線図である。
【図22】第2実施例のECCブロツクの構成を示す略線図である。
【図23】第2実施例のPOパリテイ(外符号)のインターリーブを示す略線図である。
【図24】第2実施例のEFM変調前の32Kバイトブロツクのデータ構成を示す略線図である。
【図25】第2実施例の復調回路系の構成を示すブロツク図である。
【図26】第2実施例のEFM変調号の物理セクタの構成を示す略線図である。
【図27】第2実施例の各セクタのデータ構成を示す略線図である。
【図28】第2実施例のRAMへの格納状態の説明に供する略線図である。
【図29】第2実施例のEFM復調出力のRAMへの書込み動作を示す信号波形図である。
【図30】第2実施例のロツク検出処理手順を示すフローチヤートである。
【図31】第2実施例のSCSY信号の生成処理手順を示すフローチヤートである。
【図32】第2実施例のmain-FMSY 信号の発生処理手順を示すフローチヤートである。
【図33】第2実施例のblock-top の検出動作の説明に供する信号波形図である。
【図34】第2実施例のblock-top の検出後の処理動作の説明に供する信号波形図である。
【図35】第2実施例のSUBの転送動作の説明に供する信号波形図である。
【図36】第2実施例のセクタ情報の構成を示す略線図である。
【図37】第2実施例のセクタアドレスの設定の説明に供するタイミングチヤートである。
【図38】第2実施例のIEDの連続正常検出判定処理手順を示すフローチヤートである。
【図39】第2実施例のID(アドレス)の連続判定処理手順を示すフローチヤートである。
【図40】第2実施例のSALK生成処理手順を示すフローチヤートである。
【図41】第2実施例のエラー訂正動作の説明に供する信号波形図である。
【図42】第2実施例のエラー訂正動作の説明に供する信号波形図である。
【図43】第2実施例のECC処理の制御動作の説明に供するタイミングチヤートである。
【図44】第2実施例のECC処理の制御動作の説明に供するタイミングチヤートである。
【図45】第2実施例のECC処理の制御動作の説明に供するタイミングチヤートである。
【図46】第2実施例のECC処理のRAMコントローラの処理手順を示すフローチヤートである。
【図47】第2実施例のエラー訂正回路系の構成を示すブロツク図である。
【図48】第2実施例のエラー訂正結果を示す略線図である。
【図49】第2実施例のバスアービトレーシヨンの説明に供する信号波形図である。
【図50】第2実施例の1ECCブロツク訂正におけるRAMのアクセス回数を示す略線図である。
【図51】第2実施例のエラー訂正結果の出力の説明に供する信号波形図である。
【図52】第2実施例のセクタデータの出力の説明に供するフローチヤートである。
【図53】従来のデータ再生装置を示すブロツク図である。
【図54】図53のECC回路を示すブロツク図である。
【図55】図54のECC回路によるECC 復号の説明に供する略線図である。
【図56】図54のECC回路によるECC 復号の説明に供する略線図である。
【図57】図54のECC回路によるECC 復号の説明に供する略線図である。
【図58】図54のECC回路によるECC 復号の説明に供する略線図である。
【符号の説明】
1、40……データ再生装置、2……光デイスク、3……ピツクアツプ、4……システムコントローラ、5、35……復調回路系、6……復調回路、7……セクタ検出回路、8、50……ECC回路、9……トラツクジヤンプ判定回路、10……リングバツフアメモリ、11……リングバツフア制御回路、13……多重化データ分離回路、14……ヘツダ分離回路、15……分離回路制御回路、16……スイツチング回路、17……ビデオコードバツフア、18……ビデオデコーダ、19……オーデイオコードバツフア、20……オーデイオデコーダ、22……トラツキングサーボ回路、24、26、28、30、51……RAM、25、27、29、52……ECCデコーダ、42……RF処理回路、44、131……EFM+復調回路、46……CLV制御回路、48……RMIF、53……エラーレジスタ、54……ECC制御部、55……ECC復号部、56、139……OCTL回路、134……SBCD回路、135……RAMコントローラ、136……ECC制御回路、137……RAM、138……ECCコア回路、140……ホストCPU。[0001]
【table of contents】
The present invention will be described in the following order.
TECHNICAL FIELD OF THE INVENTION
Conventional technology (FIGS. 53 to 57)
Problems to be solved by the invention
Means for solving the problem
BEST MODE FOR CARRYING OUT THE INVENTION (FIGS. 1 to 52)
(1) 1st Example (FIGS. 1-20)
(1-1) Overall configuration of data reproducing apparatus (FIG. 1)
(1-2) ECC circuit and ECC decoding (FIGS. 2 to 9)
(1-3) Sector detection (FIGS. 10 to 20)
(2) Second embodiment
(2-1) Record data format (FIGS. 21 to 24)
(2-2) Data reproducing apparatus and ECC decoding (FIGS. 1, 25 to 52)
(2-3) Operation and effect of the second embodiment (FIGS. 43 to 45)
(3) Other embodiments
The invention's effect
[0002]
BACKGROUND OF THE INVENTION
The present invention relates to a data decoding apparatus and method, and a data reproducing apparatus, and is suitable for use, for example, for reproducing a moving image which has been digitized and recorded on a disk.
[0003]
[Prior art]
Conventionally, for example, there is a disc in which a moving image according to MPEG (Moving Pictures Expert Group) standard is digitized and recorded at a variable rate.
The MPEG used here is an I-picture (Intra-Picture) that is an intra-frame code image, a P-picture (Predictive-Picture) that is an inter-frame forward prediction encoded image, and a bi-directional prediction code. Three types of B-pictures (Bidirectionally predictive-pictures), which are converted images, are defined, and a screen group structure GOP (Group Of Pictures) is formed by these three images.
Similarly, the MPEG standard is applied to the audio data, but the audio data is also digitized and compression encoded by, for example, ATRAC (Aditive TRansform Acoustic Coding) other than MPEG. Incidentally, ATRAC is a trademark.
[0004]
FIG. 53 shows a data decoding apparatus 1 for reproducing data recorded on a disk at a variable rate. The data decoding apparatus 1 irradiates the data recorded on the optical disk 2 with a laser beam by the pickup 3 and reproduces it from the reflected light. The reproduction signal S1 output from the pickup 3 is input to the demodulation circuit 6 of the decoding circuit system 5 controlled by the system controller 4 and demodulated. The data demodulated by the demodulating circuit 6 is input to an ECC (Error Correction Code) circuit 8 via a sector detecting circuit 7, and error detection and error correction are executed.
[0005]
Here, when the sector detection circuit 7 does not normally detect the sector number which is the address assigned to the sector of the optical disk 2, a sector number abnormality signal is output to the track jump determination circuit 9. The ECC circuit 8 outputs an error occurrence signal to the track jump determination circuit 9 when uncorrectable data occurs. The error-corrected data is sent from the ECC circuit 8 to the ring buffer memory 10 and recorded.
[0006]
At this time, the ring buffer control circuit 11 reads an address for each sector from the output of the sector detection circuit 7 and designates a write address (hereinafter referred to as a write pointer WP) on the ring buffer memory 10 corresponding to the address.
Further, the ring buffer control circuit 11 controlled by the system controller 4 is based on the code request signal R10 from the multiplexed data separation circuit 13 at the subsequent stage, and the read address of the data written in the ring buffer memory 10 (hereinafter referred to as “the buffer address”). The read pointer RP is designated, and data is read from the read pointer RP and supplied to the multiplexed data separation circuit 13.
[0007]
Here, the header separation circuit 14 of the multiplexed data separation circuit 13 separates the packet header and the packet header from the data supplied from the ring buffer memory 10 and supplies them to the separation circuit control circuit 15. The separation circuit control circuit 15 sequentially switches and connects the input terminal G and the output terminals (switched terminals) H1 and H2 of the switching circuit 16 in accordance with the stream ID (Stream IDentifier) information of the packet header supplied from the header separation circuit 11. By doing so, the time-division multiplexed data is correctly separated and supplied to the corresponding code buffer.
[0008]
Here, the video code buffer 17 generates a code request R1 to the multiplexed data separation circuit 13 according to the remaining amount of the internal code buffer. The received data is stored. Further, it receives a code request R1 from the video decoder 18 and outputs internal data. The video decoder 18 reproduces a video signal from the supplied data and outputs it from the output terminal OUT1.
[0009]
The audio code buffer 19 generates a code request R2 to the multiplexed data separation circuit 13 according to the remaining amount of the internal code buffer. The received data is stored. Further, it receives a code request R2 from the audio decoder 20 and outputs internal data. The audio decoder 20 reproduces an audio signal from the supplied data and outputs it from the output terminal OUT2.
[0010]
Thus, the video decoder 18 requests data from the video code buffer 17, the video code buffer 17 issues a request to the multiplexed data separation circuit 13, and the multiplexed data separation circuit 13 sends the request to the ring buffer control circuit 11. Make a request. At this time, data flows from the ring buffer memory 10 in the opposite direction to the request.
[0011]
Here, data decoding in the demodulation circuit system 5 will be described. First, the reproduction signal S1 read from the disk 2 is converted into a binarized signal by RF processing in the demodulation circuit 6, and rough servo is applied based on the measurement result of the mark length of the signal S1. Here, when the sector detection circuit 7 detects a sync header with EFM + as an interface of the system controller 4, a PLL (Phase Locked Loop) servo is applied. Thereafter, when the sync header is detected several times in succession, the EFM + demodulated data S2 is deinterleaved (hereinafter referred to as deinterleaving).
[0012]
As shown in FIG. 54, the EFM + demodulated data S2 sent to the ECC circuit 8 is first stored in the RAM 24 and then C1 / C2 convolutional / Reed-Solomon code (CIRC Plus) in the ECC decoders 25, 27 and 29. ECC decoding is executed for the three sequences C11 (first C1 sequence), C2, and C12 (second C1 sequence).
[0013]
For example, as shown in FIG. 55, the ECC decoding in the ECC circuit 8 writes the EFM + demodulated data S2 to the RAM 24 in the order of 00, 01, to A8, A9, (EFM Write), and the EFM + demodulated data to the RAM 24. When two frames are stored, ECC decoding of the deinterleaved C1 sequence data is performed by transferring the data to the ECC decoder 25 in the order of 00 ′, 02 ′, ˜A8 ′, 01, 03, and ˜A9 of frame 1. Execute.
Here, in error correction, the error position and the correction pattern are read from the ECC decoder 25, and data with error is read from the RAM 24 (C1 read), and exclusive OR with the correction pattern is performed, as shown in FIG. Then, it is executed by writing back to the RAM 26 again (C1 Write). Here, ECC decoding of the C1 sequence is executed by the ECC decoder 25 for the C2 code sequence length.
[0014]
When the ECC decoding of the C1 sequence is executed for the C2 code sequence length, the ECC decoding of the C2 sequence can be executed. Next, the data on the RAM 26 is read in the order of 00 ′, 01 ′, 02 ′, 03 ′, to A9 ′ (C2 read), and the ECC decoder 27 executes ECC decoding of the C2 sequence. Here, the erasure correction can be performed by transferring the uncorrectable flag for each frame to the subsequent ECC decoder in synchronization with the data. For C2 series erasure correction, the C1 uncorrectable flag is used. The error correction operation is the same as in C1.
As shown in FIG. 57, when the C2 sequence ECC decoding result is written in the RAM 28 (C2 Write), and the C2 sequence ECC decoding is executed for the C1 code sequence length, the C12 sequence ECC decoding can be performed. 29, the ECC decoding of the C12 sequence is executed (C12 read) which is read in the order of 00 ′, 01, 02, 03, to A9.
[0015]
Here, for the erasure correction of the C12 series, the C2 uncorrectable flag is used. When the C12 error correction is completed, the ECC decoding results of the C12 series are written in the RAM 30 in the order of 00, 01, 02, 03, to A9 as shown in FIG. In this way, the decoded data of the ECC sequences C11, C2, and C12 are stored in the RAM 30, and are read out in the order of 00, 01, 02, 03, to A9 (OUT read), descrambled, Data is sent to the buffer memory 10, and necessary sector data is written thereby.
[0016]
Here, the target sector to which the output data to be read belongs is detected by extracting the sector address from the reproduction data stored in a memory different from the memory used for ECC decoding. That is, in order to detect the sector address, the memory for deinterleaving the previous stage (RAM 24) and the ECC decoding memory (RAMs 26, 28, and 30) are allocated so that the sector address comes to the head in sector address units. In this way, the sector address is detected from the reproduction data read out on the memory and used as position information when the system controller 4 accesses the optical disk 2.
[0017]
Actually, the ECC decoded data S10 ECC-decoded by the ECC circuit 8 is compared and determined by the ring buffer control circuit 11 between the detected sector address and the target sector address set by the system controller 4, and the addresses match. If so, the ECC decrypted data is written into the ring buffer memory 10.
[0018]
In this ECC decoding method, an ECC interleave is estimated for a target sector by disk access, a sector several sectors before is detected, and the EFM + demodulated reproduction data is set to the start of the sector in the ECC decoding memory. Are written in correspondence with each other, and ECC decoding is executed to write the decoded data into the ring buffer memory 10.
[0019]
[Problems to be solved by the invention]
When decoding the interleaved encoded data here, the time required for ECC decoding between the sector address recognition for disk access by the system controller 4 and the sector address of the sector data output after ECC decoding. A minute shift occurs. Because of this discrepancy, when the sector address is recognized at the time of disk access, since ECC decoding of the sector has not been executed yet, it is determined whether or not the ECC decoded data S10 is always written to the ring buffer memory 10. There was a problem that I could not do it.
[0020]
In addition, when decoding interleaved encoded data, a memory for detecting the target sector and a storage medium such as a memory necessary for ECC decoding are required separately, so the memory capacity becomes relatively large. There was a problem.
In addition, in order to recognize the sector, the deinterleaved data is first written to the RAM 24 of the decoding memory in an arbitrary sector unit. At this time, the reproduction data read from the optical disk 2 is changed from the head of the memory to the head of the sector. In order to store them in correspondence, it is necessary to prepare a memory capacity corresponding to N times the sector.
[0021]
Further, at the stage of writing to the ring buffer memory 10, since the beginning of the decoded data is not necessarily the beginning of the sector, the target sector is detected again from the ECC decoded data S10 stored in the ECC decoding memory (RAM 30). There is a need. For this reason, another circuit for recognizing whether the data is the target sector address must be provided separately from the circuit for recognizing the sector address at the time of disk access, which causes a problem that the circuit configuration becomes complicated. It was.
The present invention has been made in view of the above points, and intends to propose a data decoding apparatus and method, and a data reproduction apparatus capable of reducing the memory capacity for ECC decoding and quickly accessing the target sector. To do.
[0022]
[Means for Solving the Problems]
In order to solve this problem, in the present invention, in a data decoding apparatus for decoding encoded data recorded on a recording medium, a memory for storing encoded data read from the recording medium, and encoded data stored in the memory are stored. A data decoding circuit that performs decoding processing and stores the decoded data obtained as a result of the decoding processing in a memory, and detects position information indicating a recording position on the recording medium from encoded data in the middle of the decoding processing, and based on the position information A data information generation circuit for determining whether or not to output decoded data obtained from the encoded data during decoding processing of the encoded data, generating data information indicating a result of the determination, and storing the data information in the memory; and a memory And a data output control circuit for controlling the output of the decoded data stored in the memory based on the data information stored in the memory. It was so.
[0023]
Further, in the present invention, in a data decoding method for decoding encoded data recorded on a recording medium, a storage step stored in an encoded data memory read from the recording medium and a decoding process for the encoded data stored in the recording memory Then, the data decoding step for storing the decoded data obtained as a result of the decoding process in the memory, and the position information indicating the recording position on the recording medium from the encoded data in the middle of the decoding process are detected, and based on the position information, Data information generation step for determining whether or not decoded data obtained from the encoded data can be output in the middle of the decoding process of the encoded data, generating data information indicating the result of the determination and storing it in the memory, and storing in the memory A data output control step for controlling the output of the decoded data stored in the memory based on the received data information; It was provided.
[0024]
As described above, independently of the decoding process of the encoded data, whether the output of the decoded data obtained from the encoded data is determined during the decoding process of the encoded data, and the result of the determination is shown. By storing the data information in the memory for storing the encoded data and the composite data, it is necessary to reserve only a small area in the memory where the data information can be stored. Compared with the case where the process for determining whether or not the decoded data can be output is performed, the output of the decoded data can be started at a higher speed.
[0025]
Furthermore, in the present invention, in a data reproduction apparatus that reads and reproduces an image signal and / or audio signal composed of encoded data recorded on a recording medium, a memory that stores the encoded data read from the recording medium, and a memory that stores the encoded data And decoding the encoded data, storing the decoded data obtained as a result of the decoding process in the memory, and detecting position information indicating a recording position on the recording medium from the encoded data in the middle of the decoding process, Data information for determining whether output of decoded data obtained from the encoded data is possible based on the position information during the decoding process of the encoded data, and generating data information indicating the result of the determination and storing it in the memory Data for controlling the output of the decoded data stored in the memory based on the data information stored in the generation circuit and the memory And to provide a data decoding apparatus and an output control circuit.
[0026]
As described above, independently of the decoding process of the encoded data, whether the output of the decoded data obtained from the encoded data is determined during the decoding process of the encoded data, and the result of the determination is shown. By storing the data information in the memory for storing the encoded data and the composite data, it is necessary to reserve only a small area in the memory where the data information can be stored. Compared with the case where the process for determining whether or not the decoded data can be output is performed, the output of the decoded data can be started at a higher speed.
[0027]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings.
[0028]
(1) First embodiment
(1-1) Overall configuration of data reproducing apparatus
In FIG. 1, in which the same reference numerals are assigned to the parts corresponding to those of FIG. The data reproducing device 40 irradiates the optical disc 2 with laser light on the image data and audio data recorded on the optical disc 2 at a variable rate, and reads and reproduces the recorded data from the reflected light. The reproduction signal S1 reproduced by the pickup 3 is sent to the demodulation circuit 6 of the demodulation / decoding circuit system 35 controlled by the system controller 4. The demodulation circuit 6 demodulates the reproduction signal S1 and outputs it to the sector detection circuit 7.
[0029]
The sector detection circuit 7 detects an address recorded for each sector from the supplied data, outputs the detected address to the ring buffer control circuit 11, and outputs the data in a state in which the sector synchronization is established to the ECC circuit 50 at the subsequent stage. . The ring buffer control circuit 11 controlled by the system controller 4 controls writing and reading with respect to the ring buffer memory 10 and monitors a code request signal R10 for requesting data output from the multiplexed data separation circuit 13. .
Here, the sector detection circuit 7 outputs a sector number abnormality signal to the track jump determination circuit 9 via the ring buffer control circuit 11 when the address cannot be detected or the detected addresses are not continuous.
[0030]
The ECC circuit 50 detects an error in the data supplied from the sector detection circuit 7, performs error correction using a redundant bit added to the data, and a track jump having a FIFO (First In First Out) function. Output to the ring buffer memory 10 for use. The data in the ring buffer memory 10 is supplied to the multiplexed data separation circuit 13. At this time, the ECC circuit 50 detects the sector header data and sends it to the system controller 4 through the sector detection circuit 7.
Here, the ECC circuit 50 outputs an error occurrence signal to the system controller 4 when the data error cannot be corrected.
[0031]
The track jump determination circuit 9 monitors the output of the ring buffer control circuit 11 and outputs a track jump signal JP1 to the tracking servo circuit 22 when the track jump is necessary to track the reproduction position of the pickup 3 with respect to the optical disk 2. It ’s like that. When the system controller 4 detects a sector number abnormality signal from the sector detection circuit 7 or an error occurrence signal from the ECC circuit 50, the system controller 4 outputs a track jump signal to the tracking servo circuit 22 from the track jump determination circuit 9. The playback position of the pickup 3 is track jumped.
[0032]
The header separation circuit 14 to the multiplexed data separation circuit 13 separates the packet header and the packet header from the data supplied from the ring buffer memory 10 and supplies the packet header and packet header to the separation circuit control circuit 15 and also switches the time division multiplexed data. This is supplied to the input terminal G of the circuit 16. Output terminals (switched terminals) H1 and H2 of the switching circuit 16 are connected to input terminals of a video code buffer 17 and an audio code buffer 19, respectively.
Here, when the output terminal is switched to H1 by the switching circuit 16, the video code output is sent to the video decoder 18 through the video code buffer 17 and output from the output terminal OUT1. When the output terminal is switched to H2 by the switching circuit 16, the audio code output is sent to the audio decoder 20 through the audio code buffer 19 and output from the output terminal OUT2.
[0033]
The code request signal R1 generated by the video decoder 18 is input to the video code buffer 17 and then input to the multiplexed data separation circuit 13.
Similarly, the code request signal R 2 generated by the audio decoder 20 is input to the audio code buffer 19 and then input to the multiplexed data separation circuit 13.
[0034]
By the way, for example, when data processing relating to a simple screen continues and the data consumption amount per unit time of the video decoder 18 decreases, reading from the ring buffer memory 10 also decreases. In this case, the amount of data stored in the ring buffer memory 10 increases and there is a risk of overflow. Therefore, the track jump determination circuit 9 calculates the amount of data currently stored in the ring buffer memory 10 using the write pointer WP and the read pointer RP, and the data exceeds a predetermined reference value set in advance. Then, it is determined that the ring buffer memory 10 may overflow, and a tracking jump command is output to the tracking servo circuit 22.
[0035]
Further, when detecting the sector number abnormality signal from the sector detection circuit 7 or the error occurrence signal from the ECC circuit 50, the track jump determination circuit 9 remains in the ring buffer memory 10 from the write pointer WP and the read pointer RP. And reading the multiplexed data separation circuit 13 from the ring buffer memory 10 while the optical disk 2 makes one revolution from the current track position (while waiting for one revolution of the optical disk 2). The amount of data required to guarantee
Here, when the amount of remaining data in the ring buffer memory 10 is large, underflow does not occur in the ring buffer memory 10 even when data is read from the ring buffer memory 10 at the highest transfer rate. Therefore, the tracking jump determination circuit 9 determines that the error can be recovered by reproducing the error occurrence position again with the pickup 3 and outputs a tracking jump command to the tracking servo circuit 22.
[0036]
(1-2) ECC circuit and ECC decoding
The ECC circuit 50 shown in FIG. 2 decodes ECC using C1 / C2 convolution / Reed-Solomon code (CIRC Plus). The ECC circuit 50 includes a RAM (Random Access Memory) 51 that is a ring buffer memory, an ECC decoder 52 that performs error correction on EFM + demodulated data and performs ECC decoding, an error correction impossible flag, and an error correction pattern. And an error register 53 for storing the error position.
[0037]
As shown in FIGS. 2 and 3, in the ECC decoding, the reproduction signal S1 read from the disk 2 is RF-processed and binarized by the RF processing circuit 42, and then the EFM + synchronization pattern is detected by the demodulation circuit 44. To do. When an EFM + synchronization pattern is detected, rough servo is first applied by the CLV control circuit 46. Subsequently, when an EFM + sync pattern is detected by the demodulation circuit 44, PLL (Phase Locked Loop) servo is applied. Thereafter, when the sync pattern is detected several times in succession, the EFM + demodulated data S2 is written to the RAM 51 of the ECC circuit 50 in units of frames through an RMIF (Random Access Memory InterFace) 48. Then, the data is output to the ring buffer memory 10 through an OCTL (output control circuit) 56.
[0038]
The ECC circuit 50 generates a write address to the RAM 51 through the RMIF 48. Here, the data read from the RAM 51 is transferred to the ECC control unit 54 and the ECC decoding unit 55 through the RMIF 48.
If an error is detected and the error can be corrected, the error position and the error correction pattern are output from the ECC decoding unit 55 to the ECC control unit 54. In this case, the error position and the error correction pattern are output for each frame of the RAM 51 and stored in the error register 53 (FIG. 2). In error correction, the error position and the correction pattern are read from the error register 53, the error data corresponding to the error position is read from the RAM 51, and exclusive OR (EXclusive OR, EXOR) with the correction pattern is written to the RAM 51 again. Execute by returning.
Further, when error uncorrectability is detected, the uncorrectable flag of the frame is stored in the error register 53 for use in ECC erasure correction at the subsequent stage.
[0039]
As a result, error positions and correction patterns are stored in the error register 53 as data necessary for solving the ECC for each of the ECC sequences C11, C2, and C12. Here, when error positions and correction patterns necessary and sufficient for solving the ECC are prepared, error correction with the data stored in the RAM 51 is executed by the ECC control unit 54.
[0040]
Here, the data storage address RA is expressed by the following equation using the data order Dn of the C1 series and the frame count Fn of the C1 code unit from the data written in the RAM 51 as shown in FIG.
[Expression 1]
Figure 0003672139
[Expression 2]
Figure 0003672139
[Equation 3]
Figure 0003672139
[Expression 4]
Figure 0003672139
Is required.
[0041]
Here, the RMIF 48 stores the results of the three ECC decoding sequences C11, C2, and C12 on the RAM 51, and is one of the AA, AB, AC, AD, AE, and AFth addresses of the frame including the head data of the sequence. Write to. Here, for example, if the ECC result is written in AA, AB, and AC, the memory address of the RAM 51 for the result of the three sequences C11, C2, and C12 of ECC decoding is easily generated by the frame count Fn and the data order AA, AB, AC it can.
[0042]
Here, in the disk reproducing apparatus 40, it is necessary to secure an amount of data sufficient to guarantee reading from the ring buffer memory 10 to the multiplexed data separation circuit 13, so that the RFCK is a reference at the time of recording (cutting) of the disk. -The channel bit rate during playback is set to a larger value than the channel bit rate 26.6 (Mbit / s).
[0043]
As shown in FIG. 5, for example, when EFM + writing (EFM + Wrire) is executed on the frame 182 of the RAM 51, the data of the C11 series is simultaneously transferred to the ECC decoder 52 in the order of 00, 02 to A9 (C11read). To do. Subsequently, after the C2 series data is transferred (C2read) to the ECC decoder 52, the C12 series data transfer (C12read) is executed. Then, the frame 0 in which the ECC of each series C11, C2, and C12 has been executed is data-transferred (OUT) to the OCTL 56. Here, ECC data transfer of each series C11, C2, and C12 is executed at a fixed interval so as not to be interrupted. In other words, in 1168 cycles of RFCK, ECC with a code length of 170 [bytes] is set so that ECC data is always transferred three times within the RFCK cycle once ECC data is transferred.
[0044]
In this way, the data S2 of the three ECC series C11, C2, and C12 stored in the RAM 51 is transferred to the ECC decoder 52 within one RFCK cycle. At this time, the ECC data in the RAM 51 is left as it is. Here, when an ECC error is detected in the ECC decoder 52 and the ECC error can be corrected, the error position and the error correction pattern are sent to the error register 53 as an error result ER. The ECC circuit 50 takes an exclusive OR (EXOR) of the correction pattern read from the error register 53 and the errored data read from the RAM 51 based on the error position, and writes it back to the RAM 51 again to correct the error. Execute.
From the ECC circuit 50, the decoded data S10 and the sector header data SH are separated and sent to the ring buffer memory 10 and the sector detection circuit 7, respectively.
[0045]
FIG. 6 shows execution control timings of actual data transfer, error result output, and error correction of each series C11, C2, and C12 of ECC data on the RAM 51. The ECC control unit 54 first executes C11 sequence error correction (C11W) at the timing when the ECC C12 sequence data transfer to the ECC decoding unit 55 is completed. Next, error correction (C2W) of the C2 sequence of the current frame is executed at a timing after the C11 sequence data of the next frame is transferred from the RAM 51 to the ECC decoder 52. Further, error correction (C12W) of the C12 sequence of the current frame is executed at the timing after the data transfer of the C2 sequence of the next frame.
[0046]
In this way, the ECC three-series data is continuously transferred from the RAM 51 to the ECC decoding unit 55 (C11R, C2R, and C12R), and subsequently ECC error correction (C11W, C2W, and C12W) is performed for each of the three series of data. By executing, ECC data reading and error correction can be performed within one RFCK period. As a result, the ECC series C11, C2, and C12 can be output from the RAM 51 at a fixed interval with respect to RFCK and without interruption.
[0047]
Here, when the ECC transfer code length NCYC is 170 cycles and the parity transfer code length PCYC is max 14 cycles, the timing when the error result is output to the ECC register is
[Equation 5]
Figure 0003672139
Therefore, the timing of ECC operation clock (ECCK) is set to 395 cycles.
Here, from the RMIF 48 of the ECC circuit 50, ECCs of the number of symbols for the C1 and C2 sequences are counted, and three times are always output in synchronization with the data transfer of C11R, C2R and C12R within one RFCK cycle. ing. Therefore, the result of C11 is always output during the data transfer of C12. Also, the results of the C2 and C12 sequences can be output without fail during the data transfer of C11 and C2.
[0048]
FIG. 7 shows the error output timing of the ECC circuit 50. Here, if the OSTT signal that is the output timing of the ECC result is output after (ECCK) 395 cycles obtained by the equation (5), OCORRECT = 1 after 3 clocks from the OSTT signal, and ODATA [7: 0] , OORIG [7: 0] outputs error pattern EDX and error position EAX. In this example, a case where three errors ED0 to ED2 are output will be described. Incidentally, the ECC start pulse signal ESTT is a signal for the ECC decoding unit 55 to recognize the head of the data of C1 and C2, and the OCORRECT signal is a strobe signal for capturing the ECC results ODATA [7: 0] and OORIG [7: 0]. It is.
The error pattern EDX and the error position EAX are temporarily held in the error register 53, and error correction is executed when the data transfer to the ECC decoder 52 at that time ends.
[0049]
FIG. 8 shows the number of ECC operation clocks (ECCK) required for accessing the RAM 51 in one frame (RFCK) period of each EFM +, C11, C2, C12, and OUT, that is, 1168 cycles. EFM + requires one sector sync pattern write cycle and 170 ± α cycles for EFM + demodulation output. ECC C11 series requires 170 cycles for reading C11, 8 + 8 cycles for error correction for C11, and 1 cycle for writing C11. One cycle of sector sync pattern read, 20 cycles of header data read and sector information write in SUB 1+ (14) cycles are required.
[0050]
Furthermore, the ECC C2 sequence requires 170 cycles for reading C2, 14 + 14 cycles for error correction for C2, and 1 cycle for writing C2. The ECC C12 series requires 170 cycles for reading C12, 8 + 8 cycles for error correction of C12, and 1 cycle for writing C12. Further, OUT indicating the end of ECC decoding is 1 cycle for reading sector information, 1 cycle for reading C11 correction results, 1 cycle for reading C2 error correction results, 1 cycle for reading C12 correction results, and 170 cycles for OUT. Cost. As a result, access to the RAM 51 of C11, C2, C12, and OUT totals 948 cycles.
[0051]
The SUB that executes reading of the header data is the transfer of the sync code (4 bytes) + header data (16 bytes) to the sector detection circuit 7. The sector detection circuit 7 for detecting the sector uses the sector address from the header data. After checking the CRC, apply the flywheel (FW) and transfer it to the system controller. The sector header data SH is extracted from the data obtained by ECC decoding only the C11 series at the timing (SUB) after C11W shown in FIG. Is extracted earlier by the time required for ECC decoding of the C2 and C12 sequences.
The flywheel is a protection and interpolation operation that keeps the locked state even if the sync is not detected several times. The system controller 4 compares and determines whether the sector is the target sector. The flywheel continuously detects the sync pattern of the binarized signal extracted from the RF signal several times. At that time, if the main sync pattern and the sub sync pattern are detected several times continuously, the flywheel locks.
[0052]
Further, the execution condition of the frame unit operation (JOB) for writing to and reading from the memory address and the RAM 51 is expressed by
[Formula 6]
Figure 0003672139
[Expression 7]
Figure 0003672139
[Equation 8]
Figure 0003672139
[Equation 9]
Figure 0003672139
Set as follows. Here, when the frame count for JOBXXX is set to Fn (XXX), the count is incremented by +1 when all the jobs for XXX in frame units are completed. SUB is included in C11.
[0053]
In EFM +, if a sync is detected several times in succession, a sync pattern FW lock is obtained. At this time, the memory write enable signal MWENS becomes MWENS = 1, and writing of EFM + demodulated data starts. When the sync cannot be detected several times in succession, the sync pattern FW is unlocked, the memory write enable signal becomes MWENS = 0, the EFM + write is prohibited, and each frame counter is reset to 0. Here, MWENS is a signal that becomes 1 when the sync pattern FW is locked, and is a memory write enable signal that executes writing to the memory when MWENS = 1.
[0054]
Here, in FIG. 9, for example, when the output OUT of the decoded data is a request OUTREQ once every four cycles of C11M, priority is given to access acquisition in the order of OUTREQ, EFMREQ, and ECCREQ for each request. The access acquisition timing for the RAM 51 is shown. Here, a predetermined job is executed with XXX ACK (ACKnowledge) = 1. ECC data output is started at the rising edge of RFCK and executed based on the job execution conditions. The ECC sequences C11, C2, and C12 are executed in the order of C11R-C2W-C2R-C12W-C12R-C11W-SUB including SUB.
[0055]
Accordingly, the ECC series C11, C2, and C12 and OUT are synchronized with the sync FW once, the state of MWENS = 1 continues, and if the execution condition of each job continues to be satisfied, Fn (C11) to Fn (OUT) The difference value of the count value is a fixed value in the RFCK cycle.
By the way, in the data decoding device 40 to which the present invention is applied, it is necessary to secure a data amount sufficient to guarantee reading from the ring buffer memory 10 to the multiplexed data separation circuit 13. Accordingly, RFCK is set so that the channel bit rate during playback is larger than the reference channel bit rate 26.6 (Mbit / s) during disk recording (cutting).
[0056]
(1-3) Sector detection
The detection of the target sector of the optical disk 2 and the generation of sector information will be described with reference to FIGS. First, FIGS. 10A and 10B show the frame structure of reproduction data read from the optical disk 2 and the specific contents of the sync word. As shown in FIG. 10B, the sync word is composed of an additional sync S1, a C1 sync C2, and a sector sync S3. FIG. 11 shows the sector format after deinterleaving.
When the sync pattern (S1 to S3) is detected by the sector detection circuit 7, the sync pattern FW is locked. Subsequently, the sector FW is detected in the sector header SH (HEADER), and then the sector address SA (ADRESS) is further detected. FW lock.
[0057]
Next, each bit BIT data of the sector information shown in FIG. 12 will be described. First, bit 7 indicates the detection result of the presence or absence of the sector sync pattern S3, and 1 is set in the frame in which the sector sync pattern S3 is detected. Bit 6 indicates the detection result of the presence / absence of a sync code, and the sector detection circuit 7 sets “1” in a frame in which a specific code “HDCD” is detected at the position of the sync code at the head of the sector. Bit 5 indicates the recognition of the sector sync. Interpolation is performed by using the information of the sector sync pattern S3 and the sector sync code SC to set the frame regarded as the sector sync by the sector detection circuit 7 to be 1. Sector sync.
[0058]
Next, bit 4 indicates the CRC check result. If no error is detected as a result of the calculation of each sector CRC, "0" is written.
Bit 3 indicates the ECC decoding result of the C1 sequence, and is set to “0” if no error is detected. As a result of ECC decoding of the C11 sequence from the RMIF 48, a flag indicating whether or not the data is uncorrectable is fetched by the sector detection circuit 7 and written in this bit.
[0059]
Bit 2 indicates the continuity of the sector address SA. The sector address currently being read (Raw Sector Adrress, RSA) and the sector address (Current Sector Adrress, CSA) stored in the sector detection circuit 7 Are equal (actually, RSA is compared with CSA + 1 of the previous sector), it is determined that the sector has continuity, and BIT2 = 1.
Bit 1 indicates the detection result of the start sector address BSA, and is set to "1" when the address BSA is detected. Bit 0 indicates the detection result of the end sector address ESA, and is set to “1” when the address ESA is detected.
[0060]
In actual sector detection, as shown in FIG. 13A, the system controller 4 sets a BSA setting mode SACT = 1 (shown in FIG. 19 described later) to a register (not shown) in the sector detection circuit 7. At the same time, the head address BSA and the sector last address ESA of the target sector are set, extracted from the reproduction data in the register (not shown) in the sector detection circuit 7, and the sector address FW is locked. Compare with sector address. When it is confirmed that the sector address detected by this comparison result is that of the target sector, this comparison result is written back to the RAM 51 as sector information (bits 0, 1).
[0061]
Here, when SACT = 1, output is possible from the frame M (FIG. 18). However, when initialization of descrambling is performed using a sector address, it is a condition that an output sector address for descrambling can be extracted before that. The output sector address uses a protected output sector address due to the address continuity of the sector information.
[0062]
Further, this sector information is sent to the OCTL 56 together with the ECC decoded data S10 for which ECC decoding has been completed by the ECC circuit 50, and is used for controlling the data output OUT of the ECC decoded data. At this time, the system controller 4 anticipates ECC interleaving and tracks the disk access position to a position ahead of the sector on the target optical disk 2.
At this time, if the target sector is not specified by the system controller 4, by setting SACT = 0 in advance, data can be output from the time when ECC decoded data can be read.
[0063]
The detection result of the presence or absence of the sector sync pattern S3 of the bit 7 of the sector information is written into the RAM 51 for each frame together with the EFM + demodulated data detected from the reproduction data at the time of EFM + demodulation in the EFM + demodulating circuit 44, and the sector detection is performed together with the header data SH. It is transferred to the circuit 7. The sector detection circuit 7 recognizes the sector from the optical disk 2 based on the detection result of the presence or absence of the sector sync pattern S3 in each frame. Here, when the sector of the optical disk 2 is recognized by the sector detection circuit 7, the sector address SA is extracted from the header data SH of the sector.
[0064]
In the sector detection circuit 7, the flywheel FW is applied to the sector address SA by adaptively using the CRC check in the header data SH, the continuity of the address, the ECC decoding result of the C1 series of the sector frame, and the like. The system controller 4 takes out the sector address SA which is in a protected sector address FW lock state by applying the flywheel FW and uses it as position information ADD of the optical disk 2.
[0065]
Of the sector information, bits 0 and 1 are referred to by the OCTL 56. When the sector information bit 1 is "1" and bit 0 is "0", that is, when sectors from the sector address BSA to ESA are detected. The system controller 4 is set so that it can output the target sector data. Here, when the sector address ESA is not designated, bit 0 holds “0”. During this time, the ECC decoded data continues to be output to the ring buffer memory 10. Here, for example, a data output control register (not shown) provided in the OCTL 56 may be used to control data output regardless of the state of bits 0 and 1.
[0066]
Here, as shown in FIG. 13B, the setting of the start sector address BSA and the end sector address ESA can be reset from the system controller 4 after the track jump, in addition to when the track jump is performed. . For example, when the access position on the disk is close, such as when skipping data that is not required during the fast-forward operation, the sector address BSA and / or ESA is reset after recognizing the current sector address SA. As a result, data can be output from the sector address BSA without performing a track jump.
[0067]
FIG. 14 shows a time relationship from when the sync pattern (S1 to S3) is locked until the sector address SA can be read and data is output. If the sync pattern (S1 to S3) is locked after EFM + demodulation is started after the system controller 4 tracks the disk access position, the sync pattern lock SYLK becomes SYLK = 1. Subsequently, the sector address SA of the target sector is locked in the flywheel FW (when SALK = 1). Subsequently, when the C11 execution frame of ECC decoding becomes 170 or more, STOK = 1 is set, and subsequent data can be output OUT after ECC decoding.
Actually, after executing approximately 173 frames for ECC decoding of C2 sequence including jitter more than the timing of STOK = 1, valid data of ECC decoded data is sent to the next stage at the timing when the start sector address BSA is detected. The data strobe signal DSTB to be output to the ring buffer memory 10 becomes DSTB = 1, and the output of valid data of the ECC decoded data S10 is started.
[0068]
In the above configuration, the actual sector detection and data output are performed at the timing after execution of C11 indicated by the arrow in FIG. 15 in the state where the enable signal + LATCHED MWEN for enabling writing of EFM + decoded data is "1". The sector detection bit 7 of the sector information is analyzed by the sector detection circuit 7 for the presence or absence of the sector sync pattern, the sync code SC, and the header data SH, and the reading operation of the sector address SA is started. Here, the lead frame clock RFCK cycle is:
[Expression 10]
Figure 0003672139
Is required.
[0069]
Subsequently, as shown in FIG. 16, the frame at the head of the sector is detected (3 frames). For example, the sector FW is locked when the sector determination condition in which the bits 6 and 7 of the sector information are “1” is satisfied. Further, when it is determined that the continuity of the sector address is correct, the sector address SA determination condition is satisfied, and the sector address FW is locked (3 frames). As a result, SALK = 1 is set at a timing indicated by an arrow in the drawing (further considering a margin of about one frame such as jitter). The system controller 4 can read the sector address SA locked by the FW if SALK = 1. The frame count Fn (C11) of the C11 sequence of ECC decoding at this time, N is the following equation:
[Expression 11]
Figure 0003672139
It is expressed by
[0070]
Subsequently, as shown in FIG. 17, after 170 frames of ECC decoding of the C11 sequence, all of the C11, C2, and C12 sequences of ECC decoding are executed, and when the RMIF 48 determines that the frame is an output frame, STOK = 1 and the sector detection circuit 7 is notified at the SUB timing that output is possible.
[0071]
Next, as shown in FIG. 18, when STOK = 1 when the start sector address BSA is detected in the frame M at the head of the sector, the frame M can be output in the future by ECC decoding, so the bit of the sector information can be output. When 1 is detected, that is, when the sector address BSA which is the head address of the sector is detected, the signal ISTT which becomes "1" is set to ISTT = 1, and the sector information bits 7 to 0 at the end of the SUB. Is written back to the RAM 51. At this time, if STOK = 0 when detecting the start sector address BSA, the system controller 4 executes an access again to the optical disk 2 from a position ahead of the previous time, for example, as an error.
[0072]
Here, as shown in FIG. 19, when the sector address BSA is set and SACT = 1, the data strobe signal DSTB = 1 and the ECC decoded data Fn (OUT) can be output sequentially from the frame M (FIG. 19). (Indicated by arrows) However, when the descrambling initialization is executed by the sector address SA, it is a condition that the output sector address SA for descrambling can be extracted before that. As the output sector address SA, the output sector address SA protected by the address continuity of the sector information is used.
[0073]
As shown in FIG. 20, when SACT = 0 in which the sector addresses BSA and ESA are not set, output is possible from the head of the sector after the 170th frame (indicated by arrows in the figure). However, the reason why the 170th frame cannot be output is that an output sector address SA for descrambling is required. Therefore, it waits for the output sector address SA to be read for a maximum of one sector. When initialization of descrambling is executed with the output sector address SA, DSTB = 1 and output to the ring buffer memory 10 is started.
In this way, sector detection can be performed based on sector information, and output of data in the target sector can be controlled. Thus, by setting a small memory area for sector information in the RAM 51, the sector information is used to reliably access the target sector data and control the data output without increasing the memory required for ECC decoding. Can do.
[0074]
According to the above configuration, by providing a small area for storing sector information used for sector detection in the decoding RAM 51 in the ECC circuit 50, the encoded data decoded in the ECC circuit 50 is interleaved. Even in such a case, ECC decoding can be executed with a memory capacity almost used for ECC decoding without providing a separate sector detection memory.
[0075]
Further, according to the above-described embodiment, whether or not the output to the ring buffer memory 10 at the next stage can be performed at the timing when the C11 sequence of ECC decoding is completed by the sector information generated in the sector detection circuit 7 and the STOK signal generated by the RMIF 48. Can be determined. As a result, it is possible to immediately determine whether the sector data can be written to the ring buffer memory 10 in the next stage at the timing when the system controller 4 recognizes the sector address SA for disk access. Can be done quickly and reliably.
[0076]
Furthermore, according to the above-described embodiment, data can be output to the next-stage ring buffer memory 10 at the timing OCCRRECT = 1 (FIG. 7) when the system controller 4 recognizes the sector address SA for disk access. Therefore, it is not necessary to newly provide a circuit for detecting the sector address SA from the ECC-decoded data stored in the RAM 51, and the entire circuit configuration can be simplified.
[0077]
(2) Second embodiment
(2-1) Record data format
FIGS. 21 to 24 show the recording data format in the second embodiment. In this embodiment, data is recorded with one cluster (32 kbytes) as one unit. The configuration of this cluster will be described in detail below.
[0078]
That is, 2 kbytes (2060 bytes) of data is extracted as one sector of data, and 4 bytes of overhead is added thereto as shown in FIG. This overhead includes an error detection code (EDC (Error
Detection Code)).
[0079]
The data of one sector of the total 2064 (= 2060 + 4) bytes is 12 × 172 (= 2064) bytes as shown in FIG. Then, 16 pieces of data corresponding to one sector are collected to obtain 192 (= 12 × 16) × 172 bytes of data. A 16-byte outer code (PO) is added as parity for each byte in the vertical (column) direction to the 192 × 172-byte data. Further, with respect to 208 (= 192 + 16) × 172 bytes of data and PO parity, a 10-byte inner code (PI) is added as parity for each byte in the horizontal (row) direction.
[0080]
Further, of the data blocked in this way into 208 (= 192 + 16) × 182 (= 172 + 10) bytes, 16 × 182 byte outer code (PO) rows are 16 1 × 182 byte rows. As shown in FIG. 23, one line is inserted below the 16 sector data of number 0 to number 15 of 12 × 182 bytes, and interleaved. Then, 13 (= 12 + 1) × 182 bytes of data is used as one sector of data.
[0081]
Further, as shown in FIG. 24, the 208 × 182 byte data shown in FIG. 23 is divided into two in the vertical direction, and one frame is composed of 91 byte data to form 208 × 2 frame data. A 2-byte frame synchronization signal (FS) is further added to the head of the 91-byte frame data. As a result, as shown in FIG. 24, the data for one frame is 93 bytes in total, and the data is 208 × (93 × 2) bytes in total. This is data for one cluster (one ECC block). The size of the actual data part excluding the overhead part is 2 kbytes (= 2048 × 16/1024 kbytes).
[0082]
That is, in this example, one cluster (1 ECC block) is composed of 16 sectors, and one sector is composed of 24 frames. Such data is recorded on the optical disk 2 in units of clusters.
[0083]
(2-2) Data reproduction device and ECC decoding
FIG. 25 shows a demodulation circuit system 35 in the case where the recording data format of the second embodiment is applied to the data reproducing apparatus 40 described above with respect to the first embodiment, and shows a demodulation circuit 6 (RF processing circuit 130, EFM +). Demodulation circuit 131), sector detection circuit 7 (SBCD circuit 134, RAM controller 135, RAM 137), and ECC circuit 50 (RAM controller 135, ECC control circuit 136, RAM 137, ECC core circuit 138, OCTL circuit 139) and their peripherals This is a detailed configuration of the circuit.
[0084]
In this figure, the RF processing circuit 130 receives an RF signal input from the pickup 3 shown in FIG. 1, binarizes this signal, and outputs it to the EFM + demodulation circuit 131. The EFM + demodulation circuit 131 performs EFM + demodulation on the input signal and detects a synchronization pattern. The CLV control circuit 132 controls a drive interface (hereinafter abbreviated as drive IF) 133 based on the synchronization pattern output from the EFM + demodulation circuit 131. The SBCD (subcode) circuit 134 detects a sector from the output of the EFM + demodulation circuit 131. The RAM controller 135 corresponds to the RMIF 48 in FIG. 3 and controls reading and writing of the RAM 137.
[0085]
The RAM 137 temporarily stores data and the like when the ECC control circuit 136 executes error correction processing or the like. The ECC core circuit 138 corresponds to the ECC decoding unit 55 shown in FIG. 3, generates Reed-Solomon codes (PI and PO), and generates ECA, ECD, SGLG, etc., which will be described later, and outputs them to the ECC control circuit 136. The ECC control circuit 136 actually performs error correction using ECA, ECD, SFLG and the like supplied from the ECC core circuit 138. The OCTL circuit 139 performs descrambling processing, EDC check, output data control, and the like. The host CPU 140 corresponds to the system controller 4 in FIG. 1 and controls each part of the apparatus.
[0086]
A reproduction signal from the optical disk 2 (FIG. 1) is converted into a binarized signal in the RF processing circuit 130. Then, a synchronization pattern is detected by the EFM + demodulation circuit 131 from the binarized signal. Then, in the CLV control circuit 132, rough servo is applied based on this synchronization pattern, and as a result, sync codes (SY0 to SY7 in FIG. 26) in the data are further detected and passed through the drive interface 133. Thus, phase servo by PLL (Phase Locked Loop) is applied to the rotation of the optical disk 2.
[0087]
FIG. 26 shows a configuration example of the physical sector of the optical disk 2. As shown in this figure, the physical sector is composed of two sync frames in the horizontal direction and 13 sync frames in the vertical direction, for a total of 26 sync frames. Each sync frame is expressed as 32 channel bits (16 bits (= 2 bytes) when expressed as data bits before being modulated) and 1456 channel bits (when expressed as data bits before being modulated). It consists of a data portion of 728 bits (= 91 bytes). In the data portion of the first sync frame, main data (main data) is stored in addition to ID information (sector number) and IED (error detection code for ID) information.
[0088]
The sync pattern of 32 channel bits is a unique pattern that does not appear in the data, and its lower 22 bits are set to “0001000000000000000010001”.
[0089]
The main data is recorded in the data portion of each sync frame on the left side of FIG. 26, and PO information (parity) is recorded in the data portion of the last sync frame on the left side of FIG. In the right sync frame of FIG. 26, main data and PI information are recorded, and in the second sync frame from the end of the right sync frame, EDC information and PI information (parity) are recorded. In the table, PO information and PI information are recorded.
[0090]
FIG. 27 shows details of data excluding PI information and PO information of each sector, ID (sector number) (4 bytes), IED (error detection code for ID (2 bytes)), RSV (holding area) (6 bytes) ), One sector of data is composed of main data and EDC (4 bytes). The main data is scrambled.
[0091]
Then, 16 data sectors are collected, and a 16-byte PO code and a 10-byte PI code are added as shown in FIG. Further, the 16 rows including the PO code are interleaved so as to be arranged for each data sector. Then, as shown in FIG. 24, the obtained data is added with an FS (frame synchronization) code represented by a sync code SYx (x = 0, 1, 2,..., 7), and EFM + modulated. The As a result, the physical sector in the ECC block is composed of 13 × 2 sync frames as shown in FIG. Since one ECC block is composed of 16 sectors, the lower 4 bits of the physical sector address are any one of 0000-1111. As a result, the physical address of the first sector of the ECC block is 0000 in the lower 4 bits.
[0092]
The scramble process for the main data is performed by calculating an exclusive OR between the scramble data generated with the value specified by the lower 4 bits to 7 bits of the physical sector address as an initial value and the main data. Executed.
[0093]
In this specification, since various symbols are used for various signals, they will be described together here.
[0094]
block-top (Block Top)
This signal is H from the head of the sector when the SYLK signal is H.
C11M (Clock 11.2896 MHz)
This is the operation clock of the system, and its frequency is 11.2896 [MHz].
DSTB (Data strobe)
This is a data strobe signal that becomes H when main data is output as the stream data SD.
ECA (ERR Correction Address)
It is an error correction address signal indicating a position (address) where there is an error.
ECCK (ECC Clock)
This is an operation clock of the ECC core circuit 138.
ECD (Error Correction Data)
This is error correction data that becomes correct data when calculating an exclusive OR with erroneous data.
ECDE (ECC Code Data End)
This is a controller signal indicating the end of input data.
ECOD (ECC Code ERR)
This signal becomes H when error correction is impossible.
ECOR (ECC Correction)
It is a strobe signal indicating the output of error correctable data (ECA, ECD).
ECYE (ECC Cycle End)
It is a controller signal indicating the end of the cycle of input code data.
EDT (ECC Data)
This data is read from the RAM 137 and transferred to the ECC control circuit 36 for error correction.
ESTB (Error Strobe)
This is an error correction result strobe signal that becomes H when the error correction result ER is transferred.
ESTT (ECC Start)
It is a controller signal indicating the head of input data.
EFM + W Frame (EFM + Write Frame Counter)
A signal representing a main frame to be written into the RAM 137.
HDEN (Header Data Enable)
This is a strobe signal of sector header data.
main-FMSY (main Frame Sync)
This signal is H at the main sync (first sync) of each PI row.
MWEN (Memory Write Enable)
This is an enable signal for writing EFM + demodulated data into the RAM 137.
MWRQ (EFM Write Request)
This is a request signal for writing EFM + demodulated data into the RAM 137.
OUTE (Output Flag)
This is an interpolation flag (output flag).
OSTT (ECC Output Start)
This is a signal output with a delay of 477 (ECCK) after ESTT in a predetermined code sequence.
RDT (Read Data)
Data on the read data bus of the RAM 137.
SALK (Sector Address Lock)
This is a signal indicating that the sector address (ID) is normally detected.
SAUL (Sector Address Unlock)
This is a signal having a polarity opposite to that of the SALK signal.
SCSY (Sector Sync)
This is a signal for determining the head of the sector, which becomes H in the frame of SY0.
SD (Stream Data)
Stream data (decoded output data).
SDCK (Stream Data Clock)
This is a stream data clock.
SFLG (Sector Flag)
This is an ECC uncorrectable flag for PI1 correction.
SINF (Sector Infomation)
This is a sector information strobe signal that becomes H at the head of the sector.
SUB (SUB Data)
This is data including ID and IED transferred to the SBCD circuit 134.
SYLK (Sync Lock)
This signal is H when a sync code is detected three times in succession.
SYUL (Sync Unlock)
This is a signal having a polarity opposite to that of the SYLK signal.
WDT (Write Data)
This is data on the write data bus of the RAM 137.
XHWE (Sector Header Write Enable)
This is an output enable signal for sector information to be written from the SBCD circuit 134 to the RAM 137.
[0095]
The data demodulated by the EFM + demodulating circuit 131 (FIG. 25) is stored in the RAM 137 as shown in FIG. 28 under the control of the RAM controller 135. FIG. 28 shows one ECC block. When data stored in the RAM 137 is read, the RAM controller 35 can acquire desired data by designating the row and column values shown in FIG. That is, in FIG. 28, the data x in the Nth byte of the Mth row can be read from the RAM 137 by specifying binary (M, N).
[0096]
When the head of the data sector recorded on the optical disk 2 is recognized by the SBCD circuit 134 based on the type and continuity of the sync code, the data demodulated by the EFM + demodulation circuit 131 is sequentially from the head data. Stored in the RAM 137. FIG. 29 shows the signal timing of the main part of the circuit concerned at this time.
[0097]
That is, the EFM + demodulation circuit 131 detects the lock state of the sync as shown in FIG. First, in step SP1, it is determined whether or not the sync code (SY0 to SY7) shown in FIG. 26 has been detected in each sync frame. If the sync code can be detected, the process proceeds to step SP2, where the variable SClock is incremented by 1 and the variable SC unlock Set to 0. This variable SClock represents the number of times when sync codes are detected continuously, and the variable SClock. unlock Represents the number of times when a sync was not detected continuously.
[0098]
Next, in step SP3, it is determined whether or not the variable SClock is equal to 3. That is, it is determined whether or not a sync has been detected three times in succession. If the variable SClock is smaller than 3, the process returns to step SP1, and the subsequent processing is repeatedly executed. If it is determined in step SP3 that the variable SClock is equal to 3, the SYLK signal is set to H in step SP4 as a lock state. Then, in step SP5, in order to determine whether or not a sync has been detected three times in succession, the variable SClock is set to 2, the process returns to step SP1, and the subsequent processing is repeatedly executed.
[0099]
On the other hand, if it is determined in step SP1 that no sync code has been detected, the process proceeds to step SP6 and the variable SC. unlock Is incremented by 1 and the variable SC lock Is set to 0. In step SP7, the variable SC unlock Is equal to 3 or not. That is, it is determined whether or not the sync code has not been detected three times in succession. If the number of times of continuous detection is not more than 2, the process returns to step SP1, and the subsequent processing is repeatedly executed. If no sync is detected three times in succession, the process proceeds to step SP8, where the SYLK signal is set to L. Then, the process proceeds to step SP9 where the variable SC unlock Is set to 2 so that the SYLK signal can remain set to L when no sync code is detected even at the next sync code generation timing. unlock Is set to 2, and the process returns to step SP1.
[0100]
As described above, the EFM + demodulating circuit 131 detects the sync code and constantly monitors whether or not it is in the locked state.
[0101]
In the above-described embodiment, the number of times of detection is set to 3 times. LOCK And the number of discontinuous detections N UNLOCK Each can be an arbitrary value.
[0102]
As described above, when the SYLK signal becomes H, that is, when the EFM + demodulation circuit 131 is in a locked state, the EFM + demodulation circuit 131 executes the processing shown in the flow chart of FIG. That is, in step SP21, it is determined whether or not the sync code SY0 arranged at the head of each sector has been detected. When the sync code SY0 is detected, the process proceeds to step SP22, where the SCSY signal indicating the head of the sector is set to a predetermined time H. Next, proceeding to step SP23, it is determined whether or not the SYLK signal has changed to L. If it is not L (if it remains H), the process returns to step SP21 and the same processing is repeated. If it is determined in step SP21 that the sync code SY0 has not been detected, the processing in step SP22 is skipped.
[0103]
As described above, the EFM + demodulation circuit 131 generates the SCSY signal shown in FIG. 29A at the head of each sector.
[0104]
Further, when the SYLK signal becomes H, the EFM + demodulator circuit 131 executes the processing shown in the flow chart of FIG. First, in step SP31, the sync code of the main frame (hereinafter, the two sync frames in the horizontal direction in FIG. 26 are collectively referred to as one main frame) (hereinafter, left of the sync codes in FIG. 26). It is determined whether or not the sync code shown in FIG. When the main frame sync is detected, the process proceeds to step SP32, where the EFM + demodulator circuit 131 generates the main-FMSY signal shown in FIG. If it is determined in step SP31 that no main frame sync has been detected, the processing in step SP32 is skipped.
[0105]
Next, proceeding to step SP33, it is determined whether or not the SYLK signal has changed to L. If it has not changed (if it remains H), the process returns to step SP31 and the subsequent processing is repeated. When the SYLK signal changes to L, the main-FMSY signal generation process is stopped.
[0106]
In this way, the EFM + demodulating circuit 131 generates a main-FMSY signal every main frame sync cycle (the cycle of two sync frames in the horizontal direction in FIG. 26).
[0107]
When the SCSY signal is input from the EFM + demodulating circuit 131, the RAM controller 135 sets the MWEN signal to H as shown in FIG. 29 (D) and writes the data of the sector currently detected to the RAM 137. To start. That is, at this time, the RAM controller 135 counts the main frame shown in FIG. 26 with a built-in EFM + W Frame counter (not shown) as shown in FIG. This count value represents an order number from the top of the main frame shown in FIG.
[0108]
In addition, as shown in FIG. 29F, the RAM controller 135 manages the number of the main frame transmitted to the RAM 137 using a built-in PI1 Frame counter (not shown).
[0109]
That is, when the data of the first main frame shown in FIG. 26 (the main frame of number 0 (the main frame in the uppermost row in FIG. 26)) is written in the RAM 137, the ECC control circuit 136 controls the RAM controller 135. The main frame data is received. Then, this data is transferred to the ECC core circuit 138, and error correction processing is executed. That is, the PI1 process is executed. The data after the PI1 correction is written back to the RAM 137 again.
[0110]
After the execution of this PI1 correction (the first PI correction), the RAM controller 135 reads the ID and IED data (SUB) from the mainframe data of number 0 stored in the RAM 137, as shown in FIG. At the timing of the SUB signal indicated by number 0 in C), the ID and IED data of the number 0 main frame are transferred to the SBCD circuit 134 via the data bus. As shown in FIG. 26, since the ID and IED data are arranged only at the head of each sector, this transfer process is executed only in the main frame of number 0. In this way, the SBCD circuit 134 detects the address (ID) of the physical sector.
[0111]
Then, the leading sector of the ECC block is detected based on the lower 4 bits of the detected physical sector address.
[0112]
FIG. 33 shows a timing chart when a block-top is detected following the transfer of the ID, and FIG. 34 shows a process after the block-top detection. Will be described later.
[0113]
FIG. 35 is a timing chart showing more detailed timing of the ID transfer described above. As shown in FIG. 35A, the RAM controller 135 outputs an HDEN signal indicating the timing at which ID and IED data are read from the RAM 137 to the SBCD circuit 134. At this time, the ID data (4 bytes) and the IED data (2 bytes) are read from the RAM 137 to the SBCD circuit 134 as a total of 8 bits of read data RDT (FIG. 35C) from the 7th bit to the 0th bit. ) Is transferred in synchronization with the clock C11M (FIG. 35 (F)) having a frequency of 11.2896 [MHz]. It is supplied from the ECC core circuit 138 to the ECC control circuit 136 that the ID data and the IED data are not in an uncorrectable state (in this case, the SFLG signal becomes H) as a result of the PI1 correction. This is represented by the SFLG signal (= 1). When the SBCD circuit 134 is supplied with an ID (sector address), the sector information SI corresponding to the ID (sector) is sent from the host CPU 140 as a command (an interpolation flag generation mode, a command such as a start sector, an end sector, or the like). ). For example, for an ID sector whose output is specified by the host CPU 140, 1 is set in bit 5 of the sector information, and 0 is set in bit 4.
[0114]
FIG. 36 shows the configuration of sector information (SI). As shown in the figure, each bit of the sector information has the following information.
[0115]
Bit 7: Interpolation flag (OUTF) generation mode setting (1: Interpolation flag generation mode)
Bit 6: First sector of ECC block (set to 1 when lower 4 bits of physical sector address are 0) (1: first sector)
Bit 5: Start sector (If the physical sector address matches the start sector address specified by the host CPU 140, it is set to 1) (1: Start sector)
Bit 4: End sector (1 when the physical sector address matches the end sector address specified by the host CPU 140) (1: End sector)
Bit 3: Descramble initialization address bit 3 (7th bit of physical sector address)
Bit 2: Bit 2 of the descrambling initialization address (6th bit of the physical sector address)
Bit 1: Descramble initialization address bit 1 (5th physical sector address bit)
Bit 0: Bit 0 of the descrambling initialization address (fourth bit of the physical sector address)
[0116]
A check process is performed using the 4-byte ID and 2-byte IED, as will be described later with reference to FIGS. 38 to 40, and the XHWE signal shown in FIG. To L. At this time, the sector information SI is transferred from the SBCD circuit 134 to the RAM 137 and written as 8-bit write data WDT. Sector information for 16 sectors is stored so as to correspond to the upper 16 PI rows as shown in FIG. Therefore, by designating the number of predetermined PI rows, the corresponding sector information can be obtained.
[0117]
In actual sector detection, as shown in FIG. 37 (A), the host CPU 140 sets the BSA setting mode in a register (not shown) in the SBCD circuit 134, and also sets the address BSA at the head of the target sector and The last address ESA of the sector is set, and in a register (not shown) in the SBCD circuit 134, it is extracted from the reproduction data and compared with the sector address locked with the sector address FW. When it is confirmed that the sector address detected by this comparison result is that of the target sector, this comparison result is written back to the RAM 137 as sector information (bits 4 and 5).
[0118]
Further, this sector information is sent to the OCTL 139 together with ECC decoded data for which ECC decoding by the ECC circuit 50 has been completed, and is used for control when ECC decoded data is output. At this time, the host CPU 140 anticipates ECC interleaving and tracks the disk access position to a position ahead of the sector on the target optical disk 2.
At this time, if the target sector is not specified by the host CPU 140, the data can be output from the time when the ECC decoded data can be read by canceling the BSA setting mode in advance.
[0119]
Of the sector information, bits 4 and 5 are referred to by OCTL 139. When sector information bit 5 is "1" and bit 4 is "0", that is, when sectors from sector address BSA to ESA are detected. It is set so that the data of the target sector of the host CPU 140 can be output. Here, when the sector address ESA is not designated, bit 0 holds “0”. During this time, the ECC decoded data continues to be output to the ring buffer memory 10. Here, for example, a data output control register (not shown) provided in the OCTL 139 may be used to control data output regardless of the state of bits 0 and 1.
[0120]
Here, as shown in FIG. 37 (B), the setting of the start sector address BSA and the end sector address ESA can be reset from the host CPU 140 after the track jump, in addition to when the track jump is performed. For example, when the access position on the disk is close, such as when skipping data that is not required during the fast-forward operation, the sector address BSA and / or ESA is reset after recognizing the current sector address SA. As a result, data can be output from the sector address BSA without performing a track jump.
[0121]
Next, ID and IED check processing in the SBCD circuit 134 will be described with reference to the flow charts of FIGS.
[0122]
The SBCD circuit 134 determines whether or not there are N or more consecutive sectors (3 in this embodiment) whose IED check result is normal (no error in the ID) by the processing shown in the flow chart of FIG. Determine whether.
[0123]
Therefore, in the first step SP41, it is determined whether or not the fetched IED check is normal. If the IED check is normal, the process proceeds to step SP42, and a variable SA indicating the number of sectors with a normal ID is obtained. lock Is incremented by one. A variable SA representing the number of consecutive sectors having an abnormal ID (the ID has an error) unlock Is set to 0.
[0124]
Next, proceeding to step SP43, the variable SA lock Is equal to 3 or not. Variable SA incremented at step SP42 lock Is determined not to be equal to 3, the process returns to step SP41, and the subsequent processing is repeatedly executed. In step SP43, the variable SA lock When it is determined that is equal to 3, that is, when a sector having a normal ID is reproduced three times in succession, the process proceeds to step SP44 and the flag IECOK is set to H. In step SP45, a variable SA is detected in order to detect the number of times that the next IED check is normal continuously. lock Is set to 2, and the process returns to step SP41 to repeat the subsequent processing.
[0125]
If it is determined in step SP41 that the IED is not normal, the process proceeds to step SP46 and variable SA unlock Is incremented by 1 and the variable SA lock Is set to 0. In step SP47, the variable SA unlock Is equal to 3, if not, the process returns to step SP41 to repeat the subsequent processing.
[0126]
In step SP47, the variable SA unlock Is determined to be equal to 3, that is, when a sector in which the IED check is not normal is detected three times in succession, the process proceeds to step SP48 and the flag IECOK is set to L. Next, in step SP49, when the next IED check is not normal, it is possible to continuously detect that the number of consecutive times is 3 times in the variable SA. unlock Is set to 2, and the process returns to step SP41 to repeat the subsequent processing.
[0127]
As described above, the SBCD circuit 134 sets the flag IECOK to H when the IED check is normal three times or more continuously, and sets the flag IECOK when the IED check is normal three times or more continuously. Set to L.
[0128]
The SBCD circuit 134 further determines the continuity of the ID (address) by the process shown in FIG. That is, the ID of each sector in one ECC block is specified to be incremented by one sequentially. Therefore, this continuity is determined as follows.
[0129]
First, in step SP61, it is determined whether or not an ID (sector address) has been detected. If the ID is detected, the process proceeds to step SP62, and the ID is stored so that it can be compared with the next ID. In step SP63, it is determined whether or not the ID detected this time is one greater than the ID detected last time and stored in step SP62. If the current ID is one greater than the previous ID, the process proceeds to step SP64, and a variable N indicating that correct IDs are continuously detected. S Is incremented by one. In addition, a variable N representing the number of times IDs are not detected or are not consecutive. NS Is set to 0.
[0130]
In step SP65, the variable N S If it is not equal (if no ID that is incremented by 1 consecutively three times is detected), the process returns to step SP61 and the subsequent processing is repeatedly executed. Variable N S If it is determined that is equal to 3, the process proceeds to step SP66, and the flag AS indicating that the ID is continuously in a correct state is set to H. Then, in step SP67, when the next ID is detected, the variable N is detected so that it can be detected again that the correct ID has been detected three times in succession. S Is set to 2, and the process returns to step SP61 to repeat the subsequent processing.
[0131]
In step SP61, if no ID is detected, or if it is determined in step SP63 that the ID detected this time is not 1 larger than the previously detected ID (if determined to be discontinuous), Proceeding to step SP68, it is determined whether or not the flag SALK is H. This flag SALK will be described later with reference to FIG. 26, and is set to H when the IED check is normal continuously for 3 times or more and the ID continuity is maintained for 3 times or more. .
[0132]
If it is determined in step SP68 that the flag SALK is set to H, the process proceeds to step SP69, where ID interpolation processing is executed. That is, the ID is not detected or the IDs are not continuous. Therefore, an ID obtained by adding 1 to the previous ID is generated and used instead of the detected ID. To. When the flag SALK is set to L, such an interpolation process is not performed, and the process of step SP69 is skipped.
[0133]
Next, in step SP70, the variable N NS Is incremented by 1 and the variable N S Is set to 0. In step SP71, the variable N NS It is determined whether or not is equal to 3, and if it is determined that they are not equal, the process returns to step SP61 and the subsequent processing is repeatedly executed. In contrast, N NS When it is determined that is equal to 3, the process proceeds to step SP72 where the flag AS is set to L. In step SP73, if the next ID is not detected, the variable N is set so that it can be continuously detected that it has not been detected three times in succession. NS Is set to 2, and the process returns to step SP61 to repeat the subsequent processing.
[0134]
As described above, the SBCD circuit 134 sets the flag AS to H when ID continuity is secured, and sets it to L when the ID is not secured.
[0135]
The SBCD circuit 134 generates the flag SALK using the two flags IECOK and AS generated as described above.
[0136]
That is, in step SP81 in FIG. 40, it is determined whether or not the flag IECOK is H. If it is determined that the flag is H, the process proceeds to step SP82 to determine whether or not the flag AS is H. . If it is determined in step SP82 that the flag AS is H, the process proceeds to step SP83, and the flag ASLK is set to H.
[0137]
On the other hand, if it is determined in step SP81 that the flag IECOK is L, or if it is determined in step SP82 that the flag AS is L, the process proceeds to step SP84 and the flag SALK is set to L. To do.
[0138]
As described above, in the SBCD circuit 34, the flag SALK is set to H when the IEC is normal continuously for 3 times or more and the ID is incremented by 1 for 3 times or more. If the IEC is normal for 3 times or more continuously or the ID is discontinuous for 3 times or more, the flag SALK is set to L.
[0139]
The host CPU 140 detects the position (access position on the optical disk 2) where the laser beam is currently irradiated with reference to the ID data described above together with the state of SALK.
[0140]
Note that the PI1 correction result is shown in FIG. lock Or SA unlock It is also possible to add to these conditions. In addition, SA lock Or SA unlock The number of times is set to 3 as described above, but can be set to a different value by the host CPU 140.
[0141]
When SALK is in the state of SALK = L (SALK = H at this time) and SYLK = L (in this case, SYUL = H), writing EFM + demodulated data from EFM + demodulation circuit 31 to RAM 37 And ECC control are both reset. Thereafter, when the unlock state is canceled (SAUL = L) and SYLK = H, writing of EFM + demodulated data to the RAM 137 is resumed.
[0142]
Unlock can be forcibly executed by the host CPU 140. For example, the ECC control can be reset by setting the unlock state by the host CPU 140 after executing the jump between tracks.
[0143]
Also, it is possible to select whether the unlock state is executed by the host CPU 140 or automatically without intervention of the host CPU 140.
[0144]
When SYLK is in the H state (lock state) and the sector information bit 6 is in the state 1 (the head of the sector), the SBCD circuit 134 is in the state until SYLK = L (until the lock is released). As shown at 33, block-top is set to the H state. When block-top = L, the value of EFM + W frame is set to 0 after 12 when SCSY and main-FMSY are both in the H state (the head of the sector). That is, in this case, the value of EFM + W frame repeats a value of 0 to 12 for each main frame.
[0145]
On the other hand, if block-top = H, as shown in FIG. 34, the value of EFM + W Frame is continuously incremented even when the value becomes 13 or more. As a result, as shown in FIG. 28, the data of each main frame of each ECC block is sequentially stored at different addresses in the RAM 137.
[0146]
In the same manner, EFM + demodulated data is written to the RAM 137 and PI1 correction is executed. When the PI1 correction for the data of 1 ECC block (208-line data) is completed, the ECC processing (PO correction) in the PO column direction is then executed.
[0147]
When reading data in the PO column direction, it is necessary to cancel the interleaving (FIG. 23) of the PO row. Therefore, for example, when reading the Nth byte column shown in FIG. 28, first, after reading the data of the Nth byte column from the top to the bottom, skipping the interleaved PO rows. Again, only the code of the PO row in the same Nth byte column is read and supplied to the ECC core circuit 138.
[0148]
Then, when the ECC core circuit 138 finishes PO correction (when processing of all 172 columns excluding the rightmost PI column (10 columns) in FIG. 28 is finished), then PI2 correction (second PI correction) is performed. Execute. The reason why the ECC processing in the PI row direction is executed twice is to improve error correction capability.
[0149]
In PO correction, erasure correction is executed according to an error flag (PI1 flag) generated based on the result of PI1 correction. Further, in the PI2 correction, erasure correction is executed using an error flag (PO flag) generated according to the result of PO correction. Such erasure correction is performed in order to improve error correction capability, as in the case described above.
[0150]
The PI series data for which the PI2 correction processing has been completed is transferred from the RAM 137 to the OCTL circuit 139, and the descrambling processing for the main data is performed for each sector using bits 3 to 0 of the sector information shown in FIG. Is executed. At this time, the OCTL circuit 139 performs an operation related to EDC. Whether or not there is an error in the target sector is determined based on the calculation result and the presence or absence of an error flag added to the main data. The host CPU 140 determines whether to read data again from the optical disk 2 based on the determination result. As a result, when it is determined that the data is read again from the optical disk 2, the access to the optical disk 2 is executed again. On the other hand, if it is determined that the data is not read again, the data of the sector including the error is output to the multiplexed data separation circuit 13 (FIG. 1).
[0151]
The ECC core circuit 138 includes a general-purpose Reed-Solomon code error correction LSI, and programs the code length, the number of parity, and the correction mode (normal correction only or normal correction and erasure correction). Is possible. Further, the ECC core circuit 138 can also decode multi-code continuous encoded data (a plurality of code sequences having different code lengths) in real time. Note that, as a Reed-Solomon code error correction LSI, for example, there is a CXD307-111G of SONY (trademark), and an ASIC (Application Specialized Integrated Circuit) formed using this LSI is called an ECC core. Note that this ECC core is used in the ECC core circuit 138 shown in FIG.
[0152]
FIG. 41 shows signal timings when the error correction operation is executed. In this figure, ESTT (FIG. 41A) is a control signal indicating the head of a code (PI line or PO line), and ECDE (FIG. 41B) is a code (PI line or PO line). ) Is a control signal indicating the end of. ECYE (FIG. 41C) is a control signal indicating the end of the code (PI row or PO row) cycle. All of these are supplied from the RAM controller 135 to the ECC core circuit 138 via the ECC control circuit 136. The ECC core circuit 138 identifies the data supplied from the RAM 137 by these control signals.
[0153]
As shown in FIG. 41, the PI code is transferred with 182 ECCKs from ESTT to EDCE. The PO code is also transferred with 208 ECCKs from ESTT to ECDE.
[0154]
When the code length of the PI row code is different from the code length of the PO column, the code cycle length is the longer of the code length of the PI row code or the PO column code (in this embodiment, the code of the PO column). 208), the data to be corrected (EDT) and the error flags for erasure correction (PI1 flag, PI2 flag, PO flag) are assumed to be any code series as shown in FIG. Can be input at the same timing. Moreover, arbitrary values can be set as parameters such as code length and parity number. That is, when changing the setting, if new setting data is supplied to the ECC core circuit 138 at the timing when ESTT = H, the ECC core circuit 138 automatically changes the internal setting based on the supplied data. .
[0155]
The data correction result is output in a cycle of 477 ECCK as shown by the following equation.
Figure 0003672139
[0156]
Here, NCYC indicates the longer code length of the PI row code or the PO column code, and PCYC indicates the longer parity number. As shown in FIG. 41, the OSTT (FIG. 41D) is delayed from the timing of the ESTT (FIG. 41A) by the time of the data output cycle (at the timing of the correction result output). To the ECC control circuit 136. In this embodiment, the OSTT is delayed by 477ECCK with respect to the ESTT.
[0157]
If error detection processing is executed and the detected error can be corrected, the ECC core circuit 138 sends an O.D. signal to the ECC control circuit 136 at the timing of OSTTT (FIG. 42E) = H. CODEERR (FIG. 42 (G)) = L is output, and then 8-bit data representing the error pattern (excluded OR with erroneous data) is placed at the position of ECOR (FIG. 42 (F)) = H. Data when correct data is obtained) ECD [7: 0] (FIG. 42H) and error position (8-bit data indicating the position (address) where the error is) ECA [7: 0] (FIG. 42) (I)) is output.
[0158]
In the erasure correction mode, the error position ECA [7: 0] (FIG. 42 (I)) data corresponding to the position to which the error flag EFLG (FIG. 42 (C)) is input is always output. If the data at the position is correct, the error pattern is ECD [7: 0] = 00 (H).
[0159]
When error correction is impossible, the timing chart is not shown, but at the same time the OSTT (FIG. CODEERR (FIG. 42 (G)) = H, and then ECOR (FIG. 42 (F)) does not enter the H state. O. The output of CODEERR (FIG. 42 (G)) is latched until the OSTT (FIG. 42 (E)) again becomes the H state, ECOR (FIG. 42 (F)), ECD [7: 0] (FIG. 42 (FIG. 42)). H)) and ECA [7: 0] (FIG. 42 (I)) continue to be output until OSTT (FIG. 42 (E)) next goes to the H state.
[0160]
43 to 45 show timing charts of control when the ECC process is executed. Here, PI1-R, PO-R, or PI2-R shown in FIGS. 43 (B), 44 (B), and 45 (B) are respectively PI1 (first PI correction), PO ( Data EDT [7: 0] and EFLG (FIG. 42 (C)) in each series of PO correction (PI correction) or PI2 (second PI correction) are corrected from the RAM 137 via the ECC control circuit 136. The timing of transfer to the core circuit 138 is shown.
[0161]
As shown in FIGS. 43 (A), 44 (A) and 45 (A), in order to write 1 PI row of data EFM + W (182-byte data) from the EFM + demodulator 131 to the RAM 137, the MWRQ signal is As a result, the EFM + demodulated data for one PI row is written in the RAM 137. Then, while the data for 1 PI row is being written, the ECC block data that has already been written to the RAM 137 is read out and transferred to the ECC core circuit 138 via the ECC control circuit 136. That is, while the data for one PI row is slowly written in the RAM 137, the data of another PI row or PO column that has already been written is quickly read out three times. Further, when transferring data in the first PI row of the sector, subcode data (ID and IED) is also read. These writing and reading are suspended when one is being performed.
[0162]
For example, when performing the PI1 correction of the ECC block, the data for one PI row is read during a period in which the data for one PI row is written. That is, data for one PI row is read from the RAM 137 and transferred to the ECC core circuit 138 via the ECC control circuit 136. In FIGS. 43B, 44B, and 45B, 208 ECCKs are used for reading the read data PI1-R for PI1 correction. This is because the number of ECCKs matches the length of the PO column, which is the longest data length, and when transferring PI row data, only 182 ECCKs are actually actually transferred. The remaining ECCK is not actually used for data transfer.
[0163]
FIG. 46 shows a data write / read process procedure to / from the RAM 137 by the RAM controller 135 during the ECC correction process. The RAM controller 135 transfers data for one PI row from the RAM 137 to the ECC core circuit 138 at step SP101. In this embodiment, the PI code (parity) and the PO code (parity) are added to each ECC block, so that the first correction and write-back of the PI sequence for the first ECC block are completed. Until then, the PO data PO-R or the PI2 read data PI2-R of the same ECC block cannot be transferred. In this case, therefore, no data is transferred at the next 2 × 208 ECCK timing. Then, when subcode data (SUB) exists next, it is transferred.
[0164]
Accordingly, the RAM controller 135 sequentially transfers the data for one PI row of the first ECC block and the SUB code data as necessary at steps SP101 and SP102 of FIG. It is determined whether or not PI1-R data for 208 rows has been transferred, and the processing of steps SP101, SP102 and SP103 is repeated until a positive result is obtained. If an affirmative result is obtained at step SP103, this indicates that the data transfer for 208 PI rows of the first ECC block has been completed. At this time, the RAM controller 135 moves to step SP104 and the first ECC is transferred. The second ECC block PI1-R transfer and the first ECC block PO-R transfer following the block start in the next 182 MWRQ period.
[0165]
That is, in the next 182 MWRQ period, PI1-R of the second ECC block following the first ECC block is transferred first, and then PO-R of the first ECC block is transferred twice (two columns). Minutes of PO data is transferred).
[0166]
When such an operation is performed in each 182 MWRQ period and PO data of a total of 172 columns of the first ECC block is transferred, the RAM controller 135 obtains a positive result in step SP105 of FIG. 46, and continues to step SP106. As shown in FIG. 45, the PI2-series data PI2-R of the first ECC block is transferred. This data PI2-R is transferred at the same timing as the transfer timing of the data PO-R of the first ECC block shown in FIG. The data PI1-R at this timing is the data of the next ECC block (second ECC block). In this way, the PI2-R of the first ECC block is transferred for 208 PI lines, and when the processing of PI1-R, PO-R and PI2-R of the first ECC block is completed, the result is affirmative in step SP107 of FIG. A result is obtained, and at this time, the RAM controller 135 returns to the above-described step SP101 and continues the process for the ECC block.
[0167]
Note that ECCK (FIG. 42A) is output from the RAM controller 135 to the ECC core circuit 138 only in the data transfer period. As described above, the correction result of the transferred data is output after 477 clocks (ECCK) from the input. Therefore, the result of determination of whether or not an error is included in a certain series of data (FIG. 43C, FIG. 44C, and FIG. 45C) It is output when data is transferred (FIGS. 43B, 44B, and 45B). This output is stored in an ERR FIFO circuit 136B (FIG. 47) described later.
[0168]
As described above, when data to be error-corrected is input from the RAM 137 to the ECC control circuit 136, the ECC control circuit 136 performs PI1 correction of, for example, 1 PI row of data, and outputs a correction result after 477ECCK. (FIGS. 43C, 44C, and 45C). This correction result is transferred to an ERR FIFO 136B as a buffer of an ECC control circuit 136 described later and temporarily stored. This data is further read from the ERR FIFO 136B, transferred to the RAM 137 again as error-corrected data, and written as data PI1-W as shown in FIGS. 44 (D) and 45 (D). It is. Similarly, data for which PO correction or PI2 correction has been completed is written in the RAM 137 as data PO-W or PI2-W, respectively.
[0169]
As described above, the error-corrected data written in the RAM 137 is read for each PI row at a cycle of 182SDCK as shown in FIGS. 43 (E), 44 (E), and 45 (E). And output from the OCTL circuit 139.
[0170]
47, in which the same reference numerals are assigned to the parts corresponding to those in FIG. 25, is a block diagram showing the flow of signals when error correction processing is executed. The ECC control circuit 136 has ERR COUNT 136A, ERR FIFO 136B, FLAG. The RAM 136C and an EX-OR (exclusive OR) circuit 136D are included.
[0171]
The demodulated data output from the EFM + demodulating circuit 131 is written into the RAM 137 under the control of the RAM controller 135. The SUB data (ID and IED) stored at the head of each sector is read from the RAM 137 and transferred to the SBCD circuit 134. The SBCD circuit 134 generates sector information SI as shown in FIG. This sector information SI is transferred from the SBCD circuit 134 and written in the RAM 137.
[0172]
The RAM controller 135 supplies the data for one PI line written in the RAM 137 (storage means) to the ECC core circuit 138 via the ECC control circuit 136 (error correction means) as error correction data EDT for every 8 bits. (In FIG. 47, for convenience, EDT data is shown to be supplied directly to the ECC core circuit 138). When the data for one PI row is supplied, the ECC core circuit 138 uses the PI code to generate 8-bit error correction data ECD (FIG. 42 (H)) and 8-bit error correction address ECA (FIG. 42 (FIG. I)). The error correction data ECD and the error correction address ECA are transferred from the ECC core circuit 138 to the ERR FIFO (First In First Out) 136B of the ECC control circuit 136 and written therein.
[0173]
Next, in order to actually perform error correction, the RAM controller 135 reads the data EDT of the PI row from the RAM 137 and supplies it to the EX-OR circuit 136D. The EX-OR circuit 136D is supplied with the error correction data ECD and the error correction address ECA from the ERR FIFO 136B. The EX-OR circuit 136D performs error correction by calculating an exclusive OR of the error correction data ECD and the data EDT read from the RAM controller 135 in the bit specified by the error correction address ECA. The error-corrected data is written back to the RAM 137 via the RAM controller 135 from the EX-OR circuit 136D.
[0174]
Further, the ECC core circuit 138 generates an error correction result ER composed of 8-bit data as shown in FIG. 48 from the ECD and ECA, and supplies the error correction result ER to the ERR COUNT 136A of the ECC control circuit 136 for storage. The 1-byte error correction result ER is written to the RAM 137 via the RAM controller 135 as shown in FIG. 28 corresponding to the PI row.
[0175]
The following information is stored in each bit of the 8-bit data of the error correction result ER shown in FIG.
Bit 7: Uncorrectable (0: Correctable / 1: Uncorrectable) (Set to 1 when error correction of the series is impossible)
Bit 6: PO (0: PI / 1: PO) (information bit for determining whether the series is PI or PO)
Bit 5: PI2 (0: PI1 / 1: PI2) (information bit for determining whether the series is PI1 or PI2)
Bit 4: Number of corrections (the value of the fifth bit (MSB) of error corrections)
Bit 3: Number of corrections (4th bit value of 4-bit error correction number)
Bit 2: Number of corrections (the value of the third bit of the 4-bit error correction number)
Bit 1: Number of corrections (value of second bit of 4-bit error correction number)
Bit 0: Number of corrections (value of first bit of 4-bit error correction number)
[0176]
An error flag (PI1 flag) (bit 7 of the error correction result ER) indicating a determination result of whether or not the data is uncorrectable by the PI1 correction is stored in the ERR COUNT 136A as a part of the error correction result ER. It is also stored in the FLAG RAM 136C (flag storage means).
The PI1 correction as described above is performed for 208 PI rows shown in FIG.
[0177]
Next, the RAM controller 135 reads 208 bytes of data of the first PO column from the RAM 137 and supplies it to the ECC core circuit 138 as EDT via the ECC control circuit 136. The ECC core circuit 138 also reads and supplies the PI1 flag written in the FLAGRAM 136C. The ECC core circuit 138 uses the pattern PO and the PI1 flag to generate ECD and ECA for normal correction or erasure correction. The ECD and ECA are supplied from the ECC core circuit 138 to the ERR FIFO 136B of the ECC control circuit 136 and stored therein. Further, the error correction result ER of the PO column generated by the ECC core circuit 138 based on the ECD and ECA is transferred to the ERR COUNT 136A and stored therein. The PO flag corresponding to bit 7 of the error correction result ER is also written in the FLAG RAM 136C.
[0178]
The PO column data EDT read from the RAM 137 is supplied to the EX-OR circuit 136D. The EX-OR circuit 136D is also supplied with ECD and ECA from the ERR FIFO 136B. The EX-OR circuit 136D calculates the exclusive OR of ECD and EDT in accordance with the address bit specified by the ECA, and performs error correction. The error-corrected data is written back to the RAM 137.
[0179]
Further, the error correction result ER of the PO column is read from the ERR COUNT 136A and written in the RAM 137. As shown in FIG. 28, the PO column error correction results ER are written in order from the top in the positions corresponding to the 172 PI rows.
The above PO correction is performed for the 172 PO columns.
[0180]
Next, in the case of performing PI2 correction, after PI1 correction and PO correction are performed, data for the first one PI row is read from the RAM 137 as EDT and supplied to the ECC core circuit 138. The PO flag written in the FLAGRAM 136C is also read and supplied to the ECC core circuit 138. The ECC core circuit 138 generates an ECD and an ECA using the PO flag and the parity PI, and supplies the ECC control circuit 136 to the ERR FIFO 136B.
[0181]
The ECD and ECAH written to the ERR FIFO 136B are supplied to the EX-OR circuit 136D, and an exclusive OR operation is performed on the PI row data read from the RAM 137, and error correction is performed. Data for which error correction has been completed is written back to the RAM 137 from the EX-OR circuit 136D via the RAM controller 135.
[0182]
The ECC core circuit 138 also generates an error correction result ER from the ECD and ECA, and supplies the error correction result ER to the ERR COUNT 136A of the ECC control circuit 136 for storage. Of these, the PI2 flag corresponding to bit 7 is also written in the FLAG RAM 136C.
[0183]
The error correction result ER of the PI2 line written in the ERR COUNT 136A is read from the ERR COUNT 136A and written in the RAM 137. The error correction result ER of the PI2 line is written at a position corresponding to each PI line of 208 lines of the ECC block, as shown in FIG.
The PI2 correction as described above is performed for all the 208 PI rows.
[0184]
FIG. 49 is a timing chart showing a state of bus arbitration when accessing the RAM 137. 49, EFMREQ (FIG. 49A) is a signal output to the RAM controller 135 when the EFM + demodulating circuit 131 requests the E137 + demodulated data to be written to the RAM 137. OUTREQ (FIG. 49B) is a signal that is output to the RAM controller 135 when the OCTL circuit 139 requests reading of data subjected to ECC processing from the RAM 137. In addition, the ECCREQ (FIG. 49C) transfers data to the ECC core circuit 138 by the ECC control circuit 136, accesses the RAM 137 to perform error correction, and obtains data subjected to error correction. For this purpose, the RAM 137 is accessed, or the SB transfer to the SBCD circuit 134 (signal output to the ID and IED RAM controller 135).
[0185]
The RAM controller 135 sets a priority level (Priority Level) for these three signals in advance, and when these requests are made at the same time, an ACK that recognizes the access right of the RAM 137 according to the priority level. (Authorization) signals are output sequentially. EFMACK (FIG. 49D), OUTACK (FIG. 49E), and ECCACK (FIG. 49F) are grant signals for EFMREQ, OUTREQ, and ECCREQ, respectively. In this embodiment, the above-described priorities are in the order of OUTREQ, EFMREQ, and ECCREQ. Therefore, as shown in FIG. 49, the RAM controller 135 outputs an ACK signal for the REQ signal according to this order. These signals are exchanged in synchronization with C11M (FIG. 49G) as the system clock.
[0186]
As described above, in this embodiment, the access right of the RAM 137 is given in correspondence with any one of EFMREQ, ECCREQ, and OUTREQ every predetermined cycle. However, this cycle can be changed according to the configuration, type, or access speed of the RAM 137.
[0187]
FIG. 50 shows the number of times the RAM 137 is accessed when PI1 correction, PI2 correction, and PO correction are executed on data of one ECC block. As shown in FIG. 50, the number of accesses to the RAM 137 required when PI1 correction, PO correction, and PI2 correction are executed is 214716 times per ECC block, and the average of one mainframe is 1033 times. For example, the number of accesses of the RAM 37 during the EFM + demodulated data write operation is 182 times per main frame, and the ECC execution cycle length is 208 bytes (208 main frames), so 37856 (= 182 × 208). ) Times is the required number of accesses per block. In this way, the number of accesses necessary for each operation is calculated, and the sum of these is the above-mentioned value.
[0188]
FIG. 51 is a timing chart showing the timing for outputting data of the error correction result ER from the RAM 137 via the OCTL circuit 139. This figure shows the portion preceding the period of 182SDCK in FIGS. 43E, 44E, and 45E with the time axis enlarged. In this figure, SDCK (FIG. 51A) indicates a clock signal when ER data is output as stream data. SINF (FIG. 51B) is a sector information strobe signal that indicates that SINF = H at the head of the sector and that the transferred data is sector information (SI). ESTB (FIG. 51C) is an error correction result strobe signal, and indicates that the error correction result ER is transferred when ESTB = H. In each PI row, the error correction result ER is assigned to one byte for each of the PI1 correction, the PO correction, and the PI2 correction, so that the total is 3 bytes. Since these data are output in the order stored in FIG. 28, it is possible to determine which series result (data) is obtained by examining bits 5 and 6 (FIG. 48) of the error correction result ER. Can do. In addition, in the PI row where the PO correction result is not output, ESTB is set to L at the timing of outputting the PO correction result.
[0189]
DSTB (FIG. 51D) is a data strobe signal in which DSTB = H when the signal SD [7: 0] (FIG. 51E) is the main data. The three signals SINF, ESTB, or DSTB are generated by the OCTL circuit 139. As shown in FIG. 51E, the sector information SI and the error correction result ER are output immediately before sending data in the PI row direction by 182SDCK.
[0190]
OUTF (interpolation flag) (FIG. 51 (F)) is an error flag for the main data. Based on the PI and PO uncorrectable flags stored in the FLAG RAM 136C of FIG. It is added with an interpolation flag and output.
[0191]
The OCTL circuit 139 determines whether or not the decoded sector data is data to be output from the sector information bits 4 and 5 (FIG. 36) generated by the SBCD circuit 134. Sector information bits 4 and 5 indicate an end sector and a start sector, respectively, as shown in FIG. Therefore, the OCTL circuit 139 outputs the data of the sector where the bit 4 = 0 and the bit 5 = 1 as the data of the sector whose output is designated (to be output).
[0192]
The OCTL circuit 139 also determines whether or not the error flag of the main data, the result of EDC, and the like satisfy the conditions set in advance by the host CPU 140, and outputs the decoded data if satisfied. If the set output condition is not satisfied, the decoding data output is stopped and the host CPU 140 is notified of the abnormality.
[0193]
The data output condition is set as follows, for example.
(1) Sector data for which output is designated.
(2) No error is detected from the ECC result.
(3) No error flag is added to the main data.
When the output conditions are set in this way, data that satisfies all these conditions is finally output. Regardless of the above conditions, the host CPU 140 can forcibly prohibit the output.
[0194]
The OCTL circuit 139 sequentially outputs main data, sector information SI, and error correction result ER in accordance with the sector data output procedure as shown in FIG.
First, in step SP111, the OCTL circuit 139 analyzes the end sector detection result stored in bit 4 of the sector information SI (FIG. 36) and the start sector detection result stored in bit 5 in the OCTL circuit 139. It is determined that the sector data in which bit 4 is 0 and bit 5 is 1 is the sector data to be output.
As a result, when it is determined in the next step SP112 that the decoded data is not data to be output, the process proceeds to step SP114 to stop outputting data. If it is determined that the decoded data is to be output satisfying the output condition, the process proceeds to step SP113.
[0195]
In step SP113, the OCTL circuit 139 generates each strobe signal of the output data to generate the strobe signal SINF of the sector information SI (FIG. 51B), the strobe signal ESTB of the error correction result ER (FIG. 51C), the main The data strobe signal DSTB (FIG. 51D) is output in order. As a result, the OCTL circuit 139 outputs data in the order of sector information SI, error correction result ER, and main data (D0, D1, D2,...) In the next step SP115.・ End the data output procedure.
[0196]
(2-3) Operation and effect of the second embodiment
In the above configuration, data (PI1-R, PO-R, and PI2-R (FIGS. 43, 44, and 45)) transferred from the RAM 137 to the ECC core circuit 138 within the 182 MWRQ period are transferred from the transfer clock (ECCK). ) In response to (). At this time, by stopping the transfer clock (ECCK) for a predetermined period between the transfer periods of each data (PI1-R, PO-R, and PI2-R), the data (PI1-R) in the stop period. , PO-R and PI2-R) are stopped. That is, a period in which data transfer is not performed for a predetermined period is formed between the data (PI1-R, PO-R, and PI2-R).
[0197]
During this period, after executing the PI1 correction (PI1-W), the RAM controller 135 sends the sector address information (ID) stored in the main frame number 0 in the RAM 137 and the error detection code (IED) for the ID to SUB. The data is read at the timing (FIG. 43B, FIG. 45B) and transferred to the SBCD circuit 134. When the SBCD circuit 134 detects the sector address information ID, the SBCD circuit 134 compares the start sector address BSA and the end sector address ESA of the sector with the sector address of the target sector to be output specified in advance by the host CPU 140. That is, when the sector is the target sector, the bit 5 of the sector information SI is set to “1” to indicate that it is the start sector address BSA of the target sector, and the detection bit 4 of the end sector address ESA is further set. Is set to “0”. The SBCD circuit 134 sets whether the sector data from which the sector address information ID is detected is the target sector in the bits 4 and 5 of the sector information SI, and then stores the sector information SI in the RAM 137 so as to correspond to a predetermined PI row. The data is stored in a small area provided inside.
[0198]
Here, the RAM controller 135 transfers the sector data decoded by the ECC circuit 50 to the OCTL circuit 139 when the EFM + demodulated data is written to the RAM 137.
When the OCTL circuit 139 detects the sector information SI in the transferred sector data, the OCTL circuit 139 discriminates whether or not the sector data is the target sector according to the information of bits 4 and 5 of the sector information SI. The output to the stage ring buffer memory 10 is controlled.
[0199]
As described above, the SBCD circuit 134 detects the start sector address BSA and the end sector address ESA, generates sector information SI regarding whether or not the target sector is set in advance by the host CPU 140, and stores it in the RAM 137. When the decoded data is output, the OCTL circuit 139 can control the output of the decoded data based on the sector information SI.
Thereby, for example, the comparison processing step with the sector address of the target sector previously set by the host CPU 140 based on the detected sector address information ID can be omitted.
[0200]
According to the above configuration, when main data of ECC block data obtained by ECC decoding is output to the ring buffer memory 10 at the next stage, the SBCD circuit 134 determines whether the sector data is the target sector at the time of ECC decoding. Such information is recorded in the bits 4 and 5 of the sector information SI, so that at the time of data output, the sector address information ID and the sector address of the target sector are compared again to determine whether data can be output. Steps can be omitted.
Thus, when outputting ECC decode for each sector, it is not necessary to newly provide a circuit for detecting the sector address information ID from the ECC decode data and performing comparison processing with the sector address, and the entire circuit configuration can be simplified. At the same time, access to the sector data can be performed quickly and reliably.
[0201]
Furthermore, according to the above-described embodiment, the sector information SI is stored in a small area provided in the RAM 137, so that it is not necessary to provide a special memory area for sector detection. Memory capacity can be saved.
[0202]
Further, according to the above-described embodiment, since the block processing is performed by the PI sequence and the PO sequence and ECC processing is performed, the next ECC block is straddled as in the case of ECC encoding by the C1 sequence and the C2 sequence. Thus, it is possible to immediately determine whether or not data can be output to the ring buffer memory 10 at the end of decoding of one ECC block without waiting for the end of decoding of the oblique C2 series.
[0203]
(3) Other embodiments
In the above-described embodiment, C1 / C2 convolution / Reed-Solomon coding, or a case where decoded data is decoded by adding an error correction inner code in the row direction and an error correction outer code in the column direction. Although described above, the present invention is not limited to this, and can be widely applied to decoding of encoded data to which an error correction code is added generally by interleaving or cross-interleaving.
In the above-described embodiments, the case where encoded data is an error correction code has been described. However, the present invention is not limited to this, and can be widely used for decoding encoded data.
[0204]
Furthermore, in the above-described embodiment, the case where the encoded data recorded on the optical disk 2 is decoded and reproduced by the data reproducing apparatus 40 has been described. However, the present invention is not limited to this, and generally the encoded data is The present invention can be applied to a case where encoded data is read from a recorded recording medium, decoded and reproduced.
[0205]
【The invention's effect】
As described above, according to the present invention, independently of the decoding process of the encoded data, whether the output of the decoded data obtained from the encoded data is determined during the decoding process of the encoded data, By storing the data information indicating the result of the determination in the memory for storing the encoded data and the composite data, it is possible to perform the encoding only by securing a small area for storing the data information in the memory. Compared with the case where the process for determining whether or not to output decoded data is performed after the data decoding process is completed, the output of the decoded data can be started more quickly. Thus, the decoded data can be output more quickly without increasing the memory capacity. A data decoding apparatus and a data decoding method that can be started can be realized.
[0206]
Similarly, independently of the decoding process of the encoded data, whether to output the decoded data obtained from the encoded data is determined during the decoding process of the encoded data, and the result of the determination is shown. By storing the data information in the memory for storing the encoded data and the composite data, it is necessary to reserve a small area for storing the data information separately in the memory, and after the decoding process of the encoded data is completed. A data reproducing apparatus that can start outputting decoded data more quickly than the case where the process for determining whether or not decoded data can be output is performed, and thus can reproduce the decoded data more quickly without substantially increasing the memory capacity. realizable.
[Brief description of the drawings]
FIG. 1 is a block diagram showing an overall configuration of a data reproducing apparatus.
FIG. 2 is a block diagram showing a configuration of the ECC circuit of FIG. 1;
FIG. 3 is a block diagram for explaining the connection of the demodulation circuit, sector detection circuit, and ECC circuit of FIG. 1;
4 is a schematic diagram for explaining data stored in a RAM of FIG. 2; FIG.
FIG. 5 is a schematic diagram for explaining an ECC result by the ECC circuit of FIG. 2;
6 is a timing chart for explaining execution control of ECC decoding by the ECC circuit of FIG. 2;
FIG. 7 is a timing chart for explaining error output by the ECC circuit of FIG. 2;
FIG. 8 is a table for explaining access to the RAM of the ECC circuit of FIG. 2;
9 is a timing chart for explaining the priority order of access to the RAM of the ECC circuit of FIG. 2;
FIG. 10 is a schematic diagram illustrating a frame configuration of reproduction data.
FIG. 11 is a schematic diagram for explaining a sector format of demodulated data.
FIG. 12 is a chart for explaining sector information.
FIG. 13 is a timing chart for explaining the setting of a sector address.
FIG. 14 is a timing chart for explaining sector detection and data output.
FIG. 15 is a timing chart for explaining sector detection and data output.
FIG. 16 is a timing chart for explaining sector detection and data output.
FIG. 17 is a timing chart for explaining sector detection and data output.
FIG. 18 is a timing chart for explaining sector detection and data output.
FIG. 19 is a timing chart for explaining sector detection and data output.
FIG. 20 is a timing chart for explaining sector detection and data output.
FIG. 21 is a schematic diagram illustrating a configuration of sector data according to the second embodiment;
FIG. 22 is a schematic diagram illustrating a configuration of an ECC block according to a second embodiment.
FIG. 23 is a schematic diagram illustrating interleaving of PO parity (outer code) according to the second embodiment;
FIG. 24 is a schematic diagram showing a data structure of a 32 Kbyte block before EFM modulation in the second embodiment;
FIG. 25 is a block diagram showing the configuration of the demodulation circuit system of the second embodiment.
FIG. 26 is a schematic diagram illustrating a configuration of a physical sector of an EFM modulation number according to the second embodiment;
FIG. 27 is a schematic diagram illustrating a data configuration of each sector according to the second embodiment;
FIG. 28 is a schematic diagram for explaining a storage state in a RAM according to the second embodiment;
FIG. 29 is a signal waveform diagram showing an operation of writing EFM demodulated output into RAM according to the second embodiment;
FIG. 30 is a flowchart showing a lock detection processing procedure according to the second embodiment;
FIG. 31 is a flowchart showing a procedure for generating an SCSY signal according to the second embodiment;
FIG. 32 is a flowchart showing a main-FMSY signal generation processing procedure according to the second embodiment;
FIG. 33 is a signal waveform diagram for explaining a block-top detection operation according to the second embodiment;
FIG. 34 is a signal waveform diagram for explaining processing operation after block-top detection according to the second embodiment;
FIG. 35 is a signal waveform diagram for explaining a SUB transfer operation according to the second embodiment;
FIG. 36 is a schematic diagram illustrating a configuration of sector information according to the second embodiment;
FIG. 37 is a timing chart used to explain the setting of sector addresses according to the second embodiment.
FIG. 38 is a flowchart showing the IED continuous normal detection determination processing procedure of the second embodiment;
FIG. 39 is a flowchart showing the ID (address) continuity determination processing procedure of the second embodiment;
FIG. 40 is a flowchart showing a SALK generation processing procedure of the second embodiment.
FIG. 41 is a signal waveform diagram for explaining an error correction operation according to the second embodiment;
FIG. 42 is a signal waveform diagram for explaining error correction operation of the second embodiment;
FIG. 43 is a timing chart for explaining the control operation of the ECC processing according to the second embodiment;
FIG. 44 is a timing chart for explaining the control operation of the ECC processing according to the second embodiment;
FIG. 45 is a timing chart used for explaining the control operation of the ECC processing according to the second embodiment;
FIG. 46 is a flowchart showing the processing procedure of the RAM controller of the ECC processing of the second embodiment.
47 is a block diagram showing a configuration of an error correction circuit system according to a second embodiment; FIG.
FIG. 48 is a schematic diagram illustrating an error correction result of the second embodiment.
FIG. 49 is a signal waveform diagram for explanation of bus arbitration of the second embodiment.
FIG. 50 is a schematic diagram illustrating the number of RAM accesses in one ECC block correction according to the second embodiment;
FIG. 51 is a signal waveform diagram for explaining output of an error correction result in the second embodiment;
FIG. 52 is a flowchart for explaining the output of sector data according to the second embodiment;
FIG. 53 is a block diagram showing a conventional data reproducing apparatus.
54 is a block diagram showing the ECC circuit of FIG. 53. FIG.
FIG. 55 is a schematic diagram for explaining ECC decoding by the ECC circuit of FIG. 54;
FIG. 56 is a schematic diagram for explaining ECC decoding by the ECC circuit of FIG. 54;
FIG. 57 is a schematic diagram for explaining ECC decoding by the ECC circuit of FIG. 54;
FIG. 58 is a schematic diagram for explaining ECC decoding by the ECC circuit of FIG. 54;
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 1,40 ... Data reproduction apparatus, 2 ... Optical disk, 3 ... Pickup, 4 ... System controller, 5, 35 ... Demodulation circuit system, 6 ... Demodulation circuit, 7 ... Sector detection circuit, 8, 50... ECC circuit, 9... Track jump determination circuit, 10... Ring buffer memory, 11... Ring buffer control circuit, 13 ... Multiplexed data separation circuit, 14 ... Header separation circuit, 15. Control circuit, 16 ... Switching circuit, 17 ... Video code buffer, 18 ... Video decoder, 19 ... Audio code buffer, 20 ... Audio decoder, 22 ... Tracking servo circuit, 24, 26, 28 , 30, 51... RAM, 25, 27, 29, 52... ECC decoder, 42... RF processing circuit, 44, 131... EFM + demodulation circuit, 6 ... CLV control circuit, 48 ... RMIF, 53 ... error register, 54 ... ECC control unit, 55 ... ECC decoding unit, 56, 139 ... OCTL circuit, 134 ... SBCD circuit, 135 ... RAM Controller, 136... ECC control circuit, 137... RAM, 138... ECC core circuit, 140.

Claims (31)

記録媒体に記録された符号化データを復号するデータ復号装置において、
上記記録媒体から読み出した上記符号化データを記憶するメモリと、
上記メモリに記憶した符号化データを復号処理し、当該復号処理の結果得られる復号データを上記メモリに記憶させるデータ復号回路と、
上記復号処理途中の符号化データから上記記録媒体における記録位置を示す位置情報を検出すると共に、当該位置情報に基づいて、当該符号化データから得られる復号データの出力可否を当該符号化データの復号処理途中で判定し、当該判定の結果を示すデータ情報を生成して上記メモリに記憶させるデータ情報生成回路と、
上記メモリに記憶された上記データ情報に基づいて、上記メモリに記憶された上記復号データの出力を制御するデータ出力制御回路と
を具えることを特徴とするデータ復号装置。
In a data decoding apparatus for decoding encoded data recorded on a recording medium,
A memory for storing the encoded data read from the recording medium;
A data decoding circuit for decoding the encoded data stored in the memory and storing the decoded data obtained as a result of the decoding processing in the memory;
Position information indicating a recording position on the recording medium is detected from the encoded data in the middle of the decoding process, and whether or not the decoded data output from the encoded data is output based on the position information is decoded. A data information generation circuit that determines during processing, generates data information indicating a result of the determination, and stores the data information in the memory;
And a data output control circuit for controlling an output of the decoded data stored in the memory based on the data information stored in the memory .
上記符号化データより得られる復号データには上記位置情報を用いたスクランブル処理が施されており、The decoded data obtained from the encoded data has been scrambled using the position information,
上記データ情報生成回路は、上記判定の結果及び上記位置情報を示す上記データ情報を生成し、The data information generation circuit generates the data information indicating the determination result and the position information,
上記データ出力制御回路は、上記データ情報に基づいて、上記復号データをデスクランブル処理するThe data output control circuit descrambles the decoded data based on the data information.
ことを特徴とする請求項1に記載のデータ復号装置。The data decoding apparatus according to claim 1.
上記記録媒体は、デイスク記録媒体でなる
ことを特徴とする請求項1に記載のデータ復号装置。
The data decoding apparatus according to claim 1, wherein the recording medium is a disk recording medium.
上記データ情報は、上記デイスク記録媒体についてのセクタ情報でなる
ことを特徴とする請求項に記載のデータ復号装置。
The data decoding apparatus according to claim 3 , wherein the data information is sector information about the disk recording medium.
上記データ情報生成回路は、上記データ情報に基づいて、上記デイスク記録媒体上の出力対象となるデータのセクタを検出する
ことを特徴とする請求項に記載のデータ復号装置。
The data decoding apparatus according to claim 3 , wherein the data information generation circuit detects a sector of data to be output on the disk recording medium based on the data information.
上記セクタ情報は、上記読み出した符号化データに対応するセクタアドレス情報及び誤り訂正結果及び又は出力対象となるデータに対応するセクタアドレス情報でなる
ことを特徴とする請求項に記載のデータ復号装置。
5. The data decoding apparatus according to claim 4 , wherein the sector information is sector address information corresponding to the read encoded data and an error correction result and / or sector address information corresponding to data to be output. .
上記メモリは、フアーストインフアーストアウト(FIFO)機能を有する
ことを特徴とする請求項1に記載のデータ復号装置。
The data decoding apparatus according to claim 1, wherein the memory has a first-in first-out (FIFO) function.
上記符号化データは、インターリーブ符号化されている
ことを特徴とする請求項1に記載のデータ復号装置。
The data decoding apparatus according to claim 1, wherein the encoded data is interleave encoded.
上記符号化データは、誤り訂正符号データである
ことを特徴とする請求項1に記載のデータ復号装置。
The data decoding apparatus according to claim 1, wherein the encoded data is error correction code data.
上記誤り訂正符号データの誤り訂正符号は、C1/C2畳み込み・リードソロモン符号である
ことを特徴とする請求項に記載のデータ復号装置。
The data decoding apparatus according to claim 9 , wherein the error correction code of the error correction code data is a C1 / C2 convolution / Reed-Solomon code.
上記誤り訂正符号データの誤り訂正符号は、符号化データの行方向に誤り訂正内符号を付加するとともに列方向に誤り訂正外符号を付加してなる
ことを特徴とする請求項に記載のデータ復号装置。
The data according to claim 9 , wherein the error correction code of the error correction code data is formed by adding an error correction inner code in the row direction of the encoded data and adding an error correction outer code in the column direction. Decoding device.
上記データ復号回路は、
上記誤り訂正内符号が付加された行方向のデータを行単位で第1のブロツク分だけエラー訂正し、
上記誤り訂正外符号が付加された列方向のデータを列単位で上記第1のブロツク分だけエラー訂正し、
上記行単位で第1のブロツク分だけエラー訂正された上記誤り訂正内符号が付加された上記行方向のデータに対して行単位で再びエラー訂正する
ことを特徴とする請求項11に記載のデータ復号装置。
The data decoding circuit is
The error correction is performed on the data in the row direction to which the error correction inner code is added by the first block in units of rows,
The column-direction data to which the error correction outer code is added is error-corrected by the first block in units of columns,
12. The data according to claim 11 , wherein error correction is performed again on a row-by-row basis for the data in the row direction to which the error correction inner code that has been error-corrected by the first block in the row unit is added. Decoding device.
上記データ復号回路は、
上記行方向データを1行分又は上記列方向データを1列分だけ転送完了したとき、当該タイミングにおいてレジスタ内に格納されているエラー位置及びエラーパターンに基づくエラー訂正を実行する
ことを特徴とする請求項12に記載のデータ復号装置。
The data decoding circuit is
When the data in the row direction is transferred for one row or the data in the column direction is transferred for one column, error correction based on the error position and error pattern stored in the register is executed at the timing. The data decoding device according to claim 12 .
記録媒体に記録された符号化データを復号するデータ復号方法において、
上記記録媒体から読み出した上記符号化データメモリに記憶する記憶ステツプと、
上記メモリに記憶した符号化データを復号処理し、当該復号処理の結果得られる復号データを上記メモリに記憶するデータ復号ステツプと、
上記復号処理途中の符号化データから上記記録媒体における記録位置を示す位置情報を検出すると共に、当該位置情報に基づいて、当該符号化データから得られる復号データの出力可否を当該符号化データの復号処理途中で判定し、当該判定の結果を示すデータ情報を生成して上記メモリに記憶するデータ情報生成ステツプと、
上記メモリに記憶された上記データ情報に基づいて、上記メモリに記憶された上記復号データの出力を制御するデータ出力制御ステツプと
を具えることを特徴とするデータ復号方法。
In a data decoding method for decoding encoded data recorded on a recording medium,
A storage step of storing in the encoded data memory read from the recording medium;
A data decoding step of decoding the encoded data stored in the memory and storing the decoded data obtained as a result of the decoding processing in the memory;
Position information indicating a recording position on the recording medium is detected from the encoded data in the middle of the decoding process, and whether or not the decoded data output from the encoded data is output based on the position information is decoded. A data information generation step for determining in the middle of processing, generating data information indicating the result of the determination and storing the data information in the memory;
Based on the data information stored in the memory, the data decoding method characterized in that it comprises a data output control step for controlling output of the decoded data stored in the memory.
上記符号化データより得られる復号データには上記位置情報を用いたスクランブル処理が施されており、The decoded data obtained from the encoded data has been scrambled using the position information,
上記データ情報生成ステツプでは、上記判定の結果及び上記位置情報を示す上記データ情報を生成し、In the data information generation step, the data information indicating the result of the determination and the position information is generated,
上記データ出力制御ステツプでは、上記データ情報に基づいて、上記復号データをデスクランブル処理するIn the data output control step, the decoded data is descrambled based on the data information.
ことを特徴とする請求項14に記載のデータ復号方法。The data decoding method according to claim 14.
上記記録媒体は、デイスク記録媒体でなる
ことを特徴とする請求項14に記載のデータ復号方法。
The data decoding method according to claim 14 , wherein the recording medium is a disk recording medium.
上記データ情報は、上記デイスク記録媒体についてのセクタ情報でなる
ことを特徴とする請求項16に記載のデータ復号方法。
The data decoding method according to claim 16 , wherein the data information is sector information about the disk recording medium.
上記データ情報生成ステツプでは、上記データ情報に基づいて、上記デイスク記録媒体上の出力対象となるデータのセクタを検出する
ことを特徴とする請求項16に記載のデータ復号方法。
The data decoding method according to claim 16 , wherein, in the data information generation step, a sector of data to be output on the disk recording medium is detected based on the data information.
上記セクタ情報は、上記読み出した符号化データに対応するセクタアドレス情報及び誤り訂正結果及び又は出力対象となるデータに対応するセクタアドレス情報でなる
ことを特徴とする請求項17に記載のデータ復号方法。
The data decoding method according to claim 17 , wherein the sector information is sector address information and error correction results corresponding to the read encoded data and / or sector address information corresponding to data to be output. .
上記メモリは、フアーストインフアーストアウト(FIFO)機能を有する
ことを特徴とする請求項14に記載のデータ復号方法。
The data decoding method according to claim 14 , wherein the memory has a first-in first-out (FIFO) function.
上記符号化データは、インターリーブ符号化されている
ことを特徴とする請求項14に記載のデータ復号方法。
The data decoding method according to claim 14 , wherein the encoded data is interleave encoded.
上記符号化データは、誤り訂正符号データである
ことを特徴とする請求項14に記載のデータ復号方法。
The data decoding method according to claim 14 , wherein the encoded data is error correction code data.
上記誤り訂正符号データの誤り訂正符号は、C1/C2畳み込み・リードソロモン符号である
ことを特徴とする請求項22に記載のデータ復号方法。
The data decoding method according to claim 22 , wherein the error correction code of the error correction code data is a C1 / C2 convolution / Reed-Solomon code.
上記誤り訂正符号データの誤り訂正符号は、符号化データの行方向に誤り訂正内符号を付加するとともに列方向に誤り訂正外符号を付加してなる
ことを特徴とする請求項22に記載のデータ復号方法。
The data according to claim 22 , wherein the error correction code of the error correction code data includes an error correction inner code added in the row direction of the encoded data and an error correction outer code added in the column direction. Decryption method.
上記データ復号ステツプでは、
上記誤り訂正内符号が付加された行方向のデータを行単位で第1のブロツク分だけエラー訂正し、
上記誤り訂正外符号が付加された列方向のデータを列単位で上記第1のブロツク分だけエラー訂正し、
上記行単位で第1のブロツク分だけエラー訂正された上記誤り訂正内符号が付加された上記行方向のデータに対して行単位で再びエラー訂正する
ことを特徴とする請求項24に記載のデータ復号方法。
In the above data decoding step ,
The error correction is performed on the data in the row direction to which the error correction inner code is added by the first block in units of rows,
The column-direction data to which the error correction outer code is added is error-corrected by the first block in units of columns,
25. The data according to claim 24 , wherein error correction is performed again on a row-by-row basis for the data in the row direction to which the error correction inner code that has been error-corrected by the first block in the row unit is added. Decryption method.
上記データ復号ステツプでは、圧縮符号化されてなる動画像データを復号する
ことを特徴とする請求項14に記載のデータ復号方法。
15. The data decoding method according to claim 14 , wherein in the data decoding step, moving image data that has been compression-encoded is decoded.
記録媒体に記録された符号化データでなる画像信号及び又は音声信号を読み出して再生するデータ再生装置において、
上記記録媒体から読み出した上記符号化データを記憶するメモリと、当該メモリに記憶した符号化データを復号処理し、当該復号処理の結果得られる復号データを上記メモリに記憶させるデータ復号回路と、上記復号処理途中の符号化データから上記記録媒体における記録位置を示す位置情報を検出すると共に、当該位置情報に基づいて、当該符号化データから得られる復号データの出力可否を当該符号化データの復号処理途中で判定し、当該判定の結果を示すデータ情報を生成して上記メモリに記憶させるデータ情報生成回路と、上記メモリに記憶された上記データ情報に基づいて、上記メモリに記憶された上記復号データの出力を制御するデータ出力制御回路とを有するデータ復号装置を具える
ことを特徴とするデータ再生装置。
In a data reproduction apparatus for reading and reproducing an image signal and / or an audio signal composed of encoded data recorded on a recording medium,
A memory for storing the encoded data read from the recording medium; a data decoding circuit for decoding the encoded data stored in the memory; and storing decoded data obtained as a result of the decoding process in the memory; The position information indicating the recording position on the recording medium is detected from the encoded data in the middle of the decoding process, and on the basis of the position information, whether or not the decoded data obtained from the encoded data can be output is decoded. A data information generation circuit for generating data information indicating a result of the determination and storing the data in the memory, and the decoded data stored in the memory based on the data information stored in the memory A data reproduction apparatus comprising: a data decoding apparatus having a data output control circuit for controlling the output of the data reproduction apparatus.
上記符号化データは、誤り訂正符号データであり、当該誤り訂正符号データの誤り訂正符号は、C1/C2畳み込み・リードソロモン符号である
ことを特徴とする請求項27に記載のデータ再生装置。
The data reproduction apparatus according to claim 27 , wherein the encoded data is error correction code data, and the error correction code of the error correction code data is a C1 / C2 convolution / Reed-Solomon code.
上記誤り訂正符号は、符号化データの行方向に誤り訂正内符号を付加するとともに列方向に誤り訂正外符号を付加してなる
ことを特徴とする請求項28に記載のデータ再生装置。
29. The data reproducing apparatus according to claim 28 , wherein the error correction code is formed by adding an error correction inner code in the row direction of encoded data and adding an error correction outer code in the column direction.
上記データ復号回路は、
上記誤り訂正内符号が付加された行方向のデータを行単位で第1のブロツク分だけエラー訂正し、
上記誤り訂正外符号が付加された列方向のデータを列単位で上記第1のブロツク分だけエラー訂正し、
上記行単位で第1のブロツク分だけエラー訂正された上記誤り訂正内符号が付加された上記行方向のデータに対して行単位で再びエラー訂正する
ことを特徴とする請求項29に記載のデータ再生装置。
The data decoding circuit is
The error correction is performed on the data in the row direction to which the error correction inner code is added by the first block in units of rows,
The column-direction data to which the error correction outer code is added is error-corrected by the first block in units of columns,
30. The data according to claim 29 , wherein error correction is performed again on a row-by-row basis for the data in the row direction to which the error correction inner code that has been error-corrected by the first block in the row unit is added. Playback device.
上記データ復号回路は、
上記メモリから上記行方向データを1行分又は上記列方向データを1列分だけ転送完了したとき、当該タイミングにおいてレジスタ内に格納されているエラー位置及びエラーの訂正パターンに基づくエラー訂正を実行する
ことを特徴とする請求項29に記載のデータ再生装置。
The data decoding circuit is
When complete transfer from the memory the data of the row direction by one line or one column of the column direction of the data, the error correction based on the correction pattern of the error location and error stored in register in the timing The data reproducing apparatus according to claim 29 , wherein the data reproducing apparatus is executed.
JP30869796A 1996-02-19 1996-11-05 Data decoding apparatus and method, and data reproducing apparatus Expired - Fee Related JP3672139B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP30869796A JP3672139B2 (en) 1996-02-19 1996-11-05 Data decoding apparatus and method, and data reproducing apparatus

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP8-55471 1996-02-19
JP5547196 1996-02-19
JP30869796A JP3672139B2 (en) 1996-02-19 1996-11-05 Data decoding apparatus and method, and data reproducing apparatus

Publications (2)

Publication Number Publication Date
JPH09288870A JPH09288870A (en) 1997-11-04
JP3672139B2 true JP3672139B2 (en) 2005-07-13

Family

ID=26396364

Family Applications (1)

Application Number Title Priority Date Filing Date
JP30869796A Expired - Fee Related JP3672139B2 (en) 1996-02-19 1996-11-05 Data decoding apparatus and method, and data reproducing apparatus

Country Status (1)

Country Link
JP (1) JP3672139B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5674015B2 (en) * 2010-10-27 2015-02-18 ソニー株式会社 Decoding apparatus and method, and program

Also Published As

Publication number Publication date
JPH09288870A (en) 1997-11-04

Similar Documents

Publication Publication Date Title
JP3305966B2 (en) Data decoding apparatus and method, and data reproducing apparatus
KR100496211B1 (en) Data decoding device and method and data reproducing device
US5793724A (en) Optical disk error-correcting code system correlating error correction with sector address
JP3562544B2 (en) Decoding device and decoding method
EP0686973B1 (en) Data reproducing device and data recording medium
KR100195015B1 (en) Memory Controls and Methods
JPH1125573A (en) High speed reproducing control device on digital video disk and method thereof
JPH10233701A (en) System decoder provided with memory for correcting error for high speed data processing/transmission and memory control method for error correction
JP2001126398A (en) Data reproducing device and its method
JP3672139B2 (en) Data decoding apparatus and method, and data reproducing apparatus
JP3700885B2 (en) Data decoding apparatus and method, and data reproducing apparatus
JP3564910B2 (en) Data reproducing apparatus and data reproducing method
JP4140344B2 (en) Decoding device and computer program
US6804182B2 (en) Optical disc reproducing apparatus and semiconductor integrated circuit and therefor
JPH11177581A (en) Data transmitter, data receiver and data recorder
JPH09265730A (en) Data reproducing device and method therefor
KR19980066264A (en) Data decoding apparatus and method and data reproducing apparatus
JPH09266564A (en) Device and method for data decoding, and data reproducing device
JP3759992B2 (en) Recorded information playback device
CA2385422C (en) Data reproduction apparatus and data storage medium
JP2004152337A (en) Recording and reproducing device, computer program and transmitting and receiving system
JP2000057712A (en) Data reproducing device and electronic apparatus equipped with this device
AU708660B2 (en) Data reproducing device and data recording medium
KR19990033794A (en) Data input / output control device and method of variable bit rate buffer
JP2003203420A (en) Digital information recording and reproducing device

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041001

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041116

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: 20050401

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050414

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080428

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090428

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090428

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100428

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees