(57)【要約】  再生装置は、デジタルストリームの再生と、アプリケーションの実行とを行う装置である。Ｊａｖａ（ＴＭ）モジュール４１４は、プラットフォーム部であり、アプリケーションを実行して、実行結果に基づく制御を、実行する。この再生にあたって再生装置は、再生制御を行うための自機固有の実パラメータを複数有しており、Ｊａｖａ（ＴＭ）モジュール４１４は、アプリケーションからのメソッド呼出に応じて、実パラメータを用いた機能を提供する。【特許請求の範囲】
【請求項１】
アプリケーションとデジタルストリームとを連動して再生する再生装置であって、
記録媒体に記録されたデジタルストリームを再生する再生手段と、
前記記録媒体に記録されたアプリケーションを実行して、実行結果に基づく再生を行うよう、前記再生手段を制御するプラットフォーム部とを備え、
前記再生手段は、
前記再生制御を行うための自機固有の実パラメータを複数有しており、
前記プラットフォーム部は、
前記記録媒体に記録された前記アプリケーションを解釈し、実行する実行部と、
前記アプリケーションに提供すべき機能を具備しており、当該機能を用いた再生制御を実行して、前記自機固有の実パラメータに基づく再生動作を、前記再生手段に行わせるモジュール部と
を有することを特徴とする再生装置。
【請求項２】
前記アプリケーションに提供すべき機能とは、
複数のユーザイベントと、各ユーザイベントに対応する前記自機固有の実パラメータとの対応関係を示す特殊再生情報を、前記実行中のアプリケーションからの呼出に応じて、前記実行中のアプリケーションに引き渡す機能であり、
前記モジュール部は
前記実行中のアプリケーションにより、前記特殊再生情報を用いた呼び出しがなされた際、前記自機固有の実パラメータに基づく再生動作を、前記再生手段に実行させることを特徴とする請求項１記載の再生装置。
【請求項３】
前記ユーザイベントは、ユーザにより押下されたボタンの種別を示し、
前記実パラメータは、再生速度の倍率を示す、ことを特徴とする請求項２記載の再生装置。
【請求項４】
前記ユーザイベントは更に、前記ボタンの押下回数を含み、
前記特殊再生情報は、
多い押下回数を含むユーザイベントを、高い再生速度の倍率に対応付けて示す、ことを特徴とする請求項３記載の再生装置。
【請求項５】
前記アプリケーションに提供すべき機能とは、
前記実行中のアプリケーションから再生の速度に応じた変数を受け取り、
前記自機固有の複数の実パラメータのうち、前記再生の速度に応じたものに、前記受け取った変数を展開する機能であり、
前記モジュール部は、展開された実パラメータを用いた再生動作を、前記再生手段に実行させる、ことを特徴とする請求項１記載の再生装置。
【請求項６】
前記アプリケーションに提供すべき機能とは、
前記複数の実パラメータを一覧した配列データを、前記実行中のアプリケーションからの要求に応じて、前記実行中のアプリケーションに引き渡す機能である
ことを特徴とする請求項１記載の再生装置。
【請求項７】
前記実行部は前記記録媒体に記録されたアプリケーションを解釈し、実行することにより、グラフィックスの描画を制御することを特徴とする請求項１記載の再生装置。
【請求項８】
前記アプリケーションに提供すべき機能とは、
複数のユーザイベントと、各ユーザイベントに対応する前記自機固有の実パラメータとの対応関係を示す特殊再生情報を、前記実行中のアプリケーションからの呼び出し応じて、前記実行中のアプリケーションに引き渡す機能であり、
前記モジュール部は前記実行中のアプリケーションからの前記特殊再生情報を用いた呼び出しに応じた再生制御を行い、
前記実行中のアプリケーションは、
前記機能により得られた特殊再生情報に基づき前記グラフィックスの描画の制御を実行することを特徴とする請求項７記載の再生装置。
【請求項９】
前記アプリケーションに提供すべき機能とは、
前記実行中のアプリケーションから再生の速度に応じた変数を受け取り、
前記受け取った変数を前記自機固有の複数の実パラメータの中から前記再生の速度に応じた実パラメータへ展開し、展開した実パラメータを前記実行中のアプリケーションへ引き渡す機能であり、
前記モジュール部は、前記展開された実パラメータを用いた再生の制御を実行し、
前記実行中のアプリケーションは前記展開された実パラメータに基づきグラフィックスの描画の制御を実行する請求項７記載の再生装置。
【請求項１０】
アプリケーションとデジタルストリームとの連動した再生をコンピュータに実行させるプログラムであって、
記録媒体に記録されたデジタルストリームを再生する再生プログラムと、
記録媒体に記録されたアプリケーションを解釈し、実行することにより、前記再生手段に対する再生の制御を行うプラットフォームプログラムとを備え、
前記再生プログラムは、
前記再生制御を行うための自機固有の実パラメータを複数有しており、
前記プラットフォームプログラムは、
アプリケーションに提供すべき機能を具備しており、当該機能を用いた再生制御を実行して、前記自機固有の実パラメータに基づく再生動作を、再生プログラムに行わせる、ことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、記録媒体に対する、読み出し制御の技術分野に属する発明である。
【背景技術】
【０００２】  読み出し制御技術とは、ＢＤ−ＲＯＭ等の記録媒体に記録されたデジタルストリームを、４倍、８倍等、所望の速度で読み出して、デコーダに供給する技術である。
かかる制御を実現するプログラムは、組込プログラムとして、再生装置に内蔵されることが一般的である。だが近い将来、かかる制御プログラムは、ＢＤ−ＲＯＭに記録され、ＢＤ−ＲＯＭから再生装置に供給されるという形態で、広く普及するとも考えられている。これは、アプリケーションと、ビデオストリームとを連動させた映画作品を制作するためである。以降、この映画作品制作について説明する。【０００３】  この映画作品を制作するにあたって、動画データを記録した記録媒体に、その動画データを利用したアプリケーションが記録しておく。そしてこのアプリケーションは、再生装置により起動された際、動画を再生させながら、画面の傍らで、キャラクターを動作させるという動作を行う。かかるアプリケーションを制作して、ゲームやクイズに応用すれば、映画作品の付加価値は飛躍的に高まる。【０００４】  そのような対話制御を行うにあたって、ＢＤ−ＲＯＭ上の制御プログラムが、動画像の再生速度を調整すれば、動画の再生と共にキャラクターの動きを早めたり、遅くしたりすることができる。このような制御プログラムをＢＤ−ＲＯＭに記録して再生装置に供給すれば、動画と密に連動した対話型アプリケーションを、世に送り出すことができ、映画作品の付加価値を一層高めることができる。尚、再生速度の調整に関しては、以下の特許文献１に示される先行技術がある。
【特許文献１】特開２００３−７０３５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】  ところで再生装置を制作するメーカーが、かかる制御プログラムを制作しようとした場合、再生装置側のドライブ性能を無視したような、再生制御を規定することはまず考えられない。メーカーの技術者は、再生装置のドライブ性能を完全に把握した上で、制御プログラムを制作しようとするからである。
しかしメーカー以外の第３者、つまり映画作品の制作者のような者が、制御プログラムを制作しようとすると、再生装置側のドライブ性能を全く把握していないような、再生制御を規定してしまうことがあり得る。【０００６】  つまり、民生機器の流通市場には、ドライブ性能が異なる様々な再生装置が流通している。その中で、高い価格帯で販売されるような再生装置は、高性能なドライブ装置が内蔵されるだろうし、低い価格帯で販売されるような再生装置は、低性能なドライブ装置が内蔵されると考えられる。映画の制作者のような第３者が制御プログラムを制作した場合、制作された制御プログラムは、かかる性能差を全く考慮せず、読み出し制御を再生装置に命じようとする。そうとすると、当然のことながら、誤動作やおかしな動きを行う等、不具合が多発する結果になる。【０００７】  ここで再生装置側に近似機能が存在すれば、かかる不具合をなくすことができるように思える。近似機能とは、自機のドライブ性能以上の速度での読み出しが制御プログラムから命じられた場合、その要求された速度を自機がサポートし得る速度に置き換えた上で、ドライブ装置に対する制御を命じる機能である。仮にアプリケーションが、４倍、８倍、１６倍、３２倍という速度での再生を再生装置側に要求したとする。他方、再生装置でサポート可能な速度が２倍、４倍であると、８倍以上の速度が全て、４倍速に近似されることになる。しかし動画と密に連動するようなキャラクターの描画を、アプリケーションが実行している場合、アプリケーションは４倍、８倍、１６倍での再生がなされものと信じて、高速にキャラクターが動く（または変化する）ように描画しているのに、ドライブ装置側は、これらのアプリケーションによる指定に拘らず、近似された同じ再生速度（上述の例では４倍）で、動画を再生することになる。かかる食い違いがあると、アプリケーションによるキャラクターの動きが、再生装置側にて再生される動画の動きより異様に早くなり、これらを重ね合わせ、表示したものは全体として違和感があるものとなる。このような不整合、つまりアプリケーションによる描画による動きと、動画像の動きとの不整合は、映画作品のプロバイダにとっても、再生装置のメーカーにとっても望ましいことではない。【０００８】  本発明の目的は、記録媒体に記録されたアプリケーションを実行し、実行したアプリケーションによりデジタルストリームの再生を制御する場合、記録媒体を再生する再生装置の性能に見合ったデジタルストリームの再生の制御を行える再生装置を提供することである。
更には、個々の再生装置のドライブ性能の違いに拘らず、動画再生と、アプリケーション側の描画との同期を維持することができる、再生装置を提供することである。
【課題を解決するための手段】
【０００９】  上記目的を達成するため、本発明に係る再生装置は、記録媒体に記録されたデジタルストリームを再生する再生手段と、前記記録媒体に記録されたアプリケーションを実行して、実行結果に基づく再生を行うよう、前記再生手段を制御するプラットフォーム部とを備え、前記再生手段は、前記再生制御を行うための自機固有の実パラメータを複数有しており、前記プラットフォーム部は、前記記録媒体に記録された前記アプリケーションを解釈し、実行する実行部と、前記アプリケーションに提供すべき機能を具備しており、当該機能を用いた再生制御を実行して、前記自機固有の実パラメータに基づく再生動作を、前記再生手段に行わせるモジュール部とを有することを特徴としている。
【発明の効果】
【００１０】  アプリケーションは、機能呼出を行うことにより、実パラメータを用いた機能をプラットフォーム部（更に詳しくはモジュール部）に実行させることができる。プラットフォーム部により実行される機能は、機器固有の実パラメータに基づくから、ドライブ性能が低い再生装置では、低い速度倍率での再生制御がなされることになり、ドライブ性能が高い再生装置では、高い速度倍率での再生制御がなされることになる。【００１１】  かかる機能を用いて特殊再生を実現すれば、再生装置においてサポートされていない再生速度で再生を行うような、ミスコントロールは生じ得ない。
故に、たとえ市場において流通している再生装置のドライブ性能にバラツキがあり、再生装置側で近似機能が働いたとしても、アプリケーションは、再生装置側のドライブ性能に応じた再生制御を実現することができる。【００１２】  一方、モジュール部から提供される機能が、実パラメータをアプリケーションに引き渡すものなら、アプリケーションは、再生装置側でサポートされている倍率を知り得ることができるので、そうやって知り得た倍率を基に、キャラクターの描画の制御を行えば、再生装置側のドライブ性能にバラツキがあったとしても、アプリケーションによるキャラクターの描画による動きと、再生装置による動画再生とが大きく食い違い、これらを重ね合わせ、表示したものが全体として違和感を生じるといったことがなくなる。かかる食い違いの解消により、アプリケーションによるキャラクターの描画による動きと、再生装置によるデジタルストリームの再生とが、密接に連動した、対話制御を実現することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態１におけるＢＤ−ＲＯＭのデータ階層図
【図２】本発明の実施の形態１におけるＢＤ−ＲＯＭが対象としているソフトウェアのレイヤモデルを示す図
【図３】２つのモードの動的な再生制御にて作成される映画作品を示す図
【図４】本発明の実施の形態１における再生装置の内部構成を示す図
【図５】本発明の実施の形態１における特殊操作に関連したユーザ操作の処理に関わるブロック図
【図６】本発明の実施の形態１における再生装置が保持している特殊再生情報の内容を示す図
【図７】本発明の実施の形態１におけるユーザ操作をトリガとして特殊再生を行う処理のフローチャート
【図８】本発明の実施の形態１におけるＪａｖａ（ＴＭ）アプリケーションが特殊再生情報を取得する様子を示す図
【図９】本発明の実施の形態１における特殊再生操作に対応するキーイベントの種類をＪａｖａ（ＴＭ）アプリケーションが特殊再生情報取得モジュールから取得する様子を示す図
【図１０】本発明の実施の形態１におけるＪａｖａ（ＴＭ）アプリケーションが端末依存変数を用いて特殊再生に用いる再生速度を指定する様子を示す図
【図１１】Ｊａｖａ（ＴＭ）アプリケーションの特殊再生要求に対する処理のフローチャート
【図１２】本発明の実施の形態２におけるＪａｖａ（ＴＭ）モジュールの構成を示す図
【図１３】本発明の実施の形態２におけるアプリ共通特殊再生情報の内容を示す図
【図１４】本発明の実施の形態２におけるアプリ共通特殊再生情報の変更がＪａｖａ（ＴＭ）アプリケーションに与える影響を示す図
【図１５】本発明の実施の形態３における特殊操作に関連したユーザ操作の処理に関わるブロック図
【図１６】本発明の実施の形態４における特殊操作に関連したユーザ操作の処理に関わるブロック図
【図１７】本発明の実施の形態４におけるＪａｖａ（ＴＭ）モジュールからＤＶＤライクモジュールに対しＵＯイベントを送信する様子を示す図
【図１８】本発明の実施の形態５における特殊操作に関連したユーザ操作の処理に関わるブロック図
【符号の説明】
【００１４】  ４０１  ＢＤドライブ
４０２  トラックバッファ
４０３  デマルチプレクサ
４０４  ビデオデコーダ
４０５  ビデオプレーン
４０６  オーディオデコーダ
４０７  イメージメモリ
４０８  イメージプレーン
４０９  イメージデコーダ
４１０  加算器
４１１  静的シナリオメモリ
４１２  動的シナリオメモリ
４１３  ＤＶＤライクモジュール
４１４  Ｊａｖａモジュール
４１５  ＵＯ検知モジュール
４１６  モード管理モジュール
４１７  ディスパッチャ
４１８  レンダリングエンジン
４１９  特殊再生管理情報
４２０  ＡＶ再生ライブラリ
５０１  シナリオプログラム
５０２  シナリオ制御モジュール
５０３  ＵＯ処理モジュール
５０４  アプリケーションマネージャ
５０５  Ｊａｖａアプリケーション
５０６  特殊再生情報取得モジュール
５０７  メディア再生モジュール
６０１  Ｊａｖａアプリケーション
６０２  メディア再生モジュール
６０３  特殊再生情報取得・変更モジュール
６０４  アプリケーション共通特殊再生情報
１４０１  Ｊａｖａアプリケーション
１４０２  Ｊａｖａアプリケーション
１５０１  ＵＯ処理モジュール
１５０２  両モード共通特殊再生情報
１５０３  メディア再生モジュール
１５０４  特殊再生情報取得・変更モジュール
１５０５  Ｊａｖａアプリケーション
１６０１  ディスパッチャモジュール
３００１  記録媒体
３００２  ディスク制御部
３００３  分離部
３００４  ビデオ処理部
３００５  オーディオ処理部
３００６  ＶＲナビゲーション処理部
Ｓ７０１  ユーザ操作検知ステップ
Ｓ７０２  モード判定ステップ
Ｓ７０３  ＤＶＤライクモジュールへＵＯイベント配信ステップ
Ｓ７０４  ＵＯイベント処理ステップ
Ｓ７０５  ＪａｖａモジュールへＵＯイベント配信ステップ
Ｓ７０６  ＪａｖａアプリケーションへＵＯイベント配信ステップ
Ｓ７０７  特殊再生情報取得ステップ
Ｓ７０８  特殊再生処理ステップ
Ｓ１１０１  特殊再生要求ステップ
Ｓ１１０２  速度指定方法判定ステップ
Ｓ１１０３  特殊再生情報取得ステップ
Ｓ１１０４  即値展開ステップ
Ｓ１１０５  特殊再生実行ステップ
【発明を実施するための最良の形態】
【００１５】  以下本発明の実施の形態について、図面を参照しながら説明する。
（実施の形態１）
図１は、ＢＤ−ＲＯＭ（以降、「ＢＤ」と称する場合もある）の構成を示した図である。ＢＤディスクは、他の光ディスク、例えばＤＶＤやＣＤなどと同様にその内周から外周に向けてらせん状に記録領域を持ち、内周のリード・インと外周のリード・アウトの間に論理データを記録できる論理アドレス空間を有している。また、リード・インの内側にはＢＣＡ（Ｂｕｒｓｔ  Ｃｕｔｔｉｎｇ  Ａｒｅａ）と呼ばれるドライブでしか読み出せない特別な領域がある。この領域はアプリケーションから読み出せないため、例えば著作権保護技術などに利用されることがよくある。【００１６】  論理アドレス空間には、ファイルシステム情報（ボリューム）を先頭に映像データなどのアプリケーションデータが記録されている。ファイルシステムとは、ＵＤＦやＩＳＯ９６６０などのことであり、通常のＰＣと同じように記録されている論理データをディレクトリ、ファイル構造を使って読み出しする事が可能になっている。
本実施の形態の場合、ＢＤディスク上のディレクトリ、ファイル構造は、ルートディレクトリ（ＲＯＯＴ）直下にＢＤＶＩＤＥＯディレクトリが置かれている。このディレクトリはＢＤ−ＲＯＭで扱うＡＶコンテンツや管理情報などのデータが記録されているディレクトリである。【００１７】  ＢＤＶＩＤＥＯディレクトリの下には、次の７種類のファイルが記録されている。
ＢＤ．ＩＮＦＯ（ファイル名固定）
「ＢＤ管理情報」の一つであり、ＢＤディスク全体に関する情報を記録したファイルである。ＢＤプレーヤは最初にこのファイルを読み出す。
ＢＤ．ＰＲＯＧ（ファイル名固定）
「ＢＤ再生プログラム」の一つであり、ＢＤディスク全体に関わるプログラムを記録したファイルである。【００１８】  ＸＸＸ．ＰＬ（「ＸＸＸ」は可変、拡張子「ＰＬ」は固定）
「ＢＤ管理情報」の一つであり、シナリオを記録するプレイリスト（Ｐｌａｙ  Ｌｉｓｔ）情報を記録したファイルである。プレイリスト毎に１つのファイルを持っている。
ＸＸＸ．ＰＲＯＧ（「ＸＸＸ」は可変、拡張子「ＰＲＯＧ」は固定）
「ＢＤ再生プログラム」の一つであり、前述したプレイリスト毎のプログラムを記録したファイルである。プレイリストとの対応はファイルボディ名（「ＸＸＸ」が一致する）によって識別される。【００１９】  ＹＹＹ．ＶＯＢ（「ＹＹＹ」は可変、拡張子「ＶＯＢ」は固定）
「ＡＶデータ」の一つであり、ＡＶデータであるＭＰＥＧストリームが記録されたファイルである。ＶＯＢ毎に１つのファイルを持っている。
ＹＹＹ．ＶＯＢＩ（「ＹＹＹ」は可変、拡張子「ＶＯＢＩ」は固定）
「ＢＤ管理情報」の一つであり、ＡＶデータであるＶＯＢに関わる管理情報を記録したファイルである。ＶＯＢとの対応はファイルボディ名（「ＹＹＹ」が一致する）によって識別される。【００２０】  ＺＺＺ．ＰＮＧ（「ＺＺＺ」は可変、拡張子「ＰＮＧ」は固定）
「ＡＶデータ」の一つであり、字幕及びメニューを構成するためのイメージデータＰＮＧ（Ｗ３Ｃによって標準化された画像フォーマットであり「ピング」と読む）を記録したファイルである。１つのＰＮＧイメージ毎に１つのファイルを持つ。
図２は再生制御のレイヤモデルを示した図である。図２の第１層は、物理層であり、処理対象たるストリーム本体の供給制御である。この第１層に示すように、処理対象たるストリームは、ＢＤ−ＲＯＭだけではなく、ＨＤ、メモリカード、ネットワークといったあらゆる記録媒体、通信媒体を供給源としている。これらＨＤ、メモリカード、ネットワークといった供給源に対する制御（ディスクアクセス、カードアクセス、ネットワーク通信）が第１層の制御である。【００２１】  第２層は、デジタルストリームを構成するＡＶデータ（またはＡＶストリーム）のレイアである。第１層で供給されたデジタルストリーム（以下ストリームと称す）を、どのような復号化方式を用いて復号するのかを規定しているのがこの第２層である。
第３層（ＢＤ管理データ）は、ストリームの静的なシナリオを規定するレイアである。静的なシナリオとは、ディスク制作者によって予め規定された再生経路情報、ストリーム管理情報であり、これらに基づく再生制御を規定しているのがこの第３層である。【００２２】  第４層（ＢＤ再生プログラム）は、ストリームにおける動的なシナリオを実現するレイヤである。動的なシナリオは、ＡＶストリームの再生手順、及び、その再生に関する制御手順のうち少なくとも一方を実行するプログラムである。動的なシナリオによる再生制御は、装置に対するユーザ操作に応じて変化するものであり、プログラム的な性質をもつ。ここでの動的な再生制御には、２つのモードがある。２つのモードのうち１つは、ＡＶ機器特有の再生環境で、ＢＤ−ＲＯＭに記録された動画データを再生するモード（ＤＶＤライクモード）であり、もう１つはＢＤ−ＲＯＭに記録された動画データの付加価値を高めるモード（Ｊａｖａ（ＴＭ）モード）である。図２において第４層には、ＤＶＤライクモードとＪａｖａ（ＴＭ）モードの２つのモードが記述されている。ＤＶＤライクモードは、ＤＶＤライクな再生環境での再生モードであり、再生進行を動的に変化させるためのシナリオが記述されたシナリオプログラムが動作する。もう一つのＪａｖａ（ＴＭ）モードは、Ｊａｖａ（ＴＭ）仮想マシンを主体とした再生モードであり、記録媒体（本実施の形態ではＢＤ−ＲＯＭを例に説明する）に記録されＪａｖａ（ＴＭ）アプリケーションであって、Ｊａｖａ（ＴＭ）仮想マシンにより解釈実行されるＪａｖａ（ＴＭ）アプリケーションから再生制御を行う。【００２３】  図３は、２つのモードの動的な再生制御にて作成される映画作品を示す図である。図３（ａ）は、ＤＶＤライクモードで動的な再生制御を定義することにより、作成される映画作品の一場面を示す図である。ＤＶＤライクモードはＤＶＤ再生装置が解釈可能なコマンドと良く似たコマンドで再生制御を記述することができるので、ＤＶＤと同じような再生制御、つまり、メニューに対する選択により再生が進行するような再生制御を定義することができる。図３（ｂ）は、Ｊａｖａ（ＴＭ）モードで動的な再生制御を定義することにより、作成される映画作品である。Ｊａｖａ（ＴＭ）モードはＪａｖａ（ＴＭ）仮想マシンが解釈可能なＪａｖａ（ＴＭ）言語で制御手順を記述したＪａｖａ（ＴＭ）プログラムを用いて実現することができる。このＪａｖａ（ＴＭ）プログラムを用いた再生制御がコンピュータ・グラフィックス（ＣＧ）の動作を制御するものなら、Ｊａｖａ（ＴＭ）モードにあっては、動画を表示した画面の横でＣＧ（図中のフクロウの絵）が動きまわっているような再生制御を定義することができる。【００２４】  図４は、再生装置の大まかな機能構成を示すブロック図である。図４に示すように、再生装置は、ＢＤ−ＲＯＭドライブ４０１、トラックバッファ４０２、デマルチプレクサ４０３、ビデオデコーダ４０４、ビデオプレーン４０５、オーディオデコーダ４０６、イメージメモリ４０７、イメージプレーン４０８、イメージデコーダ４０９、加算器４１０、静的シナリオメモリ４１１、動的シナリオメモリ４１２、ＤＶＤライクモジュール４１３、Ｊａｖａ（ＴＭ）モジュール４１４、ＵＯ検知モジュール４１５、モード管理モジュール４１６、ディスパッチャ４１７、レンダリングエンジン４１８、特殊再生情報４１９、ＡＶ再生ライブラリ４２０を備える。【００２５】  ＢＤ−ＲＯＭドライブ４０１は、ＢＤ−ＲＯＭのローディング／イジェクトを行い、ＢＤ−ＲＯＭに対するアクセスを実行する。
トラックバッファ４０２は、ＦＩＦＯメモリであり、ＢＤ−ＲＯＭから読み出されたＡＣＣＥＳＳ  ＵＮＩＴが先入れ先出し式に格納される。
デマルチプレクサ４０３は、トラックバッファ４０２からＡＣＣＥＳＳ  ＵＮＩＴを取り出して多重分離を行い、ＧＯＰを構成するビデオフレームと、オーディオフレームとを得てビデオフレームをビデオデコーダ４０４に出力し、オーディオフレームをオーディオデコーダ４０６に出力する。副映像ストリームはイメージメモリ４０７に格納し、Ｎａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報は動的シナリオメモリ４１２に格納する。デマルチプレクサ４０３による多重分離は、ＴＳパケットをＰＥＳパケットに変換するという変換処理を含む。【００２６】  ビデオデコーダ４０４は、デマルチプレクサ４０３から出力されたビデオフレームを復号して非圧縮形式のピクチャをビデオプレーン４０５に書き込む。
ビデオプレーン４０５は、非圧縮形式のピクチャを格納しておくためのメモリである。
オーディオデコーダ４０６は、デマルチプレクサ４０３から出力されたオーディオフレームを復号して、非圧縮形式のオーディオデータを出力する。【００２７】  イメージメモリ４０７は、ＢＤ−ＲＯＭから読み出された副映像ストリーム、Ｎａｖｉｇａｔｉｏｎ  Ｂｕｔｔｏｎ情報内のＰＮＧデータ、画像ファイルを格納しておくバッファである。
イメージプレーン４０８は、一画面分の領域をもったメモリであり、展開された副映像ストリーム、ＰＮＧデータ、画像ファイルが配置される。
イメージデコーダ４０９は、イメージメモリ７に格納された副映像ストリーム、ＰＮＧデータ、画像ファイルを展開してイメージプレーン４０８に書き込む。副映像ストリームのデコードにより、各種メニュー、副映像が画面上に現れることになる。【００２８】  加算器４１０は、ピクチャプレーン４０５に格納された非圧縮形式のピクチャデータに、イメージプレーン４０８に展開されたイメージを合成して出力する。図３（ｂ）に示した画面（動画を表示した画面の横でＣＧ（図中のフクロウの絵）が動きまわっているような画面）は、この加算器４１０が、イメージプレーン４０８内のイメージと、ビデオプレーン４０５内のピクチャとを合成することで出力される。【００２９】  静的シナリオメモリ４１１は、カレントのＰＬやカレントのストリーム管理情報を格納しておくためのメモリである。カレントのＰＬとは、ＢＤ−ＲＯＭに記録されている複数のＰＬのうち、現在処理対象になっているものをいう。カレントストリーム管理情報とは、ＢＤ−ＲＯＭに記録されている複数ストリーム管理情報のうち、現在処理対象になっているものをいう。
動的シナリオメモリ４１２は、カレント動的シナリオを格納しておき、ＤＶＤライクモジュール４１３、Ｊａｖａ（ＴＭ）モジュール４１４による処理に供されるメモリである。カレント動的シナリオとは、ＢＤ−ＲＯＭに記録されている複数のシナリオを有するシナリオプログラムにおいて、現在実行対象になっているシナリオをいう。【００３０】  ＤＶＤライクモジュール４１３は、ＤＶＤライクモードの実行主体となるＤＶＤ仮想プレーヤであり、動的シナリオメモリ４１２に読み出されたカレントのシナリオプログラムを実行する。
Ｊａｖａ（ＴＭ）モジュール４１４は、Ｊａｖａ（ＴＭ）プラットフォームであり、Ｊａｖａ（ＴＭ）アプリケーションを解釈し実行するＪａｖａ（ＴＭ）仮想マシン、コンフィグレーション、プロファイルを備える（図示せず）。Ｊａｖａ（ＴＭ）モジュール４１４は、プログラム記録メモリ１に読み出されたＪａｖａ（ＴＭ）アプリケーションを構成するＪａｖａ（ＴＭ）クラスファイルからカレントのＪａｖａ（ＴＭ）オブジェクトを生成し、実行する。Ｊａｖａ（ＴＭ）仮想マシンは、Ｊａｖａ（ＴＭ）言語で記述されたＪａｖａ（ＴＭ）オブジェクトを、再生装置におけるＣＰＵのネィティブコードに変換して、ＣＰＵに実行させる。【００３１】  ＵＯ検知モジュール４１５は、リモコンや再生装置のフロントパネルに対してなされた入力手段を介したユーザ操作を検出して、ユーザ操作を示す情報（以降ＵＯ（Ｕｓｅｒ  Ｏｐｅｒａｔｉｏｎ）という）をモード管理モジュール４１６に出力する。
モード管理モジュール４１６は、ＢＤ−ＲＯＭから読み出されたモード管理テーブルを保持して、モード管理及び分岐制御を行う。モード管理モジュール４１６によるモード管理とは、動的シナリオをＤＶＤライクモジュール４１３、Ｊａｖａ（ＴＭ）モジュール４１４のいずれに実行させるかという、モジュールの割り当てである。【００３２】  ディスパッチャ４１７は、ＵＯから、現在の再生装置におけるモードに適切なＵＯのみを選んで、そのモードを実行するモジュールに受け渡す。例えばＤＶＤライクモードの実行中に、上下左右、アクティベートといったＵＯを受け付けた場合、ＤＶＤライクモードのモジュールにこれらのＵＯを出力するというのがディスパッチャ４１７の処理である。
レンダリングエンジン４１８は、Ｊａｖａ２Ｄ，ＯＰＥＮ−ＧＬといった基盤ソフトウェアを備え、Ｊａｖａ（ＴＭ）モジュール４１４からの指示に従ってコンピュータ・グラフィックスの描画を行い、描画されたコンピュータ・グラフィックスをイメージプレーン４０８に出力する。【００３３】  特殊再生情報４１９は、再生装置でサポートしている再生速度の一覧を特殊再生情報として保持している。この再生速度の一覧は、２．０、１０．０、３０．０というように、再生装置における再生装置固有の実パラメータ（即値）で表現されている。この特殊再生情報はＪａｖａモジュール４１４から参照され、Ｊａｖａ（ＴＭ）モード時における特殊再生においてＤＶＤライクモードと互換を取るために用いられる。【００３４】  ＡＶ再生ライブラリ４２０は、ＤＶＤライクモジュール４１３、Ｊａｖａ（ＴＭ）モジュール４１４からの関数呼び出しに応じて、ＡＶ再生機能、プレイリストの再生機能を実行する。ＡＶ再生機能とは、ＤＶＤプレーヤ、ＣＤプレーヤから踏襲した機能群であり、再生開始、再生停止、一時停止、一時停止の解除、静止画機能の解除、再生速度を即値で指定した早送り、再生速度を即値で指定した巻戻し、音声切り換え、副映像切り換え、アングル切り換えといった処理である。プレイリスト再生機能とは、このＡＶ再生機能のうち、再生開始や再生停止をプレイリスト情報に従って行うことをいう。このＡＶ再生ライブラリ４２０はＤＶＤライクモジュール４１３、Ｊａｖａ（ＴＭ）モジュール４１４から指定された再生速度の即値に応じ、トラックバッファからの読み込み速度を変化させ、その読み込み速度に応じてデマルチプレクサ４０３を制御してビデオデータを抜き出し、ビデオデコーダ４０４に送る。また、オーディオデータも同様にデマルチプレクサ４０３を制御して抜き出し、オーディオデコーダ４０６に送る。これらの処理によって指定された再生速度の即値による特殊再生が可能となる。【００３５】  以上が再生装置の構成要素である。
図５は、図４に示すＤＶＤライクモジュール４１３、Ｊａｖａ（ＴＭ）モジュール４１４のより具体的な構成を示すとともに、早送り、早戻しなどの特殊操作に関連したユーザ操作の処理に関わるブロック図である。まずＤＶＤライクモジュール４１３における再生及び特殊再生制御について述べる。シナリオプログラム５０１はＢＤ−ＲＯＭ上に記録されたＤＶＤライクモード用のＢＤ再生プログラムで、図４に示す動的シナリオメモリ４１２に格納される。動的シナリオメモリ４１２に格納されたシナリオプログラム５０１はＤＶＤライクモジュールに供され、シナリオ制御モジュール５０２がアプリケーションに提供する機能である、シナリオ制御関数を呼び出し、条件に応じてプレイリストの分岐を行う。ユーザのリモコン操作に対する処理は、ディスパッチャ４１７から受け取ったＵＯイベントに応じ、ＵＯ処理モジュール５０３で、早送り、早戻しなどの特殊再生を行う。【００３６】  Ｊａｖａ（ＴＭ）モードの場合はＢＤ−ＲＯＭ上に記録されたＪａｖａ（ＴＭ）アプリケーション５０５が、対応するＢＤタイトル再生の間、メディア再生モジュール５０７がアプリケーションに提供する機能である、ＡＰＩ（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍ  Ｉｎｔｅｒｆａｃｅ）を用いてシナリオ、特殊再生の制御を行う。ユーザのリモコン操作が行われると、アプリケーションマネージャ５０４がディスパッチャ４１７からＵＯイベントを受け取り、現在動作中のＪａｖａ（ＴＭ）アプリケーション５０５に、受け取ったＵＯイベントを渡す。【００３７】  Ｊａｖａ（ＴＭ）アプリケーション５０５は早送りボタン押下などのＵＯイベントに対し、どの再生速度で特殊再生を行うべきか、特殊再生情報モジュール５０６を通じて特殊再生情報を得て再生速度の判断を行う。特殊再生情報からＤＶＤライクモードで用いられている再生速度、端末がサポートしている再生速度を読み取り、それらを元に適切な再生速度をメディア再生モジュール５０７に指定する。これとともにＪａｖａ（ＴＭ）アプリケーションは特殊再生情報モジュール５０６を通じて得られた特殊再生情報を用いて指定した再生速度に応じた速度で動く（または変化する）ようグラフィックスを逐次計算し、レンダリングエンジン４１８へ計算したグラフィックスの描画を指令する。例えば、等倍速によるＡＶデータ再生時において単位時間（例えば０．１秒）ごとに所定量（例えば仮想的に２次元（もしくは３次元）の座標軸を設定し、その設定した座標軸により示される座標を用いてグラフィックスの動きを特定したときの単位時間当たりの座標値の変化量）ずつ変化していくグラフィックスオブジェクトを、５倍速再生とした場合には、単位時間（この例では０．１秒）毎に変化する量を上述の所定量に再生速度を乗じた値（この例では５倍）として計算し、Ｊａｖａ（ＴＭ）アプリケーションはレンダリングエンジン４１８へグラフィックスの描画を指令する。【００３８】  図６は再生装置が保持している再生情報に対応する特殊再生情報の内容を示す図である。特殊再生情報として、端末（つまり再生装置）がサポートしている再生速度一覧とＤＶＤライクモードで使用している再生速度の情報を持っている。また特殊再生操作を行う��リガとなる情報も記載している。特殊再生のトリガとしてはユーザのボタン操作などがあり、その場合、特殊再生に対応するボタンのＩＤと押された回数等を記載する。【００３９】  なお、この表では、順方向倍速、逆方向倍速、順方向スロー再生、逆方向スロー再生を取り上げたが、他の特殊再生、例えば、何秒か先にスキップするスキップ再生などの情報も当然加えることができる。スキップ再生の場合、端末サポートレートの欄が再生速度ではなく秒数となり、端末がサポートする全ての秒数を記載する必要は必ずしもなく、ＤＶＤライクモードで用いている値が書かれてあればよい。本実施例では再生速度が変化する特殊再生を例に取り上げて説明するが、時間をパラメータとした特殊再生（例えば１５秒先にスキップするスキップ再生など）にも置き換えることが可能である。【００４０】  この特殊再生情報を受けとれば、アプリケーションは、その特殊再生情報を用いて、図３（ｂ）に示したようなキャラクター（コンピュータ・グラフィックス）の描画を行う。これによりＡＶ再生ライブラリ４２０が端末固有の再生速度で再生を行ったとしても、かかる再生と同期するようなキャラクター（コンピュータ・グラフィックス）の描画を実現することができる。これは特殊再生時において、ＡＶデータの映像の変化とコンピュータ・グラフィックスにより表示される画像の動きの変化とが同程度に変化することを意味する。図３（ｂ）の例で言えば、特殊再生時（例えば早送り）において、ＡＶデータについては早送りの映像が表示されているのに対し、フクロウのイメージの動きが早送りの画像の動きに見合う動きとなることを意味する。【００４１】  図７はユーザ操作をトリガとして特殊再生を行う処理のフローチャートである。ユーザがリモコンや再生装置のフロントパネルを操作し、早送りボタンなどキー操作を行うと、ＵＯ検知モジュール４１５がユーザのキー操作を検知する（Ｓ７０１）。ＵＯ検知モジュール４１５はユーザのキー操作に対応したイベントをモード管理モジュール４１６に投げ、モード管理モジュール４１６は現在のモードがＪａｖａ（ＴＭ）モードかＤＶＤライクモードかを判断する（Ｓ７０２）。現在のモードがＤＶＤライクモードであれば、モード管理モジュール４１６内のディスパッチャ部４１７が、ＤＶＤライクモジュールのＵＯ処理モジュール５０３にＵＯイベントを投げる（Ｓ７０３）。ＵＯ処理モジュール５０３は受け取ったＵＯイベントに対応する再生制御を行う（Ｓ７０４）。【００４２】  現在のモードがＪａｖａ（ＴＭ）モードの場合、ディスパッチャ４１７はＪａｖａ（ＴＭ）モジュール内のアプリケーションマネージャ５０４にＵＯイベントを投げる（Ｓ７０５）。アプリケーションマネージャ５０４がＵＯイベントを受け取ると、現在Ｊａｖａモジュール４１４内の仮想マシン（図示せず）にて動作中のＪａｖａ（ＴＭ）アプリケーション５０５に対して、受け取ったＵＯイベントを投げる（Ｓ７０６）。Ｊａｖａ（ＴＭ）アプリケーション５０５がＵＯイベントを受け取ると、特殊再生情報取得モジュール５０６を介し、再生端末における特殊再生情報を取得する（Ｓ７０７）。Ｊａｖａ（ＴＭ）アプリケーション５０５は特殊再生情報に基づき、受け取ったＵＯイベントに対応する特殊再生制御を、メディア再生モジュール５０７を介して行う（Ｓ７０８）。例えば、受け取ったＵＯイベントが早送りボタン押下イベントであった場合、Ｊａｖａ（ＴＭ）アプリケーション５０５は何回連続で押されたか、値をカウントしておき、早送りボタンが一回押されたときの再生速度、二回連続押されたときの再生速度を特殊再生情報から判断する。図７のフローチャートではＪａｖａ（ＴＭ）アプリケーション５０５はＵＯイベントを取得した後、特殊再生情報を取得しているが、起動時など予め特殊再生情報を読み込んでおいてもよい。また、一度読み込んだ情報はＪａｖａ（ＴＭ）アプリケーション５０５内で保持しておいてもよい。【００４３】  図８はＪａｖａ（ＴＭ）アプリケーション５０５が特殊再生情報を取得する様子を示す図である。図６で示したように再生端末（つまり再生装置）が保持する特殊再生情報４１９はＤＶＤライクモードで用いられている特殊再生情報と端末がサポートする特殊再生情報を保持している。
特殊再生情報取得モジュール５０６は、アプリケーションからの呼出に応じて、機能を提供するものであり、提供再生端末が保持する特殊再生情報からＤＶＤライクモードで使用している特殊再生、端末がサポートする特殊再生の二種類の情報をアプリケーションに提供するＡＰＩを公開している。【００４４】  公開するＡＰＩの一例として、例えばＪａｖａ（ＴＭ）アプリケーションがＤＶＤライクモードで用いられている早送り速度一覧を参照したい場合、特殊再生情報取得モジュール５０６に対し、ｇｅｔＦａｓｔＦｏｒｗａｒｄＲａｔｅＡｒｒａｙ（）というメソッドを呼び出す。返り値としてＤＶＤライクモードで使用されている早送り速度の配列を特殊再生情報４１９より得ることができる。得られた早送り速度の配列はボタン押下回数に対応しており、一回押されたときの速度は配列の先頭、二回押されたときの速度は配列の二番目に格納されている。【００４５】  同様に端末がサポートしている早送り速度一覧はｇｅｔＡｌｌＦａｓｔＦｏｒｗａｒｄＲａｔｅＡｒｒａｙ（）というメソッドの呼び出しで得ることができる。得られる早送り速度の配列は、例えば値の小さなものから順に格納されている。
図８で紹介したＡＰＩはあくまで一例であり、Ｊａｖａ（ＴＭ）アプリケーションからＤＶＤライクモードの特殊再生情報、端末がサポートする特殊再生情報を得ることができるＡＰＩとしては様々な形態が考えられる。例えば、早送り速度の配列を返すのではなく、早送り速度が押された回数を指定して、それに対応した値を返すＡＰＩなども考えられる。【００４６】  図９は特殊再生操作に対応するキーイベントの種類をＪａｖａ（ＴＭ）アプリケーション５０５が特殊再生情報取得モジュール５０６から取得する様子を示す図である。Ｊａｖａ（ＴＭ）アプリケーション５０５が各特殊操作を行うトリガとなるキーイベントの種類を特殊再生情報取得モジュール５０６に問い合わせると、特殊再生情報取得モジュール５０６は再生端末が保持する特殊再生情報４１９から、ＤＶＤライクモードに対応するキーイベントの種類を返す。例えば、特殊再生情報取得モジュール５０６に対し、ｇｅｔＦａｓｔＦｏｒｗａｒｄＯｐｅｒａｔｉｏｎＥｖｅｎｔ（）というメソッドを呼び出して早送り操作のトリガとなるイベントの種類を問い合わせると、”Ｂｕｔｔｏｎ１ＰｕｓｈｅｄＥｖｅｎｔ”といったイベントの種類が返ってくる。Ｊａｖａ（ＴＭ）アプリケーション５０５はアプリケーションマネージャ５０４からＢｕｔｔｏｎ１ＰｕｓｈｅｄＥｖｅｎｔのインスタンスを受け取ったときに早送りを行えば、ＤＶＤライクモードと互換を持った処理を行うことができる。【００４７】  図１０はＪａｖａ（ＴＭ）アプリケーション５０５が端末依存変数を用いて特殊再生に用いる再生速度を指定する様子を示した図である。端末依存変数とは、変数に対応する値が端末に固有に依存する変数のことである。例えば、ある端末依存変数Ｘが存在するとすると、ある端末ではＸに対して再生速度が５と指定されていれば５に展開されるが、別の端末で、Ｘに対して再生速度が１０と指定されていれば１０に展開されることになる。Ｊａｖａ（ＴＭ）アプリケーション５０５が特殊再生を行う際は、即値で再生速度を指定するのではなく、この端末依存変数を用いて速度指定を行う。例えば、Ｊａｖａ（ＴＭ）アプリケーション５０５がメディア再生モジュール５０７に対しｓｅｔＲａｔｅ（ＦＡＳＴ＿ＦＯＲＷＡＲＤ）というメソッドを呼び出すと、メディア再生モジュール５０７内で端末に応じてＦＡＳＴ＿ＦＯＲＷＡＲＤが即値に展開される。ある再生端末のＤＶＤライクモードでは、早送りボタン操作（例えばボタンの押下回数、または押下時間）に応じて２倍、３０倍、１２０倍と再生速度が変化する場合、
ＬＴＴＬＥ＿ＦＡＳＴ＿ＦＯＲＷＡＲＤ⇒２，
ＦＡＳＴ＿ＦＯＲＷＡＲＤ⇒３０，
ＶＥＲＹ＿ＦＡＳＴ＿ＦＯＲＷＡＲＤ⇒１２０
と展開され、別の再生端末のＤＶＤライクモードでは同様の早送りボタン操作により５倍、１０倍、３０倍と再生速度が変化する場合、
ＬＴＴＬＥ＿ＦＡＳＴ＿ＦＯＲＷＡＲＤ⇒５，
ＦＡＳＴ＿ＦＯＲＷＡＲＤ⇒１０，
ＶＥＲＹ＿ＦＡＳＴ＿ＦＯＲＷＡＲＤ⇒３０
と展開される。【００４８】  つまり、全く同じＪａｖａ（ＴＭ）アプリケーションでも再生端末に応じて再生速度をＤＶＤライクモードに合わせた形で変化させることができる。端末依存変数の展開はメディア再生モジュール５０７が、再生端末が保持する特殊再生情報４１９を直接参照するか、もしくは特殊再生情報取得モジュール５０６を介して端末依存変数の展開を行う。また、展開された再生速度に関する情報はＪａｖａ（ＴＭ）アプリケーション５０５に引き渡され、これを受けＪａｖａ（ＴＭ）アプリケーション５０５は指定した再生速度に応じた速度で動く（または変化する）ようグラフィックスを逐次計算し、レンダリングエンジン４１８へ計算したグラフィックスの描画を指令する。【００４９】  図１１はＪａｖａ（ＴＭ）アプリケーションの特殊再生要求に対する処理のフローチャートである。メディア再生モジュール５０７がＪａｖａ（ＴＭ）アプリケーションから特殊再生要求を受けると（Ｓ１１０１）、Ｊａｖａ（ＴＭ）アプリケーションが指定した再生速度が即値であるか、端末依存変数を用いたものであるかを判断する（Ｓ１１０２）。即値であれば、その値を用いて特殊再生処理を行う（Ｓ１１０５）。即値ではなく、端末依存変数による指定の場合、再生端末が保持する特殊再生情報４１９を参照し（Ｓ１１０３）、参照した特殊再生情報４１９をもとに、端末依存変数を即値に展開する（Ｓ１１０４）。そして、ＡＶ再生ライブラリ４２０にＳ１１０４で展開した即値を引数にして特殊再生の関数呼び出しを行い、特殊再生を実行する（Ｓ１１０５）。【００５０】  以上のように本実施形態によれば、Ｊａｖａ（ＴＭ）アプリケーションからＤＶＤライクモードで用いられている特殊再生の情報を得ることができるので、Ｊａｖａ（ＴＭ）モードにおいてもＤＶＤライクモードと同様な特殊再生操作を実現することができる。また、再生装置がサポートする特殊再生情報も得ることができるので、再生装置がサポートしていない再生速度をＪａｖａ（ＴＭ）アプリケーション（より具体的にはＪａｖａモジュール４１４により実行されているＪａｖａ（ＴＭ）アプリケーション）が要求し予期せぬ不具合が起こるといったことを未然に防ぐ。これはＪａｖａ（ＴＭ）アプリケーションが再生装置の性能に見合う速度での特殊再生の実行を要求できることを意味する。さらにＪａｖａ（ＴＭ）アプリケーションが特殊再生を行う際に端末依存変数を用いて再生速度を指定することで、再生装置に応じた変更をＪａｖａ（ＴＭ）アプリケーションに加えることなく、再生装置の性能に応じてＤＶＤライクモードと互換を持った特殊再生を実現することができる。これはデジタルストリームの特殊再生時において、その再生速度に見合ったＪａｖａ（ＴＭ）アプリケーションによるイメージの描画を行うことができることを意味する。【００５１】  （実施の形態２）
実施の形態１は、ＤＶＤライクモードとＪａｖａ（ＴＭ）モードにおける特殊再生の互換性保持について述べた。これに対し、実施の形態２では、Ｊａｖａ（ＴＭ）モード内のアプリケーション間における特殊再生の互換を保持したまま特殊再生操作を変更する方法について述べる。【００５２】  図１２は実施の形態２に係るＪａｖａ（ＴＭ）モジュールの構成を示す図である。Ｊａｖａ（ＴＭ）モジュール内に再生情報に対応するアプリ共通特殊再生情報６０４を保持しており、Ｊａｖａアプリケーション６０１は特殊再生情報取得・変更モジュール６０３を用いて、アプリ共通特殊再生情報６０４を読み書きすることができる。メディア再生モジュール６０２はＪａｖａ（ＴＭ）アプリケーション６０１からの要求に応じて、メディア再生の制御を行う。その際、アプリ共通特殊再生情報６０４を直接、もしくは特殊再生情報取得・変更モジュール６０３を介して読み取り、アプリ共通特殊再生情報６０４に応じた再生制御を行う。つまり、アプリ共通特殊再生情報６０４の書き込み権限を持った、あるＪａｖａ（ＴＭ）アプリケーションが、アプリ共通特殊再生情報の内容を書き換えると、メディア再生モジュール６０２を介して再生制御を行う全Ｊａｖａ（ＴＭ）アプリケーションが影響を受ける。図１３はアプリ共通特殊再生情報の具体的な内容の一例を示す図である。アプリ共通特殊再生情報は変数名一覧と、その変数に対応する再生速度の値で構成されている。このアプリ共通特殊再生情報はＪａｖａ（ＴＭ）モジュール内に保持され、アプリから共通にアクセスすることができる。メディア再生モジュール６０２はこの情報を元に、Ｊａｖａ（ＴＭ）アプリケーションが指定した再生速度変数を展開する。【００５３】  例えばＪａｖａ（ＴＭ）アプリケーションからｓｅｔＲａｔｅ（ＦＡＳＴ＿ＦＯＲＷＡＲＤ）というメソッド呼び出しがメディア再生モジュール６０２に対して行われると、アプリ共通特殊再生情報の値を元に変数を展開し、ｓｅｔＲａｔｅ（３０．０）という呼び出しに置き換える。これとともに展開された再生速度の値（この例では３０．０）を実行中のＪａｖａ（ＴＭ）アプリケーションへ引き渡し、これを受けたアプリケーションは受けた再生速度に応じた速度で動く（または変化する）ようグラフィックスを逐次計算し、レンダリングエンジン４１８へ計算したグラフィックスの描画を指令する。【００５４】  図１４はアプリ共通特殊再生情報の変更がＪａｖａ（ＴＭ）アプリケーションに与える影響を示す図である。現在のアプリ共通特殊再生情報でのＶＥＲＹ＿ＦＡＳＴ＿ＦＯＲＷＡＲＤ変数の対応値が１２０であった場合、Ｊａｖａアプリケーション１４０１がメディア再生モジュール６０１に対し、ｓｅｔＲａｔｅ（ＶＥＲＹ＿ＦＡＳＴ＿ＦＯＲＷＡＲＤ）というメソッドを呼び出すと、ＳｅｔＲａｔｅ（１２０）として展開されて、ＡＶ再生ライブラリに再生速度として１２０という即値を指定して早送り関数を呼び出す。その後、アプリ共通特殊再生情報への書き込み権限を持った別のＪａｖａ（ＴＭ）アプリケーション１４０２が、ユーザからの特殊再生操作の変更要求等を受け、特殊再生情報取得・変更モジュールを介してＶＥＲＹ＿ＦＡＳＴ＿ＦＯＲＷＡＲＤが示す値を６０に変更したとする。その場合、Ｊａｖａ（ＴＭ）アプリケーション１４０１が再び同じｓｅｔＲａｔｅ（ＶＥＲＹ＿ＦＡＳＴ＿ＦＯＲＷＡＲＤ）というメソッドを呼び出したとしても、展開される値はｓｅｔＲａｔｅ（６０）となり、ＡＶ再生ライブラリ４２０には再生速度として６０という即値を指定して早送り関数を呼び出すことになるため、全く同じメソッド呼び出しにも関わらず、特殊再生の速度が変化することになる。つまり、アプリ共通特殊再生情報の変更は全Ｊａｖａ（ＴＭ）アプリケーションに適用されるため、Ｊａｖａ（ＴＭ）モードの特殊再生操作の変更は、未知のＪａｖａ（ＴＭ）アプリケーションを含め、一貫して特殊再生操作の変更を行うことができる。【００５５】  （実施の形態３）
実施の形態２ではＪａｖａ（ＴＭ）モードにおける全Ｊａｖａ（ＴＭ）アプリケーションに一貫した特殊再生操作の変更について述べた。これに対し、実施の形態３では、ＤＶＤライクモードとＪａｖａ（ＴＭ）モードの２つのモードを通じて一貫した特殊再生操作の変更について述べる。【００５６】  図１５は実施の形態３に係る特殊操作に関連したユーザ操作の処理に関わるブロック図である。図１５ではＤＶＤライクモジュール、Ｊａｖａ（ＴＭ）モジュールから共通してアクセスできる再生装置内の位置に両モード共通特殊再生情報１５０２を保持している。ＤＶＤライクモジュールのＵＯモジュール１５０１は両モード共通特殊再生情報１５０２を参照して再生制御を行う。この場合、ＵＯモジュール内のコードもＪａｖａ（ＴＭ）アプリケーション１５０５と同様、ｓｅｔＲａｔｅ（ＦＡＳＴ＿ＦＯＲＷＡＲＤ）というように端末依存変数を用いた形で再生制御を行う。Ｊａｖａ（ＴＭ）アプリケーションからの再生制御は実施の形態２と同様であり、ここでの説明は省略する。【００５７】  両モード共通特殊再生情報１５０２に記載する内容は図１３のアプリ共通特殊再生情報と同じであり、書き込み権限を持ったＪａｖａ（ＴＭ）アプリケーション１５０５から特殊再生情報取得・変更モジュール１５０４を介して書き換えることが可能である。両モード共通特殊再生情報１５０２の変更は、ＵＯ処理モジュール１５０１、メディア再生モジュール１５０３共に影響を受け、ＡＶ再生ライブラリの特殊再生関数呼び出しの際に渡される引数の値に反映される。【００５８】  以上のように本実施例によれば、Ｊａｖａ（ＴＭ）アプリケーションによる特殊再生操作の変更はＪａｖａ（ＴＭ）モードにおけるＪａｖａ（ＴＭ）アプリケーション間のみならず、ＤＶＤライクモードにも変更を適用することができる。
（実施の形態４）
実施の形態１〜３では再生端末が保持する特殊再生情報を参照することで特殊再生操作の互換性保持を行うことについて述べた。これに対し、実施の形態４では特殊再生情報を参照することなく、Ｊａｖａ（ＴＭ）モード、ＤＶＤライクモードの特殊再生の互換を保持する方法について述べる。図１６は実施の形態４に係る特殊操作に関連したユーザ操作の処理に関わるブロック図である。本図において新規なのは、Ｊａｖａ（ＴＭ）モジュールにディスパッチャモジュール１６０１が追加されている点である。ディスパッチャモジュール１６０１はＪａｖａ（ＴＭ）アプリケーション５０５の要求に応じ、Ｊａｖａ（ＴＭ）モジュールからＤＶＤライクモジュールに対してＵＯイベントを送信する。送信するＵＯイベントの型はモード管理モジュール４１６から送られるものと同じものが送られる。ＵＯ処理モジュール５０３はモード管理モジュール４１６から送られたＵＯイベントか、ディスパッチャモジュール１６０１から送られたＵＯイベントか区別する必要はなく、モード管理モジュール４１６から送られたＵＯイベントと同じものとして、ディスパッチャモジュール１６０１から送られたＵＯイベントを処理することができる。【００５９】  図１７はＪａｖａ（ＴＭ）モジュールからＤＶＤライクモジュールに対しＵＯイベントを送信する様子を示した図である。Ｊａｖａ（ＴＭ）アプリケーション５０５はディスパッチャモジュール１６０１に対し、ＤＶＤライクモジュールへ送りたいＵＯイベントの種類を指定する。例えばディスパッチャモジュール１６０１に対し、ｐｏｓｔＥｖｅｎｔＴｏＤＶＤＬｉｋｅＭｏｄｕｌｅ（“ＦａｓｔＦｏｒｗａｒｄＢｕｔｔｏｎＰｕｓｈｅｄＥｖｅｎｔ”）というメソッドを呼び出して、早送りボタンが押されたときのイベント配信要求を行なったとする。ディスパッチャモジュール１６０１は指定された種類のイベントを生成し、ＤＶＤライクモジュールのＵＯ処理モジュールに対してイベントを送信する。イベントを受け取ったＵＯ処理モジュールは、モード管理モジュールから送信されたものと同様に、ＤＶＤライクモードで用いている再生速度でＡＶ再生ライブラリの関数を呼び出し、特殊再生制御を行う。以上のように本実施例によれば、ＤＶＤライクモードのモジュールは特に改変する必要なく、Ｊａｖａ（ＴＭ）モードにおいてもＤＶＤライクモードと等価な再生制御を行うことができる。【００６０】  （実施の形態５）
実施の形態５は実施の形態１〜４を複合した特殊再生互換保持について述べる。
図１８は実施の形態５に係る特殊操作に関連したユーザ操作の処理に関わるブロック図である。図１８では、両モード共通特殊再生情報１５０２とアプリ共通特殊再生情報６０４の２種類の特殊再生情報を保持している。Ｊａｖａ（ＴＭ）アプリケーション５０５は特殊再生情報取得・変更モジュール１５０４を用いて、特殊再生情報を読み書きすることができ、特殊再生操作の変更をＪａｖａ（ＴＭ）モードだけに適用したいのであれば、アプリ共通特殊再生情報６０４を書き換え、両モードを通じて特殊再生操作の変更を行いたいのであれば、両モード共通特殊再生情報１５０２を書き換える。【００６１】  ＦＡＳＴ＿ＦＯＲＷＡＲＤなどの端末依存変数は両モード共通特殊再生とＪａｖａ（ＴＭ）モード共通特殊再生の場合で変数名、またはパッケージが異なる。例えば、ＦＡＳＴ＿ＦＯＲＷＡＲＤは両モード共通特殊再生に用いられ、Ｊ＿ＦＡＳＴ＿ＦＯＲＷＡＲＤはＪａｖａ（ＴＭ）モード共通の特殊再生に用いる。Ｊａｖａ（ＴＭ）アプリケーションは指定する端末依存変数を変えることで、両モードに共通した特殊再生操作を行うか、Ｊａｖａ（ＴＭ）モード内に共通した特殊再生操作を行うか、選択することができる。特殊再生操作をＤＶＤライクモードのモジュールに任せたい場合は、ディスパッチャモジュール１６０１を用いてＵＯイベントをＤＶＤライクモジュール内のＵＯ処理モジュール１５０１に送ることで、ＵＯ処理モジュール１５０１は両モード共通特殊再生情報の再生速度の値を用いてＡＶ再生ライブラリを呼び出して特殊再生を行う。【００６２】  以上のように本実施例によれば、Ｊａｖａ（ＴＭ）アプリケーションは、Ｊａｖａ（ＴＭ）モード内での共通の特殊再生操作を行うか、ＤＶＤライクモード、Ｊａｖａ（ＴＭ）モードの両モードに共通の特殊再生操作を行うか選択することができ、両モードに一貫した特殊再生操作の変更、もしくはＪａｖａ（ＴＭ）モード内で一貫した特殊再生操作の変更を行うことができる。
【産業上の利用可能性】
【００６３】  本発明によれば、複数の再生モードを持つ再生機器においても、特殊再生操作の互換性が保持されるため、特に、映像コンテンツの制作に携わる映画産業・民生機器産業において利用される可能性をもつ。
【図１】
2005119675.tif 000002
【図２】
2005119675.tif 000003
【図３】
2005119675.tif 000004
【図４】
2005119675.tif 000005
【図５】
2005119675.tif 000006
【図６】
2005119675.tif 000007
【図７】
2005119675.tif 000008
【図８】
2005119675.tif 000009
【図９】
2005119675.tif 000010
【図１０】
2005119675.tif 000011
【図１１】
2005119675.tif 000012
【図１２】
2005119675.tif 000013
【図１３】
2005119675.tif 000014
【図１４】
2005119675.tif 000015
【図１５】
2005119675.tif 000016
【図１６】
2005119675.tif 000017
【図１７】
2005119675.tif 000018
【図１８】
2005119675.tif 000019
【手続補正書】
【提出日】平成18年11月24日(2006.11.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
アプリケーションとデジタルストリームとを連動して再生する再生装置であって、
記録媒体に記録されたデジタルストリームを再生する再生手段と、
前記記録媒体に記録されたアプリケーションを実行して、実行結果に基づく再生を行うよう、前記再生手段を制御するプラットフォーム部とを備え、
前記再生手段は、
前記再生制御を行うための自機固有の実パラメータを複数有しており、
前記プラットフォーム部は、
前記記録媒体に記録された前記アプリケーションを解釈し、実行する実行部と、
前記アプリケーションに提供すべき機能を具備しており、当該機能を用いた再生制御を実行して、前記自機固有の実パラメータに基づく再生動作を、前記再生手段に行わせるモジュール部と
を有することを特徴とする再生装置。
【請求項２】
前記アプリケーションに提供すべき機能とは、
複数のユーザイベントと、各ユーザイベントに対応する前記自機固有の実パラメータとの対応関係を示す特殊再生情報を、前記実行中のアプリケーションからの呼出に応じて、前記実行中のアプリケーションに引き渡す機能であり、
前記モジュール部は
前記実行中のアプリケーションにより、前記特殊再生情報を用いた呼び出しがなされた際、前記自機固有の実パラメータに基づく再生動作を、前記再生手段に実行させることを特徴とする請求項１記載の再生装置。
【請求項３】
前記ユーザイベントは、ユーザにより押下されたボタンの種別を示し、
前記実パラメータは、再生速度の倍率を示す、ことを特徴とする請求項２記載の再生装置。
【請求項４】
前記ユーザイベントは更に、前記ボタンの押下回数を含み、
前記特殊再生情報は、
多い押下回数を含むユーザイベントを、高い再生速度の倍率に対応付けて示す、ことを特徴とする請求項３記載の再生装置。
【請求項５】
前記アプリケーションに提供すべき機能とは、
前記実行中のアプリケーションから再生の速度に応じた変数を受け取り、
前記自機固有の複数の実パラメータのうち、前記再生の速度に応じたものに、前記受け取った変数を展開する機能であり、
前記モジュール部は、展開された実パラメータを用いた再生動作を、前記再生手段に実行させる、ことを特徴とする請求項１記載の再生装置。
【請求項６】
前記アプリケーションに提供すべき機能とは、
前記複数の実パラメータを一覧した配列データを、前記実行中のアプリケーションからの要求に応じて、前記実行中のアプリケーションに引き渡す機能である
ことを特徴とする請求項１記載の再生装置。
【請求項７】
前記実行部は前記記録媒体に記録されたアプリケーションを解釈し、実行することにより、グラフィックスの描画を制御することを特徴とする請求項１記載の再生装置。
【請求項８】
前記アプリケーションに提供すべき機能とは、
複数のユーザイベントと、各ユーザイベントに対応する前記自機固有の実パラメータとの対応関係を示す特殊再生情報を、前記実行中のアプリケーションからの呼び出し応じて、前記実行中のアプリケーションに引き渡す機能であり、
前記モジュール部は前記実行中のアプリケーションからの前記特殊再生情報を用いた呼び出しに応じた再生制御を行い、
前記実行中のアプリケーションは、
前記機能により得られた特殊再生情報に基づき前記グラフィックスの描画の制御を実行することを特徴とする請求項７記載の再生装置。
【請求項９】
前記アプリケーションに提供すべき機能とは、
前記実行中のアプリケーションから再生の速度に応じた変数を受け取り、
前記受け取った変数を前記自機固有の複数の実パラメータの中から前記再生の速度に応じた実パラメータへ展開し、展開した実パラメータを前記実行中のアプリケーションへ引き渡す機能であり、
前記モジュール部は、前記展開された実パラメータを用いた再生の制御を実行し、
前記実行中のアプリケーションは前記展開された実パラメータに基づきグラフィックスの描画の制御を実行する請求項７記載の再生装置。
【請求項１０】
アプリケーションとデジタルストリームとの連動した再生をコンピュータに実行させるプログラムであって、
記録媒体に記録されたデジタルストリームを再生する再生プログラムと、
記録媒体に記録されたアプリケーションを解釈し、実行することにより、前記再生手段に対する再生の制御を行うプラットフォームプログラムとを備え、
前記再生プログラムは、
前記再生制御を行うための自機固有の実パラメータを複数有しており、
前記プラットフォームプログラムは、
アプリケーションに提供すべき機能を具備しており、当該機能を用いた再生制御を実行して、前記自機固有の実パラメータに基づく再生動作を、再生プログラムに行わせる、ことを特徴とするプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記録媒体に対する、読み出し制御の技術分野に属する発明である。
【背景技術】
【０００２】
読み出し制御技術とは、BD-ROM等の記録媒体に記録されたデジタルストリームを、4倍、8倍等、所望の速度で読み出して、デコーダに供給する技術である。
かかる制御を実現するプログラムは、組込プログラムとして、再生装置に内蔵されることが一般的である。だが近い将来、かかる制御プログラムは、BD-ROMに記録され、BD-ROMから再生装置に供給されるという形態で、広く普及するとも考えられている。これは、アプリケーションと、ビデオストリームとを連動させた映画作品を制作するためである。以降、この映画作品制作について説明する。
【０００３】
この映画作品を制作するにあたって、動画データを記録した記録媒体に、その動画データを利用したアプリケーションが記録しておく。そしてこのアプリケーションは、再生装置により起動された際、動画を再生させながら、画面の傍らで、キャラクターを動作させるという動作を行う。かかるアプリケーションを制作して、ゲームやクイズに応用すれば、映画作品の付加価値は飛躍的に高まる。
【０００４】
そのような対話制御を行うにあたって、BD-ROM上の制御プログラムが、動画像の再生速度を調整すれば、動画の再生と共にキャラクターの動きを早めたり、遅くしたりすることができる。このような制御プログラムをBD-ROMに記録して再生装置に供給すれば、動画と密に連動した対話型アプリケーションを、世に送り出すことができ、映画作品の付加価値を一層高めることができる。尚、再生速度の調整に関しては、以下の特許文献１に示される先行技術がある。
【特許文献１】特開２００３−７０３５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ところで再生装置を制作するメーカーが、かかる制御プログラムを制作しようとした場合、再生装置側のドライブ性能を無視したような、再生制御を規定することはまず考えられない。メーカーの技術者は、再生装置のドライブ性能を完全に把握した上で、制御プログラムを制作しようとするからである。
しかしメーカー以外の第３者、つまり映画作品の制作者のような者が、制御プログラムを制作しようとすると、再生装置側のドライブ性能を全く把握していないような、再生制御を規定してしまうことがあり得る。
【０００６】
つまり、民生機器の流通市場には、ドライブ性能が異なる様々な再生装置が流通している。その中で、高い価格帯で販売されるような再生装置は、高性能なドライブ装置が内蔵されるだろうし、低い価格帯で販売されるような再生装置は、低性能なドライブ装置が内蔵されると考えられる。映画の制作者のような第３者が制御プログラムを制作した場合、制作された制御プログラムは、かかる性能差を全く考慮せず、読み出し制御を再生装置に命じようとする。そうとすると、当然のことながら、誤動作やおかしな動きを行う等、不具合が多発する結果になる。
【０００７】
ここで再生装置側に近似機能が存在すれば、かかる不具合をなくすことができるように思える。近似機能とは、自機のドライブ性能以上の速度での読み出しが制御プログラムから命じられた場合、その要求された速度を自機がサポートし得る速度に置き換えた上で、ドライブ装置に対する制御を命じる機能である。仮にアプリケーションが、4倍、8倍、16倍、32倍という速度での再生を再生装置側に要求したとする。他方、再生装置でサポート可能な速度が2倍、4倍であると、8倍以上の速度が全て、4倍速に近似されることになる。しかし動画と密に連動するようなキャラクターの描画を、アプリケーションが実行している場合、アプリケーションは4倍、8倍、16倍での再生がなされものと信じて、高速にキャラクターが動く（または変化する）ように描画しているのに、ドライブ装置側は、これらのアプリケーションによる指定に拘らず、近似された同じ再生速度（上述の例では4倍）で、動画を再生することになる。かかる食い違いがあると、アプリケーションによるキャラクターの動きが、再生装置側にて再生される動画の動きより異様に早くなり、これらを重ね合わせ、表示したものは全体として違和感があるものとなる。このような不整合、つまりアプリケーションによる描画による動きと、動画像の動きとの不整合は、映画作品のプロバイダにとっても、再生装置のメーカーにとっても望ましいことではない。
【０００８】
本発明の目的は、記録媒体に記録されたアプリケーションを実行し、実行したアプリケーションによりデジタルストリームの再生を制御する場合、記録媒体を再生する再生装置の性能に見合ったデジタルストリームの再生の制御を行える再生装置を提供することである。
更には、個々の再生装置のドライブ性能の違いに拘らず、動画再生と、アプリケーション側の描画との同期を維持することができる、再生装置を提供することである。
【課題を解決するための手段】
【０００９】
上記目的を達成するため、本発明に係る再生装置は、記録媒体に記録されたデジタルストリームを再生する再生手段と、前記記録媒体に記録されたアプリケーションを実行して、実行結果に基づく再生を行うよう、前記再生手段を制御するプラットフォーム部とを備え、前記再生手段は、前記再生制御を行うための自機固有の実パラメータを複数有しており、前記プラットフォーム部は、前記記録媒体に記録された前記アプリケーションを解釈し、実行する実行部と、前記アプリケーションに提供すべき機能を具備しており、当該機能を用いた再生制御を実行して、前記自機固有の実パラメータに基づく再生動作を、前記再生手段に行わせるモジュール部とを有することを特徴としている。
【発明の効果】
【００１０】
アプリケーションは、機能呼出を行うことにより、実パラメータを用いた機能をプラットフォーム部（更に詳しくはモジュール部）に実行させることができる。プラットフォーム部により実行される機能は、機器固有の実パラメータに基づくから、ドライブ性能が低い再生装置では、低い速度倍率での再生制御がなされることになり、ドライブ性能が高い再生装置では、高い速度倍率での再生制御がなされることになる。
【００１１】
かかる機能を用いて特殊再生を実現すれば、再生装置においてサポートされていない再生速度で再生を行うような、ミスコントロールは生じ得ない。
故に、たとえ市場において流通している再生装置のドライブ性能にバラツキがあり、再生装置側で近似機能が働いたとしても、アプリケーションは、再生装置側のドライブ性能に応じた再生制御を実現することができる。
【００１２】
一方、モジュール部から提供される機能が、実パラメータをアプリケーションに引き渡すものなら、アプリケーションは、再生装置側でサポートされている倍率を知り得ることができるので、そうやって知り得た倍率を基に、キャラクターの描画の制御を行えば、再生装置側のドライブ性能にバラツキがあったとしても、アプリケーションによるキャラクターの描画による動きと、再生装置による動画再生とが大きく食い違い、これらを重ね合わせ、表示したものが全体として違和感を生じるといったことがなくなる。かかる食い違いの解消により、アプリケーションによるキャラクターの描画による動きと、再生装置によるデジタルストリームの再生とが、密接に連動した、対話制御を実現することができる。
【発明を実施するための最良の形態】
【００１３】
以下本発明の実施の形態について、図面を参照しながら説明する。
（実施の形態１）
図１は、BD-ROM（以降、「BD」と称する場合もある）の構成を示した図である。BDディスクは、他の光ディスク、例えばDVDやCDなどと同様にその内周から外周に向けてらせん状に記録領域を持ち、内周のリード・インと外周のリード・アウトの間に論理データを記録できる論理アドレス空間を有している。また、リード・インの内側にはBCA（Burst  Cutting  Area）と呼ばれるドライブでしか読み出せない特別な領域がある。この領域はアプリケーションから読み出せないため、例えば著作権保護技術などに利用されることがよくある。
【００１４】
論理アドレス空間には、ファイルシステム情報（ボリューム）を先頭に映像データなどのアプリケーションデータが記録されている。ファイルシステムとは、UDFやISO９６６０などのことであり、通常のPCと同じように記録されている論理データをディレクトリ、ファイル構造を使って読み出しする事が可能になっている。
本実施の形態の場合、BDディスク上のディレクトリ、ファイル構造は、ルートディレクトリ（ROOT）直下にBDVIDEOディレクトリが置かれている。このディレクトリはBD-ROMで扱うAVコンテンツや管理情報などのデータが記録されているディレクトリである。
【００１５】
BDVIDEOディレクトリの下には、次の７種類のファイルが記録されている。
BD.INFO（ファイル名固定）
「BD管理情報」の一つであり、BDディスク全体に関する情報を記録したファイルである。BDプレーヤは最初にこのファイルを読み出す。
BD.PROG（ファイル名固定）
「BD再生プログラム」の一つであり、BDディスク全体に関わるプログラムを記録したファイルである。
【００１６】
XXX.PL（「XXX」は可変、拡張子「PL」は固定）
「BD管理情報」の一つであり、シナリオを記録するプレイリスト（Play  List）情報を記録したファイルである。プレイリスト毎に１つのファイルを持っている。
XXX.PROG（「XXX」は可変、拡張子「PROG」は固定）
「BD再生プログラム」の一つであり、前述したプレイリスト毎のプログラムを記録したファイルである。プレイリストとの対応はファイルボディ名（「XXX」が一致する）によって識別される。
【００１７】
YYY.VOB（「YYY」は可変、拡張子「VOB」は固定）
「AVデータ」の一つであり、AVデータであるMPEGストリームが記録されたファイルである。VOB毎に１つのファイルを持っている。
YYY.VOBI（「YYY」は可変、拡張子「VOBI」は固定）
「BD管理情報」の一つであり、AVデータであるVOBに関わる管理情報を記録したファイルである。VOBとの対応はファイルボディ名（「YYY」が一致する）によって識別される。
【００１８】
ZZZ.PNG（「ZZZ」は可変、拡張子「PNG」は固定）
「AVデータ」の一つであり、字幕及びメニューを構成するためのイメージデータPNG（W３Cによって標準化された画像フォーマットであり「ピング」と読む）を記録したファイルである。１つのPNGイメージ毎に１つのファイルを持つ。
図２は再生制御のレイヤモデルを示した図である。図２の第１層は、物理層であり、処理対象たるストリーム本体の供給制御である。この第１層に示すように、処理対象たるストリームは、BD-ROMだけではなく、HD、メモリカード、ネットワークといったあらゆる記録媒体、通信媒体を供給源としている。これらHD、メモリカード、ネットワークといった供給源に対する制御（ディスクアクセス、カードアクセス、ネットワーク通信）が第１層の制御である。
【００１９】
第２層は、デジタルストリームを構成するAVデータ（またはＡＶストリーム）のレイアである。第１層で供給されたデジタルストリーム（以下ストリームと称す）を、どのような復号化方式を用いて復号するのかを規定しているのがこの第２層である。
第３層（BD管理データ）は、ストリームの静的なシナリオを規定するレイアである。静的なシナリオとは、ディスク制作者によって予め規定された再生経路情報、ストリーム管理情報であり、これらに基づく再生制御を規定しているのがこの第３層である。
【００２０】
第４層（BD再生プログラム）は、ストリームにおける動的なシナリオを実現するレイヤである。動的なシナリオは、AVストリームの再生手順、及び、その再生に関する制御手順のうち少なくとも一方を実行するプログラムである。動的なシナリオによる再生制御は、装置に対するユーザ操作に応じて変化するものであり、プログラム的な性質をもつ。ここでの動的な再生制御には、２つのモードがある。２つのモードのうち１つは、AV機器特有の再生環境で、BD-ROMに記録された動画データを再生するモード（DVDライクモード）であり、もう１つはBD-ROMに記録された動画データの付加価値を高めるモード（Java（登録商標）モード）である。図２において第４層には、DVDライクモードとJava（登録商標）モードの２つのモードが記述されている。DVDライクモードは、DVDライクな再生環境での再生モードであり、再生進行を動的に変化させるためのシナリオが記述されたシナリオプログラムが動作する。もう一つのJava（登録商標）モードは、Java（登録商標）仮想マシンを主体とした再生モードであり、記録媒体（本実施の形態ではBD-ROMを例に説明する）に記録されJava（登録商標）アプリケーションであって、Java（登録商標）仮想マシンにより解釈実行されるJava（登録商標）アプリケーションから再生制御を行う。
【００２１】
図３は、２つのモードの動的な再生制御にて作成される映画作品を示す図である。図３（a）は、DVDライクモードで動的な再生制御を定義することにより、作成される映画作品の一場面を示す図である。DVDライクモードはDVD再生装置が解釈可能なコマンドと良く似たコマンドで再生制御を記述することができるので、DVDと同じような再生制御、つまり、メニューに対する選択により再生が進行するような再生制御を定義することができる。図３（b）は、Java（登録商標）モードで動的な再生制御を定義することにより、作成される映画作品である。Java（登録商標）モードはJava（登録商標）仮想マシンが解釈可能なJava（登録商標）言語で制御手順を記述したJava（登録商標）プログラムを用いて実現することができる。このJava（登録商標）プログラムを用いた再生制御がコンピュータ・グラフィックス（CG）の動作を制御するものなら、Java（登録商標）モードにあっては、動画を表示した画面の横でCG（図中のフクロウの絵）が動きまわっているような再生制御を定義することができる。
【００２２】
図４は、再生装置の大まかな機能構成を示すブロック図である。図４に示すように、再生装置は、BD-ROMドライブ４０１、トラックバッファ４０２、デマルチプレクサ４０３、ビデオデコーダ４０４、ビデオプレーン４０５、オーディオデコーダ４０６、イメージメモリ４０７、イメージプレーン４０８、イメージデコーダ４０９、加算器４１０、静的シナリオメモリ４１１、動的シナリオメモリ４１２、DVDライクモジュール４１３、Java（登録商標）モジュール４１４、UO検知モジュール４１５、モード管理モジュール４１６、ディスパッチャ４１７、レンダリングエンジン４１８、特殊再生情報４１９、AV再生ライブラリ４２０を備える。
【００２３】
BD-ROMドライブ４０１は、BD-ROMのローディング/イジェクトを行い、BD-ROMに対するアクセスを実行する。
トラックバッファ４０２は、FIFOメモリであり、BD-ROMから読み出されたACCESS  UNITが先入れ先出し式に格納される。
デマルチプレクサ４０３は、トラックバッファ４０２からACCESS  UNITを取り出して多重分離を行い、GOPを構成するビデオフレームと、オーディオフレームとを得てビデオフレームをビデオデコーダ４０４に出力し、オーディオフレームをオーディオデコーダ４０６に出力する。副映像ストリームはイメージメモリ４０７に格納し、Navigation  Button情報は動的シナリオメモリ４１２に格納する。デマルチプレクサ４０３による多重分離は、TSパケットをPESパケットに変換するという変換処理を含む。
【００２４】
ビデオデコーダ４０４は、デマルチプレクサ４０３から出力されたビデオフレームを復号して非圧縮形式のピクチャをビデオプレーン４０５に書き込む。
ビデオプレーン４０５は、非圧縮形式のピクチャを格納しておくためのメモリである。
オーディオデコーダ４０６は、デマルチプレクサ４０３から出力されたオーディオフレームを復号して、非圧縮形式のオーディオデータを出力する。
【００２５】
イメージメモリ４０７は、BD-ROMから読み出された副映像ストリーム、Navigation  Button情報内のPNGデータ、画像ファイルを格納しておくバッファである。
イメージプレーン４０８は、一画面分の領域をもったメモリであり、展開された副映像ストリーム、PNGデータ、画像ファイルが配置される。
イメージデコーダ４０９は、イメージメモリ７に格納された副映像ストリーム、PNGデータ、画像ファイルを展開してイメージプレーン４０８に書き込む。副映像ストリームのデコードにより、各種メニュー、副映像が画面上に現れることになる。
【００２６】
加算器４１０は、ピクチャプレーン４０５に格納された非圧縮形式のピクチャデータに、イメージプレーン４０８に展開されたイメージを合成して出力する。図３（b）に示した画面（動画を表示した画面の横でCG（図中のフクロウの絵）が動きまわっているような画面）は、この加算器４１０が、イメージプレーン４０８内のイメージと、ビデオプレーン４０５内のピクチャとを合成することで出力される。
【００２７】
静的シナリオメモリ４１１は、カレントのPLやカレントのストリーム管理情報を格納しておくためのメモリである。カレントのPLとは、BD-ROMに記録されている複数のPLのうち、現在処理対象になっているものをいう。カレントストリーム管理情報とは、BD-ROMに記録されている複数ストリーム管理情報のうち、現在処理対象になっているものをいう。
動的シナリオメモリ４１２は、カレント動的シナリオを格納しておき、DVDライクモジュール４１３、Java（登録商標）モジュール４１４による処理に供されるメモリである。カレント動的シナリオとは、BD-ROMに記録されている複数のシナリオを有するシナリオプログラムにおいて、現在実行対象になっているシナリオをいう。
【００２８】
DVDライクモジュール４１３は、DVDライクモードの実行主体となるDVD仮想プレーヤであり、動的シナリオメモリ４１２に読み出されたカレントのシナリオプログラムを実行する。
Java（登録商標）モジュール４１４は、Java（登録商標）プラットフォームであり、Java（登録商標）アプリケーションを解釈し実行するJava（登録商標）仮想マシン、コンフィグレーション、プロファイルを備える（図示せず）。Java（登録商標）モジュール４１４は、プログラム記録メモリ１に読み出されたJava（登録商標）アプリケーションを構成するJava（登録商標）クラスファイルからカレントのJava（登録商標）オブジェクトを生成し、実行する。Java（登録商標）仮想マシンは、Java（登録商標）言語で記述されたJava（登録商標）オブジェクトを、再生装置におけるCPUのネィティブコードに変換して、CPUに実行させる。
【００２９】
UO検知モジュール４１５は、リモコンや再生装置のフロントパネルに対してなされた入力手段を介したユーザ操作を検出して、ユーザ操作を示す情報（以降UO（User  Operation）という）をモード管理モジュール４１６に出力する。
モード管理モジュール４１６は、BD-ROMから読み出されたモード管理テーブルを保持して、モード管理及び分岐制御を行う。モード管理モジュール４１６によるモード管理とは、動的シナリオをDVDライクモジュール４１３、Java（登録商標）モジュール４１４のいずれに実行させるかという、モジュールの割り当てである。
【００３０】
ディスパッチャ４１７は、UOから、現在の再生装置におけるモードに適切なUOのみを選んで、そのモードを実行するモジュールに受け渡す。例えばDVDライクモードの実行中に、上下左右、アクティベートといったUOを受け付けた場合、DVDライクモードのモジュールにこれらのUOを出力するというのがディスパッチャ４１７の処理である。
レンダリングエンジン４１８は、Java２D，OPEN-GLといった基盤ソフトウェアを備え、Java（登録商標）モジュール４１４からの指示に従ってコンピュータ・グラフィックスの描画を行い、描画されたコンピュータ・グラフィックスをイメージプレーン４０８に出力する。
【００３１】
特殊再生情報４１９は、再生装置でサポートしている再生速度の一覧を特殊再生情報として保持している。この再生速度の一覧は、2.0、10.0、30.0というように、再生装置における再生装置固有の実パラメータ（即値）で表現されている。この特殊再生情報はJavaモジュール４１４から参照され、Java（登録商標）モード時における特殊再生においてDVDライクモードと互換を取るために用いられる。
【００３２】
AV再生ライブラリ４２０は、DVDライクモジュール４１３、Java（登録商標）モジュール４１４からの関数呼び出しに応じて、AV再生機能、プレイリストの再生機能を実行する。AV再生機能とは、DVDプレーヤ、CDプレーヤから踏襲した機能群であり、再生開始、再生停止、一時停止、一時停止の解除、静止画機能の解除、再生速度を即値で指定した早送り、再生速度を即値で指定した巻戻し、音声切り換え、副映像切り換え、アングル切り換えといった処理である。プレイリスト再生機能とは、このAV再生機能のうち、再生開始や再生停止をプレイリスト情報に従って行うことをいう。このAV再生ライブラリ４２０はDVDライクモジュール４１３、Java（登録商標）モジュール４１４から指定された再生速度の即値に応じ、トラックバッファからの読み込み速度を変化させ、その読み込み速度に応じてデマルチプレクサ４０３を制御してビデオデータを抜き出し、ビデオデコーダ４０４に送る。また、オーディオデータも同様にデマルチプレクサ４０３を制御して抜き出し、オーディオデコーダ４０６に送る。これらの処理によって指定された再生速度の即値による特殊再生が可能となる。
【００３３】
以上が再生装置の構成要素である。
図５は、図４に示すDVDライクモジュール４１３、Java（登録商標）モジュール４１４のより具体的な構成を示すとともに、早送り、早戻しなどの特殊操作に関連したユーザ操作の処理に関わるブロック図である。まずDVDライクモジュール４１３における再生及び特殊再生制御について述べる。シナリオプログラム５０１はBD-ROM上に記録されたDVDライクモード用のBD再生プログラムで、図４に示す動的シナリオメモリ４１２に格納される。動的シナリオメモリ４１２に格納されたシナリオプログラム５０１はＤＶＤライクモジュールに供され、シナリオ制御モジュール５０２がアプリケーションに提供する機能である、シナリオ制御関数を呼び出し、条件に応じてプレイリストの分岐を行う。ユーザのリモコン操作に対する処理は、ディスパッチャ４１７から受け取ったUOイベントに応じ、UO処理モジュール５０３で、早送り、早戻しなどの特殊再生を行う。
【００３４】
Java（登録商標）モードの場合はBD-ROM上に記録されたJava（登録商標）アプリケーション５０５が、対応するBDタイトル再生の間、メディア再生モジュール５０７がアプリケーションに提供する機能である、API(Application Program Interface)を用いてシナリオ、特殊再生の制御を行う。ユーザのリモコン操作が行われると、アプリケーションマネージャ５０４がディスパッチャ４１７からUOイベントを受け取り、現在動作中のJava（登録商標）アプリケーション５０５に、受け取ったUOイベントを渡す。
【００３５】
Java（登録商標）アプリケーション５０５は早送りボタン押下などのUOイベントに対し、どの再生速度で特殊再生を行うべきか、特殊再生情報モジュール５０６を通じて特殊再生情報を得て再生速度の判断を行う。特殊再生情報からDVDライクモードで用いられている再生速度、端末がサポートしている再生速度を読み取り、それらを元に適切な再生速度をメディア再生モジュール５０７に指定する。これとともにJava（登録商標）アプリケーションは特殊再生情報モジュール５０６を通じて得られた特殊再生情報を用いて指定した再生速度に応じた速度で動く（または変化する）ようグラフィックスを逐次計算し、レンダリングエンジン４１８へ計算したグラフィックスの描画を指令する。例えば、等倍速によるＡＶデータ再生時において単位時間（例えば０．１秒）ごとに所定量（例えば仮想的に２次元（もしくは３次元）の座標軸を設定し、その設定した座標軸により示される座標を用いてグラフィックスの動きを特定したときの単位時間当たりの座標値の変化量）ずつ変化していくグラフィックスオブジェクトを、５倍速再生とした場合には、単位時間（この例では０．１秒）毎に変化する量を上述の所定量に再生速度を乗じた値（この例では５倍）として計算し、Java（登録商標）アプリケーションはレンダリングエンジン４１８へグラフィックスの描画を指令する。
【００３６】
図６は再生装置が保持している再生情報に対応する特殊再生情報の内容を示す図である。特殊再生情報として、端末（つまり再生装置）がサポートしている再生速度一覧とDVDライクモードで使用している再生速度の情報を持っている。また特殊再生操作を行うトリガとなる情報も記載している。特殊再生のトリガとしてはユーザのボタン操作などがあり、その場合、特殊再生に対応するボタンのIDと押された回数等を記載する。
【００３７】
なお、この表では、順方向倍速、逆方向倍速、順方向スロー再生、逆方向スロー再生を取り上げたが、他の特殊再生、例えば、何秒か先にスキップするスキップ再生などの情報も当然加えることができる。スキップ再生の場合、端末サポートレートの欄が再生速度ではなく秒数となり、端末がサポートする全ての秒数を記載する必要は必ずしもなく、DVDライクモードで用いている値が書かれてあればよい。本実施例では再生速度が変化する特殊再生を例に取り上げて説明するが、時間をパラメータとした特殊再生（例えば１５秒先にスキップするスキップ再生など）にも置き換えることが可能である。
【００３８】
この特殊再生情報を受けとれば、アプリケーションは、その特殊再生情報を用いて、図３（ｂ）に示したようなキャラクター（コンピュータ・グラフィックス）の描画を行う。これによりAV再生ライブラリ４２０が端末固有の再生速度で再生を行ったとしても、かかる再生と同期するようなキャラクター（コンピュータ・グラフィックス）の描画を実現することができる。これは特殊再生時において、ＡＶデータの映像の変化とコンピュータ・グラフィックスにより表示される画像の動きの変化とが同程度に変化することを意味する。図３（ｂ）の例で言えば、特殊再生時（例えば早送り）において、ＡＶデータについては早送りの映像が表示されているのに対し、フクロウのイメージの動きが早送りの画像の動きに見合う動きとなることを意味する。
【００３９】
図７はユーザ操作をトリガとして特殊再生を行う処理のフローチャートである。ユーザがリモコンや再生装置のフロントパネルを操作し、早送りボタンなどキー操作を行うと、UO検知モジュール４１５がユーザのキー操作を検知する（S７０１）。UO検知モジュール４１５はユーザのキー操作に対応したイベントをモード管理モジュール４１６に投げ、モード管理モジュール４１６は現在のモードがJava（登録商標）モードかDVDライクモードかを判断する（S７０２）。現在のモードがDVDライクモードであれば、モード管理モジュール４１６内のディスパッチャ部４１７が、DVDライクモジュールのUO処理モジュール５０３にUOイベントを投げる（S７０３）。UO処理モジュール５０３は受け取ったUOイベントに対応する再生制御を行う（S７０４）。
【００４０】
現在のモードがJava（登録商標）モードの場合、ディスパッチャ４１７はJava（登録商標）モジュール内のアプリケーションマネージャ５０４にUOイベントを投げる（S７０５）。アプリケーションマネージャ５０４がUOイベントを受け取ると、現在Javaモジュール４１４内の仮想マシン（図示せず）にて動作中のJava（登録商標）アプリケーション５０５に対して、受け取ったUOイベントを投げる（S７０６）。Java（登録商標）アプリケーション５０５がUOイベントを受け取ると、特殊再生情報取得モジュール５０６を介し、再生端末における特殊再生情報を取得する（S７０７）。Java（登録商標）アプリケーション５０５は特殊再生情報に基づき、受け取ったUOイベントに対応する特殊再生制御を、メディア再生モジュール５０７を介して行う（S７０８）。例えば、受け取ったUOイベントが早送りボタン押下イベントであった場合、Java（登録商標）アプリケーション５０５は何回連続で押されたか、値をカウントしておき、早送りボタンが一回押されたときの再生速度、二回連続押されたときの再生速度を特殊再生情報から判断する。図７のフローチャートではJava（登録商標）アプリケーション５０５はUOイベントを取得した後、特殊再生情報を取得しているが、起動時など予め特殊再生情報を読み込んでおいてもよい。また、一度読み込んだ情報はJava（登録商標）アプリケーション５０５内で保持しておいてもよい。
【００４１】
図８はJava（登録商標）アプリケーション５０５が特殊再生情報を取得する様子を示す図である。図６で示したように再生端末（つまり再生装置）が保持する特殊再生情報４１９はDVDライクモードで用いられている特殊再生情報と端末がサポートする特殊再生情報を保持している。
特殊再生情報取得モジュール５０６は、アプリケーションからの呼出に応じて、機能を提供するものであり、提供再生端末が保持する特殊再生情報からDVDライクモードで使用している特殊再生、端末がサポートする特殊再生の二種類の情報をアプリケーションに提供するAPIを公開している。
【００４２】
公開するAPIの一例として、例えばJava（登録商標）アプリケーションがDVDライクモードで用いられている早送り速度一覧を参照したい場合、特殊再生情報取得モジュール５０６に対し、getFastForwardRateArray（）  というメソッドを呼び出す。返り値としてDVDライクモードで使用されている早送り速度の配列を特殊再生情報４１９より得ることができる。得られた早送り速度の配列はボタン押下回数に対応しており、一回押されたときの速度は配列の先頭、二回押されたときの速度は配列の二番目に格納されている。
【００４３】
同様に端末がサポートしている早送り速度一覧はgetAllFastForwardRateArray（）  というメソッドの呼び出しで得ることができる。得られる早送り速度の配列は、例えば値の小さなものから順に格納されている。
図８で紹介したAPIはあくまで一例であり、Java（登録商標）アプリケーションからDVDライクモードの特殊再生情報、端末がサポートする特殊再生情報を得ることができるAPIとしては様々な形態が考えられる。例えば、早送り速度の配列を返すのではなく、早送り速度が押された回数を指定して、それに対応した値を返すAPIなども考えられる。
【００４４】
図９は特殊再生操作に対応するキーイベントの種類をJava（登録商標）アプリケーション５０５が特殊再生情報取得モジュール５０６から取得する様子を示す図である。Java（登録商標）アプリケーション５０５が各特殊操作を行うトリガとなるキーイベントの種類を特殊再生情報取得モジュール５０６に問い合わせると、特殊再生情報取得モジュール５０６は再生端末が保持する特殊再生情報４１９から、DVDライクモードに対応するキーイベントの種類を返す。例えば、特殊再生情報取得モジュール５０６に対し、getFastForwardOperationEvent（）  というメソッドを呼び出して早送り操作のトリガとなるイベントの種類を問い合わせると、”Button１PushedEvent”  といったイベントの種類が返ってくる。Java（登録商標）アプリケーション５０５はアプリケーションマネージャ５０４からButton１PushedEventのインスタンスを受け取ったときに早送りを行えば、DVDライクモードと互換を持った処理を行うことができる。
【００４５】
図１０はJava（登録商標）アプリケーション５０５が端末依存変数を用いて特殊再生に用いる再生速度を指定する様子を示した図である。端末依存変数とは、変数に対応する値が端末に固有に依存する変数のことである。例えば、ある端末依存変数Xが存在するとすると、ある端末ではXに対して再生速度が５と指定されていれば５に展開されるが、別の端末で、Xに対して再生速度が１０と指定されていれば１０に展開されることになる。Java（登録商標）アプリケーション５０５が特殊再生を行う際は、即値で再生速度を指定するのではなく、この端末依存変数を用いて速度指定を行う。例えば、Java（登録商標）アプリケーション５０５がメディア再生モジュール５０７に対し  setRate（FAST_FORWARD）  というメソッドを呼び出すと、メディア再生モジュール５０７内で端末に応じて  FAST_FORWARD  が即値に展開される。ある再生端末のDVDライクモードでは、早送りボタン操作（例えばボタンの押下回数、または押下時間）に応じて２倍、３０倍、１２０倍と再生速度が変化する場合、
LTTLE_FAST_FORWARD⇒２，
FAST_FORWARD⇒３０，
VERY_FAST_FORWARD⇒１２０
と展開され、別の再生端末のDVDライクモードでは同様の早送りボタン操作により５倍、１０倍、３０倍と再生速度が変化する場合、
LTTLE_FAST_FORWARD⇒５，
FAST_FORWARD⇒１０，
VERY_FAST_FORWARD⇒３０
と展開される。
【００４６】
つまり、全く同じJava（登録商標）アプリケーションでも再生端末に応じて再生速度をDVDライクモードに合わせた形で変化させることができる。端末依存変数の展開はメディア再生モジュール５０７が、再生端末が保持する特殊再生情報４１９を直接参照するか、もしくは特殊再生情報取得モジュール５０６を介して端末依存変数の展開を行う。また、展開された再生速度に関する情報はJava（登録商標）アプリケーション５０５に引き渡され、これを受けたJava（登録商標）アプリケーション５０５は指定した再生速度に応じた速度で動く（または変化する）ようグラフィックスを逐次計算し、レンダリングエンジン４１８へ計算したグラフィックスの描画を指令する。
【００４７】
図１１はJava（登録商標）アプリケーションの特殊再生要求に対する処理のフローチャートである。メディア再生モジュール５０７がJava（登録商標）アプリケーションから特殊再生要求を受けると（S１１０１）、Java（登録商標）アプリケーションが指定した再生速度が即値であるか、端末依存変数を用いたものであるかを判断する（S１１０２）。即値であれば、その値を用いて特殊再生処理を行う（S１１０５）。即値ではなく、端末依存変数による指定の場合、再生端末が保持する特殊再生情報４１９を参照し（S１１０３）、参照した特殊再生情報４１９をもとに、端末依存変数を即値に展開する（S１１０４）。そして、AV再生ライブラリ４２０にS１１０４で展開した即値を引数にして特殊再生の関数呼び出しを行い、特殊再生を実行する（S１１０５）。
【００４８】
以上のように本実施形態によれば、Java（登録商標）アプリケーションからDVDライクモードで用いられている特殊再生の情報を得ることができるので、Java（登録商標）モードにおいてもDVDライクモードと同様な特殊再生操作を実現することができる。また、再生装置がサポートする特殊再生情報も得ることができるので、再生装置がサポートしていない再生速度をJava（登録商標）アプリケーション（より具体的にはJavaモジュール４１４により実行されているJava（登録商標）アプリケーション）が要求し予期せぬ不具合が起こるといったことを未然に防ぐ。これはJava（登録商標）アプリケーションが再生装置の性能に見合う速度での特殊再生の実行を要求できることを意味する。さらにJava（登録商標）アプリケーションが特殊再生を行う際に端末依存変数を用いて再生速度を指定することで、再生装置に応じた変更をJava（登録商標）アプリケーションに加えることなく、再生装置の性能に応じてDVDライクモードと互換を持った特殊再生を実現することができる。これはデジタルストリームの特殊再生時において、その再生速度に見合ったJava（登録商標）アプリケーションによるイメージの描画を行うことができることを意味する。
【００４９】
（実施の形態２）
実施の形態１は、DVDライクモードとJava（登録商標）モードにおける特殊再生の互換性保持について述べた。これに対し、実施の形態２では、Java（登録商標）モード内のアプリケーション間における特殊再生の互換を保持したまま特殊再生操作を変更する方法について述べる。
【００５０】
図１２は実施の形態２に係るJava（登録商標）モジュールの構成を示す図である。Java（登録商標）モジュール内に再生情報に対応するアプリ共通特殊再生情報６０４を保持しており、Javaアプリケーション６０１は特殊再生情報取得・変更モジュール６０３を用いて、アプリ共通特殊再生情報６０４を読み書きすることができる。メディア再生モジュール６０２はJava（登録商標）アプリケーション６０１からの要求に応じて、メディア再生の制御を行う。その際、アプリ共通特殊再生情報６０４を直接、もしくは特殊再生情報取得・変更モジュール６０３を介して読み取り、アプリ共通特殊再生情報６０４に応じた再生制御を行う。つまり、アプリ共通特殊再生情報６０４の書き込み権限を持った、あるJava（登録商標）アプリケーションが、アプリ共通特殊再生情報の内容を書き換えると、メディア再生モジュール６０２を介して再生制御を行う全Java（登録商標）アプリケーションが影響を受ける。図１３はアプリ共通特殊再生情報の具体的な内容の一例を示す図である。アプリ共通特殊再生情報は変数名一覧と、その変数に対応する再生速度の値で構成されている。このアプリ共通特殊再生情報はJava（登録商標）モジュール内に保持され、アプリから共通にアクセスすることができる。メディア再生モジュール６０２はこの情報を元に、Java（登録商標）アプリケーションが指定した再生速度変数を展開する。
【００５１】
例えばJava（登録商標）アプリケーションからsetRate（FAST_FORWARD）というメソッド呼び出しがメディア再生モジュール６０２に対して行われると、アプリ共通特殊再生情報の値を元に変数を展開し、setRate（３０.０）という呼び出しに置き換える。これとともに展開された再生速度の値（この例では３０．０）を実行中のJava（登録商標）アプリケーションへ引き渡し、これを受けたアプリケーションは受けた再生速度に応じた速度で動く（または変化する）ようグラフィックスを逐次計算し、レンダリングエンジン４１８へ計算したグラフィックスの描画を指令する。
【００５２】
図１４はアプリ共通特殊再生情報の変更がJava（登録商標）アプリケーションに与える影響を示す図である。現在のアプリ共通特殊再生情報でのVERY_FAST_FORWARD変数の対応値が１２０であった場合、Javaアプリケーション１４０１がメディア再生モジュール６０１に対し、setRate（VERY_FAST_FORWARD）  というメソッドを呼び出すと、setRate（１２０）として展開されて、AV再生ライブラリに再生速度として１２０という即値を指定して早送り関数を呼び出す。その後、アプリ共通特殊再生情報への書き込み権限を持った別のJava（登録商標）アプリケーション１４０２が、ユーザからの特殊再生操作の変更要求等を受け、特殊再生情報取得・変更モジュールを介して  VERY_FAST_FORWARD  が示す値を６０に変更したとする。その場合、Java（登録商標）アプリケーション１４０１が再び同じsetRate（VERY_FAST_FORWARD）  というメソッドを呼び出したとしても、展開される値はsetRate（６０）となり、AV再生ライブラリ４２０には再生速度として６０という即値を指定して早送り関数を呼び出すことになるため、全く同じメソッド呼び出しにも関わらず、特殊再生の速度が変化することになる。つまり、アプリ共通特殊再生情報の変更は全Java（登録商標）アプリケーションに適用されるため、Java（登録商標）モードの特殊再生操作の変更は、未知のJava（登録商標）アプリケーションを含め、一貫して特殊再生操作の変更を行うことができる。
【００５３】
（実施の形態３）
実施の形態２ではJava（登録商標）モードにおける全Java（登録商標）アプリケーションに一貫した特殊再生操作の変更について述べた。これに対し、実施の形態３では、DVDライクモードとJava（登録商標）モードの２つのモードを通じて一貫した特殊再生操作の変更について述べる。
【００５４】
図１５は実施の形態３に係る特殊操作に関連したユーザ操作の処理に関わるブロック図である。図１５ではDVDライクモジュール、Java（登録商標）モジュールから共通してアクセスできる再生装置内の位置に両モード共通特殊再生情報１５０２を保持している。DVDライクモジュールのUOモジュール１５０１は両モード共通特殊再生情報１５０２を参照して再生制御を行う。この場合、UOモジュール内のコードもJava（登録商標）アプリケーション１５０５と同様、setRate（FAST_FORWARD）  というように端末依存変数を用いた形で再生制御を行う。Java（登録商標）アプリケーションからの再生制御は実施の形態２と同様であり、ここでの説明は省略する。
【００５５】
両モード共通特殊再生情報１５０２に記載する内容は図１３のアプリ共通特殊再生情報と同じであり、書き込み権限を持ったJava（登録商標）アプリケーション１５０５から特殊再生情報取得・変更モジュール１５０４を介して書き換えることが可能である。両モード共通特殊再生情報１５０２の変更は、UO処理モジュール１５０１、メディア再生モジュール１５０３共に影響を受け、AV再生ライブラリの特殊再生関数呼び出しの際に渡される引数の値に反映される。
【００５６】
以上のように本実施例によれば、Java（登録商標）アプリケーションによる特殊再生操作の変更はJava（登録商標）モードにおけるJava（登録商標）アプリケーション間のみならず、DVDライクモードにも変更を適用することができる。
（実施の形態４）
実施の形態１〜３では再生端末が保持する特殊再生情報を参照することで特殊再生操作の互換性保持を行うことについて述べた。これに対し、実施の形態４では特殊再生情報を参照することなく、Java（登録商標）モード、DVDライクモードの特殊再生の互換を保持する方法について述べる。図１６は実施の形態４に係る特殊操作に関連したユーザ操作の処理に関わるブロック図である。本図において新規なのは、Java（登録商標）モジュールにディスパッチャモジュール１６０１が追加されている点である。ディスパッチャモジュール１６０１はJava（登録商標）アプリケーション５０５の要求に応じ、Java（登録商標）モジュールからDVDライクモジュールに対してUOイベントを送信する。送信するUOイベントの型はモード管理モジュール４１６から送られるものと同じものが送られる。UO処理モジュール５０３はモード管理モジュール４１６から送られたUOイベントか、ディスパッチャモジュール１６０１から送られたUOイベントか区別する必要はなく、モード管理モジュール４１６から送られたUOイベントと同じものとして、ディスパッチャモジュール１６０１から送られたUOイベントを処理することができる。
【００５７】
図１７はJava（登録商標）モジュールからDVDライクモジュールに対しUOイベントを送信する様子を示した図である。Java（登録商標）アプリケーション５０５はディスパッチャモジュール１６０１に対し、DVDライクモジュールへ送りたいUOイベントの種類を指定する。例えばディスパッチャモジュール１６０１に対し、postEventToDVDLikeModule（“FastForwardButtonPushedEvent”）  というメソッドを呼び出して、早送りボタンが押されたときのイベント配信要求を行なったとする。ディスパッチャモジュール１６０１は指定された種類のイベントを生成し、DVDライクモジュールのUO処理モジュールに対してイベントを送信する。イベントを受け取ったUO処理モジュールは、モード管理モジュールから送信されたものと同様に、DVDライクモードで用いている再生速度でAV再生ライブラリの関数を呼び出し、特殊再生制御を行う。  以上のように本実施例によれば、DVDライクモードのモジュールは特に改変する必要なく、Java（登録商標）モードにおいてもDVDライクモードと等価な再生制御を行うことができる。
【００５８】
（実施の形態５）
実施の形態５は実施の形態１〜４を複合した特殊再生互換保持について述べる。
図１８は実施の形態５に係る特殊操作に関連したユーザ操作の処理に関わるブロック図である。図１８では、両モード共通特殊再生情報１５０２とアプリ共通特殊再生情報６０４の２種類の特殊再生情報を保持している。Java（登録商標）アプリケーション５０５は特殊再生情報取得・変更モジュール１５０４を用いて、特殊再生情報を読み書きすることができ、特殊再生操作の変更をJava（登録商標）モードだけに適用したいのであれば、アプリ共通特殊再生情報６０４を書き換え、両モードを通じて特殊再生操作の変更を行いたいのであれば、両モード共通特殊再生情報１５０２を書き換える。
【００５９】
FAST_FORWARDなどの端末依存変数は両モード共通特殊再生とJava（登録商標）モード共通特殊再生の場合で変数名、またはパッケージが異なる。例えば、FAST_FORWARD  は両モード共通特殊再生に用いられ、J_FAST_FORWARDはJava（登録商標）モード共通の特殊再生に用いる。Java（登録商標）アプリケーションは指定する端末依存変数を変えることで、両モードに共通した特殊再生操作を行うか、Java（登録商標）モード内に共通した特殊再生操作を行うか、選択することができる。特殊再生操作をDVDライクモードのモジュールに任せたい場合は、ディスパッチャモジュール１６０１を用いてUOイベントをDVDライクモジュール内のUO処理モジュール１５０１に送ることで、UO処理モジュール１５０１は両モード共通特殊再生情報の再生速度の値を用いてAV再生ライブラリを呼び出して特殊再生を行う。
【００６０】
以上のように本実施例によれば、Java（登録商標）アプリケーションは、Java（登録商標）モード内での共通の特殊再生操作を行うか、DVDライクモード、Java（登録商標）モードの両モードに共通の特殊再生操作を行うか選択することができ、両モードに一貫した特殊再生操作の変更、もしくはJava（登録商標）モード内で一貫した特殊再生操作の変更を行うことができる。
【産業上の利用可能性】
【００６１】
本発明によれば、複数の再生モードを持つ再生機器においても、特殊再生操作の互換性が保持されるため、特に、映像コンテンツの制作に携わる映画産業・民生機器産業において利用される可能性をもつ。
【図面の簡単な説明】
【００６２】
【図１】本発明の実施の形態１におけるBD-ROMのデータ階層図
【図２】本発明の実施の形態１におけるBD-ROMが対象としているソフトウェアのレイヤモデルを示す図
【図３】２つのモードの動的な再生制御にて作成される映画作品を示す図
【図４】本発明の実施の形態１における再生装置の内部構成を示す図
【図５】本発明の実施の形態１における特殊操作に関連したユーザ操作の処理に関わるブロック図
【図６】本発明の実施の形態１における再生装置が保持している特殊再生情報の内容を示す図
【図７】本発明の実施の形態１におけるユーザ操作をトリガとして特殊再生を行う処理のフローチャート
【図８】本発明の実施の形態１におけるJava（登録商標）アプリケーションが特殊再生情報を取得する様子を示す図
【図９】本発明の実施の形態１における特殊再生操作に対応するキーイベントの種類をJava（登録商標）アプリケーションが特殊再生情報取得モジュールから取得する様子を示す図
【図１０】本発明の実施の形態１におけるJava（登録商標）アプリケーションが端末依存変数を用いて特殊再生に用いる再生速度を指定する様子を示す図
【図１１】Java（登録商標）アプリケーションの特殊再生要求に対する処理のフローチャート
【図１２】本発明の実施の形態２におけるJava（登録商標）モジュールの構成を示す図
【図１３】本発明の実施の形態２におけるアプリ共通特殊再生情報の内容を示す図
【図１４】本発明の実施の形態２におけるアプリ共通特殊再生情報の変更がJava（登録商標）アプリケーションに与える影響を示す図
【図１５】本発明の実施の形態３における特殊操作に関連したユーザ操作の処理に関わるブロック図
【図１６】本発明の実施の形態４における特殊操作に関連したユーザ操作の処理に関わるブロック図
【図１７】本発明の実施の形態４におけるJava（登録商標）モジュールからDVDライクモジュールに対しUOイベントを送信する様子を示す図
【図１８】本発明の実施の形態５における特殊操作に関連したユーザ操作の処理に関わるブロック図
【符号の説明】
【００６３】
４０１    ＢＤドライブ
４０２    トラックバッファ
４０３    デマルチプレクサ
４０４    ビデオデコーダ
４０５    ビデオプレーン
４０６    オーディオデコーダ
４０７    イメージメモリ
４０８    イメージプレーン
４０９    イメージデコーダ
４１０    加算器
４１１    静的シナリオメモリ
４１２    動的シナリオメモリ
４１３    ＤＶＤライクモジュール
４１４    Ｊａｖａモジュール
４１５    ＵＯ検知モジュール
４１６    モード管理モジュール
４１７    ディスパッチャ
４１８    レンダリングエンジン
４１９    特殊再生管理情報
４２０    ＡＶ再生ライブラリ
５０１    シナリオプログラム
５０２    シナリオ制御モジュール
５０３    ＵＯ処理モジュール
５０４    アプリケーションマネージャ
５０５    Ｊａｖａアプリケーション
５０６    特殊再生情報取得モジュール
５０７    メディア再生モジュール
６０１    Ｊａｖａアプリケーション
６０２    メディア再生モジュール
６０３    特殊再生情報取得・変更モジュール
６０４    アプリケーション共通特殊再生情報
１４０１  Ｊａｖａアプリケーション
１４０２  Ｊａｖａアプリケーション
１５０１    ＵＯ処理モジュール
１５０２    両モード共通特殊再生情報
１５０３    メディア再生モジュール
１５０４    特殊再生情報取得・変更モジュール
１５０５    Ｊａｖａアプリケーション
１６０１    ディスパッチャモジュール
３００１    記録媒体
３００２    ディスク制御部
３００３    分離部
３００４    ビデオ処理部
３００５    オーディオ処理部
３００６    ＶＲナビゲーション処理部
Ｓ７０１    ユーザ操作検知ステップ
Ｓ７０２    モード判定ステップ
Ｓ７０３    ＤＶＤライクモジュールへＵＯイベント配信ステップ
Ｓ７０４    ＵＯイベント処理ステップ
Ｓ７０５    ＪａｖａモジュールへＵＯイベント配信ステップ
Ｓ７０６    ＪａｖａアプリケーションへＵＯイベント配信ステップ
Ｓ７０７    特殊再生情報取得ステップ
Ｓ７０８    特殊再生処理ステップ
Ｓ１１０１    特殊再生要求ステップ
Ｓ１１０２    速度指定方法判定ステップ
Ｓ１１０３    特殊再生情報取得ステップ
Ｓ１１０４    即値展開ステップ
Ｓ１１０５    特殊再生実行ステップ
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2005119675.tif 000020
【図２】
2005119675.tif 000021
【図３】
2005119675.tif 000022
【図４】
2005119675.tif 000023
【図５】
2005119675.tif 000024
【図６】
2005119675.tif 000025
【図７】
2005119675.tif 000026
【図８】
2005119675.tif 000027
【図９】
2005119675.tif 000028
【図１０】
2005119675.tif 000029
【図１１】
2005119675.tif 000030
【図１２】
2005119675.tif 000031
【図１３】
2005119675.tif 000032
【図１４】
2005119675.tif 000033
【図１５】
2005119675.tif 000034
【図１６】
2005119675.tif 000035
【図１７】
2005119675.tif 000036
【図１８】
2005119675.tif 000037
【国際調査報告】
2005119675.tif 000038
2005119675.tif 000039