説明

パッケージメディア、再生装置、および再生方法

【課題】多様なインタラクティブシナリオの実現が可能なパッケージメディアを提供する。
【解決手段】パッケージメディアは、複数のビデオオブジェクトVOBと、これらのビデオオブジェクトVOBに関する管理情報であるNAVFILESとを格納する。管理情報は、再生リスト情報と、少なくともユーザオペレーションを含むイベントにより起動されるイベントハンドラとを含み、イベントハンドラには識別子が割り当てられている。

【発明の詳細な説明】
【0001】
【発明の属する技術分野】
本発明は、映画などのディジタル映像コンテンツを記録したパッケージの記録方式と、その再生方法および再生装置に関する。特に、既にビジネスとしての市場が確立されているDVD(ディジタル・ビデオ・ディスク)の次世代技術であるHD−DVD(高品位または高密度ディジタル・ビデオ・ディスク)に関する。
【0002】
【従来の技術】
従来の技術である、既存のDVD(以下、SD−DVDまたは単にDVDと称する)について説明する。
【0003】
図45は、SD−DVDの構造を示した図である。図45の下段に示すように、DVDディスク上にはリードインからリードアウトまでの間に論理アドレス空間が設けられている。この論理アドレス空間の先頭にはファイルシステム情報が置かれている。
【0004】
ファイルシステムとは、ISO9660やUDF(Universal Disc Format)に代表されるように、ディスク上のデータをディレクトリまたはファイルという単位で表現し、ユーザビリティを高めるものである。日常的に使用されているPC(パーソナルコンピュータ)の場合でも、FATまたはNTFSと呼ばれるファイルシステムにより、ディレクトリやファイルがコンピュータ上に表現され、それによって容易なデータの読み書きが実現されている。
【0005】
SD−DVDの場合、UDFおよびISO9660両方を使用している(両方を合わせてUDFブリッジと呼ぶ)。具体的には、UDFまたはISO9660どちらのファイルシステムドライバによってもデータの読み出しができる。(ここで取り扱うDVDはパッケージメディア用のROMディスクであり、物理的に書き込みが不可能である。)
【0006】
DVD上に記録されたデータは、UDFブリッジを通して、図45の左上の様にコンピュータ上でディレクトリまたはファイルとして見ることができる。ルートディレクトリ(図中「ROOT」)の直下に「VIDEO_TS」と呼ばれるディレクトリが置かれ、ここにDVDのアプリケーションデータが記録されている。アプリケーションデータは複数のファイルとして記録され、これらのファイルは主として以下を含む。
【0007】
VIDEO_TS.IFO:ディスク再生制御情報ファイル
VTS_01_0.IFO:ビデオタイトルセット#1再生制御情報ファイル
VTS_01_0.VOB:ビデオタイトルセット#1ストリームファイル
.....
【0008】
拡張子として2つの種類が存在する。「IFO」は再生制御情報が記録されたファイルであって、「VOB」はAVデータであるMPEGストリームが記録されたファイルである。再生制御情報は、DVDで採用されたインタラクティビティ(ユーザの操作によって異なった再生が楽しめるなどの技術)を実現するための情報やメタデータのようなタイトルやAVストリームに付属する情報のような情報を含む。また、再生制御情報は、ナビゲーション情報とも呼ばれている。
【0009】
再生制御情報ファイルには、ディスク全体の管理に関する「VIDEO_TS.IFO」と、個々のビデオタイトルセット毎の再生制御情報である「VTS_01_0.IFO」とがある(DVDでは、複数のタイトル、言い換えれば異なる映画や異なるバージョンの映画を1枚のディスクに記録することが可能である。)。ファイル名ボディにある「01」は、ビデオタイトルセットの番号を示している。例えば、ビデオタイトルセット#2の再生制御情報ファイルは、「VTS_02_0.IFO」と表される。
【0010】
図45の右上部は、DVDのアプリケーション層でのDVDナビゲーション空間であり、前述した再生制御情報が展開された論理構造空間である。「VIDEO_TS.IFO」内の情報は、VMGI(VIDEO Manager Information)として、このDVDナビゲーション空間に展開される。また、「VTS_01_0.IFO」内の情報、すなわちビデオタイトルセット毎に存在する再生制御情報は、VTSI(Video Title Set Information)として、このDVDナビゲーション空間に展開される。
【0011】
VTSIの中にはPGC(Program Chain)と呼ばれる再生シーケンスの情報であるPGCI(Program Chain Information)が記述されている。PGCIは、Cellと呼ばれるVOB(Video Objectの略であり、MPEGストリームを指す)の一部区間または全部区間の集合と、コマンドと呼ばれる一種のプログラミング情報から構成されている。
【0012】
コマンドは、DVDが規定する仮想マシーンによって処理されるものであり、ブラウザ上で実行されるJava(登録商標)スクリプトなどに類似する。しかし、Java(登録商標)スクリプトが論理演算の他にウィンドウやブラウザの制御(例えば、新しいブラウザのウィンドを開くなどの制御)を行うのに対して、DVDのコマンドは、論理演算の他にAVタイトルの再生制御、例えば、再生するチャプタの指定などの制御を実行するものである。
【0013】
Cellはディスク上に記録されているVOBの開始および終了アドレス(論理アドレス)をその内部情報として有している。プレーヤは、Cellに記述されたVOBの開始および終了アドレス情報を使ってデータの読み出し、再生を実行する。
【0014】
図46はAVストリーム中に埋め込まれているナビゲーション情報を説明する概略図である。SD−DVDの特長であるインタラクティビティは、前述した「VIDEO_TS.IFO」や「VTS_01_0.IFO」などに記録されているナビゲーション情報だけによって実現されているのではない。インタラクティビティを実現するための幾つかの重要な情報は、ナビゲーション・パック(ナビパックまたは、NV_PCKとも称する)と呼ばれる専用キャリアを使い、AVストリーム内に映像および音声データなどと一緒に多重化されている。
【0015】
簡単なインタラクティビティの例として、ここでメニューを説明する。メニュー画面上には、幾つかのボタンが現れ、夫々のボタンには当該ボタンが選択実行された時の処理が定義されている。また、メニュー上では一つのボタンが選択されている(ハイライトによって選択されたボタン上に半透明色がオーバーレイされている)。ユーザは、リモートコントローラの上下左右キーを使って、選択状態のボタンを上下左右の何れかのボタンに移動させることができる。また、リモートコントローラの上下左右キーを使って選択実行したいボタンにハイライトを移動させた後、ユーザが選択実行を指定(実行キーを押す)すると、対応する処理、一般的には対応するタイトルやチャプタの再生が実行される。
【0016】
図46の左上部はNV_PCK内の概要を示している。NV_PCK内には、ハイライトカラー情報、個々のボタンに対応するボタン情報などの情報が含まれている。ハイライトカラー情報には、カラーパレット情報が記述され、オーバーレイ表示されるハイライトの半透明色が指定される。ボタン情報には、個々のボタンの位置情報である矩形領域情報と、当該ボタンから他のボタンへの移動情報(ユーザによる上下左右キーの操作に対応する移動先ボタンの指定)と、ボタンコマンド情報(当該ボタンが選択実行された時に実行されるコマンド)が記述されている。
【0017】
図46の中央右上部に示すように、メニュー上のハイライトはオーバーレイ画像として作られる。オーバーレイ画像は、ボタン情報中の矩形領域情報で指定された領域にカラーパレット情報で指定された色をつけた画像である。このオーバーレイ画像は、図46の右部に示す背景画像と合成されて画面上に表示される。
【0018】
このようにして、DVDではメニューを実現している。ナビゲーショデータの一部をNV_PCKを使用してストリーム中に埋め込んである理由は、ストリームと同期した動的なメニュー情報を更新のようなアプリケーション、例えば映画再生途中の5分〜10分間だけ特別なメニューを表示する、を実現できるようにするためである。
【0019】
【発明が解決しようとする課題】
従来、映画を見るのは、テレビにDVDを接続して見るだけというスタイルであった。しかし、近年のIT技術の進歩によって、PC上で映画を見たり、DVDプレーヤでPCのようにインターネットに接続することが可能となり、DVDはAV機器、PCは非AV機器という従来の固定観念が既に崩れている。今後は、DVDに記録されたAVコンテンツとインターネットとが連携をしたような新しい楽しみ方が増えてくることが予想される。
【0020】
ここで問題になってくるのは、図46で説明したように、SD−DVDでは、インタラクティビティ、特にメニューを実現するための情報がNV_PCKを使ってストリーム中に埋め込まれている点である。
【0021】
ストリーム中に埋め込まれているナビゲーションデータは、ストリームを解析することによって初めて取り出すことができる。「VIDEO_TS.IFO」のような専用ファイルに記録されている限り、ナビゲーションデータは簡単に読み出して解析することができるが、ストリームに埋め込まれたナビゲーションデータを読み出すのは困難である。実際に、SD−DVDの容量4.7GBに対して、ナビゲーションデータの情報量は僅かに数100kBから数MBでしかないのに対して、ストリームデータの情報量は4GBを超える。4GBの中から必要なデータを探し出すには当然のことながら先頭からデータを読み出して、解析するために数分から数十分の時間がかかる。このようなレスポンス性能では到底実使用には耐えられない。
【0022】
通常の再生時には、必要なタイミングで必要なナビゲーション情報を得ることができるため、何ら問題は無い。しかし、例えば、最近のDVDディスクでよく見られるHTML(Hyper Text Markup Language:インターネットで使われている記述言語)コンテンツとの接続などを考えた場合に問題が生じてくる。
【0023】
図47および図48はこの問題の例を示している。図47は、DVDでよく使われているマルチページメニューの例である。マルチページメニューは、例えば、チャプタ選択を行うチャプタメニューで、選択肢となるチャプタが複数存在し、一つの画面上に全てのチャプタ(ボタン)を表示しきれない場合に使われる手法である。実際、映画タイトルの場合、1つのタイトルの中に20〜30のチャプターが設定されていることは珍しくなく、マルチページによるチャプタメニューが多く見受けられる。
【0024】
マルチページメニューの場合、選択肢となるチャプタの他に、メニューのページを切り替えるボタンが設けられている。図47は、3つページから構成される、チャプタメニューを示す。ページ左端のPGC#1には「チャプタ1」、「チャプタ2」と「次ページ」が表示されている。ユーザが「チャプタ1」または「チャプタ2」を選択実行した場合には、ボタンに対応したコマンドが起動され、夫々のチャプタに対応するPGC(Program Chain)またはCellの再生が開始される。一方、ユーザが「次ページ」を選択実行した場合は、次のページに対応するPGC、本例では、PGC#2の再生に移る。
【0025】
ページ中央のPGC#2では、「チャプタ3」、「チャプタ4」、「次ページ」と「前ページ」がメニュー上に置かれ、「チャプタ3」または「チャプタ4」の選択実行時には、夫々に対応する、PGCまたはCellの再生が行われる。「次ページ」が選択実行された場合は、次のページに対応するPGC#3の再生が実行され、「前ページ」が選択実行された場合は、前のページに対応するPGC#1の再生が実行される。ページ右端のPGC#2、即ち3ページ目のメニューも同様の機能を有する。
【0026】
上述したように、マルチページメニューの場合、夫々のページが個々のPGCとして存在し、PGC間の遷移をボタンにつけられたコマンドによって実施している。即ち、プレーヤはボタンコマンドを実行する度に次のメニューを読み込み、表示を行う。言い方を変えれば、プレーヤは、ボタンの選択実行の次に何が起きるかを知る由も無く、コマンドに従って順次実行をしていくだけであり、マルチページメニューの内部の構造を知っているわけでは無い。
【0027】
図48は、HTMLコンテンツとDVDを融合したアプリケーションの例である。PCは、TVに比べて特にテキスト情報などの情報の表示に優れており、ブラウザなどを使って映像以外にも様々なコンテンツを同時に表示することが可能である。こういったPCの特性を生かした例として、DVD上では複数のページに分けられていたメニューを、PCのブラウザ上で一つのメニューとして表示することも可能である。図48は、図47の3つページからなるマルチページメニューを一つの画面上に表示する例である。
【0028】
しかしながら、前述したようにプレーヤは、幾つのページからメニューが構成されているのか、および各ボタンが選択実行された時の処理がどうなるのかを、全てストリームから読み出さなければならない。本例では、マルチページメニューはたかだか3ページから構成されているが、マルチページメニューのページ数が多い場合や、極端な例ではあるが各ストリームデータの記録位置がディスク上の内周と外周に離れて記録されている場合などは、シーク処理が発生して、ブラウザの表示に多大な時間がかかってしまう問題を有している。
【0029】
また、メニュー画面自身も、背景画像にボタンを描画し、選択されているボタンに半透明色を被せたハイライトで行っているため、メニューとしての表現力(洗礼度)に乏しく、PCをベースとしたインタラクティブメディアに比べて遥かに見劣りするものとなってきてしまっている。
【0030】
更に、HTMLのようなコンテンツと連携をする場合であっても、画面中に埋め込まれているボタン情報を取り除くことはできない為、HTML画面上にリッチなメニュー画面が表示され、DVD画面上に見劣りするメニュー画面が夫々表示されることになってしまい、アプリケーション製作、デザインの面から好ましいものでは無い。
【0031】
更にまた、AVストリーム中にナビゲーションデータを埋め込むことで、AVストリーム中に含まれる映像データや音声データのデータ量に制約が生じる。
【0032】
本発明は、上述した課題を解決してAVとコンピュータを融合した新しいパッケージメディアHD−DVDを実現する技術を提供する事を目的としている。
【0033】
具体的には、本発明は、以下の課題を解決することを目的とする。
(1)ストリームに埋め込まれたインタラクティブ情報によって、例えばHTMLを使った再生のような、通常のAV再生とは異なるビューを実装しようとした場合に、インタラクティブシナリオを予め読み出す事ができない。
(2)メニュー表示で半透明色からなるハイライトをボタン上に合成表示するメニュー表示機能がPCなどのコンテンツに比べて見劣りする。
【0034】
【課題を解決するための手段】
本発明の第1の態様は、再生装置によって再生されるパッケージメディアであって、ビデオオブジェクトと、このビデオオブジェクトに関する管理情報とを格納し、前記管理情報は、再生リスト情報と、少なくともユーザオペレーションを含むイベントにより起動される複数のイベントハンドラとを含み、このイベントハンドラには識別子が割り当てられ、前記再生リスト情報は、ビデオオブジェクトの再生区間を指定する情報と、この再生区間が再生されている間に有効となる前記イベントハンドラの識別子とを含むセル情報、および前記セル情報により指定された再生区間の再生順序を示す再生順序情報を有する、パッケージメディアを提供する。
【0035】
本発明の第1の態様によれば、パッケージメディア中のビデオオブジェクトと別個にビデオオブジェクトの再生の際に起動されるイベントを管理する管理情報が格納されるので、多様なインタラクティブシナリオの実現が可能となる。また、管理情報がビデオオブジェクトに埋め込まれていないため、ビデオオブジェクトを解析することなくビデオオブジェクトに関する管理情報を再生装置が把握できる。また、ビデオオブジェクト中に含まれる映像データや音声データのデータ量が制約されない。
【0036】
前記セル情報は、前記ビデオオブジェクトの一部又は全てを重複して指定することが可能である。
【0037】
複数のセル情報のうち異なる二つが、同一の前記ビデオオブジェクトの一部又は全てを重複して指定することが可能であることが好ましい。
【0038】
また、前記管理情報は、前記パッケージメディアが前記再生装置によって再生されている間に有効となるイベントハンドラを含むことが好ましい。
【0039】
本発明の第2の態様は、ビデオオブジェクトと、このビデオオブジェクトに関する管理情報とを格納したパッケージメディアを再生するための再生装置であって、前記管理情報は、再生リスト情報と、少なくともユーザオペレーションを含むイベントにより起動されるイベントハンドラとを含み、このイベントハンドラには識別子が割り当てられ、前記再生リスト情報は、ビデオオブジェクトの再生区間を指定する情報と、この再生区間が再生されている間に有効となる前記イベントハンドラの識別子とを含むセル情報、および前記セル情報により指定された再生区間の再生順序を示す再生順序情報を有し、前記管理情報から再生リスト情報に含まれるセル情報と再生順序情報とを引き出すと共に、イベントを受けつけて対応する識別子が割り当てられたイベントハンドラを起動する管理情報処理部と、前記管理情報処理部により引き出された前記セル情報と前記再生順序情報とに基づいて、前記ビデオオブジェクトを再生するビデオオブジェクト処理部とを備える、再生装置を提供する。
【0040】
本発明の第3の態様は、ビデオオブジェクトと、このビデオオブジェクトに関する管理情報とを格納したパッケージメディアを再生するための再生方法であって、前記管理情報は、再生リスト情報と、少なくともユーザオペレーションを含むイベントにより起動されるイベントハンドラとを含み、このイベントハンドラには識別子が割り当てられ、前記再生リスト情報は、ビデオオブジェクトの再生区間を指定する情報と、この再生区間が再生されている間に有効となる前記イベントハンドラの識別子とを含む複数のセル情報、および前記セル情報により指定された再生区間の再生順序を示す再生順序情報を有し、前記管理情報から再生リスト情報に含まれるセル情報と再生順序情報とを引き出し、前記セル情報と前記再生順序情報とに基づいて、前記ビデオオブジェクトを再生し、前記イベントが発生すると対応する識別子が割り当てられたイベントを起動する、再生方法を提供する。
【0041】
【発明の実施の形態】
次に、図面に示す本発明の実施形態について詳細に説明する。
【0042】
(プレーヤ構成)
図1は、HD−DVDの概要を示す図である。HD−DVDは、HD−DVDディスク(101)とHD−DVDプレーヤ(102)から構成される。HD−DVDディスク(101)には、ナビゲーションファイルとMPEGストリームが夫々記録されている。プレーヤ(102)内部は、管理情報ないしはナビゲーション情報を解析実行する管理情報処理部としてのナビゲーションマネージャ(103)、MPEGストリームをデコードするプレゼンテーションエンジン(104)、デコードされたビデオデータ(主映像)を一時格納するフレームメモリであるビデオプレーン(106)、デコードされたイメージデータ(字幕またはハイライトイメージ)を一時格納するフレームメモリであるイメージブレーン(105)、ビデオプレーン(106)のビデオデータ上にイメージプレーン(105)のイメージデータをオーバーレイ合成する合成器(107)から構成される。プレゼンテーションエンジン(104)、イメージプレーン(105)、ビデオプレーン(106)、および合成器(107)が本発明のビデオオブジェクト処理部を構成する。
【0043】
図2は、HD−DVDプレーヤ(102)の内部構成の詳細を示すブロック図である。ナビゲーションマネージャ(103)は、XMLパーサ(201)、スクリプトプロセッサ(202)、UOP(User Operation)マネージャ(203)、シナリオプロセッサ(204)、プレゼンテーションコントローラ(205)から構成される。
【0044】
プレゼンテーションエンジン(104)はMPEGのシステムターゲットデコーダであり、AV同期処理の基準となるクロック(206)、デマルチプレクサ(207)、イメージプロセッサ(208)、ビデオプロセッサ(209)、サウンドプロセッサ(210)から構成される。
【0045】
XMLパーサ(201)は、ナビゲーションファイルを読み込み、解析し、シナリオ情報をシナリオプロセッサ(204)へ、イベントハンドラ/スクリプトをスクリプトプロセッサ(202)へ、ストリーム情報をプレゼンテーションコントローラ(205)へ夫々渡す。
【0046】
シナリオプロセッサ(204)は、シナリオ情報から、再生するストリームのストリーム番号をプレゼンテーションコントローラ(205)に伝へ、クロック(206)からの時刻情報をシナリオ情報と比較し、タイムイベントをスクリプトプロセッサ(202)に発行する。また、シナリオプロセッサ(204)はスクリプトプロセッサ(202)から割り込みでタイトル番号、または、チャプタ番号を受け、再生中のタイトル、チャプタを中断または停止し、指定タイトル、または、指定チャプタの再生を実行する。
【0047】
スクリプトプロセッサ(202)は、シナリオプロセッサ(204)からのタイムイベント、または、UOPマネージャ(203)からのユーザイベントを受け、対応するイベントハンドラを実行する。
【0048】
UOPマネージャ(203)は、ユーザオペレーション、即ちユーザによるリモートコントローラ110の操作を受け、必要なイベントをスクリプトプロセッサ(202)に発行する。図1に示すように、リモートコントローラ110は、メニュー選択を含む各種の処理を選択するための5個のボタンないしはキー111a,111b,111c,111d,111e、選択実行を指定するためのボタンないしはキー112、ディスプレイ上下左右移動の4個のボタンないしはキー113a,113b,113c,113dを備えている。
【0049】
プレゼンテーションコントローラ(205)は、シナリオプロセッサ(204)から受けたストリーム番号とXMLパーサ(201)から受け取ったストリーム情報に基づき再生するストリームの呼びだしをアドレス情報として、ドライブに伝え、また、再生ストリームの属性情報など必要な情報をプレゼンテーションエンジン(104)に伝える。
【0050】
デマルチプレクサ(207)は、MPEGストリームからエレメンタリストリームを抜き出し、夫々のエレメンタリデコーダ(208、209、210)に渡す。イメージプロセッサは(208)は、字幕およびハイライト映像をデコードするデコーダ、ビデオプロセッサは(209)は、MPEGビデオストリームをデコードするビデオでコーダ、サウンドプロセッサ(210)は、MPEGオーディオストリームやドルビーAC3などの音声データをデコードするオーディオでコーダである。また、イメージメモリ(212)は、字幕およびハイライトに使う映像が複数のイメージから構成される場合に、一時的に格納するためのメモリである。
【0051】
クロック(206)は、MPEGシステムターゲットデコーダで定義されているシステムクロックカウンタであり、AVデータの同期制御の基準になるクロックを生成する。また、クロック(206)の出力は、シナリオプロセッサ(204)にも送られ、AVストリームだけでなく、シナリオの同期処理にも使われる。
【0052】
また、プレーヤはトラックバッファ(211)を有し、MPEGストリームはトラックバッファ(211)を介してデマルチプレクサ(207)へ入力される。トラックバッファ(211)は、ディスク上でのシーク処理などが発生した場合などに、デマルチプレクサ(207)へのデータ供給がストップしないように、予めデータを蓄えておくバッファである。
【0053】
(シナリオおよびシナリオ再生モデル)
図3は、シナリオ構造を示す図である。
【0054】
シナリオとは、HD−DVDの再生制御を行う論理基本単位のことであって、主にプログラムとセルから構成されている。セルは一つの連続再生単位であり、具体的には、1つのVOB(MPEGストリーム)の全部または一部を論理的に指し示している。セルは論理的な単位であって、VOB、即ちストリームそのものでは無い。
【0055】
セルとVOBとの関係について図49を参照して説明する。前述のようにVOB201はHD−DVDディスクに格納されたMPEGストリームである。一つのセル202は再生開始時間(in)と再生終了時間(out)を有し、これによって対応する一つのVOBの全部又は一部を再生区間して指定する。セル202が有する再生開始時間と再生終了時間とはVOB管理部203によりVOB201におけるアドレスに対応付けられている。後述するようにセル202は1個又は複数個のメニューを有することができ、メニューの開始時間から終了時間までの間はそのメニューに対応するイベントハンドラを起動することができる。このVOBとは別個のセルに含まれるメニューから起動可能なイベントハンドラによりインタラクティブシナリオを実現することができる。従って、インタラクティブシナリオを読み出すためのシーク処理が発生せず、多様なインタラクティブシナリオの実現が可能となる。また、ビデオオブジェクト中に含まれる映像データや音声データのデータ量が制約されない。
【0056】
セル201はVOBそのものではないので、異なる複数のセル202が同一のビデオオブジェクト201の一部を重複して指定していてもよい。同様に、異なる複数のセル202が同一のビデオオブジェクト201の全部を重複して指定してもよい。従って、同一のVOBであっても再生経路等によりメニューを異ならせることができ、多様なインタラクティブシナリオの実現が可能となる。
【0057】
再度図3を参照すると、プログラムは、セルを時系列(再生順)に並べた集合体であり、言い換えれば静的なシナリオである。プログラムは内部にブロックと呼ばれる並列再生区間を持つことがあり、これは、マルチアングルのように、ユーザの意図によって再生するVOBが選択される区間や、乱数を使って再生するセルが選択されるランダム/シャッフル再生に用いられる。
【0058】
ランダム再生とは、例えば3つのセルがブロック内にあった場合、3つの内、何れかのセルが選択されて再生される。この選択と再生はシナリオによって指定される回数だけ行われる。例えば、3回のランダム再生が指定されたブロックでは、3つのセルから1つのセルが選択され再生される処理が3回行われる。
【0059】
シャッフル再生とは、ランダム再生と同様に指定された回数だけ、ブロックの中から1つのセルが選択され再生されるが、一度選択されたセルは次からの選択対象には入らない点でランダム再生と異なっている。例えば、3回のシャッフル再生が指定されたブロックでは、最初の選択時には、3つのセルから1つのセルが選択され再生される。二度目の選択時には、残りの2つのセルから1つのセルが選択され再生されることになる。
【0060】
セルは内部にスクリプト(プログラミング言語)を持つことができ、スクリプトによってシナリオの分岐など動的分岐が可能になる。
【0061】
図4は、プレーヤでの状態遷移図である。
【0062】
プレーヤは「セル再生状態」と「停止状態」の2つの状態を有する状態遷移モデルからなる。「停止状態」にあるプレーヤは、ユーザからの再生要求や、メニューコールなどによって「セル再生状態」に遷移する。「セル再生状態」からはユーザの再生停止要求によって「停止状態」へ遷移する他に、プログラム間でセルの再生が移る時、スクリプトのコマンド「Jump」、「Link」、「GoUp」(スクリプトについては後に詳細を記す)などによって他のセルへ再生が移るときに他の「セル再生状態」に遷移する。「GoUp」によって他の「セル再生状態」へ遷移した場合は、「Resume」によって元の「セル再生状態」に戻ることが可能である。
【0063】
図4では3つのセル再生状態を記述しているが、これは説明上便宜的に3つに分けたものであって、異なる状態では無い。
【0064】
図5は、ユーザの認識単位であるタイトルおよびチャプタとプログラムおよびセルの関係を示す図である。
【0065】
前述した、プログラムおよびセルは、シナリオを記述するための論理単位であって、必ずしもユーザが認識する単位とは一致しない。例えば、1つのタイトルの中で、動的な分岐が幾つもある場合は、複数のプログラムから構成される事になる。この場合、ユーザが時系列に並ばないプログラムを個々に意識するよりも、プログラムを一まとめにした単位として認識するほうが理想的である。また、セルもVOBという物理的な単位を超えられなくしているため、プログラム−タイトルのように、セルを複数束ねた単位としてチャプタがあると便利である。
【0066】
図5に示すように、タイトルは複数のプログラムから構成され、チャプタは複数のセルから構成されている。チャプタは複数のプログラムに跨ってセルを持つことができるが、タイトルを超えることは許されない。即ち、チャプタはタイトル内に閉じた単位である。また、1つのプログラムを複数のタイトルで共有したり、1つのセルを複数のチャプタで共有したりすることはできない。一方で、どのタイトルやセルにも属さないプログラムまたはセルが存在することは許される。
【0067】
(メニューおよびイベントハンドラ)
図6はメニュー構成を示す図である。
【0068】
本実施例の中でメニュー構造とは、従来例で説明したようなチャプタメニューを実現するための構造であり、動的、即ちユーザからのイベントに応じて動作処理を実現するための枠組みのことである。
【0069】
メニュー上のボタン画像は、イメージデータによって作られる。ボタン画像は背景であるビデオ映像にオーバーレイされ、合成画面がTV画面上に表示される。イメージとビデオの合成はプレーヤ構成において説明した通りである。メニューを構成するイメージデータの制御、および、ユーザがボタンを選択実行した場合の制御は、メニュー情報によって記述され、スクリプトプロセッサ202によって処理が行われる。
【0070】
図6右上部がメニュー情報であり、XML(eXtensible Markup Language)を用いて記述が行われている。
【0071】
各メニュー情報は<menu>タグによって宣言され、終了タグ</menu>までが一連のメニュー情報となる。<menu>タグは内部に属性として、メニュー開始時刻「in」とメニュー終了時刻「out」を有している。これら時刻情報はメニューの存在するセル内での相対時刻である。また<menu>タグはメニュー開始時に実行される処理「preprocess」を属性として持つことができる。本例では空になっている。
【0072】
「menu」要素は内部に子要素「button」を複数持つことができる。「button」はメニュー上のボタンに相当し、メニュー上に置かれるボタンの数だけ「button」要素が宣言される。各<button>タグは、その属性として「id」を持ち、これがこのメニュー内での各ボタンのユニーク番号となる。例えば、図6で最初の「button」要素は属性「id」の値(属性値)が”1”であり、画面上のボタン1に対応している。
【0073】
「button」は内部に子要素「event_call」を1つ持つ。これはユーザオペレーションに対応するイベントハンドラへのリンクを記述するための要素である。<event_call>タグは属性として、「left」「right」「up」「down」「action」を持ち、夫々ユーザのリモートコントローラ操作「上」「下」「左」「右」「(選択)実行」に対応している。例えば、図6でボタン1に対応している最初の「button」要素の「event」要素は、属性「action」の値(属性値)が”e2”であり、ユーザが「ボタン1」を選択実行した場合、”e2”に対応するイベントハンドラが実行されるスクリプトプロセッサ202によって実行処理されることになる。
【0074】
図6右下部はイベントハンドラの例である。
【0075】
各イベントハンドラは、<event_handler>タグによって宣言され、属性「id」を持っている。「id」の属性値は前述した「event_call」の属性「id」と対応しており、夫々の属性値が一致した場合、リンクが張られていることを意味する。即ち、前述した「ボタン1」の選択実行時には、図6中にある、「id」の属性値が”e2”のイベントハンドラがスクリプトプロセッサ202によって実行処理される。
【0076】
「event_handler」は子要素として「script」を持ち、開始タグ<script>と終了タグ</script>に囲まれる中にスクリプトプログラムが記述される。スクリプトプログラムについては後述する。
【0077】
イベントハンドラはメニュー内のボタンの他に以下の場所に記述することができ、夫々のタイミングで実行処理される。
【0078】
メニューのプリプロセス(メニュー開始時に実行される)
メニューのポストプロセス(メニュー終了時に実行される)
セルのプリプロセス(セル再生開始時に実行される)
セルのポストプロセス(セル再生終了時に実行される)
【0079】
図7(A)はセルのポストプロセスの例である。ポストプロセスはセル再生の後に置かれ実行される。例えば、セル再生を繰り返したい場合、ポストプロセスに当該セルの再生を指定することで、セル先頭からの再生を繰り返すことができる。
【0080】
図7(B)はメニューのプリプロセスおよびポストプロセスの例である。プリプロセスはメニューの開始時刻である「in」と同時に起動され、ポストプロセスはメニューの終了時刻である「out」と同時に起動される。プリプロセスは主に、変数(詳細は後述する)のイニシャライズ(初期化)などに持ちられ、ポストプロセスはメニューで一時使用した編集のクリーンナップ(後処理)などに用いられる。
【0081】
図8に示すように、プリプロセス、ポストプロセスは夫々「ID」を持ち、IDに対応するイベントハンドラが呼ばれ、その内部のスクリプトが実行処理される。
【0082】
図9は、セル間、およびセル再生状態と停止状態間でのプリプロセス、ポストプロセスの有効、無効を示した表である。
【0083】
セル再生状態、停止状態間での状態遷移では、セルを抜け出る時、セルに入る時、当該セルのポストプロセス、プリプロセスが夫々で有効、即ち実行処理される。
【0084】
異なるセルへ再生が遷移する場合で、同一プログラム内でセル再生が終了し、次のセルへ再生が遷移する場合は、ポストプロセス、プリプロセスが夫々で有効である。GoUpを使って他のセルへ一時的に移動、また、Resumeを使って元のセルへ戻る場合、元のセルではプリプロセス、ポストプロセス共に無効であり、遷移先のセルではプリプロセス、ポストプロセスが有効になる。また、JumpまたはLinkによってセル再生途中で再生が遷移する場合、移動元のセルではポストプロセスは無効、移動先のセルではプリプロセスが有効である。
【0085】
図10は、イメージデータの遷移を説明する図である。
【0086】
前述した通り、イメージデータは主映像上に合成表示される。メニューボタン映像は、主映像ではなく、イメージデータ上に描画され、イメージデータとして選択ボタンや非選択ボタンが描かれる。複数のイメージデータをセットとして持ち、複数のイメージデータから1つのイメージデータを選択描画する。
【0087】
例えば、4つのボタンから構成されるメニューの場合は、夫々のボタンが選択状態となっているイメージデータを夫々持ち、即ち4つ持ち、また、選択実行を描いたイメージを4つのボタン夫々毎に持つ、即ち4つ持つ。合計8つのイメージデータが1つのメニューに対応する構成で、ボタンの選択状態に合わせて適切なイメージを選択表示する。
【0088】
本例では、下記に記す8つのイメージデータ(画像)を有し、図10に示すようにボタンの選択状態の移動、または、選択実行に応じて適切なイメージデータを選択して表示する。
【0089】
ボタン1の選択画面
ボタン1の選択実行画面
ボタン2の選択画面
ボタン2の選択実行画面
ボタン3の選択画面
ボタン3の選択実行画面
ボタン4の選択画面
ボタン4の選択実行画面
【0090】
メニューが表示開始された時、ボタン1がハイライト、即ち選択されていたとする、この場合、図10の「イメージ1」が表示されていることになる。ユーザはリモートコントローラの上下左右キーまたは実行キーを使ってボタンの選択または実行を行うことができる。この場合では、右キーで「ボタン2」へ移動、下キーで「ボタン3」へ移動、実行キーで「ボタン1」の選択実行が選択できる。
【0091】
ユーザがリモートコントローラの右キーを押した場合、「ボタン2」が選択されているイメージ2へ遷移し、リモートコントローラの下キーを押した場合は、「ボタン3」が選択されているイメージ5へ遷移する。また、実行キーを押した場合は、「ボタン1」が選択実行されているイメージ0へ遷移する。
【0092】
個々のイメージデータは、夫々1枚のフレームとして、1つのメニューで使用する全てのイメージが順に並んだイメージユニットとしてまとめられ、VOB内に多重化記録される。イメージユニット内でのフレームの順番がイメージ毎に与えられる番号になる。
【0093】
図11は、メニュー上に2つのボタンがある場合の例を示している。このメニューの場合は、4つのイメージが存在し、
ボタン1の選択画面
ボタン1の選択実行画面
ボタン2の選択画面
ボタン2の選択実行画面
夫々が、イメージ0、イメージ1、イメージ2、イメージ3に対応し、イメージユニット内でのフレーム0、フレーム1、フレーム2、フレーム3に夫々対応する。各ボタンのイベントハンドラに夫々の遷移先イメージを表示するようにスクリプトをプログラミングしておくことで、対応するイメージへの遷移が行われる。これら4つのイメージは、イメージメモリ212に格納され、その中から1つのイメージが選択されイメージプレーン上に描画表示される。
【0094】
図12は、ナビゲーションデータとイメージの関係を説明した図である。
【0095】
まず、イメージ1が表示されている状態(ボタン2選択状態)だとする。ナビゲーションデータの中では、メニュー情報が2つのボタンを持っていて(宣言してあり)、夫々のボタンが自身のIDとイベントハンドラへのリンク情報を持っている。ボタン2の場合は、左キー操作と実行キー操作に対応するイベントコール(event_call)として、夫々「left=”e3”」と「action=”e4”」を有している。
【0096】
ユーザがリモートコントローラ上で左キーを押した場合、id=”e3”を有するイベントハンドラが呼ばれ、内部のスクリプトが実行処理される。図12の例では、「イメージ0」の表示を指示する「Highlight(0)」がプログラミングされており、メニュー画面は、イメージ1からイメージ0へ表示が遷移する。
【0097】
また、イメージ1が表示(ボタン2が選択状態)されている時に、ユーザがリモートコントローラ上で実行キーを押した場合、id=”e4”を有するイベントハンドラが呼ばれ、内部のスクリプトが時刻処理される。図12の例では、「イメージ3」の表示を指示する「Highlight(3)」がプログラミングされており、メニュー画面は、イメージ1からイメージ3へ表示が遷移する。また、次行の「Link(3)」が続けて実行され、Cell#3の再生へ遷移する。
【0098】
このようにメニュー構造とイベントハンドラを使って、イメージデータの表示を制御し、適切なメニュー画像を表示することが可能である。本例では、ボタンに濃淡を付けて、そのボタンの状態を識別させるに留めているが、例えば、選択状態のボタンだけ他よりも大きくしたり、特別な色を付けたり、絵柄そのものを変える、単なる矩形でなく、楕円状にするや、星状(縁取りをぎざぎざに)するなど様々なボタン画像が可能である。
【0099】
スクリプトの詳細については後述する。
【0100】
イベントハンドラは、前述したメニューのボタン、メニューおよびセルのプリプロセスおよびポストプロセス以外にユーザオペレーションに対応するものがある。これはタイトル再生中(正しくはセル再生中)にユーザがメニューコール(DVDで良く使われているタイトルメニューやチャプタ−メニューなどを呼び出すユーザオペレーション)を実行した時に呼び出されるイベントハンドラであり、グローバルイベントハンドラと呼ぶ。
【0101】
図13は、グローバルイベントハンドラを説明する図である。
【0102】
リモートコントローラ上には5つの専用キー(ボタンであるが、メニュー画面上に表示される画像としてのボタンと区別するためにここではキーと呼ぶ)が儲けられている。夫々「赤」「青」「緑」「黄」「橙」と固有の色が儲けられており、赤キー、青キー、緑キー、黄キー、橙キーと夫々呼ぶ。従来のDVDプレーヤの場合、タイトルメニューを呼ぶ「タイトル」キーなど個々の機能毎に専用キーが儲けられていたが、本発明では、物理的なキーと、各機能との関係は、タイトル製作者によって決定される。例えば、キー自身使わなくても(無効状態のままでも)良い。
【0103】
5つの専用キーは、グローバルイベントハンドラに連動しており、ユーザが何れかのキーを押すことで、対応するグローバルイベントハンドラが呼び出される。図13の例では、「青」キーには、id=”menu”が設定されており、ユーザが「青」キーを選択する事で、id=”menu”のイベントハンドラが呼ばる。イベントハンドラでは、GoUp(2)がスクリプトプログラミングされおり、即ち、現時点の再生を一時中断し、プログラム#2の再生が実行される。この時、再生を中断した場所をレジューム用の情報としてプレーヤが持つ変数に書き込まれ保持される。
【0104】
プログラム#2のセル再生が実行されると、最後にセルのポストプロセスが呼び出される。図13では、id=”post”を持つイベントハンドラが呼ばれ、スクリプトプログラミングされているResume()、即ち、GoUpによって再生が中断した場所へ戻って、ここからの再生が続行される。
【0105】
プログラム#2では、メニュー構造を持ち、例えば、音声選択メニュー画面が現れ、ユーザが音声切り替え、例えば、英語から日本語に切り替え、最後にポストプロセスを介して再生の中断した元の位置に戻ることができる。
【0106】
(パレンタル制御)
次に、DVDで使われている一つの機能として、パレンタル制御を説明する。パレンタル制御とは、PG18(18禁)などと呼ばれる映画のガイドラインをDVDプレーヤで実施するための機能である。映画には、暴力的なシーンや性的なシーンを含むタイトルも多くあり、これらは一般にPG18などと呼ばれているガイドラインに従って、映画館で子供の入場制限を行うものである。一方、セルスルーのDVDタイトルの場合、大人が購入したDVDタイトルであっても、昼間の両親の留守中にDVDタイトルを見ることが容易に可能である。これらを防ぐため、予めプレーヤは設定を持っており、プレーヤの設定値とタイトルが持つガイドラインとを比較して、再生可能かを判断し、再生不可の場合は、プレーヤは再生を行わない。
【0107】
DVDの場合、再生を禁止する他に、再生シナリオを切り替える事も可能としている。例えば、性的または暴力的なシーンを含む映画であっても、映画の中全てがそれらのシーンで無い場合が多い、そのため、そのようなシーンを外したり、差し替えたりして再生する機能をサポートしている。
【0108】
また、映画の視聴制限を国や地域によって基準が異なるため、国または地域ごとに異なった設定がDVDではできるようになっている。
【0109】
図14はパレンタルロックの概要を説明した図である。
【0110】
プレーヤは、「Parental Level」と呼ばれる変数にプレーヤでの視聴制限情報を持つ。ナビゲーション情報は、2種類のテーブル「Parental Level−Parental ID Bits」、「Playback Permission Bits−Playback Sequence」を持っている。
【0111】
プレーヤが持つParental Levelは、第1のテーブルによって、Parental ID Bitsに変換される。本例の場合は、プレーヤのParental Levelが”8”であるので、図14の第1のテーブルからParental ID Bits=”1000 0000 0000 0000”を得ることになる。
【0112】
次に、第2のテーブルによって、先に得たParental ID BitsはPlayback Sequenceへと変換される。ここでは、Parental ID BitsとPlayback Permission Bitsの間でAND演算が行われ演算結果が正となるPlayback Sequenceが1つ選択される。本例の場合は、Playback Sequence=”1”が得られることになる。この値が再生するシナリオを指し示している。
【0113】
第1のテーブルを複数もち、プレーヤが持つ地域情報によってテーブルを選択することで、国または地域毎に異なる視聴制限に対応することが可能になる。
【0114】
(タイムマップ)
次に図15を用いてタイムマップを説明する。タイムマップは、VOB(MPEGストリーム)にアクセスするために必要なテーブルである。MPEGストリームは広く知られている様に、VBR(Variable Bit Rate)による高圧縮によって、時事刻々と単位時間辺りのデータ量が変化している。即ち、MPEGストリームの圧縮開始から10分間でのデータ量は5分間までのデータ量の単純に2倍とはなっていない。このため、例えば、先頭から10分の地点へ飛び込んで再生を行おうとしても、10分に対応するデータが何処に記録されているのかは先頭からデータを読んでいかなければならなく、つまり10分かけてやっと目的の場所に到達できることを意味している。
【0115】
タイムマップはそれを解消するための手段である。図15に示すように、VOBU(Video Object Unitの略であり、GOPに相当する)と呼ばれる単位ごとに、VOBU内のビデオフレーム数(またはフィールド数など、時間情報であれば何でも良い)と、パック数(などのデータサイズ情報)を持つテーブルである。
【0116】
例えば、先頭から10分の点へ飛び込む場合には、タイムマップで先頭のVOBUから順にビデオフレーム数を加算していき、先頭から10分の点を含むVOBUを求める。次に当該VOBUへアクセスするためのアドレスをタイムマップから算出する。これは、タイムマップで先頭のVOBUから順にパック数を加算していき、10分の点を含むVOBUの直前のVOBUまで加算することで求めることができる。
【0117】
後述するが、各VOBは個々のファイルに記録されているため、当該VOBを含むファイルで、先頭から先に求めたアドレスまでシーク操作し、読み出しを開始することで実施される。
【0118】
図16に示すように、各セル情報は、対応するVOBとVOB内での開始、終了時刻情報を有し、前述したようにタイムマップを使うことで、開始、終了時刻情報から開始、終了アドレスを得ることができ、当該セルの再生をプレーヤは行うことが可能になる。
【0119】
また、セルの再生処理だけでなく、ユーザがタイムサーチ(時間を指定して飛び込み再生)を実施した場合などにも、タイムマップから適切なアドレス情報を計算することが可能である。
【0120】
(インターリーブブロック)
DVD(SD−DVDおよびHD−DVD)では、インターリーブブロックと呼ぶ、ディスク上で複数のVOBを折込記録する場合がある。一般的には、VOBデータはディスク上に、その読み出し順に連続的に記録し、ディスク上で不必要なシークが発生しないようにしている。しかしながら、DVDの場合は、図17に示す幾つかのアプリケーションにおいて、このVOB連続記録が行えないケースが発生する。
【0121】
図17に示すように、ディレクターズカットおよびマルチアングルと呼ばれている、DVD固有のアプリケーションでは、ディスク上に全てのVOBを連続的に配置することは不可能になる。図17で、VOB#1が最初に再生されるVOBである。VOB#1に続いてVOB#2または、VOB#3が再生される。どちらのVOBが再生されるかは、ユーザが選択したシナリオ次第である。
【0122】
例えば、VOB#2には劇場公開そのままのシーンが含まれていて、VOB#3には非公開のプレミアシーンが含まれているなどがある。これらは、ユーザが事前に(またはVOB#1の再生中に)選ぶ事ができるものである。ここでは、VOB#2が選択されて再生されるとする。この場合、VOB#1とVOB#2をディスク上に連続配置をすることで、VOB#1からVOB#2へ再生が移る場合に、ディスク上でのシークは発生しない。つまり、プレーヤは連続してVOB#1とVOB#2のデータを読み出すことができる。即ち、VOB#1−VOB#2−VOB#3の順にディスク上に記録すればよいことになる。
【0123】
しかしながら、ユーザがVOB#3を選択した場合に、VOB#1とVOB#3の間ではディスク上でシーク処理が発生し、この結果、ディスクからのデータ供給がストップして、再生が途中でストップする可能性がある。もちろん、これを回避するために、プレーヤはトラックバッファを有しているが、トラックバッファがシーク中のデータ供給を補間できる時間は限られており、VOB#2全てを飛ばしてVOB#3へたどり着くには不十分である。
【0124】
逆に、シークによってジャンプする距離(時間)が十分に短い場合は、トラックバッファによって十分に補間が効く。そこで、DVDの場合、図18に示すように、二つ(またはそれ以上)のVOBを幾つかのブロックに分割して、互いに織り込ませてディスク上に記録するインターリーブ記録を行い、この問題を解決している。
【0125】
図19は、上述したインターリーブブロックとトラックバッファ211の関係を説明する図である。図上段に示すように、トラックバッファ211は、ディスク(ドライブ)とデコーダの間に位置し、ディスク(ドライブ)から入力レートVrでデータを受け取り、出力レートVoでデコーダへデータを送り出す。この時、VrとVoに若干の差を設けることで、ディスクからデータを読み出している際、トラックバッファへは常にデータが蓄積され続けていく。図19下段は、時間軸上でのトラックバッファのデータ蓄積量の遷移を示した図である。VOB#2先頭のILVU#1を読み出している間、トラックバッファ211内は、ビットレートVr−Voでデータが蓄積されていく。ILVU#1を読み終えた後、ディスク上でのシークが発生し、次のデータ、VOB#2のILVU#2へシークしている間は、トラックバッファ211へのデータ入力が止まるため、ビットレート−Voでトラックバッファ211内のデータは消費されていく。
【0126】
シークに要する時間が、蓄積されていたデータ全ての消費に要する時間よりも短ければ、インターリーブブロック上でのVOB#2の再生は停止することなく連続再生が可能になる。また、同様にVOB#3も可能になる。
【0127】
トラックバッファを無限に大きく取れるのであれば、インターリーブブロックを限りなく大きく、即ち、VOBを分割することなく、1つのVOBをそのまま記録することが可能であるが、非現実的な話であり、VOBはトラックバッファによるデータ供給が保証される範囲まで細かく分割される必要がある。
【0128】
(変数&スクリプト)
図2で説明をした通り、本実施例のプレーヤはスクリプトプロセッサを有している。スクリプトとは一つのプログラミング言語であって、インターネット上で使われているJava(登録商標) Scriptなどがその一つである。HD−DVDでは、タイトルの再生制御、特にメニューのようなユーザからのリクエストを受けた際の処理を記述するためにスクリプトを使用している。また、スクリプトと同様に幾つかの変数も用意してあり、スクリプトプログラムが自由に使えたり、また、プレーヤの設定値、例えば、再生中のタイトル番号などをスクリプトから参照、または、条件判断処理などに使うことが可能である。
【0129】
本実施例では、一般変数とシステム変数の2種類の変数を用意している。
【0130】
一般変数は、16個用意されており、これはスクリプトが自由に使う事ができる。これらの値には、接頭辞「GV」と、各変数の番号「0」から「15」を付けることで使用することができる。例えば、一般変数0は「GV0」のようになる。
【0131】
システム変数は、32個用意されており、これもスクリプトから参照することが可能であるが、プレーヤの設定値を得るためのものであり、スクリプトから値を代入することはできない。これらの値には、接頭辞「SV」と、各変数の番号「0」から「31」を付けることで使用することができる。例えば、システム変数0は「SV0」のようになる。
【0132】
図20はシステム変数の一覧をまとめたものである。順に説明をする。
【0133】
SV0   :言語コード
SV1   :音声ストリーム番号
SV2   :字幕ストリーム番号
SV3   :アングル番号
SV4   :タイトル番号
SV5   :チャプタ番号
SV6   :プログラム番号
SV7   :セル番号
SV8   :選択状態のハイライトボタン番号
SV9   :ナビゲーションタイマー
SV10  :予備
SV11  :カラオケ用ミキシングモード
SV12  :パレンタル用国情報
SV13  :パレンタルレベル
SV14  :プレーヤ設定値(ビデオ)
SV15  :プレーヤ設定値(オーディオ)
SV16  :音声ストリーム用言語コード
SV17  :音声ストリーム用言語コード(拡張)
SV18  :字幕ストリーム用言語コード
SV19  :字幕ストリーム用言語コード(拡張)
SV20  :プレーヤリージョンコード
SV21  :予備
SV22  :予備
SV23  :再生状態
SV24  :レジューム情報1(プログラム番号)
SV25  :レジューム情報1(セル番号)
SV26  :レジューム情報1(時刻(上位ビット))
SV27  :レジューム情報1(時刻(下位ビット))
SV28  :レジューム情報2(プログラム番号)
SV29  :レジューム情報2(セル番号)
SV30  :レジューム情報2(時刻(上位ビット))
SV31  :レジューム情報2(時刻(下位ビット))
【0134】
次にスクリプトについて説明をする。
【0135】
スクリプトは、<script>タグと</script>タグに囲まれた中に記述する。記述方法はJava(登録商標) Scriptなどと同じである。以下に詳細を記す。
【0136】
最初に四則演算から説明をする。他のスクリプト言語と同様に、代入「=」、加算「+」、減算「−」、乗算「*」、除算「/」、剰余計算「%」が可能である。例えば、
【0137】
GV3 = GV3 + 100;
GV3に100を加算し、GV3に代入する。
【0138】
GV2 = GV2 % 5;
GV2を5で除算し、その余りをGV2へ代入する。
【0139】
GV1 = GV1 / GV2;
GV1をGV2で除算し、GV1へその商を代入する。
【0140】
スクリプトは、Boolean演算のAND「&」、OR「|」、Exclusive OR「^」の計算が可能である。例えば、
GV10 = GV9 & GV3;
GV9とGV3のANDを求め、GV10に代入する。
【0141】
また、スクリプトは、次の例のようにして乱数「random」を発生させることができる。
GV1 = random();
【0142】
スクリプトプログラミングの中の処理を条件によって変えることも可能である。一般的に良く使用される、条件式「if〜then〜else」、処理を停止する「break」、プログラム中をジャンプする「goto」などが使用できる。例えば、



