(57)【要約】【課題】デコード完了待ちによる画面構成の遅延を抑制する技術を提供すること。【解決手段】情報再生装置は、グラフィックオブジェクトをデコードするデコード手段と、デコードされたグラフィックオブジェクトを記憶する記憶手段と、複数のグラフィックオブジェクトのレイアウト情報に基づき、これら複数のグラフィックオブジェクトをグラフィックプレーン上の所定位置へ所定順序で描画するグラフィック画面構築処理を実行するとともに、このグラフィック画面構築処理においてデコードが間に合わないグラフィックオブジェクトの描画を後回しにする描画順序変更処理を実行するグラフィック画面構築処理手段と、前記グラフィック画面構築処理手段により前記複数のグラフィックオブジェクトが描画された前記グラフィックプレーンを出力する出力手段とを備えている。【選択図】      図２
2009003370.tif 000002
【特許請求の範囲】
【請求項１】
グラフィックオブジェクトをデコードするデコード手段と、
デコードされたグラフィックオブジェクトを記憶する記憶手段と、
複数のグラフィックオブジェクトのレイアウト情報に基づき、これら複数のグラフィックオブジェクトをグラフィックプレーン上の所定位置へ所定順序で描画するグラフィック画像構築処理を実行するとともに、このグラフィック画像構築処理においてデコードが間に合わないグラフィックオブジェクトの描画を後回しにする描画順序変更処理を実行するグラフィック画像構築処理手段と、
前記グラフィック画像構築処理手段により、前記複数のグラフィックオブジェクトが描画された前記グラフィックプレーンを出力する出力手段と、
を備えた情報再生装置。
【請求項２】
前記グラフィック画像構築処理は、複数のグラフィックオブジェクトのレイアウト情報に基づき各グラフィックオブジェクトの重なりを検出し、これら複数のグラフィックオブジェクトのレイアウト情報に基づきデコードされた各グラフィックオブジェクトを順にグラフィックプレーン上へ描画するとともに、前記重なり検出に基づきデコードされた各グラフィックオブジェクト同士の重なり依存の関係を管理する処理であり、
前記描画順序変更処理は、デコードが間に合わないグラフィックオブジェクトの描画を後回しにして、デコード済みで且つ他の後回しになっているグラフィックオブジェクトとの重なり依存が無いグラフィックオブジェクトを先に描画する処理である、
ことを特徴とする請求項１に記載の情報再生装置。
【請求項３】
前記グラフィック画像構築処理は、複数のグラフィックオブジェクトのレイアウト情報に基づき各グラフィックオブジェクト同士の重なり依存関係を検出して管理するとともに、これら複数のグラフィックオブジェクトのレイアウト情報に基づきデコードされた各グラフィックオブジェクトを順にグラフィックプレーン上へ描画する処理であり、
前記描画順序変更処理は、ｍ番目に描画されるべきグラフィックオブジェクトｍのデコードが間に合わない場合、前記グラフィックオブジェクトｍをリストに登録するとともに前記リストに登録されたグラフィックオブジェクトｍの描画を後回しにして、ｍ＋１番目に描画されるべきグラフィックオブジェクトｍ＋１の描画領域を検証し、前記グラフィックオブジェクトｍ＋１がデコード完了オブジェクトであっても、前記リストに登録されているグラフィックオブジェクトｍと重なることが判明した場合には、前記グラフィックオブジェクトｍ＋１もリストに登録するとともに前記リストに登録されたグラフィックオブジェクトｍ＋１の描画も後回しにして、ｍ＋２番目に描画されるべきグラフィックオブジェクトｍ＋２の描画領域を検証し、前記グラフィックオブジェクトｍ＋２がデコード完了オブジェクトであり且つ前記リストに登録されている前記グラフィックオブジェクトｍ及び前記グラフィックオブジェクトｍ＋１の両者と重ならないことが判明した場合には、前記リストに登録されている前記グラフィックオブジェクトｍ及び前記グラフィックオブジェクトｍ＋１よりも先に前記グラフィックオブジェクトｍ＋２を描画する処理である、
ことを特徴とする請求項１に記載の情報再生装置。
【請求項４】
前記グラフィック画像構築処理手段は、ＥＣＭＡスクリプトのドローイングＡＰＩによるドローイングエリアへのドローイメージ生成処理において、ドローイングＡＰＩによる描画処理でソースとして使用する画像のデコードが間に合わない場合に、その描画処理を後回しにするように描画順序最適化をドローイングＡＰＩにも適用することを特徴とする請求項１に記載の情報再生装置。
【請求項５】
前記デコード手段によるデコード処理と、前記グラフィック画像構築処理手段による前記描画処理及び前記描画順序変更処理とは、並行して実行可能であることを特徴とする請求項１に記載の情報再生装置。
【請求項６】
複数のアプリケーションの夫々に含まれるグラフィックオブジェクトをデコードするデコード手段と、
デコードされたグラフィックオブジェクトを記憶する記憶手段と、
各アプリケーションのＺ順序情報及び各アプリケーションに含まれる各グラフィックオブジェクトのＺ順序情報に基づき、各グラフィックオブジェクトをグラフィックプレーン上の所定位置へ所定順序で描画するグラフィック画面構築処理を実行するとともに、このグラフィック画面構築処理においてデコードが間に合わないグラフィックオブジェクトの描画を後回しにする描画順序変更処理を実行するグラフィック画面構築処理手段と、
前記グラフィック画面構築処理手段により前記複数のグラフィックオブジェクトが描画された前記グラフィックプレーンを出力する出力手段と、
を備えた情報再生装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えばHD DVD規格で定義されているアドバンスドコンテンツにおける再生技術に関する。
【背景技術】
【０００２】
近年、高画質及び高機能を有するＤＶＤビデオディスク及びそのディスクを再生するビデオプレーヤの普及が進んでいる。しかしながら、ここ数年、タイトル本編も含めメニュー画面や特典映像等のコンテンツにおいて、より色彩に富んだメニューやインタラクティブ性の向上等、コンテンツ内容の拡充によるユーザヘのより魅力的なコンテンツの提供環境がコンテンツ供給者から望まれている。
【０００３】
そこで、色彩に富んだメニューやインタラクティブ性の高いコンテンツとしてアドバンスコンテンツが発案され、アドバンスコンテンツを有する情報記録媒体や、アドバンスコンテンツを再生する情報再生装置が存在している（例えば、特許文献１参照）。アドバンスコンテンツには、音声、静止画（背景画を含む）アニメーション、文字フォント、動画等が含まれており、これらのアドバンスコンテンツのデータは、符号化された状態で情報記録媒体に格納されている。アドバンスコンテンツを再生する情報再生装置は、アドバンスコンテンツの再生を実現する再生システムモデルとして、アドバンスドコントロールプレーヤ（Advanced Content Player）を含んでいる。アドバンスドコントロールプレーヤは、機能モジュールとして、データアクセスマネージャ（Data Access Manager）、データキャッシュ（Data Cache）、ナビゲーションマネージャ（Navigation Manager）、プレゼンテーションエンジン（Presentation Engine）、ＡＶレンダラー（AV Renderer）等で構成される。
【特許文献１】特開２００７−４８３４８
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記したアドバンスコンテンツの１画面は、例えば複数のオブジェクトにより構成される。即ち、１画面の構成に必要な複数のオブジェクトがデコードされ、これらデコードされた複数のオブジェクトが一つのプレーン上へ描画され、１画面が構成される。なお、複数のオブジェクトは、レイアウト情報に基づき、所定の位置に所定の順序で描画される。このとき、複数のオブジェクトの中に、デコード待ちのオブジェクトが存在すると、描画が一時的に停止し、デコード完了を待ってから描画が再開される。このため、画面構築に遅れが生じる。
【０００５】
本発明の目的は、デコード完了待ちによる画面構築の遅延を抑制する技術を提供することにある。
【課題を解決するための手段】
【０００６】
この発明の一実施形態に係る情報再生装置は、グラフィックオブジェクトをデコードするデコード手段と、デコードされたグラフィックオブジェクトを記憶する記憶手段と、複数のグラフィックオブジェクトのレイアウト情報に基づき、これら複数のグラフィックオブジェクトをグラフィックプレーン上の所定位置へ所定順序で描画するグラフィック画面構築処理を実行するとともに、このグラフィック画面構築処理においてデコードが間に合わないグラフィックオブジェクトの描画を後回しにする描画順序変更処理を実行するグラフィック画面構築処理手段と、前記グラフィック画面構築処理手段により前記複数のグラフィックオブジェクトが描画された前記グラフィックプレーンを出力する出力手段とを備えている。
【発明の効果】
【０００７】
本発明によれば、デコード完了待ちによる画面構築の遅延を抑制する技術を提供できる。
【発明を実施するための最良の形態】
【０００８】
以下、図面を参照し、本発明の実施形態について説明する。
【０００９】
図１は、アドバンスドＨＤビデオタイトルセット（AHDVTS : Advanced High Definition Video Title Set）対応のＨＤ−ＤＶＤビデオプレーヤ（アドバンスドコントロールプレーヤＡＣＰ）の概略構成を示す図である。
【００１０】
アドバンスドコントロールプレーヤＡＣＰは、データアクセスマネージャ３１と、データキャッシュ３５と、ナビゲーションマネージャ２２と、プレゼンテーションエンジン３６と、ＡＶレンダラー４４とを備えている。
【００１１】
データアクセスマネージャ３１は、データキャッシュ３５等からの指示に基づいて、パーシスタントストレージ２８、ネットワークサーバ２９、ＨＤ−ＤＶＤディスク３０等にアクセスしてファイルの読み書き等の操作を行うモジュールである。データアクセスマネージャ３１は、パーシスタントストレージマネージャ（Persistent Storage Manager）３２、ネットワークマネージャ（Network Manager）３３、及びディスクマネージャ（Disk Manager）３４を備えている。
【００１２】
パーシスタントストレージマネージャ３２は、上位モジュールからの指示に基づいて、パーシスタントストレージ（Persistent Storage）２８の内のファイルの読み書きや削除等の操作を行うモジュールである。ネットワークマネージャ３３は、上位モジュールからの指示に基づいて、ネットワークサーバ（Network Server）２９からファイルをダウンロードしたり、逆にファイルをアップロードしたりするモジュールである。ディスクマネージャ３４は、上位モジュールからの指示に基づいて、ＨＤ−ＤＶＤディスク３０に格納されたファイルの読み出しを行うモジュールである。
【００１３】
データキャッシュ３５は、読み出したファイルなどを一時的に格納するバッファであり、データキャッシュ３５には符号化された画像データ等が格納される。データキャッシュ３５の容量は、例えば６４Ｍバイトである。データキャッシュ３５は、ファイルキャッシュ（File Cache）と、ストリーミングバッファ（Streaming Buffer）とを含んで構成される。ファイルキャッシュは、ナビゲーションマネージャ２２又はプレゼンテーションエンジン３６がファイルを読み出す時のキャッシュとして動作する。ストリーミングバッファは、後述するセカンダリビデオプレーヤ（Secondary Video Player）４１がネットワークサーバ２９上のビデオデータをストリーミング再生する際に、ビデオデータをバッファリングするために使用される。
【００１４】
ナビゲーションマネージャ２２は、アドバンスドコンテンツの全体制御、マークアップ言語やスクリプト（Ｓｃｒｉｐｔ）言語（例えば、ＥＣＭＡスクリプト）で記述された内容の再生処理、及びリモコンからの制御情報に対応した処理動作等を行うモジュールである。ナビゲーションマネージャ２２は、ファイルキャッシュマネージャ（File Cache Manager）２４、プレイリストマネージャ（Playlist Manager）２５、パーサー（Parser）２３、アドバンスドアプリケーションマネージャ（Advanced Application Manager）２６、及びユーザーインターフェースエンジン（User Interface Engine）２７を含んで構成される。
【００１５】
ファイルキャッシュマネージャ２４は、プレイリストマネージャ２５又はアドバンスドアプリケーションマネージャ２６からの指示を受けると、データアクセスマネージャ３１を制御して、所望のファイルをＨＤ−ＤＶＤディスク３０又はネットワークサーバ２９等からデータキャッシュ３５に読み込んで管理するモジュールである。
【００１６】
プレイリストマネージャ２５は、アドバンスドコンテンツの再生開始時にプレイリスト（Playlist）よりコンテンツの構成情報等を読み出して、各モジュールの初期化制御を行うモジュールである。プレイリストマネージャ２５は、タイトルタイムライン（Title Timeline）の制御を行うモジュールでもある。
【００１７】
アドバンスドアプリケーションマネージャ２６は、アドバンスドコンテンツの再生全般を統括して制御する中心的なモジュールである。アドバンスドアプリケーションマネージャ２６は、デクレラティブエンジン（Declarative Engine）とプログラミングエンジン（Programming Engine）とを含んで構成される。
【００１８】
デクレラティブエンジンは、マークアップ言語の記述に従って、タイミングの制御を行うモジュールである。デクレラティブエンジンは、マークアップ言語の記述に従ってプレゼンテーションエンジン３６を制御し、グラフィック表示や文字表示を行うモジュールでもある。
【００１９】
プログラミングエンジンは、ＥＣＭＡスクリプトで記述されたスクリプト言語を解釈して実行するモジュールである。プログラミングエンジンは、ＥＣＭＡスクリプトからＨＤ−ＤＶＤ規格で定義されたＡＰＩ（Application Interface）を呼び出すことにより、プレーヤの制御、グラフィック描画、及びファイル操作等を行うことができる。プログラミングエンジンは、プレゼンテーションエンジン３６を制御することにより、ＡＰＩ経由でＥＣＭＡスクリプトにて指示されているグラフィック描画やプレーヤ制御を実現する。
【００２０】
ユーザーインターフェースエンジン２７は、カーソルを制御するモジュールである。ユーザーインターフェースエンジン２７は、リモコンから制御情報等をイベントとしてアドバンスドアプリケーションマネージャ２６に伝えるモジュールでもある。
【００２１】
プレゼンテーションエンジン３６は、グラフィックデータ、ビデオデータ、又はオーディオデータ等をデコードし、最終的なグラフィック画像やビデオのフレーム画像等を作成するモジュールである。プレゼンテーションエンジン３６は、作成したグラフィック画像やビデオのフレーム画像等をＡＶレンダラー４４に送る。プレゼンテーションエンジン３６は、アドバンスドアプリケーションプレゼンテーションエンジン（Advanced Application Presentation Engine）３７、ピクセルバッファ（Pixel Buffer）３８、フォントレンダリングシステム（Font Rendering system）３９、アドバンスドサブタイトルプレーヤ（Advanced Subtitle Player）４０、セカンダリビデオプレーヤ４１、プライマリビデオプレーヤ４２、及びデコーダエンジン（Decoder Engine）４３等を含んで構成される。
【００２２】
図２に示すように、アドバンスドアプリケーションプレゼンテーションエンジン３７は、サウンドデコーダ４７、グラフィックデコーダ４８、及びレイアウトマネージャ４９を含んで構成される。アドバンスドアプリケーションプレゼンテーションエンジン３７は、ナビゲーションマネージャ２２からの指示に従い、様々な形式（例えば、ＰＮＧ（Portable Network Graphics)、ＭＮＧ（Multiple-Image Network Graphics)、又はＪＰＥＧ（Joint Photographic Experts Group)等)の画像をデータキャッシュ３５から読み出してデコードし、グラフィックプレーンに最終的な出力画像を作成してＡＶレンダラー４４に出力するモジュールである。アドバンスドアプリケーションプレゼンテーションエンジン３７は、データキャッシュ３５から読み出したＷＡＶファイルをＬＰＣＭ（Linear Pulse Code Modulation)データに変換し、ＡＶレンダラー８０に出力するモジュールでもある。
【００２３】
グラフィックデコーダ４８は、上述した形式の画像をデコードする処理と、デコード処理済み画像をピクセルバッファ３８に登録又は削除する処理とを行う。
【００２４】
レイアウトマネージャ４９は、グラフィックプレーン上に最終的な表示画像を構築する。このため、レイアウトマネージャ４９は、アドバンスドアプリケーションマネージャ２６から送れたレイアウト情報に従って、ピクセルバッファ３８内に登録されたデコード処理済みの画像を読み込み、描画する。レイアウトマネージャ４９は、フォントレンダリングシステム３９に文字フォントの描画指示を送る。そして、レイアウトマネージャ４９は、完成した表示画面をＡＶレンダラー４４に送出する。
【００２５】
アドバンスドサブタイトルプレーヤ４０は、レイアウトマネージャ４９と同様の処理により、アドバンスドサブタイトル内のマークアップ言語の記述に従って出力画像をサブピクチャプレーン上に生成し、完成した出力画面をＡＶレンダラー４４に送出する。
【００２６】
プライマリビデオプレーヤ４２及びセカンダリビデオプレーヤ４１は、ビデオプレーヤとして再生制御を行うモジュールである。プライマリビデオプレーヤ４２及びセカンダリビデオプレーヤ４１は、再生の際に、ＴＭＡＰ（TimeMap）を解析する。プライマリビデオプレーヤ４２及びセカンダリビデオプレーヤ４１は、ＴＭＡＰの解析結果に基づいて、必要な場所をデータアクセスマネージャ３１から読み出し、ビデオ映像のデータ、音声データ、又はサブピクチャデータ等に分類する。プライマリビデオプレーヤ４２及びセカンダリビデオプレーヤ４１は、分類した各データを、デコーダエンジン４３内の各デコーダに出力する。
【００２７】
デコーダエンジン４３は、ＭＰＥＧ−２方式等で符号化されたビデオ映像のデータや音声データ等をデコードする。デコーダエンジン４３は、デコードした各データを、最終的な画像データやＰＣＭ（Pulse Code Modulation）データとして、ＡＶレンダラー４４に出力する。
【００２８】
ＨＤ−ＤＶＤ規格における表示画面は、図３に示されるように、従来のＤＶＤ規格おけるメインビデオプレーン（Main Video Plane）とサブピクチャプレーン（Subpicture Plane）に、サブビデオプレーン（Sub Video Plane）、グラフィックプレーン（Graphic Plane）、及びカーソルプレーン（Cursor Plane)を追加した構成となっている。これら５つのプレーンは、メインビデオプレーンが一番下で、次に、サブビデオプレーン、サブピクチャプレーン、グラフィックプレーン、カーソルプレーンの順番で上に重ねられた状態で合成される。５つのプレーンが合成された画面が、最終的な出力画面となる。
【００２９】
出力画面の構築と更新は、毎フレーム行われる。これに対して、グラフィックプレーンは、後述のティックベース（tickBase）とティックベースディバイザー（tickBaseDivisor）とで指定された周期で、構築と更新を繰り返す。よって、グラフィックプレーンの更新周期は、出力画面と異なってしまう。このため、グラフィックプレーンの描画では、以下の処理を行う。すなわち、グラフィックプレーンは、表示用（Front）グラフィックプレーンと描画用（Back）グラフィックプレーンの２枚が用意されている。表示用グラフィックプレーンを画面表示で使用している間に、描画用グラフィックプレーンに描画し、この描画が完了すると、表示用グラフィックプレーンと描画用グラフィックプレーンとを切り換える。この処理のため、グラフィックプレーンは、２枚のサーフェスを使用している。
【００３０】
ここで、図３を参照して、アドバンスドコンテンツのグラフィック画面構築処理について説明する。
【００３１】
アドバンスドコンテンツの再生は、アドバンスドアプリケーションマネージャ２６が最上位で統括し、制御している。画面表示などをおこなうプレゼンテーションエンジン３６等は、このアドバンスドアプリケーションマネージャ２６からの指示に従って、画面作成やデコード等の処理を実行している。アドバンスドアプリケーションマネージャ２６は、後述するアプリケーションティック（Application Tick）に同期して、アドバンスドコンテンツの再生に必要なイベント処理や次の画面の最終的な生成等の処理を繰り返すことにより、再生動作を実現している。
【００３２】
ＨＤ−ＤＶＤビデオプレーヤでは、アドバンスドコンテンツの再生速度やタイミングの制御のために、内部でアプリケーションティックと呼ばれる周期的な同期用の合図を生成して、各モジュールに送っている。アドバンスドアプリケーションマネージャ２６は、このアプリケーションティックに同期を取ることで、アドバンスドコンテンツを指定された速度とタイミングによって再生する。
【００３３】
一方、このアプリケーションティックに同期してアプリケーションクロック（Application Clock）と呼ばれる独自の時刻が刻まれる。アプリケーションクロックの時刻は、アドバンスドコンテンツの再生を開始する時に“０”にリセットされる。アプリケーションクロックは、例えばアドバンスドコンテンツの時間に応じたアニメーションを記述する際等に使われる。
【００３４】
通常、アプリケーションティックは、アプリケーションクロックでの時刻の刻みにも使用されることから、５０ｆｐｓや６０ｆｐｓといった値で指定される。アプリケーションティックの周期は、プレイリストのファイル中のティックベースという属性で指定される。ｆｐｓは、画面の更新間隔などを示す場合に使用される単位であり、１秒間に何回画面の更新が行われるかを示している。すなわち、画面の更新のための一連の動作が、１秒間に何回繰り返されるかということになる。
【００３５】
グラフィック画面を構成する画像が多いと、アプリケーションティックが例えば６０ｆｐｓと指定されたとしても、１秒間に６０回もグラフィック画面を更新することはパフォーマンス的に不可能な場合がある。そこで、アドバンスドアプリケーションマネージャ２６は、アプリケーションティック毎に常に処理を行うのではなく、ティックベースディバイザーという属性で指定されたレートに従って間引かれたアプリケーションティックに同期して一連の処理を行うことになっている。
【００３６】
図４中の（ｂ）に示されるように、例えば、ティックベースが“６０”であると共にティックベースディバイザーが“４”である場合、アプリケーションティックは１秒間に６０回刻まれる。アプリケーションティックの４個中の１個が、周期処理の開始タイミングとされる。したがって、アドバンスドアプリケーションマネージャ２６は、一連の処理を１秒間に１５回の周期にて繰り返す。
【００３７】
図４中の（ａ）に示された例では、各アプリケーションティックにて、アプリケーションティックハンドラ（Ａｐｐｌｉｃａｔｉｏｎ  Ｔｉｃｋ  Ｈａｎｄｌｅｒ）が実行される。ただし、アドバンスドアプリケーションマネージャ２６は、ティックベースディバイザーで指定された数のティックにつき処理を１回行うことになっている。したがって、アドバンスドアプリケーションマネージャ２６は、アプリケーションクロックをティックベースディバイザーで割った余りが“０”のときのみ、実処理を行う。
【００３８】
アドバンスドアプリケーションマネージャ２６での１周期分の処理は、ＥＣＭＡスクリプトのイベント処理やマークアップの評価、スケジューリングイベントの処理、及び、次のグラフィック画面を描画するレンダリングの処理等で構成されている。レンダリングの処理の中では、グラフィクプレーンが透明色で塗りつぶされてクリアされた後、ｚ順序（ｚＯｒｄｅｒ）の小さいアプリケーションのグラフィックから順番に重ね描きされる。これらのレンダリング処理は、アドバンスドアプリケーションマネージャ２６の指示の下、実処理は、プレゼンテーションエンジン３６が行う。これらの処理が全て完了すると、完成したグラフィックプレーンをＡＶレンダラー４４に送出し、出力画面に反映させる。
【００３９】
次に、図５及び図６を参照して、デコードと描画のタイミングについて説明する。一般には、ＰＮＧやＪＰＥＧなどの符号化された画像のデコードには時間がかかる。このため、高速でアニメーションなどをおこなうためには、必要な画像を全て前もってデコードしておく制御が必要となる。ＨＤ−ＤＶＤ規格では、このような制御がコンテンツに記述でできる。具体的には、画面の表示の有無を指定する”style:visibility”というパラメータの他に、ＨＤ−ＤＶＤビデオプレーヤにデコードの開始を指示するための”style:display”というパラメータが用意されている。実際には、これらのパラメータの変化するタイミングは、パラメータの変化が実際に適用されるタイミングなので、ＨＤ−ＤＶＤビデオプレーヤは、1個前の周期から、新しいパラメータのための動作を行なう。例えば、図５の例では、”m+5”と”m+6”のフレームで”style:visibility”が”visible”なので、この期間で表示する必要がある。しかし、実際には、ちらつきを抑えるためにダブルバッファになっているため、１フレームの遅延がある。そこで、プレゼンテーションエンジン３６は、”m+4”と”m+5”のフレームで描画の指示を出す。デコードの場合は、”style:display”が”m+2”のフレームで”auto”になるため、”m+2”のフレームまでにデコードを完了する必要がある。そこで、プレゼンテーションエンジン３６は、”m+1”のフレーム処理で、デコードの指示を出す。
【００４０】
図５に示すケースでは、デコードに時間がかかり、約２周期分の時間を要している。しかし、３周期前にデコードの指示を出すことで、実際の描画は、”style:visibility”の指定通りとなる。
【００４１】
このように、”style:display”によるデコードの指示と”style:display”による表示開始タイミングに時間差を設定することで、デコード時間による表示の遅れを解消できる。
【００４２】
以上により、コンテンツで設定したデコードと表示の時間差が十分大きい場合、大抵のＨＤ−ＤＶＤビデオプレーヤは、デコードによる表示遅延を防止できる。しかし、最終的にはＨＤ−ＤＶＤビデオプレーヤの処理速度によって決まるため、表示前にデコードを開始したとしても、確実に表示遅延を防止できるとは限らない。
【００４３】
また、図６に示すように、デコードと表示開始が同時だった場合には、表示は３周期分遅れてしまう。
【００４４】
次に、ＨＤ−ＤＶＤの画像の描画順序について説明する。
【００４５】
ＨＤ−ＤＶＤで定義されているアドバンスドコンテンツでは、ＸＭＬで記述されたマークアップと呼ばれるファイルに従って画面を表示するアプリケーションが複数存在できる。各アプリケーションにはＺ順序が定義されており、Ｚ順序は０から始まる。各アプリケーションに定義されたＺ順序は一意になっており、同じＺ順序が定義されたアプリケーションが複数存在することはない。また、このＺ順序が不連続になっていることもない。Ｚ順序０が定義されたアプリケーションの表示画面は、一番下に存在する。つまり、Ｚ順序０が定義されたアプリケーションの表示画面は、一番最初に描画される。各アプリケーションのＺ順序は、プレイリストファイルの<ApplicationSegment>タグにある”zOrder”（レイアウト順序情報）で指定される。
【００４６】
また、各アプリケーションが持つ複数の画像などのオブジェクト（グラフィックオブジェクト）にもＺ順序が定義される。所定のアプリケーションが持つ複数の画像などのオブジェクトに定義されたＺ順序は、この所定のアプリケーションの中でのオブジェクト同士の上下の表示関係を示す。各オブジェクトのＺ順序は、マークアップの”style:zIndex”（レイアウト順序情報）で指定される。
【００４７】
ＨＤ−ＤＶＤの画像表示や図形描画では、色表現として、Ｒ（赤）、Ｇ（緑）、Ｂ（青）の他に透明度を示すαがある。この透明度を示すαにより、画像を半透明に透けたように描画できる。プレゼンテーションエンジン３６は、各オブジェクトを一番下から順番に、グラフィックプレーンに対してαブレンドする。つまり、プレゼンテーションエンジン３６は、全ての画像を下から順番に描画する。
【００４８】
図７に、複数のアドバンスドアプリケーションによる画像描画の例を示す。ここでは、上述したように、Ｚ順序が小さいアプリケーションのうちＺインデックス（zIndex）が小さいエレメントから順に重ね描きされる。すなわち、“星”の画像“ｓｔａｒ．ｐｎｇ”を描画するためのエレメント、“月”の画像“ｍｏｏｎ．ｐｎｇ”を描画するためのエレメント、“太陽”の画像“ｓｕｎ．ｐｎｇ”を描画するためのエレメントの順に処理が実行される。この一連の処理により、グラフィックプレーンには、“星”の画像、“月”の画像、及び“太陽”の画像が、下から“星”の画像、“月”の画像、“太陽”の画像の順に重ね描きされる。さらに、“ハート”の画像“ｈｅａｒｔ．ｐｎｇ”を描画するためのエレメントの処理が実行される。
【００４９】
プレゼンテーションエンジン３６が、各オブジェクトを一番下から順番に描画しなくてはいけないことは以上のとおりである。しかし、他の画像との重なりが無い画像（他の画像と依存関係がない画像）については、必ずしもＺ順序に従う必要はない。他の画像と依存関係がない画像については、Ｚ順序に従わなくとも、Ｚ順序に従った場合と同様の結果を得ることができる（順序変更処理）。また、グラフィックデコーダ４８によるデコードと、レイアウトマネージャ４９によるレイアウトとは、並行して実行可能である（並行処理）。この並行処理を利用して、順序変更処理を実行することにより、描画の効率化を図ることができる。
【００５０】
プレゼンテーションエンジン３６が、上記した順序変更処理を実行する。つまり、プレゼンテーションエンジン３６は、描画順序を最適化する。具体的には、プレゼンテーションエンジン３６は、デコードが完了していない画像（デコードが間に合わない画像）の描画を後回しにして、デコードが完了しており且つ他の後回しになっている画像と重なりの無い画像を先に描画する。これにより、デコード待ちの遅延を最小限に抑えて描画を効率化する。
【００５１】
プレゼンテーションエンジン３６に含まれるレイアウトマネージャ４９は、アプリケーションのマークアップ画面を、グラフィックプレーン上に構築し、ＡＶレンダラー４４に出力する。レイアウトマネージャ４９は、グラフィックデコーダ４８及びフォントレンダリングシステム３９に必要なオブジェクトのデコードを指示する。さらに、レイアウトマネージャ４９は、下位グラフィックドライバのＡＰＩ経由でグラフィックコントローラを制御し、描画する。レイアウトマネージャ４９は、基本的には、グラフィックプレーンの矩形塗りつぶし、又はグラフィックプレーンに対するピクセルバッファ３８上の画像のαブレンドにより、最終的な画像を構築する。レイアウトマネージャ４９は、マークアップ言語の記述（各オブジェクトのレイアウト情報）に基づき、グラフィックプレーンに対して、複数のオブジェクトを描画する。
【００５２】
例えば、グラフィックプレーンに対して描画されるべき全ｎ個のオブジェクトのうち、ｍ（ｍ＜ｎ）番目に描画されるべきオブジェクトｍがデコード未完了オブジェクト（例えばデコード途中オブジェクト）である場合、レイアウトマネージャ４９は、オブジェクトｍの描画を後回しにする。この場合、レイアウトマネージャ４９は、オブジェクトｍを後で描画できるように、オブジェクトｍを描画保留処理リストに登録する。
【００５３】
続いて、レイアウトマネージャ４９は、ｍ＋１番目に描画されるべきオブジェクトｍ＋１の状況について検証する。検証により、オブジェクトｍ＋１がデコード完了オブジェクトであっても、描画保留処理リストに登録されているオブジェクトと重なることが判明した場合には、レイアウトマネージャ４９は、このオブジェクトｍ＋１の描画も後回しにする。この場合、レイアウトマネージャ４９は、オブジェクトｍ＋１を後で描画できるように、オブジェクトｍ＋１も描画保留処理リストに登録する。このようにして、全てのオブジェクトについて検証する。
【００５４】
例えば、検証により、オブジェクトｍ＋２がデコード完了オブジェクトであり、しかも描画保留処理リストに登録されているオブジェクトｍ及びオブジェクトｍ＋１と重ならないことが判明した場合には、レイアウトマネージャ４９は、描画保留処理リストに登録されているオブジェクトｍ及びオブジェクトｍ＋１よりも先にオブジェクトｍ＋２の描画を開始する。
【００５５】
最終オブジェクトであるオブジェクトｎの検証が完了し、オブジェクトｎが描画される、或いは描画保留処理リストに対してオブジェクトｎが登録されると、描画が後回しにされたオブジェクトの処理へ移行する。つまり、描画保留処理リストに登録されたオブジェクトの処理へ移行する。例えば、描画保留処理リストにオブジェクトｍ及びオブジェクトｍ＋１が登録されているとする。オブジェクトｍのデコードが完了していれば、オブジェクトｍを描画する。続いて、オブジェクトｍ＋１のデコードが完了していれば、オブジェクトｍ＋１を描画する。なお、オブジェクトｍのデコードが完了していなければ、オブジェクトｍ＋１の描画へ移行せずに、オブジェクトｍのデコードを待つ。オブジェクトｍ及びオブジェクトｍ＋１が描画保留処理リストに登録された理由は、オブジェクトｍ及びオブジェクトｍ＋１の少なくとも一部が重なりあっているため、オブジェクトｍを描画してからでないと、オブジェクトｍ＋１を描画できないからである。
【００５６】
以上により、グラフィックプレーン上に、全ｎ個のオブジェクトの描画が完了する。つまり、最終的に出力するグラフィック画面が完成する。アプリケーションスレッド（Application Thread）は、次の処理を開始する前に、描画保留処理リストをリセットする。
【００５７】
図７〜図９を参照して、描画順序（順序変更による効率化なし）と描画順序（順序変更による効率化あり）のケースについて説明する。図８は、順序変更による効率化適用無しの描画処理の一例を示すフローチャートである。図９は、順序変更による効率化適用有りの描画処理の一例を示すフローチャートである。
【００５８】
“ｓｔａｒ．ｐｎｇ”、“ｓｕｎ．ｐｎｇ”、“ｈｅａｒｔ．ｐｎｇ”のデコードデータがピクセルバッファ３８に存在し、“ｍｏｏｎ．ｐｎｇ”のデコードデータはピクセルバッファ３８に存在しないと仮定する。つまり、“ｍｏｏｎ．ｐｎｇ”のデータをデコードしてから、“ｍｏｏｎ．ｐｎｇ”を描画する必要がある。また、“ｈｅａｒｔ．ｐｎｇ”は、他のオブジェクトと一切重ならないオブジェクトである。
【００５９】
図８に示す順序変更による効率化適用無しの描画処理では、“ｓｔａｒ．ｐｎｇ”、“ｍｏｏｎ．ｐｎｇ”、“ｓｕｎ．ｐｎｇ”、“ｈｅａｒｔ．ｐｎｇ”の順に描画される。つまりデコード完了を待ちながら描画処理が実行される。このケースでは、全描画時間と“ｍｏｏｎ．ｐｎｇ”のデコード待ち時間とを合計した時間が、実質的な全描画時間となる。
【００６０】
これに対して、図９に示す順序変更による効率化適用有りの描画処理では、“ｓｔａｒ．ｐｎｇ”、“ｈｅａｒｔ．ｐｎｇ”、“ｍｏｏｎ．ｐｎｇ”、“ｓｕｎ．ｐｎｇ”の順に描画される。つまり、デコード待ちオブジェクト及びデコード待ちオブジェクトに重なるオブジェクトを描画保留処理リストへ登録し、デコードが完了しており且つ他のオブジェクトに重ならないオブジェクトを先に描画する。グラフィックデコーダ４８によるデコードと、レイアウトマネージャ４９によるレイアウトとは、並行して実行可能である。つまり、描画とデコードの並行処理により、“ｈｅａｒｔ．ｐｎｇ”を描画している間に、“ｍｏｏｎ．ｐｎｇ”のデコードが完了したとする。このケースでは、全描画時間が、そのまま実質的な全描画時間となる。
【００６１】
次に、図１０を参照して、描画保留処理リストの一例について説明する。レイアウトマネージャ４９が管理するメモリ上に、描画保留処理リストが配置される。描画保留処理リストには、後回しにされた描画処理が順に登録される。描画保留処理リストに登録された描画処理情報は、操作ＩＤ、ソースの矩形、ソースのサーフェスＩＤ、ソースの色、ディスティネーション矩形、ディスティネーションのサーフェスＩＤ、オプションフラグ、グローバルαを含む。
【００６２】
操作ＩＤには、ＢＬＴ（Bit Block Transfer）、Fill Rectangle、又はClear Rectangleがある。オプションフラグには、グローバルα有効、横方向flipあり、縦方向flipあり、又はrepeatありなどがある。なお、横方向flipありは、画像の横方向への反転表示を指定する機能である。縦方向flipありは、画像の縦方向への反転表示を指定する機能である。
【００６３】
上記した描画順序変更は、グラフィックプレーンへの適用だけではなく、ドローイングエリア（Drawing Area）にも適用することができる。これにより、ドローイングＡＰＩ（Drawing API）にも、この描画順序変更による効率化を図ることができる。
【００６４】
図１１に示すように、ＥＣＭＡスクリプトではドローイングＡＰＩが定義されている。このドローイングＡＰＩにより、ドローイングエリアに各種図形などを描画することができる。図１２に示すように、ドローイングエリアの実体は、ＰＮＧ画像などと同様に、ピクセルバッファ３８にビットマップによって作成される。レンダリング時において、作成されたビットマップは、画像などと同様に、マークアップの記述に従って、グラフィックプレーン上にαブレンドで描画される。
【００６５】
ＥＣＭＡスクリプトのドローイングＡＰＩでドローイングエリアに描画する場合、２種類の方法がある。１つは、先のグラフィックプレーンと同じように、各ドローイングエリアごとの描画保留処理リストを用意する。デコード中などで、すぐに描画できないオブジェクト及び、描画保留処理リストに登録されているオブジェクトと重なり依存のあるオブジェクトは、描画せずに描画保留処理リストに登録する。ドローイングＡＰＩは、各アプリケーションのマークアップ画面の構築より前に実行される。このため、マークアップ画像の構築開始の前に、再度、ドローイングエリアの描画保留処理リストの処理を実行をしても良い。デコード中の画像をソースとして使用する場合、デコードを待たなくてはいけないため、描画保留処理リストを走査する回数を複数回にして、最後の１回以外は、先に示したように、デコード中で実行できないオブジェクトの描画領域と重ならないオブジェクトを先行して描画するようにすることで、描画順序と開始タイミングの最適化ができる。最終的には、マークアップ画像構築の段階でドローイングエリアをグラフィックプレーンに描画する際に、ドローイングエリアの描画保留リストをチェックし、すぐに描画不可能な描画要求が残っている場合には、このドローイングエリアの描画指示をデコード中画像と同様に、グラフィック画面構築の描画保留処理リストに登録する。最後にグラフィック画面構築の描画保留処理リストに残った要求を処理する段階でドローイングエリアがあった場合には、このドローイングエリアの描画保留処理リストも走査する。この場合には、デコードが完了していないソース画像があった場合、デコードの完了を待つことになる。
【００６６】
また、ドローイングエリアの場合、キャプチャ機能がある。キャプチャ機能が実行されたら、キャプチャ機能の処理の前に、ドローイングエリアの描画保留処理リストに登録されたオブジェクトの描画と必要に応じたデコード完了待ち、描画保留処理リストのクリアを実行する。
【００６７】
図１２に示すケースでは、スクリプト処理において、”drawRectangleCoord()”が実行される。これにより、”fish.png”という矩形画像が敷き詰められる。このため、”fish.png”のデコードが完了するまで、描画処理が実行できない。そこで、このスクリプト処理で実行される、ドローイングＡＰＩの描画にまで、描画順序を最適化する。
【００６８】
以上により、ＨＤ−ＤＶＤビデオプレーヤの描画パフォーマンスの向上を図ることができる。
【００６９】
なお、本願発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、各実施形態は可能な限り適宜組み合わせて実施してもよく、その場合組み合わせた効果が得られる。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適当な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【図面の簡単な説明】
【００７０】
【図１】アドバンスドＨＤビデオタイトルセット（AHDVTS : Advanced High Definition Video Title Set）対応のＨＤ−ＤＶＤビデオプレーヤ（アドバンスドコントロールプレーヤＡＣＰ）の概略構成を示す図である。
【図２】図１に示すＨＤ−ＤＶＤビデオプレーヤを構成するアドバンスドアプリケーションプレゼンテーションエンジンの概略構成を示す図である。
【図３】図１に示すＨＤ−ＤＶＤビデオプレーヤによる出力画像生成の概要を示す図である。
【図４】アドバンスドコンテンツのグラフィック画面構築処理を説明するため図である。
【図５】デコード処理及びグラフィックプレーンヘの描画処理を説明するための図である。
【図６】デコード処理（デコード処理が間に合わないケース）及びグラフィックプレーンヘの描画処理を説明するための図である。
【図７】描画順序変更を説明するための図である。
【図８】描画順序変更を適用しないケースの描画処理の一例を示す図である。
【図９】描画順序変更を適用したケースの描画処理の一例を示す図である。
【図１０】描画保留処理リストの一例を示す図である。
【図１１】ドローイングＡＰＩの一例を示す図である。
【図１２】ＥＣＭＡスクリプトによるドローイングエリアへの描画処理の一例を示す図である。
【符号の説明】
【００７１】
２２…ナビゲーションマネージャ、２３…パーサー、２４…ファイルキャッシュマネージャ、２５…プレイリストマネージャ、２６…アドバンスドアプリケーションマネージャ、２７…ユーザーインターフェースエンジン、３１…データアクセスマネージャ、３２…パーシスタントストレージマネージャ、３３…ネットワークマネージャ、３４…ディスクマネージャ、３５…データキャッシュ、３６…プレゼンテーションエンジン、３７…アドバンスドアプリケーションプレゼンテーションエンジン、３８…ピクセルバッファ、３９…フォントレンダリングシステム、４０…アドバンスドサブタイトルプレーヤ、４１…セカンダリビデオプレーヤ、４２…プライマリビデオプレーヤ、４３…デコーダエンジン、４４…ＡＶレンダラー、４５…グラフィックレンダリングエンジン、４９…レイアウトマネージャ
【図１】
2009003370.tif 000003
【図２】
2009003370.tif 000004
【図３】
2009003370.tif 000005
【図４】
2009003370.tif 000006
【図５】
2009003370.tif 000007
【図６】
2009003370.tif 000008
【図７】
2009003370.tif 000009
【図８】
2009003370.tif 000010
【図９】
2009003370.tif 000011
【図１０】
2009003370.tif 000012
【図１１】
2009003370.tif 000013
【図１２】
2009003370.tif 000014