(57)【要約】【課題】高い確率で誤り位置を予測すること。【解決手段】誤り訂正装置１によれば、誤りデータ位置検出部２により、ブロックデータ５の誤りデータの位置がライン毎に検出される。そして、バーストエラー予測部３により、他のラインの誤りデータの位置が参照され、誤りデータ位置検出部２によって検出された位置の誤りデータがバーストエラーか否かが予測される。そして、訂正実行部４により、各ラインの、バーストエラー予測部３によってバーストエラーであると予測された誤りデータについて消失訂正が行われ、それ以外の誤りデータについて検出訂正が行われる。【選択図】図１
2009231898.tif 000002
【特許請求の範囲】
【請求項１】
ブロック単位で取り込んだ光ディスクのブロックデータに含まれる誤りデータを訂正する誤り訂正装置において、
前記ブロックデータの誤りデータの位置をライン毎に検出する誤りデータ位置検出部と、
他のラインの誤りデータの位置を参照し、前記誤りデータ位置検出部により検出された位置の誤りデータがバーストエラーか否かを予測するバーストエラー予測部と、
各ラインの、前記バーストエラー予測部によりバーストエラーであると予測された誤りデータについて消失訂正を行い、それ以外の誤りデータについて検出訂正を行う訂正実行部と、
を有することを特徴とする誤り訂正装置。
【請求項２】
前記バーストエラー予測部は、
前記ラインの誤りデータの位置が検出される度に、その位置を記憶する複数のレジスタと、
前記各レジスタにそれぞれ対応して設けられ、検出された誤りデータの位置が、前記レジスタに既に記憶されている誤りデータの位置に検出方向に直交する方向に一致する場合、インクリメントする複数のカウンタと、
前記カウンタが所定値以上である場合、検出された誤りデータの位置がバーストエラーが存在する位置であると判断する判断部と、
を有することを特徴とする請求項１記載の誤り訂正装置。
【請求項３】
前記カウンタは、対応する前記レジスタに連続して誤りデータの位置が記憶されない場合クリアされることを特徴とする請求項２記載の誤り訂正装置。
【請求項４】
前記光ディスクが、前記光ディスクの記録方向および前記記録方向に直交する方向にそれぞれパリティビットを備えている場合、
前記誤りデータ位置検出部は、前記記録方向のライン毎に誤りデータの位置を検出し、
前記訂正実行部は、検出訂正できなかった前記記録方向のラインの数が、前記記録方向に直交する方向のパリティビットの数を超えている場合、前記バーストエラー予測部によりバーストエラーであると予測された誤りデータについて消失訂正を行い、それ以外の誤りデータについて検出訂正を行うことを特徴とする請求項１記載の誤り訂正装置。
【請求項５】
前記光ディスクがＰｉｃｋｅｔコードを備えている場合、
前記訂正実行部は、前記Ｐｉｃｋｅｔコードの両側所定バイトまでは、前記Ｐｉｃｋｅｔコードのみで消失訂正を行い、それ以上離れたバイトについては前記バーストエラー予測部の予測結果を用いて消失訂正を行うことを特徴とする請求項１記載の誤り訂正装置。
【請求項６】
ブロック単位で取り込んだ光ディスクのブロックデータに含まれる誤りデータを訂正する誤り訂正方法において、
誤りデータ位置検出部が、前記ブロックデータの誤りデータの位置をライン毎に検出し、
バーストエラー予測部が、他のラインの誤りデータの位置を参照し、前記誤りデータ位置検出部により検出された位置の誤りデータがバーストエラーか否かを予測し、
訂正実行部が、各ラインの、前記バーストエラー予測部によりバーストエラーであると予測された誤りデータについて消失訂正を行い、それ以外の誤りデータについて検出訂正を行う、
ことを特徴とする誤り訂正方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は誤り訂正装置および誤り訂正方法に関し、特に、ブロック単位で取り込んだ光ディスクのブロックデータに含まれる誤りデータを訂正する誤り訂正装置および誤り訂正方法に関する。
【背景技術】
【０００２】
一般的に、光ディスクのデータを読み出す際、トラッキングの外れや、円周方向の傷や汚れ等により、連続したデータの誤り（バーストエラー）が起こることが知られている。
その対策として直交方向にインターリーブされたライン毎にリードソロモン（Reed-Solomon）符号等のＥＣＣ（Error Check and Correct）パリティを付加して記録し、再生時に訂正する方法が知られている。
【０００３】
近年、光ディスクのデータの高密度化により、誤りデータの数が多くなり、誤りデータが存在する位置（以下、単に「誤り位置」と言う）および誤りデータの数値（以下、単に「誤り数値」という）両方を求めてデータの訂正を行う検出訂正のみでは訂正できるデータの数が限界に達してしまうため、検出訂正に加えて、予め誤り位置を予測してデータの訂正を行う消失訂正も組み合わせてより多くの誤りに対応しようとしている（例えば、特許文献１参照）。
【０００４】
図１６は、ブロック符号の一例を示す図である。
誤りデータの訂正は、１ライン分のメインデータ１９２バイト＋ＥＣＣパリティ１６バイトの計２０８バイトについて、左側から右側に向かって１ライン（図１６中斜線部）毎に順次行う。この際、他のラインとの相互関係は無い。一般にＥＣＣパリティが２ｔ（ｔ＝１、２、・・・ｎ）バイトで、検出訂正が可能なバイト数をｋバイト（ｋ個）、消失訂正が可能なバイト数をｓバイト（ｓ個）とすると、次式（１）の関係がある。
【０００５】
２ｋ＋ｓ≦２ｔ・・・（１）
従って、検出訂正のみ行うと１ラインのうちＥＣＣパリティ（１６バイト）の半分の８バイトまでの誤りを訂正することができる。
【０００６】
さらに、消失訂正を組み合わせた場合、訂正することができる誤りの個数を増やすことができる。例えば、予め８個の誤り位置がわかっていれば、消失訂正８個＋検出訂正４個で合計１２個まで訂正できる。また、１６個の誤り位置の全てが予めわかっていれば、消失訂正のみで１６個の誤りを訂正できるが、その場合、検出訂正はできないので、不測のエラーが存在すると訂正不能となる。
【特許文献１】特開平５−７４０６６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
消失訂正を行うためには、誤りがあると思われるデータの位置にフラグ（消失フラグ）を立てる。フラグの数は前述した式（１）で定めるｓ個となるが、もしフラグを立てた位置に誤りが無かったとしても、フラグを使用するため、外れたフラグは無駄に使用したことになり、かえって訂正限界を下げることになる。
【０００８】
このように、誤り位置の予測が外れた場合には正しいデータに対して訂正するＥＣＣパリティのバイトを無駄に使ってしまうことになるため、高い確率で誤り位置を予測することが必要となる。
【０００９】
本発明はこのような点に鑑みてなされたものであり、より多くの誤りを訂正することができる誤り訂正装置および誤り訂正方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、誤り訂正装置および誤り訂正方法が提供される。この誤り訂正装置および誤り訂正方法は、ブロック単位で取り込んだ光ディスクのブロックデータに含まれる誤りデータを訂正するものであり、誤りデータ位置検出部とバーストエラー予測部と、訂正実行部とを有している。
【００１１】
誤りデータ位置検出部は、ブロックデータの誤りデータの位置をライン毎に検出する。
バーストエラー予測部は、他のラインの誤りデータの位置を参照し、誤りデータ位置検出部により検出された位置の誤りデータがバーストエラーか否かを予測する。
【００１２】
訂正実行部は、各ラインの、バーストエラー予測部によりバーストエラーであると予測された誤りデータについて消失訂正を行い、それ以外の誤りデータについて検出訂正を行う。
【００１３】
このような誤り訂正装置および誤り訂正方法によれば、誤りデータ位置検出部により、ブロックデータの誤りデータの位置がライン毎に検出される。そして、バーストエラー予測部により、他のラインの誤りデータの位置が参照され、誤りデータ位置検出部によって検出された位置の誤りデータがバーストエラーか否かが予測される。そして、訂正実行部により、各ラインの、バーストエラー予測部によってバーストエラーであると予測された誤りデータについて消失訂正が行われ、それ以外の誤りデータについて検出訂正が行われる。
【発明の効果】
【００１４】
開示の誤り訂正装置および誤り訂正方法によれば、より多くの誤りを訂正することができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
まず、本発明の概要について説明し、その後、実施の形態を説明する。
図１は、本発明の概要を示す図である。
【００１６】
図１に示す誤り訂正装置１は、ブロック単位で取り込んだ光ディスクのブロックデータ５に含まれる誤りデータを訂正するものであり、誤りデータ位置検出部２とバーストエラー予測部３と、訂正実行部４とを有している。
【００１７】
光ディスクとしてはエラー訂正用のパリティビットを備えていればその種別は特に限定されない。
ブロックデータ５は、メインデータ領域とパリティ領域とで構成されている。
【００１８】
誤りデータ位置検出部２は、ブロックデータ５の誤りデータの位置をライン毎に検出する。
図１では、一例としてディスク上の記録方向に対して直交する方向を検出方向とし、検出方向に並ぶ１ラインのデータをそれぞれ紙面左側から右側に順番に検出している。
【００１９】
バーストエラー予測部３は、他のラインの誤りデータの位置を参照し、誤りデータ位置検出部２により検出された位置の誤りデータがバーストエラーか否かを予測する。
ここで、図１中「×」印の誤りデータは、バーストエラーであると判明した誤りデータを示しており、「●」印の誤りデータは、実際はバーストエラーであるが、誤りデータ位置検出部２が検出した時点では、まだバーストエラーであることが判明していないデータを示しており、「△」印の誤りデータは、実際はバーストエラーでないが、誤りデータ位置検出部２が検出した時点では、まだバーストエラーでないことが判明していないデータを示している。
【００２０】
バーストエラー予測部３は、「●」印の誤りデータについては、例えば、紙面左隣にバーストエラーが存在することから今回検出した位置の誤りデータがバーストエラーであると予測する。また、「△」印の誤りデータについては、例えば、紙面左隣にバーストエラーが存在しないことから今回検出した位置の誤りデータはバーストエラーでないと予測する。
【００２１】
訂正実行部４は、各ラインの、バーストエラー予測部３によりバーストエラーであると予測された誤りデータについて消失訂正を行い、それ以外の誤りデータについて検出訂正を行う。
【００２２】
図１では、「●」印の誤りデータについては消失訂正を行い、「△」印の誤りデータについては、検出訂正を行う。これにより、訂正限界を高めることができる。
以下、本発明の実施の形態を説明する。
【００２３】
図２は、光ディスク記録再生装置のハードウェア構成例を示す図である。
光ディスク記録再生装置１０は、ＣＰＵ（Central Processing Unit）１１によって装置全体が制御されている。ＣＰＵ１１には、バス１７を介してＤＲＡＭ（Dynamic Random Access Memory）１２、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）１３、グラフィック処理装置１４、入力インタフェース１５、およびディスクコントローラ１６が接続されている。
【００２４】
ＤＲＡＭ１２には、ＣＰＵ１１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＤＲＡＭ１２には、ＣＰＵ１１による処理に必要な各種データが格納される。ＨＤＤ１３には、ＯＳやアプリケーションプログラムが格納される。また、ＨＤＤ１３内には、プログラムファイルが格納される。
【００２５】
グラフィック処理装置１４には、モニタ１４ａが接続されている。グラフィック処理装置１４は、ＣＰＵ１１からの命令に従って、画像をモニタ１４ａの画面に表示させる。入力インタフェース１５には、キーボード１５ａとマウス１５ｂとが接続されている。入力インタフェース１５は、キーボード１５ａやマウス１５ｂから送られてくる信号を、バス１７を介してＣＰＵ１１に送信する。
【００２６】
ディスクコントローラ１６は、光ディスク（後述）の再生等を行う。
光ディスクとしては、例えばＣＤ（Compact Disc）等が挙げられる。
図３は、ディスクコントローラの機能を示すブロック図である。
【００２７】
ディスクコントローラ１６は、ＤＳＰ（Digital Signal Processor）１６１と、ＣＲＣ（Cyclic Redundancy Check）チェック部１６２と、ＤＲＡＭコントローラ１６３と、ＥＣＣ１６４と、エンコーダ１６５と、デコーダ１６６と、インタフェース部１６７とを有している。
【００２８】
ＤＳＰ１６１は、ディスクコントローラ１６全体の制御を行う。
ＣＲＣチェック部１６２は、ＤＲＡＭコントローラ１６３のデータのＣＲＣチェックを行う。
【００２９】
ＤＲＡＭコントローラ１６３は、受け取ったデータをＤＲＡＭ１２に送る。また、必要に応じてＤＲＡＭ１２からデータを取り出し、ＥＣＣ１６４等に送る。
また、ＤＲＡＭコントローラ１６３は、ＥＣＣ１６４からメモリアドレスおよび数値を受け取ると、検出訂正および必要に応じて消失訂正を行う。
【００３０】
ＥＣＣ１６４は、ＤＲＡＭコントローラ１６３から送られたデータに対し誤り位置と数値を算出し、誤り位置をメモリアドレスに変換した後に、変換したメモリアドレスとその数値をＤＲＡＭコントローラ１６３に送る。また、光ディスク１００へのデータ書き込み時には、書き込みデータをエンコーダ１６５に送る。
【００３１】
エンコーダ１６５は、ＥＣＣ１６４から供給されたデータをエンコードし、光ディスク１００に書き込む。
デコーダ１６６は、光ディスク１００から供給されたデータをデコードし、ＤＲＡＭコントローラ１６３に送る。
【００３２】
インタフェース部１６７は、ＳＡＴＡ（Serial ATA）規格によってバス１７に接続されている。インタフェース部１６７は、ＤＲＡＭコントローラ１６３からの信号を、バス１７を介してＣＰＵ１１に送信する。
【００３３】
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。このようなハードウェア構成のシステムにおいて誤り訂正を行うために、ＥＣＣ１６４内には、以下のような機能が設けられる。
【００３４】
図４は、ＥＣＣの機能を示すブロック図である。
ブロックデータメモリ１２ａ、１２ａ、・・・は、ＤＲＡＭ１２の一領域によって構成され、光ディスク１００から読み込まれたブロックデータが、誤り訂正を行うＥＣＣブロック単位で格納されている。ＤＲＡＭコントローラ１６３は、これらのブロックデータをＥＣＣ１６４に送る。
【００３５】
ＥＣＣ１６４は、シンドローム生成部１６４ａと、シンドローム多項式補正部１６４ｂと、ユークリッド互除部１６４ｃと、チェンサーチ部１６４ｄと、バーストエラーメモリ１６４ｅと、アドレス変換部１６４ｆとを有している。
【００３６】
シンドローム生成部１６４ａは、ブロックデータメモリ１２ａ、１２ａ、・・・に格納されているライン毎のデータから誤りパターンのみによって一意に決定されるシンドロームを計算する。
【００３７】
シンドローム多項式補正部１６４ｂは、バーストエラーメモリ１６４ｅから得られるバーストエラーが生じているデータの位置を示すバーストエラー位置情報に基づいて、シンドロームを補正する。
【００３８】
ユークリッド互除部１６４ｃは、補正されたシンドロームおよび消失の位置から誤り位置多項式と誤り数値多項式を計算する。
チェンサーチ部１６４ｄは、誤り位置多項式と誤り数値多項式から誤り位置と誤り数値とを算出する。そして、誤り位置のデータをバーストエラーメモリ１６４ｅに出力し、誤り位置のデータと誤り数値のデータとをアドレス変換部１６４ｆに出力する。
【００３９】
バーストエラーメモリ１６４ｅは、入力された誤り位置のデータが、バーストエラーであるか否かを判断し、バーストエラー位置情報を作成し、シンドローム多項式補正部１６４ｂに出力する。
【００４０】
アドレス変換部１６４ｆは、誤り位置のデータをメモリアドレスに変換し、誤り数値のデータとともにＤＲＡＭコントローラ１６３に送る。ＤＲＡＭコントローラ１６３は、受け取ったアドレス位置のデータをＤＲＡＭ１２より読み取り、誤り位置数値のデータと排他的論理和（ＥＯＲ）して、ＤＲＡＭ１２の同じアドレス位置に書き戻すことにより訂正する。
【００４１】
次に、ブロックデータメモリ１２ａ、１２ａ、・・・に格納されるブロックデータについて説明する。
図５は、ブロックデータを示す図である。
【００４２】
以下、紙面の上方向を「上」、下方向を「下」、左方向を「左」、右方向を「右」、上下方向を「行方向」、左右方向を「列方向」という。
ブロックデータＢＤ１は、行方向に２０８バイト、列方向に１７２バイト（ライン）で構成されている。
【００４３】
行方向２０８バイトのうち、上から１９２バイトはメインデータであり、残りの１６バイトはＥＣＣパリティである。
このブロックデータＢＤ１には、図５中、左側から右側に向かう方向（記録方向）にデータが書き込まれ、一番右の列に達すると、一行下の左側から記録方向にデータが書き込まれる。
【００４４】
ここで、図５中、「×」印で示した部位は、バーストエラー（が生じていること）を示している。
次に、ディスクコントローラ１６の誤り訂正の動作を説明する。
【００４５】
図６は、ディスクコントローラの誤り訂正の動作を示すフローチャートである。
まず、ＤＲＡＭコントローラ１６３が、ブロックデータＢＤ１の処理対象の行方向１ラインを設定する（ステップＳ１）。
【００４６】
次に、ＤＲＡＭコントローラ１６３が、ＥＣＣ１６４が出力したメモリアドレスおよび誤り数値に基づいて、該当する行方向１ラインの検出訂正を行う（ステップＳ２）。具体的には、誤り位置のデータと誤り数値の排他的論理和を取って、その結果（すなわち、正しいデータ）をブロックデータＢＤ１の、当該誤り位置に書き戻す。
【００４７】
また、チェンサーチ部１６４ｄが、誤り位置のデータをバーストエラーメモリ１６４ｅに出力する（ステップＳ３）。
次に、ＤＲＡＭコントローラ１６３が、次に処理を行うラインを１ライン右隣のラインとする（ステップＳ４）。
【００４８】
次に、バーストエラーメモリ１６４ｅが、処理を行うラインにバーストエラーが存在するか否かを判断する（ステップＳ５）。
バーストエラーが存在しない場合（ステップＳ５のＮｏ）、ステップＳ２に移行し、ステップＳ２以降の動作を引き続き行う。
【００４９】
一方、バーストエラーが存在する場合（ステップＳ５のＹｅｓ）、バーストエラーメモリ１６４ｅが、バーストエラー位置をシンドローム多項式補正部１６４ｂに出力し、シンドローム多項式補正部１６４ｂが、バーストエラーメモリ１６４ｅから得られるバーストエラー位置情報に基づいて、シンドロームを補正する。
【００５０】
また、ＤＲＡＭコントローラ１６３が、シンドローム多項式補正部１６４ｂ、ユークリッド互除部１６４ｃ、チェンサーチ部１６４ｄおよびアドレス変換部１６４ｆの処理結果に基づいて、行方向のラインの検出訂正および消失訂正を行う（ステップＳ６）。その後、ステップＳ３に移行し、ステップＳ３以降の動作を引き続き行う。
【００５１】
このような処理を最終ラインに達するまで行う。
図７は、バーストエラーメモリの内部構成を示すブロック図である。
バーストエラーメモリ１６４ｅは、誤り位置入力制御回路１６４１と、行方向１ライン分の誤り位置のデータを保持（記憶）する３２個の位置保持レジスタｒｅｇ０〜ｒｅｇ３１と、各レジスタにそれぞれ対応して設けられ、同じ誤り位置が列方向にいくつ連続しているかを数えるカウンタＣ０〜Ｃ３１と、バーストエラー位置出力制御回路１６４２とを有している。
【００５２】
誤り位置入力制御回路１６４１には、ブロックデータＢＤ１のうちの行方向１ライン分の訂正が終わる毎に、チェンサーチ部１６４ｄが出力する誤り位置のデータが読み込まれる。
【００５３】
誤り位置入力制御回路１６４１は、各位置保持レジスタｒｅｇ０〜ｒｅｇ３１が誤り位置のデータを保持しているか否か、およびデータを保持している場合、どの誤り位置のデータを保持しているか、を把握しており、既に保持しているデータに列方向に隣接する誤り位置のデータが入力されると、そのレジスタに対応するカウンタをインクリメント（＋１カウントアップ）する。また、位置保持レジスタｒｅｇ０〜ｒｅｇ３１が保持していない誤り位置のデータが入力されると、データを保持していない位置保持レジスタに、読み込まれた誤り位置のデータを出力する。
【００５４】
なお、位置保持レジスタおよびカウンタの個数は、特に限定されないが、本実施の形態ではＥＣＣパリティの２倍（保持分１６バイトおよび余裕分１６バイトを併せた３２個）にしている。
【００５５】
バーストエラー位置出力制御回路１６４２は、カウンタＣ０〜Ｃ３１および位置保持レジスタｒｅｇ０〜ｒｅｇ３１の情報に基づいてバーストエラーの位置を求めてそのバーストエラー位置情報を出力する。
【００５６】
次に、バーストエラーメモリ１６４ｅのバーストエラー位置検出動作を説明する。
誤り位置入力制御回路１６４１は、行方向１ラインの誤り位置のデータが読み込まれる毎に、入力された誤り位置のデータと、位置保持レジスタｒｅｇ０〜ｒｅｇ３１に保持されている誤り位置のデータとを比較し、列方向に隣接する誤り位置のデータが既に位置保持レジスタｒｅｇ０〜ｒｅｇ３１のいずれかに保持されていれば、対応するカウンタＣ０〜Ｃ３１のカウンタ値をインクリメントし、保持されていなければ、読み込んだ誤り位置のデータを空いている位置保持レジスタに保存するとともにカウンタのカウンタ値をインクリメントする。
【００５７】
また、所定回数連続して誤り位置のデータが入力されなかった（バイト位置でエラーが無かった）位置保持レジスタについては、その位置保持レジスタに格納されている誤り位置のデータを抹消し、対応するカウンタ値を「０」にする。
【００５８】
そして、バーストエラー位置出力制御回路１６４２は、カウント値が予め設定された値以上であれば、対応する位置保持レジスタに保存されている誤り位置のデータ（の近傍）にはバーストエラーが存在すると判断し、次の行方向１ラインの誤り位置のデータが読み込まれたときに、実際の次のラインのバーストエラーの有無にかかわらず、その誤り位置に消失訂正の対象であることを示す消失フラグを立てる。以降、カウント値が予め設定された値以上であれば、消失フラグを立て続ける。このように、現在のカウンタ値と位置保持レジスタの値によって、次のラインの消失訂正の有無を判断する。
【００５９】
図８は、第１の実施の形態のブロックデータの具体例を示す図である。
本具体例では、連続して同じ誤り位置の情報が入力されなかった位置保持レジスタについて、その誤り位置の情報を抹消している。
【００６０】
ブロックデータＢＤ１ａにおいては、バイトｍとバイトｎにバーストエラーが生じている。また、行方向ラインＮｏ．９は、誤りが９個あるので１６バイトのＥＣＣパリティでは、検出訂正のみでは誤りを訂正することができない。
【００６１】
図９は、図８に示すブロックデータをバーストエラーメモリで処理した処理結果を模式的に示す図である。ここで、図９中「Ｂ」は、消失フラグを示している。
図９中太枠で囲ったように、行方向ラインＮｏ．９のバイトｍは、行方向ラインＮｏ．４から行方向ラインＮｏ．８まで続くバーストエラーにより、引き続きバーストエラーが存在するものとして消失フラグが立てられ、消失訂正が行われる。また、バイトｎは、行方向ラインＮｏ．６から行方向ラインＮｏ．８まで続くバーストエラーにより、引き続きバーストエラーが存在するものとして消失フラグが立てられ、消失訂正が行われる。
【００６２】
従って、行方向ラインＮｏ．９は、バイトｍとバイトｎの計２バイトについては消失訂正が行われ、残りの７バイトについては検出訂正が行われる。これにより、２ｋ＋ｓ＝２×（９−２）＋２＝１６となり、ＥＣＣパリティが１６バイトであっても、９個の誤りを訂正することができる。
【００６３】
以上述べたように、本実施の形態の光ディスク記録再生装置１０によれば、ディスクコントローラ１６が、確度の高い消失フラグを立てて誤り訂正を行うようにしたので、より多くの誤りを訂正することができる。
【００６４】
次に、第２の実施の形態の光ディスク記録再生装置について説明する。
以下、第２の実施の形態の光ディスク記録再生装置について、前述した第１の実施の形態との相違点を中心に説明し、同様の事項については、その説明を省略する。
【００６５】
第２の実施の形態の光ディスク記録再生装置は、光ディスクの種別およびその制御方法が異なっている。
図１０は、第２の実施の形態の光ディスク記録再生装置のブロックデータを示す図である。
【００６６】
第２の実施の形態の光ディスクは、ＤＶＤ（Digital Versatile Disk）やＨＤＤＶＤ（High Definition DVD）のようにメインデータの右側および下側にＥＣＣパリティが設けられている。
【００６７】
図１０に示すブロックデータＢＤ２の右側のＥＣＣパリティ（ＰＩ）は１０バイトであり、下側のＥＣＣパリティ（ＰＯ）は１６バイトである。
次に、第２の実施の形態のディスクコントローラ１６の誤り訂正の動作を説明する。
【００６８】
図１１は、ディスクコントローラの誤り訂正の動作を示すフローチャートである。
まず、ＤＲＡＭコントローラ１６３が、列方向の各ラインについてＥＣＣパリティ（ＰＩ）を用いて検出訂正を行う（ステップＳ１１）。
【００６９】
検出訂正が終了後、ＤＲＡＭコントローラ１６３が、全ての列方向のラインが訂正できたか否か、すなわち、列方向の各ラインそれぞれの誤りの個数が５個以下であるか否かを判断する（ステップＳ１２）。
【００７０】
全てのラインが訂正できた場合（ステップＳ１２のＹｅｓ）、すなわち、各ラインそれぞれの誤りの個数が５個以下であった場合、処理を終了する。
一方、全てのラインが訂正できなかった場合（ステップＳ１２のＮｏ）、すなわち、誤りの個数が５個より多いラインが存在する場合、ＤＲＡＭコントローラ１６３が、検出訂正で訂正できなかったライン数が１６ライン（２ｔ）より多いか否か（消失訂正可能か否か）を判断する（ステップＳ１３）。
【００７１】
訂正不能であったライン数が１６より多い場合、すなわち消失訂正できない場合、（ステップＳ１３のＹｅｓ）、バーストエラーと検出された誤り位置のみに消失フラグを立てながら、行方向のラインについて検出訂正および消失訂正を行う（ステップＳ１４）。その後、ステップＳ１７に移行する。
【００７２】
一方、訂正不能であったライン数が１６以下の場合（ステップＳ１３のＮｏ）、すなわち、消失訂正可能な場合、検出訂正で訂正できなかったラインの全バイトに消失フラグを立てる（ステップＳ１５）。
【００７３】
その後、行方向のラインの検出訂正および消失訂正を行う（ステップＳ１６）。
行方向の全てのラインが訂正できたか否かを判断する（ステップＳ１７）。
行方向の全てのラインが訂正できた場合（ステップＳ１７のＹｅｓ）、処理を終了する。
【００７４】
一方、行方向の全てのラインが訂正できなかった場合（ステップＳ１７のＮｏ）、訂正できなかった行方向のラインの全バイトに消失フラグを立てる（ステップＳ１８）。
次に、列方向のラインについて検出訂正および消失訂正を行う（ステップＳ１９）。
【００７５】
列方向の全てのラインが訂正できたか否かを判断する（ステップＳ２０）。
列方向の全てのラインが訂正できた場合（ステップＳ２０のＹｅｓ）、処理を終了する。
【００７６】
一方、列方向の全てのラインが訂正できなかった場合（ステップＳ２０のＮｏ）、ステップＳ１３に移行し、ステップＳ１３以降の動作を引き続き行う。
次に、具体例を用いて説明する。
【００７７】
図１２は、第２の実施の形態のブロックデータの具体例を示す図である。
図中の「＋」印、「×」印、「△」印はいずれもバイトの誤り位置を示す。「＋」は、バーストエラーを示しており、「×」印は、バーストエラーではないが、列方向に６つ以上の誤りが存在するラインの誤り位置を示しており、「△」印は、誤りの数が５つ以下の列の誤り位置を示している。また、斜線で示す列は、「＋」印または「×」印の誤りが存在する列を示している。
【００７８】
列方向のＥＣＣパリティ（ＰＩ）は１０バイトなので、ＤＲＡＭコントローラ１６３は、誤りの数が５つまでの列方向の各ラインについて、すなわち、「△」印の誤り位置を備えるラインについては、検出訂正のみで誤りを訂正することができる。
【００７９】
しかし、網掛け部分に示すように、「＋」印または「×」印の誤りは、１ラインあたり６個以上あるので、誤りを訂正することができない。また、誤り位置も特定することができない。
【００８０】
また、ブロックデータＢＤ２ａでは、列方向のＥＣＣパリティ（ＰＯ）は１６バイトであるが、検出訂正で訂正できなかった列方向のラインが１８ライン存在し、消失訂正を行っても誤りを訂正することができない。
【００８１】
よって、行方向のラインについても、まず、検出訂正を行うことになるが、このとき第１の実施の形態と同様にバーストエラーメモリ１６４ｅを用いてバーストエラーを検出しながら検出訂正を行う。具体的には、行方向ラインＮｏ．０から順に検出訂正を行い、「＋」印のバーストエラーを検出した場合は、第１の実施の形態と同様に消失フラグを用いて消失訂正を行う。
【００８２】
ブロックデータＢＤ２ａでは、ラインＮｏ．０からラインＮｏ．７までは「×」印と「＋」印とを合わせても誤り位置が８個以内なので検出訂正のみでも誤りを訂正することができるが、ラインＮｏ．８は、「×」印と「＋」印とで９個の誤り位置が存在するため、検出訂正のみでは誤りを訂正することができない。
【００８３】
このため、バーストエラーメモリ１６４ｅが立てた消失フラグを用いて消失訂正を行う、すなわち、「＋」印については消失訂正を行うことにより、誤りを訂正することができる。
【００８４】
ラインＮｏ．１４もラインＮｏ．８と同様に、バーストエラーメモリ１６４ｅが立てた消失フラグを用いて消失訂正を行うことで誤りを訂正することができる。
従来は、消失訂正を使わず、行方向ラインＮｏ．８、Ｎｏ．１４の誤りが残った場合でも、訂正できなかった行方向ラインＮｏ．８、Ｎｏ．１４のバイトにフラグを立て、斜線の列についてもう一度列方向の消失訂正を行う必要があるため、訂正時間が大幅に増えてしまい、ディスクの倍速性能を悪化させる。
【００８５】
この第２の実施の形態の光ディスク記録再生装置によれば、第１の実施の形態の光ディスク記録再生装置と同様の効果が得られる。
そして、第２の実施の形態の光ディスク記録再生装置によれば、ＤＶＤやＨＤＤＶＤのように行・列両方にＥＣＣパリティを持ったプロダクトコードの場合においても、バーストエラーメモリ１６４ｅが立てた消失フラグを用いて消失訂正を行うことで容易かつ確実に誤りを訂正することができる。
【００８６】
次に、第３の実施の形態の光ディスク記録再生装置について説明する。
以下、第３の実施の形態の光ディスク記録再生装置について、前述した第１の実施の形態との相違点を中心に説明し、同様の事項については、その説明を省略する。
【００８７】
第３の実施の形態の光ディスク記録再生装置は、光ディスクの種別およびその制御方法が異なっている。
図１３は、第３の実施の形態の光ディスク記録再生装置のブロックデータを示す図である。
【００８８】
第３の実施の形態の光ディスクは、Ｂｌｕ−ｒａｙ  Ｄｉｓｃ（登録商標）のように、１列毎にＰｉｃｋｅｔコードが設けられ、行方向１ライン毎にＥＣＣパリティが設けられている。
【００８９】
１つのブロックデータＢＤ３は、６４Ｋバイトのデータを有している。
このデータは、ＬＤＣ（Long Distance Code）と呼ばれるコードで保護されている。ＬＤＣは、行方向に３０４個のコード・ワードで構成され、それぞれのコード・ワードは、２１６バイトのメインデータと、３２バイトのＥＣＣパリティとで構成されている。
【００９０】
これらのコード・ワードは、ＥＣＣパリティの２×２毎にインターリーブされ、列方向に１５２バイト、行方向に４９６バイトのブロックとして形成されている。
また、ブロックデータＢＤ３の中に、等間隔で４つのＰｉｃｋｅｔコードが設けられている。１番左の「Ｓ」と記したＰｉｃｋｅｔコードは、それぞれの行の開始を示す同期パターンである。
【００９１】
ＰｉｃｋｅｔコードはＢＩＳ（Burst Indicator Subcode）によって誤り訂正符号化し、保護している。このＢＩＳは、３０バイトのデータに３２バイトのＥＣＣパリティを付加するといったように、２１６バイトのデータに３２バイトのＥＣＣパリティを付加するＬＤＣに比較して誤り訂正能力の高いエラーチェックコードを備えている。従って、Ｐｉｃｋｅｔコードは、検出訂正のみで誤りを訂正することができる。しかし、本実施の形態の誤り訂正を行うことにより、さらに効率よく誤りを訂正することができる。
【００９２】
次に、第３の実施の形態のディスクコントローラの誤り訂正の動作を説明する。
図１４は、第３の実施の形態のディスクコントローラの誤り訂正の動作を示すフローチャートである。
【００９３】
まず、ＢＩＳによってＰｉｃｋｅｔコードを検出訂正する（ステップＳ３１）。
次に、検出訂正によって得られたＰｉｃｋｅｔコードの誤り位置に挟まれたバイトに消失フラグとは異なるバーストアラームを立てる（ステップＳ３２）。
【００９４】
次に、バーストエラーが検出されたバイトまたは、バーストアラームの立っている位置でバーストエラーが検出されたバイトのみに消失フラグを立てながら、ＬＤＣラインを検出訂正および消失訂正する（ステップＳ３３）。
【００９５】
以上で動作を終了する。
以下、具体例を用いて説明する。
図１５は、第３の実施の形態の光ディスク記録再生装置の処理の具体例を示す図である。
【００９６】
Ｐｉｃｋｅｔコードの誤り位置は、その両側に指定バイト分広げた範囲を誤っているものとして、行方向にＬＤＣの訂正を行うときの消失フラグの設定として用いる。
このような処理を行った場合、エリア４１のようにバーストエラーが発生している場合はある程度効率的であるが、エリア４２のようにバーストエラーが発生していない場合は、消失フラグを無駄にしてしまい、かえってＬＤＣの訂正限界を落とす可能性がある。
【００９７】
そこで、Ｐｉｃｋｅｔコードの両側数バイト（例えば２バイト）まではＰｉｃｋｅｔコードのみで消失訂正を行うが、３バイト以上離れたところではバーストエラーメモリ１６４ｅを用いて消失訂正を行う。または、エリア４３のようにＰｉｃｋｅｔコード内の誤りで挟まれている場合に、バーストエラーメモリ１６４ｅによるバーストエラー位置情報と重なった場合にのみ消失フラグを立て、消失訂正を行う。これにより、消失フラグの確度を上げることができる。
【００９８】
この第３の実施の形態の光ディスク記録再生装置によれば、第１の実施の形態の光ディスク記録再生装置と同様の効果が得られる。
以上、本発明の誤り訂正装置および誤り訂正方法を、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物や工程が付加されていてもよい。
【００９９】
また、本発明は、前述した各実施の形態のうちの、任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【図面の簡単な説明】
【０１００】
【図１】本発明の概要を示す図である。
【図２】光ディスク記録再生装置のハードウェア構成例を示す図である。
【図３】ディスクコントローラの機能を示すブロック図である。
【図４】ＥＣＣの機能を示すブロック図である。
【図５】ブロックデータを示す図である。
【図６】ディスクコントローラの誤り訂正の動作を示すフローチャートである。
【図７】バーストエラーメモリの内部構成を示すブロック図である。
【図８】第１の実施の形態のブロックデータの具体例を示す図である。
【図９】図８に示すブロックデータをバーストエラーメモリで処理した処理結果を模式的に示す図である。
【図１０】第２の実施の形態の光ディスク記録再生装置のブロックデータを示す図である。
【図１１】ディスクコントローラの誤り訂正の動作を示すフローチャートである。
【図１２】第２の実施の形態のブロックデータの具体例を示す図である。
【図１３】第３の実施の形態の光ディスク記録再生装置のブロックデータを示す図である。
【図１４】第３の実施の形態のディスクコントローラの誤り訂正の動作を示すフローチャートである。
【図１５】第３の実施の形態の光ディスク記録再生装置の処理の具体例を示す図である。
【図１６】ブロック符号の一例を示す図である。
【符号の説明】
【０１０１】
１  誤り訂正装置
２  誤りデータ位置検出部
３  バーストエラー予測部
４  訂正実行部
１０  光ディスク記録再生装置
１２  ＤＲＡＭ
１２ａ  ブロックデータメモリ
１６  ディスクコントローラ
４１〜４３  エリア
１６１  ＤＳＰ
１６２  ＣＲＣチェック部
１６３  ＤＲＡＭコントローラ
１６４  ＥＣＣ
１６４１  誤り位置入力制御回路
１６４２  バーストエラー位置出力制御回路
１６４ａ  シンドローム生成部
１６４ｂ  シンドローム多項式補正部
１６４ｃ  ユークリッド互除部
１６４ｄ  チェンサーチ部
１６４ｅ  バーストエラーメモリ
１６４ｆ  アドレス変換部
１６５  エンコーダ
１６６  デコーダ
１６７  インタフェース部
Ｃ０〜Ｃ３１  カウンタ
ｒｅｇ０〜ｒｅｇ３１  位置保持レジスタ
【図１】
2009231898.tif 000003
【図２】
2009231898.tif 000004
【図３】
2009231898.tif 000005
【図４】
2009231898.tif 000006
【図５】
2009231898.tif 000007
【図６】
2009231898.tif 000008
【図７】
2009231898.tif 000009
【図８】
2009231898.tif 000010
【図９】
2009231898.tif 000011
【図１０】
2009231898.tif 000012
【図１１】
2009231898.tif 000013
【図１２】
2009231898.tif 000014
【図１３】
2009231898.tif 000015
【図１４】
2009231898.tif 000016
【図１５】
2009231898.tif 000017
【図１６】
2009231898.tif 000018