以下、本発明の実施の形態について、図面を参照しながら説明する。
図1は、本発明に係る情報処理装置として適用可能な携帯電話機1の外観の構成を表している。なお、図1(A)は、携帯電話機1を約180度に見開いたときの正面から見た外観の構成を表しており、図1(B)は、携帯電話機1を見開いたときの側面から見た外観の構成を表している。
図1(A)および(B)に示されるように、携帯電話機1は、中央のヒンジ部11を境に第1の筐体12と第2の筐体13とがヒンジ結合されており、ヒンジ部11を介して矢印X方向に折り畳み可能に形成される。携帯電話機1の内部の所定の位置には、送受信用のアンテナ(後述する図2のアンテナ31)が設けられており、内蔵されたアンテナを介して基地局(図示せず)との間で電波を送受信する。
第1の筐体12には、その表面に「0」乃至「9」の数字キー、発呼キー、リダイヤルキー、終話・電源キー、クリアキー、および電子メールキーなどの操作キー14が設けられており、操作キー14を用いて各種指示を入力することができる。
第1の筐体12には、操作キー14として上部に十字キーと確定キーが設けられており、ユーザが十字キーを上下左右方向に操作することにより当てられたカーソルを上下左右方向に移動させることができる。具体的には、第2の筐体13に設けられたメインディスプレイ17に表示されている電話帳リストや電子メールのスクロール動作、簡易ホームページのページ捲り動作および画像の送り動作などの種々の動作を実行する。
また、確定キーを押下することにより、種々の機能を確定することができる。例えば第1の筐体12は、ユーザによる十字キーの操作に応じてメインディスプレイ17に表示された電話帳リストの複数の電話番号の中から所望の電話番号が選択され、確定キーが第1の筐体12の内部方向に押圧されると、選択された電話番号を確定して電話番号に対して発呼処理を行う。
さらに、第1の筐体12には、十字キーと確定キーの左隣に電子メールキーが設けられており、電子メールキーが第1の筐体12の内部方向に押圧されると、メールの送受信機能を呼び出すことができる。十字キーと確定キーの右隣には、ブラウザキーが設けられており、ブラウザキーが第1の筐体12の内部方向に押圧されると、Webページのデータを閲覧することが可能となる。
また、第1の筐体12には、操作キー14の下部にマイクロフォン15が設けられており、マイクロフォン15によって通話時のユーザの音声を集音する。また、第1の筐体12には、携帯電話機1の操作を行うサイドキー16が設けられている。
なお、第1の筐体12は、背面側に図示しないバッテリパックが挿着されており、終話・電源キーがオン状態になると、バッテリパックから各回路部に対して電力が供給されて動作可能な状態に起動する。
一方、第2の筐体13には、その正面にメインディスプレイ17が設けられており、電波の受信状態、電池残量、電話帳として登録されている相手先名や電話番号及び送信履歴等の他、電子メールの内容、簡易ホームページ、CCD(Charge Coupled Device)カメラ(後述する図2のCCDカメラ20)で撮像した画像、外部のコンテンツサーバ(図示せず)より受信したコンテンツ、メモリカード(後述する図2のメモリカード46)に記憶されているコンテンツを表示することができる。また、メインディスプレイ17の上部の所定の位置にはレシーバ(受話器)18が設けられており、これにより、ユーザは音声通話することが可能である。なお、携帯電話機1の所定の位置には、レシーバ18以外の音声出力部としてのスピーカ(図2のスピーカ50)も設けられている。
また、第1の筐体12と第2の筐体13の内部の所定の位置には、携帯電話機1の状態を検知するための磁気センサ19a、19b、19c、および19dが設けられる。なお、メインディスプレイ17は、例えば有機ELにより構成されるディスプレイでもよいし、液晶ディスプレイ(Liquid Crystal Display)でもよい。
図2は、本発明に係る情報処理装置に適用可能な携帯電話機1の内部の構成を表している。図示せぬ基地局から送信されてきた無線信号は、アンテナ31で受信された後、アンテナ共用器(DUP)32を介して受信回路(RX)33に入力される。受信回路33は、受信された無線信号を周波数シンセサイザ(SYN)34から出力された局部発振信号とミキシングして中間周波数信号に周波数変換(ダウンコンバート)する。そして、受信回路33は、このダウンコンバートされた中間周波数信号を直交復調して受信ベースバンド信号を出力する。なお、周波数シンセサイザ34から発生される局部発振信号の周波数は、制御部41から出力される制御信号SYCによって指示される。
受信回路33からの受信ベースバンド信号は、CDMA信号処理部36に入力される。CDMA信号処理部36は、図示せぬRAKE受信機を備える。このRAKE受信機では、受信ベースバンド信号に含まれる複数のパスがそれぞれの拡散符号(すなわち、拡散された受信信号の拡散符号と同一の拡散符号)で逆拡散処理される。そして、この逆拡散処理された各パスの信号は、位相が調整された後、コヒーレントRake合成される。Rake合成後のデータ系列は、デインタリーブおよびチャネル復号(誤り訂正復号)が行われた後、2値のデータ判定が行われる。これにより、所定の伝送フォーマットの受信パケットデータが得られる。この受信パケットデータは、圧縮伸張処理部37に入力される。
圧縮伸張処理部37は、DSP(Digital Signal Processor)などにより構成され、CDMA信号処理部36から出力された受信パケットデータを図示せぬ多重分離部によりメディアごとに分離し、分離されたメディアごとのデータに対してそれぞれ復号処理を行う。例えば通話モードにおいては、受信パケットデータに含まれる通話音声などに対応するオーディオデータをスピーチコーデックにより復号する。また、例えばテレビ電話モードなどのように、受信パケットデータに動画像データが含まれていれば、この動画像データをビデオコーデックにより復号する。さらに、受信パケットデータがダウンロードコンテンツであれば、このダウンロードコンテンツを伸張した後、伸張されたダウンロードコンテンツを制御部41に出力する。
復号処理により得られたディジタルオーディオ信号はPCMコーデック38に供給される。PCMコーデック38は、圧縮伸張処理部37から出力されたディジタルオーディオ信号をPCM復号し、PCM復号後のアナログオーディオデータ信号を受話増幅器39に出力する。このアナログオーディオ信号は、受話増幅器39にて増幅された後、レシーバ18により出力される。
圧縮伸張処理部37によりビデオコーデックにて復号されたディジタル動画像信号は、制御部41に入力される。制御部41は、圧縮伸張処理部37から出力されたディジタル動画像信号に基づく動画像を、表示駆動部51に内蔵された画像メモリ52(例えばVRAMなど)を介してメインディスプレイ17に表示させる。このとき、ディジタル動画像信号に基づく動画像は、必要に応じて、表示駆動部51に内蔵された画像合成回路52にて合成されるとともに、合成結果の合成画像は画像データ転送回路54によってメインディスプレイ17に転送される。この画像データ転送回路54は、例えばDMA(Direct Memory Access)コントローラなどからなる。
なお、制御部41は、受信された動画像データだけでなく、CCDカメラ20により撮像された動画像データに関しても、表示駆動部51の画像メモリ52を介してメインディスプレイ17に表示させることも可能である。
また、圧縮伸張処理部37は、受信パケットデータが電子メールである場合、この電子メールを制御部41に供給する。制御部41は、圧縮伸張処理部37から供給された電子メールを記憶部42に記憶させる。そして、制御部41は、ユーザによる入力部としての操作キー14の操作に応じて、記憶部42に記憶されているこの電子メールを読み出し、読み出された電子メールをメインディスプレイ17に表示させる。
一方、通話モードにおいて、マイクロフォン15に入力された話者(ユーザ)の音声信号(アナログオーディオ信号)は、送話増幅器40により適正レベルまで増幅された後、PCMコーデック38によりPCM符号化される。このPCM符号化後のディジタルオーディオ信号は、圧縮伸張処理部37に入力される。また、CCDカメラ20から出力される動画像信号は、制御部41によりディジタル化されて圧縮伸張処理部37に入力される。さらに、制御部41にて作成されたテキストデータである電子メールも、圧縮伸張処理部37に入力される。
圧縮伸張処理部37は、PCMコーデック38から出力されたディジタルオーディオ信号を所定の送信データレートに応じたフォーマットで圧縮符号化する。これにより、オーディオデータが生成される。また、圧縮伸張処理部37は、制御部41から出力されたディジタル動画像信号を圧縮符号化して動画像データを生成する。そして、圧縮伸張処理部37は、これらのオーディオデータや動画像データを図示せぬ多重分離部で所定の伝送フォーマットに従って多重化した後にパケット化し、パケット化後の送信パケットデータをCDMA信号処理部36に出力する。なお、圧縮伸張処理部37は、制御部41から電子メールが出力された場合にも、この電子メールを送信パケットデータに多重化する。
CDMA信号処理部36は、圧縮伸張処理部37から出力された送信パケットデータに対し、送信チャネルに割り当てられた拡散符号を用いてスペクトラム拡散処理を施し、スペクトラム拡散処理後の出力信号を送信回路(TX)35に出力する。送信回路35は、スペクトラム拡散処理後の信号をQPSK(Quadrature Phase Shift Keying)方式などのディジタル変調方式を使用して変調する。送信回路35は、ディジタル変調後の送信信号を、周波数シンセサイザ34から発生される局部発振信号と合成して無線信号に周波数変換(アップコンバート)する。そして、送信回路35は、制御部41により指示される送信電力レベルとなるように、このアップコンバートにより生成された無線信号を高周波増幅する。この高周波増幅された無線信号は、アンテナ共用器32を介してアンテナ31に供給され、このアンテナ31から図示せぬ基地局に向けて送信される。
また、携帯電話機1は、外部メモリインタフェース45を備えている。この外部メモリインタフェース45は、メモリカード46を着脱することが可能なスロットを備えている。メモリカード46は、NAND型フラッシュメモリカードやNOR型フラッシュメモリカードなどに代表されるフラッシュメモリカードの一種であり、10ピン端子を介して画像や音声、音楽等の各種データの書き込み及び読み出しが可能となっている。さらに、携帯電話機1には、現在の正確な現在の時刻を測定する時計回路(タイマ)47が設けられている。
制御部41は、CPU(Central Processing Unit)、ROM(Read Only Memory)、およびRAM(Random Access Memory)などからなり、CPUは、ROMに記憶されているプログラムまたは記憶部42からRAMにロードされた、オペレーティングシステム(OS)を含む各種のアプリケーションプログラムに従って各種の処理を実行するとともに、種々の制御信号を生成し、各部に供給することにより携帯電話機1を統括的に制御する。RAMは、CPUが各種の処理を実行する上において必要なデータなどを適宜記憶する。
記憶部42は、例えば、電気的に書換えや消去が可能な不揮発性メモリであるフラッシュメモリ素子やHDD(Hard Disc Drive)などからなり、制御部41のCPUにより実行される種々のアプリケーションプログラムや種々のデータ群を格納している。
電源回路44は、バッテリ43の出力を基に所定の動作電源電圧Vccを生成して各回路部に供給する。また、地上波ディジタルワンセグ受信部48は、図示せぬ放送局からの地上波ディジタルワンセグ放送波や地上波ディジタルラジオ放送波を受信し、受信された地上波ディジタルワンセグ放送波や地上波ディジタルラジオ放送波に基づくTS(Transport Stream)信号を地デジ処理部49に供給する。地デジ処理部49は、地上波ディジタルワンセグ受信部48にて地上波ディジタルワンセグ放送波が受信された場合、地上波ディジタルワンセグ受信部48からの地上波ディジタルワンセグ放送波に基づくTS信号から、音声データと映像データに関するES(Elementary Stream)にそれぞれ分離し、分離された音声データを地デジ処理部49内の音声デコーダ(図示せず)にて所定の復号化方式でデコードするとともに、分離された映像データを地デジ処理部49内の映像デコーダ(図示せず)にて所定の復号化方式でデコードし、デコード後のディジタル音声信号とディジタル動画像信号を制御部41に供給する。
従来では、携帯電話機1の例えばメインディスプレイ17に画像を表示する場合、図3の概念図に示されるように、UI系のアプリケーションにより生成される画像データを表示するUI画面レイヤ(論理層)と、主として動画像に関するマルチメディア系のアプリケーションにより生成される画像データを表示するマルチメディア画面レイヤが存在し、それぞれのレイヤの画像データを合成し、合成処理後の合成画像データをメインディスプレイ17に転送して表示する。
図3の場合、必要に応じて、UI系のアプリケーションによって、UI画面レイヤに表示させる画像データを描画する描画処理が実行されるとともに、マルチメディア系のアプリケーションによって、マルチメディア画面レイヤに表示させる画像データを描画する描画処理が実行される。次に、各レイヤに表示される画像データを合成する合成処理が実行され、合成処理後の合成画像データがメインディスプレイに転送されて表示される。これらの処理は、並行して実行される。
このとき、いずれかのレイヤに対してアプリケーション(UI系のアプリケーション、またはマルチメディア系のアプリケーション)から更新要求があると、メインディスプレイ17に表示される表示画面を構成するすべてのレイヤの画像が参照された上で、合成処理が実行され、合成結果である合成画像データがメインディスプレイ17に表示される。すなわち、従来の画像更新処理においては、UI画面レイヤの更新処理とマルチメディア画面レイヤの更新処理とが区別されることなく実行されていた。そして、UI系のアプリケーションからUI画面レイヤに対して行われる更新要求と、マルチメディア系のアプリケーションからマルチメディア画面レイヤに対して行われる更新要求とは同期せずに(すなわち、非同期で)行われるため、更新要求に伴う画面更新処理は個別に発生するとともに、画面更新を実行するミドルウェアおよび表示制御ドライバは、更新要求の発生順に、画面更新処理を実行していた。そのため、表示画面に表示される画像のデータ量が増加すると、1回の画面更新により多くの時間を要してしまい、ユーザの操作に対する応答性が悪くなってしまう。
また、動画像を再生する場合には、画像のちらつきなどの違和感をユーザに与えることを防止する観点から、例えば30フレーム/秒(1秒間に30フレーム)の更新回数を維持するという制約も課せられている。しかしながら、動画像を再生中(マルチメディア画面レイヤに所定の時間ごとに更新要求が発生しているとき)にUI画面レイヤへの更新要求が発生した場合、UI画面レイヤに対して行われる更新要求と、マルチメディア画面レイヤに対して行われる更新要求とがほぼ同時期に重畳して発生し、更新要求に伴う画面更新処理の発生順に画面更新処理が実行されると、マルチメディア画面レイヤにおける画面の更新に関し、例えば30フレーム/秒の制約を維持することができない場合が生じてしまう。
具体的には、図4に示されるように、例えば1秒間に30フレームの更新を行う動画像の再生において、マルチメディア系のアプリケーションからマルチメディア画面レイヤに対して更新要求を行い、第1フレーム乃至第3フレームに関する画面更新処理を行う場合を想定する。このとき、第2フレームに関する画面更新処理の実行中に、UI系のアプリケーションからUI画面レイヤに対して更新要求が行われ、UI画面レイヤの更新処理(例えばピクトの更新処理やボリューム表示の更新処理など)が割り込むと、その割込みに従ってUI画面レイヤの画面更新処理が実行されてしまう。その結果、マルチメディア画面レイヤの第2フレームに関する画面更新処理の開始が遅れてしまい、フレームのコマ落ちが発生してしまう。
そこで、本発明においては、以下のような制御を行う。なお、この本発明の概念は図5に示される。図5に示した各レイヤ(UI画面レイヤとマルチメディア画面レイヤ)は、用途に応じて異なる属性が予め設けられている。UI画面レイヤの場合、UI系のアプリケーションからUI画面レイヤに対して更新要求が行われると、UI系のアプリケーションにより生成された画像データのコピー(複製)を作成・保持しておき、その後、表示制御ドライバに対して更新要求を行う。それに対して、マルチメディア系の画面レイヤの場合、マルチメディア系のアプリケーションにより生成された画像データは画面表示ミドルウェア内でコピーの作成・保持を行わず、表示制御ドライバに対して更新要求を行う。表示制御ドライバは、更新要求に伴う画面更新処理を行い、画像データを合成する合成処理を実行し、合成処理後の合成画像をメインディスプレイに転送する。
マルチメディア系のアプリケーションからマルチメディア画面レイヤに対して更新要求が開始された後、UI画面レイヤへの更新要求が行われた場合、UI系アプリケーションによる更新要求がマルチメディア系のアプリケーションによる更新要求と重畳するため、
画面表示ミドルウェアによってUI系のアプリケーションにより作成された画像データのコピーの作成・保持のみを行い、合成処理および転送処理を省略する。そして、その後に行われるマルチメディア画面レイヤにおける画面更新処理時に合わせて、表示制御ドライバが、更新されたマルチメディア画面レイヤと保持されているUI系のアプリケーションにより作成された画像データのコピーとの合成処理を行い、合成された画像データの転送処理を行うようにする。
そして、上位のアプリケーション(例えばUI系のアプリケーションやマルチメディア系のアプリケーション)になるべく修正を発生させないようにするために、画像表示に関するミドルウェア(以下、「画面表示ミドルウェア」という。)が、上記のような制御を行う。これにより、複数のアプリケーションから非同期で発生する複数の更新要求に伴う画面更新処理を必要に応じて一元的に管理することができ、表示画面に表示される画像データのデータ量が増加した場合であっても、画面を全体として効率的に更新することが可能となる。以下、この方法を用いた携帯電話機1における表示処理について説明する。
まず、図6のフローチャートを参照して、マルチメディア系のアプリーションが実行されていない状態で、UI系のアプリケーションからUI画面レイヤに対して更新要求が行われた場合での、図2の携帯電話機1における表示処理について説明する。なお、UI系のアプリケーション、マルチメディア系のアプリケーション、画面表示ミドルウェア、および表示制御ドライバはソフトウェアであり、制御部41のRAM上に展開された上でCPUにより実行される。
ステップS1において、UI系のアプリケーションは、例えばピクトに表示される電池残存量が変化して電池残存量を示すアイコンを変更するタイミングや、動画再生中に入力部を用いたユーザ操作によってボリュームが変更されてボリュームを示す表示を変更するタイミングで、UI画面レイヤに対して画面更新要求を行う。この画面更新要求には、UI系のアプリケーションにより生成された画像データが付加されている。画面表示ミドルウェアは、UI系のアプリケーションからの画面更新要求を受け取ると、画面更新要求があった画面レイヤの属性(すなわち、UI画面レイヤであるか、マルチメディア画面レイヤであるかの属性)を判定し、画面更新要求があった画面レイヤがUI画面レイヤであると判定した場合、ステップS11でUI系のアプリケーションによって生成された新たな画像データのコピー(複製)を作成し、作成された画像データのコピーを制御部41のRAM上に保持する。
ステップS12において、画面表示ミドルウェアは、UI系のアプリケーションに対して、画面更新要求処理伴う画面更新処理に関する処理受付応答を通知する。このとき、UI系のアプリケーションは、画面表示ミドルウェアからの処理受付応答を受け取ると、画面表示ミドルウェアによって画面更新処理が受け付けられたと認識する。
ステップS13において、画面表示ミドルウェアは、UI系のアプリケーションから受け取った画面更新要求に伴う画面更新処理を表示制御ドライバに実行させるため、UI画面レイヤにおける画面更新要求を、表示制御ドライバに通知する。この表示制御ドライバへの画面更新要求には、UI系のアプリケーションにより生成された新たな画像データが付加されている。表示制御ドライバは、画面表示ミドルウェアからのUI画面レイヤにおける画面更新要求を受け取ると、ステップS21で表示駆動部51を制御し、UI画面レイヤにおける画面更新要求に付加された画像データに基づいて合成処理を実行させる。表示駆動部51の画像合成回路53は、表示制御ドライバの制御に従い、合成処理を行い、合成結果の合成画像データを画像データ転送回路54に出力する。このとき、合成結果の合成画像データは、表示駆動部51の画像メモリ52に一時的にバッファリング(保持)される。
ステップS22において、表示制御ドライバは、画像データ転送回路54を制御し、合成結果の合成画像データをメインディスプレイ17に転送させる。画像データ転送回路54は、表示制御ドライバの制御に従い、合成画像データをメインディスプレイ17に転送する。画像データ転送回路54からメインディスプレイ17に合成画像データを転送する場合、転送開始から転送終了までに、合成画像データのデータ量に応じて所要の転送時間がかかる。
ステップS23において、表示制御ドライバは、画像データ転送回路54による合成画像データの転送処理を開始すると、メインディスプレイ17からの転送完了通知を受け取る前に、画像合成回路53による合成処理を完了したことを示す合成完了を、画面表示ミドルウェアに通知する。画面表示ミドルウェアは、表示制御ドライバからの合成完了通知を受け取ると、表示駆動部51の画像合成回路35における合成処理が完了したと認識し、ステップS14で画面更新処理の完了をUI系のアプリケーションに通知する。このとき、UI系のアプリケーションは、画面表示ミドルウェアからの画面更新処理完了通知を受け取ると、UI画面レイヤにおける画面更新処理が完了したと認識する。
その後、画像データ転送回路54からメインディスプレイ17への合成画像データの転送処理が完了した場合、メインディスプレイ17はステップS31で、合成画像データの転送完了を表示制御ドライバに通知する。表示制御ドライバは、メインディスプレイ17からの転送完了通知を受け取ると、ステップS24で合成画像データの転送完了を画面表示ミドルウェアに通知する。なお、画面表示ミドルウェアは、合成画像データの転送完了通知を表示制御ドライバから受け取ったとしても、上位のUI系のアプリケーションに合成画像データの転送完了通知は行わない。
次に、図7のフローチャートを参照して、マルチメディア系のアプリーションが実行されている状態で、マルチメディア系のアプリケーションからマルチメディア画面レイヤに対して更新要求が開始された後、UI系のアプリケーションからUI画面レイヤに対して更新要求が行われた場合での、図2の携帯電話機1における表示処理について説明する。なお、説明を簡略化するために、表示制御ドライバからメインディスプレイ17への転送処理完了後の一連の処理(すなわち、メインディスプレイ17から表示制御ドライバへの転送完了通知処理(図6のステップS31に対応する処理)、および表示制御ドライバから画面表示ミドルウェアへの転送完了通知処理(図6のステップS24に対応する処理))は省略する。
ステップS51において、マルチメディア系のアプリケーションは、新たな画像データを生成すると、マルチメディア画面レイヤに対して画面更新要求を行う。この画面更新要求には、マルチメディア系のアプリケーションにより生成された画像データが付加されている。なお、マルチメディア系のアプリケーションの場合、例えば30フレーム/秒(1秒間に30フレーム)の更新回数を維持するという制約が存在することから、マルチメディア系のアプリケーションからマルチメディア画面レイヤに対して一旦画面更新要求が行われると、短い間隔で順次、マルチメディア画面レイヤに対して画面更新要求が行われる。
画面表示ミドルウェアは、マルチメディア系のアプリケーションからの画面更新要求を受け取ると、画面更新要求があった画面レイヤの属性(すなわち、UI画面レイヤであるか、マルチメディア画面レイヤであるかの属性)を判定し、画面更新要求があった画面レイヤがマルチメディア画面レイヤであると判定した場合、ステップS66でマルチメディア系のアプリケーションに対して、画面更新要求処理伴う画面更新処理に関する処理受付応答を通知する。このとき、マルチメディア系のアプリケーションは、画面表示ミドルウェアからの処理受付応答を受け取ると、画面表示ミドルウェアによって画面更新処理が受け付けられたと認識する。なお、マルチメディア系のアプリケーションの場合、UI系のアプリケーションとは異なり、新たな画像データのコピー(複製)の作成・保持は行われない。
ステップS67において、画面表示ミドルウェアは、マルチメディア系のアプリケーションからマルチメディア画面レイヤに対して画面更新要求が開始された後、UI系のアプリケーションからの画面更新要求に応じたUI画面レイヤにおける画面更新処理を抑制するため、UI画面レイヤの抑制処理を開始する。これにより、画面表示ミドルウェアにおいて管理されるステータスは「UI画面レイヤ抑制中」となり、画面表示ミドルウェアがUI系のアプリケーションから画面更新要求を受け取ったことによる表示制御ドライバへ画面更新要求の通知は行わない。
その後、ステップS68において、画面表示ミドルウェアは、マルチメディア系のアプリケーションから受け取った画面更新要求に伴う画面更新処理を表示制御ドライバに実行させるため、マルチメディア画面レイヤにおける画面更新要求を、表示制御ドライバに通知する。この表示制御ドライバへの画面更新要求には、マルチメディア系のアプリケーションにより生成された新たな画像データが付加されている。表示制御ドライバは、画面表示ミドルウェアからのマルチメディア画面レイヤにおける画面更新要求を受け取ると、ステップS94で表示駆動部51を制御し、マルチメディア画面レイヤにおける画面更新要求に付加された画像データに基づいて合成処理を実行させる。表示駆動部51の画像合成回路53は、表示制御ドライバの制御に従い、マルチメディア画面レイヤにおける画面更新要求に付加された画像データに基づいて合成処理を行い、合成結果の合成画像データを画像データ転送回路54に出力する。
ステップS95において、表示制御ドライバは、画像データ転送回路54を制御し、合成結果の合成画像データをメインディスプレイ17に転送させる。画像データ転送回路54は、表示制御ドライバの制御に従い、合成画像データをメインディスプレイ17に転送する。画像データ転送回路54からメインディスプレイ17に合成画像データを転送する場合、転送開始から転送終了までに、合成画像データのデータ量に応じて所要の転送時間がかかる。
ステップS96において、表示制御ドライバは、画像データ転送回路54による合成画像データの転送処理を開始すると、メインディスプレイ17からの転送完了通知を受け取る前に、画像合成回路53による合成処理を完了したことを示す合成完了を、画面表示ミドルウェアに通知する。画面表示ミドルウェアは、表示制御ドライバからの合成完了通知を受け取ると、表示駆動部51の画像合成回路35における合成処理が完了したと認識し、ステップS69で画面更新処理の完了をマルチメディア系のアプリケーションに通知する。このとき、マルチメディア系のアプリケーションは、画面表示ミドルウェアからの画面更新処理完了通知を受け取ると、マルチメディア画面レイヤにおける画面更新処理が完了したと認識する。
その後、ステップS42において、マルチメディア系のアプリケーションからマルチメディア画面レイヤに対して更新要求が開始された後、UI画面レイヤの抑制中に、UI系のアプリケーションは、新たな画像データを生成すると、UI画面レイヤに対して画面更新要求を行う。画面表示ミドルウェアは、UI系のアプリケーションからの画面更新要求を受け取ると、画面更新要求があった画面レイヤの属性(すなわち、UI画面レイヤであるか、マルチメディア画面レイヤであるかの属性)を判定し、画面更新要求があった画面レイヤがUI画面レイヤであると判定した場合、ステップS70でUI系のアプリケーションによって生成された新たな画像データのコピー(複製)を作成し、作成された画像データのコピーを制御部41のRAM上に保持する。
ステップS71において、画面表示ミドルウェアは、UI系のアプリケーションに対して、画面更新要求処理伴う画面更新処理に関する処理受付応答をUI系のアプリケーションに通知する。このとき、UI系のアプリケーションは、画面表示ミドルウェアからの処理受付応答を受け取ると、画面表示ミドルウェアによって画面更新処理が受け付けられたと認識する。また、UI画面レイヤの抑制中であることから、画面表示ミドルウェアにおける表示制御ドライバに対する画面更新要求通知処理は省略される。そして、ステップS72において、画面表示ミドルウェアは、表示制御ドライバからの合成完了通知を受け取るか否かにかかわらず、画面更新処理の完了をUI系のアプリケーションに通知する。これにより、UI系のアプリケーションは、画面表示ミドルウェアからの画面更新処理完了通知を受け取ると、UI画面レイヤにおける画面更新処理が完了したと認識する。
その後、ステップS52において、マルチメディア系のアプリケーションは、新たな画像データを生成すると、マルチメディア画面レイヤに対して画面更新要求を行う。この画面更新要求には、マルチメディア系のアプリケーションにより生成された画像データが付加されている。次に、ステップS73において、画面表示ミドルウェアは、マルチメディア系のアプリケーションからの画面更新要求を受け取ると、画面更新要求があった画面レイヤの属性(すなわち、UI画面レイヤであるか、マルチメディア画面レイヤであるかの属性)を判定し、画面更新要求があった画面レイヤがマルチメディア画面レイヤであると判定した場合、マルチメディア系のアプリケーションに対して、画面更新要求処理伴う画面更新処理に関する処理受付応答を通知する。
ステップS74において、画面表示ミドルウェアは、マルチメディア系のアプリケーションから受け取った画面更新要求に伴う画面更新処理を表示制御ドライバに実行させるとともに、同時に、UI画面レイヤの抑制中であるが故に省略されていたUI画面レイヤにおける画面更新処理を表示制御ドライバに実行させるために、ステップS70に処理によって制御部41のRAM上に保持されているUI系のアプリケーションによる画像データのコピー(複製)を読み出し、マルチメディア画面レイヤ並びUI系画面レイヤにおける画面更新要求を、表示制御ドライバに通知する。この表示制御ドライバへの画面更新要求には、読み出されたUI系のアプリケーションによる画像データのコピー(複製)とともに、マルチメディア系のアプリケーションにより生成された新たな画像データが付加されている。表示制御ドライバは、画面表示ミドルウェアからのマルチメディア画面レイヤ並びにUI画面レイヤにおける画面更新要求を受け取ると、ステップS97で表示駆動部51を制御し、マルチメディア画面レイヤ並びにUI画面レイヤにおける画面更新要求に付加された画像データに基づいて合成処理を実行させる。表示駆動部51の画像合成回路53は、表示制御ドライバの制御に従い、マルチメディア画面レイヤにおける画面更新要求に付加された画像データに基づいて合成処理を行い、合成結果の合成画像データを画像データ転送回路54に出力する。
ステップS98において、表示制御ドライバは、画像データ転送回路54を制御し、合成結果の合成画像データをメインディスプレイ17に転送させる。画像データ転送回路54は、表示制御ドライバの制御に従い、合成画像データをメインディスプレイ17に転送する。その後、ステップS99にて画面表示ミドルウェアへの合成完了通知処理が実行され、ステップS75にてマルチメディア系のアプリケーションへの画面更新処理完了通知処理が実行される。
以上のように、本発明の実施形態においては、第1の画面レイヤ(UI画面レイヤ)における第1の画像データを生成し、第1の画面レイヤと異なる第2の画面レイヤ(マルチメディア画面レイヤ)における第2の画像データを生成し、第1の画像データが生成された場合に通知される第1の画面更新要求と、第2の画像データが生成された場合に通知される第2の画面更新要求とに従い、第1の画像データと第2の画像データのうちのいずれか1つ以上を合成し、合成結果である合成画像データに基づく画像を表示する表示し、画面更新要求に対応する画面レイヤの属性が第1の画面レイヤである場合、第1の画像データを複製して保持し、第2の画面更新要求の通知が開始された後、第1の画面更新要求が通知された場合、第1の画面更新要求に伴う画面更新処理の抑制を開始し、合成処理を省略するとともに、第2の画面更新要求が次回通知されたとき、保持されている第1の画像データと、新たに生成された第2の画像データに基づいて合成処理を実行するように制御することができる。
これにより、複数のアプリケーション(UI系のアプリケーションやマルチメディア系のアプリケーション)から非同期で発生する複数の更新要求に伴う画面更新処理を必要に応じて一元的に管理することができ、マルチメディア系のアプリケーションが起動された後において、動画像の再生時におけるメインディスプレイ17への表示処理をできるだけ1回に統合することができる。具体的には、図8に示されるように、例えば1秒間に30フレームの更新を行う動画像の再生において、マルチメディア系のアプリケーションからマルチメディア画面レイヤに対して画面更新要求を行い、第1フレーム乃至第3フレームに関する画面更新処理を行う場合を想定する。このとき、第2フレームに関する画面更新処理の実行中に、UI系のアプリケーションからUI画面レイヤに対して画面更新要求が行われ、UI画面レイヤの更新処理(例えばピクトの更新処理やボリューム表示の更新処理など)が割り込んだとしても、その割込みに従った画面更新処理は保留されるとともに、画面表示ミドルウェアによってマルチメディア画面レイヤに対する次の画面更新要求にこのUI画面レイヤに対する画面更新要求が統合される。
従って、動画表示画面に表示される画像データのデータ量が増加した場合であっても、画面を全体として効率的に更新することができる。また、マルチメディア系のアプリケーションからのマルチメディア画面レイヤに対する画面更新要求に合わせて、一時的に省略されたUI画面レイヤにおける画面更新処理を実行するようにしたので、例えば30フレーム/秒(1秒間に30フレーム)の更新回数を維持しつつ、フレームに関する画面更新処理の開始の遅延を防止し、フレームのコマ落ちの発生を防止することができる(すなわち、動画像の再生における見栄えを向上させることができる)。
なお、マルチメディア系のアプリケーションにより生成される画像データのフレーム更新間隔内に、UI系のアプリケーションからのUI画面レイヤに対する画面更新要求が複数回発生した場合であっても、UI系のアプリケーションによって生成された新たな画像データのコピー(複製)の作成・保持のみが実行され、UI画面レイヤの抑制中であることから、UI系のアプリケーションからの画面更新要求に応じた画面表示ミドルウェアにおける表示制御ドライバに対する画面更新要求通知処理は省略される。そして、マルチメディア画面レイヤに対する画面更新要求が次回あった場合に、UI系のアプリケーションによって生成された最新の画像データのコピーを用いて合成処理が実行される。
また、UI画面レイヤの抑制中の場合、画面表示ミドルウェアにおける表示制御ドライバに対する画面更新要求通知処理は省略されるが、マルチメディア画面レイヤにおける画面更新処理は例えば30フレーム/秒において約33msecで逐次行われることから、UI画面レイヤにおける画面更新処理の遅延は最大で約33msec程度であり、ユーザによる操作時の応答性に対する影響は少ないと考えられる。
さらに、表示駆動部51の画像合成回路53における合成処理と、画像データ転送回路54における転送処理はそれぞれ並列処理されるため、合成結果の合成画像データをバッファリングするバッファ(例えばFIFO方式のバッファ)を複数用意すれば、画像データ転送回路54における転送処理が完了しなくても、上位のアプリケーションからの画面更新要求を画面表示ミドルウェアにて受け付けた上で合成処理を実行することができる。これにより、上位のアプリケーションは、表示駆動部51や画像データ転送回路54などのハードウェアによる処理の完了を待つことなく、画面更新要求を画面表示ミドルウェアに通知することができ、画像表示処理におけるスループットを向上させることができる。
ところで、例えば地上波ディジタルワンセグ放送波の受信時に、受信状況によってマルチメディア画面レイヤに対する画面更新要求が途切れてしまう場合が考えられる。このような場合、仮にUI画面レイヤにおける画面更新要求があったとしても、UI画面レイヤの画面更新処理の抑制中であることから、メインディスプレイ17に表示される表示画面に最新のUI画面が反映されない。そのため、ユーザによる操作に対するずれが生じてしまい、ユーザは応答性が悪いと感じてしまう。
そこで、マルチメディア画面レイヤに対する画面更新要求が途切れたときにUI画面レイヤの画面更新処理が抑制されたままとならないよう、画像データ転送回路54による合成結果の転送処理が完全に終了して、合成結果を格納しておくバッファが使用されていない状態になったときに、UI画面レイヤの画面更新処理の抑制を解除して、マルチメディア画面レイヤも含めて一度画面の更新を行うようにする。合成結果を格納するバッファが使用されていない状態になったときをUI画面レイヤの画面更新処理の抑制解除時点とするのは、合成結果を格納するバッファが使用されていない状態がシステム全体として負荷が無くなったことを意味しており、UI画面レイヤに対する画面更新を待たせておく必要が無いためである。このような方法を用いることにより、一時的に保留中であったUI画面レイヤの画面更新処理がマルチメディア画面レイヤの画面更新処理を含めて実行され、メインディスプレイ17における表示画面を最新の画面に更新することができる。
以下、この方法を用いた携帯電話機1における表示処理について説明する。以下に説明する方法では、合成結果を格納するバッファの使用状況を、画面更新要求数という変数を用いて管理している。この画面更新要求数管理処理は、概略的に図9および図10のフローチャートに示される。
図9のフローチャートを参照して、マルチメディア系のアプリーションが実行されている状態で、UI系のアプリケーションからのUI画面レイヤに対する更新要求、またはマルチメディア系のアプリケーションからのマルチメディア画面レイヤに対する更新要求が行われた場合での、図2の携帯電話機1における画面更新要求発生時の画面更新要求数管理処理について説明する。この画面更新要求数管理処理は、画面表示ミドルウェアが制御部41のRAM上に展開されてCPUにより実行される。
ステップS101において、画面表示ミドルウェアは、UI系のアプリケーションまたはマルチメディア系のアプリケーションからの画面更新要求を受け取ると、画面更新要求があった画面レイヤの属性(すなわち、UI画面レイヤであるか、マルチメディア画面レイヤであるかの属性)を判定する。ステップS101において画面表示ミドルウェアが、画面更新要求があった画面レイヤがマルチメディア画面レイヤであると判定した場合、画面表示ミドルウェアはステップS102で、マルチメディア系のアプリケーションからマルチメディア画面レイヤに対して画面更新要求が開始された後、UI系のアプリケーションからの画面更新要求に応じたUI画面レイヤにおける画面更新処理を抑制するため、UI画面レイヤの抑制処理を開始する。
ステップS103において、画面表示ミドルウェアは、マルチメディア系のアプリケーションから受け取られた画面更新要求に基づいて、合成結果を格納するバッファの使用状況を管理するための画面更新要求数を1つ増加させる(1つカウントアップする)。例えば現在の画面更新要求数が「1」である場合、新たにいずれかの画面更新要求が取得されると、画面更新要求数が「2」にカウントアップされる。その後、ステップS104において、画面表示ミドルウェアは、マルチメディア系のアプリケーションから受け取った画面更新要求に伴う画面更新処理を表示制御ドライバに実行させるため、マルチメディア画面レイヤにおける画面更新要求を、表示制御ドライバに通知する。なお、ステップS102とステップS103の処理は入れ替えるようにしてもよい。
一方、ステップS101において画面表示ミドルウェアが、画面更新要求があった画面レイヤがUI画面レイヤであると判定した場合、画面表示ミドルウェアはステップS102で、UI系のアプリケーションによって生成された新たな画像データのコピー(複製)を作成し、作成された画像データのコピーを制御部41のRAM上に保持する。ステップS106において、画像表示ミドルウェアは、現在UI画面レイヤの抑制中であるか否かを判定する。ステップS106において画面表示ミドルウェアが、現在UI画面レイヤの抑制中ではないと判定した場合、処理はステップS103に進み、画面表示ミドルウェアは、UI系のアプリケーションから受け取られた画面更新要求に基づいて、合成結果を格納するバッファの使用状況を管理するための画面更新要求数を1つ増加させる(1つカウントアップする)。一方、ステップS106において画面表示ミドルウェアが、現在UI画面レイヤの抑制中であると判定した場合、ステップS103およびステップS104の処理はスキップされ、画面更新要求数はカウントアップされず、表示制御ドライバへの画面更新要求も実行されない。
次に、図10のフローチャートを参照して、図2の携帯電話機1における転送完了時の画面更新要求数管理処理について説明する。ステップS107において、画面表示ミドルウェアは、合成画像データの転送完了通知を表示制御ドライバから受け取ると、UI系のアプリケーションやマルチメディア系のアプリケーションなどから受け取られた画面更新要求に基づく画面更新要求数を1つ減少させる(1つカウントダウンする)。例えば現在の画面更新要求数が「2」である場合、合成画像データの転送完了通知が取得されると、画面更新要求数が「1」にカウントダウンされる。ステップS108において、画面表示ミドルウェアは、現在の画面更新要求数が「0」であるか否かを判定する。ステップS108において画面表示ミドルウェアが現在の画面更新要求数が「0」であると判定した場合、画面表示ミドルウェアは、マルチメディア画面レイヤに対する画面更新要求が途切れており、表示制御ドライバにおける処理がすべて完了し、画像データ転送回路54における転送路が空き状態になっていると認識し、ステップS109で現在保留中となっているUI画面レイヤにおける画面更新処理を表示制御ドライバに実行させるために、UI画面レイヤの抑制を解除する。
ステップS110において、画面表示ミドルウェアは、UI系のアプリケーションやマルチメディア系のアプリケーションなどから受け取られた画面更新要求数を1つ増加させる(1つカウントアップする)。ステップS111において、画面表示ミドルウェアは、UI系のアプリケーションから受け取った画面更新要求に伴う画面更新処理を表示制御ドライバに実行させるため、UI画面レイヤにおける画面更新要求を、表示制御ドライバに通知する。一方、ステップS108において画面表示ミドルウェアが現在の画面更新要求数が「0」ではないと判定した場合、画面表示ミドルウェアは、画像データ転送回路54における転送路が空き状態になっていないと認識し、ステップS109乃至S111の処理はスキップされる。
なお、例えば地上波ディジタルワンセグ放送波の受信時に受信状況によってマルチメディア画面レイヤに対する画面更新要求が途切れてしまう場合に、マルチメディア画面レイヤに対する画面更新要求が途切れたときにUI画面レイヤの画面更新処理が抑制されたままとならないように、画像データ転送回路54による合成結果の転送処理が完全に終了して、合成結果を格納しておくバッファが使用されていない状態になったときにUI画面レイヤの画面更新処理の抑制を解除して、マルチメディア画面レイヤも含めて一度画面の更新を行うようにしたが、このような場合に限られない。
すなわち、地上波ディジタルワンセグ放送波の受信時に以外に、例えばマルチメディア系のアプリケーションにより生成される画像データのフレームレートが低く画面表示更新の間隔が長いコンテンツの場合にも、UI画面レイヤに対する画面更新を待たせておく必要がない状況が想定される。具体的には、画像データのフレームレートが低く画面表示更新の間隔が長いコンテンツのときには、動画像処理の負荷が低いために、マルチメディア系のアプリケーションにより生成される画像データの再生中に局所的に画面更新要求数が「0」となる場合が想定される。このような場合、UI画面レイヤに対する画面更新を待たせておく必要がないことから、UI画面レイヤの画面更新処理の抑制を解除するようにして、マルチメディア画面レイヤも含めて一度画面の更新を行うようにしてもよい。
図9および図10のフローチャートを用いて説明した画面表示ミドルウェアにおける画面更新要求数管理処理は、図6または図7における画面表示ミドルウェアの処理と並列的にまたは時系列的に実行される。以下、この画面更新要求数管理処理の概念を用いた、携帯電話機1における具体的な表示処理について説明する。
図11のフローチャートを参照して、マルチメディア系のアプリケーションからマルチメディア画面レイヤに対して更新要求が開始された後、UI系のアプリケーションからUI画面レイヤに対して更新要求が行われ、かつ、マルチメディア画面レイヤに対する画面更新要求が途切れた場合での、図2の携帯電話機1における表示処理について説明する。なお、図11の処理は、図7の処理と基本的には同様であり、その説明は繰り返しになるので適宜省略する。
ステップS122において、画面表示ミドルウェアは、マルチメディア系のアプリケーションから受け取られた画面更新要求に基づいて、合成結果を格納するバッファの使用状況を管理するための画面更新要求数を1つ増加させる(1つカウントアップする)。
画像データ転送回路54からメインディスプレイ17への合成画像データの転送処理が完了した場合、メインディスプレイ17はステップS191で、合成画像データの転送完了を表示制御ドライバに通知する。表示制御ドライバは、メインディスプレイ17からの転送完了通知を受け取ると、ステップS174で合成画像データの転送完了を画面表示ミドルウェアに通知する。画面表示ミドルウェアは、合成画像データの転送完了通知を表示制御ドライバから受け取ると、ステップS129でUI系のアプリケーションやマルチメディア系のアプリケーションなどから受け取られた画面更新要求数を1つ減少させる(1つカウントダウンする)。このとき、マルチメディア画面レイヤに対する画面更新要求が途切れて所要の時間が経過した場合、UI画面レイヤの画面更新処理が抑制されており、UI画面レイヤにおける画面更新要求は一時的保留され、これに応じた画面更新要求数もカウントアップされていないことから、現在の画面更新要求数は「1」であると考えられる。そして、合成画像データの転送完了通知が画面表示ミドルウェアにて取得されると、画面更新要求数が「1」から「0」にカウントダウンされる。勿論、場合によっては、現在の画面更新要求数が「2」であることも考えられ、このような場合には、合成画像データの転送完了通知が取得されると、画面更新要求数が「1」にカウントダウンされる。
ステップS130において、画面表示ミドルウェアは、現在の画面更新要求数が「0」であるか否かを判定し、現在の画面更新要求数が「0」であると判定するまで待機する。ステップS130において画面表示ミドルウェアが現在の画面更新要求数が「0」であると判定した場合、画面表示ミドルウェアは、マルチメディア画面レイヤに対する画面更新要求が途切れており、表示制御ドライバにおける処理がすべて完了し、画像データ転送回路54における転送路が空き状態になっていると認識し、ステップS131で現在保留中となっているUI画面レイヤにおける画面更新処理を表示制御ドライバに実行させるために、UI画面レイヤの抑制を解除する。
ステップS132において、画面表示ミドルウェアは、UI系のアプリケーションやマルチメディア系のアプリケーションなどから受け取られた画面更新要求数を1つ増加させる(1つカウントアップする)。この場合、画面表示ミドルウェアは、現在の画面更新要求数が「0」であることから、保留中のUI画面レイヤにおける画面更新要求に従い、画面更新要求数を「0」から「1」にカウントアップする。ステップS133において、画面表示ミドルウェアは、UI系のアプリケーションから受け取った保留中の画面更新要求に伴う画面更新処理を表示制御ドライバに実行させるため、ステップS126に処理によって制御部41のRAM上に保持されているUI系のアプリケーションによる最新の画像データのコピー(複製)を読み出し、UI画面レイヤにおける画面更新要求を、表示制御ドライバに通知する。この表示制御ドライバへの画面更新要求には、読み出されたUI系のアプリケーションによる画像データのコピー(複製)が付加されている。
その後、ステップS175およびステップS176において合成処理および転送処理が実行され、ステップS177で画面表示ミドルウェアへの合成完了通知処理が実行される。このとき、ステップS128にてUI系のアプリケーションへの画面更新処理完了通知処理が実行されていることから、上位のUI系のアプリケーションへの通知処理は実行されない。
これにより、マルチメディア画面レイヤに対する画面更新要求が途切れたか否かを検出し、一時的に保留中であったUI画面レイヤの画面更新処理がマルチメディア画面レイヤの画面更新処理を含めて実行され、メインディスプレイ17における表示画面を最新の画面に更新することができる。従って、動画表示画面に表示される画像データのデータ量が増加した場合であっても、ユーザによる操作に対する応答性を考慮しつつ、画面を全体としてより効率的に更新することができる。
なお、本発明は、携帯電話機1以外にも、PDA(Personal Digital Assistant)、パーソナルコンピュータ、携帯型ゲーム機、携帯型音楽再生機、携帯型動画再生機、その他の情報処理装置にも適用することができる。
また、本発明の実施形態において説明した一連の処理は、ソフトウェアにより実行させることもできるが、ハードウェアにより実行させることもできる。
さらに、本発明の実施形態では、フローチャートのステップは、記載された順序に沿って時系列的に行われる処理の例を示したが、必ずしも時系列的に処理されなくとも、並列的あるいは個別実行される処理をも含むものである。
1…携帯電話機、11…ヒンジ部、12…第1の筐体、13…第2の筐体、14…操作キー、15…マイクロフォン、16…サイドキー、17…メインディスプレイ、18…レシーバ、19a乃至19d…磁気センサ、20…CCDカメラ、21…サブディスプレイ、31…アンテナ、32…アンテナ共用器(DUP)、33…受信回路(RX)、34…周波数シンセサイザ(SYN)、35…送信回路(TX)、36…CDMA信号処理部、37…圧縮伸張処理部、38…PCMコーデック、39…受話増幅器、40…送話増幅器、41…制御部、42…記憶部、43…バッテリ、44…電源回路、45…外部メモリインタフェース、46…メモリカード、47…時計回路、48…地上波ディジタルワンセグ受信部、49…地デジ処理部、50…スピーカ、51…表示駆動部、52…画像メモリ、53…画像合成回路、54…画像データ転送回路。