【0143】
また、



などがスクリプトによってプログラミング可能である。
【0144】
また、本実施例のスクリプトでは、上述した従来からある処理演算の他に、DVD再生を制御する機能をサポートしている。例えば、他のプログラムやセルの再生を開始するJumpやLinkがある。
【0145】
Jumpは、プログラムを超えて他のプログラムやセルの再生に移動することができる。スクリプト中では、「Jump」の後に飛び先のプログラム番号とセル番号を以下のように記述する。
Jump(プログラム番号、セル番号);
【0146】
Linkは、現在再生中のプログラム内で他のセルの再生に移動することができる。スクリプト中では、「Link」の後に飛び先のセル番号を以下のように記述する。
Link(セル番号);
【0147】
Jump、Linkの他に、GoUpによって他のプログラム先頭セルへ移動することも可能である。GoUpは、その実行直前までに再生していた、プログラム、セル、時刻情報をシステム変数(SV)に保持し、Resumeを実行することによって、中断した時点からの再生を再開することができる。スクリプト中では夫々以下のように記述する。
GoUp(15);
Resume();
【0148】
GoUpの直前まで再生していたプログラム、セル、時刻の夫々の情報は、前述したシステム変数のSV24からSV27に記録される。プレーヤは、スクリプトによってResumeが実行された時に、SV24からSV27の値を用いて中断地点まで戻って再生を再開する。この時、時刻情報は、タイムマップによって、適切なアドレス情報に変換され、VOB内の適切な位置からの再生が可能である。
【0149】
GoUpが二度行われた場合、即ち、最初のGoUpの後に、Resumeが実行されないまま次のGoUpが実行された場合は、SV24からSV27に記録されているレジューム情報は、SV28からSV31の第2のレジューム情報へ待避させられる。この後、Resumeが実行された場合は、SV24からSV27に記録されているResume情報を使ってプレーヤはResume処理を行い、同時にSV28からSV31へ待避させてあったResume情報はSV24からSV27へ戻される。
【0150】
スクリプトでは、再生実行の他に、再生を一時停止させる「Still」命令が使用できる。スクリプト中では、Stillの後に停止時間を秒で指定するだけである。
Still(10);
【0151】
また、スクリプトでは、ユーザ操作(ユーザオペレーション)のコントロール(制御)も可能である。例えば、早送り再生などの機能をタイトルの一定期間中禁止するなどである。映画タイトルの中では、著作権に関する警告などコンテンツプロバイダが意図的に特再、特に早送り再生を禁止したい場面などがある。
【0152】
図21はユーザ操作の一覧である。
【0153】
Time_Play()
タイトル、チャプタ−、時刻を指定して再生
【0154】
Time_Search()
同一タイトル内で時刻を指定して再生
【0155】
Chapter_Play()
同一タイトル内でチャプタ−を指定して再生
【0156】
Title_Play()
タイトルを指定して再生
【0157】
Stop()
再生停止
【0158】
PrevChapter_Search()
現在再生中のチャプターの一つ前のチャプタ−を再生
【0159】
NextChapter_Search()
現在再生中のチャプタ−の次のチャプタ−を再生
【0160】
Forward_Scan()
早送り再生
【0161】
Backward_Scan()
巻き戻し再生
【0162】
Menu_Call(0)
「赤」ボタンによるグローバルイベントハンドラの起動
【0163】
Menu_Call(1)
「緑」ボタンによるグローバルイベントハンドラの起動
【0164】
Menu_Call(2)
「青」ボタンによるグローバルイベントハンドラの起動
【0165】
Menu_Call(3)
「橙」ボタンによるグローバルイベントハンドラの起動
【0166】
Menu_Call(4)
「黄」ボタンによるグローバルイベントハンドラの起動
【0167】
Upper_Button_Select()
リモートコントローラの「上」キー
【0168】
Lower_Button_Select()
リモートコントローラの「下」キー
【0169】
Left_Button_Select()
リモートコントローラの「左」キー
【0170】
Right_Button_Select()
リモートコントローラの「右」キー
【0171】
Button_Activate()
リモートコントローラの「実行」キー
【0172】
Button_and_Activate()
リモートコントローラからのボタン番号の直接入力と「実行」キー
【0173】
Still_Off()
スクリプトによる一時停止(Still)の解除
【0174】
Pause_On()
一時停止
【0175】
Pause_Off()
一時停止の解除
【0176】
Menu_Language_Select()
メニュー言語選択
【0177】
Audio_Stream_Change()
音声切り替え
【0178】
Subtitle_Stream_Change()
字幕切り替え
【0179】
Angle_Change()
アングル切り替え
【0180】
Parental_Level_Select()
パレンタルレベル選択
【0181】
Parental_Countery_Select()
パレンタル、適応国(地域)の選択
【0182】
Karaoke_Audio_Presentation_Mode_Change
()
カラオケ用音声モードの切り替え
【0183】
Video_Presentation_Mode_Change()
ビデオ再生信号(ワイド、ノーマル、Pan−scan、レターボックス)の切り替え
【0184】
上述したユーザオペレーション(UOP)を次の関数によって、無効化、有効化することが夫々できる。引数で与えられる「番号」は図21に記した番号が対応している。
InvalidateUOP(番号);
ValidateUOP(番号);
【0185】
また、引数を「0xff」とすることで、全てのUOPを対象として、一括して無効化、有効化することも可能である。
InvalidateUOP(0xff);
ValidateUOP(0xff);
【0186】
その他、スクリプトの機能としては、16個ある一般変数を一括して初期化する、
Initialize(初期化数);
【0187】
ハイライト表示するボタンに合わせたイメージを表示命令する、
Highlight(ボタン番号);
【0188】
音声ストリーム、字幕ストリームを夫々切り替える、
ChangeAudio(音声ストリーム番号);
ChangeSubtitle(字幕ストリーム番号);
などがある。
【0189】
(データ構造)
図22および図23を用いてファイル、データ構造を説明する。
【0190】
図22は、ディスク上のディレクトリ、ファイル構造を示している。実施例でSD−DVDの例を述べたように、HD−DVDでもファイルシステムを通してディスク上のデータにアクセスすることが可能である。
【0191】
ルートディレクトリ「ROOT」の直下に2つの専用ディレクトリ「VOBFILES」および「NAVFILES」が置かれている。「VOBFILES」はVOBデータを記録したファイルを置く専用のディレクトリであって、この中には一つ以上のVOBファイルが記録されている。VOBは夫々個々のファイルに記録されており、ナビゲーションデータでは、ファイル名を指定するだけでVOBを見つけ出すことが可能である。
【0192】
「NAVFILES」はナビゲーションデータ専用のディレクトリであって、中には3つの専用ファイル「VOLUME.IFO」「PROGRAMS.IFO」「STREAM.IFO」が置かれている。
【0193】
「VOLUME.IFO」ファイルはディスク全体を管理するボリューム情報が記録され、「PROGRAMS.IFO」にはディスク内のプログラムおよびセルの情報が記録され、「STREAM.IFO」には個々のVOBに関する属性情報が記録されている。ファイルの詳細は後述する。
【0194】
図23はナビゲーションデータ構造全体を示した図である。
【0195】
ナビゲーションデータは前述したファイル同様に、Volume、Program List、Stream Information Listがある。
【0196】
Volumeには、Contents、Event Call List、Event Handler Listが夫々置かれ、Program Listは、複数のProgramからなるリストであり、個々のProgramはCell Listを持つ。Cell Listの中は、一つのCellまたは複数の並列関係(マルチアングルのように択一再生される関係)にあるCellが時系列に並べられ、また、Cell Listは、Cell内でのMenuと、CellまたはMenuから呼ばれるEvent HandlerのリストEvent Handler Listを持っている。Stream Information Listには、個々のVOBに対応するStream Informationが記述されている。
【0197】
図24はボリューム情報(Volume)の詳細を示した図である。図に示す通り、ナビゲーションデータはXML(extensible Markup Language)によって記述されている。
【0198】
ボリューム情報は、タグ<volume>で囲まれており、上述した通り、子要素として、コンテンツ情報(contents)、イベントコールリスト(event_call_list)、イベントハンドラリスト(event_handler_list)を有している。また、属性として、バージョン情報(version)を有している。
【0199】
コンテンツ情報(contents)は、著作権情報(copyright)、タイトル名(title)、サブタイトル名(sub−title)を子要素として持つ。
【0200】
イベントコールリスト(event_call_list)は、図13で説明したリモートコントローラ上の5つの色付きキー(ボタン)に夫々対応するイベントハンドラを起動するための宣言(event_call)を子要素として持っている。イベントハンドラへの宣言(event_call)は子要素を含まず、属性として、色付キー対応情報(button)、イベントハンドラのID(id)を持っている。
【0201】
イベントハンドラリスト(event_handler_list)は子要素としてイベントハンドラ(event_handler)を持つ。詳細は後述する。
【0202】
図25はプログラムリスト情報(Program List)の詳細を示した図である。図に示す通り、プログラムリスト情報は(program_list)は、子要素として、複数のプログラム情報(program)を持つが、属性は持たない。
【0203】
プログラム情報(program)は子要素として、セルリスト(cell_list)とオプションとしてパレンタルIDビットテーブル(parental_id_bits_table)を持ち、属性として、タイトル番号(title)、エントリー情報(entry)、ファーストプレイ情報(first_play)を持っている。
【0204】
タイトル番号(title)は、当該プログラムの再生中にプレーヤ表面パネルやTV画面上にOSD表示するタイトル番号である。エントリー情報(entry)は、タイトル内に複数のプログラムが存在する(複数のプログラムが同一タイトル番号を有する)場合に、先頭となるプログラム(program)を識別するのに用いる。これは主に、タイトルサーチ(Title_Search())などのUOPに対して先頭となるプログラムを与える役割を果たす。ファーストプレイ情報(first_play)は、ディスクがプレーヤに挿入された場合に、自動再生開始するプログラムを識別するための情報である。
【0205】
パレンタルIDビットテーブル(parental_id_bits_table)は、子要素として、パレンタルレベル情報(parental_level)を持ち、属性は持たない。パレンタルレベル情報(parental_level)は2つの属性、レベル(level)とパレンタルIDビット(parental_id_bits)を持つ。これらは、図14で説明した第1のテーブルの役割を果たす。
【0206】
セルリスト(cell_list)は、再生許可ビット(playback_permission_bits)を属性として持つことがある。これは同一プログラム情報(program)内にパレンタルIDビットテーブル(parental_id_bits_table)が存在する場合に必ず存在し、逆にパレンタルIDビットテーブル(parental_id_bits_table)が存在しない場合は必ず存在しない。この再生許可ビット(playback_permission_bits)は、図14で説明した第2のテーブルの役割を果たしている。
【0207】
また、プログラム内のセルリストは(cell_list)原則一つであるが、パレンタルIDビットテーブル(parental_id_bits_table)が存在する場合に限り、択一的に再生されるセルリスト(cell_list)を複数記述することが可能である。
【0208】
図26および図27は、セルリスト(cell_list)の詳細を示した図である。セルリスト(cell_list)は子要素として、ブロック(block)を一つまたは複数持つ。ブロックの順番がプログラム内での再生順序になる。ブロックは属性としてタイプを持ち、属性値として「N.A.」「random」「shuffle」「angle」の何れかを取る。夫々は以下の意味を有している。
【0209】
N.A.
当該ブロックは1つのセルを有している。
【0210】
random
当該ブロックは複数のセルを有していて、複数のセルはランダムに選択され、再生される。同じくブロック要素の中にある属性、回数(counts)だけセルの選択再生が行われる。
【0211】
shuffle
当該ブロックは複数のセルを有していて、複数のセルはシャッフルされ、再生される。同じくブロック要素の中にある属性、回数(counts)だけセルの選択再生が行われる。
【0212】
angle
当該ブロックは複数のセルを有していて、複数のセルは個々のアングルに対応し、ユーザはアングルを選択して再生ができる。また、再生中であっても他のアングルへ切り替えが可能である。
【0213】
個々のセルはタグ<cell>によって宣言される。図50を併せて参照すると、セルは子要素として、メニューリスト(menu_list)を持つことができ、属性として、チャプター番号(chapter)、参照先ストリーム(stream)、開始時刻(in)、終了時刻(out)、プリプロセス、ポストプロセスを持つ。
【0214】
チャプター番号(chapter)は、タイトル番号同様に、当該セルの再生中にプレーヤ表面パネルやTV画面上にOSD表示するチャプター番号であり、参照先ストリーム(stream)は、ストリーム情報(stream_information)へのリンク情報である。また、開始時刻(in)、終了時刻(out)はセルが参照するVOB上での開始、終了時刻(相対時刻)である。
【0215】
プリプロセスは、イベントハンドラへのリンク情報である。図7および図8で説明したセルのプリプロセスを呼び出す宣言である。また、ポストプロセスは、イベントハンドラへのリンク情報である。図7および図8で説明したセルのポストプロセスを呼び出す宣言である。
【0216】
セルは、子要素としてメニューリスト(menu_list)を持つ。詳細は後述する。
【0217】
また、セルに続いてイベントハンドラリスト(event_handler_list)がブロック内に記述される。詳細は後述する。
【0218】
図28は、メニューリスト(menu_list)の詳細を説明した図である。メニューリスト(menu_list)は子要素として複数のメニューを持つリストである。メニューは、子要素として一つまたは複数のボタンを持ち、属性として、開始時刻(in)、終了時刻(out)とメニュー起動時のプリプロセスへのリンク情報を持つ。個々の詳細は、前述したセルと同様である。
【0219】
ボタンは、属性として、そのボタンのID(id)を持ち、他のボタンとの識別を行う。また、ボタンは、子要素として、イベントコール宣言(event_call)を一つ持ち、イベントコール宣言(event_call)は、その属性として以下を持つ。
【0220】
down
ユーザがリモートコントローラ上の「下」キー(ボタン)を押した時のイベントハンドラへのリンク
【0221】
up
ユーザがリモートコントローラ上の「上」キー(ボタン)を押した時のイベントハンドラへのリンク
【0222】
left
ユーザがリモートコントローラ上の「左」キー(ボタン)を押した時のイベントハンドラへのリンク
【0223】
right
ユーザがリモートコントローラ上の「右」キー(ボタン)を押した時のイベントハンドラへのリンク
【0224】
action
ユーザがリモートコントローラ上の「実行」キー(ボタン)を押した時のイベントハンドラへのリンク
【0225】
図29は、イベントハンドラリスト(event_handler_list)の詳細を説明する図である。イベントハンドラリスト(event_handler_list)は、ボリューム情報(volume)内、またはブロック内に存在し、夫々その情報ブロック内で閉じた関係となっている。
【0226】
つまり、ボリューム情報(volume)内のイベントハンドラリスト(event_handler_list)は、ボリューム情報(volume)内のイベントコールリスト(event_call_list)からのみ参照され、ブロック内のイベントハンドラリスト(event_handler_list)は、同じブロック内のセルまたはメニューからのみ参照される。
【0227】
イベントハンドラリスト(event_handler_list)は、その子要素として、一つまたは複数のイベントハンドラ(event_handler)を持つ。イベントハンドラ(event_handler)は、子要素として、スクリプトを持ち、この中にスクリプトプログラムが記述される。また、イベントハンドラ(event_handler)は、ID(id)を持ち、この値によってイベントコール宣言(event_call)との参照関係が定義される。
【0228】
図30は、ストリーム情報テーブル(stream_information_table)の子要素であるストリーム情報(stream_information)の説明図である。
【0229】
ストリーム情報(stream_information)は子要素として、一般情報(general_information)、属性情報(attribute_information)、シームレス情報(seamless_information)、タイムマップ(time_map)を持っている。
【0230】
一般情報(general_information)は、子要素をもたず、属性として、ID(id)、ファイル名(file)、シームレス接続情報(seamless_from)を持っている。ID(id)はストリーム情報テーブルで固有の値を持ち、セルからのリンク利用している。ファイル名(file)は、前述したVOBFILES下に置かれているストリームのファイル名であり、ファイルとの参照に用いている。シームレス接続情報(seamless_form)は、当該VOBが他のVOBとシームレス接続する場合に、どのVOBから接続をするかを示す情報である。
【0231】
属性情報(attribute_information)は、属性を持たず、ビデオ属性情報(video_attribute_information)、音声属性情報(audio_attribute_information)、字幕属性情報(subtitle_attribute_information)を持つ。音声属性情報(audio_attribute_information)と字幕属性情報(subtitle_attribute_information)は対象のVOBが含んでいる夫々のストリーム数だけ属性情報を有している。
【0232】
ビデオ属性情報(video_attribute_information)は、コーディング、MPEG2の場合のプロファイルおよびレベル、フレームレート、クローズドキャプション情報1(line_21_switch_1)、クローズドキャプション情報2(line_21_switch_2)、解像度を子要素として有している。
【0233】
音声属性情報(audio_attribute_information)は、ストリームID(id)、コーディング、サンプリング周波数(sampling)、音声チャンネル数(number_of_audio_channels)、言語情報(language)を子要素として有しており、字幕属性情報(subtitle_attribute_information)は、言語情報(language)を子要素として有している。
【0234】
シームレス情報(seamless_information)は、前述したシームレス接続情報(seamless_from)を有する場合にのみ存在し、ストリーム中に存在する音声の不連続点に関する情報であるオーディオギャップ情報(audio_gap)を子要素として有している。オーディオギャップ情報(audio_gap)は、対象となるオーディオストリームのストリームID(id)と、当該オーディオストリームでの音声不連続点であるオーディオギャップ開始時刻(stop_ptm1/stop_ptm2)とその長さであるオーディオギャップ長(gap_length1/gap_length2)を属性として有している。
【0235】
オーディオストリーム中では最大2つのオーディオギャップを持つことができ、夫々順にオーディオギャップ1、オーディオギャップ2と呼ぶ。これにあわせて、オーディオギャップ開始時刻(stop_ptm1/stop_ptm2)および、オーディオギャップ長(gap_length1/gap_length2)は夫々に対応する2つの情報を属性として持つ。
【0236】
タイムマップ(time_map)は、属性を持たず、時刻情報(stream_ptms)とVOBUエントリーリスト(vobu_entry_list)を子要素として持つ。時刻情報(stream_ptms)は当該VOBの開始時刻(in)および終了時刻(out)を属性としてもつ。時刻情報は、MPEGで規定されている27MHzのクロックによって記される時刻であって、ストリーム中のタイムスタンプとして記される値である。
【0237】
VOBUエントリーリスト(vobu_entry_list)は、当該VOB内の個々のVOBUに対応するVOBUエントリー(vobu_entry)を子要素としてストリーム内での記録順と同じ順で持つ。
【0238】
VOBUエントリー(vobu_entry)は、当該VOBUの時間長(duration)、サイズ、先頭Iピクチャの読み込みに必要なデータサイズ(first)、二つ目のリファレンスピクチャ(IピクチャまたはPピクチャ)の読み込みに必要なデータサイズ(second)、三つ目のリファレンスピクチャ(IピクチャまたはPピクチャ)の読み込みに必要なデータサイズ(third)を夫々属性として持っている。
【0239】
(動作例)
次に図32、図33、図34、図35を用いてプレーヤの動作を説明する。
【0240】
図32は、HD−DVDディスク挿入から再生開始までの処理を示したフローチャートである。
【0241】
新しいディスクがプレーヤに挿入された場合(S101)、最初にナビゲーションファイルが読み出されXMLパーサ201へと渡される(S102)。XMLパーサ201はナビゲーションデータの構造を解析し、シナリオ情報をシナリオプロセッサ204に渡し、シナリオプロセッサがシナリオの内容を解析する(S103)。シナリオプロセッサは、プログラム情報からファーストプレイ情報(first_play)を検出処理する(S104)。ファーストプレイ情報(first_play)が存在する場合は、当該プログラムの再生を開始し(S107)、存在しない場合はUOP受け付けステップ(S105)へ移り、UOPを受け付けるまでUOP受付待ちが続く(S105)。UOPは、前述した通り、ユーザオペレーションのことであり、具体的には、ユーザがリモートコントローラのキー(ボタン)を使って、メニュー呼び出しや、ハイライト移動を行う操作を指す。UOPを受け付けた場合、UOP処理を開始する(S106)。
【0242】
図33は、図32のプログラム再生ステップ(S107)の詳細を記すフローチャートである。また、当該処理は、スクリプト等によってプログラム再生が開始される場合に実行処理されるフローチャートである。
【0243】
プログラム再生を開始(S201)すると、まずシナリオプロセッサ204が、プログラム情報の詳細を解析する(S202)。続いてシナリオプロセッサは、プログラム最初のセル情報の解析(S203)、当該セルのプリプロセス処理(S204)を行う。続けてシナリオプロセッサ204は、ストリーム情報の解析(S205)、当該セル再生に必要なアドレス計算(S206)を行い、ストリームのデコードを開始する(S207)。
【0244】
セル再生が終了するまでは、ステップ208〜214(S208〜S214)が繰り返される。セル再生が終了(S208)した場合、シナリオプロセッサはセル再生を終了し、ポストプロセス処理(S215)へ移行する。他の場合は、UOP受け付け(S209)へ移行する。UOPが受け付けられた場合(S209)、UOP処理(S210)へ進み、他の場合は、Menu開始判定(S211)へ進む。
【0245】
UOP処理(210)の詳細は別途説明する。
【0246】
Menuとは、図6および図28で説明した、動的シナリオを実現するための構造であり、構造に従って、プレーヤはボタンイメージを表示し、ユーザがボタン選択、実行を行うことができる。Menu開始判定(S211)でMenu開始が判断された場合、即ち、シナリオプロセッサが、Menu開始時刻と内部でカウントしている時刻とが一致した場合、シナリオプロセッサはプリプロセス処理(S212)を行う。
【0247】
次に、シナリオプロセッサはMenu終了判定(S213)を行い、Menu終了が判断された場合、シナリオプロセッサはポストプロセス処理(S214)を実行する。
【0248】
プリプロセス(S212)およびポストプロセス(S214)の詳細は別途説明する。
【0249】
再生終了判定(S208)で、セル再生終了が判定された場合、スクリプトプロセッサ202でのポストプロセス(S215)を経て、次のセル再生へと移行する。最初に次のセルの有無を判定(S216)を行い、次に再生するセルが存在しない、即ち、直前に再生を終了したセルが当該プログラムで最後のセルであった場合、再生終了(S217)となる。次に再生するセルが存在する場合は、セル情報解析(S203)へと移り、次のセル再生へと移行する。
【0250】
図34は、UOP処理の詳細を記すフローチャートである。
【0251】
UOP処理開始(S301)を経て、シナリオプロセッサ204は、最初にUOPのメニューコール判定(S302)を行う。UOPがメニューコール、即ち、ユーザが選択したリモートコントローラのキーが「赤」「緑」「青」「橙」「黄」の何れかである場合は、スクリプトプロセッサはグローバルイベントハンドラ処理を実行する。最初に、選択されたキーに対応するイベントコールが存在されているか判断(S309)し、イベントコールが存在されていない場合は、UOP処理を終了(S308)し、イベントコールが存在する場合は、スクリプトプロセッサはイベントコールを発生(S310)し、スクリプトプロセッサが対応するイベントハンドラのスクリプトを処理(S307)して、UOP処理を終了(S308)する。
【0252】
メニューコール判定(S302)で、UOPがメニューコールでない場合は、UOPが上下左右実行キーであるかを判定(S303)する。UOPが上下左右実行キー選択である場合、次に現在時刻がMenu区間内であるかを判定(S304)し、続いて 対応するイベントコールが存在するかを判定(S305)する。
【0253】
前述した3つのステップS303、S304、S305全てがYESで通った場合、シナリオプロセッサはイベントコールを発生(S306)し、スクリプトプロセッサが対応するイベントハンドラのスクリプトを処理(S307)して、UOP処理を終了(S308)する。
【0254】
3つのステップS303、S304、S305何れかでNOとなった場合、シナリオプロセッサはUOP処理を終了(S308)する。
【0255】
図35(A)は、プリプロセス処理、図35(B)は、ポストプロセス処理の詳細を夫々示すフローチャートである。
【0256】
プリプロセス処理開始(S401)を経て、シナリオプロセッサは、プリプロセスに対応するイベントコールが存在するかを判定する(S402)。イベントコールが存在しない場合は、シナリオプロセッサはプリプロセスを終了(S405)する。逆にイベントコールが存在する場合は、シナリオプロセッサ204はイベントコールを発生(S403)し、スクリプトプロセッサ202はイベントコールに対応するイベントハンドラ内のスクリプトを処理(S404)し、プリプロセスを終了(S405)する。
【0257】
ポストプロセス処理開始(S501)を経て、シナリオプロセッサは、ポストプロセスに対応するイベントコールが存在するかを判定する(S502)。イベントコールが存在しない場合は、シナリオプロセッサはポストプロセスを終了(S505)する。逆にイベントコールが存在する場合は、シナリオプロセッサはイベントコールを発生(S503)し、スクリプトプロセッサはイベントコールに対応するイベントハンドラ内のスクリプトを処理(S504)し、ポストプロセスを終了(S505)する。
【0258】
(メニューの例)
次に、図36から図40を使って、グローバルイベントハンドラを使ったメニューの例を説明する。
【0259】
図36は、タイトル選択メニューの例である。本例では、リモートコントローラ上の「赤」キーをタイトル選択メニューに対応させている。対応は前述した通り、Volume情報のイベントコールリスト(event_call_list)にイベントコール(event_call)に呼び出すイベントハンドラのID(id)を宣言し、イベントハンドラでタイトル選択メニューに対応するProguramをGoUpで再生するように設定する。
【0260】



