以下、図を参照して、本発明の実施の形態について説明する。
図1は、記録再生装置1の構成例を示すブロック図である。
コントローラ21は、ローカルストレージ24に記憶されているナビゲーションプログラム(後述)をメモリ23に展開して実行するか、または、光ディスクドライブ22を制御して光ディスク11に記録されているナビゲーションプログラムを読み出し、メモリ23に展開して実行することで、記録再生装置1に装着されている光ディスク11の再生動作を制御する。また、コントローラ21は、インターネットインタフェース25、または、リムーバブルメディア28を介したアプリケーションプログラムまたはナビゲーションプログラムの取得を制御して、取得されたアプリケーションプログラムまたはナビゲーションプログラムを、ローカルストレージ24に記憶するとともに、メモリ23に展開して実行することができる。
更に、コントローラ21は、装着される光ディスク1に記録されている情報を再生するためのナビゲーションプログラム、ナビゲーションプログラムと連動して実行可能なアプリケーションプログラム、および、記録再生装置1に、ナビゲーションプログラムが記録されている光ディスク11が装着されているか否かにかかわらず、単独で実行可能な組み込みアプリケーションを実行することができる。ナビゲーションプログラムおよびアプリケーションプログラムのそれぞれの少なくとも一部は、例えばJAVA(登録商標)などの、仮想マシンの実装によりマルチプラットフォームで動作可能なようになされている。また、組み込みアプリケーションは、コントローラ21における実行環境でのみ動作可能であっても良いし、仮想マシンの実装によりマルチプラットフォームで動作可能なようになされていてもよい。
また、コントローラ21は、ローカルストレージ24またはメモリ23に記憶されているアプリケーションプログラムと、光ディスク11またはローカルストレージ24に記録されているナビゲーションプログラムとが、いずれも、同様の仮想マシン上で動作可能であり、アプリケーション間通信機能が提供されている場合においては、これらを、それぞれメモリ23に展開し、連動させて動作させることにより、記録再生装置1の動作を制御することができる。
光ディスクドライブ22は、コントローラ21による制御に従って光ディスク11からデータを読み出し、読み出したデータを、コントローラ21、メモリ23、または、トランスコーダ26に出力したり、メモリ23、ローカルストレージ24、または、トランスコーダ26から供給された信号を、装着された光ディスク11に記録する。光ディスク11から読み出された情報が、ナビゲーションプログラムやPlayListなどであった場合、光ディスクドライブ22により読み出された情報は、コントローラ21、または、メモリ23に出力される。光ディスク11から読み出された情報が、AVストリームやテキストデータであった場合、光ディスクドライブ22により読み出された情報は、トランスコーダ26に出力される。
図2は、記録再生装置1に装着される光ディスク11のアプリケーションフォーマットの例を示す図である。記録媒体は、光ディスク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(登録商標)などの、仮想マシンの実装によりマルチプラットフォームで実行可能なプログラミング言語で記述される。そして、ナビゲーションプログラムの機能のうちのマルチプラットフォームで実行可能なプログラミング言語で記述されている部分以外の他の一部の機能は、マルチプラットフォームではなく、装置固有の実行環境で実行可能なプログラミング言語で記述されていてもよい。
例えば、ナビゲーションプログラムがコントローラ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)などより構成される。
インターネットインタフェース25は、有線または無線によりネットワーク2に接続されており、コントローラ21からの制御に従って、ネットワーク2を介して、サーバ3との間で通信を行い、サーバ3からダウンロードされたデータや、ナビゲーションプログラムまたはアプリケーションプログラムなどをローカルストレージ24に供給する。サーバ3からは、例えば、そのとき記録再生装置1に装着されている光ディスク11に記録されている、図2を用いて説明したデータをアップデートさせるデータがコンテンツとしてダウンロードされる。ローカルストレージ24は、サーバ3からネットワーク2経由でダウンロードしたコンテンツを記録することができる。
トランスコーダ26は、光ディスクドライブ22、または、ローカルストレージ24から供給されるAVストリーム、または、テキストデータをデコードし、得られたビデオ信号とオーディオ信号を外部の表示装置に出力する。表示装置においては、トランスコーダ26によりデコードされた信号に基づいて、例えば、光ディスク11に記録されているコンテンツの出力(映像の表示、音声の出力)が行われる。また、トランスコーダ26は、光ディスクドライブ22、または、ローカルストレージ24から供給されるAVストリーム、または、テキストデータを、所定の方式にフォーマット変換、すなわち、デコード処理を実行した後、所定の方式にエンコードし、再び、光ディスクドライブ22に供給して、装着された光ディスク11(フォーマット変換されたデータの読み出し元である光ディスク11とは異なるディスクであっても良いことは言うまでもない)に記録させることができる。
操作入力部29は、例えば、ボタン、キー、タッチパネル、ジョグダイヤル、マウスなどの入力デバイスや、所定のリモートコマンダから送信される赤外線などの信号を受信する受信部により構成され、ユーザの操作入力を取得し、コントローラ21に供給する。
また、コントローラ21には、必要に応じてドライブ27も接続されており、ドライブ27には、例えば、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disk-Read Only Memory),DVDを含む)、光磁気ディスク(MD(登録商標)(Mini-Disk)を含む)、もしくは半導体メモリなどよりなるリムーバブルメディア28が装着される。
なお、記録再生装置1には、ここに記載されていないモジュールを備えるようにしても良いし、他の装置と接続させて、連動して処理を行うことができるようにしても良い。例えば、図1に示される記録再生装置1に対して、放送波を受信する機能やケーブルテレビジョンネットワークとの接続機能などを追加して、いわゆる番組コンテンツなどを取得することができるようにし、取得された番組コンテンツなどを所定の記録媒体に録画する機能を追加したり(その一例を、図29を用いて後述する)、このような機能を有する他の装置を接続して、コントローラ21により、番組コンテンツなどの取得やその録画などの処理を制御することができるようにしても良い。このとき、放送波を受信する機能やケーブルテレビジョンネットワークとの接続機能を制御するアプリケーションプログラム、すなわち、装着された光ディスク11に記録されているコンテンツデータ、または、光ディスク11に対応付けられてローカルストレージ24に記憶されたダウンロードデータの再生処理とは異なる処理を実行するアプリケーションプログラムは、メモリ23またはローカルストレージ24に記憶され、コントローラ21により実行される。
また、図1に示される記録再生装置1に対して、放送波を受信する機能やケーブルテレビジョンネットワークとの接続機能などを追加して、いわゆる番組コンテンツなどを取得することができるようになされている場合、コントローラ21が実行可能な各種アプリケーションを、放送波とともにダウンロードし、メモリ23またはローカルストレージ24にインストールするようにしても良い。
次に、記録再生装置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を用いて説明する。
例えば、光ディスク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が有する機能のうち、JAVA(登録商標)環境によって提供される機能、および、記録再生装置1に予め埋め込まれている機能を示すモジュール構成、いわゆる、ソフトウェアスタックの第1の例について説明するための図である。
また、ここでは、コントローラ21において実行されるナビゲーションプログラムの全て、および、ナビゲーションプログラムと連動して実行可能なアプリケーションプログラムが、JAVA(登録商標)言語を用いて記載されているものとして説明するが、これらのプログラムは、例えば、C#やVisual Basicなど、仮想マシン上で動作可能な、すなわち、マルチプラットフォームで動作可能なプログラミング言語であれば、いずれのプログラミング言語が用いられた場合においても、同様にして実行可能である。また、記録再生装置1に予め埋め込まれている機能を制御するプログラムである組み込みアプリケーション49は、マルチプラットフォームで動作可能なプログラミング言語である必要はないが、例えば、CやC++など、JAVA(登録商標)のXletとアプリケーション間通信が可能なものであると好適である。
ドライバ41は、記録再生装置1のハードウェアを動作させるための専用ソフトウェアである。ドライバ41には、例えば、光ディスクドライブ22やドライブ27に含まれている各種モータや光ピックアップなどのハードウェアを制御するためのドライバや、外部接続されている表示装置に画像を表示させたり、外部接続されているスピーカから音声を出力させるためのドライバや、操作入力部29に設けられているボタンやキー、または、図示しないリモートコマンダからのコマンドの受信部などの動作を制御するためのドライバや、インターネットインタフェース25を介した情報の授受を制御するためのドライバなどが含まれている。
OS(Operation System)42とは、コントローラ21の基本的な動作基盤となるものであり、例えば、ハードウェアを動作させるためのソフトウェアであるドライバ41の管理や、各種の情報を記録するメモリ23およびローカルストレージ24の管理など、多くのアプリケーションプログラム(ここでは、ナビゲーションプログラム45およびアプリケーションプログラム47−1乃至47−n)から共通して利用される基本的な機能を提供し、記録再生装置1のシステム全体を管理するソフトウェアである。
アプリケーションマネージャ43は、このソフトウェアスタックにおいて実行可能なようになされている複数のアプリケーション(ここでは、ナビゲーションプログラム45およびアプリケーションプログラム47−1乃至47−n)が実行する処理を管理するものである。
JVM(JAVA(登録商標) Virtual Machine)44は、JAVA(登録商標)バイトコードをそのプラットフォームのネイティブコードに変換して実行するソフトウェアである。JAVA(登録商標)で開発されたソフトウェアであるナビゲーションプログラム45やアプリケーションプログラム47−1乃至47−nは、プラットフォームから独立した独自の形式(JAVA(登録商標)バイトコード)になっており、そのままでは実行することができない。このため、JVM44は、JAVA(登録商標)バイトコードを記録再生装置1におけるネイティブコードに変換しながら、ナビゲーションプログラム45やアプリケーションプログラム47−1乃至47−nを実行する。
ナビゲーションプログラム45は、例えば、図2乃至図5を用いて説明したように、光ディスク11およびローカルストレージ24に記録されているデータを再生させるために提供されているプログラムであって、装着されている光ディスク11およびローカルストレージ24のうちの装着されている光ディスク11に対応付けられている領域に記憶されているデータに関する処理を制御するためのプログラムである。
APIライブラリ46とは、JVM44上で動作するソフトウェアであるナビゲーションプログラム45を開発する際に使用できる命令や関数の集合、または、それらを利用するためのプログラム上の手続きを定めた規約の集合である。ナビゲーションプログラム45の開発者は、規約に従ってその機能を呼び出すだけで、自分でプログラミングすることなくその機能を利用したソフトウェアを作成することができる。APIの具体的な一例として、ファイルアクセスに関するAPIについて後述する。
すなわち、ナビゲーションプログラム45は、APIライブラリ46として用意された命令や関数の範囲でのみ、記録再生装置1のハードウェアを制御することができる。
アプリケーションプログラム47−1乃至47−nは、JAVA(登録商標)などのプログラミング言語で記述されており、JVM44上で動作する。ナビゲーションプログラム45が、基本的に、光ディスク11に対応付けられた所定の機能を提供するものであるのに対して、アプリケーションプログラム47−1乃至47−nは、記録再生装置1の独自の機能を提供するためのアプリケーションプログラムである。アプリケーションプログラム47−1乃至47−nは、記録再生装置1のローカルストレージ24に予め保存されていても良いし、光ディスク11、または、リムーバブルメディア28によってインストールされても良いし、ネットワーク2を介してダウンロードされ、インストールされても良い。
以下の説明においては、アプリケーションプログラム47−1乃至47−nを個々に区別する必要がない場合、単に、アプリケーションプログラム47と称する。
ミドルウェア48は、OS42上で動作し、マルチプラットフォームに対して、記録再生装置1(コントローラ21)独自の環境において実行されるものとされる場合がある組み込みアプリケーション49に対してOS42よりも高度で具体的な機能を提供するものである。なお、組み込みアプリケーション49は、例えば、JAVA(登録商標)などの仮想マシン環境で実行可能な言語で記述されていても良いので、その場合は、ミドルウェア48は、実質的に、JVM44となる。
組み込みアプリケーション49は、記録再生装置1に、ナビゲーションプログラムが記録されている光ディスク11が装着されているか否かにかかわらず、ミドルウェア48上で実行可能なようになされている。組み込みアプリケーション49は、アプリケーションプログラム47に対して、上位のアプリケーションである(図中、組み込みアプリケーション49は、アプリケーションプログラム47に対して、上位のアプリケーションであることを示すように図示されているが、その一部がJVM上で実行可能なわけではなく、あくまでも、ミドルウェア48上において実行可能である)。
また、組み込みアプリケーション49は、光ディスク11に記録されている情報の再生処理とは直接かかわらない機能を実現するものであっても良い。すなわち、組み込みアプリケーション49は、例えば、放送波、または、ケーブルネットワークなどを介してユーザに提供される番組コンテンツの録画を制御するプログラム、ウェブブラウザ、データベース処理を実行するプログラム、または、ユーザの操作入力の補助となる表示画面(いわゆるGUI)の表示を制御するプログラム、もしくは、ネットワーク2を介して、所定のサーバと情報を授受する場合のインタフェース、または、装着された光ディスクなどの記録媒体にデータを記録する処理など、装着された光ディスク11に記録されているコンテンツデータ、または、光ディスク11に対応付けられてローカルストレージ24に記憶されたダウンロードデータの再生処理に必要なプログラムではない。
このように、装着された光ディスク11に記録されているコンテンツデータ、または、光ディスク11に対応付けられてローカルストレージ24に記憶されたダウンロードデータの再生処理に必須ではない組み込みアプリケーション49を、JAVA(登録商標)などの仮想マシン環境以外で実行することが可能な構成とした場合、従来用いられていた、または、他の装置などで用いられるハードウェアおよびソフトウェア資源が、マルチプラットフォームに対応するものではなくても、これを流用したり、共通で利用することができるので、開発コストを大幅に抑制することが可能となる。
次に、図7に、コントローラ21におけるソフトウェアスタックの第2の例を示す。
ここでは、コントローラ21において実行されるナビゲーションプログラム45の一部、および、ナビゲーションプログラム45と連動して実行可能なアプリケーションプログラム47が、JAVA(登録商標)言語を用いて記載され、ナビゲーションプログラム45の一部、および、組み込みアプリケーション49は、JAVA(登録商標)言語を用いて記載されていなくても良い(ミドルウェア48上で実行される)こと以外は、図6を用いて説明した場合と基本的に同様である。
このような構成をとる場合においても、ナビゲーションプログラム45の一部、および、ナビゲーションプログラム45と連動して実行可能なアプリケーションプログラム47が、JAVA(登録商標)言語などの仮想マシン上で動作可能な、すなわち、マルチプラットフォームで動作可能なプログラミング言語を用いて記載されることにより、IXCによるアプリケーション間通信が実行されて、連動した処理が実行される。
また、この場合においても同様に、装着された光ディスク11に記録されているコンテンツデータ、または、光ディスク11に対応付けられてローカルストレージ24に記憶されたダウンロードデータの再生処理に必須ではない組み込みアプリケーション49を、JAVA(登録商標)などの仮想マシン環境以外で実行することが可能な構成とした場合、従来用いられていた、または、他の装置などで用いられるハードウェアおよびソフトウェア資源が、マルチプラットフォームに対応するものではなくても、これを流用したり、共通で利用することができるので、開発コストを大幅に抑制することが可能となる。
このように、アプリケーションプログラム47は、ナビゲーションプログラム45のために用意されたAPIライブラリ46とは異なる独自のAPI(すなわち、図8を用いて後述するAPI51およびAPI52)を用いて、記録再生装置1のハードウェアを制御する、換言すれば、記録再生装置1における各種パラメータを操作することが可能である。そして、アプリケーションプログラム47は、JAVA(登録商標)で記述されていない、記録再生装置1が特定の機能を実現するために予め有しているシステムに対しても、制御を行うことが可能である。
例えば、記録再生装置1が、放送番組を受信する機能、受信する放送番組のチャンネルを変更する機能、受信された放送番組を録画する機能、または、インターネットなどの広域ネットワークに接続して、ウェブブラウジングを行う機能、もしくは、ネットワーク2を介して所定のサーバと情報を授受する場合のインタフェース機能、または、装着された光ディスクなどの記録媒体にデータを記録する機能などを有していた場合、これらの機能を提供する組み込みアプリケーション49、および、ナビゲーションプログラム45に連動してこれらの機能を制御することが可能なアプリケーションプログラム47を用意することが可能である。なお、APIライブラリ46として用意された命令や関数に、これらの機能を制御する命令などが含まれていない場合、ナビゲーションプログラム45は、これらの機能を直接制御することはできない。
光ディスク11は、ナビゲーションプログラム45を実行するために必要な一定の機能を有し、ナビゲーションプログラム45がインストールされている装置であれば、記録再生装置1以外の装置であっても、再生することができるようになされている。すなわち、光ディスク11に記録されているデータを、必要に応じて、ローカルストレージ24に記録されているデータとともに再生させるためのナビゲーションプログラム45およびAPIライブラリ46は、光ディスク11を再生する全ての装置が有するべき必須のアプリケーションである。光ディスク11を再生するさまざまな装置のそれぞれに固有の機能、換言すれば、ナビゲーションプログラム45を実行するために必要な一定の機能以外の機能を、全てAPIライブラリ46に用意するのは困難である。したがって、光ディスク11の再生処理に必須ではない機能(記録再生装置1に固有の機能)に関するAPIは、APIライブラリ46に用意されていない可能性が高いので、ナビゲーションプログラム45は、記録再生装置1に固有の機能を直接的に制御することはできない。
換言すれば、アプリケーションプログラム47および組み込みアプリケーション49が存在しなくても、記録再生装置1において光ディスク11を再生する処理を実行することが可能である。具体的には、例えば、記録再生装置1の独自の機能として放送番組を受信する機能、取得した番組コンテンツを録画する機能、データベース機能、ウェブブラウジング機能などが提供されていない装置であっても、または、装着された記録媒体へのデータの記録機能を有さない、換言すれば、再生機能のみを提供する装置であっても、ナビゲーションプログラム45を実行可能な環境さえ提供されていれば、光ディスク11を再生することは可能である。
また、組み込みアプリケーション49は、ナビゲーションプログラム45とは独立して単独で実行可能なアプリケーションである。そして、これに対して、アプリケーションプログラム47は、ナビゲーションプログラム45と連動する場合にのみ動作するものであっても良い。そして、ナビゲーションプログラム45と組み込みアプリケーション49とは、それぞれ完全に独立して実行することが出来るが、ナビゲーションプログラム45と組み込みアプリケーション49とが、連動して(関連付けられて)実行されるためには、アプリケーションプログラム47の介在が必要である。
アプリケーションプログラム47とナビゲーションプログラム45とが連動して動作するようになされている場合のナビゲーションプログラム45は、ローカルストレージ24またはメモリ23に保存されている、自分自身と連動して動作するアプリケーションプログラム47を検出し、起動させることができるようになされている。すなわち、アプリケーションプログラム47には、例えば、光ディスク11を識別するための識別情報(例えば、後述するdisc_idまたはcontent_id)や、コンテンツの提供者を識別する識別情報(例えば、後述するorg_id)などが、少なくとも1つ(すなわち、複数のナビゲーションプログラム45と連動して動作するようになされている場合には、複数の識別情報が)対応付けられており、ナビゲーションプログラム45は、所定の識別情報に対応付けられたアプリケーションプログラム47を検出して起動させ、連動して動作を実行するようになされている。
また、例えば、ユーザの操作入力によってアプリケーションプログラム47を起動させることができるようにしても良い。このような場合であっても、アプリケーションプログラム47は、ナビゲーションプログラム45と連動して動作するようになされている。そして、アプリケーションプログラム47には、例えば、光ディスク11を識別するための識別情報(例えば、後述するdisc_idまたはcontent_id)や、コンテンツの提供者を識別する識別情報(例えば、後述するorg_id)などを、1つ、または、複数対応付けることができる。
また、JVM44上で動作するアプリケーションプログラム47とナビゲーションプログラム45(または、ナビゲーションプログラム45のうちの一部)とは、JAVA(登録商標)のXletとして構成することができ、これらのアプリケーション間通信は、IXC(Inter-Xlet Communication)を用いて実行される。
更に、JVM44上で動作する複数のアプリケーションプログラム47における相互のアプリケーション間通信も、IXCを用いて実行される。
Xletは、PBP(Personal basis Profile)およびPP(Personal Profile)のプロファイルで仕様化されたアプリケーション実行モデルである。Xletは、もともと、テレビのセットトップボックス用のJAVA(登録商標)実行環境仕様であるJAVA(登録商標)TVで定義されたものであるが、Xlet間通信、すなわち、IXC仕様が追加され、CDC(Connected Device configuration)上のアプリケーションモデルとして仕様化されたものである。
Xletの実行環境は、複数のXletの同時実行をサポートするが、それぞれのXletは、独立したクラスローダを利用するため、他のXletを直接参照することができない。複数のXlet間で情報をやり取りするためにIXCが規定されている。IXCを用いたXlet間、すなわち、アプリケーションプログラム47とナビゲーションプログラム45との情報の授受と、連動して処理が実行される場合の具体的な例については、図24乃至図39を用いて後述する。
次に、図8は、図6および図7を用いて説明したソフトウェアスタックに表されるそれぞれのアプリケーションソフトウェアにおける、記述言語とアプリケーション間の関連について説明するための図である。
すなわち、ナビゲーションプログラム45は、少なくともその一部はJAVA(登録商標)で記述されているとともに、一部は、その他の言語で記述されるものであってもよい。そして、ナビゲーションプログラム45は、再生をコントロールする機能群53−1や表示をコントロールする機能群53−2など、装着された光ディスク11に記録されているコンテンツデータ、または、光ディスク11に対応付けられてローカルストレージ24に記憶されたダウンロードデータの再生処理に必須である機能群53(例えば、ドライバ41により実現される各種機能などを含む)を、基本的には、APIライブラリ46からメソッドを呼び出すことにより制御する。また、ナビゲーションプログラム45において、その他の言語で記述される部分においては、機能群53に対して、所定のコマンドを用いて直接制御するものであっても良い。
記録再生装置1において、さまざまなコンテンツオーサにより提供される複数種類の光ディスク11を再生するためには、また、それぞれの光ディスク11を、記録再生装置1のみならず、さまざまなメーカにより提供される記録再生装置、または、再生装置などにおいて再生可能なようにするためには、光ディスク11を提供するコンテンツオーサ、および、再生装置(記録再生装置1を含む)を提供するメーカが準拠すべき規格(または規格に準じる決まりごと)が必要となる。
すなわち、光ディスク11に対応付けられているナビゲーションプログラム45によって、記録再生装置1に装着された光ディスク11に記録されているコンテンツデータ、または、光ディスク11に対応付けられてローカルストレージ24に記憶されたダウンロードデータの再生処理が実行されるためには、換言すれば、再生処理に必須である機能群53が制御されるためには、APIライブラリ46のメソッドを呼び出す場合のAPIライブラリのメソッド、または、直接コマンドを発行する場合のコマンドは、規格(または規格に準じる決まりごと)によって定められる必要がある。
これに対して、ナビゲーションプログラム45によって起動され、ナビゲーションプログラムとIXCを用いてアプリケーション間通信を行うことにより連携して動作する、JAVA(登録商標)によって記載されたアプリケーションプログラム47は、再生処理に必須のものでないため、規格(または規格に準じる決まりごと)に準じていなくても良い。
そこで、アプリケーションプログラム47は、APIライブラリ46とは異なる独自のAPIライブラリ51および52を用意することにより、再生処理に必須である機能群53にアクセスすることも、記録再生装置1が有する再生処理に必須でない機能群54にアクセスすることも可能であり、更に、記録再生装置1のローカルな機能である組み込みアプリケーション49にJNI(JAVA(登録商標) Native Interface)を用いてアクセスすることも可能となる。
記録再生装置1のローカルな機能である組み込みアプリケーション49には、例えば、ウェブブラウジング機能をコントロールする組み込みアプリケーション49−1(いわゆるウェブブラウザ)、録画機能をコントロールする組み込みアプリケーション49−2、データライブラリ機能をコントロールする組み込みアプリケーション49−3(例えば、いわゆるデータベースソフトウェアまたはその機能のうちの一部)、または、GUI表示画面に関する機能をコントロールするとともに、GUI表示画面を参照したユーザによるユーザオペレーションの取得を制御する組み込みアプリケーション49−4などがある。
なお、ここでは、組み込みアプリケーション49を、JAVA(登録商標)とは異なるその他の言語で記述されているものとして説明したが、組み込みアプリケーション49は、JAVA(登録商標)で記述されても良いことはもちろんであり、その場合、アプリケーションプログラム47と組み込みアプリケーション49は、IXCによりアプリケーション間通信を実行する。換言すれば、光ディスク11を再生装置などにおいて再生させるための規格(または規格に準じる決まりごと)に準じる必要がないアプリケーションプログラム47は、組み込みアプリケーション49がJAVA(登録商標)とは異なるその他の言語で記述されているものであっても、JAVA(登録商標)で記述されたものであっても、アプリケーション間通信を行うことができるものである。一方、規格(または規格に準じる決まりごと)に準じる必要があるナビゲーションプログラム45は、組み込みアプリケーション49とアプリケーション間通信を行うことができない。
これらの組み込みアプリケーション49は、バージョンアップされる場合がある。そして、これらの組み込みアプリケーション49は、通常、複数の情報処理装置などに共通して利用されたり、予めバージョンアップが想定されて設計されているため、OSや他のアプリケーションとのインタフェースを変更することなく、バージョンアップされる場合がほとんどである。したがって、組み込みアプリケーション49がバージョンアップされても、アプリケーションプログラム47とのインタフェースが変更されなければ、アプリケーションプログラム47とのアプリケーション間通信機能は維持されるので、ナビゲーションプログラム45がアプリケーションプログラム47と連携して動作する場合に利用する組み込みアプリケーション49がバージョンアップされても、ナビゲーションプログラム45やアプリケーションプログラム47を変更せずに、同様の処理を実行することが可能となる。
具体的には、例えば、GUI表示画面に関する機能をコントロールする組み込みアプリケーション49−4において、例えば、画面のスクロールや、アイコン等の選択決定方法、または、GUI表示画面を参照したユーザによるユーザオペレーションの取得などに関するクラスライブラリを予め決めておくことなどにより、組み込みアプリケーション49がバージョンアップされても、ナビゲーションプログラム45やアプリケーションプログラム47を変更せずに、同様の処理を実行することが可能となる。
このような構成を有することにより、各種の記録媒体や有線または無線の通信を用いて、所定の装置が有する機能を直接制御する制御プログラムを供給したり、または、所定の装置に既にインストールされた制御プログラムに対するコマンドを供給することなどにより、装置を遠隔から制御することができるようになされている場合、すなわち、単独のアプリケーションが所定の装置で実行されるのに過ぎない場合とは異なり、外部から供給されるプログラム(ここでは、ナビゲーションプログラム45)と、装置自身が既にインストールしているアプリケーション(ここでは、アプリケーションプログラム47であり、場合によっては、実質的に組み込みアプリケーション49も含まれる)とが連携して動作されるので、光ディスク11に対応付けられたコンテンツを、さまざまな再生装置などにおいて再生可能なように定められた規格(または規格に準じる決まりごと)に準じつつ、装置独自のサービスを、装置単独ではなく、光ディスク11に関連付けて提供することが可能な記録再生装置1を提供することが出来る。
図9は、図6を用いて説明したコントローラ21の機能のうち、ナビゲーションプログラムを実行している場合に実現される機能構成例を示す機能ブロック図である。
図9の各構成は、予め用意されている、または、光ディスク11に記録されているナビゲーションプログラム45がコントローラ21により実行されることにより実現される。
操作入力取得部61は、操作入力部29から入力された、ユーザからの操作入力を示す信号を取得し、ユーザからの操作入力を示す信号を、メニュー画面表示制御部62、データ取得部63、ローカルストレージディレクトリ管理部64、または、再生制御部67のうちの対応する箇所に出力する。
メニュー画面表示制御部62は、光ディスク11に記録されているコンテンツの音声、または字幕の言語や、映像のアングルを選択するときにユーザにより操作されるボタンや、ダウンロードするアップデートファイルや、削除されるファイルを選択するときにユーザにより操作されるボタンなどを含むメニュー画面を外部の表示装置に表示させる。
データ取得部63は、図1のインターネットインタフェース25において行われる通信、または、ドライブ27によるリムーバブルメディア28との情報の授受を制御する。例えば、データ取得部63は、ユーザが指示したアップデートファイルをサーバ3からダウンロードして取得し、取得したファイルをローカルストレージディレクトリ管理部64に出力する。また、データ取得部63は、後述するファイルシステムマージ処理部66により、必要なファイルを示す情報の供給を受け、必要なファイルを、サーバ3からダウンロードして取得し、取得したファイルをローカルストレージディレクトリ管理部64に出力する。
ローカルストレージディレクトリ管理部64は、ローカルストレージ24のディレクトリを管理し、ローカルストレージ24に対するデータの書き込み、および、ローカルストレージ24からのデータの読み出し、並びに、ローカルストレージ24からのデータの削除を制御する。例えば、ローカルストレージディレクトリ管理部64の制御によりローカルストレージ24から読み出されたPlayListは、メモリ23に出力され、ローカルストレージ24から読み出されたAVストリームの音声データおよび映像データやテキスト字幕ファイルのテキストデータは、トランスコーダ26に出力される。また、ローカルストレージディレクトリ管理部64は、ファイルシステムマージ処理部66により、光ディスク11のファイルシステムと、ローカルストレージ24のファイルシステムとのマージが行われる場合、ローカルストレージ24のファイルシステムに関する情報をファイルシステムマージ処理部66に出力する。
光ディスクディレクトリ管理部65は、光ディスク11のディレクトリを検出して管理し、光ディスク11からの各データの読み出しを制御する。光ディスク11には識別情報であるorganization_id(以下、org_idとも称する)とdisc_id、また、必要に応じてcontent_idが設定されている。光ディスクディレクトリ管理部65の制御により、光ディスク11から読み出されたorg_idとdisc_id(必要に応じてcontent_id)は、データ取得部63、および、ローカルストレージディレクトリ管理部64に出力される。また、光ディスクディレクトリ管理部65の制御により、光ディスク11から読み出されたPlayListは、メモリ23に出力され、光ディスクから読み出されたAVストリームの音声データおよび映像データやテキスト字幕ファイルのテキストデータは、トランスコーダ26に出力される。また、光ディスクディレクトリ管理部65は、ファイルシステムマージ処理部66により、光ディスク11のファイルシステムと、ローカルストレージ24のファイルシステムとのマージが行われる場合、光ディスク11のファイルシステムに関する情報をファイルシステムマージ処理部66に出力する。org_id、disc_id、および、content_idについては、後述する。
ファイルシステムマージ処理部66は、光ディスクディレクトリ管理部65から供給される光ディスク11のファイルシステムと、ローカルストレージディレクトリ管理部64から供給されるローカルストレージ24のファイルシステムをマージし、1つの仮想的なファイルシステムを生成する。ファイルシステムマージ処理部66は、マージすることで生成した仮想的なファイルシステムを再生制御部67に出力する。
また、ファイルシステムマージ処理部66は、ローカルストレージ24に記録されているいくつかのファイルが削除(消去、すなわち、データのdelete)された場合、そのいくつかのファイルの削除により、仮想ファイルシステムにおけるファイルのリンク構造(すなわち、図2乃至図4を用いて説明した様な、光ディスク11のアプリケーションフォーマットに基づいた、PlayListによるClipの再生のためのデータの連携)に不具合が発生するか否かを判断し、仮想ファイルシステムにおけるファイルのリンク構造に不具合が発生すると判断された場合、不具合の解消に必要なファイルを抽出し、データ取得部63に必要なファイルを示す情報を供給して、必要なファイルをダウンロードさせることができる。
更に、ファイルシステムマージ処理部66は、ローカルストレージ24に記録されているいくつかのファイルが削除されたことにより、例えば、仮想ファイルシステムにおいて、いずれのPlayListによっても再生されない(全てのPlayListによって指定されない)ファイルが発生した場合、このような不必要なファイルを削除することをローカルストレージディレクトリ管理部64に指令することができる。
なお、いくつかのファイルが削除されたことにより発生する不必要なファイルを削除するか否かをユーザにより設定可能なようにしても良い。
再生制御部67は、ファイルシステムマージ処理部66から供給される仮想ファイルシステムで指定されるナビゲーションプログラム45を実行し、コンテンツの再生を制御する。具体的には、再生制御部67は、メモリ23に供給され、記憶されたPlayListを参照し、ローカルストレージディレクトリ管理部64または光ディスクディレクトリ管理部65を制御して、光ディスク11、または、ローカルストレージ24に記録されているAVストリームの音声データ、映像データ、および、必要に応じてテキスト字幕ファイルのテキストデータを、仮想ファイルシステムに基づいて読み出させ、図1のトランスコーダ26を制御して、光ディスク11、または、ローカルストレージ24に記録されているAVストリームの音声データ、映像データ、および、必要に応じてテキスト字幕ファイルのテキストデータのデコード(再生)を行わせる。
そして、アプリケーションプログラム連動処理制御部71は、ナビゲーションプログラム45の実行時に、自分自身と連動して実行されるアプリケーションプログラム47が存在するか否かを検出し、自分自身と連動して実行されるアプリケーションプログラム47が存在した場合、IXC制御部72を用いてアプリケーションプログラム47と情報を授受し、所定の動作を実行する。アプリケーションプログラム連動処理制御部71により実行される処理の具体的な例については、図24乃至図39を用いて後述する。
IXC制御部72は、上述したIXCを制御するものであり、ナビゲーションプログラム45とアプリケーションプログラム47とのインタフェースの機能を有する。すなわち、IXC制御部72は、操作入力取得部61乃至再生制御部67の機能により実行される処理により得られるデータまたはパラメータの、アプリケーションプログラム47への送信(具体的には、IxcRegistryへのバインド)を制御したり、アプリケーションプログラム47からの情報の受信(具体的には、IxcRegistryへのルックアップ)を制御する。更に、IXC制御部72は、複数のアプリケーションプログラム47間のインタフェースの機能も有する。
アプリケーションプログラム実行処理部73は、アプリケーションプログラム47の実行を制御する。JNI制御部74は、アプリケーションプログラム47と組み込みアプリケーション49とのJNIによるインタフェースの機能を有する。そして、組み込みアプリケーション実行制御部75は、組み込みアプリケーション49の実行を制御する。また、組み込みアプリケーション49が記録再生装置1の内部で実行されず、記録再生装置1に接続された他の装置において実行される場合、組み込みアプリケーション実行処理部75は、外部の他の装置において実行される処理を制御するものであっても良い。
次に、図10乃至図19を用いて、ナビゲーションプログラム45のファイルシステムマージ処理部66により行われる、光ディスク11のファイルシステムと、サーバ3からダウンロードされたり、リムーバブルメディア28からコピーされたり、もしくは、光ディスク11からコピーされるなどによりローカルストレージ24に記録されたデータ群を管理するファイルシステムのマージについて説明する。
ファイルシステムのマージは、例えば、光ディスク11が記録再生装置1に装着されたとき、光ディスク11に記録されているコンテンツの再生が指示されたとき、光ディスク11またはローカルストレージ24に記録されているいずれかのデータの入出力が指令されたとき、または、ユーザによりマージが指令されたときなどに行われる。
記録再生装置1のシステムが持つネイティブなファイルシステム(光ディスク11またはローカルストレージ24に実際に記録されているデータのファイルシステム)の上位レイヤとして、仮想ファイルシステムが定義される。すなわち、図10に示されるように、サーバ3から新たなデータをダウンロードして、ローカルストレージ24に記録させたり、光ディスク11またはローカルストレージ24に実際に記録されているデータを再生する処理を実行するナビゲーションプログラム45、または、そのナビゲーションプログラム45を扱うユーザが認識可能なのは、上位レイヤである仮想ファイルシステムのみである。換言すれば、仮想ファイルシステムは、ネイティブなファイルシステムを抽象化し、記録再生装置1内の物理デバイスやオペレーティングシステムなどのネイティブな構造を隠蔽するために構築される。
仮想ファイルシステムの役割は、主に、物理デバイス(光ディスク11またはローカルストレージ24)におけるファイル/ディレクトリをマウントして、ユーザから認識される仮想ディスク(Virtual Disc)のファイルシステムを構成することと、ナビゲーションプログラム45に対して、構築された仮想ディスクへのファイルアクセスAPIを提供することである。
例えば、ユーザが、光ディスク11またはローカルストレージ24に記録されているいずれかのファイルへのアクセスを要求する操作入力を行った場合、図11に示されるように、ナビゲーションプログラム45には、仮想ファイルシステムのみしか認識できない。そして、実際の物理デバイスである光ディスク11またはローカルストレージ24に記録されているローカルファイルシステム#1、ローカルファイルシステム#2、または、光ディスク11内のファイルシステムの構造は、ナビゲーションプログラム45と、ナビゲーションプログラム45を取り扱うユーザから隠蔽されるとともに、仮想ファイルシステムを介して、アクセス可能なようになされている。
図11に示されるファイルアクセス要求を実行するために、記録再生装置1のナビゲーションプログラム45は、仮想ファイルシステムが提供するファイル入出力のAPI(Application Programming Interface)を呼び出すことにより、ディスクドライブの物理的な構成やファイルシステムのソフトウェア構成などを意識することなく、光ディスク11またはローカルストレージ24に実際に記録されているデータにアクセスすることができる。すなわち、仮想ファイルシステムのAPIは、実際には、記録再生装置1の内部でネイティブなファイルシステムのAPIを呼び出している。
仮想ファイルシステムは各種のAPI(図6のAPIライブラリ46に含まれるAPI)を提供しており、例えば、指定したファイルを開くopen()、指定したファイルを閉じるclose()、指定したファイルの読み出し位置または書き込み位置を設定するseek()、指定したファイルの状態を取得するstat()、指定したファイルを読み出すread()、指定したファイルを書き込むwrite()などのAPIが提供される。ナビゲーションプログラム45が実行されているとき(すなわち、図9を用いて説明した機能が実現されているとき)、再生制御部67は、これらのAPIを利用して、光ディスク11またはローカルストレージ24に記録されているファイルを操作する。
また、仮想ファイルシステムは、ローカルストレージ24のディスク領域を分割管理する機能を持つ。ローカルストレージ24のディスク領域のうち、ナビゲーションプログラム45により管理されるファイル群の記憶領域は、例えば、図12に示されるように、org_idごとに分割されたディレクトリ構造を有し、org_id直下のディレクトリであるdisc_id以下は、コンテンツオーサ(コンテンツの提供者)により、フレキシブルなファイル/ディレクトリ構造を構成することができる。ローカルストレージ24に記憶されるデータが、ローカルストレージ24のディスク領域のどこに配置されるか、すなわち、ダウンロードされるファイルのファイル/ディレクトリ構造は、ダウンロードされるデータに含まれるファイル管理情報(後述するManifestファイル)の記述により指定される。
ローカルストレージ24のファイル/ディレクトリ構造において、ディレクトリを分割するorg_idは、対応する光ディスクにおける仮想ファイルシステムの構築に用いるための識別子であり、disc_idは、同一のorg_idに対応付けられるそれぞれのコンテンツを識別するための識別子であり、org_idと同様に、対応する光ディスクにおける仮想ファイルシステムの構築に用いられる。org_idおよびdisc_idは、それぞれ、ネットワーク2を介してダウンロードされるデータのファイル管理情報(後述するManifestデータ)に含まれるか、または、光ディスクディレクトリ管理部65により、光ディスク11から検出される情報である。
org_idは、例えば、コンテンツの配給元(コンテンツオーサ)や、コンテンツの製作元などの組織や団体ごとに与えられるようにしても良いし、複数のこれらの組織や団体で、1つのorg_idを利用するようにしても良いし、1つのこれらの組織や団体が、複数のorg_idを利用するようにしても良い。また、disc_idは、1つの光ディスク11に1つのコンテンツが記録されていることを想定した場合、1つの光ディスク11に1つ対応付けられるものであるが、例えば、1つの光ディスク11に複数のコンテンツが記録され、それらのコンテンツにそれぞれdisc_idが対応付けられるようにしても良い。また、1つの光ディスク11に複数のコンテンツが記録されている場合において、1つの光ディスク11には1つのdisc_idが対応付けられ複数のコンテンツのそれぞれに、disc_idとは異なるcontent_idが対応付けられているものとしてもよい。すなわち、content_idは、コンテンツを識別するための識別子である。このように、org_idおよびdisc_idがどのように用いられるものであっても、仮想ファイルシステムは、それぞれのidを基に構築される。ファイル管理情報(Manifestファイル)並びに、org_idおよびdisc_idの詳細については、図13を用いて後述する。
これに対して、アプリケーションからアクセス可能な仮想ディスクのディレクトリ/ファイル構造は、光ディスク11のディレクトリ/ファイル構造に従うようになされている。すなわち、記録再生装置1に装着された光ディスク11に対して、対応するorg_idおよびdisc_id以下のデータのファイル構造が、光ディスク11に記録されているデータのファイル構造とマージされ、光ディスク11のディレクトリ/ファイル構造に基づいたディレクトリ/ファイル構造を有する仮想ディスクの仮想ファイルシステムが構成される。
また、仮想ファイルシステムは、ディレクトリおよびファイルの管理機構のほかに、disc単位でファイル管理情報、すなわち、後述するManifestファイルを管理する機能を持つ。仮想ファイルシステムが、ネイティブなファイルシステムのファイルモデルに対して、メタデータとしてファイル管理情報であるManifestファイルのフィールドを定義する目的は、ユーザに対して、実際にローカルストレージ24に記録されているファイルのパスまたはファイル名を提示するのではなく、コンテンツ内容を表現した名称を提供することと、ダウンロード処理において同一ファイルの二重更新を防止することと、仮想ファイルシステム内でのパス名称、すなわち、光ディスク11再生時におけるパス名称を定義することとの3つである。
そして、仮想ファイルシステムは、メタデータ管理のために、Manifestファイルとメタデータ操作手続きの、二つの機能を提供する。Manifestファイルとは、ダウンロードされたファイルの各種属性を示すメタデータであり、Manifest()は、対応するファイル単位で保存しても、1つのファイルにマージして、Manifest()セクションの識別子であるmanifest_id(図13において後述)をキーに識別可能なようにしてもよい。いずれの形態であっても、ここでは、Manifestファイルと総称する。ローカルストレージ24にダウンロードされたファイルを保持している記録再生装置1は、Manifestファイルを保持していなければならない。また、Manifestファイルは、XMLに代表されるタグ付言語によるテキスト表現をとることも可能である。
図13は、Manifestファイルのシンタックスを示す図である。
manifest_idは、このManifest()セクションの識別子である。
organization_id(org_id)は、対応する光ディスクにおける仮想ファイルシステムの構築に用いる識別子を指定するためのフィールドである。この識別子は、図19を用いて後述する、コンテンツ配布用ファイルのorg_idフィールドを参照することで決定され、アプリケーションプログラムまたはユーザは、このフィールドに自由に値を設定することはできない。
disc_idは、同一のorg_idに対応付けられるそれぞれの光ディスクまたはコンテンツを一意に識別するための識別子を指定するためのフィールドである。disc_idも、org_idと同様に、対応する光ディスクにおける仮想ファイルシステムの構築に用いられる。この識別子は、図19を用いて後述する、コンテンツ配布用ファイルのdisc_idフィールドを参照することで決定され、アプリケーションプログラムまたはユーザは、本フィールドに自由に値を設定することはできない。
次に、permissionは、ユーザに対して可視属性にしてよいか、不可視属性にしておくか、または、ファイルの上書きを禁止するか否かなどの許認可情報をコンテンツオーサが指定するためのフィールドである。なお、permissionの情報は、Manifestファイル以外のいずれかのファイルに記載されたり、または、独立したファイルとして構成されるものとしてもよい。
図14に、図13のManifest()に含まれるpermissionに指定可能な値の一覧を示す。
図14に示されるように、permissionの8ビットのフィールドに、0x00が記載されている場合、このメタデータを付随しているファイルの属性は、ユーザに対して不可視属性であり、permissionの8ビットのフィールドに、0x01が記載されている場合、このメタデータを付随しているファイルの属性は、ユーザに対して可視属性であり、permissionの8ビットのフィールドに、0x02が記載されている場合、このメタデータを付随しているファイルの属性は、上書き禁止属性である。
そして、src_file_nameは、ローカルストレージ24のディスク領域のうち、ナビゲーションプログラム45により管理される記憶領域のファイルシステムにおいて、このファイルがディレクトリ構造のどこに記録されるかを一義に指定できる情報、すなわち、ローカルストレージ24のファイルシステムの階層構造におけるファイル位置を使ってファイルを特定する、いわゆるパスを表す「パス名称」を指定するためのフィールドである。パス名称を表現するためのファイルやディレクトリの名称は、ISO/IEC 646規格に従い符号化されているものとする。
dst_file_nameは、実際にはローカルストレージ24に記憶されるファイルの仮想ディスクにおけるバインド先において、このファイルがディレクトリ構造のどこに記録されるかを一義に指定できる情報、すなわち、仮想ファイルシステムの階層構造におけるファイル位置を使ってファイルを特定する、いわゆるパスを表す「パス名称」を指定するためのフィールドである。パス名称を表現するためのファイルやディレクトリの名称は、ISO/IEC 646規格に従い符号化されているものとする。
なお、src_file_nameとdst_file_nameには、同一名称を指定することもできる。
そして、credentialには、src_file_nameにおいて指定されているファイルが、異なるorg_idのディレクトリ下にある場合に、ファイルアクセス権限をチェックするための情報が記載されている。このことにより、ローカルストレージ24においては、複数のorg_id以下のディレクトリでコンテンツファイルを共有することが可能となる。
次に、メタデータ操作手続きについて説明する。
仮想ファイルシステムは、ナビゲーションプログラム45またはユーザに対して、Manifest()のファイル名称、ファイル位置、または、物理構造などを公開せずに、Manifest()の内容を読み出すためのAPIを定義している。
すなわち、ナビゲーションプログラム45、または、記録再生装置1に予め埋め込まれているソフトウェアで実行されるレジデント(常駐)プログラムは、以下のAPIを呼び出すことにより間接的にManifest()にアクセスすることができる。
getProperty
引数1:
文字列型データ
メタデータ操作の対象となるファイルの絶対パス名称
引数2:
文字列型データ
読み出したいメタデータの要素名
戻り値:
文字列型データ
引数で指定した要素に対応するメタデータ
機能:
Manifest()からメタデータを読み出す。
なお、実際には、型情報などの詳細なAPIの定義は、記録再生装置1のソフトウェア実行環境のプログラミング言語仕様に依存して変更されなければならない。
図15は、光ディスク11のファイルシステムの例を示す図である。図15に示されるように、光ディスク11のファイルシステムはディレクトリ構造を有している。
光ディスク11の「root」の下には「BDMV」の名前が設定されたディレクトリが用意され、そのディレクトリに、「Info.bdmv」の名前が設定されたファイルと、「MovieObjects.bdmv」の名前が設定されたファイルが格納されている。以下、適宜、これらのファイルをそれぞれInfoファイル、MovieObjectファイルと称する。また、適宜、各ファイルについては、「ファイル名」に「ファイル」を付加した形で、または、各ディレクトリについては、「ディレクトリ名」に「ディレクトリ」を付加した形で称する。
Infoファイルは、光ディスク11を再生するメニューに関する情報を含む。記録再生装置1は、例えば、光ディスク11のコンテンツを全て再生する、特定のチャプタのみ再生する、繰り返し再生する、初期メニューを表示するなどの内容の項目を含む再生メニュー画面を、Infoファイルに基づいて表示装置に表示させる。Infoファイルには各項目が選択されたときに実行するMovieObjectを設定することができ、ユーザにより再生メニュー画面から1つの項目が選択された場合、記録再生装置1はInfoファイルに設定されているMovieObjectのコマンドを実行する。
MovieObjectファイルは、MovieObjectを含むファイルである。MovieObjectは、光ディスク11に記録されているPlayListの再生を制御するコマンド、すなわち、ナビゲーションプログラム45が発行するコマンドを含み、例えば、記録再生装置1は、光ディスク11に記録されているMovieObjectの中から1つを選択して、実行することにより、光ディスク11に記録されているコンテンツを再生させることができる。
さらに、MovieObjectには、アプリケーションプログラム47と連動して処理を実行するために必要な各種コマンドが含まれている。具体的には、例えば、ナビゲーションプログラム45と連動して実行されるアプリケーションプログラム47が記録再生装置1にインストールされているか否かを問い合わせるコマンド、ナビゲーションプログラム45と連動して実行されるアプリケーションプログラム47が記録再生装置1にインストールされている場合に、そのアプリケーションプログラム47を起動させるコマンドなどが、MovieObjectに含まれている。
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ストリームファイルやサブストリームファイルとは独立して利用されるデータなどのファイルが格納される。図15の例においては、AUXDATAディレクトリには、「11111.otf」の名前がつけられている字幕のフォントのファイル、「sound.bdmv」の名前が設定された効果音が格納されている。
また、光ディスク11には、識別子であるorg_id、および、disc_id、また、必要に応じてcontent_idが、ユーザなどにより書き換えることができないセキュアな電子データとして、または、物理的にピットによって記録されている。
図16は、ローカルストレージ24のディスク領域のうち、ナビゲーションプログラム45により管理される記憶領域のファイルシステムの例を示す図である。図16に示されるように、ローカルストレージ24のファイルシステムもディレクトリ構造を有している。
ローカルストレージ24の「root」の下には、少なくとも1つの「org_id」の名前が設定されたディレクトリが用意され、「org_id」ディレクトリの下には、少なくとも1つの「disc_id」の名前が設定されたディレクトリが用意されている。「org_id」および「disc_id」は、仮想ファイルシステムの構築に用いられるものであり、ローカルストレージ24の「root」の下のそれぞれの、「org_id」に含まれる全ての「disc_id」は、それぞれが区別可能なように、異なるものとされる。そして、「disc_id」のディレクトリには、Manifest()セクションの集合、または、1つのManifest()セクションからなるManifestファイルが含まれている。そして、それ以外のディレクトリやファイルの構造は、コンテンツオーサにより自由に設定可能であり、例えば、図15を用いて説明した光ディスク11のディレクトリ/ファイル構造と同様のものであっても良いし、図16に示されるように、図15を用いて説明した光ディスク11のディレクトリ/ファイル構造とまったく異なるものであっても良い。
例えば、図16においては、「disc_id」のディレクトリには、Manifestファイル以外に、「MainMovie」ディレクトリ、「SubTitle」ディレクトリ、「AUXDATA」ディレクトリなどの複数のフォルダが設定され、これらのディレクトリは、更に、フォルダ、または、ファイルを含むことができる。
図16に示されるローカルストレージ24のディレクトリ/ファイル構造は、記録再生装置1において実行されるナビゲーションプログラム45、または、ユーザから隠蔽されている。
例えば、図13を用いて説明したManifest()セクションにおいて、src_file_nameのフィールドに「/MainMovie/movie01/main.r1.jp.mp2」とパス名称が指定され、dst_file_nameのフィールドに「/STREAM/01002.m2ts」とパス名称が指定されている場合、ダウンロードされたデータは、図17に示されるように、ローカルストレージ24において、対応するorg_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のアプリケーションフォーマット等の規格に合致した再生処理を実行させることができるので好適である。
仮想ディスクにおけるディレクトリ/ファイル構造の例を図18に示す。
図18に示される仮想ディスクのディレクトリ/ファイル構造において、「root」の下には「BDMV」の名前が設定されたディレクトリが用意され、そのディレクトリに、「Info.bdmv」の名前が設定されたファイルと、「MovieObjects.bdmv」の名前が設定されたファイルが格納されている。
Infoファイルは、光ディスク11およびローカルストレージ24に記録され、アプリケーションプログラムから仮想ディスクに記録されているものとして取り扱われるコンテンツを再生するメニューに関する情報を含む。記録再生装置1は、例えば、仮想ディスクに記録されているものとして取り扱われるコンテンツを全て再生する、特定のチャプタのみ再生する、繰り返し再生する、初期メニューを表示するなどの内容の項目を含む再生メニュー画面を、Infoファイルに基づいて表示装置に表示させる。Infoファイルには各項目が選択されたときに実行するMovieObjectを設定することができ、ユーザにより再生メニュー画面から1つの項目が選択された場合、記録再生装置1はInfoファイルに設定されているMovieObjectのコマンドを実行する。
MovieObjectファイルは、MovieObjectを含むファイルである。MovieObjectは、仮想ディスクに記録されているものとして取り扱われるPlayListの再生を制御するコマンド、すなわち、ナビゲーションプログラム45が発行するコマンドを含み、例えば、記録再生装置1は、仮想ディスクに記録されているものとして取り扱われるMovieObjectの中から1つを選択して、実行することにより、仮想ディスクに記録されているものとして取り扱われるコンテンツを再生させることができる。さらに、MovieObjectには、アプリケーションプログラム47と連動して処理を実行するために必要な各種コマンドが含まれている。
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のフィールドにおいて指定された名称となるが、例えば、図18を用いて説明した、仮想ディスクにおけるディレクトリ/ファイル構造は、ナビゲーションプログラム45その他のアプリケーションまたはユーザから隠蔽されないものであるので、記録再生装置1において実行されるアプリケーションによっては、仮想ディスクにおけるディレクトリ/ファイル構造を、ユーザに提示するようにしてもかまわない。
次に、図19を用いて、コンテンツオーサがコンテンツを配布する際のコンテンツ配布用ファイル形式の定義について説明する。コンテンツの配布の際のファイル形式は、コンテンツファイル単位での個別配布であっても良いが、図19に示されるように、メタデータ(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をキーに識別可能なようにしてもよい。
organization_id(org_id)は、対応する光ディスクにおける仮想ファイルシステムの構築に用いる識別子を指定するためのフィールドである。
disc_idは、同一のorg_idに対応付けられるそれぞれの光ディスク11、または、コンテンツを識別するための識別子を指定するためのフィールドである。すなわち、このアーカイブは、disc_idで指定される光ディスク11のコンテンツに対するアップデートデータである。
permissionは、ユーザに対して可視属性にしてよいか、不可視属性にしておくか、または、ファイルの上書きを許可するか否かなどの許認可情報をコンテンツオーサが指定するためのフィールドである。Permissionにおいて指定可能な値については、図14を用いて説明した場合と同一である。なお、permissionの情報は、Manifestファイル以外のいずれかのファイルに記載されたり、または、独立したファイルとして構成されるものとしてもよい。
src_file_nameは、図17を用いて説明した様に、ローカルストレージ24にて記録されるべきファイルのパス名称を指定するためのフィールドである。ファイル/ディレクトリ名称は、ISO/IEC 646規格に従い符号化されているものとする。
dst_file_nameは、図17を用いて説明した様に、仮想ディスク(仮想ファイルシステム)におけるバインド先のファイルのパス名称を指定するためのフィールドである。ファイル/ディレクトリ名称は、ISO/IEC 646規格に従い符号化されているものとする。
なお、src_file_nameとdst_file_nameには、同一名称を指定することもできる。
そして、credentialには、src_file_nameにおいて指定されているファイルが、異なるorg_idのディレクトリ下にある場合に、ファイルアクセス権限をチェックするための情報が記載されている。このことにより、ローカルストレージ24においては、複数のorg_id以下のディレクトリでコンテンツファイルを共有することが可能となる。
file_sizeは、圧縮前のファイルサイズをバイト単位で指定するためのフィールドである。
file_dataは、ファイルデータをバイトシーケンスとして指定するためのフィールドである。
図19を用いて説明した様なコンテンツ配布用ファイル形式のデータがダウンロードされ、記録再生装置1において、装着された光ディスク11に記録されているデータとマージされて仮想ディスクにおける仮想ファイルシステムが構築される。これにより、記録再生装置1を用いて光ディスク11に記録されているコンテンツを再生させるユーザからは、光ディスク11に記録されているコンテンツに、例えば、ボーナストラックや、異なる言語での音声または表示字幕が追加されてアップデートされたように感じられる。
上述したファイル形式にしたがって構成されるコンテンツが更新される場合は、例えば、図18を用いて説明した仮想ファイルシステムにおいて、インフォメーションファイル(Info.bdmv)、ムービーオブジェクトファイル(Movieobjects.bdmv)、プレイリストファイル(*****.mpls)、クリップインフォメーションファイル(*****.clpi)、ストリームファイルまたはAUXデータファイル(*****.m2ts, *****bdmv,*****.otf)などが追加あるいは更新されるように、新たなデータファイルがダウンロードされて、バインディングされる。これらのファイルがダウンロードされて、装着されている装着された光ディスク11に記録されているコンテンツに関連付けられて再生されるためには、MainPathの追加やSubPathの追加などが実行される。
なお、ファイルの追加更新時、ローカルストレージ24に予め保存されていたファイルと、新たに取得されたファイルとのファイル名が同一であった場合、permissionに記載されている属性においてファイルの上書きが許可されていれば上書きコピーが実行され、permissionに記載されている属性においてファイルの上書きが許可されていなければ、上書きコピー処理は実行されない。その場合、ファイルのコピー処理が実行されないものとしても、ファイル名を変更してファイルコピー処理が実行されるものとしても良い。また、新たに取得されたファイルのファイル名が、ローカルストレージ24に予め保存されていたファイルのいずれとも同一のファイル名ではない場合、ファイルはローカルストレージ24に新規追加されて記憶される。
なお、光ディスク11には、上述したファイル構成以外のAVストリームデータを記録させ、トランスコーダ26によりデコードして再生させたり、フォーマット変換を実行して、異なる光ディスク11などに記録させることが可能であるが、上述したファイル構成以外のAVストリームデータにおいては、ローカルストレージ24にダウンロードされたファイルを用いて、仮想ファイルシステムを構築することはできない。したがって、光ディスク11に上述したファイル構成以外のAVストリームデータが記録されている場合、記録再生装置1を利用するユーザにとって、光ディスク11に記録されているファイルが追加されたり、その一部分だけが更新されるように、データを扱うことはできない。
また、記録再生装置1においてPlayListファイルの編集を実行しなくても良いように、データの配布元(コンテンツオーサ)で、追加・更新に必要なファイルのパッケージングが予め行われ、ディスクベース(すなわち、Disc_idで示されるディレクトリのデータごと)で、ファイルのダウンロードが行われるようにしても良い。
このようにして、記録再生装置1においては、ネットワーク2を介して、サーバ3から、例えば、図19に示されるような構成を有する新たなデータをダウンロードして、メタデータであるManifest()に記載されているsrc_file_nameに示されるパス名称を基に、ローカルストレージ24に記憶され、Manifest()に記載されているdst_file_nameに示されるパス名称を基に、仮想ファイルシステム内のパスが設定され、記録再生装置1のアプリケーション(例えば、再生処理を行うナビゲーションプログラム45)は、仮想ファイルシステムを基に、すなわち、dst_file_nameに示されるパスに基づいて、光ディスク11に記録されているデータと、ローカルストレージ24に記録されているデータを区別せずに処理することができるようになされている。
すなわち、記録再生装置1においては、データの追加指示(ダウンロード指示)を受けると、該当するManifestファイル(全てのManifestファイルであっても、一部のManifestファイルであっても良い)を、ネットワーク2を介してサーバ3に送信し、サーバ3から、現在追加可能なコンテンツ一覧を取得する。アプリケーションプログラムは、追加可能なコンテンツ一覧をユーザに提示し、ユーザは、提示された一覧の中からダウンロードするコンテンツを選択する。
ユーザにより、ダウンロードするコンテンツが選択された場合、データをサーバ3からダウンロードする処理を実行可能なアプリケーション(例えば、データの追加処理や再生処理を実行可能なアプリケーションプログラムと同一であっても、それぞれ個別のものであっても良い)により、データのダウンロードが開始される。
ダウンロードが完了すると、ダウンロードされたファイルパッケージ群は、ファイルシステムをマネジメントするナビゲーションプログラム45により、仮想ファイルシステム上にマウントされ、スタティックバインディングまたはダイナミックバインディングなどにより、ネイティブなファイルシステムと仮想ファイルシステムとが同期される。
次に、図20乃至図23のフローチャートを参照して、記録再生装置1においてナビゲーションプログラムが実行されることにより、外部からファイルを新たに取得してローカルストレージ24に記憶するとともに仮想ファイルシステムを構築することにより、光ディスク11に記録されている情報とローカルストレージ24に記憶されている情報とを再生させるために必要な処理について説明する。
まず、図20のフローチャートを参照して、ファイルベースの追加および更新処理について説明する。
ステップS1において、コントローラ21で実行されるナビゲーションプログラム45の操作入力取得部61は、操作入力部29から供給される信号を基に、ユーザから、ファイルベース、すなわち、所定のdisc_idで示されるディレクトリに含まれるファイルの追加処理を開始する指令を受けたか否かを判断する。ステップS1において、ファイルの追加処理を開始する指令を受けていないと判断された場合、ファイルの追加処理を開始する指令を受けたと判断されるまで、ステップS1の処理が繰り返される。
ステップS1において、ファイルの追加処理を開始する指令を受けたと判断された場合、ステップS2において、ローカルストレージディレクトリ管理部64は、データ取得部63を制御し、インターネットインタフェース25およびネットワーク2を介してサーバ3にアクセスし、現在の仮想ファイルシステムの状態を示す情報、例えば、対応するManifest()セクションのManifest_idを送信する。
ステップS3において、データ取得部63は、インターネットインタフェース25を制御し、ネットワーク2を介して、サーバ3から、ダウンロード可能なファイルの一覧に対応する情報を受信したか否かを判断する。
ステップS3において、ダウンロード可能なファイルの一覧に対応する情報を受信できなかったと判断された場合、ステップS4において、メニュー画面表示制御部62は、ファイルの追加処理が不可能であることをユーザに通知するためのエラーメッセージの表示を制御し、処理が終了される。
ステップS3において、ダウンロード可能なファイルの一覧に対応する情報を受信したと判断された場合、ステップS5において、データ取得部63は、サーバ3から送信され、インターネットインタフェース25により受信されたダウンロード可能なファイルの一覧に対応する情報を、メニュー画面表示制御部62に供給する。メニュー画面表示制御部62は、ダウンロード可能なファイルの一覧から、ユーザが所望のものを選択することができるようになされているメニュー画面を表示装置に表示させる。
ステップS6において、操作入力取得部61は、メニュー画面表示制御部62の処理により表示が制御されているメニュー画面のボタンまたはアイコンなどがユーザにより操作され、追加したい項目が選択されたか否かを判定する。ステップS6において、追加したい項目が選択されていないと判断された場合、選択されたと判断されるまで、ステップS6の処理が繰り返される。
ステップS6において、追加したい項目が選択されたと判断された場合、ステップS7において、操作入力取得部61は、ユーザにより選択されたアップデートの内容を表す情報を、データ取得部63に供給する。データ取得部63は、インターネットインタフェース25を制御し、要求するファイルを示す情報をサーバ3に送信させ、ユーザが選択したファイルのダウンロードを要求する。
ステップS8において、データ取得部63は、インターネットインタフェース25を制御し、サーバ3によりダウンロードファイルとして用意される、PlayListファイル、ClipInformationファイル、ClipAVストリームファイル、オーディオファイル、テキスト字幕ストリームファイル、または、フォントファイルなどをダウンロードさせ、これらのファイルがダウンロードされたことを、ローカルストレージディレクトリ管理部64に通知する。
ステップS9において、ローカルストレージディレクトリ管理部64は、ダウンロードされたファイルのManifest()に含まれるorg_idとdisc_idとに基づいて、それらのIDで識別されるディレクトリがローカルストレージ24に既に存在するか否かを判断して、対応するディレクトリが既に存在する場合は、そのディレクトリにダウンロードされたデータファイルを展開し、対応するディレクトリが存在しない場合、org_idとdisc_idで指定される新たなディレクトリをローカルストレージ24に作成し、ダウンロードされたデータファイルを展開する。
ステップS10において、図21を用いて後述するバインディング処理が実行され、処理が終了される。
このような処理により、サーバ3からアップデートファイルがダウンロードされて、ローカルストレージ24に記録され、光ディスク11に記録されているコンテンツのアップデートファイルとして扱われるようにすることができる。
すなわち、このような処理により、例えば、映画などのコンテンツが記録された光ディスク11を購入したユーザが、光ディスク11に予め記録されていない言語の字幕を表示させるために必要なファイルや、ボーナストラックを視聴するために必要なファイルなどを取得して、ローカルストレージ24に記憶させるとともに、光ディスク11に記録されているデータとローカルストレージ24に記憶されているデータとを、再生処理を実行するナビゲーションプログラム45が区別しないで取り扱うことができ、物理的なデータの記憶をユーザまたはナビゲーションプログラム45から隠蔽することができるような仮想ファイルシステムを構築させることができる。
また、以上のようなアップデートファイルのダウンロードは、有料で行うことができるものであってもよいし、無料で行うことができるものであってもよい。
次に、図21のフローチャートを参照して、図20のステップS10において実行される、バインディング処理について説明する。
ステップS21において、ローカルストレージディレクトリ管理部64は、ローカルストレージ24に記録されているダウンロードされたデータ群から、対応するdisc_idのディレクトリを抽出し、ファイルシステムマージ処理部66に供給する。
ステップS22において、ファイルシステムマージ処理部66は、Manifestファイルのsrc_file_nameおよびdst_file_nameを参照する。
ステップS23において、ファイルシステムマージ処理部66は、ステップS22において参照されたsrc_file_nameおよびdst_file_nameを基に、ネイティブなファイルシステムと、仮想ファイルシステムとをバインディングする。
具体的には、src_file_nameには、ローカルストレージ24のファイルシステムにおいて、このファイルがディレクトリ構造のどこに記録されるかを一義に指定できる情報、いわゆるパスを表す「パス名称」が指定され、dst_file_nameには、実際にはローカルストレージ24に記憶されるファイルの仮想ディスクにおけるバインド先において、このファイルがディレクトリ構造のどこに記録されるかを一義に指定できる情報、いわゆるパスを表す「パス名称」が指定される。
例えば、図13を用いて説明したManifest()セクションにおいて、src_file_nameのフィールドに「/MainMovie/movie01/main.r1.jp.mp2」とパス名称が指定され、dst_file_nameのフィールドに「/STREAM/01002.m2ts」とパス名称が指定されている場合、ファイルシステムマージ処理部66は、図17を用いて説明したように、ダウンロードされたデータが、ローカルストレージ24において、対応するorg_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以下の領域にディレクトリやファイルを新しく追加することが可能となる。
次に、図22のフローチャートを参照して、ディスクベースの追加および更新処理について説明する。
ステップS41において、コントローラ21において実行されているナビゲーションプログラム45の操作入力取得部61は、操作入力部29から供給される信号を基に、ユーザから、ディスクベース、すなわち、ローカルストレージ24に実際に記録されるデータのdisc_id以下のファイルの追加処理を開始する指令を受けたか否かを判断する。ステップS41において、ファイルの追加処理を開始する指令を受けていないと判断された場合、ファイルの追加処理を開始する指令を受けたと判断されるまで、ステップS41の処理が繰り返される。
ステップS41において、ファイルの追加処理を開始する指令を受けたと判断された場合、ステップS42において、コントローラ21のローカルストレージディレクトリ管理部64は、データ取得部63を制御し、インターネットインタフェース25およびネットワーク2を介してサーバ3にアクセスし、現在の仮想ファイルシステムの状態を示す情報、例えば、対応するdisc_id以下のManifest ファイルに含まれる全てのManifest()セクションのManifest_idを送信する。
ステップS43において、データ取得部63は、インターネットインタフェース25を制御し、ネットワーク2を介して、サーバ3から、ダウンロード可能なディスクベースのファイルの一覧に対応する情報を受信したか否かを判断する。
ステップS43において、ダウンロード可能なディスクベースのファイルの一覧に対応する情報を受信できなかったと判断された場合、ステップS44において、メニュー画面表示制御部62は、ファイルの追加処理が不可能であることをユーザに通知するためのエラーメッセージの表示を制御し、処理が終了される。
ステップS43において、ダウンロード可能なファイルの一覧に対応する情報を受信したと判断された場合、ステップS45において、データ取得部63は、サーバ3から送信され、インターネットインタフェース25により受信されたダウンロード可能なディスクベースのファイルの一覧に対応する情報を、メニュー画面表示制御部62に供給する。メニュー画面表示制御部62は、ダウンロード可能なファイルの一覧から、ユーザが所望のものを選択することができるようになされているメニュー画面を表示装置に表示させる。
ステップS46において、操作入力取得部61は、メニュー画面表示制御部62の処理により表示が制御されているメニュー画面のボタンまたはアイコンなどがユーザにより操作され、追加したい項目が選択されたか否かを判定する。ステップS46において、追加したい項目が選択されていないと判断された場合、選択されたと判断されるまで、ステップS46の処理が繰り返される。
ステップS46において、追加したい項目が選択されたと判断された場合、ステップS47において、操作入力取得部61は、ユーザにより選択されたアップデートの内容を表す情報を、データ取得部63に供給する。データ取得部63は、インターネットインタフェース25を制御し、要求するファイルを示す情報をサーバ3に送信させ、ユーザが選択したディスクベースのファイルのダウンロードを要求する。
ステップS48において、データ取得部63は、インターネットインタフェース25を制御し、サーバ3によりダウンロードファイルとして用意されるディスクベースのファイル群をダウンロードさせ、ディスクベースのファイル群がダウンロードされたことを、ローカルストレージディレクトリ管理部64に通知する。
ステップS49において、ローカルストレージディレクトリ管理部64は、ダウンロードされたファイルのManifest()に含まれるorg_idとdisc_idとに基づいて、それらのIDで識別されるディレクトリをローカルストレージ24に作成し、ダウンロードされたディスクベースのデータを展開する。
ステップS50において、図21を用いて説明したバインディング処理が実行され、処理が終了される。
このような処理により、サーバ3からアップデートファイルがディスクベースでダウンロードされて、ローカルストレージ24に記録されて、光ディスク11に記録されているコンテンツのアップデートファイルとして扱われるようにすることができる。
すなわち、このような処理により、例えば、映画などのコンテンツが記録された光ディスク11を購入したユーザが、光ディスク11に予め記録されていない言語の字幕を表示させるために必要なファイルや、ボーナストラックを視聴するために必要なファイルなどをディスクベースで取得して、ローカルストレージ24に記憶させるとともに、光ディスク11に記録されているデータとローカルストレージ24に記憶されているデータとを、再生処理などを実行するナビゲーションプログラム45が区別しないで取り扱うことができ、物理的なデータの記憶をユーザまたはナビゲーションプログラム45から隠蔽することができるような仮想ファイルシステムを構築させることができる。
また、このようなディスクベースのアップデートファイルのダウンロードも、ファイルベースでダウンロードが行われる場合と同様に、有料で行うことができるものであってもよいし、無料で行うことができるものであってもよい。
また、図20においては、ユーザによってファイルベースのダウンロードが指令された場合の処理を説明し、図22においては、ユーザによってディスクベースのダウンロードが指令された場合の処理を説明したが、例えば、ユーザは、ファイルベースとディスクベースとを区別せずにファイルのダウンロード開始の指示を行うことができるようにしても良いことは言うまでもない。すなわち、サーバ3からダウンロードされるデータの形式がファイルベースであるかディスクベースであるかによって、ローカルストレージディレクトリ管理部64によるローカルストレージ24へのダウンロードされたデータの展開方法を変更することができるようにしても良い。
以上説明したコンテンツのアップデートデータファイルの追加および更新処理や、バインディング処理など、ナビゲーションプログラム45のみにより実行される処理は、基本的に、同一のdisc_idに関連付けられたデータファイルに対して実行される処理であり、換言すれば、装着された光ディスク11に関する処理として実行される。
すなわち、上述したように、ナビゲーションプログラム45を実行することにより、ある光ディスク11に対応するアップデートデータがダウンロードされて、ローカルストレージ24の対応するorg_idおよびdisc_idによって規定されるパスにダウンロードされたアップデートデータが記憶されることにより、光ディスク11とローカルストレージ24の対応するorg_idおよびdisc_idによって規定される記憶領域とが区別されずに、ファイルの再生処理が実行されるようになされている。そして、基本的には、同一の光ディスク11が、ナビゲーションプログラム45を実行可能な記録再生装置1とは異なる再生装置に装着された場合であっても、その再生装置においては同様の処理が実行可能なようになされているし、異なる光ディスクがこの記録再生装置1に装着された場合、その光ディスクを再生させるための異なるナビゲーションプログラムにより、ローカルストレージ24の異なるdisc_idによって規定される記憶領域とのバインディング処理が実行される。
これに対して、記録再生装置1にアプリケーションプログラム47がインストールされている場合、ナビゲーションプログラム45とアプリケーションプログラム47を連動して実行することができ、複数の光ディスク11に対応させて、一連の処理を実行させることも可能となる。
次に、図23のフローチャートを参照して、再生処理およびファイルシステム構成処理1について説明する。
ステップS141において、コントローラ21は、光ディスク11が装着されたか否かを判断する。ステップS141において、光ディスク11が装着されていないと判断された場合、光ディスク11が装着されたと判断されるまで、ステップS141の処理が繰り返される。
ステップS141において、光ディスク11が装着されていると判断された場合、ステップS142において、コントローラ21は、ナビゲーションプログラム45を実行する。
ステップS143において、ナビゲーションプログラム45の光ディスクディレクトリ管理部65は、光ディスク11からorg_idとdisc_idを読み出し、読み出したorg_idとdisc_idをローカルストレージディレクトリ管理部64、ファイルシステムマージ処理部66、および、アプリケーションプログラム連動処理制御部71に供給する。
ステップS144において、図25を用いて後述する連動処理が実行される。
ステップS145において、ナビゲーションプログラム45の再生制御部67は、操作入力取得部61から供給されるユーザの操作入力を基に、ユーザから、コンテンツの再生を指令する操作入力を受けたか否かを判断する。ステップS145において、コンテンツの再生を指令する操作入力を受けなかったと判断された場合、処理は、後述するステップS150に進む。
ステップS145において、コンテンツの再生を指令する操作入力を受けたと判断された場合、操作入力取得部61は、ユーザの操作入力に対応する信号を、光ディスクディレクトリ管理部65に供給し、光ディスクディレクトリ管理部65は、光ディスク11から読み出したorg_idとdisc_idをローカルストレージディレクトリ管理部64に出力するので、ステップS146において、図21を用いて説明したバインディング処理が実行される。
ステップS147において、再生制御部67は、ローカルストレージディレクトリ管理部64および光ディスクディレクトリ管理部65を制御して、ナビゲーションプログラムが再生区間として指定するPlayListとSubPlayItemを取得し、取得したPlayListとSubPlayItemが参照するストリームファイル(AVファイル、オーディオファイル、テキスト字幕ファイルなど)を読み出させて、トランスコーダ26に供給させる。ここでは、PlayListやSubPlayItemにより表されるタイムスタンプがClip informationによりアドレスに変換され、AVストリームなどに対するアクセスが行われる。
ステップS148において、再生制御部67は、トランスコーダ26を制御して、PlayItemにより指定されるコンテンツを再生させる。
ステップS149において、操作入力取得部61は、再生タイトル(再生されるコンテンツ)の切り替えを指令する操作入力を受けたか否かを判断する。ステップS149において、再生タイトルの変更を指令する操作入力を受けていないと判断された場合、処理は、後述するステップS150に進む。
ステップS149において、再生タイトルの変更を指令する操作入力を受けたと判断された場合、操作入力取得部61は、ユーザの操作入力に対応する信号を、光ディスクディレクトリ管理部65に供給し、光ディスクディレクトリ管理部65は、光ディスク11から読み出したorg_idとdisc_idをローカルストレージディレクトリ管理部64に出力するので、処理は、ステップS146に戻り、それ以降の処理が繰り返される。
ステップS145において、コンテンツの再生を指令する操作入力を受けなかったと判断された場合、または、ステップS149において、再生タイトルの変更を指令する操作入力を受けていないと判断された場合、ステップS150において、操作入力取得部61は、ユーザから、ファイルの追加が指令されたか否かを判断する。
ステップS150において、ファイルの追加が指令されたと判断された場合、ステップS151において、データ取得部63、または、ローカルストレージディレクトリ管理部64などは、例えば、図20、および、図22を用いて説明した様にして、ファイルを追加する処理を実行する。
ステップS152において、図21を用いて説明したバインディング処理が実行される。
ステップS150において、ファイルの追加が指令されていないと判断された場合、または、ステップS152の処理の終了後、ステップS153において、操作入力取得部61は、仮想ファイルシステムの更新が指令されたか否かを判断する。
ステップS153において、仮想ファイルシステムの更新が指令されたと判断された場合、例えば、仮想ファイルシステムを更新するために定義されたAPI(例えば、update())が呼び出され、ステップS154において、図21を用いて説明したバインディング処理が実行される。
ステップS153において、仮想ファイルシステムの更新が指令されていないと判断された場合、または、ステップS154の処理の終了後、ステップS155において、操作入力取得部61は、記録再生装置1の処理の終了(例えば、ナビゲーションプログラム45の終了や、記録再生装置1の電源のオフ)が指令されたか否かを判断する。
ステップS155において、記録再生装置1の処理の終了が指令されていないと判断された場合、処理は、ステップS144に戻り、それ以降の処理が繰り返される。ステップS155において、記録再生装置1の処理の終了が指令されたと判断された場合、処理が終了される。
このような処理により、予め光ディスク11に記録されているデータ、および、サーバ3からダウンロードされ、ローカルストレージ24に記憶されているデータが、所定のタイミングでバインディングされて仮想ファイルシステムが構築され、仮想ファイルシステムを基に、コンテンツが再生される。
なお、ここでは、ファイルの追加処理が実行された後、バインディングが行われるものとして説明したが、ファイルの削除処理が行われた後においても、バインディングが行われることは言うまでもない。
また、ステップS143において、光ディスク11からorg_idとdisc_idが読み出されて、アプリケーションプログラム連動処理制御部71に供給されているので、ステップS144において、コントローラ21は、アプリケーションプログラム47と対応するナビゲーションプログラム45との連動処理を実行することができる。
また、ここでは、図25を用いて後述する連動処理が、バインディング処理やコンテンツの再生処理に先立って実行されるものとして説明したが、連動処理は、ナビゲーションプログラム45の実行中のいかなるタイミングで実行されていてもよいことは言うまでもない。すなわち、図25を用いて後述する連動処理は、ナビゲーションプログラム45の記述に基づいて、ナビゲーションプログラム45の作成者または提供者の所望のタイミングで実行させるようにすることが可能である。
また、コントローラ21は、ローカルストレージ24に記憶されているアプリケーションプログラム47と、光ディスク11に記録されているナビゲーションプログラム45とを、それぞれ、メモリ23に展開し、連動させて動作させることにより、記録再生装置1の動作を制御することができる。
図24を参照して、アプリケーションプログラム47とナビゲーションプログラム45との連動について説明する。
上述したように、コントローラ21は、例えばJAVA(登録商標)などの、仮想マシンの実装によりマルチプラットフォームで動作可能なアプリケーションと、コントローラ21における実行環境でのみ動作可能な組み込みアプリケーションとのいずれも実行することが可能であるが、記録再生装置1の組み込みアプリケーションのみで提供可能な機能は限られてしまう。
また、記録再生装置1においては、上述したように、ナビゲーションプログラム45によって仮想ファイルシステムが構築され、光ディスク11とローカルストレージ24とのそれぞれのデータ記憶領域を1つの領域のようにして取り扱うことが可能なようになされている。
そこで、コントローラ21において、JAVA(登録商標)の動作環境が用意されており、ナビゲーションプログラム45がJAVA(登録商標)で記述され、図6を用いて説明したようにJVM44上で動作可能なようになされている場合(換言すれば、ナビゲーションプログラム45とアプリケーションプログラム47とが共通実行環境で動作するようになされている場合)、同様にJVM44上で動作可能な他のアプリケーションプログラム47を記憶するための領域を、ナビゲーションプログラム45によりバインディングされるファイルシステムの記憶領域とは別にローカルストレージ24またはメモリ23に用意しておくことにより、IXC (Inter-Xlet Communication)を利用して、それぞれを連携させて動作させることが可能となる。
例えば、ナビゲーションプログラム45とアプリケーションプログラム47とが仮想マシンの実装によりマルチプラットフォームで動作可能なアプリケーションではなかった場合、記録再生装置1の独自の機能を提供することが可能なアプリケーションプログラム47は、光ディスク11を再生可能な各メーカにより提供される再生装置のソフトウェアプラットフォームに基づいて設計されるので、ナビゲーションプログラム45とアプリケーションプログラム47とを連携させて動作させたい場合、ナビゲーションプログラム45をそれぞれのソフトウェアプラットフォーム上で動作するアプリケーションプログラム47に対応させて用意する必要があった。
換言すれば、ナビゲーションプログラム45とアプリケーションプログラム47とが仮想マシンの実装によりマルチプラットフォームで動作可能なアプリケーションであれば、光ディスク11を再生可能な各メーカにより提供される再生装置のソフトウェアプラットフォームが共通化されていなくても、光ディスク11に記録されているナビゲーションプログラム45から記録再生装置1の独自の機能を提供することが可能なアプリケーションプログラム47を起動するためのAPIを容易に提供することができる。
すなわち、ナビゲーションプログラム45とアプリケーションプログラム47とを、仮想マシンの実装によりマルチプラットフォームで動作可能なアプリケーションであるJAVA(登録商標) Xletとして構成することにより、IXCを利用してナビゲーションプログラム45とアプリケーションプログラム47との通信を実行して連動した処理を実行することができるとともに、アプリケーションプログラム47は、独自のAPIまたはJNI(JAVA(登録商標) Native Interface)を利用して、記録再生装置1に予め埋め込まれている機能である、再生処理に必須でない機能群54や組み込みアプリケーション49にアクセスすることが可能となる。
JNIは、JAVA(登録商標)のプログラムから他の言語(例えば、C言語やC++言語など)で開発されたネイティブコードのプログラムを利用するためのAPI、すなわち、JAVA(登録商標)言語で開発されたプログラムから、他の言語で開発されたネイティブコードのプログラム(特定のプラットフォームでそのまま実行可能なプログラム)を利用するためのAPIである。
また、記録再生装置1の独自機能としての(すなわち、ナビゲーションプログラム45とは異なり、光ディスク11を再生可能な全ての装置において必須でインストールされているとは限らない)アプリケーションプログラム47をJAVA(登録商標) Xletで構築するようにした場合、より柔軟なアプリケーション環境を構築することができる。
なお、ナビゲーションプログラム45において、あるManifestファイルにより管理されるファイルは、基本的に、org_idとdisc_idにより規定される仮想ファイルシステム内のファイルである。したがって、アプリケーションプログラム47とナビゲーションプログラム45が連動して処理を実行するためには、アプリケーションプログラム47が必要に応じて所定のmanifestファイルにより管理されているファイルにアクセスすることができるように、manifestファイルのcredentialが設定されている必要がある。
具体的には、例えば、シリーズものの映画を全て再生した場合、ボーナストラックをダウンロードすることができるようにしたり、A社が販売または提供している光ディスク11を所定枚数以上再生した場合、無料でゲームをダウンロードすることができるようにするなど、複数の光ディスク11に対応するorg_idとdisc_idにより規定される仮想ファイルシステムにおいて実行されるナビゲーションプログラム45とアプリケーションプログラム47とが連動して処理を実行する場合、対応するそれぞれのmanifestファイルのcredentialは、このアプリケーションプログラム47に対してアクセスを許可するように設定されていなければならない。
次に、図25のフローチャートを参照して、図23のステップS144において実行される、ナビゲーションプログラム45とアプリケーションプログラム47との連動処理について説明する。
ステップS181において、アプリケーションプログラム連動処理制御部71は、自分自身(すなわち、ナビゲーションプログラム45)に対応したアプリケーションプログラム47と連動した処理を実行するか否かを判断する。ステップS181において、対応したアプリケーションプログラム47と連動した処理を実行しないと判断された場合、処理は、図23のステップS144に戻り、ステップS145に進む。
ステップS181において、対応したアプリケーションプログラム47と連動する処理が実行されると判断された場合、ステップS182において、アプリケーションプログラム連動処理制御部71は、記録再生装置1が、そのアプリケーションプログラム47を実行することが可能であるか否かを判断する。
具体的には、例えば、検出されたアプリケーションプログラム47が、録画予約の実行を制御する処理を行うものである場合、記録再生装置1が録画機能を有しているか、または、外部の録画装置と接続されて、録画装置における録画予約処理を制御することができる状態でなければ、記録再生装置1は検出されたアプリケーションプログラム47を実行することができない。また、検出されたアプリケーションプログラム47が、例えば、ピクチャインピクチャ表示によるボーナストラックの再生を制御する処理を行うものである場合、記録再生装置1がピクチャインピクチャ表示を行う機能を有していなければ、記録再生装置1は検出されたアプリケーションプログラム47を実行することができない。また、検出されたアプリケーションプログラム47が、例えば、副音声による監督や出演者のコメントの再生を制御する処理を行うものである場合、記録再生装置1が副音声の再生を行う機能を有していなければ、記録再生装置1は検出されたアプリケーションプログラム47を実行することができない。
ステップS182において、検出されたアプリケーションプログラム47を実行することができないと判断された場合、処理は、図23のステップS144に戻り、ステップS145に進む。
ステップS182において、検出されたアプリケーションプログラム47を実行することが可能であると判断された場合、ステップS183において、図26を用いて後述する、アプリケーションプログラムの呼び出し処理が実行される。
ステップS184において、アプリケーションプログラム連動処理制御部71は、ステップS183のアプリケーションプログラムの呼び出し処理において、検出されたアプリケーションプログラム47の呼び出しが成功したか否かを判断する。ステップS184において、検出されたアプリケーションプログラム47の呼び出しが成功しなかったと判断された場合、処理は、図23のステップS144に戻り、ステップS145に進む。
ステップS184において、検出されたアプリケーションプログラム47の呼び出しが成功したと判断された場合、ステップS185において、アプリケーションプログラム連動処理制御部71は、自分自身(すなわち、ナビゲーションプログラム45)と対応するアプリケーションプログラム47を連動させて、それらの実行を制御し、処理は、図23のステップS144に戻り、ステップS145に進む。
このような処理により、ナビゲーションプログラム45に対応するアプリケーションプログラム47が検出されて、処理を実行することが可能か否かが判断されて、処理を実行することが可能であって、呼び出し処理が正しく実行された場合、ナビゲーションプログラム45と、対応するアプリケーションプログラム47とが、連動して実行される。
次に、図26のフローチャートを参照して、図25のステップS183において実行される、アプリケーションプログラムの呼び出し処理について説明する。
ステップS211において、IXC制御部72は、JAVA(登録商標) .rmi.Remoteオブジェクトを生成する。
Xlet間通信が実行される場合、すなわち、IXCが利用される場合、IxcRegistryクラスを利用して、JAVA(登録商標) .rmi.Remoteインタフェースが実装されているオブジェクトが登録、検索、利用されるようになされている。
ステップS212において、IXC制御部72は、ixcRegistryを用いて、呼び出すアプリケーションを探索し、探索結果をアプリケーションプログラム連動処理制御部71に通知する。
ステップS213において、アプリケーションプログラム連動処理制御部71は、呼び出すアプリケーションプログラム47が見つかったか否かを判断する。
ステップS213において、呼び出すアプリケーションが見つかったと判断された場合、ステップS214において、アプリケーションプログラム連動処理制御部71は、対応するアプリケーションプログラム47を呼び出す。すなわち、ローカルストレージ24の記憶領域のうち、ナビゲーションプログラム45によりバインディングされるファイルシステムが記憶されている第1の記憶領域とは異なる記憶領域、または、メモリ23の記憶領域のいずれかであって、JVM44上で動作可能な他のアプリケーションプログラム47を記憶するための第2の記憶領域から、図23のステップS143において供給されたorg_idとdisc_idを基に、自分自身(すなわち、ナビゲーションプログラム45)に対応したアプリケーションプログラム47を検出して、検出されたアプリケーションプログラム47をメモリ23に展開して起動する。ステップS214の処理の終了後、処理は、図25のステップS183に戻り、ステップS184に進む。
ステップS213において、呼び出すアプリケーションが見つからなかったと判断された場合、ステップS215において、アプリケーションプログラム連動処理制御部71は、例外処理を実行、すなわち、図25のステップS184においてアプリケーションプログラムの呼び出しが成功しなかったと判断するものとして、処理は、図25のステップS183に戻り、ステップS184に進む。
このような処理により、ナビゲーションプログラム45と連動して処理を行うことができる、対応するアプリケーションプログラム47が呼び出される。
ところで、図25のステップS185において実行される、ナビゲーションプログラム45とアプリケーションプログラム47との処理は、アプリケーションプログラム47が予めインストールされている記録再生装置1にナビゲーションプログラム45が記録されている光ディスク11が装着された場合か、または、ローカルストレージ24に記録されているアップデートされたナビゲーションプログラム45を起動させる光ディスク11が装着された場合に実行される。
例えば、光ディスク11に記録されているナビゲーションプログラム45に、光ディスク11に記録されているコンテンツに関連するゲームをダウンロードすることができたり、そのコンテンツに関連するグッズを購入することができるウェブサイトのURLを記録しておく。その光ディスク11が記録再生装置1に装着され、ナビゲーションプログラム45がコントローラ21により実行された場合、このナビゲーションプログラム45と連動して、所定のウェブサイトにアクセスする処理を実行するための、または、組み込みアプリケーション49として記録再生装置1にインストールされている、ウェブブラウジング機能をコントロールする組み込みアプリケーション49−1(いわゆる、ウェブブラウザ)と連動して処理を行うことができるアプリケーションプログラム47が、記録再生装置1にインストールされているか否かが判断される。対応するアプリケーションプログラム47がインストールされていないと判断された場合、ナビゲーションプログラム45は、通常の再生などの処理を実行する。対応するアプリケーションプログラム47がインストールされていると判断された場合、ナビゲーションプログラム45は、所定のウェブサイトにアクセスする処理を実行するためのアプリケーションプログラム47を起動させて、Xletを用いたアプリケーション間通信を実行する。
記録再生装置1において、アプリケーションプログラム47は、予め記憶されているようにしても良いし、ドライブ27に装着されたリムーバブルメディア28を介してインストールされたり、インターネットインタフェース25を用いて、ネットワーク2を介して、所定のサーバからダウンロードされてインストールされるものであっても良い。また、記録再生装置1が、有線放送、もしくは、地上波または衛星波の放送サービスを利用する機能を有していた場合、アプリケーションプログラム47は、所定の番組のデータとともに取得され、インストールされるものであっても良い。
そして、光ディスク11の提供者と記録再生装置1の提供者が予め協力して対で動作するナビゲーションプログラム45とアプリケーションプログラム47をそれぞれ設計することにより、光ディスク11を特定の記録再生装置1に装着した場合にのみ、対で動作するようになされているナビゲーションプログラム45とアプリケーションプログラム47との連携動作が実行されるようにすることができる。
例えば、光ディスク11を装着して再生することが可能な再生装置などは、記録再生装置1以外に、複数のメーカにより提供されており、光ディスク11に記録されているコンテンツは、ナビゲーションプログラム45を実行可能ないずれの再生装置等によっても再生可能である。そして、これに対して、特定のアプリケーションプログラム47がインストールされている記録再生装置1を用いて対応する光ディスク11を再生した場合にのみ、このコンテンツに関連する限定グッズを購入することができるウェブサイトにアクセスすることができたり、この記録再生装置1を用いて、シリーズものの映画を全て再生した場合にのみ、ボーナストラックをダウンロードすることができたり、この記録再生装置1を用いてA社が販売または提供している光ディスク11を所定枚数以上再生した場合にのみ、無料でゲームをダウンロードすることができるようにすることができる。
また、組み込みアプリケーション49は、バージョンアップされる場合がある。そして、これらの組み込みアプリケーション49は、通常、複数の情報処理装置などに共通して利用されたり、予めバージョンアップが想定されて設計されているため、OSや他のアプリケーションとのインタフェースを変更することなく、バージョンアップされる場合がほとんどである。したがって、組み込みアプリケーション49がバージョンアップされても、アプリケーションプログラム47とのインタフェースが変更されなければ、アプリケーションプログラム47とのアプリケーション間通信機能は維持される。すなわち、ナビゲーションプログラム45がアプリケーションプログラム47と連携して動作する場合に利用する組み込みアプリケーション49がバージョンアップされても、ナビゲーションプログラム45やアプリケーションプログラム47を変更せずに、同様の処理を実行することが可能となる。
このように、光ディスク11に記憶されている、または、光ディスク11に対応付けられて内部に記憶されているコンテンツデータを再生するために必須のナビゲーションプログラム45によってアプリケーションプログラム47が起動され、連動して実行されるようになされているので、単独のアプリケーションが遠隔コントロールされて所定の装置で実行されるのに過ぎない場合、具体的には、各種の記録媒体や、有線または無線の通信を用いて、所定の装置が有する機能を直接制御する制御プログラムを供給したり、または、所定の装置に既にインストールされた制御プログラムに対するコマンドを供給することにより、装置を遠隔から制御するようになされている場合とは異なり、光ディスク11に対応付けられたコンテンツを、さまざまな再生装置において再生可能なように定められた規格(または規格に準じる決まりごと)に準じつつ、装置独自のサービスを、装置単独ではなく、光ディスク11に関連付けて提供することが可能となる。
しかしながら、対で動作するナビゲーションプログラム45とアプリケーションプログラム47とにより提供されるサービスが、視聴者によって主に楽しみとなるものとなってしまっては、その光ディスク11の記録再生装置1以外の再生装置における視聴機会が減少してしまう可能性もあり、コンテンツ提供者にとっては好ましくない。したがって、対で動作するナビゲーションプログラム45とアプリケーションプログラム47とにより提供されるサービスは、光ディスク11により提供されるサービスに付随した、イースターエッグ的な付加サービスであると好適である。
このようにすることにより、記録再生装置1の提供者は、光ディスク11を再生可能な他の再生装置等との差別化を図ることができる。また、光ディスク11の提供者は、例えば、他の再生装置等のメーカとは異なるサービスの提供を許可した記録再生装置1の提供者に対して、バックマージン(または、それに相当するもの)を得るようにしてもよい。
このように、光ディスク11の提供者と記録再生装置1の提供者とが個別に契約を結んで、連動して動作されるナビゲーションプログラム45とアプリケーションプログラム47が提供されることにより、個別のサービスがユーザに提供される。このため、例えば、光ディスク11の提供者は、自社の物販サイトへの誘導など、すべての再生装置のメーカに対して要求するのが困難な内容のサービスであっても、そのうちのいずれかのメーカ(記録再生装置1の提供者)と個別に提携することにより、ユーザに対して提供する機会を持つことができる。
次に、図27乃至図32を参照して、図25のステップS185において実行される、ナビゲーションプログラム45とアプリケーションプログラム47との処理の具体的な例について説明する。
まず、図27のフローチャートを参照して、記録再生装置1において実行される、ナビゲーションプログラム45とコンテンツ情報の登録処理を制御するアプリケーションプログラム47とが連動することにより実行される処理の第1の例について説明する。
記録再生装置1には、コンテンツ情報の登録処理を制御するアプリケーションプログラム47(Xlet)が記憶されており、実行可能な状態になされている。コンテンツ情報の登録処理を制御するアプリケーションプログラム47は、ナビゲーションプログラム45(Xlet)により起動され、ナビゲーションプログラム45により再生が制御されているコンテンツに関する、例えば、コンテンツのタイトル名および付属情報(例えば、出演者や監督名、または、アーチスト名、もしくは、作品の発表年月日など)、並びに、コンテンツのジャケット写真などの画像データを、ローカルストレージ24の、ナビゲーションプログラム45により管理されない領域に登録する処理を実行する。このとき、アプリケーションプログラム47は、記録再生装置1の組み込みアプリケーション49である、ローカルストレージ24へのデータの記憶を制御するデータベースソフトウェア(Xletであっても、JAVA(登録商標)以外のJNIを利用してアプリケーション間通信が可能なソフトウェアであっても良い)を起動し、アプリケーション間通信を行って、その処理を制御する。
また、このアプリケーションプログラム47は、例えば、同一のシリーズの映画を全部揃えた場合(同一の記録再生装置1において映画コンテンツの再生処理が行われることにより、揃えられたコンテンツ数がカウントされる。以下同様)、あるアーチストのビデオクリップを所定の数以上揃えた場合、または、あるコンテンツオーサが提供しているコンテンツを所定の数以上揃えた場合など、所定の条件が満たされた場合に、おまけコンテンツをダウンロードすることができる所定のウェブサイトへのアクセスを制御する処理を実行する。このとき、アプリケーションプログラム47は、記録再生装置1の組み込みアプリケーション49である、ウェブブラウザ(Xletであっても、JAVA(登録商標)以外のJNIを利用してアプリケーション間通信が可能なものであっても良い)を起動し、アプリケーション間通信を行って、その処理を制御する。
ステップS241において、アプリケーションプログラム連動処理制御部71(ナビゲーションプログラム45)は、光ディスクディレクトリ管理部65、または、ローカルストレージディレクトリ管理部64を制御して、光ディスク11に記録されている、または、ローカルストレージ24の光ディスク11に対応するパスに記憶されているコンテンツのタイトル名および付属情報(例えば、出演者や監督名、または、アーチスト名、もしくは、作品の発表年月日などと、後述する処理で用いられる、所属するシリーズなどを示す情報)を検索する。なお、コンテンツのタイトル名および付属情報が、予め定められたメタデータなどの形式で記録または記憶されていない場合、光ディスクディレクトリ管理部65、または、ローカルストレージディレクトリ管理部64は、記録または記憶されているデータの中から、必要に応じて、対応する情報を抽出する。
ステップS242において、アプリケーションプログラム連動処理制御部71は、光ディスクディレクトリ管理部65、または、ローカルストレージディレクトリ管理部64を制御して、光ディスク11に記録されている、または、ローカルストレージ24の光ディスク11に対応するパスに記憶されているコンテンツのジャケットデータを検索する。なお、コンテンツのジャケットデータが、予め定められたメタデータなどの形式で記録または記憶されていない場合、光ディスクディレクトリ管理部65、または、ローカルストレージディレクトリ管理部64は、記録または記憶されているデータの中から、必要に応じて、対応する画像データを抽出する。
ステップS243において、アプリケーションプログラム連動処理制御部71は、ステップS241およびステップS242の処理により検索または抽出された、コンテンツのタイトル名および付属情報、並びに、ジャケットデータをIXC制御部72に供給する。IXC制御部72は、コンテンツのタイトル名および付属情報、並びに、ジャケットデータをアプリケーションプログラム47に送信、すなわち、具体的には、IxcRegistryへバインドする。
ステップS244において、コンテンツ情報の登録処理を制御するアプリケーションプログラム47は、コンテンツのタイトル名および付属情報、並びに、ジャケットデータをナビゲーションプログラム45から受信、すなわち、具体的には、IxcRegistryをルックアップする。
ステップS245において、アプリケーションプログラム47は、この光ディスク11が、この記録再生装置1に始めて装着されて再生された場合、ローカルストレージ24の、ナビゲーションプログラム45により管理されない領域に、そのコンテンツが所属するシリーズの登録数カウンタが存在しなければ、登録数カウンタを設定してカウント数1を登録し、存在する場合は、その登録数カウンタをインクリメントする。
具体的には、ナビゲーションプログラム45から供給される付属情報には、例えば、同一のシリーズの映画を全部揃えた場合、あるアーチストのビデオクリップを所定の数以上揃えた場合、または、あるコンテンツオーサが提供しているコンテンツを所定の数以上揃えた場合など、所定の条件が満たされたか否かを判断するために、所属するシリーズなどを示す情報が含まれている。アプリケーションプログラム47は、その情報を参照して、登録数カウンタをインクリメントする。
ステップS246において、アプリケーションプログラム47は、登録数カウンタを参照し、特定のシリーズのコンテンツが全て登録されたか、または、所定数以上のコンテンツが登録されたかなどにより、おまけコンテンツを提供するための所定の条件が満たされたか否かを判断する。ステップS246において、所定の条件が満たされていないと判断された場合、処理は、後述するステップS251に進む。
ステップS246において、所定の条件が満たされていると判断された場合、ステップS247において、アプリケーションプログラム47は、組み込みアプリケーション49として記録再生装置1にインストールされている、ウェブブラウジング機能をコントロールする組み込みアプリケーション49−1(いわゆる、ウェブブラウザ)を起動させ、おまけコンテンツをダウンロードするためのウェブサイトにアクセスさせるためのURLなどの情報を通知する。
なお、組み込みアプリケーション49は、Xletであっても、JAVA(登録商標)以外のJNIを利用してアプリケーション間通信が可能なものであっても良く、アプリケーションプログラム47は、組み込みアプリケーション49がXletである場合、IXCを用いてアプリケーション間通信を実行し、組み込みアプリケーション49がJAVA(登録商標)以外のアプリケーションプログラムである場合、JNIを用いてアプリケーション間通信を実行する。
なお、おまけコンテンツをダウンロードするためのウェブサイトのアドレス(URL)は、ナビゲーションプログラム45が管理し、コンテンツに関する情報とともに、アプリケーションプログラム47に通知するものとしても良いし、アプリケーションプログラム47が管理していても良い。
ステップS248において、コントローラ21により実行される記録再生装置1の組み込みアプリケーション49であるウェブブラウザは、インターネットインタフェース25を制御して、おまけコンテンツをダウンロードするためのウェブサイトに、ネットワーク2を介してアクセスする。
ステップS249において、組み込みアプリケーション49であるウェブブラウザは、インターネットインタフェース25から、対応するウェブサイトのデータを取得し、外部の表示装置に取得したデータを供給して、ウェブサイトの表示画面を外部の表示装置に表示させる。
ステップS250において、組み込みアプリケーション49であるウェブブラウザは、操作入力部29から供給されるユーザの操作入力に基づいて、例えば、おまけコンテンツのダウンロードが指令された場合、インターネットインタフェース25を制御して、おまけコンテンツのダウンロードを要求する信号を、ネットワーク2を介して、所定のサーバに供給したり、ウェブサイトの表示の終了が指令された場合、外部の表示装置におけるウェブサイトの表示を終了させるなど、ユーザの操作入力に基づいた処理を実行する。
なお、おまけコンテンツが特定の光ディスク11と対応付けられて再生されるようになされている場合、おまけコンテンツは、上述したManifestファイルを有し、光ディスク11に記録されているデータとバインディングされて、再生されるようになされている。そして、おまけコンテンツが、特定の複数の光ディスク11と対応付けられて再生されるようになされている場合、おまけコンテンツのManifestファイルのcredentialは、特定の複数の光ディスク11を再生するナビゲーションプログラムによりアクセス可能なように設定される。
ステップS246において、所定の条件が満たされていないと判断された場合、または、ステップS247の処理の終了後、ステップS251において、アプリケーションプログラム47は、記録再生装置1の組み込みアプリケーション49である、ローカルストレージ24へのデータの記憶を制御するデータベースソフトウェアを起動し、コンテンツのタイトル名および付属情報、並びに、ジャケットデータを、組み込みアプリケーション49に送信する。
なお、ここでも、組み込みアプリケーション49は、Xletであっても、JAVA(登録商標)以外のJNIを利用してアプリケーション間通信が可能なものであっても良く、アプリケーションプログラム47は、組み込みアプリケーション49がXletである場合、IXCを用いてアプリケーション間通信を実行し、組み込みアプリケーション49がJAVA(登録商標)以外のアプリケーションプログラムである場合、JNIを用いてアプリケーション間通信を実行する。
ステップS252において、記録再生装置1の組み込みアプリケーション49である、ローカルストレージ24へのデータの記憶を制御するデータベースソフトウェアは、コンテンツのタイトル名および付属情報、並びに、ジャケットデータを、アプリケーションプログラム47から受信する。
ステップS253において、組み込みアプリケーション49は、自分自身が管理するデータベースのライブラリ一覧に、コンテンツのタイトル名および付属情報、並びに、ジャケットデータを登録する。
組み込みアプリケーション49である、ローカルストレージ24へのデータの記憶を制御するデータベースソフトウェアは、光ディスク11が記録再生装置1に装着されていない場合においても、コントローラ21により実行可能であり、図28を用いて後述する処理により、光ディスク11が記録再生装置1に装着されているか否かにかかわらず、ユーザが所望した場合に、登録されたコンテンツの情報のユーザへの提示処理を行うことができるようになされている。
このような処理により、光ディスク11に対応付けられたナビゲーションプログラム45と、記録再生装置1にインストールされているアプリケーションプログラム47とが、連動して実行され、記録再生装置1の組み込みアプリケーション49である、ローカルストレージ24へのデータの記憶を制御するデータベースソフトウェアが起動されて、光ディスク11により再生されるコンテンツのタイトル名および付属情報、並びに、ジャケットデータが登録される。
更に、アプリケーションプログラム47は、複数のナビゲーションプログラム45と連動して実行され(複数のナビゲーションプログラム45により起動され)、記録再生装置1において再生されたコンテンツ(光ディスク11)の数をカウントすることなどにより管理して、所定の条件が満たされた場合に、記録再生装置1の組み込みアプリケーション49であるウェブブラウザを起動して、おまけコンテンツをダウンロードすることができる。
なお、ここでは、記録再生装置1の組み込みアプリケーション49であるウェブブラウザを起動して、おまけコンテンツをダウンロードすることができるものとして説明したが、おまけコンテンツのダウンロードには、ナビゲーションプログラム45に含まれるコンテンツのダウンロード機能を用いるようにしてもよいことは言うまでもない。この場合、ウェブブラウザやデータベースソフトウェアなどの組み込みアプリケーション49がインストールされていなくても、ナビゲーションプログラム45とアプリケーションプログラム47とで連動して処理を実行して、記録再生装置1において再生されたコンテンツ(光ディスク11)の数をカウントし、おまけコンテンツをダウンロードする処理を実行することが可能であることはいうまでもない。
ナビゲーションプログラム45、および、アプリケーションプログラム47は、いずれも、JAVA(登録商標)によって記述されているXletであるので、共通実行環境で動作し、アプリケーション間通信を実行することができる。また、記録再生装置1の独自機能としてのアプリケーションプログラム47をJAVA(登録商標) Xletで構築することにより、より柔軟なアプリケーション環境を構築できる。そして、アプリケーションプログラム47は、JNIを利用して、他の言語(例えば、C言語やC++言語など)で開発されたネイティブコードのプログラムを利用することができる。記録再生装置1に組み込まれたアプリケーションで提供可能なサービスは、限られてしまうが、JNIを利用することにより、光ディスク11により実行可能なナビゲーションプログラム45とアプリケーション間通信が可能なアプリケーションプログラム47は、記録再生装置1に予め埋め込まれている機能にアクセスすることも可能となるので、ユーザに提供することができるサービスの自由度が増す。
従来、放送信号に、JAVA(登録商標)アプレットを含ませることにより、放送信号を受信する受信機の機能を操作することは行われてきたが、放送は、基本的に同一の画面がどの受信機にも表示されることを想定して行われているため、特定の装置にのみ、動作可能なようなアプリケーションは想定されていなかった。それに対して、上述した処理においては、アプリケーションプログラム47と連動した処理を実行可能なナビゲーションプログラム45を実行することができる光ディスク11を、対応するアプリケーションプログラム47がインストールされていない再生装置等に装着して再生させても、アプリケーションプログラム47と連動した処理を実行することができないのはいうまでもない。また、さまざまな組み込みアプリケーション49がインストールされていても、アプリケーションプログラム47の介在がないと、光ディスク11と対応付けられたナビゲーションプログラム45と対応する処理は実行されない。
すなわち、所定のアプリケーションプログラム47がインストールされている記録再生装置1に、対応するナビゲーションプログラム45が記録されている特定の光ディスク11が装着された場合にのみ、光ディスク11に対応付けられているナビゲーションプログラム45と、記録再生装置1が保有するアプリケーションプログラム47が連動して実行されて、所定の動作が行われるようになされている。すなわち、記録再生装置1は、単純にさまざまなソフトウェアがインストールされている従来の装置によって実行可能な処理とは異なる処理を実行することができるものである。このような構成を実現することにより、装置の差別化が可能となる。
図27を用いて説明した処理によって、記録再生装置1の組み込みアプリケーション49である、ローカルストレージ24へのデータの記憶を制御するデータベースソフトウェアは、自分自身が管理するデータベースのライブラリ一覧に、コンテンツのタイトル名および付属情報、並びに、ジャケットデータを登録する。
したがって、コントローラ21がこの組み込みアプリケーション49を実行した場合、光ディスク11が記録再生装置1に装着されているか否かにかかわらず、登録されたコンテンツの情報のユーザへの提示処理を行うことができるようになされている。
図28を参照して、組み込みアプリケーション49(ローカルストレージ24へのデータの記憶を制御するデータベースソフトウェア)の処理について説明する。
ステップS281において、記録再生装置1の組み込みアプリケーション49である、ローカルストレージ24へのデータの記憶を制御するデータベースソフトウェアを実行しているコントローラ21は、操作入力部29から供給される信号に基づいて、ユーザから、登録コンテンツ情報の一覧の閲覧を指令する操作入力を受けたか否かを判断する。ステップS281において、ユーザから、登録コンテンツ情報の一覧の閲覧を指令する操作入力を受けなかったと判断された場合、登録コンテンツ情報の一覧の閲覧を指令する操作入力を受けたと判断されるまで、ステップS281の処理が繰り返される。
ステップS281において、ユーザから、登録コンテンツ情報の一覧の閲覧を指令する操作入力を受けたと判断された場合、ステップS282においてコントローラ21は、ライブラリ一覧登録に登録された、コンテンツのタイトル名および付属情報、並びに、ジャケットデータを読み込む。
ステップS283において、コントローラ21は、コンテンツのタイトル名および付属情報、並びに、ジャケットデータを表示させるための表示画像データを生成して外部の表示装置に出力し、表示させて、処理が終了される。
このような処理により、コントローラ21がこの組み込みアプリケーション49を実行した場合、光ディスク11が記録再生装置1に装着されているか否かにかかわらず、登録されたコンテンツの情報のユーザへの提示処理を行うことができる。
次に、図29を参照して、放送波を受信したり、例えば、ケーブルテレビジョンなどの番組コンテンツを取得して、録画する機能を更に備えた、録画記録再生装置101について説明する。
なお、図1を用いて説明した記録再生装置1と対応する部分には同一の符号を付してあり、その説明は適宜省略する。
すなわち、図29の録画記録再生装置101は、基本的に、図1を用いて説明した記録再生装置1が有する構成に加えて、コンテンツ取得部111、放送信号取得部112、録画処理部113、入力端子121、および、アンテナ122が新たに設けられている構成となっている。
コンテンツ取得部111は、入力端子121から入力された、例えば、ケーブルテレビジョンなどの番組コンテンツを取得し、録画処理部113に供給する。
放送信号取得部112は、アンテナ122により受信された放送信号を取得し、録画処理部113に供給する。
録画処理部113は、コンテンツ取得部111または放送信号取得部112から供給された番組コンテンツ、または、インターネットインタフェース25から供給される、ネットワーク2を介して配信された番組コンテンツなどをローカルストレージ24に記録する、すなわち、録画する処理を実行する。録画処理部113は、コントローラ21の制御に基づいて、録画予約を行うこともできる。
ローカルストレージ24に記録された録画データは、トランスコーダ26によって必要に応じてデコードされて、外部の表示部に出力されて再生表示される。また、ローカルストレージ24に記録された録画データに、上述したManifestファイルが対応付けられて供給された場合、録画されたデータは、Manifestファイルに基づいたパスが設定されて、ナビゲーションプログラム45により上述したバインディング処理が実行されて、特定の光ディスク11に記録されているコンテンツとともに再生されるようにすることも可能である。
コンテンツ取得部111または放送信号取得部112、もしくは、インターネットインタフェース25によるコンテンツデータの取得は、録画記録再生装置101に予め埋め込まれている機能であるものとして、組み込みアプリケーション49の処理により実行されるものとすることができる。また、録画処理部113によるコンテンツデータの録画処理も、録画記録再生装置101に予め埋め込まれている機能であるものとして、組み込みアプリケーション49の処理により実行されるものとすることができる。
コントローラ21が有する機能のうち、JAVA(登録商標)環境によって提供される機能は、図6または図7を用いて説明した場合と、基本的に同様のものであり、光ディスク11が装着されたときにナビゲーションプログラム45が実行されることにより実現される機能は、図9を用いて説明した場合と、基本的に同様のものである。
また、コンテンツ取得部111または放送信号取得部112は、番組コンテンツとともに、JAVA(登録商標)のXletを取得することも可能である。コントローラ21は、取得されたJAVA(登録商標)のXletをローカルストレージ24に記憶させて実行可能な状態とする、すなわち、インストールすることができる。
図29の録画記録再生装置101において、放送波を受信したり、例えば、ケーブルテレビジョンなどの番組コンテンツを取得して、録画する機能などを制御するソフトウェアプラットフォームは、光ディスク11を再生する処理を制御するソフトウェアプラットフォームと異なる環境であるかもしれない。したがって、従来、装着された光ディスク11に記載されている、または、対応付けられて実行されるアプリケーションが、これらの機能と連携した処理を実行するためのAPIを全て用意することは困難であった。
これに対して、録画記録再生装置101に装着された光ディスク11に記載されているアプリケーションであるナビゲーションプログラム45と、録画記録再生装置101固有のアプリケーションプログラム47とは、いずれも、仮想マシン上で動作可能な、すなわち、マルチプラットフォームで動作可能なプログラミング言語であるJAVA(登録商標)のXletであるので、共通実行環境で動作し、相互にアプリケーション間通信を実行することができるので、連動して動作可能である。更に、アプリケーションプログラム47に、JNI(JAVA(登録商標) Native Interface)を利用して、他の言語(例えば、C言語やC++言語など)で開発されたネイティブコードのプログラムを利用する機能を持たせることが可能となる。したがって、光ディスク11により実行可能なナビゲーションプログラム45は、アプリケーションプログラム47を介して、録画記録再生装置101に予め埋め込まれている機能にアクセスする、換言すれば、JNIまたはIXCを用いて組み込みアプリケーション49と通信して、その処理を制御することが可能となる。したがって、既に存在する技術(録画記録再生装置101に予め埋め込まれている機能)をそのまま流用して開発コストを抑えつつ、ユーザに提供することができるサービスの自由度を向上させることができる。
すなわち、組み込みアプリケーション49は、Xletであっても、JAVA(登録商標)以外のJNIを利用してアプリケーション間通信が可能なモジュールであっても良く、アプリケーションプログラム47は、組み込みアプリケーション49がXletである場合、IXCを用いてアプリケーション間通信を実行し、組み込みアプリケーション49がJAVA(登録商標)以外のアプリケーションプログラムである場合、JNIを用いてアプリケーション間通信を実行する。
次に、図30のフローチャートを参照して、図29の録画記録再生装置101において、または、外部に録画装置が接続されている図1の記録再生装置1において実行される、ナビゲーションプログラム45と録画予約処理を制御するアプリケーションプログラム47とが連動することにより実行される処理の第2の例について説明する。
録画記録再生装置101には、録画予約処理を制御するアプリケーションプログラム47(Xlet)が記憶されており、実行可能な状態になされている。具体的には、録画予約処理を制御するアプリケーションプログラム47は、ナビゲーションプログラム45により起動され、録画記録再生装置101の組み込みアプリケーション49である、放送波を受信したり、例えば、ケーブルテレビジョンなどの番組コンテンツを取得して、録画する機能を実行するための組み込みアプリケーション49(Xletであっても、JAVA(登録商標)以外のJNIを利用してアプリケーション間通信が可能なものであっても良い)を起動し、アプリケーション間通信を行って、その処理を制御することが出来るようになされている。
なお、図1を用いて説明した記録再生装置1に、放送波を受信したり、例えば、ケーブルテレビジョンなどの番組コンテンツを取得して、録画する機能を有する録画装置、すなわち、図29の録画記録再生装置101における、コンテンツ取得部111、放送信号取得部112、録画処理部113、入力端子121、および、アンテナ122と同様の構成を有する録画装置が接続されている場合、録画予約処理を制御するアプリケーションプログラム47は、外部に制御信号を送出して、録画装置に組み込まれている組み込みアプリケーション49による録画処理を制御する。
ステップS311において、アプリケーションプログラム連動処理制御部71は、光ディスクディレクトリ管理部65、または、ローカルストレージディレクトリ管理部64を制御して、光ディスク11に記録されている、または、ローカルストレージ24の光ディスク11に対応するパスに記憶されている、光ディスク11、または、光ディスク11により再生されるコンテンツに関連した番組コンテンツの放送または提供日時とチャンネルなどの番組コンテンツの取得に必要な情報、並びに、録画された番組コンテンツがローカルストレージ24に記憶される場合のパス情報を検出する。
ステップS312において、アプリケーションプログラム連動処理制御部71は、ステップS311の処理により検出された、番組コンテンツの取得に必要な情報、および、録画された番組コンテンツがローカルストレージ24に記憶される場合のパス情報をアプリケーションプログラム47に送信、具体的には、IxcRegistryへバインドする。
ステップS313において、録画予約処理を制御するアプリケーションプログラム47は、番組コンテンツの取得に必要な情報、および、録画された番組コンテンツがローカルストレージ24に記憶される場合のパス情報をナビゲーションプログラム45から受信、具体的には、IxcRegistryをルックアップする。
ステップS314において、アプリケーションプログラム47は、受信した情報に基づいて、録画予約処理を実行させるための制御情報を生成する。
ステップS315において、アプリケーションプログラム47は、録画予約を実行させるための制御情報を、録画処理を実行する外部の録画装置などに出力する(外部の録画装置に組み込まれている組み込みアプリケーション49に送信する)か、または、録画処理を実行する組み込みアプリケーション49を起動させて、この組み込みアプリケーション49に制御情報を送信する。
ステップS316において、録画処理を実行する外部の録画装置、または、録画処理を実行する組み込みアプリケーション49は、アプリケーションプログラム47から供給された制御情報を基に、録画予約処理を実行する。
ステップS317において、録画処理を実行する外部の録画装置、または、録画処理を実行する組み込みアプリケーション49は、所定の番組コンテンツの録画が終了したか否かを判断する。ステップS317において、番組コンテンツの録画が終了していないと判断された場合、番組コンテンツの録画が終了したと判断されるまで、ステップS317の処理が繰り返される。
ステップS317において、番組コンテンツの録画が終了したと判断された場合、ステップS318において、録画処理を実行する外部の録画装置、または、録画処理を実行する組み込みアプリケーション49は、ローカルストレージ24の所定のパスに、録画された番組コンテンツのデータを設定する、または、供給して記憶させる。また、録画処理を実行する外部の録画装置、または、録画処理を実行する組み込みアプリケーション49は、アプリケーションプログラム47に、録画処理の終了を通知するので、アプリケーションプログラム47は、ナビゲーションプログラム45に、録画処理の終了を通知する。
ステップS319において、ナビゲーションプログラム45のファイルシステムマージ処理部66は、図21を用いて説明したバインディング処理を実行し、録画された番組コンテンツと、光ディスクに記録されたコンテンツ(そのコンテンツに対応するローカルストレージに記憶されているデータを含む)とを組み合わせて再生することが可能な状態とする。
このような処理を実行するために、光ディスク11、または、ローカルストレージ24の光ディスク11に対応するパスに、所定の番組コンテンツを録画するために必要な情報と、録画された番組コンテンツのローカルストレージ24におけるパス情報とを記録しておく。パス情報は、録画された番組コンテンツを光ディスク11に記録されているコンテンツのファイルシステムとバインディングさせるために必要な情報である。そして、その光ディスク11が、録画処理を実行する外部の録画装置、または、録画処理を実行する組み込みアプリケーション49を制御することが可能なアプリケーションプログラム47をインストールしている記録再生装置1または録画記録再生装置101に装着された場合にのみ、所定の番組コンテンツが自動的に録画されて、光ディスク11に記録されているコンテンツのファイルシステムとバインディングされて、再生される。
このようにして、ナビゲーションプログラム45とアプリケーションプログラム47が連動して実行さるので、組み込みアプリケーション49または外部の装置の機能や構成を大きく変更することなく、組み込みアプリケーション49のみではユーザに提供することができないサービスを、アプリケーションプログラム47をインストールしている記録再生装置1または録画記録再生装置101の固有のサービスとして、ユーザに提供することができる。
次に、図31のフローチャートを参照して、図29の録画記録再生装置101において、または、外部に録画装置が接続されている図1の記録再生装置1において実行される、ナビゲーションプログラム45と録画処理を制御するアプリケーションプログラム47とが連動して実行される処理の第3の例について説明する。
ここでも、録画記録再生装置101には、録画予約処理を制御するアプリケーションプログラム47(Xlet)が記憶されており、実行可能な状態になされている。録画予約処理を制御するアプリケーションプログラム47は、ナビゲーションプログラム45により起動され、所定の番組等の録画予約を制御する処理を実行する。また、録画処理部113は、キーワードの入力を受け、例えば、EPG(Electronic Program Guide)など、番組コンテンツの内容を示す情報やメタデータに基づいて録画処理を行うことが可能なようになされている。また、ここでも、図1を用いて説明した記録再生装置1に、放送波を受信したり、例えば、ケーブルテレビジョンなどの番組コンテンツを取得して、録画する機能を有する録画装置、すなわち、図29の録画記録再生装置101における、コンテンツ取得部111、放送信号取得部112、録画処理部113、入力端子121、および、アンテナ122と同様の構成を有する録画装置が接続されている場合、録画予約処理を制御するアプリケーションプログラム47は、外部に制御信号を送出して、録画装置による録画処理を制御するようになされている。
ステップS341において、アプリケーションプログラム連動処理制御部71は、光ディスクディレクトリ管理部65、または、ローカルストレージディレクトリ管理部64を制御して、光ディスク11に記録されている、または、ローカルストレージ24の光ディスク11に対応するパスに記憶されている、光ディスク11、または、光ディスク11により再生されるコンテンツに関連したキーワード、並びに、録画された番組コンテンツがローカルストレージ24に記録される場合のパス情報を検出する。
ステップS342において、アプリケーションプログラム連動処理制御部71は、ステップS341の処理により検出された、キーワード、および、録画された番組コンテンツがローカルストレージ24に記録される場合のパス情報をアプリケーションプログラム47に送信、具体的には、IxcRegistryへバインドする。
ステップS343において、録画予約処理を制御するアプリケーションプログラム47は、キーワード、および、録画された番組コンテンツがローカルストレージ24に記録される場合のパス情報をナビゲーションプログラム45から受信、具体的には、IxcRegistryをルックアップする。
ステップS344において、アプリケーションプログラム47は、受信した情報に基づいて、録画予約処理を実行させるための制御情報を生成する。
ステップS345乃至ステップS349において、図30を用いて説明したステップS315乃至ステップS319と基本的に同様の処理が実行されて、処理が終了される。
すなわち、アプリケーションプログラム47は、録画予約のための制御情報を、録画処理を実行する外部の録画装置などに出力する(外部の録画装置に組み込まれている組み込みアプリケーション49に送信する)か、または、録画処理を実行する組み込みアプリケーション49を起動させて、この組み込みアプリケーション49に制御情報を送信する。そして、録画処理を実行する外部の録画装置、または、録画処理を実行する組み込みアプリケーション49は、アプリケーションプログラム47から供給された制御情報を基に、例えば、EPGなどの番組コンテンツに関する情報を参照して、キーサードに合致する番組コンテンツの録画予約処理を実行し、番組コンテンツの録画が終了したと判断された場合、ローカルストレージ24の所定のパスに、録画された番組コンテンツのデータを設定する、または、供給して記憶させとともに、アプリケーションプログラム47に、録画処理の終了を通知する。アプリケーションプログラム47は、ナビゲーションプログラム45に、録画処理の終了を通知する。そして、ナビゲーションプログラム45のファイルシステムマージ処理部66は、図21を用いて説明したバインディング処理を実行し、録画された番組コンテンツと、光ディスクに記録されたコンテンツ(そのコンテンツに対応するローカルストレージに記憶されているデータを含む)とを組み合わせて再生することが可能な状態とする。
このような処理を実行するために、光ディスク11、または、ローカルストレージ24の光ディスク11に対応するパスに、所定の番組コンテンツを録画するために必要な情報として、キーワードが記録されるとともに、録画された番組コンテンツのローカルストレージ24におけるパス情報が記録される。そして、その光ディスク11が、録画処理を実行する外部の録画装置、または、録画処理を実行する組み込みアプリケーション49を制御することが可能なアプリケーションプログラム47をインストールしている記録再生装置1または録画記録再生装置101に装着された場合にのみ、所定の番組コンテンツが自動的に録画されて、光ディスク11に記録されているコンテンツのファイルシステムとバインディングされて、再生される。
また、このように自動的に録画された番組コンテンツは、光ディスク11に記録されているコンテンツのファイルシステムとバインディングされずに、単独で再生可能なようにしてもよいことは言うまでもない。このようにすることにより、例えば、ユーザが自分自身でキーワードを入力しなくても、記録再生装置1または録画記録再生装置101において再生されたことがある光ディスク11に関連する、すなわち、ユーザが興味をもっている可能性が大きい番組コンテンツを、自動的に録画することができるので、ユーザの嗜好に合致した番組コンテンツを自動的に録画するというサービスを提供することが可能となる。
このようにして、ナビゲーションプログラム45とアプリケーションプログラム47が連動して実行され、組み込みアプリケーション49または外部の装置の機能や構成を大きく変更することなく、組み込みアプリケーション49のみではユーザに提供することができないサービスを、アプリケーションプログラム47をインストールしている記録再生装置1または録画記録再生装置101の固有のサービスとして、ユーザに提供することができる。
また、ナビゲーションプログラム45とアプリケーションプログラム47とが連動して実行可能なようになされることにより、図1の記録再生装置1または図29の録画記録再生装置101において、例えば、テレビジョン受像機や、録画再生装置など、さまざまな装置において、ユーザの操作入力を補助するために広く用いられているGUI(Graphic User Interface)表示画面を用いることができる。
具体的には、例えば、出願人が、“SONY WEGA | 体験!XMB”、<URL: http://www.sony.jp/products/Consumer/wega/xmb/index.html>において、平成18年6月20日の時点において公開しているように、近年、放送される番組を受信し、内蔵のハードディスクに録画してそれを再生する機能、ハードディスクに記録させておいた音楽や静止画を再生する機能などの各種の機能が搭載された家電製品が販売されており、このような機器の中には、各種の機能をユーザが利用するためのメニュー画面として、画面の横方向にそれぞれのカテゴリのアイコンが並べて表示され、縦方向に、選択されているカテゴリのそれぞれの項目が並べて表示される画面が用意されているものがある。
項目を分類するカテゴリとしては、番組の録画や録画済みの番組の再生に関する「ビデオ」、静止画の再生に関する「フォト」、音楽の再生に関する「ミュージック」などが用意される。
例えば、複数のカテゴリの中から「フォト」のカテゴリを選択したとき、画面には、機器に取り込まれている全ての画像(サムネイル画像)が縦方向に一列に並べて表示され、ユーザは、上下方向の操作だけで目的の画像を探し出すことができる。このような画面を表示する機器においては、上下方向の操作に対する表示の応答時間を素早いものとすることによって、ユーザが目的の画像を容易に探し出すことのできる環境が実現されている。
このようなGUI表示機能は、組み込みアプリケーション49として各種の装置にインストールされ、ユーザに提供される。
次に、図32のフローチャートを参照して、図1の記録再生装置1または図29の録画記録再生装置101において実行される、ナビゲーションプログラム45と、GUI表示画面の表示を制御するアプリケーションプログラム47とが連動して実行される処理の第4の例について説明する。
ステップS371において、アプリケーションプログラム連動処理制御部71は、光ディスクディレクトリ管理部65、または、ローカルストレージディレクトリ管理部64を制御して、光ディスク11に記録されている、または、ローカルストレージ24の光ディスク11に対応するパスに記憶されている、光ディスク11、または、光ディスク11により再生されるコンテンツ(サブコンテンツを含む)のタイトルや付属情報などを検出する。
ステップS372において、アプリケーションプログラム連動処理制御部71は、ステップS371の処理により検出された、コンテンツ(サブコンテンツを含む)のタイトルや付属情報などの一覧を、アプリケーションプログラム47に送信、具体的には、IxcRegistryへバインドする。
ステップS373において、GUI表示画面の表示処理を制御するアプリケーションプログラム47は、コンテンツ(サブコンテンツを含む)のタイトルや付属情報などの一覧をナビゲーションプログラム45から受信、具体的には、IxcRegistryをルックアップする。
ステップS374において、アプリケーションプログラム47は、受信したコンテンツ(サブコンテンツを含む)のタイトルや付属情報などのデータを、所定のGUIによって表示可能なデータに変換するための処理を実行する。
ステップS375において、アプリケーションプログラム47は、生成されたデータを、GUI表示処理やGUI表示画面を参照したユーザによるユーザオペレーションの取得処理を実行する外部の表示装置などに出力する(外部の表示装置に組み込まれている組み込みアプリケーション49に送信する)か、または、GUI表示処理やGUI表示画面を参照したユーザによるユーザオペレーションの取得処理を実行する組み込みアプリケーション49を起動させて、この組み込みアプリケーション49に制御情報を送信する。
ステップS376において、外部の表示装置、または、組み込みアプリケーション49は、ユーザから所定のGUI表示画面の表示が指令されたか否かを判断する。ステップS376において、ユーザから所定のGUI表示画面の表示が指令されていないと判断された場合、表示が指令されたと判断されるまで、ステップS376の処理が繰り返される。
ステップS376において、ユーザから所定のGUI表示画面の表示が指令されたと判断された場合、ステップS377において、外部の表示装置、または、組み込みアプリケーション49は、装着された光ディスク11によって再生可能なコンテンツ(サブコンテンツを含む)のタイトルや付属情報などの一覧を表示することが可能なGUI表示画面の表示を制御する。
ステップS378において、外部の表示装置、または、組み込みアプリケーション49は、GUI表示画面に表示されている装着された光ディスク11によって再生可能なコンテンツ(サブコンテンツを含む)のタイトルや付属情報などの一覧から、所定のコンテンツが選択決定されて、その再生が指令されたか否かを判断する。ステップS378において、再生が指令されていないと判断された場合、再生が指令されたと判断されるまで、ステップS378の処理が繰り返される。
ステップS378において、再生が指令されたと判断された場合、外部の表示装置、または、組み込みアプリケーション49は、ユーザによる指令をアプリケーションプログラム47に通知するので、ステップS379において、アプリケーションプログラム47は、ユーザから指定されたコンテンツを示す情報を、外部の表示装置、または、組み込みアプリケーション49から取得する。
ステップS380において、アプリケーションプログラム47は、外部の表示装置、または、組み込みアプリケーション49から取得した、ユーザから指定されたコンテンツを示す情報を、ナビゲーションプログラム45に送信する。
ステップS381において、ナビゲーションプログラム45は、ユーザにより再生が指令されたコンテンツの読み出しとその再生処理を制御する。
このような処理により、組み込みアプリケーション49として提供されている(例えば、他の装置において広く用いられているものであってもよい)GUI表示画面の表示機能を用いて、光ディスク11によって表示可能なコンテンツ(サブコンテンツを含む)のタイトルや付属情報などの一覧を表示することが出来る。これにより、ユーザは、見慣れた、そして、操作に慣れているGUI表示画面を用いて、再生可能なコンテンツの内容を容易に確認したり、再生させるコンテンツを指令することができる。そして、記録再生装置1または、録画記録再生装置101のメーカは、独自のGUI表示画面の開発を新たに行わないでよいので、開発コストを削減しつつ、ユーザにとって、見慣れた、そして、操作に慣れているGUI表示画面をユーザに提供することが可能となる。
以上説明したように、例えば、JAVA(登録商標)などのように、仮想マシンの実装によりマルチプラットフォームで動作可能な、装置側に固有にインストールされているアプリケーションプログラム47と、装置に装着される光ディスクなどの記録媒体に対応付けられているナビゲーションプログラム45とを、IXCなどのアプリケーション間通信を利用して連動して実行するものとすることができる。そして、光ディスクなどの記録媒体を再生する機能を有する装置のメーカは、その装置に、光ディスクなどの記録媒体に対応付けられているナビゲーションプログラムと連動して動作可能なアプリケーションプログラムをインストールしておくか、または、インストール可能なようにしておくことにより、装置の差別化を図ることができる。
また、これらの手法を利用して、光ディスクなどの記録媒体を用いてコンテンツを提供する提供者(コンテンツオーサ)とその記録媒体を再生する装置の提供者とが個別に契約を結ぶことにより、個別のサービスをユーザに提供することができるようになされている。このため、例えば、光ディスクなどの記録媒体を用いてコンテンツを提供する提供者は、自社の物販サイトへの誘導など、すべてのメーカに対して要求するのが困難な内容のサービスであっても、その記録媒体を再生する装置の提供者と個別に提携することにより、ユーザに対して提供することができる。
ところで、上述したように、アプリケーションプログラム47は、他の装置からダウンロードされるものであってもかまわない。また、アプリケーションプログラム47によって、他のアプリケーションプログラム47がダウンロードされるものであってもかまわない。
図33を参照して、アプリケーションプログラム47のダウンロードおよび起動について説明する。
disc_idに加えて、アプリケーションプログラム47のダウンロード先のURL情報などが記録された光ディスク151が装着された、上述した記録再生装置1または録画記録再生装置101などのクライアント152に、アプリケーションプログラム47を所定のサーバからダウンロードして内部に記憶し、起動させる処理を実行するブートローダ(Boot loader for client application)161をインストールしておく。ブートローダ161は、Java(登録商標)のXletであるアプリケーションプログラム47のひとつである。
このブートローダ161が起動された場合、ブートローダ161は、装着されている光ディスク151のナビゲーションプログラム45とIXCでプログラム間通信を行って、ダウンロードされる新たなアプリケーションプログラム47のダウンロード先のURL情報などを取得し、所定のサーバ153に、例えば、一般的なHTTPなどのプロトコルによりアクセスして、指定されたアプリケーションプログラム47をダウンロードし、所定の記憶領域に記憶する。ブートローダ161は、必要に応じて、上述した再生処理に必須でない機能群54や組み込みアプリケーション49などと連携した処理を行うことにより、ダウンロードや記憶の処理を実行する。ここでは、サーバ153からJava(登録商標)のXletであるClass#1がダウンロードされ、所定の記憶領域に記憶されるものとする。
ブートローダ161は、ダウンロードされ、所定の記憶領域に記憶されたClass#1を、IxcRegistryにバインドする。また、ブートローダ161は、ダウンロードされたClass#1を起動するとき、IxcRegistryからルックアップする。ブートローダ161が実行する機能には、複数のアプリケーションプログラム47をダウンロードする機能が含まれていてもよいことは言うまでもない。
また、ダウンロードされたClass#1が実行する処理に、更に異なるアプリケーションプログラム47をダウンロードする処理が含まれていた場合、Java(登録商標)のXletであるClass#1は、所定のサーバ(例えば、サーバ153)に、Class#1において記述されているロジックに基づいて接続し、Class#1とは異なる、Java(登録商標)のXletであるClass#2を、アプリケーションプログラム47としてダウンロードし、所定の記憶領域に記憶する。図33においては、Class#2は、Class#1と同じサーバ153からダウンロードされるものとして記載されているが、Class#2のダウンロードのURL情報などは、Class#1に記述されていれば良いのであって、Class#2は、Class#1とは異なるサーバからダウンロードされるものであってもよいことは言うまでもない。また、Class#1には、3つ以上のアプリケーションプログラム47をダウンロードする機能が含まれていてもよく、また、Class#2にも、複数のアプリケーションプログラム47をダウンロードする機能が含まれていてもよいことは言うまでもない。
なお、図25乃至図32を用いて説明した処理においては、アプリケーションプログラム47は、装着されている光ディスク11に記録されているナビゲーションプログラム45により起動されるものとして説明した。これに対して、アプリケーションプログラム47であるブートローダ161は、装着されている光ディスク11に記録されているナビゲーションプログラム45により起動されても良いが、例えば、ユーザの操作入力により起動されても良い。ブートローダ161は、装着されている光ディスク11に記録されているナビゲーションプログラム45に対応したアプリケーションプログラム47をダウンロードすることができるようになされている。すなわち、アプリケーションプログラム47であるブートローダ161は、上述した処理と同様に、ナビゲーションプログラム45と連動した処理を行うものであるし、ブートローダによりダウンロードされるナビゲーションプログラム45は、もちろん、装着されている光ディスク11に対応するものである。
また、ここでは、ブートローダ161が、装着されている光ディスク11に記録されているナビゲーションプログラム45に対応したアプリケーションプログラム47をダウンロードする処理と起動する処理とを実行するものとして説明したが、ダウンロードと起動は、異なるアプリケーションプログラム47によって実行されてもよいことは言うまでもない。ダウンロードと起動を、異なるアプリケーションプログラム47によって実行する場合においても、それらのアプリケーションプログラム47は、Java(登録商標)のXletであり、IXCを用いてアプリケーション間通信を行うことが可能であるので、連携してダウンロードおよび起動を行うことが可能である。
次に、図34のフローチャートを参照して、アプリケーションプログラム47であるブートローダを用いて、他のアプリケーションプログラム47をダウンロードする処理について説明する。
ステップS431において、コントローラ21は、操作入力部29から供給されるユーザの操作入力、または、ナビゲーションプログラム45が実行中である場合は、そのナビゲーションプログラムの処理により発行されるコマンドに基づいて、ブートローダ161の起動が指令されたか否かを判断する。ステップS431において、ブートローダ161の起動が指令されていないと判断された場合、ブートローダ161の起動が指令されたと判断されるまで、ステップS431の処理が繰り返される。
ステップS431において、ブートローダ161の起動が指令されたと判断された場合、ステップS432において、コントローラ21のアプリケーションプログラム連動処理制御部71、および、IXC制御部72により、ブートローダ161が起動され、アプリケーションプログラム実行処理部73によるブートローダ161の処理が開始される。基本的には、図26を用いて説明した、アプリケーションプログラムの呼び出し処理と同様の処理により、アプリケーションプログラム47であるブートローダ161が起動される。
ステップS433において、ブートローダ161を実行するアプリケーションプログラム実行処理部73は、IXC制御部72により制御されるブートローダ161とナビゲーションプログラム45とのプログラム間通信により、例えば、装着された光ディスク151に記録されているdisc_idや、ダウンロード先のサーバ153のURL情報など、装着されている光ディスク151からナビゲーションプログラム45によって読み込まれたアプリケーションプログラム47のダウンロードのために必要な情報を取得する。
ステップS434において、ブートローダ161を実行するアプリケーションプログラム実行処理部73は、必要に応じて、再生処理に必須でない機能群54または組み込みアプリケーション49と連動して処理を実行することにより、対応するサーバ153へHTTP接続し、必要な情報を送信する。
ステップS435において、ブートローダ161を実行するアプリケーションプログラム実行処理部73は、必要に応じて、再生処理に必須でない機能群54または組み込みアプリケーション49と連動して処理を実行することにより、対応するサーバ153から、所定のアプリケーションプログラム47をダウンロードし、ローカルストレージ24に記録する。
ステップS436において、ブートローダ161を実行するアプリケーションプログラム実行処理部73は、ダウンロードされたアプリケーションプログラム47を起動するために、ixcRegistryへのバインド処理を実行する。
ステップS437において、ブートローダ161を実行するアプリケーションプログラム実行処理部73は、ダウンロードされたアプリケーションプログラム47をixcRegistryからルックアップして起動する。
ステップS438において、図35を用いて説明するアプリケーションプログラム実行処理が実行され、処理が終了される。すなわち、アプリケーションプログラム実行処理部73は、ブートローダ161により起動されたアプリケーションプログラム47の処理を実行する。
このような処理により、ブートローダ161とナビゲーションプログラム45とは、IXCによるプログラム間通信を行って連係して動作することが可能であるとともに、ブートローダ161は、APIまたはJNIを利用することにより再生処理に必須でない機能群54または組み込みアプリケーション49と連動して処理を実行することが可能である。そして、なブートローダ161は、APIまたはJNIを利用することにより再生処理に必須でない機能群54または組み込みアプリケーション49と連動して処理を実行することが可能な、ブートローダ161とは異なるアプリケーションプログラム47をサーバなどからダウンロードして、起動することが可能となる。
次に、図35のフローチャートを参照して、図34のステップS438において実行されるアプリケーションプログラム実行処理について説明する。
ステップS461において、図34を用いて説明した処理によりブートローダ161によりダウンロードされたアプリケーションプログラム47を実行するアプリケーションプログラム実行処理部73は、このアプリケーションプログラム47が実行されることにより、他のアプリケーションプログラム47がダウンロードされ実行されるか否かを判断する。以下、図34を用いて説明した処理によりブートローダ161によりダウンロードされたアプリケーションプログラム47をアプリケーションプログラム47−2、新たにダウンロードされるアプリケーションプログラム47をアプリケーションプログラム47−3と称するものとする。ステップS461において、アプリケーションプログラム47−3がダウンロードされないと判断された場合、処理は、後述するステップS467に進む。
ステップS461において、アプリケーションプログラム47−3がダウンロードされ実行されると判断された場合、ステップS462において、アプリケーションプログラム47−2を実行するアプリケーションプログラム実行処理部73は、アプリケーションプログラム47−2に記述されたロジックにしたがって、必要に応じて、再生処理に必須でない機能群54または組み込みアプリケーション49と連動して処理を実行することにより、対応するサーバ153へ接続する。
ステップS463において、アプリケーションプログラム47−2を実行するアプリケーションプログラム実行処理部73は、必要に応じて、再生処理に必須でない機能群54または組み込みアプリケーション49と連動して処理を実行することにより、対応するサーバ153から、所定のアプリケーションプログラム47−3をダウンロードし、ローカルストレージ24に供給して記録する。
ステップS464において、アプリケーションプログラム47−2を実行するアプリケーションプログラム実行処理部73は、ダウンロードされたアプリケーションプログラム47−3を起動するために、ixcRegistryへのバインド処理を実行する。
ステップS465において、アプリケーションプログラム47−2を実行するアプリケーションプログラム実行処理部73は、ダウンロードされたアプリケーションプログラム47−3をixcRegistryからルックアップして起動させる。
ステップS466において、アプリケーションプログラム47−2を実行するアプリケーションプログラム実行処理部73は、アプリケーションプログラム47−2によって指定された全ての他のアプリケーションプログラム47−3のダウンロードおよび起動が実行されたか否かを判断する。ステップS466において、全ての他のアプリケーションプログラム47−3のダウンロードおよび起動がまだ実行されていないと判断された場合、処理は、ステップS462に戻り、それ以降の処理が繰り返される。
ステップS461において、アプリケーションプログラム47−3がダウンロードされないと判断された場合、または、ステップS466において、全ての他のアプリケーションプログラム47−3のダウンロードおよび起動が実行されたと判断された場合、アプリケーションプログラム実行処理部73により、起動状態の1つまたは複数のアプリケーションプログラムの処理が実行されて、処理が終了される。
このような処理により、ダウンロードされたアプリケーションプログラム47−2によって、更に、他のアプリケーションプログラム47−3がダウンロードされる。
ところで、上述したように、アプリケーションプログラム47は、APIライブラリ46とは異なる独自のAPIライブラリ51および52を用意することにより、再生処理に必須である機能群53にアクセスすることも、記録再生装置1が有する再生処理に必須でない機能群54にアクセスすることも可能であり、更に、記録再生装置1のローカルな機能である組み込みアプリケーション49にJNI(または、場合によってはIXC)を用いてアクセスすることも可能である。記録再生装置1または録画記録再生装置101においては、再生処理に必須でない機能群54として、例えば、装着された記録媒体に記録されているデータを読み出して他の記録媒体にコピーする機能や、コピーするデータのフォーマットを変換する機能などを更に備えることができ、また、記録再生装置1のローカルな機能である組み込みアプリケーション49として、記録媒体へのデータのコピーやコピーのためのフォーマット変換などの処理を制御する組み込みアプリケーション49を更に備えることができる。
光ディスクなどの記録媒体に記録されている映像パッケージソフトの著作権保護に関する枠組みとして、AACS(Advanced Access Content System)がある。AACSには、所定の認証処理が実行された場合にのみ、光ディスクなどのパッケージ・メディアに収録したコンテンツを、たとえば、ホームメディアサーバのHDDや、装着された他の光ディスクなど、他の媒体にコピーしたり、ネットワークを介して接続された他の機器にストリーム配信することを許可することができるManaged Copyという機能についての取り決めが含まれている。
Managed Copy機能を利用するには、Managed Copyに対応した機器が、インターネット上の認証サーバにアクセスし、コピー処理に対する認証を受ける必要がある。Managed Copyに対応した機器は、まずコピー元となるパッケージ・メディアに記録された、Title Usage File(TUF)と称される認証に必要な情報が記載されたファイルを読み出し、コンテンツを識別するcontent_idと、機器の認証を行う認証サーバのURL情報を得る。Managed Copyに対応した機器は、さらに、パッケージ・メディアから、パッケージ・メディアに固有に割り当てられているSerial Number(例えば、disc_id)を読み出す。そして、Managed Copyに対応した機器は、取得したURL情報を基に、認証サーバにアクセスし、content_idやdisc_idなど、認証のために必要な情報を認証サーバに送信して、認証処理を行うことができるようになされている。そして、認証処理が正しく実行された場合にのみ、コンテンツのコピーが許可される。
図36を参照して、Managed Copyについて説明する。なお、図36においては、Managed Copyに対応した機器として、記録再生装置1に対応するコンテンツの記録再生機能を有する従来の記録再生装置201が用いられているものとして説明する。
記録再生装置201に装着される、コンテンツのコピー元となる第1の光ディスク202には、上述した光ディスク11に記録されていた、ナビゲーションプログラム45、プレイリスト、クリップなどの、コンテンツの再生に必要なデータ以外に、Managed Copyの認証のために必要なTitle Usage File(TUF)である、Managed Copy Manifest Fileが記録されている。Managed Copy Manifest Fileには、disc_id,content_idおよび認証サーバ203にアクセスするために必要なURL情報などが記載されている。
記録再生装置201は、第1の光ディスク202からManaged Copy Manifest Fileを読み出し、URL情報に基づいて認証サーバ203にアクセスし、例えば、disc_id,content_idなどの情報を、認証サーバ203に送信する。
認証サーバ203は、送信された情報に基づいて、記録再生装置201に装着されている第1の光ディスク202に記録されているデータのうち、Managed Copyが可能なコンテンツまたはデータなど、提供可能なManaged Copyサービスの一覧(Create Offer List)を検索し、記録再生装置201に送信する。
記録再生装置201は、認証サーバ203から供給されたCreate Offer Listに記載されているサービスのうち、例えば、ユーザの操作入力に基づいて、認証を申し込む内容を選択し、認証サーバ203に認証を申し込むとともに、認証を申し込む内容に関する課金処理を行う。
認証処理および課金処理が実行された後、認証サーバ203は、記録再生装置201に、Managed Copyを許可する。
Managed Copyの許可を受けた記録再生装置201は、装着されている第1の光ディスク202から、AACSに関する情報、および、暗号化された、コピーされるコンテンツを読み込み、AACSに関する情報を用いて、暗号化されたコンテンツのフォーマット変換、すなわち、コンテンツをデコードした後、たとえば、ウィンドウメディアフォーマットなどの所定の形式でエンコードを実行し、第2の光ディスク204に書き込む。
このように、AACSの枠組みに則ってManaged Copyを実行するには、記録再生装置201は、組み込みアプリケーションとして、認証サーバ203と情報を授受することにより実行される認証処理や、認証処理のための課金処理、また、認証を受けた場合のみにManaged Copyの実行を許可する一連の処理を制御するアプリケーションを、予め備えていなければならなかった。
更に、記録再生装置201は、装着される第1の光ディスク202の提供者が異なる場合などにおいては、1つの認証サーバ203とのみ認証処理を行うのではなく、複数の認証サーバとの認証処理を実行する可能性がある。例えば、それぞれの認証サーバにおいて、認証処理のトランザクション(例えば、認証のための情報の授受の方法や、課金処理の方法など)が異なってしまうような場合、記録再生装置201に、それぞれのトランザクションに対応可能な複数の組み込みアプリケーションを用意する必要が生じてしまう。また、認証方法や、サーバとManaged Copyを実行する装置との情報の授受の方法が変更されてしまった場合、Managed Copyの実行を制御する記録再生装置201において、アプリケーションをその都度バージョンアップする必要が生じる。
そこで、それぞれの認証サーバ203に、Managed Copyの実行を制御するアプリケーションをJava(登録商標)のXletとして用意しておく。そして、記録再生装置1および録画記録再生装置101は、Managed Copyの実行を制御するアプリケーションをダウンロードして起動させるためのブートローダのみを予め備えておき、装着された第1の光ディスク202に記憶されているコンテンツのManaged Copyを許可する認証サーバ203から、Managed Copyの実行を制御するアプリケーションをダウンロードする。
ダウンロードされたManaged Copyの実行を制御するアプリケーションは、アプリケーションプログラム47として、他のJava(登録商標)のXletとIXCによるアプリケーション間通信を行うことが可能であり、また、APIライブラリ46とは異なる独自のAPIライブラリ51および52を用意することにより、再生処理に必須である機能群53にアクセスすることも、記録再生装置1および録画記録再生装置101が有する再生処理に必須でない機能群54にアクセスすることも可能であり、更に、記録再生装置1のローカルな機能である組み込みアプリケーション49にJNIを用いてアクセスすることも可能である。
図37を参照して、認証サーバ203から、アプリケーションプログラム47としてManaged Copyの実行を制御するJava(登録商標)のXletをダウンロードした場合のManaged Copyについて説明する。なお、図37においては、Managed Copyに対応した機器として、記録再生装置1における場合を例として説明するが、録画記録再生装置101における場合においても、同様の処理が実行可能であることはいうまでもない。
記録再生装置1は、ユーザから、Managed Copyの開始の指令を受け、Managed Copyの実行を制御するJava(登録商標)のXletをダウンロードして起動する処理を実行するアプリケーションプログラム47であるManaged Copyブートローダ47−1を起動する。装着されている第1の光ディスク202が、Managed Copyに対応するディスクであるか否かを判断し、Managed Copyに対応するディスクである場合、Managed Copyブートローダ47−1は、第1の光ディスク202のナビゲーションプログラム45とIXCを利用してアプリケーション間通信を行って連携して処理を実行することにより、第1の光ディスク202に記録されている、Managed Copyの認証のために必要なTitle Usage File(TUF)であるManaged Copy Manifest Fileを読み出し、disc_id,content_idおよび認証サーバ203にアクセスするために必要なURL情報などを取得する。
そして、記録再生装置1は、第1の光ディスク202から読み出したURL情報に基づいて認証サーバ203にアクセスし、例えば、disc_id,content_idなどの情報を、認証サーバ203に送信し、記録再生装置1に装着されている第1の光ディスク202に対応するManaged Copyの実行を制御するJava(登録商標)のXletであるManaged Copy Application for content_id47−2のダウンロードを要求する。
認証サーバ203は、送信された情報に基づいて、記録再生装置1に装着されている第1の光ディスク202に対応するManaged Copy Application for content_id47−2を記録再生装置1に送信する。
記録再生装置1は、ダウンロードされたManaged Copy Application for content_id47−2をローカルストレージ24に記憶するとともに、IxcRegistryへのバインドおよびルックアップを実行して、Managed Copy Application for content_id47−2を起動させる。
ダウンロードされるManaged Copy Application for content_id47−2は、Managed Copyの実行を制御する全てのステップを含むものであっても良いし、その一部のオブジェクトが、異なるJava(登録商標)のXletとして構成されるものであっても良い。例えば、Managed Copy Application for content_id47−2のうち、認証サーバ203から送信された提供可能なManaged Copyサービスの一覧をユーザに提示し、ユーザが希望するサービスの選択を受けて、認証サーバ203に対して認証を要求する処理、および、課金処理を実行する部分(Offers47−3)や、認証サーバ203によりManaged Copyの許可を受け、これを基に、対応するデータを、第1の光ディスク202から第2の光ディスク204にコピーする処理を制御する部分(Permission47−4)などのオブジェクトを、独立したXletとして構成されるものとすることが可能である。
Managed Copyの実行を制御する一部のオブジェクトが異なるJava(登録商標)のXletとして構成されている場合、Managed Copy Application for content_id47−2は、更に、必要なオブジェクト(例えば、Offers47−3やPermission47−4などのオブジェクト)を認証サーバ203、または、異なるサーバからダウンロードして起動させることができるようになされている。
Managed Copy Application for content_id47−2(または、これに含まれるOffers47−3)は、第1の光ディスク202のナビゲーションプログラム45とIXCを利用してアプリケーション間通信を行って連携して処理を実行することにより、第1の光ディスク202に記録されている、Managed Copyの認証のために必要なTitle Usage File(TUF)である、Managed Copy Manifest Fileを読み出し、disc_id,content_idおよび認証サーバ203にアクセスするために必要なURL情報などを取得する。
そして、Managed Copy Application for content_id47−2(または、これに含まれるOffers47−3)は、第1の光ディスク202から読み出したURL情報に基づいて認証サーバ203にアクセスし、例えば、disc_id,content_idなどの情報を、認証サーバ203に送信する。
認証サーバ203は、送信された情報に基づいて、記録再生装置1に装着されている第1の光ディスク202に記録されているデータのうち、Managed Copyが可能なコンテンツまたはデータなど、提供可能なManaged Copyサービスの一覧(Create Offer List)を検索し、Managed Copy Application for content_id47−2(または、これに含まれるOffers47−3)を実行している記録再生装置1に送信する。
記録再生装置1において、Managed Copy Application for content_id47−2(または、これに含まれるOffers47−3)は、認証サーバ203から供給されたCreate Offer Listに記載されているサービスのうち、例えば、ユーザの操作入力に基づいて、認証を申し込む内容を選択し、認証サーバ203に認証を申し込むとともに、認証を申し込む内容に関する課金処理を行う。
認証処理および課金処理が実行された後、認証サーバ203は、記録再生装置1に、Managed Copyを許可する。
Managed Copyの許可を受けた記録再生装置1において、Managed Copy Application for content_id47−2(または、これに含まれるPermission47−4)は、装着されている第1の光ディスク202から、AACSに関する情報、および、暗号化された、コピーされるコンテンツを読み込み、AACSに関する情報を用いて、暗号化されたコンテンツのフォーマット変換、すなわち、コンテンツをデコードした後、たとえば、ウィンドウメディアフォーマットなどの所定の形式でエンコードを実行し、第2の光ディスク204に書き込む。
なお、このとき、装着されている第1の光ディスク202から第2の光ディスク204にコピーされるコンテンツ等のアップデートデータがローカルストレージ24に記録されており、上述したようにして仮想ファイルシステムが構築され、アップデートされたコンテンツを再生することが可能なようになされていた場合、Managed Copy Application for content_id47−2(または、これに含まれるPermission47−4)は、ナビゲーションプログラム45とIXCによりアプリケーション間通信を行い、仮想ファイルシステムの更新処理を要求して、アップデートされたコンテンツを再生するために必要な情報を取得し、アップデートされたコンテンツを再生することができるように、対応するコンテンツとそれに関する情報を第2の光ディスク204に書き込むようにしても良い。
Managed Copy Application for content_id47−2(または、これに含まれるOffers47−3およびPermission47−4)は、上述した処理を実行するにあたって、ナビゲーションプログラム45とIXCによるプログラム通信を用いて情報を授受し、第1の光ディスク202に記録されている必要な情報を読み込むとともに、必要に応じて、組み込みアプリケーション49とJNIを利用して連携して動作を行ったり、API52を利用して再生処理に必須でない機能群54を制御する。
このようにすることにより、Managed Copyの実行のためのアプリケーションの開発が容易になる(ナビゲーションプログラム45や、組み込みアプリケーション49が有する機能を利用することができる)とともに、それぞれのバージョンアップにも容易に対応することが可能となる。
次に、図38および図39のフローチャートを参照して、図37を用いて説明したManaged Copyを実行するための処理について説明する。
ステップS501において、ユーザの操作入力を監視する組み込みアプリケーション49は、操作入力部29から供給されるユーザの操作入力に基づいて、Managed Copyブートローダ47−1の起動が指令されたか否かを判断する。ステップS501において、Managed Copyブートローダ47−1の起動が指令されていないと判断された場合、Managed Copyブートローダ47−1の起動が指令されたと判断されるまで、ステップS501の処理が繰り返される。
ステップS501において、Managed Copyブートローダ47−1の起動が指令されたと判断された場合、ステップS502において、組み込みアプリケーション49は、Managed Copyブートローダ47−1を起動する。
なお、ここでは、組み込みアプリケーション49がユーザの操作入力を監視し、Managed Copyブートローダ47−1を起動するものとして説明したが、たとえば、ナビゲーションプログラム45が、ナビゲーションプログラム45の実行中にManaged Copyブートローダ47−1を起動する操作入力を受けるか否かを監視する機能を備え、Managed Copyブートローダ47−1を起動する操作入力を受けた場合、割り込み処理として、Managed Copyブートローダ47−1を起動する処理を実行することができるものとしても良い。
ステップS503において、Managed Copyブートローダ47−1は、IXCを利用して、ナビゲーションプログラム45に対して、Managed Copyの認証のために必要なManaged Copy Manifest Fileを要求する。
ステップS504において、ナビゲーションプログラム45は、Managed Copyの認証のために必要なManaged Copy Manifest Fileを、Managed Copyブートローダ47−1に送信する。
ステップS505において、Managed Copyブートローダ47−1は、Managed Copyを実行するために必要なアプリケーションプログラム47をダウンロードするために対応するサーバ(例えば、図37の認証サーバ203)へHTTP接続するための処理を実行する。
具体的には、Managed Copyブートローダ47−1は、対応するサーバ(例えば、図37の認証サーバ203)へHTTP接続するために、ウェブブラウジング機能をコントロールする組み込みアプリケーション49−1(Xletであっても、JAVA(登録商標)以外のJNIを利用してアプリケーション間通信が可能なものであっても良い)を起動し、アプリケーション間通信を行って、その処理を制御する。
ステップS506において、ウェブブラウジング機能をコントロールする組み込みアプリケーション49−1は、対応するサーバとHTTP接続する。
ステップS507において、Managed Copyブートローダ47−1は、対応するサーバから、Managed Copy Application for content_id47−2をダウンロードし、ローカルストレージ24に記録する。
具体的には、Managed Copyブートローダ47−1は、ウェブブラウジング機能をコントロールする組み込みアプリケーション49−1の機能を用いて、対応するサーバから、Managed Copy Application for content_id47−2をダウンロードするとともに、ローカルストレージ24へのデータの記録を制御する組み込みアプリケーション49の機能を利用して、ダウンロードされたManaged Copy Application for content_id47−2をローカルストレージ24に記録させる。
ステップS508において、ウェブブラウジング機能をコントロールする組み込みアプリケーション49−1は、ダウンロードされたデータ、すなわち、Managed Copy Application for content_id47−2のローカルストレージ24への記録処理を実行する。
ステップS509において、Managed Copyブートローダ47−1は、ダウンロードされたManaged Copy Application for content_id47−2を起動するために、ixcRegistryへのバインド処理を実行する。
ステップS510において、Managed Copyブートローダ47−1は、ダウンロードされたManaged Copy Application for content_id47−2をixcRegistryからルックアップして起動する。
ステップS511において、Managed Copy Application for content_id47−2は、Offers Managed Application47−3のダウンロードのために、対応するサーバ(例えば、図37の認証サーバ203)へ、Managed Copy Application for content_id47−2に記述されている所定のロジックで接続する。
具体的には、Managed Copy Application for content_id47−2は、対応するサーバ(例えば、図37の認証サーバ203)へ接続するために、ウェブブラウジング機能をコントロールする組み込みアプリケーション49−1(Xletであっても、JAVA(登録商標)以外のJNIを利用してアプリケーション間通信が可能なものであっても良い)を起動し、アプリケーション間通信を行って、その処理を制御する。
ステップS512において、ウェブブラウジング機能をコントロールする組み込みアプリケーション49−1は、対応するサーバと所定のロジックで接続する。
ステップS513において、Managed Copy Application for content_id47−2は、対応するサーバから、Offers Managed Application47−3をダウンロードし、ローカルストレージ24に記録する。
具体的には、Managed Copy Application for content_id47−2は、ウェブブラウジング機能をコントロールする組み込みアプリケーション49−1(いわゆるウェブブラウザ)の機能を用いて、対応するサーバから、Offers Managed Application47−3をダウンロードするとともに、ローカルストレージ24へのデータの記録を制御する組み込みアプリケーション49の機能を利用して、ダウンロードされたOffers Managed Application47−3をローカルストレージ24に記録させる。
ステップS514において、ローカルストレージ24へのデータの記録を制御する組み込みアプリケーション49は、ダウンロードされたデータ、すなわち、Offers Managed Application47−3のローカルストレージ24への記録処理を実行する。
ステップS515において、Managed Copy Application for content_id47−2は、ダウンロードされたOffers Managed Application47−3を起動するために、ixcRegistryへのバインド処理を実行する。
ステップS516において、Managed Copy Application for content_id47−2は、ダウンロードされたOffers Managed Application47−3をixcRegistryからルックアップして起動する。
なお、Managed Copy Application for content_id47−2は、ステップS516の処理の終了後、後述するステップS524の処理を実行する。
ステップS517において、Offers Managed Application47−3は、IXCを利用して、ナビゲーションプログラム45に対して、Managed Copyの認証のために必要なManaged Copy Manifest Fileを要求する。
ステップS518において、ナビゲーションプログラム45は、Managed Copyの認証のために必要なManaged Copy Manifest Fileを、Offers Managed Application47−3に送信する。
ステップS519において、Offers Managed Application47−3は、Managed Copyのための認証処理を行うために、所定のサーバ(例えば、図37の認証サーバ203)に所定のロジックで接続するとともに、実行可能な機能として提供されるものの一覧(Offers)をダウンロードする。
具体的には、Offers Managed Application47−3は、対応するサーバ(例えば、図37の認証サーバ203)へ接続するために、ウェブブラウジング機能をコントロールする組み込みアプリケーション49−1(Xletであっても、JAVA(登録商標)以外のJNIを利用してアプリケーション間通信が可能なものであっても良い)を起動し(または、既に起動されている状態である場合は、そのウェブブラウジング機能をコントロールする組み込みアプリケーション49−1との間で)、アプリケーション間通信を行って、その処理を制御し、実行可能な機能として提供されるものの一覧(Offers)をダウンロードする。
ステップS520において、ウェブブラウジング機能をコントロールする組み込みアプリケーション49−1は、対応するサーバと所定のロジックで接続する。
ステップS521において、Offers Managed Application47−3は、実行可能な機能として提供されるものの一覧(例えば、対応する第1の光ディスク202に記録されているコンテンツなどのデータのうち、Managed Copyが可能なデータの一覧など)がリストとして表示されるように、制御を実行する。
具体的には、Offers Managed Application47−3は、GUI表示画面に関する機能をコントロールする組み込みアプリケーション49−4(Xletであっても、JAVA(登録商標)以外のJNIを利用してアプリケーション間通信が可能なものであっても良い)を起動し、アプリケーション間通信を行って、その処理を制御する。
ステップS522において、GUI表示画面に関する機能をコントロールする組み込みアプリケーション49−4は、外部の表示装置に、実行可能な機能として提供されるものの一覧(例えば、対応する第1の光ディスク202に記録されているコンテンツなどのデータのうち、Managed Copyが可能なデータの一覧など)に対応するリストを表示させる。
ステップS523において、Offers Managed Application47−3は、必要に応じて、ウェブブラウジング機能をコントロールする組み込みアプリケーション49−1の機能を利用して所定の課金サーバなどにアクセスしたり、所定の課金サーバと必要な情報を授受することにより、選択されたOfferに対する課金処理を実行する。
ステップS524において、Managed Copy Application for content_id47−2は、Permission Managed Application47−4のダウンロードのために、対応するサーバへ所定のロジックで接続する。
具体的には、Managed Copy Application for content_id47−2は、対応するサーバ(例えば、図37の認証サーバ203)へ接続するために、ウェブブラウジング機能をコントロールする組み込みアプリケーション49−1(Xletであっても、JAVA(登録商標)以外のJNIを利用してアプリケーション間通信が可能なものであっても良い)を起動し(または、既に起動されている状態である場合は、そのウェブブラウジング機能をコントロールする組み込みアプリケーション49−1との間で)、アプリケーション間通信を行って、その処理を制御する。
ステップS525において、ウェブブラウジング機能をコントロールする組み込みアプリケーション49−1は、対応するサーバ(例えば、図37の認証サーバ203)と所定のロジックで接続する。
ステップS526において、Managed Copy Application for content_id47−2は、対応するサーバから、Permission Managed Application47−4をダウンロードし、ローカルストレージ24に記録する。
具体的には、Managed Copy Application for content_id47−2は、ウェブブラウジング機能をコントロールする組み込みアプリケーション49−1の機能を用いて、対応するサーバから、Permission Managed Application47−4をダウンロードするとともに、ローカルストレージ24へのデータの記録を制御する組み込みアプリケーション49の機能を利用して、ダウンロードされたPermission Managed Application47−4をローカルストレージ24に記録させる。
ステップS527において、ウェブブラウジング機能をコントロールする組み込みアプリケーション49−1は、ダウンロードされたデータ、すなわち、Permission Managed Application47−4のローカルストレージ24への記録処理を実行する。
ステップS528において、Managed Copy Application for content_id47−2は、ダウンロードされたPermission Managed Application47−4を起動するために、ixcRegistryへのバインド処理を実行する。
ステップS529において、Managed Copy Application for content_id47−2は、ダウンロードされたPermission Managed Application47−4をixcRegistryからルックアップして起動する。
ステップS530において、Permission Managed Application47−4は、所定のサーバ(例えば、図37の認証サーバ203)と、Permission Managed Application47−4に記述されている所定のロジックで接続し、認証が正しく行われたことの通知を受ける。
具体的には、Permission Managed Application47−4は、対応するサーバ(例えば、図37の認証サーバ203)へ接続するために、ウェブブラウジング機能をコントロールする組み込みアプリケーション49−1(Xletであっても、JAVA(登録商標)以外のJNIを利用してアプリケーション間通信が可能なものであっても良い)を起動し(または、既に起動されている状態である場合は、そのウェブブラウジング機能をコントロールする組み込みアプリケーション49−1との間で)、アプリケーション間通信を行って、その処理を制御する。
ステップS531において、ウェブブラウジング機能をコントロールする組み込みアプリケーション49−1は、対応するサーバと所定のロジックで接続する。
ステップS532において、Permission Managed Application47−4は、コピーされるコンテンツの第1の光ディスク202からの読み出し、および、フォーマット変換を制御する。
具体的には、Permission Managed Application47−4は、装着された第1の光ディスク202に記録されている、または、第1の光ディスク202に対応付けられてローカルストレージ24に記録されているナビゲーションプログラム45に対して、第1の光ディスク202に記録されているコンテンツなどのデータのうち、Managed Copyが許可されて、第2の光ディスク204にManaged Copyされるものを、IXCを用いて通知する。また、Permission Managed Application47−4は、装着された光ディスクなどの記録媒体からデータを読み出す組み込みアプリケーション49、および、トランスコーダ26によるフォーマット変換処理を制御する組み込みアプリケーション49を(Xletであっても、JAVA(登録商標)以外のJNIを利用してアプリケーション間通信が可能なものであっても良い)を起動し、それらの処理を制御する。
ステップS533において、ナビゲーションプログラム45は、コピーされるコンテンツの仮想ファイルシステムを更新するために定義されたAPI(例えば、update())を呼び出し、図21を用いて説明したバインディング処理を実行することにより、コピーされるコンテンツの仮想ファイルシステムを構築し、仮想ファイルシステムの情報を、IXCを用いてPermission Managed Application47−4に通知する。
ステップS534において、ナビゲーションプログラム45は、Manifest fileを用いて、コピーされるコンテンツに含まれるべきデータの読み出しを制御するために必要な情報を、IXCを用いてPermission Managed Application47−4に通知する。
ステップS535において、装着された光ディスクなどの記録媒体からデータを読み出す組み込みアプリケーション49は、Permission Managed Application47−4とデータの読み出しに必要な情報を授受することにより、光ディスクドライブ22を制御して、装着されている第1の光ディスク202からコピーされる所定のコンテンツを読み出すとともに、必要であれば、ローカルストレージ24のドライブを制御して、コピーされる所定のコンテンツを再生するために必要なデータを読み出す。
ステップS536において、トランスコーダ26によるフォーマット変換処理を制御する組み込みアプリケーション49は、Permission Managed Application47−4と情報を授受してトランスコーダ26を制御し、読み出されたコンテンツを第2の光ディスク204にコピーするためのフォーマットに変換する。
ステップS537において、Permission Managed Application47−4は、フォーマット変換されたコンテンツの第2の光ディスク204への書き込みを制御する。
具体的には、Permission Managed Application47−4は、装着された光ディスクなどの記録媒体にデータを記録する組み込みアプリケーション49(Xletであっても、JAVA(登録商標)以外のJNIを利用してアプリケーション間通信が可能なものであっても良い)を起動し、それらの処理を制御する。
ステップS537において、装着された光ディスクなどの記録媒体にデータを記録する組み込みアプリケーション49は、Permission Managed Application47−4と情報を授受し、光ディスクドライブ22を制御して、読み出されたコンテンツを第2の光ディスク204へ書き込む処理を実行する。
AACSの枠組みに則ってManaged Copyを実行する場合においてこのような構成を適用することにより、記録再生装置1(または、録画記録再生装置101)は、Managed Copyの実行を制御するアプリケーションを予め備えておかなくても、Managed Copyを実行することができる。
また、Managed Copyの実行を制御するアプリケーションプログラム(Managed Copy Application for content_id47−2、Offers Managed Application47−3、Permission Managed Application47−4)は、Managed Copyの実行時に、ナビゲーションプログラム45や、組み込みアプリケーション49と連携して処理を実行することができるので、Managed Copyの実行のためのアプリケーションの開発が容易になる(ナビゲーションプログラム45や、組み込みアプリケーション49が有する機能を利用することができる)とともに、それぞれのバージョンアップにも容易に対応することができる。
以上説明した処理によって、例えば、JAVA(登録商標)などのように、仮想マシンの実装によりマルチプラットフォームで動作可能な、装置側に固有にインストールされているアプリケーションプログラム47と、装置に装着される光ディスクなどの記録媒体に対応付けられているナビゲーションプログラム45とを、IXCなどのアプリケーション間通信を利用して連動して実行するものとすることができる。そして、光ディスクなどの記録媒体を再生する機能を有する装置のメーカは、その装置に、光ディスクなどの記録媒体に対応付けられているナビゲーションプログラムと連動して動作可能なアプリケーションプログラムをインストールしておくか、または、インストール可能なようにしておくことにより、装置の差別化を図ることができる。
また、アプリケーションプログラム47は、所定のサーバからダウンロードされてインストールされるものとしても良いため、例えば、装着される光ディスク(例えば、第1の光ディスク202)に記録されている情報(例えば、URL情報)を基に、ダウンロード先のサーバ等にアクセスすることができるようにし、光ディスクに記録されている情報(例えば、disc_idやcontent_idなど)に応じて、ダウンロードされてインストールされるアプリケーションプログラム47が決まるようにすることができるので、記録再生装置1(または、録画記録再生装置101)においては、装着された第1の光ディスク202に対応するアプリケーションプログラム47をダウンロードし、装着された第1の光ディスク202に対応するナビゲーションプログラム、および、記録再生装置1に予め用意されているネイティブな機能または記録再生装置1に組み込まれている組み込みアプリケーション49と連動した処理を実行させるようにすることができる。
また、例えば、AACSの枠組みに則ってManaged Copyを実行する場合においてこのような構成を適用することにより、記録再生装置1(または、録画記録再生装置101)は、Managed Copyの実行を制御するアプリケーションを予め備えておく必要がなくなる。
これにより、Managed Copyの実行を制御するアプリケーションのバージョンアップが発生した場合でも、記録再生装置1においてはその都度最新のバージョンに更新する必要が無い。また、例えば、複数の認証サーバそれぞれにおいて、認証処理のトランザクション(例えば、認証のための情報の授受の方法や、課金処理の方法など)が異なってしまうような場合、記録再生装置201に、それぞれのトランザクションに対応可能な複数の組み込みアプリケーションを用意する必要もない。
すなわち、記録再生装置1(または、録画記録再生装置101)の提供者は、コンテンツオーサごとのManaged Copyに関する取り決め等を意識しなくても良い。同様に、コンテンツオーサは、自分自身が提供するコンテンツ等のManaged Copyの手法や課金処理等について、記録再生装置1などのManaged Copyの機能を有するそれぞれの装置の区別を意識しなくても良い。したがって、記録再生装置1(または、録画記録再生装置101)の提供者においても、コンテンツオーサにおいても、ユーザに提供するサービスの自由度が高くなる。
次に、図40および図41を参照して、記録再生装置1または録画記録再生装置101において再生可能なデータ、すなわち、図15を用いて説明したデータ構造のデータであって、MovieObjectに、ナビゲーションプログラム45と連動して実行されるアプリケーションプログラム47が記録再生装置1にインストールされているか否かを問い合わせるコマンド、ナビゲーションプログラム45と連動して実行されるアプリケーションプログラム47が記録再生装置1にインストールされている場合に、そのアプリケーションプログラム47を起動させるコマンド、及び、アプリケーションプログラム47と連動して処理を実行するために必要な各種コマンドを含んでいるデータが記録された光ディスクの製造方法について説明する。ここでは、記録媒体を光ディスクとして図示して例示しており、図中の記録媒体は、図1における光ディスク11、または、リムーバブルメディア28に対応している。なお、リムーバブルメディア28がディスク状の記録媒体以外である場合は、公知の記録媒体の製造方法によって、同様にして、記録再生装置1または録画記録再生装置101において再生可能なデータが記録媒体に記録される。
即ち、図40に示すように、例えばガラスなどよりなる原盤が用意され、その上に、例えばフォトレジストなどよりなる記録材料が塗布される。これにより、記録用原盤が製作される。
そして、図41に示すように、ソフト製作処理部において、符号化装置(ビデオエンコーダ)で符号化された、記録再生装置1または録画記録再生装置101において再生可能な形式のビデオデータが、一時バッファに記憶され、オーディオエンコーダで符号化されたオーディオデータが、一時バッファに記憶されるとともに、更に、データエンコーダで符号化された、ストリーム以外のデータ(例えば、Indexes、Playlist、PlayItemなど)が一時バッファに記憶される。それぞれのバッファに記憶されたビデオデータ、オーディオデータ、および、ストリーム以外のデータは、多重化器(MPX)で同期信号と共に多重化され、誤り訂正符号回路(ECC)でエラー訂正用のコードが付加される。そして、変調回路(MOD)で所定の変調がかけられ、所定のフォーマットにしたがって、例えば磁気テープなどに一旦記録され、記録再生装置1または録画記録再生装置101において再生可能な光ディスク11、または、リムーバブルメディア28に記録されるソフトウェアが製作される。
このソフトウェアを必要に応じて編集(プリマスタリング)し、光ディスクに記録すべきフォーマットの信号が生成される。そして、この記録信号に対応して、レーザビームが変調されて、このレーザビームが原盤上のフォトレジスト上に照射される。これにより、原盤上のフォトレジストが記録信号に対応して露光される。
その後、この原盤を現像し、原盤上にピットを出現させる。このようにして用意された原盤に、例えば電鋳等の処理を施し、ガラス原盤上のピットを転写した金属原盤を製作する。この金属原盤から、さらに金属スタンパを製作し、これを成形用金型とする。
この成形用金型に、例えばインジェクションなどによりPMMA(アクリル)またはPC(ポリカーボネート)などの材料を注入し、固定化させる。あるいは、金属スタンパ上に2P(紫外線硬化樹脂)などを塗布した後、紫外線を照射して硬化させる。これにより、金属スタンパ上のピットを、樹脂よりなるレプリカ上に転写することができる。
このようにして生成されたレプリカ上に、反射膜が、蒸着あるいはスパッタリングなどにより形成される。あるいはまた、生成されたレプリカ上に、反射膜が、スピンコートにより形成される。
その後、このディスクに対して内外径の加工が施され、2枚のディスクを張り合わせるなどの必要な処置が施される。さらに、ラベルを貼り付けたり、ハブが取り付けられて、カートリッジに挿入される。このようにして記録再生装置1または録画記録再生装置101によって再生可能なデータが記録された光ディスク11、または、リムーバブルメディア28が完成する。
また、上述した一連の処理は、ソフトウェアにより実行することもできる。そのソフトウェアは、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム格納媒体からインストールされる。
このプログラム格納媒体は、図1または図29に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが格納されている磁気ディスク(フレキシブルディスクを含む)、光ディスク(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 トランスコーダ, 41 ドライバ, 42 OS, 43 アプリケーションマネージャ, 44 JVM, 45 ナビゲーションプログラム, 46 APIライブラリ, 47 アプリケーションプログラム, 61 操作入力取得部, 62 メニュー画面表示制御部, 63 データ取得部, 64 ローカルストレージディレクトリ管理部, 65 光ディスクディレクトリ管理部, 66 ファイルシステムマージ処理部, 67 再生制御部, 71 アプリケーションプログラム連動処理制御部, 72 IXC制御部, 74 JNI制御部, 101 録画記録再生装置, 111 コンテンツ取得部, 112 放送信号取得部, 113 録画処理部