(57)【要約】記録媒体（ＢＤ−ＲＯＭ）には、ビデオストリーム、オーディオストリームを多重化することにより得られたＡＶストリームが記録されている。ＭＯＶＩＥオブジェクトは、再生装置向けのコマンドを用いて記述された動画データの再生手順を示すシナリオである。このＭＯＶＩＥオブジェクトとは別に、エンハンスドモードのシナリオ（Ｊａｖａオブジェクト、ＷｅｂＰａｇｅオブジェクトが記録されている。このシナリオには、Ｊａｖａ言語、マークアップ言語で記述されており、再生装置に対する制御手順を示す。Ｊａｖａオブジェクト、ＷｅｂＰａｇｅオブジェクトは、ＭＯＶＩＥオブジェクトにより値が設定されたレジスタ設定値を引き継いだり、ＭＯＶＩＥオブジェクトにて再生された動画データの一部を引用することができる。
2004025651.tif 000002
【特許請求の範囲】
【請求項１】
動画データ、複数のプログラム、テーブルが記録された記録媒体であって、
各プログラムは、
動画データの再生制御手順を示し
テーブルは、記録媒体における各プログラムの識別情報（１）、各プログラムがムービーモード及びエンハンスドモードの何れに属するかを示す情報（２）を含んでおり、
何れか１つのプログラムは、分岐コマンドを含み、
前記分岐コマンドは、テーブルを介した間接参照の形式で、分岐先を指定している
ことを特徴とする記録媒体。
【請求項２】
前記テーブルは、複数プログラムのそれぞれに対応した複数のインデックスを含み、
各インデックスは、
対応するプログラムがエンハンスドモードに属するか、ムービーモードに属するかを示しており、
前記分岐コマンドにおける間接参照の形式とは、
インデックスについてのラベルを用いて、分岐先プログラムを指定することである
ことを特徴とする請求項１記載の記録媒体。
【請求項３】
前記テーブルにおけるインデックスには、予備のインデックスがあり、
予備のインデックスは、
ムービーモードしか実行できない再生装置において、エンハンスドモードのプログラムへの分岐が命じられた場合に、エンハンスドモードのプログラムの代わりとなるムービーモードプログラムと対応している
ことを特徴とする請求項２記載の記録媒体。
【請求項４】
前記各ムービーモードのプログラム及びエンハンスドモードのプログラムのそれぞれは、２以上の実行モジュールのそれぞれにより実行され、
２以上の実行モジュールは、共通の制御階層上のレジデントプログラムであり、
前記再生制御手順は、
当該制御階層から供給される関数を用いて記述されている
ことを特徴とする請求項１記載の記録媒体。
【請求項５】
前記制御関数から供給される関数は、
予め定められた再生経路に基づく再生制御を再生装置に行わせる関数（１）、
再生装置におけるレジスタに所定の値を設定する関数（２）、
再生装置におけるレジスタの設定値を取得する関数（３）のうち何れかである
ことを特徴とする請求項４記載の記録媒体。
【請求項６】
前記分岐とは、ムービーモードプログラムからエンハンスドモードプログラムへの分岐であり、
ムービーモードプログラムによる再生制御手順とは、再生装置のレジスタへの値の設定であり、
エンハンスドモードプログラムによる再生制御手順とは、レジスタに設定された値を、参照した処理である
ことを特徴とする請求項５記載の記録媒体。
【請求項７】
前記レジスタ設定値とは、
再生装置における音声設定（１）、再生装置における副映像設定（２）、再生装置におけるアングル設定（３）、現在再生されているタイトル（４）、現在再生されているチャプター（５）、現在の再生時点（６）の何れかを示す値である
ことを特徴とする請求項６記載の記録媒体。
【請求項８】
前記記録媒体にはプレイリスト情報が記録されており、
プレイリスト情報は、動画データにおける再生区間を示す情報を、再生順序に従って配列することにより再生経路を定義する情報であり、
制御階層から供給される関数による再生制御は、
プレイリスト情報に示される再生経路に基づく
ことを特徴とする請求項５記載の記録媒体。
【請求項９】
前記プログラムは、制御階層から供給される再生制御関数を呼び出すための関数呼出を含み、
この関数呼出には、２つの引数があり、
そのうち１つ目の引数は、プレイリスト情報を指定するものであり、
２つ目の引数は、再生経路における開始点を指定するものである
ことを特徴とする請求項８記載の記載の記録媒体。
【請求項１０】
前記再生手順における開始点指定は、
再生区間、再生時刻、チャプターの何れかを用いて行われる
ことを特徴とする請求項９記載の記録媒体。
【請求項１１】
前記記録媒体においてプレイリスト情報は、フラグが付加されて記録されており、
フラグは、本プレイリスト情報を用いた動画データの再生を、ムービーモードで許可するか、エンハンスドモードで許可するかを示す
ことを特徴とする請求項８記載の記録媒体。
【請求項１２】
前記分岐とは、ムービーモードプログラムからエンハンスドモードプログラムへの分岐であり、
ムービーモードプログラムによる動画データの再生手順とは、
プレイリスト情報により示される再生経路における開始点を指定して、再生を行わせることであり、
エンハンスドモードプログラムによる動画データの再生手順とは、
同じプレイリスト情報により示される再生経路における開始点を指定して、再生を行わせることである
ことを特徴とする請求項８記載の記録媒体。
【請求項１３】
前記エンハンスモードとは、仮想マシンに、プログラムを実行させるモードであり、
エンハンスドモードのプログラムは、仮想マシン向けプログラミング言語により記述される
ことを特徴とする請求項１記載の記録媒体。
【請求項１４】
前記エンハンスドモードのプログラムにおいて、
前記再生制御手順は、動画データの再生中において、再生装置で発生するイベントをトリガにして実行される
ことを特徴とする請求項１３記載の記録媒体。
【請求項１５】
前記イベントとは、
現在の再生位置が、動画データの再生時間軸における所定の時点に到達したことを示すイベント（ｉ）、
動画データの再生時間軸において、所定の時間間隔だけ、現在の再生位置が進行したことを示すイベント（ｉｉ）の何れかである
ことを特徴とする請求項１４記載の記録媒体。
【請求項１６】
前記記録媒体はマーク情報が記録されており、
マーク情報は、
前記再生時間軸における所定の時点、及び、所定の時間間隔を定義する情報である
ことを特徴とする請求項１５記載の記録媒体。
【請求項１７】
前記イベントとは、
動画データの再生時間軸上の所定の時間帯において、ユーザ操作がなされたことを示すイベントである
ことを特徴とする請求項１３記載の記録媒体。
【請求項１８】
前記ユーザ操作とは、
動画データの再生時において、早送り、巻戻し、ポーズが命じられたことを示す
ことを特徴とする請求項１７記載の記録媒体。
【請求項１９】
前記ムービーモードのプログラムは、ボタンコマンドを含み
ボタンコマンドは、エンハンスドモードのプログラムへと分岐するコマンドであり、
ボタンコマンドは、動画データ、副映像データと多重化されて多重化ストリームとして記録媒体に記録され、
副映像データは、ボタンの画像データであり、前記ボタンコマンドは、ボタンの画像データに対して確定操作がなされた際、実行される
ことを特徴とする請求項１３記載の記録媒体。
【請求項２０】
前記エンハンスモードとは、
ブラウザに、プログラムを実行させるモードであり、
エンハンスドモードプログラムは、マークアップ言語で記述される
ことを特徴とする請求項１３記載の記録媒体。
【請求項２１】
前記ムービーモードのプログラムは、ボタンコマンドを含み
ボタンコマンドは、エンハンスドモードのプログラムへと分岐するコマンドであり、
ボタンコマンドは、動画データ、副映像データと多重化されて多重化ストリームとして記録媒体に記録され、
副映像データは、ボタンの画像データであり、前記ボタンコマンドは、ボタンの画像データに対して確定操作がなされた際、実行される
ことを特徴とする請求項２０記載の記録媒体。
【請求項２２】
前記モードには、仮想マシンに、プログラムを実行させる仮想マシンモードと、
ブラウザに、プログラムを実行させるブラウザモードとがあり、
前記分岐とは、
仮想マシンモードのプログラム、ブラウザモードのプログラム間の分岐である
ことを特徴とする請求項１記載の記録媒体。
【請求項２３】
動画データ、複数のプログラム、各プログラムについてのインデックスからなるテーブルが記録された記録媒体についての再生装置であって、
ムービーモードに対応したモジュールと、エンハンスドモードに対応したモジュールとを含み、記録媒体に記録されたプログラムのそれぞれを実行する複数のモジュールと、
プログラム間の分岐を制御するマネージャとを備え、
前記テーブルは、各プログラムがムービーモード及びエンハンスドモードの何れに属するかを示す情報であり、
前記分岐は、プログラムにおいてテーブルを介した間接参照の形式で記述され、
前記マネージャは、
プログラムの分岐にあたって、テーブルを参照して、どのモジュールに、分岐先プログラムを実行させるかを決定する
ことを特徴とする再生装置。
【請求項２４】
前記テーブルは、複数プログラムのそれぞれに対応した複数のインデックスを含み、
各インデックスは、
対応するプログラムがエンハンスドモードに属するか、ムービーモードに属するかを示しており、
前記分岐コマンドにおける間接参照の形式とは、
インデックスについてのラベルを用いて、分岐先プログラムを指定することである
ことを特徴とする請求項２３記載の再生装置。
【請求項２５】
前記マネージャによる実行モジュールの決定は、
分岐先プログラムを指定するラベルが、どのインデックスに割り当てられているかを識別し、そのインデックスが、エンハンスドモードに属するか、ムービーモードに属するかを判定することにより行われる
ことを特徴とする請求項２４記載の再生装置。
【請求項２６】
前記エンハンスドモードモジュールによるプログラム実行が不可能である場合、前記マネージャは、
分岐先プログラムを指定するラベルが、エンハンスドモードに属しているインデックスに割り当てられたとしても、代わりのムービーモードのプログラムを、ムービーモードモジュールに実行させ、
前記テーブルにおける予備のインデックスを有し、
前記代わりのムービーモードプログラムは、この予備のインデックスに対応していることを特徴とする請求項２５記載の再生装置。
【請求項２７】
前記再生装置はレジスタと、
各モードのモジュールからの関数呼出に応じて、機能を実行する再生制御エンジンとを備え、
再生制御エンジンが実行する機能とは、
モジュールから値を受け取ってレジスタに設定する機能（１）、
レジスタから値を取得してモジュールに引き渡す機能（２）、
予め定められた再生経路に従い、動画データを再生する機能（３）の何れかである
ことを特徴とする請求項２３記載の再生装置。
【請求項２８】
前記再生装置はレジスタと、再生制御エンジンとを備え、前記分岐とは、ムービーモードプログラムからエンハンスドモードプログラムへの分岐であり、
ムービーモードプログラムによる再生制御手順とは、再生装置のレジスタへの値の設定を再生制御エンジンに行わせることであり、
エンハンスドモードプログラムによる再生制御手順とは、レジスタに設定された値を、再生制御エンジンに読み出させることである
ことを特徴とする請求項２７記載の再生装置。
【請求項２９】
前記レジスタ設定値とは、
再生装置における音声設定（１）、再生装置における副映像設定（２）、再生装置におけるアングル設定（３）、現在再生されているタイトル（４）、現在再生されているチャプター（５）、現在の再生時点（６）の何れかを示す値である
ことを特徴とする請求項２８記載の再生装置。
【請求項３０】
前記記録媒体にはプレイリスト情報が記録されており、
プレイリスト情報は、動画データにおける再生区間を示す情報を、再生順序に従って配列することにより再生経路を定義する情報であり、
再生制御エンジンによる再生制御は、
プレイリスト情報に示される再生経路に基づく
ことを特徴とする請求項２８記載の再生装置。
【請求項３１】
前記プログラムは、再生制御エンジンが実行する再生機能を呼び出すための関数呼出を含み、
この関数呼出には、２つの引数があり、
そのうち１つ目の引数は、プレイリスト情報を指定するものであり、
２つ目の引数は、再生経路における開始点を指定するものである
ことを特徴とする請求項３０記載の再生装置。
【請求項３２】
前記再生手順における開始点指定は、
再生区間、再生時刻、チャプターの何れかを用いて行われる
ことを特徴とする請求項３１記載の再生装置。
【請求項３３】
前記記録媒体においてプレイリスト情報は、フラグが付加されて記録され、
フラグは、本プレイリスト情報を用いた動画データの再生を、ムービーモードで許可するか、エンハンスドモードで許可するかを示し、
再生制御エンジンは、フラグに示されるモードの実行時において、プレイリスト情報に基づく再生制御を行う
ことを特徴とする請求項３１記載の再生装置。
【請求項３４】
前記分岐とは、ムービーモードプログラムからエンハンスドモードプログラムへの分岐であり、
ムービーモードプログラムによる動画データの再生手順とは、
プレイリスト情報により示される再生経路における開始点を指定して、再生制御エンジンに再生を行わせることであり、
エンハンスドモードプログラムによる動画データの再生手順とは、
同じプレイリスト情報により示される再生経路における開始点を指定して、再生制御エンジンに再生を行わせることである
ことを特徴とする請求項３１記載の再生装置。
【請求項３５】
前記エンハンスモードに対応するモジュールは、仮想マシンを備え、
エンハンスドモードのプログラムは、仮想マシン向けプログラミング言語により記述される
ことを特徴とする請求項２３記載の再生装置。
【請求項３６】
前記再生制御エンジンは、動画データの再生に同期したイベントの発生を行い、
エンハンスドモードプログラムは、イベントハンドラを含み、
前記モジュールは、再生制御エンジンがイベントを発生すると、イベントハンドラを実行する
ことを特徴とする請求項３５記載の再生装置。
【請求項３７】
前記イベントとは、
現在の再生位置が、動画データの再生時間軸における所定の時点に到達したことを示すイベント（ｉ）、
動画データの再生時間軸において、所定の時間間隔だけ、現在の再生位置が進行したことを示すイベント（ｉｉ）の何れかである
ことを特徴とする請求項３６記載の再生装置。
【請求項３８】
前記記録媒体はマーク情報が記録されており、
マーク情報は、
前記再生時間軸における所定の時点、及び、所定の時間間隔を定義する情報であり、
再生制御エンジンによるイベント発生は、このマーク情報に基づいて行われる
ことを特徴とする請求項３７記載の再生装置。
【請求項３９】
前記再生装置は、ユーザ操作を受け付ける受付手段を備え、
前記イベントとは、
動画データの再生時間軸上の所定の時間帯において、受付手段がユーザ操作を受け付けたことを示すイベントである
ことを特徴とする請求項３６記載の再生装置。
【請求項４０】
前記受付手段が受け付ける操作とは、
動画データの再生時において、早送り、巻戻し、ポーズの操作である
ことを特徴とする請求項３９記載の再生装置。
【請求項４１】
前記ムービーモードのプログラムは、ボタンコマンドを含み
ボタンコマンドは、エンハンスドモードのプログラムへと分岐するコマンドであり、
ボタンコマンドは、動画データ、副映像データと多重化されて多重化ストリームとして記録媒体に記録され、
副映像データは、ボタンの画像データであり、
前記再生装置は
多重化ストリームを分離して、ボタンコマンド、動画データ、副映像データを得るデマルチプレクサと、
ボタンの画像データをデコードするイメージデコーダと、
動画データをデコードするビデオデコーダとを備え、
前記モジュールは、ボタンの画像データに対して確定操作がなされた際、ボタンコマンドを実行する
ことを特徴とする請求項３５記載の再生装置。
【請求項４２】
前記エンハンスモードとは、
ブラウザに、プログラムを実行させるモードであり、
エンハンスドモードプログラムは、マークアップ言語で記述される
ことを特徴とする請求項２３記載の再生装置。
【請求項４３】
前記ムービーモードのプログラムは、ボタンコマンドを含み
ボタンコマンドは、エンハンスドモードのプログラムへと分岐するコマンドであり、
副映像データは、ボタンの画像データであり、
ボタンコマンドは、動画データ、副映像データと多重化されて多重化ストリームとして記録媒体に記録され、
前記再生装置は
多重化ストリームを分離して、ボタンコマンド、動画データ、副映像データを得るデマルチプレクサと、
ボタンの画像データをデコードするイメージデコーダと、
動画データをデコードするビデオデコーダとを備え、
前記モジュールは、ボタンの画像データに対して確定操作がなされた際、ボタンコマンドを実行する
ことを特徴とする請求項４２記載の再生装置。
【請求項４４】
前記モードには、仮想マシンに、プログラムを実行させる仮想マシンモードと、
ブラウザに、プログラムを実行させるブラウザモードとがあり、
前記分岐とは、
仮想マシンモードのプログラム、ブラウザモードのプログラム間の分岐である
ことを特徴とする請求項２３記載の再生装置。
【請求項４５】
動画データ、複数のプログラム、各プログラムについてのインデックスからなるテーブルが記録された記録媒体についての再生処理プログラムであって、
ムービーモードに対応した実行ステップと、エンハンスドモードに対応した実行ステップとを含み、各実行ステップは、記録媒体に記録されたプログラムのそれぞれを実行する複数との実行ステップと、
プログラム間の分岐を制御する制御ステップとをコンピュータに行わせ、
前記テーブルは、各プログラムがムービーモード及びエンハンスドモードの何れに属するかを示す情報であり、
前記分岐は、プログラムにおいてテーブルを介した間接参照の形式で記述され、
前記制御ステップは、
プログラムの分岐にあたって、テーブルを参照して、どの実行ステップに、分岐先プログラムを実行させるかを決定する
ことを特徴とする再生処理プログラム。
【請求項４６】
動画データ、複数のプログラム、各プログラムについてのインデックスからなるテーブルが記録された記録媒体についての再生方法であって、
ムービーモードに対応した実行ステップと、エンハンスドモードに対応した実行ステップとを含み、各実行ステップは、記録媒体に記録されたプログラムのそれぞれを実行する複数の実行ステップと、
プログラム間の分岐を制御する制御ステップとを含み、
前記テーブルは、各プログラムがムービーモード及びエンハンスドモードの何れに属するかを示す情報であり、
前記分岐は、プログラムにおいてテーブルを介した間接参照の形式で記述され、
前記制御ステップは、
プログラムの分岐にあたって、テーブルを参照して、どの実行ステップに、分岐先プログラムを実行させるかを決定する
ことを特徴とする再生方法。
【請求項４７】
記録媒体の記録方法であって、
アプリケーションデータを作成するステップと、
作成したデータを記録媒体に記録するステップとを有し、
前記アプリケーションデータは、動画データ、複数のプログラム、テーブルを含み、
各プログラムは、
動画データの再生制御手順を示し、
テーブルは、記録媒体における各プログラムの識別情報（１）、各プログラムがムービーモード及びエンハンスドモードの何れに属するかを示す情報（２）を含んでおり、
何れか１つのプログラムは、分岐コマンドを含み、
前記分岐コマンドは、テーブルを介した間接参照の形式で、分岐先を指定している
ことを特徴とする記録方法。
【発明の詳細な説明】
【技術分野】  本発明は、Ｂｌｕ−Ｒａｙ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ（以下ＢＤ−ＲＯＭと略す）等の動画データ用の記録媒体、記録媒体の再生装置、プログラム、再生方法、記録方法に関し、記録媒体により映画作品等を頒布する技術に関する。
【背景技術】  記録媒体による映画作品の頒布は、映画制作者、供給者にとって大きな収入源である。映画作品の動画データは、著名な俳優を出演させ、多大な制作費をかけて作成されているので多大な財産価値をもつ。映画作品の頒布にあたっては、記録媒体や再生装置の機能を利用して、動画データの付加価値を高めることが、商品戦略上極めて有意義とされている。ＤＶＤにおける付加価値の高め方としては、動画データを記録したＤＶＤに、その動画データを利用したクイズやゲームを記録しておき、ユーザに遊んでもらおうというものがある。同じ動画データを使っていたとしても、映画として動画データを見るのと、ゲームの一場面として見るのとではユーザが受ける印象はガラリと変わる。僅かな労力で、ユーザに新鮮な印象を与えつづけることができるので、かかる高付加価値化は、映画制作者にとって強力な武器となる。
ＤＶＤにおける付加価値の高め方には、以下の特許文献１に記載された先行技術がある。
｛特許文献１｝  特許第２８１３２４５号
ところで従来の高付加価値化は、ＤＶＤの再生装置が描画可能な副映像や解釈可能なコマンドを用いて実現されていた。つまりこれらの高付加価値化は、再生装置機能を応用した結果の副産物といえる。いまや家電機器のネット家電化の進行に伴い、この再生装置機能は劇的な進化を遂げようとしている。ネット家電化にあたって、再生装置を始めとする家電機器は、ブラウザやＪａｖａ仮想マシンを標準装備し、ブラウザによる動作モードやＪａｖａ仮想マシンによる動作モードを具備をすることとなり、ネットワークを通じた様々なサービスをユーザに供給することができる。こうした再生装置側の進化を踏まえ、映画供給者は、Ｊａｖａ仮想マシンやブラウザの特性を活かして動画データ本体の付加価値を高めるという新たなコンテンツ作りを機器メーカに提案してくると考えられる。しかしｊａｖａ仮想マシンやブラウザは広く普及しているとはいえ、これらを用いて動画データ本体の付加価値を高めるという考え方は、従来には一切存在しなかった。かかる要望があったとしても、実際の民生機器のマーケットでは、Ｊａｖａ仮想マシン、ブラウザをもった再生装置やもっていない再生装置の両者が出現すると考えられる。Ｊａｖａ仮想マシン、ブラウザをもたない再生装置に、本記録媒体が装填された場合に、動作保証がなされないのならば、付加価値を高めた記録媒体は市場から排斥される恐れがある。
更に、ネット家電化された再生装置向けに映画作品が記録された記録媒体を頒布する場合、映画作品の著作権は未知数のリスクに晒されることになる。Ｊａｖａ仮想マシン、ブラウザを用いた動作モードに魅力があるにせよ、著作権者は大きな不安を抱かずにはいられない。
【発明の開示】
本発明の目的は、再生装置にＪａｖａ仮想マシンやブラウザが装備されている場合に、これらを利用して動画データ本体の付加価値を高めつつも、様々なタイプの再生装置での動作保証を実現することができる記録媒体及び再生装置を提供することである。
上記目的は、動画データ、複数のプログラム、テーブルが記録された記録媒体であって、各プログラムは、動画データの再生制御手順を示しテーブルは、記録媒体における各プログラムの識別情報（１）、各プログラムがムービーモード及びエンハンスドモードの何れに属するかを示す情報（２）を含んでおり、何れか１つのプログラムは、分岐コマンドを含み、前記分岐コマンドは、テーブルを介した間接参照の形式で、分岐先を指定している記録媒体により達成される。ムービーモードにおける映画としての動画データの再生と、エンハンスドモードにおける制御とを、分岐コマンドを用いて動的に切り換えることができる。エンハンスドモードにおける制御が、Ｊａｖａ仮想マシンやブラウザを用いたものならば、記録媒体に記録された動画データは、通常の映画を再生させるための画面、Ｊａｖａ仮想マシンやブラウザによる画面のどちらかで再生されることになる。かような画面切り換えで、従来にないような、斬新な視覚効果が実現されることになる。
動的なモード切り換えを活かしたゲーム等を再生装置に実行させることができるので、動画データ本体の付加価値を高めることができる。またムービーモードからエンハンスドモードへの分岐は、テーブルを介した間接参照にて分岐先を指定している。テーブルの記述内容を工夫すれば、Ｊａｖａ仮想マシン、ブラウザをもつ再生装置への装填時と、もたない再生装置への装填時とで、分岐先を変えるという動作も実現可能になる。かかる分岐先の変化により、Ｊａｖａ仮想マシン、ブラウザをもたない再生装置への装填時に、エンハンスドモードプログラムへの分岐の途を閉ざすことができ、あらゆるタイプの再生装置での動作保証を実現することができる。
ここで前記テーブルは、複数プログラムのそれぞれに対応した複数のインデックスを含み、各インデックスは、対応するプログラムがエンハンスドモードに属するか、ムービーモードに属するかを示しており、
前記分岐コマンドにおける間接参照の形式とは、インデックスについてのラベルを用いて、分岐先プログラムを指定していてもよい。
プログラムからプログラムへの分岐は、インデックスを参照してなされる。このインデックスは、プログラムをどのモードで実行させればよいかが示されているので、モードを切り換えたうえで、他のプログラムに分岐するという、モード切り換えを伴った分岐を再生装置に容易に実行させることができる。
ここで前記テーブルにおけるインデックスには、予備のインデックスがあり、予備のインデックスは、ムービーモードしか実行できない再生装置において、エンハンスドモードのプログラムへの分岐が命じられた場合に、エンハンスドモードのプログラムの代わりとなるムービーモードプログラムと対応していてもよい。
エンハンスドモードがない再生装置に装填された場合、予備のインデックスを参照して分岐を行うことで、プログラムの分岐時において、ムービーモードのプログラムへと誘導することができる。エンハンスドモードのプログラムへの分岐の途を閉ざすことができるので、意図しない誤動作を防ぐことができる。
前記各ムービーモードのプログラム及びエンハンスドモードのプログラムのそれぞれは、２以上の実行モジュールのそれぞれにより実行され、２以上の実行モジュールは、共通の制御階層上のレジデントプログラムであり、
前記再生制御手順は、当該制御階層から供給される関数を用いて記述されていてもよい。
ここで前記制御関数から供給される関数は、
予め定められた再生経路に基づく再生制御を再生装置に行わせる関数（１）、
再生装置におけるレジスタに所定の値を設定する関数（２）、
再生装置におけるレジスタの設定値を取得する関数（３）のうち何れかであってもよい。
ムービーモードにおいて設定されたレジスタの値を引き継ぎ、その設定値に応じて、異なる手順を実行するという制御を、エンハンスドモードで実現することができる。例えば、エンハンスドモードプログラムが、キャラクタを画面上で動作させるという手順である場合、ムービーモードからエンハンスドモードにレジスタの設定値を引き継がせることで、動画データに対するユーザ設定と、コンピュータ・グラフィックスのキャラクタの動作とが密接に関連しあうような制御手順を再生装置に実行させることができる。かかる制御手順を取り入れることで、映画作品を制作するにあたっての表現の幅が広がり、再生制御の記述という僅かな投資で、動画データの付加価値を効果的に高めることができ、映画制作者、配給者の有力な武器となる。
ゲームの制作により、付加価値の顕著な向上を図るのなら、前記エンハンスモードは、仮想マシンに、プログラムを実行させるモードであり、エンハンスドモードのプログラムは、仮想マシン向けプログラミング言語により記述すればよいか
モード切り換えを伴った分岐を実現することで、Ｊａｖａ言語（登録商標）の開発環境を創設することにより、多くのソフトハウスの参入を促すことができる。これにより、Ｊａｖａモードへの切り換えを伴いながら、動画データを再生させてゆくという斬新なスタイルの映像作品が多く制作されることになり、映画作品の市場を活性化させることができる。
ＤＶＤ再生環境との融合を考えるのなら、前記ムービーモードのプログラムは、ボタンコマンドを含みボタンコマンドは、エンハンスドモードのプログラムへと分岐するコマンドであり、ボタンコマンドは、動画データ、副映像データと多重化されて多重化ストリームとして記録媒体に記録され、副映像データは、ボタンの画像データであり、前記ボタンコマンドは、ボタンの画像データに対して確定操作がなされた際、実行されるようにするのがよい。
ボタンコマンドは、ＤＶＤ再生装置が解釈可能なコマンドに準拠したものであり、これを用いて制御手順を記述することで、ＤＶＤとの制御手順の互換性を図ることができる。かかる互換性の確保により、１つの映画作品を、ＤＶＤ、ＢＤ−ＲＯＭの両者でリリースする場合に、制御構造の共通化が図れ、ＢＤ−ＲＯＭによる映画作品のリリースに際してもオーサリングの手間を軽減することができる。
またＤＶＤライクなムービーモードから、Ｊａｖａ仮想マシン、ブラウザによるエンハンスドモードに分岐するというモード移行も可能になり。ＤＶＤ機能、Ｊａｖａ仮想マシン／ブラウザ機能と交えた再生制御が可能になる。
ブラウザを用いるとしても、一歩間違えれば、映画作品を誹謗中傷するサイトと共に、映画作品が再生されることもある。かような再生を認めれば、映画作品の品位に泥を塗ってしまう恐れがある。自らが手掛けた映画の品位が汚されることは、供給会社や制作会社にとって堪え難いことであり、機器メーカとの関係に、軋轢を生む要因になりかねない。
かような軋轢を避けるには、エンハンスドモードプログラムを、マークアップ言語で記述することが望ましい。
マークアップ言語で制御手順を記述するので、Ｗｅｂサイトからの情報を交えた制御手順により、動画データの付加価値を高めることができる。どのＷｅｂサイトからの情報を交えるかは、制作者サイドが決定するため、インターネットを介した不特定多数からの誹謗や中傷に映画作品が晒されることが避けられる。
テーブルを介した間接参照にてモード遷移を行うことの技術的意義は上述したような動作保証に留まらない。つまり何等かの条件が再生装置側で満たされた場合、ムービーモードからエンハンスドモードへの遷移の途を閉ざすことができるので、以下のような事情が再生装置にある場合に有意義である。
映画作品の著作権保護のための暗号鍵がある再生装置で暴露され、再生装置が鍵管理センターにより無効化された場合（１）、
ユーザがリッパソフトを利用して記録媒体に記録された映画作品を不正にコピーしたため、映画作品の複製物がネットワーク上に或はされる恐れがある場合（２）、
エンハンスドモード実行には追加料金の支払いがいるにも拘らず、追加料金が支払われない場合（３）、
再生装置のシステムに障害が発生したため、ネットワークから遮断したい場合（４）、
Ｊａｖａ仮想マシンやブラウザにバージョンコンフリクションがある場合（５）、
個人情報の漏洩やウィルスソフトの感染の可能性があり、再生装置をネットワークから遮断したい場合（６）、
ネットワークから記録媒体の記録内容を読み取ろうとする不正機器から、記録媒体の映画作品を保護するため、再生装置をネットワークから遮断したい場合（７）、
といった（１）〜（７）の事情が再生装置に存在する場合にモード遷移を閉ざすことも可能である。
たとえ再生装置が常時接続可能な環境におかれていたとしても、再生装置の動作や動画データの著作権保護が保証されない場合、ユーザに債務不履行がある場合、Ｊａｖａ仮想マシンやブラウザへの遷移を行わないようにムービーモードプログラムを記述することができるので、ネット家電化された再生装置向けに映画作品を頒布する場合の著作権者の不安を払拭することができる。
更に上述したような間接参照による分岐コマンドは、後日の差し替えを僅かな手間で実現できる点において、映画作品の頒布を行う業者にとって大きなメリットになる。つまり記録媒体に記録された特定の動画データに道徳・倫理的な問題がある場合、テーブルと、差し替え映像とを再生装置にダウンロードさせれば、新たなテーブルを介した間接参照を再生時に再生装置に行わせることで、問題がある映像の代わりに、差し替え映像をユーザに視聴させることができる。一部差し替えにあたって記録媒体に記録されたプログラムを一切書き換えなくてもよいので、かかる問題が生じたとしても、記録媒体を回収するというリスクを避けることができる。
また差し替え映像でなくても、記録媒体に記録されている複数動画データのうち、特定のものを再生させたくない場合、記録媒体に記録されている動画データの順序を入れ替えたい場合も、テーブルのダウンロードさえ行えば、記録媒体側のプログラムを書き換えなくてもよいので、問題発覚時の業者側の負担を軽減することができる。
また本発明に係る記録媒体の最も広い上位概念は、以下のようなものであってもよい。
つまり、動画データ、プログラムが記録された記録媒体であり、前記プログラムは、動画データの再生制御手順を示し
再生制御手順は、動画データの再生中において、再生装置で発生するイベントをトリガにして実行され、
前記イベントとは、
現在の再生位置が、動画データの再生時間軸における所定の時点に到達したことを示すイベント（ｉ）、
動画データの再生時間軸において、所定の時間間隔だけ、現在の再生位置が進行したことを示すイベント（ｉｉ）の何れかであってもよい。
また本発明に係る再生装置の最上位概念は、以下のようなものであってもよい。つまり、動画データ及びプログラムが記録された記録媒体についての再生装置であって、動画データの再生、及び、再生進行に同期したイベント発生を行う再生制御エンジンと、
再生制御エンジンがイベントを発生すると、イベントハンドラを実行する実行モジュールとを備え、
前記イベントとは、
現在の再生位置が、動画データの再生時間軸における所定の時点に到達したことを示すイベント（ｉ）、
動画データの再生時間軸において、所定の時間間隔だけ、現在の再生位置が進行したことを示すイベント（ｉｉ）の何れかであってもよい。
動画データの再生と同期して動作するようなプログラムを、イベントハンドラとして作成することができるので、プログラマによる開発を容易にすることができる。
【図面の簡単な説明】  図１は、本発明に係る記録媒体の、使用行為についての形態を示す図である。
図２は、ＢＤ−ＲＯＭの構成を示す図である。
図３は、ディレクトリ構造を用いてＢＤ−ＲＯＭの応用層フォーマットを表現した図である。
図４は、機能的な観点から、ファイルを分類した場合の分類図である。
図５は、ＢＤ−ＲＯＭが対象としているソフトウェアのレイアモデルを示す図である。
図６は、ＡＶストリームがどのように構成されているかを模式的に示す図である。
図７はＡＶストリームがどのようにＢＤ−ＲＯＭに記録されるかを模式的に示す図である。
図８は、ストリーム管理情報の内部構成を示す図である。
図９は、ＰＬ情報の内部構成を示す図である。
図１０は、ＰＬ情報による間接参照を模式化した図である。
図１１は、図１０に示したＰＬとは、別のＰＬを定義する場合の一例を示す図である。
図１２は、レイヤモデルの第４層（動的シナリオ）における再生モードを示す図である。
図１３は、３つのモードの動的な再生制御にて作成される映画作品を示す図である。
図１４はＮａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報の構成を示す図である。
図１５は、ＡＶストリームに多重化されているＮａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報でボタンの制御を行う場合の一例を示す図である。
図１６は、ＡＶストリーム中のＮａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報が図１５のように設定されている場合のＭＯＶＩＥオブジェクトの一例を示す。
図１７は、図１６のＭＯＶＩＥオブジェクトのコマンドにより分岐がなされた場合のＪａｖａオブジェクトの記述例である。
図１８は、ＭＯＶＩＥオブジェクトとＪａｖａオブジェクトとの関連を示す図である。
図１９は、ＭＯＶＩＥオブジェクトにおけるキャラクタ紹介と、Ｊａｖａモードにおけるゲームとから構成されるタイトルを模式的に示す図である。
図２０は、ＪａｖａオブジェクトからのＰＬ再生を模式的に示した図である。
図２１は、ＭＯＶＩＥモードで使用されたいたＰＬとは別のＰＬを用いることによる、シーン引用を示す図である。
図２２は、ＷｅｂＰａｇｅオブジェクトの記述例である。
図２３（ａ）は、ＩＮＦＯ．ＢＤ−ＲＯＭの内部構成を示す図である。
図２３（ｂ）は、Ｉｎｄｅｘ  ＴａｂｌｅのＩｎｄｅｘを示す図である。
図２４（ａ）は、複数の動的シナリオ（００１．ＭＯＶＩＥ，００２．ＭＯＶＩＥ，００３．ＭＯＶＩＥ‥‥‥、００１．ＣＬＡＳＳ，００２．ＣＬＡＳＳ，００３．ＣＬＡＳＳ‥‥‥）が記録されているＢＤ−ＲＯＭを示す図である。
図２４（ｂ）は、ＢＤ−ＲＯＭに図２４（ａ）に示すような複数動的シナリオが記述されている場合のＩｎｄｅｘ  Ｔａｂｌｅの記述例を示す図である。
図２５（ａ）は、図２４（ｂ）のようにＩｎｄｅｘ  Ｔａｂｌｅが記述された場合のフルシステムにおける間接参照を示す図である。
図２５（ｂ）は、コアシステムにおける間接参照を示す図である。
図２６は、図１８に示したＭＯＶＩＥオブジェクトからＪａｖａオブジェクトへの分岐がどのように行われるかを模式的に示す図である。
図２７は、コアシステムの再生装置に図１８に示したシナリオが記録されたＢＤ−ＲＯＭが装填された場合、どのような分岐が行われるかを示す図である。
図２８は、本発明に係る再生装置の内部構成を示す図である。
図２９は、モジュールマネージャ２０による処理手順を示すフローチャートである。
図３０は、モジュールマネージャ２０による処理手順を示すフローチャートである。
図３１は、再生制御エンジン１２によるＰＬＰｌａｙ関数の実行手順を示すフローチャートである。
図３２は、第２実施形態に係るＢＤ−ＲＯＭのファイル構成を示す図である。
図３３は、ＰＬＭａｒｋ及びＣｌｉｐＭａｒｋの共通構成を示す図である。
図３４（ａ）（ｂ）は、プレイリスト＃１の再生中に出現するＴｉｍｅＥｖｅｎｔを定義する場合のＰＬＭａｒｋの記述例を示す図である。
図３５は、プレイリスト＃１の再生中においてＵｓｅｒＥｖｅｎｔを定義する場合のＰＬＭａｒｋの記述例を示す図である。
図３６は、ＴｉｍｅＥｖｅｎｔにより駆動されるハンドラの一例を示す図である。
図３７はＵｓｅｒＥｖｅｎｔにより駆動されるハンドラの一例を示す図である。
図３８は、図３６、図３７のプレイリストにて再生されるピクチャと、イベントハンドラにより描画されるイメージとを合成して、イベントハンドラによる条件分岐を描いた図である。
図３９は、本実施形態に係る再生制御エンジン１２の処理手順を示す図である。
図４０は、Ｂａｃｋｗａｒｄ  Ｅｖｅｎｔの技術的意義を説明するための模式図である。
図４１（ａ）は、Ｊａｖａモードにおいて、ＰＬ再生が開始した時点の表示画面の一例である。
図４１（ｂ）は、ＰＬの再生時点が時刻ｔ１に到達した場合の表示画面の一例である。
図４１（ｃ）は、ＰＬの再生時点が時刻ｔ２に到達した場合の表示画面の一例である。
図４２（ａ）は、巻戻しによりＰＬの再生時点が時刻ｔ１に到達した場合の表示画面の一例である。
図４２（ｂ）は、巻戻しによりＰＬの再生時点が時刻ｔ０に到達した場合の表示画面の一例である。
図４２（ｃ）は、ＰＬの再生時点が時刻ｔ１に再到達した場合の表示画面の一例である。
図４３は、早送り時でのＴｉｍｅ  Ｅｖｅｎｔ発生を模式的に示す図である。
図４４（ａ）は、Ｊａｖａモードにおいて、ＰＬ再生が開始した時点の表示画面の一例である。
図４４（ｂ）は、ＰＬの再生時点が時刻ｔ１に到達した場合の表示画面の一例である。
図４４（ｃ）は、時刻ｔ２への到達時に、早送りを行った表示画面の一例である。
図４５は、Ｐａｕｓｅ  Ｅｖｅｎｔの発生を模式的に描いた図である。
図４６は、ＢＤ−ＲＯＭにより実現されるメニュー階層を示す図である。
図４７は、階層をもったメニューを動作させるためのＭＯＶＩＥオブジェクトを示す図である。
図４８は、第４実施形態に係るモジュールマネージャ２０の処理手順を示す図である。
図４９は、Ｊａｖａモードに属するクラスのメンバー関数を示す図である。
図５０は、Ｊａｖａモード内のメンバー関数を介した制御を示す図である。
図５１は、第６実施形態に係るメニュー階層を示す図である。
図５２は、第６実施形態に係るＭＯＶＩＥオブジェクト、Ｉｎｄｅｘ  Ｔａｂｌｅを示す図である。
図５３は、スケジュールテーブルの一例を示す図である。
図５４は、第７実施形態に係るＰＬ情報の構成を示す図である。
図５５は、デジタルストリーム本体をＭＯＶＩＥモードと、Ｊａｖａモードとでシェアリングしつつ、ＰＬ情報をＭＯＶＩＥモードと、Ｊａｖａモードとで排他的に用いているという階層的なシェアリングを示す図である。
図５６は、第８実施形態に係るＢＤ−ＲＯＭの製造工程を示すフローチャートである。
図５７は、ＡＶストリーム中のＮａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報からダイレクトにＪａｖａオブジェクトへと分岐するという再生制御の一例である。
【発明を実施するための最良の形態】  （第１実施形態）
以降、本発明に係る記録媒体の実施形態について説明する。先ず始めに、本発明に係る記録媒体の実施行為のうち、使用行為についての形態を説明する。図１は、本発明に係る記録媒体の、使用行為についての形態を示す図である。図１において、本発明に係る記録媒体は、ＢＤ−ＲＯＭ１００である。このＢＤ−ＲＯＭ１００は、再生装置２００、テレビ３００、リモコン４００により形成されるホームシアターシステムに、映画作品を供給するという用途に供される。
続いて本発明に係る記録媒体の実施行為のうち、生産行為についての形態について説明する。本発明に係る記録媒体は、ＢＤ−ＲＯＭの応用層に対する改良により実施することができる。図２は、ＢＤ−ＲＯＭの構成を示す図である。
本図の第４段目にＢＤ−ＲＯＭを示し、第３段目にＢＤ−ＲＯＭ上のトラックを示す。本図のトラックは、ＢＤ−ＲＯＭの内周から外周にかけて螺旋状に形成されているトラックを、横方向に引き伸ばして描画している。このトラックは、リードイン領域と、ボリューム領域と、リードアウト領域とからなる。本図のボリューム領域は、物理層、ファイルシステム層、応用層というレイヤモデルをもつ。図２に示すようなデータフォーマットを、ＢＤ−ＲＯＭの応用層上に形成することにより本発明に係る記録媒体は、工業的に生産される。
図３は、ディレクトリ構造を用いてＢＤ−ＲＯＭの応用層フォーマット（アプリケーション）を表現した図である。本図に示すようにＢＤ−ＲＯＭには、ＲＯＯＴディレクトリの下にＢＤ−ＲＯＭＡＶディレクトリがあり、その下にＪＣＬＡＳＳディレクトリ、ＢＲＯＷＳＥＲディレクトリがある。
ＢＤ−ＲＯＭＡＶディレクトリの配下には、ＩＮＦＯ．ＢＤ−ＲＯＭ、ＸＸＸ．Ｍ２ＴＳ、ＸＸＸ．ＣＬＰＩ，ＹＹＹ．ＰＬ、ＺＺＺ．ＭＯＶＩＥといったファイルが存在する。ＪＣＬＡＳＳディレクトリの配下には、ＺＺＺ．ＣＬＡＳＳというファイルが、ＢＲＯＷＳＥＲディレクトリの配下には、ＺＺＺ．ＨＴＭＬというファイルが配置されている。
図４は、機能的な観点から、これらのファイルを分類した場合の分類図である。本図において、第１層、第２層、第３層、第４層からなる階層が本図における分類を象徴的に示す。本図においてＸＸＸ．Ｍ２ＴＳは第２層に分類される。ＸＸＸ．ＣＬＰＩ，ＹＹＹ．ＰＬは、第３層（静的シナリオ）に分類される。ＢＤ−ＲＯＭＡＶディレクトリ配下のＺＺＺ．ＭＯＶＩＥ、ＪＣＬＡＳＳディレクトリ配下のＺＺＺ．ＣＬＡＳＳ、ＢＲＯＷＳＥＲディレクトリ配下のＺＺＺ．ＨＴＭは、第４層に分類される。
本図の分類（第１層〜第４層）は、図５に示すようなレイヤモデルを対象とした分類である。以降、図５を参照しながら、ＢＤ−ＲＯＭが対象としている、制御ソフトウェアのレイアモデルについて説明する。
図５の第１層は、物理層であり、処理対象たるストリーム本体の供給制御である。この第１層に示すように、処理対象たるストリームは、ＢＤ−ＲＯＭだけではなく、ＨＤ、メモリカード、ネットワークといったあらゆる記録媒体、通信媒体を供給源としている。これらＨＤ、メモリカード、ネットワークといった供給源に対する制御（ディスクアクセス、カードアクセス、ネットワーク通信）が第１層の制御である。
第２層は、復号化方式のレイアである。第１層で供給されたストリームを、どのような復号化方式を用いて復号するのかを規定しているのがこの第２層である。本実施形態で採用する復号化方式は、ＭＰＥＧ２の復号化方式である。
第３層（静的シナリオ）は、ストリームの静的なシナリオを規定するレイアである。静的なシナリオとは、ディスク制作者によって予め規定された再生経路情報、ストリーム管理情報であり、これらに基づく再生制御を規定しているのがこの第３層（静的シナリオ）である。
第４層は、ストリームにおける動的なシナリオを実現するレイヤである。動的なシナリオとは、ユーザ操作や装置の状態によって再生進行を動的に変化させるためのシナリオであり、これらに基づく再生制御を規定しているのがこの第４層である。以降、このレイヤモデルに従い、ストリーム本体、静的なシナリオ、動的なシナリオにあたるファイルについて説明してゆく。
先ず第２層に属するストリーム（ＸＸＸ．Ｍ２ＴＳ）について説明する。
ＡＶストリーム（ＸＸＸ．Ｍ２ＴＳ）は、ＭＰＥＧ−ＴＳ（Ｔｒａｎｓｐｏｒｔ  Ｓｔｒｅａｍ）形式のデジタルストリームであり、ビデオストリーム、１つ以上のオーディオストリーム、１つ以上の副映像ストリーム、Ｎａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報を多重化することで得られる。ビデオストリームは映画の動画部分を、オーディオストリームは映画の音声部分を、副映像ストリームは、映画の字幕を、Ｎａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報は、メニューを対象とした動的な再生制御の手順をそれぞれ示している。図６は、ＡＶストリームがどのように構成されているかを模式的に示す図である。
ＡＶストリームは（第４段目）、複数のビデオフレーム（ピクチャｐｊ１，２，３）からなるビデオストリーム、複数のオーディオフレームからなるオーディオストリームを（第１段目）、ＰＥＳパケット列に変換し（第２段目）、更にＴＳパケットに変換し（第３段目）、同じくＮａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報（第７段目）を、ＰＥＳパケット列に変換し（第６段目）、更にＴＳパケットに変換して（第５段目）、これらを多重化することで構成される。この多重化は、オーディオフレームが、同じ時刻にＢＤ−ＲＯＭから読み出されるべきビデオフレームの近くにくるように、ビデオフレームを格納したＴＳパケット、オーディオフレームを格納したＴＳパケットを並べるというものである。Ｎａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報は、動的な再生制御に関するものなので、ここでの説明は省略する。また副映像ストリームは、本実施形態との関連が希薄なので、図６での図示は省略している。
かかる過程を経て生成されたＡＶストリームは、通常のコンピュータファイル同様、複数のエクステントに分割され、ＢＤ−ＲＯＭ上の領域に記録される。図７はＡＶストリームがどのようにＢＤ−ＲＯＭに記録されるかを模式的に示す図である。
ＡＶストリームを構成する各エクステントが、どれだけの長さであり、ＢＤ−ＲＯＭにおいてどのアドレスに記録されているかは、ファイル管理情報ｆｋ１に記述される。
ファイル管理情報ｆｋ１には、ＡＶストリームを分割することで得られる３つのエクステント１，２，３のそれぞれについて、エクステントのアドレス（ａｄｒ１，２，３）、長さ（ｌｅｎｇｔｈ１，２，３）が記述されていることがわかる。ＡＶストリームは、１つ以上のＡＣＣＥＳＳ  ＵＮＩＴとからなり、このＡＣＣＥＳＳ  ＵＮＩＴの単位で頭出し可能である。ＡＣＣＥＳＳ  ＵＮＩＴとは、１つのＧＯＰ（Ｇｒｏｕｐ  Ｏｆ  Ｐｉｃｔｕｒｅ）と、このＧＯＰと同時に読み出されるべきオーディオフレームとを含む最小デコード単位である。ＧＯＰは、過去方向および未来方向に再生されるべき画像との時間相関特性を用いて圧縮されているＢｉｄｉｒｅｃｔｉｏｎａｌｌｙ  ｐｒｅｄｉｃｔｉｖｅ  Ｐｒｅｄｉｃｔｉｖｅ（Ｂ）ピクチャ、過去方向に再生されるべき画像との時間相関特性を用いて圧縮されているＰｒｅｄｉｃｔｉｖｅ（Ｐ）ピクチャ、時間相関特性を用いず、一フレーム分の画像内での空間周波数特性を利用して圧縮されているＩｎｔｒａ（Ｉ）ピクチャを含む。
尚、ＸＸＸ．Ｍ２ＴＳのファイル名ＸＸＸは、ＢＤ−ＲＯＭにおいてＡＶストリームに付与される３桁の識別番号を抽象化している。つまり本図におけるＡＶストリームは、このＸＸＸを用いて一意に識別される。以上がストリーム（ＸＸＸ．Ｍ２ＴＳ）についての説明である（ここでの３桁という桁数は例示に過ぎず、何桁でもよい。）。
＜静的なシナリオ＞
続いて、静的なシナリオであるファイル（ＸＸＸ．ＣＬＰＩ，ＹＹＹ．ＰＬ）について説明する。
ストリーム管理情報（ＸＸＸ．ＣＬＰＩ）は、個々のＡＶストリームについての管理情報である。図８は、ストリーム管理情報の内部構成を示す図である。ＡＶストリームはビデオストリーム、オーディオストリームを多重化することで得られ、ＡＶストリームはＡＣＣＥＳＳ  ＵＮＩＴと呼ばれる単位での頭出しが可能なので、各ビデオストリーム、オーディオストリームはどのような属性をもっているか、頭出し位置がＡＶストリーム内の何処に存在するかが、ストリーム管理情報の管理項目になる。図中の引き出し線はストリーム管理情報の構成をクローズアップしている。引き出し線ｈｎ１に示すように、ストリーム管理情報（ＸＸＸ．ＣＬＰＩ）は、ビデオストリーム、オーディオストリームについての「属性情報」と、ＡＣＣＥＳＳ  ＵＮＩＴを頭出しするためのリファレンステーブルである「ＴＭＡＰ」とからなる。
属性情報（Ａｔｔｒｉｂｕｔｅ）は、破線の引き出し線ｈｎ２に示すようにビデオストリームについての属性情報（Ｖｉｄｅｏ属性情報）、属性情報数（Ｎｕｍｂｅｒ）、ＡＶストリームに多重化される複数オーディオストリームのそれぞれについての属性情報（Ａｕｄｉｏ属性情報＃１〜＃ｍ）からなる。ビデオストリームについての管理情報は、破線の引き出し線ｈｎ３に示すようにそのビデオストリームがどのような圧縮方式で圧縮されたか（Ｃｏｄｉｎｇ）、ビデオストリームを構成する個々のピクチャデータの解像度がどれだけであるか（Ｒｅｓｏｌｕｔｉｏｎ）、アスペクト比はどれだけであるか（Ａｓｐｅｃｔ）、フレームレートはどれだけであるか（Ｆｒａｍｅｒａｔｅ）を示す。
一方、オーディオストリームについての属性情報（Ａｕｄｉｏ属性情報＃１〜＃Ｍ）は、破線の引き出し線ｈｎ４に示すようにそのオーディオストリームがどのような圧縮方式で圧縮されたか（Ｃｏｄｉｎｇ）、そのオーディオストリームのチャネル番号が何であるか（Ｃｈ．）、何という言語に対応しているか（Ｌａｎｇ）を示す。
タイムマップ（ＴＭＡＰ）は、複数の頭出し位置のアドレスを、時刻情報を用いて間接参照するためのリファレンステーブルであり、破線の引き出し線ｈｎ５に示すように複数のエントリー情報（ＡＣＣＥＳＳ  ＵＮＩＴ＃１  エントリー情報、ＡＣＣＥＳＳ  ＵＮＩＴ＃２  エントリー情報、ＡＣＣＥＳＳ  ＵＮＩＴ＃３  エントリー情報・・・・・）と、エントリー情報数（Ｎｕｍｂｅｒ）とからなる。各エントリー情報は、引き出し線ｈｎ６に示すように、対応するＡＣＣＥＳＳ  ＵＮＩＴの再生時間（Ｄｕｒａｔｉｏｎ）と、対応するＡＣＣＥＳＳ  ＵＮＩＴのデータサイズ（Ｓｉｚｅ）とを対応づけてなる。可変長符号圧縮方式が採用されるため、ＧＯＰを含む各ＡＣＣＥＳＳ  ＵＮＩＴのサイズや再生時間がバラバラであっても、この『エントリー情報』を参照することにより、任意の再生時刻から、その再生時刻に対応するＡＣＣＥＳＳ  ＵＮＩＴ内のピクチャデータへと頭出しを行うことが可能になる。尚、ＸＸＸ．ＣＬＰＩのファイル名ＸＸＸは、ストリーム管理情報が対応しているＡＶストリームと同じ名称が使用される。つまり本図におけるＡＶストリームのファイル名はＸＸＸであるから、ＡＶストリーム（ＸＸＸ．Ｍ２ＴＳ）に対応していることを意味する。以上がストリーム管理情報についての説明である。続いてプレイリスト情報について説明する。
ＹＹＹ．ＰＬ（プレイリスト情報）は、再生経路情報であるプレイリストを構成するテーブルであり、ＣｅｌｌＬｉｓｔからなる。図９は、ＰＬ情報の内部構成を示す図である。
ＣｅｌｌＬｉｓｔは、複数のＣｅｌｌ情報（Ｃｅｌｌ情報＃１，＃２，＃３・・・＃ｎ）と、これらＣｅｌｌ情報数（Ｎｕｍｂｅｒ）とからなる。セル情報は、ポインタ情報であり、プレイリストを構成する１つ以上の論理的な再生区間を定義する。セル情報の構成は、引き出し線ｈｓ１によりクローズアップされている。この引き出し線に示すようにセル情報は、再生区間のＩｎ点及びＯｕｔ点が属するＡＶストリームの名称を示す『Ｓｔｒｅａｍ  Ｎａｍｅ』と、再生区間の始点を示す情報『ＩＮ点情報』と、再生区間の終点を示す情報『Ｏｕｔ点情報』とから構成される。
セル情報の特徴は、その表記法にある。つまりタイムマップをリファレンステーブルとして用いた間接参照の形式で、再生区間が定義されている。図１０は、ＰＬ情報による間接参照を模式化した図である。本図においてＡＶストリームは、複数のＡＣＣＥＳＳ  ＵＮＩＴから構成されている。ストリーム管理情報内のＴＭＡＰは、これら複数ＡＣＣＥＳＳ  ＵＮＩＴのセクタアドレスを、矢印ａｙ１，２，３，４に示すように指定している。図中の矢印ｊｙ１，２，３，４は、ＣＥＬＬ情報によるＡＣＣＥＳＳ  ＵＮＩＴの参照を模式化して示している。つまり、ＣＥＬＬ情報による参照（矢印ｊｙ１，２，３，４）は、ＴＭＡＰを介することにより、ＡＶストリーム内に含まれる複数ＡＣＣＥＳＳ  ＵＮＩＴのアドレスを指定するという間接参照であることがわかる。
Ｃｅｌｌ情報−ストリーム管理情報−ＡＶストリームの組みからなるＢＤ−ＲＯＭ上の再生区間を『セル』という。ＰＬ情報−ストリーム管理情報−ＡＶストリームの組みからなるＢＤ−ＲＯＭ上の論理的な再生単位を『プレイリスト（ＰＬと略す）』という。ＢＤ−ＲＯＭに記録された映画作品は、この論理的な再生単位（ＰＬ）にて構成される。論理的な再生単位にて、ＢＤ−ＲＯＭにおける映画作品は構成されるので、本編たる映画作品とは別に、あるキャラクタが登場するようなシーンのみを指定するようなＰＬを定義すれば、そのキャラクタが登場するシーンのみからなる映画作品を簡単に制作することができる。図１１は、図１０に示したＰＬ情報（ＰＬ情報＃１）とは、別のＰＬ（ＰＬ情報＃２）を定義する場合の一例を示す図である。
様々なＰＬ情報を定義するだけで、映画作品のバリエーションは増えるので、映画制作者の表現の幅を増やすことが、静的なシナリオの最大のメリットである。
また、ＢＤ−ＲＯＭにおける再生単位には、ＰＬ、ＣＥＬＬといったものの他、Ｃｈａｐｔｅｒがある。Ｃｈａｐｔｅｒは、１つ、２つ以上のＣＥＬＬから構成される。
尚、ＰＬ情報のファイル名ＹＹＹは、ＢＤ−ＲＯＭにおいてＰＬ情報に付与される３桁の識別番号を抽象化している。つまり本図におけるＰＬ情報は、この識別番号ＹＹＹを用いて一意に識別される。ＰＬ情報の識別番号を”ＹＹＹ”と表現しているのは、ＰＬ情報の識別番号が、ＡＶストリーム及びＡＶストリーム管理情報の識別番号ＸＸＸとは別の番号体系であることを意味している（ここでの３桁という桁数は例示に過ぎず、何桁でもよい。）。
以上が、静的なシナリオについての説明である。続いて動的なシナリオについて説明する。
＜動的なシナリオ＞
動的なシナリオは、ＡＶストリームの再生制御を示すプログラムである。動的なシナリオによる再生制御は、装置に対するユーザ操作に応じて変化するものであり、プログラム的な性質をもつ。ここでの動的な再生制御には、２つのモードがある。２つのモードのうち１つは、ＡＶ機器特有の再生環境で、ＢＤ−ＲＯＭに記録された動画データを再生するモード（ノーマルモード）であり、もう１つはＢＤ−ＲＯＭに記録された動画データの付加価値を高めるモード（エンハンスドモード）である。図１２は、レイヤモデルの第４層における再生モードを示す図である。本図において第４層には、１つのノーマルモードと、２つのエンハンスドモードとが記述されている。１つのノーマルモードは、ＤＶＤライクな再生環境での再生モードでありＭＯＶＩＥモードと呼ばれる。２つのエンハンスドモードのうち、１つ目は、Ｊａｖａ仮想マシンを主体とした再生モードであり、Ｊａｖａモードと呼ばれる。２つ目のエンハンスドモードのうち、２つ目はブラウザを主体とした再生モードであり、Ｂｒｏｗｓｅｒモードと呼ばれる。
第４層には、ＭＯＶＩＥモード、Ｊａｖａモード、Ｂｒｏｗｓｅｒモードという３つのモードがあるので、動的な再生制御はどれかのモードで実行できるように記述されればよい。ＤＶＤプレーヤ向けのコマンドと良く似たコマンドで、制御手順を記述したい場合は、既存のＤＶＤ再生装置と良く似た再生制御を再生装置に実行させることができる。ページ記述言語で制御手順を記述した場合は、ネットワーク上のサイトをアクセスしたり、ファイルをダウンロードするような制御手順を記述することができる。図１３は、３つのモードの動的な再生制御にて作成される映画作品を示す図である。
図１３（ａ）は、ＭＯＶＩＥモードで動的な再生制御を定義することにより、作成される映画作品の一場面を示す図である。ＭＯＶＩＥモードはＤＶＤ再生装置が解釈可能なコマンドと良く似たコマンドで再生制御を記述することができるので、ＤＶＤと同じような再生制御、つまり、メニューに対する選択により再生が進行するような再生制御を定義することができる。
図１３（ｂ）は、Ｊａｖａモードで動的な再生制御を定義することにより、作成される映画作品である。ＪａｖａモードはＪａｖａ仮想マシンが解釈可能なＪａｖａ言語で制御手順を記述することができる。この再生制御がコンピュータ・グラフィックス（ＣＧ）の動作を制御するものなら、Ｊａｖａモードにあっては、動画を表示した画面の横でＣＧ（図中のフクロウの絵）が動きまわっているような再生制御を定義することができる。
図１３（ｃ）は、Ｂｒｏｗｓｅｒモードで動的な再生制御を定義することにより、作成される映画作品である。Ｂｒｏｗｓｅｒモードはブラウザが解釈可能なＨＴＭＬ言語で再生制御を記述することができる。この再生制御がＷＥＢサイトのアクセスやウィンドゥの動作を制御するものなら、Ｂｒｏｗｓｅｒモードにあっては、動画を表示した画面の横で、ＷＥＢサイトから得たオンラインデータ（図中のキャラクタＡの掲示板やバナー広告）を表示するような再生制御を定義することができる。
以上が動的なシナリオの概略である。以降、各のモードの再生制御を規定するファイルについて、モード毎に説明してゆく。
＜ＭＯＶＩＥモードにおける動的なシナリオ＞
先ずＭＯＶＩＥモードにおける動的シナリオについて説明する。ＭＯＶＩＥモードにおける動的シナリオには、トランスポートストリーム中のＮａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報、ＭＯＶＩＥオブジェクトがある。
Ｎａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報とは、ＡＶストリーム内に多重化されたストリームの１つであり、メニューにおけるボタンの挙動を司り、確定されたボタンに応じた再生制御を行う。メニューの挙動には、リモコンの矢印キーの押下に応じてメニュー上のボタンの状態を変えるというもの（１）、メニュー上のボタン確定に応じて再生装置におけるレジスタの値を更新するというもの（２）、メニュー上のボタン確定に応じて分岐を実現するというもの（３）があり、これらの挙動を制御し、ボタンに応じたコマンドを再生装置に実行させることが、Ｎａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報の役割である。図１４はＮａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報の構成を示す図である。
Ｎａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報は、ボタン制御情報（Ｂｕｔｔｏｎ  Ｃｏｎｔｒｏｌ情報）と、イメージデータ（Ｉｍａｇｅ  Ｄａｔａ）とからなる。イメージデータは、破線の引き出し線ｈｈ１に示すように複数のＰＮＧデータ（ＰＮＧｓ）と、これらＰＮＧデータが共通に参照するＬｏｏＫ  Ｕｐ  Ｔａｂｌｅ（ＣＯＭＭＯＮ  ＬＵＴ）とからなる。イメージデータにおける個々のＰＮＧデータ（ＰＮＧデータ＃１，＃２，＃３）は、メニューにおける個々のボタン（Ｂｕｔｔｏｎ＃１，＃２，＃３）を描いたイメージデータである。
ボタン制御情報は、破線の引き出し線ｈｈ２に示すようにＰａｇｅ  Ａｆｆｉｌｉａｔｉｏｎ情報とＢｕｔｔｏｎ  Ａｆｆｉｌｉａｔｅｄ情報とからなる。Ｐａｇｅ  Ａｆｆｉｌｉａｔｉｏｎ情報は、破線の引き出し線ｈｈ３に示すようにメニューにおけるボタン表示開始時刻を示す『Ｂｕｔｔｏｎ  Ｄｉｓｐｌａｙ  Ｂｅｇｉｎ  Ｔｉｍｅ』、表示終了時刻を示す『Ｂｕｔｔｏｎ  Ｄｉｓｐｌａｙ  Ｅｎｄ  Ｔｉｍｅ』、初期状態において選択状態にすべきボタンを示す『Ｉｎｉｔｉａｌｌｙ  Ｓｅｌｅｃｔｅｄ  Ｂｕｔｔｕｎ』とからなる。
Ｂｕｔｔｏｎ  Ａｆｆｉｌｉａｔｅｄ情報は、破線の引き出し線ｈｈ４に示すように複数のＢｕｔｔｏｎ  Ａｆｆｉｌｉａｔｉｏｎ＃１，＃２‥‥からなる。各Ｂｕｔｔｏｎ  Ａｆｆｉｌｉａｔｉｏｎは、破線の引き出し線ｈｈ５に示すように複数のＰＮＧデータのうち、ボタンのイメージがどれであるかを示す『Ｂｕｔｔｏｎ  Ｉｍａｇｅ情報』、ボタンイメージの配置位置を示す『Ｂｕｔｔｏｎ  ｄｉｓｐｌａｙ  Ｌｏｃａｔｉｏｎ』、各ボタンの上下左右にどのボタンが存在するかを示す『Ｒｅｌａｔｉｏｎｓｈｉｐ  ｗｉｔｈ  Ｕｐｐｅｒ／Ｌｏｗｅｒ／Ｓｉｄｅ  Ｂｕｔｔｏｎｓ』、各ボタンの確定時に実行すべき『Ｂｕｔｔｏｎ  Ｃｏｍｍａｎｄ』からなる。
メニューにおける各ボタンのＢｕｔｔｏｎ  Ａｆｆｉｌｉａｔｅｄ情報には、ボタンの上下左右にどのボタンが存在するかが記されているので、ユーザによりリモコンの矢印キーが押下されれば、Ｂｕｔｔｏｎ  Ａｆｆｉｌｉａｔｅｄ情報におけるＵｐｐｅｒ／Ｌｏｗｅｒ／Ｓｉｄｅ  Ｂｕｔｔｏｎｓを参照して、その矢印キーの方向に沿った位置にあるボタンを知得し、そのボタンの状態を変化させることができる。これにより、矢印キーの押下に応じて、そのキーの方向のボタンの状態が変化することになる。そしてユーザにより確定操作がなされた場合、そのボタンのＢｕｔｔｏｎ  Ａｆｆｉｌｉａｔｅｄ情報におけるＢｕｔｔｏｎ  Ｃｏｍｍａｎｄを実行することにより、ボタンの押下に応じた動的な再生制御を実行することができる。
Ｎａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報はＡＶストリームに組み込まれているので、ある動画の一コマが画面に現れたタイミングに、特定の処理を再生装置に実行させるという再生制御、つまり、動画内容と緻密に同期した再生制御の記述に便利である。またＮａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報は、ＡＶストリーム自身に多重化されているので、再生制御を行いたい区間が数百個であっても、それらに対応するＮａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報の全てをメモリに格納しておく必要はない。Ｎａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報はＡＣＣＥＳＳ  ＵＮＩＴ毎にビデオパケットと共にＢＤ−ＲＯＭから読み出されるので、現在再生すべき動画区間に対応するＮａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報をメモリに常駐させ、この動画区間の再生が終われば、そのＮａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報をメモリから削除して、次の動画区間に対応するＮａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報をメモリに格納すればよい。Ｎａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報は、ＡＶストリームに多重化されるので、たとえＮａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報の数が数百個になってもメモリの搭載量を必要最低限にすることができる。
Ｎａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報におけるコマンドの記述例を図１５を参照しながら説明する。図１５は、ＡＶストリームに多重化されているＮａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報でボタンの制御を行う場合の一例を示す図である。
図１５におけるＡＶストリームは、映画であり、図中の複数ボタンはこの映画の一コマに合成されて表示される。図中のボタンＡ，Ｂ，Ｃは映画作品に登場する各キャラクタに対応するものであり、この映画に登場するキャラクタＡ，Ｂ，Ｃの何れかを選ぶという選択操作により選択状態、確定状態と状態を変える。
本図においてＮａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報は、ビデオストリームにおいて対話操作が必要な期間より前に配置される。図中のＡＶストリームに多重化されているＮａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報は、メニューにおける各ボタンの確定時に、それぞれ異なる値をＧＰＲＭ（０）に設定する。ＧＰＲＭ（０）とは、レイアモデルの第３層（静的シナリオ）（静的なシナリオ）で管理されるレジスタ設定値である。具体的にいうと、キャラクタＡのボタンの確定時には、ＧＰＲＭ（０）が１に設定され、キャラクタＢのボタンの確定時には、ＧＰＲＭ（０）が２に設定される。キャラクタＣのボタンの確定時には、ＧＰＲＭ（０）が３に設定される。このようにＮａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報を描画すれば、メニューの描画時にどのボタンが選択されたかという情報をＧＰＲＭ（０）に残しておくことができる。以上がＮａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報についての説明である。
ＭＯＶＩＥオブジェクト（ＸＸＸ．ＭＯＶＩＥ）とは、ＤＶＤ再生装置が解釈可能なコマンドに類似したコマンドにて記述された、動的なシナリオである。ＰＬの再生を命じる再生コマンド、その再生に先立ち実行すべきコマンド（ＰＲＥコマンド）、その再生後に実行すべきコマンド（ＰＯＳＴコマンド）からなる。１つ以上のＭＯＶＩＥオブジェクトと、各ＭＯＶＩＥオブジェクトにて再生が命じられるＰＬとの組みをＴｉｔｌｅという。Ｔｉｔｌｅは、ＢＤ−ＲＯＭにおける映画作品全体に相当する単位である。またＭＯＶＩＥオブジェクトは、Ｍ−ＯＢＪと略記する場合がある。
図１６は、ＡＶストリーム中のＮａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報が図１５のように設定されている場合のＭＯＶＩＥオブジェクトの一例を示す。本図のＭＯＶＩＥオブジェクトは、ＧＰＲＭ（０）に０を設定するＰＲＥコマンド、ＰＬの再生を再生装置に命じるコマンド（ＰｌａｙＰ１（ＰＬ＃１））、他の動的シナリオへの分岐を再生装置に命じるＰＯＳＴコマンド（ＩＦ（ＧＰＲＭ（０）＝０）｛Ｊｕｍｐ  Ｔｉｔｌｅ＃ｍ｝ｅｌｓｅ｛Ｊｕｍｐ  Ｔｉｔｌｅ＃ｍ＋１｝）からなる。このＰＲＥコマンドにより、ＰＬの再生に先立ち、ＧＰＲＭ（０）が初期化されることになる。またＰＯＳＴコマンドによりＧＰＲＭ（０）が初期化時の０を示すなら、ＭＯＶＩＥオブジェクト＃ｍ＋１に分岐することになる。一方、メニュー表示時にボタン選択がなされ、ＧＰＲＭ（０）が０以外の値に設定されたなら、他のタイトル（Ｔｉｔｌｅ＃ｍ）に分岐することになる。
ユーザ操作に応じてレジスタの設定値を変えるコマンドをＮａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報に組み込んでおき、再生装置におけるレジスタ設定値を用いた条件付き分岐をＰＯＳＴコマンドとして記述しておけば、ユーザ操作に応じて再生進行が変わるような映画作品（マルチストーリー型の映画）を、容易に作成することができる。
ＭＯＶＩＥモードにおけるシナリオには、Ｎａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報、ＭＯＶＩＥオブジェクトの２種があるので、メニューにおけるボタンの挙動と緻密に同期させたい処理はＮａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報に記述し、ＰＬ再生の前処理、後処理というような統合的な処理については、ＭＯＶＩＥオブジェクトに記述することができる。ボタンと同期させるべき処理か、統合的な処理かによって、コマンドの記述を変えることができるので、再生制御の表現の幅が広がる。またボタンと同期するような再生制御の数を増やしても、古いＮａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報を新たなＮａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報で上書きしてゆくことで、かかる再生制御の記述には再生装置のメモリの大規模化を招かない。
＜Ｊａｖａモードにおける動的なシナリオ＞
続いてＪａｖａモードで用いられる動的シナリオについて説明する。
ＺＺＺ．ＣＬＡＳＳは、Ｊａｖａモードにおける動的な再生制御を規定するアプリケーションプログラム（Ｊａｖａオブジェクト）を定義したクラスファイルである。Ｊａｖａモードでは、Ｊａｖａ仮想マシンがシナリオの実行主体となるので、ＪａｖａオブジェクトはＪａｖａ言語で記述される。Ｊａｖａ言語（登録商標）はＳＵＮ  Ｍｉｃｒｏｓｙｓｔｅｍｓ社が開発したミドルウェア向けの記述言語であり、近年では日本の携帯電話や欧州のディジタル放送ＤＶＢ−ＭＨＰなど民生機器で広く使われつつある。Ｊａｖａ言語はＣ＋＋などと同じオブジェクト指向のプログラミング言語である。Ｃ＋＋との違いは、Ｃ＋＋はオペレーティングシステム上で実装されているのに対して、Ｊａｖａは仮想マシーン（Ｊａｖａ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）を定義し、ＷｉｎｄｏｗｓやＬｉｎｕｘなどの主要オペレーティングシステム上で実装されている。そのためＪａｖａ言語を用いれば、オペレーティングシステムに依存することのない処理手順を記述することができる。Ｊａｖａ言語が携帯電話やＳＴＢに採用されているのは、実行環境がメーカ毎に異なっていても、実行環境に依存しない処理手順を記述することができるからである。Ｊａｖａオブジェクトは、Ｊ−ＯＢＪと略記する場合がある。
図１７は、図１６のＭＯＶＩＥオブジェクトのコマンドにより分岐がなされた場合のＪａｖａオブジェクトの記述例である。このＪａｖａオブジェクトは、ＣＧを描画し（１）、ＰＬ中のＣＥＬＬを再生するという処理（２）を、ＧＰＲＭ（０）の値に応じて行うものである。こうした処理により、図１３（ｂ）に示すような合成画像、つまり、ＰＬを構成する動画データを再生させながら、その脇で、キャラクタのＣＧを動作させるという合成画像を作成することができる。またこの記述例のｉｆ文は、ＧＰＲＭ（０）に応じて、描画すべきキャラクタや、再生すべきＣＥＬＬを変化させている。
描画すべきＣＧに着目して説明を行う。図１７の一例において、『Ａ．ＤｒａｗＣｈａｒａｃｔｅｒ（）；』とは、キャラクタＡというＣｌａｓｓの１つのｍｅｔｈｏｄ（※図中のＤｒａｗＣｈａｒａｃｔｅｒ関数のことである）を用いて、キャラクタＡのＯｂｊｅｃｔを画面上に描画させることを意味する。
『Ｂ．ＤｒａｗＣｈａｒａｃｔｅｒ（）；』，『Ｃ．ＤｒａｗＣｈａｒａｃｔｅｒ（）；』も同じ意味であり、キャラクタＢ，ＣというＣｌａｓｓの１つのｍｅｔｈｏｄ（※図中のＤｒａｗＣｈａｒａｃｔｅｒ関数のことである）を用いて、キャラクタＢ，ＣのＯｂｊｅｃｔを画面上に描画させることを意味する。
『Ａ．ＤｒａｗＣｈａｒａｃｔｅｒ（）；』、『Ｂ．ＤｒａｗＣｈａｒａｃｔｅｒ（）；』、『Ｃ．ＤｒａｗＣｈａｒａｃｔｅｒ（）；』は、ＧＰＲＭ（０）の値によって排他的に実行されるので（図中のｉｆ文）、ＧＰＲＭ（０）が１ならキャラクタＡのＣＧが、ＧＰＲＭ（０）が２ならキャラクタＢのＣＧが、ＧＰＲＭ（０）が３ならキャラクタＣのＣＧが、それぞれ描画される。図１８は、ＭＯＶＩＥオブジェクトとＪａｖａオブジェクトとの関連を示す図である。図１８の左半分は、図１６に示したＭＯＶＩＥオブジェクトの記述例と同一である。本図においてＧＰＲＭ（０）は、ＡＶストリームに組み込まれたＮａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報により設定される。ＧＰＲＭ（０）は、レイアモデルにおいて第３層（静的シナリオ）（静的シナリオ）にて管理されるパラメータである。このＧＰＲＭ（０）は、ＭＯＶＩＥモード、Ｊａｖａモード、Ｂｒｏｗｓｅｒモードの何れかからでも参照されるので、Ｊａｖａオブジェクトにおける処理を、ＭＯＶＩＥモードにおいて設定されたＧＰＲＭ（０）に応じて切り換えることができる。ＭＯＶＩＥモードにおけるＮａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報により、ＧＰＲＭ（０）の値を変化させ、Ｊａｖａモードにおいて、描画すべきＣＧを切り換えることができる。ＧＰＲＭ（０）によるＭＯＶＩＥオブジェクトとＪａｖａオブジェクトとの連携により、動画データの再生と、Ｊａｖａ仮想マシンによる処理とを融合させた新しいスタイルの映画作品を創作することができる。
ＧＰＲＭ（０）の値に応じたＪａｖａオブジェクトの処理が、キャラクタＡ，Ｂ，Ｃのどれかを主役にしたゲームであるなら、ＭＯＶＩＥモードにおいて動画でキャラクタの紹介を行い、ユーザによるキャラクタ選択を受け付けて、Ｊａｖａモードにおいてユーザが選択したキャラクタを主役にしたゲームを実行するという手順（このような手順は現在のゲームソフトに多くみられる）を、映画の動画データを用いて簡単に記述することができる。図１９は、ＭＯＶＩＥオブジェクトにおけるキャラクタ紹介と、Ｊａｖａモードにおけるゲームとから構成されるタイトルを模式的に示す図である。
ＧＰＲＭ（０）を介したＭＯＶＩＥモードとＪａｖａモードとの連携により、キャラクタの紹介から、そのキャラクタを主役にしたゲーム実行までの一連の手順を、ＭＯＶＩＥモードにおける映画を用いて簡単に記述することができる。
一方、再生すべきＣＥＬＬについて着眼すると、ＧＰＲＭ（０）が１ならＰＬ＃１のＣＥＬＬ＃１が、ＧＰＲＭ（０）が２ならＰＬ＃２のＣＥＬＬ＃１が、ＧＰＲＭ（０）が３ならキャラクタＣが、それぞれ描画される。
ここで、ＰＬ＃１のＣＥＬＬ＃２は、ＡＶストリームのうち、キャラクタＡが登場している区間のみを指定している再生単位であるものとする。このＣＥＬＬを、キャラクタＡのＣＧと共に再生させることで、キャラクタＡのＣＧが動きまわり、その横で動画像たるキャラクタＡが表示されるような合成画面（図１３（ｂ））を表示させることができる。図２０は、ＪａｖａオブジェクトからのＰＬ再生を模式的に示した図である。本図におけるＪａｖａオブジェクトは、ＰＬ＃１のＣＥＬＬ＃２の再生を命じる関数呼出を含む。この関数呼出により、ＰＬを構成する１つのＣＥＬＬが再生されることになる。本図におけるＰＬ＃１は、ＭＯＶＩＥモードにおいて再生が命じられているものであれば、このＰＬ＃１のうち、ＣＥＬＬ＃２の部分区間のみが、Ｊａｖａオブジェクトにおいて引用されることになる。このようなＪａｖａオブジェクトからの関数呼出により、ＭＯＶＩＥモードにおいて再生されるべき映像作品（ＰＬ＃１）のうち、特定のシーン（ＣＥＬＬ＃２）のみをＪａｖａオブジェクトにおけるゲームで用いるという”シーンの引用”が容易に行われる。図２０の一例は、ＭＯＶＩＥモードで使用されたＰＬをＪａｖａモードで利用するという、ＰＬのシェアリングを前提としたシーン引用である。ＰＬをシェアリングするのではなく、ＭＯＶＩＥモードで使用されたいたＰＬとは別のＰＬを用いて、シーン引用することも可能である。図２１は、ＭＯＶＩＥモードで使用されたいたＰＬとは別のＰＬを用いることによる、シーン引用を示す図である。
これら図２０、図２１の引用により、映画の中のシーンをＪａｖａモードにおけるゲームの中で回想するという回想シーンを容易に作成することができる。かかる引用により、映画作品制作にあたっての表現の幅が広がり、ＢＤ−ＲＯＭの商品価値を高めることができる。尚、図２１、図２２の一例は、ＣＥＬＬの単位で引用を行ったが、Ｊａｖａオブジェクトから再生を命じる範囲を、時間で指定してもよい。同様にＢｒｏｗｓｅｒモードから引用を行ってもよい。映画作品との連携を図ったゲームソフトや、映画作品の一シーンを引用したゲームソフトをＪａｖａ言語にてプログラミングさせるので、ＢＤ−ＲＯＭの制作事業に、多くのソフトハウスを参入させることができる。
＜Ｂｒｏｗｓｅｒモードにおける動的なシナリオ＞
ＷｅｂＰａｇｅオブジェクト（ＺＺＺ．ＨＴＭ）とは、ＨＴＭＬ，ＸＭＬ，ＢＭＬ等のページ記述言語を用いて記述されたシナリオである。ＷｅｂＰａｇｅオブジェクトは、ＷＰ−ＯＢＪと略記する場合がある。ＨＴＭＬでの記述が可能なので、ＢｒｏｗｓｅｒモードはＷＥＢサイトへのアクセスを交えた制御手順を記述することができる。図２２は、ＷｅｂＰａｇｅオブジェクトの記述例である。この記述例は、図１８をベースにしている。本図のＷｅｂＰａｇｅオブジェクトが異なるのは、ＧＰＲＭ（０）の値に応じて異なるＷＥＢサイトにアクセスしている点である。つまり、ＧＰＲＭ（０）が１である場合、キャラクタＡに関連するＷＥＢサイトを、ＧＰＲＭ（０）が２である場合、キャラクタＢに関連するＷＥＢサイトを、ＧＰＲＭ（０）が３である場合、キャラクタＣに関連するＷＥＢサイトを、それぞれアクセスしている。本図においてＧＰＲＭ（０）は、ＡＶストリームに組み込まれたＮａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報により設定される。またＧＰＲＭ（０）は、レイアモデルにおいて第３層（静的シナリオ）に存在しており、ＭＯＶＩＥモード、Ｊａｖａモード、Ｂｒｏｗｓｅｒモードの何れかからでも参照されるので、ＷｅｂＰａｇｅオブジェクトにおける処理を、ＭＯＶＩＥモードにおいて設定されたＧＰＲＭ（０）に応じて切り換えることができる。ＷＥＢサイトからのオンラインデータが、毎日、毎週といった間隔で更新されるニュースやＢＢＳ、バナー広告である場合、これらのオンラインデータの表示を交えることで、動画データに対する印象を常に新鮮なものに保つことができる。またＷｅｂＰａｇｅオブジェクトでは、ＷＥＢサーバにアクセスする手順の記述が可能なので、最新バージョンのＰＬやＶＯＢをＷＥＢサーバから取得し、これらを交えた再生制御を再生装置に行わさせることができる。ＧＰＲＭ（０）による、ＭＯＶＩＥオブジェクトとＷｅｂＰａｇｅオブジェクトとの連携により、動画データの再生と、ブラウザによる処理とを融合させた新しいタイプの映像作品を創作することができる。
尚、ファイル名ＺＺＺ．ＭＯＶＩＥ、ＺＺＺ．ＣＬＡＳＳ、ＺＺＺ．ＨＴＭにおけるファイルボディ「ＺＺＺ」は、ＢＤ−ＲＯＭにおいて動的シナリオに付与される３桁の識別番号を抽象化している。つまり本図におけるシナリオは、この識別番号ＺＺＺを用いて一意に識別される。シナリオの識別番号を”ＺＺＺ”と表現しているのは、シナリオの識別番号が、ＡＶストリームの識別番号ＸＸＸ、ＰＬ情報の識別番号ＹＹＹとは別の番号体系であることを意味している（ここでの３桁という桁数は例示に過ぎず、何桁でもよい。）。
＜シナリオの記述手法＞
ＭＯＶＩＥオブジェクト、Ｊａｖａオブジェクト、ＷｅｂＰａｇｅオブジェクトの制御手順を記述するための記述手法について説明する。これらのシナリオが対象としているレイアモデルにおいて、ＭＯＶＩＥオブジェクトを実行するＤＶＤ仮想プレーヤ、Ｊａｖａオブジェクトを実行するＪａｖａ仮想マシン、ＷｅｂＰａｇｅオブジェクトを実行するブラウザは、何れも第３層（静的シナリオ）上に存在している。ＪａｖａオブジェクトやＷｅｂＰａｇｅオブジェクトは、ＣＧの描画やＷＥＢサイトのアクセス等、Ｊａｖａモードやブラウザに行わせるべき本来の処理を、Ｊａｖａ言語やＨＴＭＬで記述し、これ以外の処理、つまりＢＤ−ＲＯＭの再生制御は、第３層（静的シナリオ）から供給されるプログラミング関数を用いて記述すればよい。
以降、第３層（静的シナリオ）から供給される関数について説明する。
（ａ）再生関数：第１引数で指定するプレイリストの再生を、第２引数で指定する位置から再生を開始させる；
書式：ＰｌａｙＰＬ（第１引数，第２引数）
第１引数は、プレイリストの番号で、再生すべきＰＬを指定することができる。第２引数は、そのＰＬに含まれるＣＥＬＬや、そのＰＬにおける任意の時刻、Ｃｈａｐｔｅｒ、Ｍａｒｋを用いて再生開始位置を指定することができる。
ＣＥＬＬにより再生開始位置を指定したＰｌａｙＰＬ関数をＰｌａｙＰＬａｔＣＥＬＬ（）、
Ｃｈａｐｔｅｒにより再生開始位置を指定したＰｌａｙＰＬ関数をＰｌａｙＰＬａｔＣｈａｐｔｅｒ（）、
Ｍａｒｋにより再生開始位置を指定したＰｌａｙＰＬ関数をＰｌａｙＰＬａｔＭａｒｋ（）、
時刻情報により再生開始位置を指定したＰｌａｙＰＬ関数をＰｌａｙＰＬａｔＳｐｅｃｉｆｉｅｄ  Ｔｉｍｅ（）という。
（ｂ）再生装置の状態取得や状態設定のための関数
再生装置の状態は、３２個のＰｌａｙｅｒ  Ｓｔａｔｕｓ  Ｒｅｇｉｓｔｅｒ（これの設定値は、Ｓｙｓｔｅｍ  Ｐａｒａｍｅｔｅｒ（ＳＰＲＭ）と呼ばれる）と、３２個のＧｅｎｅｒａｌ  Ｐｕｒｐｏｓｅ  Ｒｅｇｉｓｔｅｒ（これの設定値は、Ｇｅｎｅｒａｌ  Ｐａｒａｍｅｔｅｒ（ＧＰＲＭ）と呼ばれる）とに示されている。
ＭＯＶＩＥオブジェクト、Ｊａｖａオブジェクト、ＷｅｂＰａｇｅオブジェクトは、以下の（ｉ）〜（ｉｖ）の関数を使用することにより、これらのレジスタに値を設定したり、これらのレジスタから値を取得したりすることができる。
（ｉ）Ｇｅｔ  ｖａｌｕｅ  ｏｆ  Ｐｌａｙｅｒ  Ｓｔａｔｕｓ  Ｒｅｇｉｓｔｅｒ関数
書式：Ｇｅｔ  ｖａｌｕｅ  ｏｆ  Ｐｌａｙｅｒ  Ｓｔａｔｕｓ  Ｒｅｇｉｓｔｅｒ（引数）
この関数は、引数で指定されたＰｌａｙｅｒ  Ｓｔａｔｕｓ  Ｒｅｇｉｓｔｅの設定値を取得する関数である。
（ｉｉ）Ｓｅｔ  ｖａｌｕｅ  ｏｆ  Ｐｌａｙｅｒ  Ｓｔａｔｕｓ  Ｒｅｇｉｓｔｅｒ関数
書式：Ｓｅｔ  ｖａｌｕｅ  ｏｆ  Ｐｌａｙｅｒ  Ｓｔａｔｕｓ  Ｒｅｇｉｓｔｅｒ（第１引数、第２引数）
この関数は、第１引数で指定されたＰｌａｙｅｒ  Ｓｔａｔｕｓ  Ｒｅｇｉｓｔｅｒに、第２引数で指定された値を設定させる関数である。
（ｉｉｉ）Ｇｅｔ  ｖａｌｕｅ  ｏｆ  Ｇｅｎｅｒａｌ  Ｐｕｒｐｏｓｅ  Ｒｅｇｉｓｔｅｒ関数
書式：Ｇｅｔ  ｖａｌｕｅ  ｏｆ  Ｇｅｎｅｒａｌ  Ｐｕｒｐｏｓｅ  Ｒｅｇｉｓｔｅｒ（引数）
この関数は、引数で指定されたＧｅｎｅｒａｌ  Ｐｕｒｐｏｓｅ  Ｒｅｇｉｓｔｅの設定値を取得する関数である。
（ｉｖ）Ｓｅｔ  ｖａｌｕｅ  ｏｆ  Ｇｅｎｅｒａｌ  Ｐｕｒｐｏｓｅ  Ｒｅｇｉｓｔｅｒ関数
書式：Ｓｅｔ  ｖａｌｕｅ  ｏｆ  Ｇｅｎｅｒａｌ  Ｐｕｒｐｏｓｅ  Ｒｅｇｉｓｔｅｒ（第１引数、第２引数）
この関数は、第１引数で指定されたＧｅｎｅｒａｌ  Ｐｕｒｐｏｓｅ  Ｒｅｇｉｓｔｅｒに、第２引数で指定された値を設定させる関数である。
Ｐｌａｙｅｒ  Ｓｔａｔｕｓ  Ｒｅｇｉｓｔｅｒの設定値（ＳＰＲＭ）がどのような意味をもつかは、以下に示す通りである。以下のＳＰＲＭ（ｘ）という表記は、ｘ番目のＰｌａｙｅｒ  Ｓｔａｔｕｓ  Ｒｅｇｉｓｔｅｒの設定値を意味する。
ＳＰＲＭ（０）          ：  Ｒｅｓｅｒｖｅｄ
ＳＰＲＭ（１）          ：  デコード対象たるオーディオストリームのストリーム
番号
ＳＰＲＭ（２）          ：  デコード対象たる副映像ストリームのストリーム番号
ＳＰＲＭ（３）          ：  ユーザによるアングル設定を示す番号
ＳＰＲＭ（４）          ：  現在再生対象とされているタイトルの番号
ＳＰＲＭ（５）          ：  現在再生対象とされているＣｈａｐｔｅｒの番号
ＳＰＲＭ（６）          ：  現在再生対象とされているＰＬの番号
ＳＰＲＭ（７）          ：  現在再生対象とされているＣＥＬＬの番号
ＳＰＲＭ（８）          ：  現在の再生時点を示す時刻情報
ＳＰＲＭ（９）          ：  ナビゲーションタイマのカウント値
ＳＰＲＭ（１０）          ：  現在選択状態にあるボタンの番号
ＳＰＲＭ（１１）〜（１２）：  Ｒｅｓｅｒｖｅｄ
ＳＰＲＭ（１３）          ：  ユーザによるパレンタルレベルの設定
ＳＰＲＭ（１４）          ：  再生装置の映像再生に関する設定
ＳＰＲＭ（１５）          ：  再生装置の音声再生に関する設定
ＳＰＲＭ（１６）          ：  再生装置における音声設定を示す言語コード
ＳＰＲＭ（１７）          ：  再生装置における字幕設定を示す言語コード
ＳＰＲＭ（１８）          ：  メニュー描画のための言語設定
ＳＰＲＭ（１９）〜（３１）：  Ｒｅｓｅｒｖｅｄ
｛ＳＰＲＭ（１）〜（２）について｝
ＳＰＲＭ（１）〜（２）は、ＰＬ再生に先立ちＰＲＥコマンドにより設定される。またＡＶストリームの再生中において、Ｎａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報におけるＢｕｔｔｏｎ  Ｃｏｍｍａｎｄによって更新される。ＳＰＲＭ（１）（２）を参照することで、以下のような応用が可能である。例えば、ＭＯＶＩＥモードにおいて音声を英語に設定し、字幕を日本語に設定して、ＰＬの再生を行っているものとする。この再生時に、ＭＯＶＩＥモードからＪａｖａモードへの分岐があれば、ＪａｖａオブジェクトはＳＰＲＭ（１），（２）を参照することにより、音声を英語に設定し、字幕を日本語に設定した上でＪａｖａオブジェクトのソフトウェアを実行することができる。Ｊａｖａオブジェクトのソフトウェアが英語リスニングの実習教材であるなら、映画の視聴と、リスニング教材による実習との相乗効果により、語学の習得効果を高めることができる。
｛ＳＰＲＭ（３）について｝
ＳＰＲＭ（３）は、ＰＬ再生に先立ちＰＲＥコマンドにより設定される。またＡＶストリームの再生中において、Ｎａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報におけるＢｕｔｔｏｎ  Ｃｏｍｍａｎｄによって更新される。ＡＶストリームにマルチアングル区間が存在する場合、どのアングルの動画データがデコード対象であるかは、ＳＰＲＭ（３）を参照すればわかる。
ＳＰＲＭ（３）を参照することで、以下の応用が可能である。映画作品が列車車窓ビデオであり、マルチアングル区間を含んでいるものとする。このマルチアングル区間は、右側座席、左側座席、運転席といった複数アングルから撮影された複数動画データを含んでいるものとする。この場合、ＳＰＲＭ（３）には、どのアングルからの再生かが示されているので、ＭＯＶＩＥモードからＪａｖａモードへの分岐時において、ＪａｖａオブジェクトがＳＰＲＭ（３）を参照すれば、ユーザ設定されたアングルからの映像再生を伴う運転ゲームを実現することができる。
｛ＳＰＲＭ（４）〜（７）について｝
ＳＰＲＭ（４）は、メニュー操作を介して、ユーザによりＴｉｔｌｅが選択された場合に更新される。ＳＰＲＭ（５）〜（７）は、現在の再生時点が進行する度に更新される。つまり現在の再生時点があるＣＥＬＬから別のＣＥＬＬに移行すれば、ＳＰＲＭ（７）が更新される。あるＰＬから別のＰＬへの切り換えがなされればＳＰＲＭ（６）が更新される。Ｃｈａｐｔｅｒの切り換えがなされればＳＰＲＭ（５）が更新される。
これにより再生装置が、どのＴｉｔｌｅを再生しているか、どのＰＬを再生しているか、またそのＰＬにおいてどのＣＥＬＬ、どのＣｈａｐｔｅｒを再生しているか、どのＣＥＬＬを再生しているのかは、ＳＰＲＭ（４）〜（７）を参照すればわかる。尚ＳＰＲＭ（４）〜（７）は、必ずしもＰＲＥコマンド、ＰＯＳＴコマンド、Ｂｕｔｔｏｎコマンドによりダイレクトに更新されるものではないが、ＰＬ再生というコマンドにより更新を受ける。間接的であるにせよ、動的シナリオから更新されることには変わりないので、ＳＰＲＭ（４）〜（７）は動的シナリオにより更新されるといえる。
｛ＳＰＲＭ（１０）について｝
ＳＰＲＭ（１０）は、ＡＶストリームに属する各ピクチャデータが表示される度に更新される。つまり再生装置が新たなピクチャデータを表示させれば、その新たなピクチャデータの表示開始時刻（Ｐｒｅｓｅｎｔａｔｉｏｎ  Ｔｉｍｅ）を示す値にＳＰＲＭ（１０）は更新される。このＳＰＲＭ（１０）を参照すれば、ＰＬ再生の途中でＭＯＶＩＥモードからＪａｖａモードへと移行するようにＮａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報内のＢｕｔｔｏｎ  Ｃｏｍｍａｎｄが記述されている場合、ＳＰＲＭ（１０）を参照することで、ＪａｖａモードにおけるＪａｖａオブジェクトは、ユーザが同じＢＤ−ＲＯＭに記録されている映画作品をどこまで視聴したかという視聴位置を知得することができる。そしてＪａｖａモードでは、この視聴位置に応じて登場するキャラクタが変わるように、ゲームソフトを記述することができ、よりＪａｖａモードにおけるゲームをより面白くすることができる。尚ＳＰＲＭ（１０）は、ＰＲＥコマンド、ＰＯＳＴコマンド、Ｂｕｔｔｏｎコマンドによりダイレクトに更新されるものではないが、ＰＬ再生というコマンドにより更新を受ける。間接的であるにせよ、動的シナリオから更新されることには変わりないので、ＳＰＲＭ（１０）は動的シナリオにより更新されるといえる。
Ｇｅｔ  ｖａｌｕｅ  ｏｆ  Ｐｌａｙｅｒ  Ｓｔａｔｕｓ  Ｒｅｇｉｓｔｅｒ関数、Ｇｅｔ  ｖａｌｕｅ  ｏｆ  Ｇｅｎｅｒａｌ  Ｐｕｒｐｏｓｅ  Ｒｅｇｉｓｔｅｒ関数を用いて以上のようなＰｌａｙｅｒ  Ｓｔａｔｕｓ  Ｒｅｇｉｓｔｅｒを参照すれば、Ｊａｖａオブジェクト及びＷｅｂＰａｇｅオブジェクトは再生装置の状態を詳細に知得することができる。
（Ｃ）第３層（静的シナリオ）から供給されるプログラミング関数ではないが、動的シナリオから動的シナリオへの分岐も存在する。動的シナリオから動的シナリオへの分岐を行わせる関数には、以下のＪＭＰ関数と、ＣＡＬＬ関数とがある。
ＪＭＰ関数
書式：ＪＭＰ引数
ＣＡＬＬ関数
書式：ＣＡＬＬ引数
ＪＭＰ関数は、現在の動的シナリオを途中で廃棄し（ｄｉｓｃａｒｄ）、引数たる分岐先動的シナリオを実行するという分岐である。ＪＭＰ命令の形式には、分岐先動的シナリオを直接指定している直接参照のものと、分岐先動的シナリオを間接参照している間接参照のものがある。
Ｃａｌｌ関数とは、動的シナリオの動作を一旦停止してから（Ｓｕｓｐｅｎｄ）、引数たる分岐先動的シナリオを動作させ、分岐先動的シナリオの動作終了後、停止中の動的シナリオの動作を再開するという分岐である。Ｃａｌｌ命令の分岐先となる動的シナリオは、その末尾にＲｅｓｕｍｅ命令が配置されている。Ｒｅｓｕｍｅ命令とは、いわゆるサブルーチンのＲｅｔｕｒｎ命令であり、Ｃａｌｌ関数を実行したためにＳｕｓｐｅｎｄ状態になっている動的シナリオを、再起動させるための命令である。Ｃａｌｌ関数の形式には、ＪＭＰ命令同様、分岐先動的シナリオを直接指定している直接参照のものと、分岐先動的シナリオを間接参照している間接参照のものがある。
以上が、第３層（静的シナリオ）により供給される関数及び変数である。
＜統合管理の情報＞
続いて、ＭＯＶＩＥモードにおける動的シナリオ、Ｊａｖａモードにおける動的シナリオ、Ｂｒｏｗｓｅｒモードにおける動的シナリオを統合管理するための情報について説明する。かかる統合管理のための情報は、図３に示したＩＮＦＯ．ＢＤ−ＲＯＭである。
図２３（ａ）は、ＩＮＦＯ．ＢＤ−ＲＯＭの内部構成を示す図である。本図に示すようにＩＮＦＯ．ＢＤ−ＲＯＭはＩｎｄｅｘ  Ｔａｂｌｅを含む。Ｉｎｄｅｘ  Ｔａｂｌｅは、動的シナリオから動的シナリオへの分岐の際、参照される間接参照用テーブルであり、複数ラベルのそれぞれに対するＩｎｄｅｘからなる。各Ｉｎｄｅｘには、そのラベルに対応する動的シナリオのファイル名が記述されている。図２３（ｂ）に示すように、このファイル名は、ファイルボディと、拡張子とからなる。ラベルには、Ｔｉｔｌｅ＃１〜＃ｍ、Ｔｉｔｌｅ＃ｍ＋１〜＃ｎ、Ｔｉｔｌｅ＃０といったものがある。Ｉｎｄｅｘ  Ｔａｂｌｅは、３つのモードの何れの動的シナリオからも参照される。ＭＯＶＩＥオブジェクトからＪａｖａオブジェクト、ＭＯＶＩＥオブジェクトからＷｅｂＰａｇｅオブジェクトへの分岐は、Ｉｎｄｅｘ  Ｔａｂｌｅを介した場合のみ可能となる。逆に言えば、Ｉｎｄｅｘ  ＴａｂｌｅにＩｎｄｅｘがないＪａｖａオブジェクト、ＷｅｂＰａｇｅオブジェクトには、ＭＯＶＩＥオブジェクトからは分岐できない。
Ｔｉｔｌｅ＃１〜＃ｍＩＮＤＥＸは、ＢＤ−ＲＯＭにおいて１からｍ番目にエントリーされているＴｉｔｌｅについてのＩｎｄｅｘであり、これら１からｍまでのＴｉｔｌｅ番号の選択時において分岐先となるＭＯＶＩＥオブジェクトのファイル名が記述される。図２３（ｂ）は、Ｔｉｔｌｅ＃１〜＃ｍＩＮＤＥＸの内容を示す。本図に示すようにＴｉｔｌｅ＃１〜＃ｍＩＮＤＥＸには、ＭＯＶＩＥオブジェクトのファイル名が記述されている。このファイル名は、ファイルボディ（ＺＺＺ）、拡張子（．ＭＯＶＩＥ）からなる。
Ｔｉｔｌｅ＃ｍ＋１〜＃ｎＩＮＤＥＸは、ＢＤ−ＲＯＭにおいてｍ＋１からｎ番目にエントリーされているＴｉｔｌｅについてのＩｎｄｅｘであり、これらｍ＋１からｎまでのＴｉｔｌｅ番号の選択時において分岐先となるＷｅｂＰａｇｅオブジェクト／Ｊａｖａオブジェクトのファイル名が記述される。図２３（ｃ）は、Ｔｉｔｌｅ＃ｍ＋１〜＃ｎＩＮＤＥＸの内部を示す。本図に示すように  Ｔｉｔｌｅ＃ｍ＋１〜＃ｎＩＮＤＥＸには、Ｊａｖａオブジェクトのファイルボディ（ＺＺＺ）、拡張子（．ＭＯＶＩＥ）か、又は、ＷｅｂＰａｇｅオブジェクトのファイルボディ（ＺＺＺ）、拡張子（．ＨＴＭ）が格納されている。
Ｔｉｔｌｅ＃０ＩＮＤＥＸは、エンハンスドモードが実行不能な再生装置に装填され、エンハンスドモードへの分岐が再生装置に命じられた場合に参照された場合、エンハンスドモードシナリオの代わりに実行すべき、ムービーモードシナリオのファイル名を格納しておくＩｎｄｅｘである。
エンハンスドモードの実行不能とは、Ｊａｖａモードを実行するＪａｖａ仮想マシンや、Ｂｒｏｗｓｅｒモードを実行するブラウザがインストールされていないか（１）、アンインストールされているか（２）、またインストールされてはいるが、ネットワークからは遮断され、スタンドアローンで用いられている（３）ことを意味する。以上の（１）〜（３）の理由で、エンハンスドモードの実行が不可能な状態の再生装置をコアシステムという。またＪａｖａ仮想マシン、ブラウザによるプログラムの実行が可能な状態にある再生装置をフルシステムという。以下、コアシステム、フルシステムによるＢＤ−ＲＯＭの間接参照について、図２４を参照しながら説明する。この間接参照の説明では、図２４（ａ）に示すような複数の動的シナリオ（００１．ＭＯＶＩＥ，００２．ＭＯＶＩＥ，００３．ＭＯＶＩＥ‥‥‥、０１．ＣＬＡＳＳ，００２．ＣＬＡＳＳ，００３．ＣＬＡＳＳ‥‥‥）が記録されているＢＤ−ＲＯＭを想定している。ＢＤ−ＲＯＭに図２４（ａ）に示すような複数動的シナリオが記述されている場合のＩｎｄｅｘ  Ｔａｂｌｅの記述例を図２４（ｂ）に示す。図２４（ｂ）の記述例において、Ｔｉｔｌｅ＃１Ｉｎｄｅｘ〜Ｔｉｔｌｅ＃ｍＩｎｄｅｘには、ムービーモードシナリオである（００１．ＭＯＶＩＥ，００２．ＭＯＶＩＥ，００３．ＭＯＶＩＥ‥‥）が記述されている。一方、Ｔｉｔｌｅ＃ｍ＋１Ｉｎｄｅｘ〜Ｔｉｔｌｅ＃ｎＩｎｄｅｘには、エンハンスドモードシナリオのファイル名（００１．ＣＬＡＳＳ，００２．ＣＬＡＳＳ，００３．ＣＬＡＳＳ‥‥‥）が記述されている。図２５（ａ）は、図２４（ｂ）のようにＩｎｄｅｘ  Ｔａｂｌｅが記述された場合のフルシステムにおける間接参照を示す。Ｉｎｄｅｘ  Ｔａｂｌｅがこのように記述されているので、ラベルＴｉｔｌｅ＃１〜Ｔｉｔｌｅ＃ｍを分岐先とした分岐コマンドの実行時には、ラベルＴｉｔｌｅ＃１〜Ｔｉｔｌｅ＃ｍを分岐先とした分岐コマンドの実行時には、Ｔｉｔｌｅ＃１Ｉｎｄｅｘ〜Ｔｉｔｌｅ＃ｍＩｎｄｅｘからファイル名『００１．ＭＯＶＩＥ，００２．ＭＯＶＩＥ，００３．ＭＯＶＩＥ・・・・・』が、ラベルＴｉｔｌｅ＃ｍ＋１〜Ｔｉｔｌｅ＃ｎを分岐とした分岐コマンドの実行時には、Ｔｉｔｌｅ＃ｍ＋１Ｉｎｄｅｘ〜Ｔｉｔｌｅ＃ｎＩｎｄｅｘからファイル名『００１．ＣＬＡＳＳ，００２．ＣＬＡＳＳ，００３．ＣＬＡＳＳ・・・』が取り出され、そのファイル名の動的シナリオがメモリに読み出されて、実行されることになる。これがフルシステムによる間接参照である。
図２５（ｂ）は、コアシステムにおける間接参照を示す図である。ラベルＴｉｔｌｅ＃１〜Ｔｉｔｌｅ＃ｍを分岐先に指定した分岐コマンドの実行時には、図２５（ａ）と同様、Ｔｉｔｌｅ＃１Ｉｎｄｅｘ〜Ｔｉｔｌｅ＃ｍＩｎｄｅｘからファイル名『００１．ＭＯＶＩＥ，００２．ＭＯＶＩＥ，００３．ＭＯＶＩＥ・・・・・』が取り出されるが、ラベルＴｉｔｌｅ＃ｍ＋１〜Ｔｉｔｌｅ＃ｎを分岐先に指定した分岐コマンドの実行時には、Ｔｉｔｌｅ＃ｍ＋１Ｉｎｄｅｘ〜Ｔｉｔｌｅ＃ｎＩｎｄｅｘに代えてＴｉｔｌｅ＃０Ｉｎｄｅｘからファイル名『０００．ＭＯＶＩＥ』が取り出されて、そのファイル名の動的シナリオが再生装置により実行される。以上がフルシステム、コアシステムにおける間接参照である。
図２６は、図１８に示したＭＯＶＩＥオブジェクトからＪａｖａオブジェクトへの分岐がどのように行われるかを模式的に示す図である。図中の矢印ｊｎ１，２は、ＭＯＶＩＥオブジェクトからＪａｖａオブジェクトへの分岐を象徴的に示している。本図におけるＪｍｐ  Ｔｉｔｌｅ＃ｍ＋１がＪａｖａオブジェクトにおける分岐コマンドであり、ラベルＴｉｔｌｅ＃ｍ＋１のＩｎｄｅｘを介した間接参照の形式で分岐先のＪａｖａオブジェクトを指定している。ラベルＴｉｔｌｅ＃ｍ＋１のＩｎｄｅｘにはＪａｖａオブジェクトのファイル名が記述されており、これを参照することにより、再生装置はどのファイルをＪａｖａオブジェクトとして読み出せばよいかを知ることができる。
図２７は、コアシステムの再生装置に図１８に示したシナリオが記録されたＢＤ−ＲＯＭが装填された場合、どのような分岐が行われるかを示す。図１８に示した矢印が、図２７において破線ｈｓ１で描かれているのは、コアシステムでは、Ｊａｖａオブジェクトを実行する主体が存在しないので、図１８に示した分岐が無効化されていることを示す。図中の実線矢印ｊｓ１は、この分岐に代えてなされる予備の分岐を示す。この予備の分岐は、Ｔｉｔｌｅ＃０のＩｎｄｅｘを介した間接参照である。Ｔｉｔｌｅ＃０のＩｎｄｅｘには、ＭＯＶＩＥオブジェクト０のファイル名が格納されており、この分岐ではＭＯＶＩＥオブジェクト０が再生装置により読み出され、実行されることになる。ｓｇ１は、ＭＯＶＩＥオブジェクト０の分岐時に実行されるＭＯＶＩＥオブジェクトである。コアシステムのみの再生装置に本ＢＤ−ＲＯＭが装填された場合、ＭＯＶＩＥモードのゲームをユーザに実行させるので、Ｊａｖａモード／Ｂｒｏｗｓｅｒモードが実行されないことによるユーザの落胆を防ぐことができる。
以上が本発明に係る記録媒体の実施形態である。続いて本発明に係る再生装置の実施形態について説明する。図２８は、本発明に係る再生装置の内部構成を示す図である。本図に示すように、再生装置は、ＢＤ−ＲＯＭドライブ１、トラックバッファ２、デマルチプレクサ３、ビデオデコーダ４、ピクチャプレーン５、オーディオデコーダ６、イメージメモリ７、イメージプレーン８、イメージデコーダ９、加算器１０、静的シナリオメモリ１１、再生制御エンジン１２、プレーヤレジスタ１３、ＢＡＣＫＵＰメモリ１４、動的シナリオメモリ１５、ＤＶＤライクモジュール１６、Ｊａｖａモジュール１７、ＢＲＯＷＳＥＲモジュール１８、Ｕ０コントローラ１９、モジュールマネージャ２０、ディスパッチャ２１、レンダリングエンジン２２、通信部２３から構成される。
ＢＤ−ＲＯＭドライブ１は、ＢＤ−ＲＯＭのローディング／イジェクトを行い、ＢＤ−ＲＯＭに対するアクセスを実行する。
トラックバッファ２は、ＦＩＦＯメモリであり、ＢＤ−ＲＯＭから読み出されたＡＣＣＥＳＳ  ＵＮＩＴが先入れ先出し式に格納される。
デマルチプレクサ３は、トラックバッファ２からＡＣＣＥＳＳ  ＵＮＩＴを取り出して多重分離を行い、ＧＯＰを構成するビデオフレームと、オーディオフレームとを得てビデオフレームをビデオデコーダ４に出力し、オーディオフレームをオーディオデコーダ６に出力する。副映像ストリームはイメージメモリ７に格納し、Ｎａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報は動的シナリオメモリ１５に格納する。デマルチプレクサ３による多重分離は、ＴＳパケットをＰＥＳパケットに変換するという変換処理を含む。
ビデオデコーダ４は、デマルチプレクサ３から出力されたビデオフレームを復号して非圧縮形式のピクチャをビデオプレーン１５に書き込む。
ピクチャプレーン５は、非圧縮形式のピクチャを格納しておくためのメモリである。
オーディオデコーダ６は、デマルチプレクサ３から出力されたオーディオフレームを復号して、非圧縮形式のオーディオデータを出力する。
イメージメモリ７は、ＢＤ−ＲＯＭから読み出された副映像ストリーム、Ｎａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報内のＰＮＧデータ、画像ファイルを格納しておくバッファである。
イメージプレーン８は、一画面分の領域をもったメモリであり、展開された副映像ストリーム、ＰＮＧデータ、画像ファイルが配置される。
イメージデコーダ９は、イメージメモリ７に格納された副映像ストリーム、ＰＮＧデータ、画像ファイルを展開してイメージプレーン８に書き込む。副映像ストリームのデコードにより、各種メニュー、副映像が画面上に現れることになる。
加算器１０は、ピクチャプレーン５に格納された非圧縮形式のピクチャデータに、イメージプレーン８に展開されたイメージを合成して出力する。図１３（ｂ）に示した画面（動画を表示した画面の横でＣＧ（図中のフクロウの絵）が動きまわっているような画面）は、この加算器１０が、イメージプレーン８内のイメージと、ピクチャプレーン５内のピクチャとを合成することで出力される。
静的シナリオメモリ１１は、カレントのＰＬやカレントのストリーム管理情報を格納しておくためのメモリである。カレントＰＬとは、ＢＤ−ＲＯＭに記録されている複数ＰＬのうち、現在処理対象になっているものをいう。カレントストリーム管理情報とは、ＢＤ−ＲＯＭに記録されている複数ストリーム管理情報のうち、現在処理対象になっているものをいう。
再生制御エンジン１２は、ＡＶ再生機能（１）、プレイリストの再生機能（２）、再生装置における状態取得／設定機能（３）といった諸機能を実行する。再生装置のＡＶ再生機能とは、ＤＶＤプレーヤ、ＣＤプレーヤから踏襲した機能群であり、再生開始（Ｐｌａｙ）、再生停止（Ｓｔｏｐ）、一時停止（Ｐａｕｓｅ  Ｏｎ）、一時停止の解除（Ｐａｕｓｅ  Ｏｆｆ）、Ｓｔｉｌｌ機能の解除（ｓｔｉｌｌ  ｏｆｆ）、速度指定付きの早送り（Ｆｏｒｗａｒｄ  Ｐｌａｙ（ｓｐｅｅｄ））、速度指定付きの巻戻し（Ｂａｃｋｗａｒｄ  Ｐｌａｙ（ｓｐｅｅｄ））、音声切り換え（Ａｕｄｉｏ  Ｃｈａｎｇｅ）、副映像切り換え（Ｓｕｂｔｉｔｌｅ  Ｃｈａｎｇｅ）、アングル切り換え（Ａｎｇｌｅ  Ｃｈａｎｇｅ）といった処理をユーザからの操作に応じて実行することである。ＰＬ再生機能とは、このＡＶ再生機能のうち、再生開始や再生停止をＰＬ情報に従って行うことをいう。このＰＬ再生機能の実行により、再生制御エンジン１２はレイヤモデルの第３層（静的なシナリオに基づく再生制御）の役割を果たす。再生制御エンジン１２は、ＡＶ再生機能をユーザからの操作に従って実行する。一方、機能（２）〜（３）を、ＤＶＤライクモジュール１６〜ＢＲＯＷＳＥＲモジュール１８からの関数呼出に応じて実行する。つまり再生制御エンジン１２は、ユーザ操作による指示、レイヤモデルにおける上位層からの指示に応じて、自身の機能を実行する。
プレーヤレジスタ１３は、３２個のＳｙｓｔｅｍ  Ｐａｒａｍｅｔｅｒ  Ｒｅｇｉｓｔｅｒと、３２個のＧｅｎｅｒａｌ  Ｐｕｒｐｐｏｓｅ  Ｒｅｇｉｓｔｅｒとからなる。これらのレジスタの格納値は変数ＳＰＲＭ，ＧＰＲＭとしてプログラミングに利用される。Ｓｙｓｔｅｍ  Ｐａｒａｍｅｔｅｒ  Ｒｅｇｉｓｔｅｒ、及び、Ｇｅｎｅｒａｌ  Ｐｕｒｐｐｏｓｅ  Ｒｅｇｉｓｔｅｒは、ＤＶＤライクモジュール１６〜ＢＲＯＷＳＥＲモジュール１８から分離した再生制御エンジン１２で管理されるため、たとえ再生モードの切り換わりが生じたとしても、切換後の再生モードを実行するモジュールは、再生制御エンジン１２におけるＳＰＲＭ（０）〜（３１）、ＧＰＲＭ（０）〜（３１）を参照しさえすれば、再生装置の再生状態を知得することができる。
ＢＡＣＫＵＰメモリ１４は、ＤＶＤライクモジュール１６〜ＢＲＯＷＳＥＲモジュール１８の何れかがＳｕｓｐｅｎｄを実行した際に、再生装置レジスタの格納値の退避しておくためのスタックメモリである。このＢＡＣＫＵＰメモリ１４の格納値は、ＤＶＤライクモジュール１６〜ＢＲＯＷＳＥＲモジュール１８の何れかが動的シナリオのＲｅｓｕｍｅを実行した際、再生装置が具備するレジスタ格納値に復帰される。ＤＶＤライクモジュール１６〜ＢＲＯＷＳＥＲモジュール１８のうち、同じものが２回以上Ｓｕｓｐｎｅｄを行った場合、レジスタの格納値は、先入先出し式に格納される。このスタックの段数以上に格納値が格納された場合、それより前に退避された格納値が上書きされる。ＢＡＣＫＵＰメモリ１４に格納される  ＳＰＲＭには、言語コード（Ｌａｇｕａｇｅ  Ｃｏｄｅ）、現在デコード対象になっているオーディオストリームの番号（Ａｕｄｅｏ  Ｓｔｒｅａｍ  Ｎｕｍｂｅｒ）、現在デコード対象になっている副映像ストリームの番号（Ｓｕｂｔｉｔｌｅ  Ｓｔｒｅａｍ  Ｎｕｍｂｅｒ）、ユーザにより設定されたアングル番号（Ａｎｇｌｅ  Ｎｕｍｂｅｒ）、現在再生中のＴｉｔｌｅの番号（Ｔｉｔｌｅ  Ｎｕｍｂｅｒ）、現在再生中のＣｈａｐｔｅｒ番号、現在再生中のＰＬ番号（ＰｌａｙＬｉｓｔ  Ｎｕｍｂｅｒ）、現在再生中のＣＥＬＬ番号（ＰｌａｙＩｔｅｍ  Ｎｕｍｂｅｒ）、選択状態にあるボタンの番号（Ｓｅｌｅｃｔｅｄ  Ｂｕｔｔｏｎ）、現在の再生時点を示す時刻情報といったものがある。
動的シナリオメモリ１５は、カレント動的シナリオを格納しておき、ＤＶＤライクモジュール１６〜ＢＲＯＷＳＥＲモジュール１８による処理に供されるメモリである。カレント動的シナリオとは、ＢＤ−ＲＯＭに記録されている複数シナリオのうち、現在実行対象になっているものをいう。
ＤＶＤライクモジュール１６は、ＭＯＶＩＥモードの実行主体となるＤＶＤ仮想プレーヤであり、動的シナリオメモリ１５に読み出されたカレントのＭＯＶＩＥオブジェクトを実行する。
Ｊａｖａモジュール１７は、Ｊａｖａプラットフォームであり、Ｊａｖａ仮想マシン、コンフィグレーション、プロファイルからなる。Ｊａｖａモジュール１７は、プログラム記録メモリ１に読み出されたＺＺＺ．ＣＬＡＳＳからカレントのＪａｖａオブジェクトを生成し、実行する。Ｊａｖａ仮想マシンは、Ｊａｖａ言語で記述されたＪａｖａオブジェクトを、再生装置におけるＣＰＵのネィティブコードに変換して、ＣＰＵに実行させる。
ＢＲＯＷＳＥＲモジュール１８は、Ｂｒｏｗｓｅｒモードの実行主体となるブラウザであり、動的シナリオメモリ１５に読み出されたカレントのＷｅｂＰａｇｅオブジェクトを実行する。ＢＲＯＷＳＥＲモジュール１８が使用することができるプロトコルには、ＨＴＴＰ、ＩＰ、ＡＲＰ、ＲＡＲＰ、ＴＣＰ，ｔｅｌｎｅｔ，ＳＭＴＰ，ｆｔｐがある。ＤＶＤライクモジュール１６〜ＢＲＯＷＳＥＲモジュール１８は何れも、再生装置に予め実装されているレジデントプログラムである。
Ｕ０コントローラ１９は、リモコンや再生装置のフロントパネルに対してなされたユーザ操作を検出して、ユーザ操作を示す情報（以降Ｕ０（Ｕｓｅｒ  Ｏｐｅｒａｔｉｏｎ）という）をモジュールマネージャ２０に出力する。
モジュールマネージャ２０は、ＢＤ−ＲＯＭから読み出されたＩｎｄｅｘ  Ｔａｂｌｅを保持して、モード管理及び分岐制御を行う。モジュールマネージャ２０によるモード管理とは、動的シナリオをどのＤＶＤライクモジュール１６〜ＢＲＯＷＳＥＲモジュール１８に実行させるかという、モジュールの割り当てである。モジュール割り当ての原則は、動的シナリオをＤＶＤライクモジュール１６に実行させるというものである。イントラモードでの分岐（同一モード内の分岐）があったとしても、この原則は維持される。例外は、インターモードでの分岐（モード間の分岐）が発生した場合である。ＭＯＶＩＥオブジェクトからＪａｖａオブジェクト／ＷｅｂＰａｇｅオブジェクトへの分岐が発生した場合、Ｊａｖａモジュール１７、ＢＲＯＷＳＥＲモジュール１８がカレントオブジェクトを実行することになる。
モジュールマネージャ２０による分岐制御は、分岐先となる動的シナリオを特定し、これをメモリに読み出して、ＤＶＤライクモジュール１６〜ＢＲＯＷＳＥＲモジュール１８のどれかに実行させることをいう。分岐先動的シナリオの特定は、間接参照形式で分岐先動的シナリオが指定されている場合に特に必要となる。この特定は、分岐コマンドの分岐先ラベルを参照し、これに対応するＩｎｄｅｘから、ファイル名を取り出すことでなされる。この特定にあたってモード切り換えの要否を併せて判定する。モード切り換えの要否判定は、分岐先ラベルに対応するＩｎｄｅｘにおいて、何というファイル拡張子が格納されているかを参照することでなされる。分岐先動的シナリオがＭＯＶＩＥモードなら拡張子はＭＯＶＩＥ、分岐先動的シナリオがＪａｖａモードなら拡張子はＣＬＡＳＳ、分岐先動的シナリオがＢｒｏｗｓｅｒモードなら拡張子はＨＴＭＬ，ＸＭＬに設定されているので、Ｉｎｄｅｘに格納された拡張子が何であるかで、モード切り換えが必要かどうかがわかる。モード切り換えが必要なら、分岐先動的シナリオをメモリに読み出させて、切り換え後のモードを実行するモジュールに、モード遷移要求を出力する。切り換え後のモードを実行するモジュールは、この遷移要求の出力により、メモリ中の分岐先動的シナリオを実行することとなる。
ディスパッチャ２１は、Ｕ０から、現在の再生装置におけるモードに適切なＵ０のみを選んで、そのモードを実行するモジュールに受け渡す。例えばＭＯＶＩＥモードの実行中に、上下左右、アクティベートといったＵ０を受け付けた場合、ＭＯＶＩＥモードのモジュールにこれらのＵ０を出力するというのがディスパッチャ２１の処理である。これらのＵ０は、ＭＯＶＩＥモードにおけるメニュー挙動にのみ必要であり、Ｊａｖａモード／Ｂｒｏｗｓｅｒモードでは、不必要だからである。
レンダリングエンジン２２は、Ｊａｖａ３Ｄ，ＯＰＥＮ−ＧＬといった基盤ソフトウェアを備え、Ｊａｖａモジュール１７からの指示に従ってコンピュータ・グラフィックスの描画を行い、描画されたコンピュータ・グラフィックスをイメージプレーン８に出力する。
通信部２３は、ＢＤ−ＲＯＭからの指示に従ってＴＣＰ／ＩＰに基づく通信手順を実行して、Ｗｅｂサイトへのアクセスを行う。
以上が再生装置の構成要素である。続いてモジュールマネージャ２０についてより詳しく説明する。
モジュールマネージャ２０は、汎用のＣＰＵに、図２９の処理手順を行うプログラムを読み取せることで実施可能である。図２９は、モジュールマネージャ２０による処理手順を示すフローチャートである。以降本フローチャートを参照しながら、モジュールマネージャ２０による分岐制御について説明する。本フローチャートは、Ｉｎｄｅｘ  ＴａｂｌｅのＦｉｒｓｔＰｌａｙのＩｎｄｅｘからファイル名を取り出し（ステップＳ１）、カレントモードをＭＯＶＩＥモードに設定して（ステップＳ２）、取り出されたファイル名の動的シナリオをカレントの動的シナリオに設定し（ステップＳ３）、カレントの動的シナリオｉを、メモリに読み出してから（ステップＳ４）、メモリ中のカレントの動的シナリオを実行するというものである（ステップＳ５〜ステップＳ１０）。
このステップＳ４〜ステップＳ１０は、カレントの動的シナリオが新たに設定される度に、実行される。
ステップＳ５〜ステップＳ１０は、シナリオを構成する各コマンドについて、ステップＳ６〜ステップＳ１０の処理を繰り返すというループ処理を形成している。本フローチャートにおける”ｘ”とは、シナリオを構成するコマンドのうち、処理対象たるものを特定する変数である。このループ処理は、変数ｘを初期化し（ステップＳ５）、カレントの動的シナリオｉ内のコマンドｘを、カレントモードのモジュールに実行させてから（ステップＳ６）、ステップＳ７〜ステップＳ８に規定された判定処理を行い、その後、変数ｘをインクリメントして（ステップＳ１０）、ステップＳ６に戻るというものである。変数ｘをインクリメントしてステップＳ６に戻るという処理を繰り返すので、シナリオを構成する全てのコマンドに対し、ステップＳ６〜ステップＳ１０の処理は繰り返される。ループ処理の実行中、Ｕ０が発生した場合は（ステップＳ７）、Ｕ０のディスパッチ処理（図３０のステップＳ３１〜ステップＳ３３）を実行してからステップＳ８に戻る。Ｕ０のディスパッチ処理とは、コマンド実行中に発生したＵ０が上下左右、アクティベートであり（ステップＳ３１）、カレントモードがＭＯＶＩＥモードである場合に（ステップＳ３２）、カレントモードのモジュールにＵ０を出力するというものである。コマンド実行中に発生したＵ０が上下左右、アクティベート以外のＵ０なら、そのままカレントモードのモジュールにＵ０を出力する（ステップＳ３３）。コマンド実行中に発生したＵ０が上下左右、アクティベート以外のＵ０であり、カレントモードがＭＯＶＩＥモードでないなら、発生したＵ０は、モジュールに出力されない。以上がディスパッチ処理である。
この処理を行いつつ、ステップＳ６〜ステップＳ１０の処理は繰り返される。このステップＳ６〜ステップＳ１０のループ処理において処理対象たるカレント動的シナリオの切り換えは、ステップＳ８にてＹｅｓと判定された場合になされる。ステップＳ８は、コマンドｘが分岐コマンドであるかどうかの判定であり、このステップＳ８がＹｅｓならば、ステップＳ１１〜ステップＳ２０においてカレントの動的シナリオを、新たな動的シナリオに設定してステップＳ４に戻る。これにより、新たな動的シナリオがメモリに読み込まれて実行されることになる。
以降、ステップＳ１１〜ステップＳ２３の処理について説明する。この処理は、分岐制御であり、ステップＳ１１、ステップＳ１４、ステップＳ１９、ステップＳ２２の判定結果に応じて、異なる処理を実行するものである。ステップＳ１１は、分岐コマンドの分岐先がＴｉｔｌｅラベルを用いて記述されているか否かの判定であり、もしＹｅｓならステップＳ２２の判定を経て分岐先ラベルであるＴｉｔｌｅｊを取得し（ステップＳ１２）、Ｉｎｄｅｘ  ＴａｂｌｅにおけるＴｉｔｌｅｊのＩｎｄｅｘｉからファイル名ｊを取り出す（ステップＳ１３）という処理を行う。もしＮｏなら、分岐先を示すファイル名ｊを取り出す（ステップＳ２１）という処理を行う。
ステップＳ１４は、分岐コマンドがＣａｌｌコマンドであるか、Ｊｍｐコマンドであるかの判定であり、Ｃａｌｌコマンドなら、カレントの動的シナリオｉをＳｕｓｐｅｎｄして、変数ｘを退避する（ステップＳ１５）。Ｊｍｐコマンドなら、カレントの動的シナリオｉをｄｉｓｃａｒｄする（ステップＳ１６）。
以上の処理を経れば、ファイル名ｊから特定される動的シナリオをカレントの動的シナリオｉに設定し（ステップＳ１７）、取り出された拡張子から特定される再生モードを再生モードｋに設定する（ステップＳ１８）。これらの設定後、ステップＳ１９を実行する。ステップＳ１９は、再生モードｋがカレントモードかどうかの判定であり、違うなら再生モードｋをカレントモードに設定してから（ステップＳ２０）、ステップＳ４に移行する。その後、新たに設定されたカレント動的シナリオに対して、ステップＳ４〜ステップＳ１０の処理が繰り返されることになる。尚ステップＳ２２は、再生装置がコアシステムであるか、フルシステムであるかの判定であり、もしコアシステムであるなら、Ｔｉｔｌｅ＃０のＩｎｄｅｘからファイル名を取り出し、これを分岐先とする（ステップＳ２３）。
このステップＳ４〜ステップＳ１０のループ処理の終了要件は、ステップＳ９においてＹｅｓと判定されることである。コマンドｘが動的シナリオｉの最後のコマンドであるなら（ステップＳ９がＹｅｓ）、動的シナリオｉの末尾にＲｅｓｕｍｅコマンドがあるかどうかの判定がなされて（ステップＳ３４）、もしこれがＮｏなら本フローチャートの処理を終了する。もし動的シナリオｉの末尾にＲｅｓｕｍｅコマンドが存在するなら、Ｓｕｓｐｅｎｄ中の動的シナリオを動的シナリオｉに設定し（ステップＳ３５）、動的シナリオｉのモードをカレントモードに設定して（ステップＳ３６）、カレントモードのモジュールに、Ｓｕｓｐｅｎｄ中の動的シナリオｉのＲｅｓｕｍｅを行わせ（ステップＳ３７）、変数ｘをＳｕｓｐｅｎｄ前の値に戻してから（ステップＳ３８）、ステップＳ６〜ステップＳ１０からなるループ処理のうち、ステップＳ１０の直前に移行する。以上がモジュールマネージャ２０の処理手順である。
また再生制御エンジン１２は、汎用のＣＰＵに、図３１の処理手順を行うプログラムを読み取せることで実施可能である。図３１は、再生制御エンジン１２によるＰＬＰｌａｙ関数の実行手順を示すフローチャートである。本フローチャートにおいて処理対象たるＰＬをＰＬｘ、処理対象たるＣＥＬＬをＣＥＬＬｙ、処理対象たるＡＣＣＥＳＳ  ＵＮＩＴをＡＣＣＥＳＳ  ＵＮＩＴｖとする。本フローチャートは、ＰＬＰｌａｙ関数の引数で指定されたＰＬをＰＬｘに設定し（ステップＳ４１）、ＰＬｘをメモリに読み込んでから（ステップＳ４２）、処理対象たるＣＥＬＬを特定し（ステップＳ４３〜ステップＳ４７）、以降、このＣＥＬＬを構成するＡＣＣＥＳＳ  ＵＮＩＴを読み出す（ステップＳ４８〜ステップＳ５１）という手順からなる。
ステップＳ４３は、ＣＥＬＬの引数指定が有るかどうかの判定であり、もし引数指定があれば、ＣＥＬＬｙをＰＬｘの先頭ＣＥＬＬに設定し（ステップＳ４４）、ＣＥＬＬｚをＰＬｘの最後のＣＥＬＬに設定する（ステップＳ４５）。ＣＥＬＬｚとは、読出範囲の最後を規定するＣＥＬＬである。
引数指定がなければ、ＣＥＬＬｙを引数指定されたＣＥＬＬに設定し（ステップＳ４６）、ＣＥＬＬｚを同じ引数指定されたＣＥＬＬに設定する（ステップＳ４７）。ＣＥＬＬｙ、ＣＥＬＬｚを、引数指定されたＣＥＬＬに設定しておくのは、引数でＣＥＬＬが指定されている場合は、そのＣＥＬＬさえ読み出せばよいからである。
ステップＳ４８〜ステップＳ５３は、ＣＥＬＬｙを構成するＡＣＣＥＳＳ  ＵＮＩＴの読み出しと、復号手順とを示す。この手順は、ＣＥＬＬｙのＩｎ点ビデオフレームを含むＡＣＣＥＳＳ  ＵＮＩＴｖをＴＭＡＰから特定し（ステップＳ４８）、ＡＣＣＥＳＳ  ＵＮＩＴｖの読み出しをＢＤ−ＲＯＭドライブ１に命じて（ステップＳ４９）、ステップＳ５０−ステップＳ５１の判定を経てから、ＡＣＣＥＳＳ  ＵＮＩＴｖに含まれるビデオフレームのデコードを行うようビデオデコーダ４に指示して（ステップＳ５２）、ＡＣＣＥＳＳ  ＵＮＩＴｖを次のＡＣＣＥＳＳ  ＵＮＩＴに設定する（ステップＳ５３）というものである。以降、ＣＥＬＬｙに属する全てのＡＣＣＥＳＳ  ＵＮＩＴについて、このステップＳ４９〜ステップＳ５３の処理が繰り返される。
ステップＳ５０は、ＡＣＣＥＳＳ  ＵＮＩＴｖがＩｎ点ビデオフレームを含んでいるかどうかの判定である。もしＩＮ点ビデオフレームを含んでいる場合は（ステップＳ５０でＹｅｓ）、Ｉｎ点のビデオフレームからＡＣＣＥＳＳ  ＵＮＩＴｖの最後のビデオフレームまでのデコードを行うようビデオデコーダ４に指示してから（ステップＳ５４）、ステップＳ５２に移行する。
ステップＳ５１は、Ｏｕｔ点ｖがＣＥＬＬｙのＯｕｔ点ビデオフレームを含んでいるかどうかの判定である。もしＯｕｔ点ビデオフレームを含んでいる場合は（ステップＳ５１でＹｅｓ）、ＡＣＣＥＳＳ  ＵＮＩＴｖの先頭ビデオフレームからＯｕｔ点ビデオフレームまでのデコードを行うようビデオデコーダ４に指示してから（ステップＳ５５）、ステップＳ５６の判定を行う。ステップＳ５６は、本フローチャートの終了判定であり、ＣＥＬＬｙがＣＥＬＬｚになったかを判定している。もしステップＳ５６がＹｅｓなら本フローチャートを終了し、そうでないなら、ＣＥＬＬｙを次のＣＥＬＬに設定して（ステップＳ５７）、ステップＳ４８に戻る。以降、ステップＳ５６がＹｅｓと判定されるまで、ステップＳ４８〜ステップＳ５７の処理は繰り返される。以上が再生制御エンジン１２の処理手順である。
以上のように本実施形態によれば、エンハンスドモードにあたっては、Ｊａｖａ仮想マシンやブラウザの特性を活かしたゲーム等を再生装置に実行させることができるので、動画データ本体の付加価値を高めることができる。またムービーモードからエンハンスドモードへの分岐は、テーブルを介した間接参照にて分岐先を指定しているので、テーブルの記述内容を工夫すれば、Ｊａｖａ仮想マシン、ブラウザをもつ再生装置への装填時と、もたない再生装置への装填時とで、分岐先を変えるという動作が実現可能になる。かかる分岐先の変化により、Ｊａｖａ仮想マシン、ブラウザをもたないコアシステム再生装置への装填時に、エンハンスドモードプログラムへの分岐の途を閉ざすことができ、あらゆるタイプの再生装置での動作保証を実現することができる。
（第２実施形態）
第１実施形態は、ＭＯＶＩＥオブジェクトにおいて設定されたレジスタ設定値を引き継いで、動作を行うようなＪａｖａオブジェクトについて説明した。これに対し第２実施形態は、ＰＬの再生を行い、この再生に同期して様々な再生制御を行うＪａｖａオブジェクトについて説明する。
図３２は、第２実施形態に係るＢＤ−ＲＯＭのファイル構成を示す図である。本図において新規なのは、ＹＹＹ．Ｍａｒｋ（ＰＬＭａｒｋ），ＸＸＸ．Ｍａｒｋ（ＣｌｉｐＭａｒｋ）が追加されている点である。
ＰＬＭａｒｋは、ＰＬの再生中において、再生装置が拡張制御を行うべき区間を示す情報である。ＹＹＹ．Ｍａｒｋのファイル名ＹＹＹは、ＰＬＭａｒｋが対応しているＰＬと同じ名称が使用される。つまり本図におけるＰＬＭａｒｋのファイル名はＹＹＹであるから、ＰＬ（ＹＹＹ．ＰＬ）に対応していることを意味する。
ＣｌｉｐＭａｒｋは、ＡＶストリームの再生中において、再生装置が拡張制御を行うべき区間を示す情報である。ＸＸＸ．Ｍａｒｋのファイル名ＸＸＸは、ＣｌｉｐＭａｒｋが対応しているＡＶストリームと同じ名称が使用される。つまり本図におけるＣｌｉｐＭａｒｋのファイル名はＸＸＸであるから、ＡＶストリーム（ＸＸＸ．Ｍ２ＴＳ）に対応していることを意味する。
ＣｌｉｐＭａｒｋとＰＬＭａｒｋとの違いは以下の通りである。ＣｌｉｐＭａｒｋは、拡張制御を行うべき区間をＡＶストリームに対して指定しているのに対し、ＰＬＭａｒｋはＰＬに対して指定している。
例えば、図１１に示したように１つのＡＶストリームに対し、２つのＰＬ情報が定義されている場合に、ＣｌｉｐＭａｒｋにて拡張制御を行うべき区間を指定すれば、この指定は、このＡＶストリームを指定している２つのＰＬ情報の何れに対しても及ぶ。一方、ＰＬＭａｒｋにて拡張制御を行うべき区間を指定すれば、ＰＬＭａｒｋに対応するＰＬにのみ、拡張制御指定の効力は及ぶ。ＰＬＭａｒｋに対応するＰＬがＰＬ＃１ならＰＬ＃１のみに及び、ＰＬ＃２には及ばない。つまり、拡張制御を行うべき区間をＣｌｉｐＭａｒｋにて指定すれば、ＡＶストリームを含むＰＬの全てに対しＣｌｉｐＭａｒｋの効力が及び、拡張制御を行うべき区間をＰＬＭａｒｋにて指定すれば、そのＰＬＭａｒｋに対応するＰＬに対してのみＣｌｉｐＭａｒｋの効力が及ぶのである。これがＣｌｉｐＭａｒｋとＰＬＭａｒｋとの違いである。
本実施形態における拡張制御とは、再生装置にイベントを発生させるというものである。イベントを発生させるため、ＰＬＭａｒｋ及びＣｌｉｐＭａｒｋは、図３３に示す共通のデータ構造をもつ。図３３は、ＰＬＭａｒｋ及びＣｌｉｐＭａｒｋの共通構成を示す図である。本図に示すようにＰＬＭａｒｋは、イベント数（Ｎｕｍｂｅｒ）、個々のイベント（Ｅｖｅｎｔ＃１〜Ｅｖｅｎｔ＃ｍ）とから構成され、再生中に発生すべきイベントを定義する。個々のイベント（Ｅｖｅｎｔ＃）は、イベントの種類（Ｔｙｐｅ）と、イベントのＩＤ（ＩＤ）と、イベントが発生する時刻（Ｔｉｍｅ）と、このイベントが有効となる時間帯の時間長（Ｄｕｒａｔｉｏｎ）を示す。
かかるデータ構造にて定義されるイベントには、ＴｉｍｅＥｖｅｎｔ、ＵｓｅｒＥｖｅｎｔというものがある。ＴｉｍｅＥｖｅｎｔとは、プレイリストの再生時間軸において、現在の再生位置が予め定められた時点Ｔに到達した場合に発生するイベントである。ＵｓｅｒＥｖｅｎｔとは、現在の再生位置が予め定められた時間帯に到達し、この時間帯でユーザにより操作がなされた場合に発生するイベントである。
プレイリスト＃１の再生中に出現するＴｉｍｅＥｖｅｎｔを定義する場合、ＰＬＭａｒｋをどのように記述するかについて図３４（ａ）を参照しながら説明する。図中の下段の時間軸は、ＰＬ＃１が再生される時間軸を示す。この時間軸において時刻ｔ１から発生するＴｉｍｅＥｖｅｎｔＥｘ１を定義するケースを想定する。このＴｉｍｅＥｖｅｎｔを定義する場合のＰＬＭａｒｋの記述例が、図中のＰＬＭａｒｋｍｔ１である。本ＰＬＭａｒｋは、Ｔｙｐｅの項目が”ＴｉｍｅＥｖｅｎｔ”と記述され、ＩＤの項目に”Ｅｘ１”、Ｔｉｍｅの項目が”ｔ１”、Ｄｕｒａｔｉｏｎの項目が”０”と記述されている。図中の矢印は、時刻ｔ１の到来で生じるＴｉｍｅＥｖｅｎｔを示す。このＴｉｍｅＥｖｅｎｔの発生により、図中のイベントハンドラが駆動されることになる。
一方、再生時間軸上の時刻ｔ１から、間隔ＴでＴｉｍｅＥｖｅｎｔを発生させる場合のＰＬＭａｒｋの記述例を図３４（ｂ）に示す。図３４（ｂ）が（ａ）と違うのは、ＰＬＭａｒｋのＤｕｒａｔｉｏｎ項目が”Ｔ”と記述されている点である。項目Ｄｕｒａｔｉｏｎの記述により、時点ｔ１の経過後、間隔Ｔ置きにＴｉｍｅＥｖｅｎｔを発生させることができる。
プレイリスト＃１の再生中においてＵｓｅｒＥｖｅｎｔを定義する場合、ＰＬＭａｒｋをどのように記述するかについて図３５を参照しながら説明する。図３５の中段の時間軸は、ＰＬ＃１が再生される再生時間軸を示す。この時間軸上において現在の再生時点がどこであるかは、ＳＰＲＭ（１０）に示されている。この時間軸において時刻ｔ１から期間Ｔ１の間、有効となるＵｓｅｒＥｖｅｎｔＥｖ１を定義するケースを想定する。このＵｓｅｒＥｖｅｎｔを定義したＰＬＭａｒｋが、図中のＰＬＭａｒｋｍｔ２である。本ＰＬＭａｒｋは、Ｔｙｐｅの項目が”ＵｓｅｒＥｖｅｎｔ”と記述され、ＩＤの項目に”Ｅｖ１”、Ｔｉｍｅの項目が”ｔ１”、Ｄｕｒａｔｉｏｎの項目が”Ｔ１”と記述されている。本図におけるリモコンｒｍ１は、ユーザ操作を受け付ける機器であり、図中の矢印ｕｖ１は、リモコンのＥＮＴＥＲキーの押下で生じるＵ０を示す。Ｕ０が、時刻ｔ１から期間Ｔ１の時間帯に発生すれば、Ｕ０に基づきＵｓｅｒＥｖｅｎｔＥｖ１が発生する。このＵｓｅｒＥｖｅｎｔにより、図中のイベントハンドラが駆動される。以上がＰＬＭａｒｋにより定義されるイベントである。尚ＣｌｉｐＭａｒｋにより定義されるイベントについての説明は省略する。何故なら、ＰＬＭａｒｋがＰＬ再生中に発生すべきイベントを定義しているのに対し、ＣｌｉｐＭａｒｋはＡＶストリーム再生中に発生すべきイベントを定義しているにすぎず、ＰＬＭａｒｋにおけるイベント定義とあまり変わらないからである。
続いて第２実施形態におけるＪａｖａオブジェクトについて説明する。第２実施形態におけるＺＺＺ．ＣＬＡＳＳのメンバー関数はＰＬ再生中に再生装置が発生するイベントにより駆動されるイベントハンドラである。以降、Ｊａｖａオブジェクトのメンバー関数たるイベントハンドラについて、具体例を交えながら説明する。図３６は、ＴｉｍｅＥｖｅｎｔにより駆動されるハンドラの一例、図３７はＵｓｅｒＥｖｅｎｔにより駆動されるハンドラの一例である。
図３５〜図３６における記述例では、以下の描画関数を用いて、イメージデータのデコードを行わせているものとする。
描画関数：ＰＮＧデータをイメージプレーンに描画する
Ｄｒａｗ（Ｆｉｌｅ，Ｘ，Ｙ）
Ｆｉｌｅ  ：  ＰＮＧデータを格納したファイル名
Ｘ  ：  Ｘ座標位置
Ｙ  ：  Ｙ座標位置
イメージプレーンクリア関数：イメージプレーンの指定領域をクリアする
Ｃｌｅａｒ（Ｘ，Ｙ，Ｗ，Ｈ）
Ｘ  ：  Ｘ座標位置
Ｙ  ：  Ｙ座標位置
Ｗ  ：  Ｘ方向幅
Ｈ  ：  Ｙ方向幅
図３６におけるハンドラｈｄ１は、ＴｉｍｅＥｖｅｎｔ  ｔ１が発生した際、ｆｕｎｃｔｉｏｎ｛〜｝を実行するというハンドラである。ＴｉｍｅＥｖｅｎｔ  ｔ１とは、ＰＬ＃１の再生開始直後（これを時間ｔ１という）に発生するイベントである。ハンドラｈｄ１のｆｕｎｃｔｉｏｎは、ＧＰＲＭ（０）に１を設定し（ＧＰＲＭ（０）＝１；）、座標（１０，２００）に１ｂｌａｃｋ．ｐｎｇを描画し（Ｄｒａｗ（１ｂｌａｃｋ．ｐｎｇ，１０，２００））、座標（３３０，２００）に２ｗｈｉｔｅ．ｐｎｇを描画する（Ｄｒａｗ（２ｗｈｉｔｅ．ｐｎｇ，３３０，２００））というものである。１ｂｌａｃｋ．ｐｎｇとは、選択状態にあるボタンのイメージデータである。２ｗｈｉｔｅ．ｐｎｇとは、通常状態にあるボタンのイメージデータである。図中の画像イメージｉｇ１は、本図のイベントハンドラにより描画される画像イメージである。図中のボタンｂｎ１，２は、１ｂｌａｃｋ．ｐｎｇ、２ｗｈｉｔｅ．ｐｎｇを復号することにより得られる。ＧＰＲＭ（０）は、この２つのボタンの何れが選択状態にあるかを示す。このＧＰＲＭ（０）が「１」に設定されていることは、ボタンｂｎ１，２のうち、ボタンｂｎ１が選択状態に設定されていることを示す。
ハンドラｈｄ２は、ＴｉｍｅＥｖｅｎｔ  ｔ２が発生した際、ｆｕｎｃｔｉｏｎ｛〜｝を実行するというハンドラである。ＴｉｍｅＥｖｅｎｔ  ｔ２とは、ＰＬ＃１の再生終了直前（これを時間ｔ２という）に発生するイベントである。ハンドラｈｄ２のｆｕｎｃｔｉｏｎは、ＰｌａｙＰＬ（−，−，０）を実行するというものである。この（−，−，０）は、「自身のプレイリストの自身Ｃｅｌｌの先頭から」という意味である。
図３７のハンドラｈｄ３は、ＰＬ＃１の再生中にＵｓｅｒＥｖｅｎｔが発生した際、駆動されるハンドラである。ハンドラｈｄ２の＜ｅｖｅｎｔ＿ｈａｎｄｌｅｒ  ｉｄ＝ＵｓｅｒＥｖｅｎｔ  ｋ１＞は、ＵｓｅｒＥｖｅｎｔ  ｋ１の発生時に、ｆｕｎｃｔｉｏｎ以下の内容を実行することを示す。
ｆｕｎｃｔｉｏｎ以下の内容は、２つのｉｆ文からなる。１つ目のｉｆ文の条件式は、ＧＰＲＭ（０）が１であり、尚且つ、ＳＰＲＭ（８）が右であるという条件（ＧＰＲＭ（０）＝＝１  ＆＆  ＳＰＲＭ（８）＝＝Ｒｉｇｈｔ）であり、この条件が真である場合、ＧＰＲＭ（０）に２を設定し（ＧＰＲＭ（０）＝２；）、座標（１０，２００）に１ｗｈｉｔｅ．ｐｎｇを描画し（Ｄｒａｗ（１ｗｈｉｔｅ．ｐｎｇ，１０，２００））、座標（３３０，２００）に２ｂｌａｃｋ．ｐｎｇを描画するという（Ｄｒａｗ（１ｂｌａｃｋ．ｐｎｇ，３３０，２００））ものである。
図中のイメージｉｇ２は、この条件成立時に描画される画像である。ｉｆ文の条件が真であったなら、イメージｉｇ２のように、右側のボタンｂｎ２が選択状態に設定される。図３６の画像イメージｉｇ１を、その横に示す。この対比からわかるように、イベントハンドラはＵｓｅｒＥｖｅｎｔの発生に応じて選択状態たるボタンを切り換えているのである。
ｉｆ文のｅｌｓｅ節は、ＳＰＲＭ（８）がＯＫであるかという条件の成立を判定するものであり、この条件が成立すれば、２つ目のｉｆ文が実行されることになる。
２つ目のｉｆ文の条件は、（ＧＰＲＭ（０）＝＝１）というものであり、この条件が真なら本ｉｆ文は、プレイリスト＃２のＣｅｌｌ＃１の先頭から、再生を行う（ＰｌａｙＰ１（ＰＬ＃２，Ｃｅｌｌ＃１，０）。この条件が偽ならこのｉｆ文は、プレイリスト＃３のＣｅｌｌ＃１の先頭から、再生を行う（ＰｌａｙＰ１（ＰＬ＃３，Ｃｅｌｌ＃１，０））。
図３８は、図３６、図３７のプレイリストにて再生されるピクチャと、イベントハンドラにより描画されるイメージとを合成して、イベントハンドラによる条件分岐を描いた図である。ＴｉｍｅＥｖｅｎｔ  ｔ１により駆動されるイベントハンドラは、ボタンを合成するというものなので、プレイリストにおける最初のピクチャｐｃ１、途中のピクチャｐｃ２、最後のピクチャｐｃ３に対し、イメージｉｇ１（ボタンｂｎ１，２を含む）が合成されて表示される。ＴｉｍｅＥｖｅｎｔ  ｔ２により駆動されるイベントハンドラは、プレイリストのＣｅｌｌの最後のピクチャデータが再生された後、先頭に戻るというものだから、最後のピクチャデータの表示後、矢印ｐｙ１に示すように最初のピクチャデータが表示され、これにボタンが合成される。ユーザからの操作がない限り、このような合成画像の表示が繰り返される。ユーザが矢印キーを押下することでＵｓｅｒＥｖｅｎｔが発生したなら、矢印ｋｙ１に示すようにイメージｉｇ１の代わりにイメージｉｇ２が、このＡＶストリームを構成する各ピクチャに合成される。
イメージｉｇ１が表示された状態でユーザがＥｎｔｅｒキーを押下すれば、矢印ｅｙ１に示すようにイベントハンドラｈｄ３内のＰｌａｙＰ１（ＰＬ＃２，Ｃｅｌｌ＃１，０）が実行され、プレイリスト＃２のＣｅｌｌ＃１を再生させる。
イメージｉｇ２が表示された状態でユーザがＥｎｔｅｒキーを押下すれば、イベントハンドラｈｄ３内のＰｌａｙＰ１（ＰＬ＃３，Ｃｅｌｌ＃１，０）が実行され、矢印ｅｙ２に示すようにプレイリスト＃３のＣｅｌｌ＃１を再生させる。
ユーザの操作があるまで１つのＣｅｌｌを繰り返し再生し、ユーザの操作があれば、ボタンに応じた分岐先に分岐するという再生手順が、イベントハンドラを用いて簡単に記述できる。
かかるイベントハンドラにより、ＤＶＤで実現されているメニュー挙動と同様の制御を、プログラマが使い馴れたＪａｖａ言語を用いて簡単に記述することができる。更にこれを発展させれば、ボタンの代わりにＣＧが動作するような凝ったメニュー表示の実現が可能になる。これにより、映画制作の表現の幅が広がる。
以上が本実施形態におけるＪａｖａオブジェクトの改良である。続いて、本実施形態における再生装置の改良点について説明する。上述したようなＴｉｍｅＥｖｅｎｔ、ＵｓｅｒＥｖｅｎｔを発生させるには、再生制御エンジン１２に図３９に示すような処理手順を行わせればよい。
図３９は、本実施形態に係る再生制御エンジン１２の処理手順を示す図である。本フローチャートにおいて新規なのは、ＣＥＬＬを構成するＡＣＣＥＳＳ  ＵＮＩＴを読み出し、復号するという一連の処理中（ステップＳ４９〜ステップＳ５３）に、ステップＳ６０、ステップＳ６２という２つの判定ステップが挿入されている点である。ステップＳ６０は、ＰＬ再生において、現在の再生時点を発生時刻としたＴｉｍｅＥｖｅｎｔが、ＰＬＭａｒｋ、ＣｌｉｐＭａｒｋに定義されているかどうかを判定するステップである。ステップＳ６０がＹｅｓなら、ＴｉｍｅＥｖｅｎｔを発生して（ステップＳ６１）、ステップＳ５１に移行する。これにより、ＴｉｍｅＥｖｅｎｔを駆動要件とするイベントハンドラが駆動される。
ステップＳ６２は、Ｕ０が発生したかどうかを判定しているステップである。ステップＳ６２がＹｅｓなら、ＰＬＭａｒｋ、ＣｌｉｐＭａｒｋを参照し、そのＵ０を有効としている時間帯であるかを判定する（ステップＳ６３）。もしその時間帯であれば、ＵｓｅｒＥｖｅｎｔの発生して（ステップＳ６４）、ステップＳ５１に戻る。
以上のように本実施形態によれば、再生制御エンジン１２がＰＬを再生させている間、再生時間の進行に応じてイベントを発生するので、Ｊａｖａモードにおいては、ＴｉｍｅＥｖｅｎｔ、ＵｓｅｒＥｖｅｎｔを駆動要件とするイベントハンドラを駆動することができる。これにより、動画の中身に密接に同期したゲームを、Ｊａｖａ言語を用いて記述することができる。
（第３実施形態）
第２実施形態は、ＰＬＭａｒｋ、ＣｌｉｐＭａｒｋで定義されたイベントにて駆動されるイベントハンドラについて説明したが、第３実施形態は、ＰＬＭａｒｋ、ＣｌｉｐＭａｒｋで定義されたメンバー関数の挙動を、ＡＶ再生機能と同期させる場合の改良に関する。再生装置のＡＶ再生機能とは、ＤＶＤプレーヤ、ＣＤプレーヤから踏襲した機能群であり、再生開始（Ｐｌａｙ）、再生停止（Ｓｔｏｐ）、一時停止（Ｐａｕｓｅ  Ｏｎ）、一時停止の解除（Ｐａｕｓｅ  Ｏｆｆ）、Ｓｔｉｌｌ機能の解除（ｓｔｉｌｌ  ｏｆｆ）、速度指定付きの早送り（Ｆｏｒｗａｒｄ  Ｐｌａｙ（ｓｐｅｅｄ））、速度指定付きの巻戻し（Ｂａｃｋｗａｒｄ  Ｐｌａｙ（ｓｐｅｅｄ））、音声切り換え（Ａｕｄｉｏ  Ｃｈａｎｇｅ）、副映像切り換え（Ｓｕｂｔｉｔｌｅ  Ｃｈａｎｇｅ）、アングル切り換え（Ｕｎｇｌｅ  Ｃｈａｎｇｅ）といったものがある。
ユーザがこれらの機能の実行を命じた場合、再生装置は実行すべき機能に応じたイベントを発生する。巻戻し機能の実行をユーザが命じたならＢａｃｋｗａｒｄ  Ｅｖｅｎｔ、早送り機能の実行をユーザが命じたならＦａｓｔｗａｒｄイベント、一時停止機能の実行をユーザが命じたならＰａｕｓｅ  Ｅｖｅｎｔを再生装置は発生する。これらのイベントでイベントハンドラを駆動するのは、以下の意義がある。再生という動作は、ＰＬの再生時間軸上でなされる。一方、Ｊａｖａ仮想マシンの動作は時間軸という概念をもたない。時間軸を前提にしていないので、ＰＬの再生制御と、Ｊａｖａ仮想マシンの動作とを同期させるには、ＰＬの再生がどこまで進行したかを何等かの術を用いてＪａｖａ仮想マシンに伝えねばならない。時間軸におけるＰＬの再生制御をＪａｖａ仮想マシンに伝えるイベントこそ、Ｂａｃｋｗａｒｄ  Ｅｖｅｎｔ、ＴｉｍｅＥｖｅｎｔ、Ｐａｕｓｅ  Ｅｖｅｎｔである。
（Ｂａｃｋｗａｒｄ  Ｅｖｅｎｔ）
Ｂａｃｋｗａｒｄ  Ｅｖｅｎｔとは、巻戻し操作がユーザによりなされた場合、巻戻し操作がなされたという事実にてイベントハンドラを駆動するためのイベントである。このＢａｃｋｗａｒｄ  Ｅｖｅｎｔを導入したことの技術的意義は以下の通りである。図４０は、Ｂａｃｋｗａｒｄ  Ｅｖｅｎｔの技術的意義を説明するための模式図である。この図４０において、Ｊａｖａオブジェクトのメンバー関数がキャラクタＡのＣＧを画面上で動作させるプログラムであるものとする。このメンバー関数を、ＰＬ再生開始から時間ｔ１後に駆動したい場合、時間ｔ１経過というＴｉｍｅＥｖｅｎｔをＰＬＭａｒｋに定義し、上述したプログラムをこのＴｉｍｅＥｖｅｎｔにより駆動されるイベントハンドラとして記述すればよい。
かかるＴｉｍｅＥｖｅｎｔによる駆動で問題となるのは、「巻戻しては進む」「巻戻しては進む」という変則的な再生を続けた場合である。この場合、再生開始から時刻ｔ１が経過したというＴｉｍｅＥｖｅｎｔが何度も発生することになり、そうすると本来１つでよい筈のＣＧが、複数画面に現れるという事態が生じる。図４０におけるｂｇ１は、再生が時刻ｔ１まで到来したためにハンドラにより描画されるＣＧを示す。またｂｇ２は、巻戻しにより再生が時刻ｔ１まで到来したためにハンドラにより描画されるＣＧを示す。本来１つでよい筈のＣＧが２つ描画されるため、画面デザインがおかしくなってしまう。これを避けるには、時間ｔ１を経過し、その後の巻戻しで再度時間ｔ１に到来した際、ＣＧを消すような動作をＪａｖａオブジェクトに記述しておくのが望ましい。そこで巻戻し操作がなされた場合、再生装置にＢａｃｋｗａｒｄ  Ｅｖｅｎｔ（図中のｂｗ１）を発生させ、これにより駆動されるイベントハンドラをＺＺＺ．ＣＬＡＳＳに定義しておくのである。巻戻し操作がなされ、再度ＴｉｍｅＥｖｅｎｔ  ｔ１が発生した場合、画面上のＣＧを消す処理をかかるイベントハンドラに行わせることにより、「巻戻しては進む」「巻戻しては進む」という変則的な再生を繰り返した場合でも、画面に現れるＣＧは一体のみとなる。
図４１、図４２は、Ｂａｃｋｗａｒｄ  Ｅｖｅｎｔにより駆動されるイベントハンドラを用いた場合の画面表示例である。図４１（ａ）は、Ｊａｖａモードにおいて、ＰＬ再生が開始した時点の表示画面の一例であり、図４１（ｂ）は、ＰＬの再生時点が時刻ｔ１に到達した場合の表示画面の一例である。時刻ｔ１への到達によりＴｉｍｅＥｖｅｎｔが発生し、このＴｉｍｅＥｖｅｎｔによりイベントハンドラが駆動される。図中のフクロウは、Ｊａｖａオブジェクトのイベントハンドラが駆動したことにより描画されるコンピュータ・グラフィックスである。
図４１（ｃ）は、ＰＬの再生時点が時刻ｔ２に到達した場合の表示画面の一例である。時刻ｔ２に到達した時点でユーザが巻戻しを行ったものとする。図４２（ａ）は、巻戻しによりＰＬの再生時点が時刻ｔ１に到達した場合の表示画面の一例である。時刻ｔ１への到達により、図中のフクロウを消去する。これは上述したようなフクロウの二重描画を防止するためである。以降巻戻しにより再生時点がｔ０にまで到達し（図４２（ｂ））、その後、ユーザが再度通常再生を行ったものとする。図４２（ｃ）は、ＰＬの再生時点が時刻ｔ１に再到達した場合の表示画面の一例である。巻戻し時にコンピュータ・グラフィックスを消去したため、時刻ｔ１への到達にてＣＧを再描画したとしても、画面に現れるＣＧは唯一つになる。
尚本実施形態では、Ｂａｃｋｗａｒｄ  ＥｖｅｎｔにてＣＧの消去を行ったが、ｔ２にて発生するＴｉｍｅＥｖｅｎｔをＰＬＭａｒｋに定義して、
ＴｉｍｅＥｖｅｎｔｔ１の発生→  ＴｉｍｅＥｖｅｎｔｔ２の発生→  ＴｉｍｅＥｖｅｎｔｔ１の発生
という順序でＴｉｍｅＥｖｅｎｔが発生すれば、フクロウのコンピュータ・グラフィックスを消去してもよい。
（ＴｉｍｅＥｖｅｎｔ）
第２実施形態で説明したＴｉｍｅＥｖｅｎｔは、早送り再生がなされた際、早送りの速度に応じた時間間隔で、発生するという性質をもつ。図４３は、早送り時でのＴｉｍｅ  Ｅｖｅｎｔ発生を模式的に示す図である。本図においてＴｉｍｅＥｖｅｎｔは、時間間隔ｄｒ１を開けて発生している。この時間間隔は、ユーザによる早送り速度の指定に応じたものであり、ＰＬの再生速度が早ければ早い程間隔は短く、再生速度が遅ければ遅い程、間隔は長くなる。よってＴｉｍｅＥｖｅｎｔは、ＰＬの再生速度が早ければ早い程、短い間隔で発生する。逆にＰＬの再生速度が遅ければ遅い程、長い時間間隔で発生する。このイベント発生の時間間隔が長いか短いかでＪａｖａオブジェクトは、ＰＬの再生が早く進んでいるか、遅く進んでいるかを知ることができる。そのためＰＬの再生が早く進んでいる場合と、遅く進んでいる場合とで、ＣＧの動きを変えるようプログラムを行うこともできる。これにより、ＣＧの動きと、ＰＬ再生とに緻密な時間同期をとらせることができる。
図４４は、早送りに応じたＴｉｍｅＥｖｅｎｔにより駆動されるイベントハンドラを用いた場合の画面表示例である。図４４（ａ）は、Ｊａｖａモードにおいて、ＰＬ再生が開始した時点の表示画面の一例であり、図４４（ｂ）は、ＰＬの再生時点が時刻ｔ１に到達した場合の表示画面の一例である。時刻ｔ１への到達によりＴｉｍｅＥｖｅｎｔが発生し、このＴｉｍｅＥｖｅｎｔによりイベントハンドラが駆動される。図中のフクロウは、このイベントハンドラが駆動したことにより描画されるコンピュータ・グラフィックスである。図４４（ｃ）は、早送りを行った表示画面の一例である。早送りがなされたことより、ＴｉｍｅＥｖｅｎｔの発生間隔が変わる。Ｊａｖａオブジェクトは、この間隔変化に応じて図中のコンピュータ・グラフィックスの動きを変える。
図４４（ｃ）におけるフクロウの飛翔は、コンピュータ・グラフィックスの描画方法を変化させる一例である。ＴｉｍｅＥｖｅｎｔの発生間隔に応じてコンピュータ・グラフィックスの描画方法を変化させることにより、ＰＬが早送りにて再生された場合でも、Ｊａｖａオブジェクトの動きを緻密に同期させることができる。尚図４４における画面の横線は、早送りななされている様子を、ＶＴＲの再生に例えて誇張して表現したものにすぎない。実際のＢＤ−ＲＯＭでの早送り時には、このような横線は画面には現れない。ここで１０倍速のように、高速である場合は、コンピュータ・グラフィックスを消去してしまうのが望ましい。
（ポーズ）
Ｐａｕｓｅ  Ｅｖｅｎｔは、一時停止操作がなされた際、再生装置において発生するイベントである。図４５は、Ｐａｕｓｅ  Ｅｖｅｎｔの発生を模式的に描いた図である。かかるＰａｕｓｅ  Ｅｖｅｎｔの発生時において、再生装置の動作を止めるようイベントハンドラを記述すれば、ＰＬの再生は止まっているのに、ＣＧの動きだけは進行しているというような齟齬を無くすことができる。
以上のイベントにて、動作するようなイベントハンドラをメンバー関数として定義することで、Ｊａｖａオブジェクトの動作がＰＬ再生と緻密に同期するような高品位な映画作品を、視聴者に供給することができる。
以上のように本実施形態によれば、再生時間軸において現在の再生時点がどこであるか、再生がどれだけのスピードに応じて進行しているかによって、Ｊａｖａオブジェクトの処理を変化させるので、Ｊａｖａオブジェクトにより描画されるＣＧの動作のリアリティを高めることができる。
（第４実施形態）
本実施形態は、ＤＶＤと同様のメニュー制御をＢＤ−ＲＯＭ上で実現する場合の改良に関する。図４６は、ＢＤ−ＲＯＭにより実現されるメニュー階層を示す図である。本図におけるメニュー階層は、ＴｏｐＭｅｎｕを最上位に配し、このＴｏｐＭｅｎｕから下位のＴｉｔｌｅＭｅｎｕ、ＳｕｂＴｉｔｌｅＭｅｎｕ、ＡｕｄｉｏＭｅｎｕを選択できる構造になっている。図中の矢印ｓｗ１，２，３は、ボタン選択によるメニュー切り換えを模式的に示す。ＴｏｐＭｅｎｕとは、音声選択、字幕選択、タイトル選択の何れを行うかを受け付けるボタン（図中のボタンｓｎ１，ｓｎ２，ｓｎ３）を配置したメニューである。
ＴｉｔｌｅＭｅｎｕとは、映画作品（Ｔｉｔｌｅ）の劇場版を選択するか、ディレクターズカット版を選択するか、ゲーム版を選択するか等、映画作品の選択を受け付けるボタンを配置したメニューである。ＡｕｄｉｏＭｅｎｕとは、音声再生を日本語で行うか、英語で行うかを受け付けるボタンを配置したメニュー、ＳｕｂＴｉｔｌｅＭｅｎｕとは、字幕表示を日本語で行うか、英語で行うかを受け付けるボタンを配置したメニューである。
こうした階層をもったメニューを動作させるためのＭＯＶＩＥオブジェクトを図４７に示す。
ＦｉｒｓｔＰｌａｙオブジェクト（ＦｉｒｓｔＰｌａｙ  ＯＢＪ）は、再生装置へのＢＤ−ＲＯＭのローディング時におけるスタートアップ手順を記述した動的シナリオである。ＦｉｒｓｔＰｌａｙオブジェクトを表す四角枠は、このスタートアップ手順を実行するためのコマンドを示す。ＦｉｒｓｔＰｌａｙオブジェクトの最後のコマンドは分岐コマンドであり、ＴｏｐＭｅｎｕオブジェクトを分岐先にしている。
ＴｏｐＭｅｎｕオブジェクト（ＴｏｐＭｅｎｕ  ＯＢＪ）は、ＴｏｐＭｅｎｕの挙動を制御する動的シナリオである。ＴｏｐＭｅｎｕオブジェクトを表す四角の枠は、この制御手順を現した個々のコマンドを模式化したものである。このコマンドには、ユーザからの操作に応じてＴｏｐＭｅｎｕ中のボタンの状態を変えるものや、ボタンに対する確定操作に応じて分岐を行う分岐コマンドがある。この分岐コマンドは、ＴｏｐＭｅｎｕからＴｉｔｌｅＭｅｎｕ、ＴｏｐＭｅｎｕからＳｕｂＴｉｔｌｅＭｅｎｕ、ＴｏｐＭｅｎｕからＡｕｄｉｏＭｅｎｕというメニュー切り換えを実現するものである。
ＡｕｄｉｏＭｅｎｕオブジェクト（ＡｕｄｉｏＭｅｎｕ  ＯＢＪ）は、ＡｕｄｉｏＭｅｎｕの挙動を制御する動的なシナリオである。ＡｕｄｉｏＭｅｎｕオブジェクトを構成する四角の枠は、この制御手順を現した個々のコマンドを模式化したものである。このコマンドには、ユーザからの操作に応じてＡｕｄｉｏＭｅｎｕ中のボタンの状態を変えるものや、ボタンに対する確定操作に応じて音声設定用のＳＰＲＭを更新するコマンドがある。
ＳｕｂＴｉｔｌｅＭｅｎｕオブジェクト（ＳｕｂＴｉｔｌｅＭｅｎｕ  ＯＢＪ）は、ＳｕｂＴｉｔｌｅＭｅｎｕの挙動を制御する動的なシナリオである。ＳｕｂＴｉｔｌｅＭｅｎｕオブジェクトを構成する四角の枠は、この制御手順を現した個々のコマンドを模式化したものである。このコマンドには、ユーザからの操作に応じてＳｕｂＴｉｔｌｅＭｅｎｕ中のボタンの状態を変えるものや、ボタンに対する確定操作に応じて音声設定用のＳＰＲＭを更新するコマンドがある。
ＴｉｔｌｅＭｅｎｕオブジェクト（ＴｉｔｌｅＭｅｎｕ  ＯＢＪ）は、ＴｉｔｌｅＭｅｎｕの挙動を制御する動的シナリオである。ＴｉｔｌｅＭｅｎｕオブジェクトを表す四角の枠は、この制御手順を現した個々のコマンドを模式化したものである。このコマンドには、ユーザからの操作に応じてＴｉｔｌｅＭｅｎｕ中のボタンの状態を変えるものや、ボタンに対する確定操作に応じて分岐を行う分岐コマンドがある。この分岐コマンドは、個々のＴｉｔｌｅへの分岐を実現するものである。
これらのメニュー用ＭＯＶＩＥオブジェクトにより、ＤＶＤで実現されているようなメニューの挙動を実現することができる。以上がメニュー制御に関連するＭＯＶＩＥオブジェクトである。
続いて本実施形態におけるＩｎｄｅｘ  Ｔａｂｌｅの改良について説明する。本実施形態におけるＩｎｄｅｘ  Ｔａｂｌｅには、ＦｉｒｓｔＰＬａｙＩＮＤＥＸ、Ａｕｄｉｏ  ＭｅｎｕＩＮＤＥＸ、Ｓｕｂｔｉｔｌｅ  ＭｅｎｕＩＮＤＥＸ、Ｔｉｔｌｅ  ＭｅｎｕＩＮＤＥＸが追加されている。第１実施形態に示したように、これらのＩｎｄｅｘは、３つのモードの何れの動的シナリオからも参照される。
Ｆｉｒｓｔ  ＰｌａｙＩＮＤＥＸは、ＢＤ−ＲＯＭのスタートアップ時に参照されるＩｎｄｅｘである。ＦｉｒｓｔＰｌａｙオブジェクトのファイル名が本Ｉｎｄｅｘに記述される。
Ｔｏｐ  ＭｅｎｕＩＮＤＥＸ、Ａｕｄｉｏ  ＭｅｎｕＩＮＤＥＸ、Ｓｕｂｔｉｔｌｅ  ＭｅｎｕＩＮＤＥＸ、Ｔｉｔｌｅ  ＭｅｎｕＩＮＤＥＸは、それぞれＡｕｄｉｏ  Ｍｅｎｕ、Ｓｕｂｔｉｔｌｅ  Ｍｅｎｕ、Ｔｉｔｌｅ  Ｍｅｎｕをダイレクトにコールするようなユーザ操作がなされた際、参照されるＩｎｄｅｘである。ユーザによるダイレクトなコールは、ユーザがリモコンにおけるＡｕｄｉｏ選択キー、Ｓｕｂｔｉｔｌｅ選択キー、Ｔｉｔｌｅ選択キーを押下することにより場合になされる。
以上が本実施形態におけるＭＯＶＩＥオブジェクトの改良である。続いて、本実施形態における再生装置の改良点について説明する。上述したようなＭＯＶＩＥオブジェクトを動作させるには、モジュールマネージャ２０に図４８のフローチャートに示すような処理手順を行わせればよい。
メニュー制御を行うべく、本実施形態を示すモジュールマネージャ２０は、図４８に示すような処理手順で分岐制御を行う。本フローチャートが新規なのは、ステップＳ８とステップＳ１１との間にステップＳ２４が挿入されており、このステップＳ２４がＹｅｓである場合に、ステップＳ２５〜ステップＳ２８の処理を行って、ステップＳ４に戻る点である。ステップＳ２５〜ステップＳ２８は、メニューの制御を行うシナリオを、カレント動的シナリオに設定するものである。つまり分岐コマンドの分岐先がｘｘｘＭｅｎｕであるなら（ステップＳ２４でＹｅｓ）、カレントの動的シナリオｉをＳｕｓｐｅｎｄし、変数ｘを退避して（ステップＳ２５）、分岐先Ｍｅｎｕに対応するＩｎｄｅｘからファイル名を取り出し（ステップＳ２６）、取り出されたファイル名の動的シナリオをカレントの動的シナリオｉに設定し（ステップＳ２７）、カレントモードをＭＯＶＩＥモードに戻す（ステップＳ２８）。その後、カレント動的シナリオを実行してゆく。
以上のように本実施形態によれば、メニュー制御のための動的シナリオへの分岐は、Ｉｎｄｅｘ  ＴａｂｌｅのＩｎｄｅｘを介した間接参照にて実現されるので、Ｊａｖａモード、Ｂｒｏｗｓｅｒモードの実行時においてメニューキーが押下された場合でも、これらメニュー制御用の動的シナリオへと分岐することができる。Ｊａｖａ仮想マシン、Ｂｒｏｗｓｅｒモードからの音声切り換え、字幕切り換えの実現が可能となり、Ｊａｖａ仮想マシン、Ｂｒｏｗｓｅｒモードでの再生にあたっても、通常のＤＶＤ同様、音声切り換え、字幕切り換えが可能となる。
（第５実施形態）
第１実施形態において、Ｊａｖａモードのアプリケーションプログラムは、再生制御エンジンが提供するプログラミング関数、システム変数を用いてＢＤ−ＲＯＭに対する再生制御を記述していた。つまり再生制御の記述に、再生制御エンジンが提供するプログラミング関数、システム変数をダイレクトに用いていた。これに対し第５実施形態におけるＪａｖａモードのアプリケーションは、Ｊａｖａモジュール１７が提供するメンバー関数を介してＢＤ−ＲＯＭに対する制御を記述している。
どのようなメンバー関数を介して記述するかについて、図４９を参照しながら説明する。図４９は、Ｊａｖａモードに属するクラスのメンバー関数を示す図である。第４層にあたるＪａｖａモードは、ＢＤ−ＲＯＭＳｔａｔｕｓクラス、ＢＤ−ＲＯＭＰｌａｙＢａｃｋクラス、ＢＤ−ＲＯＭＥｖｅｎｔクラスを含むＢＤ−ＲＯＭ専用パッケージを有している。
以降、パッケージにおける個々のクラスについて説明する。
ＢＤ−ＲＯＭＥｖｅｎｔクラスは、ｓｅｔＥｖｅｎｔＬｉｓｔｅｎｅｒ関数を始め複数のメンバー関数を含む。ｓｅｔＥｖｅｎｔＬｉｓｔｅｎｅｒ関数は、ＺＺＺ．ＣＬＡＳＳのインスタンス（Ｊａｖａオブジェクト）が生成された際、Ｊａｖａオブジェクトのメンバー関数の使用宣言を行うものである。つまりＪａｖａオブジェクトのメンバー関数は、このｓｅｔＥｖｅｎｔＬｉｓｔｅｎｅｒ関数の使用宣言があって初めて使用が可能となる。ＴｉｍｅＥｖｅｎｔやＵｓｅｒＥｖｅｎｔが発生した場合、ｓｅｔＥｖｅｎｔＬｉｓｔｅｎｅｒ関数にて使用宣言がなされたイベントハンドラが駆動される。
ＢＤ−ＲＯＭＰｌａｙＢａｃｋクラスは、ＰｌａｙＰＬ  ａｔ  ＣＥＬＬ（）、ＰｌａｙＰＬ  ａｔ  Ｍａｒｋ（）、ＰｌａｙＰＬ  ａｔ  Ｓｐｅｃｉｆｉｅｄ  Ｔｉｍｅ（）をメンバー関数としてパッケージングしたクラスである。
ＢＤ−ＲＯＭＳｔａｔｕｓクラスは、状態取得や状態設定用のメンバー関数、つまり、第１実施形態に示した（ｉ）Ｇｅｔ  ｖａｌｕｅ  ｏｆ  Ｐｌａｙｅｒ  Ｓｔａｔｕｓ  Ｒｅｇｉｓｔｅｒ関数、（ｉｉ）Ｓｅｔ  ｖａｌｕｅ  ｏｆ  Ｐｌａｙｅｒ  Ｓｔａｔｕｓ  Ｒｅｇｉｓｔｅｒ関数、（ｉｉｉ）Ｓｅｔ  ｖａｌｕｅ  ｏｆ  Ｐｌａｙｅｒ  Ｓｔａｔｕｓ  Ｒｅｇｉｓｔｅｒ関数、（ｉｉｉ）Ｇｅｔ  ｖａｌｕｅ  ｏｆ  Ｇｅｎｅｒａｌ  Ｐｕｒｐｏｓｅ  Ｒｅｇｉｓｔｅｒ関数、（ｉｖ）Ｇｅｔ  ｖａｌｕｅ  ｏｆ  Ｇｅｎｅｒａｌ  Ｐｕｒｐｏｓｅ  Ｒｅｇｉｓｔｅｒをメンバー関数としてパッケージングしたクラスである。
図中の矢印ｙｃ１，２，３，４，５は、ＢＤ−ＲＯＭＳｔａｔｕｓクラス、ＢＤ−ＲＯＭＰｌａｙＢａｃｋクラス、ＢＤ−ＲＯＭＥｖｅｎｔクラスのメンバー関数を介したＰＬ再生機能、レジスタ設定値の取得／設定を模式的に示す。この矢印に示すように、第５実施形態におけるＪａｖａオブジェクトは、Ｊａｖａモジュール１７におけるパッケージを介して、再生制御エンジン１２が提供するプログラミング関数、レジスタ設定値であるプレーヤ変数を利用しているのである。
図５０は、Ｊａｖａモード内のメンバー関数を介した制御を示す図である。
矢印ｙｐ１は、ＺＺＺ．ＣＬＡＳＳのインスタンスたるＪａｖａオブジェクトの生成を象徴化している。この生成は、Ｊａｖａオブジェクトへの分岐が最初に命じれた際、Ｊａｖａモジュール１７によりなされる。矢印ｙｐ２は、ＪａｖａオブジェクトによるｓｅｔＥｖｅｎｔＬｉｓｔｅｎｅｒ関数の呼出を象徴化している。
矢印ｙｈ１は、イベントオブジェクト内のｓｅｔＥｖｅｎｔＬｉｓｔｅｎｅｒ関数によるイベントハンドラの使用宣言を象徴化して示す。矢印ｙｈ２は、イベントオブジェクト内のメンバー関数によるイベントハンドラの駆動を象徴化して示す。つまりＪＡＶＡオブジェクトのイベントハンドラは、イベントオブジェクトのメンバー関数（ｓｅｔＥｖｅｎｔＬｉｓｔｅｎｅｒ関数）からイベントハンドラ使用宣言を受けて使用可能になり、ＣｌｉｐＭａｒｋ、ＰＬＭａｒｋにより定義されたＫｅｙＥｖｅｎｔ、ＴｉｍｅＥｖｅｎｔにて駆動される。
矢印ｙｈ３は、駆動されたイベントハンドラによる状態取得を象徴化している。つまり第５実施形態におけるＪａｖａオブジェクトのメンバー関数たるイベントハンドラは、Ｊａｖａモードに属するクラスのメンバー関数（ｇｅｔ  Ｓｙｓｔｅｍ  Ｐａｒａｍｅｔｅｒ  Ｒｅｇｉｓｔｅｒ）を用いて間接的に再生装置の状態取得や状態設定を行う。
矢印ｙｈ４は、駆動されたイベントハンドラによるプレイリスト再生を象徴化している。つまりＪａｖａオブジェクトのメンバー関数たるイベントハンドラは、ＢＤ−ＲＯＭＰｌａｙｂａｃｋクラスのメンバー関数を用いてプレイリストの再生を装置に命じるのである。
以上のように本実施形態によれば、ＢＤ−ＲＯＭに対する再生制御を、Ｊａｖａモジュール１７におけるパッケージを介して記述するので、一般のＪａｖａ言語によるプログラミングスタイルと同じスタイルで、ＢＤ−ＲＯＭに対する再生制御を記述することができる。これにより、映画作品の制作に参入したソフトハウスの制作効率を高めることができる。
尚、本実施形態のパッケージは、ＢＤ−ＲＯＭ規格のライセンス管理を行う団体と、アプリケーションプログラムを開発するソフトハウスとが正式な契約を締結することを条件として、この団体により交付されるようにすることが望ましい。この契約は、ＢＤ−ＲＯＭに記録された映画作品の品位を汚すようなアプリケーションプログラムを開発しないという禁止条項を含んでいる。このようにすれば、映画作品の品位を汚すという恐れを避けつつ、様々なアプリケーションをソフトハウスに開発させることができる。
（第６実施形態）
第１実施形態〜第５実施形態においてＭＯＶＩＥオブジェクトは、Ｎａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報における分岐コマンドに基づきＭＯＶＩＥモードからＪａｖａモードへの移行を行ったが、本実施形態では、メニューを介してＭＯＶＩＥモードからＪａｖａモードへの移行を行う。図５１は、第６実施形態に係るメニュー階層を示す図である。図４６のメニュー階層画像と異なるのは、ＴｏｐＭｅｎｕからＥｘｔｒａ  Ｍｅｎｕへの移行が可能である点である。Ｅｘｔｒａ  Ｍｅｎｕとは、Ｊａｖａモード／Ｂｒｏｗｓｅｒモードの何れを選択するかをユーザから受け付けるメニューであり、Ｊａｖａモードへの移行を受け付けるボタン、Ｂｒｏｗｓｅｒモードへの移行を受け付けるボタンを含む。図５２は、第６実施形態に係るＭＯＶＩＥオブジェクト、Ｉｎｄｅｘ  Ｔａｂｌｅを示す図である。本図と図４７との違いは、Ｅｘｔｒａ  Ｍｅｎｕの挙動を制御するＥｘｔｒａＭｅｎｕオブジェクト（ＥｘｔｒａＭｅｎｕ  ＯＢＪ）が存在し、ＴｏｐＭｅｎｕのＭＯＶＩＥオブジェクトから、このＥｘｔｒａ  Ｍｅｎｕオブジェクトへの分岐が可能である点（１）、Ｉｎｄｅｘ  Ｔａｂｌｅ内にＥｘｔｒａ  ＭｅｎｕのＩｎｄｅｘがあり、リモコンのメニューキーの押下によりＥｘｔｒａ  Ｍｅｎｕオブジェクトへの分岐が可能である点（２）である。
メニューキーの押下により、Ｊａｖａモードへと移行するので、現在の再生時点がどこであろうと、Ｊａｖａモードへの移行が行われることになる。Ｂｒｏｗｓｅｒモードへの移行も同様である。
以上が、本実施形態におけるＭＯＶＩＥオブジェクト、Ｉｎｄｅｘ  Ｔａｂｌｅの改良である。続いて本実施形態におけるＪａｖａオブジェクトの改良について説明する。本実施形態におけるＪａｖａオブジェクトは、ＭＯＶＩＥモードからＪａｖａモードへと移行した際、ＳＰＲＭ（１０）を参照して、ＭＯＶＩＥモードにおいてどの再生時点からＪａｖａモードへと分岐したかについて知得する。そしてＳＰＲＭ（１０）と、予め具備しているスケジュールテーブルと（図５３）を照合して、Ｊａｖａモードにおける処理を行う。このスケジュールテーブルは、動画データに登場しているキャラクタと、このキャラクタが登場している時間帯とを対にして示すテーブルである。
Ｊａｖａオブジェクトはこのテーブルを参照して、現在の再生時点にあるキャラクタを知得し、このキャラクタを主人公にしたゲームを実行する。
以上のように本実施形態によれば、メニューを介した分岐により、ＭＯＶＩＥモードからＪａｖａモードへと移行するすることができる。また、分岐直前の再生時点を示すＳＰＲＭ（１０）を参照することで、ユーザがどこまで視聴したかに応じて、処理を切り換えることができる。かかる切り換えで、映画作品の再生と緻密に関連するようなＪａｖａ言語アプリケーションを制作することができる。
（第７実施形態）
第１実施形態は、ＭＯＶＩＥモードで再生させていたＰＬ内のＣＥＬＬをＪａｖａモードからも再生させるというＰＬのシェアリングが可能であった。しかしこのシェアリングは、ＰＬ情報に、フィルタリング情報を設ける場合に、障害となる。フィルタリング情報とは、ＡＶストリームに多重化されている複数ストリームのうち、どれを有効とし、どれを無効とするかを定める情報である。フィルタリング情報を設ける理由は、以下の通りである。ＡＶストリームには、映像・音声以外にも、Ｎａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報や副映像ストリームというようなストリームが含まれている。Ｎａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報は、ＭＯＶＩＥモードにあたっては必要であるが、ＪａｖａモードやＢｒｏｗｓｅｒモードではそうとは限らない。何故ならＪａｖａモードでは、Ｊａｖａ言語でコンピュータ・グラフィックスを描画することができ、Ｎａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報の力を借りるまでもないからである。Ｊａｖａモードにおいては、Ｎａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報を無効と扱うため、かかるフィルタリング情報が必要となる。ところがこのフィルタリング情報をＰＬ情報に設けて、上述したようなＰＬのシャアリングがなされれば、ストリームの有効、無効を定めるフィルタリング情報もシェアリングされてしまう。
フィルタリング情報をＰＬ情報に設けた場合、ＰＬ情報のシェアリングは望ましくないので、本実施形態では図５４のようにＰＬを設定する。図５４は、第７実施形態に係るＰＬ情報の構成を示す図である。本図のＰＬ情報には、フィルタリング情報とＡｐｐ．Ｆｌａｇとが新規に追加されている。
Ａｐｐ  Ｆｌａｇは、プレイリストをどのモードの動的シナリオに利用させるかを指定する情報である。アプリケーションプログラムの指定は、ＭＯＶＩＥモード、Ｊａｖａモード、Ｂｒｏｗｓｅｒモードという３者の中から１つを選ぶことでなされる。このＡｐｐ．Ｆｌａｇが「００：ＭＯＶＩＥモード」を示しているなら、ＭＯＶＩＥオブジェクトならどこでもこのＰＬ情報を利用することができる。しかしＪａｖａオブジェクト、ＭＯＶＩＥオブジェクトは、利用することはできない。
一方Ａｐｐ．Ｆｌａｇが「０１：Ｊａｖａモード」を示しているなら、ＪａｖａオブジェクトであればどれでもこのＰＬ情報を引用することができる。「１０：Ｂｒｏｗｓｅｒモード」を示しているなら、ＷｅｂＰａｇｅオブジェクト」が引用することができる。更に「１１」を示しているのであればどれでもこのＰＬ情報を引用することができる。そして１１を示しているなら、どのモードの動的シナリオであっても、このプレイリスト情報を引用することができる。
Ａｐｐ．Ｆｌａｇにより、１つのＰＬ情報を１つのモードの動的シナリオに利用させ、他のモードの動的シナリオに利用させないという排他制御を実現することができる。かかる排他制御により、ＰＬ情報に設定されたフィルタリング情報は、本来用いられるべきモードの動的シナリオにより使用されることになり、意図しないモードでのストリーム再生を防ぐことができる。
ＰＬ情報を設けることで、図５５のようなシェアリングが可能となる。図５５は、デジタルストリーム本体をＭＯＶＩＥモードと、Ｊａｖａモードとでシェアリングしつつ、ＰＬ情報をＭＯＶＩＥモードと、Ｊａｖａモードとで排他的に用いているという階層的なシェアリングを示す図である。
Ａｐｐ．Ｆｌａｇに基づく処理を行うため、本実施形態に係る動的シナリオは、ＰｌａｙＰＬ関数の呼出に先立ち、再生したいＰＬのＡｐｐ．Ｆｌａｇを再生制御エンジン１２から受け取る。そして動的シナリオは、自身が属するモードと、受け取ったＡｐｐ．Ｆｌａｇに示されるモードとが一致するかを判定し、一致していればＰｌａｙＰＬ関数の呼出を行う。一方不一致ならば関数呼出を行わない。動的シナリオ及び再生制御エンジン１２が以上の処理を行うことにより、Ａｐｐ．Ｆｌａｇに示されるモードの動的シナリオだけが、ＰＬを再生することになる。
尚、ＰｌａｙＰＬ関数の関数呼出時に、動的シナリオは自身が属するモードを再生制御エンジン１２に通知し、再生制御エンジン１２はそのモードが関数呼出先のＰＬのＡｐｐ．Ｆｌａｇと一致しているかどうかを判定してもよい。そして一致していれば、そのＰｌａｙＰＬ関数を実行し、不一致なら実行しないのである。こうすることで、Ａｐｐ．Ｆｌａｇに示されるモードの動的シナリオだけが、ＰＬを再生することになる。
本実施形態に示したような階層的なシェアリングにより、フィルタリング情報を活用しつつ、ＭＯＶＩＥモードにおけるワンシーンをＪａｖａモードで利用するというシーン引用が可能になる。
無論、フィルタリング情報やＡｐｐ．Ｆｌａｇをストリーム管理情報に設けてもよい。しかしフィルタリング情報をストリーム管理情報に設けると、モード間のＡＶストリームのシェアリングが一切不可能になってしまい、賢明な策とはいいがたい。他のモードでの引用を実現をしようとするのなら、ＰＬ情報にＡｐｐ．Ｆｌａｇ、フィルタリング情報を設けて、ＡＶストリーム本体をシェアリングできる途を残しておくことが望ましい。
（第８実施形態）
本実施形態は、ＢＤ−ＲＯＭの製造工程に関する実施形態である。図５６は、第８実施形態に係るＢＤ−ＲＯＭの製造工程を示すフローチャートである。
ＢＤ−ＲＯＭの制作工程は、動画収録、音声収録等の素材作成を行う素材制作工程Ｓ１０１、オーサリング装置を用いて、アプリケーションフォーマットを生成するオーサリング工程Ｓ１０２、ＢＤ−ＲＯＭの原盤を作成し、プレス・貼り合わせを行って、ＢＤ−ＲＯＭを完成させるプレス工程１０３を含む。
これらの工程のうち、ＢＤ−ＲＯＭを対象としたオーサリング工程は、シナリオ編集工程Ｓ２０１、素材エンコード工程Ｓ２０２、多重化工程Ｓ２０３、フォーマッティング工程Ｓ２０４、エミュレーション工程Ｓ２０５という５つの工程とからなる。
シナリオ編集工程Ｓ２０１とは、企画段階において作成された筋書きを再生装置が理解できる形式に変換する工程である。シナリオ編集の結果は、ＢＤ−ＲＯＭ用シナリオとして生成される。また、このシナリオ編集において、多重化を実現するため多重化パラメータの等も生成される。
素材エンコード工程Ｓ２０２とは、ビデオ素材、オーディオ素材、副映像素材のそれぞれをエンコードして、ビデオストリーム、オーディオストリーム、副映像ストリームを得る作業である。
多重化工程Ｓ２０３では、素材エンコードにより得られた、ビデオストリーム、オーディオストリーム、副映像ストリームをインターリーブ多重して、これらを１本のデジタルストリームに変換する。
フォーマッティング工程Ｓ２０４では、ＢＤ−ＲＯＭ向けシナリオを元に、各種情報を作成して、シナリオ及びデジタルストリームをＢＤ−ＲＯＭのフォーマットに適合させる。
エミュレーション工程Ｓ２０５では、オーサリング作業の結果が正しいか否かの確認を行う。
上述したシナリオ編集工程において、Ｊａｖａオブジェクト及びＷｅｂＰａｇｅオブジェクトは、Ｊａｖａ言語、マークアップ言語を用いた記述が可能であるから、通常のコンピュータ向けのソフトウェアを開発するのと同じ感覚で、開発することができる。よって本実施形態では、このシナリオ制作の効率を高めることができるという効果がある。
（第９実施形態）
第９実施形態は、本発明に係る記録媒体をＢＤ−ＲＥ等の書き換え可能な光ディスクとして実施する場合の実施形態である。第１実施形態に示したＡＶストリーム−ストリーム管理情報−ＰＬ情報といったデータ構造は、ＢＤ−ＲＥと互換を有しており、ＢＤ−ＲＥの記録装置は、放送信号のリアルタイムレコーディングを行うことにより、ＡＶストリーム−ストリーム管理情報−ＰＬ情報といったデータ構造をＢＤ−ＲＥに書き込む。これらが書き込まれたＢＤ−ＲＥに対して、ユーザがプログラミングを行い、ＭＯＶＩＥオブジェクト、Ｊａｖａオブジェクト、ＷｅｂＰａｇｅオブジェクト、Ｉｎｄｅｘ  Ｔａｂｌｅを記述してＢＤ−ＲＥに書き込めば、第１実施形態に示したアプリケーションフォーマットと同様のフォーマットを、ＢＤ−ＲＥ上で実現することができる。
以上のように本実施形態によれば、ＢＤ−ＲＥの記録装置を所持するユーザに、第１実施形態に示したアプリケーションフォーマットを作成する機会を与えるので、多くのユーザに、第１実施形態に示した映画作品を制作する楽しさを知ってもらうことができる。
（第１０実施形態）
第１０実施形態は、Ｊａｖａオブジェクト、ＷｅｂＰａｇｅオブジェクトの動作が可能であったとしても、一定の条件の下に再生装置をコアシステムに固定化してしまう実施形態である。
つまり以下の事情（１）〜（７）が再生装置側にある場合、ムービーモードからエンハンスドモードへの遷移の途を閉ざすのである。
映画作品の著作権保護のための暗号鍵がある再生装置で暴露され、再生装置が鍵管理センターにより無効化された場合（１）、
ユーザがリッパソフトを利用して記録媒体に記録された映画作品を不正にコピーしたため、映画作品の複製物がネットワーク上に或はされる恐れがある場合（２）、
エンハンスドモード実行には追加料金の支払いがいるにも拘らず、追加料金が支払われない場合（３）、
再生装置のシステムに障害が発生したため、ネットワークから遮断したい場合（４）、
Ｊａｖａ仮想マシンやブラウザにバージョンコンフリクションがある場合（５）、
個人情報の漏洩やウィルスソフトの感染の可能性があり、再生装置をネットワークから遮断したい場合（６）、
ネットワークから記録媒体の記録内容を読み取ろうとする不正機器から、記録媒体の映画作品を保護するため、再生装置をネットワークから遮断したい場合（７）、
本実施形態におけるＪａｖａオブジェクト、ＷｅｂＰａｇｅオブジェクトは以上の事情（１）〜（７）の有無をチェックするようなチェックルーチンをもっている。このチェックルーチンは、再生装置における不正ソフトウェアのインストールやウィルスの感染等の再生装置に対するチェックをネットワーク上のサーバと連携して実行する。このサーバは、再生装置による暗号鍵利用を管理する暗号鍵管理センタ、ユーザに対する課金を行う課金センタ、不正コピー摘発を推進する著作権管理センタ等により運営されるものであり、Ｊａｖａオブジェクト、ＷｅｂＰａｇｅオブジェクトがこれらのセンタのサーバと通信を行い、（１）〜（７）の条件が再生装置側に満たされれば、強制的にコアシステムに移行するよう、Ｊａｖａオブジェクト、ＷｅｂＰａｇｅオブジェクトはプログラミングされている。
ここでリッパソフトを用いた不正コピーの可能性の有無は、Ｊａｖａオブジェクト、ＷｅｂＰａｇｅオブジェクトにチェックルーチンを組み込むことで実現される。このチェックルーチンは、ＨＤのファイル、フォルダを定期的にセンターに報告し、センタがこれを検閲するという処理で実現される（尚、かかる検閲は映画作品購入時の事前承認が前提である。）。
以上のように本実施形態によれば、ネットワークを介した高付加価値化を実現しつつ、著作権者や再生装置の製造メーカが何等かの事情でネットワーク接続を閉ざすことを希望した場合、再生装置をコアシステムに設定し再生装置をスタンドアローンで利用するようＪａｖａオブジェクト、ＷｅｂＰａｇｅオブジェクトを記述することができる。特に、再生装置にＨＤやオペレーティングシステムがインストールされ、パソコンのような再生環境でＢＤ−ＲＯＭが利用されている場合に特に有意義になる。尚上述した事情の発生後、適切な処置がとられれば、フルシステムに移行するようにしてもよい。
（第１１実施形態）
第１１実施形態は、再生装置にＨＤをもたせてＩｎｄｅｘ  Ｔａｂｌｅと、新たなＰＬとを通信部２３にダウンロードさせてＨＤに書き込ませる実施形態である。ＨＤに新たなＩｎｄｅｘ  Ｔａｂｌｅが書き込まれれば、ＰＬからＰＬへの分岐にあたってモジュールマネージャ２０は、ＢＤ−ＲＯＭに記録されたＩｎｄｅｘ  Ｔａｂｌｅの代わりにＨＤに記録されたＩｎｄｅｘ  Ｔａｂｌｅからファイル名を取り出し、そのファイル名の動画データを読み出させてＤＶＤライクモジュール１６〜ＢＲＯＷＳＥＲモジュール１８に実行させる。
以上のように本実施形態によれば、ＢＤ−ＲＯＭに記録された特定のＰＬに道徳・倫理的な問題がある場合、Ｉｎｄｅｘ  Ｔａｂｌｅと、差し替え映像とを再生装置にダウンロードさせれば、新たなＩｎｄｅｘ  Ｔａｂｌｅを介した間接参照を再生時に再生装置に行わせることで、問題がある映像の代わりに、差し替え映像をユーザに視聴させることができる。一部差し替えにあたってＢＤ−ＲＯＭに記録された動的シナリオを一切書き換えなくてもよいので、かかる問題が生じたとしても、記録媒体を回収するというリスクを避けることができる。
また差し替え映像でなくても、ＢＤ−ＲＯＭに記録されている複数Ｔｉｔｌｅのうち、特定のものを再生させたくない場合、ＢＤ−ＲＯＭに記録されているＴｉｔｌｅの順序に入れ替えたい場合も、Ｉｎｄｅｘ  Ｔａｂｌｅをダウンロードするだけでよい。何故なら、これらの変更にあたって、ＢＤ−ＲＯＭに記録されている動的シナリオの書き換えは不要だからである。
（備考）
上記実施形態に基づいて説明してきたが、現状において最善の効果が期待できるシステム例として提示したに過ぎない。本発明はその要旨を逸脱しない範囲で変更実施することができる。代表的な変更実施の形態として、以下（Ａ）（Ｂ）（Ｃ）‥‥のものがある。
（Ａ）全ての実施形態では、本発明に係る光ディスクをＢＤ−ＲＯＭとして実施したが、本発明の光ディスクは、記録される動的シナリオ、Ｉｎｄｅｘ  Ｔａｂｌｅに特徴があり、この特徴は、ＢＤ−ＲＯＭの物理的性質に依存するものではない。動的シナリオ、Ｉｎｄｅｘ  Ｔａｂｌｅを記録しうる記録媒体なら、どのような記録媒体であってもよい。例えば、ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−ＲＷ，ＤＶＤ−Ｒ，ＤＶＤ＋ＲＷ，ＤＶＤ＋Ｒ，ＣＤ−Ｒ，ＣＤ−ＲＷ等の光ディスク、ＰＤ，ＭＯ等の光磁気ディスクであってもよい。また、コンパクトフラッシュカード、スマートメディア、メモリスティック、マルチメディアカード、ＰＣＭ−ＣＩＡカード等の半導体メモリカードであってもよい。フレシキブルディスク、ＳｕｐｅｒＤｉｓｋ，Ｚｉｐ，Ｃｌｉｋ！等の磁気記録ディスク（ｉ）、ＯＲＢ，Ｊａｚ，ＳｐａｒＱ，ＳｙＪｅｔ，ＥＺＦｌｅｙ，マイクロドライブ等のリムーバルハードディスクドライブ（ｉｉ）であってもよい。更に、機器内蔵型のハードディスクであってもよい。
動的シナリオ、Ｉｎｄｅｘ  Ｔａｂｌｅ、プレイリスト情報は、ＡＶストリーム及びストリーム管理情報と別々の記録媒体に記録されてもよい。そしてこれらをパラレルに読み出して、１つの映像編集として再生させてもよい。
（Ｂ）全ての実施形態における再生装置は、ＢＤ−ＲＯＭに記録されたＡＶストリームをデコードした上でＴＶに出力していたが、再生装置をＢＤ−ＲＯＭドライブのみとし、これ以外の構成要素をＴＶに具備させてもい、この場合、再生装置と、ＴＶとをＩＥＥＥ１３９４で接続されたホームネットワークに組み入れることができる。また、実施形態における再生装置は、テレビと接続して利用されるタイプであったが、ディスプレィと一体型となった再生装置であってもよい。更に、各実施形態の再生装置において、処理の本質的部分をなす部分のみを、再生装置としてもよい。これらの再生装置は、何れも本願明細書に記載された発明であるから、これらの何れの態様であろうとも、第１実施形態〜第１１実施形態に示した再生装置の内部構成を元に、再生装置を製造する行為は、本願の明細書に記載された発明の実施行為になる。第１実施形態〜第１１実施形態に示した再生装置の有償・無償による譲渡（有償の場合は販売、無償の場合は贈与になる）、貸与、輸入する行為も、本発明の実施行為である。店頭展示、カタログ勧誘、パンフレット配布により、これらの譲渡や貸渡を、一般ユーザに申し出る行為も本再生装置の実施行為である。
（Ｃ）図２９〜図３１、図３９、図４８に示したプログラムによる情報処理は、ハードウェア資源を用いて具体的に実現されていることから、上記フローチャートに処理手順を示したプログラムは、単体で発明として成立する。全ての実施形態は、再生装置に組み込まれた態様で、本発明に係るプログラムの実施行為についての実施形態を示したが、再生装置から分離して、第１実施形態〜第１１実施形態に示したプログラム単体を実施してもよい。プログラム単体の実施行為には、これらのプログラムを生産する行為（１）や、有償・無償によりプログラムを譲渡する行為（２）、貸与する行為（３）、輸入する行為（４）、双方向の電子通信回線を介して公衆に提供する行為（５）、店頭展示、カタログ勧誘、パンフレット配布により、プログラムの譲渡や貸渡を、一般ユーザに申し出る行為（６）がある。
（Ｄ）図２９〜図３１、図３９、図４８のフローチャートにおいて時系列に実行される各ステップの「時」の要素を、発明を特定するための必須の事項と考える。そうすると、これらのフローチャートによる処理手順は、再生方法の使用形態を開示していることがわかる。各ステップの処理を、時系列に行うことで、本発明の本来の目的を達成し、作用及び効果を奏するよう、これらのフローチャートの処理を行うのであれば、本発明に係る記録方法の実施行為に該当することはいうまでもない。
（Ｅ）Ｊａｖａオブジェクトは、ＣＧを描画するようなアプリケーションであったが、Ｊａｖａ言語で記述されるアプリケーションであればどのようなものであってもよい。例えば電子商取引（ＥＣ（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｍｍｅｒｃｅ））のクライアントアプリケーションであってもよい。映画作品の動画を交えながら商品案内を行うようなＪａｖａオブジェクトを実現することができるので、映画作品に関連するキャラクタビジネスを成功に導くことができる。またＪａｖａオブジェクトのアプリケーションは、ネット対戦型のオンラインゲームであってもよい。更に、ＪａｖａオブジェクトにてＣＧにて表現されるキャラクタは、エージェントとしての処理を行うものであてもよい。エージェントとしてのキャラクタは、再生装置のヘルプ機能を実現するものであったり、ユーザに助言を行うものでもよい。
Ｊａｖａオブジェクトが用いるようなライブラリィをＢＤ−ＲＯＭに記録しておいてもよい。そのようなライブラリィには、ＰＮＧファイル、アニメーションデータを格納したＭＮＧファイル、ストリームに関連した情報を格納したＸＭＬファイル、ＨＴＭＬ／ＳＭＩＬファイルがある。特に、アニメーションデータを格納したＭＮＧファイルがライブラリとして記録されている場合、上述したようなフクロウのコンピュータ・グラフィックスを簡単に描画することができる。
ＷｅｂＰａｇｅオブジェクトがＷＥＢサイトから取得する情報は、ＷＥＢページであってもよいし、画像データであってもよい。また、ＡＶストリーム、ストリーム管理情報、ＰＬ情報であってもよい。またＷｅｂＰａｇｅオブジェクトは、検索エンジンと連携して処理を行ってもよい。
更に、エンハンスドモードにおける記述言語は、Ｃ＋＋やＣ＃言語であってもよい。
（Ｆ）尚第１実施形態における図１８の一例は、本ＢＤ−ＲＯＭにおける再生制御の記述技法の一例にすぎない。他の記述技法としては、ＡＶストリーム中のＮａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報からダイレクトにＪａｖａオブジェクトへと分岐するという記述技法がある。図５７は、ＡＶストリーム中のＮａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報からダイレクトにＪａｖａオブジェクトへと分岐するという再生制御の一例である。かかる分岐を行うようＮａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報を記述すれば、あるキャラクタが登場しているシーンから、そのキャラクタを主役としたゲームに分岐するというシーン展開を、自由に記述することができるので、シーン展開の表現の幅が広がる。
（Ｇ）第５実施形態では、Ｃｈａｐｔｅｒを一覧表示するためのＭｅｎｕ（Ｃｈａｐｔｅｒ  Ｍｅｎｕ）と、これの挙動を制御するＭＯＶＩＥオブジェクトとをＢＤ−ＲＯＭに記録しておき、Ｔｏｐ  Ｍｅｎｕから分岐できるようにしてもよい。またリモコンキーのＣｈａｐｔｅｒキーの押下により呼出されるようにしてもよい。
（Ｈ）ＢＤ−ＲＯＭに記録するにあたって、ＡＶストリームを構成する各ＴＳパケットには、拡張ヘッダを付与しておくことが望ましい。拡張ヘッダは、ＴＰ＿ｅｘｔｒａ＿ｈｅａｄｅｒと呼ばれ、『Ａｒｒｉｂｖａｌ＿Ｔｉｍｅ＿Ｓｔａｍｐ』と、『ｃｏｐｙ＿ｐｅｒｍｉｓｓｉｏｎ＿ｉｎｄｉｃａｔｏｒ』とを含み４バイトのデータ長を有する。ＴＰ＿ｅｘｔｒａ＿ｈｅａｄｅｒ付きＴＳパケット（以下ＥＸ付きＴＳパケットと略す）は、３２個毎にグループ化されて、３つのセクタに書き込まれる。３２個のＥＸ付きＴＳパケットからなるグループは、６１４４バイト（＝３２×１９２）であり、これは３個のセクタサイズ６１４４バイト（＝２０４８×３）と一致する。３個のセクタに収められた３２個のＥＸ付きＴＳパケットを”Ａｌｉｇｎｅｄ  Ｕｎｉｔ”という。
ＩＥＥＥ１３９４を介して接続されたホームネットワークでの利用時において、再生装置２００は、以下のような送信処理にてＡｌｉｇｎｅｄ  Ｕｎｉｔの送信を行う。つまり送り手側の機器は、Ａｌｉｇｎｅｄ  Ｕｎｉｔに含まれる３２個のＥＸ付きＴＳパケットのそれぞれからＴＰ＿ｅｘｔｒａ＿ｈｅａｄｅｒを取り外し、ＴＳパケット本体をＤＴＣＰ規格に基づき暗号化して出力する。ＴＳパケットの出力にあたっては、ＴＳパケット間の随所に、ｉｓｏｃｈｒｏｎｏｕｓパケットを挿入する。この挿入箇所は、ＴＰ＿ｅｘｔｒａ＿ｈｅａｄｅｒのＡｒｒｉｂｖａｌ＿Ｔｉｍｅ＿Ｓｔａｍｐに示される時刻に基づいた位置である。ＴＳパケットの出力に伴い、再生装置２００はＤＴＣＰ＿Ｄｅｓｃｒｉｐｔｏｒを出力する。ＤＴＣＰ＿Ｄｅｓｃｒｉｐｔｏｒは、ＴＰ＿ｅｘｔｒａ＿ｈｅａｄｅｒにおけるコピー許否設定を示す。ここで「コピー禁止」を示すようＤＴＣＰ＿Ｄｅｓｃｒｉｐｔｏｒを記述しておけば、ＩＥＥＥ１３９４を介して接続されたホームネットワークでの利用時においてＴＳパケットは、他の機器に記録されることはない。
（Ｉ）ＡＶストリームにコピー世代情報（ＣＧＩ）を埋め込んで、ＡＶストリームの制限付きコピーを認めてもよい。コピー世代情報には、自由にコピー可能な旨を示す『ｃｏｐｙ  ｆｒｅｅ』と、１世代の複製物の記録が許可されている旨を示す『ｏｎｅ  ｇｅｎｅｒａｔｉｏｎ  ｃｏｐｙ』と、複製物の更なる複製は禁止されている旨を示す『ｎｏ  ｍｏｒｅ  ｃｏｐｙ』と、一切のコピーを認めない旨を示す『ｎｅｖｅｒ  ｃｏｐｙ』とがある。つまり、コンテンツに埋め込まれたコピー世代情報が『ｃｏｐｙ  ｆｒｅｅ』や『ｏｎｅ  ｇｅｎｅｒａｔｉｏｎ  ｃｏｐｙ』を示している場合のみ、ＨＤからＤＶＤへのバックアップを行い、『ｎｏ  ｍｏｒｅ  ｃｏｐｙ』『ｎｅｖｅｒ  ｃｏｐｙ』を示している場合、バックアップは行わないのである。
（Ｊ）ＡＶストリームに権利管理情報は付加されている場合、権利管理情報に定められた利用条件において、ＡＶストリームのコピーを行ってもよい。
権利管理情報において回数指定で、コピーの許可条件が規定されているなら、この条件内でコピーを行う。有効期間の指定（年月日の指定がでコピーの条件が規定されているのならこの条件内でコピーを行う。
（Ｋ）コピー処理に、移動やマイグレイト、チェックアウトといったバリエーションが存在する場合、これらバリエーション毎に、定められた利用条件に基づきバックアップを行っても良い。移動とは、コピー元のコンテンツの削除が伴うコピー処理であり、複数記録媒体間でコンテンツを移動する場合に用いられる。
マイグレイトとは、コピー先記録媒体において、利用条件情報を生成させることを前提にしたコピー処理である。
チェックアウトとは、回数制限されたコピーの一種であり、コピー回数を１回デクリメントした上でコンテンツのコピーが実行される。一般にいう回数制限付きのコピーと、チェックアウトとの違いは、コピー回数のインクリメントが可能である点である。コピー回数のインクリメントは、コピーにより記録媒体に記録されたコンテンツを再生不能にするという処理（”チェックイン”と呼ばれる。）を行った後でなされる。
（Ｌ）各実施形態におけるＡＶストリームは、ＤＶＤ−Ｖｉｄｅｏ規格、ＤＶＤ−Ｖｉｄｅｏ  Ｒｅｃｏｒｄｉｎｇ規格のＶＯＢ（Ｖｉｄｅｏ  Ｏｂｊｅｃｔ）であってもよい。ＶＯＢは、ビデオストリーム、オーディオストリームを多重化することにより得られたＩＳＯ／ＩＥＣ１３８１８−１規格準拠のプログラムストリームである。また、各実施形態におけるＡＶストリームを、”ＡＶＣｌｉｐ”と呼んでもよい。この場合、ストリーム管理情報はＣｌｉｐ情報と呼ぶことになる。またＡＶストリームにおけるビデオストリームは、ＭＰＥＧ４やＷＭＶ方式であってもよい。更にオーディオストリームは、Ｌｉｎｅａｒ−ＰＣＭ方式、Ｄｏｌｂｙ−ＡＣ３方式、ＭＰ３方式、ＭＰＥＧ−ＡＡＣ方式であってもよい。
（Ｍ）各実施形態におけるＣｅｌｌ情報は、時間情報により再生区間の開始点、終了点を指定していたが、ＢＤ−ＲＯＭにおける論理アドレスを用いて再生区間の開始点、終了点を指定してもよい。また、各実施形態におけるＣＥＬＬを”ＰｌａｙＩｔｅｍ”と呼んでもよい。
（Ｎ）ストリーム管理情報におけるＴＭＡＰは、ＥＰ＿ｍａｐと呼んでもよい。この場合、ＡＣＣＥＳＳ  ＵＮＩＴの再生開始時刻を、ＡＣＣＥＳＳ  ＵＮＩＴ先頭に位置するピクチャデータのタイムスタンプ（Ｐｒｅｓｅｎｔａｔｉｏｎ  Ｔｉｍｅ  Ｓｔａｍｐ）で表現するのが望ましい。またＡＣＣＥＳＳ  ＵＮＩＴにおけるアドレスは、ＰＥＳパケットの連番（ＳＰＮ（Ｓｅｒｉａｌ  Ｐａｃｋｅｔ  Ｎｕｍｂｅｒ））で表現するのが望ましい。
（Ｏ）再生装置の構成において、動的シナリオメモリ１５には、カレントの動的シナリオのみを格納し、静的シナリオメモリ１１には、カレントのストリーム管理情報、カレントのＰＬ情報のみを格納するとしたが、キャッシュメモリのように、複数のシナリオ、ストリーム管理情報、ＰＬ情報を予め格納しておいてもよい。こうすれば、これらのデータをＢＤ−ＲＯＭから読み出すまでのタイムラグを短くすることができる。またＢＡＣＫＵＰメモリ１４は、スタック式にレジスタの格納値を退避しておくとしたが、メモリ規模との関連を考えると、退避すべき格納値は一段とするのが現実的である。
（Ｐ）ＰＬを構成する２以上のＣＥＬＬを連続再生させるには、これらのＣＥＬＬがシームレス接続されよう、加工を施しておくことが望ましい。
シームレス接続のための加工は、動画データにおいて先行する側の再生区間の終端部と、後続する側の再生区間の先端部とを複製することにより、予め複製部分を作成しておき、これらを再エンコードすることで、実現される。尚、シームレス接続のために作成された複製部分を、Ｂｒｉｄｇｅ−Ｃｌｉｐと呼んでもよい。
ここで終端部、先端部は、以下のように設定するのが望ましい。
つまり先行するＶＯＢ＃ｘのうち先行再生区間のＯｕｔ点を含むＡＣＣＥＳＳ  ＵＮＩＴから、２個先のＡＣＣＥＳＳ  ＵＮＩＴまでを終端部とし、また後続するＣＥＬＬ情報＃ｘ＋１のうち後続再生区間のＩｎ点を含むＡＣＣＥＳＳ  ＵＮＩＴを先端部とするのが望ましい。終端部及び先端部をこのように定める根拠は、同出願人の先行技術米国特許ＵＳＰ，６１４８，１４０公報により記載されているので、詳細に関してはこの公報を参照されたい。
更に、シームレス接続のために作成された複製部分については、シームレス接続情報を設けておくことが望ましい。シームレス接続情報とは、最初のビデオフレームの再生開始時刻、最後のビデオフレームの再生終了時刻、オーディオギャップの開始時刻、オーディオギャップの時間長、オーディオギャップの位置情報を含む情報である。かかるシームレス接続情報が定義されていれば、最初のビデオフレームの再生開始時刻、最後のビデオフレームの再生終了時刻から、両区間のタイムスタンプの差（ＳＴＣ−Ｏｆｆｓｅｔ）を計算して、再生装置に設定することができる。また、これらオーディオギャップの情報を参照して、オーディオデコーダを制御すれば、１つの区間から別の区間への移行する際の音声の途切れを防止することができる。
（Ｑ）各実施形態におけるＴｉｔｌｅ（映画作品）は、テレビ映画、ゲームソフト等、映像をもって表現されている全ての著作物を意味する。何故なら、各実施形態における映像編集は、ブラウン管や液晶での表示など、視覚的又は視聴覚的効果を生じさせる方法で表現され（ｉ）、ＢＤ−ＲＯＭという有体物に、何らかの方法で結びつくことにより同一性を保ちながら存続しており（ｉｉ）、かつ再現が可能な状態におかれているので（ｉｉｉ）、映画の著作物の存在形式としての要件を満たすからである。
しかし本発明の本質的要素は、この映像編集であることに限定されるものではないので、本発明の動画データは、監視カメラの映像や家庭用ビデオカメラの映像であってもよい。
（Ｒ）各実施形態におけるＢＤ−ＲＯＭは、基礎出願に記載されたＨＤ−ＤＶＤ，ＢＤ−ＲＯＭのことをいう。また各実施形態における再生制御エンジン１２は、基礎出願の明細書に開示されたＢＤ−ＲＯＭ−ＦＦプロセッサ３０２５、シナリオプロセッサ３０４（図３５）に該当する。またモジュールマネージャ２０は、プレイバックコントローラ３０２４（図３５）に該当し、ＤＶＤライクモジュール１６〜ＢＲＯＷＳＥＲモジュール１８は、ＤＶＤ互換モジュール３０２１、ブラウザモジュール３０２２、Ｊａｖａモジュール３０２３が該当する。これらは基礎出願に記載されたものであるから、これらの技術事項についての優先権主張は、正当なものである。
（Ｓ）Ｊａｖａ言語により描画されるコンピュータ・グラフィックス（フクロウの絵等）は、ＮＵＲＢＳ（Ｎｏｎ  Ｕｎｉｆｏｒｍ  Ｒａｔｉｏｎａｌ  Ｂ−Ｓｐｌｌｉｎｅ）形式のデータで作成されてもよい。ＮＵＲＢＳとは、ベジェ曲線の束であって（このようなベジェ曲線の束はＢ−Ｓｐｌｌｉｎｅと呼ばれる。）、それぞれのベジェ曲線の曲率が不均一なものをいう。
またポリゴン形式で作成されてもよい。ポリゴン形式とは、多面体近似により特定の立体形状を表現するよう規定されたデータ形式であり、アメリカ・オートキャド社が規定したＤａｔａ  ｅＸｃａｎｇｅ  Ｆｏｒｍａｔ（ＤＸＦ）を初め、ＨＲＣ，ＷＡＶＥＦＲＯＮＴ，ＩＶ，ＶＲＭＬ形式等のものが広く知られている。
また形状表面の模様については、テクスチャマッピングにより付されてもよい。レンダリングエンジン２２は、上述したような三次元形状データの投影像を、作成してイメージデコーダにデコードさせる。この際レンダリングエンジン２２は、テクスチャマッピングを行う。テクスチャマッピングとは、平面又は曲面に、静止画、ビットマップ等のテクスチャパターンを貼り付けて表示させる処理をいう。また光源位置と、各三次元形状データにおける各平面との距離や位置関係に基づいて制御点間の平面の色、明るさを算出して、この明るさにより、スクリーン上の投影像の色・明るさを調整する。このように、光源位置と、各三次元形状データにおける各平面との距離や位置関係に基づいて、制御点間の平面の色、明るさを算出する処理はシェーディング処理といい、このようなシェーディング処理がなされることにより、三次元形状データの投影像には、陰影が付され、投影像に立体感が現れる。以上のような処理にて、専用のゲームマシン並みのコンピュータ・グラフィックスが、映画の動画像の脇に表示されることになる。
フクロウの飛翔等のキャラクタの動きは、三次元形状データを一定の規則性に基づき変化させることでなされる。三次元形状データは、ＸＸＸ．Ｍ２ＴＳを構成するエクステントの合間（図７の『他のファイル』にあたる箇所）に記録しておくことが望ましい。こうすればＡＶストリームと、三次元形状データとをまとめて読み出せる。
（Ｔ）各実施形態では、ユーザによる映像編集の選択操作を、リモコンから受け付けたが、再生装置のフロントパネルから受け付けてもよい。キーボード、タッチパネル、マウスやパッド、トラックボール等の入力機器にてユーザの指定を受け付けてもよい。この場合は、クリック操作、ドラッグ操作でこれらの操作を受け付けてもよい。
（Ｕ）各実施形態における映像編集は、アナログ放送で放送されたアナログ映像信号をエンコードすることにより得られたものでもよい。デジタル放送で放送されたトランスポートストリームから構成されるストリームデータであってもよい。
またビデオテープに記録されているアナログ／デジタルの映像信号をエンコードしてコンテンツを得ても良い。更にビデオカメラから直接取り込んだアナログ／デジタルの映像信号をエンコードしてコンテンツを得ても良い。他にも、配信サーバにより配信されるデジタル著作物でもよい。
（Ｖ）Ｊａｖａモジュール１７は、衛星放送受信のために機器に組み込まれたＪａｖａプラットフォームであってもよい。Ｊａｖａモジュール１７がかかるＪａｖａプラットフォームであれば、本発明に係る生成装置は、ＭＨＰ用ＳＴＢとしての処理を兼用することになる。
更に携帯電話の処理制御のために機器に組み込まれたＪａｖａプラットフォームであってもよい。かかるＪａｖａモジュール１７がかかるＪａｖａプラットフォームであれば、本発明に係る生成装置は、携帯電話としての処理を兼用することになる。
またＢＲＯＷＳＥＲモジュール１８は、ＭｉｃｒｏＳｏｆｔ社のＩｎｔｅｒｎｅｔ  Ｅｘｐｌｏｒｅ等、パソコン組み込み型のブラウザソフトであってもよい。
（Ｗ）図１２に示したレイアモデルにおいて、Ｊａｖａモードの上にブラウザモード及びＭＯＶＩＥモードを配置してもよい。特にＭＯＶＩＥモードでの動的シナリオの解釈や、動的シナリオに基づく制御手順の実行は、再生装置に対する負担が軽いので、ＭＯＶＩＥモードをＪａｖａモード上で実行させても何等問題は生じないからである。また再生装置や映画作品の開発にあたって、動作保証が１つのモードで済むからである。
更に３つのモードを設けず、ＪａｖａモードだけでＪａｖａモードの処理を実行してもよい。第２実施形態に示したように、ＪａｖａモードでもＰＬの再生と同期した再生制御が可能になるから、強いてＭＯＶＩＥモードを設けなくてもよいという理由による。更に動的シナリオにおける制御は、ＭＯＶＩＥモードだけでも、ブラウザモードだけでもよい。
【符号の説明】
１    ＢＤ−ＲＯＭドライブ
２    トラックバッファ
３    デマルチプレクサ
４    ビデオデコーダ
５    ピクチャプレーン
６    オーディオデコーダ
７    イメージメモリ
８    イメージプレーン
９    イメージデコーダ
１０    加算器
１１    静的シナリオメモリ
１２    再生制御エンジン
１３    プレーヤレジスタ
１４    ＢＡＣＫＵＰメモリ
１５    動的シナリオメモリ
１６    ＤＶＤライクモジュール
１７    Ｊａｖａモジュール
１８    ＢＲＯＷＳＥＲモジュール
１９    Ｕ０コントローラ
２０    モジュールマネージャ
２１    ディスパッチャ
２２    レンダリングエンジン
２３    通信部
２４    ストリームース
１００    ＢＤ−ＲＯＭ
２００    再生装置
３００    テレビ
３０４    シナリオプロセッサ
４００    リモコン
【産業上の利用可能性】  本発明に係る記録媒体は、映画作品を構成する動画データの付加価値を効果的に高めるので、より魅力ある映画作品を市場に供給することができ、映画市場や民生機器市場を活性化させることができる。故に本発明に係る記録媒体、再生装置は、映画産業や民生機器産業において高い利用可能性をもつ。
【図１】
2004025651.tif 000003
【図２】
2004025651.tif 000004
【図３】
2004025651.tif 000005
【図４】
2004025651.tif 000006
【図５】
2004025651.tif 000007
【図６】
2004025651.tif 000008
【図７】
2004025651.tif 000009
【図８】
2004025651.tif 000010
【図９】
2004025651.tif 000011
【図１０】
2004025651.tif 000012
【図１１】
2004025651.tif 000013
【図１２】
2004025651.tif 000014
【図１３】
2004025651.tif 000015
【図１４】
2004025651.tif 000016
【図１５】
2004025651.tif 000017
【図１６】
2004025651.tif 000018
【図１７】
2004025651.tif 000019
【図１８】
2004025651.tif 000020
【図１９】
2004025651.tif 000021
【図２０】
2004025651.tif 000022
【図２１】
2004025651.tif 000023
【図２２】
2004025651.tif 000024
【図２３】
2004025651.tif 000025
【図２４】
2004025651.tif 000026
【図２５】
2004025651.tif 000027
【図２６】
2004025651.tif 000028
【図２７】
2004025651.tif 000029
【図２８】
2004025651.tif 000030
【図２９】
2004025651.tif 000031
【図３０】
2004025651.tif 000032
【図３１】
2004025651.tif 000033
【図３２】
2004025651.tif 000034
【図３３】
2004025651.tif 000035
【図３４】
2004025651.tif 000036
【図３５】
2004025651.tif 000037
【図３６】
2004025651.tif 000038
【図３７】
2004025651.tif 000039
【図３８】
2004025651.tif 000040
【図３９】
2004025651.tif 000041
【図４０】
2004025651.tif 000042
【図４１】
2004025651.tif 000043
【図４２】
2004025651.tif 000044
【図４３】
2004025651.tif 000045
【図４４】
2004025651.tif 000046
【図４５】
2004025651.tif 000047
【図４６】
2004025651.tif 000048
【図４７】
2004025651.tif 000049
【図４８】
2004025651.tif 000050
【図４９】
2004025651.tif 000051
【図５０】
2004025651.tif 000052
【図５１】
2004025651.tif 000053
【図５２】
2004025651.tif 000054
【図５３】
2004025651.tif 000055
【図５４】
2004025651.tif 000056
【図５５】
2004025651.tif 000057
【図５６】
2004025651.tif 000058
【図５７】
2004025651.tif 000059
【国際調査報告】
2004025651.tif 000060
2004025651.tif 000061
2004025651.tif 000062
2004025651.tif 000063