【0261】
ユーザがリモートコントローラ上の「赤」キーを押した場合、対応するグローバルイベントハンドラを介してスクリプトが実行される。本例では、スクリプトで、
GoUp(5);
がプログラミングされている。プレーヤは、現在再生中のプログラム#1、セル#1の再生を一端停止(サスペンド)し、GoUp(5)に従って、プログラム#5の再生を開始する。この時、プレーヤは、再生を停止した、プログラム#1、セル#1、およびセル#1で再生中の位置(時刻)情報をSV(System
Variable)24〜SV27に夫々記録する。
【0262】









【0263】
プログラム#5、セル#1では、メニュー画面が表示され、画面上にはタイトル#1、タイトル#2選択用のボタンが夫々表示される。
【0264】
プログラム#5、セル#1の再生が終了、即ち、ユーザが何れかタイトル再生も選択しなかった場合、下記のセル#1ポストプロセスが実行される。
Link(1);
【0265】
ポストプロセスによって、プログラム#5、セル#1の再生が再度実行され、即ち、ユーザが何れかのタイトルを選択するまで、当該セルの再生が繰り返されつづける。
【0266】
ここで、ユーザがタイトル#2を選択した場合、「タイトル#2」を表示しているボタンに対応するイベントハンドラが呼ばれ、内部のスクリプト(下記)が処理される。
Jump(3,1);
このスクリプトによって、プレーヤは、タイトル#2としてプログラム#3の再生を開始する。
【0267】
図37は、チャプター選択メニューの例である。本例では、リモートコントローラ上の「緑」キーをチャプター選択メニューに対応させている。
【0268】
ユーザがリモートコントローラ上の「緑」キーを押した場合、対応するグローバルイベントハンドラを介してスクリプトが実行される。本例では、スクリプトで、



