(57)【特許請求の範囲】
【請求項１】
１データのパケットがフレームで構成され、１フレームがそれぞれフレーム番号を付与されたデータで構成され、ＥＣＣパリティをデータとした特定フレームを含むデータ列を再生するデータ再生方法において、
１データパケットを記録手段に記録する記録ステップと、記録手段に記録されたデータパケットに含まれるフレーム番号を用い、前記特定のフレーム番号を検索するステップとフレーム番号と前記特定フレーム番号との一致数をカウントする一致判定ステップと、前記一致数からフレーム数を推定するステップと前記検索された特定のフレームから前記推定されたフレームデータの誤り訂正を行う誤り訂正ステップとを具備してなることを特徴とするデータ再生方法。
【請求項２】
１データのパケットがフレームで構成され、１フレームがそれぞれフレーム番号を付与されたデータで構成され、ＥＣＣパリティをデータとした特定フレームを含むデータ列を再生するデータ再生方法において、
データ列の有る区間と無い区間を判定するデータ未記録判定ステップと、１データパケットを記録手段に記録する記録ステップと、記録手段に記録されたデータパケットに含まれるフレーム番号を用い、前記特定のフレーム番号を検索するステップとフレーム番号と前記特定フレーム番号との一致数をカウントする一致判定ステップと、フレーム数を特定したデータの誤り訂正を行う誤り訂正ステップとを具備してなることを特徴とするデータ再生方法。
【請求項３】
１データのパケットがフレームで構成され、１フレームがそれぞれフレーム番号を付与されたデータで構成され、ＥＣＣパリティをデータとした特定フレームを含むデータ列を再生するデータ再生方法において、
データ列の有る区間と無い区間を判定するデータ未記録判定ステップとＰＥ変調されたデータを２値化信号に変換する復調する復調ステップとデータの同期コードを検出ステップと２値化信号からデータをフレーム番号とフレームデータに分けるデータ検出ステップと１データパケットを記録手段に記録する記録ステップと、記録手段に記録されたデータパケットに含まれるフレーム番号を用い、前記特定のフレーム番号を検索するステップとフレーム番号と前記特定フレーム番号との一致数をカウントする一致判定ステップと、一致判定によりフレーム数を特定するフレーム数特定ステップと、フレーム数を特定したデータの誤り訂正を行う誤り訂正ステップとを具備してなることを特徴とするデータ再生方法。
【請求項４】
前記誤り訂正ステップは、零埋め処理をせずに訂正する誤り訂正ステップであることを特徴とする請求項２のデータ再生方法
【請求項５】
請求項１乃至請求項４記載のデータ再生方法において、データ列はＢＣＡデータであることを特徴としたデータ再生方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ長が不特定なデータを再生するデータ再生方法に関する。
【０００２】
【従来の技術】
ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｉｄｅｏ  Ｄｉｓｋ）のような大容量の光ディスクには、従来の光ディスクには無かったＢＣＡ（Ｂｕｒｓｔ  Ｃｕｔｔｉｎｇ  Ａｒｅａ）コードが記録されていることがある。このＢＣＡデータは既にできあがっている光ディスク、例えばＤＶＤのＲＯＭのディスク一枚ごとに個別情報を追記することが可能となり、コンテンツの部分販売やインターネットとの連携システム等への応用が考えられる。ＢＣＡ書きこみ領域は、ライトワンスの状態で作成され、強いレーザを照射して反射面をとばすことにより、バースト部を形成し、このバースト部分の間隔によってデータ部の形成を行うようになっている。
【０００３】
図１３は光ディスクにおけるＢＣＡの記録形態を示すもので、１は光ディスク、２はＢＣＡである。また図１４はこのようなＢＣＡデータの１パケットの構造を示している。
【０００４】
従来の光ディスク再生装置では、光ヘッドからアナログ再生信号をローパスフィルタに通すことでＢＣＡ領域に記録されたバーコード（ストライプ）による信号とＤＶＤのピットを再生した信号を弁別してディジタル信号に変換し、そのパルス信号をコントローラのソフトウェアで復号することにより、ＢＣＡに記録されたデータを得るようにしている。なお、ナショナルテクニカルレポート（Ｎａｔｉｏｎａｌ  Ｔｅｃｈｎｉｃａｌ  Ｒｅｐｏｒｔ（Ｖｏｌ．４３  Ｎｏ．３  Ｊｕｎ．１９９７：ＤＶＤのＲＯＭディスクへの個別情報記録技術ＢＣＡ（Ｂｕｒｓｔ  Ｃｕｔｔｉｎｇ  Ａｒｅａ））にその技術が開示されている。
【０００５】
次に、ＢＣＡデータが記録された光ディスクを再生可能な従来のディスク再生装置について説明する。図１５において、１００１はＢＣＡデータが記録された光ディスクである。１００２はフェーズエンコーディング（ＰＥ変調）を施されているＢＣＡデータを２値化信号への復調する復調手段である。１００３は２値化信号からＢＣＡデータをフレーム番号とフレームデータに分けるＢＣＡデータ検出手段、１００４はＢＣＡデータの記録長を検出するＢＣＡ記録長検出回路である。１００５はデータを格納するバッファメモリである。１００６は制御手段であり、ＢＣＡ再生に関わる各ブロック間の調停およびデータ操作などを行う。また、１００５バッファメモリへは、同期コードのフレーム番号とフレームデータが格納されるものとする。
【０００６】
従来の再生方法を図１６に示し、以下にその説明をする。
【０００７】
ステップ１１０１はＢＣＡデータがバッファメモリ１００５に格納完了済みかどうかを判定する。既に完了済みであれば、ステップ１１０３へ、そうでなければステップ１１０２を行う。ステップ１１０２は、光ディスク１００１から再生したＢＣＡデータをバッファメモリ１００５に格納する。ステップ１１０３は、バッファメモリ１００５に格納したＢＣＡデータに対し、ＥＣＣパリティを用いて誤り訂正処理を行う。
【０００８】
ステップ１１０４は、ステップ１００３で訂正した後、ＥＤＣパリティを用いてユーザデータの誤り検出処理を行う。ステップ１１０５では、ステップ１１０４にて得られたユーザデータの再生を行う。
【０００９】
【発明が解決しようとする課題】
しかしながら、上記のような従来のデータ再生方法では、ＢＣＡデータの同期コードずれ、バッファメモリへ格納時の同期コード取りこぼし等が発生した場合、次の同期コードが検出されるまでデータがずれてバッファメモリへ格納されるため、誤り訂正エラーとなる。また指紋や傷などで同期コードが正しくバッファメモリへ格納できない場合は、誤り訂正エラーとなり再生できない。
【００１０】
そこで本発明は、上記事情を考慮してなされたもので複雑な回路を必要とせず、より正しく同期がとれる簡易な構成でバッファメモリへ格納したＢＣＡデータを再生することを可能としたデータ再生方法を提供することを目的とする。
【００１１】
【課題を解決するための手段】
本発明にかかるデータ再生方法は、１データパケットを記録可能な記録ステップと、再生されたデータパケットのフレーム数に関わらず含まれる前記フレーム番号を用い、フレーム番号と一致数をカウントする一致判定ステップと、フレーム数を特定するフレーム数特定ステップを備える。
【００１２】
上記のような構成によれば、フレーム数が特定されないデータ列を記録する記録ステップの後、記録したデータに対して再生されたデータパケットのフレーム数に関わらず含まれるフレーム番号を用い、フレーム番号の一致数を判定する一致数判定ステップにより、再生データの特定フレーム番号位置が固定できる。次にフレーム番号位置を元にフレーム数を特定する一致検索ステップを行い、フレーム数からフレームデータを特定できる。
【００１３】
このように、フレーム数に関わらず記録された記録ステップの１データパケットのフレームデータに対して、従来のようなＢＣＡ記録長検出手段等を必要とせず、簡易な構成でデータ列を容易に処理することが可能となる。
【００１４】
【発明の実施の形態】
以下、本発明の一実施形態について図面を用い説明する。
【００１５】
先ず、フレーム数が特定されていない場合について説明する。
【００１６】
ＢＣＡデータの１パケットは、図１４に示す通りであるが、このＢＣＡデータに関しては、ＥＣＭＡ−２６７(Standard ECMA-267,December 1997 : "120 mm DVD - Read-Only Disk" (Annex H (Burst Cutting Area)))に開示されている。
【００１７】
各々の同期コード９０１にはフレーム番号（1バイト）がある。フレーム番号９０２はＳＢＢＣＡとし、フレームデータ（４バイト）は「００ｈ」であるＢＣＡ−Ｐｒｅａｍｂｌｅデータが付加されている。
【００１８】
フレーム番号９０３（ＲＳＢＣＡｎ）の１フレームデータ（４バイト）である、ユーザデータ９０４は可変長（１≦ｎ≦１２）であり、同一番号を持つ４つのフレームデータで１データブロック（１６バイト）を構成する。但しｎに関わらず、最終データブロックの最後フレームデータの４バイトは、ＥＤＣパリティ９０５が付加される。
【００１９】
１データブロックにはＲＳＢＣＡ１３という特定のフレーム番号９０６が与えられ、フレームデータとしてＥＣＣパリティ９０７が付加される。
【００２０】
ＥＣＣパリティ９０７の後に、フレーム番号９０８であるＲＳＢＡＣ１４が与えられ、１フレームデータ９０９が「５５ｈ」であるＢＣＡ−Ｐｏｓｔａｍｂｌｅが付加される。本データフォーマットの最終は、同期コードＲＳＢＣＡ１５  ９１０が付加される。
【００２１】
ここで、ＥＤＣパリティ９０５、ＥＣＣパリティ９０７について説明する。図１４のユーザデータ９０４は、数式１（数１）で示される。
【００２２】
【数１】
0004158309.tif 000002
【００２３】
誤り検出用のＥＤＣパリティ９０５は、ユーザデータ９０４の誤り検出用のパリティであり、数式（数２）に示すように、入力されるユーザデータ９０４を数式（数３）の多項式Ｇ（ｘ）で割った余りで生成される。
【００２４】
【数２】
0004158309.tif 000003
【００２５】
【数３】
0004158309.tif 000004
【００２６】
次に、誤り訂正用のＥＣＣパリティ９０７は、ユーザデータ９０４とＥＤＣパリティ９０５に対する誤り訂正用のパリティであって、縦方向のデータ順列によるシンドローム計算により生成される。よって、この誤り訂正処理では４列分縦方向に進めるようにしている。数式（数４）〜数式（数６）で示されるように、１列ごとにパリティを生成する。ＥＣＣパリティ９０７は、数式（数５）を数式（数６）の多項式Ｇ（Ｘ）で割った余りで示される。
【００２７】
【数４】
0004158309.tif 000005
【００２８】
【数５】
0004158309.tif 000006
【００２９】
【数６】
0004158309.tif 000007
【００３０】
本実施形態におけるデータ再生手段の具体構成を図１と共に説明する。同図において、１０１はＢＣＡデータが記録された光ディスク、１０２はＰＥ変調されたデータを２値化信号に変換して復調する復調手段、１０３はデータ未記録判定手段で入力信号の有無を判定する。１０４はデータの同期コードを検出する同期検出手段、１０５は２値化信号からＢＣＡデータをフレーム番号とフレームデータに分けるＢＣＡデータ検出手段で、それぞれバッファメモリ１０６に格納される。１０７は特定フレーム番号検索手段で、バッファメモリ１０６に格納されたデータに対し、ユーザデータ９０４に関わらず全ての１パケットに付加される図１４記載のフレーム番号ＲＳＢＣＡ１３（４個），ＲＳＢＣＡ１４，ＲＳＢＣＡ１５（以下ＲＳＢＣＡ１３−１５）の位置を検索し、最もＲＳＢＣＡ１３−１５に一致したフレームデータをバッファメモリ１０６の別領域にコピーする。１０８は特定フレーム番号検索手段１０７で得た位置情報を用いて、フレーム番号からフレーム行数を推定するフレーム行数推定手段で、フレームデータをバッファメモリ１０６の別領域にコピーする。制御手段１０８は、各手段の調停を行う。
【００３１】
次に本実施形態におけるデータ再生方法を図２に示し、各ステップ毎に説明する。
【００３２】
ステップ２０１はデータの入力信号が検出されているかどうかを判定するデータ未記録判定ステップである。ステップ２０２は、ＢＣＡデータがバッファメモリ１０６に格納完了済みかどうかを判定する。既に完了済みであれば、ステップ２０４へ、そうでなければステップ２０３を行う。ステップ２０３は、１フレーム毎にフレーム番号およびフレームデータをバッファメモリ１０６に格納する。
【００３３】
ステップ２０４は、ユーザデータ９０４に関わらず全ての１パケットに付加されるＲＳＢＣＡ１３−１５の位置を、バッファメモリ１０６に格納されたデータに対し一致検索ステップを行う。これによりステップ２０３でバッファメモリ１０６に格納されたＲＳＢＣＡ１３−１５の位置を特定する。詳細ステップに付いては、図３および図４を用いて後述する。
【００３４】
ステップ２０５は、ステップ２０４で求めたフレーム番号からフレームデータ数を推定し、ユーザデータ９０４のデータブロック数を算出する。詳細ステップに付いては、図４および図５を用いて後述する。ステップ２０６は、ステップ２０４とステップ２０５で求めたフレームデータに対してＥＣＣパリティ９０７を用いて誤り訂正ステップを行う。
【００３５】
ステップ２０７は、ステップ２０６で訂正したユーザデータ９０４に対して、ＥＤＣパリティ９０５を用いて誤り検出ステップを行う。ステップ２０８は、ステップ２０７にて得られた記録データの再生を行う。
【００３６】
次に、特定フレーム番号検索方法について説明する。
【００３７】
図３を用いてステップ２０４の特定フレーム番号検索ステップを説明する。本ステップでは、バッファメモリ１０６に格納されたＲＳＢＣＡ１３−１５の６行について一致数をカウントする。ここでは、図４記載の手続きＭａｔｃｈ（ ）を用いる。
【００３８】
先ず、図３で用いるステップの値および変数を説明する。バッファメモリ１０６に格納されている格納済みフレーム番号配列をＦｒａｍｅＮｏ［ ］、特定フレーム番号先頭位置をＰａｒｉｔｙＬｏｃａｔｉｏｎ、一致数を計算する手続きをＭａｔｃｈ（ ）、Ｍａｔｃｈ（ ）の結果をＲｅｔＭａｔｃｈ、最大一致数をＭａｘＭａｔｃｈ、ｉを変数とする。
【００３９】
ステップ３０１でＭａｘＭａｔｃｈとＰａｒｉｔｙＬｏｃａｔｉｏｎの初期化および引数としてバッファメモリ１０６に格納した先頭位置をＦｒａｍｅＮｏ［］に設定する。
【００４０】
この場合の具体例を図６に示す。フレーム番号６０１に対して変数ｉを用い、ＦｒａｍｅＮｏ［ｉ］との対応を設定する（表１参照）。この例は先頭のフレーム番号位置（ｉ＝０，１，２，３）にデータが格納されず、またＲＳＢＣＡ１の１フレーム目のデータが欠落しているパターンとした。図６、表１ともに、バッファメモリ１０６に格納したフレーム番号に付いては、検索領域をフレームデータのＭＡＸとしたので、０≦ｉ＜６０として記載している。
【００４１】
【表１】
0004158309.tif 000008
【００４２】
ステップ３０２は、ＦｒａｍｅＮｏ［０］からフレーム番号が格納されている場合とし、検査回数ｉを本実施例では０≦ｉ＜６０とした。５９未満であればステップ３０３へ、そうでなければステップ３０５を行う。ステップ３０３は、手続きＭａｔｃｈ（ＦｒａｍｅＮｏ［ｉ］，１３，６）を行う。ここで、ＦｒａｍｅＮｏ［ｉ］はフレーム番号を、１３はＲＤＢＣＡ１３のフレーム番号、６は６行マッチを意味する。そして、ＭａｘＭａｔｃｈに登録されている値よりも手続きＭａｔｃｈ（ ）の結果をＲｅｔＭａｔｃｈが大きければ、ステップ３０４をそうでなければステップ３０２へ分岐する。
【００４３】
次に図４を用いてステップ３０３の手続きＭａｔｃｈ（ ）を説明する。同図において、格納済みフレーム番号配列をＦｒａｍｅＮｏ［ ］、比較フレーム番号をＦｒａｍｅＮｏ’、比較数をＮｕｍ、ポイントカウンタをＰｏｉｎｔ、結果をＲｅｔＭａｔｃｈ、ｉを変数としてステップ４０１〜ステップ４０８の説明する。
【００４４】
ステップ４０１でＰｏｉｎｔの初期化およびステップ４０３で指定した引数、バッファメモリ１０６への格納済みフレーム番号配列をＦｒａｍｅＮｏ［ｉ］、比較フレーム番号ＦｒａｍｅＮｏ’、比較Ｎｕｍを用いる。
【００４５】
ステップ４０２は、比較数をＮｕｍとし、ステップ４０２〜ステップ４０７までを繰り返し行う。ステップ４０３は、ステップ３０３で設定した手続きＭａｔｃｈ（ ）の引数である比較フレーム番号ＦｒａｍｅＮｏ’＝１３とバッファへの格納済みフレーム番号配列ＦｒａｍｅＮｏ［ｉ］と一致比較を行う。ステップ４０３記載の「＝＝」は、右辺と左辺が等価（一致）かどうかの判定を示す。一致であればステップ４０４へ、そうでなければステップ４０５に分岐する。
【００４６】
ステップ４０４は、ポイントカウンタＰｏｉｎｔの値をインクリメントする。ステップ４０５は、比較フレーム番号ＦｒａｍｅＮｏ’が１４よりも小さい場合はステップ４０６、そうでなければステップ４０７に分岐する。
【００４７】
ステップ４０６は、変数ｉが４インクリメントされた場合にステップ４０７へ、そうでなければステップ４０２に分岐する。変数ｉがステップ４０２でインクリメントされ、そのｉに対してステップ４０６の「ｉ＆３＝＝３」を行う。ここで「＆」を２進数の論理積演算とし、その結果が「＝＝」の左辺と等価かどうか判定する。等価であればステップ４０７へ、そうでなければステップ４０２に分岐する。ステップ４０７は、比較フレーム番号ＦｒａｍｅＮｏ’の値を１インクリメントする。ステップ４０８は、ポイントカウンタＰｏｉｎｔの値を手続きＭａｔｃｈ（ ）の結果をＲｅｔＭａｔｃｈとして設定する。
【００４８】
上記再生方法について、図６を用いて説明をする。
【００４９】
図６の６０１は、ＦｒａｍｅＮｏ［ｉ］であり、図１４のＢＣＡフォーマットデータｎ＝４までのフレーム番号を記載したものである。これは前述の通り、先頭のフレーム番号ＲＤＢＣＡ１を取りこぼした例である。６０２は、一致検索を行う際に用いる特定のフレーム番号ＲＳＢＣＡ１３−１５を示す。バッファメモリ１０６に格納したバッファメモリ１０６への格納済みフレーム番号のフレーム番号位置をＦｒａｍｅＮｏ［０］，ＦｒａｍｅＮｏ［１］，…，ＦｒａｍｅＮｏ［５９］とする。
【００５０】
次にＥＣＣパリティの位置は、フレーム数によらずフレーム番号１３として必ずデータに存在する。ここではＦｒａｍｅＮｏ’＝１３として、６０１と６０２の比較一致探索をステップ４０１〜ステップ４０８により行う。
【００５１】
図４に示したステップ４０２〜ステップ４０７は、６１１に示すように個々のフレーム番号ＦｒａｍｅＮｏ［０..５］（以下、ＦｒａｍｅＮｏ［ｍ］からＦｒａｍｅＮｏ［ｎ］までの連続データをＦｒａｍｅＮｏ[ｍ..ｎ]と表す。）とＦｒａｍｅＮｏ’＝[13,13,13,13,14,15]に対して検査を行い一致数をカウントする。この場合ステップ４０８の値は「０」となり、ステップ３０３のＭａｘＭａｔｃｈと判定を行う。
【００５２】
同様にして６１２では、フレーム番号位置ＦｒａｍｅＮｏ［１..６］とＦｒａｍｅＮｏ’＝[13,13,13,13,14,15]の比較を行い、一致数を求める。この場合、ステップ４０８の値は「０」である。
【００５３】
６１３は、フレーム番号位置ＦｒａｍｅＮｏ［１９..２５］とＦｒａｍｅＮｏ’＝[13,13,13,13,14,15]の比較であり、ステップ４０８の値は「６」となる。この時、ステップ３０４のＭａｘＭａｔｃｈ＝６、ＰａｒｉｔｙＬｏｃａｔｉｏｎ＝１９が保持される。
【００５４】
さらに検査を行い、６１４まで検査を行う。ステップ３０３でＭａｘＭａｔｃｈより結果ＲｅｔＭａｔｃｈが大きい場合は、ステップ３０４によりＭａｘＭａｔｃｈとＰａｒｉｔｙＬｏｃａｔｉｏｎを更新する。
【００５５】
本実施例における図３のステップ３０２〜ステップ３０４を変数ｉ（０≦ｉ＜６０）の範囲で手続きＭａｔｃｈ（ＦｒａｍｅＮｏ［ｉ］，１３，６）一致検索を行った結果（一部省略）を表２に記載する。
【００５６】
【表２】
0004158309.tif 000009
【００５７】
以上で手続きＭａｔｃｈ（ ）による処理ステップを終了する。
【００５８】
ステップ３０４は、ステップ３０３の結果からＭａｘＭａｔｃｈの値の更新、およびその時の位置をＰａｒｉｔｙＬｏｃａｔｉｏｎに設定してステップ３０２へ戻る。図６の例では、ＭａｘＭａｔｃｈ＝６、ＰａｒｉｔｙＬｏｃａｔｉｏｎ＝１９となる。ステップ３０５ではステップ３０４の結果から、ＭａｘＭａｔｃｈを示したＰａｒｉｔｙＬｏｃａｔｉｏｎを用い、格納したデータのＲＳＢＣＡ１３−１５に対応するフレームデータをバッファメモリ内の別領域にコピーする。図６では、ＰａｒｉｔｙＬｏｃａｔｉｏｎ＝１９から、ＦｒａｍｅＮｏ［１９］を先頭に６つのフレームデータをバッファメモリ内の別領域にコピーする。これによりステップ２０４の特定フレーム番号検索ステップを終了し、ステップ２０５に進む。
【００５９】
次にＢＣＡ行数推定方法について説明する。先ず、ステップ２０５のＢＣＡ行数推定ステップについて図５、図７を用いて説明する。
【００６０】
図５において、バッファメモリ１０６へ格納済みフレーム番号配列をＦｒａｍｅＮｏ［ ］、特定フレーム番号先頭位置をＰａｒｉｔｙＬｏｃａｔｉｏｎ、一致数を計算する手続きＭａｔｃｈ（ ）、最大一致数をＭａｘＭａｔｃｈ、Ｍａｔｃｈ（ ）の結果をＲｅｔＭａｔｃｈ、ＢＣＡフレーム行数をＬｉｎｅＮｕｍ、ｉ，ｊ，ｋを変数としてステップ５０１〜ステップ５１３の説明する。
【００６１】
ステップ５０１でＭａｘＭａｔｃｈとＬｉｎｅＮｕｍ、変数ｉ，ｊ，ｋ，ｌの初期化およびＰａｒｉｔｙＬｏｃａｔｉｏｎを設定する。ステップ２０４よりＰａｒｉｔｙＬｏｃａｔｉｏｎ＝１９とする。ステップ５０２は、格納されたデータについてステップ２０４で求めたＰａｒｉｔｙＬｏｃａｔｉｏｎ＝１９を元に、データブロック毎にｉ回検索する。本実施例では、ＢＣＡデータの最大ブロック数は１２であることから、１≦ｉ＜１３として、ステップ５０２〜ステップ５０８を繰り返す。また、ｉ＜１３であればステップ５０３へそうでなければステップ５０９に分岐する。
【００６２】
ステップ５０３は、変数ｊにＰａｒｉｔｙＬｏｃａｔｉｏｎの値から、ｉデータブロックの４倍した値を引く。ここで、ＰａｒｉｔｙＬｏｃａｔｉｏｎは１フレーム毎に対応した値であるから、１データブロックは４フレームデータで構成されているので、ｉデータブロックはｉ×４フレームデータを考慮している。
【００６３】
ステップ５０４はステップ５０３の変数ｊの値が０より小さい場合は、ステップ５０５へ、そうでなければステップ５０６へ分岐する。ステップ５０５では、変数ｌにＰａｒｉｔｙＬｏｃａｔｉｏｎを４で割った商を設定し、変数ｋにｉ−ｌの値を加算、変数ｊはＰａｒｉｔｙＬｏｃａｔｉｏｎと数値「３」との論理積演算「＆」した結果を再設定する。
【００６４】
ステップ５０６は、変数ｌに変数ｉの値を設定する。ステップ５０７は、手続きＭａｔｃｈ（ ）を用いる。手続きＭａｔｃｈ（ ）については、図４を用いて前述したようにステップ４０１〜４０８を行い、結果ＲｅｔＭａｔｃｈを得る。ここでは、手続きＭａｔｃｈ（ ）の引数として、ＦｒａｍｅＮｏ［ ］、変数ｊ、ｋ、ｌを用いる。ＭａｘＭａｔｃｈに登録されている値よりも手続きＭａｔｃｈ（ ）の結果ＲｅｔＭａｔｃｈが大きければステップ５０８を、そうでなければステップ５０２へ分岐する。
【００６５】
図７を用い、ステップ４０７について説明する。同図の７０１は図６の６０１と同様、ステップ２０４が終了した時点の格納例であり、図１４のＢＣＡフォーマットデータｎ＝４までのフレーム番号を記載したものである。７０２は、ＢＣＡ行数推定を行う際に用いるフレームデータＲＳＢＣＡ１〜ＲＳＢＣＡ１２（ＲＳＢＣＡ１３−１５以外）である。
【００６６】
同一のフレーム番号を持つフレームデータは、図１４に記載の通り４フレームデータが１データブロックにまとまっていることから、ステップ２０４で求めた７０１のＲＳＢＣＡ１３−１５のＰａｒｉｔｙＬｏｃａｔｉｏｎから４を引いた値を用いる。図７では、ＲＳＢＣＡ１３−１５のＰａｒｉｔｙＬｏｃａｔｏｎ＝１９であり、ステップ４０３よりｉ＝１の場合ｊ＝１９−１×４から、ＦｒａｍｅＮｏ［１５］が求まる。
【００６７】
繰り返し行うステップ５０２について、ＢＣＡフレーム行数推定の動作状態を図７の７１１〜７２２に示す。７１１はｉ＝１のとき、フレーム番号位置ＦｒａｍｅＮｏ［１５..１８］とＦｒａｍｅＮｏ’［０,０,０,０］を図４の手続きにて推定し、結果ＲｅｔＭａｔｃｈをＭａｘＭａｔｃｈと比べる。この例では、結果ＲｅｔＭａｔｃｈは「０」である。
【００６８】
同様にして、ステップ４０２〜ステップ４０８を行う。以下に本実施例における、ステップ４０２〜ステップ４０８の値を表３に示す。
【００６９】
【表３】
0004158309.tif 000010
【００７０】
ステップ５０８は、ステップ５０７の結果からＭａｘＭａｔｃｈの更新およびその時の変数ｉをＬｉｎｅＮｕｍに設定し、ステップ５０２へ戻る。ここでＬｉｎｅＮｕｍは、１データブロックのサイズを示す。表３より、ＭａｘＭａｔｃｈ＝１５、ＬｉｎｅＮｕｍ＝４が得られる。ステップ５０９では、変数ｉにステップ５０８で得たＬｉｎｅＮｕｍを４倍し、ＰａｒｉｔｙＬｏｃａｔｉｏｎ値を引いた結果を設定する。図７の例では、ｉ＝４×４−１９＝−３を算出する。
【００７１】
ステップ５１０は、ステップ５０９後の変数ｉが０より小さければステップ５１１へ、そうでなければステップ５１２へ分岐する。図７の例では、ステップ５０９の結果がｉ＜０のため、ステップ５１１を行う。ステップ５１１は、変数ｉと「−１」との積を取った結果を変数ｊに設定し、変数ｋにＬｉｎｅＮｕｍを４倍した値を設定する。図７の例では、今までの結果を元にｊ＝−（−ｉ）＝３、ｋ＝４×４＝１６を算出する。
【００７２】
ステップ５１２では、変数ｊに０を設定し、ＰａｒｉｔｙＬｏｃａｔｉｏｎ＝１９の値を代入する。ステップ５１３は、格納されたＦｒａｍｅＮｏ［ ］について、変数ｊを用いてＦｒａｍｅＮｏ［ｊ］の位置から変数ｋフレームデータを別領域にコピーする。図７の例では、ＦｒａｍｅＮｏ［３］から１６フレーム分のデータを別領域にコピーする。
【００７３】
上記方法により、データが欠落した場合でもＢＣＡデータ、ＥＤＣパリティとＥＣＣパリティの位置を確実に取得することができる。
【００７４】
次に誤り訂正について説明する。
【００７５】
ステップ２０４、ステップ２０５が終了した時点でＥＤＣパリティを含むＢＣＡデータとＥＣＣパリティが確定しているので、ステップ２０６では、ＥＣＣパリティによる誤り訂正処理を行う。ここで、ＥＣＣパリティは、縦方向のデータ順列によるシンドローム計算により生成されている。よって、誤り訂正処理では４列分縦方向にアドレスを進めるようにしている。
【００７６】
数式を用いて説明する。数式（数５）からシンドローム演算式、数式（数７）が求まる。ここで、αは数式（数６）の根を示す。このシンドローム演算で、数式（数７）の右辺第一項I(α)の演算を行う場合、直接数式（数８）のように演算を行うことができる。
【００７７】
【数７】
0004158309.tif 000011
【００７８】
【数８】
0004158309.tif 000012
【００７９】
この演算を行うことで、バッファメモリの格納する場所に捕らわれることなく、また、事前にユーザデータ９０４とＥＣＣパリティ９０７間の次数における係数をゼロ埋めしてから、余分なゼロ部分をスキャンして計算する必要はなくなる。
【００８０】
次に、ＥＤＣパリティ演算処理を行う。ステップ２０４でＥＤＣパリティの位置は明確であり、ステップ２０５によって求めたユーザデータ領域に対して、ＥＤＣ演算を行えばよい。
【００８１】
上記に記載した実施の形態によれば、データ長が不特定のＢＣＡデータをバッファメモリに記録する際、一度データをバッファメモリへ格納した後、制御手段を用いて固定されている同期コードのフレーム番号を検索し、固定位置からデータ長を推測することで、簡易な構成でＢＣＡデータ処理を容易に行うことができる。
【００８２】
これにより、ＢＣＡデータの同期コードとそのフレーム番号のデータを取りこぼしても、データずれの発生が少なくなり、また傷・指紋等の信号劣化のためフレーム番号が欠落した同期コードの場合でも、従来に比べ正確にデータ再生が可能となる。
【００８３】
以上の実施形態の説明ではフレーム数が特定されていない場合であったが、以下にフレーム数が特定されている場合について説明する。
【００８４】
先ず、１データブロックのフレーム位置検索について、図８〜図１２を用いて説明する。
【００８５】
最初にＤＶＤ−Ｒの再生データとして用いるＬａｎｄ  Ｐｒｅ−ｐｉｔ（以下ＬＰＰ）について、図１１を用いて説明する。ＬＰＰデータ１６０１の１フレームデータを示したものであり、フレーム番号にはアドレス情報、フレームデータにはユーザデータが配置される。
【００８６】
１６０３は１６０１のアドレス情報に０〜１５を付与された場合の１パケットデータ構成を示す。ＬＰＰ１フレームのデータ１６０１は変調を施し記録されるため、再生時は復調データを用いる。変調は表４に従って「０，１」データが３ビットデータに変換され、先頭にＰｒｅ−ｐｉｔ  ＳＹＮＣ  ｃｏｄｅが付与され１６０２となる。
【００８７】
【表４】
0004158309.tif 000013
【００８８】
１６０４は、１６０３のＬＰＰデータを変調したものである。このＬＰＰデータ１６０３は、フレーム数が１６と固定されているため、ＢＣＡデータで用いたフレーム番号一致方式ではなく、誤りビット数が最小時、信頼性が高いデータであるとして再生する。
【００８９】
次に誤りビット数カウントによる検索方法について説明する。
【００９０】
以下、誤りビット数によるデータ再生方法をについて示す。
【００９１】
図８のステップ１２０１〜ステップ１２０３まで、図２の２０１〜２０３と同様であるため説明を省略する。
【００９２】
ステップ１２０４は、１データブロックのフレーム位置検索を行う。ここでは、再生されたデータのアドレス位置を求める検索を行う。ステップ１２０５〜ステップ１２０７は、図２のステップ２０６〜ステップ２０８と同様の為、説明を省略する。
【００９３】
次に、図９を用いてステップ１２０４の説明を行う。ここで、ステップ１２０３にてバッファに格納されたデータを表５とする。
【００９４】
【表５】
0004158309.tif 000014
【００９５】
この例は、バッファ格納データの先頭データに正常にデータが格納されず、格納したデータにビット誤りが生じている場合である。
【００９６】
１３１０に挙げたステップ１３０１から１３０５で用いる値および変数を説明する。バッファメモリに格納されている格納済みフレーム番号配列をＦｒａｍｅＮｏ［ ］、フレーム番号先頭位置をＬｏｃａｔｉｏｎ、誤りビット手続きをＥｒｒｏｒＣｏｕｎｔ（ ）、ＥｒｒｏｒＣｏｕｎｔ（ ）の結果をＲｅｔＥｒｒｏｒ、最小誤りビット数をＭｉｎＥｒｒｏｒ、ｉを変数とする。
【００９７】
ステップ１３０１でＭｉｎＥｒｒｏｒとＬｏｃａｔｉｏｎの初期化および引数としてバッファメモリに格納した先頭位置をＦｒａｍｅＮｏ［ ］に設定する。ＭｉｎＥｒｒｏｒの初期値として、１データブロックのフレーム番号の総数が１６バイトから、ビットに変換した１６×８＝１２８を用いる。
【００９８】
この場合の具体例を図１１に示す。アドレス情報１５０１に対して変数ｉを用い、ＦｒａｍｅＮｏ［ｉ］との対応を設定する（表５参照）。
【００９９】
ステップ１３０２は、ＦｒａｍｅＮｏ［０］からフレーム番号が格納されている場合とし、検査回数ｉを本実施例の表５および図１１では０≦ｉ＜１８とした。１８未満であればステップ１３０３へ、そうでなければステップ１３０５を行う。
【０１００】
ステップ１３０３は、手続きＥｒｒｏｒＣｏｕｎｔ（ＦｒａｍｅＮｏ［ｉ］，０，１６）を行う。ここで、ＦｒａｍｅＮｏ［ｉ］はフレーム番号を、０はＬＰＰデータの先頭アドレス、１６は１６行マッチを意味する。
【０１０１】
ここでは、ＭｉｎＥｒｒｏｒに登録されている値よりも手続きＥｒｒｏｒＣｏｕｎｔ（ ）の結果ＲｅｔＥｒｒｏｒが小さければステップ１３０４を、そうでなければステップ１３０２へ分岐する。
【０１０２】
ステップ１３０５では、ＦｒａｍｅＮｏ［Ｌｏｃａｔｉｏｎ］位置をアドレス情報０とする。
【０１０３】
次に図１０を用いてステップ１３０３の手続きＥｒｒｏｒＣｏｕｎｔ（ ）を説明する。同図では、１４２０に挙げた値および変数を用いる。格納済みフレーム番号配列をＦｒａｍｅＮｏ［ ］、比較フレーム番号をＦｒａｍｅＮｏ’、総エラービット数をＡｌｌＥｒｒｏｒ、比較数をＮｕｍ、各フレームの誤り個数をＥｒｒｏｒ［ ］、結果をＲｅｔＥｒｒｏｒとし、ｉ、ｊを変数としてステップ１４０１〜ステップ１４１１の説明する。
【０１０４】
ステップ１４０１でＡｌｌＥｒｒｏｒの初期化およびステップ１３０３で指定した引数、バッファメモリへの格納済みフレーム番号配列をＦｒａｍｅＮｏ［ｉ］、比較フレーム番号ＦｒａｍｅＮｏ’、比較Ｎｕｍを用いる。
【０１０５】
ステップ１４０２は、比較数をＮｕｍとし、ステップ１４０２〜ステップ１４１０までを繰り返し行う。
【０１０６】
ステップ１４０３は、引数ＦｒａｍｅＮｏ’とＦｒａｍｅＮｏ［ｉ］が２進データであるかを判定し、２進データであればステップ１４０５へ、そうでなければ１４０４を行う。
【０１０７】
ステップ１４０４は、ＦｒａｍｅＮｏ’、ＦｒａｍｅＮｏ［ｉ］のデータを２進データに変換する。
【０１０８】
ステップ１４０５は、２進データのＦｒａｍｅＮｏ’とＦｒａｍｅＮｏ［ｉ］とをビット毎に排他的論理和「＾」を行い、誤りビット数をカウントする。一致比較の演算結果を変数ｊに格納する。
【０１０９】
ステップ１４０６の「＝＝」は、右辺と左辺が等価（一致）かどうかの判定を示す。ｊが０であればステップ１４０８へそうでなければステップ１４０７へ分岐する。
【０１１０】
ステップ１４０７の「≪≫」は、各ビットが１であれば個数をカウントする演算を表す。（例：１０１１０は、≪１０１１０≫＝３）ステップ１４０５の演算結果でビット１が存在する個数をカウントして、変数ｊに代入する。
【０１１１】
ステップ１４０８は、変数ｉの誤りビット数をＥｒｒｏｒ［ｉ］に格納する。この時、誤りビット数はステップ１４０７から変数ｊの値である。
【０１１２】
ステップ１４０９は、ＡｌｌＥｒｒｏｒにＥｒｒｏｒ［ｉ］の値を加算する。これにより、ステップ１４０２の誤りビット総数が、ＡｌｌＥｒｒｏｒに格納される。
【０１１３】
ステップ１４１０は、比較ＦｒａｍｅＮｏ’の値を１インクリメントする。
【０１１４】
ステップ１４１１は、総エラービット数ＡｌｌＥｒｒｏｒの値を手続きＥｒｒｏｒＣｏｕｎｔ（ ）の結果として、ＲｅｔＥｒｒｏｒに設定する。
【０１１５】
上記再生方法について、図１１を用いて説明をする。
【０１１６】
同図の１５０１は、ＦｒａｍｅＮｏ［ｉ］であり、図１２のＬＰＰデータフォーマットのフレーム番号をバイト表示とビット表示したものである。これは、前述のように先頭のフレーム番号取りこぼしがあり、さらに数カ所にビット化けが生じた場合の例である。１５０２は、誤りビット数をカウントする際に用いるフレーム番号（ＬＰＰデータフォーマットでは、アドレス情報）０〜１５を示す。
【０１１７】
バッファメモリに格納したバッファメモリへの格納済みフレーム番号のフレーム番号位置をＦｒａｍｅＮｏ［０］，ＦｒａｍｅＮｏ［１］，…，ＦｒａｍｅＮｏ［１７］とする。
【０１１８】
次にＬＰＰデータフォーマットより１パケットデータサイズは１６フレームであるから、バッファ格納データ１５０１と比較用データ１５０２との誤りビット数カウントをステップ１４０１〜ステップ１４１０により行う。
【０１１９】
図１０に示したステップ１４０２〜ステップ１４０７は、１５１１に示すように個々のフレーム番号ＦｒａｍｅＮｏ［０..１５］とＦｒａｍｅＮｏ’＝[０..１５]に対して検査を行い誤りビット数をカウントする。この場合ステップ１４０９の値は「３４」、Ｌｏｃａｔｉｏｎ＝１となり、ステップ１３０３のＭｉｎＥｒｒｏｒと判定を行う。
【０１２０】
同様にして１５１２では、フレーム番号位置ＦｒａｍｅＮｏ［１..１６］とＦｒａｍｅＮｏ’＝[０..１５]の比較を行い、誤りビット数を求める。ステップ１４０８の値は「２６」、Ｌｏｃａｔｉｏｎ＝１が得られる。
【０１２１】
１５１３では、フレーム番号位置ＦｒａｍｅＮｏ［２..１７］とＦｒａｍｅＮｏ’＝[０..１５]の比較の場合、ステップ１４０８の値は前の演算結果「２１」となる。
【０１２２】
さらに検査を行い、１５１４に示すように最終まで検査を行う。ステップ１３０３でＭｉｎＥｒｒｏｒより結果ＲｅｔＥｒｒｏｒが小さい場合は、ステップ１３０４によりＭｉｎＥｒｒｏｒとＬｏｃａｔｉｏｎを更新する。
【０１２３】
本実施例における図１９のステップ１３０２〜ステップ１３０４を変数ｉ（０≦ｉ＜１８）の範囲で手続きＥｒｒｏｒＣｏｕｎｔ（ＦｒａｍｅＮｏ［ｉ］，０，１６）一致検索を行った結果（一部省略）を表６に記載する。
【０１２４】
【表６】
0004158309.tif 000015
【０１２５】
表６のビット毎にステップ１３０３を行った結果から、ＭｉｎＥｒｒｏｒ＝１５、Ｌｏｃａｔｉｏｎ＝２がもっとも正しいと判定できる。
【０１２６】
よって、ＦｒａｍｅＮｏ［２］をＬＰＰデータの先頭位置として、ステップ１２０４を行う。
【０１２７】
次に表５のデータからフレーム番号の完全一致判定を手続きＭａｔｃｈ（ ）を用いた場合の結果を表７に示す。ビット毎に変調しているデータに対して完全一致検出を行う手続きＭａｔｃｈ（ ）を用いた場合、ＭａｘＭａｔｃｈ＝６、ＰａｒｉｔｙＬｏｃａｔｉｏｎ＝１が得られる。
【０１２８】
【表７】
0004158309.tif 000016
【０１２９】
上記結果より、一致検出の場合はＬＰＰデータの先頭位置はＦｒａｍｅＮｏ［１］となり、誤りビット数判定の場合は、ＦｒａｍｅＮｏ［２］を正しいと判定する。ＬＰＰデータは、１ビットから３ビットに変調されている為、誤りビット数による判定法が完全一致より有効である。
【０１３０】
尚、本実施例では、ステップ３０２において検査回数をＢＣＡフレームデータの全数を含む「６０」とした。これは、バッファメモリに格納されたデータが大きくずれた場合でも、再生可能な条件とした為である。またデータ未記録判定手段１０３において再生データの格納数を計測することで、取りこみデータについて検査回数を設定することも可能である。
【０１３１】
さらに本発明は、上記に記載した実施の形態に限定されるものではなく、このほか、その要旨に逸脱しない範囲で種々変形して実施することができる。
【０１３２】
【発明の効果】
以上詳述したように本発明によれば、ＢＣＡデータ記録長を検出するような複雑な回路を必要とせず、データ未記録判定を行うことでバッファメモリへ不要なデータを格納することを少なくし、次にバッファメモリに格納したデータに対しては、特定フレーム番号検索の後に、フレーム行数を推定することで、傷・指紋等の信号劣化のためフレーム番号が欠落した同期コードの場合でも、従来に比べ正確にデータ再生が可能となる。また、誤り訂正においては制御手段を用いて訂正する為、誤り訂正のための零埋め処理のデータ操作を必要としない。同様に、取りこぼしが発生しやすいＢＣＡデータの同期コードとそのフレーム番号のデータを取りこぼしてデータずれが発生した場合でも、データずれが発生しないことを可能とした極めて良好なデータ再生方法を提供することができる。また、ＬＰＰデータのようなビット毎に変調され１フレームのデータサイズが固定されているデータフォーマットのデータ再生方法では、誤りビット数カウント方式を用いてフレーム番号を特定することで、精度の高いデータ再生方法を提供することができる。
【図面の簡単な説明】
【図１】本発明にかかるデータ再生方法のＢＣＡ再生を示すブロック構成図
【図２】本発明にかかるデータ再生方法のＢＣＡ再生を示すフロー図
【図３】同実施の形態における特定フレーム番号検索方法を示すフロー図
【図４】同実施の形態における手続きＭａｔｃｈ（）を示すフロー図
【図５】実施の形態におけるＢＣＡ行数推定を示すフロー図
【図６】実施の形態における特定フレーム番号検索の動作説明図
【図７】同実施の形態におけるＢＣＡ行数推定の動作説明図
【図８】本発明にかかるデータ再生方法のＬＰＰ再生を示すフロー図
【図９】同実施の形態におけるフレーム番号検索方法を示すフロー図
【図１０】同実施の形態における誤りビット数をカウントするフロー図
【図１１】同実施の形態におけるフレーム番号検索の動作説明図
【図１２】ＬＰＰデータのフォーマットを示す図
【図１３】光ディスク上のＢＣＡデータ記録領域の説明図
【図１４】同ＢＣＡデータのフォーマットを示す図
【図１５】従来のデータ再生装置のブロック構成図
【図１６】従来のデータ再生方法のフロー図
【符号の説明】
１０１  光ディスク
１０２  データ復調手段
１０３  データ未記録判定手段
１０４  同期検出手段
１０５  ＢＣＡデータ検出手段
１０６  バッファメモリ
１０７  特定フレーム番号検索手段
１０８  フレーム行数推定手段
１０９  制御手段
【図１】
0004158309.tif 000017
【図２】
0004158309.tif 000018
【図３】
0004158309.tif 000019
【図４】
0004158309.tif 000020
【図５】
0004158309.tif 000021
【図６】
0004158309.tif 000022
【図７】
0004158309.tif 000023
【図８】
0004158309.tif 000024
【図９】
0004158309.tif 000025
【図１０】
0004158309.tif 000026
【図１１】
0004158309.tif 000027
【図１２】
0004158309.tif 000028
【図１３】
0004158309.tif 000029
【図１４】
0004158309.tif 000030
【図１５】
0004158309.tif 000031
【図１６】
0004158309.tif 000032