(57)【特許請求の範囲】
【請求項１】
データを記録媒体に記録する制御を行う記録制御装置において、
前記記録媒体の記録領域のうちの、前記データのリアルタイム再生を保証するための所定の大きさの連続した空き領域を、予約領域として予約する領域予約手段と、
前記予約領域に対して、その予約領域に記録することができる所定のパケット単位の前記データを記録させる制御を行う記録手段と、
前記予約領域のうちの、前記所定のパケット単位のデータが記録されずに残った記録領域を、空き領域として開放する領域開放手段と、
前記領域予約手段において予約された前記所定の大きさの連続した空き領域に続く連続した空き領域を、前記予約領域として追加予約する追加予約手段と、
前記領域予約手段において予約された前記所定の大きさの連続した空き領域に続く連続した空き領域が、前記所定の大きさ未満であるかどうかを判定する大きさ判定手段と
を備え、
前記追加予約手段は、前記記録手段によって前記データが記録される際に、前記領域予約手段において予約された前記所定の大きさの連続した空き領域に続く連続した空き領域が、前記所定の大きさ未満である場合には、その所定の大きさ未満の連続した空き領域を、前記予約領域として追加予約し、この追加予約された空き領域を含む予約領域に前記データが記録されるようにするとともに、前記領域予約手段において予約された前記所定の大きさの連続した空き領域に続く連続した空き領域が、前記所定の大きさ以上である場合には、前記追加予約を行わずに前記所定の大きさの連続した空き領域に前記データが記録されるようにする
ことを特徴とする記録制御装置。
【請求項２】
前記記録媒体に記録すべきデータが存在するかどうかを判定するデータ存在判定手段をさらに備え、
前記領域予約手段において、所定の大きさの連続した空き領域を予約し、前記記録手段において、前記所定のパケット単位のデータを前記予約領域に記録することを、前記記録媒体に記録すべきデータが存在しなくなるまで、繰り返す
ことを特徴とする請求項１に記載の記録制御装置。
【請求項３】
前記領域予約手段は、前記記録媒体上の前記所定の大きさ以上の連続した空き領域のうち、最大の連続した空き領域、前記記録媒体に対する読み書き順で最も前の位置にある連続した空き領域、または直前にデータが記録された記録領域に最も近い位置の空き領域の中から、前記所定の大きさの連続した空き領域を予約する
ことを特徴とする請求項２に記載の記録制御装置。
【請求項４】
前記予約領域において、前記所定のパケット単位のデータが記録されずに残った記録領域があるかどうかを判定する残記録領域判定手段をさらに備え、
前記領域解放手段は、前記予約領域において、前記所定のパケット単位のデータが記録されずに残った記録領域がある場合に、その残った記録領域を開放する
ことを特徴とする請求項１に記載の記録制御装置。
【請求項５】
データを、前記記録媒体の物理的単位領域とアラインメントをとった大きさのパケットにパケット化するパケット化手段をさらに備え、
前記記録手段は、前記パケット単位のデータを記録する
ことを特徴とする請求項１に記載の記録制御装置。
【請求項６】
前記パケット化手段は、
データを記憶するデータ記憶手段と、
前記データ記憶手段におけるデータの記憶量を判定する記憶量判定手段と、
前記データ記憶手段におけるデータの記憶量が、所定の基準値となった場合に、前記記録媒体の物理的単位領域とアラインメントをとった大きさであって、前記所定の基準値に最も近い大きさのデータを、前記データ記憶手段から抽出し、前記記録媒体の物理的単位領域とアラインメントをとった大きさのパケットとして出力するデータ抽出手段と
を有する
ことを特徴とする請求項５に記載の記録制御装置。
【請求項７】
前記データ抽出手段は、前記所定の基準値以下の、前記記録媒体の物理的単位領域とアラインメントをとった最大の大きさのデータを、前記データ記憶手段から抽出する
ことを特徴とする請求項６に記載の記録制御装置。
【請求項８】
複数のデータの系列をパケット化する複数の前記パケット化手段と、
複数の前記パケット化手段が出力する、複数のデータの系列それぞれのパケットを多重化する多重化手段と
をさらに備える
ことを特徴とする請求項５に記載の記録制御装置。
【請求項９】
前記多重化手段は、複数のデータの系列それぞれのパケットを、そのパケットに配置されたデータの再生時刻が早いものから順に多重化する
ことを特徴とする請求項８に記載の記録制御装置。
【請求項１０】
前記多重化手段は、複数のデータの系列それぞれを前記所定の基準値に等しい大きさのパケットにパケット化したとした場合の、そのパケットに配置されたデータの再生時刻が早い順に、複数のデータの系列それぞれのパケットを多重化する
ことを特徴とする請求項８に記載の記録制御装置。
【請求項１１】
複数の前記パケット化手段における前記所定の基準値は、それぞれ、所定の再生時間に対応する各系列のデータ量である
ことを特徴とする請求項８に記載の記録制御装置。
【請求項１２】
データを記録媒体に記録する制御を行う記録制御方法において、
前記記録媒体の記録領域のうちの、前記データのリアルタイム再生を保証するための所定の大きさの連続した空き領域を、予約領域として予約する領域予約ステップと、
前記予約領域に対して、その予約領域に記録することができる所定のパケット単位の前記データを記録させる制御を行う記録ステップと、
前記予約領域のうちの、前記所定のパケット単位のデータが記録されずに残った記録領域を、空き領域として開放する領域開放ステップと、
前記領域予約ステップの処理において予約された前記所定の大きさの連続した空き領域に続く連続した空き領域を、前記予約領域として追加予約する追加予約ステップと、
前記領域予約ステップの処理において予約された前記所定の大きさの連続した空き領域に続く連続した空き領域が、前記所定の大きさ未満であるかどうかを判定する大きさ判定ステップと
を備え、
前記追加予約ステップの処理は、前記記録ステップの処理によってデータが記録される際に、前記領域予約ステップの処理において予約された前記所定の大きさの連続した空き領域に続く連続した空き領域が、前記所定の大きさ未満である場合には、その所定の大きさ未満の連続した空き領域を、前記予約領域として追加予約し、この追加予約された空き領域を含む予約領域に前記データが記録されるようにするとともに、前記領域予約ステップの処理において予約された前記所定の大きさの連続した空き領域に続く連続した空き領域が、前記所定の大きさ以上である場合には、前記追加予約を行わずに前記所定の大きさの連続した空き領域に前記データが記録されるようにする
ことを特徴とする記録制御方法。
【請求項１３】
データを記録媒体に記録する制御を行う記録制御処理を、コンピュータに行わせるプログラムにおいて、
前記記録媒体の記録領域のうちの、前記データのリアルタイム再生を保証するための所定の大きさの連続した空き領域を、予約領域として予約する領域予約ステップと、
前記予約領域に対して、その予約領域に記録することができる所定のパケット単位の前記データを記録させる制御を行う記録ステップと、
前記予約領域のうちの、前記所定のパケット単位のデータが記録されずに残った記録領域を、空き領域として開放する領域開放ステップと、
前記領域予約ステップの処理において予約された前記所定の大きさの連続した空き領域に続く連続した空き領域を、前記予約領域として追加予約する追加予約ステップと、
前記領域予約ステップの処理において予約された前記所定の大きさの連続した空き領域に続く連続した空き領域が、前記所定の大きさ未満であるかどうかを判定する大きさ判定ステップと
を備え、
前記追加予約ステップの処理は、前記記録ステップの処理によってデータが記録される際に、前記領域予約ステップの処理において予約された前記所定の大きさの連続した空き領域に続く連続した空き領域が、前記所定の大きさ未満である場合には、その所定の大きさ未満の連続した空き領域を、前記予約領域として追加予約し、この追加予約された空き領域を含む予約領域に前記データが記録されるようにするとともに、前記領域予約ステップの処理において予約された前記所定の大きさの連続した空き領域に続く連続した空き領域が、前記所定の大きさ以上である場合には、前記追加予約を行わずに前記所定の大きさの連続した空き領域に前記データが記録されるようにする
ことを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、記録制御装置および記録制御方法、並びにプログラムに関し、特に、例えば、光ディスク等の記録媒体に対するデータの読み書き時におけるシークの頻度を小さくすることができるように、データを記録することができるようにする記録制御装置および記録制御方法、並びにプログラムに関する。
【０００２】
【従来の技術】
近年においては、記録レートおよび読み出しレートが大きく向上した光ディスクその他の記録媒体が実用化されており、比較的高画質で長時間のビデオデータの記録が可能となってきている。
【０００３】
また、本件出願人は、同一内容の画像について、高解像度のビデオデータと低解像度のビデオデータを光ディスクに記録し、編集作業等の用途に応じて、最適な解像度のビデオデータを選択する方法について、先に提案している（例えば、特許文献１）。
【０００４】
【特許文献１】
特開平11-136631号公報。
【０００５】
【発明が解決しようとする課題】
しかしながら、記録レートや読み出しレートが高くても、光ディスクにおいて、ビデオデータのストリームが、不連続に、いわば細切れ状態で記録されている場合には、その不連続な部分で、シークが発生する。そして、シークによって、ビデオデータの読み出しが、その再生すべき時刻に間に合わない場合には、ビデオデータの再生が途切れることになる。
【０００６】
本発明は、このような状況に鑑みてなされたものであり、例えば、光ディスクなどの記録媒体に対するデータの読み書き時におけるシークの頻度を小さくすることができるようにするものである。
【０００７】
【課題を解決するための手段】
本発明の記録制御装置は、記録媒体の記録領域のうちの、データのリアルタイム再生を保証するための所定の大きさの連続した空き領域を、予約領域として予約する領域予約手段と、予約領域に対して、その予約領域に記録することができる所定のパケット単位のデータを記録させる制御を行う記録手段と、予約領域のうちの、所定のパケット単位のデータが記録されずに残った記録領域を、空き領域として開放する領域開放手段と、領域予約手段において予約された所定の大きさの連続した空き領域に続く連続した空き領域を、予約領域として追加予約する追加予約手段と、領域予約手段において予約された所定の大きさの連続した空き領域に続く連続した空き領域が、所定の大きさ未満であるかどうかを判定する大きさ判定手段とを備え、追加予約手段は、記録手段によってデータが記録される際に、領域予約手段において予約された所定の大きさの連続した空き領域に続く連続した空き領域が、所定の大きさ未満である場合には、その所定の大きさ未満の連続した空き領域を、予約領域として追加予約し、この追加予約された空き領域を含む予約領域にデータが記録されるようにするとともに、領域予約手段において予約された所定の大きさの連続した空き領域に続く連続した空き領域が、所定の大きさ以上である場合には、追加予約を行わずに所定の大きさの連続した空き領域にデータが記録されるようにすることを特徴とする。
【０００８】
本発明の記録制御方法は、記録媒体の記録領域のうちの、データのリアルタイム再生を保証するための所定の大きさの連続した空き領域を、予約領域として予約する領域予約ステップと、予約領域に対して、その予約領域に記録することができる所定のパケット単位のデータを記録させる制御を行う記録ステップと、予約領域のうちの、所定のパケット単位のデータが記録されずに残った記録領域を、空き領域として開放する領域開放ステップと、領域予約ステップの処理において予約された所定の大きさの連続した空き領域に続く連続した空き領域を、予約領域として追加予約する追加予約ステップと、領域予約ステップの処理において予約された所定の大きさの連続した空き領域に続く連続した空き領域が、所定の大きさ未満であるかどうかを判定する大きさ判定ステップとを備え、追加予約ステップの処理は、記録ステップの処理によってデータが記録される際に、領域予約ステップの処理において予約された所定の大きさの連続した空き領域に続く連続した空き領域が、所定の大きさ未満である場合には、その所定の大きさ未満の連続した空き領域を、予約領域として追加予約し、この追加予約された空き領域を含む予約領域にデータが記録されるようにするとともに、領域予約ステップの処理において予約された所定の大きさの連続した空き領域に続く連続した空き領域が、所定の大きさ以上である場合には、追加予約を行わずに所定の大きさの連続した空き領域にデータが記録されるようにすることを特徴とする。
【０００９】
本発明のプログラムは、データを記録媒体に記録する制御を行う記録制御処理を、コンピュータに行わせるプログラムにおいて、記録媒体の記録領域のうちの、データのリアルタイム再生を保証するための所定の大きさの連続した空き領域を、予約領域として予約する領域予約ステップと、予約領域に対して、その予約領域に記録することができる所定のパケット単位のデータを記録させる制御を行う記録ステップと、予約領域のうちの、所定のパケット単位のデータが記録されずに残った記録領域を、空き領域として開放する領域開放ステップと、領域予約ステップの処理において予約された所定の大きさの連続した空き領域に続く連続した空き領域を、予約領域として追加予約する追加予約ステップと、領域予約ステップの処理において予約された所定の大きさの連続した空き領域に続く連続した空き領域が、所定の大きさ未満であるかどうかを判定する大きさ判定ステップとを備え、追加予約ステップの処理は、記録ステップの処理によってデータが記録される際に、領域予約ステップの処理において予約された所定の大きさの連続した空き領域に続く連続した空き領域が、所定の大きさ未満である場合には、その所定の大きさ未満の連続した空き領域を、予約領域として追加予約し、この追加予約された空き領域を含む予約領域にデータが記録されるようにするとともに、領域予約ステップの処理において予約された所定の大きさの連続した空き領域に続く連続した空き領域が、所定の大きさ以上である場合には、追加予約を行わずに所定の大きさの連続した空き領域にデータが記録されるようにすることを特徴とする。
【００１０】
本発明の記録制御装置および記録制御方法、並びにプログラムにおいては、記録媒体の記録領域のうちの、所定の大きさの連続した空き領域が、予約領域として予約され、その予約領域に対して、その予約領域に記録することができる所定のパケット単位のデータが記録される。そして、予約領域のうちの、所定のパケット単位のデータが記録されずに残った記録領域が、空き領域として開放される。また、予約された所定の大きさの連続した空き領域に続く連続した空き領域が、所定の大きさ未満であるかどうかが判定され、データが記録される際に、予約された所定の大きさの連続した空き領域に続く連続した空き領域が、所定の大きさ未満である場合には、その所定の大きさ未満の連続した空き領域が、予約領域として追加予約され、この追加予約された空き領域を含む予約領域にデータが記録されるようにされるとともに、予約された所定の大きさの連続した空き領域に続く連続した空き領域が、所定の大きさ以上である場合には、追加予約が行われずに所定の大きさの連続した空き領域にデータが記録されるようにされる。
【００１１】
【発明の実施の形態】
図１は、本発明を適用した記録再生システムの一実施の形態の構成例を示している。
【００１２】
図１の記録再生システムは、コンピュータ１をベースに構成されており、コンピュータ１は、光ディスク３に対して、データを読み書きする、例えば、CD-R(Compact Disc Recordable)，CD-RW(CD ReWritable)，DVD-RAM(Digital Versatile Disc Random Access Memory)ドライブとしてのドライブ２を内蔵している。即ち、ドライブ２には、光ディスク３を容易に着脱することができるようになっており、ドライブ２は、コンピュータ１の制御の下、光ディスク３にデータを記録し（書き込み）、また、光ディスク３からデータを読み出す。
【００１３】
図１の実施の形態では、画像データや音声データなどのAV(Audio Visual)データを出力し、必要に応じて、AVデータを入力することができるVTR(Video Tape Recorder)や、TV(Television)チューナなどでなる信号入出力装置４が、外部機器として、コンピュータ１に接続されている。コンピュータ１は、信号入出力装置４が出力するAVデータを受信し、ドライブ２に供給して、光ディスク３に記録させる。また、コンピュータ１は、ドライブ２に、光ディスク３に記録されたAVデータを読み出させ、例えば、その内蔵するディスプレイやスピーカから出力させる。あるいは、コンピュータ１は、光ディスク３から読み出されたAVデータを、例えば、信号入出力装置４に記録等させる。
【００１４】
図２は、図１のコンピュータ１のハードウェア構成例を示している。
【００１５】
CPU(Central Processing Unit)１１は、例えば、ユーザによって入力部１６が操作等されることにより指令が入力されると、それにしたがって、ROM(Read Only Memory)１２に格納されているプログラムを実行する。あるいは、また、CPU１１は、HD(Hard Disk)１５に格納されているプログラム、衛星若しくはネットワークから転送され、通信I/F１８で受信されてHD１５にインストールされたプログラム、またはドライブ２に装着された光ディスク３などのリムーバブル記録媒体から読み出されてHD１５にインストールされたプログラムを、RAM(Random Access Memory)１４にロードして実行する。これにより、CPU１１は、後述するフローチャートにしたがった各種の処理を行う。
【００１６】
ROM１２は、例えば、IPL(Initial Program Loading)やBIOS(Basic Input Output System)のプログラムその他のファームウェアを記憶している。なお、ROM１２に代えて、書き換え可能なEEPROM(Electrically Erasable Programmable ROM)を採用することが可能であり、この場合、ファームウェアのバージョンアップに対処することができる。
【００１７】
メモリコントローラ１３は、例えば、DMA(Direct Memory Access)コントローラで構成され、RAM１４に対するデータの読み書きを制御する。RAM１４は、CPU１１が実行するプログラムや、CPU１１が処理を行う上で必要なデータを一時記憶する。HD15は、コンピュータ１にインストールされたプログラム（アプリケーションプログラムの他、OS(Operating System)なども含まれる）や、CPU１１が処理を行う上で必要なデータを記憶する。
【００１８】
入力部１６は、例えば、キーボードや、マウス、マイク（マイクロフォン）などで構成され、ユーザによって操作等される。そして、入力部１６は、ユーザによる操作等に対応する信号を、CPU１１に供給する。出力部１７は、例えば、ディスプレイやスピーカなどで構成され、そこに供給される画像または音声を、それぞれ表示または出力する。通信I/F(Interface)１８は、例えば、IEEE(Institute of Electrical and Electronics Engineers)1394ポートや、USB(Universal Serial Bus)ポート、LAN(Local Area Network)接続用のNIC(Network Interface Card)などで構成され、各規格に応じた通信制御を行う。
【００１９】
I/Fコントローラ１９は、ドライブ２との間で、データを、例えば、ATA(AT Attachment)等の所定の方式でやりとりするためのインタフェースとして機能する。
【００２０】
データ変換部２０は、例えば、MPEG(Moving Picture Experts Group)エンコーダ／デコーダなどで構成され、信号入出力装置４から供給されるAVデータを、MPEGエンコードし、その結果得られるMPEGストリームを、コンピュータ１のバス上に出力する。また、データ変換部２０は、コンピュータ１のバス上に出力されたMPEGストリームをMPEGデコードし、その結果得られるAVデータを、コンピュータ１のバス上に出力し、あるいは、信号入出力装置４に供給する。
【００２１】
なお、以上のCPU１１乃至データ変換部２０は、コンピュータ１内部のバスを介して相互に接続されている。
【００２２】
以上のように構成されるコンピュータ１では、CPU１１がコンピュータ１にインストールされたプログラムを実行することにより、後述する各種の処理が行われる。
【００２３】
ここで、CPU１１が実行するプログラムは、コンピュータ１に内蔵されている記録媒体としてのHD15やROM12に予め記録しておくことができる。
【００２４】
あるいはまた、プログラムは、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory)，MO(Magneto Optical)ディスク，DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納（記録）しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
【００２５】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータ１にインストールする他、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータ１に無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータ１に有線で転送し、コンピュータ１では、そのようにして転送されてくるプログラムを、通信I/F１８で受信し、内蔵するHD１５にインストールすることができる。
【００２６】
ここで、本明細書において、コンピュータ１に各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理（例えば、並列処理あるいはオブジェクトによる処理）も含むものである。
【００２７】
また、プログラムは、１のCPUにより処理されるものであっても良いし、複数のCPUによって分散処理されるものであっても良い。さらに、プログラムは、遠方のCPUに転送されて実行されるものであっても良い。
【００２８】
次に、図３は、図２のCPU１１がプログラムを実行することにより実現されるコンピュータ１の機能的構成例を示している。
【００２９】
コンピュータ１では、OS３１の管理の下で、各種のアプリケーションプログラム３４が実行される。また、OS３１の管理下では、ファイルシステムドライバ３３やデバイスドライバ３２が動作している。
【００３０】
アプリケーションプログラム３４は、ドライブ２に装着された光ディスク３へのデータの読み書きを行う場合、ファイルシステムドライバ３３に対して、データを記録する、あるいは、データが記録されたファイルを指定し、ファイルシステムドライバ３３は、指定されたファイルの光ディスク３上の位置情報を、デバイスドライバ３２に指定する。そして、デバイスドライバ３２は、ファイルシステムドライバ３３からの位置情報が表す光ディスク３上の記録領域に対するデータの読み書きを、ドライブ２に要求する。
【００３１】
本実施の形態では、例えば、アプリケーションプログラム３４に、年輪アロケーションマネージャ３５が組み込まれており、年輪アロケーションマネージャ３５は、光ディスク３に対するデータの読み書き制御を、その光ディスク３におけるデータの配置（アロケーション）を制御しながら行う。
【００３２】
なお、年輪アロケーションマネージャ３５が組み込まれたアプリケーションプログラム３４としては、例えば、光ディスク３に対して読み書きを行うための、いわゆるライティングソフトウェアなどを採用することができる。また、ファイルシステムドライバ３３としては、例えば、CD-R/RWおよびDVDのファイルシステムドライバに採用されているUDF(Universal Disk Format)ドライバなどを用いることができる。
【００３３】
ここで、本実施の形態においてファイルシステムドライバ３３として採用するUDFは、光ディスク３へのデータ（ファイル）の配置を管理するアロケーションマネージャを有するが、年輪アロケーションマネージャ３５は、このUDFが有するアロケーションマネージャと連携して、後述するパケットとしての年輪データの、光ディスク３への配置を管理（制御）する。
【００３４】
年輪アロケーションマネージャ３５は、記録スケジューラ３６、再生スケジューラ３７、書き込み制御部３８、および読み出し制御部３９などから構成される。記録スケジューラ３６は、図示せぬ他のアプリケーションや、ユーザが入力部１６を操作することによって、光ディスク３へのデータの記録の要求があった場合に、そのデータの光ディスク３への記録（書き込み）順をスケジューリングする。そして、書き込み制御部３８は、記録スケジューラ３６によるスケジューリング結果にしたがい、ファイルシステムドライバ３３に対して、光ディスク３へのデータの記録を要求する。ファイルシステムドライバ３３は、書き込み制御部３８からの要求にしたがい、データを、デバイスドライバ３２およびドライブ２を介して、光ディスク３に書き込む。
【００３５】
ここで、ドライブ２において、光ディスク３に対するデータの書き込みおよび読み出しは、例えば、光ディスク３の内周から外周方向に向かって行われるものとする。また、ドライブ２は、光ディスク３に対する最小アクセス単位である物理セクタを１以上集めた物理ブロック（物理的単位領域）を、ECC(Error Checking and Correction)処理を施す単位として、その物理ブロック単位で、データの読み書きを行う。なお、物理ブロックには、例えば、光ディスク３の内周から外周に向かって昇順の物理ブロック番号が付されており、各物理ブロックには、論理ブロックが割り当てられている。但し、光ディスク３に対するデータの読み書きは、光ディスク３の外周から内周方向に向かって行うようにすることが可能である。また、物理ブロックを構成する物理セクタの数は、特に限定されるものではない。
【００３６】
デバイスドライバ３２は、ファイルシステムドライバ３３からデータの読み書きの要求があると、その読み書きの要求を、その読み書きを行う論理ブロックに付されている論理ブロック番号（以下、適宜、LBN(Logical Block Number)という）とともに、ドライブ２に供給する。ドライブ２は、デバイスドライバ３２から供給されるLBNの論理ブロックに割り当てられている光ディスク３の物理ブロックに対して、データの読み書きを行う。
【００３７】
なお、物理ブロックに割り当てられている論理ブロックには、例えば、その物理ブロックの物理ブロック番号に比例するLBNが付されているものとする。この場合、複数の論理ブロックそれぞれのLBNが連続している場合には、その複数の論理ブロックに割り当てられている複数の物理ブロックそれぞれの物理ブロック番号も連続したものとなり、その結果、複数の物理ブロックも連続した記録領域となる。即ち、複数の論理ブロックが連続している場合には、その複数の論理ブロックに割り当てられている複数の物理ブロックも連続したものとなる。
【００３８】
ここで、上述したように、光ディスク３に対するデータの書き込みおよび読み出しは、例えば、光ディスク３の内周から外周方向に向かって行われ、さらに、物理ブロックには、光ディスク３の内周から外周に向かって昇順の物理ブロック番号が付されているととともに、論理ブロックには、物理ブロック番号に比例するLBNが付されている。従って、ここでは、光ディスク３に対するデータの書き込みおよび読み出しは、物理ブロック番号で考えても、また、LBNで考えても、番号の小さい順に行われる。
【００３９】
再生スケジューラ３７は、図示せぬ他のアプリケーションや、ユーザが入力部１６を操作することによって、光ディスク３からのデータの読み出しの要求があった場合に、そのデータを光ディスク３から読み出す読み出し順をスケジューリングする。そして、読み出し制御部３９は、再生スケジューラ３７によるスケジューリング結果にしたがい、ファイルシステムドライバ３３に対して、光ディスク３からのデータの読み出しを要求する。ファイルシステムドライバ３３は、読み出し制御部３９からの要求にしたがい、データを、デバイスドライバ３２およびドライブ２を介して、光ディスク３から読み出す。
【００４０】
次に、図４は、光ディスク３に、関連する複数のデータ系列を記録する場合の記録方式を示している。
【００４１】
なお、図４では、関連する複数のデータ系列として、例えば、ビデオデータの系列と、そのビデオデータに付随するオーディオデータの系列とを採用している。
【００４２】
図４Ａでは、１フレームのビデオデータVと、その１フレームのビデオデータVに付随するオーディオデータAとが、交互に配置されており、以下、適宜、この記録方式を、フレーム単位でのインタリーブ方式という。
【００４３】
図４Ｂでは、ビデオデータの系列全体とオーディオデータの系列全体が、それぞれ１つのファイルとして、別々に配置されており、以下、適宜、この記録方式を、インタリーブなし方式という。
【００４４】
図４Ｃでは、１フレーム分を越えるが、ビデオデータの系列全体ではないサイズのビデオデータVと、やはり、１フレーム分を越えるが、オーディオデータの系列全体ではないサイズのオーディオデータAとが、交互に配置されている。
【００４５】
ここで、この１フレーム分を越えるが、全体ではないサイズのビデオデータとオーディオデータを交互に配置して、光ディスク３の内周から外周方向（あるいは、その逆方向）に向かって記録していった場合に、ビデオデータの記録部分と、オーディオデータの記録部分とに、例えば、異なる濃淡や色彩などを付すると、そのビデオデータの記録部分と、オーディオデータの記録部分とは、まるで、樹木の幹の横断面（木口）に形成される年輪のように見える。そこで、１フレーム分を越えるが、全体ではないサイズのビデオデータやオーディオデータなどを、以下、適宜、年輪データという。また、図４Ｃに示したように、ビデオデータとオーディオデータなどの複数のデータ系列を年輪データ単位で周期的に配置して記録する記録方式を、以下、適宜、年輪単位でのインタリーブ方式という。
【００４６】
図４Ａのフレーム単位でのインタリーブ方式では、１フレーム分のビデオデータとオーディオデータが、交互に、光ディスク３に書き込まれるから、その書き込みは、少なくとも、１フレーム分のビデオデータまたはオーディオデータをバッファリングすることができるバッファがあれば行うことができる。そして、このバッファは、１フレーム分のビデオデータまたはオーディオデータを記憶することができるもので足りるから、バッファに、ビデオデータまたはオーディオデータをバッファリングすることによる遅延（記録遅延）も短くすることができる。
【００４７】
しかしながら、フレーム単位でのインタリーブ方式では、光ディスク３に、１フレーム分のビデオデータとオーディオデータとが交互に記録されているため、例えば、ビデオデータまたはオーディオデータのいずれか一方だけを編集する、いわゆるAV(Audio Video)スプリット編集を行う場合であっても、ビデオデータとオーディオデータの両方を読み出すことになり、光ディスク３からのデータの読み出しを効率的に行うことが困難となる。
【００４８】
即ち、例えば、ビデオデータだけを編集する場合には、ビデオデータだけを読み出せば良いが、フレーム単位でのインタリーブ方式で記録された光ディスク３からビデオデータだけを読み出す場合には、１フレームのビデオデータを読み出し、その後、次の１フレームのビデオデータの記録位置までのシークを行い、その読み出しを行うことを繰り返す必要がある。しかしながら、フレーム単位のインタリーブ方式では、ある１フレームのビデオデータの記録位置から、次の１フレームのビデオデータの記録位置までの間に記録されているのは、１フレーム分のオーディオデータであり、そのような少ないオーディオデータを読み出す読み出し時間と、そのオーディオデータを読み飛ばすためのシークを行うシーク時間とを比較すると、一般的に、読み出し時間の方が、シーク時間よりも短い。従って、光ディスク３から、ビデオデータだけを読み出すよりは、ビデオデータとオーディオデータの両方を読み出す方が、全体の読み出しに要する時間は短くなる。しかしながら、編集対象でないオーディオデータも読み出すのは、効率的であるとは言い難い。
【００４９】
一方、図４Ｂのインタリーブなし方式では、ビデオデータの系列全体とオーディオデータの系列全体が、別々に配置され、光ディスク３に記録されるから、AVスプリット編集を行う場合に、ビデオデータとオーディオデータのうちの、編集対象とする方だけを、効率的に読み出すことができる。
【００５０】
しかしながら、インタリーブなし方式では、ビデオデータの系列全体とオーディオデータの系列全体が、別々にまとめて配置され、光ディスク３に記録されるため、即ち、例えば、光ディスク３の記録領域が、まとまったビデオ領域とオーディオ領域に分けられ、ビデオデータがビデオ領域に、オーディオデータがオーディオ領域に、それぞれ記録されるため、内周から外周方向に向かって、いわゆる一筆書きのように、光ディスク３へのデータの書き込みを行う場合には、ビデオデータの系列全体またはオーディオデータの系列全体をバッファリングすることのできる膨大なサイズのバッファが必要となる。そして、この膨大なサイズのバッファに、ビデオデータまたはオーディオデータをバッファリングすることによる遅延（記録遅延）も非常に長くなる。
【００５１】
そこで、インタリーブなし方式において、光ディスク３のビデオ領域へのビデオデータの書き込みと、オーディオ領域へのオーディオデータの書き込みとを、時分割で交互に行う方法がある。
【００５２】
しかしながら、この場合、ドライブ２の図示せぬピックアップが、光ディスク３のビデオ領域からオーディオ領域に移動するシークと、その逆の移動を行うシークとが頻発し、実効記録レートを著しく低下させることになる。さらに、図１の記録再生システムをカムコーダなどとして採用する場合には、対衝撃の観点からシーク動作をできるだけ避けたい。
【００５３】
そこで、図４Ｃの年輪単位でのインタリーブ方式では、ビデオデータとオーディオデータとが、年輪データ単位で交互に配置されて記録される。
【００５４】
年輪データのサイズは、上述したように、１フレーム分を越えるが、全体ではないサイズであるが、実装上は、さらに、以下の第１と第２の条件を満たすサイズであるのが望ましい。
【００５５】
即ち、第１の条件としては、光ディスク３から年輪データを読み出す時間と、その年輪データの記録領域を読み飛ばすためにシークを行うのに要するシーク時間とを比較した場合に、シーク時間の方が、読み出し時間よりも短いこと、即ち、年輪データを読み飛ばすより、読み出した方が速い場合には、フレーム単位でのインタリーブ方式（図４Ａ）を採用するのと変わらないから、年輪データを読み出すよりは、読み飛ばした方が速いことが要求される。なお、好ましくは、シーク時間の方が、読み出し時間よりも十分短くなっていることが望ましい。
【００５６】
第２の条件としては、年輪データのサイズが、年輪データをバッファリングする現実的な大きさのバッファが存在するような大きさであることが要求される。即ち、年輪単位でのインタリーブ方式では、ビデオデータとオーディオデータとが年輪データ単位で交互に配置されて記録されるから、その記録時には、少なくとも、年輪データ単位のビデオデータまたはオーディオデータをバッファリングするバッファが必要となる。従って、年輪データ単位のビデオデータまたはオーディオデータをバッファリングすることができるバッファが現実に存在しなければ、年輪単位でのインタリーブ方式によってデータの記録を行うことができないから、第２の条件として、年輪データをバッファリングする現実的な大きさのバッファが存在することが要求される。
【００５７】
なお、年輪データを、バッファにバッファリングしている間は、そのバッファリング中の年輪データを光ディスク３に記録することはできず、バッファへの年輪データのバッファリングによる遅延（記録遅延）が生じるが、この遅延時間は、バッファに記憶される年輪データのサイズ、即ち、バッファのサイズに対応する。従って、例えば、システム設計上、バッファへの年輪データのバッファリングによる遅延時間が制限されている場合には、バッファのサイズは、その制限されている時間内に、年輪データのバッファリングによる遅延時間が収まるものであることが必要となる。
【００５８】
第１の条件は、年輪データのサイズがなるべく大となることを要求しているのに対して、第２の条件は、年輪データのサイズがなるべく小となることを要求しており、従って、第１と第２の条件は、相反している。
【００５９】
ところで、年輪データを読み飛ばすシークを行うシーク時間の方が、年輪データを読み出す読み出し時間よりも短いという第１の条件を満たすには、一般に、年輪データが、光ディスク３の複数のトラックに跨っていること、つまり、年輪データのサイズが、光ディスク３の１トラック分より大であることが必要である。なお、年輪データについてのシーク時間の方を、その読み出し時間よりも十分短くするには、年輪データのサイズは、一般に、光ディスク３の数トラック分とする必要がある。また、１トラックのサイズは、そのトラックの半径位置にもよるが、数百KB(Kilo-Byte)程度である。
【００６０】
次に、年輪データをバッファリングする現実的な大きさのバッファが存在するという第２の条件については、バッファの現実的なサイズの上限としては、現在、例えば、数十MB(Mega-Byte)程度である。
【００６１】
従って、年輪データのサイズは、大雑把ではあるが、数MB乃至数十MB程度とするのが妥当である。このサイズは、ディスク３上では、大雑把に数十トラック程度に相当する。ここで、このサイズで、複数のデータの系列としての、例えば、ビデオデータとオーディオデータなどが交互に書き込まれた光ディスク３の記録領域の様子が木の年輪に似ていることから、そのサイズのデータを、上述したように、年輪データと呼ぶこととしている。
【００６２】
なお、上述の場合には、光ディスク３に記録する、関連する複数のデータ系列として、ビデオデータとオーディオデータを採用することとしたが、この複数のデータ系列としては、ビデオデータやオーディオデータ以外のデータや、ビデオデータおよびオーディオデータに加えて他のデータを採用することが可能である。
【００６３】
また、年輪単位でのインタリーブ方式は、複数のデータ系列ではなく、１つのデータ系列を光ディスク３に記録する場合にも採用可能である。
【００６４】
次に、図５は、図３の記録スケジューラ３６の構成例を示している。
【００６５】
なお、図５では、光ディスク３に記録する関連する複数のデータ系列として、例えば、ビデオデータ、そのビデオデータに付随するオーディオデータ、そのビデオデータの解像度を低下させたビデオデータであるローレゾデータの３つを採用するものとして、記録スケジューラ３６を図示してある。
【００６６】
即ち、記録スケジューラ３６は、ビデオデータ、オーディオデータ、ローレゾデータそれぞれを年輪データにパケット化するパケット化部５１，５２，５３を有している。
【００６７】
ここで、記録スケジューラ３６には、ビデオデータ、そのビデオデータに付随するオーディオデータ、そのビデオデータの解像度を低下させたローレゾデータが供給されるようになっているが、これらのビデオデータ、オーディオデータ、およびローレゾデータは、例えば、図２のデータ変換部２０において、信号入出力装置４から供給されるビデオデータやオーディオデータを変換することによって得られるものとする。
【００６８】
即ち、記録スケジューラ３６に供給されるビデオデータとしては、例えば、信号入出力装置４からデータ変換部２０に供給される（ベースバンド）のビデオデータのフレームすべてをI(Intra)ピクチャとして、MPEG方式でエンコードしたものなどを採用することができる。記録スケジューラ３６に供給されるオーディオデータとしては、例えば、信号入出力装置４からデータ変換部２０に供給される（ベースバンド）のオーディオデータをMPEG方式でエンコードしたものなどを採用することができる。記録スケジューラ３６に供給されるローレゾデータとしては、例えば、信号入出力装置４からデータ変換部２０に供給される（ベースバンド）のビデオデータの画素数や、画素に割り当てられているビット数、フレームレートを低下させ、その空間解像度（画素数）や、レベル方向の解像度（画素に割り当てられているビット数）、時間方向の解像度（フレームレート）を低下させたビデオデータを、MPEG方式でエンコードしたものなどを採用することができる。
【００６９】
ここで、記録スケジューラ３６に供給されるビデオデータまたはオーディオデータは、本来、ユーザに提供されるべきものであり、それぞれを、以下、適宜、本線ビデオデータまたは本線オーディオデータという。また、本線ビデオデータと本線オーディオデータの両方をまとめて、以下、適宜、本線データという。
【００７０】
なお、ローレゾデータには、例えば、本線オーディオデータを時間間引きしたものや、そのサンプルへの割り当てビット数を少なくしたものなどを含めるようにすることが可能である。即ち、ローレゾデータは、本線ビデオデータのデータ量を少なくしたデータの他、本線オーディオデータのデータ量を少なくしたデータも含めて構成することが可能である。ローレゾデータを、本線ビデオデータと本線オーディオデータそれぞれのデータ量を少なくしたデータで構成する場合には、ローレゾデータの系列としては、例えば、データ量を少なくした本線ビデオデータと本線オーディオデータそれぞれの１フレーム分を交互に配置したものなどを採用することが可能である。
【００７１】
図５において、パケット化部５１には、本線ビデオデータが供給されるようになっており、パケット化部５１は、本線ビデオデータを、年輪データ単位のパケットにパケット化する。
【００７２】
即ち、パケット化部５１に供給される本線ビデオデータは、記録データバッファ６１に入力され、記録データバッファ６１は、そこに入力される本線ビデオデータをバッファリングする。また、記録データバッファ６１は、そこにバッファリングされている本線ビデオデータのデータ量を、基準年輪サイズ判定部６２に供給する。
【００７３】
基準年輪サイズ判定部６２は、記録データバッファ６１における本線ビデオデータのデータ量が、あらかじめ設定された年輪データのサイズ以上であるかどうかを判定し、その判定結果を、実年輪サイズデータ抽出部６３に供給する。
【００７４】
ここで、あらかじめ設定された年輪データのサイズを、以下、適宜、基準年輪サイズという。
【００７５】
実年輪サイズデータ抽出部６３は、記録データバッファ６１における本線ビデオデータのデータ量が基準年輪サイズ以上となった旨の判定結果を、基準年輪サイズ判定部６２から受信すると、記録データバッファ６１に記憶された本線ビデオデータの中から、後述する実年輪サイズの本線ビデオデータを読み出すことで抽出し、１つのデータのまとまり、つまり、パケットとして、実年輪サイズデータ記憶部６４に供給する。なお、実年輪サイズデータ抽出部６３が記録データバッファ６１から抽出する実年輪サイズの本線ビデオデータは、記録データバッファ６１に記憶された最古の本線ビデオデータから、実年輪サイズ分である。
【００７６】
実年輪サイズデータ記憶部６４は、実年輪サイズデータ抽出部６３から供給される、実年輪サイズの本線ビデオデータのパケットを一時記憶する。
【００７７】
パケット化部５２は、記録データバッファ６１乃至実年輪サイズデータ記憶部６４とそれぞれ同様に構成される記録データバッファ７１乃至実年輪サイズデータ記憶部７４から構成されており、このパケット化部５２には、本線オーディオデータが供給されるようになっている。従って、パケット化部５２では、本線ビデオデータではなく、本線オーディオデータを対象に、パケット化部５１と同様の処理が行われ、これにより、パケット化部５２に供給される本線オーディオデータの系列は、実年輪サイズの本線オーディオデータのパケットとされる。
【００７８】
パケット化部５３も、記録データバッファ６１乃至実年輪サイズデータ記憶部６４とそれぞれ同様に構成される記録データバッファ８１乃至実年輪サイズデータ記憶部８４から構成されており、このパケット化部８２には、ローレゾデータが供給されるようになっている。従って、パケット化部５３では、本線ビデオデータではなく、ローレゾデータを対象に、パケット化部５１と同様の処理が行われ、これにより、パケット化部５２に供給されるローレゾデータの系列は、実年輪サイズのローレゾデータのパケットとされる。
【００７９】
多重化部９１は、実年輪サイズデータ記憶部６４，７４，８４それぞれに記憶された実年輪サイズの本線ビデオデータ、本線オーディオデータ、ローレゾデータのパケットを多重化し、その結果得られる１つのデータストリームである多重化データを、多重化データバッファ９２に供給する。
【００８０】
多重化データバッファ９２は、多重化部９２から供給される多重化データを一時記憶する。多重化データバッファ９２に記憶された多重化データは、書き込み制御部３８によって適宜読み出され、ファイルシステムドライバ３３、デバイスドライバ３２、およびドライブ２を介して、光ディスク３に書き込まれる。
【００８１】
以上のように、記録スケジューラ３６では、本線ビデオデータ、本線オーディオデータ、ローレゾデータの各系列が、実年輪サイズにパケット化されて多重化されるが、実年輪サイズが、すべてのデータ系列で同一のデータ量である場合、多重化データにおいて、例えば、注目している注目フレームの本線ビデオデータに付随する本線オーディオデータや、その注目フレームの解像度を低下させたローレゾデータが、注目フレームの本線ビデオデータとは大きく離れた位置に配置されることになる。
【００８２】
このように、多重化データにおいて、注目フレームの本線ビデオデータと、その本線ビデオデータに付随する本線オーディオデータとが大きく離れた位置に配置されると、これらの本線ビデオデータと本線オーディオデータは、光ディスク３にも、大きく離れた位置に記録される。光ディスク３において、注目フレームの本線ビデオデータと、その本線ビデオデータに付随する本線オーディオデータとが大きく離れた位置に記録されると、注目フレームを再生するために、その注目フレームの本線ビデオデータと本線オーディオデータを光ディスク３から読み出す際に大きなシークが発生し、リアルタイムでの再生が困難になることがあり得る。
【００８３】
即ち、いま、説明を簡単にするために、本線ビデオデータと本線オーディオデータに着目すると、本線ビデオデータと本線オーディオデータとは、データレートが異なるため、実年輪サイズをビット数やバイト数などのデータ量で規定し、本線ビデオデータと本線オーディオデータそれぞれを、同一のバイト数である実年輪サイズにパケット化して多重化していくと、多重化データにおいて、各フレームの本線ビデオデータと、そのフレームの本線オーディオデータとは、その配置位置がずれていき、次第に大きく離れた位置に配置されることになる。そして、そのような多重化データを、光ディスク３に記録すると、各フレームの本線ビデオデータと、そのフレームの本線オーディオデータとは、大きく離れた位置に記録され、その結果、各フレームの本線ビデオデータとそのフレームの本線オーディオデータを光ディスク３から読み出すのに大きなシークが発生し、リアルタイムでの再生が困難になることがあり得る。
【００８４】
従って、多重化データにおいて、各フレームの本線ビデオデータと、そのフレームの本線オーディオデータは、なるべく近い位置に配置するのが望ましい。
【００８５】
多重化データにおいて、各フレームの本線ビデオデータと、そのフレームの本線オーディオデータを、なるべく近い位置に配置することは、例えば、基準年輪サイズを再生時間で規定することによって実現することができる。
【００８６】
いま、この基準年輪サイズを規定する再生時間を、基準年輪期間と呼ぶこととすると、基準年輪期間は、例えば、１．５秒から２秒程度などとすることができる。そして、基準年輪サイズ［bit］は、その基準年輪サイズによってパケット化する（年輪データとする）対象のデータのデータレート［bps(bit per second)］と、基準年輪期間［秒］とによって、次式により求めることができる。
【００８７】
基準年輪サイズ＝データレート×基準年輪期間・・・（１）
【００８８】
なお、基準年輪期間は、あらかじめ決めた数値なので固定の値となる。また、式（１）によれば、データレートが一定でない場合（基準年輪サイズによってパケット化する対象のデータが、可変レートのデータの場合）は、そのデータレートの変化に応じて、基準年輪サイズも変化する。
【００８９】
基準年輪サイズを、式（１）で定義することにより、同一の再生時刻に再生される同一フレームの本線ビデオデータと本線オーディオデータは、多重化データにおいて、近い位置に配置される。
【００９０】
ところで、光ディスク３に対するデータの読み書きは、上述したように、ECC処理が施される物理ブロック単位で行われる。
【００９１】
一方、基準年輪サイズは、ECC処理が施される物理ブロック（以下、適宜、ECCブロックともいう）のサイズの整数倍であるとは限らないため、基準年輪サイズの年輪データを、光ディスク３のあるECCブロックの先頭から書き込み始めたとしても、その年輪データの最後のサンプルが書き込まれる位置が、ECCブロックの境界に一致するとは限らない。
【００９２】
しかしながら、例えば、いま、年輪データ（パケット）とされた本線ビデオデータと本線オーディオデータを、それぞれ、ビデオ年輪とオーディオ年輪というものとして、多重化データにおいて、ビデオ年輪とオーディオ年輪とを交互に配置することとした場合、ファイルシステムドライバ３３から見ると、光ディスク３に記録される多重化データにおける隣り合うビデオ年輪とオーディオ年輪は、別のファイルに属するものとなる。従って、例えば、本線オーディオデータ（のファイル）だけを読み出すケースや、本線オーディオデータ（のファイル）だけを削除するケースなどを考慮すると、年輪データの境界は、ECCブロックの境界と一致していることが望ましい。
【００９３】
そこで、図５のパケット化部５１は、年輪データの境界とECCブロックの境界とが一致するように、本線ビデオデータを、年輪データにパケット化する。即ち、パケット化部５１は、本線ビデオデータを、ECCブロックとアラインメントをとった大きさの年輪データにパケット化する。
【００９４】
具体的には、パケット化部５１では、上述したように、基準年輪サイズ判定部６２が、記録データバッファ６１における本線ビデオデータのデータ量が基準年輪サイズ以上であると判定した場合、実年輪サイズデータ抽出部６３が、記録データバッファ６１に記憶された本線ビデオデータの中から、ECCブロックとのアラインメントをとった大きさであって、基準年輪サイズに最も近い大きさの本線ビデオデータを抽出する。
【００９５】
ここで、このECCブロックとのアラインメントをとった大きさであって、基準年輪サイズに最も近い大きさが、実年輪サイズであり、実年輪サイズデータ抽出部６３が、上述のように、記録データバッファ６１に記憶された本線ビデオデータの中から、実年輪サイズの本線ビデオデータを抽出することにより、本線ビデオデータの系列が、実年輪サイズの年輪データのパケットにパケット化される。
【００９６】
ところで、記録データバッファ６１に記憶された本線ビデオデータの中から、実年輪サイズの本線ビデオデータを抽出する方法としては、次のような２つの方法がある。
【００９７】
即ち、実年輪サイズは、ECCブロックとのアラインメントをとった大きさであって、基準年輪サイズに最も近い大きさであるから、記録データバッファ６１に記憶された本線ビデオデータの中から、実年輪サイズの本線ビデオデータを抽出する方法としては、基準年輪サイズ以下の、ECCブロックとアラインメントをとった最大の大きさの本線ビデオデータを、記録データバッファ６１から抽出する第１の方法と、基準年輪サイズ以上の、ECCブロックとアラインメントをとった最小の大きさの本線ビデオデータを、記録データバッファ６１から抽出する第２の方法とがある。
【００９８】
第１の方法によれば、図６に示すように、基準年輪サイズの本線ビデオデータの境界の直前のECCブロックの境界が、実年輪サイズの本線ビデオデータの境界とされることになる。一方、第２の方法によれば、基準年輪サイズの本線ビデオデータの境界の直後のECCブロックの境界が、実年輪サイズの本線ビデオデータの境界とされることになる。
【００９９】
記録データバッファ６１に記憶された本線ビデオデータの中から、実年輪サイズの本線ビデオデータを抽出する方法としては、第１と第２の方法のいずれをも採用し得るが、第２の方法を採用した場合、記録データバッファ６１に、基準年輪サイズの本線ビデオデータが蓄積されていても、実年輪サイズの本線ビデオデータが蓄積されていないことがあるため、記録データバッファ６１に、基準年輪サイズの本線ビデオデータが蓄積された後、さらに、実年輪サイズの本線ビデオデータが蓄積されるまで、実年輪サイズデータ抽出部６３による実年輪サイズの本線ビデオデータの抽出を待たなければならないことがある。
【０１００】
これに対して、第１の方法を採用した場合、記録データバッファ６１に、基準年輪サイズの本線ビデオデータが蓄積されていれば、実年輪サイズの本線ビデオデータが、必ず蓄積されているため、記録データバッファ６１に、基準年輪サイズの本線ビデオデータが蓄積された後は、実年輪サイズデータ抽出部６３による実年輪サイズの本線ビデオデータの抽出を、即座に行うことができる。
【０１０１】
そこで、ここでは、記録データバッファ６１に記憶された本線ビデオデータの中から、実年輪サイズの本線ビデオデータを抽出する方法として、第１の方法を採用することとする。
【０１０２】
なお、実年輪サイズは、ECCブロックのサイズの整数倍の値となる。
【０１０３】
また、実年輪サイズと基準年輪サイズの大小関係は保証されない。即ち、ECCブロックとアラインメントをとることによって、年輪データの前後の境界は、図６に示したように、ECCブロックの境界と一致するように移動されるが、年輪データの前の境界の移動量と、後の境界の移動量とは、同一であるとは限らず、これらの移動量の大小関係によって、実年輪サイズと基準年輪サイズの大小関係が決まる。
【０１０４】
さらに、基準年輪サイズの年輪データによれば、基準年輪期間だけの再生、即ち、ある一定の再生時間の再生を行うことができるが、実年輪サイズの年輪データでは、基準年輪期間に近い再生時間の再生が行われる。即ち、実年輪サイズは、ECCブロックとのアラインメントをとった大きさであるため、実年輪サイズの年輪データの再生時間は、基本的に一定にならない。実年輪サイズの年輪データの再生時間（以下、適宜、実年輪期間という）は、その年輪データのデータレートによって、次式で表される。
【０１０５】
実年輪期間＝実年輪サイズ／データレート・・・（２）
【０１０６】
次に、図７を参照して、図５のパケット化部５１が行う、本線ビデオデータを実年輪サイズの年輪データにパケット化する年輪パケット化処理について、さらに説明する。
【０１０７】
図７において、横軸は、記録データバッファ６１に蓄積される本線ビデオデータの積算データ量（延べデータ量）を表している。
【０１０８】
基準年輪サイズ判定部６２は、基準年輪期間TREFごと、即ち、1×TREF,2×TREF,3×TREF,…の時刻ごとに記録データバッファ６１内のデータ量を判定し、その最後のサンプルが記憶されている記憶位置を、基準年輪サイズの年輪データの境界（以下、適宜、基準年輪境界という）と判定する。なお、基準年輪期間TREFごとに、記録データバッファ６１に記憶されるデータのデータ量が、基準年輪サイズである。
【０１０９】
ここで、図７の実施の形態では、本線ビデオデータが可変レートのものであるとしてあり、このため、基準年輪境界間の間隔は一定になっていない。なお、本線ビデオデータが固定レートのものである場合には、基準年輪境界間の間隔は一定になる。
【０１１０】
実年輪サイズデータ抽出部６３は、基準年輪境界と、その基準年輪境界の左方向（データ量が少ない方）にある最も近いECCブロックの境界とが一致するように、基準年輪境界を移動し、そのECCブロックの境界と一致するように移動した基準年輪境界を、実年輪境界（実年輪データの境界）とする。そして、実年輪サイズデータ抽出部６３は、記録データバッファ６１に蓄積される本線ビデオデータを、実年輪境界で区切り、ある実年輪境界から次の実年輪境界までの本線ビデオデータを、実年輪サイズの年輪データのパケットとして抽出する。
【０１１１】
図８は、記録データバッファ６１に対して読み書きされる本線ビデオデータの積算データ量を示している。
【０１１２】
即ち、図８において、横軸は、時間を表しており、縦軸は、本線ビデオデータの積算データ量を表している。
【０１１３】
そして、図８では、記録データバッファ６１に蓄積された本線ビデオデータの積算データ量ΣWを実線で表してあり、この積算データ量ΣWのグラフの傾きは、記録データバッファ６１に供給される本線ビデオデータのデータレートを表す。なお、ここでは、上述したように、本線ビデオデータのデータレートを可変としてあるため、図８の積算データ量のグラフの傾きも変化しているが、本線ビデオデータのデータレートを固定とした場合には、図８の積算データ量のグラフの傾きは一定になる。即ち、図８の積算データ量のグラフは直線で表される。
【０１１４】
また、図８では、実年輪サイズデータ抽出部６３によって、記録データバッファ６１から実年輪サイズの年輪データのパケットとして読み出される本線ビデオデータの積算データ量ΣRを点線で表してある。
【０１１５】
いま、時刻ｔが０の時点から、記録データバッファ６１への本線ビデオデータの供給が開始されたとすると、その後、記録データバッファ６１には、本線ビデオデータが蓄積されていく。そして、上述したように、基準年輪期間［秒］をTREFで表すこととすると、時刻ｔが、1×TREFとなると、実年輪サイズデータ抽出部６３は、記録データバッファ６１に記憶された本線ビデオデータから、１つ目の実年輪サイズの年輪データのパケットを抽出する。
【０１１６】
即ち、時刻ｔが1×TREFの垂直線と、積算データ量ΣWのグラフとの交点を(A)点と表すと、(A)点を通る水平線が、１つめの年輪データのパケットの基準年輪境界(1)となる。図８の実施の形態では、基準年輪境界(1)が、ECCブロックの境界に一致しないので、年輪データのパケットのサイズを小さくする方向で、ECCブロックとのアラインメントがとられる。即ち、基準年輪境界(1)が、年輪データのパケットのサイズを小さくする方向に移動したときに最初に見つかるECCブロックの境界の位置に一致するように移動され、そのECCブロックの境界の位置に一致する位置が、実年輪境界(1)とされる。いま、実年輪境界(1)の水平線と積算データ量ΣWのグラフとの交点を(B)点とすると、(B)点と横軸との垂直距離が、１つ目の年輪データのパケットの実年輪サイズ(1)となり、また、(B)点と縦軸との水平距離が、その実年輪サイズ(1)に対応する実年輪期間(1)となる。そして、実年輪サイズデータ抽出部６３では、記録データバッファ６１から、実年輪サイズ(1)の本線ビデオデータが抽出され、１つ目の年輪データのパケットとされる。
【０１１７】
次に、時刻ｔが2×TREF となると、実年輪サイズデータ抽出部６３は、記録データバッファ６１に記憶された本線ビデオデータから、２つ目の実年輪サイズの年輪データのパケットを抽出する。
【０１１８】
即ち、時刻ｔが2×TREFの垂直線と、積算データ量ΣWのグラフの交点を(C)点と表すと、(C)点を通る水平線が、２つ目の年輪データのパケットの基準年輪境界(2)となる。図８の実施の形態では、基準年輪境界(2)が、ECCブロックの境界に一致しており、このため、基準年輪境界(2)が、そのまま実年輪境界(2)とされる。この場合、(C)点と(B)点の垂直距離が、１つ目の年輪データのパケットの実年輪サイズ(2)となり、また、(C)点と(B)点の水平距離が、その実年輪サイズ(2)に対応する実年輪期間(2)となる。そして、実年輪サイズデータ抽出部６３では、記録データバッファ６１から、実年輪サイズ(2)の本線ビデオデータが抽出され、２つ目の年輪データのパケットとされる。
【０１１９】
次に、時刻ｔが3×TREFとなると、実年輪サイズデータ抽出部６３は、記録データバッファ６１に記憶された本線ビデオデータから、３つ目の実年輪サイズの年輪データのパケットを抽出する。
【０１２０】
即ち、時刻ｔが3×TREFの垂直線と、積算データ量ΣWのグラフの交点を(D)点と表すと、(D)点を通る水平線が、３つめの年輪データのパケットの基準年輪境界(3)となる。図８の実施の形態では、基準年輪境界(3)が、ECCブロックの境界に一致しないので、年輪データのパケットのサイズを小さくする方向で、ECCブロックとのアラインメントがとられる。即ち、基準年輪境界(3)が、年輪データのパケットのサイズを小さくする方向に移動したときに最初に見つかるECCブロックの境界の位置に一致するように移動され、そのECCブロックの境界の位置に一致する位置が、実年輪境界(3)とされる。いま、実年輪境界(3)の水平線と、積算データ量ΣWのグラフとの交点を(E)点とすると、(E)点と(C)点の垂直距離が、３つ目の年輪データのパケットの実年輪サイズ(3)となり、(E)点と(C)点の水平距離が、その実年輪サイズ(3)に対応する実年輪期間(2)となる。
【０１２１】
以下、同様にして、順次、実年輪サイズの年輪データのパケットが構成されていく。
【０１２２】
次に、図５の記録スケジューラ３６では、パケット化部５１乃至５３それぞれにおいて、本線ビデオデータ、本線オーディオデータ、ローレゾデータが、それぞれ、上述したように、実年輪サイズの年輪データのパケットにされ、多重化部９１において、本線ビデオデータ、本線オーディオデータ、ローレゾデータそれぞれの年輪データのパケットが多重化（インタリーブ）されることにより、１つのデータストリームとしての多重化データとされる。
【０１２３】
この多重化部９１における年輪データのパケットの多重化の方法、即ち、多重化データにおける年輪データのパケットの配置方法としては、例えば、パケットに配置された年輪データの再生時刻が早い順に配置する方法がある。
【０１２４】
ところで、年輪データのパケットのサイズは、現実的には、実年輪サイズになっているが、理想的には、基準年輪サイズであるべきである。即ち、年輪データのパケットとしては、本来的には、基準年輪サイズのパケットを採用すべきであるが、光ディスク３へのデータの書き込みがECCブロック単位で行われるという物理的制約から、実年輪サイズのパケットを採用している。従って、年輪データのパケットとしては、現実に存在する実年輪サイズのパケット（以下、適宜、実年輪という）と、仮想的な基準年輪サイズのパケット（以下、適宜、基準年輪という）とを観念することができる。
【０１２５】
以上のように、年輪データのパケットとして、実年輪と基準年輪とを観念することができる場合には、パケットを、その再生時刻が早い順に配置するときに、実年輪の再生時刻が早い順にパケットを配置する方法と、基準年輪の再生時刻が早い順にパケットを配置する方法とを採用しうる。
【０１２６】
ここで、パケットの再生時刻としては、例えば、そのパケットの先頭や最後に配置されたサンプルの再生時刻を採用することができるが、ここでは、例えば、パケットの最後に配置されたサンプルの再生時刻を採用するものとする。但し、パケットには、フレームの最後のサンプルまでではなく、フレームの途中のサンプルまでしか含まれないことがある。この場合、パケットの最後のサンプルの再生時刻とは、例えば、フレームの最後のサンプルまでがパケットに含まれる、最後のフレームの再生時刻が採用される。即ち、パケットが、第Ｎ1フレームの最初のサンプルから第Ｎ2フレームの途中のサンプルまでによって構成される場合（Ｎ1＜Ｎ2）、そのパケットの最後のサンプルの再生時刻とは、フレームの最後のサンプルまでが含まれる第Ｎ2−１フレームの再生時刻を意味する。なお、パケットの再生時刻としては、その他、そのパケットの先頭または最後に配置されたGOP(Group Of Picture)の再生時刻などを採用することが可能である。
【０１２７】
ところで、多重化データにおいて、年輪データのパケットを、実年輪の再生時刻が早い順に配置すると、ECCブロックとのアラインメントがとられる関係で、同一系列のデータのパケットが連続して配置されることがある。
【０１２８】
即ち、ECCブロックとのアラインメントをとらない場合、つまり、基準年輪サイズでデータを区切ることによって、そのデータをパケット化する場合には、例えば、本線オーディオデータと本線ビデオデータの基準年輪期間TREFが同一であれば、あるフレームの本線オーディオデータと本線ビデオデータは、最後のサンプルが同一時刻に再生されるパケットにパケット化されることとなり、その本線オーディオデータと本線ビデオデータのパケットには、再生時刻による優劣（先後）はつかない。
【０１２９】
一方、ECCブロックとのアラインメントをとる場合、つまり、実年輪サイズでデータを区切ることによって、そのデータをパケット化する場合には、例えば、本線オーディオデータと本線ビデオデータの基準年輪期間TREFが同一であっても、あるフレームの本線オーディオデータと本線ビデオデータが、最後のサンプルが異なる時刻に再生されるパケットにパケット化されることがあり得る。そして、その結果、多重化データにおいて、本線ビデオデータのパケットや、本線オーディオデータのパケットなどの、１つの系列のデータのパケットが連続して配置され、これにより、本線ビデオデータと、その本線ビデオデータに付随する本線オーディオデータとが大きく離れた位置に配置されることがあり得る。
【０１３０】
即ち、例えば、いま、図９に示すように、ECCブロックとのアラインメントをとりながら、本線オーディオデータが、パケット（オーディオ年輪）A1,A2,A3,・・・にパケット化され、本線ビデオデータが、パケット（ビデオ年輪）V1,V2,V3,・・・にパケット化されたとする。なお、図９では、オーディオ年輪A1,A2,A3の最後のサンプルの再生時刻が、それぞれ、1.7秒、3.7秒、5.3秒となっているとともに、ビデオ年輪V1,V2,V3の最後のサンプルの再生時刻が、それぞれ、1.7秒、3.6秒、5.7秒になっている。
【０１３１】
従って、図９のオーディオ年輪A1,A2,A3、およびビデオ年輪V1,V2,V3を、実年輪の最後のサンプルの再生時刻が早い順に配置すると、A1,V1,V2,A2,A3,V3となり、ビデオ年輪V1とV2が連続して配置され、また、オーディオ年輪A2とA3も連続して配置される。
【０１３２】
なお、本実施の形態では、パケットの最後のサンプルの再生時刻が同一である場合には、例えば、本線オーディオデータ、本線ビデオデータ、ローレゾデータの順に優先順位をつけて、多重化データに配置することとしている。このため、図９では、オーディオ年輪A1とビデオ年輪V1の最後のサンプルの再生時刻が、いずれも、1.7秒で同一であるが、優先順位の高いオーディオ年輪A1が先に配置され、その後に、ビデオ年輪V1が配置される。
【０１３３】
ここで、本線オーディオデータとしては、１チャンネルのオーディオデータの他、複数チャンネルのオーディオデータを採用することが可能である。本線オーディオデータとして、複数チャンネルのオーディオデータを採用する場合には、その複数チャンネルのオーディオデータについても、再生時刻が同一の場合の優先順位を決めておく必要がある。
【０１３４】
以上のように、パケットを、実年輪の再生時刻が早い順に配置する方法を採用すると、１つの系列のデータのパケットが連続して配置されることがあり得る。
【０１３５】
一方、パケットを、基準年輪の再生時刻が早い順に配置する方法を採用した場合には、上述したように、本線オーディオデータと本線ビデオデータの基準年輪期間TREFが同一であれば、あるフレームの本線オーディオデータと本線ビデオデータは、最後のサンプルが同一時刻に再生されるパケットにパケット化されることとなり、その本線オーディオデータと本線ビデオデータのパケットには、再生時刻による優劣はつかない。その結果、パケットの最後のサンプルの再生時刻が同一である場合の優先順位によって、多重化データに配置するパケットが決定されることになり、この場合、図９で説明したように、ビデオ年輪やオーディオ年輪などの１つのデータ系列のパケットが連続して配置されることがなくなる。
【０１３６】
そこで、ここでは、多重化データにパケットを配置する方法として、パケットを、基準年輪の再生時刻が早い順に配置する方法を採用することとする。
【０１３７】
なお、パケットを、基準年輪の再生時刻が早い順に配置する方法を採用した場合には、実年輪の再生時刻が早い順に配置する方法を採用した場合に比較して、記録データバッファ６１に必要な容量が不利になることがあり得るが、ECCブロックとのアラインメントによる基準年輪境界の移動は、高々1つのECCブロック分であるため、記録データバッファ６１に必要な容量の問題は、それほど大きな問題ではない。
【０１３８】
図１０は、多重化部９１において、パケット化部５１乃至５３で得られる本線ビデオデータ、本線オーディオデータ、ローレゾデータそれぞれの実年輪サイズのパケットを、基準年輪の再生時刻が早い順に配置することによって多重化した場合に得られる多重化データを示している。
【０１３９】
なお、図１０の実施の形態では、本線ビデオデータと本線オーディオデータの基準年輪期間を双方とも2秒とし、ローレゾデータの基準年輪期間を4秒としてある。また、図１０において、Ａ年輪、Ｖ年輪、Ｌ年輪と記載してある四角形は、本線ビデオデータ、本線オーディオデータ、ローレゾデータそれぞれの実年輪サイズの年輪データのパケットを表している。さらに、パケットを表す四角形の右下に括弧（）付きで示してある数字は、そのパケットを基準年輪とした場合の、その基準年輪の最後のサンプルが再生される再生時刻を、秒単位で表している。
【０１４０】
パケットを、基準年輪の再生時刻が早い順に配置するとともに、再生時刻が同一である場合には、本線オーディオデータ、本線ビデオデータ、ローレゾデータの順で、パケットを配置するようにすることで、図１０に示すように、１つのデータ系列のパケットが連続して配置されることがなくなり、さらに、本線オーディオデータ、本線ビデオデータ、ローレゾデータそれぞれのパケットが、同一の順番で周期的に配置されるようになる。即ち、図１０の実施の形態では、本線ビデオデータと本線オーディオデータの基準年輪期間は、同一で2秒となっているが、ローレゾデータの基準年輪期間は、本線ビデオデータと本線オーディオデータの基準年輪期間の２倍の4秒となっているので、本線ビデオデータと本線オーディオデータのパケットの配置周期は同一であるが、ローレゾデータのパケットの配置周期は、本線ビデオデータと本線オーディオデータのパケットの配置周期の２倍になっている。即ち、図１０の実施の形態では、本線オーディオデータのパケットと、本線ビデオデータのパケットとが交互に、２回配置された後、ローレゾデータのパケットが１回配置されることが繰り返されることにより、多重化データが構成されている。
【０１４１】
次に、図１１のフローチャートを参照して、図５のパケット化部５１が行う年輪パケット化処理について、さらに説明する。なお、上述したように、パケット化部５２および５３では、パケット化部５１と同様の処理（年輪パケット化処理）が行われるため、その説明は、省略する。
【０１４２】
年輪パケット化処理は、例えば、パケット化部５１に対して、本線ビデオデータの供給が開始され、さらに、記録データバッファ６１において、その本線ビデオデータの記憶が開始されることによって開始される。
【０１４３】
即ち、年輪パケット化処理では、まず最初に、ステップＳ１において、基準年輪サイズ判定部６２が、記録データバッファ６１に基準年輪サイズの本線ビデオデータが記憶されたかどうかを判定する。ここで、記録データバッファ６１に基準年輪サイズのデータが記憶されたかどうかは、例えば、記録データバッファ６１に本線ビデオデータの記憶が開始された後、または前回の基準年輪期間の経過後、基準年輪期間が経過したかどうかによって判定される。
【０１４４】
ステップＳ１において、記録データバッファ６１に基準年輪サイズの本線ビデオデータが記憶されたと判定された場合、ステップＳ２に進み、実年輪サイズデータ抽出部６３は、記録データバッファ６１から、実年輪サイズの本線ビデオデータ（実年輪サイズデータ）を読み出すことにより抽出し、ステップＳ３に進む。ステップＳ３では、実年輪サイズデータ抽出部６３は、直前のステップＳ２で記録データバッファ６１から抽出した実年輪サイズの本線ビデオデータを、年輪データのパケットとして、実年輪サイズデータ記憶部６４に転送して記憶させ、ステップＳ１に戻り、以下、同様の処理が繰り返される。
【０１４５】
また、ステップＳ１において、記録データバッファ６１に基準年輪サイズの本線ビデオデータが、まだ記憶されていないと判定された場合、ステップＳ４に進み、基準年輪サイズ判定部６２は、記録データバッファ６１に対する本線ビデオデータの供給が、まだ行われており、これにより、記録データバッファ６１において、本線ビデオデータの記憶が、まだ続けられているかどうかを判定する。ステップＳ４において、記録データバッファ６１での本線ビデオデータの記憶が、まだ続けられていると判定された場合、ステップＳ１に戻り、以下、同様の処理が繰り返される。
【０１４６】
一方、ステップＳ４において、記録データバッファ６１での本線ビデオデータの記憶が行われていないと判定された場合、即ち、パケット化部５１に対する本線ビデオデータの供給が終了した場合、ステップＳ５に進み、実年輪サイズデータ抽出部６３は、記録データバッファ６１に記憶されているすべての本線ビデオデータを読み出し、その本線ビデオデータに対して、ECCブロックとのアラインメントをとるのに必要最小限のスタッフィングビット（パディングのためのデータ）を付加して、ステップＳ６に進む。ステップＳ６では、実年輪サイズデータ抽出部６３は、ステップＳ５でスタッフィングビットを付加した本線ビデオデータを、年輪データのパケットとして、実年輪サイズデータ記憶部６４に転送して記憶させ、年輪パケット化処理を終了する。
【０１４７】
なお、ここでは、本線ビデオデータ、本線オーディオデータ、およびローレゾデータを、光ディスク３に記録するようにしたが、光ディスク３には、その他、例えば、本線ビデオデータと本線オーディオデータを記録したり、本線ビデオデータ、本線オーディオデータ、およびローレゾデータに加えて、本線ビデオデータの各フレームに付されたタイムコードなどを記録したりすることが可能である。光ディスク３に、本線ビデオデータと本線オーディオデータを記録する場合、即ち、ローレゾデータを記録しない場合には、記録スケジューラ３６は、ローレゾデータに年輪パケット化処理を施すパケット化部５３を設けずに構成することができる。また、光ディスク３に、本線ビデオデータ、本線オーディオデータ、およびローレゾデータに加えて、タイムコードなどを記録する場合には、記録スケジューラ３６は、そのタイムコードなどのデータの系列に年輪パケット化処理を施すパケット化部を新たに設けて構成する必要がある。さらに、本線オーディオデータとしては、上述したように、複数チャンネルのオーディオデータを採用することが可能であるが、この場合、記録スケジューラ３６は、そのオーディオデータのチャンネル数分のパケット化部５２を設けて構成し、各チャンネルのオーディオデータに年輪パケット化処理を施す必要がある。
【０１４８】
次に、図１２のフローチャートを参照して、図５の多重化部９１が行う、本線ビデオデータ、本線オーディオデータ、ローレゾデータそれぞれのパケットを多重化して、１つのデータストリームとしての多重化データとする多重化処理について説明する。
【０１４９】
多重化処理は、例えば、パケット化部５１乃至５３それぞれの実年輪サイズデータ記憶部６４，７４，８４において、本線ビデオデータ、本線オーディオデータ、ローレゾデータそれぞれのパケットの記憶が開始されることによって開始される。
【０１５０】
即ち、多重化処理では、まず最初に、ステップＳ１１において、多重化部９１が、実年輪サイズデータ記憶部６４，７４，８４それぞれに記憶されたパケットの中から、基準年輪の最後のサンプルの再生時刻が最も早いもの（以下、適宜、最早再生時刻パケットという）を検出し、ステップＳ１２に進む。ステップＳ１２では、多重化部９１は、直前のステップＳ１１で、複数の最早再生時刻パケットが検出されたかどうか、即ち、実年輪サイズデータ記憶部６４，７４，８４のうちの２以上から、最早再生時刻パケットが検出されたかどうかを判定する。
【０１５１】
ステップＳ１２において、複数の最早再生時刻パケットが検出されていないと判定された場合、即ち、直前のステップＳ１１で、１つの最早再生時刻パケットが検出された場合、ステップＳ１３に進み、多重化部９１は、直前のステップＳ１１で検出された１つの最早再生時刻パケットを、実年輪サイズデータ記憶部６４，７４、または８４から、多重化データバッファ９２に移動して、その最後尾に記憶させ、ステップＳ１５に進む。
【０１５２】
一方、ステップＳ１２において、複数の最早再生時刻パケットが検出されたと判定された場合、ステップＳ１４に進み、多重化部９１は、直前のステップＳ１１で検出された複数の最早再生時刻パケットを、実年輪サイズデータ記憶部６４，７４、または８４から、多重化データバッファ９２に移動して、その最後尾に記憶させ、ステップＳ１５に進む。
【０１５３】
但し、ステップＳ１４では、多重化部９１は、複数の最早再生時刻パケットを、所定の規則に基づく順番にしたがって、実年輪サイズデータ記憶部６４，７４、または８４から、多重化データバッファ９２の最後尾に移動する。
【０１５４】
即ち、ここでは、上述したように、本線オーディオデータ、本線ビデオデータ、ローレゾデータの順で、複数の最早再生時刻パケットの移動順が決定され、その移動順にしたがって、複数の最早再生時刻パケットが、多重化データバッファ９２の最後尾に移動される。
【０１５５】
ステップＳ１５では、多重化部９１が、実年輪サイズデータ記憶部６４，７４、または８４のうちのいずれかに、多重化すべきパケットが、まだ記憶されているかどうかを判定し、記憶されていると判定された場合、ステップＳ１１に戻り、以下、同様の処理が繰り返される。
【０１５６】
また、ステップＳ１５において、実年輪サイズデータ記憶部６４，７４、または８４のうちのいずれかに、多重化すべきパケットが記憶されていないと判定された場合、多重化処理を終了する。
【０１５７】
以上の多重化処理により、多重化データバッファ９２では、図１０に示したような、本線ビデオデータ、本線オーディオデータ、ローレゾデータそれぞれのパケットが多重化された１つのデータストリームとしての多重化データが構成されていく。
【０１５８】
以上のように、多重化データバッファ９２において、多重化データの記憶が開始されると、書き込み制御部３８は、その多重化データを光ディスク３に書き込む書き込み制御処理を開始する。
【０１５９】
そこで、図１３のフローチャートを参照して、書き込み制御部３８による書き込み制御処理について説明する。
【０１６０】
書き込み制御処理では、まず最初に、ステップＳ２１において、書き込み制御部３８は、光ディスク３上の、あらかじめ設定された論理ブロックの数を表すALLOCATION_UNIT分の連続した空き領域を予約する。即ち、書き込み制御部３８は、ファイルシステムドライバ３３に対して、ALLOCATION_UNIT分の連続した空き領域の予約を要求し、ファイルシステムドライバ３３は、この要求に応じて、光ディスク３の記録領域の中から、ALLOCATION_UNIT分の連続した空き領域を確保する。
【０１６１】
ここで、書き込み制御部３８が予約する光ディスク３上の空き領域を、以下、適宜、予約領域という。
【０１６２】
その後、ステップＳ２２に進み、書き込み制御部３８は、予約領域に記録することができるだけのパケット単位の多重化データを、多重化データバッファ９２から読み出し、予約領域に記録する。即ち、書き込み制御部３８は、予約領域に記録することができるだけのパケット単位の多重化データを、多重化データバッファ９２に記憶された順番で読み出し、そのパケット単位の多重化データを、光ディスク３上に確保された予約領域への書き込みを要求する書き込みコマンドとともに、ファイルシステムドライバ３３に供給する。これにより、ファイルシステムドライバ３３は、書き込み制御部３８から供給される書き込みコマンドにしたがい、同じく書き込み制御部３８から供給されるパケット単位の多重化データを、デバイスドライバ３２およびドライブ２を介して、光ディスク３上に確保された予約領域に書き込む。
【０１６３】
なお、ドライブ２において、予約領域へのパケット単位の多重化データの書き込みは、例えば、その予約領域の先頭（ドライブ２における光ディスク３に対する読み書き順で、最も先の位置）から順次行われる。
【０１６４】
ここで、記録スケジューラ３６では、上述したように、本線ビデオデータ、本線オーディオデータ、ローレゾデータそれぞれのデータの系列を、年輪パケット化処理によって、基準年輪サイズに近い実年輪サイズの年輪データのパケットにパケット化する。従って、この年輪データのパケットが分断されて、光ディスク３に記録されたのでは、年輪パケット化処理により、データの系列を、あるまとまったデータの単位である年輪データのパケットにパケット化した意味がなくなることになる。さらに、年輪データのパケットが分断されて、光ディスク３に記録された場合には、その分断された部分の読み出し時にシークが発生し、リアルタイムでの再生が妨げられることがあり得る。
【０１６５】
そこで、書き込み制御部３８は、年輪データのパケットの分断、さらにはリアルタイム再生が妨げられることを極力防止することができるように、多重化データを、光ディスク３に書き込む。
【０１６６】
まず、年輪データのパケットの分断を防止するには、そのパケットのサイズである実年輪サイズ以上の連続した空き領域を、光ディスク３上に確保し、その空き領域に、そのパケットを書き込めば良い。
【０１６７】
また、シークによるリアルタイム再生が妨げられることを防止するには、そのシークが行われている時間、既に光ディスク３から読み出されたデータによって再生を続行することができれば良い。従って、光ディスク３から、ある程度のデータ量のデータを、シーク無しで読み出すことができれば良いので、光ディスク３のある程度の連続した記録領域に、データが連続して書き込まれていれば良い。なお、どの程度のデータ量のデータを、シーク無しで読み出すことができれば、リアルタイム再生が妨げられることを防止することができるかは、光ディスク３を再生する記録再生システムの性能による。
【０１６８】
以上から、年輪データのパケットの分断、さらにはリアルタイム再生が妨げられることを極力防止するには、理想的には、多重化データのすべてを、光ディスク３の連続した記録領域に、連続して記録することができれば良い。
【０１６９】
しかしながら、光ディスク３が、まだ未使用のもので、大きな連続した空き領域があるものである場合はともかく、データの記録や削除が何度か行われたものである場合は、光ディスク３上の空き領域は分断されており、この場合、多重化データのすべてを、光ディスク３の連続した記録領域に、連続して記録することは困難である。
【０１７０】
そこで、書き込み制御部３８は、ステップＳ２１において、ALLOCATION_UNIT分の連続した空き領域を、予約領域として確保し、その予約領域に、多重化データを、パケット単位で書き込む。
【０１７１】
ここで、上述したように、予約領域は、ALLOCATION_UNIT分の連続した論理ブロックから構成され、その予約領域に、多重化データが、パケット単位で書き込まれる。即ち、予約領域には、その先頭から、多重化データがパケット単位で書き込まれていき、パケットの書き込みができなくなった時点で、つまり、予約領域の残りの記録領域のサイズが、その記録領域に書き込もうとしているパケットのサイズ未満となった時点で、その予約領域への多重化データの書き込みは終了される。
【０１７２】
この場合、多重化データは、ALLOCATION_UNITから、実年輪サイズの最大値に相当する論理ブロックの数を減算した減算値の論理ブロックの数だけ、連続して書き込まれることが保証される。従って、ALLOCATION_UNITは、リアルタイム再生を保証するための重要なパラメータであり、光ディスク３を再生する記録再生システムの性能に合わせて、最適な値に設定するのが望ましい。
【０１７３】
即ち、実年輪サイズの最大値に相当する論理ブロックの数を、Nmaxと表すこととすると、ALLOCATION_UNIT分の連続した空き領域を、予約領域として確保し、その予約領域に、多重化データを、パケット単位で書き込んだ場合には、通常再生（特殊再生でない再生）において、ALLOCATION_UNIT−Nmaxの数の論理ブロックからなる連続した記録領域に対して、最大１回のシークが発生しうる。従って、そのような頻度でシークが発生しても、光ディスク３の再生を行う記録再生システムによる再生が途切れないように、ALLOCATION_UNITを設定するのが望ましい。
【０１７４】
なお、実年輪サイズの最大値を、Bmax[byte]と表すとともに、論理ブロックのサイズが、例えば、64[KB]であるとすると、実年輪サイズの最大値に相当する論理ブロックの数Nmaxは、式Nmax＝Bmax[byte]／64000[B]で表すことができる。
【０１７５】
ステップＳ２２において、予約領域に記録することができるだけのパケット単位の多重化データを、その予約領域に記録した後は、ステップＳ２３に進み、書き込み制御部３８は、予約領域としての記録領域の中に、多重化データが記録されずに残った記録領域（空き領域）があるかどうかを判定し、ないと判定した場合、即ち、予約領域に、多重化データを、パケット単位でちょうど記録することができた場合、ステップＳ２４をスキップして、ステップＳ２５に進む。
【０１７６】
また、ステップＳ２３において、予約領域としての記録領域の中に、多重化データが記録されずに残った記録領域があると判定された場合、ステップＳ２４に進み、書き込み制御部３８は、その残った予約領域を開放する。即ち、書き込み制御部３８は、ファイルシステムドライバ３３に対して、残った予約領域の開放を要求し、ファイルシステムドライバ３３は、この要求に応じて、光ディスク３上に確保した予約領域のうちの、多重化データが記録されずに残った記録領域を開放する。
【０１７７】
そして、ステップＳ２５に進み、書き込み制御部３８は、多重化データバッファ９２に、まだ、光ディスク３に記録すべき多重化データが記憶されているかどうかを判定する。ステップＳ２５において、多重化データバッファ９２に、まだ、光ディスク３に記録すべき多重化データが記憶されていると判定された場合、ステップＳ２１に戻り、以下、同様の処理を繰り返す。これにより、多重化データバッファ９２に、まだ記憶されている多重化データが、光ディスク３に記録されていく。
【０１７８】
また、ステップＳ２５において、多重化データバッファ９２に、光ディスク３に記録すべき多重化データが記憶されていないと判定された場合、書き込み制御処理を終了する。
【０１７９】
なお、ステップＳ２１において、ALLOCATION_UNIT分の連続した空き領域を予約する予約方法としては、例えば、光ディスク３上のALLOCATION_UNIT以上の数の連続した論理ブロックからなる空き領域のうち、最大の連続した空き領域から、ALLOCATION_UNIT分の連続した空き領域を予約する第１の予約方法、光ディスク３に対する読み書き順で最も前の位置にある連続した空き領域から、ALLOCATION_UNIT分の連続した空き領域を予約する第２の予約方法、または直前にデータが記録された記録領域に最も近い位置の空き領域から、ALLOCATION_UNIT分の連続した空き領域を予約する第３の予約方法などを採用することができる。本実施の形態では、例えば、第２の予約方法を採用するものとする。
【０１８０】
ここで、光ディスク３に欠陥がない場合には、論理ブロックが連続していれば、物理ブロックも連続しており、連続した論理ブロックそれぞれに割り当てられている物理ブロックは、物理的に連続した空き領域を形成する。従って、ALLOCATION_UNIT分の連続した論理ブロックを、予約領域として確保し、その予約領域にデータを連続して書き込めば、そのデータは、光ディスク３において物理的に連続した記録領域に記録される。そして、そのような物理的に連続した記録位置に連続して記録されたデータを読み出す場合には、シークが発生することはない。
【０１８１】
しかしながら、現実には、光ディスク３には、欠陥（ディフェクト）が生じ、その欠陥に対しては、例えば、ドライブ２において、欠陥がある物理ブロックに対する論理ブロックの割り当てを、その欠陥がある物理ブロックの直後の物理ブロックにスリップするスリップ処理や、他の正常な物理ブロックにリアサインするリアサイン処理が行われる。スリップ処理やリアサイン処理が行われると、LBNが連続している複数の論理ブロックに割り当てられている複数の物理ブロックが連続していることは、保証されなくなる。従って、連続したLBNの論理ブロックからなる空き領域を確保した場合であっても、その連続したLBNの論理ブロックに割り当てられている複数の物理ブロックが連続しているとは限らず、その複数の物理ブロックが不連続になっているときには、その不連続な部分で、シークが発生することになる。
【０１８２】
これを防止するためには、例えば、書き込み制御部３８において、ドライブ２から、欠陥がある物理ブロックに関する欠陥情報を取得し、その欠陥がある物理ブロックの前後の物理ブロックに亘ってデータを記録しないように制御する必要がある。
【０１８３】
次に、図１４乃至図１７を参照して、図１３の書き込み制御処理について、さらに説明する。
【０１８４】
なお、図１４乃至図１７では（後述する図１９においても、同様）、説明を簡単にするため、多重化データが、本線ビデオデータと本線オーディオデータの２つのデータ系列のパケットからなるものとしてある。
【０１８５】
さらに、図１４乃至図１７では（後述する図１９においても、同様）、光ディスク３の物理セクタ、および物理セクタに割り当てられる論理セクタが、2048[byte]であるとともに、ECCブロック（物理ブロック）が、64[KB]であり、ALLOCATION_UNITが、１８論理ブロック（ECCブロック）で構成されるものとしてある。
【０１８６】
この場合、ECCブロックは、３２論理セクタ（物理セクタ）から構成され、また、ALLOCATION_UNITは、論理セクタ（物理セクタ）で換算した場合、５７６論理セクタ（物理セクタ）となる。
【０１８７】
まず、図１４Ａに示す多重化データを、図１４Ｂに示す光ディスク３の空き領域に記録する場合について説明する。
【０１８８】
なお、図１４Ａの多重化データは、その先頭から、４ECCブロック分のオーディオ年輪（A年輪）（１）、８ECCブロック分のビデオ年輪（V年輪）（１）、４ECCブロック分のオーディオ年輪（２）、９ECCブロック分のビデオ年輪（２）、４ECCブロック分のオーディオ年輪（３）、１０ECCブロック分のビデオ年輪（３）、６ECCブロック分のオーディオ年輪（４）、８ECCブロック分のビデオ年輪（４）が順次配置されて構成されている。
【０１８９】
また、図１４Ｂでは、LSN(Logical Sector Number)が3200の論理セクタから、図１４Ａの多重化データの全体の大きさ以上の連続した空き領域（未割り当て領域）が、光ディスク３に存在している。ここで、LSNは、光ディスク３の物理セクタに割り当てられる論理セクタに付される、その論理セクタを特定するための番号である。
【０１９０】
この場合、図１５に示すように、図１４Ａの多重化データが、図１４Ｂの空き領域に記録される。
【０１９１】
即ち、まず最初に、例えば、論理セクタ#3200（LSNが3200の論理セクタ）を先頭とする、ALLOCATION_UNITが表す１８の連続したECCブロックからなる空き領域が、予約領域として予約され（ステップＳ２１）、その予約領域に記録することのできるパケット単位の多重化データが記録される（ステップＳ２２）。この場合、図１４Ａの多重化データについては、その先頭からのオーディオ年輪（１）、ビデオ年輪（１）、オーディオ年輪（２）までは、予約領域に記録することができるが、その次のビデオ年輪（２）までは、予約領域に記録することができない。このため、オーディオ年輪（１）、ビデオ年輪（１）、オーディオ年輪（２）が、予約領域に記録される。そして、オーディオ年輪（１）、ビデオ年輪（１）、オーディオ年輪（２）を記録した結果残った予約領域は開放される（ステップＳ２４）。
【０１９２】
その後、例えば、オーディオ年輪（２）が記録された論理セクタの次の論理セクタ#3712を先頭とする、１８の連続したECCブロックからなる空き領域が、予約領域として予約され（ステップＳ２１）、その予約領域に記録することのできるパケット単位の多重化データが記録される（ステップＳ２２）。この場合、図１４Ａの多重化データについては、前回の記録で最後に記録されたオーディオ年輪（２）の次からのビデオ年輪（２）、オーディオ年輪（３）までは、予約領域に記録することができるが、その次のビデオ年輪（３）までは、予約領域に記録することができない。このため、ビデオ年輪（２）、オーディオ年輪（３）が、予約領域に記録される。そして、ビデオ年輪（２）、オーディオ年輪（３）を記録した結果残った予約領域は開放される（ステップＳ２４）。
【０１９３】
以下、同様にして、図１４Ａの多重化データが光ディスク３に記録される。
【０１９４】
なお、図１４および図１５の実施の形態では、図１４Ｂで説明したように、図１４Ａの多重化データの全体の大きさ以上の連続した空き領域が、光ディスク３に存在しているので、図１４Ａの多重化データは、その全体が、光ディスク３上の連続した記録領域に連続して記録される。
【０１９５】
次に、図１６Ａに示す多重化データを、図１６Ｂに示す光ディスク３の空き領域に記録する場合について説明する。
【０１９６】
なお、図１６Ａの多重化データは、図１４Ａの多重化データと同様に、その先頭から、４ECCブロック分のオーディオ年輪（１）、８ECCブロック分のビデオ年輪（１）、４ECCブロック分のオーディオ年輪（２）、９ECCブロック分のビデオ年輪（２）、４ECCブロック分のオーディオ年輪（３）、１０ECCブロック分のビデオ年輪（３）、６ECCブロック分のオーディオ年輪（４）、８ECCブロック分のビデオ年輪（４）が順次配置されて構成されている。
【０１９７】
また、図１６Ｂでは、論理セクタ#3200乃至#4031からなる空き領域と、論理セクタ#4160乃至#4767からなる空き領域の２つの連続した空き領域が、光ディスク３上に存在している。但し、論理セクタ#3200乃至#4031からなる空き領域も、論理セクタ#4160乃至#4767からなる空き領域も、図１６Ａの多重化データの全体の大きさ未満となっている。
【０１９８】
この場合、図１７に示すように、図１６Ａの多重化データが、図１６Ｂの空き領域に記録される。
【０１９９】
即ち、この場合も、まず最初に、例えば、論理セクタ#3200を先頭とする、１８の連続したECCブロックからなる空き領域が、予約領域として予約され（ステップＳ２１）、その予約領域に記録することのできるパケット単位の多重化データが記録される（ステップＳ２２）。この場合、図１６Ａの多重化データについては、その先頭からのオーディオ年輪（１）、ビデオ年輪（１）、オーディオ年輪（２）までは、予約領域に記録することができるが、その次のビデオ年輪（２）までは、予約領域に記録することができない。このため、オーディオ年輪（１）、ビデオ年輪（１）、オーディオ年輪（２）が、予約領域に記録される。そして、オーディオ年輪（１）、ビデオ年輪（１）、オーディオ年輪（２）を記録した結果残った予約領域は開放される（ステップＳ２４）。
【０２００】
その後は、再び、１８の連続したECCブロックからなる空き領域が、予約領域として予約されるが（ステップＳ２１）、図１６および図１７の実施の形態では、オーディオ年輪（２）が記録された論理セクタの次の論理セクタ#3712からは、論理セクタ#4031までしか連続した空き領域を確保することができず、この空き領域は、１８の連続したECCブロックの大きさに満たない。従って、オーディオ年輪（２）が記録された論理セクタの次の論理セクタ#3712を先頭としては、１８の連続したECCブロックからなる空き領域を確保することができない。
【０２０１】
このため、１８の連続したECCブロックからなる空き領域を確保することができるように、論理セクタ#4160を先頭として、１８の連続したECCブロックからなる空き領域が、予約領域として予約され（ステップＳ２１）、その予約領域に記録することのできるパケット単位の多重化データが記録される（ステップＳ２２）。この場合、図１６Ａの多重化データについては、前回の記録で最後に記録されたオーディオ年輪（２）の次からのビデオ年輪（２）、オーディオ年輪（３）までは、予約領域に記録することができるが、その次のビデオ年輪（３）までは、予約領域に記録することができない。このため、ビデオ年輪（２）、オーディオ年輪（３）が、予約領域に記録される。そして、ビデオ年輪（２）、オーディオ年輪（３）を記録した結果残った予約領域は開放される（ステップＳ２４）。
【０２０２】
以下、同様にして、図１６Ａの多重化データが光ディスク３に記録される。
【０２０３】
以上のように、多重化データの全体の大きさ以上の連続した空き領域が、光ディスク３に存在しない場合には、多重化データの書き込みについては、上述したように、ALLOCATION_UNITから、実年輪サイズの最大値に相当する論理ブロックの数を減算した減算値の論理ブロックの数だけ、連続して書き込まれることが、少なくとも保証される。
【０２０４】
ところで、図１６および図１７の実施の形態では、上述したように、オーディオ年輪（２）が記録された論理セクタの次の論理セクタ#3712からは、論理セクタ#4031までしか連続した空き領域を確保することができず、この論理セクタ#3712乃至#4031からなる空き領域は、ALLCATION_UNITが表す１８の連続したECCブロックの大きさに満たないため、その後段にある論理セクタ＃４１６０乃至＃４７６７でなる連続した空き領域の中から、論理セクタ#4160を先頭とする、１８の連続したECCブロックからなる空き領域が、予約領域として予約される。
【０２０５】
従って、図１３の書き込み制御処理では、前回のデータが書き込まれた最後の論理セクタの次の論理セクタから確保することができる連続した空き領域が、ALLCATION_UNITが表すECCブロックの数に満たない場合には、その空き領域に、データは書き込まれない。その結果、図１３の書き込み制御処理によれば、ALLCATION_UNITが表すECCブロックの数に満たない連続した空き領域が使用されずに残ってしまい、光ディスク３の記録領域を効率的に利用することができないケースが生じるおそれがある。
【０２０６】
そこで、書き込み制御部３８には、図１３で説明した書き込み制御処理に代えて、図１８のフローチャートにしたがった書き込み制御処理を行わせるようにすることができる。
【０２０７】
即ち、図１８の書き込み制御処理では、まず最初に、ステップＳ３１において、書き込み制御部３８は、図１３のステップＳ２１における場合と同様に、光ディスク３上の、ALLOCATION_UNIT分の連続した空き領域を予約し、ステップＳ３２に進む。
【０２０８】
ステップＳ３２では、書き込み制御部３８は、直前のステップＳ３１で予約した空き領域である予約領域に続く、光ディスク３上の連続した空き領域が、ALLOCATION_UNITが表すサイズ未満であるかどうかを判定する。ステップＳ３２において、予約領域に続く、光ディスク３上の連続した空き領域が、ALLOCATION_UNITが表すサイズ未満でないと判定された場合、即ち、予約領域の直後に、ALLOCATION_UNIT分以上の連続した空き領域が存在する場合、ステップＳ３３をスキップして、ステップＳ３４に進み、以下、ステップＳ３４乃至Ｓ３７において、図１３のステップＳ２２乃至Ｓ２５における場合とそれぞれ同様の処理が行われる。
【０２０９】
また、ステップＳ３２において、予約領域に続く、光ディスク３上の連続した空き領域が、ALLOCATION_UNITが表すサイズ未満であると判定された場合、ステップＳ３３に進み、書き込み制御部３８は、その予約領域の直後の、ALLOCATION_UNITが表すサイズ未満の連続した空き領域を、さらに予約する。従って、この場合、直前のステップＳ３１で確保されたALLOCATION_UNIT分の連続した空き領域に、その空き領域の直後の、ALLOCATION_UNITが表すサイズ未満の連続した空き領域を加えた空き領域が、予約領域として確保される。
【０２１０】
そして、ステップＳ３４に進み、以下、ステップＳ３４乃至Ｓ３７において、図１３のステップＳ２２乃至Ｓ２５における場合とそれぞれ同様の処理が行われる。
【０２１１】
図１８の書き込み制御処理によれば、上述の図１６Ａに示した多重化データは、図１６Ｂに示した光ディスク３の空き領域に、図１９に示すように記録される。
【０２１２】
即ち、この場合、まず最初に、図１７で説明したように、論理セクタ#3200を先頭とする、ALLOCATION_UNITが表す１８の連続したECCブロックからなる空き領域が、予約領域として予約される（ステップＳ３１）。
【０２１３】
この論理セクタ#3200を先頭とする、ALLOCATION_UNITが表す１８の連続したECCブロックからなる空き領域の直後の連続した空き領域は、図１７で説明したように、ALLOCATION_UNITが表す１８の連続したECCブロックの大きさに満たない。このため、論理セクタ#3200を先頭とする、ALLOCATION_UNITが表す１８の連続したECCブロックからなる空き領域の直後の連続した空き領域が、さらに予約され（ステップＳ３３）、その結果、図１９に示すように、光ディスク３上に存在する、論理セクタ#3200乃至#4031からなる空き領域と、論理セクタ#4160乃至#4767からなる空き領域の２つの連続した空き領域のうちの、論理セクタ#3200乃至#4031からなる連続した空き領域全体が、予約領域として確保される。
【０２１４】
そして、その予約領域に記録することのできるパケット単位の多重化データが、予約領域に記録される（ステップＳ３４）。この場合、図１６Ａの多重化データについては、その先頭からのオーディオ年輪（１）、ビデオ年輪（１）、オーディオ年輪（２）までの他、さらに、その次のビデオ年輪（２）まで、予約領域に記録することができる。このため、オーディオ年輪（１）、ビデオ年輪（１）、オーディオ年輪（２）、ビデオ年輪（２）が、予約領域に記録される。そして、オーディオ年輪（１）、ビデオ年輪（１）、オーディオ年輪（２）、ビデオ年輪（２）を記録した結果残った予約領域は開放される（ステップＳ２４）。
【０２１５】
その後は、再び、１８の連続したECCブロックからなる空き領域が、予約領域として予約されるが（ステップＳ３１）、図１９の実施の形態では、ビデオ年輪（２）が記録された論理セクタの次の論理セクタ#4031からは、その論理セクタ#4031しか連続した空き領域を確保することができず、この空き領域は、１８の連続したECCブロックの大きさに満たない。従って、ビデオ年輪（２）が記録された論理セクタの次の論理セクタ#4031を先頭としては、１８の連続したECCブロックからなる空き領域を確保することができないため、１８の連続したECCブロックからなる空き領域を確保することができるように、論理セクタ#4160を先頭として、１８の連続したECCブロックからなる空き領域が、予約領域として予約される（ステップＳ３１）。
【０２１６】
ここで、この場合、論理セクタ#4031からなる空き領域は使用されないこととなるが、図１７の実施の形態において、論理セクタ#3712乃至#4031からなる空き領域が使用されなかったケースと比較して、使用されない空き領域が激減している。
【０２１７】
論理セクタ#4160を先頭とする、ALLOCATION_UNITが表す１８の連続したECCブロックからなる空き領域の直後の連続した空き領域は、やはり、ALLOCATION_UNITが表す１８の連続したECCブロックの大きさに満たない。このため、論理セクタ#4160を先頭とする、ALLOCATION_UNITが表す１８の連続したECCブロックからなる空き領域の直後の連続した空き領域が、さらに予約され（ステップＳ３３）、その結果、図１９に示すように、光ディスク３上に存在していた、論理セクタ#3200乃至#4031からなる空き領域と、論理セクタ#4160乃至#4767からなる空き領域の２つの連続した空き領域のうちの、論理セクタ#4160乃至#4767からなる連続した空き領域全体が、予約領域として確保される。この場合、図１６Ａの多重化データについては、前回の記録で最後に記録されたビデオ年輪（２）の次からのオーディオ年輪（３）、ビデオ年輪（３）、オーディオ年輪（４）まで、予約領域に記録することができるので、そのオーディオ年輪（３）、ビデオ年輪（３）、オーディオ年輪（４）が、予約領域に記録される。そして、この場合は、オーディオ年輪（３）、ビデオ年輪（３）、オーディオ年輪（４）を記録した結果残る予約領域は存在しないので、予約領域の開放は、特に行われない。
【０２１８】
以下、同様にして、図１６Ａの多重化データが光ディスク３に記録される。
【０２１９】
以上のように、ALLOCATION_UNIT分の連続した空き領域を、予約領域として確保し、その予約領域に続く、光ディスク３上の連続した空き領域が、ALLOCATION_UNITが表すサイズ未満である場合には、その予約領域の直後の、ALLOCATION_UNITが表すサイズ未満の連続した空き領域を、さらに予約領域として確保するようにしたので、予約領域の直後の、ALLOCATION_UNITが表すサイズ未満の連続した空き領域のすべてが使用されずに残ってしまうことを防止し、これにより、光ディスク３の記録領域を効率的に利用することが可能となる。
【０２２０】
なお、ファイルシステムドライバ３３として、上述したように、UDF（例えば、UDF2.01）を採用することが可能であるが、UDFでは、空き領域を、スペースビットマップ(Space Bitmap)による方法と、アンアロケーテッドスペースエントリ(Unallocated Space Entry)による方法のうちのいずれかで管理するように規定している。連続した空き領域の管理の容易さという点では、アンアロケーテッドスペースエントリによる方法が優れている。
【０２２１】
アンアロケーテッドスペースエントリによる方法では、１つの連続した空き領域を、１つのアロケーションディスクリプタ(Allocation Descriptor)で表現する。従って、光ディスク３において、空き領域が分断されている場合には、連続した空き領域ごとに、１つのアロケーションディスクリプタが割り当てられる。これにより、光ディスク３上の空き領域の全体は、アロケーションディスクリプタの列で表現される。
【０２２２】
アロケーションディスクリプタは、エクステントレングス(Extent Length）と、エクステントポジション(Extent Position)の２つの変数を有する構造体で、エクステントレングスは、連続した空き領域のサイズの、例えばバイト数を表し、エクステントポジションは、連続した空き領域の先頭の論理セクタのLSNを表す。なお、エクステントレングスは、一般に、論理セクタのサイズの整数倍の値をとり、従って、論理セクタのサイズが、例えば、上述したように、2048[byte]であれば、エクステントレングスは、その2048の整数倍の値をとることになる。
【０２２３】
書き込み制御部３８が、図１３または図１８で説明した書き込み制御処理を行うには、ファイルシステムドライバ３３であるUDFは、例えば、次のような３つの関数RESERVE_SPACE，ALLOC_SPACE，RELEASE_SPACE（による機能）を、上位レイヤである書き込み制御部３８に提供するものとすれば良い。
【０２２４】
即ち、関数RESERVE_SPACEは、引数として、例えば、file_handleとlengthをとる。引数file_handleは、ファイルハンドルを表し、引数lengthは、空き領域のサイズを、例えば、論理ブロックの数によって表す。関数RESERVE_SPACE(file_handle,length)が実行された場合、UDFは、光ディスク３の空き領域の中から引数lengthで指定された長さ以上の連続した空き領域を探し、これを引数file_handleで指定されたファイルハンドルによって特定されるファイルのための予約領域として確保する。なお、関数RESERVE_SPACE(file_handle,length)を実行するには、引数file_handleで指定されたファイルハンドルによって特定されるファイルがオープンされていることが必要である。
【０２２５】
また、関数RESERVE_SPACE(file_handle,length)は、戻り値として、error_codeとalloc_descを返す。戻り値error_codeは、エラーコードを表し、連続した空き領域を確保することができた場合と、空き領域が不足しているなどの理由で連続した空き領域を確保することができなかった場合とで、異なる値をとる。戻り値alloc_descには、連続した空き領域を確保することができた場合に、その連続した空き領域を表すアロケーションディスクリプタがセットされる。
【０２２６】
関数RESERVE_SPACE(file_handle,length)が実行されることによって確保された予約領域は、後述する関数RELEASE_SPACEが実行されることにより開放されるまで、他のファイルに割り当てられないが、関数RELEASE_SPACEを実行せずに、引数file_handleが表すファイルハンドルのファイルがクローズされた場合、そのファイルに割り当てられた予約領域は、関数RELEASE_SPACEが実行された場合と同様に開放される。
【０２２７】
関数ALLOC_SPACEは、引数として、例えば、file_handleとalloc_descをとる。この引数file_handleとalloc_descに、それぞれ、ファイルハンドルとアロケーションディスクリプタがセットされ、関数ALLOC_SPACE(file_handle,alloc_desc)が実行されることにより、引数alloc_descにセットされたアロケーションディスクリプタが表す連続した空き領域としての予約領域に、引数file_handleにセットされたファイルハンドルが表すファイルのデータが実際に記録されたとして、その情報が、UDFが管理するファイルシステム（ファイルの管理情報）に反映される。
【０２２８】
なお、関数ALLOC_SPACE(file_handle,alloc_desc)の引数alloc_descにセットされるアロケーションディスクリプタによって表される記録領域は、関数RESERVE_SPACE(file_handle,length)の戻り値として得られるアロケーションディスクリプタによって表される記録領域の一部または全部でなければならない。
【０２２９】
また、関数ALLOC_SPACE(file_handle,alloc_desc)は、戻り値として、error_codeを返す。この戻り値error_codeは、エラーコードを表し、UDFが管理するファイルシステムに、データが記録された旨の情報が正常に反映された場合と、引数alloc_descにセットされたアロケーションディスクリプタが表す領域が予約領域でないなどの理由で、データが記録されず、その結果、UDFが管理するファイルシステムに、データが記録された旨の情報が正常に反映されなかった場合とで、異なる値をとる。
【０２３０】
関数RELEASE_SPACEは、引数として、例えば、file_handleとalloc_descをとる。この引数file_handleとalloc_descに、それぞれ、ファイルハンドルとアロケーションディスクリプタがセットされ、関数RELEASE_SPACE(file_handle,alloc_desc)が実行されることにより、引数file_handleにセットされたファイルハンドルが表すファイルに割り当てられた、引数alloc_descにセットされたアロケーションディスクリプタが表す連続した空き領域としての予約領域が開放される。
【０２３１】
なお、関数RELEASE_SPACE(file_handle,alloc_desc)が実行されることにより開放された予約領域は、関数RESERVE_SPACE(file_handle,length)による予約の対象となる。
【０２３２】
また、関数RELEASE_SPACE(file_handle,alloc_desc)は、戻り値として、error_codeを返す。この戻り値error_codeは、エラーコードを表し、引数alloc_descにセットされたアロケーションディスクリプタが表す連続した空き領域としての予約領域を正常に開放することができた場合と、できなかった場合とで、異なる値をとる。
【０２３３】
UDFが書き込み制御部３８に対して提供する、上述の３つの関数RESERVE_SPACE(file_handle,length)，ALLOC_SPACE(file_handle,alloc_desc)，RELEASE_SPACE(file_handle,alloc_desc)は、例えば、次のように実行される。
【０２３４】
即ち、書き込み制御部３８は、図１３のステップＳ２１や、図１８のステップＳ３１，Ｓ３３において、連続した空き領域を予約するときに、関数RESERVE_SPACE(file_handle,length)の実行を、UDFに要求する。この場合、引数lengthには例えば、ALLOCATION_UNITなどの、予約する連続した空き領域のサイズがセットされる。
【０２３５】
また、書き込み制御部３８は、図１３のステップＳ２２や、図１８のステップＳ３４において、予約領域に、多重化データを記録したときに、関数ALLOC_SPACE(file_handle,alloc_desc)の実行を、UDFに要求する。これにより、予約領域に、多重化データを記録したことが、UDFに反映される。
【０２３６】
さらに、書き込み制御部３８は、図１３のステップＳ２４や、図１８のステップＳ３６において、多重化データを記録した後に残った予約領域を開放するときに、関数RELEASE_SPACE(file_handle,alloc_desc)の実行を、UDFに要求する。なお、UDFは、関数RELEASE_SPACE(file_handle,alloc_desc)によって予約領域を開放した場合、その開放された予約領域である空き領域の直後に空き領域があるときは、開放された予約領域である空き領域を、その直後の空き領域と一体の空き領域として、１つのアロケーションディスクリプタで管理する。
【０２３７】
以上のように、光ディスク３の記録領域のうちの、ALLOCATION_UNIT分の連続した空き領域を、予約領域として予約し、その予約領域に対して、その予約領域に記録することができるパケット単位の多重化データを記録するとともに、予約領域のうちの、パケット単位の多重化データが記録されずに残った記録領域を、空き領域として開放するようにしたので、多重化データが、ALLOCATION_UNITから、パケット長の最大値、即ち、実年輪サイズの最大値を減算した減算値分の論理ブロックの数だけ、連続して書き込まれることが保証され、これにより、連続して書き込まれた多重化データの読み出し時に、シークが発生しなくなり、再生が途切れることを防止することが可能となる。
【０２３８】
なお、本発明は、光ディスク以外の、例えば、磁気ディスクなどのディスク状記録媒体、さらには、ディスク状でない記録媒体にも適用可能である。
【０２３９】
【発明の効果】
以上の如く、本発明によれば、記録媒体に対するデータの読み書き時におけるシークの頻度を小さくすることが可能となり、その結果、再生が途切れることを防止することが可能となる。
【図面の簡単な説明】
【図１】本発明を適用した記録再生システムの一実施の形態の構成例を示すブロック図である。
【図２】コンピュータ１のハードウェア構成例を示すブロック図である。
【図３】コンピュータ１上で実行されるソフトウェアを示す図である。
【図４】光ディスク３に記録されるデータの論理フォーマットを示す図である。
【図５】記録スケジューラ３６の機能的構成例を示すブロック図である。
【図６】  ECCブロックとのアラインメントをとる方法を説明する図である。
【図７】年輪パケット化処理を説明する図である。
【図８】記録データバッファ６１に蓄積される本線ビデオデータの積算データ量と、記録データバッファ６１から抽出される本線ビデオデータの積算データ量とを示す図である。
【図９】ビデオ年輪またはオーディオ年輪の配置が連続するケースを示す図である。
【図１０】多重化データを示す図である。
【図１１】年輪パケット化処理を説明するフローチャートである。
【図１２】多重化処理を説明するフローチャートである。
【図１３】書き込み制御処理を説明するフローチャートである。
【図１４】多重化データと、光ディスク３の空き領域とを示す図である。
【図１５】多重化データが光ディスク３に書き込まれる様子を示す図である。
【図１６】多重化データと、光ディスク３の空き領域とを示す図である。
【図１７】多重化データが光ディスク３に書き込まれる様子を示す図である。
【図１８】書き込み制御処理を説明するフローチャートである。
【図１９】多重化データが光ディスク３に書き込まれる様子を示す図である。
【符号の説明】
１  コンピュータ，  ２  ドライブ，  ３  光ディスク，  ４  信号入出力装置，  １１  CPU，  １２  ROM，  １３  メモリコントローラ，  １４  RAM，１５  HD，  １６  入力部，  １７  出力部，  １８  通信I/F，  １９  I/Fコントローラ，  ２０  データ変換部，  ３１  OS，  ３２  デバイスドライバ，  ３３  ファイルシステムドライバ，  ３４  アプリケーションプログラム，３５  年輪アロケーションマネージャ，  ３６  記録スケジューラ，  ３７  再生スケジューラ，  ３８  書き込み制御部，  ３９  読み出し制御部，  ５１乃至５３  パケット化部，  ６１  記録データバッファ，  ６２  基準年輪サイズ判定部，  ６３  実年輪サイズデータ抽出部，  ６４  実年輪サイズデータ記憶部，  ７１  記録データバッファ，  ７２  基準年輪サイズ判定部，  ７３  実年輪サイズデータ抽出部，  ７４  実年輪サイズデータ記憶部，  ８１  記録データバッファ，  ８２  基準年輪サイズ判定部，  ８３  実年輪サイズデータ抽出部，  ８４  実年輪サイズデータ記憶部，  ９１  多重化部，  ９２  多重化データバッファ
【図１】
0004117608.tif 000002
【図２】
0004117608.tif 000003
【図３】
0004117608.tif 000004
【図４】
0004117608.tif 000005
【図５】
0004117608.tif 000006
【図６】
0004117608.tif 000007
【図７】
0004117608.tif 000008
【図８】
0004117608.tif 000009
【図９】
0004117608.tif 000010
【図１０】
0004117608.tif 000011
【図１１】
0004117608.tif 000012
【図１２】
0004117608.tif 000013
【図１３】
0004117608.tif 000014
【図１４】
0004117608.tif 000015
【図１５】
0004117608.tif 000016
【図１６】
0004117608.tif 000017
【図１７】
0004117608.tif 000018
【図１８】
0004117608.tif 000019
【図１９】
0004117608.tif 000020