(57)【要約】【課題】  映像データ用ＢＤ−ＲＯＭで新たにＨＴＭＬおよびスクリプトで記述したアプリケーションによる再生制御環境を導入するにあたって、インターネット上のコンテンツサーバ上のＨＴＭＬファイルへの文書遷移が発生した際に、当該アプリケーションが悪意のある第三者により偽造・改竄されたものではないことを容易に検証する仕組みが必要となる。【解決手段】  コンテンツサーバ上に、コンテンツサーバ上のアプリケーションを構成するファイル名とそれぞれのハッシュ値記載したファイルを配置し、ＢＤプレーヤが事前に当該ファイルを取得し署名等の手段で検証しておくことで、当該コンテンツサーバ上のアプリケーションへの遷移が発生した際にアプリケーションの構成ファイルの妥当性を前記ファイルに記載されたファイル名とハッシュ値とを元に容易にかつ短期間に検証することが可能となる。【選択図】  図５３
2007018365.tif 000002
【特許請求の範囲】
【請求項１】
デジタルストリームを含む１つ以上のタイトルと宣言型言語で記述され１つ以上のファイルから構成される１つ以上のアプリケーションとが記録された情報記録媒体であって、
前記情報記録媒体には、アプリケーションサーバ上に配置された信頼できるアプリケーションを構成するファイルのファイル名と各々のハッシュ値とが記載されたファイルリストの位置情報が記録される
ことを特徴とする情報記録媒体。
【請求項２】
前記ファイルリストの位置情報はアプリケーションサーバ毎に前記各タイトル毎に関連づけて記録される
ことを特徴とする請求項１記載の情報記録媒体。
【請求項３】
前記ファイルリストに対する署名の位置情報がさらに記録される
ことを特徴とする請求項１記載の情報記録媒体。
【請求項４】
前記ファイルリストを受信するためのセキュア通信用の公開鍵証明書がさらに記録される
ことを特徴とする請求項１記載の情報記録媒体。
【請求項５】
前記ファイルリストには前記ファイルリストに対する署名の位置情報も記載される
ことを特徴とする請求項１記載の情報記録媒体
【請求項６】
情報記録媒体に記録されたデジタルストリームを含むタイトルの再生と情報記録媒体に記録またはアプリケーションサーバに配置されたアプリケーションの実行とを同時に行う再生装置であって、
複数タイトル間の分岐を制御するタイトル制御部と、
１つのタイトルに帰属するデジタルストリームを再生する再生制御部と、
情報記録媒体に記録されている、アプリケーションサーバ上のアプリケーションを構成する各ファイルのファイル名とハッシュ値とが記載されたファイルリストの位置情報を元に前記ファイルリストを受信するファイルリスト受信部と、
前記受信するファイルリストの妥当性を確認するファイルリスト妥当性確認部と、
前記アプリケーションサーバに配置されたアプリケーションを実行する際に前記アプリケーションを構成するファイルを受信するファイル受信部と
前記受信したファイルのハッシュ値を計算し前記ファイルリストに記載の当該ファイルのハッシュ値と一致することを確認するハッシュ確認部と
受信したファイルを元にアプリケーションサーバ上のアプリケーションを実行するアプリケーション実行部と
を備えることを特徴とする再生装置。
【請求項７】
前記ファイルリストに記載されている、アプリケーションサーバ上のアプリケーションを構成するファイルのファイル名は当該ファイルの位置情報であり、
前記ファイル受信部は、前記受信しようとしているファイルの位置情報が前記ファイルリストに記載されている位置情報と一致することを確認した上で当該ファイル受信する
ことを特徴とする請求項６記載の再生装置。
【請求項８】
前記情報記録媒体または前記ファイルリストに記載されている、前記ファイルリストに対する署名の位置情報を元に前記ファイルリストに対する署名を受信する署名受信部をさらに備え
前記ファイルリスト妥当性確認部は
前記受信した署名を元に前記ファイルリストの妥当性を確認する
ことを特徴とする請求項６記載の再生装置。
【請求項９】
前記情報記録媒体または再生装置に記録された公開鍵証明書を読み込む公開鍵証明書読込部をさらに備え、
前記ファイル受信部は公開鍵証明書を用いて確立したセキュアな通信路を用いて前記ファイルを受信し、
前記ファイルリスト妥当性確認部は前記セキュアな通信路が確立できるか否かを通じてファイルリストの妥当性を確認する
ことを特徴とする請求項６記載の再生装置。
【請求項１０】
前記アプリケーション実行部は、
前記ファイルリスト妥当性確認部により前記ファイルリストの妥当性が確認され、
かつ前記ハッシュ確認部において前記ファイル受信部で受信したアプリケーションサーバ上のアプリケーションを構成するファイルのハッシュ値が前記ファイルリストに記載されたハッシュ値と一致することが確認された場合に
前記アプリケーションサーバに配置されたアプリケーションを信頼する
ことを特徴とする請求項６記載の再生装置。
【請求項１１】
情報記録媒体に記録されたデジタルストリームを含むタイトルの再生と情報記録媒体に記録またはアプリケーションサーバに配置されたアプリケーションの実行とを同時に行うプログラムであって、
複数タイトル間の分岐を制御するタイトル制御ステップと、
１つのタイトルに帰属するデジタルストリームを再生する再生制御ステップと、
情報記録媒体に記録されている、アプリケーションサーバ上のアプリケーションを構成する各ファイルのファイル名とハッシュ値とが記載されたファイルリストの位置情報を元に前記ファイルリストを受信するファイルリスト受信ステップと、
前記受信するファイルリストの妥当性を確認するファイルリスト妥当性確認ステップと、
前記アプリケーションサーバに配置されたアプリケーションを実行する際に前記アプリケーションを構成するファイルを受信するファイル受信ステップと
前記受信したファイルのハッシュ値を計算し前記ファイルリストに記載の当該ファイルのハッシュ値と一致することを確認するハッシュ確認ステップと
受信したファイルを元にアプリケーションサーバ上のアプリケーションを実行するアプリケーション実行ステップと
をコンピュータに実行させることを特徴とするプログラム。
【請求項１２】
前記ファイルリストに記載されている、アプリケーションサーバ上のアプリケーションを構成するファイルのファイル名は当該ファイルの位置情報であり、
前記ファイル受信ステップは、前記受信しようとしているファイルの位置情報が前記ファイルリストに記載されている位置情報と一致することを確認した上で当該ファイル受信する
ことを特徴とする請求項１１記載のプログラム。
【請求項１３】
前記情報記録媒体または前記ファイルリストに記載されている、前記ファイルリストに対する署名の位置情報を元に前記ファイルリストに対する署名を受信する署名受信ステップをさらに備え
前記ファイルリスト妥当性確認ステップは
前記受信した署名を元に前記ファイルリストの妥当性を確認する
ことを特徴とする請求項１１記載のプログラム。
【請求項１４】
前記情報記録媒体または再生装置に記録された公開鍵証明書を読み込む公開鍵証明書読込ステップをさらに備え、
前記ファイル受信ステップは公開鍵証明書を用いて確立したセキュアな通信路を用いて前記ファイルを受信し、
前記ファイルリスト妥当性確認ステップは前記セキュアな通信路が確立できるか否かを通じてファイルリストの妥当性を確認する
ことを特徴とする請求項１１記載のプログラム。
【請求項１５】
前記アプリケーション実行ステップは、
前記ファイルリスト妥当性確認ステップにより前記ファイルリストの妥当性が確認され、
かつ前記ハッシュ確認ステップにおいて前記ファイル受信ステップで受信したアプリケーションサーバ上のアプリケーションを構成するファイルのハッシュ値が前記ファイルリストに記載されたハッシュ値と一致することが確認された場合に
前記アプリケーションサーバに配置されたアプリケーションを信頼する
ことを特徴とする請求項１１記載のプログラム。
【請求項１６】
情報記録媒体に記録されたデジタルストリームを含むタイトルの再生と情報記録媒体に記録またはアプリケーションサーバに配置されたアプリケーションの実行とを同時に行う再生方法であって、
複数タイトル間の分岐を制御するタイトル制御ステップと、
１つのタイトルに帰属するデジタルストリームを再生する再生制御ステップと、
情報記録媒体に記録されている、アプリケーションサーバ上のアプリケーションを構成する各ファイルのファイル名とハッシュ値とが記載されたファイルリストの位置情報を元に前記ファイルリストを受信するファイルリスト受信ステップと、
前記受信するファイルリストの妥当性を確認するファイルリスト妥当性確認ステップと、
前記アプリケーションサーバに配置されたアプリケーションを実行する際に前記アプリケーションを構成するファイルを受信するファイル受信ステップと
前記受信したファイルのハッシュ値を計算し前記ファイルリストに記載の当該ファイルのハッシュ値と一致することを確認するハッシュ確認ステップと
受信したファイルを元にアプリケーションサーバ上のアプリケーションを実行するアプリケーション実行ステップと
を含むことを特徴とする再生方法。
【請求項１７】
前記ファイルリストに記載されている、アプリケーションサーバ上のアプリケーションを構成するファイルのファイル名は当該ファイルの位置情報であり、
前記ファイル受信ステップは、前記受信しようとしているファイルの位置情報が前記ファイルリストに記載されている位置情報と一致することを確認した上で当該ファイル受信する
ことを特徴とする請求項１６記載の再生方法。
【請求項１８】
前記情報記録媒体または前記ファイルリストに記載されている、前記ファイルリストに対する署名の位置情報を元に前記ファイルリストに対する署名を受信する署名受信ステップをさらに備え
前記ファイルリスト妥当性確認ステップは
前記受信した署名を元に前記ファイルリストの妥当性を確認する
ことを特徴とする請求項１６記載の再生方法。
【請求項１９】
前記情報記録媒体または再生装置に記録された公開鍵証明書を読み込む公開鍵証明書読込ステップをさらに備え、
前記ファイル受信ステップは公開鍵証明書を用いて確立したセキュアな通信路を用いて前記ファイルを受信し、
前記ファイルリスト妥当性確認ステップは前記セキュアな通信路が確立できるか否かを通じてファイルリストの妥当性を確認する
ことを特徴とする請求項１６記載の再生方法。
【請求項２０】
前記アプリケーション実行ステップは、
前記ファイルリスト妥当性確認ステップにより前記ファイルリストの妥当性が確認され、
かつ前記ハッシュ確認ステップにおいて前記ファイル受信ステップで受信したアプリケーションサーバ上のアプリケーションを構成するファイルのハッシュ値が前記ファイルリストに記載されたハッシュ値と一致することが確認された場合に
前記アプリケーションサーバに配置されたアプリケーションを信頼する
ことを特徴とする請求項１６記載の再生方法。
【請求項２１】
デジタルストリームを含む１つ以上のタイトルと１つ以上のファイルから構成される１つ以上のアプリケーションとが記録された情報記録媒体を再生する再生装置に対してアプリケーションを提供するアプリケーションサーバであって、
前記アプリケーションサーバは自身が提供するアプリケーションを構成するファイルのファイル名とそのハッシュ値が記載されたファイルリストを記録し、
前記再生装置からの要求に応じて前記ファイルリストを提供する
ことを特徴とするアプリケーションサーバ。
【請求項２２】
前記ファイルリストに対する署名をさらに記録し、
前記再生装置からの要求に応じて前記署名を提供する
ことを特徴とする請求項２１記載のアプリケーションサーバ。
【請求項２３】
セキュアな通信路を確立した再生装置のみに前記ファイルリストを提供する
ことを特徴とする請求項２１記載のアプリケーションサーバ。
【請求項２４】
前記ファイルリストに対する署名の位置情報は前記ファイルリストに記載される
ことを特徴とする請求項２２記載のアプリケーションサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＢＤ−ＲＯＭ等、映像データを記録した情報記録媒体、その再生装置及び再生方法に関し、特に、映像データとプログラムとを含むコンテンツの開発にプログラミング環境を導入する場合の改良に関する。
【背景技術】
【０００２】
映像データを記録した情報記録媒体の代表格は、ＤＶＤ（以下、ＳＤ−ＤＶＤまたは単にＤＶＤと称する）である。以降、従来のＤＶＤについて説明する。
【０００３】
図１は、ＳＤ−ＤＶＤの構造を示した図である。図１の下段に示すように、ＤＶＤディスク上にはリードインからリードアウトまでの間に論理アドレス空間が設けられ、論理アドレス空間の先頭からファイルシステムのボリューム情報が記録され、続いて映像音声などのアプリケーションデータが記録されている。
【０００４】
ファイルシステムとは、ＩＳＯ９６６０やＵＤＦ（Ｕｎｉｖｅｒｓａｌ  Ｄｉｓｃ  Ｆｏｒｍａｔ）のことであり、ディスク上のデータをディレクトリまたはファイルと呼ばれる単位で表現する仕組みである。日常使っているＰＣ（パーソナルコンピュータ）の場合でも、ＦＡＴまたはＮＴＦＳと呼ばれるファイルシステムを通すことにより、ディレクトリやファイルという構造でハードディスクに記録されたデータがコンピュータ上で表現され、ユーザビリティを高めている。  ＳＤ−ＤＶＤの場合、ＵＤＦ及びＩＳＯ９６６０両方を使用しており（両方を合わせて「ＵＤＦブリッジ」と呼ぶ事がある）、ＵＤＦまたはＩＳＯ９６６０どちらのファイルシステムドライバによってもデータの読み出し（ここで取り扱うＤＶＤはパッケージメディア用のＲＯＭディスクであり、物理的に書き込みが不可能である）ができるようになっている。
【０００５】
ＤＶＤ上に記録されたデータは、ＵＤＦブリッジを通して、図１左上に示すようなディレクトリまたはファイルとして見ることができる。ルートディレクトリ（図中「ＲＯＯＴ」）の直下に「ＶＩＤＥＯ＿ＴＳ」と呼ばれるディレクトリが置かれ、ここにＤＶＤのアプリケーションデータが記録されている。アプリケーションデータは、複数のファイルとして記録され、主なファイルとして以下のものがある。
【０００６】
ＶＩＤＥＯ＿ＴＳ．ＩＦＯ    ディスク再生制御情報ファイル
ＶＴＳ＿０１＿０．ＩＦＯ    ビデオタイトルセット＃１再生制御情報ファイル
ＶＴＳ＿０１＿０．ＶＯＢ    ビデオタイトルセット＃１ストリームファイル
．．．．．
【０００７】
拡張子として２つの種類が存在する。「ＩＦＯ」は再生制御情報が記録されたファイルであって、「ＶＯＢ」はＡＶデータであるＭＰＥＧストリームが記録されたファイルである。再生制御情報とは、ＤＶＤで採用されたインタラクティビティ（ユーザの操作に応じて再生を動的に変化させる技術）を実現するための情報や、メタデータのようなタイトルやＡＶストリームに付属する情報などのことである。また、ＤＶＤでは一般的に再生制御情報のことをナビゲーション情報と呼ぶことがある。
【０００８】
再生制御情報ファイルは、ディスク全体を管理する「ＶＩＤＥＯ＿ＴＳ．ＩＦＯ」と、個々のビデオタイトルセット（ＤＶＤでは複数のタイトル、言い換えれば異なる映画や異なるバージョンの映画を１枚のディスクに記録することが可能である。）毎の再生制御情報である「ＶＴＳ＿０１＿０．ＩＦＯ」がある。ここで、ファイル名ボディにある「０１」はビデオタイトルセットの番号を示しており、例えば、ビデオタイトルセット＃２の場合は、「ＶＴＳ＿０２＿０．ＩＦＯ」となる。
【０００９】
図１の右上部は、ＤＶＤのアプリケーション層でのＤＶＤナビゲーション空間であり、前述した再生制御情報が展開された論理構造空間である。「ＶＩＤＥＯ＿ＴＳ．ＩＦＯ」内の情報は、ＶＭＧＩ（ＶＩＤＥＯ  Ｍａｎａｇｅｒ  Ｉｎｆｏｒｍａｔｉｏｎ）として、「ＶＴＳ＿０１＿０．ＩＦＯ」または、他のビデオタイトルセット毎に存在する再生制御情報はＶＴＳＩ（Ｖｉｄｅｏ  Ｔｉｔｌｅ  Ｓｅｔ  Ｉｎｆｏｒｍａｔｉｏｎ）としてＤＶＤナビゲーション空間に展開される。
【００１０】
ＶＴＳＩの中にはＰＧＣ（Ｐｒｏｇｒａｍ  Ｃｈａｉｎ）と呼ばれる再生シーケンスの情報であるＰＧＣＩ（Ｐｒｏｇｒａｍ  Ｃｈａｉｎ  Ｉｎｆｏｒｍａｔｉｏｎ）が記述されている。ＰＧＣＩは、Ｃｅｌｌの集合とコマンドと呼ばれる一種のプログラミング情報によって構成されている。Ｃｅｌｌ自身はＶＯＢ（Ｖｉｄｅｏ  Ｏｂｊｅｃｔの略であり、ＭＰＥＧストリームを指す）の一部区間または全部区間の集合であり、Ｃｅｌｌの再生は、当該ＶＯＢのＣｅｌｌによって指定された区間を再生することを意味している。
【００１１】
コマンドは、ＤＶＤの仮想マシンによって処理されるものであり、ブラウザ上で実行されるＪａｖａ（登録商標）スクリプトなどに近いものである。しかしながらＪａｖａ（登録商標）スクリプトが論理演算の他にウィンドウやブラウザの制御（例えば、新しいブラウザのウィンドを開くなど）を行うのに対して、ＤＶＤのコマンドは、論理演算の他にＡＶタイトルの再生制御、例えば、再生するチャプタの指定などを実行するだけのものである点で異なっている。
【００１２】
Ｃｅｌｌはディスク上に記録されているＶＯＢの開始及び終了アドレス（論理アドレス）をその内部情報として有しており、プレーヤは、Ｃｅｌｌに記述されたＶＯＢの開始及び終了アドレス情報を使ってデータの読み出し、再生を実行する。
【００１３】
図１はＡＶストリーム中に埋め込まれているナビゲーション情報を説明する概略図である。ＳＤ−ＤＶＤの特長であるインタラクティビティは前述した「ＶＩＤＥＯ＿ＴＳ．ＩＦＯ」や「ＶＴＳ＿０１＿０．ＩＦＯ」などに記録されているナビゲーション情報だけによって実現されているのではなく、幾つかの重要な情報はナビゲーション・パック（ナビパックまたは、ＮＶ＿ＰＣＫと称する）と呼ばれる専用キャリアを使いＶＯＢ内に映像、音声データと一緒に多重化されている。
【００１４】
ここでは簡単なインタラクティビティの例としてメニューを説明する。メニュー画面上には、幾つかのボタンが現れ、夫々のボタンには当該ボタンが選択実行された時の処理が定義されている。また、メニュー上では一つのボタンが選択されており（ハイライトによって選択ボタン上に半透明色がオーバーレイされている）、ユーザは、リモコンの上下左右キーを使って、選択状態のボタンを上下左右の何れかのボタンに移動させることができる。リモコンの上下左右キーを使って、選択実行したいボタンまでハイライトを移動させ、決定する（決定キーを押す）ことによって対応するコマンドのプログラムが実行される。一般的には対応するタイトルやチャプタの再生がコマンドによって実行されている。
【００１５】
図２の左上部はＮＶ＿ＰＣＫ内の概要を示している。
ＮＶ＿ＰＣＫ内には、ハイライトカラー情報と個々のボタン情報などが含まれている。ハイライトカラー情報には、カラーパレット情報が記述され、オーバーレイ表示されるハイライトの半透明色が指定される。ボタン情報には、個々のボタンの位置情報である矩形領域情報と、当該ボタンから他のボタンへの移動情報（ユーザの上下左右キー操作夫々に対応する移動先ボタンの指定）と、ボタンコマンド情報（当該ボタンが決定された時に実行されるコマンド）が記述されている。
【００１６】
メニュー上のハイライトは、図２の中央右上部に示すように、オーバーレイ画像として作られる。オーバーレイ画像は、ボタン情報の矩形領域情報にカラーパレット情報の色をつけた物である。このオーバーレイ画像は右部に示す背景画像と合成されて画面上に表示される。
【００１７】
上述のようにして、ＤＶＤではメニューを実現している。また、何故、ナビゲーションデータの一部をＮＶ＿ＰＣＫを使ってストリーム中に埋め込んでいるのは、ストリームと同期して動的にメニュー情報を更新、例えば、映画再生中の途中５分〜１０分の間にだけメニューが表示されるなど、同期タイミングが問題となりやすいアプリケーションの場合でも、問題なく実現できるようにしたためである。
【００１８】
図３は、ＤＶＤのＶＯＢのイメージである。図に示すように、映像、音声、字幕などのデータ（Ａ段）は、ＭＰＥＧシステム（ＩＳＯ／ＩＥＣ１３８１８−１）規格に基づいて、パケット及びパック化し（Ｂ段）、夫々を多重化して１本のＭＰＥＧプログラムストリームにしている（Ｃ段）。また、前述した通りインタラクティブを実現するためのボタンコマンドを含んだＮＶ＿ＰＣＫも一緒に多重化をされている。
【００１９】
ＭＰＥＧシステムの多重化の特徴は、多重化する個々のデータは、そのデコード順に基づくビット列になっているが、多重化されるデータ間、即ち、映像、音声、字幕の間は必ずしも再生順、言い換えればデコード順に基づいてビット列が形成されているわけではない。これはＭＰＥＧシステムストリームのデコーダモデル（一般にＳｙｓｔｅｍ  Ｔａｒｇｅｔ  Ｄｅｃｏｄｅｒ、またはＳＴＤと呼ばれる（図３のＤ段））が多重化を解いた後に個々のエレメンタリーストリームに対応するデコーダバッファを持ち、デコードタイミングまでに一時的にデータを蓄積している事に由来している。このデコーダバッファは、個々のエレメンタリーストリーム毎にサイズが異なり、映像に対しては、２３２ｋＢ、音声に対しては４ｋＢ、字幕に対しては５２ｋＢを夫々有している。このため、各デコーダバッファへのデータ入力タイミングは個々のエレメンタリストリームで異なるため、ＭＰＥＧシステムストリームとしてビット列を形成する順番と表示（デコード）されるタイミングにずれが生じている。
【００２０】
即ち、映像データと並んで多重化されている字幕データが必ずしも同一タイミングでデコードされているわけでは無い。
【００２１】
かかるＤＶＤの構成は、以下の特許文献１に記載されている。
【特許文献１】特許第２８１３２４５号
【発明の開示】
【発明が解決しようとする課題】
【００２２】
ところで次世代の情報記録媒体であるＢＤ−ＲＯＭは、上述したようなプログラム（ナビゲーションコマンド）ではなく、XMLのような宣言型言語で記述されたデータとスクリプトによるプログラムを含むアプリケーションの記録が予定されている。さらにＢＤプレーヤではネットワーク接続機能を備え、前記アプリケーションからインターネット上のコンテンツサーバに配置されたアプリケーションに遷移し実行可能である。
【００２３】
このためインターネット上のコンテンツサーバに配置されたアプリケーションを実行する際に、ネットワーク上を流れるアプリケーションが改竄されたりコンテンツサーバが詐称されユーザが悪意のあるアプリケーションをダウンロードし実行してしまう可能性がある。このような悪意のある第三者によって偽造または改竄されたプログラムをプレーヤで実行した場合、プレーヤのシステムが破壊されたり、正規の情報記録媒体に記録された保護すべき映像データが盗まれたり改竄されたりするなどの深刻な問題が発生する。
【００２４】
しかしながら既存の技術ではＢＤ−ＲＯＭ Ｄｉｓｃ上のアプリケーションと同様にインターネット上のコンテンツサーバに配置されたHTML およびスクリプトによるアプリケーションを認証する仕組みがなかった。
【課題を解決するための手段】
【００２５】
上記課題を解決するため本発明におけるアプリケーション認証方法では、コンテンツサーバ上にコンテンツサーバに配置されたアプリケーションを構成するファイル名とそれぞれのハッシュ値記載したファイル（Network Resource List File）が配置され、本発明における情報記録媒体を読み込み実行するＢＤプレーヤが事前に当該Network Resource List Fileを取得し署名やHTTPS等の手段で検証しておく。これにより、当該コンテンツサーバ上のアプリケーションへの遷移が発生した場合、BDプレーヤはダウンロードするアプリケーション構成ファイルのファイル名とそのハッシュ値が、前記Network Resource List Fileに記載されたものと等しいことを確認する。
【発明の効果】
【００２６】
上述した構成により、コンテンツサーバに配置されたアプリケーションを実行する際に、当該アプリケーションが、正規のスタジオが作成したアプリケーションであるのか、それ以外のアプリケーション、例えば悪意のある第三者がアプリケーションを偽造または改竄したアプリケーションであるのかを容易にかつ短期間に判別可能である。
【００２７】
これによりインターネット上のコンテンツサーバに配置されたアプリケーションに関して、正規のStudioで作成され改竄されていないアプリケーション以外は、深刻な問題を起こしかねないとして実行を拒否したり、利用できる機能やアクセスできるリソースを制限することが可能となる。
【発明を実施するための最良の形態】
【００２８】
（実施例１）
まず最初に本発明の第１の実施の形態について説明する。
【００２９】
（ディスク上の論理データ構造）
図４は、ＢＤ−ＲＯＭ（以降、「ＢＤ」と称する場合もある）の構成、特にディスク媒体であるＢＤディスク（１０４）と、ディスクに記録されているデータ（１０１、１０２、１０３）の構成を示す図である。ＢＤディスク（１０４）に記録されるデータは、ＡＶデータ（１０３）と、ＡＶデータに関する管理情報及びＡＶ再生シーケンスなどのＢＤ管理情報（１０２）と、インタラクティブを実現するＢＤ再生プログラム（１０１）である。本実施の形態では、映画などのＡＶコンテンツを再生するためのＡＶアプリケーションを主眼においてのＢＤディスクの説明を行うが、ＢＤディスクをＣＤ−ＲＯＭやＤＶＤ−ＲＯＭの様にコンピュータ用途の記録媒体としてしようすることも当然のことながら可能である。  図５は、上述したＢＤディスクに記録されている論理データを示した図である。ＢＤディスクは、他の光ディスク、例えばＤＶＤやＣＤなどと同様にその内周から外周に向けてらせん状に記録領域を持ち、内周のリード・インと外周のリード・アウトの間に論理データを記録できる論理アドレス空間を有している。また、リード・インの内側にはＢＣＡ（Ｂｕｒｓｔ  Ｃｕｔｔｉｎｇ  Ａｒｅａ）と呼ばれるドライブでしか読み出せない特別な領域がある。この領域はアプリケーションから読み出せないため、例えば著作権保護技術などに利用されることがよくある。
【００３０】
論理アドレス空間には、ファイルシステム情報（ボリューム）を先頭に映像データなどのアプリケーションデータが記録されている。ファイルシステムとは従来技術で説明した通り、ＵＤＦやＩＳＯ９６６０などのことであり、通常のＰＣと同じように記録されている論理データをディレクトリ、ファイル構造を使って読み出しする事が可能になっている。
【００３１】
本実施例の場合、ＢＤディスク上のディレクトリ、ファイル構造は、ルートディレクトリ（ＲＯＯＴ）直下にＢＤＶＩＤＥＯディレクトリが置かれている。このディレクトリはＢＤ−ＲＯＭで扱うＡＶコンテンツや管理情報などのデータ（図４で説明した１０１、１０２、１０３）が記録されているディレクトリである。
【００３２】
ＢＤＶＩＤＥＯディレクトリの下には、次の７種類のファイルが記録されている。
【００３３】
ＢＤ．ＩＮＦＯ（ファイル名固定）
「ＢＤ管理情報」の一つであり、ＢＤディスク全体に関する情報を記録したファイルである。ＢＤプレーヤは最初にこのファイルを読み出す。
【００３４】
ＢＤ．ＰＲＯＧ（ファイル名固定）
「ＢＤ再生プログラム」の一つであり、ＢＤディスク全体に関わるプログラムを記録したファイルである。
【００３５】
ＸＸＸ．ＰＬ（「ＸＸＸ」は可変、拡張子「ＰＬ」は固定）
「ＢＤ管理情報」の一つであり、シナリオを記録するプレイリスト（Ｐｌａｙ  Ｌｉｓｔ）情報を記録したファイルである。プレイリスト毎に１つのファイルを持っている。
【００３６】
ＸＸＸ．ＰＲＯＧ（「ＸＸＸ」は可変、拡張子「ＰＬ」は固定）
「ＢＤ再生プログラム」の一つであり、前述したプレイリスト毎のプログラムを記録したファイルである。プレイリストとの対応はファイルボディ名（「ＸＸＸ」が一致する）によって識別される。
【００３７】
ＹＹＹ．ＶＯＢ（「ＹＹＹ」は可変、拡張子「ＶＯＢ」は固定）
「ＡＶデータ」の一つであり、ＶＯＢ（従来例で説明したＶＯＢと同じ）を記録したファイルである。ＶＯＢ毎に１つのファイルを持っている。
【００３８】
ＹＹＹ．ＶＯＢＩ（「ＹＹＹ」は可変、拡張子「ＶＯＢＩ」は固定）
「ＢＤ管理情報」の一つであり、ＡＶデータであるＶＯＢに関わる管理情報を記録したファイルである。ＶＯＢとの対応はファイルボディ名（「ＹＹＹ」が一致する）によって識別される。
【００３９】
ＺＺＺ．ＰＮＧ（「ＺＺＺ」は可変、拡張子「ＰＮＧ」は固定）
「ＡＶデータ」の一つであり、字幕及びメニューを構成するためのイメージデータＰＮＧ（Ｗ３Ｃによって標準化された画像フォーマットであり「ピング」と読む）を記録したファイルである。１つのＰＮＧイメージ毎に１つのファイルを持つ。
【００４０】
（プレーヤの構成）
次に、前述したＢＤディスクを再生するプレーヤの構成について図６及び図７を用いて説明する。
【００４１】
図６は、プレーヤの大まかな機能構成を示すブロック図である。
ＢＤディスク（２０１）上のデータは、光ピックアップ（２０２）を通して読み出される。読み出されたデータは夫々のデータの種類に応じて専用のメモリに記録される。ＢＤ再生プログラム（「ＢＤ．ＰＲＯＧ」または「ＸＸＸ．ＰＲＯＧ」ファイルの中身）はプログラム記録メモリ（２０３）に、ＢＤ管理情報（「ＢＤ．ＩＮＦＯ」、「ＸＸＸ．ＰＬ」または「ＹＹＹ．ＶＯＢＩ」）は管理情報記録メモリ（２０４）に、ＡＶデータ（「ＹＹＹ．ＶＯＢ」または「ＺＺＺ．ＰＮＧ」）はＡＶ記録メモリ（２０５）に夫々記録される。
【００４２】
プログラム記録メモリ（２０３）に記録されたＢＤ再生プログラムはプログラム処理部（２０６）によって、管理情報記録メモリ（２０４）に記録されたＢＤ管理情報は管理情報処理部（２０７）によって、また、ＡＶ記録メモリ（２０５）に記録されたＡＶデータはプレゼンテーション処理部（２０８）によって夫々処理される。
【００４３】
プログラム処理部（２０６）は、管理情報処理部（２０７）より再生するプレイリストの情報やプログラムの実行タイミングなどのイベント情報を受け取りプログラムの処理を行う。また、プログラムでは再生するプレイリストを動的に変える事が可能であり、この場合は管理情報処理部（２０７）に対してプレイリストの再生命令を送ることで実現する。プログラム処理部（２０６）は、ユーザからのイベント、即ちリモコンキーからのリクエストを受け、ユーザイベントに対応するプログラムがある場合は、実行処理する。
【００４４】
管理情報処理部（２０７）は、プログラム処理部（２０６）の指示を受け、対応するプレイリスト及びプレイリストに対応したＶＯＢの管理情報を解析し、プレゼンテーション処理部（２０８）に対象となるＡＶデータの再生を指示する。また、管理情報処理部（２０７）は、プレゼンテーション処理部（２０８）より基準時刻情報を受け取り、時刻情報に基づいてプレゼンテーション処理部（２０８）にＡＶデータ再生の停止指示を行い、また、プログラム処理部（２０６）に対してプログラム実行タイミングを示すイベントを生成する。
【００４５】
プレゼンテーション処理部（２０８）は、映像、音声、字幕／イメージ夫々に対応するデコーダを持ち、管理情報処理部（２０７）からの指示に従い、ＡＶデータのデコード及び出力を行う。映像データ及び字幕／イメージの場合は、デコード後に夫々の専用プレーン、ビデオプレーン（２１０）及びイメージプレーン（２０９）に描画され、合成処理部（２１１）によって映像の合成処理が行われＴＶなどの表示デバイスへ出力される。
【００４６】
図６で示すように、ＢＤプレーヤは図４で示したＢＤディスクに記録されているデータ構成に基づいた構成をとっている。
【００４７】
図７は前述したプレーヤ構成を詳細化したブロック図である。図７では、ＡＶ記録メモリ（２０５）はイメージメモリ（３０８）とトラックバッファ（３０９）に、プログラム処理部（２０６）はプログラムプロセッサ（３０２）とＵＯＰマネージャ（３０３）に、管理情報処理部（２０７）はシナリオプロセッサ（３０５）とプレゼンテーションコントローラ（３０６）に、プレゼンテーション処理部（２０８）はクロック（３０７）、デマルチプレクサ（３１０）、イメージプロセッサ（３１１）、ビデオプロセッサ（３１２）とサウンドプロセッサ（３１３）に夫々対応／展開している。
【００４８】
ＢＤディスク（２０１）から読み出されたＶＯＢデータ（ＭＰＥＧストリーム）はトラックバッファ（３０９）に、イメージデータ（ＰＮＧ）はイメージメモリ（３０８）に夫々記録される。デマルチプレクサ（３１０）がクロック（３０７）の時刻に基づき、トラックバッファ（３０９）に記録されたＶＯＢデータを抜き出し、映像データをビデオプロセッサ（３１２）に音声データをサウンドプロセッサ（３１３）に夫々送り込む。ビデオプロセッサ（３１２）及びサウンドプロセッサ（３１３）は夫々ＭＰＥＧシステム規格で定める通りに、デコーダバッファとデコーダから夫々構成されている。即ち、デマルチプレクサ（３１０）から送りこまれる映像、音声夫々のデータは、夫々のデコーダバッファに一時的に記録され、クロック（３０７）に従い個々のデコーダでデコード処理される。
【００４９】
イメージメモリ（３０８）に記録されたＰＮＧは、次の２つの処理方法がある。イメージデータが字幕用の場合は、プレゼンテーションコントローラ（３０６）によってデコードタイミングが指示される。クロック（３０７）からの時刻情報をシナリオプロセッサ（３０５）が一旦受け、適切な字幕表示が行えるように、字幕表示時刻（開始及び終了）になればプレゼンテーションコントローラ（３０６）に対して字幕の表示、非表示の指示を出す。プレゼンテーションコントローラ（３０６）からデコード／表示の指示を受けたイメージプロセッサ（３１１）は対応するＰＮＧデータをイメージメモリ（３０８）から抜き出し、デコードし、イメージプレーン（３１４）に描画する。
【００５０】
次に、イメージデータがメニュー用の場合は、プログラムプロセッサ（３０２）によってデコードタイミングが指示される。プログラムプロセッサ（３０２）が何時イメージのデコードを指示するかは、プログラムプロセッサ（３０２）が処理しているＢＤプログラムに因るものであって一概には決まらない。
【００５１】
イメージデータ及び映像データは、図６で説明したように夫々デコード後にイメージプレーン（３１４）、ビデオプレーン（３１５）に記録され、合成処理部（３１６）によって合成出力される。
【００５２】
ＢＤディスク（２０１）から読み出された管理情報（シナリオ、ＡＶ管理情報）は、管理情報記録メモリ（３０４）に記録されるが、シナリオ情報（「ＢＤ．ＩＮＦＯ」及び「ＸＸＸ．ＰＬ」）はシナリオプロセッサ（３０５）によって読み出され処理される。また、ＡＶ管理情報（「ＹＹＹ．ＶＯＢＩ」）はプレゼンテーションコントローラ（３０６）によって読み出され処理される。
【００５３】
シナリオプロセッサ（３０５）は、プレイリストの情報を解析し、プレイリストによって参照されているＶＯＢとその再生位置をプレゼンテーションコントローラ（３０６）に指示し、プレゼンテーションコントローラ（３０６）は対象となるＶＯＢの管理情報（「ＹＹＹ．ＶＯＢＩ」）を解析して、対象となるＶＯＢを読み出すようにドライブコントローラ（３１７）に指示を出す。
【００５４】
ドライブコントローラ（３１７）はプレゼンテーションコントローラ（３０６）の指示に従い、光ピックアップを移動させ、対象となるＡＶデータの読み出しを行う。読み出されたＡＶデータは、前述したようにイメージメモリ（３０８）またはトラックバッファ（３０９）に記録される。
【００５５】
また、シナリオプロセッサ（３０５）は、クロック（３０７）の時刻を監視し、管理情報で設定されているタイミングでイベントをプログラムプロセッサ（３０２）に投げる。
【００５６】
プログラム記録メモリ（３０１）に記録されたＢＤプログラム（「ＢＤ．ＰＲＯＧ」または「ＸＸＸ．ＰＲＯＧ」）は、プログラムプロセッサ３０２によって実行処理される。プログラムプロセッサ（３０２）がＢＤプログラムを処理するのは、シナリオプロセッサ（３０５）からイベントが送られてきた場合か、ＵＯＰマネージャ（３０３）からイベントが送られたきた場合である。ＵＯＰマネージャ（３０３）は、ユーザからリモコンキーによってリクエストが送られてきた場合に、プログラムプロセッサ（３０２）にイベントを生成する。
【００５７】
（アプリケーション空間）
図８は、ＢＤ−ＲＯＭのアプリケーション空間をを示す図である。
【００５８】
ＢＤ−ＲＯＭのアプリケーション空間では、プレイリスト（ＰｌａｙＬｉｓｔ）が一つの再生単位になっている。プレイリストはセル（Ｃｅｌｌ）の再生シーケンスから構成される静的なシナリオと、プログラムによって記述される動的なシナリオを有している。プログラムによる動的なシナリオが無い限り、プレイリストは個々のセルを順に再生するだけであり、また、全てのセルの再生を終了した時点でプレイリストの再生は終了する。一方で、プログラムは、プレイリストを超えての再生記述や、ユーザ選択またはプレーヤの状態によって再生する対象を動的に変えることが可能である。典型的な例としてはメニューがあげられる。ＢＤ−ＲＯＭの場合、メニューとはユーザの選択によって再生するシナリオ、即ちプレイリストを動的に選択することである。
【００５９】
ここで言うプログラムは、時間イベントまたはユーザイベントによって実行されるイベントハンドラの事である。
【００６０】
時間イベントは、プレイリスト中に埋め込まれた時刻情報に基づいて生成されるイベントである。図７で説明したシナリオプロセッサ（３０５）からプログラムプロセッサ（３０２）に送られるイベントがこれに相当する。時間イベントが発行されると、プログラムプロセッサ（３０２）はＩＤによって対応付けられるイベントハンドラを実行処理する。前述した通り、実行されるプログラムが他のプレイリストの再生を指示することが可能であり、この場合には、現在再生されているプレイリストの再生は中止され、指定されたプレイリストの再生へと遷移する。
【００６１】
ユーザイベントは、ユーザのリモコンキー操作によって生成されるイベントである。ユーザイベントは大きく２つのタイプに分けられる。一つ目は、カーソルキー（「上」「下」「左」「右」キー）または「決定」キーの操作によって生成されるメニュー選択のイベントである。メニュー選択のイベントに対応するイベントハンドラはプレイリスト内の限られた期間でのみ有効であり（プレイリストの情報として、個々のイベントハンドラの有効期間が設定されている）、リモコンの「上」「下」「左」「右」キーまたは「決定」キーが押された時に有効なイベントハンドラを検索して、有効なイベントハンドラがある場合は当該イベントハンドラが実行処理される。他の場合は、メニュー選択のイベントは無視されることになる。
【００６２】
二つ目のユーザイベントは、「メニュー」キーの操作によって生成されるメニュー呼び出しのイベントである。メニュー呼び出しのイベントが生成されると、グローバルイベントハンドラが呼ばれる。グローバルイベントハンドラはプレイリストに依存せず、常に有効なイベントハンドラである。この機能を使うことにより、ＤＶＤのメニューコール（タイトル再生中に音声、字幕メニューなどを呼び出し、音声または字幕を変更後に中断した地点からのタイトル再生を実行する）を実装することができる。
【００６３】
プレイリストで静的シナリオを構成する単位であるセル（Ｃｅｌｌ）はＶＯＢ（ＭＰＥＧストリーム）の全部または一部の再生区間を参照したものである。セルはＶＯＢ内の再生区間を開始、終了時刻の情報として持っている。個々のＶＯＢと一対になっているＶＯＢ管理情報（ＶＯＢＩ）は、その内部にタイムマップ（Ｔｉｍｅ  ＭａｐまたはＴＭ）を有しており、このタイムマップによって前述したＶＯＢの再生、終了時刻をＶＯＢ内（即ち対象となるファイル「ＹＹＹ．ＶＯＢ」内）での読み出し開始アドレス及び終了アドレスを導き出すことが可能である。なおタイムマップの詳細は後述する。
【００６４】
（ＶＯＢの詳細）
図９は、本実施例で使用するＭＰＥＧストリーム（ＶＯＢ）の構成図である。図９に示すように、ＶＯＢは複数のＶＯＢＵ（Ｖｉｄｅｏ  Ｏｂｊｅｃｔ  Ｕｎｉｔ）によって構成されている。ＶＯＢＵは、ＭＰＥＧビデオストリームで言うＧＯＰ（Ｇｒｏｕｐ  Ｏｆ  Ｐｉｃｔｕｒｅｓ）を基準として、音声データも含んだ多重化ストリームとしての一再生単位である。ＶＯＢＵは０．４秒から１．０秒の時間を持ち、通常は０．５秒の再生時間を持っている。これはＭＰＥＧのＧＯＰの構造が通常は１５フレーム／秒（ＮＴＳＣの場合）によって導かれるものである。
【００６５】
ＶＯＢＵは、その内部にビデオパック（Ｖ＿ＰＣＫ）とオーディオパック（Ａ＿ＰＣＫ）を有している。各パックは１セクタ、本実施例の場合は２ｋＢ単位で構成されている。
【００６６】
図１０は、パックの構成を示した図である。
図１０に示すように、ビデオデータ及びオーディオデータといったエレメンタリデータは、ペイロードと呼ばれるパケットのデータ格納領域に先頭から順次入れられていく。ペイロードにはパケットヘッダが付けられ１つのパケットを構成する。パケットヘッダには、ペイロードに格納してあるデータがどのストリームなのか、ビデオなのかオーディオなのか、また、ビデオまたはオーディオが夫々複数ストリームある場合は、どのストリームのデータなのかを識別するためのＩＤ（ｓｔｒｅａｍ＿ｉｄ）と、当該ペイロードのデコード及び表示時刻情報であるタイムスタンプＤＴＳ及びＰＴＳが夫々記録されている。ＰＴＳ／ＤＴＳは必ずしも全てのパケットヘッダに記録されている訳ではなく、ＭＰＥＧによって記録するルールが規定されている。ルールの詳細についてはＭＰＥＧシステム（ＩＳＯ／ＩＥＣ１３８１８−１）規格書に記述されているので省略する。
【００６７】
パケットには更にヘッダ（パックヘッダ）が付けられ、パックを構成する。パックヘッダには、当該パックがいつデマルチプレクサを通過し、個々のエレメンタリストリームのデコーダバッファに入力されるかを示すタイムスタンプＳＣＲ（Ｓｙｓｔｅｍ  Ｃｌｏｃｋ  Ｒｅｆｅｒｅｎｃｅ）が記録されている。
【００６８】
（ＶＯＢのインターリーブ記録）
次に図１１及び図１２を用いてＶＯＢファイルのインターリーブ記録について説明する。
【００６９】
図１１上段は、前述したプレーヤ構成図の一部である。図の通り、ＢＤディスク上のデータは、光ピックアップを通してＶＯＢ即ちＭＰＥＧストリームであればトラックバッファへ入力され、ＰＮＧ即ちイメージデータであればイメージメモリへと入力される。
【００７０】
トラックバッファはＦＩＦＯであり、入力されたＶＯＢのデータは入力された順にデマルチプレクサへと送られる。この時、前述したＳＣＲに従って個々のパックはトラックバッファから引き抜かれデマルチプレクサを介してビデオプロセッサまたはサウンドプロセッサへとデータが送り届けられる。一方で、イメージデータの場合は、どのイメージを描画するかはプレゼンテーションコントローラによって指示される。また、描画に使ったイメージデータは、字幕用イメージデータの場合は同時にイメージメモリから削除されるが、メニュー用のイメージデータの場合は、イメージメモリ内にそのまま残される。これはメニューの描画はユーザ操作に依存するところがあるため、同一イメージを複数回描画する可能性があるためである。
【００７１】
図１１下段は、ＢＤディスク上でのＶＯＢファイル及びＰＮＧファイルのインターリーブ記録を示す図である。一般的にＲＯＭ、例えばＣＤ−ＲＯＭやＤＶＤ−ＲＯＭの場合、一連の連続再生単位となるＡＶデータは連続記録されている。これは、連続記録されている限り、ドライブは順次データを読み出しプレーヤ側に送り届けるだけで良いが、連続データが分断されてディスク上に離散配置されている場合は、個々の連続区間の間でシーク操作が入ることになり、この間データの読み出しが止まることになり、データの供給が止まる可能性があるからである。ＢＤ−ＲＯＭの場合も同様に、ＶＯＢファイルは連続領域に記録することができる方が望ましいが、例えば字幕データのようにＶＯＢに記録されている映像データと同期して再生されるデータがあり、ＶＯＢファイルと同様に字幕データも何らかの方法によってＢＤディスクから読み出す事が必要になる。
【００７２】
字幕データの読み出し方法の一手段として、ＶＯＢの再生開始前に一まとめで字幕用のイメージデータ（ＰＮＧファイル）を読み出してしまう方法がある。しかしながら、この場合には一時記録に使用する大量のメモリが必要となり、非現実的である。
【００７３】
そこで、本実施の形態では、ＶＯＢファイルを幾つかのブロックに分けて、イメージデータとインターリーブ記録する方式を使用している。図１１下段はそのインターリーブ記録を説明した図である。ＶＯＢファイルとイメージデータを適切にインターリーブ配置することで、前述したような大量の一時記録メモリ無しに、必要なタイミングでイメージデータをイメージメモリに格納することが可能になる。しかしながらイメージデータを読み出している際には、ＶＯＢデータの読み込みは当然のことながら停止することになる。
【００７４】
図１２は、この問題を解決するトラックバッファを使ったＶＯＢデータ連続供給モデルを説明する図である。
【００７５】
既に説明したように、ＶＯＢのデータは、一旦トラックバッファに蓄積される。トラックバッファへのデータ入力レートとトラックバッファからのデータ出力レートの間に差を設けると、ＢＤディスクからデータを読み出し続けている限り、トラックバッファのデータ蓄積量は増加をしていくことになる。ここでトラックバッファへの入力レートをＶａ、トラックバッファからの出力レートをＶｂとする。図１２の上段に記すようにＶＯＢの一連続記録領域が論理アドレスの”ａ１”から”ａ２”まで続くとする。”ａ２”から”ａ３”の間は、イメージデータが記録されていて、ＶＯＢデータの読み出しが行えない区間であるとする。
【００７６】
図１２の下段は、トラックバッファの内部を示す図である。横軸が時間、縦軸がトラックバッファ内部に蓄積されているデータ量を示している。時刻”ｔ１”がＶＯＢの一連続記録領域の開始点である”ａ１”の読み出しを開始した時刻を示している。この時刻以降、トラックバッファにはレートＶａ−Ｖｂでデータが蓄積されていくことになる。このレートは言うまでもなくトラックバッファの入出力レートの差である。時刻”ｔ２”は一連続記録領域の終了点である”ａ２”のデータを読み込む時刻である。即ち時刻”ｔ１”から”ｔ２”の間レートＶａ−Ｖｂでトラックバッファ内はデータ量が増加していき、時刻”ｔ２”でのデータ蓄積量はＢ（ｔ２）は下式によって求めることができる。
Ｂ（ｔ２）  ＝  （Ｖａ−Ｖｂ）×（ｔ２−ｔ１）        （式１）
【００７７】
この後、ＢＤディスク上のアドレス”ａ３”まではイメージデータが続くため、トラックバッファへの入力は０となり、出力レートである”−Ｖｂ”でトラックバッファ内のデータ量は減少していくことになる。これは読み出し位置”ａ３”まで、時刻でいう”ｔ３”までになる。
【００７８】
ここで大事なことは、時刻”ｔ３”より前にトラックバッファに蓄積されているデータ量が０になると、デコーダへ供給するＶＯＢのデータが無くなってしまい、ＶＯＢの再生がストップしてしまう可能性がある。しかしながら、時刻”ｔ３”でトラックバッファにデータが残っている場合には、ＶＯＢの再生がストップすることなく連続できることを意味している。
【００７９】
この条件は下式によって示すことができる。
Ｂ（ｔ２）  ≧  −Ｖｂ×（ｔ３−ｔ２）                （式２）
即ち、式２を満たすようにイメージデータの配置を決めればよい事になる。
【００８０】
（ナビゲーションデータ構造）
図１３から図１９を用いて、ＢＤ−ＲＯＭのナビゲーションデータ（ＢＤ管理情報）構造について説明をする。図１３は、ＶＯＢ管理情報情報ファイル（”ＹＹＹ．ＶＯＢＩ”）の内部構造を示した図である。
【００８１】
ＶＯＢ管理情報は、当該ＶＯＢのストリーム属性情報（Ａｔｔｒｉｂｕｔｅ）とタイムマップ（ＴＭＡＰ）を有している。ストリーム属性は、ビデオ属性（Ｖｉｄｅｏ）、オーディオ属性（Ａｕｄｉｏ＃０〜Ａｕｄｉｏ＃ｍ）個々に持つ構成となっている。特にオーディオストリームの場合は、ＶＯＢが複数本のオーディオストリームを同時に持つことができることから、オーディオストリーム数（Ｎｕｍｂｅｒ）によって、データフィールドの有無を示している。
【００８２】
下記はビデオ属性（Ｖｉｄｅｏ）の持つフィールドと夫々が持ち得る値である。
圧縮方式（Ｃｏｄｉｎｇ）：
ＭＰＥＧ１
ＭＰＥＧ２
ＭＰＥＧ４
解像度（Ｒｅｓｏｌｕｔｉｏｎ）：
１９２０ｘ１０８０
１２８０ｘ７２０
７２０ｘ４８０
７２０ｘ５６５
アスペクト比（Ａｓｐｅｃｔ）
４：３
１６：９
フレームレート（Ｆｒａｍｅｒａｔｅ）
６０
５９．９４
５０
３０
２９．９７
２５
２４
【００８３】
下記はオーディオ属性（Ａｕｄｉｏ）の持つフィールドと夫々が持ち得る値である。
圧縮方式（Ｃｏｄｉｎｇ）：
ＡＣ３
ＭＰＥＧ１
ＭＰＥＧ２
ＬＰＣＭ
チャンネル数（Ｃｈ）：
１〜８
言語属性（Ｌａｎｇｕａｇｅ）：
【００８４】
タイムマップ（ＴＭＡＰ）はＶＯＢＵ毎の情報を持つテーブルであって、当該ＶＯＢが有するＶＯＢＵ数（Ｎｕｍｂｅｒ）と各ＶＯＢＵ情報（ＶＯＢＵ＃１〜ＶＯＢＵ＃ｎ）を持つ。個々のＶＯＢＵ情報は、ＶＯＢＵの再生時間長（Ｄｕｒａｔｉｏｎ）とＶＯＢＵのデータサイズ（Ｓｉｚｅ）を夫々有している。
【００８５】
図１４はＶＯＢＵ情報の詳細を説明する図である。
広く知られているように、ＭＰＥＧストリームは時間的側面とデータサイズとしての側面との２つを有している。例えば、音声の圧縮規格であるＡＣ３は固定ビットレートでの圧縮を行っているため、時間とアドレスとの関係は１次式によって求めることができる。しかしながらＭＰＥＧビデオデータの場合は、個々のフレームは固定の表示時間、例えばＮＴＳＣの場合は１フレームは１／２９．９７秒の表示時間を持つが、個々のフレームの圧縮後のデータサイズは絵の特性や圧縮に使ったピクチャタイプ、いわゆるＩ／Ｐ／Ｂピクチャによってデータサイズは大きく変わってくる。従って、ＭＰＥＧビデオの場合は、時間とアドレスの関係は一般式の形で表現することは不可能である。
【００８６】
当然の事として、ＭＰＥＧビデオデータを多重化しているＭＰＥＧシステムストリーム、即ちＶＯＢも時間とデータとを一般式の形で表現することは不可能である。これに代わって、ＶＯＢ内での時間とアドレスとの関係を結びつけるのがタイムマップ（ＴＭＡＰ）である。図１４に示すように、各ＶＯＢＵ毎にＶＯＢＵ内のフレーム数と、ＶＯＢＵ内のパック数を夫々エントリーとして持つテーブルがタイムマップ（ＴＭＡＰ）である。
【００８７】
図１５を使って、タイムマップ（ＴＭＡＰ）の使い方を説明する。
図１５に示すように時刻情報が与えられた場合、先ずは当該時刻がどのＶＯＢＵに属するのかを検索する。これは、タイム亜マップのＶＯＢＵ毎のフレーム数を加算して行き、フレーム数の和が当該時刻を（フレーム数に換算して）超えるまたは一致するＶＯＢＵが当該ＶＯＢＵになる。次にタイムマップのＶＯＢＵ毎のサイズを当該ＶＯＢＵの直前のＶＯＢＵまで加算して行き、その値が与えられた時刻を含むフレームを再生するために読み出すべきパックの先頭アドレスになっている。
【００８８】
次に図１６を使って、プレイリスト情報（”ＸＸＸ．ＰＬ”）の内部構造を説明する。
プレイリスト情報は、セルリスト（ＣｅｌｌＬｉｓｔ）とイベントリスト（ＥｖｅｎｔＬｉｓｔ）から構成されている。
【００８９】
セルリスト（ＣｅｌｌＬｉｓｔ）は、プレイリスト内の再生セルシーケンスであり、本リストの記述順でセルが再生される事になる。セルリスト（ＣｅｌｌＬｉｓｔ）の中身は、セルの数（Ｎｕｍｂｅｒ）と各セル情報（Ｃｅｌｌ＃１〜Ｃｅｌｌ＃ｎ）である。
【００９０】
セル情報（Ｃｅｌｌ＃）は、ＶＯＢファイル名（ＶＯＢＮａｍｅ）、当該ＶＯＢ内での有効区間開始時刻（Ｉｎ）及び有効区間終了時刻（Ｏｕｔ）と、字幕テーブル（ＳｕｂｔｉｔｌｅＴａｂｌｅ）を持っている。有効区間開始時刻（Ｉｎ）及び有効区間終了時刻（Ｏｕｔ）は、夫々当該ＶＯＢ内でのフレーム番号で表現され、前述したタイムマップ（ＴＭＡＰ）を使うことによって再生に必要なＶＯＢデータのアドレスを得る事ができる。
【００９１】
字幕テーブル（ＳｕｂｔｉｔｌｅＴａｂｌｅ）は、当該ＶＯＢと同期再生される字幕情報を持つテーブルである。字幕は音声同様に複数の言語を持つことができ、字幕テーブル（ＳｕｂｔｉｔｌｅＴａｂｌｅ）最初の情報も言語数（Ｎｕｍｂｅｒ）とそれに続く個々の言語ごとのテーブル（Ｌａｎｇｕａｇｅ＃１〜Ｌａｎｇｕａｇｅ＃ｋ）から構成されている。
【００９２】
各言語のテーブル（Ｌａｎｇｕａｇｅ＃）は、言語情報（Ｌａｎｇｕａｇｅ）と、個々に表示される字幕の字幕情報数（Ｎｕｍｂｅｒ）と、個々に表示される字幕の字幕情報（Ｓｐｅｅｃｈ＃１〜Ｓｐｅｅｃｈ＃ｊ）から構成され、字幕情報（Ｓｐｅｅｃｈ＃）は対応するイメージデータファイル名（Ｎａｍｅ）、字幕表示開始時刻（Ｉｎ）及び字幕表示終了時刻（Ｏｕｔ）と、字幕の表示位置（Ｐｏｓｉｔｉｏｎ）から構成されている。
【００９３】
イベントリスト（ＥｖｅｎｔＬｉｓｔ）は、当該プレイリスト内であげられるイベントを定義したテーブルである。イベントリストは、イベント数（Ｎｕｍｂｅｒ）に続いて個々のイベント（Ｅｖｅｎｔ＃１〜Ｅｖｅｎｔ＃ｍ）から構成され、個々のイベント（Ｅｖｅｎｔ＃）は、イベントの種類（Ｔｙｐｅ）、イベントのＩＤ（ＩＤ）、イベント生成時刻（Ｔｉｍｅ）と有効期間（Ｄｕｒａｔｉｏｎ）から構成されている。
【００９４】
図１７は、個々のプレイリスト毎のイベントハンドラ（時間イベントと、メニュー選択用のユーザイベント）を持つイベントハンドラテーブル（”ＸＸＸ．ＰＲＯＧ”）である。
【００９５】
イベントハンドラテーブルは、定義されているイベントハンドラ／プログラム数（Ｎｕｍｂｅｒ）と個々のイベントハンドラ／プログラム（Ｐｒｏｇｒａｍ＃１〜Ｐｒｏｇｒａｍ＃ｎ）を有している。各イベントハンドラ／プログラム（Ｐｒｏｇｒａｍ＃）内の記述は、イベントハンドラ開始の定義（＜ｅｖｅｎｔ＿ｈａｎｄｌｅｒ＞タグ）と前述したイベントのＩＤと対になるイベントハンドラのＩＤ（ＩＤ）を持ち、その後に当該プログラムもＦｕｎｃｔｉｏｎに続く括弧”｛”と”｝”の間に記述する。
【００９６】
次に図１８を用いてＢＤディスク全体に関する情報（”ＢＤ．ＩＮＦＯ”）の内部構造について説明をする。
【００９７】
ＢＤディスク全体情報は、タイトルリスト（ＴｉｔｌｅＬｉｓｔ）とグローバルイベント用のイベントテーブル（ＥｖｅｎｔＴａｂｌｅ）から構成されている。
【００９８】
タイトルリスト（ＴｉｔｌｅＬｉｓｔ）は、ディスク内のタイトル数（Ｎｕｍｂｅｒ）と、これに続く各タイトル情報（Ｔｉｔｌｅ＃１〜Ｔｉｔｌｅ＃ｎ）から構成されている。個々のタイトル情報（Ｔｉｔｌｅ）は、タイトルに含まれるプレイリストのテーブル（ＰＬＴａｌｂｌｅ）とタイトル内のチャプタリスト（ＣｈａｐｔｅｒＬｉｓｔ）を含んでいる。プレイリストのテーブル（ＰＬＴａｂｌｅ）はタイトル内のプレイリストの数（Ｎｕｍｂｅｒ）と、プレイリスト名（Ｎａｍｅ）即ちプレイリストのファイル名を有している。
【００９９】
チャプタリスト（ＣｈａｐｔｅｒＬｉｓｔ）は、当該タイトルに含まれるチャプタ数（Ｎｕｍｂｅｒ）と個々のチャプタ情報（Ｃｈａｐｔｅｒ＃１〜Ｃｈａｐｔｅｒ＃ｎ）から構成され、チャプタ情報（Ｃｈａｐｔｅｒ＃）は当該チャプタが含むセルのテーブル（ＣｅｌｌＴａｂｌｅ）を持ち、セルのテーブル（ＣｅｌｌＴａｂｌｅ）はセル数（Ｎｕｍｂｅｒ）と個々のセルのエントリ情報（ＣｅｌｌＥｎｔｒｙ＃１〜ＣｅｌｌＥｎｔｒｙ＃ｋ）から構成されている。セルのエントリ情報（ＣｅｌｌＥｎｔｒｙ＃）は当該セルを含むプレイリスト名と、プレイリスト内でのセル番号によって記述されている。
【０１００】
イベントリスト（ＥｖｅｎｔＬｉｓｔ）は、グローバルイベントの数（Ｎｕｍｂｅｒ）と個々のグローバルイベントの情報を持っている。ここで注意すべきは、最初に定義されるグローバルイベントは、ファーストイベント（ＦｉｒｓｔＥｖｅｎｔ）と呼ばれ、ＢＤディスクがプレーヤに挿入された時、最初に呼ばれるイベントである。グローバルイベント用イベント情報はイベントタイプ（Ｔｙｐｅ）とイベントのＩＤ（ＩＤ）だけを持っている。
【０１０１】
図１９は、グローバルイベントハンドラのプログラムのテーブル（”ＢＤ．ＰＲＯＧ”）である。本テーブルは、図１７で説明したイベントハンドラテーブルと同一内容である。
【０１０２】
（イベント発生のメカニズム）
図２０から図２２を使ってイベント発生のメカニズムについて説明する。
【０１０３】
図２０はタイムイベントの例である。
前述したとおり、タイムイベントはプレイリスト情報（”ＸＸＸ．ＰＬ”）のイベントリスト（ＥｖｅｎｔＬｉｓｔ）で定義される。タイムイベントとして定義されているイベント、即ちイベントタイプ（Ｔｙｐｅ）が”ＴｉｍｅＥｖｅｎｔ”の場合、イベント生成時刻（”ｔ１”）になった時点で、ＩＤ”Ｅｘ１”を持つタイムイベントがシナリオプロセッサからプログラムプロセッサに対してあげられる。プログラムプロセッサは、イベントＩＤ”Ｅｘ１”を持つイベントハンドラを探し、対象のイベントハンドラを実行処理する。例えば、本実施例の場合では、２つのボタンイメージの描画を行うなどを行うことができる。
【０１０４】
図２１はメニュー操作を行うユーザーイベントの例である。
前述したとおり、メニュー操作を行うユーザイベントもプレイリスト情報（”ＸＸＸ．ＰＬ”）のイベントリスト（ＥｖｅｎｔＬｉｓｔ）で定義される。ユーザイベントとして定義されるイベント、即ちイベントタイプ（Ｔｙｐｅ）が”ＵｓｅｒＥｖｅｎｔ”の場合、イベント生成時刻（”ｔ１”）になった時点で、当該ユーザイベントがレディとなる。この時、イベント自身は未だ生成されてはいない。当該イベントは、有効規格情報（Ｄｕｒａｔｉｏｎ）で記される期間レディ状態にある。
【０１０５】
図２１に描くように、ユーザがリモコンキーの「上」「下」「左」「右」キーまたは「決定」キーを押した場合、先ずＵＯＰイベントがＵＯＰマネージャによって生成されプログラムプロセッサに上げられる。プログラムプロセッサは、シナリオプロセッサに対してＵＯＰイベントを流し、シナリオプロセッサはＵＯＰイベントを受け取った時刻に有効なユーザイベントが存在するかを検索し、対象となるユーザイベントがあった場合は、ユーザイベントを生成し、プログラムプロセッサに持ち上げる。プログラムプロセッサでは、イベントＩＤ”Ｅｖ１”を持つイベントハンドラを探し、対象のイベントハンドラを実行処理する。例えば、本実施例の場合では、プレイリスト＃２の再生を開始する。
【０１０６】
生成されるユーザイベントには、どのリモコンキーがユーザによって押されたかの情報は含まれていない。選択されたリモコンキーの情報は、ＵＯＰイベントによってプログラムプロセッサに伝えられ、仮想プレーヤが持つレジスタＳＰＲＭ（８）に記録保持される。イベントハンドラのプログラムは、このレジスタの値を調べ分岐処理を実行することが可能である。
【０１０７】
図２２はグローバルイベントの例である。
前述したとおり、グローバルイベントはＢＤディスク全体に関する情報（”ＢＤ．ＩＮＦＯ”）のイベントリスト（ＥｖｅｎｔＬｉｓｔ）で定義される。グローバルイベントとして定義されるイベント、即ちイベントタイプ（Ｔｙｐｅ）が”ＧｌｏｂａｌＥｖｅｎｔ”の場合、ユーザのリモコンキー操作があった場合にのみイベントが生成される。
【０１０８】
ユーザが”メニュー”を押した場合、先ずＵＯＰイベントがＵＯＰマネージャによって生成されプログラムプロセッサに上げられる。プログラムプロセッサは、シナリオプロセッサに対してＵＯＰイベントを流し、シナリオプロセッサは、該当するグローバルイベントを生成し、プログラムプロセッサに送る。プログラムプロセッサでは、イベントＩＤ”ｍｅｎｕ”を持つイベントハンドラを探し、対象のイベントハンドラを実行処理する。例えば、本実施例の場合ではプレイリスト＃３の再生を開始している。
【０１０９】
本実施例では、単に”メニュー”キーと呼んでいるが、ＤＶＤのように複数のメニューキーがあってもよい。各メニューキーに対応するＩＤを夫々定義することで対応することが可能である。
【０１１０】
（仮想プレーヤマシン）
図２３を用いてプログラムプロセッサの機能構成を説明する。
【０１１１】
プログラムプロセッサは、内部に仮想プレーヤマシンを持つ処理モジュールである。仮想プレーヤマシンはＢＤ−ＲＯＭとして定義された機能モデルであって、各ＢＤ−ＲＯＭプレーヤの実装には依存しないものである。即ち、どのＢＤ−ＲＯＭプレーヤにおいても同様の機能を実行するできることを保証している。
【０１１２】
仮想プレーヤマシンは大きく２つの機能を持っている。プログラミング関数とプレーヤ変数（レジスタ）である。プログラミング関数は、Ｊａｖａ（登録商標）  Ｓｃｒｉｐｔをベースとして、以下に記す２つの機能をＢＤ−ＲＯＭ固有関数として定義している。
【０１１３】
リンク関数：現在の再生を停止し、指定するプレイリスト、セル、時刻からの再生を開始する
Ｌｉｎｋ（ＰＬ＃，Ｃｅｌｌ＃，ｔｉｍｅ）
ＰＬ＃  ：  プレイリスト名
Ｃｅｌｌ＃  ：  セル番号
ｔｉｍｅ  ：  セル内での再生開始時刻
ＰＮＧ描画関数：指定ＰＮＧデータをイメージプレーンに描画する
Ｄｒａｗ（Ｆｉｌｅ，Ｘ，Ｙ）
Ｆｉｌｅ  ：  ＰＮＧファイル名
Ｘ  ：  Ｘ座標位置
Ｙ  ：  Ｙ座標位置
イメージプレーンクリア関数：イメージプレーンの指定領域をクリアする
Ｃｌｅａｒ（Ｘ，Ｙ，Ｗ，Ｈ）
Ｘ  ：  Ｘ座標位置
Ｙ  ：  Ｙ座標位置
Ｗ  ：  Ｘ方向幅
Ｈ  ：  Ｙ方向幅
【０１１４】
プレーヤ変数は、プレーヤの状態を示すシステムパラメータ（ＳＰＲＭ）と一般用途として使用可能なゼネラルパラメータ（ＧＰＲＭ）とがある。
【０１１５】
図２４はシステムパラメータ（ＳＰＲＭ）の一覧である。
ＳＰＲＭ（０）      ：  言語コード
ＳＰＲＭ（１）      ：  音声ストリーム番号
ＳＰＲＭ（２）      ：  字幕ストリーム番号
ＳＰＲＭ（３）      ：  アングル番号
ＳＰＲＭ（４）      ：  タイトル番号
ＳＰＲＭ（５）      ：  チャプタ番号
ＳＰＲＭ（６）      ：  プログラム番号
ＳＰＲＭ（７）      ：  セル番号
ＳＰＲＭ（８）      ：  選択キー情報
ＳＰＲＭ（９）      ：  ナビゲーションタイマー
ＳＰＲＭ（１０）    ：  再生時刻情報
ＳＰＲＭ（１１）    ：  カラオケ用ミキシングモード
ＳＰＲＭ（１２）    ：  パレンタル用国情報
ＳＰＲＭ（１３）    ：  パレンタルレベル
ＳＰＲＭ（１４）    ：  プレーヤ設定値（ビデオ）
ＳＰＲＭ（１５）    ：  プレーヤ設定値（オーディオ）
ＳＰＲＭ（１６）    ：  音声ストリーム用言語コード
ＳＰＲＭ（１７）    ：  音声ストリーム用言語コード（拡張）
ＳＰＲＭ（１８）    ：  字幕ストリーム用言語コード
ＳＰＲＭ（１９）    ：  字幕ストリーム用言語コード（拡張）
ＳＰＲＭ（２０）    ：  プレーヤリージョンコード
ＳＰＲＭ（２１）    ：  予備
ＳＰＲＭ（２２）    ：  予備
ＳＰＲＭ（２３）    ：  再生状態
ＳＰＲＭ（２４）    ：  予備
ＳＰＲＭ（２５）    ：  予備
ＳＰＲＭ（２６）    ：  予備
ＳＰＲＭ（２７）    ：  予備
ＳＰＲＭ（２８）    ：  予備
ＳＰＲＭ（２９）    ：  予備
ＳＰＲＭ（３０）    ：  予備
ＳＰＲＭ（３１）    ：  予備
【０１１６】
なお、本実施例では、仮想プレーヤのプログラミング関数をＪａｖａ（登録商標）  Ｓｃｒｉｐｔベースとしたが、Ｊａｖａ（登録商標）  Ｓｃｒｉｐｔではなく、ＵＮＩＸ（登録商標）  ＯＳなどで使われているＢ−Ｓｈｅｌｌや、Ｐｅｒｌ  Ｓｃｒｉｐｔなど他のプログラミング関数であっても構わなく、言い換えれば、本発明はＪａｖａ（登録商標）  Ｓｃｒｉｐｔに限定されるものでは無い。
【０１１７】
（プログラムの例）
図２５及び図２６は、イベントハンドラでのプログラムの例である。
【０１１８】
図２５は、２つの選択ボタンを持ったメニューの例である。
セル（ＰｌａｙＬｉｓｔ＃１．Ｃｅｌｌ＃１）先頭でタイムイベントを使って図２５左側のプログラムが実行される。ここでは、最初にゼネラルパラメータの一つＧＰＲＭ（０）に”１”がセットされている。ＧＰＲＭ（０）は、当該プログラムの中で、選択されているボタンを識別するのに使っている。最初の状態では、左側に配置するボタン１が選択されている事を初期値として持たされている。
【０１１９】
次に、ＰＮＧの描画を描画関数であるＤｒａｗを使ってボタン１、ボタン２夫々について行っている。ボタン１は、座標（１０、２００）を起点（左端）としてＰＮＧイメージ”１ｂｌａｃｋ．ｐｎｇ”を描画している。ボタン２は、座標（３３０，２００）を起点（左端）としてＰＮＧイメージ”２ｗｈｉｔｅ．ｐｎｇ”を描画している。
【０１２０】
また、本セル最後ではタイムイベントを使って図２５右側のプログラムが実行される。ここでは、Ｌｉｎｋ関数を使って当該セルの先頭から再度再生するように指定している。
【０１２１】
図２６は、メニュー選択のユーザイベントのイベントハンドラの例である。
「左」キー、「右」キー、「決定」キー何れかのリモコンキーが押された場合夫々に対応するプログラムがイベントハンドラに書かれている。ユーザがリモコンキーを押した場合、図２１で説明したとおり、ユーザイベントが生成され、図２６のイベントハンドラが起動されることになる。本イベントハンドラでは、選択ボタンを識別しているＧＰＲＭ（０）の値と、選択されたリモコンキーを識別するＳＰＲＭ（８）を使って分岐処理を行っている。
【０１２２】
条件１）ボタン１が選択されている、かつ、選択キーが「右」キーの場合
ＧＰＲＭ（０）を２に再設定して、選択状態にあるボタンを右ボタン２に変更する。
ボタン１、ボタン２のイメージを夫々書き換える。
条件２）選択キーが「決定（ＯＫ）」の場合で、ボタン１が選択されている場合、プレ
イリスト＃２の再生を開始する
条件３）選択キーが「決定（ＯＫ）」の場合で、ボタン２が選択されている場合、プレイリスト＃３の再生を開始する
上記のようにして実行処理が行われる。
【０１２３】
（プレーヤ処理フロー）
次に図２７から図３０を用いてプレーヤでの処理フローを説明する。
【０１２４】
図２７は、ＡＶ再生までの基本処理フローである。
ＢＤディスクを挿入すると（Ｓ１０１）、ＢＤ−ＲＯＭプレーヤはＢＤ．ＩＮＦＯファイルの読み込みと解析（Ｓ１０２）、ＢＤ．ＰＲＯＧの読み込み（Ｓ１０３）を実行する。ＢＤ．ＩＮＦＯ及びＢＤ．ＰＲＯＧは共に管理情報記録メモリに一旦格納され、シナリオプロセッサによって解析される。
【０１２５】
続いて、シナリオプロセッサは、ＢＤ．ＩＮＦＯファイル内のファーストイベント（ＦｉｒｓｔＥｖｅｎｔ）情報に従い、最初のイベントを生成する（Ｓ１０４）。生成されたファーストイベントは、プログラムプロセッサで受け取られ、当該イベントに対応するイベントハンドラを実行処理する（Ｓ１０５）。
【０１２６】
ファーストイベントに対応するイベントハンドラには、最初に再生するべきプレイリスト情報が記録されていることが期待される。仮に、プレイリスト再生が指示されていない場合には、プレーヤは何も再生することなく、ユーザイベントを受け付けるのを待ち続けるだけになる。この場合、ユーザイベントを受け付けるのを待ち続けることになる（Ｓ２０１）。ＢＤ−ＲＯＭプレーヤはがユーザからのリモコン操作を受け付けると、ＵＯＰマネージャはプログラムマネージャに対してＵＯＰイベントを立ち上げる（Ｓ２０２）。
【０１２７】
プログラムマネージャは、ＵＯＰイベントがメニューキーによるものであるかを判別し（Ｓ２０３）、メニューキーの場合は、シナリオプロセッサにＵＯＰイベントを流し、シナリオプロセッサがユーザイベントを生成する（Ｓ２０４）。プログラムプロセッサは生成されたユーザイベントに対応するイベントハンドラを実行処理する（Ｓ２０５）。
【０１２８】
図２８は、ＰＬ再生開始からＶＯＢ再生開始までの処理フローである。
前述したように、ファーストイベントハンドラまたはグローバルイベントハンドラによってプレイリスト再生が開始される（Ｓ３０１）。シナリオプロセッサは、再生対象のプレイリスト再生に必要な情報として、プレイリスト情報”ＸＸＸ．ＰＬ”の読み込みと解析（Ｓ３０２）、プレイリストに対応するプログラム情報”ＸＸＸ．ＰＲＯＧ”の読み込みを行う（Ｓ３０３）。続いてシナリオプロセッサは、プレイリストに登録されているセル情報に基づいてセルの再生を開始する（Ｓ３０４）。セル再生は、シナリオプロセッサからプレゼンテーションコントローラに対して要求が出さる事を意味し、プレゼンテーションコントローラはＡＶ再生を開始する（Ｓ３０５）。
【０１２９】
ＡＶ再生の開始（Ｓ４０１）を開始すると、プレゼンテーションコントローラは再生するセルに対応するＶＯＢの情報ファイル（ＸＸＸ．ＶＯＢＩ）を読み込み及び解析をする（Ｓ４０２）。プレゼンテーションコントローラは、タイムマップを使って再生開始するＶＯＢＵとそのアドレスを特定し、ドライブコントローラに読み出しアドレスを指示し、ドライブコントローラは対象となるＶＯＢデータを読み出し（Ｓ４０３）、ＶＯＢデータがデコーダに送られ再生が開始される（Ｓ４０４）。ＶＯＢ再生は、当該ＶＯＢの再生区間が終了するまで続けられ（Ｓ４０５）、終了すると次のセル再生Ｓ３０４へ移行する。次にセルが無い場合は、再生が停止する（Ｓ４０６）。
【０１３０】
図２９は、ＡＶ再生開始後からのイベント処理フローである。
ＢＤ−ＲＯＭプレーヤはイベントドリブン型のプレーヤモデルである。プレイリストの再生を開始すると、タイムイベント系、ユーザイベント系、字幕表示系のイベント処理プロセスが夫々起動され、平行してイベント処理を実行するようになる。
【０１３１】
Ｓ５００系の処理は、タイムイベント系の処理フローである。
プレイリスト再生開始後（Ｓ５０１）、プレイリスト再生が終了しているかを確認するステップ（Ｓ５０２）を経て、シナリオプロセッサは、タイムイベント発生時刻になったかを確認する（Ｓ５０３）。タイムイベント発生時刻になっている場合には、シナリオプロセッサはタイムイベントを生成し（Ｓ５０４）、プログラムプロセッサがタイムイベントを受け取りイベントハンドラを実行処理する（Ｓ５０５）。
【０１３２】
ステップＳ５０３でタイムイベント発生時刻になっていない場合、または、ステップＳ５０４でイベントハンドラ実行処理後は再度ステップＳ５０２へ戻り、上述した処理を繰り返す。また、ステップＳ５０２でプレイリスト再生が終了したことが確認されると、タイムイベント系の処理は強制的に終了する。
【０１３３】
Ｓ６００系の処理は、ユーザイベント系の処理フローである。
プレイリスト再生開始後（Ｓ６０１）、プレイリスト再生終了確認ステップ（Ｓ６０２）を経て、ＵＯＰ受付確認ステップの処理に移る（Ｓ６０３）。ＵＯＰの受付があった場合、ＵＯＰマネージャはＵＯＰイベントを生成し（Ｓ６０４）、ＵＯＰイベントを受け取ったプログラムプロセッサはＵＯＰイベントがメニューコールであるかを確認し（Ｓ６０５）、メニューコールであった場合は、プログラムプロセッサはシナリオプロセッサにイベントを生成させ（Ｓ６０７）、プログラムプロセッサはイベントハンドラを実行処理する（Ｓ６０８）。
【０１３４】
ステップＳ６０５でＵＯＰイベントがメニューコールで無いと判断された場合、ＵＯＰイベントはカーソルキーまたは「決定」キーによるイベントである事を示している。この場合、現在時刻がユーザイベント有効期間内であるかをシナリオプロセッサが判断し（Ｓ６０６）、有効期間内である場合には、シナリオプロセッサがユーザイベントを生成し（Ｓ６０７）、プログラムプロセッサが対象のイベントハンドラを実行処理する（Ｓ６０８）。
【０１３５】
ステップＳ６０３でＵＯＰ受付が無い場合、ステップＳ６０６で現在時刻がユーザイベント有効期間に無い場合、または、ステップＳ６０８でイベントハンドラ実行処理後は再度ステップＳ６０２へ戻り、上述した処理を繰り返す。また、ステップＳ６０２でプレイリスト再生が終了したことが確認されると、ユーザイベント系の処理は強制的に終了する。
【０１３６】
図３０は字幕処理のフローである。
プレイリスト再生開始後（Ｓ７０１）、プレイリスト再生終了確認ステップ（Ｓ７０２）を経て、字幕描画開始時刻確認ステップに移る（Ｓ７０３）。字幕描画開始時刻の場合、シナリオプロセッサはプレゼンテーションコントローラに字幕描画を指示し、プレゼンテーションコントローラはイメージプロセッサに字幕描画を指示する（Ｓ７０４）。ステップＳ７０３で字幕描画開始時刻で無いと判断された場合、字幕表示終了時刻であるかを確認する（Ｓ７０５）。字幕表示終了時刻であると判断された場合は、プレゼンテーションコントローラがイメージプロセッサに字幕消去指示を行い、描画されている字幕をイメージプレーンから消去する（Ｓ７０６）。
【０１３７】
字幕描画ステップＳ７０４終了後、字幕消去ステップＳ７０６終了後、または、字幕表示終了時刻確認ステップＳ７０５で当該時刻でないことが判断された場合、ステップＳ７０２に戻り、上述した処理を繰り返す。また、ステップＳ７０２でプレイリスト再生が終了したことが確認されると、字幕表示系の処理は強制的に終了する。
【０１３８】
（実施例２）
次に本発明の第２の実施の形態について説明する。
【０１３９】
第２の実施の形態は、ＢＤ-ＲＯＭにおいてより豊かなインタラクティブ性を実現するため、ＸＭＬ・ＸＨＴＭＬ・ＨＴＭＬベースの画面構成環境と、イベントおよびスクリプトを用いたプログラミング環境を導入することに関する内容である。基本的には第１の実施例に基づく内容であり、拡張または異なる部分を中心に説明する。
【０１４０】
（ＨＴＭＬファイルを利用したコンテンツ制御）
図３１は、ＨＴＭＬおよびスクリプトを利用したシナリオ制御に関わるモジュール構成、制御の流れ、イベントなどの伝わり方を示している。
【０１４１】
ユーザーイベント処理部は、リモコン信号などを受信し、次のモジュールにイベントを割り振るモジュールである。再生制御に関わる、再生／停止／早送り／巻き戻し／スキップ／アングル変更／音声切替／字幕切替などのイベントはＡＶ再生制御部に送られる。ボタンフォーカスの移動（上下左右キー）や決定などのイベントは、ＨＴＭＬ処理部に送られる。タイトル切替に関わる、タイトル選択やメニュー呼び出しのイベントは、タイトル制御部に送られる。なお、Ｉｎｄｅｘ  Ｔａｂｌｅとは、ディスク中のタイトルを列挙したファイルであり、図１８のＴｉｔｌｅ  Ｌｉｓｔ部分を切り出して１つにしたものである。
【０１４２】
タイトル制御部は、タイトル切替を要求されるとＩｎｄｅｘ  Ｔａｂｌｅにしたがってタイトル切替を行うモジュールである。タイトルがＨＴＭＬで定義される場合、ＨＴＭＬ処理部にタイトルに関連付けられたＨＴＭＬファイルを読み込むように制御を行う。
【０１４３】
ＨＴＭＬ処理部はＨＴＭＬファイルを読み込み、スタイル定義情報などにしたがって、画面を構成し、イベントに応じて関連するスクリプトを実行するモジュールである。スクリプトを実行した結果、ＡＶの再生が必要であればＡＶ再生制御部に対して、再生開始などの制御を行い、タイトル切替が必要であれば、タイトル制御部に対して制御を行う。
【０１４４】
ＡＶ再生制御部は、イベントや指示に従ってＡＶストリームの再生を行い、ＡＶ再生制御部の状態が変化したときやＡＶストリームの再生位置が特定の位置に達した際にイベントを生成してＨＴＭＬ処理部に通知する。
【０１４５】
プレーヤの状態が変化したことを通知するイベントとは、ユーザーから再生指示があり、ユーザーイベント処理部が再生開始要求のイベントをＡＶ再生制御部に通知すると、ＡＶ再生制御部は再生を開始する。この時に、ＡＶ再生制御部が停止状態から再生状態に変化したことを通知するようなイベントである。
【０１４６】
また、再生位置を通知するイベントとは、ＡＶストリームの終端に達したときや、セルの境界に達したとき、あるいはマークと呼ばれるＡＶストリームの一時点を示すデータが存在する場合その地点に達したことを通知するイベントである。
【０１４７】
図３２はあるタイトルが選択されたときの動作の様子を示している。
Ｉｎｄｅｘ  Ｔａｂｌｅで定義されるあるタイトルを選択した場合、タイトルに関連付けられたＨＴＭＬファイルが呼び出される。ＨＴＭＬファイルには、再生制御などを行うスクリプトなども記述されている。 図中の例では、スクリプトファイルを間接的に参照しているが、直接ＨＴＭＬファイル内に記述することも可能である。また、説明のため、ＨＴＭＬと表記しているが、ＸＨＴＭＬ形式であってもよいし、ＸＭＬ形式にのっとっていれば独自のタグなどを利用した形式でもよい。
【０１４８】
図中のＨＴＭＬファイル内に記述されている“ｏｎＬｏａｄ”属性において、ファイルが読み込まれたときに実行されるスクリプトを規定している。この例では、ＨＴＭＬファイルが読み込まれたときに、“ｐｌａｙＴｉｔｌｅ１”というスクリプトが呼び出され、スクリプト自体はスクリプトファイル内に記述されている。
【０１４９】
また、＜ｅｖｅｎｔ＞タグを用いることにより、ユーザーイベント処理部やＡＶ再生制御部から通知されたイベントに対応してスクリプトを実行する仕組みも提供する。この例では、“ＥｎｄＯｆＳｔｒｅａｍ”イベントが発生した際、“ｊｕｍｐＴｉｔｌｅ２”というスクリプトを呼び出す例である。なお、“ＥｎｄＯｆＳｔｒｅａｍ”イベントとは、たとえばＡＶ再生がファイルの終端に達した場合にＡＶ再生制御部が生成するイベントである。
【０１５０】
また、予め関数名が予約されているイベント処理用関数（例えば、ＢＤＩＭｏｖｉｅＰｌａｙｂａｃｋＥｖｅｎｔＨａｎｄｌｅｒ（）関数など）を、ＨＴＭＬ文書のスクリプトタグ内や、スクリプトファイル内に記述しておくことで、ユーザーイベント処理部やＡＶ再生制御部から通知されたイベントに対応して、スクリプトを実行することも可能である。
【０１５１】
図３３は先ほどの例に、画面生成を加えた例である。たとえば、先ほどと同様にＩｎｄｅｘ  ＴａｂｌｅからＨＴＭＬが呼び出され、そのＨＴＭＬはメニュー画面などを生成するための情報が書かれていた場合である。画面構成のスタイルなどはＣＳＳなどのスタイルシートを利用してもよい。
【０１５２】
この例では、画面上に２つのボタンを配置している。それぞれのボタンが押されると対応スクリプトが実行される。あるボタンを選択すると、“ｏｎＣｌｉｃｋ”属性に定義されているスクリプトが実行される。ＴｉｔｌｅＡと書かれたＰＮＧイメージファイルと関連付けられている左側のボタンを選択すると、“ｐｌａｙＡ”スクリプトが実行され、タイトル１にジャンプする。同様に、ＴｉｔｌｅＢボタンを選択すると、あるＡＶストリームが再生された後に、タイトル２にジャンプする。
【０１５３】
これまで説明した仕組みを用いることのより、ＨＴＭＬファイルを用いて、メニュー画面を表示し、何らかのボタンを選択を選択するとコンテンツの再生を開始するような仕組みを提供することが可能となる。
【０１５４】
また、スクリプト部分と、スクリプトが実行するＡＰＩを追加することにより、より複雑な機能、たとえばインターネット接続やダウンロードサービスといったアプリケーションも実行可能である。
【０１５５】
（リソース管理）
ＨＴＭＬファイルがメニュー画面のような画面を構成する際には、ＰＮＧイメージファイルなどのデータファイルを参照する。メニューが凝ったものになればなるほど、表示するグラフィクスは複雑なものになり、それを表示するためのイメージデータのサイズは大きくなる。
【０１５６】
また、ＨＴＭＬファイルはユーザー操作によって画面を切り替えるように作ることも可能である。メニュー画面の中である項目を選ぶと、さらにサブメニューが出てくるような場合である。このような場合、メニュー画面が表示された最初の瞬間には表示されていなかったイメージデータが、あとから必要になることがある。
【０１５７】
ところが、さらにそのメニュー画面の背景では動画が表示されている、つまりＡＶストリームが再生されている場合、必要になってからイメージデータを読み込みに行こうとすると、ディスク上でファイルがある位置にシークを行ってから読み込んで元の位置に戻ってこなければならず、ＡＶストリームの再生が一時的に中断してしまう可能性がある。十分な量のバッファを積んでおり、ＡＶストリームを事前にバッファ一杯に先読みすればこのようなことも回避できるが、画像が高解像度・高画質になり、高ビットレートが必要になってきているので、かなり大容量のバッファを用意しなければならず、コストアップなどにつながり、現実的ではない。
【０１５８】
また、ハードディスクのようにシーク時間が短く、読み取り速度が速いメディアでは、少量のバッファでもその早さを利用して、ＡＶを中断させずに他のデータを読み込むことも可能であるが、光ディスクメディアのドライブでは、シークには時間がかかり、読み込み速度もそれほど速くないため、実現にはさらなる技術の進歩が必要となる。
【０１５９】
そのため、一旦ＡＶ再生が開始されるとＡＶ以外のデータを読み込みに行かないモデルにすることが望ましい。
【０１６０】
図３４はその様な場合のデータのライフサイクルを示している。
ＡＶの再生が開始される前に、画面を表示するために必要なデータである、ＨＴＭＬファイルやスクリプトファイル、それらのファイルから参照されるＰＮＧイメージファイルなどのデータファイルをバッファ上にプリロードしておく。
【０１６１】
一旦ＡＶの再生が開始されると、それらのデータをディスクに読みに行くことはない。
なお、ＡＶの再生が止まってもよい場合は、これらを考慮する必要はない。
【０１６２】
また、コンテンツにより、ＡＶの再生が止まって欲しくない場合と、止まってもよい場合を区別する必要があるならば、管理情報にこの２つのパターンを区別する識別子を用意しておけばよい。
【０１６３】
ＨＴＭＬ処理部がデータを必要とするときは、バッファからＨＴＭＬ処理部のワークメモリ上に読み込んでおき、画面の表示などに利用する。その画面が表示されなくなったときには、必要なくなったデータをワークメモリから解放し、次に必要になるデータをバッファから読み込んでくる。
【０１６４】
なお、このワークメモリは、バッファと共有してもよい。
バッファにあるメモリーは、そこに読み込まれているデータが必要なくなるまで保存しておき、必要なくなれば解放する。
【０１６５】
（データのライフサイクル）
上で述べたように、バッファにデータを読み込んでくるタイミングと、バッファからデータを解放するタイミングを明確に決めることができれば、データのライフサイクルの管理が明確になり、管理がしやすくなる。
【０１６６】
データの管理がしやすくなれば、コンテンツ作成者がどのプレーヤでも必ず動作させることができるコンテンツ構成を判定しやすくなり、コンテンツ作成が容易になる。
【０１６７】
データのライフサイクルの開始タイミングと終了タイミングは、ＡＶの再生が停止しているタイミング、あるいは一時的に停止する、連続して再生する場合でもシームレスに再生する必要がないタイミングが望ましい。
【０１６８】
このようなタイミングとしては、ＡＶストリームの切替点、ＨＴＭＬファイルで構成される画面の切替点や、タイトル切替のタイミングなどがあり、その他上記の条件を満たすのであればその他の点でもよい。
【０１６９】
これまで説明した構造を用いると、タイトルの切替のタイミングは、Ｉｎｄｅｘ  Ｔａｂｌｅで明示的に、かつ静的データとして参照することができ、プレーヤから制御しやすい。そのため、データのライフサイクルとは、あるタイトルが開始するときに開始し、あるタイトルが終了するときにライフサイクルも終了する。
【０１７０】
つまり、あるタイトルが開始するときに、そのタイトルを再生するために必要な全てのデータをバッファにプリロードしておき、そのタイトルが終了するとき、たとえば他のタイトルにジャンプするときに、バッファから解放する。
【０１７１】
図３５は各モジュール間の制御の流れとデータの流れ、それに合わせたデータのライフサイクルを示したタイミングチャートである。
【０１７２】
このようなライフサイクルと、バッファのサイズを規定すれば、タイトルを作成するときに、どのくらいのサイズまでイメージデータを使うことができ、どのようなアプリケーションを実行できるか定量的に判断でき、タイトルが非常に作りやすくなる。
【０１７３】
なお、バッファの解放はタイトル制御部や、より上位のモジュールから強制的に行ってもよいし、ＨＴＭＬ処理部が行ってもよい。
【０１７４】
ユーザー操作によりアプリケーション実行中にタイトルを切り替えられた場合、タイトル制御部は、ＨＴＭＬ処理部に現在実行中のスクリプトを中止し、バッファの解放を指示ずる。また、タイトルが切り替わると、次のタイトルに関連するファイルをバッファに読み込むよう指示する。
【０１７５】
（データ読み込みの保証）
ＡＶストリームの再生開始より前に、ＡＶストリーム以外のファイルをバッファにプリロードしておく必要は上で述べたとおりである。その際、ＨＴＭＬファイルを解析して必要なファイルをリストアップしていては、時間がかかってしまう。
【０１７６】
そこで、図３６（ａ）のように、各タイトルで必要なファイルをリストアップしたリソースリストをタイトル毎に作成し、タイトルが選択されたときに、そのタイトルリストに列挙されているファイルを全てバッファに読み込めばよい。
【０１７７】
また、ファイル数が多い場合、ファイル毎にシークが発生すると読み込みの時間がかかってしまうため、リストアップされたファイルをディスク上の１カ所にまとめて配置することのより、無駄なシークを発生させることなく必要なファイルを全て読み込むことも可能である。
【０１７８】
あるいは、図３６（ｂ）のように、ファイルをディレクトリ構造ごとＺＩＰファイルなどで１つにまとめてしまい、バッファに読み込んだあとでバッファ内でファイルを展開し、ディレクトリ構造などを構成してもよい。ファイルをひとまとめにでき、ディレクトリ構造を保持できるようなフォーマットであれば、ＺＩＰファイルでなくてもよい。また、圧縮ファイルである必要もない。
【０１７９】
あるいは、図３７に示すように、制作段階などにおいてディレクトリ構造を持つ論理ファイルツリー４００の各ファイルを、Ｃｏｎｔｅｎｔ  Ａｒｃｈｉｖｅ  Ｆｉｌｅ４０１（以降、ＣＡＲファイルと記載する）内に、フラットに配置し、ＨＴＴＰのｅｎｔｉｔｙ形式などでマルチパート化しておく。さらに、論理ファイルツリー４００のディレクトリ構造情報は、Ｒｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅ４０２に格納して、このＲｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅ４０２を、ＣＡＲファイル４０１内に配置してもよい。
【０１８０】
（ＺＩＰファイル、ＣＡＲファイル４０１を用いたアーカイブ構成の効果）
図３６（ｂ）の構成や、図３７の構成をとることで実現できるディスクへの書込み効率／読出し効率の向上について説明する。
【０１８１】
もし、ＨＴＭＬファイルやイメージファイルを、ディスク上に個別配置した場合、１つのファイルに関する情報しか配置できないディスク上のセクターに、何も書き込まれないエリア（フラグメンテーション）が発生し、書込み効率が低下する。
【０１８２】
また、読出しにおいては、ＨＴＭＬファイル、イメージファイルの個数分だけ読出し処理が発生し、読出しの都度、ディスクのＳＥＥＫ処理が発生し、関連するファイルの読込みに時間がかかってしまい、タイトルの起動が遅くなる。
【０１８３】
一方、ＺＩＰファイル、もしくは、ＣＡＲファイル４０１を用いた場合、画面提示に利用されるＨＴＭＬファイルとそのＨＴＭＬファイルが参照するイメージファイル群、そして、そのＨＴＭＬファイルから文書遷移して次に提示されるＨＴＭＬファイルなど、一連の動作に関連するファイル群（コンテンツ）をアーカイブ化しているので、フラグメンテーションの合計サイズ、個数が抑えられて、ディスクへの書込み効率が高くなり、また、１ファイルにアーカイブされているので、１回の読出し処理しか発生せず、ＳＥＥＫ回数が抑えられ、すばやくディスクから読み出すことができる。
【０１８４】
また、このような仕組みを用いることにより、タイトル毎にリソースを分かりやすく管理し、データの読み込みを効率化することにより、オーサリング時にミスが起こりにくく、プレーヤで制御しやすい仕組みを提供することが可能となる。
【０１８５】
（Ｒｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅ形式による起動処理フロー）
以下、図３６、図３７を用いて説明したＺＩＰファイルおよびＣＡＲファイルなどのアーカイブファイルを応用した仕組みに関してより詳細な実装を説明する。
【０１８６】
図３９にＸＭＬを用いたＲｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅを記述した例を図示している。Ｒｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅは各タイトル毎に記述され、各タイトル再生時に実行されるアプリケーションに関する記述がなされる。
【０１８７】
図３２を用いて前述した例では、Ｉｎｄｅｘ  Ｔａｂｌｅで定義されるタイトルからはＨＴＭＬファイルが関連づけられていたが、Ｉｎｄｅｘ  Ｔａｂｌｅで定義された各タイトルからは、ＣＡＲファイルが関連づけられていており、さらに、ＣＡＲファイル内には、Ｒｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅが格納されており、Ｉｎｄｅｘ  Ｔａｂｌｅで定義されるあるタイトルを選択した場合、そのタイトルに関連づけられたＣＡＲファイルが最初に呼び出され、ＣＡＲファイルに関連付けられたＲｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅが次に呼び出される方式をとる。
【０１８８】
なお、Ｉｎｄｅｘ Ｔａｂｌｅから各タイトルのＲｅｓｏｕｒｃｅ Ｌｉｓｔ Ｆｉｌｅが関連づけられる方式でも良い。
【０１８９】
図３８のＳ８００系は、Ｉｎｄｅｘ Ｔａｂｌｅで定義された各タイトルからＣＡＲファイルが関連づけられる方式において、Ｔｉｔｌｅが選択されてから、ＨＴＭＬによる画面提示までのフローを示している。
【０１９０】
Ｉｎｄｅｘ  Ｔａｂｌｅで定義されるあるタイトルを選択されると（Ｓ８０１）、そのタイトルに関連づけられたＣＡＲファイルが呼出され、ＣＡＲファイル用のＢｕｆｆｅｒに格納される（Ｓ８０２）。次に、ＣＡＲファイルに格納された、Ｒｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅが切り出され、Ｒｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅが解析され、起動すべきＨＴＭＬファイルが特定される（Ｓ８０３）。なお、Ｒｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅは、マルチパート化されたＣＡＲファイルの先頭に配置することで、Ｒｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅの切り出しをすばやく実現できる。
【０１９１】
次に、Ｒｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅに記載された起動すべきＨＴＭＬファイルのＯｆｆｓｅｔ値を用いて、ＣＡＲファイル内に格納されたＨＴＭＬファイルを切り出し、ＨＴＭＬファイルを解析する（Ｓ８０４）。なお、Ｏｆｆｓｅｔが記載されていない場合には、ディレクトリ構成に記載されたディレクトリ名、ファイル名を付け足して論理パスを構築し、本論理パスを用いて、ＺＩＰファイルにアーカイブされた各ファイルのリソースヘッダに記載されたリソースパスと比較することで、ＨＴＭＬファイルを特定し、切り出すことができる。
【０１９２】
ＨＴＭＬファイルがイメージファイルなどのデータファイルを参照している場合は、さらに、Ｒｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅを解析して、対応するデータファイルを切り出し、レイアウト処理、スクリプト処理を行って、画面が提示される（Ｓ８０５）。
【０１９３】
さらに、図３８のＳ９００系を用いて、画面提示された後、ユーザ操作やスクリプト処理などによって文書遷移処理が発生してから、次の提示画面が提示されるまでの処理フローを説明する。
【０１９４】
ユーザ操作やスクリプト処理などによって文書遷移が発生すると（Ｓ９０１）、指定されたＵＲＩを解析し、同一タイトル内に属するかを判断し、別タイトルに属する場合は、Ｉｎｄｅｘ  Ｔａｂｌｅを解析して、別タイトルの起動を指示し、（Ｓ８０１）へ移行する（Ｓ９０２）。同タイトルに属する場合、すでにＰｒｅｌｏａｄされているＣＡＲファイル内にあるＲｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅを解析し、指定されたＨＴＭＬファイルを特定する（Ｓ９０３）。次に、Ｒｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅに記載されたＯｆｆｓｅｔ値を用いて、ＣＡＲファイル内に格納されたＨＴＭＬファイルを切り出し、ＨＴＭＬファイルを解析する（Ｓ９０４）。イメージファイルなどのデータファイルが参照されている場合は、さらに、Ｒｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅを解析して、対応するデータファイルを切り出し、レイアウト処理、スクリプト処理を行って、画面が提示される（Ｓ９０５）。
【０１９５】
（ＸＭＬ形式のＲｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅの構造）
図３９は、ＸＭＬ形式のＲｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅの記述例を示す。ＸＭＬ形式のＲｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅは、ＸＭＬ宣言と、＜ａｐｐｌｉｃａｔｉｏｎ＞、＜ｅｎｔｒｙ＞、＜ｔｏｐｐａｇｅ＞、＜ｌｉｎｋｆｉｌｅ＞の四つの要素からなる。
【０１９６】
＜ａｐｐｌｉｃａｔｉｏｎ＞要素のｎａｍｅ属性にアプリケーション名が記述される。
アプリケーションを実行する上で一番最初に読み込んで解析する必要があるＨＴＭＬ（以降、Ｔｏｐｐａｇｅと呼ぶ）に関しては、そのファイル名が＜ｔｏｐｐａｇｅ＞要素のｓｒｃ属性として記述されている。
【０１９７】
Ｔｏｐｐａｇｅを除く、アプリケーションを構成する各ファイルのファイル名がＵＲＩ形式で＜ｌｉｎｋｆｉｌｅ＞要素のｓｒｃ属性としてリストアップされている。
【０１９８】
また、これらのアプリケーションを構成するファイル群（Ｔｏｐｐａｇｅを含む）は、アーカイブファイルとして一纏めにＢＤ−ＲＯＭ上に記録されるものとし、Ｒｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅには当該アーカイブファイルのファイル名がＵＲＩ形式で＜ｅｎｔｒｙ＞要素のｓｒｃ属性として記述されている。
【０１９９】
このように、ＢＤプレーヤはタイトル再生時にそのタイトルに対応するＲｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅを読み込むことで、ＢＤ−ＲＯＭ上にアーカイブファイルとして一纏めに配置されたアプリケーションを構成するファイルを無駄なシークを発生させることなく一括して読み込むことができ、また当該アプリケーションで使用する全てのファイル名を知ることができる。
【０２００】
また、Ｒｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅ中の＜Ｔｏｐｐａｇｅ＞要素を参照することで、ＨＴＭＬ及びスクリプトで記述されたアプリケーションを実行する際、どのファイルを一番はじめに解析するのかを知ることができる。
【０２０１】
現在再生しているタイトルとは違うタイトルが選択された場合、再生していたタイトルのＲｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅに記述されていたファイルを解放してもよいし、選択されたタイトルに関連づけられたＲｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅに記載されていないファイルのみ解放してもよい。このようにＲｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅを用いることで、タイトル毎にリソースを分かりやすく管理し、データの読み込みを効率化することが可能であり、オーサリング時にミスが起こりにくく、プレーヤで制御しやすい仕組みを提供することが可能となる。
【０２０２】
なお、本実施の形態のＲｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅでは、＜ａｐｐｌｉｃａｔｉｏｎ＞要素のｎａｍｅ属性にアプリケーションの名前が記述されており、プレーヤは挿入されたＢＤ−ＲＯＭ  Ｄｉｓｃのタイトル名とこのアプリケーション名を用いてプレーヤにて実行されたアプリケーションを識別可能である。したがって、プレーヤのローカルストレージにそれぞれのアプリケーション用の領域を設定してもよい。また、前記アプリケーション用の領域には当該アプリケーションのみがアクセス可能であり、そのほかのアプリケーションのアクセスを禁止しても良い。
【０２０３】
（バイナリー形式のＲｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅの構造）
図４０を用いて、ＣＡＲファイルにアーカイブされるファイルのディレクトリ構造情報を格納したバイナリー形式のＲｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅの内部構造について説明をする。
【０２０４】
＜Ｒｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅ＞
バイナリー形式のＲｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅは、Ｂａｓｅ  ＩｎｆｏとＢａｓｅ  Ｄｉｒｅｃｔｏｒｙから構成される。Ｂａｓｅ  Ｉｎｆｏは、Ｒｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅが格納されているＣＡＲファイル全般に関わる情報が記載される。
【０２０５】
＜Ｂａｓｅ  Ｄｉｒｅｃｔｏｒｙ＞
Ｂａｓｅ  Ｄｉｒｅｃｔｏｒｙは、ＣＡＲファイルに格納されているＨＴＭＬファイル等ファイルのディレクトリ構造情報が記載されており、Ｉｎｆｏｒｍａｔｉｏｎ、Ｎｕｍｂｅｒ、ＣＡＲファイルをトップディレクトリとして、この１段下に配置されるＤｉｒｅｃｔｏｒｙ、Ｆｉｌｅから構成される。ＤｉｒｅｃｔｏｒｙとＦｉｌｅの合計数は、Ｎｕｍｂｅｒに記載された数となる。Ｉｎｆｏｒｍａｔｉｏｎには、Ｂａｓｅ  Ｄｉｒｅｃｔｏｒｙに関する情報が記載される。
【０２０６】
＜Ｄｉｒｅｃｔｏｒｙ＞
Ｄｉｒｅｃｔｏｒｙは、Ｉｎｆｏｒｍａｔｉｏｎ、Ｎｕｍｂｅｒ、本Ｄｉｒｅｃｔｏｒｙの１段下に配置されるＤｉｒｅｃｔｏｒｙ、Ｆｉｌｅから構成される。ＤｉｒｅｃｔｏｒｙとＦｉｌｅの合計数は、Ｎｕｍｂｅｒに記載された数となる。Ｉｎｆｏｒｍａｔｉｏｎには、Ｄｉｒｅｃｔｏｒｙの名前や本Ｄｉｒｅｃｔｏｒｙの属性情報が記載される。さらに配下に配置されたＤｉｒｅｃｔｏｒｙは、本Ｄｉｒｅｃｔｏｒｙと同じ構成となる。
【０２０７】
＜Ｆｉｌｅ＞
Ｆｉｌｅは、Ｉｎｆｏｒｍａｔｉｏｎ、Ｏｆｆｓｅｔ、Ｎａｍｅから構成される。Ｉｎｆｏｒｍａｔｉｏｎには、本Ｆｉｌｅの属性情報が記載される。Ｎａｍｅは名前である。Ｏｆｆｓｅｔは、ＣＡＲファイル内に配置されている本来のファイルの、ＣＡＲファイルの先頭からのｂｉｔ長さが記載されている。
【０２０８】
（バイナリ形式のＲｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅの効果）
バイナリ形式のＲｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅの内部構造であるＤｉｒｅｃｔｏｒｙ、Ｆｉｌｅを解析していくことで、ＣＡＲファイル内にフラットに配置され、マルチパート化されたファイルのディレクトリ構造を復元できて、かつ、Ｆｉｌｅ内にあるＯｆｆｓｅｔを用いて、ＢｕｆｆｅｒにＰｒｅｌｏａｄされたＣＡＲファイルから、実ファイルの位置を計算できるため、数Ｍ〜Ｂｙｔｅの巨大なＣＡＲファイル内から、すばやく目的のファイルを切り出すことができる。
【０２０９】
（ディスク外のＨＴＭＬ提示状態から、ディスク上のＨＴＭＬへの遷移における課題）
図４１を用いて、コンテンツサーバ上などのディスク外のＨＴＭＬファイルを提示している状態から、ディスク上のＨＴＭＬファイルへ文書遷移する場合の課題を説明する。
【０２１０】
ディスク上のＨＴＭＬファイル間でブラウジングした後など、一旦、コンテンツサーバ上のＨＴＭＬファイルへ文書遷移してしまうと、コンテンツサーバ上のＨＴＭＬファイル間の文書遷移に関しては問題ないが、いざディスク上のＨＴＭＬファイルへ文書遷移しようとした場合、コンテンツサーバ上のＨＴＭＬファイルは、現在挿入されているディスクが何であるか、また、どのような論理ディレクトリ構造になっているかなど、ディスク上のＨＴＭＬに関する情報を取得できないため、予め情報を保持していない限り、期待するディスク上のＨＴＭＬファイルへの文書遷移ができない。結果、タイトルの再起動を行って、画面提示を行うため、以前ディスク上のＨＴＭＬファイル間でブラウジングした操作結果が削除されてしまったり、最後に提示したディスク上のＨＴＭＬファイルの画面を再提示することができない。
【０２１１】
（ディスク外のＨＴＭＬファイルから、ディスク上のＨＴＭＬファイルへの遷移の方法）
図４２は、ディスク外からディスク上のＨＴＭＬファイルへの文書遷移要求が発生時に、提示すべきＨＴＭＬを指定する仕組みを追加したバイナリー形式のＲｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅの内部構造を示す。
【０２１２】
＜Ｒｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅ＞
バイナリー形式のＲｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅは、Ｂａｓｅ  ＩｎｆｏとＥｎｔｒｙ  ＬｉｓｔとＢａｓｅ  Ｄｉｒｅｃｔｏｒｙから構成される。Ｂａｓｅ  Ｉｎｆｏは、Ｒｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅが格納されているＣＡＲファイル全般に関わる情報が記載される。
【０２１３】
＜Ｅｎｔｒｙ  Ｌｉｓｔ＞
Ｅｎｔｒｙ  Ｌｉｓｔは、ＮｕｍｂｅｒとＥｎｔｒｙ  Ｉｎｆｏから構成される。Ｅｎｔｒｙの数は、Ｎｕｍｂｅｒに記載された数である。Ｅｎｔｒｙ  Ｉｎｆｏは、Ｅｎｔｒｙ  ＴｙｐｅとＯｆｆｓｅｔから構成される。Ｅｎｔｒｙ  Ｔｙｐｅは、ディスク外のＨＴＭＬファイルから本タイトルへの文書遷移要求を受けた場合に提示すべきＨＴＭＬファイル、などの起動種別を表す。Ｏｆｆｓｅｔは、提示すべきＨＴＭＬファイルに対応するＦｉｌｅ構造体のＲｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅ内のＯｆｆｓｅｔ値である。
【０２１４】
＜Ｂａｓｅ  Ｄｉｒｅｃｔｏｒｙ＞
Ｂａｓｅ  Ｄｉｒｅｃｔｏｒｙは、ＣＡＲファイルに格納されているＨＴＭＬファイル等ファイルのディレクトリ構造情報が記載されており、Ｉｎｆｏｒｍａｔｉｏｎ、Ｎｕｍｂｅｒと、ＣＡＲファイルをトップディレクトリとして、その１段下に配置されるＤｉｒｅｃｔｏｒｙ、Ｆｉｌｅから構成される。ＤｉｒｅｃｔｏｒｙとＦｉｌｅの合計数は、Ｎｕｍｂｅｒに記載された数となる。Ｉｎｆｏｒｍａｔｉｏｎには、Ｂａｓｅ  Ｄｉｒｅｃｔｏｒｙに関する情報が記載される。
【０２１５】
＜Ｄｉｒｅｃｔｏｒｙ＞
Ｄｉｒｅｃｔｏｒｙは、Ｉｎｆｏｒｍａｔｉｏｎ、Ｎｕｍｂｅｒと、本Ｄｉｒｅｃｔｏｒｙの１段下に配置されるＤｉｒｅｃｔｏｒｙ、Ｆｉｌｅから構成される。ＤｉｒｅｃｔｏｒｙとＦｉｌｅの合計数は、Ｎｕｍｂｅｒに記載された数となる。Ｉｎｆｏｒｍａｔｉｏｎには、Ｄｉｒｅｃｔｏｒｙの名前や本Ｄｉｒｅｃｔｏｒｙの属性情報が記載される。さらに配下に配置されたＤｉｒｅｃｔｏｒｙは、本Ｄｉｒｅｃｔｏｒｙと同じ構成となる。
【０２１６】
＜Ｆｉｌｅ＞
Ｆｉｌｅは、Ｉｎｆｏｒｍａｔｉｏｎ、Ｏｆｆｓｅｔ、Ｎａｍｅから構成される。Ｉｎｆｏｒｍａｔｉｏｎには、本Ｆｉｌｅの属性情報が記載される。Ｎａｍｅは名前である。Ｏｆｆｓｅｔは、ＣＡＲファイル内に配置されている本来のファイルの、ＣＡＲファイルの先頭からのｂｉｔ長さが記載されている。
【０２１７】
次に、図４３を用いて、本Ｒｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅを用いて、ディスク外からディスク上のＨＴＭＬファイルへの文書遷移要求が発生した場合の処理フローを説明する。
【０２１８】
ディスク外のＨＴＭＬファイルから、ディスク上のＨＴＭＬファイルへ文書遷移が要求されると（Ｓ１００１）、指定されたＵＲＩを解析し、同一タイトル内に属するか判断し、別タイトルに属する場合は、Ｉｎｄｅｘ  Ｔａｂｌｅを解析して、別タイトルへの起動を指示すべく、（Ｓ８０１）へ移行する（Ｓ１００２）。
【０２１９】
同タイトルに属する場合、すでにＰｒｅｌｏａｄされているＣＡＲファイル内にあるＲｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅを解析し、Ｅｎｔｒｙ  Ｌｉｓｔにある“ディスク外からの文書遷移要求時に提示すべきＨＴＭＬファイル”を特定し、そのＯｆｆｓｅｔから、Ｆｉｌｅ構造体を解析し、起動すべきＨＴＭＬファイルを特定する（Ｓ１００３）。
【０２２０】
なお、コンテンツサーバ上のＨＴＭＬファイルは、現在ＰｒｅｌｏａｄされているＣＡＲファイルの属するタイトルを示すＵＲＩが判定できない場合があるが、ディスク、タイトルを指定するＵＲＩとして、現在挿入中のディスク、現在ＢｕｆｆｅｒにＰｒｅｌｏａｄされているタイトルを指定するＵＲＩ（“ｂｄ：／／−１．−１”など。−１は現在選択されているディスク、もしくは、タイトルを指している）を指定することで、ディスク、タイトルを識別する必要がない。
【０２２１】
次に、Ｒｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅに記載されたＯｆｆｓｅｔ値を用いて、ＣＡＲファイル内に格納されたＨＴＭＬファイルを切り出し、ＨＴＭＬファイルを解析する（Ｓ１００４）。
【０２２２】
ディスク外からの文書遷移要求時にためのＨＴＭＬファイルの画面提示処理においては、本ＨＴＭＬのスクリプト機能を利用することで、ある程度、ディスク外へ文書遷移する前、もしくは、ディスク上のＨＴＭＬファイル間でブラウジングしていたときの状態を復帰することができる。
【０２２３】
例えば、ディスク外へ文書遷移した際のＡＶ再生位置、ゲームの進捗・得点などの遷移前情報が、ＤＯＭのｃｏｏｋｉｅやＵｓｅｒ  Ｒｅｇｉｓｔｅｒ／Ｇｌｏｂａｌ  Ｒｅｇｉｓｔｅｒなどのデータ格納Ｉ／Ｆによりプレイヤー保存領域に退避している場合、スクリプト機能により遷移前情報を読込み、例えば、ＡＶを遷移前の再生位置から再生を再開したり、ゲームを途中から再開することができる（Ｓ１００５）。
【０２２４】
以上の仕組みを用いることで、ディスク外のＨＴＭＬファイル提示状態から、ディスク上のＨＴＭＬファイルへの遷移が発生したときに、毎回同じタイトル起動画面が提示されるのではなく、ディスク上のＨＴＭＬファイル間でブラウジングしていたユーザ操作やゲームの進捗・得点などを反映した画面を提示することができる。また、異なるタイトルへの文書遷移でなければ、ＰｒｅｌｏａｄされたＣＡＲファイルからＨＴＭＬファイルを読み出すので、新たなディスクＳＥＥＫが発生せず、画面をすみやかに提示することができる。また、ＰｒｅｌｏａｄされているＣＡＲファイルからＨＴＭＬファイルを読出し、提示するので、ＡＶが文書遷移に関係なく継続して再生していても、ＡＶ以外のファイルのディスクＳＥＥＫに起因するＡＶ再生の途切れや映像乱れが発生しない。
【０２２５】
（エラー発生時の課題）
図４４を用いて、エラー発生時に想定される課題を説明する。
【０２２６】
既存のＰＣ上で利用されているＨＴＭＬブラウザなどにおいて、文書遷移の際、次に提示するＨＴＭＬファイルの取得に失敗すると、コンテンツサーバが、ＨＴＭＬファイルが存在しない等の通知画面を生成し、ＨＴＭＬファイルとして送信し、これを受信したＨＴＭＬブラウザがエラー通知用のＨＴＭＬファイルを提示したり、もしくは、ＨＴＭＬファイルが存在しないことを通知するエラーコード（４０４番）を受け取ったＨＴＭＬブラウザが、ブラウザ内に事前に埋め込んで用意されているエラー用のＨＴＭＬファイルを提示していた。
【０２２７】
そのため、エラーが発生すると、制作者の制作したＨＴＭＬファイルが提示されないため、制作者の意図した動作を実現できない。例えば、エラー画面を制作者の意図するデザインにできなかったたり、次のＡＶ操作やスクリプト操作への繋がりが断絶されてしまう。
【０２２８】
（エラー発生時に制作者の意図する動作を実現する方法）
図４２で示したバイナリー形式のＲｅｓｏｕｒｃｅ  Ｌｉｓｔ  ＦｉｌｅのＥｎｔｒｙ  ＬｉｓｔのＥｎｔｒｙ  Ｔｙｐｅに関して、次に示すように、起動種別を追加する。
【０２２９】
＜Ｅｎｔｒｙ  Ｌｉｓｔ＞
Ｅｎｔｒｙ  Ｌｉｓｔは、ＮｕｍｂｅｒとＥｎｔｒｙ  Ｉｎｆｏから構成される。Ｅｎｔｒｙの数は、Ｎｕｍｂｅｒに記載された数である。Ｅｎｔｒｙ  Ｉｎｆｏは、Ｅｎｔｒｙ  ＴｙｐｅとＯｆｆｓｅｔから構成される。Ｅｎｔｒｙ  Ｔｙｐｅは、ディスク外のＨＴＭＬから本Ｔｉｔｌｅへの文書遷移要求を受けた場合のＨＴＭＬファイル、エラーが発生した場合に提示すべきＨＴＭＬファイル、などの起動種別を表す。Ｏｆｆｓｅｔは、提示すべきＨＴＭＬファイルに対応するＦｉｌｅ構造体のＲｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅ内のＯｆｆｓｅｔ値である。
【０２３０】
図４５は、コンテンツサーバ上のＨＴＭＬファイルへの文書遷移時にＨＴＭＬファイルの取得失敗などのエラーが発生した場合の処理フローを示す。
【０２３１】
コンテンツサーバ上のＨＴＭＬファイルの文書遷移において、ＨＴＭＬファイルの取得に失敗して、コンテンツサーバからエラーコード４０４が通知されるなど、エラーが発生すると（Ｓ１１０１）、すでにＰｒｅｌｏａｄされているＣＡＲファイル内にあるＲｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅを解析し、Ｅｎｔｒｙ  Ｌｉｓｔの中から、“エラーが発生した場合に提示すべきＨＴＭＬファイル”を特定し、そのＯｆｆｓｅｔ値から、Ｆｉｌｅ構造体を特定して、起動すべきＨＴＭＬファイルを特定する（Ｓ１１０２）。
【０２３２】
次に、特定したＦｉｌｅ構造体に記載されたＯｆｆｓｅｔ値を用いて、ＣＡＲファイル内に格納されたＨＴＭＬファイルを切り出し、解析する（Ｓ１１０３）。
【０２３３】
制作者によって用意されたエラー用のＨＴＭＬファイルの画面提示処理においては、スクリプト機能を利用することで、エラーに応じた画面を提示したり、エラーの影響を受けないスクリプト処理を用意したり、など、制作者の意図した処理を実現できる。
【０２３４】
例えば、エラー画面ＨＴＭＬのＯｎＬｏａｄスクリプトにより、エラーＳｔａｔｕｓ取得関数をＣａｌｌし、コンテンツサーバ上のＨＴＭＬの取得エラーであることが判明すると、通信エラーであることを通知する画面を提示するとともに、コンテンツサーバ上のＨＴＭＬファイルへリンクを抑えた画面を作成して、提示することで、その後のユーザ操作により、同じエラーを回避することができ、継続した画面提示が可能となる（Ｓ１１０４）。
【０２３５】
以上の仕組みを用いることで、エラーが発生した場合に、ブラウザに組み込まれたエラー用画面が提示されることはなく、制作者の作成したエラー用ＨＴＭＬが提示され、そのＵＩや次に繋がる動作を、制作者が意図して制作可能である。また、ＰｒｅｌｏａｄされたＣＡＲファイルからＨＴＭＬファイルを読み出すので、新たなディスクＳＥＥＫ処理を発生させることがなく、画面をすみやかに提示することができる。また、ＰｒｅｌｏａｄされているＣＡＲファイルからＨＴＭＬファイルを読出し、提示するので、ＡＶが文書遷移に関係なく継続して再生していても、ＡＶ以外のファイルのディスクＳＥＥＫに起因するＡＶ再生の途切れや映像乱れが発生しない。
【０２３６】
（実施例３）
次に本発明の第３の実施の形態について説明する。
【０２３７】
第３の実施の形態は、ＢＤ−ＲＯＭにおいて、ＢＤ−ＲＯＭ Ｄｉｓｃに記録されたアプリケーションの妥当性を検証し、最適な実行権限をもって実行されることを保証するための環境を導入することに関する内容である。基本的には第１の実施例と第２の実施例に基づく内容であり、拡張または異なる部分を中心に説明する。
【０２３８】
（Ｄｉｓｃ上のアプリケーション認証）
前述したHTMLおよびスクリプトにより、スタジオはＢＤ−ＲＯＭに記録されたコンテンツやＢＤプレーヤの資源を用いて、表現力に富んだアプリケーションをユーザに提供できる。一方で、このようなアプリケーションの実行環境を悪用または誤用されると、ユーザまたはスタジオに様々な被害が及ぶ可能性がある。例えば悪意のある第三者により作成されたＢＤ−ＲＯＭを再生することでプレイヤーのシステムが破壊されたり、プレーヤーの資源が盗まれるといった深刻な問題が発生する可能性がある。また、正規のＢＤ−ＲＯＭを改竄された場合でもプレイヤーのシステムが破壊されたり、プレーヤーの資源が盗まれたり、ＢＤ−ＲＯＭ上のコンテンツが盗まれるといった深刻な問題が発生する可能性がある。
【０２３９】
このように、BDプレーヤによってHTMLおよびスクリプトによるアプリケーションを実行する際、図４６に示すように正規のスタジオ以外で作成されたアプリケーションや、改竄されたアプリケーションを検出し、深刻な問題を生じさせかねないアプリケーションは実行を拒否したり、利用できる機能やアクセスできるリソースを制限する仕組みが必要である。
【０２４０】
そこで本実施の形態では、ＢＤ−ＲＯＭ Ｄｉｓｃに記録されたHTMLおよびスクリプトによるアプリケーションが正規のスタジオで作成されたものか否かを検証するアプリケーション認証機構を提供する。
【０２４１】
以下、本実施の形態のアプリケーション認証機構の概要を図４７を用いて説明する。
まず、正規のスタジオはHTMLおよびスクリプトによるアプリケーションを作成する（（１）オーサリング）。HTMLおよびスクリプトによるアプリケーションは１つ以上のファイルから構成される。次にアプリケーションの妥当性を証明させたいアプリケーションに対して、公開鍵証明書により署名を行う（（２）署名）。公開鍵証明書はBDのライセンス団体に属するスタジオのものでも良いし、BDのライセンス団体が発行したものでもよい。以下、本実施の形態ではアプリケーションに対して署名を行う公開鍵証明書はBDのライセンス団体が承認したスタジオの公開鍵証明書とする。また、署名の方法に関しては後述するが、アプリケーションへの署名の対象となるファイルは、当該アプリケーションを構成するHTMLファイルとスクリプトファイルだけでもよいし、HTMLファイルからリンクされる任意または全てのファイルであってもよい（HTMLファイルからリンクされるファイルとしては画像ファイルや音声ファイル、動画ファイル、スタイルファイルなどがある）。
【０２４２】
以上により作成されたBD-ROMが販売され、購入したユーザがBDプレーヤに挿入すると（（３）販売）、ＢＤプレーヤが前記アプリケーションを実行する際、前記ファイル軍全体に対する署名の妥当性を検証する（（４）署名照合）。これによりアプリケーションが前記スタジオにて作成された正規のものであることが確認され、ＢＤプレーヤはアプリケーションを実行する（（５）実行）。
【０２４３】
以下、本実施の形態における署名の方法について説明する。
HTMLおよびスクリプトによるアプリケーションは１つ以上のファイルから構成されるが、各ファイル毎に署名を作成する方法ではアプリケーション実行時にアプリケーションを構成する複数のファイル用の複数の署名の妥当性を検証していく必要がありBDプレーヤの性能によってはアプリケーション実行時のパフォーマンスが落ちてしまう可能性がある。したがって、本実施の形態における署名には第２の実施の形態で図３９または４２を用いて説明したResource List Fileを応用する。具体的には、アプリケーションを構成するファイルのファイル名に加え、各ファイルのハッシュ値も併せてResource List Fileに記述し、Resource List Fileに対してのみ署名することで署名の対象をResource List File１つに限定する。
【０２４４】
ここで、ハッシュ値とは任意の長さのデータを一方向関数に入力して得られた固定長のデータのことであり、もとのファイルからハッシュ値を計算することは容易であるがハッシュ値から元のファイルを類することは困難であるという特徴と、入力されるデータが少し異なるだけでも得られるハッシュ値が変化するという特徴とをもつ。一方向関数としてはMD5（Message Digest 5）やSHA-1（Secure Hash Algorithm 1）などがある。
【０２４５】
図４８に図３９を用いて説明したXML形式によるResource List Fileに本実施の形態よるアプリケーション認証機構を導入した場合のResource List Fileの例を示す。
【０２４６】
図４８に示すように、アプリケーションを構成するファイル名をリストアップした<toppage>要素<linkfile>要素に、各々のファイルのハッシュ値を記述するための属性値として、SHA-1の計算結果を記述する"sha-digest"とMD5の計算結果を記述する"md5-digest"を追加している。各要素は"sha-digest""md5-digest"のどちらか一方、または両方を持つものとする。
【０２４７】
また、図４８に示すResource List Fileは新たに<signiture>要素が追加されており、当該Resrource List Fileへの署名データのファイル名がURI形式で<signiture>要素のsrc属性として記述されている。また、署名データの形式が<signiture>要素のsig-type属性として記述されている。ここでResource List Fileに署名後にResource List Fileに署名データのファイル名を記述してしまうとResource List Fileのデータが変更されることになり作成済みの署名データ自体も無効になってしまうため、Resource List Fileに記述する署名データのデータ名は署名データ作成前に決定しておく必要がある。署名データのファイル名は、各アプリケーション毎に明示的に一意に決められるようにしてもよい。例えばToppageと同一ディレクトリにToppageの同一のファイルボディを持ち、拡張子として".rsa"を持つものとして定義してもよい。これによりアプリケーションを作成完了しtoppageの名前が決まった時点で署名データの名前は一意に決まっているため、署名データを作成する前であってもResource List Fileを作成可能であり署名データ作成後でもResource List Fileのデータは変化しない。
【０２４８】
また、署名データの形式としては、RSA社が定義したPKCS#7（Public-Key Cryptography Standards #7）などがある。PKCS#7形式によるResource List Fileへの署名データの例を図４９に示す。図４９に示すように、PKCS#7によるResource List Fileの署名は、Version情報とアルゴリズム情報に加え、Resource List Fileのハッシュ値と、スタジオの公開鍵証明書、Resource List Fileのハッシュ値に対して、前記スタジオの公開鍵証明書を用いて署名した結果とが含まれる。
【０２４９】
図５０に図４２を用いて説明したバイナリ形式によるResource List Fileに本実施の形態によるアプリケーション認証機構を導入した場合のResource List Fileの例を示す。図５０におけるResource List Fileでは、Base Directory以下にSignature Fileを追加している。Signature Fileは、図４２におけるFileと同様に、Information、Offset、Nameを含む。Informationには、例えばSignature Fileの署名データ形式がPKCS#7であるなどの情報をはじめとしてSignature Fileの属性情報が記載される。NameはSignature Fileの名前である。Offsetは、Signature FileがCARファイル内のどの位置に配置されているかを示すもので、CARファイルの先頭からのBit長が記載されている。
【０２５０】
また、図５０におけるResource List Fileでは各File以下にHash Valueを追加している。該当ファイルのHash値が存在する場合は、Hash Vuleに当該Fileのハッシュ値が記載されており、ハッシュ形式などの情報がInformationに記載されている。
【０２５１】
以下、図５１を用いて、本実施の形態によるアプリケーションの妥当性検証方法について述べる。
【０２５２】
まず、プレーヤにＢＤ−ＲＯＭ Ｄｉｓｃが挿入されて、IndexTableの先頭が自動選択されたりユーザが選択するなどして、IndexTableで定義された任意タイトルが開始されると（ステップＳ１２０１）、プレーヤは当該タイトルが定義されたIndexTableを参照し、前述した方式でIndexTableまたはCARファイルから関連づけられた当該タイトルのResource List Fileを読み込む（ステップＳ１２０２）。Resource List Fileは例として図４８または図５０を用いて前述した形式をとるものとする。次にResource List Fileを参照して署名データ（Ｓｉｇｎａｔｕｒｅ  Ｆｉｌｅ）を読み込む（ステップＳ１２０３）。署名データは例として図４１を用いて前述した形式をとるものとし、署名の対象となるResource List Fileのハッシュ値と、その署名、署名に用いたスタジオの公開鍵証明書を含む。次にプレーヤは署名データに含まれるスタジオの公開鍵証明書を取り出す。この公開鍵証明書は一般的な公開鍵証明書であり、スタジオの公開鍵と、その公開鍵に対する認証局による署名、認証局による署名を照合するために用いる認証局の公開鍵証明書のチェーンが含まれる。プレーヤは取り出したスタジオの公開鍵証明書からスタジオの公開鍵を取り出し（ステップＳ１２０４）、署名データから取り出したResource List Fileのハッシュ値に対する署名をステップＳ１２０４で取り出した公開鍵を用いて復号化する（ステップＳ１２０５）。次に、署名データからResource List Fileのハッシュ値を取り出して一方向関数に入力してハッシュ値を計算する（ステップＳ１２０６）。次に、ステップＳ１２０５で復号化して得た復号化データと、ステップＳ１２０６で計算して得たハッシュ値とを比較する（ステップＳ１２０７）。復号化データとハッシュ値が等しい場合は、署名データが正しく、またResource List Fileが偽造または改竄されていないことが確認されたこととなり、ステップＳ１２０８に進む。復号化データとハッシュ値が等しくない場合は、Resource List Fileか署名データが改竄または偽造されたことが考えられ、ステップＳ１２１１に進む。次にステップＳ１２０８において、署名データに含まれるスタジオの公開鍵証明書の妥当性を検証していく。スタジオの公開鍵証明書にはスタジオの公開鍵と公開鍵に対する認証局による署名と署名した認証局の公開鍵証明書が含まれており、スタジオの公開鍵証明書の中に含まれる公開鍵の署名の妥当性をスタジオの公開鍵証明書の中に含まれる認証局の公開鍵証明書を用いて確認（図５０のステップＳ１２０４からステップＳ１２０７までと同様の手順）する。署名した認証局の公開鍵証明書にもさらに当該認証局の公開鍵を署名した親となる認証局の公開鍵証明書が含まれており、チェーン状になっている。これらの認証局の公開鍵証明書のチェーンを先ほどと同様の手順で妥当性を確認していくと最終的にはルートとなる認証局の公開鍵証明書が得られる。ルート認証局の公開鍵証明書が正規のものであるかどうかの確認方法としては、プレーヤにルート認証局の公開鍵証明書を持たせそれと比較する方法でもよいし、ＢＤ−ＲＯＭ Ｄｉｓｃに安全な方法で記録しておいてそれと比較する方法でも良い。
【０２５３】
最終的に得られたルート認証局の公開鍵証明書が正規のものであれば最終的にスタジオの公開鍵証明書が妥当であることが確認され（ステップＳ１２０９）、ステップＳ１２１０に進み、最終的に当該タイトル（またはCARファイル）のＲｅｓｏｕｒｃｅ Ｌｉｓｔ Ｆｉｌｅが偽造・改竄されておらず妥当であることが検証される（ステップＳ１２１０）。スタジオの公開鍵証明書が妥当でなければステップＳ１２１１に進み、Resource List Fileが偽造または改竄されている可能性があることを検出する（ステップＳ１２１１）。
【０２５４】
なお、本実施の形態ではResource List Fileのハッシュ値を直接署名データに含ませて署名しているがあくまでも例であり、Resource List Fileからリンクを張った別の署名用ファイルを用意し、そのファイルにResource List Fileのハッシュ値とその他安全性を高めるためのデータ（例えばResource List Fileに記述したアプリケーションを構成する各ファイルのハッシュ値をさらに一方向関数に通して得られたハッシュ値の一覧など）を用意し、それに署名する仕組みをとってもよい。
【０２５５】
以上、Resource List Fileの妥当性検証方法について図４２を用いて述べたが、実際にHTMLおよびスクリプトによるアプリケーションを実行する際はさらにアプリケーションを構成する各ファイルについて図５２に示す方法で妥当性を検証する必要がある。
【０２５６】
以下、図５２を用いて本実施の形態におけるアプリケーションファイルの妥当性検証方法について述べる。
【０２５７】
まずResource List Fileの妥当性検証を完了しておく（ステップＳ１３０１）。Toppageが実行されたり、リンクファイル読込などでアプリケーションを構成するファイルが読み込まれると（ステップＳ１３０２）、ステップＳ１３０２で読み込まれたファイルのファイル名がResource List Fileに記載され、かつResource List Fileに当該ファイルのハッシュ値が記載されているかどうかを確認する（ステップＳ１３０３）。読み込んだファイルのファイル名がResource List Fileに記載し、かつハッシュ値が記載されている場合（ステップＳ１３０４のyes）はステップＳ１３０５に進み、記載されていなければ（ステップＳ１３０４のno）ステップＳ１３０９へ進む。ステップＳ１３０２で読み込まれたファイルのファイル名がResource List Fileに存在しない場合、Resource List File上のToppageを示す情報や、リンク元のHTML Documentが改竄されている可能性がある。また、ハッシュ値が存在しない場合は、制作者であるStudioが当該ファイル（HTML Document）の認証が必要ないとみなしたこととなる。
【０２５８】
次にステップＳ１３０５において、ステップＳ１３０２にて読み込んだファイルのハッシュ値を計算する。このときResource List Fileに指定されている形式でハッシュ値を計算する。例えばResource List Fileが図４８に示す形式であった場合、<toppage><linkfile>要素においてsha-digest属性が指定されている場合はSHA-1にてハッシュ値を計算し、md5-digest属性が指定されている場合はMD5にてハッシュ値を計算し、二つとも指定されている場合はSHA-1とMD5の二つのハッシュ値を計算するものとする。Resource List Fileが図５０に示す形式であった場合は各FileのInformationに計算すべきハッシュ形式が記載されている。
【０２５９】
次に、ステップＳ１３０５において計算したハッシュ値と、Resource List Fileに記載された当該ファイルのハッシュ値とを比較する（ステップＳ１３０６）。ステップＳ１３０５で計算したハッシュ値とResource List Fileに記載された当該ファイルのハッシュ値が等しければ（ステップＳ１３０７のyes）、読み込まれたファイルの妥当性が検証されたことになり、当該ファイルは制作者であるSTUDIOに認証され、悪意のある第三者に改竄または偽造されていないファイルであることが確認されたことになる（ステップＳ１３０８）。
【０２６０】
一方、ステップＳ１３０５で計算したハッシュ値とResource List Fileに記載された当該ファイルのハッシュ値が等しくなければ（ステップＳ１３０７のno）、読み込まれたファイルは悪意のある第三者に偽造、または改竄された可能性があることになる（ステップＳ１３０９）。
【０２６１】
図５１で示した手順でResource List Fileの偽造・改竄を検出した場合や図５２で示した手順でアプリケーションファイルの偽造・改竄を検出した場合は、当該アプリケーションの実行を拒否しても良いし、プレーヤや保護すべきコンテンツへの影響がない最小限の機能のみ実行できるように制限してアプリケーションを実行しても良い。また、アプリケーション構成ファイル以外のBD-ROMへのアクセスを拒否したり制限したりしても良いし、プレーヤが備えるHDDやフラッシュメモリなどのローカルストレージへのアクセスを拒否したり制限したりしてもよい。また、図５２のステップＳ１３０４においてResource List Fileに当該ファイルのファイル名が存在しない場合、制作者であるＳｔｕｄｉｏが当該ファイルの認証を必要としないと見なしていることを示すため、プレーヤや保護すべきコンテンツへの影響がない最小限の機能のみ実行できるように制限してアプリケーションを実行しても良い。また、アプリケーション構成ファイル以外のBD-ROMへのアクセスを拒否したり制限したりしても良いし、プレーヤが備えるHDDやフラッシュメモリなどのローカルストレージへのアクセスを拒否したり制限したりしてもよい。
【０２６２】
なお、アプリケーションファイルの妥当性検証は、プレーヤがResource List Fileを読み込んでアプリケーションの妥当性検証が完了した直後に、Resource List Fileに記載されているアプリケーションを構成する全てのファイルに対して行っても良いし、アプリケーションを実行するにあたって必要になったファイルをその都度検証していく方法でも良い。この場合、前記Resource List Fileの妥当性検証が完了した後は、Toppageのみに対してアプリケーションファイルの妥当性検証が行われ、以降、Toppageからリンクを張られるなどしてアプリケーションを実行する上で必要となったファイルに対して逐次妥当性の検証が行われる。
【０２６３】
また、アプリケーション及びその構成ファイルの妥当性を検証出来なかった場合、単にアプリケーションの実行を禁止するだけでなく、当該アプリケーションが記録されたBD-ROM Disc自体の実行を禁止しても良い。そのほかにも、アプリケーション及びその構成ファイルの妥当性を検証出来なかった場合に、システムに悪影響を及ぼしかねない機能の実行や保護すべきコンテンツへのアクセスを禁止し、実行させるという対策をとっても良い。
【０２６４】
（実施例４）
次に本発明の第４の実施の形態について説明する。
第４の実施の形態は、ＢＤ−ＲＯＭにおいて、ネットワーク上のアプリケーションの妥当性を検証し、最適な実行権限をもって実行されることを保証するための環境を導入することに関する内容である。基本的には第１の実施例と第２の実施例と第３の実施例とに基づく内容であり、拡張または異なる部分を中心に説明する。
【０２６５】
（Ｄｉｓｃ上のアプリケーション認証）
インターネット上のコンテンツサーバに配置されたHTMLおよびスクリプトによるアプリケーションをBD-ROM Disc上のアプリケーションと同様に実行可能とした場合、ネットワーク上を流れるアプリケーションが改竄されたり、悪意のあるサーバに接続したりコンテンツサーバが詐称されたりすることでユーザが悪意のあるアプリケーションを実行してしまう可能性がある。このような悪意のある第三者によって偽造または改竄されたプログラムをプレーヤで実行した場合、プレーヤのシステムが破壊されたり、正規の情報記録媒体に記録された映像データが盗まれたり改竄されるといった深刻な問題が発生する可能性がある。
【０２６６】
しかしながら、既存の技術ではBD-ROM Disc上のアプリケーションと同様にインターネット上のコンテンツサーバに配置されたHTML およびスクリプトによるアプリケーションを認証する仕組みがなかった。
【０２６７】
したがってこの問題を解決するため、例えば、前述の方法で認証されたBD-ROM Disc上のアプリケーションからアクセスしたインターネット上のアプリケーションは同様に信頼するという方法がある。しかしこれは悪意のあるサーバへのアクセスを回避できるだけである。したがって、そのほかの方法としてインターネット上のコンテンツサーバに配置されたHTMLおよびスクリプトによるアプリケーションにアクセスする場合にHTTPSを用いる方法がある。これにより、コンテンツサーバの詐称や受信し実行するアプリケーションの構成ファイルの偽造・改竄を防ぐことができる。
【０２６８】
しかしながらHTTPSの処理は処理負荷が高く、時間も掛かるため、認証の必要なコンテンツサーバ上のアプリケーションへのアクセスに常にHTTPSを用いると、アプリケーション全体のパフォーマンスが落ちてしまうという問題があった。
【０２６９】
そこで本実施の形態では、インターネット上のコンテンツサーバに配置されたHTML およびスクリプトによるアプリケーションを負荷が軽く、かつ安全に認証出来る仕組みを提供する。
【０２７０】
（Network Resource List）
以下、本実施の形態におけるコンテンツサーバ上のアプリケーションの認証方法の概要を図５３を用いて説明する。
【０２７１】
まずBDプレーヤは認証の必要なアプリケーションが格納されているコンテンツサーバから、Network Resource List Fileをダウンロードする（図５３の（１））。Network Resource Listのデータ形式については後述する。なお、Network Resource Listは当該タイトルに関連づけられるものであり、Index TableやIndex Tableから関連づけられたタイトル定義、当該タイトルのCARファイル、CARファイル中のResource List Fileなどのいずれかに位置情報が記述されているものとする。また、Network Resource Listは各タイトルにおいて複数していされても良い。なお、BDプレーヤは当該タイトルの開始時にNetwork Resource Listをダウンロードしてもよいし、実際にネットワーク上のリンクファイルが必要になった段階でダウンロードしてもよい。また、一度ダウンロードしたNetwork Resource Listをバッファにキャッシュしておいても良いが、例えばダウンロードにHTTPを用いる場合、HTTP HEADメソッドなどでNetwork Resource Listの更新日時を取得し、常に最新のNetwork Resource Listを確認してもよい。
【０２７２】
次にBDプレーヤは（１）でダウンロードしたNetwork Resource Listの妥当性を確認する（図５３の（２））。詳しくは図５６と図５７を用いて後述するが、妥当性の検証方法としてはHTTPSを使う方法と署名を使う方法とがある。
【０２７３】
次にBDプレーヤはタイトル実行において実際に必要となったリンクファイルをダウンロードする（図５３の（３））。この際、事前にリンクファイルのエントリが（１）でダウンロードしたNetwork Resource Listに存在することを確認しておく。
【０２７４】
次にBDプレーヤは（３）でダウンロードしたリンクファイルのハッシュ値を計算する（図５３の（４））。
【０２７５】
次にBDプレーヤは（４）で計算したハッシュ値と、（１）でダウンロードしたNetwork Resource Listに記載された当該リンクファイルのハッシュ値とが等しいかどうかを確認する（図５３の（５））。これが等しい場合、ダウンロードしたリンクファイルはコンテンツサーバが公開している正規のリンクファイルであり、ダウンロード中などに改竄されていないことを確認出来る。
【０２７６】
以上、本発明におけるコンテンツサーバ上のアプリケーションの認証方法の概要を述べた。
【０２７７】
なお、コンテンツサーバにおいて、BDプレーヤが正規のプレーヤであるか、例えばコンテンツサーバにアクセス可能なDiscを実行しているのかを判別したいというニーズも存在する。この場合、例えば図５３の（１）や図５３の（３）などでNetwork Resource Listやリンクファイルをダウンロードする際に、クライアント認証を有効としたHTTPSコネクションを必須としたり、HTTPにてNetwork Resource Listをダウンロードする際に例えばCARファイルに特別に記録されたIDとPasswordなどDiscにアクセスできなければ知り得ない情報をURLエンコードした上でHTTP GET要求を投げる方法などがある。またこの際、例えば図５３の（１）でBDプレーヤがNetwork Resource Listをダウンロードしに来た際にクライアント認証し、その際のBDプレーヤのIPアドレスを記録し、以降のリンクファイルダウンロードは記録しておいたIPアドレスをもつBDプレーヤにのみ許可することで、HTTPSやURLエンコードなどによるクライアント認証の回数を軽減することができる。
【０２７８】
図５４に本実施の形態によるコンテンツサーバ上のアプリケーションの認証方法を導入した場合のXML形式のNetwork Resource Listの例を示す。図５４に示すようにXML形式によるNetwork Resource Listはxml宣言と<NetworkResource>要素、そして<NetworkResource>要素の子要素である<linkfile要素と<signature>要素からなる。
【０２７９】
<NetworkResource>要素はbase属性を持ち、当該NetworkResourceに記載されたリンクファイルを格納しているコンテンツサーバとリンクファイルの格納位置（Base-URL）がURL形式で記述されている。<linkfile>要素は、当該タイトルにおいて認証したいコンテンツサーバ上のリンクファイルが記述されるもので、src属性にリンクファイルのURLが記述され、sha-digest属性またはmd5-digest属性に当該リンクファイルのハッシュ値がSHA-1形式またはMD5形式で記述される。<signature>要素はNetwork Resource Listの妥当性をNetwork Resource Listに対する署名により検証する際に用いるものであり、src属性にNetwork Resource Listの署名データのURLが記述され、sig-type属性に署名データの形式が記述される。なおNetwork Resource Listの妥当性をHTTPSで検証する場合や、Network Resource Listの署名データに関する情報がNetwork Resource List以外の、例えば当該タイトルのCARなどに記述される場合は<signature>要素は不要であり記述されない。
【０２８０】
次に図５５に本実施の形態によるコンテンツサーバ上のアプリケーションの認証方法を導入した場合のバイナリ形式のNetwork Resource Listの例を示す。
【０２８１】
＜Network Resource List File＞
バイナリー形式のNetwork Resource List fileは、Ｂａｓｅ  ＩｎｆｏとＢａｓｅ  Ｄｉｒｅｃｔｏｒｙから構成される。Ｂａｓｅ  Ｉｎｆｏは、当該Network Resource Listに記載されているリンクファイルが格納されているコンテンツサーバの位置情報やリンクファイルがコンテンツサーバ上に配置されるルートディレクトリ情報などNetwork Resource List File全般に関わる情報が記載される。
【０２８２】
＜Ｂａｓｅ  Ｄｉｒｅｃｔｏｒｙ＞
Ｂａｓｅ  Ｄｉｒｅｃｔｏｒｙは、コンテンツサーバ上に格納されているリンクファイルの配置位置がディレクトリ構造情報として記載されており、Ｉｎｆｏｒｍａｔｉｏｎ、Ｎｕｍｂｅｒと、Base Infoに記載されているルートディレクトリをトップディレクトリとして、その１段下に配置されるＤｉｒｅｃｔｏｒｙ、Ｆｉｌｅから構成される。ＤｉｒｅｃｔｏｒｙとＦｉｌｅの合計数は、Ｎｕｍｂｅｒに記載された数となる。Ｉｎｆｏｒｍａｔｉｏｎには、Ｂａｓｅ  Ｄｉｒｅｃｔｏｒｙに関する情報が記載される。Network Resource Listの妥当性をNetwork Resource Listに対する署名により検証する場合は、Network Resource Listへの署名データの配置状態がSignature Fileとして最初に記録されており、属性情報が記載されているInformationと署名データの名前が記載されている。
【０２８３】
＜Ｄｉｒｅｃｔｏｒｙ＞
Ｄｉｒｅｃｔｏｒｙは、Ｉｎｆｏｒｍａｔｉｏｎ、Ｎｕｍｂｅｒと、本Ｄｉｒｅｃｔｏｒｙの１段下に配置されるＤｉｒｅｃｔｏｒｙ、Ｆｉｌｅから構成される。ＤｉｒｅｃｔｏｒｙとＦｉｌｅの合計数は、Ｎｕｍｂｅｒに記載された数となる。Ｉｎｆｏｒｍａｔｉｏｎには、Ｄｉｒｅｃｔｏｒｙの名前や本Ｄｉｒｅｃｔｏｒｙの属性情報が記載される。さらに配下に配置されたＤｉｒｅｃｔｏｒｙは、本Ｄｉｒｅｃｔｏｒｙと同じ構成となる。
【０２８４】
＜Ｆｉｌｅ＞
Ｆｉｌｅは、Ｉｎｆｏｒｍａｔｉｏｎ、Ｎａｍｅ、Hash  Valueから構成される。Ｉｎｆｏｒｍａｔｉｏｎには、当該リンクファイルの属性情報が記載される。Ｎａｍｅはリンクファイルの名前が記載されている。Hash Valeには当該リンクファイルのハッシュ値が記載されている。
【０２８５】
以下、Network Resource Listの妥当性検証に署名を用いた場合の検証方法について、図５６を用いて説明する。
【０２８６】
BDプレーヤは当該タイトルにおいてインターネット上のコンテンツサーバに配置されたリンクファイルが実際に必要になりネットワーク接続を開始した時点またはそれより前に（ステップＳ１４０１）、本処理を行う。
【０２８７】
まず、ＢＤプレーヤはIndexTableに関連づけられたタイトル定義やCARファイル中のResource List Fileなどで指定された当該コンテンツサーバのNetwork Resource List Fileの位置情報（URL）に基づき、Network Resource Listをダウンロードする（ステップＳ１４０２）。Network Resource List Fileは例として図５４または図５５を用いて前述した形式をとるものとする。なお、この際必要に応じてNetwork Resource List File に記載されたコンテンツサーバの位置情報がダウンロード元のコンテンツサーバのものと同一であることを確認しておく。
【０２８８】
次にBDプレーヤは、Network Resource ListまたはIndexTableに関連づけられたタイトル定義、CARファイル中のResource List Fileなどで指定された、当該Network Resource List Fileの署名データの位置情報（URL）に基づき、Network Resource Listの署名データをダウンロードする（ステップＳ１４０３）。署名データは例として図４１を用いて前述した形式をとるものとし、署名の対象となるNetwork Resource List Fileのハッシュ値と、その署名、署名に用いたスタジオの公開鍵証明書を含む。
【０２８９】
次にプレーヤは署名データに含まれるスタジオの公開鍵証明書を取り出す（ステップＳ１４０４）。この公開鍵証明書は一般的な公開鍵証明書であり、スタジオの公開鍵と、その公開鍵に対する認証局による署名、認証局による署名を照合するために用いる認証局の公開鍵証明書のチェーンが含まれる。プレーヤは取り出したスタジオの公開鍵証明書からスタジオの公開鍵を取り出し、署名データから取り出したResource List Fileのハッシュ値に対する署名をステップＳ１２０４で取り出した公開鍵を用いて復号化する（ステップＳ１４０５）。次に、署名データからNetwork Resource List Fileのハッシュ値を取り出して一方向関数に入力してハッシュ値を計算する（ステップＳ１４０６）。一方向関数の例としては例えばSHA-1やMD5などがある。
【０２９０】
次に、ステップＳ１４０５で復号化して得た復号化データと、ステップＳ１４０６で計算して得たハッシュ値とを比較する（ステップＳ１４０７）。
【０２９１】
復号化データとハッシュ値が等しい場合は、署名データが正しければNetwork Resource List Fileが妥当であって偽造または改竄されていないことが確認されたこととなり、ステップＳ１４０８に進む。復号化データとハッシュ値が等しくない場合は、Network Resource List Fileか署名データが改竄または偽造されたことが考えられ、ステップＳ１４１１に進む。
【０２９２】
次にステップＳ１４０８において、署名データに含まれるスタジオの公開鍵証明書の妥当性を検証していく。スタジオの公開鍵証明書にはスタジオの公開鍵と公開鍵に対する認証局による署名と署名した認証局の公開鍵証明書が含まれており、スタジオの公開鍵証明書の中に含まれる公開鍵の署名の妥当性をスタジオの公開鍵証明書の中に含まれる認証局の公開鍵証明書を用いて確認（図５６のステップＳ１４０４からステップＳ１４０７までと同様の手順）する。署名した認証局の公開鍵証明書にもさらに当該認証局の公開鍵を署名した親となる認証局の公開鍵証明書が含まれており、チェーン状になっている。これらの認証局の公開鍵証明書のチェーンを先ほどと同様の手順で妥当性を確認していくと最終的にはルートとなる認証局の公開鍵証明書が得られる。ルート認証局の公開鍵証明書が正規のものであるかどうかの確認方法としては、BDプレーヤにルート認証局の公開鍵証明書を持たせそれと比較する方法でもよいし、ＢＤ−ＲＯＭ Ｄｉｓｃに安全な方法で記録しておいてそれと比較する方法でも良い。
【０２９３】
最終的に得られたルート認証局の公開鍵証明書が正規のものであれば最終的にスタジオの公開鍵証明書が妥当であることが確認され（ステップＳ１４０９のYes）、ステップＳ１４１０に進み、最終的に当該コンテンツサーバのＮｅｔｗｏｒｋ Ｒｅｓｏｕｒｃｅ Ｌｉｓｔ Ｆｉｌｅが偽造・改竄されておらず妥当であることが検証される（ステップＳ１４１０）。スタジオの公開鍵証明書が妥当でなければステップＳ１４１１に進み、Network Resource List Fileが偽造または改竄されている可能性があることを検出する（ステップＳ１４１１）。
【０２９４】
次に、Network Resource Listの妥当性検証にHTTPSを用いた場合の検証方法について、図５７を用いて説明する。
【０２９５】
BDプレーヤは当該タイトルにおいてインターネット上のコンテンツサーバに配置されたリンクファイルが実際に必要になりネットワーク接続を開始した時点またはそれより前に（ステップＳ１５０１）、本処理を行う。
【０２９６】
まず、ＢＤプレーヤはIndexTableに関連づけられたタイトル定義やCARファイル中のResource List Fileなどで指定された当該コンテンツサーバとの間にHTTPSコネクションを確立する（ステップＳ１５０２）。ＨＴＴＰＳ確立に必要な認証局の公開鍵証明書はＢＤプレーヤにあらかじめ持たせておく方法でも良いし、ＢＤ−ＲＯＭ Ｄｉｓｃに安全な方法で記録しておいてそれを用いる方法でも良い。また、前述したように必要に応じてＨＴＴＰＳによるコンテンツサーバのサーバ認証だけでなくＢＤプレーヤのクライアント認証を行っても良い。
【０２９７】
ＨＴＴＰＳコネクションの確立に成功すると（ステップＳ１５０３のＹｅｓ）、ステップＳ１５０４に進む。ＨＴＴＰＳコネクションの確立に失敗した場合（ステップＳ１５０３のＮｏ）、Network Resource List Fileを安全に取得出来ないことになり、以後のリンクファイルのダウンロードにおいて偽造・改竄が発生してもそれを検知することができなくなる（ステップＳ１５０６）。したがって、以後、当該コンテンツサーバ上のリンクファイルによるアプリケーションの実行を禁止しても良いし、システムに悪影響を及ぼしかねない機能の実行や保護すべきコンテンツへのアクセスを禁止した上で実行しても良い。
【０２９８】
次にＢＤプレーヤはIndexTableに関連づけられたタイトル定義やCARファイル中のResource List Fileなどで指定された当該コンテンツサーバのNetwork Resource List Fileの位置情報（URL）に基づき、前記ステップＳ１５０２で確立したＨＴＴＰＳコネクションを用いてNetwork Resource Listをダウンロードする（ステップＳ１５０４）。Network Resource List Fileは例として図５４または図５５を用いて前述した形式をとるものとする。なお、この際必要に応じてNetwork Resource List File に記載されたコンテンツサーバの位置情報がダウンロード元のコンテンツサーバのものと同一であることを確認しておく。
【０２９９】
上記までの処理によりＢＤプレーヤは当該コンテンツサーバのNetwork Resource List Fileを偽造や改竄無く入手することができる（ステップＳ１５０５）。
【０３００】
以下、図５８を用いて本実施の形態における、コンテンツサーバ上のアプリケーションを構成するリンクファイルの妥当性検証方法について述べる。
【０３０１】
まず図５６または図５７を用いて述べた方法でNetwork Resource List Fileの妥当性の検証を完了しておく。その上でInternet上のコンテンツサーバに配置されたアプリケーションを構成するリンクファイルへのアクセスが発生すると（ステップＳ１６０１）、まずアクセスするリンクファイルのファイル名とそのハッシュ値がNetwork Resource List Fileに存在するかどうかを確認する（ステップＳ１６０２）。
【０３０２】
アクセスするリンクファイルのファイル名とそのハッシュ値がNetwork Resource List Fileに存在する場合（ステップＳ１６０３のyes）はステップＳ１６０４に進み、記載されていなければ（ステップＳ１６０３のno）ステップＳ１６０９へ進む。この場合、リンク元のHTML Documentが改竄されている可能性がある。また、ハッシュ値が存在しない場合は制作者であるStudioが当該ファイル（HTML Document）の認証が必要ないとみなしたこととなる。
【０３０３】
次にステップＳ１６０４において、インターネット上のコンテンツサーバに配置されたリンクファイルをダウンロードする。
【０３０４】
次にステップＳ１６０４にてダウンロードしたリンクファイルのハッシュ値を計算する（ステップＳ１６０５）。このときNetwork Resource List Fileに指定されている形式でハッシュ値を計算する。例えばNetwork Resource List Fileが図５４に示すXML形式であった場合、<linkfile>要素においてsha-digest属性が指定されている場合はSHA-1にてハッシュ値を計算し、md5-digest属性が指定されている場合はMD5にてハッシュ値を計算し、二つとも指定されている場合はSHA-1とMD5の二つのハッシュ値を計算するものとする。Network Resource List Fileが図５５に示す形式であった場合は各FileのInformationに計算すべきハッシュ形式が記載されている。
【０３０５】
次に、ステップＳ１６０５において計算したハッシュ値と、Network Resource List Fileに記載された当該リンクファイルのハッシュ値とを比較する（ステップＳ１６０６）。ステップＳ１６０５で計算したハッシュ値とNetwork Resource List Fileに記載された当該ファイルのハッシュ値が等しければ（ステップＳ１６０７のyes）、ダウンロードしたリンクファイルの妥当性が検証されたことになり、当該リンクファイルは制作者であるSTUDIOに認証され、悪意のある第三者に改竄または偽造されていないリンクファイルであることが確認されたことになる（ステップＳ１６０８）。
【０３０６】
一方、ステップＳ１６０５で計算したハッシュ値とNetwork Resource List Fileに記載された当該リンクファイルのハッシュ値が等しくなければ（ステップＳ１６０７のno）、ダウンロードしたリンクファイルは悪意のある第三者に偽造、または改竄された可能性があることになる（ステップＳ１６０９）。
【０３０７】
以上、本実施の形態によるネットワーク上のアプリケーションの妥当性検証方法について述べたが、本検証方法により、BDプレーヤはインターネット上のコンテンツサーバに配置されたアプリケーションを安全にダウンロードし、妥当性を検証した上で実行することができる。さらに妥当性の検証をそれほど処理負荷をかけずに実施することができる。
【産業上の利用可能性】
【０３０８】
本発明を利用することにより、映像データとＨＴＭＬおよびスクリプトによるＡＶ再生制御を導入することが可能となる。特に、映像コンテンツの制作に携わる映画産業・民生機器産業において利用される可能性をもつ。
【図面の簡単な説明】
【０３０９】
【図１】ＤＶＤの構成図
【図２】ハイライトの構成図
【図３】ＤＶＤでの多重化の例を示す図
【図４】ＢＤ−ＲＯＭのデータ階層図
【図５】ＢＤ−ＲＯＭ上の論理空間の構成図
【図６】ＢＤ−ＲＯＭプレーヤの概要ブロック図
【図７】ＢＤ−ＲＯＭプレーヤの構成ブロック図
【図８】ＢＤ−ＲＯＭのアプリケーション空間の説明図
【図９】ＭＰＥＧストリーム（ＶＯＢ）の構成図
【図１０】パックの構成図
【図１１】ＡＶストリームとプレーヤ構成の関係を説明する図
【図１２】トラックバッファへのＡＶデータ連続供給モデル図
【図１３】ＶＯＢ情報ファイル構成図
【図１４】タイムマップの説明図
【図１５】タイムマップを使ったアドレス情報取得方法説明図
【図１６】プレイリストファイルの構成図
【図１７】プレイリストに対応するプログラムファイルの構成図
【図１８】ＢＤディスク全体管理情報ファイルの構成図
【図１９】グローバルイベントハンドラを記録するファイルの構成図
【図２０】タイムイベントの例を説明する図
【図２１】ユーザイベントの例を説明する図
【図２２】グローバルイベントハンドラの例を説明する図
【図２３】仮想マシンの構成図
【図２４】プレーヤ変数テーブルの図
【図２５】イベントハンドラ（タイムイベント）の例を示す図
【図２６】イベントハンドラ（ユーザイベント）の例を示す図
【図２７】プレーヤの基本処理のフローチャート
【図２８】プレイリスト再生処理のフローチャート
【図２９】イベント処理のフローチャート
【図３０】字幕処理のフローチャート
【図３１】モジュール構成や制御の流れを説明する図
【図３２】Ｉｎｄｅｘ  ＴａｂｌｅとＨＴＭＬファイルの関係を説明する図
【図３３】ボタンが表示されるＨＴＭＬファイルの例
【図３４】データのライフサイクルを説明する説明図
【図３５】データのライフサイクルを説明するタイミングチャート
【図３６】データを１つにまとめる方法を説明する図
【図３７】データを１つにまとめる方法を説明する図
【図３８】Ｔｉｔｌｅ起動と文書遷移におけるの処理のフローチャート
【図３９】ＸＭＬ形式のＲｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅの例を示す図
【図４０】バイナリー形式のＲｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅ構造図
【図４１】ディスク上のＨＴＭＬとＷｅｂ上のＨＴＭＬの関係を説明する図
【図４２】バイナリー形式のＲｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅ構造図
【図４３】文書遷移が発生した場合の処理のフローチャート
【図４４】エラーが発生した場合のエラー提示画面を説明する図
【図４５】エラーが発生した場合の処理のフローチャート
【図４６】偽造・改竄されたアプリケーションについて説明する図
【図４７】アプリケーション認証の概要を説明する図
【図４８】アプリケーション認証機能を備えたXML形式のResource ListFileの例を示す図
【図４９】署名データの構成図
【図５０】アプリケーション認証機能を備えたバイナリ形式のResource ListFileの例を示す図
【図５１】Resource List Fileの妥当性検証処理のフローチャート
【図５２】アプリケーション構成ファイルの妥当性検証処理のフローチャート
【図５３】コンテンツサーバ上のアプリケーション認証の概要を説明する図
【図５４】XML形式のNetwork Resource List Fileの例を示す図
【図５５】バイナリ形式のNetwork Resource List Fileの例を示す図
【図５６】署名によるResource List Fileの妥当性検証処理のフローチャート
【図５７】HTTPSによるResource List Fileの妥当性検証処理のフローチャート
【図５８】リンクファイルの妥当性検証処理のフローチャート
【符号の説明】
【０３１０】
２０１  ＢＤディスク
２０２  光ピックアップ
２０３  プログラム記録メモリ
２０４  管理情報記録メモリ
２０５  ＡＶ記録メモリ
２０６  プログラム処理部
２０７  管理情報処理部
２０８  プレゼンテーション処理部
２０９  イメージプレーン
２１０  ビデオプレーン
２１１  合成処理部
３０１  プログラム記録メモリ
３０２  プログラムプロセッサ
３０３  ＵＯＰマネージャ
３０４  管理情報記録メモリ
３０５  シナリオプロセッサ
３０６  プレゼンテーションコントローラ
３０７  クロック
３０８  イメージメモリ
３０９  トラックバッファ
３１０  デマルチプレクサ
３１１  イメージプロセッサ
３１２  ビデオプロセッサ
３１３  サウンドプロセッサ
３１４  イメージプレーン
３１５  ビデオプレーン
３１６  合成処理部
３１７  ドライブコントローラ
４００  の論理ファイルツリー
４０１  Ｃｏｎｔｅｎｔ  Ａｒｃｈｉｖｅ  Ｆｉｌｅ
４０２  Ｒｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅ
４１０  ＨＴＭＬ  Ｂｒｏｗｓｅｒ
４２０  エラー用ＨＴＭＬファイル
Ｓ１０１  ディスク挿入ステップ
Ｓ１０２  ＢＤ．ＩＮＦＯ読み込みステップ
Ｓ１０３  ＢＤ．ＰＲＯＧ読み込みステップ
Ｓ１０４  ファーストイベント生成ステップ
Ｓ１０５  イベントハンドラ実行ステップ
Ｓ２０１  ＵＯＰ受付ステップ
Ｓ２０２  ＵＯＰイベント生成ステップ
Ｓ２０３  メニューコール判定ステップ
Ｓ２０４  イベント生成ステップ
Ｓ２０５  イベントハンドラ実行ステップ
Ｓ３０１  プレイリスト再生開始ステップ
Ｓ３０２  プレイリスト情報（ＸＸＸ．ＰＬ）読み込みステップ
Ｓ３０３  プレイリストプログラム（ＸＸＸ．ＰＲＯＧ）読み込みステップ
Ｓ３０４  セル再生開始ステップ
Ｓ３０５  ＡＶ再生開始ステップ
Ｓ４０１  ＡＶ再生開始ステップ
Ｓ４０２  ＶＯＢ情報（ＹＹＹ．ＶＯＢＩ）読み込みステップ
Ｓ４０３  ＶＯＢ（ＹＹＹ．ＶＯＢ）読み込みステップ
Ｓ４０４  ＶＯＢ再生開始ステップ
Ｓ４０５  ＶＯＢ再生終了ステップ
Ｓ４０６  次セル存在判定ステップ
Ｓ５０１  プレイリスト再生開始ステップ
Ｓ５０２  プレイリスト再生終了判定ステップ
Ｓ５０３  タイムイベント時刻判定ステップ
Ｓ５０４  イベント生成ステップ
Ｓ５０５  イベントハンドラ実行ステップ
Ｓ６０１  プレイリスト再生開始ステップ
Ｓ６０２  プレイリスト再生終了判定ステップ
Ｓ６０３  ＵＯＰ受付判定ステップ
Ｓ６０４  ＵＯＰイベント生成ステップ
Ｓ６０５  メニューコール判定ステップ
Ｓ６０６  ユーザーイベント有効期間判定ステップ
Ｓ６０７  イベント生成ステップ
Ｓ６０８  イベントハンドラ実行ステップ
Ｓ７０１  プレイリスト再生開始ステップ
Ｓ７０２  プレイリスト再生終了判定ステップ
Ｓ７０３  字幕描画開始判定ステップ
Ｓ７０４  字幕描画ステップ
Ｓ７０５  字幕表示終了判定ステップ
Ｓ７０６  字幕消去ステップ
Ｓ８０１  タイトル起動ステップ
Ｓ８０２  ＣＡＲファイルＰｒｅｌｏａｄステップ
Ｓ８０３  Ｒｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅ読込みステップ
Ｓ８０４  ＨＴＭＬファイルの読込みステップ
Ｓ８０５  画面の提示ステップ
Ｓ９０１  文書遷移操作ステップ
Ｓ９０２  タイトル判断ステップ
Ｓ９０３  Ｒｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅ読込みステップ
Ｓ９０４  ＨＴＭＬファイルの読込みステップ
Ｓ９０５  画面の提示ステップ
Ｓ１００１  文書遷移操作ステップ
Ｓ１００２  タイトル判断ステップ
Ｓ１００３  Ｒｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅ読込みステップ
Ｓ１００４  ＨＴＭＬファイルの読込みステップ
Ｓ１００５  画面の提示ステップ
Ｓ１１０１  エラー発生ステップ
Ｓ１１０２  Ｒｅｓｏｕｒｃｅ  Ｌｉｓｔ  Ｆｉｌｅ読込みステップ
Ｓ１１０３  ＨＴＭＬファイルの読込みステップ
Ｓ１１０４  画面の提示ステップ
Ｓ１２０１  タイトル開始ステップ
Ｓ１２０２  Resource List File読込ステップ
Ｓ１２０３  署名データ読込ステップ
Ｓ１２０４  公開鍵抽出ステップ
Ｓ１２０５  署名復号化ステップ
Ｓ１２０６  署名検証用ハッシュ値計算ステップ
Ｓ１２０７  署名判定ステップ
Ｓ１２０８  公開鍵証明書照合ステップ
Ｓ１２０９  公開鍵証明書判定ステップ
Ｓ１２１０  アプリケーション妥当性検証完了ステップ
Ｓ１２１１  アプリケーションの偽造改竄検出ステップ
Ｓ１３０１  アプリケーション妥当性検証完了ステップ
Ｓ１３０２  アプリケーション構成ファイル読込ステップ
Ｓ１３０３  構成ファイルの存在確認ステップ
Ｓ１３０４  存在判定ステップ
Ｓ１３０５  構成Fileハッシュ値計算ステップ
Ｓ１３０６  ハッシュ値比較ステップ
Ｓ１３０７  ハッシュ値判定ステップ
Ｓ１３０８  アプリケーション構成ファイル妥当性検証完了ステップ
Ｓ１３０９  アプリケーションデータの偽造改竄検出ステップ
Ｓ１４０１  ネットワーク接続開始ステップ
Ｓ１４０２  Network Resource List Fileダウンロードステップ
Ｓ１４０３  署名データダウンロードステップ
Ｓ１４０４  公開鍵抽出ステップ
Ｓ１４０５  署名復号化ステップ
Ｓ１４０６  署名検証用ハッシュ値計算ステップ
Ｓ１４０７  署名判定ステップ
Ｓ１４０８  公開鍵証明書照合ステップ
Ｓ１４０９  公開鍵証明書判定ステップ
Ｓ１４１０  Network Resource List File妥当性検証完了ステップ
Ｓ１４１１  Network Resource List Fileの偽造改竄検出ステップ
Ｓ１５０１  ネットワーク接続開始ステップ
Ｓ１５０２  HTTPSコネクション確立ステップ
Ｓ１５０３  HTTPS確立確認ステップ
Ｓ１５０４  Network Resource List Fileダウンロードステップ
Ｓ１５０５  Network Resource List File妥当性検証完了ステップ
Ｓ１５０６  認証失敗ステップ
Ｓ１６０１  リンクファイルアクセス発生ステップ
Ｓ１６０２  リンクファイル存在確認ステップ
Ｓ１６０３  存在判定ステップ
Ｓ１６０４  リンクファイルダウンロードステップ
Ｓ１６０５  リンクファイルハッシュ値計算ステップ
Ｓ１６０６  ハッシュ値比較ステップ
Ｓ１６０７  ハッシュ値判定ステップ
Ｓ１６０８  リンクファイルの妥当性検証完了ステップ
Ｓ１６０９  リンクファイルの妥当性検証失敗ステップ
【図１】
2007018365.tif 000003
【図２】
2007018365.tif 000004
【図３】
2007018365.tif 000005
【図４】
2007018365.tif 000006
【図５】
2007018365.tif 000007
【図６】
2007018365.tif 000008
【図７】
2007018365.tif 000009
【図８】
2007018365.tif 000010
【図９】
2007018365.tif 000011
【図１０】
2007018365.tif 000012
【図１１】
2007018365.tif 000013
【図１２】
2007018365.tif 000014
【図１３】
2007018365.tif 000015
【図１４】
2007018365.tif 000016
【図１５】
2007018365.tif 000017
【図１６】
2007018365.tif 000018
【図１７】
2007018365.tif 000019
【図１８】
2007018365.tif 000020
【図１９】
2007018365.tif 000021
【図２０】
2007018365.tif 000022
【図２１】
2007018365.tif 000023
【図２２】
2007018365.tif 000024
【図２３】
2007018365.tif 000025
【図２４】
2007018365.tif 000026
【図２５】
2007018365.tif 000027
【図２６】
2007018365.tif 000028
【図２７】
2007018365.tif 000029
【図２８】
2007018365.tif 000030
【図２９】
2007018365.tif 000031
【図３０】
2007018365.tif 000032
【図３１】
2007018365.tif 000033
【図３２】
2007018365.tif 000034
【図３３】
2007018365.tif 000035
【図３４】
2007018365.tif 000036
【図３５】
2007018365.tif 000037
【図３６】
2007018365.tif 000038
【図３７】
2007018365.tif 000039
【図３８】
2007018365.tif 000040
【図３９】
2007018365.tif 000041
【図４０】
2007018365.tif 000042
【図４１】
2007018365.tif 000043
【図４２】
2007018365.tif 000044
【図４３】
2007018365.tif 000045
【図４４】
2007018365.tif 000046
【図４５】
2007018365.tif 000047
【図４６】
2007018365.tif 000048
【図４７】
2007018365.tif 000049
【図４８】
2007018365.tif 000050
【図４９】
2007018365.tif 000051
【図５０】
2007018365.tif 000052
【図５１】
2007018365.tif 000053
【図５２】
2007018365.tif 000054
【図５３】
2007018365.tif 000055
【図５４】
2007018365.tif 000056
【図５５】
2007018365.tif 000057
【図５６】
2007018365.tif 000058
【図５７】
2007018365.tif 000059
【図５８】
2007018365.tif 000060