ディスク管理方法、ディスク管理装置およびディスク管理用プログラム
【課題】本発明は、データ再生の際にディスクのシーク回数を抑えることができるようにする新たなディスク管理技術の提供を目的とする。
【解決手段】ディスクに記録されるコンテンツの記録領域を指定するリストと、ディスクの持つ連続した空き領域を指定するリストとによってディスクの領域を管理して、新たなコンテンツをディスクに書き込む際に、空き領域リストを検索し、そのコンテンツのデータ全体を格納するのに十分な大きさの空き領域があった場合には、その中で最も小さな空き領域にコンテンツの記録領域を割り当て、一方、十分な大きさの空き領域が見つからなかった場合には、コンテンツのデータを分割し、サイズの大きな空き領域からコンテンツの記録領域を割り当てるようにする。この構成に従って、ディスクのフラグメントの発生を減らすことで、ディスクのシーク回数を抑えることができるようになる。
【解決手段】ディスクに記録されるコンテンツの記録領域を指定するリストと、ディスクの持つ連続した空き領域を指定するリストとによってディスクの領域を管理して、新たなコンテンツをディスクに書き込む際に、空き領域リストを検索し、そのコンテンツのデータ全体を格納するのに十分な大きさの空き領域があった場合には、その中で最も小さな空き領域にコンテンツの記録領域を割り当て、一方、十分な大きさの空き領域が見つからなかった場合には、コンテンツのデータを分割し、サイズの大きな空き領域からコンテンツの記録領域を割り当てるようにする。この構成に従って、ディスクのフラグメントの発生を減らすことで、ディスクのシーク回数を抑えることができるようになる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ディスクの領域を管理するディスク管理方法およびその装置と、そのディスク管理方法の実現に用いられるディスク管理用プログラムとに関し、特に、データ再生の際にディスクのシーク回数を抑えることができるようにするディスク管理方法およびその装置と、そのディスク管理方法の実現に用いられるディスク管理用プログラムとに関する。
【0002】
本発明は、ディスク内におけるデータの記録領域を管理する際に用いられ、特に、マルチメディアのコンテンツのデータを記録し、ディスクに記録されたコンテンツをリアルタイムに読み出す必要のある場合に用いられる。
【背景技術】
【0003】
マルチメディアコンテンツのデータをディスクに記録し、これを再生するシステムが広く用いられている。
【0004】
そのようなシステムの一例として、デジタルシネマで利用される映像サーバが挙げられる(例えば、非特許文献1参照)。
【0005】
デジタルシネマ用映像サーバでは、特に、符号化のビットレートが家庭用のシステムと比較すると数十倍の帯域を有するため、ディスクにおいて記録領域が不連続となるフラグメントが発生すると、ディスクのシーク処理の遅延のために、再生されるデータのエラーや駒落ちが発生する可能性がある。また、高速にシークを繰り返した場合、制御回路の発熱などにより、特に長時間の再生を行う場合にディスク寿命や放熱の面で問題が発生する可能性がある。
【0006】
従来用いられている一般的なファイルシステムでは、ファイルの書き込み時にファイルのサイズがわからない。これから、データの書き込みに対してできるだけ連続領域を確保するため、ブロック単位で記録領域を確保する、あるいは遅延書き込みを行い、まとまったデータに対して一括でデータ領域を割り当てるなどの工夫を行っている(例えば、非特許文献2参照)。
【0007】
しかし、数百Gバイトの容量となるようなデジタルシネマ用コンテンツにおいて、フラグメントを防止することは困難である。
【0008】
デジタルシネマでは、一般的に、2〜3時間の上映時間を持つ本編、2〜3分の予告篇や広告、コンテンツ間に挿入される数秒〜数十秒のロゴや案内画面など、サイズの異なるいくつかの種類のコンテンツによって構成されるが、これらのコンテンツは一般にシステム上で保持する期間が異なり、サイズの大きな本編では短く、サイズの小さな予告篇、広告、ロゴ画像等では長くなる傾向がある。
【0009】
このため、長編の間に予告篇、シネアド、ロゴ画像のコンテンツが挿入される形でディスク内にデータが配置されると、長期間にわたってフラグメントが解消しない状態が発生し得る。
【0010】
フラグメントは、ディスクの記録領域を移動して並び替えを行うデフラグメント処理によって解消することが可能であり、ファイルシステムの機能としてデフラグメント処理を実装しているものもある(例えば、非特許文献3参照)。
【0011】
しかし、デフラグメント処理は、一般的に、非常に時間がかかるため、劇場で連続運用されるシステムにおいてディスク領域全体のデフラグメント処理を実施することは困難である。
【0012】
フラグメントを防ぐ方法として、コンテンツに対して、あらかじめディスクの領域をいくつかに分割して管理する方法がある。この方法によれば、コンテンツの削除が行われたディスク領域を初期化することによって、フラグメントの発生を完全に抑えることが可能である。
【0013】
しかし、本編のデータサイズは、アニメなど効果的に圧縮がきくものでは100Gバイト程度、長編コンテンツでは300Gバイト以上と大きくばらつくため、固定的な領域を確保しておく方法ではディスク領域に大きな無駄領域が発生する。
【0014】
さらに、デジタルシネマで用いられているコンテンツファイルは、映像、オーディオ、字幕が別ファイルで構成されており、コンテンツの再生時にはこれらを並列に読み出す必要がある。また、映像、オーディオ、字幕のファイルは、それぞれ、数十Gバイト、数Gバイト、数十〜数Mバイトとサイズが大きく、サイズも異なる。
【0015】
一般的に、ディスクの管理ブロックサイズを大きくすれば、フラグメントは少なくすることが可能であるが、サイズの小さな字幕データに対しては、無駄領域が発生してしまう可能性がある。
【非特許文献1】インターネット<URL:http://www.dcimovies.com/vlerrata/DCI _Digital _Cinema_System_Spec_vl.pdf>
【非特許文献2】"Scalability in the XFS File System", インターネット<URL:http://oss.sgi.com/projects/xfs/papers/xfs_usenix/index.html >
【非特許文献3】"Defragmentation Performance Testing PerfectDisk V7 and Diskkeeper V10 Enterprise Edition/Terabyte Volume Engine(TVE)", 2006 Raxco Software インターネット<URL:http://www.raxco.com/products/perfectdisk2k/Whitepapers/PD7 _DK10_Defragmentation _Performance _Test.pdf>
【発明の開示】
【発明が解決しようとする課題】
【0016】
上述したように、従来技術に従っていると、リアルタイム再生を行うコンテンツを格納するディスクにおいて、ディスクのフラグメントの発生が多いことで、データ再生の際にディスクのシーク回数が増加するという問題がある。
【0017】
特に、この問題は、デジタルシネマで用いられているコンテンツファイルを取り扱う場合に大きなものとなる。
【0018】
本発明はかかる事情に鑑みてなされたものであって、リアルタイム再生を行うコンテンツを格納するディスクにおいて、データ再生の際にディスクのシーク回数を抑えることができるようにする新たなディスク管理技術の提供を目的とする。
【課題を解決するための手段】
【0019】
〔1〕第1の構成
上記の目的を達成するために、本発明のディスク管理装置は、(1)ディスクに記録されるコンテンツの記録領域を指定するリストと、ディスクの持つ連続した空き領域を指定するリストとによって、ディスクの領域を管理する管理手段と、(2)新たなコンテンツをディスクに書き込む際に、管理手段の管理する空き領域リストを検索して、そのコンテンツのデータ全体を格納するのに十分な大きさの空き領域があった場合には、その中で最も小さな空き領域にコンテンツの記録領域を割り当てる第1の割当手段と、(3)第1の割当手段による空き領域リストの検索処理において、コンテンツのデータ全部を格納するのに十分な大きさの空き領域が見つからなかった場合には、コンテンツのデータを分割し、サイズの大きな空き領域からコンテンツの記録領域を割り当てる第2の割当手段と、(4)新たなコンテンツをディスクに書き込む際にあって、コンテンツのデータサイズと予測保持時間とが与えられた場合に、コンテンツをデータサイズと保持時間とによって分類し、その分類に基づいて管理手段の管理する空き領域リストを検索して、分類されたコンテンツの記録領域がディスク領域内において混在しないように、空き領域にコンテンツの記録領域を割り当てる第3の割当手段と、(5)記録領域が分割されているコンテンツについて、一方の記録領域のサイズが一定以下であり、かつ、その記録領域を空き領域に移動することによりそのコンテンツの記録領域が連続した状態に変更可能な場合に、その移動を行う第1の移動手段と、(6)記録領域が分割されているコンテンツについて、一方の記録領域のサイズが一定以上で、かつ、その記録領域に隣接する領域にサイズが一定以下のコンテンツの記録領域が確保されている場合にあって、その隣接する領域に記録されているコンテンツのデータを移動するのに十分な大きさの空き領域がある場合に、その移動を行う第2の移動手段と、(7)サイズが一定以下であり、かつ、両側に一定サイズ以上の空き領域があるコンテンツの記録領域について、その記録領域に記録されているコンテンツのデータを移動するのに十分な大きさの空き領域がある場合に、その移動を行う第3の移動手段とを備えるように構成する。
【0020】
以上の各処理手段が動作することで実現される本発明のディスク管理方法はコンピュータプログラムでも実現できるものであり、このコンピュータプログラムは、適当なコンピュータ読み取り可能な記録媒体に記録して提供されたり、ネットワークを介して提供され、本発明を実施する際にインストールされてCPUなどの制御手段上で動作することにより本発明を実現することになる。
【0021】
〔2〕第2の構成
また、上記の目的を達成するために、本発明のディスク管理装置は、(1)映像、オーディオ、字幕を少なくとも含むトラックごとに分割されたファイルによって構成されるマルチメディアコンテンツを取得する取得手段と、(2)取得手段の取得したマルチメディアコンテンツをディスクに書き込む際に、各トラックファイルを一定時間単位でインターリーブし、連続的に読み出し可能なデータに変換してディスクに書き込む書込手段とを備えるように構成する。
【0022】
以上の各処理手段が動作することで実現される本発明のディスク管理方法はコンピュータプログラムでも実現できるものであり、このコンピュータプログラムは、適当なコンピュータ読み取り可能な記録媒体に記録して提供されたり、ネットワークを介して提供され、本発明を実施する際にインストールされてCPUなどの制御手段上で動作することにより本発明を実現することになる。
【0023】
〔3〕本発明について
〔3−1〕
本発明では、ディスクに記録されるコンテンツの記録領域を指定するリストを作成更新するとともに、ディスクの持つ連続した空き領域を指定するリストを作成更新することによって、ディスクの領域を管理して、新たなコンテンツをディスクに書き込む際に、空き領域リストを検索して、そのコンテンツのデータ全体を格納するのに十分な大きさの空き領域があった場合には、その中で最も小さな空き領域にコンテンツの記録領域を割り当て、一方、空き領域リストの検索処理において、そのコンテンツのデータ全部を格納するのに十分な大きさの空き領域が見つからなかった場合には、コンテンツのデータを分割し、サイズの大きな空き領域からコンテンツの記録領域を割り当てるようにする。
【0024】
この構成に従って、本発明によれば、格納するコンテンツのデータサイズに応じてディスクの空き領域が割り当てられることになり、これから、コンテンツ全体を格納するのに十分な大きさの連続空き領域がある場合には、ディスクのフラグメントは発生しない。
【0025】
〔3−2〕
本発明では、映像、オーディオ、字幕などのトラックごとに分割されたファイルによって構成されるマルチメディアコンテンツを取得して、その取得したマルチメディアコンテンツをディスクに書き込む際に、各トラックファイルを一定時間単位でインターリーブし、連続的に読み出し可能なデータに変換してディスクに書き込むようにする。
【0026】
この構成に従って、本発明によれば、映像、オーディオ、字幕といったサイズが大きく異なるファイルは1つのファイルに結合されるため、ディスクの中で効率的に格納することが可能である。そして、コンテンツの再生時に、映像、オーディオ、字幕の各トラックファイルを並行して読み出すため、ディスクのシークを行う必要がない。
【0027】
〔3−3〕
本発明では、新たなコンテンツをディスクに書き込む際にあって、コンテンツのデータサイズと予測保持時間とが与えられた場合に、例えば、サイズが大きくかつ保持期間の短いコンテンツとそれ以外のコンテンツというように分類して、空き領域リストを検索することで書き込み先となる空き領域を検索するときに、この分類に基づいてアドレス順に並べられた空き領域リスト内でリストの検索方向を逆にし、コンテンツを格納するのに十分な空き領域が見つかった時点で検索を終了することで、分類されたコンテンツの記録領域がディスク領域内において混在しないように、空き領域にコンテンツの記録領域を割り当てるようにする。
【0028】
この構成に従って、本発明によれば、コンテンツのデータサイズと予想される保持期間とに応じて記録領域が分離されて配置されるため、保持期間の長い小さなサイズのコンテンツのデータによって、空き領域が分断されてしまう可能性を小さく抑えることができる。
【0029】
〔3−4〕
本発明では、記録領域が分割されているコンテンツについて、一方の記録領域のサイズが一定以下であり、かつ、その記録領域を空き領域に移動することによりそのコンテンツの記録領域が連続した状態に変更可能な場合に、その移動を行うようにする。
【0030】
例えば、コンテンツの消去を行った場合に、分割されているコンテンツが空き領域を挟んで接することが起こり、そのようなときには、大きさが一定サイズ以下の記録領域の方を移動することで、コンテンツの記録領域が連続した状態に変更可能となるので、その移動を行うようにするのである。
【0031】
この構成に従って、本発明によれば、データ消去時などにより開放されたディスク領域(空き領域)にデータを移動することにより、フラグメントの解消を行うことが可能である。しかも、移動が行われるのは移動するデータ領域のサイズが一定以下の場合に限られるため、移動処理に要する時間を短く抑えることが可能である。
【0032】
〔3−5〕
本発明では、記録領域が分割されているコンテンツについて、一方の記録領域のサイズが一定以上で、かつ、その記録領域に隣接する領域にサイズが一定以下のコンテンツの記録領域が確保されている場合にあって、その隣接する領域に記録されているコンテンツのデータを移動するのに十分な大きさの空き領域がある場合に、その移動を行うようにする。
【0033】
この構成に従って、本発明によれば、コンテンツの記録領域に隣接する領域を空き領域とすることができるようになることで、フラグメントの解消を行うことが可能である。しかも、移動が行われるのは移動するデータ領域のサイズが一定以下の場合に限られるため、移動処理に要する時間を短く抑えることが可能である。
【0034】
〔3−6〕
本発明では、サイズが一定以下であり、かつ、両側に一定サイズ以上の空き領域があるコンテンツの記録領域について、その記録領域に記録されているコンテンツのデータを移動するのに十分な大きさの空き領域がある場合に、その移動を行うようにする。
【0035】
この構成に従って、本発明によれば、空き領域が分断されている場合に、それを結合して広い連続空き領域を確保することが可能となる。しかも、移動が行われるのは移動するデータ領域のサイズが一定以下の場合に限られるため、移動処理に要する時間を短く抑えることが可能である。
【発明の効果】
【0036】
本発明は、リアルタイム再生を行うコンテンツを格納するディスクの領域管理に適用できるものであり、フラグメントの数を大幅に抑えることができるようになり、その結果シーク回数を大幅に抑えることができるようになる。
【0037】
そして、データ領域の移動処理を追加することで、フラグメントが発生した場合にも、それを短期間で解消することが可能である。しかも、そのとき必要となるデータ移動は、限られたデータサイズの領域にしか行われないため、ディスクのデータ領域全体にデフラグメント処理を行った場合と比較すると、処理を短時間に終えることが可能である。
【発明を実施するための最良の形態】
【0038】
以下、実施の形態に従って本発明を詳細に説明する。
【0039】
図1に、本発明を具備するディスク管理システム1の一実施形態例を図示する。
【0040】
本発明のディスク管理システム1は、この図に示すように、コンテンツファイル10と、ディスク11と、コンテンツ取得部12と、ディスク書込部13と、コンテンツファイル変換部14と、ディスク領域管理リスト15と、ディスク領域割当部16と、ディスク領域整理部17とを備える。
【0041】
コンテンツ取得部12は、デジタルシネマなどのようなマルチメディアコンテンツなどを取得して、コンテンツファイル10に格納する。
【0042】
ディスク書込部13は、コンテンツファイル10からマルチメディアコンテンツなどのコンテンツを読み出して、ディスク11に書き込む。この書き込みにあたって、ディスク書込部13は、ディスク領域割当部16に対して、コンテンツの書き込み先となるディスク領域の割り当てを要求する。
【0043】
コンテンツファイル変換部14は、例えばディスク書込部13に備えられて、コンテンツファイル10から読み出したマルチメディアコンテンツのデータ形式を変換して、ディスク11に書き込む。
【0044】
ディスク領域管理リスト15は、ディスク11に記録されているコンテンツの情報と、それらのコンテンツがディスク11のどこに記録されているのかという情報と、ディスク11の空き領域がどこにあるのかという情報とを管理する。
【0045】
ディスク領域割当部16は、ディスク書込部13からのディスク領域の割当要求を受けて、ディスク領域管理リスト15を参照・更新しつつ、ディスク書込部13の要求するデータサイズを持つディスク領域を獲得して、ディスク書込部13に通知する。
【0046】
ディスク領域整理部17は、ディスク領域管理リスト15を参照することで、ディスク11の持つコンテンツの書き込まれている記録領域の配置位置や、コンテンツの書き込まれていない空き領域の配置位置を整理した方がよい状態が発生したのか否かを判断して、記録領域や空き領域の配置位置を整理した方がよい状態が発生したことを判断する場合には、該当する記録領域や空き領域の配置位置を整理して、それに応じて、ディスク領域管理リスト15の情報を更新する。
【0047】
次に、図2に従って、ディスク領域管理リスト15のデータ構造について詳細に説明する。
【0048】
ディスク領域管理リスト15は、この図に示すように、ディスク11に記録されているコンテンツがどのようなものであり、それらのコンテンツがどのような属性情報を持つのかという情報を管理するコンテンツ管理リスト150と、それらのコンテンツがどこのディスク領域に記録されているのかという情報を管理するコンテンツ記録領域管理リスト151と、コンテンツの記録されていない空きのディスク領域がどこにあるのかという情報を管理する空き領域管理リスト152とで構成される。
【0049】
コンテンツ管理リスト150は、ディスクに記録されている各コンテンツについて、そのコンテンツの名称、そのコンテンツの種別、そのコンテンツのサイズ、そのコンテンツの保持期間などの属性情報をリスト形式で管理する。
【0050】
コンテンツ記録領域管理リスト151は、コンテンツ管理リスト150に管理される各コンテンツ毎に、そのコンテンツが記録されているディスク領域(ディスクの全領域の中に配置された連続領域であり、開始点とサイズの情報を有する。以下、このディスク領域を記録領域と略記することがある)の情報をリスト形式で管理する。
【0051】
空き領域管理リスト152は、ディスクの持つコンテンツの記録されていない空きのディスク領域(ディスクの全領域の中に存在する空きの連続領域であり、開始点とサイズの情報を有する。以下、このディスク領域を空き領域と略記することがある)の情報をリスト形式で管理する。
【0052】
図3に、ディスク領域割当部16が実行する書込対象のコンテンツに対してのディスク領域の割当処理のフローチャートの一例を図示する。
【0053】
ディスク領域割当部16は、ディスク書込部13からディスク領域の割当要求があると、図3のフローチャートに示すように、先ず最初に、ステップS100で、ディスク書込部13から書込対象のコンテンツのデータサイズの情報を受け取る。
【0054】
続いて、ステップS101で、空き領域管理リスト152を参照することで、受け取ったデータサイズよりも大きな空き領域を検索する。
【0055】
続いて、ステップS102で、受け取ったデータサイズよりも大きな空き領域を検索できたのか否かを判断して、検索できたことを判断するときには、ステップS103に進んで、検索した空き領域の中から、最小サイズの空き領域を選択する。
【0056】
続いて、ステップS104で、選択した空き領域からコンテンツを記録するディスク領域を切り出し、書込対象のコンテンツに割り当てて、コンテンツ記録領域管理リスト151に登録する。
【0057】
続いて、ステップS105で、選択した空き領域に残されている空き領域を特定して、その特定した空き領域の情報を空き領域管理リスト152に登録する。
【0058】
続いて、ステップS106で、ディスク書込部13に対して、ディスク領域の割当結果を返信して、処理を終了する。
【0059】
一方、ステップS102の判断処理で、受け取ったデータサイズよりも大きな空き領域を検索できないことを判断するときには、ステップS107に進んで、検索した空き領域の中から、最大サイズの空き領域を選択し、書込対象のコンテンツに割り当てて(追加する形で割り当てる)、コンテンツ記録領域管理リスト151に登録し、さらに、空き領域管理リスト152からその割り当てた空き領域の情報を削除する。
【0060】
続いて、ステップS108で、コンテンツのデータサイズ(現在設定されているコンテンツのデータサイズ)から、ステップS107で割り当てたデータサイズを差し引くことで、書込対象のコンテンツのデータサイズを更新してから、ステップS101の処理に戻ることで、コンテンツの全データを記録可能なディスク領域が確保されるまで、このコンテンツの分割処理を繰り返していく。
【0061】
そして、この分割処理を繰り返していくときに、ステップS102で、現在設定されているコンテンツのデータサイズよりも大きな空き領域を検索できたことを判断するときには、ステップS103〜ステップS106の処理を行って、処理を終了する。
【0062】
ディスク領域割当部16がこのようなディスク領域の割り当てを行うことにより、コンテンツ全体を記録するのに十分なサイズの連続する空き領域がある場合には、コンテンツの記録領域が分割されることがない。
【0063】
さらに、コンテンツ全体を記録するのに十分なサイズの連続する空き領域がない場合には、コンテンツの記録領域は大きな空き領域から確保されるため、極端に小さな空き領域にデータが割り当てられることによりディスクのシークが短時間に複数回発生する確率を小さく抑えることが可能である。
【0064】
図4に、コンテンツファイル変換部14により実行されるコンテンツファイルの変換方法を図示する。
【0065】
デジタルシネマのコンテンツは、図4の上段に示すように、映像、オーディオ、字幕といったトラックごとのファイルに分割され、さらに時間方向に複数のファイルに分割されている。
【0066】
このような構造は、映像、オーディオ、字幕が別々のファイルとなっていることから、データの一部を差し替える際には便利であるが、コンテンツの再生の際には、映像、オーディオ、字幕を並列に読み出すためにデータファイルのシークを交互に行う必要がある。さらに、時間的にも別のファイルとなっているため、一般的なファイルシステムでは、リール(映像シネマでは複数のリールをつなげることで構成されている)の継ぎ目でも、ファイルのクローズとオープンを行う必要が発生する。
【0067】
そこで、コンテンツファイル変換部14は、図4の下段に示すように、各トラックファイルから、そのメタ情報と各フレームおよびリールのサイズ情報とを取り出し、これらをコンテンツ属性情報として管理すると共に、各トラックファイルのデータをたとえば1フレームずつインターリーブしてディスク領域に記録するようにする。
【0068】
ここで、コンテンツ属性情報の一つとして、リール先頭位置のオフセットを管理するのは、映像シネマの場合にはリールを検索キーとして指定する検索が行われることがあるからである。
【0069】
図5に、このデータ変換を行うためにコンテンツファイル変換部14が実行するフローチャートの一例を図示する。
【0070】
すなわち、コンテンツファイル変換部14は、デジタルシネマのコンテンツをディスク11に書き込むときには、図5のフローチャートに示すように、先ず最初に、ステップS200で、映像トラックファイル、オーディオトラックファイル、字幕トラックファイルの各トラックファイルから、そのメタ情報と各フレームおよびリールのサイズ情報とを取得し、続くステップS201で、その取得した情報に基づいて、変換後のコンテンツに関してのコンテンツ属性情報を生成する。
【0071】
続いて、ステップS202で、フレーム番号を示す変数iに初期値“1”をセットし、続くステップS203で、変数iの値が最大フレーム番号imax より大きくなったのか否かを判断する。
【0072】
この判断処理に従って、変数iの値が最大フレーム番号imax より大きくなっていないことを判断するときには、ステップS204に進んで、映像トラックファイルからi番目のフレームの映像データを取り出し、ディスク11に書き込む。
【0073】
続いて、ステップS205で、オーディオトラックファイルからi番目のフレームのオーディオデータを取り出し、ステップS204で書き込んだ映像データに続ける形でディスク11に書き込む。
【0074】
続いて、ステップS206で、字幕トラックファイルからi番目の字幕データを取り出し、ステップS205で書き込んだオーディオデータに続ける形でディスク11に書き込む。
【0075】
続いて、変数iの値を1つインクリメントしてから、ステップS203の処理に戻る。そして、このようにして、ステップS203〜ステップS207の処理を繰り返していくことで、ステップS203で、変数iの値が最大フレーム番号imax より大きくなったことを判断すると、処理を終了する。
【0076】
コンテンツファイル変換部14がこのようなデータ変換を行うことにより、コンテンツ再生時には、シークを行うことなく、連続領域からデータを読み出すことが可能となる。また、もとのファイルで管理されていたトラックファイルのメタ情報や、各トラックファイルの時間長(リール時間長)については、コンテンツの属性情報として管理されるため、失われることがない。
【0077】
図6に、ディスク領域割当部16が実行するコンテンツに対してのディスク領域の割当処理のフローチャートの他の一例を図示する。
【0078】
このフローチャートを実行する場合、ディスク領域割当部16は、コンテンツの種別に応じたディスク領域の割り当てを行うことになる。
【0079】
デジタルシネマ等の分野では、コンテンツをコピーする際に、そのコンテンツのサイズおよび保持期間の予想値が既知となっている。本実施形態例では、この情報を利用することにより、書込対象となるコンテンツを、サイズが一定以上で、保持期間が一定以下のコンテンツ(例えば、デジタルシネマの場合における本編)と、それ以外のコンテンツ(例えば、デジタルシネマの場合における予告編や広告など)との2種類に分類している。
【0080】
分類された2種類のコンテンツにおいて、割当領域を決定する際に、ディスク内のアドレス順にソートされた空き領域管理リスト152をそれぞれ前端、後端から逆方向に検索することにより、それぞれの領域がディスク領域の前端、後端よりに割り当てられるように制御を行っている。また、空き領域内にデータ領域を割り当てる場合にも、それぞれ前詰め、後ろ詰めでデータ領域を割り当てる。
【0081】
すなわち、ディスク領域割当部16は、コンテンツの種別に応じたディスク領域の割り当てを行う場合には、図6のフローチャートに示すように、先ず最初に、ステップS300で、ディスク書込部13から書込対象のコンテンツのデータサイズの情報と保持期間の情報とを受け取る。
【0082】
続いて、ステップS301で、受け取ったデータサイズが閾値Sよりも大きく、かつ、受け取った保持期間が閾値Tよりも短いコンテンツであるのか否かを判断する。
【0083】
この判断処理に従って、データサイズが閾値Sよりも大きく、かつ、保持期間が閾値Tよりも短いコンテンツであることを判断するときには、ステップS302に進んで、空き領域管理リスト152の前端から空き領域の検索を行い、続くステップS303で、受け取ったデータサイズよりも大きな空き領域を検索できたのか否かを判断して、検索できたことを判断するときには(最小サイズの空き領域である必要はない)、ステップS306に進んで、検索した空き領域に従ってディスク領域を確保することで、前づめでディスク領域を確保する。そして、ステップS303で、受け取ったデータサイズよりも大きな空き領域を検索できないことを判断するときには、ステップS304,305の処理に従って、最大サイズの空き領域をディスク領域として確保しながら、コンテンツの分割処理を繰り返していく。このとき、最大サイズの空き領域を優先するのではなくて、空き領域管理リスト152の前端側にある空き領域(あるサイズ以上のものに限定してもよい)を優先するようにしてもよい。
【0084】
一方、ステップS301の判断処理に従って、データサイズが閾値Sよりも大きく、かつ、保持期間が閾値Tよりも短いコンテンツではないことを判断するときには、ステップS307に進んで、空き領域管理リスト152の後端から空き領域の検索を行い、続くステップS308で、受け取ったデータサイズよりも大きな空き領域を検索できたのか否かを判断して、検索できたことを判断するときには(最小サイズの空き領域である必要はない)、ステップS311に進んで、検索した空き領域に従ってディスク領域を確保することで、後づめでディスク領域を確保する。そして、ステップS308で、受け取ったデータサイズよりも大きな空き領域を検索できないことを判断するときには、ステップS309,310の処理に従って、最大サイズの空き領域をディスク領域として確保しながら、コンテンツの分割処理を繰り返していく。このとき、最大サイズの空き領域を優先するのではなくて、空き領域管理リスト152の後端側にある空き領域(あるサイズ以上のものに限定してもよい)を優先するようにしてもよい。
【0085】
なお、図6のフローチャートでは、ディスク領域管理リスト15の更新処理については省略してある。
【0086】
また、図6のフローチャートでは、データサイズが閾値Sよりも大きく、かつ、保持期間が閾値Tよりも短いコンテンツであることを判断するときに、ステップS302に進み、そうではないコンテンツであることを判断するときに、ステップS307に進むことで説明したが、これとは逆に、データサイズが閾値Sよりも大きく、かつ、保持期間が閾値Tよりも短いコンテンツではないことを判断するときに、ステップS302に進み、そうではないコンテンツであることを判断するときに、ステップS307に進むようにしてもよい。
【0087】
このようにして、ディスク領域割当部16は、コンテンツの種別に応じたディスク領域の割り当てを行うように処理するのである。本実施形態例によるディスク領域の割当方法では、コンテンツの種別により固定的にディスク領域を割り当てておくわけではないため、ディスク領域を無駄にすることがない。
【0088】
次に、ディスク領域整理部17の実行する処理について説明する。
【0089】
図7に、ディスク領域整理部17により実行される、分割されたデータ記録領域の結合方法を図示する。
【0090】
この図の例においては、コンテンツAの記録領域がコンテンツBの記録領域によって2つに分割されていることを想定している。
【0091】
ここで、コンテンツBを消去した場合、コンテンツAの記録領域1に隣接した領域が空き領域となるため、コンテンツAの記録領域2のデータを、コンテンツAの記録領域1の隣接領域に移動することによって、コンテンツAで発生していたフラグメントを解消することができる。
【0092】
本実施形態例においては、コンテンツAの記録領域2のサイズが一定以下の場合にのみ、データの移動を行うようにしており、これから、デフラグメント処理は短時間に終えることができる。
【0093】
図8に、このデフラグメント処理を実現すべく、ディスク領域整理部17が実行するフローチャートを図示する。
【0094】
すなわち、ディスク領域整理部17は、コンテンツの消去などが実行されると、図8のフローチャートに示すように、先ず最初に、ステップS400で、ディスク領域管理リスト15を参照することで、分割されたコンテンツが空き領域を挟む形で接する状態が発生したのかをチェックする。すなわち、図7に示すコンテンツBが消去されたときの状態が発生したのかをチェックするのである。
【0095】
続いて、ステップS401で、このチェック処理に基づいて、分割されたコンテンツが空き領域を挟む形で接する状態が発生したのか否かを判断して、発生していないことを判断するときには、そのまま処理を終了し、一方、発生したことを判断するときには、ステップS402に進んで、空き領域を挟む形で存在する2つの記録領域の内の小さなサイズの方の記録領域のサイズを特定する。
【0096】
続いて、ステップS403で、その特定した記録領域のサイズが閾値T1よりも小さいのか否かを判断して、小さくないことを判断するときには、デフラグメントの処理を短時間に終えることができないので、デフラグメントの処理を行わないようにするために、そのまま処理を終了し、一方、小さいことを判断するときには、ステップS404に進んで、ステップS402で特定した小さなサイズの方の記録領域のデータを移動することで、2つの記録領域を結合して、処理を終了する。
【0097】
なお、図8のフローチャートでは、ディスク領域管理リスト15の更新処理については省略してある。
【0098】
このようにして、ディスク領域整理部17は、コンテンツが消去されることなどにより、分割されたコンテンツが空き領域を挟む形で接する状態が発生した場合には、小さなサイズの方の記録領域を移動させる形で2つ記録領域を結合することで、デフラグメントの処理を実行するのである。本実施形態例においては、空き領域を挟む形で存在する2つ記録領域の内の小さなサイズの方の記録領域のサイズが一定以下の場合にのみ、データの移動を行うようにしており、これから、デフラグメント処理は短時間に終えることができることになる。
【0099】
図9に、ディスク領域整理部17により実行される、分割されたデータ記録領域の結合方法の他の例を図示する。
【0100】
この図の例においては、コンテンツAの記録領域がそれに隣接するコンテンツBの記録領域および空き領域によって2つに分割されていることを想定している。
【0101】
このような場合、コンテンツAの記録領域1に対して記録領域2を結合することによりコンテンツAのフラグメントを解消することができることになるが、コンテンツAの記録領域1に隣接してコンテンツBが記録されているため、コンテンツAの記録領域2のデータを記録領域1に隣接した領域に移動することができない。
【0102】
そこで、コンテンツBの記録領域のデータを空き領域に移動することで、コンテンツAの記録領域1に隣接した領域が空き領域となるようにしてから、コンテンツAの記録領域2のデータを記録領域1に隣接した領域に移動することによって、コンテンツAで発生していたフラグメントを解消する。
【0103】
本実施形態例においては、コンテンツBの記録領域のサイズが一定値よりも小さい場合に、この領域のデータを別の空き領域に移動することが可能であり、その後は、図7に示された方法と同様の方法に従って、コンテンツAのフラグメントを解消することができることになる。
【0104】
図10に、このデフラグメント処理を実現すべく、ディスク領域整理部17が実行するフローチャートを図示する。
【0105】
すなわち、ディスク領域整理部17は、コンテンツの書き込みなどが実行されると、図10のフローチャートに示すように、先ず最初に、ステップS500で、ディスク領域管理リスト15を参照することで、分割されたコンテンツの隣接領域に別のコンテンツが記録されている状態が発生したのかをチェックする。
【0106】
続いて、ステップS501で、このチェック処理に基づいて、分割されたコンテンツの隣接領域に別のコンテンツが記録されている状態が発生したのか否かを判断して、発生していないことを判断するときには、そのまま処理を終了し、一方、発生したことを判断するときには、ステップS502に進んで、2つの記録領域の内のその別のコンテンツに隣接しない方の記録領域のサイズを特定する。
【0107】
続いて、ステップS503で、その特定したサイズが閾値T2よりも小さいのか否かを判断して、小さくないことを判断するときには、デフラグメントの処理を短時間に終えることができないので、デフラグメントの処理を行わないようにするために、そのまま処理を終了し、一方、小さいことを判断するときには、ステップS504に進んで、隣接領域に記録されている別のコンテンツのサイズがその特定したサイズよりも大きいのか否かを判断する。
【0108】
このステップS504の判断処理に従って、隣接領域に記録されている別のコンテンツのサイズがステップS502で特定したサイズよりも大きくないことを判断するときには、その別のコンテンツの移動により生成されることになる空き領域の中に分割されたコンテンツ(その別のコンテンツに隣接しない方のコンテンツ)が収まらないことを判断して、デフラグメント処理を行わないようにするために、そのまま処理を終了し、一方、大きいことを判断するときには、ステップS505に進んで、その別のコンテンツのサイズが閾値T3よりも小さいのか否かを判断する。
【0109】
このステップS505の判断処理に従って、隣接領域に記録されている別のコンテンツのサイズが閾値T3よりも小さくないことを判断するときには、デフラグメントの処理を短時間に終えることができないので、デフラグメントの処理を行わないようにするために、そのまま処理を終了し、一方、小さいことを判断するときには、ステップS506に進んで、隣接領域に記録されている別のコンテンツの記録領域のデータを空き領域に移動する。
【0110】
続いて、ステップS507で、ステップS502でサイズを特定した方の記録領域のデータを移動することで、2つの記録領域を結合して、処理を終了する。
【0111】
なお、図10のフローチャートでは、ディスク領域管理リスト15の更新処理については省略してある。
【0112】
このようにして、ディスク領域整理部17は、コンテンツが書き込まれることなどにより、分割されたコンテンツの隣接領域に別のコンテンツが記録されている状態が発生した場合には、その別のコンテンツを移動することで、分割されたコンテンツの隣接領域が空き領域となるようにしてから、その別のコンテンツに隣接しない方の記録領域を移動させる形で2つ記録領域を結合することで、デフラグメントの処理を実行するのである。本実施形態例においては、移動処理の対象となるコンテンツの記録領域のサイズが一定以下の場合にのみ、データの移動を行うようにしており、これから、デフラグメントの処理は短時間に終えることができることになる。
【0113】
図11に、ディスク領域整理部17により実行される、空き領域の結合方法を図示する。
【0114】
この図の例においては、2つの空き領域に挟まれる形でコンテンツの記録領域が存在することを想定している。
【0115】
このような場合、空き領域に挟まれた記録領域のデータを別の空き領域に移動することで、空き領域を結合して連続した空き領域を拡張することが可能である。
【0116】
このデータ移動は、データ領域の両側の空き領域が一定のサイズを超えており、かつ、データ領域のサイズが一定以下の場合にのみに行われるため、データの移動は短時間に終えることができ、また、結合された空き領域のサイズも大きなものとなる。
【0117】
図12に、この空き領域の結合処理を実現すべく、ディスク領域整理部17が実行するフローチャートを図示する。
【0118】
すなわち、ディスク領域整理部17は、コンテンツの消去などが実行されると、図12のフローチャートに示すように、先ず最初に、ステップS600で、ディスク領域管理リスト15を参照することで、空き領域がコンテンツの記録領域を挟む形で接している状態が発生したのかをチェックする。すなわち、図11の上段に示す状態が発生したのかをチェックするのである。
【0119】
続いて、ステップS601で、このチェック処理に基づいて、空き領域がコンテンツの記録領域を挟む形で接している状態が発生したのか否かを判断して、発生していないことを判断するときには、そのまま処理を終了し、一方、発生したことを判断するときには、ステップS602に進んで、2つの空き領域のサイズが閾値T4よりも大きいのか否かを判断する。
【0120】
このステップS602の判断処理に従って、2つの空き領域のサイズが閾値T4よりも大きくないことを判断するときには、あえて空き領域の結合を行うまでもないので、そのまま処理を終了し、一方、大きいことを判断するときには、ステップS603に進んで、コンテンツの記録領域のサイズが閾値T5よりも小さいのか否かを判断する。
【0121】
このステップS603の判断処理に従って、コンテンツの記録領域のサイズが閾値T5よりも小さくないことを判断するときには、その記録領域のデータの移動を短時間で終えることができないので、そのデータ移動を行わないようにするために、そのまま処理を終了し、一方、小さいことを判断するときには、ステップS604に進んで、コンテンツの記録領域のデータを別の空き領域に移動することで、2つの空き領域を結合して、処理を終了する。
【0122】
なお、図12のフローチャートでは、ディスク領域管理リスト15の更新処理については省略してある。
【0123】
このようにして、ディスク領域整理部17は、コンテンツが消去されることなどにより、空き領域がコンテンツの記録領域を挟む形で接している状態が発生した場合には、そのコンテンツを移動することにより2つの空き領域を結合することで、空き領域の結合処理を実行するのである。本実施形態例においては、移動処理の対象となるコンテンツの記録領域のサイズが一定以下の場合にのみ、データの移動を行うようにしており、これから、このデータ移動処理は短時間に終えることができることになる。
【0124】
最後に、シミュレーションによりディスクのフラグメント数を評価した実験結果について説明する。
【0125】
このシミュレーションにおいては、本編(150〜300Gバイト、保持期間2〜6週間)と予告篇(2〜10Gバイト、保持期間2〜16週間)の2種類のコンテンツが毎週1本ずつ1Tバイトの容量を持つディスクに書き込まれた場合に、フラグメント量がどのように変化するかを評価したものである。ディスクの割当単位は1Gバイト単位としている。
【0126】
図13に、このシミュレーションの実験結果を図示する。この図は、一般的なファイルシステムを用いた場合におけるフラグメント数と、図3のフローチャートに従ってディスク領域の割り当てを行った本発明の場合におけるフラグメント数との比較を行った実験結果である。
【0127】
図13(a)が従来方式の実験結果を示し、図13(b)が本発明の実験結果を示す。この図では、ディスク内のコンテンツ数(従来方式と本発明とで同じものとなる)についても併記している。従来方式では、空き領域のサイズを考慮せずに、空き領域に対して順にコンテンツを書き込むという割当方法をとっている。
【0128】
図13(a)を見れば分かるように、従来方式によるディスク領域の割当方法では、コンテンツ数と同等以上のフラグメントが発生していることがわかる。これと比較すると、図13(b)を見れば分かるように、図3のフローチャートに従ってディスク領域の割り当てを行う本発明による割当方法を適用することで、フラグメントの数を大幅に削減することができることが明らかである。
【0129】
図14に、従来方式と、図3のフローチャートに従ってディスク領域の割り当てを行う本発明の方式(方式1)と、この方式1にさらに図6のフローチャートに示すコンテンツの分類に基づくディスク領域の割り当てを行う本発明の方式(方式2)と、この方式2にさらに図7に示すデータ移動処理に基づくディスク領域の割り当てを行う本発明の方式(方式3)という4つの方式について、その平均フラグメント数を比較した結果を図示する。
【0130】
この図により、本発明のコンテンツ種別の分類方法、データ移動処理を追加することにより、さらにフラグメント数を削減することが可能であることがわかる。
【産業上の利用可能性】
【0131】
本発明は、リアルタイム再生を行うコンテンツを格納するディスクの領域管理に適用できるものであり、フラグメントの数を大幅に抑えることができるようになり、その結果シーク回数を大幅に抑えることができるようになる。
【図面の簡単な説明】
【0132】
【図1】本発明のディスク管理システムの一実施形態例である。
【図2】ディスク領域管理リストのデータ構造の説明図である。
【図3】ディスク領域割当部の実行するフローチャートである。
【図4】コンテンツファイル変換部の実行する処理の説明図である。
【図5】コンテンツファイル変換部の実行するフローチャートである。
【図6】ディスク領域割当部の実行するフローチャートである。
【図7】ディスク領域整理部の実行する処理の説明図である。
【図8】ディスク領域整理部の実行するフローチャートである。
【図9】ディスク領域整理部の実行する処理の説明図である。
【図10】ディスク領域整理部の実行するフローチャートである。
【図11】ディスク領域整理部の実行する処理の説明図である。
【図12】ディスク領域整理部の実行するフローチャートである。
【図13】シミュレーションの実験結果の説明図である。
【図14】シミュレーションの実験結果の説明図である。
【符号の説明】
【0133】
1 ディスク管理システム
10 コンテンツファイル
11 ディスク
12 コンテンツ取得部
13 ディスク書込部
14 コンテンツファイル変換部
15 ディスク領域管理リスト
16 ディスク領域割当部
17 ディスク領域整理部
【技術分野】
【0001】
本発明は、ディスクの領域を管理するディスク管理方法およびその装置と、そのディスク管理方法の実現に用いられるディスク管理用プログラムとに関し、特に、データ再生の際にディスクのシーク回数を抑えることができるようにするディスク管理方法およびその装置と、そのディスク管理方法の実現に用いられるディスク管理用プログラムとに関する。
【0002】
本発明は、ディスク内におけるデータの記録領域を管理する際に用いられ、特に、マルチメディアのコンテンツのデータを記録し、ディスクに記録されたコンテンツをリアルタイムに読み出す必要のある場合に用いられる。
【背景技術】
【0003】
マルチメディアコンテンツのデータをディスクに記録し、これを再生するシステムが広く用いられている。
【0004】
そのようなシステムの一例として、デジタルシネマで利用される映像サーバが挙げられる(例えば、非特許文献1参照)。
【0005】
デジタルシネマ用映像サーバでは、特に、符号化のビットレートが家庭用のシステムと比較すると数十倍の帯域を有するため、ディスクにおいて記録領域が不連続となるフラグメントが発生すると、ディスクのシーク処理の遅延のために、再生されるデータのエラーや駒落ちが発生する可能性がある。また、高速にシークを繰り返した場合、制御回路の発熱などにより、特に長時間の再生を行う場合にディスク寿命や放熱の面で問題が発生する可能性がある。
【0006】
従来用いられている一般的なファイルシステムでは、ファイルの書き込み時にファイルのサイズがわからない。これから、データの書き込みに対してできるだけ連続領域を確保するため、ブロック単位で記録領域を確保する、あるいは遅延書き込みを行い、まとまったデータに対して一括でデータ領域を割り当てるなどの工夫を行っている(例えば、非特許文献2参照)。
【0007】
しかし、数百Gバイトの容量となるようなデジタルシネマ用コンテンツにおいて、フラグメントを防止することは困難である。
【0008】
デジタルシネマでは、一般的に、2〜3時間の上映時間を持つ本編、2〜3分の予告篇や広告、コンテンツ間に挿入される数秒〜数十秒のロゴや案内画面など、サイズの異なるいくつかの種類のコンテンツによって構成されるが、これらのコンテンツは一般にシステム上で保持する期間が異なり、サイズの大きな本編では短く、サイズの小さな予告篇、広告、ロゴ画像等では長くなる傾向がある。
【0009】
このため、長編の間に予告篇、シネアド、ロゴ画像のコンテンツが挿入される形でディスク内にデータが配置されると、長期間にわたってフラグメントが解消しない状態が発生し得る。
【0010】
フラグメントは、ディスクの記録領域を移動して並び替えを行うデフラグメント処理によって解消することが可能であり、ファイルシステムの機能としてデフラグメント処理を実装しているものもある(例えば、非特許文献3参照)。
【0011】
しかし、デフラグメント処理は、一般的に、非常に時間がかかるため、劇場で連続運用されるシステムにおいてディスク領域全体のデフラグメント処理を実施することは困難である。
【0012】
フラグメントを防ぐ方法として、コンテンツに対して、あらかじめディスクの領域をいくつかに分割して管理する方法がある。この方法によれば、コンテンツの削除が行われたディスク領域を初期化することによって、フラグメントの発生を完全に抑えることが可能である。
【0013】
しかし、本編のデータサイズは、アニメなど効果的に圧縮がきくものでは100Gバイト程度、長編コンテンツでは300Gバイト以上と大きくばらつくため、固定的な領域を確保しておく方法ではディスク領域に大きな無駄領域が発生する。
【0014】
さらに、デジタルシネマで用いられているコンテンツファイルは、映像、オーディオ、字幕が別ファイルで構成されており、コンテンツの再生時にはこれらを並列に読み出す必要がある。また、映像、オーディオ、字幕のファイルは、それぞれ、数十Gバイト、数Gバイト、数十〜数Mバイトとサイズが大きく、サイズも異なる。
【0015】
一般的に、ディスクの管理ブロックサイズを大きくすれば、フラグメントは少なくすることが可能であるが、サイズの小さな字幕データに対しては、無駄領域が発生してしまう可能性がある。
【非特許文献1】インターネット<URL:http://www.dcimovies.com/vlerrata/DCI _Digital _Cinema_System_Spec_vl.pdf>
【非特許文献2】"Scalability in the XFS File System", インターネット<URL:http://oss.sgi.com/projects/xfs/papers/xfs_usenix/index.html >
【非特許文献3】"Defragmentation Performance Testing PerfectDisk V7 and Diskkeeper V10 Enterprise Edition/Terabyte Volume Engine(TVE)", 2006 Raxco Software インターネット<URL:http://www.raxco.com/products/perfectdisk2k/Whitepapers/PD7 _DK10_Defragmentation _Performance _Test.pdf>
【発明の開示】
【発明が解決しようとする課題】
【0016】
上述したように、従来技術に従っていると、リアルタイム再生を行うコンテンツを格納するディスクにおいて、ディスクのフラグメントの発生が多いことで、データ再生の際にディスクのシーク回数が増加するという問題がある。
【0017】
特に、この問題は、デジタルシネマで用いられているコンテンツファイルを取り扱う場合に大きなものとなる。
【0018】
本発明はかかる事情に鑑みてなされたものであって、リアルタイム再生を行うコンテンツを格納するディスクにおいて、データ再生の際にディスクのシーク回数を抑えることができるようにする新たなディスク管理技術の提供を目的とする。
【課題を解決するための手段】
【0019】
〔1〕第1の構成
上記の目的を達成するために、本発明のディスク管理装置は、(1)ディスクに記録されるコンテンツの記録領域を指定するリストと、ディスクの持つ連続した空き領域を指定するリストとによって、ディスクの領域を管理する管理手段と、(2)新たなコンテンツをディスクに書き込む際に、管理手段の管理する空き領域リストを検索して、そのコンテンツのデータ全体を格納するのに十分な大きさの空き領域があった場合には、その中で最も小さな空き領域にコンテンツの記録領域を割り当てる第1の割当手段と、(3)第1の割当手段による空き領域リストの検索処理において、コンテンツのデータ全部を格納するのに十分な大きさの空き領域が見つからなかった場合には、コンテンツのデータを分割し、サイズの大きな空き領域からコンテンツの記録領域を割り当てる第2の割当手段と、(4)新たなコンテンツをディスクに書き込む際にあって、コンテンツのデータサイズと予測保持時間とが与えられた場合に、コンテンツをデータサイズと保持時間とによって分類し、その分類に基づいて管理手段の管理する空き領域リストを検索して、分類されたコンテンツの記録領域がディスク領域内において混在しないように、空き領域にコンテンツの記録領域を割り当てる第3の割当手段と、(5)記録領域が分割されているコンテンツについて、一方の記録領域のサイズが一定以下であり、かつ、その記録領域を空き領域に移動することによりそのコンテンツの記録領域が連続した状態に変更可能な場合に、その移動を行う第1の移動手段と、(6)記録領域が分割されているコンテンツについて、一方の記録領域のサイズが一定以上で、かつ、その記録領域に隣接する領域にサイズが一定以下のコンテンツの記録領域が確保されている場合にあって、その隣接する領域に記録されているコンテンツのデータを移動するのに十分な大きさの空き領域がある場合に、その移動を行う第2の移動手段と、(7)サイズが一定以下であり、かつ、両側に一定サイズ以上の空き領域があるコンテンツの記録領域について、その記録領域に記録されているコンテンツのデータを移動するのに十分な大きさの空き領域がある場合に、その移動を行う第3の移動手段とを備えるように構成する。
【0020】
以上の各処理手段が動作することで実現される本発明のディスク管理方法はコンピュータプログラムでも実現できるものであり、このコンピュータプログラムは、適当なコンピュータ読み取り可能な記録媒体に記録して提供されたり、ネットワークを介して提供され、本発明を実施する際にインストールされてCPUなどの制御手段上で動作することにより本発明を実現することになる。
【0021】
〔2〕第2の構成
また、上記の目的を達成するために、本発明のディスク管理装置は、(1)映像、オーディオ、字幕を少なくとも含むトラックごとに分割されたファイルによって構成されるマルチメディアコンテンツを取得する取得手段と、(2)取得手段の取得したマルチメディアコンテンツをディスクに書き込む際に、各トラックファイルを一定時間単位でインターリーブし、連続的に読み出し可能なデータに変換してディスクに書き込む書込手段とを備えるように構成する。
【0022】
以上の各処理手段が動作することで実現される本発明のディスク管理方法はコンピュータプログラムでも実現できるものであり、このコンピュータプログラムは、適当なコンピュータ読み取り可能な記録媒体に記録して提供されたり、ネットワークを介して提供され、本発明を実施する際にインストールされてCPUなどの制御手段上で動作することにより本発明を実現することになる。
【0023】
〔3〕本発明について
〔3−1〕
本発明では、ディスクに記録されるコンテンツの記録領域を指定するリストを作成更新するとともに、ディスクの持つ連続した空き領域を指定するリストを作成更新することによって、ディスクの領域を管理して、新たなコンテンツをディスクに書き込む際に、空き領域リストを検索して、そのコンテンツのデータ全体を格納するのに十分な大きさの空き領域があった場合には、その中で最も小さな空き領域にコンテンツの記録領域を割り当て、一方、空き領域リストの検索処理において、そのコンテンツのデータ全部を格納するのに十分な大きさの空き領域が見つからなかった場合には、コンテンツのデータを分割し、サイズの大きな空き領域からコンテンツの記録領域を割り当てるようにする。
【0024】
この構成に従って、本発明によれば、格納するコンテンツのデータサイズに応じてディスクの空き領域が割り当てられることになり、これから、コンテンツ全体を格納するのに十分な大きさの連続空き領域がある場合には、ディスクのフラグメントは発生しない。
【0025】
〔3−2〕
本発明では、映像、オーディオ、字幕などのトラックごとに分割されたファイルによって構成されるマルチメディアコンテンツを取得して、その取得したマルチメディアコンテンツをディスクに書き込む際に、各トラックファイルを一定時間単位でインターリーブし、連続的に読み出し可能なデータに変換してディスクに書き込むようにする。
【0026】
この構成に従って、本発明によれば、映像、オーディオ、字幕といったサイズが大きく異なるファイルは1つのファイルに結合されるため、ディスクの中で効率的に格納することが可能である。そして、コンテンツの再生時に、映像、オーディオ、字幕の各トラックファイルを並行して読み出すため、ディスクのシークを行う必要がない。
【0027】
〔3−3〕
本発明では、新たなコンテンツをディスクに書き込む際にあって、コンテンツのデータサイズと予測保持時間とが与えられた場合に、例えば、サイズが大きくかつ保持期間の短いコンテンツとそれ以外のコンテンツというように分類して、空き領域リストを検索することで書き込み先となる空き領域を検索するときに、この分類に基づいてアドレス順に並べられた空き領域リスト内でリストの検索方向を逆にし、コンテンツを格納するのに十分な空き領域が見つかった時点で検索を終了することで、分類されたコンテンツの記録領域がディスク領域内において混在しないように、空き領域にコンテンツの記録領域を割り当てるようにする。
【0028】
この構成に従って、本発明によれば、コンテンツのデータサイズと予想される保持期間とに応じて記録領域が分離されて配置されるため、保持期間の長い小さなサイズのコンテンツのデータによって、空き領域が分断されてしまう可能性を小さく抑えることができる。
【0029】
〔3−4〕
本発明では、記録領域が分割されているコンテンツについて、一方の記録領域のサイズが一定以下であり、かつ、その記録領域を空き領域に移動することによりそのコンテンツの記録領域が連続した状態に変更可能な場合に、その移動を行うようにする。
【0030】
例えば、コンテンツの消去を行った場合に、分割されているコンテンツが空き領域を挟んで接することが起こり、そのようなときには、大きさが一定サイズ以下の記録領域の方を移動することで、コンテンツの記録領域が連続した状態に変更可能となるので、その移動を行うようにするのである。
【0031】
この構成に従って、本発明によれば、データ消去時などにより開放されたディスク領域(空き領域)にデータを移動することにより、フラグメントの解消を行うことが可能である。しかも、移動が行われるのは移動するデータ領域のサイズが一定以下の場合に限られるため、移動処理に要する時間を短く抑えることが可能である。
【0032】
〔3−5〕
本発明では、記録領域が分割されているコンテンツについて、一方の記録領域のサイズが一定以上で、かつ、その記録領域に隣接する領域にサイズが一定以下のコンテンツの記録領域が確保されている場合にあって、その隣接する領域に記録されているコンテンツのデータを移動するのに十分な大きさの空き領域がある場合に、その移動を行うようにする。
【0033】
この構成に従って、本発明によれば、コンテンツの記録領域に隣接する領域を空き領域とすることができるようになることで、フラグメントの解消を行うことが可能である。しかも、移動が行われるのは移動するデータ領域のサイズが一定以下の場合に限られるため、移動処理に要する時間を短く抑えることが可能である。
【0034】
〔3−6〕
本発明では、サイズが一定以下であり、かつ、両側に一定サイズ以上の空き領域があるコンテンツの記録領域について、その記録領域に記録されているコンテンツのデータを移動するのに十分な大きさの空き領域がある場合に、その移動を行うようにする。
【0035】
この構成に従って、本発明によれば、空き領域が分断されている場合に、それを結合して広い連続空き領域を確保することが可能となる。しかも、移動が行われるのは移動するデータ領域のサイズが一定以下の場合に限られるため、移動処理に要する時間を短く抑えることが可能である。
【発明の効果】
【0036】
本発明は、リアルタイム再生を行うコンテンツを格納するディスクの領域管理に適用できるものであり、フラグメントの数を大幅に抑えることができるようになり、その結果シーク回数を大幅に抑えることができるようになる。
【0037】
そして、データ領域の移動処理を追加することで、フラグメントが発生した場合にも、それを短期間で解消することが可能である。しかも、そのとき必要となるデータ移動は、限られたデータサイズの領域にしか行われないため、ディスクのデータ領域全体にデフラグメント処理を行った場合と比較すると、処理を短時間に終えることが可能である。
【発明を実施するための最良の形態】
【0038】
以下、実施の形態に従って本発明を詳細に説明する。
【0039】
図1に、本発明を具備するディスク管理システム1の一実施形態例を図示する。
【0040】
本発明のディスク管理システム1は、この図に示すように、コンテンツファイル10と、ディスク11と、コンテンツ取得部12と、ディスク書込部13と、コンテンツファイル変換部14と、ディスク領域管理リスト15と、ディスク領域割当部16と、ディスク領域整理部17とを備える。
【0041】
コンテンツ取得部12は、デジタルシネマなどのようなマルチメディアコンテンツなどを取得して、コンテンツファイル10に格納する。
【0042】
ディスク書込部13は、コンテンツファイル10からマルチメディアコンテンツなどのコンテンツを読み出して、ディスク11に書き込む。この書き込みにあたって、ディスク書込部13は、ディスク領域割当部16に対して、コンテンツの書き込み先となるディスク領域の割り当てを要求する。
【0043】
コンテンツファイル変換部14は、例えばディスク書込部13に備えられて、コンテンツファイル10から読み出したマルチメディアコンテンツのデータ形式を変換して、ディスク11に書き込む。
【0044】
ディスク領域管理リスト15は、ディスク11に記録されているコンテンツの情報と、それらのコンテンツがディスク11のどこに記録されているのかという情報と、ディスク11の空き領域がどこにあるのかという情報とを管理する。
【0045】
ディスク領域割当部16は、ディスク書込部13からのディスク領域の割当要求を受けて、ディスク領域管理リスト15を参照・更新しつつ、ディスク書込部13の要求するデータサイズを持つディスク領域を獲得して、ディスク書込部13に通知する。
【0046】
ディスク領域整理部17は、ディスク領域管理リスト15を参照することで、ディスク11の持つコンテンツの書き込まれている記録領域の配置位置や、コンテンツの書き込まれていない空き領域の配置位置を整理した方がよい状態が発生したのか否かを判断して、記録領域や空き領域の配置位置を整理した方がよい状態が発生したことを判断する場合には、該当する記録領域や空き領域の配置位置を整理して、それに応じて、ディスク領域管理リスト15の情報を更新する。
【0047】
次に、図2に従って、ディスク領域管理リスト15のデータ構造について詳細に説明する。
【0048】
ディスク領域管理リスト15は、この図に示すように、ディスク11に記録されているコンテンツがどのようなものであり、それらのコンテンツがどのような属性情報を持つのかという情報を管理するコンテンツ管理リスト150と、それらのコンテンツがどこのディスク領域に記録されているのかという情報を管理するコンテンツ記録領域管理リスト151と、コンテンツの記録されていない空きのディスク領域がどこにあるのかという情報を管理する空き領域管理リスト152とで構成される。
【0049】
コンテンツ管理リスト150は、ディスクに記録されている各コンテンツについて、そのコンテンツの名称、そのコンテンツの種別、そのコンテンツのサイズ、そのコンテンツの保持期間などの属性情報をリスト形式で管理する。
【0050】
コンテンツ記録領域管理リスト151は、コンテンツ管理リスト150に管理される各コンテンツ毎に、そのコンテンツが記録されているディスク領域(ディスクの全領域の中に配置された連続領域であり、開始点とサイズの情報を有する。以下、このディスク領域を記録領域と略記することがある)の情報をリスト形式で管理する。
【0051】
空き領域管理リスト152は、ディスクの持つコンテンツの記録されていない空きのディスク領域(ディスクの全領域の中に存在する空きの連続領域であり、開始点とサイズの情報を有する。以下、このディスク領域を空き領域と略記することがある)の情報をリスト形式で管理する。
【0052】
図3に、ディスク領域割当部16が実行する書込対象のコンテンツに対してのディスク領域の割当処理のフローチャートの一例を図示する。
【0053】
ディスク領域割当部16は、ディスク書込部13からディスク領域の割当要求があると、図3のフローチャートに示すように、先ず最初に、ステップS100で、ディスク書込部13から書込対象のコンテンツのデータサイズの情報を受け取る。
【0054】
続いて、ステップS101で、空き領域管理リスト152を参照することで、受け取ったデータサイズよりも大きな空き領域を検索する。
【0055】
続いて、ステップS102で、受け取ったデータサイズよりも大きな空き領域を検索できたのか否かを判断して、検索できたことを判断するときには、ステップS103に進んで、検索した空き領域の中から、最小サイズの空き領域を選択する。
【0056】
続いて、ステップS104で、選択した空き領域からコンテンツを記録するディスク領域を切り出し、書込対象のコンテンツに割り当てて、コンテンツ記録領域管理リスト151に登録する。
【0057】
続いて、ステップS105で、選択した空き領域に残されている空き領域を特定して、その特定した空き領域の情報を空き領域管理リスト152に登録する。
【0058】
続いて、ステップS106で、ディスク書込部13に対して、ディスク領域の割当結果を返信して、処理を終了する。
【0059】
一方、ステップS102の判断処理で、受け取ったデータサイズよりも大きな空き領域を検索できないことを判断するときには、ステップS107に進んで、検索した空き領域の中から、最大サイズの空き領域を選択し、書込対象のコンテンツに割り当てて(追加する形で割り当てる)、コンテンツ記録領域管理リスト151に登録し、さらに、空き領域管理リスト152からその割り当てた空き領域の情報を削除する。
【0060】
続いて、ステップS108で、コンテンツのデータサイズ(現在設定されているコンテンツのデータサイズ)から、ステップS107で割り当てたデータサイズを差し引くことで、書込対象のコンテンツのデータサイズを更新してから、ステップS101の処理に戻ることで、コンテンツの全データを記録可能なディスク領域が確保されるまで、このコンテンツの分割処理を繰り返していく。
【0061】
そして、この分割処理を繰り返していくときに、ステップS102で、現在設定されているコンテンツのデータサイズよりも大きな空き領域を検索できたことを判断するときには、ステップS103〜ステップS106の処理を行って、処理を終了する。
【0062】
ディスク領域割当部16がこのようなディスク領域の割り当てを行うことにより、コンテンツ全体を記録するのに十分なサイズの連続する空き領域がある場合には、コンテンツの記録領域が分割されることがない。
【0063】
さらに、コンテンツ全体を記録するのに十分なサイズの連続する空き領域がない場合には、コンテンツの記録領域は大きな空き領域から確保されるため、極端に小さな空き領域にデータが割り当てられることによりディスクのシークが短時間に複数回発生する確率を小さく抑えることが可能である。
【0064】
図4に、コンテンツファイル変換部14により実行されるコンテンツファイルの変換方法を図示する。
【0065】
デジタルシネマのコンテンツは、図4の上段に示すように、映像、オーディオ、字幕といったトラックごとのファイルに分割され、さらに時間方向に複数のファイルに分割されている。
【0066】
このような構造は、映像、オーディオ、字幕が別々のファイルとなっていることから、データの一部を差し替える際には便利であるが、コンテンツの再生の際には、映像、オーディオ、字幕を並列に読み出すためにデータファイルのシークを交互に行う必要がある。さらに、時間的にも別のファイルとなっているため、一般的なファイルシステムでは、リール(映像シネマでは複数のリールをつなげることで構成されている)の継ぎ目でも、ファイルのクローズとオープンを行う必要が発生する。
【0067】
そこで、コンテンツファイル変換部14は、図4の下段に示すように、各トラックファイルから、そのメタ情報と各フレームおよびリールのサイズ情報とを取り出し、これらをコンテンツ属性情報として管理すると共に、各トラックファイルのデータをたとえば1フレームずつインターリーブしてディスク領域に記録するようにする。
【0068】
ここで、コンテンツ属性情報の一つとして、リール先頭位置のオフセットを管理するのは、映像シネマの場合にはリールを検索キーとして指定する検索が行われることがあるからである。
【0069】
図5に、このデータ変換を行うためにコンテンツファイル変換部14が実行するフローチャートの一例を図示する。
【0070】
すなわち、コンテンツファイル変換部14は、デジタルシネマのコンテンツをディスク11に書き込むときには、図5のフローチャートに示すように、先ず最初に、ステップS200で、映像トラックファイル、オーディオトラックファイル、字幕トラックファイルの各トラックファイルから、そのメタ情報と各フレームおよびリールのサイズ情報とを取得し、続くステップS201で、その取得した情報に基づいて、変換後のコンテンツに関してのコンテンツ属性情報を生成する。
【0071】
続いて、ステップS202で、フレーム番号を示す変数iに初期値“1”をセットし、続くステップS203で、変数iの値が最大フレーム番号imax より大きくなったのか否かを判断する。
【0072】
この判断処理に従って、変数iの値が最大フレーム番号imax より大きくなっていないことを判断するときには、ステップS204に進んで、映像トラックファイルからi番目のフレームの映像データを取り出し、ディスク11に書き込む。
【0073】
続いて、ステップS205で、オーディオトラックファイルからi番目のフレームのオーディオデータを取り出し、ステップS204で書き込んだ映像データに続ける形でディスク11に書き込む。
【0074】
続いて、ステップS206で、字幕トラックファイルからi番目の字幕データを取り出し、ステップS205で書き込んだオーディオデータに続ける形でディスク11に書き込む。
【0075】
続いて、変数iの値を1つインクリメントしてから、ステップS203の処理に戻る。そして、このようにして、ステップS203〜ステップS207の処理を繰り返していくことで、ステップS203で、変数iの値が最大フレーム番号imax より大きくなったことを判断すると、処理を終了する。
【0076】
コンテンツファイル変換部14がこのようなデータ変換を行うことにより、コンテンツ再生時には、シークを行うことなく、連続領域からデータを読み出すことが可能となる。また、もとのファイルで管理されていたトラックファイルのメタ情報や、各トラックファイルの時間長(リール時間長)については、コンテンツの属性情報として管理されるため、失われることがない。
【0077】
図6に、ディスク領域割当部16が実行するコンテンツに対してのディスク領域の割当処理のフローチャートの他の一例を図示する。
【0078】
このフローチャートを実行する場合、ディスク領域割当部16は、コンテンツの種別に応じたディスク領域の割り当てを行うことになる。
【0079】
デジタルシネマ等の分野では、コンテンツをコピーする際に、そのコンテンツのサイズおよび保持期間の予想値が既知となっている。本実施形態例では、この情報を利用することにより、書込対象となるコンテンツを、サイズが一定以上で、保持期間が一定以下のコンテンツ(例えば、デジタルシネマの場合における本編)と、それ以外のコンテンツ(例えば、デジタルシネマの場合における予告編や広告など)との2種類に分類している。
【0080】
分類された2種類のコンテンツにおいて、割当領域を決定する際に、ディスク内のアドレス順にソートされた空き領域管理リスト152をそれぞれ前端、後端から逆方向に検索することにより、それぞれの領域がディスク領域の前端、後端よりに割り当てられるように制御を行っている。また、空き領域内にデータ領域を割り当てる場合にも、それぞれ前詰め、後ろ詰めでデータ領域を割り当てる。
【0081】
すなわち、ディスク領域割当部16は、コンテンツの種別に応じたディスク領域の割り当てを行う場合には、図6のフローチャートに示すように、先ず最初に、ステップS300で、ディスク書込部13から書込対象のコンテンツのデータサイズの情報と保持期間の情報とを受け取る。
【0082】
続いて、ステップS301で、受け取ったデータサイズが閾値Sよりも大きく、かつ、受け取った保持期間が閾値Tよりも短いコンテンツであるのか否かを判断する。
【0083】
この判断処理に従って、データサイズが閾値Sよりも大きく、かつ、保持期間が閾値Tよりも短いコンテンツであることを判断するときには、ステップS302に進んで、空き領域管理リスト152の前端から空き領域の検索を行い、続くステップS303で、受け取ったデータサイズよりも大きな空き領域を検索できたのか否かを判断して、検索できたことを判断するときには(最小サイズの空き領域である必要はない)、ステップS306に進んで、検索した空き領域に従ってディスク領域を確保することで、前づめでディスク領域を確保する。そして、ステップS303で、受け取ったデータサイズよりも大きな空き領域を検索できないことを判断するときには、ステップS304,305の処理に従って、最大サイズの空き領域をディスク領域として確保しながら、コンテンツの分割処理を繰り返していく。このとき、最大サイズの空き領域を優先するのではなくて、空き領域管理リスト152の前端側にある空き領域(あるサイズ以上のものに限定してもよい)を優先するようにしてもよい。
【0084】
一方、ステップS301の判断処理に従って、データサイズが閾値Sよりも大きく、かつ、保持期間が閾値Tよりも短いコンテンツではないことを判断するときには、ステップS307に進んで、空き領域管理リスト152の後端から空き領域の検索を行い、続くステップS308で、受け取ったデータサイズよりも大きな空き領域を検索できたのか否かを判断して、検索できたことを判断するときには(最小サイズの空き領域である必要はない)、ステップS311に進んで、検索した空き領域に従ってディスク領域を確保することで、後づめでディスク領域を確保する。そして、ステップS308で、受け取ったデータサイズよりも大きな空き領域を検索できないことを判断するときには、ステップS309,310の処理に従って、最大サイズの空き領域をディスク領域として確保しながら、コンテンツの分割処理を繰り返していく。このとき、最大サイズの空き領域を優先するのではなくて、空き領域管理リスト152の後端側にある空き領域(あるサイズ以上のものに限定してもよい)を優先するようにしてもよい。
【0085】
なお、図6のフローチャートでは、ディスク領域管理リスト15の更新処理については省略してある。
【0086】
また、図6のフローチャートでは、データサイズが閾値Sよりも大きく、かつ、保持期間が閾値Tよりも短いコンテンツであることを判断するときに、ステップS302に進み、そうではないコンテンツであることを判断するときに、ステップS307に進むことで説明したが、これとは逆に、データサイズが閾値Sよりも大きく、かつ、保持期間が閾値Tよりも短いコンテンツではないことを判断するときに、ステップS302に進み、そうではないコンテンツであることを判断するときに、ステップS307に進むようにしてもよい。
【0087】
このようにして、ディスク領域割当部16は、コンテンツの種別に応じたディスク領域の割り当てを行うように処理するのである。本実施形態例によるディスク領域の割当方法では、コンテンツの種別により固定的にディスク領域を割り当てておくわけではないため、ディスク領域を無駄にすることがない。
【0088】
次に、ディスク領域整理部17の実行する処理について説明する。
【0089】
図7に、ディスク領域整理部17により実行される、分割されたデータ記録領域の結合方法を図示する。
【0090】
この図の例においては、コンテンツAの記録領域がコンテンツBの記録領域によって2つに分割されていることを想定している。
【0091】
ここで、コンテンツBを消去した場合、コンテンツAの記録領域1に隣接した領域が空き領域となるため、コンテンツAの記録領域2のデータを、コンテンツAの記録領域1の隣接領域に移動することによって、コンテンツAで発生していたフラグメントを解消することができる。
【0092】
本実施形態例においては、コンテンツAの記録領域2のサイズが一定以下の場合にのみ、データの移動を行うようにしており、これから、デフラグメント処理は短時間に終えることができる。
【0093】
図8に、このデフラグメント処理を実現すべく、ディスク領域整理部17が実行するフローチャートを図示する。
【0094】
すなわち、ディスク領域整理部17は、コンテンツの消去などが実行されると、図8のフローチャートに示すように、先ず最初に、ステップS400で、ディスク領域管理リスト15を参照することで、分割されたコンテンツが空き領域を挟む形で接する状態が発生したのかをチェックする。すなわち、図7に示すコンテンツBが消去されたときの状態が発生したのかをチェックするのである。
【0095】
続いて、ステップS401で、このチェック処理に基づいて、分割されたコンテンツが空き領域を挟む形で接する状態が発生したのか否かを判断して、発生していないことを判断するときには、そのまま処理を終了し、一方、発生したことを判断するときには、ステップS402に進んで、空き領域を挟む形で存在する2つの記録領域の内の小さなサイズの方の記録領域のサイズを特定する。
【0096】
続いて、ステップS403で、その特定した記録領域のサイズが閾値T1よりも小さいのか否かを判断して、小さくないことを判断するときには、デフラグメントの処理を短時間に終えることができないので、デフラグメントの処理を行わないようにするために、そのまま処理を終了し、一方、小さいことを判断するときには、ステップS404に進んで、ステップS402で特定した小さなサイズの方の記録領域のデータを移動することで、2つの記録領域を結合して、処理を終了する。
【0097】
なお、図8のフローチャートでは、ディスク領域管理リスト15の更新処理については省略してある。
【0098】
このようにして、ディスク領域整理部17は、コンテンツが消去されることなどにより、分割されたコンテンツが空き領域を挟む形で接する状態が発生した場合には、小さなサイズの方の記録領域を移動させる形で2つ記録領域を結合することで、デフラグメントの処理を実行するのである。本実施形態例においては、空き領域を挟む形で存在する2つ記録領域の内の小さなサイズの方の記録領域のサイズが一定以下の場合にのみ、データの移動を行うようにしており、これから、デフラグメント処理は短時間に終えることができることになる。
【0099】
図9に、ディスク領域整理部17により実行される、分割されたデータ記録領域の結合方法の他の例を図示する。
【0100】
この図の例においては、コンテンツAの記録領域がそれに隣接するコンテンツBの記録領域および空き領域によって2つに分割されていることを想定している。
【0101】
このような場合、コンテンツAの記録領域1に対して記録領域2を結合することによりコンテンツAのフラグメントを解消することができることになるが、コンテンツAの記録領域1に隣接してコンテンツBが記録されているため、コンテンツAの記録領域2のデータを記録領域1に隣接した領域に移動することができない。
【0102】
そこで、コンテンツBの記録領域のデータを空き領域に移動することで、コンテンツAの記録領域1に隣接した領域が空き領域となるようにしてから、コンテンツAの記録領域2のデータを記録領域1に隣接した領域に移動することによって、コンテンツAで発生していたフラグメントを解消する。
【0103】
本実施形態例においては、コンテンツBの記録領域のサイズが一定値よりも小さい場合に、この領域のデータを別の空き領域に移動することが可能であり、その後は、図7に示された方法と同様の方法に従って、コンテンツAのフラグメントを解消することができることになる。
【0104】
図10に、このデフラグメント処理を実現すべく、ディスク領域整理部17が実行するフローチャートを図示する。
【0105】
すなわち、ディスク領域整理部17は、コンテンツの書き込みなどが実行されると、図10のフローチャートに示すように、先ず最初に、ステップS500で、ディスク領域管理リスト15を参照することで、分割されたコンテンツの隣接領域に別のコンテンツが記録されている状態が発生したのかをチェックする。
【0106】
続いて、ステップS501で、このチェック処理に基づいて、分割されたコンテンツの隣接領域に別のコンテンツが記録されている状態が発生したのか否かを判断して、発生していないことを判断するときには、そのまま処理を終了し、一方、発生したことを判断するときには、ステップS502に進んで、2つの記録領域の内のその別のコンテンツに隣接しない方の記録領域のサイズを特定する。
【0107】
続いて、ステップS503で、その特定したサイズが閾値T2よりも小さいのか否かを判断して、小さくないことを判断するときには、デフラグメントの処理を短時間に終えることができないので、デフラグメントの処理を行わないようにするために、そのまま処理を終了し、一方、小さいことを判断するときには、ステップS504に進んで、隣接領域に記録されている別のコンテンツのサイズがその特定したサイズよりも大きいのか否かを判断する。
【0108】
このステップS504の判断処理に従って、隣接領域に記録されている別のコンテンツのサイズがステップS502で特定したサイズよりも大きくないことを判断するときには、その別のコンテンツの移動により生成されることになる空き領域の中に分割されたコンテンツ(その別のコンテンツに隣接しない方のコンテンツ)が収まらないことを判断して、デフラグメント処理を行わないようにするために、そのまま処理を終了し、一方、大きいことを判断するときには、ステップS505に進んで、その別のコンテンツのサイズが閾値T3よりも小さいのか否かを判断する。
【0109】
このステップS505の判断処理に従って、隣接領域に記録されている別のコンテンツのサイズが閾値T3よりも小さくないことを判断するときには、デフラグメントの処理を短時間に終えることができないので、デフラグメントの処理を行わないようにするために、そのまま処理を終了し、一方、小さいことを判断するときには、ステップS506に進んで、隣接領域に記録されている別のコンテンツの記録領域のデータを空き領域に移動する。
【0110】
続いて、ステップS507で、ステップS502でサイズを特定した方の記録領域のデータを移動することで、2つの記録領域を結合して、処理を終了する。
【0111】
なお、図10のフローチャートでは、ディスク領域管理リスト15の更新処理については省略してある。
【0112】
このようにして、ディスク領域整理部17は、コンテンツが書き込まれることなどにより、分割されたコンテンツの隣接領域に別のコンテンツが記録されている状態が発生した場合には、その別のコンテンツを移動することで、分割されたコンテンツの隣接領域が空き領域となるようにしてから、その別のコンテンツに隣接しない方の記録領域を移動させる形で2つ記録領域を結合することで、デフラグメントの処理を実行するのである。本実施形態例においては、移動処理の対象となるコンテンツの記録領域のサイズが一定以下の場合にのみ、データの移動を行うようにしており、これから、デフラグメントの処理は短時間に終えることができることになる。
【0113】
図11に、ディスク領域整理部17により実行される、空き領域の結合方法を図示する。
【0114】
この図の例においては、2つの空き領域に挟まれる形でコンテンツの記録領域が存在することを想定している。
【0115】
このような場合、空き領域に挟まれた記録領域のデータを別の空き領域に移動することで、空き領域を結合して連続した空き領域を拡張することが可能である。
【0116】
このデータ移動は、データ領域の両側の空き領域が一定のサイズを超えており、かつ、データ領域のサイズが一定以下の場合にのみに行われるため、データの移動は短時間に終えることができ、また、結合された空き領域のサイズも大きなものとなる。
【0117】
図12に、この空き領域の結合処理を実現すべく、ディスク領域整理部17が実行するフローチャートを図示する。
【0118】
すなわち、ディスク領域整理部17は、コンテンツの消去などが実行されると、図12のフローチャートに示すように、先ず最初に、ステップS600で、ディスク領域管理リスト15を参照することで、空き領域がコンテンツの記録領域を挟む形で接している状態が発生したのかをチェックする。すなわち、図11の上段に示す状態が発生したのかをチェックするのである。
【0119】
続いて、ステップS601で、このチェック処理に基づいて、空き領域がコンテンツの記録領域を挟む形で接している状態が発生したのか否かを判断して、発生していないことを判断するときには、そのまま処理を終了し、一方、発生したことを判断するときには、ステップS602に進んで、2つの空き領域のサイズが閾値T4よりも大きいのか否かを判断する。
【0120】
このステップS602の判断処理に従って、2つの空き領域のサイズが閾値T4よりも大きくないことを判断するときには、あえて空き領域の結合を行うまでもないので、そのまま処理を終了し、一方、大きいことを判断するときには、ステップS603に進んで、コンテンツの記録領域のサイズが閾値T5よりも小さいのか否かを判断する。
【0121】
このステップS603の判断処理に従って、コンテンツの記録領域のサイズが閾値T5よりも小さくないことを判断するときには、その記録領域のデータの移動を短時間で終えることができないので、そのデータ移動を行わないようにするために、そのまま処理を終了し、一方、小さいことを判断するときには、ステップS604に進んで、コンテンツの記録領域のデータを別の空き領域に移動することで、2つの空き領域を結合して、処理を終了する。
【0122】
なお、図12のフローチャートでは、ディスク領域管理リスト15の更新処理については省略してある。
【0123】
このようにして、ディスク領域整理部17は、コンテンツが消去されることなどにより、空き領域がコンテンツの記録領域を挟む形で接している状態が発生した場合には、そのコンテンツを移動することにより2つの空き領域を結合することで、空き領域の結合処理を実行するのである。本実施形態例においては、移動処理の対象となるコンテンツの記録領域のサイズが一定以下の場合にのみ、データの移動を行うようにしており、これから、このデータ移動処理は短時間に終えることができることになる。
【0124】
最後に、シミュレーションによりディスクのフラグメント数を評価した実験結果について説明する。
【0125】
このシミュレーションにおいては、本編(150〜300Gバイト、保持期間2〜6週間)と予告篇(2〜10Gバイト、保持期間2〜16週間)の2種類のコンテンツが毎週1本ずつ1Tバイトの容量を持つディスクに書き込まれた場合に、フラグメント量がどのように変化するかを評価したものである。ディスクの割当単位は1Gバイト単位としている。
【0126】
図13に、このシミュレーションの実験結果を図示する。この図は、一般的なファイルシステムを用いた場合におけるフラグメント数と、図3のフローチャートに従ってディスク領域の割り当てを行った本発明の場合におけるフラグメント数との比較を行った実験結果である。
【0127】
図13(a)が従来方式の実験結果を示し、図13(b)が本発明の実験結果を示す。この図では、ディスク内のコンテンツ数(従来方式と本発明とで同じものとなる)についても併記している。従来方式では、空き領域のサイズを考慮せずに、空き領域に対して順にコンテンツを書き込むという割当方法をとっている。
【0128】
図13(a)を見れば分かるように、従来方式によるディスク領域の割当方法では、コンテンツ数と同等以上のフラグメントが発生していることがわかる。これと比較すると、図13(b)を見れば分かるように、図3のフローチャートに従ってディスク領域の割り当てを行う本発明による割当方法を適用することで、フラグメントの数を大幅に削減することができることが明らかである。
【0129】
図14に、従来方式と、図3のフローチャートに従ってディスク領域の割り当てを行う本発明の方式(方式1)と、この方式1にさらに図6のフローチャートに示すコンテンツの分類に基づくディスク領域の割り当てを行う本発明の方式(方式2)と、この方式2にさらに図7に示すデータ移動処理に基づくディスク領域の割り当てを行う本発明の方式(方式3)という4つの方式について、その平均フラグメント数を比較した結果を図示する。
【0130】
この図により、本発明のコンテンツ種別の分類方法、データ移動処理を追加することにより、さらにフラグメント数を削減することが可能であることがわかる。
【産業上の利用可能性】
【0131】
本発明は、リアルタイム再生を行うコンテンツを格納するディスクの領域管理に適用できるものであり、フラグメントの数を大幅に抑えることができるようになり、その結果シーク回数を大幅に抑えることができるようになる。
【図面の簡単な説明】
【0132】
【図1】本発明のディスク管理システムの一実施形態例である。
【図2】ディスク領域管理リストのデータ構造の説明図である。
【図3】ディスク領域割当部の実行するフローチャートである。
【図4】コンテンツファイル変換部の実行する処理の説明図である。
【図5】コンテンツファイル変換部の実行するフローチャートである。
【図6】ディスク領域割当部の実行するフローチャートである。
【図7】ディスク領域整理部の実行する処理の説明図である。
【図8】ディスク領域整理部の実行するフローチャートである。
【図9】ディスク領域整理部の実行する処理の説明図である。
【図10】ディスク領域整理部の実行するフローチャートである。
【図11】ディスク領域整理部の実行する処理の説明図である。
【図12】ディスク領域整理部の実行するフローチャートである。
【図13】シミュレーションの実験結果の説明図である。
【図14】シミュレーションの実験結果の説明図である。
【符号の説明】
【0133】
1 ディスク管理システム
10 コンテンツファイル
11 ディスク
12 コンテンツ取得部
13 ディスク書込部
14 コンテンツファイル変換部
15 ディスク領域管理リスト
16 ディスク領域割当部
17 ディスク領域整理部
【特許請求の範囲】
【請求項1】
ディスクの領域を管理するディスク管理方法であって、
ディスクに記録されるコンテンツの記録領域を指定するリストを作成更新するとともに、ディスクの持つ連続した空き領域を指定するリストを作成更新することによって、ディスクの領域を管理する過程と、
新たなコンテンツをディスクに書き込む際に、前記空き領域のリストを検索して、そのコンテンツのデータ全体を格納するのに十分な大きさの空き領域があった場合には、その中で最も小さな空き領域にコンテンツの記録領域を割り当てる過程と、
前記検索処理において、コンテンツのデータ全部を格納するのに十分な大きさの空き領域が見つからなかった場合には、コンテンツのデータを分割し、サイズの大きな空き領域からコンテンツの記録領域を割り当てる過程とを有することを、
特徴とするディスク管理方法。
【請求項2】
ディスクの領域を管理するディスク管理方法であって、
映像、オーディオ、字幕を少なくとも含むトラックごとに分割されたファイルによって構成されるマルチメディアコンテンツを取得する過程と、
前記取得したマルチメディアコンテンツをディスクに書き込む際に、各トラックファイルを一定時間単位でインターリーブし、連続的に読み出し可能なデータに変換してディスクに書き込む過程とを有することを、
特徴とするディスク管理方法。
【請求項3】
請求項1に記載のディスク管理方法において、
新たなコンテンツをディスクに書き込む際にあって、コンテンツのデータサイズと予測保持時間とが与えられた場合に、コンテンツをデータサイズと保持時間とによって分類し、その分類に基づいて前記空き領域のリストを検索して、分類されたコンテンツの記録領域がディスク領域内において混在しないように、空き領域にコンテンツの記録領域を割り当てる過程を有することを、
特徴とするディスク管理方法。
【請求項4】
請求項1又は3に記載のディスク管理方法において、
記録領域が分割されているコンテンツについて、一方の記録領域のサイズが一定以下であり、かつ、その記録領域を空き領域に移動することによりそのコンテンツの記録領域が連続した状態に変更可能な場合に、その移動を行う過程を有することを、
特徴とするディスク管理方法。
【請求項5】
請求項1又は3に記載のディスク管理方法において、
記録領域が分割されているコンテンツについて、一方の記録領域のサイズが一定以上で、かつ、その記録領域に隣接する領域にサイズが一定以下のコンテンツの記録領域が確保されている場合にあって、その隣接する領域に記録されているコンテンツのデータを移動するのに十分な大きさの空き領域がある場合に、その移動を行う過程を有することを、
特徴とするディスク管理方法。
【請求項6】
請求項1又は3に記載のディスク管理方法において、
サイズが一定以下であり、かつ、両側に一定サイズ以上の空き領域があるコンテンツの記録領域について、その記録領域に記録されているコンテンツのデータを移動するのに十分な大きさの空き領域がある場合に、その移動を行う過程を有することを、
特徴とするディスク管理方法。
【請求項7】
ディスクの領域を管理するディスク管理装置であって、
ディスクに記録されるコンテンツの記録領域を指定するリストと、ディスクの持つ連続した空き領域を指定するリストとによって、ディスクの領域を管理する手段と、
新たなコンテンツをディスクに書き込む際に、前記空き領域のリストを検索して、そのコンテンツのデータ全体を格納するのに十分な大きさの空き領域があった場合には、その中で最も小さな空き領域にコンテンツの記録領域を割り当てる手段と、
前記検索処理において、コンテンツのデータ全部を格納するのに十分な大きさの空き領域が見つからなかった場合には、コンテンツのデータを分割し、サイズの大きな空き領域からコンテンツの記録領域を割り当てる手段とを有することを、
特徴とするディスク管理装置。
【請求項8】
ディスクの領域を管理するディスク管理装置であって、
映像、オーディオ、字幕を少なくとも含むトラックごとに分割されたファイルによって構成されるマルチメディアコンテンツを取得する手段と、
前記取得したマルチメディアコンテンツをディスクに書き込む際に、各トラックファイルを一定時間単位でインターリーブし、連続的に読み出し可能なデータに変換してディスクに書き込む手段とを有することを、
特徴とするディスク管理装置。
【請求項9】
請求項1ないし6のいずれか1項に記載のディスク管理方法をコンピュータに実行させるためのディスク管理用プログラム。
【請求項1】
ディスクの領域を管理するディスク管理方法であって、
ディスクに記録されるコンテンツの記録領域を指定するリストを作成更新するとともに、ディスクの持つ連続した空き領域を指定するリストを作成更新することによって、ディスクの領域を管理する過程と、
新たなコンテンツをディスクに書き込む際に、前記空き領域のリストを検索して、そのコンテンツのデータ全体を格納するのに十分な大きさの空き領域があった場合には、その中で最も小さな空き領域にコンテンツの記録領域を割り当てる過程と、
前記検索処理において、コンテンツのデータ全部を格納するのに十分な大きさの空き領域が見つからなかった場合には、コンテンツのデータを分割し、サイズの大きな空き領域からコンテンツの記録領域を割り当てる過程とを有することを、
特徴とするディスク管理方法。
【請求項2】
ディスクの領域を管理するディスク管理方法であって、
映像、オーディオ、字幕を少なくとも含むトラックごとに分割されたファイルによって構成されるマルチメディアコンテンツを取得する過程と、
前記取得したマルチメディアコンテンツをディスクに書き込む際に、各トラックファイルを一定時間単位でインターリーブし、連続的に読み出し可能なデータに変換してディスクに書き込む過程とを有することを、
特徴とするディスク管理方法。
【請求項3】
請求項1に記載のディスク管理方法において、
新たなコンテンツをディスクに書き込む際にあって、コンテンツのデータサイズと予測保持時間とが与えられた場合に、コンテンツをデータサイズと保持時間とによって分類し、その分類に基づいて前記空き領域のリストを検索して、分類されたコンテンツの記録領域がディスク領域内において混在しないように、空き領域にコンテンツの記録領域を割り当てる過程を有することを、
特徴とするディスク管理方法。
【請求項4】
請求項1又は3に記載のディスク管理方法において、
記録領域が分割されているコンテンツについて、一方の記録領域のサイズが一定以下であり、かつ、その記録領域を空き領域に移動することによりそのコンテンツの記録領域が連続した状態に変更可能な場合に、その移動を行う過程を有することを、
特徴とするディスク管理方法。
【請求項5】
請求項1又は3に記載のディスク管理方法において、
記録領域が分割されているコンテンツについて、一方の記録領域のサイズが一定以上で、かつ、その記録領域に隣接する領域にサイズが一定以下のコンテンツの記録領域が確保されている場合にあって、その隣接する領域に記録されているコンテンツのデータを移動するのに十分な大きさの空き領域がある場合に、その移動を行う過程を有することを、
特徴とするディスク管理方法。
【請求項6】
請求項1又は3に記載のディスク管理方法において、
サイズが一定以下であり、かつ、両側に一定サイズ以上の空き領域があるコンテンツの記録領域について、その記録領域に記録されているコンテンツのデータを移動するのに十分な大きさの空き領域がある場合に、その移動を行う過程を有することを、
特徴とするディスク管理方法。
【請求項7】
ディスクの領域を管理するディスク管理装置であって、
ディスクに記録されるコンテンツの記録領域を指定するリストと、ディスクの持つ連続した空き領域を指定するリストとによって、ディスクの領域を管理する手段と、
新たなコンテンツをディスクに書き込む際に、前記空き領域のリストを検索して、そのコンテンツのデータ全体を格納するのに十分な大きさの空き領域があった場合には、その中で最も小さな空き領域にコンテンツの記録領域を割り当てる手段と、
前記検索処理において、コンテンツのデータ全部を格納するのに十分な大きさの空き領域が見つからなかった場合には、コンテンツのデータを分割し、サイズの大きな空き領域からコンテンツの記録領域を割り当てる手段とを有することを、
特徴とするディスク管理装置。
【請求項8】
ディスクの領域を管理するディスク管理装置であって、
映像、オーディオ、字幕を少なくとも含むトラックごとに分割されたファイルによって構成されるマルチメディアコンテンツを取得する手段と、
前記取得したマルチメディアコンテンツをディスクに書き込む際に、各トラックファイルを一定時間単位でインターリーブし、連続的に読み出し可能なデータに変換してディスクに書き込む手段とを有することを、
特徴とするディスク管理装置。
【請求項9】
請求項1ないし6のいずれか1項に記載のディスク管理方法をコンピュータに実行させるためのディスク管理用プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2009−76170(P2009−76170A)
【公開日】平成21年4月9日(2009.4.9)
【国際特許分類】
【出願番号】特願2007−246411(P2007−246411)
【出願日】平成19年9月25日(2007.9.25)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
【公開日】平成21年4月9日(2009.4.9)
【国際特許分類】
【出願日】平成19年9月25日(2007.9.25)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
[ Back to top ]