(57)【特許請求の範囲】
【請求項１】
少なくとも１つのストリームを含むメインストリームの時間軸上の位置を示す主の再生パスを含む第１の情報を含んで構成される再生管理情報を取得する取得手段と、
前記取得手段により取得された前記再生管理情報を基に、再生される前記メインストリーム、および、前記メインストリームと同期して再生される、前記メインストリームとは異なるコーディング形式の画像データを読み出す読み出し手段と、
前記読み出し手段により読み出された前記画像データを保存する第１の保存手段と、
前記第１の保存手段により保存されている前記画像データをデコードするデコード手段と、
前記デコード手段によりデコードされた前記画像データを保存する第２の保存手段と、
前記第２の保存手段により、デコード済みの前記画像データの保存が終了した後、前記取得手段により取得された前記再生管理情報を基に、所定のカウンタを参照して、前記読み出し手段により読み出された前記メインストリームを再生する再生手段と、
前記メインストリームのフレーム単位で、前記再生手段による前記メインストリームの再生に同期させて、前記第２の保存手段により保存されているデコード済みの前記画像データとして、JPEG形式のデータであり、Java（登録商標）アプリケーションで再生可能なアニメーションデータであって、複数フレームにより構成されるアニメーションデータを出力する画像データ出力手段と、
前記再生手段が参照する前記カウンタを参照するとともに、前記再生管理情報に含まれる前記メインストリームの前記第１の情報に基づいて、前記第１の保存手段、前記デコード手段、前記第２の保存手段、および、前記画像データ出力手段の処理を制御する制御手段と
を備える再生装置。
【請求項２】
前記取得手段は、前記制御手段が実行する処理に対応するAPIを呼び出すコマンドを含む制御情報を更に取得し、
前記コマンドが実行されて、前記APIが呼び出された場合、前記制御手段は、前記再生手段が参照する前記カウンタを参照するとともに前記第１の情報に基づいて、前記第１の保存手段、前記デコード手段、前記第２の保存手段、および、前記画像データ出力手段の処理を制御する
請求項１に記載の再生装置。
【請求項３】
前記読み出し手段は、前記メインストリームに先立って、前記画像データを読み出す
請求項１に記載の再生装置。
【請求項４】
前記再生手段により再生された前記メインストリームと合成する合成用画像データを生成する合成用画像データ生成手段と、
前記再生手段により再生された前記メインストリームと前記合成用画像データ生成手段により合成されて生成された前記合成用画像データの供給を受けて、再生出力する映像データを生成する再生出力手段と
を更に備え、
前記画像データ出力手段は、前記合成用画像データ生成手段にデコード済みの前記画像データを出力する
請求項１に記載の再生装置。
【請求項５】
前記画像データ出力手段は、前記合成用画像データ生成手段にデコード済みの前記画像データを出力する直前の前記合成用画像データを取得し、取得した前記合成用画像データにデコード済みの前記画像データを合成して、前記合成用画像データ生成手段に出力する
請求項４に記載の再生装置。
【請求項６】
前記合成用画像データ生成手段は、少なくとも２つ備えられ、
第１の前記合成用画像データ生成手段が、前記合成用画像データを生成しているとき、第２の前記合成用画像データ生成手段は、生成された前記合成用画像データを前記再生出力手段に供給し、
第２の前記合成用画像データ生成手段が、前記合成用画像データを生成しているとき、第１の前記合成用画像データ生成手段は、生成された前記合成用画像データを前記再生出力手段に供給する
請求項４に記載の再生装置。
【請求項７】
着脱可能な記録媒体から情報を再生して読み出す記録媒体再生手段を更に備え、
前記取得手段は、前記記録媒体再生手段により前記記録媒体から読み出された前記再生管理情報を取得する
請求項１に記載の再生装置。
【請求項８】
各種データ記憶する記憶手段を更に備え、
前記取得手段は、前記記憶手段に記憶されている前記再生管理情報を取得する
請求項１に記載の再生装置。
【請求項９】
着脱可能な記録媒体から情報を再生して読み出す記録媒体再生手段を更に備え、
前記読み出し手段は、前記記録媒体再生手段により前記記録媒体から読み出された前記メインストリーム、および、前記画像データを読み出す
請求項１に記載の再生装置。
【請求項１０】
各種データ記憶する記憶手段を更に備え、
前記読み出し手段は、前記記憶手段に記憶されている前記メインストリーム、および、前記画像データを読み出す
請求項１に記載の再生装置。
【請求項１１】
前記取得手段により取得される前記再生管理情報には、前記メインストリームファイルとは異なるサブストリームファイルの副の再生パスを含む第２の情報が更に含まれる
請求項１に記載の再生装置。
【請求項１２】
ストリームデータを再生する再生装置の再生方法において、
少なくとも１つのストリームを含むメインストリームの時間軸上の位置を示す再生パスを含む第１の情報を含んで構成される再生管理情報を基に、再生される前記メインストリームを読み出し、
前記再生管理情報を基に、前記メインストリームと同期して再生される、前記メインストリームとは異なるコーディング形式の画像データを読み出して保存し、
保存されている前記画像データをデコードし、
デコードされた前記画像データを保存し、
デコード済みの前記画像データの保存が終了した後、前記再生管理情報を基に、所定のカウンタを参照して、読み出された前記メインストリームを再生し、
前記メインストリームのフレーム単位で、前記メインストリームの再生に同期させて、保存されているデコード済みの前記画像データとして、JPEG形式のデータであり、Java（登録商標）アプリケーションで再生可能なアニメーションデータであって、複数フレームにより構成されるアニメーションデータを出力し、
前記カウンタを参照するとともに、前記再生管理情報に含まれる前記メインストリームの前記第１の情報に基づいて、前記画像データの保存、前記画像データのデコード、デコードされた前記画像データの保存、および、デコード済みの前記画像データの出力を制御する
ステップを含む再生方法。
【請求項１３】
ストリームデータを再生する処理をコンピュータに実行させるためのプログラムであって、
少なくとも１つのストリームを含むメインストリームの時間軸上の位置を示す再生パスを含む第１の情報を含んで構成される再生管理情報を基に、再生される前記メインストリームを読み出し、
前記再生管理情報を基に、前記メインストリームと同期して再生される、前記メインストリームとは異なるコーディング形式の画像データを読み出して保存し、
保存されている前記画像データをデコードし、
デコードされた前記画像データを保存し、
デコード済みの前記画像データの保存が終了した後、前記再生管理情報を基に、所定のカウンタを参照して、読み出された前記メインストリームを再生し、
前記メインストリームのフレーム単位で、前記メインストリームの再生に同期させて、保存されているデコード済みの前記画像データとして、JPEG形式のデータであり、Java（登録商標）アプリケーションで再生可能なアニメーションデータであって、複数フレームにより構成されるアニメーションデータを出力し、
前記カウンタを参照するとともに、前記再生管理情報に含まれる前記メインストリームの前記第１の情報に基づいて、前記画像データの保存、前記画像データのデコード、デコードされた前記画像データの保存、および、デコード済みの前記画像データの出力を制御する
ステップを含む処理をコンピュータに実行させるプログラム。
【請求項１４】
請求項１３に記載のプログラムが格納されているプログラム格納媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、再生装置および再生方法、プログラム、並びに、プログラム格納媒体に関し、特に、MPEG2 Transport Streamと、異なるデータ形式のアニメーションデータを同期させて表示させることができるようにする再生装置および再生方法、プログラム、並びに、プログラム格納媒体に関する。
【背景技術】
【０００２】
アニメーションを表示させる場合、特に、複数のアニメーションキャラクタの動きを厳密に同期させるために、画面上に表示させたいキャラクタ等の動作生成モジュールを設け、それをモジュールリストに登録し、モジュールリストを参照して、表示を制御する技術がある（例えば、特許文献１）。
【０００３】
また、HDMV graphics streamによるTransport Streamに多重化されたグラフィックス・オブジェクトを用いることにより、MPEG2 Transport Streamの形式のビデオフレームと同期するグラフィックスを表示させることが実現可能である。
【０００４】
【特許文献１】特開平７−３０６９５４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
HDMV graphics streamを用いてビデオフレームと同期するグラフィックスデータを生成するためには、MPEG2 Transport Streamの知識や開発スキルを必要とする。また、特許文献１に記載の技術は、同様の形式で生成された複数のアニメーションデータを同期させて表示させるための技術であり、この技術を用いても、異なるデータ形式のビデオデータとアニメーションデータを同期させて表示させることはできない。
【０００６】
本発明はこのような状況に鑑みてなされたものであり、MPEG2 Transport Streamと、異なるデータ形式のアニメーションデータを同期させて表示させることができるようにするものである。
【課題を解決するための手段】
【０００７】
本発明の一側面の再生装置は、少なくとも１つのストリームを含むメインストリームの時間軸上の位置を示す主の再生パスを含む第１の情報を含んで構成される再生管理情報を取得する取得手段と、前記取得手段により取得された前記再生管理情報を基に、再生される前記メインストリーム、および、前記メインストリームと同期して再生される、前記メインストリームとは異なるコーディング形式の画像データを読み出す読み出し手段と、前記読み出し手段により読み出された前記画像データを保存する第１の保存手段と、前記第１の保存手段により保存されている前記画像データをデコードするデコード手段と、前記デコード手段によりデコードされた前記画像データを保存する第２の保存手段と、前記第２の保存手段により、デコード済みの前記画像データの保存が終了した後、前記取得手段により取得された前記再生管理情報を基に、所定のカウンタを参照して、前記読み出し手段により読み出された前記メインストリームを再生する再生手段と、前記メインストリームのフレーム単位で、前記再生手段による前記メインストリームの再生に同期させて、前記第２の保存手段により保存されているデコード済みの前記画像データとして、JPEG形式のデータであり、Java（登録商標）アプリケーションで再生可能なアニメーションデータであって、複数フレームにより構成されるアニメーションデータを出力する画像データ出力手段と、前記再生手段が参照する前記カウンタを参照するとともに、前記再生管理情報に含まれる前記メインストリームの前記第１の情報に基づいて、前記第１の保存手段、前記デコード手段、前記第２の保存手段、および、前記画像データ出力手段の処理を制御する制御手段とを備える。
【０００９】
前記取得手段には、前記制御手段が実行する処理に対応するAPIを呼び出すコマンドを含む制御情報を更に取得させるようにすることができ、前記コマンドが実行されて、前記APIが呼び出された場合、前記制御手段には、前記再生手段が参照する前記カウンタを参照するとともに前記第１の情報に基づいて、前記第１の保存手段、前記デコード手段、前記第２の保存手段、および、前記画像データ出力手段の処理を制御させるようにすることができる。
【００１０】
前記読み出し手段には、前記メインストリームに先立って、前記画像データを読み出させるようにすることができる。
【００１４】
前記再生手段により再生された前記メインストリームと合成する合成用画像データを生成する合成用画像データ生成手段と、前記再生手段により再生された前記メインストリームと前記合成用画像データ生成手段により合成されて生成された前記合成用画像データの供給を受けて、再生出力する映像データを生成する再生出力手段とを更に備えさせるようにすることができ、前記画像データ出力手段には、前記合成用画像データ生成手段にデコード済みの前記画像データを出力させるようにすることができる。
【００１５】
前記画像データ出力手段には、前記合成用画像データ生成手段にデコード済みの前記画像データを出力する直前の前記合成用画像データを取得させて、取得した前記合成用画像データにデコード済みの前記画像データを合成させて、前記合成用画像データ生成手段に出力させるようにすることができる。
【００１６】
前記合成用画像データ生成手段は、少なくとも２つ備えさせることができ、第１の前記合成用画像データ生成手段が、前記合成用画像データを生成しているとき、第２の前記合成用画像データ生成手段には、生成された前記合成用画像データを前記再生出力手段に供給させるようにすることができ、第２の前記合成用画像データ生成手段が、前記合成用画像データを生成しているとき、第１の前記合成用画像データ生成手段には、生成された前記合成用画像データを前記再生出力手段に供給させるようにすることができる。
【００１７】
着脱可能な記録媒体から情報を再生して読み出す記録媒体再生手段を更に備えさせるようにすることができ、前記取得手段には、前記記録媒体再生手段により前記記録媒体から読み出された前記再生管理情報を取得させるようにすることができる。
【００１８】
各種データ記憶する記憶手段を更に備えさせるようにすることができ、前記取得手段には、前記記憶手段に記憶されている前記再生管理情報を取得させるようにすることができる。
【００１９】
着脱可能な記録媒体から情報を再生して読み出す記録媒体再生手段を更に備えさせるようにすることができ、前記読み出し手段には、前記記録媒体再生手段により前記記録媒体から読み出された前記メインストリーム、および、前記画像データを読み出させるようにすることができる。
【００２０】
各種データ記憶する記憶手段を更に備えさせるようにすることができ、前記読み出し手段には、前記記憶手段に記憶されている前記メインストリーム、および、前記画像データを読み出させるようにすることができる。
【００２１】
前記取得手段により取得される前記再生管理情報には、前記メインストリームファイルとは異なるサブストリームファイルの副の再生パスを含む第２の情報が更に含まれるものとすることができる。
【００２２】
本発明の一側面の再生方法またはプログラムは、少なくとも１つのストリームを含むメインストリームの時間軸上の位置を示す再生パスを含む第１の情報を含んで構成される再生管理情報を基に、再生される前記メインストリームを読み出し、前記再生管理情報を基に、前記メインストリームと同期して再生される、前記メインストリームとは異なるコーディング形式の画像データを読み出して保存し、保存されている前記画像データをデコードし、デコードされた前記画像データを保存し、デコード済みの前記画像データの保存が終了した後、前記再生管理情報を基に、所定のカウンタを参照して、読み出された前記メインストリームを再生し、前記メインストリームのフレーム単位で、前記メインストリームの再生に同期させて、保存されているデコード済みの前記画像データとして、JPEG形式のデータであり、Java（登録商標）アプリケーションで再生可能なアニメーションデータであって、複数フレームにより構成されるアニメーションデータを出力し、前記カウンタを参照するとともに、前記再生管理情報に含まれる前記メインストリームの前記第１の情報に基づいて、前記画像データの保存、前記画像データのデコード、デコードされた前記画像データの保存、および、デコード済みの前記画像データの出力を制御するステップを含む。
【００２３】
本発明の一側面においては、少なくとも１つのストリームを含むメインストリームの時間軸上の位置を示す再生パスを含む第１の情報を含んで構成される再生管理情報を基に、再生される前記メインストリームが読み出され、前記再生管理情報を基に、前記メインストリームと同期して再生される、前記メインストリームとは異なるコーディング形式の画像データが読み出されて保存され、保存されている前記画像データがデコードされ、デコードされた前記画像データが保存され、デコード済みの前記画像データの保存が終了した後、前記再生管理情報を基に、所定のカウンタが参照されて、読み出された前記メインストリームが再生され、前記メインストリームのフレーム単位で、前記メインストリームの再生に同期させて、保存されているデコード済みの前記画像データとして、JPEG形式のデータであり、Java（登録商標）アプリケーションで再生可能なアニメーションデータであって、複数フレームにより構成されるアニメーションデータが出力され、前記カウンタが参照されるとともに、前記再生管理情報に含まれる前記メインストリームの前記第１の情報に基づいて、前記画像データの保存、前記画像データのデコード、デコードされた前記画像データの保存、および、デコード済みの前記画像データの出力が制御される。
【００２４】
ネットワークとは、少なくとも２つの装置が接続され、ある装置から、他の装置に対して、情報の伝達をできるようにした仕組みをいう。ネットワークを介して通信する装置は、独立した装置どうしであっても良いし、１つの装置を構成している内部ブロックどうしであっても良い。
【００２５】
また、通信とは、無線通信および有線通信は勿論、無線通信と有線通信とが混在した通信、即ち、ある区間では無線通信が行われ、他の区間では有線通信が行われるようなものであっても良い。さらに、ある装置から他の装置への通信が有線通信で行われ、他の装置からある装置への通信が無線通信で行われるようなものであっても良い。
【００２６】
再生装置は、独立した装置であっても良いし、記録再生装置の再生処理を行うブロックであっても良い。
【発明の効果】
【００２７】
以上のように、本発明によれば、ストリームデータを再生することができ、特に、ストリームデータと画像データとを同期させて再生することができる。
【発明を実施するための最良の形態】
【００２８】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書または図面に記載されていることを確認するためのものである。従って、明細書または図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００２９】
本発明の一側面の再生装置（例えば、図１の再生装置１）は、少なくとも１つのストリームを含むメインストリーム（例えば、プライマリストリーム）の時間軸上の位置を示す主の再生パス（例えば、メインパス）を含む第１の情報を含んで構成される再生管理情報（例えば、プレイリスト）を取得する取得手段（例えば、図１または図１６のコントローラ２１）と、前記取得手段により取得された前記再生管理情報を基に、再生される前記メインストリーム、および、前記メインストリームと同期して再生される、前記メインストリームとは異なるコーディング形式の画像データ（例えば、アニメーションデータ）を読み出す読み出し手段（例えば、スイッチ４１）と、前記読み出し手段により読み出された前記画像データを保存する第１の保存手段（例えば、図１６のプリロードバッファ６１）と、前記第１の保存手段により保存されている前記画像データをデコードするデコード手段（例えば、図１６のアニメーションデコーダ６２）と、前記デコード手段によりデコードされた前記画像データを保存する第２の保存手段（例えば、図１６のデコード済みオブジェクトバッファ６３）と、前記第２の保存手段により、デコード済みの前記画像データの保存が終了した後、前記取得手段により取得された前記再生管理情報を基に、所定のカウンタ（例えば、ＳＴＣカウンタ）を参照して、前記読み出し手段により読み出された前記メインストリームを再生する再生手段（例えば、図１６の1stビデオデコーダ７２−１、および、ビデオプレーン生成部９２）と、前記メインストリームのフレーム単位で、前記再生手段による前記メインストリームの再生に同期させて、前記第２の保存手段により保存されているデコード済みの前記画像データとして、JPEG形式のデータであり、Java（登録商標）アプリケーションで再生可能なアニメーションデータであって、複数フレームにより構成されるアニメーションデータを出力する画像データ出力手段（例えば、図１６のコンポジションバッファ６４）と、前記再生手段が参照する前記カウンタを参照するとともに、前記再生管理情報に含まれる前記メインストリームの前記第１の情報に基づいて、前記第１の保存手段、前記デコード手段、前記第２の保存手段、および、前記画像データ出力手段の処理を制御する制御手段（例えば、図１６のアニメーションスケジューラ６５）とを備える。
【００３１】
前記取得手段は、前記制御手段が実行する処理に対応するAPIを呼び出すコマンドを含む制御情報（例えば、MovieObjectファイル）を更に取得し、前記コマンドが実行されて、前記APIが呼び出された場合、前記制御手段は、前記再生手段が参照する前記カウンタを参照するとともに前記第１の情報に基づいて、前記第１の保存手段、前記デコード手段、前記第２の保存手段、および、前記画像データ出力手段の処理を制御することができる。
【００３２】
前記再生手段により再生された前記メインストリームと合成する合成用画像データを生成する合成用画像データ生成手段（例えば、図１６のインタラクティブグラフィックスプレーン生成部９４）と、前記再生手段により再生された前記メインストリームと前記合成用画像データ生成手段により合成されて生成された前記合成用画像データの供給を受けて、再生出力する映像データを生成する再生出力手段（例えば、ビデオデータ処理部９６）とを更に備えることができ、前記画像データ出力手段は、前記合成用画像データ生成手段にデコード済みの前記画像データを出力することができる。
【００３３】
前記合成用画像データ生成手段は、少なくとも２つ備えられ（例えば、図２２のバックグラフィックスプレーン１５１およびフロントグラフィックスプレーン１５２）、第１の前記合成用画像データ生成手段が、前記合成用画像データを生成しているとき、第２の前記合成用画像データ生成手段は、生成された前記合成用画像データを前記再生出力手段に供給することができ、第２の前記合成用画像データ生成手段が、前記合成用画像データを生成しているとき、第１の前記合成用画像データ生成手段は、生成された前記合成用画像データを前記再生出力手段に供給することができる。
【００３４】
着脱可能な記録媒体から情報を再生して読み出す記録媒体再生手段（例えば、図１または図１６の光ディスクドライブ２２）を更に備えることができ、前記取得手段は、前記記録媒体再生手段により前記記録媒体から読み出された前記再生管理情報を取得することができる。
【００３５】
各種データ記憶する記憶手段（例えば、図１または図１６のローカルストレージ２４）を更に備えることができ、前記取得手段は、前記記憶手段に記憶されている前記再生管理情報を取得することができる。
【００３６】
着脱可能な記録媒体から情報を再生して読み出す記録媒体再生手段（例えば、図１または図１６の光ディスクドライブ２２）を更に備えることができ、前記読み出し手段は、前記記録媒体再生手段により前記記録媒体から読み出された前記メインストリーム、および、前記画像データを読み出すことができる。
【００３７】
各種データ記憶する記憶手段（例えば、図１または図１６のローカルストレージ２４）を更に備えることができ、前記読み出し手段は、前記記憶手段に記憶されている前記メインストリーム、および、前記画像データを読み出すことができる。
【００３８】
本発明の一側面の再生方法またはプログラムは、少なくとも１つのストリームを含むメインストリーム（例えば、プライマリストリーム）の時間軸上の位置を示す再生パス（例えば、メインパス）を含む第１の情報を含んで構成される再生管理情報（例えば、プレイリスト）を基に、再生される前記メインストリームを読み出し（例えば、図２５のステップＳ１０３の処理）、前記再生管理情報を基に、前記メインストリームと同期して再生される、前記メインストリームとは異なるコーディング形式の画像データ（例えば、アニメーションデータ）を読み出して保存し（例えば、図２８のステップＳ１６１の処理）、保存されている前記画像データをデコードし（例えば、図２８のステップＳ１６２の処理）と、デコードされた前記画像データを保存し（例えば、図２８のステップＳ１６３の処理）と、デコード済みの前記画像データの保存が終了した後、前記再生管理情報を基に、所定のカウンタ（例えば、ＳＴＣカウンタ）を参照して、読み出された前記メインストリームを再生し（例えば、図２５乃至図２７のプライマリビデオストリームの再生に関する処理）、前記メインストリームのフレーム単位で、前記メインストリームの再生に同期させて、保存されているデコード済みの前記画像データとして、JPEG形式のデータであり、Java（登録商標）アプリケーションで再生可能なアニメーションデータであって、複数フレームにより構成されるアニメーションデータを出力し（例えば、図２９のステップＳ２０７の処理）、前記カウンタを参照するとともに、前記再生管理情報に含まれる前記メインストリームの前記第１の情報に基づいて、前記画像データの保存、前記画像データのデコード、デコードされた前記画像データの保存、および、デコード済みの前記画像データの出力を制御するステップを含む。
【００３９】
以下、図を参照して、本発明の実施の形態について説明する。
【００４０】
図１は、本発明を適用した再生装置１の構成例を示すブロック図である。
【００４１】
コントローラ２１は、予め用意されている制御プログラムを実行するか、または、光ディスクドライブ２２を制御して光ディスク１１に記録されている、または、ローカルストレージ２４に記録されているナビゲーションプログラム（後述）を読み出し、メモリ２３に展開して実行することで、再生装置１の全体の動作を制御する。例えば、コントローラ２１は、光ディスク１１が装着されたとき、所定のメニュー画面を外部の表示装置に表示させることができる。
【００４２】
光ディスクドライブ２２は、コントローラ２１による制御に従って光ディスク１１からデータを読み出し、読み出したデータを、コントローラ２１、メモリ２３、または、デコーダ２６に出力する。光ディスク１１から読み出された情報が、ナビゲーションプログラムやPlayListなどであった場合、光ディスクドライブ２２により読み出された情報は、コントローラ２１、または、メモリ２３に出力される。光ディスク１１から読み出された情報が、ＡＶストリームやテキストデータであった場合、光ディスクドライブ２２により読み出された情報は、デコーダ２６に出力される。
【００４３】
図２は、本発明を適用した再生装置１に装着される光ディスク１１のアプリケーションフォーマットの例を示す図である。記録媒体は、光ディスク１１の他、例えば、磁気ディスクや半導体メモリであってもよい。
【００４４】
アプリケーションフォーマットは、ＡＶ（Audio Visual)ストリームの管理のためにPlayListとClipの２つのレイヤをもつ。ここでは、１つのＡＶストリームまたはテキストデータとそれに付随する情報であるClip Informationのペアを１つのオブジェクトと考え、それらをまとめてClipと称する。以下、ＡＶストリームのデータファイルをＡＶストリームファイルと称する。また、Clip InformationのデータファイルをClip Informationファイルと称する。
【００４５】
一般的に、コンピュータ等で用いられるファイルはバイト列として扱われるが、ＡＶストリームファイルのコンテンツは時間軸上に展開され、Clipのアクセスポイントは、主に、タイムスタンプでPlayListにより指定される。
【００４６】
Clip中のアクセスポイントがタイムスタンプでPlayListにより示されている場合、Clip Informationファイルは、タイムスタンプから、ＡＶストリームファイル中のデコードを開始すべきアドレス情報を見つけるために用いられる。
【００４７】
PlayListはＡＶストリームの再生区間を示す情報の集合である。あるＡＶストリーム中の１つの再生区間を示す情報はPlayItemと呼ばれ、PlayItemは、時間軸上の再生区間のIN点（再生開始点）とOUT点（再生終了点）のペアで表される。したがって、PlayListは、図２に示されるように１つ、または複数のPlayItemにより構成される。
【００４８】
図２において、左から１番目に図示されている第１のPlayListは２つのPlayItemから構成され、その２つのPlayItemにより、左側に図示される第１のClipに含まれるＡＶストリームの前半部分と後半部分がそれぞれ参照されている。また、左から２番目に図示されている第２のPlayListは１つのPlayItemから構成され、それにより、右側に図示されている第２のClipに含まれるＡＶストリーム全体が参照されている。更に、左から３番目に図示されている第３のPlayListは２つのPlayItemから構成され、その２つのPlayItemにより、左側に図示されている第１のClipに含まれるＡＶストリームの所定の部分と、右側に図示されている第２のClipに含まれるＡＶストリームの所定の部分とがそれぞれ参照されている。
【００４９】
ナビゲーションプログラム（Navigation program）は、PlayListの再生の順序や、PlayListのインタラクティブな再生をコントロールする機能を、コントローラ２１に実行させるためのプログラムである。また、ナビゲーションプログラムは、各種の再生の実行をユーザが指示するためのメニュー画面を表示する機能なども有する。このナビゲーションプログラムは、例えば、Java（登録商標）などのプログラミング言語で記述され、光ディスク１１などの記録媒体に記録される。例えば、ナビゲーションプログラムがコントローラ２１により実行されて、そのときの再生位置を表す情報として、図２において左から１番目に図示される第１のPlayListに含まれる第１のPlayItemが指定された場合、そのPlayItemが参照する、左側に図示される第１のClipに含まれるＡＶストリームの前半部分の再生が行われる。
【００５０】
また、図２を用いて説明したPlayListには、PlayItemにより指定されるメインパス（Main Path）に加えて、図３に示されるようなサブプレイアイテム（Sub Play Item）を用いて指定されるサブパス（Sub path）の情報を含ませるようにすることもできる。SubPlayItemを定義すると、例えば、PlayItemにより指定されるClip（例えば、MPEG2トランスポートストリーム）に多重化されていない、独立したデータストリームをＡＶストリーム再生に同期して再生させることができる。
【００５１】
例えば、PlayItemにより指定されるメインパス（Main Path）のClip ＡＶストリームに対応させて、テキスト字幕ファイル、および、レンダリングに必要となるフォントファイルから構成される字幕関連情報と、字幕関連情報の再生区間を指定したSubPlayItemを用意することで、Clip ＡＶストリームの再生と同時に、テキスト字幕ファイルに記載されているデータに対応する字幕を、フォントファイルに記載されているフォントデータに基づいた表示フォントで、表示装置に表示させるようにすることができる。また、例えば、PlayItemにより指定されるメインパス（Main Path）のClip ＡＶストリームに対応させて、他言語の吹き替え音声データと、吹き替え音声データに対応したSubPlayItemを用意することで、Clip ＡＶストリームの再生と同時に、他言語の吹き替え音声データを再生出力することができる。
【００５２】
このように、SubPlayItemと、対応するデータ（clip）は、予め光ディスク１１に記録されていても良いし、追加データ（アップロードデータ）として、ネットワーク２を介して、サーバ３からダウンロードされるものであっても良いし、または、リムーバブルメディア（例えば、後述するリムーバブルメディア２８）を用いて取得することができるようにしても良い。このような追加データをサーバ３からダウンロードする場合の詳細については、図４を用いて後述する。
【００５３】
再び、図１の説明に戻る。
【００５４】
メモリ２３は、コントローラ２１が各種の処理を実行する上において必要なデータなどを適宜記憶する。ローカルストレージ２４は、例えば、HDD(Hard Disk Drive)などより構成される。
【００５５】
インターネットインタフェース２５は、有線または無線によりネットワーク２に接続されており、コントローラ２１からの制御に従って、ネットワーク２を介して、サーバ３との間で通信を行い、サーバ３からダウンロードされたデータをローカルストレージ２４に供給する。サーバ３からは、例えば、そのとき再生装置１に装着されている光ディスク１１に記録されている、図２を用いて説明したデータをアップデートさせるデータがコンテンツとしてダウンロードされる。ローカルストレージ２４は、サーバ３からネットワーク２経由でダウンロードしたコンテンツを記録することができる。
【００５６】
デコーダ２６は、光ディスクドライブ２２、または、ローカルストレージ２４から供給されるＡＶストリーム、または、テキストデータをデコードし、得られたビデオ信号とオーディオ信号を外部の表示装置に出力する。表示装置においては、デコーダ２６によりデコードされた信号に基づいて、例えば、光ディスク１１に記録されているコンテンツの出力（映像の表示、音声の出力）が行われる。
【００５７】
操作入力部２９は、例えば、ボタン、キー、タッチパネル、ジョグダイヤル、マウスなどの入力デバイスや、所定のリモートコマンダから送信される赤外線などの信号を受信する受信部により構成され、ユーザの操作入力を取得し、コントローラ２１に供給する。
【００５８】
また、コントローラ２１には、必要に応じてドライブ２７も接続されており、ドライブ２７には、例えば、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM（Compact Disk-Read Only Memory)，DVDを含む）、光磁気ディスク（ＭＤ（登録商標）（Mini-Disk）を含む）、もしくは半導体メモリなどよりなるリムーバブルメディア２８が装着される。
【００５９】
次に、再生装置１に装着された光ディスク１１に記録されたデータ、および、ローカルストレージ２４に記憶されたデータを再生する方法について説明する。
【００６０】
再生装置１はHDD(Hard Disk Drive)などよりなるローカルストレージ２４を内部に備える。再生装置１は、有線または無線によりネットワーク２に接続されており、サーバ３からネットワーク２経由でダウンロードしたコンテンツを、このローカルストレージ２４に記録することができる。サーバ３からは、例えば、そのとき再生装置１に装着されている光ディスク１１に記録されている映画などのコンテンツをアップデートさせるデータをダウンロードすることができる。
【００６１】
ダウンロードされたコンテンツがローカルストレージ２４に記録されている状態で、操作入力部２９から、光ディスク１１に記録されているコンテンツの再生が指示されたとき、コントローラ２１は、光ディスク１１に記録されているコンテンツと、ローカルストレージ２４に記録されているコンテンツを関連付けて、コンテンツの再生処理を実行する。
【００６２】
ここで、光ディスク１１に記録されているコンテンツと、ローカルストレージ２４に記録されているコンテンツを関連付けて再生する方法について、図４を用いて説明する。
【００６３】
例えば、図２の光ディスク１１がパッケージ販売されているメディアであり、ある映画コンテンツが記録されているものとする。また、その映画コンテンツの映像に重畳して表示させることが可能な字幕データファイルとして、英語のテキスト字幕ファイルのみが光ディスク１１に記録されているものとする。
【００６４】
例えば、図４において、光ディスク１１に記録されている、PlayListのPlayItemが参照するClip1のＡＶストリームは、映画コンテンツの映像を表示させ、対応する音声を再生させるためのストリームであり、PlayListのSubPlayItemが参照するClip2の字幕関連情報１は、映像の表示に併せて英語の字幕を表示させるためのテキスト字幕ファイルである。
【００６５】
この状態で、英語とは異なる言語の字幕を表示させて、光ディスク１１に記録されている映画コンテンツを視聴したい場合、光ディスク１１には英語とは異なる言語の字幕データが記録されていないことから、ユーザは、このままでは英語とは異なる言語の字幕データを表示させて、映画を視聴することができない。
【００６６】
そこで、ユーザは、再生装置１に、光ディスク１１に記録されている映画の所望の言語のテキスト字幕ファイルをサーバ３からネットワーク２経由でダウンロードさせる（または、リムーバブルメディア２８を用いて取得させる）。光ディスク１１に予め記録されていない、例えば、アラビア語によるテキスト字幕ファイルのダウンロードが行われた（または、リムーバブルメディア２８からローカルストレージ２４にコピーされた）状態について説明する。
【００６７】
すなわち、ユーザが、光ディスク１１に予め記録されているPlayListに対応する、アラビア語によるテキスト字幕ファイルのダウンロードを指示した場合、再生装置１においては、サーバ３に対するアクセスが行われ、光ディスク１１に記録されているコンテンツをアップデートするものとして、そのサーバ３に用意されているファイルのダウンロードが行われる。
【００６８】
図４の例においては、アラビア語のテキスト字幕ファイル（字幕関連情報２）およびそれに付随するClip Informationファイルで構成されるClip３、光ディスク１１に予め記録されている、例えば、映画コンテンツの映像Clipおよび音声Clip（AVストリームデータ）と英語のテキスト字幕ファイルに加えて、対応するClip３の字幕データの再生表示を制御することができるPlayListファイル（Updated PlayListファイル）、光ディスク１１に記録されているものと比較してアップデートされた新規ナビゲーションプログラムファイルのダウンロードが行われ、それらがローカルストレージ２４に記録される。
【００６９】
なお、Updated PlayListには、メインパスを表すPlayItem以外に、サブパスを表すSubPlayItem１およびSubPlayItem2が付加されている。Updated PlayListのPlayItemは、光ディスク１１に記録されているＡＶ Streamを含むClip1を参照するものであり、SubPlayItem1は、光ディスク１１に記録されている字幕関連情報１を含むClip2を参照するものであり、SubPlayItem2は、Updated PlayListとともにサーバ３からダウンロードされた、アラビア語のテキスト字幕ファイルである字幕関連情報２を含むClip3を参照するものである。
【００７０】
図４の新規ナビゲーションプログラムは、再生区間としてUpdated PlayListのPlayItemとともに、SubPlayItem1またはSubPlayItem2を指定することができるものであり、これにより、例えば、所望の映像および音声データに対応付けて、光ディスク１１に予め記録されている英語によるテキスト字幕ファイルにより定義される英語字幕、または、光ディスク１１に予め記録されていない、アラビア語によるテキスト字幕ファイルにより定義されるアラビア語字幕のうち、ユーザの所望の言語の字幕を表示させることができる。
【００７１】
このように、サーバ３からのダウンロード（または、リムーバブルメディア２８からのコピー）が行われることにより、再生装置１は、英語のテキスト字幕ファイルであるClip2と、光ディスク１１に予め用意されていない、アラビア語のテキスト字幕ファイルであるClip3のいずれかを映画の字幕として再生表示することが可能となる。すなわち、ユーザは、表示装置に表示されるメニュー画面に記載される表示可能な字幕の言語から所望の言語を選択することで、英語とアラビア語のうちの所望する言語の字幕によって映画を視聴することができる。
【００７２】
なお、光ディスク１１に記録されるＡＶストリームは、図５に示すような、MPEG2（Moving Picture Experts Group 2）トランスポートストリームの構造を有する。MPEG2トランスポートストリームは、整数個のAligned unitから構成される。Aligned unitの大きさは、6144バイト(2048×3バイト)であり、ソースパケットの第１バイト目から始まる。ソースパケットは、192バイト長である。１つのソースパケットは、TP_extra_headerとトランスポートパケットから構成される。TP_extra_headerは、４バイト長であり、またトランスポートパケットは、188バイト長である。１つのAligned unitは、３２個のソースパケットから構成される。ビデオストリームやオーディオストリームのデータは、MPEG2 PES（Packetized Elementary Stream）パケットにパケット化されており、PESパケットは、トランスポートパケットにパケット化される。
【００７３】
図６は、図１のコントローラ２１の機能構成例を示すブロック図である。
【００７４】
図６の各構成は、予め用意されている制御プログラムがコントローラ２１により実行されることにより、または、光ディスク１１に記録されているナビゲーションプログラムがコントローラ２１により実行されることにより実現される。
【００７５】
メニュー画面表示制御部３１は、光ディスク１１に記録されているコンテンツの音声、または字幕の言語や、映像のアングルを選択するときにユーザにより操作されるボタンや、ダウンロードするアップデートファイルや、削除されるファイルを選択するときにユーザにより操作されるボタンなどを含むメニュー画面を外部の表示装置に表示させる。
【００７６】
操作入力取得部３２は、操作入力部２９から入力された、ユーザからの操作入力を示す信号を取得し、ユーザからの操作入力を示す信号を、メニュー画面表示制御部３１、データ取得部３３、ローカルストレージディレクトリ管理部３４、または、再生制御部３７のうちの対応する箇所に出力する。
【００７７】
データ取得部３３は、図１のインターネットインタフェース２５において行われる通信、または、ドライブ２７によるリムーバブルメディア２８との情報の授受を制御する。例えば、データ取得部３３は、ユーザが指示したアップデートファイルをサーバ３からダウンロードして取得し、取得したファイルをローカルストレージディレクトリ管理部３４に出力する。また、データ取得部３３は、後述するファイルシステムマージ処理部３６により、必要なファイルを示す情報の供給を受け、必要なファイルを、サーバ３からダウンロードして取得し、取得したファイルをローカルストレージディレクトリ管理部３４に出力する。
【００７８】
ローカルストレージディレクトリ管理部３４は、ローカルストレージ２４のディレクトリを管理し、ローカルストレージ２４に対するデータの書き込み、および、ローカルストレージ２４からのデータの読み出し、および、ローカルストレージ２４からのデータの削除を制御する。例えば、ローカルストレージディレクトリ管理部３４の制御によりローカルストレージ２４から読み出されたPlayListは、メモリ２３に出力され、ローカルストレージ２４から読み出されたＡＶストリームの音声データおよび映像データやテキスト字幕ファイルのテキストデータは、デコーダ２６に出力される。また、ローカルストレージディレクトリ管理部３４は、ファイルシステムマージ処理部３６により、光ディスク１１のファイルシステムと、ローカルストレージ２４のファイルシステムとのマージが行われる場合、ローカルストレージ２４のファイルシステムに関する情報をファイルシステムマージ処理部３６に出力する。
【００７９】
光ディスクディレクトリ管理部３５は、光ディスク１１のディレクトリを管理し、光ディスク１１からの各データの読み出しを制御する。光ディスク１１には識別情報であるauthor_idとdisc_idが設定されており、光ディスクディレクトリ管理部３５の制御により、光ディスク１１から読み出されたauthor_idとdisc_idは、データ取得部３３とローカルストレージディレクトリ管理部３４に出力される。また、光ディスクディレクトリ管理部３５の制御により、光ディスク１１から読み出されたPlayListは、メモリ２３に出力され、光ディスク１１から読み出されたＡＶストリームの音声データおよび映像データやテキスト字幕ファイルのテキストデータは、デコーダ２６に出力される。また、光ディスクディレクトリ管理部３５は、ファイルシステムマージ処理部３６により、光ディスク１１のファイルシステムと、ローカルストレージ２４のファイルシステムとのマージが行われる場合、光ディスク１１のファイルシステムに関する情報をファイルシステムマージ処理部３６に出力する。author_idとdisc_idについては、後述する。
【００８０】
ファイルシステムマージ処理部３６は、光ディスクディレクトリ管理部３５から供給される光ディスク１１のファイルシステムと、ローカルストレージディレクトリ管理部３４から供給されるローカルストレージ２４のファイルシステムをマージし、１つの仮想的なファイルシステムを生成する。ファイルシステムマージ処理部３６は、マージすることで生成した仮想的なファイルシステムを再生制御部３７に出力する。
【００８１】
また、ファイルシステムマージ処理部３６は、ローカルストレージ２４に記録されているいくつかのファイルが削除（消去、すなわち、データのdelete）された場合、そのいくつかのファイルの削除により、仮想ファイルシステムにおけるファイルのリンク構造（すなわち、図２乃至図４を用いて説明した様な、光ディスク１１のアプリケーションフォーマットに基づいた、PlayListによるClipの再生のためのデータの連携）に不具合が発生するか否かを判断し、仮想ファイルシステムにおけるファイルのリンク構造に不具合が発生すると判断された場合、不具合の解消に必要なファイルを抽出し、データ取得部３３に必要なファイルを示す情報を供給して、必要なファイルをダウンロードさせることができる。
【００８２】
更に、ファイルシステムマージ処理部３６は、ローカルストレージ２４に記録されているいくつかのファイルが削除されたことにより、例えば、仮想ファイルシステムにおいて、いずれのPlayListによっても再生されない（全てのPlayListによって指定されない）ファイルが発生した場合、このような不必要なファイルを削除することをローカルストレージディレクトリ管理部３４に指令することができる。
【００８３】
なお、いくつかのファイルが削除されたことにより発生する不必要なファイルを削除するか否かをユーザにより設定可能なようにしても良い。
【００８４】
再生制御部３７は、ファイルシステムマージ処理部３６から供給される仮想ファイルシステムで指定されるナビゲーションプログラムを実行し、コンテンツの再生を制御する。具体的には、再生制御部３７はメモリ２３に供給され、記憶されたPlayListを参照し、ローカルストレージディレクトリ管理部３４または光ディスクディレクトリ管理部３５を制御して、光ディスク１１またはローカルストレージ２４に記録されているＡＶストリームの音声データ、映像データ、並びに、必要に応じて、テキスト字幕ファイルのテキストデータ、効果音の音声データ、または、アニメーションを表示させるための画像データ（アニメーションフレームのデータ）などを、仮想ファイルシステムに基づいて読み出させ、図１のデコーダ２６を制御して、光ディスク１１またはローカルストレージ２４に記録されているＡＶストリームの音声データ、映像データ、並びに、必要に応じて、テキスト字幕ファイルのテキストデータ、効果音の音声データ、または、アニメーションを表示させるための画像データなどのデコード（再生）を行わせる。
【００８５】
ここで、ファイルシステムマージ処理部３６により行われる、光ディスク１１のファイルシステムと、サーバ３からダウンロードするなどによりローカルストレージ２４に記録されたデータ群を管理するファイルシステムのマージについて説明する。このマージは、例えば、光ディスク１１が再生装置に装着されたとき、光ディスク１１に記録されているコンテンツの再生が指示されたとき、光ディスク１１またはローカルストレージ２４に記録されているいずれかのデータの入出力が指令されたとき、または、ユーザによりマージが指令されたときなどに行われる。
【００８６】
再生装置１のシステムが持つネイティブなファイルシステム（光ディスク１１またはローカルストレージ２４に実際に記録されているデータのファイルシステム）の上位レイヤとして、仮想ファイルシステムが定義される。すなわち、図７に示されるように、サーバ３から新たなデータをダウンロードして、ローカルディスク２４に記録させたり、光ディスク１１またはローカルストレージ２４に実際に記録されているデータを再生する処理を実行するアプリケーションプログラム、または、そのアプリケーションプログラムを扱うユーザが認識可能なのは、上位レイヤである仮想ファイルシステムのみである。換言すれば、仮想ファイルシステムは、ネイティブなファイルシステムを抽象化し、再生装置１内の物理デバイスやオペレーティングシステムなどのネイティブな構造を隠蔽するために構築される。
【００８７】
仮想ファイルシステムの役割は、主に、物理デバイス（光ディスク１１またはローカルストレージ２４）におけるファイル／ディレクトリをマウントして、ユーザから認識される仮想ディスク（Virtual Disc）のファイルシステムを構成することと、アプリケーションプログラムに対して、構築された仮想ディスクへのファイルアクセスAPIを提供することである。
【００８８】
例えば、ユーザが、光ディスク１１またはローカルストレージ２４に記録されているいずれかのファイルへのアクセスを要求する操作入力を行った場合、図８に示されるように、アプリケーションプログラムには、仮想ファイルシステムのみしか認識できず、実際の物理デバイスである光ディスク１１またはローカルストレージ２４に記録されているローカルファイルシステム#１、ローカルファイルシステム＃２、または、光ディスク１１内のファイルシステムの構造は、アプリケーションプログラムと、アプリケーションプリグラムを取り扱うユーザから隠蔽され、仮想ファイルシステムを介して、アクセス可能なようになされている。
【００８９】
図８に示されるファイルアクセス要求を実行するために、再生装置１のアプリケーションプログラムは、仮想ファイルシステムが提供するファイル入出力のAPI（Application Programming Interface）を呼び出すことにより、ディスクドライブの物理的な構成やファイルシステムのソフトウェア構成などを意識することなく、光ディスク１１またはローカルストレージ２４に実際に記録されているデータにアクセスすることができる。すなわち、仮想ファイルシステムのAPIは、実際には、再生装置１の内部でネイティブなファイルシステムのAPIを呼び出している。
【００９０】
仮想ファイルシステムは各種のAPIを提供しており、例えば、指定したファイルを開くopen（）、指定したファイルを閉じるclose（）、指定したファイルの読み出し位置または書き込み位置を設定するseek（）、指定したファイルの状態を取得するstat（）、指定したファイルを読み出すread（）、指定したファイルを書き込むwrite（）などのAPIが提供される。再生制御部３９などにより実行されるアプリケーションプログラムは、これらのAPIを利用して、光ディスク１１またはローカルストレージ２４に記録されているファイルを操作する。
【００９１】
また、仮想ファイルシステムは、ローカルストレージ２４のディスク領域を分割管理する機能を持つ。ローカルストレージ２４のディスク領域は、例えば、図９に示されるように、コンテンツの配給元（コンテンツオーサ）ごとに分割されたディレクトリ構造を有し、author_id直下のディレクトリであるdisc_id以下は、コンテンツオーサにより、フレキシブルなファイル／ディレクトリ構造を構成することができる。ローカルストレージ２４に記憶されるデータが、ローカルストレージ２４のディスク領域のどこに配置されるか、すなわち、ダウンロードされるファイルのファイル／ディレクトリ構造は、ダウンロードされるデータに含まれるメタデータ（後述するManifestデータ）の記述により指定される。
【００９２】
ローカルストレージ２４のファイル／ディレクトリ構造において、ディレクトリを分割するauthor_idは、コンテンツ作成元を一意に識別するための識別子であり、disc_idは、author_idにより特定されたコンテンツ作成元に対して、光ディスク１１を一意に識別するための識別子であり、それぞれ、ダウンロードされるデータのメタデータ（後述するManifestデータ）に含まれる情報である。メタデータ（Manifestデータ）並びに、author_idおよびdisc_idについては後述する。
【００９３】
これに対して、アプリケーションからアクセス可能な仮想ディスクのディレクトリ／ファイル構造は、光ディスク１１のディレクトリ／ファイル構造に従うようになされている。すなわち、再生装置１に装着された光ディスク１１に対して、対応するauthor_idおよびdisc_id以下のデータのファイル構造が、光ディスク１１に記録されているデータのファイル構造とマージされ、光ディスク１１のディレクトリ／ファイル構造に基づいたディレクトリ／ファイル構造を有する仮想ディスクの仮想ファイルシステムが構成される。
【００９４】
また、仮想ファイルシステムは、ディレクトリおよびファイルの管理機構のほかに、disc単位でメタデータ、すなわち、後述するManifestファイルを管理する機能を持つ。仮想ファイルシステムが、ネイティブなファイルシステムのファイルモデルに対して、メタデータのフィールドを定義する目的は、ユーザに対して、実際にローカルディスク２４に記録されているファイルのパスまたはファイル名を提示するのではなく、コンテンツ内容を表現した名称を提供することと、ダウンロード処理において同一ファイルの二重更新を防止することと、仮想ファイルシステム内でのパス名称、すなわち、光ディスク１１再生時におけるパス名称を定義することとの３つである。
【００９５】
そして、仮想ファイルシステムは、メタデータ管理のために、Manifestファイルとメタデータ操作手続きの、二つの機能を提供する。Manifestファイルとは、ダウンロードされたファイルの各種属性を示すメタデータであり、Manifest（）は、対応するファイル単位で保存しても、１つのファイルにマージして、Manifest（）セクションの識別子であるmanifest_id（図１０において後述）をキーに識別可能なようにしてもよい。いずれの形態であっても、ここでは、Manifestファイルと総称する。ローカルストレージ２４にダウンロードされたファイルを保持している再生装置１は、Manifestファイルを保持していなければならない。また、Manifestファイルは、XMLに代表されるタグ付言語によるテキスト表現をとることも可能である。
【００９６】
図１０は、Manifestファイルのシンタックスを示す図である。
【００９７】
manifest_idは、このManifest（）セクションの識別子である。
【００９８】
author_idは、コンテンツ作成元を一意に識別するための識別子を指定するためのフィールドである。この識別子は、図１５を用いて後述する、コンテンツ配布用ファイルのauthor_idフィールドを参照することで決定され、アプリケーションプログラムまたはユーザは、このフィールドに自由に値を設定することはできない。
【００９９】
disc_idは、author_idにより特定されたコンテンツ作成元に対して、光ディスク１１を一意に識別するための識別子を指定するためのフィールドである。この識別子は、図１５を用いて後述する、コンテンツ配布用ファイルのauthor_idフィールドを参照することで決定され、アプリケーションプログラムまたはユーザは、本フィールドに自由に値を設定することはできない。
【０１００】
versionは、コンテンツオーサが履歴管理のために使用するフィールドである。履歴番号は、１から２５５までの数値によって表現され、数値が大きいほど新しいコンテンツであるものとする。この識別子は、図１５を用いて後述する、コンテンツ配布用ファイルのauthor_idフィールドを参照することで決定され、アプリケーションプログラムまたはユーザは、このフィールドに自由に値を設定することはできない。
【０１０１】
display_nameには、ユーザに分かり易い名前が定義される。具体的には、display_nameには、例えば、「タイトルxxxの日本語字幕」などのように、ファイル名称からは連想しづらい内容を表現する文字列が設定される。文字列は、ISO/IEC 10646-1規格に従い符号化されているものとする。
【０１０２】
sourceには、ファイルの配信元を示す情報が記述される。本フィールド値は、ISO/IEC 646規格に従い符号化するものとする。ネットワークダウンロードの場合、ダウンロード元のURLが記述される。
【０１０３】
次に、permissionは、ユーザに対して可視属性にしてよいか、不可視属性にしておくかなどの許認可情報をコンテンツオーサが指定するためのフィールドである。permissionの８ビットのフィールドに、0x00が記載されている場合、このメタデータを付随しているファイルの属性は、ユーザに対して不可視属性であり、permissionの８ビットのフィールドに、0x01が記載されている場合、このメタデータを付随しているファイルの属性は、ユーザに対して可視属性であり、permissionの８ビットのフィールドに、0x02が記載されている場合、このメタデータを付随しているファイルの属性は、上書き禁止属性である。
【０１０４】
そして、src_file_nameは、ローカルストレージ２４のファイルシステムにおいて、このファイルがディレクトリ構造のどこに記録されるかを一義に指定できる情報、すなわち、ローカルストレージ２４のファイルシステムの階層構造におけるファイル位置を使ってファイルを特定する、いわゆるパスを表す「パス名称」を指定するためのフィールドである。パス名称を表現するためのファイルやディレクトリの名称は、ISO/IEC 646規格に従い符号化されているものとする。
【０１０５】
dst_file_nameは、実際にはローカルストレージ２４に記憶されるファイルの仮想ディスクにおけるバインド先において、このファイルがディレクトリ構造のどこに記録されるかを一義に指定できる情報、すなわち、仮想ファイルシステムの階層構造におけるファイル位置を使ってファイルを特定する、いわゆるパスを表す「パス名称」を指定するためのフィールドである。パス名称を表現するためのファイルやディレクトリの名称は、ISO/IEC 646規格に従い符号化されているものとする。
【０１０６】
なお、src_file_nameとdst_file_nameには、同一名称を指定することもできる。
【０１０７】
次に、メタデータ操作手続きについて説明する。
【０１０８】
仮想ファイルシステムは、アプリケーションプログラムまたはユーザに対して、Manifest（）のファイル名称、ファイル位置、または、物理構造などを公開せずに、Manifest（）の内容を読み出すためのAPIを定義している。
【０１０９】
すなわち、アプリケーションプログラム、または、再生装置１で実行されるレジデント（常駐）プログラムは、以下のAPIを呼び出すことにより間接的にManifest（）にアクセスすることができる。
【０１１０】
getProperty
引数1:
文字列型データ
メタデータ操作の対象となるファイルの絶対パス名称
引数2:
文字列型データ
読み出したいメタデータの要素名
戻り値:            文字列型データ
引数で指定した要素に対応するメタデータ
機能:
Manifest（）からメタデータを読み出す。
【０１１１】
なお、実際には、型情報などの詳細なAPIの定義は、再生装置１のソフトウェア実行環境のプログラミング言語仕様に依存して変更されなければならない。
【０１１２】
図１１は、光ディスク１１のファイルシステムの例を示す図である。図１１に示されるように、光ディスク１１のファイルシステムはディレクトリ構造を有している。
【０１１３】
光ディスク１１の「root」の下には「BDMV」の名前が設定されたディレクトリが用意され、そのディレクトリに、「Index.bdmv」の名前が設定されたファイルと、「MovieObjects.bdmv」の名前が設定されたファイルが格納されている。以下、適宜、これらのファイルをそれぞれIndexファイル、MovieObjectファイルと称する。また、適宜、各ファイルについては、「ファイル名」に「ファイル」を付加した形で、または、各ディレクトリについては、「ディレクトリ名」に「ディレクトリ」を付加した形で称する。
【０１１４】
Indexファイルは、光ディスク１１を再生するメニューに関する情報を含む。再生装置１は、例えば、光ディスク１１のコンテンツを全て再生する、特定のチャプタのみ再生する、繰り返し再生する、初期メニューを表示するなどの内容の項目を含む再生メニュー画面をIndexファイルに基づいて、表示装置に表示させる。Indexファイルには各項目が選択されたときに実行するMovieObjectを設定することができ、ユーザにより再生メニュー画面から１つの項目が選択された場合、再生装置１はIndexファイルに設定されているMovieObjectのコマンドを実行する。
【０１１５】
MovieObjectファイルは、MovieObjectを含むファイルである。MovieObjectは、光ディスク１１に記録されているPlayListの再生を制御するコマンドを含み、例えば、再生装置１は、光ディスク１１に記録されているMovieObjectの中から１つを選択して、実行することにより、光ディスク１１に記録されているコンテンツを再生させることができる。
【０１１６】
また、後述するアニメーションデータを再生させるためのAPI（Application Program Interface）が定義されており、MovieObjectには、アニメーションデータを再生させるためのAPIを呼び出すためのコマンドも含まれている。例えば、あるプレイリストにより再生されるＡＶデータと同期してアニメーションが表示されるようになされている場合、そのプレイリストの再生時には、アニメーションデータを再生させるためのAPI（提供されているAPIに基づくアプリケーション）を呼び出すためのコマンドを含むMovieObjectが実行される。これにより、APIが呼び出されて実行され（提供されているAPIに基づくアプリケーションが実行され）、アニメーションがＡＶデータと同期して再生表示される。
【０１１７】
BDMVディレクトリにはまた、「BACKUP」の名前が設定されたディレクトリ（BACKUPディレクトリ）、「PLAYLIST」の名前が設定されたディレクトリ（PLAYLISTディレクトリ）、「CLIPINF」の名前が設定されたディレクトリ（CLIPINFディレクトリ）、「STREAM」の名前が設定されたディレクトリ（STREAMディレクトリ）、「AUXDATA」の名前が設定されたディレクトリ（AUXDATAディレクトリ）が設けられている。
【０１１８】
BACKUPディレクトリには、光ディスク１１に記録されているファイルやデータをバックアップするためのファイルやデータが記録される。
【０１１９】
PLAYLISTディレクトリには、PlayListファイルが格納される。各PlayListファイルには、図内に示されるように５桁の数字からなるファイル名に拡張子「.mpls」を付加した名称が命名される。
【０１２０】
CLIPINFディレクトリには、Clip Informationファイルが格納される。各Clip Informationファイルには、図内に示されるように５桁の数字からなるファイル名に拡張子「.clpi」を付加した名称が命名される。
【０１２１】
STREAMディレクトリには、Clip ＡＶストリームファイルやサブストリームファイルが格納される。各ストリームファイルには、図内に示されるように５桁の数字からなるファイル名に拡張子「.m2ts」を付加した名称が命名される。
【０１２２】
AUXDATAディレクトリには、Clip ＡＶストリームファイルやサブストリームファイルに含まれずに、Clip ＡＶストリームファイルやサブストリームファイルから参照されるデータや、Clip ＡＶストリームファイルやサブストリームファイルとは独立して利用されるデータなどのファイルが格納される。図１１の例においては、AUXDATAディレクトリには、「11111.otf」の名前がつけられている字幕のフォントのファイル、「sound.bdmv」の名前が設定された効果音が格納されている。
【０１２３】
AUXDATAディレクトリには、例えば、JPEG形式のグラフィカルアニメーションデータファイルなども格納される。この、グラフィカルアニメーションデータは、アニメーションデータを再生させるためのAPIに基づいた、例えば、Java（登録商標）アプリケーションが起動されることにより、再生可能なようになされている。
【０１２４】
再生装置１においては、アニメーションデータを再生させるためのAPIを定義することにより、アニメーションを表示させるためのアニメーションフレームを、ビデオストリームなどのストリームファイルとは異なる形式でもよいことにし、例えば、Java（登録商標）アプリケーションなどを用いたグラフィカルアニメーションをＡＶコンテンツデータと同期して表示することができるようになされている。
【０１２５】
また、このようにして、ＡＶコンテンツと異なるコーディング形式のデータをＡＶコンテンツと合成可能な映像データとして扱うことができるようになされているので、オーサリングの自由度が向上する。
【０１２６】
また、アニメーションを、例えば、Java（登録商標）で記述するなど、ビデオストリームなどのストリームファイルとは異なる形式であってもよいものとすることにより、例えば、ビデオデータと同様のデータファイル構造でアニメーションフレームを用意する場合と比較して、再生装置１に必要とされるバッファ容量が少なくてすむので、装置のコストダウンや小型化が容易となる。
【０１２７】
また、光ディスク１１には、製作会社や映画の配給会社などの光ディスク１１のコンテンツ製作元であるタイトルオーサを識別するために各タイトルオーサに割り当てられた識別子であるauthor_id、および、author_idに示されるタイトルオーサにおいて製作された光ディスク１１の種類を識別するために割り当てられた識別子であるdisc_idが、ユーザなどにより書き換えることができないセキュアな電子データとして、または、物理的にピットによって記録されている。
【０１２８】
図１２は、ローカルストレージ２４のファイルシステムの例を示す図である。図１２に示されるように、ローカルストレージ２４のファイルシステムもディレクトリ構造を有している。
【０１２９】
ローカルストレージ２４の「root」の下には、少なくとも１つの「author_id」の名前が設定されたディレクトリが用意され、「author_id」ディレクトリの下には、少なくとも１つの「disc_id」の名前が設定されたディレクトリが用意されている。そして、「disc_id」のディレクトリには、Manifest（）セクションの集合、または、１つのManifest（）セクションからなるManifestファイルが含まれており、それ以外のディレクトリやファイルの構造は、コンテンツオーサにより自由に設定可能であり、例えば、図１１を用いて説明した光ディスク１１のディレクトリ／ファイル構造と同様のものであっても良いし、図１２に示されるように、図１１を用いて説明した光ディスク１１のディレクトリ／ファイル構造とまったく異なるものであっても良い。
【０１３０】
例えば、図１２においては、「disc_id」のディレクトリには、Manifestファイル以外に、「MainMovie」ディレクトリ、「SubTitle」ディレクトリ、「AUXDATA」ディレクトリなどの複数のフォルダが設定され、これらのディレクトリは、更に、フォルダ、または、ファイルを含むことができる。
【０１３１】
図１２に示されるローカルストレージ２４のディレクトリ／ファイル構造は、再生装置１において実行されるアプリケーションプログラム、または、ユーザから隠蔽されている。
【０１３２】
例えば、図１０を用いて説明したManifest（）セクションにおいて、src_file_nameのフィールドに「/MainMovie/movie01/main.r1.jp.mp2」とパス名称が指定され、dst_file_nameのフィールドに「/STREAM/01002.m2ts」とパス名称が指定されている場合、ダウンロードされたデータは、図１３に示されるように、ローカルストレージ２４において、対応するauthor_idおよびdisc_idの下の、MainMovieディレクトリ内のmovie01ディレクトリに、main.r1.jp.mp2というファイル名で記録されるが、仮想ディスクにおける仮想ファイルシステムにおいては、STREAMディレクトリの01002.m2tsというファイル名のファイルとして取り扱われる。
【０１３３】
このように、コンテンツオーサは、ダウンロードされるファイルパッケージのManifest（）セクションのsrc_file_nameのフィールドに、ローカルストレージ２４におけるパス名称を指定し、dst_file_nameのフィールドに、仮想ディスクにおける仮想ファイルシステムにおけるパス名称を指定することができる。したがって、dst_file_nameのフィールドに、仮想ディスクにおける仮想ファイルシステムに適応したパス名称を設定すれば、コンテンツオーサは、再生装置１の、ローカルストレージ２４に実際に記録されるデータのdisc_id以下のファイル／ディレクトリ構造を自由に設定し、disc_id以下の領域にディレクトリやファイルを新しく追加することが可能となる。
【０１３４】
また、実ファイルをダウンロードするときに、Manifest（）セクションのdst_file_nameのフィールドを空欄とした場合、そのファイルは、再生装置１において実行されるアプリケーションプログラムから参照することができない（すなわち、再生装置１において実行されるアプリケーションプログラムやユーザから、そのファイルの存在を認識することができない）。すなわち、実ファイルはローカルストレージ２４に記憶され、ローカルストレージのファイルシステムにおいては、そのファイルは正しく認識されているが、dst_file_nameのフィールドを空欄とすることにより、仮想ファイルシステムには存在しないこととすることができ、再生装置１において実行されるアプリケーションプログラムやユーザからは隠蔽することが可能である。
【０１３５】
これを利用して、例えば、Manifest（）セクションのdst_file_nameのフィールドを空欄として実ファイルをダウンロードさせ、後日、同一のManifest_idを有し、dst_file_nameフィールドに所定のパス名称が記載されたManifest（）セクションを改めてダウンロードさせてManifest（）セクションを上書きさせることにより、再生装置１において実行されるアプリケーションプログラムからは、新たなManifest（）セクションがダウンロードされたタイミングで、実ファイルがダウンロードされたのと同様に取り扱わせるようにすることができる。
【０１３６】
このようにすることにより、例えば、複数のアニメーションデータを一度にダウンロード、または、所定の記録媒体などにより配布させておいて、その後、異なるアニメーションデータをアプリケーションにより認識させることができるようにdst_file_nameフィールドが記載されたManifest（）セクションのみを、所定の時期ごとにダウンロードさせて、上書きさせることにより、大容量のデータをたびたびダウンロードさせることなく、時期ごとに異なるアニメーションデータが追加されてAVデータと同期して再生表示されるようなサービスをユーザに提供することが可能である。
【０１３７】
また、光ディスク１１およびローカルストレージ２４における実際のファイルシステムと、仮想ディスクのファイルシステムとの同期（バインド）方式は、いわゆるスタティックバインディング方式であっても、ダイナミックバインディング方式であっても、仮想ファイルシステムを更新するために新たなAPI（例えば、update()）を定義し、ユーザ操作、または、アプリケーションプログラムにより明示的にそのAPIが呼び出されたときに、仮想ファイルシステムが更新されるようにしてもよい。
【０１３８】
なお、スタティックバインディングとは、光ディスク１１が再生装置１に装着された時点、または、再生タイトルが切り替わったタイミングで、光ディスク１１およびローカルストレージ２４における実際のファイルシステムを参照し、仮想ファイルシステムのディレクトリ／ファイル構造をマッピングするものであり、ダイナミックバインディングとは、ファイル入出力要求が発行された時点で、必要なファイルを探索するものである。
【０１３９】
仮想ディスクのディレクトリ／ファイル構造は、上述したように、光ディスク１１のディレクトリ／ファイル構造に合致するようになされると好適である。光ディスク１１のディレクトリ／ファイル構造は、規格などにより予め定められ、変更することができない場合が多く、ローカルストレージ２４における実際のファイルシステムのディレクトリやファイルの構造は、コンテンツオーサにより自由に設定可能であるほうが好適である。このため、仮想ディスクのディレクトリ／ファイル構造を、変更することができない光ディスク１１のディレクトリ／ファイル構造に基づいて設定することができるようにすると、コンテンツオーサにより配布されるデータの自由度を維持しつつ、光ディスク１１のアプリケーションフォーマット等の規格に合致した再生処理を実行させることができるので好適である。
【０１４０】
仮想ディスクにおけるディレクトリ／ファイル構造の例を図１４に示す。
【０１４１】
図１４に示される仮想ディスクのディレクトリ／ファイル構造において、「root」の下には「BDMV」の名前が設定されたディレクトリが用意され、そのディレクトリに、「Index.bdmv」の名前が設定されたファイルと、「MovieObjects.bdmv」の名前が設定されたファイルが格納されている。
【０１４２】
Indexファイルは、光ディスク１１およびローカルストレージ２４に記録され、アプリケーションプログラムから仮想ディスクに記録されているものとして取り扱われるコンテンツを再生するメニューに関する情報を含む。再生装置１は、例えば、仮想ディスクに記録されているものとして取り扱われるコンテンツを全て再生する、特定のチャプタのみ再生する、繰り返し再生する、初期メニューを表示するなどの内容の項目を含む再生メニュー画面をIndexファイルに基づいて、表示装置に表示させる。Indexファイルには各項目が選択されたときに実行するMovieObjectを設定することができ、ユーザにより再生メニュー画面から１つの項目が選択された場合、再生装置１はIndexファイルに設定されているMovieObjectのコマンドを実行する。
【０１４３】
MovieObjectファイルは、MovieObjectを含むファイルである。MovieObjectは、仮想ディスクに記録されているものとして取り扱われるPlayListの再生を制御するコマンドを含み、例えば、再生装置１は、仮想ディスクに記録されているものとして取り扱われるMovieObjectの中から１つを選択して、実行することにより、仮想ディスクに記録されているものとして取り扱われるコンテンツを再生させることができる。
【０１４４】
BDMVディレクトリにはまた、「BACKUP」の名前が設定されたディレクトリ（BACKUPディレクトリ）、「PLAYLIST」の名前が設定されたディレクトリ（PLAYLISTディレクトリ）、「CLIPINF」の名前が設定されたディレクトリ（CLIPINFディレクトリ）、「STREAM」の名前が設定されたディレクトリ（STREAMディレクトリ）、「AUXDATA」の名前が設定されたディレクトリ（AUXDATAディレクトリ）が設けられている。
【０１４５】
BACKUPディレクトリには、仮想ディスクに記録されているものとして取り扱われるファイルやデータをバックアップするためのファイルやデータが記録される。
【０１４６】
PLAYLISTディレクトリには、PlayListファイルが格納される。各PlayListファイルには、光ディスク１１における場合と同様に、５桁の数字からなるファイル名に拡張子「.mpls」を付加した名称が命名される。
【０１４７】
CLIPINFディレクトリには、Clip Informationファイルが格納される。各Clip Informationファイルには、光ディスク１１における場合と同様に、５桁の数字からなるファイル名に拡張子「.clpi」を付加した名称が命名される。
【０１４８】
STREAMディレクトリには、Clip ＡＶストリームファイルやサブストリームファイルが格納される。各ストリームファイルには、光ディスク１１における場合と同様に、５桁の数字からなるファイル名に拡張子「.m2ts」を付加した名称が命名される。
【０１４９】
AUXDATAディレクトリには、仮想ディスクに記録されているものとして取り扱われるClip ＡＶストリームファイルやサブストリームファイルに含まれずに、Clip ＡＶストリームファイルやサブストリームファイルから参照されるデータや、Clip ＡＶストリームファイルやサブストリームファイルとは独立して利用されるデータなどのファイルが格納される。すなわち、AUXDATAディレクトリには、上述した光ディスク１１における場合と同様にして、例えば、字幕のフォントのファイル、効果音のファイル、または、グラフィカルアニメーションデータ（アニメーションフレーム）などが記録される。
【０１５０】
再生装置１においては、上述したように、アニメーションを表示させるためのアニメーションフレームを、ビデオストリームなどのストリームファイルとは異なる形式でもよいことにし、例えば、Java（登録商標）アプリケーションなどを用いたグラフィカルアニメーションをＡＶコンテンツデータと同期して表示することができるようになされている。
【０１５１】
また、このようにして、ＡＶコンテンツと異なるコーディング形式のデータをＡＶコンテンツと合成可能な映像データとして扱うことができるようになされているので、オーサリングの自由度が向上する。
【０１５２】
また、アニメーションを、例えば、Java（登録商標）で記述するなど、ビデオストリームなどのストリームファイルとは異なる形式であってもよいものとすることにより、例えば、ビデオデータと同様のデータファイル構造でアニメーションフレームを用意する場合と比較して、再生装置１に必要とされるバッファ容量が少なくてすむので、装置のコストダウンや小型化が容易となる。
【０１５３】
なお、ユーザに提供されるメニュー画面において、ファイルを示す情報は、通常、display_nameのフィールドにおいて指定された名称となるが、例えば、図１４を用いて説明した、仮想ディスクにおけるディレクトリ／ファイル構造は、アプリケーションまたはユーザから隠蔽されないものであるので、再生装置１において実行されるアプリケーションによっては、仮想ディスクにおけるディレクトリ／ファイル構造を、ユーザに提示するようにしてもかまわない。
【０１５４】
次に、図１５を用いて、コンテンツオーサがコンテンツを配布する際のコンテンツ配布用ファイル形式の定義について説明する。コンテンツの配布の際のファイル形式は、コンテンツファイル単位での個別配布であっても良いが、図１５に示されるように、メタデータ（Manifest()）を含むアーカイブ形式であっても良い。
【０１５５】
ただし、アーカイブ中のPackage_header（）セクションおよびPackage_Body（）セクションに関しては、XMLに代表されるタグ付言語によるテキスト表現もとることができる。
【０１５６】
なお、コンテンツオーサがコンテンツをファイル単位で個別配布するとき、メタデータ（Manifest()）は単独のバイナリーファイルまたはテキストファイルとして扱われる。すなわち、ファイル単位で配布されたコンテンツに関連付けられるManifest（）には、追加後のディレクトリ構造を見越して、ふさわしい状態が記述されていなければならない。
【０１５７】
compression_typeは、Package_Body（）内データの圧縮方式を指定するためのフィールドである。本フィールドに０が指定されている場合は、Package_Body（）内データは、非圧縮形式であるものとする。
【０１５８】
encryption_typeは、Package_Body（）内データのスクランブル方式（暗号化方式）を指定するためのフィールドである。本フィールドに０が指定されている場合は、Package_Body（）内データは、ノンスクランブル（平文）形式であるものとする。
【０１５９】
なお、Package_Body（）内データのスクランブルと圧縮の順序は、１.圧縮処理、２.スクランブル処理の順番で行われるものとする。
【０１６０】
file_countは、アーカイブするファイルの総数を指定するためのフィールドである。
【０１６１】
manifest_idは、このManifest（）セクションの識別子を指定するためのフィールドである。
【０１６２】
アーカイブデータがダウンロードされた後、Manifest（）セクションは、ローカルストレージ２４において、対応するダウンロードファイル単位（アーカイブデータ単位）で保存されるようにしても、１つのファイルにマージされるようにして、Manifest（）セクションの識別子であるmanifest_idをキーに識別可能なようにしてもよい。
【０１６３】
author_idは、コンテンツ作成元を一意に識別するための識別子をコンテンツオーサが指定するためのフィールドである。
【０１６４】
disc_idは、特定のコンテンツ作成元において、光ディスク１１を一意に識別するための識別子をコンテンツオーサが指定するためのフィールドである。すなわち、このアーカイブは、disc_idで指定される光ディスク１１に対するアップデートデータである。
【０１６５】
versionは、コンテンツオーサが履歴管理のために使用するためのフィールドである。履歴番号は、１から２５５までの数値によって表現され、数値が大きいほど新しいコンテンツであるものとする。
【０１６６】
sourceは、このManifest（）に関連付けられたファイルのソースURLを記述するためのフィールドである。文字列は、ISO/IEC 10646-1規格に従い符号化されているものとする。
【０１６７】
display_nameは、ユーザ分かり易い名前をコンテンツオーサが指定するためのフィールドである。例えば、「タイトルxxxの日本語字幕」などのようにファイル名称からは連想しづらい内容を表現する文字列を設定するためのフィールドである。文字列は、ISO/IEC 10646-1規格に従い符号化されているものとする。
【０１６８】
permissionは、ユーザに対して可視属性にしてよいか、不可視属性にしておくかなどの許認可情報をコンテンツオーサが指定するためのフィールドである。Permissionにおいて指定可能な値については、図１０を用いて説明した場合と同一である。
【０１６９】
src_file_nameは、図１３を用いて説明した様に、ローカルストレージ２４にて記録されるべきファイルのパス名称を指定するためのフィールドである。ファイル／ディレクトリ名称は、ISO/IEC 646規格に従い符号化されているものとする。
【０１７０】
dst_file_nameは、図１３を用いて説明した様に、仮想ディスク（仮想ファイルシステム）におけるバインド先のファイルのパス名称を指定するためのフィールドである。ファイル／ディレクトリ名称は、ISO/IEC 646規格に従い符号化されているものとする。
【０１７１】
なお、src_file_nameとdst_file_nameには、同一名称を指定することもできる。
【０１７２】
file_sizeは、圧縮前のファイルサイズをバイト単位で指定するためのフィールドである。
【０１７３】
file_dataは、ファイルデータをバイトシーケンスとして指定するためのフィールドである。
【０１７４】
図１５を用いて説明した様なコンテンツ配布用ファイル形式のデータがダウンロードされ、再生装置１において、装着された光ディスク１１に記録されているデータとマージされて仮想ディスクにおける仮想ファイルシステムが構築される。これにより、再生装置１を用いて光ディスク１１に記録されているコンテンツを再生させるユーザからは、光ディスク１１に記録されているコンテンツに、例えば、ボーナストラックや、異なる言語での音声または表示字幕が追加されてアップロードされたように感じられる。
【０１７５】
上述したファイル形式に従って構成されるコンテンツが更新される場合は、例えば、図１４を用いて説明した仮想ファイルシステムにおいて、インデックスファイル（Index.bdmv）、ムービーオブジェクトファイル（Movieobjects.bdmv）、プレイリストファイル（*****.mpls）、クリップインフォメーションファイル（*****.clpi）、ストリームファイルまたはAUXデータファイル（*****.m2ts, *****bdmv,*****.otf）などが追加あるいは更新されるように、新たなデータファイルがダウンロードされて、バインディングされる。これらのファイルがダウンロードされて、装着されている装着された光ディスク１１に記録されているコンテンツに関連付けられて再生されるためには、MainPathの追加やSubPathの追加など、さまざまなタイプの追加が実行される。
【０１７６】
次に、図１６は、本発明を適用した再生装置１のデコーダ２６の構成を示すブロック図である。
【０１７７】
デコーダ２６には、スイッチ４１、および、ＡＶデコーダ部３３が設けられ、コントローラ２１の制御に基づいて動作している。
【０１７８】
図１６の例の場合、最初に、コントローラ２１が光ディスクドライブ２２を介して光ディスク１１（ブルーレイディスクもしくはDVDなどの記録媒体）から、または、ローカルストレージ２４から、PlayListファイルを読み出し、PlayListファイルの情報に基づいて、光ディスクドライブ２２を介して光ディスク１１から、または、ローカルストレージ２４から、ＡＶストリームやＡＶデータを読み出す。ユーザは、操作入力部２９を用いて、コントローラ２１に対し、音声や字幕などの切り替えの指令を行うことができる。また、コントローラ２１には、再生装置１の言語設定の初期情報が図示せぬ記憶部などから供給される。
【０１７９】
PlayListファイルには、Main Path、Sub Pathの情報の他、各種の再生情報が含まれている。コントローラ２１は、PlayListファイルに含まれるPlayItemが参照するメインClip AVストリームファイル（以下、メインClipと称する）、SubPlayItemが参照するサブClip AVストリームファイル（以下、サブClipと称する）、およびSubPlayItemが参照するテキストサブタイトルデータやアニメーションデータなどを、光ディスクドライブ２２を介して光ディスク１１から、または、ローカルストレージ２４から読み出す。ここで、PlayItemが参照するメインClipとSubPlayItemが参照するサブClipとが、異なる記録媒体に記録されていてもよい。例えば、メインClipが記録媒体に記録されており、対応するサブClipは図示せぬネットワークを介して供給され、ローカルストレージ２４に記憶されたものであってもよい。また、コントローラ２１は、自分自身（再生装置１）の再生機能に対応するエレメンタリストリームを選択し、再生するよう制御したり、再生装置１の言語設定の初期情報に対応するエレメンタリストリームだけを選択し、再生するよう制御する。
【０１８０】
ＡＶデコーダ部３３には、バッファ５１乃至５４、PIDフィルタ５５、PIDフィルタ５６、スイッチ５７乃至５９、PIDフィルタ６０、プリロードバッファ６１、アニメーションデコーダ６２、デコード済みオブジェクトバッファ６３、コンポジションバッファ６４、アニメーションスケジューラ６５、バックグラウンドデコーダ７１、１stビデオデコーダ７２−１、2ndビデオデコーダ７２−２、プレゼンテーショングラフィックスデコーダ７３、インタラクティブグラフィックスデコーダ７４、１stオーディオデコーダ７５−１、２ndオーディオデコーダ７５−２、Text-STコンポジション７６、スイッチ７７、スイッチ７８、バックグラウンドプレーン生成部９１、ビデオプレーン生成部９２、プレゼンテーショングラフィックスプレーン生成部９３、インタラクティブグラフィックスプレーン生成部９４、バッファ９５、ビデオデータ処理部９６、ミキシング処理部９７、およびミキシング処理部９８が設けられている。
【０１８１】
１stビデオデコーダ７２−１は、プライマリビデオストリームをデコードするためのものであり、2ndビデオデコーダ７２−２は、セカンダリビデオストリームをデコードするためのものである。また、１stオーディオデコーダ７５−１は、オーディオストリーム＃１（プライマリオーディオストリーム）をデコードするためのものであり、２ndオーディオデコーダ７５−２は、オーディオストリーム＃２（セカンダリオーディオストリーム）をデコードするためのものである。
【０１８２】
このように、再生装置１は、２つのビデオストリームをデコードするために２つのビデオデコーダ（１stビデオデコーダ７２−１、2ndビデオデコーダ７２−２）を有し、２つのオーディオストリームをデコードするために、２つのオーディオデコーダ（１stオーディオデコーダ７５−１、２ndオーディオデコーダ７５−２）を有している。なお、以下において、１stビデオデコーダ７２−１と2ndビデオデコーダ７２−２とを個々に区別しない場合、ビデオデコーダ７２と称し、１stオーディオデコーダ７５−１と２ndオーディオデコーダ７５−２とを個々に区別しない場合、オーディオデコーダ７５と称する。
【０１８３】
コントローラ２１により読み出されたファイルデータは、図示せぬ復調、ＥＣＣ復号部により、復調され、復調された多重化ストリームに誤り訂正が施される。スイッチ４１は、復調され、誤り訂正が施されたデータを、コントローラ２１からの制御に基づいて、ストリームの種類ごとに選択し、対応するバッファ５１乃至５４に供給する。
【０１８４】
メインClipは、ビデオとオーディオとビットマップ字幕(Presentation Graphics stream)とインタラクティブグラフィックスのうち、ビデオに加えて１つ以上のストリームを多重化したストリーム（例えばトランスポートストリーム）である。サブClipは、ビデオとビットマップ字幕とインタラクティブグラフィックスとオーディオのうち、１つ以上のストリームを多重化したストリームである。そして、アニメーションデータは、例えば、Java（登録商標）などで記述されたデータなど、トランスポートストリームのような多重化ストリームの形式とは異なるデータ形式であってもよい。換言すれば、再生装置１においてメインのビデオデータと同期して再生されるアニメーションデータを生成するためには、MPEG2 Transport Stream の知識や開発スキルを必要としない。また、テキストサブタイトルデータファイル（Text-ST）のデータは、トランスポートストリームのような多重化ストリームの形式であっても、そうでなくてもよい。
【０１８５】
再生装置１は、これらのファイルのデータを、光ディスクドライブ２２を介して光ディスク１１（または、その他の記録媒体）から読み出すか、または、ローカルストレージ２４から読み出し、ビデオ、ビットマップ字幕、インタラクティブグラフィックス、アニメーション、およびオーディオを再生する。
【０１８６】
これらのデータの中で、まず、アニメーションデータが、光ディスクドライブ２２（記録媒体）から、または、ローカルストレージ２４から読み出されて、デコード処理が施される。また、メインClipとサブClipおよびテキストサブタイトルデータを、光ディスクドライブ２２（記録媒体）から、または、ローカルストレージ２４から読み出すときに、それぞれのファイルを時分割に交互に読み出しても良いし、または、サブClipやテキストサブタイトルデータをメインClipから読み出す前に、すべてバッファ(バッファ５３またはバッファ５４)へプリロードしてもよい。
【０１８７】
具体的には、スイッチ４１は、コントローラ２１からの制御に基づいて、ユーザから再生の指令があった場合に最初に読み出されるアニメーションデータをプリロードバッファ６１に供給するようスイッチ４１を切り替える。
【０１８８】
まず、プリロードバッファ６１は、アニメーションスケジューラ６５の制御に基づいて、スイッチ４１から供給されるアニメーションデータをバッファリングし、アニメーションデコーダ６２に供給する。アニメーションデコーダ６２は、アニメーションスケジューラ６５の制御に基づいて、供給されたアニメーションデータをデコードして、デコード済みオブジェクトバッファ６３に供給する。
【０１８９】
アニメーションスケジューラ６５は、メインクリップのビデオデータ（プライマリビデオストリーム）の再生とアニメーションの再生を同期させるために、ビデオデコーダ７２が参照する図示しないＳＴＣカウンタを参照し、プリロードバッファ６１、アニメーションデコーダ６２、デコード済みオブジェクトバッファ６３、およびコンポジションバッファ６４の動作を制御するものである。
【０１９０】
供給されるアニメーションフレームは、図１７に示されるように、１枚以上の画像フレームで構成されており、ビデオフレームに対して、全時間領域に用意されているとは限らず、例えば、図１７に示されるように、所定のアニメーション再生時間において再生表示され、図中アニメーション間隔と示される時間は表示されず、再び、次のアニメーション再生時間に再生表示されるようになされていてもよい。
【０１９１】
メインクリップのビデオデータ（プライマリビデオストリーム）の再生のためのデコード処理のタイミングは、それぞれのフレームの画像に依存するので、その予測は困難である。したがって、アニメーションフレームは、予めバッファリングしてデコードしておき、デコード済みオブジェクトバッファ６３に蓄積される。そしてアニメーションスケジューラ６５は、メインクリップのビデオデータ（プライマリビデオストリーム）の（インタイム）と（アウトタイム）に基づいて、デコード済みオブジェクトバッファ６３に蓄積されたデコード済みのアニメーションデータをコンポジションバッファ６４に転送させるように制御するものとする。
【０１９２】
コンポジションバッファ６４は、アニメーションスケジューラ６５の制御に基づいて、アニメーションフレームの再生出力が開始されるとき、その直前に、インタラクティブグラフィックスプレーン生成部９４において生成されたグラフィックスプレーンを取得して合成用のデータとしてバックアップし、デコード済みオブジェクトバッファ６３から供給されるアニメーションフレームの対象部分の画像を切り出して、切り出された画像とバックアップしたグラフィックスオブジェクトとをアルファ合成し、インタラクティブグラフィックスプレーン生成部９４に転送する。
【０１９３】
したがって、アニメーションデータには、バッファ容量などに基づいて、フォーマットとしての制約が発生する。
【０１９４】
図１８を参照して、アニメーションデータの制約について説明する。
【０１９５】
図１８において、Ｔ１は、プリロードバッファ６１に一度にプリロードされる全てのアニメーションフレームのプリロード時間である。また、Ｔ２は、アニメーションデコーダ６２の処理によってデコードされる全てのアニメーションフレームのデコード時間である。そして、Ｔ３は、インタラクティブグラフィックスプレーン生成部９４からコンポジションバッファ６４への、アニメーション開始直前のグラフィックスプレーンの内容の転送時間である。また、Ｔ４は、コンポジションバッファ６４における、１アニメーションフレーム分の、アルファ合成処理と、インタラクティブグラフィックスプレーン生成部９４への転送時間との和である。そして、Ｔ５は、インタラクティブグラフィックスプレーン生成部９４における、１アニメーションフレームの生存期間である。
【０１９６】
ここで、Ｔ１乃至Ｔ４は、再生装置１のハードウェア構成により異なるパラメータをとるものである。また、Ｔ４およびＴ５は、アプリケーションによって指定可能なパラメータである。
【０１９７】
なお、アニメーションフレームはプリロードバッファ６１にプリロードされて、アニメーションデコーダ６２へ転送されるのではなくコピーされる（プリロードバッファ６１にデータが残る）ものとし、プリロードバッファ６１には、次のアニメーションフレームが供給されるまで、プリロードされたアニメーションフレームは保持されているものとしてもよく、また、デコード済みオブジェクトバッファ６３からコンポジションバッファ６４へのデコード済みのアニメーションフレームの供給も、転送ではなく、コピーである（デコード済みオブジェクトバッファ６３にデータが残る）ものとし、デコード済みオブジェクトバッファ６３には、次のデコード済みフレームが供給されるまで、デコード済みのアニメーションフレームは保持されているものとしてもよい。また、コンポジションバッファ６４からインタラクティブグラフィックスプレーン生成部９４への、アルファ合成されて生成されたフレームデータの供給も、転送ではなく、コピーである（コンポジションバッファ６４にデータが残る）ものとしてもよい。
【０１９８】
そして、アプリケーションは、アニメーションフレームとして表示されるべき画像、ビデオストリームのＰＴＳで指定されるアニメーション開始時刻、ビデオストリームのＰＴＳで指定されるアニメーション終了時刻、および、アニメーションのフレームレートの各パラメータを指定することができる。
【０１９９】
そして、アニメーションフレームのデコードの速度によって、図１７に示されるアニメーション間隔の最小値が決定される。
【０２００】
また、コンポジションバッファ６４からインタラクティブグラフィックスプレーン生成部９４へのデータ転送レート（データのコピー速度）と、コンポジションバッファ６４におけるピクセル単位でのアルファ合成処理の処理速度によって、アニメーションフレームレートに対する処理可能なアニメーションフレームの画枠が決定される。
【０２０１】
そして、デコード済みオブジェクトバッファ６３のバッファ容量から、アニメーションフレームレートと、それに対応する対応するアニメーションフレームの画枠に対する使用可能フレームの総数が決定される。
【０２０２】
具体的には、以下に示される式が満たされていなければならない。
【０２０３】
Ｎ（ｎ）＝ｆ（ｎ）×△Ｔ（ｎ）・・・（１）
【０２０４】
ここで、△Ｔ（ｎ）は、次の式（２）で示され、式（３）を満たす値である。そして、N(n)は、n番目のアニメーションで使用するグラフィックスオブジェクトの総数であり、f(n)は、n番目のアニメーションのフレームレート(/sec)である。
【０２０５】
△Ｔ（ｎ）＝animation_end_time(n)−animation_start_time(n)・・・（２）
△Ｔ（ｎ）＞０・・・（３）
【０２０６】
なお、animation_start_time(n)は、n番目のアニメーションの開始時刻であり、animation_end_time(n)は、n番目のアニメーションの終了時刻である。
【０２０７】
また、アニメーション間隔に関して、次の式（４）も満たされていなければならない。
【０２０８】
animation_end_time(n)＋Ｔ１＋Ｔ２＋Ｔ３＋Ｔ４≦animation_start_time(n+1)
・・・（４）
【０２０９】
そして、次の式（５）、すなわち、式（６）も満たされていなければならない。
【０２１０】
（２×Rd＋BPP×Rp)×△T(n)≧８×Ｓ（ｎ）
かつ
２×Rd＋BPP×Rp≧８×Smax(n)×f(n)・・・（５）
【０２１１】
２×Rd＋BPP×Rp≧８×Smax(n)×f(n)・・・（６）
【０２１２】
なお、Rdは、再生装置１における、データの転送レート（データのコピー速度）(bits/sec)であり、Rpは、再生装置１におけるピクセル単位でのアルファ合成処理のレート(pixels/sec)であり、BPPは、グラフィックスオブジェクトの色深度(bits/pixel)である。また、S(n)は、すべてのアニメーションのグラフィックオブジェクトのサイズの合計値、すなわち、SIZE(gfx)をグラフィックスオブジェクトgfxのサイズをバイト単位で返す関数としたとき、SIZE(object(1))＋SIZE(object(2))＋・・・＋SIZE(object(N(n)))で示される値である。また、Smax(n)は、MAX()を()内のオブジェクト列の最大値をバイト単位で返す関数としたとき、MAX｛SIZE（object(1)),SIZE(object(2)),・・・,SIZE(object(N(n)))）で示される値である。
【０２１３】
また、DEC_TIME(gfx)を、アニメーショングラフィックスオブジェクトgfxのデコード時間を秒単位で返す関数としたとき、次の式（７）も満たされていなければならない。
【０２１４】
DEC_TIME(object(1))＋DEC_TIME(object(2))＋…＋DEC_TIME(object(N(n)))≦Ｔ２
・・・（７）
【０２１５】
更に、次の式（８）も満たされていなければならない。
Ｓ（ｎ）≦SIZE(Decoded Object Buffer)・・・（８）
【０２１６】
ここで、SIZE(Decoded Object Buffer)は、デコード済みオブジェクトバッファ６３のバッファ容量である。
【０２１７】
次に、図１９および図２０を参照して、プリロードバッファ６１へアニメーションフレームをプリロードするのが可能なタイミングについて説明する。
【０２１８】
例えば、図１９に示されるようなシーケンシャルムービーの再生において、PlayItem#1およびPlayItem#2のプライマリビデオストリームと同期して再生されるアニメーションフレームのイメージデータがPlayItem#1の再生開始に先立ってプリロードされる。そして、PlayItem#1およびPlayItem#2のプライマリビデオストリームと同期して所定の再生位置でアニメーションが再生される。そして、その後、異なるPlayItem#3がPlayItem#1およびPlayItem#2とノンシームレス接続されている場合、PlayItem#3のプライマリビデオストリームの再生の前に、PlayItem#3のプライマリビデオストリームと同期して再生されるアニメーションフレームのイメージデータをプリロードすることが可能である（PlayItemごとに再生前にプリロードすることが可能である）。
【０２１９】
しかしながら、PlayItem#3が、PlayItem#1およびPlayItem#2とシームレス接続されている場合、PlayItem#3のプライマリビデオストリームと同期して再生されるアニメーションフレームも、最初のPlayItem再生前に、あらかじめプリロードしておかなければならない。
【０２２０】
そして、図２０に示されるような、インタラクティブムービー（分岐型）の再生においても、プレイアイテム間がノンシームレス接続されている場合、アニメーションフレームのイメージデータは、PlayItemごとに再生前にプリロードすることが可能である。しかしながら、プレイアイテム間がシームレス接続されている場合、最初のPlayItem再生前にしか、アニメーションフレームのイメージデータはプリロードできない。
【０２２１】
次に、図２１を参照して、再描画について説明する。
【０２２２】
図２１Ａに示されるように、アニメーションフレームが左上原点を固定したまま、サイズのみが拡大していく場合は、再描画は発生しない。コンポジションバッファ６４は、下絵とのアルファ合成のために、アニメーションフレームの拡大時における領域（重ね合わせの最大領域）のアニメーション表示開始直前のグラフィックスプレーンを、インタラクティブグラフィックスプレーン生成部９４からバックアップしておく必要がある。
【０２２３】
また、図２１Ｂに示されるように、アニメーションフレームが左上原点を固定したまま、サイズのみが縮小していく場合にも、再描画は発生しない。コンポジションバッファ６４は、下絵とのアルファ合成のために、アニメーションフレームの最大の大きさの領域（重ね合わせの最大領域）のアニメーション表示開始直前のグラフィックスプレーンを、インタラクティブグラフィックスプレーン生成部９４からバックアップしておく必要がある。
【０２２４】
そして、図２１Ｃに示されるように、アニメーションフレームが移動する場合は、重ね合わせの領域の再描画が発生する。コンポジションバッファ６４は、下絵とのアルファ合成のために、通過範囲の矩形領域（重ね合わせのすべての領域）のアニメーション表示開始直前のグラフィックスプレーンを、インタラクティブグラフィックスプレーン生成部９４からバックアップしておく必要がある。
【０２２５】
再び、図１６の説明に戻る。
【０２２６】
スイッチ４１は、コントローラ２１からの制御に基づいて、バックグラウンドイメージデータをバッファ５１に供給し、メインClipのデータをバッファ５２に供給し、サブClipのデータをバッファ５３に供給し、Text-STのデータをバッファ５４に供給するようスイッチ４１を切り替える。バッファ５１は、バックグラウンドイメージデータをバッファリングし、バッファ５２は、メインClipのデータをバッファリングし、バッファ５３は、サブClipのデータをバッファリングし、バッファ５４は、Text-STデータをバッファリングする。
【０２２７】
バックグラウンドイメージデータをバッファリングするバッファ５１から読み出されたデータは、所定のタイミングでバックグラウンドデコーダ７１に供給される。バックグラウンドデコーダ７１は、バックグラウンドイメージデータをデコードし、デコードしたバックグラウンドイメージデータをバックグラウンドプレーン生成部９１に供給する。
【０２２８】
メインClip用リードバッファであるバッファ５２から読み出されたストリームデータは、所定のタイミングで、後段のPID（パケットＩＤ）フィルタ５５へ出力される。このPIDフィルタ５５は、入力されたメインClipをPID（パケットＩＤ）に応じて、後段の各エレメンタリストリームのデコーダへ振り分けて出力する。すなわち、PIDフィルタ５５は、ビデオストリームを1stビデオデコーダ７２−１または2ndビデオデコーダ７２−２のいずれかに供給するためのPIDフィルタ６０に供給し、プレゼンテーショングラフィックスストリームをプレゼンテーショングラフィックスデコーダ７３への供給元となるスイッチ５７に供給し、インタラクティブグラフィックスストリームをインタラクティブグラフィックスデコーダ７４への供給元となるスイッチ５８に供給し、オーディオストリームを１stオーディオデコーダ７５−１と２ndオーディオデコーダ７５−２への供給元となるスイッチ５９に供給する。
【０２２９】
サブClip用リードバッファであるバッファ５３から読み出されたストリームデータは、所定のタイミングで、後段のPID（パケットＩＤ）フィルタ５６へ出力される。このPIDフィルタ５６は、入力されたサブClipをPID（パケットＩＤ）に応じて、後段の各エレメンタリストリームのデコーダへ振り分けて出力する。すなわち、PIDフィルタ５６は、供給されたビデオストリームを1stビデオデコーダ７２−１または2ndビデオデコーダ７２−２のいずれかに供給するためのPIDフィルタ６０へ供給し、プレゼンテーショングラフィックスストリームをプレゼンテーショングラフィックスデコーダ７３への供給元となるスイッチ５７に供給し、インタラクティブグラフィックスストリームをインタラクティブグラフィックスデコーダ７４への供給元となるスイッチ５８に供給し、オーディオストリームを１stオーディオデコーダ７５−１と２ndオーディオデコーダ７５−２への供給元となるスイッチ５９に供給する。
【０２３０】
PIDフィルタ６０は、PIDフィルタ５５から供給されたメインClipに含まれていたビデオストリーム、または、PIDフィルタ５６から供給されたサブClipに含まれていたビデオストリームの入力を受け、コントローラ２１の制御に基づいて、プライマリビデオストリームであるか、セカンダリビデオストリームであるかを判別し、プライマリビデオストリームを1stビデオデコーダ７２−１に供給し、セカンダリビデオストリームを2ndビデオデコーダ７２−２に供給する。
【０２３１】
PIDフィルタ６０により振り分けられたビデオストリームは、後段の1stビデオデコーダ７２−１または2ndビデオデコーダ７２−２に供給される。1stビデオデコーダ７２−１または2ndビデオデコーダ７２−２は、供給されたビデオストリームをデコードし、デコードしたビデオデータをビデオプレーン生成部９２へ出力する。
【０２３２】
１stビデオデコーダ７２−１は、プライマリビデオストリームをデコードするためのものであり、2ndビデオデコーダ７２−２は、セカンダリビデオストリームをデコードするためのものである。また、１stオーディオデコーダ７５−１は、オーディオストリーム＃１（プライマリオーディオストリーム）をデコードするためのものであり、２ndオーディオデコーダ７５−２は、オーディオストリーム＃２（セカンダリオーディオストリーム）をデコードするためのものである。
【０２３３】
このように、再生装置１は、２つのビデオストリームをデコードするために２つのビデオデコーダ（１stビデオデコーダ７２−１、2ndビデオデコーダ７２−２）を有し、２つのオーディオストリームをデコードするために、２つのオーディオデコーダ（１stオーディオデコーダ７５−１、２ndオーディオデコーダ７５−２）を有している。なお、以下において、１stビデオデコーダ７２−１と2ndビデオデコーダ７２−２とを個々に区別しない場合、ビデオデコーダ７２と称し、１stオーディオデコーダ７５−１と２ndオーディオデコーダ７５−２とを個々に区別しない場合、オーディオデコーダ７５と称する。
【０２３４】
スイッチ５７は、PIDフィルタ５５から供給されたメインClipに含まれるプレゼンテーショングラフィックスストリームと、サブClip に含まれるプレゼンテーショングラフィックスストリームのうちのいずれか１つを選択し、選択したプレゼンテーショングラフィックスストリームを、後段のプレゼンテーショングラフィックスデコーダ７３に供給する。プレゼンテーショングラフィックスデコーダ７３は、プレゼンテーショングラフィックスストリームをデコードし、デコードしたプレゼンテーショングラフィックスストリームのデータをプレゼンテーショングラフィックスプレーン生成部９３への供給元となるスイッチ７７に供給する。
【０２３５】
また、スイッチ５８は、PIDフィルタ５５から供給されたメインClipに含まれるインタラクティブグラフィックスストリームと、サブClip に含まれるインタラクティブグラフィックスストリームのうちのいずれか１つを選択し、選択したインタラクティブグラフィックスストリームを、後段のインタラクティブグラフィックスストリームデコーダ７４に供給する。すなわち、インタラクティブグラフィックスデコーダ７４へ同時に入力されるインタラクティブグラフィックスストリームは、メインClipまたはサブClipのどちらかから分離されたストリームである。
【０２３６】
インタラクティブグラフィックスデコーダ７４は、インタラクティブグラフィックスストリームをデコードし、デコードしたインタラクティブグラフィックスストリームのデータを、インタラクティブグラフィックスプレーン生成部９４へのデータ供給元となるスイッチ７８に供給する。
【０２３７】
さらに、スイッチ５９は、PIDフィルタ５５から供給されたメインClipに含まれるオーディオストリームと、サブClip に含まれるオーディオストリームのうちのいずれか１つを選択し、選択したオーディオストリームを、後段の１stオーディオデコーダ７５−１または、２ndオーディオデコーダ７５−２に供給する。ここで、１stオーディオデコーダ７５−１へ同時に入力されるオーディオストリームは、メインClipまたはサブClipのどちらかから分離されたストリームである。また、同様に、２ndオーディオデコーダ７５−２へ同時に入力されるオーディオストリームも、メインClipまたはサブClipのどちらかから分離されたストリームである。例えば、メインClipにオーディオストリーム＃１とオーディオストリーム＃２とが含まれていた場合、PIDフィルタ５５は、オーディオストリームのPIDに基づいて、オーディオストリーム＃１とオーディオストリーム＃２とをフィルタリングし、スイッチ５９に供給する。
【０２３８】
スイッチ５９は、例えば、PIDフィルタ５５から供給されたオーディオストリーム＃１を、１stオーディオデコーダ７５−１に供給するようスイッチを選択し、PIDフィルタ５５から供給されたオーディオストリーム＃２を、２ndオーディオデコーダ７５−２に供給するようスイッチを選択する。
【０２３９】
１stオーディオデコーダ７５−１は、オーディオストリームをデコードし、デコードしたオーディオストリームのデータをミキシング処理部１０１に供給する。また、２ndオーディオデコーダ７５−２は、オーディオストリームをデコードし、デコードしたオーディオストリームのデータをミキシング処理部１０１に供給する。
【０２４０】
ここで、オーディオストリーム＃１とオーディオストリーム＃２とを重畳して再生するような場合（ユーザにより再生するオーディオストリームとして、２つのオーディオストリームが選択された場合）、１stオーディオデコーダ７５−１によりデコードされたオーディオストリーム＃１と、２ndオーディオデコーダ７５−２によりデコードされたオーディオストリーム＃２とが、ミキシング処理部１０１に供給される。
【０２４１】
ミキシング処理部１０１は、１stオーディオデコーダ７５−１からのオーディオデータと、２ndオーディオデコーダ７５−２からのオーディオデータとをミキシング（重畳）し、後段のミキシング処理部９７に出力する。なお、本実施の形態においては、１stオーディオデコーダ７５−１から出力されるオーディオデータと２ndオーディオデコーダ７５−２から出力されるオーディオデータとをミキシング（重畳）することを、合成するとも称する。すなわち、合成とは、２つのオーディオデータを、ミキシングすることも示すものとする。
【０２４２】
また、スイッチ４１により選択されたサウンドデータは、バッファ９５に供給され、バッファリングされる。バッファ９５は、所定のタイミングでサウンドデータをミキシング処理部９７に供給する。サウンドデータは、この場合、メニュー選択などによる効果音のデータである。ミキシング処理部９７は、ミキシング処理部１０１によりミキシングされたオーディオデータ（１stオーディオデコーダ７５−１から出力されたオーディオデータと２ndオーディオデコーダ７５−２から出力されたオーディオデータとがミキシングされたオーディオデータ）と、バッファ９５から供給されてきたサウンドデータをミキシング（重畳、または合成）し、音声信号として出力する。
【０２４３】
テキストサブタイトル用リードバッファであるバッファ５４から読み出されたデータは、所定のタイミングで、後段のテキストサブタイトルコンポジション（デコーダ）７６へ出力される。テキストサブタイトルコンポジション７６は、Text-STデータをデコードし、スイッチ７７に供給する。
【０２４４】
スイッチ７７は、プレゼンテーショングラフィックスデコーダ７３によりデコードされたプレゼンテーショングラフィックスストリーム、または、テキストサブタイトル（Text-ST）コンポジション７６によりデコードされたText-ST（テキストサブタイトルデータ）のうち、いずれかを選択し、選択したデータをプレゼンテーショングラフィックスプレーン生成部９３に供給する。すなわち、プレゼンテーショングラフィックスプレーン生成部９３へ同時に供給される字幕画像は、プレゼンテーショングラフィックスデコーダ７３またはテキストサブタイトル（Text-ST）コンポジション７６のうちのいずれかの出力である。
【０２４５】
スイッチ７８は、インタラクティブグラフィックスデコーダ７４によりデコードされたインタラクティブグラフィックスストリームのデータ、および、コンポジションバッファ６４から供給されるアニメーションデータのうち、いずれかを選択し、選択したデータをインタラクティブグラフィックスプレーン生成部９４に供給する。なお、アニメーションデータは、再生タイミングにあわせてコンポジションバッファ６４によって合成されるものであるので、スイッチ７８は、コンポジションバッファ６４からアニメーションデータの供給を受けたとき、アニメーションデータを、インタラクティブグラフィックスプレーン生成部９４に供給する。
【０２４６】
また、プレゼンテーショングラフィックスデコーダ７３へ同時に入力されるプレゼンテーショングラフィックスストリームは、メインClipまたはサブClipのいずれかから分離されたストリームである（スイッチ５７により選択される）。
【０２４７】
バックグラウンドプレーン生成部９１は、バックグラウンドデコーダ７１から供給されたバックグラウンドイメージデータに基づいて、例えば、ビデオ画像を縮小表示した場合に壁紙画像となるバックグラウンドプレーンを生成し、これを、ビデオデータ処理部９６に供給する。
【０２４８】
ビデオプレーン生成部９２は、1stビデオデコーダ７２−１および2ndビデオデコーダ７２−２からビデオデータが供給された場合、コントローラ２１の制御に基づいて、供給されたビデオデータを合成して、ビデオプレーンを生成し、これをビデオデータ処理部９６に供給する。また、ビデオプレーン生成部９２は、1stビデオデコーダ７２−１のみからビデオデータが供給された場合、供給されたビデオデータを用いてビデオプレーンを生成し、これをビデオデータ処理部９６に供給する。なお、２つのビデオデータを合成することは、例えば、ミキシングする、重畳するとも称される。
【０２４９】
プレゼンテーショングラフィックスプレーン生成部９３は、スイッチ７７により選択され、供給されたデータ（プレゼンテーショングラフィックスストリームまたはテキストサブタイトルデータ）に基づいて、例えば、レンダリング画像であるプレゼンテーショングラフィックスプレーンを生成し、これをビデオデータ処理部９６に供給する。
【０２５０】
インタラクティブグラフィックスプレーン生成部９４は、スイッチ７８により選択されて供給されたデータ(インタラクティブグラフィックスデコーダ７４から供給されたインタラクティブグラフィックスストリームのデータ、または、コンポジションバッファ６４から供給されたアニメーションフレーム)に基づいて、インタラクティブグラフィックスプレーンを生成し、これをビデオデータ処理部９６に供給する。
【０２５１】
ビデオデータ処理部９６は、バックグラウンドプレーン生成部９１からのバックグラウンドプレーン、ビデオプレーン生成部９２からのビデオプレーン、プレゼンテーショングラフィックスプレーン生成部９３からのプレゼンテーショングラフィックスプレーン、およびインタラクティブグラフィックスプレーン生成部９４からのインタラクティブグラフィックスプレーンを合成し、ビデオ信号として出力する。また、ミキシング処理部９７は、ミキシング処理部１０１からのオーディオデータ（１stオーディオデコーダ７５−１によりデコードされたオーディオデータと２ndオーディオデコーダ７５−２によりデコードされたオーディオデータとがミキシングされたオーディオデータ）と、バッファ９５からのサウンドデータをミキシング（合成または重畳）し、音声信号として出力する。
【０２５２】
これらのスイッチ５７乃至５９、並びにスイッチ７７およびスイッチ７８は、操作入力部２９を介するユーザからの選択、または、対象となるデータが含まれるファイル側に基づいて、スイッチを切り替える。例えば、サブClip ＡＶストリームファイルのみにしか、オーディオストリームが含まれていない場合、スイッチ５９はサブ側にスイッチを切り替える
【０２５３】
このようにして、図１６を用いて説明したデコーダ２６は、コントローラ２１の制御に基づいて、再生処理を行うことができる。
【０２５４】
上述したように、再生装置１のデコーダ２６は、プリロードバッファ６１、アニメーションデコーダ６２、デコード済みオブジェクトバッファ６３、コンポジションバッファ６４、および、アニメーションスケジューラ６５を備えることにより、ビデオフレームと同期させてグラフィックアニメーションを再生させることができる。
【０２５５】
このことにより、例えば、代表的なものとして、メインパスの映画などのAVコンテンツに同期して、ディレクターなどのコメンタリを付属させたり、画面上で、ディレクターが個々のシーンをポイントしながら、その箇所についての解説を行うようなアプリケーションを提供したり、メインのAV再生をバックグランドとしたリアルタイムゲームなどのアプリケーションを提供することが可能となる。
【０２５６】
また、アニメーションの再生に必要なデータ（アニメーションフレーム）は、あらかじめバッファリングされて、デコードされて保持されているので、デコード済みオブジェクトバッファ６３にバッファリングされている部分のアニメーションフレームは、アニメーションスケジューラ６５がビデオデコーダが参照するＳＴＣカウンタの値を参照することにより、ランダムアクセス可能になる。しかしながら、異なるPlayListまたはPlayItemへのジャンプ再生には対応することができない。
【０２５７】
再生装置１は、上述したように、予め、アニメーション再生に必要なアニメーションフレームをプリロードバッファ６１にプリロードしてデコードしておき、アニメーションスケジューラ６５が図示しないＳＴＣカウンタを参照することにより、指定されたビデオフレームに同期させて表示されるアニメーションフレームを、インタラクティブグラフィックスプレーン９４に転送するようになされている。
【０２５８】
ただし、実装においては、インタラクティブグラフィックスプレーン９４に対して、ダブルバッファリングやトリプルバッファリングなどの手法を用いて、アニメーション表示のちらつき、いわゆる、フリッカが発生しないような施策が必要である場合もある。
【０２５９】
図２２に、ダブルバッファリングの例を示す。
【０２６０】
図２２に示されるように、インタラクティブグラフィックスプレーン生成部９４に、バックグラフィックスプレーン１５１とフロントグラフィックスプレーン１５２とを設け、バッファリング制御部１５３により、バックグラフィックスプレーン１５１とフロントグラフィックスプレーン１５２へのデータの入出力を制御するものとする。具体的には、フロントグラフィックスプレーン１５２において合成処理が終了した後に、フロントグラフィックスプレーン１５２から合成されたデータの出力が開始され、フロントグラフィックスプレーン１５２から合成されたデータが出力されている間、バックグラフィックスプレーン１５１にデータが供給されて、合成処理が実行される。そして、フロントグラフィックスプレーン１５２からの合成データの出力と、バックグラフィックスプレーン１５１における合成処理が終了した後に、データの入出力が逆転される。
【０２６１】
インタラクティブグラフィックスプレーン生成部９４をこのような構成にすることにより、アニメーション表示のちらつき、いわゆる、フリッカの発生を防止することができる。
【０２６２】
上述したアニメーションの表示のための処理、すなわち、コントローラ２１によるプリロードバッファ６１、アニメーションデコーダ６２、デコード済みオブジェクトバッファ６３、コンポジションバッファ６４、および、アニメーションスケジューラ６５への処理は、ビデオ同期型アニメーションを起動するためのＡＰＩであるAnimation()により起動される。
【０２６３】
ＡＰＩの具体的なシンタックスは、再生装置１のプラットフォームの言語仕様によって異なるが、このようなＡＰＩを提供することにより、アプリケーションプログラム、または、再生装置１で実行されるレジデント（常駐）プログラムは、以下のＡＰＩを呼び出すことによりアニメーションの表示を制御することができる。
【０２６４】
このＡＰＩの引数には、例えば、以下のようなものが用意される。
【０２６５】
filecount
ファイル名称の総数を指定するための引数である。
【０２６６】
Mode
ノーマルモードまたはスプライトモードのいずれかを指定するための引数である。なお、この引数によりノーマルモードが指定されている場合、１画像ファイルが１アニメーションフレームに対応し、この引数によりスプライトモードが指定されている場合、１画像ファイルから複数のアニメーションフレームを切り出すことが可能なようになされている。
【０２６７】
filenames
文字列型の配列の引数である。Filenamesにより指定される、アニメーションに必要とされる画像ファイルがプリロードされて、展開される。また、Filenamesにより、複数のファイル名称を指定することが可能である。
【０２６８】
PlayList_id []
PlayList idの列を指定するための引数である。複数のPlayListを指定する場合は、再生順にしたがって指定しなければならない。
【０２６９】
PlayItem_id []
PlayItem idの列を指定するための引数である。複数のPlayItemを指定する場合は、再生順にしたがって指定しなければならない。ただし、PlayList_idに複数のPlayList idが指定された場合、本引数には、値を指定することができない。
【０２７０】
start_PTS
アニメーションの開始時刻をビデオフレームのPTSで指定するための引数である。start_PTSの値は、上述したように、ビデオのpresentation time 内に収まっていなければならない。
【０２７１】
end_PTS
アニメーションの終了時刻をビデオフレームのPTSで指定するための引数である。end_PTSの値も、start_PTSの値の場合と同様に、ビデオの presentation time 内に収まっていなければならない。
【０２７２】
frame_rate
アニメーションのフレームレートを指定するための引数である。この引数は、同期するビデオのビデオフレームレートの整数倍でなければならない。
【０２７３】
width
アニメーションフレームの幅（表示幅ではなく、元のデータの画枠の幅）を示す引数である。
【０２７４】
height
アニメーションフレームの高さ（表示高さではなく、元のデータの画枠の高さ）を示す引数である。
【０２７５】
X []
生成されるプレゼンテーショングラフィックプレーン上（または、表示画面上）における、アニメーションの表示位置の、例えば、左上隅のX座標（または座標列）を示す引数である。
【０２７６】
Y []
生成されるプレゼンテーショングラフィックプレーン上（または、表示画面上）における、アニメーションの表示位置の、例えば、左上隅のY座標（または座標列）を示す引数である。
【０２７７】
scaling_factor []
アニメーションフレームの大きさに対して、生成されるプレゼンテーショングラフィックプレーン上（または、表示画面上）に表示されるアニメーションデータの大きさの日膣（スケーリングファクタ）の列を示す引数である。
【０２７８】
また、この場合においては、戻り値は、特に用意されない。
【０２７９】
このようなＡＰＩが提供されることにより、オーサリングは、アプリケーションプログラム中でＡＰＩを呼び出すだけのシンプルなものになる。
【０２８０】
また、上述した構成により、例えば、Java（登録商標）などを用いて記述されたアニメーションフレームが、ストリームデータとして再生装置１で再生されるビデオデータと同期して再生可能なようになされる。
【０２８１】
このような構成を用いることにより、従来、MPEG2 Transport Streamの形式のビデオフレームと同期するグラフィックスを表示させるために用いられていたHDMV graphics streamと比較して、画像フォーマットおよび圧縮形式が制限されないため、同期再生される画像のフォーマットをフレキシブルに導入することができる。また、オーサリングは、アプリケーションプログラム中でAPIを呼び出すだけのシンプルなものになる。
【０２８２】
したがって、例えば、JPEG画像などの汎用グラフィックスオブジェクトと制御APIの定義により、フレーム同期型アニメーションを低開発コストで提供することができる。また、アニメーションのAPI駆動を可能としたことにより、コンテンツの提供者や作成者は、MPEG2 Transport Streamなどの専門知識なしに、ビデオ同期型アニメーションを作成し、配布できることができる。
【０２８３】
また、すでに配布済みのコンテンツに対して、アニメーションデータを、例えば、インターネットなどのネットワーク２を介して後日配布し、同期して再生させるようにすることなども容易であり、後日配布されるデータの生成には、MPEG2 Transport Stream などの専門知識は、まったく必要とされない。
【０２８４】
また、本発明を適用した再生装置１において、ビデオストリームと同時再生される画像データのフォーマットとして、HDMV graphics streamが用いられた場合では、一気に全データを読み出すことも、ソース・パケット単位でデータを読み出すことも可能になり、フレキシブルな読み出しが実現できる。
【０２８５】
つづいて、図２３乃至図３０のフローチャートを参照して、再生装置１が実行する処理について説明する。
【０２８６】
まず、図２３のフローチャートを参照して、ファイルの追加および更新処理について説明する。
【０２８７】
ステップＳ１において、コントローラ２１の操作入力取得部３２は、操作入力部２９から供給される信号を基に、ユーザから、ファイルベース、すなわち、所定のdisc_idで示されるディレクトリに含まれるファイルの追加処理を開始する指令を受けたか否かを判断する。ステップＳ１において、ファイルの追加処理を開始する指令を受けていないと判断された場合、ファイルの追加処理を開始する指令を受けたと判断されるまで、ステップＳ１の処理が繰り返される。
【０２８８】
ステップＳ１において、ファイルの追加処理を開始する指令を受けたと判断された場合、ステップＳ２において、コントローラ２１のローカルストレージディレクトリ管理部３４は、データ取得部３３を制御し、インターネットインタフェース２５およびネットワーク２を介してサーバ３にアクセスし、現在の仮想ファイルシステムの状態を示す情報、例えば、対応するManifest（）セクションのManifest_idを送信する。
【０２８９】
ステップＳ３において、データ取得部３３は、インターネットインタフェース２５を制御し、ネットワーク２を介して、サーバ３から、ダウンロード可能なファイルの一覧に対応する情報を受信したか否かを判断する。
【０２９０】
ステップＳ３において、ダウンロード可能なファイルの一覧に対応する情報を受信できなかったと判断された場合、ステップＳ４において、メニュー画面表示制御部３１は、ファイルの追加処理が不可能であることをユーザに通知するためのエラーメッセージの表示を制御し、処理が終了される。
【０２９１】
ステップＳ３において、ダウンロード可能なファイルの一覧に対応する情報を受信したと判断された場合、ステップＳ５において、データ取得部３３は、サーバ３から送信され、インターネットインタフェース２５により受信されたダウンロード可能なファイルの一覧に対応する情報を、メニュー画面表示制御部３１に供給する。メニュー画面表示制御部３１は、ダウンロード可能なファイルの一覧から、ユーザが所望のものを選択することができるようになされているメニュー画面を表示装置に表示させる。
【０２９２】
ステップＳ６において、操作入力取得部３２は、メニュー画面表示制御部３１の処理により表示が制御されているメニュー画面のボタンまたはアイコンなどがユーザにより操作され、追加したい項目が選択されたか否かを判定する。ステップＳ６において、追加したい項目が選択されていないと判断された場合、選択されたと判断されるまで、ステップＳ６の処理が繰り返される。
【０２９３】
ステップＳ６において、追加したい項目が選択されたと判断された場合、ステップＳ７において、操作入力取得部３２は、ユーザにより選択されたアップデートの内容を表す情報を、データ取得部３３に供給する。データ取得部３３は、インターネットインタフェース２５を制御し、要求するファイルを示す情報をサーバ３に送信させ、ユーザが選択したファイルのダウンロードを要求する。
【０２９４】
ステップＳ８において、データ取得部３３は、インターネットインタフェース２５を制御し、サーバ３によりダウンロードファイルとして用意される、PlayListファイル、ClipInformationファイル、ClipAVストリームファイル、オーディオファイル、テキスト字幕ストリームファイル、アニメーションデータファイル、または、フォントファイルなどをダウンロードさせ、これらのファイルがダウンロードされたことを、ローカルストレージディレクトリ管理部３４に通知する。
【０２９５】
ステップＳ９において、ローカルストレージディレクトリ管理部３４は、ダウンロードされたファイルのManifest（）に含まれるauthor_idとdisc_idとに基づいて、それらのＩＤで識別されるディレクトリがローカルストレージ２４に既に存在するか否かを判断して、対応するディレクトリが既に存在する場合は、そのディレクトリにダウンロードされたデータファイルを展開し、対応するディレクトリが存在しない場合、author_idとdisc_idで指定される新たなディレクトリをローカルストレージ２４に作成し、ダウンロードされたデータファイルを展開する。
【０２９６】
ステップＳ１０において、図２４を用いて後述するバインディング処理が実行され、処理が終了される。
【０２９７】
このような処理により、サーバ３からアップデートファイルがダウンロードされて、ローカルストレージ２４に記録させ、光ディスク１１に記録されているコンテンツのアップロードファイルとして扱われるようにすることができる。
【０２９８】
すなわち、このような処理により、例えば、映画などのコンテンツが記録された光ディスク１１を購入したユーザが、光ディスク１１に予め記録されていない言語の字幕を表示させるために必要なファイルや、ビデオデータと同期して新たなアニメーションを表示させるために必要なファイルなどを取得して、ローカルストレージ２４に記憶させるとともに、光ディスク１１に記録されているデータとローカルストレージ２４に記憶されているデータとを、再生処理などを実行するアプリケーションプログラムが区別しないで取り扱うことができ、物理的なデータの記憶をユーザまたはアプリケーションプログラムから隠蔽することができるような仮想ファイルシステムを構築させることができる。
【０２９９】
また、以上のようなアップデートファイルのダウンロードは、有料で行うことができるものであってもよいし、無料で行うことができるものであってもよい。
【０３００】
次に、図２４のフローチャートを参照して、図２３のステップＳ１０において実行される、バインディング処理について説明する。
【０３０１】
ステップＳ２１において、ローカルストレージディレクトリ管理部３４は、ローカルストレージ２４に記録されているダウンロードされたデータ群から、対応するdisc_idのディレクトリを抽出し、ファイルシステムマージ処理部３６に供給する。
【０３０２】
ステップＳ２２においてファイルシステムマージ処理部３６は、Manifestファイルのsrc_file_nameおよびdst_file_nameを参照する。
【０３０３】
ステップＳ２３において、ファイルシステムマージ処理部３６は、ステップＳ２２において参照されたsrc_file_nameおよびdst_file_nameを基に、ネイティブなファイルシステムと、仮想ファイルシステムとをバインディングする。
【０３０４】
具体的には、src_file_nameには、ローカルストレージ２４のファイルシステムにおいて、このファイルがディレクトリ構造のどこに記録されるかを一義に指定できる情報、いわゆるパスを表す「パス名称」が指定され、dst_file_nameには、実際にはローカルストレージ２４に記憶されるファイルの仮想ディスクにおけるバインド先において、このファイルがディレクトリ構造のどこに記録されるかを一義に指定できる情報、いわゆるパスを表す「パス名称」が指定される。
【０３０５】
例えば、図１０を用いて説明したManifest（）セクションにおいて、src_file_nameのフィールドに「/MainMovie/movie01/main.r1.jp.mp2」とパス名称が指定され、dst_file_nameのフィールドに「/STREAM/01002.m2ts」とパス名称が指定されている場合、ファイルシステムマージ処理部３６は、図１３を用いて説明したように、ダウンロードされたデータが、ローカルストレージ２４において、対応するauthor_idおよびdisc_idの下の、MainMovieフォルダ内のmovie01フォルダに、main.r1.jp.mp2というファイル名で記録されるが、仮想ディスクにおける仮想ファイルシステムにおいては、STREAMディレクトリの01002.m2tsというファイル名のファイルとして取り扱われるようにバインディングする。
【０３０６】
コンテンツオーサは、ダウンロードされるファイルパッケージのManifest（）セクションのsrc_file_nameのフィールドに、ローカルストレージ２４におけるパス名称を指定し、dst_file_nameのフィールドに、仮想ディスクにおける仮想ファイルシステムにおけるパス名称を指定することができる。したがって、dst_file_nameのフィールドに、仮想ディスクにおける仮想ファイルシステムに適応した（光ディスク１１のファイルシステムに適応した）パス名称を設定すれば、コンテンツオーサは、再生装置１の、ローカルストレージ２４に実際に記録されるデータのdisc_id以下のファイル／ディレクトリ構造を自由に設定し、disc_id以下の領域にディレクトリやファイルを新しく追加することが可能となる。
【０３０７】
次に、図２５乃至図２７のフローチャートを参照して、再生装置１が実行する再生処理について説明する。
【０３０８】
コントローラ２１は、ユーザから、所望のコンテンツの再生が指令されたとき、光ディスクドライブ２２を介して光ディスク１１から、または、ローカルストレージ２４から、再生が指令されたコンテンツに対応するPlayListファイルを読み出して、それを基にして処理を開始する。ステップＳ１０１において、コントローラ２１は、アニメーションを表示させるためのＡＰＩが起動されたか否かを判断する。ステップＳ１０１において、ＡＰＩが起動されていないと判断された場合、処理は、ステップＳ１０３に進む。
【０３０９】
ステップＳ１０１において、ＡＰＩが起動されたと判断された場合、ステップＳ１０２において、図２８を用いて後述するアニメーション表示準備処理が実行される。ステップＳ１０２において、アニメーション表示準備処理が実行されることにより、デコード済みオブジェクトバッファ６３に、デコード済みのアニメーションデータが蓄積される。
【０３１０】
ステップＳ１０１において、ＡＰＩが起動されていないと判断された場合、または、ステップＳ１０２の処理の終了後、ステップＳ１０３において、コントローラ２１は、メインClip、サブClip、およびテキストサブタイトルデータ（Text-STデータ）を読み出す。具体的には、コントローラ２１は、PlayListに含まれるPlayItemに基づいて、メインClipを読み出す。また、コントローラ２１は、PlayListに含まれるSubPathで参照される、SubPlayItemに基づいて、サブClipと、テキストサブタイトルデータを読み出す。
【０３１１】
ステップＳ１０４において、コントローラ２１は、読み出したデータ（メインClip、サブClip、およびテキストサブタイトルデータ）を対応するバッファ５１乃至５４に供給するようスイッチ４１を制御する。具体的には、コントローラ２１は、バックグラウンドイメージデータをバッファ５１に供給し、メインClipのデータをバッファ５２に供給し、サブClipのデータをバッファ５３に供給し、Text-STのデータをバッファ５４に供給するようスイッチ４１を切り替える。
【０３１２】
ステップＳ１０５において、スイッチ４１はコントローラ２１からの制御に基づいて、スイッチ４１を切り替える。これにより、バックグラウンドイメージデータはバッファ５１に供給され、メインClipのデータはバッファ５２に供給され、サブClipのデータはバッファ５３に供給され、テキストサブタイトルデータはバッファ５４に供給される。
【０３１３】
ステップＳ１０６において、各バッファ５１乃至５４は、供給されたデータをそれぞれバッファリングする。具体的には、バッファ５１は、バックグラウンドイメージデータをバッファリングし、バッファ５２は、メインClipのデータをバッファリングし、バッファ５３は、サブClipのデータをバッファリングし、バッファ５４は、Text-STデータをバッファリングする。
【０３１４】
ステップＳ１０７において、バッファ５１は、バックグラウンドイメージデータをバックグラウンドデコーダ７１に出力する。
【０３１５】
ステップＳ１０８において、バッファ５２はメインClipのストリームデータをPIDフィルタ５５に出力する。
【０３１６】
ステップＳ１０９において、PIDフィルタ５５は、メインClip ＡＶストリームファイルを構成するＴＳパケットに付されているPIDに基づいて、各エレメンタリストリームのデコーダへ振り分ける。具体的には、PIDフィルタ５５は、ビデオストリームをＰＩＤフィルタ６０に供給し、プレゼンテーショングラフィックスストリームをプレゼンテーショングラフィックスデコーダ７３への供給元となるスイッチ５７に供給し、インタラクティブグラフィックスストリームをインタラクティブグラフィックスデコーダ７４への供給元となるスイッチ５８に供給し、オーディオストリームを１stオーディオデコーダ７５−１への供給元となるスイッチ５９に供給する。すなわち、ビデオストリーム、プレゼンテーショングラフィックスストリーム、インタラクティブグラフィックスストリーム、およびオーディオストリームには、それぞれ異なるPIDが付されている。ＰＩＤフィルタ６０は、コントローラ２１の制御に基づいて、プライマリビデオストリームを1stビデオデコーダ７２−１に供給し、セカンダリビデオストリームを2ndビデオデコーダ７２−２に供給する。
【０３１７】
ステップＳ１１０において、バッファ５３は、サブClipのストリームデータをPIDフィルタ５６に出力する。
【０３１８】
ステップＳ１１１において、PIDフィルタ５６は、PIDに基づいて、各エレメンタリストリームのデコーダへ振り分ける。具体的には、PIDフィルタ５６は、供給されたビデオストリームをPIDフィルタ６０へ供給し、プレゼンテーショングラフィックスストリームをプレゼンテーショングラフィックスデコーダ７３への供給元となるスイッチ５７に供給し、インタラクティブグラフィックスストリームをインタラクティブグラフィックスデコーダ７４への供給元となるスイッチ５８に供給し、オーディオストリームを１stオーディオデコーダ７５−１と２ndオーディオデコーダ７５−２への供給元となるスイッチ５９に供給する。ＰＩＤフィルタ６０は、コントローラ２１の制御に基づいて、プライマリビデオストリームを1stビデオデコーダ７２−１に供給し、セカンダリビデオストリームを2ndビデオデコーダ７２−２に供給する。
【０３１９】
ステップＳ１１２において、PIDフィルタ５５およびPIDフィルタ５６の後段のスイッチ５７乃至５９およびPIDフィルタ６０は、ユーザインターフェースを介するコントローラ２１からの制御に基づいて、メインClip とサブClipのいずれかを選択する。具体的には、スイッチ５７は、PIDフィルタ５５から供給されたメインClipまたはサブClipのプレゼンテーショングラフィックスストリームを選択し、後段のプレゼンテーショングラフィックスデコーダ７３に供給する。また、スイッチ５８は、PIDフィルタ５５から供給されたメインClipまたはサブClipのインタラクティブグラフィックスストリームを選択し、後段のインタラクティブグラフィックスストリームデコーダ７４に供給する。さらに、スイッチ５９は、PIDフィルタ５５から供給されたメインClip、または、PIDフィルタ５６から供給されたサブClipのオーディオストリームを選択し、後段の１stオーディオデコーダ７５−１に供給する。なお、音声を切り替えるような指令がユーザにより行われた場合には、スイッチ５９は、メインClipのオーディオストリームを２ndオーディオデコーダ７５−２に供給したり、サブClipのオーディオストリームを１stオーディオデコーダ７５−１や２ndオーディオデコーダ７５−２に供給する場合もあるが、ここでは、音声が切り替えられる前の再生処理について説明しているので、その説明は省略している。
【０３２０】
ステップＳ１１３において、バッファ５４は、テキストサブタイトルデータをテキストサブタイトルコンポジション７６に出力する。
【０３２１】
ステップＳ１１４において、バックグラウンドデコーダ７１は、バックグラウンドイメージデータをデコードし、これをバックグラウンドプレーン生成部９１に出力する。
【０３２２】
そして、ステップＳ１１５において、1stビデオデコーダ７２−１は、供給されたプライマリビデオストリームをデコードし、これをビデオプレーン生成部９２に出力する。
【０３２３】
ステップＳ１１６において、2ndビデオデコーダ７２−２は、供給されたセカンダリビデオストリームをデコードし、これをビデオプレーン生成部９２に出力する。
【０３２４】
ステップＳ１１７において、プレゼンテーショングラフィックスデコーダ７３は、スイッチ５７により選択され、供給されたプレゼンテーショングラフィックスストリームをデコードし、これを後段のスイッチ７７に出力する。
【０３２５】
ステップＳ１１８において、インタラクティブグラフィックスデコーダ７４は、スイッチ５８により選択され、供給されたインタラクティブグラフィックスストリームをデコードし、これを後段のスイッチ７８に出力する。
【０３２６】
ステップＳ１１９において、１stオーディオデコーダ７５−１は、スイッチ５９により選択され、供給されたプライマリオーティオストリームをデコードし、これを後段のミキシング処理部１０１に出力する。
【０３２７】
ステップＳ１２０において、２ndオーディオデコーダ７５−２は、スイッチ５９により選択され、供給されたセカンダリオーティオストリームをデコードし、これを後段のミキシング処理部１０１に出力する。
【０３２８】
ステップＳ１２１において、Text-STコンポジション７６は、プライマリまたはセカンダリのうち、表示されるテキストサブタイトルデータをデコードし、これを後段のスイッチ７７に出力する。
【０３２９】
ステップＳ１２２において、コンポジションバッファ６４は、アニメーションスケジューラ６５の制御に基づいて、アニメーションが表示されるか否かを判断する。
【０３３０】
ステップＳ１２２において、アニメーションが表示されると判断された場合、ステップＳ１２３において、図２９のフローチャートを用いて後述するアニメーション生成処理が実行される。
【０３３１】
ステップＳ１２２において、アニメーションが表示されないと判断された場合、または、ステップＳ１２３の処理の終了後、ステップＳ１２４において、スイッチ７７は、プレゼンテーショングラフィックスデコーダ７３、または、Text-STコンポジション７６のいずれかから出力されるデータを選択する。具体的には、スイッチ７７は、プレゼンテーショングラフィックスデコーダ７３によりデコードされたプレゼンテーショングラフィックスストリーム、Text-ST（テキストサブタイトルデータ）のうち、表示出力されるものを選択し、選択したデータをプレゼンテーショングラフィックスプレーン生成部９３に供給する。
【０３３２】
ステップＳ１２５において、スイッチ７８は、インタラクティブグラフィックスデコーダ７４、または、コンポジションバッファ６４からのデータのいずれかを選択する。具体的には、スイッチ７８は、インタラクティブグラフィックスデコーダ７４によりデコードされたプインタラクティブグラフィックスストリーム、および、コンポジションバッファ６４で生成されるアニメーションデータのうち、表示出力されるものを選択し、選択したデータをインタラクティブグラフィックスプレーン生成部９４に供給する。なお、コンポジションバッファ６４にアニメーションデータが供給されている場合、アニメーションの表示タイミングであるので、スイッチ７８は、コンポジションバッファ６４から供給されるアニメーションデータをインタラクティブグラフィックスプレーン生成部９４に供給する。
【０３３３】
ステップＳ１２６において、バックグラウンドプレーン生成部９１は、バックグラウンドデコーダ７１から供給されたバックグラウンドイメージデータに基づいて、バックグラウンドプレーンを生成する。
【０３３４】
ステップＳ１２７において、ビデオプレーン生成部９２は、1stビデオデコーダ７２−１および2ndビデオデコーダ７２−２から供給されたビデオデータを合成して、ビデオプレーンを生成し、これをビデオデータ処理部９６に供給する。
【０３３５】
ステップＳ１２８において、プレゼンテーショングラフィックスプレーン生成部９３は、ステップＳ１２４の処理でスイッチ７７により選択され、供給された、プレゼンテーショングラフィックスデコーダ７３からのデータ、または、Text-STコンポジション７６からのデータに基づいて、プレゼンテーショングラフィックスプレーンを生成する。
【０３３６】
ステップＳ１２９において、インタラクティブグラフィックスプレーン生成部９４は、ステップＳ１２５の処理においてスイッチ７８により選択されて供給された、インタラクティブグラフィックスデコーダ７４から供給されたインタラクティブグラフィックスストリームのデータ、または、コンポジションバッファ６４から供給されたアニメーションデータに基づいて、インタラクティブグラフィックスプレーンを生成する。
【０３３７】
ステップＳ１３０において、バッファ９５は、ステップＳ１０５の処理で選択され、供給されたサウンドデータをバッファリングし、所定のタイミングでミキシング処理部９７に供給する。
【０３３８】
ステップＳ１３１において、ビデオデータ処理部９６は、各プレーンのデータを合成し、出力する。具体的には、バックグラウンドプレーン生成部９１、ビデオプレーン生成部９２、プレゼンテーショングラフィックスプレーン生成部９３、およびインタラクティブグラフィックスプレーン生成部９４からのデータを合成し、ビデオデータとして出力する。
【０３３９】
ステップＳ１３２において、ミキシング処理部１０１は、１stオーディオデコーダ７５−１から出力されたプライマリオーディオデータ、および、2ndオーディオデコーダ７５−２から出力されたセカンダリオーディオデータを合成し、ミキシング処理部９７に供給する。
【０３４０】
ステップＳ１３３において、ミキシング処理部９７は、ミキシング処理部１０１から出力された、合成されたオーディオデータとサウンドデータをミキシング（合成）し、出力する。
【０３４１】
ステップＳ１３４において、コントローラ２１は、読み込んだPlayListを参照して、再生終了か否かを判断する。ステップＳ１３４において、再生終了ではないと判断された場合、処理は、ステップＳ１０４に戻り、それ以降の処理が繰り返される。ステップＳ１３４において、再生終了であると判断された場合、処理は終了される。
【０３４２】
このような処理により、光ディスク１１またはローカルストレージ２４に記録されているＡＶストリームの音声データ、映像データ、並びに、必要に応じて、テキスト字幕ファイルのテキストデータ、効果音の音声データ、または、アニメーションを表示させるための画像データ（アニメーションフレームのデータ）などを、デコードして再生出力することが可能となる。
【０３４３】
次に、図２８のフローチャートを参照して、図２５のステップＳ１０２において実行される、アニメーション表示準備処理について説明する。
【０３４４】
ステップＳ１６１において、プリロードバッファ６１は、スイッチ４１から供給されたアニメーションフレームをすべて読み込んでバッファリングする。
【０３４５】
ステップＳ１６２において、アニメーションデコーダ６２は、プリロードバッファ６１に読み込まれてバッファリングされているアニメーションフレームをデコードし、デコード済みオブジェクトバッファ６３に供給する。
【０３４６】
ステップＳ１６３において、デコード済みオブジェクトバッファ６３は、デコードされたアニメーションフレームを保持し、処理は、図２５のステップＳ１０２に戻り、ステップＳ１０３に進む。
【０３４７】
このような処理により、再生のためのデコード処理のタイミングの予測が困難なメインクリップのビデオデータに同期してアニメーションを再生させるために、アニメーションフレームを、予めバッファリングしてデコードしておき、デコード済みオブジェクトバッファ６３に蓄積することができる。
【０３４８】
次に、図２９のフローチャートを参照して、図２７のステップＳ１２３において実行される、アニメーション生成処理について説明する。
【０３４９】
ステップＳ２０１において、アニメーションスケジューラ６５は、図示しないＳＴＣカウンタを参照して、ビデオ同期信号をチェックする。
【０３５０】
ステップＳ２０２において、アニメーションスケジューラ６５は、現在の時刻がアニメーション開始時刻よりも“Ｔ３＋Ｔ４”早い時刻であるか否か、すなわち、図１８を用いて説明した、デコード済みオブジェクトバッファ６３からコンポジションバッファ６４へデコード済みのアニメーションフレームの転送が開始されるよりもアニメーション表示開始直前の画像データのバックアップにかかる時間だけ早い時刻であるか否かを判断する。
【０３５１】
ステップＳ２０２において、現在の時刻がアニメーション開始時刻よりも“Ｔ３＋Ｔ４”早い時刻であると判断された場合、ステップＳ２０３において、コンポジションバッファ６４は、インタラクティブグラフィックスプレーン生成部９４から、アニメーション表示開始直前の画像データを、アニメーション表示の下絵としてバックアップする。
【０３５２】
ステップＳ２０２において、現在の時刻がアニメーション開始時刻よりも“Ｔ３＋Ｔ４”早い時刻ではないと判断された場合、または、ステップＳ２０３の処理の終了後、ステップＳ２０４において、アニメーションスケジューラ６５は、アニメーション開始時刻よりも”Ｔ４”早い時刻と終了時刻との間の時刻であるか、すなわち、アニメーションフレームをビデオフレームと同期して出力する必要がある時刻であるか否かを判断する。
【０３５３】
ステップＳ２０４において、アニメーション開始時刻よりも”Ｔ４”早い時刻と終了時刻との間の時刻であると判断された場合、ステップＳ２０５において、アニメーションスケジューラ６５は、デコード済みオブジェクトバッファ６３に、表示させるアニメーションフレームが存在するか否かを判断する。
【０３５４】
ステップＳ２０５において、アニメーションフレームが存在すると判断された場合、ステップＳ２０６において、デコード済みオブジェクトバッファ６３は、アニメーションスケジューラ６５の制御に基づいて、アニメーションフレームの対象画像を切り出す。
【０３５５】
ステップＳ２０７において、デコード済みオブジェクトバッファ６３は、ビデオバッファと同一のＳＴＣカウンタを参照しているアニメーションスケジューラ６５の制御に基づいて、アニメーションフレームの対象画像をコンポジションバッファ６４へ転送(またはコピー)する。
【０３５６】
ステップＳ２０８において、コンポジションバッファ６４は、ステップＳ２０３の処理によりバックアップされている下絵と、ステップＳ２０７の処理により転送(またはコピー)されたアニメーションフレームの対象画像とをアルファ合成する。
【０３５７】
ステップＳ２０９において、コンポジションバッファ６４は、合成された画像をインタラクティブグラフィックスプレーン生成部９４に出力するために、スイッチ７８に供給し、処理は、図２７のステップＳ１２３に戻り、ステップＳ１２４に進む。
【０３５８】
ステップＳ２０４において、アニメーション開始時刻よりも”Ｔ４”早い時刻と終了時刻との間の時刻ではないと判断された場合、または、ステップＳ２０５において、アニメーションフレームが存在しないと判断された場合、処理は、図２７のステップＳ１２３に戻り、ステップＳ１２４に進む。
【０３５９】
このような処理により、予めバッファリングされてデコードされたアニメーションフレームが、ビデオデータと同期して表示出力される。
【０３６０】
次に、図３０のフローチャートを参照して、繰り返し再生、または、再生開始位置指定再生処理について説明する。
【０３６１】
ステップＳ２５１において、コントローラ２１は、操作入力部２９から供給される信号を基に、ユーザから、繰り返し再生、または、再生開始位置指定再生処理の開始の指令を受けたか否かを判断する。ステップＳ２５１において、繰り返し再生、または、再生開始位置指定再生処理の開始の指令を受けていないと判断された場合、繰り返し再生、または、再生開始位置指定再生処理の開始の指令を受けたと判断されるまで、ステップＳ２５１の処理が繰り返される。
【０３６２】
ステップＳ２５１において、繰り返し再生、または、再生開始位置指定再生処理の開始の指令を受けたと判断された場合、ステップＳ２５２において、コントローラ２１は、対応する再生部分のプレイリストを参照することにより、アニメーション表示が行われるか否かを判断する。
【０３６３】
ステップＳ２５２において、アニメーション表示が行われないと判断された場合、ステップＳ２５３において、コントローラ２１は、デコーダ２６の各部を制御して、アニメーションの表示なしに再生処理、すなわち、図２５乃至図２７を用いて説明した再生処理のうち、アニメーション部分に関係しない処理と同様の処理を実行し、処理が終了される。
【０３６４】
ステップＳ２５２において、アニメーション表示が行われると判断された場合、ステップＳ２５４において、コントローラ２１は、対応する部分のアニメーション表示準備処理（図２８）は終了されているか否かを判断する。
【０３６５】
ステップＳ２５４において、アニメーション表示準備処理が終了されていないと判断された場合、ステップＳ２５５において、図２８を用いて説明したアニメーション表示準備処理が実行される。
【０３６６】
ステップＳ２５４において、アニメーション表示準備処理が終了されていると判断された場合、または、ステップＳ２５５の処理の終了後、ステップＳ２５６において、コントローラ２１は、操作入力部２９から供給される信号を基に、再生開始点を取得する。
【０３６７】
ステップＳ２５７において、コントローラ２１は、デコード済みのアニメーションデータを用いて再生処理、すなわち、図２５乃至図２７を用いて説明した再生処理のうち、ステップＳ１０３以降の処理と同様の処理を実行して、処理が終了される。
【０３６８】
このような処理により、一度アニメーション準備処理が実行された部分の再生が行われるときには、対応する部分のデコード済みのバッファリングされたアニメーションデータを用いることができるので、迅速に、簡単に、繰り返し再生や再生開始位置指定再生処理を行うことができる。
【０３６９】
なお、図３０のフローチャートを参照して説明した、繰り返し再生、または、再生開始位置指定再生処理においては、一度アニメーション準備処理が実行された部分の再生が行われるときには、対応する部分のデコード済みのバッファリングされたアニメーションデータを用いるものとして説明したが、例えば、コンポジションバッファ６４においてアルファ合成されたフレームデータがコンポジションバッファ６４に蓄積されていた場合(コンポジションバッファ６４からスイッチ７８にデータが転送されずに、コピーされていた場合)、コンポジションバッファ６４に蓄積されているアルファ合成されたフレームデータを再利用して繰り返し再生や再生開始位置指定再生処理を行うようにすることも可能である。
【０３７０】
このようにして、例えば、Java（登録商標）などを用いて記述されたアニメーションフレームを、ストリームデータとして再生装置１で再生されるビデオデータと同期して再生させることができる。
【０３７１】
また、本発明を適用した場合、従来、MPEG2 Transport Streamの形式のビデオフレームと同期するグラフィックスを表示させるために用いられていたHDMV graphics streamを採用した場合と比較して、アニメーションデータの画像フォーマットおよび圧縮形式が制限されないため、同期再生される画像のフォーマットをフレキシブルに導入することができる。また、オーサリングは、アプリケーションプログラム中でAPIを呼び出すだけのシンプルなものになる。
【０３７２】
このように、本発明を適用した再生装置１においては、例えば、JPEG画像などの汎用グラフィックスオブジェクトと制御APIの定義により、フレーム同期型アニメーションを低開発コストで提供できるシステムを提案することができる。API駆動であるため、コンテンツの提供者や作成者は、MPEG2 Transport Stream などの専門知識なしに、ビデオ同期型アニメーションを作成し、配布できることができる。
【０３７３】
また、すでに配布済みのコンテンツに対して、アニメーションデータを、例えば、インターネットなどのネットワーク２を介して後日配布し、同期して再生させるようにすることなども容易であり、後日配布されるデータの生成には、MPEG2 Transport Stream などの専門知識をまったく必要とされない。
【０３７４】
次に、図３１および図３２を参照して、再生装置２０において再生可能なデータが記録された記録媒体２１の製造方法について、記録媒体２１がディスク状の記録媒体だった場合を例として説明する。
【０３７５】
即ち、図３１に示すように、例えばガラスなどよりなる原盤が用意され、その上に、例えばフォトレジストなどよりなる記録材料が塗布される。これにより、記録用原盤が製作される。
【０３７６】
そして、図３２に示すように、ソフト製作処理部において、符号化装置（ビデオエンコーダ）で符号化された、再生装置２０において再生可能な形式のビデオデータが、一時バッファに記憶され、オーディオエンコーダで符号化されたオーディオデータが、一時バッファに記憶されるとともに、更に、データエンコーダで符号化された、ストリーム以外のデータ（例えば、Indexes、PlayList、PlayItemなど）が一時バッファに記憶される。それぞれのバッファに記憶されたビデオデータ、オーディオデータ、および、ストリーム以外のデータは、多重化器（ＭＰＸ）で同期信号と共に多重化され、誤り訂正符号回路（ＥＣＣ）でエラー訂正用のコードが付加される。そして、変調回路（ＭＯＤ）で所定の変調がかけられ、所定のフォーマットにしたがって、例えば磁気テープなどに一旦記録され、再生装置２０において再生可能な記録媒体２１に記録されるソフトウェアが製作される。
【０３７７】
このソフトウェアを必要に応じて編集（プリマスタリング）し、光ディスクに記録すべきフォーマットの信号が生成される。そして、図３１に示すように、この記録信号に対応して、レーザビームが変調されて、このレーザビームが原盤上のフォトレジスト上に照射される。これにより、原盤上のフォトレジストが記録信号に対応して露光される。
【０３７８】
その後、この原盤を現像し、原盤上にピットを出現させる。このようにして用意された原盤に、例えば電鋳等の処理を施し、ガラス原盤上のピットを転写した金属原盤を製作する。この金属原盤から、さらに金属スタンパを製作し、これを成形用金型とする。
【０３７９】
この成形用金型に、例えばインジェクションなどによりＰＭＭＡ（アクリル）またはＰＣ（ポリカーボネート）などの材料を注入し、固定化させる。あるいは、金属スタンパ上に２Ｐ（紫外線硬化樹脂）などを塗布した後、紫外線を照射して硬化させる。これにより、金属スタンパ上のピットを、樹脂よりなるレプリカ上に転写することができる。
【０３８０】
このようにして生成されたレプリカ上に、反射膜が、蒸着あるいはスパッタリングなどにより形成される。あるいはまた、生成されたレプリカ上に、反射膜が、スピンコートにより形成される。
【０３８１】
その後、このディスクに対して内外径の加工が施され、２枚のディスクを張り合わせるなどの必要な処置が施される。さらに、ラベルを貼り付けたり、ハブが取り付けられて、カートリッジに挿入される。このようにして再生装置２０によって再生可能なデータが記録された記録媒体２１が完成する。
【０３８２】
上述した一連の処理は、ソフトウェアにより実行することもできる。そのソフトウェアは、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム格納媒体からインストールされる。
【０３８３】
このプログラム格納媒体は、図１に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM（Compact Disk-Read Only Memory），DVD（Digital Versatile Disk）を含む）、光磁気ディスク（ＭＤ(Mini-Disk)（商標）を含む）、もしくは半導体メモリなどよりなるリムーバブルメディア２８などにより構成される。
【０３８４】
また、本明細書において、プログラム格納媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０３８５】
なお、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０３８６】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０３８７】
【図１】本発明を適用した第１の実施の形態における再生装置の構成を示すブロック図である。
【図２】本発明を適用した第１の実施の形態における再生装置に装着される記録媒体上のアプリケーションフォーマットの例を示す図である。
【図３】本発明を適用した再生装置に装着される記録媒体上のアプリケーションフォーマットの例の異なる例について説明するための図である。
【図４】ファイルのダウンロードが行われた状態について説明するための図である。
【図５】ＡＶストリームの構成について説明するための図である。
【図６】図１のコントローラの機能について説明するための機能ブロック図である。
【図７】仮想ファイルシステムについて説明するための図である。
【図８】仮想ファイルシステムについて説明するための図である。
【図９】ローカルストレージのディレクトリ構造について説明するための図である。
【図１０】Manifestファイルのシンタックスを示す図である。
【図１１】光ディスクのファイルシステムの例について説明するための図である。
【図１２】ローカルストレージ２４のファイルシステムの例について説明するための図である。
【図１３】パス名称の指定について説明するための図である。
【図１４】仮想ディスクにおけるディレクトリ／ファイル構造の例について説明するための図である。
【図１５】コンテンツオーサがコンテンツを配布する際のコンテンツ配布用ファイル形式の定義について説明するための図である。
【図１６】図１のデコーダの構成を示すブロック図である。
【図１７】アニメーション再生時間とアニメーション間隔について説明する図である。
【図１８】制御タイミングとバッファ容量について説明するための図である。
【図１９】イメージのロードについて説明するための図である。
【図２０】イメージのロードについて説明するための図である。
【図２１】再描画について説明するための図である。
【図２２】ダブルバッファリングの例について説明するための図である。
【図２３】追加および更新処理について説明するためのフローチャートである。
【図２４】バインディング処理について説明するためのフローチャートである。
【図２５】再生処理について説明するためのフローチャートである。
【図２６】再生処理について説明するためのフローチャートである。
【図２７】再生処理について説明するためのフローチャートである。
【図２８】アニメーション表示準備処理について説明するためのフローチャートである。
【図２９】アニメーション生成処理について説明するためのフローチャートである。
【図３０】繰り返し再生、または、再生開始位置指定再生処理について説明するためのフローチャートである。
【図３１】再生装置で再生可能なデータを記録した記録媒体の製造について説明するための図である。
【図３２】再生装置で再生可能なデータを記録した記録媒体の製造について説明するための図である。
【符号の説明】
【０３８８】
１  再生装置，  １１  光ディスク，  ２１  コントローラ，  ２２  光ディスクドライブ，  ２３  メモリ，  ２４  ローカルストレージ，  ２６  デコーダ，  ３１  メニュー画面表示制御部，  ３２  操作入力取得部，  ３３  データ取得部，  ３４  ローカルストレージディレクトリ管理部，  ３５  光ディスクディレクトリ管理部，  ６６  ファイルシステムマージ処理部，  ３７  再生制御部，  ３３  ＡＶデコーダ部，  ３４  コントローラ，  ４１  スイッチ，  ５１乃至５４  バッファ，  ５５，５６  PIDフィルタ，  ５７乃至５９  スイッチ，  ６１  プリロードバッファ，  ６２  アニメーションデコーダ，  ６３  デコード済みオブジェクトバッファ，  ６４  コンポジションバッファ，  ６５  アニメーションスケジューラ，  ７１  バックグラウンドデコーダ，  ７２−１  1stビデオデコーダ，  ７２−２  2ndビデオデコーダ，  ７３  プレゼンテーショングラフィックスデコーダ，  ７４  インタラクティブグラフィックスデコーダ，  ７５  オーディオデコーダ，  ７６  Text-STコンポジション，  ７７，７８  スイッチ，  ９１  バックグラウンドプレーン生成部，  ９２  ビデオプレーン生成部，  ９３  プレゼンテーショングラフィックスプレーン生成部，  ９４  インタラクティブグラフィックスプレーン生成部，  ９５  バッファ，  ９６  ビデオデータ処理部，  ９７  ミキシング処理部，  １０１  ミキシング処理部，  １５１  バックグラフィックスプレーン，  １５２  フロントグラフィックスプレーン，  １５３  バッファリング制御部
【図１】
0004815962.tif 000002
【図２】
0004815962.tif 000003
【図３】
0004815962.tif 000004
【図４】
0004815962.tif 000005
【図５】
0004815962.tif 000006
【図６】
0004815962.tif 000007
【図７】
0004815962.tif 000008
【図８】
0004815962.tif 000009
【図９】
0004815962.tif 000010
【図１０】
0004815962.tif 000011
【図１１】
0004815962.tif 000012
【図１２】
0004815962.tif 000013
【図１３】
0004815962.tif 000014
【図１４】
0004815962.tif 000015
【図１５】
0004815962.tif 000016
【図１６】
0004815962.tif 000017
【図１７】
0004815962.tif 000018
【図１８】
0004815962.tif 000019
【図１９】
0004815962.tif 000020
【図２０】
0004815962.tif 000021
【図２１】
0004815962.tif 000022
【図２２】
0004815962.tif 000023
【図２３】
0004815962.tif 000024
【図２４】
0004815962.tif 000025
【図２５】
0004815962.tif 000026
【図２６】
0004815962.tif 000027
【図２７】
0004815962.tif 000028
【図２８】
0004815962.tif 000029
【図２９】
0004815962.tif 000030
【図３０】
0004815962.tif 000031
【図３１】
0004815962.tif 000032
【図３２】
0004815962.tif 000033