がプログラミングされている。SV4は現在再生中のタイトル番号を格納しているSV(System Variable)である。即ち、再生中のタイトル毎に処理内容を変えることを行っている。本例の場合、タイトル#1を再生中であるため、GoUp(6)が選択実行される。
【0269】
プレーヤは、現在再生中のプログラム#1、セル#1の再生を一端停止(サスペンド)し、GoUp(6)に従って、プログラム#6の再生を開始する。この時、プレーヤは、再生を停止した、プログラム#1、セル#1、およびセル#1で再生中の位置(時刻)情報をSV(System Variable)24〜SV27に夫々記録する。
【0270】
プログラム#6、セル#1では、メニュー画面が表示され、画面上にはチャプター#1、チャプター#2選択用のボタンが夫々表示される。
【0271】
プログラム#6、セル#1の再生が終了、即ち、ユーザが何れかタイトル再生も選択しなかった場合、下記のセル#1ポストプロセスが実行され、同一プログラム、セルの再生が繰り返される。
【0272】
Link(1);
ここで、ユーザがチャプター#2を選択した場合、「チャプター#2」を表示しているボタンに対応するイベントハンドラが呼ばれ、内部のスクリプト(下記)が処理される。
【0273】
Jump(1,3);
このスクリプトによって、プレーヤは、チャプター#2としてプログラム#1のセル#3の再生を開始する。
【0274】
図38は、マルチ言語対応したタイトルメニューの例である。本例では、リモートコントローラ上の「赤」キーをタイトル選択メニューに対応させている。
【0275】
ユーザがリモートコントローラ上の「赤」キーを押した場合、対応するグローバルイベントハンドラを介してスクリプトが実行される。本例では、スクリプトで、



