説明

情報処理装置、操作予測方法及び操作予測プログラム

【課題】従来と比して一段と操作入力に対する応答性を向上させる。
【解決手段】操作部の操作面に対する指示物の接触及び近接を検知し、当該検知結果をもとに、操作面に対する指示物の動きを検出して、当該指示物の動きから予測される操作入力に対応する処理を開始しておくようにしたことで、ユーザが実際に操作入力を行ってから対応する処理が完了するまでの時間を短縮することができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、操作予測方法及び操作予測プログラムに関し、例えば、タッチパネルを有する情報処理装置に適用して好適なものである。
【背景技術】
【0002】
昨今、タッチパネルを有する情報処理装置が広く普及している。タッチパネルを有する情報処理装置では、タッチパネルに対する指示物(指、タッチペンなど)の接触を検知し、これを操作入力として受け付け各種処理を実行するようになっている。
【0003】
また近年、タッチパネルに対する指示物の接触にくわえて、タッチパネルから指示物までの距離も検知し得る情報処理装置が提案されている(例えば特許文献1参照)。
【0004】
この情報処理装置では、タッチパネルと液晶パネルからなるタッチスクリーンに、複数の指示項目を表示させ、指がタッチスクリーンに或る距離まで近づくと、このとき指に最も近接する位置の指示項目を拡大表示させる。そして、この情報処理装置では、拡大表示させた指示項目に指が接触すると(すなわちこの指示項目が指でタッチされると)、指示項目に対応する処理を行う。
【0005】
こうすることで、この情報処理装置では、タッチスクリーンの画面が小さくても、指示項目を容易に確認させることができると共に容易にタッチさせることができ、小型化と操作性の向上を両立させている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2009−116583公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
ところで近年、情報処理装置が扱うデータ量の増加などにともない、情報処理装置の処理負荷が増加する傾向にある。ゆえに、従来の情報処理装置では、例えば、タッチパネルに対する操作入力が行われてから、この操作入力に対応する処理の結果が出るまでに時間がかかってしまうことがあった。
【0008】
例えば、タッチパネルに対して次の画像を表示する操作が行われてから、次の画像が表示されるまでに数秒かかるようなことがあった。
【0009】
このように、従来の情報処理装置では、操作入力に対する応答性が必ずしも良好であるとは言えなかった。
【0010】
本発明は以上の点を考慮してなされたもので、従来と比して一段と操作入力に対する応答性を向上させた情報処理装置、操作予測方法及び操作予測プログラムを提案しようとするものである。
【課題を解決するための手段】
【0011】
かかる課題を解決するため本発明においては、操作面に対する指示物の接触を検知する接触検知部と、操作面に対する指示物の近接を検知する近接検知部と、接触検知部による検知結果、及び近接検知部による検知結果をもとに、操作面に対する指示物の動きを検出し、検出した指示物の動きから予測される操作入力に対応する処理を開始する制御部とを設けるようにした。
【0012】
このように、操作面に対する指示物の動きから操作入力を予測して、当該操作入力に対応する処理を開始しておくようにしたことで、ユーザが実際に操作入力を行ってから対応する処理が完了するまでの時間を短縮することができる。
【発明の効果】
【0013】
本発明によれば、操作面に対する指示物の動きから操作入力を予測して、当該操作入力に対応する処理を開始しておくようにしたことで、ユーザが実際に操作入力を行ってから対応する処理が完了するまでの時間を短縮することができる。かくして、従来と比して一段と操作入力に対する応答性を向上させた情報処理装置、操作予測方法及び操作予測プログラムを実現できる。
【図面の簡単な説明】
【0014】
【図1】第1の実施の形態の概要となる情報処理装置の機能構成を示すブロック図である。
【図2】第1の実施の形態の具体例となる携帯端末の外観構成を示す略線図である。
【図3】携帯端末のハードウェア構成を示すブロック図である。
【図4】静電センサの出力値の変化を示す略線図である。
【図5】タッチ位置及び近接位置の検知の説明に供する略線図である。
【図6】タッチ位置及び近接位置の座標系の説明に供する略線図である。
【図7】タップするときの指の動きを示す略線図である。
【図8】タップの予測の説明に供する略線図である。
【図9】フリックするときの指の動きを示す略線図である。
【図10】フリックの予測(1)の説明に供する略線図である。
【図11】フリックの予測(2)の説明に供する略線図である。
【図12】第1の実施の形態における操作予測処理手順を示すフローチャートである。
【図13】第2の実施の形態における文字入力画面の構成を示す略線図である。
【図14】キータッチの予測(1)の説明に供する略線図である。
【図15】キータッチの予測(2)の説明に供する略線図である。
【図16】第2の実施の形態における操作予測処理手順を示すフローチャートである。
【図17】第3の実施の形態における携帯端末のハードウェア構成を示すブロック図である。
【図18】押込タップするときの指の動きを示す略線図である。
【図19】押込タップの予測の説明に供する略線図である。
【図20】フリックするときの指の動きを示す略線図である。
【図21】押圧力を利用したフリックの予測の説明に供する略線図である。
【図22】ドラッグするときの指の動きを示す略線図である。
【図23】押圧力を利用したドラッグの予測の説明に供する略線図である。
【図24】押圧力を利用したキータッチの予測の説明に供する略線図である。
【図25】第3の実施の形態における操作予測処理手順(1)を示すフローチャートである。
【図26】第3の実施の形態における操作予測処理手順(2)を示すフローチャートである。
【図27】今回の近接位置と前々回の近接位置とを用いたフリックの予測の説明に供する略線図である。
【発明を実施するための形態】
【0015】
以下、発明を実施するための最良の形態(以下実施の形態とする)について説明する。尚、説明は以下の順序で行う。
1.第1の実施の形態
2.第2の実施の形態
3.第3の実施の形態
4.他の実施の形態
【0016】
<1.第1の実施の形態>
[1−1.第1の実施の形態の概要]
まず、第1の実施の形態の概要を説明する。因みに、この概要を説明した後、第1の実施の形態の具体例の説明に移る。
【0017】
図1において1は、情報処理装置を示す。この情報処理装置1には、操作面(例えばタッチパネルの操作面)に対する指示物の接触を検知する接触検知部2と、操作面に対する指示物の近接を検知する近接検知部3とが設けられている。
【0018】
さらにこの情報処理装置1には、接触検知部2による検知結果、及び近接検知部3による検知結果をもとに、操作面に対する指示物の動きを検出し、検出した指示物の動きから予測される操作入力に対応する処理を開始する制御部4が設けられている。
【0019】
このように情報処理装置1は、操作面に対する指示物の動きから操作入力を予測して、当該操作入力に対応する処理を開始しておくようにしたことで、ユーザが実際に操作入力を行ってから対応する処理が完了するまでの時間を短縮することができる。
【0020】
より具体的には、制御部4は、検出された指示物の動きが所定の動きであったときに、当該指示物による操作入力が行われると予測する。
【0021】
また制御部4は、検出された指示物の動きが所定の動きであったときに、当該指示物を操作面に接触させる操作入力が行われると予測する。
【0022】
このとき制御部4は、例えば、指示物の移動速度及び移動方向に基づいて、所定の動きを判別する。
【0023】
このとき、例えば、操作面に対して垂直方向に所定速度以上で指示物が近づいているときに、当該指示物を操作面に接触させる操作入力が行われると予測する。
【0024】
またこのとき、例えば、操作面に対して斜め方向に所定速度以上で上記指示物が近づいているときに、当該指示物で操作面を払う操作入力が行われると予測する。
【0025】
さらに制御部4は、例えば、指示物の移動速度及び移動方向と、当該指示物の操作面までの距離から、当該指示物の動きが所定の動きであるかを判別する。
【0026】
このとき、例えば、指示物の操作面までの距離が所定以下で、且つ当該操作面と平行な方向への指示物の移動速度が所定以下である場合に、当該指示物を操作面に接触させる操作入力が行われると予測する。
【0027】
さらに制御部4が、操作入力が行われると予測したとき、操作入力に対応する処理のうち、バックグラウンド処理が可能な処理を開始するようにしてもよい。
【0028】
さらに制御部4が、バックグラウンド処理を開始してから、所定時間経過しても、予測された上記操作入力が行われなかった場合、当該バックグラウンド処理を停止するようにしてもよい。
【0029】
さらに制御部4が、予測された操作入力が行われたときに、バックグラウンド処理以外の処理を実行するようにしてもよい。
【0030】
このような構成でなる情報処理装置1の具体例について、以下、詳しく説明する。
【0031】
[1−2.第1の実施の形態の具体例]
[1−2−1.携帯端末の外観構成]
次に、図2を用いて、上述した情報処理装置1の具体例である携帯端末100の外観構成について説明する。
【0032】
携帯端末100は、片手で把持し得る程度の大きさでなる略扁平矩形状の筐体101を有している。
【0033】
筐体101の前面101Aの中央部には、長方形状のタッチスクリーン102が設けられている。タッチスクリーン102は、液晶パネルと、液晶パネルの表示面を覆う薄型透明のタッチパネルとで構成される。因みに、このタッチパネルは、例えば、静電容量式で、マルチタッチに対応する。
【0034】
携帯端末100は、このタッチスクリーン102に対する、指(タッチペンなどでも可)による接触操作及び近接操作を、操作入力として受け付けるようになっている。尚、接触操作とは、タッチスクリーンを指で触って行う操作(これをタッチ操作とも呼ぶ)であり、近接操作とは、タッチスクリーンを触らずに指を近づけて行う操作のことである。
【0035】
さらにこの携帯端末100の筐体101の前面101Aには、タッチスクリーン102の近傍に、操作ボタン103も設けられている。
【0036】
尚、この携帯端末100は、長方形状のタッチスクリーン102が縦長となる向き(これを縦向きとも呼ぶ)でも、横長となる向き(これを横向きとも呼ぶ)でも使用できるようになっているが、以下では、縦向きで使用される場合を主に説明する。
【0037】
[1−2−2.携帯端末のハードウェア構成]
次に図3を用いて、携帯端末100のハードウェア構成について説明する。この携帯端末100では、CPU110が、不揮発性メモリ111に格納されているプログラムをRAM112に展開して読み込み、このプログラムに従って各種処理を実行すると共に各部を制御する。尚、CPUは、Central Processing Unitの略、RAMは、Random Access Memoryの略である。
【0038】
CPU110は、タッチスクリーン102に対してタッチ操作又は近接操作が行われたことを認識すると、この操作を操作入力として受け付け、この操作入力に応じた処理を実行する。
【0039】
タッチスクリーン102は、各種情報を表示する表示デバイスである液晶パネル102Aと、操作入力を受け付ける操作入力デバイスであるタッチパネル102Bとで構成される。
【0040】
タッチパネル102Bは、上述したように、静電容量式のタッチパネルであり、操作面に対して格子状に配置された複数の静電センサ(図示せず)を有している。これら複数の静電センサの各々は、指などの導体が操作面に近づくことで変化する静電容量に応じて、出力値が変化する。
【0041】
実際、図4に示すように、タッチパネル102Bの操作面に対して指が近づけられたとする。このとき、指の真下に位置する静電センサの出力値は、例えば、操作面と指との距離が30mmのときには「10」、15mmのときには「20」、5mmのときには「40」、操作面に指が接触したときには最大の「80」と変化する。
【0042】
CPU110は、このように変化する各静電センサの出力値と、各静電センサの位置とをタッチパネル102Bから取得する。そしてCPU110は、これらをもとに、タッチパネル102Bの操作面上において、指が接触している部分、近接している部分、接触も近接もしていない部分を区別する。尚、ここでは、指が接触している部分を接触部分とも呼び、近接している部分を近接部分、接触も近接もしていない部分を非近接部分とも呼ぶ。
【0043】
具体的に、CPU110は、図5に示すように、タッチパネル102Bの操作面上において、静電センサの出力値が「50」以上となる部分を、接触部分と判別する。またCPU110は、出力値が「20」以上「50」未満となる部分を、近接部分と判別し、出力値が「20」未満となる部分を、非近接部分と判別する。
【0044】
CPU110は、このようにしてタッチパネル102Bの操作面上における接触部分、近接部分、非近接部分を判別することで、操作面に指が接触しているのか、それとも近接しているだけなのかなどを検知できる。また、操作面上のどの位置に指が接触しているのか、操作面上のどの位置に操作面からどの程度離れて指が近接しているのかを検知することもできる。
【0045】
このとき、CPU110は、接触部分が存在する場合には、例えばその重心又は中心(操作面上に接触している指の腹の重心又は中心)をタッチ位置として検知するようになっている。またCPU110は、近接部分のみが存在する場合には、例えばその重心又は中心(操作面に近接している指の腹の重心又は中心)を、近接位置として検知するようになっている。
【0046】
尚、CPU110は、図6に示すように、タッチパネル102Bの操作面の短辺に平行な軸をX軸、長辺に平行な軸をY軸、操作面に垂直な軸をZ軸とし、操作面の例えば左下隅を原点とするXYZ空間上の座標として、タッチ位置及び近接位置を検知するようになっている。
【0047】
さらにCPU110は、一定時間ごとに、タッチパネル102Bから各静電センサの出力値を取得し、接触部分、近接部分、非近接部分を判別していくことで、これらをもとに、XYZ空間上でのタッチ位置及び近接位置の変移を検出する。
【0048】
さらにCPU110は、これらの変移をもとに、タッチパネル102B上での指の動きを検出して、この動きをもとに、タッチスクリーン102に対するタッチ操作及び近接操作を認識する。そして、CPU110は、これを操作入力として受け付け、操作入力に応じた処理を実行するようになっている。
【0049】
またCPU110は、操作ボタン103に対する押下操作を認識すると、これを操作入力として受け付け、この操作入力に応じた処理を実行するようにもなっている。
【0050】
ここで、例えば、タッチスクリーン102に、音楽データを再生する為の再生ボタンが表示された状態で、ユーザが、この再生ボタンをタップしたとする。
【0051】
CPU110は、このようなタッチ操作を、音楽データを再生する操作入力として受け付け、不揮発性メモリ111から、音楽データを読み出して再生部113に送る。
【0052】
再生部113は、CPU110の制御のもと、音楽データに対して、デコード処理、デジタアナログ変換処理、増幅処理などの再生処理を施すことで、音声信号を得、これをヘッドホン端子(図示せず)から出力する。
【0053】
こうすることで、ヘッドホン端子に接続されたヘッドホンを介してユーザに音楽を聴かせることができる。
【0054】
またこのときCPU110は、読み出した音楽データに対応する、ジャケット画像、曲タイトル、アーティスト名などの情報を取得して、これをタッチスクリーン102の液晶パネル102Aに表示させる。こうすることで、再生中の音楽に関する情報をユーザに提示することができる。
【0055】
さらに、例えば、タッチスクリーン102に、不揮発性メモリ111に記憶されている画像のうちの1枚が表示された状態で、ユーザが、この画像に対して、下方向へのフリックを行ったとする。尚、フリックとは、操作面を軽く払うタッチ操作のことである。
【0056】
CPU110は、このようなタッチ操作を、次の画像を表示する操作入力として受け付け、不揮発性メモリ111から、次の画像に対応する画像データを読み出して、この画像データに基づく画像を、液晶パネル102Aに表示させる。
【0057】
こうすることで、不揮発性メモリ111に記憶されている画像を順次ユーザに提示することができる。
【0058】
また、例えば、タッチスクリーン102に、Webブラウザを起動する為のブラウザアイコンが表示された状態で、ユーザが、このブラウザアイコンをタップしたとする。
【0059】
CPU110は、このようなタッチ操作を、Webブラウザを起動する操作入力として受け付け、Webブラウザを起動する。
【0060】
ここでCPU110は、液晶パネル102AにWebブラウザ画面を表示させると共に、ネットワークインタフェース114を介して、ネットワーク上のサーバからWebページのページデータを受信する。そしてCPU110は、このページデータに基づくページ画像を、Webブラウザ画面に表示させる。
【0061】
こうすることで、Webブラウザ画面を介して、ユーザにWebページを閲覧させることができる。
【0062】
さらに、例えば、タッチスクリーン102に、ソフトウェアキーボードが表示された状態で、ユーザが、ソフトウェアキーボードを構成する複数のキーのうちの1つをタップしたとする。
【0063】
CPU110は、このようなタッチ操作を、タップされたキーに対応する文字を入力する操作入力として受け付け、この文字を液晶パネル102Aに表示させる。
【0064】
こうすることで、タッチスクリーン102に表示したソフトウェアキーボードを介して、ユーザに文字入力させることができる。
【0065】
因みに、本実施の形態の概要で説明した情報処理装置1の接触検知部2及び近接検知部3の具体的なハードウェアの例が上述した携帯端末100のタッチパネル102Bである。また情報処理装置1の制御部4の具体的なハードウェアの例が携帯端末100のCPU110である。
【0066】
ところで、携帯端末100は、タッチスクリーン102に近接している指の動きをもとに、タッチ操作を予測して、タッチ操作に対応する処理を、実際にタッチ操作が行われる前に開始するようになっている。
【0067】
以下、タッチ操作の予測について詳しく説明する。
【0068】
[1−2−3.タッチ操作の予測]
CPU110は、上述したように、一定時間ごとにタッチパネル102Bから得られる各静電センサの出力値と位置をもとに、操作面上における、タッチ位置及び近接位置を、XYZ空間上の座標として検知するようになっている。
【0069】
ここで、まず、タッチパネル102Bに近接している指の動き、すなわち近接位置の変移をもとに、タッチパネル102Bに対するタッチ操作の1つであるタップを予測する場合について説明する。
【0070】
実際、ユーザは、タッチパネル102Bの操作面をタップする場合、図7に示すように、操作面に対して、指をほぼ垂直に下ろすようにしてタッチした後、この指を操作面から離す動作を素早く行う。
【0071】
そこで、携帯端末100は、操作面に対して、指をほぼ垂直に素早く下ろす動きを検出したときに、操作面をタップするときの予備動作が行われたと認識して、ユーザが、操作面をタップすると予測するようになっている。
【0072】
具体的に、CPU110は、図8に示すように、一定時間Tごとに近接位置を検知する。このとき、CPU110は、前回の近接位置のZ座標と、今回の近接位置のZ座標とをもとに、Z座標の変化量を算出する。この変化量は、一定時間T内での操作面と指との距離の変化量を表す。
【0073】
そしてCPU110は、Z座標の変化量をもとに、Z座標の傾き(すなわちZ座標の変化量/一定時間T)を算出する。この傾きは、その符号が「−」であれば、指が操作面に近づいていることを意味し、「+」であれば、操作面から離れていっていることを意味する。さらにこの傾きは、その絶対値が、指が近づいていくとき及び離れていくときの速さを表す。
【0074】
ゆえに、Z座標の傾きから、指がどの程度の速さで、操作面に近づいているのか、また操作面から離れていっているのかがわかる。
【0075】
さらに、CPU110は、前回の近接位置のX座標及びY座標と、今回の近接位置のX座標及びY座標をもとに、一定時間T内での近接位置のXY平面(すなわち操作面と平行な面)上での移動ベクトルを算出する。この移動ベクトルは、一定時間T内での操作面上での指の移動量と移動方向を表す。
【0076】
CPU110は、このようにして得られた、一定時間T内での近接位置のZ座標の傾きと、XY平面上での移動ベクトルとをもとに、操作面に対して、タップするときの予備動作が行われたかどうかを判別する。
【0077】
すなわち、CPU110は、一定時間内での近接位置のZ座標の傾きが「−」で絶対値が所定値以上であり、且つXY平面上での指の移動量が所定量以下である場合に、タップするときの予備動作が行われたと判別する。
【0078】
換言すれば、CPU110は、指が、操作面と平行な方向にはほとんど移動することなく、一定以上の速さで、操作面に近づいている場合に、タップするときの予備動作が行われたと判別する。
【0079】
実際、図8の例では、近接位置P1を検知した時点t1から一定時間T経過後の、近接位置P2を検知した時点t2で、Z座標の傾きが「−」で絶対値が所定値以上であり、且つXY平面上での移動量が所定量以下となる。
【0080】
ゆえに、CPU110は、この時点t2で、タップするときの予備動作があったと判別して、近接位置P2のX座標及びY座標に対応する操作面上の位置がタップされると予測する。そしてCPU110は、このタップに対応する処理をこの時点t2から開始する。
【0081】
ここで、例えば、近接位置P2のX座標及びY座標に対応する操作面上の位置に、Webページのリンクが表示されているとする。
【0082】
この場合、CPU110は、時点t2で、リンクがタップされることを予測すると、リンク先のWebページのページデータの受信を開始する。そしてCPU110は、受信したページデータをRAM112に記憶していく。
【0083】
その後、CPU110は、時点t2から一定時間T経過後のt3でタッチ位置P3を検知することにより、タッチパネル102Bの操作面が実際にタッチされたと認識する。
【0084】
さらにCPU110は、時点t4〜t6までの間、タッチされ続けていると認識した後、時点t6から一定時間経過後のt7で近接位置P7を検知することにより、操作面から指が離されたと認識する。
【0085】
CPU110は、操作面から指が離されたこの時点t7で、実際にリンクがタップされたと認識する。するとCPU110は、この時点t7までにRAM112に記憶させたページデータを読み出し、このページデータに基づくリンク先のWebページを、Webブラウザ画面に表示させる。
【0086】
このように、CPU110は、実際にリンクがタップされる前の時点t2で、操作面に近接している指の動きから、リンクがタップされることを予測して、リンク先のページデータの受信を開始するようにした。
【0087】
こうすることで、従来のように、実際にリンクがタップされた時点t7で、リンク先のページデータの受信を開始する場合と比して、実際にリンクがタップされた時点t7から、リンク先のWebページが表示されるまでの時間を短縮できる。
【0088】
尚、CPU110は、例えば、実際にリンクがタップされる前に、ページデータの受信が完了したとしても、実際にリンクがタップされるまでは、リンク先のWebページを表示しないようになっている。
【0089】
つまり、CPU110は、リンクのタップに対応する処理(ページデータの受信+Webページの表示)の中で、バックグラウンドで先に実行できる処理(ページデータの受信)のみを実行するようになっている。
【0090】
こうすることで、万が一、予測が外れてリンクがタップされなかったにも関わらずリンク先のWebページを表示してしまうような状況を回避することができ、ユーザが不利益を被らないようになっている。
【0091】
尚、ページデータの受信のように、ユーザには直接わからないように、バックグラウンドで先に実行できる処理をBG(バックグラウンド)処理とも呼ぶ。またWebページの表示のように、ユーザに直接わかるように、フォアグラウンドで実行する処理をFG(フォアグラウンド)処理とも呼ぶ。
【0092】
さらにCPU110は、例えば、リンクのタップを予測した時点t2から、所定時間経過しても、実際にタップが行われなかった場合には、予測が外れたとして、ページデータの受信を停止するようにもなっている。
【0093】
こうすることで、予測が外れたにも関わらず、予測したタップに対応する処理を無駄に継続してしまうような状況を回避することができる。
【0094】
次に、タッチパネル102Bに近接している指の動き、すなわち近接位置の変移をもとに、タッチパネル102Bに対するタッチ操作の1つであるフリックを予測する場合について説明する。
【0095】
実際、ユーザは、タッチパネル102Bの操作面をフリックする場合、図9に示すように、操作面に対して、指を斜めに下ろすようにしてタッチした後、この指を操作面上で滑らせてから離す動作を素早く行う。
【0096】
そこで、携帯端末100は、操作面に対して、指を斜めに素早く下ろす動きを検出したときに、操作面をフリックするときの予備動作が行われたと認識して、ユーザが、操作面をフリックすると予測するようになっている。
【0097】
具体的に、CPU110は、タップを予測したときと同様、図10及び図11に示すように、一定時間Tごとに近接位置を検知する。このとき、CPU110は、前回の近接位置のZ座標と、今回の近接位置のZ座標とをもとに、Z座標の変化量を算出する。
【0098】
そしてCPU110は、Z座標の変化量をもとに、Z座標の傾き(すなわちZ座標の変化量/一定時間T)を算出する。この傾きから、指がどの程度の速さで、操作面に近づいているのか、また操作面から離れていっているのかがわかる。
【0099】
さらに、CPU110は、前回の近接位置のX座標及びY座標と、今回の近接位置のX座標及びY座標をもとに、一定時間T内での近接位置のXY平面(すなわち操作面と平行な面)上での移動ベクトルを算出する。この移動ベクトルは、一定時間T内での操作面上での指の移動量と移動方向を表す。
【0100】
CPU110は、このようにして得られた、一定時間内での近接位置のZ座標の傾きと、XY平面上での移動ベクトルとをもとに、操作面に対して、フリックするときの予備動作が行われたかどうかを判別する。
【0101】
すなわち、CPU110は、一定時間T内での近接位置のZ座標の傾きが「−」で絶対値が所定値以上であり、且つXY平面上での指の移動量が所定量以上である場合に、フリックするときの予備動作が行われたと判別する。
【0102】
換言すれば、CPU110は、指が、操作面と平行な方向に移動しながら、一定以上の速さで、操作面に近づいている場合に、フリックするときの予備動作が行われたと判別する。
【0103】
実際、図10及び図11の例では、近接位置P1を検知した時点t1から一定時間T経過後の、近接位置P2を検知した時点t2で、Z座標の傾きが「−」で絶対値が所定値以上であり、且つXY平面上での移動量が所定量以上となる。
【0104】
ゆえに、CPU110は、この時点t2で、フリックするときの予備動作があったと判別して、移動ベクトルが示す方向にフリックされると予測する。そしてCPU110は、このフリックに対応する処理をこの時点t2から開始する。
【0105】
ここで、例えば、液晶パネル102Aに、任意の画像が表示されているとする。この場合、CPU110は、時点t2で、移動ベクトルが示す方向にフリックされることを予測すると、BG処理として、画像データの読み出しを開始する。
【0106】
ここで、CPU110は、例えば、操作面の上方向へのフリックを予測した場合、表示中の画像の前の画像に対応する画像データの読み出しを開始する。これに対して、例えば、操作面の下方向へのフリックを予測した場合、CPU110は、表示中の画像の次の画像に対応する画像データの読み出しを開始する。そしてCPU110は、読み出した画像データをRAM112に記憶していく。
【0107】
その後、CPU110は、時点t2から一定時間経過後のt3でタッチ位置P3を検知することにより、タッチパネル102Bの操作面が実際にタッチされたと認識する。
【0108】
さらにCPU110は、時点t4〜t6までの間、タッチ位置が移動しながらタッチされ続けていると認識した後、時点t6から一定時間経過後のt7で近接位置P7を検知することにより、操作面から指が離されたと認識する。
【0109】
CPU110は、操作面から指が離されたこの時点t7で、実際に任意の方向にフリックされたと認識する。するとCPU110は、この時点t7までにRAM112に記憶させた画像データを読み出し、FG処理として、この画像データに基づく画像を液晶パネル102Aに表示させる。
【0110】
このように、CPU110は、実際に任意の方向にフリックされる前の時点t2で、操作面に近接している指の動きから、任意の方向にフリックされることを予測して、画像データの読み出しを開始するようにした。
【0111】
こうすることで、従来のように、実際にフリックされた時点t7で、画像データの読み出しを開始する場合と比して、実際にフリックされた時点t7から、前もしくは次の画像が表示されるまでの時間を短縮できる。
【0112】
尚、CPU110は、例えば、実際にフリックされる前に、画像データの読み出しが完了したとしても、実際にフリックされるまでは、画像を表示しないようになっている。
【0113】
つまり、CPU110は、フリックに対応する処理(画像データの読み出し+画像の表示)の中で、バックグラウンドで先に実行できるBG処理(画像データの読み出し)のみを実行するようになっている。
【0114】
こうすることで、万が一、予測が外れてフリックされなかったにも関わらずFG処理を実行して次の画像を表示してしまうような状況を回避することができ、ユーザに不利益が生じないようになっている。
【0115】
またCPU110は、例えば、フリックを予測した時点t2から、所定時間経過しても、実際にフリックが行われなかった場合には、予測が外れたとして、画像データの読み出しを停止するようにもなっている。
【0116】
こうすることで、予測が外れたにも関わらず、予測したフリックに対応する処理を無駄に継続してしまうような状況を回避することができる。
【0117】
ここまで説明したように、携帯端末100は、タッチスクリーン102に近接している指がどの方向にどの程度の速さで動いているかをもとに、ユーザがタップやフリックを行う前に、これらを予測して対応する処理を開始しておくようにした。
【0118】
こうすることで、従来のように、実際にタップやフリックが行われてから対応する処理を開始する場合と比して、実際にタップやフリックが行われてから対応する処理が終了するまでの時間を短縮することができる。
【0119】
[1−2−4.操作予測処理手順]
次に、携帯端末100が、タップやフリックなどのタッチ操作を予測するときの具体的な処理の手順(これを操作予測処理手順とも呼ぶ)について、図12に示すフローチャートを用いて説明する。尚、図12に示す操作予測処理手順RT1は、携帯端末100のCPU110が、不揮発性メモリ111に格納されているプログラムにしたがって実行する処理の手順である。
【0120】
CPU110は、例えば、携帯端末100の電源がオンされると、操作予測処理手順RT1を開始して、ステップSP1に移る。ステップSP1においてCPU110は、タッチパネル102Bに対して実際にタッチ操作が行われたか否かを判別する。
【0121】
ここで、タッチパネル102Bに対して実際にタッチ操作が行われていないことによりこのステップSP1で否定結果を得ると、CPU110は、ステップSP2に移る。
【0122】
ステップSP2においてCPU110は、現在、予測したタッチ操作に対応するBG処理を実行中であるか否かを判別する。
【0123】
ここで、予測したタッチ操作に対応するBG処理が実行されていないことにより、このステップSP2で否定結果を得ると、CPU110は、ステップSP3に移る。
【0124】
ステップSP3においてCPU110は、タッチパネル102Bに対する指の近接を検知したか否かを判別する。
【0125】
ここで、指の近接を検知したことにより、このステップSP3で肯定結果を得ると、CPU110は、ステップSP4に移る。
【0126】
ステップSP4においてCPU110は、今回の近接位置と、前回の近接位置をもとに、タッチパネル102Bの操作面に近接している指の動きを特定して、次のステップSP5に移る。
【0127】
ステップSP5においてCPU110は、ステップSP5で特定した、操作面に近接している指の動きから、タッチ操作が予測できたか否かを判別する。
【0128】
ここで、例えば、ステップSP5で特定した指の動きが、操作面に対してほぼ垂直に近づく動きであることからタップが予測できたとする。するとCPU110は、このステップSP5で肯定結果を得て、ステップSP6に移る。
【0129】
ステップSP6においてCPU110は、予測したタッチ操作に対応するBG処理を開始して、再びステップSP1に戻る。
【0130】
一方、上述のステップSP2で、予測したタッチ操作に対応するBG処理を実行中であることにより肯定結果を得ると、CPU110は、ステップSP7に移る。
【0131】
ステップSP7においてCPU110は、タッチ操作を予測してから所定時間経過したか否かを判別する。
【0132】
ここで、まだ所定時間経過していないことにより、このステップSP7で否定結果を得ると、CPU110は、再びステップSP1に戻る。
【0133】
これに対して、所定時間経過したことにより、このステップSP7で肯定結果を得ると、CPU110は、ステップSP8に移る。
【0134】
ステップSP8においてCPU110は、タッチ操作を予測してから所定時間経過しても、実際にタッチ操作が行われなかったことにより、予測したタッチ操作に対応するBG処理を停止して、再びステップSP1に戻る。
【0135】
また一方、上述のステップSP1で、タッチパネル102Bに対して実際にタッチ操作が行われたことにより肯定結果を得ると、CPU110は、ステップSP9に移る。
【0136】
ステップSP9においてCPU110は、このタッチ操作に対応するBG処理が終了するのを待ち受ける。そして、このBG処理が終了したことにより、このステップSP9で肯定結果を得ると、CPU110は、ステップSP10に移る。
【0137】
ステップSP10においてCPU110は、BG処理に続くFG処理を実行して、再びステップSP1に戻る。
【0138】
尚、上述のステップSP3で、指の近接を検知していないことにより否定結果を得た場合と、上述のステップSP5でタッチ操作を予測できていないことにより否定結果を得た場合も、CPU110は、再びステップSP1に戻る。
【0139】
このような操作予測処理手順RT1にしたがって、携帯端末100のCPU110は、タッチ操作を予測して、対応するBG処理を、このタッチ操作が実際に行われる前に開始しておくようになっている。
【0140】
[1−2−5.動作及び効果]
以上の構成において、携帯端末100のCPU110は、一定時間Tごとに、タッチパネル102Bの出力値から、タッチパネル102Bに近接又は接触する指の位置を検知する。
【0141】
さらにCPU110は、近接する位置(近接位置)の変移をもとに、タッチパネル102Bに近接している指の動きを検出する。
【0142】
そしてCPU110は、この動きが、タッチ操作が行われる直前の動き(予備動作)であった場合に、タッチ操作が行われると予測して、実際にタッチ操作が行われる前に、タッチ操作に対応する処理を開始するようにした。
【0143】
こうすることで、携帯端末100は、実際にタッチ操作が行われてからタッチ操作に対応する処理を開始する場合と比して、実際にタッチ操作が行われてから、対応する処理が完了するまでの時間を短縮することができる。
【0144】
またCPU110は、タッチ操作に対応する処理のうち、ユーザには直接わからないようにバックグラウンドで先に実行できるBG処理のみを開始して、実際にタッチ操作が行われてから、ユーザに直接わかるFG処理を実行するようにした。
【0145】
実際、ユーザは、FG処理が実行されてはじめて、タッチ操作に対応する処理が実行されたと認識する。ゆえに、このFG処理を、タッチ操作を予測した時点で実行してしまうと、万が一、予測が外れたときに、ユーザの意図しない動作が発生することになる。
【0146】
ゆえに、CPU110は、FG処理については、実際にタッチ操作が行われてから実行することで、予測が外れたときに、ユーザの意図しない動作が発生することを回避することができる。
【0147】
また携帯端末100のCPU110は、タッチ操作を予測した時点から、所定時間経過しても、実際にタッチ操作が行われなかった場合には、予測が外れたとして、BG処理を停止する。
【0148】
こうすることで、携帯端末100は、予測が外れたにも関わらず、予測したタッチ操作に対応するBG処理を無駄に継続するような状況を回避することができる。
【0149】
以上の構成によれば、携帯端末100は、タッチパネル102Bに近接している指の動きをもとに、タッチパネル102Bに対するタッチ操作を予測して、このタッチ操作に対応する処理を、実際にタッチ操作が行われる前に開始するようにした。こうすることで、ユーザが実際にタッチ操作を行ってから対応する処理が終了するまでの時間を短縮することができ、かくして、従来と比して一段とタッチ操作に対する応答性を向上させることができる。
【0150】
<2.第2の実施の形態>
次に第2の実施の形態について説明する。この第2の実施の形態では、タッチスクリーン102にソフトウェアキーボードを表示させた状態で、キーに対するタッチ操作を予測するようになっている。
【0151】
尚、携帯端末100の外観構成及びハードウェア構成などは、第1の実施の形態と同様であるので、第1の実施の形態を参照とする。ゆえに、ここでは、ソフトウェアキーボードを表示している状態での、タッチ操作の予測についてのみ説明する。
【0152】
[2−1.タッチ操作の予測]
携帯端末100のCPU110は、文字入力を行う為の画面として、図13に示す文字入力画面200を、液晶パネル102Aに表示させるようになっている。
【0153】
この文字入力画面200は、入力された文字を表示する文字表示領域200Aと、文字の変換候補を表示する変換候補表示領域200Bと、ソフトウェアキーボードを表示するキー表示領域200Cとで構成される。
【0154】
キー表示領域200Cには、ソフトウェアキーボードとして、QWERTY配列で並べられた複数のキーが表示される。
【0155】
そしてこの文字入力画面200では、キー表示領域200Cに表示されているキーのうちの1つがタッチされると、このキーに対応する文字が、文字表示領域200Aに表示される。
【0156】
またこの文字入力画面200では、キーがタッチされると、このキーに対応する文字を含んだ変換候補が、変換候補表示領域200Bに表示される。
【0157】
そして、文字表示領域200Aに表示されている文字の入力が確定する前に、変換候補表示領域200Bに表示されている変換候補のうちの1つがタップされると、この変換候補が文字表示領域200Aに表示される。
【0158】
CPU110は、このような文字入力画面200を液晶パネル102Aに表示させた状態で、タッチパネル102Bに近接している指の動きをもとに、キーのタッチを予測するようになっている。
【0159】
実際、ユーザは、文章を入力する場合、タッチパネル102Bの操作面に対して、指を所望のキーの上に素早く移動させてから指を下ろしてキーをタッチした後、この指をキーから離す動作を繰り返す。
【0160】
そこで、携帯端末100は、操作面に対して、操作面と平行な方向への指の移動速度が落ちて、且つ指が近づく動きがあった場合に、キーをタッチするときの予備動作が行われたと認識して、ユーザがキーをタッチすると予測するようになっている。
【0161】
具体的に、CPU110は、図14及び図15に示すように、一定時間Tごとに近接位置を検知する。そして、CPU110は、この近接位置のZ座標を得る。このZ座標が、操作面と指との距離を表す。
【0162】
さらに、CPU110は、前回の近接位置のX座標及びY座標と、今回の近接位置のX座標及びY座標をもとに、一定時間T内での近接位置のXY平面上での移動ベクトルを算出する。この移動ベクトルは、一定時間T内での操作面上での指の移動量(すなわち移動速度Vxy)と移動方向を表す。すなわち、この移動ベクトルから、現在、指が、操作面上でどの程度の速さでどの方向に移動しているのかがわかる。
【0163】
CPU110は、このようにして得られた、近接位置のZ座標と、XY平面上での移動ベクトルとをもとに、操作面に対して、キーをタッチするときの予備動作が行われたかどうかを判別する。
【0164】
すなわち、CPU110は、近接位置のZ座標が所定値以下であり、且つ操作面と平行な方向への指の移動速度Vxyが所定値以下である場合に、キーをタッチするときの予備動作があったと判別する。
【0165】
換言すれば、CPU110は、操作面と平行な方向への移動速度が低下しつつ、指が操作面に近づいた場合に、キーをタッチするときの予備動作があったと判別する。
【0166】
実際、図14及び図15の例では、近接位置P1を検知した時点t1で、Z座標が所定値以下で、且つ操作面と平行な方向への指の移動速度Vxyが所定値以下となる。
【0167】
ゆえに、CPU110は、この時点t1で、操作面に対して、キーをタッチするときの予備動作があったと判別して、近接位置P1のX座標及びY座標に対応する位置のキーがタッチされると予測する。そしてCPU110は、このキーのタッチに対応する処理をこの時点t1から開始する。
【0168】
具体的に、CPU110は、タッチされると予測したキーをフォーカスする処理と、このキーに対応する文字を含んだ変換候補を、不揮発性メモリ111に記憶している辞書データから検索する処理を開始する。そしてCPU110は、検索結果として得られた変換候補をRAM112に記憶していく。
【0169】
尚、キーをフォーカスする処理とは、このキーを、タッチされた指で隠れない程度に所定方向(例えば上方)に移動させて拡大表示させる処理のことである。
【0170】
その後、CPU110は、時点t1から一定時間経過後のt2でタッチ位置P2を検知することにより、キーが実際にタッチされたと認識する。
【0171】
するとCPU110は、タッチされたキーに対応する文字を、文字表示領域200Aに表示させると共に、RAM112に記憶させた変換候補を読み出し、これを、変換候補表示領域200Bに表示させる。
【0172】
このように、CPU110は、実際にキーがタッチされる前の時点t1で、操作面に近接している指の動きから、キーがタッチされることを予測して、キーをフォーカスする処理と、キーに対応する文字の変換候補を検索する処理とを開始するようにした。
【0173】
こうすることで、従来のように、実際にキーがタッチされた時点t2で、これらの処理を開始する場合と比して、実際にキーがタッチされた時点t2から、これらの処理が終了するまでの時間を短縮できる。
【0174】
また、CPU110は、近接位置のZ座標が所定値以下であっても、操作面と平行な方向への指の移動速度Vxyが所定値を越えている限り、キーをフォーカスしないようにした。
【0175】
すなわち、指が操作面に近づいていても、指が操作面と平行な方向に素早く移動していれば、単にキーの上を指が通過しているだけであるので、キーをフォーカスしないようになっている。
【0176】
こうすることで、ユーザが、例えば或るキーをタッチして指を離した後、この指を、次にタッチするキーまで移動させるときに、この移動経路上に存在する全てのキーをフォーカスしてしまうようなことを防止することができる。
【0177】
ところで、近接位置のZ座標が所定値を超えていて、操作面と平行な方向への指の移動速度Vxyが所定値以下となるようなとき、すなわち操作面と平行な方向への移動速度は低下したものの、指が操作面からある程度離れているときがある。この場合、キーをタッチするときの予備動作が行われたとまでは言えないが、キーがタッチされる可能性はあると考えられる。
【0178】
そこで、このときCPU110は、近接位置のX座標及びY座標に対応する位置のキーに対応する文字を含んだ変換候補を辞書データから検索する処理(すなわちBG処理)のみを開始して、フォーカスする処理(すなわちFG処理)は行わない。
【0179】
こうすることで、万が一、予測が外れてこのキーがタッチされなかったにも関わらずフォーカスしてしまうような状況を回避することができ、ユーザに不利益が生じないようになっている。
【0180】
ここまで説明したように、携帯端末100は、タッチスクリーン102に近接している指がどの程度の距離にあってどの程度の速さで動いているかをもとに、ユーザがキーをタッチする前に、これを予測して対応する処理を開始しておくようにした。
【0181】
こうすることで、従来のように、実際にキーがタッチされてから対応する処理を開始する場合と比して、実際にタッチされてから対応する処理が終了するまでの時間を短縮することができる。
【0182】
[2−2.操作予測処理手順]
次に、携帯端末100が、キーに対するタッチ操作を予測するときの具体的な操作予測処理手順について、図16に示すフローチャートを用いて説明する。尚、図16に示す操作予測処理手順RT2は、携帯端末100のCPU110が、不揮発性メモリ111に格納されているプログラムにしたがって実行する処理の手順である。
【0183】
CPU110は、例えば、携帯端末100の電源がオンされると、操作予測処理手順RT2を開始して、ステップSP20に移る。ステップSP20においてCPU110は、タッチパネル102Bに対して実際にタッチ操作が行われたか否かを判別する。
【0184】
ここで、タッチパネル102Bに対して実際にタッチ操作が行われていないことによりこのステップSP20で否定結果を得ると、CPU110は、ステップSP21に移る。
【0185】
ステップSP21においてCPU110は、タッチパネル102Bに対する指の近接を検知したか否かを判別する。
【0186】
ここで、指の近接を検知したことにより、このステップSP21で肯定結果を得ると、CPU110は、ステップSP22に移る。
【0187】
ステップSP22においてCPU110は、今回の近接位置と、前回の近接位置をもとに、タッチパネル102Bの操作面と指との距離(Z座標)と、操作面と平行な方向への指の移動速度Vxyを得て、次のステップSP23に移る。
【0188】
ステップSP23においてCPU110は、操作面と指との距離が所定値以下であるか否かを判別する。
【0189】
ここで、操作面と指との距離が所定値以下であることにより、このステップSP23で肯定結果を得ると、CPU110は、ステップSP24に移る。
【0190】
ステップSP24においてCPU110は、操作面と平行な方向への指の移動速度Vxyが所定値以下であるか否かを判別する。
【0191】
ここで、操作面と平行な方向への指の移動速度Vxyが所定値以下であることにより、このステップSP24で肯定結果を得ると、このことは、キーをタッチする予備動作があったことを意味する。このときCPU110は、ステップSP25に移る。
【0192】
ステップSP25においてCPU110は、今回の近接位置のX座標及びY座標に対応する位置のキーがタップされると予測して、このキーをフォーカスする処理と、このキーに対応する文字を含んだ変換候補を辞書データから検索する処理を開始する。そしてCPU110は、再びステップSP20に戻る。
【0193】
これに対して、上述のステップSP23で、操作面と指との距離が所定値を超えていることにより、否定結果を得ると、CPU110は、ステップSP26に移る。
【0194】
ステップSP26においてCPU110は、操作面と平行な方向への指の移動速度Vxyが所定値以下であるか否かを判別する。
【0195】
ここで、操作面と平行な方向への指の移動速度Vxyが所定値以下であることにより、このステップSP26で肯定結果を得ると、このことは、キーがタッチされる可能性があることを意味する。このときCPU110は、ステップSP27に移る。
【0196】
ステップSP27においてCPU110は、今回の近接位置のX座標及びY座標に対応する位置のキーがタッチされる可能性があることから、このキーに対応する文字を含んだ変換候補を辞書データから検索する処理のみを開始する。そしてCPU110は、再びステップSP20に戻る。
【0197】
また上述のステップSP24及びステップSP25で否定結果を得ていた場合、キーがタッチされる可能性はないことから、CPU110は、何ら処理を行わずに、ステップSP20に戻る。
【0198】
一方、上述のステップSP20で、タッチパネル102Bに対して実際にタッチ操作が行われたことにより肯定結果を得ると、CPU110は、ステップSP28に移る。
【0199】
ステップSP28においてCPU110は、RAM112から、タッチされたキーに対応する文字を含んだ変換文字を読み出して、これを変換文字表示領域200Bに表示した後、ステップSP20に戻る。尚、このとき、タッチされたキーに対応する文字を含んだ変換文字を検索する処理がまだ終了していなかった場合には、この処理が終了した後に、検索結果として得られた変換候補を表示するようにする。
【0200】
また一方、上述のステップSP21で、指の近接を検知していないことにより否定結果を得ると、CPU110は、ステップSP29に移る。
【0201】
ステップSP29においてCPU110は、この時点で、キーをフォーカスしているか否かを判別する。
【0202】
ここで、キーをフォーカスしていることにより肯定結果を得ると、このことは、直前までキーをタッチしていた指が、操作面から離れたことを意味する。このときCPU110は、ステップSP30に移る。
【0203】
ステップSP30においてCPU110は、フォーカスを解除して、ステップSP20に戻る。また上述のステップSP29で否定結果を得た場合、CPU110は、ステップSP20に戻る。
【0204】
このような操作予測処理手順RT2にしたがって、携帯端末100のCPU110は、キーのタッチを予測して、キーをフォーカスする処理と、変換候補を検索する処理を、実際にキーがタッチされる前に開始しておくようになっている。
【0205】
[2−3.動作及び効果]
以上の構成において、携帯端末100のCPU110は、タッチパネル102Bに近接する指の位置(近接位置)とその変移から、タッチパネル102Bの操作面と指との距離と、操作面に平行する方向への指の移動速度Vxyを得る。
【0206】
CPU110は、距離が所定値以下で、且つ移動速度Vxyが所定値以下の場合に、すなわち、操作面と平行な方向への移動速度が低下しつつ、指が操作面に近づいた場合に、キーがタッチされると予測する。
【0207】
そしてCPU110は、実際にキーがタッチされる前に、キーをフォーカスする処理と、キーに対応する文字を含んだ変換候補を検索する処理とを開始するようにした。
【0208】
こうすることで、携帯端末100は、実際にキーがタッチされてから、これらの処理を開始する場合と比して、実際にキーがタッチされてから、これらの処理が完了するまでの時間を短縮することができる。
【0209】
また、CPU110は、操作面と指との距離が所定値以下であっても、操作面と平行な方向への指の移動速度Vxyが所定値を越えている限り、キーをフォーカスしないようにした。
【0210】
こうすることで、ユーザが、例えば或るキーをタッチして指を離した後、この指を、次にタッチするキーまで移動させるときに、この移動経路上に存在する全てのキーをフォーカスしてしまうようなことを防止することができる。すなわち、ユーザがタッチしようとしているキーのみをフォーカスすることができる。これにより、文字入力時の処理不可を低減させることができると共に、操作性を向上させることができる。
【0211】
以上の構成によれば、携帯端末100は、ユーザが実際にキーをタッチしてから、対応する処理が完了するまでの時間を短縮することができ、かくして、従来と比して一段とタッチ操作に対する応答性を向上させることができる。
【0212】
<3.第3の実施の形態>
次に第3の実施の形態について説明する。この第3の実施の形態では、携帯端末100のタッチパネル102B裏に圧力センサを配置するようになっている。そして携帯端末100が、この圧力センサによりタッチスクリーン102が指等で押し込まれたときの圧力(これを押圧力とも呼ぶ)を検知して、これをもとにタッチスクリーン102に対する押込操作が行われたか判別するようになっている。尚、押込操作とは、タッチスクリーンを指で押し込んで行う操作のことである。
【0213】
またこの第3の実施の形態の携帯端末100を、第1及び第2の実施の形態の携帯端末と区別するため、以下、携帯端末100xと呼ぶ。
【0214】
[3−1.携帯端末のハードウェア構成]
まず図17を用いて、携帯端末100xのハードウェア構成について説明する。尚、携帯端末100xの外観構成は、第1及び第2の実施の形態の携帯端末100と同様であるので、第1の実施の形態を参照とする。
【0215】
この携帯端末100xは、携帯端末100に圧力センサ300を追加したハードウェア構成でなり、圧力センサ300以外のハードウェア構成については、第1及び第2の実施の形態の携帯端末100と同様である。ゆえに、ここでは、主に圧力センサ300について説明する。
【0216】
圧力センサ300は、例えば、タッチパネル102Bと液晶パネル102Aとの間に配置され、タッチスクリーン102に対する押圧力に応じて、例えば、0〜255までの値(これを圧力値とも呼ぶ)を出力するようになっている。
【0217】
CPU110は、この圧力センサ300から得られる圧力値を監視して、この圧力値が増加して閾値を超えると、操作面に対する押し込みが開始されたと判別し、その後、この圧力値が減少して閾値以下になると、押し込みが終了したと判別する。
【0218】
そしてCPU110は、押し込みが終了したと判別すると、タッチスクリーン102に対する押込操作が行われたと認識して、これを操作入力として受け付け、この操作入力に応じた処理を実行する。
【0219】
具体的に、CPU110が認識する押込操作としては、例えば、タッチスクリーン102の任意の箇所を指で押し込む操作があり、この操作を、以下、押込タップとも呼ぶ。
【0220】
この第3の実施の形態では、第1及び第2の実施の形態で説明したタップによる操作入力を、押込タップによる操作入力に置き換えるようになっている。
【0221】
すなわち、例えば、タッチスクリーン102にブラウザアイコンが表示された状態で、ユーザが、このブラウザアイコンを押込タップしたとする。
【0222】
するとCPU110は、この押込操作を、Webブラウザを起動する操作入力として受け付け、Webブラウザを起動する。
【0223】
また、例えば、タッチスクリーン102にソフトウェアキーボードが表示された状態で、ユーザが、このソフトウェアキーボードを構成する複数のキーのうちの1つを押込タップしたとする。
【0224】
するとCPU110は、この押込操作を、押込タップされたキーに対応する文字を入力する操作入力として受け付け、この文字を液晶パネル102Aに表示させる。
【0225】
くわえて、この携帯端末100xでは、タッチスクリーン102に接触している指の動きと、指による押圧力の変化とをもとに、各種操作(タッチ操作、押込操作等)を予測して、各種操作に対応する処理を開始するようになっている。
【0226】
以下、各種操作の予測について詳しく説明する。
【0227】
[3−2.各種操作の予測]
ここで、まず、タッチパネル102Bに接触している指の動き、すなわちタッチ位置の変位と、タッチパネル102Bに対する押圧力の変化とをもとに、押込操作の1つである押込タップを予測する場合について説明する。
【0228】
尚、タッチ位置については、図6に示したXYZ空間のXY平面上での座標として検知され、押圧力については、圧力センサ300からの圧力値として検知される。
【0229】
実際、ユーザは、タッチパネル102Bの操作面を押込タップする場合、図18に示すように、操作面の任意の箇所を押し込み、少なくとも圧力値が押込閾値を超えるまで押し込んだ後、押し込みを終える動作を行う。
【0230】
そこで、携帯端末100xは、操作面の任意の箇所を押し込み始める動きを検出したときに、ユーザが、操作面を押込タップすると予測するようになっている。
【0231】
具体的に、CPU110は、図19に示すように、一定時間Tごとにタッチ位置と圧力値を検知する。このとき、CPU110は、前回の圧力値と、今回の圧力値とをもとに、圧力値の変化量を算出する。この変化量は、一定時間T内での押圧力の変化量を表す。
【0232】
そしてCPU110は、圧力値の変化量をもとに、圧力値の傾き(すなわち圧力値の変化量/一定時間T)を算出する。この傾きは、その符号が「+」であれば、圧力値が増加していることを意味し、「−」であれば、圧力値が減少していることを意味する。さらにこの傾きは、その絶対値が、圧力値が増減する速さを表す。
【0233】
ゆえに、圧力値の傾きから、押圧力がどの程度の速さで増加しているのか、また減少しているのかがわかる。
【0234】
さらに、CPU110は、前回のタッチ位置のX座標及びY座標と、今回のタッチ位置のX座標及びY座標をもとに、一定時間T内でのタッチ位置のXY平面(すなわち操作面と平行な面)上での移動ベクトルを算出する。この移動ベクトルは、一定時間T内での操作面上での指の移動量と移動方向を表す。
【0235】
つまり、この移動ベクトルから、指がどの方向にどれだけ移動しているのかがわかる。
【0236】
そしてCPU110は、このようにして得られた、一定時間T内での圧力値の傾きと、XY平面上での移動ベクトルとをもとに、操作面に対して、任意の箇所を押し込み始める動作が行われたかどうかを判別する。
【0237】
すなわち、CPU110は、一定時間T内での圧力値の傾きが「+」で絶対値が所定値以上であり、且つXY平面上での指の移動量が所定量以下である場合に、任意の箇所を押し込み始める動作が行われたと判別する。
【0238】
換言すれば、CPU110は、指が、操作面と平行な方向にはほとんど移動することなく、指による押圧力が急激に増加している場合に、任意の箇所を押し込み始める動作が行われたと判別する。
【0239】
実際、図19の例では、タッチ位置P1を検知した時点t1から一定時間T経過後の、タッチ位置P2を検知した時点t2で、圧力値の傾きが「+」で絶対値が所定値以上であり、且つXY平面上での移動量が所定量以下となる。
【0240】
ゆえに、CPU110は、この時点t2で、任意の箇所を押し込み始める動作があったと判別して、タッチ位置P2のX座標及びY座標に対応する操作面上の位置が押込タップされると予測する。そしてCPU110は、この押込タップに対応する処理をこの時点t2から開始する。
【0241】
ここで、例えば、タッチ位置P2のX座標及びY座標に対応する操作面上の位置に、Webページのリンクが表示されているとする。
【0242】
この場合、CPU110は、時点t2で、リンクが押込タップされることを予測すると、BG処理として、リンク先のWebページのページデータの受信を開始する。そしてCPU110は、受信したページデータをRAM112に記憶していく。
【0243】
その後、CPU110は、時点t2から一定時間T経過後のt3でタッチ位置P3を検知したときに、このときの圧力値が押込閾値を超えていることにより、操作面が押し込まれていると判別する。
【0244】
さらにCPU110は、時点t4〜t6までの間、操作面が押し込まれていると判別し続けた後、時点t6から一定時間経過後のt7でタッチ位置P7を検知したときに、圧力値が押込閾値以下になったことにより、押し込みが終了したと判別する。
【0245】
そしてCPU110は、この時点t7で、実際にリンクが押込タップされたと認識する。するとCPU110は、この時点t7までにRAM112に記憶させたページデータを読み出し、このページデータに基づくリンク先のWebページを、Webブラウザ画面に表示させる。
【0246】
このように、CPU110は、実際にリンクが押込タップされたと認識する前の時点t2で、タッチ位置の変位と押圧力の変化とから、リンクが押込タップされることを予測して、リンク先のページデータの受信を開始するようにした。
【0247】
こうすることで、従来のように、実際にリンクが押込タップされたと認識した時点t7で、リンク先のページデータの受信を開始する場合と比して、この時点t7からリンク先のWebページが表示されるまでの時間を短縮できる。
【0248】
尚、CPU110は、例えば、実際にリンクが押込タップされたと認識する前に、ページデータの受信が完了したとしても、実際にリンクが押込タップされたと認識するまでは、リンク先のWebページを表示しないようになっている。
【0249】
つまり、CPU110は、リンクの押込タップに対応する処理(ページデータの受信+Webページの表示)の中で、バックグラウンドで先に実行できるBG処理(ページデータの受信)のみを実行するようになっている。
【0250】
こうすることで、万が一、予測が外れてリンクが押込タップされなかったにも関わらずリンク先のWebページを表示してしまうような状況を回避することができ、ユーザが不利益を被らないようになっている。
【0251】
またCPU110は、例えば、リンクの押込タップを予測した時点t2から、所定時間経過しても、実際に押込タップが行われたことを認識できなかった場合には、予測が外れたとして、ページデータの受信を停止するようにもなっている。
【0252】
こうすることで、予測が外れたにも関わらず、予測した押込タップに対応する処理を無駄に継続してしまうような状況を回避することができる。
【0253】
次に、タッチパネル102Bに接触している指の動き、すなわちタッチ位置の変位と、タッチパネル102Bに対する押圧力の変化とをもとに、タッチ操作の1つであるフリックを予測する場合について説明する。
【0254】
尚、この場合もタッチ位置については、図6に示したXYZ空間のXY平面上での座標として検知され、押圧力については、圧力センサ300からの圧力値として検知される。
【0255】
実際、ユーザは、操作面をフリックする場合、図20に示すように、操作面を指でタッチして、この指を操作面上で滑らせてから離す動作を素早く行う。尚、このとき、ユーザが意図しなくとも、操作面はタッチしている指によりこの指が離されるまで押し込まれることになる。
【0256】
そこで、携帯端末100は、操作面に対して、指を素早く滑らせながら指を離そうとする動きを検出したときに、操作面がフリックされると予測する(すなわちフリックの動作が終了すると予測する)ようになっている。
【0257】
具体的に、CPU110は、押込タップを予測したときと同様、図21に示すように、一定時間Tごとにタッチ位置と圧力値を検知する。
【0258】
そしてCPU110は、このようにして得られた、タッチ位置と圧力値とをもとに、操作面に対して、指を素早く滑らせながら指を離そうとする動作が行われたかどうかを判別する。
【0259】
すなわち、CPU110は、圧力値が、フリック時に予想されるフリック閾値を一旦超えてからフリック閾値以下にまで減少し、指の移動方向が直線的で且つ移動量が所定量以上である場合に、上述の動作が行われたと判別する。
【0260】
換言すれば、CPU110は、指による押圧力が弱まってきて、且つ操作面をタッチしている指が直線的に素早く移動している場合に、指を素早く滑らせながら指を離そうとする動作が行われたと判別する。
【0261】
実際、図21の例では、タッチ位置P1を検知した時点t1で、圧力値がフリック閾値以下となり、以降、圧力値が減少していく。
【0262】
ここで、CPU110は、圧力値がフリック閾値以下となった(すなわち押圧力が弱まってきた)時点t1以降、タッチ位置の変位をもとに、指の移動方向が直線的で且つ移動量が所定量以上であるか否かを判別する。
【0263】
具体的に、CPU110は、時点t1のタッチ位置P1から時点t2のタッチ位置P2への移動ベクトルを算出して、さらにタッチ位置P1から時点t3のタッチ位置P3への移動ベクトルを算出する。
【0264】
CPU110は、これら2つの移動ベクトルから、タッチ位置P1からP2への移動方向とタッチ位置P2からP3への移動方向とがなす角度αを得る。
【0265】
さらにCPU110は、タッチ位置P1、P2、P3の座標から、タッチ位置P1からP2への移動量La及びタッチ位置P2からP3への移動量Lbを得る。
【0266】
ここで、角度αが所定範囲以内(例えば−15度から+15度)で、且つ移動量La及びLbが共に所定量以上であれば、操作面をタッチしている指が直線的に素早く移動していることを意味する。
【0267】
実際、図21の例では、時点t3で、角度αが所定範囲以内で、且つ移動量La及びLbが共に所定量以上となる。
【0268】
ゆえに、CPU110は、この時点t3で、指を素早く滑らせながら指を離そうとする動作があったと判別して、このときの移動ベクトルが示す方向(すなわちタッチ位置P2からP3への移動方向)にフリックされると予測する。そしてCPU110は、このフリックに対応する処理をこの時点t3から開始する。
【0269】
ここで、例えば、液晶パネル102Aに、任意の画像が表示されているとする。この場合、CPU110は、時点t3で、このときの移動ベクトルが示す方向にフリックされることを予測すると、BG処理として、画像データの読み出しを開始する。
【0270】
ここで、CPU110は、例えば、操作面の上方向へのフリックを予測した場合、表示中の画像の前の画像に対応する画像データの読み出しを開始する。これに対して、例えば、操作面の下方向へのフリックを予測した場合、CPU110は、表示中の画像の次の画像に対応する画像データの読み出しを開始する。そしてCPU110は、読み出した画像データをRAM112に記憶していく。
【0271】
その後、CPU110は、時点t3より後の時点t6で、指が操作面から離れたことを認識することにより、実際に任意の方向にフリックされたと認識する。
【0272】
するとCPU110は、この時点t6までにRAM112に記憶させた画像データを読み出し、FG処理として、この画像データに基づく画像を液晶パネル102Aに表示させる。
【0273】
このように、CPU110は、実際に任意の方向へのフリックが終了する前の時点t3で、操作面に接触している指の動きと押圧力から、任意の方向にフリックされることを予測して、画像データの読み出しを開始するようにした。
【0274】
こうすることで、従来のように、実際にフリックされた時点t6で、画像データの読み出しを開始する場合と比して、実際にフリックされた時点t6から、前もしくは次の画像が表示されるまでの時間を短縮できる。
【0275】
尚、CPU110は、例えば、実際にフリックされる前に、画像データの読み出しが完了したとしても、実際にフリックされるまでは、画像を表示しないようになっている。
【0276】
つまり、CPU110は、フリックに対応する処理(画像データの読み出し+画像の表示)の中で、バックグラウンドで先に実行できるBG処理(画像データの読み出し)のみを実行するようになっている。
【0277】
こうすることで、万が一、予測が外れてフリックされなかったにも関わらずFG処理を実行して次の画像を表示してしまうような状況を回避することができ、ユーザに不利益が生じないようになっている。
【0278】
またCPU110は、例えば、フリックを予測した時点t3から、所定時間経過しても、実際にフリックが行われなかった場合には、予測が外れたとして、画像データの読み出しを停止するようにもなっている。
【0279】
こうすることで、予測が外れたにも関わらず、予測したフリックに対応する処理を無駄に継続してしまうような状況を回避することができる。
【0280】
次に、タッチ位置の変位と押圧力の変化とをもとに、タッチ操作の1つであるドラッグを予測する場合について説明する。
【0281】
実際、ユーザは、操作面をドラッグする場合、図22に示すように、操作面を指でタッチして、この指を操作面上で滑らせてから離す動作を行う。尚、このとき、ユーザが意図しなくとも、操作面はタッチしている指によりこの指が離されるまで押し込まれることになる。
【0282】
このドラッグの動作は、フリックの動作とほぼ同じであるが、フリックの動作と比して指を滑らせる速度が遅くなることから、押圧力の最大値が小さくなる。またドラッグの動作では、最終的に所望の位置で指を離すことになることから、指を離す直前のタッチ位置の変位が少ない。
【0283】
そこで、携帯端末100は、操作面に対して、指を滑らせた後に任意の位置で指を離そうとする動きを検出したときに、操作面がドラッグされると予測する(すなわちドラッグの動作が終了すると予測する)ようになっている。
【0284】
具体的に、CPU110は、フリックを予測したときと同様、図23に示すように、一定時間Tごとにタッチ位置と圧力値を検知する。
【0285】
そしてCPU110は、このようにして得られた、タッチ位置と圧力値とをもとに、操作面に対して、指を滑らせた後に任意の位置で指を離そうとする動作が行われたかどうかを判別する。
【0286】
すなわち、CPU110は、圧力値が、ドラッグ時に予想されるドラッグ閾値(<フリック閾値)を一旦超えてからドラッグ閾値以下にまで減少し、指の移動が局所的である場合に、上述の動作が行われたと判別する。尚、押込タップと区別する為、例えば、圧力値がドラッグ閾値を超えてからドラッグ閾値以下になるまでのタッチ位置の移動量が所定量以上あることも条件とする。
【0287】
換言すれば、CPU110は、指による押圧力が弱まってきて、且つ操作面をタッチしている指がほとんど移動しなくった場合に、指を滑らせた後に任意の位置で指を離そうとする動作が行われたと判別する。
【0288】
実際、図23の例では、タッチ位置P1を検知した時点t1で、圧力値がドラッグ閾値以下となり、以降、圧力値が減少していく。
【0289】
ここで、CPU110は、圧力値がドラッグ閾値以下となった(すなわち押圧力が弱まってきた)時点t1以降、タッチ位置の変位をもとに、指の移動が局所的であるか否かを判別する。
【0290】
具体的に、CPU110は、時点t1のタッチ位置P1から時点t2のタッチ位置P2への移動ベクトルを算出して、さらにタッチ位置P1から時点t3のタッチ位置P3への移動ベクトルを算出する。
【0291】
CPU110は、これら2つの移動ベクトルから、タッチ位置P1からP2への移動方向とタッチ位置P2からP3への移動方向とがなす角度αを得る。
【0292】
さらにCPU110は、タッチ位置P1、P2、P3の座標から、タッチ位置P1からP2への移動量La及びタッチ位置P2からP3への移動量Lbを得る。
【0293】
ここで、角度αが所定範囲(例えば−15度から+15度)を超えていて、且つ移動量La及びLbが共に所定量より小さければ、操作面をタッチしている指がほとんど移動していないことを意味する。
【0294】
実際、図23の例では、時点t3で、角度αが所定範囲を超えていて、且つ移動量La及びLbが共に所定量より小さくなる。
【0295】
ゆえに、CPU110は、この時点t3で、指を滑らせた後に任意の位置で指を離そうとする動作があったと判別して、このときのタッチ位置でドラッグされると予測する。そしてCPU110は、このドラッグに対応する処理をこの時点t3から開始する。
【0296】
この場合も、CPU110は、このときのタッチ位置でのドラッグに対応する処理のうち、BG処理のみを開始する。
【0297】
その後、CPU110は、時点t3より後の時点t4で、指が操作面から離れたことを認識することにより、実際に任意の方向にドラッグされたと認識する。するとCPU110は、この時点t4から、FG処理を開始する。
【0298】
このように、CPU110は、実際にドラッグが終了する前の時点t3で、操作面に接触している指の動きと押圧力から、ドラッグされることを予測して、ドラッグに対応する処理のうちのBG処理を開始するようにした。
【0299】
こうすることで、従来のように、実際にドラッグされた時点t4で、ドラッグに対応する処理を開始する場合と比して、実際にドラッグされた時点t4から処理が終了するまでの時間を短縮できる。
【0300】
尚、CPU110は、例えば、実際にドラッグされる前に、BG処理が完了したとしても、実際にドラッグされるまでは、FG処理を開始しないようになっている。
【0301】
こうすることで、万が一、予測が外れてドラッグされなかったにも関わらずFG処理を実行してしまうような状況を回避することができ、ユーザに不利益が生じないようになっている。
【0302】
またCPU110は、例えば、ドラッグを予測した時点t3から、所定時間経過しても、実際にドラッグが行われなかった場合には、予測が外れたとして、画像データの読み出しを停止するようにもなっている。
【0303】
こうすることで、予測が外れたにも関わらず、予測したドラッグに対応する処理を無駄に継続してしまうような状況を回避することができる。
【0304】
次に、タッチ位置の変位と押圧力の変化をもとに、タッチスクリーン102に表示させたソフトウェアキーボードのキーに対する押込タップを予測する場合について説明する。
【0305】
携帯端末100xのCPU110は、第2の実施の形態と同様、文字入力を行う為の画面として、図13に示す文字入力画面200を、液晶パネル102Aに表示させるようになっている。
【0306】
この文字入力画面200は、入力された文字を表示する文字表示領域200Aと、文字の変換候補を表示する変換候補表示領域200Bと、ソフトウェアキーボードを表示するキー表示領域200Cとで構成される。
【0307】
キー表示領域200Cには、ソフトウェアキーボードとして、QWERTY配列で並べられた複数のキーが表示される。
【0308】
そしてこの文字入力画面200では、キー表示領域200Cに表示されているキーのうちの1つが押込タップされると、このキーに対応する文字が、文字表示領域200Aに表示される。
【0309】
またこの文字入力画面200では、キーが押込タップされると、このキーに対応する文字を含んだ変換候補が、変換候補表示領域200Bに表示される。
【0310】
そして、文字表示領域200Aに表示されている文字の入力が確定する前に、変換候補表示領域200Bに表示されている変換候補のうちの1つが押込タップされると、この変換候補が文字表示領域200Aに表示される。
【0311】
CPU110は、このような文字入力画面200を液晶パネル102Aに表示させた状態で、タッチ位置の変位と押圧力の変化とをもとに、キーの押込タップを予測するようになっている。
【0312】
実際、ユーザは、文章を入力する場合、タッチパネル102Bの操作面をタッチしたまま指を所望のキーの上に素早く移動させてからキーを少なくとも圧力値が押込閾値を超えるまで押し込んだ後、押し込みを終える動作を繰り返す。
【0313】
そこで、携帯端末100は、操作面と平行な方向への指の移動速度が落ちて、且つキーを押し込み始める動きがあった場合に、ユーザが、キーを押込タップすると予測するようになっている。
【0314】
具体的に、CPU110は、図24に示すように、一定時間Tごとにタッチ位置と圧力値を検知する。
【0315】
さらに、CPU110は、前回のタッチ位置のX座標及びY座標と、今回のタッチ位置のX座標及びY座標とをもとに、一定時間T内でのタッチ位置のXY平面上での移動ベクトルを算出する。この移動ベクトルは、一定時間T内での指の移動量(すなわち移動速度Vxy)と移動方向を表す。すなわち、この移動ベクトルから、現在、指が、操作面上でどの程度の速さでどの方向に移動しているのかがわかる。
【0316】
CPU110は、このようにして得られた、圧力値と、移動ベクトルとをもとに、操作面と平行な方向への指の移動速度が落ちて、且つキーを押し込み始める動作が行われたかどうかを判別する。
【0317】
すなわち、CPU110は、指の移動速度Vxyが所定値以下で、圧力値が所定値(これをフォーカス閾値とも呼び、押込閾値よりも小さな値に設定される)を超えた場合に、上述の動作が行われたと判別する。
【0318】
実際、図24の例では、タッチ位置P1を検知した時点t1で、指の移動速度Vxyが所定値以下で、圧力値がフォーカス閾値を超える。
【0319】
ゆえに、CPU110は、この時点t1で、操作面と平行な方向への指の移動速度が落ちて、キーを押し込み始める動作があったと判別して、キーが押込タップされると予測する。
【0320】
さらに、CPU110は、前回のタッチ位置P0から今回のタッチ位置P1への移動ベクトルと、現在のタッチ位置P1のX座標及びY座標とをもとに、どのキーが押込タップされるかを特定する。
【0321】
具体的には、例えば、このときの移動速度Vxyが設定された値未満であれば、現在のタッチ位置P1のX座標及びY座標に対応する位置のキーが押込タップされると特定する。また一方で、このときの移動速度Vxyが設定された値以上であれば、この移動速度Vxyをもとに、前回のタッチ位置P0と今回のタッチ位置P1とを結ぶ線分の延長線上に位置するキーの1つが押込タップされると特定する。
【0322】
このようにCPU110は、指の移動速度Vxyを考慮して、押込タップされるキーを特定する。
【0323】
そしてCPU110は、このキーの押込タップに対応する処理をこの時点t1から開始する。
【0324】
具体的に、CPU110は、押込タップされると予測したキーをフォーカスする処理と、このキーに対応する文字を含んだ変換候補を、不揮発性メモリ111に記憶している辞書データから検索する処理を開始する。そしてCPU110は、検索結果として得られた変換候補をRAM112に記憶していく。
【0325】
その後、CPU110は、時点t1より後の時点t2でタッチ位置P2を検知したときに、このときの圧力値が押込閾値を超えていることにより、操作面が押し込まれていると判別する。
【0326】
さらにCPU110は、時点t2より後の時点t4でタッチ位置P4を検知したときに、このときの圧力値が押込閾値以下になったことにより、押し込みが終了したと判別する。
【0327】
そしてCPU110は、この時点t4で、実際にキーが押込タップされたと認識する。
【0328】
するとCPU110は、押込タップされたキーに対応する文字を、文字表示領域200Aに表示させると共に、RAM112に記憶させた変換候補を読み出し、これを、変換候補表示領域200Bに表示させる。
【0329】
このように、CPU110は、実際にキーが押込タップされる前の時点t1で、操作面に接触している指の動きと押圧力の変化から、キーが押込タップされることを予測して、フォーカスする処理と、変換候補を検索する処理とを開始するようにした。
【0330】
こうすることで、実際にキーが押込タップされた時点t4で、これらの処理を開始する場合と比して、実際にキーが押込タップされた時点t4から、これらの処理が終了するまでの時間を短縮できる。
【0331】
また、CPU110は、圧力値がフォーカス閾値を超えていても、操作面と平行な方向への指の移動速度Vxyが所定値を越えている限り、キーをフォーカスしないようにした。
【0332】
すなわち、指が押し込まれていても、指が操作面と平行な方向に素早く移動していれば、単にキーの上を指が通過しているだけであるので、キーをフォーカスしないようになっている。
【0333】
こうすることで、ユーザが、例えば或るキーを押込タップした後、この指を、次に押込タップするキーまで滑らせるときに、この移動経路上に存在する全てのキーをフォーカスしてしまうようなことを防止することができる。
【0334】
ところで、圧力値がフォーカス閾値以下であり、操作面と平行な方向への指の移動速度Vxyが所定値以下となるようなとき、すなわち操作面と平行な方向への指の移動速度は低下したものの、操作面が指で押し込まれていないときがある。この場合、キーが押込タップされると断定することはできないが、キーが押込タップされる可能性はあると考えられる。
【0335】
そこで、このときCPU110は、タッチ位置のX座標及びY座標に対応する位置のキーに対応する文字を含んだ変換候補を辞書データから検索する処理(BG処理)のみを開始して、フォーカスする処理(FG処理)は行わないようになっている。
【0336】
ここまで説明したように、携帯端末100xは、タッチ位置の変位と押圧力の変化をもとに、ユーザが押込タップやフリックなどの操作を終了する前に、これらを予測して対応する処理を開始しておくようにした。
【0337】
こうすることで、従来のように、実際に押込タップやフリックなどの操作が終了してから対応する処理を開始する場合と比して、実際に押込タップやフリックなどの操作が行われてから対応する処理が終了するまでの時間を短縮することができる。
【0338】
[3−3.操作予測処理手順]
次に、携帯端末100xが、各種操作を予測するときの具体的な処理の手順(操作予測処理手順)について説明する。
【0339】
まず図25に示すフローチャートを用いて、上述した押込タップ、フリック、ドラッグを予測する場合の操作予測処理手順RT3から説明する。
【0340】
尚、この操作予測処理手順RT3は、携帯端末100xのCPU110が、不揮発性メモリ111に格納されているプログラムにしたがって実行する処理の手順である。
【0341】
CPU110は、例えば、携帯端末100xの電源がオンされると、操作予測処理手順RT3を開始して、ステップSP100に移る。ステップSP100においてCPU110は、タッチパネル102Bに対して実際に各種操作(押込タップ、フリック、ドラッグ)が行われたか否かを判別する。
【0342】
ここで、タッチパネル102Bに対して実際に各種操作が行われていないことによりこのステップSP100で否定結果を得ると、CPU110は、ステップSP101に移る。
【0343】
ステップSP101においてCPU110は、現在、予測した各種操作に対応するBG処理を実行中であるか否かを判別する。
【0344】
ここで、予測した各種操作に対応するBG処理が実行されていないことにより、このステップSP101で否定結果を得ると、CPU110は、ステップSP102に移る。
【0345】
ステップSP102においてCPU110は、タッチパネル102Bに対する指の接触を検知したか否かを判別する。
【0346】
ここで、指の接触を検知したことにより、このステップSP102で肯定結果を得ると、CPU110は、ステップSP103に移る。
【0347】
ステップSP103においてCPU110は、今回のタッチ位置及び圧力値と、前回のタッチ位置及び圧力値とから、操作面に接触している指の動きと押圧力の変化を特定して、次のステップSP104に移る。
【0348】
ステップSP104においてCPU110は、ステップSP104で特定した、操作面に接触している指の動きと押圧力の変化から、各種操作が予測できたか否かを判別する。
【0349】
ここで、例えば、ステップSP104で特定した指の動きと押圧力の変化から、押込タップが予測できたとする。するとCPU110は、このステップSP104で肯定結果を得て、ステップSP105に移る。
【0350】
ステップSP105においてCPU110は、予測した操作に対応するBG処理を開始して、再びステップSP100に戻る。
【0351】
一方、上述のステップSP101で、予測した操作に対応するBG処理を実行中であることにより肯定結果を得ると、CPU110は、ステップSP106に移る。
【0352】
ステップSP106においてCPU110は、操作を予測してから所定時間経過したか否かを判別する。
【0353】
ここで、まだ所定時間経過していないことにより、このステップSP106で否定結果を得ると、CPU110は、再びステップSP100に戻る。
【0354】
これに対して、所定時間経過したことにより、このステップSP106で肯定結果を得ると、CPU110は、ステップSP107に移る。
【0355】
ステップSP107においてCPU110は、操作を予測してから所定時間経過しても、実際に操作が行われなかったことにより、予測した操作に対応するBG処理を停止して、再びステップSP100に戻る。
【0356】
また一方、上述のステップSP100で、タッチパネル102Bに対して実際に各種操作が行われたことにより肯定結果を得ると、CPU110は、ステップSP108に移る。
【0357】
ステップSP108においてCPU110は、この操作に対応するBG処理が終了するのを待ち受ける。そして、このBG処理が終了したことにより、このステップSP108で肯定結果を得ると、CPU110は、ステップSP109に移る。
【0358】
ステップSP109においてCPU110は、BG処理に続くFG処理を実行して、再びステップSP100に戻る。
【0359】
尚、上述のステップSP102で、指の接触を検知していないことにより否定結果を得た場合と、上述のステップSP104で操作を予測できていないことにより否定結果を得た場合も、CPU110は、再びステップSP100に戻る。
【0360】
このような操作予測処理手順RT3にしたがって、携帯端末100xのCPU110は、各種操作(押込タップ、フリック、ドラッグ)を予測して、対応するBG処理を、各種操作が実際に行われる前に開始しておくようになっている。
【0361】
次に、図26に示すフローチャートを用いて、上述したソフトウェアキーボードのキーに対する押込タップを予測する場合の操作予測処理手順RT4について説明する。
【0362】
尚、この操作予測処理手順RT4も、携帯端末100xのCPU110が、不揮発性メモリ111に格納されているプログラムにしたがって実行する処理の手順である。
【0363】
CPU110は、例えば、携帯端末100xの電源がオンされると、操作予測処理手順RT4を開始して、ステップSP110に移る。ステップSP110においてCPU110は、キーに対して実際に押込タップが行われたか否かを判別する。
【0364】
ここで、実際に押込タップが行われていないことによりこのステップSP110で否定結果を得ると、CPU110は、ステップSP111に移る。
【0365】
ステップSP111においてCPU110は、タッチパネル102Bに対する指の接触を検知したか否かを判別する。
【0366】
ここで、指の接触を検知したことにより、このステップSP111で肯定結果を得ると、CPU110は、ステップSP112に移る。
【0367】
ステップSP112においてCPU110は、押圧力の圧力値と、操作面と平行な方向への指の移動速度Vxyを得て、次のステップSP113に移る。
【0368】
ステップSP113においてCPU110は、押圧力の圧力値がフォーカス閾値を超えているか否かを判別する。
【0369】
ここで、圧力値がフォーカス閾値を超えていることにより、このステップSP113で肯定結果を得ると、CPU110は、ステップSP114に移る。
【0370】
ステップSP114においてCPU110は、操作面と平行な方向への指の移動速度Vxyが所定値以下であるか否かを判別する。
【0371】
ここで、指の移動速度Vxyが所定値以下であることにより、このステップSP114で肯定結果を得ると、このことは、操作面と平行な方向への指の移動速度が落ちて、キーを押し込み始める動作があったことを意味する。このときCPU110は、ステップSP115に移る。
【0372】
ステップSP115においてCPU110は、現在のタッチ位置と指の移動速度Vxyをもとに特定したキーが押込タップされると予測する。そしてCPU110は、このキーをフォーカスする処理と、このキーに対応する文字を含んだ変換候補を辞書データから検索する処理を開始して、再びステップSP110に戻る。
【0373】
これに対して、上述のステップSP113で、圧力値がフォーカス閾値以下であることにより、否定結果を得ると、CPU110は、ステップSP116に移る。
【0374】
ステップSP116においてCPU110は、指の移動速度Vxyが所定値以下であるか否かを判別する。
【0375】
ここで、指の移動速度Vxyが所定値以下であることにより、このステップSP116で肯定結果を得ると、このことは、キーが押込タップされる可能性があることを意味する。このときCPU110は、ステップSP117に移る。
【0376】
ステップSP117においてCPU110は、今回のタッチ位置のX座標及びY座標に対応する位置のキーがタッチされる可能性があることから、このキーに対応する文字を含んだ変換候補を辞書データから検索する処理のみを開始する。そしてCPU110は、再びステップSP110に戻る。
【0377】
また上述のステップSP114及びステップSP115で否定結果を得ていた場合、キーがタッチされる可能性はないことから、CPU110は、何ら処理を行わずに、ステップSP110に戻る。
【0378】
一方、上述のステップSP110で、タッチパネル102Bに対して実際に押込タップが行われたことにより肯定結果を得ると、CPU110は、ステップSP118に移る。
【0379】
ステップSP118においてCPU110は、RAM112から、押込タップされたキーに対応する文字を含んだ変換文字を読み出して、これを変換文字表示領域200Bに表示した後、ステップSP110に戻る。尚、このとき、押込タップされたキーに対応する文字を含んだ変換文字を検索する処理がまだ終了していなかった場合には、この処理が終了した後に、検索結果として得られた変換候補を表示するようにする。
【0380】
また一方、上述のステップSP111で、指の接触を検知していないことにより否定結果を得ると、CPU110は、ステップSP119に移る。
【0381】
ステップSP119においてCPU110は、この時点で、キーをフォーカスしているか否かを判別する。
【0382】
ここで、キーをフォーカスしていることにより肯定結果を得ると、このことは、直前までキーをタッチしていた指が、操作面から離れたことを意味する。このときCPU110は、ステップSP120に移る。
【0383】
ステップSP120においてCPU110は、フォーカスを解除して、ステップSP110に戻る。また上述のステップSP119で否定結果を得た場合、CPU110は、ステップSP110に戻る。
【0384】
このような操作予測処理手順RT4にしたがって、携帯端末100xのCPU110は、キーの押込タップを予測して、キーをフォーカスする処理と、変換候補を検索する処理を、実際にキーが押込タップされる前に開始しておくようになっている。
【0385】
[3−4.動作及び効果]
以上の構成において、携帯端末100xのCPU110は、一定時間Tごとにタッチ位置を検知することにより、タッチ位置の変位、すなわちタッチスクリーン102に接触している指の動きを検出する。
【0386】
さらにCPU110は、一定時間Tごとに圧力値を検知することにより、タッチスクリーン102に接触している指による押圧力の変化を検出する。
【0387】
そしてCPU110は、指の動きと押圧力の変化から、押込操作等の各種操作(押込タップ、フリック、ドラッグ)が行われることを予測して、実際に各種操作が行われる前に、各種操作に対応する処理を開始するようにした。
【0388】
こうすることで、携帯端末100xは、実際に各種操作が行われてから各種操作に対応する処理を開始する場合と比して、実際に各種操作が行われてから、対応する処理が完了するまでの時間を短縮することができる。
【0389】
以上の構成によれば、携帯端末100xは、ユーザが実際に押込操作を含めた各種操作を行ってから対応する処理が終了するまでの時間を短縮することができ、かくして、従来と比して一段と押込操作を含めた各種操作に対する応答性を向上させることができる。
【0390】
<4.他の実施の形態>
[4−1.他の実施の形態1]
尚、上述した第1及び第2の実施の形態では、今回検知した近接位置と、前回検知した近接位置とから、タッチパネル102Bに近接している指の動きを特定するようにした。
【0391】
これに限らず、例えば、図27に示すように、今回検知した近接位置P2と、前々回検知した近接位置P0とから、タッチパネル102Bに近接している指の動きを特定するようにしてもよい。
【0392】
実際、近接位置及びタッチ位置の検知間隔(すなわち所定時間T)が短いと、今回の近接位置と前回の近接位置との差が小さくなり、指の動きを特定し難くなる。
【0393】
ゆえに、今回の近接位置と、前々回の近接位置もしくはさらに過去の近接位置とから、指の動きを特定するようにしてもよく、こうした方が、指の動きをより正確に特定し得る場合がある。
【0394】
[4−2.他の実施の形態2]
また、上述した第2の実施の形態では、現在の近接位置のZ座標(すなわち操作面と指との距離)と、操作面と平行な方向への指の移動速度Vxyとをもとに、キーをタッチするときの予備動作が行われたかどうかを判別するようにした。
【0395】
これに限らず、第1の実施の形態で扱った、一定時間T内での近接位置のZ座標の傾きと、移動速度Vxyとをもとに、キータッチするときの予備動作が行われたかどうかを判別するようにしてもよい。
【0396】
この場合、操作予測処理手順RT2のステップSP23での処理を、Z座標の傾きが「−」で且つ絶対値が所定値以上であるか否か(すなわち一定以上の速さで指が操作面に近づいているか否か)を判別する処理に変えればよい。
【0397】
[4−3.他の実施の形態3]
さらに、上述した第2の実施の形態では、キーのタッチを予測するときに、近接位置のZ座標が所定値以下であるかどうかを判別して、さらに操作面と平行な方向への指の移動速度Vxyが所定値以下であるかどうかを判別するようにした。
【0398】
これに限らず、移動速度Vxyに応じて、Z座標の条件となる所定値を変化させるようにして、Z座標がこのようにして変動する所定値以下であるかどうかにより、キーのタッチを予測するようにしてもよい。
【0399】
例えば、移動速度Vxyが速くなるほど、Z座標の条件となる所定値を小さくするようにする。
【0400】
この場合、ユーザが指を速く動かしている場合には、指と操作面とが近いときにのみキーがタッチされると予測し、ユーザが指をゆっくり動かしている場合には、指と操作面とがある程度離れていてもキーがタッチされると予測することになる。
【0401】
このようにしても、十分正確にキーのタッチを予測することができ、タッチ操作に対する応答性を向上させることができる。
【0402】
[4−4.他の実施の形態4]
さらに、上述した第1及び第2の実施の形態では、タッチパネル102Bに近接している指の動きから、タッチ操作としてのタップ、フリック、タッチを予測するようにした。
【0403】
これに限らず、この他種々のタッチ操作(例えば、ドラッグ、ピンチイン、ピンチアウト)を、タッチされる直前の指の動きの特徴から、予測するようにしてもよい。
【0404】
例えば、2本の指を、或る程度離した状態で、ほぼ垂直に素早く下ろす、もしくは互いに近づくように斜めに素早く下ろす動きがあった場合に、ピンチインが行われると予測するなどしてもよい。
【0405】
この場合、CPU110は、予測した時点で、ピンチインに対応する処理を開始する。
【0406】
またこれに限らず、タッチパネル102Bに近接している指の動きから、近接操作を予測するようにしてもよい。
【0407】
例えば、タッチパネル102Bに指を近接させて、円を描くように動かす近接操作があるとする。
【0408】
このとき、CPU110は、例えば、タッチパネル102Bに近接している指の移動速度Vxyが所定値以上で、且つ移動の軌跡が円の一部(円弧)となった時点で、円を描くように動かす近接操作が行われると予測するようにする。
【0409】
[4−5.他の実施の形態5]
さらに、上述した第1及び第2の実施の形態では、静電容量式のタッチパネル102Bを有する携帯端末100に本発明を適用するようにした。
【0410】
これに限らず、指(指示物)の接触と近接を検知し得る操作入力デバイスであれば、液晶パネル内に光センサを内蔵した光センサ式のタッチスクリーンなど、この他種々の操作入力デバイスを有する機器に本発明を適用するようにしてもよい。
【0411】
また、指の接触と近接の両方を検知し得る操作入力デバイスに限らず、指の接触を検知し得るデバイス(例えば感圧式のタッチパネル)と、近接を検知し得るデバイス(例えば赤外線センサ)と別々に有する機器に本発明を適用するようにしてもよい。
【0412】
また液晶パネル102Aの代わりに、有機EL(Electro Luminescence)パネルなど、この他種々の表示デバイスを有する機器に本発明を適用するようにしてもよい。
【0413】
さらに、例えば、各々タッチスクリーンを有する2つの筐体がヒンジ部を介して開閉自在に連結された所謂2画面携帯端末に本発明を適用するようにしてもよい。
【0414】
この場合、CPU110は、2つのタッチスクリーンの各々のタッチパネルの出力値から、各々のタッチパネルに対するタッチ操作を予測するようにする。
【0415】
尚、これらのことは、上述した第3の実施の形態の携帯端末100xについても同様である。
【0416】
また第3の実施の形態では、タッチパネル102B裏に圧力センサを配置した携帯端末100xに本発明を適用するようにした。
【0417】
これに限らず、タッチスクリーン102に対する押圧力を検知できる検知デバイスであれば、この他種々の検知デバイスを有する機器に本発明を適用するようにしてもよい。
【0418】
また第3の実施の形態では、指の接触と押圧力とを検知できればよいので、静電容量式のタッチパネル102Bの代わりに、指の接触のみを検知できるデバイスを有する機器に適用するようにしてもよい。
【0419】
[4−6.他の実施の形態6]
さらに、上述した第2の実施の形態では、キーをタッチする予備動作があったときに、このときの近接位置のX座標及びY座標に対応する位置のキーがタッチされると予測した。
【0420】
これに限らず、例えば、このときの近接位置と前回の近接位置とを結ぶ線分の延長線上に位置するキーがタッチされると予測するなどしてもよい。
【0421】
[4−7.他の実施の形態7]
さらに、上述した第3の実施の形態では、圧力値がフォーカス閾値以下であれば、キーをタッチしていてもフォーカスしないようにした。
【0422】
これに限らず、圧力値がフォーカス閾値以下であっても、キーをタッチしている指の移動速度Vxyが所定値以下であれば、キーをフォーカスするようにしてもよい。
【0423】
[4−8.他の実施の形態8]
さらに上述した第1及び第2の実施の形態では、情報処理装置1としての携帯端末100に、接触検知部2及び近接検知部3としてのタッチパネル102Bを設けるようにした。また情報処理装置1の制御部4としてのCPU110を設けるようにした。
【0424】
本発明はこれに限らず、同様の機能を有するのであれば、上述した携帯端末100の各部を、他の種々のハードウェアもしくはソフトウェアにより構成するようにしてもよい。
【0425】
さらに本発明は、携帯端末100に限らず、デジタルスチルカメラ、据置型のパーソナルコンピュータ、ゲーム機、ポータブルオーディオプレイヤ、携帯型電話機など、この他種々の機器に適用するようにしてもよく、また適用することができる。これらのことは、第3の実施の形態の携帯端末100xについても同様である。
【0426】
[4−9.他の実施の形態9]
さらに上述した実施の形態では、各種処理を実行するためのプログラムを、携帯端末100の不揮発性メモリ111に書き込んでおくようにした。
【0427】
これに限らず、例えば、携帯端末100又は100xにメモリカードなどの記憶媒体のスロットを設け、CPU110が、このスロットに差し込まれた記憶媒体からプログラムを読み出して実行するようにしてもよい。またCPU110が、この記憶媒体から読み出したプログラムを、不揮発性メモリ111にインストールするようにしてもよい。さらにCPU110が、このプログラムを、ネットワークI/F114を介して、ネットワーク上の機器からダウンロードして、不揮発性メモリ111にインストールするようにしてもよい。
【0428】
[4−10.他の実施の形態10]
さらに、本発明は、上述した実施の形態と他の実施の形態とに限定されるものではない。すなわち本発明は、上述した実施の形態と他の実施の形態の一部または全部を任意に組み合わせた形態、もしくは一部を抽出した形態にもその適用範囲が及ぶものである。
【産業上の利用可能性】
【0429】
本発明は、タッチパネルを介して操作入力を行う機器で広く利用することができる。
【符号の説明】
【0430】
1……情報処理装置、2……接触検知部、3……近接検知部、4……制御部、100、100x……携帯端末、102……タッチスクリーン、102A……液晶パネル、102B……タッチパネル、110……CPU、300……圧力センサ。

