(57)【特許請求の範囲】
【請求項１】
記録媒体からある再生時間単位でなるデータを読み出す読み出し順をスケジューリングする情報処理装置において、
前記記録媒体に記録されているデータのうちの、まだ、第１のキューに移動されていないデータから、再生時刻が最も早いデータを検出する第１の検出手段と、
前記第１の検出手段において検出された前記データを、前記第１のキューに移動する第１の移動手段と、
前記記録媒体における記録位置に基づくソートの対象とする前記第１のキューに記憶されたデータの範囲であるスケジュールウインドウを設定する設定手段と、
前記記録媒体における記録位置に基づいて、前記スケジュールウインドウ内に存在する前記データの中から、第２のキューに移動するものを検出する第２の検出手段と、
前記第２の検出手段において検出された前記データを、前記第２のキューに移動する第２の移動手段と、
前記第２のキューが空であるかどうかを判定する第１の判定手段と、
前記スケジュールウインドウ内に存在する前記データの中に、前記第２のキューの最後尾のデータの前記記録媒体における記録位置よりも後に記録されているものが存在しないかどうかを判定する第２の判定手段と
を備え、
前記第２の検出手段は、
前記第２のキューが空である場合、前記スケジュールウインドウ内に存在する前記データの中から、前記記録媒体における記録位置が最も先のものを検出し、
前記第２のキューが空でない場合において、前記スケジュールウインドウ内に存在する前記データの中に、前記第２のキューの最後尾のデータの前記記録媒体における記録位置よりも後に記録されているものが存在しないとき、前記スケジュールウインドウ内に存在する前記データの中から、前記記録媒体における記録位置が最も先のものを検出し、
前記第２のキューが空でない場合において、前記スケジュールウインドウ内に存在する前記データの中に、前記第２のキューの最後尾のデータの前記記録媒体における記録位置よりも後に記録されているものが存在するとき、前記スケジュールウインドウ内に存在する前記データの中から、前記第２のキューの最後尾のデータの前記記録媒体における記録位置よりも後に記録されているデータであって、その記録位置に最も近いものを検出する
ことを特徴とする情報処理装置。
【請求項２】
前記記録媒体には、ビデオデータまたはオーディオデータのうちの一方または両方が、所定の単位ごとに記録されている
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記記録媒体には、所定の単位ごとのビデオデータとオーディオデータとが交互に記録されている
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記第２のキューに移動された前記データが、前記スケジュールウインドウ内の先頭に位置していたかどうかを判定する第３の判定手段をさらに備え、
前記設定手段は、前記第２のキューに移動された前記データが、前記スケジュールウインドウ内の先頭に位置していた場合、前記スケジュールウインドウを設定し直す
ことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
記録媒体からある再生時間単位でなるデータを読み出す読み出し順をスケジューリングする情報処理方法において、
前記記録媒体に記録されているデータのうちの、まだ、第１のキューに移動されていないデータから、再生時刻が最も早いデータを検出する第１の検出ステップと、
前記第１の検出ステップにおいて検出された前記データを、前記第１のキューに移動する第１の移動ステップと、
前記記録媒体における記録位置に基づくソートの対象とする前記第１のキューに記憶されたデータの範囲であるスケジュールウインドウを設定する設定ステップと、
前記記録媒体における記録位置に基づいて、前記スケジュールウインドウ内に存在する前記データの中から、第２のキューに移動するものを検出する第２の検出ステップと、
前記第２の検出ステップにおいて検出された前記データを、前記第２のキューに移動する第２の移動ステップと、
前記第２のキューが空であるかどうかを判定する第１の判定ステップと、
前記スケジュールウインドウ内に存在する前記データの中に、前記第２のキューの最後尾のデータの前記記録媒体における記録位置よりも後に記録されているものが存在しないかどうかを判定する第２の判定ステップと
を備え、
前記第２の検出ステップにおいて、
前記第２のキューが空である場合、前記スケジュールウインドウ内に存在する前記データの中から、前記記録媒体における記録位置が最も先のものが検出され、
前記第２のキューが空でない場合において、前記スケジュールウインドウ内に存在する前記データの中に、前記第２のキューの最後尾のデータの前記記録媒体における記録位置よりも後に記録されているものが存在しないとき、前記スケジュールウインドウ内に存在する前記データの中から、前記記録媒体における記録位置が最も先のものが検出され、
前記第２のキューが空でない場合において、前記スケジュールウインドウ内に存在する前記データの中に、前記第２のキューの最後尾のデータの前記記録媒体における記録位置よりも後に記録されているものが存在するとき、前記スケジュールウインドウ内に存在する前記データの中から、前記第２のキューの最後尾のデータの前記記録媒体における記録位置よりも後に記録されているデータであって、その記録位置に最も近いものが検出される
ことを特徴とする情報処理方法。
【請求項６】
記録媒体からある再生時間単位でなるデータを読み出す読み出し順をスケジューリングする情報処理を、コンピュータに行わせるプログラムにおいて、
前記記録媒体に記録されているデータのうちの、まだ、第１のキューに移動されていないデータから、再生時刻が最も早いデータを検出する第１の検出ステップと、
前記第１の検出ステップにおいて検出された前記データを、前記第１のキューに移動する第１の移動ステップと、
前記記録媒体における記録位置に基づくソートの対象とする前記第１のキューに記憶されたデータの範囲であるスケジュールウインドウを設定する設定ステップと、
前記記録媒体における記録位置に基づいて、前記スケジュールウインドウ内に存在する前記データの中から、第２のキューに移動するものを検出する第２の検出ステップと、
前記第２の検出ステップにおいて検出された前記データを、前記第２のキューに移動する第２の移動ステップと、
前記第２のキューが空であるかどうかを判定する第１の判定ステップと、
前記スケジュールウインドウ内に存在する前記データの中に、前記第２のキューの最後尾のデータの前記記録媒体における記録位置よりも後に記録されているものが存在しないかどうかを判定する第２の判定ステップと
を備え、
前記第２の検出ステップにおいて、
前記第２のキューが空である場合、前記スケジュールウインドウ内に存在する前記データの中から、前記記録媒体における記録位置が最も先のものが検出され、
前記第２のキューが空でない場合において、前記スケジュールウインドウ内に存在する前記データの中に、前記第２のキューの最後尾のデータの前記記録媒体における記録位置よりも後に記録されているものが存在しないとき、前記スケジュールウインドウ内に存在する前記データの中から、前記記録媒体における記録位置が最も先のものが検出され、
前記第２のキューが空でない場合において、前記スケジュールウインドウ内に存在する前記データの中に、前記第２のキューの最後尾のデータの前記記録媒体における記録位置よりも後に記録されているものが存在するとき、前記スケジュールウインドウ内に存在する前記データの中から、前記第２のキューの最後尾のデータの前記記録媒体における記録位置よりも後に記録されているデータであって、その記録位置に最も近いものが検出される
ことを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理装置および情報処理方法、並びにプログラムに関し、特に、例えば、光ディスク等の記録媒体から、データを効率的に読み出すことができるようにする情報処理装置および情報処理方法、並びにプログラムに関する。
【０００２】
【従来の技術】
近年においては、記録レートおよび読み出しレートが大きく向上した光ディスクその他の記録媒体が実用化されており、比較的高画質で長時間のビデオデータの記録が可能となってきている。
【０００３】
しかしながら、記録レートや読み出しレートが高くても、光ディスクにおいて、ビデオデータのストリームが、不連続に、いわば細切れ状態で記録されている場合には、その不連続な部分で、シークが発生する。そして、シークによって、ビデオデータの読み出しが、その再生すべき時刻に間に合わない場合には、ビデオデータの再生が途切れることになる。
【０００４】
また、例えば、特許文献１には、素材データを再生する素材用ディスク装置の他に、作業用ディスク装置を用意し、作業用ディスク装置に、素材データの中の編集点近傍のデータを複製しておき、その素材用ディスク装置と作業用ディスク装置の出力を適宜選択することで、編集点で生じるシークによって、再生が途切れることを防止する方法が記載されている。
【０００５】
【特許文献１】
特開平10-50037号公報。
【０００６】
【発明が解決しようとする課題】
しかしながら、特許文献１に記載の方法では、シークによって再生が途切れることを防止するのに、素材用ディスク装置の他に、作業用ディスク装置を用意し、その素材用ディスク装置と作業用ディスク装置の出力を適宜選択する制御を行う必要がある。
【０００７】
また、光ディスク等の記録媒体からのデータの読み出しは、なるべく効率的に行うことができるのが望ましい。
【０００８】
本発明は、このような状況に鑑みてなされたものであり、例えば、光ディスクなどの記録媒体からのデータの読み出しを、再生が途切れることを（極力）防止しながら効率的に行うことができるようにするものである。
【０００９】
【課題を解決するための手段】
本発明の情報処理装置は、記録媒体に記録されているデータのうちの、まだ、第１のキューに移動されていないデータから、再生時刻が最も早いデータを検出する第１の検出手段と、第１の検出手段において検出されたデータを、第１のキューに移動する第１の移動手段と、記録媒体における記録位置に基づくソートの対象とする第１のキューに記憶されたデータの範囲であるスケジュールウインドウを設定する設定手段と、記録媒体における記録位置に基づいて、スケジュールウインドウ内に存在するデータの中から、第２のキューに移動するものを検出する第２の検出手段と、第２の検出手段において検出されたデータを、第２のキューに移動する第２の移動手段と、第２のキューが空であるかどうかを判定する第１の判定手段と、スケジュールウインドウ内に存在するデータの中に、第２のキューの最後尾のデータの記録媒体における記録位置よりも後に記録されているものが存在しないかどうかを判定する第２の判定手段とを備え、第２の検出手段は、第２のキューが空である場合、スケジュールウインドウ内に存在するデータの中から、記録媒体における記録位置が最も先のものを検出し、第２のキューが空でない場合において、スケジュールウインドウ内に存在するデータの中に、第２のキューの最後尾のデータの記録媒体における記録位置よりも後に記録されているものが存在しないとき、スケジュールウインドウ内に存在するデータの中から、記録媒体における記録位置が最も先のものを検出し、第２のキューが空でない場合において、スケジュールウインドウ内に存在するデータの中に、第２のキューの最後尾のデータの記録媒体における記録位置よりも後に記録されているものが存在するとき、スケジュールウインドウ内に存在するデータの中から、第２のキューの最後尾のデータの記録媒体における記録位置よりも後に記録されているデータであって、その記録位置に最も近いものを検出することを特徴とする。
【００１０】
本発明の情報処理方法は、記録媒体に記録されているデータのうちの、まだ、第１のキューに移動されていないデータから、再生時刻が最も早いデータを検出する第１の検出ステップと、第１の検出ステップにおいて検出されたデータを、第１のキューに移動する第１の移動ステップと、記録媒体における記録位置に基づくソートの対象とする第１のキューに記憶されたデータの範囲であるスケジュールウインドウを設定する設定ステップと、記録媒体における記録位置に基づいて、スケジュールウインドウ内に存在するデータの中から、第２のキューに移動するものを検出する第２の検出ステップと、第２の検出ステップにおいて検出されたデータを、第２のキューに移動する第２の移動ステップと、第２のキューが空であるかどうかを判定する第１の判定ステップと、スケジュールウインドウ内に存在するデータの中に、第２のキューの最後尾のデータの記録媒体における記録位置よりも後に記録されているものが存在しないかどうかを判定する第２の判定ステップとを備え、第２の検出ステップにおいて、第２のキューが空である場合、スケジュールウインドウ内に存在するデータの中から、記録媒体における記録位置が最も先のものが検出され、第２のキューが空でない場合において、スケジュールウインドウ内に存在するデータの中に、第２のキューの最後尾のデータの記録媒体における記録位置よりも後に記録されているものが存在しないとき、スケジュールウインドウ内に存在するデータの中から、記録媒体における記録位置が最も先のものが検出され、第２のキューが空でない場合において、スケジュールウインドウ内に存在するデータの中に、第２のキューの最後尾のデータの記録媒体における記録位置よりも後に記録されているものが存在するとき、スケジュールウインドウ内に存在するデータの中から、第２のキューの最後尾のデータの記録媒体における記録位置よりも後に記録されているデータであって、その記録位置に最も近いものが検出されることを特徴とする。
【００１１】
本発明のプログラムは、記録媒体に記録されているデータのうちの、まだ、第１のキューに移動されていないデータから、再生時刻が最も早いデータを検出する第１の検出ステップと、第１の検出ステップにおいて検出されたデータを、第１のキューに移動する第１の移動ステップと、記録媒体における記録位置に基づくソートの対象とする第１のキューに記憶されたデータの範囲であるスケジュールウインドウを設定する設定ステップと、記録媒体における記録位置に基づいて、スケジュールウインドウ内に存在するデータの中から、第２のキューに移動するものを検出する第２の検出ステップと、第２の検出ステップにおいて検出されたデータを、第２のキューに移動する第２の移動ステップと、第２のキューが空であるかどうかを判定する第１の判定ステップと、スケジュールウインドウ内に存在するデータの中に、第２のキューの最後尾のデータの記録媒体における記録位置よりも後に記録されているものが存在しないかどうかを判定する第２の判定ステップとを備え、第２の検出ステップにおいて、第２のキューが空である場合、スケジュールウインドウ内に存在するデータの中から、記録媒体における記録位置が最も先のものが検出され、第２のキューが空でない場合において、スケジュールウインドウ内に存在するデータの中に、第２のキューの最後尾のデータの記録媒体における記録位置よりも後に記録されているものが存在しないとき、スケジュールウインドウ内に存在するデータの中から、記録媒体における記録位置が最も先のものが検出され、第２のキューが空でない場合において、スケジュールウインドウ内に存在するデータの中に、第２のキューの最後尾のデータの記録媒体における記録位置よりも後に記録されているものが存在するとき、スケジュールウインドウ内に存在するデータの中から、第２のキューの最後尾のデータの記録媒体における記録位置よりも後に記録されているデータであって、その記録位置に最も近いものが検出されることを特徴とする。
【００１２】
本発明の情報処理装置および情報処理方法、並びにプログラムにおいては、記録媒体に記録されているデータのうちの、まだ、第１のキューに移動されていないデータから、再生時刻が最も早いデータが検出され、そのデータが、第１のキューに移動される。また、記録媒体における記録位置に基づくソートの対象とする第１のキューに記憶されたデータの範囲であるスケジュールウインドウが設定され、記録媒体における記録位置に基づいて、スケジュールウインドウ内に存在するデータの中から、第２のキューに移動するものが検出され、そのデータが、第２のキューに移動される。また、第２のキューが空であるかどうかが判定され、スケジュールウインドウ内に存在するデータの中に、第２のキューの最後尾のデータの記録媒体における記録位置よりも後に記録されているものが存在しないかどうかが判定される。
そして、スケジュールウインドウ内に存在するデータの中から、第２のキューに移動するものを検出するにあたっては、第２のキューが空である場合、スケジュールウインドウ内に存在するデータの中から、記録媒体における記録位置が最も先のものが検出される。一方、第２のキューが空でない場合において、スケジュールウインドウ内に存在するデータの中に、第２のキューの最後尾のデータの記録媒体における記録位置よりも後に記録されているものが存在しないときには、スケジュールウインドウ内に存在するデータの中から、記録媒体における記録位置が最も先のものが検出される。また、第２のキューが空でない場合において、スケジュールウインドウ内に存在するデータの中に、第２のキューの最後尾のデータの記録媒体における記録位置よりも後に記録されているものが存在するときには、スケジュールウインドウ内に存在するデータの中から、第２のキューの最後尾のデータの記録媒体における記録位置よりも後に記録されているデータであって、その記録位置に最も近いものが検出される。
【００１３】
【発明の実施の形態】
図１は、本発明を適用した記録再生システムの一実施の形態の構成例を示している。
【００１４】
図１の記録再生システムは、コンピュータ１をベースに構成されており、コンピュータ１は、光ディスク３に対して、データを読み書きする、例えば、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)１５に格納されているプログラム、衛星若しくはネットワークから転送され、通信部１８で受信されて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)ドライバなどを用いることができる。
【００３５】
アロケーションマネージャ３５は、記録スケジューラ３６と再生スケジューラ３７などから構成される。記録スケジューラ３６は、図示せぬ他のアプリケーションや、ユーザが入力部１６を操作することによって、光ディスク３へのデータの記録の要求があった場合には、そのデータの光ディスク３への記録（書き込み）順をスケジューリングし、そのスケジューリング結果にしたがい、ファイルシステムドライバ３３に対して、光ディスク３へのデータの記録を要求する。ファイルシステムドライバ３３は、記録スケジューラ３６からの要求にしたがい、データを、デバイスドライバ３２およびドライブ２を介して、光ディスク３に書き込む。
【００３６】
ここで、ドライブ２において、光ディスク３に対するデータの書き込みおよび読み出しは、例えば、光ディスク３の内周から外周方向に向かって行われるものとする。また、ドライブ２は、光ディスク３に対する最小アクセス単位である物理セクタを１以上集めた物理ブロックを、ECC(Error Checking and Correction)処理を施す単位として、その物理ブロック単位で、データの読み書きを行う。なお、物理ブロックには、例えば、光ディスク３の内周から外周に向かって昇順の物理ブロック番号が付されており、各物理ブロックには、論理ブロックが割り当てられている。但し、光ディスク３に対するデータの読み書きは、光ディスク３の外周から内周方向に向かって行うようにすることが可能である。また、物理ブロックを構成する物理セクタの数は、特に限定されるものではない。
【００３７】
デバイスドライバ３２は、ファイルシステムドライバ３３からデータの読み書きの要求があると、その読み書きの要求を、その読み書きを行う論理ブロックに付されている論理ブロック番号（以下、適宜、LBN(Logical Block Number)という）とともに、ドライブ２に供給する。ドライブ２は、デバイスドライバ３２から供給されるLBNの論理ブロックに割り当てられている光ディスク３の物理ブロックに対して、データの読み書きを行う。
【００３８】
なお、物理ブロックに割り当てられている論理ブロックには、例えば、その物理ブロックの物理ブロック番号に比例するLBNが付されているものとする。この場合、複数の論理ブロックそれぞれのLBNが連続している場合には、その複数の論理ブロックに割り当てられている複数の物理ブロックそれぞれの物理ブロック番号も連続したものとなり、その結果、複数の物理ブロックも連続した記録領域となる。即ち、複数の論理ブロックが連続している場合には、その複数の論理ブロックに割り当てられている複数の物理ブロックも連続したものとなる。
【００３９】
ここで、上述したように、光ディスク３に対するデータの書き込みおよび読み出しは、例えば、光ディスク３の内周から外周方向に向かって行われ、さらに、物理ブロックには、光ディスク３の内周から外周に向かって昇順の物理ブロック番号が付されているととともに、論理ブロックには、物理ブロック番号に比例するLBNが付されている。従って、ここでは、光ディスク３に対するデータの書き込みおよび読み出しは、物理ブロック番号で考えても、また、LBNで考えても、番号の小さい順に行われる。
【００４０】
再生スケジューラ３７は、図示せぬ他のアプリケーションや、ユーザが入力部１６を操作することによって、光ディスク３からのデータの読み出しの要求があった場合には、そのデータを光ディスク３から読み出す読み出し順をスケジューリングし、そのスケジューリング結果にしたがい、ファイルシステムドライバ３３に対して、光ディスク３からのデータの読み出しを要求する。ファイルシステムドライバ３３は、再生スケジューラ３７からの要求にしたがい、データを、デバイスドライバ３２およびドライブ２を介して、光ディスク３から読み出す。
【００４１】
次に、図４は、記録スケジューラ３６によって、ビデオデータとそのビデオデータに付随するオーディオデータが光ディスク３に記録される場合の、その記録データの論理フォーマットを示している。
【００４２】
ビデオデータとオーディオデータは、例えば、いずれも、所定の再生時間（例えば、１．５秒から２秒など）単位のデータに分割され、光ディスク３に記録される。
【００４３】
なお、図４の実施の形態では、ある再生時間単位のオーディオデータが記録され、その後、他の（あるいは同一の）再生時間単位のビデオデータが記録されることが繰り返されているが、即ち、ビデオデータとオーディオデータとが交互に記録されているが、ビデオデータやオーディオデータは、幾つかの再生時間単位分だけ連続して記録することも可能である。また、ある再生時間単位のオーディオデータとしては、２つのチャンネルCH1とCH2のオーディオデータを記録することができるようになっている。
【００４４】
ここで、上述したように、本実施の形態では、論理ブロックが連続していれば、物理ブロックも連続しているから、図４に示した各再生時間単位のビデオデータまたはオーディオデータは、光ディスク３上の物理的に連続した記録領域に記録されている。
【００４５】
なお、現実には、光ディスク３には、欠陥（ディフェクト）が生じ、その欠陥に対しては、例えば、ドライブ２において、欠陥がある物理ブロックに対する論理ブロックの割り当てを、その欠陥がある物理ブロックの直後の物理ブロックにスリップするスリップ処理や、他の正常な物理ブロックにリアサインするリアサイン処理が行われる。スリップ処理やリアサイン処理が行われると、LBNが連続している複数の論理ブロックに割り当てられている複数の物理ブロックが連続していることは、保証されなくなる。但し、スリップ処理やリアサイン処理が行われた場合であっても、ある再生時間単位のビデオデータやオーディオデータを、光ディスク３の物理的に連続した記録領域に記録することは可能であり、本実施の形態では、記録スケジューラ３６が、例えば、少なくとも、ある再生時間単位のビデオデータやオーディオデータを、光ディスク３の物理的に連続した記録領域に記録するように、記録制御を行うものとする。
【００４６】
次に、図５は、図３の再生スケジューラ３７の構成例を示している。
【００４７】
配置情報取得部４１は、ファイルシステムドライバ３３（図３）に、光ディスク３に記録されたデータが格納されたファイルに関するファイル情報を要求し、そのファイル情報から、光ディスク３のある再生時間単位のビデオデータやオーディオデータ（以下、適宜、エクステント(extent)という）について、後述する配置情報を取得して出力する。配置情報バッファ４２は、配置情報取得部４１が出力するエクステントの配置情報を順次記憶する。
【００４８】
FTCソート部４３は、配置情報バッファ４２に記憶されたエクステントの配置情報を、そのエクステントの再生時刻に基づいてソートし、そのソート結果を、FTCソート結果キュー４４に供給する。FTCソート結果キュー４４は、FTCソート部４３によるエクステントの配置情報のソート結果を一時記憶する。
【００４９】
LBNスケジューリング部４５は、FTCソート結果キュー４４に記憶された各エクステントの配置情報を、そのエクステントの光ディスク３における記録位置に基づいてソートし、そのソート結果を、光ディスク３からエクステントを読み出す読み出し順のスケジューリング結果として、スケジューリング結果キュー４６に供給する。スケジューリング結果キュー４６は、LBNスケジューリング部４５によるエクステントの配置情報のソート結果を一時記憶する。
【００５０】
なお、図５において、図３には図示していない読み出し制御部４７は、アロケーションマネージャ３５を構成しており、スケジューリング結果キュー４６に記憶されたエクステントの配置情報にしたがい、そのエクステントの読み出しを、ファイルシステムドライバ３３に要求する。
【００５１】
次に、図６のフローチャートを参照して、図５の再生スケジューラ３７が行う、光ディスク３からエクステントを読み出す読み出し順をスケジューリングする読み出しスケジューリング処理について説明する。
【００５２】
まず最初に、ステップＳ１において、配置情報取得部４１は、光ディスク３に記録されたエクステントの配置情報を取得し、配置情報バッファ４２に供給して記憶させる。そして、ステップＳ２に進み、FTCソート部４３は、配置情報バッファ４２に記憶されたエクステントの配置情報を、そのエクステントの再生時刻に基づいてソートし、そのソート結果を、FTCソート結果キュー４４に供給して記憶させ、ステップＳ３に進む。ステップＳ３では、LBNスケジューリング部４５は、FTCソート結果キュー４４に記憶された各エクステントの配置情報を、そのエクステントの光ディスク３における記録位置に基づいてソートし、そのソート結果を、光ディスク３からエクステントを読み出す読み出し順のスケジューリング結果として、スケジューリング結果キュー４６に供給して記憶させ、読み出しスケジューリング処理を終了する。
【００５３】
次に、図７を参照して、図５の配置情報取得部４１が取得するエクステントの配置情報について説明する。
【００５４】
図７は、ビデオデータのファイルV1、チャンネルCH1のオーディオデータのファイルA1、およびチャンネルCH2のオーディオデータのファイルA2の３つのファイルが、記録スケジューラ３６によって光ディスク３に記録されたときの論理的な記録状態を示している。
【００５５】
ここで、図７における１つの四角形は、ある再生時間分のビデオデータまたはオーディオデータ、即ち、エクステントを表している。なお、図７において、エクステントを表す四角形の横方向の長さは、そのエクステントのデータ量を表している。
【００５６】
図７において、エクステントを表す四角形の中の１段目には、そのエクステントのファイル名とエクステント番号とがコロン（:）で区切られて表されている。
【００５７】
また、図７において、エクステントを表す四角形の中の２段目には、その左端と右端に、それぞれ、そのエクステントが記録されている光ディスク３の記録領域の先頭と末尾の論理ブロックのLBNが表されている。なお、エクステントが記録されている光ディスク３の記録領域の先頭と末尾の論理ブロックのLBNそれぞれを、以下、適宜、先頭LBNと末尾LBNという。
【００５８】
さらに、図７において、エクステントを表す四角形の中の３段目には、その右端に、そのエクステントの最後のデータが再生されるべき再生時刻を表すFTC(File Time Code)が、括弧（）付きで表されている。なお、FTCは、例えば、ビデオデータについては、そのビデオデータが、再生開始から何フレーム目に再生されるべきものであるかを表し、オーディオデータについては、そのオーディオデータが付随するフレームのビデオデータが、再生開始から何フレーム目に再生されるべきものであるかを表す。なお、エクステントの最後のデータが再生されるべき再生時刻を表すFTCを、以下、適宜、末尾FTCという。
【００５９】
以上から、例えば、図７の最初の（左から１番目の）エクステントは、ファイルA1のオーディオデータの１番目のエクステントであり、論理ブロック#100乃至#102（LBNが１００から１０２までの論理ブロック）に記録され、その最後のオーディオデータが、第６０フレームに再生されるべきものであることが分かる。
【００６０】
なお、例えば、ビデオデータのエクステントには、フレームのビデオデータの最後のサンプルまでではなく、フレームのビデオデータの途中のサンプルまでが含まれることがある。この場合、末尾FTCとしては、例えば、フレームのビデオデータの最後のサンプルまでがエクステントに含まれる、そのビデオデータのフレーム数が採用される。即ち、エクステントが、第Ｎ1フレームのビデオデータの最初のサンプルから第Ｎ2フレームのビデオデータの途中のサンプルまでのビデオデータによって構成される場合（Ｎ1＜Ｎ2）、そのエクステントの末尾FTCは、フレームのビデオデータの最後のサンプルまでが含まれる第Ｎ2−１フレームになる。このことは、エクステントの末尾FTCが、第Ｎフレームである場合に、そのエクステントには、第Ｎフレームのビデオデータの最後のサンプルが含まれるが、第Ｎ＋１フレームのビデオデータの最後のサンプルは含まれないことを意味する。オーディオデータのエクステントについても、同様である。
【００６１】
配置情報取得部４１は、以上のようなエクステントのファイル名、エクステント番号、先頭LBN、末尾LBN、および末尾FTCを、そのエクステントの配置情報として取得する。
【００６２】
そこで、図８のフローチャートを参照して、図６のステップＳ１において、配置情報取得部４１が行う、エクステントの配置情報を取得する配置情報取得処理について説明する。
【００６３】
まず最初に、ステップＳ１１において、配置情報取得部４１は、ファイルシステムドライバ３３に、光ディスク３に記録されたデータのファイルに関する情報であるファイル情報を要求し、その要求に応じて、ファイルシステムドライバ３３から供給されるファイル情報を受信することにより取得する。
【００６４】
そして、ステップＳ１２に進み、配置情報取得部４１は、ファイルシステムドライバ３３から取得したファイル情報を参照することで、光ディスク３に記録されているエクステントを認識し、そのエクステントの中から、まだ、注目エクステントとして選択していないエクステントの１つを、注目エクステントとして選択し、ステップＳ１３に進む。
【００６５】
ステップＳ１３では、配置情報取得部４１は、ステップＳ１１で得たファイル情報から、注目エクステントの配置情報、即ち、注目エクステントが構成するファイルのファイル名、エクステント番号、先頭LBN、末尾LBN、末尾FTCを求めることにより取得する。
【００６６】
ここで、本実施の形態においてファイルシステムドライバ３３として採用されているUDFドライバは、ファイル情報として、光ディスク３に記録されたすべてのファイルについて、例えば、ファイル名、ファイルを構成するエクステントの先頭LBN、およびそのエクステントの長さ（データ量）を管理しており、そのようなファイル情報を、配置情報取得部４１に提供する。
【００６７】
従って、配置情報取得部４１は、ファイル情報から、配置情報としてのファイル名と先頭LBNを、直接得ることができる。さらに、配置情報取得部４１は、ファイル情報である先頭LBNとエクステントの長さから、配置情報としての末尾LBNを求めることができる。また、配置情報取得部４１は、注目エクステントが、その注目エクステントによって構成されるファイルの何番目のエクステントであるかを認識することによって、エクステント番号を得ることができる。
【００６８】
そして、配置情報取得部４１は、残る配置情報である末尾FTCを、例えば、次のようにして取得する。
【００６９】
即ち、本実施の形態においてファイルシステムドライバ３３として採用されているUDFドライバには、エクステントの記録時に、そのエクステントの先頭および末尾が記録される論理ブロックのLBNと、そのエクステントとしての先頭および末尾のビデオデータまたはオーディオデータのFTCとの関係を記述したテーブルであるCPI(Characteristic Point Information)テーブルを作成させ、光ディスク３に記録させておくことができる。この場合、ファイルシステムドライバ３３から配置情報取得部４１に対して提供するファイル情報に、CPIテーブルを含めることで、配置情報取得部４１は、そのCPIテーブルを参照することにより、注目エクステントの末尾LBNから、その注目エクステントの末尾FTCを求めることができる。
【００７０】
なお、以上のようなCPIテーブルを用いる場合には、注目エクステントを構成するビデオデータまたはオーディオデータが、フレーム単位等ごとにデータ量が変化する可変長データであっても、また、データ量が変化しない固定長データであっても、末尾FTCを求めることができるが、注目エクステントを構成するビデオデータまたはオーディオデータが、フレーム単位等ごとにデータ量が変化しない固定長データである場合には、CPIテーブルを用いる他、例えば、次のようにして、末尾FTCを求めることが可能である。
【００７１】
即ち、注目エクステントを構成するビデオデータが固定長データである場合には、注目エクステントが構成するファイルの先頭から、注目エクステントの末尾までのデータ量を、フレームサイズ（１フレーム分のデータ量）で除算することにより求められる商が、注目エクステントの末尾FTCとなる。
【００７２】
なお、注目エクステントが構成するファイルの先頭から、注目エクステントの末尾までのデータ量は、本実施の形態においてファイルシステムドライバ３３として採用されているUDFドライバから配置情報取得部４１に対し、ファイル情報に含めて提供するようにすることができる。
【００７３】
但し、注目エクステントを構成するデータがオーディオデータである場合には、注目エクステントが構成するファイルの先頭から、注目エクステントの末尾までのデータ量を、フレームサイズで除算することにより、注目エクステントの末尾FTCを求めるときに、以下の点を考慮する必要がある。
【００７４】
即ち、ここでは、フレームとは、ビデオデータのフレームを言っているので、ビデオデータのエクステントについては、そのエクステントが構成するファイルの先頭から、そのエクステントの末尾までのデータ量を、１フレーム分のビデオデータのデータ量（フレームサイズ）で除算することにより求められる商が、注目エクステントの末尾FTCを、正確に表す。
【００７５】
これに対して、オーディオデータのエクステントについては、そのエクステントが構成するファイルの先頭から、そのエクステントの末尾までのデータ量を、１フレーム分のオーディオのデータ量（フレームサイズ）で除算することにより求められる商が、注目エクステントの末尾FTCを、正確に表すとは限らない。
【００７６】
即ち、ビデオデータが、例えば、NTSC(National Television System Committee)方式のものである場合には、そのフレームレートは、３０×１０００／１００１［フレーム／秒］である。そして、いま、オーディオデータのサンプリングレートが、例えば４８［kHz］であるとすると、１フレーム分のオーディオデータのサンプル数は、４８×１０3／（３０×１０００／１００１）＝１６０１．６サンプルとなり、整数にならない。いま、１フレーム分のオーディオデータのサンプル数が整数値でなければならないものとして、小数点以下を切り捨てるものとすると、１フレーム分のオーディオデータのサンプル数は、１６０１サンプルとなる。しかしながら、この場合、オーディオデータのサンプル数が、全体として減少してしまうことになる。ところで、上述の１フレーム分のオーディオデータのサンプル数の小数点以下の部分である０．６に注目すると、この０．６は、５倍することによって３になり、小数点以下がなくなる。このことは、フレームの境界と、オーディオデータのサンプルの境界とが、５フレーム周期で一致することを表す。従って、オーディオデータのエクステントについて、そのエクステントが構成するファイルの先頭から、そのエクステントの末尾までのデータ量を、１フレーム分のオーディオのデータ量（１６０１サンプルのデータ量）で除算することにより、注目エクステントの末尾FTCを求める場合には、５フレーム分のオーディオデータのサンプル数が、１６０１［サンプル］×５［フレーム］＋３［サンプル］となることを考慮する必要がある。
【００７７】
なお、エクステントの末尾FTCをフレームサイズを用いて求める場合に必要となるビデオデータまたはオーディオデータのフレームサイズは、本実施の形態においてファイルシステムドライバ３３として採用されているUDFドライバが、ファイルの属性情報として、光ディスク３上に確保される記録領域としてのファイルエントリ(File Entry)に記録し、配置情報取得部４１の要求に応じ、ファイル情報に含めて、配置情報取得部４１に提供するものとする。
【００７８】
ステップＳ１３において、配置情報取得部４１は、注目エクステントの配置情報を求めると、その配置情報を、配置情報バッファ４２に供給して記憶させ、ステップＳ１４に進む。
【００７９】
ステップＳ１４では、配置情報取得部４１は、光ディスク３に記録されているエクステントのうち、まだ、配置情報を求めていないものがあるかどうかを判定する。
【００８０】
ステップＳ１４において、光ディスク３に記録されているエクステントのうち、まだ、配置情報を求めていないものがあると判定された場合、ステップＳ１１に戻り、配置情報取得部４１は、上述したように、注目エクステントとして選択していないエクステントの１つを、注目エクステントとして新たに選択し、以下、同様の処理を繰り返す。
【００８１】
また、ステップＳ１４において、光ディスク３に記録されているエクステントのうち、まだ、配置情報を求めていないものがないと判定された場合、配置情報取得処理を終了してリターンする。
【００８２】
以上のような配置情報取得処理によれば、図７に示したように、ビデオデータのファイルV1、チャンネルCH1のオーディオデータのファイルA1、およびチャンネルCH2のオーディオデータのファイルA2の３つのファイルが光ディスク３に記録されている場合、図９に示すように、ビデオデータのファイルV1について、３つのエクステントの配置情報、オーディオデータのファイルA1について、３つのエクステントの配置情報、およびオーディオデータのファイルA2について、３つのエクステントの配置情報が得られる。
【００８３】
なお、エクステントは、そのエクステントが構成するファイルのファイル名と、エクステント番号によって、一意に特定することができる。そこで、以下、適宜、エクステントを、そのファイル名fxとエクステント番号Ext#xとを用いて、エクステントfx:Ext#xと表す。この場合、図９に示した、例えば、ビデオデータのファイルV1の１番目のエクステントは、エクステントV1:Ext1と表されることになる。
【００８４】
次に、図１０のフローチャートを参照して、図６のステップＳ２において、FTCソート部４３が行う、エクステント（の配置情報）を、そのエクステントの再生時刻に基づいてソートするFTCソート処理について説明する。
【００８５】
まず最初に、ステップＳ２１において、FTCソート部４３は、配置情報バッファ４２に記憶されたエクステントの配置情報の中から、末尾FTCが最小のエクステントの配置情報（以下、適宜、最小FTCエクステント配置情報という）を検出し、ステップＳ２２に進む。ステップＳ２２では、FTCソート部４３は、最小FTCエクステント配置情報を、配置情報バッファ４２からFTCソート結果キュー４４の最後尾に移動し、ステップＳ２３に進む。
【００８６】
ステップＳ２３では、FTCソート部４３は、配置情報バッファ４２に、まだ、配置情報が記憶されているかどうかを判定する。ステップＳ２３において、配置情報バッファ４２に、まだ、配置情報が記憶されていると判定された場合、ステップＳ２１に戻り、以下、上述した処理を繰り返す。
【００８７】
また、ステップＳ２３において、配置情報バッファ４２に、配置情報が記憶されていないと判定された場合、即ち、配置情報バッファ４２に記憶されていた配置情報が、すべて、FTCソート結果キュー４４に移動された場合、FTCソート部４３は、FTCソート処理を終了してリターンする。
【００８８】
以上のように、FTCソート処理では、配置情報バッファ４２に記憶されていた配置情報が、末尾FTCが小さい順、即ち、再生時刻が早いエクステント順にソートされる。従って、例えば、配置情報バッファ４２に、図９に示したような配置情報が記憶されていた場合は、FTCソート処理によって、配置情報は、図１１に示すように、末尾FTCが小さい順にソートされ、FTCソート結果キュー４４に記憶される。
【００８９】
なお、FTCソート処理において、あるエクステントの配置情報と他のエクステントの配置情報における末尾FTCが同一である場合には、その２つのエクステントのうちのいずれの配置情報を、先に、FTCソート結果キュー４４に移動しても良い。図１１の実施の形態では、末尾FTCが同一のエクステントについては、ファイルV1,A1,A2のエクステントの順に、優先順位をつけて、先に、配置情報を、FTCソート結果キュー４４に移動するようにしている。
【００９０】
次に、図１２のフローチャートを参照して、図６のステップＳ３において、LBNスケジューリング部４５が行う、エクステントの配置情報を、そのエクステントの記録位置に基づいてソートするLBNスケジューリング処理について説明する。
【００９１】
LBNスケジューリング処理では、まず最初に、ステップＳ３１において、LBNスケジューリング部４５が、FTCソート結果キュー４４に、配置情報が記憶されているかどうかを判定し、記憶されていると判定した場合、ステップＳ３２に進む。
【００９２】
ステップＳ３２では、LBNスケジューリング部４５は、FTCソート結果キュー４４に記憶されているエクステントの配置情報に対して、そのエクステントの、光ディスク３における記録位置に基づくソートの対象とするスケジュールウインドウを設定する。
【００９３】
即ち、FTCソート結果キュー４４には、エクステントの配置情報が、その再生時刻順に並んでいるから、光ディスク３からのエクステントの読み出し時間を０とすれば、FTCソート結果キュー４４に記憶されている配置情報の順番で、エクステントを光ディスク３から読み出せば、その読み出されたエクステントの並びは、再生順となる。
【００９４】
しかしながら、実際には、光ディスク３からのエクステントの読み出しには、ある程度の時間を要する。このため、光ディスク３からのエクステントの読み出しを、エクステントの再生順に行うと、エクステントの読み出しが、そのエクステントの再生に間に合わなくなることが生じうる。
【００９５】
即ち、例えば、あるエクステントExt1の再生後、他のエクステントExt2が再生される場合において、光ディスク３に、後に再生されるエクステントExt2の後に、先に再生されるエクステントExt1が連続して記録されているときには、FTCソート結果キュー４４には、エクステントExt1，Ext2の順番で、配置情報が記憶される。この場合に、FTCソート結果キュー４４に記憶されている配置情報の順番で、エクステントExt1とExt2を光ディスク３から読み出すと、エクステントExt1とExt2は、エクステントExt1，Ext2の順番で、光ディスク３から読み出される。
【００９６】
しかしながら、光ディスク３には、エクステントExt1とExt2が、エクステントExt2，Ext1の順番で記録されているため、エクステントExt1とExt2を、エクステントExt1，Ext2の順番で、光ディスク３から読み出す場合には、エクステントExt1を、その最後まで読み出した後、そのエクステントExt2よりも前の位置（光ディスク３に対するデータの読み書き順で、先に読み書きされる位置）に記録されているエクステントExt2の先頭位置にシークし、それから、エクステントExt2を、その最後まで読み出さなければならない。即ち、この場合、ドライブ２の図示せぬピックアップが、エクステントExt1を読み出した後、そのエクステントExt1よりも前に記録されているエクステントExt2の先頭位置に、いわば戻るようなシークが発生する。
【００９７】
この場合、エクステントExt1の最後から、エクステントExt2の先頭位置にシークするのに時間を要し、エクステントExt2の再生が、その再生すべき時刻に間に合わなくなることがある。
【００９８】
そこで、LBNスケジューリング部４５は、光ディスク３からのエクステントの読み出しを、効率的に行うことができるように、FTCソート結果キュー４４に記憶されたエクステントの配置情報を、そのエクステントの光ディスク３における記録順に並べ替える。
【００９９】
ところで、FTCソート結果キュー４４に記憶されたエクステントの配置情報を、そのエクステントの光ディスク３における記録順に並べ替え、その並び替えた配置情報の順番で、光ディスク３からのエクステントの読み出しを行うことにより、上述したような、ドライブ２のピックアップが光ディスク３上を戻るような、いわば効率的でないシークが発生することを防止することができる。
【０１００】
しかしながら、この場合も、エクステントの再生が、その再生すべき時刻に間に合わなくなることがある。
【０１０１】
即ち、例えば、上述のように、光ディスク３に、後に再生されるエクステントExt2の後に、先に再生されるエクステントExt1が連続して記録されている場合に、記録位置が前のエクステントExt2を読み出し、その後に、そのエクステントExt2よりも先に再生されるエクステントExt1を読み出すと、その先に再生されるのに、後に読み出されるエクステントExt1の再生が、その再生すべき時刻に間に合わなくなることが生じうる。
【０１０２】
そこで、LBNスケジューリング部４５は、光ディスク３からのエクステントの読み出しを、その再生が途切れることを防止しながら効率的に行うことができるように、FTCソート結果キュー４４に記憶されたエクステントの配置情報をソートする。
【０１０３】
即ち、LBNスケジューリング部４５は、FTCソート結果キュー４４に記憶されているエクステントの配置情報の全体を一度に処理対象とするのではなく、その一部ずつを、順次、処理対象としていきながら、その処理対象となっている配置情報を、エクステントの記録位置順にソートする。
【０１０４】
ステップＳ３２では、FTCソート結果キュー４４の先頭から所定の範囲に、スケジュールウインドウが設定され、このスケジュールウインドウ内にあるエクステントの配置情報が、LBNスケジューリング部４５の処理対象とされる。
【０１０５】
ここで、スケジュールウインドウは、例えば、FTCソート結果キュー４４の先頭から、末尾FTCが、FTCソート結果キュー４４の先頭のエクステントの末尾FTCに、所定のフレーム数を表すFTCであるウインドウ長WP(Window Period)を加算した値以下の最大値をとるエクステントの配置情報までの間に設定される。
【０１０６】
従って、例えば、FTCソート結果キュー４４に、図１１に示したような配置情報が記憶され、ウインドウ長WPが、３０フレームである場合、スケジュールウインドウは、図１３に示すように、FTCソート結果キュー２２の先頭のエクステントV1:Ext1から、その先頭から３番目のエクステントA2:Ext2までの配置情報に設定される。即ち、図１３のFTCソート結果キュー２２の先頭に配置情報が記憶されているエクステントV1:Ext1の末尾FTCは、050であり、この末尾FTCに、ウインドウ長WPを加算すると、８０（＝５０＋３０）フレームとなる。図１３において、末尾FTCが８０以下の最大値をとるエクステントは、末尾FTCが060のエクステントA1:Ext1とA2:Ext2であり、このため、FTCソート結果キュー２２の先頭のエクステントV1:Ext1からエクステントA2:Ext2までの配置情報に、スケジュールウインドウが設定される。
【０１０７】
なお、ウインドウ長WPを大にすると、ドライブ２のピックアップが光ディスク３上を戻るような非効率なシークが発生する確率を低減することができるが、エクステントの並べ替えのためのバッファの容量と再生遅延時間が増大することがあり得る。即ち、先に読み出されるが後に再生されるエクステントと、後に読み出されるが先に再生されるエクステントとが存在する場合には、後に読み出されるが先に再生されるエクステントを先に再生し、先に読み出されるが後に再生されるエクステントを後で再生するために、先に読み出されるが後に再生されるエクステントをバッファに記憶しておく必要がある。さらに、先に再生されるエクステントが、後に再生されるエクステントよりも後に読み出されるため、その、先に再生されるエクステントが読み出されて再生されるまでは、後に再生されるエクステントを再生することはできず、再生遅延時間が生じる。そして、ウインドウ長WPを大にすると、後に再生されるエクステントが、先に再生されるエクステントよりも、先に読み出されることが多くなりうるため、先に読み出されるが後に再生されるエクステントを記憶しておくバッファの容量と再生遅延時間が増大することがある。
【０１０８】
一方、ウインドウ長WPを小にすると、ドライブ２のピックアップが光ディスク３上を戻るような非効率なシークが発生することを、効果的に防止することが困難となる。
【０１０９】
このため、ウインドウ長WPは、バッファの容量および再生遅延時間の増大と、非効率なシークの発生頻度との観点から決定する必要がある。
【０１１０】
なお、ウインドウ長WPは、固定長とする他、例えば、エクステントのデータ量や再生時間などの、何らかのパラメータに応じて可変にすることが可能である。
【０１１１】
図１２に戻り、ステップＳ３２においてスケジュールウインドウが設定された後は、ステップＳ３３に進み、LBNスケジューリング部４５は、スケジューリング結果キュー４６を参照することにより、スケジューリング結果キュー４６が空であるかどうかを判定する。ステップＳ３３において、スケジューリング結果キュー４６が空であると判定された場合、即ち、スケジューリング結果キュー４６に、エクステントの配置情報が記憶されていない場合、ステップＳ３４に進み、LBNスケジューリング部４５は、スケジュールウインドウに存在するエクステントの配置情報の中から、先頭LBNが最小のエクステントの配置情報（以下、適宜、最小先頭LBNエクステント配置情報という）、即ち、光ディスク３上の記録位置が最も前のエクステント（光ディスク３に対するデータの読み書き順で、最も先に読み書きされるエクステント）を検出し、ステップＳ３５に進む。
【０１１２】
ステップＳ３５では、LBNスケジューリング部４５は、ステップＳ３４で検出した最小先頭LBNエクステント配置情報を、FTCソート結果キュー４４から、スケジューリング結果キュー４６の最後尾に移動し、ステップＳ３６に進む。
【０１１３】
従って、スケジューリング結果キュー４６が空の場合は、FTCソート結果キュー４４から、最小先頭LBNエクステント配置情報が検出され、即ち、スケジュールウインドウ内にある配置情報のうち、再生時刻が最も早いエクステントの配置情報が、スケジューリング結果キュー４６の先頭に移動される。
【０１１４】
ステップＳ３６では、LBNスケジューリング部４５は、FTCソート結果キュー４４からスケジューリング結果キュー４６に移動した最新のエクステントの配置情報が、スケジュールウインドウの先頭に位置しないものであったかどうかを判定する。ステップＳ３６において、FTCソート結果キュー４４からスケジューリング結果キュー４６に移動された最新のエクステントの配置情報が、スケジュールウインドウの先頭に位置しないものでないと判定された場合、即ち、FTCソート結果キュー４４からスケジューリング結果キュー４６に移動された最新のエクステントの配置情報が、スケジュールウインドウの先頭に位置するものである場合、ステップＳ３１に戻る。
【０１１５】
そして、ステップＳ３１では、上述したように、FTCソート結果キュー４４に、配置情報が記憶されているかどうかが判定され、記憶されている場合、ステップＳ３２に進み、上述したように、FTCソート結果キュー４４に記憶されているエクステントの配置情報に対して、スケジュールウインドウが設定され、以下、同様の処理が繰り返される。
【０１１６】
即ち、スケジュールウインドウの先頭に配置されたエクステントの配置情報が、FTCソート結果キュー４４からスケジューリング結果キュー４６に移動された場合には、スケジュールウインドウが設定し直される（再設定される）。
【０１１７】
一方、ステップＳ３３において、スケジューリング結果キュー４６が空でないと判定された場合、即ち、スケジューリング結果キュー４６に、エクステントの配置情報が記憶されている場合、ステップＳ３４乃至Ｓ３６をスキップして、ステップＳ３７に進む。
【０１１８】
ここで、ステップＳ３６において、FTCソート結果キュー４４からスケジューリング結果キュー４６に移動された最新のエクステントの配置情報が、スケジュールウインドウの先頭に位置しないものであると判定された場合も、ステップＳ３７に進む。なお、ステップＳ３７の処理は、ステップＳ３３で、スケジューリング結果キュー４６が空でないと判定された場合に行われる他、上述したステップＳ３５、または後述するステップＳ３９において、エクステントの配置情報が、FTCソート結果キュー４４からスケジューリング結果キュー４６に移動され、さらに、ステップＳ３６の処理の後にも行われる。ステップＳ３５またはＳ３９の処理後、ステップＳ３６を介して、ステップＳ３７の処理が行われる場合、スケジューリング結果キュー４６には、直前のステップＳ３５または３９において移動されたエクステントの配置情報が記憶されており、従って、いずれにしても、ステップＳ３７の処理は、スケジューリング結果キュー４６に、エクステントの配置情報が記憶されている場合に行われる。
【０１１９】
ステップＳ３７では、LBNスケジューリング部４５は、スケジュールウインドウの中に、スケジューリング結果キュー４６の最後尾のエクステントの配置情報の末尾LBNよりも大きな先頭LBNを有するエクステントの配置情報が存在しないかどうかを判定する。ステップＳ３７において、スケジュールウインドウの中に、スケジューリング結果キュー４６の最後尾のエクステントの配置情報の末尾LBNよりも大きな先頭LBNを有するエクステントの配置情報が存在しないと判定された場合、即ち、スケジューリング結果キュー４６の最後尾に配置情報が記憶されたエクステントよりも、光ディスク３の後の位置に記録されたエクステントの配置情報が、スケジュールウインドウ内に存在しない場合、ステップＳ３４に戻り、LBNスケジューリング部４５は、上述したように、スケジュールウインドウに存在するエクステントの配置情報の中から、最小先頭LBNエクステント配置情報を検出し、ステップＳ３５に進む。ステップＳ３５では、LBNスケジューリング部４５は、上述したように、ステップＳ３４で検出した最小先頭LBNエクステント配置情報を、FTCソート結果キュー４４から、スケジューリング結果キュー４６の最後尾に移動して、ステップＳ３６に進み、以下、同様の処理を繰り返す。
【０１２０】
従って、スケジューリング結果キュー４６が空でなく、しかも、その空でないスケジューリング結果キュー４６の最後尾に配置情報が記憶されたエクステントよりも、光ディスク３の後の位置に記録されたエクステントの配置情報が、スケジュールウインドウ内に存在しない場合は、FTCソート結果キュー４４から、最小先頭LBNエクステント配置情報が検出され、スケジューリング結果キュー４６の最後尾に移動される。即ち、スケジューリング結果キュー４６の最後尾に配置情報が記憶されたエクステントよりも、光ディスク３の後の位置に記録されたエクステントの配置情報が、スケジュールウインドウ内に存在しない場合には、スケジュールウインドウ内にある配置情報のうち、最も再生時刻が早いエクステントの配置情報が、スケジューリング結果キュー４６の最後尾に移動される。
【０１２１】
一方、ステップＳ３７において、スケジュールウインドウの中に、スケジューリング結果キュー４６の最後尾のエクステントの配置情報の末尾LBNよりも大きな先頭LBNを有するエクステントの配置情報が存在しなくないと判定された場合、即ち、スケジューリング結果キュー４６の最後尾に配置情報が記憶されたエクステントよりも、光ディスク３の後の位置に記録されたエクステントの配置情報が、スケジュールウインドウ内に存在する場合、ステップＳ３８に進み、LBNスケジューリング部４５は、スケジュールウインドウに存在するエクステントの配置情報の中から、スケジューリング結果キュー４６の最後尾に配置情報が記憶されたエクステント（以下、適宜、最後尾エクステントという）の末尾LBNから昇順方向に最も近い先頭LBNを有するエクステントの配置情報（以下、適宜、最近先頭LBNエクステント配置情報という）、即ち、スケジューリング結果キュー４６の最後尾に配置情報が記憶されたエクステント（最後尾エクステント）よりも、光ディスク３の後の位置に記録されたエクステントであって、最後尾エクステントの記録位置に最も近いエクステントの配置情報を検出し、ステップＳ３９に進む。
【０１２２】
ステップＳ３９では、LBNスケジューリング部４５は、ステップＳ３８で検出した最近先頭LBNエクステント配置情報を、FTCソート結果キュー４４から、スケジューリング結果キュー４６の最後尾に移動して、ステップＳ３６に進み、以下、同様の処理を繰り返す。
【０１２３】
従って、スケジューリング結果キュー４６が空でなく、しかも、その空でないスケジューリング結果キュー４６の最後尾に配置情報が記憶されたエクステントよりも、光ディスク３の後の位置に記録されたエクステントの配置情報が、スケジュールウインドウ内に存在する場合は、FTCソート結果キュー４４から、最近先頭LBNエクステント配置情報が検出され、スケジューリング結果キュー４６の最後尾に移動される。即ち、スケジューリング結果キュー４６の最後尾に配置情報が記憶されたエクステント（最後尾エクステント）よりも、光ディスク３の後の位置に記録されたエクステントの配置情報が、スケジュールウインドウ内に存在する場合には、スケジュールウインドウ内にある配置情報のうち、最後尾エクステントよりも後の位置であって、最後尾エクステントの記録位置に最も近い位置に記録されているエクステントの配置情報（最近先頭LBNエクステント配置情報）が、スケジューリング結果キュー４６の最後尾に移動される。
【０１２４】
ここで、ステップＳ３７乃至Ｓ３９の処理によれば、スケジュールウインドウ内に、スケジューリング結果キュー４６の最後尾に配置情報が記憶されたエクステント（最後尾エクステント）よりも先に再生されるエクステントの配置情報が存在していても、最後尾エクステントよりも後の位置であって、最後尾エクステントの記録位置に最も近い位置に記録されているエクステントの読み出しを先に行うように、スケジューリングが行われることがある。
【０１２５】
即ち、例えば、再生時刻をt1,t2,t3と表すとともに（t1＜t2＜t3）、エクステントが記録されている光ディスクのLBNをLBN#1,LBN#2,LBN#3と表し（LBN#1＜LBN#2＜LBN#3）、ある再生時刻txに再生され、光ディスクのLBN#xに記録されたエクステントを、Ext(tx,LBN#x)と表すこととする。
【０１２６】
そして、いま、例えば、３つのエクステントExt(t1,LBN#1),Ext(t2,LBN#2),Ext(t3,LBN#3)が、光ディスク３の連続した記録領域に記録されており、さらに、エクステントExt(t2,LBN#2)（の配置情報）が、スケジューリング結果キュー４６の最後尾に記憶され、エクステントExt(t1,LBN#1)とExt(t3,LBN#3)（の配置情報）がスケジュールウインドウ内に存在するとした場合、再生が途切れることを防止する観点からは、スケジュールウインドウ内に存在するエクステントExt(t1,LBN#1)とExt(t3,LBN#3)のうちの、先に再生されるエクステントExt(t1,LBN#1)を、先に読み出し、後に再生されるエクステントExt(t3,LBN#3)を、後に読み出すようにスケジューリングすべきである。
【０１２７】
しかしながら、ステップＳ３９では、スケジュールウインドウ内に存在するエクステントExt(t1,LBN#1)とExt(t3,LBN#3)のうち、再生時刻が先のエクステントExt(t1,LBN#1)ではなく、再生時刻が後のエクステントExt(t3,LBN#3)が、スケジューリング結果キュー４６のエクステントExt(t2,LBN#2)の直後に移動され、これにより、先に再生されるエクステントExt(t1,LBN#1)よりも、後に再生されるエクステントExt(t2,LBN#2)の方が、光ディスク３から先に読み出されるようにスケジューリングされる。これは、次のような理由による。
【０１２８】
即ち、いまの場合、エクステントExt(t2,LBN#2)が、スケジューリング結果キュー４６の最後尾に記憶されており、上述の３つのエクステントExt(t1,LBN#1),Ext(t2,LBN#2),Ext(t3,LBN#3)の中では、スケジューリング結果キュー４６の最後尾にあるエクステントExt(t2,LBN#2)が、光ディスク３から最初に読み出される。
【０１２９】
従って、その後に、先に再生されるエクステントExt(t1,LBN#1)を、先に読み出し、後に再生されるエクステントExt(t3,LBN#3)を、後に読み出す場合には、ドライブ２のピックアップは、エクステントExt(t2,LBN#2)を読み出した後、そのエクステントExt(t2,LBN#2)の前の位置に記録されているエクステントExt(t1,LBN#1)の先頭位置に戻って、そのエクステントExt(t1,LBN#1)を読み出し、さらに、エクステントExt(t2,LBN#2)の後に記録されているエクステントExt(t3,LBN#3)の先頭位置まで進んで、そのエクステントExt(t3,LBN#3)を読み出す必要がある。その結果、シークの回数は、エクステントExt(t2,LBN#2)からエクステントExt(t1,LBN#1)への読み出しの移行時と、エクステントExt(t1,LBN#1)からエクステントExt(t3,LBN#3)への読み出しの移行時との２回になる。
【０１３０】
これに対して、後に再生されるエクステントExt(t3,LBN#3)を、先に読み出し、先に再生されるエクステントExt(t1,LBN#1)を、後に読み出す場合には、ドライブ２のピックアップは、エクステントExt(t2,LBN#2)を読み出した後、その直後に連続して記録されているエクステントExt(t3,LBN#3)を読み出し、その後に、エクステントExt(t2,LBN#2)の直前に記録されているエクステントExt(t1,LBN#1)を読み出すので、シークの回数は、エクステントExt(t3,LBN#3)からエクステントExt(t1,LBN#1)への読み出しの移行時の１回になる。
【０１３１】
以上のように、シークの回数が減るので、光ディスク３からのエクステントの読み出しに要する時間は、全体として短くなり、その結果、光ディスク３からの読み出しを効率的に行うことが可能となる。
【０１３２】
一方、ステップＳ３１において、FTCソート結果キュー４４に、配置情報が記憶されていないと判定された場合、即ち、ステップＳ３５またはＳ３９において、FTCソート結果キュー４４に記憶されていたエクステントの配置情報が、すべて、スケジューリング結果キュー４６に移動された場合、LBNスケジューリング処理を終了してリターンする。
【０１３３】
図５の読み出し制御部４７は、以上のようにして、スケジューリング結果キュー４６に記憶される配置情報を、その先頭から順次読み出し（て削除し）、その読み出した配置情報によって特定されるエクステントを、光ディスク３から読み出すように、ファイルシステムドライバ３３を制御する。
【０１３４】
次に、図１４乃至図１８を参照して、LBNスケジューリング部４５によるLBNスケジューリング処理について、さらに説明する。なお、以下では、スケジュールウインドウのウインドウ長WPは、例えば、上述したように、３０フレームであるとする。
【０１３５】
いま、例えば、図１１に示したように、エクステントの配置情報が、FTCソート結果キュー４４に記憶されたとすると、図１３に示したように、FTCソート結果キュー４４の先頭のエクステントV1:Ext1から、末尾FTCが、FTCソート結果キュー４４の先頭のエクステントV1:Ext1の末尾FTC（050）にウインドウ長WPである３０フレームを加算した値（080）以下の最大値である060となっているエクステントA2:Ext1)までの３つのエクステントV1:Ext1,A1:Ext1,A2:Ext1の範囲に、スケジュールウインドウが設定される（ステップＳ３２）。
【０１３６】
いまの場合、スケジューリング結果キュー４６には、配置情報が記憶されていないから、スケジュールウインドウ内の３つのエクステントV1:Ext1,A1:Ext1,A2:Ext1のうち、先頭LBNが100で最小のエクステントA1:Ext1が検出され（ステップＳ３３，Ｓ３４）、図１４に示すように、FTCソート結果キュー４４からスケジューリング結果キュー４６に移動される（ステップＳ３５）。そして、エクステントA1:Ext1が、FTCソート結果キュー４４からスケジューリング結果キュー４６に移動されることにより、スケジュールウインドウ内に存在するエクステントは、図１５に示すように、２つのエクステントV1:Ext1,A2:Ext1となる。
【０１３７】
さらに、上述のように、エクステントA1:Ext1が、FTCソート結果キュー４４からスケジューリング結果キュー４６に移動されることにより、スケジューリング結果キュー４６は空ではなくなる。また、スケジュールウインドウ内に存在する２つのエクステントV1:Ext1とA2:Ext1の先頭LBNは、それぞれ106と103であり、いずれも、スケジューリング結果キュー４６の最後尾に記憶されているエクステントA1:Ext1の末尾LBNである102よりも大である。
【０１３８】
従って、スケジュールウインドウに存在するエクステントV1:Ext1とA2:Ext1の中から、スケジューリング結果キュー４６の最後尾に記憶されたエクステントA1:Ext1の末尾LBNである102から昇順方向に最も近い103が先頭LBNとなっているエクステントA2:Ext1が検出され（ステップＳ３３，Ｓ３７，Ｓ３８）、図１５に示すように、FTCソート結果キュー４４からスケジューリング結果キュー４６に移動される（ステップＳ３９）。
【０１３９】
そして、エクステントA2:Ext1が、FTCソート結果キュー４４からスケジューリング結果キュー４６に移動されることにより、スケジュールウインドウ内に存在するエクステントは、図１６に示すように、１つのエクステントV1:Ext1だけとなる。
【０１４０】
さらに、上述のように、スケジューリング結果キュー４６は空ではなくなっており、また、スケジューリング結果キュー４６の最後尾のエクステントは、末尾LBNが105のエクステントA2:Ext1となっている。そして、スケジュールウインドウ内に存在する１つのエクステントV1:Ext1の先頭LBNは、上述したように106であり、スケジューリング結果キュー４６の最後尾に記憶されているエクステントA2:Ext1の末尾LBNである105よりも大である。
【０１４１】
従って、スケジュールウインドウに存在するエクステントV1:Ext1は、スケジューリング結果キュー４６の最後尾に記憶されたエクステントA2:Ext1の末尾LBNである105から昇順方向に最も近い106を先頭LBNとして有するエクステントとして検出され（ステップＳ３７，Ｓ３８）、図１６に示すように、FTCソート結果キュー４４からスケジューリング結果キュー４６に移動される（ステップＳ３９）。
【０１４２】
さらに、いまの場合、FTCソート結果キュー４４からスケジューリング結果キュー４６に移動されたエクステントV1:Ext1は、スケジュールウインドウの先頭に存在するエクステントであり（ステップＳ３６）、さらに、FTCソート結果キュー４４には、まだ、エクステントA1:Ext2,A2:Ext2,V1:Ext2,V1:Ext3,A1:Ext3,A2:Ext3（の配置情報）が記憶されているから、スケジュールウインドウが設定し直される（ステップＳ３２）。
【０１４３】
即ち、いまの場合、FTCソート結果キュー４４の先頭には、末尾FTCが130のエクステントA1:Ext2が記憶されている。従って、図１７に示すように、FTCソート結果キュー４４の先頭のエクステントA1:Ext2から、末尾FTCが、FTCソート結果キュー４４の先頭のエクステントA1:Ext2の末尾FTC（130）にウインドウ長WPである３０フレームを加算した値（160）以下の最大値である140となっているエクステントV2:Ext2)までの３つのエクステントA1:Ext2,A2:Ext2,V1:Ext2の範囲に、スケジュールウインドウが設定し直される（ステップＳ３２）。
【０１４４】
さらに、いまの場合、上述のように、スケジューリング結果キュー４６は空ではなくなっており、また、スケジューリング結果キュー４６の最後尾のエクステントは、末尾LBNが115のエクステントV1:Ext1となっている。そして、スケジュールウインドウ内に存在する３つのエクステントA1:Ext2,A2:Ext2,V1:Ext2の先頭LBNは、それぞれ、116,119,122であり、いずれも、スケジューリング結果キュー４６の最後尾に記憶されているエクステントV1:Ext1の末尾LBNである115よりも大である。
【０１４５】
従って、スケジュールウインドウに存在する３つのエクステントA1:Ext2,A2:Ext2,V1:Ext2のうち、スケジューリング結果キュー４６の最後尾に記憶されたエクステントV1:Ext1の末尾LBNである115から昇順方向に最も近い116を先頭LBNとして有するエクステントA1:Ext2が検出され（ステップＳ３７，Ｓ３８）、図１７に示すように、FTCソート結果キュー４４からスケジューリング結果キュー４６に移動される（ステップＳ３９）。
【０１４６】
また、いまの場合、FTCソート結果キュー４４からスケジューリング結果キュー４６に移動されたエクステントA1:Ext2は、スケジュールウインドウの先頭のエクステントであり（ステップＳ３６）、さらに、FTCソート結果キュー４４には、まだ、エクステントA2:Ext2,V1:Ext2,V1:Ext3,A1:Ext3,A2:Ext3（の配置情報）が記憶されているから、スケジュールウインドウが設定し直される（ステップＳ３２）。
【０１４７】
以下、同様にして、エクステント（の配置情報）が、FTCソート結果キュー４４からスケジューリング結果キュー４６に移動され、最終的には、図１８に示すようなスケジューリング結果が得られる。なお、図１８のスケジューリング結果は、エクステントA1:Ext1,A2:Ext1,V1:Ext1,A1:Ext2,A2:Ext2,V1:Ext2,A1:Ext3,A2:Ext3,V1:Ext3の順で読み出しを行うものとなっている。
【０１４８】
以上のように、光ディスク３に記録されているエクステントを、そのエクステントの再生時刻に基づいてソートし、そのソート後のエクステントを、そのエクステントの光ディスク３における記録位置に基づいてソートし、そのソート結果を、光ディスク３からエクステントを読み出す読み出し順のスケジューリング結果とするようにしたので、光ディスク３からのエクステントの読み出しを、その再生が途切れることを防止しながら効率的に行うことが可能となる。
【０１４９】
なお、上述の場合には、スケジュールウインドウの先頭のエクステントが、FTCソート結果キュー４４からスケジューリング結果キュー４６に移動された場合に、スケジュールウインドウの再設定を行うようにしたが、スケジュールウインドウの再設定は、その他、例えば、エクステントが、FTCソート結果キュー４４からスケジューリング結果キュー４６に移動されるたびに行ったり、また、一度設定されたスケジュールウインドウ内のすべてのエクステントが、FTCソート結果キュー４４からスケジューリング結果キュー４６に移動された場合に行ったりするようにすることが可能である。
【０１５０】
さらに、上述の場合には、FTCソート部４３において、末尾FTCに基づいて、エクステントの配置情報をソートするようにしたが、その他、FTCソート部４３では、エクステントの最初のデータが再生されるべき再生時刻を表すFTCを、先頭FTCというものとして、エクステントの配置情報を、例えば、そのエクステントの先頭FTCに基づいてソートするようにすることが可能である。
【０１５１】
即ち、この場合、配置情報取得部４１では、エクステントの配置情報の１つとして、末尾FTCに代えて、先頭FTCを求めるようにする。そして、例えば、図９に示した９個のエクステントV1:Ext1,V1:Ext2,V1:Ext3,A1:Ext1,A1:Ext2,A1:Ext3,A2:Ext1,A2:Ext2,A2:Ext3の先頭FTCが、例えば、それぞれ、010,060,140,010,050,130,010,050,130であった場合には、FTCソート部４３において、エクステントの配置情報が、そのエクステントの先頭FTCに基づいてソートされることにより、例えば、図１９に示すように、エクステントV1:Ext1,A1:Ext1,A2:Ext1,A1:Ext2,A2:Ext2,V1:Ext2,A1:Ext3,A2:Ext3,V1:Ext3の順で、FTCソート結果キュー４４に記憶される。
【０１５２】
ここで、図１９では、エクステントの配置情報を表す四角形の中の１段目に、図７における場合と同様に、そのエクステントのファイル名とエクステント番号とがコロン（:）で区切られて表されている。さらに、図１９では、エクステントの配置情報を表す四角形の中の２段目の左端と右端に、それぞれ、やはり、図７における場合と同様に、そのエクステントが記録されている光ディスク３の先頭LBNと末尾LBNが表されている。また、図１９では、エクステントの配置情報を表す四角形の中の３段目の左端に、そのエクステントの先頭のデータが再生されるべき再生時刻を表す先頭FTCが、括弧（）付きで表されている。
【０１５３】
例えば、図１９に示したFTCソート結果が、FTCソート結果キュー４４に記憶され、そのFTCソート結果キュー４４の先頭のエクステントV1:Ext1から、エクステントA2:Ext1までの３つのエクステントV1:Ext1,A1:Ext1,A2:Ext1に、スケジュールウインドウが設定された場合において、末尾LBNが160のエクステントが、既に、スケジューリング結果キュー４６に記憶されているときには、LBNスケジューリング部４５は、図２０に示すように、エクステントA1:Ext1を、FTCソート結果キュー４４から、スケジューリング結果キュー４６の最後尾に移動する。
【０１５４】
即ち、図２０のケースは、スケジューリング結果キュー４６が空ではなく（ステップＳ３３→Ｓ３７）、さらに、スケジュールウインドウの中に、スケジューリング結果キュー４６の最後尾のエクステントの末尾LBNであある160よりも大きな先頭LBNを有するエクステントが存在しないので（ステップＳ３７→Ｓ３４）、スケジュールウインドウに存在する３つのエクステントV1:Ext1,A1:Ext1,A2:Ext1の中から、先頭LBNが100で最小のエクステントA1:Ext1が検出され（ステップＳ３４）、FTCソート結果キュー４４から、スケジューリング結果キュー４６の最後尾に移動される（ステップＳ３５）。
【０１５５】
なお、本発明は、光ディスク以外の、例えば、磁気ディスクなどの記録媒体にも適用可能である。
【０１５６】
また、本実施の形態では、ビデオデータとオーディオデータとが記録された光ディスク３からのデータの読み出しのスケジューリングを行うようにしたが、本発明は、その他、例えば、ビデオデータまたはオーディオデータのうちのいずれか一方や、ビデオデータおよびオーディオデータ以外のデータ、ビデオデータおよびオーディオデータの他に、さらに任意のデータが記録された光ディスク３からのデータの再生にも適用可能である。
【０１５７】
【発明の効果】
以上の如く、本発明によれば、記録媒体からのデータの読み出しを、再生が途切れることを防止しながら効率的に行うことが可能となる。
【図面の簡単な説明】
【図１】本発明を適用した記録再生システムの一実施の形態の構成例を示すブロック図である。
【図２】コンピュータ１のハードウェア構成例を示すブロック図である。
【図３】コンピュータ１上で実行されるソフトウェアを示す図である。
【図４】光ディスク３に記録されるデータの論理フォーマットを示す図である。
【図５】再生スケジューラ３７の機能的構成例を示すブロック図である。
【図６】読み出しスケジューリング処理を説明するフローチャートである。
【図７】光ディスク３におけるデータの論理的な記録状態を示す図である。
【図８】配置情報取得処理を説明するフローチャートである。
【図９】配置情報取得処理によって取得される配置情報を示す図である。
【図１０】  FTCソート処理を説明するフローチャートである。
【図１１】  FTCソート処理によるエクステント（の配置情報）のソート結果を示す図である。
【図１２】  LBNスケジューリング処理を説明するフローチャートである。
【図１３】スケジューリングウインドウを説明する図である。
【図１４】  FTCソート結果キュー４４からスケジューリング結果キュー４６に、エクステントが移動される様子を示す図である。
【図１５】  FTCソート結果キュー４４からスケジューリング結果キュー４６に、エクステントが移動される様子を示す図である。
【図１６】  FTCソート結果キュー４４からスケジューリング結果キュー４６に、エクステントが移動される様子を示す図である。
【図１７】  FTCソート結果キュー４４からスケジューリング結果キュー４６に、エクステントが移動される様子を示す図である。
【図１８】  LBNスケジューリング処理によるエクステント（の配置情報）のソート結果を示す図である。
【図１９】先頭FTCに基づくFTCソート処理によるエクステント（の配置情報）のソート結果を示す図である。
【図２０】  FTCソート結果キュー４４からスケジューリング結果キュー４６に、エクステントが移動される様子を示す図である。
【符号の説明】
１  コンピュータ，  ２  ドライブ，  ３  光ディスク，  ４  信号入出力装置，  １１  CPU，  １２  ROM，  １３  メモリコントローラ，  １４  RAM，１５  HD，  １６  入力部，  １７  出力部，  １８  通信I/F，  １９  I/Fコントローラ，  ２０  データ変換部，  ３１  OS，  ３２  デバイスドライバ，  ３３  ファイルシステムドライバ，  ３４  アプリケーションプログラム，３５  アロケーションマネージャ，  ３６  記録スケジューラ，  ３７  再生スケジューラ，  ４１  配置情報取得部，  ４２  配置情報バッファ，  ４３  FTCソート部，  ４４  FTCソート結果キュー，  ４５  LBNスケジューリング部，  ４６  スケジューリング結果キュー，  ４７  読み出し制御部
【図１】
0003821290.tif 000002
【図２】
0003821290.tif 000003
【図３】
0003821290.tif 000004
【図４】
0003821290.tif 000005
【図５】
0003821290.tif 000006
【図６】
0003821290.tif 000007
【図７】
0003821290.tif 000008
【図８】
0003821290.tif 000009
【図９】
0003821290.tif 000010
【図１０】
0003821290.tif 000011
【図１１】
0003821290.tif 000012
【図１２】
0003821290.tif 000013
【図１３】
0003821290.tif 000014
【図１４】
0003821290.tif 000015
【図１５】
0003821290.tif 000016
【図１６】
0003821290.tif 000017
【図１７】
0003821290.tif 000018
【図１８】
0003821290.tif 000019
【図１９】
0003821290.tif 000020
【図２０】
0003821290.tif 000021