がプログラミングされている。SV0は言語設定(Language Code)を格納しているSV(System Variable)である。即ち、現在のプレーヤ設定に合わせて処理内容を変えることを行っている。本例では、プレーヤの言語設定を英語「en」であるとして説明を続けることにする。上述した条件判断処理では、言語設定が日本語「jp」であるかどうかで処理を分けている。本例では、言語設定が英語「en」であるので、後述するGoUp(9)が実行処理される。
【0276】
プレーヤは、現在再生中のプログラム#1、セル#1の再生を一端停止(サスペンド)し、GoUp(9)に従って、プログラム#9の再生を開始する。この時、プレーヤは、再生を停止した、プログラム#1、セル#1、およびセル#1で再生中の位置(時刻)情報をSV(System Variable)24〜SV27に夫々記録する。
【0277】
プログラム#9、セル#1では、メニュー画面が表示され、画面上には英語でTitle#1、Title#2選択用のボタンが夫々表示される。もし、プレーヤの言語設定が日本語であった場合、スクリプトプログラミングに従い、日本語表示メニューを持つプログラム#8が再生される。
【0278】
プログラム#9、セル#1の再生が終了、即ち、ユーザが何れかタイトル再生も選択しなかった場合、下記のセル#1ポストプロセスが実行され、同一プログラム、セルの再生が繰り返される。
Link(1);
以降は、図36で説明したタイトル選択メニューと同様である。
【0279】
図39は、マルチページを用いたチャプター選択メニューの例である。本例では、リモートコントローラ上の「緑」キーをチャプター選択メニューに対応させている。
【0280】
ユーザがリモートコントローラ上の「緑」キーを押した場合、対応するグローバルイベントハンドラを介してスクリプトが実行される。本例では、以下のスクリプトがプログラミングされている。
GoUp(6);
【0281】
プレーヤは、現在再生中のプログラム#1、セル#1の再生を一端停止(サスペンド)し、GoUp(6)に従って、プログラム#6の再生を開始する。この時、プレーヤは、再生を停止した、プログラム#1、セル#1、およびセル#1で再生中の位置(時刻)情報をSV(System Variable)24〜SV27に夫々記録する。
【0282】
プログラム#6、セル#1では、メニュー画面が表示され、画面上にはチャプター#1、次ページ(Next)選択用のボタンが夫々表示される。
【0283】
プログラム#6、セル#1の再生が終了、即ち、ユーザが何れかタイトル再生も選択しなかった場合、下記のセル#1ポストプロセスが実行され、同一プログラム、セルの再生が繰り返される。
Link(1);
【0284】
ここで、ユーザが次ページを選択した場合、「Next」を表示しているボタンに対応するイベントハンドラが呼ばれ、内部のスクリプト(下記)が処理される。
Link(2);
【0285】
このスクリプトによって、プレーヤは、同一プログラム内のセル#2の再生を開始する。
【0286】
このように、各メニューページを同一プログラム内のセル一つずつとして実現し、複数のメニューから構成されるマルチページメニューを実現することが可能である。
【0287】
図40は、オーディオ選択メニューの例である。本例では、リモートコントローラ上の「青」キーをオーディオ選択メニューに対応させている。
【0288】
ユーザがリモートコントローラ上の「青」キーを押した場合、対応するグローバルイベントハンドラを介してスクリプトが実行される。本例では、以下のスクリプトがプログラミングされている。
GoUp(10);
【0289】
プレーヤは、現在再生中のプログラム#1、セル#1の再生を一端停止(サスペンド)し、GoUp(10)に従って、プログラム#10の再生を開始する。この時、プレーヤは、再生を停止した、プログラム#1、セル#1、およびセル#1で再生中の位置(時刻)情報をSV(System Variable)24〜SV27に夫々記録する。
【0290】
プログラム#10、セル#1では、音声メニュー画面が表示され、画面上には英語、日本語選択用のボタンが夫々表示される。
【0291】
プログラム#10、セル#1の再生が終了、即ち、ユーザが何れかタイトル再生も選択しなかった場合、下記のセル#1ポストプロセスが実行され、ユーザが何れかの音声を選択するまで、当該セルの再生が繰り返される。
Link(1);
【0292】
ここで、ユーザが日本語を選択した場合、「Japanese」を表示しているボタンに対応するイベントハンドラが呼ばれ、内部のスクリプト(下記)が処理される。
ChangeAudio(2);
Resume();
【0293】
このスクリプトによって、プレーヤは、再生する音声をストリーム#2に切り替え、Resumeを実行する。Resumeの実行によって、再生が一時停止したプログラム#1、セル#1の停止地点からの再生が再開される。この時、プレーヤは先にSV24〜27に保持したレジューム情報を用いてレジュームを実行している。
【0294】
図41は、イメージデータを使ったマルチ言語対応メニューの例である。前述した通りに、メニュー区間に入ると、シナリオプロセッサは、メニュー情報に基づいてメニューの表示を行う。具体的には、シナリオプロセッサ204は、メニュー情報のプリプロセスに対応するイベントコールを発生し、スクリプトプロセッサ202に送る。
【0295】
スクリプトプロセッサ202は、対応するイベントハンドラのスクリプトプログラミングを実行処理する。図41の左上にあるスクリプトプログラミングがそれである。
【0296】
スクリプトプログラミングでは、条件分岐処理ができるので、本例のように、言語設定(SV0)に基づいて、表示するイメージを切り替えることが可能である。例えば、本例のように、メニューを構成するためのイメージを、日本語に対応するイメージのセットと、英語に対応するイメージのセットの2セット用意してストリームに多重化しておく。
【0297】
スクリプトプログラミングによって、最初にどちらのセットが表示するかを指定することが可能である。本例では、



}となっており、言語設定が日本語の場合は、最初の表示命令Highligh(4)が実行され、英語の場合は、次の表示命令Highligh(0)が実行され、夫々に対応するイメージが画面上に表示される。
【0298】
夫々のボタンには、異なるidを付与することで、個々の処理や表示を切り替えることが可能である。
【0299】
また、マルチ言語対応だけでなく、他の条件、例えば再生してきたストーリなどのヒストリーを一般変数(GV)に記録しておき、ヒストリーによって表示するボタンを切り替えるなど設定することが可能である。
【0300】
(外部アプリケーションとの連携)
図42、43を用いて外部アプリケーションとの連携について説明をする。
【0301】
図42は、図48と同じく、外部アプリケーションとの連携を示した図である。ブラウザを通して、DVDのビデオ再生画面とテキストやイメージデータを合成して新たなアプリケーションを実現している例である。図に示す通り、ブラウザ上にはチャプターを選択する幾つかのボタンが表示されている。従来のSD−DVDの場合であれば、ボタンに対応するナビゲーションデータが全てストリーム中に埋められていたのに対して、本発明では、ナビゲーションデータは全て、非ストリーム領域に記述されているため、必要な情報を容易に得る事が可能である。図42に示すように、複数のメニュー情報からチャプターメニューを生成するのに必要な情報を取り出し、ブラウザ画面上に一度に表示をすることができる。
【0302】
夫々のボタンに対応する処理は、メニュー情報に記述されているイベントコールを起こし、プレーヤのスクリプトプロセッサに送ることでプレーヤ側で処理することが可能である。
【0303】
図43がHD−DVDプレーヤと外部アプリケーションとの関係を示すブロック図である。HD−DVDプレーヤ自身の構成は、図2で説明した通りである。
【0304】
XMLパーサ(201)は、解析したメニュー情報(<menu_list>)を内部のインターフェース部(4304)を通して外部アプリケーションのメニュー情報格納部(4301)に伝える。メニュー情報格納部(4301)はメニュー情報を保持し、必要に応じて外部アプリケーションのメニュー実行部(4302)に伝える。シナリオプロセッサ(204)は、現在の再生状況、例えば、再生中のプログラム、セル、時間情報などをインターフェース部(4305)を通して外部アプリケーションのメニュー実行部(4302)にリアルタイムで伝える。外部アプリケーションのメニュー実行部(4302)は、リアルタイムで受け取る再生情報と、メニュー情報を比較して、メニュー区間であれば、対応するボタンなどの表示をブラウザなど自身のアプリケーションとして実行する。
【0305】
ブラウザ上に表示されたボタンに対してユーザからのリクエスト(ボタンクリック)があった場合、外部アプリケーションのイベント生成部(4303)は、ボタンに対応するイベントコールを発生し、スクリプトプロセッサ(202)に送る。ボタンに対応するイベントハンドラは、XMLパーサ(201)からメニュー情報として受け取ってあるため、外部アプリケーションは適切なイベントコールを発生することが可能である。
【0306】
メニュー実行部(4302)は、ハイライト制御信号をスクリプトプロセッサ(202)のインターフェース部(4306)に対してハイライト制御信号を送ることができる。ハイライト制御信号は、スクリプトプロセッサ(202)が、スクリプトプログラミング中のHighlight();関数によるイメージ映像表示を無効化するための信号である。スクリプトプロセッサ(202)はハイライト制御信号を受けた後、Highlight();を受けてもイメージ映像表示は行わない。この結果、図42に示したアプリケーション側でのみチャプター選択のボタンが表示され、DVD再生ウィンドウ上のボタン表示を無効化することが可能である。
【0307】
また、メニュー情報に外部アプリケーションへのアクセス制御情報を持たせることで、外部アプリケーションに対して、メニュー毎、またはボタン毎のアクセス制御を行うことが可能になる。例えば、ボーナス画面へ分岐(GoUp)するような隠しボタンをHD−DVD本編でのみ可能にするなどである。逆にDVD本編では実行されないが、外部アプリからのみ実行可能な制御も同様にして可能である。
【0308】
外部アプリケーションからの制御は、イベント生成部(4303)で生成されたイベントが、スクリプトプロセッサ(202)のインターフェース部(4306)を通して実行される。イベントの処理は、UOPマネージャ(203)からスクリプトプロセッサ(202)に対して送られるイベントと同じである。この時、スクリプトプロセッサ(202)でイベントの出所に対する排他制御処理がされる。
【0309】
図44は、メニュー情報の例である。<menu>、<button>の属性として夫々にアクセス条件「condition」を設ける。XMLパーサ(201)内のインターフェース部(4304)は、アクセス条件に応じて、メニュー情報および内部のボタン情報を外部アプリケーションに対して提供するのか否かを判断して、メニュー情報および内部のボタン情報を外部アプリケーションのメニュー情報格納部(4301)に供給する。
【0310】
アクセス条件「condition」の値は、DVDおよび全ての外部アプリケーションからのアクセス可能「all」、DVDのみでアクセス可能「DVDonly」、外部アプリケーションのみでアクセス可能「External application only」に分けられられる。
【0311】
更に、外部アプリケーションを幾つかのレベルに分類して、夫々のレベルに対してのアクセス条件をメニュー情報またはボタン情報で持つことで、外部アプリケーション間でもアクセスの可/不可を分けることが可能になる。
【0312】
上述したように、本発明のデータ構造およびプレーヤ構成では、外部アプリケーションとHD−DVDプレーヤアプリケーションを混ぜ合わせた新しいアプリケーションを容易に実現することが可能である。
【0313】
なお、リモートコントローラ上に5つの専用キー「赤」「青」「緑」「黄」「橙」があると説明をしたが、必ずしも5つである必要は無く、また、必ずしも色が塗られている必要は無い。本実施例の中では、説明上便宜的に5つのキーに色をつけただけである。
【0314】
また、映像データおよびナビゲーションデータを記録するディレクトリ、ファイルを固定位置、固定名称としたが必ずしも実施例で説明した場所、名称である必要は無い。
【0315】
また、第2のインターフェース部は、スクリプトプロセッサからのハイライト制御信号を無効化するとしたが、第2のインターフェース部は、プレゼンテーションコントローラに対して、映像データのデコードおよび表示実行を停止するように働きかける構成にして、一切の映像表示を行わなくすることもできる。
【0316】
また、システム変数(SV)の一つ、例えばSV22、を外部アプリケーションとの連携表示用にすることで、再生がHD−DVD単体として行われているのか、HTMLのような外部のアプリケーションと同期して行われているのかをスクリプトプログラムで判断することができるようになる。このようにして、スクリプトプログラムによってメニューの表示自身を、切り替える、即ち、2つのプログラムをHD−DVD単体再生用と外部アプリケーションとの連携再生用とを夫々用意しておき、メニュー画面を状況に応じて切り替えることも可能である。
【0317】
また、外部アプリケーションには、メニュー情報格納部(4301)、メニュー実行部(4302)、イベント生成部(4303)があると説明をしたが、必ずしもこの限りではなく、必要な機能ブロックとして説明をしただけである。同一の機能を有するモジュール、例えばメニュー実行部(4302)とイベント生成部(4303)が同一モジュールであったりしても一向に構わない。
【0318】
また、ナビゲーションデータ(再生制御情報)をXMLでテキスト記述すると説明をしたが、データ構造の記述方式は本質的な問題ではなく、バイナリデータであっても構わない。また、この場合、XMLパーサ(4304)はバイナリパーサとしてナビゲーションデータの読み出しと解析、必要モジュールへのデータの供給を行う。また、XMLパーサまたは、バイナリパーサは、必ずしも一つのブロックとして存在しなくても良く、同等の機能を個々のモジュール、例えばシナリオプロセッサやスクリプトプロセッサ毎に持つ構成であっても構わない。
【0319】
また、図43で、スクリプトプロセッサ(202)のインターフェース部(4306)は、メニュー実行部(4302)からのハイライト制御と、イベント生成部(4303)からのイベントを夫々受けるとしたが、ハイライト制御とイベントと夫々事にインターフェースを分けて持っても構わない。
【0320】
【発明の効果】
以上の説明から明らかなように、本発明ではパッケージメディア中にビデオオブジェクトと別個に管理情報が格納されるので、インタクラクティブシナリオを読み出すためにシーク処理が発生せず、多様なインタラクティブシナリオの実現が可能となる。また、ビデオオブジェクト中に含まれる映像データや音声データのデータ量が制約されない。
【図面の簡単な説明】
【図1】HD−DVDの構成図。
【図2】プレーヤの構成図。
【図3】プログラム、セルの構造を示す図。
【図4】状態遷移モデル図。
【図5】タイトル、チャプター構造を示す図。
【図6】メニューの構造を示す図。
【図7】(A)はプリプロセスの例を示す図、(B)はポストプロセスの例を説明する図。
【図8】プリプロセス、ポストプロセスとイベントハンドラの関係を説明する図。
【図9】状態遷移とプリプロセス、ポストプロセスの有効性を説明する図。
【図10】ボタンの例を説明する図。
【図11】イメージとストリームの関係を説明する図。
【図12】イメージとスクリプトの関係を説明する図。
【図13】メニュー実装の例を説明する図。
【図14】パレンタルロックの構造を説明する図。
【図15】タイムマップの構造を説明する図。
【図16】タイムマップを通したセルからストリームへのアクセスを説明する図。
【図17】シームレスブランチのアプリケーション例を説明する図。
【図18】インターリーブブロックの構造を説明する図。
【図19】トラックバッファを使ったジャンプモデルを説明する図。
【図20】システム変数の説明図。
【図21】UOPグループの説明図。
【図22】HD−DVDディスク上のディレクトリ、ファイル構造を説明する図。
【図23】データ構造の概要を説明する図。
【図24】ボリューム情報の例を説明する図。
【図25】プログラム情報の例を説明する図。
【図26】セル情報の例を説明する図。
【図27】セル情報の例を説明する図。
【図28】メニュー情報の例を説明する図。
【図29】イベントハンドラ情報の例を説明する図。
【図30】ストリーム情報の例を説明する図。
【図31】ストリーム情報の例を説明する図。
【図32】ディスク挿入後のフローチャート。
【図33】プログラム再生のフローチャート。
【図34】UOP処理のフローチャート。
【図35】(A)はプリプロセスのフローチャート、(B)はポストプロセスのフローチャート。
【図36】タイトルメニューの実装例を説明する図。
【図37】チャプターメニューの実装例を説明する図。
【図38】マルチ言語対応したタイトルメニューの実装例を説明する図。
【図39】マルチページ対応したチャプターメニューの実装例を説明する図。
【図40】オーディオ選択メニューの実装例を説明する図。
【図41】イメージを使ったマルチ言語対応メニューの実施例を説明する図。
【図42】HD−DVDと外部アプリケーションとの連携を説明する図。
【図43】HD−DVDプレーヤでの外部アプリケーションとの連携を説明する図。
【図44】アクセス制御を行うメニュー情報を説明する図。
【図45】SD−DVDの構造を説明する図。
【図46】SD−DVDでのメニュー実装を説明する図。
【図47】SD−DVDでのマルチページメニューの実装を説明する図。
【図48】SD−DVDと外部アプリケーションとの連携例を説明する図。
【図49】セルとビデオオブジェクトの関係を示す図。
【図50】セルとメニューの関係を示す図。
【符号の説明】
101 HD−DVDディスク
102 HD−DVDプレーヤ
103 ナビゲーションマネージャ
104 プレゼンテーションエンジン
105 イメージプレーン
106 ビデオプレーン
107 合成器
201 XMLパーサ
202 スクリプトプロセッサ
203 UOPマネージャ
204 シナリオプロセッサ
205 プレゼンテーションコントローラ
206 クロック
207 デマルチプレクサ
208 イメージプロセッサ
209 ビデオプロセッサ
210 サウンドプロセッサ
211 トラックバッファ
212 イメージメモリ
4301 メニュー情報格納部
4302 メニュー実行部
4303 イベント生成部
4304 XMLパーサ・インターフェース部
4305 シナリオプロセッサ・インターフェース部
4306 スクリプトプロセッサ・インターフェース部
S101 ディスク挿入ステップ
S102 データ読み出しステップ
S103 シナリオ解析ステップ
S104 自動再生判定ステップ
S105 UOP受け付け判定ステップ
S106 UOP処理ステップ
S107 プログラム再生ステップ
S201 プログラム再生開始ステップ
S202 プログラム情報解析ステップ
S203 セル情報解析ステップ
S204 プリプロセス処理ステップ
S205 ストリーム情報解析ステップ
S206 アドレス計算ステップ
S207 デコード開始ステップ
S208 再生終了ステップ
S209 UOP受付判定ステップ
S210 UOP処理ステップ
S211 メニュー開始判定ステップ
S212 プリプロセスステップ
S213 メニュー終了判定ステップ
S214 ポストプロセスステップ
S215 ポストプロセスステップ
S216 次セル再生判定ステップ
S217 再生終了ステップ
S301 UOP処理開始ステップ
S302 メニューコール判定ステップ
S303 上下左右実行キー判定ステップ
S304 メニュー区間判定ステップ
S305 イベントコール存在判定ステップ
S306 イベントコールステップ
S307 スクリプト処理ステップ
S308 UOP処理終了ステップ
S309 イベントコール存在判定ステップ
S310 イベントコールステップ
S401 プリプロセス開始ステップ
S402 イベントコール存在判定ステップ
S403 イベントコールステップ
S404 スクリプト処理ステップ
S405 プリプロセス終了ステップ
S501 ポストプロセス開始ステップ
S502 イベントコール存在判定ステップ
S503 イベントコールステップ
S504 スクリプト処理ステップ
S505 ポストプロセス終了ステップ

