(57)【要約】【課題】イベントキューに保持するイベントの数を適切に調整してユーザの操作に対するレスポンスの低下を防止する情報処理装置を提供する。【解決手段】情報処理装置は、ユーザが行った操作内容に応じて生成されたイベントを発生順に沿って保持するイベントキュー２０２と、イベントキュー２０２に保持されるイベントの数に応じて、動的に変更可能でイベントを間引きする頻度を表す間引き頻度を決定する間引き頻度決定部２０１と、タッチパネル１０３で生成されたイベントを、間引き頻度に応じて間引きするとともに、間引かないイベントをイベントキュー２０２に保持させるイベント保持制御部２００と、を備える。【選択図】図２
2015185122.tif 000002
【特許請求の範囲】
【請求項１】
ユーザが行った操作内容に応じて生成されたイベントを取得する取得手段と、
前記取得手段で取得されたイベントを発生順に沿って保持する保持手段と、
前記保持手段に保持される前記イベントの数に応じて、前記イベントを間引きする頻度を表し、かつ、動的に変更可能な間引き頻度を決定する間引き頻度決定手段と、
前記取得手段で取得されたイベントを、前記間引き頻度に応じて間引きするとともに、間引かない前記イベントを前記保持手段に保持させる保持制御手段と、を備えることを特徴とする、
情報処理装置。
【請求項２】
前記間引き頻度決定手段は、前記保持手段に保持される前記イベントの数が多いほど、前記間引き頻度を高くすることを特徴とする、
請求項１に記載の情報処理装置。
【請求項３】
前記取得手段は、前記ユーザに操作されるオブジェクトが表示されるディスプレイにおいて、前記ユーザが操作した前記ディスプレイ上の位置を表す座標情報を含む前記イベントを取得し、
前記保持制御手段が前記イベントを間引くと、その時点で前記保持手段が保持するイベントの前記座標情報を補正する補正手段を更に備えることを特徴とする、
請求項１又は２に記載の情報処理装置。
【請求項４】
前記補正手段は、前記保持手段が保持するＮ個のイベント及び間引き対象のイベントの各々が含む座標情報から、等間隔に並んだＮ個の座標情報を含むイベントを生成することを特徴とする、
請求項３に記載の情報処理装置。
【請求項５】
前記保持手段が保持するイベントの数に対応して間引き頻度が設定される間引き頻度モデルを格納する格納手段を更に備えており、
前記間引き頻度決定手段は、前記間引き頻度モデルを参照して、前記間引き頻度を決定することを特徴とする、
請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項６】
前記格納手段は、前記保持手段が保持するイベントの数に対応して、異なる間引き頻度が設定される複数の間引きモデルを格納しており、
前記間引き頻度決定手段は、間引き頻度が所定の限界値よりも高い状態が所定時間以上継続するときに、参照する間引きモデルを他の間引きモデルに変更することを特徴とする、
請求項５に記載の情報処理装置。
【請求項７】
前記間引き頻度決定手段は、処理負荷に応じて、参照する間引きモデルを変更することを特徴とする、
請求項６に記載の情報処理装置。
【請求項８】
前記格納手段は、前記保持手段が保持するイベントの数に対応して、間引き間隔が設定された間引きモデルを格納しており、
前記間引き頻度決定手段は、前記間引き頻度モデルを参照して、前記間引き頻度として前記間引き間隔を取得することを特徴とする、
請求項５〜７のいずれか１に項記載の情報処理装置。
【請求項９】
前記格納手段は、前記保持手段が保持するイベントの数に対応して、間引き確率が設定された間引きモデルを格納しており、
前記間引き頻度決定手段は、前記間引き頻度モデルを参照して、前記間引き頻度として前記間引き確率を取得することを特徴とする、
請求項５〜７のいずれか１に項記載の情報処理装置。
【請求項１０】
前記間引き頻度決定手段は、前記間引き頻度を表す間引き確率を、前記保持手段が保持するイベントの数及び定数により算出することを特徴とする、
請求項１〜４のいずれか１項に記載の情報処理装置。
【請求項１１】
ユーザが行った操作に応じて生成されたイベントを取得する取得手段と、
前記取得手段で取得されたイベントを発生順に沿って保持する保持手段と、を備えた装置により実行される方法であって、
前記保持手段に保持される前記イベントの数に応じて、前記イベントを間引きする頻度を表し、かつ、動的に変更可能な間引き頻度を決定するステップと、
前記取得手段で取得されたイベントを、前記間引き頻度に応じて間引きするとともに、間引かない前記イベントを前記保持手段に保持させるステップと、を含むことを特徴とする、
入力制御方法。
【請求項１２】
ユーザが行った操作に応じて生成されたイベントを取得する取得手段を備えるコンピュータを、
前記取得手段で取得されたイベントを発生順に沿って保持する保持手段、
前記保持手段に保持される前記イベントの数に応じて、前記イベントを間引きする頻度を表し、かつ、動的に変更可能な間引き頻度を決定する間引き頻度決定手段、
前記取得手段で取得されたイベントを、前記間引き頻度に応じて間引きするとともに、間引かない前記イベントを前記保持手段に保持させる保持制御手段、
として機能させるためのコンピュータプログラム。
【請求項１３】
請求項１２に記載のコンピュータプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力に応じて生成されるイベントの処理を制御する入力制御技術に関する。
【背景技術】
【０００２】
情報処理装置には、ＧＵＩ（Graphical User Interface）を用いたものがある。ＧＵＩを用いた情報処理装置では、一般に、ユーザが行った操作による操作情報に応じたイベントをイベントキューに保持し、順次処理する。イベントの処理を行う速度に対してイベントキューに保持したイベントの数が多すぎる場合、処理が追いつかなくなり、ユーザの操作に対するレスポンスが低下する。これは、短時間に多くのイベントが発生するポインティング操作（マウス操作やタッチ操作）によって特に発生しやすい。この場合、例えば、タッチパネルのディスプレイに表示されたオブジェクトをユーザがドラッグして、所定の位置に移動するときに、指の移動にオブジェクトを追従しきれないといった現象が発生する。
【０００３】
これに対して特許文献１では、イベントキューから複数のマウスポインタの移動を示すイベントを検出した場合に、検出したイベントを削除する。特許文献２では、ポインタ移動速度が基準速度値以上に高速になったと判断された場合に、ポインタ移動に伴うサーバ装置へのイベント送信を省略する。特許文献３では、マウス等によって発生した移動イベントについて、所定個数毎にイベントを間引く。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−０７６２８２号公報
【特許文献２】特開２００７−２７２７７０号公報
【特許文献３】特開平３−２１８５１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
このように従来は、イベントキューに保持するイベントの数が多くなると、保持するイベントの個数やポインタの移動速度に応じてイベントの間引きを行うことで、ユーザの操作に対するレスポスの低下を防止している。しかしながら、情報処理装置の動作中は、ユーザの操作内容やディスプレイへの表示内容、装置全体の負荷状況等の諸条件に応じて、イベントキューに保持するイベントの溜まりやすさが刻々と変化する。例えば、ユーザがポインティング操作を長時間継続して行う場合、イベントはイベントキューに溜まりやすくなる。また、タッチパネルのディスプレイに表示されるオブジェクトの数が多い場合や、ＧＵＩ以外の処理にリソースが費やされている場合も、描画処理に通常よりも時間がかかってしまいイベントが溜まりやすくなる。
【０００６】
そのために、従来のように一定の条件でイベントの間引きを行う場合、イベントが溜まりにくい状況で必要以上にイベントが間引かれたり、逆にイベントが溜まりやすい状況で十分にイベントが間引かれないことがある。必要以上にイベントが間引かれる場合、例えば操作情報が失われるために、オブジェクトは、各描画フレームで移動距離が大きくなってスムーズに移動しなくなる。十分にオブジェクトが間引かれない場合、ユーザの操作に対するレスポンスが低下して、オブジェクトの追従性が十分に得られなくなる。
【０００７】
本発明は、上記の問題を解決するために、イベントキューに保持するイベントの数を適切に調整してユーザの操作に対するレスポンスの低下を防止する情報処理装置を提供することを主たる目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決する本発明の情報処理装置は、ユーザが行った操作内容に応じて生成されたイベントを取得する取得手段と、前記取得手段で取得されたイベントを発生順に沿って保持する保持手段と、前記保持手段に保持される前記イベントの数に応じて、前記イベントを間引きする頻度を表し、かつ、動的に変更可能な間引き頻度を決定する間引き頻度決定手段と、前記取得手段で取得されたイベントを、前記間引き頻度に応じて間引きするとともに、間引かない前記イベントを前記保持手段に保持させる保持制御手段と、を備えることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、イベントキューに保持するイベントの数を適切に調整してユーザの操作に対するレスポンスの低下を防止することができる。
【図面の簡単な説明】
【００１０】
【図１】情報処理装置のハードウェア構成図。
【図２】情報処理装置内に形成される機能を表す機能ブロック図。
【図３】オブジェクトが移動する様子の説明図。
【図４】表示フレームの説明図。
【図５】座標情報の補正方法の説明図。
【図６】間引き間隔表の例示図。
【図７】間引き間隔表の例示図。
【図８】間引き間隔表の例示図。
【図９】タッチイベントの間引きを行う処理を表すフローチャート。
【図１０】間引き確率表の例示図。
【図１１】間引き確率表の例示図。
【図１２】間引き確率表の例示図。
【図１３】タッチイベントの間引きを行う処理を表すフローチャート。
【発明を実施するための形態】
【００１１】
以下、図面を参照して実施形態を詳細に説明する。ただし、本実施形態に記載されている構成要素はあくまでも例示であり、本発明の範囲をそれらのみに限定する趣旨のものではない。
【００１２】
本実施形態では、ディスプレイ及びユーザのディスプレイ上のタッチ位置を検出するポインティングデバイスを備えたタッチパネルに表示されたオブジェクトを、ユーザがドラッグして所定の位置に移動させる処理について説明する。ドラッグによって発生するイベント（タッチイベント）を間引く際には、イベントキュー内に保持されている未処理のイベント数に基づいて間引き頻度を動的に変更することで、イベントの過剰な間引きや、間引き量の不足を回避する。
【００１３】
＜構成＞
図１は、本実施形態の入力制御を行う情報処理装置のハードウェア構成例示図である。情報処理装置は、ＣＰＵ（Central Processing Unit）１００、ＲＯＭ（Read Only Memory）１０１、ＲＡＭ（Random Access Memory）１０２、及びタッチパネル１０３を備える。ＣＰＵ１００、ＲＯＭ１０１、ＲＡＭ１０２、及びタッチパネル１０３は、バス１０４により、相互にデータ通信可能に接続される。
【００１４】
ＣＰＵ１００は、ＲＯＭ１０１に格納されるコンピュータプログラムを読み込み、ＲＡＭを作業領域に用いて実行することで、情報処理装置全体の動作を制御する。特に、本実施形態では、ＣＰＵ１００が、ＧＵＩに関する処理を実行する。例えば、ＣＰＵ１００は、ＧＵＩのためにオブジェクトをタッチパネル１０３のディスプレイに表示し、ユーザがタッチパネル１０３を操作した操作内容に応じて処理を実行する。ＲＯＭ１０１は、コンピュータプログラムの他に、ＧＵＩのオブジェクトデータやＣＰＵ１００の処理に用いられるデータ等が格納される。
【００１５】
タッチパネル１０３は、ＣＰＵ１００の制御によりディスプレイにＧＵＩのためのオブジェクトを表示し、ポインティングデバイスによりユーザのタッチ位置の座標情報を含む操作情報を取得する。タッチパネル１０３は、取得した操作情報からタッチイベントを生成してＣＰＵ１００に送信する。なお、イベントとは、入力に応じてシステムに指示された挙動や状態の変化を、特定の機能に通知するための情報である。イベントは、発生順に沿ってイベントキューに保持され、特定の機能による処理を待つ。なお、本実施形態ではタッチイベントの生成にタッチ位置の座標情報を含む操作情報を用いるが、マウス等のポインティングデバイスでオブジェクトを操作する場合、操作情報はポインティングデバイスが指示する位置の座標情報を含む。なお、本実施形態では、タッチパネル１０３は情報処理装置に一体化した構成とするが、インタフェースを介して接続された外部装置であっても構わない。
【００１６】
図２は、情報処理装置内に形成される機能を表す機能ブロック図である。情報処理装置には、ＣＰＵ１００がＲＯＭ１０１からコンピュータプログラムを読み込んで実行することにより、イベント保持制御部２００、間引き頻度決定部２０１、イベントキュー２０２、及び座標情報補正部２０３が形成される。
【００１７】
イベント保持制御部２００は、タッチパネル１０３からタッチイベントを取得し、これをイベントキュー２０２に保持させる。イベント保持制御部２００は、間引き頻度決定部２０１から後述する間引き頻度に関する情報を受け取り、タッチイベントをイベントキュー２０２に保持させる際にタッチイベントを間引くか否かの判定を行う。間引きを行う場合にイベント保持制御部２００は、該タッチイベントをイベントキュー２０２に保持させずに破棄する。イベント保持制御部２００は、最後に間引いたタッチイベントから次のタッチイベントを間引くまでのタッチイベント数、すなわち間引き間隔を動的に変更可能であり、間引き頻度に応じて間引きを行う。
【００１８】
間引き頻度決定部２０１は、間引き頻度を決定するために、イベントキュー２０２に残存する未処理イベント数の情報を取得する。間引き頻度決定部２０１は、未処理イベント数が多い場合は間引き頻度を高くして多くのタッチイベントが間引かれるようにし、逆に少ない場合は間引き頻度を低くして多くのタッチイベントがイベントキュー２０２に保持されるようにする。
【００１９】
イベントキュー２０２は、一般に良く知られるＦＩＦＯ（First-In First-Out）構造であり、イベント保持制御部２００から連続して入力されるタッチイベントをＲＡＭ１０２に保持する。座標情報補正部２０３は、イベント保持制御部２００においてタッチイベントが間引かれた際に、イベントキュー２０２内に保持されているタッチイベントを用いて座標情報を補正する。座標情報の補正の詳細については後述する。
【００２０】
図３は、ユーザのタッチ操作によりオブジェクトが移動する様子を説明する図である。ユーザは、タッチパネル１０３のディスプレイ３００に表示されたオブジェクト３０１をタッチし、始点３０２から移動経路３０３に沿って終点３０４まで、タッチしたまま指を移動する。この間、タッチ操作による操作情報に応じた多数のタッチイベントが発生するが、イベント保持制御部２００及び間引き頻度決定部２０１により、一部が間引かれてイベントキュー２０２に保持される。ＣＰＵ１００は、タッチイベントをイベントキュー２０２に先に保持されたものから順に取り出し、各タッチイベントによる座標情報の位置にオブジェクトを描画して、ユーザにオブジェクトが移動する様子を提示する。この表示位置の変更を連続して行うことで、ＣＰＵ１００は、ユーザの指の位置にオブジェクトが追従する動画をユーザに提供する。
【００２１】
図４は、オブジェクト移動時の表示フレームの説明図である。オブジェクトは、最初に第１表示位置４００に表示される。図３に示すようなユーザのタッチ操作により、オブジェクトは、第２表示位置４０１〜第８表示位置４０７に順に表示され、最終的に第９表示位置４０８に表示される。本実施形態では、イベントキュー２０２内に保存されたタッチイベントの数に応じて適正に間引き頻度を変更するため、オブジェクトを、指位置４０９に対して遅延せずに第９表示位置４０８に表示することができる。また、タッチイベントの過剰な間引きを抑制する。さらに、座標情報補正部２０３が、間引かれたタッチイベントとイベントキュー２０２内に残存するタッチイベントの座標情報に基づいて補正を行い、第１表示位置４００〜第９表示位置４０８が等間隔に並ぶようにする。これにより、間引きによってオブジェクトの表示位置が急激に変化してしまうことを防止して、オブジェクトが連続してスムーズに移動する。
【００２２】
図５は、座標情報補正部２０３による座標情報の補正方法の説明図である。図５では、イベント保持制御部２００がタッチイベント６０４を間引きし、その時点でイベントキュー２０２が第１未処理イベント６００〜第４未処理イベント６０３を保持する。各タッチイベントは、ユーザがタッチ操作したタッチパネル１０３上の位置を表す座標情報６０５を有している。なお、一般的に位置を表す座標情報は横方向（Ｘ）と縦方向（Ｙ）との２つの値の組み合わせで表されるが、ここでは説明の簡易化のため、１つの値としている。実際には、座標情報の補正を縦横両方向の座標情報に適用する。
【００２３】
座標情報補正部２０３は、まず、前後に連続するタッチイベントが表す座標情報６０５の中間座標６０６を求め、それらの間の距離である中間座標間距離６０７を算出する。次いで座標情報補正部２０３は、中間座標間距離６０７の平均距離６０８を算出し、これを各中間座標６０６に加算することで補正座標６０９を生成する。以上の処理は、一般に、（Ｎ＋１）個のタッチイベントの各々が含む座標情報からＮ個の等間隔に並んだ座標情報を生成する処理である。ここでは、イベントキュー２０２に保持されているＮ個のタッチイベント及び間引き対象のタッチイベントの各々の座標情報から、Ｎ個の座標情報を生成する。この処理により、間引かれるタッチイベントの座標情報を加味してイベントキュー２０２に残存するイベントの座標情報を平均化することができる。
【００２４】
以上のような構成の情報処理装置により、以下に説明する間引き間隔表又は間引き確率表を用いてタッチイベントの間引きを行う。
【００２５】
［第１実施形態］
図６〜図８は、間引き間隔表の例示図である。間引き間隔表は、イベントキュー２０２内に残存するタッチイベントの数に応じて間引き頻度を動的に決定するための間引き頻度モデルである。図６〜図８の間引き間隔表は、ＲＯＭ１０１のコンピュータプログラム内に格納されており、間引き頻度決定部２０１により適宜参照される。
【００２６】
図６〜図８の間引き間隔表のイベント数５００は、イベントキュー２０２内に残存するタッチイベントの数を示している。間引き間隔表毎に、イベント数５００に応じて異なる間引き間隔５０１、７００、８００が設定される。例えば図６の間引き間隔表では、イベントキュー２０２内に８個のタッチイベントが未処理のまま残存する場合、間引き間隔は「３」となる。イベント保持制御部２００は、この間引き間隔の情報を間引き頻度決定部２０１から受け取り、最後にタッチイベントを間引いてから３個以上のタッチイベントを取得していた場合に、タッチパネル１０３から取得したタッチイベントを間引く。また、タッチイベントがイベントキュー２０２内に１１個残存していた場合、間引き間隔は「０」である。そのためにイベント保持制御部２００は、次に取得したタッチイベントを間引く。逆に、タッチイベントがイベントキュー２０２内に４個残存していた場合は、イベント処理能力に余裕があるとみなし、イベント保持制御部２００は、タッチイベントの間引きを行わない。
【００２７】
間引き頻度が高い状態は、イベントキュー２０２内に未処理のタッチイベントが多く残存することを表す。イベントキュー２０２内の未処理のタッチイベントが多く残存する場合、残存するタッチイベントの分だけ、ユーザの指の位置とオブジェクトの描画位置とにずれが生じることがある。これを回避するために、間引き頻度が高い状態が所定の時間継続した場合に、参照対象となる間引き間隔表を図６から図７のものに変更する。
【００２８】
例えば、間引き頻度の限界値を間引き間隔「１」に設定しておき、これよりも間引き頻度が高い場合を間引き頻度が高い状態とする。間引き頻度が設定値以上の状態（間引き間隔が「１」以上の状態）が所定時間以上継続、例えば３０００ミリ秒以上継続した場合、間引き頻度決定部２０１は、参照する間引き間隔表を、図６のものから図７のものに変更する。図７の間引き間隔表の間引き間隔７００は、イベントキュー２０２内のタッチイベントの数が６個の段階から間引き間隔を「０」としている。そのために、図６の間引き間隔表と比較して少ない数しかイベントキュー２０２内に残存しないようになる。
【００２９】
タッチイベントがイベントキュー２０２に溜まりやすくなる要因の一つに、表示するオブジェクトの内容が複雑で、描画処理の負荷が多大であることがある。そのために、描画処理にかかる時間に制限を設けて、初期画面の描画にこの制限時間以上要した場合に、参照対象となる間引き間隔表を図６のものから図８のものに変更する。
【００３０】
例えば、初期描画の制限時間を５００ミリ秒に設定しておき、これよりも初期画面の描画に時間がかかる場合に、間引き頻度決定部２０１は、参照する間引き間隔表を、図６のものから図８のものに変更する。つまり、処理負荷に応じて、参照する間引き間隔表を変更する。図８の間引き間隔表の間引き間隔８００は、イベントキュー２０２内のタッチイベントの数が６個以上のときの間引き間隔は図６と同じであるが、タッチイベントの数が３個〜５個の場合も間引きを行うようにする。イベントキュー２０２に残存するタッチイベントの数がより少ないときから間引きを開始することで、描画処理に時間を要した場合でもイベントキュー２０２内にタッチイベントが残存しないようにする。
【００３１】
図９は、図６〜図８に示した間引き間隔表を用いてタッチイベントの間引きを行う処理を表すフローチャートである。タッチパネル１０３のディスプレイが、ＧＵＩに用いるオブジェクトを表示した後にこの処理が開始される。以下、図６の間引き間隔表を「第１間引き間隔表」、図７の間引き間隔表を「第２間引き間隔表」、図８の間引き間隔表を「第３間引き間隔表」とする。初期状態では、間引き頻度決定部２０１の参照対象の間引き間隔表は、第１間引き間隔表である。
【００３２】
間引き頻度決定部２０１は、オブジェクトの初期描画に所定時間（ここでは５００ミリ秒）以上かかったか否かを確認する（Ｓ９００）。５００ミリ秒以上かかった場合（Ｓ９００：Y）、間引き頻度決定部２０１は、参照対象の間引き間隔表を第３間引き間隔表に変更する。オブジェクトの初期描画に５００ミリ秒以上かかっていない場合（Ｓ９００：N）、或いは参照する間引き間隔表を変更した後に、ユーザがタッチパネル１０３上で指を移動させる（Ｓ９０２）。これによりイベント保持制御部２００は、タッチパネル１０３からタッチイベントを取得する。
【００３３】
間引き頻度決定部２０１は、所定時間（ここでは３０００ミリ秒）以上の間、間引き間隔が「１」以下であるかを確認する（Ｓ９０３）。３０００ミリ秒以上の間、間引き間隔が「１」以下である場合（Ｓ９０３：Y）、間引き頻度決定部２０１は、参照対象の間引き間隔表を第２間引き間隔表に変更する（Ｓ９０４）。
【００３４】
３０００ミリ秒以上の間、間引き間隔が「１」以下でない場合（Ｓ９０３：N）、或いは参照する間引き間隔表を変更した後に、間引き頻度決定部２０１は、イベントキューに現在残存しているタッチイベントの数を確認する（Ｓ９０５）。間引き頻度決定部２０１は、参照対象の間引き間隔表を参照して、確認したタッチイベント数に対応する間引き間隔を取得する（Ｓ９０６）。
【００３５】
イベント保持制御部２００は、最後にタッチイベントを間引いてから生成したタッチイベントの数を確認する（Ｓ９０７）。イベント保持制御部２００は、例えば取得したタッチイベントの数をカウントするカウンタを備えており、このカウント値により、最後にタッチイベントを間引いてから取得したタッチイベントの数を確認する。イベント保持制御部２００は、確認したタッチイベントの数と間引き頻度決定部２０１が取得した間引き間隔とにより、今回のタッチイベントが間引き対象であるか否かを判定する（Ｓ９０８）。
【００３６】
間引き対象ではない場合（Ｓ９０８：N）、イベント保持制御部２００は、イベントキュー２０２にステップＳ９０２で生成したタッチイベントを保持させる（Ｓ９０９）。イベントキュー２０２は、これにより新たなタッチイベントが追加される。間引き対象である場合（Ｓ９０８：Y）、イベント保持制御部２００は、生成したタッチイベントを破棄し、図５で説明した座標情報の補正処理を行う（Ｓ９１０）。
【００３７】
座標情報補正又はタッチイベントの保持が終了すると、ＣＰＵ１００は、イベント発生時の処理を終了するか否かを判定する（Ｓ９１２）。例えば、ユーザの操作によって別の表示画面への遷移が指示された場合やオブジェクトの表示を終了する場合に、ＣＰＵ１００は、処理を終了する（Ｓ９１２：Y）。終了しない場合（Ｓ９１２：N）、ＣＰＵ１００は、ステップＳ９０２からの処理を繰り返す。
【００３８】
このように本実施例形態では、イベントキュー２０２内に残存するタッチイベントの数に応じて間引き間隔を動的に変更する。これにより、タッチイベントの溜まりやすさが刻々と変化しても、オブジェクトの追従性と移動のスムーズさを両立してポインティング操作に対する処理を行うことが可能となる。
【００３９】
なお、本発明は、本実施形態で示したオブジェクトの内容、ユーザの操作内容に限定されない。また、ステップＳ９００やステップＳ９０３の判定処理に用いた時間や間引き間隔の閾値も任意に設定可能である。さらに、本実施形態では、間引き頻度の制御を行うために間引き間隔表を利用したが、本発明は、間引き間隔の情報を利用することや、間引き間隔の具体的な数に限定されない。イベントキュー２０２内に残存するタッチイベントの数に対応して、間引き頻度が決定されるものであれば良い。
【００４０】
［第２実施形態］
第２実施形態では、第１実施形態の間引き間隔表に代えて、間引き頻度モデルに、イベントキュー２０２内に残存するタッチイベントの数に応じて間引き確率を動的に決定するための間引き確率表を用いる。図１０〜図１２は、間引き確率表の例示図である。図１０〜図１２の間引き確率表は、ＲＯＭ１０１のコンピュータプログラム内に格納されており、間引き頻度決定部２０１により適宜参照される。
【００４１】
図１０〜図１２の間引き確率表のイベント数５００は、イベントキュー２０２内に残存するタッチイベントの数を示している。間引き確率表毎に、イベント数５００に応じた間引き確率１００１、１１００、１２００が設定される。例えば図１０の間引き確率表では、イベントキュー２０２内に８個のタッチイベントが未処理のまま残存する場合、間引き確率は「０．５」となる。イベント保持制御部２００は、この間引き確率の情報を間引き頻度決定部２０１から受け取り、次にタッチパネル１０３から取得したタッチイベントを５割の確率で間引く。また、タッチイベントがイベントキュー２０２内に１１個残存していた場合、間引き間隔は「１．０」である。そのためにイベント保持制御部２００は、次に取得したタッチイベントを間引く。逆に、タッチイベントがイベントキュー２０２内に４個残存していた場合、間引き確率は「０．０」であるためにイベント保持制御部２００は、タッチイベントの間引きを行わない。
【００４２】
間引き頻度が高い状態は、イベントキュー２０２内に未処理のタッチイベントが多く残存することを表す。イベントキュー２０２内の未処理のタッチイベントが多く残存する場合、残存するタッチイベントの分だけ、ユーザの指の位置とオブジェクトの描画位置とにずれが生じることがある。これを回避するために、間引き頻度が高い状態が所定の時間継続した場合に、参照対象となる間引き確率表を図１０から図１１のものに変更する。
【００４３】
例えば、間引き頻度の限界値を間引き確率「０．８」に設定しておき、これよりも間引き頻度が高い場合を間引き頻度が高い状態とする。間引き頻度がこれ以上の状態（間引き確率が「０．８」以上の状態）が所定時間以上継続、例えば３０００ミリ秒以上継続した場合、間引き頻度決定部２０１は、参照する間引き間隔表を、図１０のものから図１１のものに変更する。図１１の間引き確率表の間引き確率１１００は、イベントキュー２０２内のタッチイベントの数が６個の段階から間引き間隔を「１．０」としている。そのために、図１０の間引き確率表と比較して少ない数しかイベントキュー２０２内に残存しないようになる。
【００４４】
オブジェクトの描画処理に時間がかかる場合にも、間引き頻度の変更を行う。そのために、描画処理にかかる時間に制限を設けて、オブジェクトの描画にこの制限時間以上要した場合に、参照対象となる間引き確率表を図１０のものから図１２のものに変更する。例えば、描画の制限時間を５００ミリ秒に設定しておき、これよりもオブジェクトの描画に時間がかかる場合に、間引き頻度決定部２０１は、参照する間引き確率表を、図１０のものから図１２のものに変更する。図１２の間引き確率表の間引き確率１２００は、イベントキュー２０２内のタッチイベントの数が８個以上のときの間引き間隔は図１０と同じであるが、タッチイベントの数が３個〜７個の間引き確率を上げて、より高い頻度で間引きを行うようにする。これにより、描画処理に時間を要した場合でもイベントキュー２０２内にタッチイベントが残存しないようにする。
【００４５】
図１３は、図１０〜図１２の間引き確率表を用いてタッチイベントの間引きを行う処理を表すフローチャートである。タッチパネル１０３のディスプレイが、ＧＵＩに用いるオブジェクトを表示した後にこの処理が開始される。以下、図１０の間引き確率表を「第１間引き確率表」、図１１の間引き確率表を「第２間引き確率表」、図１２の間引き確率表を「第３間引き確率表」とする。初期状態では、間引き頻度決定部２０１の参照対象の間引き間隔表は、第１間引き確率表である。
【００４６】
間引き頻度決定部２０１は、オブジェクトの初期描画に所定時間（ここでは５００ミリ秒）以上かかったか否かを確認する（Ｓ１３００）。５００ミリ秒以上かかった場合（Ｓ１３００：Y）、間引き頻度決定部２０１は、参照対象の間引き確率表を第３間引き確率表に変更する。オブジェクトの初期描画に５００ミリ秒以上かかっていない場合（Ｓ１３００：N）、或いは参照する間引き確率表を変更した後に、ユーザがタッチパネル１０３上で指を移動させる（Ｓ１３０２）。これによりイベント保持制御部２００は、タッチパネル１０３からタッチイベントを取得する。
【００４７】
間引き頻度決定部２０１は、所定時間（ここでは３０００ミリ秒）以上の間、間引き確率が「０．８」以上であるかを確認する（１３０３）。３０００ミリ秒以上の間、間引き確率が「０．８」以上である場合（Ｓ１３０３：Y）、間引き頻度決定部２０１は、参照対象の間引き確率表を第２間引き確率表に変更する（Ｓ１３０４）。
【００４８】
３０００ミリ秒以上の間、間引き確率が「０．８」以上でない場合（Ｓ１３０３：N）、或いは参照する間引き確率表を変更した後に、間引き頻度決定部２０１は、イベントキューに現在残存しているタッチイベントの数を確認する（Ｓ１３０５）。間引き頻度決定部２０１は、参照対象の間引き確率表を参照して、確認したタッチイベント数に対応する間引き確率を取得する（Ｓ１３０６）。
【００４９】
イベント保持制御部２００は、乱数を生成する（Ｓ１３０７）。本実施形態では、「１〜１００」の範囲で乱数を生成する。イベント保持制御部２００は、生成した乱数と間引き頻度決定部２０１が取得した間引き確率とにより、今回のタッチイベントが間引き対象であるか否かを判定する（Ｓ１３０８）。例えば、間引き確率が「０．５」の場合、乱数が「１〜５０」の間であれば、イベント保持制御部２００は、今回のタッチイベントを間引く。間引き確率が「０．３」の場合、乱数が「１〜３０」の間であれば、イベント保持制御部２００は、今回のタッチイベントを間引く。
【００５０】
間引き対象ではない場合、（Ｓ１３０８：N）、イベント保持制御部２００は、イベントキュー２０２にステップＳ１３０２で生成したタッチイベントを保持させる（Ｓ１３０９）。イベントキュー２０２は、これにより新たなタッチイベントが追加される。間引き対象である場合（Ｓ１３０８：Y）、イベント保持制御部２００は、生成したタッチイベントを破棄し、図５で説明した座標情報の補正処理を行う（S１３１０）。
【００５１】
座標情報補正又はタッチイベントの保持が終了すると、ＣＰＵ１００は、イベント発生時の処理を終了するか否かを判定する（Ｓ１３１２）。例えば、ユーザの操作によって別の表示画面への遷移が指示された場合やオブジェクトの表示を終了する場合に、ＣＰＵ１００は、処理を終了する（Ｓ１３１２：Y）。終了しない場合（Ｓ１３１２：N）、ＣＰＵ１００は、ステップＳ１３０２からの処理を繰り返す。
【００５２】
このように本実施形態では、イベントキュー２０２内に残存するタッチイベントの［数に応じて間引き確率を動的に変更する。これにより、タッチイベントの溜まりやすさが刻々と変化しても、オブジェクトの追従性と移動のスムーズさを両立してポインティング操作に対する処理を行うことが可能となる。
【００５３】
なお、本発明は、本実施形態で示したオブジェクトの内容、ユーザの操作内容に限定されない。また、ステップＳ１３００やステップＳ１３０３の判定処理に用いた時間や間引き確率の閾値も任意に設定可能である。さらに、本実施形態では、間引き頻度の制御を行うために間引き確率表を利用したが、本発明は、間引き確率の情報を利用することや、間引き確率の具体的な数に限定されない。イベントキュー２０２内に残存するタッチイベントの数に対応して、間引き頻度が決定されるものであれば良い。
【００５４】
＜変形例＞
第１実施形態及び第２実施形態では、イベントキュー２０２内のイベントの数に応じて間引き頻度を動的に決定するために、間引きモデルとして複数の間引き間隔表、複数の間引き確率表を用いている。これらの表を用いる他に、数式により間引き頻度を算出して用いるようにしてもよい。
【００５５】
例えば、イベントキュー２０２に残存するイベントの数Ｎに対応する間引き確率Ｐを、定数Ａを０＜Ａ＜１として、「Ｐ＝１−Ａ＾Ｎ」等の数式で算出してもよい。この数式に従えば、イベントキュー２０２内のイベントの数が少ないときほど間引き確率は低く、多いときほど間引き確率は高くなる。また、間引きの際の限界頻度や、初期描画の限界時間を超えていた場合には、定数Ａの値を下げることで、より高頻度で間引きを行うようにすることができる。
【００５６】
［その他の実施形態］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又はコンピュータ読み取り可能な各種記録媒体を介してシステム或いは装置に供給する。そのシステム或いは装置のコンピュータ（またはＣＰＵ、ＭＰＵ等）は、プログラムを読み出して実行することで上述した実施形態の機能を実現する。
【符号の説明】
【００５７】
２００…イベント保持制御部、２０１…間引き頻度決定部、２０２…イベントキュー、２０３…座標情報補正部
【図１】
2015185122.tif 000003
【図２】
2015185122.tif 000004
【図３】
2015185122.tif 000005
【図４】
2015185122.tif 000006
【図５】
2015185122.tif 000007
【図６】
2015185122.tif 000008
【図７】
2015185122.tif 000009
【図８】
2015185122.tif 000010
【図９】
2015185122.tif 000011
【図１０】
2015185122.tif 000012
【図１１】
2015185122.tif 000013
【図１２】
2015185122.tif 000014
【図１３】
2015185122.tif 000015