以下、図を参照して、本発明の実施の形態について説明する。
図1は、本発明を適用した第1の実施の形態における再生装置1の構成例を示すブロック図である。
コントローラ21は、予め用意されている制御プログラムを実行するか、または、光ディスクドライブ22を制御して光ディスク11に記録されているナビゲーションプログラム(後述)を読み出し、メモリ23に展開して実行することで、再生装置1の全体の動作を制御する。例えば、コントローラ21は、光ディスク11が装着されたとき、所定のメニュー画面を外部の表示装置に表示させることができる。
光ディスクドライブ22は、コントローラ21による制御にしたがって光ディスク11からデータを読み出し、読み出したデータを、コントローラ21、メモリ23、または、デコーダ26に出力する。光ディスク11から読み出された情報が、ナビゲーションプログラムやPlayListなどであった場合、光ディスクドライブ22により読み出された情報は、コントローラ21、または、メモリ23に出力される。光ディスク11から読み出された情報が、AVストリームやテキストデータであった場合、光ディスクドライブ22により読み出された情報は、デコーダ26に出力される。
図2は、本発明を適用した再生装置1に装着される光ディスク11のアプリケーションフォーマットの例を示す図である。再生装置1に装着される記録媒体は、光ディスク11の他、例えば、磁気ディスクや半導体メモリであってもよい。
アプリケーションフォーマットは、AV(Audio Visual)ストリームの管理のためにPlayListとClipの2つのレイヤをもつ。ここでは、1つのAVストリームまたはテキストデータとそれに付随する情報であるClip Informationのペアを1つのオブジェクトと考え、それらをまとめてClipと称する。以下、AVストリームのデータファイルをAVストリームファイルと称する。また、Clip InformationのデータファイルをClip Informationファイルと称する。
一般的に、コンピュータ等で用いられるファイルはバイト列として扱われるが、AVストリームファイルのコンテンツは時間軸上に展開され、Clipのアクセスポイントは、主に、タイムスタンプでPlayListにより指定される。
Clip中のアクセスポイントがタイムスタンプでPlayListにより示されている場合、Clip Informationファイルは、タイムスタンプから、AVストリームファイル中のデコードを開始すべきアドレス情報を見つけるために用いられる。
PlayListはAVストリームの再生区間を示す情報の集合である。あるAVストリーム中の1つの再生区間を示す情報はPlayItemと呼ばれ、PlayItemは、時間軸上の再生区間のIN点(再生開始点)とOUT点(再生終了点)のペアで表される。したがって、PlayListは、図2に示されるように1つ、または複数のPlayItemにより構成される。
図2において、左から1番目に図示されている第1のPlayListは2つのPlayItemから構成され、その2つのPlayItemにより、左側に図示される第1のClipに含まれるAVストリームの前半部分と後半部分がそれぞれ参照されている。また、左から2番目に図示されている第2のPlayListは1つのPlayItemから構成され、それにより、右側に図示されている第2のClipに含まれるAVストリーム全体が参照されている。更に、左から3番目に図示されている第3のPlayListは2つのPlayItemから構成され、その2つのPlayItemにより、左側に図示されている第1のClipに含まれるAVストリームの所定の部分と、右側に図示されている第2のClipに含まれるAVストリームの所定の部分とがそれぞれ参照されている。
ナビゲーションプログラム(Navigation program)は、PlayListの再生の順序や、PlayListのインタラクティブな再生をコントロールする機能を、コントローラ21に実行させるためのプログラムである。また、ナビゲーションプログラムは、各種の再生の実行をユーザが指示するためのメニュー画面を表示する機能なども有する。このナビゲーションプログラムは、例えば、Java(登録商標)などのプログラミング言語で記述され、光ディスク11などの記録媒体に記録される。例えば、ナビゲーションプログラムがコントローラ21により実行されて、そのときの再生位置を表す情報として、図2において左から1番目に図示される第1のPlayListに含まれる第1のPlayItemが指定された場合、そのPlayItemが参照する、左側に図示される第1のClipに含まれるAVストリームの前半部分の再生が行われる。
また、図2を用いて説明したPlayListには、PlayItemにより指定されるメインパス(Main Path)に加えて、図3に示されるようなサブプレイアイテム(Sub Play Item)を用いて指定されるサブパス(Sub path)の情報を含ませるようにすることもできる。SubPlayItemを定義すると、例えば、PlayItemにより指定されるClip(例えば、MPEG2トランスポートストリーム)に多重化されていない、独立したデータストリームをAVストリーム再生に同期して再生させることができる。
例えば、PlayItemにより指定されるメインパス(Main Path)のClip AVストリームに対応させて、テキスト字幕ファイル、および、レンダリングに必要となるフォントファイルから構成される字幕関連情報と、字幕関連情報の再生区間を指定したSubPlayItemを用意することで、Clip AVストリームの再生と同時に、テキスト字幕ファイルに記載されているデータに対応する字幕を、フォントファイルに記載されているフォントデータに基づいた表示フォントで、表示装置に表示させるようにすることができる。また、例えば、PlayItemにより指定されるメインパス(Main Path)のClip AVストリームに対応させて、他言語の吹き替え音声データと、吹き替え音声データに対応したSubPlayItemを用意することで、Clip AVストリームの再生と同時に、他言語の吹き替え音声データを再生出力することができる。
このように、SubPlayItemと、対応するデータ(clip)は、予め光ディスク11に記録されていても良いし、追加データ(アップデートデータ)として、ネットワーク2を介して、サーバ3からダウンロードされるものであっても良いし、または、リムーバブルメディア(例えば、後述するリムーバブルメディア28)を用いて取得することができるようにしても良い。このような追加データをサーバ3からダウンロードする場合の詳細については、図4を用いて後述する。
再び、図1の説明に戻る。
メモリ23は、コントローラ21が各種の処理を実行する上において必要なデータなどを適宜記憶する。ローカルストレージ24は、例えば、磁気ディスクにより構成されるHDD(Hard Disk Drive)などより構成される。なお、ローカルストレージ24は、HDD以外にも、例えば、半導体メモリなどにより構成するようにしてもよく、半導体メモリなどにより構成されたローカルストレージ24を再生装置1から着脱可能なようにしても良い。
インターネットインタフェース25は、有線または無線によりネットワーク2に接続されており、コントローラ21からの制御にしたがって、ネットワーク2を介して、サーバ3との間で通信を行い、サーバ3からダウンロードされたデータをローカルストレージ24に供給する。サーバ3からは、例えば、そのとき再生装置1に装着されている光ディスク11に記録されている、図2を用いて説明したデータをアップデートさせるデータがコンテンツとしてダウンロードされる。ローカルストレージ24は、サーバ3からネットワーク2経由でダウンロードしたコンテンツを記録することができる。
デコーダ26は、光ディスクドライブ22、または、ローカルストレージ24から供給されるAVストリーム、または、テキストデータをデコードし、得られたビデオ信号とオーディオ信号を外部の表示装置に出力する。表示装置においては、デコーダ26によりデコードされた信号に基づいて、例えば、光ディスク11に記録されているコンテンツの出力(映像の表示、音声の出力)が行われる。
操作入力部29は、例えば、ボタン、キー、タッチパネル、ジョグダイヤル、マウスなどの入力デバイスや、所定のリモートコマンダから送信される赤外線などの信号を受信する受信部により構成され、ユーザの操作入力を取得し、コントローラ21に供給する。
また、コントローラ21には、必要に応じてドライブ27も接続されており、ドライブ27には、例えば、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disk-Read Only Memory),DVDを含む)、光磁気ディスク(MD(登録商標)(Mini-Disk)を含む)、もしくは半導体メモリなどよりなるリムーバブルメディア28が装着される。
次に、再生装置1に装着された光ディスク11に記録されたデータ、および、ローカルストレージ24に記憶されたデータを再生する方法について説明する。
再生装置1はHDD(Hard Disk Drive)などよりなるローカルストレージ24を内部に備える。再生装置1は、有線または無線によりネットワーク2に接続されており、サーバ3からネットワーク2経由でダウンロードしたコンテンツを、このローカルストレージ24に記録することができる。サーバ3からは、例えば、そのとき再生装置1に装着されている光ディスク11に記録されている映画などのコンテンツをアップデートさせるデータをダウンロードすることができる。
ダウンロードされたコンテンツがローカルストレージ24に記録されている状態で、操作入力部29から、光ディスク11に記録されているコンテンツの再生が指示されたとき、コントローラ21は、光ディスク11に記録されているコンテンツと、ローカルストレージ24に記録されているコンテンツを関連付けて、コンテンツの再生処理を実行する。
ここで、光ディスク11に記録されているコンテンツと、ローカルストレージ24に記録されているコンテンツを関連付けて再生する方法について、図4を用いて説明する。
例えば、図2の光ディスク11がパッケージ販売されているメディアであり、ある映画コンテンツが記録されているものとする。また、その映画コンテンツの映像に重畳して表示させることが可能な字幕データファイルとして、英語のテキスト字幕ファイルのみが光ディスク11に記録されているものとする。
例えば、図4において、光ディスク11に記録されている、PlayListのPlayItemが参照するClip1のAVストリームは、映画コンテンツの映像を表示させ、対応する音声を再生させるためのストリームであり、PlayListのSubPlayItemが参照するClip2の字幕関連情報1は、映像の表示に併せて英語の字幕を表示させるためのテキスト字幕ファイルである。
この状態で、英語とは異なる言語の字幕を表示させて、光ディスク11に記録されている映画コンテンツを視聴したい場合、光ディスク11には英語とは異なる言語の字幕データが記録されていないことから、ユーザは、このままでは英語とは異なる言語の字幕データを表示させて、映画を視聴することができない。
そこで、ユーザは、再生装置1に、光ディスク11に記録されている映画の所望の言語のテキスト字幕ファイルをサーバ3からネットワーク2経由でダウンロードさせる(または、リムーバブルメディア28を用いて取得させる)。光ディスク11に予め記録されていない、例えば、アラビア語によるテキスト字幕ファイルのダウンロードが行われた(または、リムーバブルメディア28からローカルストレージ24にコピーされた)状態について説明する。
すなわち、ユーザが、光ディスク11に予め記録されているPlayListに対応する、アラビア語によるテキスト字幕ファイルのダウンロードを指示した場合、再生装置1においては、サーバ3に対するアクセスが行われ、光ディスク11に記録されているコンテンツをアップデートするものとして、そのサーバ3に用意されているファイルのダウンロードが行われる。
図4の例においては、アラビア語のテキスト字幕ファイル(字幕関連情報2)およびそれに付随するClip Informationファイルで構成されるClip3、光ディスク11に予め記録されている、例えば、映画コンテンツの映像Clipおよび音声Clip(AVストリームデータ)と英語のテキスト字幕ファイルに加えて、対応するClip3の字幕データの再生表示を制御することができるPlayListファイル(Updated PlayListファイル)、光ディスク11に記録されているものと比較してアップデートされた新規ナビゲーションプログラムファイルのダウンロードが行われ、それらがローカルストレージ24に記録される。
なお、Updated PlayListには、メインパスを表すPlayItem以外に、サブパスを表すSubPlayItem1およびSubPlayItem2が付加されている。Updated PlayListのPlayItemは、光ディスク11に記録されているAV Streamを含むClip1を参照するものであり、SubPlayItem1は、光ディスク11に記録されている字幕関連情報1を含むClip2を参照するものであり、SubPlayItem2は、Updated PlayListとともにサーバ3からダウンロードされた、アラビア語のテキスト字幕ファイルである字幕関連情報2を含むClip3を参照するものである。
図4の新規ナビゲーションプログラムは、再生区間としてUpdated PlayListのPlayItemとともに、SubPlayItem1またはSubPlayItem2を指定することができるものであり、これにより、例えば、所望の映像および音声データに対応付けて、光ディスク11に予め記録されている英語によるテキスト字幕ファイルにより定義される英語字幕、または、光ディスク11に予め記録されていない、アラビア語によるテキスト字幕ファイルにより定義されるアラビア語字幕のうち、ユーザの所望の言語の字幕を表示させることができる。
このように、サーバ3からのダウンロード(または、リムーバブルメディア28からのコピー)が行われることにより、再生装置1は、英語のテキスト字幕ファイルであるClip2と、光ディスク11に予め用意されていない、アラビア語のテキスト字幕ファイルであるClip3のいずれかを映画の字幕として再生表示することが可能となる。すなわち、ユーザは、表示装置に表示されるメニュー画面に記載される表示可能な字幕の言語から所望の言語を選択することで、英語とアラビア語のうちの所望する言語の字幕によって映画を視聴することができる。
なお、光ディスク11に記録されるAVストリームは、図5に示すような、MPEG2(Moving Picture Experts Group 2)トランスポートストリームの構造を有する。MPEG2トランスポートストリームは、整数個のAligned unitから構成される。Aligned unitの大きさは、6144バイト(2048×3バイト)であり、ソースパケットの第1バイト目から始まる。ソースパケットは、192バイト長である。1つのソースパケットは、TP_extra_headerとトランスポートパケットから構成される。TP_extra_headerは、4バイト長であり、またトランスポートパケットは、188バイト長である。1つのAligned unitは、32個のソースパケットから構成される。ビデオストリームやオーディオストリームのデータは、MPEG2 PES(Packetized Elementary Stream)パケットにパケット化されており、PESパケットは、トランスポートパケットにパケット化される。
図6は、図1のコントローラ21の機能構成例を示すブロック図である。
図6の各構成は、予め用意されている制御プログラムがコントローラ21により実行されることにより、または、光ディスク11に記録されているナビゲーションプログラムがコントローラ21により実行されることにより実現される。
メニュー画面表示制御部31は、光ディスク11に記録されているコンテンツの音声、または字幕の言語や、映像のアングルを選択するときにユーザにより操作されるボタンや、ダウンロードするアップデートファイルや、削除されるファイルを選択するときにユーザにより操作されるボタンなどを含むメニュー画面を外部の表示装置に表示させる。
操作入力取得部32は、操作入力部29から入力された、ユーザからの操作入力を示す信号を取得し、ユーザからの操作入力を示す信号を、メニュー画面表示制御部31、データ取得部33、ローカルストレージディレクトリ管理部34、または、再生制御部37のうちの対応する箇所に出力する。
データ取得部33は、図1のインターネットインタフェース25において行われる通信、または、ドライブ27によるリムーバブルメディア28との情報の授受を制御する。例えば、データ取得部33は、ユーザが指示したアップデートファイルをサーバ3からダウンロードして取得し、取得したファイルをローカルストレージディレクトリ管理部34に出力する。また、データ取得部33は、後述するファイルシステムマージ処理部36により、必要なファイルを示す情報の供給を受け、必要なファイルを、サーバ3からダウンロードして取得し、取得したファイルをローカルストレージディレクトリ管理部34に出力する。
ローカルストレージディレクトリ管理部34は、ローカルストレージ24のディレクトリを管理し、ローカルストレージ24に対するデータの書き込み、および、ローカルストレージ24からのデータの読み出し、並びに、ローカルストレージ24からのデータの削除を制御する。例えば、ローカルストレージディレクトリ管理部34の制御によりローカルストレージ24から読み出されたPlayListは、メモリ23に出力され、ローカルストレージ24から読み出されたAVストリームの音声データおよび映像データやテキスト字幕ファイルのテキストデータは、デコーダ26に出力される。また、ローカルストレージディレクトリ管理部34は、ファイルシステムマージ処理部36により、光ディスク11のファイルシステムと、ローカルストレージ24のファイルシステムとのマージが行われる場合、ローカルストレージ24のファイルシステムに関する情報をファイルシステムマージ処理部36に出力する。
光ディスクディレクトリ管理部35は、光ディスク11のディレクトリを管理し、光ディスク11からの各データの読み出しを制御する。光ディスク11には識別情報であるauthor_idとdisc_idが設定されており、光ディスクディレクトリ管理部35の制御により、光ディスク11から読み出されたauthor_idとdisc_idは、データ取得部33とローカルストレージディレクトリ管理部34に出力される。また、光ディスクディレクトリ管理部35の制御により、光ディスク11から読み出されたPlayListは、メモリ23に出力され、光ディスク11から読み出されたAVストリームの音声データおよび映像データやテキスト字幕ファイルのテキストデータは、デコーダ26に出力される。また、光ディスクディレクトリ管理部35は、ファイルシステムマージ処理部36により、光ディスク11のファイルシステムと、ローカルストレージ24のファイルシステムとのマージが行われる場合、光ディスク11のファイルシステムに関する情報をファイルシステムマージ処理部36に出力する。author_idとdisc_idについては、後述する。
ファイルシステムマージ処理部36は、光ディスクディレクトリ管理部35から供給される光ディスク11のファイルシステムと、ローカルストレージディレクトリ管理部34から供給されるローカルストレージ24のファイルシステムをマージし、1つの仮想的なファイルシステムを生成する。ファイルシステムマージ処理部36は、マージすることで生成した仮想的なファイルシステムを再生制御部37に出力する。
また、ファイルシステムマージ処理部36は、後述する処理により、ローカルストレージ24に記録されているいくつかのファイルが削除(消去、すなわち、データのdelete)された場合、そのいくつかのファイルの削除により、仮想ファイルシステムにおけるファイルのリンク構造(すなわち、図2乃至図4を用いて説明した様な、光ディスク11のアプリケーションフォーマットに基づいた、PlayListによるClipの再生のためのデータの連携)に不具合が発生するか否かを判断し、仮想ファイルシステムにおけるファイルのリンク構造に不具合が発生すると判断された場合、不具合の解消に必要なファイルを抽出し、データ取得部33に必要なファイルを示す情報を供給して、必要なファイルをダウンロードさせることができる。
更に、ファイルシステムマージ処理部36は、後述する処理により、ローカルストレージ24に記録されているいくつかのファイルが削除されたことにより、例えば、仮想ファイルシステムにおいて、いずれのPlayListによっても再生されない(全てのPlayListによって指定されない)ファイルが発生した場合、このような不必要なファイルを削除することをローカルストレージディレクトリ管理部34に指令することができる。
なお、いくつかのファイルが削除されたことにより発生する不必要なファイルを削除するか否かをユーザにより設定可能なようにしても良い。
再生制御部37は、ファイルシステムマージ処理部36から供給される仮想ファイルシステムで指定されるナビゲーションプログラムを実行し、コンテンツの再生を制御する。具体的には、再生制御部37は、メモリ23に供給され、記憶されたPlayListを参照し、ローカルストレージディレクトリ管理部34または光ディスクディレクトリ管理部35を制御して、光ディスク11またはローカルストレージ24に記録されているAVストリームの音声データ、映像データ、および、必要に応じてテキスト字幕ファイルのテキストデータを、仮想ファイルシステムに基づいて読み出させ、図1のデコーダ26を制御して、光ディスク11またはローカルストレージ24に記録されているAVストリームの音声データ、映像データ、および、必要に応じてテキスト字幕ファイルのテキストデータのデコード(再生)を行わせる。
ここで、ファイルシステムマージ処理部36により行われる、光ディスク11のファイルシステムと、サーバ3からダウンロードするなどによりローカルストレージ24に記録されたデータ群を管理するファイルシステムのマージについて説明する。このマージは、例えば、光ディスク11が再生装置に装着されたとき、光ディスク11に記録されているコンテンツの再生が指示されたとき、光ディスク11またはローカルストレージ24に記録されているいずれかのデータの入出力が指令されたとき、または、ユーザによりマージが指令されたときなどに行われる。
再生装置1のシステムが持つネイティブなファイルシステム(光ディスク11またはローカルストレージ24に実際に記録されているデータのファイルシステム)の上位レイヤとして、仮想ファイルシステムが定義される。すなわち、図7に示されるように、サーバ3から新たなデータをダウンロードして、ローカルディスク24に記録させたり、光ディスク11またはローカルストレージ24に実際に記録されているデータを再生する処理を実行するアプリケーションプログラム、または、そのアプリケーションプログラムを扱うユーザが認識可能なのは、上位レイヤである仮想ファイルシステムのみである。換言すれば、仮想ファイルシステムは、ネイティブなファイルシステムを抽象化し、再生装置1内の物理デバイスやオペレーティングシステムなどのネイティブな構造を隠蔽するために構築される。
仮想ファイルシステムの役割は、主に、物理デバイス(光ディスク11またはローカルストレージ24)におけるファイル/ディレクトリをマウントして、ユーザから認識される仮想ディスク(Virtual Disc)のファイルシステムを構成することと、アプリケーションプログラムに対して、構築された仮想ディスクへのファイルアクセスAPIを提供することである。
例えば、ユーザが、光ディスク11またはローカルストレージ24に記録されているいずれかのファイルへのアクセスを要求する操作入力を行った場合、図8に示されるように、アプリケーションプログラムには、仮想ファイルシステムのみしか認識できない。そして、実際の物理デバイスである光ディスク11またはローカルストレージ24に記録されているローカルファイルシステム#1、ローカルファイルシステム#2、または、光ディスク11内のファイルシステムの構造は、アプリケーションプログラムと、アプリケーションプリグラムを取り扱うユーザから隠蔽されるとともに、仮想ファイルシステムを介して、アクセス可能なようになされている。
図8に示されるファイルアクセス要求を実行するために、再生装置1のアプリケーションプログラムは、仮想ファイルシステムが提供するファイル入出力のAPI(Application Programming Interface)を呼び出すことにより、ディスクドライブの物理的な構成やファイルシステムのソフトウェア構成などを意識することなく、光ディスク11またはローカルストレージ24に実際に記録されているデータにアクセスすることができる。すなわち、仮想ファイルシステムのAPIは、実際には、再生装置1の内部でネイティブなファイルシステムのAPIを呼び出している。
仮想ファイルシステムは各種のAPIを提供しており、例えば、指定したファイルを開くopen()、指定したファイルを閉じるclose()、指定したファイルの読み出し位置または書き込み位置を設定するseek()、指定したファイルの状態を取得するstat()、指定したファイルを読み出すread()、指定したファイルを書き込むwrite()などのAPIが提供される。再生制御部39などにより実行されるアプリケーションプログラムは、これらのAPIを利用して、光ディスク11またはローカルストレージ24に記録されているファイルを操作する。
また、仮想ファイルシステムは、ローカルストレージ24のディスク領域を分割管理する機能を持つ。ローカルストレージ24のディスク領域は、例えば、図9に示されるように、コンテンツの配給元(コンテンツオーサ)ごとに分割されたディレクトリ構造を有し、author_id直下のディレクトリであるdisc_id以下は、コンテンツオーサにより、フレキシブルなファイル/ディレクトリ構造を構成することができる。ローカルストレージ24に記憶されるデータが、ローカルストレージ24のディスク領域のどこに配置されるか、すなわち、ダウンロードされるファイルのファイル/ディレクトリ構造は、ダウンロードされるデータに含まれるメタデータ(後述するManifestデータ)の記述により指定される。
ローカルストレージ24のファイル/ディレクトリ構造において、ディレクトリを分割するauthor_idは、コンテンツ作成元を一意に識別するための識別子であり、disc_idは、author_idにより特定されたコンテンツ作成元に対して、光ディスク11を一意に識別するための識別子であり、それぞれ、ダウンロードされるデータのメタデータ(後述するManifestデータ)に含まれる情報である。メタデータ(Manifestデータ)並びに、author_idおよびdisc_idについては後述する。
これに対して、アプリケーションからアクセス可能な仮想ディスクのディレクトリ/ファイル構造は、光ディスク11のディレクトリ/ファイル構造に従うようになされている。すなわち、再生装置1に装着された光ディスク11に対して、対応するauthor_idおよびdisc_id以下のデータのファイル構造が、光ディスク11に記録されているデータのファイル構造とマージされ、光ディスク11のディレクトリ/ファイル構造に基づいたディレクトリ/ファイル構造を有する仮想ディスクの仮想ファイルシステムが構成される。
また、仮想ファイルシステムは、ディレクトリおよびファイルの管理機構のほかに、disc単位でメタデータ、すなわち、後述するManifestファイルを管理する機能を持つ。仮想ファイルシステムが、ネイティブなファイルシステムのファイルモデルに対して、メタデータのフィールドを定義する目的は、ユーザに対して、実際にローカルディスク24に記録されているファイルのパスまたはファイル名を提示するのではなく、コンテンツ内容を表現した名称を提供することと、ダウンロード処理において同一ファイルの二重更新を防止することと、仮想ファイルシステム内でのパス名称、すなわち、光ディスク11再生時におけるパス名称を定義することとの3つである。
そして、仮想ファイルシステムは、メタデータ管理のために、Manifestファイルとメタデータ操作手続きの、二つの機能を提供する。Manifestファイルとは、ダウンロードされたファイルの各種属性を示すメタデータであり、Manifest()は、対応するファイル単位で保存しても、1つのファイルにマージして、Manifest()セクションの識別子であるmanifest_id(図10において後述)をキーに識別可能なようにしてもよい。いずれの形態であっても、ここでは、Manifestファイルと総称する。ローカルストレージ24にダウンロードされたファイルを保持している再生装置1は、Manifestファイルを保持していなければならない。また、Manifestファイルは、XMLに代表されるタグ付言語によるテキスト表現をとることも可能である。
図10は、Manifestファイルのシンタックスを示す図である。
manifest_idは、このManifest()セクションの識別子である。
author_idは、コンテンツ作成元を一意に識別するための識別子を指定するためのフィールドである。この識別子は、図17を用いて後述する、コンテンツ配布用ファイルのauthor_idフィールドを参照することで決定され、アプリケーションプログラムまたはユーザは、このフィールドに自由に値を設定することはできない。
disc_idは、author_idにより特定されたコンテンツ作成元に対して、光ディスク11を一意に識別するための識別子を指定するためのフィールドである。この識別子は、図17を用いて後述する、コンテンツ配布用ファイルのdisc_idフィールドを参照することで決定され、アプリケーションプログラムまたはユーザは、本フィールドに自由に値を設定することはできない。
versionは、コンテンツオーサが履歴管理のために使用するフィールドである。履歴番号は、1から255までの数値によって表現され、数値が大きいほど新しいコンテンツであるものとする。この識別子は、図17を用いて後述する、コンテンツ配布用ファイルのversiondフィールドを参照することで決定され、アプリケーションプログラムまたはユーザは、このフィールドに自由に値を設定することはできない。
display_nameには、ユーザに分かり易い名前が定義される。具体的には、display_nameには、例えば、「タイトルxxxの日本語字幕」などのように、ファイル名称からは連想しづらい内容を表現する文字列が設定される。文字列は、ISO/IEC 10646-1規格に従い符号化されているものとする。
sourceには、ファイルの配信元を示す情報が記述される。本フィールド値は、ISO/IEC 646規格に従い符号化するものとする。ネットワークダウンロードの場合、ダウンロード元のURLが記述される。
operation_typeは、ファイルの更新方法をコンテンツオーサが指定するための8ビットのフィールドである。図11に、operation_typeに指定可能な値の一覧を示す。
operation_typeの8ビットのフィールドに、0x01が記載されていたとき、アーカイブ内ファイルの更新方法は、PlayListの置換(交換)である。すなわち、operation_typeの8ビットのフィールドに、0x01が記載されているアップデートファイルがダウンロードされた場合、このアップデートファイルを用いてマージされて作成される仮想ファイルシステムにおいては、ダウンロードされてローカルストレージ24に記録されているPlayListがそのままの状態で参照され、光ディスク11のPlayListは全く参照されない。
operation_typeの8ビットのフィールドに、0x01が記載されていた場合のファイルの更新方法の詳細については、図18および図19を用いて後述する。
また、operation_typeの8ビットのフィールドに、0x02が記載されていたとき、ダウンロードされたファイルから、SubPath要素が抽出され、光ディスク11に記録されているSubPath要素に、抽出されたSubPath要素が加えられるようにファイルシステムがマージされて更新される。
operation_typeの8ビットのフィールドに、0x02が記載されていた場合のファイルの更新方法の詳細については、図20および図21を用いて後述する。
また、operation_typeの8ビットのフィールドに、0x03が記載されていたとき、ダウンロードされたファイルから、SubPlayItem要素が抽出され、光ディスク11に記録されているSubPlayItem要素に、抽出されたSubPlayItem要素が加えられるようにファイルシステムがマージされて更新される。
例えば、operation_typeの8ビットのフィールドに、0x03が記載されていた場合のファイルの更新方法の詳細については、図22乃至図25を用いて後述する。
そして、operation_typeの8ビットのフィールドに、0x04が記載されていたとき、ダウンロードされたファイルから、SubClip_entry要素が抽出され、光ディスク11に記録されているSubClip_entry要素に、抽出されたSubClip_entry要素が加えられるようにファイルシステムがマージされて更新される。
例えば、operation_typeの8ビットのフィールドに、0x04が記載されていた場合のファイルの更新方法の詳細については、図26および図27を用いて後述する。
次に、permissionは、ユーザに対して可視属性にしてよいか、不可視属性にしておくかなどの許認可情報をコンテンツオーサが指定するためのフィールドである。
図12に、図10のManifest()に含まれるpermissionに指定可能な値の一覧を示す。
図12に示されるように、permissionの8ビットのフィールドに、0x00が記載されている場合、このメタデータを付随しているファイルの属性は、ユーザに対して不可視属性であり、permissionの8ビットのフィールドに、0x01が記載されている場合、このメタデータを付随しているファイルの属性は、ユーザに対して可視属性であり、permissionの8ビットのフィールドに、0x02が記載されている場合、このメタデータを付随しているファイルの属性は、上書き禁止属性である。
そして、src_file_nameは、ローカルストレージ24のファイルシステムにおいて、このファイルがディレクトリ構造のどこに記録されるかを一義に指定できる情報、すなわち、ローカルストレージ24のファイルシステムの階層構造におけるファイル位置を使ってファイルを特定する、いわゆるパスを表す「パス名称」を指定するためのフィールドである。パス名称を表現するためのファイルやディレクトリの名称は、ISO/IEC 646規格に従い符号化されているものとする。
dst_file_nameは、実際にはローカルストレージ24に記憶されるファイルの仮想ディスクにおけるバインド先において、このファイルがディレクトリ構造のどこに記録されるかを一義に指定できる情報、すなわち、仮想ファイルシステムの階層構造におけるファイル位置を使ってファイルを特定する、いわゆるパスを表す「パス名称」を指定するためのフィールドである。パス名称を表現するためのファイルやディレクトリの名称は、ISO/IEC 646規格に従い符号化されているものとする。
なお、src_file_nameとdst_file_nameには、同一名称を指定することもできる。
次に、メタデータ操作手続きについて説明する。
仮想ファイルシステムは、アプリケーションプログラムまたはユーザに対して、Manifest()のファイル名称、ファイル位置、または、物理構造などを公開せずに、Manifest()の内容を読み出すためのAPIを定義している。
すなわち、アプリケーションプログラム、または、再生装置1で実行されるレジデント(常駐)プログラムは、以下のAPIを呼び出すことにより間接的にManifest()にアクセスすることができる。
getProperty
引数1:
文字列型データ
メタデータ操作の対象となるファイルの絶対パス名称
引数2:
文字列型データ
読み出したいメタデータの要素名
戻り値:
文字列型データ
引数で指定した要素に対応するメタデータ
機能:
Manifest()からメタデータを読み出す
なお、実際には、型情報などの詳細なAPIの定義は、再生装置1のソフトウェア実行環境のプログラミング言語仕様に依存して変更されなければならない。
図13は、光ディスク11のファイルシステムの例を示す図である。図13に示されるように、光ディスク11のファイルシステムはディレクトリ構造を有している。
光ディスク11の「root」の下には「BDMV」の名前が設定されたディレクトリが用意され、そのディレクトリに、「Index.bdmv」の名前が設定されたファイルと、「MovieObjects.bdmv」の名前が設定されたファイルが格納されている。以下、適宜、これらのファイルをそれぞれIndexファイル、MovieObjectファイルと称する。また、適宜、各ファイルについては、「ファイル名」に「ファイル」を付加した形で、または、各ディレクトリについては、「ディレクトリ名」に「ディレクトリ」を付加した形で称する。
Indexファイルは、光ディスク11を再生するメニューに関する情報を含む。再生装置1は、例えば、光ディスク11のコンテンツを全て再生する、特定のチャプタのみ再生する、繰り返し再生する、初期メニューを表示するなどの内容の項目を含む再生メニュー画面をIndexファイルに基づいて、表示装置に表示させる。Indexファイルには各項目が選択されたときに実行するMovieObjectを設定することができ、ユーザにより再生メニュー画面から1つの項目が選択された場合、再生装置1はIndexファイルに設定されているMovieObjectのコマンドを実行する。
MovieObjectファイルは、MovieObjectを含むファイルである。MovieObjectは、光ディスク11に記録されているPlayListの再生を制御するコマンドを含み、例えば、再生装置1は、光ディスク11に記録されているMovieObjectの中から1つを選択して、実行することにより、光ディスク11に記録されているコンテンツを再生させることができる。
BDMVディレクトリにはまた、「BACKUP」の名前が設定されたディレクトリ(BACKUPディレクトリ)、「PLAYLIST」の名前が設定されたディレクトリ(PLAYLISTディレクトリ)、「CLIPINF」の名前が設定されたディレクトリ(CLIPINFディレクトリ)、「STREAM」の名前が設定されたディレクトリ(STREAMディレクトリ)、「AUXDATA」の名前が設定されたディレクトリ(AUXDATAディレクトリ)が設けられている。
BACKUPディレクトリには、光ディスク11に記録されているファイルやデータをバックアップするためのファイルやデータが記録される。
PLAYLISTディレクトリには、PlayListファイルが格納される。各PlayListファイルには、図内に示されるように5桁の数字からなるファイル名に拡張子「.mpls」を付加した名称が命名される。
CLIPINFディレクトリには、Clip Informationファイルが格納される。各Clip Informationファイルには、図内に示されるように5桁の数字からなるファイル名に拡張子「.clpi」を付加した名称が命名される。
STREAMディレクトリには、Clip AVストリームファイルやサブストリームファイルが格納される。各ストリームファイルには、図内に示されるように5桁の数字からなるファイル名に拡張子「.m2ts」を付加した名称が命名される。
AUXDATAディレクトリには、Clip AVストリームファイルやサブストリームファイルに含まれずに、Clip AVストリームファイルやサブストリームファイルから参照されるデータや、Clip AVストリームファイルやサブストリームファイルとは独立して利用されるデータなどのファイルが格納される。図13の例においては、AUXDATAディレクトリには、「11111.otf」の名前がつけられている字幕のフォントのファイル、「sound.bdmv」の名前が設定された効果音が格納されている。
また、光ディスク11には、製作会社や映画の配給会社などの光ディスク11のコンテンツ製作元であるコンテンツオーサ(または、タイトルオーサとも称する)を識別するために各コンテンツオーサに割り当てられた識別子であるauthor_id、および、author_idに示されるコンテンツオーサにおいて製作された光ディスク11の種類を識別するために割り当てられた識別子であるdisc_idが、ユーザなどにより書き換えることができないセキュアな電子データとして、または、物理的にピットによって記録されている。
図14は、ローカルストレージ24のファイルシステムの例を示す図である。図14に示されるように、ローカルストレージ24のファイルシステムもディレクトリ構造を有している。
ローカルストレージ24の「root」の下には、少なくとも1つの「author_id」の名前が設定されたディレクトリが用意され、「author_id」ディレクトリの下には、少なくとも1つの「disc_id」の名前が設定されたディレクトリが用意されている。そして、「disc_id」のディレクトリには、Manifest()セクションの集合、または、1つのManifest()セクションからなるManifestファイルが含まれている。そして、それ以外のディレクトリやファイルの構造は、コンテンツオーサにより自由に設定可能であり、例えば、図13を用いて説明した光ディスク11のディレクトリ/ファイル構造と同様のものであっても良いし、図14に示されるように、図13を用いて説明した光ディスク11のディレクトリ/ファイル構造とまったく異なるものであっても良い。
例えば、図14においては、「disc_id」のディレクトリには、Manifestファイル以外に、「MainMovie」ディレクトリ、「SubTitle」ディレクトリ、「AUXDATA」ディレクトリなどの複数のフォルダが設定され、これらのディレクトリは、更に、フォルダ、または、ファイルを含むことができる。
図14に示されるローカルストレージ24のディレクトリ/ファイル構造は、再生装置1において実行されるアプリケーションプログラム、または、ユーザから隠蔽されている。
例えば、図10を用いて説明したManifest()セクションにおいて、src_file_nameのフィールドに「/MainMovie/movie01/main.r1.jp.mp2」とパス名称が指定され、dst_file_nameのフィールドに「/STREAM/01002.m2ts」とパス名称が指定されている場合、ダウンロードされたデータは、図15に示されるように、ローカルストレージ24において、対応するauthor_idおよびdisc_idの下の、MainMovieディレクトリ内のmovie01ディレクトリに、main.r1.jp.mp2というファイル名で記録されるが、仮想ディスクにおける仮想ファイルシステムにおいては、STREAMディレクトリの01002.m2tsというファイル名のファイルとして取り扱われる。
このように、コンテンツオーサは、ダウンロードされるファイルパッケージのManifest()セクションのsrc_file_nameのフィールドに、ローカルストレージ24におけるパス名称を指定し、dst_file_nameのフィールドに、仮想ディスクにおける仮想ファイルシステムのパス名称を指定することができる。したがって、dst_file_nameのフィールドに、仮想ディスクにおける仮想ファイルシステムに適応したパス名称を設定すれば、コンテンツオーサは、再生装置1の、ローカルストレージ24に実際に記録されるデータのdisc_id以下のファイル/ディレクトリ構造を自由に設定し、disc_id以下の領域にディレクトリやファイルを新しく追加することが可能となる。
また、実ファイルをダウンロードするときに、Manifest()セクションのdst_file_nameのフィールドを空欄とした場合、そのファイルは、再生装置1において実行されるアプリケーションプログラムから参照することができない(すなわち、再生装置1において実行されるアプリケーションプログラムやユーザから、そのファイルの存在を認識することができない)。すなわち、実ファイルはローカルストレージ24に記憶され、ローカルストレージのファイルシステムにおいては、そのファイルは正しく認識されているが、dst_file_nameのフィールドを空欄とすることにより、仮想ファイルシステムには存在しないこととすることができ、再生装置1において実行されるアプリケーションプログラムやユーザからは隠蔽することが可能である。
これを利用して、例えば、Manifest()セクションのdst_file_nameのフィールドを空欄として実ファイルをダウンロードさせ、後日、同一のManifest_idを有し、dst_file_nameフィールドに、仮想ファイルシステムにおける所定のパス名称が記載されたManifest()セクションを改めてダウンロードさせてManifest()セクションを上書きさせることにより、再生装置1において実行されるアプリケーションプログラムからは、新たなManifest()セクションがダウンロードされたタイミングで、実ファイルがダウンロードされたのと同様に取り扱わせるようにすることができる。
このようにすることにより、例えば、複数のボーナストラックを一度にダウンロード、または、所定の記録媒体などにより配布させておいて、その後、異なるボーナストラックをアプリケーションにより認識させることができるようにdst_file_name フィールドが記載されたManifest()セクションのみを、所定の時期ごとにダウンロードさせて、上書きさせることにより、大容量のデータをたびたびダウンロードさせることなく、時期ごとに異なるボーナストラックが追加されるようなサービスをユーザに提供することが可能である。
また、光ディスク11およびローカルストレージ24における実際のファイルシステムと、仮想ディスクのファイルシステムとの同期(バインド)方式は、いわゆるスタティックバインディング方式であっても、ダイナミックバインディング方式であっても、仮想ファイルシステムを更新するために新たなAPI(例えば、update())を定義し、ユーザ操作、または、アプリケーションプログラムにより明示的にそのAPIが呼び出されたときに、仮想ファイルシステムが更新されるようにしてもよい。
なお、スタティックバインディングとは、光ディスク11が再生装置1に装着された時点、または、再生タイトルが切り替わったタイミングで、光ディスク11およびローカルストレージ24における実際のファイルシステムを参照し、仮想ファイルシステムのディレクトリ/ファイル構造をマッピングするものであり、ダイナミックバインディングとは、ファイル入出力要求が発行された時点で、必要なファイルを探索するものである。
仮想ディスクのディレクトリ/ファイル構造は、上述したように、光ディスク11のディレクトリ/ファイル構造に合致するようになされると好適である。光ディスク11のディレクトリ/ファイル構造は、規格などにより予め定められ、変更することができない場合が多く、ローカルストレージ24における実際のファイルシステムのディレクトリやファイルの構造は、コンテンツオーサにより自由に設定可能であるほうが好適である。このため、仮想ディスクのディレクトリ/ファイル構造を、変更することができない光ディスク11のディレクトリ/ファイル構造に基づいて設定することができるようにすると、コンテンツオーサにより配布されるデータの自由度を維持しつつ、光ディスク11のアプリケーションフォーマット等の規格に合致した再生処理を実行させることができるので好適である。
仮想ディスクにおけるディレクトリ/ファイル構造の例を図16に示す。
図16に示される仮想ディスクのディレクトリ/ファイル構造において、「root」の下には「BDMV」の名前が設定されたディレクトリが用意され、そのディレクトリに、「Index.bdmv」の名前が設定されたファイルと、「MovieObjects.bdmv」の名前が設定されたファイルが格納されている。
Indexファイルは、光ディスク11およびローカルストレージ24に記録され、アプリケーションプログラムから仮想ディスクに記録されているものとして取り扱われるコンテンツを再生するメニューに関する情報を含む。再生装置1は、例えば、仮想ディスクに記録されているものとして取り扱われるコンテンツを全て再生する、特定のチャプタのみ再生する、繰り返し再生する、初期メニューを表示するなどの内容の項目を含む再生メニュー画面をIndexファイルに基づいて、表示装置に表示させる。Indexファイルには各項目が選択されたときに実行するMovieObjectを設定することができ、ユーザにより再生メニュー画面から1つの項目が選択された場合、再生装置1はIndexファイルに設定されているMovieObjectのコマンドを実行する。
Indexファイルについての詳細は、図37および図38を用いて後述する。
MovieObjectファイルは、MovieObjectを含むファイルである。MovieObjectは、仮想ディスクに記録されているものとして取り扱われるPlayListの再生を制御するコマンドを含み、例えば、再生装置1は、仮想ディスクに記録されているものとして取り扱われるMovieObjectの中から1つを選択して、実行することにより、仮想ディスクに記録されているものとして取り扱われるコンテンツを再生させることができる。
BDMVディレクトリにはまた、「BACKUP」の名前が設定されたディレクトリ(BACKUPディレクトリ)、「PLAYLIST」の名前が設定されたディレクトリ(PLAYLISTディレクトリ)、「CLIPINF」の名前が設定されたディレクトリ(CLIPINFディレクトリ)、「STREAM」の名前が設定されたディレクトリ(STREAMディレクトリ)、「AUXDATA」の名前が設定されたディレクトリ(AUXDATAディレクトリ)が設けられている。
BACKUPディレクトリには、仮想ディスクに記録されているものとして取り扱われるファイルやデータをバックアップするためのファイルやデータが記録される。
PLAYLISTディレクトリには、PlayListファイルが格納される。各PlayListファイルには、光ディスク11における場合と同様に、5桁の数字からなるファイル名に拡張子「.mpls」を付加した名称が命名される。
CLIPINFディレクトリには、Clip Informationファイルが格納される。各Clip Informationファイルには、光ディスク11における場合と同様に、5桁の数字からなるファイル名に拡張子「.clpi」を付加した名称が命名される。
STREAMディレクトリには、Clip AVストリームファイルやサブストリームファイルが格納される。各ストリームファイルには、光ディスク11における場合と同様に、5桁の数字からなるファイル名に拡張子「.m2ts」を付加した名称が命名される。
AUXDATAディレクトリには、仮想ディスクに記録されているものとして取り扱われるClip AVストリームファイルやサブストリームファイルに含まれずに、Clip AVストリームファイルやサブストリームファイルから参照されるデータや、Clip AVストリームファイルやサブストリームファイルとは独立して利用されるデータなどのファイルが格納される。
なお、ユーザに提供されるメニュー画面において、ファイルを示す情報は、通常、display_nameのフィールドにおいて指定された名称となるが、例えば、図16を用いて説明した、仮想ディスクにおけるディレクトリ/ファイル構造は、アプリケーションまたはユーザから隠蔽されないものであるので、再生装置1において実行されるアプリケーションによっては、仮想ディスクにおけるディレクトリ/ファイル構造を、ユーザに提示するようにしてもかまわない。
次に、図17を用いて、コンテンツオーサがコンテンツを配布する際のコンテンツ配布用ファイル形式の定義について説明する。コンテンツの配布の際のファイル形式は、コンテンツファイル単位での個別配布であっても良いが、図17に示されるように、メタデータ(Manifest())を含むアーカイブ形式であっても良い。
ただし、アーカイブ中のPackage_header()セクションおよびPackage_Body()セクションに関しては、XMLに代表されるタグ付言語によるテキスト表現もとることができる。
なお、コンテンツオーサがコンテンツをファイル単位で個別配布するとき、メタデータ(Manifest())は単独のバイナリーファイルまたはテキストファイルとして扱われる。すなわち、ファイル単位で配布されたコンテンツに関連付けられるManifest()には、追加後のディレクトリ構造を見越して、ふさわしい状態が記述されていなければならない。
compression_typeは、Package_Body()内データの圧縮方式を指定するためのフィールドである。本フィールドに0が指定されている場合は、Package_Body()内データは、非圧縮形式であるものとする。
encryption_typeは、Package_Body()内データのスクランブル方式(暗号化方式)を指定するためのフィールドである。本フィールドに0が指定されている場合は、Package_Body()内データは、ノンスクランブル(平文)形式であるものとする。
なお、Package_Body()内データのスクランブルと圧縮の順序は、1.圧縮処理、2.スクランブル処理の順番で行われるものとする。
file_countは、アーカイブするファイルの総数を指定するためのフィールドである。
manifest_idは、このManifest()セクションの識別子を指定するためのフィールドである。
アーカイブデータがダウンロードされた後、Manifest()セクションは、ローカルストレージ24において、対応するダウンロードファイル単位(アーカイブデータ単位)で保存されるようにしても、1つのファイルにマージされるようにして、Manifest()セクションの識別子であるmanifest_idをキーに識別可能なようにしてもよい。
author_idは、コンテンツ作成元を一意に識別するための識別子をコンテンツオーサが指定するためのフィールドである。
disc_idは、特定のコンテンツ作成元において、光ディスク11を一意に識別するための識別子をコンテンツオーサが指定するためのフィールドである。すなわち、このアーカイブは、disc_idで指定される光ディスク11に対するアップデートデータである。
versionは、コンテンツオーサが履歴管理のために使用するためのフィールドである。履歴番号は、1から255までの数値によって表現され、数値が大きいほど新しいコンテンツであるものとする。
sourceは、このManifest()に関連付けられたファイルのソースURLを記述するためのフィールドである。文字列は、ISO/IEC 10646-1規格に従い符号化されているものとする。
operation_typeは、コンテンツ更新手続きをコンテンツオーサが指定するためのフィールドである。operation_typeが指定可能な値については、図11を用いて説明した場合と同一である。
display_nameは、ユーザ分かり易い名前をコンテンツオーサが指定するためのフィールドである。例えば、「タイトルxxxの日本語字幕」などのようにファイル名称からは連想しづらい内容を表現する文字列を設定するためのフィールドである。文字列は、ISO/IEC 10646-1規格に従い符号化されているものとする。
permissionは、ユーザに対して可視属性にしてよいか、不可視属性にしておくかなどの許認可情報をコンテンツオーサが指定するためのフィールドである。Permissionにおいて指定可能な値については、図12を用いて説明した場合と同一である。
src_file_nameは、図15を用いて説明した様に、ローカルストレージ24にて記録されるべきファイルのパス名称を指定するためのフィールドである。ファイル/ディレクトリ名称は、ISO/IEC 646規格に従い符号化されているものとする。
dst_file_nameは、図15を用いて説明した様に、仮想ディスク(仮想ファイルシステム)におけるバインド先のファイルのパス名称を指定するためのフィールドである。ファイル/ディレクトリ名称は、ISO/IEC 646規格に従い符号化されているものとする。
なお、src_file_nameとdst_file_nameには、同一名称を指定することもできる。
file_sizeは、圧縮前のファイルサイズをバイト単位で指定するためのフィールドである。
file_dataは、ファイルデータをバイトシーケンスとして指定するためのフィールドである。
図17を用いて説明した様なコンテンツ配布用ファイル形式のデータがダウンロードされ、再生装置1において、装着された光ディスク11に記録されているデータとマージされて仮想ディスクにおける仮想ファイルシステムが構築される。これにより、再生装置1を用いて光ディスク11に記録されているコンテンツを再生させるユーザからは、光ディスク11に記録されているコンテンツに、例えば、ボーナストラックや、異なる言語での音声または表示字幕が追加されてアップデートされたように感じられる。
上述したファイル形式にしたがって構成されるコンテンツが更新される場合は、例えば、図16を用いて説明した仮想ファイルシステムにおいて、インデックスファイル(Index.bdmv)、ムービーオブジェクトファイル(Movieobjects.bdmv)、プレイリストファイル(*****.mpls)、クリップインフォメーションファイル(*****.clpi)、ストリームファイルまたはAUXデータファイル(*****.m2ts, *****bdmv,*****.otf)などが追加あるいは更新されるように、新たなデータファイルがダウンロードされて、バインディングされる。これらのファイルがダウンロードされて、装着されている装着された光ディスク11に記録されているコンテンツに関連付けられて再生されるためには、MainPathの追加やSubPathの追加など、上述したoperation_typeによって規定されるさまざまなタイプの追加が実行される。
まず、第1の例として、再生装置1に装着された光ディスク11に記録されているコンテンツに対して、MainPathが追加される場合について説明する。
例えば、operation_typeの8ビットのフィールドに、0x01が記載され、図18に示されるように、光ディスク11には、MainPath#1およびSubPath#1を含むPlayList#1ファイル、ClipAVストリーム#1ファイル、および、テキスト字幕ストリーム#1ファイルが記録され、サーバ3からダウンロードされたコンテンツパッケージには、PlayItem#1およびPlayItem#2を有するMainPath#2およびSubPath#1を有するPlayList#2ファイル、および、ボーナストラックなどに対応するClipAVストリーム#2ファイルが含まれていたとき、コンテンツパッケージ内のPlayList#2ファイルが抽出されて、抽出されたPlayList#2が、光ディスク11から読み出された更新元のPlayList#1ファイルと置き換えられた状態にファイルシステムが更新される。
すなわち、図19に示されるように、PlayItemから構成されるMainPath、および、SubPlayItemから構成されるSubPathを有するアップデート前の、すなわち、光ディスク11のPlayList#1においては、PlayItemが参照するClipAVストリーム#1、および、SubPlayItemが参照し、Clip AVストリーム1と同期して再生されるテキスト字幕ストリーム#1が再生されるようになされている。この光ディスク11に記録されているコンテンツに対して、アップデート後(すなわち、ファイルシステムがマージされて更新された後)のPlayList#2においては、ClipAVストリーム#1に続いて、ボーナストラックに対応するClipAVストリーム#2が再生される。
図18および図19を用いて説明した様にPlayItemが追加されたとき、ユーザに、例えば、再生装置1に装着された光ディスク11に記録されているコンテンツにボーナストラックを追加して提供することができる。
次に、第2の例として、再生装置1に装着された光ディスク11に記録されているコンテンツに対して、SubPathが追加される場合について説明する。
例えば、operation_typeの8ビットのフィールドに、0x02が記載されていた場合、図20に示されるように、光ディスク11にはSubPath#1を含むPlayList#1ファイル(更にMainPathを含むことはもちろんであるが、以下、MainPathに関係する更新でない場合、MainPathの記載は省略する)、ClipAVストリーム#1ファイル、および、例えば、副音声に対応するAudioストリーム#1ファイルが記録され、サーバ3からダウンロードされたコンテンツパッケージには、SubPath#2を有するPlayList#1ファイル、および、テキスト字幕ストリーム#1ファイルが含まれていたとき、コンテンツパッケージ内のPlayList#1ファイルのSubPath#2が抽出されて、抽出されたSubPath#2が、光ディスク11から読み出された更新元のPlayList#1ファイルに追加された状態にファイルシステムが更新される。
すなわち、図21に示されるように、PlayItemから構成されるMainPath、および、SubPlayItemから構成されるSubPathを有するアップデート前の、すなわち、光ディスク11のPlayListにおいては、PlayItemが参照するClipAVストリーム#1、および、SubPlayItemが参照し、Clip AVストリーム1と同期して再生される副音声のデータであるAudioストリーム#1が再生されるようになされている。この光ディスク11に記録されているコンテンツに対して、アップデート後(すなわち、ファイルシステムがマージされて更新された後)のPlayListにおいては、ClipAVストリーム#1に同期して再生され、かつ、独立して再生区間が設定可能な2つ目のSubPlayItemがSub Pathに追加されるので、PlayItemが参照するClipAVストリーム#1、および、1つ目のSubPlayItemが参照し、ClipAVストリーム#1と同期して再生される副音声のデータであるAudioストリーム#1が再生されるのみならず、Audioストリーム#1とは独立して再生区間が設定可能なテキスト字幕ストリーム#1が再生可能なようになされている。
図20および図21を用いて説明したようにSubPathが追加される場合、SubPathで選択可能なPathを増やすことができる。したがって、ユーザには、例えば、選択可能な新しい字幕を追加して提供することができる。
次に、第3の例として、再生装置1に装着された光ディスク11に記録されているコンテンツに対して、SubPlayItemが追加される場合について説明する。
例えば、operation_typeの8ビットのフィールドに、0x03が記載され、図22に示されるように、光ディスク11にはSubPlayItem#1から構成されるSubPath#1を含むPlayList#1ファイル、ClipAVストリーム#1ファイル、および、テキスト字幕ストリーム#1ファイルが記録され、サーバ3からダウンロードされたコンテンツパッケージには、SubPlayItem#2から構成されるSubPath#1を有するPlayList#1ファイル、および、テキスト字幕ストリーム#2ファイルが含まれていたとき、コンテンツパッケージ内のPlayList#1ファイルのSubPath#1を構成するSubPlayItem#2が抽出されて、抽出されたSubPlayItem#2が、光ディスク11から読み出された更新元のPlayList#1ファイルのSubPath#1に追加された状態に、ファイルシステムが更新される。
すなわち、図23に示されるように、PlayItemから構成されるMainPath、および、SubPlayItem#1から構成されるSub Pathを有するアップデート前のPlayListにおいては、PlayItemが参照するClipAVストリーム#1、および、SubPlayItem#1が参照し、ClipAVストリーム#1と同期してテキスト字幕ストリーム#1が再生されるようになされている。この光ディスク11に記録されているコンテンツに対して、アップデート後(すなわち、ファイルシステムがマージされて更新された後)のPlayListにおいては、PlayItemが参照するClipAVストリーム#1、および、SubPlayItem#1が参照し、ClipAVストリーム1と同期して再生されるテキスト字幕ストリーム#1が再生されるのみならず、SubPathにSubPlayItem#2が追加されるので、ClipAVストリーム#1と同期してテキスト字幕ストリーム#2が再生可能なようになされている。
図22および図23を用いて説明した様に、SubPlayItemが追加される場合、SubPath内のSubPlayItemが追加される。したがって、ユーザに、例えば、選択可能な字幕を更に追加して提供することができる。
次に、第4の例として、再生装置1に装着された光ディスク11に記録されているコンテンツに対して、SubPlayItemが置き換えられる場合について説明する。
例えば、operation_typeの8ビットのフィールドに、0x03が記載され、図24に示されるように、光ディスク11にはSubPlayItem#1から構成されるSubPath#1を含むPlayList#1ファイル、ClipAVストリーム#1ファイル、および、テキスト字幕ストリーム#1ファイルが記録され、サーバ3からダウンロードされたコンテンツパッケージには、光ディスク11に記録されているものと同一名称のSubPlayItem#1(以下、光ディスク11に記録されているものとコンテンツパッケージに含まれているものを区別するため、光ディスク11に記録されているものをSubPlayItem#1と称し、コンテンツパッケージに含まれているものをSubPlayItem#1'と称するものとし、図24および図25においても、このように記載するものとする)およびSunPlayItem#2から構成されるSubPath#1を有するPlayList#1ファイル、および、テキスト字幕ストリーム#2ファイルが含まれていたとき、コンテンツパッケージ内のPlayList#1ファイルのSubPath#1を構成するSubPlayItem#1'およびSunPlayItem#2が抽出されて、抽出されたSubPlayItem#1'およびSunPlayItem#2が、光ディスク11から読み出された更新元のPlayList#1ファイルのSubPath#1に上書きされた(置き換えられた)状態に、ファイルシステムが更新される。
すなわち、図25に示されるように、PlayItemから構成されるMainPath、および、SubPlayItem#1から構成されるSub Pathを有するアップデート前のPlayListにおいては、PlayItemが参照するClipAVストリーム#1、および、SubPlayItem#1が参照し、ClipAVストリーム#1と同期してテキスト字幕ストリーム#1が再生されるようになされている。この光ディスク11に記録されているコンテンツに対して、アップデート後(すなわち、ファイルシステムがマージされて更新された後)のPlayListにおいては、PlayItemが参照するClipAVストリーム#1、および、SubPlayItem#1'が参照するテキスト字幕ストリーム#1とSubPlayItem#2が参照するテキスト字幕ストリーム#2とが再生されるので、ClipAVストリーム#1と同期して再生されるテキスト字幕が追加されたようになされている。また、例えば、SubPlayItem#1'がSubPlayItem#1の再生区間だけを更新したSubPlayItemであった場合は、テキスト字幕の再生区間が延長されたようになされる。
図24および図25を用いて説明した様に、SubPlayItemが置き換えられ、置き換えられたSubPlayItemにより再生されるテキスト字幕ストリームが置き換えられる前と異なっている場合、SubPath内のSubPlayItemにより再生されるテキスト字幕ストリームが変更される。したがって、ユーザには、例えば、途中から変更(修正)された字幕を提供することができる。
次に、第5の例として、再生装置1に装着された光ディスク11に記録されているコンテンツに対して、Clipが追加される場合について説明する。
例えば、operation_typeの8ビットのフィールドに、0x04が記載され、図26に示されるように、光ディスク11にはClip#1が対応付けられているSubPlayItem#1から構成されるSubPath#1を含むPlayList#1ファイル、ClipAVストリーム#1ファイル、および、例えば、第1の言語の字幕に対応するテキスト字幕ストリーム#1ファイルが記録され、サーバ3からダウンロードされたコンテンツパッケージには、Clip#2が対応付けられているSubPlayItem#1から構成されるSubPath#1を有するPlayList#1ファイル、および、第2の言語の字幕に対応するテキスト字幕ストリーム#2ファイルが含まれていたとき、コンテンツパッケージ内のPlayList#1ファイルのSubPath#1を構成するSubPlayItem#1のClip#2が抽出されて、抽出されたClip#2が、光ディスク11から読み出された更新元のPlayList#1ファイルのSubPath#1を構成するSubPlayItem#1に追加された状態にファイルシステムが更新される。
すなわち、図27に示されるように、PlayItemから構成されるMainPath、および、SubPlayItemから構成されるSubPathを有するアップデート前のPlayListにおいては、PlayItemが参照するClipAVストリーム#1、および、SubPlayItem#1が参照し、ClipAVストリーム#1と同期して、第1の言語の字幕に対応するテキスト字幕ストリーム#1が再生されるようになされている。この光ディスク11に記録されているコンテンツに対して、アップデート後(すなわち、ファイルシステムがマージされて更新された後)のPlayListにおいては、PlayItemが参照するClipAVストリーム#1、および、SubPlayItemが参照し、ClipAVストリーム#1と同期して再生される第1の言語の字幕に対応するテキスト字幕ストリーム#1が再生されるのみならず、SubPathを構成するSubPlayItemに、更に、Clip#2が追加されるので、ClipAVストリーム#1と同期して、SubPlayItemが参照する、第2の言語に対応するテキスト字幕ストリーム#2が、更に再生可能なようになされている。
図26および図27を用いて説明したように、Clipが追加された場合、ユーザに、更に選択可能な言語の字幕を追加して提供することができる。
なお、光ディスク11には、上述したファイル構成以外のAVストリームデータを記録させ、デコーダ26によりデコードして再生させることが可能であるが、上述したファイル構成以外のAVストリームデータにおいては、ローカルストレージ24にダウンロードされたファイルを用いて、仮想ファイルシステムを構築することはできない。したがって、再生装置1を利用するユーザにとって、光ディスク11に記録されているファイルが追加されたり、その一部分だけが更新されるように、データを扱うことはできない。
また、再生装置1においてPlayListファイルの編集を実行しなくても良いように、データの配布元(コンテンツオーサ)で、追加・更新に必要なファイルのパッケージングが予め行われ、ディスクベース(すなわち、Disc_idで示されるディレクトリのデータごと)で、ファイルのダウンロードが行われるようにしても良い。
なお、ファイルの追加更新時、ファイル名が同一であった場合は上書きとなり、ファイル名が異なる場合は新規追加となる。
このようにして、再生装置1においては、ネットワーク2を介して、サーバ3から、例えば、図17に示されるような構成を有する新たなデータをダウンロードして、メタデータであるManifest()に記載されているsrc_file_nameに示されるパス名称を基に、ローカルストレージ24に記憶され、Manifest()に記載されているdst_file_nameに示されるパス名称を基に、仮想ファイルシステム内のパスが設定され、再生装置1のアプリケーション(例えば、再生処理を行うアプリケーション)は、仮想ファイルシステムを基に、すなわち、dst_file_nameに示されるパスに基づいて、光ディスク11に記録されているデータと、ローカルストレージ24に記録されているデータを区別せずに処理することができるようになされている。
すなわち、再生装置1において実行されているアプリケーションプログラムが実行する処理として説明すると、データの追加処理を実行可能なアプリケーションプログラムは、データの追加指示(ダウンロード指示)を受けると、該当するManifestファイル(全てのManifestファイルであっても、一部のManifestファイルであっても良い)を、ネットワーク2を介してサーバ3に送信し、サーバ3から、現在追加可能なコンテンツ一覧を取得する。アプリケーションプログラムは、追加可能なコンテンツ一覧をユーザに提示し、ユーザは、提示された一覧の中からダウンロードするコンテンツを選択する。
ユーザにより、ダウンロードするコンテンツが選択された場合、データをサーバ3からダウンロードする処理を実行可能なアプリケーション(例えば、データの追加処理や再生処理を実行可能なアプリケーションプログラムと同一であっても、それぞれ個別のものであっても良い)により、データのダウンロードが開始される。
ダウンロードアプリケーションによるダウンロードが完了すると、ダウンロードされたファイルパッケージ群は、ファイルシステムをマネジメントするアプリケーションにより、仮想ファイルシステム上にマウントされ、スタティックバインディングまたはダイナミックバインディングなどにより、ネイティブなファイルシステムと仮想ファイルシステムとが同期される。
次に、ユーザの操作入力に基づいて、ファイルを削除する場合の処理について説明する。再生装置1は、Manifestファイルを利用して、ローカルストレージ24の中のファイル一覧を表示するようなメニュー画面を表示することができ、ユーザは、これを基に、ファイル(コンテンツ)ベースで仮想ファイルシステムからファイルを削除したり、ディスクベースで仮想ファイルシステムからファイルを削除することができる。
まず、ファイル(コンテンツ)ベースでの、仮想ファイルシステムからのファイルの削除について説明する。
仮想ディスクから、コンテンツベースでファイルを削除するということは、ユーザから見れば、例えば、光ディスク11には予め記録されておらず、ダウンロードによって仮想ディスク上に記録された英語字幕や日本語吹き替え音声などを、コンテンツ別に選択して、対応するファイル群を削除することである。
例えば、再生装置1に装着されている光ディスク11に対して、図18および図19を用いて説明した様なファイルの追加更新が実行され、ボーナストラックに対応するClipAVストリームが追加された。そして、図20および図21を用いて説明した様なファイルの追加更新が実行され、選択可能な新しい字幕に対応するSubPathと対応するテキスト字幕ストリームが追加された。そして、更に、図22および図23を用いて説明した様なファイルの追加更新が実行され、SubPlayItemが追加されてSubPath内のSubPlayItemが延長されて追加字幕に対応するテキスト字幕ストリームが追加された。このとき、仮想ディスクに記録されているコンテンツの状態は、例えば、図28に示されるように、SubPath#1およびSubPlayItem#1、並びに、SubPath#2およびSubPlayItem#2を有するPlayList#1と、ClipAVストリーム#1、ClipAVストリーム#2、および、テキスト字幕ストリーム#1乃至#3を含むものとなる。そして、図29に示されるように、PlayItemにより指定されるMain Pathによって、ClipAVストリーム#1およびClipAVストリーム#2が連続して再生され、SubPlayItem#1を用いて指定されるSubpath#1により、テキスト字幕ストリーム#1とテキスト字幕ストリーム#3とが再生されて、SubPlayItem#2を用いて指定されるSubPath#2により、テキスト字幕ストリーム#2が再生されるものとなった。この状態において、ユーザがいずれかのファイルを削除する処理を開始することを指令した場合について説明する。
このとき、コントローラ21のローカルストレージディレクトリ管理部34は、データ取得部33を制御し、インターネットインタフェース25およびネットワーク2を介してサーバ3にアクセスし、例えば、このPlayList#1により再生されるコンテンツに関連するmanifest_idなど、現在の仮想ファイルシステムの状態を示す情報をサーバ3に送信し、サーバ3より、可能な更新、すなわち、削除可能な項目の一覧に対応する情報を受信する。そして、メニュー画面表示制御部31の処理により、例えば、図30に示されるように、削除可能なファイルの一覧が、ユーザに提示される。ここでは、フランス語字幕、ボーナストラック、および、日本語追加字幕が、削除可能なファイルの一覧に含まれている。
そして、ユーザにより、ボーナストラックの削除が選択された場合、ローカルストレージディレクトリ管理部34は、ユーザにより選択されたボーナストラックに対応するファイルを削除する。このとき、ローカルストレージディレクトリ管理部34は、このボーナストラックに対応するファイルパッケージ内のManifestファイルに関連付けられたファイルを消去し、Manifestファイル中の該当するManifest()セクション自体を消去することができる。
ところで、ローカルストレージ24に記録されているファイルは、1つのPlayItemにより参照されるのみであるとは限らない。すなわち、上述した削除処理により、他の部分の再生処理に支障が生じる場合が想定できる。
具体的には、削除されるボーナストラックにおいて参照されたテキスト字幕ファイル#n(nは、ある整数)が、削除されないAVストリームファイルとも同期して再生されるようになされているのにもかかわらず、ボーナストラックの消去に伴って、テキスト字幕ファイル#nも消去された場合、削除されないAVストリームファイルと同期してテキスト字幕ファイル#nを再生することができなくなってしまうような場合などである。
そこで、ファイルシステムマージ処理部36は、仮想ファイルシステムにおける上述した削除処理により、他の部分の再生処理に支障が生じるか否かを判断し、例えば、データ間のリンク構造が壊れることなどにより支障が生じる場合、他の部分の再生処理に必要なデータファイルを検出し、データ取得部33に指令して、データファイルのダウンロードを要求する信号をサーバ3に送信させ、サーバ3より、必要なデータファイルのダウンロードを受けて、上述した場合と同様にして、ローカルストレージディレクトリ管理部34の処理により、ローカルストレージ24に展開する。
そして、ファイルシステムマージ処理部36は、新たなファイルがダウンロードされた場合であっても、ダウンロードされていない場合であっても、上述したような所定のタイミングで、仮想ファイルシステムのバインディング処理を行う。このような処理により、ユーザによって選択されたファイルが削除された状態の仮想ファイルシステムを基に、コンテンツが再生される。
次に、ディスクベースでの仮想ファイルシステムからのファイルの削除について説明する。
仮想ディスクから、ディスクベースでファイルを削除するということは、ローカルストレージ24において、対応するdisc_idに対応するディレクトリに含まれているファイル群を全て削除することである。例えば、あるdisc_id以下に存在するManifestファイルと関連付けられたすべてのファイルが消去され、その後、すべてのManifest()セクションも削除される。
ユーザから見れば、具体的には、光ディスク11に記録されているコンテンツに対して、ダウンロードされて仮想ファイルシステムにバインディングされた(すなわち、仮想ディスクに新たに記録された)追加または更新ファイルが削除されることにより、光ディスク11が初期化される(光ディスク11に記録されているコンテンツのみの状態となる)のと同等である。
次に、フローチャートを参照して、再生装置1が実行する処理について説明する。
まず、図31のフローチャートを参照して、ファイルベースの追加および更新処理について説明する。
ステップS1において、コントローラ21の操作入力取得部32は、操作入力部29から供給される信号を基に、ユーザから、ファイルベース、すなわち、所定のdisc_idで示されるディレクトリに含まれるファイルの追加処理を開始する指令を受けたか否かを判断する。ステップS1において、ファイルの追加処理を開始する指令を受けていないと判断された場合、ファイルの追加処理を開始する指令を受けたと判断されるまで、ステップS1の処理が繰り返される。
ステップS1において、ファイルの追加処理を開始する指令を受けたと判断された場合、ステップS2において、コントローラ21のローカルストレージディレクトリ管理部34は、データ取得部33を制御し、インターネットインタフェース25およびネットワーク2を介してサーバ3にアクセスし、現在の仮想ファイルシステムの状態を示す情報、例えば、対応するManifest()セクションのManifest_idを送信する。
ステップS3において、データ取得部33は、インターネットインタフェース25を制御し、ネットワーク2を介して、サーバ3から、ダウンロード可能なファイルの一覧に対応する情報を受信したか否かを判断する。
ステップS3において、ダウンロード可能なファイルの一覧に対応する情報を受信できなかったと判断された場合、ステップS4において、メニュー画面表示制御部31は、ファイルの追加処理が不可能であることをユーザに通知するためのエラーメッセージの表示を制御し、処理が終了される。
ステップS3において、ダウンロード可能なファイルの一覧に対応する情報を受信したと判断された場合、ステップS5において、データ取得部33は、サーバ3から送信され、インターネットインタフェース25により受信されたダウンロード可能なファイルの一覧に対応する情報を、メニュー画面表示制御部31に供給する。メニュー画面表示制御部31は、ダウンロード可能なファイルの一覧から、ユーザが所望のものを選択することができるようになされているメニュー画面を表示装置に表示させる。
ステップS6において、操作入力取得部32は、メニュー画面表示制御部31の処理により表示が制御されているメニュー画面のボタンまたはアイコンなどがユーザにより操作され、追加したい項目が選択されたか否かを判定する。ステップS6において、追加したい項目が選択されていないと判断された場合、選択されたと判断されるまで、ステップS6の処理が繰り返される。
ステップS6において、追加したい項目が選択されたと判断された場合、ステップS7において、操作入力取得部32は、ユーザにより選択されたアップデートの内容を表す情報を、データ取得部33に供給する。データ取得部33は、インターネットインタフェース25を制御し、要求するファイルを示す情報をサーバ3に送信させ、ユーザが選択したファイルのダウンロードを要求する。
ステップS8において、データ取得部33は、インターネットインタフェース25を制御し、サーバ3によりダウンロードファイルとして用意される、PlayListファイル、ClipInformationファイル、ClipAVストリームファイル、オーディオファイル、テキスト字幕ストリームファイル、または、フォントファイルなどをダウンロードさせ、これらのファイルがダウンロードされたことを、ローカルストレージディレクトリ管理部34に通知する。
ステップS9において、ローカルストレージディレクトリ管理部34は、ダウンロードされたファイルのManifest()に含まれるauthor_idとdisc_idとに基づいて、それらのIDで識別されるディレクトリがローカルストレージ24に既に存在するか否かを判断して、対応するディレクトリが既に存在する場合は、そのディレクトリにダウンロードされたデータファイルを展開し、対応するディレクトリが存在しない場合、author_idとdisc_idで指定される新たなディレクトリをローカルストレージ24に作成し、ダウンロードされたデータファイルを展開する。
ステップS10において、図32を用いて後述するバインディング処理1が実行され、処理が終了される。
このような処理により、サーバ3からアップデートファイルがダウンロードされて、ローカルストレージ24に記録させ、光ディスク11に記録されているコンテンツのアップデートファイルとして扱われるようにすることができる。
すなわち、このような処理により、例えば、映画などのコンテンツが記録された光ディスク11を購入したユーザが、光ディスク11に予め記録されていない言語の字幕を表示させるために必要なファイルや、ボーナストラックを視聴するために必要なファイルなどを取得して、ローカルストレージ24に記憶させるとともに、光ディスク11に記録されているデータとローカルストレージ24に記憶されているデータとを、再生処理などを実行するアプリケーションプログラムが区別しないで取り扱うことができ、物理的なデータの記憶をユーザまたはアプリケーションプログラムから隠蔽することができるような仮想ファイルシステムを構築させることができる。
また、以上のようなアップデートファイルのダウンロードは、有料で行うことができるものであってもよいし、無料で行うことができるものであってもよい。
次に、図32のフローチャートを参照して、図31のステップS10において実行される、バインディング処理1について説明する。
ステップS21において、ローカルストレージディレクトリ管理部34は、ローカルストレージ24に記録されているダウンロードされたデータ群から、対応するdisc_idのディレクトリを抽出し、ファイルシステムマージ処理部36に供給する。
ステップS22において、ファイルシステムマージ処理部36は、Manifestファイルのsrc_file_nameおよびdst_file_nameを参照する。
ステップS23において、ファイルシステムマージ処理部36は、ステップS22において参照されたsrc_file_nameおよびdst_file_nameを基に、ネイティブなファイルシステムと、仮想ファイルシステムとをバインディングする。
具体的には、src_file_nameには、ローカルストレージ24のファイルシステムにおいて、このファイルがディレクトリ構造のどこに記録されるかを一義に指定できる情報、いわゆるパスを表す「パス名称」が指定され、dst_file_nameには、実際にはローカルストレージ24に記憶されるファイルの仮想ディスクにおけるバインド先において、このファイルがディレクトリ構造のどこに記録されるかを一義に指定できる情報、いわゆるパスを表す「パス名称」が指定される。
例えば、図10を用いて説明したManifest()セクションにおいて、src_file_nameのフィールドに「/MainMovie/movie01/main.r1.jp.mp2」とパス名称が指定され、dst_file_nameのフィールドに「/STREAM/01002.m2ts」とパス名称が指定されている場合、ファイルシステムマージ処理部36は、図15を用いて説明したように、ダウンロードされたデータが、ローカルストレージ24において、対応するauthor_idおよびdisc_idの下の、MainMovieフォルダ内のmovie01フォルダに、main.r1.jp.mp2というファイル名で記録されるが、仮想ディスクにおける仮想ファイルシステムにおいては、STREAMディレクトリの01002.m2tsというファイル名のファイルとして取り扱われるようにバインディングする。
コンテンツオーサは、ダウンロードされるファイルパッケージのManifest()セクションのsrc_file_nameのフィールドに、ローカルストレージ24におけるパス名称を指定し、dst_file_nameのフィールドに、仮想ディスクにおける仮想ファイルシステムにおけるパス名称を指定することができる。したがって、dst_file_nameのフィールドに、仮想ディスクにおける仮想ファイルシステムに適応した(光ディスク11のファイルシステムに適応した)パス名称を設定すれば、コンテンツオーサは、再生装置1の、ローカルストレージ24に実際に記録されるデータのdisc_id以下のファイル/ディレクトリ構造を自由に設定し、disc_id以下の領域にディレクトリやファイルを新しく追加することが可能となる。
次に、図33のフローチャートを参照して、ディスクベースの追加および更新処理について説明する。
ステップS41において、コントローラ21の操作入力取得部32は、操作入力部29から供給される信号を基に、ユーザから、ディスクベース、すなわち、ローカルストレージ24に実際に記録されるデータのdisc_id以下のファイルの追加処理を開始する指令を受けたか否かを判断する。ステップS41において、ファイルの追加処理を開始する指令を受けていないと判断された場合、ファイルの追加処理を開始する指令を受けたと判断されるまで、ステップS41の処理が繰り返される。
ステップS41において、ファイルの追加処理を開始する指令を受けたと判断された場合、ステップS42において、コントローラ21のローカルストレージディレクトリ管理部34は、データ取得部33を制御し、インターネットインタフェース25およびネットワーク2を介してサーバ3にアクセスし、現在の仮想ファイルシステムの状態を示す情報、例えば、対応するdisc_id以下のManifest ファイルに含まれる全てのManifest()セクションのManifest_idを送信する。
ステップS43において、データ取得部33は、インターネットインタフェース25を制御し、ネットワーク2を介して、サーバ3から、ダウンロード可能なディスクベースのファイルの一覧に対応する情報を受信したか否かを判断する。
ステップS43において、ダウンロード可能なディスクベースのファイルの一覧に対応する情報を受信できなかったと判断された場合、ステップS44において、メニュー画面表示制御部31は、ファイルの追加処理が不可能であることをユーザに通知するためのエラーメッセージの表示を制御し、処理が終了される。
ステップS43において、ダウンロード可能なファイルの一覧に対応する情報を受信したと判断された場合、ステップS45において、データ取得部33は、サーバ3から送信され、インターネットインタフェース25により受信されたダウンロード可能なディスクベースのファイルの一覧に対応する情報を、メニュー画面表示制御部31に供給する。メニュー画面表示制御部31は、ダウンロード可能なファイルの一覧から、ユーザが所望のものを選択することができるようになされているメニュー画面を表示装置に表示させる。
ステップS46において、操作入力取得部32は、メニュー画面表示制御部31の処理により表示が制御されているメニュー画面のボタンまたはアイコンなどがユーザにより操作され、追加したい項目が選択されたか否かを判定する。ステップS46において、追加したい項目が選択されていないと判断された場合、選択されたと判断されるまで、ステップS46の処理が繰り返される。
ステップS46において、追加したい項目が選択されたと判断された場合、ステップS47において、操作入力取得部32は、ユーザにより選択されたアップデートの内容を表す情報を、データ取得部33に供給する。データ取得部33は、インターネットインタフェース25を制御し、要求するファイルを示す情報をサーバ3に送信させ、ユーザが選択したディスクベースのファイルのダウンロードを要求する。
ステップS48において、データ取得部33は、インターネットインタフェース25を制御し、サーバ3によりダウンロードファイルとして用意されるディスクベースのファイル群をダウンロードさせ、ディスクベースのファイル群がダウンロードされたことを、ローカルストレージディレクトリ管理部34に通知する。
ステップS49において、ローカルストレージディレクトリ管理部34は、ダウンロードされたファイルのManifest()に含まれるauthor_idとdisc_idとに基づいて、それらのIDで識別されるディレクトリをローカルストレージ24に作成し、ダウンロードされたディスクベースのデータを展開する。
ステップS50において、図32を用いて説明したバインディング処理1が実行され、処理が終了される。
このような処理により、サーバ3からアップデートファイルがディスクベースでダウンロードされて、ローカルストレージ24に記録させ、光ディスク11に記録されているコンテンツのアップデートファイルとして扱われるようにすることができる。
すなわち、このような処理により、例えば、映画などのコンテンツが記録された光ディスク11を購入したユーザが、光ディスク11に予め記録されていない言語の字幕を表示させるために必要なファイルや、ボーナストラックを視聴するために必要なファイルなどをディスクベースで取得して、ローカルストレージ24に記憶させるとともに、光ディスク11に記録されているデータとローカルストレージ24に記憶されているデータとを、再生処理などを実行するアプリケーションプログラムが区別しないで取り扱うことができ、物理的なデータの記憶をユーザまたはアプリケーションプログラムから隠蔽することができるような仮想ファイルシステムを構築させることができる。
また、このようなディスクベースのアップデートファイルのダウンロードも、ファイルベースでダウンロードが行われる場合と同様に、有料で行うことができるものであってもよいし、無料で行うことができるものであってもよい。
また、図31においては、ユーザによってファイルベースのダウンロードが指令された場合の処理を説明し、図33においては、ユーザによってディスクベースのダウンロードが指令された場合の処理を説明したが、例えば、ユーザは、ファイルベースとディスクベースとを区別せずにファイルのダウンロード開始の指示を行うことができるようにしても良いことは言うまでもない。すなわち、サーバ3からダウンロードされるデータの形式がファイルベースであるかディスクベースであるかによって、ローカルストレージディレクトリ管理部34によるローカルディスク24へのダウンロードされたデータの展開方法を変更することができるようにしても良い。
次に、図34のフローチャートを参照して、ファイルベースの削除処理について説明する。
ステップS71において、コントローラ21の操作入力取得部32は、操作入力部29から供給される信号を基に、ユーザから、ファイルベース、すなわち、disc_idで示されるディレクトリに含まれるファイル単位の削除処理を開始する指令を受けたか否かを判断する。ステップS71において、ファイルベースの削除処理を開始する指令を受けていないと判断された場合、ファイルの削除処理を開始する指令を受けたと判断されるまで、ステップS71の処理が繰り返される。
ステップS71において、ファイルベースの削除処理を開始する指令を受けたと判断された場合、ステップS72において、コントローラ21のローカルストレージディレクトリ管理部34は、データ取得部33を制御し、インターネットインタフェース25およびネットワーク2を介してサーバ3にアクセスし、現在の仮想ファイルシステムの状態を示す情報、すなわち、対応するManifest()セクションのManifest_idを送信する。
ステップS73において、データ取得部33は、インターネットインタフェース25を制御し、ネットワーク2を介してサーバ3から、可能な更新、すなわち、削除可能な項目の一覧に対応する情報を受信したか否かを判断する。
ステップS73において、可能な更新の一覧に対応する情報を受信できなかったと判断された場合、ステップS74において、メニュー画面表示制御部31は、ファイルの削除処理が不可能であることをユーザに通知するためのエラーメッセージの表示を制御し、処理が終了される。
ステップS73において、可能な更新の一覧に対応する情報を受信したと判断された場合、ステップS75において、データ取得部33は、サーバ3から送信され、インターネットインタフェース25により受信された可能な更新の一覧に対応する情報を、メニュー画面表示制御部31に供給する。メニュー画面表示制御部31は、可能な更新の一覧から、ユーザが所望のものを選択することができるようになされているメニュー画面を表示装置に表示させる。
ステップS76において、操作入力取得部32は、メニュー画面表示制御部31の処理により表示が制御されているメニュー画面のボタンまたはアイコンなどがユーザにより操作され、削除したい項目(内容)が選択されたか否かを判定する。ステップS76において、削除したい項目が選択されていないと判断された場合、選択されたと判断されるまで、ステップS76の処理が繰り返される。
ステップS76において、削除したい項目が選択されたと判断された場合、ステップS77において、操作入力取得部32は、ユーザにより選択された削除したい項目を表す情報を、ローカルディレクトリ管理部34に供給する。ローカルディレクトリ管理部34は、指定されたファイルを、ローカルストレージ24から削除する。
ステップS78において、ファイルシステムマージ処理部36は、ステップS77において実行されたファイルの削除処理により、仮想ファイルシステムにおけるファイルのリンク構造に不具合が発生するか否かを判断する。ステップS78において、仮想ファイルシステムにおけるファイルのリンク構造に不具合が発生しないと判断された場合、処理は、後述するステップS81に進む。
ステップS78において、仮想ファイルシステムにおけるファイルのリンク構造に不具合が発生すると判断された場合、ステップS79において、ファイルシステムマージ処理部36は、不具合を解消するために必要なデータファイル(場合によっては、フォルダまたはディレクトリ)を抽出し、データ取得部33に供給する。データ取得部33は、インターネットインタフェース25を制御し、要求するファイルを示す情報をサーバ3に送信させ、ユーザが選択したファイルのダウンロードを要求する。そして、データ取得部33は、インターネットインタフェース25を制御し、サーバ3によりダウンロードファイルとして用意される、服愛の解消のために必要なファイルをダウンロードし、これらのファイルがダウンロードされたことを、ローカルストレージディレクトリ管理部34に通知する。
ステップS80において、ローカルストレージディレクトリ管理部34は、ダウンロードされたファイルのManifest()に含まれるauthor_idとdisc_idとに基づいて、それらのIDで識別されるディレクトリがローカルストレージ24に既に存在するか否かを判断して、対応するディレクトリが既に存在する場合は、そのディレクトリにダウンロードされたデータファイルを展開し、対応するディレクトリが存在しない場合、author_idとdisc_idで指定される新たなディレクトリをローカルストレージ24に作成し、ダウンロードされたデータファイルを展開する。
ステップS78において、仮想ファイルシステムにおけるファイルのリンク構造に不具合が発生しないと判断された場合、または、ステップS80の処理の終了後、ステップS81において、ファイルシステムマージ処理部36は、ステップS77において実行されたファイルの削除処理により不必要となったファイル、例えば、仮想ファイルシステムにおいて、いずれのPlayListによっても再生されない(全てのPlayListによって指定されない)ファイルなどが削除される設定であるか否かを判断する。ステップS81において、不必要となったファイルは削除されずに残される設定であると判断された場合、処理は、後述するステップS83に進む。
ステップS81において、不必要となったファイルは削除される設定であると判断された場合、ステップS82において、ファイルシステムマージ処理部36は、不必要となったファイルを抽出し、このような不必要なファイルを削除することをローカルストレージディレクトリ管理部34に指令する。ローカルストレージディレクトリ管理部34は、ファイルシステムマージ処理部36の指令に基づいて、ローカルストレージ24に記録されている不必要なファイルを削除する。
ステップS81において、不必要となったファイルは削除されずに残される設定であると判断された場合、または、ステップS82の処理の終了後、ステップS83において、図32を用いて説明したバインディング処理1が実行され、処理が終了される。
このような処理により、サーバ3からダウンロードされて、ローカルストレージ24に記録されたアップデートファイルを、ユーザの操作入力に基づいて、ファイルベース、すなわち、disc_idで示されるディレクトリに含まれるファイル単位で削除することができる。
次に、図35のフローチャートを参照して、ディスクベースの削除処理について説明する。
ステップS111において、コントローラ21の操作入力取得部32は、操作入力部29から供給される信号を基に、ユーザから、ディスクベース、すなわち、disc_idで示されるディレクトリに含まれる全てのファイルの削除処理を開始する指令を受けたか否かを判断する。ステップS111において、ディスクベースの削除処理を開始する指令を受けていないと判断された場合、ディスクベースの削除処理を開始する指令を受けたと判断されるまで、ステップS111の処理が繰り返される。
ステップS111において、ディスクベースの削除処理を開始する指令を受けたと判断された場合、ステップS112において、ファイルシステムマージ処理部36は、削除される部分に対応するManifestファイル、例えば、現在再生装置1に装着されている光ディスク11のauthor_idおよびdisc_idに対応するManifestファイルを抽出し、ローカルストレージディレクトリ管理部34に、対応するManifestファイルを読み出させる。
ステップS113において、ローカルストレージディレクトリ管理部34は、読み出されたManifestファイルを基に、このManifestファイルに関連付けられたファイルを、ローカルストレージ24から削除する。
ステップS114において、ローカルストレージディレクトリ管理部34は、削除された部分に対応するManifestファイルを、ローカルストレージ24から削除する。
そして、ステップS115において、図32を用いて説明したバインディング処理1が実行され、処理が終了される。
すなわち、disc_idで示されるディレクトリに含まれるファイル全体が削除され、削除された部分に対応するManifestファイルも削除されるので、バインディング処理において、ファイルシステムマージ処理部36は、Manifestファイルが見つからないため、0個のディレクトリおよび0個のファイルをバインドして(すなわち、何もバインドせずに)、バインド処理を終了し、結果的には、光ディスク11上のディレクトリ/ファイル構造が、そのまま、仮想ファイルシステムとして管理されるものとなる。
このような処理により、サーバ3からダウンロードされて、ローカルストレージ24に記録されたアップデートファイルを、disc_idで示されるディレクトリに含まれるファイル全体として削除することができる。
なお、ディスクベースでファイルを削除する場合においても、ファイルの追加、または、ファイルベースの削除における場合と同様にして、サーバ3に現在の仮想ディスク(仮想ファイルシステム)の状況を示す情報を送信し、サーバ3から、可能な変更を示す情報を得て、これを基に削除処理を行うようにしても良い。
次に、図36のフローチャートを参照して、再生処理およびファイルシステム構成処理について説明する。ここでは、バインディングの方式が、スタティックバインディングである場合について説明する。
ステップS141において、光ディスクディレクトリ管理部35は、光ディスク11が装着されたか否かを判断する。ステップS141において、光ディスク11が装着されていないと判断された場合、光ディスク11が装着されたと判断されるまで、ステップS141の処理が繰り返される。ステップS141において、光ディスク11が装着されていると判断された場合、光ディスクディレクトリ管理部35は、光ディスク11からauthor_idとDisc_idを読み出し、読み出したauthor_idとDisc_idをローカルストレージディレクトリ管理部34およびファイルシステムマージ処理部36に出力し、処理は、ステップS142に進み、図32を用いて説明したバインディング処理1が実行される。
ステップS143において、再生制御部37は、操作入力取得部32から供給されるユーザの操作入力を基に、ユーザから、コンテンツの再生を指令する操作入力を受けたか否かを判断する。ステップS143において、コンテンツの再生を指令する操作入力を受けなかったと判断された場合、処理は、後述するステップS148に進む。
ステップS143において、コンテンツの再生を指令する操作入力を受けたと判断された場合、ステップS144において、再生制御部37は、ローカルストレージディレクトリ管理部34および光ディスクディレクトリ管理部35を制御して、ナビゲーションプログラムが再生区間として指定するPlayListとSubPlayItemを取得し、取得したPlayListとSubPlayItemが参照するストリームファイル(AVファイル、オーディオファイル、テキスト字幕ファイルなど)を読み出させて、デコーダ26に供給させる。ここでは、PlayListやSubPlayItemにより表されるタイムスタンプがClip informationによりアドレスに変換され、AVストリームなどに対するアクセスが行われる。
ステップS145において、再生制御部37は、デコーダ26を制御して、PlayItemにより指定されるコンテンツを再生させる。
ステップS146において、操作入力取得部32は、再生タイトル(再生されるコンテンツ)の切り替えを指令する操作入力を受けたか否かを判断する。ステップS146において、再生タイトルの変更を指令する操作入力を受けていないと判断された場合、処理は、後述するステップS148に進む。
ステップS146において、再生タイトルの変更を指令する操作入力を受けたと判断された場合、操作入力取得部32は、ユーザの操作入力に対応する信号を、光ディスクディレクトリ管理部35に供給し、光ディスクディレクトリ管理部35は、光ディスク11からauthor_idとdisc_idを読み出し、読み出したauthor_idとdisc_idをローカルストレージディレクトリ管理部34に出力し、処理は、ステップS147に進み、図32を用いて説明したバインディング処理1が実行される。ステップS147の処理の終了後、処理は、ステップS144に戻り、それ以降の処理が繰り返される。
ステップS143において、コンテンツの再生を指令する操作入力を受けなかったと判断された場合、または、ステップS146において、再生タイトルの変更を指令する操作入力を受けていないと判断された場合、ステップS148において、操作入力取得部32は、ユーザから、ファイルの追加または削除が指令されたか否かを判断する。
ステップS148において、ファイルの追加または削除が指令されたと判断された場合、ステップS149において、データ取得部33、または、ローカルストレージディレクトリ管理部34などは、例えば、図31、および、図33乃至図35を用いて説明した様にして、ファイルを追加または削除する処理を実行する。
ステップS148において、ファイルの追加または削除が指令されていないと判断された場合、または、ステップS149の処理の終了後、ステップS150において、操作入力取得部32は、仮想ファイルシステムの更新が指令されたか否かを判断する。
ステップS150において、仮想ファイルシステムの更新が指令されたと判断された場合、例えば、仮想ファイルシステムを更新するために定義されたAPI(例えば、update())が呼び出され、ステップS151において、図32を用いて説明したバインディング処理1が実行される。
ステップS150において、仮想ファイルシステムの更新が指令されていないと判断された場合、または、ステップS151の処理の終了後、ステップS152において、操作入力取得部32は、再生装置1の処理の終了(例えば、アプリケーションの終了や、再生装置1の電源のオフ)が指令されたか否かを判断する。
ステップS152において、再生装置1の処理の終了が指令されていないと判断された場合、処理は、ステップS143に戻り、それ以降の処理が繰り返される。ステップS152において、再生装置1の処理の終了が指令されたと判断された場合、処理が終了される。
このような処理により、予め光ディスク11に記録されているデータ、および、サーバ3からダウンロードされ、ローカルストレージ24に記憶されているデータが、所定のタイミングでバインディングされて仮想ファイルシステムが構築され、仮想ファイルシステムを基に、コンテンツが再生される。
以上説明した処理により、光ディスク11に記録されているコンテンツのアップデートファイルをダウンロードして、再生装置1のローカルストレージ24に記憶しておき、光ディスク11に記録されているコンテンツファイルとローカルストレージ24に記憶されているアップデートのファイルを、容易に扱うことができる。
具体的には、再生装置1のシステムが持つネイティブなファイルシステム(光ディスク11またはローカルストレージ24に実際に記録されているデータのファイルシステム)の上位レイヤとして、仮想ファイルシステムが定義される。そして、光ディスク11とローカルストレージ24に実際に記録されているデータのファイルシステムがマージされて、仮想ファイルシステムが生成される。そのとき、ダウンロードされるデータのメタデータであるManifestファイルには、コンテンツ作成元を一意に識別するための識別子であるauthor_idと、author_idにより特定されたコンテンツ作成元に対して、光ディスク11を一意に識別するための識別子であるdisc_idとが記述される。
ローカルストレージ24のディスク領域は、コンテンツの配給元(コンテンツオーサ)ごとに分割されたディレクトリ構造を有し、author_id直下のディレクトリであるdisc_id以下は、コンテンツオーサにより、フレキシブルなファイル/ディレクトリ構造を構成することができる。ローカルストレージ24に記憶されるデータが、ローカルストレージ24のディスク領域のどこに配置されるか、すなわち、ダウンロードされるファイルのファイル/ディレクトリ構造は、ダウンロードされるデータに含まれるManifestデータのsrc_file_nameフィールドに、パス名称として記述される。
これに対して、アプリケーションからアクセス可能な仮想ディスクのディレクトリ/ファイル構造は、光ディスク11のディレクトリ/ファイル構造に従うようになされている。すなわち、ダウンロードされるデータに含まれるManifestデータのdst_file_nameフィールドには、実際にはローカルストレージ24に記憶されるファイルの仮想ディスクにおけるバインド先を一義に指定できるパス名称が指定される。
このようにすることにより、ローカルストレージ24のディレクトリ/ファイル構造は、再生装置1において実行されるアプリケーションプログラム、または、ユーザから隠蔽される。
また、ローカルストレージ24に記録されているファイルの一部を削除することも可能である。ファイルの一部が削除された後、所定のタイミングで、再度バインディング処理が実行されて、新たな仮想ファイルシステムが生成される。また、ファイルが削除されたことにより、仮想ファイルシステムにおけるファイルのリンク構造に不具合が発生する場合、不具合の解消に必要なファイルを抽出し、必要なファイルを、サーバ3からダウンロードさせるようにすることができる。
また、上述した処理においては、サーバ3からのファイルのダウンロードは、ユーザによる指令に基づいて行われるものとして説明したが、再生装置1に光ディスク11が装着されると、直ちにサーバ3にアクセスし、必要に応じてファイルのダウンロードを行うことができるようにすることも可能である。
例えば、図13を用いて説明した様に、光ディスク11に記録されているIndexファイル(Index.bdmv)には、光ディスク11を再生するメニューに関する情報が含まれている。再生装置1は、光ディスク11に記録されているIndexファイルに基づいて、例えば、光ディスク11のコンテンツを全て再生する、特定のチャプタのみ再生する、繰り返し再生する、初期メニューを表示するなどの内容の項目を含む再生メニュー画面を、表示装置に表示させる。Indexファイルには各項目が選択されたときに実行するMovieObjectを設定することができ、ユーザにより再生メニュー画面から1つの項目が選択された場合、再生装置1はIndexファイルに設定されているMovieObjectのコマンドを実行する。
Indexファイル(Index.bdmv)のシンタックスを、図37に示す。
Type_indicatorは、ISO646に基づいて符号化された"INDX"の値が記述されるフィールドである。
version_numberは、Index.bdmvのバージョンナンバーを示す4文字の文字列であり、ISO646に基づいて符号化された"0089"の値が記述される。
Indexes_start_addressは、Indexes()ブロックのスタートアドレスが記載されるフィールドである。
AppInfoBDMV()には、この光ディスク11の供給元を示す、個別の識別子などが記載されている。
Indexes()には、例えば、メニューを読み出したり、タイトルを検索したり、所定のタイトルにジャンプしたり、または、光ディスク1が再生装置に装着された場合に自動的に起動するなどの処理を実行するアプリケーション(MovieObject)とのリンクが記載されている。Indexes()のシンタックスについては、図38を用いて後述する。
Padding_wordは、Index.bdmvのシンタックスに基づいて挿入されるものであり、0または正の整数で表される。
Indexes()のシンタックスを、図38に示す。
lengthは、Indexes()に何バイトの情報が記載されているかを表すフィールドである。
FirstPlaybackは、光ディスク11が再生装置1に装着されたときに最初に自動的に実行されるMovie Objectに関する情報が含まれているデータブロックである。
FirstPlayback_mobj_id_refは、最初に実行されるMovie Objectのmobj_idの値を指定するためのフィールドである。mobj_idは、Movie Objectがそれぞれ固有に与えられているIDである。また、この光ディスク11において、光ディスク11が再生装置1に装着されたときに自動的に実行されるMovie Objectが設定されない場合、すなわち、光ディスク11が再生装置1に装着されただけでは、アプリケーションはいずれも実行されず、ユーザによる指令を受けて、いずれかのアプリケーションが実行されるようになされている場合、このフィールドには、"0Xffff"が記載される。
TopMenu()は、ユーザがメニュー画面を表示させる場合などに呼び出されるTopMenuのMovie Objectに関する情報が含まれているデータブロックである。
TopMenu_mobj_id_refは、TopMenuのMovie Objectのmobj_idの値を指定するためのフィールドである。また、この光ディスク11において、TopMenuが設定されない場合、このフィールドには、"0xFFFF"が記載される。
number_of_Titlesは、Indexes()に記載されているタイトルの数を表すフィールドである。
Title[title_id]()は、title_idによって固有に区別されているそれぞれのタイトルに関する情報が記載されるブロックである。title_idは0から割り当てられる。
Title_playback_type[title_id]は、そのtitle_idによって指定されるタイトルの再生タイプを示す情報であり、例えば、そのタイトルが動画と音声によるコンテンツである場合、PlayListに基づいた再生処理が実行される。
Title_access_type[title_id]は、そのtitle_idによって指定されるタイトルが、Title_Searchを用いて再生することが許可されているか否かを示す情報である。
Title_mobj_id_ref[title_id]は、そのtitle_idによって指定されるタイトルがエントリされているMovie Objectのmobj_idの値を指定するためのフィールドである。
図37および図38を用いて説明したIndexファイル(Index.bdmv)のFirstPlaybackにおいて、サーバ3へアクセスし、現在の仮想ファイルシステムの状態を示す情報を送信する処理を実行するアプリケーションが指定されていた場合、再生装置1は、光ディスク11が装着されると、直ちにサーバ3にアクセスし、自分自身の仮想ファイルシステムの状況を示す情報をサーバ3に送信し、必要に応じてファイルのダウンロードを行う。
図39は、サーバ3の構成を示すブロック図である。
CPU(Central Processing Unit)211は、ROM(Read Only Memory)212に記憶されているプログラム、または記憶部218からRAM(Random Access Memory)213にロードされたプログラムにしたがって、各種の処理を実行する。RAM213にはまた、CPU211が各種の処理を実行する上において必要なデータなども適宜記憶される。
CPU211、ROM212、およびRAM213は、バス214を介して相互に接続されている。このバス214にはまた、入出力インタフェース215も接続されている。
入出力インタフェース215には、キーボード、マウスなどよりなる入力部216、ディスプレイやスピーカなどよりなる出力部217、ハードディスクなどより構成される記憶部218、モデム、ターミナルアダプタなどより構成される通信部219が接続されている。通信部219は、インターネットを含むネットワーク2を介して、再生装置1との通信処理を行う。
入出力インタフェース215にはまた、必要に応じてドライブ220が接続され、磁気ディスク231、光ディスク232、光磁気ディスク233、もしくは、半導体メモリ234などが適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部218にインストールされる。
図40は、サーバ3のCPU211が所定のプログラムを実行することによって実現可能な機能を示すブロック図である。なお、ここでは、サーバ3はCPU211が所定のプログラムを実行することによって図40を用いて説明する機能を実現するものとして説明するが、サーバ3は、図40を用いて説明する機能を、ハードウェアによって実現するようにしても良い。
仮想ファイルシステム情報取得部251は、再生装置1から、ネットワーク2を介して供給された、再生装置1の現在の仮想ファイルシステムの状態を示す情報を取得し、ダウンロードファイル判断部252に供給する。
ダウンロードファイル判断部252は、仮想ファイルシステム情報取得部251から供給された、再生装置1の現在の仮想ファイルシステムの状態を示す情報を基に、スケジュール管理部253によるスケジュールの管理に基づいて、再生装置1が現在ダウンロード可能なファイルを選択して、その一覧を生成し、制御情報送受信制御部256に供給し、ネットワーク2を介して、再生装置1に供給させる。ダウンロードファイル判断部252は、また、制御情報送受信制御部256が、ネットワーク2を介して再生装置1から取得した、ダウンロードを希望するファイルを指定する情報の供給を受け、コンテンツデータベース254から、ダウンロードするコンテンツデータを読み出したり、マニフェストファイルデータベース255から、ダウンロードするマニフェストファイルを読み出して、ファイル送信部257に供給し、ネットワーク2を介して、再生装置1に供給させる。
スケジュール管理部253は、ダウンロードファイル判断部252による、再生装置1へダウンロード可能なコンテンツの選択に用いられるスケジュールを管理するものである。サーバ3は、再生装置1へダウンロード可能なコンテンツの選択を時間的に管理することにより、例えば、再生装置1において再生される広告を更新することなどができる。例えば、スケジュール管理部253は、映画Aのコンテンツのダウンロードとともに、何月何日までは映画Bの予告をダウンロードさせるが、何月何日以降は映画Bの予告のダウンロードを禁止したり、または、別の映画Cの予告をダウンロードさせるようにするために、コンテンツごとにダウンロードの可否のスケジュールを管理する。
また、例えば、スケジュール管理部253は、コマーシャルフィルムを季節に合致したものとしたり、所定のキャンペーン期間のみに特別なコンテンツのダウンロードを可能なようにするために、コンテンツごとにダウンロードの可否のスケジュールを管理することができる。更に、スケジュール管理部253は、例えば、所定の日時以降、または、所定の期間のみに更新用のマニフェストファイルを再生装置1にダウンロード可能なようにするために、マニフェストファイルごとにダウンロードの可否のスケジュールを管理することができる。これにより、再生装置1において、認識可能なファイルを変更させることが可能となる。
ダウンロード可否のスケジュールは、例えば、コンテンツやマニフェストファイルを固有に識別可能なIDと、ダウンロード開始日またはダウンロード可能期間などをテーブル情報として管理するようにしても良いし、例えば、データベースを構築するなど、その他の方法を用いて管理するようにしても良い。また、所定のコンテンツに対して、付随してダウンロードされるコンテンツ(例えば、CM)や、付随してダウンロードされるマニフェストファイルが時間的に管理される場合には、ダウンロード可否のスケジュールは、例えば、コンテンツを固有に識別可能なIDと、それに対して付随してダウンロードされるコンテンツやマニフェストファイルを固有に識別可能なIDと、それらの、付随してダウンロードされるファイルのダウンロード開始日またはダウンロード可能期間などをテーブル情報として管理するようにしても良いし、例えば、データベースを構築するなど、その他の方法を用いて管理するようにしても良い。
コンテンツデータベース254には、サーバ3から再生装置1へダウンロードされるコンテンツデータが記憶されている。マニフェストファイルデータベース255には、コンテンツとともに、サーバ3から再生装置1へダウンロードされるマニフェストファイルが記憶されている。
制御情報送受信制御部256は、サーバ3と再生装置1とのネットワーク2を介した制御情報の授受を制御するものである。制御情報送受信制御部256は、具体的には、例えば、ダウンロードファイル判断部252から供給されたダウンロード可能なコンテンツの一覧を示す情報の再生装置1への送信を制御したり、再生装置1からのダウンロードを希望するファイルを示す情報の受信を制御して、ダウンロードファイル判断部252に供給する。ファイル送信部257は、ダウンロードファイル判断部252から供給されたダウンロードされるファイルの再生装置1への送信を制御する。
次に、図41のアローチャートを参照して、再生装置1が、光ディスク11が装着されると直ちにサーバ3にアクセスし、必要に応じてファイルのダウンロードを行う場合の、再生装置1およびサーバ3の処理について説明する。
ステップS201において、再生装置1の光ディスクドライブ22は、光ディスク11が装着されたか否かを判断する。ステップS201において、光ディスク11が装着されていないと判断された場合、光ディスク11が装着されたと判断されるまで、ステップS201の処理が繰り返される
ステップS201において、光ディスク11が装着されたと判断された場合、ステップS202において、コントローラ21は、光ディスクドライブ22を制御して、装着された光ディスク11の所定の領域のデータ、すなわち、上述したIndexes()のFirstPlayback()に記載されているデータをロードさせて、メモリ23に展開させ、FirstPlayback()において指定されているアプリケーションを読み出して起動する。FirstPlayback()に記載されているデータによって指定されているアプリケーションは、ここでは、サーバ3にアクセスし、必要に応じてファイルのダウンロードを行うための処理を実行するアプリケーションである。
ステップS203において、コントローラ21のローカルストレージディレクトリ管理部34は、データ取得部33を制御し、インターネットインタフェース25およびネットワーク2を介してサーバ3にアクセスし、現在の仮想ファイルシステムの状態を示す情報、例えば、装着された光ディスク11のdisc_idに対応するManifest()セクションのManifest_idを送信する。
ステップS204において、サーバ3の仮想ファイルシステム情報取得部251は、ネットワーク2を介して、再生装置1から、現在の仮想ファイルシステムの状態を示す情報を受信し、ダウンロードファイル判断部252に供給する。
ステップS205において、ダウンロードファイル判断部252は、供給された現在の仮想ファイルシステムの状態を示す情報を参照し、再生装置1に対してファイルの更新が可能であるか否かを判断する。ステップS205において、ファイルの更新が可能ではないと判断された場合、処理が終了される。
テップS205において、ファイルの更新が可能であると判断された場合、ステップS206において、ダウンロードファイル判断部252は、スケジュール管理部253により管理されているスケジュールを参照し、再生装置1において更新が必要なコンテンツがあるか否かを判断する。スケジュール管理部253により、再生装置1へダウンロード可能なコンテンツの選択に用いられるスケジュールが管理されている。
ステップS206において、更新が必要なコンテンツがないと判断された場合、ステップS207において、サーバ3のダウンロードファイル判断部252は、ダウンロード可能なファイルがないことを再生装置1に通知するための情報を、制御情報送受信制御部256に供給する。制御情報送受信制御部256は、ネットワーク2を介して、ダウンロード可能なファイルがないことを通知するための情報を再生装置1に送信する。
ステップS208において、再生装置1のコントローラ21のデータ取得部33は、ネットワーク2を介して、サーバ3から、ダウンロード可能なファイルがないことの通知を受け、メニュー画面表示制御部31に供給する。メニュー画面表示制御部31は、メッセージを表示することなどにより、今回ダウンロード可能なファイルがないことをユーザに提示する。この後、再生装置1は、ユーザの操作入力待ち状態になる。
ステップS206において、更新が必要なコンテンツがあると判断された場合、ステップS209において、サーバ3のダウンロードファイル判断部252は、ダウンロード可能なファイルの一覧に対応する情報を生成し、制御情報送受信制御部256に供給する。制御情報送受信制御部256は、ネットワーク2を介して、ダウンロード可能なファイルの一覧に対応する情報を再生装置1に送信する。
ステップS210において、再生装置1のコントローラ21のデータ取得部33は、ネットワーク2を介して、サーバ3から、ダウンロード可能なファイルの一覧に対応する情報を受信し、メニュー画面表示制御部31に供給する。メニュー画面表示制御部31は、ダウンロード可能なファイルの一覧から、ユーザが所望のものを選択することができるようになされているメニュー画面を表示装置に表示させる。
ステップS211において、再生装置1のコントローラ21の操作入力取得部32は、ユーザから、追加したいコンテンツの内容の指令を受けたか否かを判断する。ステップS211において、指令を受けていないと判断された場合、指令を受けたと判断されるまで、ステップS211の処理が繰り返される。
ステップS211において、指令を受けたと判断された場合、ステップS212において、操作入力取得部32は、ユーザにより選択されたアップデートの内容を表す情報を、データ取得部33に供給する。データ取得部33は、インターネットインタフェース25を制御し、要求するファイルを示す情報をサーバ3に送信させ、ユーザが選択したファイルのダウンロードを要求する。
ステップS213において、サーバ3の制御情報送受信制御部256は、再生装置1からネットワーク2を介して送信された、ダウンロードを要求するファイルを示す信号を受信し、ダウンロードファイル判断部252に供給する。
ステップS214において、ダウンロードファイル判断部252は、コンテンツデータベース254またはマニフェストファイルデータベース255から、要求されたファイルを読み出し、ファイル送信部257に供給する。ファイル送信部257は、要求されたファイルを、ネットワーク2を介して、再生装置1に送信する。
ステップS215において、再生装置1のコントローラ21のデータ取得部33は、インターネットインタフェース25を制御し、サーバ3によりダウンロードファイルとして用意される、PlayListファイル、ClipInformationファイル、ClipAVストリームファイル、オーディオファイル、テキスト字幕ストリームファイル、または、フォントファイルなどをダウンロードさせ、これらのファイルがダウンロードされたことを、ローカルストレージディレクトリ管理部34に通知する。
ステップS216において、ローカルストレージディレクトリ管理部34は、ダウンロードされたファイルのManifest()に含まれるauthor_idとdisc_idとに基づいて、それらのIDで識別されるディレクトリがローカルストレージ24に既に存在するか否かを判断して、対応するディレクトリが既に存在する場合は、そのディレクトリにダウンロードされたデータファイルを展開し、対応するディレクトリが存在しない場合、author_idとdisc_idで指定される新たなディレクトリをローカルストレージ24に作成し、ダウンロードされたデータファイルを展開する。
ステップS217において、図32を用いて説明したバインディング処理1が実行され、処理が終了される。
このように、Indexファイル(Index.bdmv)のFirstPlaybackにおいて、サーバ3へアクセスし、現在の仮想ファイルシステムの状態を示す情報を送信する処理を実行するアプリケーションが指定されていた場合、再生装置1は、光ディスク11が装着されると、直ちにサーバ3にアクセスし、自分自身の仮想ファイルシステムの状況を示す情報をサーバ3に送信し、必要に応じてファイルのダウンロードを行うことができる。
また、サーバ3においては、上述したように、再生装置1へダウンロード可能なコンテンツの選択に用いられるスケジュールを管理している。これにより、例えば、映画Aのコンテンツのダウンロードとともに、何月何日までは映画Bの予告をダウンロードさせるが、何月何日以降は映画Bの予告のダウンロードを禁止したり、または、別の映画Cの予告をダウンロードさせることができる。また、サーバ3においては、所定の日時以降、または、所定の期間のみに更新用のマニフェストファイルを再生装置1にダウンロード可能なようにするために、コンテンツごと、または、マニフェストファイルごとに、ダウンロードの可否のスケジュールを管理することができる。これにより、再生装置1において、認識可能なファイルを変更させることが可能となる。
上述した処理においては、サーバ3からダウンロードされるコンテンツは、暗号化されていないものとして説明したが、光ディスク11に暗号鍵を記憶させ、再生装置に、新たに復号処理部を設けるか、または、再生装置1のコントローラ21に、暗号鍵を用いた復号処理を実行する機能を含ませ、サーバ3からダウンロードされたコンテンツを、光ディスク11に記録されていた暗号鍵を用いて復号した後、バインディング処理を行うことができるようにしても良い。
復号処理部を有する再生装置の構成例を図42に示す。
再生装置301は、復号処理部311が設けられている以外は、図1を用いて説明した再生装置1と基本的に同様の構成を有している。
復号処理部311は、光ディスクドライブ22によって、光ディスク11から読み出された暗号鍵の供給を受けるとともに、ローカルストレージ24から暗号化されているコンテンツなどのデータファイルの供給を受けて、コントローラ21の制御に基づいて、復号し、メモリ23またはデコーダ26に供給することができるようになされている。
次に、図43のアローチャートを参照して、図42の再生装置301と、サーバ3が実行する処理について説明する。
ステップS251乃至ステップS253において、図41のステップS201乃至ステップS203で再生装置1が実行していた処理と基本的に同様の処理が、再生装置301において実行される。
すなわち、光ディスク11が装着された場合、装着された光ディスク11の所定の領域に記録されているデータがロードされて、FirstPlayback()に記載されている、サーバ3にアクセスし、必要に応じてファイルのダウンロードを行うための処理を実行するアプリケーションが実行されて、現在の仮想ファイルシステムの状態を示す情報、例えば、対応するManifest()セクションのManifest_idがサーバ3に送信される。
ステップS254において、光ディスクドライブ22は、復号処理部22は、光ディスク11に記録されている暗号鍵を読み出して、復号処理部22に供給する。復号処理部22は、供給された暗号鍵を保持する。
ステップS255乃至ステップS266において、図41のステップS204乃至ステップS215で再生装置1およびサーバ3が実行していた処理と基本的に同様の処理が、再生装置301およびサーバ3において実行される。
すなわち、サーバ3は、ネットワーク2を介して、再生装置301から、現在の仮想ファイルシステムの状態を示す情報を受信し、再生装置301においてファイルの更新が可能であるか否かを判断する。そして、ファイルの更新が可能であると判断された場合、スケジュール管理部253により管理されているスケジュールを参照し、再生装置301において更新が必要なコンテンツがあるか否かが判断される。
更新が必要なコンテンツがないと判断された場合、サーバ3は、ダウンロード可能なファイルがないことを通知するための情報を、ネットワーク2を介して、再生装置301に送信する。再生装置301は、ネットワーク2を介して、サーバ3から、ダウンロード可能なファイルがないことの通知を受け、メッセージを表示することなどにより、今回ダウンロード可能なファイルがないことをユーザに提示する。この後、再生装置301は、ユーザの操作入力待ち状態になる。
更新が必要なコンテンツがあると判断された場合、サーバ3は、ダウンロード可能なファイルの一覧に対応する情報を生成し、ネットワーク2を介して、再生装置301に送信する。再生装置301は、ネットワーク2を介して、サーバ3から、ダウンロード可能なファイルの一覧に対応する情報を受信し、ダウンロード可能なファイルの一覧から、ユーザが所望のものを選択することができるようになされているメニュー画面を表示装置に表示させる。
そして、再生装置301は、ユーザから、追加したいコンテンツの内容の指令を受けたか否かを判断し、指令を受けたと判断された場合、ユーザにより選択されたアップデートの内容を表す情報を、サーバ3に送信する。
サーバ3は、再生装置301からネットワーク2を介して送信された、ダウンロードを要求するファイルを示す信号を受信し、コンテンツデータベース254またはマニフェストファイルデータベース255から、要求されたファイルを読み出し、要求されたファイルを、ネットワーク2を介して送信する。
そして、再生装置301は、サーバ3によりダウンロードファイルとして用意される、PlayListファイル、ClipInformationファイル、ClipAVストリームファイル、オーディオファイル、テキスト字幕ストリームファイル、または、フォントファイルなどをダウンロードする。
ステップS267において、再生装置301のコントローラ21のローカルストレージディレクトリ管理部34は、ダウンロードされたファイルは暗号化されているか否かを判断する。
ステップS267において、ダウンロードされたファイルは暗号化されていると判断された場合、ステップS268において、ローカルストレージディレクトリ管理部34は、ダウンロードされたファイルは、復号処理部311に供給されている、光ディスク11に記録されていた暗号鍵で復号可能であるか否かを判断する。
ステップS268において、光ディスク11に記録されていた暗号鍵で復号することができないと判断された場合、ステップS269において、ローカルストレージディレクトリ管理部34は、メニュー画面表示制御部31を制御して、ダウンロードされたファイルを再生することができないことをユーザに通知するためのエラーメッセージを出力させる。
ステップS268において、光ディスク11に記録されていた暗号鍵で復号することができると判断された場合、ステップS270において、ローカルストレージディレクトリ管理部34は、復号処理部311を制御して、ダウンロードされたファイルを復号する。
ステップS267において、ダウンロードされたファイルは暗号化されていないと判断された場合、または、ステップS270の処理の終了後、ステップS271において、ローカルストレージディレクトリ管理部34は、ダウンロードされたファイルのManifest()に含まれるauthor_idとdisc_idとに基づいて、それらのIDで識別されるディレクトリがローカルストレージ24に既に存在するか否かを判断して、対応するディレクトリが既に存在する場合は、そのディレクトリにダウンロードされたデータファイルを展開し、対応するディレクトリが存在しない場合、author_idとdisc_idで指定される新たなディレクトリをローカルストレージ24に作成し、ダウンロードされたデータファイルを展開する。
そして、ステップS272において、図32を用いて説明したバインディング処理1が実行され、処理が終了される。
このようにすることにより、例えば、光ディスク11に、Index.bdmvファイルと暗号鍵しか記録されていなかった場合であっても、光ディスク11が再生装置1に装着されることにより、指定されたファイルがダウンロードされ、装着されている光ディスク11に記録されている暗号鍵を基に復号されて、ローカルストレージ24に展開される(ローカルストレージ24のファイルシステム内に保存される)ので、次回からその光ディスク11が装着された場合、その都度ダウンロード処理や復号処理を行うことなく、以前にダウンロードされて展開されたコンテンツを再生させるようにすることが可能となる。また、光ディスク11に、コンテンツの一部しか記録されていなかった場合であっても、上述した処理を実行させるIndex.bdmvファイルと暗号鍵が記録されていれば、光ディスク11が再生装置1に装着されることにより、残りのコンテンツデータファイルが自動的にダウンロードされて、装着されている光ディスク11に記録されている暗号鍵を基に復号されて、ローカルストレージ24に展開される(ローカルストレージ24のファイルシステム内に保存される)。すなわち、ユーザに配布される光ディスク11に、予め全てのコンテンツデータが記録されていなくても、上述した処理が実行されることにより、ユーザにとっては、全てのコンテンツデータが記録されている光ディスク11が配布された場合と同等に扱われるとともに、不正なコンテンツのダウンロードを防止することができる。
このようにすることにより、コンテンツオーサは、ユーザに対して光ディスク11を配布することによって、光ディスク11の記録容量にかかわらず(光ディスク11に十分な容量がない場合であっても)、容量の大きなコンテンツを提供することが可能である。
また、上述した処理においては、ダウンロードされるファイルパッケージのManifest()セクションのsrc_file_nameのフィールドに、ローカルストレージ24におけるパス名称を指定し、dst_file_nameのフィールドに、仮想ディスクにおける仮想ファイルシステムにおけるパス名称を指定することができるものとして説明したが、src_file_nameのフィールドに、ローカルストレージ24におけるパス名称のみならず、光ディスク11におけるデータのパス名称を指定することができるようにしても良い。
例えば、index.bdmvの記載において、所定のファイルにアクセスすることができないようにすることなどにより、光ディスク11に記録されているファイルのうちの一部を、再生装置1(または再生装置301、以下同様)において実行されるアプリケーションプログラムやユーザから隠蔽するようにしておく。そして、後日、サーバ3から再生装置1に、光ディスク11に対応するManifest_idを有し、src_file_nameのフィールドに、隠蔽されている所定のファイルの光ディスク11におけるデータのパス名称が指定され、dst_file_nameフィールドに、仮想ファイルシステムにおける所定のパス名称が記載されたManifest()セクションをダウンロードさせることにより、再生装置1において実行されるアプリケーションプログラムからは、新たなManifest()セクションがダウンロードされたタイミングで、光ディスク11にはじめから記録されていたファイルを、新たにダウンロードされたのと同様に取り扱わせるようにすることができる。
また、src_file_nameのフィールドに、光ディスク1におけるデータのパス名称が指定され、dst_file_nameフィールドに、仮想ファイルシステムにおける所定のパス名称が記載されたManifest()セクションのダウンロードは、スケジュール管理部253によって管理される、所定の期間内または所定の日時以降に、再生装置1に光ディスク11が装着された場合に実行されるようにしても良いし、再生装置1を用いるユーザが、サーバ3にアクセスして、登録処理を行ったり、課金処理を行うなどの所定の処理を実行した場合に可能になるものとしても良い。
また、src_file_nameのフィールドには、光ディスク11におけるデータのパス名称が指定されているが、対応するdst_file_nameのフィールドが空欄であるManifest()セクションがダウンロードされて上書きされる場合、そのファイルは、再生装置1において実行されるアプリケーションプログラムから参照することができない(すなわち、再生装置1において実行されるアプリケーションプログラムやユーザから、そのファイルの存在を認識することができない)状態に戻る。すなわち、実ファイルは光ディスク11に記憶されているが、dst_file_nameのフィールドを空欄とすることにより、このファイルは仮想ファイルシステムには存在しないものと認識されるので、再生装置1において実行されるアプリケーションプログラムやユーザからは隠蔽することが可能である。
これを利用して、例えば、src_file_nameのフィールドに、光ディスク11におけるデータのパス名称が指定され、dst_file_nameフィールドに、仮想ファイルシステムにおける所定のパス名称が記載されたManifest()セクションをダウンロードさせることにより、光ディスク11に予め記録されている所定のファイルを参照可能としたり、src_file_nameのフィールドに、光ディスク1におけるデータのパス名称が指定され、対応するdst_file_nameのフィールドが空欄であるManifestファイルをダウンロードさせて、Manifest()セクションを上書きさせることにより、参照可能であった所定のファイルを参照不可にすることが可能となる。
このようにすることにより、例えば、複数のボーナストラックを予め光ディスクに記録させておいて、その後、時期ごとに異なるボーナストラックをアプリケーションにより認識させることができるように、src_file_nameフィールドおよびdst_file_nameフィールドが記載されたManifest()セクションを、所定の時期ごとにダウンロードさせて、上書きさせることにより、大容量のデータをたびたびダウンロードさせることなく、時期ごとに異なるボーナストラックが追加または削除されるようなサービスをユーザに提供することが可能となる。
次に、図44のフローチャートを参照して、Manifest()セクションのsrc_file_nameのフィールドに光ディスク11におけるデータのパス名称を指定することが可能な場合に実行される、バインディング処理2について説明する。
ステップS301において、ローカルストレージディレクトリ管理部34は、ローカルストレージ24に記録されているダウンロードされたデータ群から、対応するdisc_idのディレクトリを抽出し、ファイルシステムマージ処理部36に供給する。
ステップS302において、ファイルシステムマージ処理部36は、Manifestファイルのsrc_file_nameおよびdst_file_nameを参照する。
ステップS303において、ファイルシステムマージ処理部36は、Manifestファイルのsrc_file_nameに、光ディスク11内に記録されているデータのパス名称が記載されているか否かを判断する。
ステップS303において、src_file_nameに、光ディスク11内に記録されているデータのパス名称が記載されていると判断された場合、ステップS304において、ファイルシステムマージ処理部36は、光ディスクディレクトリ管理部35に、src_file_nameに記載されている光ディスク11におけるパス名称を供給する。光ディスクディレクトリ管理部35は、src_file_nameの情報を基に、光ディスク11に記録されている所定の情報にアクセスする。
ステップS303において、src_file_nameに、光ディスク11内に記録されているデータのパス名称が記載されていないと判断された場合、または、ステップS304の処理の終了後、ステップS305において、ファイルシステムマージ処理部36は、ステップS302において参照されたsrc_file_nameおよびdst_file_nameを基に、ネイティブなファイルシステムと、仮想ファイルシステムとをバインディングする。
src_file_nameに、光ディスク11内に記録されているデータのパス名称が記載されていない場合、図32を用いて説明したバインディング処理1における場合と同様に、バインディング処理が実行される。そして、src_file_nameに、光ディスク11内に記録されているデータのパス名称が記載されていた場合、ファイルシステムマージ処理部36は、光ディスク11のsrc_file_nameに示されるパスに記録されているファイルを、仮想ディスクにおける仮想ファイルシステムにおいて、dst_file_nameのフィールドに記載されているパスおよびファイル名を有するファイルとして扱うようにバインディングする。
また、dst_file_nameのフィールドになにも記載されていない場合、光ディスク11のsrc_file_nameに示されるパスに記録されているファイルは、仮想ファイルシステムにバインディングされない。
コンテンツオーサは、ユーザに提供する光ディスク11にコンテンツの実ファイルを記録し、光ディスク11単体の再生では、そのコンテンツにアクセスすることができない(コンテンツをアプリケーションおよびユーザから隠蔽する)ようにしておき、ダウンロードされるファイルパッケージのManifest()セクションのsrc_file_nameのフィールドに、光ディスク11におけるパス名称を指定し、dst_file_nameのフィールドに、仮想ディスクにおける仮想ファイルシステムのパス名称を指定することができる。したがって、コンテンツオーサは、再生装置301に装着された光ディスク11に記録されているコンテンツの実ファイルの仮想ファイルシステムにおけるパス名称を、ダウンロードされるファイルパッケージのManifest()セクションの記載によって自由に設定することができる。これにより、光ディスク11にファイルが存在しているにもかかわらず、コンテンツオーサは、ユーザがそのファイルにアクセスすることができるようにしたり、アクセスすることができないようにすることが可能となる。
ところで、アップデートファイルは、上述したように、サーバ3からダウンロードするのみならず、リムーバブルメディア28に記録して配布することができる。このような場合、ドライブ27を介してコントローラ21がリムーバブルメディア28からアップデートファイルを読み込み、ローカルストレージ24に書き込む。このようにすることにより、再生装置1がサーバ3と接続することができない場合(例えば、再生装置1にサーバ3との接続機能がない場合、または、再生装置1がサーバ3と接続できない環境にあった場合など)であっても、データをアップデートすることが可能となる。
このような場合においても、基本的に、アップデートファイルをサーバ3からダウンロードする場合と同様にして、ローカルストレージ24に所定のファイル形式でアップデートファイルが記録され、光ディスク11に記録されているデータとバインディング処理が行われて、仮想ファイルシステムが構築されて、アップデートされたコンテンツが再生されるようになされている。
リムーバブルメディア28に記録されるアップデートファイルのデータ構造は、図45に示されるように、root直下にリムーバブルメディア28を個別に区別することが可能なmedia_idが記載される。そして、media_idに対して、author_idおよびdisc_idで区別される、図14を用いて説明したサーバ3からダウンロードされるデータと同様の構成を有するデータが記載されている。disc_id以下の、Manifestファイルおよびその他のファイルのシンタクスは、上述した、サーバ3からダウンロードされるデータと同様の構成を有している。そして、リムーバブルメディア28に記録されるアップデートファイルには、「others」ディレクトリが用意され、例えば、所定のアプリケーションプログラムや、各種データなどを記載することができるようになされている。
「others」ディレクトリに記録されるアプリケーションプログラムとしては、例えば、リムーバブルメディア28に記録されているアップデートファイルを、ローカルストレージ24に書き込む処理を実行するアプリケーションプログラムなどがある。また、others」ディレクトリには、リムーバブルメディア28に記録されているアップデートファイルを、ローカルストレージ24に書き込む処理を実行するために必要なデータを記録するようにすると好適である。
また、リムーバブルメディア28からアップデートファイルをローカルストレージ24に書き込むための処理は、光ディスク11が再生装置1に装着されたときのみ実行可能なようにしても良いし、光ディスク11が再生装置1に装着されていなくても実行可能なようにしても良い。
すなわち、リムーバブルメディア28からアップデートファイルをローカルストレージ24に書き込むための処理は、光ディスク11に記録されているナビゲーションプログラムがコントローラ21により実行されることにより実現されるものとし、光ディスク11が再生装置1に装着されたときのみ実行可能なようにしても良い。また、リムーバブルメディア28からアップデートファイルをローカルストレージ24に書き込むための処理は、再生装置1において予め用意されている制御プログラムがコントローラ21により実行されるか、リムーバブルメディア28に記録されている(例えば、図45に示される「others」ディレクトリに記録されている)ナビゲーションプログラムと同様の形式のアプリケーションプログラムがコントローラ21により実行されることにより、光ディスク11が再生装置1に装着されていなくても実行可能なようにしても良い。
また、アップデートファイルをサーバ3からダウンロードする場合においては、光ディスク11が再生装置1に装着され、サーバ3に現在の仮想ファイルシステムの状態を示す情報が送信され、アップデートに必要なデータがダウンロードされるようになされていた。しかしながら、アップデートファイルの提供にリムーバブルメディア28が用いられる場合、現在の仮想ファイルシステムの状態によって、供給されるアップデートデータを変更することができない。
したがって、例えば、図46Aに示されるように、既にローカルストレージ24にマニフェストファイルと、このマニフェストファイルに関連付けられたファイル#1とファイル#2とが記録されている状態において、リムーバブルメディア28に記録されている図46Bに示されるファイル#3およびファイル#4を含むアップデートファイルをローカルストレージ24に書き込んだ場合、マニフェストファイルが上書きされる(書き換えられる)ことにより、これ以前にアップデートされたファイル#1とファイル#2がマニフェストファイルにより参照されない状況が発生してしまう。
このような状況の発生をできるだけ防止するために、光ディスク11またはリムーバブルメディア28に、以前アップデートされたファイルが参照されなくなってしまうことのないような、現マニフェストファイルとそれに上書き(置き換え)可能なマニフェストファイルとの組み合わせを示す情報を記録しておくことができる。
例えば、図47に示されるように、manifestファイル#1には、日本語の字幕が対応付けられ、manifestファイル#2には、英語の字幕が対応付けられ、manifestファイル#3には、フランス語の字幕が対応付けられ、manifestファイル#4には、日本語と英語の字幕が対応付けられ、manifestファイル#5には、日本語とフランス語の字幕が対応付けられ、manifestファイル#6には、英語とフランス語の字幕が対応付けられ、manifestファイル#7には、日本語、英語、ドイツ語の字幕が対応付けられ、manifestファイル#8には、日本語、英語、フランス語、ドイツ語の字幕が対応付けられていることが予め分かっており、更に、他のmanifestファイルにも、それぞれ、何の言語の字幕が対応付けられているかが、ファイルの番号によって認識可能であるものとする。
ここで、現在、再生装置1のローカルストレージ24にmanifestファイル#1および対応する日本語字幕のファイルが記録されている場合、manifestファイル#4、manifestファイル#5、manifestファイル#7、または、manifestファイル#8が対応する字幕ストリームファイルとともに記録されているリムーバブルメディア28を用いてデータのアップデートが行われても、日本語字幕は以前と同様にユーザにより選択可能となる。しかしながら、それ以外のmanifestファイルおよび対応する字幕ストリームファイルが記録されているリムーバブルメディア28を用いてデータのアップデートが行われたとき、日本語字幕は書き換えられたマニフェストファイルと関連付けられていないため、ユーザは、このリムーバブルメディア28を用いたアップデートの後、日本語字幕を選択することができなくなってしまう。
そこで、光ディスク11またはリムーバブルメディア28に、図48に示されるようなマニフェストファイルの対応表を記録しておき、再生装置1がリムーバブルメディア28を用いてデータのアップデートを行う場合、再生装置1においては、この対応表を参照して、不都合が発生しないようにマニフェストファイルを書き換えるか、または、ユーザに対して通知を行うようになされる。
具体的には、現在、日本語字幕が関連付けられているmanifestファイル#1がローカルストレージ24に記録されている状態で、リムーバブルメディア28を用いて英語字幕が関連付けられているmanifestファイル#2がアップデートファイルとして用意された場合、このままmanifestファイル#1からmanifestファイル#2に書き換えてしまっては、日本語字幕が使用できなくなってしまうため、再生装置1においては、例えば、ユーザに対して、「このアップデートを行うことにより、英語字幕のみが利用可能となりますがよろしいですか?」などのメッセージを提示することができるようにしてもよいし、また、manifestファイル#1からmanifestファイル#2に書き換えるのではなく、日本語字幕と英語字幕が関連付けられているmanifestファイル#4と同様のマニフェストファイルを生成し、manifestファイル#1に上書きすることができるようにしてもよい。
さらに、再生装置1は、マニフェストファイルの書き換えにより発生する不具合をマニフェストファイルの生成により防止することができない場合、書き換え前のマニフェストファイルを示す情報(サーバ3が、マニフェストファイルを区別可能な情報であれば良く、例えば、Manifest_idであっても、Manifest_idを基に生成されるコード情報であっても、それ以外の情報であっても良い)をユーザに提示するようにしても良い。そして、ユーザは、サーバ3に接続可能な再生装置1もしくはサーバ3に接続可能なパーソナルコンピュータ、PDA、または、携帯型電話機などの情報処理装置を用いて、書き換え前のマニフェストファイルを示す情報をサーバ3に通知し、サーバ3から書き換え前のマニフェストファイルをダウンロードすることにより、再生装置1を少なくとも書き換え前の状態に戻すことが可能となる。
次に、図49のフローチャートを参照して、リムーバブルメディア28を用いたファイルの更新処理1について説明する。リムーバブルメディア28を用いたファイルの更新処理1は、ムーバブルメディア28からアップデートファイルをローカルストレージ24に書き込むための処理が光ディスク11が再生装置1に装着されたときのみ実行可能なようになされている再生装置1において実行される処理である。
ステップS410において、再生装置1に光ディスク11が装着され、光ディスク11に記録されているナビゲーションプログラムが光ディスクドライブ22により読み出されてメモリ23に展開され、コントローラ21によりナビゲーションプログラムが起動される。
ステップS411において、コントローラ21の操作入力取得部32は、ユーザの操作入力を基に、リムーバブルメディア28を用いたファイルの追加が指令されたか否かを判断する。ステップS411において、リムーバブルメディア28を用いたファイルの追加が指令されていないと判断された場合、リムーバブルメディア28を用いたファイルの追加が指令されたと判断されるまで、ステップS411の処理が繰り返される。
ステップS411において、リムーバブルメディア28を用いたファイルの追加が指令されたと判断された場合、ステップS412において、コントローラ21のメニュー画面表示制御部31は、リムーバブルメディア28の装着をユーザに促すためのメッセージなどを出力する。
ステップS413において、データ取得部33は、リムーバブルメディア28がドライブ27に装着されたか否かを判断する。ステップS413において、リムーバブルメディア28が装着されていないと判断された場合、リムーバブルメディアが装着されたと判断されるまで、ステップS413の処理が繰り返される。
ステップS413において、リムーバブルメディア28が装着されたと判断された場合、ステップS414において、データ取得部33は、装着されたリムーバブルメディア28に記録されているデータのうちの所定の部分(例えば、いわゆるヘッダやTOCなどのように、データの構成、データ構造、フォーマット等を再生装置1が判断するためのデータが記録されている部分)を読み込み、装着されたリムーバブルメディア28は再生装置1で再生可能であるか否かを判断する。
ステップS414において、装着されたリムーバブルメディア28は再生装置1で再生可能ではないと判断された場合、処理は、後述するステップS425に進む。
ステップS414において、装着されたリムーバブルメディア28は再生装置1で再生可能であると判断された場合、ステップS415において、データ取得部33は、装着されたリムーバブルメディア28には、再生装置1で実行可能なアプリケーションプログラムが記録されているか否かを判断する。ステップS415において、リムーバブルメディア28には、再生装置1で実行可能なアプリケーションプログラムが記録されていないと判断された場合、処理は、後述するステップS418に進む。
ステップS415において、リムーバブルメディア28には、再生装置1で実行可能なアプリケーションプログラムが記録されていると判断された場合、ステップS416において、コントローラ21は、リムーバブルメディア28に記録されているアプリケーションプログラムをメモリ23に展開して実行する。そして、コントローラ21は、リムーバブルメディア28に記録されているアプリケーションプログラムは、データの追加処理を実行するアプリケーションであるか否かを判断する。ステップS416において、リムーバブルメディア28に記録されているアプリケーションプログラムがデータの追加処理を実行するアプリケーションであると判断された場合、処理は、後述するステップS421に進む。
ステップS416において、リムーバブルメディア28に記録されているアプリケーションプログラムがデータの追加処理を実行するアプリケーションではないと判断された場合、ステップS417において、コントローラ21は、リムーバブルメディア28に記録されているアプリケーションプログラムを実行する。リムーバブルメディア28に記録されているアプリケーションプログラムの処理の終了後、再生装置1においては、再び、光ディスク11に記録されているナビゲーションプログラムがコントローラ21において実行されている状態に戻る。
ステップS415において、リムーバブルメディア28には、再生装置1で実行可能なアプリケーションプログラムが記録されていないと判断された場合、または、ステップS417の処理の終了後、ステップS418において、コントローラ21のデータ取得部33は、装着されたリムーバブルメディア28には、例えば、図45を用いて説明したような追加用のデータが記録されているか否かを判断する。ステップS418において、装着されたリムーバブルメディア28に追加用のデータが記録されていないと判断された場合、処理は、後述するステップS425に進む。
ステップS418において、装着されたリムーバブルメディア28に追加用のデータが記録されていると判断された場合、ステップS419において、データ取得部33は、装着されたリムーバブルメディア28に記録されている追加用のデータを読み込む。
ステップS420において、図50を用いて後述するファイル更新処理1が実行され、処理は、後述するステップS424に進む。
ステップS416において、リムーバブルメディア28に記録されているアプリケーションプログラムがデータの追加処理を実行するアプリケーションであると判断された場合、ステップS421において、リムーバブルメディア28に記録されているアプリケーションプログラムを実行しているコントローラ21は、装着されたリムーバブルメディア28には、例えば、図45を用いて説明したような追加用のデータが記録されているか否かを判断する。ステップS421において、装着されたリムーバブルメディア28に追加用のデータが記録されていないと判断された場合、処理は、後述するステップS425に進む。
ステップS421において、装着されたリムーバブルメディア28に追加用のデータが記録されていると判断された場合、ステップS422において、リムーバブルメディア28に記録されているアプリケーションプログラムを実行しているコントローラ21は、装着されたリムーバブルメディア28に記録されている追加用のデータを読み込む。
ステップS423において、図50を用いて後述するファイル更新処理1が実行される。ステップS423の処理の終了後、すなわち、リムーバブルメディア28に記録されているアプリケーションプログラムの処理の終了後、コントローラ21においては、再び、光ディスク11に記録されているナビゲーションプログラムがコントローラ21において実行されている状態に戻る。
ステップS420またはステップS423の処理の終了後、ステップS424において、図32を用いて説明したバインディング処理が実行され、処理は、ステップS426に進む。
ステップS414において、装着されたリムーバブルメディア28は再生装置1で再生可能ではないと判断された場合、ステップS418において、装着されたリムーバブルメディア28に追加用のデータが記録されていないと判断された場合、または、ステップS421において、装着されたリムーバブルメディア28に追加用のデータが記録されていないと判断された場合、ステップS425において、コントローラ21のメニュー画面表示制御部31は、例えば、「データの追加はできません。リブーバブルメディアを確認してください」等のエラーメッセージなどを出力する。
ステップS424またはステップS425の処理の終了後、ステップS426において、操作入力取得部32は、ナビゲーションプログラムの終了が指令されたか否かを判断する。ステップS426において、ナビゲーションプログラムの終了が指令されていないと判断された場合、処理は、ステップS411に戻り、それ以降の処理が繰り返される。ステップS426において、ナビゲーションプログラムの終了が指令されたと判断された場合、処理が終了される。
このような処理により、光ディスク11に記録されているナビゲーションプログラム、または、リムーバブルメディア28に記録されているアプリケーションプログラムによって、リムーバブルメディア28に記録されているアップデートファイルが読み出されて、ローカルストレージ24に書き込まれる。
次に、図50のフローチャートを参照して、図49のステップS420またはステップS423において実行されるファイル更新処理1について説明する。
なお、図49のステップS423において実行されるファイル更新処理1は、リムーバブルメディア28に記録されているアプリケーションプログラムを実行しているコントローラ21によりデータの追加処理が実行されている状態で実行される。コントローラ21は、リムーバブルメディア28に記録されているアプリケーションプログラムがデータの追加処理を実行するものであった場合、基本的に、図6を用いて説明した場合と同様の機能を有する。したがって、図50のフローチャートにおいては、図6を用いて説明した機能ブロック図を参照して説明する。
ステップS451において、ローカルストレージディレクトリ管理部34は、光ディスクディレクトリ管理部35により管理される光ディスク11、または、データ取得部33によりデータを読み込むことが可能なリムーバブルメディア28に、例えば、図48を用いて説明した様な、マニフェストファイルの対応を示す情報が記載されているか否かを判断する。ステップS451において、マニフェストファイルの対応を示す情報が記載されていないと判断された場合、処理は、後述するステップS456に進む。
ステップS451において、マニフェストファイルの対応を示す情報が記載されていると判断された場合、ステップS452において、ローカルストレージディレクトリ管理部34は、マニフェストファイルの対応を示す情報を基に、リムーバブルメディア28に記録されているアップデートファイルの上書きによって、例えば、図46を用いて説明した様に、以前アップデートされたファイルが利用できなくなってしまうなどの障害が発生するか否かを判断する。ステップS452において、障害が発生しないと判断された場合、処理は、後述するステップS458に進む。
ステップS452において、障害が発生すると判断された場合、ステップS453において、ローカルストレージディレクトリ管理部34は、現在ローカルストレージ24に記録されているマニフェストファイル、図48を用いて説明したマニフェストファイルの対応を示す情報、および、リムーバブルメディア28に記録されているアップデートファイルのマニフェストファイルを基に、障害が発生しないマニフェストファイルを作成する障害回避処理が実行可能であるか否かを判断する。ステップS453において、障害回避処理が実行できないと判断された場合、処理は、後述するステップS456に進む。
ステップS453において、障害回避処理が実行可能であると判断された場合、ステップS454において、ローカルストレージディレクトリ管理部34は、障害回避プログラムを実行し、障害が発生しないマニフェストファイルを作成する。
例えば、現在、ローカルストレージ24に、日本語、英語、ドイツ語の字幕を利用することが可能なmanifestファイル#7とそれぞれの字幕データが記録され、リムーバブルメディア28には、manifestファイル#3およびフランス語の字幕データが記録されている場合、ユーザがフランス語の字幕を追加しようとしてリムーバブルメディア28に記録されているアップデートファイルをローカルストレージに上書きしてしまっては、既に利用可能であった日本語、英語、ドイツ語の字幕を利用することができなくなってしまう(manifestファイル#3は、日本語、英語、ドイツ語の字幕データと関連付けられていない)。この障害を防止するために、ローカルストレージディレクトリ管理部34は、障害回避プログラムを実行し、日本語、英語、フランス語、ドイツ語の字幕データと関連付けられているmanifestファイル#8を作成し、これを、フランス語字幕データとともに、ローカルストレージ24に記録する。
ステップS455において、ローカルストレージディレクトリ管理部34は、作成されたマニフェストファイルを、リムーバブルメディア28に記録されていたマニフェストファイルと置き換え、リムーバブルメディア28の対応するファイルをローカルストレージ24に記憶して、処理は、図49のステップS420に戻ってステップS424に進むか、または、ステップS423に戻ってステップS424に進む。
ステップS451において、マニフェストファイルの対応を示す情報が記載されていないと判断された場合、または、ステップS453において、障害回避処理が実行できないと判断された場合、ステップS456において、メニュー画面表示制御部31は、例えば、「このアップデートを行うことにより、英語字幕のみが利用可能となりますがよろしいですか?」などの警告メッセージをユーザに通知する。更に、メニュー画面表示制御部31は、書き換え前のマニフェストファイルを示す情報(サーバ3が、マニフェストファイルを区別可能な情報であれば良く、例えば、Manifest_idであっても、Manifest_idを基に生成されるコード情報であっても、それ以外の情報であっても良い)をユーザに提示するようにしてもよい。これにより、ユーザは、サーバ3に接続可能な再生装置1またはサーバ3に接続可能なパーソナルコンピュータ、PDA,または、携帯型電話機などの情報処理装置を用いて、書き換え前のマニフェストファイルを示す情報をサーバ3に通知し、サーバ3から書き換え前のマニフェストファイルをダウンロードすることにより、再生装置1を少なくとも書き換え前の状態に戻すことが可能となる。
ステップS457において、操作入力取得部32は、警告メッセージを確認したユーザからの操作入力を基に、ローカルストレージ24へのデータの書き込みが許可されたか否かを判断する。ステップS457において、ローカルストレージ24へのデータの書き込みが許可されなかった場合、処理は、図49のステップS420に戻ってステップS424に進むか、または、ステップS423に戻ってステップS424に進む。
ステップS452において、障害が発生しないと判断された場合、または、ステップS457において、ローカルストレージ24へのデータの書き込みが許可された場合、ステップS458において、ローカルストレージディレクトリ管理部34は、リムーバブルメディア28の対応するファイルをローカルストレージ24に記憶して、処理は、図49のステップS420に戻ってステップS424に進むか、または、ステップS423に戻ってステップS424に進む。
このような処理により、障害回避処理が実行されて、既にアップデートされたファイルとマニフェストファイルとの不整合が発生しないようなマニフェストファイルが生成されてリムーバブルメディア28に記録されていたファイルとともにローカルストレージ24に記録されるか、または、ファイルの上書きによって障害が発生する可能性があることをユーザに通知したり、リムーバブルメディア28に記録されていたファイルの上書きによって障害が発生してしまった場合に、リムーバブルメディア28に記録されていたファイルの上書き前の状態に戻すために利用可能な情報をユーザに提示することが可能となる。
次に、図51のフローチャートを参照して、リムーバブルメディア28を用いたファイルの更新処理2について説明する。リムーバブルメディア28を用いたファイルの更新処理2は、ムーバブルメディア28からアップデートファイルをローカルストレージ24に書き込むための処理が、光ディスク11が再生装置1に装着されていなくても実行可能なようになされている再生装置1において実行される処理である。
ステップS481において、データ取得部33は、リムーバブルメディア28がドライブ27に装着されたか否かを判断する。ステップS481において、リムーバブルメディア28が装着されていないと判断された場合、リムーバブルメディアが装着されたと判断されるまで、ステップS481の処理が繰り返される。
ステップS481において、リムーバブルメディア28が装着されたと判断された場合、ステップS482において、コントローラ21は、ファイルの更新処理を実行するアプリケーションプログラムが起動する。このアプリケーションプログラムは、再生装置1が有する(光ディスク11やリムーバブルメディア28に記録されているのではない)アプリケーションプログラムである。
ステップS483において、データ取得部33は、装着されたリムーバブルメディア28に記録されているデータのうちの所定の部分(例えば、いわゆるヘッダやTOCなどのように、データの構成、データ構造、フォーマット等を再生装置1が判断するためのデータが記録されている部分)を読み込み、装着されたリムーバブルメディア28は再生装置1で再生可能であるか否かを判断する。
ステップS483において、装着されたリムーバブルメディア28は再生装置1で再生可能ではないと判断された場合、処理は、後述するステップS495に進む。
ステップS483において、装着されたリムーバブルメディア28は再生装置1で再生可能であると判断された場合、ステップS484において、データ取得部33は、装着されたリムーバブルメディア28には、再生装置1で実行可能なアプリケーションプログラムが記録されているか否かを判断する。ステップS484において、リムーバブルメディア28には、再生装置1で実行可能なアプリケーションプログラムが記録されていないと判断された場合、処理は、後述するステップS489に進む。
ステップS484において、リムーバブルメディア28には、再生装置1で実行可能なアプリケーションプログラムが記録されていると判断された場合、ステップS485において、再生装置1が有するアプリケーションプログラムを実行しているコントローラ21は、リムーバブルメディア28に記録されているアプリケーションプログラムを実行するための準備処理が可能であるか否かを判断する。なお、準備処理が可能であるか否かは装置自身が把握している場合もあるため、この場合にはこの準備処理が可能であるか否かのステップは省略しても良い。
例えば、リムーバブルメディア28に記録されているアプリケーションプログラムが、光ディスク11に記録されている上述したMovieObjectと同等のものであり、Indexファイルに対応するデータが用意されていないような場合、リムーバブルメディア28に記録されているアプリケーションプログラムの各種コマンドを実行するには、Indexファイルに対応するデータが必要となる。この場合、リムーバブルメディア28に記録されているアプリケーションプログラムを実行するための準備処理とは、対応するIndexファイルの作成処理となる。なお、すでに光ディスク11が再生装置1に装着されている場合には、Indexファイルは作成され、展開されているので、この場合には準備処理は不要となる。
ステップS485において、リムーバブルメディア28に記録されているアプリケーションプログラムを実行するための準備処理ができないと判断された場合(又は準備処理ができない装置の場合)、処理は、後述するステップS489に進む。
ステップS485において、リムーバブルメディア28に記録されているアプリケーションプログラムを実行するための準備処理が可能であると判断された場合、ステップS486において、再生装置1が有するアプリケーションプログラムを実行しているコントローラ21は、リムーバブルメディア28に記録されているアプリケーションプログラムを実行するための準備処理を実行する。
ステップS487において、コントローラ21は、リムーバブルメディア28に記録されているアプリケーションプログラムをメモリ23に展開して実行する。そして、コントローラ21は、リムーバブルメディア28に記録されているアプリケーションプログラムは、データの追加処理を実行するアプリケーションであるか否かを判断する。ステップS487において、リムーバブルメディア28に記録されているアプリケーションプログラムがデータの追加処理を実行するアプリケーションであると判断された場合、処理は、後述するステップS492に進む。
ステップS487において、リムーバブルメディア28に記録されているアプリケーションプログラムがデータの追加処理を実行するアプリケーションではないと判断された場合、ステップS488において、コントローラ21は、リムーバブルメディア28に記録されているアプリケーションプログラムを実行する。リムーバブルメディア28に記録されているアプリケーションプログラムの処理の終了後、コントローラ21においては、再び、再生装置1が有しているアプリケーションプログラムがコントローラ21において実行されている状態に戻る。
ステップS484において、リムーバブルメディア28には、再生装置1で実行可能なアプリケーションプログラムが記録されていないと判断された場合、ステップS485において、リムーバブルメディア28に記録されているアプリケーションプログラムを実行するための準備処理ができないと判断された場合、または、ステップS488の処理の終了後、ステップS489において、コントローラ21のデータ取得部33は、装着されたリムーバブルメディア28には、例えば、図45を用いて説明したような追加用のデータが記録されているか否かを判断する。ステップS489において、装着されたリムーバブルメディア28に追加用のデータが記録されていないと判断された場合、処理は、後述するステップS495に進む。
ステップS489において、装着されたリムーバブルメディア28に追加用のデータが記録されていると判断された場合、ステップS490において、データ取得部33は、装着されたリムーバブルメディア28に記録されている追加用のデータを読み込む。
ステップS491において、図52を用いて後述するファイル更新処理2が実行され、処理は、後述するステップS496に進む。
ステップS487において、リムーバブルメディア28に記録されているアプリケーションプログラムがデータの追加処理を実行するアプリケーションであると判断された場合、ステップS492において、リムーバブルメディア28に記録されているアプリケーションプログラムを実行しているコントローラ21は、装着されたリムーバブルメディア28には、例えば、図45を用いて説明したような追加用のデータが記録されているか否かを判断する。ステップS492において、装着されたリムーバブルメディア28に追加用のデータが記録されていないと判断された場合、処理は、後述するステップS495に進む。
ステップS492において、装着されたリムーバブルメディア28に追加用のデータが記録されていると判断された場合、ステップS493において、リムーバブルメディア28に記録されているアプリケーションプログラムを実行しているコントローラ21は、装着されたリムーバブルメディア28に記録されている追加用のデータを読み込む。
ステップS494において、図52を用いて後述するファイル更新処理2が実行される。ステップS494の処理の終了後、すなわち、リムーバブルメディア28に記録されているアプリケーションプログラムの処理の終了後、再生装置1においては、再び、再生装置1が有しているアプリケーションプログラムがコントローラ21において実行されている状態に戻る。
ステップS483において、装着されたリムーバブルメディア28は再生装置1で再生可能ではないと判断された場合、ステップS489において、装着されたリムーバブルメディア28に追加用のデータが記録されていないと判断された場合、または、ステップS492において、装着されたリムーバブルメディア28に追加用のデータが記録されていないと判断された場合、ステップS495において、コントローラ21のメニュー画面表示制御部31は、例えば、「データの追加はできません。リブーバブルメディアを確認してください」等のエラーメッセージなどを出力する。
ステップS491、ステップS494、またはステップS495の処理の終了後、ステップS496において、操作入力取得部32は、アプリケーションプログラムの終了が指令されたか否かを判断する。ステップS496において、アプリケーションプログラムの終了が指令されていないと判断された場合、処理は、ステップS483に戻り、それ以降の処理が繰り返される。ステップS496において、アプリケーションプログラムの終了が指令されたと判断された場合、処理が終了される。
このような処理により、再生装置1に予め記録されているアプリケーションプログラム、または、リムーバブルメディア28に記録されているアプリケーションプログラムによって、リムーバブルメディア28に記録されているアップデートファイルが読み出されて、ローカルストレージ24に書き込まれる。
なお、リムーバブルメディア28を用いたファイルの更新処理2においては、再生装置1に光ディスク11が装着されている必要がないので、図32を用いて説明したバインディング処理は、この処理が終了した後、再生装置1に光ディスク11が装着されたときに実行される。
次に、図52のフローチャートを参照して、図51のステップS491またはステップS494で実行されるファイル更新処理2について説明する。
なお、図51のステップS491において実行されるファイル更新処理2は、再生装置1自身が予め有しているアプリケーションプログラムを実行しているコントローラ21によりデータの追加処理が実行されている状態で実行される。コントローラ21は、再生装置1自身が予め有しているアプリケーションプログラムによりデータの追加処理を実行する場合、基本的に、図6を用いて説明した場合と同様の機能を有する。また、図51のステップS494において実行されるファイル更新処理2は、リムーバブルメディア28に記録されているアプリケーションプログラムを実行しているコントローラ21によりデータの追加処理が実行されている状態で実行される。コントローラ21は、リムーバブルメディア28に記録されているアプリケーションプログラムがデータの追加処理を実行するものであった場合、基本的に、図6を用いて説明した場合と同様の機能を有する。したがって、図52のフローチャートにおいても、図6を用いて説明した機能ブロック図を参照して説明する。
ステップS521において、ローカルストレージディレクトリ管理部34は、データ取得部33によりデータを読み込むことが可能なリムーバブルメディア28に、例えば、図48を用いて説明した様な、マニフェストファイルの対応を示す情報が記載されているか否かを判断する。ステップS521において、マニフェストファイルの対応を示す情報が記載されていないと判断された場合、処理は、後述するステップS523に進む。
ステップS521において、マニフェストファイルの対応を示す情報が記載されていると判断された場合、ステップS522において、ローカルストレージディレクトリ管理部34は、マニフェストファイルの対応を示す情報を基に、リムーバブルメディア28に記録されているアップデートファイルの上書きによって、例えば、図46を用いて説明した様に、以前アップデートされたファイルが利用できなくなってしまうなどの障害が発生するか否かを判断する。ステップS522において、障害が発生しないと判断された場合、処理は、後述するステップS525に進む。
ステップS521において、マニフェストファイルの対応を示す情報が記載されていないと判断された場合、または、ステップS522において、障害が発生すると判断された場合、ステップS523において、例えば、「このアップデートを行うことにより、英語字幕のみが利用可能となりますがよろしいですか?」などの警告メッセージをユーザに通知する。更に、メニュー画面表示制御部31は、書き換え前のマニフェストファイルを示す情報(サーバ3が、マニフェストファイルを区別可能な情報であれば良く、例えば、Manifest_idであっても、Manifest_idを基に生成されるコード情報であっても、それ以外の情報であっても良い)をユーザに提示するようにしてもよい。これにより、ユーザは、サーバ3に接続可能な再生装置1またはサーバ3に接続可能なパーソナルコンピュータ、PDA,または、携帯型電話機などの情報処理装置を用いて、書き換え前のマニフェストファイルを示す情報をサーバ3に通知し、サーバ3から書き換え前のマニフェストファイルをダウンロードすることにより、再生装置1を少なくとも書き換え前の状態に戻すことが可能となる。
ステップS524において、操作入力取得部32は、警告メッセージを確認したユーザからの操作入力を基に、ローカルストレージ24へのデータの書き込みが許可されたか否かを判断する。ステップS524において、ローカルストレージ24へのデータの書き込みが許可されなかった場合、処理は、図51のステップS491に戻ってステップS496に進むか、または、ステップS494に戻ってステップS496に進む。
ステップS522において、障害が発生しないと判断された場合、または、ステップS524において、ローカルストレージ24へのデータの書き込みが許可された場合、ステップS525において、ローカルストレージディレクトリ管理部34は、リムーバブルメディア28の対応するファイルをローカルストレージ24に記憶して、処理は、図51のステップS491に戻ってステップS496に進むか、または、ステップS494に戻ってステップS496に進む。
このような処理により、ファイルの上書きによって障害が発生する可能性があることをユーザに通知したり、リムーバブルメディア28に記録されていたファイルの上書きによって障害が発生してしまった場合に、リムーバブルメディア28に記録されていたファイルの上書き前の状態に戻すために利用可能な情報をユーザに提示することが可能となる。
図45乃至図52を用いて、リムーバブルメディア28に記録されていたアップデートファイルをローカルストレージ24に書き込む場合の処理について説明したが、リムーバブルメディア28には、図13を用いて説明した光ディスク11と同様のファイル構造を有するデータを記録するようにしてもよい。そして、再生装置1は、図53に示されるように、リムーバブルメディア28に記録されていたファイルをローカルストレージ24の第1の領域に記憶し、第1の領域とは異なる第2の領域に、サーバ3からダウンロードされた図14を用いて説明した説明した構造を有するデータ、または、リムーバブルメディア28に記録されていた図45を用いて説明した構造を有するデータを記憶し、光ディスク11とローカルストレージ24とに記録されていたデータファイルのファイルシステムをバインディングする場合と同様の処理により、ローカルストレージ24の第1の領域に記録されているデータファイルのファイルシステムとローカルストレージ24の第2の領域に記録されているデータファイルのファイルシステムとをバインディングすることができる。
すなわち、データ取得部33は、リムーバブルメディア28から図13を用いて説明した光ディスク11と同様のファイル構造を有するデータを読み込み、ローカルストレージディレクトリ管理部34に供給する。ローカルストレージディレクトリ管理部34は、光ディスク11と同様のファイル構造を有するデータをローカルストレージ24の第1の領域に記憶する。また、データ取得部33は、サーバ3からダウンロードされた図14を用いて説明した説明した構造を有するデータ、または、リムーバブルメディア28に記録されていた図45を用いて説明した構造を有するデータを読み込み、ローカルストレージディレクトリ管理部34に供給する。ローカルストレージディレクトリ管理部34は、サーバ3からダウンロードされた図14を用いて説明した説明した構造を有するデータ、または、リムーバブルメディア28に記録されていた図45を用いて説明した構造を有するデータをローカルストレージ24の第2の領域に記憶する。そして、ファイルシステムマージ処理部36は、ローカルストレージ24の第1の領域と第2の領域に記録されているファイルシステムをバインディングし、仮想ファイルシステムを構築する。再生制御部37は、この仮想ファイルシステムを参照して、再生処理を制御する。
また、取得した字幕ストリーム、Clip AVストリーム等とともに、それらのストリームの再生を管理する、すなわち、PlayItem、SubPlayItem、および、Subpathを用いて再生処理を管理するPlayListファイルを、ダウンロードまたは他の記録媒体から取得する構成とすれば、その取得したPlayListファイルを用いて、取得したストリームの再生を管理することもできる。その際には、例えば、光ディスク11上に存在したPlayListではなく、src_file_name、dst_file_nameの指定に従ってバインディングを行ったPlayListファイルを用いて仮想ファイルシステムを構築するようにすれば、上述したoperation_typeを用いずとも、新たに取得したストリームの管理ができるようになる。
さらに、上述した処理においては、operation_typeの指定に従ってPlayListの編集を行うようになされていたが、例えば、PlayListの編集プログラムを含むナビゲーションプログラムであるMovieObjectを新たに取得し、そのMovieobjectを図14に記載のローカルストレージ24に保存し、バインディング処理時にその編集プログラムに基づいてPlayListを自動で編集、またはユーザが編集することができるような構成であっても良い。また、PlayListやClip AV streamを編集して、保存する処理を実行させるアプリケーションプログラムが登録されているMovieobjectを、予め光ディスク11に記録しておくようにしてもよい。なお、MovieObjectは、必ずしもその中にプログラムを保存する必要はなく、図示しない他のディレクトリに保存されたプログラムを呼び出す構成としても良い。
ところで、以上説明した処理においては、仮想ファイルシステムを用いて再生されるストリームを構成するそれぞれのファイルの読み出しが制御されていたが、読み出されるべきファイルが構築された仮想ファイルシステム上に存在しない場合、ナビゲーションプログラムとは独立したプログラムであるファイルの外部取得プログラムを起動して、仮想ファイルシステム以外の外部から読み出されるべきファイルを取得することができるようにしても良い。
図54のフローチャートを参照して、コンテンツ再生処理について説明する。
ステップS551において、再生制御部37は、ローカルストレージディレクトリ管理部34および光ディスクディレクトリ管理部35を制御して、ナビゲーションプログラムが再生区間として指定するPlayListとSubPlayItemを取得し、取得したPlayListとSubPlayItemが参照するストリームファイル(AVファイル、オーディオファイル、テキスト字幕ファイルなど)を読み出させる。
ステップS552において、再生制御部37は、読み出すべきストリームファイルが存在したか否かを判断する。ステップS552において、読み出すべきストリームファイルが存在したと判断された場合、処理は、後述するステップS558に進む。
ステップS553において、読み出すべきストリームファイルが存在しなかったと判断された場合、再生制御部37は、ファイルの外部取得プログラムを起動する。
ここで、ファイルの外部取得プログラムは、ナビゲーションプログラムによって起動されるナビゲーションプログラムとは独立したプログラムである。ファイルの外部取得プログラムが、所定のファイルの取得処理を実行している間、ナビゲーションプログラムは、待機状態であり、ファイルの外部取得プログラムにより、ファイルの取得が実行された後に、PlayListおよびPlayItemを基にした再生処理を再開することができるようになされている。
ファイルの外部取得プログラムは、再生装置1のローカルストレージ24に記憶されており、ナビゲーションプログラムの処理により起動が指令されたとき、コントローラ21によりローカルストレージ24から読み出されて、メモリ23に展開されて実行されるものであってもよいし、光ディスク11またはリムーバブルメディア28に記録され、ナビゲーションプログラムの処理により起動が指令されたとき、コントローラ21により光ディスク11またはリムーバブルメディア28から読み出されて、メモリ23に展開されて実行されるものであってもよい。
ステップS554において、ファイルの外部取得プログラムを実行しているコントローラ21は、存在しなかったファイルの外部取得先に関する情報は、再生装置1のローカルストレージ24、または、光ディスク11もしくはリムーバブルメディア28に登録されているか否かを判断する。
なお、ファイルの外部取得先に関する情報は、PlayListまたはPlayItemや、コンテンツに関連するストリームファイルとは別に、ファイルの外部取得プログラムにのみ管理される情報として、例えば、再生装置1のローカルストレージ24、または、光ディスク11もしくはリムーバブルメディア28のいずれかの記録領域に記録されていてもよい。また、ファイルの外部取得先に関する情報として、ローカルストレージ24に記憶されている上述したManifestファイルのsourceの情報を用いるようにしてもよい。
また、ファイルの外部取得先に関する情報は、例えば、dst_file_nameまたはsrc_file_nameなどに対応付けられて登録されるものとしても良いし、author_id、disc_idなどに対応付けられて登録されるものとしても良いし、または、例えば、コンテンツごとなど、更に異なる単位で登録されるようにしてもよい。
例えば、dst_file_nameまたはsrc_file_nameなどに対応付けられて、ファイルの外部取得先に関する情報が登録されている場合は、ファイルとその登録先の情報が1対1で対応するので、再生装置1が取得するべきファイルを容易に確定して取得することができる。これに対して、例えば、author_id、disc_idなど、複数のファイルを含むディレクトリなどに対応する情報とファイルの外部取得先が対応付けられて登録されているような場合、ファイルとその登録先の情報が1対1で対応しないので、再生装置1が取得するべきファイルを示す情報が外部取得先に供給されるか、または、外部取得先におけるファイルシステムが、光ディスク11のファイルシステム、ローカルストレージ24におけるファイルシステム、または、仮想ファイルシステムなどと同一の構成を有するようにすることにより、再生装置1が取得するべきファイルを取得することができるようになる。
ステップS554において、存在しなかったファイルの外部取得先に関する情報が登録されていないと判断された場合、ステップS555において、ファイルの外部取得プログラムを実行しているコントローラ21は、例えば、外部の表示装置などに、エラーメッセージを出力し、処理が終了される。
ステップS554において、存在しなかったファイルの外部取得先に関する情報が登録されていると判断された場合、ステップS556において、ファイルの外部取得プログラムを実行しているコントローラ21は、存在しなかったファイルに対応するファイルの外部取得先に関する情報を基に、インターネットインタフェース25、または、リムーバブルメディア28が装着されているドライブ27などを介して、ファイルの外部取得先にアクセスする。
なお、ファイルの外部取得先に関する情報とは、具体的には、インターネット2を介してアクセスされるサーバ3のURLであっても良いし、ドライブ27に装着されているリムーバブルメディア28における記録領域のアドレス、または、ファイルシステムのパスなどであっても良く、更に、所定のローカルネットワークを介して接続される記録装置または他の情報処理装置の装置情報、お、よびそれらの装置が有する記憶部における記録領域のアドレス、または、ファイルシステムのパスなどであってもよい。
ステップS557において、ファイルの外部取得プログラムを実行しているコントローラ21は、指定されたファイルの外部取得先から、ファイル、または、対応するデータを取得する。そして、ファイルの外部取得プログラムを実行しているコントローラ21は、ナビゲーションプログラムの処理を再開する。
ここで、指定されたファイルの外部取得先からの、ファイル、または、対応するデータの取得方法は、対応するファイルをすべて取得し、ローカルストレージ24などに記憶させた後、再生させる、いわゆるダウンロードであってもよいし、対応するファイルを構成するデータを取得して、ローカルストレージ24などに記憶させることなく順次再生させる、いわゆるストリーミング再生であってもよい。
ステップS552において、読み出すべきストリームファイルが存在したと判断された場合、または、ステップS557の処理の終了後、ステップS558において、再生制御部37は、取得されたファイル、または、対応するデータをデコーダ26に供給し、デコーダ26を制御して、コンテンツを再生させ、処理が終了される。
このような処理により、PlayListやSubPlayItemによって読み出されるべきファイルが、所定の記録位置に記録されない場合であっても、ファイルの外部取得先が登録されていれば、再生されるべきファイル、または、そのファイルを構成するデータを取得して、再生させることが可能となる。
なお、ファイルの外部取得プログラムは、ナビゲーションプログラムとは独立したプログラムであるものとして説明したが、例えば、サブルーチンプログラムなどとして、ナビゲーションプログラムに含まれるものであってもよい。
また、図54のフローチャートを用いて説明した処理においては、読み出されるべきファイルが、構築された仮想ファイルシステム上に存在しない場合、ナビゲーションプログラムとは独立したプログラムであるファイルの外部取得プログラムを起動して、仮想ファイルシステム以外の外部から読み出されるべきファイルを取得するものとして説明したが、例えば、読み出されるべきファイルまたはそのファイルを含むフォルダもしくはディレクトリが、構築された仮想ファイルシステム上に存在しない場合、ナビゲーションプログラムとは独立したプログラムであるファイルまたはそのファイルを含むフォルダもしくはディレクトリを外部から取得する処理を実行するプログラムを起動して、仮想ファイルシステム以外の外部から読み出されるべきファイル、または、そのファイルを含むフォルダもしくはディレクトリを取得することができるようにしてもよいことは、いうまでもない。
また、再生装置1においては、上述したように、ローカルストレージ24を半導体メモリなどにより構成し、半導体メモリなどにより構成されたローカルストレージを再生装置1から着脱可能なようにしても良いが、更に、それ以外にも、図17を用いて説明したようなコンテンツオーサがコンテンツを配布する際のコンテンツ配布用ファイル形式における場合と同様のデータを、ドライブ27に装着可能なリムーバブルメディア28に、図14を用いて説明したディレクトリ構成で記録させるようにすることにより、ローカルストレージ24にデータを記憶しなくても、リムーバブルメディア28に記録されているデータのファイルシステムと、光ディスク11に記録されているデータのファイルシステムとを上述したようにバインディングさせることができるようにしても良い。
更に、ローカルストレージ24にもリムーバブルメディア28にも、図14を用いて説明したディレクトリ構成で、コンテンツデータおよびその再生に必要なデータ(例えば、PlayListやSubPlayItem、または、Manifestファイルなど)を記録させるようにすることにより、ローカルストレージ24に記録されているデータのファイルシステムと、リムーバブルメディア28に記録されているデータのファイルシステムと、光ディスク11に記録されているデータのファイルシステムとを、上述したようにバインディングさせることができるようにしても良い。このような場合、上述した処理を適用して、例えば、ローカルストレージ24に記録されているデータのファイルシステムと光ディスク11に記録されているデータのファイルシステムとがバインディングされて、第1の仮想ファイルシステムが生成され、リムーバブルメディア28に記録されているデータのファイルシステムと第1の仮想ファイルシステムとがバインディングされて、第2の仮想ファイルシステムが生成されるようにすることができる。
次に、図55および図56を参照して、再生装置1において再生可能なデータが記録された光ディスクの製造方法について説明する。ここでは、記録媒体を光ディスクとして図示して例示しており、図中の記録媒体は、図1における光ディスク11、または、リムーバブルメディア28に対応している。なお、リムーバブルメディア28がディスク状の記録媒体以外である場合は、公知の記録媒体の製造方法によって、同様にして、再生装置1において再生可能なデータが記録媒体に記録される。
即ち、図55に示すように、例えばガラスなどよりなる原盤が用意され、その上に、例えばフォトレジストなどよりなる記録材料が塗布される。これにより、記録用原盤が製作される。
そして、図56に示すように、ソフト製作処理部において、符号化装置(ビデオエンコーダ)で符号化された、再生装置1において再生可能な形式のビデオデータが、一時バッファに記憶され、オーディオエンコーダで符号化されたオーディオデータが、一時バッファに記憶されるとともに、更に、データエンコーダで符号化された、ストリーム以外のデータ(例えば、Indexes、Playlist、PlayItemなど)が一時バッファに記憶される。それぞれのバッファに記憶されたビデオデータ、オーディオデータ、および、ストリーム以外のデータは、多重化器(MPX)で同期信号と共に多重化され、誤り訂正符号回路(ECC)でエラー訂正用のコードが付加される。そして、変調回路(MOD)で所定の変調がかけられ、所定のフォーマットにしたがって、例えば磁気テープなどに一旦記録され、再生装置1において再生可能な光ディスク11、または、リムーバブルメディア28に記録されるソフトウェアが製作される。
このソフトウェアを必要に応じて編集(プリマスタリング)し、光ディスクに記録すべきフォーマットの信号が生成される。そして、この記録信号に対応して、レーザビームが変調されて、このレーザビームが原盤上のフォトレジスト上に照射される。これにより、原盤上のフォトレジストが記録信号に対応して露光される。
その後、この原盤を現像し、原盤上にピットを出現させる。このようにして用意された原盤に、例えば電鋳等の処理を施し、ガラス原盤上のピットを転写した金属原盤を製作する。この金属原盤から、さらに金属スタンパを製作し、これを成形用金型とする。
この成形用金型に、例えばインジェクションなどによりPMMA(アクリル)またはPC(ポリカーボネート)などの材料を注入し、固定化させる。あるいは、金属スタンパ上に2P(紫外線硬化樹脂)などを塗布した後、紫外線を照射して硬化させる。これにより、金属スタンパ上のピットを、樹脂よりなるレプリカ上に転写することができる。
このようにして生成されたレプリカ上に、反射膜が、蒸着あるいはスパッタリングなどにより形成される。あるいはまた、生成されたレプリカ上に、反射膜が、スピンコートにより形成される。
その後、このディスクに対して内外径の加工が施され、2枚のディスクを張り合わせるなどの必要な処置が施される。さらに、ラベルを貼り付けたり、ハブが取り付けられて、カートリッジに挿入される。このようにして再生装置1によって再生可能なデータが記録された光ディスク11、または、リムーバブルメディア28が完成する。
上述した一連の処理は、ソフトウェアにより実行することもできる。そのソフトウェアは、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム格納媒体からインストールされる。
このプログラム格納媒体は、図1に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク(MD(Mini-Disk)(商標)を含む)、もしくは半導体メモリなどよりなるリムーバブルメディア28により構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される、プログラムが記録されているROMまたはRAMなどのメモリ23や、ハードディスクなどのローカルストレージ24などにより構成される。
また、本明細書において、プログラム格納媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的または個別に実行される処理をも含むものである。
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
1 再生装置, 11 光ディスク, 21 コントローラ, 22 光ディスクドライブ, 23 メモリ, 24 ローカルストレージ, 26 デコーダ, 31 メニュー画面表示制御部, 32 操作入力取得部, 33 データ取得部, 34 ローカルストレージディレクトリ管理部, 35 光ディスクディレクトリ管理部, 66 ファイルシステムマージ処理部, 37 再生制御部, 252 ダウンロードファイル判断部, 253 スケジュール管理部, 301 再生装置, 311 復号処理部