(57)【要約】      （修正有）【課題】指示体の位置を予測する場合において、ユーザーに与える違和感を低減する。【解決手段】情報処理装置１は、周期的に検出される指示体の座標を取得する取得手段２０と、取得された座標のうち異なる３以上の時刻において検出された座標に基づいて、指示体の速度ベクトルおよび加速度ベクトルを算出する算出手段１２と、算出された速度ベクトルｖおよび加速度ベクトルａを用いて、時刻ｎにおいて検出された座標ｐ（ｎ）に対して、時刻（ｎ＋１）における座標ｐ（ｎ＋１）を式ｐ（ｎ＋１）＝ｐ（ｎ）＋αｖ＋βａにより予測する予測手段１３と、予測された座標ｐ（ｎ＋１）に対応する点を含む画像を生成する描画制御手段１４と、を有する。【選択図】図１
2015203915.tif 000002
【特許請求の範囲】
【請求項１】
周期的に検出される指示体の座標を取得する取得手段と、
前記取得手段により取得された座標のうち異なる３以上の時刻において検出された座標に基づいて、前記指示体の速度ベクトルおよび加速度ベクトルを算出する算出手段と、
前記算出手段により算出された速度ベクトルｖおよび加速度ベクトルａを用いて、時刻ｎにおいて検出された座標ｐ（ｎ）に対して、時刻（ｎ＋１）における座標ｐ（ｎ＋１）を次式（１）により予測する予測手段と、
ｐ（ｎ＋１）＝ｐ（ｎ）＋αｖ＋βａ    …（１）
（ただし、αおよびβは係数）
前記予測手段により予測された座標ｐ（ｎ＋１）に対応する点を含む画像を生成する描画制御手段と
を有する情報処理装置。
【請求項２】
前記画像は前記指示体の軌跡に応じた線であり、
前記予測手段は前記線の太さに応じて前記係数αおよびβの少なくとも一方の値を変化させる
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記予測手段は、前記線の太さがｂ１であるときよりも前記線の太さがｂ２（ただしｂ２＞ｂ１）であるときの方が、前記係数αおよびβの値を小さくする
ことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記算出手段は、前記取得手段により取得された座標のうち異なる４以上の時刻において検出された座標に基づいて、当該座標が検出された時刻に応じた重み付け係数を用いた重み付き平均を用いて、前記指示体の速度ベクトルおよび加速度ベクトルを算出する
ことを特徴とする請求項１ないし３のいずれか一項に記載の情報処理装置。
【請求項５】
前記取得手段により取得された座標のうち時刻ｎ１に検出された座標が最新のものである場合において、時刻ｎ１に対応する重み付け係数は、時刻ｎ２（ただしｎ１＞ｎ２）に対応する重み付け係数よりも大きい
ことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
画像を表示する表示手段と、
前記表示手段の表面において指示体が指示した座標を検出する検出手段と、
前記検出手段により検出された座標のうち異なる３以上の時刻において検出された座標に基づいて、前記指示体の速度ベクトルおよび加速度ベクトルを算出する算出手段と、
前記算出手段により算出された速度ベクトルｖおよび加速度ベクトルａを用いて、時刻ｎにおいて検出された座標ｐ（ｎ）に対して、時刻（ｎ＋１）における座標ｐ（ｎ＋１）を次式（１）により予測する予測手段と、
ｐ（ｎ＋１）＝ｐ（ｎ）＋αｖ＋βａ    …（１）
（ただし、αおよびβは係数）
前記予測手段により予測された座標ｐ（ｎ＋１）に対応する点を含む画像を、前記表示手段に表示させる描画制御手段と
を有する表示装置。
【請求項７】
記憶手段と、
前記検出手段によって異なる３以上の時刻において検出された座標に基づいて線分の画像データを生成する生成手段と、
前記生成手段により生成された画像データを前記記憶手段に記憶させる記憶制御手段と、
前記表示手段の表示が前回更新されてから前記検出手段によって異なる３以上の時刻において座標が検出されると、前記表示手段の表示を更新する更新命令を出力する出力手段と、
前記更新命令に応じて、前記記憶部に記憶されている画像データに応じた画像を前記表示手段に表示させるための信号を出力する出力手段と
を有し、
前記予測手段は、前記３以上の時刻において検出された座標のうち最新の時刻において検出された座標の次の座標を予測する
ことを特徴とする請求項６に記載の表示装置。
【請求項８】
周期的に検出される指示体の座標を取得するステップと、
前記取得された座標のうち異なる３以上の時刻において検出された座標に基づいて、前記指示体の速度ベクトルおよび加速度ベクトルを算出するステップと、
前記算出された速度ベクトルｖおよび加速度ベクトルａを用いて、時刻ｎにおいて検出された座標ｐ（ｎ）に対して、時刻（ｎ＋１）における座標ｐ（ｎ＋１）を次式（１）により予測するステップと、
ｐ（ｎ＋１）＝ｐ（ｎ）＋αｖ＋βａ    …（１）
（ただし、αおよびβは係数）
前記予測された座標ｐ（ｎ＋１）に対応する点を含む画像を生成するステップと
を有する表示制御方法。
【請求項９】
コンピューターに、
周期的に検出される指示体の座標を取得するステップと、
前記取得された座標のうち異なる３以上の時刻において検出された座標に基づいて、前記指示体の速度ベクトルおよび加速度ベクトルを算出するステップと、
前記算出された速度ベクトルｖおよび加速度ベクトルａを用いて、時刻ｎにおいて検出された座標ｐ（ｎ）に対して、時刻（ｎ＋１）における座標ｐ（ｎ＋１）を次式（１）により予測するステップと、
ｐ（ｎ＋１）＝ｐ（ｎ）＋αｖ＋βａ    …（１）
（ただし、αおよびβは係数）
前記予測された座標ｐ（ｎ＋１）に対応する点を含む画像を生成するステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、指示体により指示された位置に応じた画像を表示する技術に関し、特に、指示体の位置を予測する技術に関する。
【背景技術】
【０００２】
タブレット端末において、ペンまたは指などの指示体によりユーザーが画面上の位置を指示して、指示した軌跡に応じた線をタブレット端末が表示する技術が知られている。描画される線の追従性を向上させるため、指示体により指示される位置を予測する技術が知られている。特許文献１は、タッチパネルを有する表示装置において、タッチされた位置の移動量と加速度を用いて次の位置を予測する技術を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−９７５５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載の技術においては、予測が外れてユーザーに違和感を与える場合があった。
【０００５】
これに対し本発明は、指示体の位置を予測する場合において、ユーザーに与える違和感を低減する技術を提供する。
【課題を解決するための手段】
【０００６】
本発明は、周期的に検出される指示体の座標を取得する取得手段と、前記取得手段により取得された座標のうち異なる３以上の時刻において検出された座標に基づいて、前記指示体の速度ベクトルおよび加速度ベクトルを算出する算出手段と、前記算出手段により算出された速度ベクトルｖおよび加速度ベクトルａを用いて、時刻ｎにおいて検出された座標ｐ（ｎ）に対して、時刻（ｎ＋１）における座標ｐ（ｎ＋１）を次式（１）により予測する予測手段と、
ｐ（ｎ＋１）＝ｐ（ｎ）＋αｖ＋βａ    …（１）
（ただし、αおよびβは係数）
前記予測手段により予測された座標ｐ（ｎ＋１）に対応する点を含む画像を生成する描画制御手段とを有する情報処理装置を提供する。
この情報処理装置によれば、ユーザーに与える違和感を低減することができる。
【０００７】
前記画像は前記指示体の軌跡に応じた線であり、前記予測手段は前記線の太さに応じて前記係数αおよびβの値を変化させてもよい。
この情報処理装置によれば、係数αおよびβが線の太さによらず一定である場合と比較して、ユーザーに与える違和感を低減することができる。
【０００８】
前記予測手段は、前記線の太さがｂ１であるときよりも前記線の太さがｂ２（ただしｂ２＞ｂ１）であるときの方が、前記係数αおよびβの値を小さくしてもよい。
この情報処理装置によれば、係数αおよびβが線の太さによらず一定である場合と比較して、ユーザーに与える違和感を低減することができる。
【０００９】
前記算出手段は、前記取得手段により取得された座標のうち異なる４以上の時刻において検出された座標に基づいて、当該座標が検出された時刻に応じた重み付け係数を用いた重み付き平均を用いて、前記指示体の速度ベクトルおよび加速度ベクトルを算出してもよい。
この情報処理装置によれば、速度および加速度をより正確に予測することができる。
【００１０】
前記取得手段により取得された座標のうち時刻ｎ１に検出された座標が最新のものである場合において、時刻ｎ１に対応する重み付け係数は、時刻ｎ２（ただしｎ１＞ｎ２）に対応する重み付け係数よりも大きくてもよい。
この情報処理装置によれば、より直近の情報に重みをおいて、速度および加速度をより正確に予測することができる。
【００１１】
また、本発明は、表示手段と、前記表示手段の表面において指示体が指示した座標を検出する検出手段と、前記検出手段により検出された座標のうち異なる３以上の時刻において検出された座標に基づいて、前記指示体の速度ベクトルおよび加速度ベクトルを算出する算出手段と、前記算出手段により算出された速度ベクトルｖおよび加速度ベクトルａを用いて、時刻ｎにおいて検出された座標ｐ（ｎ）に対して、時刻（ｎ＋１）における座標ｐ（ｎ＋１）を次式（１）により予測する予測手段と、
ｐ（ｎ＋１）＝ｐ（ｎ）＋αｖ＋βａ    …（１）
（ただし、αおよびβは係数）
前記予測手段により予測された座標ｐ（ｎ＋１）に対応する点を含む画像を生成する描画制御手段とを有する表示装置を提供する。
この表示装置によれば、ユーザーに与える違和感を低減することができる。
【００１２】
この表示装置は、記憶手段と、前記検出手段によって異なる３以上の時刻において検出された座標に基づいて線分の画像データを生成する生成手段と、前記生成手段により生成された画像データを前記記憶手段に記憶させる記憶制御手段と、前記表示手段の表示が前回更新されてから前記検出手段によって異なる３以上の時刻において座標が検出されると、前記表示手段の表示を更新する更新命令を出力する出力手段と、前記更新命令に応じて、前記記憶部に記憶されている画像データに応じた画像を前記表示手段に表示させるための信号を出力する出力手段とを有し、前記予測手段は、前記３以上の時刻において検出された座標のうち最新の時刻において検出された座標の次の座標を予測してもよい。
この情報処理装置によれば、表示遅延を抑制しつつ、ユーザーに与える違和感を低減することができる。
【００１３】
さらに、本発明は、周期的に検出される指示体の座標を取得するステップと、前記取得された座標のうち異なる３以上の時刻において検出された座標に基づいて、前記指示体の速度ベクトルおよび加速度ベクトルを算出するステップと、前記算出された速度ベクトルｖおよび加速度ベクトルａを用いて、時刻ｎにおいて検出された座標ｐ（ｎ）に対して、時刻（ｎ＋１）における座標ｐ（ｎ＋１）を次式（１）により予測するステップと、
ｐ（ｎ＋１）＝ｐ（ｎ）＋αｖ＋βａ    …（１）
（ただし、αおよびβは係数）
前記予測された座標ｐ（ｎ＋１）に対応する点を含む画像を生成するステップとを有する表示制御方法を提供する。
この表示制御方法によれば、ユーザーに与える違和感を低減することができる。
【００１４】
さらに、本発明は、コンピューターに、周期的に検出される指示体の座標を取得するステップと、前記取得された座標のうち異なる３以上の時刻において検出された座標に基づいて、前記指示体の速度ベクトルおよび加速度ベクトルを算出するステップと、前記算出された速度ベクトルｖおよび加速度ベクトルａを用いて、時刻ｎにおいて検出された座標ｐ（ｎ）に対して、時刻（ｎ＋１）における座標ｐ（ｎ＋１）を次式（１）により予測するステップと、
ｐ（ｎ＋１）＝ｐ（ｎ）＋αｖ＋βａ    …（１）
（ただし、αおよびβは係数）
前記予測された座標ｐ（ｎ＋１）に対応する点を含む画像を生成するステップを実行させるためのプログラムを提供する。
このプログラムによれば、ユーザーに与える違和感を低減することができる。
【図面の簡単な説明】
【００１５】
【図１】一実施形態に係る情報処理装置１の機能構成を示す図。
【図２】情報処理装置１のハードウェア構成を示す図。
【図３】情報処理装置１のソフトウェア構成を示す図。
【図４】手書き線の描画処理を示すフローチャート。
【図５】座標の予測処理の詳細を示すフローチャート。
【図６】予測された座標を例示する図。
【図７Ａ】情報処理装置１により表示される画像の遷移を例示する図。
【図７Ｂ】情報処理装置１により表示される画像の遷移を例示する図。
【発明を実施するための形態】
【００１６】
１．構成
図１は、一実施形態に係る情報処理装置１の機能構成を示す図である。情報処理装置１は、指示体により指示された位置の軌跡を示す線の画像を表示する表示部を有する表示装置であり、いわゆるタブレット端末である。指示体の位置は周期的に（定期的に）検出され、検出された位置の情報を用いて線が描画される。検出した位置の情報を用いて線を描画するため、指示体の現実の位置と描画される線にはタイムラグが生じてしまう。このタイムラグを補償するため、情報処理装置１は、指示体の位置を予測する。なお、指示体としては、例えばスタイラス（ペン）または表示装置の使用者の指が用いられる。
【００１７】
情報処理装置１は、表示手段１０と、検出手段１１と、算出手段１２と、予測手段１３と、描画制御手段１４と、記憶手段１５と、生成手段１６と、記憶制御手段１７と、出力手段１８と、出力手段１９と、取得手段２０とを有する。表示手段１０は、画像を表示する。検出手段１１は、表示手段１０の表面において指示体により指示された座標を検出する。取得手段２０は、検出手段１１により検出された座標を取得する。算出手段１２は、指示体の移動の速度ベクトルｖおよび加速度ベクトルａを算出する。少なくとも加速度ベクトルａは、検出手段１１により検出された座標のうち異なる３以上の時刻において検出された座標に基づいて算出される。予測手段１３は、時刻ｎにおいて検出された座標ｐ（ｎ）に対して、算出手段１２により算出された速度ベクトルｖおよび加速度ベクトルａを用いて、時刻（ｎ＋１）における座標ｐ（ｎ＋１）を次式（１）により予測する。
ｐ（ｎ＋１）＝ｐ（ｎ）＋αｖ＋βａ    …（１）
なお、αおよびβは、それぞれ速度および加速度の重みを示す係数である。描画制御手段１４は、予測手段１３により予測された座標ｐ（ｎ＋１）に対応する点を含む画像を、表示手段１０に表示させる。
【００１８】
記憶手段１５は、描画される画像のデータを記憶する。生成手段１６は、検出手段１１によって異なる３以上の時刻において検出された座標に基づいて線分の画像データを生成する。記憶制御手段１７は、生成手段１６より生成された画像データを記憶手段１５に記憶させる。出力手段１８は、表示手段１０の表示が前回更新されてから検出手段１１によって異なる３以上の時刻において座標が検出されると、表示手段１０の表示を更新する更新命令を出力する。出力手段１９は、更新命令に応じて、記憶手段１５に記憶されている画像データに応じた画像を表示手段１０に表示させるための信号を出力する。また、予測手段１３は、３以上の時刻において検出された座標のうち最新の時刻において検出された座標の次の座標を予測する。
【００１９】
図２は、情報処理装置１のハードウェア構成を示す図である。情報処理装置１は、表示部１０１と、ＣＰＵ１０２と、ＲＡＭ１０３と、記憶装置１０４と、フレームバッファー１０５と、駆動部１０６と、ディスプレイコントローラー１０７と、デジタイザー１０８とを有する。
【００２０】
表示部１０１は、画像を表示するための電気光学パネルを含む。この例で、電気光学パネルはドットマトリクス式のパネルであり、行方向および列方向にマトリクス状に配置された複数の画素を有する。各画素は、電気光学素子を有する。電気光学素子としては、電力を供給しなくても表示を維持できる記憶性表示素子が用いられる。例えば、表示部１０１はマイクロカプセル方式のＥＰＤ（Electrophoretic Display）である。
【００２１】
ＣＰＵ１０２は、情報処理装置１の他のハードウェア構成を制御する装置である。ＲＡＭ１０３は、ＣＰＵ１０２がプログラムを実行する際のワークエリアとして機能する記憶装置である。記憶装置１０４は、データおよびプログラムを記憶する不揮発性の記憶装置である。フレームバッファー１０５は、表示部１０１に表示する画像のデータを記憶する記憶装置である。
【００２２】
駆動部１０６は、表示部１０１を駆動する装置であり、走査線駆動回路およびデータ線駆動回路を含む（いずれも図示略）。走査線駆動回路は、複数の画素のうちデータの書き込みを行う画素群を選択する。データ線駆動回路は、選択されている画素群に対し、データを書き込む。ディスプレイコントローラー１０７は、フレームバッファー１０５から読み出したデータを画素に書き込むように、駆動部１０６を制御する。
【００２３】
デジタイザー１０８は、指示体により指示された位置を検出する。この例で、情報処理装置１はいわゆるタッチスクリーンを有する装置であり、デジタイザー１０８は、表示部１０１の表面に設けられた面状のセンサーを有する。このセンサーとしては、例えば電磁誘導方式のもの、または静電容量方式のものが用いられる。
【００２４】
情報処理装置１は、この外、センサー（傾きセンサー、加速度センサー、温度センサー、明度センサー等）、入力装置（例えばボタン、キーパッド等）、および通信装置（例えば無線通信装置）を有する（いずれも図示略）。
【００２５】
図３は、情報処理装置１のソフトウェア構成を示す図である。図３においては、関連するハードウェア構成も併せて図示している。情報処理装置１は、ＯＳ（Operating System）２００と、グラフィックシステム２１０と、アプリケーション２２０とを有する。
【００２６】
ＯＳ２００は、ファイルの処理やハードウェアの制御など基本的な処理を行うためのプログラムである。ＯＳ２００は、デジタイザードライバー２０１およびディスプレイドライバー２０２を有する。デジタイザードライバー２０１はデジタイザー１０８を駆動するためのプログラムである。ディスプレイドライバー２０２は、フレームバッファー１０５へのデータの読み書きを制御するためのプログラムである。グラフィックシステム２１０は、画像の描画を制御するためのプログラムである。アプリケーション２２０は、ユーザーが指示体を用いて表示部１０１の表面をなぞった軌跡に相当する画像を描画する処理を実行させるためのプログラムである。
【００２７】
表示部１０１および駆動部１０６は、表示手段１０の一例である。デジタイザー１０８は、検出手段１１の一例である。アプリケーション２２０を実行しているＣＰＵ１０２は、算出手段１２、予測手段１３、生成手段１６、記憶制御手段１７、および出力手段１８の一例である。ディスプレイコントローラー１０７は、描画制御手段１４および出力手段１９の一例である。フレームバッファー１０５は、記憶手段１５の一例である。
【００２８】
２．動作
２−１．表示部１０１の表示の更新
まず、表示部１０１における表示の更新について説明する。なお以下においては、デジタイザードライバー２０１等のプログラムを処理の主体として記載する場合があるが、これは、そのプログラムを実行しているＣＰＵ１０２が他のハードウェアと協働して処理を行っていることを意味する。
【００２９】
アプリケーション２２０またはディスプレイドライバー２０２により、フレームバッファー１０５には、表示部１０１に次に表示させる画像（以下「次画像」という）のデータが書き込まれる。また、フレームバッファー１０５には、表示部１０１に現在、表示されている画像（以下「現画像」という）のデータも記憶されている。この例で、ディスプレイコントローラー１０７および駆動部１０６それ自体は、必ずしも周期的または定常的に表示部１０１の表示を更新しているわけではなく、アプリケーション２２０等から更新命令を受けたときに、表示部１０１の表示を更新する処理を行う。
【００３０】
この例で、アプリケーション２２０は手書き線を描画するアプリケーションであるので、更新命令を周期的にディスプレイコントローラー１０７に出力する。以下、アプリケーション２２０が更新命令を出力する周期を「命令周期」といい、命令周期の逆数を「命令周波数」という。
【００３１】
更新命令を受けると、ディスプレイコントローラー１０７は、フレームバッファー１０５から現画像および次画像のデータを読み出し、これらのデータに応じた電圧を印加するように、駆動部１０６を制御する。表示部１０１の画像の更新をするための電圧の印加は、所定の時間（例えば６０Ｈｚに相当する１６．７ｍｓｅｃ）を単位として行われる。以下この単位期間を「フレーム」といい、フレームの逆数を表示部１０１の「更新周波数」という。更新周波数は、ＥＰＤの特性、並びに駆動部１０６およびディスプレイコントローラー１０７の設計によって決まっている。ＥＰＤの特性により、現画像から次画像への更新には複数フレームを要する。
【００３２】
２−２．座標データの受け渡し
次に、デジタイザー１０８から他のソフトウェア構成への座標データの受け渡しについて説明する。デジタイザー１０８は、座標データを出力する。座標データは、指示体の接触の有無を示すデータ（以下「第１データ」という）および検出した位置の座標を示すデータ（以下「第２データ」という）を含む。この例では、デジタイザー１０８は、表示部１０１において指示体が接触している位置を周期的に検出する。デジタイザー１０８が指示体の位置を検出する周期をサンプリング周期といい、サンプリング周期の逆数をサンプリング周波数という。サンプリング周期は、例えば、１００Ｈｚに相当する１０ｍｓｅｃである。すなわち、デジタイザー１０８は、１０ｍｓｅｃ毎に位置を検出し、座標データを出力する。なお、表示部１０１に指示体が接触していない場合、第２データの値はヌル値を示す。
【００３３】
以下の説明において、時刻ｎにおいて検出された座標を座標ｐ（ｎ）と表し、座標ｐ（ｎ）を含む座標データを、座標データＤ（ｎ）と表す。既に説明したとおり座標の検出は周期的に行われているので、時刻ｎは離散的な値をとる。そこで、座標ｐ（ｎ）の一つ前に検出された座標を座標ｐ（ｎ−１）、一つ後に検出された座標を座標ｐ（ｎ＋１）と表す。
【００３４】
デジタイザードライバー２０１は、デジタイザー１０８から座標データＤ（ｎ）を取得する。デジタイザードライバー２０１は、取得した座標データＤ（ｎ）を、グラフィックシステム２１０に出力する。
【００３５】
デジタイザードライバー２０１から座標データＤ（ｎ）を取得すると、グラフィックシステム２１０は、座標データに応じてペンイベントを生成する。より詳細には、グラフィックシステム２１０は、座標データＤ（ｎ）に含まれる第１データと座標データＤ（ｎ−１）に含まれる第１データを確認し、これら２つの第１データの少なくとも一方が接触有りを示している場合、ペンイベントを生成する。これら２つの第１データがいずれも接触無しを示している場合、グラフィックシステム２１０は、ペンイベントを生成しない。
【００３６】
生成されるペンイベントには、ペンタッチイベント、ペンリリースイベント、およびペン移動イベントがある。ペンタッチイベントは、指示体が新たに表示部１０１に接触したことを示すデータである。ペンリリースイベントは、それまで接触していたペンが表示部１０１から離されたことを示すデータである。ペン移動イベントは、接触しているペンの位置が移動したことを示すデータである。
【００３７】
これら３つのペンイベントのうちどのペンイベントを生成するかは、以下のとおり判断される。座標データＤ（ｎ−１）に含まれる第１データが接触無し、およびＤ（ｎ）に含まれる第１データが接触有りを示している場合、グラフィックシステム２１０は、ペンタッチイベントを生成する。座標データＤ（ｎ−１）およびＤ（ｎ）に含まれる第１データがいずれも接触有りを示している場合、グラフィックシステム２１０は、ペン移動イベントを生成する。座標データＤ（ｎ−１）に含まれる第１データがそれぞれ接触有りおよびＤ（ｎ）に含まれる第１データが接触無しを示している場合、グラフィックシステム２１０は、ペンリリースイベントを生成する。
【００３８】
生成されるペンイベントは、そのペンイベントがペンタッチイベント、ペンリリースイベント、およびペン移動イベントのうちどのイベントであるかを示す識別子と、そのペンイベントに対応する座標ｐを含む。座標データＤ（ｎ−１）およびＤ（ｎ）からペンタッチイベントおよびペン移動イベントが生成される場合、イベントには座標ｐ（ｎ）が含まれ、ペンリリースイベントが生成される場合、イベントには座標ｐ（ｎ−１）が含まれる。なお以下において、座標データＤ（ｎ−１）およびＤ（ｎ）から生成されたペンイベントを、ペンイベントＥ（ｎ）と表す。
【００３９】
グラフィックシステム２１０は、生成したペンイベントＥ（ｎ）をアプリケーション２２０に出力する。アプリケーション２２０は、取得したペンイベントを用いて手書き線の描画処理を行う。
【００４０】
２−３．手書き線の描画
図４は、手書き線の描画処理を示すフローチャートである。図４のフローは、例えば、アプリケーション２２０が起動されたことを契機として開始される。
【００４１】
ステップＳ１００において、アプリケーション２２０は、カウンターｔを初期化する。ここでは、ｔ＝０に初期化する。カウンターｔは、ペンイベントを取得した回数を示す。
【００４２】
ステップＳ１０１において、アプリケーション２２０は、新たなペンイベントを取得したか判断する。新たなペンイベントを取得したと判断された場合（Ｓ１０１：ＹＥＳ）、アプリケーション２２０は、処理をステップＳ１０２に移行する。なお以下では、ペンイベントＥ（ｎ）が最新のペンイベントである。新たなペンイベントを取得していないと判断された場合（Ｓ１０１：ＮＯ）、アプリケーション２２０は、新たなペンイベントを取得するまで待機する。
【００４３】
ステップＳ１０２において、アプリケーション２２０は、ペンイベントＥ（ｎ）が、ペンタッチイベント、ペンリリースイベント、およびペン移動イベントのうちどのイベントであるか判断する。ペンイベントＥ（ｎ）がペンタッチイベントである場合（Ｓ１０２：Ｔ）、アプリケーション２２０は、処理をステップＳ１０３に移行する。ペンイベントＥ（ｎ）がペン移動イベントである場合（Ｓ１０２：Ｍ）、アプリケーション２２０は、処理をステップＳ１０４に移行する。ペンイベントＥ（ｎ）がペンリリースイベントである場合（Ｓ１０２：Ｒ）、アプリケーション２２０は、処理をステップＳ１０９に移行する。
【００４４】
ステップＳ１０３において、アプリケーション２２０は、座標ｐ（ｎ）に点を描画する。具体的には、アプリケーション２２０は、座標ｐ（ｎ）に点を描画するためのデータをフレームバッファー１０５に書き込む。このとき、アプリケーション２２０は、グラフィックシステム２１０を介さず、直接、フレームバッファー１０５にデータを書き込む。なお、以下の処理においてフレームバッファー１０５にデータを書き込む際、アプリケーション２２０は、グラフィックシステム２１０を介さず、直接、フレームバッファー１０５にデータを書き込む。データを書き込むと、アプリケーション２２０は、処理をステップＳ１０５に移行する。
【００４５】
ステップＳ１０４において、アプリケーション２２０は、座標ｐ（ｎ）と座標ｐ（ｎ−１）とを結ぶ線分を描画する。具体的には、アプリケーション２２０は、この線分を描画するためのデータをフレームバッファー１０５に書き込む。データを書き込むと、アプリケーション２２０は、処理をステップＳ１０５に移行する。
【００４６】
なおステップＳ１０４において、カウンターｔがｔ＝１である場合、すなわち、カウンターｔが初期化されてから最初の点の座標の検出であった場合、アプリケーション２２０は、まず、フレームバッファー１０５に記憶されている、座標ｐ（ｎ）と座標ｐ（ｎ−１）とを結ぶ線分のデータを消去する。ステップＳ１０４においてｔ＝１である場合とは、前回、表示部１０１における表示の更新をしてから引き続きペン移動イベントが検出されている場合であり、この時点でフレームバッファー１０５に記憶されている、座標ｐ（ｎ）と座標ｐ（ｎ−１）とを結ぶ線分は、予測された座標ｐ（ｎ）を用いて描画された線分である。いま座標ｐ（ｎ）は実測されたので、予測に基づく線分は消去される。予測に基づく線分のデータを消去した後で、アプリケーション２２０は、実測された座標ｐ（ｎ）と座標ｐ（ｎ−１）とを結ぶ線分のデータを、フレームバッファー１０５に書き込む。
【００４７】
ステップＳ１０５において、アプリケーション２２０は、カウンターｔをインクリメントする。
【００４８】
ステップＳ１０６において、アプリケーション２２０は、カウンターｔの値が、しきい値ｔｈに達したか判断する。しきい値ｔｈは、例えば、表示部１０１の更新周波数およびアプリケーション２２０の命令周波数に応じて決められる。より詳細には、しきい値ｔｈは、更新周波数と命令周波数との差が最少になるように決められる。この例では、更新周波数はハードウェア構成によって決まる固定値である。一方で命令周波数は、アプリケーション２２０によって決められる値である。より詳細には、命令周波数ωｃは、しきい値ｔｈとデジタイザー１０８のサンプリング周期Ｔｓとによって決まっており、
ωｃ＝１／（Ｔｓ・ｔｈ）    …（２）
である。例えば、デジタイザー１０８のサンプリング周波数ωｓが１３３Ｈｚである場合、すなわちＴｓ＝７．５ｍｓｅｃである場合、命令周波数は以下のとおりである。
ωｃ＝１３３Ｈｚ  （ｔｈ＝１の場合）
ωｃ＝６６．５Ｈｚ  （ｔｈ＝２の場合）
ωｃ＝４４．３Ｈｚ  （ｔｈ＝３の場合）
ωｃ＝３３．３Ｈｚ  （ｔｈ＝４の場合）
したがって、更新周波数と命令周波数との差を最少にするには、表示部１０１の更新周波数が６０Ｈｚの場合はｔｈ＝２とし、の更新周波数が５０Ｈｚの場合はｔｈ＝３とする。
【００４９】
このように、更新周波数と命令周波数との差が最少になるようにしきい値ｔｈを決めることにより、指示体による位置の指示が行われてから、表示部１０１に実際に線が表示されるまでの遅延を低減することができる。その理由は以下のとおりである。指示体の動作に係るイベントが発生する毎に更新命令を発行すると、先に発行された更新命令によって駆動部１０６が表示部１０１の制御を行っているときに、新たな更新命令が発行されてしまう。ディスプレイコントローラー１０７は、表示部１０１の制御を行っている駆動部１０６が新たな更新命令を受け取れない場合、更新命令の転送を待つ。指示体の座標の検出の周期が短いと、更新命令の発行が頻繁となり、更新命令の転送待ちが多くなるため、手書きの線の描画が遅くなる。これに対し、本実施形態では、更新周波数と命令周波数との差が最小になるように制御される。このため、ディスプレイコントローラー１０７が更新命令の転送を待つことが少なくなり、指示体の動作に係るイベントが発生する毎に更新命令を発行する場合と比較すると、手書きの線の描画が速くなる。
【００５０】
カウンターｔの値がしきい値に達したと判断された場合（Ｓ１０６：ＹＥＳ）、アプリケーション２２０は、処理をステップＳ１０７に移行する。カウンターｔの値がしきい値に達していないと判断された場合（Ｓ１０６：ＮＯ）、アプリケーション２２０は、処理をステップＳ１０１に移行する。カウンターｔの値がしきい値に達したと判断された場合（Ｓ１０６：ＹＥＳ）、アプリケーション２２０は、処理をステップＳ１０７に移行する。
【００５１】
ステップＳ１０７において、アプリケーション２２０は、座標ｐ（ｎ＋１）を予測する。なおこの時点で最新の座標はｐ（ｎ）であり、座標ｐ（ｎ＋１）はまだ取得されていない。
【００５２】
図５は、ステップＳ１０７における座標の予測処理の詳細を示すフローチャートである。ステップＳ２０１において、アプリケーション２２０は、速度ベクトルｖ（ｎ）を算出する。速度ベクトルｖ（ｎ）は、次式（３）により算出される。
ｖ（ｎ）＝ｐ（ｎ）−ｐ（ｎ−１）    …（３）
なお一般的には、ｖ（ｎ）＝ｄｐ（ｎ）／ｄｔであるが、ここでは、ｐ（ｎ）を一定の周期でサンプリングしているので「／ｄｔ」の項を省略し、便宜的に式（３）で速度ベクトルを計算している。
【００５３】
ステップＳ２０２において、アプリケーション２２０は、加速度ベクトルａ（ｎ）を算出する。加速度ベクトルａ（ｎ）は、次式（４）により算出される。
ａ（ｎ）＝ｖ（ｎ）−ｖ（ｎ−１）    …（４）
なお、
ｖ（ｎ−１）＝ｐ（ｎ−１）−ｐ（ｎ−２）
である。
【００５４】
ステップＳ２０３において、アプリケーション２２０は、座標ｐ（ｎ＋１）を予測する。予測には、既に説明した式（１）が用いられる。
ｐ（ｎ＋１）＝ｐ（ｎ）＋αｖ（ｎ）＋βａ（ｎ）    …（１）
ここで、αおよびβは、それぞれ速度および加速度の重みを示す係数である。係数αおよびβは、
α＜１、β＜１    …（５）
であることが好ましく、
α＞β    …（６）
であることがより好ましい。
【００５５】
なお、アプリケーション２２０は、ステップＳ２０１〜Ｓ２０３の計算を行うため、最新のものから少なくともｔｈ回分の座標ｐおよび（ｔｈ−１）回分の速度ベクトルｖを記憶している。
【００５６】
図６は、予測された座標を例示する図である。この例では、座標ｐ（ｎ−２）、ｐ（ｎ−１）、およびｐ（ｎ）が実測された座標であり、座標ｐ（ｎ＋１）が予測された座標である。ｐ（ｎ＋１）の予測には、ｖ（ｎ）およびａ（ｎ）が用いられる。
【００５７】
再び図４を参照する。ステップＳ１０８において、アプリケーション２２０は、座標ｐ（ｎ＋１）と座標ｐ（ｎ）とを結ぶ線分を描画する。具体的には、アプリケーション２２０は、この線分を描画するためのデータをフレームバッファー１０５に書き込む。データを書き込むと、アプリケーション２２０は、処理をステップＳ１０９に移行する。
【００５８】
ステップＳ１０９において、アプリケーション２２０は、表示を更新する領域を特定する。表示を更新する領域は、前回、表示を更新した際に、最後にサンプリングされた位置ｐ（ｎ）を用いて描画された線分を含む領域である。
【００５９】
ステップＳ１０１において取得されたペンイベントＥ（ｎ）がペン移動イベントである場合、ステップＳ１０９において表示を更新する領域は、少なくとも座標ｐ（ｎ−ｔｈ）〜ｐ（ｎ＋１）の（ｔｈ＋２）個の座標を含む領域である。例えば、ｔｈ＝３である場合、表示を更新する領域は、座標ｐ（ｎ−３）〜ｐ（ｎ＋１）の５個の座標を含む領域である。なお、時刻（ｎ−３）〜（ｎ−１）の間にペンタッチイベントが発生している場合、表示を更新する領域は、ペンタッチイベント以降の座標を含む領域である。
【００６０】
ステップＳ１０１において取得されたペンイベントＥ（ｎ）がペンリリースイベントである場合、ステップＳ１０９において表示を更新する領域は、座標ｐ（ｎ−ｔ）〜ｐ（ｎ−１）のｔ個の座標を含む領域である。例えば、ｔ＝２の場合、表示を更新する領域は、座標ｐ（ｎ−２）〜ｐ（ｎ−１）の２個の座標を含む領域である。
【００６１】
ステップＳ１１０において、アプリケーション２２０は、ディスプレイコントローラー１０７に更新命令を出力する。更新命令を出力すると、アプリケーション２２０は処理をステップＳ１００に移行する。
【００６２】
図７ＡおよびＢは、情報処理装置１により表示される画像の遷移を例示する図である。これらの図中、時刻は、デジタイザー１０８のサンプリング周期を単位として記載されている。また、各時刻におけるカウンターｔの値を併せて記載している。図７ＡおよびＢの画像のうち、左の列の画像はデジタイザー１０８により検出された位置を、中央の列の画像はフレームバッファー１０５に記憶されている画像を、右の列の画像は表示部１０１に表示されている画像を、それぞれ示している。なおこの例では、しきい値ｔｈ＝３である。
【００６３】
時刻ｎ＝１〜３において、それぞれ検出された位置に応じて、フレームバッファー１０５に、時系列で連続する２つの座標を結ぶ線分のデータが書き込まれる（図７Ａ）。時刻ｎ＝３においては、さらに、座標ｐ’（４）が予測される。ここで、実測された座標と予測された座標を区別するために、予測された座標をｐ’と表す。なおここでは説明のため、予測された座標を白抜きのドットで示している。フレームバッファー１０５には、ｐ（１）〜ｐ（３）およびｐ’（４）の４つの点を結ぶ線分群のデータが書き込まれている。ｐ（１）〜ｐ（３）およびｐ’（４）の４つの点を含む矩形領域が、表示を更新する領域として特定される（図中破線部分）。そして、表示部１０１において、この領域の表示が更新される。
【００６４】
時刻ｎ＝４において、ｐ（４）が検出される。まず、フレームバッファー１０５に記憶されているｐ’（４）とＰ（３）を結ぶ線分のデータが消去され、次に、ｐ（４）とＰ（３）を結ぶ線分のデータがフレームバッファー１０５に書き込まれる（図７Ｂ）。時刻ｎ＝５および６において、それぞれ検出された位置に応じて、フレームバッファー１０５に、時系列で連続する２つの座標を結ぶ線分のデータが書き込まれる。時刻ｎ＝６においては、さらに、座標ｐ’（７）が予測される。フレームバッファー１０５には、ｐ（１）〜ｐ（６）およびｐ’（７）の７つの点を結ぶ線分群のデータが書き込まれている。ｐ（３）〜ｐ（６）およびｐ’（７）の５つの点を含む領域が、表示を更新する領域として特定される（図中破線部分）。そして、表示部１０１において、この領域の表示が更新される。すなわち、前回、予測された位置を用いて描画した線分を削除し、今回、実測された位置および予測された位置を用いて描画された線分を追加するため、これらの線分を含む領域の表示が更新される。
【００６５】
以上で説明したように本実施形態によれば、指示体の位置を予測する場合において、ユーザーに与える違和感を低減することができる。
【００６６】
３．変形例
本発明は上述の実施形態に限定されるものではなく、種々の変形実施が可能である。以下、変形例をいくつか説明する。以下の変形例のうち２つ以上のものが組み合わせて用いられてもよい。
【００６７】
３−１．変形例１
座標の予測は、ペン移動イベント毎に行われてもよい。すなわち、アプリケーション２２０は、座標ｐ（ｎ）に対し、毎回、座標ｐ（ｎ＋１）を予測してもよい。この場合、カウンターｔを用いた、命令周波数ωｃの最適化は行われなくてもよい。
【００６８】
３−２．変形例２
速度ベクトルおよび加速度ベクトルを計算する方法は、実施形態で説明した式（３）および（４）を用いるものに限定されない。例えば速度ベクトルｖは、３つ以上の座標ｐを用いて、次式（７）により算出されてもよい。
【数１】
2015203915.tif 000003
ここで、ｃiは重み付け係数である。ｃiはｉによらず等しくてもよいが、より時間的に直近の情報を重視する観点から、ｃi＞ｃi-1であることが好ましい。加速度ベクトルａについても同様に、３つ以上の速度ベクトルｖ（すなわち４つ以上の座標ｐ）を用いて算出されてもよい。
【００６９】
３−３．変形例３
式（１）における係数αおよびβの値の少なくとも一方は、固定値ではなく動的に変化してもよい。例えば、係数αおよびβの値は、描画される線の太さに応じて変化してもよい。より具体的には、より線が太い場合に係数αおよびβをより小さくしてもよい。予測のずれ量が同じであっても、線が太い方が書き換わる領域が広く、書き直しが目立ってしまう場合がある。そのため、線が太いほど係数αおよびβを小さくして予測が外れた場合に書き直される領域が狭くなるようにしている。
【００７０】
３−４．変形例４
情報処理装置１のハードウェア構成は実施形態で説明したものに限定されない。例えば、情報処理装置１は、表示装置とは別体のスタイラス型装置（ペン型装置）であってもよい。すなわち実施形態では、タブレット端末とスタイラスを有するシステムにおいて、スタイラスが触れた位置をタブレット端末が検出する例を説明した。しかし、このシステムにおいて、スタイラスが、自身が触れた位置を検出する機能を有していてもよい。この場合、スタイラス型の情報処理装置１は、検出手段１１として例えば光学センサーを有し、表示部の表面に形成された模様を読み取ることにより、自身の位置を検出する。このような構成において、スタイラス型の情報処理装置１は、次の座標を予測し、予測された座標に対応する点を含む画像を、表示装置に表示させる。
【００７１】
また、情報処理装置１は、上で説明したタブレット端末、スタイラス型装置以外にも、電子ブックリーダー、電子手帳、電卓、ＰＯＳ端末、デジタルスチルカメラ、携帯電話機などであってもよい。
【００７２】
３−５．変形例５
座標ｐ（ｎ）およびｐ（ｎ−１）に対応する画像は、これら２点を結ぶ線分に限定されない。例えば、これら２点を含む複数の点に対しスプライン補完等を用いて曲線を生成し、この曲線を描画してもよい。
【００７３】
３−６．他の変形例
表示装置は、マイクロカプセル方式のＥＰＤに限定されない。隔壁型（マイクロカップ）の電気泳動方式や、電子粉粒体、コレステリック液晶、エレクトロクロミックなど、他の記憶性表示素子が用いられてもよい。あるいは、液晶ディスプレイや有機ＥＬ（Electro Luminescence）ディスプレイなど、非記憶性表示素子が用いられてもよい。
【００７４】
情報処理装置１のソフトウェア構成は図３で説明したものに限定されない。要求される機能を実現できるものであれば、情報処理装置１はどのようなソフトウェア構成を有していてもよい。
【００７５】
上述の実施形態においてＣＰＵ１０２等によって実行されるプログラムは、磁気記録媒体（磁気テープ、磁気ディスク（ＨＤＤ、ＦＤ（Flexible Disk））など）、光記録媒体（光ディスク（ＣＤ（Compact Disk）、ＤＶＤ（Digital Versatile Disk））など）、光磁気記録媒体、半導体メモリ（フラッシュＲＯＭなど）などのコンピューター読取り可能な記録媒体に記憶した状態で提供されてもよい。また、このプログラムは、インターネットのようなネットワーク経由でダウンロードされてもよい。
【符号の説明】
【００７６】
１…情報処理装置、１０…表示手段、１１…検出手段、１２…算出手段、１３…予測手段、１４…描画制御手段、１５…記憶手段、１６…生成手段、１７…記憶制御手段、１８…出力手段、１９…出力手段、１０１…表示部、１０２…ＣＰＵ、１０３…ＲＡＭ、１０４…記憶装置、１０５…フレームバッファー、１０６…駆動部、１０７…ディスプレイコントローラー、１０８…デジタイザー、２００…ＯＳ、２０１…デジタイザードライバー、２０２…ディスプレイドライバー、２１０…グラフィックシステム、２２０…アプリケーション
【図１】
2015203915.tif 000004
【図２】
2015203915.tif 000005
【図３】
2015203915.tif 000006
【図４】
2015203915.tif 000007
【図５】
2015203915.tif 000008
【図６】
2015203915.tif 000009
【図７Ａ】
2015203915.tif 000010
【図７Ｂ】
2015203915.tif 000011