JP2008108296A - 情報再生装置及び情報再生方法 - Google Patents
情報再生装置及び情報再生方法 Download PDFInfo
- Publication number
- JP2008108296A JP2008108296A JP2006287700A JP2006287700A JP2008108296A JP 2008108296 A JP2008108296 A JP 2008108296A JP 2006287700 A JP2006287700 A JP 2006287700A JP 2006287700 A JP2006287700 A JP 2006287700A JP 2008108296 A JP2008108296 A JP 2008108296A
- Authority
- JP
- Japan
- Prior art keywords
- graphic
- manager
- cpu
- graphic decoder
- image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
【課題】アドバンスコンテンツを再生する場合でも、グラフィックの描画パフォーマンスが低下するのを防ぐことが可能な情報再生装置及び情報再生方法を提供すること。
【解決手段】第1CPU1は、アドバンスドアプリケーションプレゼンテーションエンジン61、ピクセルバッファ63、フォントレンダリングシステムラッパー65、及びアドバンスドサブタイトルプレーヤ67としての処理を実行する。第2CPU2は、グラフィックデコーダ62、サーフェスマネージャ64、フォントレンダリングシステム66としての処理を実行する。アドバンスドアプリケーションプレゼンテーションエンジン61は、レイアウトマネージャ71及びグラフィックデコーダラッパー72を有して構成されているので、第1CPU1は、レイアウトマネージャ71及びグラフィックデコーダラッパー72としての処理も実行する。
【選択図】図4
【解決手段】第1CPU1は、アドバンスドアプリケーションプレゼンテーションエンジン61、ピクセルバッファ63、フォントレンダリングシステムラッパー65、及びアドバンスドサブタイトルプレーヤ67としての処理を実行する。第2CPU2は、グラフィックデコーダ62、サーフェスマネージャ64、フォントレンダリングシステム66としての処理を実行する。アドバンスドアプリケーションプレゼンテーションエンジン61は、レイアウトマネージャ71及びグラフィックデコーダラッパー72を有して構成されているので、第1CPU1は、レイアウトマネージャ71及びグラフィックデコーダラッパー72としての処理も実行する。
【選択図】図4
Description
本発明は、例えば光ディスク装置等に用いられる情報再生装置及び情報再生方法に関する。
近年、高画質及び高機能を有するDVDビデオディスク及びそのディスクを再生するビデオプレーヤの普及が進んでいる。しかしながら、ここ数年、タイトル本編も含めメニュー画面や特典映像等のコンテンツにおいて、より色彩に富んだメニューやインタラクティブ性の向上等、コンテンツ内容の拡充によるユーザへのより魅力的なコンテンツの提供環境がコンテンツ供給者から望まれている。
そこで、色彩に富んだメニューやインタラクティブ性の高いコンテンツとしてアドバンスコンテンツが発案され、アドバンスコンテンツを有する情報記録媒体や、アドバンスコンテンツを再生する情報再生装置が存在している(例えば、特許文献1参照)。アドバンスコンテンツには、音声、静止画(背景画を含む)アニメーション、文字フォント、動画等が含まれており、これらのアドバンスコンテンツのデータは、符号化された状態で情報記録媒体に格納されている。アドバンスコンテンツを再生する情報再生装置は、アドバンスコンテンツの再生を実現する再生システムモデルとして、アドバンスドコントロールプレーヤ(Advanced Content Player)を含んでいる。アドバンスドコントロールプレーヤは、機能モジュールとして、データアクセスマネージャ(Data Access Manager)、データキャッシュ(Data Cache)、ナビゲーションマネージャ(Navigation Manager)、プレゼンテーションエンジン(Presentation Engine)、AVレンダラー(AV Renderer)等で構成される。
特開2006−236411号公報
再生システムモデルとしてのアドバンスドコントロールプレーヤは、CPU(Central Processing Unit)にて各種の処理が実行されることにより、実現される。しかしながら、アドバンスコンテンツには、静止画アニメーションや動画等のグラフィックデータが含まれることから、これらのグラフィックデータをデコードして、再生する際に、CPUに大きな処理負荷がかかる。この結果、グラフィックの描画パフォーマンスが低下する懼れがある。
そこで、本発明は上記事情を考慮してなされたもので、アドバンスコンテンツを再生する場合でも、グラフィックの描画パフォーマンスが低下するのを防ぐことが可能な情報再生装置及び情報再生方法を提供することを目的とする。
本発明に係る情報再生装置は、相互に通信可能な第1CPUと第2CPUとを備えており、第1CPUは、グラフィックデコーダラッパーとピクセルバッファとしての処理を実行し、第2CPUは、グラフィックデコーダとサーフェスマネージーとしての処理を実行する。
また、本発明に係る情報再生方法は、相互に通信可能な第1CPUと第2CPUとによる情報再生方法であって、第1CPUに、グラフィックデコーダラッパーとピクセルバッファとしての処理を実行させ、第2CPUに、グラフィックデコーダとサーフェスマネージーとしての処理を実行させる。
本発明によれば、アドバンスコンテンツを再生する場合でも、グラフィックの描画パフォーマンスが低下するのを防ぐことが可能となる。
以下、添付図面を参照して、本発明の好適な実施形態について詳細に説明する。なお、説明において、同一要素又は同一機能を有する要素には、同一符号を用いることとし、重複する説明は省略する。
まず、図1を参照して、情報再生装置の一例としての、アドバンスドHDビデオタイトルセット(AHDVTS:Advanced High Definition Video Title Set)対応のHD−DVDビデオプレーヤの構成を説明する。
HD−DVDビデオプレーヤは、図1に示されるように、第1CPU1と、第2CPU2と、複数のバスB1,B2,B3を備えている。第1CPU1と第2CPU2とは、バスに接続されており、相互に通信可能である。第1CPU1は、主として、後述するナビゲーションマネージャ(Navigation Manager)やプレゼンテーションエンジン(Presentation Engine)等としての処理を実行するCPUである。第1CPU1は、Advanced Contentのメイン部分である、マークアップ(Markup)言語やスクリプト(Script)言語(例えば、ECMA(European Computer Manufacturers Association)Script)等の記述に従った一連の処理を担当する。第2CPU2は、第1CPU1からの指示を受けて、後述するように、画像のデコードやサーフェスへの画像の描画等を行うといった下位層の処理を担当する。第2CPU2は、ビデオデコーダ7,8やオーディオデコーダ9,10の制御等も行う。
バスB1とパスB2とは、バスブリッジ3を介して接続されている。バスB2とパスB3とは、バスブリッジ4を介して接続されている。
バスB1は、複数のバスB1,B2,B3の中で最も通信速度が早いバスである。バスB1には、第1CPU1及び第2CPU2の他に、データの高速転送が必要とされる、メモリ5、グラフィックコントローラ6、ビデオデコーダ7,8、及びオーディオデコーダ9,10が接続されている。メモリ5は、メモリコントローラ11を介してバスB1に接続されている。
バスB2は、バスB1よりも通信速度が若干遅いバスである。バスB2には、USBコントローラ12、LANコントローラ13、及びSerial ATAコントローラ14が接続されている。USBコントローラ12は、USBキーボードやゲームパッドを接続するためのコントローラである。LANコントローラ13は、ネットワーク接続を行うためのコントローラである。
バスB3は低速バスであり、バスB3には速い通信速度を必要としないI/O機器が接続されている。バスB3には、フラッシュROM15、NANDメモリ16、I2Cコントローラ17、及び制御マイコン18が接続されている。フラッシュROM15は、フラッシュROMコントローラ19を介してバスに接続されている。NANDメモリ16は、NANDコントローラ20を介してバスB3に接続されている。
ビデオデコーダ7,8は、MPEG−2(Moving Picture Experts Group phase 2)方式やH.264方式等により符号化された画像データを実際の画像データに復号するモジュールである。コンポジター21は、各ビデオプレーンやグラフィックプレーン等を合成し、最終的な出力画像を生成して、出力する。ビデオエンコーダ22は、コンポジター21から出力された画像からコンポジット出力等の画像信号を生成して、出力する。
オーディオデコーダ9,10は、MPEG−1(Moving Picture Experts Group phase 1)方式等で符号化された音声データをデジタル音声データに復号するモジュールである。オーディオデコーダ9,10から出力されたデジタル音声データは、オーディオミキサ23により合成され、出力される。オーディオミキサ23から出力されたデジタル音声データは、D/Aコンバータ24で音声信号に変換され、出力される。
ビデオエンコーダ22及びD/Aコンバータ24は、通常、I2Cバス方式を用いて制御される。このため、ビデオエンコーダ22及びD/Aコンバータ24の制御は、I2Cコントローラ17経由で行う。
制御マイコン18は、リモコン受光器25からの出力が接続され、リモコンからの制御情報を受ける。制御マイコン18は、電源の制御を行う。制御マイコン18は、RS−232C規格によるシリアルコントローラ26を介してバスB3に接続されており、第2CPU2は、シリアルコントローラ26を経由して制御マイコン18の制御を行う。
HD−DVDドライブ27は、Serial ATAコントローラ14を介してバスB2に接続されている。
アドバンスドコンテンツが記録された情報記録媒体(HD−DVDディスク)の一例を図2に示す。図2に示された情報記録媒体は、カテゴリー3に対応した情報記録媒体である。情報記録媒体には、アドバンスドコンテンツADVCTとスタンダードコンテンツSTDCTとが記録されている。アドバンスドコンテンツが記録された情報記録媒体に関しては、上述した特許文献1の他に、本願出願人による特開2006−147082号公報、特開2006−186842号公報、特開2006−216103号公報又は特開2006−21754号公報等により既知であり、その説明を省略する。
次に、図3を参照して、本実施形態のHD−DVDビデオプレーヤが含んでいる、再生システムモデルとしてのアドバンスドコントロールプレーヤACPの構成を説明する。
アドバンスドコントロールプレーヤACPは、図1に示された第1CPU1及び第2CPU2がそれぞれ図示しない組込プログラム(ファームウエア)に基づいた処理を実行することにより、機能的に実現される。アドバンスドコントロールプレーヤACPは、データアクセスマネージャ30と、データキャッシュ40と、ナビゲーションマネージャ50と、プレゼンテーションエンジン60と、AVレンダラー80と、を有して構成される。
データアクセスマネージャ30は、データキャッシュ40等からの指示に基づいて、HD−DVDディスク95等にアクセスしてファイルの読み書き等の操作を行うモジュールである。データアクセスマネージャ30は、パーシスタントストレージマネージャ(Persistent Storage Manager)31、ネットワークマネージャ(NetworkManager)32、及びディスクマネージャ(Disk Manager)33を含んで構成される。
パーシスタントストレージマネージャ31は、上位モジュールからの指示に基づいて、パーシスタントストレージ(Persistent Storage)91の内のファイルの読み書きや削除等の操作を行うモジュールである。ネットワークマネージャ32は、上位モジュールからの指示に基づいて、ネットワークサーバ(Network Server)93からファイルをダウンロードしたり、逆にファイルをアップロードしたりするモジュールである。ディスクマネージャ33は、上位モジュールからの指示に基づいて、HD−DVDディスク95に格納されたファイルの読み出しを行うモジュールである。
パーシスタントストレージ91には、ホームネットワーク上に存在するNAS(Network Attached Storage)等が含まれる。ネットワークサーバ93は、インターネット上に存在するサーバであって、例えば、HD−DVDディスク95を提供する映画会社等が運営するものが想定される。
データキャッシュ40は、読み出したファイルなどを一時的に格納するバッファであり、データキャッシュ40には符号化された画像データ等が格納される。データキャッシュ40の容量は、例えば64Mバイトである。データキャッシュ40は、ファイルキャッシュ(File Cache)と、ストリーミングバッファ(Streaming Buffer)とを含んで構成される(いずれも不図示)。ファイルキャッシュは、ナビゲーションマネージャ50又はプレゼンテーションエンジン60がファイルを読み出す時のキャッシュとして動作する。ストリーミングバッファは、後述するセカンダリビデオプレーヤ(Secondary Video Player)68がネットワークサーバ93上のビデオデータをストリーミング再生する際に、ビデオデータをバッファリングするために使用される。
ナビゲーションマネージャ50は、アドバンスドコンテンツの全体制御、マークアップ言語やスクリプト(Script)言語(例えば、ECMAスクリプト)で記述された内容の再生処理、及びリモコンからの制御情報に対応した処理動作等を行うモジュールである。ナビゲーションマネージャ50は、ファイルキャッシュマネージャ(File Cache Manager)51、プレイリストマネージャ(Playlist Manager)52、パーサー(Parser)53、アドバンスドアプリケーションマネージャ(Advanced Application Manager)54、及びユーザーインターフェースエンジン(User Interface Engine)55を含んで構成される。
ファイルキャッシュマネージャ51は、プレイリストマネージャ52又はアドバンスドアプリケーションマネージャ54からの指示を受けると、データアクセスマネージャ30又はプライマリビデオプレーヤ(Primary Video Player)69を制御して、所望のファイルをHD−DVDディスク95又はネットワークサーバ93等からデータキャッシュ40に読み込んで管理するモジュールである。
プレイリストマネージャ52は、アドバンスドコンテンツの再生開始時にプレイリスト(Playlist)よりコンテンツの構成情報等を読み出して、各モジュールの初期化制御を行うモジュールである。プレイリストマネージャ52は、タイトルタイムライン(Title Timeline)の制御を行うモジュールでもある。
アドバンスドアプリケーションマネージャ54は、アドバンスドコンテンツの再生全般を統括して制御する中心的なモジュールである。アドバンスドアプリケーションマネージャ54は、デクレラティブエンジン(Declarative Engine)とプログラミングエンジン(Programming Engine)とを含んで構成される(いずれも不図示)。
デクレラティブエンジンは、マークアップ言語の記述に従って、タイミングの制御を行うモジュールである。デクレラティブエンジンは、マークアップ言語の記述に従ってプレゼンテーションエンジン60を制御し、グラフィック表示や文字表示を行うモジュールでもある。
プログラミングエンジンは、ECMAスクリプトで記述されたスクリプト言語を解釈して実行するモジュールである。プログラミングエンジンは、ECMAスクリプトからHD−DVD規格で定義されたAPI(Application Interface)を呼び出すことにより、プレーヤの制御、グラフィック描画、及びファイル操作等を行うことができる。プログラミングエンジンは、プレゼンテーションエンジン60を制御することにより、API経由でECMAスクリプトにて指示されているグラフィック描画やプレーヤ制御を実現する。
ユーザーインターフェースエンジン55は、カーソルを制御するモジュールである。ユーザーインターフェースエンジン55は、リモコンから制御情報等をイベントとしてアドバンスドアプリケーションマネージャ54に伝えるモジュールでもある。
プレゼンテーションエンジン60は、グラフィックデータ、ビデオデータ、又はオーディオデータ等をデコードし、最終的なグラフィック画像やビデオのフレーム画像等を作成するモジュールである。プレゼンテーションエンジン60は、作成したグラフィック画像やビデオのフレーム画像等をAVレンダラー80に送る。プレゼンテーションエンジン60は、アドバンスドアプリケーションプレゼンテーションエンジン(Advanced Application Presentation Engine)61、グラフィックデコーダ(GraphicDecoder)62、ピクセルバッファ(Pixel Buffer)63、サーフェスマネージャ(Surface Manager)64、フォントレンダリングシステムラッパー(Font Rendering system Wrapper)65、フォントレンダリングシステム(Font Rendering System)66、アドバンスドサブタイトルプレーヤ(Advanced Subtitle Player)67、セカンダリビデオプレーヤ68、プライマリビデオプレーヤ69、及びデコーダエンジン(Decoder Engine)70等を有して構成される。
アドバンスドサブタイトルプレーヤ67は、レイアウトマネージャ71と同様に、アドバンスドサブタイトル内のマークアップ言語の記述にしたがって、出力画像をサブピクチャプレーン上に生成し、AVレンダラー80に送出する。
プライマリビデオプレーヤ69及びセカンダリビデオプレーヤ68は、ビデオプレーヤとして再生制御を行うモジュールである。プライマリビデオプレーヤ69及びセカンダリビデオプレーヤ68は、再生の際に、TMAP(TimeMap)を解析する。プライマリビデオプレーヤ69及びセカンダリビデオプレーヤ68は、TMAPの解析結果に基づいて、必要な場所をデータアクセスマネージャ30から読み出し、ビデオ映像のデータ、音声データ、又はサブピクチャデータ等に分類する。プライマリビデオプレーヤ69及びセカンダリビデオプレーヤ68は、分類した各データを、デコーダエンジン70内の各デコーダに出力する。
デコーダエンジン70は、MPEG−2方式等で符号化されたビデオ映像のデータや音声データ等をデコードする。デコーダエンジン70は、デコードした各データを、最終的な画像データやPCM(Pulse Code Modulation)データとして、AVレンダラー80に出力する。
アドバンスドアプリケーションプレゼンテーションエンジン61、グラフィックデコーダ62、ピクセルバッファ63、サーフェスマネージャ64、フォントレンダリングシステムラッパー65、及びフォントレンダリングシステム66については、後述する。
AVレンダラー80は、他のモジュールから入力されたビデオ情報と音声情報の合成処理を行い、スピーカやモニタ等に対する外部への信号出力を行うモジュールである。AVレンダラー80は、グラフィックレンダリングエンジン(Graphic Rendering Engine)81と、オーディオミキシングエンジン(Audio Mixing Engine)82とを有して構成される。グラフィックレンダリングエンジン81は、ナビゲーションマネージャ50とプレゼンテーションエンジン60から送られた情報に基づいて、グラフィックプレーン上での画像の合成処理を行う。オーディオミキシングエンジン82は、プレゼンテーションエンジン60から送られる音声情報を合成し、合成された音声情報を出力する。
HD−DVD規格における表示画面は、図16及び図19に示されるように、従来のDVD規格おけるメインビデオプレーン(Main Video Plane)とサブピクチャプレーン(Subpicture Plane)に、サブビデオプレーン(Sub Video Plane)、グラフィックプレーン(Graphic Plane)、及びカーソルプレーン(Cursor Plane)を追加した構成となっている。これらのプレーンは、メインビデオプレーンが一番下で、次に、サブビデオプレーン、サブピクチャプレーン、グラフィックプレーン、カーソルプレーンの順番で上に重ねられた状態で合成される。5つのプレーンが合成された画面が、最終的な出力画面となる。
出力画面の構築と更新は、毎フレーム行われる。これに対して、グラフィックプレーンは、後述のティックベース(tickBase)とティックベースディバイザー(tickBaseDivisor)とで指定された周期で、構築と更新を繰り返す。よって、グラフィックプレーンの更新周期は、出力画面と異なってしまう。このため、グラフィックプレーンの描画では、以下の処理を行う。すなわち、グラフィックプレーンは、表示用(Front)グラフィックプレーンと描画用(Back)グラフィックプレーンの2枚が用意されている。表示用グラフィックプレーンを画面表示で使用している間に、描画用グラフィックプレーンに描画し、この描画が完了すると、表示用グラフィックプレーンと描画用グラフィックプレーンとを切り換える。この処理のため、グラフィックプレーンは、2枚のサーフェスを使用している。
ここで、図5を参照して、アドバンスドコンテンツのグラフィック画面構築処理について説明する。
アドバンスドコンテンツの再生は、アドバンスドアプリケーションマネージャ54が最上位で統括し、制御している。画面表示などをおこなうプレゼンテーションエンジン60等は、このアドバンスドアプリケーションマネージャ54からの指示に従って、画面作成やデコード等の処理を実行している。アドバンスドアプリケーションマネージャ54は、後述するアプリケーションティック(Application Tick)に同期して、アドバンスドコンテンツの再生に必要なイベント処理や次の画面の最終的な生成等の処理を繰り返すことにより、再生動作を実現している。
HD−DVDビデオプレーヤでは、アドバンスドコンテンツの再生速度やタイミングの制御のために、内部でアプリケーションティックと呼ばれる周期的な同期用の合図を生成して、各モジュールに送っている。アドバンスドアプリケーションマネージャ54は、このアプリケーションティックに同期を取ることで、アドバンスドコンテンツを指定された速度とタイミングによって再生する。
アプリケーションティックに同期してアプリケーションクロック(Application Clock)と呼ばれる独自の時刻が刻まれる。アプリケーションクロックの時刻は、アドバンスドコンテンツの再生を開始する時に“0”にリセットされる。アプリケーションクロックは、例えばアドバンスドコンテンツの時間に応じたアニメーションを記述する際等に使われる。
通常、アプリケーションティックは、アプリケーションクロックでの時刻の刻みにも使用されることから、50fpsや60fpsといった値で指定される。アプリケーションティックの周期は、プレイリストのファイル中のティックベースという属性で指定される。fpsは、画面の更新間隔などを示す場合に使用される単位であり、1秒間に何回画面の更新が行われるかを示している。すなわち、画面の更新のための一連の動作が、1秒間に何回繰り返されるかということになる。
グラフィック画面を構成する画像が多いと、アプリケーションティックが例えば60fpsと指定されたとしても、1秒間に60回もグラフィック画面を更新することはパフォーマンス的に不可能な場合がある。そこで、アドバンスドアプリケーションマネージャ54は、アプリケーションティック毎に常に処理を行うのではなく、ティックベースディバイザーという属性で指定されたレートに従って間引かれたアプリケーションティックに同期して一連の処理を行っている。
図5中の(b)に示されるように、例えば、ティックベースが“60”であると共にティックベースディバイザーが“4”である場合、アプリケーションティックは1秒間に60回刻まれる。アプリケーションティックの4個中の1個が、周期処理の開始タイミングとされる。したがって、アドバンスドアプリケーションマネージャ54は、一連の処理を1秒間に15回の周期にて繰り返す。
図5中の(a)に示された例では、各アプリケーションティックにて、アプリケーションティックハンドラ(Application Tick Handler)が実行される。ただし、アドバンスドアプリケーションマネージャ54は、ティックベースディバイザーで指定された数のティックにつき処理を1回行うことになっている。したがって、アドバンスドアプリケーションマネージャ54は、アプリケーションクロックをティックベースディバイザーで割った余りが“0”のときのみ、実処理を行う。
アドバンスドアプリケーションマネージャ54での1周期分の処理は、ECMAスクリプトのイベント処理やマークアップの評価、スケジューリングイベントの処理、及び、次のグラフィック画面を描画するレンダリングの処理等で構成されている。レンダリングの処理の中では、グラフィクプレーンが透明色で塗りつぶされてクリアされた後、z順序(zOrder)の小さいアプリケーションのグラフィックから順番に重ね描きされる。これらのレンダリング処理は、アドバンスドアプリケーションマネージャ54の指示の下、実処理は、プレゼンテーションエンジン60が行う。これらの処理が全て完了すると、完成したグラフィックプレーンをAVレンダラー80に送出し、出力画面に反映させる。
図6に、複数のアドバンスドアプリケーションによる画像描画の例を示す。ここでは、上述したように、z順序が小さいアプリケーションのうちzインデックス(zIndex)が小さいエレメントから順に重ね描きされる。すなわち、“星”の画像“star.png”を描画するためのエレメント、“月”の画像“moon.png”を描画するためのエレメント、“太陽”の画像“sun.png”を描画するためのエレメントの順に処理が実行される。この一連の処理により、グラフィックプレーンには、“星”の画像、“月”の画像、及び“太陽”の画像が、下から“星”の画像、“月”の画像、“太陽”の画像の順に重ね描きされる。
ここで、本実施形態における各モジュール(アドバンスドアプリケーションプレゼンテーションエンジン61、グラフィックデコーダ62、ピクセルバッファ63、サーフェスマネージャ64、フォントレンダリングシステムラッパー65、及びフォントレンダリングシステム66)の構成を説明する前に、プレゼンテーションエンジン60の標準的な構成を図17及び図18を参照して説明する。
アドバンスドアプリケーションプレゼンテーションエンジン100は、サウンドデコーダ(Sound Decoder)101、グラフィックデコーダ102、及びレイアウトマネージャ103を有して構成される。アドバンスドアプリケーションプレゼンテーションエンジン100は、ナビゲーションマネージャ50からの指示に従い、様々な形式(例えば、PNG(Portable Network Graphics)、MNG(Multiple-Image Network Graphics)、又はJPEG(Joint Photographic Experts Group)等)の画像をデータキャッシュ40から読み出してデコードし、グラフィックプレーンに最終的な出力画像を作成してAVレンダラー80に出力するモジュールである。アドバンスドアプリケーションプレゼンテーションエンジン100は、データキャッシュ40から読み出したWAVファイルをLPCM(Linear Pulse Code Modulation)データに変換し、AVレンダラー80に出力するモジュールでもある。
グラフィックデコーダ102は、上述した形式の画像をデコードする処理と、デコード処理済み画像をピクセルバッファ104に登録又は削除する処理とを行う。
レイアウトマネージャ103は、グラフィックプレーン上に最終的な表示画像を構築する。このため、レイアウトマネージャ103は、アドバンスドアプリケーションマネージャ54から送れたレイアウト情報に従って、ピクセルバッファ104内に登録されたデコード処理済みの画像を読み込み、描画する。レイアウトマネージャ103は、フォントレンダリングシステム105に文字フォントの描画指示を送る。
図17及び図18に示された、標準的な構成のアドバンスドコントロールプレーヤは、通常、一つのCPUが組込プログラムに基づいた処理を実行することにより、機能的に実現される。これに対して、本実施形態に係るアドバンスドコントロールプレーヤACPは、上述したように、第1CPU1及び第2CPU2が組込プログラムに基づいた処理を実行することにより、機能的に実現される。このため、本実施形態では、第1CPU1により実現される機能と第2CPU2により実現される機能とを異ならせている。
第1CPU1は、ナビゲーションマネージャ50の処理とプレゼンテーションエンジン60の一部の処理とを担当する。第2CPU2は、データアクセスマネージャ30の処理とデータキャッシュ40の処理とAVレンダラー80の処理とプレゼンテーションエンジン60の一部の処理とを担当する。ここでは、I/Oアクセスを行うソフトウェアの下位層を第2CPU2が集約して実行すると共に第1CPU1と第2CPU2との間での通信の最適化等が図れるように、アドバンスドコントロールプレーヤの機能を分割している。
アドバンスドコントロールプレーヤの機能の分割を最適に行うために、本実施形態におけるアドバンスドコントロールプレーヤACPは、標準的な構成におけるプレゼンテーションエンジン60内のグラフィックデコーダ62、ピクセルバッファ63、及びフォントレンダリングシステム66の各機能を分割して、第1CPU1と第2CPU2とで分担処理するように構成されている。詳細を、図4に示す。
図4に示されるように、第1CPU1は、アドバンスドアプリケーションプレゼンテーションエンジン61、ピクセルバッファ63、フォントレンダリングシステムラッパー65、及びアドバンスドサブタイトルプレーヤ67としての処理を実行する。第2CPU2は、グラフィックデコーダ62、サーフェスマネージャ64、フォントレンダリングシステム66としての処理を実行する。アドバンスドアプリケーションプレゼンテーションエンジン61は、レイアウトマネージャ(Layout Manager)71及びグラフィックデコーダラッパー(Graphic Decoder Wrapper)72を有して構成されている。したがって、第1CPU1は、レイアウトマネージャ71及びグラフィックデコーダラッパー72としての処理も実行する。
図4に示された構成では、原則として、サーフェスの実体は、第2CPU2側でのみ使用されている。第1CPU1側では、サーフェスの実体の代わりに、第2CPU2側にて実現されるサーフェスマネージャ64が各サーフェスに付与した識別子(ID)が使用される。ここで、サーフェスとは、画像等のビットマップを格納するためのメモリ領域のことをいう。
ビットマップを扱う場合、グラフィックデコーダ62は、サーフェスマネージャ64に、幅と高さを指定してサーフェスの作成を要求する。サーフェスマネージャ64は、サーフェスの作成要求を受けて、自らが管理しているメモリに、指定されたサイズの画像を格納するための領域を確保する。サーフェスマネージャ64は、画像を格納する領域を確保すると、当該領域に固有のIDを付与し、このIDをグラフィックデコーダ62に送り返す。グラフィックデコーダ62は、サーフェスマネージャ64から送り返されたIDをグラフィックデコーダラッパー72に送る。これにより、第1CPU1側にて、サーフェスに付与したIDが使用可能となる。
第1CPU1側では、ビットマップ自体が直接参照されることはなく、ビットマップの代わりにIDが使用される。第1CPU1から第2CPU2へは、サーフェスに付与したIDに基づいて描画指示が出される。このため、第2CPU2側にて実現されるグラフィックデコーダ62やグラフィックレンダリングエンジン81等は、必要に応じて、サーフェスマネージャ64に描画指示が出されたIDを問い合わせ、当該IDが示すサーフェスの実体のアドレス等を取得する。
続いて、図7を参照して、ピクセルバッファ63、グラフィックデコーダラッパー72、グラフィックデコーダ62及びサーフェスマネージャ64について、更に説明する。
ピクセルバッファ63は、グラフィックデコーダ62が画像をデコードした際、同じ画像を次回からデコードせずに使い回せるようにデコードの結果を保管するモジュールである。ピクセルバッファ63は、デコードの結果として、後述するキーと、サーフェスに付与したIDとを関連付けて、データベース(キーとIDとの対応表)に登録する。ピクセルバッファ63は、フォントレンダリングシステム66が文字フォントをデコードした際、同じ文字フォントを次回からデコードせずに使い回せるようにデコードの結果を保管するモジュールでもある。
グラフィックデコーダラッパー72は、画像のデコード指示を受けると、画像ファイルのURI(ファイル名)からキーを作成し、ピクセルバッファ63に該当するキーが登録されているか否かをチェックする。URIは、Uniform Resource Identifierの略であり、DVD規格に従った形式でのパス情報が付いたファイル名である。HD−DVDコンテンツ内の各リソースは基本的にこのURIで指定される。
ピクセルバッファ63は、対応表内に同じキーがあった場合には、対応するサーフェスのIDをグラフィックデコーダラッパー72に返す。ピクセルバッファ63の対応表に指定されたキーが登録されていなかった場合、グラフィックデコーダラッパー72は、グラフィックデコーダ62にデコード処理の指示を送る。
グラフィックデコーダ62は、画像のサイズと、デコードした画像を格納するサーフェスのIDをグラフィックデコーダラッパー72に返す。グラフィックデコーダラッパー72は、画像のサイズ及びサーフェスのIDをキーとともにピクセルバッファ63に送る。ピクセルバッファ63は、送られたサーフェスのIDとキーとを対応表に登録する。
グラフィックデコーダ62からグラフィックデコーダラッパー72に返されるサーフェスのIDは、グラフィックデコーダ62からのサーフェスの作成要求に基づいて、サーフェスマネージャ64が作成したサーフェスに付与されたIDである。サーフェスマネージャ64は、図7に示されるように、サーフェスのIDと当該サーフェスが存在する実際のメモリのアドレスとを関連付けて登録したデータベース(IDとアドレスとの管理表)を有している。サーフェスマネージャ64は、この管理表により、各サーフェスの領域を管理している。
次に、図8を参照して、サーフェスマネージャ64の変形例を説明する。ここでは、第2CPU2側にて実現されるグラフィックデコーダ62の非同期動作化により、第1CPU1側にて実現されるプレゼンテーションエンジン60等がグラフィックデコーダ62の実際のデコード処理の完了を待つことなく処理を進めていくために必要な構成を説明する。
サーフェスマネージャ64は、サーフェス上での画像のデコード処理の進捗状態に関する情報を保有している。サーフェスマネージャ64は、管理表に、デコード処理の進捗状態に関する情報を、サーフェスのID及び当該サーフェスが存在する実際のメモリのアドレスに関連付けて登録する。これにより、第2CPU2側では、サーフェスのIDに基づいて、当該サーフェス上の画像が、デコード処理中なのか、あるいはデコード処理が完了して描画に使用できるのかを判断することができる。
上述したように、サーフェスマネージャ64がデコード処理の進捗状態に関する情報を保有することが、グラフィックデコーダ62の非同期動作を実現するための鍵となる。サーフェスマネージャ64がデコード処理の進捗状態に関する情報を保有していない場合、グラフィックデコーダラッパー72は、グラフィックデコーダ62での実際のデコード処理が完了するまで、当該デコード処理が完了したと判断できない。しかしながら、サーフェスマネージャ64がデコード処理の進捗状態に関する情報を保有している場合、グラフィックデコーダラッパー72は、グラフィックデコーダ62での実際のデコード処理の完了を待つことなく、当該デコード処理が完了したと判断する。これにより、第1CPU1側では、グラフィックデコーダ62の実際のデコーダ処理が完了する前に、次の処理を進めることができる。
再び、図3及び図4を参照する。第1CPU1はフォントレンダリングシステムラッパー65としての処理を実行し、第2CPU2はフォントレンダリングシステム66としての処理を実行する。フォントレンダリングシステムラッパー65は、文字フォントのラスタライズ指示を受け付ける窓口として機能するモジュールである。フォントレンダリングシステムラッパー65は、ラスタライズ指示を、フォントレンダリングシステム66に送る。フォントレンダリングシステム66は、フォントレンダリングシステムラッパー65からのラスタライズ指示を受けて、文字フォントをラスタライズするモジュールである。本実施形態では、文字フォントのラスタライズは、同期処理での実装としている。
続いて、図9を参照して、グラフィックデコーダ62の非同期動作に関し、ピクセルバッファ63に未登録の画像のデコード指示がプレゼンテーションエンジン60からグラフィックデコーダラッパー72に送られた場合の各モジュールの動作を説明する。
プレゼンテーションエンジン60(アドバンスドアプリケーションマネージャ54)は、画像のURIを指定してグラフィックデコーダラッパー72にデコード指示を送る。グラフィックデコーダラッパー72は、プレゼンテーションエンジン60からデコード指示を受けると、まず、ピクセルバッファ63に指定されたURIの画像が登録されているか否かを問い合わせる。問い合わせの結果、指定されたURIの画像がピクセルバッファ63に登録されていないと認識すると、グラフィックデコーダラッパー72は、グラフィックデコーダ62に指定されたURIの画像のデコード指示を送る。
グラフィックデコーダ62は、グラフィックデコーダラッパー72からデコード指示を受けると、指定されたURIの符号化された画像データをデータキャッシュ40から取得する。そして、グラフィックデコーダ62は、符号化された画像データのヘッダをデコードし、指定されたURIの画像のサイズを取得する。グラフィックデコーダ62は、画像のサイズを取得すると、取得したサイズのサーフェスの作成要求をサーフェスマネージャ64に送る。
サーフェスマネージャ64は、グラフィックデコーダ62からサーフェスの作成要求を受けると、要求されたサイズのサーフェスを作成する。このとき、サーフェスマネージャ64は、作成したサーフェスを識別するためのIDとアドレスとを管理表に登録し、サーフェスのIDをグラフィックデコーダ62に返す。
グラフィックデコーダ62は、作成されたサーフェスのIDをサーフェスマネージャ64から受け取ると、実際にデコード作業を行うデコードスレッド74にデコードに必要な情報とデコード指示を送る。実際には、グラフィックデコーダ62は、デコードスレッド74のコマンドキュー73にデコード指示を登録する。デコードスレッド74は、コマンドキュー73に登録されたデコード指示を順次実行する。これらにより、グラフィックデコーダ62は符号化された画像データをデコードし、サーフェスマネージャ64は対応するサーフェスにデコードされた画像データを格納する。
また、グラフィックデコーダ62は、デコード指示の受付の結果をグラフィックデコーダラッパー72に返す。デコード指示の受付が成功した場合、グラフィックデコーダ62は、上述した受付の結果と共に、画像のサイズやデコードされた画像が格納されるサーフェスのIDをグラフィックデコーダラッパー72に返す。
グラフィックデコーダラッパー72は、グラフィックデコーダ62から受け取った画像サイズやサーフェスID等の情報をピクセルバッファ63に送る。ピクセルバッファ63は、グラフィックデコーダラッパー72から送られた情報を、URIをキーとして対応表に登録する。
以上で、デコードの一連の処理は完了し、グラフィックデコーダラッパー72は、デコードの完了として処理を終了し、プレゼンテーションエンジン60にデコード完了の情報を送る。グラフィックデコーダ62内にあるデコードスレッド74がデコード処理を実際に完了するのは、グラフィックデコーダラッパー72が処理を終了した後になる。しかしながら、プレゼンテーションエンジン60は、デコード処理が完了したものとして、次の処理に進む。
次に、図10を参照して、デコード済みの画像をグラフィックプレーンに描画する処理について説明する。
レイアウトマネージャ71は、ティックベースとティックベースディバイザーで指定された周期毎に、アドバンスドコンテンツのマークアップにおけるz順序が小さい順にグラフィックプレーンに描画し、最終的なグラフィック画面を構築する。図10は、レイアウトマネージャ71がこのグラフィック画面の構築をおこなう一連の処理において、1枚の画像を描画する処理の流れを図示したものである。ここでは、上位側は、グラフィックをURIで処理しているため、描画指示もURIを指定して行う。
アドバンスドアプリケーションマネージャ54は、レイアウトマネージャ71に描画指示を送る。レイアウトマネージャ71は、アドバンスドアプリケーションマネージャ54からの描画指示を受けると、まず、描画指示にて指定されたURIの画像に対応するサーフェスのIDをピクセルバッファ63に問い合わせる。ピクセルバッファ63は、対応表を参照し、指定されたURIの画像に対応するサーフェスのIDを読み出し、レイアウトマネージャ71に返す。これにより、レイアウトマネージャ71は、指定されたURIの画像に対応するサーフェスのIDを取得する。
レイアウトマネージャ71は、自らが計算したレイアウト情報から描画すべき座標等を算出し、サーフェスのIDを指定してグラフィックレンダリングエンジン81に描画指示を出す。レイアウトマネージャ71は、基本的には、グラフィックプレーン上にグラフィック画面を構築する作業のすべてを担っているので、グラフィックプレーンのサーフェスのIDはレイアウトマネージャ71が管理している。
グラフィックレンダリングエンジン81は、レイアウトマネージャ71から描画指示を受けると、まず、サーフェスマネージャ64に、描画指示に含まれる画像のデコード処理の進捗状態を問い合わせる。画像の指定は、サーフェスのIDにより行う。サーフェスマネージャ64は、サーフェスのIDに基づいて、デコード処理の進捗状態に関する情報を管理表から読み出し、該情報をグラフィックレンダリングエンジン81に返す。
グラフィックレンダリングエンジン81は、サーフェスマネージャ64からデコード処理の進捗状態に関する情報を受け取り、描画指示に含まれている画像のデコード処理が未完了である場合、この時点でデコード処理が完了するまで待つ。一方、描画指示に含まれている画像のデコード処理が完了している場合、グラフィックレンダリングエンジン81は、サーフェスのIDに基づいて、描画指示に含まれている画像に対応するサーフェスのアドレスを問い合わせる。サーフェスマネージャ64は、サーフェスのIDに基づいて、サーフェスのアドレスを管理表から読み出し、読み出したサーフェスのアドレスをグラフィックレンダリングエンジン81に返す。これにより、グラフィックレンダリングエンジン81は、描画指示に含まれている画像が格納されたサーフェスのアドレスを取得する。
グラフィックレンダリングエンジン81は、サーフェスのアドレスを取得すると、グラフィックドライバに実際の描画指示を出す。グラフィックドライバ83は、グラフィックコントローラ6のレジスタを操作し、ハードウェアに描画指示を出す最下位層のモジュールである。グラフィックドライバ83は、第2CPU2により、その処理が実行される。グラフィックレンダリングエンジン81は、グラフィックドライバ83に描画指示を出して、実際に描画処理が完了すると、描画の実行結果をレイアウトマネージャ71に返す。
以上が、レイアウトマネージャ71がグラフィックプレーンに1枚の画像を描画するという処理の一連の流れである。これにより、グラフィックデコーダ62のデコード処理が非同期化された場合において、第1CPU1が処理を先に進めた場合でも、第2CPU2が描画の段階でデコードの完了を待ち合わせ、互いの処理のつじつまが合うようになる。
すなわち、図11に示されるように、第2CPU側にて実現されるグラフィックデコーダ62でのデコード処理が1周期内に完了しなくても、第1CPU1側にて実現されるナビゲーションエンジン(アドバンスドアプリケーションマネージャ54)及びプレゼンテーションエンジン60がこの影響を受けずに周期動作を継続する。アドバンスドコンテンツでは、マークアップ言語による記述の中の“style:display”という属性で、画像等のデコードタイミングを表示タイミングとは独立して指定できるようになっている。表示タイミングは、マークアップ言語による記述の中の“style:visibility”にて指定する。図11に示された例では、所定の1つの画像に絞って、当該画像に関する各種処理のタイミングを図示している。
図11に示された例では、時刻(アプリケーションクロック)n+5で表示を始めるということが指定されている。“style:display”では、時刻(アプリケーションクロック)n+2にてデコードを完了し、表示で使えるようにするということが指定されている。
第1CPU1側にて実現されるプレゼンテーションエンジン60(アドバンスドアプリケーションプレゼンテーションエンジン61)は、時刻(アプリケーションクロック)n+1で始まる処理において、第2CPU側にて実現されるグラフィックデコーダ62にデコード指示を送る。グラフィックデコーダ62は、デコード指示を受けてデコード処理を実行する。このとき、本来なら時刻(アプリケーションクロック)n+2で完了しなくてはいけないデコード処理が、時刻(アプリケーションクロック)n+3以降までかかっており、デコード処理の遅延が発生している。しかしながら、デコード処理は、上述したように、非同期動作とされているため、第1CPU1側にて実現されるナビゲーションエンジン及びプレゼンテーションエンジン60は、デコード処理の遅延の影響を受けることなく、周期的な処理を続行することができる。
第1CPU1側にて実現されるプレゼンテーションエンジン60(アドバンスドアプリケーションプレゼンテーションエンジン61のレイアウトマネージャ71)は、時刻(アプリケーションクロック)n+4で始まる処理において、描画用グラフィックプレーンへの描画指示をグラフィックレンダリングエンジン81に送る。グラフィックレンダリングエンジン81は、この描画指示を受けて、描画用グラフィックプレーンへの描画のための処理(例えば、BitBlt等)を実行する。描画用グラフィックプレーンへの描画が完了すると、時刻(アプリケーションクロック)n+5において、描画用グラフィックプレーンを表示用グラフィックプレーンとして切り換える。
また、第1CPU1側にて実現されるプレゼンテーションエンジン60(アドバンスドアプリケーションプレゼンテーションエンジン61のレイアウトマネージャ71)は、時刻(アプリケーションクロック)n+5で始まる処理において、描画用グラフィックプレーンへの描画指示をグラフィックレンダリングエンジン81に送る。グラフィックレンダリングエンジン81は、この描画指示を受けて、描画用グラフィックプレーンへの描画のための処理を実行する。描画用グラフィックプレーンへの描画が完了すると、時刻(アプリケーションクロック)n+6において、描画用グラフィックプレーンを表示用グラフィックプレーンとして切り換える。
以上の処理により、マークアップ言語による記述の中の“style:visibility”にて指定された期間、画像が表示されることとなる。図11に示された例では、アドバンスコンテンツの記述により、画像のデコード処理等によって表示が遅れないように表示する時刻より十分早いタイミングでデコード処理を開始させ、アドバンスドコントロールプレーヤACPの処理能力のバラツキが影響することなく任意のタイミングで画像の表示ができる。
ただし、図12に示されるように、アドバンスドコンテンツでは、“style:display”にて指定されたデコード処理を完了させる時刻と、“style:visibility”にて指定された表示を開始する時刻とがほぼ同じであると、グラフィックレンダリングエンジン81は、グラフィックデコーダ62でのデコード処理が完了するまで、描画用グラフィックプレーンへの描画のための処理を行うことができない。したがって、グラフィックデコーダ62のデコード処理が非同期化された場合でも、デコード処理時間による表示タイミングの遅延は避けられない。
次に、図13を参照して、第1CPU1と第2CPU2との間の通信回数を減らすことにより、更なる性能改善を図る例を説明する。
アドバンスドアプリケーションマネージャ54は、ティックベースとティックベースディバイザーで決まる周期を単位として、マークアップ言語で記述されたイベント処理、スクリプト言語で記述されたイベント処理、又は新たなグラフィック画面の描画等を行う。アドバンスドアプリケーションマネージャ54は、レイアウトマネージャ71を制御することにより、最終のグラフィック画面の描画を行う。グラフィックプレーンに画像を一つ一つ実際に描画して最終的なグラフィック画面を構築するのは、上述したように、レイアウトマネージャ71が行う。グラフィック描画のための実処理(例えば、BitBlt等)は、レイアウトマネージャ71の指示の下、同じく上述したように、グラフィックレンダリングエンジン81が行う。
図10を参照した上記説明では、レイアウトマネージャ71が、グラフィックレンダリングエンジン81に指示を出す際に、各画像の描画一つ一つについて、描画指示を個別に繰り返すことにより、最終的なグラフィック画面が構築される。
この場合、レイアウトマネージャ71からグラフィックレンダリングエンジン81に指示を出すと、第1CPU1と第2CPU2との間で通信を行うこととなるため、1回の描画指示を出す度に、第1CPU1と第2CPU2との間での通信時間が必要となる。このため、グラフィック画面を構築する際の1回1回の描画指示を個別に行うと、第1CPU1と第2CPU2との間での通信回数が膨大となり、時間がかかってしまう。
そこで、第1CPU1と第2CPU2との間の通信回数を減らすために、アドバンスアプリケーションマネージャからグラフィックレンダリングエンジン81への指示の送り方を変更する。すなわち、1フレーム分のグラフィック画面を構築する、アドバンスアプリケーションマネージャの1周分の処理の間に発行された描画指示を、一度もしくは数回にまとめてグラフィックレンダリングエンジン81に出す。
例えば、第1CPU1及び第2CPU2の両者からアクセスできる、データ受け渡し用のメモリ領域を確保する。そして、第1CPU1は、図13中の(a)に示されるように、このメモリ領域に、アドバンスアプリケーションマネージャの1周分の指示をコマンドとして並べて格納する。1周分の描画命令をすべて格納し終えた時点で、第1CPU1は、1周分の描画命令を格納し終えた旨を第2CPU2に割り込みで知らせる。第2CPU2は、1周分の描画命令を格納し終えた旨が知らされると、上記メモリ領域にアクセスして、格納された1周分の描画命令を読み出す。図13中の(b)に、各コードに対するコマンドの種類を示す。
ところで、アドバンスドコンテンツのマークアップには、“style:flip”というスタイル指定をおこなうことで、図14に示されるように、画像を反転表示する機能がある。しかしながら、グラフィックコントローラが2次元の描画機能しか有していないでは、画像を反転させながら描画する機能をサポートしていないことが多い。この場合、メモリ領域等にソフト的に反転した画像を一時的に生成してから、グラフィック画面の描画を行うことになるが、描画処理にかなりの時間が必要となる。図14中の(a)には、反転していない画像が示されている。図14中の(b)には、水平方向に反転した画像が示されている。図14中の(c)には、垂直方向に反転した画像が示されている。図14中の(d)には、水平方向及び垂直方向に反転した画像が示されている。
そこで、反転した画像の描画の指示がきた場合、1回目はソフト的な反転処理を行うが、2回目以降はこのソフト的な反転処理を行わなくてもよいように、サーフェスマネージャ64が反転画像をキャッシュする。この場合、図15に示されるように、サーフェスマネージャ64は、反転画像をキャッシュする反転画像用のキャッシュ領域を有し、このキャッシュ領域に反転画像をキャッシュするためのサーフェスを作成する。そして、サーフェスマネージャ64は、上述した管理表に、デコード処理の進捗状態に関する情報だけでなく、水平方向で反転した画像(水平反転画像)や垂直方向で反転した画像(垂直反転画像)等の各サーフェスのIDを登録する。管理表における、各反転画像のサーフェスのIDを登録する欄は、最初にサーフェスを割り当てた時点では、“NULL”になっている。
例えば、グラフィックレンダリングエンジン81から“サーフェス1”のIDが画像の垂直方向反転の指定付きで要求されると、サーフェスマネージャ64は、サーフェスの管理表を参照して、“サーフェス1”の行に垂直反転画像のサーフェス(ここでは、“サーフェス3”)のIDが既に登録されているか否かチェックする。垂直反転画像の“サーフェス3”のIDが登録されていれば、“サーフェス3”のIDに基づいて、“サーフェス3”の実体のアドレスを読み出す。そして、サーフェスマネージャ64は、読み出した“サーフェス3”の実体のアドレスをグラフィックレンダリングエンジン81に返す。
“サーフェス1”の行の垂直反転画像の欄が“NULL”である場合は、サーフェスマネージャ64は、反転画像用のキャッシュ領域に垂直反転画像を格納するための“サーフェス3”を確保する。そして、サーフェスマネージャ64は、確保した“サーフェス3”に、“サーフェス1”の画像を垂直反転させた画像を描画する。次に、サーフェスマネージャ64は、“サーフェス1”の垂直反転画像が格納されたキャッシャ上の“サーフェス3”の実体のアドレスを、“サーフェス3”のIDと関連付けて管理表に登録する。その後、サーフェスマネージャ64は、登録した“サーフェス3”の実体のアドレスをグラフィックレンダリングエンジン81に返す。
反転画像用のキャッシュ領域に十分な空き容量が存在しない場合には、サーフェスマネージャ64は、キャッシュ領域上の他の反転画像が描画されているサーフェスを開放し、キャッシュ領域に空きをつくる。このとき、サーフェスマネージャ64は、開放されたサーフェスに関する情報(サーフェスのID、アドレス、及びデコード処理の状態等)を管理表から削除する。この場合、マークアップ上で画像反転の指定が付いた画像が少ない場合、反転画像用のキャッシュ領域のサーフェスに一度置かれた反転画像は開放されない。したがって、同じ画像反転の指定が付いた画像が要求されるまで、反転画像は反転画像用のキャッシュ領域に残るため、画像の反転処理は最初の1回ですむ。この結果、“style:flip”の画像描画を効率化することができる。
図17及び図18に示された、標準的な構成のアドバンスドコントロールプレーヤでは、図19に示されるように、出力画面の生成が一つのCPUの処理に基づいて行われる。すなわち、一つのCPUが処理を実行することにより、プレゼンテーションエンジン60においてビデオプレーン、サブビデオプレーン、サブピクチャプレーン、及びグラフィックプレーンが作成され、AVレンダラー80(グラフィックレンダリングエンジン81)においてカーソルプレーンが作成され、AVレンダラー80において、これらのプレーンが合成されて出力画面が生成される。
これに対して、図3及び図4に示された、アドバンスドコントロールプレーヤACPでは、図16に示されるように、出力画面の生成が第1CPU1と第2CPU2との処理に基づいて行われる。すなわち、第1CPU1が処理を実行することにより、プレゼンテーションエンジン60のレイアウトマネージャ71によりピクセルバッファ63に登録されたサーフェスのIDに基づいてグラフィックプレーンへの描画が指示される。そして、第2CPU2が処理を実行することにより、グラフィックレンダリングエンジン81により描画指示されたサーフェスのIDに対応する画像がサーフェスマネージャ64から読み出され、グラフィックプレーンが作成される。このように、グラフィックプレーンを作成するための指示を第1CPU1が行い、グラフィックプレーンを作成するための実作業を第2CPU2が行う。
プレゼンテーションエンジン60においてビデオプレーン、サブビデオプレーン、サブピクチャプレーン、及びカーソルプレーンは、第2CPU2が処理を実行することにより機能する各モジュールにより生成される。各プレーンを合成した出力画面は、第2CPU2が処理を実行することにより機能するAVレンダラー80(グラフィックレンダリングエンジン81)により生成される。
本実施形態では、上述したように、第1CPU1と第2CPU2とにおいて、グラフッィクプレーンへの描画のための各種処理が分担されているので、アドバンスコンテンツを再生する場合でも、グラフィックの描画パフォーマンスが低下するのを防ぐことができる。
また、第1CPU1及び第2CPU2には、高性能なCPUを用いるのではなく、演算処理能力が比較的低いCPUを用いることも可能である。これにより、安価なシステムを実現することが可能である。
以上、本発明の好適な実施形態について説明してきたが、本発明は必ずしも上述した実施形態に限定されるものではなく、その要旨を逸脱しない範囲で様々な変更が可能である。例えば、本発明は、実施形態として示したHD−DVDビデオプレーヤのみならず、アドバンスコンテンツを再生するための情報再生機能を有した機器に適用することができる。
1…第1CPU、2…第2CPU、40…データキャッシュ、50…ナビゲーションマネージャ、54…アドバンスドアプリケーションマネージャ、60…プレゼンテーションエンジン、61…アドバンスドアプリケーションプレゼンテーションエンジン、62…グラフィックデコーダ、63…ピクセルバッファ、64…サーフェスマネージャ、65…フォントレンダリングシステムラッパー、66…フォントレンダリングシステム、70…デコーダエンジン、71…レイアウトマネージャ、72…グラフィックデコーダラッパー、80…AVレンダラー、81…グラフィックレンダリングエンジン、100…アドバンスドアプリケーションプレゼンテーションエンジン、102…グラフィックデコーダ、103…レイアウトマネージャ、104…ピクセルバッファ、105…フォントレンダリングシステム、ACP…アドバンスドコントロールプレーヤ。
Claims (15)
- 相互に通信可能な第1CPUと第2CPUとを備えており、
前記第1CPUは、グラフィックデコーダラッパーとピクセルバッファとしての処理を実行し、
前記第2CPUは、グラフィックデコーダとサーフェスマネージーとしての処理を実行することを特徴とする情報再生装置。 - 前記グラフィックデコーダラッパーは、前記グラフィックデコーダにデコード指示を送り、
前記グラフィックデコーダは、前記グラフィックデコーダラッパーからのデコード指示に基づいて、前記サーフェスマネージーにサーフェス作成要求を送ると共に、符号化された画像データをデコードし、
前記サーフェスマネージャは、前記グラフィックデコーダからのサーフェス作成要求に基づいてサーフェスを作成し、該サーフェスに前記グラフィックデコーダにてデコードされた画像データを格納し、
前記ピクセルバッファは、前記グラフィックデコーダから送られた情報に基づいて、前記サーフェスマネージャにて作成された前記サーフェスを識別するための情報を登録する請求項1に記載の情報再生装置。 - 前記第2CPUは、データキャッシュとしての処理を更に実行し、
前記データキャッシュは、符号化された画像データが格納され、
前記グラフィックデコーダは、前記データキャッシュに格納された符号化された画像データをデコードする請求項2に記載の情報再生装置。 - 前記サーフェスマネージャは、サーフェスを作成すると、該サーフェスを識別する識別子を作成して、前記グラフィックデコーダに送り、
前記グラフィクデコーダは、前記サーフェスマネージャから送られた前記識別子を前記グラフィックデコーダラッパーに送り、
前記ピクセルバッファは、前記グラフィックデコーダラッパーに送られた前記識別子を、前記サーフェスマネージャにて作成された前記サーフェスを識別するための前記情報として、該サーフェスに格納された画像データのファイル名と関連付けて登録する請求項2に記載の情報再生装置。 - 前記サーフェスマネージャは、前記サーフェスを識別する前記識別子と、画像が格納される前記サーフェスのアドレスとを関連付けて登録することを特徴とする請求項4に記載の情報再生装置。
- 前記サーフェスマネージャは、前記サーフェスを識別する前記識別子と、画像が格納される前記サーフェスのアドレスと、前記サーフェスでのデコードの状態とを関連付けて登録することを特徴とする請求項4に記載の情報再生装置。
- 前記グラフィックデコーダラッパーは、デコード指示を行う画像データのファイル名に対応する識別子が前記ピクセルバッファに登録されているか否かを確認し、該識別子が登録されていない場合に、前記グラフィックデコーダにデコード指示を送る請求項4に記載の情報再生装置。
- 前記グラフィックデコーダラッパーは、前記グラフィックデコーダにデコード指示を送り、該デコード指示を前記グラフィックデコーダが受け付けた際に、デコードの完了とする請求項2に記載の情報再生装置。
- 前記第1CPUは、フォントレンダリングシステムラッパーとしての処理を更に実行し、
前記第2CPUは、フォントレンダリングシステムとしての処理を更に実行し、
前記フォントレンダリングシステムラッパーは、前記フォントレンダリングシステムにラスタライズ指示を送り、
前記フォントレンダリングシステムは、前記フォントレンダリングシステムラッパーからのラスタライズ指示に基づいて、文字フォントをラスタライズする請求項2に記載の情報再生装置。 - 前記第1CPUは、アドバンスドアプリケーションマネージャとレイアウトマネージャとしての処理を更に実行し、
前記第2CPUは、グラフィックレンダリングエンジンとしての処理を更に実行し、
前記アドバンスドアプリケーションマネージャは、前記レイアウトマネージャに描画指示を送り、
前記レイアウトマネージャは、前記アドバンスドアプリケーションマネージャからの描画に基づいて、該描画指示にて指定される画像の描画指示を前記グラフィックレンダリングエンジンに送り、
前記グラフィックレンダリングエンジンは、前記レイアウトマネージャから送られた描画指示に基づいて、該描画指示に対応する前記サーフェスの情報を前記サーフェスマネージャから取得する請求項2に記載の情報再生装置。 - 前記グラフィックレンダリングエンジンは、前記レイアウトマネージャから描画指示が送られると、該描画指示に対応する前記サーフェスでのデコードの状態を確認し、デコードが完了していない場合には、デコードの完了を待つ請求項10に記載の情報再生装置。
- 前記レイアウトマネージャが、前記グラフィックレンダリングエンジンに描画指示を送る際に、複数の描画指示をまとめて送る請求項10に記載の情報再生装置。
- 前記サーフェスマネージャは、前記サーフェスに格納された前記画像データによる画像の反転画像の画像データを新たなサーフェスに格納する請求項2に記載の情報再生装置。
- 前記サーフェスマネージャは、前記反転画像の画像データが格納された前記サーフェスを識別する識別子を作成する請求項13に記載の情報再生装置。
- 相互に通信可能な第1CPUと第2CPUとによる情報再生方法であって、
前記第1CPUに、グラフィックデコーダラッパーとピクセルバッファとしての処理を実行させ、
前記第2CPUに、グラフィックデコーダとサーフェスマネージーとしての処理を実行させることを特徴とする情報再生方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006287700A JP2008108296A (ja) | 2006-10-23 | 2006-10-23 | 情報再生装置及び情報再生方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006287700A JP2008108296A (ja) | 2006-10-23 | 2006-10-23 | 情報再生装置及び情報再生方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008108296A true JP2008108296A (ja) | 2008-05-08 |
Family
ID=39441545
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006287700A Pending JP2008108296A (ja) | 2006-10-23 | 2006-10-23 | 情報再生装置及び情報再生方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008108296A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010113731A1 (ja) * | 2009-04-03 | 2010-10-07 | ソニー株式会社 | 情報処理装置、情報処理方法、及び、プログラム |
JP2012134992A (ja) * | 2009-04-03 | 2012-07-12 | Sony Corp | 情報処理装置、情報処理方法、及び、プログラム |
CN110333835A (zh) * | 2019-05-09 | 2019-10-15 | 百度在线网络技术(北京)有限公司 | 车载数据图像的显示方法、系统、电子设备及计算机可读介质 |
CN115734013A (zh) * | 2021-08-30 | 2023-03-03 | 华东师范大学 | 一种使用独立字幕播放器应用为视频播放字幕的方法和系统 |
-
2006
- 2006-10-23 JP JP2006287700A patent/JP2008108296A/ja active Pending
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2010113731A1 (ja) * | 2009-04-03 | 2010-10-07 | ソニー株式会社 | 情報処理装置、情報処理方法、及び、プログラム |
JP2010259052A (ja) * | 2009-04-03 | 2010-11-11 | Sony Corp | 情報処理装置、情報処理方法、及び、プログラム |
JP2012134992A (ja) * | 2009-04-03 | 2012-07-12 | Sony Corp | 情報処理装置、情報処理方法、及び、プログラム |
US8718355B2 (en) | 2009-04-03 | 2014-05-06 | Sony Corporation | Information processing device, information processing method, and program |
US9225956B2 (en) | 2009-04-03 | 2015-12-29 | Sony Corporation | Information processing device, information processing method, and program |
CN110333835A (zh) * | 2019-05-09 | 2019-10-15 | 百度在线网络技术(北京)有限公司 | 车载数据图像的显示方法、系统、电子设备及计算机可读介质 |
CN110333835B (zh) * | 2019-05-09 | 2023-07-25 | 阿波罗智联(北京)科技有限公司 | 车载数据图像的显示方法、系统、电子设备及计算机可读介质 |
CN115734013A (zh) * | 2021-08-30 | 2023-03-03 | 华东师范大学 | 一种使用独立字幕播放器应用为视频播放字幕的方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8799757B2 (en) | Synchronization aspects of interactive multimedia presentation management | |
JP4907653B2 (ja) | メディア・コンテンツのレンダリングの諸側面 | |
US7721308B2 (en) | Synchronization aspects of interactive multimedia presentation management | |
JP5015150B2 (ja) | 対話式マルチメディア環境の状態変化への宣言式応答 | |
JP5553608B2 (ja) | メディアコンテンツをレンダリングするタイミングの態様 | |
US8020084B2 (en) | Synchronization aspects of interactive multimedia presentation management | |
US20070006065A1 (en) | Conditional event timing for interactive multimedia presentations | |
US20070101265A1 (en) | Information storage medium, information playback apparatus, information playback method, and information playback program | |
JP2006033841A (ja) | デジタル再生のための画面探索方法及び画面探索装置 | |
JP2008108296A (ja) | 情報再生装置及び情報再生方法 | |
US7650063B2 (en) | Method and apparatus for reproducing AV data in interactive mode, and information storage medium thereof | |
JP2007516550A (ja) | 再生装置、再生方法及び前記再生方法を行うプログラムが記録されたコンピュータで読み取り可能な記録媒体 | |
JP2009003370A (ja) | 情報再生装置 | |
JP2009016931A (ja) | グラフィクス処理方法、グラフィクスプロセッサ、および映像再生装置 | |
US20070006062A1 (en) | Synchronization aspects of interactive multimedia presentation management | |
CN117857872A (zh) | 一种内存处理方法及显示设备 | |
JP2008152478A (ja) | データ再生装置 | |
KR20070103279A (ko) | 데이터 재생방법 및 재생장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20080806 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20080718 |