(57)【要約】【課題】記録媒体からのデータの読み出しを、再生が途切れることを防止しながら効率的に行う。【解決手段】ＦＴＣソート部４３は、光ディスクに記録されているデータを、そのデータの再生時刻に基づいてソートし、ＬＢＮスケジューリング部４５は、ＦＴＣソート部４３においてソートされたデータを、そのデータの光ディスクにおける記録位置に基づいてソートし、そのソート結果を、光ディスクからデータを読み出す読み出し順のスケジューリング結果とする。本発明は、例えば、光ディスクからデータを再生するディスク再生装置などの記録再生システムに適用することができる。【選択図】      図５
2004158072.tif 000002
【特許請求の範囲】
【請求項１】
記録媒体からデータを読み出す読み出し順をスケジューリングする情報処理装置において、
前記記録媒体に記録されているデータを、そのデータの再生時刻に基づいてソートする第１のソート手段と、
前記第１のソート手段においてソートされた前記データを、そのデータの前記記録媒体における記録位置に基づいてソートし、そのソート結果を、前記記録媒体からデータを読み出す読み出し順のスケジューリング結果とする第２のソート手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記記録媒体には、ビデオデータまたはオーディオデータのうちの一方または両方が、所定の単位ごとに記録されている
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記記録媒体には、所定の単位ごとのビデオデータとオーディオデータとが交互に記録されている
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記第１のソート手段は、
前記記録媒体に記録されているデータのうちの、まだ、第１のキューに移動されていないデータから、再生時刻が最も早いデータを検出する第１の検出手段と、
前記第１の検出手段において検出された前記データを、前記第１のキューに移動する第１の移動手段と
を有する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記第２のソート手段は、
前記記録媒体における記録位置に基づくソートの対象とする前記第１のキューに記憶されたデータの範囲であるスケジュールウインドウを設定する設定手段と、
前記記録媒体における記録位置に基づいて、前記スケジュールウインドウ内に存在する前記データの中から、第２のキューに移動するものを検出する第２の検出手段と、
前記第２の検出手段において検出された前記データを、前記第２のキューに移動する第２の移動手段と
を有する
ことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記第２のソート手段は、前記第２のキューが空であるかどうかを判定する第１の判定手段をさらに有し、
前記第２の検出手段は、前記第２のキューが空である場合、前記スケジュールウインドウ内に存在する前記データの中から、前記記録媒体における記録位置が最も先のものを検出する
ことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記第２のソート手段は、前記スケジュールウインドウ内に存在する前記データの中に、前記第２のキューの最後尾のデータの前記記録媒体における記録位置よりも後に記録されているものが存在しないかどうかを判定する第２の判定手段をさらに有し、
前記第２の検出手段は、
前記第２のキューが空でない場合において、前記スケジュールウインドウ内に存在する前記データの中に、前記第２のキューの最後尾のデータの前記記録媒体における記録位置よりも後に記録されているものが存在しないとき、前記スケジュールウインドウ内に存在する前記データの中から、前記記録媒体における記録位置が最も先のものを検出し、
前記第２のキューが空でない場合において、前記スケジュールウインドウ内に存在する前記データの中に、前記第２のキューの最後尾のデータの前記記録媒体における記録位置よりも後に記録されているものが存在するとき、
前記スケジュールウインドウ内に存在する前記データの中から、前記第２のキューの最後尾のデータの前記記録媒体における記録位置よりも後に記録されているデータであって、その記録位置に最も近いものを検出する
ことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記第２のソート手段は、前記第２のキューに移動された前記データが、前記スケジュールウインドウ内の先頭に位置していたかどうかを判定する第３の判定手段をさらに有し、
前記設定手段は、前記第２のキューに移動された前記データが、前記スケジュールウインドウ内の先頭に位置していた場合、前記スケジュールウインドウを設定し直す
ことを特徴とする請求項５に記載の情報処理装置。
【請求項９】
記録媒体からデータを読み出す読み出し順をスケジューリングする情報処理方法において、
前記記録媒体に記録されているデータを、そのデータの再生時刻に基づいてソートする第１のソートステップと、
前記第１のソートステップにおいてソートされた前記データを、そのデータの前記記録媒体における記録位置に基づいてソートし、そのソート結果を、前記記録媒体からデータを読み出す読み出し順のスケジューリング結果とする第２のソートステップと
を備えることを特徴とする情報処理方法。
【請求項１０】
記録媒体からデータを読み出す読み出し順をスケジューリングする情報処理を、コンピュータに行わせるプログラムにおいて、
前記記録媒体に記録されているデータを、そのデータの再生時刻に基づいてソートする第１のソートステップと、
前記第１のソートステップにおいてソートされた前記データを、そのデータの前記記録媒体における記録位置に基づいてソートし、そのソート結果を、前記記録媒体からデータを読み出す読み出し順のスケジューリング結果とする第２のソートステップと
を備えることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理装置および情報処理方法、並びにプログラムに関し、特に、例えば、光ディスク等の記録媒体から、データを効率的に読み出すことができるようにする情報処理装置および情報処理方法、並びにプログラムに関する。
【０００２】
【従来の技術】
近年においては、記録レートおよび読み出しレートが大きく向上した光ディスクその他の記録媒体が実用化されており、比較的高画質で長時間のビデオデータの記録が可能となってきている。
【０００３】
しかしながら、記録レートや読み出しレートが高くても、光ディスクにおいて、ビデオデータのストリームが、不連続に、いわば細切れ状態で記録されている場合には、その不連続な部分で、シークが発生する。そして、シークによって、ビデオデータの読み出しが、その再生すべき時刻に間に合わない場合には、ビデオデータの再生が途切れることになる。
【０００４】
また、例えば、特許文献１には、素材データを再生する素材用ディスク装置の他に、作業用ディスク装置を用意し、作業用ディスク装置に、素材データの中の編集点近傍のデータを複製しておき、その素材用ディスク装置と作業用ディスク装置の出力を適宜選択することで、編集点で生じるシークによって、再生が途切れることを防止する方法が記載されている。
【０００５】
【特許文献１】
特開平１０−５００３７号公報。
【０００６】
【発明が解決しようとする課題】
しかしながら、特許文献１に記載の方法では、シークによって再生が途切れることを防止するのに、素材用ディスク装置の他に、作業用ディスク装置を用意し、その素材用ディスク装置と作業用ディスク装置の出力を適宜選択する制御を行う必要がある。
【０００７】
また、光ディスク等の記録媒体からのデータの読み出しは、なるべく効率的に行うことができるのが望ましい。
【０００８】
本発明は、このような状況に鑑みてなされたものであり、例えば、光ディスクなどの記録媒体からのデータの読み出しを、再生が途切れることを（極力）防止しながら効率的に行うことができるようにするものである。
【０００９】
【課題を解決するための手段】
本発明の情報処理装置は、記録媒体に記録されているデータを、そのデータの再生時刻に基づいてソートする第１のソート手段と、第１のソート手段においてソートされたデータを、そのデータの記録媒体における記録位置に基づいてソートし、そのソート結果を、記録媒体からデータを読み出す読み出し順のスケジューリング結果とする第２のソート手段とを備えることを特徴とする。
【００１０】
本発明の情報処理方法は、記録媒体に記録されているデータを、そのデータの再生時刻に基づいてソートする第１のソートステップと、第１のソートステップにおいてソートされたデータを、そのデータの記録媒体における記録位置に基づいてソートし、そのソート結果を、記録媒体からデータを読み出す読み出し順のスケジューリング結果とする第２のソートステップとを備えることを特徴とする。
【００１１】
本発明のプログラムは、記録媒体に記録されているデータを、そのデータの再生時刻に基づいてソートする第１のソートステップと、第１のソートステップにおいてソートされたデータを、そのデータの記録媒体における記録位置に基づいてソートし、そのソート結果を、記録媒体からデータを読み出す読み出し順のスケジューリング結果とする第２のソートステップとを備えることを特徴とする。
【００１２】
本発明の情報処理装置および情報処理方法、並びにプログラムにおいては、記録媒体に記録されているデータが、そのデータの再生時刻に基づいてソートされる。さらに、そのソートされたデータが、そのデータの記録媒体における記録位置に基づいてソートされ、そのソート結果が、記録媒体からデータを読み出す読み出し順のスケジューリング結果とされる。
【００１３】
【発明の実施の形態】
図１は、本発明を適用した記録再生システムの一実施の形態の構成例を示している。
【００１４】
図１の記録再生システムは、コンピュータ１をベースに構成されており、コンピュータ１は、光ディスク３に対して、データを読み書きする、例えば、ＣＤ−Ｒ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅｃｏｒｄａｂｌｅ），ＣＤ−ＲＷ（ＣＤ  ＲｅＷｒｉｔａｂｌｅ），ＤＶＤ−ＲＡＭ（Ｄｉｇｉｔａｌ  ＶｅｒｓａｔｉｌｅＤｉｓｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）ドライブとしてのドライブ２を内蔵している。即ち、ドライブ２には、光ディスク３を容易に着脱することができるようになっており、ドライブ２は、コンピュータ１の制御の下、光ディスク３にデータを記録し（書き込み）、また、光ディスク３からデータを読み出す。
【００１５】
図１の実施の形態では、画像データや音声データなどのＡＶ（Ａｕｄｉｏ  Ｖｉｓｕａｌ）データを出力し、必要に応じて、ＡＶデータを入力することができるＶＴＲ（Ｖｉｄｅｏ  Ｔａｐｅ  Ｒｅｃｏｒｄｅｒ）や、ＴＶ（Ｔｅｌｅｖｉｓｉｏｎ）チューナなどでなる信号入出力装置４が、外部機器として、コンピュータ１に接続されている。コンピュータ１は、信号入出力装置４が出力するＡＶデータを受信し、ドライブ２に供給して、光ディスク３に記録させる。また、コンピュータ１は、ドライブ２に、光ディスク３に記録されたＡＶデータを読み出させ、例えば、その内蔵するディスプレイやスピーカから出力させる。あるいは、コンピュータ１は、光ディスク３から読み出されたＡＶデータを、例えば、信号入出力装置４に記録等させる。
【００１６】
図２は、図１のコンピュータ１のハードウェア構成例を示している。
【００１７】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１は、例えば、ユーザによって入力部１６が操作等されることにより指令が入力されると、それにしたがって、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１２に格納されているプログラムを実行する。あるいは、また、ＣＰＵ１１は、ＨＤ（Ｈａｒｄ  Ｄｉｓｋ）１５に格納されているプログラム、衛星若しくはネットワークから転送され、通信部１８で受信されてＨＤ１５にインストールされたプログラム、またはドライブ２に装着された光ディスク３などのリムーバブル記録媒体から読み出されてＨＤ１５にインストールされたプログラムを、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１４にロードして実行する。これにより、ＣＰＵ１１は、後述するフローチャートにしたがった各種の処理を行う。
【００１８】
ＲＯＭ１２は、例えば、ＩＰＬ（Ｉｎｉｔｉａｌ  Ｐｒｏｇｒａｍ  Ｌｏａｄｉｎｇ）やＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ  Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）のプログラムその他のファームウェアを記憶している。なお、ＲＯＭ１２に代えて、書き換え可能なＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）を採用することが可能であり、この場合、ファームウェアのバージョンアップに対処することができる。
【００１９】
メモリコントローラ１３は、例えば、ＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）コントローラで構成され、ＲＡＭ１４に対するデータの読み書きを制御する。ＲＡＭ１４は、ＣＰＵ１１が実行するプログラムや、ＣＰＵ１１が処理を行う上で必要なデータを一時記憶する。ＨＤ１５は、コンピュータ１にインストールされたプログラム（アプリケーションプログラムの他、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）なども含まれる）や、ＣＰＵ１１が処理を行う上で必要なデータを記憶する。
【００２０】
入力部１６は、例えば、キーボードや、マウス、マイク（マイクロフォン）などで構成され、ユーザによって操作等される。そして、入力部１６は、ユーザによる操作等に対応する信号を、ＣＰＵ１１に供給する。出力部１７は、例えば、ディスプレイやスピーカなどで構成され、そこに供給される画像または音声を、それぞれ表示または出力する。通信Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）１８は、例えば、ＩＥＥＥ（Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｅｎｇｉｎｅｅｒｓ）１３９４ポートや、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポート、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）接続用のＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）などで構成され、各規格に応じた通信制御を行う。
【００２１】
Ｉ／Ｆコントローラ１９は、ドライブ２との間で、データを、例えば、ＡＴＡ（ＡＴ  Ａｔｔａｃｈｍｅｎｔ）等の所定の方式でやりとりするためのインタフェースとして機能する。
【００２２】
データ変換部２０は、例えば、ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）エンコーダ／デコーダで構成され、信号入出力装置４から供給されるＡＶデータを、ＭＰＥＧエンコードし、その結果得られるＭＰＥＧストリームを、コンピュータ１のバス上に出力する。また、データ変換部２０は、コンピュータ１のバス上に出力されたＭＰＥＧストリームをＭＰＥＧデコードし、その結果得られるＡＶデータを、コンピュータ１のバス上に出力し、あるいは、信号入出力装置４に供給する。
【００２３】
なお、以上のＣＰＵ１１乃至データ変換部２０は、コンピュータ１内部のバスを介して相互に接続されている。
【００２４】
以上のように構成されるコンピュータ１では、ＣＰＵ１１がコンピュータ１にインストールされたプログラムを実行することにより、後述する各種の処理が行われる。
【００２５】
ここで、ＣＰＵ１１が実行するプログラムは、コンピュータ１に内蔵されている記録媒体としてのＨＤ１５やＲＯＭ１２に予め記録しておくことができる。
【００２６】
あるいはまた、プログラムは、フレキシブルディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ），ＭＯ（Ｍａｇｎｅｔｏ  Ｏｐｔｉｃａｌ）ディスク，ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納（記録）しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
【００２７】
なお、プログラムは、上述したようなリムーバブル記録媒体からコンピュータ１にインストールする他、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータ１に無線で転送したり、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットといったネットワークを介して、コンピュータ１に有線で転送し、コンピュータ１では、そのようにして転送されてくるプログラムを、通信Ｉ／Ｆ１８で受信し、内蔵するＨＤ１５にインストールすることができる。
【００２８】
ここで、本明細書において、コンピュータ１に各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理（例えば、並列処理あるいはオブジェクトによる処理）も含むものである。
【００２９】
また、プログラムは、１のＣＰＵにより処理されるものであっても良いし、複数のＣＰＵによって分散処理されるものであっても良い。さらに、プログラムは、遠方のＣＰＵに転送されて実行されるものであっても良い。
【００３０】
次に、図３は、図２のＣＰＵ１１がプログラムを実行することにより実現されるコンピュータ１の機能的構成例を示している。
【００３１】
コンピュータ１では、ＯＳ３１の管理の下で、各種のアプリケーションプログラム３４が実行される。また、ＯＳ３１の管理下では、ファイルシステムドライバ３３やデバイスドライバ３２が動作している。
【００３２】
アプリケーションプログラム３４は、ドライブ２に装着された光ディスク３へのデータの読み書きを行う場合、ファイルシステムドライバ３３に対して、データを記録する、あるいは、データが記録されたファイルを指定し、ファイルシステムドライバ３３は、指定されたファイルの光ディスク３上の位置情報を、デバイスドライバ３２に指定する。そして、デバイスドライバ３２は、ファイルシステムドライバ３３からの位置情報が表す光ディスク３上の記録領域に対するデータの読み書きを、ドライブ２に要求する。
【００３３】
本実施の形態では、例えば、ファイルシステムドライバ３３またはアプリケーションプログラム３４のいずれか一方に、あるいは、その両方に亘って、アロケーションマネージャ３５が組み込まれており、アロケーションマネージャ３５は、光ディスク３に対するデータの読み書き制御を行う。
【００３４】
なお、ここでは、説明を簡単にするために、アロケーションマネージャ３５は、ファイルシステムドライバ３３とアプリケーションプログラム３４のうちの、例えば、アプリケーションプログラム３４に組み込まれているものとする。アロケーションマネージャ３５が組み込まれるアプリケーションプログラム３４としては、例えば、光ディスク３に対して読み書きを行うための、いわゆるライティングソフトウェアなどを採用することができる。また、ファイルシステムドライバ３３としては、例えば、ＣＤ−Ｒ／ＲＷおよびＤＶＤのファイルシステムドライバに採用されているＵＤＦ（Ｕｎｉｖｅｒｓａｌ  Ｄｉｓｋ  Ｆｏｒｍａｔ）ドライバなどを用いることができる。
【００３５】
アロケーションマネージャ３５は、記録スケジューラ３６と再生スケジューラ３７などから構成される。記録スケジューラ３６は、図示せぬ他のアプリケーションや、ユーザが入力部１６を操作することによって、光ディスク３へのデータの記録の要求があった場合には、そのデータの光ディスク３への記録（書き込み）順をスケジューリングし、そのスケジューリング結果にしたがい、ファイルシステムドライバ３３に対して、光ディスク３へのデータの記録を要求する。ファイルシステムドライバ３３は、記録スケジューラ３６からの要求にしたがい、データを、デバイスドライバ３２およびドライブ２を介して、光ディスク３に書き込む。
【００３６】
ここで、ドライブ２において、光ディスク３に対するデータの書き込みおよび読み出しは、例えば、光ディスク３の内周から外周方向に向かって行われるものとする。また、ドライブ２は、光ディスク３に対する最小アクセス単位である物理セクタを１以上集めた物理ブロックを、ＥＣＣ（Ｅｒｒｏｒ  Ｃｈｅｃｋｉｎｇ  ａｎｄ  Ｃｏｒｒｅｃｔｉｏｎ）処理を施す単位として、その物理ブロック単位で、データの読み書きを行う。なお、物理ブロックには、例えば、光ディスク３の内周から外周に向かって昇順の物理ブロック番号が付されており、各物理ブロックには、論理ブロックが割り当てられている。但し、光ディスク３に対するデータの読み書きは、光ディスク３の外周から内周方向に向かって行うようにすることが可能である。また、物理ブロックを構成する物理セクタの数は、特に限定されるものではない。
【００３７】
デバイスドライバ３２は、ファイルシステムドライバ３３からデータの読み書きの要求があると、その読み書きの要求を、その読み書きを行う論理ブロックに付されている論理ブロック番号（以下、適宜、ＬＢＮ（Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ｎｕｍｂｅｒ）という）とともに、ドライブ２に供給する。ドライブ２は、デバイスドライバ３２から供給されるＬＢＮの論理ブロックに割り当てられている光ディスク３の物理ブロックに対して、データの読み書きを行う。
【００３８】
なお、物理ブロックに割り当てられている論理ブロックには、例えば、その物理ブロックの物理ブロック番号に比例するＬＢＮが付されているものとする。この場合、複数の論理ブロックそれぞれのＬＢＮが連続している場合には、その複数の論理ブロックに割り当てられている複数の物理ブロックそれぞれの物理ブロック番号も連続したものとなり、その結果、複数の物理ブロックも連続した記録領域となる。即ち、複数の論理ブロックが連続している場合には、その複数の論理ブロックに割り当てられている複数の物理ブロックも連続したものとなる。
【００３９】
ここで、上述したように、光ディスク３に対するデータの書き込みおよび読み出しは、例えば、光ディスク３の内周から外周方向に向かって行われ、さらに、物理ブロックには、光ディスク３の内周から外周に向かって昇順の物理ブロック番号が付されているととともに、論理ブロックには、物理ブロック番号に比例するＬＢＮが付されている。従って、ここでは、光ディスク３に対するデータの書き込みおよび読み出しは、物理ブロック番号で考えても、また、ＬＢＮで考えても、番号の小さい順に行われる。
【００４０】
再生スケジューラ３７は、図示せぬ他のアプリケーションや、ユーザが入力部１６を操作することによって、光ディスク３からのデータの読み出しの要求があった場合には、そのデータを光ディスク３から読み出す読み出し順をスケジューリングし、そのスケジューリング結果にしたがい、ファイルシステムドライバ３３に対して、光ディスク３からのデータの読み出しを要求する。ファイルシステムドライバ３３は、再生スケジューラ３７からの要求にしたがい、データを、デバイスドライバ３２およびドライブ２を介して、光ディスク３から読み出す。
【００４１】
次に、図４は、記録スケジューラ３６によって、ビデオデータとそのビデオデータに付随するオーディオデータが光ディスク３に記録される場合の、その記録データの論理フォーマットを示している。
【００４２】
ビデオデータとオーディオデータは、例えば、いずれも、所定の再生時間（例えば、１．５秒から２秒など）単位のデータに分割され、光ディスク３に記録される。
【００４３】
なお、図４の実施の形態では、ある再生時間単位のオーディオデータが記録され、その後、他の（あるいは同一の）再生時間単位のビデオデータが記録されることが繰り返されているが、即ち、ビデオデータとオーディオデータとが交互に記録されているが、ビデオデータやオーディオデータは、幾つかの再生時間単位分だけ連続して記録することも可能である。また、ある再生時間単位のオーディオデータとしては、２つのチャンネルＣＨ１とＣＨ２のオーディオデータを記録することができるようになっている。
【００４４】
ここで、上述したように、本実施の形態では、論理ブロックが連続していれば、物理ブロックも連続しているから、図４に示した各再生時間単位のビデオデータまたはオーディオデータは、光ディスク３上の物理的に連続した記録領域に記録されている。
【００４５】
なお、現実には、光ディスク３には、欠陥（ディフェクト）が生じ、その欠陥に対しては、例えば、ドライブ２において、欠陥がある物理ブロックに対する論理ブロックの割り当てを、その欠陥がある物理ブロックの直後の物理ブロックにスリップするスリップ処理や、他の正常な物理ブロックにリアサインするリアサイン処理が行われる。スリップ処理やリアサイン処理が行われると、ＬＢＮが連続している複数の論理ブロックに割り当てられている複数の物理ブロックが連続していることは、保証されなくなる。但し、スリップ処理やリアサイン処理が行われた場合であっても、ある再生時間単位のビデオデータやオーディオデータを、光ディスク３の物理的に連続した記録領域に記録することは可能であり、本実施の形態では、記録スケジューラ３６が、例えば、少なくとも、ある再生時間単位のビデオデータやオーディオデータを、光ディスク３の物理的に連続した記録領域に記録するように、記録制御を行うものとする。
【００４６】
次に、図５は、図３の再生スケジューラ３７の構成例を示している。
【００４７】
配置情報取得部４１は、ファイルシステムドライバ３３（図３）に、光ディスク３に記録されたデータが格納されたファイルに関するファイル情報を要求し、そのファイル情報から、光ディスク３のある再生時間単位のビデオデータやオーディオデータ（以下、適宜、エクステント（ｅｘｔｅｎｔ）という）について、後述する配置情報を取得して出力する。配置情報バッファ４２は、配置情報取得部４１が出力するエクステントの配置情報を順次記憶する。
【００４８】
ＦＴＣソート部４３は、配置情報バッファ４２に記憶されたエクステントの配置情報を、そのエクステントの再生時刻に基づいてソートし、そのソート結果を、ＦＴＣソート結果キュー４４に供給する。ＦＴＣソート結果キュー４４は、ＦＴＣソート部４３によるエクステントの配置情報のソート結果を一時記憶する。
【００４９】
ＬＢＮスケジューリング部４５は、ＦＴＣソート結果キュー４４に記憶された各エクステントの配置情報を、そのエクステントの光ディスク３における記録位置に基づいてソートし、そのソート結果を、光ディスク３からエクステントを読み出す読み出し順のスケジューリング結果として、スケジューリング結果キュー４６に供給する。スケジューリング結果キュー４６は、ＬＢＮスケジューリング部４５によるエクステントの配置情報のソート結果を一時記憶する。
【００５０】
なお、図５において、図３には図示していない読み出し制御部４７は、アロケーションマネージャ３５を構成しており、スケジューリング結果キュー４６に記憶されたエクステントの配置情報にしたがい、そのエクステントの読み出しを、ファイルシステムドライバ３３に要求する。
【００５１】
次に、図６のフローチャートを参照して、図５の再生スケジューラ３７が行う、光ディスク３からエクステントを読み出す読み出し順をスケジューリングする読み出しスケジューリング処理について説明する。
【００５２】
まず最初に、ステップＳ１において、配置情報取得部４１は、光ディスク３に記録されたエクステントの配置情報を取得し、配置情報バッファ４２に供給して記憶させる。そして、ステップＳ２に進み、ＦＴＣソート部４３は、配置情報バッファ４２に記憶されたエクステントの配置情報を、そのエクステントの再生時刻に基づいてソートし、そのソート結果を、ＦＴＣソート結果キュー４４に供給して記憶させ、ステップＳ３に進む。ステップＳ３では、ＬＢＮスケジューリング部４５は、ＦＴＣソート結果キュー４４に記憶された各エクステントの配置情報を、そのエクステントの光ディスク３における記録位置に基づいてソートし、そのソート結果を、光ディスク３からエクステントを読み出す読み出し順のスケジューリング結果として、スケジューリング結果キュー４６に供給して記憶させ、読み出しスケジューリング処理を終了する。
【００５３】
次に、図７を参照して、図５の配置情報取得部４１が取得するエクステントの配置情報について説明する。
【００５４】
図７は、ビデオデータのファイルＶ１、チャンネルＣＨ１のオーディオデータのファイルＡ１、およびチャンネルＣＨ２のオーディオデータのファイルＡ２の３つのファイルが、記録スケジューラ３６によって光ディスク３に記録されたときの論理的な記録状態を示している。
【００５５】
ここで、図７における１つの四角形は、ある再生時間分のビデオデータまたはオーディオデータ、即ち、エクステントを表している。なお、図７において、エクステントを表す四角形の横方向の長さは、そのエクステントのデータ量を表している。
【００５６】
図７において、エクステントを表す四角形の中の１段目には、そのエクステントのファイル名とエクステント番号とがコロン（：）で区切られて表されている。
【００５７】
また、図７において、エクステントを表す四角形の中の２段目には、その左端と右端に、それぞれ、そのエクステントが記録されている光ディスク３の記録領域の先頭と末尾の論理ブロックのＬＢＮが表されている。なお、エクステントが記録されている光ディスク３の記録領域の先頭と末尾の論理ブロックのＬＢＮそれぞれを、以下、適宜、先頭ＬＢＮと末尾ＬＢＮという。
【００５８】
さらに、図７において、エクステントを表す四角形の中の３段目には、その右端に、そのエクステントの最後のデータが再生されるべき再生時刻を表すＦＴＣ（Ｆｉｌｅ  Ｔｉｍｅ  Ｃｏｄｅ）が、括弧（）付きで表されている。なお、ＦＴＣは、例えば、ビデオデータについては、そのビデオデータが、再生開始から何フレーム目に再生されるべきものであるかを表し、オーディオデータについては、そのオーディオデータが付随するフレームのビデオデータが、再生開始から何フレーム目に再生されるべきものであるかを表す。なお、エクステントの最後のデータが再生されるべき再生時刻を表すＦＴＣを、以下、適宜、末尾ＦＴＣという。
【００５９】
以上から、例えば、図７の最初の（左から１番目の）エクステントは、ファイルＡ１のオーディオデータの１番目のエクステントであり、論理ブロック＃１００乃至＃１０２（ＬＢＮが１００から１０２までの論理ブロック）に記録され、その最後のオーディオデータが、第６０フレームに再生されるべきものであることが分かる。
【００６０】
なお、例えば、ビデオデータのエクステントには、フレームのビデオデータの最後のサンプルまでではなく、フレームのビデオデータの途中のサンプルまでが含まれることがある。この場合、末尾ＦＴＣとしては、例えば、フレームのビデオデータの最後のサンプルまでがエクステントに含まれる、そのビデオデータのフレーム数が採用される。即ち、エクステントが、第Ｎ１フレームのビデオデータの最初のサンプルから第Ｎ２フレームのビデオデータの途中のサンプルまでのビデオデータによって構成される場合（Ｎ１＜Ｎ２）、そのエクステントの末尾ＦＴＣは、フレームのビデオデータの最後のサンプルまでが含まれる第Ｎ２−１フレームになる。このことは、エクステントの末尾ＦＴＣが、第Ｎフレームである場合に、そのエクステントには、第Ｎフレームのビデオデータの最後のサンプルが含まれるが、第Ｎ＋１フレームのビデオデータの最後のサンプルは含まれないことを意味する。オーディオデータのエクステントについても、同様である。
【００６１】
配置情報取得部４１は、以上のようなエクステントのファイル名、エクステント番号、先頭ＬＢＮ、末尾ＬＢＮ、および末尾ＦＴＣを、そのエクステントの配置情報として取得する。
【００６２】
そこで、図８のフローチャートを参照して、図６のステップＳ１において、配置情報取得部４１が行う、エクステントの配置情報を取得する配置情報取得処理について説明する。
【００６３】
まず最初に、ステップＳ１１において、配置情報取得部４１は、ファイルシステムドライバ３３に、光ディスク３に記録されたデータのファイルに関する情報であるファイル情報を要求し、その要求に応じて、ファイルシステムドライバ３３から供給されるファイル情報を受信することにより取得する。
【００６４】
そして、ステップＳ１２に進み、配置情報取得部４１は、ファイルシステムドライバ３３から取得したファイル情報を参照することで、光ディスク３に記録されているエクステントを認識し、そのエクステントの中から、まだ、注目エクステントとして選択していないエクステントの１つを、注目エクステントとして選択し、ステップＳ１３に進む。
【００６５】
ステップＳ１３では、配置情報取得部４１は、ステップＳ１１で得たファイル情報から、注目エクステントの配置情報、即ち、注目エクステントが構成するファイルのファイル名、エクステント番号、先頭ＬＢＮ、末尾ＬＢＮ、末尾ＦＴＣを求めることにより取得する。
【００６６】
ここで、本実施の形態においてファイルシステムドライバ３３として採用されているＵＤＦドライバは、ファイル情報として、光ディスク３に記録されたすべてのファイルについて、例えば、ファイル名、ファイルを構成するエクステントの先頭ＬＢＮ、およびそのエクステントの長さ（データ量）を管理しており、そのようなファイル情報を、配置情報取得部４１に提供する。
【００６７】
従って、配置情報取得部４１は、ファイル情報から、配置情報としてのファイル名と先頭ＬＢＮを、直接得ることができる。さらに、配置情報取得部４１は、ファイル情報である先頭ＬＢＮとエクステントの長さから、配置情報としての末尾ＬＢＮを求めることができる。また、配置情報取得部４１は、注目エクステントが、その注目エクステントによって構成されるファイルの何番目のエクステントであるかを認識することによって、エクステント番号を得ることができる。
【００６８】
そして、配置情報取得部４１は、残る配置情報である末尾ＦＴＣを、例えば、次のようにして取得する。
【００６９】
即ち、本実施の形態においてファイルシステムドライバ３３として採用されているＵＤＦドライバには、エクステントの記録時に、そのエクステントの先頭および末尾が記録される論理ブロックのＬＢＮと、そのエクステントとしての先頭および末尾のビデオデータまたはオーディオデータのＦＴＣとの関係を記述したテーブルであるＣＰＩ（Ｃｈａｒａｃｔｅｒｉｓｔｉｃ  Ｐｏｉｎｔ  Ｉｎｆｏｒｍａｔｉｏｎ）テーブルを作成させ、光ディスク３に記録させておくことができる。この場合、ファイルシステムドライバ３３から配置情報取得部４１に対して提供するファイル情報に、ＣＰＩテーブルを含めることで、配置情報取得部４１は、そのＣＰＩテーブルを参照することにより、注目エクステントの末尾ＬＢＮから、その注目エクステントの末尾ＦＴＣを求めることができる。
【００７０】
なお、以上のようなＣＰＩテーブルを用いる場合には、注目エクステントを構成するビデオデータまたはオーディオデータが、フレーム単位等ごとにデータ量が変化する可変長データであっても、また、データ量が変化しない固定長データであっても、末尾ＦＴＣを求めることができるが、注目エクステントを構成するビデオデータまたはオーディオデータが、フレーム単位等ごとにデータ量が変化しない固定長データである場合には、ＣＰＩテーブルを用いる他、例えば、次のようにして、末尾ＦＴＣを求めることが可能である。
【００７１】
即ち、注目エクステントを構成するビデオデータが固定長データである場合には、注目エクステントが構成するファイルの先頭から、注目エクステントの末尾までのデータ量を、フレームサイズ（１フレーム分のデータ量）で除算することにより求められる商が、注目エクステントの末尾ＦＴＣとなる。
【００７２】
なお、注目エクステントが構成するファイルの先頭から、注目エクステントの末尾までのデータ量は、本実施の形態においてファイルシステムドライバ３３として採用されているＵＤＦドライバから配置情報取得部４１に対し、ファイル情報に含めて提供するようにすることができる。
【００７３】
但し、注目エクステントを構成するデータがオーディオデータである場合には、注目エクステントが構成するファイルの先頭から、注目エクステントの末尾までのデータ量を、フレームサイズで除算することにより、注目エクステントの末尾ＦＴＣを求めるときに、以下の点を考慮する必要がある。
【００７４】
即ち、ここでは、フレームとは、ビデオデータのフレームを言っているので、ビデオデータのエクステントについては、そのエクステントが構成するファイルの先頭から、そのエクステントの末尾までのデータ量を、１フレーム分のビデオデータのデータ量（フレームサイズ）で除算することにより求められる商が、注目エクステントの末尾ＦＴＣを、正確に表す。
【００７５】
これに対して、オーディオデータのエクステントについては、そのエクステントが構成するファイルの先頭から、そのエクステントの末尾までのデータ量を、１フレーム分のオーディオのデータ量（フレームサイズ）で除算することにより求められる商が、注目エクステントの末尾ＦＴＣを、正確に表すとは限らない。
【００７６】
即ち、ビデオデータが、例えば、ＮＴＳＣ（Ｎａｔｉｏｎａｌ  Ｔｅｌｅｖｉｓｉｏｎ  Ｓｙｓｔｅｍ  Ｃｏｍｍｉｔｔｅｅ）方式のものである場合には、そのフレームレートは、３０×１０００／１００１［フレーム／秒］である。そして、いま、オーディオデータのサンプリングレートが、例えば４８［ｋＨｚ］であるとすると、１フレーム分のオーディオデータのサンプル数は、４８×１０３／（３０×１０００／１００１）＝１６０１．６サンプルとなり、整数にならない。いま、１フレーム分のオーディオデータのサンプル数が整数値でなければならないものとして、小数点以下を切り捨てるものとすると、１フレーム分のオーディオデータのサンプル数は、１６０１サンプルとなる。しかしながら、この場合、オーディオデータのサンプル数が、全体として減少してしまうことになる。ところで、上述の１フレーム分のオーディオデータのサンプル数の小数点以下の部分である０．６に注目すると、この０．６は、５倍することによって３になり、小数点以下がなくなる。このことは、フレームの境界と、オーディオデータのサンプルの境界とが、５フレーム周期で一致することを表す。従って、オーディオデータのエクステントについて、そのエクステントが構成するファイルの先頭から、そのエクステントの末尾までのデータ量を、１フレーム分のオーディオのデータ量（１６０１サンプルのデータ量）で除算することにより、注目エクステントの末尾ＦＴＣを求める場合には、５フレーム分のオーディオデータのサンプル数が、１６０１［サンプル］×５［フレーム］＋３［サンプル］となることを考慮する必要がある。
【００７７】
なお、エクステントの末尾ＦＴＣをフレームサイズを用いて求める場合に必要となるビデオデータまたはオーディオデータのフレームサイズは、本実施の形態においてファイルシステムドライバ３３として採用されているＵＤＦドライバが、ファイルの属性情報として、光ディスク３上に確保される記録領域としてのファイルエントリ（Ｆｉｌｅ  Ｅｎｔｒｙ）に記録し、配置情報取得部４１の要求に応じ、ファイル情報に含めて、配置情報取得部４１に提供するものとする。
【００７８】
ステップＳ１３において、配置情報取得部４１は、注目エクステントの配置情報を求めると、その配置情報を、配置情報バッファ４２に供給して記憶させ、ステップＳ１４に進む。
【００７９】
ステップＳ１４では、配置情報取得部４１は、光ディスク３に記録されているエクステントのうち、まだ、配置情報を求めていないものがあるかどうかを判定する。
【００８０】
ステップＳ１４において、光ディスク３に記録されているエクステントのうち、まだ、配置情報を求めていないものがあると判定された場合、ステップＳ１１に戻り、配置情報取得部４１は、上述したように、注目エクステントとして選択していないエクステントの１つを、注目エクステントとして新たに選択し、以下、同様の処理を繰り返す。
【００８１】
また、ステップＳ１４において、光ディスク３に記録されているエクステントのうち、まだ、配置情報を求めていないものがないと判定された場合、配置情報取得処理を終了してリターンする。
【００８２】
以上のような配置情報取得処理によれば、図７に示したように、ビデオデータのファイルＶ１、チャンネルＣＨ１のオーディオデータのファイルＡ１、およびチャンネルＣＨ２のオーディオデータのファイルＡ２の３つのファイルが光ディスク３に記録されている場合、図９に示すように、ビデオデータのファイルＶ１について、３つのエクステントの配置情報、オーディオデータのファイルＡ１について、３つのエクステントの配置情報、およびオーディオデータのファイルＡ２について、３つのエクステントの配置情報が得られる。
【００８３】
なお、エクステントは、そのエクステントが構成するファイルのファイル名と、エクステント番号によって、一意に特定することができる。そこで、以下、適宜、エクステントを、そのファイル名ｆｘとエクステント番号Ｅｘｔ＃ｘとを用いて、エクステントｆｘ：Ｅｘｔ＃ｘと表す。この場合、図９に示した、例えば、ビデオデータのファイルＶ１の１番目のエクステントは、エクステントＶ１：Ｅｘｔ１と表されることになる。
【００８４】
次に、図１０のフローチャートを参照して、図６のステップＳ２において、ＦＴＣソート部４３が行う、エクステント（の配置情報）を、そのエクステントの再生時刻に基づいてソートするＦＴＣソート処理について説明する。
【００８５】
まず最初に、ステップＳ２１において、ＦＴＣソート部４３は、配置情報バッファ４２に記憶されたエクステントの配置情報の中から、末尾ＦＴＣが最小のエクステントの配置情報（以下、適宜、最小ＦＴＣエクステント配置情報という）を検出し、ステップＳ２２に進む。ステップＳ２２では、ＦＴＣソート部４３は、最小ＦＴＣエクステント配置情報を、配置情報バッファ４２からＦＴＣソート結果キュー４４の最後尾に移動し、ステップＳ２３に進む。
【００８６】
ステップＳ２３では、ＦＴＣソート部４３は、配置情報バッファ４２に、まだ、配置情報が記憶されているかどうかを判定する。ステップＳ２３において、配置情報バッファ４２に、まだ、配置情報が記憶されていると判定された場合、ステップＳ２１に戻り、以下、上述した処理を繰り返す。
【００８７】
また、ステップＳ２３において、配置情報バッファ４２に、配置情報が記憶されていないと判定された場合、即ち、配置情報バッファ４２に記憶されていた配置情報が、すべて、ＦＴＣソート結果キュー４４に移動された場合、ＦＴＣソート部４３は、ＦＴＣソート処理を終了してリターンする。
【００８８】
以上のように、ＦＴＣソート処理では、配置情報バッファ４２に記憶されていた配置情報が、末尾ＦＴＣが小さい順、即ち、再生時刻が早いエクステント順にソートされる。従って、例えば、配置情報バッファ４２に、図９に示したような配置情報が記憶されていた場合は、ＦＴＣソート処理によって、配置情報は、図１１に示すように、末尾ＦＴＣが小さい順にソートされ、ＦＴＣソート結果キュー４４に記憶される。
【００８９】
なお、ＦＴＣソート処理において、あるエクステントの配置情報と他のエクステントの配置情報における末尾ＦＴＣが同一である場合には、その２つのエクステントのうちのいずれの配置情報を、先に、ＦＴＣソート結果キュー４４に移動しても良い。図１１の実施の形態では、末尾ＦＴＣが同一のエクステントについては、ファイルＶ１，Ａ１，Ａ２のエクステントの順に、優先順位をつけて、先に、配置情報を、ＦＴＣソート結果キュー４４に移動するようにしている。
【００９０】
次に、図１２のフローチャートを参照して、図６のステップＳ３において、ＬＢＮスケジューリング部４５が行う、エクステントの配置情報を、そのエクステントの記録位置に基づいてソートするＬＢＮスケジューリング処理について説明する。
【００９１】
ＬＢＮスケジューリング処理では、まず最初に、ステップＳ３１において、ＬＢＮスケジューリング部４５が、ＦＴＣソート結果キュー４４に、配置情報が記憶されているかどうかを判定し、記憶されていると判定した場合、ステップＳ３２に進む。
【００９２】
ステップＳ３２では、ＬＢＮスケジューリング部４５は、ＦＴＣソート結果キュー４４に記憶されているエクステントの配置情報に対して、そのエクステントの、光ディスク３における記録位置に基づくソートの対象とするスケジュールウインドウを設定する。
【００９３】
即ち、ＦＴＣソート結果キュー４４には、エクステントの配置情報が、その再生時刻順に並んでいるから、光ディスク３からのエクステントの読み出し時間を０とすれば、ＦＴＣソート結果キュー４４に記憶されている配置情報の順番で、エクステントを光ディスク３から読み出せば、その読み出されたエクステントの並びは、再生順となる。
【００９４】
しかしながら、実際には、光ディスク３からのエクステントの読み出しには、ある程度の時間を要する。このため、光ディスク３からのエクステントの読み出しを、エクステントの再生順に行うと、エクステントの読み出しが、そのエクステントの再生に間に合わなくなることが生じうる。
【００９５】
即ち、例えば、あるエクステントＥｘｔ１の再生後、他のエクステントＥｘｔ２が再生される場合において、光ディスク３に、後に再生されるエクステントＥｘｔ２の後に、先に再生されるエクステントＥｘｔ１が連続して記録されているときには、ＦＴＣソート結果キュー４４には、エクステントＥｘｔ１，Ｅｘｔ２の順番で、配置情報が記憶される。この場合に、ＦＴＣソート結果キュー４４に記憶されている配置情報の順番で、エクステントＥｘｔ１とＥｘｔ２を光ディスク３から読み出すと、エクステントＥｘｔ１とＥｘｔ２は、エクステントＥｘｔ１，Ｅｘｔ２の順番で、光ディスク３から読み出される。
【００９６】
しかしながら、光ディスク３には、エクステントＥｘｔ１とＥｘｔ２が、エクステントＥｘｔ２，Ｅｘｔ１の順番で記録されているため、エクステントＥｘｔ１とＥｘｔ２を、エクステントＥｘｔ１，Ｅｘｔ２の順番で、光ディスク３から読み出す場合には、エクステントＥｘｔ１を、その最後まで読み出した後、そのエクステントＥｘｔ２よりも前の位置（光ディスク３に対するデータの読み書き順で、先に読み書きされる位置）に記録されているエクステントＥｘｔ２の先頭位置にシークし、それから、エクステントＥｘｔ２を、その最後まで読み出さなければならない。即ち、この場合、ドライブ２の図示せぬピックアップが、エクステントＥｘｔ１を読み出した後、そのエクステントＥｘｔ１よりも前に記録されているエクステントＥｘｔ２の先頭位置に、いわば戻るようなシークが発生する。
【００９７】
この場合、エクステントＥｘｔ１の最後から、エクステントＥｘｔ２の先頭位置にシークするのに時間を要し、エクステントＥｘｔ２の再生が、その再生すべき時刻に間に合わなくなることがある。
【００９８】
そこで、ＬＢＮスケジューリング部４５は、光ディスク３からのエクステントの読み出しを、効率的に行うことができるように、ＦＴＣソート結果キュー４４に記憶されたエクステントの配置情報を、そのエクステントの光ディスク３における記録順に並べ替える。
【００９９】
ところで、ＦＴＣソート結果キュー４４に記憶されたエクステントの配置情報を、そのエクステントの光ディスク３における記録順に並べ替え、その並び替えた配置情報の順番で、光ディスク３からのエクステントの読み出しを行うことにより、上述したような、ドライブ２のピックアップが光ディスク３上を戻るような、いわば効率的でないシークが発生することを防止することができる。
【０１００】
しかしながら、この場合も、エクステントの再生が、その再生すべき時刻に間に合わなくなることがある。
【０１０１】
即ち、例えば、上述のように、光ディスク３に、後に再生されるエクステントＥｘｔ２の後に、先に再生されるエクステントＥｘｔ１が連続して記録されている場合に、記録位置が前のエクステントＥｘｔ２を読み出し、その後に、そのエクステントＥｘｔ２よりも先に再生されるエクステントＥｘｔ１を読み出すと、その先に再生されるのに、後に読み出されるエクステントＥｘｔ１の再生が、その再生すべき時刻に間に合わなくなることが生じうる。
【０１０２】
そこで、ＬＢＮスケジューリング部４５は、光ディスク３からのエクステントの読み出しを、その再生が途切れることを防止しながら効率的に行うことができるように、ＦＴＣソート結果キュー４４に記憶されたエクステントの配置情報をソートする。
【０１０３】
即ち、ＬＢＮスケジューリング部４５は、ＦＴＣソート結果キュー４４に記憶されているエクステントの配置情報の全体を一度に処理対象とするのではなく、その一部ずつを、順次、処理対象としていきながら、その処理対象となっている配置情報を、エクステントの記録位置順にソートする。
【０１０４】
ステップＳ３２では、ＦＴＣソート結果キュー４４の先頭から所定の範囲に、スケジュールウインドウが設定され、このスケジュールウインドウ内にあるエクステントの配置情報が、ＬＢＮスケジューリング部４５の処理対象とされる。
【０１０５】
ここで、スケジュールウインドウは、例えば、ＦＴＣソート結果キュー４４の先頭から、末尾ＦＴＣが、ＦＴＣソート結果キュー４４の先頭のエクステントの末尾ＦＴＣに、所定のフレーム数を表すＦＴＣであるウインドウ長ＷＰ（Ｗｉｎｄｏｗ  Ｐｅｒｉｏｄ）を加算した値以下の最大値をとるエクステントの配置情報までの間に設定される。
【０１０６】
従って、例えば、ＦＴＣソート結果キュー４４に、図１１に示したような配置情報が記憶され、ウインドウ長ＷＰが、３０フレームである場合、スケジュールウインドウは、図１３に示すように、ＦＴＣソート結果キュー２２の先頭のエクステントＶ１：Ｅｘｔ１から、その先頭から３番目のエクステントＡ２：Ｅｘｔ２までの配置情報に設定される。即ち、図１３のＦＴＣソート結果キュー２２の先頭に配置情報が記憶されているエクステントＶ１：Ｅｘｔ１の末尾ＦＴＣは、０５０であり、この末尾ＦＴＣに、ウインドウ長ＷＰを加算すると、８０（＝５０＋３０）フレームとなる。図１３において、末尾ＦＴＣが８０以下の最大値をとるエクステントは、末尾ＦＴＣが０６０のエクステントＡ１：Ｅｘｔ１とＡ２：Ｅｘｔ２であり、このため、ＦＴＣソート結果キュー２２の先頭のエクステントＶ１：Ｅｘｔ１からエクステントＡ２：Ｅｘｔ２までの配置情報に、スケジュールウインドウが設定される。
【０１０７】
なお、ウインドウ長ＷＰを大にすると、ドライブ２のピックアップが光ディスク３上を戻るような非効率なシークが発生する確率を低減することができるが、エクステントの並べ替えのためのバッファの容量と再生遅延時間が増大することがあり得る。即ち、先に読み出されるが後に再生されるエクステントと、後に読み出されるが先に再生されるエクステントとが存在する場合には、後に読み出されるが先に再生されるエクステントを先に再生し、先に読み出されるが後に再生されるエクステントを後で再生するために、先に読み出されるが後に再生されるエクステントをバッファに記憶しておく必要がある。さらに、先に再生されるエクステントが、後に再生されるエクステントよりも後に読み出されるため、その、先に再生されるエクステントが読み出されて再生されるまでは、後に再生されるエクステントを再生することはできず、再生遅延時間が生じる。そして、ウインドウ長ＷＰを大にすると、後に再生されるエクステントが、先に再生されるエクステントよりも、先に読み出されることが多くなりうるため、先に読み出されるが後に再生されるエクステントを記憶しておくバッファの容量と再生遅延時間が増大することがある。
【０１０８】
一方、ウインドウ長ＷＰを小にすると、ドライブ２のピックアップが光ディスク３上を戻るような非効率なシークが発生することを、効果的に防止することが困難となる。
【０１０９】
このため、ウインドウ長ＷＰは、バッファの容量および再生遅延時間の増大と、非効率なシークの発生頻度との観点から決定する必要がある。
【０１１０】
なお、ウインドウ長ＷＰは、固定長とする他、例えば、エクステントのデータ量や再生時間などの、何らかのパラメータに応じて可変にすることが可能である。
【０１１１】
図１２に戻り、ステップＳ３２においてスケジュールウインドウが設定された後は、ステップＳ３３に進み、ＬＢＮスケジューリング部４５は、スケジューリング結果キュー４６を参照することにより、スケジューリング結果キュー４６が空であるかどうかを判定する。ステップＳ３３において、スケジューリング結果キュー４６が空であると判定された場合、即ち、スケジューリング結果キュー４６に、エクステントの配置情報が記憶されていない場合、ステップＳ３４に進み、ＬＢＮスケジューリング部４５は、スケジュールウインドウに存在するエクステントの配置情報の中から、先頭ＬＢＮが最小のエクステントの配置情報（以下、適宜、最小先頭ＬＢＮエクステント配置情報という）、即ち、光ディスク３上の記録位置が最も前のエクステント（光ディスク３に対するデータの読み書き順で、最も先に読み書きされるエクステント）を検出し、ステップＳ３５に進む。
【０１１２】
ステップＳ３５では、ＬＢＮスケジューリング部４５は、ステップＳ３４で検出した最小先頭ＬＢＮエクステント配置情報を、ＦＴＣソート結果キュー４４から、スケジューリング結果キュー４６の最後尾に移動し、ステップＳ３６に進む。
【０１１３】
従って、スケジューリング結果キュー４６が空の場合は、ＦＴＣソート結果キュー４４から、最小先頭ＬＢＮエクステント配置情報が検出され、即ち、スケジュールウインドウ内にある配置情報のうち、再生時刻が最も早いエクステントの配置情報が、スケジューリング結果キュー４６の先頭に移動される。
【０１１４】
ステップＳ３６では、ＬＢＮスケジューリング部４５は、ＦＴＣソート結果キュー４４からスケジューリング結果キュー４６に移動した最新のエクステントの配置情報が、スケジュールウインドウの先頭に位置しないものであったかどうかを判定する。ステップＳ３６において、ＦＴＣソート結果キュー４４からスケジューリング結果キュー４６に移動された最新のエクステントの配置情報が、スケジュールウインドウの先頭に位置しないものでないと判定された場合、即ち、ＦＴＣソート結果キュー４４からスケジューリング結果キュー４６に移動された最新のエクステントの配置情報が、スケジュールウインドウの先頭に位置するものである場合、ステップＳ３１に戻る。
【０１１５】
そして、ステップＳ３１では、上述したように、ＦＴＣソート結果キュー４４に、配置情報が記憶されているかどうかが判定され、記憶されている場合、ステップＳ３２に進み、上述したように、ＦＴＣソート結果キュー４４に記憶されているエクステントの配置情報に対して、スケジュールウインドウが設定され、以下、同様の処理が繰り返される。
【０１１６】
即ち、スケジュールウインドウの先頭に配置されたエクステントの配置情報が、ＦＴＣソート結果キュー４４からスケジューリング結果キュー４６に移動された場合には、スケジュールウインドウが設定し直される（再設定される）。
【０１１７】
一方、ステップＳ３３において、スケジューリング結果キュー４６が空でないと判定された場合、即ち、スケジューリング結果キュー４６に、エクステントの配置情報が記憶されている場合、ステップＳ３４乃至Ｓ３６をスキップして、ステップＳ３７に進む。
【０１１８】
ここで、ステップＳ３６において、ＦＴＣソート結果キュー４４からスケジューリング結果キュー４６に移動された最新のエクステントの配置情報が、スケジュールウインドウの先頭に位置しないものであると判定された場合も、ステップＳ３７に進む。なお、ステップＳ３７の処理は、ステップＳ３３で、スケジューリング結果キュー４６が空でないと判定された場合に行われる他、上述したステップＳ３５、または後述するステップＳ３９において、エクステントの配置情報が、ＦＴＣソート結果キュー４４からスケジューリング結果キュー４６に移動され、さらに、ステップＳ３６の処理の後にも行われる。ステップＳ３５またはＳ３９の処理後、ステップＳ３６を介して、ステップＳ３７の処理が行われる場合、スケジューリング結果キュー４６には、直前のステップＳ３５または３９において移動されたエクステントの配置情報が記憶されており、従って、いずれにしても、ステップＳ３７の処理は、スケジューリング結果キュー４６に、エクステントの配置情報が記憶されている場合に行われる。
【０１１９】
ステップＳ３７では、ＬＢＮスケジューリング部４５は、スケジュールウインドウの中に、スケジューリング結果キュー４６の最後尾のエクステントの配置情報の末尾ＬＢＮよりも大きな先頭ＬＢＮを有するエクステントの配置情報が存在しないかどうかを判定する。ステップＳ３７において、スケジュールウインドウの中に、スケジューリング結果キュー４６の最後尾のエクステントの配置情報の末尾ＬＢＮよりも大きな先頭ＬＢＮを有するエクステントの配置情報が存在しないと判定された場合、即ち、スケジューリング結果キュー４６の最後尾に配置情報が記憶されたエクステントよりも、光ディスク３の後の位置に記録されたエクステントの配置情報が、スケジュールウインドウ内に存在しない場合、ステップＳ３４に戻り、ＬＢＮスケジューリング部４５は、上述したように、スケジュールウインドウに存在するエクステントの配置情報の中から、最小先頭ＬＢＮエクステント配置情報を検出し、ステップＳ３５に進む。ステップＳ３５では、ＬＢＮスケジューリング部４５は、上述したように、ステップＳ３４で検出した最小先頭ＬＢＮエクステント配置情報を、ＦＴＣソート結果キュー４４から、スケジューリング結果キュー４６の最後尾に移動して、ステップＳ３６に進み、以下、同様の処理を繰り返す。
【０１２０】
従って、スケジューリング結果キュー４６が空でなく、しかも、その空でないスケジューリング結果キュー４６の最後尾に配置情報が記憶されたエクステントよりも、光ディスク３の後の位置に記録されたエクステントの配置情報が、スケジュールウインドウ内に存在しない場合は、ＦＴＣソート結果キュー４４から、最小先頭ＬＢＮエクステント配置情報が検出され、スケジューリング結果キュー４６の最後尾に移動される。即ち、スケジューリング結果キュー４６の最後尾に配置情報が記憶されたエクステントよりも、光ディスク３の後の位置に記録されたエクステントの配置情報が、スケジュールウインドウ内に存在しない場合には、スケジュールウインドウ内にある配置情報のうち、最も再生時刻が早いエクステントの配置情報が、スケジューリング結果キュー４６の最後尾に移動される。
【０１２１】
一方、ステップＳ３７において、スケジュールウインドウの中に、スケジューリング結果キュー４６の最後尾のエクステントの配置情報の末尾ＬＢＮよりも大きな先頭ＬＢＮを有するエクステントの配置情報が存在しなくないと判定された場合、即ち、スケジューリング結果キュー４６の最後尾に配置情報が記憶されたエクステントよりも、光ディスク３の後の位置に記録されたエクステントの配置情報が、スケジュールウインドウ内に存在する場合、ステップＳ３８に進み、ＬＢＮスケジューリング部４５は、スケジュールウインドウに存在するエクステントの配置情報の中から、スケジューリング結果キュー４６の最後尾に配置情報が記憶されたエクステント（以下、適宜、最後尾エクステントという）の末尾ＬＢＮから昇順方向に最も近い先頭ＬＢＮを有するエクステントの配置情報（以下、適宜、最近先頭ＬＢＮエクステント配置情報という）、即ち、スケジューリング結果キュー４６の最後尾に配置情報が記憶されたエクステント（最後尾エクステント）よりも、光ディスク３の後の位置に記録されたエクステントであって、最後尾エクステントの記録位置に最も近いエクステントの配置情報を検出し、ステップＳ３９に進む。
【０１２２】
ステップＳ３９では、ＬＢＮスケジューリング部４５は、ステップＳ３８で検出した最近先頭ＬＢＮエクステント配置情報を、ＦＴＣソート結果キュー４４から、スケジューリング結果キュー４６の最後尾に移動して、ステップＳ３６に進み、以下、同様の処理を繰り返す。
【０１２３】
従って、スケジューリング結果キュー４６が空でなく、しかも、その空でないスケジューリング結果キュー４６の最後尾に配置情報が記憶されたエクステントよりも、光ディスク３の後の位置に記録されたエクステントの配置情報が、スケジュールウインドウ内に存在する場合は、ＦＴＣソート結果キュー４４から、最近先頭ＬＢＮエクステント配置情報が検出され、スケジューリング結果キュー４６の最後尾に移動される。即ち、スケジューリング結果キュー４６の最後尾に配置情報が記憶されたエクステント（最後尾エクステント）よりも、光ディスク３の後の位置に記録されたエクステントの配置情報が、スケジュールウインドウ内に存在する場合には、スケジュールウインドウ内にある配置情報のうち、最後尾エクステントよりも後の位置であって、最後尾エクステントの記録位置に最も近い位置に記録されているエクステントの配置情報（最近先頭ＬＢＮエクステント配置情報）が、スケジューリング結果キュー４６の最後尾に移動される。
【０１２４】
ここで、ステップＳ３７乃至Ｓ３９の処理によれば、スケジュールウインドウ内に、スケジューリング結果キュー４６の最後尾に配置情報が記憶されたエクステント（最後尾エクステント）よりも先に再生されるエクステントの配置情報が存在していても、最後尾エクステントよりも後の位置であって、最後尾エクステントの記録位置に最も近い位置に記録されているエクステントの読み出しを先に行うように、スケジューリングが行われることがある。
【０１２５】
即ち、例えば、再生時刻をｔ１，ｔ２，ｔ３と表すとともに（ｔ１＜ｔ２＜ｔ３）、エクステントが記録されている光ディスクのＬＢＮをＬＢＮ＃１，ＬＢＮ＃２，ＬＢＮ＃３と表し（ＬＢＮ＃１＜ＬＢＮ＃２＜ＬＢＮ＃３）、ある再生時刻ｔｘに再生され、光ディスクのＬＢＮ＃ｘに記録されたエクステントを、Ｅｘｔ（ｔｘ，ＬＢＮ＃ｘ）と表すこととする。
【０１２６】
そして、いま、例えば、３つのエクステントＥｘｔ（ｔ１，ＬＢＮ＃１），Ｅｘｔ（ｔ２，ＬＢＮ＃２），Ｅｘｔ（ｔ３，ＬＢＮ＃３）が、光ディスク３の連続した記録領域に記録されており、さらに、エクステントＥｘｔ（ｔ２，ＬＢＮ＃２）（の配置情報）が、スケジューリング結果キュー４６の最後尾に記憶され、エクステントＥｘｔ（ｔ１，ＬＢＮ＃１）とＥｘｔ（ｔ３，ＬＢＮ＃３）（の配置情報）がスケジュールウインドウ内に存在するとした場合、再生が途切れることを防止する観点からは、スケジュールウインドウ内に存在するエクステントＥｘｔ（ｔ１，ＬＢＮ＃１）とＥｘｔ（ｔ３，ＬＢＮ＃３）のうちの、先に再生されるエクステントＥｘｔ（ｔ１，ＬＢＮ＃１）を、先に読み出し、後に再生されるエクステントＥｘｔ（ｔ３，ＬＢＮ＃３）を、後に読み出すようにスケジューリングすべきである。
【０１２７】
しかしながら、ステップＳ３９では、スケジュールウインドウ内に存在するエクステントＥｘｔ（ｔ１，ＬＢＮ＃１）とＥｘｔ（ｔ３，ＬＢＮ＃３）のうち、再生時刻が先のエクステントＥｘｔ（ｔ１，ＬＢＮ＃１）ではなく、再生時刻が後のエクステントＥｘｔ（ｔ３，ＬＢＮ＃３）が、スケジューリング結果キュー４６のエクステントＥｘｔ（ｔ２，ＬＢＮ＃２）の直後に移動され、これにより、先に再生されるエクステントＥｘｔ（ｔ１，ＬＢＮ＃１）よりも、後に再生されるエクステントＥｘｔ（ｔ２，ＬＢＮ＃２）の方が、光ディスク３から先に読み出されるようにスケジューリングされる。これは、次のような理由による。
【０１２８】
即ち、いまの場合、エクステントＥｘｔ（ｔ２，ＬＢＮ＃２）が、スケジューリング結果キュー４６の最後尾に記憶されており、上述の３つのエクステントＥｘｔ（ｔ１，ＬＢＮ＃１），Ｅｘｔ（ｔ２，ＬＢＮ＃２），Ｅｘｔ（ｔ３，ＬＢＮ＃３）の中では、スケジューリング結果キュー４６の最後尾にあるエクステントＥｘｔ（ｔ２，ＬＢＮ＃２）が、光ディスク３から最初に読み出される。
【０１２９】
従って、その後に、先に再生されるエクステントＥｘｔ（ｔ１，ＬＢＮ＃１）を、先に読み出し、後に再生されるエクステントＥｘｔ（ｔ３，ＬＢＮ＃３）を、後に読み出す場合には、ドライブ２のピックアップは、エクステントＥｘｔ（ｔ２，ＬＢＮ＃２）を読み出した後、そのエクステントＥｘｔ（ｔ２，ＬＢＮ＃２）の前の位置に記録されているエクステントＥｘｔ（ｔ１，ＬＢＮ＃１）の先頭位置に戻って、そのエクステントＥｘｔ（ｔ１，ＬＢＮ＃１）を読み出し、さらに、エクステントＥｘｔ（ｔ２，ＬＢＮ＃２）の後に記録されているエクステントＥｘｔ（ｔ３，ＬＢＮ＃３）の先頭位置まで進んで、そのエクステントＥｘｔ（ｔ３，ＬＢＮ＃３）を読み出す必要がある。その結果、シークの回数は、エクステントＥｘｔ（ｔ２，ＬＢＮ＃２）からエクステントＥｘｔ（ｔ１，ＬＢＮ＃１）への読み出しの移行時と、エクステントＥｘｔ（ｔ１，ＬＢＮ＃１）からエクステントＥｘｔ（ｔ３，ＬＢＮ＃３）への読み出しの移行時との２回になる。
【０１３０】
これに対して、後に再生されるエクステントＥｘｔ（ｔ３，ＬＢＮ＃３）を、先に読み出し、先に再生されるエクステントＥｘｔ（ｔ１，ＬＢＮ＃１）を、後に読み出す場合には、ドライブ２のピックアップは、エクステントＥｘｔ（ｔ２，ＬＢＮ＃２）を読み出した後、その直後に連続して記録されているエクステントＥｘｔ（ｔ３，ＬＢＮ＃３）を読み出し、その後に、エクステントＥｘｔ（ｔ２，ＬＢＮ＃２）の直前に記録されているエクステントＥｘｔ（ｔ１，ＬＢＮ＃１）を読み出すので、シークの回数は、エクステントＥｘｔ（ｔ３，ＬＢＮ＃３）からエクステントＥｘｔ（ｔ１，ＬＢＮ＃１）への読み出しの移行時の１回になる。
【０１３１】
以上のように、シークの回数が減るので、光ディスク３からのエクステントの読み出しに要する時間は、全体として短くなり、その結果、光ディスク３からの読み出しを効率的に行うことが可能となる。
【０１３２】
一方、ステップＳ３１において、ＦＴＣソート結果キュー４４に、配置情報が記憶されていないと判定された場合、即ち、ステップＳ３５またはＳ３９において、ＦＴＣソート結果キュー４４に記憶されていたエクステントの配置情報が、すべて、スケジューリング結果キュー４６に移動された場合、ＬＢＮスケジューリング処理を終了してリターンする。
【０１３３】
図５の読み出し制御部４７は、以上のようにして、スケジューリング結果キュー４６に記憶される配置情報を、その先頭から順次読み出し（て削除し）、その読み出した配置情報によって特定されるエクステントを、光ディスク３から読み出すように、ファイルシステムドライバ３３を制御する。
【０１３４】
次に、図１４乃至図１８を参照して、ＬＢＮスケジューリング部４５によるＬＢＮスケジューリング処理について、さらに説明する。なお、以下では、スケジュールウインドウのウインドウ長ＷＰは、例えば、上述したように、３０フレームであるとする。
【０１３５】
いま、例えば、図１１に示したように、エクステントの配置情報が、ＦＴＣソート結果キュー４４に記憶されたとすると、図１３に示したように、ＦＴＣソート結果キュー４４の先頭のエクステントＶ１：Ｅｘｔ１から、末尾ＦＴＣが、ＦＴＣソート結果キュー４４の先頭のエクステントＶ１：Ｅｘｔ１の末尾ＦＴＣ（０５０）にウインドウ長ＷＰである３０フレームを加算した値（０８０）以下の最大値である０６０となっているエクステントＡ２：Ｅｘｔ１）までの３つのエクステントＶ１：Ｅｘｔ１，Ａ１：Ｅｘｔ１，Ａ２：Ｅｘｔ１の範囲に、スケジュールウインドウが設定される（ステップＳ３２）。
【０１３６】
いまの場合、スケジューリング結果キュー４６には、配置情報が記憶されていないから、スケジュールウインドウ内の３つのエクステントＶ１：Ｅｘｔ１，Ａ１：Ｅｘｔ１，Ａ２：Ｅｘｔ１のうち、先頭ＬＢＮが１００で最小のエクステントＡ１：Ｅｘｔ１が検出され（ステップＳ３３，Ｓ３４）、図１４に示すように、ＦＴＣソート結果キュー４４からスケジューリング結果キュー４６に移動される（ステップＳ３５）。そして、エクステントＡ１：Ｅｘｔ１が、ＦＴＣソート結果キュー４４からスケジューリング結果キュー４６に移動されることにより、スケジュールウインドウ内に存在するエクステントは、図１５に示すように、２つのエクステントＶ１：Ｅｘｔ１，Ａ２：Ｅｘｔ１となる。
【０１３７】
さらに、上述のように、エクステントＡ１：Ｅｘｔ１が、ＦＴＣソート結果キュー４４からスケジューリング結果キュー４６に移動されることにより、スケジューリング結果キュー４６は空ではなくなる。また、スケジュールウインドウ内に存在する２つのエクステントＶ１：Ｅｘｔ１とＡ２：Ｅｘｔ１の先頭ＬＢＮは、それぞれ１０６と１０３であり、いずれも、スケジューリング結果キュー４６の最後尾に記憶されているエクステントＡ１：Ｅｘｔ１の末尾ＬＢＮである１０２よりも大である。
【０１３８】
従って、スケジュールウインドウに存在するエクステントＶ１：Ｅｘｔ１とＡ２：Ｅｘｔ１の中から、スケジューリング結果キュー４６の最後尾に記憶されたエクステントＡ１：Ｅｘｔ１の末尾ＬＢＮである１０２から昇順方向に最も近い１０３が先頭ＬＢＮとなっているエクステントＡ２：Ｅｘｔ１が検出され（ステップＳ３３，Ｓ３７，Ｓ３８）、図１５に示すように、ＦＴＣソート結果キュー４４からスケジューリング結果キュー４６に移動される（ステップＳ３９）。
【０１３９】
そして、エクステントＡ２：Ｅｘｔ１が、ＦＴＣソート結果キュー４４からスケジューリング結果キュー４６に移動されることにより、スケジュールウインドウ内に存在するエクステントは、図１６に示すように、１つのエクステントＶ１：Ｅｘｔ１だけとなる。
【０１４０】
さらに、上述のように、スケジューリング結果キュー４６は空ではなくなっており、また、スケジューリング結果キュー４６の最後尾のエクステントは、末尾ＬＢＮが１０５のエクステントＡ２：Ｅｘｔ１となっている。そして、スケジュールウインドウ内に存在する１つのエクステントＶ１：Ｅｘｔ１の先頭ＬＢＮは、上述したように１０６であり、スケジューリング結果キュー４６の最後尾に記憶されているエクステントＡ２：Ｅｘｔ１の末尾ＬＢＮである１０５よりも大である。
【０１４１】
従って、スケジュールウインドウに存在するエクステントＶ１：Ｅｘｔ１は、スケジューリング結果キュー４６の最後尾に記憶されたエクステントＡ２：Ｅｘｔ１の末尾ＬＢＮである１０５から昇順方向に最も近い１０６を先頭ＬＢＮとして有するエクステントとして検出され（ステップＳ３７，Ｓ３８）、図１６に示すように、ＦＴＣソート結果キュー４４からスケジューリング結果キュー４６に移動される（ステップＳ３９）。
【０１４２】
さらに、いまの場合、ＦＴＣソート結果キュー４４からスケジューリング結果キュー４６に移動されたエクステントＶ１：Ｅｘｔ１は、スケジュールウインドウの先頭に存在するエクステントであり（ステップＳ３６）、さらに、ＦＴＣソート結果キュー４４には、まだ、エクステントＡ１：Ｅｘｔ２，Ａ２：Ｅｘｔ２，Ｖ１：Ｅｘｔ２，Ｖ１：Ｅｘｔ３，Ａ１：Ｅｘｔ３，Ａ２：Ｅｘｔ３（の配置情報）が記憶されているから、スケジュールウインドウが設定し直される（ステップＳ３２）。
【０１４３】
即ち、いまの場合、ＦＴＣソート結果キュー４４の先頭には、末尾ＦＴＣが１３０のエクステントＡ１：Ｅｘｔ２が記憶されている。従って、図１７に示すように、ＦＴＣソート結果キュー４４の先頭のエクステントＡ１：Ｅｘｔ２から、末尾ＦＴＣが、ＦＴＣソート結果キュー４４の先頭のエクステントＡ１：Ｅｘｔ２の末尾ＦＴＣ（１３０）にウインドウ長ＷＰである３０フレームを加算した値（１６０）以下の最大値である１４０となっているエクステントＶ２：Ｅｘｔ２）までの３つのエクステントＡ１：Ｅｘｔ２，Ａ２：Ｅｘｔ２，Ｖ１：Ｅｘｔ２の範囲に、スケジュールウインドウが設定し直される（ステップＳ３２）。
【０１４４】
さらに、いまの場合、上述のように、スケジューリング結果キュー４６は空ではなくなっており、また、スケジューリング結果キュー４６の最後尾のエクステントは、末尾ＬＢＮが１１５のエクステントＶ１：Ｅｘｔ１となっている。そして、スケジュールウインドウ内に存在する３つのエクステントＡ１：Ｅｘｔ２，Ａ２：Ｅｘｔ２，Ｖ１：Ｅｘｔ２の先頭ＬＢＮは、それぞれ、１１６，１１９，１２２であり、いずれも、スケジューリング結果キュー４６の最後尾に記憶されているエクステントＶ１：Ｅｘｔ１の末尾ＬＢＮである１１５よりも大である。
【０１４５】
従って、スケジュールウインドウに存在する３つのエクステントＡ１：Ｅｘｔ２，Ａ２：Ｅｘｔ２，Ｖ１：Ｅｘｔ２のうち、スケジューリング結果キュー４６の最後尾に記憶されたエクステントＶ１：Ｅｘｔ１の末尾ＬＢＮである１１５から昇順方向に最も近い１１６を先頭ＬＢＮとして有するエクステントＡ１：Ｅｘｔ２が検出され（ステップＳ３７，Ｓ３８）、図１７に示すように、ＦＴＣソート結果キュー４４からスケジューリング結果キュー４６に移動される（ステップＳ３９）。
【０１４６】
また、いまの場合、ＦＴＣソート結果キュー４４からスケジューリング結果キュー４６に移動されたエクステントＡ１：Ｅｘｔ２は、スケジュールウインドウの先頭のエクステントであり（ステップＳ３６）、さらに、ＦＴＣソート結果キュー４４には、まだ、エクステントＡ２：Ｅｘｔ２，Ｖ１：Ｅｘｔ２，Ｖ１：Ｅｘｔ３，Ａ１：Ｅｘｔ３，Ａ２：Ｅｘｔ３（の配置情報）が記憶されているから、スケジュールウインドウが設定し直される（ステップＳ３２）。
【０１４７】
以下、同様にして、エクステント（の配置情報）が、ＦＴＣソート結果キュー４４からスケジューリング結果キュー４６に移動され、最終的には、図１８に示すようなスケジューリング結果が得られる。なお、図１８のスケジューリング結果は、エクステントＡ１：Ｅｘｔ１，Ａ２：Ｅｘｔ１，Ｖ１：Ｅｘｔ１，Ａ１：Ｅｘｔ２，Ａ２：Ｅｘｔ２，Ｖ１：Ｅｘｔ２，Ａ１：Ｅｘｔ３，Ａ２：Ｅｘｔ３，Ｖ１：Ｅｘｔ３の順で読み出しを行うものとなっている。
【０１４８】
以上のように、光ディスク３に記録されているエクステントを、そのエクステントの再生時刻に基づいてソートし、そのソート後のエクステントを、そのエクステントの光ディスク３における記録位置に基づいてソートし、そのソート結果を、光ディスク３からエクステントを読み出す読み出し順のスケジューリング結果とするようにしたので、光ディスク３からのエクステントの読み出しを、その再生が途切れることを防止しながら効率的に行うことが可能となる。
【０１４９】
なお、上述の場合には、スケジュールウインドウの先頭のエクステントが、ＦＴＣソート結果キュー４４からスケジューリング結果キュー４６に移動された場合に、スケジュールウインドウの再設定を行うようにしたが、スケジュールウインドウの再設定は、その他、例えば、エクステントが、ＦＴＣソート結果キュー４４からスケジューリング結果キュー４６に移動されるたびに行ったり、また、一度設定されたスケジュールウインドウ内のすべてのエクステントが、ＦＴＣソート結果キュー４４からスケジューリング結果キュー４６に移動された場合に行ったりするようにすることが可能である。
【０１５０】
さらに、上述の場合には、ＦＴＣソート部４３において、末尾ＦＴＣに基づいて、エクステントの配置情報をソートするようにしたが、その他、ＦＴＣソート部４３では、エクステントの最初のデータが再生されるべき再生時刻を表すＦＴＣを、先頭ＦＴＣというものとして、エクステントの配置情報を、例えば、そのエクステントの先頭ＦＴＣに基づいてソートするようにすることが可能である。
【０１５１】
即ち、この場合、配置情報取得部４１では、エクステントの配置情報の１つとして、末尾ＦＴＣに代えて、先頭ＦＴＣを求めるようにする。そして、例えば、図９に示した９個のエクステントＶ１：Ｅｘｔ１，Ｖ１：Ｅｘｔ２，Ｖ１：Ｅｘｔ３，Ａ１：Ｅｘｔ１，Ａ１：Ｅｘｔ２，Ａ１：Ｅｘｔ３，Ａ２：Ｅｘｔ１，Ａ２：Ｅｘｔ２，Ａ２：Ｅｘｔ３の先頭ＦＴＣが、例えば、それぞれ、０１０，０６０，１４０，０１０，０５０，１３０，０１０，０５０，１３０であった場合には、ＦＴＣソート部４３において、エクステントの配置情報が、そのエクステントの先頭ＦＴＣに基づいてソートされることにより、例えば、図１９に示すように、エクステントＶ１：Ｅｘｔ１，Ａ１：Ｅｘｔ１，Ａ２：Ｅｘｔ１，Ａ１：Ｅｘｔ２，Ａ２：Ｅｘｔ２，Ｖ１：Ｅｘｔ２，Ａ１：Ｅｘｔ３，Ａ２：Ｅｘｔ３，Ｖ１：Ｅｘｔ３の順で、ＦＴＣソート結果キュー４４に記憶される。
【０１５２】
ここで、図１９では、エクステントの配置情報を表す四角形の中の１段目に、図７における場合と同様に、そのエクステントのファイル名とエクステント番号とがコロン（：）で区切られて表されている。さらに、図１９では、エクステントの配置情報を表す四角形の中の２段目の左端と右端に、それぞれ、やはり、図７における場合と同様に、そのエクステントが記録されている光ディスク３の先頭ＬＢＮと末尾ＬＢＮが表されている。また、図１９では、エクステントの配置情報を表す四角形の中の３段目の左端に、そのエクステントの先頭のデータが再生されるべき再生時刻を表す先頭ＦＴＣが、括弧（）付きで表されている。
【０１５３】
例えば、図１９に示したＦＴＣソート結果が、ＦＴＣソート結果キュー４４に記憶され、そのＦＴＣソート結果キュー４４の先頭のエクステントＶ１：Ｅｘｔ１から、エクステントＡ２：Ｅｘｔ１までの３つのエクステントＶ１：Ｅｘｔ１，Ａ１：Ｅｘｔ１，Ａ２：Ｅｘｔ１に、スケジュールウインドウが設定された場合において、末尾ＬＢＮが１６０のエクステントが、既に、スケジューリング結果キュー４６に記憶されているときには、ＬＢＮスケジューリング部４５は、図２０に示すように、エクステントＡ１：Ｅｘｔ１を、ＦＴＣソート結果キュー４４から、スケジューリング結果キュー４６の最後尾に移動する。
【０１５４】
即ち、図２０のケースは、スケジューリング結果キュー４６が空ではなく（ステップＳ３３→Ｓ３７）、さらに、スケジュールウインドウの中に、スケジューリング結果キュー４６の最後尾のエクステントの末尾ＬＢＮであある１６０よりも大きな先頭ＬＢＮを有するエクステントが存在しないので（ステップＳ３７→Ｓ３４）、スケジュールウインドウに存在する３つのエクステントＶ１：Ｅｘｔ１，Ａ１：Ｅｘｔ１，Ａ２：Ｅｘｔ１の中から、先頭ＬＢＮが１００で最小のエクステントＡ１：Ｅｘｔ１が検出され（ステップＳ３４）、ＦＴＣソート結果キュー４４から、スケジューリング結果キュー４６の最後尾に移動される（ステップＳ３５）。
【０１５５】
なお、本発明は、光ディスク以外の、例えば、磁気ディスクなどの記録媒体にも適用可能である。
【０１５６】
また、本実施の形態では、ビデオデータとオーディオデータとが記録された光ディスク３からのデータの読み出しのスケジューリングを行うようにしたが、本発明は、その他、例えば、ビデオデータまたはオーディオデータのうちのいずれか一方や、ビデオデータおよびオーディオデータ以外のデータ、ビデオデータおよびオーディオデータの他に、さらに任意のデータが記録された光ディスク３からのデータの再生にも適用可能である。
【０１５７】
【発明の効果】
以上の如く、本発明によれば、記録媒体からのデータの読み出しを、再生が途切れることを防止しながら効率的に行うことが可能となる。
【図面の簡単な説明】
【図１】本発明を適用した記録再生システムの一実施の形態の構成例を示すブロック図である。
【図２】コンピュータ１のハードウェア構成例を示すブロック図である。
【図３】コンピュータ１上で実行されるソフトウェアを示す図である。
【図４】光ディスク３に記録されるデータの論理フォーマットを示す図である。
【図５】再生スケジューラ３７の機能的構成例を示すブロック図である。
【図６】読み出しスケジューリング処理を説明するフローチャートである。
【図７】光ディスク３におけるデータの論理的な記録状態を示す図である。
【図８】配置情報取得処理を説明するフローチャートである。
【図９】配置情報取得処理によって取得される配置情報を示す図である。
【図１０】ＦＴＣソート処理を説明するフローチャートである。
【図１１】ＦＴＣソート処理によるエクステント（の配置情報）のソート結果を示す図である。
【図１２】ＬＢＮスケジューリング処理を説明するフローチャートである。
【図１３】スケジューリングウインドウを説明する図である。
【図１４】ＦＴＣソート結果キュー４４からスケジューリング結果キュー４６に、エクステントが移動される様子を示す図である。
【図１５】ＦＴＣソート結果キュー４４からスケジューリング結果キュー４６に、エクステントが移動される様子を示す図である。
【図１６】ＦＴＣソート結果キュー４４からスケジューリング結果キュー４６に、エクステントが移動される様子を示す図である。
【図１７】ＦＴＣソート結果キュー４４からスケジューリング結果キュー４６に、エクステントが移動される様子を示す図である。
【図１８】ＬＢＮスケジューリング処理によるエクステント（の配置情報）のソート結果を示す図である。
【図１９】先頭ＦＴＣに基づくＦＴＣソート処理によるエクステント（の配置情報）のソート結果を示す図である。
【図２０】ＦＴＣソート結果キュー４４からスケジューリング結果キュー４６に、エクステントが移動される様子を示す図である。
【符号の説明】
１  コンピュータ，  ２  ドライブ，  ３  光ディスク，  ４  信号入出力装置，  １１  ＣＰＵ，  １２  ＲＯＭ，  １３  メモリコントローラ，  １４  ＲＡＭ，１５  ＨＤ，  １６  入力部，  １７  出力部，  １８  通信Ｉ／Ｆ，  １９  Ｉ／Ｆコントローラ，  ２０  データ変換部，  ３１  ＯＳ，  ３２  デバイスドライバ，  ３３  ファイルシステムドライバ，  ３４  アプリケーションプログラム，３５  アロケーションマネージャ，  ３６  記録スケジューラ，  ３７  再生スケジューラ，  ４１  配置情報取得部，  ４２  配置情報バッファ，  ４３  ＦＴＣソート部，  ４４  ＦＴＣソート結果キュー，  ４５  ＬＢＮスケジューリング部，  ４６  スケジューリング結果キュー，  ４７  読み出し制御部
【図１】
2004158072.tif 000003
【図２】
2004158072.tif 000004
【図３】
2004158072.tif 000005
【図４】
2004158072.tif 000006
【図５】
2004158072.tif 000007
【図６】
2004158072.tif 000008
【図７】
2004158072.tif 000009
【図８】
2004158072.tif 000010
【図９】
2004158072.tif 000011
【図１０】
2004158072.tif 000012
【図１１】
2004158072.tif 000013
【図１２】
2004158072.tif 000014
【図１３】
2004158072.tif 000015
【図１４】
2004158072.tif 000016
【図１５】
2004158072.tif 000017
【図１６】
2004158072.tif 000018
【図１７】
2004158072.tif 000019
【図１８】
2004158072.tif 000020
【図１９】
2004158072.tif 000021
【図２０】
2004158072.tif 000022