以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書又は図面の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書又は図面に記載されていることを確認するためのものである。従って、明細書又は図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
本発明の第1の側面の読み出し装置(例えば、図4の記録再生システム101)は、
DVDまたは記憶媒体からデータを読み出す読み出し装置において、
コンテンツが記録されている前記DVD(例えば、図4のDVD119)のナビゲーション情報に基づいて、前記記憶媒体(例えば、図4のHDD116)に予め記憶させる、前記コンテンツの所定の部分を示す情報(例えば、図5のヒント情報)を生成する生成手段(例えば、図4のマイグレーションファイルシステム164)と、
前記生成手段により生成された前記情報に基づいて、前記DVDから、前記所定の部分を読み出して、前記記憶媒体に予め記憶させる記憶手段(例えば、図4のストレージマネージャ114)と、
前記コンテンツのデータの読み出しが要求された場合、前記記憶媒体に記憶されている、前記所定の部分のデータを読み出し、前記記憶媒体から読み出すデータに続くデータを前記DVDから読み出すように、前記記憶媒体および前記DVDからのデータの読み出しを制御する読み出し制御手段(例えば、図4のストレージマネージャ114)と
を備える。
前記所定期間は、前記DVDからコンテンツのデータを読み出すまでに必要な時間より長い期間(例えば、時間T)であるようにすることができる。
前記所定の部分は、DVDビデオ規格におけるプログラムまたはPTT(例えば、図9のPG、PTT)の開始位置から所定期間の部分であるようにすることができる。
前記生成手段は、
前記プログラムまたはPTTの先頭セルの先頭VOBUの先頭アドレスを、前記所定の部分の開始位置とし、前記プログラムまたはPTTの先頭セルの先頭VOBUから前記所定期間後に再生されるVOBUの先頭アドレスを、前記所定の部分の終了位置として、前記情報を生成することができる(例えば、図17のステップS3)
コンテンツの読み出しの開始を受け付ける受付手段(例えば、図4のアプリケーションプログラム141)をさらに設け、前記読み出し制御手段には、前記記憶媒体に記憶されている、前記受付手段により受け付けられた前記読み出しに対応する前記所定の部分のデータを読み出し、前記記憶媒体から読み出されるデータに続くデータを前記DVDから読み出すように、前記記憶媒体および前記DVDからのデータの読み出しを制御させることができる(例えば、図24のステップS73)
本発明の第1の読み出し方法、またはプログラムは、
DVDまたは記憶媒体からデータを読み出す読み出し装置の読み出し方法において、またはDVDまたは記憶媒体からデータを読み出す読み出し処理をコンピュータに実行させるプログラムにおいて、
コンテンツが記録されている前記DVDのナビゲーション情報に基づいて、前記記憶媒体に予め記憶させる、前記コンテンツの所定の部分を示す情報を生成する生成ステップ(例えば、図17のステップS2)と、
前記生成ステップの処理で生成された前記情報に基づいて、前記DVDから、前記所定の部分を読み出して、前記記憶媒体に予め記憶させる記憶ステップ(例えば、図17のステップS3)と、
前記コンテンツのデータの読み出しが要求された場合、前記記憶媒体に記憶されている、前記所定の部分のデータを読み出し、前記記憶媒体から読み出すデータに続くデータを前記DVDから読み出すように、前記記憶媒体および前記DVDからのデータの読み出しを制御する読み出し制御ステップ(例えば、図24のステップS72およびステップS73)と
を含む。
図3は、本発明を適用した記録再生システム101の構成を示している。
ビデオ/オーディオエンコーダ111は、入力された入力画像信号に対応したベースバンドの画像データをMPEG方式で符号化する。また、ビデオ/オーディオエンコーダ111は、入力された音声信号(図示せず)に対応したベースバンドの音声データをMPEG方式で符号化する。ビデオ/オーディオエンコーダ111は、符号化により得られたデータをストリームエンコーダ112に供給する。
ストリームエンコーダ112は、ビデオ/オーディオエンコーダ111から供給された、符号化されているデータを多重化して、MPEGトランスポートストリーム方式またはMPEGプログラムストリーム方式のストリームに変換し、変換により得られたストリームをHSM113に供給する。
HSM(Hierarchical Storage Management:階層型記憶管理)113は、記憶媒体へのコンテンツのデータの階層的な記憶を管理する(階層構造の記憶媒体へのコンテンツのデータの記憶を管理するとも言える)。
HSM113は、ストレージマネージャ114の制御の基に、ストリームエンコーダ112から供給されたストリームを、バッファ115を介してHDD(Hard Disk Drive)116に供給する。
HSM113は、光ディスク119から読み出され、HDD116に記憶されたデータ(ストリーム)を、HDD116からバッファ115を介して読み出して、読み出したデータ(ストリーム)をストリームデコーダ123に供給する。
HDD116は、高速な1次ストレージの一例であり、HSM113の制御の基に、バッファ115を介して、HSM113から供給されたストリーム(データ)を記憶する。また、HDD116は、記憶しているストリーム(データ)をバッファ115またはバッファ117に供給する。
バッファ115は、半導体メモリまたはHDD116の一部の記憶領域からなり、HSM113またはHDD116から供給されたストリーム(データ)を一時的に記憶して、記憶しているストリーム(データ)をHSM113またはHDD116に供給する。
バッファ117は、半導体メモリまたはHDD116の一部の記憶領域からなり、HDD116またはドライブ118から供給されたストリーム(データ)を一時的に記憶して、記憶しているストリーム(データ)をHDD116またはドライブ118に供給する。
バッファ115およびバッファ117は、読み出しジッタを吸収し、データレートを一定となるように平坦化する。
ドライブ118は、装着されている光ディスク119に、バッファ117から供給されたデータをファイルとして記録する。
ドライブ118は、装着されている光ディスク119からファイルとして記録されているデータを読み出して、読み出したデータをバッファ117に供給する。
ジュークシステム120は、ドライブ118への光ディスク119の着脱を制御する。また、ジュークシステム120は、複数の光ディスク119のそれぞれを格納するディスクスロット121からいずれかの光ディスク119をピッカー122に選択させる。
ピッカー122は、ジュークシステム120の制御の基に、選択した光ディスク119を搬送し、ドライブ118に装着させる。また、ピッカー122は、ジュークシステム120の制御の基に、ドライブ118から取り出された光ディスク119を搬送して、いずれかのディスクスロット121に格納させる。すなわち、ジュークシステム120は、ピッカー122を制御する。
ストリームデコーダ123は、MPEGトランスポートストリーム方式またはMPEGプログラムストリーム方式のストリームを、画像データおよび音声データに分離して、分離した画像データおよび音声データをビデオ/オーディオデコーダ124に供給する。
ビデオ/オーディオデコーダ124は、符号化されている画像データおよび音声データを、いわゆるベースバンドの画像データおよび音声データに復号する。また、ビデオ/オーディオデコーダ124は、復号により得られたベースバンドの画像データおよび音声データを基にした、出力画像信号および音声信号(図示せず)をモニタ125に供給する。
モニタ125は、出力画像信号を基にして、画像を表示すると共に、供給された音声信号を基にして、音声を出力する。
図4は、記録再生システム101の、本発明に係る部分のより詳細な構成を示すブロック図である。
アプリケーションプログラム141は、使用者とのインターフェースの機能を有し、使用者からの指示を取得するか、使用者に記録再生システム101に関する各種の情報を通知する。アプリケーションプログラム141は、記録再生システム101全体を制御する。
コンテンツマネージャ142は、記録再生システム101で記録されたコンテンツの内容を管理し、コンテンツの内容を検索する。
コンテンツマネージャ142は、コンテンツデータベース161へのコンテンツに関する各種の情報の記録を制御し、コンテンツデータベース161からのコンテンツに関する情報の読み出しを制御する。
コンテンツデータベース161に記録されているコンテンツに関する各種の情報は、例えば、以下の通りである。
・コンテンツに関連するファイルの情報(例えば、ファイル名、パス名など)
・コンテンツの内容および付加情報(例えば、コンテンツの名前、コンテンツのジャンルなど)、
・コンテンツの圧縮形式(方式)、再生時間、およびインデックス情報(例えば、コンテンツにおけるインデックスの位置など)
・アクセス可能なユーザ(使用者)のユーザ情報(例えば、使用者の名前、パスワードなど)
ストレージマネージャ114は、アプリケーションプログラム141からの要求に基づいて、HSM113を制御する。
ストレージマネージャ114には、システムマネージャ162およびファイルI/Oマネージャ163が設けられている。
システムマネージャ162は、ストレージ制御関連のシステムを設定し、システムログを記録し、エラーログを管理し、メンテナンス処理を実行する。
ファイルI/Oマネージャ163は、光ディスク119からHDD116へのデータの読み出し(後述するリロード)の処理、またはHDD116から光ディスク119へのデータの書き込みの処理を制御する。
HSM113は、HDD116、ドライブ118、光ディスク119、ジュークシステム120、ディスクスロット121、およびピッカー122を仮想ストレージ化し、HDD116によるコンテンツのデータの一時的な記憶を制御する。
HSM113は、マイグレーションファイルシステム164、ストレージサーバ165、ストアデータベース(DB)166、メディアサーバ167、およびボリウムデータベース(DB)168を含むように構成される。
マイグレーションファイルシステム164は、図5に示すように、キャッシュファイルとしてHDD116に記憶されているコンテンツの部分の領域情報、コンテンツのどの部分をキャッシュファイルとしてHDD116に記憶するかのヒントを示すヒント情報、およびキャッシュファイルID等の拡張属性を管理する。
領域情報は、キャッシュファイルとしてHDD116に記憶されているコンテンツの部分についての、コンテンツのデータの先頭からその部分の先頭までのオフセット値(バイト)を示すオフセット、その部分のデータ量を示すサイズ、および、その部分がストア済みであるかまたはホール状態であるかを示すフラグなどを含む。
ヒント情報は、キャッシュファイルとしてHDD116に記憶させる部分の、コンテンツのデータの先頭からその部分の先頭までのオフセット値(バイト)を示すヒントオフセット、その部分のデータ量を示すヒントサイズなどを含む。
なおHDD116に記憶させる部分の属性を示すリージョンフラッグスやその部分をマイグレーションする場合の優先順位を示すヒントプライオリティなどをヒント情報に含ませることもできる。
また、コンテンツの拡張属性は、オペレーティングシステムのファイルシステムにより記憶および読み出しをするようにしてもよく、また、コンテンツデータベース161に記憶するようにしてもよい。
図4に戻りマイグレーションファイルシステム164は、HSM113に管理されているファイルに対するアクセスイベントを管理する。
ストレージサーバ165は、光ディスク119からHDD116にデータに読み出すか、または、HDD116から光ディスク119にデータを書き込む。
また、ストレージサーバ165は、HDD116に記憶されている、コンテンツのデータを格納するキャッシュファイルに関する情報のストアデータベース166への記録を管理し、キャッシュファイルに関する情報のストアデータベース166からの読み出しを管理する。
ストアデータベースに記録されるキャッシュファイル166に関する情報とは、例えば、以下の通りである。
・HDD116に記憶されているキャッシュファイル名と、キャッシュファイルを特定するための値であるキャッシュファイルIDとを関連付ける情報
・キャッシュファイルが書き込まれた時刻またはキャッシュファイルが最後にアクセスされた時刻を示すキャッシュファイルデート情報
・全体のデータが保存されている光ディスク119を特定するボリウムID
・ジュークボックス145内の各光ディスク119の空き容量
メディアサーバ167は、それぞれのディスクスロット121に格納されている光ディスク119を管理する。
メディアサーバ167は、チェンジャドライバ143に対し、指定された光ディスク119のドライブ118への装着(マウント)を要求する。
また、メディアサーバ167は、チェンジャドライバ143に対し、ドライブ118に装着されている光ディスク119のディスクスロット121への格納(アンマウント)を要求する。
メディアサーバ167に設けられているボリウムデータベース168は、光ディスク119に関係する情報を格納する。
ボリウムデータベース168に格納されている光ディスク119に関する情報は、例えば、以下の通りである。
・各光ディスク119の生ディスク状態での記録容量
・各光ディスク119のメディアとしての種類(MO(Magneto-Optical disk)、DVD(Digital Versatile Disc)+R、またはDVD+RWなど)と書き込み専用または読み書き可能などの属性
・ジュークボックス145内の各ディスクスロット121に格納されている光ディスク119のボリウムID
・ジュークボックス145に搭載されているドライブ118の使用状況
チェンジャドライバ143は、ドライブ118を制御し、ジュークボックス制御部144とHSM113とのインターフェースの機能を有する。
ジュークボックス制御部144は、ジュークシステム120およびジュークサーボ169を含む。ジュークシステム120は、ドライブ118、光ディスク119、ジュークシステム120、ディスクスロット121、およびピッカー122からなるシステムを制御する。ジュークサーボ169は、ジュークボックス145を駆動する。
ジュークボックス145は、ドライブ118、光ディスク119、ディスクスロット121、およびピッカー122からなる。
次に、本発明の概略を説明する。本発明は、光ディスク119としてのDVDを再生する際に、指定された部分を読み出そうとする場合の、待ち時間の発生をより少なくするものである。
本発明では、DVD119がドライブ118に装着されると、ドライブ118によってDVD119から読み出されたDVDビデオ規格におけるナビゲーション情報に基づいて、例えばDVDビデオ規格における各プログラム(ランダム、シャッフル再生の単位やコマンドによるアクセスの単位)の先頭から所定期間の部分のデータを示すヒント情報(図5)が生成される。そしてそのヒント情報に基づいて、図6に示すように、DVD119が装着されたドライブ118から、各プログラムの先頭から所定期間の部分のデータが読み出され、バッファ117を介してHDD116に供給され、キャッシュファイルとしてHDD116(のキャッシュ領域)に予め書き込まれる。
図7Bは、図7Aに示すコンテンツが記録されているDVD119がドライブ118に装着されたときに生成されるHDD116のキャッシュファイルの状態を示している。
図7Bの例では、コンテンツの先頭のプログラム1の開始位置から所定の期間の部分のデータ、コンテンツの開始から23分26秒経過後に再生されるプログラム2の開始位置から所定の期間の部分のデータ、コンテンツの開始から38分45秒経過後に再生されるプログラム3の開始位置から所定の期間の部分のデータ、およびコンテンツの開始から43分59秒経過後に再生されるプログラム4の開始位置から所定の期間の部分のデータが、キャッシュファイルとしてHDD116に格納される。
ここで、キャッシュファイルとして、HDD116のキャッシュ領域に記憶されているデータに対応するコンテンツの部分をスタブと称し、スタブデータがHDD116に記憶されているコンテンツ上の領域を、スタブ領域と称する。またスタブデータがHDD116に記憶されていないコンテンツ上の領域を、ホール領域と称する。スタブ領域およびホール領域を区別しない場合、単に領域と称する。
すなわち図7の例では、プログラム1の0で示されるスタブ領域である領域のデータ(スタブデータ)は、HDD116にキャッシュファイルとして記憶され、プログラム1の1で示されるホール領域である領域のデータは、HDD116に記憶されていない。
プログラム2の2で示されるスタブ領域である領域のデータ(スタブデータ)、プログラム3の4で示されるスタブ領域である領域のデータ(スタブデータ)、およびプログラム4の6で示されるスタブ領域である領域のデータ(スタブデータ)は、HDD116にキャッシュファイルとして記憶される。
また、プログラム2の3で示されるホール領域である領域のデータ、プログラム3の5で示されるホール領域である領域のデータ、およびプログラム4の7で示されるホール領域である領域のデータは、HDD116に記憶されていない。
このようにDVD119がドライブ118に装着されたとき、コンテンツの、例えば各プログラムの先頭から所定期間の部分のデータが、キャッシュファイルとしてHDD116(のキャッシュ領域)に予め書き込まれる。
キャッシュファイルとしてHDD116に記憶されているDVD119のデータは、図8中、白抜きの矢印で示されるように、HDD116からバッファ115を介してアプリケーションプログラム141によって読み出される。一方、HDD116に記憶されていないDVD119のデータは、図8中、黒色の矢印で示されるように、DVD119が装着されたドライブ118から読み出される。そしてドライブ118から読み出されたデータは、例えばバッファ117を介してHDD116に供給されて、キャッシュファイルとして記憶され、バッファ115を介してアプリケーションプログラム141によって読み出される。
そこで本発明では、DVD119を再生する際、図8中、白抜きの矢印が示すように、はじめに、HDD116に予め格納されたキャッシュファイルから指定されたプログラムの先頭部分のデータが読み出されて、バッファ115を介してアプリケーション141に供給される。そしてそのプログラムの先頭が読み出されている間であって、予めキャッシュファイルに格納されていないそれに続くデータの読み出しが実行される前に、図8中、黒色の矢印が示すように、DVD119が装着されたドライブ118からホール領域のデータが読み出されて、キャッシュファイルとしてHDD116に格納される。そしてそのキャッシュファイルからホール領域のデータが読み出されて、バッファ115を介してアプリケーション141に供給される。
すなわち本発明によれば、各プログラムの先頭から所定期間の部分のデータを、キャッシュファイルとしてHDD116に予め記憶し、その期間(そのデータの長さ)を、ドライブ118はコンテンツの再生に必要なデータの読み出し速度に比較して、より速い速度でDVD119からデータを読み出すことから、DVD119からコンテンツのデータを読み出すまでに必要な時間より長くすることで、HDD116のキャッシュファイルに格納されていなかったデータを、そのデータがコンテンツの再生のために読み出される前に、HDD116のキャッシュファイルに格納することができる。従って、コンテンツの再生のために必要なデータは、常に、HDD116のキャッシュファイルから読み出すことができるようになり、コンテンツのデータの読み出しが要求された場合、待ち時間をほとんど生じさせることなく、迅速にコンテンツのデータを読み出すことができる。例えば、音声または画像のコンテンツである場合、画像または音声が途切れることがなく、画像または音声を再生することができる。
次に、本発明の詳細について説明する。
はじめに、DVDビデオ規格について説明する。
図9は、DVDビデオ規格におけるデータ構造を示している。
PGC(Program Chain)は、セル(cell)の再生順を指定するものである。図中PGC#は、PGCの番号を示す。
PGC内で、1個以上の連続する番号のセルをまとめたものが、1個のプログラム(PG)として定義される。プログラムは、ランダム、シャッフル再生の単位やコマンドによるアクセスの単位として用いられる。図中PG#は、プログラムの番号を示す。
さらに、PGC内で1個以上の連続する番号のプログラムをまとめたものが、1個のPTTとして定義される。PTTは、チャプタに相当するものであり、ユーザによるアクセスの単位の一つとなる。図中PTT#は、PTTの番号である。
セル(cell)は、リアルタイム・データの再生単位であり、それには、1個のPGC内での再生順にセル番号(図中、Cell#1,Cell#2,・・・)が付与される。セルにはまた、図10に示されるように、固有のID番号(図中、C-ID#1,C-ID#2,・・・)も付与される。
セルは、複数の、ビデオ、オーディオ、サブピクチャなどのデータで構成されるビデオ・オブジェクトの集合であるVOBU(Video Object Unit)から構成されている。
次に、DVDビデオ規格におけるファイル構造について説明する。
DVDビデオ規格においては、単一のDVDビデオゾーンが設けられ、それは、図11に示すように、1つのVMGと、少なくとも1個で、最大99個のVTSで構成されている。
VMG(Video Manager)は、VMGI、VMGM_VOBS、およびVMGI_BUPから構成されている。
VMGI(Video Manager Information)は、DVDビデオデータ全体についての制御情報であり、VIDEO_TS.IFOという1個のファイルからなる。
VMGM_VOBS(VMGメニュー用VOBS)は、タイトルメニューの映像、音声などのタイトル選択メニューのためのコンテンツであり、VIDEO_TS.VOBという1個のファイルからなる。
VMGI_BUP(バックアップ用制御データ)は、VMGIのコピー(バックアップ)であり、VIDEO_TS.BUPという1個のファイルからなる。
各VTS(Video Title Set)は、VTSI、VTSM_VOBS、VTS_TT_VOBS、およびVTSI_BUPから構成されている。
VTSI(Video Title Set Information)は、1個以上のタイトルやVTSメニューの情報などのそのVTSに対する制御情報であり、VTS_##_0.IFOという1個のファイルからなる。##(図11では、02)は、01から99までの整数を表している。
VTSM_VOBS(VTSメニュー用VOBS)は、チャプタ画像や音声、字幕選択画像などのVTS内の各種メニューのためのコンテンツであり、VTS_##_0.VOBという1個のファイルからなる。
VTS_TT_VOBS(VTS内タイトル用VOBS)は、タイトル再生のためのコンテンツであり、VTS_##_@.VOBという複数のファイルからなる。@は、1から9までの整数を表している。
VTSI_BUP(バックアップ用制御データ)は、VTSIのコピー(バックアップ)であり、VTS_##_0.BUPという1個のファイルからなる。
次に主なファイルの詳細について説明する。
はじめにVMGのVMGI(VIDEO_TS.IFO)について説明する。
VMGIは、図12に示すように、VMGI_MAT、TT_SRPT、およびTXTDT_MGなどから構成されている。
VMGI_MAT(Video Manager Information Management Table)には、例えば、VMGとVMGIのサイズ、VMG内の各情報(TT_SRPTなど)の先頭アドレス、VMGM用VOBの属性情報などが記述されている。
TT_SRPT(Title Search Pointer Table)には、DVDビデオのコンテンツ内のタイトルのサーチ情報が記述されており、それは、TT_SRPTIと複数のTT_SRPから構成されている。
TT_SRPTIには、例えば、TT_SRP(タイトル)の数、TT_SRPTの終了アドレスが記述されている。
TT_SRPは、タイトル毎に設けられ、そこには、例えば下記に示すタイトルが所属するVTSの番号(VTSN)とそのVTS内でのタイトル番号(VTS_TTN)の他、アングル数、PTT数、およびVTSアドレス等が記述されている。
Title #1 : VTSN = 1 VTS_TTN = 1
Title #2 : VTSN = 2 VTS_TTN = 1
Title #3 : VTSN = 2 VTS_TTN = 2
Title #4 : VTSN = 3 VTS_TTN = 1
TXTDT_MGには、DISCやtitleに与えられた名前などのテキスト情報が記述されている。
次に、VTS のVTSI(VTS_##_0.IFO)について説明する。
VTSIは、図13に示すように、VTS_PTT_SRPT、VTS_PGCIT、およびVTS_VOBU_ADMAPなどから構成されている。
VTS_PTT_SRPT(VTS PTT Search Pointer Table)は、各PTTがどのPGCのどのPGに対応するかを示すテーブルで、そこには、VTS_TTNを再生するのに必要なPGCIの番号が記述されている。
VTS_PTT_SRPTは、PTT_SRPTIと複数のTTU_SRP、および複数のTTUから構成されている。
PTT_SRPTIには、TTUの数、VTS_PTT_SRPTの終了アドレスが記述されている。
各TTU_SRPには、TTUの先頭アドレスのVTS_PTT_SRPTの先頭からの相対バイト数が記述されている。
TTUは、タイトルごとのPTT_SRPの集合であり、各タイトルがどのPTTで構成されているかを示す。
VTS_PGCIT(VTS Program Chain Information Table)は、VTSに属する全PGCの情報を記述するためのテーブル群であって、複数のPGCIが含まれている。
PGCI(Program Chain Information)は、PGCの再生を制御するためのナビゲーション・データの集合である。
PGCIは、PGC_GI、PGC_PGMAP、およびC_PBITから構成されている。
PGC_GI(PGC General Information)には、PGC内のプログラム(PG)総数、セル総数、PGC再生時間、及びPGCに関する各種テーブルの開始アドレスなどのPGCに関する全般的な情報が記述されている。
PGC_PGMAP(PGC Program Map)は、PGC内のプログラムの構造を示すマップ・テーブルであって、それには、図14に示すように、各プログラムに関して、最初に再生されるセル(以下、エントリセルと称する)のセル番号が記述されている。
図14は、図9に示すデータ構造に対応するもので、PG#1のプログラムはCell#1のセル、PG#2のプログラムはCell#3のセル、PG#3のプログラムはCell#4のセルから始まることを示している。
図13に戻りC_PBIT(Cell Playback Information Table)は、PGC内のセルの再生順序を定義するC_PBIを要素に持つテーブルである。
C_PBI(Cell Playback Information)は、C_CAT 、C_PBTM 、C_FVOBU_SA 、C_FVOBU_EA 、C_LVOBU_SA 、およびC_LVOBU_EA から構成されている。
C_CATには、セルのタイプ、シームレス再生フラグ、STC不連続フラグ、アクセス制限フラグ、スチル時間、セルコマンド番号などのセルのカテゴリが記述されている。
C_PBTMには、セル再生時間が記述されている。
C_FVOBU_SAには、セルの先頭VOBUの先頭アドレスが、C_FVOBU_EAには、セルの先頭VOBUの終了アドレスが記述されている。
C_LVOBU_SAには、セルの最終VOBUの先頭アドレスが、C_LVOBU_EAには、セルの最終VOBUの終了アドレスが記述されている。
VTS_VOBU_ADMAP(VTS VOBU Address Map)には、VTSIに関するVOBUのデータが記録されている場所を特定するアドレスが記述されている。具体的には、下記に示すように、このVTSIに属するVOBU(#1〜#m)の先頭アドレスがそのLBN(論理ブロック番号)の昇順で記述されている。なお1セクタ = 2048 byteである。
VOBU(VTS_VOBU_AD) #1 : アドレス 000 セクタ
VOBU(VTS_VOBU_AD) #2 : アドレス 100 セクタ
VOBU(VTS_VOBU_AD) #3 : アドレス 200 セクタ
VOBU(VTS_VOBU_AD) #4 : アドレス 400 セクタ
すなわちVTS_VOBU_AD #n(VTS VOBU #n Address)は、VTS_VOBU_ADMAP内のn番目のVOBUの先頭アドレスを示している。
以上のようにVTSI(VTS_##_0.IFO)は構成されているが、ここに記述されている情報を利用すれば、例えば図15に示すデータ構造を有する場合、C_PBI #2のC_FVOBU_SAを参照すれば、Cell #2のセルで最初に再生されるVOBU#3の開始アドレスを知ることができる。またVOBU#3の開始アドレスを基にVTS_VOBU_ADMAPを参照すれば、VOBU#3のVOBUがVTSIに属するVOBUにおいて何番目のVOBUであるか知ることができる。
次にVTSのVTSM_VOBS(VTS_##_0.VOB)(図11)について説明する。VTSM_VOBSは、図16に示すように、細分化されている。
すなわち図9に示したデータ構造に対応して、PGC の番号(PGC#)、PTTの番号(PTT#)、プログラムの番号(PG#)、そしてセルの番号(cell#)等が階層的に記述されている。
セルは1個以上のVOBUで構成されているが、1個のVOBUは0.4sec乃至1secの再生時間長を持ち、先頭には、図16に示すように、必ずNV_PCKが置かれ、続いてGOP(Group Of Picture)整数個分のビデオデータ、オーディオデータ、サブピクチャデータなどがパック化されて時分割で挿入されている(Video_PCK、Audio_PCK)。
NV_PCK( Navigation Pack)は、必ずVOBUに1個存在し、VOBUの先頭に配置される。NV_PCKは、PCI(Presentation Control Information)とDSI(Data Search Information)の2個のパケットを含む。
PCIには、再生表示に関する制御情報が格納されている。
PCIは、PCI_GI、NSML_AGLI、HLI、およびRECIから構成されている。
PCI_GI(PCI一般情報)は、NV_PCK_LBN、VOBU_CAT、VOBU_UOP_CTL、VOBU_S_PTM、VOBU_E_PTM、VOBU_SE_PTM、およびC_ELTMから構成されている。
NV_PCK_LBNは、ナビゲーション・パックのLBN(論理ブロック番号)であり、VOBU_CATは、VOBUのカテゴリ(アナログ・プロテクションの状態の記述)であり、VOBU_UOP_CTLは、VOBUのユーザ操作制御情報であり、VOBU_S_PTMは、VOBUの開始PTM(Presentation Time)であり、VOBU_E_PTMは、VOBUの終了PTMであり、VOBU_SE_PTMは、VOBU内のシーケンス・エンドの終了PTMである。
C_ELTMは、セル内経過時間である。例えば、図15におけVOBU #3 のVOBUの再生時間が0.5秒で、VOBU #4 のVOBUの再生時間が0.5秒で、VOBU #5 のVOBUの再生時間が0.5秒で、VOBU #6 のVOBUの再生時間 0.5秒で、その結果Cell #2のセルの再生時間が2秒である場合、VOBU #3のVOBUの C_ELTMは、0秒に、VOBU #4のVOBUのC_ELTMは、0.5秒に、VOBU #5のVOBUのC_ELTMは、1.0秒に、そしてVOBU #6のVOBUのC_ELTMは、1.5秒となる。
なお実際のDVDビデオでは、例えば映画の場合、1個のセル再生時間は数分から十数分あり、1個のVOBUの再生時間は0.5〜1秒程である。
図16に戻りNSML_AGLI(非シームレス用アングル情報)は、アングル変更時の行き先アドレスに関する情報である。
HLI(ハイライト情報)は、サブピクチャ表示領域内の一矩形領域をハイライトするための情報である。
RECI(記録情報)は、本VOBUに記録されたビデオデータ、全オーディオデータ及びSPデータ用の情報である。
DSI(データ・サーチ情報)は、DSI_GI、SML_PBI、SML_AGLI、VOBU_SRI、およびSYNCIから構成されている。
DSI_GI(DSI一般情報)は、DSIに関する情報であり、SML_PBI(シームレス再生情報)は、シームレス再生を実行するために必要な情報であり、SML_AGLI(シームレス用アングル情報)は、アングル変更時の行き先アドレスに関する情報であり、VOBU_SRI(VOBUサーチ情報)は、本DSIが含まれるVOBUの再生開始時刻の前後0.5×n秒に再生されるVOBUの先頭アドレスであり、SYNCI(同期情報)は、本DSIが含まれるVOBUのビデオデータと同期して再生されるオーディオデータとサブピクチャデータのアドレス情報である。
次に、DVD119がドライブ118に装着された場合の記録再生システム101の動作を、図17のフローチャートを参照して説明する。
DVD119がドライブ118に装着されると、ステップS1において、アプリケーションプログラム141は、DVD119が装着されたドライブ118から、マルチアングルやパレンタル再生、ランダム・シャッフル再生などのDVD独自の機能を実現したり、早送り、巻き戻しなどの特殊再生をサポートするための情報であるナビゲーション情報を取得する。
ステップS2において、アプリケーションプログラム141は、取得したナビゲーション情報を、ストレージマネージャ114を介してHSM113に供給する。HSM113のマイグレーションファイルシステム164は、供給されたナビゲーション情報に基づいてヒント情報を生成する。
ステップS3において、ストレージマネージャ114は、生成されたヒント情報に基づいて、キャッシュファイルを生成する。
次にステップS2およびステップS3の処理の詳細を説明する。はじめにステップS2におけるヒント情報生成処理の詳細について、図18のフローチャートを参照して説明する。
ステップS11において、マイグレーションファイルシステム164は、キャッシュファイルとしてHDD116に記憶されるコンテンツのデータの開始位置を検出する。この例の場合、DVD119に記録されているコンテンツの各プログラム(図9中のPG)の先頭から所定期間のデータが、予めキャッシュファイルとしてHDD116に記憶されるので、各プログラムの開始位置が検出される。この処理の詳細は、図19に示すフローチャートに示されている。
ステップS21において、マイグレーションファイルシステム164は、ナビゲーション情報として取得されたVTSIのVTS_PGCITの各PGCIのPGC_PGMAP(図13)から、プログラムのエントリセル番号を読み取る。なおPGC_PGMAPには、上述したように各プログラムに関して、最初に再生されるエントリセルのセル番号が記述されている。
例えば図9の例では、セル番号cell#1、cell#3、cell#4、cell#6、cell#8等のセルが、プログラム番号PG#1、PG#2、PG#3、PG#4、PG#5等のプログラムのエントリセルのセル番号として取得される。
ステップS22乃至ステップS24において、マイグレーションファイルシステム164は、取得したそれぞれのエントリセルのセル番号に対して、ステップS23の処理を実行し、ステップS22乃至ステップS24の処理を、そのセル番号の数だけ繰り返すようにループ制御の処理を実行する。
ステップS23において、プログラムのエントリセルの先頭VOBUの先頭アドレスが求められる。
具体的には、マイグレーションファイルシステム164は、VTS_PGCITのPGCIのC_PBITから、エントリセルのセル番号を有するセル(エントリセル)に対応したC_PBIのC_FVOBU_SAを参照し、そのセルの先頭VOBUの先頭アドレスを取得する。なお上述したように、C_PBI は、PGC内のセルの再生順序を定義し、C_PBIの C_FVOBU_SAには、セルの先頭VOBUの先頭アドレスが記述されている。
なおここで取得されるVOBUの先頭アドレスは、VOBS内の相対アドレスとして記述されている。またVOBSは最大9個のファイルに分割されるので、指定のアドレスがどのファイルに存在するかは、各ファイルのサイズを調べることで把握出来る。
ステップS22乃至ステップS24の処理が、エントリセルのセル番号の数だけ繰り返され、各プログラムの先頭セルの先頭VOBUの先頭アドレスが得られると、処理は、図18のステップS12に進む。
例えばステップS21で検出されたcell#1とcell#3が図15に示すように構成されている場合、VOBU#1の先頭アドレスとVOBU#7の先頭アドレス等が取得されると、ステップS12に進む。
ステップS12において、キャッシュファイルとしてHDD116に記憶されるデータの終了位置が検出される。この処理の詳細は、図20のフローチャートに示されている。この例の場合、
ステップS11で検出された開始位置から時間T秒経過後の直後に再生されるVOBUの開始アドレスがキャッシュファイルの終了位置として求められる。
ステップS31において、マイグレーションファイルシステム164は、VTSIのVTS_PGCITの各PGCIのPGC_PGMAP(図13)から、プログラムのエントリセルのセル番号を読み取る。
例えば図9の例では、cell#1、cell#3、cell#4、cell#6、cell#8等がPG#1、PG#2、PG#3、PG#4、PG#5等のプログラムのエントリセルのセル番号として取得される。
ステップS32乃至ステップS48において、マイグレーションファイルシステム164は、取得したそれぞれのエントリセルのセル番号に対して、ステップS33乃至ステップS47の処理を実行し、ステップS32乃至ステップS48の処理を、エントリセルのセル番号の数だけ繰り返すようにループ制御の処理を実行する。
ステップS33において、マイグレーションファイルシステム164は、ステップS31で取得した所定のエントリセルのセル番号をカウンタCNに設定し、ステップS34において、セルの再生時間をカウントするカウンタPBTMの値を0に初期設定する。
ステップS35において、マイグレーションファイルシステム164は、VTS_PGCITのPGCIのC_PBITの、カウンタCNに設定されたセル番号を有するセルに対応したC_PBIのC_PBTM(C_PBTM[CN])(図13)を参照し、そのセルの再生時間を取得し、カウンタPBTMに加算する。なお上述したように、C_PBI は、PGC内のセルの再生順序を定義し、C_PBTMには、セル再生時間が記述されている。
図9の例では、例えばcell#1のセルの再生時間(C_PBTM[1])がカウンタPBTMに加算される。
ステップS36において、マイグレーションファイルシステム164は、カウンタPBTMの値が、時間Tより小さいか否かを判定し、小さいと判定した場合、ステップS37に進み、マイグレーションファイルシステム164は、カウンタCNの値を1だけインクリメントし、ステップS35に戻る。すなわち1だけインクリメントされたカウンタCNの値のセル番号を有するセル(次に再生されるセル)の再生時間が、カウンタPBTMに加算される。
すなわちセルの総再生時間が、指定された時間Tより短ければ、次のセルのC_PBTMが参照され、プログラムのエントリセルからのC_PBTMが積算され、その時間が指定された時間Tより長くなるまで繰り返される。
例えばcell#1の再生時間<時間Tである場合、cell#2のセルの再生時間(C_PBTM[2])がさらにカウンタPBTMに加算される。
ステップS36で、カウンタPBTMの値が、時間Tより小さくない(長い)と判定された場合、すなわち最後に積算されたセルにキャッシュファイルの終了位置としてのVOBUが存在する場合、ステップS38に進み、マイグレーションファイルシステム164は、いまのカウンタPBTMの値から、いまのカウンタCNの値のセル番号を有するセルの再生時間(C_PBTM[CN])を減算する。
例えばcell#1とcell#2の総再生時間が時間Tより長い場合、カウンタPBTMから、cell#2の再生時間(C_PBTM[2])が減算されて、カウンタPBTMの値は、cell#1の再生時間となる。
なおプログラムの最後のセルまで積算しても、ステップS36での条件を満足しなかった場合は、このプログラムの全範囲がキャッシュファイルの対象となる。
すなわち例えばcell#1とcell#2の総再生時間が時間Tより短い場合、PG#1のプログラムの全範囲がキャッシュファイルの対象となる。
次にステップS39において、マイグレーションファイルシステム164は、C_PBITの、カウンタCNの値のセル番号を有するセルに対応するC_PBIのC_FVOBU_SAを参照し、そのセルの先頭VOBUの先頭アドレスを取得する。なおC_PBITは、PGC内のセルの再生順序を定義し、そのC_PBIのC_FVOBU_SA には、セルの先頭VOBUの先頭アドレスが記述されている。
いまの場合、カウンタCN=2なので、cell#2の先頭VOBUの先頭アドレスが取得される。なおcell#2が図15に示すように構成されている場合、VOBU#3の先頭アドレスが取得される。
ステップS40において、マイグレーションファイルシステム164は、ステップS39で取得したアドレスに基づいて、そのVOBUの、VTSIのVTS_VOBU_ADMAP(図13)におけるC_FVOBUのIndex番号(VTS_VOBU_AD#nのnの値)を取得する。なおVTS_VOBU_ADMAPは、VTSのタイトルに関する全VOBUの先頭アドレスが記述されるテーブルであり、全VOBUの先頭アドレスがそのLBNの昇順で記述されている。VTS_VOBU_AD #nは、VTS_VOBU_ADMAP内のn番目のVOBUの先頭アドレスを示している。
すなわちキャッシュファイルの終了位置としてのVOBUが存在するセルの先頭VOBUが、VTS_VOBU_ADMAPで何番目(x番目)のVOBUであるかが検出される。
いまの場合、VOBU#3が、VTSのタイトルに関する全VOBUにおいて何番目であるかが検出される。
ステップS41において、マイグレーションファイルシステム164は、カウンタVNに2を初期設定する。
ステップS42において、マイグレーションファイルシステム164は、カウンタCNの値をセル番号とするセルにおいて、カウンタVNの値が示す順番で再生されるVOBU(例えば、NV=2である場合、そのセルにおいて2番目に再生されるVOBU)のNV_PCKのPCI_GIのC_ELTM(図16)を参照し、そのVOBUのセル内での経過時間を取得し、カウンタPBTMに加算する。なおVOBUのNV_PCKのPCIのC_ELTMは、セル内経過時間が記述されている。
いまの場合、図15を参照して上述したように、VOBU #3のVOBUの C_ELTMは、0秒に、VOBU #4のVOBUのC_ELTMは、0.5秒に、VOBU #5のVOBUのC_ELTMは、1.0秒に、そしてVOBU #6のVOBUのC_ELTMは、1.5秒であるので、cell#2で2番目に再生されるVOBU #4のVOBUのC_ELTMの0.5秒が、cell#1の再生時間を示すカウンタPBTMに加算される。
ステップS43において、マイグレーションファイルシステム164は、カウンタPBTMの値が、時間Tより小さいか否かを判定し、小さいと判定した場合、ステップS44に進み、カウンタPBTMから、カウンタVNの値が示す順番で再生されるVOBUのセル内での経過時間を減算する(すなわちカウンタPBTMの値を元に戻す)。
いまの場合において、例えばカウンタPBTMの値が時間Tより小さいと判定されたとき、カウンタPBTMから0.5秒が減算され、カウンタPBTM の値は、cell#1の再生時間に戻る。
その後、ステップS45において、マイグレーションファイルシステム164は、カウンタVNの値を1だけインクリメントし、ステップS42に戻り、それ以降の処理を実行する。すなわち1だけインクリメントされたカウンタVNの値が示す順番に再生されるVOBUまでの経過時間が、カウンタPBTMに加算され、その結果得られた時間が、時間Tより小さいかが判定される。
いまの場合において、例えばcell#1の再生時間+VOBU#4までの経過時間(すなわちVOBU#3の再生時間)<時間Tであるとき、カウンタVN=3となり、cell#2のセルで3番目に再生されるVOBU#5のC_ELTMの1秒が、cell#1の再生時間を示すカウンタPBTMに加算される。
ステップS43で、カウンタPBTMの値が、時間Tより小さくない(長い)と判定された場合、ステップS46に進む。
いまの場合において、例えばcell#1の再生時間+VOBU#5までの経過時間(すなわちVOBU#3の再生時間+VOBU#4の再生時間)>時間Tであるとき、ステップS46に進む。
ステップS46において、マイグレーションファイルシステム164は、ステップS40で取得したインデックス番号に、カウンタVNの値から1だけ減算した結果得られた値を加算し、ステップS47において、その結果得られた値を、nの値とするVTS_VOBU_AD #n(VTS_VOBU_ADMAP内のn番目のVOBUの先頭アドレス)を、キャッシュファイルの終了位置として取得する。
すなわちキャッシュファイルの終了位置としてのVOBUがこのセルで何番目(y番目)のVOBUであるかが検出される。
いまの場合、カウンタVN=3から1だけ減算された結果得られた2が、VOBU#3のVTSのタイトルに関する全VOBUにおいて順番に加算され、その順番のVOBU#5の先頭アドレスが、キャッシュファイルの終了位置として取得される。
ステップS32乃至ステップS48の処理が、エントリセルのセル番号の数だけ繰り返され、各プログラムのキャッシュファイルの終了位置が検出されると、処理は、図18のステップS13に進む。
ステップS13において、マイグレーションファイルシステム164は、検出したキャッシュファイルとして格納されるデータ(以下、ヒントセクションと称する)の開始位置および終了位置からヒント情報を生成する。
具体的には、マイグレーションファイルシステム164は、コンテンツのデータの先頭から、ステップS11で検出したプログラムの開始位置までのデータ量を、ヒントオフセットとする。すなわちヒントオフセットは、それぞれのヒントセクションの開始位置を、コンテンツのデータの先頭からのオフセットで示す。例えば、ヒントオフセットの単位は、データ量(バイトなど)とされる。
なお図21に示すようなDVDビデオ規格上と同様のファイル構成がHDD116上に記憶されている場合、検出されたヒントセクションの開始位置および終了位置がそれぞれDVDディスク上のどのファイルに属しているかを解析し、開始アドレスおよび終了アドレスの値を該当するファイル先頭からのオフセット値に変換する必要がある。
また図22に示すように、DVDディスク上のデータを、ISOイメージとしてHDD116上に置く場合、ISOイメージの開始論理アドレスは0であるので、開始アドレスおよび終了アドレスが属するVTSのVTS_VOBの先頭論理ブロックアドレスをファイルシステムから取得し、ステップS11およびステップS12で取得した開始アドレスおよび終了アドレスに加算することでISOイメージファイルの先頭からのオフセットを取得する必要がある。
またマイグレーションファイルシステム164は、時間Tに再生されるコンテンツのデータ量を、ヒントサイズとする。すなわちヒントサイズは、ヒントセクションのデータ量を示す。ヒントサイズの単位は、例えば、バイトとされる。
このようにヒント情報が生成されると、ステップS14に進み、マイグレーションファイルシステム164は、生成したヒント情報を、DVD119のコンテンツの拡張属性として記憶する(図5)。
なお、ヒント情報には、使用者からの操作に応じた値が直接設定されるようにしてもよく、また、アプリケーションプログラム141に限らず、オペレーティングシステムなどの他のプログラムによって書き込まれるようにしてもよい。
その後処理は、終了する。
次に、図17のステップS3におけるキャッシュファイル生成処理の詳細を、図23のフローチャートを参照して説明する。
ステップS51において、ストレージマネージャ114は、マイグレーションファイルシステム164からコンテンツの拡張属性を読み出して、読み出したコンテンツの拡張属性からヒント情報を抽出する。
ステップS52において、ストレージマネージャ114は、ヒント情報のうちの、全てのヒントセクションのデータ量の合計であるヒントセクションレングスを取得し、1つのヒントセクションのデータ量で割り算することによりヒントセクションの数を算出する。
ストレージマネージャ114は、ステップS54乃至ステップS58において、それぞれのヒントセクションについてステップS55およびステップS56の処理を実行し、ステップS54乃至ステップS58の処理をヒントセクションの数だけ繰り返すようにループ制御の処理を実行する。
ステップS55において、ストレージマネージャ114は、ヒント情報から、所定のヒントセクションの開始位置を示すヒントオフセットを取得する。
ステップS56において、ストレージマネージャ114は、ヒント情報から、そのヒントセクションのデータ量を示すヒントサイズを取得する。
ステップS57において、ストレージマネージャ114は、取得したヒントオフセットおよびヒントサイズに基づいて、プログラムの、ヒントセクションをスタブ領域(キャッシュする領域)に設定し、ヒント情報が設定されていない領域をホール領域に設定する。
ステップS54乃至ステップS58の処理がヒントセクションの数だけ繰り返され、各プログラムについてスタブ領域およびホール領域が設定されると、処理は、ステップS59に進む。
ステップS59において、ストレージマネージャ114は、HSM113に、スタブ領域のデータをキャッシュファイルに記憶させる。HSM113は、スタブ領域を、DVD119が装着されたドライブ118から読み出し、HDD116のキャッシュファイルに記憶する。なおDVD119から、コンテンツのデータを読み出して、HDD116に記憶することを、適宜、リロードと称する。
次にステップS60において、ストレージマネージャ114は、HSM113のマイグレーションファイルシステム164に、キャッシュファイルへのデータのリロードの結果に対応するように、コンテンツの拡張属性の領域情報を書き換えらせて、処理は終了する。
以上のように、HSM処理が実行されて(図17)、スタブファイル状態のキャッシュファイル(例えば、図7)が生成される。
次に、このように生成された、スタブファイル状態のキャッシュファイルを用いた、コンテンツのデータの読み出しの処理(再生処理)を、図24のフローチャートを参照して説明する。
ステップS71において、ストレージマネージャ114のファイルI/Oマネージャ163は、データの読み出しを開始するプログラムの指定を受け付ける。より詳細には、アプリケーションプログラム141は、使用者の操作に応じた、再生を開始するプログラムの選択を受け付ける。
アプリケーションプログラム141は、再生を開始するプログラムを指定するデータをファイルI/Oマネージャ163に供給する。ファイルI/Oマネージャ163は、アプリケーションプログラム141からのデータを取得することにより、データの読み出しを開始するプログラムの指定を受け付ける。ストレージマネージャ114は、そのプログラムからの再生をHSM113に指示する。
ステップS72において、ストレージマネージャ114は、HSM113に、そのプログラムからコンテンツのデータの読み出しを指示する。HSM113は、HDD116に、HDD116のキャッシュファイルの指定されたプログラムに対応するスタブ領域の先頭位置からデータの読み出しを開始させる。
ステップS73において、リロードの処理が実行される。
ステップS74において、ストレージマネージャ114は、キャッシュファイルの最後までデータを読み出したか否かを判定し、キャッシュファイルの最後までデータを読み出していないと判定された場合、ステップS74に戻り、判定の処理を繰り返す。
ステップS74で、キャッシュファイルの最後までデータを読み出したと判定された場合、再生処理は終了する。
次に、ステップS73におけるリロード処理の詳細を、図25のフローチャートを参照して説明する。
ステップS81において、ストレージマネージャ114は、HSM113に、所定の位置を指定して、リロードの開始を指示する。HSM113のマイグレーションファイルシステム164は、リロードの開始位置を、現在、図24のステップS72でHDD116から読み出されているデータの位置の後の領域であって、最も近い領域の先頭とする。
ステップS82において、HSM113のストレージサーバ165は、リロードを開始する。すなわち、ストレージサーバ165は、リロードの開始位置におけるデータを、DVD119が装着されたドライブ118から読み出させ、読み出したデータをキャッシュファイルの所定の領域に格納させるように、HDD116に記憶させる。
ステップS83において、マイグレーションファイルシステム164は、その領域がストアされているか否かを判定し、その領域がストアされていると判定した場合、ステップS84において、リロードの開始位置を、その領域の後のホール領域であって、最も近いホール領域の先頭に移動する。ステップS83において、その領域がストアされていないと判定された場合、ステップS84の処理はスキップされる。
ステップS85において、HSM113のストレージサーバ165は、リロードを開始する。
ステップS86において、マイグレーションファイルシステム164は、その領域のリロードが完了したか否かを判定し、その領域のリロードが完了していないと判定された場合、ステップS86に戻り、判定の処理を繰り返す。
ステップS86において、その領域のリロードが完了したと判定された場合、ステップS87に進み、マイグレーションファイルシステム164は、リロードを完了した領域と隣接するスタブ領域とを結合させるように拡張属性を書き換える。
ステップS88において、マイグレーションファイルシステム164は、キャッシュファイルの最後までリロードが完了したか否かを判定する。ステップS88で、キャッシュファイルの最後までリロードが完了したと判定された場合、ステップS89に進み、マイグレーションファイルシステム164は、コンテンツの全てのデータがHDD116に記憶されたか、すなわち、コンテンツの全てのデータがストアされたか否かを判定する。
ステップS89において、コンテンツの全てのデータがストアされていないと判定された場合、ステップS90に進み、マイグレーションファイルシステム164は、オートリロードモードであるか否かを判定する。ステップS90において、オートリロードモードであると判定された場合、ステップS91に進み、マイグレーションファイルシステム164は、リロードの開始位置を、キャッシュファイルの先頭に移動して、ステップS82に戻り、上述した処理を繰り返す。
ステップS88において、キャッシュファイルの最後までリロードが完了していないと判定された場合、ステップS82に戻り、上述した処理を繰り返す。
ステップS89において、コンテンツの全てのデータがストアされたと判定された場合、または、ステップS90において、オートリロードモードでないと判定された場合、処理は終了する。
次に図26および図27を参照して、リロードの処理の具体例を説明する。図26および図27の例では、3つのプログラム1乃至プログラム3のそれぞれに対応するスタブデータがキャッシュファイルに記憶されている場合において、最初に、プログラム3からの再生が要求され、コンテンツの再生の途中で、プログラム2からの再生が要求され、そのまま、コンテンツの最後まで再生される。
なおこの例における条件は以下の通りであるが、これに限定されるものではない。
・各プログラムは、4.7ギガバイトのDVDに5-6Mbpsのビットレートで記録されている(いわゆる、1枚のDVDに2時間記録できるモードで記録されている)
・1分間の再生に必要なデータサイズ=1300キロバイト
・スタブサイズ=650キロバイト(スタブ時間を30秒として)
・プログラム1の再生時間:10分
プログラム2の再生時間:20分
プログラム3の再生時間:15分
使用者の操作によりプログラム3が選択されると、アプリケーションプログラム141は、プログラム3の選択を受け付ける。第1に、ストレージマネージャ114の制御の基に、HSM113は、HDD116に、HDD116のキャッシュファイルのプログラム3に対応する、スタブ領域(4である領域番号の領域)の先頭位置からデータの読み出しを開始させ、プログラム3からコンテンツの再生が開始される。
図27で示されるように、プログラム1、プログラム2、およびプログラム3について、コンテンツの先頭の部分の650キロバイトのスタブデータ、コンテンツの先頭から13000キロバイト離れた位置の650キロバイトのスタブデータ、およびコンテンツの先頭から39000キロバイト離れた位置の650キロバイトのスタブデータがキャッシュファイルに記憶されている。各プログラムの他の部分のデータは、キャッシュファイルに記憶されていない。
プログラム3のスタブ領域、すなわち、コンテンツの先頭から39000キロバイト離れた位置の650キロバイトのタブデータがHDD116から読み出されて、プログラム3の先頭からの再生が即座に開始される。
これに並行して、第2に、ストレージマネージャ114は、HSM113に、プログラム3のスタブ領域の後ろのホール領域のデータを、DVD119からHDD116に読み出して、HDD116に記憶させる要求を示すリロードコマンドを発行する。すると、第3に、ドライブ118に装着されたDVD119から、プログラム3のスタブ領域の後ろのホール領域(5である領域番号の領域)のデータに対応するコンテンツのデータが読み出されて、読み出されたデータがHDD116のキャッシュファイルの、プログラム3のスタブ領域の後ろのホール領域に格納されるように(プログラム3のスタブ領域の後ろに続いて格納されるように)、コンテンツのデータのリロードが開始される。
この場合、コンテンツの先頭から39000キロバイト離れた位置の650キロバイトのスタブデータに続くデータが、ドライブ118に装着されたDVD119から読み出され、読み出されたデータが、コンテンツの先頭から39000キロバイト離れた位置の650キロバイトのスタブデータに続くように、ホール領域にリロードされる。従って、5である領域番号の領域の先頭から順にデータがストアされる。マイグレーションファイルシステム164は、データのストアに応じて、そのストアされた部分を4である領域番号の領域に結合させるように、拡張属性を更新する。
従って、リロードの処理が進むにつれて、リロードの処理の対象となるホール状態の領域のオフセット位置はコンテンツの後ろ側にずれていき(オフセットがより大きくなり)、その領域のサイズは小さくなっていく。
ここで、再生を開始するプログラムとして、プログラム2が選択されると、第4に、アプリケーションプログラム141は、プログラム2にジャンプする。第5に、ストレージマネージャ114の制御の基に、HSM113は、HDD116に、HDD116のキャッシュファイルのプログラム2のスタブ領域の先頭位置からデータの読み出しを開始させ、プログラム2からコンテンツの再生が即座に開始される。
アプリケーションプログラム141によってデータの読み出しの位置がプログラムを単位として変更された場合、読み出しされる位置の後方のホール状態の領域(ホール領域)のうち、読み出される位置に最も近いホール領域の先頭からリロードが行われる。そのため、現在実行されているリロードの処理が中断されて、これから読み出しされる位置に最も近いホール領域の先頭からリロードが再開される。なお、データの読み出しの位置が変更されても、現在リロードしている位置が、変更された読み出しされる位置の後方のホール状態の領域(ホール領域)のうち、読み出しされる位置に最も近いホール領域の先頭である場合には、リロードの処理がそのまま継続される。
例えば、プログラム2からコンテンツの再生が開始されたので、第6に、インデックス3のスタブ領域の後ろのホール領域のデータのリロードの処理は中断される。
例えば、コンテンツの先頭から39000キロバイト離れた位置の650キロバイトのスタブデータに続く9750キロバイトのデータが、ドライブ118に装着されたDVD119から読み出され、読み出された9750キロバイトのデータが、コンテンツの先頭から39000キロバイト離れた位置の650キロバイトのスタブデータに続くように、ホール領域にリロードされる。その結果、コンテンツの先頭から39000キロバイト離れた位置のスタブ領域のデータ量は、10400キロバイト(650+9750)となる。マイグレーションファイルシステム164は、ファイルの拡張属性の領域情報に含まれる、4である領域番号で示される領域のサイズを10400とする。
第7に、ドライブ118に装着されたDVD119から、プログラム2のスタブ領域の後ろのホール領域のデータに対応するコンテンツのデータが読み出されて、読み出されたデータがHDD116のキャッシュファイルの、プログラム2のスタブ領域の後ろのホール領域に格納されるように、コンテンツのデータのリロードが開始される。
第8に、プログラム2のスタブ領域の後ろのホール領域のリロードが完了すると、既にストアされている領域はスキップされて、第9に、第6の処理でリロードの処理が中断された位置、すなわち、プログラム3のスタブ領域の後ろのホール領域のデータのリロードが行われるように、リロードの処理が継続される。
コンテンツの先頭から13000キロバイト離れた位置の650キロバイトのスタブデータに続く25350キロバイトのデータが、ドライブ118に装着されたDVD119から読み出され、読み出された25350キロバイトのデータが、コンテンツの先頭から13000キロバイト離れた位置の650キロバイトのスタブデータに続くように、ホール領域にリロードされる。
その結果、コンテンツの先頭から13000キロバイト離れた位置の650キロバイトのスタブデータが格納されているスタブ領域の次のホール領域のリロードが完了するので、コンテンツの先頭から13000キロバイト離れた位置から、コンテンツの先頭から49400キロバイト離れた位置までのデータがキャッシュファイルにストアされる。これにより、隣接する、これまで、2である領域番号のスタブ領域と、3である領域番号のホール領域と、4である領域番号のスタブ領域が、1つのスタブ領域に結合される。
各領域の領域番号は、先頭の領域を0とする、連続する値にふりなおされる。その結果、結合されたスタブ領域の領域番号は、2とされ、領域の結合前まで、5である領域番号のホール領域の領域番号は、3とされる。
領域の結合により、2である領域番号のスタブ領域のデータ量は、36400(650+25350+10400)となる。マイグレーションファイルシステム164は、ファイルの拡張属性の領域情報に含まれる、2である領域番号の領域のサイズを364000とし、3である領域番号の領域についての、オフセットを494000とし、サイズを9100とし、フラグを0とする。
プログラム3のスタブ領域の後ろのホール領域、すなわち、領域の結合により、3である領域番号となった領域のデータのリロードが行われる。コンテンツのデータが最後までリロードされると、2である領域番号の領域と、3である領域番号の領域とが結合される。
そして、オートリロードモードにおいては、コンテンツのデータの最後までリロードした場合、先頭から残りのリロードされていないデータをキャッシュファイルにリロードして終了するので、リロードの位置をキャッシュファイルの先頭に移動させる。第10に、コンテンツの先頭のストアされている領域はスキップされて、第11に、コンテンツの先頭のインデックス1のスタブ領域の後ろのホール領域のデータのリロードが行われるように、リロードの処理が継続される。
図27で示されるように、コンテンツの先頭の650キロバイトのスタブデータに続くデータが、ドライブ118に装着されたDVD119から読み出され、読み出されたデータが、コンテンツの先頭のスタブデータの次のホール領域にリロードされる。
第12に、プログラム2のスタブ領域の直前までデータがキャッシュファイルに格納されると、コンテンツの全体のデータがキャッシュファイルに格納されたので、リロードは終了する。この場合、全ての領域が結合されて、1つの領域となる。
第13に、DVD119がドライブ118にアンマウントされ、ディスクスロット121に戻される。
このように、スタブファイル状態のキャッシュファイルがHDD116に記憶されているコンテンツの読み出しが要求されると、DVD119からデータが読み出されて、読み出されたデータがキャッシュファイルに格納される。そして、キャッシュファイルに格納されているデータが読み出されて、コンテンツが再生される。
以上のように、任意の部分を読み出そうとする場合の、待ち時間の発生をより少なくすることができる。
なおキャッシュファイルに記憶されていないデータを、DVD119から読み出して、DVD119から読み出したデータから直接コンテンツを再生するようにしてもよい。
また、DVD119からコンテンツのデータを先読みして、HDD116に記憶させるので、DVD119から読み出したデータを直接再生に用いる場合に比較して、ドライブ118をより早く開放することができる。すなわち、DVD119の高速読み出しなど、ドライブ118の能力をより十分に発揮させることができ、ドライブ118をより効率的に使用できるようになる。
また、以上においては、プログラム毎にスタブデータをHDD116に記憶するようにしたが、PTT(チャプタ)毎にスタブデータをHDD116に記憶することもできる。
また、以上においてはDVDビデオ規格に準じた場合を例として説明したが、それに限らず、ストリーム・データとストリーム・データの再生を制御するための再生制御情報を持ち、入力された時刻情報からその時刻に対応するストリーム内のアドレスを特定できるような各種フォーマット(例えば、DVD±VR、DVD-Audio、BDなど)であれば、アドレス解析部分を変更するだけで本発明を適用することができる。
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
図28は、上述した一連の処理をプログラムにより実行するパーソナルコンピュータの構成の例を示すブロック図である。CPU(Central Processing Unit)401は、ROM(Read Only Memory)402、記録部408、または記録部409に記憶されているプログラムに従って各種の処理を実行する。RAM(Random Access Memory)403には、CPU401が実行するプログラムやデータなどが適宜記憶される。これらのCPU401、ROM402、およびRAM403は、バス404により相互に接続されている。
なお、CPU401として、”Cell誕生”、日経エレクトロニクス、日経BP社、2005年2月28日、89頁乃至117頁に記載されているCellを採用することができる。
CPU401にはまた、バス404を介して入出力インターフェース405が接続されている。入出力インターフェース405には、キーボード、マウス、マイクロホンなどよりなる入力部406、ディスプレイ、スピーカなどよりなる出力部407が接続されている。CPU401は、入力部406から入力される指令に対応して各種の処理を実行する。そして、CPU401は、処理の結果を出力部407に出力する。
入出力インターフェース405に接続されている記録部408は、例えばHDD116に対応し、CPU401が実行するプログラムや各種のデータを記録する。記録部409は、例えばジュークボックス145に対応し、各種のデータやCPU401が実行するプログラムを記録する。通信部410は、インターネットやLANなどのネットワークを介してクライアントなどの外部の装置と通信する。
また、通信部410を介してプログラムを取得し、記録部408または記録部409に記憶してもよい。
入出力インターフェース405に接続されているドライブ411は、磁気ディスク421、光ディスク422、光磁気ディスク423、或いは半導体メモリ424などのリムーバブルメディアが装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記録部408または記録部409に転送され、記録される。
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム格納媒体からインストールされる。
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム格納媒体は、図28に示すように、磁気ディスク(フレキシブルディスクを含む)421、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む)422、光磁気ディスク(MD(Mini-Disc)を含む)423、もしくは半導体メモリ424などよりなるパッケージメディアであるリムーバブルメディア、または、プログラムが一時的もしくは永続的に格納されるROM402や、記録部408を構成するハードディスクなどにより構成される。プログラム格納媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインターフェースである通信部410を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
なお、本明細書において、プログラム格納媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
101 記録再生システム, 113 HSM, 114 ストレージマネージャ, 116 HDD, 118 ドライブ, 119 DVD, 141 アプリケーションプログラム, 162 システムマネージャ, 163 ファイルI/Oマネージャ, 164 マイグレーションファイルシステム, 165 ストレージサーバ, 167 メディアサーバ, 401 CPU, 402 ROM, 403 RAM, 408 記録部, 409 記録部