以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加される発明の存在を否定するものではない。
請求項1に記載の再生装置(例えば、図1の再生装置1)は、着脱可能な第1のデータ記録媒体(例えば、図1の光ディスク11)に記録されているAV(Audio Visual)ストリームを前記第1のデータ記録媒体に記録されている第1の再生制御データ(例えば、PlayList)に基づいて再生する再生装置であって、前記AVストリームに同期させて再生させるコンテンツデータ(例えば、サブストリーム)、前記コンテンツデータに関する情報を含むメタデータであって、前記コンテンツデータのファイル名、および、前記コンテンツデータのファイル名とは異なる前記コンテンツデータの別名を含むメタデータである第1のメタデータ(例えば、図9のMetadata)、前記コンテンツデータの再生の制御に関するデータであるコンテンツデータ再生制御データ(例えば、Sub Path、SubPlayItem、またはSubClip_entry)を含む第2の再生制御データ(例えば、アップデートファイルに含まれるPlayList)、並びに、前記第2の再生制御データに関する情報を含むメタデータであって、前記第1の再生制御データの更新方法を指定する更新方法データ(例えば、operation_type)を含むメタデータである第2のメタデータを含むコンテンツ更新データを(例えば、コンテンツパッケージ)取得する取得手段(例えば、図12のデータ取得部33)と、前記更新方法データに基づいて、前記第2の再生制御データから前記コンテンツデータ再生制御データを抽出して、前記コンテンツデータ再生制御データを前記第1の再生制御データに追加することにより前記第1の再生制御データを仮想ファイルシステム上で更新する再生制御データ更新手段(例えば、図12のプレイリスト更新部36)と、更新された前記第1の再生制御データに基づいて、前記AVストリームおよび前記コンテンツデータを同期させて再生させるように前記AVストリームおよび前記コンテンツデータの再生を制御する再生制御手段(例えば、図12の再生制御部39)とを含むことを特徴とする。
請求項2に記載の再生装置(例えば、図1の再生装置1)は、自分が備える第2のデータ記録媒体(例えば、図1のローカルストレージ24)への、前記コンテンツデータ、前記第1のメタデータ、および、前記第2の再生制御データの記録を制御する記録制御手段(例えば、図12のローカルストレージディレクトリ管理部34)をさらに含むことを特徴とする。
請求項3に記載の再生装置(例えば、図1の再生装置1)においては、前記第1のメタデータに前記コンテンツ更新データを配信した配信元を示す配信元情報(例えば、配信元のURL(Uniform Resource Locator))を追加することにより前記第1のメタデータを更新するメタデータ更新手段(例えば、図12のメタデータ生成部37)をさらに含み、前記記録制御手段は、前記第2のデータ記録媒体への、更新された前記第1のメタデータの記録を制御することを特徴とする。
請求項5に記載の再生装置(例えば、図1の再生装置1)は、更新された前記第1の再生制御データに関する情報を含む第3のメタデータを前記第2のメタデータ(例えば、メタデータリスト)に基づいて生成するメタデータ生成手段(例えば、図12のメタデータ生成部37)と、自分が備える第2のデータ記録媒体(例えば、図1のローカルストレージ24)への、前記コンテンツデータ、前記第1のメタデータ、更新された前記第1の再生制御データ、および、前記第3のメタデータの記録を制御する記録制御手段(例えば、図12のローカルストレージディレクトリ管理部34)とをさらに含むことを特徴とする。
請求項6に記載の再生装置(例えば、図1の再生装置1)においては、前記第1のメタデータは、前記第1のデータ記録媒体を識別するための識別データ(例えば、図9のauthor_id、disc_id、またはtitle_id)、前記コンテンツデータのバージョン(例えば、図9のversion)、および、前記コンテンツデータのアクセス権限を示すアクセス権限データ(例えば、図9のpermission)のうち少なくとも1つを含み、前記第2のメタデータは、前記第1のデータ記録媒体を識別するための識別データ(例えば、図9のauthor_id、disc_id、またはtitle_id)、前記第2の再生制御データのバージョン(例えば、図9のversion)、前記第2の再生制御データのファイル名とは異なる前記第2の再生制御データの別名(例えば、図9のdisplay_name)、および、前記第2の再生制御データのアクセス権限を示すアクセス権限データ(例えば、図9のpermission)のうち少なくとも1つを含むことを特徴とする。
請求項7に記載の再生方法は、着脱可能なデータ記録媒体(例えば、図1の光ディスク11)に記録されているAVストリームを前記データ記録媒体に記録されている第1の再生制御データ(例えば、PlayList)に基づいて再生する再生装置(例えば、図1の再生装置1)の再生方法であって、前記AVストリームに同期させて再生させるコンテンツデータ(例えば、サブストリーム)、前記コンテンツデータに関する情報を含むメタデータであって、前記コンテンツデータのファイル名(例えば、図9のfile_name)、および、前記コンテンツデータのファイル名とは異なる前記コンテンツデータの別名(例えば、図9のdisplay_name)を含むメタデータである第1のメタデータ(例えば、図9のMetadata)、前記コンテンツデータの再生の制御に関するデータであるコンテンツデータ再生制御データ(例えば、Sub Path、SubPlayItem、またはSubClip_entry)を含む第2の再生制御データ(例えば、アップデートファイルに含まれるPlayList)、並びに、前記第2の再生制御データに関する情報を含むメタデータであって、前記第1の再生制御データの更新方法を指定する更新方法データ(例えば、operation_type)を含むメタデータである第2のメタデータ(例えば、図9のMetadata)を含むコンテンツ更新データ(例えば、コンテンツパッケージ)を取得する取得ステップ(例えば、図17のステップS6)と、前記更新方法データに基づいて、前記第2の再生制御データから前記コンテンツデータ再生制御データを抽出して、前記コンテンツデータ再生制御データを前記第1の再生制御データに追加することにより前記第1の再生制御データを仮想ファイルシステム上で更新する再生制御データ更新ステップ(例えば、図18のステップS40、または図31のS109)と、更新された前記第1の再生制御データに基づいて、前記AVストリームおよび前記コンテンツデータを同期させて再生させるように前記AVストリームおよび前記コンテンツデータの再生を制御する再生制御ステップ(例えば、図31のステップS104乃至S111および図32のステップS112乃至S115)とを含むことを特徴とする。
請求項8に記載の記録媒体(例えば、図1のリムーバブルメディア28)に記録されているプログラムは、着脱可能なデータ記録媒体(例えば、図1の光ディスク11)に記録されているAVストリームを前記データ記録媒体に記録されている第1の再生制御データ(例えば、PlayList)に基づいて再生する再生装置(例えば、図1の再生装置1)のコンピュータに、前記AVストリームに同期させて再生させるコンテンツデータ(例えば、サブストリーム)、前記コンテンツデータに関する情報を含むメタデータであって、前記コンテンツデータのファイル名(例えば、図9のfile_name)、および、前記コンテンツデータのファイル名とは異なる前記コンテンツデータの別名(例えば、図9のdisplay_name)を含むメタデータである第1のメタデータ(例えば、図9のMetadata)、前記コンテンツデータの再生の制御に関するデータであるコンテンツデータ再生制御データ(例えば、Sub Path、SubPlayItem、またはSubClip_entry)を含む第2の再生制御データ(例えば、アップデートファイルに含まれるPlayList)、並びに、前記第2の再生制御データに関する情報を含むメタデータであって、前記第1の再生制御データの更新方法を指定する更新方法データ(例えば、operation_type)を含むメタデータである第2のメタデータ(例えば、図9のMetadata)を含むコンテンツ更新データ(例えば、コンテンツパッケージ)を取得する取得ステップ(例えば、図17のステップS6)と、前記更新方法データに基づいて、前記第2の再生制御データから前記コンテンツデータ再生制御データを抽出して、前記コンテンツデータ再生制御データを前記第1の再生制御データに追加することにより前記第1の再生制御データを仮想ファイルシステム上で更新する再生制御データ更新ステップ(例えば、図18のステップS40、または図31のS109)と、更新された前記第1の再生制御データに基づいて、前記AVストリームおよび前記コンテンツデータを同期させて再生させるように前記AVストリームおよび前記コンテンツデータの再生を制御する再生制御ステップ(例えば、図31のステップS104乃至S111および図32のステップS112乃至S115)とを含む処理を実行させる。
請求項9に記載のプログラムは、着脱可能なデータ記録媒体(例えば、図1の光ディスク11)に記録されているAVストリームを前記データ記録媒体に記録されている第1の再生制御データ(例えば、PlayList)に基づいて再生する再生装置(例えば、図1の再生装置1)のコンピュータに、前記AVストリームに同期させて再生させるコンテンツデータ(例えば、サブストリーム)、前記コンテンツデータに関する情報を含むメタデータであって、前記コンテンツデータのファイル名(例えば、図9のfile_name)、および、前記コンテンツデータのファイル名とは異なる前記コンテンツデータの別名(例えば、図9のdisplay_name)を含むメタデータである第1のメタデータ(例えば、図9のMetadata)、前記コンテンツデータの再生の制御に関するデータであるコンテンツデータ再生制御データ(例えば、Sub Path、SubPlayItem、またはSubClip_entry)を含む第2の再生制御データ(例えば、アップデートファイルに含まれるPlayList)、並びに、前記第2の再生制御データに関する情報を含むメタデータであって、前記第1の再生制御データの更新方法を指定する更新方法データ(例えば、operation_type)を含むメタデータである第2のメタデータ(例えば、図9のMetadata)を含むコンテンツ更新データ(例えば、コンテンツパッケージ)を取得する取得ステップ(例えば、図17のステップS6)と、前記更新方法データに基づいて、前記第2の再生制御データから前記コンテンツデータ再生制御データを抽出して、前記コンテンツデータ再生制御データを前記第1の再生制御データに追加することにより前記第1の再生制御データを仮想ファイルシステム上で更新する再生制御データ更新ステップ(例えば、図18のステップS40、または図31のS109)と、更新された前記第1の再生制御データに基づいて、前記AVストリームおよび前記コンテンツデータを同期させて再生させるように前記AVストリームおよび前記コンテンツデータの再生を制御する再生制御ステップ(例えば、図31のステップS104乃至S111および図32のステップS112乃至S115)とを含む処理を実行させる。
請求項10に記載の情報提供装置(例えば、図1のサーバ3)は、着脱可能なデータ記録媒体(例えば、図1の光ディスク11)に記録されているAVストリームを前記データ記録媒体に記録されている第1の再生制御データに基づいて再生する再生装置(例えば、図1の再生装置1)とネットワーク(例えば、図1のネットワーク2)を介して接続されている情報提供装置であって、前記再生装置からの要求に応じて、前記AVストリームに同期させて再生させるコンテンツデータ(例えば、サブストリーム)、前記コンテンツデータに関する情報を含むメタデータであって、前記コンテンツデータのファイル名(例えば、図9のfile_name)、および、前記コンテンツデータのファイル名とは異なる前記コンテンツデータの別名(例えば、図9のdisplay_name)を含む第1のメタデータ(例えば、図9のMetadata)、並びに、前記コンテンツデータの再生の制御に関するデータであるコンテンツデータ再生制御データ(例えば、Sub Path、SubPlayItem、またはSubClip_entry)を含む第2の再生制御データ(例えば、アップデートファイルに含まれるPlayList)、並びに、前記第2の再生制御データに関する情報を含むメタデータであって、前記第1の再生制御データの更新方法を指定する更新方法データ(例えば、operation_type)を含むメタデータである第2のメタデータ(例えば、図9のMetadata)を含むコンテンツ更新データ(例えば、コンテンツパッケージ)をデータベース(例えば、図15のデータベース71)から取得する取得手段(例えば、図16のコンテンツパッケージ管理部82)と、前記コンテンツ更新データを前記再生装置に送信する送信手段(例えば、図16の通信制御部81)とを含むことを特徴とする。
請求項11に記載の情報提供方法は、着脱可能なデータ記録媒体(例えば、図1の光ディスク11)に記録されているAVストリームを前記データ記録媒体に記録されている第1の再生制御データに基づいて再生する再生装置(例えば、図1の再生装置1)とネットワーク(例えば、図1のネットワーク2)を介して接続されている情報提供装置(例えば、図1のサーバ3)の情報提供方法であって、前記再生装置からの要求に応じて、前記AVストリームに同期させて再生させるコンテンツデータ(例えば、サブストリーム)、前記コンテンツデータに関する情報を含むメタデータであって、前記コンテンツデータのファイル名(例えば、図9のfile_name)、および、前記コンテンツデータのファイル名とは異なる前記コンテンツデータの別名(例えば、図9のdisplay_name)を含む第1のメタデータ(例えば、図9のMetadata)、並びに、前記コンテンツデータの再生の制御に関するデータであるコンテンツデータ再生制御データ(例えば、Sub Path、SubPlayItem、またはSubClip_entry)を含む第2の再生制御データ(例えば、アップデートファイルに含まれるPlayList)、並びに、前記第2の再生制御データに関する情報を含むメタデータであって、前記第1の再生制御データの更新方法を指定する更新方法データ(例えば、operation_type)を含むメタデータである第2のメタデータ(例えば、図9のMetadata)を含むコンテンツ更新データ(例えば、コンテンツパッケージ)をデータベース(例えば、図15のデータベース71)から取得する取得ステップ(例えば、図30のステップS83)と、前記コンテンツ更新データの前記再生装置への送信を制御する送信制御手段(例えば、図30のステップS84)とを含むことを特徴とする。
請求項12に記載の記録媒体(例えば、図15のリムーバブルメディア61)に記録されているプログラムは、着脱可能なデータ記録媒体(例えば、図1の光ディスク11)に記録されているAVストリームを前記データ記録媒体に記録されている第1の再生制御データに基づいて再生する再生装置(例えば、図1の再生装置1)とネットワーク(例えば、図1のネットワーク2)を介して接続されている情報提供装置(例えば、図1のサーバ3)のコンピュータに、前記再生装置からの要求に応じて、前記AVストリームに同期させて再生させるコンテンツデータ(例えば、サブストリーム)、前記コンテンツデータに関する情報を含むメタデータであって、前記コンテンツデータのファイル名(例えば、図9のfile_name)、および、前記コンテンツデータのファイル名とは異なる前記コンテンツデータの別名(例えば、図9のdisplay_name)を含むメタデータ(例えば、図9のMetadata)、前記コンテンツデータの再生の制御に関するデータであるコンテンツデータ再生制御データ(例えば、Sub Path、SubPlayItem、またはSubClip_entry)を含む第2の再生制御データ(例えば、アップデートファイルに含まれるPlayList)、並びに、前記第2の再生制御データに関する情報を含むメタデータであって、前記第1の再生制御データの更新方法を指定する更新方法データ(例えば、operation_type)を含むメタデータである第2のメタデータ(例えば、図9のMetadata)を含むコンテンツ更新データ(例えば、コンテンツパッケージ)をデータベース(例えば、図15のデータベース71)から取得する取得ステップ(例えば、図30のステップS83)と、前記コンテンツ更新データの前記再生装置への送信を制御する送信制御手段(例えば、図30のステップS84)とを含む処理をコンピュータに実行させる。
請求項13に記載のプログラムは、着脱可能なデータ記録媒体(例えば、図1の光ディスク11)に記録されているAVストリームを前記データ記録媒体に記録されている第1の再生制御データに基づいて再生する再生装置(例えば、図1の再生装置1)とネットワーク(例えば、図1のネットワーク2)を介して接続されている情報提供装置(例えば、図1のサーバ3)のコンピュータに、前記再生装置からの要求に応じて、前記AVストリームに同期させて再生させるコンテンツデータ(例えば、サブストリーム)、前記コンテンツデータに関する情報を含むメタデータであって、前記コンテンツデータのファイル名(例えば、図9のfile_name)、および、前記コンテンツデータのファイル名とは異なる前記コンテンツデータの別名(例えば、図9のdisplay_name)を含むメタデータ(例えば、図9のMetadata)、前記コンテンツデータの再生の制御に関するデータであるコンテンツデータ再生制御データ(例えば、Sub Path、SubPlayItem、またはSubClip_entry)を含む第2の再生制御データ(例えば、アップデートファイルに含まれるPlayList)、並びに、前記第2の再生制御データに関する情報を含むメタデータであって、前記第1の再生制御データの更新方法を指定する更新方法データ(例えば、operation_type)を含むメタデータである第2のメタデータ(例えば、図9のMetadata)を含むコンテンツ更新データ(例えば、コンテンツパッケージ)をデータベース(例えば、図15のデータベース71)から取得する取得ステップ(例えば、図30のステップS83)と、前記コンテンツ更新データの前記再生装置への送信を制御する送信制御手段(例えば、図30のステップS84)とを含む処理をコンピュータに実行させる。
以下、図を参照して、本発明の実施の形態について説明する。
図1は、本発明を適用した再生装置1の一実施の形態の構成を示すブロック図である。
コントローラ21は、予め用意されている制御プログラムを実行するか、光ディスクドライブ22を制御して光ディスク11に記録されているMovieObject(後述)を読み出し、メモリ23に展開して実行することで、再生装置1の全体の動作を制御する。
光ディスクドライブ22は、コントローラ21による制御に従って光ディスク11からデータを読み出し、読み出したデータを、必要に応じて、コントローラ21、メモリ23、または、デコーダ26に供給する。
ここで、図2を参照して、本発明を適用した再生装置1により再生されるコンテンツを記録する光ディスク11のアプリケーションフォーマットの例について説明する。なお、記録媒体は、光ディスク11の他、例えば、磁気ディスクや半導体メモリであってもよい。
アプリケーションフォーマットは、AV(Audio Visual)ストリームの管理のためにPlayListとClipの2つのレイヤをもつ。ここでは、1つのAVストリームまたはテキストデータとそれに付随する情報であるClip Informationのペアを1つのオブジェクトと考え、それらをまとめてClipと称する。以下、AVストリームのデータファイルをAVストリームファイルと称する。また、Clip InformationのデータファイルをClip Informationファイルと称する。さらに、PlayListのデータファイルをPlayListファイルと称する。
一般的に、コンピュータ等で用いられるファイルはバイト列として扱われるが、AVストリームファイルのコンテンツは時間軸上に展開され、Clipのアクセスポイントは、主に、タイムスタンプでPlayListにより指定される。
PlayListによりClipへのアクセスポイントがタイムスタンプで示されている場合、Clip Informationファイルは、タイムスタンプから、AVストリームファイル中のデコードを開始すべきアドレス情報を見つけるために用いられる。
PlayListはAVストリームの再生区間を示す情報の集合である。あるAVストリーム中の1つの再生区間を示す情報はPlayItemと呼ばれ、PlayItemは、時間軸上の再生区間のIN点(再生開始点)とOUT点(再生終了点)のペアで表される。従って、PlayListは、図2に示されるように1つ、または複数のPlayItemにより構成される。
図2において、左側に図示されている第1のPlayListは2つのPlayItemから構成され、その2つのPlayItemにより、左側に図示されているClipに含まれるAVストリームの前半部分と後半部分がそれぞれ参照されている。また、右側に図示されているPlayListは1つのPlayItemから構成され、それにより、右側に図示されているClipに含まれるAVストリーム全体が参照されている。
例えば、再生位置を表す情報として図2において左側に図示される第1のPlayListに含まれる第1のPlayItemがコントローラ21により指定された場合、そのPlayItemが参照する、左側に図示されるClipに含まれるAVストリームの前半部分の再生が行われる。
また、PlayListには、PlayItemにより指定されるMain Pathに加えて、図3に示されるようにSubPlayItemを用いて指定されるSub Pathの情報を含ませることもできる。SubPlayItemを定義すると、例えば、PlayItemにより指定されるClip(例えば、MPEG2トランスポートストリーム)に多重化されていない、図3においてauxiliary streamとして示されている独立したデータストリーム(以下、サブストリームと称する)をAVストリームの再生に同期して再生させることができる。
なお、以下、サブストリームを含むClipをサブClipと称する。また、Main Path上のPlayItemにより参照されるAVストリームを、サブストリームに対してClip AVストリームとも称する。さらに、Clip AVストリームを含むClipをメインClipとも称する。また、サブストリームのデータファイルをサブストリームファイルとも称する。さらに、Clip AVストリームのデータファイルをClip AVストリームファイルとも称する。また、Clip AVストリームファイルとサブストリームファイルを総称してストリームファイルともいう。
例えば、PlayItemにより指定されるMain PathのClip AVストリームに対応させて、音声ストリームやグラフィックストリームなどを含むサブClipとそれらの再生区間を指定したSubPlayItemを用意することで、Clip AVストリームの再生と同時に、Clip AVストリームには含まれない音声ストリームやグラフィックストリームを再生することができる。また、テキスト字幕ファイル、および、レンダリングに必要となるフォントファイルから構成される字幕関連情報を含むサブClipと、字幕関連情報の再生区間を指定したSubPlayItemを用意することで、Clip AVストリームの再生と同時に、テキスト字幕ファイルに記載されているデータに対応する字幕を、フォントファイルに記載されているフォントデータに基づいた表示フォントで、表示装置に表示させるようにすることができる。
図3の例の場合、PlayListは、Id=0乃至2である3つのPlayItemの並びにより構成される1つのMain Pathと、Id=0である1つのSub Pathを有している。Sub Pathには、2つのSubPlayItemが含まれる。各SubPlayItemは、SubPlayItemが指定するサブClipに含まれるサブストリームの再生区間を指定するためのSubPlayItem_IN_timeとSubPlayItem_OUT_timeを含む。
図3において、左側に示されているSubPlayItemのように、1つのSubPlayItemは複数のサブClipを参照することができる。例えば、各国語ごとの字幕関連情報を含むサブClipを複数用意し、1つのSubPlayItemからそれらのサブClipを選択して参照できるようにすることにより、複数の言語の字幕の中から1つの言語の字幕を選択して、Main PathのClip AVストリームに同期して再生(表示)させることができる。
Main Pathのみを有するPlayListを再生する場合、ユーザが音声切り替えや字幕切り替えといった操作を行なうとき、そのMain Pathが参照するClip AVストリームに多重化されているオーディオストリームやサブピクチャストリームなどの中からしか音声や字幕を選択することができない。これに対し、Main PathとSub Pathを持つPlayListを再生する場合、そのMain Pathが参照するClip AVストリームに多重化されているオーディオストリームやサブピクチャストリームなどに加えて、SubPlayItemが参照するサブClipに含まれるサブストリームを参照することができる。
Sub Path、SubPlayItem、または、サブClipは、予め光ディスク11に記録されていても良いし、ネットワーク2を介して、サーバ3からダウンロードされるものであっても良いし、または、リムーバブルメディア(例えば、後述するリムーバブルメディア28)を用いて取得することができるようにしても良い。
従って、Sub Path、SubPlayItem、または、サブClipを追加または更新することにより、製作時に光ディスク11に記録されていなかった音声や字幕などのコンテンツを容易に追加または更新できるようになり、再生装置1により再生されるコンテンツの拡張性および自由度が向上する。なお、Sub Path、SubPlayItem、または、サブClipをサーバ3からダウンロードする場合の詳細については、図17を参照して後述する。
図4は、PlayListのデータ構造の例を示す図である。
lengthは、このlengthフィールドの直後からPlayListの最後までのバイト数を示す32ビットの符号なし整数である。lengthの後には、16ビットのreserved_for_future_useが用意される。number_of_PlayItemsは、PlayListに含まれるPlayItemの数を示す16ビットのフィールドである。例えば、図3に示されるPlayListの場合、number_of_PlayItems の値は3となる。PlayItem_idはPlayListに含まれるPlayItemを識別するためのIDであり、その値は、PlayListの中でPlayItemが現れる順番に0から割り振られる。
number_of_SubPathsは、PlayListに含まれるSub Pathの数(エントリー数)を示す16ビットのフィールドである。例えば、図3に示されるPlayListの場合、number_of_SubPathsの値は1となる。SubPath_idはPlayListに含まれるSub Pathを識別するためのIDであり、その値は、PlayListの中でSub Pathが現れる順番に0から割り振られる。number_of_SubPathsの後のfor文では、number_of_PlayItemsで示される数のPlayItemが参照され、number_of_SubPathsで示される数のSub Pathが参照される。
図5は、PlayItemのデータ構造を示す図である。
lengthは、このlengthフィールドの直後からPlayItemの最後までのバイト数を示す16ビットの符号なし整数である。Clip_Information_file_nameは、PlayItemが参照するClipInformationファイルのファイル名を示す5バイトのフィールドである。Clip_codec_identifierは、PlayItemが参照するClipのコーデック方式を示す4バイトのフィールドである。Clip_codec_identifierの後には、12ビットのreserved_for_future_useが用意される。connection_conditionは、このPlayItemが次のPlayItemとの間でどのような接続がされているかを示す4ビットのフィールドである。
図6は、Sub Pathのデータ構造を示す図である。まず、図6の左側に示されるSubPathの最上位層のデータ構造について説明する。
SubPath_typeは、Sub Pathのアプリケーション種類を示す。SubPath_typeは、例えば、Sub Pathがオーディオであるか、ビットマップ字幕であるか、テキスト字幕であるかなどの種類を示す場合に利用される。is_repeat_SubPathは、Sub Pathの再生方法を示し、Main Pathの再生の間にSub Pathの再生を繰り返し行うか、またはSub Pathの再生を1回だけ行うかを示すものである。number_of_SubPlayItemsは、Sub Pathに含まれるSubPlayItemの数(エントリー数)を示す。例えば、図3に示されるSub Pathの場合、number_of_SubPlayItemsの値は2となる。その後、number_of_SubPlayItemsにより示される数だけSubPlayItemが含まれる。
次に、図6の中央に示されるSubPlayItemのデータ構造について説明する。
Clip_Information_file_nameは、SubPlayItemが参照するサブClipに含まれるClip Informationファイルのファイル名を示す。Clip_codec_identifierは、SubPlayItemが参照するサブClipのコーデック方式を示す。is_multi_Clip_entriesは、このSubPlayItemが複数のサブClipを参照するか否かを示すフラグである。例えば、図3に示されるPlayListの場合、左側のSubPlayItemのis_multi_Clip_entriesの値は複数のサブClipを参照することを示す1に設定され、右側のSubPlayItemのis_multi_Clip_entriesの値は1つのサブClipのみを参照することを示す0に設定される。ref_to_STC_idは、Clipが参照するSTCシーケンスの識別子を指定する。
SubPlayItem_IN_timeは、SubPlayItemの再生開始時刻を指定する。SubPlayItem_OUT_timeは、SubPlayItemの再生終了時刻を指定する。すなわち、SubPlayItem_IN_timeおよびSubPlayItem_OUT_timeで、SubPlayItemの再生区間を指定することができる。sync_PlayItem_idとsync_start_PTS_of_PlayItemは、Main Pathの時間軸上でSubPlayItemが再生を開始する時刻を指定するために用いられる。具体的には、sync_PlayItem_idの値と同じ値のPlayItem_idを持つPlayItemの時間軸上において、sync_start_PTS_of_PlayItemで指定される時刻に、このSubPlayItemの再生が開始される。
number_of_Clip_entriesは、SubPlayItemが参照するサブClipの数を示している。例えば、図3に示されるPlayListの場合、左側のSubPlayItemのnumber_of_Clip_entriesの値はNとなる。その後、number_of_Clip_entriesにより示される数だけのSubClip_entryが含まれる。
次に、図6の右側に示されるSubClip_entryのデータ構造について説明する。
Clip_Information_file_nameは、SubPlayItemが参照するサブClipに含まれるClip Informationファイルのファイル名を示す。Clip_codec_identifierは、SubPlayItemが参照するサブClipのコーデック方式を示す。ref_to_STC_idは、Clipが参照するSTCシーケンスの識別子を指定する。
なお、光ディスク11に記録されるAVストリームは、図7に示すような、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 Elementarty Stream)パケットにパケット化されており、PESパケットは、トランスポートパケットにパケット化される。
図8は、光ディスク11のファイルシステムの例を示す図である。図に示されるように、光ディスク11のファイルシステムはディレクトリ構造を有している。
光ディスク11の「root」の下には「BDMV」の名前が設定されたディレクトリが設けられ、そのディレクトリに、「Index.bdmv」の名前が設定されたファイルと、「MovieObject.bdmv」の名前が設定されたファイルが格納されている。以下、適宜、これらのファイルをそれぞれIndexファイル、MovieObjectファイルと称する。また、適宜、各ファイルについて「ファイル名」に「ファイル」を付加した形で、または、各ディレクトリについて「ディレクトリ名」に「ディレクトリ」を付加した形で称する。
Indexファイルは、光ディスク11を再生するメニューに関する情報を含む。再生装置1は、例えば、光ディスク11のコンテンツを全て再生する、特定のチャプタのみ再生する、繰り返し再生する、初期メニューを表示するなどの内容の項目を含む再生メニュー画面をIndexファイルに基づいて、表示する。Indexファイルには各項目が選択されたときに実行するMovieObjectを設定することができ、ユーザにより再生メニュー画面から1つの項目が選択された場合、再生装置1はIndexファイルに設定されているMovieObjectを実行する。
MovieObjectファイルは、MovieObjectを含むファイルである。MovieObjectは、光ディスク11に記録されているPlayListの再生を制御するコマンドを含み、例えば、再生装置1は、光ディスク11に記録されているMovieObjectの中から1つを選択して、実行することにより、光ディスク11に記録されているコンテンツを再生させることができる。
BDMVディレクトリにはまた、「BACKUP」の名前が設定されたディレクトリ(BACKUPディレクトリ)、「PLAYLIST」の名前が設定されたディレクトリ(PLAYLISTディレクトリ)、「CLIPINF」の名前が設定されたディレクトリ(CLIPINFディレクトリ)、「STREAM」の名前が設定されたディレクトリ(STREAMディレクトリ)、「AUXDATA」の名前が設定されたディレクトリ(AUXDATAディレクトリ)が設けられている。
BACKUPディレクトリには、光ディスク11に記録されているファイルやデータをバックアップするためのファイルやデータが記録される。
PLAYLISTディレクトリには、PlayListファイルが格納される。各PlayListファイルには、図内に示されるように5桁の数字からなるファイル名に拡張子「.mpls」を付加した名称が命名される。
CLIPINFディレクトリには、Clip Informationファイルが格納される。各Clip Informationファイルには、図内に示されるように5桁の数字からなるファイル名に拡張子「.clpi」を付加した名称が命名される。
STREAMディレクトリには、Clip AVストリームファイルやサブストリームファイルが格納される。各ストリームファイルには、図内に示されるように5桁の数字からなるファイル名に拡張子「.m2ts」を付加した名称が命名される。
AUXDATAディレクトリには、Clip AVストリームファイルやサブストリームファイルに含まれずに、Clip AVストリームファイルやサブストリームファイルから参照されるデータや、Clip AVストリームファイルやサブストリームファイルとは独立して利用されるデータなどのファイルが格納される。図8の例において、AUXDATAディレクトリには、「11111.otf」の名前がつけられている字幕のフォントのファイル、「sound.bdmv」の名前がつけられた効果音のファイルが格納されている。
また、光ディスク11には、製作会社や映画の配給会社などの光ディスク11のコンテンツ製作元であるタイトルオーサを識別するために各タイトルオーサに割り当てられた識別子であるauthor_id、および、author_idに示されるタイトルオーサにおいて製作された光ディスク11の種類を識別するために割り当てられた識別子であるdisc_idが、ユーザなどにより書き換えることができないセキュアな電子データとして、または、物理的にピットによって記録されている。
再び、図1の説明に戻る。
メモリ23は、コントローラ21が各種の処理を実行する上において必要なデータなどを適宜記憶する。ローカルストレージ24は、例えば、HDD(Hard Disk Drive)などより構成される。
インターネットインタフェース25は、有線または無線によりネットワーク2に接続されており、コントローラ21の制御の基に、ネットワーク2を介して、サーバ3との間で通信を行い、サーバ3からダウンロードされたデータを、必要に応じて、コントローラ21、メモリ23、または、ローカルストレージ24に供給する。
例えば、サーバ3からは、光ディスク11に記録されているコンテンツを更新したり、コンテンツを追加するための、Indexファイル、MovieObjectファイル、PlayListファイル、Clip Informationファイル、またはストリームファイルなどの更新用または追加用のファイル(以下、アップデートファイルと総称する)を1個以上パッケージしたデータ(以下、コンテンツパッケージと称する)が提供される。インターネットインタフェース25は、そのコンテンツパッケージをサーバ3からネットワーク2経由でダウンロードして、ダウンロードしたコンテンツパッケージをコントローラ21に供給する。
ここで、図9を参照して、コンテンツパッケージのデータ構造を定義するFile_packageの例について説明する。
File_packageは、Package_headerとFilesを含む。
Package_headerは、compression_typeおよびencryption_typeを含む。compression_typeは、File_package内のデータの圧縮方式を示す8ビットのフィールドである。File_package内のデータが非圧縮の場合、compression_typeの値は0に設定され、File_package内のデータが圧縮されている場合、圧縮方式によって予め割り当てられている0以外の値がcompression_typeに設定される。
encryption_typeは、File_package内のデータのスクランブル方式(暗号化方式)を示す8ビットのフィールドである。File_package内のデータにスクランブル処理が施されていない場合、encryption_typeの値は0に設定され、File_package内のデータにスクランブル処理が施されている場合、encryption_typeの値は0以外に設定される。なお、File_package内のデータは、まず圧縮処理が施されてから、圧縮されたデータにスクランブル処理が施される。
Filesは、アップデートファイルの実体を含む。
file_countは、File_packageに含まれるアップデートファイルの総数を示す16ビットの符号なし整数である。
Metadataは、File_packageに含まれるアップデートファイルに関する情報を含むメタデータを格納するフィールドであり、1つのアップデートファイルに対して1つのMetadataのフィールドが割り当てられる。
author_idおよびdisc_idは、上述した光ディスク11に記録されているauthor_idおよびdisc_idと同様の識別子を示すそれぞれ8ビットのフィールドである。
title_idは、光ディスク11に記録されているコンテンツに対して、タイトルオーサが任意に定義して割り当てることができるIDである。例えば、光ディスク11に記録されているAVストリームの各チャプタに異なるtitle_idを割り当てたり、AVストリームに含まれる画像データを高解像度と低解像度の2種類の解像度で記録した2種類のAVストリームを光ディスク11に記録し、それぞれのAVストリームに異なるtitle_idを割り当てたりすることができる。
operation_typeは、アップデートファイルの更新方法を指定する8ビットのフィールドである。operation_typeには、図10に示されるように0x01乃至0x04の4種類のうちいずれかの値が設定される。operation_typeの値が0x01の場合、アップデートファイルが、光ディスク11に記録されている更新元のファイルに置き換わって、そのまま使用される。なお、光ディスク11に記録されていない新規に追加されるアップデートファイルのoperation_typeには0x01が設定される。
operation_typeの値に0x02乃至0x04が設定されるのは、アップデートファイルがPlayListファイルの場合である。operation_typeの値が0x02の場合、アップデートファイルからSub Path要素を抽出して、光ディスク11に記録されている更新元のPlayListファイルに含まれるPlayListに抽出したSub Path要素を追加することによりPlayListファイルが更新される。operation_typeの値が0x03の場合、アップデートファイルからSubPlayItem要素を抽出して、光ディスク11に記録されている更新元のPlayListファイルに含まれるPlayListに抽出したSubPlayItem要素を追加することによりPlayListファイルが更新される。operation_typeの値が0x04の場合、アップデートファイルからSubClip_entry要素を抽出して、光ディスク11に記録されている更新元のPlayListファイルに含まれるPlayListに抽出したSubClip_entry要素を追加することによりPlayListファイルが更新される。なお、アップデートファイルがPlayListファイルの場合でも、operation_typeの値が0x01のときには、アップデートファイルが、光ディスク11に記録されているPlayListファイルに置き換わって、そのまま使用される。
なお、再生装置1は、ダイナミックバインディング方式とスタティックバインディング方式の2種類の更新処理の方式を設定することができる。例えば、再生装置1がスタティックバインディング方式に設定されている場合、上述したPlayListファイルの更新処理は、コンテンツパッケージがダウンロードされたとき行なわれ、更新されたPlayListファイルがローカルストレージ24に記録される。また、再生装置1がダイナミックバインディング方式に設定されている場合、コンテンツパッケージがダウンロードされたとき、PlayListファイルのアップデートファイルはそのままローカルストレージ24に記録され、PlayListファイルの更新処理は、再生装置1がPlayListファイル1に含まれるPlayListを再生するたびに行なわれる。なお、PlayListファイルの更新処理の詳細については、図23を参照して後述する。
versionは、タイトルオーサがアップデートファイルの履歴管理のために使用し、1から255までの数値によって表される。新しいアップデートファイルほどversionの数値は大きくなる。
display_nameは、アップデートファイルの別名を示す128バイトのフィールドである。例えば、display_nameには、「タイトルxxxの日本語字幕」のように、アップデートファイルの内容をユーザに分かりやすく伝えるための文字列が設定され、ファイル名の代わりにdisplay_nameがユーザに対して表示される。display_nameに設定される文字列は、例えば、ISO/IEC 10646-1規格に従い符号化される。
permissionは、アップデートファイルのアクセス権限を示す8ビットのフィールドである。permissionには、図11に示されるように0x00乃至0x02の3種類のうちいずれかの値が設定される。permissionの値が0x00の場合、アップデートファイルはユーザに対して不可視とされ、permissionの値が0x01の場合、アップデートファイルはユーザに対して可視とされ、permissionの値が0x02の場合、アップデートファイルは上書き禁止とされる。具体的には、例えば、再生装置1の機能を利用して、光ディスク11およびローカルストレージ24に記録されているファイルの一覧を表示させた場合、permissionの値が0x00のアップデートファイルは表示されず、permissionの値が0x01または0x02のアップデートファイルのみが表示される。また、permissionの値が0x02のコンテンツファイルは、ユーザの操作により上書きすることが禁止される。
file_nameは、アップデートファイルの名称を示す1024バイトのフィールドである。なお、file_nameは、例えば、ISO/IEC 646規格に従い符号化される。
file_sizeは、圧縮前のアップデートファイルの容量をバイト数で表わす32ビットの符号なし整数である。
file_dataは、実際のアップデートファイルのデータが格納されるfile_sizeで示されるバイト数の容量のフィールドである。
再び、図1の説明に戻る。
デコーダ26は、光ディスクドライブ22、または、ローカルストレージ24から供給されるAVストリーム、または、サブストリームをデコードし、得られたビデオ信号とオーディオ信号を外部の表示装置に出力する。表示装置においては、デコーダ26によりデコードされた信号に基づいて、例えば、光ディスク11に記録されているコンテンツの出力(映像の表示、音声の出力)が行われる。
操作入力部29は、例えば、ボタン、キー、タッチパネル、ジョグダイヤル、マウスなどの入力デバイスや、所定のリモートコマンダから送信される赤外線などの信号を受信する受信部により構成され、ユーザの操作入力を取得し、コントローラ21に供給する。
また、コントローラ21には、必要に応じてドライブ27が接続され、ドライブ27には、例えば、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disk-Read Only Memory),DVDを含む)、光磁気ディスク(MD(登録商標)(Mini-Disk)を含む)、もしくは半導体メモリなどよりなるリムーバブルメディア28が装着される。
図12は、図1のコントローラ21の機能構成例を示すブロック図である。なお、図12の各構成は、予め用意されている制御プログラムがコントローラ21により実行されることにより実現される。
メニュー画面表示制御部31は、光ディスク11に記録されているコンテンツの音声、または字幕の言語や、映像のアングルを選択するときにユーザにより操作されるボタンや、ダウンロードするコンテンツパッケージを選択するときに、ユーザにより操作されるボタンなどを含むメニュー画面、および上述した再生メニュー画面などを外部の表示装置に表示させる。
操作入力取得部32は、操作入力部29から入力された、ユーザからの操作入力を示す信号を取得し、ユーザからの操作入力を示す信号を、必要に応じて、メニュー画面表示制御部31、データ取得部33、または、再生制御部39に供給する。
データ取得部33は、図1のインターネットインタフェース25において行われる通信、または、ドライブ27によるリムーバブルメディア28との情報の授受を制御する。例えば、データ取得部33は、ダウンロード可能なコンテンツパッケージの一覧やコンテンツパッケージの配信元に関する情報(例えば、コンテンツパッケージの配信元のURL(Uniform Resource Locator)など)を含む情報(以下、コンテンツパッケージ一覧情報と称する)の送信を要求する信号(以下、コンテンツパッケージ一覧要求信号と称する)を、インターネットインタフェース25を制御して、ネットワーク2を介してサーバ3に送信させる。データ取得部33は、コンテンツパッケージ一覧要求信号に対応して、サーバ3から送信されてくるコンテンツパッケージ一覧情報を、ネットワーク2およびインターネットインタフェース25を介して取得し、取得したコンテンツパッケージ一覧情報をメニュー画面表示制御部31に供給する。
また、データ取得部33は、コンテンツパッケージの送信を要求する信号(以下、コンテンツパッケージ送信要求信号と称する)を、インターネットインタフェース25を制御して、ネットワーク2を介してサーバ3に送信させる。データ取得部33は、コンテンツパッケージ送信要求信号に対応して、サーバ3から送信されてくるコンテンツパッケージを、ネットワーク2およびインターネットインタフェース25を介して取得し、取得したコンテンツパッケージをローカルストレージディレクトリ管理部34に供給し、コンテンツパッケージの配信元に関する情報(例えば、コンテンツパッケージの配信元のURLなど)をメタデータ生成部37に供給する。
ローカルストレージディレクトリ管理部34は、ローカルストレージ24のディレクトリの管理、ローカルストレージ24へのデータの書き込み、および、ローカルストレージ24からのデータの読み出しを制御する。また、ローカルストレージディレクトリ管理部34は、必要に応じて、コンテンツパッケージに含まれるアップデートファイルをローカルストレージ24に記録させる。
ローカルストレージディレクトリ管理部34は、ローカルストレージ24から読み出したファイルやデータを、必要に応じて、光ディスクディレクトリ管理部35、プレイリスト更新部36、メタデータ生成部37、または、ファイルシステムマージ処理部38に供給する。また、ローカルストレージディレクトリ管理部34は、ローカルストレージ24からローカルストレージ24のファイルシステムを読み出し、読み出したファイルシステムをファイルシステムマージ処理部38に供給する。さらに、ローカルストレージディレクトリ管理部34は、ローカルストレージ24に記録されているAVストリームやサブストリームなどをデコーダ26に供給させる。
光ディスクディレクトリ管理部35は、光ディスクドライブ22の光ディスク11からのファイルやデータの読み出しを制御する。光ディスクディレクトリ管理部35は、光ディスクドライブ22が光ディスク11から読み出したファイルやデータを取得し、取得したファイルやデータを、必要に応じて、データ取得部33、ローカルストレージディレクトリ管理部34、プレイリスト更新部36、または、ファイルシステムマージ処理部38に供給する。また、光ディスクディレクトリ管理部35は、光ディスクドライブ22を制御して、光ディスク11から読み出したAVストリームやサブストリームなどをデコーダ26に供給させる。
さらに、光ディスクディレクトリ管理部35は、光ディスクドライブ22を制御して、光ディスク11からファイルシステムを読み出させ、読み出させたファイルシステムを取得し、取得したファイルシステムをファイルシステムマージ処理部38に供給する。
プレイリスト更新部36は、図23を参照して後述するように、ローカルストレージディレクトリ管理部34、光ディスクディレクトリ管理部35、またはファイルシステムマージ処理部38から、光ディスク11またはローカルストレージ24に記録されているPlayListファイル取得し、取得したPlayListファイルを更新する。プレイリスト更新部36は、更新したPlayListファイルを、必要に応じて、ローカルストレージディレクトリ管理部34またはファイルシステムマージ処理部38に供給する。
メタデータ生成部37は、図18を参照して後述するように、ローカルストレージディレクトリ管理部34からアップデートファイルに含まれるMetadataを取得し、Metadataの内容を一部更新または追加したメタデータリストを生成する。メタデータ生成部37は、生成したメタデータリストをローカルストレージディレクトリ管理部34に供給し、ローカルストレージディレクトリ管理部34は、取得したメタデータリストをローカルストレージ24に記録させる。
ファイルシステムマージ処理部38は、図13に示されるように、光ディスク11のファイルシステムと、ローカルストレージ24のファイルシステムをマージし、1つの仮想的なファイルシステム(以下、仮想ファイルシステムと称する)を生成する。ファイルシステムマージ処理部38は、生成した仮想ファイルシステムを、必要に応じて、メモリ23に記憶させたり、再生制御部39に供給したりする。また、ファイルシステムマージ処理部38は、再生制御部39などから、仮想ファイルシステム上のファイルの操作が要求された場合、操作対象となるファイルが光ディスク11またはローカルストレージ24のどちらに記録されているかを判定し、操作対象となるファイルが光ディスク11に記録されている場合、光ディスクディレクトリ管理部35に操作要求を示す情報を供給し、操作対象となるファイルがローカルストレージ24に記録されている場合、ローカルストレージディレクトリ管理部34に操作要求を示す情報を供給する。
ファイルシステムマージ処理部38は、ローカルストレージディレクトリ管理部34または光ディスクディレクトリ管理部35から供給されたファイルやデータを、必要に応じて、プレイリスト更新部36または再生制御部39に供給する。ファイルシステムマージ処理部38は、プレイリスト更新部36から更新されたPlayListファイルを取得し、取得したPlayListファイルを再生制御部39に供給する。
再生制御部39は、図31および図32を参照して後述するように、MovieObjectファイルに含まれるMovieObjectを実行して、コンテンツの再生を制御する。具体的には、再生制御部39は、MovieObjectを実行して、仮想ファイルシステムに対して操作指示を与えることにより、ファイルシステムマージ処理部38を介して、ローカルストレージディレクトリ管理部34または光ディスクディレクトリ管理部35を制御して、光ディスク11またはローカルストレージ24に記録されているAVストリームやサブストリームなどを読み出させ、デコーダ26に供給させる。再生制御部39は、図1のデコーダ26を制御して、光ディスク11またはローカルストレージ24に記録されているAVストリームやサブストリームなどに含まれる音声データ、映像データ、または、テキスト字幕ファイルのテキストデータなどのデコード(再生)を行わせる。
MovieObjectなどコントローラ21により実行されるアプリケーションプログラムは、図13に示されるように、仮想ファイルシステムを介して、例えば、光ディスク11に記録されているファイル1やローカルストレージ24に記録されているファイル2を操作する。また、アプリケーションプログラムは、仮想ファイルシステムを介して、ローカルストレージ24に記録されているファイル2のメタデータリストを利用することができる。
このとき、アプリケーションプログラムは、仮想ファイルシステムが提供するAPI(Application Programming Interface)を利用して、各記録媒体に記録されているファイルの操作を要求する。仮想ファイルシステムのAPIは、さらに操作するファイルが記録されている記録媒体を管理するファイルシステムが提供するネイティブのAPIを内部で呼び出して、各記録媒体に記録されているファイルの操作を行なう。すなわち、図14に示されるように、仮想ファイルシステムは、アプリケーションプログラムに対して、記録媒体(ファイルシステム)の違いを隠蔽する役割を果たす。従って、アプリケーションプログラムは、ファイルが記録されている記録媒体の違いを意識せずに、同じAPIを利用して、各記録媒体に記録されているファイルを操作することができる。
なお、例えば、再生装置1がスタティックバインディング方式に設定されている場合、仮想ファイルシステムは、再生装置1に光ディスク11が装着されたとき、光ディスク11のファイルシステムとローカルストレージ24のファイルシステムがマージされることにより生成され、生成された仮想ファイルシステムがメモリ23に記憶される。この場合、ファイルの書き込みなどによりローカルストレージ24に記録されているディレクトリやファイルが変更されるごとに、仮想ファイルシステムは更新される。一方、再生装置1がダイナミックバインディング方式に設定されている場合、仮想ファイルシステムは、アプリケーションプログラムなどがAPIを呼び出し、ファイルの操作要求を行なうごとに生成される。
図15は、図1の本発明を適用したサーバ3の一実施の形態の構成を示すブロック図である。
CPU(Central Processing Unit)51は、ROM(Read Only Memory)52に記憶されているプログラム、または、記憶部58からRAM(Random Access Memory)53にロードされたプログラムに従って各種の処理を実行する。RAM53にはまた、CPU51が各種の処理を実行する上において必要なデータなどが適宜記憶される。
CPU51、ROM52、およびRAM53は、バス54を介して相互に接続される。このバス54にはまた、入出力インターフェイス55も接続される。
入出力インターフェイス55には、キーボード、マウスなどよりなる入力部56、LCD(Liquid Crystal Display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部57、ハードディスクなどより構成される記憶部58、ネットワーク2を介して再生装置1等と通信を行う通信部59が接続されている。記憶部58には、アクセスしてきた再生装置1に提供するコンテンツパッケージを格納するデータベース71が構築されている。
入出力インターフェイス55にはまた、必要に応じてドライブ60が接続される。ドライブ60には、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア61が装着される。
このような構成を有するサーバ3においては、CPU51により制御プログラムが実行されることで、例えば、図16の各機能部が実現される。
通信制御部81は、通信部59において行われる再生装置1との通信を制御し、例えば、再生装置1から送信されるコンテンツパッケージ一覧要求信号、または、コンテンツパッケージ送信要求信号を受信し、受信したコンテンツパッケージ一覧要求信号、または、コンテンツパッケージ送信要求信号をコンテンツパッケージ管理部82に供給する。また、通信制御部81は、コンテンツパッケージ一覧情報、または、コンテンツパッケージがコンテンツパッケージ管理部82から供給されてきたとき、それらをネットワーク2を介して再生装置1に送信する。
コンテンツパッケージ管理部82は、通信制御部81から供給されるコンテンツパッケージ一覧要求信号に基づいて、データベース71からダウンロード可能なコンテンツパッケージの情報を取得して、コンテンツパッケージ一覧情報を生成し、生成したコンテンツパッケージ一覧情報を通信制御部81に供給する。また、コンテンツパッケージ管理部82は、通信制御部81から供給されるコンテンツパッケージ送信要求信号に基づいて、データベース71から送信が要求されたコンテンツパッケージを取得し、取得したコンテンツパッケージを通信制御部81に供給する。
次に、以上のような構成を有する再生装置1とサーバ3の動作についてフローチャート
を参照して説明する。
まず、図17のフローチャートを参照して、再生装置1により実行されるコンテンツパッケージダウンロード処理について説明する。
ステップS1において、データ取得部33は、コンテンツパッケージ一覧情報の送信をサーバ3に要求する。具体的には、例えば、ユーザが操作入力部29を操作して、ダウンロード可能なコンテンツパッケージの一覧を表示させる処理を指示した場合、操作入力部29はその処理の指示を示す信号を操作入力取得部32に供給し、操作入力取得部32は、さらにその信号をデータ取得部33に供給する。データ取得部33は、インターネットインタフェース25を制御し、コンテンツパッケージ一覧要求信号をネットワーク2を介してサーバ3に送信する。
サーバ3は、後述する図30のステップS82において、コンテンツパッケージ一覧要求信号を受信し、それに対応して、コンテンツパッケージ一覧情報を再生装置1に送信する。
ステップS2において、メニュー画面表示制御部31は、ダウンロード可能なコンテンツパッケージの一覧を表示させる。具体的には、データ取得部33は、ネットワーク2およびインターネットインタフェース25を介して、サーバ3により送信されたコンテンツパッケージ一覧情報を取得し、取得したコンテンツパッケージ一覧情報をメニュー画面表示制御部31に供給する。メニュー画面表示制御部31は、コンテンツパッケージ一覧情報に基づいて、表示装置にダウンロード可能なコンテンツパッケージの一覧を表示させる。
ステップS3において、データ取得部33は、ダウンロードするコンテンツパッケージの選択結果を取得する。具体的には、例えば、ユーザが、操作入力部29を操作して、表示装置に表示されているコンテンツパッケージの一覧の中からダウンロードするコンテンツパッケージを選択した場合、操作入力部29は選択されたコンテンツパッケージを示す情報を、操作入力取得部32を介してデータ取得部33に供給する。
ステップS4において、データ取得部33は、ユーザにより選択されたコンテンツパッケージが過去にダウンロードしたコンテンツパッケージであるか否かを判定する。具体的には、図21を参照して後述するように、ダウンロードしたコンテンツパッケージに含まれるアップデートファイルをローカルストレージ24に記録させる場合、各アップデートファイルのメタデータリストが生成され、生成されたメタデータリストはアップデートファイルとともにローカルストレージ24に記録される。メタデータリストには、アップデートファイルの配信元の情報を格納するsourceと呼ばれるフィールドがあり、例えば、sourceにはアップデートファイルの配信元のURLが記録されている。
例えば、データ取得部33は、コンテンツパッケージ一覧情報に基づいて、ユーザにより選択されたコンテンツパッケージの配信元のURLをローカルストレージディレクトリ管理部34に供給する。ローカルストレージディレクトリ管理部34は、ローカルストレージ24に記録されているファイルの中から、データ取得部33から取得した配信元のURLと一致するsourceの値を持つファイルを検索し、その検索結果をデータ取得部33に供給する。データ取得部33は、その検索結果に基づいて、ローカルストレージ24に記録されているファイルの中にユーザにより選択されたコンテンツパッケージの配信元のURLと一致するsourceの値を持つファイルがない場合、すなわち、過去にそのURLで示される場所からコンテンツパッケージがダウンロードされていない場合、ユーザにより選択されたコンテンツパッケージが過去にダウンロードしたコンテンツパッケージではないと判定し、処理はステップS5に進む。
ステップS5において、データ取得部33は、インターネットインタフェース25を制御し、ユーザにより選択されたコンテンツパッケージのダウンロードを要求するコンテンツパッケージ送信要求信号をネットワーク2を介してサーバ3に送信する。
サーバ3は、後述する図30のステップS84において、コンテンツパッケージ送信要求信号を受信し、それに対応してユーザにより選択されたコンテンツパッケージを再生装置1に送信する。
ステップS6において、データ取得部33は、ネットワーク2およびインターネットインタフェース25を介して、サーバ3により送信されたコンテンツパッケージを受信し、受信したコンテンツパッケージをローカルストレージディレクトリ管理部34に供給する。
ステップS7において、コントローラ21は、コンテンツ更新処理を行なう。具体的には、図18を参照して後述するが、この処理によりコンテンツパッケージに含まれるアップデートファイルが1つずつ展開され、ローカルストレージ24に記録される。
ステップS8において、ローカルストレージディレクトリ管理部34は、コンテンツパッケージに含まれる全てのアップデートファイルについて処理したか否かを判定する。全てのアップデートファイルについて処理していないと判定された場合、処理はステップS7に戻り、ステップS8において全てのアップデートファイルについて処理したと判定されるまでコンテンツ更新処理が繰り返される。
ステップS8において、全てのアップデートファイルについて処理したと判定された場合、コンテンツパッケージダウンロード処理は終了する。
ステップS4において、ユーザにより選択されたコンテンツパッケージが過去にダウンロードしたコンテンツパッケージであると判定された場合、すなわち、ローカルストレージ24に記録されているファイルの中にユーザにより選択されたコンテンツパッケージの配信元のURLと一致するsourceの値を持つファイルがある場合、コンテンツパッケージのダウンロードは行なわれずに、コンテンツパッケージダウンロード処理は終了する。これにより、同じコンテンツパッケージ(アップデートファイル)が繰り返しダウンロードされることが防止される。
次に、図18のフローチャートを参照して、図17のステップS7のコンテンツ更新処理の詳細を説明する。
ステップS31において、ローカルストレージディレクトリ管理部34は、ローカルストレージ24にアップデートファイルを記録するディレクトリが存在するか否かを判定する。アップデートファイルは、アップデートファイルのMetadataのauthor_idとdisc_idに基づいて、ローカルストレージ24のルートディレクトリの直下にあるアップデートファイルのauthor_idの値の名前がつけられたディレクトリ(以下、author_idディレクトリと称する)の下のアップデートファイルのdisc_idの値の名前がつけられたディレクトリ(以下、disc_idディレクトリと称する)の下に記録される。すなわち、図19に示されるように、アップデートファイルは、author_idごとに分類され、さらにdisc_idごとに分類され、ローカルストレージ24に記録される。
ローカルストレージディレクトリ管理部34は、コンテンツパッケージに含まれるアップデートファイルの中から、今回のコンテンツ更新処理の対象となるアップデートファイル(以下、処理対象アップデートファイルと称する)を選び、処理対象アップデートファイルのauthor_idとdisc_idを調べる。ローカルストレージディレクトリ管理部34は、ローカルストレージ24のルートディレクトリの直下に、処理対象アップデートファイルを記録するauthor_idディレクトリがないか、または、author_idディレクトリの下に、処理対象アップデートファイルを記録するdisc_idディレクトリがない場合、アップデートファイルを記録するディレクトリが存在しないと判定し、処理はステップS32に進む。
ステップS32において、ローカルストレージディレクトリ管理部34は、アップデートファイルを記録するディレクトリを作成する。具体的には、ローカルストレージ24のルートディレクトリの直下に処理対象アップデートファイルを記録するauthor_idディレクトリがない場合、ローカルストレージディレクトリ管理部34は、ローカルストレージ24のルートディレクトリの直下に処理対象アップデートファイルのauthor_idと同じ名前のauthor_idディレクトリを作成する。そして、ローカルストレージディレクトリ管理部34は、author_idディレクトリの下に処理対象アップデートファイルのdisc_idと同じ名前のdisc_idディレクトリを作成する。
さらに、ローカルストレージディレクトリ管理部34は、図20に示されるように、作成したdisc_idディレクトリの下に、図8に示される光ディスク11のBDMVディレクトリより下の階層と同様の構成となるBACKUPディレクトリ、PLAYLISTディレクトリ、CLIPINFディレクトリ、STREAMディレクトリ、およびAUXDATAディレクトリを作成する。なお、図20の例において、author_idディレクトリの名称およびdisc_idディレクトリの名称とも「1」である。すなわち、図20のdisc_idディレクトリの下にはauthor_idおよびdisc_idがともに1であるアップデートファイルが記録される。
ステップS33において、ローカルストレージディレクトリ管理部34は、処理対象アップデートファイルのoperation_typeの値が0x01であるか否かを判定する。処理対象アップデートファイルのoperation_typeの値が0x01であると判定された場合、処理はステップS34に進む。
ステップS34において、ローカルストレージディレクトリ管理部34は、処理対象アップデートファイルをローカルストレージ24に記録させる。このとき、処理対象アップデートファイルがIndexファイルまたはMovieObjectファイルの場合、処理対象アップデートファイルはdisc_idディレクトリの下に記録され、処理対象アップデートファイルがPlayListファイルの場合、処理対象アップデートファイルはPLAYLISTディレクトリの下に記録され、処理対象アップデートファイルがClip Informationファイルの場合、処理対象アップデートファイルはCLIPINFディレクトリの下に記録され、処理対象アップデートファイルがClip AVストリームファイルやサブストリームファイルの場合、処理対象アップデートファイルはSTREAMディレクトリの下に記録される。処理対象アップデートファイルがそれ以外のファイルの場合、処理対象アップデートファイルはAUXDATAディレクトリの下に記録される。
ローカルストレージ24に記録されるアップデートファイルの名前は、図20に示されるように、ファイル名と拡張子の間に「.」(ピリオド)と4桁の数字の番号を挿入したものとされる。この4桁の数字はバージョン番号を示し、0000から始まり、新しいバージョンのアップデートファイルが記録されるごとに1ずつ増やされる。例えば、「01001.mpls」の名前のPlayListファイルのアップデートファイルをPLAYLISTディレクトリに記録する場合、PLAYLISTディレクトリに「01001.****.mpls(****はバージョン番号)」のファイル名のファイルが記録されていないとき、すなわち、「01001.mpls」の名前のPlayListファイルのアップデートファイルがまだ存在しないとき、アップデートファイルは「01001.0000.mpls」の名前で記録され、PLAYLISTディレクトリにすでに「01001.0000.mpls」のファイルが記録されているとき、アップデートファイルは「01001.0001.mpls」の名前で記録される。
ステップS35において、メタデータ生成部37は、ローカルストレージ24に記録されたアップデートファイルのメタデータリストを生成し、処理はステップS43に進む。具体的には、ローカルストレージディレクトリ管理部34は、コンテンツパッケージから処理対象アップデートファイルのMetadata(図9)を抽出し、抽出したMetadataをメタデータ生成部37に供給する。
図21は、メタデータリストのデータ構造を示している。メタデータ生成部37は、Metadataのauthor_id、disc_id、title_id、operation_type、version、display_name、およびpermissionの値をそのまま、メタデータリストのauthor_id、disc_id、title_id、operation_type、version、display_name、およびpermissionに設定する。また、メタデータ生成部37は、データ取得部33からコンテンツパッケージの配信元に関する情報(例えば、コンテンツパッケージが配信された場所のURLなど)を取得し、その情報をメタデータリストのsourceに設定する。すなわち、メタデータリストは、sourceを追加することによりアップデートファイルのMetadataを更新したものであり、アップデートファイルに関する情報が含まれる。
メタデータリストのsourceは、アップデートファイルの配信元の情報を示す1024バイトのフィールドである。sourceの値は、例えば、ISO/IEC 646規格に従い符号化される。上述したように、例えば、sourceには、コンテンツパッケージの配信元のURLが設定され、設定された値は、図17のステップS4の判定処理において、過去にダウンロードしたコンテンツパッケージを繰り返しダウンロードするのを防ぐために用いられる。
なお、sourceに設定されるコンテンツパッケージの配信元のURLにコンテンツパッケージの名称やアップデートファイルの名称を含めるようにしてもよい。また、例えば、ローカルストレージ24に記録されているアップデートファイルを削除する場合などに、図22に示されるように、ファイル名の代わりにアップデートファイルのdiplay_nameを画面に表示させることにより、ユーザにアップデートファイルの内容を具体的に分かりやすく伝えることができる。さらに、メタデータリストは、必ずしもアップデートファイル毎に設ける必要はなく、どのアップデートファイルのデータかを識別できるようにして、複数のアップデートファイルのメタデータリストを一括して1つのデータにより管理するようにしてもよい。
ステップS33において、処理対象アップデートファイルのoperation_typeの値が0x01でないと判定された場合、処理はステップS35に進む。なお、operation_typeが0x01以外の場合、処理対象アップデートファイルはPlayListファイルである。
ステップS36において、ローカルストレージディレクトリ管理部34は、再生装置1がスタティックバインディング方式に設定されているか否かを判定する。再生装置1がスタティックバインディング方式に設定されていると判定された場合、処理はステップS37に進む。
ステップS37において、光ディスクディレクトリ管理部35は、処理対象アップデートファイルにより更新される更新元のPlayListファイルを取得する。具体的には、光ディスクディレクトリ管理部35は、処理対象アップデートファイルのauthor_id、disc_id、およびファイル名を示す情報を光ディスクディレクトリ管理部35に供給する。光ディスクドライブ22は、光ディスクディレクトリ管理部35の制御の基に、処理対象アップデートファイルと同じauthor_idおよびdisc_idの光ディスク11から、処理対象アップデートファイルと同じファイル名のPlayListファイルを読み出し、読み出したPlayListファイルを光ディスクディレクトリ管理部35に供給する。
ステップS38において、光ディスクディレクトリ管理部35は、ステップS37の処理で、更新元のPlayListファイルを取得できたか否かを判定する。更新元のPlayListファイルを取得できたと判定された場合、処理はステップS39に進む。
ステップS39において、ローカルストレージディレクトリ管理部34は、処理対象アップデートファイルをプレイリスト更新部36に供給し、光ディスクディレクトリ管理部35は、更新元のPlayListファイルをプレイリスト更新部36に供給する。
ステップS40において、プレイリスト更新部36は、プレイリスト更新処理を行なう。プレイリスト更新処理の詳細については図23を参照して後述するが、この処理により、光ディスク11から読み出された更新元のPlayListファイルが、処理対象アップデートファイルに基づいて、更新される。
ステップS41において、プレイリスト更新部36は、ステップS40の処理で更新したPlayListファイルをローカルストレージディレクトリ管理部34に供給して、ローカルストレージディレクトリ管理部34は取得したPlayListファイルを、ステップS34と同様の処理により、ローカルストレージ24のPLAYLISTディレクトリに記録させる。
ステップS42において、メタデータ生成部37は、ステップS35の処理と同様に、ローカルストレージ24に記録されたPlayListファイルのメタデータリストを生成し、処理はステップS43に進む。この場合、メタデータリストは、PlayListファイルを更新するのに使用した処理対象アップデートファイルのMetadataに基づいて生成される。ただし、ステップS35の処理と異なり、operation_typeの値は0x01に更新される。これは、PlayListファイルが更新され、更新されたPlayListファイルがローカルストレージ24に記録されるため、今後このPlayListファイルに含まれるPlayListを使用する(PlayListを再生する)場合、改めてPlayListファイルを更新する必要がないことを示すためである。
ステップS38において、更新元のPlayListファイルを取得できなかったと判定された場合、例えば、処理対象アップデートファイルと同じauthor_idとdisc_idの光ディスク11が光ディスクドライブ22に装着されていない場合、処理はステップS34に進む。その後、ステップS34において、処理対象アップデートファイルがローカルストレージ24に記録され、ステップS35において、処理対象アップデートファイルのメタデータが生成され、処理はステップS43に進む。この場合、例えば、ローカルストレージ24に記録された処理対象アップデートファイルと同じauthor_idとdisc_idの光ディスク11が光ディスクドライブ22に装着され、PlayListファイルの更新が可能になった時点で、上述したステップS40乃至S42の処理が実行され、PlayListファイルが更新され、更新されたPlayListファイルがローカルストレージ24に記録される。
ステップS36において、再生装置1がダイナミックバインディング方式に設定されていると判定された場合、処理はステップS34に進む。その後、ステップS34において、処理対象アップデートファイルがローカルストレージ24に記録され、ステップS35において、処理対象アップデートファイルのメタデータが生成され、処理はステップS43に進む。
ステップS43において、メタデータ生成部37は、生成したメタデータリストをローカルストレージディレクトリ管理部34に供給し、ローカルストレージディレクトリ管理部34は、取得したメタデータリストをローカルストレージ24に記録させる。メタデータリストは、図20に示されるように、メタデータリストが対応するアップデートファイルと同じディレクトリに、アップデートファイルのファイル名の末尾に拡張子「.data」を付加した名前で記録される。
次に、図23を参照して、図18のステップS40のプレイリスト更新処理の詳細について説明する。
ステップS61において、プレイリスト更新部36は、処理対象アップデートファイルのoperation_typeの値が0x02であるか否かを判定する。処理対象アップデートファイルのoperation_typeの値が0x02であると判定された場合、処理はステップS62に進む。
ステップS62において、プレイリスト更新部36は、更新元のPlayListファイルに含まれるPlayListに処理対象アップデートファイルに含まれるSub Pathを追加し、プレイリスト更新処理は終了する。ここで、ステップS62の処理について、図24および図25を参照して、具体的に説明する。
図24に示されるように、光ディスク11には、PlayItem1から構成されるMain Path、および、SubPlayItem1から構成されるSub Path1を有するPlayList1(図24の左側のPlayList1)、PlayItem1が参照するClip AVストリーム1、および、SubPlayItem1が参照し、Clip AVストリーム1と同期して再生される吹き替え音声のデータであるオーディオストリーム(Audio Stream)1が記録されているものとする。この光ディスク11に記録されているコンテンツに対して、Clip AVストリーム1に同期して再生される字幕データであるグラフィックストリーム(Graphics Stream)1を追加するとともに、グラフィックストリーム1の再生区間を指定するSubPlayItem2により構成されるSub Path2をPlayList1に追加する場合について考える。
この場合、図25の左端の四角で囲まれた部分に示されるように、光ディスク11にはSub Path1を有するPlayList1ファイル、Clip AVストリーム1ファイル、およびオーディオストリーム1ファイルが記録されている。そして、図25の中央の四角で囲まれた部分に示されるように、サーバ3からダウンロードしたコンテンツパッケージには、Sub Path2を有するPlayList1ファイル、Clip AVストリーム1ファイル、およびグラフィックストリーム1ファイルが含まれているものとする。
プレイリスト更新部36は、コンテンツパッケージ内のPlayList1ファイルの中からSub Path2を抽出して、抽出したSub Path2を、光ディスク11から読み出された更新元のPlayList1ファイルに含まれるPlayList1に追加する。すなわち、光ディスク11に記録されているコンテンツ、コンテンツパッケージに含まれるコンテンツ、および更新されたPlayList1ファイルを合わせると、図25の右端の四角で囲まれた部分に示される状態となる。これにより、図24の右側に示されるSub Path2が追加されたPlayList1を再生することにより、Clip AVストリームの再生に同期して、オーディオストリーム1およびグラフィックストリーム1が再生されるようになる。従って、ユーザには、Clip AVストリームの再生に同期して再生されるグラフィックストリーム1が光ディスク11に新たに追加されたように見える。
ステップS61において、処理対象アップデートファイルのoperation_typeの値が0x02でないと判定された場合、処理はステップS63に進む。
ステップS63において、プレイリスト更新部36は、処理対象アップデートファイルのoperation_typeの値が0x03であるか否かを判定する。処理対象アップデートファイルのoperation_typeの値が0x03であると判定された場合、処理はステップS64に進む。
ステップS64において、プレイリスト更新部36は、更新元のPlayListファイルに含まれるPlayListに処理対象アップデートファイルに含まれるSubPlayItemを追加し、プレイリスト更新処理は終了する。ここで、ステップS64の処理について、図26および図27を参照して、具体的に説明する。
図26に示されるように、光ディスク11には、PlayItem1から構成されるMain Path、および、SubPlayItem1から構成されるSub Path1を有するPlayList1(図26の左側のPlayList1)、PlayItem1が参照するClip AVストリーム1、および、SubPlayItem1が参照し、Clip AVストリーム1と同期して再生される副音声のデータであるオーディオストリーム1が記録されているものとする。この光ディスク11に記録されているコンテンツに対して、Clip AVストリーム1に同期して、オーディオストリーム1とは別の時間帯に再生される別の副音声のデータであるオーディオストリーム2を追加するとともに、オーディオストリーム2の再生区間を指定するSubPlayItem2をSub Path1に追加する場合について考える。なお、図26においては、SubPlayItemをSPIと省略して記載している。
この場合、図27の左端の四角で囲まれた部分に示されるように、光ディスク11にはSubPlayItem1により構成されるSub Path1を有するPlayList1ファイル、Clip AVストリーム1ファイル、およびオーディオストリーム1ファイルが記録されている。そして、図27の中央の四角で囲まれた部分に示されるように、サーバ3からダウンロードしたコンテンツパッケージには、SubPlayItem2により構成されるSub Path1を有するPlayList1ファイル、Clip AVストリーム1ファイル、およびオーディオストリーム2ファイルが記録されているものとする。
プレイリスト更新部36は、コンテンツパッケージ内のPlayList1ファイルのSub Path1の中からSubPlayItem2を抽出して、抽出したSubPlayItem2を、光ディスク11から読み出された更新元のPlayList1ファイルに含まれるPlayList1に追加する。すなわち、光ディスク11に記録されているコンテンツ、コンテンツパッケージに含まれるコンテンツ、および更新されたPlayList1ファイルを合わせると、図27の右端の四角で囲まれた部分に示される状態となる。これにより、図26の右側に示されるSub Path1にSubPlayItem2が追加されたPlayList1を再生することにより、Clip AVストリームに同期して、オーディオストリーム1と別の時間帯にオーディオストリーム2が再生されるようになる。従って、ユーザには、Clip AVストリームに同期してオーディオストリーム1と別の時間帯に再生されるオーディオストリーム2が光ディスク11に追加されたように見える。
ステップS63において、処理対象アップデートファイルのoperation_typeの値が0x03でないと判定された場合、すなわち、処理対象アップデートファイルのoperation_typeの値が0x04の場合、処理はステップS65に進む。
ステップS65において、プレイリスト更新部36は、更新元のPlayListファイル内の参照するサブClipを新たに追加する(SubClip_entryを追加する)SubPlayItemにおいて、is_multi_Clip_entries(図6)の値が1であるか否かを判定する。is_multi_Clip_entriesの値が1でないと判定された場合、すなわち、SubClip_entryを追加するSubPlayItemが、現在1つのサブClipのみを参照している場合、処理はステップS66に進む。
ステップS66において、プレイリスト更新部36は、更新元のPlayListファイル内のSubClip_entryを追加するSubPlayItemのis_multi_Clip_entriesの値を1に設定する。
ステップS65において、SubClip_entryを追加するSubPlayItemにおいてis_multi_Clip_entriesの値が1であると判定された場合、すなわち、SubClip_entryを追加するSubPlayItemが、すでに2つ以上のサブClipを参照している場合、ステップS66の処理はスキップされ、処理はステップS67に進む。
ステップS67において、プレイリスト更新部36は、SubClip_entryを追加するSubPlayItemのnumber_of_Clip_entries(図6)の値を現在の値から1つ増やす。すなわち、SubClip_entryを追加するSubPlayItemが参照するサブClipの数の設定値を1つ増やす。
ステップS68において、プレイリスト更新部36は、更新元のPlayListファイルに含まれるSubPlayItemに処理対象アップデートファイルに含まれるSubClip_entryを追加し、プレイリスト更新処理は終了する。ここで、ステップS65乃至S68の処理について、図28および図29を参照して、具体的に説明する。
図28に示されるように、光ディスク11には、PlayItem1から構成されるMain Path、およびSubPlayItem1から構成されるSub Path1を有するPlayList1(図28の左側のPlayList1)、PlayItem1が参照するClip AVストリーム1、および、SubPlayItem1が参照し、AVストリーム1と同期して再生される吹き替え音声データであるオーディオストリーム1が記録されているものとする。この光ディスク11に記録されているコンテンツに対して、AVストリーム1に同期して再生される、オーディオストリーム1とは別の言語の吹き替え音声データであるオーディオストリーム2を追加するとともに、オーディオストリーム2の再生区間をSubPlayItem1により指定するようにする場合について考える。
この場合、図29の左端の四角で囲まれた部分に示されるように、光ディスク11にはSubPlayItem1により構成されるSub Path1を有するPlayList1ファイル、Clip AVストリーム1ファイル、およびオーディオストリーム1ファイルが記録されている。また、SubPlayItem1には、オーディオストリーム1ファイルを参照するための情報であるSubClip_entry1が登録されている。なお、この例では、上述したステップS66またはS67において、SubPlayItem1のis_multi_Clip_entriesまたはnumber_of_Clip_entriesの値が変更される。
そして、図29の中央の四角で囲まれた部分に示されるように、サーバ3からダウンロードしたコンテンツパッケージには、SubPlayItem1により構成されるSub Path1を有するPlayList1ファイル、Clip AVストリーム1ファイル、およびオーディオストリーム2ファイルが記録されているものとする。また、SubPlayItem1には、オーディオストリーム2ファイルを参照するための情報であるSubClip_entry2が登録されているものとする。
プレイリスト更新部36は、コンテンツパッケージ内のPlayList1ファイルに含まれるSub Path1のSubPlayItem1の中からSubClip_entry2を抽出して、抽出したSubClip_entry2を光ディスク11から読み出された更新元のPlayList1ファイルに含まれるSub Path1のSubPlayItem1に追加する。すなわち、光ディスク11に記録されているコンテンツ、コンテンツパッケージに含まれるコンテンツ、および更新されたPlayList1ファイルを合わせると、図29の右端の四角で囲まれた部分に示される状態となる。これにより、図28の右側のPlayList1に示されるように、PlayList1のSubPlayItem1からオーディオストリーム1またはオーディオストリーム2を参照できるようになり、Clip AVストリームに同期して、オーディオストリーム1またはオーディオストリーム2を選択して再生できるようになる。従って、ユーザには、Clip AVストリームに同期してオーディオストリーム1と切り替えて再生できるオーディオストリーム2が光ディスク11に追加されたように見える。
このようにして、PlayListファイルを更新する場合、operation_typeの値に基づいて、PlayListファイル全体を更新したり、PlayListファイルに含まれるPlayListにSub Path、SubPlayItem、または、SubClip_entryのみを追加して更新したりすることができる。従って、PlayListの更新が部分のみを更新することができ、PlayListの更新方法の自由度が高くなるとともに、PlayListの拡張性が向上する。また、PlayListファイルのアップデートファイルにはPlayListの更新に必要なデータのみを含むようにすることができ、コンテンツパッケージのデータ量を削減することができる。
次に、図30のフローチャートを参照して、図17の再生装置1のダウンロード処理に対応してサーバ3により実行されるコンテンツパッケージ提供処理について説明する。
ステップS81において、コンテンツパッケージ管理部82は、コンテンツパッケージ一覧情報を生成する。具体的には、通信制御部81は、上述した図17のステップS1の処理で、再生装置1から送信されたコンテンツパッケージ一覧要求信号をネットワーク2を介して受信し、受信したコンテンツパッケージ一覧要求信号をコンテンツパッケージ管理部82に供給する。コンテンツパッケージ管理部82は、データベース71から提供可能なコンテンツパッケージに関する情報を抽出し、コンテンツパッケージ一覧情報を生成する。
ステップS82において、コンテンツパッケージ管理部82は、生成したコンテンツパッケージ一覧情報を通信制御部81に供給し、通信制御部81は、取得したコンテンツパッケージ一覧情報をネットワーク2を介して再生装置1に送信する。
ステップS83において、コンテンツパッケージ管理部82は、再生装置1に送信するコンテンツパッケージを取得する。具体的には、通信制御部81は、上述した図17のステップS5の処理で再生装置1から送信されたコンテンツパッケージ送信要求信号をネットワーク2を介して受信し、受信したコンテンツパッケージ送信要求信号をコンテンツパッケージ管理部82に供給する。コンテンツパッケージ管理部82は、再生装置1により指定されたコンテンツパッケージをデータベース71から取得する。
ステップS84において、コンテンツパッケージ管理部82は、取得したコンテンツパッケージを通信制御部81に供給し、通信制御部81は、取得したコンテンツパッケージをネットワーク2を介して再生装置1に送信する。
以上のようにして、ネットワーク2経由でサーバ3から更新コンテンツパッケージをダウンロードすることにより、光ディスク11に記録されているコンテンツに対して新たにコンテンツを追加したり、光ディスク11に記録されているコンテンツを更新したりすることができるため、コンテンツの追加や更新が簡単にできる。また、複数のアップデートファイルを1つのコンテンツパッケージにまとめて配信することにより、効率的にアップデートファイルを提供することができ、また、アップデートファイルをダウンロードする回数を減らすことができる。従って、アップデートファイルのダウンロードに要するユーザの手間が省けるとともに、コンテンツの更新や追加に要する時間を短縮することができる。さらに、各アップデートファイルのメタデータリストを記録することにより、アップデートファイルに関する詳細な情報を容易に取得することができるようになる。
次に、図31および図32のフローチャートを参照して、再生装置1により実行される再生処理について説明する。なお、この処理は、ユーザが操作入力部29を操作するなどにより、再生処理の開始が指示されたとき開始される。
ステップS101において、ファイルシステムマージ処理部38は、再生装置1がダイナミックバインディング方式に設定されているか否かを判定する。再生装置1がダイナミックバインディング方式に設定されていると判定された場合、処理はステップS102に進む。
ステップS102において、ファイルシステムマージ処理部38は、仮想ファイルシステムを生成する。具体的には、光ディスクドライブ22は、光ディスクディレクトリ管理部35の制御の基に、光ディスク11からファイルシステム、author_id、およびdisc_idを読み出し、読み出したファイルシステム、author_id、およびdisc_idを光ディスクディレクトリ管理部35に供給する。光ディスクディレクトリ管理部35は、取得したファイルシステム、author_id、およびdisc_idをファイルシステムマージ処理部38に供給する。ローカルストレージディレクトリ管理部34は、ローカルストレージ24からファイルシステムを読み出し、読み出したファイルシステムをファイルシステムマージ処理部38に供給する。ファイルシステムマージ処理部38は、光ディスク11のファイルシステムおよびローカルストレージ24のファイルシステムをマージして、仮想ファイルシステムを生成する。
例えば、author_idとdisc_idの値がともに「1」である光ディスク11が再生装置1に装着され、その光ディスク11に図33に示される構成のディレクトリおよびファイルを有するファイルシステムが記録されており、光ディスク11のローカルストレージ24には、図20を参照して上述した構成のディレクトリおよびファイルを有するファイルシステムが記録されている場合について考える。なお、図33に示される光ディスク11のファイルシステムのディレクトリ構成は、図8を参照して上述した光ディスク11のファイルシステムのディレクトリ構成と同様である。
まず、ファイルシステムマージ処理部38は、仮想ファイルシステム上に、VBDMVの名前がつけられたディレクトリを作成する。次に、ファイルシステムマージ処理部38は、ローカルストレージ24のファイルシステムの光ディスク11のauthor_idと同じ名前のauthor_idディレクトリの下にある光ディスク11のdisc_idと同じ名前のdisc_idディレクトリより下の階層のディレクトリおよびファイルと、光ディスク11のBDMVディレクトリより下の階層のディレクトリおよびファイルを、仮想ファイルシステムのVBDMVディレクトリの下にマージして配置する。いまの場合、図20のローカルストレージ24のrootディレクトリから2階層目の「1」の名前がつけられたディレクトリより下の階層ディレクトリおよびファイル、図33の光ディスク11のBDMVディレクトリより下の階層のディレクトリおよびファイルが、ファイル名、ディレクトリ名およびディレクトリ構成は変更されずにそのままマージされて、図34に示される仮想ファイルシステムが生成される。
すなわち、仮想ファイルシステムのVDBMVディレクトリの下には、図33の光ディスク11のBDMVディレクトリ、および、図20のローカルストレージ24のrootディレクトリから2階層目の「1」の名前がつけられたdisc_idディレクトリに格納されているIndexファイルとMovieObjectファイル、およびそのメタデータリストが格納され、PLAYLISTディレクトリには、図33の光ディスク11のPLAYLISTディレクトリおよび図20のローカルストレージ24のPLAYLISTディレクトリに格納されている全てのPlayListファイルおよびそのメタデータリストが格納され、CLIPINFディレクトリには、図33の光ディスク11のCLIPINFディレクトリおよび図20のローカルストレージ24のCLIPINFディレクトリに格納されている全てのClipInformationファイルおよびそのメタデータリストが格納され、STREAMディレクトリには、図33の光ディスク11のSTREAMディレクトリおよび図20のローカルストレージ24のSTREAMディレクトリに格納されている全てのClip AVストリームファイルとサブストリームファイルおよびそのメタデータリストが格納され、AUXDATAディレクトリには、図33の光ディスク11のAUXDATAディレクトリおよび図20のローカルストレージ24のAUXDATAディレクトリに格納されている全てのファイルおよびそのメタデータリストが格納される。
また、上述したように、仮想ファイルシステムは各種のAPIを提供している。例えば、指定したファイルを開くopen()、指定したファイルを閉じるclose()、指定したファイルの読み出し位置又は書き込み位置を設定するseek()、指定したファイルの状態を取得するstat()、指定したファイルを読み出すread()、指定したファイルを書き込むwrite()などのAPIが提供される。再生制御部39などにより実行されるMovieObjectなどのアプリケーションプログラムは、これらのAPIを利用して、光ディスク11またはローカルストレージ24に記録されているファイルを操作する。
なお、この仮想ファイルシステムでは、ローカルストレージ24に記録されているファイルを、ファイル名の中間のバージョン番号を除いたファイル名(例えば、図34の「Index.0001.bdmv」の「.0001」を除いた「Index.bdmv」)により取り扱う。また、仮想ファイルシステムは、APIにより指定されたファイルが光ディスク11およびローカルストレージ24に複数の異なるバージョンのファイルが存在する場合(例えば、図34に示されるように「Index.bdmv」について、「Index.bdmv」、「Index.0000.bdmv」、および「Index.0001.bdmv」が存在する場合)、最新のバージョンのファイル(例えば、「Index.0001.bdmv」)を対象にしてAPIにより指示された操作を行なう。
また、仮想ファイルシステムは、メタデータリストを操作するgetProperty()とsetProperty()の2種類のAPIを提供する。getProperty()は、操作の対象となるメタデータリストの仮想ファイルシステム上の絶対パスの名称と、読み出したいメタデータの要素名(例えば、author_id)の2つの引数を呼び出し元が設定することにより、指定されたメタデータリストから指定された要素のメタデータを読み出し、読み出したメタデータを呼び出し元に戻り値として返す。setProperty()は、操作の対象となるメタデータリストの仮想ファイルシステム上の絶対パスの名称と、値を設定したいメタデータの要素名(例えば、author_id)と、設定したいメタデータの値の3つの引数を呼び出し元が設定することにより、指定されたメタデータリストの指定された要素に指定された値を設定する。
図31の説明に戻り、ファイルシステムマージ処理部38は、生成した仮想ファイルシステムを再生制御部39に供給する。
ステップS101において、再生装置1がスタティックバインディング方式に設定されていると判定された場合、ステップS102の処理はスキップされ、処理はステップS103に進む。なお、この場合、図34に示される仮想ファイルシステムは、光ディスク11が再生装置1に装着されたときにすでに生成され、メモリ23に記憶されている。
ステップS103において、メニュー画面表示制御部31は、表示装置に再生メニュー画面を表示させる。具体的には、再生制御部39は、仮想ファイルシステムに対して、Indexファイルの読出しを要求する。ファイルシステムマージ処理部38は、読み出しが要求されたIndexファイルの最新のバージョンのファイルが、光ディスク11に記録されている場合、光ディスクディレクトリ管理部35にファイルの読出しを要求し、ローカルストレージ24に記録されている場合、ローカルストレージディレクトリ管理部34にファイルの読出しを要求する。
光ディスクディレクトリ管理部35がIndexファイルの読み出しの要求を受けた場合、光ディスクドライブ22は、光ディスクディレクトリ管理部35の管理の基に、光ディスク11からIndexファイルを読み出し、読み出したIndexファイルを光ディスクディレクトリ管理部35に供給する。光ディスクディレクトリ管理部35は、取得したIndexファイルをファイルシステムマージ処理部38を介して再生制御部39に供給する。ローカルストレージディレクトリ管理部34がIndexファイルの読み出しの要求を受けた場合、ローカルストレージディレクトリ管理部34は、ローカルストレージ24から最新のバージョンのIndexファイルを読み出し、読み出したIndexファイルを、ファイルシステムマージ処理部38を介して再生制御部39に供給する。
再生制御部39は、取得したIndexファイルをメニュー画面表示制御部31に供給する。メニュー画面表示制御部31は、Indexファイルに基づいて、再生メニュー画面を表示装置に表示させる。
ステップS104において、再生制御部39は、ユーザにより選択されたMovieObjectを実行する。具体的には、ユーザは操作入力部29を操作して、表示装置に表示されている再生メニュー画面の中から1つの項目を選択する。操作入力部29は、ユーザにより選択された項目を示す情報を、操作入力取得部32を介して、再生制御部39に供給する。再生制御部39は、Indexファイルに基づいて、その項目が選択されたときに実行するMovieObjectの情報を取得する。再生制御部39は、ステップS103の処理でIndexファイルを取得した場合と同様の処理により、実行するMovieObjectを含むMovieObjectファイルのうち最新のバージョンのファイルを光ディスク11またはローカルストレージ24から取得する。再生制御部39は、取得したMovieObjectファイルに含まれるMovieObjectを実行する。再生制御部39がMovieObjectを実行することにより、MovieObjectからPlayListの再生が指示される。
ステップS105において、再生制御部39は、MovieObjectにより再生が指示されたPlayListを含むPlayListファイルの読み出しを、仮想ファイルシステムに対して要求する。
ステップS106において、ファイルシステムマージ処理部38は、再生制御部39により読み出しが指示されたPlayListファイルのうち最新のバージョンのファイルを、ステップS103の処理でIndexファイルを取得した場合と同様の処理により光ディスク11またはローカルストレージ24から取得する。このとき、ファイルシステムマージ処理部38は、取得したPlayListファイルのメタデータリストのoperation_typeの値も合わせて取得する。
ステップS107において、ファイルシステムマージ処理部38は、取得したPlayListファイルの更新が必要であるか否かを判定する。取得したPlayListファイルの更新が必要であると判定された場合、すなわちPlayListファイルのoperation_typeの値が0x02乃至0x04である場合、処理はステップS108に進む。
ステップS108において、ファイルシステムマージ処理部38は、ステップS106の処理で取得したPlayListファイルにより更新される更新元のPlayListファイルを、ステップS103の処理でIndexファイルを取得した場合と同様の処理により、光ディスク11から取得する。ファイルシステムマージ処理部38は、ステップS106およびS108の処理で取得した新旧のPlayListファイルをプレイリスト更新部36に供給する。
ステップS109において、プレイリスト更新部36は、ステップS108の処理で取得した新旧のPlayListファイルに基づいて、図23を参照して上述したプレイリスト更新処理を実行する。
ステップS110において、プレイリスト更新部36は、更新したPlayListファイルをファイルシステムマージ処理部38を介して、再生制御部39に供給し、処理はステップS112に進む。
ステップS107において、PlayListファイルの更新が必要でないと判定された場合、すなわち、取得したPlayListファイルが、光ディスク11から読み出されたPlayListファイルまたはoperation_typeの値が1のPlayListファイルであり、PlayListファイルを更新せずにそのまま使用できる場合、処理はステップS111に進む。
ステップS111において、ファイルシステムマージ処理部38は、ステップS106の処理で取得したPlayListファイルを再生制御部39に供給し、処理はステップS112に進む。
ステップS112において、再生制御部39は、取得したPlayListファイルに含まれる、MovieObjectにより指定されたPlayListを再生する。
PlayListの再生の開始に伴い、再生中のPlayListに含まれるPlayItemまたはSubPlayItemがClip Informationの参照を開始する。
ステップS113において、再生制御部39は、再生中のPlayListに含まれるPlayItemまたはSubPlayItemが参照するClipInformationを含むClipInformationファイルのうち最新のバージョンのファイルを、ステップS103の処理でIndexファイルを取得した場合と同様の処理により光ディスク11またはローカルストレージ24から取得する。
そして、PlayItemまたはSubPlayItemによりタイムスタンプにより指定される各Clipへのアクセスポイントが、Clip informationによりClipに含まれるClip AVストリームファイルやサブストリームファイルであるストリームファイルへのアドレスに変換され、ストリームファイルに対するアクセスが行なわれる。
ステップS114において、再生制御部39は、光ディスク11またはローカルストレージ24に記録されているストリームをデコーダ26に供給させる。具体的には、再生制御部39は、PlayItemまたはSubPlayItemからClipInformationを介してアクセスされるストリームの供給を、仮想ファイルシステムに対して要求する。ファイルシステムマージ処理部38は、供給が要求されたストリームを含む最新のバージョンのストリームファイルが、光ディスク11に記録されている場合、光ディスクディレクトリ管理部35にストリームの供給を要求し、ローカルストレージ24に記録されている場合、ローカルストレージディレクトリ管理部34にストリームの供給を要求する。
光ディスクディレクトリ管理部35がストリームの供給の要求を受けた場合、光ディスクドライブ22は、光ディスクディレクトリ管理部35の管理の基に、光ディスク11に記録されているストリームファイルのPlayItemまたはSubPlayItemによりアクセスを指示された位置からストリームの読み出しを開始し、読み出したストリームを順次デコーダ26に供給する。
ローカルストレージディレクトリ管理部34がストリームの供給の要求を受けた場合、ローカルストレージディレクトリ管理部34は、ローカルストレージ24に記録されているストリームファイルのPlayItemまたはSubPlayItemによりアクセスを指示された位置からストリームの読み出しを開始し、読み出したストリームを順次ローカルストレージ24からデコーダ26に供給させる。
ステップS115において、デコーダ26は、再生制御部39の基に、取得したストリームを順次デコードし、得られたビデオ信号とオーディオ信号を外部の表示装置に供給する。表示装置においては、デコーダ26によりデコードされた信号に基づいて、コンテンツの出力(映像の表示、音声の出力)が行われる。
なお、この再生処理は、ユーザが操作入力部29を操作するなどにより、再生処理の終了が指示されたり、MovieObjectの実行が終了したとき終了される。また、ステップS105以降の処理は、例えば、MovieObjectから新たなPlayListの再生が指示されたり、PlayItemまたはSubPlayItemが切り替わり、新たなClip参照されたりするごとに、適宜実行される。
このようにして、光ディスク11に記録されているコンテンツの再生に同期させて、サーバ3から取得し、ローカルストレージ24に記録されている更新用のコンテンツや新たに追加したコンテンツを再生することができる。また、アップデートファイルはローカルストレージ24に保管されるため、一度ダウンロードすれば、光ディスク11に記録されているコンテンツを再生させるごとに、それに同期してアップデートファイルに含まれるコンテンツが再生される。
さらに、仮想ファイルシステムを生成して、仮想ファイルシステムを介して、記録されている記録媒体の違いに関わらず同じAPIによりファイルを操作することができるようにしたことにより、MovieObjectなどのアプリケーションプログラムの開発が容易になるとともに、記録媒体の種類が異なる再生装置においても、同じアプリケーションプログラムを使用でき、アプリケーションプログラムの移植性が高くなる。また、スタティックバインディング方式とダイナミックバインディング方式の2つの更新方式を設けることにより、再生装置1のローカルストレージ24の記録容量やコントローラ21の処理能力などに応じて、仮想ファイルシステムやPlayList更新処理の方法を柔軟に切り替えることができるようになる。
なお、アップデートファイルをローカルストレージ24に記録せずに、光ディスク11に記録されているコンテンツの再生時など、アップデートファイルが必要になるごとに、アップデートファイルをサーバ3からダウンロードするようにしてもよい。
以上のように、着脱可能なデータ記録媒体に記録されている第1の再生制御データに基づいて再生されるデータ記録媒体に記録されているAVストリームに同期させて再生させるコンテンツデータ、コンテンツデータに関する情報を含む第1のメタデータ、コンテンツデータの再生の制御に関するデータであるコンテンツデータ再生制御データを含む第2の再生制御データ、および、第2の再生制御データに関する情報を含む第2のメタデータを含むコンテンツ更新データを取得し、第2の再生制御データおよび第2のメタデータに基づいて、第1の再生制御データを更新し、更新された第1の再生制御データに基づいて、AVストリームおよびコンテンツデータを同期させて再生させるようにAVストリームおよびコンテンツデータの再生を制御した場合には、データ記録媒体に記録されているコンテンツを再生することができる。また、簡単に、データ記録媒体に記録されているコンテンツに対して新たなコンテンツを追加したり、データ記録媒体に記録されているコンテンツを更新して、コンテンツを再生することができる。
ネットワークを介して接続されている、着脱可能なデータ記録媒体に記録されているAVストリームをデータ記録媒体に記録されている第1の再生制御データに基づいて再生する再生装置からの要求に応じて、AVストリームに同期させて再生させるコンテンツデータ、コンテンツデータに関する情報を含む第1のメタデータ、コンテンツデータの再生の制御に関するデータであるコンテンツデータ再生制御データを含む第2の再生制御データ、および、第2の再生制御データに関する情報を含む第2のメタデータを含むコンテンツ更新データをデータベースから取得し、コンテンツ更新データの再生装置への送信を制御した場合には、データ記録媒体に記録されているコンテンツのアップデートファイルを提供することができる。また、本発明によれば、より効率的にアップデートファイルを提供することができる。
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。
一連の再生装置1の処理をソフトウェアにより実行させる場合には、制御プログラムをローカルストレージ24に組み込まれた状態で提供する以外に、インターネットインタフェース25を介してネットワーク2に接続されるサーバから制御プログラムを受信したり、制御プログラムが記録されたリムーバブルメディア28を提供して、リムーバブルメディア28をドライブ27に装着し、リムーバブルメディア28から制御プログラムを読み込んだりして、取得した制御プログラムをメモリ23またはローカルストレージ24にインストールさせることも可能である。
また、一連のサーバ3の処理をソフトウェアにより実行させる場合には、制御プログラムをROM52または記憶部58に組み込まれた状態で提供する以外に、通信部59を介してネットワーク2に接続される他のサーバから制御プログラムを受信したり、制御プログラムが記録されたリムーバブルメディア61を提供して、リムーバブルメディア61をドライブ60に装着し、リムーバブルメディア61から制御プログラムを読み込んだりして、取得した制御プログラムをRAM53または記憶部58にインストールさせることも可能である。
なお、本明細書において、プログラム格納媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
1 再生装置, 3 サーバ, 11 光ディスク, 21 コントローラ, 22 光ディスクドライブ, 24 ローカルストレージ, 26 デコーダ, 27 ドライブ, 28 リムーバブルメディア, 31 メニュー画面表示制御部, 32 操作入力取得部, 33 データ取得部, 34 ローカルストレージディレクトリ管理部, 35 光ディスクディレクトリ管理部, 36 プレイリスト更新部, 37 メタデータ生成部, 38 ファイルシステムマージ処理部, 51 CPU, 58 記憶部, 71 データベース, 81 通信制御部, 82 コンテンツパッケージ管理部