(57)【特許請求の範囲】
【請求項１】
第１の順序を有するユーザ・データ符号列の誤りを検出する誤り検出符号を算出する誤り検出符号算出回路であって、
ユーザ・データ符号列を含むセクタを２以上有するデータ群を処理単位とし、
前記データ群は、前記第１の順序で読み出した場合には前記誤り検出符号が前記ユーザ・データ符号列の最後に付加されるものであって、前記第１の順序とは異なる順序で読み出した場合には前記誤り検出符号が前記ユーザ・データ符号列の読み出し途中に付加される構成を有する演算対象セクタを含み、
前記演算対象セクタの一部のユーザ・データから誤り検出符号中間値を算出する第１の演算部と、
前記演算対象セクタから前記一部を除いた残りのユーザ・データ及び前記第１の演算部により演算された前記誤り検出符号中間値に基づき誤り検出符号を算出する第２の演算部とを有し、
前記第２の演算部は、前記第１の順序とは異なる順序で前記演算対象セクタに含まれるユーザ・データ符号列を読み出した際に付加するための前記誤り検出符号を算出する誤り検出符号算出回路。
【請求項２】
前記第２の演算部は、前記第１の順序とは異なる順序で入力される前記残りのユーザ・データに基づき前記誤り検出符号中間値を更新して前記誤り検出符号を算出する
ことを特徴とする請求項１記載の誤り検出符号算出回路。
【請求項３】
前記演算対象セクタの前記残りのユーザ・データは、前記データ群を前記異なる順序で読み出した場合の前記演算対象セクタに含まれるユーザ・データ符号列のうち、その先頭から前記誤り検出符号が付加される直前までのユーザ・データを有する
ことを特徴とする請求項１項記載の誤り検出符号算出回路。
【請求項４】
前記演算対象セクタの一部のユーザ・データは、前記演算対象セクタに含まれるユーザ・データ符号列のうち、前記データ群を前記異なる順序で読み出した場合の前記誤り検出符号が付加される以降のユーザ・データを有する
ことを特徴とする請求項３項記載の誤り検出符号算出回路。
【請求項５】
前記データ群は、Ｋ行×Ｌ列（Ｋ、Ｌは整数）からなるブロックからなり、
前記ブロックは、ディスクに記録するための最小記録単位に含まれるユーザ・データを含み、
前記第１の順序は前記ブロックの列方向に対応したユーザ・データの符号化順序であって、
前記ブロックの行方向と前記ユーザ・データの記録順序とが対応するものである
ことを特徴とする請求項１項記載の誤り検出符号算出回路。
【請求項６】
前記データ群は、前記ブロックにおいて一の列の途中に前記誤り検出符号が挿入される前記演算対象セクタを有する
ことを特徴とする請求項５項記載の誤り検出符号算出回路。
【請求項７】
前記演算対象セクタの一部は、前記ブロックにおいて一の列の途中に前記誤り検出符号が挿入される前記演算対象セクタにおける前記誤り検出符号の最終のバイトが挿入される行以降のユーザ・データを有する
ことを特徴とする請求項６項記載の誤り検出符号算出回路。
【請求項８】
前記第２の演算部は、前記異なる順序としてｍバイトの前記第１の順序のユーザ・データを前記行方向にＬ回繰り返し受け取り、これをＫ／ｍ（ただし、Ｋ／ｍの小数点以下は繰り上げ）回繰り返すことで前記データ群を受け取る
ことを特徴とする請求項５項記載の誤り検出符号算出回路。
【請求項９】
ユーザ・データ符号列は、データ・バッファからバースト転送されるものであって、
前記ｍバイトはバースト転送サイズであり、
前記誤り検出符号は、前記ｍバイト以下からなる
ことを特徴とする請求項８項記載の誤り検出符号算出回路。
【請求項１０】
前記誤り検出符号は、前記第１の順序のユーザ・データ符号列に前記誤り検出符号と同一バイトの０データを付加したｋバイトのセクタに所定の演算を施すことで得られるものであって、
前記第１の演算部は、前記第１の順序を対応づけたｋバイトの符号列において、入力されるユーザ・データの前記第１の順序に対応するビットのみを１、他を０として前記所定の演算を施した結果を期待値として算出し、入力されるユーザ・データが１の場合の当該期待値の排他的論理和を順次求めることで前記誤り検出符号中間値を算出し、
前記第２の演算部は、入力されるユーザ・データの前記期待値を算出し、前記誤り検出符号中間値と入力されるユーザ・データが１の場合の当該期待値の排他的論理和を順次求めることで前記誤り検出符号を算出する
ことを特徴とする請求項５項記載の誤り検出符号算出回路。
【請求項１１】
前記第１の演算部は、前記演算対象セクタの一部のユーザ・データを前記データ群を前記第１の順序で受け取り、
前記第２の演算部は、前記データ群を前記異なる順序で受け取る
ことを特徴とする請求項１０記載の誤り検出符号算出回路。
【請求項１２】
前記第２の演算部は、前記ユーザ・データ符号列の第１の順序の最後に前記誤り検出符号と同一バイトの０データを付加したデータについて前記異なる順序で演算を行なうものであって、当該０データの最終バイトの演算タイミング以前に全ての前記誤り検出符号を算出する
ことを特徴とする請求項１０記載の誤り検出符号算出回路。
【請求項１３】
前記第１及び第２の演算部は、前記ユーザ・データ符号列内の特定ビットに対応する期待値である初期期待値を参照し、当該初期期待値に基づき前記期待値を算出する
ことを特徴とする請求項１０項記載の誤り検出符号算出回路。
【請求項１４】
前記第１及び第２の演算部は、前記ブロックにおける一の行に対応する期待値である初期期待値を参照し、当該初期期待値に基づき前記期待値を算出する
ことを特徴とする請求項１０項記載の誤り検出符号算出回路。
【請求項１５】
前記ブロックは、２つのセクタの組からなる複数のエリアからなり、
前記初期期待値は、一のエリアにおける一の行の期待値である
ことを特徴とする請求項１４項記載の誤り検出符号算出回路。
【請求項１６】
前記初期期待値を保持する期待値テーブルと、
前記誤り検出符号を保持するバッファとを有し、
前記第１の演算部及び第２の演算部は、前記期待値テーブルを参照して前記期待値を生成し、前記排他的論理和を求めて前記バッファにそれぞれ前記誤り符号中間値及び前記誤り検出符号を格納する
ことを特徴とする請求項１５項記載の誤り検出符号算出回路。
【請求項１７】
前記エリアに含まれるセクタの一方が前記演算対象セクタである
ことを特徴とする請求項１６項記載の誤り検出符号算出回路。
【請求項１８】
前記第２の演算部は、前記データ群のうち前記第１の順序とは異なる順序で読み出した場合にも前記誤り検出符号が最後に付加される構成を有する非演算対象セクタについては、入力されるユーザ・データの前記期待値を算出し、入力されるユーザ・データが１の場合の当該期待値の排他的論理和を順次求めることで前記誤り検出符号を算出する
ことを特徴とする請求項１０項記載の誤り検出符号算出回路。
【請求項１９】
前記第２の演算部は、前記ユーザ・データ符号列の第１の順序の最後に前記誤り検出符号と同一バイトの０データを付加したデータについて前記異なる順序で演算を行なうものであって、当該０データの最終バイトの演算タイミング以前に全ての前記誤り検出符号を算出する
ことを特徴とする請求項１８記載の誤り検出符号算出回路。
【請求項２０】
前記データ群は、Ｋ行×Ｌ列（Ｋ、Ｌは整数）からなるブロックからなり、
前記ブロックは、ディスクに記録するための最小記録単位に含まれるユーザ・データを含み、
前記異なる順序は、前記ブロックの行方向に対応する順序である
ことを特徴とする請求項１項記載の誤り検出符号算出回路。
【請求項２１】
前記第１の演算部がｔ番目のデータ群を処理している間、前記第２の演算部は、（ｔ−１）番目のデータ群を処理する
ことを特徴とする請求項１記載の誤り検出符号算出回路。
【請求項２２】
第１の順序を有するユーザ・データ符号列の誤りを検出する誤り検出符号を算出する誤り検出符号算出方法であって、
ユーザ・データ符号列を含むセクタを２以上有するデータ群を処理単位とし、
前記データ群は、前記第１の順序で読み出した場合には前記誤り検出符号が前記ユーザ・データ符号列の最後に付加されるものであって、前記第１の順序とは異なる順序で読み出した場合には前記誤り検出符号が前記ユーザ・データ符号列の読み出し途中に付加される構成を有する演算対象セクタを含み、
第１の演算部により、前記演算対象セクタの一部から誤り検出符号中間値を算出し、
第２の演算部により、前記演算対象セクタから前記一部を除いた残部及び前記第１の演算部により演算された前記誤り検出符号中間値に基づき、前記第１の順序とは異なる順序で前記演算対象セクタに含まれるユーザ・データ符号列を読み出した際に付加するための前記誤り検出符号を算出する誤り検出符号算出方法。
【請求項２３】
２以上の第１の順序を有するユーザ・データ符号列を含むデータ群を処理単位とし、前記データ群を前記第１の順序とは異なる第２の順序でディスクに記録する記録装置であって、
ユーザ・データ符号列を含むセクタを２以上有するデータ群を処理単位とし、
前記データ群は、前記第１の順序で読み出した場合には前記誤り検出符号が前記ユーザ・データ符号列の最後に付加されるものであって、前記第１の順序とは異なる順序で読み出した場合には前記誤り検出符号が前記ユーザ・データ符号列の読み出し途中に付加される構成を有する演算対象セクタを含み、
前記ユーザ・データ符号列の誤りを検出する誤り検出符号を算出する誤り検出符号算出回路と、
前記誤り検出符号算出回路が算出した誤り検出符号及びユーザ・データ符号列に基づきスクランブル処理された前記データ群を記録データとして出力するスクランブル処理部とを有し、
前記誤り検出符号算出回路は、
前記演算対象セクタの一部のユーザ・データから誤り検出符号中間値を算出する第１の演算部と、
前記演算対象セクタから前記一部を除いた残りのユーザ・データ及び前記第１の演算部により演算された前記誤り検出符号中間値から誤り検出符号を算出する第２の演算部とを有し、
前記第２の演算部は、前記第１の順序とは異なる順序で前記演算対象セクタに含まれるユーザ・データ符号列を読み出した際に付加するための前記誤り検出符号を算出する記録装置。
【請求項２４】
前記スクランブル処理部は、
前記誤り検出符号算出回路にて算出された誤り検出符号を前記ユーザ・データ符号列に付加する統合部と、
前記統合にて統合された誤り検出符号付きデータをスクランブル処理するスクランブル回路と
を有することを特徴とする請求項２３記載の記録装置。
【請求項２５】
前記データ群は、Ｋ行×Ｌ列（Ｋ、Ｌは整数）からなるブロックからなり、
前記第１の順序は、前記ブロックの列方向に対応したユーザ・データの符号化順序であり、
前記記録データは、前記第１の順序とは異なる第２の順序を有し、
前記スクランブル回路にてスクランブル処理されたスクランブル済みデータを前記第２の順序で出力するための置き換えバッファを更に有する
ことを特徴とする請求項２４記載の記録装置。
【請求項２６】
前記スクランブル処理部は、
前記ユーザ・データ符号列をスクランブル処理する第１のスクランブル回路と、
前記誤り検出符号をスクランブル処理する第２のスクランブル回路と、
前記第１のスクランブル回路にてスクランブル処理されたユーザ・データ符号列に前記第２のスクランブル回路にてスクランブル処理された誤り検出符号を付加する統合部と
を有することを特徴とする請求項２３記載の記録装置。
【請求項２７】
前記データ群は、Ｋ行×Ｌ列（Ｋ、Ｌは整数）からなるブロックからなり、
前記第１の順序は、前記ブロックの列方向に対応したユーザ・データの符号化順序であり、
前記記録データは、前記第１の順序とは異なる第２の順序を有し、
前記第１のスクランブル回路にてスクランブル処理されたユーザ・データ符号列を前記第２の順序で出力するための置き換えバッファを有し、
前記統合部は、前記置き換えバッファからスクランブル処理したデータを前記第２の順序で受け取り、前記第２のスクランブル回路から、前記第２の順序で受け取ったスクランブル処理したユーザ・データ符号列にスクランブル処理した誤り検出符号を付加して前記記録データを出力する
ことを特徴とする請求項２６記載の記録装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、光ディスクにデータを記録する際の記録速度の向上を図った誤り検出算出回路、誤り検出算出方法及び記録装置に関する。
【背景技術】
【０００２】
ＣＤ、ＣＤ−Ｒ／ＲＷ、ＣＤ−ＲＯＭなどのいわゆる第１世代の光ディスク、ＤＶＤ（Digital Versatile Disc）などのいわゆる第２世代光ディスクに次いで、光源波長を４０５ｎｍ（青紫色）に短波長化したいわゆる第３世代光ディスクと呼ばれるブルーレイディスクが開発されている。ブルーレイディスクは、光源波長の短波長化の他、対物レンズの開口数ＮＡ（numerical aperture）を０．８５に高め、ビーム・スポット面積をＤＶＤに比して１／５程度に縮めることで、ＤＶＤの約５倍の面記録密度で記録マークを読み書き可能となっている。さらに、ディスク基板上に相変化記録層を設け、この上に０．１ｍｍの透明なカバー層で覆うことでディスクとレーザ光の光軸との相対的な傾きによる収差を低減する構造が取られている。
【０００３】
ブルーレイディスクのデータ構成は規格により以下のように定められている。図２９は、ブルーレイディスクのデータ構成を説明する図である。ブルーレイ規格においては、ディスク３０１には、記録データがＲＵＢ（Recording Unit Block）３０２と呼ばれる単位を１記録単位として記録される（以下クラスタともいう）。ＲＵＢ３０２は、ランイン（Run-in）３０３、ランアウト（Run-out）３０５と呼ばれるデータ上書きのためのバッファ領域、ギャップ領域と、これらの領域間に配置されるフィジカルクラスタ（Physical Cluster）３０４とからなる。ランイン３０３は２７６０ｃｂｓ（channel bits）、ランアウト３０５は１１０４ｃｂｓからなり、フィジカルクラスタ３０４は１９３２ｃｂｓ×４９６ｆｒａｍｅｓ＝９５８２７２ｃｂｓからなる。ランイン３０３及びランアウト３０５を合わせると２フレーム（後述するレコーディング・フレーム（Recording Frame））分のチャネルビット長となる。フィジカルクラスタ３０４は、ユーザ・データ、及びディスクのアドレス情報などを含むＢＩＳ（Burst indicator subcode）からなる。
【０００４】
フィジカルクラスタ３０４は、４９６のレコーディング・フレーム３０６から構成される。各レコーディング・レーム３０６の先頭にはシンク領域（frame sync）が配置される。こうして、フィジカルクラスタ３０４を構成する４９６のレコーディング・フレームと、ランイン３０３及びランアウト３０５の２フレームとを合わせた４９８フレームから１ＲＵＢ３０２が構成される。
【０００５】
レコーディング・フレーム３０６は１９３２チャネルビットで構成され、１−７ＰＰ（Parity Preserve/Prohibit RMTR）変調されている。これを復調した復調後のデータから、ＤＳＶ（Digital Sum Value）制御（dc-control）ビットが削除されて、ＥＣＣクラスタが得られる。
【０００６】
図３０は、ＥＣＣクラスタのフォーマットを示す模式図である。ＥＣＣクラスタ４０１には、４９６フレームからなり、ユーザ・データ４０２、ＥＣＣパリティ４０４とＢＩＳ４０３とが含まれる。ユーザ・データ４０２、ＥＣＣパリティ４０４を抜き出したものが、ＬＤＣ（long distance code）クラスタであり、４９６フレームのうち６４フレームがＥＣＣパリティ４０４である。また、ＢＩＳ４０３を抜き出したものがＢＩＳクラスタとなる。
【０００７】
ＢＩＳクラスタは、ディスクのアドレス情報を含む。ＢＩＳクラスタのアドレス情報（９ｂｙｔｅ）は、ＥＣＣクラスタの４９６フレームが１６分割され、３１フレーム毎のアドレスユニット（Address Unit）とされた当該アドレス・ユニット毎に割り当てられる。ＢＩＳとしては３フレームで９ｂｙｔｅｓ（１フレーム当たり３ｂｙｔｅｓ）揃うが、アドレスは最初の４ｂｙｔｅｓに含まれる。したがって、各アドレス・ユニットの最初の２フレームを取得することで、各アドレス・ユニットのアドレス情報（アドレス・ユニット・ナンバ）を得ることができる。ＢＩＳクラスタは、デ・インタリーブされることでＢＩＳブロックと呼ばれるフォーマットとなる。また、ＬＤＣクラスタもデ・インタリーブされることで、ＬＤＣブロックと呼ばれるフォーマットとなる。
【０００８】
図３１はＬＤＣブロック５０１を示す模式図である。このＬＤＣブロックは、図３０に示すＥＣＣクラスタからユーザ・データ４０２、ＥＣＣパリティ４０４部分を抜き出し、横方向（１フレーム）１５２ｂｙｔｅ、縦方向４９６フレームとなったデータについてデ・インタリーブされたものである。デ・インタリーブは、２段階で行なわれる。先ず、２フレーム毎に、シフト量を３バイトずつ増加させて紙面右方向にローテーションする。次に偶数フレームの各バイトを奇数フレームの各バイト間に挿入する。これにより、横方向（１フレーム）が２倍の３０４ｂｙｔｅ、縦方向が半分の２４８バイトからなるデータとすることで完了する。
【０００９】
図３１において、ＬＤＣブロック５０１のうちＥＣＣパリティ５０３を除いた部分がデータ・ブロック（data block）５０２とよばれ、１データ・ブロックは、３２セクタ（Ｓｅｃ０〜Ｓｅｃ３１）で構成される。１セクタは２０４８ｂｙｔｅｓのユーザ・データ５０４と４ｂｙｔｅｓのＥＤＣ（error detecting code）５０５の２０５２ｂｙｔｅｓからなる。記録を行うデータの並び順方向をレコーディング・フレーム方向Ｐとし、ユーザ・データとしての並び順方向をユーザ・データ方向Ｑとすると、レコーディング・フレーム方向Ｐは紙面横方向（行方向）、ユーザ・データ方向Ｑは紙面縦方向（列方向）となり、データの記録方向とユーザ・データの並び順は、異なる方向となっている。
【００１０】
１セクタは、ユーザ・データ方向Ｑに、２１６ｂｙｔｅｓのユーザ・データが折り返して配置される。すなわち、ユーザ・データ５０４は１列（２１６ｂｙｔｅｓ）毎にレコーディング・フレーム方向Ｐに順に配列される構造となっている。よって、２０５２ｂｙｔｅｓの１セクタＳｅｃは、ユーザ・データ方向Ｑに９列と１／２列から構成される。４ｂｙｔｅｓのＥＤＣ５０５は各セクタＳｅｃにおいて２０４８ｂｙｔｅｓのユーザ・データ５０４の最後に配置されるため、最初のセクタのセクタ番号を０（Ｓｅｃ０）とすると、偶数番号セクタのＥＤＣ５０５は、２４８バイトの途中の位置に存在することとなる。
【００１１】
図３２は、ユーザ・データとアドレス情報とからＲＵＢを生成するまでの各データのエンコード順序を示す図である。ＬＤＣクラスタとＢＩＳクラスタとは別々に生成される。ＬＤＣクラスタは以下のように生成される。すなわち、ユーザ・データＢ１にＥＤＣが付加されて（Ｃ１）データ・フレームＢ２とされる。ＥＤＣ付加処理は、セクタＳｅｃ毎に行われ、１セクタ分のデータをユーザ・データ方向Ｑに所定の演算を施すことでＥＤＣが付加された状態のセクタＳｅｃを得ることができる。
【００１２】
ＥＤＣが付加されたＥＤＣ付加データ（Data Frame）Ｂ２にスクランブル処理を施して（Ｃ２）スクランブル済データ（Scrambled Data Frame）Ｂ３とする。スクランブル処理は、ＥＤＣが付加された１セクタ、２０５２ｂｙｔｅｓのデータを、ユーザ・データ方向Ｑの順に所定の演算を施すことで行なわれる。そして、このスクランブル済データＢ３を行列再配置し（Ｃ３）データ・ブロックＢ４とする（Ｃ４）。次に、データ・ブロックＢ４に対し、ＥＣＣパリティを付加して（Ｃ４）ＬＤＣブロックＢ５を生成し、これにインタリーブを施して（Ｃ５）ＬＤＣクラスタＢ６を得る。
【００１３】
一方、ＢＩＳクラスタの生成においては、先ず、ユーザ・コントロール・データＢ８をインタリーブし（Ｃ６）、アドレス・ユニット・ナンバＢ７にＥＣＣを付加してインタリーブし（Ｃ７）、これらのデータからアクセス・ブロック（Access Block）Ｂ９を生成する。このアクセス・ブロックＢ９にＢＩＳ  ＥＣＣを付加して（Ｃ８）ＢＩＳブロックＢ１０を生成し、これにインタリーブを施して（Ｃ９）ＢＩＳクラスタＢ１１を得る。
【００１４】
そして、ＬＤＣクラスタＢ６及びＢＩＳクラスタＢ１１を結合して（Ｃ１０）ＥＣＣクラスタＢ１２とし、このＥＣＣクラスタＢ１２に同期信号（frame sync）及びＤＳＶ制御ビットを付加して（Ｃ１１）フィジカルクラスタＢ１３を生成する。このフィジカルクラスタＢ１３に対し、ランイン及びランアウトを付加し、更に１−７ＰＰ変調を施す（Ｃ１２）ことで、４９５のレコーディング・フレームＢ１４３とその前後にランインＢ１４１及びランアウトＢ１４２が配置されたＲＵＢ（Ｂ１４）を生成する。
【００１５】
このようにフォーマットされたブルーレイディスクの再生装置が特許文献１に開示されている。図３３は、特許文献１に記載の従来の再生装置を示すブロック図である。ディスク７０１は、記録及び再生動作時においてスピンドルモータ７５２によって一定線速度（ＣＬＶ）で回転駆動される。そして光学ピックアップ（光学ヘッド）７５１によってディスク７０１へのデータの記録又はディスク７０１からのデータの再生が行われる。
【００１６】
ピックアップ７５１は、レーザ光源となるレーザダイオード、反射光を検出するためのフォトディテクタ、及びレーザ光の出力端となる対物レンズを有し、レーザ光を対物レンズを介してディスク記録面に照射し、その反射光をフォトディテクタに導く光学系（図示せず）が形成される。このピックアップ７５１は、スレッド機構７５３によりディスク半径方向に移動可能とされる。レーザダイオードは、波長４０５ｎｍのいわゆる青色レーザを出力する。また光学系によるＮＡは０．８５であり、レーザドライバ７６３からのドライブ信号（ドライブ電流）によってレーザ発光駆動される。ディスク７０１からの反射光情報はフォトディテクタによって検出され、受光光量に応じた電気信号とされてマトリクス回路７５４に供給される。
【００１７】
マトリクス回路７５４には、フォトディテクタとしての複数の受光素子からの出力電流に対応して電流電圧変換回路及びマトリクス演算／増幅回路等を備え、マトリクス演算処理により必要な信号を生成する。例えば再生データに相当する高周波信号（再生データ信号）、サーボ制御のためのフォーカスエラー信号、トラッキングエラー信号、及びグルーブのウォブリングに係る信号としてプッシュプル信号等を生成する。
【００１８】
マトリクス回路７５４から出力される再生データ信号はリード／ライタ回路（ＲＷ回路）７５５へ、フォーカスエラー信号及びトラッキングエラー信号はサーボ回路７６１へ、ウォブリンググルーブの検出情報であるプッシュプル信号はウォブル回路７５８へ、それぞれ供給される。
【００１９】
ディスク７０１がリライタブルディスクの場合において、グルーブのウォブリングに係る信号としてマトリクス回路７５４から出力されるプッシュプル信号は、ウォブル回路７５８において処理される。ＡＤＩＰ情報としてのプッシュプル信号は、ウォブル回路７５８においてＭＳＫ復調、ＨＭＷ復調され、ＡＤＩＰアドレスを構成するデータストリームに復調されてアドレスデコーダ７５９に供給される。アドレスデコーダ７５９は、ウォブル回路７５８から供給されるウォブル信号をＰＬＬ回路に入力してクロックを生成し、例えば記録時のエンコードクロックとして各部に供給する。
【００２０】
ここで、記録時においては、ＡＶシステム７２０から記録データが転送され、ＥＣＣ／スクランブル回路７５７のメモリに送られてバッファリングされる。この場合ＥＣＣ／スクランブル回路７５７は、バファリングされた記録データのエンコード処理として、エラー訂正コード付加やスクランブル処理、サブコード等の付加を行う。ＥＣＣエンコード処理及びＥＣＣデコード処理は、ＲＳ（２４８，２１６，３３）、符号長２４８、データ２１６、ディスタンス３３のＲＳ（reed solomon）コードを用いたＥＣＣフォーマットに対応する処理となる。またＥＣＣエンコード及びスクランブル処理されたデータは、変復調回路７５６においてＲＬＬ（１−７）ＰＰ方式の変調が施され、リーダ／ライタ回路７５５に供給される。記録時においてこれらのエンコード処理のための基準クロックとなるエンコードクロックは上述のウォブル信号から生成したクロックを用いる。
【００２１】
エンコード処理により生成された記録データは、リーダ／ライタ回路７５５で記録調整処理として、記録層の特性、レーザ光のスポット形状、記録線速度等に対する最適記録パワーの微調整やレーザドライブパルス波形の調整などが行われた後、レーザドライブパルスとしてレーザドライバ７６３に送られる。レーザドライバ７６３では供給されたレーザドライブパルスをピックアップ７５１内のレーザダイオードに供給し、レーザ発光駆動を行う。これによりディスク７０１に記録データに応じたピット（フェイズチェンジマーク）が形成されることになる。
【００２２】
スピンドルサーボ回路７６２はスピンドルモータ７５２をＣＬＶ回転させる制御を行う。スピンドルサーボ回路７６２は、ウォブル信号に対するＰＬＬ処理で生成されるクロックを、現在のスピンドルモータ７５２の回転速度情報として獲得し、これを所定のＣＬＶ基準速度情報と比較することで、スピンドルエラー信号を生成する。
【００２３】
以上のようなサーボ系及び記録再生系の各種動作はマイクロコンピュータによって形成されたシステムコントローラ７６０により制御される。システムコントローラ７６０は、ＡＶシステム７２０からのコマンドに応じて各種処理を実行する。例えばＡＶシステム７２０から書込命令（ライトコマンド）が出されると、システムコントローラ７６０は、まず書き込むべきアドレスにピックアップ７５１を移動させる。そしてＥＣＣ／スクランブル回路７５７、変復調回路７５６により、ＡＶシステム７２０から転送されてきたデータ（例えばＭＰＥＧ２などの各種方式のビデオデータや、オーディオデータ等）について上述したようにエンコード処理を実行させる。そして上記のようにリーダ／ライタ回路７５５からのレーザドライブパルスがレーザドライバ７６３に供給されることで、記録が実行される。なお、これらのデータの記録時や再生時には、システムコントローラ２６０は、アドレスデコーダ７５９によって検出されるＡＤＩＰアドレス、或いはＢＩＳに含まれるアドレスを用いてアクセスや記録再生動作の制御を行う。
【００２４】
この特許文献１に記載の技術においては、ブルーレイディスクのリンキングデータ（ランイン及びランアウト）をメインデータ（ユーザ・データ）と同様の方法でスクランブルすることで、ＲＡＭ互換に優れ、トラッキングサーボにも有利となるＲＯＭ媒体等の提供を図ったものである。
【特許文献１】特開２００４−１９２７４９号公報
【非特許文献１】「次世代光ディスク  解体新書」，日経エレクトリニクス  ブックス，２００３年１０月７日
【発明の開示】
【発明が解決しようとする課題】
【００２５】
ところで、上述のようなフォーマットを有するブルーレイディスクにおいては、データの記録方向はレコーディング・フレーム方向Ｐであり、この方向Ｐの順にデータを変調する必要がある。すなわち、少なくとも変調前までには、データの並び順をユーザ・データ方向Ｑからレコーディング・フレーム方向Ｐの順に並び替えて出力することが必要となる。
【００２６】
しかしながら、上述したＥＤＣ５０５は、図３１に示すように、各セクタの最後に付加される構成を有する。したがって、偶数セクタにおいては、ＥＤＣ５０５は、ユーザ・データ方向Ｑにおいて、２１６バイトからなる１列の途中に配置される構成を有する。よって、ＥＤＣ付加データを例えばレコーディング・フレーム方向Ｐにデータを転送しようとすると、偶数セクタにおいては、全てのユーザ・データの転送が終了する前にＥＤＣを転送しなければならないことになる。すなわち、ＥＤＣ５０５が配置される行以降の例えばＤ４３１、Ｄ１０７などユーザ・データが転送される前にＥＤＣ５０５を付加しなくてはならないが、ＥＤＣ５０５は、１セクタの全ユーザ・データに対して所定の演算を行なって得るものであるため、セクタにおけるユーザ・データが全て揃わない状態でＥＤＣ５０５を求めることは通常は不可能である。
【００２７】
したがって、一旦ユーザ・データ方向Ｑの順のデータを全部読み出し予めＥＤＣを求めておく処理が必要になるが、このような方法では記録順序に出力する際に再度ユーザ・データを読み出す必要があり、高倍速記録が困難になるという問題点がある。
【００２８】
すなわち、データ・バッファに対して、ＥＤＣの演算のためと、記録順序に並び変えるための少なくとも２回のアクセスが必要となり、誤り検出符号生成のために発生するデータ・バッファへのアクセスがデータ・バッファに対するメモリ・アクセスのスループットを下げてしまうこととなる。
【課題を解決するための手段】
【００２９】
本発明にかかる誤り符号算出回路は、第１の順序を有するユーザ・データ符号列の誤りを検出する誤り検出符号を算出する誤り検出符号算出回路であって、ユーザ・データ符号列を含むセクタを２以上有するデータ群を処理単位とし、前記データ群は、前記第１の順序で読み出した場合には前記誤り検出符号が前記ユーザ・データ符号列の最後に付加されるものであって、前記第１の順序とは異なる順序で読み出した場合には前記誤り検出符号が前記ユーザ・データ符号列の読み出し途中に付加される構成を有する演算対象セクタを含み、前記演算対象セクタの一部のユーザ・データから誤り検出符号中間値を算出する第１の演算部と、前記演算対象セクタから前記一部を除いた残りのユーザ・データ及び前記第１の演算部により演算された前記誤り検出符号中間値に基づき誤り検出符号を算出する第２の演算部とを有し、前記第２の演算部は、前記第１の順序とは異なる順序で前記演算対象セクタに含まれるユーザ・データ符号列を読み出した際に付加するための前記誤り検出符号を算出するものである。
【００３０】
エンコードするデータが、第１の順序とは異なる順序で読み出された場合には誤り検出符号（ＥＤＣ）がその途中に挿入される構成の演算対象セクタを有する場合、異なる順序でデータ群にＥＤＣを付加して転送する場合には、演算対象セクタについては、ユーザ・データ符号列全部を転送する前に誤り検出符号の算出を終了する必要がある。よって、ユーザ・データ符号列の全部から誤り検出符号を予め算出しておき、前記異なる順序でユーザ・データを転送する際に予め算出しておいた誤り検出符号を付加することが考えられる。これに対し、本発明においては、第１の演算部及び第２の演算部が演算対象セクタのそれぞれ一部と残部についての演算を実行する。第２の演算部において異なる順序で読み出す際に誤り検出符号の一部の演算を行なうようにしたので、第１の演算部において符号列全体についての演算をする必要がなくなり、これにより符号列の一部へのアクセスのみとなり、データ・バッファへのアクセス量を削減することができる。
【発明の効果】
【００３１】
本発明によれば、ユーザ・データの誤りを検出する誤り検出符号を算出する際のデータ・バッファへのアクセス量を低減することができる誤り検出符号算出回路、誤り検出符号算出方法及び記録装置を提供することができる。
【発明を実施するための最良の形態】
【００３２】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。この実施の形態は、本発明を、光ディスクにおける高倍速記録を可能とするエンコード装置及び記録装置に適用したものである。なお、以下の説明においては、光ディスクの一例として、ブルーレイディスクを例にとり、必要に応じてブルーレイ規格の物理仕様に準じたエンコード処理を実行するものとして説明するが、本発明にかかるエンコード装置及び記録装置は、ブルーレイディスクに限らず、エンコード順序と記録順序とが異なるような他のディスクの記録装置等に適用することが可能である。
【００３３】
図１は、ブルーレイディスクにおけるデータ・ブロックのバイト単位のデータの並び順を説明する図である。また、図２は、２つのセクタＳｅｃ０、Ｓｅｃ１を拡大して示す図である。図中に示す数値は、バイト単位のユーザ・データ方向Ｑの順を示す。データ・ブロック４１は、３０４列２１６行からなる。データ・ブロック４１は、３２個のセクタにより構成される。１つのセクタは、２０４８ｂｙｔｅｓのユーザ・データに４ｂｙｔｅｓのＥＤＣが付加された２０５２バイトのデータからなる。
【００３４】
各セクタは、列方向に２１６バイトのデータが折り返し３０４列並べられたブロックデータとなっている。Ｒｏｗ（０≦Ｒｏｗ≦２１５）を行番号、Ｃｏｌｕｍｎ（０≦Ｃｏｌｕｍｎ≦３０３）を列番号とすると、例えばセクタＳｅｃ０においては、Ｃｏｌｕｍｎ＝９は、Ｑ＝１９４４〜２０５１のバイトデータとなり、Ｒｏｗ＝１０７までとなる。Ｒｏｗ＝１０８〜２１５は次のセクタＳｅｃ１のＱ＝０〜１０７のバイトデータが配置される。このように、データ・ブロック４１は、偶数番目のセクタ（偶数セクタ）と奇数番目のセクタ（奇数セクタ）とを１つの単位（以下、エリアともいう）、すなわち、１９列からなる２つのセクタからなるエリア毎に同じ順序で繰り返し配置されている。
【００３５】
セクタＳｅｃ０〜セクタＳｅｃ３１は、図１及び図２に示すユーザ・データ方向Ｑの順序に所定の演算を施すことでＥＤＣが付加され、スクランブルされた後、変調等が施されてディスクに記録されるが、この記録の際には、データ・ブロックは、図１中に矢印で示すレコーディング・フレーム方向Ｐの順に記録されることとなり、ユーザ・データ方向Ｑの列方向とは直交する方向となる。ユーザ・データ方向Ｑは、ブルーレイディスクにおける誤り検出符号付加の際の処理順序及びスクランブル処理の際のエンコード処理順序の方向となっている。なお、後述するように、ユーザ・データとＥＤＣとを別々にスクランブルしてから統合するようにすることも可能である。
【００３６】
上述したように、ブルーレイディスクでは、レコーディング・フレーム方向Ｐの順にデータが記録されるため、変調前までにエンコードの処理順序のユーザ・データ方向Ｑの順のデータをレコーディング・フレーム方向Ｐの順に並び変える必要がある。そこで、エンコードをレコーディング・フレーム方向Ｐの順に実行しようとすると、図１に示すように、ＥＤＣは偶数セクタにおいては、全セクタのユーザ・データを読み出す前にＥＤＣを付加する構成となっており、ＥＤＣはセクタの全ユーザ・データから算出されるものであるためＥＤＣを算出することができず、よってＥＤＣを付加したデータを生成することができない。
【００３７】
したがってこのブルーレイディスクのように、ユーザ・データの並び順（通常の符号化順序）であるユーザ・データ方向Ｑと、ディスクのデータ記録順序であるレコーディング・フレーム方向Ｐとが異なる場合には、通常であれば、予めＥＤＣ等の演算をし、ＥＤＣを付加してからデータを並べ直し記録する必要がある。このような場合、通常はＥＤＣ付加後のデータを一旦データ・バッファに格納することでデータの並び替えを可能とするが、高速動作を可能とするためには、このデータ・バッファを高価なＳＲＡＭにて構成する必要があり、現実的ではなかった。
【００３８】
これに対し、本願発明者等は先に出願した特願２００５−０６０３６４号（以下、参照例という。）において、１回のバースト転送等の転送サイズｍ×３０４ｂｙｔｅｓ×２面（書き込み用及び読み出し用）の記憶容量を有する置き換えバッファ、ＥＣＣパリティを一時保持するＥＣＣバッファ（９７２８ｂｙｔｅｓ×２面）、ＥＤＣコードを一時保持するＥＤＣバッファ（４ｂｙｔｅｓ×３２×２面）、スクランブル・バッファ（３８ｂｙｔｅｓ×２面）を設け、ユーザ・データ方向Ｑでのエンコードで得られるＥＤＣ、スクランブル中間値、及びＥＣＣを予め一時保持しておく処理（パスＳ１'）と、データ・バッファからユーザ・データを繰り返しバースト転送しながらユーザ・データにＥＤＣを付加してスクランブルする処理（パスＳ２'）とにより置き換えバッファに対する高速データ転送を可能とする発明を開示している。
【００３９】
上記参照例においては、置き換えバッファをリフレッシュ動作が不要であってランダムアクセスが可能なメモリから構成することで、データ・バッファからバースト転送により得た連続したデータをレコーディング・フレーム方向Ｐの順に高速置き換えが可能となる。この場合、置き換えバッファは、データ・バッファの記憶容量より小さい容量としても、パスＳ１'にて演算し保持されているＥＤＣ、スクランブル中間値、及びＥＣＣを使用して演算結果を使用することで、レコーディング・フレーム方向Ｐの順に置き換えられたデータに対しスクランブル処理を実行することができる。
【００４０】
そして、このことにより、従来では、高価なＳＲＡＭなどの高速にランダムアクセス可能な一時記憶装置をデータ・バッファとして使用しない限り高倍速記録でのエンコード処理を実現できなかったのに対し、上記発明においては、データ・バッファとして高速ランダムアクセスには不向きな安価なＳＤＲＡＭ等を用いながらも、比較的小規模な回路の追加によって低コストでかつ高倍速記録が可能なエンコード処理を可能とするものである。
【００４１】
ここで、データ・バッファには、１クラスタのエンコードに対して、符号化のため及び並び替えのために２クラスタのデータを読み込む必要がある。レコーディング・フレーム方向Ｐにて記録するためには、ＥＤＣエンコードのためだけに予めユーザ・データ方向Ｑに１クラスタ分のデータ（２０４８ｂｙｔｅ×３２セクタ）を読み込む必要があり、データ・バッファに対する絶対アクセスの増加により消費電力が増大する。
【００４２】
高倍速エンコード実現のためには、高周波数動作クロックで駆動するコスト高のデータ・バッファが必要となり、更に電力消費量が増大する。そこで、本発明の実施の形態においては、第１の順序としてのユーザ・データ方向Ｑの順で読み出した場合にはＥＤＣがセクタの最後に付加され、ユーザ・データ方向Ｑとは異なる例えばレコーディング・フレーム方向Ｐの順序で読み出した場合にはセクタの読み出し途中にＥＤＣが付加される構成を有する演算対象セクタとしての偶数セクタについては、その一部としての後半部分から後述するＥＤＣ中間値を算出する第１の演算部と、前記一部を除いた残部及びＥＤＣ中間値とからＥＤＣを算出する第２の演算部とを設け、２つの演算部によりＥＤＣを算出するようにして、データ・バッファへのデータアクセス量を低減させる。このことにより、エンコードスペックの更なる向上を可能とすると共に低消費電力化及び低コスト化を図る。
【００４３】
なお、実施の形態においては、特にユーザ・データのエンコード処理、ブルーレイディスクにおいては、上述したユーザ・データから少なくともＥＤＣを生成して付加するまでの処理に特徴を有する記録装置として説明するが、例えば再生装置と組み合わせて記録再生装置とすることもできる。
【００４４】
先ず、本願発明の理解を容易とするため、上記参照例に記載の誤り検出符号算出方法について説明しておく。図３は、参照例に記載の記録装置のうち、誤り検出符号を算出する部分のみを抽出して示す図である。
【００４５】
この参照例においては、誤り符号をブルーレイ規格に沿った方法にて算出する工程（パス１'）と、誤り符号を付加して出力する工程（パス２'）とを有する。パス２'では、バースト転送サイズｍのユーザ・データ方向Ｑのデータを、レコーディング・フレーム方向Ｐに順次バースト転送し、パス１'にて予め算出したＥＤＣを付加して出力する。
【００４６】
すなわち、図３に示すように、参照例においては、ユーザ・データを格納するデータ・バッファ１１と、バッファ・コントローラ１２と、ＥＤＣ生成部１３と、ＥＤＣバッファ１４と、統合部１５とを有する。なお、以下の説明においては、ユーザ・データ方向Ｑの順のアドレスが小さい順を先頭とし、ユーザ・データの先頭データからデータ・バッファ１１に一時保持されるものとして説明する。データ・バッファ１１は、ホストから送られるユーザ・データを保存するメモリであって、例えばバースト転送可能なＳＤＲＡＭ等から構成される。バッファ・コントローラ１２は、パス１'にて使用するユーザ・データを読み出すチャンネルＣＨ１と、パス２'にて使用するユーザ・データを読み出すチャンネルＣＨ２とを有する。
【００４７】
データ・バッファ１１からチャンネルＣＨ１によりユーザ・データ方向Ｑの順に読み出されたユーザ・データは、ＥＤＣ生成部１３に送られる。ＥＤＣ生成部１３は、ユーザ・データ方向Ｑに２０４８ｂｙｔｅｓのユーザ・データ及び４ｂｙｔｅｓの０データ（１セクタに相当するデータ）を入力することで、４ｙｔｅｓのＥＤＣを生成するシフト・レジスタからなる。生成されたＥＤＣは、ＥＤＣバッファ１４に格納される。
【００４８】
パス２'においては、データ・バッファ１１からユーザ・データ方向Ｑの順に読み出されたユーザ・データは、チャンネルＣＨ２によりユーザ・データ方向Ｑの順のバースト転送サイズのデータがレコーディング・フレーム方向Ｐの順に、統合部１５に順次転送される。すなわち、３２セクタからなるユーザ・データ（データ・ブロック４１）は、ユーザ・データ方向Ｑの順のバースト転送サイズでレコーディング・フレーム方向に３０４回転送することを繰り返すことで転送される。本実施の形態においては、ユーザ・データ方向Ｑの順のバースト転送サイズｍ×３０４バイトを転送ブロックという。データ・ブロック４１は、バースト転送サイズｍ＝６とすると、転送ブロックを３６回繰り返すことで転送が終了する。
【００４９】
統合部１５は、転送ブロックを転送する際に、所定のタイミングでＥＤＣバッファ１４からＥＤＣを読み出してバースト転送されるユーザ・データに付加することでＥＤＣ付きデータを出力する。
【００５０】
なお、このＥＤＣ付きデータは、その後スクランブルされ、記録データとして出力される。その詳細は上記参照例に記載されているが、簡単には、転送ブロック以上の記憶容量を有するバッファ（置き換えバッファ）にＥＤＣ付きデータを保持し、それをレコーディング・フレーム方向に読み出し出力する。そして、レコーディング・フレーム方向のＥＤＣ付きデータをスクランブルして記録データとして出力する。このスクランブルの際には、パス１'にＥＤＣと共に求めておいたスクランブル中間値を使用する。
【００５１】
パス１'においては、統合部１５を介してＥＤＣ付加データをユーザ・データ方向Ｑの順に１バイトずつスクランブル回路に入力され、この入力データＤｋの入力タイミングで、スクランブル用シフト・レジスタからスクランブル値Ｓｋを出力し、入力データＤｋとの排他的論理和を求めるとスクランブル済データＤｋ'が得られる。このパス１'において、スクランブル回路がスクランブル値を求めたスクランブル用シフト・レジスタの保持値（１６ｂｉｔｓ）を、スクランブル・バッファにスクランブル中間値として保持しておく。この１６ｂｉｔｓのスクランブル中間値によりパスＳ２において、ユーザ・データ方向Ｑではなく、レコーディング・フレーム方向のスクランブル値を算出することができ、スクランブル処理を実行することができる。
【００５２】
また、参照例においては、スクランブル中間値を求めた後、そのデータからＥＣＣを算出する。すなわち、パス１'において、ＥＤＣ及びスクランブル中間値の他、ＥＣＣを算出し、パス２'にて使用する。なお、後述するように、統合部１５から出力されるＥＤＣ付きデータをスクランブルしてから置き換えバッファに格納し、レコーディング・フレーム方向Ｐの順で記録データとして出力するようにしてもよい。
【００５３】
以上のように構成された参照例においては、パス１'においてＥＤＣを算出する際及びパス２'においてＥＤＣ付きデータを出力する際のいずれにおいても、バッファ・コントローラ１２は、データ・バッファ１１から１クラスタ（データ・ブロック）分のユーザ・データ、すなわち２０４８ｂｙｔｅ×３２セクタ分のユーザ・データを読み出す必要がある。結果、パス１'、パス２'において合計２データ・ブロックのユーザ・データを読み出す必要がある。そこで、以下の実施の形態においては、参照例のように２工程とした場合であっても、合計のユーザ・データの読み出し量を低減し、データ・バッファへのアクセス量を減らす。具体的には、最初の工程にて使用するユーザ・データを約１／４とし、その約１／４のユーザ・データに基づきＥＤＣ中間値を算出し、次の工程において残りのユーザ・データ（約３／４）及び前記ＥＤＣ中間値に基づきＥＤＣを算出する。このことにより、最初の工程におけるデータ・バッファへのアクセス量を約１／４に低減するものである。このようにデータ・バッファへのデータアクセス量を低減することで、エンコードスペックの更なる向上、低消費電力化及び低コスト化を図る。
【００５４】
実施の形態１．    
図４は、本発明の実施の形態１にかかる記録装置を示す模式図である。図４に示すように、本記録装置１は、データ・バッファ２と、バッファ・コントローラ３と、エンコード回路４とを有する。データ・バッファ２は、ホスト（不図示）から転送されるユーザ・データをバッファリングする。ホストは、例えばＡＶ（audio- visual）システム又はパーソナル・コンピュータ（ＰＣ）等であって、記録装置１に対し、ユーザ・データの記録を指示したり、ディスクに記録されているデータの読み出し指示をするものである。
【００５５】
バッファ・コントローラ３は、データ・バッファ２からのユーザ・データの読み出しを制御するもので、必要なユーザ・データを適宜読み出しエンコード回路４に転送する。ここで、本実施の形態における記録装置は、ＥＤＣを求めるため、偶数セクタの後半部分のみ、すなわちデータ・ブロック全体でみた場合、約１／４のユーザ・データからＥＤＣ中間値を算出する処理（以下、パス１という。）と、残りの約３／４のユーザ・データ及びＥＤＣ中間値からＥＤＣを算出する処理（以下、パス２という。）を並列して実行する。このため、バッファ・コントローラ３は、データ・バッファ２からパス１の処理に使用するためのユーザ・データを読み出し出力するチャンネルＣＨ１と、パス２の処理に使用するためのユーザ・データを読み出し出力するチャンネルＣＨ２を有する。
【００５６】
エンコード回路４は、ユーザ・データにＥＤＣを付加し、ＥＤＣが付加されたユーザ・データをスクランブルする。そして、スクランブルしたスクランブル済データ（以下、記録データという。）と、この記録データから得られるＥＣＣとを出力する。ＥＣＣ及び記録データは、ＢＩＳコードと統合され、更に１−７ＰＰ変調が施され、その後ディスクに記録される。
【００５７】
このエンコード回路４は、上記パス１の処理を実行するための、第１の演算部としてのＥＤＣ生成部３１と、ＥＤＣテーブル３２及びＥＤＣバッファ３３とを有する。また、パス２において、ＥＤＣを算出するために、第２の演算部としてのＥＤＣ生成部３４を有する。パス１の処理においては、ＥＤＣ生成部３１はＥＤＣテーブル３２及びＥＤＣバッファ３３を参照して演算を行なう。ここで、ＥＤＣ生成部３１がパス１において演算した結果が後述するＥＤＣ中間値となる。このＥＤＣ中間値はＥＤＣバッファ３３に書き戻される。パス２の処理においては、ＥＤＣ生成部３４はＥＤＣテーブル３２及びＥＤＣバッファ３３を参照し、ＥＤＣを算出して、ＥＤＣバッファ３３に書き戻す。
【００５８】
エンコード回路４は、更に、チャンネルＣＨ２から読み出されるユーザ・データにＥＤＣバッファ３３に格納されたＥＤＣを付加して出力する統合部３５を有する。また、統合部３５から出力されるＥＤＣ付きデータをスクランブルするスクランブル回路３６及びスクランブル回路３６がスクランブル処理の際に必要なスクランブル値を算出するスクランブル値生成部３７を有する。更に、スクランブル回路３６にてスクランブルされたスクランブル済データをレコーディング・フレーム方向Ｐの順に並び変えるための置き換えバッファ３８を有する。これら統合部３５、スクランブル回路３６、スクランブル値生成部３７、及び置き換えバッファ３８から、ユーザ・データ及びＥＤＣに基づき記録データを算出して出力するスクランブル処理部が構成される。
【００５９】
また、スクランブル済データからＥＣＣを生成するＥＣＣ生成部３９及びＥＣＣ生成部３９により生成されたＥＣＣをバッファリングするＥＣＣバッファ４０を有する。置き換えバッファ３８からレコーディング・フレーム方向Ｐの順で読み出されたデータは、記録データとして出力される。また、ＥＣＣバッファ４０のデータは、ＥＣＣパリティとして出力される。  この記録データとＥＣＣパリティは、図示せぬ統合部に出力され、記録データに対し行列再配置をし、ＥＣＣを付加してインタリーブをしてＥＣＣクラスタ（図３２のＤ１２参照）とする。
【００６０】
また、図示しないＢＩＳを生成する他のエンコード装置（ＢＩＳ用エンコード装置）において、ユーザ・コントロール・データ及びアドレス・ユニット・ナンバ（図３２のＤ７、Ｄ８参照）からアクセス・ブロック（図３２のＤ９参照）を生成し、またＢＩＳＥＣＣを生成する（図３２のＤ１０参照）。そして、当該ＢＩＳ用エンコード装置からのアクセス・ブロック及びＢＩＳＥＣＣも上記統合部へ供給され、ＢＩＳブロック（図３２のＤ１０参照）を生成し、更にこれをインタリーブしてＢＩＳクラスタ（図３２のＤ１１参照）とする。そして、ＬＤＣクラスタとＢＩＳクラスタとが結合されたＥＣＣクラスタ（図３２のＤ１２参照）が生成され、フレームシンク、ＤＳＶ制御ビットを付加したフィジカルクラスタ（図３２のＤ１３参照）とされる。そして、レコーディング・フレームを１−７ＰＰ変調すると共にランイン及びランアウトが付加されてレコーディングユニットブロックＲＵＢ（図３２のＤ１４参照）が生成され、ディスクコントローラを介してＲＵＢを１記録単位としてディスクへのデータ記録が実行される。
【００６１】
次に、本実施の形態について更に詳細に説明する。上述したように、本実施の形態においては、ユーザ・データを１セクタ読み出しＥＤＣを算出するのではなく、パス１において、約１／４のユーザ・データのＥＤＣ中間値を求め、パス２において残りユーザ・データに基づきＥＤＣ中間値を補正してＥＤＣを算出することでパス１におけるデータ・バッファ２へのアクセス量を約１／４まで減らすものである。
【００６２】
図５は、本実施の形態において、パス１、２に使用されるユーザ・データを説明するための図である。エンコード回路４の処理単位であるデータ・ブロック４１は、第１の順序としてのユーザ・データ方向Ｑの順に読み出した場合には、ＥＤＣがセクタの最後に付加され、ユーザ・データ方向Ｑとは異なる順序で読み出した場合、一のセクタの読み出し途中で付加される構成を有する演算対象セクタとしての偶数セクタを有する。本実施の形態においては、パス１では第１の順序としてユーザ・データ方向Ｑにデータ・ブロックを読み出す。一方、パス２においては、上記異なる順序として、ユーザ・データ方向Ｑの順のバースト転送サイズｍのユーザ・データをレコーディング・フレーム方向Ｐの順に読み出す。この場合、偶数セクタは、図５に示すように、セクタを全部転送する前にＥＤＣを付加する符号列（演算対象セクタ）となる。そこで、パス１においては、パス２においてこの演算対象セクタである偶数セクタの一部、すなわちＥＤＣを付加するタイミング以降に読み出すこととなってしまう偶数セクタの後半部分の演算を実行することでＥＤＣ中間値を求める。パス２においては、偶数セクタの残り及び奇数セクタの全部の演算を実行することで、ＥＤＣを算出する。奇数セクタは、ユーザ・データ方向Ｑの順に読み出した場合であっても、上記異なる順序としてユーザ・データ方向Ｑの順のバースト転送サイズｍのユーザ・データをレコーディング・フレーム方向Ｐの順に読み出した場合であっても、いずれにおいてもＥＤＣはセクタの最後に付加される構成を有する符号列（非演算対象セクタ）であるため、パス１で予めＥＤＣ中間値を求める必要はない。
【００６３】
なお、本実施の形態においては、ユーザ・データを６バイト毎にバースト転送する場合について説明しているが、上記異なる順序として、例えば１バイト毎にレコーディング・フレーム方向Ｐの順に転送するようにしてもよい。その場合、本実施の形態においては、ＥＤＣは４バイトであるため、偶数セクタのＥＤＣは、行番号Ｒｏｗ＝１０４〜１０７、列番号Ｃｏｌｕｍｎ＝９の位置となる。よって、パス２において行番号Ｒｏｗ＝１０４、列番号Ｃｏｌｕｍｎ＝９におけるＥＤＣの先頭バイトを算出するまでに、当該偶数セクタの全ユーザ・データについて後述する演算（期待値との排他的論理和）が終了している必要がある。このため、パス１において行番号Ｒｏｗ＝１０５〜２１５、列番号Ｃｏｌｕｍｎ＝０〜８のユーザ・データについての処理を行えばよい。バースト転送サイズが４バイト未満である場合、バースト転送サイズが４バイト以上であっても、２つの転送ブロックにまたがって転送されるような場合も同様である。すなわち、行番号Ｒｏｗ＝１０４、列番号Ｃｏｌｕｍｎ＝９、又は行番号Ｒｏｗ＝２１２、列番号Ｃｏｌｕｍｎ＝１８に配置されるＥＤＣの先頭バイトを演算するまでにセクタ内のユーザ・データ全ての期待値の排他的論理和が終了するようパス１の処理を実行しておく。なお、バースト転送するための、データ・バッファ２における先頭アドレスを算出して指定する方法等については後述する。
【００６４】
バッファ・コントローラ３のチャンネルＣＨ１は、パス１において、図５に示すように、データ・ブロック４１に含まれる偶数セクタの行番号Ｒｏｗ＝１０８〜２１５までのデータを、演算対象セクタの一部としてユーザ・データ方向Ｐの順に読み出し、ＥＤＣ生成部３１に出力する。すなわち、列番号Ｃｏｌｕｍｕｎ＝０、行番号Ｒｏｗ＝１０８〜２１５のユーザ・データを転送したら、次に列番号Ｃｏｌｕｍｕｎ＝１の行番号Ｒｏｗ＝１０８〜２１５を転送する。これを列番号Ｃｏｌｕｍｕｎ＝８まで繰り返す。チャンネルＣＨ１は、偶数セクタのユーザ・データのみを転送するため、列番号Ｃｏｌｕｍｕｎ＝８のデータを転送し終えたらセクタ１を飛ばし、セクタ２、すなわち列番号Ｃｏｌｕｍｕｎ＝１９〜２７までの行番号Ｒｏｗ＝１０８〜２１５のユーザ・データを転送する。これを繰り返し、最後の偶数セクタであるセクタ３０まで転送する。ＥＤＣ生成部３１は、この偶数セクタの後半部分の演算処理のみを実行する。
【００６５】
一方、パス２においては、バッファ・コントローラ３のチャンネルＣＨ２は、データ・ブロック４１の全部を読み出し出力するが、チャンネルＣＨ１と読み出し順が異なる。すなわち、チャンネルＣＨ２は、パス２において、バースト転送サイズｍのデータをバースト転送する。本実施の形態においては、バースト転送サイズｍ＝６として説明するが、６バイトより大きくても小さくてもよい。また、ＥＤＣ以上の大きさとすることが好ましい。
【００６６】
先ず、ユーザ・データ方向Ｑ（列方向）に６バイトのデータを、レコーディング・フレーム方向Ｐ（行方向）に１データ・ブロック分、すなわち３０４回繰り返し転送する。本実施の形態においては、このユーザ・データ方向Ｑの順に６バイト×レコーディング・フレーム方向Ｐの順に３０４回の転送で得られるデータを転送ブロックＣということとする。図６は、データ・ブロック４１における転送ブロックを示す図である。６バイト毎のバースト転送を行なうと、データ・ブロック４１を転送するには、３６の転送ブロックを転送することとなる。チャンネルＣＨ２は、６バイト毎のユーザ・データをバースト転送により統合部３５に供給すると共にＥＤＣ生成部３４にも供給する。ＥＤＣ生成部３４は、供給されるユーザ・データのうち、上記パス１でＥＤＣ生成部３１が演算処理した偶数セクタの後半部分のデータを除いた残り、すなわち偶数セクタの前半部分及び奇数セクタ全部のデータについての演算を実行する。
【００６７】
次に、本実施の形態にかかる記録装置１の動作の概略について説明する。図７は、パスＳ１及びパスＳ２におけるデータ処理タイミングを示す図である。図７に示すように、ディスク１０４には、記録単位である１ＲＵＢ毎にデータが記録される。ここで、ｔ番目のＲＵＢに含まれるユーザ・データの処理をパスＳ１において処理しているとき、（ｔ−１）番目のＲＵＢに含まれるユーザ・データ（データ・ブロック）の処理がパスＳ２により処理される。すなわち、パスＳ２の処理は、パスＳ１の処理結果に基づき実行されるため、記録装置１はｔ及び（ｔ−１）番目のＲＵＢに含まれるユーザ・データの処理を並列して実行することでＲＵＢに含まれるユーザ・データをパイプライン的にエンコード処理する。この際、パスＳ１においては、ユーザ・データがユーザ・データ方向Ｑに転送され、パスＳ２においては、スクランブル済となったユーザ・データが記録データとしてレコーディング・フレーム方向Ｐに出力される。
【００６８】
ディスクに記録する（ｔ−１）番目のＲＵＢに含まれるユーザ・データのパスＳ２の処理時には、ｔ番目のＲＵＢに含まれるユーザ・データのパスＳ１の処理が行われることなり、パスＳ２の（ｔ−１）番目のＲＵＢに含まれるユーザ・データの処理の開始前にパスＳ１の（ｔ−１）番目のＲＵＢに含まれるユーザ・データの処理が終了している。すなわち、図７に示すように、パスＳ１は、少なくともパスＳ２より１ＲＵＢ先のデータの処理を実行することなる。
【００６９】
次に、パス１、パス２のＥＤＣ算出について説明する。パス１及びパス２の演算においては、いずれもユーザ・データのユーザ・データ方向Ｑの順に対応する所定の値を使用してＥＤＣ中間値又はＥＤＣを算出する。先ず、その演算方法の原理について説明する。
【００７０】
ブルーレイディスクにおいては、２０４８バイト（１６３８４ビット）のユーザ・データに対し４バイト（３２ビット）の誤り検出符号を付加する。３２ビットの誤り検出符号は、２０４８バイトのユーザ・データに４バイトの０データを付加した符号列Ｄ（ｘ）を下記の生成多項式で除算することで求めることができる。
Ｇ（ｘ）＝Ｘ３２＋Ｘ３１＋Ｘ４＋１
【００７１】
２０４８バイトのユーザ・データをＩ（ｘ）とすると、これに付加される誤り検出符号ＥＤＣ（ｘ）は下記で表される。
ＥＤＣ（ｘ）＝Σｂｔ・Ｘｔ＝Ｉ（ｘ）ｍｏｄＧ（ｘ）（Σ：ｔ＝３１〜０）
ただし、Ｉ（ｘ）＝Σｂｔ・Ｘｔ（Σ：ｔ＝１６４１５〜３２）
【００７２】
この結果、誤り検出符号ＥＤＣ（ｘ）を付加した符号列Ｄ（ｘ）は、下記で表現することができる。
Ｄ（ｘ）＝Ｉ（ｘ）＋ＥＤＣ（ｘ）
ここで、＋は排他的論理和を示す。
【００７３】
上記の誤り検出符号ＥＤＣ（ｘ）は、符号列Ｉ（ｘ）を図８に示す３２ビットシフト・レジスタに入力することで得ることができる。符号列Ｄ（ｘ）の全符号を入力し終えた後の３２ビットシフト・レジスタ値が誤り検出符号ＥＤＣ（ｘ）（＝０）となる。なお、本実施の形態においては、ユーザ・データ方向Ｑのビット順序をｑとし、ｑ＝ｂ０００００，ｂ００００１，・・・，ｂ１６４１５、ｔ＝１６４１５−ｑと表すこととする。
【００７４】
ここで、誤り検出符号Ｅ（ｘ）は、入力される符号列Ｄ（ｘ）において、符号が「１」であるビットに対応するＸｔｍｏｄＧ（ｘ）の排他的論理和を求めることで算出することができる。ＸｔｍｏｄＧ（ｘ）は、ｋ＝１６４１６ビットの符号列Ｄ（ｘ）の（１６４１５−ｑ）（＝ｔ）次以外を０にした符号列ｄ（ｘ）をＧ（ｘ）で除算した余剰を示す。
【００７５】
図９は、上記概念を説明するための図である。ｋビットの符号列Ｄ（ｘ）の各ビットが全て「１」の符号列{１１１・・・１}を基礎の符号列Ｄ'（ｘ）とする。この符号列Ｄ'（ｘ）を図８に示すシフト・レジスタ５０に入力して得られる３２ビットシフト・レジスタ値は、符号列Ｄ'（ｘ）の誤り検出符号Ｅ'（ｘ）となる。本実施の形態においては、ｋ＝２０５２×８＝１６４１６ビットの符号列Ｄ'（ｘ）である。
【００７６】
まず、基礎の符号列Ｄ'（ｘ）を図９に示すようなｋ個の符号列（以下、この符号列を期待値算出用符号列という。）ｄ（ｘ）ｔとする。すなわち、各期待値算出用符号列ｄ（ｘ）１６４１５〜０は、それぞれｑに対応するビットのみが「１」、その他の全ビットが０である符号列である。具体的には、ｑ＝ｂ０００００には、最上位ビットのみが「１」の符号列ｄ（ｘ）１６４１５＝{１００・・・０}が対応し、ｑ＝ｂ００００１には、２ビット目のみが「１」の符号列ｄ（ｘ）１６４１４＝{０１０・・・０}が対応する。同様に、ｑ＝ｂ１６４１５には、最下位のビットのみが「１」の符号列ｄ（ｘ）０＝{０００・・・１}が対応する。これら各期待値算出用符号列ｄ（ｘ）ｔをシフト・レジスタ５０に入力すると３２ビットシフト・レジスタ値ＸｔｍｏｄＧ（ｘ）を得ることができる。
【００７７】
すなわち、期待値算出用符号列ｄ（ｘ）をＧ（ｘ）で除算した余剰、すなわち誤り検出値がＸｔｍｏｄＧ（ｘ）となる。この余剰ＸｔｍｏｄＧ（ｘ）を本明細書においては期待値ということとする。この期待値ＸｔｍｏｄＧ（ｘ）は、元の符号列Ｄ（ｘ）のビット順序ｑに対応するビットデータのみが誤った場合のシンドローム値を示す。
【００７８】
ここで、符号列Ｄ'（ｘ）をシフト・レジスタ５０に入力して得られる３２ビットシフト・レジスタ値（誤り検出符号Ｅ'（ｘ））は、各期待値算出用符号列ｄ（ｘ）ｔをシフト・レジスタ５０に入力して得られる３２ビットシフト・レジスタ値（期待値ＸｔｍｏｄＧ（ｘ）＝Ｒｔ）の全てを排他的論理和したものとなる。
【００７９】
すなわち、誤り検出符号Ｅ（ｘ）は、符号列Ｄ（ｘ）のうち、符号が「１」のビット順ｑに対応する期待値ＸｔｍｏｄＧ（ｘ）の全ての排他的論理和として求めることができる。よって、符号列と同一ビット数のビットデータからなり、符号列と同一のビット順を対応付けたとき、各ビット順序に対応するビットのみが「１」、その他のビットが全て「０」とされた期待値算出用符号列ｄ（ｘ）を用意し、その期待値算出用符号列ｄ（ｘ）をシフト・レジスタ５０に入力して得られる上記期待値（シンドローム値）を、符号列Ｄ（ｘ）の各ビット数に対応する数、本実施の形態においては、ｋ＝１６４１６個の期待値を保持又は算出することができれば、これを使用して入力される符号列Ｄ（ｘ）の各ビットのうち符号が「１」のビットの期待値全ての排他的論理和（＝ＥＤＣ）を求めることができる。よって、シフト・レジスタ５０に符号列Ｄ（ｘ）を入力する必要がない。すなわち符号列の各ビットに対応する期待値さえ分かれば、符号列Ｄ（ｘ）の誤り検出符号Ｅ（ｘ）は、ユーザ・データ方向Ｑと異なる順序で演算しても算出することができる。
【００８０】
データは、データ・ブロック単位で処理されるが、データ・ブロック４１はセクタ（符号列Ｄ（ｘ））を３２個配置したものであり、誤り検出値Ｅ（ｘ）は、符号列Ｄ（ｘ）毎に算出されるため、一のデータ・ブロック４１から３２の誤り検出値Ｅ（ｘ）が求められる。
【００８１】
上記期待値について具体的に説明する。図８に示すように、例えば、シフト・レジスタ５０に入力する符号列Ｄ（ｘ）＝Ｘとし、Ｘは、ユーザ・データ方向Ｑの順において１０９番目のバイト（Ｑ＝Ｄ００１０８）の最上位ビット（ｑ＝ｂ００８６４）に入力するデータのみが「１」、その他は全て「０」であるとする。すなわち、符号列Ｘは、１６４１６ビットのうち、１５５５２次のデータのみが「１」（Ｂ００８６４＝１）で、その他の値は全て「０」であるとする。
【００８２】
この場合、符号列Ｘを３２ビットシフト・レジスタ５０に入力した結果は、シフト・レジスタ５０の値を「０００００００１ｈ」に初期化し、これを１５５５２回シフトした値を求めることで得られる。
【００８３】
ＥＤＣを算出するためには、符号列を構成するビットデータが「１」であるもののＸｔｍｏｄＧ（ｘ）の排他的論理和のみを演算すればよく、ＸｔｍｏｄＧ（ｘ）の排他的論理和を演算することができれば、符号列Ｄ（ｘ）の３２ビットシフト・レジスタ値である誤り検出値Ｅ（ｘ）を求めることができる。
【００８４】
図１０は、期待値生成方法を示すフローチャートである。図１０に示すように、シフト・レジスタ５０を初期化（＝０）とし（ステップＳ１）する。そして、１６４１５ビットからなる期待値算出用符号列ｄ（ｘ）を用意し、これをシフト・レジスタ５０に入力する。シフト・レジスタ５０のローテーションを１６４１６ビット分繰り返し（ステップＳ３、４）、その３２ビットのレジスタ値が目的の期待値（３２ビット）となる（ステップＳ５）。
【００８５】
ところで、本実施の形態においては、各ビットデータに対応する期待値を全て保持するのではなく、保存するデータ量をできるだけ少なくするため、セクタ０、１からなるエリアＡｒｅａ０におけるＲｏｗ＝０に対応する合計１９個の期待値のみを保持する。ブルーレイディスクにおいては、ユーザ・データ方向Ｑの順で見たとき、データ・ブロックは、セクタ０、１からなる１組のデータセット（１９列からなるデータセット）が１６並んだ規則性を有する構成となっている。すなわち全てのエリアがユーザ・データ方向Ｑの同一ビット順序を有する。また、パス１においてはＲｏｗ＝１０８からの演算となるが、Ｒｏｗ＝１０８の期待値は、Ｒｏｗ＝０の期待値についてＣｏｌｕｍ＋１０とした値となるため、全ての期待値を保持せずともＲｏｗ＝０における１９個の期待値から全ての期待値を演算により求めることができるからである。よって、Ｒｏｗ＝０のＭＳＢのみを「１」、他を「０」とした１９個の期待値算出用符号列から上述のようにして期待値を求める。本実施の形態においては、この１９の期待値を初期期待値ということとする。また、偶数セクタ及び奇数セクタからなるエリア内の列番号をＭ（０≦Ｍ≦１８）とする。
【００８６】
図１１は、パス１における処理を説明するための図である。パス１においては、ＥＤＣ生成部３１は、行番号Ｒｏｗ＝０における最上位ビット（ＭＳＢ）に対応する１９個の期待値（初期期待値）のみを参照する。よって、ＥＤＣテーブル３２は、行番号Ｒｏｗ＝０、列番号Ｍ＝０〜１８における最上位ビット＝ｂ０００００，・・・，ｂ１４６８８に対応する期待値（初期期待値）を読み込む。なお、初期期待値は、図示せぬメモリ等に予め格納されているものとする。各列方向（ユーザ・データ方向Ｑ）の期待値は、これらの初期期待値を後述するシフト・レジスタ（ローテーション回路）に入力して１回シフトするのみで求めることができる。
【００８７】
ＥＤＣ生成部３１は、行番号Ｒｏｗ＝１０８〜２１５の期待値を生成する。行番号Ｒｏｗ＝１０８の各列番号Ｍに対応する期待値は、行番号Ｒｏｗ＝０の期待値の各列番号Ｍ＋１０の期待値に対応する。よって、ＥＤＣ生成部３１は、先ずＥＤＣテーブル３２を参照して入力されるユーザ・データの列番号Ｍ＋１０に対応する初期期待値を読み出す。そして、入力されるユーザ・データの各ビットの順序ｑに対応する期待値となるよう、後述する期待値生成部により初期期待値をシフト演算する。得られた期待値とユーザ・データとの排他的論理和を求めることで、例えばセクタ０であれば、行番号Ｒｏｗ＝１０８〜２１５であって、列番号Ｍ＝０〜８（影を付して示すデータ群４２）の全ての排他的論理和をＥＤＣ中間値として求める。
【００８８】
図１２は、このＥＤＣ生成部３１の詳細の一例を示す図である。ＥＤＣ生成部３１は、入力されるユーザ・データの一のエリア内における列番号Ｍをカウントする列カウンタ６１と、列カウンタ６１のカウント値に応じてＥＤＣテーブル３２におけるいずれかの初期期待値を選択して読み出す選択部６２を有する。さらに、初期期待値を入力されるユーザ・データのビット順序ｑに対応した期待値とするためのＥＤＣ期待値生成部６３と、ユーザ・データが「１」であるとき当該ユーザ・データとこのユーザ・データのビット順ｑに対応する期待値を出力する選択部６４と、排他的論理和を算出するＸＯＲ回路６５とを有する。さらにまた、ユーザ・データのセクタをカウントするセクタカウンタ６７と、セクタカウンタ６７のカウント値に応じて、各セクタ毎のＸＯＲ回路６５の演算結果をＥＤＣバッファ３３に転送する選択部６８とを有する。
【００８９】
図１３は、ＥＤＣ期待値生成部６３の一例を示す図である。また図１４は、ＥＤＣテーブルと初期期待値との関係を示す模式図である。ＥＤＣ期待値生成部６３は、図１３に示すように、３２ビットのシフト・レジスタがローテーションされる構成を有する。選択部６２によりバッファ・コントローラ３のチャンネルＣＨ１から供給されるユーザ・データに対応する列番号Ｍの３２ビットの初期期待値が入力されると、これをユーザ・データ方向Ｑのビット順序ｑに対応する期待値となるよう順次シフトさせ、ローテーションさせる。
【００９０】
ここで、初期期待値は、行番号Ｒｏｗ＝０の最上位ビットに対応する期待値であり、行番号Ｒｏｗ＝１０８の最上位ビットに対応する初期期待値は、行番号Ｒｏｗ＝０の列番号Ｍに＋１０したものとなる。よって、ＥＤＣ期待値生成部６３には、選択部６２から列カウンタ６１のカウント値に＋１０した列番号Ｍに対応する初期期待値が読み出されて供給される。
【００９１】
ＥＤＣ中間値は、ユーザ・データが「１」のビットに対応する期待値の排他的論理和として得られるものであり、選択部６４は、チャンネルＣＨ１から入力されるユーザ・データが「１」の場合にのみ、ＥＤＣ期待値生成部６３が生成した、そのユーザ・データのビット順ｑに対応する期待値を出力し、ユーザ・データが「０」の場合は、「０００ｈ」を選択して出力する。
【００９２】
ＥＤＣバッファ３３は、パス１においてはＥＤＣ生成部３１が逐次更新する演算結果を格納する。よって、パス１の処理が終了した際には、ＥＤＣ中間値が保存される。なお、ＥＤＣバッファ３３は、パス２においては、ＥＤＣ生成部３４が逐次更新する演算結果を格納することで最終的にＥＤＣを格納する。このＥＤＣバッファ３３は、各セクタ毎に上記演算結果を格納する格納領域を有する。データ・ブロック４１は３２セクタからなり、各演算結果は３２ビットであるため、３２ビットの格納領域を３２セクタ分有する。なお、パス１におけるＥＤＣバッファ３３の奇数セクタに対応する各格納領域に保存される値は０である。
【００９３】
選択部６８は、セクタカウンタ６７にて選択されるセクタに対応する値をＥＤＣバッファ３３から読み出しＸＯＲ回路６５に送る。ＸＯＲ回路６５は選択部６４の出力と選択部６８からの選択値との排他的論理和を求め、その結果を再び選択部６８へ送る。選択部６８はこれをＥＤＣバッファ３３の対応するセクタの保存領域に書き戻す。
【００９４】
これにより、ＥＤＣバッファ３３には、セクタ０のユーザ・データが入力し終わった時点で、図１１に影を付して示すセクタ０の後半部分の領域（行番号Ｒｏｗ＝１０８〜２１５、列番号Ｍ＝０〜８）の各ユーザ・データと対応する期待値との排他的論理和を順次排他的論理和したＥＤＣ中間値が格納されることになる。
【００９５】
次に、パス２の処理について説明する。図１５は、パス２における処理を説明するための図である。図１５に示すように、パス２においては、バッファ・コントローラ３のチャンネルＣＨ２は、行番号Ｒｏｗ＝０〜１０７、列番号Ｍ＝０〜１８のユーザ・データ及び行番号Ｒｏｗ＝１０８〜２１５、列番号Ｍ＝９〜１８のユーザ・データ、すなわちパス１にて処理されなかったユーザ・データをＥＤＣ生成部３４に順次供給する。
【００９６】
ここで、チャンネルＣＨ２は、上述したように、ユーザ・データ方向Ｑのバースト転送サイズｍバイト×レコーディング・フレーム方向Ｐの３０４バイトの転送ブロックを順次供給する。なお、統合部３５には３２セクタ分のユーザ・データが転送されるが、ＥＤＣ生成部３４においては、演算に必要なデータのみ、すなわち転送ブロックが偶数セクタ（列番号Ｍ＝０〜９）の場合は行番号Ｒｏｗ＝０〜１０７まで、奇数セクタ（行番号Ｒｏｗ＝９〜１８）の場合は全てのユーザ・データを供給したり、又はデータ・ブロックの全てのユーザ・データを供給して必要なユーザ・データのみを選択して演算するようにしてもよい。
【００９７】
ＥＤＣ生成部３４も基本的にはＥＤＣ生成部３１と同様の構成を有する。図１６は、ＥＤＣ生成部３４の詳細の一例を示す図である。図１６に示すように、ＥＤＣ生成部３４は、入力されるユーザ・データの一のエリアにおける列番号Ｍをカウントする列カウンタ７１と、列カウンタ７１のカウント値に応じてＥＤＣテーブル３２におけるいずれかの初期期待値を選択して読み出す選択部７２を有する。さらに、初期期待値を入力されるユーザ・データのビット順序ｑに対応した期待値とするためのＥＤＣ期待値生成部７３と、ユーザ・データが「１」であるとき当該ユーザ・データとこのユーザ・データのビット順ｑに対応する期待値を出力する選択部７４と、排他的論理和を算出するＸＯＲ回路７５とを有する。さらにまた、ユーザ・データのセクタをカウントするセクタカウンタ７７と、セクタカウンタ７７のカウント値に応じて、各セクタ毎のＸＯＲ回路７５の演算結果をＥＤＣバッファ３３に転送する選択部７８とを有する。
【００９８】
ここで、ＥＤＣ生成部３４又は記録装置１は、ユーザ・データの行番号Ｒｏｗをカウントするカウンタ（以下、ベース行カウンタという）と、バースト転送サイズｍにおける行番号をカウントするカウンタ（以下、バースト転送行カウンタ）とを有している。以下では、ベース行カウンタがカウントする行番号（カウント値）をＲｏｗ（０≦Ｒｏｗ≦２１５）、バースト転送行カウンタがカウントする行番号（カウント値）をＮ（０≦Ｎ≦ｍ−１）ということとする。また、各カウンタのカウント値に応じてユーザ・データ方向Ｑの順で２０４９番目のデータの入力タイミングを検出するＥＤＣフラグ、２０４９〜２０５２番目の４バイトの入力タイミングを検出するＥＤＣエリアフラグを有している（いずれも図示せず）。
【００９９】
パス２においては、一の転送ブロックが転送終了すると、最終転送ブロックまで転送ブロックが順次転送される。例えば最初の転送ブロックの次に転送される転送ブロックにおけるユーザ・データは、行番号Ｒｏｗ＝Ｎ＋１行目から開始される。よって、次の転送ブロックが転送されてくるときにはＥＤＣテーブル３２には、行番号Ｒｏｗ＝Ｎ＋１行目の最上位ビットに対応する期待値が格納されている必要がある。このため、転送ブロックの最終エリアにおいて各列における最終ビットに対応する期待値を生成した時点でこれをＥＤＣテーブル３２に順次上書きしていく。これにより、一の転送ブロックの演算が終了した時点でＥＤＣテーブル３２には、次の転送ブロックの先頭行の最上位ビットに対応する期待値が格納されることとなる。入力されるユーザ・データの列番号に対応した値を選択部７２が期待値生成部７３に供給することで、次の転送ブロックにおける期待値の生成を可能にする。
【０１００】
そして、パス１の処理においてＥＤＣバッファ３３に保存されているＥＤＣ中間値と、上述のようにして生成された期待値のうち選択部７４が選択出力した値とをＸＯＲ回路７５が順次ＸＯＲし、これをＥＤＣバッファ３３に書き戻す。各セクタにおける全ユーザ・データについてのＸＯＲが完了した時点で各セクタに対応するＥＤＣが算出されることとなる。よって、先ず偶数セクタのＥＤＣが算出され、次に奇数セクタのＥＤＣが算出されることとなる。ここで、ＥＤＣは、ＥＤＣフラグが１になるタイミングで算出される。本実施の形態においては、バースト転送サイズｍ＝６であるので、２０４７〜２０５２バイト目に入力されるユーザ・データについて、２０４８バイト目まではデータが１であれば上述のようにＸＯＲ回路７にてＥＤＣバッファ３３に格納されている値を更新する。そして、ＥＤＣエリアフラグが１の間、すなわちユーザ・データ方向Ｑの順で２０４９〜２０５２番目のデータが入力されるタイミングでは２０４９〜２０５２バイト目までのユーザ・データは使用せず、４バイトの０データを入力データとして同様に演算を施す。この間は、いずれも０データであるので選択部７４は、ＸＯＲ回路７５に００００ｈを選択出力するのみでＥＤＣバッファ３３の値は更新されない。よって２０４９バイト目のデータが入力されると期待値生成部７３はその値を順次ローテーションさせるのみとなり、ＥＤＣバッファ３３に格納されている該当するセクタのデータがそのままＥＤＣとして統合部３５に出力される。
【０１０１】
ここで２０４９バイト目のデータは、データ・ブロックにおけるＥＤＣの先頭データの配列位置に相当するデータである。すなわち、図４に示す統合部３５は、２０４８バイトのユーザ・データが転送されるとチャネルＣＨ２の転送順序に応じてＥＤＣを付加する。よって、ＥＤＣ先頭データを付加するタイミングでＥＤＣを求めておく、すなわち、ＥＤＣ先頭データに該当する２０４９バイト目のデータ入力時には、２０４８バイトのユーザ・データ全てについて、各ビットが１の場合の期待値の排他的論理和＝ＥＤＣを求めておき、ＥＤＣを出力可能にしておくことが必要である。
【０１０２】
次に、パス１及びパス２におけるＥＤＣ生成処理について詳細に説明する。先ず、パス１の処理について図１１、図１２及び図１７を参照して説明する。図１７は、パス１のＥＤＣ生成処理を示すフローチャートである。上述したようにＥＤＣバッファ３３は、各セクタ毎に演算結果を保持する。以下の説明においては各セクタ毎の演算結果をEDC Value[０〜３１]として説明する。
【０１０３】
先ず、ＥＤＣバッファ３３のEDC Value[０〜３１]、各カウンタ、ＥＤＣテーブル３２を初期化する。すなわち、ＥＤＣバッファ３３のEDC Value[０〜３１]を全て０にする（ステップＳ１１）。また、セクタカウンタ６７、列カウンタ６１のカウント値を０とする（ステップＳ１２、１３）。更に、ＥＤＣテーブル３２のテーブル値を初期期待値（図１７の※１参照）にセットする。なお、※１は、ＥＤＣテーブル３２の１９の各保存領域にセットされる初期期待値を示す。以下では、ＥＤＣテーブル３２に保存される１９の期待値をそれぞれEDC Table[Ｍ]で示す。Ｍは一のエリア内の列番号を示し０〜１８の値を有する。※１に示すように、例えばEDC Table[０]には、Ｄ００００バイトのＭＳＢのみを１とし、他を０とした１６４１６ビット（１セクタ）の符号列を図８に示すＥＤＣジェネレータであるシフト・レジスタ５０に入力して得られた３２ビットの値（＝期待値）＝０ｘ８ａｆ０８ｂｅｄをセットする。
【０１０４】
次に、選択部６２は、EDC Table[Ｍ＋１０]の値を読み出す（ステップＳ１５）。上述したように、本実施の形態においては、行番号Ｒｏｗ＝０の最上位ビットにおける１９個の期待値を初期期待値として使用し、この１９個の初期期待値から全ての期待値を生成する。
【０１０５】
列カウンタ６１のカウント値Ｍは、最初はＭ＝０であるので、EDC Table[１０]の値を読み出すこととなる。次にチャンネルＣＨ１からのユーザ・データを取得する（ステップＳ１６）。１セクタ２０５２バイト（４バイトの０データを含む）をユーザ・データ方向にＤ００００〜Ｄ２０５１とすると、ステップＳ１６においては、Ｄ０１０８＋２１６×Ｎ（Ｎ＝０〜８）を先頭とするユーザ・データ方向１０８バイトのデータを順次取得する。
【０１０６】
ここで、取得データは本実施の形態においては、１バイト（８ビット）毎を格納し、以下の方法にて処理される。先ず、取得データのＭＳＢが「１」であれば、選択部６４は、期待値生成部６３により生成された期待値をＸＯＲ回路６５に出力する。選択部６８はEDC Value[０〜３１]のうち対応する処理中のセクタの値を読み出し、ＸＯＲ回路６５に出力する。ＸＯＲ回路６５は、これらの排他的論理和を求め、それを選択部６８に出力し、選択部６８は、これをＥＤＣバッファ３３の対応するセクタの格納領域に書き戻す（ステップＳ１８）。そして、ＥＤＣ期待値生成部６３に格納されているデータをローテーションし（ステップＳ１９）、８ビットのデータをシフトし（ステップＳ２０）、ステップＳ１７以下の処理を８回、すなわち８ビット分繰り返す（ステップＳ２１）。すなわち、ステップＳ２０で１ビットシフトし、ＭＳＢの位置に格納されるビットについて、同様に当該ビットが１であるか否かを判断し、１であれば期待値と排他的論理和を求めてEDC Value[０〜３１]に書き戻す。
【０１０７】
以上の処理をＡバイト分、本実施の形態においては、バースト転送サイズｍ＝６バイト分繰り返し（ステップＳ２２）、１０８バイト分、すなわち１列目の処理が終了したら列カウンタ６１のカウント値Ｍ＝８か否かを判断し（ステップＳ２３）、８でなければカウンタ値をインクリメントし（ステップＳ２４）、８であれば、すなわちセクタ境界である場合にはカウンタ値をリセットし（ステップＳ２５）、セクタカウンタ６７のカウント値Ｓｅｃｔｏｒを＋２とする。ステップＳ２３にてＮｏである場合、９列分の処理が終了していないため、ステップＳ２７にてすなわち一のセクタの処理が完了してないと判断され（ステップＳ２７：Ｎｏ）、ステップＳ１５からの処理を繰り返す。すなわち、列カウンタ６１のカウント値Ｍ＋１０の初期期待値を期待値生成部６３に読み出し、データを１ビット取得する毎にシフト・レジスタをローテーションしてユーザ・データに対応する期待値を生成し、ユーザ・データが「１」の場合にのみEDC Value[０〜３１]の対応セクタの値を読み出し排他的論理和を求め書き戻す。
【０１０８】
一方、ステップＳ２３でＹｅｓの場合、９列分の処理が終了しており（ステップＳ２７：Ｙｅｓ）、次の偶数セクタがあればその処理を実行する（ステップＳ２８：Ｎｏ）。最終セクタの処理が終了していれば、すなわちセクタカウンタ６７のカウント値が３２であれば処理を終了する。これにより、１データ・ブロックにおけるパス１の処理が終了する。
【０１０９】
次に、パス２のＥＤＣ生成処理について、図１５、図１６、及び図１８乃至図２６を参照して詳細に説明する。図１８は、パス２のＥＤＣ生成処理を示すブローチャートであり、図２０、図２１、図２２及び２３、並びに図２５は、それぞれ図１８に示すステップＳ３１、Ｓ３５、Ｓ４１、及びＳ４２の処理の詳細を示すフローチャートである。また、図１９は、ＥＤＣフラグ及びＥＤＣエリアフラグを説明する図、図２４は、ＥＤＣテーブルの更新方法を説明する図、そして、図２６は、セクタカウンタの更新方法を説明する図である。
【０１１０】
先ず、各カウンタ、ＥＤＣテーブルの値などを初期化する（ステップＳ３１）。次にユーザ・データを取得する（ステップＳ３２）。パス２におけるデータの取得は、データ・バッファ２のチャンネルＣＨ２からバースト転送されるデータである。
【０１１１】
データを取得したら、ＥＤＣの先頭となるデータであるか否かを判定する。ＥＤＣを算出するためには、２０４８バイトのユーザ・データに４バイトの０データが付加されるため、２０４８バイトの次のデータをＥＤＣの先頭データとして検出する。すなわち、図１５に示すデータ・ブロックにおいて、偶数セクタにおいては行番号Ｒｏｗ＝１０４、列番号Ｍ＝９の配置に相当するデータの入力をＥＤＣの先頭として検出し、奇数セクタにおいては、行番号Ｒｏｗ＝２１２、列番号Ｍ＝１８の配置に相当するデータの入力をＥＤＣの先頭として検出する。この検出は、ＥＤＣの先頭であるか否かを示すＥＤＣフラグが１か否かにより検出することができる（ステップＳ３３）。
【０１１２】
ＥＤＣフラグが１であればＥＤＣの先頭と判断し、取得したデータを００ｈに置き換える（ステップＳ３６）。これにより、入力される８ビットのデータは全て０として選択部７４により００００ｈが選択出力される。ＸＯＲ回路７５により８ビット分の処理が終了すると、これをＥＤＣのバイト分、すなわち合計４回繰り返し（ステップＳ３７〜Ｓ４０）次にステップＳ４１に進む。また、ＥＤＣフラグが１ではなく、かつＥＤＣエリアグラフが１の場合（ステップＳ３４：Ｎｏ）も次のステップＳ４１に進む。なお、入力される８ビットのデータは全て０の場合、ＥＤＣ生成部３４ではＥＤＣバッファ３３の値を更新しないため、実際には２０４８バイト目のユーザ・データのＥＤＣ演算が終了した時点でＥＤＣバッファ３３に格納されているデータがＥＤＣである。また、ＥＤＣフラグ及びＥＤＣエリアフラグについての詳細は後述する。
【０１１３】
一方、ＥＤＣフラグが０であってかつＥＤＣエリア内であるか否かを示すＥＤＣエリアフラグが０である場合には、ステップＳ３５に進む。ステップＳ３５においては、パス１で処理されていないユーザ・データ（以下対象データともいう。）についてパス１と同様にユーザ・データが１である場合の期待値とＥＤＣバッファに保持されている演算結果との排他的論理和を順次求める。先ず、対象データの８ビット分（＝１バイト分）の演算を実行してステップＳ４１に進む（ステップＳ３５）。
【０１１４】
ステップＳ４１においては、各カウンタ及びＥＤＣテーブル３２を更新し（ステップＳ４１）、必要に応じてセクタカウンタ７７を更新する（ステップＳ４２）。そして、以上の処理を、バースト転送サイズのｍバイト分、本実施の形態においては、６バイト分繰り返す（ステップＳ４３）。この６バイトの処理は、ユーザ・データ方向Ｑの処理である。バースト転送サイズｍ分、本実施の形態においては、６バイトの処理が終了したら、３０４列分の処理を行う（ステップＳ４４）。すなわち、ユーザ・データ方向Ｑの６バイトのデータを、レコーディング・フレーム方向Ｐの順に３０４回取得し、これを２１６／ｍ回、本実施の形態においては３６回繰り返す（ステップＳ３９）ことで、１データ・ブロックの処理が終了する。だだし、バースト転送サイズｍにより２１６が割り切れない場合には小数点以下を繰り上げた回数だけ繰り返し実施する。例えばｍ＝１６の場合、２１６／１６＝１３．５となり商が整数にならないが、この場合は、ステップＳ４６において小数点を繰り上げた回数＝１４回分実施したか否かが判断される。この時点でＥＤＣバッファ３３には、３２セクタの各ＥＤＣが格納されることとなる。
【０１１５】
次に、これらの処理について更に詳細に説明する。ステップＳ３１の初期化処理は、図２０に示すように、セクタカウンタ７７、ベース行カウンタ（不図示）、バースト転送行カウンタ（不図示）列カウンタ７１、エリアカウンタ（不図示）の各カウント値を０にリセットし（ステップＳ５１〜Ｓ５５）、ＥＤＣテーブル３２に行番号Ｒｏｗ＝０の最上位ビットの期待値からなる初期期待値を読み込む（ステップＳ５６）。更に、ＥＤＣフラグ及びＥＤＣエリアフラグを０とする。
【０１１６】
上述したようにベース行カウンタは、１データ・ブロックにおける全行を連続してカウントするカウンタであり、そのカウント値は行番号Ｒｏｗ＝０〜２１５に対応する。また、バースト転送行カウンタは、１回のバースト転送により転送されるデータの行番号Ｎ＝０〜５をカウントするカウンタである。バースト転送行カウンタは、バースト転送サイズをカウントするために使用し、ベース行カウンタによりデータ・ブロック全体の行をカウントすることができる。また、エリアカウンタは、偶数セクタ及び奇数セクタからなる組を一のエリアとしてカウントするカウンタである。セクタＳｅｃ０、１がエリアＡｒｅａ０となり、最後の２つのセクタＳｅｃ３０、３１がエリアＡｒｅａ１５となる。よって、エリアカウンタは、０〜１５をカウントする。これらのカウント値により、読み出す初期期待値を適切に選択することができ、また、ＥＤＣテーブル３２への期待値書き戻し、再設定などのタイミングを制御することができる。
【０１１７】
次に、ＥＤＣフラグ及びＥＤＣエリアフラグについて説明する。ＥＤＣを演算する際には、２０４８バイトに４バイトの０データを付加した２０５２バイトからなる符号列に対し、所定の演算を施すことでＥＤＣを得る。すなわち、当該符号列を図８に示すシフト・レジスタ５０に順次入力して得られる３２ビットのシフト・レジスタ値としてＥＤＣを得る。本実施の形態においても、２０４８バイトのユーザ・データに４バイトの０データを付加した２０５２バイトについて期待値の排他的論理和を求めることでＥＤＣを演算する。
【０１１８】
ここで、ユーザ・データ方向Ｑの順で２０４８バイト目以降に４バイトの０データが付加される。よって、ＥＤＣの先頭データであるＥＤＣ０に相当する２０４９バイト目を検出し、２０４９〜２０５２バイトの４バイトについては、取得データを００ｈに置き換えて処理を行う必要がある。このため、ＥＤＣ生成部３４は、データを取得する毎に、次に取得するデータがユーザ・データ方向Ｑの順で２０４９バイト目のデータとなるか否かを判断する。
【０１１９】
そこで、本実施の形態においては、この２０４９バイト目のデータであるか否かを検出するＥＤＣフラグを設ける。すなわちＥＤＣフラグは、ＥＤＣが付加された場合のＥＤＣの先頭データとなるデータを検出するためのフラグである。以下の説明においては、図１９に示すように、ＥＤＣとなる先頭データから４バイト目までのデータをＥＤＣ０〜ＥＤＣ３ということとする。ＥＤＣ０〜ＥＤＣ３は、データ・ブロックにおいては２０４９〜２０５２バイト目に配列される。
【０１２０】
ＥＤＣフラグは、入力されるデータが、各セクタにおいてユーザ・データ方向Ｑの順で２０４９番目に入力されるデータであるときのみ１となる。ＥＤＣの算出には２０４８バイトに４バイトの０データを付加した２０５２バイトの符号列の各バイトについて、期待値の排他的論理和を求めるため、ＥＤＣが配置される予定の４バイト部分（ＥＤＣエリア）は、入力にかかわらず４バイト分０データとして処理する。このため、ＥＤＣフラグでＥＤＣ先頭を検出し、ユーザ・データ方向Ｑの順で２０４９〜２０５２バイト目のＥＤＣエリア内のデータが入力されることもＥＤＣエリアフラグにより合わせて検出する。ＥＤＣフラグは、偶数セクタにおいては列番号＝９、行番号＝１０４とき、奇数セクタにおいては、列番号＝１８、行番号２１２のときのみ１となる。また、ＥＤＣエリアフラグは、偶数セクタにおいては列番号＝９、行番号＝１０４〜１０７とき、奇数セクタにおいては、列番号＝１８、行番号２１２〜２１５のときのみ１となる。これらのフラグは、ベース行カウンタ、バースト転送行カウンタ、列カウンタなどのカウント値に基づき設定される。
【０１２１】
その後、期待値生成部７３にＥＤＣテーブルから対応する列番号（列カウンタのカウント値）Ｍの初期期待値を読み出す（ステップＳ５９）。例えば、パス２の最初のデータ処理時においては、セクタＳｅｃ０の列番号＝０、行番号＝０のユーザ・データから入力されるため、EDCtable[０]の値を読み出す。
【０１２２】
次に、ステップＳ３５の詳細について説明する。ステップＳ３５においては、ベース行カウンタのカウント値Ｒｏｗ＋行カウント値Ｎが１０８以上であって、列番号（列カウンタ７１の列カウント値）Ｍ＝０〜８の場合、すなわちパス１において処理済みのユーザ・データが入力される場合は、そのまま次のステップＳ４１へ進む（ステップＳ６１）。ステップＳ６２以降の処理は、ユーザ・データが、Ｒｏｗ＋Ｎ＝０〜１０７の場合及び行カウント値Ｒｏｗ＋Ｎ＝１０８〜２１５であって０≦列カウント値Ｍ≦８の場合に実行される。
【０１２３】
すなわち、先ず図２１に示すように、上述の実行条件に該当するか否かが判断され（ステップＳ６１）、実行条件に該当する場合、すなわち取得したデータが対象データである場合には、取得データの各ビットについて「１」であるか否かが判定され（ステップＳ６２）、「１」である場合には、選択部７８により、EDC Value[Ｓｅｃｔｏｒ]が読み出されてＸＯＲ回路７５に供給される。また、選択部７４によりその期待値が選択出力され、ＸＯＲ回路７５に供給される。ＸＯＲ回路７５は、これらの排他的論理和を求め、選択部７８に出力し、選択部７８により再びEDC Value[Ｓｅｃｔｏｒ]に書き戻される（ステップＳ６３）。そして、８ビット分の処理が終了するまで、期待値生成部７３の各データのローテーションを行って期待値を生成（ローテーション）しながら１ビットずつデータを取得（ステップＳ６３〜Ｓ６６）してＥＤＣバッファ３３に格納されているＥＤＣ中間値又は演算結果を更新（補正）する。このステップＳ３４においても、上述したように取得データ１バイトを例えばローテーション可能なレジスタ等に保持し、ＭＳＢ位置に格納されるビットについてステップＳ６３〜の処理を実行し、１ビットずつ８ビット分の処理を実行する。
【０１２４】
次に、図２２及び図２３を参照して、ステップＳ４１の詳細について説明する。本ステップでは各カウンタの制御及びＥＤＣテーブル３２の書き戻し・再セットを行なう。図２２に示すように、現在の処理が最終エリアＡｒｅａ１５であり、バースト転送における行番号をカウントするバースト転送行カウンタのカウンタ値Ｎがｍ−１か否かを判断する（ステップＳ８１）。本実施の形態においては、ｍ＝６であるため、Ｎ＝５か否かが判断される。すなわち、最終エリアＡｒｅａ１５の一の列における最終バイトの処理が終了したか否かを判断し、本例においては、最終エリアＡｒｅａ１５の６バイト目の処理が終了したと判断された場合には、現在の期待値（ＥＤＣＴｍｐ：図２４参照）をＥＤＣテーブル３２の対応する列の領域EDCtable[Ｍ]に書き戻す。
【０１２５】
ここで、先頭のＡｒｅａ０からＡｒｅａ１５までの処理においては、各エリア内の列を処理する毎にＥＤＣテーブル３２から期待値を読み出す。すなわち、Ａｒｅａ０〜Ａｒｅａ１５において、同一転送ブロックの処理においては、同一のＥＤＣテーブルの値を使用する。例えばパス２の最初の処理においては、このＥＤＣテーブル３２は、初期期待値が格納され、最終エリアＡｒｅａ１５においてもこの初期期待値を順次読み出す。一方で、最終エリアＡｒｅａ１５の演算が終了すると、次の転送ブロックの処理が開始され、再び最初のエリアＡｒｅａ０からの処理が実行される。ここで、次の転送ブロックの処理においては、初期期待値ではなく、当該転送ブロックの最初の行における最上位ビットに対応した１９の期待値が必要となる。よって前の転送ブロックにおける最終エリアＡｒｅａ１５を処理する際には、前の転送ブロックにおける最終行の最下位ビットの期待値をローテーションし、先頭エリアの先頭バイトのＭＳＢに対応する期待値とし、次の転送ブロックにおける期待値生成に使用するためにＥＤＣテーブル３２に書き戻す必要がある。
【０１２６】
上述したように最終エリアＡｒｅａ１５も先頭エリアＡｒｅａ０と同一のＥＤＣテーブル３２の値を使用するため、最終エリアＡｒｅａ１５の各列の処理が終了するまでは対応する列のＥＤＣテーブルを書き換えることはできない。そこで、先ず最終エリアＡｒｅａ１５であるか否かを判断する（ステップＳ８１）。最終エリアＡｒｅａ１５でない場合はステップＳ８３に進む。最終エリアＡｒｅａ１５の最終バイトである場合には、期待値生成部７３が保持している値は転送ブロックの最終行＝６バイト目のＬＳＢに対応する期待値（図２４のＥＤＣＴｍｐ１）を上述のステップＳ６４にてローテーションした値（図２４のＥＤＣＴｍｐ２）である。すなわち、先頭エリアのバースト転送の先頭バイトのＭＳＢに対応する期待値となっている。この値をＥＤＣテーブル３２に書き戻す。
【０１２７】
次に、バースト転送行カウンタのカウンタ値Ｎをインクリメント（ステップＳ８３）する。次に、行カウント値Ｎ＝ｍ、本実施の形態においては、ｍ＝６であるか否かを判断し（ステップＳ８４）、ｍ＝６であれば行カウント値をリセットする（ステップＳ８５）。そして、列カウント値Ｍをインクリメントし（ステップＳ８６）、列カウント値Ｍ＝１９であるか否か、すなわちインクリメントした結果エリアの先頭行となったか否かを判断する（ステップＳ８７）。列カウント値Ｍ＝１９の場合は、列カウント値Ｍをリセットし、エリアカウンタのエリアカウント値Ａｒｅａをインクリメントし（ステップＳ８９）、現在のエリアが転送ブロックの先頭エリアであるエリアＡｒｅａ１６＝Ａｒｅａ＝０（図６参照）であるか否かを判定する（ステップＳ９０）。エリアカウント値Ａｒｅａが１６の場合はこれをリセットし（ステップＳ９１）、セクタカウンタも同じくリセットする（ステップＳ８２）。そして、ベース行カウンタのカウント値にｍを加算する（ステップＳ９３）。
【０１２８】
以上のようにしてＥＤＣテーブル３２に期待値を書き戻し、各カウンタのリセット処理等を行った後、期待値生成部がＥＤＣテーブル３２から値を読み出す。先ず、バースト行カウント値Ｎ＝０であるかを判断し（ステップＳ９５）、Ｎ＝０であれば、ＥＤＣテーブル３２の現在の列カウント値Ｍに応じた値を読み出し、期待値生成部にセットする（ステップＳ９５）。また、Ｒｏｗ＋バースト転送行カウント値Ｎ＝１０８でかつＭ≧９であるか否かを判定する（ステップＳ９６）。行番号Ｒｏｗ＝１０８の境界においては、図４に示すように、偶数セクタの先頭バイトを含む。すなわち、行番号Ｒｏｗ＝１０８は奇数セクタと偶数セクタと境界であるため、ステップＳ８２により書き戻して使用していた期待値を一旦初期期待値にリセットする処理が必要となる。よって、行カウント値＝１０８の境界が検出された場合は、ＥＤＣテーブル３２を※１のように初期期待値にセットし、列カウント値（Ｍ−９）の値EDCtable[Ｍ−９]を読み出す（ステップＳ９７）。
【０１２９】
そして、以降のステップＳ９８〜Ｓ１０５によりＥＤＣフラグ及びＥＤＣエリアフラグをセットする。先ず、ステップＳ９８では、次に取得されるユーザ・データが偶数セクタのＥＤＣの先頭位置に配されるか否かが判断される。このため、偶数セクタにおいては、１０列目の１０５行目のバイトがＥＤＣの先頭データＥＤＣ０となるため、列カウント値Ｍ＝９かつＲｏｗ＋Ｎ＝１０４であるか否かが判断される（ステップＳ９８）。ここでＥＤＣの先頭と判断された場合にはＥＤＣフラグ＝１に設定する（ステップＳ１００）。一方、偶数セクタのＥＤＣの先頭ではない場合、奇数セクタの先頭か否かが判断される。奇数セクタにおいては、１９列目の２１３行目のバイトがＥＤＣの先頭となるため、列カウント値Ｍ＝１８かつＲｏｗ＋Ｎ＝２１２であるか否かが判断される（ステップＳ９９）。ＥＤＣの先頭と判断された場合は上述のステップＳ１００に進みＥＤＣフラグ＝１とする。一方、偶数セクタ、奇数セクタのいずれのＥＤＣの先頭にも該当しない場合には、ＥＤＣフラグ＝０とする（ステップＳ１０１）。
【０１３０】
次に、ＥＤＣ先頭となる２０４９バイト目以降２０５２バイト目までは上述のステップＳ３７〜Ｓ４０に示すように、００ｈで置き換えたバイトデータに対し演算を実行する。よって、２０４９バイト目であるＥＤＣ先頭を検出してから２０５２バイト目まで（ＥＤＣエリア）のデータについては、ＥＤＣ生成部３４は通常の処理を行わず上記ステップＳ３７〜Ｓ４０の処理を実行する。このため、ＥＤＣエリアを検出し、ＥＤＣエリアのユーザ・データが入力される間はそれらのユーザ・データをマスクする必要がある。
【０１３１】
そこで、偶数セクタの２０４９〜２０５２番目に入力されるバイト（ＥＤＣエリア内のデータ）に相当するか否かを判断するため、列番号Ｍ＝９かつＲｏｗ＋Ｍ＝１０４〜１０７であるか否かを判断する（ステップＳ１０２）。該当しない場合には、奇数セクタの２０４９〜２０５２番目に入力されるバイト（ＥＤＣエリア内のデータ）に相当するか否かを判断するため、列番号Ｍ＝１８かつＲｏｗ＋Ｍ＝２１２〜２１５であるか否かを判断する（ステップＳ１０３）。ステップＳ１０２、又はＳ１０３においてＥＤＣエリア内のデータと判断された場合はＥＤＣエリアフラグ＝１に設定し（ステップＳ１０４）、一方、ＥＤＣエリア内ではないと判断された場合にはＥＤＣエリアフラグ＝０に設定する（ステップＳ１０５）。以上の処理が終了したらステップＳ４２へ進みむ。
【０１３２】
なお、例えばバースト転送サイズｍ＝２の場合、５２回目までのバースト転送により列方向では１０６バイトのデータ転送が完了し、次の５３回目のバースト転送にて１０８バイト目までのデータ転送が完了する。この場合、２回のバースト転送に亘ってＥＤＣを転送する必要があるが、このような場合には、５２回目において２０４９バイト目又は２０５０バイト目、すなわちＥＤＣの先頭バイト又はＥＤＣ１の入力タイミングにて４バイトのＥＤＣの演算が終了していることが必要である。上記の場合、偶数セクタにおいては、２０４９バイト目のデータを処理する時点で、行番号Ｒｏｗ＝１０６、１０７に位置するユーザ・データの期待値演算処理が終了している必要がある。よって、この場合には、パス１においては、偶数セクタの行番号Ｒｏｗ＝１０６〜２１５までのユーザ・データからＥＤＣ中間値を求めておくものとする。
【０１３３】
このように２つの転送ブロックにまたがってＥＤＣが配置される場合においては、最初の転送ブロックの最後のＥＤＣ演算までに４バイトのＥＤＣ全てを求めておく。そして、この場合、最初のＥＤＣ０の演算タイミングまでに２０４８バイトのユーザ・データについての期待値演算は終了しておく必要があり、バースト転送サイズに応じてパス１においてＥＤＣ中間値を求めるユーザ・データを適宜調整する。
【０１３４】
次にステップＳ４２の処理について説明する。本ステップではセクタ境界を判定し、セクタカウンタを更新する処理を実行する。図２５は、ステップＳ４２の詳細を示すフローチャート、図２６は、ステップＳ４２の処理を説明する図である。図２５に示すように、先ず、行カウント値Ｒｏｗ＋Ｎ＜１０８か否かを判定する（ステップＳ１１１）。行カウント値Ｒｏｗ＋Ｎ＜１０８である場合であって、列カウント値Ｍ＝１０であるか否か、すなわち次に転送されるユーザ・データが奇数セクタ領域におけるユーザ・データであるか否かを判断する（ステップＳ１１１、図２６参照）。また、Ｒｏｗ＋Ｎ＜１０８、且つ列カウント値Ｍ＝１０でない場合であっても、Ｒｏｗ＋Ｎ≧１０８、且つ列カウント値Ｍ＝９であれば、次に転送されるユーザ・データは奇数セクタ領域のデータとなる。すなわち、Ｒｏｗ＋Ｎ＜１０８、且つ列カウント値Ｍ＝１０の場合、及びＲｏｗ＋Ｎ≧１０８、且つ列カウント値Ｍ＝９の場合には、セクタカウンタをエリアカウンタのエリアカウント値Ａｒｅａ×２＋１にセットする（ステップＳ１１３、図２６参照）。
【０１３５】
一方、エリアカウント値Ａｒｅａが０ではなく、かつ列カウント値Ｍ＝０の場合（ステップＳ１１４、図２６参照）には、次に転送されるユーザ・データは偶数セクタのデータであると判断され、セクタカウント値は、エリアカウント値Ａｒｅａ×２にセットされる（ステップＳ１１５）。これら以外の場合には、セクタカウンタは更新されず、次のステップＳ４３の処理に進む。
【０１３６】
以上の処理により、パス１にて偶数セクタの後半部分のユーザ・データより算出されたＥＤＣ中間値をパス２において残りのユーザ・データに基づき補正し、また奇数セクタにおいては全ユーザ・データに基づきＥＤＣを算出する。このようにパス２においてＥＤＣ演算の一部又は全部を行なうことによりパス１においてデータ・バッファへのアクセス量を約１／４程度に減らすことができる。すなわち、パス１においては、パス２においてユーザ・データ方向Ｑとは異なる順序ユーザ・データを転送する際にＥＤＣを付加するまでに入力することができない部分のユーザ・データ（偶数セクタの後半部分）の演算のみを行なうようにすることで、パス１におけるデータ・バッファ２へのアクセス量を低減することができる。
【０１３７】
図２７は、本実施の形態における効果を説明する図である。図３に示す方法においては、パス１においてＥＤＣを演算しておき、パス２でそれを使用してＥＤＣ付きデータを出力することとしているため、チャンネルＣＨ１がデータ・バッファから読み出すべきユーザ・データは、１データ・ブロック分、すなわち２０４８バイト×３２セクタ分となる。これに対し、本実施の形態においては、パス１においては、偶数セクタの行番号Ｒｏｗ＝１０８以降のユーザ・データのみの処理を行うため、データ・バッファ２から読み出すべきユーザ・データは９７２×１６セクタ分とすることができる。
【０１３８】
ここで、図２７に示すように、本実施の形態にかかる記録装置１においては、図３に示す記録装置に対して、ＥＤＣ生成部３４及びＥＤＣテーブル３２を追加する構成となっている。しかしながら、ＥＤＣ生成部３１とＥＤＣ生成部３４とが合わせて１データ・ブロック分の処理を行ってＥＤＣを演算するため、消費電力が追加されるのはＥＤＣテーブル３２に使用される消費電力のみとみることができる。ここで、ＥＤＣテーブル３２においては、１データ・ブロック分のデータ処理が行われるので、ＥＤＣ演算部分では２０４８×３２ｂｙｔｅ（６５５３６ｂｙｔｅ）分の消費電力増加となるものの、パス１のデータ転送量は図３に示す１データ・ブロックを処理する場合に比べて約１／４であるため、データ・バッファ及びバッファ・コントローラ３の分として、データ・バッファ周りでは、９９９６８ｂｙｔｅ（（２０４８×３２−９７２×１６）×２）分の消費電力を低減させることができ、結果的に消費電力が削減される。これは、高倍速になるに従い、データ・バッファ、バッファ・コントローラの動作クロックを上げていくに従い、顕著となる。
【０１３９】
このことにより、エンコードのボトルネックとなり得るデータバッファアクセスを低減することで、高倍速エンコードを実現し、消費電力を抑えるという優れた効果を奏する。すなわち、一定時間内にデータ・バッファにアクセスできるデータ数は固定であり、その時間は倍速が上がると共に短くなっていくため、高倍速エンコードの際にデータバッファアクセスがボトルネックとなる。よって、データアクセス絶対数を減らすことでより高倍速エンコードを可能とし、データアクセス差分の消費電力を削減することができる。また、アクセス絶対数が少ないことにより、図３に示す方法に比べ、より高いエンコード倍速でも動作クロックが低くコストが安いデータ・バッファを使用することができる。更に同倍速エンコードを実現するためのデータ・バッファやバッファ・コントローラの動作クロック自体を下げることが可能で、追加回路に掛かる電力を差し引いても、消費電力を削減することができる。
【０１４０】
次に、以上のようにして生成されたＥＤＣを付加したＥＤＣ付きデータから記録データを出力するまでの動作の一例について説明しておく。ＥＤＣ中間値からＥＤＣを算出し、記録データを出力するまでの処理は、上述のパス２の処理として各回路によって実行される。図４に戻って、チャンネルＣＨ２よりバースト転送されるユーザ・データは、ＥＤＣ生成部３４のみならず、統合部３５にも供給される。
【０１４１】
ここで、データ・バッファ２は、ＳＤＲＡＭ等、リフレッシュ動作が必要であって、ランダムアクセス及びバースト転送が可能なメモリから構成される。以下の説明においては、ＳＤＲＡＭとして説明する。ＳＤＲＡＭは、連続したアドレスに限り、ランダムアクセスに比べ高速にアクセス可能なＤＲＡＭであり、バースト転送機能を利用すれば高速データ転送が可能となり、ＳＲＡＭ等の高速ランダムアクセス可能なメモリに比してコストを低減することができる。
【０１４２】
バッファ・コントローラ３のチャンネルＣＨ２は、データ・バッファ２からユーザ・データ方向Ｑに１バースト転送サイズ＝ｍバイトのユーザ・データを繰り返し読み出し、レコーディング・フレーム方向Ｐの順にＥＤＣ付加データが配列するよう順次転送していく。すなわち、ユーザ・データ方向Ｑの２１６ｂｙｔｅｓのうちバースト転送サイズｍｂｙｔｅｓを、レコーディング・フレーム方向Ｐのバイト（３０４ｂｙｔｅｓ、３０４インターリーブ）分、すなわち３０４回繰り返してバースト転送することで１ＲＵＢに含まれるユーザ・データ（データ・ブロック４１）のレコーディング・フレーム方向Ｐのデータが、ユーザ・データ方向Ｑにｍバイト揃うこととなる。これをスクランブルした後、高速にランダムアクセス可能なＳＲＡＭ等からなる置き換えバッファ３８に格納することでレコーディング・フレーム方向Ｐの順に記録データを出力することができる。
【０１４３】
ここで、チャンネルＣＨ２又は統合部３５は、バースト転送における先頭アドレスを指定したり、ＥＤＣバッファ３３からのＥＤＣ読み出しタイミングを制御する機能を有する。
【０１４４】
スクランブル回路３６は、ユーザ・データとユーザ・データのユーザ・データ方向Ｑの順序に対応するスクランブル値との排他的論理和をスクランブル済データとして算出する。すなわち、データをスクランブルする場合には、下記式に示すように、８ビットの入力データＤｉと、スクランブラで生成した８ビットのスクランブル・データ（スクランブル値）Ｓｉとのｍｏｄ２加算（＝排他的論理和）を行なうことでスクランブル済データＤＳｉを得ることができる。
ＤＳｉ＝Ｓｉ＋Ｄｉ
ここで、「＋」は排他的論理和を示す。
【０１４５】
ブルーレイディスクにおけるスクランブラは、所定の演算を施す１６ビットのシフト・レジスタに初期値を設定し、これを順次シフトさせる毎にユーザ・データ方向Ｑの順でスクランブル値を生成する。ため、本実施の形態のように、６バイト毎のデータをレコーディング・フレーム方向Ｐの順に入力すると、６バイト分のスクランブル値を得た後、次の列に対応するスクランブル値を得るために２１０回シフトしなければならず時間がかかる。そこで、このような順序で入力されるユーザ・データに対しても、スクランブル値を算出することができるスクランブル値生成部を有し、当該入力データに対応するスクランブル値をスクランブル回路３６に供給するスクランブル値生成部３７を有する。
【０１４６】
置き換えバッファ３８は、リフレッシュ動作が不要であって、高速にランダムアクセス可能なＳＲＡＭ等のメモリから構成される。以下の説明においてはＳＲＡＭとして説明するが、高速にランダムアクセス可能であれば、ＳＲＡＭに限らない。この置き換えバッファ３８は、スクランブルされたデータをレコーディング・フレーム方向Ｐのデータに置き換えるために設けるものであり、レコーディング・フレーム方向Ｐの順にスクランブル済データを高速転送可能である。ここで、置き換えバッファ３８は、上述の転送ブロック以上のデータを格納可能な領域を２以上有し、一方の領域に転送ブロックの書き込みをしている間に他方の転送ブロックから記録データを出力するものであるが、データ・バッファ２と比べるとその容量を格段に小さくすることができ、データ・バッファ２をＳＲＡＭで構成する場合と比べると、同等の高速転送を可能としつつ、低コスト化を図ることができる。
【０１４７】
次に、パスＳ２の各動作について詳細に説明する。先ず、置き換えバッファ３８に転送されるユーザ・データについて詳細に説明する。ブルーレイディスクでは、ユーザ・データ方向Ｑのデータは１列が２１６ｂｙｔｅｓである。本実施の形態においては、上述のようにこれを３６分割した６ｂｙｔｅｓ毎にバースト転送する（バースト転送サイズｍ＝６ｂｙｔｅｓ）。
【０１４８】
ＳＤＲＡＭは、バースト転送をクロックに同期して高速に行えるようにしたＤＲＡＭであり、例えば、ＳＤＲＡＭのメモリセルを独立して動作可能な４つのブロック（バンク）構成とし、８回連続のバースト転送を使用すれば、３２ｂｙｔｅｓのバースト転送が可能となる。ＳＤＲＡＭは、最初のバースト転送すべきアドレスを指定してやれば所定のデータをバースト転送により高速にデータの転送可能である。
【０１４９】
レコーディング・フレーム方向Ｐのデータは、ユーザ・データ方向Ｑの並びでみると２１６ｂｙｔｅｓ飛びのデータとなるが、上述したように、ブルーレイディスクでは、１セクタは２０４８ｂｙｔｅｓのユーザ・データ＋４ｂｙｅｔｓのＥＤＣからなり、データ・バッファ２から転送されてくるデータは、ＥＤＣが付加される前のデータであり、例えば１セクタ分が２０４８ｂｙｔｅｓである。このため偶数セクタに隣接する、奇数セクタの最初の列バイト（以下、奇数セクタ先頭列という）は、２１６ｂｙｔｅｓ飛びではなく、２１２ｂｙｔｅｓ飛びのデータとなる。この奇数セクタ先頭列とは、セクタＳｅｃ１におけるレコーディング・フレームＰの順では９列目又は１０列目であり、ユーザ・データ方向Ｑの順、すなわち行番号Ｒｏｗ＝０〜１０７までは１０列目、行番号Ｒｏｗ１０８〜２１５までは９列目を示す。したがって、レコーディング・フレーム方向Ｐにデータを読み出す際に奇数セクタ先頭列に該当するデータを読み出す場合には、２１６ｂｙｔｅｓ飛びではなく２１２ｂｙｔｅｓ飛びとなる。このように、バースト転送する際のデータ・バッファ２の先頭アドレスは、セクタ境界以外は２１６ｂｙｔｅｓ飛び、セクタ境界では２１２ｂｙｔｅｓ飛びとなるため、バッファ・コントローラ３は、行カウンタ、エリア内の列番号をカウントする列カウンタなどを利用してセクタ境界を検出し、データ・バッファ２におけるバースト転送する際の最初のアドレス（先頭アドレス）をバースト転送サイズｍに基づき適宜計算して指定する。すなわち、セクタ境界を検出したときのみ＋２１２とし、それ以外の場合は先頭アドレスに順次２１６を加算することで、先頭アドレスを適切に指定することができる。
【０１５０】
また、ブルーレイディスクにおいては、偶数セクタにおいて最終データの次に付加されるＥＤＣがユーザ・データ方向Ｑ、すなわち行番号Ｒｏｗ＝１０４〜１０７、すなわち、ユーザ・データ方向Ｑの順でデータを並べた際の一の列の途中に配置されることとなる。よって、統合部３５は、このアドレスを含むユーザ・データを転送する際に、ＥＤＣバッファ３３から上述のようにして得られたＥＤＣを読み出し付加してスクランブル回路３６に出力する。
【０１５１】
スクランブル値生成部３７は、バースト転送される６バイトのデータについては、ユーザ・データ方向Ｑの順であるため、通常のスクランブラを使用してスクランブル値を生成すればよいが、１バースト分の転送データを処理した後は次の列のユーザ・データがバースト転送される。このため、通常のスクランブラを使用すると、最大で２１０クロック分待たないとスクランブル値を得ることができない。一方で、ブルーレイディスクのデータは、図２に示すように、レコーディング・フレーム方向においては、２１６又は１０８バイト飛びとなっている。よって、１回のシフト動作でユーザ・データ方向Ｑの順に１バイトシフトさせて得られる通常のスクランブラの他に、１回のシフト動作によって２１６、１０８回シフトした値を得ることができるシフト・レジスタを設け、バースト転送毎に各シフト・レジスタを切り替え制御する。これにより、チャンネルＣＨ２から転送されるユーザ・データのユーザ・データ方向Ｑの順に対応したスクランブル値をスクランブル回路３６に供給することができる。
【０１５２】
置き換えバッファ３８は、バースト転送サイズｍ×１レコーディング・フレーム分（３０４ｂｙｔｅｓ）らなる記憶領域を２以上有する。そして、上述したように、パスＳ２において、１ＲＵＢに相当するユーザ・データ（データ・ブロック）の処理を実行するため、一方の記憶領域に転送ブロックを書き込む間に、他方の記憶領域に既に書き込まれている転送ブロックを読み出す。なお、記憶領域は２面以上としてもよいことは勿論である。
【０１５３】
このような動作により、記録装置１は、ユーザ・データを記録データとして出力する処理において、ユーザ・データ方向Ｑの順にＥＤＣ付加及びスクランブルを行ない、一旦これらの処理が終了したデータをデータ・バッファに書き戻し、その後レコーディング・フレーム方向Ｐの順に改めて読み出しする必要がなくなる。よって、データ・バッファ２をＳＲＡＭ等の高速にランダムアクセス可能な高価なメモリとすることなく、記録データの高速転送が可能となる。また、上述したように、パス１におけるデータ・バッファ２へのアクセス量を低減するため、エンコード速度の向上を図り、電力消費量を低減することができる光記録ディスクエンコード装置又は記録装置を提供することができる。
【０１５４】
実施の形態２．    
次に、本発明の実施の形態２について説明する。図２８は、本発明の実施の形態２にかかる記録装置を示す図である。なお、図２８に示す本実施の形態２において、図４に示す実施の形態１と同一構成要素には同一の符号を付しその詳細な説明は省略する。本実施の形態にかかる記録装置８１は、図４に示すエンコード回路４の代わりにエンコード回路８４を有する。エンコード回路８４は、図４に示すエンコード回路４と同様にパス１において偶数セクタの一部のＥＤＣ演算を先に行なっておき、パス２においてＥＤＣを算出する。ここで、上述の実施の形態１にかかるエンコード回路４のスクランブル処理部は、ユーザ・データにＥＤＣを付加してからスクランブル処理するものであったが、本実施の形態におけるエンコード回路８４のスクランブル処理部は、ユーザ・データとＥＤＣを別々にスクランブルし、スクランブルしたユーザ・データにスクランブルしたＥＤＣを付加するものである。
【０１５５】
このため、パス２において、チャネルＣＨ２からのユーザ・データは、ＥＤＣ生成部３４に供給されると共にスクランブル回路９６に供給される。スクランブル回路９６は、スクランブル値生成部９７からユーザ・データに対応するスクランブル値を受け取りスクランブル処理し、スクランブル処理したユーザ・データ（スクランブル済ユーザ・データ）を置き換えバッファ３８に供給する。スクランブル済ユーザ・データは、ＥＣＣ生成部３９にも供給される。
【０１５６】
一方、ＥＤＣ生成部３４にて上述のように生成されたＥＤＣは、本実施の形態において新たに設けられたスクランブル回路９８に供給される。スクランブル回路９８は、ＥＤＣのスクランブル処理を実行する。スクランブル回路９８は、ＥＤＣに対応するスクランブル値をスクランブル値生成部９７から受け取り、ＥＤＣをスクランブルして統合部９５及びＥＣＣ生成部３９に供給する。
【０１５７】
スクランブルされたユーザ・データを受け取った上述の置き換えバッファ９８は、これを統合部９５に供給する。統合部９５は、エンコード回路９５の統合部３５と異なり、スクランブル済みのユーザ・データを置き換えバッファ９６から受け取り、スクランブル済みのＥＤＣをスクランブル回路９８から受け取り、これらを統合して記録データとして出力する。
【０１５８】
また、ＥＣＣ生成部３９は、スクランブル済のユーザ・データをスクランブル回路９６から受け取ると共にＥＤＣ付加の適切なタイミングにてスクランブルされたＥＤＣをスクランブル回路９８から受け取り、３２セクタ分のＥＣＣを生成する。このＥＣＣは、ＥＣＣバッファ４０を介して出力される。
【０１５９】
本実施の形態においても、上述の実施の形態１にかかるエンコード回路４と同様に、パス１において、偶数セクタの後半部分のユーザ・データのみを受け取りＥＤＣ中間値を生成しておき、パス２において、偶数セクタにおいては、ＥＤＣ中間値を使用してＥＤＣを生成する。また、奇数セクタにおいては、ユーザ・データ及び期待値からＥＤＣを直接算出する。これにより、パス１において、上述の参照例と比べるとデータ・バッファ３から読み出すユーザ・データを約１／４に減少させることができ、データ・バッファ３へのアクセス量を低減することができるという実施の形態１と同様の効果を奏する。
【０１６０】
更に、エンコード回路４においては、ＥＤＣを付加したデータをスクランブルしていたのに対し、ＥＤＣを付加する前にスクランブル処理し、スクランブル済のユーザ・データにスクランブル済のＥＤＣを付加する。このことにより、ＥＤＣを算出して付加するまでのタイミングに自由度を持たせることができる。
【０１６１】
なお、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。例えば、上述の実施の形態では、ハードウェアの構成として説明したが、これに限定されるものではなく、任意の処理を、ＣＰＵ（Central Processing Unit）にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、記録媒体に記録して提供することも可能であり、また、インターネットその他の伝送媒体を介して伝送することにより提供することも可能である。
【０１６２】
また、上述の変形例にて説明したように、ＥＤＣ付加タイミングは、スクランブル処理の前であっても後であってもよく、ＥＤＣを付加するための各回路構成、例えば統合部、スクランブル回路、スクランブル値生成部、置き換えバッファなどへのデータ供給順序、タイミング等は、上記に限らず種々の変更が可能である。
【図面の簡単な説明】
【０１６３】
【図１】ブルーレイディスクにおけるデータ・ブロックのデータの並び順を説明する図である。
【図２】セクタＳ０、Ｓ１からなるエリアを拡大して示す図である。
【図３】特願２００５−０６０３６４号に記載の記録装置のうち、誤り検出符号を算出する部分のみを抽出して示す図である。
【図４】本発明の実施の形態１にかかるディスクエンコード装置示す模式図である。
【図５】本発明の実施の形態において、パス１、２に使用されるユーザ・データを説明するための図である。
【図６】データ・ブロックにおける転送ブロックを示す図である。
【図７】パスＳ１及びパスＳ２におけるデータ処理タイミングを示す図である。
【図８】本発明の実施の形態にかかる記録装置がＥＤＣ算出の際に使用する期待値を説明するための図である。
【図９】ＥＤＣ算出の概念を説明するための図である。
【図１０】期待値生成方法を示すフローチャートである。
【図１１】本発明の実施の形態にかかる記録装置のパス１における処理を説明するための図である。
【図１２】本発明の実施の形態にかかる記録装置においてパス１の処理を実行するＥＤＣ生成部の詳細の一例を示す図である。
【図１３】同ＥＤＣ生成部におけるＥＤＣ期待値生成部の一例を示す図である。
【図１４】同ＥＤＣ生成部が参照するＥＤＣテーブルと初期期待値との関係を示す模式図である。
【図１５】本発明の実施の形態にかかる記録装置のパス２における処理を説明するための図である。
【図１６】本発明の実施の形態にかかる記録装置においてパス２の処理を実行するＥＤＣ生成部の詳細の一例を示す図である。
【図１７】パス１のＥＤＣ生成処理方法を示すフローチャートである。
【図１８】パス２のＥＤＣ生成処理方法を示すフローチャートである。
【図１９】ＥＤＣフラグ及びＥＤＣエリアフラグを説明するための図である。
【図２０】図１８に示すステップＳ３１の詳細を示すフローチャートである。
【図２１】図１８に示すステップＳ３５の詳細を示すフローチャートである。
【図２２】図１８に示すステップＳ４１の詳細を示すフローチャートである。
【図２３】同じく、図１８に示すステップＳ４１の詳細を示すフローチャートである。
【図２４】ＥＤＣテーブルの更新方法を説明する図である。
【図２５】図１８に示すステップＳ４２の詳細を示すフローチャートである。
【図２６】セクタカウンタの更新方法を説明する図である。
【図２７】本発明の実施の形態における効果を説明するための図である。
【図２８】本発明の実施の形態２にかかるディスクエンコード装置示す模式図である。
【図２９】ブルーレイディスクのデータ構成を説明する図である。
【図３０】ＥＣＣクラスタのフォーマットを示す模式図である。
【図３１】ＬＤＣブロックを示す模式図である。
【図３２】ユーザ・データとアドレス情報とからＲＵＢを生成するまでの各データのエンコード順序を示す図である。
【図３３】特許文献１に記載の従来の再生装置を示すブロック図である。
【符号の説明】
【０１６４】
１  記録装置
２,１１  データ・バッファ
３,１２  バッファ・コントローラ
４,８４  エンコード回路
１３  ＥＤＣ生成部
１４，３３  ＥＤＣバッファ
１５，３５,９５  統合部
２１，３８,９８  置き換えバッファ
２２，３６,９６,９８  スクランブル回路
３１，３４  ＥＤＣ生成部
３２  ＥＤＣテーブル
３７,９７  スクランブル値生成部
３９  ＥＣＣ生成部
４０  ＥＣＣバッファ
４１  データ・ブロック
５０  シフト・レジスタ
６１  列カウンタ
６２，６４，６８，７２，７４，７８  選択部
６３，７３  期待値生成部
６５，７５  ＸＯＲ回路
６７，７７  セクタカウンタ
７１  列カウンタ
【図１】
0004620541.tif 000002
【図２】
0004620541.tif 000003
【図３】
0004620541.tif 000004
【図４】
0004620541.tif 000005
【図５】
0004620541.tif 000006
【図６】
0004620541.tif 000007
【図７】
0004620541.tif 000008
【図８】
0004620541.tif 000009
【図９】
0004620541.tif 000010
【図１０】
0004620541.tif 000011
【図１１】
0004620541.tif 000012
【図１２】
0004620541.tif 000013
【図１３】
0004620541.tif 000014
【図１４】
0004620541.tif 000015
【図１５】
0004620541.tif 000016
【図１６】
0004620541.tif 000017
【図１７】
0004620541.tif 000018
【図１８】
0004620541.tif 000019
【図１９】
0004620541.tif 000020
【図２０】
0004620541.tif 000021
【図２１】
0004620541.tif 000022
【図２２】
0004620541.tif 000023
【図２３】
0004620541.tif 000024
【図２４】
0004620541.tif 000025
【図２５】
0004620541.tif 000026
【図２６】
0004620541.tif 000027
【図２７】
0004620541.tif 000028
【図２８】
0004620541.tif 000029
【図２９】
0004620541.tif 000030
【図３０】
0004620541.tif 000031
【図３１】
0004620541.tif 000032
【図３２】
0004620541.tif 000033
【図３３】
0004620541.tif 000034