JP2004199767A - データ処理装置およびデータ処理方法、並びにプログラム - Google Patents
データ処理装置およびデータ処理方法、並びにプログラム Download PDFInfo
- Publication number
- JP2004199767A JP2004199767A JP2002366199A JP2002366199A JP2004199767A JP 2004199767 A JP2004199767 A JP 2004199767A JP 2002366199 A JP2002366199 A JP 2002366199A JP 2002366199 A JP2002366199 A JP 2002366199A JP 2004199767 A JP2004199767 A JP 2004199767A
- Authority
- JP
- Japan
- Prior art keywords
- data
- time
- recording area
- buffer
- reproduction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/12—Formatting, e.g. arrangement of data block or words on the record carriers
- G11B20/1217—Formatting, e.g. arrangement of data block or words on the record carriers on discs
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/02—Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
- G11B27/031—Electronic editing of digitised analogue information signals, e.g. audio or video signals
- G11B27/034—Electronic editing of digitised analogue information signals, e.g. audio or video signals on discs
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B27/00—Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
- G11B27/10—Indexing; Addressing; Timing or synchronising; Measuring tape travel
- G11B27/102—Programmed access in sequence to addressed parts of tracks of operating record carriers
- G11B27/105—Programmed access in sequence to addressed parts of tracks of operating record carriers of operating discs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
- G11B2020/1062—Data buffering arrangements, e.g. recording or playback buffers
- G11B2020/10814—Data buffering arrangements, e.g. recording or playback buffers involving specific measures to prevent a buffer underrun
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/60—Solid state media
- G11B2220/65—Solid state media wherein solid state memory is used for storing indexing information or metadata
- G11B2220/652—Solid state media wherein solid state memory is used for storing indexing information or metadata said memory being attached to the recording medium
- G11B2220/657—Memory in disc [MID]
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
【解決手段】リアルタイム再生可否判定部13は、光ディスク32の記録領域に記録されたAVデータをリアルタイムで再生することができるかどうかを判定する。そして、光ディスク32に記録されたAVデータをリアルタイムで再生することができないとき、コンパイルシミュレーション部15およびコンパイル実行部17は、光ディスク32に記録されたAVデータの中から、所定のAVデータを選択し、その選択したAVデータを、光ディスク32上の空き領域に再配置する。本発明は、例えば、光ディスク32を再生するディスク装置に適用することができる。
【選択図】 図1
Description
【発明の属する技術分野】
本発明は、データ処理装置およびデータ処理方法、並びにプログラムに関し、特に、例えば、光ディスク等の記録媒体に記録されたビデオデータやオーディオデータについての再生のリアルタイム性を保証することができるようにするデータ処理装置およびデータ処理方法、並びにプログラムに関する。
【0002】
【従来の技術】
例えば、光ディスクやHD(Hard Disk)などのランダムアクセス可能なディスク状の記録媒体の大容量化や低価格化に伴い、高ビットレートのビデオデータやオーディオデータについて、光ディスク等を用いた非破壊編集が行われるようになってきている。
【0003】
非破壊編集とは、例えば、光ディスク等に記録された素材データとしてのビデオデータやオーディオデータに対して、いわゆる編集点(IN点、OUT点)を設定するだけで、素材データそのものを編集しない(破壊しない)編集方法である。非破壊編集においては、例えば、プレイリストなどと呼ばれる、編集時に設定された編集点のリストが作成される。そして、その編集結果の再生は、プレイリストにしたがって行われる。即ち、編集結果の再生は、プレイリストに記述されている編集点にしたがって、光ディスクに記録された素材データを再生することにより行われる。このような非破壊編集によれば、素材データが、例えば、MPEGエンコードなどの非可逆変換されている場合に、素材データをデコードしてから、そのデコード結果をつなぎ合わせ、再度、そのつなぎ合わせられた素材データをMPEGエンコードする必要がなく、従って、デコードとエンコードが繰り返されることによる画質等の劣化を防止することができる。
【0004】
なお、非破壊編集において、ある素材データと他の素材データとをつなぎ合わせるときなどには、そのつなぎ合わせの部分に、特殊効果(エフェクト)を付す場合がある。非破壊編集において、特殊効果が付された場合、その再生時には、特殊効果が付されたつなぎの部分の2つの素材データを光ディスクから読み出し、特殊効果を付す必要がある。そこで、例えば、特許文献1においては、その特殊効果が付されるつなぎ合わせの部分だけを、光ディスクに記録しておくことが記載されている。
【0005】
【特許文献1】
特開平11-146330号公報。
【0006】
【発明が解決しようとする課題】
ところで、例えば、上述のような非破壊編集において得られる、ある編集点(IN点)から次の編集点(OUT点)までの連続した素材データの集まりをクリップと呼ぶこととすると、非破壊編集による編集結果は、クリップ単位で再生されるということができる。そして、異なるクリップは、光ディスク上の離れた記録領域に記録されていることがある。
【0007】
従って、プレイリストによる再生において、例えば、あるクリップから他のクリップに再生対象が移行する場合には、それらのクリップが記録されている光ディスクを再生するディスク装置では、あるクリップが記録されている記録領域から、次のクリップが記録されている記録領域にシークを行う必要がある。
【0008】
そして、このシークに要するシーク時間が大である場合には、再生が途切れることがある。
【0009】
本発明は、このような状況に鑑みてなされたものであり、再生のリアルタイム性を保証することができるようにするものである。
【0010】
【課題を解決するための手段】
本発明のデータ処理装置は、第1の記録領域に記録されたデータをリアルタイムで再生することができるかどうかを判定するリアルタイム再生可否判定手段と、第1の記録領域に記録されたデータをリアルタイムで再生することができないとき、第1の記録領域に記録されたデータの中から、所定のデータを選択するデータ選択手段と、データ選択手段において選択されたデータを、第2の記録領域に再配置する再配置手段とを備えることを特徴とする。
【0011】
本発明のデータ処理方法は、第1の記録領域に記録されたデータをリアルタイムで再生することができるかどうかを判定するリアルタイム再生可否判定ステップと、第1の記録領域に記録されたデータをリアルタイムで再生することができないとき、第1の記録領域に記録されたデータの中から、所定のデータを選択するデータ選択ステップと、データ選択ステップにおいて選択されたデータを、第2の記録領域に再配置する再配置ステップとを備えることを特徴とする。
【0012】
本発明のプログラムは、第1の記録領域に記録されたデータをリアルタイムで再生することができるかどうかを判定するリアルタイム再生可否判定ステップと、第1の記録領域に記録されたデータをリアルタイムで再生することができないとき、第1の記録領域に記録されたデータの中から、所定のデータを選択するデータ選択ステップと、データ選択ステップにおいて選択されたデータを、第2の記録領域に再配置させる再配置ステップとを備えることを特徴とする。
【0013】
本発明のデータ処理装置およびデータ処理方法、並びにプログラムにおいては、第1の記録領域に記録されたデータをリアルタイムで再生することができるかどうかが判定される。そして、第1の記録領域に記録されたデータをリアルタイムで再生することができないとき、第1の記録領域に記録されたデータの中から、所定のデータが選択され、その選択されたデータが、第2の記録領域に再配置される。
【0014】
【発明の実施の形態】
図1は、本発明を適用したディスク装置の一実施の形態の構成例を示している。
【0015】
図1の実施の形態において、ディスク装置は、再生制御部1とディスクドライブ2から構成されている。
【0016】
再生制御部1は、ユーザI/F(Interface)11、システム制御部12、リアルタイム再生可否判定部13、システム情報記憶部14、コンパイルシミュレーション部15、シミュレーション結果記憶部16、コンパイル実行部17、再生実行部18、データ配置情報抽出部19、およびバッファ20で構成され、ディスクドライブ2からのデータの再生を制御する。
【0017】
即ち、ユーザI/F11は、キーボードや、スイッチ、つまみなどの操作部や、マイク(マイクロフォン)、画像を表示するディスプレイ、音声(音)を出力するスピーカなどで構成される。そして、ユーザI/F11は、ユーザによって操作等され、その操作に対応する操作信号を、システム制御部12に供給する。また、ユーザI/F11は、システム制御部12から供給される、後述する光ディスク32から読み出されて再生された画像や音声を出力(表示)する。
【0018】
なお、ユーザI/F11においては、例えば、光ディスク32の再生などの動作指示を入力することが可能であることは勿論、後述するコンパイルを行うときの条件設定などを入力することも可能である。また、ユーザI/F11では、光ディスク32から再生された画像や音声の他、光ディスク32からの画像や音声の再生をリアルタイムですることができるかどうかのメッセージや、コンパイルに要する時間(コンパイル所要時間)なども出力される。
【0019】
システム制御部12は、例えば、ユーザI/F11から供給される操作信号などに応じて、リアルタイム再生可否判定部13や、コンパイルシミュレーション部15、コンパイル実行部17、再生実行部18を制御する。
【0020】
リアルタイム再生可否判定部13は、システム情報記憶部14に記憶された情報や、データ配置情報抽出部19から供給される情報などに基づき、光ディスク32に記録されたビデオデータやオーディオデータであるAV(Audio Visual)データを、リアルタイムで再生することができるかどうかを判定する。
【0021】
システム情報記憶部14は、ディスク装置の仕様や性能に関する情報であるシステム情報を記憶している。ここで、システム情報には、例えば、ディスクドライブ2において光ディスク32からデータを読み出すときの読み出しレートや、バッファ20の記憶容量であるバッファサイズ、ディスクドライブ2において生じるシークのシーク時間を表すシーク時間関数、後述する再生遅延許容時間、AVデータの再生レートなどがある。なお、例えば、再生遅延許容時間やバッファサイズは、ユーザが、ユーザI/F11を操作することにより設定するようにすることも可能である。
【0022】
コンパイルシミュレーション部15は、システム情報記憶部14に記憶された情報や、データ配置情報抽出部19から供給される情報などを用いて、光ディスク32に記録されたAVデータを再配置するコンパイルのシミュレーションを行い、そのシミュレーションの結果得られる情報であるシミュレーション結果情報を、シミュレーション結果記憶部16に供給する。シミュレーション結果記憶部16は、コンパイルシミュレーション部15から供給されるシミュレーション結果情報を一時記憶する。
【0023】
コンパイル実行部17は、シミュレーション結果記憶部16に記憶されたシミュレーション結果情報に基づき、光ディスク32に記録されたAVデータを再配置するコンパイルを実行するように、ディスクドライブ2(のディスクI/F31)を制御する。
【0024】
再生実行部18は、光ディスク32に記録されたAVデータの再生を実行するように、ディスクドライブ2のディスクI/F31を制御する。
【0025】
即ち、ユーザが、AVデータの再生を行うように、ユーザI/F11を操作すると、再生を要求する操作信号が、システム制御部12に供給される。システム制御部12は、ユーザI/F11から再生を要求する操作信号を受信すると、AVデータの再生を行うように、再生実行部18を制御する。この場合、再生実行部18は、ディスクI/F31に対して、プレイリストを要求し、その要求したプレイリストが、ディスクI/F31から供給されるのを待って受信する。さらに、再生実行部18は、そのプレイリストにしたがい、再生すべきAVデータを、ディスクI/F31に要求する。ディスクI/F31は、再生実行部18から要求のあったAVデータを、光ディスク31から読み出し、バッファ20に供給して記憶させる。そして、再生実行部18は、バッファ20に記憶されたAVデータを読み出し、必要な処理(例えば、デコード処理など)を施して、システム制御部12に供給する。システム制御部12は、再生実行部18から供給されるAVデータを、ユーザI/F11に供給し、これにより、ユーザI/F11において、AVデータ(に対応する画像と音声)が出力される。
【0026】
データ配置情報抽出部19は、ディスクI/F31に対して、光ディスク32に記憶されたプレイリストや、光ディスク32上の空き領域が記述された空き領域リストを要求し、リアルタイム再生可否判定部13やコンパイルシミュレーション部15に供給する。バッファ20は、ディスクI/F31から供給される、光ディスク32から読み出されたAVデータを一時記憶する。
【0027】
ディスクドライブ2は、ディスクI/F31で構成され、ディスクドライブ2に装着された光ディスク32に対して、データの書き込みや読み出しを行う。即ち、ディスクドライブ2に対しては、光ディスク32を容易に着脱することができるようになっている。そして、ディスクI/F31は、再生実行部18からの要求に応じて、光ディスク32からAVデータを読み出し、バッファ20に供給する。また、ディスクI/F31は、コンパイル実行部17からの要求に応じて、光ディスク32のある記録領域に記録されているAVデータを、他の記録領域に再配置する。さらに、ディスクI/F31は、光ディスク32上の空き領域を管理しており、その空き領域が記述された空き領域リストを、データ配置情報抽出部19からの要求に応じて、データ配置情報抽出部19に供給する。また、ディスクI/F31は、データ配置情報抽出部19からの要求に応じて、光ディスク32に記録されたプレイリストを読み出し、データ配置情報抽出部19に供給する。
【0028】
光ディスク32には、例えば、素材データとしてのAVデータのファイルと、非破壊編集の結果得られるプレイリストが記録されている。
【0029】
なお、ここでは、光ディスク32にプレイリストを記録しておくものとしたが、プレイリストは、図1のディスク装置に対して、外部から与えるようにすること等も可能である。
【0030】
次に、図2乃至図4を参照して、光ディスク32に記録された素材データとしてのAVデータのファイルおよびプレイリスト、並びに非破壊編集結果の関係について説明する。
【0031】
図2は、非破壊編集結果と、光ディスク32に記録されているAVデータのファイルとの関係を示している。
【0032】
図2においては、光ディスク32に、AVデータのファイルFile001,File002,File003が記録されており、ファイルFile001のタイムコードB1からE1までのAVデータ、ファイルFile002のタイムコードB2からE2までのAVデータ、File003のタイムコードB3からE3までのAVデータを、その順番でつなぎ合わせたAVデータのシーケンスが、非破壊編集結果とされている。
【0033】
光ディスク32の記録領域は、例えば、所定のサイズの論理ブロック(LB(Logical Block))に分割されており、AVデータは、1以上の連続した論理ブロックに記録される。
【0034】
光ディスク32においては、1つのファイルを構成するAVデータであっても、連続した論理ブロックに記録されるとは限らず、図2に示すように、幾つかに分断されて記録されることがある。図2では、ファイルFile001のうちの、非破壊編集結果に用いられているタイムコードB1からE1までのAVデータが、3つに分断されて光ディスク32に記録されている。即ち、図2において、光ディスク32の論理ブロックには、その読み書きがされる順番に、0からのシーケンシャルな論理ブロック番号(LBN(Logical Block Number))が付されており、ファイルFile001のタイムコードB1からE1までの3つに分断されているAVデータのうちの1つ目のAVデータは、LBNが100から103の4つの連続した論理ブロックに、2つ目のAVデータは、LBNが152から154の3つの連続した論理ブロックに、3つ目のAVデータは、LBNが208から213の6つの連続した論理ブロックに、それぞれ記録されている。
【0035】
同様に、ファイルFile002のうちの、非破壊編集結果に用いられているタイムコードB2からE2までのAVデータと、File003のうちの、非破壊編集結果に用いられているタイムコードB3からE3までのAVデータも、2つに分断されて光ディスク32に記録されている。
【0036】
ここで、上述のような1つのファイルを構成するAVデータの分断は、例えば、光ディスク32に対するデータの書き込みと消去が繰り返されることによって生じやすくなる。
【0037】
次に、図3は、図2の非破壊編集結果が得られる場合に作成されるプレイリストを示している。
【0038】
プレイリストにおいては、非破壊編集結果を構成するAVデータのシーケンスを特定する情報が記述される。図3のプレイリストにおいては、その最左欄に、AVデータのシーケンスの再生順序を表す数字が記述され、左から2番目の欄に、AVデータのシーケンスを有するファイルを特定する情報としてのファイル名が記述されている。さらに、図3のプレイリストにおいては、その左から3番目の欄に、AVデータのシーケンスの先頭のタイムコード(IN点)が記述され、最右欄に、そのAVデータのシーケンスの終わりのタイムコード(OUT点)が記述されている。
【0039】
以上のようなプレイリストにしたがい、AVデータを再生することで、図2に示した非破壊編集結果としてのAVデータのシーケンスが再生される。
【0040】
ここで、例えば、いま、光ディスク32上のファイルを管理するファイルシステムとして、例えば、UDF(Universal Disk Format)を採用することとすると、UDFでは、光ディスク32の記録領域が、例えば、構造体であるアロケーションディスクリプタ(Allocation Descriptor)のリストによって管理される。
【0041】
即ち、いま、光ディスク32において、連続したデータが記録された連続した記録領域(連続した論理ブロック)を、エクステント(Extent)と呼ぶこととすると、1つのエクステントは、1つのアロケーションディスクリプタによって管理され、各アロケーションディスクリプタは、そのアロケーションディスクリプタが管理するエクステントの長さ(エクステント長(Extent Length))と、エクステントの先頭の位置(エクステント位置(Extent Position))とをメンバ(構造体のメンバ)として有する。
【0042】
エクステント長は、例えば、そのエクステントを構成する論理ブロックの数で表され、エクステント位置は、例えば、そのエクステントを構成する先頭の論理ブロックのLBNで表される。
【0043】
上述の図2においては、ファイルFile001のタイムコードB1からE1までの3つに分断されているAVデータのうちの1つ目のAVデータが、LBNが100から103の4つの連続した論理ブロックに、2つ目のAVデータが、LBNが152から154の3つの連続した論理ブロックに、3つ目のAVデータが、LBNが208から213の6つの連続した論理ブロックに、それぞれ記録されているが、この場合のファイルFile001のタイムコードB1からE1までのAVデータについてのアロケーションディスクリプタのリストは、図4に示すようになる。
【0044】
図4の最上行のアロケーションディスクリプタによれば、LBNが100の論理ブロックを先頭とする4つの連続した論理ブロックに、AVデータが記録されていることが分かる。また、上から2行目のアロケーションディスクリプタによれば、LBNが152の論理ブロックを先頭とする3つの連続した論理ブロックに、AVデータが記録されており、さらに、上から3行目のアロケーションディスクリプタによれば、LBNが208の論理ブロックを先頭とする6つの連続した論理ブロックに、AVデータが記録されていることが分かる。
【0045】
上述のように、非破壊編集結果を構成するAVデータが分断されて光ディスク32に記録されている場合には、その分断されている部分に亘るAVデータを、光ディスク32から読み出すときにシークが発生し、前述したように、そのシークの時間が大であると、光ディスク32からのAVデータの読み出しが、そのリアルタイムでの再生に間に合わず、再生が途切れることになる。即ち、図1のディスク装置において、シークが行われている間に、バッファ20にバッファリングされたAVデータの読み出しが終了することにより、バッファ20がアンダーフローするまでに、いま再生すべきAVデータの光ディスク32からの読み出しを行うことができないと、リアルタイム再生が途切れることになる。
【0046】
そこで、バッファ20のアンダーフローを防止するため、非破壊編集結果の再生の開始前に、非破壊編集結果の再生開始直後のAVデータを、光ディスク32から先に読み出し、これにより、ある程度のデータ量のAVデータを、バッファ20にバッファリングしておく先読みの方法がある。
【0047】
しかしながら、先読みの方法は、AVデータの再生の開始前に、AVデータを光ディスク32から読み出して、バッファ20にバッファリングするので、そのバッファリングが行われている間、AVデータの再生開始が指令されてから、実際に、AVデータの再生が開始されるまでに、バッファリングするAVデータのデータ量に応じた遅延が生じる。いま、この遅延に許容されている時間を、再生遅延許容時間というものとすると、ディスク装置の仕様やユーザの要求によって、再生遅延許容時間が制限されている場合には、十分なデータ量のAVデータをバッファリングすることができず、再生のリアルタイム性が保証されないことになる。また、仮に、再生遅延許容時間が制限されていない場合であっても、バッファ20のバッファサイズが十分でないときには、やはり、十分なデータ量のAVデータをバッファリングすることができず、再生のリアルタイム性が保証されないことになる。
【0048】
さらに、先読みの方法では、AVデータが、その再生の開始前に、バッファ20にバッファリングされるだけであるため、バッファ20に、そのバッファサイズ分のデータが記憶された後(バッファ20がオーバーフローした後(オーバーフロー直前の状態となった後))に、バッファ20がアンダーフローする場合は、そのアンダーフローによって再生が途切れることを防止することができない。
【0049】
そこで、図1のディスク装置では、光ディスク32に記録されたAVデータを再配置するコンパイルを行うことによって、再生のリアルタイム性を保証するようになっている。
【0050】
次に、図1のディスク装置で行われるコンパイルについて説明するが、その前に、バッファ20のオーバーフローとアンダーフローについて説明する。
【0051】
図5は、光ディスク32に分断されて記録されているAVデータを読み出す場合の、そのAVデータの読み出しデータ量(の累計量)の時間推移を示している。
【0052】
即ち、図5は、光ディスク32に分断されて記録されている3つのエクステント#1,#2,#3のAVデータを読み出す場合の読み出しデータ量の推移を示している。
【0053】
光ディスク32からのAVデータの読み出しデータ量は、実際に、AVデータの読み出しが行われている場合は、ディスクドライブ2によるデータの読み出しレートRrの傾きをもって変化する。一方、あるエクステントのAVデータの読み出しの終了後、次のエクステントのAVデータの読み出しが開始されるときには、ディスクドライブ2において、あるエクステントから次のエクステントへのシークが発生し、その間は、AVデータの読み出しを行うことができないので、読み出しデータ量は変化しない(傾きが0となる)。そして、シークの終了後は、エクステントのAVデータの読み出しが開始されるので、読み出しデータ量は、再び、読み出しレートRrの傾きをもって変化する。
【0054】
ここで、図5では、AVデータの読み出しデータ量を、メディア読み出しラインLrとして示してある。以下説明する図においても、同様である。なお、メディア読み出しラインLrによって示される読み出しデータ量は、バッファ20に入力するAVデータのデータ量(の累計量)でもある。
【0055】
次に、図6を参照して、バッファ20がオーバーフローする場合とアンダフローする場合について説明する。
【0056】
図6において、メディア読み出しラインLrは、図5で説明したように、光ディスク32からのAVデータの読み出しデータ量の推移を示しており、上述したように、ディスクドライブ2において、実際に、光ディスク32からAVデータが読み出されている場合には、読み出しレートRrの傾きで変化し、シークが発生している場合には、傾きが0となる。
【0057】
また、図6において、リアルタイム再生ラインLpは、AVデータの再生のリアルタイム性を確保するために、バッファ20から出力されるべき最低限のデータ量(の累計量)の推移を表す。いま、再生遅延許容時間をTwと表すとともに、AVデータの再生レートをRpと表すこととすると、リアルタイム再生ラインLpは、時間軸である横軸上の再生遅延許容時間Twを始点として、再生レートRpの傾きで変化していく。
【0058】
なお、再生遅延許容時間Twにおける、メディア読み出しラインLrによって表される読み出しデータ量は、上述の先読みの方法によって、AVデータの再生前にバッファ20にバッファリングされるAVデータのデータ量であり、図6では、このデータ量を、先読みバッファ量SBと示してある。
【0059】
上述したように、リアルタイム再生ラインLpは、AVデータの再生のリアルタイム性を確保するために、バッファ20から出力されるべき最低限のデータ量を表すから、光ディスク32からのAVデータの読み出しデータ量、即ち、メディア読み出しラインLrが、リアルタイム再生ラインLpを下回ることは、バッファ20がアンダーフローすることを意味する。
【0060】
即ち、先読みバッファ量SBは、再生遅延許容時間Twの間に、光ディスク32から、読み出しレートRrで読み出されるAVデータのデータ量であるから、Tw×Rrとなる。但し、Tw×Rrが、バッファ20のバッファサイズより大である場合には、先読みバッファ量SBは、バッファ20のバッファサイズに制限される。
【0061】
バッファ20からのAVデータの読み出しが開始されると、バッファ20に記憶されたAVデータのデータ量は、光ディスク32からAVデータが読み出されてバッファ20に供給されない限り減少していく。上述したように、シークが行われている間は、光ディスク32からのAVデータの読み出しが行われないため、シーク時間が長いと、光ディスク32からのAVデータの読み出しも長時間行われず、その間に、バッファ20に記憶されたAVデータすべてが読み出される場合がある。これにより、バッファ20のアンダーフローが発生する。
【0062】
図6において、バッファ上限ラインLupは、バッファ20に入力することができるAVデータの最大のデータ量(の累計量)の推移を表す。いま、バッファ20のバッファサイズをBと表すこととすると、バッファ上限ラインLupは、リアルタイム再生ラインLpをバッファサイズBだけ上方に移動したラインに一致する。従って、バッファ上限ラインLupは、リアルタイム再生ラインLpと同様に、再生レートRpの傾きで変化し、また、リアルタイム再生ラインLpとの差は、常に、バッファサイズBとなる。
【0063】
上述したように、バッファ上限ラインLupは、バッファ20に入力することができるAVデータの最大のデータ量を表すから、光ディスク32からのAVデータの読み出しデータ量、即ち、メディア読み出しラインLrが、バッファ上限ラインLupを上回ることは、バッファ20がオーバーフローすることを意味する。
【0064】
即ち、光ディスク32に記録されたAVデータをリアルタイムで再生するには、AVデータの読み出しが、その再生に間に合うようにするため、読み出しレートRrが、再生レートRpよりも大である必要があり、従って、読み出しレートRrの傾きで変化するメディア読み出しラインLrは、再生レートRpで変化するバッファ上限ラインLupを追い越す場合がある。つまり、メディア読み出しラインLrとリアルタイム再生ラインLpとの差が、バッファサイズBを越える場合がある。これにより、バッファ20のオーバーフローが発生する。
【0065】
バッファ20のアンダーフローやオーバーフローは、AVデータのリアルタイムでの再生を妨げることとなるので、これを回避する必要がある。
【0066】
そこで、まず、図7を参照して、バッファ20のオーバーフローを回避する方法について説明する。
【0067】
バッファ20のオーバーフローは、光ディスク32からのAVデータの読み出し量が大であることに起因するから、光ディスク32からのAVデータの読み出しを停止することによって、つまり、ディスクドライブ2において、いわゆる回転待ち(トラックジャンプ)を行い、これにより、光ディスク32からのAVデータの読み出しを遅らせることによって回避することができる。
【0068】
即ち、バッファ20のオーバーフローは、メディア読み出しラインLrが、バッファ上限ラインLupを上回った状態である。従って、図7に示すように、メディア読み出しラインLrが、バッファ上限ラインLupを上回らないように、光ディスク32からのAVデータの読み出しを遅らせることによって、バッファ20のオーバーフローを回避することができる。
【0069】
なお、図7においては、バッファ20がオーバーフローしそうになった時点(オーバーフロー直前)で、ディスクドライブ2において回転待ちが行われ、これにより、メディア読み出しラインLrの一部の傾きが、バッファ上限ラインLupと同一の再生レートRpとなっている。但し、メディア読み出しラインLrの一部の傾きは、実際に、再生レートRpとなっているわけではなく、図7に拡大して示すように、読み出しレートRrでの変化と回転待ちとが繰り返されることによって、いわば実質的に、再生レートRpとなっている。
【0070】
ところで、光ディスク32からのAVデータの読み出しを遅らせることによって、バッファ20のオーバーフローを回避した場合、上述したように、メディア読み出しラインLrの一部の傾きが、実質的に、読み出しレートRrよりも低い再生レートRpとなるため、その後のメディア読み出しラインLrは、図7に示すように、元のメディア読み出しラインLrを右方向に移動したようなものとなる。
【0071】
このように、メディア読み出しラインLrが右方向に移動した場合、その移動後のメディア読み出しラインLrが、リアルタイム再生ラインLpを下回り、バッファ20がアンダーフローすることがある。
【0072】
上述した回転待ちによるオーバーフローの回避方法は、バッファ20に、そのバッファサイズBのAVデータが記憶された場合に、光ディスク32からのAVデータの読み出しレートRrを、実質的に再生レートRpに等しくして、バッファ20に記憶されるAVデータのデータ量を、バッファサイズBに維持するものであるから、バッファ20には、バッファリングすることができる最大のデータ量のAVデータが記憶される。
【0073】
従って、そのような最大のデータ量のAVデータがバッファ20に記憶された後に生じるアンダーフローは、基本的には回避することができない。
【0074】
即ち、最大のデータ量のAVデータがバッファ20に記憶された後に、アンダーフローが生じるということは、そのバッファ20に記憶されたAVデータだけでは賄いきれない時間のシークが発生しているということであり、この場合にリアルタイム再生を行うには、例えば、バッファ20のバッファサイズBを大にする必要がある。
【0075】
以上から、光ディスク32に記録されたAVデータをリアルタイムで再生することができるかどうかのリアルタイム再生可否判定は、バッファ20のアンダーフローが発生するかどうか(バッファ20のオーバーフローが発生する場合には、そのオーバーフローの回避後にアンダーフローが発生するかどうか)を判定することによって行うことができる。
【0076】
アンダーフローが発生するかどうかは、メディア読み出しラインLr、リアルタイム再生ラインLp、およびバッファ上限ラインLupから作図的に判定することができる。
【0077】
そして、メディア読み出しラインLr、リアルタイム再生ラインLp、およびバッファ上限ラインLupは、例えば、図8に示すように、連続したAVデータが記録されたエクステント#nの再生時間Tp(n)[sec(second)]、あるエクステント#nからその次に再生すべきエクステント#n+1までの論理ブロック数換算での距離L(n)、再生レートRp[Mbps(Mega bit per second)]、再生遅延許容時間Tw[sec]、バッファサイズB[bit]、読み出しレートRr[Mbps]、および距離L(n)をシークするのに要するシーク時間Fs(L(n))[sec]から作図することができる。
【0078】
即ち、メディア読み出しライン(オーバーフローが発生する場合には、そのオーバーフローの回避後のメディア読み出しライン)Lrは、図8に示すように、エクステント#nの再生時間Tp(n)と再生レートRpから求められるエクステント#nのデータ量Tp(n)×Rp、読み出しレートRr、エクステント#nからエクステント#n+1にシークするのに要するシーク時間Fs(L(n))、およびバッファ上限ラインLupから求めることができる。また、リアルタイム再生ラインLpは、再生遅延許容時間Twと再生レートRpから求めることができる。さらに、バッファ上限ラインLupは、再生遅延許容時間Tw、再生レートRp、およびバッファサイズB、あるいは、リアルタイム再生ラインLpおよびバッファサイズBから求めることができる。
【0079】
なお、エクステント#nの再生時間Tp(n)と、エクステント#nからエクステント#n+1までの距離L(n)は、プレイリストから得ることができる。また、再生レートRp、再生遅延許容時間Tw、およびバッファサイズBは、ディスク装置に要求される仕様、あるいはユーザの要求によって決まるデータである。また、読み出しレートRrおよびシーク時間Fs(L(n))は、ディスク装置の性能によって決まるデータである。
【0080】
ここで、距離L(n)をシークするのに要するシーク時間Fs(L(n))を表す関数Fs()は、上述したシステム情報の1つであるシーク時間関数である。
【0081】
図1のディスク装置において、プレイリストは、データ配置情報抽出部19において取得される。また、再生レートRp、再生遅延許容時間Tw、バッファサイズB、読み出しレートRr、およびシーク時間関数Fs()は、システム情報として、システム情報記憶部14に記憶されている。
【0082】
図1のディスク装置では、リアルタイム再生可否判定部13において、エクステント#nの再生時間Tp(n)、エクステント#nからエクステント#n+1までの距離L(n)、再生レートRp、再生遅延許容時間Tw、バッファサイズB、読み出しレートRr、およびシーク時間Fs(L(n))を用いて、メディア読み出しラインLr、リアルタイム再生ラインLp、およびバッファ上限ラインLupが求められ、さらに、これらのメディア読み出しラインLr、リアルタイム再生ラインLp、およびバッファ上限ラインLupに基づき、リアルタイム再生可否判定が行われる。
【0083】
図1のディスク装置は、リアルタイム再生可否判定によって、AVデータのリアルタイム再生をすることができないとの判定結果を得た場合、即ち、バッファ20にアンダーフローが生じる場合、光ディスク32に記録されたAVデータを再配置するコンパイルを行うことによって、再生のリアルタイム性を確保する。
【0084】
即ち、アンダーフローは、図9に示すように、光ディスク32からのAVデータの読み出しが、あるエクステント#nから次に再生されるべきエクステント#n+1に移行する際に生じるシークのシーク時間が大であることや、シークが頻発することに起因して発生する。従って、図9に示すように、例えば、エクステント#nからエクステント#n+1への読み出しの移行時に、シークが発生しなければ、アンダーフローを回避することができる。
【0085】
そこで、図1のディスク装置は、複数のエクステントが、その再生順に連続的に並ぶように、光ディスク32上に再配置(コンパイル)する。
【0086】
ここで、エクステントのコンパイルが行われた場合、そのコンパイルされたエクステントの読み出しの終了後、次に再生すべきエクステントを読み出す必要があるが、その読み出しの移行時に、シークが発生する。いま、このシークを、復帰シークというものとすると、エクステントのコンパイルは、図9に示すように、復帰シーク直前のバッファ20に、復帰シークに要するシーク時間の間の再生を賄うことができるだけのデータ量のAVデータが記憶されるように行う必要がある。
【0087】
また、コンパイルは、バッファ20のアンダーフローを回避した上で、そのコンパイルに要するコンパイル所要時間と、エクステントが再配置される光ディスク32上の再配置領域とができるだけ小になるように行うのが望ましい。
【0088】
次に、図10は、光ディスク32上のエクステントのコンパイルが行われる様子を示している。なお、図10では、左から右方向が、光ディスク32に対するデータの読み書き方向となっている。
【0089】
図10においては、4つのエクステント#1,#2,#3,#4が、読み書き順で、エクステント#1,#4,#2,#3の順番で、光ディスク32に記録されている。また、エクステント#1と#4との間には、空き領域#1が存在し、エクステント#4と#2との間には、空き領域#2、欠陥領域、および空き領域#3が存在している。さらに、エクステント#2と#3との間には、空き領域#4が存在している。なお、エクステントの再生順は、エクステント#1,#2,#3,#4である。
【0090】
例えば、光ディスク32に対して、データの書き込みと削除が繰り返されている場合や、光ディスク32に欠陥が存在する場合は、光ディスク32上の空き領域は、図10に示したように、光ディスク32上に分断した状態で存在する。
【0091】
いま、例えば、エクステント#2と#3をコンパイルの対象とし、そのエクステント#2と#3を再配置する記録領域(再配置領域)として、空き領域#3が選択されたものとすると、そのコンパイル結果は、図10に示すようになる。
【0092】
なお、コンパイルは、シークの抑制を目的とするため、連続して再生されるエクステント#2と#3は、その読み出し時にシークが発生しないように再配置する必要がある。即ち、エクステント#2と#3は、その再生順に読み出しが連続して行われるように再配置する必要があり、従って、再配置領域となる空き領域は、そのようにエクステント#2と#3を配置することができるだけの記録領域である必要がある。図10では、光ディスク32上に分断されて存在する空き領域#1乃至#4の中から、エクステント#2と#3を連続して配置することができる大きさの空き領域#3が再配置領域として選択され、その再配置領域に、エクステント#2と#3が連続して再配置されている。
【0093】
ここで、非破壊編集によって得られるエクステントは、例えば、内容的に纏まった画像や音声のAVデータであるため、コンパイルにあたって、エクステントは分割せずに再配置するものとする。
【0094】
図10において、エクステント#1,#2,#3,#4を、その順番で再生する場合、コンパイル前においては、エクステント#1が読み出され、その後、エクステント#1から#2にシークし、エクステント#2が読み出される。さらに、エクステント#2から#3にシークし、エクステント#3が読み出される。そして、エクステント#3から#4にシークし、エクステント#4が読み出される。
【0095】
以上のように、コンパイル前は、エクステント#1から#2へのシーク#1、エクステント#2から#3へのシーク#2、エクステント#3から#4へのシーク#3の、合計で3回のシークが発生する。
【0096】
一方、コンパイル後は、エクステント#1が読み出され、その後、エクステント#1から#2にシークし、エクステント#2が読み出される。さらに、エクステント#2に続けて配置されているエクステント#3がシークなしで読み出され、エクステント#3から#4にシークし、エクステント#4が読み出される。
【0097】
以上のように、コンパイル後は、エクステント#1から#2へのシーク#4と、エクステント#3から#4へのシーク#5の、合計で2回のシークしか発生しておらず、シークの回数が抑制されている。さらに、図10では、コンパイル後のエクステント#1から#2へのシーク#4は、コンパイル前のエクステント#1から#2へのシーク#1より、距離が短くなっており、さらに、コンパイル後のエクステント#3から#4へのシーク#5も、コンパイル前のエクステント#3から#4へのシーク#3より、距離が短くなっている。従って、コンパイル後は、コンパイル前よりシーク時間も短くなっている。
【0098】
図1のディスク装置は、以上のようなコンパイルによって、AVデータのリアルタイムでの再生を保証する。従って、コンパイルにより生じるシークによって、リアルタイム再生が妨げられることがあってはならない。このため、コンパイルにあたっては、再配置領域へのシークが開始される開始点(以下、適宜、コンパイル開始点という)から、その再配置領域の先頭へのシーク(以下、適宜、移転シークという)が行われるときに、バッファ20にアンダーフローが生じてはならないことと、再配置領域におけるエクステントの読み出しが終了する終了点(以下、適宜、コンパイル終了点という)から、次に再生されるべきエクステントへのシーク(復帰シーク)が行われるときにも、バッファ20にアンダーフローが生じてはならないことの2つが条件となる。
【0099】
なお、図10においては、コンパイル後のエクステント#1から#2へのシーク#4が移転シークであり、コンパイル後のエクステント#3から#4へのシーク#5が復帰シークである。
【0100】
次に、コンパイルは、バッファ20のアンダーフローを防止するために行うから、コンパイルを開始する開始点(コンパイル開始点)は、バッファ20のアンダーフローが生じる時点よりも前でなければならない。また、バッファ20のアンダーフローの直前に生じるオーバーフロー(の回避)の前に、コンパイルを行っても、そのオーバーフロー(の回避)によって、バッファ20には、バッファサイズBの(あるいは、それに近いデータ量の)AVデータがバッファリングされるから、コンパイルを行う効果はない。
【0101】
従って、コンパイル開始点は、図11に示すように、バッファ20のアンダーフローの直前に生じるオーバーフロー(の回避)が終了した後であり、かつ、バッファ20のアンダーフローが生じる時点よりも前でなければならない。
【0102】
さらに、上述したように、移転シークにおいて、バッファ20にアンダーフローが生じてはならないから、コンパイル開始点は、移転シークに要するシーク時間の間の再生を賄うことができるだけのAVデータが、バッファ20に記憶されている時点である必要がある。
【0103】
そして、そのようなコンパイル開始点以降の複数のエクステントが、図11に示すように、コンパイルの対象となる。
【0104】
いま、コンパイル開始点の候補として、図12に示すように、コンパイル前のメディア読み出しラインLrにおいて、アンダーフローが生じる時点の直前に生じるオーバーフロー(の回避)が終了してから、アンダーフローが生じる時点までの範囲の中の、いわば左肩となっている点A,B,Cを採用することとすると、コンパイル所要時間を短くするために、コンパイルの対象とするエクステントのデータ量をなるべく抑制するという観点からは、オーバーフロー(の回避)の終了時点の直後の点Aよりは、その後の点Bを、コンパイル開始点とした方が望ましく、さらに、点Bよりは、その後の点Cを、コンパイル開始点とした方が望ましい。
【0105】
このように、コンパイルの対象とするエクステントのデータ量をなるべく抑制するには、オーバーフロー(の回避)の終了時点から、より後方の点(再生時刻が後の点)、つまり、アンダーフローが生じる時点により近い点を、コンパイル開始点とするのが望ましいが、コンパイル開始点が、アンダーフローが生じる時点に近すぎると、移転シークに要するシーク時間の間の再生を賄うことができるだけのAVデータが、バッファ20に存在せず、移転シークによって、アンダーフローが生じることになる。
【0106】
従って、コンパイル開始点は、オーバーフロー(の回避)の終了時点からなるべく後の、移転シークに要するシーク時間の間の再生を賄うことができるだけのAVデータがバッファ20に存在する点とするのが望ましい。その結果、図12では、コンパイル開始点の候補である点A,B,Cのうちの点Bが、コンパイル開始点とされる。
【0107】
なお、移転シークに要するシーク時間は、基本的に、その移転シークが開始される点から再配置領域までの距離に依存し、従って、移転シークが開始される点(位置)によって異なる。
【0108】
次に、図13および図14を参照して、コンパイルによってエクステントを再配置する再配置領域について説明する。
【0109】
コンパイルが行われると、再配置領域に再配置されたエクステントの読み出しが終了した後に、次に再生すべきエクステントへの復帰シークが行われる。従って、再配置領域のサイズ(再配置領域に再配置するエクステントのサイズ)は、復帰シークに要するシーク時間の間の再生を賄うことができるだけのAVデータがバッファ20に存在している状態で、移転シークが行われるように決定する必要がある。
【0110】
いま、復帰シークに要する最長シーク時間をTsmaxとするとともに、その最長シーク時間Tsmaxの移転シークが発生したときに、再生を途切れないようにするためにバッファ20に記憶されていなければならないAVデータのデータ量を、最低保証バッファ量Bminというものとすると、最低保証バッファ量Bminは、最長シーク時間Tsmaxと再生レートRpから、次式により求めることができる。
【0111】
Bmin=Tsmax×Rp・・・(1)
【0112】
なお、光ディスク32において、例えば、AVデータの配置位置が、ある範囲のLBNで表される特定の記録領域に限定されている場合、最長シーク時間Tsmaxは、その特定の記録領域の最小のLBNの論理ブロックから、最大のLBNの論理ブロックへシークするのに要する時間である。また、光ディスク32において、例えば、AVデータの配置位置が、特に制限されておらず、その記録領域のいずれにも、AVデータが配置される可能性がある場合、最長シーク時間Tsmaxは、いわゆるフルストロークのシークに要する時間である。
【0113】
一方、コンパイルによって再配置領域に再配置されたエクステントを読み出すことによって、バッファ20にバッファリングしなければならないAVデータのデータ量が最大となるケースは、図13に示すように、再配置領域への移転シークの完了時に、バッファ20のデータ量が0となっており、かつ、復帰シークが、最長シーク時間Tsmaxを要するシークである場合であり、このデータ量を、連続データ最低保証長Sdminとする。さらに、連続データ最低保証長SdminだけのAVデータを読み出す間に再生されるAVデータの再生時間を、最低保証再生時間Tpminというものとすると、最低保証バッファ量Bmin、最低保証再生時間Tpmin、読み出しレートRr、および再生レートRpには、式Bmin=Tpmin×(Rr−Rp)で表される関係があるから、これにより、最低保証再生時間Tpminは、次式で表すことができる。
【0114】
Tpmin=Bmin/(Rr−Rp)・・・(2)
【0115】
また、連続データ最低保証長Sdminは、最低保証再生時間Tpminと読み出しレートRrから、次式により求めることができる。
【0116】
Sdmin=Tpmin×Rr・・・(3)
【0117】
式(1)と(2)により、式(3)の連続データ最低保証長Sdminは、次式に示すように、最長シーク時間Tsmax、再生レートRp、および読み出しレートRrから求めることができる。
【0118】
Sdmin=Tsmax×Rr×Rp/(Rr−Rp)・・・(4)
【0119】
復帰シークにおいてアンダーフローが発生するのを防止するには、最悪のケース、即ち、移転シーク後のバッファ20の記憶データ量が0であり、復帰シークに最長シーク時間Tsmaxだけ要するケースを考慮して、再配置領域のサイズを、式(4)で求められる連続データ最低保証長Sdmin以上とする必要がある。
【0120】
なお、復帰シークにおいてアンダーフローが発生するのを防止するには、再配置領域のサイズを、連続データ最低保証長Sdminとすれば十分であるが、ここでは、再配置領域に再配置されるエクステントを分割しないこととしているので、図14に示すように、再配置領域に再配置されるエクステントの合計のデータ量が、連続データ最低保証長Sdminに一致しないことが多い。そこで、ここでは、連続データ最低保証長Sdminに配置することができる、コンパイル開始点のエクステントからの最大数のエクステントと、その次に再生されるべきエクステントとの合計のサイズを、再配置領域に必要とされる最低保証長Semptyとして、その最低保証長Semptyの再配置領域に、エクステントを配置することとする。即ち、コンパイルにあたっては、最低保証長Sempty以上のサイズの連続した空き領域のうちの、最低保証長Semptyの記録領域が、再配置領域とされ、エクステントが再配置される。
【0121】
次に、図15乃至図18を参照して、コンパイルを終了する終了点(コンパイル終了点)の決定方法について説明する。
【0122】
図15に示すように、あるコンパイル開始点からコンパイルを開始することによって、シークを抑制し、コンパイルを行わない場合に生じるアンダーフローを回避することができる。
【0123】
ところで、コンパイルは、エクステントを連続するように再配置するものであるから、コンパイルの対象とするエクステントを多くしていくと、図15に示すように、バッファ20におけるAVデータの記憶量は次第に増えていき、最終的には、オーバーフローする(オーバーフローを回避する回転待ちが行われる)ことになる。そして、コンパイルは、シークによるバッファ20のアンダーフローを防止することを目的として、シーク時間の間の再生を賄うことができるデータ量のAVデータをバッファ20にバッファリングするために、エクステントを再配置するものであるから、バッファ20が、それ以上データを記憶することができないオーバーフロー状態となった後も、コンパイルを続行しても、コンパイルを行う意義はない。
【0124】
従って、コンパイルは、そのコンパイルによって、バッファ20がオーバーフローする時点まで行えば十分であり、コンパイル前のアンダーフローが生じる時点まで行う必要は、必ずしもない。
【0125】
そこで、いま、図16に示すように、コンパイル終了点の候補として、コンパイル開始点から、コンパイルによりオーバーフローが発生する時点までの間の点A,B,C,Dを考える。なお、点A,B,C,Dは、その順番で、コンパイル開始点から後方に離れた点になっている。
【0126】
図16において、コンパイル開始点に最も近い点Aをコンパイル終了点とした場合、復帰シークのシーク時間の間の再生を賄うことができるだけのデータ量のAVデータがバッファ20にバッファリングされず、復帰シーク時に、再生が途切れることになる。
【0127】
また、図16において、コンパイル開始点に2番目に近い点B、3番目に近い点C、または最も遠い点Dを、コンパイル終了点とした場合、復帰シークのシーク時間の間の再生を賄うことができるだけのデータ量のAVデータがバッファ20にバッファリングされており、復帰シーク時に、再生が途切れることはない。なお、復帰シークに要するシーク時間は、図12で説明した移転シークにおける場合と同様に、復帰シークが開始される点(位置)によって異なる。
【0128】
以上から、コンパイル終了点としては、点A乃至Dのうちの点B,C,Dを採用することができる。
【0129】
ところで、コンパイル終了点においては、その最低限の条件として、復帰シークのシーク時間の間の再生を賄うことができるだけのデータ量のAVデータがバッファ20にバッファリングされていれば良いから、かかる観点からすれば、点B乃至Dのうちのいずれを、コンパイル終了点としてもかまわない。
【0130】
しかしながら、コンパイル所要時間をなるべく短くするには、コンパイルの対象とするエクステントの量をなるべく抑制するのが望ましい。また、光ディスク32上の空き領域の有効活用の観点からは、連続した空き領域に、できるだけ多くのエクステントを再配置すること、即ち、コンパイルの対象とするエクステントの量を、連続した空き領域のサイズになるべく近くするのが望ましい。
【0131】
そこで、コンパイルの対象とするエクステントの量をなるべく抑制するように、コンパイル終了点を決定する方式を、第1の方式というものする。また、コンパイルの対象とするエクステントの量を、連続した空き領域のサイズになるべく近くするように、コンパイル終了点を決定する方式を、第2の方式というものとする。
【0132】
第1の方式によれば、図16における点B乃至Dのうちの、コンパイル開始点から最も近い点Bが、コンパイル終了点として決定される。一方、第2の方式によれば、図16における点B乃至Dのうちの、コンパイル開始点から最も遠い点Dが、コンパイル終了点として決定される。
【0133】
なお、図16において、点Dは、バッファ20のオーバーフローが生じる点となっており、上述したように、オーバーフロー状態となった後も、コンパイルを続行しても、コンパイルを行う意義はない。このため、第2の方式では、コンパイルの対象とするエクステントの量が、連続した空き領域のサイズにならなくても、オーバーフローが生じる時点となったときは、その時点が、コンパイル終了点とされる。
【0134】
また、第1と第2の方式のいずれによってコンパイル終了点を決定した場合でも、復帰シークによって再生が途切れないだけのエクステントの再配置が完了した時点で、コンパイル終了点以前であっても、コンパイルを終了することができる。
【0135】
第1の方式によれば、コンパイルの対象とするエクステントの量が抑制されるので、ある1つの再配置領域に再配置されるエクステントの量が小さくなる。従って、コンパイル所要時間を短くすることができるが、図17に示すように、光ディスク32の空き領域に、小さな再配置領域が確保されていく結果、小さな空き領域が、いわば細切れ状になって無駄に残ることがあり得る。さらに、第1の方式では、再配置されるエクステントの量が小さいため、復帰シーク後にバッファ20にバッファリングされているAVデータのデータ量も少なくなり、その後、アンダーフローが再度発生する可能性が高くなる。このため、再度、コンパイルが行われる可能性が高くなり、その結果、上述したように、光ディスク32上に、小さな再配置領域が確保されていくのと相俟って、その小さな再配置領域が分散する。
【0136】
一方、第2の方式によれば、コンパイルの対象とするエクステントの量が、連続した空き領域のサイズになるべく近くされるので、第1の方式で生じる空き領域の無駄を防止することができる。さらに、第2の方式では、再配置されるエクステントの量が大きいため、復帰シーク後にバッファ20にバッファリングされているAVデータのデータ量も多くなり、その後、アンダーフローが再度発生する可能性が低くなる。
【0137】
但し、第2の方式では、バッファ20にバッファリングされているAVデータのデータ量が多いため、無駄なコンパイルが行われることがあり得る。
【0138】
即ち、第2の方式は、いわば、第1の方式によりコンパイル終了点が決定されたコンパイルに加えて、さらに、エクステントを追加して再配置するように、コンパイル終了点を決定するものである。従って、図18に示すように、第1の方式によりコンパイル終了点を決定してコンパイルを行った後にオーバーフローが生じる場合は、第2の方式によりコンパイル終了点を決定してコンパイルを行った後も、必ず、オーバーフローが生じる。このように、第1の方式により行われたコンパイルの後にオーバーフローが生じるのであるから、第2の方式において、第1の方式により行われたコンパイルに加えて、さらに、エクステントを追加して再配置する必要はなかったということになる。
【0139】
次に、図19のフローチャートを参照して、図1のディスク装置で行われるコンパイル処理について説明する。
【0140】
まず最初に、ステップS1において、リアルタイム再生可否判定部13は、メディア読み出しラインLr、リアルタイム再生ラインLp、およびバッファ上限ラインLupを求め、メディア読み出しラインLrの先頭(時刻が0の時点)を、コンパイル開始点として決定し、ステップS2に進む。
【0141】
なお、ステップS1において、リアルタイム再生可否判定部13は、バッファ20のオーバーフローを回避した状態のメディア読み出しラインLr(図7、図8)を求める。
【0142】
ステップS2では、リアルタイム再生可否判定部13が、メディア読み出しラインLrの、コンパイル開始点から時間の経過方向へのチェックを開始し、オーバーフロー(の回避)状態またはアンダーフロー状態を検出するか、あるいは、メディア読み出しラインLrの最後までのチェックを完了すると、ステップS3に進む。
【0143】
ステップS3では、リアルタイム再生可否判定部13が、ステップS2でチェックを開始したメディア読み出しラインLrについて、オーバーフロー状態またはアンダーフロー状態を検出したかどうかと、メディア読み出しラインLrの最後までのチェックを完了したかどうかを判定する。
【0144】
ステップS3において、メディア読み出しラインLrについて、オーバーフロー状態を検出したと判定された場合、ステップS4に進み、リアルタイム再生可否判定部13は、そのオーバーフロー(の回避)が終了した時点を、コンパイル開始点として、新たに決定(選択)する。そして、ステップS2に戻り、以下、同様の処理が繰り返される。
【0145】
また、ステップS3において、メディア読み出しラインLrについて、アンダーフロー状態を検出したと判定された場合、即ち、現在の光ディスク32におけるエクステントの記録状態では、AVデータをリアルタイムで再生することができない場合、ステップS5に進み、コンパイルシミュレーション部15は、再配置領域となる連続した空き領域を予約する処理を行い、ステップS6に進む。
【0146】
ステップS6では、コンパイルシミュレーション部15が、ステップS5の処理において再配置領域となる条件を満たす連続した空き領域を、光ディスク32の空き領域から検出することができたかどうかを判定し、そのような空き領域を検出することができなかったと判定した場合、ステップS7に進む。ステップS7では、コンパイルシミュレーション部15は、リアルタイム再生を保証するコンパイルを行うことができない旨を表す異常終了メッセージを、システム制御部12を介して、ユーザI/F11から出力(表示)し、処理を終了する。
【0147】
また、ステップS6において、ステップS5の処理において再配置領域となる条件を満たす連続した空き領域を、光ディスク32の空き領域から検出することができたと判定された場合、ステップS8に進み、コンパイルシミュレーション部15は、その空き領域に、エクステントを再配置しながら、エクステント終了点を、上述の第1または第2の方式により決定するシミュレーションを行い、ステップS9に進む。
【0148】
ステップS9では、コンパイルシミュレーション部15は、ステップS8でエクステントを再配置した結果残った空き領域を開放し、ステップS10に進む。ステップS10では、コンパイルシミュレーション部15は、ステップS8で決定したコンパイル終了位置を、コンパイル開始位置として新たに決定(選択)する。そして、ステップS2に戻り、以下、同様の処理が繰り返される。
【0149】
ここで、ステップS8においてエクステントの再配置が行われると、その再配置後のメディア読み出しラインLrは、再配置前のものから変化する。このため、ステップS10では、エクステントの再配置後のメディア読み出しラインLrが求められ、その後、そのメディア読み出しラインLrについて、コンパイル開始点が決定される。
【0150】
一方、ステップS3において、メディア読み出しラインLrの最後までのチェックが完了したと判定された場合、ステップS11に進み、コンパイルシミュレーション部15は、リアルタイム再生を保証するコンパイルを行うことができる旨を表す正常終了メッセージを、システム制御部12を介して、ユーザI/F11から出力(表示)し、ステップS12に進む。
【0151】
ステップS12では、コンパイルシミュレーション部15が、ステップS8で行ったエクステントを再配置するシミュレーションのシミュレーション結果を表すシミュレーション結果情報を、シミュレーション結果記憶部16に書き込み、ステップS13に進む。
【0152】
ステップS13では、コンパイルシミュレーション部15が、シミュレーション結果記憶部16におけるシミュレーション結果情報に基づき、実際にコンパイルを行うのに要するコンパイル所要時間の予測値を計算する。
【0153】
ここで、コンパイルにおいて、エクステントを再配置領域にコピーする場合は、例えば、コンパイル対象のエクステントのトータルなサイズをディスクドライブ2の読み出しレートRrと書き込みレートそれぞれで除算した除算結果を加算することによって、コンパイル所要時間の予測値を計算することができる。
【0154】
また、コンパイルにおいて、エクステントを再配置領域に移動する場合は、例えば、コンパイル対象のエクステントのトータルなサイズをディスクドライブ2の読み出しレートRr、書き込みレート、消去レートそれぞれで除算した除算結果を加算することによって、コンパイル所要時間の予測値を計算することができる。なお、ディスクドライブ2におけるデータの消去は、一般に、光ディスク32上のデータを実際に消去するのではなく、ファイルシステムで管理されている、光ディスク32上のデータに関する情報を書き換えることによって行われる。従って、光ディスク32におけるデータの消去は、データが読み書きされるのに要する時間に比較して瞬時に行われるので、エクステントを再配置領域に移動する場合のコンパイル所要時間の予測値の計算は、消去レートを考慮せずに(消去に要する時間を0として)行っても、それほど大きな問題はない。
【0155】
コンパイルシミュレーション部15は、ステップS13においてコンパイル所要時間の予測値を計算すると、その予測値を、システム制御部12を介して、ユーザI/F11から出力(表示)し、ステップS14に進む。ステップS14では、コンパイル実行部17が、シミュレーション結果情報記憶部16に記憶されたシミュレーション結果情報を参照することにより、コンパイルシミュレーション部15がステップS8で行ったエクステントを再配置するシミュレーションのシミュレーション結果が、実際に得られるように、光ディスク32上のエクステントを実際に再配置するコンパイルを実行し、処理を終了する。
【0156】
次に、図20のフローチャートを参照して、図19のステップS5の処理の詳細について説明する。
【0157】
まず最初に、ステップS21において、コンパイルシミュレーション部15は、メディア読み出しラインLrのコンパイル開始点から時間経過方向に向かって最初に現れるアンダーフロー状態の直前の左肩となっている点を、暫定的なコンパイル開始点(以下、適宜、暫定開始点という)として選択し、ステップS22に進む。
【0158】
ここで、コンパイルシミュレーション部15が、ステップS21の処理を行うにあたっては、メディア読み出しラインLrとコンパイル開始点が必要となるが、このメディア読み出しラインLrとコンパイル開始点は、例えば、リアルタイム再生可否判定部13からシステム制御部12を介して、コンパイルシミュレーション部15に供給されるようになっている。
【0159】
ステップS22では、コンパイルシミュレーション部15は、最低保証長Sempty(図14)以上の光ディスク32上の空き領域であり、かつ、その先頭の論理ブロック(LB)に、再生を途切れさせずに移転シークすることができる空き領域のうち、光ディスク32上における、暫定開始点に対応する位置から最も近い連続した空き領域を検出し、ステップS23に進む。
【0160】
ステップS23では、コンパイルシミュレーション部15が、ステップS22において、最低保証長Sempty以上の光ディスク32上の空き領域であり、かつ、その先頭の論理ブロックに、再生を途切れさせずに移転シークすることができる空き領域を検出することができたかどうかを判定する。ステップS23において、ステップS22で空き領域を検出することができなかったと判定された場合、即ち、最低保証長Sempty以上の光ディスク32上の空き領域であり、かつ、その先頭の論理ブロックに、再生を途切れさせずに移転シークすることができる空き領域が存在しない場合、ステップS24に進み、コンパイルシミュレーション部15は、コンパイル開始点と、暫定開始点とが一致しているかどうかを判定する。
【0161】
ステップS24において、コンパイル開始点と、暫定開始点とが一致していないと判定された場合、ステップS25に進み、コンパイルシミュレーション部15は、メディア読み出しラインLrの現在の暫定開始点から、時間的に戻る方向に向かって最初に現れる左肩となっている点を、暫定開始点として、新たに選択し、ステップS22に戻り、以下、同様の処理を繰り返す。
【0162】
また、ステップS24において、コンパイル開始点と、暫定開始点とが一致すると判定された場合、即ち、あるオーバーフロー状態から次に現れるアンダーフロー状態までの間に、再生を途切れさせずに移転シークを行うことができるコンパイル開始点が存在しない場合、ステップS26に進み、コンパイルシミュレーション部15は、リアルタイムでの再生を行うことができない旨のシミュレーション結果を表すリアルタイム不可メッセージを、シミュレーション結果記憶部16に、シミュレーション結果情報として書き込み、リターンする。
【0163】
ここで、シミュレーション結果記憶部16におけるシミュレーション結果情報が、リアルタイム不可メッセージである場合には、図19のステップS6において、再配置領域となる条件を満たす連続した空き領域を、光ディスク32の空き領域から検出することができなかったと判定される。
【0164】
一方、ステップS23において、ステップS22で空き領域を検出することができたと判定された場合、即ち、最低保証長Sempty以上の光ディスク32上の空き領域であり、かつ、その先頭の論理ブロックに、再生を途切れさせずに移転シークすることができる空き領域が存在し、ステップS23において、そのような空き領域の中から、光ディスク32上における、暫定開始点に対応する位置から最も近い連続した空き領域が検出された場合、ステップS27に進み、コンパイルシミュレーション部15は、現在の暫定開始点を、コンパイル開始点として選択し、ステップS28に進む。
【0165】
ステップS28では、コンパイルシミュレーション部15は、ステップS22で検出された空き領域、即ち、最低保証長Sempty以上の空き領域であり、かつ、その先頭の論理ブロックに、再生を途切れさせずに移転シークすることができる空き領域のうち、光ディスク32上における、暫定開始点に対応する位置から最も近い空き領域を予約し(空き領域を仮想的に確保し)、リターンする。
【0166】
この場合、図19のステップS6では、再配置領域となる条件を満たす連続した空き領域を、光ディスク32の空き領域から検出することができたと判定される。
【0167】
ここで、ステップS22において、光ディスク32上における、暫定開始点に対応する位置から最も近い空き領域を検出することにより、移転シークに要するシーク時間が短くなるので、ステップS27において、オーバーフロー(の回避)の終了時点から、より後方(時間的に後)の点が、コンパイル開始点として選択されることになる。また、ステップS22において、最低保証長Sempty以上の空き領域を検出することにより、プレイリストにしたがって行われる再生において生じるシークの回数が抑制される。これにより、バッファ20におけるAVデータのバッファリングが促進され、ディスク32上に確保される再配置領域の全体のサイズを小さくする(節約する)ことができる。
【0168】
次に、図21のフローチャートを参照して、図19のステップS8の処理の詳細について説明する。
【0169】
なお、図19のステップS8では、上述したように、エクステント終了点を、第1または第2の方式により決定する。
【0170】
そこで、まず最初に、図21Aのフローチャートを参照して、エクステント終了点を、第1の方式により決定する場合の図19のステップS8の処理の詳細について説明する。
【0171】
まず最初に、ステップS31において、コンパイルシミュレーション部15は、コンパイル開始点の(直後の)エクステントを、図19のステップS5で予約された空き領域(以下、適宜、再配置用空き領域という)に再配置する注目エクステントとして選択し、ステップS32に進む。
【0172】
ステップS32では、コンパイルシミュレーション部15は、注目エクステントを、再配置用空き領域の先頭に(仮想的に)配置し、ステップS33に進む。ステップS33では、コンパイルシミュレーション部15は、直前のステップS32で再配置された注目エクステントの最後から、再生を途切れさせることなく復帰シークが可能であるかどうかを判定する。ステップS33において、注目エクステントの最後から、再生を途切れさせることなく復帰シークを行うことができないと判定された場合、即ち、最後に再配置されたエクステントの最後から復帰シークを行うと、再生が途切れてしまう場合、ステップS31に戻り、コンパイルシミュレーション部15は、いま、注目エクステントとなっているエクステントの次に再生されるべきエクステントを、注目エクステントとして新たに選択し、ステップS32に進む。ステップS32では、コンパイルシミュレーション部15は、注目エクステントを、再配置用空き領域の、前回の注目エクステントが配置された直後に(仮想的に)配置して、ステップS33に進み、以下、同様の処理を繰り返す。
【0173】
一方、ステップS33において、注目エクステントの最後から、再生を途切れさせることなく復帰シークを行うことができると判定された場合、即ち、最後に再配置されたエクステントの最後から復帰シークを行っても、再生が途切れない場合、ステップS34に進み、コンパイルシミュレーション部15は、再配置用空き領域に最後に配置したエクステントの最後を、コンパイル終了点として決定(選択)し、リターンする。
【0174】
次に、図21Bのフローチャートを参照して、エクステント終了点を、第2の方式により決定する場合の図19のステップS8の処理の詳細について説明する。
【0175】
まず最初に、ステップS41において、コンパイルシミュレーション部15は、コンパイル開始点の(直後の)エクステントを、図19のステップS5で予約された空き領域(再配置用空き領域)に再配置する注目エクステントとして選択し、ステップS42に進む。
【0176】
ステップS42では、コンパイルシミュレーション部15は、注目エクステントを、再配置用空き領域の先頭に(仮想的に)配置し、ステップS43に進む。ステップS43では、コンパイルシミュレーション部15は、再配置用空き領域に、注目エクステントとなっているエクステントの次に再生されるべきエクステントを配置することができるだけの領域が余っているかどうかを判定する。
【0177】
ステップS43において、再配置用空き領域に、注目エクステントとなっているエクステントの次に再生されるべきエクステントを配置することができるだけの領域が余っていると判定された場合、ステップS44に進み、コンパイルシミュレーション部15は、いままでに再配置用空き領域に配置されたエクステントの読み出し中に、バッファ20のオーバーフローが生じるかどうかを判定する。
【0178】
ステップS44において、いままでに再配置用空き領域に配置されたエクステントの読み出し中に、バッファ20のオーバーフローが生じないと判定された場合、ステップS41に戻り、コンパイルシミュレーション部15は、いま、注目エクステントとなっているエクステントの次に再生されるべきエクステントを、注目エクステントとして新たに選択し、ステップS42に進む。ステップS42では、コンパイルシミュレーション部15は、注目エクステントを、再配置用空き領域の、前回の注目エクステントが配置された直後に(仮想的に)配置して、ステップS43に進み、以下、同様の処理を繰り返す。
【0179】
一方、ステップS43において、再配置用空き領域に、注目エクステントとなっているエクステントの次に再生されるべきエクステントを配置することができるだけの領域が余っていないと判定されるか、または、ステップS44において、いままでに再配置用空き領域に配置されたエクステントの読み出し中に、バッファ20のオーバーフローが生じると判定された場合、即ち、復帰シークに要するシーク時間の間の再生を途切れさせないだけのAVデータが、バッファ20にバッファリングされるように、エクステントが再配置用空き領域に再配置された場合、ステップS45に進み、コンパイルシミュレーション部15は、再配置用空き領域に最後に配置したエクステントの最後を、コンパイル終了点として決定し、リターンする。
【0180】
以上のように、ディスク装置のバッファサイズBや再生遅延許容時間Twなどに応じて、AVデータのリアルタイム再生可否を判定し、リアルタイム再生ができない場合には、エクステントを選択して、連続した空き領域に再配置するようにしたので、再生のリアルタイム性を確保することができる。さらに、コンパイルに要するコンパイル所要時間や、エクステントが再配置される光ディスク32上の再配置領域をできるだけ小にすることなどが可能となる。
【0181】
なお、図19のステップS13において、ユーザI/F11から出力されるコンパイル所要時間の予測値は、バッファサイズBや再生遅延許容時間Twなどによって変化する。従って、例えば、ユーザI/F11を操作することによって、バッファサイズBや再生遅延許容時間Twを変更することができる場合には、バッファサイズBや再生遅延許容時間Twと、コンパイル所要時間の予測値とのトレードオフを、ユーザに判断させることが可能となる。
【0182】
ここで、図19では、ステップS13において、コンパイル所要時間の予測値を出力した後、即座に、ステップS14において、コンパイルを実行することとしたが、ステップS13において、コンパイル所要時間の予測値を出力した後は、コンパイルを実行するかどうかの指令を、ユーザから受け付けるようにし、実行する旨の指令があった場合にのみ、コンパイルを実行するようにすることができる。
【0183】
次に、図22は、本発明を適用したディスク装置の他の実施の形態の構成例を示している。なお、図中、図1における場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。即ち、図22のディスク装置は、ディスクドライブ2に、記録媒体33が新たに設けられている他は、図1における場合と同様に構成されている。
【0184】
図1の実施の形態においては、エクステントが、光ディスク32の空き領域に再配置されるようになっているが、図22の実施の形態では、エクステントが、光ディスク32とは異なる(別の)記録媒体33に再配置されるようになっている。
【0185】
ここで、記録媒体33としては、光ディスクの他、HDや半導体メモリなどの、光ディスクに比較してシーク時間が十分小さい、あるいはシークが行われないものを採用することができる。この場合、上述の最長シーク時間Tsmax(図13)が十分小さいか、あるいはほぼ0となるため、最低保証長Semptyも十分小さくなり、エクステントの再配置のために使用される空き領域は小さなもので済むようになる。その結果、コンパイル終了点の決定方法として、第1の方式を採用した場合であっても、図17で説明したような、小さな空き領域が細切れ状になって無駄に残ることがなくなる。
【0186】
次に、再生制御部1における上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
【0187】
そこで、図23は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
【0188】
プログラムは、コンピュータに内蔵されている記録領域としてのハードディスク105やROM103に予め記録しておくことができる。
【0189】
あるいはまた、プログラムは、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録領域111に、一時的あるいは永続的に格納(記録)しておくことができる。このようなリムーバブル記録領域111は、いわゆるパッケージソフトウエアとして提供することができる。
【0190】
なお、プログラムは、上述したようなリムーバブル記録領域111からコンピュータにインストールする他、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを、通信部108で受信し、内蔵するハードディスク105にインストールすることができる。
【0191】
コンピュータは、CPU(Central Processing Unit)102を内蔵している。CPU102には、バス101を介して、入出力インタフェース110が接続されており、CPU102は、入出力インタフェース110を介して、ユーザによって、キーボードや、マウス、マイク等で構成される入力部107が操作等されることにより指令が入力されると、それにしたがって、ROM(Read Only Memory)103に格納されているプログラムを実行する。あるいは、また、CPU102は、ハードディスク105に格納されているプログラム、衛星若しくはネットワークから転送され、通信部108で受信されてハードディスク105にインストールされたプログラム、または図1や図22のディスクドライブ2に相当するドライブ109に装着されたリムーバブル記録領域111から読み出されてハードディスク105にインストールされたプログラムを、RAM(Random Access Memory)104にロードして実行する。これにより、CPU102は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU102は、その処理結果を、必要に応じて、例えば、入出力インタフェース110を介して、LCD(Liquid Crystal Display)やスピーカ等で構成される出力部106から出力、あるいは、通信部108から送信、さらには、ハードディスク105に記録等させる。
【0192】
ここで、本明細書において、コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含むものである。
【0193】
また、プログラムは、1つのコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【0194】
なお、本実施の形態では、光ディスクを対象としたが、本発明は、光ディスク以外の、例えば、磁気ディスク等の記録媒体に適用可能である。
【0195】
また、光ディスク32に記録されるデータは、AVデータに限られず、ビデオデータのみ、あるいはオーディオデータのみ、さらには、その他のデータであってもかまわない。
【0196】
さらに、図1および図22のディスク装置において、バッファ20は、ディスクドライブ2内に設けることが可能である。
【0197】
また、本発明は、非破壊編集結果を再生する場合だけでなく、例えば、光ディスク32に分断されて記録されたAVデータを再生する場合にも適用可能である。
【0198】
【発明の効果】
以上の如く、本発明によれば、再生のリアルタイム性を保証することが可能となる。
【図面の簡単な説明】
【図1】本発明を適用したディスク装置の一実施の形態の構成例を示すブロック図である。
【図2】光ディスク32に記録されたAVデータのファイルと非破壊編集結果との関係を示す図である。
【図3】プレイリストを示す図である。
【図4】アロケーションディスクリプタのリストを示す図である。
【図5】光ディスク32に分断されて記録されているAVデータを読み出す場合の読み出しデータ量の推移を示す図である。
【図6】オーバーフローとアンダーフローが生じる場合を説明する図である。
【図7】オーバーフローの回避方法を説明する図である。
【図8】リアルタイム再生可否の判定方法を説明する図である。
【図9】再生のリアルタイム性を確保するコンパイルを説明する図である。
【図10】光ディスク32上のエクステントのコンパイルが行われる様子を示す図である。
【図11】コンパイル開始点の決定方法を説明する図である。
【図12】コンパイル開始点の決定方法を説明する図である。
【図13】コンパイルによってエクステントを再配置する再配置領域のサイズを説明する図である。
【図14】コンパイルによってエクステントを再配置する再配置領域のサイズを説明する図である。
【図15】コンパイル終了点の決定方法を説明する図である。
【図16】コンパイル終了点の決定方法を説明する図である。
【図17】第1の方式によるコンパイル終了点の決定方法を説明する図である。
【図18】第2の方式によるコンパイル終了点の決定方法を説明する図である。
【図19】コンパイル処理を説明するフローチャートである。
【図20】ステップS5の処理の詳細を説明するフローチャートである。
【図21】ステップS8の処理の詳細を説明するフローチャートである。
【図22】本発明を適用したディスク装置の一実施の形態の構成例を示すブロック図である。
【図23】本発明を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【符号の説明】
1 再生制御部, 2 ディスクドライブ, 11 ユーザI/F, 12 システム制御部, 13 リアルタイム再生可否判定部, 14 システム情報記憶部, 15 コンパイルシミュレーション部, 16 シミュレーション結果記憶部, 17 コンパイル実行部, 18 再生実行部, 19 データ配置情報抽出部, 20 バッファ, 31 ディスクI/F, 32 光ディスク,33 記録媒体, 101 バス, 102 CPU, 103 ROM, 104RAM, 105 ハードディスク, 106 出力部, 107 入力部, 108 通信部, 109 ドライブ, 110 入出力インタフェース, 111 リムーバブル記録領域
Claims (11)
- 第1の記録領域に記録されたデータをリアルタイムで再生することができるかどうかを判定するリアルタイム再生可否判定手段と、
前記第1の記録領域に記録されたデータをリアルタイムで再生することができないとき、前記第1の記録領域に記録されたデータの中から、所定のデータを選択するデータ選択手段と、
前記データ選択手段において選択されたデータを、第2の記録領域に再配置する再配置手段と
を備えることを特徴とするデータ処理装置。 - 前記第1と第2の記録領域は、同一または異なる記録媒体上の記録領域である
ことを特徴とする請求項1に記載のデータ処理装置。 - 前記第1または第2の記録領域から前記データが読み出され、所定のバッファにバッファリングされて再生される場合において、
前記リアルタイム再生可否判定手段は、前記所定のバッファがアンダーフローするかどうかによって、データをリアルタイムで再生することができるかどうかを判定する
ことを特徴とする請求項1に記載のデータ処理装置。 - 前記データ選択手段は、前記バッファのアンダーフローが生じるアンダーフロー時点よりも前の、前記アンダーフロー時点に最も近い時点であって、前記第2の記録領域に再配置されたデータの読み出しがリアルタイムでの再生に間に合う分以上のデータが前記所定のバッファにバッファリングされている時点において前記第1の記録領域から読み出すべきデータを、第2の記録領域に再配置する開始点として選択する
ことを特徴とする請求項3に記載のデータ処理装置。 - 前記再配置手段は、前記第2の記録領域に再配置されるデータの次に再生すべき前記第1の記録領域に記録されたデータの読み出しがリアルタイムでの再生に間に合う分以上のデータが前記所定のバッファにバッファリングされている時点において前記第1の記録媒体から読み出すべきデータを終了点として、前記開始点から終了点までのデータを、前記第2の記録領域に再配置する
ことを特徴とする請求項4に記載のデータ処理装置。 - 前記開始点から終了点までのデータを、連続して再配置することができる前記第2の記録領域を検出する記録領域検出手段をさらに備える
ことを特徴とする請求項5に記載のデータ処理装置。 - 前記再配置手段は、前記所定のバッファのオーバーフローが生じる時点において前記所定のバッファにバッファリングされるデータを終了点として、前記開始点から終了点までのデータを、前記第2の記録領域に再配置する
ことを特徴とする請求項4に記載のデータ処理装置。 - 前記開始点から終了点までのデータを、連続して再配置することができる前記第2の記録領域を検出する記録領域検出手段をさらに備える
ことを特徴とする請求項7に記載のデータ処理装置。 - 前記データを、前記第2の記録領域に再配置するのに要する時間を予測する時間予測手段をさらに備える
ことを特徴とする請求項1に記載のデータ処理装置。 - 第1の記録領域に記録されたデータをリアルタイムで再生することができるかどうかを判定するリアルタイム再生可否判定ステップと、
前記第1の記録領域に記録されたデータをリアルタイムで再生することができないとき、前記第1の記録領域に記録されたデータの中から、所定のデータを選択するデータ選択ステップと、
前記データ選択ステップにおいて選択されたデータを、第2の記録領域に再配置する再配置ステップと
を備えることを特徴とするデータ処理方法。 - コンピュータに実行させるプログラムにおいて、
第1の記録領域に記録されたデータをリアルタイムで再生することができるかどうかを判定するリアルタイム再生可否判定ステップと、
前記第1の記録領域に記録されたデータをリアルタイムで再生することができないとき、前記第1の記録領域に記録されたデータの中から、所定のデータを選択するデータ選択ステップと、
前記データ選択ステップにおいて選択されたデータを、第2の記録領域に再配置させる再配置ステップと
を備えることを特徴とするプログラム。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002366199A JP2004199767A (ja) | 2002-12-18 | 2002-12-18 | データ処理装置およびデータ処理方法、並びにプログラム |
US10/738,793 US7552299B2 (en) | 2002-12-18 | 2003-12-16 | Data-processing apparatus, data-processing method and program |
EP03257973A EP1434225A3 (en) | 2002-12-18 | 2003-12-17 | Data-processing apparatus, data-processing method and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002366199A JP2004199767A (ja) | 2002-12-18 | 2002-12-18 | データ処理装置およびデータ処理方法、並びにプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004199767A true JP2004199767A (ja) | 2004-07-15 |
JP2004199767A5 JP2004199767A5 (ja) | 2005-04-07 |
Family
ID=32463468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002366199A Abandoned JP2004199767A (ja) | 2002-12-18 | 2002-12-18 | データ処理装置およびデータ処理方法、並びにプログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US7552299B2 (ja) |
EP (1) | EP1434225A3 (ja) |
JP (1) | JP2004199767A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006325082A (ja) * | 2005-05-20 | 2006-11-30 | Canopus Co Ltd | 動画データ編集装置および方法 |
WO2010073379A1 (ja) * | 2008-12-26 | 2010-07-01 | パイオニア株式会社 | 記録媒体再生装置、記録媒体再生方法、記録媒体再生プログラムおよび記録媒体再生プログラムを格納した記録媒体 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8621176B2 (en) * | 2010-01-20 | 2013-12-31 | Netapp, Inc. | Method and system for allocating data objects for efficient reads in a mass storage subsystem |
CN110784278B (zh) * | 2019-10-29 | 2021-04-02 | 北京无线电计量测试研究所 | 一种基于卫星双向的远程时间复现系统 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07176174A (ja) * | 1992-12-25 | 1995-07-14 | Mitsubishi Electric Corp | ディスク装置 |
US5745771A (en) * | 1994-07-08 | 1998-04-28 | Hitachi, Ltd. | Disc array device and disc control method |
JP3778985B2 (ja) * | 1996-03-19 | 2006-05-24 | パイオニア株式会社 | 情報記録媒体、記録装置及び記録方法並びに再生装置及び再生方法 |
KR100532738B1 (ko) | 1997-09-17 | 2005-12-01 | 마츠시타 덴끼 산교 가부시키가이샤 | 비디오 데이터 편집장치, 비디오 데이터 편집장치의 기록매체로서 이용하기 위한 광디스크 및 편집 프로그램을 저장한 컴퓨터 판독가능한 기록매체 |
JP3786151B2 (ja) | 1997-11-05 | 2006-06-14 | ソニー株式会社 | 編集装置及び編集方法 |
EP2261920A3 (en) | 1998-02-23 | 2011-03-09 | Kabushiki Kaisha Toshiba | Information storage medium, information playback method and apparatus and information recording method |
DE19909367A1 (de) | 1999-03-03 | 2000-09-07 | Thomson Brandt Gmbh | Verfahren zur Transferierung von Echtzeitdateien |
CN1253885C (zh) * | 1999-09-30 | 2006-04-26 | 松下电器产业株式会社 | 包括系统控制器并用于记录和再现信息的装置及方法 |
-
2002
- 2002-12-18 JP JP2002366199A patent/JP2004199767A/ja not_active Abandoned
-
2003
- 2003-12-16 US US10/738,793 patent/US7552299B2/en not_active Expired - Fee Related
- 2003-12-17 EP EP03257973A patent/EP1434225A3/en not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006325082A (ja) * | 2005-05-20 | 2006-11-30 | Canopus Co Ltd | 動画データ編集装置および方法 |
WO2010073379A1 (ja) * | 2008-12-26 | 2010-07-01 | パイオニア株式会社 | 記録媒体再生装置、記録媒体再生方法、記録媒体再生プログラムおよび記録媒体再生プログラムを格納した記録媒体 |
Also Published As
Publication number | Publication date |
---|---|
US20040130814A1 (en) | 2004-07-08 |
EP1434225A2 (en) | 2004-06-30 |
EP1434225A3 (en) | 2009-03-18 |
US7552299B2 (en) | 2009-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4096310B2 (ja) | 情報作成装置および方法、再生装置および方法、並びにプログラム | |
JPH09161399A (ja) | 記録再生装置 | |
JP2004297441A (ja) | 情報作成装置および方法、再生装置および方法、並びにプログラム | |
JP2005005855A (ja) | 記録装置 | |
US20050259542A1 (en) | Reproduction device and method, recording medium, and program | |
JP2004199767A (ja) | データ処理装置およびデータ処理方法、並びにプログラム | |
JP3637346B1 (ja) | 情報記録装置と情報記録方法とプログラム | |
JP3783233B2 (ja) | 情報処理装置および情報処理方法、並びにプログラム | |
JP2002351705A (ja) | デジタル信号記録再生装置、及びデジタル信号記録再生方法 | |
JP2005129168A (ja) | 情報記録装置と情報記録方法とプログラム | |
JP2008152820A (ja) | 映像音声データ記録再生装置、映像音声データ記録再生方法、および記録媒体 | |
JP2001043622A (ja) | 情報処理装置 | |
JP2005004830A (ja) | 情報処理方法及び情報処理装置 | |
JP2004171670A (ja) | 記録再生装置及び記録再生方法 | |
US20040126103A1 (en) | Method and apparatus for data access in a video recorder with a disk drive | |
JP2004078704A (ja) | 映像音声記録再生装置とそのファイル読み書き方法 | |
JP4137429B2 (ja) | 記録再生装置、記録再生方法、プログラム及び記録媒体 | |
JPWO2010007727A1 (ja) | 映像記録装置、映像再生装置およびその方法 | |
JP4204433B2 (ja) | レコーダおよびプログラム | |
JP2004199767A5 (ja) | ||
JP4207556B2 (ja) | 再生装置および方法、並びにプログラム | |
KR20070049104A (ko) | 정보 기록 장치, 정보 기록 방법, 정보 기록 프로그램, 및기록 매체 | |
JP2010049732A (ja) | 記録方式、記憶媒体及び記憶装置 | |
JP4865207B2 (ja) | 画像記録再生装置 | |
JP2009032379A (ja) | デジタルコンテンツ再生装置および半導体集積回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040430 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040430 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060224 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060419 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070323 |
|
A762 | Written abandonment of application |
Free format text: JAPANESE INTERMEDIATE CODE: A762 Effective date: 20090828 |