(57)【要約】ＢＤ−ＲＯＭ及びＬｏｃａｌ  Ｓｔｏｒａｇｅ１８に記録されている複数のＡＶＣｌｉｐが、１つのストリームシーケンスを構成している場合、Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２は、ストリームシーケンスを構成する一部のＡＶＣｌｉｐが認識できるｅｎａｂｌｅ状態であれば、残りのＡＶＣｌｉｐが認識し得ないｄｉｓａｂｌｅ状態であっても、再生を開始する。Ｖｉｒｔｕａｌ  ＦｉｌｅＳｙｓｔｅｒｍ部３８は、ストリームシーケンスのうち一部のＡＶＣｌｉｐに対する再生処理が係続している間、アプリケーションによるメソッド呼出に従って、残りのＡＶＣｌｉｐの状態を、Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２が認識し得るｅｎａｂｌｅ状態、又は、認識し得ないｄｉｓａｂｌｅ状態に変化させる。【特許請求の範囲】
【請求項１】
ストリームシーケンスを再生する再生装置であって、
再生手段と、
ストリームシーケンスを構成する個々のデジタルストリームが、複数の記録媒体のそれぞれ分かれて存在する場合、各デジタルストリームの状態を、再生手段が認識できる状態、又は、再生手段が認識し得ない状態に設定するパッケージ管理手段と、
アプリケーションを実行して、記録媒体に対するアクセス制御を実行するアプリケーション実行手段とを備え、
前記再生手段は、
ストリームシーケンスを構成する一部のデジタルストリームが認識できる状態であれば、残りのデジタルストリームが認識できない状態であっても、再生を開始し、
前記パッケージ管理手段は、
ストリームシーケンスのうち一部のデジタルストリームに対する再生処理が係続している間、アプリケーション実行手段からの要求に従って、残りのデジタルストリームの状態を、再生手段が認識し得る状態、又は、認識し得ない状態に変化させる、ことを特徴とする再生装置。
【請求項２】
複数の記録媒体には、リードオンリー型の記録媒体と、リライタブル型の記録媒体とがあり、
前記再生手段は、リードオンリー型記録媒体のファイルレイアウトのみを認識できるものであり、
リライタブル型記録媒体に記録されているデジタルストリームは、ファイルに格納された状態で、リライタブル型記録媒体に記録されていて、
前記パッケージ管理手段による認識し得る状態への変化は、
リードオンリー型記録媒体上のファイル管理情報と、リライタブル型記録媒体におけるファイル管理情報とから、仮想的なボリューム管理情報を生成して、再生手段に引き渡すことによりなされ、
前記認識し得ない状態への変化は、
前記仮想的なボリューム管理情報から、リライタブル型記録媒体におけるファイル管理情報を取り去ることでなされる、請求項１記載の再生装置。
【請求項３】
パッケージ管理手段による認識できる状態への変化は更に、
リライタブル型記録媒体において、デジタルストリームを格納したファイルを、リードオンリー属性に変化させる処理を含み、
認識できない状態への変化は更に、
リライタブル型記録媒体において、デジタルストリームを格納したファイルを、リライタブル属性に変化させる処理を含む
ことを特徴とする請求項２記載の再生装置。
【請求項４】
複数の記録媒体には、書き換え可能型の記録媒体があり、
前記アプリケーションによるアクセス制御とは、書き換え可能型記録媒体への書き込み制御であり、
前記パッケージ管理手段により認識できる状態に変化させられるデジタルストリームは、
前記再生処理の係続中に書き込みが完了したデジタルストリームであり、
前記パッケージ管理手段により認識できない状態に変化させられるデジタルストリームは、
書き換え可能型記録媒体に記録されたデジタルストリームであって、再生処理が完了したデジタルストリームである、請求項３記載の再生装置。
【請求項５】
ストリームシーケンスを再生する処理をコンピュータに行わせるプログラムであって、
再生ステップと、
ストリームシーケンスを構成する個々のデジタルストリームが、複数の記録媒体のそれぞれ分かれて存在する場合、各デジタルストリームの状態を、再生ステップが認識できる状態、又は、再生ステップが認識し得ない状態に設定するパッケージ管理ステップと、
アプリケーションを実行して、記録媒体に対するアクセス制御を実行するアプリケーション実行ステップとをコンピュータに実行させ、
前記再生ステップは、
ストリームシーケンスを構成する一部のデジタルストリームが認識できる状態であれば、残りのデジタルストリームが認識できない状態であっても、再生を開始し、
前記パッケージ管理ステップは、
ストリームシーケンスのうち一部のデジタルストリームに対する再生処理が係続している間、アプリケーション実行ステップからの要求に従って、残りのデジタルストリームの状態を、再生ステップが認識し得る状態、又は、認識し得ない状態に変化させる、ことを特徴とするプログラム。
【請求項６】
ストリームシーケンスを再生する再生方法であって、
再生ステップと、
ストリームシーケンスを構成する個々のデジタルストリームが、複数の記録媒体のそれぞれ分かれて存在する場合、各デジタルストリームの状態を、再生ステップが認識できる状態、又は、再生ステップが認識し得ない状態に設定するパッケージ管理ステップと、
アプリケーションを実行して、記録媒体に対するアクセス制御を実行するアプリケーション実行ステップとを含み、
前記再生ステップは、
ストリームシーケンスを構成する一部のデジタルストリームが認識できる状態であれば、残りのデジタルストリームが認識できない状態であっても、再生を開始し、
前記パッケージ管理ステップは、
ストリームシーケンスのうち一部のデジタルストリームに対する再生処理が係続している間、アプリケーション実行ステップからの要求に従って、残りのデジタルストリームの状態を、再生ステップが認識し得る状態、又は、認識し得ない状態に変化させる、ことを特徴とする再生方法。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅの技術分野に属する発明である。
【背景技術】
【０００２】  Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅとは、ＢＤ−ＲＯＭ等のリードオンリー型の記録媒体に記録されているデジタルストリームと、ハードディスク等のリライタブル型の記録媒体に記録されているデジタルストリームとを動的に組み合わせて、仮想的なパッケージを構築することにより、リードオンリー型記録媒体の内容拡張を図る技術である。ここＢＤ−ＲＯＭに記録されているデジタルストリームが、映画作品の本編を構成するものであり、ハードディスクに記録されているデジタルストリームが、映画作品の続編を構成するものである場合、上述したＶｉｒｔｕａｌ  Ｐａｃｋａｇｅを構築することにより、ＢＤ−ＲＯＭ上の本編と、ハードディスク上の続編とを、１つの長編の映画作品として取り扱い、再生に供することができる。【０００３】  尚、Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅについての先行技術としては、以下の特許文献に記載されているものがある。
【特許文献１】特開２００２−３６９１５４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】  ところがＢＤ−ＲＯＭに記録されたデジタルストリームと、ハードディスクに記録されたデジタルストリームとを１つのストリームシーケンスとして再生してゆく場合、ストリームシーケンスを構成するデジタルストリームの中に、不安定な状態のものがふくまれている可能性がある。ここで不安定な状態のデジタルストリームとは、ハードディスクへのダウンロードが未完了であったり、書き込みが不完全であるようなデジタルストリームをいう。不安定な状態のデジタルストリームが含まれているにも拘らず、上述したストリームシーケンスを再生しようとすると、再生手段による再生時点が不安定なストリームに至った途端、再生が乱れたり、再生が途切れてしまうことが有り得る。【０００５】  ここで、再生しようとするストリームが不安定な状態であるか否かを、再生装置内の再生手段（デコーダ等）が正しくチェックすることができれば、かかる再生の乱れや途切れを回避することができる。しかし再生手段は、１／２４秒，１／２９．９４秒というフレーム期間毎に、映像信号を出力するという処理に専念しており、そのようなチェックのための余力は存在しないことが一般的である。そのため上述したような再生の乱れや途切れの発生は避け得ない。その一方、ＢＤ−ＲＯＭ再生装置を製造するような民生機器の産業分野では、映像再生に対して厳しい品質基準が要求されており、デジタルストリームをチェックするような余力が再生手段側にないとしても、上述したような再生の乱れや途切れが、容認されることはありえない。【０００６】  本発明の目的は、不安定な状態のデジタルストリームをチェックするような余力が再生手段側にない場合であっても、ＢＤ−ＲＯＭに記録されたデジタルストリームと、ハードディスクに記録されたデジタルストリームとを１つのストリームシーケンスとして再生してゆく場合の再生の乱れや途切れを防止することができる再生装置を提供することである。
【課題を解決するための手段】
【０００７】  上記目的を達成するため、本発明に係る再生装置は、再生手段と、ストリームシーケンスを構成する個々のデジタルストリームが、複数の記録媒体のそれぞれ分かれて存在する場合、各デジタルストリームの状態を、再生手段が認識できる状態、又は、再生手段が認識し得ない状態に設定するパッケージ管理手段と、アプリケーションを実行して、記録媒体に対するアクセス制御を実行するアプリケーション実行手段とを備え、
前記再生手段は、ストリームシーケンスを構成する一部のデジタルストリームが認識できる状態であれば、残りのデジタルストリームが認識できない状態であっても、再生を開始し、前記パッケージ管理手段は、ストリームシーケンスのうち一部のデジタルストリームに対する再生処理が係続している間、アプリケーション実行手段からの要求に従って、残りのデジタルストリームの状態を、再生手段が認識し得る状態、又は、認識し得ない状態に変化させる、ことを特徴としている。
【発明の効果】
【０００８】  アプリケーションが、デジタルストリームを認識できる状態にするか、認識できない状態にするかを変化させることで、デジタルストリームを再生手段に再生させるか、再生させないかの選択を、実現することができる。デジタルストリームを再生手段に再生させるか、再生させないかの選択権は、記録媒体のアクセスを実現するアプリケーションが掌握するので、アプリケーションが、デジタルストリームが記録媒体に正しく書き込まれたことを確認し得ない場合、そのデジタルストリームを認識できない状態にすれば、そのデジタルストリームはなかったものと取り扱われる。これにより不安定なデジタルストリームを誤って再生することはない。よって、映像の乱れや途切れが出現することはない。【０００９】  ここで複数の記録媒体には、リードオンリー型の記録媒体と、リライタブル型の記録媒体とがあり、前記再生手段は、リードオンリー型記録媒体のファイルレイアウトのみを認識できるものであり、
リライタブル型記録媒体に記録されているデジタルストリームは、ファイルに格納された状態で、リライタブル型記録媒体に記録されていて、
前記パッケージ管理手段による認識し得る状態への変化は、リードオンリー型記録媒体上のファイル管理情報と、リライタブル型記録媒体におけるファイル管理情報とから、仮想的なボリューム管理情報を生成して、再生手段に引き渡すことによりなされ、
前記認識し得ない状態への変化は、前記仮想的なボリューム管理情報から、リライタブル型記録媒体におけるファイル管理情報を取り去ることでなされる。【００１０】  パッケージ管理手段による認識できる状態への変化は更に、リライタブル型記録媒体において、デジタルストリームを格納したファイルを、リードオンリー属性に変化させる処理を含み、認識できない状態への変化は更に、リライタブル型記録媒体において、デジタルストリームを格納したファイルを、リライタブル属性に変化させる処理を含む。
ここで一部のデジタルストリームの再生中に、残りのデジタルストリームを記録媒体にダウンロードするよう、アプリケーションが制御を行い、その一部のデジタルストリームの再生が完了すれば、そのデジタルストリームを認識できる状態に設定することにより、書き込まれたデジタルストリームの再生を、再生手段に行わせることができる。【００１１】  また、残りのデジタルストリームの書き込みが、一部のデジタルストリームの再生期間内に完了しなければ、そのデジタルストリームを認識できない状態に設定することにより、かかるデジタルストリームを、再生手段による再生から除外することができる。デジタルストリームの再生可否の設定を、ダウンロード処理の進捗を連動させることができるので、ストリームシーケンスを構成するデジタルストリームの再生と、ストリームシーケンスを構成するデジタルストリームのダウンロードとをパラレルに実行することができる。ここでＢＤ−ＲＯＭに記録されているデジタルストリームが、映画の本編を構成するものであり、ハードディスクにダウンロードされるデジタルストリームが、映画の予告編である場合、本編デジタルストリームの再生中に、予告編デジタルストリームをダウンロードしておき、本編デジタルストリームの再生が完了すれば、その直後に、予告編デジタルストリームの再生を開始させることができる。
【図面の簡単な説明】
【００１２】
【図１】本発明に係る再生装置の、使用行為についての形態を示す図である。
【図２】ＢＤ−ＲＯＭの内部構成を示す図である。
【図３】ＡＶＣｌｉｐがどのように構成されているかを模式的に示す図である。
【図４】ＰＬ情報の構成を示す図である。
【図５】ＡＶＣｌｉｐ時間軸と、ＰＬ時間軸との関係を示す図である。
【図６】４つのＣｌｉｐ＿Ｉｎｆｏｒｍａｔｉｏｎ＿ｆｉｌｅ＿ｎａｍｅによりなされた一括指定を示す図である。
【図７】ＰＬｍａｒｋ情報の内部構成を示す図である。
【図８】ＰＬｍａｒｋによるチャプター定義を示す図である。
【図９】ＳｕｂＰａｔｈ情報の内部構成を示す図である。
【図１０】ＳｕｂＰｌａｙＩｔｅｍ時間軸上の再生区間定義と、同期指定とを示す図である。
【図１１】（ａ）Ｊａｖａ（登録商標）アーカイブファイルに収められているプログラム、データを示す図である。（ｂ）は、クラスファイルの内部構成を示す図である。
【図１２】本発明に係る再生装置の内部構成を示す図である。
【図１３】（ａ）Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８におけるディレクトリ構造を示す図である。（ｂ）ストリーム格納位置情報ファイルの内部構成を示す図である。
【図１４】ＲＯＭ２４に格納されたソフトウェアと、ハードウェアとからなる部分を、レイア構成に置き換えて描いた図である。
【図１５】Ｊａｖａ（登録商標）仮想マシン３０の内部構成を示す図である。
【図１６】Ｖｉｒｔｕａｌ  ＦｉｌｅＳｙｓｔｅｍ部３８によるＶｉｒｔｕａｌ  Ｐａｃｋａｇｅ情報構築の一例を示す図である。
【図１７】Ｖｉｒｔｕａｌ  ＦｉｌｅＳｙｓｔｅｍ部３８による状態管理の一例を示す図である。
【図１８】状態管理を反映したＶｉｒｔｕａｌ  Ｐａｃｋａｇｅ情報の作成を示す図である。
【図１９】ネットワーク管理モジュール３７によるダウンロードが途上である場合の、Ｖｉｒｔｕａｌ  ＦｉｌｅＳｙｓｔｅｍ部３８によるＶｉｒｔｕａｌ  Ｐａｃｋａｇｅ構築を示す図である。
【図２０】（ａ）ローカルストレージに格納されたＰＬ情報により、どのようなＰｌａｙＬｉｓｔ再生時間軸が定義されるかを示す図である。
【００１３】  （ｂ）Ｐｒｏｇｒｅｓｓｉｖｅ  ＰｌａｙＬｉｓｔ情報の概念を示す図である。【図２１】管理情報変換モジュール３９によるインスタンス生成を示す図である。
【図２２】ＰｌａｙＬｉｓｔオブジェクトにおけるＰｌａｙメソッドの呼び出しを示す図である。
【図２３】ｇｅｔＭｉｓｓｉｎｇＳｔｒｅａｍｓメソッドによる問合せの結果を模式的に示す図である。
【図２４】ｅｎａｂｌｅＣｌｉｐメソッドの呼出を模式的に示す図である。
【図２５】ｄｉｓａｂｌｅＣｌｉｐメソッドの呼出を模式的に示す図である。
【図２６】Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅ構築時の処理を示すフローチャートである。
【図２７】（ａ）ｅｎａｂｌｅＣｌｉｐメソッドの呼出時の処理手順を示すフローチャートである。（ｂ）ｄｉｓａｂｌｅＣｌｉｐメソッドの呼出時の処理手順を示すフローチャートである。
【図２８】Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２による再生手順を示すフローチャートである。
【図２９】アプリケーションの処理手順を示すフローチャートである。
【図３０】（ａ）（ｂ）ネットワーク管理モジュール３７によるダウンロードの進捗と、Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２による再生の進捗とを示す図である。
【図３１】（ａ）（ｂ）ネットワーク管理モジュール３７によるダウンロードの進捗と、Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２による再生の進捗とを示す図である。
【図３２】（ａ）（ｂ）ネットワーク管理モジュール３７によるダウンロードの進捗と、Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２による再生の進捗とを示す図である。
【図３３】ネットワーク管理モジュール３７によるダウンロードの進捗と、Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２による再生の進捗とを示す図である。
【発明を実施するための最良の形態】
【００１４】  （第１実施形態）
以降、本発明に係る記録媒体の実施形態について説明する。先ず始めに、本発明に係る再生装置の実施行為のうち、使用行為についての形態を説明する。図１は、本発明に係る再生装置の、使用行為についての形態を示す図である。図１において、本発明に係る再生装置は、再生装置２００である。この再生装置２００は、リモコン３００、テレビ４００により形成されるホームシアターシステムに、映画作品を供給するという用途に供される。【００１５】  以上が本発明に係る再生装置の使用形態についての説明である。続いて本発明に係る再生装置が再生の対象としている、記録媒体について説明する。本発明に係る再生装置により、再生されるのは、ＢＤ−ＲＯＭである。図２は、ＢＤ−ＲＯＭの内部構成を示す図である。
本図の第４段目にＢＤ−ＲＯＭを示し、第３段目にＢＤ−ＲＯＭ上のトラックを示す。本図のトラックは、ＢＤ−ＲＯＭの内周から外周にかけて螺旋状に形成されているトラックを、横方向に引き伸ばして描画している。このトラックは、リードイン領域と、ボリューム領域と、リードアウト領域とからなる。本図のボリューム領域は、物理層、ファイルシステム層、応用層というレイヤモデルをもつ。ディレクトリ構造を用いてＢＤ−ＲＯＭの応用層フォーマット（アプリケーションフォーマット）を表現すると、図中の第１段目のようになる。この第１段目においてＢＤ−ＲＯＭには、Ｒｏｏｔディレクトリの下に、ＢＤＭＶディレクトリがある。【００１６】  ＢＤＭＶディレクトリの配下には、ＰＬＡＹＬＩＳＴディレクトリ、ＣＬＩＰＩＮＦディレクトリ、ＳＴＲＥＡＭディレクトリ、ＢＤＪＡディレクトリと呼ばれる４つのサブディレクトリが存在する。
ＳＴＲＥＡＭディレクトリには、いわばデジタルストリーム本体となるファイルを格納しているディレクトリであり、拡張子Ｍ２ＴＳが付与されたファイル（００００１．Ｍ２ＴＳ）が存在する。
ＰＬＡＹＬＩＳＴディレクトリには、拡張子ＭＰＬＳが付与されたファイル（００００１．ＭＰＬＳ）が存在する。【００１７】  ＣＬＩＰＩＮＦディレクトリには、拡張子ＣＬＰＩが付与されたファイル（００００１．ＣＬＰＩ）が存在する。以下、これらのファイルについて説明する。
＜ＡＶＣｌｉｐ＞
先ず初めに、拡張子．Ｍ２ＴＳが付与されたファイルについて説明する。図３は、拡張子．Ｍ２ＴＳが付与されたファイルがどのように構成されているかを模式的に示す図である。拡張子．Ｍ２ＴＳが付与されたファイル（００００１．Ｍ２ＴＳ，００００２．Ｍ２ＴＳ，００００３．Ｍ２ＴＳ・・・・・）は、ＡＶＣｌｉｐを格納している。ＡＶＣｌｉｐは（中段）、複数のビデオフレーム（ピクチャｐｊ１，２，３）からなるビデオストリーム、複数のオーディオフレームからなるオーディオストリームを（上１段目）、ＰＥＳパケット列に変換し（上２段目）、更にＴＳパケットに変換し（上３段目）、同じく字幕系のプレゼンテーショングラフィクスストリーム（下１段目のＰＧストリーム）及び対話系のインタラクティブグラフィクスストリーム（下２段目のＩＧストリーム）をＴＳパケットに変換して（下３段目）、これらを多重化することで構成される。【００１８】  ＡＶＣｌｉｐは、図３に示したように多重化がなされているストリームの他に、多重化がなされていないものものある。かかるＡＶＣｌｉｐは、ＳｕｂＣｌｉｐと呼ばれ、オーディオストリーム、グラフィクスストリーム、テキスト字幕ストリーム（ＴｅｘｔＳＴＳｔｒｅａｍ）等を構成するＡＶＣｌｉｐが存在する。
＜Ｃｌｉｐ情報＞
拡張子“ＣＬＰＩ”が付与されたファイル（００００１．ＣＬＰＩ）は、ＡＶＣｌｉｐのそれぞれに１対１に対応するＣｌｉｐ情報である。管理情報故に、Ｃｌｉｐ情報は、ＡＶＣｌｉｐにおけるストリームの符号化形式、フレームレート、ビットレート、解像度等の情報や、ＧＯＰの先頭位置を示すＥＰ＿ｍａｐをもっている。【００１９】  ＜ＰｌａｙＬｉｓｔ情報＞
拡張子“ＭＰＬＳ”が付与されたファイル（００００１．ＭＰＬＳ）は、ＰｌａｙＬＩｓｔ（ＰＬ）情報を格納したファイルである。ＰＬ情報は、ＡＶＣｌｉｐを参照してプレイリストを定義する情報である。図４は、ＰＬ情報の構成を示す図であり、本図の左側に示すように、ＰＬ情報は、『ＭａｉｎＰａｔｈ情報』、『ＰＬＭａｒｋ情報』、『ＳｕｂＰａｔｈ情報』から構成される。【００２０】  ＭａｉｎＰａｔｈ情報（ＭａｉｎＰａｔｈ（））は、破線の矢印ｍｐ１に示すように複数のＰｌａｙＩｔｅｍ情報（ＰｌａｙＩｔｅｍ（））からなる。ＰｌａｙＩｔｅｍとは、１つ以上のＡＶＣｌｉｐ時間軸上において、Ｉｎ＿Ｔｉｍｅ，Ｏｕｔ＿Ｔｉｍｅを指定することで定義される再生区間である。Ｐｌａｙｌｔｅｍ情報を複数配置させることで、複数再生区間からなるプレイリスト（ＰＬ）が定義される。図中の破線ｍｐ２は、ＰｌａｙＩｔｅｍ情報の内部構成をクローズアップしている。本図に示すようにＰｌａｙＩｔｅｍ情報は、対応するＡＶＣｌｉｐを示す『Ｃｌｉｐ＿ｉｎｆｏｒｍａｔｉｏｎ＿ｆｉｌｅ＿ｎａｍｅ』と、『Ｉｎ＿ｔｉｍｅ』と、『Ｏｕｔ＿ｔｉｍｅ』とからなる。図５は、ＡＶＣｌｉｐと、ＰＬとの関係を示す図である。第１段目はＡＶＣｌｉｐがもつ時間軸を示し、第２段目は、ＰＬがもつ時間軸を示す。ＰＬ情報は、ＰｌａｙＩｔｅｍ＃１，＃２，＃３という３つのＰｌａｙＩｔｅｍ情報を含んでおり、これらＰｌａｙＩｔｅｍ＃１，＃２，＃３のＩｎ＿ｔｉｍｅ，Ｏｕｔ＿ｔｉｍｅにより、３つの再生区間が定義されることになる。これらの再生区間を配列させると、ＡＶＣｌｉｐ時間軸とは異なる時間軸が定義されることになる。これが第２段目に示すＰＬ時間軸である。このように、ＰｌａｙＩｔｅｍ情報の定義により、ＡＶＣｌｉｐとは異なる時間軸の定義が可能になる。【００２１】  ＡＶＣｌｉｐに対する指定は、原則１つであるが、複数ＡＶＣｌｉｐに対する一括指定もあり得る。この一括指定は、ＰｌａｙＩｔｅｍ情報における複数のＣｌｉｐ＿Ｉｎｆｏｒｍａｔｉｏｎ＿ｆｉｌｅ＿ｎａｍｅによりなされる。図６は、４つのＣｌｉｐ＿Ｉｎｆｏｒｍａｔｉｏｎ＿ｆｉｌｅ＿ｎａｍｅによりなされた一括指定を示す図である。本図において第１段目〜第４段目は、４つのＡＶＣｌｉｐ時間軸（ＡＶＣｌｉｐ＃１，＃２，＃３，＃４の時間軸）を示し、第５段目は、ＰＬ時間軸を示す。ＰｌａｙＩｔｅｍ情報が有する、４つのＣｌｉｐ＿Ｉｎｆｏｒｍａｔｉｏｎ＿ｆｉｌｅ＿ｎａｍｅにて、これら４つの時間軸が指定されている。こうすることで、ＰｌａｙＩｔｅｍが有するＩｎ＿ｔｉｍｅ，Ｏｕｔ＿ｔｉｍｅにより、択一的に再生可能な４つの再生区間が定義されることになる。これにより、ＰＬ時間軸には、切り換え可能な複数アングル映像からなる区間（いわゆるマルチアングル区間）が定義されることになる。【００２２】  ＰＬｍａｒｋ情報（ＰＬｍａｒｋ（））は、ＰＬ時間軸のうち、任意の区間を、チャプターとして指定する情報である。図７は、ＰＬｍａｒｋ情報の内部構成を示す図であり、本図の引き出し線ｐｍ１に示すようにＰＬｍａｒｋ情報は、『ｒｅｆ＿ｔｏ＿ＰｌａｙＩｔｅｍ＿Ｉｄ』と、『Ｍａｒｋ＿ｔｉｍｅ＿ｓｔａｍｐ』とを含む。図８は、ＰＬｍａｒｋによるチャプター定義を示す図である。本図において第１段目は、ＡＶＣｌｉｐ時間軸を示し、第２段目はＰＬ時間軸を示す。図中の矢印ｐｋ１，２は、ＰＬｍａｒｋにおけるＰｌａｙＩｔｅｍ指定（ｒｅｆ＿ｔｏ＿ＰｌａｙＩｔｅｍ＿Ｉｄ）と、一時点の指定（ｍａｒｋ＿ｔｉｍｅ＿ｓｔａｍｐ）とを示す。これらの指定によりＰＬ時間軸には、３つのチャプター（Ｃｈａｐｔｅｒ＃１，＃２，＃３）が定義されることになる。以上がＰＬｍａｒｋについての説明である。続いてＳｕｂＰａｔｈ情報について説明する。【００２３】  ＳｕｂＰａｔｈ情報（ＳｕｂＰａｔｈ（））は、ＳｕｂＣｌｉｐの時間軸上にＩｎ＿Ｔｉｍｅ，Ｏｕｔ＿Ｔｉｍｅを指定することで１つ以上の再生区間を定義する情報であり、図９に示す内部構成を有している。本図に示すようにＳｕｂＰａｔｈ情報は、破線の引き出し線ｓｈ１に示すように複数のＳｕｂＰｌａｙＩｔｅｍ情報（ＳｕｂＰｌａｙＩｔｅｍ（））からなる。破線ｓｈ２を用いてクローズアップしているように、ＳｕｂＰｌａｙＩｔｅｍ情報は、『Ｃｌｉｐ＿ｉｎｆｏｒｍａｔｉｏｎ＿ｆｉｌｅ＿ｎａｍｅ』と、『Ｉｎ＿ｔｉｍｅ』と、『Ｏｕｔ＿ｔｉｍｅ』と、『Ｓｙｎｃ＿ＰｌａｙＩｔｅｍ＿Ｉｄ』と、『Ｓｙｎｃ＿ｓｔａｒｔ＿Ｐｔｓ＿ｏｆ＿ＰｌａｙＩｔｅｍ』とからなる。ＳｕｂＣｌｉｐの時間軸上に対する、Ｉｎ＿Ｔｉｍｅ，Ｏｕｔ＿Ｔｉｍｅの指定は、『Ｃｌｉｐ＿ｉｎｆｏｒｍａｔｉｏｎ＿ｆｉｌｅ＿ｎａｍｅ』、『Ｉｎ＿ｔｉｍｅ』、『Ｏｕｔ＿ｔｉｍｅ』によりなされる。『Ｓｙｎｃ＿ＰｌａｙＩｔｅｍ＿Ｉｄ』及び『Ｓｙｎｃ＿ｓｔａｒｔ＿Ｐｔｓ＿ｏｆ＿ＰｌａｙＩｔｅｍ』は、ＳｕｂＣｌｉｐ時間軸上の再生区間と、ＰＬ時間軸とを同期させるという同期指定をなす。この同期指定により、ＰＬ時間軸と、ＳｕｂＣｌｉｐ時間軸とは同期して進行することになる。【００２４】  図１０は、ＳｕｂＣｌｉｐ時間軸上の再生区間定義と、同期指定を示す図である。本図において第１段目は、ＰＬ時間軸を示し、第２段目はＳｕｂＣｌｉｐ時間軸を示す。図中のＳｕｂＰｌａｙＩｔｅｍ．ＩＮ＿ｔｉｍｅは再生区間の始点を、ＳｕｂＰｌａｙＩｔｅｍ．Ｏｕｔ＿ｔｉｍｅは再生区間の終点をそれぞれ示す。これによりＳｕｂＣｌｉｐ時間軸上にも再生区間が定義されていることがわかる。矢印Ｓｎ１においてＳｙｎｃ＿ＰｌａｙＩｔｅｍ＿Ｉｄは、ＰｌａｙＩｔｅｍに対する同期指定を示し、矢印Ｓｎ２においてｓｙｎｃ＿ｓｔａｒｔ＿ＰＴＳ＿ｏｆ＿ＰｌａｙＩｔｅｍは、ＰＬ時間軸におけるＰｌａｙＩｔｅｍ上の一時点の指定を示す。【００２５】  複数ＡＶＣｌｉｐの切り換えを可能とするマルチアングル区間や、ＡＶＣｌｉｐ−ＳｕｂＣｌｉｐを同期させ得る同期区間の定義を可能とするのが、ＢＤ−ＲＯＭにおけるＰＬ情報の特徴である。以上のＣｌｉｐ情報及びＰＬ情報は、“静的シナリオ”に分類される。
続いて“動的なシナリオ”について説明する。“動的に”というのは、再生装置２００における状態変化やユーザからのキーイベントにより再生制御の中身がかわることをいう。ＢＤ−ＲＯＭでは、Ｊａｖａ（登録商標）アプリケーションと同様の記述により、この再生制御を記述することができる。つまりＢＤ−ＲＯＭでは、Ｊａｖａ（登録商標）アプリケーションが、動的シナリオとしての役割を担うことになる。【００２６】  ＜Ｊａｖａ（登録商標）アプリケーション＞
Ｊａｖａ（登録商標）アプリケーションについて説明する。Ｊａｖａ（登録商標）アプリケーションは、仮想マシンのヒープ領域（ワークメモリとも呼ばれる）にロードされた１つ以上のｘｌｅｔプログラムからなる。このワークメモリにロードされたｘｌｅｔプログラム、及び、データから、アプリケーションは構成されることになる。以上がＪａｖａ（登録商標）アプリケーションの構成である。【００２７】  このＪａｖａ（登録商標）アプリケーションの実体にあたるのが、図２におけるＢＤＭＶディレクトリ配下のＢＤＪＡディレクトリに格納されたＪａｖａ（登録商標）アーカイブファイル（００００１．ｊａｒ，００００２．ｊａｒ）である。以降、Ｊａｖａ（登録商標）アーカイブファイルについて、図１１を参照しながら説明する。
＜Ｊａｖａ（登録商標）アーカイブファイル＞
Ｊａｖａ（登録商標）アーカイブファイル（図９の００００１．ＪＡＲ）は、１つ以上のクラスファイル、１つ以上のデータファイル等を１つにまとめることで得られるファイルである。図１１（ａ）は、アーカイブファイルにより収められているプログラム、データを示す図である。本図におけるデータは、枠内に示すディレクトリ構造が配置された複数ファイルを、ｊａｖａ（登録商標）アーカイバでまとめたものである。枠内に示すディレクトリ構造は、Ｒｏｏｔディレクトリ、ｊａｖａ（登録商標）ディレクトリ、ｉｍａｇｅディレクトリとからなり、Ｒｏｏｔディレクトリにｃｏｍｍｏｎ．ｐｋｇが、ｊａｖａ（登録商標）ディレクトリにクラスファイル（ａａａ．ｃｌａｓｓ，ｂｂｂ．ｃｌａｓｓ）が、ｉｍａｇｅディレクトリに、ｍｅｎｕ．ｊｐｇが配置されている。ｊａｖａ（登録商標）アーカイブファイルは、これらをｊａｖａ（登録商標）アーカイバでまとめることで得られる。かかるクラスファイル及びデータは、ＢＤ−ＲＯＭからキャッシュに読み出されるにあたって展開され、キャッシュ上で、ディレクトリに配置された複数ファイルとして取り扱われる。Ｊａｖａ（登録商標）アーカイブファイルのファイル名における″ｚｚｚｚｚ″という５桁の数値は、アプリケーションのＩＤ（ａｐｐｌｉｃａｔｉｏｎＩＤ）を示す。本Ｊａｖａ（登録商標）アーカイブファイルがキャッシュに読み出された際、このファイル名における数値を参照することにより、任意のＪａｖａ（登録商標）アプリケーションを構成するプログラム，データを取り出すことができる。【００２８】  本図におけるクラスファイル（図中のａａａ．ｃｌａｓｓ，ｂｂｂ．ｃｌａｓｓ）は、上述したｘｌｅｔプログラムに対応するクラスファイルである。Ｊａｖａ（登録商標）動作環境による動作モード（ＢＤ−Ｊモード）における再生手順は、このクラスファイルのインスタンスにあたるｘｌｅｔプログラムにより規定される。ｘｌｅｔプログラムとは、ＪＭＦ（Ｊａｖａ（登録商標）Ｍｅｄｉａ  ＦｒａｍｅＷｏｒｋ）方式のインターフェイスを利用することができるＪａｖａ（登録商標）プログラムであり、ＪＭＦ等の方式に従って、キーイベントに基づく処理を行う。ｘｌｅｔプログラムは、ＪＭＦ方式の処理が可能であるので、ＭＰＬＳファイルに対するＪＭＦ方式のインスタンス（ＰｌａｙＬｉｓｔ  Ｏｂｊｅｃｔ）を生成することにより、プレイリスト再生を再生装置２００に命じることができる。他にもｘｌｅｔプログラムでは、ファンクションＡＰＩのコールを記述することにより、ＢＤ−ＲＯＭ再生装置２００特有の処理を実行させることができる。【００２９】  更にｘｌｅｔプログラムは、ＷＷＷサイトをアクセスしてコンテンツをダウンロードするという手順を実行することもできる。これによりダウンロードコンテンツと、プレイリスト再生とを交えた斬新な作品を再生させることができる。
ｘｌｅｔプログラムのクラスファイルについて説明する。図１１（ｂ）は、クラスファイルの内部構成を示す図である。本図に示すようにクラスファイルは、通常のクラスファイル同様、『コンスタントプール』、『インターフェイス』、『メソッド１，２，３・・・・ｎ』からなる。クラスファイルにおけるメソッドには、挙動のトリガになるキーイベントが予め登録されているメソッド（ＥｖｅｎｔＬｉｓｔｎｅｒ）と、ＢＤ−ＲＯＭ再生装置２００側のファンクションＡＰＩをコールするメソッドがある。これらのメソッドは、自身に割り当てられたローカル変数や、自身をコールする際の引数を用いることにより、演算等の手順が記述されている。以上がＪａｖａ（登録商標）アーカイブファイルについての説明である。これで、ＢＤ−ＲＯＭについての説明を終える。続いて、本発明に係る再生装置の内部構成について説明する。【００３０】  ＜再生装置＞
図１２は、本発明に係る再生装置の内部構成を示す図である。本発明に係る再生装置は、本図に示す内部に基づき、工業的に生産される。本発明に係る再生装置は、主としてシステムＬＳＩと、ドライブ装置という２つのパーツからなり、これらのパーツを装置のキャビネット及び基板に実装することで工業的に生産することができる。システムＬＳＩは、再生装置の機能を果たす様々な処理部を集積した集積回路である。こうして生産される再生装置は、ＢＤ−ＲＯＭドライブ１、Ｒｅａｄ  Ｂｕｆｆｅｒ２、デマルチプレクサ３、ビデオデコーダ４、ビデオプレーン５、Ｐ−Ｇｒａｐｈｉｃｓデコーダ６、Ｐｒｅｓｅｎｔａｔｉｏｎ  Ｇｒａｐｈｉｃｓプレーン７、合成部８、フォントゼネレータ９、Ｉ−Ｇｒａｐｈｉｃｓデコーダ１０、スイッチ１１、Ｉｎｔｅｒａｃｔｉｖｅ  Ｇｒａｐｈｉｃｓプレーン１２、合成部１３、ＣＬＵＴ部１４、ＣＬＵＴ部１５、オーディオデコーダ１６、Ｎｅｔｗｏｒｋ  Ｄｅｖｉｃｅ１７、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８、Ｒｅａｄ  Ｂｕｆｆｅｒ１９、デマルチプレクサ２０、命令ＲＯＭ２１、ユーザイベント処理部２２、ＰＳＲセット２３、ＣＰＵ２４、シナリオメモリ２５、Ｌｏｃａｌ  Ｍｅｍｏｒｙ２６、スイッチ２７から構成される。【００３１】  先ず初めに、ＢＤ−ＲＯＭに記録されたＡＶＣｌｉｐ再生に係る構成要素（ＢＤドライブ１〜オーディオデコーダ１６）について説明する。
ＢＤ−ＲＯＭドライブ１は、ＢＤ−ＲＯＭのローディング／イジェクトを行い、ＢＤ−ＲＯＭに対するアクセスを実行する。
Ｒｅａｄ  Ｂｕｆｆｅｒ２は、ＦＩＦＯメモリであり、ＢＤ−ＲＯＭから読み出されたＴＳパケットが先入れ先出し式に格納される。【００３２】  デマルチプレクサ（Ｄｅ−ＭＵＸ）３は、Ｒｅａｄ  Ｂｕｆｆｅｒ２からＴＳパケットを取り出して、このＴＳパケットを構成するＴＳパケットをＰＥＳパケットに変換する。そして変換により得られたＰＥＳパケットのうち、ＣＰＵ２４から設定されたＰＩＤをもつものをビデオデコーダ４、Ｐ−Ｇｒａｐｈｉｃｓデコーダ６、Ｉ−Ｇｒａｐｈｉｃｓデコーダ１０、オーディオデコーダ１６のどれかに出力する。
ビデオデコーダ４は、デマルチプレクサ３から出力された複数ＰＥＳパケットを復号して非圧縮形式のピクチャを得てビデオプレーン５に書き込む。【００３３】  ビデオプレーン５は、非圧縮形式のピクチャを格納しておくためのプレーンである。プレーンとは、再生装置において一画面分の画素データを格納しておくためのメモリ領域である。ビデオプレーン５における解像度は１９２０×１０８０であり、このビデオプレーン５に格納されたピクチャデータは、１６ビットのＹＵＶ値で表現された画素データにより構成される。ビデオプレーン５では、ビデオストリームにおける一フレーム毎の再生映像を、スケーリングすることができる。スケーリングとは、一フレーム毎の再生画像をビデオプレーン５全体の１／４（クオータという）、１／１（フルスケールという）のどちらかに変化させることである。かかるスケーリングを、ＢＤ−ＪモードにおいてＣＰＵ２４からの指示に従い実行するので、ビデオストリームの再生画像を、画面の隅に追いやったり、全面的に出すという画面演出が可能になる。【００３４】  Ｐ−Ｇｒａｐｈｉｃｓデコーダ６は、ＢＤ−ＲＯＭから読み出されたプレゼンテーショングラフィクスストリームをデコードして、非圧縮グラフィクスをＰｒｅｓｅｎｔａｔｉｏｎ  Ｇｒａｐｈｉｃｓプレーン７に書き込む。グラフィクスストリームのデコードにより、字幕が画面上に現れることになる。
Ｐｒｅｓｅｎｔａｔｉｏｎ  Ｇｒａｐｈｉｃｓプレーン７は、一画面分の領域をもったメモリであり、一画面分の非圧縮グラフィクスを格納することができる。本プレーンにおける解像度は１９２０×１０８０であり、Ｐｒｅｓｅｎｔａｔｉｏｎ  Ｇｒａｐｈｉｃｓプレーン７中の非圧縮グラフィクスの各画素は８ビットのインデックスカラーで表現される。ＣＬＵＴ（Ｃｏｌｏｒ  Ｌｏｏｋｕｐ  Ｔａｂｌｅ）を用いてかかるインデックスカラーを変換することにより、Ｐｒｅｓｅｎｔａｔｉｏｎ  Ｇｒａｐｈｉｃｓプレーン７に格納された非圧縮グラフィクスは、表示に供される。【００３５】  合成部８は、ビデオプレーン５に格納された非圧縮状態のピクチャデータ（ｉ）を、Ｐｒｅｓｅｎｔａｔｉｏｎ  Ｇｒａｐｈｉｃｓプレーン７の格納内容と合成する。
フォントゼネレータ９は、文字フォントを用いてｔｅｘｔＳＴストリームに含まれるテキストコードをビットマップに展開してＰｒｅｓｅｎｔａｔｉｏｎ  Ｇｒａｐｈｉｃｓプレーン７に書き込む。
Ｉ−Ｇｒａｐｈｉｃｓデコーダ１０は、ＨＤＭＶモードにおいてＢＤ−ＲＯＭ又はＬｏｃａｌ  Ｓｔｏｒａｇｅ１８から読み出されたＩＧストリームをデコードして、非圧縮グラフィクスをＩｎｔｅｒａｃｔｉｖｅ  Ｇｒａｐｈｉｃｓプレーン１２に書き込む。【００３６】  スイッチ１１は、フォントゼネレータ９が生成したフォント列、Ｐ−Ｇｒａｐｈｉｃｓデコーダ６のデコードにより得られたグラフィクスの何れかを選択的にＰｒｅｓｅｎｔａｔｉｏｎ  Ｇｒａｐｈｉｃｓプレーン７に書き込むスイッチである。
Ｉｎｔｅｒａｃｔｉｖｅ  Ｇｒａｐｈｉｃｓプレーン１２は、Ｉ−Ｇｒａｐｈｉｃｓデコーダ１０によるデコードで得られた非圧縮グラフィクスが書き込まれる。またＩｎｔｅｒａｃｔｉｖｅ  Ｇｒａｐｈｉｃｓプレーン１２には、ＢＤ−Ｊモードにおいて、アプリケーションにより描画された文字やグラフィクスが書き込まれる。【００３７】  合成部１３は、Ｉｎｔｅｒａｃｔｉｖｅ  Ｇｒａｐｈｉｃｓプレーン１２の格納内容と、合成部８の出力である合成画像（非圧縮状態のピクチャデータと、Ｐｒｅｓｅｎｔａｔｉｏｎ  Ｇｒａｐｈｉｃｓプレーン７の格納内容とを合成したもの）とを合成する。かかる合成により、アプリケーションがＩ−Ｇｒａｐｈｉｃｓデコーダ１０に書き込んだ文字・グラフィクスを、非圧縮状態のピクチャデータ上にオーバレイして、表示することができる。【００３８】  ＣＬＵＴ部１４は、ビデオプレーン５に格納された非圧縮グラフィクスにおけるインデックスカラーを、Ｙ，Ｃｒ，Ｃｂ値に変換する。
ＣＬＵＴ部１５は、Ｉｎｔｅｒａｃｔｉｖｅ  Ｇｒａｐｈｉｃｓプレーン１２に格納された非圧縮グラフィクスにおけるインデックスカラーを、Ｙ，Ｃｒ，Ｃｂ値に変換する。
オーディオデコーダ１６は、デマルチプレクサ３から出力されたＰＥＳパケットを復号して、非圧縮形式のオーディオデータを出力する。【００３９】  以上がＡＶＣｌｉｐ再生に係る構成要素である。続いてＢＤ−Ｊモードでの動作に係る構成要素（Ｎｅｔｗｏｒｋ  Ｄｅｖｉｃｅ１７〜Ｄｅ−ｍｕｘ２０）について説明する。
Ｎｅｔｗｏｒｋ  Ｄｅｖｉｃｅ１７は、再生装置における通信機能を実現するものであり、ＢＤ−ＪモードにおいてＵＲＬ指定がＪａｖａ（登録商標）アプリケーションから与えられれば、そのＵＲＬにあたるｗｅｂサイトとのＴＣＰコネクション、ＦＴＰコネクション等を確立する。かかるコネクション確立によりｗｅｂサイトからのダウンロードをＪａｖａ（登録商標）アプリケーションに行わせる。【００４０】  Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８は、Ｎｅｔｗｏｒｋ  Ｄｅｖｉｃｅ１７により確立されたコネクションを通じてｗｅｂサイトからダウンロードされたコンテンツ等、ＢＤ−ＲＯＭ以外の記録媒体、通信媒体から供給されたコンテンツを、メタデータと共に格納しておくためのハードディスクである。このメタデータは、ダウンロードコンテンツをＬｏｃａｌ  Ｓｔｏｒａｇｅ１８にバインドして管理するための情報であり、このＬｏｃａｌ  Ｓｔｏｒａｇｅ１８をアクセスすることで、ＢＤ−Ｊモードにおけるアプリケーションは、ダウンロードコンテンツを利用した様々な処理を行うことができる。【００４１】  Ｒｅａｄ  Ｂｕｆｆｅｒ１９は、ＦＩＦＯメモリであり、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８に格納されたダウンロードコンテンツに、ＳｕｂＣｌｉｐが含まれている場合、このＳｕｂＣｌｉｐを構成するＴＳパケットを、先入れ先出し式に格納する。
デマルチプレクサ（Ｄｅ−ＭＵＸ）２０は、Ｒｅａｄ  Ｂｕｆｆｅｒ１９からＴＳパケットを取り出して、ＴＳパケットをＰＥＳパケットに変換する。そして変換により得られたＰＥＳパケットのうち、所望のＰＩＤをもつものをフォントゼネレータ９、Ｉ−Ｇｒａｐｈｉｃｓデコーダ１０、オーディオデコーダ１６に出力する。【００４２】  以上のＮｅｔｗｏｒｋ  Ｄｅｖｉｃｅ１７〜Ｄｅ−ｍｕｘ２０により、Ｊａｖａ（登録商標）アプリケーションがネットワークを通じてダウンロードしたコンテンツを、ＢＤ−ＲＯＭに記録されたコンテンツ同様再生させることができる。続いて、再生装置における統合制御を実現する構成要素（命令ＲＯＭ２１〜スイッチ２７）について説明する。
命令ＲＯＭ２１は、再生装置の制御を規定するソフトウェアを記憶している。【００４３】  ユーザイベント処理部２２は、リモコンや再生装置のフロントパネルに対するキー操作に応じて、その操作を行うユーザイベントをＣＰＵ２４に出力する。
ＰＳＲセット２３は、再生装置に内蔵されるレジスタであり、６４個のＰｌａｙｅｒ  Ｓｔａｔｕｓ  Ｒｅｇｉｓｔｅｒ（ＰＳＲ）と、４０９６個のＧｅｎｅｒａｌ  Ｐｕｒｐｏｓｅ  Ｒｅｇｉｓｔｅｒ（ＧＰＲ）とからなる。Ｐｌａｙｅｒ  Ｓｔａｔｕｓ  Ｒｅｇｉｓｔｅｒの設定値（ＰＳＲ）のうち、ＰＳＲ４〜ＰＳＲ８は、現在の再生時点を表現するのに用いられる。【００４４】  ＰＳＲ４は、１〜１００の値に設定されることで、現在の再生時点が属するタイトルを示し、０に設定されることで、現在の再生時点がトップメニューであることを示す。
ＰＳＲ５は、１〜９９９の値に設定されることで、現在の再生時点が属するチャプター番号を示し、０ｘＦＦＦＦに設定されることで、再生装置においてチャプター番号が無効であることを示す。【００４５】  ＰＳＲ６は、０〜９９９の値に設定されることで、現在の再生時点が属するＰＬ（カレントＰＬ）の番号を示す。
ＰＳＲ７は、０〜２５５の値に設定されることで、現在の再生時点が属するＰｌａｙＩｔｅｍ（カレントＰｌａｙ  Ｉｔｅｍ）の番号を示す。
ＰＳＲ８は、０〜ＯｘＦＦＦＦＦＦＦＦの値に設定されることで、４５ＫＨｚの時間精度を用いて現在の再生時点（カレントＰＴＭ（Ｐｒｅｓｅｎｔａｔｉｏｎ  ＴｉＭｅ））を示す。以上のＰＳＲ４〜ＰＳＲ８により、図２１（ａ）におけるＢＤ−ＲＯＭ全体の時間軸において、現在の再生時点はどこであるかを特定することができる。【００４６】  ＣＰＵ２４は、命令ＲＯＭ２１に格納されているソフトウェアを実行して、再生装置全体の制御を実行する。この制御の内容は、ユーザイベント処理部２２から出力されたユーザイベント、及び、ＰＳＲセット２３における各ＰＳＲの設定値に応じて動的に変化する。
シナリオメモリ２５は、カレントのＰＬ情報やカレントのＣｌｉｐ情報を格納しておくためのメモリである。カレントＰＬ情報とは、ＢＤ−ＲＯＭに記録されている複数ＰＬ情報のうち、現在処理対象になっているものをいう。カレントＣｌｉｐ情報とは、ＢＤ−ＲＯＭに記録されている複数Ｃｌｉｐ情報のうち、現在処理対象になっているものをいう。【００４７】  Ｌｏｃａｌ  Ｍｅｍｏｒｙ２６は、ＢＤ−ＲＯＭからの読み出しは低速である故、ＢＤ−ＲＯＭの記録内容を一時的に格納しておくためのキャッシュメモリである。かかるＬｏｃａｌ  Ｍｅｍｏｒｙ２６が存在することにより、ＢＤ−Ｊモードにおけるアプリケーション実行は、効率化されることになる。
スイッチ２７は、ＢＤ−ＲＯＭ及びＬｏｃａｌ  Ｓｔｏｒａｇｅ１８から読み出された各種データを、Ｒｅａｄ  Ｂｕｆｆｅｒ２、Ｒｅａｄ  Ｂｕｆｆｅｒ１９、シナリオメモリ２５、Ｌｏｃａｌ  Ｍｅｍｏｒｙ２６のどれかに選択的に投入するスイッチである。【００４８】  以上が、本実施形態に係る再生装置のハードウェア構成である。続いて本実施形態に係る再生装置におけるファイルシステム構造について説明する。
図１３（ａ）は、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８におけるディレクトリ構造を示す図である。
本図のディレクトリ構造においてＲＯＯＴディレクトリの配下には、「ＤＬＤＡＴ」というサブディレクトリがあり、その配下に、「ＰＫＧ００００１」，「ＰＫＧ００００２」というサブディレクトリがある。「ＰＫＧ００００１」，「ＰＫＧ００００２」はそれぞれがＢＤ−ＲＯＭのボリュームラベルであり、「ＰＫＧ００００１」というボリュームラベルを有したＢＤ−ＲＯＭに対応するディレクトリ、「ＰＫＧ００００２」というボリュームラベルのＢＤ−ＲＯＭに対応したディレクトリが、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８に存在することを意味する。そのうち、サブディレクトリ「ＰＫＧ００００１」は、ボリュームラベル「ＰＫＧ００００１」のＢＤ−ＲＯＭに対応する、ダウンロードデータの置き場所であることを示す。各ＢＤ−ＲＯＭに対応するディレクトリにサブディレクトリを配置することで各ＢＤ−ＲＯＭについてのダウンロードデータが個別に格納される。このサブディレクトリの配下に、ＢＤ−ＲＯＭに格納されていたのと同様、ＰｌａｙＬＩｓｔ情報、Ｃｌｉｐ情報、ＡＶＣｌｉｐが格納されており、この他にＪａｖａ（登録商標）アーカイブファイルや、ストリーム格納位置情報ファイルが存在する。【００４９】  ここでＢＤ−ＲＯＭに記録されていたＡＶＣｌｉｐが、映画作品の本編に該当するのに対し、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８上に記録されているＡＶＣｌｉｐは、現在劇場で上映されている映画作品の予告編であるものとする。予告編の内容は、時代の移り変わりによって変わるので、現在、現在劇場で上映されている映画作品の予告編が、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８上に、ＡＶＣｌｉｐとして記録されているのである。【００５０】  後者のストリーム格納位置情報ファイルについて説明する。このストリーム格納位置情報ファイルは、Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅを構成するファイルの一覧を示す情報である。図１３（ｂ）は、ストリーム格納位置情報ファイルの内部構成を示す図であり、ストリーム格納位置情報ファイルは、Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅを構成する各ＡＶＣｌｉｐ及びＣｌｉｐ情報の格納位置情報からなる。各格納位置情報は、ＡＶＣｌｉｐ及びＣｌｉｐ情報の“識別子”と、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８におけるそのＡＶＣｌｉｐ及びＣｌｉｐ情報の格納位置を示す“ファイルパス”とからなる。かかる格納位置情報を参照することにより、Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅを構築するにあたって、Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅの構成要素となるＡＶＣｌｉｐ及びＣｌｉｐ情報が、揃っているかを、確認することができる。【００５１】  以上が、本実施形態に係る再生装置のファイルシステム構成である。続いて本実施形態に係る再生装置におけるソフトウェア構造について説明する。
図１４は、ＲＯＭ２４に格納されたソフトウェアと、ハードウェアとからなる部分を、レイア構成に置き換えて描いた図である。本図に示すように、再生装置のレイア構成は、以下のａ），ｂ），ｃ）からなる。つまり、
ａ）ＢＤ  Ｐｌａｙｅｒ  Ｄｅｖｉｃｅの第１階層、
ｂ）ＢＤ  Ｐｌａｙｅｒ  Ｍｏｄｅｌの第２階層、
ｃ）Ａｐｐｌｉｃａｔｉｏｎ  Ｒｕｎｔｉｍｅ  Ｅｎｖｉｒｏｍｅｎｔの第３階層からなる。【００５２】  これらの階層のうち図３２に示した再生装置のハードウェア構成は、第１階層に属することになる。本図の第１階層“ＢＤ  Ｐｌａｙｅｒ  Ｄｅｖｉｃｅ”には、図１２に示したハードウェア構成のうちビデオデコーダ４、Ｐ−Ｇｒａｐｈｉｃｓデコーダ６、Ｉ−Ｇｒａｐｈｉｃｓデコーダ１０、オーディオデコーダ１６からなる“デコーダ”と、ビデオプレーン５、Ｐｒｅｓｅｎｔａｔｉｏｎ  Ｇｒａｐｈｉｃｓプレーン７、Ｉｎｔｅｒａｃｔｉｖｅ  Ｇｒａｐｈｉｃｓプレーン１２からなる“プレーン”、ＢＤ−ＲＯＭ及びそのファイルシステム、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８及びそのファイルシステムを含む。【００５３】  第２階層“ＢＤ  Ｐｌａｙｅｒ  Ｍｏｄｅｌ”は、以下のｂ１），ｂ２）の層からなる。つまり、
ｂ２）Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２の層
ｂ１）Ｖｉｒｔｕａｌ  Ｆｉｌｅ  Ｓｙｓｔｅｍ３８及びＰｒｅｓｅｎｔａｔｉｏｎ  Ｅｎｇｉｎｅ３１の層
からなり、自身より上位の階層に対し、ファンクションＡＰＩを提供する。【００５４】  このうち図１２に示したＰＳＲセット２３やシナリオメモリ２５は、Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２内に存在することになる。
第３階層“Ａｐｐｌｉｃａｔｉｏｎ  Ｒｕｎｔｉｍｅ  Ｅｎｖｉｒｏｍｅｎｔ”は、以下のｃ１）のスタック階層からなる。つまり、
ｃ１）ＨＤＭＶモジュール２９ａ、ＢＤ−Ｊモジュール２９ｂが存在する層
からなる。【００５５】  以降、このソフトウェア構造における各構成要素について説明する。
＜ＨＤＭＶモジュール２９ａ、ＢＤ−Ｊモジュール２９ｂ＞
ＨＤＭＶモジュール２９ａは、ナビゲーションコマンドを解読し、解読結果に基づきＰｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２に対するファンクションコールを実行する。【００５６】  ＢＤ−Ｊモジュール２９ｂは、いわゆるＪａｖａ（登録商標）プラットフォームであり、
ｄ１−１）Ｊａｖａ（登録商標）仮想マシン３０
ｄ１−２）Ｊａｖａ（登録商標）仮想マシンが動作するためのミドルウエア
を階層化した構成になっている。【００５７】  ＜Ｊａｖａ（登録商標）仮想マシン３０＞
Ｊａｖａ（登録商標）仮想マシン３０は、アプリケーションを構成するｘｌｅｔプログラムをワークメモリにロードして、ｘｌｅｔプログラムを解読し、解読結果に従って、下位層に対する制御を行う。下位層への制御は、メソッドをミドルウェアに発行して、ＢＤ再生装置が対応しているファンクションコールに置き換えさせ、置換後のファンクションコールをＰｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２に発行することでなされる。【００５８】  （Ｊａｖａ（登録商標）仮想マシン３０の内部構成）
ここでＪａｖａ（登録商標）仮想マシン３０の内部構成について説明する。図１５は、Ｊａｖａ（登録商標）仮想マシン３０の内部構成を示す図である。本図に示すようにＪａｖａ（登録商標）仮想マシン３０は、図１２に示したＣＰＵ２４と、ユーザクラスローダ５２、メソッドエリア５３、ワークメモリ５４、スレッド５５ａ，ｂ・・・ｎ、Ｊａｖａ（登録商標）スタック５６ａ，ｂ・・・ｎとから構成される。【００５９】  ユーザクラスローダ５２は、ＢＤＪＡディレクトリのＪａｖａ（登録商標）アーカイブファイルにおけるクラスファイルをＬｏｃａｌ  Ｍｅｍｏｒｙ２６等から読み出してメソッドエリア５３に格納する。このユーザクラスローダ５２によるクラスファイル読み出しは、ファイルパスを指定した読み出しをアプリケーションマネージャ３６がユーザクラスローダ５２に指示することでなされる。ファイルパスがＬｏｃａｌ  Ｍｅｍｏｒｙ２６を示しているなら、ユーザクラスローダ５２は、アプリケーションを構成するＪａｖａ（登録商標）アーカイブファイルにおけるクラスファイルを、Ｌｏｃａｌ  Ｍｅｍｏｒｙ２６からワークメモリ５４に読み出す。ファイルパスがＦｉｌｅ  Ｓｙｓｔｅ上のディレクトリを示しているなら、ユーザクラスローダ５２は、アプリケーションを構成するＪａｖａ（登録商標）アーカイブファイルにおけるクラスファイルを、ＢＤ−ＲＯＭ又はＬｏｃａｌ  Ｓｔｏｒａｇｅ１８からワークメモリ５４に読み出す。【００６０】  メソッドエリア５３は、ユーザクラスローダ５２によりＬｏｃａｌ  Ｍｅｍｏｒｙ２６から読み出されたクラスファイルが格納される。
ワークメモリ５４は、いわゆるヒープエリアであり、様々なクラスファイルのインスタンスが格納される。ワークメモリ５４には、常駐型のレジデントアプリケーションやメソッドエリア５３に読み出されたクラスファイルに対応するインスタンスが格納される。このインスタンスが、アプリケーションを構成するｘｌｅｔプログラムである。かかるｘｌｅｔプログラムをワークメモリ５４に配置することによりアプリケーションは実行可能な状態になる。【００６１】  スレッド５５ａ，ｂ・・・ｎは、ワークメモリ５４に格納されたメソッドを実行する論理的な実行主体であり、ローカル変数や、オペランドスタックに格納された引数をオペランドにして演算を行い、演算結果を、ローカル変数又はオペランドスタックに格納する。図中の矢印ｋｙ１，ｋｙ２，ｋｙｎは、ワークメモリ５４からスレッド５５ａ，ｂ・・・ｎへのメソッド供給を象徴的に示している。物理的な実行主体がＣＰＵ唯１つであるのに対し、論理的な実行主体たるスレッドは、最大６４個Ｊａｖａ（登録商標）仮想マシン３０内に存在し得る。この６４個という数値内において、スレッドを新規に作成することも、既存のスレッドを削除することも可能であり、スレッドの動作数は、Ｊａｖａ（登録商標）仮想マシン３０の動作中において増減し得る。スレッドの数は適宜増やすことができるので、複数スレッドにより１つのインスタンスの並列実行を行い、インスタンスの高速化を図ることもできる。【００６２】  Ｊａｖａ（登録商標）スタック５６ａ，ｂ・・・ｎは、スレッド５５ａ，ｂ・・・ｎと１対１の比率で存在しており、プログラムカウンタ（図中のＰＣ）と、１つ以上のフレームとを内部に持つ。“プログラムカウンタ”は、インスタンスにおいて、現在どの部分が実行されているかを示す。“フレーム”はメソッドに対する１回のコールに対して割り当てられたスタック式の領域であり、その１回のコール時の引数が格納される“オペランドスタック”と、コールされたメソッドが用いる“ローカル変数スタック（図中のローカル変数）”とからなる。フレームは、コールが１回なされる度にＪａｖａ（登録商標）スタック５６ａ，ｂ・・・ｎ上に積み上げられるのだから、あるメソッドが自身を再帰的に呼び出す場合も、このフレームは、１つ積み上げられることになる。【００６３】  以上がＪａｖａ（登録商標）仮想マシンの内部構成である。このように構成されたＪａｖａ（登録商標）仮想マシンは、イベントにより駆動される実行主体（イベントドリブンの実行主体）となる。以上がＪａｖａ（登録商標）仮想マシンについての説明である。
＜Ｐｒｅｓｅｎｔａｔｉｏｎ  Ｅｎｇｉｎｅ３１＞
Ｐｒｅｓｅｎｔａｔｉｏｎ  Ｅｎｇｉｎｅ３１は、ＡＶ再生ファンクションを実行する。再生装置のＡＶ再生ファンクションとは、ＤＶＤプレーヤ、ＣＤプレーヤから踏襲した伝統的な機能群であり、再生開始（Ｐｌａｙ）、再生停止（Ｓｔｏｐ）、一時停止（Ｐａｕｓｅ  Ｏｎ）、一時停止の解除（Ｐａｕｓｅ  Ｏｆｆ）、Ｓｔｉｌｌ機能の解除（ｓｔｉｌｌ  ｏｆｆ）、速度指定付きの早送り（Ｆｏｒｗａｒｄ  Ｐｌａｙ（ｓｐｅｅｄ））、速度指定付きの巻戻し（Ｂａｃｋｗａｒｄ  Ｐｌａｙ（ｓｐｅｅｄ））、音声切り換え（Ａｕｄｉｏ  Ｃｈａｎｇｅ）、副映像切り換え（Ｓｕｂｔｉｔｌｅ  Ｃｈａｎｇｅ）、アングル切り換え（Ａｎｇｌｅ  Ｃｈａｎｇｅ）といった機能である。ＡＶ再生ファンクションを実現するべく、Ｐｒｅｓｅｎｔａｔｉｏｎ  Ｅｎｇｉｎｅ３１は、Ｒｅａｄ  Ｂｕｆｆｅｒ２上に読み出されたＡＶＣｌｉｐのうち、所望に時刻にあたる部分のデコードを行うよう、ビデオデコーダ４、Ｐ−Ｇｒａｐｈｉｃｓデコーダ６、Ｉ−Ｇｒａｐｈｉｃｓデコーダ１０、オーディオデコーダ１６を制御する。所望の時刻としてＰＳＲ８（カレントＰＴＭ）に示される箇所のデコードを行わせることにより、ＡＶＣｌｉｐにおいて、任意の時点を再生を可能することができる。【００６４】  ＜Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２＞
再生制御エシジン（Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２（ＰＣＥ））３２は、プレイリストに対する再生制御ファンクション（ｉ）、ＰＳＲセット２３における状態取得／設定ファンクション（ｉｉ）といった諸機能を実行する。ＰＬに対する再生制御ファンクションとは、Ｐｒｅｓｅｎｔａｔｉｏｎ  Ｅｎｇｉｎｅ３１が行うＡＶ再生ファンクションのうち、再生開始や再生停止を、カレントＰＬ情報及びＣｌｉｐ情報に従って行わせることをいう。これら機能（ｉ）〜（ｉｉ）は、ＨＤＭＶモジュール２９ａ〜ＢＤ−Ｊモジュール２９ｂからのファンクションコールに応じて実行する。【００６５】  ここでＰｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２による処理と、Ｊａｖａ（登録商標）仮想マシンによる処理との同期について説明する。Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２は、ファンクションがコールされれば、ＰＬ情報に基づく処理手順を実行する。再生しようとするＡＶＣｌｉｐが１５分、３０分という再生時間を有するなら、これらの時間、上述した処理は継続することになる。ここで問題になるのは、Ｊａｖａ（登録商標）仮想マシン３０がサクセス応答を返す時間と、Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２が実際に処理を終える時間とのギャップである。Ｊａｖａ（登録商標）仮想マシン３０は、イベントドリブンの処理主体であるためコール直後に再生成功か、再生失敗かを示す応答を返すが、Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２がＡＶＣｌｉｐ及びＰｌａｙＩｔｅｍの再生を終了するのは、１５分、３０分経過後であるので、サクセス応答をアプリケーションに返す時間を基準にしたのでは、１５分、３０分経過後にあたる処理終結を感知しえない。ＰＬ再生において早送り、巻戻しが行われると、この１５分、３０分という再生期間は前後に変動することになり、処理終結の感知は更に困難になる。そこでＰｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２は、ＰｌａｙＩｔｅｍの再生終了時、ＡＶＣｌｉｐの再生終了時に、ＰｌａｙＩｔｅｍやＡＶＣｌｉｐの再生が終了したことを示すイベントをアプリケーションに出力する。かかる出力により、Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２がＰｌａｙＩｔｅｍやＡＶＣｌｉｐの再生を終結した時点を、アプリケーションは知得することができる。【００６６】  以上が、Ｊａｖａ（登録商標）仮想マシン、Ｎｅｔｗｏｒｋ  Ｄｅｖｉｃｅ３１、Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２の説明である。Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２に対する、Ｊａｖａ（登録商標）仮想マシンによる制御は、Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅを通じてなされる。Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅを通じた、Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２に対する制御を実現するため、再生装置には、以下に示す構成要素（ネットワーク管理モジュール３７、Ｖｉｒｔｕａｌ  ＦｉｌｅＳｙｓｔｅｍ部３８、管理情報変換モジュール３９、メソッド実行モジュール４０）が存在する。以降これらの構成要素について説明する。【００６７】  ＜ネットワーク管理モジュール３７＞
ネットワーク管理モジュール３７は、アプリケーションからのメソッド呼出に従って、Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅ構築に必要なデータを、映画作品のプロバイダが運営しているＷＷＷサイトからダウンロードする。Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅ構築に必要なデータには、ストリーム格納位置情報ファイル、ＰｌａｙＬｉｓｔ情報、Ｃｌｉｐ情報、ＡＶＣｌｉｐがある。Ｗｏｒｋ  Ｍｅｍｏｒｙ５４上のアプリケーションによるダウンロード要求がなされると、ネットワーク管理モジュール３７は、ネットワークを通じて、Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅ構築に必要なデータをダウンロードし、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８に書き込んでゆく。【００６８】  このダウンロードにあたっての書き込みの順序は、
ストリーム格納位置情報ファイル→ＰｌａｙＬｉｓｔ情報→複数Ｃｌｉｐ情報→複数ＡＶＣｌｉｐ
となる。【００６９】  ここでＰｌａｙＬｉｓｔ情報−複数のＣｌｉｐ情報の書き込みが完了した段階で、Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅの構築は可能になる。
＜Ｖｉｒｔｕａｌ  ＦｉｌｅＳｙｓｔｅｍ部３８＞
Ｖｉｒｔｕａｌ  ＦｉｌｅＳｙｓｔｅｍ部３８は、第２階層に属する構成要素の１つであり、アプリケーションからのメソッド呼出に従い、Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅを構築する。Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅの構築処理には、Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅを構成する各ＡＶＣｌｉｐの状態管理と、Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅ情報の生成処理とが含まれる。【００７０】  １．Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅ情報
Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅ情報は、ＢＤ−ＲＯＭにおけるボリューム管理情報を拡張した情報である。ここでボリューム管理情報は、ある記録媒体上に存在するディレクトリ−ファイル構造を規定する情報であり、ディレクトリについてのディレクトリ管理情報、ファイルについてのファイル管理情報とからなる。【００７１】  Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅ情報とは、ＢＤ−ＲＯＭのディレクトリ−ファイル構造を示すボリューム管理情報に、新たなファイル管理情報を追加することにより、ＢＤ−ＲＯＭにおけるディレクトリ−ファイル構造の拡張を図ったものである。ここでＢＤボリューム管理情報に追加されるファイル管理情報とは、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８に存在するＰｌａｙＬＩｓｔ情報、Ｃｌｉｐ情報、ＡＶＣｌｉｐについてのファイル管理情報であり、かかるファイル管理情報を追加したＶｉｒｔｕａｌ  Ｐａｃｋａｇｅ情報を作成し、Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２に引き渡すことにより、Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２は、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８上にあるＰｌａｙＬＩｓｔ情報、Ｃｌｉｐ情報、ＡＶＣｌｉｐがＢＤ−ＲＯＭに存在するものとして認識することができる。図１６は、Ｖｉｒｔｕａｌ  ＦｉｌｅＳｙｓｔｅｍ部３８によるＶｉｒｔｕａｌ  Ｐａｃｋａｇｅ情報構築の一例を示す図である。本図の左上は、ＢＤ−ＲＯＭにおけるディレクトリ−ファイル構造であり、図２に示したものと同じである。本図の左下は、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８におけるディレクトリ−ファイル構造であり、図１３（ａ）に示したものと同じである。このＬｏｃａｌ  Ｓｔｏｒａｇｅ１８上のＰｌａｙＬＩｓｔ情報、Ｃｌｉｐ情報、ＡＶＣｌｉｐについてのファイル管理情報を、ＢＤ−ＲＯＭのボリューム管理情報に追加する。【００７２】  具体的には、
ｉ）Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８上のＰｌａｙＬＩｓｔ（００００２．ＭＰＬＳ）についてのファイル管理情報を、ＢＤボリューム構成情報におけるＭＰＬＳディレクトリのディレクトリ管理情報に追加し、
ｉｉ）Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８上のＣｌｉｐ情報＃２、Ｃｌｉｐ情報＃３、
＃４（００００２．ＣＬＰＩ，００００３．ＣＬＰＩ，００００４．ＣＬＰＩ）についてのファイル管理情報を、ＢＤボリューム構成情報におけるＣＬＰＩディレクトリのディレクトリ管理情報に追加し、
ｉｉｉ）Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８上のＡＶＣｌｉｐ＃２、ＡＶＣｌｉｐ＃３、
＃４（００００２．Ｍ２ＴＳ，００００３．Ｍ２ＴＳ，００００４．Ｍ２ＴＳ）についてのファイル管理情報を、ＢＤボリューム構成情報におけるＳＴＲＥＡＭディレクトリのディレクトリ管理情報に追加する。【００７３】  こうすることにより、Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅ情報が得られる。この追加により得られたボリューム管理情報が、Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅ情報である。
こうして作成されたＶｉｒｔｕａｌ  Ｐａｃｋａｇｅ情報を、Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２に引き渡す。これにより、Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２は、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８上のＰｌａｙＬＩｓｔ情報、Ｃｌｉｐ情報、ＡＶＣｌｉｐを、ＢＤ−ＲＯＭ上のＰｌａｙＬＩｓｔ情報、Ｃｌｉｐ情報、ＡＶＣｌｉｐと対等に扱うことができる。以上がＶｉｒｔｕａｌ  Ｐａｃｋａｇｅ情報生成についての説明である。続いてＶｉｒｔｕａｌ  ＦｉｌｅＳｙｓｔｅｒｍ部３８による状態管理について説明する。
３．ｅｎａｂｌｅ及びｄｉｓａｂｌｅ
“状態管理”とは、Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅを構築すべきＡＶＣｌｉｐが、ｅｎａｂｌｅであるか、ｄｉｓａｂｌｅであるかの管理である。ここでＰｌａｙＬｉｓｔ情報における１つのＰｌａｙＩｔｅｍ情報がマルチアングル対象である場合、マルチアングル区間を構成するそれぞれのＡＶＣｌｉｐが、ｅｎａｂｌｅであるか／ｄｉｓａｂｌｅであるかという状態管理の対象になる。また、ＰｌａｙＩｔｅｍ情報にＳｕｂＰｌａｙＩｔｅｍ情報が存在する場合、そのＳｕｂＰｌａｙＩｔｅｍ情報のＣｌｉｐ＿ｉｎｆｏｒｍａｔｉｏｎ＿ｆｉｌｅ＿ｎａｍｅに記述されているＡＶＣｌｉｐも、ｅｎａｂｌｅであるか／ｄｉｓａｂｌｅであるかという状態管理の対象になる。【００７４】  図１７（ａ）は、Ｖｉｒｔｕａｌ  ＦｉｌｅＳｙｓｔｅｍ部３８による状態管理の一例を示す図である。本図に示すように、ＡＶＣｌｉｐの状態には、“ｅｎａｂｌｅ”、“ｄｉｓａｂｌｅ”というものがある。“ｅｎａｂｌｅ”とは、Ｃｌｉｐ情報と、それに対応するＡＶＣｌｉｐとがＬｏｃａｌ  Ｓｔｏｒａｇｅ１８上に存在し、そのＡＶＣｌｉｐがＲｅａｄ  Ｏｎｌｙ  Ｍｏｄｅに設定されている状態をいう。
一方、“ｄｉｓａｂｌｅ”とは、Ｃｌｉｐ情報がＬｏｃａｌ  Ｓｔｏｒａｇｅ１８上に存在するもの、これに対応するＡＶＣｌｉｐが、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８に存在しないか（Ｍｉｓｓｉｎｇ  Ｓｔｒｅａｍ）、存在したとしても、削除され得る状態にあることをいう。【００７５】  ｄｉｓａｂｌｅは、削除され得るものと取り扱われるので、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８上の容量が不足した際、ｄｉｓａｂｌｅのＡＶＣｌｉｐは削除の対象になる。
従ってＬｏｃａｌ  Ｓｔｏｒａｇｅ１８にＡＶＣｌｉｐがダウンロードされた場合、Ｖｉｒｔｕａｌ  ＦｉｌｅＳｙｓｔｅｒｍ部３８がこのＡＶＣｌｉｐをｅｎａｂｌｅに変化させない限り、Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２は、このダウンロードされたＡＶＣｌｉｐを存在しないものとして扱うことになる。Ｖｉｒｔｕａｌ  Ｆｉｌｅ  Ｓｙｓｔｅｒｍ部３８の作為がない限り、Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２は、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８上のＡＶＣｌｉｐを認識しないので、不安定な状態のまま、Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２が再生を進めるようなことは有り得ない。【００７６】  ３．Ｒｅａｄ  Ｏｎｌｙ  Ｍｏｄｅ及びそのキャンセル
続いてＲｅａｄ  Ｏｎｌｙ  Ｍｏｄｅについて説明する。Ｒｅａｄ  Ｏｎｌｙ  Ｍｏｄｅへの変化は、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８におけるボリューム管理情報の、ファイル管理情報を書き換えることでなされる。この書き換えの対象は、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８におけるＤＬＤＡＴディレクトリ配下のＰＡＣＫＡＧＥ００００１ディレクトリにおけるファイル管理情報であり、かかるファイル管理情報における、ファイル属性を全てＲｅａｄ−ｏｎｌｙ属性に書き換えることにより、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８上のＡＶＣｌｉｐは、書き換えられることはなくなる。そのため、Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２による再生中、アプリケーションがＬｏｃａｌ  Ｓｔｏｒａｇｅ１８上のＡＶＣｌｉｐをアクセスしようとしても、ＡＶＣｌｉｐが書き換えられることはないので、再生中のＡＶＣｌｉｐの同一性は保たれることになる。【００７７】  Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８上のＡＶＣｌｉｐを、Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２から認識できるような状態にした際、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８において、そのＡＶＣｌｉｐを格納しているファイルをＲｅａｄ−ｏｎｌｙ属性にするので、Ｊａｖａ（登録商標）仮想マシン上のアプリケーションが、ダイレクトにＬｏｃａｌ  Ｓｔｏｒａｇｅ１８をアクセスしたとしても、そのＡＶＣｌｉｐの内容が途中から変わってしまうことはない。【００７８】  Ｒｅａｄ  Ｏｎｌｙ  Ｍｏｄｅのキャンセルについて説明する。Ｒｅａｄ  Ｏｎｌｙ  Ｍｏｄｅのキャンセルは、Ｒｅａｄ  Ｏｎｌｙ  Ｍｏｄｅへの変化同様、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８におけるボリューム管理情報の、ファイル管理情報を書き換えることでなされる。この書き換えの対象は、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８におけるＤＬＤＡＴディレクトリ配下のＰＡＣＫＡＧＥ００００１ディレクトリにおけるファイル管理情報であり、かかるファイル管理情報における、ファイル管理情報を、Ｒｅａｄ−ｏｎｌｙ属性からＲｅ−ｗｒｉｔａｂｌｅ属性に書き換えることにより、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８上のＡＶＣｌｉｐは、いつでも書き換えられることになる。そのため、Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２による再生が済んだ直後、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８におけるファイル管理情報を、Ｒｅ−ｗｒｉｔａｂｌｅ属性に書き換えることにより、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８上のＡＶＣｌｉｐは、削除の対象になる。以上が、状態管理についての説明である。【００７９】  ４．状態管理とＶｉｒｔｕａｌ  Ｐａｃｋａｇｅ情報との関係
この状態管理の内容は、Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅ情報の作成に反映されうる。つまり状態管理において、ｄｉｓａｂｌｅとされているＡＶＣｌｉｐについてのファイル管理情報は、ＢＤ−ＲＯＭのボリューム管理情報に追加されず、ｅｎａｂｌｅとされているＡＶＣｌｉｐについてのファイル管理情報のみが、ＢＤ−ＲＯＭのボリューム管理情報に追加されるのである。こうして作成したＶｉｒｔｕａｌ  Ｐａｃｋａｇｅ情報を、Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２に引き渡すことにより、Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２は、ｅｎａｂｌｅと設定されたＡＶＣｌｉｐのみを認識することになる。ＢＤ−ＲＯＭ上に存在するＡＶＣｌｉｐ＃１、及びＬｏｃａｌ  Ｓｔｏｒａｇｅ１８上に存在するＡＶＣｌｉｐ＃２、ＡＶＣｌｉｐ＃３、ＡＶＣｌｉｐ＃４のうち、ＡＶＣｌｉｐ＃１、ＡＶＣｌｉｐ＃２はｅｎａｂｌｅであるが、ＡＶＣｌｉｐ＃３、ＡＶＣｌｉｐ＃４はｄｉｓａｂｌｅであるとすると、Ｖｉｒｔｕａｌ  ＦｉｌｅＳｙｓｔｅｒｍ部３８は、図１８に示すように、Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅ情報の作成を行う。図１８は、状態管理を反映したＶｉｒｔｕａｌ  Ｐａｃｋａｇｅ情報の作成を示す図である。本図においてＡＶＣｌｉｐ＃２についてのファイル管理情報は、ＢＤボリューム構成情報におけるＳＴＲＥＡＭディレクトリのディレクトリ管理情報に追加されるが、ＡＶＣｌｉｐ＃３、ＡＶＣｌｉｐ＃４についてのファイル管理情報は、ＢＤボリューム構成情報におけるＳＴＲＥＡＭディレクトリのディレクトリ管理情報に追加されない。図１８左下における４つのＡＶＣｌｉｐのうち、ＡＶＣｌｉｐ＃２にあたる、００００２．Ｍ２ＴＳがｅｎａｂｌｅであり、ＡＶＣｌｉｐ＃３、ＡＶＣｌｉｐ＃４にあたる、００００３．Ｍ２ＴＳ，００００４．Ｍ２ＴＳがｄｉｓａｂｌｅであるものとする。そうすると、本図に示すように、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８において、ＡＶＣｌｉｐ＃２にあたる、００００２．Ｍ２ＴＳのファイル属性は、Ｒｅａｄ−ｏｎｌｙ属性に設定される。またＡＶＣｌｉｐ＃３、ＡＶＣｌｉｐ＃４にあたる、００００３．Ｍ２ＴＳ，００００４．Ｍ２ＴＳのファイル属性は、Ｒｅ−ｗｒｉｔａｂｌｅ属性に設定される。こうして作成したＶｉｒｔｕａｌ  Ｐａｃｋａｇｅ情報をＰｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２に引き渡すことにより、Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２は、ｄｉｓａｂｌｅにあるＡＶＣｌｉｐ＃３、ＡＶＣｌｉｐ＃４を認識することはない。【００８０】  ここでＣｌｉｐ情報は存在するが、対応するＡＶＣｌｉｐがＬｏｃａｌ  Ｓｔｏｒａｇｅ１８上にない場合、そのＡＶＣｌｉｐはｄｉｓａｂｌｅに設定された。しかし、Ｃｌｉｐ情報に対するファイルパスがストリーム格納位置情報ファイルにあるにもかかわらず、ＡＶＣｌｉｐはおろかＣｌｉｐ情報すらＬｏｃａｌ  Ｓｔｏｒａｇｅ１８にない場合、Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅの構築は不可能になる。つまり、Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅにおいて本来あるべきＣｌｉｐ情報が存在しないことは、Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅ全体に波及することを意味する。【００８１】  ５．Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅ情報の引き渡し
以上の１．〜４．にて作成されたＶｉｒｔｕａｌ  Ｐａｃｋａｇｅ情報が、どのように引き渡されるかについて説明する。
ここで図１８に示したように、ＰｌａｙＬｉｓｔ情報、Ｃｌｉｐ情報＃２〜Ｃｌｉｐ情報＃４、ＡＶＣｌｉｐ＃２はダウンロードが完了しているものＡＶＣｌｉｐ＃３、ＡＶＣｌｉｐ＃４のダウンロードは未完である状態である場合を想定する。かかる状態でＶｉｒｔｕａｌ  Ｐａｃｋａｇｅ構築が要求されれば、Ｖｉｒｔｕａｌ  ＦｉｌｅＳｙｓｔｅｒｍ部３８は、図１９に示すような動作を行う。図１９は、ネットワーク管理モジュール３７によるダウンロードが途上である場合の、Ｖｉｒｔｕａｌ  ＦｉｌｅＳｙｓｔｅｍ部３８によるＶｉｒｔｕａｌ  Ｐａｃｋａｇｅ構築を示す図である。本図の状況でＶｉｒｔｕａｌ  Ｐａｃｋａｇｅ構築が要求されれば（◎１  ＶＰＣｒｅａｔｅ）、ＢＤ−ＲＯＭ及びＬｏｃａｌ  Ｓｔｏｒａｇｅ１８からディレクトリ管理情報及びファイル管理情報を読み出して（◎２，３）、Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅの構築を行い、Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅ情報をＰｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２に引き渡すと共に（◎４）、アプリケーションに引き渡す（◎５）。こうすることでＰｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２は、Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅを通じてＢＤ−ＲＯＭ、及び、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８上のＡＶＣｌｉｐから１つのストリームシーケンスを構築することができる。【００８２】  またアプリケーションに引き渡したＶｉｒｔｕａｌ  Ｐａｃｋａｇｅ情報においてＣｌｉｐ情報＃３、Ｃｌｉｐ情報＃４が存在するもの、ＡＶＣｌｉｐ＃３、ＡＶＣｌｉｐ＃４は存在しないので、アプリケーションは、ＡＶＣｌｉｐ＃３、ＡＶＣｌｉｐ＃４がストリーム列を構成するもの、これらが存在しないストリーム（Ｍｉｓｓｉｎｇ  Ｓｔｒｅａｍ）であると認識することができる。
以上がＶｉｒｔｕａｌ  ＦｉｌｅＳｙｓｔｅｍ部３８についての説明である。【００８３】  ＜管理情報変換モジュール３９＞
管理情報変換モジュール３９は、ＢＤ−Ｊ  Ｍｏｄｕｌｅ２９ｂ内のミドルウエアの１つであり、Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅ中に存在するＰｌａｙＬｉｓｔ情報のインスタンス生成をアプリケーションが要求した際、Ｊａｖａ（登録商標）仮想マシンのＷｏｒｋ  Ｍｅｍｏｒｙ５４に、ＪＭＦ形式によるＰｌａｙＬｉｓｔ情報のインスタンス（図１６のＷｏｒｋ  Ｍｅｍｏｒｙ５４内に示したＰｌａｙＬｉｓｔオブジェクト）を生成する。【００８４】  このインスタンス（ＰｌａｙＬｉｓｔオブジェクト）は、ＰｌａｙＬｉｓｔ情報である“データ部”と、複数の“メソッド部”とをもつ。
ＰｌａｙＬｉｓｔオブジェクトにおける複数のメソッドは、再生開始（Ｐｌａｙ）、再生停止（Ｓｔｏｐ）、一時停止（Ｐａｕｓｅ  Ｏｎ）、一時停止の解除（Ｐａｕｓｅ  Ｏｆｆ）、Ｓｔｉｌｌ機能の解除（ｓｔｉｌｌ  ｏｆｆ）、速度指定付きの早送り（Ｆｏｒｗａｒｄ  Ｐｌａｙ（ｓｐｅｅｄ））、速度指定付きの巻戻し（Ｂａｃｋｗａｒｄ  Ｐｌａｙ（ｓｐｅｅｄ））、音声切り換え（Ａｕｄｉｏ  Ｃｈａｎｇｅ）、副映像切り換え（Ｓｕｂｔｉｔｌｅ  Ｃｈａｎｇｅ）、アングル切り換え（Ａｎｇｌｅ  Ｃｈａｎｇｅ）といった、諸々の再生処理を、Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２に行わせるものである。よってアプリケーションは、このメソッドを呼び出すことにより、そのＰｌａｙＬｉｓｔにより規定されるストリームシーケンスを再生したり、かかる再生を停止したりすることができる。【００８５】  ここで、ＰｌａｙＬｉｓｔオブジェクトにより再生されるＰｌａｙＬｉｓｔ情報について説明する。このＰｌａｙＬｉｓｔ情報は、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８上に存在するＰｌａｙＬｉｓｔ情報である。
ＢＤ−ＲＯＭ上のＰｌａｙＬｉｓｔ情報は、ＢＤ−ＲＯＭ上のＡＶＣｌｉｐのみを参照しているのに対し、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８上のＰｌａｙＬｉｓｔ情報は“Ｐｒｏｇｒｅｓｓｉｖｅ  ＰｌａｙＬｉｓｔ情報”と呼ばれ、ＢＤ−ＲＯＭ上のＡＶＣｌｉｐと、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８上のＡＶＣｌｉｐとを参照する。【００８６】  ここでＰｒｏｇｒｅｓｓｉｖｅ  ＰｌａｙＬｉｓｔ情報が、ＰｌａｙＩｔｅｍ情報＃１〜ＰｌａｙＩｔｅｍ情報＃５という５つのＰｌａｙＩｔｅｍ情報から構成されているものとする。このうち、３つのＰｌａｙＩｔｅｍ情報＃１〜ＰｌａｙＩｔｅｍ情報＃３は、ＢＤ−ＲＯＭ上のＣｌｉｐ情報を参照するものであり、残りの２つ（ＰｌａｙＩｔｅｍ情報＃４、ＰｌａｙＩｔｅｍ情報＃５）が、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８上のＣｌｉｐ情報を参照するものである場合、このＰｒｏｇｒｅｓｓｉｖｅ  ＰｌａｙＬｉｓｔ情報は、図２０（ａ）に示すように、ＢＤ−ＲＯＭ上のＡＶＣｌｉｐと、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８上のＡＶＣｌｉｐとから１つのストリームシーケンスを定義することができる。【００８７】  図２０（ａ）は、ローカルストレージに格納されたＰＬ情報により、どのようなＰｌａｙＬｉｓｔ再生時間軸が定義されるかを示す図である。第１段目は、ＢＤ−ＲＯＭに記録されたＡＶＣｌｉｐにおける再生時間軸を示し、第２段目は、ローカルストレージに格納されたＰＬ情報により定義されるＰｌａｙＬｉｓｔ再生時間軸を示す。第３段目は、ローカルストレージに格納されたＡＶＣｌｉｐ＃２における再生時間軸を、第４段目は、ローカルストレージに格納されたＡＶＣｌｉｐ＃３における再生時間軸を、第５段目は、ローカルストレージに格納されたＡＶＣｌｉｐ＃４における再生時間軸を示す。【００８８】  ＰｌａｙＬｉｓｔ情報におけるＰｌａｙＩｔｅｍのうち、ＰｌａｙＩｔｅｍ情報＃４、ＰｌａｙＩｔｅｍ情報＃５、ＰｌａｙＩｔｅｍ情報＃６が、ＡＶＣｌｉｐ＃２、ＡＶＣｌｉｐ＃３、ＡＶＣｌｉｐ＃４を再生区間として指定するなら、Ｐｒｏｇｒｅｓｓｉｖｅ  ＰｌａｙＬｉｓｔ情報は、ＢＤ−ＲＯＭ上のＡＶＣｌｉｐ及びＬｏｃａｌ  Ｓｔｏｒａｇｅ１８上のＡＶＣｌｉｐを１つのストリームシーケンスとして規定することができる。
ここでＰｒｏｇｒｅｓｓｉｖｅ  ＰｌａｙＬｉｓｔ情報の“Ｐｒｏｇｒｅｓｓｉｖｅ”とは、ＰｌａｙＬｉｓｔ情報を構成するＰｌａｙＩｔｅｍ情報により参照されるＡＶＣｌｉｐのうち、一部のものがｅｎａｂｌｅであれば、残りのものがｄｉｓａｂｌｅであったとしても、ストリームシーケンスの再生を開始することができることを意味する。【００８９】  図２０（ｂ）は、Ｐｒｏｇｒｅｓｓｉｖｅ  ＰｌａｙＬｉｓｔ情報の概念を示す図である。本図の第２段目〜第５段目は、図２０（ａ）の第２段目、第３段目、第４段目、第５段目を示すものである。図２０（ａ）の第３段目、図２０（ｂ）の第３段目のＡＶＣｌｉｐはｅｎａｂｌｅであるが、第４段目〜第５段目のＡＶＣｌｉｐがｄｉｓａｂｌｅである場合、Ｐｒｏｇｒｅｓｓｉｖｅ  ＰｌａｙＬｉｓｔ情報により参照される４つのＡＶＣｌｉｐのうち、ＡＶＣｌｉｐ＃３、ＡＶＣｌｉｐ＃４は再生しえないもの、ＡＶＣｌｉｐ＃１、ＡＶＣｌｉｐ＃２は再生し得るので、ストリームシーケンスの再生は開始できることになる。このように、一部のＡＶＣｌｉｐであれば、投機的に再生を開始することができるのがＰｒｏｇｒｅｓｓｉｖｅ  ＰｌａｙＬｉｓｔ情報の特徴である。【００９０】  Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅ構築がＶｉｒｔｕａｌ  ＦｉｌｅＳｙｓｔｅｍ部３８によりなされた段階において、図２０のようなＰｒｏｇｒｅｓｓｉｖｅ  ＰｌａｙＬｉｓｔ情報についてのインスタンス生成を、Ｗｏｒｋ  Ｍｅｍｏｒｙ５４上のアプリケーションが要求した場合、管理情報変換モジュール３９は、図２１に示すような処理を行う。図２１は、管理情報変換モジュール３９によるインスタンス生成を示す図である。【００９１】  Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅに存在するＰｌａｙＬｉｓｔ情報のインスタンス生成を要求する、生成メソッドをアプリケーション呼び出すと（◎１）、管理情報変換モジュール３９はＰｌａｙＬｉｓｔ情報をシナリオメモリ２５から読み出して（◎２）、このＰｒｏｇｒｅｓｓｉｖｅ  ＰｌａｙＬｉｓｔ情報をデータ部にし、メソッド部を付け加えたＰｌａｙＬｉｓｔオブジェクトをＷｏｒｋ  Ｍｅｍｏｒｙ５４に生成する（◎３）。かかるＰｌａｙＬｉｓｔオブジェクトがＷｏｒｋ  Ｍｅｍｏｒｙ５４に得られるので、アプリケーションは、このＰｌａｙＬｉｓｔオブジェクトのメソッドを呼び出すことにより、ＰｌａｙＬｉｓｔ情報により規定されるストリームシーケンスの再生を、Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２に命じることができる。【００９２】  図２２は、ＰｌａｙＬｉｓｔオブジェクトにおけるＰｌａｙメソッドの呼び出しを示す図である。このＰｌａｙメソッドの呼び出しにより（◎４）、Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２に対し、ＰＬ再生のファンクションコールがなされる（◎５）。そうすると、Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２は、再生が要求されたＰｌａｙＬｉｓｔ情報により参照されているＡＶＣｌｉｐ（ＢＤ−ＲＯＭ上のＡＶＣｌｉｐ＃１、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８上のＡＶＣｌｉｐ＃２）を読み出し（◎６，７）、順次デコーダに供給させる。以上が管理情報変換モジュール３９についての説明である。【００９３】  ＜メソッド実行モジュール４０＞
メソッド実行モジュール４０は、ＢＤ−Ｊ  Ｍｏｄｕｌｅ２９ｂ内のミドルウェアにおける構成要素の１つであり、Ｊａｖａ（登録商標）仮想マシン３０に存在するアプリケーションからのメソッド呼出に応じて、各種メソッドを実行する。メソッド実行モジュール４０により実行されるメソッドには、様々なものがあるが、ｇｅｔＭｉｓｓｉｎｇＳｔｒｅａｍｓメソッド、ｅｎａｂｌｅＣｌｉｐメソッド、ｄｉｓａｂｌｅＣｌｉｐメソッド、ｇｅｔＤｉｓａｂｌｅＣｌｉｐｓメソッドといったものは、本願における特徴的なものである。以降、これらのメソッドについて説明する。【００９４】  １．ｇｅｔＭｉｓｓｉｎｇＳｔｒｅａｍｓメソッド
ｇｅｔＭｉｓｓｉｎｇＳｔｒｅａｍｓメソッドとは、ネットワーク管理モジュール３７によるダウンロードが継続している際に、未だＭｉｓｓｉｎｇ  ＳｔｒｅａｍになっているＡＶＣｌｉｐが存在するかを、Ｖｉｒｔｕａｌ  ＦｉｌｅＳｙｓｔｅｍ部３８に問い合わせるメソッドである。【００９５】  ここで図１９のようなＶｉｒｔｕａｌ  Ｐａｃｋａｇｅ情報がＷｏｒｋ  Ｍｅｍｏｒｙ５４上のアプリケーションに引き渡されたものとする。Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅ構築時に判明していたＭｉｓｓｉｎｇ  ＳｔｒｅａｍがＡＶＣｌｉｐ＃３、ＡＶＣｌｉｐ＃４であり、その後、アプリケーションがｇｅｔＭｉｓｓｉｎｇＳｔｒｅａｍｓメソッドを呼び出すことにより、最新のＭｉｓｓｉｎｇ  Ｓｔｒｅａｍについて、Ｖｉｒｔｕａｌ  ＦｉｌｅＳｙｓｔｅｍ部３８に問い合わせたとする。この場合のメソッド実行モジュール４０による処理は、図２２のようになる。【００９６】  図２３は、この間合せの結果を模式的に示す図である。本図において◎１に示すように、ｇｅｔＭｉｓｓｉｎｇＳｔｒｅａｍｓメソッドの呼び出しがなされ、この呼出により、Ｖｉｒｔｕａｌ  ＦｉｌｅＳｙｓｔｅｍ部３８がＡＶＣｌｉｐ＃４を戻り値として返すとする。そうすると、ｇｅｔＭｉｓｓｉｎｇＳｔｒｅａｍｓメソッドを呼び出す前においてＭｉｓｓｉｎｇ  ＳｔｒｅａｍがＡＶＣｌｉｐ＃３、ＡＶＣｌｉｐ＃４であったのに対し、ｇｅｔＭｉｓｓｉｎｇＳｔｒｅａｍｓメソッドの呼出後においてＡＶＣｌｉｐ＃４になったことから、ＡＶＣｌｉｐ＃３はＭｉｓｓｉｎｇ  Ｓｔｒｅａｍでなくなった（ダウンロードが完了した）と判定することができる。こうすることにより、ダウンロードの進行により、Ｍｉｓｓｉｎｇ  Ｓｔｒｅａｍがどれだけ解消されたかを知得することができる。【００９７】  ２．ｅｎａｂｌｅＣｌｉｐメソッド
ｅｎａｂｌｅＣｌｉｐメソッドとは、Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅの構築時においてＭｉｓｓｉｎｇ  Ｓｔｒｅａｍであったが、その後、Ｍｉｓｓｉｎｇ  ＳｔｒｅａｍでなくなったＡＶＣｌｉｐが存在する場合、そのＡＶＣｌｉｐをｅｎａｂｌｅに設定するためのメソッドである。【００９８】  ここで図２３においてＡＶＣｌｉｐ＃３がＭｉｓｓｉｎｇ  Ｓｔｒｅａｍでなくなったことが明らかになったので、このＡＶＣｌｉｐ＃３を対象にしたｅｎａｂｌｅＣｌｉｐメソッドを呼び出したものとする。この場合、メソッド実行モジュール４０は、図２４に示すような処理を行う。図２４は、ｅｎａｂｌｅＣｌｉｐメソッドの呼出を模式的に示す図である。このＡＶＣｌｉｐ＃３を対象にしたｅｎａｂｌｅＣｌｉｐメソッドの呼び出しがなされると（◎１）、アプリケーションは、ＡＶＣｌｉｐ＃３をｅｎａｂｌｅに変化させ、Ｓｕｃｃｅｓｓ応答をアプリケーションに返す（◎２）。こうすることにより、Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅの構築にてＭｉｓｓｉｎｇ  ＳｔｒｅａｍでなくなったＡＶＣｌｉｐをｅｎａｂｌｅに変化させてゆくことができる。ＡＶＣｌｉｐをｅｎａｂｌｅにした際、メソッド実行モジュール４０は、新たにｅｎａｂｌｅにしたＡＶＣｌｉｐを含むＶｉｒｔｕａｌ  Ｐａｃｋａｇｅ情報を、アプリケーション及びＰｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２に引き渡させる。これにより、Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２及びアプリケーションは、新たに、ｅｎａｂｌｅになったＡＶＣｌｉｐを認識し、アクセスすることができる。【００９９】  ３．ｄｉｓａｂｌｅＣｌｉｐメソッド
ｄｉｓａｂｌｅＣｌｉｐメソッドとは、ｅｎａｂｌｅにあるＡＶＣｌｉｐを、ｄｉｓａｂｌｅに設定するメソッドである。ここで図２０に示したＰｒｏｇｒｅｓｓｉｖｅ  ＰｌａｙＬｉｓｔ情報の再生中において、ＡＶＣｌｉｐ＃２の再生が完了した旨のイベントが、Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２により通知されたものとする。この場合、ＡＶＣｌｉｐ＃２の再生が完了したことが通知されれば、図２５のような処理を行う。図２５は、ｄｉｓａｂｌｅＣｌｉｐメソッドの呼出を模式的に示す図である。本図において、Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２による再生に進行に伴い、ＡＶＣｌｉｐ＃２の再生が完了したことが、ｅｎｄ  ｏｆ  Ｃｌｉｐイベントにより通知されれば（◎１）、このＡＶＣｌｉｐ＃２を対象にしたｄｉｓａｂｌｅＣｌｉｐメソッドを呼出すことにより（◎２）、アプリケーションは、ＡＶＣｌｉｐ＃３をｄｉｓａｂｌｅに変化させることができる。こうすることにより、再生が済んだＡＶＣｌｉｐをｄｉｓａｂｌｅに変化させてゆくことができる。こうすることにより、ＡＶＣｌｉｐ＃２はｄｉｓａｂｌｅに設定されるので、ＡＶＣｌｉｐ＃２は、削除の対象になる。予告編を構成するようなＡＶＣｌｉｐが時々刻々とダウンロードされるような場合、Ｐｒｏｇｒｅｓｓｉｖｅ  ＰｌａｙＬｉｓｔ情報により規定されるストリームシーケンスのうち、再生が済んだものを順次ｄｉｓａｂｌｅにしてゆけば、再生が済んだＡＶＣｌｉｐを、ｄｉｓａｂｌｅにして削除の対象にしてゆくことができる。ＡＶＣｌｉｐをｄｉｓａｂｌｅにした際、メソッド実行モジュール４０は、新たにｄｉｓａｂｌｅにしたＡＶＣｌｉｐを除いたＶｉｒｔｕａｌ  Ｐａｃｋａｇｅ情報を、アプリケーション及びＰｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２に引き渡させる。これにより、Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２は、ｄｉｓａｂｌｅになったＡＶＣｌｉｐを認識することはない。尚、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８上のＡＶＣｌｉｐを削除するにあたって、ミドルウェアは、削除しようとするアプリケーションの書き込み権限をチェックした上で、その削除を実行する。これは、不本意な削除によるＡＶＣｌｉｐの消失を防ぐためである。【０１００】  ４．ｇｅｔＤｉｓａｂｌｅＣｌｉｐｓメソッド
ｇｅｔＤｉｓａｂｌｅＣｌｉｐｓメソッドとは、ＤｉｓａｂｌｅになっているＡＶＣｌｉｐが存在するかを問い合わせるメソッドである。このメソッドの呼出によりアプリケーションはこのメソッドを使って現在ＤｉｓａｂｌｅとなっているＡＶＣｌｉｐがあるかどうかの情報を得ることができる。【０１０１】  使用例としては、例えば、Ｐｒｏｇｒｅｓｓｉｖｅ  ＰｌａｙＬｉｓｔ再生中、ユーザからのチャプタースキップ要求を受けたときに、アプリケーションは、ジャンプ先のＡＶＣｌｉｐがＤｉｓａｂｌｅかどうかをこのメソッドを使って判断する。そして、Ｄｉｓａｂｌｅであれば、チャプタースキップを行わず、「現在ダウンロード中のため、そのチャプターにはまだジャンプできません」などと、注意を喚起する表示を行う。こうすることにより、チャプタースキップといった、特殊再生を、Ｐｒｏｇｒｅｓｓｉｖｅ  ＰｌａｙＬｉｓｔの再生中に実行することができる。【０１０２】  以上で、メソッド実行モジュール４０により実行されるメソッドについての説明を終わる。
これまで説明した各構成要素について、フローチャートを参照しながら、その処理手順の詳細を説明する。【０１０３】  図２６は、Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅ構築時の処理を示すフローチャートである。本フローチャートでは、ストリーム格納位置情報ファイルに格納されたＡＶＣｌｉｐに対応するＣｌｉｐ情報がＬｏｃａｌ  Ｓｔｏｒａｇｅ１８に完備されているかどうかを先ず判定し（ステップＳ１）、Ｃｌｉｐ情報に未完のものがあれば、アプリケーションからのＶｉｒｔｕａｌ  Ｐａｃｋａｇｅ呼出に対し、Ｆａｌｓｅリターンを行う（ステップＳ１０）。Ｃｌｉｐ情報に対するファイルパスがストリーム格納位置情報ファイルにあるにもかかわらず、ＡＶＣｌｉｐはおろかＣｌｉｐ情報すらＬｏｃａｌ  Ｓｔｏｒａｇｅにない場合、Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅの構築は不可能になる。【０１０４】  一方、ストリーム格納位置情報ファイルに記述された全てのＣｌｉｐ情報が、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８に存在すれば（ステップＳ１でＹｅｓ）、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８におけるＰｌａｙＬｉｓｔ情報のファイル管理情報を、ＢＤボリューム管理情報におけるＰＬＡＹＬＩＳＴディレクトリのディレクトリ管理情報に追加し（ステップＳ２）、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８におけるＣｌｉｐ情報のファイル管理情報を、ＢＤボリューム管理情報におけるＣＬＰＩＮＦディレクトリのディレクトリ管理情報に追加する（ステップＳ３）。その後、ステップＳ４〜ステップＳ８のループ処理を実行する。このループ処理は、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８に存在するそれぞれのＣｌｉｐ情報について、ステップＳ６〜ステップＳ８の処理を繰り返すものである（ステップＳ４、ステップＳ５）。ここで、ループ処理の対象となる１つのＣｌｉｐ情報をＣｌｉｐ情報ｘとする。【０１０５】  本ループ処理において、Ｃｌｉｐ情報ｘに対応するＡＶＣｌｉｐを特定し（ステップＳ６）、このＡＶＣｌｉｐはｅｎａｂｌｅであるか、ｄｉｓａｂｌｅであるかを判定する（ステップＳ７）。ｅｎａｂｌｅであれば、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８におけるＡＶＣｌｉｐｘのファイル管理情報を、ＢＤボリューム管理情報におけるＳＴＲＥＡＭディレクトリのディレクトリ管理情報に追加する（ステップＳ８）。一方、ＡＶＣｌｉｐがｄｉｓａｂｌｅであれば、ステップＳ８をスキップする。以上の処理を全てのＣｌｉｐ情報及びＡＶＣｌｉｐについて繰り返せば、ｅｎａｂｌｅのＡＶＣｌｉｐについてのファイル管理情報が、ＢＤボリューム管理情報に追加されることになる。こうした追加により得られたＢＤボリューム管理情報がＶｉｒｔｕａｌ  Ｐａｃｋａｇｅ情報になる。このＶｉｒｔｕａｌ  Ｐａｃｋａｇｅ情報をＶｉｒｔｕａｌ  Ｐａｃｋａｇｅ呼出の呼出元のアプリケーション及びＰｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２に引き渡し（ステップＳ９）、処理を終える。【０１０６】  図２７（ａ）は、ｅｎａｂｌｅＣｌｉｐメソッドの呼出時の処理手順を示すフローチャートである。このメソッドの呼出がなされれば、呼出時の引数からｅｎａｂｌｅにすべきＡＶＣｌｉｐｙを特定し（ステップＳ１４）、ステップＳ１５、ステップＳ１６の判定を順次行う。ステップＳ１５は、���ＶＣｌｉｐｙがＬｏｃａｌ  Ｓｔｏｒａｇｅ１８に格納されているか否かを判定であり、ステップＳ１６は、ＡＶＣｌｉｐｙのファイルパスがストリーム格納位置情報ファイルに記載されているかの判定である。これらの判定ステップのどちらかがＮｏであれば、呼出元にＦａｌｓｅを返し、本フローチャートの処理を終える（ステップＳ１９）。一方、ステップＳ１５−ステップＳ１６の双方がＹｅｓなら、ＡＶＣｌｉｐｙをｅｎａｂｌｅにして、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８において、ＡＶＣｌｉｐｙを格納したファイルのファイル属性をＲｅａｄ−Ｏｎｌｙ属性にして、ＡＶＣｌｉｐｙをＲｅａｄ  Ｏｎｌｙ  Ｍｏｄｅにする（ステップＳ１７）。その後、Ｓｕｃｃｅｓｓを戻り値としてリターンする（ステップＳ１８）。【０１０７】  図２７（ｂ）は、ｄｉｓａｂｌｅＣｌｉｐメソッドの呼出時の処理手順を示すフローチャートである。このメソッドの呼出がなされれば、呼出時の引数からｄｉｓａｂｌｅにすべきＡＶＣｌｉｐｙを特定し（ステップＳ２１）、ステップＳ２２、ステップＳ２３の判定を順次行う。ステップＳ２２は、ＡＶＣｌｉｐｙが再生中であるか否かの判定であり、ステップＳ２３は、ＡＶＣｌｉｐｙのファイルパスがストリーム格納位置情報ファイルに記載されていないかの判定である。これらの判定ステップのどちらかがＹｅｓであれば、呼出元にｆａｌｓｅを返し、本フローチャートの処理を終える（ステップＳ２６）。一方、ステップＳ２２−ステップＳ２３の双方がＹｅｓなら、ＡＶＣｌｉｐｙをｄｉｓａｂｌｅにして、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８において、ＡＶＣｌｉｐｙを格納しているファイルのファイル属性をＲｅ−ｗｒｉｔａｂｌｅ属性にしてＡＶＣｌｉｐｙのＲｅａｄ  Ｏｎｌｙ  Ｍｏｄｅをキャンセルする（ステップＳ２４）。その後、Ｓｕｃｃｅｓｓを戻り値としてリターンする（ステップＳ２５）。【０１０８】  図２８は、Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２による再生手順を示すフローチャートである。本フローチャートは、ＰｌａｙＬｉｓｔ情報における先頭のＰｌａｙＩｔｅｍ情報をＰｌａｙＩｔｅｍとして、ステップＳ３３〜ステップＳ４２のループ処理を実行するものである。ステップＳ３３〜ステップＳ４２のループ処理における制御変数は、変数ｉであり、ステップＳ３３〜ステップＳ４０の処理を実行して、その後、制御変数ｉをインクリメントするという処理を、変数ｉが、ＰｌａｙＩｔｅｍ数（Ｎｕｍｂｅｒ  Ｏｆ  ＰｌａｙＩｔｅｍ）を越えるまで実行するものである（ステップＳ４１）。【０１０９】  このステップＳ３２〜ステップＳ４０の処理について説明する。これらの処理は、ＰｌａｙＩｔｅｍ情報ｉのＣｌｉｐ＿ｉｎｆｏｒｍａｔｉｏｎ＿ｆｉｌｅ＿ｎａｍｅに記述されているＡＶＣｌｉｐを、ＡＶＣｌｉｐｊとし（ステップＳ３３）、再生の対象とする。ステップＳ３４は、ＡＶＣｌｉｐｊがｅｎａｂｌｅであるか否かの判定であり、もしＡＶＣｌｉｐｊがｅｎａｂｌｅでなければ、本フローチャートの処理をその時点で中止する。もしｅｎａｂｌｅであれば、ＡＶＣｌｉｐｊのうち、ＰｌａｙＩｔｅｍ．Ｉｎ＿ｔｉｍｅからＰｌａｙＩｔｅｍ．Ｏｕｔ＿ｔｉｍｅまでの部分を再生するよう、ドライブ装置及びデコーダに指示する（ステップＳ３５）。【０１１０】  ステップＳ３６は、ＰｌａｙＩｔｅｍ情報ｉをＳｙｎｃ＿ＰｌａｙＩｔｅｍ＿ｉｄに指定しているＳｕｂＰｌａｙＩｔｅｍｋが存在するか否かの判定である。もし存在しなけば、そのままステップＳ４１に移行する。
もし存在すれば、ＳｕｂＰｌａｙＩｔｅｍｋのＣｌｉｐ＿ｉｎｆｏｒｍａｔｉｏｎ＿ｆｉｌｅ＿ｎａｍｅに記述されているＡＶＣｌｉｐをＡＶＣｌｉｐｈにし（ステップＳ３８）、そのＡＶＣｌｉｐｈがｅｎａｂｌｅであるか否かを判定する（ステップＳ３９）。もしｅｎａｂｌｅであれば、そのＡＶＣｌｉｐｈのうち、Ｓｙｎｃ＿Ｓｔａｒｔ＿ＰＴＳ＿ｏｆ＿ＰｌａｙＩｔｅｍから、Ｏｕｔ＿ｔｉｍｅまでを再生するよう、ドライブ装置及びデコーダに指示してステップＳ４１に移行する（ステップＳ４０）。【０１１１】  もしそのＡＶＣｌｉｐｈがｅｎａｂｌｅでない場合は、ステップＳ４０をスキップする。以上の処理を、ＰｌａｙＬｉｓｔ情報を構成する全てのＰｌａｙＩｔｅｍ情報について繰り返すことにより、ＰｌａｙＬｉｓｔ情報にて規定されるストリームシーケンスの再生がなされる。図２９は、アプリケーションの処理手順を示すフローチャートである。先ず、ストリーム格納位置情報ファイルと、ＰｌａｙＬＩｓｔ情報、Ｃｌｉｐ情報、ＡＶＣｌｉｐのダウンロードを要求する（ステップＳ５１）。そしてＶｉｒｔｕａｌ  Ｐａｃｋａｇｅの構築要求を行う（ステップＳ５２）。ステップＳ５３は、構築要求がＳｕｃｃｅｓｓしたか否かの判定であり、Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅの構築がＳｕｃｃｅｓｓになるまで、Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅの構築要求は何回でも繰り返される。【０１１２】  Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅの構築が成功すれば、ステップＳ５５を実行する。ステップＳ５５は、Ｍｉｓｓｉｎｇ  ＳｔｒｅａｍがＶｉｒｔｕａｌ  Ｐａｃｋａｇｅ情報の中に存在するか否かの判定である。具体的には、Ｃｌｉｐ情報は存在するのに、対応するＡＶＣｌｉｐがない場合、そのＡＶＣｌｉｐをＭｉｓｓｉｎｇ  Ｓｔｒｅａｍとして取得する（ステップＳ５６）。
その後、ステップＳ５７においてＰｒｏｇｒｅｓｓｉｖｅ  ＰｌａｙＬｉｓｔ情報のＰｌａｙメソッドを呼び出し、そしてＰｌａｙメソッドがＳｕｃｃｅｓｓしたか否かの判定を行う（ステップＳ５８）。もしＦａｌｓｅであれば、本フローチャートの処理を終了する。もしＳｕｃｃｅｓｓであれば、ステップＳ５９〜ステップＳ６１からなるループ処理を実行する。【０１１３】  ステップＳ５９は、ｇｅｔＭｉｓｓｉｎｇＳｔｒｅａｍｓメソッドの呼び出しである。ステップＳ６０は、ステップＳ５９での呼出にて、Ｍｉｓｓｉｎｇ  Ｓｔｒｅａｍが通知されれば、以前取得したＭｉｓｓｉｎｇ  Ｓｔｒｅａｍの中に、ダウンロードが完了したものが存在するか否かの判定である。。
ステップＳ６１は、ＡＶＣｌｉｐの再生完了を示すイベントが発生したか否かの判定である。アプリケーションは、Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２による再生がなされている間、このステップＳ５９〜ステップＳ６１の処理を繰り返し実行する。【０１１４】  上述した処理の繰り返しにおいて、ダウンロードが完了したＡＶＣｌｉｐがあれば（ステップＳ６０においてＹｅｓ）、そのダウンロードが完了したＭｉｓｓｉｎｇ  Ｓｔｒｅａｍに対し、ｅｎａｂｌｅＣｌｉｐメソッドを呼び出す（ステップＳ６２）。こうすることにより、ダウンロードが完了したＡＶＣｌｉｐを早期にｅｎａｂｌｅにすることができる。
また、再生が終了したＡＶＣｌｉｐがあれば（ステップＳ６１でＹｅｓ）、そのＡＶＣｌｉｐが予告編であるか否かを判定して、もし予告編であれば、そのＡＶＣｌｉｐに対し、ｄｉｓａｂｌｅＣｌｉｐメソッドを呼び出す。こうすることにより、再生が完了した予告編のＡＶＣｌｉｐを旱期にｄｉｓａｂｌｅにすることができる。【０１１５】  ＜動作＞
図２０に示したＰｌａｙＬｉｓｔ情報を再生する場合の、再生装置の動作について説明する。図３０〜図３３は、ネットワーク管理モジュール３７によるダウンロードの進捗と、Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２による再生の進捗とを示す図である。第１段目は、ネットワーク管理モジュール３７によるダウンロードの進捗を示し、第２段目は、Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２による再生の進捗を示す。第３段目は現状の時間軸である。第４段目は、アプリケーションによるメソッドの呼出を示す。【０１１６】  第１段目に示すように、ネットワーク管理モジュール３７によるダウンロードは、図２０に示したＰｌａｙＬｉｓｔ情報のダウンロード、Ｃｌｉｐ情報＃１〜Ｃｌｉｐ情報＃４のダウンロード、ＡＶＣｌｉｐ＃１〜ＡＶＣｌｉｐ＃４のダウンロードからなる。
図３０（ａ）現在時点＝時点ｔ０
時点ｔ０は、ＰｌａｙＬｉｓｔ情報、Ｃｌｉｐ情報＃１〜Ｃｌｉｐ情報＃４のダウンロードが完了した時点である。そのため、Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅの構築は可能になる。また、Ｖｉｒｔｕａｌ  ＰａｃｋａｇｅにおけるＰｌａｙＬｉｓｔ情報はＡＶＣｌｉｐ＃１を参照しており、このＡＶＣｌｉｐ＃１は、少なくともｅｎａｂｌｅであるから、ストリームシーケンスの再生は、ｔ０から開始している。【０１１７】  図３０（ｂ）現在時点＝時点ｔ１
時点ｔ１は、ＰｌａｙＬｉｓｔ＃１により参照されるＡＶＣｌｉｐ＃１の再生途上であるが、ＡＶＣｌｉｐ＃２のダウンロードが完了した時点である。ＡＶＣｌｉｐ＃２のダウンロードが完了したので、ＡＶＣｌｉｐ＃２はｄｉｓａｂｌｅではなくなっている。そのためアプリケーションが、ｅｎａｂｌｅＣｌｉｐメソッドを呼出すことにより、ＡＶＣｌｉｐ＃２をｅｎａｂｌｅにすることができる。この呼出により、ＡＶＣｌｉｐ＃２にあたるＰｌａｙＩｔｅｍ＃４は、再生の対象になる。【０１１８】  図３１（ａ）現在時点＝時点ｔ２
時点ｔ２は、ＰｌａｙＬｉｓｔ＃１により参照されるＡＶＣｌｉｐ＃２の再生途上であるが、ＡＶＣｌｉｐ＃３のダウンロードが完了した時点である。ＡＶＣｌｉｐ＃３のダウンロードが完了したので、ＡＶＣｌｉｐ＃３はｄｉｓａｂｌｅではなくなっている。そのためアプリケーションが、ｅｎａｂｌｅＣｌｉｐメソッドを呼出すことにより、ＡＶＣｌｉｐ＃３をｅｎａｂｌｅにすることができる。この呼出により、ＡＶＣｌｉｐ＃３にあたるＰｌａｙＩｔｅｍ＃５は、再生の対象になる。【０１１９】  図３１（ｂ）現在時点＝時点ｔ３
時点ｔ３は、ＡＶＣｌｉｐ＃２の再生が完了した時点である。ＡＶＣｌｉｐ＃２の再生が完了しており、ＡＶＣｌｉｐ＃２は予告編であるので、ＰｌａｙＩｔｅｍにより参照されるＡＶＣｌｉｐ＃２は、削除の対象になりうる。そこで、このＡＶＣｌｉｐ＃２を対象にしたｄｉｓａｂｌｅＣｌｉｐメソッドを呼び出すことにより、ＡＶＣｌｉｐ＃２を削除対象にする。こうすることでＰｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２は、ＡＶＣｌｉｐ＃２があたかも存在しなかったかのように扱うことができる。【０１２０】  図３２（ａ）現在時点＝時点ｔ４
時点ｔ４は、ＰｌａｙＬｉｓｔ＃１により参照されるＡＶＣｌｉｐ＃３の再生途上であるが、ＡＶＣｌｉｐ＃４のダウンロードが完了した時点である。ＡＶＣｌｉｐ＃４のダウンロードが完了したので、ＡＶＣｌｉｐ＃４はｄｉｓａｂｌｅではなくなっている。そのためアプリケーションが、ｅｎａｂｌｅＣｌｉｐメソッドを呼出すことにより、ＡＶＣｌｉｐ＃４をｅｎａｂｌｅにすることができる。この呼出により、ＡＶＣｌｉｐ＃４にあたるＰｌａｙＩｔｅｍ＃６は、再生の対象になる。【０１２１】  図３２（ｂ）現在時点＝時点ｔ５
時点ｔ５は、ＡＶＣｌｉｐ＃３の再生が完了した時点である。ＡＶＣｌｉｐ＃３の再生が完了しており、ＡＶＣｌｉｐ＃３は予告編であるので、ＰｌａｙＩｔｅｍ＃５により参照されるＡＶＣｌｉｐ＃３は、削除の対象になりうる。そこで、このＡＶＣｌｉｐ＃３を対象にしたｄｉｓａｂｌｅＣｌｉｐメソッドを呼び出すことにより、ＡＶＣｌｉｐ＃３を削除対象にする。こうすることでＰｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２は、ＡＶＣｌｉｐ＃３があたかも存在しなかったかのように扱うことができる。【０１２２】  図３３  現在時点＝時点ｔ６
時点ｔ６は、ＡＶＣｌｉｐ＃４の再生が完了した時点である。ＡＶＣｌｉｐ＃４の再生が完了しており、ＡＶＣｌｉｐ＃４は予告編であるので、ＰｌａｙＩｔｅｍ＃６により参照されるＡＶＣｌｉｐ＃４は、削除の対象になりうる。そこで、このＡＶＣｌｉｐ＃４を対象にしたｄｉｓａｂｌｅＣｌｉｐメソッドを呼び出すことにより、ＡＶＣｌｉｐ＃４を削除対象にする。こうすることでＰｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２は、ＡＶＣｌｉｐ＃４があたかも存在しなかったかのように扱うことができる。【０１２３】  以上のように本実施形態によれば、ネットワーク管理モジュール３７によるダウンロードと、Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２による再生とを、パラレルに行い、ダウンロードがなされたＡＶＣｌｉｐをｄｉｓａｂｌｅからｅｎａｂｌｅに設定することにより、Ｐｌａｙｂａｃｋ  Ｃｏｎｔｒｏｌ  Ｅｎｇｉｎｅ３２による再生に供することができる。これにより、ダウンロードの進捗を追いかけるように再生処理を進める“追いかけ再生”を実現することができる。【０１２４】  また、ダウンロードされたデジタルストリームのうち、再生が済んだものをｅｎａｂｌｅからｄｉｓａｂｌｅに変化させることにより、再生が済んだデジタルストリームを、削除の対象として供することができるので、再生処理の進捗を追いかけるように、削除処理を進める“追いかけ削除”を実現することができる。
ダウンロードの進捗を追いかけてように再生処理を進める“追いかけ再生”や、再生処理の進捗を追いかけるように、削除処理を進める“追いかけ削除”が可能になるので、再生装置と再生装置とを結ぶ通信回線の通信レートが低く、また再生装置に内蔵されているＬｏｃａｌ  Ｓｔｏｒａｇｅ１８の容量が小さい場合でも、ＢＤ−ＲＯＭに記録されているデジタルストリームと、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８にダウンロードとを１つのストリームシーケンスとして扱い、連続的に再生してゆくことができる。【０１２５】  以上の説明は、本発明の全ての実施行為の形態を示している訳ではない。下記（Ａ）（Ｂ）（Ｃ）（Ｄ）・・・・・の変更を施した実施行為の形態によっても、本発明の実施は可能となる。本願の請求項に係る各発明は、以上に記載した複数の実施形態及びそれらの変形形態を拡張した記載、ないし、一般化した記載としている。拡張ないし一般化の程度は、本発明の技術分野の、出願当時の技術水準の特性に基づく。【０１２６】  （Ａ）上述したＶｉｒｔｕａｌ  ＦｉｌｅＳｙｓｔｅｒｍ部３８の説明において、ディレクトリ管理情報及びファイル管理情報の具体的なデータ構造については、言及しなかったが、ＢＤ−ＲＯＭにおけるファイルシステムが、ＩＳＯ／ＩＥＣ１３３４６に規定されたものである場合、ディレクトリ管理情報は、“ディレクトリファイル”、及び、“ファイルエントリ”から構成されてもよい。ディレクトリファイルは、自身の配下にあるディレクトリのディレクトリ名を記述したファイル識別記述子や、自身の配下にあるファイルのファイル名を記述したファイル識別記述子からなる。この“ファイルエントリ”は、記述子タグと、ＩＣＢタグと、アロケーション記述子長と、拡張属性と、アロケーション記述子とからなる。【０１２７】  ファイル管理情報は、ファイルエントリから構成されてもよい。アロケーション記述子は、ファイルを構成する各エクステント毎の記録位置を示す。
この場合、Ｖｉｒｔｕａｌ  Ｐａｃｋａｇｅ情報の作成は、ＢＤ−ＲＯＭのボリューム管理情報におけるＳＴＲＥＡＭディレクトリに相当するディレクトリファイルに、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ上のＡＶＣｌｉｐのファイル名のファイル識別記述子を追加し、ＢＤ−ＲＯＭのボリューム管理情報におけるＳＴＲＥＡＭディレクトリの配下に、Ｌｏｃａｌ  Ｓｔｏｒａｇｅ上のＡＶＣｌｉｐについてのファイルエントリーを追加することによりなされる。【０１２８】  （Ｂ）全ての実施形態では、記録媒体をＢＤ−ＲＯＭとして実施したが、ＡＶＣｌｉｐ及びＰｌａｙＬｉｓｔ情報を記録しうる記録媒体なら、どのような記録媒体であってもよい。例えば、ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−ＲＷ，ＤＶＤ−Ｒ，ＤＶＤ＋ＲＷ，ＤＶＤ＋Ｒ，ＣＤ−Ｒ，ＣＤ−ＲＷ等の光ディスク、ＰＤ，ＭＯ等の光磁気ディスクであってもよい。また、コンパクトフラッシュ（登録商標）カード、スマートメディア、メモリスティック、マルチメディアカード、ＰＣＭ−ＣＩＡカード等の半導体メモリカードであってもよい。フレシキブルディスク、ＳｕｐｅｒＤｉｓｋ，Ｚｉｐ，Ｃｌｉｋ！等の磁気記録ディスク（ｉ）、ＯＲＢ，Ｊａｚ，ＳｐａｒＱ，ＳｙＪｅｔ，ＥＺＦｌｅｙ，マイクロドライブ等のリムーバルハードディスクドライブ（ｉｉ）であってもよい。更に、機器内蔵型のハードディスクであってもよい。【０１２９】  （Ｃ）全ての実施形態における再生装置は、ＢＤ−ＲＯＭに記録されたＡＶＣｌｉｐをデコードした上でＴＶに出力していたが、再生装置をＢＤ−ＲＯＭドライブのみとし、これ以外の構成要素をＴＶに具備させてもい、この場合、再生装置と、ＴＶとをＩＥＥＥ１３９４で接続されたホームネットワークに組み入れることができる。また、実施形態における再生装置は、テレビと接続して利用されるタイプであったが、ディスプレイと一体型となった再生装置であってもよい。更に、各実施形態の再生装置において、処理の本質的部分をなす部分のみを、再生装置としてもよい。これらの再生装置は、何れも本願明細書に記載された発明であるから、これらの何れの態様であろうとも、各実施形態に示した再生装置の内部構成を元に、再生装置を製造する行為は、本願の明細書に記載された発明の実施行為になる。各実施形態に示した再生装置の有償・無償による譲渡（有償の場合は販売、無償の場合は贈与になる）、貸与、輸入する行為も、本発明の実施行為である。店頭展示、カタログ勧誘、パンフレット配布により、これらの譲渡や貸渡を、一般ユーザに申し出る行為も本再生装置の実施行為である。【０１３０】  （Ｄ）各フローチャートに示したプログラムによる情報処理は、ハードウェア資源を用いて具体的に実現されていることから、上記フローチャートに処理手順を示したプログラムは、単体で発明として成立する。全ての実施形態は、再生装置に組み込まれた態様で、本発明に係るプログラムの実施行為についての実施形態を示したが、再生装置から分離して、各実施形態に示したプログラム単体を実施してもよい。プログラム単体の実施行為には、これらのプログラムを生産する行為（１）や、有償・無償によりプログラムを譲渡する行為（２）、貸与する行為（３）、輸入する行為（４）、双方向の電子通信回線を介して公衆に提供する行為（５）、店頭展示、カタログ勧誘、パンフレット配布により、プログラムの譲渡や貸渡を、一般ユーザに申し出る行為（６）がある。【０１３１】  （Ｅ）各フロ−チャ−トにおいて時系列に実行される各ステップの「時」の要素を、発明を特定するための必須の事項と考える。そうすると、これらのフロ−チャ−トによる処理手順は、再生方法の使用形態を開示していることがわかる。各ステップの処理を、時系列に行うことで、本発明の本来の目的を達成し、作用及び効果を奏するよう、これらのフロ−チャ−トの処理を行うのであれば、本発明に係る記録方法の実施行為に該当することはいうまでもない。【０１３２】  （Ｆ）各実施形態において、記録媒体に記録されるデジタルストリームはＡＶＣｌｉｐであったが、ＤＶＤ−Ｖｉｄｅｏ規格、ＤＶＤ−Ｖｉｄｅｏ  Ｒｅｃｏｒｄｉｎｇ規格のＶＯＢ（Ｖｉｄｅｏ  Ｏｂｊｅｃｔ）であってもよい。ＶＯＢは、ビデオストリーム、オーディオストリームを多重化することにより得られたＩＳＯ／ＩＥＣ１３８１８−１規格準拠のプログラムストリームである。またＡＶＣｌｉｐにおけるビデオストリームは、ＭＰＥＧ４やＷＭＶ方式であってもよい。更にオーディオストリームは、Ｌｉｎｅａｒ−ＰＣＭ方式、Ｄｏｌｂｙ−ＡＣ３方式、ＭＰ３方式、ＭＰＥＧ−ＡＡＣ方式、Ｄｔｓ、ＷＭＡ（Ｗｉｎｄｏｗｓ（登録商標）ｍｅｄｉａ  ａｕｄｉｏ）であってもよい。【０１３３】  （Ｇ）各実施形態における映像作品は、アナログ放送で放送されたアナログ映像信号をエンコードすることにより得られたものでもよい。デジタル放送で放送されたトランスポートストリームから構成されるストリームデータであってもよい。
またビデオテープに記録されているアナログ／デジタルの映像信号をエンコードしてコンテンツを得ても良い。更にビデオカメラから直接取り込んだアナログ／デジタルの映像信号をエンコードしてコンテンツを得ても良い。他にも、配信サーバにより配信されるデジタル著作物でもよい。【０１３４】  （Ｈ）ＢＤ−Ｊモジュール２９ｂは、衛星放送受信のために機器に組み込まれたＪａｖａ（登録商標）プラットフォームであってもよい。ＢＤ−Ｊモジュール２９ｂがかかるＪａｖａ（登録商標）プラットフォームであれば、本発明に係る再生装置は、ＭＨＰ用ＳＴＢとしての処理を兼用することになる。
更に携帯電話の処理制御のために機器に組み込まれたＪａｖａ（登録商標）プラットフォームであってもよい。かかるＢＤ−Ｊモジュール２９ｂがかかるＪａｖａ（登録商標）プラットフォームであれば、本発明に係る再生装置は、携帯電話としての処理を兼用することになる。【０１３５】  （Ｉ）レイアモデルにおいて、ＢＤ−Ｊモードの上にＨＤＭＶモードを配置してもよい。特にＨＤＭＶモードでの動的シナリオの解釈や、動的シナリオに基づく制御手順の実行は、再生装置に対する負担が軽いので、ＨＤＭＶモードをＢＤ−Ｊモード上で実行させても何等問題は生じないからである。また再生装置や映画作品の開発にあたって、動作保証が１つのモードで済むからである。【０１３６】  更にＢＤ−Ｊモードだけで再生処理を実行してもよい。ＢＤ−ＪモードでもＰＬの再生と同期した再生制御が可能になるから、強いてＨＤＭＶモードを設けなくてもよいという理由による。
（Ｊ）Ｌｏｃａｌ  Ｓｔｏｒａｇｅ１８にダウンロードされるＡＶＣｌｉｐは、特典映像や制作者、俳優のインタビューであってもよい。
（Ｋ）あるＣｌｉｐがＭｉｓｓｉｎｇ  ＳｔｒｅａｍもしくはＲｅｗｒｉｔａｂｌｅかどちらの状態であるかを、アプリケーションから知る方法として、上記実施形態では、ｇｅｔＭｉｓｓｉｎｇＳｔｒｅａｍメソッドを呼び出すことにしたが、ｊａｖａ（登録商標）．ｎｅｔ，ｊａｖａ（登録商標）．ｉｏ等のｊａｖａ（登録商標）ライブラリをを用いて実現しても良い。この場合、以下のａ），ｂ），ｃ）の方法を用いることが現実的である。【０１３７】  ａ）Ｂｉｎｄｉｎｇ  Ｕｎｉｔ  Ｍａｎｉｆｅｓｔ  Ｆｉｌｅ（ストリーム位置格納情報）の内容をＸＭＬ  Ｐａｒｓｅｒを利用して解析する。
2005109434.tif 000002
※″ＢＵＤＡ″はＢｉｎｄｉｎｇ  Ｕｎｉｔ  Ｄａｔａ  Ａｒｅａの略であり、
Ｂｉｎｄｉｎｇ  Ｕｎｉｔ  Ｄａｔａ  ＡｒｅａとはＶｉｒｔｕａｌ  Ｐａｃｋａｇｅに利用する
ファイルを格納するＬｏｃａｌ  Ｓｔｏｒａｇｅ内の領域のこと
ｂ）ｊａｖａ（登録商標）．ｉｏを使って、Ｂｉｎｄｉｎｇ  Ｕｎｉｔ  Ｍａｎｉｆｅｓｔ  Ｆｉｌｅに記載されているファイルパス（ストリーム格納位置）に、ｘｘｘｘｘ．ｍ２ｔｓが存在するか確認する。【０１３８】    例：
2005109434.tif 000003
ｃ）ダウンロードが完了したかどうかの判断はｊａｖａ（登録商標）．ｎｅｔ，ｊａｖａ（登録商標）．ｉｏを使って、サーバ上のファイルのサイズとＬｏｃａｌ  Ｓｔｏｒａｇｅ上のファイルのサイズが一致しているかどうかを確認する。【０１３９】    例：
2005109434.tif 000004
【産業上の利用可能性】
【０１４０】  本発明に係る再生装置は、ホームシアターシステムでの利用のように、個人的な用途で利用されることがありうる。しかし本発明は上記実施形態に内部構成が開示されており、この内部構成に基づき量産することが明らかなので、資質において工業上利用することができる。このことから本発明に係る再生装置は、産業上の利用可能性を有する。
【図１】
2005109434.tif 000005
【図２】
2005109434.tif 000006
【図３】
2005109434.tif 000007
【図４】
2005109434.tif 000008
【図５】
2005109434.tif 000009
【図６】
2005109434.tif 000010
【図７】
2005109434.tif 000011
【図８】
2005109434.tif 000012
【図９】
2005109434.tif 000013
【図１０】
2005109434.tif 000014
【図１１】
2005109434.tif 000015
【図１２】
2005109434.tif 000016
【図１３】
2005109434.tif 000017
【図１４】
2005109434.tif 000018
【図１５】
2005109434.tif 000019
【図１６】
2005109434.tif 000020
【図１７】
2005109434.tif 000021
【図１８】
2005109434.tif 000022
【図１９】
2005109434.tif 000023
【図２０】
2005109434.tif 000024
【図２１】
2005109434.tif 000025
【図２２】
2005109434.tif 000026
【図２３】
2005109434.tif 000027
【図２４】
2005109434.tif 000028
【図２５】
2005109434.tif 000029
【図２６】
2005109434.tif 000030
【図２７】
2005109434.tif 000031
【図２８】
2005109434.tif 000032
【図２９】
2005109434.tif 000033
【図３０】
2005109434.tif 000034
【図３１】
2005109434.tif 000035
【図３２】
2005109434.tif 000036
【図３３】
2005109434.tif 000037
【手続補正書】
【提出日】平成18年11月9日(2006.11.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ストリームシーケンスを再生する再生装置であって、
再生手段と、
ストリームシーケンスを構成する個々のデジタルストリームが、複数の記録媒体のそれぞれ分かれて存在する場合、各デジタルストリームの状態を、再生手段が認識できる状態、又は、再生手段が認識し得ない状態に設定するパッケージ管理手段と、
アプリケーションを実行して、記録媒体に対するアクセス制御を実行するアプリケーション実行手段とを備え、
前記再生手段は、
ストリームシーケンスを構成する一部のデジタルストリームが認識できる状態であれば、残りのデジタルストリームが認識できない状態であっても、再生を開始し、
前記パッケージ管理手段は、
ストリームシーケンスのうち一部のデジタルストリームに対する再生処理が係続している間、アプリケーション実行手段からの要求に従って、残りのデジタルストリームの状態を、再生手段が認識し得る状態、又は、認識し得ない状態に変化させる、ことを特徴とする再生装置。
【請求項２】
複数の記録媒体には、リードオンリー型の記録媒体と、リライタブル型の記録媒体とがあり、
前記再生手段は、リードオンリー型記録媒体のファイルレイアウトのみを認識できるものであり、
リライタブル型記録媒体に記録されているデジタルストリームは、ファイルに格納された状態で、リライタブル型記録媒体に記録されていて、  
前記パッケージ管理手段による認識し得る状態への変化は、
リードオンリー型記録媒体上のファイル管理情報と、リライタブル型記録媒体におけるファイル管理情報とから、仮想的なボリューム管理情報を生成して、再生手段に引き渡すことによりなされ、
前記認識し得ない状態への変化は、  
前記仮想的なボリューム管理情報から、リライタブル型記録媒体におけるファイル管理情報を取り去ることでなされる、請求項１記載の再生装置。
【請求項３】
パッケージ管理手段による認識できる状態への変化は更に、
リライタブル型記録媒体において、デジタルストリームを格納したファイルを、リードオンリー属性に変化させる処理を含み、
認識できない状態への変化は更に、
リライタブル型記録媒体において、デジタルストリームを格納したファイルを、リライタブル属性に変化させる処理を含む
ことを特徴とする請求項２記載の再生装置。  
【請求項４】
複数の記録媒体には、書き換え可能型の記録媒体があり、
前記アプリケーションによるアクセス制御とは、書き換え可能型記録媒体への書き込み制御であり、
前記再生処理の係続中に書き込みが完了した時点において、前記デジタルストリームは、前記パッケージ管理手段により認識できる状態に変化させられ、
再生処理が完了した時点において、書き換え可能型記録媒体に記録されたデジタルストリームは、前記パッケージ管理手段により認識できない状態に変化させられる、請求項３記載の再生装置。
【請求項５】
ストリームシーケンスを再生する処理をコンピュータに行わせるプログラムであって、
再生ステップと、
ストリームシーケンスを構成する個々のデジタルストリームが、複数の記録媒体のそれぞれ分かれて存在する場合、各デジタルストリームの状態を、再生ステップが認識できる状態、又は、再生ステップが認識し得ない状態に設定するパッケージ管理ステップと、
アプリケーションを実行して、記録媒体に対するアクセス制御を実行するアプリケーション実行ステップとをコンピュータに実行させ、
前記再生ステップは、
ストリームシーケンスを構成する一部のデジタルストリームが認識できる状態であれば、残りのデジタルストリームが認識できない状態であっても、再生を開始し、
前記パッケージ管理ステップは、
ストリームシーケンスのうち一部のデジタルストリームに対する再生処理が係続している間、アプリケーション実行ステップからの要求に従って、残りのデジタルストリームの状態を、再生ステップが認識し得る状態、又は、認識し得ない状態に変化させる、ことを特徴とするプログラム。
【請求項６】
ストリームシーケンスを再生する再生方法であって、
再生ステップと、
ストリームシーケンスを構成する個々のデジタルストリームが、複数の記録媒体のそれぞれ分かれて存在する場合、各デジタルストリームの状態を、再生ステップが認識できる状態、又は、再生ステップが認識し得ない状態に設定するパッケージ管理ステップと、
アプリケーションを実行して、記録媒体に対するアクセス制御を実行するアプリケーション実行ステップとを含み、
前記再生ステップは、
ストリームシーケンスを構成する一部のデジタルストリームが認識できる状態であれば、残りのデジタルストリームが認識できない状態であっても、再生を開始し、
前記パッケージ管理ステップは、
ストリームシーケンスのうち一部のデジタルストリームに対する再生処理が係続している間、アプリケーション実行ステップからの要求に従って、残りのデジタルストリームの状態を、再生ステップが認識し得る状態、又は、認識し得ない状態に変化させる、ことを特徴とする再生方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、Virtual Packageの技術分野に属する発明である。
【背景技術】
【０００２】
Virtual Packageとは、BD-ROM等のリードオンリー型の記録媒体に記録されているデジタルストリームと、ハードディスク等のリライタブル型の記録媒体に記録されているデジタルストリームとを動的に組み合わせて、仮想的なパッケージを構築することにより、リードオンリー型記録媒体の内容拡張を図る技術である。ここBD-ROMに記録されているデジタルストリームが、映画作品の本編を構成するものであり、ハードディスクに記録されているデジタルストリームが、映画作品の続編を構成するものである場合、上述したVirtualPackageを構築することにより、BD-ROM上の本編と、ハードディスク上の続編とを、1つの長編の映画作品として取り扱い、再生に供することができる。
【０００３】
尚、Virtual Packageについての先行技術としては、以下の特許文献に記載されているものがある。
【特許文献１】特開2002-369154号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところがBD-ROMに記録されたデジタルストリームと、ハードディスクに記録されたデジタルストリームとを1つのストリームシーケンスとして再生してゆく場合、ストリームシーケンスを構成するデジタルストリームの中に、不安定な状態のものがふくまれている可能性がある。ここで不安定な状態のデジタルストリームとは、ハードディスクへのダウンロードが未完了であったり、書き込みが不完全であるようなデジタルストリームをいう。不安定な状態のデジタルストリームが含まれているにも拘らず、上述したストリームシーケンスを再生しようとすると、再生手段による再生時点が不安定なストリームに至った途端、再生が乱れたり、再生が途切れてしまうことが有り得る。
【０００５】
ここで、再生しようとするストリームが不安定な状態であるか否かを、再生装置内の再生手段(デコーダ等)が正しくチェックすることができれば、かかる再生の乱れや途切れを回避することができる。しかし再生手段は、1／24秒,1／29.94秒というフレーム期間毎に、映像信号を出力するという処理に専念しており、そのようなチェックのための余力は存在しないことが一般的である。そのため上述したような再生の乱れや途切れの発生は避け得ない。その一方、BD-ROM再生装置を製造するような民生機器の産業分野では、映像再生に対して厳しい品質基準が要求されており、デジタルストリームをチェックするような余力が再生手段側にないとしても、上述したような再生の乱れや途切れが、容認されることはありえない。
【０００６】
本発明の目的は、不安定な状態のデジタルストリームをチェックするような余力が再生手段側にない場合であっても、BD-ROMに記録されたデジタルストリームと、ハードディスクに記録されたデジタルストリームとを1つのストリームシーケンスとして再生してゆく場合の再生の乱れや途切れを防止することができる再生装置を提供することである。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明に係る再生装置は、再生手段と、ストリームシーケンスを構成する個々のデジタルストリームが、複数の記録媒体のそれぞれ分かれて存在する場合、各デジタルストリームの状態を、再生手段が認識できる状態、又は、再生手段が認識し得ない状態に設定するパッケージ管理手段と、アプリケーションを実行して、記録媒体に対するアクセス制御を実行するアプリケーション実行手段とを備え、
前記再生手段は、ストリームシーケンスを構成する一部のデジタルストリームが認識できる状態であれば、残りのデジタルストリームが認識できない状態であっても、再生を開始し、前記パッケージ管理手段は、ストリームシーケンスのうち一部のデジタルストリームに対する再生処理が係続している間、アプリケーション実行手段からの要求に従って、残りのデジタルストリームの状態を、再生手段が認識し得る状態、又は、認識し得ない状態に変化させる、ことを特徴としている。
【発明の効果】
【０００８】
アプリケーションが、デジタルストリームを認識できる状態にするか、認識できない状態にするかを変化させることで、デジタルストリームを再生手段に再生させるか、再生させないかの選択を、実現することができる。デジタルストリームを再生手段に再生させるか、再生させないかの選択権は、記録媒体のアクセスを実現するアプリケーションが掌握するので、アプリケーションが、デジタルストリームが記録媒体に正しく書き込まれたことを確認し得ない場合、そのデジタルストリームを認識できない状態にすれば、そのデジタルストリームはなかったものと取り扱われる。これにより不安定なデジタルストリームを誤って再生することはない。よって、映像の乱れや途切れが出現することはない。
【０００９】
ここで複数の記録媒体には、リードオンリー型の記録媒体と、リライタブル型の記録媒体とがあり、前記再生手段は、リードオンリー型記録媒体のファイルレイアウトのみを認識できるものであり、
リライタブル型記録媒体に記録されているデジタルストリームは、ファイルに格納された状態で、リライタブル型記録媒体に記録されていて、  
前記パッケージ管理手段による認識し得る状態への変化は、リードオンリー型記録媒体上のファイル管理情報と、リライタブル型記録媒体におけるファイル管理情報とから、仮想的なボリューム管理情報を生成して、再生手段に引き渡すことによりなされ、
前記認識し得ない状態への変化は、  前記仮想的なボリューム管理情報から、リライタブル型記録媒体におけるファイル管理情報を取り去ることでなされる。
【００１０】
パッケージ管理手段による認識できる状態への変化は更に、リライタブル型記録媒体において、デジタルストリームを格納したファイルを、リードオンリー属性に変化させる処理を含み、認識できない状態への変化は更に、リライタブル型記録媒体において、デジタルストリームを格納したファイルを、リライタブル属性に変化させる処理を含む。
【００１１】
ここで一部のデジタルストリームの再生中に、残りのデジタルストリームを記録媒体にダウンロードするよう、アプリケーションが制御を行い、その一部のデジタルストリームの再生が完了すれば、そのデジタルストリームを認識できる状態に設定することにより、書き込まれたデジタルストリームの再生を、再生手段に行わせることができる。
【００１２】
また、残りのデジタルストリームの書き込みが、一部のデジタルストリームの再生期間内に完了しなければ、そのデジタルストリームを認識できない状態に設定することにより、かかるデジタルストリームを、再生手段による再生から除外することができる。デジタルストリームの再生可否の設定を、ダウンロード処理の進捗を連動させることができるので、ストリームシーケンスを構成するデジタルストリームの再生と、ストリームシーケンスを構成するデジタルストリームのダウンロードとをパラレルに実行することができる。ここでBD-ROMに記録されているデジタルストリームが、映画の本編を構成するものであり、ハードディスクにダウンロードされるデジタルストリームが、映画の予告編である場合、本編デジタルストリームの再生中に、予告編デジタルストリームをダウンロードしておき、本編デジタルストリームの再生が完了すれば、その直後に、予告編デジタルストリームの再生を開始させることができる。
【発明を実施するための最良の形態】
【００１３】
(第１実施形態)
以降、本発明に係る記録媒体の実施形態について説明する。先ず始めに、本発明に係る再生装置の実施行為のうち、使用行為についての形態を説明する。図１は、本発明に係る再生装置の、使用行為についての形態を示す図である。図１において、本発明に係る再生装置は、再生装置２００である。この再生装置２００は、リモコン３００、テレビ４００により形成されるホームシアターシステムに、映画作品を供給するという用途に供される。
【００１４】
以上が本発明に係る再生装置の使用形態についての説明である。続いて本発明に係る再生装置が再生の対象としている、記録媒体について説明する。本発明に係る再生装置により、再生されるのは、BD-ROMである。図２は、BD-ROMの内部構成を示す図である。
【００１５】
本図の第４段目にBD-ROMを示し、第３段目にBD-ROM上のトラックを示す。本図のトラックは、BD-ROMの内周から外周にかけて螺旋状に形成されているトラックを、横方向に引き伸ばして描画している。このトラックは、リードイン領域と、ボリューム領域と、リードアウト領域とからなる。本図のボリューム領域は、物理層、ファイルシステム層、応用層というレイヤモデルをもつ。ディレクトリ構造を用いてBD-ROMの応用層フォーマット(アプリケーションフォーマット)を表現すると、図中の第１段目のようになる。この第1段目においてBD-ROMには、Rootディレクトリの下に、BDMVディレクトリがある。
【００１６】
BDMVディレクトリの配下には、PLAYLISTディレクトリ、CLIPINFディレクトリ、STREAMディレクトリ、BDJAディレクトリと呼ばれる4つのサブディレクトリが存在する。
【００１７】
STREAMディレクトリには、いわばデジタルストリーム本体となるファイルを格納しているディレクトリであり、拡張子M2TSが付与されたファイル(00001.M2TS)が存在する。
【００１８】
PLAYLISTディレクトリには、拡張子MPLSが付与されたファイル(00001.MPLS)が存在する。
【００１９】
CLIPINFディレクトリには、拡張子CLPIが付与されたファイル(00001.CLPI)が存在する。以下、これらのファイルについて説明する。
＜AVClip＞
先ず初めに、拡張子.M2TSが付与されたファイルについて説明する。図３は、拡張子.M2TSが付与されたファイルがどのように構成されているかを模式的に示す図である。拡張子.M2TSが付与されたファイル(00001.M2TS,00002.M2TS,00003.M2TS・・・・・)は、AVClipを格納している。AVClipは(中段)、複数のビデオフレーム(ピクチャpj1,2,3)からなるビデオストリーム、複数のオーディオフレームからなるオーディオストリームを(上１段目)、PESパケット列に変換し(上２段目)、更にTSパケットに変換し(上３段目)、同じく字幕系のプレゼンテーショングラフィクスストリーム(下1段目のPGストリーム)及び対話系のインタラクティブグラフィクスストリーム(下1段目のIGストリーム)をTSパケットに変換して(下３段目)、これらを多重化することで構成される。
【００２０】
AVClipは、図３に示したように多重化がなされているストリームの他に、多重化がなされていないものものある。かかるAVClipは、SubClipと呼ばれ、オーディオストリーム、グラフィクスストリーム、テキスト字幕ストリーム(TextSTStream)等を構成するAVClipが存在する。
＜Clip情報＞
拡張子“CLPI”が付与されたファイル(00001.CLPI)は、AVClipのそれぞれに1対1に対応するClip情報である。管理情報故に、Clip情報は、AVClipにおけるストリームの符号化形式、フレームレート、ビットレート、解像度等の情報や、GOPの先頭位置を示すEP_mapをもっている。
＜PlayList情報＞
拡張子“MPLS”が付与されたファイル(00001.MPLS)は、PlayLIst(PL)情報を格納したファイルである。PL情報は、AVClipを参照してプレイリストを定義する情報である。図４は、PL情報の構成を示す図であり、本図の左側に示すように、PL情報は、『MainPath情報』、『PLMark情報』、『SubPath情報』から構成される。
【００２１】
MainPath情報(MainPath())は、破線の矢印mp1に示すように複数のPlayItem情報(PlayItem())からなる。PlayItemとは、1つ以上のAVClip時間軸上において、In_Time,Out_Timeを指定することで定義される再生区間である。PlayItem情報を複数配置させることで、複数再生区間からなるプレイリスト(PL)が定義される。図中の破線mp2は、PlayItem情報の内部構成をクローズアップしている。本図に示すようにPlayItem情報は、対応するAVClipを示す『Clip_information_file_name』と、『In_time』と、『Out_time』とからなる。図５は、AVClipと、PLとの関係を示す図である。第1段目はAVClipがもつ時間軸を示し、第2段目は、PLがもつ時間軸を示す。PL情報は、PlayItem#1,#2,#3という3つのPlayItem情報を含んでおり、これらPlayItem#1,#2,#3のIn_time,Out_timeにより、3つの再生区間が定義されることになる。これらの再生区間を配列させると、AVClip時間軸とは異なる時間軸が定義されることになる。これが第2段目に示すPL時間軸である。このように、PlayItem情報の定義により、AVClipとは異なる時間軸の定義が可能になる。
【００２２】
AVClipに対する指定は、原則1つであるが、複数AVClipに対する一括指定もあり得る。この一括指定は、PlayItem情報における複数のClip_Information_file_nameによりなされる。図６は、4つのClip_Information_file_nameによりなされた一括指定を示す図である。本図において第1段目〜第4段目は、4つのAVClip時間軸(AVClip#1,#2,#3,#4の時間軸)を示し、第5段目は、PL時間軸を示す。PlayItem情報が有する、4つのClip_Information_file_nameにて、これら4つの時間軸が指定されている。こうすることで、PlayItemが有するIn_time,Out_timeにより、択一的に再生可能な4つの再生区間が定義されることになる。これにより、PL時間軸には、切り換え可能な複数アングル映像からなる区間(いわゆるマルチアングル区間)が定義されることになる。
【００２３】
PLmark情報(PLmark())は、PL時間軸のうち、任意の区間を、チャプターとして指定する情報である。図７は、PLmark情報の内部構成を示す図であり、本図の引き出し線pm1に示すようにPLmark情報は、『ref_to_PlayItem_Id』と、『Mark_time_stamp』とを含む。図８は、PLmarkによるチャプター定義を示す図である。本図において第1段目は、AVClip時間軸を示し、第2段目はPL時間軸を示す。図中の矢印pk1,2は、PLmarkにおけるPlayItem指定(ref_to_PlayItem_Id)と、一時点の指定(mark_time_stamp)とを示す。これらの指定によりPL時間軸には、3つのチャプター(Chapter#1,#2,#3)が定義されることになる。以上がPLmarkについての説明である。続いてSubPath情報について説明する。
【００２４】
SubPath情報(SubPath())は、SubClipの時間軸上にIn_Time,Out_Timeを指定することで1つ以上の再生区間を定義する情報であり、図９に示す内部構成を有している。本図に示すようにSubPath情報は、破線の引き出し線sh1に示すように複数のSubPlayItem情報(SubPlayItem())からなる。破線sh2を用いてクローズアップしているように、SubPlayItem情報は、『Clip_information_file_name』と、『In_time』と、『Out_time』と、『Sync_PlayItem_Id』と、『Sync_start_Pts_of_PlayItem』とからなる。SubClipの時間軸上に対する、In_Time,Out_Timeの指定は、『Clip_information_file_name』、『In_time』、『Out_time』によりなされる。『Sync_PlayItem_Id』及び『Sync_start_Pts_of_PlayItem』は、SubClip時間軸上の再生区間と、PL時間軸とを同期させるという同期指定をなす。この同期指定により、PL時間軸と、SubClip時間軸とは同期して進行することになる。
【００２５】
図１０は、SubClip時間軸上の再生区間定義と、同期指定を示す図である。本図において第1段目は、PL時間軸を示し、第2段目はSubClip時間軸を示す。図中のSubPlayItem.IN_timeは再生区間の始点を、SubPlayItem.Out_timeは再生区間の終点をそれぞれ示す。これによりSubClip時間軸上にも再生区間が定義されていることがわかる。矢印Sn1においてSync_PlayItem_Idは、PlayItemに対する同期指定を示し、矢印Sn2においてsync_start_PTS_of_PlayItemは、PL時間軸におけるPlayItem上の一時点の指定を示す。
【００２６】
複数AVClipの切り換えを可能とするマルチアングル区間や、AVClip−SubClipを同期させ得る同期区間の定義を可能とするのが、BD-ROMにおけるPL情報の特徴である。以上のClip情報及びPL情報は、“静的シナリオ”に分類される。
【００２７】
続いて“動的なシナリオ”について説明する。“動的に”というのは、再生装置２００における状態変化やユーザからのキーイベントにより再生制御の中身がかわることをいう。BD-ROMでは、Java（登録商標）アプリケーションと同様の記述により、この再生制御を記述することができる。つまりBD-ROMでは、Java（登録商標）アプリケーションが、動的シナリオとしての役割を担うことになる。
【００２８】
＜Java（登録商標）アプリケーション＞
Java（登録商標）アプリケーションについて説明する。Java（登録商標）アプリケーションは、仮想マシンのヒープ領域(ワークメモリとも呼ばれる)にロードされた1つ以上のxletプログラムからなる。このワークメモリにロードされたxletプログラム、及び、データから、アプリケーションは構成されることになる。以上がJava（登録商標）アプリケーションの構成である。
【００２９】
このJava（登録商標）アプリケーションの実体にあたるのが、図２におけるBDMVディレクトリ配下のBDJAディレクトリに格納されたJava（登録商標）アーカイブファイル(00001.jar,00002.jar)である。以降、Java（登録商標）アーカイブファイルについて、図１１を参照しながら説明する。
【００３０】
＜Java（登録商標）アーカイブファイル＞
Java（登録商標）アーカイブファイル(図２の00001.jar)は、1つ以上のクラスファイル、1つ以上のデータファイル等を1つにまとめることで得られるファイルである。図１１（ａ）は、アーカイブファイルにより収められているプログラム、データを示す図である。本図におけるデータは、枠内に示すディレクトリ構造が配置された複数ファイルを、java（登録商標）アーカイバでまとめたものである。枠内に示すディレクトリ構造は、Rootディレクトリ、java（登録商標）ディレクトリ、imageディレクトリとからなり、Rootディレクトリにcommon.pkgが、java（登録商標）ディレクトリにクラスファイル(aaa.class,bbb.class)が、imageディレクトリに、menu.jpgが配置されている。java（登録商標）アーカイブファイルは、これらをjava（登録商標）アーカイバでまとめることで得られる。かかるクラスファイル及びデータは、BD-ROMからキャッシュに読み出されるにあたって展開され、キャッシュ上で、ディレクトリに配置された複数ファイルとして取り扱われる。Java（登録商標）アーカイブファイルのファイル名における"zzzzz"という5桁の数値は、アプリケーションのID(applicationID)を示す。本Java（登録商標）アーカイブファイルがキャッシュに読み出された際、このファイル名における数値を参照することにより、任意のJava（登録商標）アプリケーションを構成するプログラム，データを取り出すことができる。
【００３１】
本図におけるクラスファイル(図中のaaa.class,bbb.class)は、上述したxletプログラムに対応するクラスファイルである。Java（登録商標）動作環境による動作モード(BD-Jモード)における再生手順は、このクラスファイルのインスタンスにあたるxletプログラムにより規定される。xletプログラムとは、JMF(Java（登録商標）Media FrameWork)方式のインターフェイスを利用することができるJava（登録商標）プログラムであり、JMF等の方式に従って、キーイベントに基づく処理を行う。xletプログラムは、JMF方式の処理が可能であるので、MPLSファイルに対するJMF方式のインスタンス(PlayListObject)を生成することにより、プレイリスト再生を再生装置２００に命じることができる。他にもxletプログラムでは、ファンクションAPIのコールを記述することにより、BD-ROM再生装置２００特有の処理を実行させることができる。
【００３２】
更にxletプログラムは、WWWサイトをアクセスしてコンテンツをダウンロードするという手順を実行することもできる。これによりダウンロードコンテンツと、プレイリスト再生とを交えた斬新な作品を再生させることができる。
【００３３】
xletプログラムのクラスファイルについて説明する。図１１（ｂ）は、クラスファイルの内部構成を示す図である。本図に示すようにクラスファイルは、通常のクラスファイル同様、『コンスタントプール』、『インターフェイス』、『メソッド1,2,3・・・・n』からなる。クラスファイルにおけるメソッドには、挙動のトリガになるキーイベントが予め登録されているメソッド(EventListner)と、BD-ROM再生装置２００側のファンクションAPIをコールするメソッドがある。これらのメソッドは、自身に割り当てられたローカル変数や、自身をコールする際の引数を用いることにより、演算等の手順が記述されている。以上がJava（登録商標）アーカイブファイルについての説明である。これで、BD-ROMについての説明を終える。続いて、本発明に係る再生装置の内部構成について説明する。
【００３４】
＜再生装置＞
図１２は、本発明に係る再生装置の内部構成を示す図である。本発明に係る再生装置は、本図に示す内部に基づき、工業的に生産される。本発明に係る再生装置は、主としてシステムLSIと、ドライブ装置という2つのパーツからなり、これらのパーツを装置のキャビネット及び基板に実装することで工業的に生産することができる。システムLSIは、再生装置の機能を果たす様々な処理部を集積した集積回路である。こうして生産される再生装置は、BD-ROMドライブ１、ReadBuffer２、デマルチプレクサ３、ビデオデコーダ４、ビデオプレーン５、P-Graphicsデコーダ６、Presentation Graphicsプレーン７、合成部８、フォントゼネレータ９、I-Graphicsデコーダ１０、スイッチ１１、InteractiveGraphicsプレーン１２、合成部１３、CLUT部１４、CLUT部１５、オーディオデコーダ１６、Network Device１７、Local Storage１８、ReadBuffer１９、デマルチプレクサ２０、命令ROM２１、ユーザイベント処理部２２、PSRセット２３、CPU２４、シナリオメモリ２５、Local Memory２６、スイッチ２７から構成される。
【００３５】
先ず初めに、BD-ROMに記録されたAVClip再生に係る構成要素(BDドライブ１〜オーディオデコーダ１６)について説明する。
【００３６】
BD-ROMドライブ１は、BD-ROMのローディング／イジェクトを行い、BD-ROMに対するアクセスを実行する。
【００３７】
Read Buffer２は、FIFOメモリであり、BD-ROMから読み出されたTSパケットが先入れ先出し式に格納される。
【００３８】
デマルチプレクサ(De-MUX)３は、Read Buffer２からTSパケットを取り出して、このTSパケットを構成するTSパケットをPESパケットに変換する。そして変換により得られたPESパケットのうち、CPU２４から設定されたPIDをもつものをビデオデコーダ４、P-Graphicsデコーダ６、I-Graphicsデコーダ１０、オーディオデコーダ１６のどれかに出力する。
【００３９】
ビデオデコーダ４は、デマルチプレクサ３から出力された複数PESパケットを復号して非圧縮形式のピクチャを得てビデオプレーン５に書き込む。
【００４０】
ビデオプレーン５は、非圧縮形式のピクチャを格納しておくためのプレーンである。プレーンとは、再生装置において一画面分の画素データを格納しておくためのメモリ領域である。ビデオプレーン５における解像度は1920×1080であり、このビデオプレーン５に格納されたピクチャデータは、16ビットのYUV値で表現された画素データにより構成される。ビデオプレーン５では、ビデオストリームにおける一フレーム毎の再生映像を、スケーリングすることができる。スケーリングとは、一フレーム毎の再生画像をビデオプレーン５全体の1／4(クオータという)、1／1(フルスケールという)のどちらかに変化させることである。かかるスケーリングを、BD-JモードにおいてCPU２４からの指示に従い実行するので、ビデオストリームの再生画像を、画面の隅に追いやったり、全面的に出すという画面演出が可能になる。
【００４１】
P-Graphicsデコーダ６は、BD-ROMから読み出されたプレゼンテーショングラフィクスストリームをデコードして、非圧縮グラフィクスをPresentationGraphicsプレーン７に書き込む。グラフィクスストリームのデコードにより、字幕が画面上に現れることになる。
【００４２】
Presentation Graphicsプレーン７は、一画面分の領域をもったメモリであり、一画面分の非圧縮グラフィクスを格納することができる。本プレーンにおける解像度は1920×1080であり、PresentationGraphicsプレーン７中の非圧縮グラフィクスの各画素は8ビットのインデックスカラーで表現される。CLUT(Color Lookup Table)を用いてかかるインデックスカラーを変換することにより、PresentationGraphicsプレーン７に格納された非圧縮グラフィクスは、表示に供される。
【００４３】
合成部８は、ビデオプレーン５に格納された非圧縮状態のピクチャデータ(i)を、Presentation Graphicsプレーン７の格納内容と合成する。
【００４４】
フォントゼネレータ９は、文字フォントを用いてtextSTストリームに含まれるテキストコードをビットマップに展開してPresentation Graphicsプレーン７に書き込む。
【００４５】
I-Graphicsデコーダ１０は、HDMVモードにおいてBD-ROM又はLocal Storage１８から読み出されたIGストリームをデコードして、非圧縮グラフィクスをInteractiveGraphicsプレーン１２に書き込む。
【００４６】
スイッチ１１は、フォントゼネレータ９が生成したフォント列、P-Graphicsデコーダ６のデコードにより得られたグラフィクスの何れかを選択的にPresentationGraphicsプレーン７に書き込むスイッチである。
【００４７】
Interactive Graphicsプレーン１２は、I-Graphicsデコーダ１０によるデコードで得られた非圧縮グラフィクスが書き込まれる。またInteractiveGraphicsプレーン１２には、BD-Jモードにおいて、アプリケーションにより描画された文字やグラフィクスが書き込まれる。
【００４８】
合成部１３は、Interactive Graphicsプレーン１２の格納内容と、合成部８の出力である合成画像(非圧縮状態のピクチャデータと、PresentationGraphicsプレーン７の格納内容とを合成したもの)とを合成する。かかる合成により、アプリケーションがI-Graphicsデコーダ１０に書き込んだ文字・グラフィクスを、非圧縮状態のピクチャデータ上にオーバレイして、表示することができる。
【００４９】
CLUT部１４は、ビデオプレーン５に格納された非圧縮グラフィクスにおけるインデックスカラーを、Y,Cr,Cb値に変換する。
【００５０】
CLUT部１５は、Interactive Graphicsプレーン１２に格納された非圧縮グラフィクスにおけるインデックスカラーを、Y,Cr,Cb値に変換する。
【００５１】
オーディオデコーダ１６は、デマルチプレクサ３から出力されたPESパケットを復号して、非圧縮形式のオーディオデータを出力する。
【００５２】
以上がAVClip再生に係る構成要素である。続いてBD-Jモードでの動作に係る構成要素(Network Device１７〜De-mux２０)について説明する。
【００５３】
Network Device１７は、再生装置における通信機能を実現するものであり、BD-JモードにおいてURL指定がJava（登録商標）アプリケーションから与えられれば、そのURLにあたるwebサイトとのTCPコネクション、FTPコネクション等を確立する。かかるコネクション確立によりwebサイトからのダウンロードをJava（登録商標）アプリケーションに行わせる。
【００５４】
Local Storage１８は、Network Device１７により確立されたコネクションを通じてwebサイトからダウンロードされたコンテンツ等、BD-ROM以外の記録媒体、通信媒体から供給されたコンテンツを、メタデータと共に格納しておくためのハードディスクである。このメタデータは、ダウンロードコンテンツをLocalStorage１８にバインドして管理するための情報であり、このLocal Storage１８をアクセスすることで、BD-Jモードにおけるアプリケーションは、ダウンロードコンテンツを利用した様々な処理を行うことができる。
【００５５】
Read Buffer１９は、FIFOメモリであり、Local Storage１８に格納されたダウンロードコンテンツに、SubClipが含まれている場合、このSubClipを構成するTSパケットを、先入れ先出し式に格納する。
【００５６】
デマルチプレクサ(De-MUX)２０は、Read Buffer１９からTSパケットを取り出して、TSパケットをPESパケットに変換する。そして変換により得られたPESパケットのうち、所望のPIDをもつものをフォントゼネレータ９、I-Graphicsデコーダ１０、オーディオデコーダ１６に出力する。
【００５７】
以上のNetwork Device１７〜De-mux２０により、Java（登録商標）アプリケーションがネットワークを通じてダウンロードしたコンテンツを、BD-ROMに記録されたコンテンツ同様再生させることができる。続いて、再生装置における統合制御を実現する構成要素(命令ROM２１〜スイッチ２７)について説明する。
【００５８】
命令ROM２１は、再生装置の制御を規定するソフトウェアを記憶している。
【００５９】
ユーザイベント処理部２２は、リモコンや再生装置のフロントパネルに対するキー操作に応じて、その操作を行うユーザイベントをCPU２４に出力する。
【００６０】
PSRセット２３は、再生装置に内蔵されるレジスタであり、64個のPlayer Status Register(PSR)と、4096個のGeneralPurpose Register（GPR)とからなる。Player Status Registerの設定値(PSR)のうち、PSR4〜PSR8は、現在の再生時点を表現するのに用いられる。
【００６１】
PSR4は、1〜100の値に設定されることで、現在の再生時点が属するタイトルを示し、0に設定されることで、現在の再生時点がトップメニューであることを示す。
【００６２】
PSR5は、1〜999の値に設定されることで、現在の再生時点が属するチャプター番号を示し、0xFFFFに設定されることで、再生装置においてチャプター番号が無効であることを示す。
【００６３】
PSR6は、0〜999の値に設定されることで、現在の再生時点が属するPL(カレントPL)の番号を示す。
【００６４】
PSR7は、0〜255の値に設定されることで、現在の再生時点が属するPlayItem(カレントPlay Item)の番号を示す。
【００６５】
PSR8は、0〜OxFFFFFFFFの値に設定されることで、45KHzの時間精度を用いて現在の再生時点(カレントPTM(PresentationTiMe))を示す。以上のPSR4〜PSR8により、図８におけるAVClip時間軸において、現在の再生時点はどこであるかを特定することができる。
【００６６】
CPU２４は、命令ROM２１に格納されているソフトウェアを実行して、再生装置全体の制御を実行する。この制御の内容は、ユーザイベント処理部２２から出力されたユーザイベント、及び、PSRセット２３における各PSRの設定値に応じて動的に変化する。
【００６７】
シナリオメモリ２５は、カレントのPL情報やカレントのClip情報を格納しておくためのメモリである。カレントPL情報とは、BD-ROMに記録されている複数PL情報のうち、現在処理対象になっているものをいう。カレントClip情報とは、BD-ROMに記録されている複数Clip情報のうち、現在処理対象になっているものをいう。
【００６８】
Local Memory２６は、BD-ROMからの読み出しは低速である故、BD-ROMの記録内容を一時的に格納しておくためのキャッシュメモリである。かかるLocalMemory２６が存在することにより、BD-Jモードにおけるアプリケーション実行は、効率化されることになる。
【００６９】
スイッチ２７は、BD-ROM及びLocal Storage１８から読み出された各種データを、Read Buffer２、Read Buffer１９、シナリオメモリ２５、LocalMemory２６のどれかに選択的に投入するスイッチである。
【００７０】
以上が、本実施形態に係る再生装置のハードウェア構成である。続いて本実施形態に係る再生装置におけるファイルシステム構造について説明する。
【００７１】
図１３（ａ）は、Local Storage１８におけるディレクトリ構造を示す図である。
【００７２】
本図のディレクトリ構造においてROOTディレクトリの配下には、「DLDAT」というサブディレクトリがあり、その配下に、「PKG00001」,「PKG00002」というサブディレクトリがある。「PKG00001」,「PKG00002」はそれぞれがBD-ROMのボリュームラベルであり、「PKG00001」というボリュームラベルを有したBD-ROMに対応するディレクトリ、「PKG00002」というボリュームラベルのBD-ROMに対応したディレクトリが、LocalStorage１８に存在することを意味する。そのうち、サブディレクトリ「PKG00001」は、ボリュームラベル「PKG00001」のBD-ROMに対応する、ダウンロードデータの置き場所であることを示す。各BD-ROMに対応するディレクトリにサブディレクトリを配置することで各BD-ROMについてのダウンロードデータが個別に格納される。このサブディレクトリの配下に、BD-ROMに格納されていたのと同様、PlayLIst情報、Clip情報、AVClipが格納されており、この他にJava（登録商標）アーカイブファイルや、ストリーム格納位置情報ファイルが存在する。
【００７３】
ここでBD-ROMに記録されていたAVClipが、映画作品の本編に該当するのに対し、Local Storage１８上に記録されているAVClipは、現在劇場で上映されている映画作品の予告編であるものとする。予告編の内容は、時代の移り変わりによって変わるので、現在、現在劇場で上映されている映画作品の予告編が、LocalStorage１８上に、AVClipとして記録されているのである。
【００７４】
後者のストリーム格納位置情報ファイルについて説明する。このストリーム格納位置情報ファイルは、Virtual Packageを構成するファイルの一覧を示す情報である。図１３（ｂ）は、ストリーム格納位置情報ファイルの内部構成を示す図であり、ストリーム格納位置情報ファイルは、VirtualPackageを構成する各AVClip及びClip情報の格納位置情報からなる。各格納位置情報は、AVClip及びClip情報の“識別子”と、LocalStorage１８におけるそのAVClip及びClip情報の格納位置を示す“ファイルパス”とからなる。かかる格納位置情報を参照することにより、VirtualPackageを構築するにあたって、Virtual Packageの構成要素となるAVClip及びClip情報が、揃っているかを、確認することができる。
【００７５】
以上が、本実施形態に係る再生装置のファイルシステム構成である。続いて本実施形態に係る再生装置におけるソフトウェア構造について説明する。
【００７６】
図１４は、ROM２４に格納されたソフトウェアと、ハードウェアとからなる部分を、レイア構成に置き換えて描いた図である。本図に示すように、再生装置のレイア構成は、以下のa),b),c)からなる。つまり、
a)BD Player Deviceの第１階層、
b)BD Player Modelの第２階層、
c)Application Runtime Enviromentの第３階層からなる。
【００７７】
これらの階層のうち図１２に示した再生装置のハードウェア構成は、第１階層に属することになる。本図の第１階層“BD Player Device”には、図１２に示したハードウェア構成のうちビデオデコーダ４、P-Graphicsデコーダ６、I-Graphicsデコーダ１０、オーディオデコーダ１６からなる“デコーダ”と、ビデオプレーン５、PresentationGraphicsプレーン７、Interactive Graphicsプレーン１２からなる“プレーン”、BD-ROM及びそのファイルシステム、LocalStorage１８及びそのファイルシステムを含む。
【００７８】
第２階層“BD Player Model”は、以下のb1),b2)の層からなる。つまり、
b2)Playback Control Engine３２の層
b1)Virtual File System３８及びPresentation Engine３１の層
からなり、自身より上位の階層に対し、ファンクションAPIを提供する。
このうち図１２に示したPSRセット２３やシナリオメモリ２５は、Playback Control Engine３２内に存在することになる。
第３階層“Application Runtime Enviroment”は、以下のc1)のスタック階層からなる。つまり、
c1)HDMVモジュール２９a、BD-Jモジュール２９bが存在する層
からなる。
以降、このソフトウェア構造における各構成要素について説明する。
＜HDMVモジュール２９a、BD-Jモジュール２９b＞
HDMVモジュール２９aは、ナビゲーションコマンドを解読し、解読結果に基づきPlayback Control Engine３２に対するファンクションコールを実行する。
【００７９】
BD-Jモジュール２９bは、いわゆるJava（登録商標）プラットフォームであり、
d1-1)Java（登録商標）仮想マシン３０
d1-2)Java（登録商標）仮想マシンが動作するためのミドルウエア
を階層化した構成になっている。
＜Java（登録商標）仮想マシン３０＞
Java（登録商標）仮想マシン３０は、アプリケーションを構成するxletプログラムをワークメモリにロードして、xletプログラムを解読し、解読結果に従って、下位層に対する制御を行う。下位層への制御は、メソッドをミドルウェアに発行して、BD再生装置が対応しているファンクションコールに置き換えさせ、置換後のファンクションコールをPlaybackControl Engine３２に発行することでなされる。
【００８０】
（Java（登録商標）仮想マシン３０の内部構成）
ここでJava（登録商標）仮想マシン３０の内部構成について説明する。図１５は、Java（登録商標）仮想マシン３０の内部構成を示す図である。本図に示すようにJava（登録商標）仮想マシン３０は、図１２に示したCPU２４と、ユーザクラスローダ５２、メソッドエリア５３、ワークメモリ５４、スレッド５５a,b・・・n、Java（登録商標）スタック５６a,b・・・nとから構成される。
【００８１】
ユーザクラスローダ５２は、BDJAディレクトリのJava（登録商標）アーカイブファイルにおけるクラスファイルをLocal Memory２６等から読み出してメソッドエリア５３に格納する。このユーザクラスローダ５２によるクラスファイル読み出しは、ファイルパスを指定した読み出しをアプリケーションマネージャ３６がユーザクラスローダ５２に指示することでなされる。ファイルパスがLocalMemory２６を示しているなら、ユーザクラスローダ５２は、アプリケーションを構成するJava（登録商標）アーカイブファイルにおけるクラスファイルを、LocalMemory２６からワークメモリ５４に読み出す。ファイルパスがFile Syste上のディレクトリを示しているなら、ユーザクラスローダ５２は、アプリケーションを構成するJava（登録商標）アーカイブファイルにおけるクラスファイルを、BD-ROM又はLocalStorage１８からワークメモリ５４に読み出す。
【００８２】
メソッドエリア５３は、ユーザクラスローダ５２によりLocal Memory２６から読み出されたクラスファイルが格納される。
【００８３】
ワークメモリ５４は、いわゆるヒープエリアであり、様々なクラスファイルのインスタンスが格納される。ワークメモリ５４には、常駐型のレジデントアプリケーションやメソッドエリア５３に読み出されたクラスファイルに対応するインスタンスが格納される。このインスタンスが、アプリケーションを構成するxletプログラムである。かかるxletプログラムをワークメモリ５４に配置することによりアプリケーションは実行可能な状態になる。
【００８４】
スレッド５５a,b・・・nは、ワークメモリ５４に格納されたメソッドを実行する論理的な実行主体であり、ローカル変数や、オペランドスタックに格納された引数をオペランドにして演算を行い、演算結果を、ローカル変数又はオペランドスタックに格納する。図中の矢印ky1,ky2,kynは、ワークメモリ５４からスレッド５５a,b・・・nへのメソッド供給を象徴的に示している。物理的な実行主体がCPU唯1つであるのに対し、論理的な実行主体たるスレッドは、最大64個Java（登録商標）仮想マシン３０内に存在し得る。この64個という数値内において、スレッドを新規に作成することも、既存のスレッドを削除することも可能であり、スレッドの動作数は、Java（登録商標）仮想マシン３０の動作中において増減し得る。スレッドの数は適宜増やすことができるので、複数スレッドにより1つのインスタンスの並列実行を行い、インスタンスの高速化を図ることもできる。
【００８５】
Java（登録商標）スタック５６a,b・・・nは、スレッド５５a,b・・・nと1対1の比率で存在しており、プログラムカウンタ(図中のPC)と、1つ以上のフレームとを内部に持つ。“プログラムカウンタ”は、インスタンスにおいて、現在どの部分が実行されているかを示す。“フレーム”はメソッドに対する1回のコールに対して割り当てられたスタック式の領域であり、その1回のコール時の引数が格納される“オペランドスタック”と、コールされたメソッドが用いる“ローカル変数スタック(図中のローカル変数)”とからなる。フレームは、コールが1回なされる度にJava（登録商標）スタック５６a,b・・・n上に積み上げられるのだから、あるメソッドが自身を再帰的に呼び出す場合も、このフレームは、1つ積み上げられることになる。
【００８６】
以上がJava（登録商標）仮想マシンの内部構成である。このように構成されたJava（登録商標）仮想マシンは、イベントにより駆動される実行主体(イベントドリブンの実行主体)となる。以上がJava（登録商標）仮想マシンについての説明である。
＜Presentation Engine３１＞
Presentation Engine３１は、AV再生ファンクションを実行する。再生装置のAV再生ファンクションとは、DVDプレーヤ、CDプレーヤから踏襲した伝統的な機能群であり、再生開始(Play)、再生停止(Stop)、一時停止(PauseOn)、一時停止の解除(Pause Off)、Still機能の解除(still off)、速度指定付きの早送り(Forward Play(speed))、速度指定付きの巻戻し(BackwardPlay(speed))、音声切り換え(Audio Change)、副映像切り換え(Subtitle Change)、アングル切り換え(AngleChange)といった機能である。AV再生ファンクションを実現するべく、Presentation Engine３１は、Read Buffer２上に読み出されたAVClipのうち、所望に時刻にあたる部分のデコードを行うよう、ビデオデコーダ４、P-Graphicsデコーダ６、I-Graphicsデコーダ１０、オーディオデコーダ１６を制御する。所望の時刻としてPSR8(カレントPTM)に示される箇所のデコードを行わせることにより、AVClipにおいて、任意の時点を再生を可能することができる。
＜Playback Control Engine３２＞
再生制御エンジン(Playback Control Engine３２(PCE))３２は、プレイリストに対する再生制御ファンクション(i)、PSRセット２３における状態取得／設定ファンクション(ii)といった諸機能を実行する。PLに対する再生制御ファンクションとは、PresentationEngine３１が行うAV再生ファンクションのうち、再生開始や再生停止を、カレントPL情報及びClip情報に従って行わせることをいう。これら機能(i)〜(ii)は、HDMVモジュール２９a〜BD-Jモジュール２９bからのファンクションコールに応じて実行する。
【００８７】
ここでPlayback Control Engine３２による処理と、Java（登録商標）仮想マシンによる処理との同期について説明する。PlaybackControl Engine３２は、ファンクションがコールされれば、PL情報に基づく処理手順を実行する。再生しようとするAVClipが15分、30分という再生時間を有するなら、これらの時間、上述した処理は継続することになる。ここで問題になるのは、Java（登録商標）仮想マシン３０がサクセス応答を返す時間と、PlaybackControl Engine３２が実際に処理を終える時間とのギャップである。Java（登録商標）仮想マシン３０は、イベントドリブンの処理主体であるためコール直後に再生成功か、再生失敗かを示す応答を返すが、PlaybackControl Engine３２がAVClip及びPlayItemの再生を終了するのは、15分、30分経過後であるので、サクセス応答をアプリケーションに返す時間を基準にしたのでは、15分、30分経過後にあたる処理終結を感知しえない。PL再生において早送り、巻戻しが行われると、この15分、30分という再生期間は前後に変動することになり、処理終結の感知は更に困難になる。そこでPlaybackControl Engine３２は、PlayItemの再生終了時、AVClipの再生終了時に、PlayItemやAVClipの再生が終了したことを示すイベントをアプリケーションに出力する。かかる出力により、PlaybackControl Engine３２がPlayItemやAVClipの再生を終結した時点を、アプリケーションは知得することができる。
【００８８】
以上が、Java（登録商標）仮想マシン、Network Device３１、Playback Control Engine３２の説明である。PlaybackControl Engine３２に対する、Java（登録商標）仮想マシンによる制御は、Virtual Packageを通じてなされる。VirtualPackageを通じた、Playback Control Engine３２に対する制御を実現するため、再生装置には、以下に示す構成要素(ネットワーク管理モジュール３７、VirtualFileSystem部３８、管理情報変換モジュール３９、メソッド実行モジュール４０)が存在する。以降これらの構成要素について説明する。
＜ネットワーク管理モジュール３７＞
ネットワーク管理モジュール３７は、アプリケーションからのメソッド呼出に従って、Virtual Package構築に必要なデータを、映画作品のプロバイダが運営しているWWWサイトからダウンロードする。VirtualPackage構築に必要なデータには、ストリーム格納位置情報ファイル、PlayList情報、Clip情報、AVClipがある。Work Memory５４上のアプリケーションによるダウンロード要求がなされると、ネットワーク管理モジュール３７は、ネットワークを通じて、VirtualPackage構築に必要なデータをダウンロードし、Local Storage１８に書き込んでゆく。
【００８９】
このダウンロードにあたっての書き込みの順序は、
ストリーム格納位置情報ファイル→PlayList情報→複数Clip情報→複数AVClip
となる。
【００９０】
ここでPlayList情報−複数のClip情報の書き込みが完了した段階で、Virtual Packageの構築は可能になる。
＜Virtual FileSystem部３８＞
Virtual FileSystem部３８は、第２階層に属する構成要素の1つであり、アプリケーションからのメソッド呼出に従い、Virtual Packageを構築する。VirtualPackageの構築処理には、Virtual Packageを構成する各AVClipの状態管理と、Virtual Package情報の生成処理とが含まれる。
１.Virtual Package情報
Virtual Package情報は、BD-ROMにおけるボリューム管理情報を拡張した情報である。ここでボリューム管理情報は、ある記録媒体上に存在するディレクトリ−ファイル構造を規定する情報であり、ディレクトリについてのディレクトリ管理情報、ファイルについてのファイル管理情報とからなる。
【００９１】
Virtual Package情報とは、BD-ROMのディレクトリ−ファイル構造を示すボリューム管理情報に、新たなファイル管理情報を追加することにより、BD-ROMにおけるディレクトリ−ファイル構造の拡張を図ったものである。ここでBDボリューム管理情報に追加されるファイル管理情報とは、LocalStorage１８に存在するPlayLIst情報、Clip情報、AVClipについてのファイル管理情報であり、かかるファイル管理情報を追加したVirtualPackage情報を作成し、Playback Control Engine３２に引き渡すことにより、Playback Control Engine３２は、LocalStorage１８上にあるPlayLIst情報、Clip情報、AVClipがBD-ROMに存在するものとして認識することができる。図１６は、VirtualFileSystem部３８によるVirtual Package情報構築の一例を示す図である。本図の左上は、BD-ROMにおけるディレクトリ−ファイル構造であり、図２に示したものと同じである。本図の左下は、LocalStorage１８におけるディレクトリ−ファイル構造であり、図１３（ａ）に示したものと同じである。このLocal Storage１８上のPlayLIst情報、Clip情報、AVClipについてのファイル管理情報を、BD-ROMのボリューム管理情報に追加する。
【００９２】
具体的には、
i)Local Storage１８上のPlayLIst(00002.MPLS)についてのファイル管理情報を、BDボリューム構成情報におけるMPLSディレクトリのディレクトリ管理情報に追加し、
ii)Local Storage１８上のClip情報#2、Clip情報#3、#4(00002.CLPI,00003.CLPI,00004.CLPI)についてのファイル管理情報を、BDボリューム構成情報におけるCLPIディレクトリのディレクトリ管理情報に追加し、
iii)Local Storage１８上のAVClip#2、AVClip#3、#4(00002.M2TS,00003.M2TS,00004.M2TS)についてのファイル管理情報を、BDボリューム構成情報におけるSTREAMディレクトリのディレクトリ管理情報に追加する。
【００９３】
こうすることにより、Virtual Package情報が得られる。この追加により得られたボリューム管理情報が、Virtual Package情報である。
【００９４】
こうして作成されたVirtual Package情報を、Playback Control Engine３２に引き渡す。これにより、PlaybackControl Engine３２は、Local Storage１８上のPlayLIst情報、Clip情報、AVClipを、BD-ROM上のPlayLIst情報、Clip情報、AVClipと対等に扱うことができる。以上がVirtualPackage情報生成についての説明である。続いてVirtual FileSysterm部３８による状態管理について説明する。
３.enable及びdisable
“状態管理”とは、Virtual Packageを構築すべきAVClipが、enableであるか、disableであるかの管理である。ここでPlayList情報における1つのPlayItem情報がマルチアングル対象である場合、マルチアングル区間を構成するそれぞれのAVClipが、enableであるか／disableであるかという状態管理の対象になる。また、PlayItem情報にSubPlayItem情報が存在する場合、そのSubPlayItem情報のClip_information_file_nameに記述されているAVClipも、enableであるか／disableであるかという状態管理の対象になる。
【００９５】
図１７（ａ）は、Virtual FileSystem部３８による状態管理の一例を示す図である。本図に示すように、AVClipの状態には、“enable”、“disable”というものがある。“enable”とは、Clip情報と、それに対応するAVClipとがLocalStorage１８上に存在し、そのAVClipがRead Only Modeに設定されている状態をいう。
【００９６】
一方、“disable”とは、Clip情報がLocal Storage１８上に存在するもの、これに対応するAVClipが、Local Storage１８に存在しないか(MissingStream)、存在したとしても、削除され得る状態にあることをいう。
【００９７】
disableは、削除され得るものと取り扱われるので、Local Storage１８上の容量が不足した際、disableのAVClipは削除の対象になる。
【００９８】
従ってLocal Storage１８にAVClipがダウンロードされた場合、Virtual FileSysterm部３８がこのAVClipをenableに変化させない限り、PlaybackControl Engine３２は、このダウンロードされたAVClipを存在しないものとして扱うことになる。Virtual File Systerm部３８の作為がない限り、PlaybackControl Engine３２は、Local Storage１８上のAVClipを認識しないので、不安定な状態のまま、Playback ControlEngine３２が再生を進めるようなことは有り得ない。
３.Read Only Mode及びそのキャンセル
続いてRead Only Modeについて説明する。Read Only Modeへの変化は、Local Storage１８におけるボリューム管理情報の、ファイル管理情報を書き換えることでなされる。この書き換えの対象は、LocalStorage１８におけるDLDATディレクトリ配下のPACKAGE00001ディレクトリにおけるファイル管理情報であり、かかるファイル管理情報における、ファイル属性を全てRead-only属性に書き換えることにより、LocalStorage１８上のAVClipは、書き換えられることはなくなる。そのため、Playback Control Engine３２による再生中、アプリケーションがLocalStorage１８上のAVClipをアクセスしようとしても、AVClipが書き換えられることはないので、再生中のAVClipの同一性は保たれることになる。
【００９９】
Local Storage１８上のAVClipを、Playback Control Engine３２から認識できるような状態にした際、LocalStorage１８において、そのAVClipを格納しているファイルをRead-only属性にするので、Java（登録商標）仮想マシン上のアプリケーションが、ダイレクトにLocalStorage１８をアクセスしたとしても、そのAVClipの内容が途中から変わってしまうことはない。
【０１００】
Read Only Modeのキャンセルについて説明する。Read Only Modeのキャンセルは、Read Only Modeへの変化同様、LocalStorage１８におけるボリューム管理情報の、ファイル管理情報を書き換えることでなされる。この書き換えの対象は、Local Storage１８におけるDLDATディレクトリ配下のPACKAGE00001ディレクトリにおけるファイル管理情報であり、かかるファイル管理情報における、ファイル管理情報を、Read-only属性からRe-writable属性に書き換えることにより、LocalStorage１８上のAVClipは、いつでも書き換えられることになる。そのため、Playback Control Engine３２による再生が済んだ直後、LocalStorage１８におけるファイル管理情報を、Re-writable属性に書き換えることにより、Local Storage１８上のAVClipは、削除の対象になる。以上が、状態管理についての説明である。
【０１０１】
４.状態管理とVirtual Package情報との関係
この状態管理の内容は、Virtual Package情報の作成に反映されうる。つまり状態管理において、disableとされているAVClipについてのファイル管理情報は、BD-ROMのボリューム管理情報に追加されず、enableとされているAVClipについてのファイル管理情報のみが、BD-ROMのボリューム管理情報に追加されるのである。こうして作成したVirtualPackage情報を、Playback Control Engine３２に引き渡すことにより、Playback Control Engine３２は、enableと設定されたAVClipのみを認識することになる。BD-ROM上に存在するAVClip#1、及びLocalStorage１８上に存在するAVClip#2、AVClip#3、AVClip#4のうち、AVClip#1、AVClip#2はenableであるが、AVClip#3、AVClip#4はdisableであるとすると、VirtualFileSysterm部３８は、図１８に示すように、Virtual Package情報の作成を行う。図１８は、状態管理を反映したVirtual Package情報の作成を示す図である。本図においてAVClip#2についてのファイル管理情報は、BDボリューム構成情報におけるSTREAMディレクトリのディレクトリ管理情報に追加されるが、AVClip#3、AVClip#4についてのファイル管理情報は、BDボリューム構成情報におけるSTREAMディレクトリのディレクトリ管理情報に追加されない。図１８左下における4つのAVClipのうち、AVClip#2にあたる、00002.M2TSがenableであり、AVClip#3、AVClip#4にあたる、00003.M2TS,00004.M2TSがdisableであるものとする。そうすると、本図に示すように、LocalStorage１８において、AVClip#2にあたる、00002.M2TSのファイル属性は、Read-only属性に設定される。またAVClip#3、AVClip#4にあたる、00003.M2TS,00004.M2TSのファイル属性は、Re-writable属性に設定される。こうして作成したVirtualPackage情報をPlayback Control Engine３２に引き渡すことにより、Playback Control Engine３２は、disableにあるAVClip#3、AVClip#4を認識することはない。
【０１０２】
ここでClip情報は存在するが、対応するAVClipがLocal Storage１８上にない場合、そのAVClipはdisableに設定された。しかし、Clip情報に対するファイルパスがストリーム格納位置情報ファイルにあるにもかかわらず、AVClipはおろかClip情報すらLocalStorage１８にない場合、Virtual Packageの構築は不可能になる。つまり、Virtual Packageにおいて本来あるべきClip情報が存在しないことは、VirtualPackage全体に波及することを意味する。
５.Virtual Package情報の引き渡し
以上の１.〜４.にて作成されたVirtual Package情報が、どのように引き渡されるかについて説明する。
【０１０３】
ここで図１８に示したように、PlayList情報、Clip情報#2〜Clip情報#4、AVClip#2はダウンロードが完了しているものAVClip#3、AVClip#4のダウンロードは未完である状態である場合を想定する。かかる状態でVirtualPackage構築が要求されれば、Virtual FileSysterm部３８は、図１９に示すような動作を行う。図１９は、ネットワーク管理モジュール３７によるダウンロードが途上である場合の、VirtualFileSystem部３８によるVirtual Package構築を示す図である。本図の状況でVirtual Package構築が要求されれば(◎1VPCreate)、BD-ROM及びLocal Storage１８からディレクトリ管理情報及びファイル管理情報を読み出して(◎2,3)、VirtualPackageの構築を行い、Virtual Package情報をPlayback Control Engine３２に引き渡すと共に(◎4)、アプリケーションに引き渡す(◎5)。こうすることでPlaybackControl Engine３２は、Virtual Packageを通じてBD-ROM、及び、Local Storage１８上のAVClipから1つのストリームシーケンスを構築することができる。
【０１０４】
またアプリケーションに引き渡したVirtual Package情報においてClip情報#3、Clip情報#4が存在するもの、AVClip#3、AVClip#4は存在しないので、アプリケーションは、AVClip#3、AVClip#4がストリーム列を構成するもの、これらが存在しないストリーム(MissingStream)であると認識することができる。
【０１０５】
以上がVirtual FileSystem部３８についての説明である。
＜管理情報変換モジュール３９＞
管理情報変換モジュール３９は、BD-J Module２９ｂ内のミドルウエアの1つであり、Virtual Package中に存在するPlayList情報のインスタンス生成をアプリケーションが要求した際、Java（登録商標）仮想マシンのWorkMemory５４に、JMF形式によるPlayList情報のインスタンス(図１６のWork Memory５４内に示したPlayListオブジェクト)を生成する。
【０１０６】
このインスタンス(PlayListオブジェクト)は、PlayList情報である“データ部”と、複数の“メソッド部”とをもつ。
【０１０７】
PlayListオブジェクトにおける複数のメソッドは、再生開始(Play)、再生停止(Stop)、一時停止(Pause On)、一時停止の解除(PauseOff)、Still機能の解除(still off)、速度指定付きの早送り(Forward Play(speed))、速度指定付きの巻戻し(BackwardPlay(speed))、音声切り換え(Audio Change)、副映像切り換え(Subtitle Change)、アングル切り換え(AngleChange)といった、諸々の再生処理を、Playback Control Engine３２に行わせるものである。よってアプリケーションは、このメソッドを呼び出すことにより、そのPlayListにより規定されるストリームシーケンスを再生したり、かかる再生を停止したりすることができる。
【０１０８】
ここで、PlayListオブジェクトにより再生されるPlayList情報について説明する。このPlayList情報は、Local Storage１８上に存在するPlayList情報である。
【０１０９】
BD-ROM上のPlayList情報は、BD-ROM上のAVClipのみを参照しているのに対し、Local Storage１８上のPlayList情報は“ProgressivePlayList情報”と呼ばれ、BD-ROM上のAVClipと、Local Storage１８上のAVClipとを参照する。
【０１１０】
ここでProgressive PlayList情報が、PlayItem情報#1〜PlayItem情報#5という5つのPlayItem情報から構成されているものとする。このうち、3つのPlayItem情報#1〜PlayItem情報#3は、BD-ROM上のClip情報を参照するものであり、残りの2つ(PlayItem情報#4、PlayItem情報#5)が、LocalStorage１８上のClip情報を参照するものである場合、このProgressive PlayList情報は、図２０（ａ）に示すように、BD-ROM上のAVClipと、LocalStorage１８上のAVClipとから1つのストリームシーケンスを定義することができる。
【０１１１】
図２０（ａ）は、ローカルストレージに格納されたPL情報により、どのようなPlayList再生時間軸が定義されるかを示す図である。第1段目は、BD-ROMに記録されたAVClipにおける再生時間軸を示し、第2段目は、ローカルストレージに格納されたPL情報により定義されるPlayList再生時間軸を示す。第3段目は、ローカルストレージに格納されたAVClip#2における再生時間軸を、第4段目は、ローカルストレージに格納されたAVClip#3における再生時間軸を、第5段目は、ローカルストレージに格納されたAVClip#4における再生時間軸を示す。
【０１１２】
PlayList情報におけるPlayItemのうち、PlayItem情報#4、PlayItem情報#5、PlayItem情報#6が、AVClip#2、AVClip#3、AVClip#4を再生区間として指定するなら、ProgressivePlayList情報は、BD-ROM上のAVClip及びLocal Storage１８上のAVClipを1つのストリームシーケンスとして規定することができる。
【０１１３】
ここでProgressive PlayList情報の“Progressive”とは、PlayList情報を構成するPlayItem情報により参照されるAVClipのうち、一部のものがenableであれば、残りのものがdisableであったとしても、ストリームシーケンスの再生を開始することができることを意味する。
【０１１４】
図２０（ｂ）は、Progressive PlayList情報の概念を示す図である。本図の第2段目〜第5段目は、図２０（ａ）の第2段目、第3段目、第4段目、第5段目を示すものである。図２０（ａ）の第3段目、図２０（ｂ）の第3段目のAVClipはenableであるが、第4段目〜第5段目のAVClipがdisableである場合、ProgressivePlayList情報により参照される4つのAVClipのうち、AVClip#3、AVClip#4は再生しえないもの、AVClip#1、AVClip#2は再生し得るので、ストリームシーケンスの再生は開始できることになる。このように、一部のAVClipであれば、投機的に再生を開始することができるのがProgressivePlayList情報の特徴である。
【０１１５】
Virtual Package構築がVirtual FileSystem部３８によりなされた段階において、図２０のようなProgressivePlayList情報についてのインスタンス生成を、Work Memory５４上のアプリケーションが要求した場合、管理情報変換モジュール３９は、図２１に示すような処理を行う。図２１は、管理情報変換モジュール３９によるインスタンス生成を示す図である。
【０１１６】
Virtual Packageに存在するPlayList情報のインスタンス生成を要求する、生成メソッドをアプリケーション呼び出すと(◎1)、管理情報変換モジュール３９はPlayList情報をシナリオメモリ２５から読み出して(◎2)、このProgressivePlayList情報をデータ部にし、メソッド部を付け加えたPlayListオブジェクトをWork Memory５４に生成する(◎3)。かかるPlayListオブジェクトがWorkMemory５４に得られるので、アプリケーションは、このPlayListオブジェクトのメソッドを呼び出すことにより、PlayList情報により規定されるストリームシーケンスの再生を、PlaybackControl Engine３２に命じることができる。
【０１１７】
図２２は、PlayListオブジェクトにおけるPlayメソッドの呼び出しを示す図である。このPlayメソッドの呼び出しにより(◎4)、PlaybackControl Engine３２に対し、PL再生のファンクションコールがなされる(◎5)。そうすると、Playback Control Engine３２は、再生が要求されたPlayList情報により参照されているAVClip(BD-ROM上のAVClip#1、LocalStorage１８上のAVClip#2)を読み出し(◎6,7)、順次デコーダに供給させる。以上が管理情報変換モジュール３９についての説明である。
＜メソッド実行モジュール４０＞
メソッド実行モジュール４０は、BD-J Module２９ｂ内のミドルウェアにおける構成要素の1つであり、Java（登録商標）仮想マシン３０に存在するアプリケーションからのメソッド呼出に応じて、各種メソッドを実行する。メソッド実行モジュール４０により実行されるメソッドには、様々なものがあるが、getMissingStreamsメソッド、enableClipメソッド、disableClipメソッド、getDisableClipsメソッドといったものは、本願における特徴的なものである。以降、これらのメソッドについて説明する。
1. getMissingStreamsメソッド
getMissingStreamsメソッドとは、ネットワーク管理モジュール３７によるダウンロードが継続している際に、未だMissing StreamになっているAVClipが存在するかを、VirtualFileSystem部３８に問い合わせるメソッドである。
【０１１８】
ここで図１９のようなVirtual Package情報がWork Memory５４上のアプリケーションに引き渡されたものとする。Virtual Package構築時に判明していたMissingStreamがAVClip#3、AVClip#4であり、その後、アプリケーションがgetMissingStreamsメソッドを呼び出すことにより、最新のMissingStreamについて、Virtual FileSystem部３８に問い合わせたとする。この場合のメソッド実行モジュール４０による処理は、図２３のようになる。
【０１１９】
図２３は、この問合せの結果を模式的に示す図である。本図において◎1に示すように、getMissingStreamsメソッドの呼び出しがなされ、この呼出により、VirtualFileSystem部３８がAVClip#4を戻り値として返すとする。そうすると、getMissingStreamsメソッドを呼び出す前においてMissingStreamがAVClip#3、AVClip#4であったのに対し、getMissingStreamsメソッドの呼出後においてAVClip#4になったことから、AVClip#3はMissingStreamでなくなった(ダウンロードが完了した)と判定することができる。こうすることにより、ダウンロードの進行により、Missing Streamがどれだけ解消されたかを知得することができる。
２.enableClipメソッド
enableClipメソッドとは、Virtual Packageの構築時においてMissing Streamであったが、その後、Missing StreamでなくなったAVClipが存在する場合、そのAVClipをenableに設定するためのメソッドである。
【０１２０】
ここで図２３においてAVClip#3がMissing Streamでなくなったことが明らかになったので、このAVClip#3を対象にしたenableClipメソッドを呼び出したものとする。この場合、メソッド実行モジュール４０は、図２４に示すような処理を行う。図２４は、enableClipメソッドの呼出を模式的に示す図である。このAVClip#3を対象にしたenableClipメソッドの呼び出しがなされると(◎3)、アプリケーションは、AVClip#3をenableに変化させ、Success応答をアプリケーションに返す(◎2)。こうすることにより、VirtualPackageの構築にてMissing StreamでなくなったAVClipをenableに変化させてゆくことができる。AVClipをenableにした際、メソッド実行モジュール４０は、新たにenableにしたAVClipを含むVirtualPackage情報を、アプリケーション及びPlayback Control Engine３２に引き渡させる。これにより、Playback ControlEngine３２及びアプリケーションは、新たに、enableになったAVClipを認識し、アクセスすることができる。
３.disableClipメソッド
disableClipメソッドとは、enableにあるAVClipを、disableに設定するメソッドである。ここで図２０に示したProgressivePlayList情報の再生中において、AVClip#2の再生が完了した旨のイベントが、Playback Control Engine３２により通知されたものとする。この場合、AVClip#2の再生が完了したことが通知されれば、図２５のような処理を行う。図２５は、disableClipメソッドの呼出を模式的に示す図である。本図において、PlaybackControl Engine３２による再生に進行に伴い、AVClip#2の再生が完了したことが、end of Clipイベントにより通知されれば(◎1)、このAVClip#2を対象にしたdisableClipメソッドを呼出すことにより(◎2)、アプリケーションは、AVClip#2をdisableに変化させることができる。こうすることにより、再生が済んだAVClipをdisableに変化させてゆくことができる。こうすることにより、AVClip#2はdisableに設定されるので、AVClip#2は、削除の対象になる。予告編を構成するようなAVClipが時々刻々とダウンロードされるような場合、ProgressivePlayList情報により規定されるストリームシーケンスのうち、再生が済んだものを順次disableにしてゆけば、再生が済んだAVClipを、disableにして削除の対象にしてゆくことができる。AVClipをdisableにした際、メソッド実行モジュール４０は、新たにdisableにしたAVClipを除いたVirtualPackage情報を、アプリケーション及びPlayback Control Engine３２に引き渡させる。これにより、Playback ControlEngine３２は、disableになったAVClipを認識することはない。尚、Local Storage１８上のAVClipを削除するにあたって、ミドルウェアは、削除しようとするアプリケーションの書き込み権限をチェックした上で、その削除を実行する。これは、不本意な削除によるAVClipの消失を防ぐためである。
４．getDisableClipsメソッド
getDisableClipsメソッドとは、Disable になっている AVClip が存在するかを問い合わせるメソッドである。このメソッドの呼出によりアプリケーションはこのメソッドを使って現在Disable となっているAVClip があるかどうかの情報を得ることができる。
使用例としては、例えば、 Progressive PlayList 再生中、ユーザからのチャプタースキップ要求を受けたときに、アプリケーションは、ジャンプ先のAVClip がDisableかどうかをこのメソッドを使って判断する。そして、Disableであれば、チャプタースキップを行わず、「現在ダウンロード中のため、そのチャプターにはまだジャンプできません」などと、注意を喚起する表示を行う。こうすることにより、チャプタースキップといった、特殊再生を、ProgressivePlayListの再生中に実行することができる。
【０１２１】
以上で、メソッド実行モジュール４０により実行されるメソッドについての説明を終わる。
これまで説明した各構成要素について、フローチャートを参照しながら、その処理手順の詳細を説明する。
【０１２２】
図２６は、Virtual Package構築時の処理を示すフローチャートである。本フローチャートでは、ストリーム格納位置情報ファイルに格納されたAVClipに対応するClip情報がLocalStorage１８に完備されているかどうかを先ず判定し(ステップＳ１)、Clip情報に未完のものがあれば、アプリケーションからのVirtual Package呼出に対し、Falseリターンを行う(ステップＳ１０)。Clip情報に対するファイルパスがストリーム格納位置情報ファイルにあるにもかかわらず、AVClipはおろかClip情報すらLocalStorageにない場合、Virtual Packageの構築は不可能になる。
【０１２３】
一方、ストリーム格納位置情報ファイルに記述された全てのClip情報が、Local Storage１８に存在すれば(ステップＳ１でYes)、LocalStorage１８におけるPlayList情報のファイル管理情報を、BDボリューム管理情報におけるPLAYLISTディレクトリのディレクトリ管理情報に追加し(ステップＳ２)、LocalStorage１８におけるClip情報のファイル管理情報を、BDボリューム管理情報におけるCLPINFディレクトリのディレクトリ管理情報に追加する(ステップＳ３)。その後、ステップＳ４〜ステップＳ８のループ処理を実行する。このループ処理は、LocalStorage１８に存在するそれぞれのClip情報について、ステップＳ６〜ステップＳ８の処理を繰り返すものである(ステップＳ４、ステップＳ５)。ここで、ループ処理の対象となる1つのClip情報をClip情報xとする。
【０１２４】
本ループ処理において、Clip情報xに対応するAVClipを特定し(ステップＳ６)、このAVClipはenableであるか、disableであるかを判定する(ステップＳ７)。enableであれば、LocalStorage１８におけるAVClipxのファイル管理情報を、BDボリューム管理情報におけるSTREAMディレクトリのディレクトリ管理情報に追加する(ステップＳ８)。一方、AVClipがdisableであれば、ステップＳ８をスキップする。以上の処理を全てのClip情報及びAVClipについて繰り返せば、enableのAVClipについてのファイル管理情報が、BDボリューム管理情報に追加されることになる。こうした追加により得られたBDボリューム管理情報がVirtualPackage情報になる。このVirtual Package情報をVirtual Package呼出の呼出元のアプリケーション及びPlaybackControl Engine３２に引き渡し(ステップＳ９)、処理を終える。
【０１２５】
図２７（ａ）は、enableClipメソッドの呼出時の処理手順を示すフローチャートである。このメソッドの呼出がなされれば、呼出時の引数からenableにすべきAVClipyを特定し(ステップＳ１４)、ステップＳ１５、ステップＳ１６の判定を順次行う。ステップＳ１５は、AVClipyがLocalStorage１８に格納されているか否かを判定であり、ステップＳ１６は、AVClipyのファイルパスがストリーム格納位置情報ファイルに記載されているかの判定である。これらの判定ステップのどちらかがNoであれば、呼出元にFalseを返し、本フローチャートの処理を終える(ステップＳ１９)。一方、ステップＳ１５−ステップＳ１６の双方がYesなら、AVClipyをenableにして、LocalStorage１８において、AVClipyを格納したファイルのファイル属性をRead-Only属性にして、AVClipyをRead Only Modeにする(ステップＳ１７)。その後、Successを戻り値としてリターンする(ステップＳ１８)。
【０１２６】
図２７（ｂ）は、disableClipメソッドの呼出時の処理手順を示すフローチャートである。このメソッドの呼出がなされれば、呼出時の引数からdisableにすべきAVClipyを特定し(ステップＳ２１)、ステップＳ２２、ステップＳ２３の判定を順次行う。ステップＳ２２は、AVClipyが再生中であるか否かの判定であり、ステップＳ２３は、AVClipyのファイルパスがストリーム格納位置情報ファイルに記載されていないかの判定である。これらの判定ステップのどちらかがYesであれば、呼出元にfalseを返し、本フローチャートの処理を終える(ステップＳ２６)。一方、ステップＳ２２−ステップＳ２３の双方がYesなら、AVClipyをdisableにして、LocalStorage１８において、AVClipyを格納しているファイルのファイル属性をRe-writable属性にしてAVClipyのRead Only Modeをキャンセルする(ステップＳ２４)。その後、Successを戻り値としてリターンする(ステップＳ２５)。
【０１２７】
図２８は、Playback Control Engine３２による再生手順を示すフローチャートである。本フローチャートは、PlayList情報における先頭のPlayItem情報をPlayItemiとして、ステップＳ３３〜ステップＳ４２のループ処理を実行するものである。ステップＳ３３〜ステップＳ４２のループ処理における制御変数は、変数iであり、ステップＳ３３〜ステップＳ４０の処理を実行して、その後、制御変数iをインクリメントするという処理を、変数iが、PlayItem数(NumberOf PlayItem)を越えるまで実行するものである(ステップＳ４１)。
【０１２８】
このステップＳ３２〜ステップＳ４０の処理について説明する。これらの処理は、PlayItem情報iのClip_information_file_nameに記述されているAVClipを、AVClipjとし(ステップＳ３３)、再生の対象とする。ステップＳ３４は、AVClipjがenableであるか否かの判定であり、もしAVClipjがenableでなければ、本フローチャートの処理をその時点で中止する。もしenableであれば、AVClipjのうち、PlayItem.In_timeからPlayItem.Out_timeまでの部分を再生するよう、ドライブ装置及びデコーダに指示する(ステップＳ３５)。
【０１２９】
ステップＳ３６は、PlayItem情報iをSync_PlayItem_idに指定しているSubPlayItemkが存在するか否かの判定である。もし存在しなけば、そのままステップＳ４１に移行する。
【０１３０】
もし存在すれば、SubPlayItemkのClip_information_file_nameに記述されているAVClipをAVCliphにし(ステップＳ３８)、そのAVCliphがenableであるか否かを判定する(ステップＳ３９)。もしenableであれば、そのAVCliphのうち、Sync_Start_PTS_of_PlayItemから、Out_timeまでを再生するよう、ドライブ装置及びデコーダに指示してステップＳ４１に移行する(ステップＳ４０)。
【０１３１】
もしそのAVCliphがenableでない場合は、ステップＳ４０をスキップする。以上の処理を、PlayList情報を構成する全てのPlayItem情報について繰り返すことにより、PlayList情報にて規定されるストリームシーケンスの再生がなされる。  図２９は、アプリケーションの処理手順を示すフローチャートである。先ず、ストリーム格納位置情報ファイルと、PlayLIst情報、Clip情報、AVClipのダウンロードを要求する(ステップＳ５１)。そしてVirtualPackageの構築要求を行う(ステップＳ５２)。ステップＳ５３は、構築要求がSuccessしたか否かの判定であり、Virtual Packageの構築がSuccessになるまで、VirtualPackageの構築要求は何回でも繰り返される。
【０１３２】
Virtual Packageの構築が成功すれば、ステップＳ５５を実行する。ステップＳ５５は、Missing StreamがVirtual Package情報の中に存在するか否かの判定である。具体的には、Clip情報は存在するのに、対応するAVClipがない場合、そのAVClipをMissingStreamとして取得する(ステップＳ５６)。
【０１３３】
その後、ステップＳ５７においてProgressive PlayList情報のPlayメソッドを呼び出し、そしてPlayメソッドがSuccessしたか否かの判定を行う(ステップＳ５８)。もしFalseであれば、本フローチャートの処理を終了する。もしSuccessであれば、ステップＳ５９〜ステップＳ６１からなるループ処理を実行する。
【０１３４】
ステップＳ５９は、getMissingStreamsメソッドの呼び出しである。ステップＳ６０は、ステップＳ５９での呼出にて、Missing Streamが通知されれば、以前取得したMissingStreamの中に、ダウンロードが完了したものが存在するか否かの判定である。。
【０１３５】
ステップＳ６１は、AVClipの再生完了を示すイベントが発生したか否かの判定である。アプリケーションは、Playback Control Engine３２による再生がなされている間、このステップＳ５９〜ステップＳ６１の処理を繰り返し実行する。
【０１３６】
上述した処理の繰り返しにおいて、ダウンロードが完了したAVClipがあれば(ステップＳ６０においてYes)、そのダウンロードが完了したMissingStreamに対し、enableClipメソッドを呼び出す(ステップＳ６２)。こうすることにより、ダウンロードが完了したAVClipを早期にenableにすることができる。
【０１３７】
また、再生が終了したAVClipがあれば(ステップＳ６１でYes)、そのAVClipが予告編であるか否かを判定して、もし予告編であれば、そのAVClipに対し、disableClipメソッドを呼び出す。こうすることにより、再生が完了した予告編のAVClipを早期にdisableにすることができる。
【０１３８】
＜動作＞
図２０に示したPlayList情報を再生する場合の、再生装置の動作について説明する。図３０〜図３３は、ネットワーク管理モジュール３７によるダウンロードの進捗と、PlaybackControl Engine３２による再生の進捗とを示す図である。第1段目は、ネットワーク管理モジュール３７によるダウンロードの進捗を示し、第2段目は、PlaybackControl Engine３２による再生の進捗を示す。第3段目は現状の時間軸である。第4段目は、アプリケーションによるメソッドの呼出を示す。
【０１３９】
第1段目に示すように、ネットワーク管理モジュール３７によるダウンロードは、図２０に示したPlayList情報のダウンロード、Clip情報#1〜Clip情報#4のダウンロード、AVClip#1〜AVClip#4のダウンロードからなる。
図３０（ａ）現在時点＝時点t0
時点t0は、PlayList情報、Clip情報#1〜Clip情報#4のダウンロードが完了した時点である。そのため、Virtual Packageの構築は可能になる。また、VirtualPackageにおけるPlayList情報はAVClip#1を参照しており、このAVClip#1は、少なくともenableであるから、ストリームシーケンスの再生は、t0から開始している。
【０１４０】
図３０（ｂ）現在時点＝時点t1
時点t1は、PlayList#1により参照されるAVClip#1の再生途上であるが、AVClip#2のダウンロードが完了した時点である。AVClip#2のダウンロードが完了したので、AVClip#2はdisableではなくなっている。そのためアプリケーションが、enableClipメソッドを呼出すことにより、AVClip#2をenableにすることができる。この呼出により、AVClip#2にあたるPlayItem#4は、再生の対象になる。
【０１４１】
図３１（ａ）現在時点＝時点t2
時点t2は、PlayList#1により参照されるAVClip#2の再生途上であるが、AVClip#3のダウンロードが完了した時点である。AVClip#3のダウンロードが完了したので、AVClip#3はdisableではなくなっている。そのためアプリケーションが、enableClipメソッドを呼出すことにより、AVClip#3をenableにすることができる。この呼出により、AVClip#3にあたるPlayItem#5は、再生の対象になる。
図３１（ｂ）現在時点＝時点t3
時点t3は、AVClip#2の再生が完了した時点である。AVClip#2の再生が完了しており、AVClip#2は予告編であるので、PlayItem#2により参照されるAVClip#2は、削除の対象になりうる。そこで、このAVClip#2を対象にしたdisableClipメソッドを呼び出すことにより、AVClip#2を削除対象にする。こうすることでPlaybackControl Engine３２は、AVClip#2があたかも存在しなかったかのように扱うことができる。
図３２（ａ）現在時点＝時点t4
時点t4は、PlayList#1により参照されるAVClip#3の再生途上であるが、AVClip#4のダウンロードが完了した時点である。AVClip#4のダウンロードが完了したので、AVClip#4はdisableではなくなっている。そのためアプリケーションが、enableClipメソッドを呼出すことにより、AVClip#4をenableにすることができる。この呼出により、AVClip#4にあたるPlayItem#6は、再生の対象になる。
図３２（ｂ）現在時点＝時点t5
時点t5は、AVClip#3の再生が完了した時点である。AVClip#3の再生が完了しており、AVClip#3は予告編であるので、PlayItem#5により参照されるAVClip#3は、削除の対象になりうる。そこで、このAVClip#3を対象にしたdisableClipメソッドを呼び出すことにより、AVClip#3を削除対象にする。こうすることでPlaybackControl Engine３２は、AVClip#3があたかも存在しなかったかのように扱うことができる。
【０１４２】
図３３  現在時点＝時点t6
時点t6は、AVClip#4の再生が完了した時点である。AVClip#4の再生が完了しており、AVClip#4は予告編であるので、PlayItem#6により参照されるAVClip#4は、削除の対象になりうる。そこで、このAVClip#4を対象にしたdisableClipメソッドを呼び出すことにより、AVClip#4を削除対象にする。こうすることでPlaybackControl Engine３２は、AVClip#4があたかも存在しなかったかのように扱うことができる。
以上のように本実施形態によれば、ネットワーク管理モジュール３７によるダウンロードと、Playback Control Engine３２による再生とを、パラレルに行い、ダウンロードがなされたAVClipをdisableからenableに設定することにより、PlaybackControl Engine３２による再生に供することができる。これにより、ダウンロードの進捗を追いかけるように再生処理を進める“追いかけ再生”を実現することができる。
【０１４３】
また、ダウンロードされたデジタルストリームのうち、再生が済んだものをenableからdisableに変化させることにより、再生が済んだデジタルストリームを、削除の対象として供することができるので、再生処理の進捗を追いかけるように、削除処理を進める“追いかけ削除”を実現することができる。
【０１４４】
ダウンロードの進捗を追いかけてように再生処理を進める“追いかけ再生”や、再生処理の進捗を追いかけるように、削除処理を進める“追いかけ削除”が可能になるので、再生装置を結ぶ通信回線の通信レートが低く、また再生装置に内蔵されているLocalStorage１８の容量が小さい場合でも、BD-ROMに記録されているデジタルストリームと、Local Storage１８にダウンロードとを1つのストリームシーケンスとして扱い、連続的に再生してゆくことができる。
【０１４５】
以上の説明は、本発明の全ての実施行為の形態を示している訳ではない。下記(A)(B)(C)(D)・・・・・の変更を施した実施行為の形態によっても、本発明の実施は可能となる。本願の請求項に係る各発明は、以上に記載した複数の実施形態及びそれらの変形形態を拡張した記載、ないし、一般化した記載としている。拡張ないし一般化の程度は、本発明の技術分野の、出願当時の技術水準の特性に基づく。
【０１４６】
(A)上述したVirtual FileSysterm部３８の説明において、ディレクトリ管理情報及びファイル管理情報の具体的なデータ構造については、言及しなかったが、BD-ROMにおけるファイルシステムが、ISO／IEC13346に規定されたものである場合、ディレクトリ管理情報は、“ディレクトリファイル”、及び、“ファイルエントリ”から構成されてもよい。ディレクトリファイルは、自身の配下にあるディレクトリのディレクトリ名を記述したファイル識別記述子や、自身の配下にあるファイルのファイル名を記述したファイル識別記述子からなる。この“ファイルエントリ”は、記述子タグと、ICBタグと、アロケーション記述子長と、拡張属性と、アロケーション記述子とからなる。
【０１４７】
ファイル管理情報は、ファイルエントリから構成されてもよい。アロケーション記述子は、ファイルを構成する各エクステント毎の記録位置を示す。
【０１４８】
この場合、Virtual Package情報の作成は、BD-ROMのボリューム管理情報におけるSTREAMディレクトリに相当するディレクトリファイルに、LocalStorage上のAVClipのファイル名のファイル識別記述子を追加し、BD-ROMのボリューム管理情報におけるSTREAMディレクトリの配下に、LocalStorage上のAVClipについてのファイルエントリーを追加することによりなされる。
(B)全ての実施形態では、記録媒体をBD-ROMとして実施したが、AVClip及びPlayList情報を記録しうる記録媒体なら、どのような記録媒体であってもよい。例えば、DVD-ROM,DVD-RAM,DVD-RW,DVD-R,DVD+RW,DVD+R,CD-R,CD-RW等の光ディスク、PD,MO等の光磁気ディスクであってもよい。また、コンパクトフラッシュ（登録商標）カード、スマートメディア、メモリスティック、マルチメディアカード、PCM-CIAカード等の半導体メモリカードであってもよい。フレシキブルディスク、SuperDisk,Zip,Clik!等の磁気記録ディスク(i)、ORB,Jaz,SparQ,SyJet,EZFley,マイクロドライブ等のリムーバルハードディスクドライブ(ii)であってもよい。更に、機器内蔵型のハードディスクであってもよい。
(C) 全ての実施形態における再生装置は、BD-ROMに記録されたAVClipをデコードした上でTVに出力していたが、再生装置をBD-ROMドライブのみとし、これ以外の構成要素をTVに具備させてもい、この場合、再生装置と、TVとをIEEE1394で接続されたホームネットワークに組み入れることができる。また、実施形態における再生装置は、テレビと接続して利用されるタイプであったが、ディスプレィと一体型となった再生装置であってもよい。更に、各実施形態の再生装置において、処理の本質的部分をなす部分のみを、再生装置としてもよい。これらの再生装置は、何れも本願明細書に記載された発明であるから、これらの何れの態様であろうとも、各実施形態に示した再生装置の内部構成を元に、再生装置を製造する行為は、本願の明細書に記載された発明の実施行為になる。各実施形態に示した再生装置の有償・無償による譲渡(有償の場合は販売、無償の場合は贈与になる)、貸与、輸入する行為も、本発明の実施行為である。店頭展示、カタログ勧誘、パンフレット配布により、これらの譲渡や貸渡を、一般ユーザに申し出る行為も本再生装置の実施行為である。
【０１４９】
(D)各フローチャートに示したプログラムによる情報処理は、ハードウェア資源を用いて具体的に実現されていることから、上記フローチャートに処理手順を示したプログラムは、単体で発明として成立する。全ての実施形態は、再生装置に組み込まれた態様で、本発明に係るプログラムの実施行為についての実施形態を示したが、再生装置から分離して、各実施形態に示したプログラム単体を実施してもよい。プログラム単体の実施行為には、これらのプログラムを生産する行為(1)や、有償・無償によりプログラムを譲渡する行為(2)、貸与する行為(3)、輸入する行為(4)、双方向の電子通信回線を介して公衆に提供する行為(5)、店頭展示、カタログ勧誘、パンフレット配布により、プログラムの譲渡や貸渡を、一般ユーザに申し出る行為(6)がある。
(E)各フロ−チャ−トにおいて時系列に実行される各ステップの「時」の要素を、発明を特定するための必須の事項と考える。そうすると、これらのフロ−チャ−トによる処理手順は、再生方法の使用形態を開示していることがわかる。各ステップの処理を、時系列に行うことで、本発明の本来の目的を達成し、作用及び効果を奏するよう、これらのフロ−チャ−トの処理を行うのであれば、本発明に係る記録方法の実施行為に該当することはいうまでもない。
【０１５０】
(F)各実施形態において、記録媒体に記録されるデジタルストリームはAVClipであったが、DVD-Video規格、DVD-Video Recording規格のVOB(VideoObject)であってもよい。VOBは、ビデオストリーム、オーディオストリームを多重化することにより得られたISO／IEC13818-1規格準拠のプログラムストリームである。またAVClipにおけるビデオストリームは、MPEG4やWMV方式であってもよい。更にオーディオストリームは、Linear-PCM方式、Dolby-AC3方式、MP3方式、MPEG-AAC方式、Dts、WMA(Windows（登録商標）media audio)であってもよい。
【０１５１】
(G)各実施形態における映像作品は、アナログ放送で放送されたアナログ映像信号をエンコードすることにより得られたものでもよい。デジタル放送で放送されたトランスポートストリームから構成されるストリームデータであってもよい。
【０１５２】
またビデオテープに記録されているアナログ／デジタルの映像信号をエンコードしてコンテンツを得ても良い。更にビデオカメラから直接取り込んだアナログ／デジタルの映像信号をエンコードしてコンテンツを得ても良い。他にも、配信サーバにより配信されるデジタル著作物でもよい。
【０１５３】
(H)BD-Jモジュール２９bは、衛星放送受信のために機器に組み込まれたJava（登録商標）プラットフォームであってもよい。BD-Jモジュール２９bがかかるJava（登録商標）プラットフォームであれば、本発明に係る再生装置は、MHP用STBとしての処理を兼用することになる。
【０１５４】
更に携帯電話の処理制御のために機器に組み込まれたJava（登録商標）プラットフォームであってもよい。かかるBD-Jモジュール２９bがかかるJava（登録商標）プラットフォームであれば、本発明に係る再生装置は、携帯電話としての処理を兼用することになる。
【０１５５】
(I)レイアモデルにおいて、BD-Jモードの上にHDMVモードを配置してもよい。特にHDMVモードでの動的シナリオの解釈や、動的シナリオに基づく制御手順の実行は、再生装置に対する負担が軽いので、HDMVモードをBD-Jモード上で実行させても何等問題は生じないからである。また再生装置や映画作品の開発にあたって、動作保証が1つのモードで済むからである。
【０１５６】
更にBD-Jモードだけで再生処理を実行してもよい。BD-JモードでもPLの再生と同期した再生制御が可能になるから、強いてHDMVモードを設けなくてもよいという理由による。
【０１５７】
(J)Local Storage１８にダウンロードされるAVClipは、特典映像や制作者、俳優のインタビューであってもよい。
【０１５８】
(K)ある Clip が Missing Stream もしくは Rewritable かどちらの状態であるかを、アプリケーションから知る方法として、上記実施形態では、getMissingStreamメソッドを呼び出すことにしたが、java（登録商標）.net,java（登録商標）.io等のjava（登録商標）ライブラリをを用いて実現しても良い。この場合、以下のa),b),c)の方法を用いることが現実的である。
a)Binding Unit Manifest File(ストリーム位置格納情報)の内容をXML Parser を利用して解析する。
Binding Unit Manifest File の例：
＜Progressive＞
＜ProgressiveAsset VPFilename="BDMV／STREAM／01000.m2ts"＞ 
←識別子
＜BUDAFile name="1／1／streams／0.m2ts"＞＜／BUDAFile＞
←ファイルパス
＜／ProgressiveAsset＞
＜ProgressiveAsset VPFilename="BDMV／STREAM／01001.m2ts"＞
＜BUDAFile name="1／1／streams／1.m2ts"＞＜／BUDAFile＞
＜／ProgressiveAsset＞
＜ProgressiveAsset VPFilename="BDMV／STREAM／01002.m2ts"＞
＜BUDAFile name="1／1／streams／2.m2ts"＞＜／BUDAFile＞
＜／ProgressiveAsset＞
＜／Progressive＞
※ "BUDA" は Binding Unit Data Area の略であり、
Binding Unit Data Area とは Virtual Package に利用する
ファイルを格納する Local Storage 内の領域のこと
b)java（登録商標）.io を使って、Binding Unit Manifest File に記載されている
ファイルパス（ストリーム格納位置）に、xxxxx.m2ts が存在するか確認する。
例：
new java（登録商標）.io.File("1／1／streams／0.m2ts").exists();
／／ false の場合は Missing Stream
c)ダウンロードが完了したかどうかの判断は java（登録商標）.net, java（登録商標）.io を使って、サーバ上のファイルのサイズと LocalStorage 上のファイルのサイズが一致しているかどうかを確認する。
例：
new java（登録商標）.net.URL(http:／／xxx.com／vp_data／0.m2ts).openConnection().getContentLength()
== new java（登録商標）.io.File("1／1／streams／0.m2ts").length();
／／ 一致していれば、ダウンロードが完了したとみなすことが可能
【産業上の利用可能性】
【０１５９】
本発明に係る再生装置は、ホームシアターシステムでの利用のように、個人的な用途で利用されることがありうる。しかし本発明は上記実施形態に内部構成が開示されており、この内部構成に基づき量産することが明らかなので、資質において工業上利用することができる。このことから本発明に係る再生装置は、産業上の利用可能性を有する。
【図面の簡単な説明】
【０１６０】
【図１】本発明に係る再生装置の、使用行為についての形態を示す図である。
【図２】BD-ROMの内部構成を示す図である。
【図３】AVClipがどのように構成されているかを模式的に示す図である。
【図４】PL情報の構成を示す図である。
【図５】AVClip時間軸と、PL時間軸との関係を示す図である。
【図６】4つのClip_Information_file_nameによりなされた一括指定を示す図である。
【図７】PLmark情報の内部構成を示す図である。
【図８】PLmarkによるチャプター定義を示す図である。
【図９】SubPath情報の内部構成を示す図である。
【図１０】SubPlayItem時間軸上の再生区間定義と、同期指定とを示す図である。
【図１１】（ａ）Java（登録商標）アーカイブファイルに収められているプログラム、データを示す図である。（ｂ）は、クラスファイルの内部構成を示す図である。
【図１２】本発明に係る再生装置の内部構成を示す図である。
【図１３】（ａ）Local Storage１８におけるディレクトリ構造を示す図である。（ｂ）ストリーム格納位置情報ファイルの内部構成を示す図である。
【図１４】ROM２４に格納されたソフトウェアと、ハードウェアとからなる部分を、レイア構成に置き換えて描いた図である。
【図１５】Java（登録商標）仮想マシン３０の内部構成を示す図である。
【図１６】Virtual FileSystem部３８によるVirtual Package情報構築の一例を示す図である。
【図１７】Virtual FileSystem部３８による状態管理の一例を示す図である。
【図１８】状態管理を反映したVirtual Package情報の作成を示す図である。
【図１９】ネットワーク管理モジュール３７によるダウンロードが途上である場合の、Virtual FileSystem部３８によるVirtual Package構築を示す図である。
【図２０】（ａ）ローカルストレージに格納されたPL情報により、どのようなPlayList再生時間軸が定義されるかを示す図である。  （ｂ）Progressive PlayList情報の概念を示す図である。
【図２１】管理情報変換モジュール３９によるインスタンス生成を示す図である。
【図２２】PlayListオブジェクトにおけるPlayメソッドの呼び出しを示す図である。
【図２３】getMissingStreamsメソッドによる問合せの結果を模式的に示す図である。
【図２４】enableClipメソッドの呼出を模式的に示す図である。
【図２５】disableClipメソッドの呼出を模式的に示す図である。
【図２６】Virtual Package構築時の処理を示すフローチャートである。
【図２７】（ａ）enableClipメソッドの呼出時の処理手順を示すフローチャートである。（ｂ）disableClipメソッドの呼出時の処理手順を示すフローチャートである。
【図２８】Playback Control Engine３２による再生手順を示すフローチャートである。
【図２９】アプリケーションの処理手順を示すフローチャートである。
【図３０】（ａ）（ｂ）ネットワーク管理モジュール３７によるダウンロードの進捗と、Playback Control Engine３２による再生の進捗とを示す図である。
【図３１】（ａ）（ｂ）ネットワーク管理モジュール３７によるダウンロードの進捗と、Playback Control Engine３２による再生の進捗とを示す図である。
【図３２】（ａ）（ｂ）ネットワーク管理モジュール３７によるダウンロードの進捗と、Playback Control Engine３２による再生の進捗とを示す図である。
【図３３】ネットワーク管理モジュール３７によるダウンロードの進捗と、Playback Control Engine３２による再生の進捗とを示す図である。
【符号の説明】
【０１６１】
１  BD-ROMドライブ
２  Read Buffer
３  デマルチプレクサ
４  ビデオデコーダ
５  ビデオプレーン
６  P-Graphicsデコーダ
７  Presentation Graphicsプレーン
８  合成部
９  フォントゼネレータ
１０  I-Graphicsデコーダ
１１  スイッチ
１２  Interactive Graphicsプレーン
１３  合成部
１４  CLUT部
１５  CLUT部
１６  オーディオデコーダ
１７  Network Device
１８  Local Storage
１９  Read Buffer
２０  デマルチプレクサ
２１  命令ROM
２２  ユーザイベント処理部
２３  PSRセット
２４  CPU
２５  シナリオメモリ
２６  Local Memory
２７  スイッチ
２９a  HDMVモジュール
２９b  BD-Jモジュール
３０  Java（登録商標）仮想マシン
３１  Presentation Engine
３２  Playback Control Engine
３８  Virtual File Systerm部 
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2005109434.tif 000038
【図２】
2005109434.tif 000039
【図３】
2005109434.tif 000040
【図４】
2005109434.tif 000041
【図５】
2005109434.tif 000042
【図６】
2005109434.tif 000043
【図７】
2005109434.tif 000044
【図８】
2005109434.tif 000045
【図９】
2005109434.tif 000046
【図１０】
2005109434.tif 000047
【図１１】
2005109434.tif 000048
【図１２】
2005109434.tif 000049
【図１３】
2005109434.tif 000050
【図１４】
2005109434.tif 000051
【図１５】
2005109434.tif 000052
【図１６】
2005109434.tif 000053
【図１７】
2005109434.tif 000054
【図１８】
2005109434.tif 000055
【図１９】
2005109434.tif 000056
【図２０】
2005109434.tif 000057
【図２１】
2005109434.tif 000058
【図２２】
2005109434.tif 000059
【図２３】
2005109434.tif 000060
【図２４】
2005109434.tif 000061
【図２５】
2005109434.tif 000062
【図２６】
2005109434.tif 000063
【図２７】
2005109434.tif 000064
【図２８】
2005109434.tif 000065
【図２９】
2005109434.tif 000066
【図３０】
2005109434.tif 000067
【図３１】
2005109434.tif 000068
【図３２】
2005109434.tif 000069
【図３３】
2005109434.tif 000070
【国際調査報告】
2005109434.tif 000071
2005109434.tif 000072
2005109434.tif 000073