以下、図面を参照しながら本実施形態について説明する。
まず最初に、DVDビデオ規格との互換性を考慮したディスクのデータ構造から説明する。
図1、図2に、後述する図3のDVDビデオプレーヤで再生可能なDVDビデオディスクのデータ構造の一例を示す。
図1は、標準DVDビデオディスクD1のデータ構造の一例を示す図である。標準DVDビデオディスクD1のDVDビデオエリア3は、DVDビデオコンテンツC1(MPEG2プログラムストリーム構造を持つ)を格納する。
一方、図2は、エンハンスドDVDビデオディスクD2のデータ構造の一例を示す図である。エンハンスドDVDビデオディスクD2のDVDビデオエリアは、DVDビデオ規格と同じデータ構造のDVDビデオコンテンツC1(MPEG2プログラムストリーム構造を持つ)を格納する。さらに、エンハンスドDVDビデオディスクD2の他の記録エリア4は、ビデオコンテンツの再生をバラエティに富んだものにできるエンハンスド・ナビゲーション(以下ENAVと略記する)コンテンツC21を格納する。なお、記録エリア4は、DVDビデオ規格でも存在が認められている。
ここで、DVDビデオディスクの基本的なデータ構造について説明する。すなわち、DVDビデオディスクの記録エリアは、内周から順にリードインエリア1、ボリュームスペース、およびリードアウトエリア5を含んでいる。ボリュームスペースは、ボリューム/ファイル構造情報エリア2、およびDVDビデオエリア(DVDビデオゾーン)3を含み、さらにオプションで他の記録エリア(DVDアザーゾーン)4を含むことができる。
上記ボリューム/ファイル構造情報エリア2は、UDF(Universal Disk Format)ブリッジ構造のために割り当てられたエリアである。UDFブリッジフォーマットのボリュームは、ISO/IEC13346のパート2に従って認識されるようになっている。このボリュームを認識するスペースは、連続したセクタからなり、図1、図2のボリュームスペースの最初の論理セクタから始まる。その最初の16論理セクタは、ISO9660で規定されるシステム使用のために予約されている。従来のDVDビデオ規格との互換性を確保するには、このような内容のボリューム/ファイル構造情報エリア2が必要となる。
また、DVDビデオエリア3には、ビデオマネージャVMG30という管理情報と、ビデオタイトルセットVTS(VTS#1〜VTS#n)というビデオコンテンツが1つ以上記録されている。VMG30は、DVDビデオエリア3に存在する全てのVTSに対する管理情報であり、制御データVMGI、VMGメニュー用データVMGM_VOBS(オプション)、およびVMGのバックアップデータを含んでいる。また、各VTSは、そのVTSの制御データVTSI、VTSメニュー用データVTSM_VOBS(オプション)、そのVTS(タイトル)の内容(映画等)のデータVTSTT_VOBS、およびVTSIのバックアップデータを含んでいる。従来のDVDビデオ規格との互換性を確保するには、このような内容のDVDビデオエリアも必要となる。
各タイトル(VTS#1〜VTS#n)の再生選択メニュー等は、VMGを用いてプロバイダ(DVDビデオディスクの制作者)により予め与えられ、特定タイトル(例えばVTS#1)内での再生チャプタ選択メニューや記録内容(セル)の再生手順等は、VTSIを用いてプロバイダにより予め与えられている。従って、ディスクの視聴者(DVDビデオプレーヤのユーザ)は、予めプロバイダにより用意されたVMG/VTSIのメニューやVTSI内の再生制御情報(プログラムチェーン情報PGCI)に従ってそのディスク1の記録内容を楽しむことができる。しかし、DVDビデオ規格では、視聴者(ユーザ)が、プロバイダが用意したVMG/VTSIと異なる方法でVTSの内容(映画や音楽)を再生することはできない。
プロバイダが用意したVMG/VTSIと異なる方法でVTSの内容(映画や音楽)を再生したり、プロバイダが用意したVMG/VTSIとは異なる内容を付加して再生したりする仕組みのために用意したのが、図2のエンハンスドDVDビデオディスクD2である。このディスクD2に含まれるENAVコンテンツC21は、DVDビデオ規格に基づき製造されたDVDビデオプレーヤではアクセスできない(仮にアクセスできたとしてもその内容を利用できない)が、この発明の一例のDVDビデオプレーヤ(図3のプレーヤ等)ではアクセスでき、その再生内容を利用できるようになっている。
ENAVコンテンツC21、C22は、音声、静止画、フォント・テキスト、動画、アニメーション等のデータと、これらの再生を制御するための情報であるENAVドキュメント(これはMarkup/Script言語で記述されている)を含むように構成される。この再生を制御するための情報には、ENAVコンテンツ(音声、静止画、フォント・テキスト、動画、アニメーション等から構成される)および/またはDVDビデオコンテンツC1の再生方法(表示方法、再生手順、再生切換手順、再生対象の選択等)が Markup言語や Script言語を用いて記述されてる。例えば、Markup言語として、HTML(Hyper Text Markup Language)/XHTML(eXtensible Hyper Text Markup Language)やSMIL(Synchronized Multimedia Integration Language)、Script言語として、ECMA(European Computer Manufacturers Association)Script や JavaScriptのような Script言語などを組み合わせながら用いることができる。
ここで、図2のエンハンスドDVDビデオディスクD2は、他の記録エリア以外の内容がDVDビデオ規格に従っているので、既に普及しているDVDビデオプレーヤを用いても、DVDビデオエリアに記録されたビデオコンテンツを再生できる(つまり従来のDVDビデオディスクD1と互換性がある)。
他の記録エリアに記録されたENAVコンテンツC21は従来のDVDビデオプレーヤでは再生できない(あるいは利用できない)が、この発明の一例に係るDVDビデオプレーヤ(図3)では再生でき利用できる。従って、この発明の一例に係るDVDビデオプレーヤを用いENAVコンテンツC21(さらにはENAVコンテンツC22)を再生すれば、プロバイダが予め用意したVMG/VTSIの内容だけに限定されることなく、よりバラエティに富んだビデオ再生が可能になる。
図3は、この発明のエンハンスドDVDビデオディスク(図2)を再生するためのDVDビデオプレーヤの一例を示す図である。このDVDビデオプレーヤは、図2に示すDVDビデオ規格と互換性を持ったエンハンスドDVDビデオディスクD2からその記録内容(DVDビデオコンテンツC1および/またはENAVコンテンツC21)を再生し処理するものであり、また、インターネット等の通信回線からENAVコンテンツC22を取り込み処理するものである。なお、ENAVコンテンツC21及びENAVコンテンツC22は拡張情報の一つである。
図3のDVDビデオプレーヤは、DVDビデオ再生エンジン100、ENAVエンジン200、ディスク部300、ユーザ・インターフェース部400を備えている。DVDビデオ再生エンジン100は、エンハンスドDVDビデオディスクD2上に記録されたMPEG2プログラムストリーム(DVDビデオコンテンツC1)を再生し処理する。ENAVエンジン200は、ENAVコンテンツC21、C22を再生し処理する。ディスク部300は、エンハンスドDVDビデオディスクD2に記録されたDVDビデオコンテンツC1および/またはENAVコンテンツC21を読み出す。ユーザ・インターフェース部400は、プレーヤのユーザによる入力(ユーザオペレーション/ユーザ操作)をユーザ・イベントとして伝達する。
また、ENAVエンジン200は、インターネット接続部211を備える。インターネット接続部211は、インターネット等の通信回線に接続するための通信手段として機能する。さらに、ENAVエンジン200は、プリロード・ダウンロード・バッファ部209、XHTML+SMIL/CSSパーサ210、XHTML/CSSレイアウト・マネージャ207、ECMAScriptインタープリタ205、SMILタイミング・エンジン206、ENAVインターフェース・ハンドラ202、ユーザ・イベント・コントローラ201、エレメント・デコーダ208、AVレンダラ203、バッファ・マネージャ204を含んでいる。
なお、図3のブロック構成において、DVDビデオ再生制御部102、DVDビデオデコーダ101、ユーザ・イベント・コントローラ201、ENAVインターフェース・ハンドラ202、XHTML+SMIL/CSSパーサ210、ECMAScriptインタープリタ205、SMILタイミング・エンジン206、XHTML/CSSレイアウト・マネージャ207、AVレンダラ203、エレメント・デコーダ208、バッファ・マネージャ204等は、図示しない組込プログラム(ファームウエア)により各ブロック構成の機能を果たすマイクロコンピュータ(および/またはハードウエアロジック)により実現できる。このファームウエアを実行する際に使用するワークエリアは、各ブロック構成内の図示しない半導体メモリ(および必要に応じてハードディスク)を用いて得ることができる。
DVDビデオ再生エンジン100は、既存のDVDビデオ規格基づくDVDビデオコンテンツC1を再生するための装置であり、ディスク部300より読み込んだこんだDVDビデオコンテンツC1をデコードするDVDビデオデコーダ101およびDVDビデオコンテンツC1の再生制御を行うDVDビデオ再生制御部102を含んで構成される。
DVDビデオデコーダ101は、既存のDVDビデオ規格に基づく映像データ、音声データ、および副映像データをそれぞれデコードし、デコードされた映像データ(前述の映像データと前述の副映像データを合成したもの)と音声データをそれぞれ出力する機能を持っている。これにより、DVDビデオ再生エンジン100は、既存のDVDビデオ規格に基づいて製造される通常のDVDビデオプレーヤの再生エンジンと同じ機能を持つようになる。つまり、図3のプレーヤは、MPEG2プログラムストリーム構造の映像、音声等のデータを通常のDVDビデオプレーヤと同様に再生することができ、これにより既存のDVDビデオディスク(従来のDVDビデオ規格に則ったディスク)D1の再生が可能となる。
これに加えて、DVDビデオ再生制御部102は、ENAVエンジン200から出力される“DVDコントロール”信号に応じて、DVDビデオコンテンツC1の再生を制御することもできるように構成されている。具体的には、DVDビデオ再生制御部102は、DVDビデオ再生時に、DVDビデオ再生エンジン100において、あるイベント(例えばメニューコールやタイトルジャンプ)が発生した際に、ENAVエンジン200に対して、DVDビデオコンテンツC1の再生状況を示す“DVDトリガ”信号を出力することができる。その際(DVDトリガ信号の出力と同時に、あるいはその前後の適当なタイミングで)、DVDビデオ再生制御部102は、DVDビデオプレーヤのプロパティ情報(例えばプレーヤに設定されている音声言語、副映像字幕言語、再生動作、再生位置、各種時間情報、ディスクの内容等)を示す“DVDステータス”信号をENAVエンジン200に出力することができる。
ユーザ・イベントコントローラ201は、ユーザ操作に基づく制御を行うためのもので、ユーザ操作(メニューコール、タイトルジャンプ、再生スタート、再生停止、再生ポーズ、その他)に対応した“ユーザ・イベント”をユーザ・インターフェース部400から受け取る。その上で、ユーザ・イベントコントローラ201は、ENAVインターフェース・ハンドラ202から送られる“ユーザ・イベント・コントロール”信号に基づいて、以下のうちのいずれかの処理を実行する。
1、“ユーザ・トリガ”信号をENAVインターフェース・ハンドラ202に伝達する。
2、“ユーザ・トリガ”信号をDVDビデオ再生制御部102に直接伝達する。
3、ユーザ・イベントを禁止する(例えばコンテンツ・プロバイダが意図しないDVDビデオの再生を行う可能性があるため)。
このとき、前述の“ユーザ・イベント・コントロール”信号は具体的には、例えば以下に示すような制御を行う。
1、DVDビデオ再生エンジン100の映像をAVレンダラ203より出力する場合において、ユーザ・イベント信号はユーザ・トリガ信号としてDVDビデオ再生エンジン100に直接伝達される。この場合、ユーザ操作は通常のDVDビデオ再生時のものと全く同じものであるからである。
2、ENAVエンジン200の映像をAVレンダラ203より出力する場合、あるいはDVDビデオ再生エンジン100の映像とENAVエンジン200の映像を合成して同時にAVレンダラ203より出力する場合、以下のような制御が行なわれる。
2−1、ユーザイベント信号がユーザ・トリガ信号としてENAVインターフェース・ハンドラ202に出力されると、ENAVインターフェース・ハンドラ202は、そのイベント(メニューコール等)に対応するファンクション・コールを、DVDコントロール信号として、DVDビデオ再生エンジン100のDVDビデオ再生制御部102に出力する。
2−1、システムが意図しないDVDビデオの再生(例えば現在稼働中のDVDビデオ再生エンジン100で対応できない再生方法であったり、現在のDVD規格で定められているユーザオペレーションコントロールUOPによって操作が禁止されたもの)が行われる可能性がある場合、ユーザ・イベント信号の伝達をブロック(禁止または阻止)する。
なお、ENAVインターフェース・ハンドラ202に伝達されたユーザ・イベント信号(ユーザ・トリガ信号)の内容は、“AV出力コントロール”信号として、AVレンダラ203に伝達するように構成することもできる。これにより、例えば、ユーザが図示しないリモコンのカーソルキーでコンテンツまたはウインドウサイズを変更したりその表示位置をシフトさせる操作をした場合に、この操作をユーザ・トリガ信号としてユーザ・イベント・コントローラ201からENAVインターフェース・ハンドラ202に送り、それを対応するAV出力コントロール信号として、AVレンダラ203に出力する。これ以外にも、DVDビデオ再生エンジン100からの映像・音声出力と、ENAVエンジン200からの映像・音声出力の切替を示すユーザ・イベントをAVレンダラ203に送ることにより、ユーザ操作による映像・音声出力の切替を行うことが可能である。
なお、ENAVインターフェース・ハンドラ202に伝達されたユーザ・イベント信号(ユーザ・トリガ信号)の内容は、“AV出力コントロール”信号として、AVレンダラ203に伝達するように構成することもできる。これにより、例えば、ユーザが図示しないリモコンのカーソルキーでコンテンツまたはウインドウサイズを変更したりその表示位置をシフトさせる操作をした場合に、この操作をユーザ・トリガ信号としてユーザ・イベント・コントローラ201からENAVインターフェース・ハンドラ202に送り、それを対応するAV出力コントロール信号として、AVレンダラ203に出力する。これ以外にも、DVDビデオ再生エンジン100からの映像・音声出力と、ENAVエンジン200からの映像・音声出力の切替を示すユーザ・イベントをAVレンダラ203に送ることにより、ユーザ操作による映像・音声出力の切替を行うことが可能である。
ENAVインターフェース・ハンドラ202は、DVDビデオ再生制御部102との間で“DVDステータス”信号、“DVDトリガ”信号および/または“DVDコントロール”信号の送受信を行い、あるいはユーザ・イベント・コントローラ201との間で“ユーザ・トリガ”信号および/または“ユーザ・イベント・コントロール”信号の送受信を行う。ENAVインターフェース・ハンドラ202はさらに、ECMAScriptインタープリタ205やSMILタイミング・エンジン206との間で、“ENAVイベント”、“ENAVプロパティ”、“ENAVコマンド”、“ENAVコントロール”信号の送受信を行うように構成されている。すなわち、ENAVインターフェース・ハンドラ202は、以下を実行する。
1、DVDビデオ再生エンジン100からのDVDビデオ再生エンジン100の動作を示す“DVDトリガ”信号、またはユーザ・イベント・コントローラ201からのユーザの操作を示す“ユーザ・トリガ”を“ENAVイベント”として、ECMAScriptインタープリタ205とSMILタイミング・エンジン206に伝達する。
2、DVDビデオ再生エンジン100からのDVDビデオ再生エンジン100の再生状況を示す“DVDステータス”信号を“ENAVプロパティイベント”として、ECMAScriptインタープリタ205とSMILタイミング・エンジン206に伝達する。このとき、DVDステータスは情報は、ENAVインターフェース・ハンドラ202のプロパティ・バッファ202aに随時保存される。
3、SMILタイミング・エンジン206からの“ENAVコントロール”信号を“DVDコントロール”信号としてDVDビデオ再生エンジン100に伝達する。
4、ECMAScriptインタプリタ205からの“ENAVコントロール”信号の内容に応じて、ユーザ・イベントコントローラ201へユーザ・イベントの切替を行うための“ユーザ・イベント・コントロール”信号を、DVDビデオ再生エンジン100へDVDビデオ再生エンジン100の再生を制御するための“DVDコントロール”信号を、AVレンダラ203へ映像や音声の切替を行うための“AV出力コントロール”信号を、バッファ・マネージャ204へバッファへの読み込みやバッファの消去を行うための“バッファ・コントロール”信号を出力する。
つまり、ENAVインターフェース・ハンドラ202は、ENAVコンテンツを解析・解釈してから、DVDビデオ再生エンジン100とENAVエンジン200との間で制御信号等の変換を行う機能をもつ。
ENAVインターフェース・ハンドラ202は、XHTML+SMIL/CSSパーサ210で解析され、ECMAScriptインタープリタ205、SMILタイミング・エンジン206にて解釈された内容、または入力装置からのユーザ・イベントに基づいて、第1信号の交換を行うとともに、第2信号の交換を行なうように構成されている。別の言い方をすると、ENAVインターフェース・ハンドラ202は、DVDビデオ再生制御部102との間で交換される第1信号、およびECMAScriptインタープリタ205、SMILタイミング・エンジン206との間で交換される第2信号の少なくとも一方に基づいて、AVレンダラ203による映像・音声信号の出力状態を制御するものであるとも言える。第1信号とは、エンハンスドDVDビデオディスクD2の再生状況に関する信号であり、“DVDコントロール”信号、“DVDトリガ”信号、“DVDステータス”信号などが該当する。第2の信号とは、ENAVコンテンツの内容に関する信号であり、“ENAVイベント”信号、“ENAVコマンド”信号、“ENAVプロパティ”信号、“ENAVコントロール”信号などが該当する。
XHTML+SMIL/CSSパーサ210は、概括的に言えば、エンハンスドDVDビデオディスクD2から得たENAVコンテンツC21、またはインターネット等から得たENAVコンテンツC22に含まれる再生制御情報を示すENAVドキュメントの構文解析を行う。ENAVドキュメントは前述のHTML/XHTML、SMILといったMarkup言語やECMAScript、JavaScriptといったScript言語の組み合わせで構成されている。XHTML+SMIL/CSSパーサ210は、言語解析の結果に応じて、ECMAScirptモジュールをECMAScriptインタープリタ205に、SMILモジュールはSMILタイミング・エンジン206に、XHTMLモジュールはXHTML/CSSレイアウト・マネージャ207に伝達する機能をもつ。
ECMAScriptインタープリタ205は、前述のECMAScriptモジュールを解釈し、その指示に従う。つまり、ECMAScriptインタープリタ205は、ENAVインターフェース・ハンドラ202から送られる“ENAVイベント”信号や、ENAVインターフェース・ハンドラ202のプロパティ・バッファから読み取る“ENAVプロパティ”信号に対して、ENAVエンジン200における各機能を制御するための“ENAVコマンド”信号をENAVインターフェース・ハンドラ202に発行する機能をもつ。
SMILタイミングエンジン206は、前述のSMILモジュールを解釈し、その指示に従う。つまり、SMILタイミングエンジン206は、ENAVインターフェース・ハンドラから送られる“ENAVイベント”信号や、ENAVインターフェース・ハンドラのプロパティ・バッファから読み取る“ENAVプロパティ”信号に対し、指示されたタイミングで(ENAVエンジン内で計測している時間に従って)、“ENAVコントロール”信号をENAVインターフェース・ハンドラ202、またはエレメント・デコーダ208に発行する機能をもつ。これにより、所望のタイミングでDVDビデオ再生エンジン100のコントロールや映像(動画・静止画・アニメーション)や音声の再生が可能となる。
XHTML/CSSレイアウト・マネージャ207は、前述のXHTMLモジュールを解釈し、その指示に従う。つまり、XHTML/CSSレイアウト・マネージャ207は、“レイアウト・コントロール”信号をAVレンダラに出力する。“レイアウト・コントロール”信号は、出力する映像の画面の大きさやその位置に関する情報(表示開始・終了・継続といった表示時間に関する情報を含む場合もある)、出力する音声のレベルに関する情報(出力開始・終了・継続といった出力時間に関する情報を含む場合もある)が含まれる。また、XHTMLモジュールに含まれている表示のためのテキスト情報はエレメント・デコーダ208に送られ、所望のフォントを用いて、デコードされ表示される。
Markup言語やScript言語の構文解析およびその解釈を行う具体的な方法は、例えばHTML/XHTMLやSMILあるいはECMAScriptやJavaScriptのような公知技術における構文解析・解釈と同様な手法でよい(使用するハードウエアは図3の説明の冒頭で述べたマイクロコンピュータ)。ただしScript中に記載されるコマンドや変数については、制御対象が異なるので違いが生じる。この発明を実施する際に用いるENAVドキュメントにおいては、エンハンスドDVDビデオディスクD2および/またはENAVコンテンツC21、C22の再生に関連した特有のコマンドや変数が用いられる。例えば、あるイベントに応答してエンハンスドDVDビデオディスクD2またはENAVコンテンツC21、C22の再生内容を切り換えるといったコマンドは、ENAVドキュメントにおけるMarkup言語やScript言語に特有のものとなっている。
ENAVドキュメントにおけるMarkup言語やScript言語に特有なコマンドや変数の他例として、DVDビデオ再生エンジン100および/またはENAVエンジン200からの映像のサイズを変更したり、その映像の配置を変えたりするものがある。映像のサイズの変更は、サイズ変更を命令するコマンドと変更後のサイズを指定する変数により指示される。映像の配置の変更は、表示位置の変更を命令するコマンドと変更後の座標等を指定する変数により指示され、表示対象が画面上でオーバーラッピングするときは、重なりの上下位置関係を指定する変数も加わる。あるいは、DVDビデオ再生エンジン100および/またはENAVエンジン200からの音声レベルを変えたり、使用音声言語を選択するものもある。音声レベルの変更は、音声レベルの変更を命令するコマンドと変更後の音声レベルを指定する変数により指示される。使用音声言語の選択は、使用音声言語の変更を命令するコマンドと変更後の言語の種類を指定する変数により指示される。また、ユーザイベントコントローラ201においてユーザイベントを制御するものもある。
上記で例示したようなENAVドキュメントにおけるMarkup言語やScript言語のコマンド/変数に基づいて、“レイアウトコントロール”信号が、XHTML/CSSレイアウト・マネージャ207(一部の機能はSMILタイミング・エンジン206によって行われる場合もある)からAVレンダラ203に送られるようになっている。“レイアウトコントロール”信号は、図示しない外部モニタ装置等で表示すべき映像の画面上のレイアウト、映像のサイズ、映像の出力タイミング、映像の出力時間、および/または図示しない外部スピーカから再生すべき音声の音量レベル、音声の出力タイミング、音声の出力時間を制御する信号である。
エレメント・デコーダ208は、ENAVコンテンツC21、C22に含まれる音声、静止画、テキスト・フォント、動画・アニメーション等のENAVコンテンツのデータをデコードする。つまり、エレメント・デコーダ208は、デコード対象に対応して音声デコーダ、静止画デコーダ、テキスト・フォントデコーダ、および動画デコーダを含んでいる。例えばMPEG、AC−3でエンコードされたENAVコンテンツ中の音声データは、音声デコーダによりデコードされて非圧縮の音声データに変換される。また、JPEG、GIF、PNGでエンコードされた静止画データは、静止画デコーダによりデコードされて非圧縮の画像データに変換される。同様に、例えばMPEG2、MPEG4、MacromediaFlashでエンコードされた動画・アニメーションデータは、動画・アニメーションデコーダによりデコードされて非圧縮の動画データに変換される。また、ENAVコンテンツに含まれるテキストデータは、ENAVコンテンツに含まれるフォントデータを用い、テキスト・フォントデコーダによりデコードされて、動画または静止画の画像にスーパーインポーズ可能なテキスト画像データに変換される。これらデコードされた音声データ、画像データ、動画データ、およびテキスト画像データを適宜含む映像・音声データは、エレメント・デコーダ208からAVレンダラ203に送られる。
AVレンダラ203は、映像・音声出力を制御する機能をもつ。具体的には、AVレンダラ203は、XHTML/CSSレイアウト・マネージャ207から出力される“レイアウト・コントロール”信号に応じて、例えば、映像の表示位置、表示サイズや(これらとともに表示タイミング、表示時間を含むこともある)、音声の大きさを(これらとともに出力タイミング、出力時間を含むこともある)制御する。制御の対象となる映像・音声出力は、DVDビデオ再生エンジン100およびエレメント・デコーダ208からの出力である。さらに、AVレンダラ203は、ENAVインターフェース・ハンドラ202から出力される“AV出力コントロール”信号に従って、DVDビデオコンテンツC1とENAVコンテンツC21、C22のミキシング(混合)、スイッチング(切替)を制御する機能をもつ。
なお、図3のDVDビデオプレーヤ内のENAVエンジン200は、エンハンスドDVDビデオディスクD2から読み取られたENAVコンテンツC21中のENAVドキュメントをプリロード・ダウンロード・バッファ部209を介してXHTML+SMIL/CSSパーサ210に送るためのインターフェース、および読み取られたENAVコンテンツC21中のデータ(音声データ、静止画データ、テキスト・フォントデータ、動画データ等)をプリロード・ダウンロード・バッファ部209を介してエレメント・デコーダ208に送るためのインターフェースを備えている。これらのインターフェースは、図3のインターネット接続部211とは別のインターフェース(第1のインターフェース)を構成している。
また、図3のDVDビデオプレーヤは、インターネット等の通信回線からENAVコンテンツC22を受け取り、受け取ったENAVコンテンツC22中のENAVドキュメントをプリロード・ダウンロード・バッファ部209を介してXHTML+SMIL/CSSパーサ210に送るためのインターフェース、および受け取ったENAVコンテンツC22中のデータ(音声データ、静止画データ、フォント・テキストデータ、動画データ等)をプリロード・ダウンロード・バッファ部209を介してエレメント・デコーダ208に送るためのインターフェースを備えている。これらのインターフェースが、図3のインターネット接続部(第2のインターフェース)を構成している。
プリロード・ダウンロード・バッファ部209は、サーバ部500からダウンロードしたENAVコンテンツC22を記憶するとともに、ディスク部300によりエンハンスドDVDビデオディスクD2から読み込んだENAVコンテンツC21を記憶するためのバッファから構成される。
プリロード・ダウンロード・バッファ部209は、マークアップ言語/スクリプト言語に基づいたバッファ・マネージャ204の制御により、外部のサーバ上(サーバ部500)にあるENAVコンテンツC22を読み、インターネット接続部211を介して、ENAVコンテンツC22をダウンロードする。
プリロード・ダウンロード・バッファ部209は、マークアップ言語/スクリプト言語に基づいたバッファ・マネージャ204の制御により、エンハンスドDVDビデオディスクD2に記録されているENAVコンテンツC21を読み込む。このとき、ディスク部300がディスクに対して高速アクセス可能な装置であれば、DVDビデオコンテンツC1を再生しながら、つまりエンハンスドDVDビデオディスクD2よりDVDビデオ・データを読み出しながら、同時にエンハンスドDVDビデオディスクD2からENAVコンテンツC21を読み出すことができる。ディスク部300が高速アクセス可能な装置でない場合、もしくはDVDビデオコンテンツC1の再生動作を完全に保障する場合は、DVDビデオコンテンツC1の再生を中断させないようにする必要がある。この場合は、再生が開始する前にあらかじめエンハンスドDVDビデオディスクD2からENAVコンテンツC21を読み出し、プリロード部209bに記憶しておく。これにより、DVDビデオコンテンツC1をエンハンスドDVDビデオディスクD2から読み出すと同時に、ENAVコンテンツC21をプリロード部209bから読み出すことにより、ディスク部300に負担をかけずにすむ。よって、DVDビデオコンテンツC1の再生を中断させずに、DVDビデオコンテンツC1とENAVコンテンツを同時に再生することが可能となる。
以上のように、外部サーバ(サーバ部500)からダウンロードしたENAVコンテンツC22も、エンハンスドDVDビデオディスクD2に記録されているENAVコンテンツC21と同様に、プリロード・ダウンロード・バッファ部209に記憶させることにより、DVDビデオコンテンツC1とENAVコンテンツC22と同時に読み出し再生することが可能になる。
また、プリロード・ダウンロード・バッファ部209の記憶容量には、限界がある。つまり、プリロード・ダウンロード・バッファ部209に記憶できるENAVコンテンツC21、C22のデータサイズには限りがある。このため、バッファ・マネージャ204の制御により(バッファ・コントロール)、必要性の低いENAVコンテンツC21、C22を消去したり、必要性の高いENAVコンテンツC21、C22を保存したりすることが可能である。前述の保存のための制御や、前述の消去のための制御は、プリロード・ダウンロード・バッファ部209が自動的に行うことも可能である。
バッファ・マネージャ204はENAVドキュメントの指示により、プリロード・ダウンロード・バッファ部209に対して、以下のような指示を“バッファ・コントロール”として送ることが可能である。
・特定ファイルまたはファイルの一部のサーバからの読み込み(ダウンロード)
・特定ファイルまたはファイルの一部のディスクからの読み込み(プリロード)
・バッファからの特定ファイルまたはファイルの一部の消去
図3のENAVエンジンの構成要素は、表現を変えると、次のように纏めることができる。すなわち、ENAVエンジンは、以下から構成されている。
・XHTML+SMIL/CSSパーサ210
XHTML+SMIL/CSSパーサ210は、ENAVドキュメントの内容を構文解析する。
・ECMAScriptインタープリタ205、SMILタイミング・エンジン206、XHTML/CSSレイアウト・マネージャ207
ECMAScriptインタープリタ205、SMILタイミング・エンジン206、XHTML/CSSレイアウト・マネージャ207は、解析されたモジュールを解釈する。
・ENAVインターフェース・ハンドラ202
ENAVインターフェース・ハンドラ202は、ECMAScriptインタープリタ205やSMILタイミング・エンジン206からの制御信号と、DVDビデオ再生制御部102からの制御信号をハンドルする。
・エレメント・デコーダ208
エレメント・デコーダ208は、ENAVコンテンツC21、C22に含まれる音声、静止画、テキスト・フォント、動画等のデータに対応した映像・音声データを生成する。
・AVレンダラ203
AVレンダラ203は、ENAVインターフェース・ハンドラ202におけるENAVコマンドの実行結果に基づいて、エレメント・デコーダ208で生成された映像・音声データをDVDビデオ再生エンジン100で再生された映像・音声データに合成して出力する。あるいはAVレンダラ203はENAVインターフェース・ハンドラ202におけるENAVコマンドの実行結果に基づいてエレメント・デコーダ208で生成された映像・音声データおよびDVDビデオ再生エンジン100で再生された映像・音声データの一方を選択して出力する。
・ユーザ・イベント・コントローラ201
ユーザ・イベント・コントローラ201は、ユーザ操作(ユーザオペレーション)に対応したユーザイベントを生成する。
・プリロード・ダウンロード・バッファ部209
プリロード・ダウンロード・バッファ部209は、ディスク部300またはインターネット接続部211を介してサーバ部500より取得したENAVコンテンツC22を一時記憶する。
・バッファ・マネージャ204
バッファ・マネージャ204は、ENAVインターフェース・ハンドラ202の指示(ENAVドキュメントの指示)により、プリロード・ダウンロード・バッファ部209にENAVコンテンツのデータ読み込んだり、プリロード・ダウンロード・バッファ部209から消去したりする。
ここで、ENAVインターフェース・ハンドラ202は、ユーザ・イベント・コントローラ201により生成されたユーザ・イベントに対応した処理を実行するように構成されている。そして、AVレンダラ203が、ユーザ・イベントに対応した処理の実行結果に基づいて、エレメント・デコーダ208で生成された映像・音声データをDVDビデオ再生エンジン100で再生された映像・音声データに合成して出力するように構成されている。あるいはAVレンダラ203はENAVインターフェース・ハンドラ202におけるENAVコマンドの実行結果に基づいてエレメント・デコーダ208で生成された映像・音声データおよびDVDビデオ再生エンジン100で再生された映像・音声データの一方を選択して出力映像・音声データおよび映像・音声データの一方を選択して出力するように構成されている。
図4は、プリロード・ダウンロード・バッファ部209の一例を示す概略図である。
例えば、プリロード・ダウンロード・バッファ部209は、静止画バッファ2091、アニメーション・動画バッファ2092、オーディオ・コメンタリ・バッファ2093、オーディオ・バッファ2094、効果音バッファ2095、フォント・バッファ2096、ENAVドキュメント・バッファ2097を備えている。
静止画バッファ2091は、ENAVコンテンツC21、C22に含まれる静止画データを記憶する。アニメーション・動画バッファ2092は、ENAVコンテンツC21、C22に含まれるアニメーション・動画データを記憶する。オーディオ・コメンタリ・バッファ2093は、オーディオ・コメンタリ・データを記憶する。オーディオ・バッファ2094は、オーディオ・データを記憶する。効果音バッファ2095は、効果音データを記憶する。フォント・バッファ2096は、フォント・データを記憶する。ENAVドキュメント・バッファ2097、ENAVドキュメントを記憶する。
つまり、プリロード・ダウンロード・バッファ部209は、ENAVコンテンツに含まれるデータの種類に応じて、このデータを所定のバッファにバッファリングする。
エレメント・デコーダ208は、静止画デコーダ2081、アニメーション・動画デコーダ2082、音声デコーダ2083、テキスト・フォント・デコーダ2084を備えている。静止画デコーダ2081は、静止画バッファ2091に記憶された静止画データをデコードする。アニメーション・動画デコーダ2082は、アニメーション・動画バッファ2092に記憶されたアニメーション・動画データをデコードする。音声デコーダ2083は、オーディオ・コメンタリ・バッファ2093に記憶されたオーディオ・コメンタリ・データ、オーディオ・バッファ2094に記憶されたオーディオ・データ、効果音バッファ2095に記憶された効果音データをデコードする。テキスト・フォント・デコーダ2084は、フォント・バッファ2096に記憶されたテキスト・フォントデータをデコードする。
AVレンダラ203は、各デコーダによりデコードされた静止画データ、アニメーション・動画データ、音声データ、テキスト・フォント・データを映像、音声として出力する。
ここで、オーディオ・コメンタリ・データについて説明する。オーディオ・コメンタリ・データとは、DVDビデオコンテンツC1の全体または一部に対して同期させる音声データを指す。例えば、DVDビデオディスクD2に記録されている音声の置き換えや、DVDビデオディスクD2に記録されている音声へのミックスなどの用途に用いられる。音声の置き換えとは、例えば、DVDビデオディスクD2に記録されている英語音声を日本語音声に置き換えることである。音声へのミックスとは、例えば、DVDビデオディスクD2の映画タイトルの映画の音声に対して監督の解説を付け加えることである。
効果音データとは、クリック音や警告音等の音声データを指す。オーディオ・データとは、オーディオ・コメンタリ・データや効果音以外の音声データ、つまりミュージック・クリップやバッグ・グランド・ミュージック等の音声データを指す。
例えば、DVDビデオディスクD2に記録されてDVDタイトルの再生に同期して、オーディオ・コメンタリ・データを再生している最中でも、さらに警告音やクリック音等の効果音は必要である。即ち、オーディオ・コメンタリ・データと効果音は、それぞれ独立に再生し、ミックスして出力される。オーディオ・クリップのようなオーディオ・データと効果音に対しても同じようなことが当てはまる。ただし、オーディオ・コメンタリ・データとミュージック・クリップのようなオーディオ・データは必ずしも同時に出力する必要がない。
また、プリロード・ダウンロード・バッファ部209内の静止画バッファ2091、アニメーション・動画バッファ2092、オーディオ・バッファ2094、効果音バッファ2095、フォント・バッファ2096、ENAVドキュメント・バッファ2097は、全て同じ特徴・機能をもつ。つまり、バッファ内のデータは、ENAVコンテンツの再生が要求される前にエンハンスドDVDビデオディスクD2またはサーバ部500からロードされたデータである。ENAVコンテンツの再生が終わり、今後このENAVコンテンツを再生する必要がない場合は、このENAVコンテンツを消去してもよい。言い換えれば、これらのバッファには、DVDビデオの再生が開始される前、またはENAVコンテンツの再生が開始される前に、必要なENAVコンテンツがロードされる。しかも、これらのバッファにロードされたENAVコンテンツは、DVDの再生中であっても必要のなくなったENAVコンテンツは消去することができ、これに伴い新しいENAVコンテンツをアップデートすることができる。
図4に示すように、オーディオ・コメンタリ・バッファ2093は、オーディオ・バッファAとオーディオ・バッファBを備えている。また、オーディオ・コメンタリ・バッファ2093に入力されたデータは、オーディオ・バッファAまたはオーディオ・バッファBのいずれかに送られる。また、オーディオ・バッファAまたはオーディオ・バッファBから出力されるデータが、オーディオ・コメンタリ・バッファ2093から出力される。これは、バッファ・マネージャ204からのバッファ・コントロールにより、オーディオ・バッファAまたはオーディオ・バッファBに対するデータの入力、オーディオ・バッファAまたはオーディオ・バッファBからのデータの出力が切り換えられる。別の例として、オーディオ・コメンタリ・バッファ2093をオーディオ・バッファAとオーディオ・バッファBで構成する替わりに、リングバッファで構成するようにしてもよい。この一つのリングバッファにより、二つのオーディオ・バッファAとオーディオ・バッファBの機能をサポートすることができる。詳細は後で説明する。
図5〜図9を参照して、ENAVコンテンツC22の再生による効果について説明する。つまり、ENAVコンテンツC22を外部サーバ(サーバ部500)からダウンロードしながら、または一旦ダウンロードして、DVDビデオコンテンツC1に対して同期してENAVコンテンツC22を再生するケースについて説明する。
先ず、図5を参照して説明する。図5は、DVDビデオコンテンツC1のみの再生を示す図である。例えば、あるユーザがDVDビデオディスク(エンハンスドDVDディスクD2)を再生したが、そのDVDビデオディスクには英語の音声または、英語の字幕しか含まれていないとする。日本語しか分からないユーザである場合、そのDVDビデオディスクを鑑賞することが難しい。
そこで、再生装置は、図6〜図9に示すような再生を実現する。つまり、再生装置は、外部サーバ(サーバ部500)にアクセスする。ここで言う外部サーバは、そのDVDビデオディスクのコンテンツに対応した日本語字幕の画像(動画または静止画)のコンテンツ、または日本語の音声のコンテンツが用意されいてる外部サーバである。このとき、その外部サーバのアクセス方法としては、DVDビデオディスクのデータから外部サーバを特定する方法や、ユーザがその外部サーバを指定する方法が考えられる。このように、再生装置は外部サーバにアクセスすることにより、日本語の字幕のコンテンツや日本語の音声のコンテンツを入手することができる。
例えば、前述の日本語のためのコンテンツ(ENAVコンテンツC22)を外部サーバ(サーバ部500)から、インターネット接続部211を介してダウンロードし、プリロード・ダウンロード・バッファ部209内に記憶する。すべてのコンテンツのダウンロードが終了した後、DVDビデオコンテンツC1とともに再生が開始される。この場合、ダウンロードに時間がかかるため、コンテンツの再生開始までそれなりの待ち時間が生じる。またすべてのデータをプリロード・ダウンロード・バッファ部209に記憶しようとすると、記憶容量の大きいバッファが必要となる。記憶容量の大きいバッファを用意してすべてのENAVコンテンツC22のデータをプリロード・ダウンロード・バッファ部209に記憶してしまえば、外部サーバへの接続状況に関らず、途切れることなくコンテンツの再生が可能となる。
また、前述の日本語のためのコンテンツ(ENAVコンテンツC22)を外部サーバよりインターネット接続部211を介して、プリロード・ダウンロード・バッファ部209にダウンロードして記憶しながら、ダウンロードが完了したデータから順にDVDビデオコンテンツC1とともに再生する。この場合、ほとんど待ち時間なしに、コンテンツの再生を開始することができる。更に、再生が終了し、必要のなくなったコンテンツのデータは、プリロード・ダウンロード・バッファ部209から消去される。これにより、プリロード・ダウンロード・バッファ部209に要求される記憶容量も節約することができる。ただし、途切れないコンテンツの連続再生のために、外部サーバへの接続を確保する必要がある。
具体的に図6を参照して説明する。図6には、外部サーバよりダウンロードした日本語字幕を表示するためのENAVコンテンツC22をDVDビデオコンテンツC1とともに表示した例を示す。合成して表示させるためには、図6に示すように、DVDビデオコンテンツC1の表示領域を通常よりも縮小させて、ENAVコンテンツC22(静止画、動画)を表示させるための領域を確保する。また、ENAVコンテンツC22が背景を反映させることのできる透過型の画像コンテンツの場合、DVDビデオコンテンツC1を縮小させることなく、ENAVコンテンツC22をDVDビデオコンテンツC1に貼り合わせることができる。他にも、ENAVコンテンツC22がテキストとフォント・データから構成される場合は、テキスト・フォントのエレメント・デコーダにてラスタライズされたデータをDVDビデオコンテンツC1に貼り合わせて表示することが可能である。ENAVコンテンツC22をダウンロードできない場合、代替の画像、例えば既に読み込むことができた画像データや、再生装置に予め蓄えられている画像データやフォント・データを用いて表示することが可能である。
図6に示す映像音声出力を実現するために、まず、日本語字幕のための静止画データやアニメーション・動画データで構成されたENAVコンテンツは、インターネット接続部211を介して、プリロード・ダウンロード・バッファ部209内の静止画バッファ2091またはアニメーション・動画バッファ2092にダウンロードされる。ENAVドキュメントにより指定されたすべてのコンテンツのダウンロードが終了した後、DVDビデオコンテンツとともに、ダウンロードされたENAVコンテンツの再生が開始される、つまり静止画データ、アニメーション・動画データがエレメント・デコーダ208に出力されデコードされる。このとき、ダウンロード・プリロード・バッファ部209の容量が、目的のENAVコンテンツに対して十分大きいときは、再生前のタイミングでダウンロードが完了する。ところが、ダウンロード・プリロード・バッファ部209の容量が、目的のENAVコンテンツに対して十分でないときは、DVDビデオコンテンツとENAVコンテンツの再生中に、ENAVコンテンツのアップデート作業が必要となる。つまり、再生が終了して不要なENAVコンテンツを消去し、新たに必要となるENAVコンテンツをダウンロードしなければならない。
続いて、図7を参照して説明する。図7には、外部サーバ(サーバ部500)よりダウンロードした日本語音声のためのENAVコンテンツC22をDVDビデオコンテンツC1とともに再生した例を示す。DVDビデオコンテンツC1の音声データの一部、もしくはすべてを再生せずに、再生しない音声の代わりに、ENAVコンテンツC22の日本語音声を再生している。
続いて、図8を参照して説明する。図8には、外部サーバよりダウンロードした音声解説(オーディオ・コメンタリ)のためのENAVコンテンツC22をDVDビデオコンテンツC1とともに再生した例を示す。DVDビデオコンテンツC1の音声データに対し、ENAVコンテンツC22のオーディオ・コメンタリ・データをミックスして再生している。このときの、二つの音声をミックスするときのミックス比はENAVドキュメントによって指定することが可能である。
続いて、図9を参照して説明する。図9には、再生するENAVコンテンツC22の途中で表示するフォントが変化する例を示す。この例では、ページが変わるにしたがって、表示に用いるフォントも、フォントA→フォントB→フォントCというように変化している。このとき、フォントAを表示するためのフォントデータをフォントAが表示される前に、フォントBを表示するためのフォントデータをフォントBが表示される前に、フォントCを表示するためのフォントデータをフォントCが表示される前に、プリロード・ダウンロード・バッファ部209で読み込む必要がある。もし、プリロード・ダウンロード・バッファ部209の容量が十分大きくない場合は、フォントBをプリロード・ダウンロード・バッファ部209に読み込む前に、ロード済みのフォントAのデータをプリロード・ダウンロード・バッファ部209より消去し、フォントCをプリロード・ダウンロード・バッファ部209に読み込む前に、ロード済みのフォントBのデータをプリロード・ダウンロード・バッファ部209より消去する。これにより、プリロード・ダウンロード・バッファ部209の容量不足を補うことが可能である。
また、もしフォントデータをそのフォントを表示する前に、インターネットの接続状況等のために、プリロード・ダウンロード・バッファ部209に読み込むことができない場合、代替のフォント、例えば、すでに読み込むことができたフォントデータや、再生装置にあらかじめ備えられているフォントデータを用いて表示を行う。更に、所望のフォントデータをプリロード・ダウンロード・バッファ部209から読み込むことが出来次第、所望のフォントデータを用いる。
次に、図7に示すDVDビデオコンテンツの音声の置き換えや、図8に示すオーディオ・コメンタリの付加のための手順を説明する。
DVDビデオコンテンツの置き換えのための音声データやオーディオ・コメンタリ・データ(以下、総称してオーディオ・コメンタリ・データ、またはENAVオーディオ・データと呼ぶ)はDVDビデオコンテンツ全体と同期している。すべてのオーディオ・コメンタリ・データをプリロード・ダウンロード・バッファ部209に読み込むためには、大きな容量のバッファが必要となるとともに、ダウンロードを行なうときの時間も長くなる。そこで、図4に示すように、二つのバッファ、オーディオ・バッファAとオーディオ・バッファB(或いはリングバッファ)から構成されるオーディオ・コメンタリ・バッファを用いる。これにより、DVDビデオコンテンツを再生しながら、オーディオ・コメンタリ・データをダウンロードし、再生を行うことが可能となる。
図10は、二つのバッファで構成されるオーディオ・コメンタリ・バッファの動きを示す図である。
サーバ部500から提供されるオーディオ・コメンタリ・データは、オーディオ・バッファAまたはオーディオ・バッファBに十分収まる大きさに分割されている。ENAVドキュメントの指示にて、最初の分割されたオーディオ・コメンタリ・データ(分割ENAVコンテンツ)は、まずオーディオ・バッファAにダウンロードされる。つまり、入力のスイッチの切り換えにより、最初の分割されたオーディオ・コメンタリ・データ(分割ENAVコンテンツ)は、オーディオ・バッファAにダウンロードされる(状態1)。
最初の分割されたオーディオ・コメンタリ・データがオーディオ・バッファAへダウンロードされた後、DVDビデオコンテンツとオーディオ・コメンタリ・データの再生が開始される。最初のオーディオ・コメンタリ・データはオーディオ・バッファAに格納されているため、出力のスイッチが、オーディオ・バッファA側に切り替えられ、オーディオ・バッファAに格納されているオーディオ・コメンタリ・データがエレメント・デコーダ208内の音声デコーダ2083に送られ、再生が開始される。これと同時に、入力のスイッチがオーディオバッファB側に切り替えられ、二番目の分割されたオーディオ・コメンタリ・データ(分割ENAVコンテンツ)がオーディオ・バッファBにダウンロードされる(状態2)。
二番目の分割されたオーディオ・コメンタリ・データがオーディオ・バッファBへダウンロードされ、最初の分割されたオーディオ・コメンタリ・データの再生が終了した後、オーディオ・バッファBより二番目の分割されたオーディオ・コメンタリ・データが音声デコーダ208に送られ再生される。このとき、オーディオ・バッファAに記録されているオーディオ・コメンタリ・データは消去され、オーディオ・バッファAには新たに三番目の分割されたオーディオ・コメンタリ・データがダウンロードされる。つまり、入力のスイッチがオーディオ・バッファA側に切り替えられ、出力のスイッチがオーディオ・バッファB側に切り替えられる(状態1)。
以上、状態1と状態2を繰り返すことにより、少ない容量のオーディオ・コメンタリ・バッファ2093を用いて、DVDビデオコンテンツに同期してオーディオ・コメンタリ・データをサーバ部よりダウンロードしながら再生することが可能である。
次に、図11を参照して、オーディオ・コメンタリ・バッファ2093のオーディオ・バッファA、オーディオ・バッファBに対する分割ENAVコンテンツのダウンロードのタイミング、及びダウンロードされた分割ENAVコンテンツの再生のタイミングについて説明する。ダウンロードされたENAVコンテンツは、DVDビデオコンテンツの再生に同期して再生される。
再生区間iにおいてサーバ部500からオーディオ・コメンタリ・バッファ209にENAVコンテンツをダウンロードするときの平均ダウンロード速度をVdi(i=0〜6)と定義する。また、再生区間iにおいてオーディオ・コメンタリ・バッファ209よりエレメント・デコーダ208の音声デコーダ2083にENAVコンテンツを読み出すときの平均読み出し速度をVoi(i=1〜6)と定義する。ただし、DVDビデオの再生を開始する前にダウンロードを行う平均ダウンロード速度は、Vd0である。
まず、DVDの再生が要求されると、再生装置は、サーバ部500よりオーディオ・バッファAに分割ENAVコンテンツをダウンロードする(平均ダウンロード速度Vd0)。このとき、分割ENAVコンテンツのデータ量によってはオーディオ・バッファAの容量がいっぱいにならないこともある(準備区間)。
オーディオ・バッファAの容量が一杯になるまで(もしくはある一定の量まで)、つまり分割ENAVコンテンツのダウンロードが完了すると、ダウンロードした分割ENAVコンテンツはエレメント・デコーダ208の音声デコーダ2083に読み出される(平均読み出し速度Vo1)。これと同時にDVDビデオの再生が開始され、エレメント・デコーダ208の音声デコーダ2083でデコードされた分割ENAVコンテンツとDVDビデオコンテンツの同期再生が開始する。このとき、オーディオ・バッファBは、サーバ部500より分割ENAVコンテンツのダウンロードを行う(平均ダウンロード速度Vd1)。つまり、このとき、オーディオ・バッファAに記録された分割ENAVコンテンツが再生されていることになる(再生区間1)
オーディオ・バッファAに記録されている分割ENAVコンテンツの再生がすべて終了すると、読み出されて必要のない分割ENAVコンテンツはオーディオ・バッファAよりすべて消去される。オーディオ・バッファAは再びサーバ部500より分割ENAVコンテンツをダウンロードする(平均ダウンロード速度Vd2)。また、オーディオ・バッファBはダウンロードされた分割ENAVコンテンツをエレメント・デコーダ208の音声デコーダ2083に送る。(平均読み出し速度Vo2) つまり、このとき、オーディオ・バッファBに記録された分割ENAVコンテンツが再生されていることになる(再生区間2)。
以上のように、一つのバッファ(オーディオ・バッファAまたはオーディオ・バッファB)を分割ENAVコンテンツのダウンロードのために使用し、もう一つのバッファ(オーディオ・バッファAまたはオーディオ・バッファB)を分割ENAVコンテンツの再生のために使用する。オーディオ・バッファAとオーディオ・バッファBの使い分けは、バッファ・マネージャ204により制御される。
ただし、DVDビデオコンテンツとENAVコンテンツの再生を絶え間なく行うためには、すべての再生区間iにおいて、以下の条件を満たすことが必要不可欠でる。
Vdi ≧ Voi (i≧1)
もし、これが満たされない場合には、その再生区間において、分割ENAVコンテンツのダウンロードが完了するまで、DVDビデオコンテンツの再生を一時中断させる。もしくは、条件を満たせなかった次の再生区間もしくは再生区間の一部は、ENAVコンテンツが再生できない。つまり音が出ないことになる。
ここで、DVDビデオコンテンツと同期してオーディオ・コメンタリ・データを再生している際に、ユーザにより、早送り、巻き戻し、スキップ、又は一時停止が行なわれた後、再び再生を行なう場合、再生の再開に対応してオーディオ・コメンタリ・データも再生しなければならない。少なくとも、早送り、巻き戻し、スキップを行った場合はそのジャンプした箇所から、一時停止を行った場合は一時停止した箇所から、再びDVDビデオコンテンツに同期させオーディオ・コメンタリ・データ再生を再生しなければならない。つまり、オーディオ・コメンタリ・データの任意の箇所から再生を行う必要がある。
図12には、DVDビデオコンテンツと同期させるために、情報を付加したENAVコンテンツのデータ構造の例を示す。
ENAVコンテンツは、音声、アニメーション・動画、静止画、フォントなどの複数のデータのうち少なくとも一つを含む。ENAVコンテンツは、図12に示すように、一つ以上の分割ENAVコンテンツを含む。言い換えると、ENAVコンテンツは、複数のデータに分割して提供することが可能である。例えば、プリロード・ダウンロード・バッファ209の記憶容量よりも、あるENAVコンテンツのデータサイズが十分大きくても、図12に示すデータ構造を持つことにより、ENAVコンテンツを分割して提供することができる。
例えば、前述のようにDVDビデオコンテンツに対して同期して再生されるオーディオ・コメンタリ・データは分割され、オーディオ・バッファAまたはオーディオ・バッファBに入るサイズで提供される。このように、ENAVコンテンツは分割して提供されるので、プリロード・ダウンロード・バッファ209の記憶容量を小さくすることができ、しかも再生開始までに要する時間を短くすることができる。
更に、分割ENAVコンテンツは、音声、アニメーション・動画、静止画、フォントなどを構成するENAVデータと、このENAVデータの属性情報を表すENAVヘッダを含む。
ENAVヘッダは、ENAVデータ情報、タイトル番号、絶対時間、チャプタ番号、相対時間、再生時間、データ・サイズ、分割番号、分割総数、インデックス数、インデックス時間、インデックス位置などを含む。
ENAVデータ情報は、ENAVデータの属性を示す。タイトル番号は、ENAVデータの先頭が同期するDVDビデオコンテンツのタイトルに割り当てられたタイトル番号を示す。絶対時間は、ENAVデータの先頭が同期するDVDビデオコンテンツのタイトルの先頭からの時間を示す。DVDビデオコンテンツに含まれるタイトルは、時間情報が割り当てられた所定単位の再生情報を含む。分割ENAVコンテンツのENAVヘッダに含まれるタイトル番号及び絶対時間に基づき、DVDビデオコンテンツのタイトルに含まれる所定単位の再生情報の再生に同期させて、所定のENAVデータを再生することが可能となる。
チャプタ番号は、ENAVデータの先頭が同期するDVDビデオコンテンツのチャプタに割り当てられたチャプタ番号を示す。相対時間は、ENAVデータの先頭が同期するDVDビデオコンテンツのチャプタの先頭からの時間を示す。DVDビデオコンテンツに含まれるチャプタは、時間情報が割り当てられた所定単位の再生情報を含む。分割ENAVコンテンツのENAVヘッダに含まれるチャプタ番号及相対時間に基づき、DVDビデオコンテンツのチャプタに含まれる所定単位の再生情報の再生に同期させて、所定のENAVデータを再生することが可能となる。
再生時間は、ENAVデータが再生される時間を示す。データ・サイズは、ENAVデータ(もしくはこのENAVデータと対応するENAVヘッダ)のデータ・サイズを示す。また、このケースではENAVデータは一定のビットレートでエンコードされており、上記したデータ・サイズは秒単位又はフレーム単位のENAVデータのサイズを示す。
分割総数は、分割ENAVコンテンツの総数を示す。分割番号は、何番目の分割ENAVコンテンツかを示す。分割されていないENAVデータの場合、分割総数=1、分割番号=1が記録される。インデックス時間は、ENAVデータの先頭以外の位置にアクセスするために、分割ENAVコンテンツの先頭からの相対時間を示す。インデックス位置(n)は、インデックス時間(n)に対応するデータの位置(分割ENAVコンテンツの先頭からの相対位置、またはENAVデータの先頭からの相対位置で表すことが可能)を示す。インデックス時間及びインデックス位置は、複数記録することが可能である。インデックス数は、分割ENAVコンテンツに記録されているインデックスの総数を示す。
例えば、分割ENAVコンテンツが10秒単位のデータである場合、分割ENAVコンテンツへのアクセスは先頭に限られるため、10秒単位でのアクセスしかできない。しかし、インデックスとして、分割ENAVコンテンツの先頭から1秒、2秒、3秒、、、、、、8秒、9秒と9つのインデックス時間とインデックス位置を定義する(インデックス数=9)。これにより、ENAVコンテンツ内のアクセスが可能となる。上記の例では、ENAVコンテンツ内の1秒単位でのアクセスが可能となる。アクセスの精度を上げる必要がある場合は更にインデックスを追加すればよい。
分割ENAVコンテンツのENAVヘッダに含まれるインデックス時間及びインデックス情報に基づき、DVDビデオコンテンツの所定の再生情報の再生に同期させて、所定のENAVデータを再生することが可能となる。
また、分割ENAVコンテンツを一つのファイルとして構成することにより、前述のENAVヘッダ内の情報の一部をファイル名として記録することも可能である。例えば、分割ENAVコンテンツのファイル名を、AC_00001.AC3、AC_00002.AC3、AC_00003.AC3、、、、、と定義すれば、分割番号をENAVヘッダに記録する必要はない。また、絶対時間を秒で表し、AC_00000.MPG、AC_00010.MPG、AC_00020.MPG、、、、、のようにファイル名として定義することも可能である。
以上のように、ENAVコンテンツのデータを分割し、付加情報を記録することにより、早送り、巻き戻しといった特殊再生時においても、再生の再開に伴い必要なENAVコンテンツを検索し、DVDビデオコンテンツに対して同期して再生することが可能になる。
図13〜図15は、ENAVコンテンツをDVDビデオコンテンツに同期して再生させるときの例を示す。
図13は、オーディオ・コメンタリ・バッファ2093を用いて、分割ENAVコンテンツをダウンロードしながら再生する処理を説明する図である。例えば、ENAVコンテンツは、次に示すように9個の分割ENAVコンテンツに分割されているものとする。
・DVDビデオコンテンツのチャプタ1に同期する三つの分割ENAVコンテンツ(分割ENAVコンテンツ1〜3)
・DVDビデオコンテンツのチャプタ2に同期する三つの分割ENAVコンテンツ(分割ENAVコンテンツ4〜6)
・DVDビデオコンテンツのチャプタ3に同期する三つの分割ENAVコンテンツ(分割ENAVコンテンツ7〜9)
再生開始を指示された再生装置は、まず分割ENAVコンテンツ1からダウンロードを行う。即ち、通信回線を介して外部のサーバ部500からENAVコンテンツを順次取得し、ENAVコンテンツの種類に応じて所定のバッファにバッファリングする。ENAVコンテンツの一部、即ち分割ENAVコンテンツ1のダウンロードが終了した後、DVDビデオコンテンツの再生を開始する。このとき、分割ENAVコンテンツ1の再生を行う一方で、分割ENAVコンテンツ2のダウンロードを行う。次に分割ENAVコンテンツ2の再生を行うときに、分割ENAVコンテンツ3のダウンロードを行う。以上を繰り返すことにより、ENAVコンテンツとDVDビデオコンテンツの同期再生を行うことができる。
図14は、DVDビデオコンテンツのチャプタ1とENAVコンテンツとを同期して再生している際に、チャプタ2にスキップしたときの再生を説明するための図である。この例においても、図13における例と同じように、1つのチャプタに対応するENAVコンテンツは、三つの分割ENAVコンテンツに分割されている。
再生開始を指示された再生装置は、まず分割ENAVコンテンツ1のダウンロードを行い、ダウンロードが完了した後、DVDビデオコンテンツの再生を開始する。このとき、図13と同様に、分割ENAVコンテンツ1の再生を行いながら、分割ENAVコンテンツ2をダウンロードし、分割ENAVコンテンツ2の再生を行いながら、分割ENAVコンテンツ3のダウンロードを行う。
例えば、チャプタ1(分割ENAVコンテンツ3)を再生している際に、ユーザがスキップボタンを押し、次のチャプタであるチャプタ2を再生するように要求した場合、まず再生装置は、オーディオ・コメンタリ・バッファ2093内にチャプタ2のENAVコンテンツのデータ(分割ENAVコンテンツ4)が存在するか否かを確認する。この例においては、スキップが指示されたとき、分割ENAVコンテンツ4のダウンロードが完了した状態であったため、すぐにDVDビデオコンテンツのチャプタ2の再生と、分割ENAVコンテンツ4の再生が可能となる。このとき、ダウンロードは、引き続いて分割ENAVコンテンツ4のダウンロードを行う。
図15は、DVDビデオコンテンツのチャプタ1とENAVコンテンツを同期して再生している際に、先のチャプタ6にスキップしたときの再生を説明するための図である。この例においても、図13における例と同じように、1つのチャプタに対応するENAVコンテンツは、以下のように三つの分割ENAVコンテンツに分割されている。
・DVDビデオコンテンツのチャプタ1に同期する三つの分割ENAVコンテンツ(分割ENAVコンテンツ1〜3)
・DVDビデオコンテンツのチャプタ6に同期する三つの分割ENAVコンテンツ(分割ENAVコンテンツk〜(k+2))
・DVDビデオコンテンツのチャプタ3に同期する三つの分割ENAVコンテンツ(分割ENAVコンテンツ(k+3)〜(k+5))
再生開始を指示された再生装置は、まず分割ENAVコンテンツ1のダウンロードを行い、ダウンロードが完了した後、DVDビデオコンテンツの再生を開始する。このとき、図13と同様に、分割ENAVコンテンツ1の再生を行いながら、分割ENAVコンテンツ2をダウンロードし、分割ENAVコンテンツ2の再生を行いながら、分割ENAVコンテンツ3のダウンロードを行う。
例えば、チャプタ1(分割ENAVコンテンツ3)を再生している際に、ユーザがスキップボタンを押し、先のチャプタであるチャプタ6を再生するように要求した場合、再生装置は、オーディオ・コメンタリ・バッファ2093内にチャプタ6のENAVコンテンツのデータ(分割ENAVコンテンツk)が存在するか否かを確認する。この例においては、スキップが指示されたとき、チャプタ2に同期するはずの分割ENAVコンテンツ4のダウンロードを行っている最中であり、チャプタ6の再生に必要なENAVコンテンツのデータのダウンロードはまだ行っていなかった。そこで、分割ENAVコンテンツ4のダウンロードを中断し、スキップ先であるチャプタ6の再生に必要な分割ENAVコンテンツkのダウンロードを行う。このとき、DVDビデオコンテンツは、チャプタ6の再生を分割ENAVコンテンツkのダウンロードが完了するまで一時停止する。分割ENAVコンテンツkのダウンロードが完了した後、DVDビデオコンテンツのチャプタ6の再生と、分割ENAVコンテンツkの再生を行うとともに、続きとなる分割ENAVコンテンツ(k+1)のダウンロードを行う。
図16及び図17を参照して、DVDビデオコンテンツの任意の箇所から再生を開始するときに、必要な分割ENAVコンテンツを検索して再生する処理を説明する。
例えば、DVDビデオコンテンツをタイトルの初めから再生する場合、DVDビデオコンテンツの先頭からの再生と同時にENAVコンテンツが先頭から再生される。これにより、DVDビデオコンテンツとENAVコンテンツを同期して再生することができる。一方、DVDビデオコンテンツを任意の箇所から再生する場合がある。例えばタイムサーチのような任意の指定された箇所から再生する場合がある。或いは、スキップした後の再生のように任意の指定されたチャプタから再生する場合がある。図12に示すように、ENAVコンテンツを分割し、それぞれの分割ENAVコンテンツに対してDVDビデオコンテンツに同期するための情報を持たす必要がある。
図16は、タイトル、タイトルの先頭からの時間情報を用いて、再生対象の分割ENAVコンテンツを検索する例を示すフローチャートである。
再生装置は、DVDビデオコンテンツの再生箇所に対応する分割ENAVコンテンツのデータが、プリロード・ダウンロード・バッファ部209内にあるか否かを検索する(ST102)。ここでは、再生箇所は、タイトル番号(target_title)と、タイトル開始位置からの時間(target_time)の指定により示されるものとする(ST101)。再生装置は、まずプリロード・ダウンロード・バッファ部209内に target_title と同じタイトル番号をENAVヘッダとしてもつ分割ENAVコンテンツのデータを検索する(ST103)。
次に、検索した分割ENAVコンテンツのデータの中から、以下の条件を満たす絶対時間と再生時間をENAVヘッダとしてもつ分割ENAVコンテンツを検索する(ST104、ST105)。
絶対時間(absolute_time) ≦ target_time < 絶対時間(absolute_time)+再生時間(playback_time)
目的の分割ENAVコンテンツのデータが存在しない場合(ST103、NO)(ST104、NO)(ST105、NO)、プリロード・ダウンロード・バッファ部209内には指定されたDVDビデオコンテンツに同期して再生するための分割ENAVコンテンツのデータが存在しないことになる(ST108)。この場合、サーバ部500から上記した条件を満たす分割ENAVコンテンツをダウンロードする必要がある(ST109)。このとき、DVDビデオコンテンツは分割ENAVコンテンツのダウンロードが完了するまで再生を停止しておく(ST109)。
プリロード・ダウンロード・バッファ部209内に、指定されたDVDビデオコンテンツに同期して再生するための分割ENAVコンテンツが存在する場合(ST106)、またはサーバ部500から指定された分割ENAVコンテンツのダウンロードが完了した場合(ST110、YES)、DVDビデオコンテンツに同期して、対応する分割ENAVコンテンツの再生を行う(ST107)。
絶対時間(absolute_time) = target_time であるとき、対応する分割ENAVコンテンツの再生と、指定されたDVDビデオコンテンツの箇所を同時に再生することにより、DVDビデオコンテンツとENAVコンテンツの同期再生が実現できる。
ここで、以下の条件を満たすとき、target_time-absolute_time だけの時間差が生じる。
絶対時間(absolute_time) < target_time < 絶対時間(absolute_time)+再生時間(playback_time)
このとき、対応する分割ENAVコンテンツのデータの途中の位置(target_time)からの再生を行う。つまり、対応する分割ENAVコンテンツにインデックスがある場合、以下を満たすインデックスkを検索し、インデックス位置kから再生を行う。
target_time =絶対時間(absolute_time)+インデックス時間k
もし、途中位置からの再生ができない場合、分割ENAVコンテンツをまず再生させ、target_time-absolute_time 遅らせてDVDビデオコンテンツを再生する。これにより、DVDビデオコンテンツとENAVコンテンツの同期再生が実現できる。これ以外にも、検索した分割ENAVコンテンツの次の分割ENAVコンテンツデータ、つまり分割番号が1だけ大きいENAVヘッダをもつENAVデータを、DVDビデオコンテンツが再生してから、absolute_time+playback_time−target_time だけ遅らせて再生することにより、同期再生が実現できる。
図17は、タイトル、タイトルの先頭からの時間情報を用いて分割ENAVコンテンツのデータを検索する流れを示すフローチャートである。
再生装置は、DVDビデオコンテンツの再生箇所に対応する分割ENAVコンテンツのデータが、プリロード・ダウンロード・バッファ部209内にあるか否かを検索する(ST202)。ここでは、再生箇所は、タイトル番号(target_title)と、チャプタ番号(target_chapter)と、チャプタ開始位置からの時間(target_ch_time)の指定により示されるものとする(ST201)。再生装置は、まずプリロード・ダウンロード・バッファ部209内に target_title と同じタイトル番号をENAVヘッダとしてもつ分割ENAVコンテンツを検索する(ST203)。
次に、検索した分割ENAVコンテンツの中から、target_chapter と同じチャプタ番号をENAVヘッダとしてもつ分割ENAVコンテンツを検索する(ST204)。更に、検索した分割ENAVコンテンツの中から、以下の条件を満たす絶対時間と再生時間をENAVヘッダとしてもつ分割ENAVコンテンツを検索する(ST205、ST206)。
相対時間(relative_time) ≦ target_ch_time < 相対時間(relative_time)+再生時間(playback_time)
目的の分割ENAVコンテンツが存在しない場合(ST203、NO)(ST204、NO)(ST205、NO)(ST206、NO)、プリロード・ダウンロード・バッファ部209内には指定されたDVDビデオコンテンツに同期して再生するための分割ENAVコンテンツのデータが存在しないことになる(ST209)。この場合、サーバ部500から目的の分割ENAVコンテンツをダウンロードする必要がある(ST210)。このとき、DVDビデオコンテンツは分割ENAVコンテンツのダウンロードが完了するまで再生を停止しておく(ST210)。
プリロード・ダウンロード・バッファ部209内に、指定されたDVDビデオコンテンツに同期して再生するための分割ENAVコンテンツが存在する場合(ST207)、またはサーバ部500から指定された分割ENAVコンテンツのダウンロードが完了した場合(ST211、YES)、DVDビデオコンテンツに同期して、対応する分割ENAVコンテンツの再生を行う(ST208)。
相対時間(relative_time) = target_ch_time であるとき、対応する分割ENAVコンテンツの再生と、指定されたDVDビデオコンテンツの箇所を同時に再生することにより、DVDビデオコンテンツとENAVコンテンツの同期再生が実現できる。
ここで、以下の条件を満たすとき、target_ch_time-absolute_time だけの時間差が生じる。
相対時間(relative_time) < target_ch_time < 相対時間(relative_time)+再生時間(playback_time)
このとき、対応する分割ENAVコンテンツのデータの途中の位置(target_ch_time)からの再生を行う。つまり、対応する分割ENAVコンテンツにインデックスがある場合、以下を満たすインデックスkを検索し、インデックス位置kから再生を行う。
target_time =相対時間(relative_time)+インデックス時間k
もし、途中位置からの再生ができない場合、分割ENAVコンテンツをまず再生させ、target_ch_time-relative_time 遅らせてDVDビデオコンテンツを再生する。これにより、DVDビデオコンテンツとENAVコンテンツの同期再生が実現できる。これ以外にも、検索した分割ENAVコンテンツの次の分割ENAVコンテンツ、つまり分割番号が1だけ大きいENAVヘッダをもつENAVデータを、DVDビデオコンテンツが再生してから、relative_time+playback_time−target_ch_time だけ遅らせて再生することにより、同期再生が実現できる。
図18は、オーディオ・コメンタリ・バッファ2093とオーディオ・バッファ2094を共有化した例を示す図である。
例えば、DVDタイトルに対して、オーディオ・コメンタリ・データを同期再生している最中でも、警告音やクリック音等の効果音は必要である。よって、オーディオ・コメンタリ・データと効果音はそれぞれ独立に再生しミックスして出力する。ミュージック・クリップのようなオーディオ・データと効果音に対しても同じようなことが当てはまる。ただし、オーディオ・コメンタリ・データとミュージック・クリップのようなオーディオ・データは必ずしも同時に出力する必要がない。つまり、オーディオ・コメンタリ・バッファ2093とオーディオ・バッファ2094が共存する必要は必ずしもない。
そこで、図18に示すようにオーディオ・コメンタリ・バッファ2093とオーディオ・バッファ2094は共有化した、共有バッファ(オーディオ・コメンタリ・バッファ/オーディオ・バッファ)2098を採用する。即ち、オーディオ・コメンタリ・バッファ2093とオーディオ・バッファ2094の替わりに、共有バッファ2098を採用する。共有バッファ2098は、図18に示すように、オーディオ・バッファA及びオーディオ・バッファBを備えている。
以下、共有バッファ2098の動作について説明する。共有バッファ2098がオーディオ・コメンタリ・バッファとして機能するときは、オーディオ・バッファAとオーディオ・バッファBは二つのバッファとして機能する。一方、共有バッファ2098がオーディオ・バッファとして機能するときは、オーディオ・バッファAとオーディオ・バッファBは一つの大きなバッファとして機能する。これにより、オーディオ・コメンタリ・バッファ2093と、オーディオ・バッファ2094をそれぞれ再生装置に用意する必要がなく、再生装置内のバッファを効率よく用いることが可能となる。
共有バッファ2098が、オーディオ・コメンタリ・バッファとして機能するときは、図10で説明したように、まず、入力のスイッチがオーディオ・バッファA(入力端子A)と接続し、出力のスイッチがオーディオ・バッファB(出力端子B)と接続する。これにより、ENAVコンテンツはオーディオ・バッファAにダウンロードされる(状態1)。
次に、入力のスイッチがオーディオ・バッファB(入力端子B)と接続し、出力のスイッチがオーディオ・バッファA(出力端子A)と接続する。これにより、ENAVコンテンツはオーディオ・バッファBにダウンロードされ、既にオーディオ・バッファAにダウンロードされているENAVコンテンツは出力される(状態2)。
再び、入力のスイッチがオーディオ・バッファA(入力端子A)と接続し、出力のスイッチがオーディオ・バッファB(出力端子B)と接続する。これにより、ENAVコンテンツは再びオーディオ・バッファAにダウンロードされ、既にオーディオ・バッファBにダウンロードされているENAVコンテンツは出力される(状態1)。
以上、状態1と状態2を繰り返すことにより、少ない容量の共有バッファ2098を用いて、DVDビデオコンテンツに同期してオーディオ・コメンタリ・データをサーバ部よりダウンロードしながら再生することが可能である。
共有バッファ2098が、オーディオ・バッファとして機能するときは、入力のスイッチがオーディオ・バッファA及びオーディオ・バッファBを共有可能な入力端子Cと接続し、出力のスイッチもオーディオ・バッファA及びオーディオ・バッファBを共有可能な出力端子Cと接続する。これにより、オーディオ・バッファAとオーディオ・バッファBを分け隔てなく、ENAVコンテンツのプリロード・ダウンロードや、そのデータの読み出しを行うことが可能となる。
図19は、最初に共有バッファ2098がオーディオ・コメンタリ・バッファとして機能し、次にオーディオ・バッファとして機能する例を示す図である。
再生区間iにおいてサーバ部500から共有バッファ2098にENAVコンテンツをダウンロードするときの平均ダウンロード速度をVdi(i=0〜4)と定義する。また、再生区間iにおいて共有バッファ2098からエレメント・デコーダ208の音声デコーダ2083にENAVコンテンツを読み出すときの平均読み出し速度をVoi(i=1〜4)と定義する。ただし、DVDビデオの再生を開始する前にダウンロードを行う平均ダウンロード速度は Vd0である。更に、ミュージック・クリップのためのENAVコンテンツをダウンロードを行うときの平均ダウンロード速度をVdとする。
まず、DVDの再生が要求されると、再生装置は、サーバ部500から共有バッファ2098のオーディオ・バッファAに分割ENAVコンテンツをダウンロードする(平均ダウンロード速度Vd0)。このとき、分割ENAVコンテンツのデータ量によってはオーディオ・バッファAの容量がいっぱいにならないこともある(準備区間:入力スイッチ−A、出力スイッチ−B)。
これと同時に、効果音バッファ2095に要求された効果音のためのENAVコンテンツのプリロード・ダウンロードを行う。これにより、オーディオ・コメンタリ再生中においても、ミュージック・クリップ再生中においても、効果音の再生が可能となる。
オーディオ・バッファAの容量が一杯になるまで(もしくはある一定の量まで)、つまり分割ENAVコンテンツのダウンロードが完了すると、ダウンロードした分割ENAVコンテンツはエレメント・デコーダ208の音声デコーダ2083に読み出される(平均読み出し速度Vo1)。これと同時にDVDビデオの再生が開始され、エレメント・デコーダ208の音声デコーダ2083でデコードされた分割ENAVコンテンツとDVDビデオコンテンツの同期再生が開始する。このとき、オーディオ・バッファBは、サーバ部500から分割ENAVコンテンツのダウンロードを行う(平均ダウンロード速度Vd1)。つまり、このとき、オーディオ・バッファAに記録された分割ENAVコンテンツが再生されていることになる(再生区間1:入力スイッチ−B、出力スイッチ−A)。
オーディオ・バッファAに記録されている分割ENAVコンテンツの再生がすべて終了すると、読み出されて必要のない分割ENAVコンテンツはオーディオ・バッファAよりすべて消去され、オーディオ・バッファAは再びサーバ部500から分割ENAVコンテンツをダウンロードする(平均ダウンロード速度Vd2)。また、オーディオ・バッファBはダウンロードされた分割ENAVコンテンツをエレメント・デコーダ208の音声デコーダ2083に送る(平均読み出し速度Vo2)。つまり、このとき、オーディオ・バッファBに記録された分割ENAVコンテンツが再生されていることになる(再生区間2:入力スイッチ−B、出力スイッチ−A)。
以上を繰り返し、再生区間4が終了した時点で、ミュージック・クリップの再生が指示されたとする。このとき、オーディオ・バッファAとオーディオ・バッファBの内容を消去する。さらに、入力スイッチを入力端子Cに、出力スイッチを出力端子Cに切り替える。次に、ミュージック・クリップのためのENAVコンテンツをオーディオ・バッファAとオーディオ・バッファBにダウンロードする(それぞれの平均ダウンロード速度はVd/2となる)。ダウンロードが完了次第、ミュージック・クリップの再生を開始する。
以上のように、共有バッファ2098を、オーディオ・コメンタリ・バッファ又はオーディオ・バッファに切り替えることにより、必要とされるバッファの容量を節約することが可能となる。ここで、オーディオ・コメンタリ・バッファとオーディオ・バッファの切替はバッファ・マネージャ204によるバッファ・コントロールにて制御される。
上記説明では、オーディオバッファA及びオーディオバッファBの二つのバッファ(ダブルバッファ)から構成されるオーディオ・コメンタリ・バッファ2093、及び共有バッファ(オーディオ・コメンタリ・バッファ/オーディオ・バッファ)2098について説明したが、この発明はこれに限定されるものではない。例えば、オーディオバッファA及びオーディオバッファBの替わりに、リングバッファを用いることによっても実現可能である。図20は、リングバッファにより構成されたオーディオ・コメンタリ・バッファ2093の一例を示す図である。
リングバッファは、記憶領域の初めと終わりが隣り合うように構成されており、バッファの容量を考慮せずに次々とデータを記憶することができる。リングバッファに対してデータが次々と記録されると、このリングバッファに書き込まれたデータのうち最も古いデータは新しいデータによって上書きされることになる。例えば、リングバッファに対して、ENAVコンテンツを分割して得られるデータA、データB、データC、及びデータDを順に記録するケースについて説明する。図20に示すように、リングバッファに対して、データA、データB、及びデータCが順に記録されるとする。この時点で、リングバッファの残容量がデータDのサイズより大きい場合は、そのままリングバッファに対してデータDを記録することができる。しかし、リングバッファの残容量がデータDのサイズより小さい場合は、最も古いデータであるデータAの全て、もしくはデータDの記録に必要な分だけデータAを消去し、図21に示すようにデータCと連続するようにデータDを記録する。もし、リングバッファからデータAを消去しても、リングバッファの残容量が不足してデータDを記録できない場合は、さらにリングバッファからデータBの全て、もしくはデータDの記録に必要な分だけデータBも消去する。このようにしてデータを記録することにより、サーバより分割して取得されたENAVコンテンツをリングバッファ上で連続的に扱うことができる。
以上のように、リングバッファにより構成されたオーディオ・コメンタリ・バッファ2093を利用することにより、ダブルバッファにより構成されたオーディオ・コメンタリ・バッファ2093を利用するよりも、制御を単純化することが可能となる。また、分割されたENAVコンテンツのそれぞれのサイズが大きく異なるような場合でも、余分な記録領域を消費せずにすむ(効率良く記憶領域を利用することができる)。
ただし、リングバッファにおいても、ダブルバッファと同様に、以下の条件を満たす必要がある。
平均読み出し速度 ≦平均ダウンロード速度
なお、本願発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、各実施形態は可能な限り適宜組み合わせて実施してもよく、その場合組み合わせた効果が得られる。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適当な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
1…リードインエリア、2…ボリューム/ファイル構造情報エリア、3…DVDビデオエリア、4…他の記録エリア、5…リードアウトエリア、C1…DVDビデオコンテンツ、C21…ENAVコンテンツ(ディスクに格納)、C22…ENAVコンテンツ(サーバに格納)、D1…DVDビデオディスク、D2…エンハンスドDVDビデオディスク、100…DVDビデオ再生エンジン、101…DVDビデオデコーダ、102…DVDビデオ再生制御部、200…ENAVエンジン、201…ユーザ・イベント・コントローラ、202…ENAVインターフェース・ハンドラ、203…AVレンダラ、204…バッファ・マネージャ、205…ECMAScriptインタープリタ、206…SMILタイミング・エンジン、207…XHTML/CSSレイアウト・マネージャ、208…エレメント・デコーダ、209…プリロード・ダウンロード・バッファ部、210…XHTML+SMIL/CSSパーサ、211…インターネット接続部、300…ディスク部、400…ユーザ・インターフェース部、500…サーバ部