(57)【要約】【課題】AV(Audio Visual)データの再生のリアルタイム性を保証する。【解決手段】リアルタイム再生可否判定部１３は、光ディスク３２の記録領域に記録されたAVデータをリアルタイムで再生することができるかどうかを判定する。そして、光ディスク３２に記録されたAVデータをリアルタイムで再生することができないとき、コンパイルシミュレーション部１５およびコンパイル実行部１７は、光ディスク３２に記録されたAVデータの中から、所定のAVデータを選択し、その選択したAVデータを、光ディスク３２上の空き領域に再配置する。本発明は、例えば、光ディスク３２を再生するディスク装置に適用することができる。【選択図】      図１
2004199767.tif 000002
【特許請求の範囲】
【請求項１】
第１の記録領域に記録されたデータをリアルタイムで再生することができるかどうかを判定するリアルタイム再生可否判定手段と、
前記第１の記録領域に記録されたデータをリアルタイムで再生することができないとき、前記第１の記録領域に記録されたデータの中から、所定のデータを選択するデータ選択手段と、
前記データ選択手段において選択されたデータを、第２の記録領域に再配置する再配置手段と
を備えることを特徴とするデータ処理装置。
【請求項２】
前記第１と第２の記録領域は、同一または異なる記録媒体上の記録領域である
ことを特徴とする請求項１に記載のデータ処理装置。
【請求項３】
前記第１または第２の記録領域から前記データが読み出され、所定のバッファにバッファリングされて再生される場合において、
前記リアルタイム再生可否判定手段は、前記所定のバッファがアンダーフローするかどうかによって、データをリアルタイムで再生することができるかどうかを判定する
ことを特徴とする請求項１に記載のデータ処理装置。
【請求項４】
前記データ選択手段は、前記バッファのアンダーフローが生じるアンダーフロー時点よりも前の、前記アンダーフロー時点に最も近い時点であって、前記第２の記録領域に再配置されたデータの読み出しがリアルタイムでの再生に間に合う分以上のデータが前記所定のバッファにバッファリングされている時点において前記第１の記録領域から読み出すべきデータを、第２の記録領域に再配置する開始点として選択する
ことを特徴とする請求項３に記載のデータ処理装置。
【請求項５】
前記再配置手段は、前記第２の記録領域に再配置されるデータの次に再生すべき前記第１の記録領域に記録されたデータの読み出しがリアルタイムでの再生に間に合う分以上のデータが前記所定のバッファにバッファリングされている時点において前記第１の記録媒体から読み出すべきデータを終了点として、前記開始点から終了点までのデータを、前記第２の記録領域に再配置する
ことを特徴とする請求項４に記載のデータ処理装置。
【請求項６】
前記開始点から終了点までのデータを、連続して再配置することができる前記第２の記録領域を検出する記録領域検出手段をさらに備える
ことを特徴とする請求項５に記載のデータ処理装置。
【請求項７】
前記再配置手段は、前記所定のバッファのオーバーフローが生じる時点において前記所定のバッファにバッファリングされるデータを終了点として、前記開始点から終了点までのデータを、前記第２の記録領域に再配置する
ことを特徴とする請求項４に記載のデータ処理装置。
【請求項８】
前記開始点から終了点までのデータを、連続して再配置することができる前記第２の記録領域を検出する記録領域検出手段をさらに備える
ことを特徴とする請求項７に記載のデータ処理装置。
【請求項９】
前記データを、前記第２の記録領域に再配置するのに要する時間を予測する時間予測手段をさらに備える
ことを特徴とする請求項１に記載のデータ処理装置。
【請求項１０】
第１の記録領域に記録されたデータをリアルタイムで再生することができるかどうかを判定するリアルタイム再生可否判定ステップと、
前記第１の記録領域に記録されたデータをリアルタイムで再生することができないとき、前記第１の記録領域に記録されたデータの中から、所定のデータを選択するデータ選択ステップと、
前記データ選択ステップにおいて選択されたデータを、第２の記録領域に再配置する再配置ステップと
を備えることを特徴とするデータ処理方法。
【請求項１１】
コンピュータに実行させるプログラムにおいて、
第１の記録領域に記録されたデータをリアルタイムで再生することができるかどうかを判定するリアルタイム再生可否判定ステップと、
前記第１の記録領域に記録されたデータをリアルタイムで再生することができないとき、前記第１の記録領域に記録されたデータの中から、所定のデータを選択するデータ選択ステップと、
前記データ選択ステップにおいて選択されたデータを、第２の記録領域に再配置させる再配置ステップと
を備えることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ処理装置およびデータ処理方法、並びにプログラムに関し、特に、例えば、光ディスク等の記録媒体に記録されたビデオデータやオーディオデータについての再生のリアルタイム性を保証することができるようにするデータ処理装置およびデータ処理方法、並びにプログラムに関する。
【０００２】
【従来の技術】
例えば、光ディスクやHD(Hard Disk)などのランダムアクセス可能なディスク状の記録媒体の大容量化や低価格化に伴い、高ビットレートのビデオデータやオーディオデータについて、光ディスク等を用いた非破壊編集が行われるようになってきている。
【０００３】
非破壊編集とは、例えば、光ディスク等に記録された素材データとしてのビデオデータやオーディオデータに対して、いわゆる編集点（IN点、OUT点）を設定するだけで、素材データそのものを編集しない（破壊しない）編集方法である。非破壊編集においては、例えば、プレイリストなどと呼ばれる、編集時に設定された編集点のリストが作成される。そして、その編集結果の再生は、プレイリストにしたがって行われる。即ち、編集結果の再生は、プレイリストに記述されている編集点にしたがって、光ディスクに記録された素材データを再生することにより行われる。このような非破壊編集によれば、素材データが、例えば、MPEGエンコードなどの非可逆変換されている場合に、素材データをデコードしてから、そのデコード結果をつなぎ合わせ、再度、そのつなぎ合わせられた素材データをMPEGエンコードする必要がなく、従って、デコードとエンコードが繰り返されることによる画質等の劣化を防止することができる。
【０００４】
なお、非破壊編集において、ある素材データと他の素材データとをつなぎ合わせるときなどには、そのつなぎ合わせの部分に、特殊効果（エフェクト）を付す場合がある。非破壊編集において、特殊効果が付された場合、その再生時には、特殊効果が付されたつなぎの部分の２つの素材データを光ディスクから読み出し、特殊効果を付す必要がある。そこで、例えば、特許文献１においては、その特殊効果が付されるつなぎ合わせの部分だけを、光ディスクに記録しておくことが記載されている。
【０００５】
【特許文献１】
特開平11-146330号公報。
【０００６】
【発明が解決しようとする課題】
ところで、例えば、上述のような非破壊編集において得られる、ある編集点（IN点）から次の編集点（OUT点）までの連続した素材データの集まりをクリップと呼ぶこととすると、非破壊編集による編集結果は、クリップ単位で再生されるということができる。そして、異なるクリップは、光ディスク上の離れた記録領域に記録されていることがある。
【０００７】
従って、プレイリストによる再生において、例えば、あるクリップから他のクリップに再生対象が移行する場合には、それらのクリップが記録されている光ディスクを再生するディスク装置では、あるクリップが記録されている記録領域から、次のクリップが記録されている記録領域にシークを行う必要がある。
【０００８】
そして、このシークに要するシーク時間が大である場合には、再生が途切れることがある。
【０００９】
本発明は、このような状況に鑑みてなされたものであり、再生のリアルタイム性を保証することができるようにするものである。
【００１０】
【課題を解決するための手段】
本発明のデータ処理装置は、第１の記録領域に記録されたデータをリアルタイムで再生することができるかどうかを判定するリアルタイム再生可否判定手段と、第１の記録領域に記録されたデータをリアルタイムで再生することができないとき、第１の記録領域に記録されたデータの中から、所定のデータを選択するデータ選択手段と、データ選択手段において選択されたデータを、第２の記録領域に再配置する再配置手段とを備えることを特徴とする。
【００１１】
本発明のデータ処理方法は、第１の記録領域に記録されたデータをリアルタイムで再生することができるかどうかを判定するリアルタイム再生可否判定ステップと、第１の記録領域に記録されたデータをリアルタイムで再生することができないとき、第１の記録領域に記録されたデータの中から、所定のデータを選択するデータ選択ステップと、データ選択ステップにおいて選択されたデータを、第２の記録領域に再配置する再配置ステップとを備えることを特徴とする。
【００１２】
本発明のプログラムは、第１の記録領域に記録されたデータをリアルタイムで再生することができるかどうかを判定するリアルタイム再生可否判定ステップと、第１の記録領域に記録されたデータをリアルタイムで再生することができないとき、第１の記録領域に記録されたデータの中から、所定のデータを選択するデータ選択ステップと、データ選択ステップにおいて選択されたデータを、第２の記録領域に再配置させる再配置ステップとを備えることを特徴とする。
【００１３】
本発明のデータ処理装置およびデータ処理方法、並びにプログラムにおいては、第１の記録領域に記録されたデータをリアルタイムで再生することができるかどうかが判定される。そして、第１の記録領域に記録されたデータをリアルタイムで再生することができないとき、第１の記録領域に記録されたデータの中から、所定のデータが選択され、その選択されたデータが、第２の記録領域に再配置される。
【００１４】
【発明の実施の形態】
図１は、本発明を適用したディスク装置の一実施の形態の構成例を示している。
【００１５】
図１の実施の形態において、ディスク装置は、再生制御部１とディスクドライブ２から構成されている。
【００１６】
再生制御部１は、ユーザI/F(Interface)１１、システム制御部１２、リアルタイム再生可否判定部１３、システム情報記憶部１４、コンパイルシミュレーション部１５、シミュレーション結果記憶部１６、コンパイル実行部１７、再生実行部１８、データ配置情報抽出部１９、およびバッファ２０で構成され、ディスクドライブ２からのデータの再生を制御する。
【００１７】
即ち、ユーザI/F１１は、キーボードや、スイッチ、つまみなどの操作部や、マイク（マイクロフォン）、画像を表示するディスプレイ、音声（音）を出力するスピーカなどで構成される。そして、ユーザI/F１１は、ユーザによって操作等され、その操作に対応する操作信号を、システム制御部１２に供給する。また、ユーザI/F１１は、システム制御部１２から供給される、後述する光ディスク３２から読み出されて再生された画像や音声を出力（表示）する。
【００１８】
なお、ユーザI/F１１においては、例えば、光ディスク３２の再生などの動作指示を入力することが可能であることは勿論、後述するコンパイルを行うときの条件設定などを入力することも可能である。また、ユーザI/F１１では、光ディスク３２から再生された画像や音声の他、光ディスク３２からの画像や音声の再生をリアルタイムですることができるかどうかのメッセージや、コンパイルに要する時間（コンパイル所要時間）なども出力される。
【００１９】
システム制御部１２は、例えば、ユーザI/F１１から供給される操作信号などに応じて、リアルタイム再生可否判定部１３や、コンパイルシミュレーション部１５、コンパイル実行部１７、再生実行部１８を制御する。
【００２０】
リアルタイム再生可否判定部１３は、システム情報記憶部１４に記憶された情報や、データ配置情報抽出部１９から供給される情報などに基づき、光ディスク３２に記録されたビデオデータやオーディオデータであるAV(Audio Visual)データを、リアルタイムで再生することができるかどうかを判定する。
【００２１】
システム情報記憶部１４は、ディスク装置の仕様や性能に関する情報であるシステム情報を記憶している。ここで、システム情報には、例えば、ディスクドライブ２において光ディスク３２からデータを読み出すときの読み出しレートや、バッファ２０の記憶容量であるバッファサイズ、ディスクドライブ２において生じるシークのシーク時間を表すシーク時間関数、後述する再生遅延許容時間、AVデータの再生レートなどがある。なお、例えば、再生遅延許容時間やバッファサイズは、ユーザが、ユーザI/F１１を操作することにより設定するようにすることも可能である。
【００２２】
コンパイルシミュレーション部１５は、システム情報記憶部１４に記憶された情報や、データ配置情報抽出部１９から供給される情報などを用いて、光ディスク３２に記録されたAVデータを再配置するコンパイルのシミュレーションを行い、そのシミュレーションの結果得られる情報であるシミュレーション結果情報を、シミュレーション結果記憶部１６に供給する。シミュレーション結果記憶部１６は、コンパイルシミュレーション部１５から供給されるシミュレーション結果情報を一時記憶する。
【００２３】
コンパイル実行部１７は、シミュレーション結果記憶部１６に記憶されたシミュレーション結果情報に基づき、光ディスク３２に記録されたAVデータを再配置するコンパイルを実行するように、ディスクドライブ２（のディスクI/F３１）を制御する。
【００２４】
再生実行部１８は、光ディスク３２に記録されたAVデータの再生を実行するように、ディスクドライブ２のディスクI/F３１を制御する。
【００２５】
即ち、ユーザが、AVデータの再生を行うように、ユーザI/F１１を操作すると、再生を要求する操作信号が、システム制御部１２に供給される。システム制御部１２は、ユーザI/F１１から再生を要求する操作信号を受信すると、AVデータの再生を行うように、再生実行部１８を制御する。この場合、再生実行部１８は、ディスクI/F３１に対して、プレイリストを要求し、その要求したプレイリストが、ディスクI/F３１から供給されるのを待って受信する。さらに、再生実行部１８は、そのプレイリストにしたがい、再生すべきAVデータを、ディスクI/F３１に要求する。ディスクI/F３１は、再生実行部１８から要求のあったAVデータを、光ディスク３１から読み出し、バッファ２０に供給して記憶させる。そして、再生実行部１８は、バッファ２０に記憶されたAVデータを読み出し、必要な処理（例えば、デコード処理など）を施して、システム制御部１２に供給する。システム制御部１２は、再生実行部１８から供給されるAVデータを、ユーザI/F１１に供給し、これにより、ユーザI/F１１において、AVデータ（に対応する画像と音声）が出力される。
【００２６】
データ配置情報抽出部１９は、ディスクI/F３１に対して、光ディスク３２に記憶されたプレイリストや、光ディスク３２上の空き領域が記述された空き領域リストを要求し、リアルタイム再生可否判定部１３やコンパイルシミュレーション部１５に供給する。バッファ２０は、ディスクI/F３１から供給される、光ディスク３２から読み出されたAVデータを一時記憶する。
【００２７】
ディスクドライブ２は、ディスクI/F３１で構成され、ディスクドライブ２に装着された光ディスク３２に対して、データの書き込みや読み出しを行う。即ち、ディスクドライブ２に対しては、光ディスク３２を容易に着脱することができるようになっている。そして、ディスクI/F３１は、再生実行部１８からの要求に応じて、光ディスク３２からAVデータを読み出し、バッファ２０に供給する。また、ディスクI/F３１は、コンパイル実行部１７からの要求に応じて、光ディスク３２のある記録領域に記録されているAVデータを、他の記録領域に再配置する。さらに、ディスクI/F３１は、光ディスク３２上の空き領域を管理しており、その空き領域が記述された空き領域リストを、データ配置情報抽出部１９からの要求に応じて、データ配置情報抽出部１９に供給する。また、ディスクI/F３１は、データ配置情報抽出部１９からの要求に応じて、光ディスク３２に記録されたプレイリストを読み出し、データ配置情報抽出部１９に供給する。
【００２８】
光ディスク３２には、例えば、素材データとしてのAVデータのファイルと、非破壊編集の結果得られるプレイリストが記録されている。
【００２９】
なお、ここでは、光ディスク３２にプレイリストを記録しておくものとしたが、プレイリストは、図１のディスク装置に対して、外部から与えるようにすること等も可能である。
【００３０】
次に、図２乃至図４を参照して、光ディスク３２に記録された素材データとしてのAVデータのファイルおよびプレイリスト、並びに非破壊編集結果の関係について説明する。
【００３１】
図２は、非破壊編集結果と、光ディスク３２に記録されているAVデータのファイルとの関係を示している。
【００３２】
図２においては、光ディスク３２に、AVデータのファイルFile001，File002，File003が記録されており、ファイルFile001のタイムコードB1からE1までのAVデータ、ファイルFile002のタイムコードB2からE2までのAVデータ、File003のタイムコードB3からE3までのAVデータを、その順番でつなぎ合わせたAVデータのシーケンスが、非破壊編集結果とされている。
【００３３】
光ディスク３２の記録領域は、例えば、所定のサイズの論理ブロック(LB(Logical Block))に分割されており、AVデータは、１以上の連続した論理ブロックに記録される。
【００３４】
光ディスク３２においては、１つのファイルを構成するAVデータであっても、連続した論理ブロックに記録されるとは限らず、図２に示すように、幾つかに分断されて記録されることがある。図２では、ファイルFile001のうちの、非破壊編集結果に用いられているタイムコードB1からE1までのAVデータが、３つに分断されて光ディスク３２に記録されている。即ち、図２において、光ディスク３２の論理ブロックには、その読み書きがされる順番に、０からのシーケンシャルな論理ブロック番号(LBN(Logical Block Number))が付されており、ファイルFile001のタイムコードB1からE1までの３つに分断されているAVデータのうちの１つ目のAVデータは、LBNが１００から１０３の４つの連続した論理ブロックに、２つ目のAVデータは、LBNが１５２から１５４の３つの連続した論理ブロックに、３つ目のAVデータは、LBNが２０８から２１３の６つの連続した論理ブロックに、それぞれ記録されている。
【００３５】
同様に、ファイルFile002のうちの、非破壊編集結果に用いられているタイムコードB2からE2までのAVデータと、File003のうちの、非破壊編集結果に用いられているタイムコードB3からE3までのAVデータも、２つに分断されて光ディスク３２に記録されている。
【００３６】
ここで、上述のような１つのファイルを構成するAVデータの分断は、例えば、光ディスク３２に対するデータの書き込みと消去が繰り返されることによって生じやすくなる。
【００３７】
次に、図３は、図２の非破壊編集結果が得られる場合に作成されるプレイリストを示している。
【００３８】
プレイリストにおいては、非破壊編集結果を構成するAVデータのシーケンスを特定する情報が記述される。図３のプレイリストにおいては、その最左欄に、AVデータのシーケンスの再生順序を表す数字が記述され、左から２番目の欄に、AVデータのシーケンスを有するファイルを特定する情報としてのファイル名が記述されている。さらに、図３のプレイリストにおいては、その左から３番目の欄に、AVデータのシーケンスの先頭のタイムコード（IN点）が記述され、最右欄に、そのAVデータのシーケンスの終わりのタイムコード（OUT点）が記述されている。
【００３９】
以上のようなプレイリストにしたがい、AVデータを再生することで、図２に示した非破壊編集結果としてのAVデータのシーケンスが再生される。
【００４０】
ここで、例えば、いま、光ディスク３２上のファイルを管理するファイルシステムとして、例えば、UDF(Universal Disk Format)を採用することとすると、UDFでは、光ディスク３２の記録領域が、例えば、構造体であるアロケーションディスクリプタ(Allocation Descriptor)のリストによって管理される。
【００４１】
即ち、いま、光ディスク３２において、連続したデータが記録された連続した記録領域（連続した論理ブロック）を、エクステント(Extent)と呼ぶこととすると、１つのエクステントは、１つのアロケーションディスクリプタによって管理され、各アロケーションディスクリプタは、そのアロケーションディスクリプタが管理するエクステントの長さ（エクステント長(Extent Length））と、エクステントの先頭の位置（エクステント位置(Extent Position)）とをメンバ（構造体のメンバ）として有する。
【００４２】
エクステント長は、例えば、そのエクステントを構成する論理ブロックの数で表され、エクステント位置は、例えば、そのエクステントを構成する先頭の論理ブロックのLBNで表される。
【００４３】
上述の図２においては、ファイルFile001のタイムコードB1からE1までの３つに分断されているAVデータのうちの１つ目のAVデータが、LBNが１００から１０３の４つの連続した論理ブロックに、２つ目のAVデータが、LBNが１５２から１５４の３つの連続した論理ブロックに、３つ目のAVデータが、LBNが２０８から２１３の６つの連続した論理ブロックに、それぞれ記録されているが、この場合のファイルFile001のタイムコードB1からE1までのAVデータについてのアロケーションディスクリプタのリストは、図４に示すようになる。
【００４４】
図４の最上行のアロケーションディスクリプタによれば、LBNが１００の論理ブロックを先頭とする４つの連続した論理ブロックに、AVデータが記録されていることが分かる。また、上から２行目のアロケーションディスクリプタによれば、LBNが１５２の論理ブロックを先頭とする３つの連続した論理ブロックに、AVデータが記録されており、さらに、上から３行目のアロケーションディスクリプタによれば、LBNが２０８の論理ブロックを先頭とする６つの連続した論理ブロックに、AVデータが記録されていることが分かる。
【００４５】
上述のように、非破壊編集結果を構成するAVデータが分断されて光ディスク３２に記録されている場合には、その分断されている部分に亘るAVデータを、光ディスク３２から読み出すときにシークが発生し、前述したように、そのシークの時間が大であると、光ディスク３２からのAVデータの読み出しが、そのリアルタイムでの再生に間に合わず、再生が途切れることになる。即ち、図１のディスク装置において、シークが行われている間に、バッファ２０にバッファリングされたAVデータの読み出しが終了することにより、バッファ２０がアンダーフローするまでに、いま再生すべきAVデータの光ディスク３２からの読み出しを行うことができないと、リアルタイム再生が途切れることになる。
【００４６】
そこで、バッファ２０のアンダーフローを防止するため、非破壊編集結果の再生の開始前に、非破壊編集結果の再生開始直後のAVデータを、光ディスク３２から先に読み出し、これにより、ある程度のデータ量のAVデータを、バッファ２０にバッファリングしておく先読みの方法がある。
【００４７】
しかしながら、先読みの方法は、AVデータの再生の開始前に、AVデータを光ディスク３２から読み出して、バッファ２０にバッファリングするので、そのバッファリングが行われている間、AVデータの再生開始が指令されてから、実際に、AVデータの再生が開始されるまでに、バッファリングするAVデータのデータ量に応じた遅延が生じる。いま、この遅延に許容されている時間を、再生遅延許容時間というものとすると、ディスク装置の仕様やユーザの要求によって、再生遅延許容時間が制限されている場合には、十分なデータ量のAVデータをバッファリングすることができず、再生のリアルタイム性が保証されないことになる。また、仮に、再生遅延許容時間が制限されていない場合であっても、バッファ２０のバッファサイズが十分でないときには、やはり、十分なデータ量のAVデータをバッファリングすることができず、再生のリアルタイム性が保証されないことになる。
【００４８】
さらに、先読みの方法では、AVデータが、その再生の開始前に、バッファ２０にバッファリングされるだけであるため、バッファ２０に、そのバッファサイズ分のデータが記憶された後（バッファ２０がオーバーフローした後（オーバーフロー直前の状態となった後））に、バッファ２０がアンダーフローする場合は、そのアンダーフローによって再生が途切れることを防止することができない。
【００４９】
そこで、図１のディスク装置では、光ディスク３２に記録されたAVデータを再配置するコンパイルを行うことによって、再生のリアルタイム性を保証するようになっている。
【００５０】
次に、図１のディスク装置で行われるコンパイルについて説明するが、その前に、バッファ２０のオーバーフローとアンダーフローについて説明する。
【００５１】
図５は、光ディスク３２に分断されて記録されているAVデータを読み出す場合の、そのAVデータの読み出しデータ量（の累計量）の時間推移を示している。
【００５２】
即ち、図５は、光ディスク３２に分断されて記録されている３つのエクステント#1,#2,#3のAVデータを読み出す場合の読み出しデータ量の推移を示している。
【００５３】
光ディスク３２からのAVデータの読み出しデータ量は、実際に、AVデータの読み出しが行われている場合は、ディスクドライブ２によるデータの読み出しレートＲrの傾きをもって変化する。一方、あるエクステントのAVデータの読み出しの終了後、次のエクステントのAVデータの読み出しが開始されるときには、ディスクドライブ２において、あるエクステントから次のエクステントへのシークが発生し、その間は、AVデータの読み出しを行うことができないので、読み出しデータ量は変化しない（傾きが０となる）。そして、シークの終了後は、エクステントのAVデータの読み出しが開始されるので、読み出しデータ量は、再び、読み出しレートＲrの傾きをもって変化する。
【００５４】
ここで、図５では、AVデータの読み出しデータ量を、メディア読み出しラインＬrとして示してある。以下説明する図においても、同様である。なお、メディア読み出しラインＬrによって示される読み出しデータ量は、バッファ２０に入力するAVデータのデータ量（の累計量）でもある。
【００５５】
次に、図６を参照して、バッファ２０がオーバーフローする場合とアンダフローする場合について説明する。
【００５６】
図６において、メディア読み出しラインＬrは、図５で説明したように、光ディスク３２からのAVデータの読み出しデータ量の推移を示しており、上述したように、ディスクドライブ２において、実際に、光ディスク３２からAVデータが読み出されている場合には、読み出しレートＲrの傾きで変化し、シークが発生している場合には、傾きが０となる。
【００５７】
また、図６において、リアルタイム再生ラインＬpは、AVデータの再生のリアルタイム性を確保するために、バッファ２０から出力されるべき最低限のデータ量（の累計量）の推移を表す。いま、再生遅延許容時間をＴwと表すとともに、AVデータの再生レートをＲpと表すこととすると、リアルタイム再生ラインＬpは、時間軸である横軸上の再生遅延許容時間Ｔwを始点として、再生レートＲpの傾きで変化していく。
【００５８】
なお、再生遅延許容時間Ｔwにおける、メディア読み出しラインＬrによって表される読み出しデータ量は、上述の先読みの方法によって、AVデータの再生前にバッファ２０にバッファリングされるAVデータのデータ量であり、図６では、このデータ量を、先読みバッファ量ＳBと示してある。
【００５９】
上述したように、リアルタイム再生ラインＬpは、AVデータの再生のリアルタイム性を確保するために、バッファ２０から出力されるべき最低限のデータ量を表すから、光ディスク３２からのAVデータの読み出しデータ量、即ち、メディア読み出しラインＬrが、リアルタイム再生ラインＬpを下回ることは、バッファ２０がアンダーフローすることを意味する。
【００６０】
即ち、先読みバッファ量ＳBは、再生遅延許容時間Ｔwの間に、光ディスク３２から、読み出しレートＲrで読み出されるAVデータのデータ量であるから、Ｔw×Ｒrとなる。但し、Ｔw×Ｒrが、バッファ２０のバッファサイズより大である場合には、先読みバッファ量ＳBは、バッファ２０のバッファサイズに制限される。
【００６１】
バッファ２０からのAVデータの読み出しが開始されると、バッファ２０に記憶されたAVデータのデータ量は、光ディスク３２からAVデータが読み出されてバッファ２０に供給されない限り減少していく。上述したように、シークが行われている間は、光ディスク３２からのAVデータの読み出しが行われないため、シーク時間が長いと、光ディスク３２からのAVデータの読み出しも長時間行われず、その間に、バッファ２０に記憶されたAVデータすべてが読み出される場合がある。これにより、バッファ２０のアンダーフローが発生する。
【００６２】
図６において、バッファ上限ラインＬupは、バッファ２０に入力することができるAVデータの最大のデータ量（の累計量）の推移を表す。いま、バッファ２０のバッファサイズをＢと表すこととすると、バッファ上限ラインＬupは、リアルタイム再生ラインＬpをバッファサイズＢだけ上方に移動したラインに一致する。従って、バッファ上限ラインＬupは、リアルタイム再生ラインＬpと同様に、再生レートＲpの傾きで変化し、また、リアルタイム再生ラインＬpとの差は、常に、バッファサイズＢとなる。
【００６３】
上述したように、バッファ上限ラインＬupは、バッファ２０に入力することができるAVデータの最大のデータ量を表すから、光ディスク３２からのAVデータの読み出しデータ量、即ち、メディア読み出しラインＬrが、バッファ上限ラインＬupを上回ることは、バッファ２０がオーバーフローすることを意味する。
【００６４】
即ち、光ディスク３２に記録されたAVデータをリアルタイムで再生するには、AVデータの読み出しが、その再生に間に合うようにするため、読み出しレートＲrが、再生レートＲpよりも大である必要があり、従って、読み出しレートＲrの傾きで変化するメディア読み出しラインＬrは、再生レートＲpで変化するバッファ上限ラインＬupを追い越す場合がある。つまり、メディア読み出しラインＬrとリアルタイム再生ラインＬpとの差が、バッファサイズＢを越える場合がある。これにより、バッファ２０のオーバーフローが発生する。
【００６５】
バッファ２０のアンダーフローやオーバーフローは、AVデータのリアルタイムでの再生を妨げることとなるので、これを回避する必要がある。
【００６６】
そこで、まず、図７を参照して、バッファ２０のオーバーフローを回避する方法について説明する。
【００６７】
バッファ２０のオーバーフローは、光ディスク３２からのAVデータの読み出し量が大であることに起因するから、光ディスク３２からのAVデータの読み出しを停止することによって、つまり、ディスクドライブ２において、いわゆる回転待ち（トラックジャンプ）を行い、これにより、光ディスク３２からのAVデータの読み出しを遅らせることによって回避することができる。
【００６８】
即ち、バッファ２０のオーバーフローは、メディア読み出しラインＬrが、バッファ上限ラインＬupを上回った状態である。従って、図７に示すように、メディア読み出しラインＬrが、バッファ上限ラインＬupを上回らないように、光ディスク３２からのAVデータの読み出しを遅らせることによって、バッファ２０のオーバーフローを回避することができる。
【００６９】
なお、図７においては、バッファ２０がオーバーフローしそうになった時点（オーバーフロー直前）で、ディスクドライブ２において回転待ちが行われ、これにより、メディア読み出しラインＬrの一部の傾きが、バッファ上限ラインＬupと同一の再生レートＲpとなっている。但し、メディア読み出しラインＬrの一部の傾きは、実際に、再生レートＲpとなっているわけではなく、図７に拡大して示すように、読み出しレートＲrでの変化と回転待ちとが繰り返されることによって、いわば実質的に、再生レートＲpとなっている。
【００７０】
ところで、光ディスク３２からのAVデータの読み出しを遅らせることによって、バッファ２０のオーバーフローを回避した場合、上述したように、メディア読み出しラインＬrの一部の傾きが、実質的に、読み出しレートＲrよりも低い再生レートＲpとなるため、その後のメディア読み出しラインＬrは、図７に示すように、元のメディア読み出しラインＬrを右方向に移動したようなものとなる。
【００７１】
このように、メディア読み出しラインＬrが右方向に移動した場合、その移動後のメディア読み出しラインＬrが、リアルタイム再生ラインＬpを下回り、バッファ２０がアンダーフローすることがある。
【００７２】
上述した回転待ちによるオーバーフローの回避方法は、バッファ２０に、そのバッファサイズＢのAVデータが記憶された場合に、光ディスク３２からのAVデータの読み出しレートＲrを、実質的に再生レートＲpに等しくして、バッファ２０に記憶されるAVデータのデータ量を、バッファサイズＢに維持するものであるから、バッファ２０には、バッファリングすることができる最大のデータ量のAVデータが記憶される。
【００７３】
従って、そのような最大のデータ量のAVデータがバッファ２０に記憶された後に生じるアンダーフローは、基本的には回避することができない。
【００７４】
即ち、最大のデータ量のAVデータがバッファ２０に記憶された後に、アンダーフローが生じるということは、そのバッファ２０に記憶されたAVデータだけでは賄いきれない時間のシークが発生しているということであり、この場合にリアルタイム再生を行うには、例えば、バッファ２０のバッファサイズＢを大にする必要がある。
【００７５】
以上から、光ディスク３２に記録されたAVデータをリアルタイムで再生することができるかどうかのリアルタイム再生可否判定は、バッファ２０のアンダーフローが発生するかどうか（バッファ２０のオーバーフローが発生する場合には、そのオーバーフローの回避後にアンダーフローが発生するかどうか）を判定することによって行うことができる。
【００７６】
アンダーフローが発生するかどうかは、メディア読み出しラインＬr、リアルタイム再生ラインＬp、およびバッファ上限ラインＬupから作図的に判定することができる。
【００７７】
そして、メディア読み出しラインＬr、リアルタイム再生ラインＬp、およびバッファ上限ラインＬupは、例えば、図８に示すように、連続したAVデータが記録されたエクステント#nの再生時間Tp(n)[sec(second)]、あるエクステント#nからその次に再生すべきエクステント#n+1までの論理ブロック数換算での距離L(n)、再生レートＲp[Mbps(Mega bit per second)]、再生遅延許容時間Ｔw[sec]、バッファサイズＢ[bit]、読み出しレートＲr[Mbps]、および距離L(n)をシークするのに要するシーク時間Fs(L(n))[sec]から作図することができる。
【００７８】
即ち、メディア読み出しライン（オーバーフローが発生する場合には、そのオーバーフローの回避後のメディア読み出しライン）Ｌrは、図８に示すように、エクステント#nの再生時間Tp(n)と再生レートＲpから求められるエクステント#nのデータ量Tp(n)×Ｒp、読み出しレートＲr、エクステント#nからエクステント#n+1にシークするのに要するシーク時間Fs(L(n))、およびバッファ上限ラインＬupから求めることができる。また、リアルタイム再生ラインＬpは、再生遅延許容時間Ｔwと再生レートＲpから求めることができる。さらに、バッファ上限ラインＬupは、再生遅延許容時間Ｔw、再生レートＲp、およびバッファサイズＢ、あるいは、リアルタイム再生ラインＬpおよびバッファサイズＢから求めることができる。
【００７９】
なお、エクステント#nの再生時間Tp(n)と、エクステント#nからエクステント#n+1までの距離L(n)は、プレイリストから得ることができる。また、再生レートＲp、再生遅延許容時間Ｔw、およびバッファサイズＢは、ディスク装置に要求される仕様、あるいはユーザの要求によって決まるデータである。また、読み出しレートＲrおよびシーク時間Fs(L(n))は、ディスク装置の性能によって決まるデータである。
【００８０】
ここで、距離L(n)をシークするのに要するシーク時間Fs(L(n))を表す関数Fs()は、上述したシステム情報の１つであるシーク時間関数である。
【００８１】
図１のディスク装置において、プレイリストは、データ配置情報抽出部１９において取得される。また、再生レートＲp、再生遅延許容時間Ｔw、バッファサイズＢ、読み出しレートＲr、およびシーク時間関数Fs()は、システム情報として、システム情報記憶部１４に記憶されている。
【００８２】
図１のディスク装置では、リアルタイム再生可否判定部１３において、エクステント#nの再生時間Tp(n)、エクステント#nからエクステント#n+1までの距離L(n)、再生レートＲp、再生遅延許容時間Ｔw、バッファサイズＢ、読み出しレートＲr、およびシーク時間Fs(L(n))を用いて、メディア読み出しラインＬr、リアルタイム再生ラインＬp、およびバッファ上限ラインＬupが求められ、さらに、これらのメディア読み出しラインＬr、リアルタイム再生ラインＬp、およびバッファ上限ラインＬupに基づき、リアルタイム再生可否判定が行われる。
【００８３】
図１のディスク装置は、リアルタイム再生可否判定によって、AVデータのリアルタイム再生をすることができないとの判定結果を得た場合、即ち、バッファ２０にアンダーフローが生じる場合、光ディスク３２に記録されたAVデータを再配置するコンパイルを行うことによって、再生のリアルタイム性を確保する。
【００８４】
即ち、アンダーフローは、図９に示すように、光ディスク３２からのAVデータの読み出しが、あるエクステント#nから次に再生されるべきエクステント#n+1に移行する際に生じるシークのシーク時間が大であることや、シークが頻発することに起因して発生する。従って、図９に示すように、例えば、エクステント#nからエクステント#n+1への読み出しの移行時に、シークが発生しなければ、アンダーフローを回避することができる。
【００８５】
そこで、図１のディスク装置は、複数のエクステントが、その再生順に連続的に並ぶように、光ディスク３２上に再配置（コンパイル）する。
【００８６】
ここで、エクステントのコンパイルが行われた場合、そのコンパイルされたエクステントの読み出しの終了後、次に再生すべきエクステントを読み出す必要があるが、その読み出しの移行時に、シークが発生する。いま、このシークを、復帰シークというものとすると、エクステントのコンパイルは、図９に示すように、復帰シーク直前のバッファ２０に、復帰シークに要するシーク時間の間の再生を賄うことができるだけのデータ量のAVデータが記憶されるように行う必要がある。
【００８７】
また、コンパイルは、バッファ２０のアンダーフローを回避した上で、そのコンパイルに要するコンパイル所要時間と、エクステントが再配置される光ディスク３２上の再配置領域とができるだけ小になるように行うのが望ましい。
【００８８】
次に、図１０は、光ディスク３２上のエクステントのコンパイルが行われる様子を示している。なお、図１０では、左から右方向が、光ディスク３２に対するデータの読み書き方向となっている。
【００８９】
図１０においては、４つのエクステント#1,#2,#3,#4が、読み書き順で、エクステント#1,#4,#2,#3の順番で、光ディスク３２に記録されている。また、エクステント#1と#4との間には、空き領域#1が存在し、エクステント#4と#2との間には、空き領域#2、欠陥領域、および空き領域#3が存在している。さらに、エクステント#2と#3との間には、空き領域#4が存在している。なお、エクステントの再生順は、エクステント#1,#2,#3,#4である。
【００９０】
例えば、光ディスク３２に対して、データの書き込みと削除が繰り返されている場合や、光ディスク３２に欠陥が存在する場合は、光ディスク３２上の空き領域は、図１０に示したように、光ディスク３２上に分断した状態で存在する。
【００９１】
いま、例えば、エクステント#2と#3をコンパイルの対象とし、そのエクステント#2と#3を再配置する記録領域（再配置領域）として、空き領域#3が選択されたものとすると、そのコンパイル結果は、図１０に示すようになる。
【００９２】
なお、コンパイルは、シークの抑制を目的とするため、連続して再生されるエクステント#2と#3は、その読み出し時にシークが発生しないように再配置する必要がある。即ち、エクステント#2と#3は、その再生順に読み出しが連続して行われるように再配置する必要があり、従って、再配置領域となる空き領域は、そのようにエクステント#2と#3を配置することができるだけの記録領域である必要がある。図１０では、光ディスク３２上に分断されて存在する空き領域#1乃至#4の中から、エクステント#2と#3を連続して配置することができる大きさの空き領域#3が再配置領域として選択され、その再配置領域に、エクステント#2と#3が連続して再配置されている。
【００９３】
ここで、非破壊編集によって得られるエクステントは、例えば、内容的に纏まった画像や音声のAVデータであるため、コンパイルにあたって、エクステントは分割せずに再配置するものとする。
【００９４】
図１０において、エクステント#1,#2,#3,#4を、その順番で再生する場合、コンパイル前においては、エクステント#1が読み出され、その後、エクステント#1から#2にシークし、エクステント#2が読み出される。さらに、エクステント#2から#3にシークし、エクステント#3が読み出される。そして、エクステント#3から#4にシークし、エクステント#4が読み出される。
【００９５】
以上のように、コンパイル前は、エクステント#1から#2へのシーク#1、エクステント#2から#3へのシーク#2、エクステント#3から#4へのシーク#3の、合計で３回のシークが発生する。
【００９６】
一方、コンパイル後は、エクステント#1が読み出され、その後、エクステント#1から#2にシークし、エクステント#2が読み出される。さらに、エクステント#2に続けて配置されているエクステント#3がシークなしで読み出され、エクステント#3から#4にシークし、エクステント#4が読み出される。
【００９７】
以上のように、コンパイル後は、エクステント#1から#2へのシーク#4と、エクステント#3から#4へのシーク#5の、合計で２回のシークしか発生しておらず、シークの回数が抑制されている。さらに、図１０では、コンパイル後のエクステント#1から#2へのシーク#4は、コンパイル前のエクステント#1から#2へのシーク#1より、距離が短くなっており、さらに、コンパイル後のエクステント#3から#4へのシーク#5も、コンパイル前のエクステント#3から#4へのシーク#3より、距離が短くなっている。従って、コンパイル後は、コンパイル前よりシーク時間も短くなっている。
【００９８】
図１のディスク装置は、以上のようなコンパイルによって、AVデータのリアルタイムでの再生を保証する。従って、コンパイルにより生じるシークによって、リアルタイム再生が妨げられることがあってはならない。このため、コンパイルにあたっては、再配置領域へのシークが開始される開始点（以下、適宜、コンパイル開始点という）から、その再配置領域の先頭へのシーク（以下、適宜、移転シークという）が行われるときに、バッファ２０にアンダーフローが生じてはならないことと、再配置領域におけるエクステントの読み出しが終了する終了点（以下、適宜、コンパイル終了点という）から、次に再生されるべきエクステントへのシーク（復帰シーク）が行われるときにも、バッファ２０にアンダーフローが生じてはならないことの２つが条件となる。
【００９９】
なお、図１０においては、コンパイル後のエクステント#1から#2へのシーク#4が移転シークであり、コンパイル後のエクステント#3から#4へのシーク#5が復帰シークである。
【０１００】
次に、コンパイルは、バッファ２０のアンダーフローを防止するために行うから、コンパイルを開始する開始点（コンパイル開始点）は、バッファ２０のアンダーフローが生じる時点よりも前でなければならない。また、バッファ２０のアンダーフローの直前に生じるオーバーフロー（の回避）の前に、コンパイルを行っても、そのオーバーフロー（の回避）によって、バッファ２０には、バッファサイズＢの（あるいは、それに近いデータ量の）AVデータがバッファリングされるから、コンパイルを行う効果はない。
【０１０１】
従って、コンパイル開始点は、図１１に示すように、バッファ２０のアンダーフローの直前に生じるオーバーフロー（の回避）が終了した後であり、かつ、バッファ２０のアンダーフローが生じる時点よりも前でなければならない。
【０１０２】
さらに、上述したように、移転シークにおいて、バッファ２０にアンダーフローが生じてはならないから、コンパイル開始点は、移転シークに要するシーク時間の間の再生を賄うことができるだけのAVデータが、バッファ２０に記憶されている時点である必要がある。
【０１０３】
そして、そのようなコンパイル開始点以降の複数のエクステントが、図１１に示すように、コンパイルの対象となる。
【０１０４】
いま、コンパイル開始点の候補として、図１２に示すように、コンパイル前のメディア読み出しラインＬrにおいて、アンダーフローが生じる時点の直前に生じるオーバーフロー（の回避）が終了してから、アンダーフローが生じる時点までの範囲の中の、いわば左肩となっている点Ａ，Ｂ，Ｃを採用することとすると、コンパイル所要時間を短くするために、コンパイルの対象とするエクステントのデータ量をなるべく抑制するという観点からは、オーバーフロー（の回避）の終了時点の直後の点Ａよりは、その後の点Ｂを、コンパイル開始点とした方が望ましく、さらに、点Ｂよりは、その後の点Ｃを、コンパイル開始点とした方が望ましい。
【０１０５】
このように、コンパイルの対象とするエクステントのデータ量をなるべく抑制するには、オーバーフロー（の回避）の終了時点から、より後方の点（再生時刻が後の点）、つまり、アンダーフローが生じる時点により近い点を、コンパイル開始点とするのが望ましいが、コンパイル開始点が、アンダーフローが生じる時点に近すぎると、移転シークに要するシーク時間の間の再生を賄うことができるだけのAVデータが、バッファ２０に存在せず、移転シークによって、アンダーフローが生じることになる。
【０１０６】
従って、コンパイル開始点は、オーバーフロー（の回避）の終了時点からなるべく後の、移転シークに要するシーク時間の間の再生を賄うことができるだけのAVデータがバッファ２０に存在する点とするのが望ましい。その結果、図１２では、コンパイル開始点の候補である点Ａ，Ｂ，Ｃのうちの点Ｂが、コンパイル開始点とされる。
【０１０７】
なお、移転シークに要するシーク時間は、基本的に、その移転シークが開始される点から再配置領域までの距離に依存し、従って、移転シークが開始される点（位置）によって異なる。
【０１０８】
次に、図１３および図１４を参照して、コンパイルによってエクステントを再配置する再配置領域について説明する。
【０１０９】
コンパイルが行われると、再配置領域に再配置されたエクステントの読み出しが終了した後に、次に再生すべきエクステントへの復帰シークが行われる。従って、再配置領域のサイズ（再配置領域に再配置するエクステントのサイズ）は、復帰シークに要するシーク時間の間の再生を賄うことができるだけのAVデータがバッファ２０に存在している状態で、移転シークが行われるように決定する必要がある。
【０１１０】
いま、復帰シークに要する最長シーク時間をＴsmaxとするとともに、その最長シーク時間Ｔsmaxの移転シークが発生したときに、再生を途切れないようにするためにバッファ２０に記憶されていなければならないAVデータのデータ量を、最低保証バッファ量Ｂminというものとすると、最低保証バッファ量Ｂminは、最長シーク時間Ｔsmaxと再生レートＲpから、次式により求めることができる。
【０１１１】
Ｂmin＝Ｔsmax×Ｒp・・・（１）
【０１１２】
なお、光ディスク３２において、例えば、AVデータの配置位置が、ある範囲のLBNで表される特定の記録領域に限定されている場合、最長シーク時間Ｔsmaxは、その特定の記録領域の最小のLBNの論理ブロックから、最大のLBNの論理ブロックへシークするのに要する時間である。また、光ディスク３２において、例えば、AVデータの配置位置が、特に制限されておらず、その記録領域のいずれにも、AVデータが配置される可能性がある場合、最長シーク時間Ｔsmaxは、いわゆるフルストロークのシークに要する時間である。
【０１１３】
一方、コンパイルによって再配置領域に再配置されたエクステントを読み出すことによって、バッファ２０にバッファリングしなければならないAVデータのデータ量が最大となるケースは、図１３に示すように、再配置領域への移転シークの完了時に、バッファ２０のデータ量が０となっており、かつ、復帰シークが、最長シーク時間Ｔsmaxを要するシークである場合であり、このデータ量を、連続データ最低保証長Ｓdminとする。さらに、連続データ最低保証長ＳdminだけのAVデータを読み出す間に再生されるAVデータの再生時間を、最低保証再生時間Ｔpminというものとすると、最低保証バッファ量Ｂmin、最低保証再生時間Ｔpmin、読み出しレートＲr、および再生レートＲpには、式Ｂmin＝Ｔpmin×（Ｒr−Ｒp）で表される関係があるから、これにより、最低保証再生時間Ｔpminは、次式で表すことができる。
【０１１４】
Ｔpmin＝Ｂmin／（Ｒr−Ｒp）・・・（２）
【０１１５】
また、連続データ最低保証長Ｓdminは、最低保証再生時間Ｔpminと読み出しレートＲrから、次式により求めることができる。
【０１１６】
Ｓdmin＝Ｔpmin×Ｒr・・・（３）
【０１１７】
式（１）と（２）により、式（３）の連続データ最低保証長Ｓdminは、次式に示すように、最長シーク時間Ｔsmax、再生レートＲp、および読み出しレートＲrから求めることができる。
【０１１８】
Ｓdmin＝Ｔsmax×Ｒr×Ｒp／（Ｒr−Ｒp）・・・（４）
【０１１９】
復帰シークにおいてアンダーフローが発生するのを防止するには、最悪のケース、即ち、移転シーク後のバッファ２０の記憶データ量が０であり、復帰シークに最長シーク時間Ｔsmaxだけ要するケースを考慮して、再配置領域のサイズを、式（４）で求められる連続データ最低保証長Ｓdmin以上とする必要がある。
【０１２０】
なお、復帰シークにおいてアンダーフローが発生するのを防止するには、再配置領域のサイズを、連続データ最低保証長Ｓdminとすれば十分であるが、ここでは、再配置領域に再配置されるエクステントを分割しないこととしているので、図１４に示すように、再配置領域に再配置されるエクステントの合計のデータ量が、連続データ最低保証長Ｓdminに一致しないことが多い。そこで、ここでは、連続データ最低保証長Ｓdminに配置することができる、コンパイル開始点のエクステントからの最大数のエクステントと、その次に再生されるべきエクステントとの合計のサイズを、再配置領域に必要とされる最低保証長Ｓemptyとして、その最低保証長Ｓemptyの再配置領域に、エクステントを配置することとする。即ち、コンパイルにあたっては、最低保証長Ｓempty以上のサイズの連続した空き領域のうちの、最低保証長Ｓemptyの記録領域が、再配置領域とされ、エクステントが再配置される。
【０１２１】
次に、図１５乃至図１８を参照して、コンパイルを終了する終了点（コンパイル終了点）の決定方法について説明する。
【０１２２】
図１５に示すように、あるコンパイル開始点からコンパイルを開始することによって、シークを抑制し、コンパイルを行わない場合に生じるアンダーフローを回避することができる。
【０１２３】
ところで、コンパイルは、エクステントを連続するように再配置するものであるから、コンパイルの対象とするエクステントを多くしていくと、図１５に示すように、バッファ２０におけるAVデータの記憶量は次第に増えていき、最終的には、オーバーフローする（オーバーフローを回避する回転待ちが行われる）ことになる。そして、コンパイルは、シークによるバッファ２０のアンダーフローを防止することを目的として、シーク時間の間の再生を賄うことができるデータ量のAVデータをバッファ２０にバッファリングするために、エクステントを再配置するものであるから、バッファ２０が、それ以上データを記憶することができないオーバーフロー状態となった後も、コンパイルを続行しても、コンパイルを行う意義はない。
【０１２４】
従って、コンパイルは、そのコンパイルによって、バッファ２０がオーバーフローする時点まで行えば十分であり、コンパイル前のアンダーフローが生じる時点まで行う必要は、必ずしもない。
【０１２５】
そこで、いま、図１６に示すように、コンパイル終了点の候補として、コンパイル開始点から、コンパイルによりオーバーフローが発生する時点までの間の点Ａ，Ｂ，Ｃ，Ｄを考える。なお、点Ａ，Ｂ，Ｃ，Ｄは、その順番で、コンパイル開始点から後方に離れた点になっている。
【０１２６】
図１６において、コンパイル開始点に最も近い点Ａをコンパイル終了点とした場合、復帰シークのシーク時間の間の再生を賄うことができるだけのデータ量のAVデータがバッファ２０にバッファリングされず、復帰シーク時に、再生が途切れることになる。
【０１２７】
また、図１６において、コンパイル開始点に２番目に近い点Ｂ、３番目に近い点Ｃ、または最も遠い点Ｄを、コンパイル終了点とした場合、復帰シークのシーク時間の間の再生を賄うことができるだけのデータ量のAVデータがバッファ２０にバッファリングされており、復帰シーク時に、再生が途切れることはない。なお、復帰シークに要するシーク時間は、図１２で説明した移転シークにおける場合と同様に、復帰シークが開始される点（位置）によって異なる。
【０１２８】
以上から、コンパイル終了点としては、点Ａ乃至Ｄのうちの点Ｂ，Ｃ，Ｄを採用することができる。
【０１２９】
ところで、コンパイル終了点においては、その最低限の条件として、復帰シークのシーク時間の間の再生を賄うことができるだけのデータ量のAVデータがバッファ２０にバッファリングされていれば良いから、かかる観点からすれば、点Ｂ乃至Ｄのうちのいずれを、コンパイル終了点としてもかまわない。
【０１３０】
しかしながら、コンパイル所要時間をなるべく短くするには、コンパイルの対象とするエクステントの量をなるべく抑制するのが望ましい。また、光ディスク３２上の空き領域の有効活用の観点からは、連続した空き領域に、できるだけ多くのエクステントを再配置すること、即ち、コンパイルの対象とするエクステントの量を、連続した空き領域のサイズになるべく近くするのが望ましい。
【０１３１】
そこで、コンパイルの対象とするエクステントの量をなるべく抑制するように、コンパイル終了点を決定する方式を、第１の方式というものする。また、コンパイルの対象とするエクステントの量を、連続した空き領域のサイズになるべく近くするように、コンパイル終了点を決定する方式を、第２の方式というものとする。
【０１３２】
第１の方式によれば、図１６における点Ｂ乃至Ｄのうちの、コンパイル開始点から最も近い点Ｂが、コンパイル終了点として決定される。一方、第２の方式によれば、図１６における点Ｂ乃至Ｄのうちの、コンパイル開始点から最も遠い点Ｄが、コンパイル終了点として決定される。
【０１３３】
なお、図１６において、点Ｄは、バッファ２０のオーバーフローが生じる点となっており、上述したように、オーバーフロー状態となった後も、コンパイルを続行しても、コンパイルを行う意義はない。このため、第２の方式では、コンパイルの対象とするエクステントの量が、連続した空き領域のサイズにならなくても、オーバーフローが生じる時点となったときは、その時点が、コンパイル終了点とされる。
【０１３４】
また、第１と第２の方式のいずれによってコンパイル終了点を決定した場合でも、復帰シークによって再生が途切れないだけのエクステントの再配置が完了した時点で、コンパイル終了点以前であっても、コンパイルを終了することができる。
【０１３５】
第１の方式によれば、コンパイルの対象とするエクステントの量が抑制されるので、ある１つの再配置領域に再配置されるエクステントの量が小さくなる。従って、コンパイル所要時間を短くすることができるが、図１７に示すように、光ディスク３２の空き領域に、小さな再配置領域が確保されていく結果、小さな空き領域が、いわば細切れ状になって無駄に残ることがあり得る。さらに、第１の方式では、再配置されるエクステントの量が小さいため、復帰シーク後にバッファ２０にバッファリングされているAVデータのデータ量も少なくなり、その後、アンダーフローが再度発生する可能性が高くなる。このため、再度、コンパイルが行われる可能性が高くなり、その結果、上述したように、光ディスク３２上に、小さな再配置領域が確保されていくのと相俟って、その小さな再配置領域が分散する。
【０１３６】
一方、第２の方式によれば、コンパイルの対象とするエクステントの量が、連続した空き領域のサイズになるべく近くされるので、第１の方式で生じる空き領域の無駄を防止することができる。さらに、第２の方式では、再配置されるエクステントの量が大きいため、復帰シーク後にバッファ２０にバッファリングされているAVデータのデータ量も多くなり、その後、アンダーフローが再度発生する可能性が低くなる。
【０１３７】
但し、第２の方式では、バッファ２０にバッファリングされているAVデータのデータ量が多いため、無駄なコンパイルが行われることがあり得る。
【０１３８】
即ち、第２の方式は、いわば、第１の方式によりコンパイル終了点が決定されたコンパイルに加えて、さらに、エクステントを追加して再配置するように、コンパイル終了点を決定するものである。従って、図１８に示すように、第１の方式によりコンパイル終了点を決定してコンパイルを行った後にオーバーフローが生じる場合は、第２の方式によりコンパイル終了点を決定してコンパイルを行った後も、必ず、オーバーフローが生じる。このように、第１の方式により行われたコンパイルの後にオーバーフローが生じるのであるから、第２の方式において、第１の方式により行われたコンパイルに加えて、さらに、エクステントを追加して再配置する必要はなかったということになる。
【０１３９】
次に、図１９のフローチャートを参照して、図１のディスク装置で行われるコンパイル処理について説明する。
【０１４０】
まず最初に、ステップＳ１において、リアルタイム再生可否判定部１３は、メディア読み出しラインＬr、リアルタイム再生ラインＬp、およびバッファ上限ラインＬupを求め、メディア読み出しラインＬrの先頭（時刻が０の時点）を、コンパイル開始点として決定し、ステップＳ２に進む。
【０１４１】
なお、ステップＳ１において、リアルタイム再生可否判定部１３は、バッファ２０のオーバーフローを回避した状態のメディア読み出しラインＬr（図７、図８）を求める。
【０１４２】
ステップＳ２では、リアルタイム再生可否判定部１３が、メディア読み出しラインＬrの、コンパイル開始点から時間の経過方向へのチェックを開始し、オーバーフロー（の回避）状態またはアンダーフロー状態を検出するか、あるいは、メディア読み出しラインＬrの最後までのチェックを完了すると、ステップＳ３に進む。
【０１４３】
ステップＳ３では、リアルタイム再生可否判定部１３が、ステップＳ２でチェックを開始したメディア読み出しラインＬrについて、オーバーフロー状態またはアンダーフロー状態を検出したかどうかと、メディア読み出しラインＬrの最後までのチェックを完了したかどうかを判定する。
【０１４４】
ステップＳ３において、メディア読み出しラインＬrについて、オーバーフロー状態を検出したと判定された場合、ステップＳ４に進み、リアルタイム再生可否判定部１３は、そのオーバーフロー（の回避）が終了した時点を、コンパイル開始点として、新たに決定（選択）する。そして、ステップＳ２に戻り、以下、同様の処理が繰り返される。
【０１４５】
また、ステップＳ３において、メディア読み出しラインＬrについて、アンダーフロー状態を検出したと判定された場合、即ち、現在の光ディスク３２におけるエクステントの記録状態では、AVデータをリアルタイムで再生することができない場合、ステップＳ５に進み、コンパイルシミュレーション部１５は、再配置領域となる連続した空き領域を予約する処理を行い、ステップＳ６に進む。
【０１４６】
ステップＳ６では、コンパイルシミュレーション部１５が、ステップＳ５の処理において再配置領域となる条件を満たす連続した空き領域を、光ディスク３２の空き領域から検出することができたかどうかを判定し、そのような空き領域を検出することができなかったと判定した場合、ステップＳ７に進む。ステップＳ７では、コンパイルシミュレーション部１５は、リアルタイム再生を保証するコンパイルを行うことができない旨を表す異常終了メッセージを、システム制御部１２を介して、ユーザI/F１１から出力（表示）し、処理を終了する。
【０１４７】
また、ステップＳ６において、ステップＳ５の処理において再配置領域となる条件を満たす連続した空き領域を、光ディスク３２の空き領域から検出することができたと判定された場合、ステップＳ８に進み、コンパイルシミュレーション部１５は、その空き領域に、エクステントを再配置しながら、エクステント終了点を、上述の第１または第２の方式により決定するシミュレーションを行い、ステップＳ９に進む。
【０１４８】
ステップＳ９では、コンパイルシミュレーション部１５は、ステップＳ８でエクステントを再配置した結果残った空き領域を開放し、ステップＳ１０に進む。ステップＳ１０では、コンパイルシミュレーション部１５は、ステップＳ８で決定したコンパイル終了位置を、コンパイル開始位置として新たに決定（選択）する。そして、ステップＳ２に戻り、以下、同様の処理が繰り返される。
【０１４９】
ここで、ステップＳ８においてエクステントの再配置が行われると、その再配置後のメディア読み出しラインＬrは、再配置前のものから変化する。このため、ステップＳ１０では、エクステントの再配置後のメディア読み出しラインＬrが求められ、その後、そのメディア読み出しラインＬrについて、コンパイル開始点が決定される。
【０１５０】
一方、ステップＳ３において、メディア読み出しラインＬrの最後までのチェックが完了したと判定された場合、ステップＳ１１に進み、コンパイルシミュレーション部１５は、リアルタイム再生を保証するコンパイルを行うことができる旨を表す正常終了メッセージを、システム制御部１２を介して、ユーザI/F１１から出力（表示）し、ステップＳ１２に進む。
【０１５１】
ステップＳ１２では、コンパイルシミュレーション部１５が、ステップＳ８で行ったエクステントを再配置するシミュレーションのシミュレーション結果を表すシミュレーション結果情報を、シミュレーション結果記憶部１６に書き込み、ステップＳ１３に進む。
【０１５２】
ステップＳ１３では、コンパイルシミュレーション部１５が、シミュレーション結果記憶部１６におけるシミュレーション結果情報に基づき、実際にコンパイルを行うのに要するコンパイル所要時間の予測値を計算する。
【０１５３】
ここで、コンパイルにおいて、エクステントを再配置領域にコピーする場合は、例えば、コンパイル対象のエクステントのトータルなサイズをディスクドライブ２の読み出しレートＲrと書き込みレートそれぞれで除算した除算結果を加算することによって、コンパイル所要時間の予測値を計算することができる。
【０１５４】
また、コンパイルにおいて、エクステントを再配置領域に移動する場合は、例えば、コンパイル対象のエクステントのトータルなサイズをディスクドライブ２の読み出しレートＲr、書き込みレート、消去レートそれぞれで除算した除算結果を加算することによって、コンパイル所要時間の予測値を計算することができる。なお、ディスクドライブ２におけるデータの消去は、一般に、光ディスク３２上のデータを実際に消去するのではなく、ファイルシステムで管理されている、光ディスク３２上のデータに関する情報を書き換えることによって行われる。従って、光ディスク３２におけるデータの消去は、データが読み書きされるのに要する時間に比較して瞬時に行われるので、エクステントを再配置領域に移動する場合のコンパイル所要時間の予測値の計算は、消去レートを考慮せずに（消去に要する時間を０として）行っても、それほど大きな問題はない。
【０１５５】
コンパイルシミュレーション部１５は、ステップＳ１３においてコンパイル所要時間の予測値を計算すると、その予測値を、システム制御部１２を介して、ユーザI/F１１から出力（表示）し、ステップＳ１４に進む。ステップＳ１４では、コンパイル実行部１７が、シミュレーション結果情報記憶部１６に記憶されたシミュレーション結果情報を参照することにより、コンパイルシミュレーション部１５がステップＳ８で行ったエクステントを再配置するシミュレーションのシミュレーション結果が、実際に得られるように、光ディスク３２上のエクステントを実際に再配置するコンパイルを実行し、処理を終了する。
【０１５６】
次に、図２０のフローチャートを参照して、図１９のステップＳ５の処理の詳細について説明する。
【０１５７】
まず最初に、ステップＳ２１において、コンパイルシミュレーション部１５は、メディア読み出しラインＬrのコンパイル開始点から時間経過方向に向かって最初に現れるアンダーフロー状態の直前の左肩となっている点を、暫定的なコンパイル開始点（以下、適宜、暫定開始点という）として選択し、ステップＳ２２に進む。
【０１５８】
ここで、コンパイルシミュレーション部１５が、ステップＳ２１の処理を行うにあたっては、メディア読み出しラインＬrとコンパイル開始点が必要となるが、このメディア読み出しラインＬrとコンパイル開始点は、例えば、リアルタイム再生可否判定部１３からシステム制御部１２を介して、コンパイルシミュレーション部１５に供給されるようになっている。
【０１５９】
ステップＳ２２では、コンパイルシミュレーション部１５は、最低保証長Ｓempty（図１４）以上の光ディスク３２上の空き領域であり、かつ、その先頭の論理ブロック(LB)に、再生を途切れさせずに移転シークすることができる空き領域のうち、光ディスク３２上における、暫定開始点に対応する位置から最も近い連続した空き領域を検出し、ステップＳ２３に進む。
【０１６０】
ステップＳ２３では、コンパイルシミュレーション部１５が、ステップＳ２２において、最低保証長Ｓempty以上の光ディスク３２上の空き領域であり、かつ、その先頭の論理ブロックに、再生を途切れさせずに移転シークすることができる空き領域を検出することができたかどうかを判定する。ステップＳ２３において、ステップＳ２２で空き領域を検出することができなかったと判定された場合、即ち、最低保証長Ｓempty以上の光ディスク３２上の空き領域であり、かつ、その先頭の論理ブロックに、再生を途切れさせずに移転シークすることができる空き領域が存在しない場合、ステップＳ２４に進み、コンパイルシミュレーション部１５は、コンパイル開始点と、暫定開始点とが一致しているかどうかを判定する。
【０１６１】
ステップＳ２４において、コンパイル開始点と、暫定開始点とが一致していないと判定された場合、ステップＳ２５に進み、コンパイルシミュレーション部１５は、メディア読み出しラインＬrの現在の暫定開始点から、時間的に戻る方向に向かって最初に現れる左肩となっている点を、暫定開始点として、新たに選択し、ステップＳ２２に戻り、以下、同様の処理を繰り返す。
【０１６２】
また、ステップＳ２４において、コンパイル開始点と、暫定開始点とが一致すると判定された場合、即ち、あるオーバーフロー状態から次に現れるアンダーフロー状態までの間に、再生を途切れさせずに移転シークを行うことができるコンパイル開始点が存在しない場合、ステップＳ２６に進み、コンパイルシミュレーション部１５は、リアルタイムでの再生を行うことができない旨のシミュレーション結果を表すリアルタイム不可メッセージを、シミュレーション結果記憶部１６に、シミュレーション結果情報として書き込み、リターンする。
【０１６３】
ここで、シミュレーション結果記憶部１６におけるシミュレーション結果情報が、リアルタイム不可メッセージである場合には、図１９のステップＳ６において、再配置領域となる条件を満たす連続した空き領域を、光ディスク３２の空き領域から検出することができなかったと判定される。
【０１６４】
一方、ステップＳ２３において、ステップＳ２２で空き領域を検出することができたと判定された場合、即ち、最低保証長Ｓempty以上の光ディスク３２上の空き領域であり、かつ、その先頭の論理ブロックに、再生を途切れさせずに移転シークすることができる空き領域が存在し、ステップＳ２３において、そのような空き領域の中から、光ディスク３２上における、暫定開始点に対応する位置から最も近い連続した空き領域が検出された場合、ステップＳ２７に進み、コンパイルシミュレーション部１５は、現在の暫定開始点を、コンパイル開始点として選択し、ステップＳ２８に進む。
【０１６５】
ステップＳ２８では、コンパイルシミュレーション部１５は、ステップＳ２２で検出された空き領域、即ち、最低保証長Ｓempty以上の空き領域であり、かつ、その先頭の論理ブロックに、再生を途切れさせずに移転シークすることができる空き領域のうち、光ディスク３２上における、暫定開始点に対応する位置から最も近い空き領域を予約し（空き領域を仮想的に確保し）、リターンする。
【０１６６】
この場合、図１９のステップＳ６では、再配置領域となる条件を満たす連続した空き領域を、光ディスク３２の空き領域から検出することができたと判定される。
【０１６７】
ここで、ステップＳ２２において、光ディスク３２上における、暫定開始点に対応する位置から最も近い空き領域を検出することにより、移転シークに要するシーク時間が短くなるので、ステップＳ２７において、オーバーフロー（の回避）の終了時点から、より後方（時間的に後）の点が、コンパイル開始点として選択されることになる。また、ステップＳ２２において、最低保証長Ｓempty以上の空き領域を検出することにより、プレイリストにしたがって行われる再生において生じるシークの回数が抑制される。これにより、バッファ２０におけるAVデータのバッファリングが促進され、ディスク３２上に確保される再配置領域の全体のサイズを小さくする（節約する）ことができる。
【０１６８】
次に、図２１のフローチャートを参照して、図１９のステップＳ８の処理の詳細について説明する。
【０１６９】
なお、図１９のステップＳ８では、上述したように、エクステント終了点を、第１または第２の方式により決定する。
【０１７０】
そこで、まず最初に、図２１Ａのフローチャートを参照して、エクステント終了点を、第１の方式により決定する場合の図１９のステップＳ８の処理の詳細について説明する。
【０１７１】
まず最初に、ステップＳ３１において、コンパイルシミュレーション部１５は、コンパイル開始点の（直後の）エクステントを、図１９のステップＳ５で予約された空き領域（以下、適宜、再配置用空き領域という）に再配置する注目エクステントとして選択し、ステップＳ３２に進む。
【０１７２】
ステップＳ３２では、コンパイルシミュレーション部１５は、注目エクステントを、再配置用空き領域の先頭に（仮想的に）配置し、ステップＳ３３に進む。ステップＳ３３では、コンパイルシミュレーション部１５は、直前のステップＳ３２で再配置された注目エクステントの最後から、再生を途切れさせることなく復帰シークが可能であるかどうかを判定する。ステップＳ３３において、注目エクステントの最後から、再生を途切れさせることなく復帰シークを行うことができないと判定された場合、即ち、最後に再配置されたエクステントの最後から復帰シークを行うと、再生が途切れてしまう場合、ステップＳ３１に戻り、コンパイルシミュレーション部１５は、いま、注目エクステントとなっているエクステントの次に再生されるべきエクステントを、注目エクステントとして新たに選択し、ステップＳ３２に進む。ステップＳ３２では、コンパイルシミュレーション部１５は、注目エクステントを、再配置用空き領域の、前回の注目エクステントが配置された直後に（仮想的に）配置して、ステップＳ３３に進み、以下、同様の処理を繰り返す。
【０１７３】
一方、ステップＳ３３において、注目エクステントの最後から、再生を途切れさせることなく復帰シークを行うことができると判定された場合、即ち、最後に再配置されたエクステントの最後から復帰シークを行っても、再生が途切れない場合、ステップＳ３４に進み、コンパイルシミュレーション部１５は、再配置用空き領域に最後に配置したエクステントの最後を、コンパイル終了点として決定（選択）し、リターンする。
【０１７４】
次に、図２１Ｂのフローチャートを参照して、エクステント終了点を、第２の方式により決定する場合の図１９のステップＳ８の処理の詳細について説明する。
【０１７５】
まず最初に、ステップＳ４１において、コンパイルシミュレーション部１５は、コンパイル開始点の（直後の）エクステントを、図１９のステップＳ５で予約された空き領域（再配置用空き領域）に再配置する注目エクステントとして選択し、ステップＳ４２に進む。
【０１７６】
ステップＳ４２では、コンパイルシミュレーション部１５は、注目エクステントを、再配置用空き領域の先頭に（仮想的に）配置し、ステップＳ４３に進む。ステップＳ４３では、コンパイルシミュレーション部１５は、再配置用空き領域に、注目エクステントとなっているエクステントの次に再生されるべきエクステントを配置することができるだけの領域が余っているかどうかを判定する。
【０１７７】
ステップＳ４３において、再配置用空き領域に、注目エクステントとなっているエクステントの次に再生されるべきエクステントを配置することができるだけの領域が余っていると判定された場合、ステップＳ４４に進み、コンパイルシミュレーション部１５は、いままでに再配置用空き領域に配置されたエクステントの読み出し中に、バッファ２０のオーバーフローが生じるかどうかを判定する。
【０１７８】
ステップＳ４４において、いままでに再配置用空き領域に配置されたエクステントの読み出し中に、バッファ２０のオーバーフローが生じないと判定された場合、ステップＳ４１に戻り、コンパイルシミュレーション部１５は、いま、注目エクステントとなっているエクステントの次に再生されるべきエクステントを、注目エクステントとして新たに選択し、ステップＳ４２に進む。ステップＳ４２では、コンパイルシミュレーション部１５は、注目エクステントを、再配置用空き領域の、前回の注目エクステントが配置された直後に（仮想的に）配置して、ステップＳ４３に進み、以下、同様の処理を繰り返す。
【０１７９】
一方、ステップＳ４３において、再配置用空き領域に、注目エクステントとなっているエクステントの次に再生されるべきエクステントを配置することができるだけの領域が余っていないと判定されるか、または、ステップＳ４４において、いままでに再配置用空き領域に配置されたエクステントの読み出し中に、バッファ２０のオーバーフローが生じると判定された場合、即ち、復帰シークに要するシーク時間の間の再生を途切れさせないだけのAVデータが、バッファ２０にバッファリングされるように、エクステントが再配置用空き領域に再配置された場合、ステップＳ４５に進み、コンパイルシミュレーション部１５は、再配置用空き領域に最後に配置したエクステントの最後を、コンパイル終了点として決定し、リターンする。
【０１８０】
以上のように、ディスク装置のバッファサイズＢや再生遅延許容時間Ｔwなどに応じて、AVデータのリアルタイム再生可否を判定し、リアルタイム再生ができない場合には、エクステントを選択して、連続した空き領域に再配置するようにしたので、再生のリアルタイム性を確保することができる。さらに、コンパイルに要するコンパイル所要時間や、エクステントが再配置される光ディスク３２上の再配置領域をできるだけ小にすることなどが可能となる。
【０１８１】
なお、図１９のステップＳ１３において、ユーザI/F１１から出力されるコンパイル所要時間の予測値は、バッファサイズＢや再生遅延許容時間Ｔwなどによって変化する。従って、例えば、ユーザI/F１１を操作することによって、バッファサイズＢや再生遅延許容時間Ｔwを変更することができる場合には、バッファサイズＢや再生遅延許容時間Ｔwと、コンパイル所要時間の予測値とのトレードオフを、ユーザに判断させることが可能となる。
【０１８２】
ここで、図１９では、ステップＳ１３において、コンパイル所要時間の予測値を出力した後、即座に、ステップＳ１４において、コンパイルを実行することとしたが、ステップＳ１３において、コンパイル所要時間の予測値を出力した後は、コンパイルを実行するかどうかの指令を、ユーザから受け付けるようにし、実行する旨の指令があった場合にのみ、コンパイルを実行するようにすることができる。
【０１８３】
次に、図２２は、本発明を適用したディスク装置の他の実施の形態の構成例を示している。なお、図中、図１における場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。即ち、図２２のディスク装置は、ディスクドライブ２に、記録媒体３３が新たに設けられている他は、図１における場合と同様に構成されている。
【０１８４】
図１の実施の形態においては、エクステントが、光ディスク３２の空き領域に再配置されるようになっているが、図２２の実施の形態では、エクステントが、光ディスク３２とは異なる（別の）記録媒体３３に再配置されるようになっている。
【０１８５】
ここで、記録媒体３３としては、光ディスクの他、HDや半導体メモリなどの、光ディスクに比較してシーク時間が十分小さい、あるいはシークが行われないものを採用することができる。この場合、上述の最長シーク時間Ｔsmax（図１３）が十分小さいか、あるいはほぼ０となるため、最低保証長Ｓemptyも十分小さくなり、エクステントの再配置のために使用される空き領域は小さなもので済むようになる。その結果、コンパイル終了点の決定方法として、第１の方式を採用した場合であっても、図１７で説明したような、小さな空き領域が細切れ状になって無駄に残ることがなくなる。
【０１８６】
次に、再生制御部１における上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
【０１８７】
そこで、図２３は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
【０１８８】
プログラムは、コンピュータに内蔵されている記録領域としてのハードディスク１０５やＲＯＭ１０３に予め記録しておくことができる。
【０１８９】
あるいはまた、プログラムは、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory)，MO(Magneto Optical)ディスク，DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録領域１１１に、一時的あるいは永続的に格納（記録）しておくことができる。このようなリムーバブル記録領域１１１は、いわゆるパッケージソフトウエアとして提供することができる。
【０１９０】
なお、プログラムは、上述したようなリムーバブル記録領域１１１からコンピュータにインストールする他、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを、通信部１０８で受信し、内蔵するハードディスク１０５にインストールすることができる。
【０１９１】
コンピュータは、CPU(Central Processing Unit)１０２を内蔵している。CPU１０２には、バス１０１を介して、入出力インタフェース１１０が接続されており、CPU１０２は、入出力インタフェース１１０を介して、ユーザによって、キーボードや、マウス、マイク等で構成される入力部１０７が操作等されることにより指令が入力されると、それにしたがって、ROM(Read Only Memory)１０３に格納されているプログラムを実行する。あるいは、また、CPU１０２は、ハードディスク１０５に格納されているプログラム、衛星若しくはネットワークから転送され、通信部１０８で受信されてハードディスク１０５にインストールされたプログラム、または図１や図２２のディスクドライブ２に相当するドライブ１０９に装着されたリムーバブル記録領域１１１から読み出されてハードディスク１０５にインストールされたプログラムを、RAM(Random Access Memory)１０４にロードして実行する。これにより、CPU１０２は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU１０２は、その処理結果を、必要に応じて、例えば、入出力インタフェース１１０を介して、LCD(Liquid Crystal Display)やスピーカ等で構成される出力部１０６から出力、あるいは、通信部１０８から送信、さらには、ハードディスク１０５に記録等させる。
【０１９２】
ここで、本明細書において、コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理（例えば、並列処理あるいはオブジェクトによる処理）も含むものである。
【０１９３】
また、プログラムは、１つのコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【０１９４】
なお、本実施の形態では、光ディスクを対象としたが、本発明は、光ディスク以外の、例えば、磁気ディスク等の記録媒体に適用可能である。
【０１９５】
また、光ディスク３２に記録されるデータは、AVデータに限られず、ビデオデータのみ、あるいはオーディオデータのみ、さらには、その他のデータであってもかまわない。
【０１９６】
さらに、図１および図２２のディスク装置において、バッファ２０は、ディスクドライブ２内に設けることが可能である。
【０１９７】
また、本発明は、非破壊編集結果を再生する場合だけでなく、例えば、光ディスク３２に分断されて記録されたAVデータを再生する場合にも適用可能である。
【０１９８】
【発明の効果】
以上の如く、本発明によれば、再生のリアルタイム性を保証することが可能となる。
【図面の簡単な説明】
【図１】本発明を適用したディスク装置の一実施の形態の構成例を示すブロック図である。
【図２】光ディスク３２に記録されたAVデータのファイルと非破壊編集結果との関係を示す図である。
【図３】プレイリストを示す図である。
【図４】アロケーションディスクリプタのリストを示す図である。
【図５】光ディスク３２に分断されて記録されているAVデータを読み出す場合の読み出しデータ量の推移を示す図である。
【図６】オーバーフローとアンダーフローが生じる場合を説明する図である。
【図７】オーバーフローの回避方法を説明する図である。
【図８】リアルタイム再生可否の判定方法を説明する図である。
【図９】再生のリアルタイム性を確保するコンパイルを説明する図である。
【図１０】光ディスク３２上のエクステントのコンパイルが行われる様子を示す図である。
【図１１】コンパイル開始点の決定方法を説明する図である。
【図１２】コンパイル開始点の決定方法を説明する図である。
【図１３】コンパイルによってエクステントを再配置する再配置領域のサイズを説明する図である。
【図１４】コンパイルによってエクステントを再配置する再配置領域のサイズを説明する図である。
【図１５】コンパイル終了点の決定方法を説明する図である。
【図１６】コンパイル終了点の決定方法を説明する図である。
【図１７】第１の方式によるコンパイル終了点の決定方法を説明する図である。
【図１８】第２の方式によるコンパイル終了点の決定方法を説明する図である。
【図１９】コンパイル処理を説明するフローチャートである。
【図２０】ステップＳ５の処理の詳細を説明するフローチャートである。
【図２１】ステップＳ８の処理の詳細を説明するフローチャートである。
【図２２】本発明を適用したディスク装置の一実施の形態の構成例を示すブロック図である。
【図２３】本発明を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【符号の説明】
１  再生制御部，  ２  ディスクドライブ，  １１  ユーザI/F，  １２  システム制御部，  １３  リアルタイム再生可否判定部，  １４  システム情報記憶部，  １５  コンパイルシミュレーション部，  １６  シミュレーション結果記憶部，  １７  コンパイル実行部，  １８  再生実行部，  １９  データ配置情報抽出部，  ２０  バッファ，  ３１  ディスクI/F，  ３２  光ディスク，３３  記録媒体，  １０１  バス，  １０２  CPU，  １０３  ROM，  １０４RAM，  １０５  ハードディスク，  １０６  出力部，  １０７  入力部，  １０８  通信部，  １０９  ドライブ，  １１０  入出力インタフェース，  １１１  リムーバブル記録領域
【図１】
2004199767.tif 000003
【図２】
2004199767.tif 000004
【図３】
2004199767.tif 000005
【図４】
2004199767.tif 000006
【図５】
2004199767.tif 000007
【図６】
2004199767.tif 000008
【図７】
2004199767.tif 000009
【図８】
2004199767.tif 000010
【図９】
2004199767.tif 000011
【図１０】
2004199767.tif 000012
【図１１】
2004199767.tif 000013
【図１２】
2004199767.tif 000014
【図１３】
2004199767.tif 000015
【図１４】
2004199767.tif 000016
【図１５】
2004199767.tif 000017
【図１６】
2004199767.tif 000018
【図１７】
2004199767.tif 000019
【図１８】
2004199767.tif 000020
【図１９】
2004199767.tif 000021
【図２０】
2004199767.tif 000022
【図２１】
2004199767.tif 000023
【図２２】
2004199767.tif 000024
【図２３】
2004199767.tif 000025