【特許請求の範囲】
【請求項1】
再生装置によって再生されるパッケージメディアであって、ビデオオブジェクトと、このビデオオブジェクトに関する管理情報とを格納し、前記管理情報は、再生リスト情報と、少なくともユーザオペレーションを含むイベントにより起動される複数のイベントハンドラとを含み、このイベントハンドラには識別子が割り当てられ、
前記再生リスト情報は、ビデオオブジェクトの再生区間を指定する情報と、この再生区間が再生されている間に有効となる前記イベントハンドラの識別子とを含むセル情報、および前記セル情報により指定された再生区間の再生順序を示す再生順序情報を有する、
パッケージメディア。
【請求項2】
前記セル情報は、前記ビデオオブジェクトの一部又は全てを指定することが可能である、請求項1に記載のパッケージメディア。
【請求項3】
前記セル情報が複数あり、
前記複数のセル情報のうち異なる二つが、同一の前記ビデオオブジェクトの一部又は全てを重複して指定することが可能である、請求項1に記載のパッケージメディア。
【請求項4】
前記管理情報は、前記パッケージメディアが前記再生装置によって再生されている間に有効となるイベントハンドラを含む、請求項1に記載のパッケージメディア。
【請求項5】
ビデオオブジェクトと、このビデオオブジェクトに関する管理情報とを格納したパッケージメディアを再生するための再生装置であって、
前記管理情報は、再生リスト情報と、少なくともユーザオペレーションを含むイベントにより起動されるイベントハンドラとを含み、このイベントハンドラには識別子が割り当てられ、
前記再生リスト情報は、ビデオオブジェクトの再生区間を指定する情報と、この再生区間が再生されている間に有効となる前記イベントハンドラの識別子とを含むセル情報、および前記セル情報により指定された再生区間の再生順序を示す再生順序情報を有し、
前記管理情報から再生リスト情報に含まれるセル情報と再生順序情報とを引き出すと共に、イベントを受けつけて対応する識別子が割り当てられたイベントハンドラを起動する管理情報処理部と、
前記管理情報処理部により引き出された前記セル情報と前記再生順序情報とに基づいて、前記ビデオオブジェクトを再生するビデオオブジェクト処理部と
を備える、再生装置。
【請求項6】
前記セル情報は、前記ビデオオブジェクトの一部又は全てを指定することが可能である、請求項5に記載の再生装置。
【請求項7】
前記セル情報が複数あり、
前記複数のセル情報のうち異なる二つが、同一の前記ビデオオブジェクトの一部又は全てを重複して指定することが可能である、請求項5に記載の再生装置。
【請求項8】
前記管理情報は、前記パッケージメディアを再生している間は有効となるイベントハンドラを含む、請求項5に記載の再生装置。
【請求項9】
ビデオオブジェクトと、このビデオオブジェクトに関する管理情報とを格納したパッケージメディアを再生するための再生方法であって、
前記管理情報は、再生リスト情報と、少なくともユーザオペレーションを含むイベントにより起動されるイベントハンドラとを含み、このイベントハンドラには識別子が割り当てられ、
前記再生リスト情報は、ビデオオブジェクトの再生区間を指定する情報と、この再生区間が再生されている間に有効となる前記イベントハンドラの識別子とを含む複数のセル情報、および前記セル情報により指定された再生区間の再生順序を示す再生順序情報を有し、
前記管理情報から再生リスト情報に含まれるセル情報と再生順序情報とを引き出し、
前記セル情報と前記再生順序情報とに基づいて、前記ビデオオブジェクトを再生し、
前記イベントが発生すると対応する識別子が割り当てられたイベントを起動する、
再生方法。
【請求項10】
前記セル情報は、前記ビデオオブジェクトの一部又は全てを指定することが可能である、請求項9に記載の再生方法。
【請求項11】
前記セル情報が複数あり、
前記複数のセル情報のうち異なる二つが、同一の前記ビデオオブジェクトの一部又は全てを重複して指定することが可能である、請求項9に記載の再生方法。
【請求項12】
前記管理情報は、前記パッケージメディアを再生している間は有効となるイベントハンドラを含む、請求項9に記載の再生方法。

