(57)【要約】【課題】様々なタイプの再生装置での動作保証を実現することができる記録媒体及び再生装置を提供する。【解決手段】 BD-ROMには、デジタルストリーム、プレイリスト情報、プログラムが記録されており、プログラムには、オブジェクト指向であるJava言語で記述されたものと、そうでないものとがある。プレイリスト情報は、再生経路情報と、App.Flagとを含み、App.Flagは、再生経路による再生を、Javaプログラムに、行わせるか否かを示す【選択図】図５４
2006277932.tif 000002
【特許請求の範囲】
【請求項１】
複数のエレメンタリストリームが多重化されたデジタルストリーム、プレイリスト情報、プログラムが記録された記録媒体であって、
前記プログラムには、オブジェクト指向言語で記述されたものと、非オブジェクト指向の言語で記述されたものとがあり、
プレイリスト情報は、再生経路情報と、アプリケーション情報とを含み、プレイリスト情報は、前記オブジェクト指向言語のプログラムによる再生、又は、前記非オブジェクト指向言語のプログラムによる再生に供され、
前記再生経路情報は、デジタルストリーム上の再生経路を定義する情報であり、
前記アプリケーション情報は、
オブジェクト指向言語で記述されたプログラムによる、前記プレイリストの再生を、再生装置に実行させるか否かを示す
ことを特徴とする記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Blu-Ray Disc Read Only Memory(以下BD-ROMと略す)等の動画データ用の記録媒体に関し、記録媒体により映画作品等を頒布する技術に関する。
【背景技術】
【０００２】
記録媒体による映画作品の頒布は、映画制作者、供給者にとって大きな収入源である。映画作品の動画データは、著名な俳優を出演させ、多大な制作費をかけて作成されているので多大な財産価値をもつ。映画作品の頒布にあたっては、記録媒体や再生装置の機能を利用して、動画データの付加価値を高めることが、商品戦略上極めて有意義とされている。DVDにおける付加価値の高め方としては、動画データを記録したDVDに、その動画データを利用したクイズやゲームを記録しておき、ユーザに遊んでもらおうというものがある。同じ動画データを使っていたとしても、映画として動画データを見るのと、ゲームの一場面として見るのとではユーザが受ける印象はガラリと変わる。僅かな労力で、ユーザに新鮮な印象を与えつづけることができるので、かかる高付加価値化は、映画制作者にとって強力な武器となる。
【０００３】
DVDにおける付加価値の高め方には、以下の特許文献1に記載された先行技術がある。
【特許文献１】特許第2813245号
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、映画再生用の実行モード(MOVIEモード)で記録媒体に記録されたストリームを再生する場合も、高付加価値化のための実行モード(Java（登録商標）モード)で記録媒体に記録されたストリームを再生する場合も、当該ストリームの再生は、プレイリスト情報を介してなされる。そしてBD-ROMのアプリケーションフォーマットでは、このプレイリスト情報に、フィルタ情報を具備させている。フィルタ情報とは、AVストリームに多重化されている複数ストリームのうち、どれを有効とし、どれを無効とするかを定める情報である。
【０００５】
ここで、MOVIEモードで利用されるプレイリスト情報は、Navigation Button情報の再生を有効とするよう、フィルタ情報が設定されている。Navigation Button情報とは、映画の本編映像の再生中に、その本編映像と合成して表示されるべきメニューを規定する情報であり、AVストリームに多重化されている。
このようなフィルタ情報を有するプレイリスト情報が記録媒体に存在していて、これをJava（登録商標）モード用のプログラムが利用した場合を考える。この場合、Navigation Button情報により、本編映像には上述したようなメニューが合成されるが、Java（登録商標）モードでは、Java（登録商標）プログラムが動作しているので、Java（登録商標）プログラム自体が、対話操作のためのコンピュ−タ・グラフィックスを描画しようとする。そうすると、再生時には、Navigation Button情報による対話画面、Java（登録商標）プログラムによる対話画面の双方が表示されることになり、ユーザは、どちらの対話画面に対して操作を行えばよいのか、困惑することになる。
【０００６】
このように、ある特定のストリームの再生を有効としているようなフィルタ情報が、プレイリスト情報に存在する場合、これをJava（登録商標）プログラムが利用しようとすると、ユーザが困惑してしまうような再生映像が表示されることになる。
ここで、MOVIEモードと、Java（登録商標）モードとで同じプレイリスト情報を使用するという用途、つまり、プレイリスト情報のシェアリングを禁止すれば、かかる問題は生じない。しかし、ある特定のストリームの再生が有効になっているだけで、一律に、プレイリスト情報のシェアリングを禁止するというのは、たとえ、同じような再生経路を定義しようとする場合でもMOVIEモード用のプレイリスト情報、Java（登録商標）モード用のプレイリスト情報を記録媒体に記録することになり、記録媒体の記録内容の重複部分が多くなる。これは、記録媒体の利用効率の観点からすれば、決して望ましいことではない。
【０００７】
本発明の目的は、フィルタリング情報が設けられたプレイリスト情報を、Java（登録商標）プログラムが利用しようとした場合に生じる、対話表示の競合を回避することができる記録媒体を提供することである。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明にかかる記録媒体は、複数のエレメンタリストリームが多重化されたデジタルストリーム、プレイリスト情報、プログラムが記録された記録媒体であって、前記プログラムには、オブジェクト指向言語で記述されたものと、非オブジェクト指向の言語で記述されたものとがあり、プレイリスト情報は、再生経路情報と、アプリケーション情報とを含み、プレイリスト情報は、前記オブジェクト指向言語のプログラムによる再生、又は、前記非オブジェクト指向言語のプログラムによる再生に供され、前記再生経路情報は、デジタルストリーム上の再生経路を定義する情報であり、前記アプリケーション情報は、オブジェクト指向言語で記述されたプログラムによる、前記プレイリストの再生を、再生装置に実行させるか否かを示すことを特徴としている。
【発明の効果】
【０００９】
本発明にかかる記録媒体は、上述したような構成を有しているので、Navigation Button情報の再生を有効とするよう、フィルタ情報が設定されたプレイリスト情報については、“Java（登録商標）プログラムによる再生不可”と設定することで、そのフィルタ情報を用いた、Java（登録商標）プログラムによる再生を禁ずることができる。またNavigation Button情報の再生を無効とするよう、フィルタ情報が設定されたプレイリスト情報については、“Java（登録商標）プログラムによる再生可”と設定することで、そのフィルタ情報を用いた、Java（登録商標）プログラムによる再生を認めることができる(図５５)。原則としては、フィルタ情報を含むプレイリスト情報のシェアリングは許可しつつ、特定のストリームの再生を有効としているようなプレイリスト情報、つまり、Navigation Button情報の再生を有効とするよう、フィルタ情報が設定されているようなプレイリスト情報は、Java（登録商標）プログラムによる利用を排除することができるので、Java（登録商標）プログラムによる対話画面の表示と、Navigation Button情報による対話画面の競合を回避しつつも、プレイリスト情報のシェアリングを実現することができる。
【発明を実施するための最良の形態】
【００１０】
(第１実施形態)
以降、本発明に係る記録媒体の実施形態について説明する。先ず始めに、本発明に係る記録媒体の実施行為のうち、使用行為についての形態を説明する。図１は、本発明に係る記録媒体の、使用行為についての形態を示す図である。図１において、本発明に係る記録媒体は、BD-ROM１００である。このBD-ROM１００は、再生装置２００、テレビ３００、リモコン４００により形成されるホームシアターシステムに、映画作品を供給するという用途に供される。
【００１１】
続いて本発明に係る記録媒体の実施行為のうち、生産行為についての形態について説明する。本発明に係る記録媒体は、BD-ROMの応用層に対する改良により実施することができる。図２は、BD-ROMの構成を示す図である。
本図の第４段目にBD-ROMを示し、第３段目にBD-ROM上のトラックを示す。本図のトラックは、BD-ROMの内周から外周にかけて螺旋状に形成されているトラックを、横方向に引き伸ばして描画している。このトラックは、リードイン領域と、ボリューム領域と、リードアウト領域とからなる。本図のボリューム領域は、物理層、ファイルシステム層、応用層というレイヤモデルをもつ。図２に示すようなデータフォーマットを、BD-ROMの応用層上に形成することにより本発明に係る記録媒体は、工業的に生産される。
【００１２】
図３は、ディレクトリ構造を用いてBD-ROMの応用層フォーマット(アプリケーション)を表現した図である。本図に示すようにBD-ROMには、ROOTディレクトリの下にBD-ROMAVディレクトリがあり、その下にJCLASSディレクトリ、BROWSERディレクトリがある。
BD-ROMAVディレクトリの配下には、INFO.BD-ROM、XXX.M2TS、XXX.CLPI,YYY.PL、ZZZ.MOVIEといったファイルが存在する。JCLASSディレクトリの配下には、ZZZ.CLASSというファイルが、BROWSERディレクトリの配下には、ZZZ.HTMLというファイルが配置されている。
【００１３】
図４は、機能的な観点から、これらのファイルを分類した場合の分類図である。本図において、第１層、第２層、第３層、第４層からなる階層が本図における分類を象徴的に示す。本図においてXXX.M2TSは第２層に分類される。XXX.CLPI,YYY.PLは、第３層(静的シナリオ)に分類される。BD-ROMAVディレクトリ配下のZZZ.MOVIE、JCLASSディレクトリ配下のZZZ.CLASS、BROWSERディレクトリ配下のZZZ.HTMは、第４層に分類される。
【００１４】
本図の分類(第１層〜第４層)は、図５に示すようなレイヤモデルを対象とした分類である。以降、図５を参照しながら、BD-ROMが対象としている、制御ソフトウェアのレイアモデルについて説明する。
図５の第１層は、物理層であり、処理対象たるストリーム本体の供給制御である。この第１層に示すように、処理対象たるストリームは、BD-ROMだけではなく、HD、メモリカード、ネットワークといったあらゆる記録媒体、通信媒体を供給源としている。これらHD、メモリカード、ネットワークといった供給源に対する制御(ディスクアクセス、カードアクセス、ネットワーク通信)が第１層の制御である。
【００１５】
第２層は、復号化方式のレイアである。第１層で供給されたストリームを、どのような復号化方式を用いて復号するのかを規定しているのがこの第２層である。本実施形態で採用する復号化方式は、MPEG2の復号化方式である。
第３層(静的シナリオ)は、ストリームの静的なシナリオを規定するレイアである。静的なシナリオとは、ディスク制作者によって予め規定された再生経路情報、ストリーム管理情報であり、これらに基づく再生制御を規定しているのがこの第３層(静的シナリオ)である。
【００１６】
第４層は、ストリームにおける動的なシナリオを実現するレイヤである。動的なシナリオとは、ユーザ操作や装置の状態によって再生進行を動的に変化させるためのシナリオであり、これらに基づく再生制御を規定しているのがこの第４層である。以降、このレイヤモデルに従い、ストリーム本体、静的なシナリオ、動的なシナリオにあたるファイルについて説明してゆく。
【００１７】
先ず第２層に属するストリーム(XXX.M2TS)について説明する。
AVストリーム(XXX.M2TS)は、MPEG-TS(Transport Stream)形式のデジタルストリームであり、ビデオストリーム、1つ以上のオーディオストリーム、1つ以上の副映像ストリーム、Navigation Button情報を多重化することで得られる。ビデオストリームは映画の動画部分を、オーディオストリームは映画の音声部分を、副映像ストリームは、映画の字幕を、Navigation Button情報は、メニューを対象とした動的な再生制御の手順をそれぞれ示している。図６は、AVストリームがどのように構成されているかを模式的に示す図である。
【００１８】
AVストリームは(第４段目)、複数のビデオフレーム(ピクチャpj1,2,3)からなるビデオストリーム、複数のオーディオフレームからなるオーディオストリームを(第１段目)、PESパケット列に変換し(第２段目)、更にTSパケットに変換し(第３段目)、同じくNavigation Button情報(第７段目)を、PESパケット列に変換し(第６段目)、更にTSパケットに変換して(第５段目)、これらを多重化することで構成される。この多重化は、オーディオフレームが、同じ時刻にBD-ROMから読み出されるべきビデオフレームの近くにくるように、ビデオフレームを格納したTSパケット、オーディオフレームを格納したTSパケットを並べるというものである。Navigation Button情報は、動的な再生制御に関するものなので、ここでの説明は省略する。また副映像ストリームは、本実施形態との関連が希薄なので、図６での図示は省略している。
【００１９】
かかる過程を経て生成されたAVストリームは、通常のコンピュータファイル同様、複数のエクステントに分割され、BD-ROM上の領域に記録される。図７はAVストリームがどのようにBD-ROMに記録されるかを模式的に示す図である。
AVストリームを構成する各エクステントが、どれだけの長さであり、BD-ROMにおいてどのアドレスに記録されているかは、ファイル管理情報fk1に記述される。
【００２０】
ファイル管理情報fk1には、AVストリームを分割することで得られる3つのエクステント1,2,3のそれぞれについて、エクステントのアドレス(adr1,2,3)、長さ(length1,2,3)が記述されていることがわかる。AVストリームは、1つ以上のACCESS UNITとからなり、このACCESS UNITの単位で頭出し可能である。ACCESS UNITとは、1つのGOP(Group Of Picture)と、このGOPと同時に読み出されるべきオーディオフレームとを含む最小デコード単位である。GOPは、過去方向および未来方向に再生されるべき画像との時間相関特性を用いて圧縮されているBidirectionally predictive Predictive(B)ピクチャ、過去方向に再生されるべき画像との時間相関特性を用いて圧縮されているPredictive(P)ピクチャ、時間相関特性を用いず、一フレーム分の画像内での空間周波数特性を利用して圧縮されているIntra(Ｉ)ピクチャを含む。
【００２１】
尚、XXX.M2TSのファイル名XXXは、BD-ROMにおいてAVストリームに付与される3桁の識別番号を抽象化している。つまり本図におけるAVストリームは、このXXXを用いて一意に識別される。以上がストリーム(XXX.M2TS)についての説明である(ここでの3桁という桁数は例示に過ぎず、何桁でもよい。)。
＜静的なシナリオ＞
続いて、静的なシナリオであるファイル(XXX.CLPI,YYY.PL)について説明する。
【００２２】
ストリーム管理情報(XXX.CLPI)は、個々のAVストリームについての管理情報である。図８は、ストリーム管理情報の内部構成を示す図である。AVストリームはビデオストリーム、オーディオストリームを多重化することで得られ、AVストリームはACCESS UNITと呼ばれる単位での頭出しが可能なので、各ビデオストリーム、オーディオストリームはどのような属性をもっているか、頭出し位置がAVストリーム内の何処に存在するかが、ストリーム管理情報の管理項目になる。図中の引き出し線はストリーム管理情報の構成をクローズアップしている。引き出し線hn1に示すように、ストリーム管理情報(XXX.CLPI)は、ビデオストリーム、オーディオストリームについての「属性情報」と、ACCESS UNITを頭出しするためのリファレンステーブルである「TMAP」とからなる。
【００２３】
属性情報(Attribute)は、破線の引き出し線hn2に示すようにビデオストリームについての属性情報(Video属性情報)、属性情報数(Number)、AVストリームに多重化される複数オーディオストリームのそれぞれについての属性情報(Audio属性情報#1〜#m)からなる。ビデオストリームについての管理情報は、破線の引き出し線hn3に示すようにそのビデオストリームがどのような圧縮方式で圧縮されたか(Coding)、ビデオストリームを構成する個々のピクチャデータの解像度がどれだけであるか(Resolution)、アスペクト比はどれだけであるか(Aspect)、フレームレートはどれだけであるか(Framerate)を示す。
【００２４】
一方、オーディオストリームについての属性情報(Audio属性情報#1〜#M)は、破線の引き出し線hn4に示すようにそのオーディオストリームがどのような圧縮方式で圧縮されたか(Coding)、そのオーディオストリームのチャネル番号が何であるか(Ch.)、何という言語に対応しているか(Lang)を示す。
タイムマップ(TMAP)は、複数の頭出し位置のアドレスを、時刻情報を用いて間接参照するためのリファレンステーブルであり、破線の引き出し線hn5に示すように複数のエントリー情報(ACCESS UNIT#1エントリー情報、ACCESS UNIT#2エントリー情報、ACCESS UNIT#3エントリー情報・・・・・)と、エントリー情報数(Number)とからなる。各エントリー情報は、引き出し線hn6に示すように、対応するACCESS UNITの再生時間(Duration)と、対応するACCESS UNITのデータサイズ(Size)とを対応づけてなる。可変長符号圧縮方式が採用されるため、GOPを含む各ACCESS UNITのサイズや再生時間がバラバラであっても、この『エントリー情報』を参照することにより、任意の再生時刻から、その再生時刻に対応するACCESS UNIT内のピクチャデータへと頭出しを行うことが可能になる。尚、XXX.CLPIのファイル名XXXは、ストリーム管理情報が対応しているAVストリームと同じ名称が使用される。つまり本図におけるAVストリームのファイル名はXXXであるから、AVストリーム(XXX.M2TS)に対応していることを意味する。以上がストリーム管理情報についての説明である。続いてプレイリスト情報について説明する。
【００２５】
YYY.PL(プレイリスト情報)は、再生経路情報であるプレイリストを構成するテーブルであり、CellListからなる。図９は、PL情報の内部構成を示す図である。
CellListは、複数のCell情報(Cell情報#1,#2,#3・・・#n)と、これらCell情報数(Number)とからなる。セル情報は、ポインタ情報であり、プレイリストを構成する1つ以上の論理的な再生区間を定義する。セル情報の構成は、引き出し線hs1によりクローズアップされている。この引き出し線に示すようにセル情報は、再生区間のIn点及びOut点が属するAVストリームの名称を示す『Stream Name』と、再生区間の始点を示す情報『IN点情報』と、再生区間の終点を示す情報『Out点情報』とから構成される。
【００２６】
セル情報の特徴は、その表記法にある。つまりタイムマップをリファレンステーブルとして用いた間接参照の形式で、再生区間が定義されている。図１０は、PL情報による間接参照を模式化した図である。本図においてAVストリームは、複数のACCESS UNITから構成されている。ストリーム管理情報内のTMAPは、これら複数ACCESS UNITのセクタアドレスを、矢印ay1,2,3,4に示すように指定している。図中の矢印jy1,2,3,4は、CELL情報によるACCESS UNITの参照を模式化して示している。つまり、CELL情報による参照(矢印jy1,2,3,4)は、TMAPを介することにより、AVストリーム内に含まれる複数ACCESS UNITのアドレスを指定するという間接参照であることがわかる。
【００２７】
Cell情報−ストリーム管理情報−AVストリームの組みからなるBD-ROM上の再生区間を『セル』という。PL情報−ストリーム管理情報−AVストリームの組みからなるBD-ROM上の論理的な再生単位を『プレイリスト(PLと略す)』という。BD-ROMに記録された映画作品は、この論理的な再生単位(PL)にて構成される。論理的な再生単位にて、BD-ROMにおける映画作品は構成されるので、本編たる映画作品とは別に、あるキャラクタが登場するようなシーンのみを指定するようなPLを定義すれば、そのキャラクタが登場するシーンのみからなる映画作品を簡単に制作することができる。図１１は、図１０に示したPL情報(PL情報#1)とは、別のPL(PL情報#2)を定義する場合の一例を示す図である。
【００２８】
様々なPL情報を定義するだけで、映画作品のバリエーションは増えるので、映画制作者の表現の幅を増やすことが、静的なシナリオの最大のメリットである。
また、BD-ROMにおける再生単位には、PL、CELLといったものの他、Chapterがある。Chapterは、1つ、2つ以上のCELLから構成される。
尚、PL情報のファイル名YYYは、BD-ROMにおいてPL情報に付与される3桁の識別番号を抽象化している。つまり本図におけるPL情報は、この識別番号YYYを用いて一意に識別される。PL情報の識別番号を”YYY”と表現しているのは、PL情報の識別番号が、AVストリーム及びAVストリーム管理情報の識別番号XXXとは別の番号体系であることを意味している(ここでの3桁という桁数は例示に過ぎず、何桁でもよい。)。
【００２９】
以上が、静的なシナリオについての説明である。続いて動的なシナリオについて説明する。
＜動的なシナリオ＞
動的なシナリオは、AVストリームの再生制御を示すプログラムである。動的なシナリオによる再生制御は、装置に対するユーザ操作に応じて変化するものであり、プログラム的な性質をもつ。ここでの動的な再生制御には、2つのモードがある。2つのモードのうち1つは、AV機器特有の再生環境で、BD-ROMに記録された動画データを再生するモード(ノーマルモード)であり、もう1つはBD-ROMに記録された動画データの付加価値を高めるモード(エンハンスドモード)である。図１２は、レイヤモデルの第４層における再生モードを示す図である。本図において第４層には、1つのノーマルモードと、2つのエンハンスドモードとが記述されている。1つのノーマルモードは、DVDライクな再生環境での再生モードでありMOVIEモードと呼ばれる。2つのエンハンスドモードのうち、1つ目は、Java（登録商標）仮想マシンを主体とした再生モードであり、Java（登録商標）モードと呼ばれる。2つ目のエンハンスドモードのうち、2つ目はブラウザを主体とした再生モードであり、Browserモードと呼ばれる。
【００３０】
第４層には、MOVIEモード、Java（登録商標）モード、Browserモードという3つのモードがあるので、動的な再生制御はどれかのモードで実行できるように記述されればよい。DVDプレーヤ向けのコマンドと良く似たコマンドで、制御手順を記述したい場合は、既存のDVD再生装置と良く似た再生制御を再生装置に実行させることができる。ページ記述言語で制御手順を記述した場合は、ネットワーク上のサイトをアクセスしたり、ファイルをダウンロードするような制御手順を記述することができる。図１３は、3つのモードの動的な再生制御にて作成される映画作品を示す図である。
【００３１】
図１３（ａ）は、MOVIEモードで動的な再生制御を定義することにより、作成される映画作品の一場面を示す図である。MOVIEモードはDVD再生装置が解釈可能なコマンドと良く似たコマンドで再生制御を記述することができるので、DVDと同じような再生制御、つまり、メニューに対する選択により再生が進行するような再生制御を定義することができる。
【００３２】
図１３（ｂ）は、Java（登録商標）モードで動的な再生制御を定義することにより、作成される映画作品である。Java（登録商標）モードはJava（登録商標）仮想マシンが解釈可能なJava（登録商標）言語で制御手順を記述することができる。この再生制御がコンピュ−タ・グラフィックス(CG)の動作を制御するものなら、Java（登録商標）モードにあっては、動画を表示した画面の横でCG(図中のフクロウの絵)が動きまわっているような再生制御を定義することができる。
【００３３】
図１３（ｃ）は、Browserモードで動的な再生制御を定義することにより、作成される映画作品である。Browserモードはブラウザが解釈可能なHTML言語で再生制御を記述することができる。この再生制御がWEBサイトのアクセスやウィンドゥの動作を制御するものなら、Browserモードにあっては、動画を表示した画面の横で、WEBサイトから得たオンラインデータ(図中のキャラクタAの掲示板やバナー広告)を表示するような再生制御を定義することができる。
【００３４】
以上が動的なシナリオの概略である。以降、各のモードの再生制御を規定するファイルについて、モード毎に説明してゆく。
＜MOVIEモードにおける動的なシナリオ＞
先ずMOVIEモードにおける動的シナリオについて説明する。MOVIEモードにおける動的シナリオには、トランスポートストリーム中のNavigation Button情報、MOVIEオブジェクトがある。
【００３５】
Navigation Button情報とは、AVストリーム内に多重化されたストリームの1つであり、メニューにおけるボタンの挙動を司り、確定されたボタンに応じた再生制御を行う。メニューの挙動には、リモコンの矢印キーの押下に応じてメニュー上のボタンの状態を変えるというもの(1)、メニュー上のボタン確定に応じて再生装置におけるレジスタの値を更新するというもの(2)、メニュー上のボタン確定に応じて分岐を実現するというもの(3)があり、これらの挙動を制御し、ボタンに応じたコマンドを再生装置に実行させることが、Navigation Button情報の役割である。図１４はNavigation Button情報の構成を示す図である。Navigation Button情報は、ボタン制御情報(Button Control情報)と、イメージデータ(Image Data)とからなる。イメージデータは、破線の引き出し線hh1に示すように複数のPNGデータ(PNGs)と、これらPNGデータが共通に参照するLooK Up Table(COMMON LUT)とからなる。イメージデータにおける個々のPNGデータ(PNGデータ#1,#2,#3)は、メニューにおける個々のボタン(Button#1,#2,#3)を描いたイメージデータである。
【００３６】
ボタン制御情報は、破線の引き出し線hh2に示すようにPage Affiliation情報とButton Affiliated情報とからなる。Page Affiliation情報は、破線の引き出し線hh3に示すようにメニューにおけるボタン表示開始時刻を示す『Button Display Begin Time』、表示終了時刻を示す『Button Display End Time』、初期状態において選択状態にすべきボタンを示す『Initially Selected Buttun』とからなる。
【００３７】
Button Affiliated情報は、破線の引き出し線hh4に示すように複数のButton Affiliation#1,#2・・・・からなる。各Button Affiliationは、破線の引き出し線hh5に示すように複数のPNGデータのうち、ボタンのイメージがどれであるかを示す『Button Image情報』、ボタンイメージの配置位置を示す『Button display Location』、各ボタンの上下左右にどのボタンが存在するかを示す『Relationship with Upper/Lower/Side Buttons』、各ボタンの確定時に実行すべき『Button Command』からなる。
【００３８】
メニューにおける各ボタンのButton Affiliated情報には、ボタンの上下左右にどのボタンが存在するかが記されているので、ユーザによりリモコンの矢印キーが押下されれば、Button Affiliated情報におけるUpper/Lower/Side Buttonsを参照して、その矢印キーの方向に沿った位置にあるボタンを知得し、そのボタンの状態を変化させることができる。これにより、矢印キーの押下に応じて、そのキーの方向のボタンの状態が変化することになる。そしてユーザにより確定操作がなされた場合、そのボタンのButton Affiliated情報におけるButton Commandを実行することにより、ボタンの押下に応じた動的な再生制御を実行することができる。
【００３９】
Navigation Button情報はAVストリームに組み込まれているので、ある動画の一コマが画面に現れたタイミングに、特定の処理を再生装置に実行させるという再生制御、つまり、動画内容と緻密に同期した再生制御の記述に便利である。またNavigation Button情報は、AVストリーム自身に多重化されているので、再生制御を行いたい区間が数百個であっても、それらに対応するNavigation Button情報の全てをメモリに格納しておく必要はない。Navigation Button情報はACCESS UNIT毎にビデオパケットと共にBD-ROMから読み出されるので、現在再生すべき動画区間に対応するNavigation Button情報をメモリに常駐させ、この動画区間の再生が終われば、そのNavigation Button情報をメモリから削除して、次の動画区間に対応するNavigation Button情報をメモリに格納すればよい。Navigation Button情報は、AVストリームに多重化されるので、たとえNavigation Button情報の数が数百個になってもメモリの搭載量を必要最低限にすることができる。
【００４０】
Navigation Button情報におけるコマンドの記述例を図１５を参照しながら説明する。図１５は、AVストリームに多重化されているNavigation Button情報でボタンの制御を行う場合の一例を示す図である。
図１５におけるAVストリームは、映画であり、図中の複数ボタンはこの映画の一コマに合成されて表示される。図中のボタンA,B,Cは映画作品に登場する各キャラクタに対応するものであり、この映画に登場するキャラクタA,B,Cの何れかを選ぶという選択操作により選択状態、確定状態と状態を変える。
【００４１】
本図においてNavigation Button情報は、ビデオストリームにおいて対話操作が必要な期間より前に配置される。図中のAVストリームに多重化されているNavigation Button情報は、メニューにおける各ボタンの確定時に、それぞれ異なる値をGPRM(0)に設定する。GPRM(0)とは、レイアモデルの第３層(静的シナリオ)(静的なシナリオ)で管理されるレジスタ設定値である。具体的にいうと、キャラクタAのボタンの確定時には、GPRM(0)が1に設定され、キャラクタBのボタンの確定時には、GPRM(0)が2に設定される。キャラクタCのボタンの確定時には、GPRM(0)が3に設定される。このようにNavigation Button情報を描画すれば、メニューの描画時にどのボタンが選択されたかという情報をGPRM(0)に残しておくことができる。以上がNavigation Button情報についての説明である。
【００４２】
MOVIEオブジェクト(XXX.MOVIE)とは、DVD再生装置が解釈可能なコマンドに類似したコマンドにて記述された、動的なシナリオである。PLの再生を命じる再生コマンド、その再生に先立ち実行すべきコマンド(PREコマンド)、その再生後に実行すべきコマンド(POSTコマンド)からなる。1つ以上のMOVIEオブジェクトと、各MOVIEオブジェクトにて再生が命じられるPLとの組みをTitleという。Titleは、BD-ROMにおける映画作品全体に相当する単位である。またMOVIEオブジェクトは、M-OBJと略記する場合がある。
【００４３】
図１６は、AVストリーム中のNavigation Button情報が図１５のように設定されている場合のMOVIEオブジェクトの一例を示す。本図のMOVIEオブジェクトは、GPRM(0)に0を設定するPREコマンド、PLの再生を再生装置に命じるコマンド(PlayPl(PL#1))、他の動的シナリオへの分岐を再生装置に命じるPOSTコマンド(IF(GPRM(0)=0){Jump Title#m}else{Jump Title#m+1})からなる。このPREコマンドにより、PLの再生に先立ち、GPRM(0)が初期化されることになる。またPOSTコマンドによりGPRM(0)が初期化時の0を示すなら、MOVIEオブジェクト#m+1に分岐することになる。一方、メニュー表示時にボタン選択がなされ、GPRM(0)が0以外の値に設定されたなら、他のタイトル(Title#m)に分岐することになる。
【００４４】
ユーザ操作に応じてレジスタの設定値を変えるコマンドをNavigation Button情報に組み込んでおき、再生装置におけるレジスタ設定値を用いた条件付き分岐をPOSTコマンドとして記述しておけば、ユーザ操作に応じて再生進行が変わるような映画作品(マルチストーリー型の映画)を、容易に作成することができる。
MOVIEモードにおけるシナリオには、Navigation Button情報、MOVIEオブジェクトの2種があるので、メニューにおけるボタンの挙動と緻密に同期させたい処理はNavigation Button情報に記述し、PL再生の前処理、後処理というような統合的な処理については、MOVIEオブジェクトに記述することができる。ボタンと同期させるべき処理か、統合的な処理かによって、コマンドの記述を変えることができるので、再生制御の表現の幅が広がる。またボタンと同期するような再生制御の数を増やしても、古いNavigation Button情報を新たなNavigation Button情報で上書きしてゆくことで、かかる再生制御の記述には再生装置のメモリの大規模化を招かない。
【００４５】
＜Java（登録商標）モードにおける動的なシナリオ＞
続いてJava（登録商標）モードで用いられる動的シナリオについて説明する。
ZZZ.CLASSは、Java（登録商標）モードにおける動的な再生制御を規定するアプリケーションプログラム(Java（登録商標）オブジェクト)を定義したクラスファイルである。Java（登録商標）モードでは、Java（登録商標）仮想マシンがシナリオの実行主体となるので、Java（登録商標）オブジェクトはJava（登録商標）言語で記述される。Java（登録商標）言語（登録商標）はSUN  Microsystems社が開発したミドルウェア向けの記述言語であり、近年では日本の携帯電話や欧州のディジタル放送DVB-MHPなど民生機器で広く使われつつある。Java（登録商標）言語はC++などと同じオブジェクト指向のプログラミング言語である。C++との違いは、C++はオペレーティングシステム上で実装されているのに対して、Java（登録商標）は仮想マシーン(Java（登録商標） Virtual Machine)を定義し、Windows（登録商標）やLinuxなどの主要オペレーティングシステム上で実装されている。そのためJava（登録商標）言語を用いれば、オペレーティングシステムに依存することのない処理手順を記述することができる。Java（登録商標）言語が携帯電話やSTBに採用されているのは、実行環境がメーカ毎に異なっていても、実行環境に依存しない処理手順を記述することができるからである。Java（登録商標）オブジェクトは、J-OBJと略記する場合がある。
【００４６】
図１７は、図１６のMOVIEオブジェクトのコマンドにより分岐がなされた場合のJava（登録商標）オブジェクトの記述例である。このJava（登録商標）オブジェクトは、CGを描画し(1)、PL中のCELLを再生するという処理(2)を、GPRM(0)の値に応じて行うものである。こうした処理により、図１３（ｂ）に示すような合成画像、つまり、PLを構成する動画データを再生させながら、その脇で、キャラクタのCGを動作させるという合成画像を作成することができる。またこの記述例のif文は、GPRM(0)に応じて、描画すべきキャラクタや、再生すべきCELLを変化させている。
【００４７】
描画すべきCGに着目して説明を行う。図１７の一例において、『A.DrawCharacter();』とは、キャラクタAというClassの1つのmethod(※図中のDrawCharacter関数のことである)を用いて、キャラクタAのObjectを画面上に描画させることを意味する。『B.DrawCharacter();』,『C.DrawCharacter();』も同じ意味であり、キャラクタB,CというClassの1つのmethod(※図中のDrawCharacter関数のことである)を用いて、キャラクタB,CのObjectを画面上に描画させることを意味する。
【００４８】
『A.DrawCharacter();』、『B.DrawCharacter();』、『C.DrawCharacter();』は、GPRM(0)の値によって排他的に実行されるので(図中のif文)、GPRM(0)が1ならキャラクタAのCGが、GPRM(0)が2ならキャラクタBのCGが、GPRM(0)が3ならキャラクタCのCGが、それぞれ描画される。図１８は、MOVIEオブジェクトとJava（登録商標）オブジェクトとの関連を示す図である。図１８の左半分は、図１６に示したMOVIEオブジェクトの記述例と同一である。本図においてGPRM(0)は、AVストリームに組み込まれたNavigation Button情報により設定される。GPRM(0)は、レイアモデルにおいて第３層(静的シナリオ)(静的シナリオ)にて管理されるパラメータである。このGPRM(0)は、MOVIEモード、Java（登録商標）モード、Browserモードの何れかからでも参照されるので、Java（登録商標）オブジェクトにおける処理を、MOVIEモードにおいて設定されたGPRM(0)に応じて切り換えることができる。MOVIEモードにおけるNavigation Button情報により、GPRM(0)の値を変化させ、Java（登録商標）モードにおいて、描画すべきCGを切り換えることができる。GPRM(0)によるMOVIEオブジェクトとJava（登録商標）オブジェクトとの連携により、動画データの再生と、Java（登録商標）仮想マシンによる処理とを融合させた新しいスタイルの映画作品を創作することができる。
【００４９】
GPRM(0)の値に応じたJava（登録商標）オブジェクトの処理が、キャラクタA,B,Cのどれかを主役にしたゲームであるなら、MOVIEモードにおいて動画でキャラクタの紹介を行い、ユーザによるキャラクタ選択を受け付けて、Java（登録商標）モードにおいてユーザが選択したキャラクタを主役にしたゲームを実行するという手順(このような手順は現在のゲームソフトに多くみられる)を、映画の動画データを用いて簡単に記述することができる。図１９は、MOVIEオブジェクトにおけるキャラクタ紹介と、Java（登録商標）モードにおけるゲームとから構成されるタイトルを模式的に示す図である。GPRM(0)を介したMOVIEモードとJava（登録商標）モードとの連携により、キャラクタの紹介から、そのキャラクタを主役にしたゲーム実行までの一連の手順を、MOVIEモードにおける映画を用いて簡単に記述することができる。
【００５０】
一方、再生すべきCELLについて着眼すると、GPRM(0)が1ならPL#1のCELL#1が、GPRM(0)が2ならPL#2のCELL#1が、GPRM(0)が3なら<U>PL#2のCELL#3が</U>、それぞれ描画される。
ここで、PL#1のCELL#2は、AVストリームのうち、キャラクタAが登場している区間のみを指定している再生単位であるものとする。このCELLを、キャラクタAのCGと共に再生させることで、キャラクタAのCGが動きまわり、その横で動画像たるキャラクタAが表示されるような合成画面(図１３（ｂ）)を表示させることができる。図２０は、Java（登録商標）オブジェクトからのPL再生を模式的に示した図である。本図におけるJava（登録商標）オブジェクトは、PL#1のCELL#2の再生を命じる関数呼出を含む。この関数呼出により、PLを構成する1つのCELLが再生されることになる。本図におけるPL#1は、MOVIEモードにおいて再生が命じられているものであれば、このPL#1のうち、CELL#2の部分区間のみが、Java（登録商標）オブジェクトにおいて引用されることになる。このようなJava（登録商標）オブジェクトからの関数呼出により、MOVIEモードにおいて再生されるべき映像作品(PL#1)のうち、特定のシーン(CELL#2)のみをJava（登録商標）オブジェクトにおけるゲームで用いるという”シーンの引用”が容易に行われる。図２０の一例は、MOVIEモードで使用されたPLをJava（登録商標）モードで利用するという、PLのシェアリングを前提としたシーン引用である。PLをシェアリングするのではなく、MOVIEモードで使用されたいたPLとは別のPLを用いて、シーン引用することも可能である。図２１は、MOVIEモードで使用されたいたPLとは別のPLを用いることによる、シーン引用を示す図である。
【００５１】
これら図２０、図２１の引用により、映画の中のシーンをJava（登録商標）モードにおけるゲームの中で回想するという回想シーンを容易に作成することができる。かかる引用により、映画作品制作にあたっての表現の幅が広がり、BD-ROMの商品価値を高めることができる。尚、図２１、図２２の一例は、CELLの単位で引用を行ったが、Java（登録商標）オブジェクトから再生を命じる範囲を、時間で指定してもよい。同様にBrowserモードから引用を行ってもよい。映画作品との連携を図ったゲームソフトや、映画作品の一シーンを引用したゲームソフトをJava（登録商標）言語にてプログラミングさせるので、BD-ROMの制作事業に、多くのソフトハウスを参入させることができる。
＜Browserモードにおける動的なシナリオ＞
WebPageオブジェクト(ZZZ.HTM)とは、HTML,XML,BML等のページ記述言語を用いて記述されたシナリオである。WebPageオブジェクトは、WP-OBJと略記する場合がある。HTMLでの記述が可能なので、BrowserモードはWEBサイトへのアクセスを交えた制御手順を記述することができる。図２２は、WebPageオブジェクトの記述例である。この記述例は、図１８をベースにしている。本図のWebPageオブジェクトが異なるのは、GPRM(0)の値に応じて異なるWEBサイトにアクセスしている点である(注※、Java（登録商標）スクリプトによる記述例を教示ください。)。つまり、GPRM(0)が1である場合、キャラクタAに関連するWEBサイトを、GPRM(0)が2である場合、キャラクタBに関連するWEBサイトを、GPRM(0)が3である場合、キャラクタCに関連するWEBサイトを、それぞれアクセスしている。本図においてGPRM(0)は、AVストリームに組み込まれたNavigation Button情報により設定される。またGPRM(0)は、レイアモデルにおいて第３層(静的シナリオ)に存在しており、MOVIEモード、Java（登録商標）モード、Browserモードの何れかからでも参照されるので、WebPageオブジェクトにおける処理を、MOVIEモードにおいて設定されたGPRM(0)に応じて切り換えることができる。WEBサイトからのオンラインデータが、毎日、毎週といった間隔で更新されるニュースやBBS、バナー広告である場合、これらのオンラインデータの表示を交えることで、動画データに対する印象を常に新鮮なものに保つことができる。またWebPageオブジェクトでは、WEBサーバにアクセスする手順の記述が可能なので、最新バージョンのPLやVOBをWEBサーバから取得し、これらを交えた再生制御を再生装置に行わさせることができる。GPRM(0)による、MOVIEオブジェクトとWebPageオブジェクトとの連携により、動画データの再生と、ブラウザによる処理とを融合させた新しいタイプの映像作品を創作することができる。
【００５２】
尚、ファイル名ZZZ.MOVIE、ZZZ.CLASS、ZZZ.HTMにおけるファイルボディ「ZZZ」は、BD-ROMにおいて動的シナリオに付与される3桁の識別番号を抽象化している。つまり本図におけるシナリオは、この識別番号ZZZを用いて一意に識別される。シナリオの識別番号を”ZZZ”と表現しているのは、シナリオの識別番号が、AVストリームの識別番号XXX、PL情報の識別番号YYYとは別の番号体系であることを意味している(ここでの3桁という桁数は例示に過ぎず、何桁でもよい。)。
【００５３】
＜シナリオの記述手法＞
MOVIEオブジェクト、Java（登録商標）オブジェクト、WebPageオブジェクトの制御手順を記述するための記述手法について説明する。これらのシナリオが対象としているレイアモデルにおいて、MOVIEオブジェクトを実行するDVD仮想プレーヤ、Java（登録商標）オブジェクトを実行するJava（登録商標）仮想マシン、WebPageオブジェクトを実行するブラウザは、何れも第３層(静的シナリオ)上に存在している。Java（登録商標）オブジェクトやWebPageオブジェクトは、CGの描画やWEBサイトのアクセス等、Java（登録商標）モードやブラウザに行わせるべき本来の処理を、Java（登録商標）言語やHTMLで記述し、これ以外の処理、つまりBD-ROMの再生制御は、第３層(静的シナリオ)から供給されるプログラミング関数を用いて記述すればよい。
【００５４】
以降、第３層(静的シナリオ)から供給される関数について説明する。
(a)再生関数：第１引数で指定するプレイリストの再生を、第２引数で指定する位置から再生を開始させる；
書式:PlayPL(第１引数，第２引数)
第１引数は、プレイリストの番号で、再生すべきPLを指定することができる。第２引数は、そのPLに含まれるCELLや、そのPLにおける任意の時刻、Chapter、Markを用いて再生開始位置を指定することができる。
【００５５】
CELLにより再生開始位置を指定したPlayPL関数をPlayPLatCELL()、
Chapterにより再生開始位置を指定したPlayPL関数をPlayPLatChapter()、
Markにより再生開始位置を指定したPlayPL関数をPlayPLatMark()、
時刻情報により再生開始位置を指定したPlayPL関数をPlayPLatSpecified Time()という。
(b)再生装置の状態取得や状態設定のための関数
再生装置の状態は、32個のPlayer Status Register(これの設定値は、System Parameter(SPRM)と呼ばれる)と、32個のGeneral Purpose Register（これの設定値は、General Parameter(GPRM)と呼ばれる)とに示されている。
【００５６】
MOVIEオブジェクト、Java（登録商標）オブジェクト、WebPageオブジェクトは、以下の(i)〜(iv)の関数を使用することにより、これらのレジスタに値を設定したり、これらのレジスタから値を取得したりすることができる。
(i)Get value of Player Status Register関数
書式：Get value of Player Status Register(引数)
この関数は、引数で指定されたPlayer Status Registeの設定値を取得する関数である。
(ii)Set value of Player Status Register関数
書式：Set value of Player Status Register(第１引数、第２引数)
この関数は、第１引数で指定されたPlayer Status Registerに、第２引数で指定された値を設定させる関数である。
【００５７】
(iii)Get value of General Purpose Register関数
書式：Get value of General Purpose Register(引数)
この関数は、引数で指定されたGeneral Purpose Registeの設定値を取得する関数である。
(iv)Set value of General Purpose Register関数
書式：Set value of General Purpose Register(第１引数、第２引数)
この関数は、第１引数で指定されたGeneral Purpose Registerに、第２引数で指定された値を設定させる関数である。  
Player Status Registerの設定値(SPRM)がどのような意味をもつかは、以下に示す通りである。以下のSPRM(x)という表記は、x番目のPlayer Status Registerの設定値を意味する。
SPRM(0)      ：  Reserved
SPRM(1)      ：  デコード対象たるオーディオストリーム
のストリーム番号
SPRM(2)      ：  デコード対象たる副映像ストリームのストリーム番号
SPRM(3)      ：  ユーザによるアングル設定を示す番号
SPRM(4)      ：  現在再生対象とされているタイトルの番号
SPRM(5)      ：  現在再生対象とされているChapterの番号
SPRM(6)      ：  現在再生対象とされているPLの番号
SPRM(7)      ：  現在再生対象とされているCELLの番号
SPRM(8)      ：  現在の再生時点を示す時刻情報
SPRM(9)      ：  ナビゲーションタイマのカウント値
SPRM(10)      ：  現在選択状態にあるボタンの番号
SPRM(11)〜(12)：  Reserved
SPRM(13)      ：  ユーザによるパレンタルレベルの設定
SPRM(14)      ：  再生装置の映像再生に関する設定
SPRM(15)      ：  再生装置の音声再生に関する設定
SPRM(16)      ：  再生装置における音声設定を示す言語コード
SPRM(17)      ：  再生装置における字幕設定を示す言語コード
SPRM(18)      ：  メニュー描画のための言語設定
SPRM(19)〜(31)：  Reserved
｛SPRM(1)〜(2)について｝
SPRM(1)〜(2)は、PL再生に先立ちPREコマンドにより設定される。またAVストリームの再生中において、Navigation Button情報におけるButton Commandによって更新される。SPRM(1)(2)を参照することで、以下のような応用が可能である。例えば、MOVIEモードにおいて音声を英語に設定し、字幕を日本語に設定して、PLの再生を行っているものとする。この再生時に、MOVIEモードからJava（登録商標）モードへの分岐があれば、Java（登録商標）オブジェクトはSPRM(1),(2)を参照することにより、音声を英語に設定し、字幕を日本語に設定した上でJava（登録商標）オブジェクトのソフトウェアを実行することができる。Java（登録商標）オブジェクトのソフトウェアが英語リスニングの実習教材であるなら、映画の視聴と、リスニング教材による実習との相乗効果により、語学の習得効果を高めることができる。
【００５８】
｛SPRM(3)について｝
SPRM(3)は、PL再生に先立ちPREコマンドにより設定される。またAVストリームの再生中において、Navigation Button情報におけるButton Commandによって更新される。AVストリームにマルチアングル区間が存在する場合、どのアングルの動画データがデコード対象であるかは、SPRM(3)を参照すればわかる。
【００５９】
SPRM(3)を参照することで、以下の応用が可能である。映画作品が列車車窓ビデオであり、マルチアングル区間を含んでいるものとする。このマルチアングル区間は、右側座席、左側座席、運転席といった複数アングルから撮影された複数動画データを含んでいるものとする。この場合、SPRM(3)には、どのアングルからの再生かが示されているので、MOVIEモードからJava（登録商標）モードへの分岐時において、Java（登録商標）オブジェクトがSPRM(3)を参照すれば、ユーザ設定されたアングルからの映像再生を伴う運転ゲームを実現することができる。
【００６０】
｛SPRM(4)〜(7)について｝
SPRM(4)は、メニュー操作を介して、ユーザによりTitleが選択された場合に更新される。SPRM(5)〜(7)は、現在の再生時点が進行する度に更新される。つまり現在の再生時点があるCELLから別のCELLに移行すれば、SPRM(7)が更新される。あるPLから別のPLへの切り換えがなされればSPRM(6)が更新される。Chapterの切り換えがなされればSPRM(5)が更新される。
【００６１】
これにより再生装置が、どのTitleを再生しているか、どのPLを再生しているか、またそのPLにおいてどのCELL、どのChapterを再生しているか、どのCELLを再生しているのかは、SPRM(4)〜(7)を参照すればわかる。尚SPRM(4)〜(7)は、必ずしもPREコマンド、POSTコマンド、Buttonコマンドによりダイレクトに更新されるものではないが、PL再生というコマンドにより更新を受ける。間接的であるにせよ、動的シナリオから更新されることには変わりないので、SPRM(4)〜(7)は動的シナリオにより更新されるといえる。
｛SPRM(10)について} 
SPRM(10)は、AVストリームに属する各ピクチャデータが表示される度に更新される。つまり再生装置が新たなピクチャデータを表示させれば、その新たなピクチャデータの表示開始時刻(Presentation Time)を示す値にSPRM(10)は更新される。このSPRM(10)を参照すれば、PL再生の途中でMOVIEモードからJava（登録商標）モードへと移行するようにNavigation Button情報内のButton Commandが記述されている場合、SPRM(10)を参照することで、Java（登録商標）モードにおけるJava（登録商標）オブジェクトは、ユーザが同じBD-ROMに記録されている映画作品をどこまで視聴したかという視聴位置を知得することができる。そしてJava（登録商標）モードでは、この視聴位置に応じて登場するキャラクタが変わるように、ゲームソフトを記述することができ、よりJava（登録商標）モードにおけるゲームをより面白くすることができる。尚SPRM(10)は、PREコマンド、POSTコマンド、Buttonコマンドによりダイレクトに更新されるものではないが、PL再生というコマンドにより更新を受ける。間接的であるにせよ、動的シナリオから更新されることには変わりないので、SPRM(10)は動的シナリオにより更新されるといえる。
【００６２】
Get value of Player Status Register関数、Get value of General Purpose Register関数を用いて以上のようなPlayer Status Registerを参照すれば、Java（登録商標）オブジェクト及びWebPageオブジェクトは再生装置の状態を詳細に知得することができる。
(C)第３層(静的シナリオ)から供給されるプログラミング関数ではないが、動的シナリオから動的シナリオへの分岐も存在する。動的シナリオから動的シナリオへの分岐を行わせる関数には、以下のJMP関数と、CALL関数とがある。
JMP関数
書式：JMP 引数
CALL関数 
書式：CALL 引数
JMP関数は、現在の動的シナリオを途中で廃棄し(discard)、引数たる分岐先動的シナリオを実行するという分岐である。JMP命令の形式には、分岐先動的シナリオを直接指定している直接参照のものと、分岐先動的シナリオを間接参照している間接参照のものがある。
【００６３】
Call関数とは、動的シナリオの動作を一旦停止してから(Suspend)、引数たる分岐先動的シナリオを動作させ、分岐先動的シナリオの動作終了後、停止中の動的シナリオの動作を再開するという分岐である。Call命令の分岐先となる動的シナリオは、その末尾にResume命令が配置されている。Resume命令とは、いわゆるサブルーチンのReturn命令であり、Call関数を実行したためにSuspend状態になっている動的シナリオを、再起動させるための命令である。Call関数の形式には、JMP命令同様、分岐先動的シナリオを直接指定している直接参照のものと、分岐先動的シナリオを間接参照している間接参照のものがある。
【００６４】
以上が、第３層(静的シナリオ)により供給される関数及び変数である。
＜統合管理の情報＞
続いて、MOVIEモードにおける動的シナリオ、Java（登録商標）モードにおける動的シナリオ、Browserモードにおける動的シナリオを統合管理するための情報について説明する。かかる統合管理のための情報は、図３に示したINFO.BD-ROMである。
【００６５】
図２３（ａ）は、INFO.BD-ROMの内部構成を示す図である。本図に示すようにINFO.BD-ROMはIndex Tableを含む。Index Tableは、動的シナリオから動的シナリオへの分岐の際、参照される間接参照用テーブルであり、複数ラベルのそれぞれに対するIndexからなる。各Indexには、そのラベルに対応する動的シナリオのファイル名が記述されている。図２３（ｂ）に示すように、このファイル名は、ファイルボディと、拡張子とからなる。ラベルには、Title#1〜#m、Title#m+1〜#n、Title#0といったものがある。Index Tableは、3つのモードの何れの動的シナリオからも参照される。MOVIEオブジェクトからJava（登録商標）オブジェクト、MOVIEオブジェクトからWebPageオブジェクトへの分岐は、Index Tableを介した場合のみ可能となる。逆に言えば、Index TableにIndexがないJava（登録商標）オブジェクト、WebPageオブジェクトには、MOVIEオブジェクトからは分岐できない。
【００６６】
Title#1〜#mINDEXは、BD-ROMにおいて1からm番目にエントリーされているTitleについてのIndexであり、これら1からmまでのTitle番号の選択時において分岐先となるMOVIEオブジェクトのファイル名が記述される。図２３（ｂ）は、Title#1〜#mINDEXの内容を示す。本図に示すようにTitle#1〜#mINDEXには、MOVIEオブジェクトのファイル名が記述されている。このファイル名は、ファイルボディ(ZZZ)、拡張子(.MOVIE)からなる。
【００６７】
Title#m+1〜#nINDEXは、BD-ROMにおいてm+1からn番目にエントリーされているTitleについてのIndexであり、これらm+1からnまでのTitle番号の選択時において分岐先となるWebPageオブジェクト／Java（登録商標）オブジェクトのファイル名が記述される。図２３（ｃ）は、Title#m+1〜#nINDEXの内部を示す。本図に示すようにTitle#m+1〜#nINDEXには、Java（登録商標）オブジェクトのファイルボディ(ZZZ)、拡張子(.MOVIE)か、又は、WebPageオブジェクトのファイルボディ(ZZZ)、拡張子(.HTM)が格納されている。
【００６８】
Title#0INDEXは、エンハンスドモードが実行不能な再生装置に装填され、エンハンスドモードへの分岐が再生装置に命じられた場合に参照された場合、エンハンスドモードシナリオの代わりに実行すべき、ムービーモードシナリオのファイル名を格納しておくIndexである。
エンハンスドモードの実行不能とは、Java（登録商標）モードを実行するJava（登録商標）仮想マシンや、Browserモードを実行するブラウザがインストールされていないか(1)、アンインストールされているか(2)、またインストールされてはいるが、ネットワークからは遮断され、スタンドアローンで用いられている(3)ことを意味する。以上の(1)〜(3)の理由で、エンハンスドモードの実行が不可能な状態の再生装置をコアシステムという。またJava（登録商標）仮想マシン、ブラウザによるプログラムの実行が可能な状態にある再生装置をフルシステムという。以下、コアシステム、フルシステムによるBD-ROMの間接参照について、図２４を参照しながら説明する。この間接参照の説明では、図２４（ａ）に示すような複数の動的シナリオ(001.MOVIE,002.MOVIE,003.MOVIE・・・・、001.CLASS,002.CLASS,003.CLASS・・・・・・)が記録されているBD-ROMを想定している。BD-ROMに図２４（ａ）に示すような複数動的シナリオが記述されている場合のIndex Tableの記述例を図２４（ｂ）に示す。図２４（ｂ）の記述例において、Title#1Index〜Title#mIndexには、ムービーモードシナリオであるファイル名(001.MOVIE,002.MOVIE,003.MOVIE・・・・)が記述されている。一方、Title#m+1Index〜Title#nIndexには、エンハンスドモードシナリオのファイル名(001.CLASS,002.CLASS,003.CLASS・・・・・・)が記述されている。図２５（ａ）は、図２４（ｂ）のようにIndex Tableが記述された場合のフルシステムにおける間接参照を示す。Index Tableがこのように記述されているので、ラベルTitle#1〜Title#mを分岐先とした分岐コマンドの実行時には、ラベルTitle#1〜Title#mを分岐先とした分岐コマンドの実行時には、Title#1Index〜Title#mIndexからファイル名『001.MOVIE,002.MOVIE,003.MOVIE・・・・・』が、ラベルTitle#m+1〜Title#nを分岐とした分岐コマンドの実行時には、Title#m+1Index〜Title#nIndexからファイル名『001.CLASS,002.CLASS,003.CLASS・・・』が取り出され、そのファイル名の動的シナリオがメモリに読み出されて、実行されることになる。これがフルシステムによる間接参照である。
【００６９】
図２５（ｂ）は、コアシステムにおける間接参照を示す図である。ラベルTitle#1〜Title#mを分岐先に指定した分岐コマンドの実行時には、図２５（ａ）と同様、Title#1Index〜Title#mIndexからファイル名『001.MOVIE,002.MOVIE,003.MOVIE・・・・・』が取り出されるが、ラベルTitle#m+1〜Title#nを分岐先に指定した分岐コマンドの実行時には、Title#m+1Index〜Title#nIndexに代えてTitle#0Indexからファイル名『000.MOVIE』が取り出されて、そのファイル名の動的シナリオが再生装置により実行される。以上がフルシステム、コアシステムにおける間接参照である。
【００７０】
図２６は、図１８に示したMOVIEオブジェクトからJava（登録商標）オブジェクトへの分岐がどのように行われるかを模式的に示す図である。図中の矢印jn1,2は、MOVIEオブジェクトからJava（登録商標）オブジェクトへの分岐を象徴的に示している。本図におけるJmp Title#m+1がJava（登録商標）オブジェクトにおける分岐コマンドであり、ラベルTitle#m+1のIndexを介した間接参照の形式で分岐先のJava（登録商標）オブジェクトを指定している。ラベルTitle#m+1のIndexにはJava（登録商標）オブジェクトのファイル名が記述されておリ、これを参照することにより、再生装置はどのファイルをJava（登録商標）オブジェクトとして読み出せばよいかを知ることができる。
【００７１】
図２７は、コアシステムの再生装置に図１８に示したシナリオが記録されたBD-ROMが装填された場合、どのような分岐が行われるかを示す。図１８に示した矢印が、図２７において破線hs1で描かれているのは、コアシステムでは、Java（登録商標）オブジェクトを実行する主体が存在しないので、図１８に示した分岐が無効化されていることを示す。図中の実線矢印js1は、この分岐に代えてなされる予備の分岐を示す。この予備の分岐は、Title#0のIndexを介した間接参照である。Title#0のIndexには、MOVIEオブジェクト0のファイル名が格納されており、この分岐ではMOVIEオブジェクト0が再生装置により読み出され、実行されることになる。sg1は、MOVIEオブジェクト0の分岐時に実行されるMOVIEオブジェクトである。コアシステムのみの再生装置に本BD-ROMが装填された場合、MOVIEモードのゲームをユーザに実行させるので、Java（登録商標）モード／Browserモードが実行されないことによるユーザの落胆を防ぐことができる。
【００７２】
以上が本発明に係る記録媒体の実施形態である。続いて本発明に係る再生装置の実施形態について説明する。図２８は、本発明に係る再生装置の内部構成を示す図である。本図に示すように、再生装置は、BD-ROMドライブ１、トラックバッファ２、デマルチプレクサ３、ビデオデコーダ４、ピクチャプレーン５、オーディオデコーダ６、イメージメモリ７、イメージプレーン８、イメージデコーダ９、加算器１０、静的シナリオメモリ１１、再生制御エンジン１２、プレーヤレジスタ１３、BACKUPメモリ１４、動的シナリオメモリ１５、DVDライクモジュール１６、Java（登録商標）モジュール１７、BROWSERモジュール１８、UOコントローラ１９、モジュールマネージャ２０、ディスパッチャ２１、レンダリングエンジン２２、通信部２３から構成される。
【００７３】
BD-ROMドライブ１は、BD-ROMのローディング／イジェクトを行い、BD-ROMに対するアクセスを実行する。
トラックバッファ２は、FIFOメモリであり、BD-ROMから読み出されたACCESS UNITが先入れ先出し式に格納される。
デマルチプレクサ３は、トラックバッファ２からACCESS UNITを取り出して多重分離を行い、GOPを構成するビデオフレームと、オーディオフレームとを得てビデオフレームをビデオデコーダ４に出力し、オーディオフレームをオーディオデコーダ６に出力する。副映像ストリームはイメージメモリ７に格納し、Navigation Button情報は動的シナリオメモリ１５に格納する。デマルチプレクサ３による多重分離は、TSパケットをPESパケットに変換するという変換処理を含む。
【００７４】
ビデオデコーダ４は、デマルチプレクサ３から出力されたビデオフレームを復号して非圧縮形式のピクチャをビデオプレーン１５に書き込む。
ピクチャプレーン５は、非圧縮形式のピクチャを格納しておくためのメモリである。
オーディオデコーダ６は、デマルチプレクサ３から出力されたオーディオフレームを復号して、非圧縮形式のオーディオデータを出力する。
【００７５】
イメージメモリ７は、BD-ROMから読み出された副映像ストリーム、Navigation Button情報内のPNGデータ、画像ファイルを格納しておくバッファである。
イメージプレーン８は、一画面分の領域をもったメモリであり、展開された副映像ストリーム、PNGデータ、画像ファイルが配置される。
イメージデコーダ９は、イメージメモリ７に格納された副映像ストリーム、PNGデータ、画像ファイルを展開してイメージプレーン８に書き込む。副映像ストリームのデコードにより、各種メニュー、副映像が画面上に現れることになる。
【００７６】
加算器１０は、ピクチャプレーン５に格納された非圧縮形式のピクチャデータに、イメージプレーン８に展開されたイメージを合成して出力する。図１３（ｂ）に示した画面(動画を表示した画面の横でCG(図中のフクロウの絵)が動きまわっているような画面)は、この加算器１０が、イメージプレーン８内のイメージと、ピクチャプレーン５内のピクチャとを合成することで出力される。
【００７７】
静的シナリオメモリ１１は、カレントのPLやカレントのストリーム管理情報を格納しておくためのメモリである。カレントPLとは、BD-ROMに記録されている複数PLのうち、現在処理対象になっているものをいう。カレントストリーム管理情報とは、BD-ROMに記録されている複数ストリーム管理情報のうち、現在処理対象になっているものをいう。
再生制御エンジン１２は、AV再生機能(1)、プレイリストの再生機能(2)、再生装置における状態取得／設定機能(3)といった諸機能を実行する。再生装置のAV再生機能とは、DVDプレーヤ、CDプレーヤから踏襲した機能群であり、再生開始(Play)、再生停止(Stop)、一時停止(Pause On)、一時停止の解除(Pause Off)、Still機能の解除(still off)、速度指定付きの早送り(Forward Play(speed))、速度指定付きの巻戻し(Backward Play(speed))、音声切り換え(Audio Change)、副映像切り換え(Subtitle Change)、アングル切り換え(Angle Change)といった処理をユーザからの操作に応じて実行することである。PL再生機能とは、このAV再生機能のうち、再生開始や再生停止をPL情報に従って行うことをいう。このPL再生機能の実行により、再生制御エンジン１２はレイヤモデルの第３層(静的なシナリオに基づく再生制御)の役割を果たす。再生制御エンジン１２は、AV再生機能をユーザからの操作に従って実行する。一方、機能(2)〜(3)を、DVDライクモジュール１６〜BROWSERモジュール１８からの関数呼出に応じて実行する。つまり再生制御エンジン１２は、ユーザ操作による指示、レイヤモデルにおける上位層からの指示に応じて、自身の機能を実行する。
【００７８】
プレーヤレジスタ１３は、32個のSystem Parameter Registerと、32個のGeneral Purppose Registerとからなる。これらのレジスタの格納値は変数SPR,GPRMとしてプログラミングに利用される。System Parameter Register、及び、General Purppose Registerは、DVDライクモジュール１６〜BROWSERモジュール１８から分離した再生制御エンジン１２で管理されるため、たとえ再生モードの切り換わりが生じたとしても、切換後の再生モードを実行するモジュールは、再生制御エンジン１２におけるSPRM(0)〜(31)、GPRM(0)〜(31)を参照しさえすれば、再生装置の再生状態を知得することができる。
【００７９】
BACKUPメモリ１４は、DVDライクモジュール１６〜BROWSERモジュール１８の何れかがSuspendを実行した際に、再生装置レジスタの格納値の退避しておくためのスタックメモリである。このBACKUPメモリ１４の格納値は、DVDライクモジュール１６〜BROWSERモジュール１８の何れかが動的シナリオのResumeを実行した際、再生装置が具備するレジスタ格納値に復帰される。DVDライクモジュール１６〜BROWSERモジュール１８のうち、同じものが2回以上Suspnedを行った場合、レジスタの格納値は、先入先出し式に格納される。このスタックの段数以上に格納値が格納された場合、それより前に退避された格納値が上書きされる。BACKUPメモリ１４に格納されるSPRMには、言語コード(Laguage Code)、現在デコード対象になっているオーディオストリームの番号(Audeo Stream Number)、現在デコード対象になっている副映像ストリームの番号(Subtitle Stream Number)、ユーザにより設定されたアングル番号(Angle Number)、現在再生中のTitleの番号(Title Number)、現在再生中のChapter番号、現在再生中のPL番号(PlayList Number)、現在再生中のCELL番号(PlayItem Number)、選択状態にあるボタンの番号(Selected Button)、現在の再生時点を示す時刻情報といったものがある。
【００８０】
動的シナリオメモリ１５は、カレント動的シナリオを格納しておき、DVDライクモジュール１６〜BROWSERモジュール１８による処理に供されるメモリである。カレント動的シナリオとは、BD-ROMに記録されている複数シナリオのうち、現在実行対象になっているものをいう。
DVDライクモジュール１６は、MOVIEモードの実行主体となるDVD仮想プレーヤであり、動的シナリオメモリ１５に読み出されたカレントのMOVIEオブジェクトを実行する。
【００８１】
Java（登録商標）モジュール１７は、Java（登録商標）プラットフォームであり、Java（登録商標）仮想マシン、コンフィグレーション、プロファイルからなる。Java（登録商標）モジュール１７は、<U>動的シナリオメモリ１５</U>に読み出されたZZZ.CLASSからカレントのJava（登録商標）オブジェクトを生成し、実行する。Java（登録商標）仮想マシンは、Java（登録商標）言語で記述されたJava（登録商標）オブジェクトを、再生装置におけるCPUのネィティブコードに変換して、CPUに実行させる。
【００８２】
BROWSERモジュール１８は、Browserモードの実行主体となるブラウザであり、動的シナリオメモリ１５に読み出されたカレントのWebPageオブジェクトを実行する。BROWSERモジュール１８が使用することができるプロトコルには、HTTP、IP、ARP、RARP、TCP,telnet,SMTP,ftpがある。DVDライクモジュール１６〜BROWSERモジュール１８は何れも、再生装置に予め実装されているレジデントプログラムである。
【００８３】
UOコントローラ１９は、リモコンや再生装置のフロントパネルに対してなされたユーザ操作を検出して、ユーザ操作を示す情報(以降UO(User Operation)という)をモジュールマネージャ２０に出力する。
モジュールマネージャ２０は、BD-ROMから読み出されたIndex Tableを保持して、モード管理及び分岐制御を行う。モジュールマネージャ２０によるモード管理とは、動的シナリオをどのDVDライクモジュール１６〜BROWSERモジュール１８に実行させるかという、モジュールの割り当てである。モジュール割り当ての原則は、動的シナリオをDVDライクモジュール１６に実行させるというものである。イントラモードでの分岐(同一モード内の分岐)があったとしても、この原則は維持される。例外は、インターモードでの分岐(モード間の分岐)が発生した場合である。MOVIEオブジェクトからJava（登録商標）オブジェクト／WebPageオブジェクトへの分岐が発生した場合、Java（登録商標）モジュール１７、BROWSERモジュール１８がカレントオブジェクトを実行することになる。
【００８４】
モジュールマネージャ２０による分岐制御は、分岐先となる動的シナリオを特定し、これをメモリに読み出して、DVDライクモジュール１６〜BROWSERモジュール１８のどれかに実行させることをいう。分岐先動的シナリオの特定は、間接参照形式で分岐先動的シナリオが指定されている場合に特に必要となる。この特定は、分岐コマンドの分岐先ラベルを参照し、これに対応するIndexから、ファイル名を取り出すことでなされる。この特定にあたってモード切り換えの要否を併せて判定する。モード切り換えの要否判定は、分岐先ラベルに対応するIndexにおいて、何というファイル拡張子が格納されているかを参照することでなされる。分岐先動的シナリオがMOVIEモードなら拡張子はMOVIE、分岐先動的シナリオがJava（登録商標）モードなら拡張子はCLASS、分岐先動的シナリオがBrowserモードなら拡張子はHTML,XMLに設定されているので、Indexに格納された拡張子が何であるかで、モード切り換えが必要かどうかがわかる。モード切り換えが必要なら、分岐先動的シナリオをメモリに読み出させて、切り換え後のモードを実行するモジュールに、モード遷移要求を出力する。切り換え後のモードを実行するモジュールは、この遷移要求の出力により、メモリ中の分岐先動的シナリオを実行することとなる。
【００８５】
ディスパッチャ２１は、UOから、現在の再生装置におけるモードに適切なUOのみを選んで、そのモードを実行するモジュールに受け渡す。例えばMOVIEモードの実行中に、上下左右、アクティベートといったUOを受け付けた場合、MOVIEモードのモジュールにこれらのUOを出力するというのがディスパッチャ２１の処理である。これらのUOは、MOVIEモードにおけるメニュー挙動にのみ必要であり、Java（登録商標）モード／Browserモードでは、不必要だからである。
【００８６】
レンダリングエンジン２２は、Java（登録商標）3D,OPEN-GLといった基盤ソフトウェアを備え、Java（登録商標）モジュール１７からの指示に従ってコンピュ−タ・グラフィックスの描画を行い、描画されたコンピュ−タ・グラフィックスをイメージプレーン８に出力する。
通信部２３は、BD-ROMからの指示に従ってTCP/IPに基づく通信手順を実行して、Webサイトへのアクセスを行う。
【００８７】
以上が再生装置の構成要素である。続いてモジュールマネージャ２０についてより詳しく説明する。
モジュールマネージャ２０は、汎用のCPUに、図２９、<U>図３０</U>の処理手順を行うプログラムを読み取せることで実施可能である。図２９は、モジュールマネージャ２０による処理手順を示すフローチャートである。以降本フローチャートを参照しながら、モジュールマネージャ２０による分岐制御について説明する。本フローチャートは、Index TableのFirstPlayのIndexからファイル名を取り出し(ステップＳ１)、カレントモードをMOVIEモードに設定して(ステップＳ２)、取り出されたファイル名の動的シナリオをカレントの動的シナリオに設定し(ステップＳ３)、カレントの動的シナリオiを、メモリに読み出してから(ステップＳ４)、メモリ中のカレントの動的シナリオを実行するというものである(ステップＳ５〜ステップＳ１０)。
【００８８】
このステップＳ４〜ステップＳ１０は、カレントの動的シナリオが新たに設定される度に、実行される。
ステップＳ５〜ステップＳ１０は、シナリオを構成する各コマンドについて、ステップＳ６〜ステップＳ１０の処理を繰り返すというループ処理を形成している。本フローチャートにおける”x”とは、シナリオを構成するコマンドのうち、処理対象たるものを特定する変数である。このループ処理は、変数xを初期化し(ステップＳ５)、カレントの動的シナリオi内のコマンドxを、カレントモードのモジュールに実行させてから(ステップＳ６)、ステップＳ７〜ステップＳ８に規定された判定処理を行い、その後、変数xをインクリメントして(ステップＳ１０)、ステップＳ６に戻るというものである。変数xをインクリメントしてステップＳ６に戻るという処理を繰り返すので、シナリオを構成する全てのコマンドに対し、ステップＳ６〜ステップＳ１０の処理は繰り返される。ループ処理の実行中、UOが発生した場合は(ステップＳ７)、UOのディスパッチ処理(図３０のステップＳ３１〜ステップＳ３３)を実行してからステップＳ８に戻る。UOのディスパッチ処理とは、コマンド実行中に発生したUOが上下左右、アクティベートであり(ステップＳ３１)、カレントモードがMOVIEモードである場合に(ステップＳ３２)、カレントモードのモジュールにUOを出力するというものである。コマンド実行中に発生したUOが上下左右、アクティベート以外のUOなら、そのままカレントモードのモジュールにUOを出力する(ステップＳ３３)。コマンド実行中に発生したUOが上下左右、アクティベート以外のUOであり、カレントモードがMOVIEモードでないなら、発生したUOは、モジュールに出力されない。以上がディスパッチ処理である。
【００８９】
この処理を行いつつ、ステップＳ６〜ステップＳ１０の処理は繰り返される。このステップＳ６〜ステップＳ１０のループ処理において処理対象たるカレント動的シナリオの切り換えは、ステップＳ８にてYesと判定された場合になされる。ステップＳ８は、コマンドxが分岐コマンドであるかどうかの判定であり、このステップＳ８がYesならば、ステップＳ１１〜ステップＳ２０においてカレントの動的シナリオを、新たな動的シナリオに設定してステップＳ４に戻る。これにより、新たな動的シナリオがメモリに読み込まれて実行されることになる。
【００９０】
以降、ステップＳ１１〜ステップＳ２３の処理について説明する。この処理は、分岐制御であり、ステップＳ１１、ステップＳ１４、ステップＳ１９、ステップＳ２２の判定結果に応じて、異なる処理を実行するものである。ステップＳ１１は、分岐コマンドの分岐先がTitleラベルを用いて記述されているか否かの判定であり、もしYesならステップＳ２２の判定を経て分岐先ラベルであるTitlejを取得し(ステップＳ１２)、Index TableにおけるTitlejのIndexiからファイル名jを取り出す(ステップＳ１３)という処理を行う。もしNoなら、分岐先を示すファイル名jを取り出す(ステップＳ２１)という処理を行う。
【００９１】
ステップＳ１４は、分岐コマンドがCallコマンドであるか、Jmpコマンドであるかの判定であり、Callコマンドなら、カレントの動的シナリオiをSuspendして、変数xを退避する(ステップＳ１５)。Jmpコマンドなら、カレントの動的シナリオiをdiscardする(ステップＳ１６)。
以上の処理を経れば、ファイル名jから特定される動的シナリオをカレントの動的シナリオiに設定し(ステップＳ１７)、取り出された拡張子から特定される再生モードを再生モードkに設定する(ステップＳ１８)。これらの設定後、ステップＳ１９を実行する。ステップＳ１９は、再生モードkがカレントモードかどうかの判定であり、違うなら再生モードkをカレントモードに設定してから(ステップＳ２０)、ステップＳ４に移行する。その後、新たに設定されたカレント動的シナリオに対して、ステップＳ４〜ステップＳ１０の処理が繰り返されることになる。尚ステップＳ２２は、再生装置がコアシステムであるか、フルシステムであるかの判定であり、もしコアシステムであるなら、Title#0のIndexからファイル名を取り出し、これを分岐先とする(ステップＳ２３)。
【００９２】
このステップＳ４〜ステップＳ１０のループ処理の終了要件は、ステップＳ９においてYesと判定されることである。コマンドxが動的シナリオiの最後のコマンドであるなら(ステップＳ９がYes)、動的シナリオiの末尾にResumeコマンドがあるかどうかの判定がなされて(ステップＳ３４)、もしこれがNoなら本フローチャートの処理を終了する。もし動的シナリオiの末尾にResumeコマンドが存在するなら、Suspend中の動的シナリオを動的シナリオiに設定し(ステップＳ３５)、動的シナリオiのモードをカレントモードに設定して(ステップＳ３６)、 カレントモードのモジュールに、Suspend中の動的シナリオiのResumeを行わせ(ステップＳ３７)、変数xをSuspend前の値に戻してから(ステップＳ３８)、ステップＳ６〜ステップＳ１０からなるループ処理のうち、ステップＳ１０の直前に移行する。以上がモジュールマネージャ２０の処理手順である。
【００９３】
また再生制御エンジン１２は、汎用のCPUに、図３１の処理手順を行うプログラムを読み取せることで実施可能である。図３１は、再生制御エンジン１２によるPLPlay関数の実行手順を示すフローチャートである。本フローチャートにおいて処理対象たるPLをPLx、処理対象たるCELLをCELLy、処理対象たるACCESS UNITをACCESS UNITvとする。本フローチャートは、PLPlay関数の引数で指定されたPLをPLxに設定し(ステップＳ４１)、PLxをメモリに読み込んでから(ステップＳ４２)、処理対象たるCELLを特定し(ステップＳ４３〜ステップＳ４７)、以降、このCELLを構成するACCESS UNITを読み出す(ステップＳ４８〜ステップＳ５１)という手順からなる。
【００９４】
ステップＳ４３は、CELLの引数指定が有るかどうかの判定であり、もし引数指定があれば、CELLyをPLxの先頭CELLに設定し(ステップＳ４４)、CELLzをPLxの最後のCELLに設定する(ステップＳ４５)。CELLzとは、読出範囲の最後を規定するCELLである。
引数指定がなければ、CELLyを引数指定されたCELLに設定し(ステップＳ４６)、CELLzを同じ引数指定されたCELLに設定する(ステップＳ４７)。CELLy、CELLzを、引数指定されたCELLに設定しておくのは、引数でCELLが指定されている場合は、そのCELLさえ読み出せばよいからである。
【００９５】
ステップＳ４８〜ステップＳ５３は、CELLyを構成するACCESS UNITの読み出しと、復号手順とを示す。この手順は、CELLyのIn点ビデオフレームを含むACCESS UNITvをTMAPから特定し(ステップＳ４８)、ACCESS UNITvの読み出しをBD-ROMドライブ１に命じて(ステップＳ４９)、ステップＳ５０−ステップＳ５１の判定を経てから、ACCESS UNITvに含まれるビデオフレームのデコードを行うようビデオデコーダ４に指示して(ステップＳ５２)、ACCESS UNITvを次のACCESS UNITに設定する(ステップＳ５３)というものである。以降、CELLyに属する全てのACCESS UNITについて、このステップＳ４９〜ステップＳ５３の処理が繰り返される。
【００９６】
ステップＳ５０は、ACCESS UNITvがIn点ビデオフレームを含んでいるかどうかの判定である。もしIN点ビデオフレームを含んでいる場合は(ステップＳ５０でYes)、In点のビデオフレームからACCESS UNITvの最後のビデオフレームまでのデコードを行うようビデオデコーダ４に指示してから(ステップＳ５４)、ステップＳ５２に移行する。
ステップＳ５１は、Out点vがCELLyのOut点ビデオフレームを含んでいるかどうかの判定である。もしOut点ビデオフレームを含んでいる場合は(ステップＳ５１でYes)、ACCESS UNITvの先頭ビデオフレームからOut点ビデオフレームまでのデコードを行うようビデオデコーダ４に指示してから(ステップＳ５５)、ステップＳ５６の判定を行う。ステップＳ５６は、本フローチャートの終了判定であり、CELLyがCELLzになったかを判定している。もしステップＳ５６がYesなら本フローチャートを終了し、そうでないなら、CELLyを次のCELLに設定して(ステップＳ５７)、ステップＳ４８に戻る。以降、ステップＳ５６がYesと判定されるまで、ステップＳ４８〜ステップＳ５７の処理は繰り返される。以上が再生制御エンジン１２の処理手順である。
【００９７】
以上のように本実施形態によれば、エンハンスドモードにあたっては、Java（登録商標）仮想マシンやブラウザの特性を活かしたゲーム等を再生装置に実行させることができるので、動画データ本体の付加価値を高めることができる。またムービーモードからエンハンスドモードへの分岐は、テーブルを介した間接参照にて分岐先を指定しているので、テーブルの記述内容を工夫すれば、Java（登録商標）仮想マシン、ブラウザをもつ再生装置への装填時と、もたない再生装置への装填時とで、分岐先を変えるという動作が実現可能になる。かかる分岐先の変化により、Java（登録商標）仮想マシン、ブラウザをもたないコアシステム再生装置への装填時に、エンハンスドモードプログラムへの分岐の途を閉ざすことができ、あらゆるタイプの再生装置での動作保証を実現することができる。
【００９８】
(第２実施形態)
第１実施形態は、MOVIEオブジェクトにおいて設定されたレジスタ設定値を引き継いで、動作を行うようなJava（登録商標）オブジェクトについて説明した。これに対し第２実施形態は、PLの再生を行い、この再生に同期して様々な再生制御を行うJava（登録商標）オブジェクトについて説明する。
【００９９】
図３２は、第２実施形態に係るBD-ROMのファイル構成を示す図である。本図において新規なのは、YYY.Mark(PLMark),XXX.Mark(ClipMark)が追加されている点である。
PLMarkは、PLの再生中において、再生装置が拡張制御を行うべき区間を示す情報である。YYY.Markのファイル名YYYは、PLMarkが対応しているPLと同じ名称が使用される。つまり本図におけるPLMarkのファイル名はYYYであるから、PL(YYY.PL)に対応していることを意味する。
【０１００】
ClipMarkは、AVストリームの再生中において、再生装置が拡張制御を行うべき区間を示す情報である。XXX.Markのファイル名XXXは、ClipMarkが対応しているAVストリームと同じ名称が使用される。つまり本図におけるClipMarkのファイル名はXXXであるから、AVストリーム(XXX.M2TS)に対応していることを意味する。
ClipMarkとPLMarkとの違いは以下の通りである。ClipMarkは、拡張制御を行うべき区間をAVストリームに対して指定しているのに対し、PLMarkはPLに対して指定している。
【０１０１】
例えば、図１１に示したように1つのAVストリームに対し、2つのPL情報が定義されている場合に、ClipMarkにて拡張制御を行うべき区間を指定すれば、この指定は、このAVストリームを指定している2つのPL情報の何れに対しても及ぶ。一方、PLMarkにて拡張制御を行うべき区間を指定すれば、PLMarkに対応するPLにのみ、拡張制御指定の効力は及ぶ。PLMarkに対応するPLがPL#1ならPL#1のみに及び、PL#2には及ばない。つまり、拡張制御を行うべき区間をClipMarkにて指定すれば、AVストリームを含むPLの全てに対しClipMarkの効力が及び、拡張制御を行うべき区間をPLMarkにて指定すれば、そのPLMarkに対応するPLに対してのみPLMarkの効力が及ぶのである。これがClipMarkとPLMarkとの違いである。
【０１０２】
本実施形態における拡張制御とは、再生装置にイベントを発生させるというものである。イベントを発生させるため、PLMark及びClipMarkは、図３３に示す共通のデータ構造をもつ。図３３は、PLMark及びClipMarkの共通構成を示す図である。本図に示すようにPLMarkは、イベント数（Number）、個々のイベント（Event#1〜Event#m）とから構成され、再生中に発生すべきイベントを定義する。個々のイベント（Event#）は、イベントの種類（Type）と、イベントのID（ID）と、イベントが発生する時刻（Time）と、このイベントが有効となる時間帯の時間長（Duration）を示す。
【０１０３】
かかるデータ構造にて定義されるイベントには、TimeEvent、UserEventというものがある。TimeEventとは、プレイリストの再生時間軸において、現在の再生位置が予め定められた時点Tに到達した場合に発生するイベントである。UserEventとは、現在の再生位置が予め定められた時間帯に到達し、この時間帯でユーザにより操作がなされた場合に発生するイベントである。
【０１０４】
プレイリスト#1の再生中に出現するTimeEventを定義する場合、PLMarkをどのように記述するかについて図３４（ａ）を参照しながら説明する。図中の下段の時間軸は、PL#1が再生される時間軸を示す。この時間軸において時刻t1から発生するTimeEventEx1を定義するケースを想定する。このTimeEventを定義する場合のPLMarkの記述例が、図中のPLMarkmt1である。本PLMarkは、Typeの項目が”TimeEvent”と記述され、IDの項目に”Ex1”、Timeの項目が”t1”、Durationの項目が”0”と記述されている。図中の矢印は、時刻t1の到来で生じるTimeEventを示す。このTimeEventの発生により、図中のイベントハンドラが駆動されることになる。
【０１０５】
一方、再生時間軸上の時刻t1から、間隔TでTimeEventを発生させる場合のPLMarkの記述例を図３４（ｂ）に示す。図３４（ｂ）が（ａ）と違うのは、PLMarkのDuration項目が”T”と記述されている点である。項目Durationの記述により、時点t1の経過後、間隔T置きにTimeEventを発生させることができる。
プレイリスト#1の再生中においてUserEventを定義する場合、PLMarkをどのように記述するかについて図３５を参照しながら説明する。図３５の中段の時間軸は、PL#1が再生される再生時間軸を示す。この時間軸上において現在の再生時点がどこであるかは、SPRM(10)に示されている。この時間軸において時刻t1から期間T1の間、有効となるUserEventEv1を定義するケースを想定する。このUserEventを定義したPLMarkが、図中のPLMarkmt2である。本PLMarkは、Typeの項目が”UserEvent”と記述され、IDの項目に”Ev1”、Timeの項目が”t1”、Durationの項目が”T1”と記述されている。本図におけるリモコンrm1は、ユーザ操作を受け付ける機器であり、図中の矢印uv1は、リモコンのENTERキーの押下で生じるUOを示す。UOが、時刻t1から期間T1の時間帯に発生すれば、UOに基づきUserEventEv1が発生する。このUserEventにより、図中のイベントハンドラが駆動される。以上がPLMarkにより定義されるイベントである。尚ClipMarkにより定義されるイベントについての説明は省略する。何故なら、PLMarkがPL再生中に発生すべきイベントを定義しているのに対し、ClipMarkはAVストリーム再生中に発生すべきイベントを定義しているにすぎず、PLMarkにおけるイベント定義とあまり変わらないからである。
【０１０６】
続いて第２実施形態におけるJava（登録商標）オブジェクトについて説明する。第２実施形態におけるZZZ.CLASSのメンバー関数はPL再生中に再生装置が発生するイベントにより駆動されるイベントハンドラである。以降、Java（登録商標）オブジェクトのメンバー関数たるイベントハンドラについて、具体例を交えながら説明する。図３６は、TimeEventにより駆動されるハンドラの一例、図３７はUserEventにより駆動されるハンドラの一例である。
【０１０７】
図３５〜図３６における記述例では、以下の描画関数を用いて、イメージデータのデコードを行わせているものとする。
描画関数：PNGデータをイメージプレーンに描画する
Draw（File，X，Y）
File  ：  PNGデータを格納したファイル名
X  ：  X座標位置
Y  ：  Y座標位置
イメージプレーンクリア関数：イメージプレーンの指定領域をクリアする
Clear（X，Y，W，H）
X  ：  X座標位置
Y  ：  Y座標位置
W  ：  X方向幅
H  ：  Y方向幅
図３６におけるハンドラhd1は、TimeEvent t1が発生した際、function{〜}を実行するというハンドラである。TimeEvent t1とは、PL#1の再生開始直後(これを時間t1という)に発生するイベントである。ハンドラhd1のfunctionは、GPRM(0)に1を設定し(GPRM(0)=1;)、座標(10,200)に1black.pngを描画し(Draw(1black.png,10,200))、座標(330,200)に2white.pngを描画する(Draw(2white.png,330,200))というものである。1black.pngとは、選択状態にあるボタンのイメージデータである。2white.pngとは、通常状態にあるボタンのイメージデータである。図中の画像イメージig1は、本図のイベントハンドラにより描画される画像イメージである。図中のボタンbn1,2は、1black.png、2white.pngを復号することにより得られる。GPRM(0)は、この2つのボタンの何れが選択状態にあるかを示す。このGPRM(0)が「1」に設定されていることは、ボタンbn1,2のうち、ボタンbn1が選択状態に設定されていることを示す。
【０１０８】
ハンドラhd2は、TimeEvent t2が発生した際、function{〜}を実行するというハンドラである。TimeEvent t2とは、PL#1の再生終了直前(これを時間t2という)に発生するイベントである。ハンドラhd2のfunctionは、PlayPL(-,-,0)を実行するというものである。この(-,-,0)は、「自身のプレイリストの自身Cellの先頭から」という意味である。
図３７のハンドラhd3は、PL#1の再生中にUserEventが発生した際、駆動されるハンドラである。<U>ハンドラhd3</U>の<event_handler id= UserEvent k1>は、UserEvent k1の発生時に、function以下の内容を実行することを示す。
【０１０９】
function以下の内容は、2つのif文からなる。1つ目のif文の条件式は、GPRM(0)が1であり、尚且つ、SPRM(8)が右であるという条件(GPRM(0)==1 && SPRM(8)==Right)であり、この条件が真である場合、GPRM(0)に2を設定し(GPRM(0)=2;)、座標(10,200)に1white.pngを描画し(Draw(1white.png,10,200))、座標(330,200)に2black.pngを描画するという(Draw(1black.png,330,200))ものである。
【０１１０】
図中のイメージig2は、この条件成立時に描画される画像である。if文の条件が真であったなら、イメージig2のように、右側のボタンbn2が選択状態に設定される。図３６の画像イメージig1を、その横に示す。この対比からわかるように、イベントハンドラはUserEventの発生に応じて選択状態たるボタンを切り換えているのである。
if文のelse節は、SPRM(8)がOKであるかという条件の成立を判定するものであり、この条件が成立すれば、2つ目のif文が実行されることになる。
【０１１１】
2つ目のif文の条件は、(GPRM(0)==1)というものであり、この条件が真なら本if文は、プレイリスト#2のCell#1の先頭から、再生を行う(PlayPl(PL#2,Cell#1,0))。この条件が偽ならこのif文は、プレイリスト#3のCell#1の先頭から、再生を行う(PlayPl(PL#3,Cell#1,0))。
図３８は、図３６、図３７のプレイリストにて再生されるピクチャと、イベントハンドラにより描画されるイメージとを合成して、イベントハンドラによる条件分岐を描いた図である。TimeEvent t1により駆動されるイベントハンドラは、ボタンを合成するというものなので、プレイリストにおける最初のピクチャpc1、途中のピクチャpc2、最後のピクチャpc3に対し、イメージig1(ボタンbn1,2を含む)が合成されて表示される。TimeEvent t2により駆動されるイベントハンドラは、プレイリストのCellの最後のピクチャデータが再生された後、先頭に戻るというものだから、最後のピクチャデータの表示後、矢印py1に示すように最初のピクチャデータが表示され、これにボタンが合成される。ユーザからの操作がない限り、このような合成画像の表示が繰り返される。ユーザが矢印キーを押下することでUserEventが発生したなら、矢印ky1に示すようにイメージig1の代わりにイメージig2が、このAVストリームを構成する各ピクチャに合成される。
【０１１２】
イメージig1が表示された状態でユーザがEnterキーを押下すれば、矢印ey1に示すようにイベントハンドラhd3内のPlayPl(PL#2,Cell#1,O)が実行され、プレイリスト#2のCell#1を再生させる。
イメージig2が表示された状態でユーザがEnterキーを押下すれば、イベントハンドラhd3内のPlayPl(PL#3,Cell#1,O)が実行され、矢印ey2に示すようにプレイリスト#3のCell#1を再生させる。
【０１１３】
ユーザの操作があるまで1つのCellを繰り返し再生し、ユーザの操作があれば、ボタンに応じた分岐先に分岐するという再生手順が、イベントハンドラを用いて簡単に記述できる。
かかるイベントハンドラにより、DVDで実現されているメニュー挙動と同様の制御を、プログラマが使い馴れたJava（登録商標）言語を用いて簡単に記述することができる。更にこれを発展させれば、ボタンの代わりにCGが動作するような凝ったメニュー表示の実現が可能になる。これにより、映画制作の表現の幅が広がる。
【０１１４】
以上が本実施形態におけるJava（登録商標）オブジェクトの改良である。続いて、本実施形態における再生装置の改良点について説明する。上述したようなTimeEvent、UserEventを発生させるには、再生制御エンジン１２に図３９に示すような処理手順を行わせればよい。
図３９は、本実施形態に係る再生制御エンジン１２の処理手順を示す図である。本フローチャートにおいて新規なのは、CELLを構成するACCESS UNITを読み出し、復号するという一連の処理中(ステップＳ４９〜ステップＳ５３)に、ステップＳ６０、ステップＳ６２という2つの判定ステップが挿入されている点である。ステップＳ６０は、PL再生において、現在の再生時点を発生時刻としたTimeEventが、PLMark、ClipMarkに定義されているかどうかを判定するステップである。ステップＳ６０がYesなら、TimeEventを発生して(ステップＳ６１)、ステップＳ５１に移行する。これにより、TimeEventを駆動要件とするイベントハンドラが駆動される。
【０１１５】
ステップＳ６２は、UOが発生したかどうかを判定しているステップである。ステップＳ６２がYesなら、PLMark、ClipMarkを参照し、そのUOを有効としている時間帯であるかを判定する(ステップＳ６３)。もしその時間帯であれば、UserEventの発生して(ステップＳ６４)、ステップＳ５１に戻る。
以上のように本実施形態によれば、再生制御エンジン１２がPLを再生させている間、再生時間の進行に応じてイベントを発生するので、Java（登録商標）モードにおいては、TimeEvent、UserEventを駆動要件とするイベントハンドラを駆動することができる。これにより、動画の中身に密接に同期したゲームを、Java（登録商標）言語を用いて記述することができる。
【０１１６】
(第３実施形態)
第２実施形態は、PLMark、ClipMarkで定義されたイベントにて駆動されるイベントハンドラについて説明したが、第３実施形態は、PLMark、ClipMarkで定義されたメンバー関数の挙動を、AV再生機能と同期させる場合の改良に関する。再生装置のAV再生機能とは、DVDプレーヤ、CDプレーヤから踏襲した機能群であり、再生開始(Play)、再生停止(Stop)、一時停止(Pause On)、一時停止の解除(Pause Off)、Still機能の解除(still off)、速度指定付きの早送り(Forward Play(speed))、速度指定付きの巻戻し(Backward Play(speed))、音声切り換え(Audio Change)、副映像切り換え(Subtitle Change)、アングル切り換え(Ungle Change)といったものがある。
【０１１７】
ユーザがこれらの機能の実行を命じた場合、再生装置は実行すべき機能に応じたイベントを発生する。巻戻し機能の実行をユーザが命じたならBackward Event、早送り機能の実行をユーザが命じたならFastwardイベント、一時停止機能の実行をユーザが命じたならPause Eventを再生装置は発生する。これらのイベントでイベントハンドラを駆動するのは、以下の意義がある。再生という動作は、PLの再生時間軸上でなされる。一方、Java（登録商標）仮想マシンの動作は時間軸という概念をもたない。時間軸を前提にしていないので、PLの再生制御と、Java（登録商標）仮想マシンの動作とを同期させるには、PLの再生がどこまで進行したかを何等かの術を用いてJava（登録商標）仮想マシンに伝えねばならない。時間軸におけるPLの再生制御をJava（登録商標）仮想マシンに伝えるイベントこそ、Backward Event、TimeEvent、Pause Eventである。
【０１１８】
(Backward Event)
Backward Eventとは、巻戻し操作がユーザによりなされた場合、巻戻し操作がなされたという事実にてイベントハンドラを駆動するためのイベントである。このBackward Eventを導入したことの技術的意義は以下の通りである。図４０は、Backward Eventの技術的意義を説明するための模式図である。この図４０において、Java（登録商標）オブジェクトのメンバー関数がキャラクタAのCGを画面上で動作させるプログラムであるものとする。このメンバー関数を、PL再生開始から時間t1後に駆動したい場合、時間t1経過というTimeEventをPLMarkに定義し、上述したプログラムをこのTimeEventにより駆動されるイベントハンドラとして記述すればよい。
【０１１９】
かかるTimeEventによる駆動で問題となるのは、「巻戻しては進む」「巻戻しては進む」という変則的な再生を続けた場合である。この場合、再生開始から時刻t1が経過したというTimeEventが何度も発生することになり、そうすると本来1つでよい筈のCGが、複数画面に現れるという事態が生じる。図４０におけるbg1は、再生が時刻t1まで到来したためにハンドラにより描画されるCGを示す。またbg2は、巻戻しにより再生が時刻t1まで到来したためにハンドラにより描画されるCGを示す。本来1つでよい筈のCGが2つ描画されるため、画面デザインがおかしくなってしまう。これを避けるには、時間t1を経過し、その後の巻戻しで再度時間t1に到来した際、CGを消すような動作をJava（登録商標）オブジェクトに記述しておくのが望ましい。そこで巻戻し操作がなされた場合、再生装置にBackward Event(図中のbw1)を発生させ、これにより駆動されるイベントハンドラをZZZ.CLASSに定義しておくのである。巻戻し操作がなされ、再度TimeEvent t1が発生した場合、画面上のCGを消す処理をかかるイベントハンドラに行わせることにより、「巻戻しては進む」「巻戻しては進む」という変則的な再生を繰り返した場合でも、画面に現れるCGは一体のみとなる。
【０１２０】
図４１、図４２は、Backward Eventにより駆動されるイベントハンドラを用いた場合の画面表示例である。図４１（ａ）は、Java（登録商標）モードにおいて、PL再生が開始した時点の表示画面の一例であり、図４１（ｂ）は、PLの再生時点が時刻t1に到達した場合の表示画面の一例である。時刻t1への到達によりTimeEventが発生し、このTimeEventによりイベントハンドラが駆動される。図中のフクロウは、Java（登録商標）オブジェクトのイベントハンドラが駆動したことにより描画されるコンピュ−タ・グラフィックスである。
【０１２１】
図４１（ｃ）は、PLの再生時点が時刻t2に到達した場合の表示画面の一例である。時刻t2に到達した時点でユーザが巻戻しを行ったものとする。図４２（ａ）は、巻戻しによりPLの再生時点が時刻t1に到達した場合の表示画面の一例である。時刻t1への到達により、図中のフクロウを消去する。これは上述したようなフクロウの二重描画を防止するためである。以降巻戻しにより再生時点がt0にまで到達し(図４２(ｂ))、その後、ユーザが再度通常再生を行ったものとする。図４２（ｃ）は、PLの再生時点が時刻t1に再到達した場合の表示画面の一例である。巻戻し時にコンピュ−タ・グラフィックスを消去したため、時刻t1への到達にてCGを再描画したとしても、画面に現れるCGは唯一つになる。
尚本実施形態では、Backward EventにてCGの消去を行ったが、t2にて発生するTimeEventをPLMarkに定義して、
TimeEventt1の発生→  TimeEventt2の発生→  TimeEventt1の発生
という順序でTimeEventが発生すれば、フクロウのコンピュ−タ・グラフィックスを消去してもよい。
(TimeEvent)
第２実施形態で説明したTimeEventは、早送り再生がなされた際、早送りの速度に応じた時間間隔で、発生するという性質をもつ。図４３は、早送り時でのTime Event発生を模式的に示す図である。本図においてTimeEventは、時間間隔dr1を開けて発生している。この時間間隔は、ユーザによる早送り速度の指定に応じたものであり、PLの再生速度が早ければ早い程間隔は短く、再生速度が遅ければ遅い程、間隔は長くなる。よってTimeEventは、PLの再生速度が早ければ早い程、短い間隔で発生する。逆にPLの再生速度が遅ければ遅い程、長い時間間隔で発生する。このイベント発生の時間間隔が長いか短いかでJava（登録商標）オブジェクトは、PLの再生が早く進んでいるか、遅く進んでいるかを知ることができる。そのためPLの再生が早く進んでいる場合と、遅く進んでいる場合とで、CGの動きを変えるようプログラムを行うこともできる。これにより、CGの動きと、PL再生とに緻密な時間同期をとらせることができる。
【０１２２】
図４４は、早送りに応じたTimeEventにより駆動されるイベントハンドラを用いた場合の画面表示例である。図４４（ａ）は、Java（登録商標）モードにおいて、PL再生が開始した時点の表示画面の一例であり、図４４（ｂ）は、PLの再生時点が時刻t1に到達した場合の表示画面の一例である。時刻t1への到達によりTimeEventが発生し、このTimeEventによりイベントハンドラが駆動される。図中のフクロウは、このイベントハンドラが駆動したことにより描画されるコンピュ−タ・グラフィックスである。図４４（ｃ）は、早送りを行った表示画面の一例である。早送りがなされたことより、TimeEventの発生間隔が変わる。Java（登録商標）オブジェクトは、この間隔変化に応じて図中のコンピュ−タ・グラフィックスの動きを変える。
【０１２３】
図４４（ｃ）におけるフクロウの飛翔は、コンピュ−タ・グラフィックスの描画方法を変化させる一例である。TimeEventの発生間隔に応じてコンピュ−タ・グラフィックスの描画方法を変化させることにより、PLが早送りにて再生された場合でも、Java（登録商標）オブジェクトの動きを緻密に同期させることができる。尚図４４における画面の横線は、早送りななされている様子を、VTRの再生に例えて誇張して表現したものにすぎない。実際のBD-ROMでの早送り時には、このような横線は画面には現れない。ここで10倍速のように、高速である場合は、コンピュ−タ・グラフィックスを消去してしまうのが望ましい。
【０１２４】
(ポーズ)
Pause Eventは、一時停止操作がなされた際、再生装置において発生するイベントである。図４５は、Pause Eventの発生を模式的に描いた図である。かかるPause Eventの発生時において、再生装置の動作を止めるようイベントハンドラを記述すれば、PLの再生は止まっているのに、CGの動きだけは進行しているというような齟齬を無くすことができる。
【０１２５】
以上のイベントにて、動作するようなイベントハンドラをメンバー関数として定義することで、Java（登録商標）オブジェクトの動作がPL再生と緻密に同期するような高品位な映画作品を、視聴者に供給することができる。
以上のように本実施形態によれば、再生時間軸において現在の再生時点がどこであるか、再生がどれだけのスピードに応じて進行しているかによって、Java（登録商標）オブジェクトの処理を変化させるので、Java（登録商標）オブジェクトにより描画されるCGの動作のリアリティを高めることができる。
(第４実施形態)
本実施形態は、DVDと同様のメニュー制御をBD-ROM上で実現する場合の改良に関する。図４６は、BD-ROMにより実現されるメニュー階層を示す図である。本図におけるメニュー階層は、TopMenuを最上位に配し、このTopMenuから下位のTitleMenu、SubTitleMenu、AudioMenuを選択できる構造になっている。図中の矢印sw1,2,3は、ボタン選択によるメニュー切り換えを模式的に示す。TopMenuとは、音声選択、字幕選択、タイトル選択の何れを行うかを受け付けるボタン(図中のボタンsn1,sn2,sn3)を配置したメニューである。
【０１２６】
TitleMenuとは、映画作品(Title)の劇場版を選択するか、ディレクターズカット版を選択するか、ゲーム版を選択するか等、映画作品の選択を受け付けるボタンを配置したメニューである。AudioMenuとは、音声再生を日本語で行うか、英語で行うかを受け付けるボタンを配置したメニュー、SubTitleMenuとは、字幕表示を日本語で行うか、英語で行うかを受け付けるボタンを配置したメニューである。
【０１２７】
こうした階層をもったメニューを動作させるためのMOVIEオブジェクトを図４７に示す。
FirstPlayオブジェクト(FirstPlay OBJ)は、再生装置へのBD-ROMのローディング時におけるスタートアップ手順を記述した動的シナリオである。FirstPlayオブジェクトを表す四角枠は、このスタートアップ手順を実行するためのコマンドを示す。FirstPlayオブジェクトの最後のコマンドは分岐コマンドであり、TopMenuオブジェクトを分岐先にしている。
【０１２８】
TopMenuオブジェクト(TopMenu OBJ)は、TopMenuの挙動を制御する動的シナリオである。TopMenuオブジェクトを表す四角の枠は、この制御手順を現した個々のコマンドを模式化したものである。このコマンドには、ユーザからの操作に応じてTopMenu中のボタンの状態を変えるものや、ボタンに対する確定操作に応じて分岐を行う分岐コマンドがある。この分岐コマンドは、TopMenuからTitleMenu、TopMenuからSubTitleMenu、TopMenuからAudioMenuというメニュー切り換えを実現するものである。
【０１２９】
AudioMenuオブジェクト(AudioMenu OBJ)は、AudioMenuの挙動を制御する動的なシナリオである。AudioMenuオブジェクトを構成する四角の枠は、この制御手順を現した個々のコマンドを模式化したものである。このコマンドには、ユーザからの操作に応じてAudioMenu中のボタンの状態を変えるものや、ボタンに対する確定操作に応じて音声設定用のSPRMを更新するコマンドがある。
【０１３０】
SubTitleMenuオブジェクト(SubTitleMenu OBJ)は、SubTitleMenuの挙動を制御する動的なシナリオである。SubTitleMenuオブジェクトを構成する四角の枠は、この制御手順を現した個々のコマンドを模式化したものである。このコマンドには、ユーザからの操作に応じてSubTitleMenu中のボタンの状態を変えるものや、ボタンに対する確定操作に応じて<U>字幕設定用</U>のSPRMを更新するコマンドがある。
【０１３１】
TitleMenuオブジェクト(TitleMenu OBJ)は、TitleMenuの挙動を制御する動的シナリオである。TitleMenuオブジェクトを表す四角の枠は、この制御手順を現した個々のコマンドを模式化したものである。このコマンドには、ユーザからの操作に応じてTitleMenu中のボタンの状態を変えるものや、ボタンに対する確定操作に応じて分岐を行う分岐コマンドがある。この分岐コマンドは、個々のTitleへの分岐を実現するものである。
【０１３２】
これらのメニュー用MOVIEオブジェクトにより、DVDで実現されているようなメニューの挙動を実現することができる。以上がメニュー制御に関連するMOVIEオブジェクトである。
続いて本実施形態におけるIndex Tableの改良について説明する。本実施形態におけるIndex Tableには、FirstPLayINDEX、Audio MenuINDEX、Subtitle MenuINDEX、Title MenuINDEXが追加されている。第１実施形態に示したように、これらのIndexは、3つのモードの何れの動的シナリオからも参照される。
【０１３３】
First PlayINDEXは、BD-ROMのスタートアップ時に参照されるIndexである。FirstPlayオブジェクトのファイル名が本Indexに記述される。
Top MenuINDEX、Audio MenuINDEX、Subtitle MenuINDEX、Title MenuINDEXは、それぞれAudio Menu、Subtitle Menu、Title Menuをダイレクトにコールするようなユーザ操作がなされた際、参照されるIndexである。ユーザによるダイレクトなコールは、ユーザがリモコンにおけるAudio選択キー、Subtitle選択キー、Title選択キーを押下することにより場合になされる。
【０１３４】
以上が本実施形態におけるMOVIEオブジェクトの改良である。続いて、本実施形態における再生装置の改良点について説明する。上述したようなMOVIEオブジェクトを動作させるには、モジュールマネージャ２０に図４８のフローチャートに示すような処理手順を行わせればよい。
メニュー制御を行うべく、本実施形態を示すモジュールマネージャ２０は、図４８に示すような処理手順で分岐制御を行う。本フローチャートが新規なのは、ステップＳ８とステップＳ１１との間にステップＳ２４が挿入されており、このステップＳ２４がYesである場合に、ステップＳ２５〜ステップＳ２８の処理を行って、ステップＳ４に戻る点である。ステップＳ２５〜ステップＳ２８は、メニューの制御を行うシナリオを、カレント動的シナリオに設定するものである。つまり分岐コマンドの分岐先がxxxMenuであるなら(ステップＳ２４でYes)、カレントの動的シナリオiをSuspendし、変数xを退避して(ステップＳ２５)、分岐先Menuに対応するIndexからファイル名を取り出し(ステップＳ２６)、取り出されたファイル名の動的シナリオをカレントの動的シナリオiに設定し(ステップＳ２７)、カレントモードをMOVIEモードに戻す(ステップＳ２８)。その後、カレント動的シナリオを実行してゆく。
【０１３５】
以上のように本実施形態によれば、メニュー制御のための動的シナリオへの分岐は、Index TableのIndexを介した間接参照にて実現されるので、Java（登録商標）モード、Browserモードの実行時においてメニューキーが押下された場合でも、これらメニュー制御用の動的シナリオへと分岐することができる。Java（登録商標）仮想マシン、Browserモードからの音声切り換え、字幕切り換えの実現が可能となり、Java（登録商標）仮想マシン、Browserモードでの再生にあたっても、通常のDVD同様、音声切り換え、字幕切り換えが可能となる。
【０１３６】
(第５実施形態)
第１実施形態において、Java（登録商標）モードのアプリケ−ションプログラムは、再生制御エンジンが提供するプログラミング関数、システム変数を用いてBD-ROMに対する再生制御を記述していた。つまり再生制御の記述に、再生制御エンジンが提供するプログラミング関数、システム変数をダイレクトに用いていた。これに対し第５実施形態におけるJava（登録商標）モードのアプリケ−ションは、Java（登録商標）モジュール１７が提供するメンバー関数を介してBD-ROMに対する制御を記述している。
【０１３７】
どのようなメンバー関数を介して記述するかについて、図４９を参照しながら説明する。図４９は、Java（登録商標）モードに属するクラスのメンバー関数を示す図である。第４層にあたるJava（登録商標）モードは、BD-ROMStatusクラス、BD-ROMPlayBackクラス、BD-ROMEventクラスを含むBD-ROM専用パッケージを有している。
以降、パッケージにおける個々のクラスについて説明する。
【０１３８】
BD-ROMEventクラスは、setEventListener関数を始め複数のメンバー関数を含む。setEventListener関数は、ZZZ.CLASSのインスタンス(Java（登録商標）オブジェクト)が生成された際、Java（登録商標）オブジェクトのメンバー関数の使用宣言を行うものである。つまりJava（登録商標）オブジェクトのメンバー関数は、このsetEventListener関数の使用宣言があって初めて使用が可能となる。TimeEventやUserEventが発生した場合、setEventListener関数にて使用宣言がなされたイベントハンドラが駆動される。
【０１３９】
BD-ROMPlayBackクラスは、PlayPL at CELL()、PlayPL at Mark()、PlayPL at Specified Time()をメンバー関数としてパッケージングしたクラスである。
BD-ROMStatusクラスは、状態取得や状態設定用のメンバー関数、つまり、第１実施形態に示した(i)Get value of Player Status Register関数、(ii)Set value of Player Status Register関数、(iii)Set value of Player Status Register関数、(iii)Get value of General Purpose Register関数、(iv)Get value of General Purpose Registerをメンバー関数としてパッケージングしたクラスである。
【０１４０】
図中の矢印yc1,2,3,4,5は、BD-ROMStatusクラス、BD-ROMPlayBackクラス、BD-ROMEventクラスのメンバー関数を介したPL再生機能、レジスタ設定値の取得／設定を模式的に示す。この矢印に示すように、第５実施形態におけるJava（登録商標）オブジェクトは、Java（登録商標）モジュール１７におけるパッケージを介して、再生制御エンジン１２が提供するプログラミング関数、レジスタ設定値であるプレーヤ変数を利用しているのである。
【０１４１】
図５０は、Java（登録商標）モード内のメンバー関数を介した制御を示す図である。
矢印yp1は、ZZZ.CLASSのインスタンスたるJava（登録商標）オブジェクトの生成を象徴化している。この生成は、Java（登録商標）オブジェクトへの分岐が最初に命じれた際、Java（登録商標）モジュール１７によりなされる。矢印yp2は、Java（登録商標）オブジェクトによるsetEventListener関数の呼出を象徴化している。
【０１４２】
矢印yh1は、イベントオブジェクト内のsetEventListener関数によるイベントハンドラの使用宣言を象徴化して示す。矢印yh2は、イベントオブジェクト内のメンバー関数によるイベントハンドラの駆動を象徴化して示す。つまりJAVAオブジェクトのイベントハンドラは、イベントオブジェクトのメンバー関数(setEventListener関数)からイベントハンドラ使用宣言を受けて使用可能になり、ClipMark、PLMarkにより定義された<U>UserEvent</U>、TimeEventにて駆動される。
【０１４３】
矢印yh3は、駆動されたイベントハンドラによる状態取得を象徴化している。つまり第５実施形態におけるJava（登録商標）オブジェクトのメンバー関数たるイベントハンドラは、Java（登録商標）モードに属するクラスのメンバー関数(get System Parameter Register)を用いて間接的に再生装置の状態取得や状態設定を行う。
矢印yh4は、駆動されたイベントハンドラによるプレイリスト再生を象徴化している。つまりJava（登録商標）オブジェクトのメンバー関数たるイベントハンドラは、BD-ROMPlaybackクラスのメンバー関数を用いてプレイリストの再生を装置に命じるのである。
【０１４４】
以上のように本実施形態によれば、BD-ROMに対する再生制御を、Java（登録商標）モジュール１７におけるパッケージを介して記述するので、一般のJava（登録商標）言語によるプログラミングスタイルと同じスタイルで、BD-ROMに対する再生制御を記述することができる。これにより、映画作品の制作に参入したソフトハウスの制作効率を高めることができる。
尚、本実施形態のパッケージは、BD-ROM規格のライセンス管理を行う団体と、アプリケーションプログラムを開発するソフトハウスとが正式な契約を締結することを条件として、この団体により交付されるようにすることが望ましい。この契約は、BD-ROMに記録された映画作品の品位を汚すようなアプリケーションプログラムを開発しないという禁止条項を含んでいる。このようにすれば、映画作品の品位を汚すという恐れを避けつつ、様々なアプリケーションをソフトハウスに開発させることができる。
【０１４５】
(第６実施形態)
第１実施形態〜第５実施形態においてMOVIEオブジェクトは、Nvigation Button情報における分岐コマンドに基づきMOVIEモードからJava（登録商標）モードへの移行を行ったが、本実施形態では、メニューを介してMOVIEモードからJava（登録商標）モードへの移行を行う。図５１は、第６実施形態に係るメニュー階層を示す図である。図４６のメニュー階層画像と異なるのは、TopMenuからExtra Menuへの移行が可能である点である。Extra Menuとは、Java（登録商標）モード／Browserモードの何れを選択するかをユーザから受け付けるメニューであり、Java（登録商標）モードへの移行を受け付けるボタン、Browserモードへの移行を受け付けるボタンを含む。図５２は、第６実施形態に係るMOVIEオブジェクト、Index Tableを示す図である。本図と図４７との違いは、Extra Menuの挙動を制御するExtraMenuオブジェクト(ExtraMenu OBJ)が存在し、TopMenuのMOVIEオブジェクトから、このExtra Menuオブジェクトへの分岐が可能である点(1)、Index Table内にExtra MenuのIndexがあり、リモコンのメニューキーの押下によりExtra Menuオブジェクトへの分岐が可能である点(2)である。
【０１４６】
メニューキーの押下により、Java（登録商標）モードへと移行するので、現在の再生時点がどこであろうと、Java（登録商標）モードへの移行が行われることになる。Browserモードへの移行も同様である。
以上が、本実施形態におけるMOVIEオブジェクト、Index Tableの改良である。続いて本実施形態におけるJava（登録商標）オブジェクトの改良について説明する。本実施形態におけるJava（登録商標）オブジェクトは、MOVIEモードからJava（登録商標）モードへと移行した際、SPRM(10)を参照して、MOVIEモードにおいてどの再生時点からJava（登録商標）モードへと分岐したかについて知得する。そしてSPRM(10)と、予め具備しているスケジュールテーブルと(図５３)を照合して、Java（登録商標）モードにおける処理を行う。このスケジュールテーブルは、動画データに登場しているキャラクタと、このキャラクタが登場している時間帯とを対にして示すテーブルである。
【０１４７】
Java（登録商標）オブジェクトはこのテーブルを参照して、現在の再生時点にあるキャラクタを知得し、このキャラクタを主人公にしたゲームを実行する。
以上のように本実施形態によれば、メニューを介した分岐により、MOVIEモードからJava（登録商標）モードへと移行するすることができる。また、分岐直前の再生時点を示すSPRM(10)を参照することで、ユーザがどこまで視聴したかに応じて、処理を切り換えることができる。かかる切り換えで、映画作品の再生と緻密に関連するようなJava（登録商標）言語アプリケーションを制作することができる。
【０１４８】
(第７実施形態)
第１実施形態は、MOVIEモードで再生させていたPL内のCELLをJava（登録商標）モードからも再生させるというPLのシェアリングが可能であった。しかしこのシェアリングは、PL情報に、フィルタリング情報を設ける場合に、障害となる。フィルタリング情報とは、AVストリームに多重化されている複数ストリームのうち、どれを有効とし、どれを無効とするかを定める情報である。フィルタリング情報を設ける理由は、以下の通りである。AVストリームには、映像・音声以外にも、Navigation Button情報や副映像ストリームというようなストリームが含まれている。Navigation Button情報は、MOVIEモードにあたっては必要であるが、Java（登録商標）モードやBrowserモードではそうとは限らない。何故ならJava（登録商標）モードでは、Java（登録商標）言語でコンピュ−タ・グラフィックスを描画することができ、Navigation Button情報の力を借りるまでもないからである。
【０１４９】
ところがこのフィルタリング情報をPL情報に設けて、上述したようなPLのシャアリングがなされれば、ストリームの有効、無効を定めるフィルタリング情報もJava（登録商標）モードにおいてシェアリングされてしまう。
Navigation Button情報を有効と扱うようなフィルタリング情報をもつPL情報が、Java（登録商標）モードにおいてシェアリングされるのは望ましくないので、本実施形態では図５４のようにPLを設定する。図５４は、第７実施形態に係るPL情報の構成を示す図である。本図のPL情報には、フィルタリング情報とApp.Flagとが新規に追加されている。
【０１５０】
App Flagは、プレイリストをどのモードの動的シナリオに利用させるかを指定する情報である。アプリケ−ションプログラムの指定は、MOVIEモード、Java（登録商標）モード、Browserモードという3者の中から1つを選ぶことでなされる。このApp.Flagが「00:MOVIEモード」を示しているなら、MOVIEオブジェクトならどこでもこのPL情報を利用することができる。しかしJava（登録商標）オブジェクト、<U>Webpageオブジェクト</U>は、利用することはできない。
【０１５１】
一方App.Flagが「01:Java（登録商標）モード」を示しているなら、Java（登録商標）オブジェクトであればどれでもこのPL情報を引用することができる。「10:Browserモード」を示しているなら、WebPageオブジェクト」が引用することができる。更に「11」を示しているのであればどれでもこのPL情報を引用することができる。そして11を示しているなら、どのモードの動的シナリオであっても、このプレイリスト情報を引用することができる。
【０１５２】
App.Flagにより、1つのPL情報を1つのモードの動的シナリオに利用させ、他のモードの動的シナリオに利用させないという排他制御を実現することができる。かかる排他制御により、PL情報に設定されたフィルタリング情報は、本来用いられるべきモードの動的シナリオにより使用されることになり、意図しないモードでのストリーム再生を防ぐことができる。
【０１５３】
PL情報を設けることで、図５５のようなシェアリングが可能となる。図５５は、デジタルストリーム本体をMOVIEモードと、Java（登録商標）モードとでシェアリングしつつ、PL情報をMOVIEモードと、Java（登録商標）モードとで排他的に用いているという階層的なシェアリングを示す図である。
App.Flagに基づく処理を行うため、本実施形態に係る動的シナリオは、PlayPL関数の呼出に先立ち、再生したいPLのApp.Flagを再生制御エンジン１２から受け取る。そして動的シナリオは、自身が属するモードと、受け取ったApp.Flagに示されるモードとが一致するかを判定し、一致していればPlayPL関数の呼出を行う。一方不一致ならば関数呼出を行わない。動的シナリオ及び再生制御エンジン１２が以上の処理を行うことにより、App.Flagに示されるモードの動的シナリオだけが、PLを再生することになる。
【０１５４】
尚、PlayPL関数の関数呼出時に、動的シナリオは自身が属するモードを再生制御エンジン１２に通知し、再生制御エンジン１２はそのモードが関数呼出先のPLのApp.Flagと一致しているかどうかを判定してもよい。そして一致していれば、そのPlayPL関数を実行し、不一致なら実行しないのである。こうすることで、App.Flagに示されるモードの動的シナリオだけが、PLを再生することになる。
【０１５５】
本実施形態に示したような階層的なシェアリングにより、フィルタリング情報を活用しつつ、MOVIEモードにおけるワンシーンをJava（登録商標）モードで利用するというシーン引用が可能になる。
無論、フィルタリング情報やApp.Flagをストリーム管理情報に設けてもよい。しかしフィルタリング情報をストリーム管理情報に設けると、モード間のAVストリームのシェアリングが一切不可能になってしまい、賢明な策とはいいがたい。他のモードでの引用を実現をしようとするのなら、PL情報にApp.Flag、フィルタリング情報を設けて、AVストリーム本体をシェアリングできる途を残しておくことが望ましい。
【０１５６】
(第８実施形態)
本実施形態は、BD-ROMの製造工程に関する実施形態である。図５６は、第８実施形態に係るBD-ROMの製造工程を示すフローチャートである。
BD-ROMの制作工程は、動画収録、音声収録等の素材作成を行う素材制作工程Ｓ１０１、オーサリング装置を用いて、アプリケーションフォーマットを生成するオーサリング工程Ｓ１０２、BD-ROMの原盤を作成し、プレス・貼り合わせを行って、BD-ROMを完成させるプレス工程１０３を含む。
【０１５７】
これらの工程のうち、BD-ROMを対象としたオーサリング工程は、シナリオ編集工程Ｓ２０１、素材エンコード工程Ｓ２０２、多重化工程Ｓ２０３、フォーマッティング工程Ｓ２０４、エミュレーション工程Ｓ２０５という５つの工程とからなる。
シナリオ編集工程Ｓ２０１とは、企画段階において作成された筋書きを再生装置が理解できる形式に変換する工程である。シナリオ編集の結果は、BD-ROM用シナリオとして生成される。また、このシナリオ編集において、多重化を実現するため多重化パラメータの等も生成される。
【０１５８】
素材エンコード工程Ｓ２０２とは、ビデオ素材、オーディオ素材、副映像素材のそれぞれをエンコードして、ビデオストリーム、オーディオストリーム、副映像ストリームを得る作業である。
多重化工程Ｓ２０３では、素材エンコードにより得られた、ビデオストリーム、オーディオストリーム、副映像ストリームをインターリーブ多重して、これらを1本のデジタルストリームに変換する。
【０１５９】
フォーマッティング工程Ｓ２０４では、BD-ROM向けシナリオを元に、各種情報を作成して、シナリオ及びデジタルストリームをBD-ROMのフォーマットに適合させる。
エミュレーション工程Ｓ２０５では、オーサリング作業の結果が正しいか否かの確認を行う。
上述したシナリオ編集工程において、Java（登録商標）オブジェクト及びWebPageオブジェクトは、Java（登録商標）言語、マークアップ言語を用いた記述が可能であるから、通常のコンピュータ向けのソフトウェアを開発するのと同じ感覚で、開発することができる。よって本実施形態では、このシナリオ制作の効率を高めることができるという効果がある。
【０１６０】
(第９実施形態)
第９実施形態は、本発明に係る記録媒体をBD-RE等の書き換え可能な光ディスクとして実施する場合の実施形態である。第１実施形態に示したAVストリーム−ストリーム管理情報−PL情報といったデータ構造は、BD-REと互換を有しており、BD-REの記録装置は、放送信号のリアルタイムレコーディングを行うことにより、AVストリーム−ストリーム管理情報−PL情報といったデータ構造をBD-REに書き込む。これらが書き込まれたBD-REに対して、ユーザがプログラミングを行い、MOVIEオブジェクト、Java（登録商標）オブジェクト、WebPageオブジェクト、Index Tableを記述してBD-REに書き込めば、第１実施形態に示したアプリケーションフォーマットと同様のフォーマットを、BD-RE上で実現することができる。
【０１６１】
以上のように本実施形態によれば、BD-REの記録装置を所持するユーザに、第１実施形態に示したアプリケーションフォーマットを作成する機会を与えるので、多くのユーザに、第１実施形態に示した映画作品を制作する楽しさを知ってもらうことができる。
(第１０実施形態)
第１０実施形態は、Java（登録商標）オブジェクト、WebPageオブジェクトの動作が可能であったとしても、一定の条件の下に再生装置をコアシステムに固定化してしまう実施形態である。
【０１６２】
つまり以下の事情(1)〜(7)が再生装置側にある場合、ムービーモードからエンハンスドモードへの遷移の途を閉ざすのである。
映画作品の著作権保護のための暗号鍵がある再生装置で暴露され、再生装置が鍵管理センターにより無効化された場合(1)、
ユーザがリッパソフトを利用して記録媒体に記録された映画作品を不正にコピーしたため、映画作品の複製物がネットワーク上に或はされる恐れがある場合(2)、
エンハンスドモード実行には追加料金の支払いがいるにも拘らず、追加料金が支払われない場合(3)、
再生装置のシステムに障害が発生したため、ネットワークから遮断したい場合(4)、
Java（登録商標）仮想マシンやブラウザにバージョンコンフリクションがある場合(5)、
個人情報の漏洩やウィルスソフトの感染の可能性があり、再生装置をネットワークから遮断したい場合(6)、
ネットワークから記録媒体の記録内容を読み取ろうとする不正機器から、記録媒体の映画作品を保護するため、再生装置をネットワークから遮断したい場合(7)、
本実施形態におけるJava（登録商標）オブジェクト、WebPageオブジェクトは以上の事情(1)〜(7)の有無をチェックするようなチェックルーチンをもっている。このチェックルーチンは、再生装置における不正ソフトウェアのインストールやウィルスの感染等の再生装置に対するチェックをネットワーク上のサーバと連携して実行する。このサーバは、再生装置による暗号鍵利用を管理する暗号鍵管理センタ、ユーザに対する課金を行う課金センタ、不正コピー摘発を推進する著作権管理センタ等により運営されるものであり、Java（登録商標）オブジェクト、WebPageオブジェクトがこれらのセンタのサーバと通信を行い、(1)〜(7)の条件が再生装置側に満たされれば、強制的にコアシステムに移行するよう、Java（登録商標）オブジェクト、WebPageオブジェクトはプログラミングされている。
【０１６３】
ここでリッパソフトを用いた不正コピーの可能性の有無は、Java（登録商標）オブジェクト、WebPageオブジェクトにチェックルーチンを組み込むことで実現される。このチェックルーチンは、HDのファイル、フォルダを定期的にセンターに報告し、センタがこれを検閲するという処理で実現される(尚、かかる検閲は映画作品購入時の事前承認が前提である。)。
以上のように本実施形態によれば、ネットワークを介した高付加価値化を実現しつつ、著作権者や再生装置の製造メーカが何等かの事情でネットワーク接続を閉ざすことを希望した場合、再生装置をコアシステムに設定し再生装置をスタンドアローンで利用するようJava（登録商標）オブジェクト、WebPageオブジェクトを記述することができる。特に、再生装置にHDやオペレーティングシステムがインストールされ、パソコンのような再生環境でBD-ROMが利用されている場合に特に有意義になる。尚上述した事情の発生後、適切な処置がとられれば、フルシステムに移行するようにしてもよい。
【０１６４】
(第１１実施形態)
第１１実施形態は、再生装置にHDをもたせてIndex Tableと、新たなPLとを通信部２３にダウンロードさせてHDに書き込ませる実施形態である。HDに新たなIndex Tableが書き込まれれば、PLからPLへの分岐にあたってモジュールマネージャ２０は、BD-ROMに記録されたIndex Tableの代わりにHDに記録されたIndex Tableからファイル名を取り出し、そのファイル名の動画データを読み出させてDVDライクモジュール１６〜BROWSERモジュール１８に実行させる。
【０１６５】
以上のように本実施形態によれば、BD-ROMに記録された特定のPLに道徳・倫理的な問題がある場合、Index Tableと、差し替え映像とを再生装置にダウンロードさせれば、新たなIndex Tableを介した間接参照を再生時に再生装置に行わせることで、問題がある映像の代わりに、差し替え映像をユーザに視聴させることができる。一部差し替えにあたってBD-ROMに記録された動的シナリオを一切書き換えなくてもよいので、かかる問題が生じたとしても、記録媒体を回収するというリスクを避けることができる。
【０１６６】
また差し替え映像でなくても、BD-ROMに記録されている複数Titleのうち、特定のものを再生させたくない場合、BD-ROMに記録されているTitleの順序に入れ替えたい場合も、Index Tableをダウンロードするだけでよい。何故なら、これらの変更にあたって、BD-ROMに記録されている動的シナリオの書き換えは不要だからである。
（備考）
上記実施形態に基づいて説明してきたが、現状において最善の効果が期待できるシステム例として提示したに過ぎない。本発明はその要旨を逸脱しない範囲で変更実施することができる。代表的な変更実施の形態として、以下(A)(B)(C)・・・・のものがある。
【０１６７】
(A)全ての実施形態では、本発明に係る光ディスクをBD-ROMとして実施したが、本発明の光ディスクは、記録される動的シナリオ、Index Tableに特徴があり、この特徴は、BD-ROMの物理的性質に依存するものではない。動的シナリオ、Index Tableを記録しうる記録媒体なら、どのような記録媒体であってもよい。例えば、DVD-ROM,DVD-RAM,DVD-RW,DVD-R,DVD+RW,DVD+R,CD-R,CD-RW等の光ディスク、PD,MO等の光磁気ディスクであってもよい。また、コンパクトフラッシュ（登録商標）カード、スマートメディア、メモリスティック、マルチメディアカード、PCM-CIAカード等の半導体メモリカードであってもよい。フレシキブルディスク、SuperDisk,Zip,Clik!等の磁気記録ディスク(i)、ORB,Jaz,SparQ,SyJet,EZFley,マイクロドライブ等のリムーバルハードディスクドライブ(ii)であってもよい。更に、機器内蔵型のハードディスクであってもよい。
【０１６８】
動的シナリオ、Index Table、プレイリスト情報は、AVストリーム及びストリーム管理情報と別々の記録媒体に記録されてもよい。そしてこれらをパラレルに読み出して、1つの映像編集として再生させてもよい。
(B) 全ての実施形態における再生装置は、BD-ROMに記録されたAVストリームをデコードした上でTVに出力していたが、再生装置をBD-ROMドライブのみとし、これ以外の構成要素をTVに具備させてもい、この場合、再生装置と、TVとをIEEE1394で接続されたホームネットワークに組み入れることができる。また、実施形態における再生装置は、テレビと接続して利用されるタイプであったが、ディスプレィと一体型となった再生装置であってもよい。更に、各実施形態の再生装置において、処理の本質的部分をなす部分のみを、再生装置としてもよい。これらの再生装置は、何れも本願明細書に記載された発明であるから、これらの何れの態様であろうとも、第１実施形態〜第１１実施形態に示した再生装置の内部構成を元に、再生装置を製造する行為は、本願の明細書に記載された発明の実施行為になる。第１実施形態〜第１１実施形態に示した再生装置の有償・無償による譲渡(有償の場合は販売、無償の場合は贈与になる)、貸与、輸入する行為も、本発明の実施行為である。店頭展示、カタログ勧誘、パンフレット配布により、これらの譲渡や貸渡を、一般ユーザに申し出る行為も本再生装置の実施行為である。
【０１６９】
(C)図２９〜図３１、図３９、図４８に示したプログラムによる情報処理は、ハードウェア資源を用いて具体的に実現されていることから、上記フローチャートに処理手順を示したプログラムは、単体で発明として成立する。全ての実施形態は、再生装置に組み込まれた態様で、本発明に係るプログラムの実施行為についての実施形態を示したが、再生装置から分離して、第１実施形態〜第１１実施形態に示したプログラム単体を実施してもよい。プログラム単体の実施行為には、これらのプログラムを生産する行為(1)や、有償・無償によりプログラムを譲渡する行為(2)、貸与する行為(3)、輸入する行為(4)、双方向の電子通信回線を介して公衆に提供する行為(5)、店頭展示、カタログ勧誘、パンフレット配布により、プログラムの譲渡や貸渡を、一般ユーザに申し出る行為(6)がある。
【０１７０】
(D)図２９〜図３１、図３９、図４８のフロ−チャ−トにおいて時系列に実行される各ステップの「時」の要素を、発明を特定するための必須の事項と考える。そうすると、これらのフロ−チャ−トによる処理手順は、再生方法の使用形態を開示していることがわかる。各ステップの処理を、時系列に行うことで、本発明の本来の目的を達成し、作用及び効果を奏するよう、これらのフロ−チャ−トの処理を行うのであれば、本発明に係る記録方法の実施行為に該当することはいうまでもない。
【０１７１】
(E)Java（登録商標）オブジェクトは、CGを描画するようなアプリケーションであったが、Java（登録商標）言語で記述されるアプリケーションであればどのようなものであってもよい。例えば電子商取引(EC(Electronic Commerce))のクライアントアプリケーションであってもよい。映画作品の動画を交えながら商品案内を行うようなJava（登録商標）オブジェクトを実現することができるので、映画作品に関連するキャラクタビジネスを成功に導くことができる。またJava（登録商標）オブジェクトのアプリケーションは、ネット対戦型のオンラインゲームであってもよい。更に、Java（登録商標）オブジェクトにてCGにて表現されるキャラクタは、エージェントとしての処理を行うものであてもよい。エージェントとしてのキャラクタは、再生装置のヘルプ機能を実現するものであったり、ユーザに助言を行うものでもよい。
【０１７２】
Java（登録商標）オブジェクトが用いるようなライブラリィをBD-ROMに記録しておいてもよい。そのようなライブラリィには、PNGファイル、アニメーションデータを格納したMNGファイル、ストリームに関連した情報を格納したXMLファイル、HTML/SMILファイルがある。特に、アニメーションデータを格納したMNGファイルがラィブラリとして記録されている場合、上述したようなフクロウのコンピュ−タ・グラフィックスを簡単に描画することができる。
【０１７３】
WebPageオブジェクトがWEBサイトから取得する情報は、WEBページであってもよいし、画像データであってもよい。また、AVストリーム、ストリーム管理情報、PL情報であってもよい。またWebPageオブジェクトは、検索エンジンと連携して処理を行ってもよい。
更に、エンハンスドモードにおける記述言語は、C++やC#言語であってもよい。
(F)尚第１実施形態における図１８の一例は、本BD-ROMにおける再生制御の記述技法の一例にすぎない。他の記述技法としては、AVストリーム中のNavigation Button情報からダイレクトにJava（登録商標）オブジェクトへと分岐するという記述技法がある。図５７は、AVストリーム中のNavigation Button情報からダイレクトにJava（登録商標）オブジェクトへと分岐するという再生制御の一例である。かかる分岐を行うようNavigation Button情報を記述すれば、あるキャラクタが登場しているシーンから、そのキャラクタを主役としたゲームに分岐するというシーン展開を、自由に記述することができるので、シーン展開の表現の幅が広がる。
(G)第５実施形態では、Chapterを一覧表示するためのMenu(Chapter Menu)と、これの挙動を制御するMOVIEオブジェクトとをBD-ROMに記録しておき、Top Menuから分岐できるようにしてもよい。またリモコンキーのChapterキーの押下により呼出されるようにしてもよい。
【０１７４】
(H)BD-ROMに記録するにあたって、AVストリームを構成する各TSパケットには、拡張ヘッダを付与しておくことが望ましい。拡張ヘッダは、TP_extra_headerと呼ばれ、『Arribval_Time_Stamp』と、『copy_permission_indicator』とを含み4バイトのデータ長を有する。TP_extra_header付きTSパケット(以下EX付きTSパケットと略す)は、32個毎にグループ化されて、3つのセクタに書き込まれる。32個のEX付きTSパケットからなるグループは、6144バイト(=32×192)であり、これは3個のセクタサイズ6144バイト(=2048×3)と一致する。3個のセクタに収められた32個のEX付きTSパケットを”Aligned Unit”という。
【０１７５】
IEEE1394を介して接続されたホームネットワークでの利用時において、再生装置２００は、以下のような送信処理にてAligned Unitの送信を行う。つまり送り手側の機器は、Aligned Unitに含まれる32個のEX付きTSパケットのそれぞれからTP_extra_headerを取り外し、TSパケット本体をDTCP規格に基づき暗号化して出力する。TSパケットの出力にあたっては、TSパケット間の随所に、isochronousパケットを挿入する。この挿入箇所は、TP_extra_headerのArribval_Time_Stampに示される時刻に基づいた位置である。TSパケットの出力に伴い、再生装置２００はDTCP_Descriptorを出力する。DTCP_Descriptorは、TP_extra_headerにおけるコピー許否設定を示す。ここで「コピー禁止」を示すようDTCP_Descriptorを記述しておけば、IEEE1394を介して接続されたホームネットワークでの利用時においてTSパケットは、他の機器に記録されることはない。
【０１７６】
(I)AVストリームにコピー世代情報(CGI)を埋め込んで、AVストリームの制限付きコピーを認めてもよい。コピー世代情報には、自由にコピー可能な旨を示す『copy free』と、１世代の複製物の記録が許可されている旨を示す『one generation copy』と、複製物の更なる複製は禁止されている旨を示す『no more copy』と、一切のコピーを認めない旨を示す『never copy』とがある。つまり、コンテンツに埋め込まれたコピー世代情報が『copy free』や『one generation copy』を示している場合のみ、HDからDVDへのバックアップを行い、『no more copy』『never copy』を示している場合、バックアップは行わないのである。
【０１７７】
(J)AVストリームに権利管理情報は付加されている場合、権利管理情報に定められた利用条件において、AVストリームのコピーを行ってもよい。
権利管理情報において回数指定で、コピーの許可条件が規定されているなら、この条件内でコピーを行う。有効期間の指定(年月日の指定がでコピーの条件が規定されているのならこの条件内でコピーを行う。
【０１７８】
(K)コピー処理に、移動やマイグレイト、チェックアウトといったバリエーションが存在する場合、これらバリエーション毎に、定められた利用条件に基づきバックアップを行っても良い。移動とは、コピー元のコンテンツの削除が伴うコピー処理であり、複数記録媒体間でコンテンツを移動する場合に用いられる。
マイグレイトとは、コピー先記録媒体において、利用条件情報を生成させることを前提にしたコピー処理である。
【０１７９】
チェックアウトとは、回数制限されたコピーの一種であり、コピー回数を1回デクリメントした上でコンテンツのコピーが実行される。一般にいう回数制限付きのコピーと、チェックアウトとの違いは、コピー回数のインクリメントが可能である点である。コピー回数のインクリメントは、コピーにより記録媒体に記録されたコンテンツを再生不能にするという処理("チェックイン"と呼ばれる。)を行った後でなされる。
【０１８０】
(L)各実施形態におけるAVストリームは、DVD-Video規格、DVD-Video Recording規格のVOB(Video Object)であってもよい。VOBは、ビデオストリーム、オーディオストリームを多重化することにより得られたISO/IEC13818-1規格準拠のプログラムストリームである。また、各実施形態におけるAVストリームを、”AVClip”と呼んでもよい。この場合、ストリーム管理情報はClip情報と呼ぶことになる。またAVストリームにおけるビデオストリームは、MPEG4やWMV方式であってもよい。更にオーディオストリームは、Linear-PCM方式、Dolby-AC3方式、MP3方式、MPEG-AAC方式であってもよい。
【０１８１】
(M)各実施形態におけるCell情報は、時間情報により再生区間の開始点、終了点を指定していたが、BD-ROMにおける論理アドレスを用いて再生区間の開始点、終了点を指定してもよい。また、各実施形態におけるCELLを”PlayItem”と呼んでもよい。
(N)ストリーム管理情報におけるTMAPは、EP_mapと呼んでもよい。この場合、ACCESS UNITの再生開始時刻を、ACCESS UNIT先頭に位置するピクチャデータのタイムスタンプ(Presentation Time Stamp)で表現するのが望ましい。またACCESS UNITにおけるアドレスは、PESパケットの連番(SPN(Serial Packet Number))で表現するのが望ましい。
【０１８２】
(O)再生装置の構成において、動的シナリオメモリ１５には、カレントの動的シナリオのみを格納し、静的シナリオメモリ１１には、カレントのストリーム管理情報、カレントのPL情報のみを格納するとしたが、キャッシュメモリのように、複数のシナリオ、ストリーム管理情報、PL情報を予め格納しておいてもよい。こうすれば、これらのデータをBD-ROMから読み出すまでのタイムラグを短くすることができる。またBACKUPメモリ１４は、スタック式にレジスタの格納値を退避しておくとしたが、メモリ規模との関連を考えると、退避すべき格納値は一段とするのが現実的である。
【０１８３】
(P)PLを構成する2以上のCELLを連続再生させるには、これらのCELLがシームレス接続されよう、加工を施しておくことが望ましい。
シームレス接続のための加工は、動画データにおいて先行する側の再生区間の終端部と、後続する側の再生区間の先端部とを複製することにより、予め複製部分を作成しておき、これらを再エンコードすることで、実現される。尚、シームレス接続のために作成された複製部分を、Bridge-Clipと呼んでもよい。
【０１８４】
ここで終端部と、先端部は、以下のように設定するのが望ましい。
つまり先行するCELL情報#xのうち先行再生区間のOut点を含むACCESS UNITから、2個先のACCESS UNITまでを終端部とし、また後続するCELL情報#x+1のうち後続再生区間のIn点を含むACCESS UNITを先端部とするのが望ましい。終端部及び先端部をこのように定める根拠は、同出願人の先行技術米国特許USP,6148,140公報により記載されているので、詳細に関してはこの公報を参照されたい。
【０１８５】
更に、シームレス接続のために作成された複製部分については、シームレス接続情報を設けておくことが望ましい。シ−ムレス接続情報とは、最初のビデオフレームの再生開始時刻、最後のビデオフレームの再生終了時刻、オーディオギャップの開始時刻、オーディオギャップの時間長、オーディオギャップの位置情報を含む情報である。かかるシームレス接続情報が定義されていれば、最初のビデオフレームの再生開始時刻、最後のビデオフレームの再生終了時刻から、両区間のタイムスタンプの差(STC-Offset)を計算して、再生装置に設定することができる。また、これらオーディオギャップの情報を参照して、オーディオデコーダを制御すれば、1つの区間から別の区間への移行する際の音声の途切れを防止することができる。
【０１８６】
(Q)各実施形態におけるTitle(映画作品)は、テレビ映画、ゲームソフト等、映像をもって表現されている全ての著作物を意味する。何故なら、各実施形態における映像編集は、ブラウン管や液晶での表示など、視覚的又は視聴覚的効果を生じさせる方法で表現され(i)、BD-ROMという有体物に、何らかの方法で結びつくことにより同一性を保ちながら存続しており(ii)、かつ再現が可能な状態におかれているので(iii)、映画の著作物の存在形式としての要件を満たすからである。
【０１８７】
しかし本発明の本質的要素は、この映像編集であることに限定されるものではないので、本発明の動画データは、監視カメラの映像や家庭用ビデオカメラの映像であってもよい。
(R)各実施形態におけるBD-ROMは、基礎出願に記載されたHD-DVD,BD-ROMのことをいう。また各実施形態における再生制御エンジン１２は、基礎出願の明細書に開示されたBD-ROM-FFプロセッサ３０２５、シナリオプロセッサ３０４(図３５)に該当する。またモジュールマネージャ２０は、プレイバックコントローラ３０２４(図３５)に該当し、DVDライクモジュール１６〜BROWSERモジュール１８は、DVD互換モジュール３０２１、ブラウザモジュール３０２２、Java（登録商標）モジュール３０２３が該当する。これらは基礎出願に記載されたものであるから、これらの技術事項についての優先権主張は、正当なものである。
【０１８８】
(S)Java（登録商標）言語により描画されるコンピュ−タ・グラフィックス(フクロウの絵等)は、NURBS(Non Uniform Rational B-Splline)形式のデータで作成されてもよい。NURBSとは、ベジェ曲線の束であって(このようなベジェ曲線の束はB-Spllineと呼ばれる。)、それぞれのベジェ曲線の曲率が不均一なものをいう。
またポリゴン形式で作成されてもよい。ポリゴン形式とは、多面体近似により特定の立体形状を表現するよう規定されたデータ形式であり、アメリカ・オートキャド社が規定したData eXcange Format(DXF)を初め、HRC,WAVEFRONT,IV,VRML形式等のものが広く知られている。
【０１８９】
また形状表面の模様については、テクスチャマッピングにより付されてもよい。レンダリングエンジン２２は、上述したような三次元形状データの投影像を、作成してイメージデコーダにデコードさせる。この際レンダリングエンジン２２は、テクスチャマッピングを行う。テクスチャマッピングとは、平面又は曲面に、静止画、ビットマップ等のテクスチャパターンを貼り付けて表示させる処理をいう。また光源位置と、各三次元形状データにおける各平面との距離や位置関係に基づいて制御点間の平面の色、明るさを算出して、この明るさにより、スクリーン上の投影像の色・明るさを調整する。このように、光源位置と、各三次元形状データにおける各平面との距離や位置関係に基づいて、制御点間の平面の色、明るさを算出する処理はシェーディング処理といい、このようなシェーディング処理がなされることにより、三次元形状データの投影像には、陰影が付され、投影像に立体感が現れる。以上のような処理にて、専用のゲームマシン並みのコンピュ−タ・グラフィックスが、映画の動画像の脇に表示されることになる。
【０１９０】
フクロウの飛翔等のキャラクタの動きは、三次元形状データを一定の規則性に基づき変化させることでなされる。三次元形状データは、XXX.M2TSを構成するエクステントの合間(図７の『他のファイル』にあたる箇所)に記録しておくことが望ましい。こうすればAVストリームと、三次元形状データとをまとめて読み出せる。
(T)各実施形態では、ユーザによる映像編集の選択操作を、リモコンから受け付けたが、再生装置のフロントパネルから受け付けてもよい。キーボード、タッチパネル、マウスやパッド、トラックボール等の入力機器にてユーザの指定を受け付けてもよい。この場合は、クリック操作、ドラッグ操作でこれらの操作を受け付けてもよい。
【０１９１】
(U)各実施形態における映像編集は、アナログ放送で放送されたアナログ映像信号をエンコードすることにより得られたものでもよい。デジタル放送で放送されたトランスポートストリームから構成されるストリームデータであってもよい。
またビデオテープに記録されているアナログ／デジタルの映像信号をエンコードしてコンテンツを得ても良い。更にビデオカメラから直接取り込んだアナログ／デジタルの映像信号をエンコードしてコンテンツを得ても良い。他にも、配信サーバにより配信されるデジタル著作物でもよい。
【０１９２】
(V)Java（登録商標）モジュール１７は、衛星放送受信のために機器に組み込まれたJava（登録商標）プラットフォームであってもよい。Java（登録商標）モジュール１７がかかるJava（登録商標）プラットフォームであれば、本発明に係る生成装置は、MHP用STBとしての処理を兼用することになる。
更に携帯電話の処理制御のために機器に組み込まれたJava（登録商標）プラットフォームであってもよい。かかるJava（登録商標）モジュール１７がかかるJava（登録商標）プラットフォームであれば、本発明に係る生成装置は、携帯電話としての処理を兼用することになる。
【０１９３】
またBROWSERモジュール１８は、MicroSoft社のInternet Explore等、パソコン組み込み型のブラウザソフトであってもよい。
(W)図１２に示したレイアモデルにおいて、Java（登録商標）モードの上にブラウザモード及びMOVIEモードを配置してもよい。特にMOVIEモードでの動的シナリオの解釈や、動的シナリオに基づく制御手順の実行は、再生装置に対する負担が軽いので、MOVIEモードをJava（登録商標）モード上で実行させても何等問題は生じないからである。また再生装置や映画作品の開発にあたって、動作保証が1つのモードで済むからである。
【０１９４】
更に3つのモードを設けず、Java（登録商標）モードだけでJava（登録商標）モードの処理を実行してもよい。第２実施形態に示したように、Java（登録商標）モードでもPLの再生と同期した再生制御が可能になるから、強いてMOVIEモードを設けなくてもよいという理由による。更に動的シナリオにおける制御は、MOVIEモードだけでも、ブラウザモードだけでもよい。
【産業上の利用可能性】
【０１９５】
本発明に係る記録媒体は、映画作品を構成する動画データの付加価値を効果的に高めるので、より魅力ある映画作品を市場に供給することができ、映画市場や民生機器市場を活性化させることができる。故に本発明に係る記録媒体、再生装置は、映画産業や民生機器産業において高い利用可能性をもつ。
【図面の簡単な説明】
【０１９６】
【図１】本発明に係る記録媒体の、使用行為についての形態を示す図である。
【図２】BD-ROMの構成を示す図である。
【図３】ディレクトリ構造を用いてBD-ROMの応用層フォーマットを表現した図である。
【図４】機能的な観点から、ファイルを分類した場合の分類図である。
【図５】BD-ROMが対象としているソフトウェアのレイアモデルを示す図である。
【図６】AVストリームがどのように構成されているかを模式的に示す図である。
【図７】AVストリームがどのようにBD-ROMに記録されるかを模式的に示す図である。
【図８】ストリーム管理情報の内部構成を示す図である。
【図９】PL情報の内部構成を示す図である。
【図１０】PL情報による間接参照を模式化した図である。
【図１１】図１０に示したPLと、別のPLを定義する場合の一例を示す図である。
【図１２】レイヤモデルの第４層(動的シナリオ)における再生モードを示す図である。
【図１３】3つのモードの動的な再生制御にて作成される映画作品を示す図である。
【図１４】Navigation Button情報の構成を示す図である。
【図１５】AVストリームに多重化されているNavigation Button情報でボタンの制御を行う場合の一例を示す図である。
【図１６】AVストリーム中のNavigation Button情報が図１５のように設定されている場合のMOVIEオブジェクトの一例を示す。
【図１７】図１６のMOVIEオブジェクトのコマンドにより分岐がなされた場合のJava（登録商標）オブジェクトの記述例である。
【図１８】MOVIEオブジェクトとJava（登録商標）オブジェクトとの関連を示す図である。
【図１９】MOVIEオブジェクトにおけるキャラクタ紹介と、Java（登録商標）モードにおけるゲームとから構成されるタイトルを模式的に示す図である。
【図２０】Java（登録商標）オブジェクトからのPL再生を模式的に示した図である。
【図２１】MOVIEモードで使用されたいたPLとは別のPLを用いることによる、シーン引用を示す図である。
【図２２】WebPageオブジェクトの記述例である。
【図２３】（ａ）INFO.<U>BD</U>の内部構成を示す図である。  （ｂ）Index TableのIndexを示す図である。
【図２４】（ａ）複数の動的シナリオ(001.MOVIE,002.MOVIE,003.MOVIE・・・・、001.CLASS,002.CLASS,003.CLASS・・・・・・)が記録されているBD-ROMを示す図である。  （ｂ）BD-ROMに図２４（ａ）に示すような複数動的シナリオが記述されている場合のIndex Tableの記述例を示す図である。
【図２５】（ａ）図２４（ｂ）のようにIndex Tableが記述された場合のフルシステムにおける間接参照を示す図である。  （ｂ）コアシステムにおける間接参照を示す図である。
【図２６】図１８に示したMOVIEオブジェクトからJava（登録商標）オブジェクトへの分岐がどのように行われるかを模式的に示す図である。
【図２７】コアシステムの再生装置に図１８に示したシナリオが記録されたBD-ROMが装填された場合、どのような分岐が行われるかを示す図である。
【図２８】本発明に係る再生装置の内部構成を示す図である。
【図２９】モジュールマネージャ２０による処理手順を示すフローチャートである。
【図３０】モジュールマネージャ２０による処理手順を示すフローチャートである。
【図３１】再生制御エンジン１２によるPLPlay関数の実行手順を示すフローチャートである。
【図３２】第２実施形態に係るBD-ROMのファイル構成を示す図である。
【図３３】PLMark及びClipMarkの共通構成を示す図である。
【図３４】（ａ）（ｂ）プレイリスト#1の再生中に出現するTimeEventを定義する場合のPLMarkの記述例を示す図である。
【図３５】プレイリスト#1の再生中においてUserEventを定義する場合のPLMarkの記述例を示す図である。
【図３６】TimeEventにより駆動されるハンドラの一例を示す図である。
【図３７】UserEventにより駆動されるハンドラの一例を示す図である。
【図３８】図３６、図３７のプレイリストにて再生されるピクチャと、イベントハンドラにより描画されるイメージとを合成して、イベントハンドラによる条件分岐を描いた図である。
【図３９】本実施形態に係る再生制御エンジン１２の処理手順を示す図である。
【図４０】Backward Eventの技術的意義を説明するための模式図である。
【図４１】（ａ）Java（登録商標）モードにおいて、PL再生が開始した時点の表示画面の一例である。  （ｂ）PLの再生時点が時刻t1に到達した場合の表示画面の一例である。  （ｃ）PLの再生時点が時刻t2に到達した場合の表示画面の一例である。
【図４２】（ａ）巻戻しによりPLの再生時点が時刻t1に到達した場合の表示画面の一例である。  （ｂ）巻戻しによりPLの再生時点が時刻t0に到達した場合の表示画面の一例である。  （ｃ）PLの再生時点が時刻t1に再到達した場合の表示画面の一例である。
【図４３】早送り時でのTime Event発生を模式的に示す図である。
【図４４】（ａ）Java（登録商標）モードにおいて、PL再生が開始した時点の表示画面の一例である。  （ｂ）PLの再生時点が時刻t1に到達した場合の表示画面の一例である。  （ｃ）時刻t2への到達時に、早送りを行った表示画面の一例である。
【図４５】Pause Eventの発生を模式的に描いた図である。
【図４６】BD-ROMにより実現されるメニュー階層を示す図である。
【図４７】階層をもったメニューを動作させるためのMOVIEオブジェクトを示す図である。
【図４８】第４実施形態に係るモジュールマネージャ２０の処理手順を示す図である。
【図４９】Java（登録商標）モードに属するクラスのメンバー関数を示す図である。
【図５０】Java（登録商標）モード内のメンバー関数を介した制御を示す図である。
【図５１】第６実施形態に係るメニュー階層を示す図である。
【図５２】第６実施形態に係るMOVIEオブジェクト、Index Tableを示す図である。
【図５３】スケジュールテーブルの一例を示す図である。
【図５４】第７実施形態に係るPL情報の構成を示す図である。
【図５５】デジタルストリーム本体をMOVIEモードと、Java（登録商標）モードとでシェアリングしつつ、PL情報をMOVIEモードと、Java（登録商標）モードとで排他的に用いているという階層的なシェアリングを示す図である。
【図５６】第８実施形態に係るBD-ROMの製造工程を示すフローチャートである。
【図５７】AVストリーム中のNavigation Button情報からダイレクトにJava（登録商標）オブジェクトへと分岐するという再生制御の一例である。
【符号の説明】
【０１９７】
１    BD-ROMドライブ
２    トラックバッファ
３    デマルチプレクサ
４    ビデオデコーダ
５    ピクチャプレーン
６    オーディオデコーダ
７    イメージメモリ
８    イメージプレーン
９    イメージデコーダ
１０    加算器
１１    静的シナリオメモリ
１２    再生制御エンジン
１３    プレーヤレジスタ
１４    BACKUPメモリ
１５    動的シナリオメモリ
１６    DVDライクモジュール
１７    Java（登録商標）モジュール
１８    BROWSERモジュール
１９    U0コントローラ
２０    モジュールマネージャ
２１    ディスパッチャ
２２    レンダリングエンジン
２３    通信部
２４    ストリーム
１００    BD-ROM
２００    再生装置
３００    テレビ
３０４    シナリオプロセッサ
４００    リモコン
【図１】
2006277932.tif 000003
【図２】
2006277932.tif 000004
【図３】
2006277932.tif 000005
【図４】
2006277932.tif 000006
【図５】
2006277932.tif 000007
【図６】
2006277932.tif 000008
【図７】
2006277932.tif 000009
【図８】
2006277932.tif 000010
【図９】
2006277932.tif 000011
【図１０】
2006277932.tif 000012
【図１１】
2006277932.tif 000013
【図１２】
2006277932.tif 000014
【図１３】
2006277932.tif 000015
【図１４】
2006277932.tif 000016
【図１５】
2006277932.tif 000017
【図１６】
2006277932.tif 000018
【図１７】
2006277932.tif 000019
【図１８】
2006277932.tif 000020
【図１９】
2006277932.tif 000021
【図２０】
2006277932.tif 000022
【図２１】
2006277932.tif 000023
【図２２】
2006277932.tif 000024
【図２３】
2006277932.tif 000025
【図２４】
2006277932.tif 000026
【図２５】
2006277932.tif 000027
【図２６】
2006277932.tif 000028
【図２７】
2006277932.tif 000029
【図２８】
2006277932.tif 000030
【図２９】
2006277932.tif 000031
【図３０】
2006277932.tif 000032
【図３１】
2006277932.tif 000033
【図３２】
2006277932.tif 000034
【図３３】
2006277932.tif 000035
【図３４】
2006277932.tif 000036
【図３５】
2006277932.tif 000037
【図３６】
2006277932.tif 000038
【図３７】
2006277932.tif 000039
【図３８】
2006277932.tif 000040
【図３９】
2006277932.tif 000041
【図４０】
2006277932.tif 000042
【図４１】
2006277932.tif 000043
【図４２】
2006277932.tif 000044
【図４３】
2006277932.tif 000045
【図４４】
2006277932.tif 000046
【図４５】
2006277932.tif 000047
【図４６】
2006277932.tif 000048
【図４７】
2006277932.tif 000049
【図４８】
2006277932.tif 000050
【図４９】
2006277932.tif 000051
【図５０】
2006277932.tif 000052
【図５１】
2006277932.tif 000053
【図５２】
2006277932.tif 000054
【図５３】
2006277932.tif 000055
【図５４】
2006277932.tif 000056
【図５５】
2006277932.tif 000057
【図５６】
2006277932.tif 000058
【図５７】
2006277932.tif 000059