【特許請求の範囲】
【請求項1】
操作面に対する指示物の接触を検知する接触検知部と、
上記操作面に対する指示物の近接を検知する近接検知部と、
上記接触検知部による検知結果、及び上記近接検知部による検知結果をもとに、上記操作面に対する上記指示物の動きを検出し、検出した上記指示物の動きから予測される操作入力に対応する処理を開始する制御部と
を具える情報処理装置。
【請求項2】
上記制御部は、
検出された上記指示物の動きが所定の動きであったときに、当該指示物による操作入力が行われると予測する
請求項1に記載の情報処理装置。
【請求項3】
上記制御部は、
検出された上記指示物の動きが上記所定の動きであったときに、当該指示物を操作面に接触させる操作入力が行われると予測する
請求項2に記載の情報処理装置。
【請求項4】
上記制御部は、
上記指示物の移動速度及び移動方向に基づいて、上記所定の動きを判別する
請求項3に記載の情報処理装置。
【請求項5】
上記制御部は、
上記操作面に対して垂直方向に所定速度以上で上記指示物が近づいているときに、当該指示物を操作面に接触させる操作入力が行われると予測する
請求項4に記載の情報処理装置。
【請求項6】
上記制御部は、
上記操作面に対して斜め方向に所定速度以上で上記指示物が近づいているときに、当該指示物で操作面を払う操作入力が行われると予測する
請求項4に記載の情報処理装置。
【請求項7】
上記制御部は、
上記指示物の移動速度及び移動方向と、当該指示物の操作面までの距離から、当該指示物の動きが所定の動きであるかを判別する
請求項4に記載の情報処理装置。
【請求項8】
上記制御部は、
上記指示物の操作面までの距離が所定以下で、且つ当該操作面と平行な方向への指示物の移動速度が所定以下である場合に、当該指示物を操作面に接触させる操作入力が行われると予測する
請求項7に記載の情報処理装置。
【請求項9】
上記制御部は、
上記操作入力が行われると予測したとき、上記操作入力に対応する処理のうち、バックグラウンド処理が可能な処理を開始する
請求項1に記載の情報処理装置。
【請求項10】
上記制御部は、
上記バックグラウンド処理を開始してから、所定時間経過しても、予測された上記操作入力が行われなかった場合、当該バックグラウンド処理を停止する
請求項9に記載の情報処理装置。
【請求項11】
上記制御部は、
予測された上記操作入力が行われたときに、上記バックグラウンド処理以外の処理を実行する
請求項9に記載の情報処理装置。
【請求項12】
接触検知部が操作面に対する指示物の接触を検知し、
近接検知部が上記操作面に対する指示物の近接を検知し、
上記接触検知部及び上記近接検知部による検知結果をもとに、上記操作面に対する上記指示物の動きを検出し、検出した上記指示物の動きから予測される操作入力に対応する処理を開始する
操作予測方法。
【請求項13】
情報処理装置に対し、
接触検知部が操作面に対する指示物の接触を検知し、近接検知部が当該操作面に対する指示物の近接を検知する接触近接検知ステップと、
上記接触近接検知ステップでの検知結果をもとに、上記操作面に対する上記指示物の動きを検出し、検出した上記指示物の動きから予測される操作入力に対応する処理を開始する処理開始ステップと
を実行させるための操作予測プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate


【公開番号】特開2011−170834(P2011−170834A)
【公開日】平成23年9月1日(2011.9.1)
【国際特許分類】
【出願番号】特願2010−199349(P2010−199349)
【出願日】平成22年9月6日(2010.9.6)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】