以下、図面を参照しながら本実施形態について説明する。
まず最初に、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は、ENAVバッファ部(プリロード・ダウンロード・バッファ)209、XHTML+SMIL/CSSパーサ210、XHTML/CSSレイアウト・マネージャ207、ECMAScriptインタープリタ & DOMマニピュレータ205、SMILタイミング・エンジン206、ENAVインターフェース・ハンドラ202、エレメント・デコーダ2081、2082、AVレンダラ203、バッファ・マネージャ204、ダウンロード・マネージャ213、ネットワーク・マネージャ212、ENAVシステム・クロック214を含んでいる。
なお、図3のブロック構成において、DVDビデオ再生制御部102、DVDビデオデコーダ101、DVDシステム・クロック103、ENAVインターフェース・ハンドラ202、XHTML+SMIL/CSSパーサ210、ECMAScriptインタープリタ & DOMマニピュレータ205、SMILタイミング・エンジン206、XHTML/CSSレイアウト・マネージャ207、AVレンダラ203、エレメント・デコーダ2081、2082、バッファ・マネージャ204、ダウンロード・マネージャ213、ネットワーク・マネージャ212、ENAVシステム・クロック214等は、図示しない組込プログラム(ファームウエア)により各ブロック構成の機能を果たすマイクロコンピュータ(および/またはハードウエアロジック)により実現できる。このファームウエアを実行する際に使用するワークエリアは、各ブロック構成内の図示しない半導体メモリ(および必要に応じてハードディスク)を用いて得ることができる。
DVDビデオ再生エンジン100は、既存のDVDビデオ規格に基づくDVDビデオコンテンツC1を再生するための装置であり、ディスク部300より読み込んだこんだDVDビデオコンテンツC1をデコードするDVDビデオデコーダ101およびDVDビデオコンテンツC1の再生制御を行うDVDビデオ再生制御部102、DVDビデオダコーダにおけるデコードや出力のタイミングを決定するDVDシステム・クロック103を含んで構成される。
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に出力することができる。
ENAVインターフェース・ハンドラ202は、ユーザ操作(メニューコール、タイトルジャンプ、再生スタート、再生停止、再生ポーズ、その他)に対応した“ユーザ・トリガ”をユーザ・インターフェース部400から受け取る。その上で、ENAVインターフェース・ハンドラ202は、受け取ったユーザ・トリガを対応するENAVイベントとして、ECMAScirptインタープリタ & DOMマニピュレータ205に伝達する。例えば、ENAVドキュメントには、このENAVイベントに対して以下のような指示が示されている。
1、ユーザ操作に対応するENAVコマンドを発行する。つまり、ユーザ操作と同じコマンドがDVDコントロールとしてDVDビデオ再生エンジン100に伝達される。
2、ユーザ操作とは異なるENAVコマンドを発行する。つまり、ユーザ操作がENAVドキュメントの指示により、別の動作に置き換えられる。
3、ユーザ・トリガを無視する。つまり、コンテンツ・プロバイダの意図しないDVDビデオの再生を行う可能性がある等の理由からユーザ・イベントを禁止する。
なお、ENAVインターフェース・ハンドラ202に伝達されたユーザ・トリガ信号の内容は、“AV出力コントロール”信号として、AVレンダラ203に伝達するように構成することもできる。これにより、例えば、ユーザが図示しないリモコンのカーソルキーでコンテンツまたはウインドウサイズを変更したりその表示位置をシフトさせる操作をした場合に、この操作によるユーザ・トリガ信号を対応するAV出力コントロール信号として、AVレンダラ203に出力する。これ以外にも、DVDビデオ再生エンジン100からの映像・音声出力と、ENAVエンジン200からの映像・音声出力の切替を示すユーザ・トリガをAVレンダラ203に送ることにより、ユーザ操作による映像・音声出力の切替を行うことが可能である。
ENAVインターフェース・ハンドラ202は、DVDビデオ再生制御部102との間で“DVDステータス”信号、“DVDトリガ”信号および/または“DVDコントロール”信号の送受信を行い、あるいはユーザ・インターフェース部400との間で“ユーザ・トリガ”信号の送受信を行う。ENAVインターフェース・ハンドラ202はさらに、ECMAScriptインタープリタ & DOMマニピュレータ205やSMILタイミング・エンジン206との間で、“ENAVイベント”、“ENAVプロパティ”、“ENAVコマンド”、“ENAVコントロール”信号の送受信を行うように構成されている。すなわち、ENAVインターフェース・ハンドラ202は、以下を実行する。
1、DVDビデオ再生エンジン100からのDVDビデオ再生エンジン100の動作を示す“DVDトリガ”信号、またはユーザ・インターフェース部400からのユーザの操作を示す“ユーザ・トリガ”を“ENAVイベント”として、ECMAScriptインタープリタ & DOMマニピュレータ205とSMILタイミング・エンジン206に伝達する。
2、DVDビデオ再生エンジン100からのDVDビデオ再生エンジン100の再生状況を示す“DVDステータス”信号を“ENAVプロパティ”として、ECMAScriptインタープリタ & DOMマニピュレータ205とSMILタイミング・エンジン206に伝達する。このとき、DVDステータスは情報は、ENAVインターフェース・ハンドラ202のプロパティ・バッファ202aに随時保存される。
3、SMILタイミング・エンジン206からの“ENAVコントロール”信号を“DVDコントロール”信号としてDVDビデオ再生エンジン100に伝達する。
4、ECMAScriptインタプリタ & DOMマニピュレータ205からの“ENAVコマンド”信号の内容に応じて、DVDビデオ再生エンジン100へDVDビデオ再生エンジン100の再生を制御するための“DVDコントロール”信号を、AVレンダラ203へ映像や音声の切替を行うための“AV出力コントロール”信号を、バッファ・マネージャ204へバッファへの読み込みやバッファの消去を行うための“バッファ・コントロール”信号を、ダウンロード・マネージャ213へサーバ部にあるENAVコンテンツのダウンロードを行うための“タウンロード・コントロール”信号を、エレメント・デコーダ2081、2082へENAVエレメントのデコードを指示する“エレメント・コントロール”信号を出力する。
5、DVDビデオ再生エンジン100におけるDVDシステム・クロック103の情報をENAVインターフェース・ハンドラ202のDVDタイミング・ジェネレータ202bにて計測し、“DVDタイミング”信号として、エレメント・デコーダ2082に伝達する。つまり、エレメント・デコーダ2082はDVDビデオ再生エンジン100のシステム・クロックに同期して、ENAVエレメントをデコードすることが可能である。
以上のように、ENAVインターフェース・ハンドラ202は、ENAVコンテンツを解析・解釈してから、DVDビデオ再生エンジン100とENAVエンジン200との間で制御信号等の変換を行う機能をもつ。
ENAVインターフェース・ハンドラ202は、XHTML+SMIL/CSSパーサ210で解析され、ECMAScriptインタープリタ & DOMマニピュレータ205、SMILタイミング・エンジン206にて解釈された内容、または入力装置からのユーザ・トリガに基づいて、第1信号の交換を行うとともに、第2信号の交換を行なうように構成されている。別の言い方をすると、ENAVインターフェース・ハンドラ202は、DVDビデオ再生制御部102との間で交換される第1信号、およびECMAScriptインタープリタ & DOMマニピュレータ205、SMILタイミング・エンジン206との間で交換される第2信号の少なくとも一方に基づいて、AVレンダラ203による映像・音声信号の出力状態を制御するものであるとも言える。第1信号とは、エンハンスドDVDビデオディスクD2の再生状況に関する信号であり、“DVDコントロール”信号、“DVDトリガ”信号、“DVDステータス”信号などが該当する。第2の信号とは、ENAVコンテンツの内容に関する信号であり、“ENAVイベント”信号、“ENAVコマンド”信号、“ENAVプロパティ”信号、“ENAVコントロール”信号などが該当する。
ここで、ENAVインターフェース・ハンドラ202は、ENAVドキュメントに従って、ユーザ・トリガに対応した処理を実行するように構成されている。そして、AVレンダラ203が、ユーザ・トリガに対応した処理の実行結果に基づいて、エレメント・デコーダ208で生成された映像・音声データをDVDビデオ再生エンジン100で再生された映像・音声データに合成して出力するように構成されている。あるいはAVレンダラ203はENAVインターフェース・ハンドラ202におけるENAVコマンドの実行結果に基づいてエレメント・デコーダ208で生成された映像・音声データおよびDVDビデオ再生エンジン100で再生された映像・音声データの一方を選択して出力映像・音声データおよび映像・音声データの一方を選択して出力するように構成されている。
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インタープリタ & DOMマニピュレータ205に、SMILモジュールはSMILタイミング・エンジン206に、XHTMLモジュールはXHTML/CSSレイアウト・マネージャ207に伝達する機能をもつ。
ECMAScriptインタープリタ & DOMマニピュレータ205は、前述のECMAScriptモジュールを解釈し、その指示に従う。つまり、ECMAScriptインタープリタ& DOMマニピュレータ205は、ENAVインターフェース・ハンドラ202から送られる“ENAVイベント”信号や、ENAVインターフェース・ハンドラ202のプロパティ・バッファから読み取る“ENAVプロパティ”信号に対して、ENAVエンジン200における各機能を制御するための“ENAVコマンド”信号をENAVインターフェース・ハンドラ202に発行する機能をもつ。このとき、ECMAScriptインタープリタ & DOMマニピュレータ205は、ENAVシステム・クロック214が計測する時間に従うことにより、ENAVドキュメントが指示するタイミングで“ENAVコマンド”信号をDVDビデオ再生エンジン100に発行したり、“エレメント・コントロール”信号をエレメント・デコーダ208に発行することにより、DVDビデオ再生エンジン100のコントロールや、ENAVエレメント(音声、静止画、テキスト・フォント、動画・アニメーション)のデコードが可能である。
SMILタイミングエンジン206は、前述のSMILモジュールを解釈し、その解釈された指示に従う。つまり、SMILタイミングエンジン206は、ENAVインターフェース・ハンドラ202から送られる“ENAVイベント”信号や、ENAVインターフェース・ハンドラ202のプロパティ・バッファから読み取る“ENAVプロパティ”信号に対し、ENAVシステム・クロック214に従って、“ENAVコントロール”信号をENAVインターフェース・ハンドラ202、またはエレメント・デコーダ208に発行する機能をもつ。これにより、所望のタイミングでDVDビデオ再生エンジン100のコントロールやENAVエレメント(音声、静止画、テキスト・フォント、動画・アニメーション)のデコードが可能でなる。
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からの音声レベルを変えたり、使用音声言語を選択するものもある。音声レベルの変更は、音声レベルの変更を命令するコマンドと変更後の音声レベルを指定する変数により指示される。使用音声言語の選択は、使用音声言語の変更を命令するコマンドと変更後の言語の種類を指定する変数により指示される。ユーザ・インターフェース部400からのユーザ・トリガを制御するものもある。
上記で例示したようなENAVドキュメントにおけるMarkup言語やScript言語のコマンド/変数に基づいて、“レイアウトコントロール”信号が、XHTML/CSSレイアウト・マネージャ207(一部の機能はSMILタイミング・エンジン206によって行われる場合もある)からAVレンダラ203に送られるようになっている。“レイアウトコントロール”信号は、図示しない外部モニター装置等で表示すべき映像の画面上のレイアウト、映像のサイズ、映像の出力タイミング、映像の出力時間、および/または図示しない外部スピーカから再生すべき音声の音量レベル、音声の出力タイミング、音声の出力時間を制御する信号である。
エレメント・デコーダ208は、ENAVコンテンツC21、C22に含まれる音声、静止画(背景画を含む)、テキスト・フォント、動画・アニメーション等のENAVコンテンツのデータをデコードする。つまり、エレメント・デコーダ208は、デコード対象に対応して音声デコーダ、静止画デコーダ、テキスト・フォント・デコーダ、アニメーション・動画デコーダを含んでいる。例えばMPEG、AC−3、DTSでエンコードされたENAVコンテンツ中の音声データは、音声デコーダによりデコードされて非圧縮の音声データに変換される。また、JPEG、GIF、PNGでエンコードされた静止画データや背景画データは、静止画デコーダによりデコードされて非圧縮の画像データに変換される。同様に、例えばMPEG2、MPEG4、MacromediaFlash、SVG(Scalable Vector Graphics)でエンコードされた動画・アニメーションデータは、動画・アニメーションデコーダによりデコードされて非圧縮の動画データに変換される。また、ENAVコンテンツに含まれるテキストデータは、ENAVコンテンツに含まれるフォントデータを用い、テキスト・フォントデコーダによりデコードされて、動画または静止画の画像にスーパーインポーズ可能なテキスト画像データに変換される。これらデコードされた音声データ、画像データ、アニメーション・動画データ、およびテキスト画像データを適宜含む映像・音声データは、エレメント・デコーダ208からAVレンダラ203に送られる。また、これらENAVコンテンツは、ENAVインターフェース202からの“エレメント・コントロール”信号の指示によりデコードを行うとともに、DVDビデオコンテンツに同期するENAVコンテンツ(例えばオーディオ・コメンタリ・データやオーディオ・アフレコ・データ)は、ENAVインターフェース202からの“DVDタイミング”信号に同期して、DVDビデオコンテンツに同期しないENAVコンテンツは、ENAVシステム・クロック214からの“ENAVタイミング”信号に同期してデコードが行われる。
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ドキュメントをENAVバッファ部209を介してXHTML+SMIL/CSSパーサ210に送るためのインターフェース、および読み取られたENAVコンテンツC21中のデータ(音声データ、静止画データ、テキスト・フォントデータ、動画データ等)をENAVバッファ部209を介してエレメント・デコーダ208に送るためのインターフェースを備えている。これらのインターフェースは、図3のインターネット接続部211とは別のインターフェース(第1のインターフェース)を構成している。
また、図3のDVDビデオプレーヤは、インターネット等の通信回線からENAVコンテンツC22を受け取り、受け取ったENAVコンテンツC22中のENAVドキュメントをENAVバッファ部209を介してXHTML+SMIL/CSSパーサ210に送るためのインターフェース、および受け取ったENAVコンテンツC22中のデータ(音声データ、静止画データ、フォント・テキストデータ、動画データ等)をENAVバッファ部209を介してエレメント・デコーダ208に送るためのインターフェースを備えている。これらのインターフェースが、図3のインターネット接続部(第2のインターフェース)を構成している。
ENAVバッファ部209は、サーバ部500からダウンロードしたENAVコンテンツC22を記憶するとともに、ディスク部300によりエンハンスドDVDビデオディスクD2から読み込んだENAVコンテンツC21を記憶するためのバッファから構成される。
ENAVバッファ部209は、ENAVドキュメント(Markup言語/Script言語)に基づいたバッファ・マネージャ204の制御により、サーバ部500にあるENAVコンテンツC22を読み、インターネット接続部211を介して、ENAVコンテンツC22をダウンロードする。
また、ENAVバッファ部209は、ENAVドキュメント(Markup言語/Script言語)に基づいたバッファ・マネージャ204の制御により、エンハンスドDVDビデオディスクD2に記録されているENAVコンテンツC21を読み込む。このとき、ディスク部300がディスクに対して高速アクセス可能な装置であれば、DVDビデオコンテンツC1を再生しながら、つまりエンハンスドDVDビデオディスクD2よりDVDビデオ・データを読み出しながら、同時にエンハンスドDVDビデオディスクD2からENAVコンテンツC21を読み出すことができる。ディスク部300が高速アクセス可能な装置でない場合、もしくはDVDビデオコンテンツC1の再生動作を完全に保障する場合は、DVDビデオコンテンツC1の再生を中断させないようにする必要がある。この場合は、再生が開始する前にあらかじめエンハンスドDVDビデオディスクD2からENAVコンテンツC21を読み出し、ENAVバッファ209のプリロード部(図示せず)に記憶しておく。これにより、DVDビデオコンテンツC1をエンハンスドDVDビデオディスクD2から読み出すと同時に、ENAVコンテンツC21をプリロード部から読み出すことにより、ディスク部300に負担をかけずにすむ。よって、DVDビデオコンテンツC1の再生を中断させずに、DVDビデオコンテンツC1とENAVコンテンツを同時に再生することが可能となる。
以上のように、サーバ部500からダウンロードしたENAVコンテンツC22も、エンハンスドDVDビデオディスクD2に記録されているENAVコンテンツC21と同様に、ENAVバッファ部209に記憶させることにより、DVDビデオコンテンツC1とENAVコンテンツC22と同時に読み出し再生することが可能になる。
また、ENAVバッファ部209の記憶容量には、限界がある。つまり、ENAVバッファ部209に記憶できるENAVコンテンツC21、C22のデータサイズには限りがある。このため、バッファ・マネージャ204の制御により(バッファ・コントロール)、必要性の低いENAVコンテンツC21、C22を消去したり、必要性の高いENAVコンテンツC21、C22を保存したりすることが可能である。前述の保存のための制御や、前述の消去のための制御は、ENAVバッファ部209が自動的に行うことも可能である。
バッファ・マネージャ204はENAVドキュメントの指示により、ENAVバッファ部209に対して、以下のような指示を“バッファ・コントロール”として送ることが可能である。
・特定ファイルまたはファイルの一部のサーバからの読み込み(ダウンロード)
・特定ファイルまたはファイルの一部のディスクからの読み込み(プリロード)
・バッファからの特定ファイルまたはファイルの一部の消去
ダウンロード・マネージャ213は、ENAVドキュメントの指示により、ディスク部300のエンハンスドDVDディスクD2またはサーバ部500よりダウンロード・データを取得し、そのダウンロード・データを解釈し、必要なENAVコンテンツをサーバ部500よりダウンロードし(ダウンロード・コントロール)、ENAVバッファ209に保持する機能を持つ。
例えば、ダウンロード・データが、ダウンロードするファイル名とロケーション、ファイル・サイズ、コンテンツ・タイプから構成されている場合、ENAVドキュメントが指示するタイミングで、ディスク上のダウンロード・データもしくは、サーバ上のダウンロード・データを読み込む。ダウンロード・マネージャ213は、そのファイルに記述されている順に(もしくはすべて同時に)ダウンロードを指示する(ダウンロード・コントロール)。
例えば、ダウンロード・データが、ダウンロードするファイル名とロケーション、ファイル・サイズ、コンテンツ・タイプ、再生開始時刻、再生終了時刻から構成されている場合、ENAVドキュメントの読み込みとともに、ENAVドキュメントが指示するディスク上のダウンロード・データもしくは、サーバ上のダウンロード・データを読み込む。ダウンロード・マネージャ213は、ダウンロード・データのファイル・サイズと再生開始時間を参考に、ENAVバッファの容量一杯まで、再生の優先度の高いENAVコンテンツを読み込み、再生を開始する。次に、再生終了時間を参考に、再生が終了したENAVコンテンツをENAVバッファから消去し、新しいENAVコンテンツを読み込む。
ネットワーク・マネージャ212は、インターネット接続部211の動作を制御する。つまり、ENAVドキュメントにより、ネットワークへの接続や非接続がENAVコマンドとして指示されると、ネットワーク・マネージャ212はインターネット接続部211の接続・非接続の切替を行う。
図3のENAVエンジンの構成要素は、表現を変えると、次のように纏めることができる。すなわち、ENAVエンジンは、以下から構成されている。
・XHTML+SMIL/CSSパーサ210
XHTML+SMIL/CSSパーサ210は、ENAVドキュメントの内容を構文解析する。
・ECMAScriptインタープリタ & DOMマニピュレータ205、SMILタイミング・エンジン206、XHTML/CSSレイアウト・マネージャ207
ECMAScriptインタープリタ & DOMマニピュレータ205、SMILタイミング・エンジン206、XHTML/CSSレイアウト・マネージャ207は、解析されたモジュールを解釈する。
・ENAVインターフェース・ハンドラ202
ENAVインターフェース・ハンドラ202は、ECMAScriptインタープリタ & DOMマニピュレータ205やSMILタイミング・エンジン206からの制御信号と、DVDビデオ再生制御部102からの制御信号をハンドルする。
・エレメント・デコーダ208
エレメント・デコーダ208は、DVD再生エンジンのシステム・クロックまたはENAVエンジンのシステム・クロックに同期して、ENAVコンテンツC21、C22に含まれる音声、静止画、テキスト・フォント、動画等のデータに対応した映像・音声データを生成する。
・AVレンダラ203
AVレンダラ203は、ENAVインターフェース・ハンドラ202におけるENAVコマンドの実行結果に基づいて、エレメント・デコーダ208で生成された映像・音声データをDVDビデオ再生エンジン100で再生された映像・音声データに合成して出力する。あるいはAVレンダラ203はENAVインターフェース・ハンドラ202におけるENAVコマンドの実行結果に基づいてエレメント・デコーダ208で生成された映像・音声データおよびDVDビデオ再生エンジン100で再生された映像・音声データの一方を選択して出力する。
・ENAVバッファ部209
ENAVバッファ部209は、ディスク部300またはインターネット接続部211を介してサーバ部500より取得したENAVコンテンツC22を一時記憶する。
・バッファ・マネージャ204
バッファ・マネージャ204は、ENAVインターフェース・ハンドラ202の指示(ENAVドキュメントの指示)により、ENAVバッファ部209にENAVコンテンツのデータ読み込んだり、ENAVバッファ部209から消去したりする。
・ダウンロード・マネージャ213
ダウンロード・データをもとにサーバ部からENAVバッファへのENAVコンテンツのダウンロードを行う。
・ネットワーク・マネージャ212
ENAVドキュメントの指示により、ネットワークへの接続や非接続等の制御を行う。
図4は、画素変換機能とそれに関係する機能を示す概略図である。
DVDビデオ・コンテンツは、DVDビデオ再生エンジン100のデコーダ部101にてデコードされ、ENAVドキュメントに基づいたXHTML/CSSレイアウト・マネージャ207の指示(コンバージョン・コントロール)により、LB/PS変換部101aにて、“レターボックス変換(LB変換)”、“パンスキャン変換(PS変換)”、または“変換なし”のいずれかの変換が行われる(LB/PS変換)。更に、変換された出力は、DVDビデオリサイジング部203fにて、XHTML/CSSレイアウト・マネージャ207の指示(コンバージョン・コントロール)により、指定の大きさに変換される。(縮小、拡大、等倍) 次に、ENAVドキュメントに基づいたXHTML/CSSレイアウトマネージャ207の指示(レイアウト・コントロール)によりレイアウト・エンジン203jにてモニター上の配置が決まり、混成器203kにて他のENAVエレメント(静止画、アニメーション・動画、フォント、背景)と混成される。
このとき、XHTML/CSSレイアウト・マネージャ207による“LB変換”、“PS変換”、“変換なし”の切替は、ENAVドキュメントの記述が許す限り、ユーザ操作による切替も可能である。つまり、ユーザ・インターフェース部400からのユーザ・トリガにより、前述の変換の切替をDVDコントロールとしてDVDビデオ再生エンジン100のDVDビデオ再生制御部102に伝達する。
次に、静止画データとアニメーション・動画データは、エレメント・デコーダ2081の静止画デコーダ2081aとアニメーション・動画デコーダ2081bにてデコードされ、AVレンダラ203内の静止画変換部203aまたはアニメーション・動画・画素変換部203bにて、XHTML/CSSレイアウト・マネージャ207の指示(コンバージョン・コントロール)、ENAVインターフェース・ハンドラから取得できる‘出力を指定されたモニターの情報(モニター情報)’、静止画デコーダ2081aとアニメーション・動画デコーダ2081bからの情報(画像情報)に基づいて、画素変換が行われる(静止画・画素変換とアニメーション・動画・画素変換)。
ここで、上記のモニター情報とは、出力を指定されているモニターが“4:3TVモニター”、“16:9TVモニター”、“PCモニター”のいずれかを示す。言い換えると、モニター情報とは、出力先となる実際のモニターが、PCモニター、4:3TVモニター、16:9TVモニターのいずれかを示す情報(実際のモニター情報)である。また、上記の画像情報とは、デコードされた静止画とアニメーション・動画データがどのモニターへの表示が想定されているか、つまり“4:3TVモニター用”、“16:9TVモニター用”、“PCモニター用”、“指定なし”のいずれかを示す。言い換えると、画像情報とは、PCモニター、4:3TVモニター、16:9TVモニターのどのモニターに出力するのが最適かを示す情報(最適なモニター情報)である。
例えば、前述の静止画データや動画・アニメーションデータには、どのモニターへの表示が想定されているかを示す情報を記録する領域が設けてあり、それぞれのデコーダはデータそのものをデコードするとともに、このモニター情報を読み取り画素変換部203a、203b、203c、203dに伝達する。更に、ENAVドキュメントには、ある静止画データまたはアニメーション・動画データに対して、画像情報(最適なモニター情報)とモニター情報(実際のモニター情報)の内容が異なっている場合、“PS変換”、“LB変換”または“変換なし”が記述されており、この情報をコンバージョン・コントロールとして画素変換部203a、203b、203c、203dに伝達する。
更に、画像情報(最適なモニター情報)は、静止画データまたはアニメーション・動画データの内部に限らず、例えば、その静止画データまたはアニメーション・動画データのファイル名として記録することも可能である。
例えば、ある静止画データまたはアニメーション・動画データにおいて、モニター情報(実際のモニター情報)が“4:3TVモニター”を示し、画像情報(最適なモニター情報)も“4:3TVモニター用”を示す場合は、画像データとモニターの関係が一致しているため、無条件で変換を行わない。モニター情報(実際のモニター情報)が“16:9TVモニター”を示し、画像情報(最適なモニター情報)が“4:3TVモニター用”を示す場合は、画像データとモニターの関係が異なっているため、ENAVドキュメントの記述にしたがって、いずれかの変換(PS変換、LB変換、変換なし)を行う。
別の例として、静止画データやアニメーション動画データがどのモニターに表示することを想定してるかがENAVドキュメントに記述されている場合がある。つまり、静止画データ、アニメーション・動画データに画像情報が記録されていなくても、また画素変換部203a、203b、203c、203dが各デコーダ2081a、2081b、2081cから画像情報を取得しなくても、モニター情報(実際のモニター情報)と、ENAVドキュメントの記述に従い、いずれかの変換を行うことも可能である。
更に、画素変換された静止画データ、アニメーション・動画データは、静止画リサイジング部203gまたはアニメーション・動画リサイジング部203hにて、XHTML/CSSレイアウト・マネージャ207の指示(コンバージョン・コントロール)により、図5に示すように、指定の大きさに変換(縮小、拡大、等倍など)される(静止画リサイジング、アニメーション・動画リサイジング)。
DVDビデオは、DVDビデオリサイジング部203fにより、必要に応じてリサイジングされる。静止画は、静止画リサイジング部203gにより、必要に応じてリサイジングされる。アニメーション・動画は、アニメーション・動画リサイジング部203hにより、必要に応じてリサイジングされる。背景画は、背景画リサイジング部203iにより、必要に応じてリサイジングされる。
画素変換とリサイジングは、順序を逆にしても、つまり、指定の大きさにリサイジングを行ってから、指定の画素変換を行うことによって実現することも可能である。ここで、画素変換やリサイジングを行うと、それぞれの変換において画質の劣化が生じる。そこで画素変換を行う順序とリサイジングを行う順序を、その変換方法とリサイジング方法によって変化させることにより、その劣化を抑えることが可能となる。例えば、LB変換(画素変換)を行ったのち、拡大(リサイジング)を行うと、LB変換によって生じた誤差が拡大によって大きくなってしまう。この場合、拡大(リサイジング)を行ったのち、LB変換(画素変換)を行うと誤差を大きくせずにすむ。
最後にリサイジングされた静止画データ、アニメーション・動画データは、レイアウト・エンジン203jにて、ENAVドキュメントにて指定された位置に配置され(XHTML/CSSレイアウト・マネージャ207からのレイアウト・コントロール)、混成器203kのフレーム・メモリ上にて、DVDビデオや他のENAVエレメント(フォント、背景)と混成される。
ENAVドキュメントのテキスト・データは、フォント・データを用いて、エレメント・デコーダ2081のフォント・デコーダ2081cにてデコードされ、フォント・エンジン/フォント画素変換部203cにてラスタライズされる。同時にフォント・エンジン/フォント画素変換部203cにて、XHTML/CSSレイアウト・マネージャ207の指示(コンバージョン・コントロール)により、ENAVインターフェース・ハンドラ202から取得できる‘出力を指定されているモニターの情報(モニター情報)’、フォント・デコーダ2081cからの情報(画像情報)に基づいて、必要に応じて画素変換が行われる(フォント画素変換)。ここで、コンバージョン・コントロール、モニター情報(実際のモニター情報)、画像情報(最適なモニター情報)については、前述の静止画データ、アニメーション・動画データと同じものである。
また、フォント・データには、表示する大きさに対応したデータそれぞれ格納してあるため、XHTML/CSSレイアウト・マネージャ207が要求するフォント・データを用いれば、リサイジングの必要はない。しかし、フォント・データとして格納されているフォント・サイズの種類が十分でない場合は、あるサイズのフォント・データから指定されたサイズのフォント・データに変換(拡大もしくは縮小)する必要がある。
更に、ラスタライズされたフォント・データは、ライン・レイアウト・エンジン203nにて、文字間隔の修正や文字幅の修正を行う。これは、ENAVドキュメントが指定した、一行・一列にレイアウトする文字列または文字数が、ENAVドキュメントの指定どおり収まるように調節を行う機能である。例えば、一行に配置すべきある文字列が二行にわたってしまった場合、文字間隔や文字幅を小さくすることにより一行に収まるように配置する。逆に、行全体に配置すべき文字列が行全体に満たなかった場合、文字間隔や文字幅を大きくすることにより行全体に配置する。
最後に、フォント・データは、レイアウト・エンジン203jにてENAVドキュメントにて指定された位置に配置され(レイアウト・コントロール)、混成器203kのフレーム・メモリ上にて、DVDビデオや他のENAVエレメント(静止画、アニメーション・動画、背景)と混成される。
背景画データは、エンハンスドDVDディスクもしくはサーバ部500に記録されている静止画データを用いる場合と、AVレンダラ203にて指定された背景画を作成する場合の二種類がある。
前者においては、ENAVドキュメントにて背景画として指定された静止画データは、エレメント・デコーダ2081内の背景画デコーダ2081dにてデコードされる。更に、デコードされた背景画データは、AVレンダラ203内の背景画・画素変換部203dにて、XHTML/CSSレイアウト・マネージャ207の指示(コンバージョン・コントロール)、ENAVインターフェース・ハンドラから取得できる‘出力を指定されているモニターの情報(モニター情報)’、背景画デコーダからの情報(画像情報)に基づいて、画素変換が行われる(背景画・画素変換)。ここで、コンバージョン・コントロール、モニター情報(実際のモニター情報)、画像情報(最適なモニター情報)については、前述の静止画データ、アニメーション・動画データと同じものである。
更に、画素変換された背景画データは、XHTML/CSSレイアウト・マネージャ207の指示(コンバージョン・コントロール)により、背景画リサイジング部203iにおいて指定の大きさに変換(縮小、拡大、等倍など)される(背景画リサイジング)。
リサイジングされた背景画データは、背景用フレーム・メモリ(図示せず)に、ENAVドキュメントにて指定された方法で展開される。例えば、展開の方法としては、一枚の背景画データを指定された位置に配置する方法や、同じ背景画データを複数枚並べて配置する方法がある。
最後に、背景用フレーム・メモリのデータを混成器203kのフレーム・メモリに展開する。このとき、背景用フレーム・メモリのデータは、DVDビデオや他のENAVエレメント(静止画、アニメーション・動画、フォント)から構成される混成器203kのフレーム・メモリのデータに対して排他論理和をとったものを混成器204kのフレーム・メモリに足し合わせる。つまり、静止画、アニメーション・動画、フォントのデータが配置されていない混成器203kのフレーム・メモリ上の画素のみに対して、背景画用フレーム・メモリのデータを混成器203kのフレーム・メモリ上に配置する。これにより、静止画データ、アニメーション・動画データ、フォント・データが背景画データより優先されて(上に)配置される。
後者においては、ENAVドキュメントにて指定された“色”、“模様”等の情報をもとに、AVレンダラ203の背景生成部203eは、背景となるデータを作成する。作成した背景データは、前者と同じように背景用フレームメモリに展開され、混成器203kのフレーム・メモリに、DVDビデオや他のENAVエレメントと混成される。
背景データを含むDVD−VideoデータやENAVエレメントにオーバラップされた優先度は、HTML/XHTML及びCSSのようなMarkupドキュメントによって定義されている。換言すれば、各々の要素(すなわち背景データを含むDVD−Video、ENAVエレメント)の透明度(いわゆるアルファブレンディング)は、Markupドキュメントに記載されている。
混成器203kのフレーム・メモリに展開されたDVDビデオコンテンツとENAVコンテンツは、D/A変換&LB/PS変換部203mによりD/A変換されたのち、ENAVドキュメントに従ったXHTML/CSSレイアウト・マネージャ207の指示(コンバージョン・コントロール)により、“PS変換”、“LB変換”、“変換なし”の処理を行い、接続されているモニターに出力される(D/A変換&LB/PS変換)。このとき、XHTML/CSSレイアウト・マネージャ207による“LB変換”、“PS変換”、“変換なし”の切替は、ENAVドキュメントの記述が許す限り、ユーザ操作による切替も可能である。つまり、ユーザ・インターフェース部400からのユーザ・トリガにより、前述の変換の切替をAV出力コントロールとしてAVレンダラ203に伝達する。
また、前述のD/A変換とLB/PS変換は、変換の順序を逆にすることも可能である。つまり、混成器203kにおけるフレーム・メモリ上のデータをLB/PS変換し、新たなフレーム・メモリに展開したのち、D/A変換を行う。前者のD/A変換を行ったのちLB/PS変換を行う方法は、二つの変換における画質の劣化を抑えつつも少ないフレーム・メモリで実現できる。一方、後者のLB/PS変換を行う方法は、フレーム・メモリが必要となるが、LB/PS変換の自由度をあげることが可能となる。
以下に、画素変換を行う効果を説明する。
図6に示すようにモニターには、PCモニター、4:3TVモニター、16:9TVモニターといった種類がある。それぞれのモニターは、画素の配列が異なっており、PCモニターは縦と横の画素が均一に並び(Square Pixel)、これに対し、4:3TVモニターは縦横比が約1:1.2、また16:9TVモニターは縦横比が約1:1.6となる(Rectangle Pixel)。つまり、PCモニターにて真円である原画像は、4:3TVモニターに映すと横長の楕円となり、16:9TVモニターでは更に横長の楕円に映ってしまう。
そこで、それぞれのモニターに適切な映像を映すためには、それぞれのモニターに対して、コンテンツをそれぞれ用意する必要がある。図7に、指定されたモニターの種類に応じて、異なるコンテンツを再生するときの流れを示す。
ENAVエンジン200は、起動が指示されると、エンハンスドDVDディスク上にある起動のためのENAVドキュメント(DVDINDEX.HTM)を読み込む(ST101)。例えば、DVDINDEX.HTMには、ユーザが選択した出力モニターの情報(実際のモニター情報)、具体的にはビデオ用のプレーヤ構成(P_CFG)における初期表示アスペクト比(SPRM(14))を参照した上(ST102)、所定のファイルを読み込む指示が記述されている。出力モニターの情報が“4:3TVモニター”を表す“00b”の場合は “INDEX_1.HTM”を読み込み(ST121)、出力モニターの情報が“16:9TVモニター”を表す“11b”の場合は“INDEX_2.HTM”を読み込み(ST131)、出力モニターの情報が“PCモニター”を表す“10b”の場合は“INDEX_0.HTM”を読み込む(ST111)。4:3TVモニター用のENAVドキュメントである“INDEX_1.HTM”には、4:3TVモニター用のENAVコンテンツ(静止画、アニメーション・動画、フォント、背景)への参照が記述されているとともに、DVDビデオコンテンツの4:3TVモニターへの出力の方法(ビデオ用のプレーヤ構成の現在表示モード:“通常又はワイド(変換なし)”、“パンスキャン(PS変換)”、“レターボックス(LB変換)”)が記述されている。これに従い、4:3TVモニター用のENAVコンテンツを読み込み(ST122)、4:3TVモニターに表示させることができる(ST123)。
同様に、“INDEX_2.HTM”には16:9TVモニター用のENAVコンテンツの参照とDVDビデオコンテンツのための指示が記述されている。これに従い、16:9TVモニター用のENAVコンテンツを読み込み(ST132)、16:9TVモニターに表示させることができる(ST133)。
同様に、“INDEX_0.HTM”にはPCモニター用のENAVコンテンツの参照とDVDビデオコンテンツのための指示が記述されている。これに従い、PCモニター用のENAVコンテンツを読み込み(ST112)、PCモニターに表示させることができる(ST113)。
この例では、すべてのENAVコンテンツは、出力するモニター用に作られているため、画素変換の必要がない。つまり、静止画・画素変換、アニメーション・動画・画素変換、フォント画素変換、背景画・画素変換では、“変換なし”が指定される。
また他の例として、それぞれのモニタ上に適当な映像を表示するために、コンテンツの位置及びサイズをコントロールするための情報であるCSS(cascading style sheet)ファイルがこれらモニタ用に用意されてもよい。図17は、指定されたモニタタイプに応じた異なるコンテンツのCSSファイルによる再生を示すフローチャートである。図18は、CSSファイルの一例を示す図である。
ENAVエンジン200は、起動が指示されると、エンハンスドDVDディスク上にある起動のためのENAVドキュメント(DVDINDEX.HTM)を読み込む(ST101)。例えば、DVDINDEX.HTMには、ユーザが選択した出力モニターの情報(実際のモニター情報)、具体的にはビデオ用のプレーヤ構成(P_CFG)における初期表示アスペクト比(SPRM(14))を参照した上(ST102)、CSS(Cascading Style Sheet)ファイルを読み込む指示が記述されている。出力モニターの情報が“4:3TVモニター”を表す“00b”の場合は “4_3_style.css”を読み込み(ST121#)、出力モニターの情報が“16:9TVモニター”を表す“11b”の場合は“16_9_style.css”を読み込み(ST131#)、出力モニターの情報が“PCモニター”を表す“10b”の場合は“pc_style.css”を読み込む(ST111#)。4:3TVモニター用のENAVドキュメントである“4_3_style.css”には、4:3TVモニター用のENAVコンテンツ(静止画、アニメーション・動画、フォント、背景)をレイアウトするための位置情報(縦座標及び横座標)及びサイズ情報(垂直/水平レングス、または拡大/縮小比)が記述されているとともに、さらにDVDビデオコンテンツの4:3TVモニターへの出力の方法(ビデオ用のプレーヤ構成の現在表示モード:“通常又はワイド(変換なし)”、“パンスキャン(PS変換)”、“レターボックス(LB変換)”)が記述されている。
同様に、“16_9_style.css”には16:9TVモニター用のENAVコンテンツのレイアウトのための位置/サイズ情報、及びDVDビデオコンテンツのための指示が記述されている。
同様に、“pc_style.css”にはPCモニター用のENAVコンテンツのレイアウトのための位置/サイズ情報、及びDVDビデオコンテンツのための指示が記述されている。
よって、“4_3_style.css”に従い、ENAVコンテンツを4:3TVモニターに表示させることができる(ST122#、123#)。或いは、“16_9_style.css”に従い、ENAVコンテンツを16:9TVモニターに表示させることができる(ST132#、133#)。或いは、“pc_style.css”に従い、ENAVコンテンツをPCモニターに表示させることができる(ST112#、113#)。
しかし、それぞれのモニターに対して、それぞれのコンテンツを用意することは、コンテンツ・プロバイダーのコンテンツ作成の負担になるとともに、ディスクやバッファに対してENAVコンテンツが占有する量も増える。そこで、あるモニター用のコンテンツ(静止画、アニメーション・動画、フォント、背景画)を他のモニターに対して共用する方法を以下に説明する。つまり、あるモニター用のコンテンツが用意されていない場合、用意されている他のモニター用のコンテンツを用いて表示を行う。このとき、必要に応じて(ENAVドキュメントの指示または再生装置の設定により)画素変換及びリサイジング等の画像処理を行う方法を説明する。
図8には、4:3TVモニター用のコンテンツを、4:3TVモニター、16:9TVモニター、PCモニターに表示するときの、画素変換の例を示す。
各画素変換部(静止画・画素変換部203a、アニメーション・動画・画素変換部203b、フォント画素変換部203c、背景画・画素変換部203d)は、各デコーダ(静止画デコーダ2081a、アニメーション・動画デコーダ2081b、フォント・デコーダ2081c、背景画デコーダ2081d)から、画像データと画像情報(その画像が“4:3TVモニター”、“16:9TVモニター”、“PCモニター”のいずれを想定しているか)を受け取り、その画像データが4:3TVモニター用であることを認識する。ここで、画像データがどのモニターに表示することを想定してるかは、画像データそのものでなく、ENAVドキュメントに記述することも可能である。
次に、ビデオ用のプレーヤ構成(P_CFG)の現在表示モードを参照し、指定されているモニターを調べる(ST201)。つまり、ENAVインターフェースから各画素変換部に伝達される“モニター情報”を参照する。このとき、指定されているモニターが4:3TVモニターである場合、そのコンテンツの表示が想定されているモニターと、表示が指定されているモニターが一致しているため、画素変換を行う必要がない(ST222)。
指定されているモニターが16:9TVモニターである場合、ENAVドキュメントの記述より、つまりXHTML/CSSレイアウト・マネージャ207から各画素変換部に送られるコンバージョン・コントロールより、画素変換を行うかどうかを参照する(ST211)。画素変換を行わない場合は(ST211、NO)、そのまま出力する(ST212)。ただし、このときコンテンツは想定されたものよりも横長に表示されることとなる。もし、画素変換を行う場合は(ST211、YES)、これもENAVドキュメントの記述(XHTML/CSSレイアウト・マネージャ207からのコンバージョン・コントロール)により、LB変換またはPS変換を行う(ST213、ST214、ST215)。この場合のLB変換は、表示領域の右端と左端に一部表示を行わない領域が存在することになる。この場合のPS変換は、もとのコンテンツの上段と下段の一部が表示されないことになる。
指定されているモニターがPCモニターである場合、ENAVドキュメントの記述より、つまりXHTML/CSSレイアウト・マネージャ207から各画素変換部に送られるコンバージョン・コントロールより、画素変換を行うかどうかを参照する(ST211)。画素変換を行わない場合は(ST231、NO)、そのまま出力する(ST232)。ただし、このときコンテンツは想定されたものよりも若干縦長に表示されることとなる。もし、画素変換を行う場合は(ST231、YES)、これもENAVドキュメントの記述(XHTML/CSSレイアウト・マネージャ207からのコンバージョン・コントロール)により、LB変換またはPS変換を行う(ST233、ST234、ST235)。この場合のLB変換は、表示領域の上段と下段に一部表示を行わない領域が存在することになる。この場合のPS変換は、もとのコンテンツの右端と左端の一部が表示されないことになる。
図9には、16:9TVモニター用のコンテンツを、4:3TVモニター、16:9TVモニター、PCモニターに表示するときの、画素変換の例を示す。
各画素変換部(静止画・画素変換部203a、アニメーション・動画・画素変換部203b、フォント画素変換部203c、背景画・画素変換部203d)は、各デコーダ(静止画デコーダ2081a、アニメーション・動画デコーダ2081b、フォント・デコーダ2081c、背景画デコーダ2081d)から、画像データと画像情報(その画像が“4:3TVモニター”、“16:9TVモニター”、“PCモニター”のいずれを想定しているか)を受け取り、その画像データが16:9TVモニター用であることを認識する。ここで、画像データがどのモニターに表示することを想定してるかは、画像データそのものでなく、ENAVドキュメントに記述することも可能である。
次に、ビデオ用のプレーヤ構成(P_CFG)の現在表示モードを参照し、指定されているモニターを調べる(ST301)。つまり、ENAVインターフェースから各画素変換部に伝達される“モニター情報”を参照する。このとき、指定されているモニターが16:9TVモニターである場合、そのコンテンツの表示が想定されているモニターと、表示が指定されているモニターが一致しているため、画素変換を行う必要がない(ST332)。
指定されているモニターが4:3TVモニターである場合、ENAVドキュメントの記述より、つまりXHTML/CSSレイアウト・マネージャ207から各画素変換部に送られるコンバージョン・コントロールより、画素変換を行うかどうかを参照する(ST321)。画素変換を行わない場合は(ST321、NO)、そのまま出力する(ST322)。ただし、このときコンテンツは想定されたものよりも縦長に表示されることとなる。もし、画素変換を行う場合は(ST321、YES)、これもENAVドキュメントの記述(XHTML/CSSレイアウト・マネージャ207からのコンバージョン・コントロール)により、LB変換またはPS変換を行う(ST323、ST324、ST325)。この場合のLB変換は、表示領域の上段と下段に一部表示を行わない領域が存在することになる。この場合のPS変換は、もとのコンテンツの右端と左端の一部が表示されないことになる。
指定されているモニターがPCモニターである場合、ENAVドキュメントの記述より、つまりXHTML/CSSレイアウト・マネージャ207から各画素変換部に送られるコンバージョン・コントロールより、画素変換を行うかどうかを参照する(ST311)。画素変換を行わない場合は(ST311、NO)、そのまま出力する(ST312)。ただし、このときコンテンツは想定されたものよりも若干縦長に表示されることとなる。もし、画素変換を行う場合は(ST311、YES)、これもENAVドキュメントの記述(XHTML/CSSレイアウト・マネージャ207からのコンバージョン・コントロール)により、LB変換またはPS変換を行う(ST313、ST314、ST315)。この場合のLB変換は、表示領域の上段と下段に一部表示を行わない領域が存在することになる。この場合のPS変換は、もとのコンテンツの右端と左端の一部が表示されないことになる。
図10には、PCモニター用のコンテンツを、4:3TVモニター、16:9TVモニター、PCモニターに表示するときの、画素変換の例を示す。
各画素変換部(静止画・画素変換部203a、アニメーション・動画・画素変換部203b、フォント画素変換部203c、背景画・画素変換部203d)は、各デコーダ(静止画デコーダ2081a、アニメーション・動画デコーダ2081b、フォント・デコーダ2081c、背景画デコーダ2081d)から、画像データと画像情報(その画像が“4:3TVモニター”、“16:9TVモニター”、“PCモニター”のいずれを想定しているか)を受け取り、その画像データがPCモニター用であることを認識する。ここで、画像データがどのモニターに表示することを想定してるかは、画像データそのものでなく、ENAVドキュメントに記述することも可能である。
次に、ビデオ用のプレーヤ構成(P_CFG)の現在表示モードを参照し、指定されているモニターを調べる(ST401)。つまり、ENAVインターフェースから各画素変換部に伝達される“モニター情報”を参照する。このとき、指定されているモニターがPCモニターである場合、そのコンテンツの表示が想定されているモニターと、表示が指定されているモニターが一致しているため、画素変換を行う必要がない(ST412)。
指定されているモニターが4:3TVモニターである場合、ENAVドキュメントの記述より、つまりXHTML/CSSレイアウト・マネージャ207から各画素変換部に送られるコンバージョン・コントロールより、画素変換を行うかどうかを参照する(ST421)。画素変換を行わない場合は(ST421、NO)、そのまま出力する(ST422)。ただし、このときコンテンツは想定されたものよりも若干横長に表示されることとなる。もし、画素変換を行う場合は(ST421、YES)、これもENAVドキュメントの記述(XHTML/CSSレイアウト・マネージャ207からのコンバージョン・コントロール)により、LB変換またはPS変換を行う(ST423、ST424、ST425)。この場合のLB変換は、表示領域の右端と左端に一部表示を行わない領域が存在することになる。この場合のPS変換は、もとのコンテンツの上段と下段の一部が表示されないことになる。
指定されているモニターが16:9TVモニターである場合、ENAVドキュメントの記述より、つまりXHTML/CSSレイアウト・マネージャ207から各画素変換部に送られるコンバージョン・コントロールより、画素変換を行うかどうかを参照する(ST431)。画素変換を行わない場合は(ST431、NO)、そのまま出力する(ST432)。ただし、このときコンテンツは想定されたものよりも横長に表示されることとなる。もし、画素変換を行う場合は(ST431、YES)、これもENAVドキュメントの記述(XHTML/CSSレイアウト・マネージャ207からのコンバージョン・コントロール)により、LB変換またはPS変換を行う(ST433、ST434、ST435)。この場合のLB変換は、表示領域の右端と左端に一部表示を行わない領域が存在することになる。この場合のPS変換は、もとのコンテンツの上段と下段の一部が表示されないことになる。
図11には、前述の画素変換機能を用いて、DVDビデオコンテンツとENAVコンテンツを16:9TVモニターに表示したときの例を示す。例えば、DVDビデオコンテンツとして、16:9TVモニターを想定したコンテンツ、ENAVコンテンツとして、16:9TVモニターを想定した背景画、4:3TVモニターを想定した静止画、PCモニターを想定したフォントが用意されているものとする。
DVDビデオコンテンツに関しては、表示が想定されたモニター“16:9TVモニター”と、実際に表示が指定されたモニター“16:9TVモニター”が一致するため、画素変換を行わず、ENAVドキュメントが指定したリサイジング(この場合は縮小表示)を行う。
背景画に関しても同様に、表示が想定されたモニターと、実際に表示が指定されたモニターが一致するため、画素変換を行わず、ENAVドキュメントが指定したリサイジングを行う。
静止画に関しては、表示が想定されたモニター“4:3TVモニター”と、実際に表示が指定されたモニター“16:9TVモニター”が異なるため、図8に示すような変換を行う。この例では“LB変換による画素変換を行う”とENAVドキュメントにより指定された例である。更にENAVドキュメントが指定したリサイジングを行う。
フォントに関しては、表示が想定されたモニター“PCモニター”と、実際に表示が指定されたモニター“16:9TVモニター”が異なるため、図10に示すような変換を行う。この例では“画素変換を行わない”とENAVドキュメントにより指定された例である。また、ENAVドキュメントが表示を行うフォントのサイズを指定しており、そのサイズのフォント・データが用意されている場合は、リサイジングを行う必要がない。
以上のように、DVDビデオコンテンツとそれぞれのENAVコンテンツが、それぞれ異なるモニターに表示することを想定したものであっても、ENAVドキュメントが指定した画素変換を行うことによって、適切な表示を行うことが可能になる。これにより、例えば、コンテンツ・プロバイダーが、インターネットにおけるサイトを構成するために作成したコンテンツ、つまりPC用途に作成したコンテンツでも、エンハンスドDVDディスクやサーバ部に記録するENAVコンテンツに流用することが可能となる。
次に、あるモニターに表示することを想定されたコンテンツを、ENAVドキュメントの指示に従って異なるモニターに表示する方法について説明する。ここでは、前述の図11の、16:9TVモニターに表示することを想定したENAVページ(DVDビデオコンテンツとENAVコンテンツ(静止画、フォント、背景画)から構成される)を4:3TVモニターに表示する例を示す。
図12には、16:9TVモニターを想定したENAVページ(図11)をENAVドキュメントの指示に従って、つまり、XHTML/CSSレイアウト・マネージャ207からのコンバージョン・コントロールに従って、D/A変換&LB/PS変換部203mにてレターボックス変換を行い、4:3TVモニターに出力した例である。このレターボックスでは、モニターの上段と下段に一部表示を行わない領域が存在することになる。
図13には、16:9TVモニターを想定したENAVページ(図11)をENAVドキュメントの指示に従って、つまり、XHTML/CSSレイアウト・マネージャ207からのコンバージョン・コントロールに従って、D/A変換&LB/PS変換部203mにてパンスキャン変換を行い、4:3TVモニターに出力した例である。ENAVページの右端と左端の一部は表示されないことになる。例えば、この非表示領域と表示領域は、ENAVドキュメントによって随時指定することも可能であり、ユーザ操作によるユーザ・イベントによって随時変更することも可能である。
ここで、図12と図13におけるレターボックス変換と、パンスキャン変換はENAVドキュメントによって随時指定することも可能であり、ユーザ操作によるユーザ・イベントによって随時切り替えることも可能である。
しかし、図12においては、実際に表示されている領域が4:3TVモニターの領域よりも小さい、つまり非表示領域がTVモニターに存在し、図13においては、4:3TVモニターに対して、ENAVページの一部が表示されない、という問題もある。そこで、図14においては、図11のENAVページの表示に用いたものと同じDVDビデオコンテンツとENAVコンテンツ(静止画、フォント、背景画)を用いて、ENAVドキュメントの指示により表示した例を示す。ただし、この変換はENAVドキュメントの指示がない場合においても再生装置の機能として実現が可能である。
ここでは、16:9TVモニター用のDVDビデオコンテンツをレターボックス変換する。また、16:9TVモニター用の背景画は右端と左端を切ったパンスキャン変換を行う。4:3TVモニター用の静止画は、もともと4:3TVモニターへの表示が想定されていたため変換を行わない。PCモニター用フォントに対しても変換を行わない。
この例においては、図11に示した16:9TVモニター用の画面に比べてレイアウトが若干異なるが、図12に比べてフォントが読みやすくなり、静止画と背景画も大きく映し出されている。また、図13に比べて、表示できない領域が少なくなっている。
また、この例においては、リサイジングの大きさや、表示に用いたフォントのサイズは図11と同じものである。つまり、図11のような16:9TVモニター用のコンテンツに対して、再生装置がDVDビデオコンテンツとENAVコンテンツ(静止画、フォント、背景画)の画像情報から自動的に画素変換を行って、図14のような4:3TVモニターに映し出すことが可能である。
図15には、図11に示した16:9TVモニター用のコンテンツを用いて、4:3TVモニターへ出力した別の例を示す。ここでは、16:9TVモニター用のDVDビデオコンテンツをパンスキャン変換する。また、16:9TVモニター用の背景画も右端と左端を切ったパンスキャン変換を行う。4:3TVモニター用の静止画は、もともと4:3TVモニターへの表示が想定されていたため変換を行わない。PCモニター用フォントに対しても変換を行わない。
ここで、図14と図15におけるDVDビデオコンテンツのレターボックス変換と、パンスキャン変換はENAVドキュメントによって随時指定することも可能であり、ユーザ操作によるユーザ・イベントによって随時切り替えることも可能である。
ここで、図16に示すフローチャートを参照して、この発明の大要をまとめる。エンハンスドDVDビデオディスクD2からDVDビデオコンテンツC1が取得され、またエンハンスドDVDビデオディスクD2及び通信回線を経由する外部サーバ部500のうち少なくとも一方からENAVコンテンツC21、C22が取得される(ST501)。ここで、実際のモニター情報、最適なモニター情報、画像変換情報(コンバージョン・コントロール)、及び画像データの特性(静止画、動画、アニメーション、フォント、背景などの特性)に基づき、必要に応じてDVDビデオコンテンツC1、ENAVコンテンツC21、C22に含まれる画像データが画像処理される(ST502)。ここで言う画像処理とは、上記説明したような画素変換処理及びリサイジング処理である。画像処理を受けたDVDビデオコンテンツC1、及びENAVコンテンツC21、C22は、同期して再生される(ST503)。結果的に、画像処理を受けた画像データは、所定のモニターに対して適切に出力されることになる。これにより、指定されたモニターに対して、コンテンツを意図した表示方法で表示することができる。
なお、本願発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、各実施形態は可能な限り適宜組み合わせて実施してもよく、その場合組み合わせた効果が得られる。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適当な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
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レンダラ、203a…静止画・画素変換部、203b…アニメーション・動画・画素変換部、203c…フォント画素変換部、203d…背景画・画素変換部、203e…背景生成部、203f…DVDビデオリサイジング部、203g…静止画リサイジング部、203h…アニメーション・動画リサイジング部、203i…背景画リサイジング部、203j…背景用フレーム・メモリ、203k…混成器、204…バッファ・マネージャ、205…ECMAScriptインタープリタ & DOMマニピュレータ、206…SMILタイミング・エンジン、207…XHTML/CSSレイアウト・マネージャ、2081、2082…エレメント・デコーダ、2081a…静止画デコーダ、2081b…アニメーション・動画デコーダ、2081c…フォントデコーダ、2081d…背景画デコーダ、209…ENAVバッファ部、210…XHTML+SMIL/CSSパーサ、211…インターネット接続部、300…ディスク部、400…ユーザ・インターフェース部、500…サーバ部