(57)【要約】      （修正有）【課題】デスクランブル処理またはＥＤＣ計算処理を高速に行い、計算処理の回路規模を小型化する。【解決手段】デスクランブル回路１０は、×α１の計算を行うスクランブル値生成部２１、×α１４０の計算を行うスクランブル値生成部２２、×α１６０の計算を行うスクランブル値生成部２３、×α２０の計算を行うスクランブル値生成部２４、×α３２の計算を行うスクランブル値生成部２５、スイッチＳＷ１〜ＳＷ４、ＦＦ２６，２７、ＥＯＲ演算器２８とを有する。ＥＤＣ計算回路は、次数差Ｘ1の累積加算を行う第１の累積加算器、第１の累積加算器の出力を一時的に格納するＦＦ、次数差Ｘ1376の累積加算を行う第２の累積加算器、第２の累積加算器の出力を一時的に格納するＦＦ、次数差Ｘ256またはＸ96の累積加算を行う第３の累積加算器、セクタごとに累積加算値を一時的に格納するＦＦ、セクタ選択器とを有する。【選択図】図１１
2009048713.tif 000002
【特許請求の範囲】
【請求項１】
所定の生成多項式により生成されたスクランブル値を、前記生成多項式に基づいて８ビット単位でそれぞれ異なる回数だけシフトさせた状態の計算式により新たなスクランブル値を生成する３つ以上のスクランブル値生成手段と、
スクランブルされた部分的に不連続の入力データを、前記３つ以上のスクランブル値生成手段により生成されたスクランブル値を用いてデスクランブルするデスクランブル手段と、を備えることを特徴とするデスクランブル回路。
【請求項２】
前記部分的に不連続の入力データは、列方向にＬ（Ｌは１以上の整数）バイト行方向にＫ（Ｋは１以上の整数）個の部分ブロックを単位として、列方向に複数個の部分ブロックに分類されており、
前記スクランブル値生成手段は、個々の前記部分ブロックごとに、対応する部分ブロック内の各入力データについて前記スクランブル値を順に生成し、
前記デスクランブル手段は、個々の前記部分ブロックごとに、前記スクランブル値生成手段で生成された前記スクランブル値を用いて、対応する部分ブロック内の入力データをデスクランブルすることを特徴とする請求項１に記載のデスクランブル回路。
【請求項３】
前記スクランブル値生成手段は、
前記生成多項式により生成されたスクランブル値を、前記生成多項式に基づいて８ビット単位で１回シフトさせた状態の計算式により新たなスクランブル値を生成する第１のスクランブル値生成部と、
前記生成多項式により生成されたスクランブル値を、前記生成多項式に基づいて８ビット単位で、前記部分ブロックの１行分に対応する回数だけシフトさせた状態の計算式により新たなスクランブル値を生成する第２のスクランブル値生成部と、
前記生成多項式により生成されたスクランブル値を、前記生成多項式に基づいて８ビット単位で、隣接する前記部分ブロックに対応する回数だけシフトさせた状態の計算式により新たなスクランブル値を生成する第３のスクランブル値生成部と、を有することを特徴とする請求項２に記載のデスクランブル回路。
【請求項４】
第１の入力値にそれぞれ異なる次数を掛け合わせた値と第２の入力値との排他的論理和を次回の前記第１の入力値とする３つ以上の累積加算器と、
デスクランブルされた部分的に不連続の入力データに対して、前記３つ以上の累積加算器を用いてエラー検出コードを計算するＥＤＣ計算手段と、を備えることを特徴とするエラー検出コード計算回路。
【請求項５】
前記部分的に不連続の入力データは、列方向にＬ（Ｌは１以上の整数）バイト行方向にＫ（Ｋは１以上の整数）個からなるセクタを列方向にｐ（ｐは１以上の整数）個並べた部分ブロックを単位として、列方向に複数個の部分ブロックに分類されており、
前記ＥＤＣ計算手段は、個々の前記部分ブロックの行単位で累積加算を行って得られた値を、個々の前記部分ブロック単位で累積加算して、前記セクタ単位で前記エラー検出コードを計算することを特徴とする請求項４に記載のエラー検出コード計算回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スクランブルされた入力データをデスクランブルするデスクランブル回路と、デスクランブル後の入力データに対応するエラー検出コードを計算するエラー検出コード計算回路とに関する。
【背景技術】
【０００２】
ＤＶＤには、ＥＣＣブロック単位でデータが記録されている。ＥＣＣブロックは、行方向に１７２バイト長のデータを列方向に１９２個並べて構成したものである。各行ごとにＰＩパリティと呼ばれるエラー訂正符号が付加され、各列ごとにＰＯパリティと呼ばれるエラー訂正符号が付加されている。ＤＶＤに記録されるデータは、スクランブルがかけられており、後述するセクタごとにエラー訂正コード（ＥＤＣ：Error Detection Code）が付加されている。
【０００３】
ＤＶＤに記録されたデータを再生する場合、ＤＶＤからＥＣＣブロック単位でデータを読み出し、読み出したＥＣＣブロックのデータに対して行単位でＰＩ系列のエラー訂正を行い、次に、ＥＣＣブロックのデータを列方向に７個に分割した部分ブロックデータを単位として、ＰＯ系列のエラー訂正を行う。このＰＯ系列のエラー訂正と並行して、デスクランブル処理とＥＤＣ計算処理が行われる（特許文献１参照）。
【０００４】
しかしながら、部分ブロックデータは、行方向に連続したデータではないため、デスクランブル処理とＥＤＣ計算処理を連続的に効率よく行うことはできない。このため、ＤＶＤの再生処理に時間がかかるとともに、デスクランブル処理とＥＤＣ計算処理を行う回路規模を小型化できないという問題があった。また、データ記録時のスクランブル処理とＥＤＣ計算処理についても同様であり、部分ブロックデータが不連続なデータであるために、スクランブル処理とＥＤＣ計算処理に時間がかかるという問題があった。
【特許文献１】特開平２００７−９５２５１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、デスクランブル処理またはＥＤＣ計算処理を高速に行うことができ、デスクランブル処理またはＥＤＣ計算処理の回路規模を小型化できるデスクランブル回路及びエラー検出コード計算回路を提供するものである。
【課題を解決するための手段】
【０００６】
本発明の一態様によれば、所定の生成多項式により生成されたスクランブル値を、前記生成多項式に基づいて８ビット単位でそれぞれ異なる回数だけシフトさせた状態の計算式により新たなスクランブル値を生成する３つ以上のスクランブル値生成手段と、
スクランブルされた部分的に不連続の入力データを、前記３つ以上のスクランブル値生成手段により生成されたスクランブル値を用いてデスクランブルするデスクランブル手段と、を備えることを特徴とするデスクランブル回路が提供される。
【０００７】
また、本発明の一態様によれば、第１の入力値にそれぞれ異なる次数を掛け合わせた値と第２の入力値との排他的論理和を次回の前記第１の入力値とする３つ以上の累積加算器と、
デスクランブルされた部分的に不連続の入力データに対して、前記３つ以上の累積加算器を用いてエラー検出コードを計算するＥＤＣ計算手段と、を備えることを特徴とするエラー検出コード計算回路が提供される。
【発明の効果】
【０００８】
本発明によれば、デスクランブル処理またはＥＤＣ計算処理を高速に行うことができ、デスクランブル処理またはＥＤＣ計算処理の回路規模を小型化できる。
【発明を実施するための最良の形態】
【０００９】
以下、図面を参照しながら、本発明の実施形態について説明する。
【００１０】
まず、ＤＶＤの記録フォーマットについて説明する。ＤＶＤはセクタ単位でデータを管理している。図１は１セクタのデータフォーマットを示す図である。ロウ方向（横方向）に１７２バイト、カラム方向（縦方向）に１２行で１セクタが構成されている。各セクタの先頭部分には、物理的なアドレスを表す４バイトのＩＤと、ＩＤに対する２バイトのパリティＩＥＤと、６バイトのコピー管理データCPR_MAIとが設けられ、その後に２０４８バイトのメインデータが配置されている。各セクタの最後尾には、４バイトのエラー検出コードＥＤＣ（Error Detection Code）が付加されている。
【００１１】
図１のようなセクタを１６個集めてＥＣＣブロックが構成される。ＥＣＣブロックは、光ディスクへの書き込みの単位である。図２はＥＣＣブロックのデータフォーマットを示す図である。ＥＣＣブロックは、１６セクタ分のデータ（１６セクタ×１２行×１７２バイト）を二次元配列したものであり、１７２バイト×１９２行のデータを有する。
【００１２】
ＥＣＣブロックの各行には、１０バイトのＰＩ符号（ＲＳＣ（１８２，１７２，１１））が付加され、各列には１６バイトのＰＯ符号（ＲＳＣ（２０８，１９２，１７））が付加されている。ＰＩ符号は対応する行のエラー訂正を行うために用いられるエラー訂正符号であり、ＰＯ符号は対応する列のエラー訂正を行うために用いられるエラー訂正符号である。
【００１３】
実際には、図３に示すように、ＰＯ符号は、データ１２行に対して１行ずつインターリーブされて配置される。図３に示すインターリーブされたＥＣＣブロックの各行データには、所定の同期パターン（Syncパターン）が付加され、各データは８ビットから１６ビットに変調されて、物理セクタが形成される。
【００１４】
図４は物理セクタのデータフォーマットを示す図である。図３に示した１行のデータ（１７２バイト＋１０バイト＝１８２バイト）は行方向に２分割されて、それぞれに32ビットの同期パターンが付加される。また、分割データ（１８２/2＝91バイト）はそれぞれ８ビットから１６ビットに変調されて、91×１６＝1456ビットになる。物理セクタの最終行（13行目）はＰＯ符号である。同期パターン32ビットと分割データ1456ビットを足し合わせて同期フレーム（Sync frame）が生成される。
【００１５】
図４の物理セクタを光ディスクに記録する場合は、各行を左から右にスキャンして各データを記録する。
【００１６】
（第１の実施形態）
図５は本発明の第１の実施形態に係る光ディスク再生装置の概略構成を示すブロック図である。図５の光ディスク再生装置は、ディスクモータ１と、ピックアップ２と、サーボ処理部３と、システムコントローラ４と、メモリコントローラ５と、メモリ６と、復調部７と、エラー訂正部８と、訂正バッファ９と、デスクランブル回路１０と、ＥＤＣ計算回路１１と、ホストＩ／Ｆ部１２と、ホストコンピュータ１３とを備えている。
【００１７】
システムコントローラ４からの要求に応じて、サーボ処理部３は、ディスクモータ１を制御して光ディスク１３を所望の速度で回転させるとともに、ピックアップ２の光ディスク１３に対するフォーカス位置とトラック位置を制御する。
【００１８】
ピックアップ２により光ディスク１３から読み出された再生信号は、復調部７で復調されて、メモリコントローラ５を介してメモリ６に書き込まれる。メモリ６は例えばＤＲＡＭである。
【００１９】
メモリ６に１ＥＣＣ分の再生データ（以下、１ＥＣＣブロックデータ）が格納された後、その１ＥＣＣブロックデータ中の先頭行データは、メモリコントローラ５を介して訂正バッファ９に格納される。以下では、１ＥＣＣブロックデータが行方向（ＰＩ符号方向）にＭ個（Ｍは２以上の整数）、列方向（ＰＯ符号方向）にＮ個のデータで構成されているものとする。
【００２０】
エラー訂正部８は、訂正バッファ９に転送したＥＣＣブロックデータ中の先頭行から順に、ＰＩ系列のエラー訂正を行う。例えば、先頭行のエラー訂正を行う場合は、先頭行に含まれるＰＩ符号を用いてエラー訂正のための計算を行い、エラーがある場合には、訂正バッファ９の先頭行のデータを正しいデータに書き換える。エラー訂正部８がエラー訂正を行っている最中に、メモリコントローラ５は、次の行データをメモリ６から訂正バッファ９に転送する。エラー訂正された行データは訂正バッファ９に上書きされる。
【００２１】
以降、１ＥＣＣブロック分のＰＩ系列のエラー訂正が終了するまで、エラー訂正部８によるＰＩ系列のエラー訂正と、メモリ６から訂正バッファ９への行単位のデータ転送とを並列して行う。最終的には、ＰＩ系列のエラー訂正済みの１ＥＣＣブロックデータが訂正バッファ９に格納される。
【００２２】
次に、エラー訂正部８は、訂正バッファ９内のＰＩ系列エラー訂正済みの１ＥＣＣブロックデータの中から、行方向（ＰＩ符号方向）にＬバイト（ただし、ＬはＭ未満の整数）で列方向にＫ（１以上の整数）個のデータからなる部分ブロックデータに対してＰＯ系列のエラー訂正処理を行う。
【００２３】
図６は部分ブロックデータの一例を示す図である。図６の部分ブロックデータは、Ｌ＝３２または２２の場合を示している。より具体的には、１ＥＣＣブロックデータ内に６個の部分ブロック（第１〜第６の部分ブロック）が存在し、第１〜第５の部分ブロックはＬ＝３２であり、第６の部分ブロックはＬ＝２２である。エラー訂正部８は、第１〜第６の部分ブロックデータのそれぞれに対して順にＰＯ系列のエラー訂正を行う。
【００２４】
エラー訂正部８は、一つの部分ブロックデータに対するＰＯ系列のエラー訂正を終えると、まだエラー訂正を行っていない他の部分ブロックデータを訂正バッファ９から読み出してＰＯ系列のエラー訂正を行う。それと同時に、エラー訂正済みの部分ブロックデータはデスクランブル回路１０に転送される。
【００２５】
デスクランブル回路１０は、スクランブルされているデータを部分ブロックごとにデスクランブルする。続いて、ＥＤＣ計算回路１１は、デスクランブル後のデータを用いて各部分ブロック内の各セクタごとにＥＤＣを計算する。そして、計算されたＥＤＣが各セクタの最後に元々付加されていたＥＤＣと一致するか否かを検出する。
【００２６】
デスクランブル後のデータは、メモリコントローラ５を介してメモリ６に格納される。１ＥＣＣブロックデータの全体に対するＰＯ系列のエラー訂正済みのデータがメモリ６に格納されるまで上記の処理が繰り返される。
【００２７】
１ＥＣＣブロック分のＰＯ系列のエラー訂正処理とデスクランブル処理が完了すると、その後、所望の転送レートで、メモリ６からメモリコントローラ５を介してデータが読み出されて、ホストＩ／Ｆ部１２を介してホストコンピュータ１３に転送される。
【００２８】
図７は第１の実施形態におけるエラー訂正の動作タイミング図である。まず、時刻ｔ１〜ｔ２の間に、メモリ６から訂正バッファ９へのデータ転送とＰＩ系列のエラー訂正処理とが並列して行われる。その後、時刻ｔ２〜ｔ３の間に、Ｌ×Ｎ個のデータからなる部分ブロックデータを単位として、ＰＯ系列のエラー訂正、デスクランブル・ＥＤＣ処理、およびメモリ６への格納が行われる。
【００２９】
メモリ６にＤＲＡＭを用いる場合、ＤＲＡＭのロウ方向を図５の行方向（ＰＩ符号方向）に割り当てて、ＤＲＡＭのカラム方向を図５の列方向（ＰＯ符号方向）に割り当てるのが望ましい。ＤＲＡＭは、同一ロウ上の複数カラムに対する読み出しは、プリチャージを行うことなく連続アクセスが可能なため、ＤＲＡＭのロウ方向に１ＥＣＣブロックのＰＩ符号方向（行方向）のデータを格納しておけば、これらデータを高速に読み出して訂正バッファ９に転送することができる。また、部分ブロックデータを単位としてデスクランブル・ＥＤＣ処理済みのデータをメモリ６に転送する場合にも、行方向のＬバイトのデータは高速に書き込むことができる。すなわち、デスクランブル・ＥＤＣ処理済みのデータをメモリ６に転送する際は、Ｌ個のバーストデータを高速読み出す処理をＮ回繰り返せばよい。
【００３０】
本実施形態では、ＰＩ系列のエラー訂正を行う場合、メモリ６から訂正バッファ９に行単位でデータを転送するため、ＰＯ系列のエラー訂正を開始する時点では、訂正バッファ９に１ＥＣＣブロック分のデータが格納されている。このため、エラー訂正部８は訂正バッファ９内のデータを用いてＰＯ系列のエラー訂正処理を行うことができ、メモリ６に対するアクセス頻度を軽減できる。特に、訂正バッファ９として高速メモリ６（ＳＲＡＭなど）を用いれば、よりＰＯ系列のエラー訂正を高速化することができる。
【００３１】
なお、部分ブロックデータを構成するデータのサイズには特に制限はなく、任意に設定可能である。例えば、部分ブロックデータをＰＩ符号方向に２６バイト、ＰＯ符号方向に２０８個とすれば、１８２＝２６×７より、７個の等しいサイズの部分ブロックデータが得られる。
【００３２】
図８は図７の時刻ｔ２〜ｔ３の間に行われるＰＯ系列のエラー訂正処理の詳細な動作タイミング図である。まず、時刻ｔ２１〜ｔ２２では、最初の部分ブロックデータに対してＰＯ系列のエラー訂正が行われ、その後、時刻ｔ２２〜ｔ２３ではエラー訂正済みの部分ブロックデータに対してデスクランブル・ＥＤＣ処理を行った後にメモリ６への再格納を行う。それと同時に、次の部分ブロックデータに対するＰＯ系列のエラー訂正が行われる。
【００３３】
なお、本実施形態の訂正バッファ９は、１ＥＣＣブロックデータを格納可能なメモリ容量を持つため、ＰＯ系列のエラー訂正が終了した部分ブロックデータを訂正バッファ９に一時的に保持し、タイミングを遅らせてデスクランブル・ＥＤＣ処理を行ってもよい。
【００３４】
本実施形態は、デスクランブル回路１０とＥＤＣ計算回路１１の構成に特徴がある。まず、デスクランブル回路１０の動作原理について説明する。本実施形態では、図６に示したように、各ＥＣＣブロックを６個の部分ブロックに分割している。デスクランブル回路１０は、各部分ブロックごとにＰＯ系列のエラー訂正を行うのに並行してデスクランブル処理を行う。
【００３５】
デスクランブル回路１０は、スクランブルされたデータにスクランブル値を乗じることによりデスクランブルを行う。スクランブル値は、例えば図９に示すような生成多項式を用いて計算される。図９の生成多項式は、１５個のレジスタｒ０〜ｒ１４からなるシフトレジスタを有し、レジスタｒ１０とｒ１４の排他的論理和をレジスタｒ０に帰還している。レジスタｒ０〜ｒ１４の初期値は、各ＥＣＣブロックのＩＤに応じて定められている。この初期値を与えた段階でのレジスタｒ０〜ｒ７の値が部分ブロックの先頭バイトのスクランブル値Ｓ０になる。
【００３６】
図９の生成多項式は、ｒ０からｒ１４の方向に８ビット単位でシフトされ、シフトするたびに得られたレジスタｒ０〜ｒ７の値が部分ブロックの２バイト目以降のスクランブル値となる。
【００３７】
スクランブルされた入力データをＤｋ、スクランブル値をＳｋとすると、スクランブル処理後のデータＤ'ｋは、以下の（１）式で表される。ただし、ＥＯＲは排他的論理和である。
Ｄ'ｋ＝Ｄｋ  ＥＯＲ  Ｓｋ    （ｋ＝０〜２０４７）    …（１）
【００３８】
図１０は各ＥＣＣブロック内の第１〜第６の部分ブロックの詳細構成を示す図である。図１０は各部分ブロックの１セクタ分（１２行）のデータ構成を示している。
【００３９】
図１０に示すように、第１〜第５の部分ブロックは列方向に３２バイトを有し、第６の部分ブロックは列方向に１２バイトを有する。第１の部分ブロックの先頭部分にはＩＤ、ＩＥＤおよびＣＰＲ＿ＭＡＩがあるため、第１の部分ブロックの列方向のデータ幅は２０バイトである。
【００４０】
デスクランブル回路１０は、各部分ブロックについて、行ごとにバイト単位でデスクランブル処理を行う。例えば、第１の部分ブロックについては、先頭行の２０バイトをデスクランブルした後、次の行の３２バイトをデスクランブルし、以下同様に、最後の行までデスクランブルする。第１の部分ブロックのデスクランブル処理が終了すると、次に、第２の部分ブロックのデスクランブル処理が行われる。
【００４１】
第１〜第６の部分ブロックの各行の最後のバイトデータと次の行の先頭のバイトデータとは、不連続のデータである。したがって、デスクランブル処理を行う場合には、不連続になった時点で、デスクランブル処理で用いるスクランブル値を切り替える必要がある。不連続になった直後のバイトデータに対応するスクランブル値は、不連続になる直前と直後のデータ量（以下、不連続データ量）に依存する。不連続データ量には以下の４種類がある。
（１）第１〜第５の部分ブロックの１行分のデータ（３２バイト）についてデスクランブル処理を行った後の不連続データ量は１４０（＝１７２−３２）バイト。
（２）第６の部分ブロックの１行分のデータ（１２バイト）についてデスクランブル処理を行った後の不連続データ量は１６０（＝１７２−１２）バイト。
（３）第１の部分ブロックの先頭バイトと第２の部分ブロックの先頭バイトとの間の不連続データ量は２０バイト。
（４）第２〜第５の部分ブロックの先頭バイト間の不連続データ量は３２バイト。
【００４２】
スクランブル値は、現在のスクランブル値をＳｋ、ｎバイト先のスクランブル値をＳｋ＋ｎとすると、以下の（２）式で表される。
Ｓｋ＋ｎ＝Ｓｋ×αｎ    …（２）
【００４３】
部分ブロック内のＰＩ符号方向に連続する３２バイトのスクランブル値は、Ｓｋ×α１処理で求められる。また、部分ブロック内の行の切り替わりの不連続位置でのスクランブル値は、Ｓｋ×α１４０処理か、Ｓｋ×α１６０処理か、Ｓｋ×α２０処理か、Ｓｋ×α３２処理にて生成される。
【００４４】
Ｓｋ×α１のスクランブル値は、図９の生成多項式を１回だけ８ビットシフトさせた後のレジスタｒ０〜ｒ７にて得られる。同様に、Ｓｋ×α１４０、Ｓｋ×α１６０、Ｓｋ×α２０、Ｓｋ×α３２の各スクランブル値はそれぞれ、図９の生成多項式を８ビットずつ１４０回、１６０回、２０回、３２回シフトさせた後のレジスタｒ０〜ｒ７にて得られる。
【００４５】
スクランブル値を計算するたびに図９の生成多項式を用いて演算するのは時間がかかるため、図９の生成多項式を８ビットずつ１回、１４０回、１６０回、２０回、３２回シフトさせた状態の計算式を予め用意しておくのが高速処理のためには望ましい。これらの計算式は、以下の通りである。
【００４６】
＜×α１の計算式＞      …（３）
r'14 = r6 
r'13 = r5 
r'12 = r4 
r'11 = r3 
r'10 = r2 
r'9 = r1 
r'8 = r0 
r'7 = r14 EOR r10 
r'6 = r13 EOR r9 
r'5 = r12 EOR r8 
r'4 = r11 EOR r7 
r'3 = r10 EOR r6 
r'2 = r9 EOR r5 
r'1 = r8 EOR r4 
r'0 = r7 EOR r3
【００４７】
＜×α１４０の計算式＞      …（４）
r'14 = r11 EOR r10 EOR r9 EOR r5 EOR r4 EOR r0 
r'13 = r14 EOR r9 EOR r8 EOR r4 EOR r3 
r'12 = r13 EOR r8 EOR r7 EOR r3 EOR r2 
r'11 = r12 EOR r7 EOR r6 EOR r2 EOR r1 
r'10 = r11 EOR r6 EOR r5 EOR r1 EOR r0 
r'9 = r14 EOR r5 EOR r4 EOR r0 
r'8 = r14 EOR r13 EOR r10 EOR r4 EOR r3 
r'7 = r13 EOR r12 EOR r9 EOR r3 EOR r2 
r'6 = r12 EOR r11 EOR r8 EOR r2 EOR r1 
r'5 = r11 EOR r10 EOR r7 EOR r1 EOR r0 
r'4 = r14 EOR r9 EOR r6 EOR r0 
r'3 = r14 EOR r13 EOR r10 EOR r8 EOR r5 
r'2 = r13 EOR r12 EOR r9 EOR r7 EOR r4 
r'1 = r12 EOR r11 EOR r8 EOR r6 EOR r3 
r'0 = r11 EOR r10 EOR r7 EOR r5 EOR r2
【００４８】
＜×α１６０の計算式＞      …（５）
r'14 = r11 EOR r10 EOR r9 EOR r7 EOR r6 EOR r2 EOR r1 EOR r0 
r'13 = r14 EOR r9 EOR r8 EOR r6 EOR r5 EOR r1 EOR r0 
r'12 = r14 EOR r13 EOR r10 EOR r8 EOR r7 EOR r5 EOR r4 EOR r0 
r'11 = r14 EOR r13 EOR r12 EOR r10 EOR r9 EOR r7 EOR r6 EOR r4 EOR r3 
r'10 = r13 EOR r12 EOR r11 EOR r9 EOR r8 EOR r6 EOR r5 EOR r3 EOR r2 
r'9 = r12 EOR r11 EOR r10 EOR r8 EOR r7 EOR r5 EOR r4 EOR r2 EOR r1 
r'8 = r11 EOR r10 EOR r9 EOR r7 EOR r6 EOR r4 EOR r3 EOR r1 EOR r0 
r'7 = r14 EOR r9 EOR r8 EOR r6 EOR r5 EOR r3 EOR r2 EOR r0 
r'6 = r14 EOR r13 EOR r10 EOR r8 EOR r7 EOR r5 EOR r4 EOR r2 EOR r1 
r'5 = r13 EOR r12 EOR r9 EOR r7 EOR r6 EOR r4 EOR r3 EOR r1 EOR r0 
r'4 = r14 EOR r12 EOR r11 EOR r10 EOR r8 EOR r6 EOR r5 EOR r3 EOR r2 EOR r0 
r'3 = r14 EOR r13 EOR r11 EOR r9 EOR r7 EOR r5 EOR r4 EOR r2 EOR r1 
r'2 = r13 EOR r12 EOR r10 EOR r8 EOR r6 EOR r4 EOR r3 EOR r1 EOR r0 
r'1 = r14 EOR r12 EOR r11 EOR r10 EOR r9 EOR r7 EOR r5 EOR r3 EOR r2 EOR r0 
r'0 = r14 EOR r13 EOR r11 EOR r9 EOR r8 EOR r6 EOR r4 EOR r2 EOR r1
【００４９】
＜×α２０の計算式＞      …（６）
r'14 = r12 EOR r11 EOR r8 EOR r7 EOR r4 EOR r2 EOR r1 
r'13 = r11 EOR r10 EOR r7 EOR r6 EOR r3 EOR r1 EOR r0 
r'12 = r14 EOR r9 EOR r6 EOR r5 EOR r2 EOR r0 
r'11 = r14 EOR r13 EOR r10 EOR r8 EOR r5 EOR r4 EOR r1 
r'10 = r13 EOR r12 EOR r9 EOR r7 EOR r4 EOR r3 EOR r0 
r'9 = r14 EOR r12 EOR r11 EOR r10 EOR r8 EOR r6 EOR r3 EOR r2 
r'8 = r13 EOR r11 EOR r10 EOR r9 EOR r7 EOR r5 EOR r2 EOR r1 
r'7 = r12 EOR r10 EOR r9 EOR r8 EOR r6 EOR r4 EOR r1 EOR r0 
r'6 = r14 EOR r11 EOR r10 EOR r9 EOR r8 EOR r7 EOR r5 EOR r3 EOR r0 
r'5 = r14 EOR r13 EOR r9 EOR r8 EOR r7 EOR r6 EOR r4 EOR r2 
r'4 = r13 EOR r12 EOR r8 EOR r7 EOR r6 EOR r5 EOR r3 EOR r1 
r'3 = r12 EOR r11 EOR r7 EOR r6 EOR r5 EOR r4 EOR r2 EOR r0 
r'2 = r14 EOR r11 EOR r6 EOR r5 EOR r4 EOR r3 EOR r1 
r'1 = r13 EOR r10 EOR r5 EOR r4 EOR r3 EOR r2 EOR r0 
r'0 = r14 EOR r12 EOR r10 EOR r9 EOR r4 EOR r3 EOR r2 EOR r1
【００５０】
＜×α３２の計算式＞      …（７）
r'14 = r13 EOR r8 EOR r5 EOR r0 
r'13 = r14 EOR r12 EOR r10 EOR r7 EOR r4 
r'12 = r13 EOR r11 EOR r9 EOR r6 EOR r3 
r'11 = r12 EOR r10 EOR r8 EOR r5 EOR r2 
r'10 = r11 EOR r9 EOR r7 EOR r4 EOR r1 
r'9 = r10 EOR r8 EOR r6 EOR r3 EOR r0 
r'8 = r14 EOR r10 EOR r9 EOR r7 EOR r5 EOR r2 
r'7 = r13 EOR r9 EOR r8 EOR r6 EOR r4 EOR r1 
r'6 = r12 EOR r8 EOR r7 EOR r5 EOR r3 EOR r0 
r'5 = r14 EOR r11 EOR r10 EOR r7 EOR r6 EOR r4 EOR r2 
r'4 = r13 EOR r10 EOR r9 EOR r6 EOR r5 EOR r3 EOR r1 
r'3 = r12 EOR r9 EOR r8 EOR r5 EOR r4 EOR r2 EOR r0 
r'2 = r14 EOR r11 EOR r10 EOR r8 EOR r7 EOR r4 EOR r3 EOR r1 
r'1 = r13 EOR r10 EOR r9 EOR r7 EOR r6 EOR r3 EOR r2 EOR r0 
r'0 = r14 EOR r12 EOR r10 EOR r9 EOR r8 EOR r6 EOR r5 EOR r2 EOR r1
【００５１】
図１１はデスクランブル回路１０の内部構成の一例を示すブロック図である。図１１のデスクランブル回路１０は、上述した×α１の計算を行う第１のスクランブル値生成部２１と、×α１４０の計算を行う第２のスクランブル値生成部２２と、×α１６０の計算を行う第３のスクランブル値生成部２３と、×α２０の計算を行う第４のスクランブル値生成部２４と、×α３２の計算を行う第５のスクランブル値生成部２５と、スイッチＳＷ１〜ＳＷ４と、フリップフロップ（ＦＦ）２６，２７と、ＥＯＲ演算器２８とを有する。
【００５２】
第１〜第５のスクランブル値生成部２１〜２５はそれぞれスクランブル値生成手段に対応する。第１〜第５のスクランブル値生成部２１〜２５のうちすべてが必須であるわけではなく、使用頻度の低いスクランブル値生成部については、不連続点でのスクランブル値を予め初期値として与えることで、省略可能である。より具体的には、第４および第５のスクランブル値生成部２４，２５は他のスクランブル値生成部に対して使用頻度が低いため、省略可能である。
【００５３】
一方、第１〜第３のスクランブル値生成部２１〜２３を仮に省略したとすると、かなりの頻度でスクランブル値の初期値を与えなければならなくなり、初期値を生成する回路の規模が大きくなってしまう。したがって、第１〜第３のスクランブル値生成部２１〜２３は必須となる。
【００５４】
スイッチＳＷ４は、第１〜第３のスクランブル値生成部２１〜２３のいずれかの出力データを選択する。スイッチＳＷ３は、スイッチＳＷ４で選択したデータとＦＦ２６の出力データのいずれかを選択する。スイッチＳＷ３が選択したデータはＦＦ２７に一時的に格納される。ＦＦ２７に格納されたデータＲ２は、第１〜第３のスクランブル値生成部２１〜２３に帰還されるとともに、最終的なスクランブル値ＳｋとしてＥＯＲ演算器２８に入力される。
【００５５】
ＥＯＲ演算器２８は、スクランブルされた入力データとスクランブル値Ｓｋとの排他的論理和を計算する。ＥＯＲ演算器２８の演算結果は、デスクランブル後のデータＤ'ｋとなる。
【００５６】
スイッチＳＷ２は、第４および第５のスクランブル値生成部２４，２５のいずれかの出力データを選択する。スイッチＳＷ１は、スイッチＳＷ２が選択したデータと初期値のいずれかを選択する。スイッチＳＷ１が選択したデータはＦＦ２６に一時的に格納される。
【００５７】
スイッチＳＷ１に入力される初期値は、セクタの番地に応じた値である。
【００５８】
図１２〜図１４は図１０のデスクランブル回路１０の動作タイミングである。以下、これらの動作タイミング図を用いて図１０のデスクランブル回路１０の動作を説明する。
【００５９】
図１２は第１の部分ブロック内の先頭行と２行目のデスクランブル処理の動作タイミング図である。時刻ｔ１で処理が開始され、時刻ｔ２で初期値が供給される。初期値は、図９の生成多項式に合わせて１５ビットのビット列である。この時点でスイッチＳＷ１は初期値を選択し、ＦＦ２６はクロック１のエッジで初期値をラッチする。
【００６０】
時刻ｔ３になると、ＦＦ２７に周期的にクロック２が入力され、第１〜第３のスクランブル値生成部２１〜２３は、上述した×α１、×α１４０、×α１６０の計算式に従って計算を行う。この時点では、スイッチＳＷ４は第１のスクランブル値生成部２１の出力データを選択する。スイッチＳＷ３はスイッチＳＷ４が選択した第１のスクランブル値生成部２１の出力データを第１〜第３のスクランブル値生成部２１〜２３に供給する。
【００６１】
部分ブロックの先頭行の処理が終わるまで（時刻ｔ３〜ｔ４）は、第１のスクランブル値生成部２１が選択されて、スクランブル値が生成される。生成されたスクランブル値は、第１〜第３のスクランブル値生成部２１〜２３に入力されるとともに、ＥＯＲ演算器２８にも入力される。ＥＯＲ演算器２８は、スクランブルされた入力データとスクランブル値との排他的論理和を計算して、デスクランブルを行う。
【００６２】
時刻ｔ４になると、スイッチＳＷ４は第２のスクランブル値生成部２２の出力データを選択する。これにより、部分ブロックの２行目のデスクランブル処理が開始される。時刻ｔ５〜ｔ６では、時刻ｔ３〜ｔ４と同様に、第１のスクランブル値生成部２１が選択されて、スクランブル値が生成される。
【００６３】
図１３は第１の部分ブロックの最終行と第２の部分ブロックの先頭行のデスクランブル処理の動作タイミング図である。時刻ｔ８で第１の部分ブロック内の最終行のデスクランブル処理が開始される。この最終行のデスクランブル処理を行っている最中（時刻ｔ８〜ｔ９）は、第１のスクランブル値生成部２１が選択されて、スクランブル値が計算される。時刻ｔ９になると、スイッチＳＷ２，ＳＷ３が切り替わって、第４のスクランブル値生成部２４の出力データがスイッチＳＷ２を介してＦＦ２６でラッチされて、スイッチＳＷ３を介してＦＦ２７にラッチされる。この処理は、第１の部分ブロックから第２の部分ブロックに移行するためのものである。
【００６４】
その後、時刻ｔ１０になると、第２の部分ブロックの先頭行のデスクランブル処理が開始される。
【００６５】
図１４は第５の部分ブロックの最終行と第６の部分ブロック内の最終行のデスクランブル処理の動作タイミング図である。時刻ｔ１３で第５の部分ブロック内の最終行のデスクランブル処理が開始される。時刻ｔ１３〜ｔ１４の間は、第１のスクランブル値生成部２１の出力データがスイッチＳＷ４，ＳＷ３を介してＦＦ２７にラッチされて、スクランブル値が生成される。
【００６６】
時刻ｔ１４になると、第５の部分ブロックから第６の部分ブロックに移行するために、第５のスクランブル値生成部２５が選択される。
【００６７】
その後、時刻ｔ１５〜ｔ１６の間は、第１のスクランブル値生成部２１の出力データがスイッチＳＷ４，ＳＷ３を介してＦＦ２７にラッチされて、スクランブル値が生成される。
【００６８】
このように、デスクランブル回路１０は、第１〜第５のスクランブル値生成部２１〜２５を設けて、部分ブロック内のデータ位置により、所望のスクランブル値生成部を選択してスクランブル値を計算するため、部分ブロック内のデータが部分的に不連続であっても、スクランブル値を迅速に計算でき、デスクランブル処理の高速化が図れる。
【００６９】
次に、ＥＤＣ計算回路１１について説明する。図１に示したように、ＤＶＤに記録されたＥＣＣブロック内の各セクタの最後には４バイトのＥＤＣが付加されている。ＥＤＣの値は、セクタの先頭バイトのＭＳＢをｂ16511、セクタの末尾バイトのＬＳＢをｂ0とすると、以下の（８）式で表される。
【数１】
2009048713.tif 000003
【００７０】
（８）式のＩ（ｘ）は（９）式で表され、ｇ（ｘ）は（１０）式で表される。
【数２】
2009048713.tif 000004
【００７１】
ＥＤＣ計算回路１１は、ＥＤＣが付加されたデスクランブル後の入力データに対してＥＤＣを計算する。計算されたＥＤＣが元々付加されていたＥＤＣと一致する場合には、ＥＤＣの計算結果はゼロになる。したがって、ＥＤＣの計算結果がゼロか否かにより、ＥＤＣが正しいかどうかを容易に検出できる。
【００７２】
データビットｂnが次数の高い方から順に入力される場合、データビットｂｎを入力するたびに以下の（１１）式の演算を繰り返して累積加算することにより、ＥＤＣを計算することができる。
｛ｂn×（ｘ1）｝ｍｏｄ｛ｇ（ｘ）｝  ＥＯＲ  ｂn-1    …（１１）
【００７３】
図６および図１０に示す部分ブロックごとにＥＤＣ計算を行うと、各部分ブロックは部分的にデータが不連続になることから、工夫が必要となる。
【００７４】
部分ブロック単位でＥＤＣ計算を行う場合に、データが不連続になる場合の（１１）式の次数差は以下の３通りとなる。
（１）各部分ブロックの各行の切り替わりでの次数差＝ｘ1376
（２）第１と第２、第２と第３、第３と第４、第４と第５の各部分ブロック間の次数差＝ｘ256
（３）第５と第６の部分ブロック間の次数差＝ｘ96
【００７５】
上記（１）の次数１３７６は、ＥＣＣブロックの１行分のバイト数１７２×８ビット＝１３７６ビットから得られる。上記（２）の次数２５６は、第１〜第５の部分ブロックの行幅３２バイト×８ビット＝２５６ビットから得られる。上記（３）の次数９６は、第６の部分ブロックの行幅１２バイト×８ビット＝９６ビットから得られる。
【００７６】
また、第１〜第６の部分ブロックの次数は、第１の部分ブロックから第６の部分ブロックにかけて次第に次数が小さくなる。さらに、各部分ブロック内の１６個のセクタは、１番目のセクタから１６番目のセクタにかけて次第に次数が小さくなる。
【００７７】
ＥＤＣ値は、ＰＩ符号方向にバースト転送されるデータを、（１１）式に基づいて部分ブロック内の各セクタの行単位で累積加算し、その累積加算値を部分ブロック単位で累積加算して演算される。
【００７８】
入力データの各ビットをｒ３１〜ｒ０とし、出力データの各ビットをｒ'３１〜ｒ'０としたとき、上述したデータ不連続時の（１１）式の計算式は、それぞれ以下のようになる。
【００７９】
＜次数差＝ｘ1の計算式＞      …（１２）
r'31 = r31 EOR r30 EOR r29 EOR r28 EOR r27 EOR r26 EOR r25 EOR r24 EOR r23 EOR r22 EOR r21 EOR r20 EOR r19 EOR r18 EOR r17 EOR r16 EOR r15
r'30 = r14
r'29 = r13
r'28 = r12
r'27 = r11
r'26 = r10
r'25 = r9
r'24 = r8
r'23 = r7
r'22 = r6
r'21 = r5
r'20 = r4
r'19 = r31 EOR r3
r'18 = r31 EOR r30 EOR r2
r'17 = r31 EOR r30 EOR r29 EOR r1
r'16 = r31 EOR r30 EOR r29 EOR r28 EOR r0
r'15 = r30 EOR r29 EOR r28 EOR r27
r'14 = r29 EOR r28 EOR r27 EOR r26
r'13 = r28 EOR r27 EOR r26 EOR r25
r'12 = r27 EOR r26 EOR r25 EOR r24
r'11 = r26 EOR r25 EOR r24 EOR r23
r'10 = r25 EOR r24 EOR r23 EOR r22
r'9 = r24 EOR r23 EOR r22 EOR r21 
r'8 = r23 EOR r22 EOR r21 EOR r20 
r'7 = r22 EOR r21 EOR r20 EOR r19 
r'6 = r21 EOR r20 EOR r19 EOR r18 
r'5 = r20 EOR r19 EOR r18 EOR r17 
r'4 = r19 EOR r18 EOR r17 EOR r16 
r'3 = r31 EOR r30 EOR r29 EOR r28 EOR r27 EOR r26 EOR r25 EOR r24 EOR r23 EOR r22 EOR r21 EOR r20 EOR r19 
r'2 = r31 EOR r30 EOR r29 EOR r28 EOR r27 EOR r26 EOR r25 EOR r24 EOR r23 EOR r22 EOR r21 EOR r20 EOR r19 EOR r18 
r'1 = r31 EOR r30 EOR r29 EOR r28 EOR r27 EOR r26 EOR r25 EOR r24 EOR r23 EOR r22 EOR r21 EOR r20 EOR r19 EOR r18 EOR r17 
r'0 = r31 EOR r30 EOR r29 EOR r28 EOR r27 EOR r26 EOR r25 EOR r24 EOR r23 EOR r22 EOR r21 EOR r20 EOR r19 EOR r18 EOR r17 EOR r16
【００８０】
＜次数差＝ｘ96の計算式＞      …（１３）
r'31 = r31 EOR r30 EOR r29 EOR r28 EOR r26 EOR r25 EOR r24 EOR r23 EOR r22 EOR r21 EOR r20 EOR r18 EOR r17 EOR r16 EOR r15 EOR r14 EOR r13 EOR r12 EOR r11 EOR r10 EOR r9 EOR r8 EOR r7 EOR r6 EOR r5 EOR r4 EOR r3 EOR r2 EOR r1 EOR r0
r'30 = r27 EOR r26 EOR r19 EOR r18
r'29 = r26 EOR r25 EOR r18 EOR r17
r'28 = r25 EOR r24 EOR r17 EOR r16
r'27 = r24 EOR r23 EOR r16 EOR r15
r'26 = r23 EOR r22 EOR r15 EOR r14
r'25 = r22 EOR r21 EOR r14 EOR r13
r'24 = r21 EOR r20 EOR r13 EOR r12
r'23 = r20 EOR r19 EOR r12 EOR r11
r'22 = r19 EOR r18 EOR r11 EOR r10
r'21 = r18 EOR r17 EOR r10 EOR r9
r'20 = r17 EOR r16 EOR r9 EOR r8
r'19 = r16 EOR r15 EOR r8 EOR r7
r'18 = r15 EOR r14 EOR r7 EOR r6
r'17 = r14 EOR r13 EOR r6 EOR r5
r'16 = r13 EOR r12 EOR r5 EOR r4
r'15 = r31 EOR r12 EOR r11 EOR r4 EOR r3
r'14 = r30 EOR r11 EOR r10 EOR r3 EOR r2
r'13 = r29 EOR r10 EOR r9 EOR r2 EOR r1
r'12 = r28 EOR r9 EOR r8 EOR r1 EOR r0
r'11 = r31 EOR r27 EOR r8 EOR r7 EOR r0
r'10 = r30 EOR r26 EOR r7 EOR r6
r'9 = r29 EOR r25 EOR r6 EOR r5 
r'8 = r28 EOR r24 EOR r5 EOR r4 
r'7 = r31 EOR r27 EOR r23 EOR r4 EOR r3 
r'6 = r30 EOR r26 EOR r22 EOR r3 EOR r2 
r'5 = r29 EOR r25 EOR r21 EOR r2 EOR r1 
r'4 = r28 EOR r24 EOR r20 EOR r1 EOR r0 
r'3 = r30 EOR r29 EOR r28 EOR r27 EOR r26 EOR r25 EOR r24 EOR r22 EOR r21 EOR r20 EOR r19 EOR r18 EOR r17 EOR r16 EOR r15 EOR r14 EOR r13 EOR r12 EOR r11 EOR r10 EOR r9 EOR r8 EOR r7 EOR r6 EOR r5 EOR r4 EOR r3 EOR r2 EOR r1 
r'2 = r31 EOR r29 EOR r28 EOR r27 EOR r26 EOR r25 EOR r24 EOR r23 EOR r21 EOR r20 EOR r19 EOR r18 EOR r17 EOR r16 EOR r15 EOR r14 EOR r13 EOR r12 EOR r11 EOR r10 EOR r9 EOR r8 EOR r7 EOR r6 EOR r5 EOR r4 EOR r3 EOR r2 EOR r1 EOR r0 
r'1 = r31 EOR r30 EOR r28 EOR r27 EOR r26 EOR r25 EOR r24 EOR r23 EOR r22 EOR r20 EOR r19 EOR r18 EOR r17 EOR r16 EOR r15 EOR r14 EOR r13 EOR r12 EOR r11 EOR r10 EOR r9 EOR r8 EOR r7 EOR r6 EOR r5 EOR r4 EOR r3 EOR r2 EOR r1 EOR r0 
r'0 = r31 EOR r30 EOR r29 EOR r27 EOR r26 EOR r25 EOR r24 EOR r23 EOR r22 EOR r21 EOR r19 EOR r18 EOR r17 EOR r16 EOR r15 EOR r14 EOR r13 EOR r12 EOR r11 EOR r10 EOR r9 EOR r8 EOR r7 EOR r6 EOR r5 EOR r4 EOR r3 EOR r2 EOR r1 EOR r0
【００８１】
＜次数差＝ｘ256の計算式＞      …（１４）
r'31 = r31 EOR r30 EOR r28 EOR r26 EOR r25 EOR r24 EOR r23 EOR r14 EOR r13 EOR r12 EOR r11 EOR r10 EOR r9 EOR r8 EOR r7
r'30 = r29 EOR r28 EOR r27 EOR r26 EOR r22 EOR r14 EOR r6
r'29 = r28 EOR r27 EOR r26 EOR r25 EOR r21 EOR r13 EOR r5
r'28 = r27 EOR r26 EOR r25 EOR r24 EOR r20 EOR r12 EOR r4
r'27 = r31 EOR r26 EOR r25 EOR r24 EOR r23 EOR r19 EOR r11 EOR r3
r'26 = r31 EOR r30 EOR r25 EOR r24 EOR r23 EOR r22 EOR r18 EOR r10 EOR r2
r'25 = r31 EOR r30 EOR r29 EOR r24 EOR r23 EOR r22 EOR r21 EOR r17 EOR r9 EOR r1
r'24 = r31 EOR r30 EOR r29 EOR r28 EOR r23 EOR r22 EOR r21 EOR r20 EOR r16 EOR r8 EOR r0
r'23 = r30 EOR r29 EOR r28 EOR r27 EOR r22 EOR r21 EOR r20 EOR r19 EOR r15 EOR r7
r'22 = r29 EOR r28 EOR r27 EOR r26 EOR r21 EOR r20 EOR r19 EOR r18 EOR r14 EOR r6
r'21 = r28 EOR r27 EOR r26 EOR r25 EOR r20 EOR r19 EOR r18 EOR r17 EOR r13 EOR r5
r'20 = r27 EOR r26 EOR r25 EOR r24 EOR r19 EOR r18 EOR r17 EOR r16 EOR r12 EOR r4
r'19 = r31 EOR r26 EOR r25 EOR r24 EOR r23 EOR r18 EOR r17 EOR r16 EOR r15 EOR r11 EOR r3
r'18 = r31 EOR r30 EOR r25 EOR r24 EOR r23 EOR r22 EOR r17 EOR r16 EOR r15 EOR r14 EOR r10 EOR r2
r'17 = r31 EOR r30 EOR r29 EOR r24 EOR r23 EOR r22 EOR r21 EOR r16 EOR r15 EOR r14 EOR r13 EOR r9 EOR r1
r'16 = r31 EOR r30 EOR r29 EOR r28 EOR r23 EOR r22 EOR r21 EOR r20 EOR r15 EOR r14 EOR r13 EOR r12 EOR r8 EOR r0
r'15 = r30 EOR r29 EOR r28 EOR r27 EOR r22 EOR r21 EOR r20 EOR r19 EOR r14 EOR r13 EOR r12 EOR r11 EOR r7
r'14 = r29 EOR r28 EOR r27 EOR r26 EOR r21 EOR r20 EOR r19 EOR r18 EOR r13 EOR r12 EOR r11 EOR r10 EOR r6
r'13 = r28 EOR r27 EOR r26 EOR r25 EOR r20 EOR r19 EOR r18 EOR r17 EOR r12 EOR r11 EOR r10 EOR r9 EOR r5
r'12 = r27 EOR r26 EOR r25 EOR r24 EOR r19 EOR r18 EOR r17 EOR r16 EOR r11 EOR r10 EOR r9 EOR r8 EOR r4
r'11 = r31 EOR r26 EOR r25 EOR r24 EOR r23 EOR r18 EOR r17 EOR r16 EOR r15 EOR r10 EOR r9 EOR r8 EOR r7 EOR r3
r'10 = r31 EOR r30 EOR r25 EOR r24 EOR r23 EOR r22 EOR r17 EOR r16 EOR r15 EOR r14 EOR r9 EOR r8 EOR r7 EOR r6 EOR r2
r'9 = r31 EOR r30 EOR r29 EOR r24 EOR r23 EOR r22 EOR r21 EOR r16 EOR r15 EOR r14 EOR r13 EOR r8 EOR r7 EOR r6 EOR r5 EOR r1 
r'8 = r31 EOR r30 EOR r29 EOR r28 EOR r23 EOR r22 EOR r21 EOR r20 EOR r15 EOR r14 EOR r13 EOR r12 EOR r7 EOR r6 EOR r5 EOR r4 EOR r0 
r'7 = r31 EOR r30 EOR r29 EOR r28 EOR r27 EOR r22 EOR r21 EOR r20 EOR r19 EOR r14 EOR r13 EOR r12 EOR r11 EOR r6 EOR r5 EOR r4 EOR r3 
r'6 = r30 EOR r29 EOR r28 EOR r27 EOR r26 EOR r21 EOR r20 EOR r19 EOR r18 EOR r13 EOR r12 EOR r11 EOR r10 EOR r5 EOR r4 EOR r3 EOR r2 
r'5 = r31 EOR r29 EOR r28 EOR r27 EOR r26 EOR r25 EOR r20 EOR r19 EOR r18 EOR r17 EOR r12 EOR r11 EOR r10 EOR r9 EOR r4 EOR r3 EOR r2 EOR r1 
r'4 = r30 EOR r28 EOR r27 EOR r26 EOR r25 EOR r24 EOR r19 EOR r18 EOR r17 EOR r16 EOR r11 EOR r10 EOR r9 EOR r8 EOR r3 EOR r2 EOR r1 EOR r0 
r'3 = r30 EOR r29 EOR r28 EOR r27 EOR r18 EOR r17 EOR r16 EOR r15 EOR r14 EOR r13 EOR r12 EOR r11 EOR r2 EOR r1 EOR r0 
r'2 = r31 EOR r29 EOR r28 EOR r27 EOR r26 EOR r17 EOR r16 EOR r15 EOR r14 EOR r13 EOR r12 EOR r11 EOR r10 EOR r1 EOR r0 
r'1 = r30 EOR r28 EOR r27 EOR r26 EOR r25 EOR r16 EOR r15 EOR r14 EOR r13 EOR r12 EOR r11 EOR r10 EOR r9 EOR r0 
r'0 = r31 EOR r29 EOR r27 EOR r26 EOR r25 EOR r24 EOR r15 EOR r14 EOR r13 EOR r12 EOR r11 EOR r10 EOR r9 EOR r8
【００８２】
＜次数差＝ｘ1376の計算式＞      …（１５）
r'31 = r31 EOR r30 EOR r28 EOR r26 EOR r25 EOR r24 EOR r23 EOR r22 EOR r21 EOR r20 EOR r19
r'30 = r29 EOR r28 EOR r27 EOR r26 EOR r18
r'29 = r28 EOR r27 EOR r26 EOR r25 EOR r17
r'28 = r27 EOR r26 EOR r25 EOR r24 EOR r16
r'27 = r26 EOR r25 EOR r24 EOR r23 EOR r15
r'26 = r25 EOR r24 EOR r23 EOR r22 EOR r14
r'25 = r24 EOR r23 EOR r22 EOR r21 EOR r13
r'24 = r23 EOR r22 EOR r21 EOR r20 EOR r12
r'23 = r22 EOR r21 EOR r20 EOR r19 EOR r11
r'22 = r21 EOR r20 EOR r19 EOR r18 EOR r10
r'21 = r20 EOR r19 EOR r18 EOR r17 EOR r9
r'20 = r19 EOR r18 EOR r17 EOR r16 EOR r8
r'19 = r18 EOR r17 EOR r16 EOR r15 EOR r7
r'18 = r17 EOR r16 EOR r15 EOR r14 EOR r6
r'17 = r16 EOR r15 EOR r14 EOR r13 EOR r5
r'16 = r15 EOR r14 EOR r13 EOR r12 EOR r4
r'15 = r31 EOR r14 EOR r13 EOR r12 EOR r11 EOR r3
r'14 = r31 EOR r30 EOR r13 EOR r12 EOR r11 EOR r10 EOR r2
r'13 = r31 EOR r30 EOR r29 EOR r12 EOR r11 EOR r10 EOR r9 EOR r1
r'12 = r31 EOR r30 EOR r29 EOR r28 EOR r11 EOR r10 EOR r9 EOR r8 EOR r0
r'11 = r30 EOR r29 EOR r28 EOR r27 EOR r10 EOR r9 EOR r8 EOR r7
r'10 = r29 EOR r28 EOR r27 EOR r26 EOR r9 EOR r8 EOR r7 EOR r6
r'9 = r28 EOR r27 EOR r26 EOR r25 EOR r8 EOR r7 EOR r6 EOR r5 
r'8 = r27 EOR r26 EOR r25 EOR r24 EOR r7 EOR r6 EOR r5 EOR r4 
r'7 = r31 EOR r26 EOR r25 EOR r24 EOR r23 EOR r6 EOR r5 EOR r4 EOR r3 
r'6 = r30 EOR r25 EOR r24 EOR r23 EOR r22 EOR r5 EOR r4 EOR r3 EOR r2 
r'5 = r31 EOR r29 EOR r24 EOR r23 EOR r22 EOR r21 EOR r4 EOR r3 EOR r2 EOR r1 
r'4 = r30 EOR r28 EOR r23 EOR r22 EOR r21 EOR r20 EOR r3 EOR r2 EOR r1 EOR r0 
r'3 = r30 EOR r29 EOR r28 EOR r27 EOR r26 EOR r25 EOR r24 EOR r23 EOR r2 EOR r1 EOR r0 
r'2 = r31 EOR r29 EOR r28 EOR r27 EOR r26 EOR r25 EOR r24 EOR r23 EOR r22 EOR r1 EOR r0 
r'1 = r30 EOR r28 EOR r27 EOR r26 EOR r25 EOR r24 EOR r23 EOR r22 EOR r21 EOR r0 
r'0 = r31 EOR r29 EOR r27 EOR r26 EOR r25 EOR r24 EOR r23 EOR r22 EOR r21 EOR r20
【００８３】
上述した（１２）〜（１５）式の計算式を演算する回路を予め用意しておけば、データが入力されるたびに（１１）式を用いて計算する必要がなくなり、ＥＤＣ値を高速に計算することができる。
【００８４】
図１５はＥＤＣ計算回路１１の内部構成の一例を示すブロック図である。図１５のＥＤＣ計算回路１１は、上述した（１２）〜（１５）式の計算を行う回路を予め用意する点に特徴がある。
【００８５】
図１５のＥＤＣ計算回路１１は、上述した次数差Ｘ1の累積加算を行う第１の累積加算器３１と、第１の累積加算器３１の累積加算値を一時的に格納するフリップフロップ（ＦＦ）３２と、次数差Ｘ1376の累積加算を行う第２の累積加算器３３と、第２の累積加算器３３の累積加算値を一時的に格納するフリップフロップ（ＦＦ）３４と、次数差Ｘ256またはＸ96の累積加算を行う第３の累積加算器３５と、セクタごとに累積加算値を一時的に格納するフリップフロップ（ＦＦ）３６と、セクタ選択器３７とを有する。
【００８６】
第１の累積加算器３１は、上記（１２）式の計算を行うＸ１計算器４１と、Ｘ１計算器４１の計算結果とデスクランブル後のデータとの排他的論理和を計算するＥＯＲ演算器４２とを有する。第２の累積加算器３３は、上記（１５）式の計算を行うＸ1376計算器４３と、Ｘ1376計算器４３の計算結果と第１の累積加算器３１の累積加算値との排他的論理和を計算するＥＯＲ演算器４４とを有する。
【００８７】
第３の累積加算器３５は、上記（１３）式の計算を行うＸ96計算器４５と、上記（１４）式の計算を行うＸ256計算器４６と、Ｘ96計算器４５およびＸ256計算器４６の計算結果のいずれか一方を選択するスイッチ４７と、このスイッチ４７で選択した計算結果と第２の累積加算器３３の累積加算値との排他的論理和を演算するＥＯＲ演算器４８とを有する。
【００８８】
図１６〜図２０は図１５のＥＤＣ計算回路１１の動作タイミング図である。以下、これらの動作タイミング図を用いて図１５のＥＤＣ計算回路１１の動作を説明する。
【００８９】
図１６は第１の部分ブロック内の先頭行と２行目のＥＤＣ計算処理の動作タイミング図である。時刻ｔ１で処理が開始され、デスクランブル後の先頭行のバイトデータが順にクロック３に同期して第１の累積加算器３１に取り込まれて、累積加算値が計算される。
【００９０】
時刻ｔ２になると、クロック４が第２の累積加算器３３に供給されて、第２の累積加算器３３が一度だけ累積加算を行う。
【００９１】
その後、第１の部分ブロック内の２行目のバイトデータが順にクロック３に同期して第１の累積加算器３１に取り込まれて、累積加算値が計算される。
【００９２】
図１７は第１の部分ブロック内の１２行目と１３行目（第１セクタの最終行と第２セクタの先頭行）のＥＤＣ計算処理の動作タイミング図である。時刻ｔ４になった後に、第１の部分ブロック内の１２行目のバイトデータが順にクロック３に同期して第１の累積加算器３１に取り込まれて、累積加算値が計算される。
【００９３】
時刻ｔ５になると、クロック４が第２の累積加算器３３に供給されて、第２の累積加算器３３が一度だけ累積加算を行う。
【００９４】
その後、時刻ｔ６になると、クロック５がセクタ１のＦＦ３６に供給されて、第２の累積加算器３３から出力された今までの累積加算値がセクタ１のＦＦ３６に格納される。このＦＦ３６には、セクタ１の累積加算値が格納される。
【００９５】
時刻ｔ６〜ｔ７の間は、第１の部分ブロックの１３行目、すなわちセクタ２の先頭行のバイトデータが順にクロック３に同期して第１の累積加算器３１に取り込まれて、累積加算値が計算される。
【００９６】
図１８は第２の部分ブロック内の２４行目と２５行目（セクタ２の最終行とセクタ３の先頭行）のＥＤＣ計算処理の動作タイミング図である。時刻ｔ８〜ｔ９の間は、第１の部分ブロック内の２４行目のバイトデータが順にクロック３に同期して第１の累積加算器３１に取り込まれて、累積加算値が計算される。
【００９７】
時刻ｔ９になると、クロック４が第２の累積加算器３３に供給されて、第２の累積加算器３３が一度だけ累積加算を行う。
【００９８】
その後、時刻ｔ１０になると、クロック６がセクタ２のＦＦ３６に供給されて、第２の累積加算器３３から出力された今までの累積加算値がセクタ２のＦＦ３６に格納される。このＦＦ３６には、セクタ２の累積加算値が格納される。
【００９９】
時刻ｔ１０〜ｔ１１の間は、第１の部分ブロックの２５行目、すなわちセクタ３の先頭行のバイトデータが順にクロック３に同期して第１の累積加算器３１に取り込まれて、累積加算値が計算される。
【０１００】
図１９は第１の部分ブロック内の１９２行目（最終行）と第２の部分ブロックの先頭行のＥＤＣ計算処理の動作タイミング図である。時刻ｔ１２〜ｔ１３の間は、第１の部分ブロックの最終行のバイトデータが順にクロック３に同期して第１の累積加算器３１に取り込まれて、累積加算値が計算される。
【０１０１】
時刻ｔ１３になると、クロック４が第２の累積加算器３３に供給されて、第２の累積加算器３３が一度だけ累積加算を行う。
【０１０２】
その後、時刻ｔ１４になると、クロック２０がセクタ１６のＦＦ３６に供給されて、第２の累積加算器３３から出力された今までの累積加算値がセクタ１６のＦＦに格納される。このＦＦ３６には、セクタ１６の累積加算値が格納される。
【０１０３】
時刻ｔ１４〜ｔ１５の間は、第２の部分ブロックの先頭行のバイトデータが順にクロック３に同期して第１の累積加算器３１に取り込まれて、累積加算値が計算される。
【０１０４】
図２０は第５の部分ブロック内の最終行と第６の部分ブロックの第１および第２行のＥＤＣ計算処理の動作タイミング図である。時刻ｔ１６〜ｔ１７の間は、第５の部分ブロックの最終行のバイトデータが順にクロック３に同期して第１の累積加算器３１に取り込まれて、累積加算値が計算される。
【０１０５】
時刻ｔ１７になると、クロック４が第２の累積加算器３３に供給され、第２の累積加算器３３が一度だけ累積加算を行う。
【０１０６】
その後、時刻ｔ１８になると、クロック２０がセクタ１６のＦＦに供給されて、第５の累積加算器から出力された今までの累積加算値がＦＦに格納される。このＦＦには、セクタ１６の累積加算値が格納される。
【０１０７】
その後、時刻ｔ１９では、第６の部分ブロックの先頭行の累積加算値を第２の累積加算器３３で演算し、時刻ｔ２０では、第６の部分ブロックの２行目の累積加算値を第２の累積加算器３３で演算する。
【０１０８】
図１５のＥＤＣ計算回路１１に入力されるデータは、図１に示すようにセクタごとにＥＤＣを含んでいるため、正常にＥＤＣ処理が行われた場合には、図１５のＥＤＣ計算回路１１の出力はゼロになる。したがって、出力がゼロか否かで、ＥＤＣ計算処理が正常に行われたか否かを迅速に判断できる。
【０１０９】
このように、ＥＤＣ計算回路１１は、第１〜第３の累積加算器３５を設けて、部分ブロック内のデータ位置により、所望の累積加算器を選択するため、部分ブロック内のデータが部分的に不連続であっても、ＥＤＣを迅速に計算でき、ＥＤＣ計算処理の高速化が図れる。
【０１１０】
（第２の実施形態）
上述した第１の実施形態では、ＤＶＤに記録されたデータを再生する際のデスクランブル処理とＥＤＣ計算処理について説明したが、本発明は、ＤＶＤにデータを記録する際のスクランブル処理とＥＤＣ計算処理にも適用可能である。
【０１１１】
データ記録時のスクランブル処理を行うスクランブル回路は図１１と同様の回路で構成され、データ記録時のＥＤＣ計算処理を行うＥＤＣ計算回路は図１５と同様の回路で構成される。より具体的には、スクランブル回路を構成する場合には、図１１の回路にスクランブル前のデータを入力する。
【０１１２】
データ記録時のスクランブル回路とＥＤＣ計算回路は並列動作が可能である。ＥＤＣ計算回路で計算されたＥＤＣは、スクランブル回路で計算されたスクランブルデータにセクタごとに付加される。
【０１１３】
このように、データ記録に用いるスクランブル回路とＥＤＣ計算回路においても、不連続データを有する部分ブロック単位でスクランブル処理とＥＤＣ計算を高速に行うことができる。
【図面の簡単な説明】
【０１１４】
【図１】１セクタのデータフォーマットを示す図。
【図２】ＥＣＣブロックのデータフォーマットを示す図。
【図３】ＰＯ符号をデータ１２行に対して１行ずつインターリーブして配置する例を示す図。
【図４】物理セクタのデータフォーマットを示す図。
【図５】本発明の第１の実施形態に係る光ディスク再生装置の概略構成を示すブロック図。
【図６】部分ブロックデータの一例を示す図。
【図７】第１の実施形態におけるエラー訂正の動作タイミング図。
【図８】図７の時刻ｔ２〜ｔ３の間に行われるＰＯ系列のエラー訂正処理の詳細な動作タイミング図。
【図９】生成多項式の一例を示す図。
【図１０】各ＥＣＣブロック内の第１〜第６の部分ブロックの詳細構成を示す図。
【図１１】デスクランブル回路１０の内部構成の一例を示すブロック図。
【図１２】第１の部分ブロック内の先頭行と２行目のデスクランブル処理の動作タイミング図。
【図１３】第１の部分ブロックの最終行と第２の部分ブロックの先頭行のデスクランブル処理の動作タイミング図。
【図１４】第５の部分ブロックの最終行と第６の部分ブロック内の最終行のデスクランブル処理の動作タイミング図。
【図１５】ＥＤＣ計算回路１１の内部構成の一例を示すブロック図。
【図１６】第１の部分ブロック内の先頭行と２行目のＥＤＣ計算処理の動作タイミング図。
【図１７】第１セクタの最終行と第２セクタの先頭行のＥＤＣ計算処理の動作タイミング図。
【図１８】セクタ２の最終行とセクタ３の先頭行のＥＤＣ計算処理の動作タイミング図。
【図１９】第１の部分ブロック内の１９２行目と第２の部分ブロックの先頭行のＥＤＣ計算処理の動作タイミング図。
【図２０】第５の部分ブロック内の最終行と第６の部分ブロックの第１および第２行のＥＤＣ計算処理の動作タイミング図。
【符号の説明】
【０１１５】
１  ディスクモータ
２  ピックアップ
３  サーボ処理部
４  システムコントローラ
５  メモリコントローラ
６  メモリ
７  復調部
８  エラー訂正部
９  訂正バッファ
１０  デスクランブル回路
１１  ＥＤＣ計算回路
１２  ホストＩ／Ｆ部
１３  ホストコンピュータ
２１  第１のスクランブル値生成部
２２  第２のスクランブル値生成部
２３  第３のスクランブル値生成部
２４  第４のスクランブル値生成部
２５  第５のスクランブル値生成部
２６，２７，３１，３４，３６  フリップフロップ（ＦＦ）
２８  ＥＯＲ演算器
３１  第１の累積加算器
３３  第２の累積加算器
３５  第３の累積加算器
３７  セクタ選択器
【図１】
2009048713.tif 000005
【図２】
2009048713.tif 000006
【図３】
2009048713.tif 000007
【図４】
2009048713.tif 000008
【図５】
2009048713.tif 000009
【図６】
2009048713.tif 000010
【図７】
2009048713.tif 000011
【図８】
2009048713.tif 000012
【図９】
2009048713.tif 000013
【図１０】
2009048713.tif 000014
【図１１】
2009048713.tif 000015
【図１２】
2009048713.tif 000016
【図１３】
2009048713.tif 000017
【図１４】
2009048713.tif 000018
【図１５】
2009048713.tif 000019
【図１６】
2009048713.tif 000020
【図１７】
2009048713.tif 000021
【図１８】
2009048713.tif 000022
【図１９】
2009048713.tif 000023
【図２０】
2009048713.tif 000024