【図1】
image rotate



【図2】
image rotate



【図3】
image rotate



【図4】
image rotate



【図5】
image rotate



【図6】
image rotate



【図7】
image rotate



【図8】
image rotate



【図9】
image rotate



【図10】
image rotate



【図11】
image rotate



【図12】
image rotate



【図13】
image rotate



【図14】
image rotate



【図15】
image rotate



【図16】
image rotate



【図17】
image rotate



【図18】
image rotate



【図19】
image rotate



【図20】
image rotate



【図21】
image rotate



【図22】
image rotate



【図23】
image rotate



【図24】
image rotate



【図25】
image rotate



【図26】
image rotate



【図27】
image rotate



【図28】
image rotate



【図29】
image rotate



【図30】
image rotate



【図31】
image rotate



【図32】
image rotate



【図33】
image rotate



【図34】
image rotate



【図35】
image rotate



【図36】
image rotate



【図37】
image rotate



【図38】
image rotate



【図39】
image rotate



【図40】
image rotate



【図41】
image rotate



【図42】
image rotate



【図43】
image rotate



【図44】
image rotate



【図45】
image rotate



【図46】
image rotate



【図47】
image rotate



【図48】
image rotate



【図49】
image rotate



【図50】
image rotate


【公開番号】特開2004−7518(P2004−7518A)
【公開日】平成16年1月8日(2004.1.8)
【国際特許分類】
【出願番号】特願2003−88689(P2003−88689)
【出願日】平成15年3月27日(2003.3.27)
【出願人】(000005821)松下電器産業株式会社 (73,050)
【Fターム(参考)】