(58)【調査した分野】(Int.Cl.,DB名)
前記重畳部は、前記対応関係として、前記重畳画像における一のピクセルの座標と、前記一のピクセルの画像が由来している前記一の描画レイヤと、を対応付けたビットマップを生成し、
前記イベント送信部は、前記ビットマップに基づき、前記送信先の仮想マシンに、前記入力イベントを送信する、請求項2に記載のイベント送信装置。
前記ハイパーバイザ上で動作する前記複数の仮想マシンを含む情報処理装置に、ネットワークを介して前記入力イベントを送信する通信部をさらに備える、請求項1に記載のイベント送信装置。
【発明を実施するための形態】
【0012】
<実施の形態1>
図1は、実施の形態1におけるイベント送信装置100の構成を示すブロック図である。また、
図1には、イベント送信装置100と関連して動作する複数の仮想マシン30が示されている。これら複数の仮想マシン30は、ハイパーバイザ上で動作する。
【0013】
イベント送信装置100は、入力部10およびイベント送信部20を有する。
【0014】
入力部10は、複数の仮想マシン30のそれぞれに対応して設けられる複数の描画レイヤが、互いに重畳された重畳画像に対して入力される入力イベントを受け付ける。入力部10は、例えば、ディスプレイに表示される重畳画像に基づき、タッチパネルに入力される入力イベントを受け付ける。
【0015】
イベント送信部20は、重畳画像における複数の位置と、各位置における画像が由来する一の描画レイヤとの対応関係に基づき、複数の仮想マシン30のうち、重畳画像における入力イベントの入力位置に対応する一の仮想マシンである送信先の仮想マシンに、入力イベントを送信する。
【0016】
図2は、イベント送信装置100が有する処理回路95の一例を示す図である。入力部10およびイベント送信部20の各機能は、処理回路95により実現される。すなわち、処理回路95は、入力部10およびイベント送信部20を有する。
【0017】
処理回路95が専用のハードウェアである場合、処理回路95は、例えば、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)、またはこれらを組み合わせた回路等である。入力部10およびイベント送信部20の各機能は、複数の処理回路により個別に実現されてもよいし、1つの処理回路によりまとめて実現されてもよい。
【0018】
図3は、イベント送信装置100が有する処理回路の別の一例を示す図である。処理回路は、プロセッサ96とメモリ97とを有する。プロセッサ96がメモリ97に格納されるプログラムを実行することにより、入力部10およびイベント送信部20の各機能が実現される。例えば、プログラムとして記述されたソフトウェアまたはファームウェアがプロセッサ96により実行されることにより各機能が実現される。すなわち、イベント送信装置100は、プログラムを格納するメモリ97と、そのプログラムを実行するプロセッサ96とを有する。
【0019】
プログラムには、イベント送信装置100が、複数の仮想マシン30のそれぞれに対応して設けられる複数の描画レイヤが、互いに重畳された重畳画像に対して入力される入力イベントを受け付け、重畳画像における複数の位置と、各位置における画像が由来する一の描画レイヤとの対応関係に基づき、複数の仮想マシン30のうち、重畳画像における入力イベントの入力位置に対応する一の仮想マシンに、入力イベントを送信する機能が記述されている。また、プログラムは、入力部10およびイベント送信部20の手順または方法をコンピュータに実行させるものである。
【0020】
プロセッサ96は、例えば、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、DSP(Digital Signal Processor)等である。メモリ97は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリ、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable Programmable Read Only Memory)等の、不揮発性または揮発性の半導体メモリである。または、メモリ97は、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等、今後使用されるあらゆる記憶媒体であってもよい。
【0021】
上述した入力部10およびイベント送信部20の各機能は、一部が専用のハードウェアによって実現され、他の一部がソフトウェアまたはファームウェアにより実現されてもよい。このように、処理回路は、ハードウェア、ソフトウェア、ファームウェア、またはこれらの組み合わせによって、上述の各機能を実現する。
【0022】
図4は、実施の形態1におけるイベント送信装置100の動作およびイベント送信方法を示すフローチャートである。
【0023】
ステップS1にて、入力部10は、重畳画像に対して入力される入力イベントを受け付ける。
【0024】
ステップS2にて、イベント送信部20は、重畳画像における複数の位置と、各位置における画像が由来する一の描画レイヤとの対応関係に基づき、入力イベントの入力位置に対応する一の仮想マシンに、入力イベントを送信する。
【0025】
以上をまとめると、実施の形態1におけるイベント送信装置100は、ハイパーバイザ上で動作する複数の仮想マシン30のうち一の仮想マシンに入力イベントを送信する。イベント送信装置100は、複数の仮想マシン30のそれぞれに対応して設けられる複数の描画レイヤが、互いに重畳された重畳画像に対して入力される入力イベントを受け付ける入力部10と、重畳画像における複数の位置と各位置における画像が由来する一の描画レイヤとの対応関係に基づき、複数の仮想マシン30のうち、重畳画像における入力イベントの入力位置に対応する一の仮想マシンである送信先の仮想マシンに、入力イベントを送信するイベント送信部20と、を含む。
【0026】
以上の構成により、イベント送信装置100は、ハイパーバイザ上で動作する送信先の仮想マシンに効率よく入力イベントを送信することができる。イベント送信装置100は、ハイパーバイザと各仮想マシン30との間の総通信量を削減する。
【0027】
以上をまとめると、実施の形態1におけるイベント送信方法は、ハイパーバイザ上で動作する複数の仮想マシン30のうち一の仮想マシンに入力イベントを送信する方法である。イベント送信方法は、複数の仮想マシン30のそれぞれに対応して設けられる複数の描画レイヤが、互いに重畳された重畳画像に対して入力される入力イベントを受け付け、重畳画像における複数の位置と各位置における画像が由来する一の描画レイヤとの対応関係に基づき、複数の仮想マシン30のうち、重畳画像における入力イベントの入力位置に対応する一の仮想マシンに、入力イベントを送信する。
【0028】
以上の構成により、イベント送信方法は、ハイパーバイザ上で動作する送信先の仮想マシンに効率よく入力イベントを送信することができる。イベント送信方法は、ハイパーバイザと各仮想マシン30との間の総通信量を削減する。
【0029】
<実施の形態2>
実施の形態2におけるイベント送信装置およびイベント送信方法を説明する。実施の形態2は、実施の形態1の下位概念である。実施の形態2におけるイベント送信装置は、実施の形態1において示されたイベント送信装置100の各構成を含む。なお、実施の形態1と同様の構成および動作については説明を省略する。
【0030】
図5は、実施の形態2におけるイベント送信装置101の構成を示すブロック図である。また、
図5には、イベント送信装置101と関連して動作する装置として、ディスプレイ110およびタッチパネル120が図示されている。イベント送信装置101は、重畳部50、表示制御部60、入力部10、レイヤ構成記憶部40、イベント送信部20、および複数の仮想マシン30を有する。
【0031】
複数の仮想マシン30は、実施の形態2において、第1仮想マシン301から第N仮想マシン30Nを含む。各仮想マシンは、ハイパーバイザ上で動作する。
【0032】
重畳部50は、複数の仮想マシン30のそれぞれに対応して設けられる複数の描画レイヤを重畳し、重畳画像を生成する。その際、重畳部50は、まず各仮想マシン30によって描画された画像を取得する。重畳部50は、レイヤ構成関係を参照して、その画像が由来する各仮想マシン30に対応する描画レイヤに、その画像を書き込む。重畳部50は、各描画レイヤの画像を重畳し、重畳画像を生成する。
図6は、実施の形態2におけるレイヤ構成関係の一例を示す図である。ここでは、レイヤ構成関係は、描画レイヤ番号と、使用仮想マシンとが対応づけられたテーブルである。使用仮想マシンとは、描画レイヤ番号の欄に示された描画レイヤに書き込まれるべき画像が由来する仮想マシン30のことである。例えば、描画レイヤ番号「1」で示される描画レイヤには、第1仮想マシン301によって描画される画像が書き込まれる。または、例えば、描画レイヤ番号「2」で示される描画レイヤには、第2仮想マシン302によって描画される画像が書き込まれる。
【0033】
図7および
図8は、実施の形態2における描画レイヤ2および重畳画像5の一例を示す図である。
図7および
図8は、説明を簡略化するため、2つの描画レイヤ2およびその2つの描画レイヤ2が重畳された1つの重畳画像5を示している。2つの描画レイヤ2は、
図6における描画レイヤ番号「1」に対応する第1描画レイヤ2Aおよび描画レイヤ番号「2」に対応する第2描画レイヤ2Bからなる。第1描画レイヤ2Aは、第2描画レイヤ2Bよりも上位に位置する。
【0034】
図7において、第1描画レイヤ2Aには、第1仮想マシン301によって第1領域3が描画されている。その第1仮想マシン301は、第1領域3に、ユーザによる操作を受け付ける領域であるボタン、ユーザに対するメッセージもしくは画面内のデザイン等(いずれも図示せず)を描画している。第1領域3以外の領域は透明である。第2描画レイヤ2Bには、第2仮想マシン302によって第2領域4が描画されている。第2仮想マシン302は、第2領域4に、ユーザによる操作を受け付けるボタン、ユーザに対するメッセージまたは画面内のデザイン等(いずれも図示せず)を描画している。第2領域4以外の領域は透明である。重畳画像5は、第1描画レイヤ2Aと第2描画レイヤ2Bとが互いに重畳されている。重畳画像5は、それぞれの描画レイヤ2に由来する第1領域3と第2領域4とを含む。
【0035】
図8においても、同様である。第1描画レイヤ2Aには、第1仮想マシン301によって第1領域3が描画されている。第1領域3以外の領域は透明である。第2描画レイヤ2Bには、第2仮想マシン302によって第2領域4が描画されている。第2領域4以外の領域は透明である。重畳画像5において、第1描画レイヤ2Aが透明である領域には、第2描画レイヤ2Bの第2領域4が描画されている。第1領域3と第2領域4とが重なる領域には、第1描画レイヤ2Aにおける第1領域3が描画されている。
【0036】
また、実施の形態2において、重畳画像5および各描画レイヤ2は、複数のピクセルを有する。重畳画像5のピクセル数と各描画レイヤ2のピクセル数とは同じである。重畳画像5は、複数の描画レイヤ2が複数のピクセルごとに重畳されている。
【0037】
また、各描画レイヤ2における各ピクセルは、色情報を示すRGB値に加え、透明度の情報を示すアルファチャネルを有する。アルファチャネルは、ここでは、α値で示される。例えば、一のピクセルのα値が1の場合、そのピクセルは不透明である。その場合、重畳画像5におけるそのピクセルには、RGB値に対応する色が描画される。または、例えば、ピクセルのα値が0の場合、そのピクセルは透明である。その場合、重畳画像5におけるそのピクセルには、RGB値に対応する色は描画されない。
図7および
図8において、第1領域3と第2領域4のα値はともに1であり、透明な領域のα値はともに0である。重畳部50は、その透明度情報(α値)と、予め定められた透明度に関する閾値とに基づいて、重畳画像5を生成してもよい。閾値が適切に設定されることで、重畳部50は、2以上の描画レイヤ2が半透明な状態で重畳された重畳画像5の生成が可能である。
【0038】
また、重畳部50は、重畳画像5における複数の位置と、各位置における画像が由来する一の描画レイヤ2との対応関係を生成する。例えば、
図7または
図8において、重畳部50は、重畳画像5における第1領域3の位置と、その第1領域3の画像が由来する第1描画レイヤ2Aとを対応付ける。また、重畳部50は、重畳画像5における第2領域4の位置と、その第2領域4の画像が由来する第2描画レイヤ2Bとを対応付ける。
【0039】
実施の形態2において、重畳部50は、上記の対応関係として、ビットマップを生成する。ここでは、ビットマップは、重畳画像5および各描画レイヤ2のピクセル数と同じピクセル数を有する。すなわち、上記の対応関係における対応の単位である重畳画像5の各位置として、各ピクセルの単位が適用される。
【0040】
ビットマップは、重畳画像5における一のピクセルの座標と、その一のピクセルの画像が由来する一の描画レイヤ2とが対応付けられた情報を含む。各画像レイヤの各ピクセルがα値を有する場合、重畳部50は、α値と、予め定められた透明度に関する閾値とに基づいて、ビットマップを生成する。
図9は、実施の形態2におけるビットマップ6の一例を示す図である。ビットマップ6には、各ピクセル7を描画する描画レイヤ番号が格納されている。例えば、
図9に示されるビットマップ6において、「1」は第1描画レイヤ2Aに由来する画像であることが示されている。「2」は第2描画レイヤ2Bに由来する画像であることが示されている。なお、実施の形態2においては、ビットマップ6は重畳画像5とは別に生成される。
【0041】
表示制御部60は、重畳部50で生成された重畳画像5をディスプレイ110に表示させる制御を行う。
【0042】
ディスプレイ110は、表示制御部60の制御に従い、重畳画像5を表示する。
【0043】
タッチパネル120は、入力装置である。タッチパネル120はディスプレイ110に内包された装置であってもよい。
【0044】
入力部10は、ディスプレイ110に表示される重畳画像5に対してタッチパネル120によって入力される入力イベントを受け付ける。その入力イベントは、重畳画像5における入力位置つまりタッチ座標を含む。
【0045】
レイヤ構成記憶部40は、上述したレイヤ構成関係を記憶する。
図6に示されるように、1つの仮想マシンは複数の描画レイヤ2に対応していてもよいし、図示は省略するが1つの仮想マシンが1つの描画レイヤにだけ対応していてもよい。ただし、1つの描画レイヤ2は、1つの仮想マシンだけに対応している必要がある。
【0046】
イベント送信部20は、タッチ座標に対応するピクセル座標と、重畳部50が生成したビットマップ6とに基づき、タッチ座標に対応する領域の画像が由来する一の描画レイヤ2を特定する。また、イベント送信部20は、レイヤ構成記憶部40が記憶するレイヤ構成関係に基づき、特定した描画レイヤ2に対応する送信先の仮想マシンを特定する。そして、イベント送信部20は、送信先の仮想マシンに入力イベントを送信する。
【0047】
図10は、実施の形態2におけるイベント送信装置101のハードウェアとハイパーバイザとの関係を示す図である。イベント送信装置101は、ハードウェアとしてSoC(System on Chip)130を有する。SoC130は、実施の形態1に示された処理回路に対応する。つまり、SoC130は、入力部10、イベント送信部20、複数の仮想マシン30、レイヤ構成記憶部40、重畳部50および表示制御部60を有し、各機能部の機能を実現する。また、SoC130は、タッチパネル120から入力される入力イベントを受け付ける。また、SoC130は、重畳画像5をディスプレイ110に出力する。複数の仮想マシン30は、SoC130にインストールされたハイパーバイザ140上で動作する。各仮想マシンは、そのハイパーバイザ140上にソフトウェアによって仮想的に構築されている。
【0048】
次に、重畳部50による重畳画像の生成動作について説明する。
図11は、実施の形態2における重畳画像の生成動作を示すフローチャートである。
【0049】
ステップS5にて、重畳部50は、各仮想マシン30によって描画される画像と、レイヤ構成関係とを取得する。
【0050】
ステップS6にて、重畳部50は、レイヤ構成関係を参照して、各画像が由来する各仮想マシン30に対応する描画レイヤに、その画像を書き込む。
【0051】
ステップS7にて、重畳部50は、複数の描画レイヤを重畳し、重畳画像5を生成する。以上のステップにより、重畳画像5が生成される。
【0052】
次に、重畳部50によるビットマップの生成動作について説明する。
図12は、実施の形態2におけるビットマップ生成動作を示すフローチャートである。
【0053】
ステップS10にて、重畳部50は、ビットマップ6を準備し、そのビットマップ6を初期化する。
【0054】
ステップS20にて、重畳部50は、重畳画像5を取得する。
【0055】
ステップS30にて、重畳部50は、重畳画像5の全ピクセル7に対してビットマップ6の生成処理が完了したか否かを判定する。重畳部50が全ピクセル7に対して処理が完了したと判定した場合、ビットマップ生成動作は終了する。重畳部50が全ピクセル7に対して処理が完了していないと判定した場合、ステップS40が実行される。
【0056】
ステップS40にて、重畳部50は、重畳画像5の全描画レイヤ2に対してビットマップ6の生成処理が完了したか否かを判定する。重畳部50が全描画レイヤ2に対して処理が完了したと判定した場合、ステップS80が実行される。重畳部50が全描画レイヤ2に対して処理が完了していないと判定した場合、ステップS50が実行される。
【0057】
ステップS50にて、重畳部50は、重畳画像5の複数の描画レイヤ2のうち、現在処理中の一の描画レイヤ2における一のピクセル7のデータを取得する。ここでは、一のピクセル7のデータとは、RGBA値である。RGBA値は、色情報であるRGB値に加え、透明情報であるα値を含む。
【0058】
ステップS60にて、重畳部50は、その一のピクセル7において、α値≧閾値の関係式を満たすか否かを判定する。重畳部50がその関係式を満たすと判定した場合、ステップS80が実行される。重畳部50がその関係式を満たさないと判定した場合、ステップS70が実行される。
【0059】
ステップS70にて、重畳部50は、処理対象の描画レイヤ2を次の描画レイヤ2に設定する。
【0060】
ステップS80にて、重畳部50は、現在処理中のピクセル7に対応するビットマップ6のピクセル7に、現在処理中の描画レイヤ番号を出力する。なお、全描画レイヤ2に対する処理が完了した結果としてステップS80が実行されている場合、上記の現在処理中の描画レイヤ番号は、複数の描画レイヤ番号のうち最大値である。
【0061】
ステップS90にて、重畳部50は、処理対象のピクセル7を次のピクセル7に設定する。以上のステップにより、ビットマップが生成される。
【0062】
次に、イベント送信方法について説明する。
図13は、実施の形態2におけるイベント送信装置101の動作およびイベント送信方法を示すフローチャートである。
【0063】
ステップS100にて、入力部10は、入力イベントが入力されたタッチ座標を取得する。
【0064】
ステップS110にて、イベント送信部20は、重畳部50から対応関係(ビットマップ6)を取得する。
【0065】
ステップS120にて、イベント送信部20は、タッチ座標とビットマップ6とに基づき描画レイヤ番号を取得する。
【0066】
ステップS130にて、イベント送信部20は、レイヤ構成記憶部40からレイヤ構成関係を取得する。
【0067】
ステップS140にて、イベント送信部20は、描画レイヤ番号とレイヤ構成関係とに基づき、複数の仮想マシンから送信先の仮想マシンとして一の仮想マシンを選択する。
【0068】
ステップS150にて、イベント送信部20は、送信先の仮想マシンに入力イベントを送信する。
【0069】
その後のステップにおいて、送信先の仮想マシンが入力イベントに基づいた処理を実行する。イベント送信装置101は、その処理に関連する結果を、重畳部50および表示制御部60を介して、ディスプレイ110に出力してもよい。
【0070】
また、実施の形態2において、タッチパネル120およびディスプレイ110は、イベント送信装置101とは別の装置として示されたが、イベント送信装置101がタッチパネル120およびディスプレイ110を内包する構成を有していてもよい。
【0071】
以上をまとめると、実施の形態2におけるイベント送信装置101は、複数の描画レイヤ2を重畳し、重畳画像5と対応関係とを生成する重畳部50をさらに含む。重畳画像5と複数の描画レイヤ2の各々とは、それぞれ複数のピクセル7を含む。重畳画像5は、複数の描画レイヤ2が複数のピクセル7ごとに重畳された画像である。対応関係における対応の単位である重畳画像5の各位置として、各ピクセル7の単位が適用される。
【0072】
また、実施の形態2におけるイベント送信装置101の重畳部50は、対応関係として、重畳画像5における一のピクセル7の座標と、一のピクセル7の画像が由来している一の描画レイヤ2と、を対応付けたビットマップ6を生成する。イベント送信部20は、ビットマップ6に基づき、送信先の仮想マシンに、入力イベントを送信する。
【0073】
このような構成により、イベント送信装置101は、重畳画像5の各ピクセル7を最小単位として、入力位置に対応する一の仮想マシンを選択することができるため、入力解像度が向上する。
【0074】
また、実施の形態2におけるイベント送信装置101において、複数の描画レイヤ2の各々は、複数のピクセル7の各々における透明度情報を含む。重畳部50は、透明度情報と、予め定められた透明度に関する閾値とに基づいて、一のピクセル7の画像が由来している一の描画レイヤ2を決定することにより、重畳画像5とビットマップ6とを生成する。
【0075】
基本的には、複数の描画レイヤ2のうち、透明度が0%(つまり不透過)であって上位に位置する描画レイヤ2が、ユーザに視認される。その場合、ユーザによる入力イベントは、不透過の描画レイヤ2に対して入力される。しかし、実施の形態2におけるイベント送信装置101は、閾値が変更可能であることにより、例えば、半透過の描画レイヤ2に対する入力イベントを処理することも可能である。また、閾値は、動的に変更可能に設定されてもよい。
【0076】
(実施の形態2の変形例1)
実施の形態2の変形例1において、複数の描画レイヤ2の各々は、複数のピクセル7の各々における色情報をさらに含む。変形例1のビットマップ6の生成動作においては、α値が0であり、かつ、α値以外の値(例えば、色情報であるRGB値)が特定の値である場合、重畳部50は、現在処理中のピクセル7に、現在処理中の描画レイヤ番号を出力する。すなわち、重畳部50は、一の描画レイヤ2における一のピクセル7の透明度情報が透明であり、かつ、色情報が特定色である場合、一の描画レイヤ2と一のピクセル7の座標とを対応付けたビットマップ6を生成する。この処理は、例えば、ステップS60とステップS70との間に実行される。このようなイベント送信装置は、ディスプレイ110に表示される重畳画像5には現れない「隠しボタン」に対して入力される入力イベントを、適切な仮想マシンに送信することができる。
【0077】
(実施の形態2の変形例2)
上記の実施の形態2において、重畳部50は重畳画像5とは別にビットマップ6を生成していた。実施の形態2の変形例2における重畳部50は、ビットマップ6を含む重畳画像5を生成する。つまり、重畳画像5には、対応関係を示すビットマップ6が埋め込まれている。
【0078】
図14は、実施の形態2の変形例2における重畳部50によるビットマップ生成動作を示すフローチャートである。
【0079】
ステップS20にて、重畳部50は、重畳画像5を取得する。
【0080】
ステップS30からステップS70までは、
図12に示される各ステップと同様である。
【0081】
ステップS81にて、重畳部50は、現在処理中のピクセル7に対応する重畳画像5のピクセル7に現在処理中の描画レイヤ番号を埋め込む。例えば、描画レイヤ番号が0から7である場合、RGB値をそれぞれ格納する複数のビットのうち、最下位側の3bitに描画レイヤ番号が格納される。
【0082】
ステップS90は、
図12に示されるステップS90と同様である。
【0083】
その後、イベント送信部20は、重畳画像5に含まれるビットマップ6に基づき、入力位置に対応する送信先の仮想マシンに、入力イベントを送信する。そのイベント送信方法は、
図13に示される方法と同様である。
【0084】
以上の実施の形態2の変形例2においては、重畳部50は、重畳画像5の生成を完了したあとに、その重畳画像5にビットマップ6を埋め込んでいる。しかし、ビットマップ6の生成と埋め込み方法とは、それに限定されるものではない。重畳部50は、重畳画像5の生成と同時にビットマップ6の埋め込みを行ってよい。
【0085】
実施の形態2の変形例2におけるイベント送信装置は、ビットマップ6を出力する際に必要な記憶領域を必要としない。
【0086】
<実施の形態3>
実施の形態3におけるイベント送信装置およびイベント送信方法を説明する。実施の形態3は、実施の形態1の下位概念である。実施の形態3におけるイベント送信装置は、実施の形態1において示されたイベント送信装置100の各構成を含む。なお、実施の形態1または2と同様の構成および動作については説明を省略する。
【0087】
イベント送信装置とタッチパネル120との間の通信時間が、ディスプレイ110の表示更新間隔(フレームレート)よりも長い場合、タッチパネル120から入力部10に入力イベントが到着するまでの間に、ディスプレイ110に表示される重畳画像5が更新される。つまり、その重畳画像5に対応するビットマップ6も更新される。この場合、イベント送信部20は、更新されたビットマップ6と、更新前の重畳画像5に対する入力位置とに基づき、送信先の仮想マシンを選択する。その結果、イベント送信装置が入力イベントを誤送信する可能性が高まる。実施の形態3におけるイベント送信装置は、このような課題を解決する。
【0088】
図15は、実施の形態3におけるイベント送信装置102の構成を示すブロック図である。イベント送信装置102は、実施の形態2に示された構成に加え、時刻取得部70およびビットマップ記憶部80をさらに有する。
【0089】
時刻取得部70は、時刻情報を取得する。時刻は現在時刻である。
【0090】
重畳部50は、重畳画像5を生成した時刻情報を生成時刻として重畳画像5およびビットマップ6に付与する。重畳部50は、重畳画像5およびビットマップ6を生成する度に、生成時刻をそれぞれ付与する。
【0091】
表示制御部60は、重畳画像5をディスプレイ110に表示させる制御を行う。また、表示制御部60は、その重畳画像5に付与された生成時刻を入力部10に出力する。
【0092】
ビットマップ記憶部80は、重畳部50で生成されたビットマップ6であって、互いに異なる生成時刻が付与された複数のビットマップ6を記憶する。
【0093】
入力部10は、タッチパネル120からタッチ座標を含む入力イベントを受け付ける。また、入力部10は、重畳部50にて重畳画像5に付与された生成時刻を取得する。ここでは、入力部10は、表示制御部60からその生成時刻を取得する。
【0094】
イベント送信部20は、入力部10からタッチ座標を含む入力イベントと、重畳画像5に付与された生成時刻と、を取得する。イベント送信部20は、予め定められた選択条件に基づき、ビットマップ記憶部80に記憶されている複数のビットマップ6から一のビットマップ6を選択する。予め定められた選択条件とは、入力部10にて取得された生成時刻と、ビットマップ記憶部80に記憶された各ビットマップ6に付与された生成時刻と、に関係する条件である。ここでは、イベント送信部20は、ビットマップ記憶部80に記憶されている複数のビットマップ6のうち、入力部10にて取得された生成時刻に一致する生成時刻が付与された一のビットマップ6を選択する。イベント送信部20は、その一のビットマップ6に基づき、入力位置に対応する送信先の仮想マシンに、入力イベントを送信する。
【0095】
実施の形態3における時刻取得部70、重畳部50、表示制御部60、ビットマップ記憶部80、入力部10、レイヤ構成記憶部40およびイベント送信部20の各機能は、例えば、
図10に示されるSoC130により実現される。
【0096】
図16は、実施の形態3における重畳部50によるビットマップ生成動作を示すフローチャートである。
【0097】
ステップS12にて、重畳部50は、ビットマップ6を初期化し、生成時刻をビットマップ6に付与する。
【0098】
ステップS20以降は、
図12に示される各ステップと同様である。
【0099】
図17は、実施の形態3におけるイベント送信装置102の動作およびイベント送信方法を示すフローチャートである。
【0100】
ステップS101にて、入力部10は、入力イベントが入力されたタッチ座標と重畳画像5に付与された生成時刻とを取得する。
【0101】
ステップS111にて、入力部10にて取得された生成時刻に一致する生成時刻が付与された一のビットマップ6を選択する。
【0102】
ステップS120以降は、
図13に示される各ステップと同様である。
【0103】
以上をまとめると、実施の形態3におけるイベント送信装置102は、ビットマップ記憶部80をさらに含む。重畳部50は、重畳画像5を生成する度に、重畳画像5に対応するビットマップ6を生成する。ビットマップ記憶部80は、重畳部50によって互いに異なるタイミングで生成された複数のビットマップ6を記憶する。イベント送信部20は、予め定められた選択条件に基づき、複数のビットマップ6から送信先の仮想マシンを選択するための一のビットマップ6を選択する。
【0104】
このような構成により、イベント送信装置102とタッチパネル120との間の通信時間が、ディスプレイ110の表示更新間隔より長い場合であっても、イベント送信装置102は、入力イベントを正確に適切な仮想マシンに送信する。
【0105】
また、実施の形態3におけるイベント送信装置102は、時刻情報を取得する時刻取得部70をさらに含む。重畳部50は、重畳画像5とビットマップ6とを生成する度に、重畳画像5とビットマップ6とに時刻情報を生成時刻として付与する。入力部10は、重畳画像5に付与された生成時刻を取得する。予め定められた選択条件とは、入力部10にて取得された生成時刻と、ビットマップ記憶部80に記憶された各ビットマップ6に付与された生成時刻と、に関係する条件である。
【0106】
このような構成により、イベント送信装置102とタッチパネル120との間の通信時間が、ディスプレイ110の表示更新間隔より長い場合であっても、イベント送信装置102は、入力イベントを正確に適切な仮想マシンに送信する。
【0107】
<実施の形態4>
実施の形態4におけるイベント送信装置およびイベント送信方法を説明する。実施の形態4は、実施の形態1の下位概念である。実施の形態4におけるイベント送信装置は、実施の形態1において示されたイベント送信装置100の各構成を含む。なお、実施の形態1から3のいずれかと同様の構成および動作については説明を省略する。実施の形態4におけるイベント送信装置は、実施の形態3と同様の課題を解決する。
【0108】
図18は、実施の形態4におけるイベント送信装置103の構成を示すブロック図である。
【0109】
実施の形態4における重畳部50は、ビットマップ6、つまり、重畳画像5の一のピクセル7を描画する一の描画レイヤ2とその一のピクセル7の座標との対応関係の情報を含む重畳画像5を生成する。
【0110】
表示制御部60は、重畳画像5をディスプレイ110に表示させる制御を行う。ただし、表示制御部60は、重畳画像5に含まれるビットマップ6を無視して重畳画像5を表示させる制御を行う。つまり、表示制御部60は、描画レイヤ番号が埋め込まれた領域を無視する、つまり値が0であるとみなす。
【0111】
入力部10は、レイヤ情報取得部11を有する。入力部10は、入力イベントを受け付けることにより、重畳部50にて生成された重畳画像5を取得する。ここでは、入力部10は、表示制御部60から重畳画像5を取得する。また、タッチ座標に対応する描画レイヤ番号をレイヤ情報取得部11から取得し、イベント送信部20へ出力する。
【0112】
レイヤ情報取得部11は、入力イベントに含まれるタッチ座標と、重畳画像5とを取得する。レイヤ情報取得部11は、重畳画像5に含まれるビットマップ6に基づき、タッチ座標における画像が由来する描画レイヤ2を特定する。
【0113】
イベント送信部20は、レイヤ情報取得部11にて特定された描画レイヤ2に対応する仮想マシンに、入力イベントを送信する。
【0114】
実施の形態4における重畳部50、表示制御部60、入力部10、レイヤ情報取得部11、レイヤ構成記憶部40およびイベント送信部20の各機能は、例えば、
図10に示されるSoC130により実現される。
【0115】
図19は、実施の形態4における入力部10の動作を示すフローチャートである。
【0116】
ステップS200にて、入力部10は、入力イベントが入力されたタッチ座標を取得する。
【0117】
ステップS210にて、入力部10は、ビットマップ6を含む重畳画像5を取得する。
【0118】
ステップS220にて、レイヤ情報取得部11は、タッチ座標と重畳画像5に含まれるビットマップ6とに基づき描画レイヤ番号を取得する。
【0119】
ステップS230にて、入力部10は、タッチ座標と描画レイヤ番号とを出力する。
【0120】
図20は、実施の形態4におけるイベント送信装置103の動作およびイベント送信方法を示すフローチャートである。
【0121】
ステップS102にて、イベント送信部20は、タッチ座標および描画レイヤ番号を取得する。
【0122】
ステップS130以降は、実施の形態2における
図13に示された各ステップと同様である。
【0123】
以上をまとめると、実施の形態4におけるイベント送信装置103の入力部10は、入力イベントを受け付けることにより、重畳画像5からビットマップ6を取得するレイヤ情報取得部11を含む。イベント送信部20は、レイヤ情報取得部11にて取得されたビットマップ6に基づき、送信先の仮想マシンに、入力イベントを送信する。
【0124】
このような構成により、イベント送信装置103とタッチパネル120との間の通信時間が、ディスプレイ110の表示更新間隔より長い場合であっても、イベント送信装置103は、入力イベントを正確に適切な仮想マシンに送信する。
【0125】
<実施の形態5>
実施の形態5におけるイベント送信装置、情報処理装置、情報処理システムおよびイベント送信方法を説明する。実施の形態5におけるイベント送信装置は、実施の形態1において示されたイベント送信装置100の各構成を含む。なお、実施の形態1から4のいずれかと同様の構成および動作については説明を省略する。
【0126】
実施の形態2から4のいずれかに示されたイベント送信装置は、1つのハイパーバイザ140上で動作する複数の仮想マシン30に対して上記の機能を実現する。そのハイパーバイザ140は、1つのSoC130において構築されている。一方で、実施の形態5におけるイベント送信装置は、複数のSoC130の各々に構築されたハイパーバイザ140上で動作する複数の仮想マシン30に対して上記の機能を実現する。その複数のSoC130は、イベント送信装置と、そのイベント送信装置とは別の情報処理装置と、に分かれて設けられている。
【0127】
図21は、実施の形態5におけるイベント送信装置104、情報処理装置150および情報処理システム200の構成を示すブロック図である。
【0128】
情報処理システム200は、イベント送信装置104と、そのイベント送信装置104とネットワークで接続される情報処理装置150と、を有する。
【0129】
イベント送信装置104は、各実施の形態に示されたように、重畳部50、表示制御部60、入力部10、レイヤ構成記憶部40および複数の仮想マシン30を有する。また、実施の形態5におけるイベント送信装置104は、イベント送信部20として、第1イベント送信部20Aを有する。また、イベント送信装置104は、第1通信部90Aをさらに有する。またイベント送信装置104の複数の仮想マシン30は、第1仮想マシン301から第K仮想マシン30Kを含む。ここでは、Kは、K>1の関係を満たす。
【0130】
情報処理装置150は、第2通信部90B、第2イベント送信部20Bおよび複数の仮想マシン30を有する。情報処理装置150の複数の仮想マシン30は、第M仮想マシン30Mから第N仮想マシン30Nを含む。ここでは、MはM=K+1を、NはN>Mの関係を満たす。
【0131】
第1通信部90Aは、ネットワークを介して情報処理装置150と通信し、データの授受を行う。第1通信部90Aは、入力イベントを情報処理装置150に送信する。また、第1通信部90Aは、情報処理装置150の各仮想マシン30によって描画される画像を含んだ各描画レイヤ2を受信する。
【0132】
重畳部50は、イベント送信装置104の複数の仮想マシン30に対応する複数の描画レイヤ2と、情報処理装置150の複数の仮想マシン30に対応する複数の描画レイヤ2とを、互いに重畳して重畳画像5を生成する。
【0133】
レイヤ構成記憶部40は、レイヤ構成関係を記憶する。
図22は、実施の形態5におけるレイヤ構成関係の一例を示す図である。レイヤ構成関係は、描画レイヤ番号と、使用仮想マシンと、使用装置とが対応づけられたテーブルである。使用装置とは、使用仮想マシンが動作する装置のことである。使用装置は、ここでは、イベント送信装置104もしくは情報処理装置150である。
図22において、描画レイヤ番号「1」で示される第1描画レイヤ2Aは、イベント送信装置104で動作する第2仮想マシン302に対応する。または、例えば、描画レイヤ番号「2」で示される第2描画レイヤ2Bは、情報処理装置150で動作する第M仮想マシン30Mに対応する。
【0134】
第1イベント送信部20Aは、タッチ座標とビットマップ6とに基づき、タッチ座標に対応する領域の画像が由来する一の描画レイヤ2を特定する。第1イベント送信部20Aは、レイヤ構成関係に基づき、一の描画レイヤ2に対応する送信先の仮想マシンおよび送信先の装置を特定する。送信先の仮想マシンがイベント送信装置104で動作する仮想マシンである場合、イベント送信装置104は、その送信先の仮想マシンに入力イベントを送信する。送信先の仮想マシンが情報処理装置150で動作する仮想マシンである場合、イベント送信装置104は、第1通信部90Aを介して、情報処理装置150に入力イベントを送信する。
【0135】
第2通信部90Bは、ネットワークを介してイベント送信装置104と通信し、データの授受を行う。第2通信部90Bは、情報処理装置150の各仮想マシン30によって描画される画像を含んだ各描画レイヤ2をイベント送信装置104に送信する。また、第2通信部90Bは、イベント送信装置104から入力イベントを受信する。
【0136】
第2イベント送信部20Bは、情報処理装置150が有する複数の仮想マシン30のうち、送信先の仮想マシンに入力イベントを送信する。
【0137】
実施の形態5における重畳部50、表示制御部60、入力部10、レイヤ構成記憶部40、第1イベント送信部20Aおよび第1通信部90Aの各機能は、例えば、
図10に示されるSoC130により実現される。また、情報処理装置150もSoC130と同様のハードウェア構成を有する。第2通信部90Bおよび第2イベント送信部20Bの各機能は、そのSoCにより実現される。
【0138】
図23は、実施の形態5における重畳部50による重畳画像の生成動作を示すフローチャートである。
【0139】
ステップS5Aにて、重畳部50は、各装置の各仮想マシン30によって描画される画像と、レイヤ構成関係とを取得する。その際、重畳部50は、第2通信部90Bおよび第1通信部90Aを介して、情報処理装置150が有する各仮想マシン30によって描画される画像を取得するとともに、その画像が由来する使用仮想マシンおよび使用装置を特定するための情報を取得する。
【0140】
ステップS6Aにて、重畳部50は、レイヤ構成関係を参照して、各画像が由来する各仮想マシン30および各使用装置に対応する描画レイヤに、その画像を書き込む。
【0141】
ステップS7Aにて、重畳部50は、複数の描画レイヤを重畳し、重畳画像5を生成する。以上のステップにより、重畳画像5が生成される。
【0142】
図24は、実施の形態5における重畳部50によるビットマップ生成動作を示すフローチャートである。
【0143】
ステップS10は、
図12に示されるステップS10と同様である。
【0144】
ステップS20にて、重畳部50は、重畳画像5を取得する。
【0145】
ステップS30からステップS90までは、
図12に示される各ステップと同様である。ステップS40からステップS70の各ステップは、複数の描画レイヤ2の数だけ繰り返し実行される。実施の形態5において、その複数の描画レイヤ2の数は、イベント送信装置104における複数の仮想マシン30の数(=K)と、情報処理装置150における複数の仮想マシン30の数(=(N−M)+1)とを合計した数(=N)に対応する。
【0146】
図25は、実施の形態5におけるイベント送信装置104の動作およびイベント送信方法を示すフローチャートである。
【0147】
ステップS100からステップS130までは、
図13に示される各ステップと同様である。ただし、実施の形態5において、ステップS110からステップS130は、第1イベント送信部20Aによって実行される。
【0148】
ステップS141にて、第1イベント送信部20Aは、描画レイヤ番号とレイヤ構成関係とに基づき送信先の仮想マシンおよび送信先の装置を選択する。送信先の装置とは、送信先の仮想マシンが含まれる装置のことである。
【0149】
ステップS151にて、第1イベント送信部20Aは、送信先の装置がイベント送信装置104であるか否かを判定する。第1イベント送信部20Aが、送信先の装置はイベント送信装置104でないと判定した場合、ステップS152が実行される。第1イベント送信部20Aが、送信先の装置はイベント送信装置104であると判定した場合、ステップS153が実行される。
【0150】
ステップS152にて、第1イベント送信部20Aは、第1通信部90Aを介して、情報処理装置150に入力イベントおよび送信先の仮想マシンの情報を送信する。
【0151】
ステップS153にて、第1イベント送信部20Aは、イベント送信装置104に含まれる送信先の仮想マシンに入力イベントを送信する。
【0152】
図26は、実施の形態5における情報処理装置150の動作およびイベント送信方法を示すフローチャートである。
【0153】
ステップS300にて、第2イベント送信部20Bは、第2通信部90Bを介して、入力イベントおよび送信先の仮想マシンの情報を取得する。
【0154】
ステップS310にて、第2イベント送信部20Bは、送信先の仮想マシンに入力イベントを送信する。
【0155】
上記のイベント送信装置104が、実施の形態3および4のそれぞれに示された構成を有していてもよい。また、上記の複数のSoC130は、イベント送信装置104とそのイベント送信装置104とは別の情報処理装置150とに分けて設けられているが、1台のイベント送信装置の中に含まれていてもよい。また、上記の情報処理装置150が、2台目のイベント送信装置であってもよい。情報処理システム200は、2台以上の情報処理装置を含んでいてもよい。
【0156】
以上をまとめると、実施の形態5におけるイベント送信装置104は、複数の仮想マシン30のそれぞれに対応して設けられる複数の描画レイヤ2が、互いに重畳された重畳画像5に対して入力される入力イベントを受け付ける入力部10と、重畳画像5における複数の位置と各位置における画像が由来する一の描画レイヤ2との対応関係に基づき、複数の仮想マシン30のうち、重畳画像5における入力イベントの入力位置に対応する一の仮想マシンである送信先の仮想マシンに、入力イベントを送信する第1イベント送信部20Aと、情報処理装置150に、ネットワークを介して入力イベントを送信する第1通信部90Aと、を含む。
【0157】
このような構成により、イベント送信装置104は、イベント送信装置104以外の装置で動作する仮想マシンに対しても、入力イベントを適切に送信することができる。
【0158】
また、実施の形態5における情報処理装置150は、ハイパーバイザ140上で動作する複数の仮想マシン30のうち一の仮想マシンに入力イベントを送信するイベント送信装置104とネットワークで接続される。ハイパーバイザ140上で動作する複数の仮想マシン30と、イベント送信装置104の第1通信部90Aから、ネットワークを介して入力イベントを受信する第2通信部90Bと、第2通信部90Bにて受信された入力イベントを送信先の仮想マシンに送信する第2イベント送信部20Bと、を含む。
【0159】
このような構成により、情報処理装置150がイベント送信装置104の入力部10および重畳部50に対応する機能を有していない場合であっても、入力イベントを適切な仮想マシンに送信することができる。
【0160】
また、実施の形態5における情報処理システム200は、ハイパーバイザ140上で動作する複数の仮想マシン30のうち一の仮想マシンに入力イベントを送信するイベント送信装置104と、イベント送信装置104とネットワークで接続される情報処理装置150と、を含む。イベント送信装置104は、複数の仮想マシン30のそれぞれに対応して設けられる複数の描画レイヤ2が、互いに重畳された重畳画像5に対して入力される入力イベントを受け付ける入力部10と、重畳画像5における複数の位置と各位置における画像が由来する一の描画レイヤ2との対応関係に基づき、複数の仮想マシン30のうち、重畳画像5における入力イベントの入力位置に対応する一の仮想マシンである送信先の仮想マシンに、入力イベントを送信する第1イベント送信部20Aと、情報処理装置150に、ネットワークを介して入力イベントを送信する第1通信部90Aと、を含む。情報処理装置150は、ハイパーバイザ140上で動作する複数の仮想マシン30と、イベント送信装置104の第1通信部90Aから、ネットワークを介して入力イベントを受信する第2通信部90Bと、第2通信部90Bにて受信された入力イベントを送信先の仮想マシンに送信する第2イベント送信部20Bと、を含む。
【0161】
このような構成により、情報処理システム200は、イベント送信装置104以外の装置で動作する仮想マシンに対しても、入力イベントを適切に送信することができる。また、情報処理システム200は、情報処理装置150がイベント送信装置104の入力部10および重畳部50に対応する機能を有していない場合であっても、入力イベントを適切な仮想マシンに送信することができる。
【0162】
<実施の形態6>
上記の各実施の形態に示されるイベント送信装置、ディスプレイ110およびタッチパネル120は、例えば、車両に搭載される。または、例えば、イベント送信装置は、ナビゲーション装置と、通信端末と、サーバと、これらにインストールされるアプリケーションの機能とを適宜に組み合わせて構築されるシステムにも適用することができる。ここで、ナビゲーション装置とは、例えば、PND(Portable Navigation Device)などを含む。通信端末とは、例えば、携帯電話、スマートフォンおよびタブレットなどの携帯端末を含む。
【0163】
図27は、実施の形態6におけるイベント送信装置100およびそれに関連して動作する装置の構成を示すブロック図である。
【0164】
イベント送信装置100、複数の仮想マシン30および通信装置160がサーバ300に設けられている。イベント送信装置100は、車両1に設けられたタッチパネル120から通信装置170および通信装置160を介して入力イベントを取得する。イベント送信装置100は、各実施の形態に示された処理を実行し、送信先の仮想マシンに入力イベントを送信する。さらに、送信先の仮想マシンが入力イベントに基づいた処理を実行する。その処理に関連する結果が、イベント送信装置100の重畳部50および表示制御部60を介してディスプレイ110に出力されてもよい。
【0165】
このように、イベント送信装置100がサーバ300に配置されることにより、車載装置の構成を簡素化することができる。
【0166】
また、イベント送信装置100の機能あるいは構成要素の一部がサーバ300に設けられ、他の一部が車両1に設けられるなど、分散して配置されてもよい。
【0167】
なお、本発明は、その発明の範囲内において、各実施の形態を自由に組み合わせたり、各実施の形態を適宜、変形、省略したりすることが可能である。
【0168】
本発明は詳細に説明されたが、上記した説明は、全ての局面において、例示であって、本発明がそれに限定されるものではない。例示されていない無数の変形例が、この発明の範囲から外れることなく想定され得るものと解される。