(57)【要約】【課題】アドバンスコンテンツを再生する場合でも、グラフィックの描画パフォーマンスが低下するのを防ぐことが可能な情報再生装置及び情報再生方法を提供すること。【解決手段】第１ＣＰＵ１は、アドバンスドアプリケーションプレゼンテーションエンジン６１、ピクセルバッファ６３、フォントレンダリングシステムラッパー６５、及びアドバンスドサブタイトルプレーヤ６７としての処理を実行する。第２ＣＰＵ２は、グラフィックデコーダ６２、サーフェスマネージャ６４、フォントレンダリングシステム６６としての処理を実行する。アドバンスドアプリケーションプレゼンテーションエンジン６１は、レイアウトマネージャ７１及びグラフィックデコーダラッパー７２を有して構成されているので、第１ＣＰＵ１は、レイアウトマネージャ７１及びグラフィックデコーダラッパー７２としての処理も実行する。【選択図】図４
2008108296.tif 000002
【特許請求の範囲】
【請求項１】
相互に通信可能な第１ＣＰＵと第２ＣＰＵとを備えており、
前記第１ＣＰＵは、グラフィックデコーダラッパーとピクセルバッファとしての処理を実行し、
前記第２ＣＰＵは、グラフィックデコーダとサーフェスマネージーとしての処理を実行することを特徴とする情報再生装置。
【請求項２】
前記グラフィックデコーダラッパーは、前記グラフィックデコーダにデコード指示を送り、
前記グラフィックデコーダは、前記グラフィックデコーダラッパーからのデコード指示に基づいて、前記サーフェスマネージーにサーフェス作成要求を送ると共に、符号化された画像データをデコードし、
前記サーフェスマネージャは、前記グラフィックデコーダからのサーフェス作成要求に基づいてサーフェスを作成し、該サーフェスに前記グラフィックデコーダにてデコードされた画像データを格納し、
前記ピクセルバッファは、前記グラフィックデコーダから送られた情報に基づいて、前記サーフェスマネージャにて作成された前記サーフェスを識別するための情報を登録する請求項１に記載の情報再生装置。
【請求項３】
前記第２ＣＰＵは、データキャッシュとしての処理を更に実行し、
前記データキャッシュは、符号化された画像データが格納され、
前記グラフィックデコーダは、前記データキャッシュに格納された符号化された画像データをデコードする請求項２に記載の情報再生装置。
【請求項４】
前記サーフェスマネージャは、サーフェスを作成すると、該サーフェスを識別する識別子を作成して、前記グラフィックデコーダに送り、
前記グラフィクデコーダは、前記サーフェスマネージャから送られた前記識別子を前記グラフィックデコーダラッパーに送り、
前記ピクセルバッファは、前記グラフィックデコーダラッパーに送られた前記識別子を、前記サーフェスマネージャにて作成された前記サーフェスを識別するための前記情報として、該サーフェスに格納された画像データのファイル名と関連付けて登録する請求項２に記載の情報再生装置。
【請求項５】
前記サーフェスマネージャは、前記サーフェスを識別する前記識別子と、画像が格納される前記サーフェスのアドレスとを関連付けて登録することを特徴とする請求項４に記載の情報再生装置。
【請求項６】
前記サーフェスマネージャは、前記サーフェスを識別する前記識別子と、画像が格納される前記サーフェスのアドレスと、前記サーフェスでのデコードの状態とを関連付けて登録することを特徴とする請求項４に記載の情報再生装置。
【請求項７】
前記グラフィックデコーダラッパーは、デコード指示を行う画像データのファイル名に対応する識別子が前記ピクセルバッファに登録されているか否かを確認し、該識別子が登録されていない場合に、前記グラフィックデコーダにデコード指示を送る請求項４に記載の情報再生装置。
【請求項８】
前記グラフィックデコーダラッパーは、前記グラフィックデコーダにデコード指示を送り、該デコード指示を前記グラフィックデコーダが受け付けた際に、デコードの完了とする請求項２に記載の情報再生装置。
【請求項９】
前記第１ＣＰＵは、フォントレンダリングシステムラッパーとしての処理を更に実行し、
前記第２ＣＰＵは、フォントレンダリングシステムとしての処理を更に実行し、
前記フォントレンダリングシステムラッパーは、前記フォントレンダリングシステムにラスタライズ指示を送り、
前記フォントレンダリングシステムは、前記フォントレンダリングシステムラッパーからのラスタライズ指示に基づいて、文字フォントをラスタライズする請求項２に記載の情報再生装置。
【請求項１０】
前記第１ＣＰＵは、アドバンスドアプリケーションマネージャとレイアウトマネージャとしての処理を更に実行し、
前記第２ＣＰＵは、グラフィックレンダリングエンジンとしての処理を更に実行し、
前記アドバンスドアプリケーションマネージャは、前記レイアウトマネージャに描画指示を送り、
前記レイアウトマネージャは、前記アドバンスドアプリケーションマネージャからの描画に基づいて、該描画指示にて指定される画像の描画指示を前記グラフィックレンダリングエンジンに送り、
前記グラフィックレンダリングエンジンは、前記レイアウトマネージャから送られた描画指示に基づいて、該描画指示に対応する前記サーフェスの情報を前記サーフェスマネージャから取得する請求項２に記載の情報再生装置。
【請求項１１】
前記グラフィックレンダリングエンジンは、前記レイアウトマネージャから描画指示が送られると、該描画指示に対応する前記サーフェスでのデコードの状態を確認し、デコードが完了していない場合には、デコードの完了を待つ請求項１０に記載の情報再生装置。
【請求項１２】
前記レイアウトマネージャが、前記グラフィックレンダリングエンジンに描画指示を送る際に、複数の描画指示をまとめて送る請求項１０に記載の情報再生装置。
【請求項１３】
前記サーフェスマネージャは、前記サーフェスに格納された前記画像データによる画像の反転画像の画像データを新たなサーフェスに格納する請求項２に記載の情報再生装置。
【請求項１４】
前記サーフェスマネージャは、前記反転画像の画像データが格納された前記サーフェスを識別する識別子を作成する請求項１３に記載の情報再生装置。
【請求項１５】
相互に通信可能な第１ＣＰＵと第２ＣＰＵとによる情報再生方法であって、
前記第１ＣＰＵに、グラフィックデコーダラッパーとピクセルバッファとしての処理を実行させ、
前記第２ＣＰＵに、グラフィックデコーダとサーフェスマネージーとしての処理を実行させることを特徴とする情報再生方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば光ディスク装置等に用いられる情報再生装置及び情報再生方法に関する。
【背景技術】
【０００２】
近年、高画質及び高機能を有するＤＶＤビデオディスク及びそのディスクを再生するビデオプレーヤの普及が進んでいる。しかしながら、ここ数年、タイトル本編も含めメニュー画面や特典映像等のコンテンツにおいて、より色彩に富んだメニューやインタラクティブ性の向上等、コンテンツ内容の拡充によるユーザへのより魅力的なコンテンツの提供環境がコンテンツ供給者から望まれている。
【０００３】
そこで、色彩に富んだメニューやインタラクティブ性の高いコンテンツとしてアドバンスコンテンツが発案され、アドバンスコンテンツを有する情報記録媒体や、アドバンスコンテンツを再生する情報再生装置が存在している（例えば、特許文献１参照）。アドバンスコンテンツには、音声、静止画（背景画を含む）アニメーション、文字フォント、動画等が含まれており、これらのアドバンスコンテンツのデータは、符号化された状態で情報記録媒体に格納されている。アドバンスコンテンツを再生する情報再生装置は、アドバンスコンテンツの再生を実現する再生システムモデルとして、アドバンスドコントロールプレーヤ（Advanced Content Player）を含んでいる。アドバンスドコントロールプレーヤは、機能モジュールとして、データアクセスマネージャ（Data Access Manager）、データキャッシュ（Data Cache）、ナビゲーションマネージャ（Navigation Manager）、プレゼンテーションエンジン（Presentation Engine）、ＡＶレンダラー（AV Renderer）等で構成される。
【特許文献１】特開２００６−２３６４１１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
再生システムモデルとしてのアドバンスドコントロールプレーヤは、ＣＰＵ（Central Processing Unit）にて各種の処理が実行されることにより、実現される。しかしながら、アドバンスコンテンツには、静止画アニメーションや動画等のグラフィックデータが含まれることから、これらのグラフィックデータをデコードして、再生する際に、ＣＰＵに大きな処理負荷がかかる。この結果、グラフィックの描画パフォーマンスが低下する懼れがある。
【０００５】
そこで、本発明は上記事情を考慮してなされたもので、アドバンスコンテンツを再生する場合でも、グラフィックの描画パフォーマンスが低下するのを防ぐことが可能な情報再生装置及び情報再生方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明に係る情報再生装置は、相互に通信可能な第１ＣＰＵと第２ＣＰＵとを備えており、第１ＣＰＵは、グラフィックデコーダラッパーとピクセルバッファとしての処理を実行し、第２ＣＰＵは、グラフィックデコーダとサーフェスマネージーとしての処理を実行する。
【０００７】
また、本発明に係る情報再生方法は、相互に通信可能な第１ＣＰＵと第２ＣＰＵとによる情報再生方法であって、第１ＣＰＵに、グラフィックデコーダラッパーとピクセルバッファとしての処理を実行させ、第２ＣＰＵに、グラフィックデコーダとサーフェスマネージーとしての処理を実行させる。
【発明の効果】
【０００８】
本発明によれば、アドバンスコンテンツを再生する場合でも、グラフィックの描画パフォーマンスが低下するのを防ぐことが可能となる。
【発明を実施するための最良の形態】
【０００９】
以下、添付図面を参照して、本発明の好適な実施形態について詳細に説明する。なお、説明において、同一要素又は同一機能を有する要素には、同一符号を用いることとし、重複する説明は省略する。
【００１０】
まず、図１を参照して、情報再生装置の一例としての、アドバンスドＨＤビデオタイトルセット（ＡＨＤＶＴＳ：Advanced High Definition Video Title Set）対応のＨＤ−ＤＶＤビデオプレーヤの構成を説明する。
【００１１】
ＨＤ−ＤＶＤビデオプレーヤは、図１に示されるように、第１ＣＰＵ１と、第２ＣＰＵ２と、複数のバスＢ１，Ｂ２，Ｂ３を備えている。第１ＣＰＵ１と第２ＣＰＵ２とは、バスに接続されており、相互に通信可能である。第１ＣＰＵ１は、主として、後述するナビゲーションマネージャ（Navigation Manager）やプレゼンテーションエンジン（Presentation Engine）等としての処理を実行するＣＰＵである。第１ＣＰＵ１は、Advanced Contentのメイン部分である、マークアップ（Markup）言語やスクリプト（Script）言語（例えば、ＥＣＭＡ（European Computer Manufacturers Association）Script）等の記述に従った一連の処理を担当する。第２ＣＰＵ２は、第１ＣＰＵ１からの指示を受けて、後述するように、画像のデコードやサーフェスへの画像の描画等を行うといった下位層の処理を担当する。第２ＣＰＵ２は、ビデオデコーダ７，８やオーディオデコーダ９，１０の制御等も行う。
【００１２】
バスＢ１とパスＢ２とは、バスブリッジ３を介して接続されている。バスＢ２とパスＢ３とは、バスブリッジ４を介して接続されている。
【００１３】
バスＢ１は、複数のバスＢ１，Ｂ２，Ｂ３の中で最も通信速度が早いバスである。バスＢ１には、第１ＣＰＵ１及び第２ＣＰＵ２の他に、データの高速転送が必要とされる、メモリ５、グラフィックコントローラ６、ビデオデコーダ７，８、及びオーディオデコーダ９，１０が接続されている。メモリ５は、メモリコントローラ１１を介してバスＢ１に接続されている。
【００１４】
バスＢ２は、バスＢ１よりも通信速度が若干遅いバスである。バスＢ２には、ＵＳＢコントローラ１２、ＬＡＮコントローラ１３、及びＳｅｒｉａｌ  ＡＴＡコントローラ１４が接続されている。ＵＳＢコントローラ１２は、ＵＳＢキーボードやゲームパッドを接続するためのコントローラである。ＬＡＮコントローラ１３は、ネットワーク接続を行うためのコントローラである。
【００１５】
バスＢ３は低速バスであり、バスＢ３には速い通信速度を必要としないＩ／Ｏ機器が接続されている。バスＢ３には、フラッシュＲＯＭ１５、ＮＡＮＤメモリ１６、Ｉ２Ｃコントローラ１７、及び制御マイコン１８が接続されている。フラッシュＲＯＭ１５は、フラッシュＲＯＭコントローラ１９を介してバスに接続されている。ＮＡＮＤメモリ１６は、ＮＡＮＤコントローラ２０を介してバスＢ３に接続されている。
【００１６】
ビデオデコーダ７，８は、ＭＰＥＧ−２（Moving Picture Experts Group phase 2）方式やＨ．２６４方式等により符号化された画像データを実際の画像データに復号するモジュールである。コンポジター２１は、各ビデオプレーンやグラフィックプレーン等を合成し、最終的な出力画像を生成して、出力する。ビデオエンコーダ２２は、コンポジター２１から出力された画像からコンポジット出力等の画像信号を生成して、出力する。
【００１７】
オーディオデコーダ９，１０は、ＭＰＥＧ−１（Moving Picture Experts Group phase 1）方式等で符号化された音声データをデジタル音声データに復号するモジュールである。オーディオデコーダ９，１０から出力されたデジタル音声データは、オーディオミキサ２３により合成され、出力される。オーディオミキサ２３から出力されたデジタル音声データは、Ｄ／Ａコンバータ２４で音声信号に変換され、出力される。
【００１８】
ビデオエンコーダ２２及びＤ／Ａコンバータ２４は、通常、Ｉ２Ｃバス方式を用いて制御される。このため、ビデオエンコーダ２２及びＤ／Ａコンバータ２４の制御は、Ｉ２Ｃコントローラ１７経由で行う。
【００１９】
制御マイコン１８は、リモコン受光器２５からの出力が接続され、リモコンからの制御情報を受ける。制御マイコン１８は、電源の制御を行う。制御マイコン１８は、ＲＳ−２３２Ｃ規格によるシリアルコントローラ２６を介してバスＢ３に接続されており、第２ＣＰＵ２は、シリアルコントローラ２６を経由して制御マイコン１８の制御を行う。
【００２０】
ＨＤ−ＤＶＤドライブ２７は、Ｓｅｒｉａｌ  ＡＴＡコントローラ１４を介してバスＢ２に接続されている。
【００２１】
アドバンスドコンテンツが記録された情報記録媒体（ＨＤ−ＤＶＤディスク）の一例を図２に示す。図２に示された情報記録媒体は、カテゴリー３に対応した情報記録媒体である。情報記録媒体には、アドバンスドコンテンツＡＤＶＣＴとスタンダードコンテンツＳＴＤＣＴとが記録されている。アドバンスドコンテンツが記録された情報記録媒体に関しては、上述した特許文献１の他に、本願出願人による特開２００６−１４７０８２号公報、特開２００６−１８６８４２号公報、特開２００６−２１６１０３号公報又は特開２００６−２１７５４号公報等により既知であり、その説明を省略する。
【００２２】
次に、図３を参照して、本実施形態のＨＤ−ＤＶＤビデオプレーヤが含んでいる、再生システムモデルとしてのアドバンスドコントロールプレーヤＡＣＰの構成を説明する。
【００２３】
アドバンスドコントロールプレーヤＡＣＰは、図１に示された第１ＣＰＵ１及び第２ＣＰＵ２がそれぞれ図示しない組込プログラム（ファームウエア）に基づいた処理を実行することにより、機能的に実現される。アドバンスドコントロールプレーヤＡＣＰは、データアクセスマネージャ３０と、データキャッシュ４０と、ナビゲーションマネージャ５０と、プレゼンテーションエンジン６０と、ＡＶレンダラー８０と、を有して構成される。
【００２４】
データアクセスマネージャ３０は、データキャッシュ４０等からの指示に基づいて、ＨＤ−ＤＶＤディスク９５等にアクセスしてファイルの読み書き等の操作を行うモジュールである。データアクセスマネージャ３０は、パーシスタントストレージマネージャ（Persistent Storage Manager）３１、ネットワークマネージャ（NetworkManager）３２、及びディスクマネージャ（Disk Manager）３３を含んで構成される。
【００２５】
パーシスタントストレージマネージャ３１は、上位モジュールからの指示に基づいて、パーシスタントストレージ（Persistent Storage）９１の内のファイルの読み書きや削除等の操作を行うモジュールである。ネットワークマネージャ３２は、上位モジュールからの指示に基づいて、ネットワークサーバ（Network Server）９３からファイルをダウンロードしたり、逆にファイルをアップロードしたりするモジュールである。ディスクマネージャ３３は、上位モジュールからの指示に基づいて、ＨＤ−ＤＶＤディスク９５に格納されたファイルの読み出しを行うモジュールである。
【００２６】
パーシスタントストレージ９１には、ホームネットワーク上に存在するＮＡＳ（Network Attached Storage）等が含まれる。ネットワークサーバ９３は、インターネット上に存在するサーバであって、例えば、ＨＤ−ＤＶＤディスク９５を提供する映画会社等が運営するものが想定される。
【００２７】
データキャッシュ４０は、読み出したファイルなどを一時的に格納するバッファであり、データキャッシュ４０には符号化された画像データ等が格納される。データキャッシュ４０の容量は、例えば６４Ｍバイトである。データキャッシュ４０は、ファイルキャッシュ（File Cache）と、ストリーミングバッファ（Streaming Buffer）とを含んで構成される（いずれも不図示）。ファイルキャッシュは、ナビゲーションマネージャ５０又はプレゼンテーションエンジン６０がファイルを読み出す時のキャッシュとして動作する。ストリーミングバッファは、後述するセカンダリビデオプレーヤ（Secondary Video Player）６８がネットワークサーバ９３上のビデオデータをストリーミング再生する際に、ビデオデータをバッファリングするために使用される。
【００２８】
ナビゲーションマネージャ５０は、アドバンスドコンテンツの全体制御、マークアップ言語やスクリプト（Script）言語（例えば、ＥＣＭＡスクリプト）で記述された内容の再生処理、及びリモコンからの制御情報に対応した処理動作等を行うモジュールである。ナビゲーションマネージャ５０は、ファイルキャッシュマネージャ（File Cache Manager）５１、プレイリストマネージャ（Playlist Manager）５２、パーサー（Parser）５３、アドバンスドアプリケーションマネージャ（Advanced Application Manager）５４、及びユーザーインターフェースエンジン（User Interface Engine）５５を含んで構成される。
【００２９】
ファイルキャッシュマネージャ５１は、プレイリストマネージャ５２又はアドバンスドアプリケーションマネージャ５４からの指示を受けると、データアクセスマネージャ３０又はプライマリビデオプレーヤ（Primary Video Player）６９を制御して、所望のファイルをＨＤ−ＤＶＤディスク９５又はネットワークサーバ９３等からデータキャッシュ４０に読み込んで管理するモジュールである。
【００３０】
プレイリストマネージャ５２は、アドバンスドコンテンツの再生開始時にプレイリスト（Playlist）よりコンテンツの構成情報等を読み出して、各モジュールの初期化制御を行うモジュールである。プレイリストマネージャ５２は、タイトルタイムライン（Title Timeline）の制御を行うモジュールでもある。
【００３１】
アドバンスドアプリケーションマネージャ５４は、アドバンスドコンテンツの再生全般を統括して制御する中心的なモジュールである。アドバンスドアプリケーションマネージャ５４は、デクレラティブエンジン（Declarative Engine）とプログラミングエンジン（Programming Engine）とを含んで構成される（いずれも不図示）。
【００３２】
デクレラティブエンジンは、マークアップ言語の記述に従って、タイミングの制御を行うモジュールである。デクレラティブエンジンは、マークアップ言語の記述に従ってプレゼンテーションエンジン６０を制御し、グラフィック表示や文字表示を行うモジュールでもある。
【００３３】
プログラミングエンジンは、ＥＣＭＡスクリプトで記述されたスクリプト言語を解釈して実行するモジュールである。プログラミングエンジンは、ＥＣＭＡスクリプトからＨＤ−ＤＶＤ規格で定義されたＡＰＩ（Application Interface）を呼び出すことにより、プレーヤの制御、グラフィック描画、及びファイル操作等を行うことができる。プログラミングエンジンは、プレゼンテーションエンジン６０を制御することにより、ＡＰＩ経由でＥＣＭＡスクリプトにて指示されているグラフィック描画やプレーヤ制御を実現する。
【００３４】
ユーザーインターフェースエンジン５５は、カーソルを制御するモジュールである。ユーザーインターフェースエンジン５５は、リモコンから制御情報等をイベントとしてアドバンスドアプリケーションマネージャ５４に伝えるモジュールでもある。
【００３５】
プレゼンテーションエンジン６０は、グラフィックデータ、ビデオデータ、又はオーディオデータ等をデコードし、最終的なグラフィック画像やビデオのフレーム画像等を作成するモジュールである。プレゼンテーションエンジン６０は、作成したグラフィック画像やビデオのフレーム画像等をＡＶレンダラー８０に送る。プレゼンテーションエンジン６０は、アドバンスドアプリケーションプレゼンテーションエンジン（Advanced Application Presentation Engine）６１、グラフィックデコーダ（GraphicDecoder）６２、ピクセルバッファ（Pixel Buffer）６３、サーフェスマネージャ（Surface Manager）６４、フォントレンダリングシステムラッパー（Font Rendering system Wrapper）６５、フォントレンダリングシステム（Font Rendering System）６６、アドバンスドサブタイトルプレーヤ（Advanced Subtitle Player）６７、セカンダリビデオプレーヤ６８、プライマリビデオプレーヤ６９、及びデコーダエンジン（Decoder Engine）７０等を有して構成される。
【００３６】
アドバンスドサブタイトルプレーヤ６７は、レイアウトマネージャ７１と同様に、アドバンスドサブタイトル内のマークアップ言語の記述にしたがって、出力画像をサブピクチャプレーン上に生成し、ＡＶレンダラー８０に送出する。
【００３７】
プライマリビデオプレーヤ６９及びセカンダリビデオプレーヤ６８は、ビデオプレーヤとして再生制御を行うモジュールである。プライマリビデオプレーヤ６９及びセカンダリビデオプレーヤ６８は、再生の際に、ＴＭＡＰ（TimeMap）を解析する。プライマリビデオプレーヤ６９及びセカンダリビデオプレーヤ６８は、ＴＭＡＰの解析結果に基づいて、必要な場所をデータアクセスマネージャ３０から読み出し、ビデオ映像のデータ、音声データ、又はサブピクチャデータ等に分類する。プライマリビデオプレーヤ６９及びセカンダリビデオプレーヤ６８は、分類した各データを、デコーダエンジン７０内の各デコーダに出力する。
【００３８】
デコーダエンジン７０は、ＭＰＥＧ−２方式等で符号化されたビデオ映像のデータや音声データ等をデコードする。デコーダエンジン７０は、デコードした各データを、最終的な画像データやＰＣＭ（Pulse Code Modulation）データとして、ＡＶレンダラー８０に出力する。
【００３９】
アドバンスドアプリケーションプレゼンテーションエンジン６１、グラフィックデコーダ６２、ピクセルバッファ６３、サーフェスマネージャ６４、フォントレンダリングシステムラッパー６５、及びフォントレンダリングシステム６６については、後述する。
【００４０】
ＡＶレンダラー８０は、他のモジュールから入力されたビデオ情報と音声情報の合成処理を行い、スピーカやモニタ等に対する外部への信号出力を行うモジュールである。ＡＶレンダラー８０は、グラフィックレンダリングエンジン（Graphic Rendering Engine）８１と、オーディオミキシングエンジン（Audio Mixing Engine）８２とを有して構成される。グラフィックレンダリングエンジン８１は、ナビゲーションマネージャ５０とプレゼンテーションエンジン６０から送られた情報に基づいて、グラフィックプレーン上での画像の合成処理を行う。オーディオミキシングエンジン８２は、プレゼンテーションエンジン６０から送られる音声情報を合成し、合成された音声情報を出力する。
【００４１】
ＨＤ−ＤＶＤ規格における表示画面は、図１６及び図１９に示されるように、従来のＤＶＤ規格おけるメインビデオプレーン（Main Video Plane）とサブピクチャプレーン（Subpicture Plane）に、サブビデオプレーン（Sub Video Plane）、グラフィックプレーン（Graphic Plane）、及びカーソルプレーン（Cursor Plane）を追加した構成となっている。これらのプレーンは、メインビデオプレーンが一番下で、次に、サブビデオプレーン、サブピクチャプレーン、グラフィックプレーン、カーソルプレーンの順番で上に重ねられた状態で合成される。５つのプレーンが合成された画面が、最終的な出力画面となる。
【００４２】
出力画面の構築と更新は、毎フレーム行われる。これに対して、グラフィックプレーンは、後述のティックベース（tickBase）とティックベースディバイザー（tickBaseDivisor）とで指定された周期で、構築と更新を繰り返す。よって、グラフィックプレーンの更新周期は、出力画面と異なってしまう。このため、グラフィックプレーンの描画では、以下の処理を行う。すなわち、グラフィックプレーンは、表示用（Front）グラフィックプレーンと描画用（Back）グラフィックプレーンの２枚が用意されている。表示用グラフィックプレーンを画面表示で使用している間に、描画用グラフィックプレーンに描画し、この描画が完了すると、表示用グラフィックプレーンと描画用グラフィックプレーンとを切り換える。この処理のため、グラフィックプレーンは、２枚のサーフェスを使用している。
【００４３】
ここで、図５を参照して、アドバンスドコンテンツのグラフィック画面構築処理について説明する。
【００４４】
アドバンスドコンテンツの再生は、アドバンスドアプリケーションマネージャ５４が最上位で統括し、制御している。画面表示などをおこなうプレゼンテーションエンジン６０等は、このアドバンスドアプリケーションマネージャ５４からの指示に従って、画面作成やデコード等の処理を実行している。アドバンスドアプリケーションマネージャ５４は、後述するアプリケーションティック（Application Tick）に同期して、アドバンスドコンテンツの再生に必要なイベント処理や次の画面の最終的な生成等の処理を繰り返すことにより、再生動作を実現している。
【００４５】
ＨＤ−ＤＶＤビデオプレーヤでは、アドバンスドコンテンツの再生速度やタイミングの制御のために、内部でアプリケーションティックと呼ばれる周期的な同期用の合図を生成して、各モジュールに送っている。アドバンスドアプリケーションマネージャ５４は、このアプリケーションティックに同期を取ることで、アドバンスドコンテンツを指定された速度とタイミングによって再生する。
【００４６】
アプリケーションティックに同期してアプリケーションクロック（Application Clock）と呼ばれる独自の時刻が刻まれる。アプリケーションクロックの時刻は、アドバンスドコンテンツの再生を開始する時に“０”にリセットされる。アプリケーションクロックは、例えばアドバンスドコンテンツの時間に応じたアニメーションを記述する際等に使われる。
【００４７】
通常、アプリケーションティックは、アプリケーションクロックでの時刻の刻みにも使用されることから、５０ｆｐｓや６０ｆｐｓといった値で指定される。アプリケーションティックの周期は、プレイリストのファイル中のティックベースという属性で指定される。ｆｐｓは、画面の更新間隔などを示す場合に使用される単位であり、１秒間に何回画面の更新が行われるかを示している。すなわち、画面の更新のための一連の動作が、１秒間に何回繰り返されるかということになる。
【００４８】
グラフィック画面を構成する画像が多いと、アプリケーションティックが例えば６０ｆｐｓと指定されたとしても、１秒間に６０回もグラフィック画面を更新することはパフォーマンス的に不可能な場合がある。そこで、アドバンスドアプリケーションマネージャ５４は、アプリケーションティック毎に常に処理を行うのではなく、ティックベースディバイザーという属性で指定されたレートに従って間引かれたアプリケーションティックに同期して一連の処理を行っている。
【００４９】
図５中の（ｂ）に示されるように、例えば、ティックベースが“６０”であると共にティックベースディバイザーが“４”である場合、アプリケーションティックは１秒間に６０回刻まれる。アプリケーションティックの４個中の１個が、周期処理の開始タイミングとされる。したがって、アドバンスドアプリケーションマネージャ５４は、一連の処理を１秒間に１５回の周期にて繰り返す。
【００５０】
図５中の（ａ）に示された例では、各アプリケーションティックにて、アプリケーションティックハンドラ（Application Tick Handler）が実行される。ただし、アドバンスドアプリケーションマネージャ５４は、ティックベースディバイザーで指定された数のティックにつき処理を１回行うことになっている。したがって、アドバンスドアプリケーションマネージャ５４は、アプリケーションクロックをティックベースディバイザーで割った余りが“０”のときのみ、実処理を行う。
【００５１】
アドバンスドアプリケーションマネージャ５４での１周期分の処理は、ＥＣＭＡスクリプトのイベント処理やマークアップの評価、スケジューリングイベントの処理、及び、次のグラフィック画面を描画するレンダリングの処理等で構成されている。レンダリングの処理の中では、グラフィクプレーンが透明色で塗りつぶされてクリアされた後、ｚ順序（zOrder）の小さいアプリケーションのグラフィックから順番に重ね描きされる。これらのレンダリング処理は、アドバンスドアプリケーションマネージャ５４の指示の下、実処理は、プレゼンテーションエンジン６０が行う。これらの処理が全て完了すると、完成したグラフィックプレーンをＡＶレンダラー８０に送出し、出力画面に反映させる。
【００５２】
図６に、複数のアドバンスドアプリケーションによる画像描画の例を示す。ここでは、上述したように、ｚ順序が小さいアプリケーションのうちｚインデックス（zIndex）が小さいエレメントから順に重ね描きされる。すなわち、“星”の画像“star.png”を描画するためのエレメント、“月”の画像“moon.png”を描画するためのエレメント、“太陽”の画像“sun.png”を描画するためのエレメントの順に処理が実行される。この一連の処理により、グラフィックプレーンには、“星”の画像、“月”の画像、及び“太陽”の画像が、下から“星”の画像、“月”の画像、“太陽”の画像の順に重ね描きされる。
【００５３】
ここで、本実施形態における各モジュール（アドバンスドアプリケーションプレゼンテーションエンジン６１、グラフィックデコーダ６２、ピクセルバッファ６３、サーフェスマネージャ６４、フォントレンダリングシステムラッパー６５、及びフォントレンダリングシステム６６）の構成を説明する前に、プレゼンテーションエンジン６０の標準的な構成を図１７及び図１８を参照して説明する。
【００５４】
アドバンスドアプリケーションプレゼンテーションエンジン１００は、サウンドデコーダ（Sound Decoder）１０１、グラフィックデコーダ１０２、及びレイアウトマネージャ１０３を有して構成される。アドバンスドアプリケーションプレゼンテーションエンジン１００は、ナビゲーションマネージャ５０からの指示に従い、様々な形式（例えば、ＰＮＧ（Portable Network Graphics）、ＭＮＧ（Multiple-Image Network Graphics）、又はＪＰＥＧ（Joint Photographic Experts Group）等）の画像をデータキャッシュ４０から読み出してデコードし、グラフィックプレーンに最終的な出力画像を作成してＡＶレンダラー８０に出力するモジュールである。アドバンスドアプリケーションプレゼンテーションエンジン１００は、データキャッシュ４０から読み出したＷＡＶファイルをＬＰＣＭ（Linear Pulse Code Modulation）データに変換し、ＡＶレンダラー８０に出力するモジュールでもある。
【００５５】
グラフィックデコーダ１０２は、上述した形式の画像をデコードする処理と、デコード処理済み画像をピクセルバッファ１０４に登録又は削除する処理とを行う。
【００５６】
レイアウトマネージャ１０３は、グラフィックプレーン上に最終的な表示画像を構築する。このため、レイアウトマネージャ１０３は、アドバンスドアプリケーションマネージャ５４から送れたレイアウト情報に従って、ピクセルバッファ１０４内に登録されたデコード処理済みの画像を読み込み、描画する。レイアウトマネージャ１０３は、フォントレンダリングシステム１０５に文字フォントの描画指示を送る。
【００５７】
図１７及び図１８に示された、標準的な構成のアドバンスドコントロールプレーヤは、通常、一つのＣＰＵが組込プログラムに基づいた処理を実行することにより、機能的に実現される。これに対して、本実施形態に係るアドバンスドコントロールプレーヤＡＣＰは、上述したように、第１ＣＰＵ１及び第２ＣＰＵ２が組込プログラムに基づいた処理を実行することにより、機能的に実現される。このため、本実施形態では、第１ＣＰＵ１により実現される機能と第２ＣＰＵ２により実現される機能とを異ならせている。
【００５８】
第１ＣＰＵ１は、ナビゲーションマネージャ５０の処理とプレゼンテーションエンジン６０の一部の処理とを担当する。第２ＣＰＵ２は、データアクセスマネージャ３０の処理とデータキャッシュ４０の処理とＡＶレンダラー８０の処理とプレゼンテーションエンジン６０の一部の処理とを担当する。ここでは、Ｉ／Ｏアクセスを行うソフトウェアの下位層を第２ＣＰＵ２が集約して実行すると共に第１ＣＰＵ１と第２ＣＰＵ２との間での通信の最適化等が図れるように、アドバンスドコントロールプレーヤの機能を分割している。
【００５９】
アドバンスドコントロールプレーヤの機能の分割を最適に行うために、本実施形態におけるアドバンスドコントロールプレーヤＡＣＰは、標準的な構成におけるプレゼンテーションエンジン６０内のグラフィックデコーダ６２、ピクセルバッファ６３、及びフォントレンダリングシステム６６の各機能を分割して、第１ＣＰＵ１と第２ＣＰＵ２とで分担処理するように構成されている。詳細を、図４に示す。
【００６０】
図４に示されるように、第１ＣＰＵ１は、アドバンスドアプリケーションプレゼンテーションエンジン６１、ピクセルバッファ６３、フォントレンダリングシステムラッパー６５、及びアドバンスドサブタイトルプレーヤ６７としての処理を実行する。第２ＣＰＵ２は、グラフィックデコーダ６２、サーフェスマネージャ６４、フォントレンダリングシステム６６としての処理を実行する。アドバンスドアプリケーションプレゼンテーションエンジン６１は、レイアウトマネージャ（Layout Manager）７１及びグラフィックデコーダラッパー（Graphic Decoder Wrapper）７２を有して構成されている。したがって、第１ＣＰＵ１は、レイアウトマネージャ７１及びグラフィックデコーダラッパー７２としての処理も実行する。
【００６１】
図４に示された構成では、原則として、サーフェスの実体は、第２ＣＰＵ２側でのみ使用されている。第１ＣＰＵ１側では、サーフェスの実体の代わりに、第２ＣＰＵ２側にて実現されるサーフェスマネージャ６４が各サーフェスに付与した識別子（ＩＤ）が使用される。ここで、サーフェスとは、画像等のビットマップを格納するためのメモリ領域のことをいう。
【００６２】
ビットマップを扱う場合、グラフィックデコーダ６２は、サーフェスマネージャ６４に、幅と高さを指定してサーフェスの作成を要求する。サーフェスマネージャ６４は、サーフェスの作成要求を受けて、自らが管理しているメモリに、指定されたサイズの画像を格納するための領域を確保する。サーフェスマネージャ６４は、画像を格納する領域を確保すると、当該領域に固有のＩＤを付与し、このＩＤをグラフィックデコーダ６２に送り返す。グラフィックデコーダ６２は、サーフェスマネージャ６４から送り返されたＩＤをグラフィックデコーダラッパー７２に送る。これにより、第１ＣＰＵ１側にて、サーフェスに付与したＩＤが使用可能となる。
【００６３】
第１ＣＰＵ１側では、ビットマップ自体が直接参照されることはなく、ビットマップの代わりにＩＤが使用される。第１ＣＰＵ１から第２ＣＰＵ２へは、サーフェスに付与したＩＤに基づいて描画指示が出される。このため、第２ＣＰＵ２側にて実現されるグラフィックデコーダ６２やグラフィックレンダリングエンジン８１等は、必要に応じて、サーフェスマネージャ６４に描画指示が出されたＩＤを問い合わせ、当該ＩＤが示すサーフェスの実体のアドレス等を取得する。
【００６４】
続いて、図７を参照して、ピクセルバッファ６３、グラフィックデコーダラッパー７２、グラフィックデコーダ６２及びサーフェスマネージャ６４について、更に説明する。
【００６５】
ピクセルバッファ６３は、グラフィックデコーダ６２が画像をデコードした際、同じ画像を次回からデコードせずに使い回せるようにデコードの結果を保管するモジュールである。ピクセルバッファ６３は、デコードの結果として、後述するキーと、サーフェスに付与したＩＤとを関連付けて、データベース（キーとＩＤとの対応表）に登録する。ピクセルバッファ６３は、フォントレンダリングシステム６６が文字フォントをデコードした際、同じ文字フォントを次回からデコードせずに使い回せるようにデコードの結果を保管するモジュールでもある。
【００６６】
グラフィックデコーダラッパー７２は、画像のデコード指示を受けると、画像ファイルのＵＲＩ（ファイル名）からキーを作成し、ピクセルバッファ６３に該当するキーが登録されているか否かをチェックする。ＵＲＩは、Uniform Resource Identifierの略であり、ＤＶＤ規格に従った形式でのパス情報が付いたファイル名である。ＨＤ−ＤＶＤコンテンツ内の各リソースは基本的にこのＵＲＩで指定される。
【００６７】
ピクセルバッファ６３は、対応表内に同じキーがあった場合には、対応するサーフェスのＩＤをグラフィックデコーダラッパー７２に返す。ピクセルバッファ６３の対応表に指定されたキーが登録されていなかった場合、グラフィックデコーダラッパー７２は、グラフィックデコーダ６２にデコード処理の指示を送る。
【００６８】
グラフィックデコーダ６２は、画像のサイズと、デコードした画像を格納するサーフェスのＩＤをグラフィックデコーダラッパー７２に返す。グラフィックデコーダラッパー７２は、画像のサイズ及びサーフェスのＩＤをキーとともにピクセルバッファ６３に送る。ピクセルバッファ６３は、送られたサーフェスのＩＤとキーとを対応表に登録する。
【００６９】
グラフィックデコーダ６２からグラフィックデコーダラッパー７２に返されるサーフェスのＩＤは、グラフィックデコーダ６２からのサーフェスの作成要求に基づいて、サーフェスマネージャ６４が作成したサーフェスに付与されたＩＤである。サーフェスマネージャ６４は、図７に示されるように、サーフェスのＩＤと当該サーフェスが存在する実際のメモリのアドレスとを関連付けて登録したデータベース（ＩＤとアドレスとの管理表）を有している。サーフェスマネージャ６４は、この管理表により、各サーフェスの領域を管理している。
【００７０】
次に、図８を参照して、サーフェスマネージャ６４の変形例を説明する。ここでは、第２ＣＰＵ２側にて実現されるグラフィックデコーダ６２の非同期動作化により、第１ＣＰＵ１側にて実現されるプレゼンテーションエンジン６０等がグラフィックデコーダ６２の実際のデコード処理の完了を待つことなく処理を進めていくために必要な構成を説明する。
【００７１】
サーフェスマネージャ６４は、サーフェス上での画像のデコード処理の進捗状態に関する情報を保有している。サーフェスマネージャ６４は、管理表に、デコード処理の進捗状態に関する情報を、サーフェスのＩＤ及び当該サーフェスが存在する実際のメモリのアドレスに関連付けて登録する。これにより、第２ＣＰＵ２側では、サーフェスのＩＤに基づいて、当該サーフェス上の画像が、デコード処理中なのか、あるいはデコード処理が完了して描画に使用できるのかを判断することができる。
【００７２】
上述したように、サーフェスマネージャ６４がデコード処理の進捗状態に関する情報を保有することが、グラフィックデコーダ６２の非同期動作を実現するための鍵となる。サーフェスマネージャ６４がデコード処理の進捗状態に関する情報を保有していない場合、グラフィックデコーダラッパー７２は、グラフィックデコーダ６２での実際のデコード処理が完了するまで、当該デコード処理が完了したと判断できない。しかしながら、サーフェスマネージャ６４がデコード処理の進捗状態に関する情報を保有している場合、グラフィックデコーダラッパー７２は、グラフィックデコーダ６２での実際のデコード処理の完了を待つことなく、当該デコード処理が完了したと判断する。これにより、第１ＣＰＵ１側では、グラフィックデコーダ６２の実際のデコーダ処理が完了する前に、次の処理を進めることができる。
【００７３】
再び、図３及び図４を参照する。第１ＣＰＵ１はフォントレンダリングシステムラッパー６５としての処理を実行し、第２ＣＰＵ２はフォントレンダリングシステム６６としての処理を実行する。フォントレンダリングシステムラッパー６５は、文字フォントのラスタライズ指示を受け付ける窓口として機能するモジュールである。フォントレンダリングシステムラッパー６５は、ラスタライズ指示を、フォントレンダリングシステム６６に送る。フォントレンダリングシステム６６は、フォントレンダリングシステムラッパー６５からのラスタライズ指示を受けて、文字フォントをラスタライズするモジュールである。本実施形態では、文字フォントのラスタライズは、同期処理での実装としている。
【００７４】
続いて、図９を参照して、グラフィックデコーダ６２の非同期動作に関し、ピクセルバッファ６３に未登録の画像のデコード指示がプレゼンテーションエンジン６０からグラフィックデコーダラッパー７２に送られた場合の各モジュールの動作を説明する。
【００７５】
プレゼンテーションエンジン６０（アドバンスドアプリケーションマネージャ５４）は、画像のＵＲＩを指定してグラフィックデコーダラッパー７２にデコード指示を送る。グラフィックデコーダラッパー７２は、プレゼンテーションエンジン６０からデコード指示を受けると、まず、ピクセルバッファ６３に指定されたＵＲＩの画像が登録されているか否かを問い合わせる。問い合わせの結果、指定されたＵＲＩの画像がピクセルバッファ６３に登録されていないと認識すると、グラフィックデコーダラッパー７２は、グラフィックデコーダ６２に指定されたＵＲＩの画像のデコード指示を送る。
【００７６】
グラフィックデコーダ６２は、グラフィックデコーダラッパー７２からデコード指示を受けると、指定されたＵＲＩの符号化された画像データをデータキャッシュ４０から取得する。そして、グラフィックデコーダ６２は、符号化された画像データのヘッダをデコードし、指定されたＵＲＩの画像のサイズを取得する。グラフィックデコーダ６２は、画像のサイズを取得すると、取得したサイズのサーフェスの作成要求をサーフェスマネージャ６４に送る。
【００７７】
サーフェスマネージャ６４は、グラフィックデコーダ６２からサーフェスの作成要求を受けると、要求されたサイズのサーフェスを作成する。このとき、サーフェスマネージャ６４は、作成したサーフェスを識別するためのＩＤとアドレスとを管理表に登録し、サーフェスのＩＤをグラフィックデコーダ６２に返す。
【００７８】
グラフィックデコーダ６２は、作成されたサーフェスのＩＤをサーフェスマネージャ６４から受け取ると、実際にデコード作業を行うデコードスレッド７４にデコードに必要な情報とデコード指示を送る。実際には、グラフィックデコーダ６２は、デコードスレッド７４のコマンドキュー７３にデコード指示を登録する。デコードスレッド７４は、コマンドキュー７３に登録されたデコード指示を順次実行する。これらにより、グラフィックデコーダ６２は符号化された画像データをデコードし、サーフェスマネージャ６４は対応するサーフェスにデコードされた画像データを格納する。
【００７９】
また、グラフィックデコーダ６２は、デコード指示の受付の結果をグラフィックデコーダラッパー７２に返す。デコード指示の受付が成功した場合、グラフィックデコーダ６２は、上述した受付の結果と共に、画像のサイズやデコードされた画像が格納されるサーフェスのＩＤをグラフィックデコーダラッパー７２に返す。
【００８０】
グラフィックデコーダラッパー７２は、グラフィックデコーダ６２から受け取った画像サイズやサーフェスＩＤ等の情報をピクセルバッファ６３に送る。ピクセルバッファ６３は、グラフィックデコーダラッパー７２から送られた情報を、ＵＲＩをキーとして対応表に登録する。
【００８１】
以上で、デコードの一連の処理は完了し、グラフィックデコーダラッパー７２は、デコードの完了として処理を終了し、プレゼンテーションエンジン６０にデコード完了の情報を送る。グラフィックデコーダ６２内にあるデコードスレッド７４がデコード処理を実際に完了するのは、グラフィックデコーダラッパー７２が処理を終了した後になる。しかしながら、プレゼンテーションエンジン６０は、デコード処理が完了したものとして、次の処理に進む。
【００８２】
次に、図１０を参照して、デコード済みの画像をグラフィックプレーンに描画する処理について説明する。
【００８３】
レイアウトマネージャ７１は、ティックベースとティックベースディバイザーで指定された周期毎に、アドバンスドコンテンツのマークアップにおけるｚ順序が小さい順にグラフィックプレーンに描画し、最終的なグラフィック画面を構築する。図１０は、レイアウトマネージャ７１がこのグラフィック画面の構築をおこなう一連の処理において、１枚の画像を描画する処理の流れを図示したものである。ここでは、上位側は、グラフィックをＵＲＩで処理しているため、描画指示もＵＲＩを指定して行う。
【００８４】
アドバンスドアプリケーションマネージャ５４は、レイアウトマネージャ７１に描画指示を送る。レイアウトマネージャ７１は、アドバンスドアプリケーションマネージャ５４からの描画指示を受けると、まず、描画指示にて指定されたＵＲＩの画像に対応するサーフェスのＩＤをピクセルバッファ６３に問い合わせる。ピクセルバッファ６３は、対応表を参照し、指定されたＵＲＩの画像に対応するサーフェスのＩＤを読み出し、レイアウトマネージャ７１に返す。これにより、レイアウトマネージャ７１は、指定されたＵＲＩの画像に対応するサーフェスのＩＤを取得する。
【００８５】
レイアウトマネージャ７１は、自らが計算したレイアウト情報から描画すべき座標等を算出し、サーフェスのＩＤを指定してグラフィックレンダリングエンジン８１に描画指示を出す。レイアウトマネージャ７１は、基本的には、グラフィックプレーン上にグラフィック画面を構築する作業のすべてを担っているので、グラフィックプレーンのサーフェスのＩＤはレイアウトマネージャ７１が管理している。
【００８６】
グラフィックレンダリングエンジン８１は、レイアウトマネージャ７１から描画指示を受けると、まず、サーフェスマネージャ６４に、描画指示に含まれる画像のデコード処理の進捗状態を問い合わせる。画像の指定は、サーフェスのＩＤにより行う。サーフェスマネージャ６４は、サーフェスのＩＤに基づいて、デコード処理の進捗状態に関する情報を管理表から読み出し、該情報をグラフィックレンダリングエンジン８１に返す。
【００８７】
グラフィックレンダリングエンジン８１は、サーフェスマネージャ６４からデコード処理の進捗状態に関する情報を受け取り、描画指示に含まれている画像のデコード処理が未完了である場合、この時点でデコード処理が完了するまで待つ。一方、描画指示に含まれている画像のデコード処理が完了している場合、グラフィックレンダリングエンジン８１は、サーフェスのＩＤに基づいて、描画指示に含まれている画像に対応するサーフェスのアドレスを問い合わせる。サーフェスマネージャ６４は、サーフェスのＩＤに基づいて、サーフェスのアドレスを管理表から読み出し、読み出したサーフェスのアドレスをグラフィックレンダリングエンジン８１に返す。これにより、グラフィックレンダリングエンジン８１は、描画指示に含まれている画像が格納されたサーフェスのアドレスを取得する。
【００８８】
グラフィックレンダリングエンジン８１は、サーフェスのアドレスを取得すると、グラフィックドライバに実際の描画指示を出す。グラフィックドライバ８３は、グラフィックコントローラ６のレジスタを操作し、ハードウェアに描画指示を出す最下位層のモジュールである。グラフィックドライバ８３は、第２ＣＰＵ２により、その処理が実行される。グラフィックレンダリングエンジン８１は、グラフィックドライバ８３に描画指示を出して、実際に描画処理が完了すると、描画の実行結果をレイアウトマネージャ７１に返す。
【００８９】
以上が、レイアウトマネージャ７１がグラフィックプレーンに１枚の画像を描画するという処理の一連の流れである。これにより、グラフィックデコーダ６２のデコード処理が非同期化された場合において、第１ＣＰＵ１が処理を先に進めた場合でも、第２ＣＰＵ２が描画の段階でデコードの完了を待ち合わせ、互いの処理のつじつまが合うようになる。
【００９０】
すなわち、図１１に示されるように、第２ＣＰＵ側にて実現されるグラフィックデコーダ６２でのデコード処理が１周期内に完了しなくても、第１ＣＰＵ１側にて実現されるナビゲーションエンジン（アドバンスドアプリケーションマネージャ５４）及びプレゼンテーションエンジン６０がこの影響を受けずに周期動作を継続する。アドバンスドコンテンツでは、マークアップ言語による記述の中の“style:display”という属性で、画像等のデコードタイミングを表示タイミングとは独立して指定できるようになっている。表示タイミングは、マークアップ言語による記述の中の“style:visibility”にて指定する。図１１に示された例では、所定の１つの画像に絞って、当該画像に関する各種処理のタイミングを図示している。
【００９１】
図１１に示された例では、時刻（アプリケーションクロック）ｎ＋５で表示を始めるということが指定されている。“style:display”では、時刻（アプリケーションクロック）ｎ＋２にてデコードを完了し、表示で使えるようにするということが指定されている。
【００９２】
第１ＣＰＵ１側にて実現されるプレゼンテーションエンジン６０（アドバンスドアプリケーションプレゼンテーションエンジン６１）は、時刻（アプリケーションクロック）ｎ＋１で始まる処理において、第２ＣＰＵ側にて実現されるグラフィックデコーダ６２にデコード指示を送る。グラフィックデコーダ６２は、デコード指示を受けてデコード処理を実行する。このとき、本来なら時刻（アプリケーションクロック）ｎ＋２で完了しなくてはいけないデコード処理が、時刻（アプリケーションクロック）ｎ＋３以降までかかっており、デコード処理の遅延が発生している。しかしながら、デコード処理は、上述したように、非同期動作とされているため、第１ＣＰＵ１側にて実現されるナビゲーションエンジン及びプレゼンテーションエンジン６０は、デコード処理の遅延の影響を受けることなく、周期的な処理を続行することができる。
【００９３】
第１ＣＰＵ１側にて実現されるプレゼンテーションエンジン６０（アドバンスドアプリケーションプレゼンテーションエンジン６１のレイアウトマネージャ７１）は、時刻（アプリケーションクロック）ｎ＋４で始まる処理において、描画用グラフィックプレーンへの描画指示をグラフィックレンダリングエンジン８１に送る。グラフィックレンダリングエンジン８１は、この描画指示を受けて、描画用グラフィックプレーンへの描画のための処理（例えば、BitBlt等）を実行する。描画用グラフィックプレーンへの描画が完了すると、時刻（アプリケーションクロック）ｎ＋５において、描画用グラフィックプレーンを表示用グラフィックプレーンとして切り換える。
【００９４】
また、第１ＣＰＵ１側にて実現されるプレゼンテーションエンジン６０（アドバンスドアプリケーションプレゼンテーションエンジン６１のレイアウトマネージャ７１）は、時刻（アプリケーションクロック）ｎ＋５で始まる処理において、描画用グラフィックプレーンへの描画指示をグラフィックレンダリングエンジン８１に送る。グラフィックレンダリングエンジン８１は、この描画指示を受けて、描画用グラフィックプレーンへの描画のための処理を実行する。描画用グラフィックプレーンへの描画が完了すると、時刻（アプリケーションクロック）ｎ＋６において、描画用グラフィックプレーンを表示用グラフィックプレーンとして切り換える。
【００９５】
以上の処理により、マークアップ言語による記述の中の“style:visibility”にて指定された期間、画像が表示されることとなる。図１１に示された例では、アドバンスコンテンツの記述により、画像のデコード処理等によって表示が遅れないように表示する時刻より十分早いタイミングでデコード処理を開始させ、アドバンスドコントロールプレーヤＡＣＰの処理能力のバラツキが影響することなく任意のタイミングで画像の表示ができる。
【００９６】
ただし、図１２に示されるように、アドバンスドコンテンツでは、“style:display”にて指定されたデコード処理を完了させる時刻と、“style:visibility”にて指定された表示を開始する時刻とがほぼ同じであると、グラフィックレンダリングエンジン８１は、グラフィックデコーダ６２でのデコード処理が完了するまで、描画用グラフィックプレーンへの描画のための処理を行うことができない。したがって、グラフィックデコーダ６２のデコード処理が非同期化された場合でも、デコード処理時間による表示タイミングの遅延は避けられない。
【００９７】
次に、図１３を参照して、第１ＣＰＵ１と第２ＣＰＵ２との間の通信回数を減らすことにより、更なる性能改善を図る例を説明する。
【００９８】
アドバンスドアプリケーションマネージャ５４は、ティックベースとティックベースディバイザーで決まる周期を単位として、マークアップ言語で記述されたイベント処理、スクリプト言語で記述されたイベント処理、又は新たなグラフィック画面の描画等を行う。アドバンスドアプリケーションマネージャ５４は、レイアウトマネージャ７１を制御することにより、最終のグラフィック画面の描画を行う。グラフィックプレーンに画像を一つ一つ実際に描画して最終的なグラフィック画面を構築するのは、上述したように、レイアウトマネージャ７１が行う。グラフィック描画のための実処理（例えば、BitBlt等）は、レイアウトマネージャ７１の指示の下、同じく上述したように、グラフィックレンダリングエンジン８１が行う。
【００９９】
図１０を参照した上記説明では、レイアウトマネージャ７１が、グラフィックレンダリングエンジン８１に指示を出す際に、各画像の描画一つ一つについて、描画指示を個別に繰り返すことにより、最終的なグラフィック画面が構築される。
【０１００】
この場合、レイアウトマネージャ７１からグラフィックレンダリングエンジン８１に指示を出すと、第１ＣＰＵ１と第２ＣＰＵ２との間で通信を行うこととなるため、１回の描画指示を出す度に、第１ＣＰＵ１と第２ＣＰＵ２との間での通信時間が必要となる。このため、グラフィック画面を構築する際の１回１回の描画指示を個別に行うと、第１ＣＰＵ１と第２ＣＰＵ２との間での通信回数が膨大となり、時間がかかってしまう。
【０１０１】
そこで、第１ＣＰＵ１と第２ＣＰＵ２との間の通信回数を減らすために、アドバンスアプリケーションマネージャからグラフィックレンダリングエンジン８１への指示の送り方を変更する。すなわち、１フレーム分のグラフィック画面を構築する、アドバンスアプリケーションマネージャの１周分の処理の間に発行された描画指示を、一度もしくは数回にまとめてグラフィックレンダリングエンジン８１に出す。
【０１０２】
例えば、第１ＣＰＵ１及び第２ＣＰＵ２の両者からアクセスできる、データ受け渡し用のメモリ領域を確保する。そして、第１ＣＰＵ１は、図１３中の（ａ）に示されるように、このメモリ領域に、アドバンスアプリケーションマネージャの１周分の指示をコマンドとして並べて格納する。１周分の描画命令をすべて格納し終えた時点で、第１ＣＰＵ１は、１周分の描画命令を格納し終えた旨を第２ＣＰＵ２に割り込みで知らせる。第２ＣＰＵ２は、１周分の描画命令を格納し終えた旨が知らされると、上記メモリ領域にアクセスして、格納された１周分の描画命令を読み出す。図１３中の（ｂ）に、各コードに対するコマンドの種類を示す。
【０１０３】
ところで、アドバンスドコンテンツのマークアップには、“style:flip”というスタイル指定をおこなうことで、図１４に示されるように、画像を反転表示する機能がある。しかしながら、グラフィックコントローラが２次元の描画機能しか有していないでは、画像を反転させながら描画する機能をサポートしていないことが多い。この場合、メモリ領域等にソフト的に反転した画像を一時的に生成してから、グラフィック画面の描画を行うことになるが、描画処理にかなりの時間が必要となる。図１４中の（ａ）には、反転していない画像が示されている。図１４中の（ｂ）には、水平方向に反転した画像が示されている。図１４中の（ｃ）には、垂直方向に反転した画像が示されている。図１４中の（ｄ）には、水平方向及び垂直方向に反転した画像が示されている。
【０１０４】
そこで、反転した画像の描画の指示がきた場合、１回目はソフト的な反転処理を行うが、２回目以降はこのソフト的な反転処理を行わなくてもよいように、サーフェスマネージャ６４が反転画像をキャッシュする。この場合、図１５に示されるように、サーフェスマネージャ６４は、反転画像をキャッシュする反転画像用のキャッシュ領域を有し、このキャッシュ領域に反転画像をキャッシュするためのサーフェスを作成する。そして、サーフェスマネージャ６４は、上述した管理表に、デコード処理の進捗状態に関する情報だけでなく、水平方向で反転した画像（水平反転画像）や垂直方向で反転した画像（垂直反転画像）等の各サーフェスのＩＤを登録する。管理表における、各反転画像のサーフェスのＩＤを登録する欄は、最初にサーフェスを割り当てた時点では、“ＮＵＬＬ”になっている。
【０１０５】
例えば、グラフィックレンダリングエンジン８１から“サーフェス１”のＩＤが画像の垂直方向反転の指定付きで要求されると、サーフェスマネージャ６４は、サーフェスの管理表を参照して、“サーフェス１”の行に垂直反転画像のサーフェス（ここでは、“サーフェス３”）のＩＤが既に登録されているか否かチェックする。垂直反転画像の“サーフェス３”のＩＤが登録されていれば、“サーフェス３”のＩＤに基づいて、“サーフェス３”の実体のアドレスを読み出す。そして、サーフェスマネージャ６４は、読み出した“サーフェス３”の実体のアドレスをグラフィックレンダリングエンジン８１に返す。
【０１０６】
“サーフェス１”の行の垂直反転画像の欄が“ＮＵＬＬ”である場合は、サーフェスマネージャ６４は、反転画像用のキャッシュ領域に垂直反転画像を格納するための“サーフェス３”を確保する。そして、サーフェスマネージャ６４は、確保した“サーフェス３”に、“サーフェス１”の画像を垂直反転させた画像を描画する。次に、サーフェスマネージャ６４は、“サーフェス１”の垂直反転画像が格納されたキャッシャ上の“サーフェス３”の実体のアドレスを、“サーフェス３”のＩＤと関連付けて管理表に登録する。その後、サーフェスマネージャ６４は、登録した“サーフェス３”の実体のアドレスをグラフィックレンダリングエンジン８１に返す。
【０１０７】
反転画像用のキャッシュ領域に十分な空き容量が存在しない場合には、サーフェスマネージャ６４は、キャッシュ領域上の他の反転画像が描画されているサーフェスを開放し、キャッシュ領域に空きをつくる。このとき、サーフェスマネージャ６４は、開放されたサーフェスに関する情報（サーフェスのＩＤ、アドレス、及びデコード処理の状態等）を管理表から削除する。この場合、マークアップ上で画像反転の指定が付いた画像が少ない場合、反転画像用のキャッシュ領域のサーフェスに一度置かれた反転画像は開放されない。したがって、同じ画像反転の指定が付いた画像が要求されるまで、反転画像は反転画像用のキャッシュ領域に残るため、画像の反転処理は最初の1回ですむ。この結果、“style:flip”の画像描画を効率化することができる。
【０１０８】
図１７及び図１８に示された、標準的な構成のアドバンスドコントロールプレーヤでは、図１９に示されるように、出力画面の生成が一つのＣＰＵの処理に基づいて行われる。すなわち、一つのＣＰＵが処理を実行することにより、プレゼンテーションエンジン６０においてビデオプレーン、サブビデオプレーン、サブピクチャプレーン、及びグラフィックプレーンが作成され、ＡＶレンダラー８０（グラフィックレンダリングエンジン８１）においてカーソルプレーンが作成され、ＡＶレンダラー８０において、これらのプレーンが合成されて出力画面が生成される。
【０１０９】
これに対して、図３及び図４に示された、アドバンスドコントロールプレーヤＡＣＰでは、図１６に示されるように、出力画面の生成が第１ＣＰＵ１と第２ＣＰＵ２との処理に基づいて行われる。すなわち、第１ＣＰＵ１が処理を実行することにより、プレゼンテーションエンジン６０のレイアウトマネージャ７１によりピクセルバッファ６３に登録されたサーフェスのＩＤに基づいてグラフィックプレーンへの描画が指示される。そして、第２ＣＰＵ２が処理を実行することにより、グラフィックレンダリングエンジン８１により描画指示されたサーフェスのＩＤに対応する画像がサーフェスマネージャ６４から読み出され、グラフィックプレーンが作成される。このように、グラフィックプレーンを作成するための指示を第１ＣＰＵ１が行い、グラフィックプレーンを作成するための実作業を第２ＣＰＵ２が行う。
【０１１０】
プレゼンテーションエンジン６０においてビデオプレーン、サブビデオプレーン、サブピクチャプレーン、及びカーソルプレーンは、第２ＣＰＵ２が処理を実行することにより機能する各モジュールにより生成される。各プレーンを合成した出力画面は、第２ＣＰＵ２が処理を実行することにより機能するＡＶレンダラー８０（グラフィックレンダリングエンジン８１）により生成される。
【０１１１】
本実施形態では、上述したように、第１ＣＰＵ１と第２ＣＰＵ２とにおいて、グラフッィクプレーンへの描画のための各種処理が分担されているので、アドバンスコンテンツを再生する場合でも、グラフィックの描画パフォーマンスが低下するのを防ぐことができる。
【０１１２】
また、第１ＣＰＵ１及び第２ＣＰＵ２には、高性能なＣＰＵを用いるのではなく、演算処理能力が比較的低いＣＰＵを用いることも可能である。これにより、安価なシステムを実現することが可能である。
【０１１３】
以上、本発明の好適な実施形態について説明してきたが、本発明は必ずしも上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で様々な変更が可能である。例えば、本発明は、実施形態として示したＨＤ−ＤＶＤビデオプレーヤのみならず、アドバンスコンテンツを再生するための情報再生機能を有した機器に適用することができる。
【図面の簡単な説明】
【０１１４】
【図１】ＨＤ−ＤＶＤビデオプレーヤのハードウェア構成を示す概略ブロック図である。
【図２】情報記録媒体内に記録されるデータ構造例の説明図である。
【図３】アドバンスドコントロールプレーヤの構成を説明するブロック図である。
【図４】データキャッシュ、ナビゲーションマネージャ、プレゼンテーションエンジン、及びＡＶレンダラーの構成を説明するブロック図である。
【図５】アドバンスドコンテンツのグラフィック画面構築処理を説明するため図である。
【図６】複数のアドバンスドアプリケーションによる画像描画の例を示す図である。
【図７】ピクセルバッファとサーフェスマネージャとの動作の一例を説明するための図である。
【図８】ピクセルバッファとサーフェスマネージャとの動作の一例を説明するための図である。
【図９】デコード指示が出されたときの、グラフィックデコーダラッパー、ピクセルバッファ、グラフィックデコーダ及びサーフェスマネージャの動作を説明するための図である。
【図１０】描画指示が出されたときの、レイアウトマネージャ、ピクセルバッファ、グラフィックレンダリングエンジン及びサーフェスマネージャの動作を説明するための図である。
【図１１】デコード処理及びグラフィックプレーンへの描画処理を説明するための図である。
【図１２】デコード処理及びグラフィックプレーンへの描画処理を説明するための図である。
【図１３】メモリ領域へのコマンドの格納状態を説明する図である。
【図１４】スタイル指定“style:flip”を説明するための図である。
【図１５】ピクセルバッファとサーフェスマネージャとの動作の一例を説明するための図である。
【図１６】出力画面の生成を説明するための図である。
【図１７】アドバンスドコントロールプレーヤの標準的な構成を説明するブロック図である。
【図１８】プレゼンテーションエンジンの標準的な構成を説明するブロック図である。
【図１９】標準的な構成を有するアドバンスドコントロールプレーヤにおける出力画面の生成を説明するための図である。
【符号の説明】
【０１１５】
１…第１ＣＰＵ、２…第２ＣＰＵ、４０…データキャッシュ、５０…ナビゲーションマネージャ、５４…アドバンスドアプリケーションマネージャ、６０…プレゼンテーションエンジン、６１…アドバンスドアプリケーションプレゼンテーションエンジン、６２…グラフィックデコーダ、６３…ピクセルバッファ、６４…サーフェスマネージャ、６５…フォントレンダリングシステムラッパー、６６…フォントレンダリングシステム、７０…デコーダエンジン、７１…レイアウトマネージャ、７２…グラフィックデコーダラッパー、８０…ＡＶレンダラー、８１…グラフィックレンダリングエンジン、１００…アドバンスドアプリケーションプレゼンテーションエンジン、１０２…グラフィックデコーダ、１０３…レイアウトマネージャ、１０４…ピクセルバッファ、１０５…フォントレンダリングシステム、ＡＣＰ…アドバンスドコントロールプレーヤ。
【図１】
2008108296.tif 000003
【図２】
2008108296.tif 000004
【図３】
2008108296.tif 000005
【図４】
2008108296.tif 000006
【図５】
2008108296.tif 000007
【図６】
2008108296.tif 000008
【図７】
2008108296.tif 000009
【図８】
2008108296.tif 000010
【図９】
2008108296.tif 000011
【図１０】
2008108296.tif 000012
【図１１】
2008108296.tif 000013
【図１２】
2008108296.tif 000014
【図１３】
2008108296.tif 000015
【図１４】
2008108296.tif 000016
【図１５】
2008108296.tif 000017
【図１６】
2008108296.tif 000018
【図１７】
2008108296.tif 000019
【図１８】
2008108296.tif 000020
【図１９】
2008108296.tif 000021