(57)【特許請求の範囲】
【請求項１】
ユーザにより入力操作が行われるタッチパネルと、
前記タッチパネルに対する前記入力操作によるタッチダウンからタッチアップまでの期間中のタッチ位置を時系列に取得する取得手段と、
前記タッチダウンの際のタッチ位置を含む、前記取得手段で取得された各タッチ位置に基づいてタッチ位置の分散を算出する算出手段と、
前記算出手段により算出された分散に基づいて、前記入力操作がムーブを含まない操作であるかムーブを含む操作であるかを判別する判別手段とを有し、
前記判別手段は、前記算出された分散が閾値より小さい場合、前記入力操作が前記ムーブを含まない操作であると判別し、前記算出された分散が前記閾値より小さくない場合、前記入力操作が前記ムーブを含む操作であると判別することを特徴とする入力装置。
【請求項２】
前記タッチダウンから所定時間が経過する前に前記タッチアップが行われると、前記判別手段は、前記算出された分散に基づいた前記判別を行うことを特徴とする請求項１に記載の入力装置。
【請求項３】
前記タッチダウンから前記タッチアップが行われる前に所定時間が経過すると、前記判別手段は、前記算出された分散に基づいた前記判別を行うことなく、前記入力操作が前記ムーブを含む操作であると判別することを特徴とする請求項１又は２に記載の入力装置  
【請求項４】
ユーザが試行的に異なる入力操作によるタッチダウンをそれぞれした際のタッチ位置の分散に基づいて閾値を算出し、該算出された閾値を前記閾値として設定する手段をさらに有することを特徴とする請求項１乃至３の何れか１項に記載の入力装置。
【請求項５】
前記タッチパネルの無効な入力操作が対応付けられている所定の領域に対して、入力操作が行われると、該入力操作を前記無効な入力操作とは異なる他の入力操作であると判別する第２の判別手段をさらに有することを特徴とする請求項１に記載の入力装置。
【請求項６】
前記算出手段は、前記タッチパネルの入力操作によるムーブが可能な方向が決められている領域に対して前記入力操作によるタッチダウンが行われると、前記取得手段で取得された各タッチ位置に基づいて、前記ムーブが可能な方向とは異なる方向へのタッチ位置の分散を算出し、
前記判別手段は、前記ムーブが可能な方向とは異なる方向へのタッチ位置の分散が該分散に対して設定されている閾値以上の場合、前記入力操作を無効とすることを特徴とする請求項１乃至３の何れか１項に記載の入力装置。
【請求項７】
ユーザにより入力操作が行われるタッチパネルを有する入力装置の制御方法であって、前記タッチパネルに対する前記入力操作によるタッチダウンからタッチアップまでの期間中のタッチ位置を時系列に取得する取得工程と、
前記タッチダウンの際のタッチ位置を含む、前記取得工程で取得された各タッチ位置に基づいてタッチ位置の分散を算出する算出工程と、
前記算出された分散が閾値より小さい場合、前記入力操作を、ムーブを含まない操作であると判別し、
前記算出された分散が前記閾値より小さくない場合、前記入力操作を、前記ムーブを含む操作であると判別する判別工程と
を有することを特徴とする入力装置の制御方法。
【請求項８】
コンピュータを、請求項１乃至６の何れか１項に記載された入力装置の各手段として機能させるためのプログラム。
【請求項９】
コンピュータを、請求項１乃至６の何れか１項に記載された入力装置の各手段として機能させるためのプログラムを格納したコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザにより入力操作が行われるタッチパネルを有する入力装置、入力装置の制御方法、プログラムおよび記憶媒体に関する。
【背景技術】
【０００２】
タッチパネルを有する入力装置は、タッチパネルに対して、ユーザにより指やペンなどを用いて入力操作が行われると、この入力操作を判別する。ここで、タッチパネルに対してユーザが指やペンなどを用いて行う入力操作は、以下のような動作（ジェスチャ）を組み合わせたものである。
（１）タッチパネルを指やペンで触れる動作（以下、タッチダウンという）
（２）指やペンがタッチパネルに触れた状態で指やペンを移動する動作（以下、ムーブという）
（３）タッチパネルから指やペンを離す動作（以下、タッチアップという）
また、タッチパネルを指やペンで触れた状態をタッチオンといい、タッチパネルに指やペンが触れていない状態をタッチオフということにする。
【０００３】
タッチパネルに対して上記動作を組み合わせて行われる入力操作としては、例えばタップ操作、ドラッグ操作、フリック操作などがある。タップ操作は、タッチパネル上の所望の領域を指またはペンなどで軽く叩くような操作、即ちタッチダウンからムーブをせずに、直ぐにタッチアップをする操作である。ドラッグ操作は、タッチダウンから、ゆっくりと物を移動させるようにムーブをした後に、タッチアップをする操作である。フリック操作は、ドラッグ操作に対して、タッチダウンから、タッチパネルに触れた状態の指またはペンをある程度の距離だけ素早く動かしてタッチパネルから離すよう操作である。換言すれば、フリック操作は、タッチパネルを指またはペンで弾くように素早くなぞる操作である。
【０００４】
このようなタッチパネルに対する入力操作が可能な入力装置に対しては、入力操作を誤りなく検出することが要求されている。
【０００５】
例えばドラッグ操作などのようにムーブを含む操作を誤りなく検出する方法として、タッチパネルの感応量の変化量を算出し、この感応量の変化量に基づいて左方向へのムーブか右方向へのムーブかを判定する方法がある（特許文献１参照）。
【０００６】
また、ユーザがタッチダウンをした際に、当該タッチダウンをした位置を中心として所定の大きさの領域（微小の大きさの領域）を設定し、当該設定された領域の外へのムーブがあると、当該ムーブを有効とする判定する方法がある（特許文献２参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特登録０４０７３４４８号
【特許文献２】特開平０６-１６１６４７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来の検出方法は、ユーザがタップ操作を行った際のユーザが意図しないタッチオン中の指またはペンの微小な動きを検出し、このタップ操作を、ムーブを含む操作（例えばドラッグ操作、フリック操作など）と誤判別する場合がある。これにより、ユーザの意図とは異なる操作が入力され、ユーザの意図とは異なる処理が実行されることがある。
【０００９】
本発明の目的は、ムーブを含まない操作を、ムーブを含む操作と誤判別することなく、ユーザが意図した入力操作を正確に判別することができる入力装置、入力装置の制御方法、プログラムおよび記憶媒体を提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するため本発明の入力装置は、ユーザにより入力操作が行われるタッチパネルと、前記タッチパネルに対する前記入力操作によるタッチダウンからタッチアップまでの期間中のタッチ位置を時系列に取得する取得手段と、前記タッチダウンの際のタッチ位置を含む、前記取得手段で取得された各タッチ位置に基づいてタッチ位置の分散を算出する算出手段と、前記算出手段により算出された分散に基づいて、前記入力操作がムーブを含まない操作であるかムーブを含む操作であるかを判別する判別手段とを有し、前記判別手段は、前記算出された分散が閾値より小さい場合、前記入力操作が前記ムーブを含まない操作であると判別し、前記算出された分散が前記閾値より小さくない場合、前記入力操作が前記ムーブを含む操作であると判別することを特徴とする。
【００１１】
また、本発明は、入力装置の制御方法、プログラムおよび記憶媒体を提供する。
【発明の効果】
【００１２】
本発明によれば、ムーブを含まない操作を、ムーブを含む操作と誤判別することなく、ユーザが意図した入力操作を正確に判別することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１の実施の形態に係る入力装置が組み込まれている情報処理装置の主要部構成を示すブロック図である。
【図２】（ａ）はユーザインタフェース画面の一例を示す図である。（ｂ）は図２（ａ）のユーザインタフェース画面上で行われるドラッグ操作を示す図である。（ｃ）は図２（ａ）のユーザインタフェース画面上で行われるタップ操作を示す図である。
【図３】第１の実施の形態における入力操作判別処理の手順を示すフローチャートである。
【図４】（ａ）はタッチダウンからの経過時間に応じたタッチ位置の変化に対して従来の判別方法を適用した場合の例を示す図である。（ｂ）はタッチダウンからの経過時間に応じたタッチ位置の変化に対して第１の実施の形態の判別方法を適用した場合の一例を示す図である。
【図５】（ａ）はユーザが入力操作を行う際の癖を考慮した閾値Ｓｘｍａｘ，Ｓｙｍａｘを設定するためのタップ操作画面の一例を示す図である。（ｂ）はユーザが入力操作を行う際の癖を考慮した閾値Ｓｘｍａｘ，Ｓｙｍａｘを設定するためのフリック操作画面の一例を示す図である。
【図６】本発明の第２の実施の形態に係る入力装置が表示するユーザインタフェース画面の一例を示す図である。
【図７】本発明の第２の実施の形態に係る入力装置の入力操作判別処理の手順を示すフローチャートである。
【図８】本発明の第２の実施の形態に係る入力装置の入力操作判別処理の手順を示すフローチャートである。
【図９】本発明の第３の実施の形態に係る入力装置の入力操作判別処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本発明の実施の形態について図面を参照しながら説明する。
【００１５】
(第１の実施の形態)
図１は本発明の第１の実施の形態に係る入力装置が組み込まれている情報処理装置の主要部構成を示すブロック図である。ここでは、ユーザの入力操作として、ムーブを含まない操作（タップ操作）かムーブを含む操作（ドラッグ操作またはフリック操作）が行われる入力装置について説明する。
【００１６】
図１に示すように、本実施の形態の入力装置は、ＰＣ（パーソナルコンピュータ）などの情報処理装置１００に組み込まれている。情報処理装置１００は、ＣＰＵ１０１、プログラム格納部１０２、メモリ１０３、タッチパネル１０４および表示制御部１０５を有し、これらは、互いに内部バス１１１を介してデータのやり取りを行うことが可能である。
【００１７】
ＣＰＵ１０１は、プログラム格納部１０２に格納されている各種のプログラムに従い、情報処理装置１００の各部を制御するとともに、各種の処理を実行する。また、ＣＰＵ１０１は、タイマ（図示せず）を内蔵する。ここで、プログラム格納部１０２は、例えばＲＯＭ、ＦｌａｓｈＲＯＭまたはハードディスクなどからなる。メモリ１０３は、例えばＲＡＭからなり、ＣＰＵ１０１が制御または処理を実行する際の作業領域を提供する。
【００１８】
タッチパネル１０４は、ユーザによる入力操作が行われる操作面を有し、上記操作面に対するタッチオン状態かタッチオフ状態かを検出するとともに、ユーザが指またはペンでタッチをしているタッチ位置を検出する。そして、タッチパネル１０４は、タッチオン状態かタッチオフ状態かを示すタッチ状態信号と上記タッチ位置を示す座標情報を、内部バス１１１を介してＣＰＵ１０１に送信する。ここで、上記操作面には、予め互いに直交するｘ，ｙ軸が規定されており、上記座標情報は、ｘ軸方向の位置とｙ軸方向の位置を示す情報である。また、タッチパネル１０４は、後述するディスプレイ１１０の表示画面に貼り付けられており、光の透過率がディスプレイ１１０の表示を妨げないように構成されている。
【００１９】
表示制御部１０５は、ＣＰＵ１０１がプログラムに従い生成した表示制御信号に基づいて、ディスプレイ１１０の表示を制御する。ディスプレイ１１０は、例えば液晶表示装置などから構成される。
【００２０】
例えば、表示制御部１０５は、ＣＰＵ１０１が生成する表示制御信号に基づいて、タッチパネル１０４と共働して、ユーザインタフェース画面を構成するための画面を表示させるように、ディスプレイ１１０を制御する。ここで、タッチパネル１０４の操作面上の座標と、ディスプレイ１１０上の表示画面上の座標とは対応付けられている。これにより、ディスプレイ１１０とタッチパネル１０４は、互いに共働して、ユーザが指またはペンで直接的に入力操作を行うユーザインタフェース画面を構成する。
【００２１】
具体的には、タッチパネル１０４は、タッチパネル１０４の操作面上において行われる上記入力操作に応じたタッチ状態信号と座標情報をＣＰＵ１０１に送信する。ＣＰＵ１０１は、タッチパネル１０４からのタッチ状態信号と座標情報に基づいて、ユーザの入力操作を判別し、当該入力操作に応じた処理を実行する。
【００２２】
次に、ユーザにより入力操作が行われるユーザインタフェース画面について図２を参照しながら説明する。図２（ａ）はユーザインタフェース画面の一例を示す図である。図２（ｂ）は図２（ａ）のユーザインタフェース画面上で行われるドラッグ操作を示す図である。図２（ｃ）は図２（ａ）のユーザインタフェース画面上で行われるタップ操作を示す図である。
【００２３】
例えば、情報処理装置１００が画像データを格納する記録媒体（図示せず）を備えるものとする。そして、上記記録媒体に格納されている画像データに対して処理を行うための入力操作が行われるユーザインタフェース画面として、図２（ａ）に示す画面２０１がディスプレイ１１０に表示されるものとする。このユーザインタフェース画面２０１の中央部には、上記記録媒体に格納されている画像データに対応するサムネイル画像２０２の一覧が表示される。また、ユーザインタフェース画面の上部および下部には、それぞれ、「ＭＥＮＵ」、「ＥＤＩＴ」などの各操作ボタンが表示される。
【００２４】
ここで、サムネイル画像２０２の一覧表示をスクロールさせる場合、図２（ｂ）に示すように、ユーザはユーザインタフェース画面のサムネイル画像２０２の一覧の表示領域上においてドラッグ操作を行う。このドラッグ操作に応じて、ＣＰＵ１０１は、サムネイル画像の一覧の表示領域をスクロールさせる処理を行う。即ち、ＣＰＵ１０１は、次の画像データを記録媒体からメモリ１０３に読み込み、サムネイル画像を生成する。そして、ＣＰＵ１０１は、ドラッグ操作に応じた移動速度およびスクロール量でサムネイル画像の表示領域をスクロールさせるための表示制御信号を表示制御部１０５に送信する。表示制御部１０５は、ＣＰＵ１０１からの表示制御信号に基づいて、メモリ１０３からサムネイル画像を読み出してサムネイル画像の一覧をスクロールさせているように、ディスプレイ１１０の表示を制御する。
【００２５】
また、一覧表示されているサムネイル画像２０２のうち、ユーザが所望するサムネイル画像２０２に対応する画像を全画面表示させる場合、図２（ｃ）に示すように、ユーザは、指で所望のサムネイル画像２０２が表示されている位置を叩くタップ操作を行う。このタップ操作に応じて、ＣＰＵ１０１は、当該タップ操作でタッチされたタッチ位置にあるサムネイル画像２０２に対応する画像を全画面表示させる処理を行う。即ち、ＣＰＵ１０１は、タップ操作のタッチ位置にあるサムネイル画像２０２に対応する画像データを全画面表示させる表示制御信号を表示制御部１０４に送信する。表示制御部１０４は、上記表示制御信号に基づいて、メモリ１０３から画像データを読み出して全画面表示させるように、ディスプレイ１１０を制御する。
【００２６】
また、ＣＰＵ１０１は、ユーザインタフェース画面の上部または下部にある操作ボタンに対してタップ操作が行われると、当該操作ボタンに割り当てられている処理を実行する。例えば、ユーザにより「ＥＤＩＴ」ボタンに対してタップ操作が行われると、編集モードが実行される。この編集モードにおいては、例えばタップ操作により所望のサムネイル画像２０２が選択されると、当該選択されたサムネイル画像２０２に対応する画像データを記録媒体から削除する処理が行われる。
【００２７】
本実施の形態は、ムーブを含まない操作（タップ操作）とムーブを含む（操作ドラッグ操作またはフリック操作）を判別するための入力操作判別処理を行う。この入力操作判別処理においては、まず、タッチパネル１０４に対してユーザの入力操作によるタッチダウンが行われると、当該タッチダウンからタッチアップされるまでの期間中におけるタッチ位置が時系列にメモリ１０３に記録される。
【００２８】
ここで、タッチダウンから所定時間Ｔｍａｘが経過する前にタッチアップが行われると、メモリ１０３に記録された各タッチ位置の分散Ｓが算出される。そして、算出された分散Ｓに基づいて、上記ユーザの入力操作がムーブを含まない操作（タップ操作）であるか、ムーブを含む操作（ドラッグ操作またはフリック操作）であるかの判別が行われる。
【００２９】
上記入力操作判別処理の詳細について図３を参照しながら説明する。図３は第１の実施の形態における入力操作判別処理の手順を示すフローチャートである。図３のフローチャートに示す手順は、ＣＰＵ１０１により、プログラム格納部１０２に格納されているプログラムに従い実行されるものである。
【００３０】
ＣＰＵ１０１は、図３に示すように、タッチパネル１０４からのタッチ状態信号を監視し、タッチパネル１０４に対してタッチダウンが行われるのを待つ（ステップＳ３０１）。ここでは、タッチパネル１０４からタッチオン状態を示すタッチ状態信号が出力されると、ＣＰＵ１０１は、タッチパネル１０４に対してタッチダウンが行われたと判定する。そして、タッチパネル１０４に対してタッチダウンが行われると、ＣＰＵ１０１は、内蔵するタイマの時間をクリアする（ステップＳ３０２）。
【００３１】
次いで、ＣＰＵ１０１は、上記タイマを起動する（ステップＳ３０３）。そして、ＣＰＵ１０１は、タイマが計時する時間Ｔ（タッチダウンから現在までの経過時間）における、タッチパネル１０４からのタッチ位置を示す座標情報を時間Ｔと対応付けてメモリ１０３に記録する（ステップＳ３０４）。
【００３２】
次いで、ＣＰＵ１０１は、タイマが計時する時間Ｔが所定時間Ｔｍａｘを経過したか否かを判定する（ステップＳ３０５）。ここで、タイマが計時する時間Ｔが所定時間Ｔｍａｘを経過していないと判定された場合、ＣＰＵ１０１は、タッチパネル１０４からのタッチ状態信号に基づいて、タッチパネル１０４に対してタッチアップが行われた否かを判定する（ステップＳ３０６）。ここでは、タッチパネル１０４からタッチオフ状態を示すタッチ状態信号が出力されると、ＣＰＵ１０１は、タッチアップが行われたと判定する。ここで、タッチアップが行われていないと判定された場合、ＣＰＵ１０１は、上記ステップＳ３０４に戻る。
【００３３】
上記ステップＳ３０６においてタッチアップが行われたと判定された場合、ＣＰＵ１０１は、メモリ１０３に記録されている各タッチ位置の座標情報に基づいて、タッチ位置の分散Ｓを算出する（ステップＳ３０７）。ここでは、メモリ１０３に記録されている各タッチ位置の座標情報（タッチダウンからタッチアップまでの各タッチ位置の座標情報）として、ｎ個の座標情報Ｐｉ（ｘｉ，ｙｉ）（ｉ＝１〜ｎ）がメモリ１０３に記録されているとする。
【００３４】
ＣＰＵ１０１は、まず、メモリ１０３に記録されているｎ個のタッチ位置の座標情報Ｐｉ（ｘｉ，ｙｉ）（ｉ＝１〜ｎ）をメモリ１０３から読み出して、平均値Ａｘ，Ａｙを次の（１）式により算出する。
【００３５】
Ａｘ＝（ｘ１＋…＋ｘｎ）÷ｎ
Ａｙ＝（ｙ１＋…＋ｙｎ）÷ｎ                                …（１）
ここで、座標情報Ｐｉ（ｘｉ，ｙｉ）のｘｉは、タッチパネル１０４の操作面に規定されているｘ軸方向の位置を示し、ｙｉは、ｘ軸方向と直交するｙ軸方向の位置を示す。
【００３６】
次いで、ＣＰＵ１０１は、算出した平均値Ａｘ，Ａｙを用いて、分散Ｓｘ，Ｓｙを次の（２）式により算出する。
【００３７】
Ｓｘ＝｛（ｘ１−Ａｘ）２＋…＋（ｘｎ−Ａｘ）２｝÷ｎ
Ｓｙ＝｛（ｙ１−Ａｙ）２＋…＋（ｙｎ−Ａｙ）２｝÷ｎ          …（２）
ここで、分散Ｓｘは、ｘ軸方向の分散であり、分散Ｓｙは、ｙ軸方向の分散である。
【００３８】
次いで、ＣＰＵ１０１は、算出した各分散Ｓｘ，Ｓｙがそれぞれ閾値Ｓｘｍａｘ，Ｓｙｍａｘより小さいか否かを判定する（ステップＳ３０８）。ここで、算出した各分散Ｓｘ，Ｓｙがそれぞれ閾値Ｓｘｍａｘ，Ｓｙｍａｘより小さいと判定された場合、ＣＰＵ１０１は、入力操作を、ムーブを含まない操作（タップ操作）であると判別する（ステップＳ３０９）。そして、ＣＰＵ１０１は、本処理を終了する。
【００３９】
上記ステップＳ３０８において算出した各分散Ｓｘ，Ｓｙがそれぞれ閾値Ｓｘｍａｘ，Ｓｙｍａｘより小さくないと判定された場合、ＣＰＵ１０１は、入力操作を、ムーブを含む操作（ドラック操作またはフリック操作）であると判別する（ステップＳ３１０）。そして、ＣＰＵ１０１は、本処理を終了する。
【００４０】
このようにして、タッチダウンから所定時間Ｔｍａｘを経過する前にタッチアップが行われると、分散Ｓに基づいた入力操作の判別が行われ（ステップＳ３０８〜Ｓ３１０）、当該判別された入力操作に応じた処理が行われる。ここで、入力操作がムーブを含まない操作即ちタップ操作である場合、上記平均値Ａｘ，Ａｙがタップ操作のタッチ位置とされ、当該タッチ位置に対応付けられている処理が実行される。また、入力操作がムーブを含む操作即ちドラッグ操作またはフリック操作である場合、メモリ１０３に記録されている各タッチ位置の座標情報に基づいて、ドラッグ操作またはフリック操作に割り当てられている処理に用いる移動方向、移動速度などが算出される。そして、上記移動方向、移動速度で、ドラッグ操作またはフリック操作に割り当てられている処理が行われる。
【００４１】
上記ステップＳ３０５においてタイマが計時する時間Ｔが所定時間Ｔｍａｘを経過したと判定された場合、ＣＰＵ１０１は、入力操作を、ムーブを含む操作（ドラッグ操作またはフリック操作）であると判別する（ステップＳ３１１）。この判別に応答して、ムーブ含む操作によるタッチ位置の移動に逐次追従して処理が開始されるように、当該処理を行うアプリケーションに対して、現在のタッチ位置の座標情報が逐次渡される。そして、ＣＰＵ１０１は、タッチパネル１０４からのタッチ状態信号に基づいて、タッチアップが行われた否かを判定する（ステップＳ３１２）。ここで、タッチアップが行われていないと判定された場合、ＣＰＵ１０１は、上記ステップＳ３１１に戻る。上記ステップＳ３１２においてタッチアップが行われたと判定された場合、ＣＰＵ１０１は、上記ムーブを含む操作が終了したと判断して、本処理を終了する。
【００４２】
このように、タッチダウンからタッチアップ前に所定時間Ｔｍａｘが経過すると、分散Ｓに基づいた入力操作の判別を行うことなく、入力操作が、ムーブを含む操作であると判別されることになる。そして、タッチダウンからタッチアップされるまでの各タッチ位置の座標情報に基づいた移動方向、移動速度で、ドラッグ操作またはフリック操作に割り当てられている処理が行われる。
【００４３】
ここで、本実施の形態による分散Ｓに基づいた入力操作の判別による効果について図４を参照しながら説明する。図４（ａ）はタッチダウンからの経過時間に応じたタッチ位置の変化に対して従来の判別方法を適用した場合の例を示す図である。図４（ｂ）はタッチダウンからの経過時間に応じたタッチ位置の変化に対して第１の実施の形態の判別方法を適用した場合の一例を示す図である。
【００４４】
上述した従来の方法（特許文献２に記載の方法）は、図４（ａ）に示すように、最初のタッチ位置即ち始点Ｐ１を中心に幅ｄの領域を設定し、タッチ位置Ｐが設定された領域から外れた場合は、入力操作をドラッグ操作と判別する。
【００４５】
タップ操作の際には、例えば図４（ａ）に示すように、最初のタッチ位置Ｐ（始点Ｐ１）がユーザの意図する位置とずれ、タッチダウンからタッチアップまでの間に時間Ｔに応じてタッチ位置Ｐが始点Ｐ１から終点Ｐｎまで移動して変化する場合がある。このタッチ位置Ｐの変化は、例えば曲線Ｃ１のように表わされる。また、曲線Ｃ２で表わされるように、タッチ位置Ｐが、ノイズなどの影響により移動して変化したようになる場合がある。
【００４６】
ここで、従来の方法の場合、図４（ａ）に示すように、最初のタッチ位置即ち始点Ｐ１を中心に幅ｄの領域Ｒ１（微小な領域）が設定される。しかしながら、設定された領域Ｒ１は微小な領域であるので、タッチ位置Ｐ（図４（ａ）の曲線Ｃ１またはＣ２）の一部が上記設定された領域から外れることがある。このようにタッチ位置Ｐの一部が上記設定された領域から外れると、タップ操作が、ムーブを含む操作例えばドラッグ操作と誤って判別されることになる。
【００４７】
これに対し、本実施の形態を適用すると、図４（ｂ）に示すように、曲線Ｃ１またはＣ２（図４（ａ）の曲線Ｃ１，Ｃ２に同じ）で表わされるタッチ位置Ｐの平均値Ａが算出される。そして、平均値Ａに対するタッチ位置Ｐのばらつきの大きさが、分散Ｓと閾値Ｓｍａｘで評価される。本例の場合、平均値Ａに対するタッチ位置Ｐ（図４（ｂ）の曲線Ｃ１またはＣ２）のばらつきの大きさが大きくなく（分散Ｓ＜閾値Ｓｍａｘ）、タッチ位置Ｐの多くが領域Ｒ２内に存在する。よって、タッチ位置Ｐの一部が領域Ｒ２の外にあっても、タッチ位置Ｐの多くが領域Ｒ２内に存在すれば、タッチ中にタッチ位置Ｐのばらつきが生じたタップ操作を、ムーブを含む操作例えばドラック操作と誤って判別することはない。
【００４８】
このように、本実施の形態によれば、従来の方法に比して、タッチ中にタッチ位置Ｐのばらつきが生じたタップ操作を、ムーブを含む操作例えばドラッグ操作であると誤判別することはない。また、タップ操作によるタッチ位置Ｐを平均値Ａの位置とすることにより、最初のタッチ位置Ｐ１（始点）がユーザの意図した位置とずれたとしても、ユーザが意図するタッチ位置に非常に近いタッチ位置を示す座標情報を取得することができる。即ち、ユーザが意図した操作を正確に入力することができる。
【００４９】
本実施の形態においては、上記（２）式を用いて、分散Ｓｘ，Ｓｙのそれぞれが算出されている。これに代えて、平均値Ａｘ，Ａｙからの距離を計算し、当該距離を用いて分散を算出するようにしてもよい。
【００５０】
また、ドラッグ操作による移動方向（ムーブの方向）が例えば一方の軸方向に限定されている場合、当該一方の軸方向に対する平均値および分散を求めればよいことになる。例えば、図２（ａ）に示すユーザインタフェース画面の場合、サムネイル画像の一覧表示領域のスクロールが、ｘ軸方向のみに限定されているので、ｘ軸方向に対する平均値および分散が算出されることになる。
【００５１】
また、ムーブを含む操作として、ドラッグ操作とフリック操作があるが、ドラッグ操作とフリック操作の判別は、例えば次のような方法により行うことが可能である。具体的には、まず、タッチ位置の座標情報に基づいて単位時間当たりのタッチ位置の変化量が求められる。そして、当該単位時間当たりのタッチ位置の変化量が予め設定されている閾値より小さい場合は、入力操作がドラッグ操作と、単位時間当たりのタッチ位置の変化量が閾値以上の場合は、入力操作がフリック操作と判別される。
【００５２】
また、分散Ｓｘ，Ｓｙに対する閾値Ｓｘｍａｘ，Ｓｙｍａｘは、例えば予め設定されている固定値でもよいが、ユーザが入力操作を行う際の癖を考慮した閾値Ｓｘｍａｘ，Ｓｙｍａｘを設定するようにしてもよい。
【００５３】
ユーザが入力操作を行う際の癖を考慮した閾値Ｓｘｍａｘ，Ｓｙｍａｘを設定する方法について図５を参照しながら説明する。図５（ａ）はユーザが入力操作を行う際の癖を考慮した閾値Ｓｘｍａｘ，Ｓｙｍａｘを設定するためのタップ操作画面の一例を示す図である。図５（ｂ）はユーザが入力操作を行う際の癖を考慮した閾値Ｓｘｍａｘ，Ｓｙｍａｘを設定するためのフリック操作画面の一例を示す図である。
【００５４】
ユーザが入力操作を行う際の癖を考慮した閾値Ｓｘｍａｘ，Ｓｙｍａｘを設定する場合、ＣＰＵ１０１の制御により、ディスプレイ１１０には、例えば図５（ａ）に示すタップ操作画面と、図５（ｂ）に示すフリック操作画面がそれぞれ表示される。上記タップ操作画面は、タップ操作を行う複数のタップ操作位置（図５（ａ）の「＋」で示す位置）を表示する画面である。上記フリック操作画面は、フリック操作を行う複数のフリック操作位置および操作方向（図５（ｂ）の矢印の始点およびそれが示す方向）を表示する画面である。
【００５５】
ユーザは、上記タップ操作画面に表示されている各タップ操作位置に対してタップ操作を試行的に行う。また、ユーザは、上記フリック操作画面に表示されている各フリック操作位置に対してフリック操作を試行的に行う。ＣＰＵ１０１は、ユーザがタップ操作をしたときのタッチダウンをした瞬間のタッチ位置の分散と、フリック操作したときのタッチダウンをした瞬間のタッチ位置の分散とを算出する。そして、ＣＰＵ１０１は、算出された各分散に基づいて、タップ操作とフリック操作をそれぞれ判別可能にするような分散を求め、当該分散を閾値Ｓｘｍａｘ，Ｓｙｍａｘとして設定する。
【００５６】
（第２の実施の形態）
次に、本発明の第２の実施の形態について図６〜図８を参照しながら説明する。図６は本発明の第２の実施の形態に係る入力装置が表示するユーザインタフェース画面の一例を示す図である。図７および図８は本発明の第２の実施の形態に係る入力装置の入力操作判別処理の手順を示すフローチャートである。ここで、本実施の形態は、上記第１の実施の形態と同じ構成を有するので、その説明は省略する。
【００５７】
本実施の形態は、ユーザインタフェース画面に、ムーブを含む操作（ドラッグ操作またはフリック操作）が無効な領域と、ムーブを含まない操作（タップ操作）が無効な領域を設け、領域に応じて入力操作判別処理を行う。この点で、本実施の形態は、上記第１の実施の形態とは異なる。
【００５８】
具体的には、図６に示すように、ユーザインタフェース画面には、ムーブを含む操作（ドラッグ操作またはフリック操作）が無効な領域６０１と、ムーブを含まない操作（タップ操作）が無効な領域６０２が設けられている。ムーブを含む操作が無効な領域６０１は、ユーザインタフェース画面の上部と下部の領域で、ドラッグ操作、フリック操作などを受け付ける必要がない操作ボタン（「ＭＥＮＵ」、「ＥＤＩＴ」など）が配置されている領域である。
【００５９】
これに対し、ムーブを含まない操作が無効な領域６０２は、ユーザインタフェース画面の中央部の画像表示領域に表示されている各サムネイル画像６０３の間の隙間で、タップ操作を受け付ける必要がない領域である。
【００６０】
ユーザが、ムーブを含む操作が無効な領域６０１に対してタッチダウンをした場合、ＣＰＵ１０１は、上記タッチダウンを、ムーブを含まない操作即ちタップ操作のタッチダウンと判別する。これに対し、ユーザが、ムーブを含まない操作が無効な領域６０２に対してタッチダウンをした場合、ＣＰＵ１０１は、ムーブを含む操作即ちドラッグ操作またはフリック操作のタッチダウンと判別する。
【００６１】
このようなユーザインタフェース画面に対して、ＣＰＵ１０１は、図７および図８に示すフローチャートに従って、入力操作判別処理を行う。図７および図８に示すフローチャートに従う入力処理判別処理の手順は、ＣＰＵ１０１により、プログラム格納部１０２に格納されているプログラムに従い実行されるものである。
【００６２】
ＣＰＵ１０１は、図７に示すように、タッチパネル１０４に対してタッチダウンが行われるのを待つ（ステップＳ７０１）。ここで、タッチダウンが行われると、ＣＰＵ１０１は、タッチ位置が、ムーブを含む操作（ドラッグ操作またはフリック操作）が無効な領域の位置であるか否かを判定する（ステップＳ７０２）。
【００６３】
上記ステップＳ７０２において、タッチ位置が、ムーブを含む操作が無効な領域の位置でないと判定された場合、ＣＰＵ１０１は、タッチ位置が、ムーブを含まない操作（タップ操作）が無効な領域の位置であるか否かを判定する（ステップＳ７０３）。ここで、タッチ位置が、ムーブを含まない操作が無効な領域の位置でないと判定された場合、ＣＰＵ１０１は、タイマの時間をクリアする（ステップＳ７０４）。
【００６４】
次いで、ＣＰＵ１０１は、タイマを起動する（ステップＳ７０５）。そして、ＣＰＵ１０１は、タイマが計時する時間Ｔ（タッチダウンから現在までの経過時間）における、タッチパネル１０４からのタッチ位置を示す座標情報をメモリ１０３に記録する（ステップＳ７０６）。
【００６５】
次いで、ＣＰＵ１０１は、タイマが計時する時間Ｔが所定時間Ｔｍａｘを経過したか否かを判定する（ステップＳ７０７）。タイマが計時する時間Ｔが所定時間Ｔｍａｘを経過していないと判定された場合、ＣＰＵ１０１は、タッチアップが行われた否かを判定する（ステップＳ７０８）。タッチアップが行われていないと判定された場合、ＣＰＵ１０１は、上記ステップＳ７０６に戻る。
【００６６】
上記ステップＳ７０８においてタッチアップが行われたと判定された場合、ＣＰＵ１０１は、メモリ１０３に記録されているタッチ位置の座標情報に基づいて、タッチ位置の分散Ｓｘ，Ｓｙを算出する（ステップＳ７０９）。
【００６７】
次いで、ＣＰＵ１０１は、算出した各分散Ｓｘ，Ｓｙがそれぞれ閾値Ｓｘｍａｘ，Ｓｙｍａｘより小さいか否かを判定する（ステップＳ７１０）。ここで、算出した各分散Ｓｘ，Ｓｙがそれぞれ閾値Ｓｘｍａｘ，Ｓｙｍａｘより小さいと判定された場合、ＣＰＵ１０１は、入力操作を、ムーブを含まない操作（タップ操作）であると判別する（ステップＳ７１１）。そして、ＣＰＵ１０１は、本処理を終了する。
【００６８】
上記ステップＳ７１０において算出した各分散Ｓｘ，Ｓｙがそれぞれ閾値Ｓｘｍａｘ，Ｓｙｍａｘより小さくないと判定された場合、ＣＰＵ１０１は、入力操作を、ムーブを含む操作（ドラッグ操作またはフリック操作）であると判別する（ステップＳ７１２）。そして、ＣＰＵ１０１は、本処理を終了する。
【００６９】
上記ステップＳ７０７においてタイマが計時する時間Ｔが所定時間Ｔｍａｘを経過したと判定された場合、ＣＰＵ１０１は、図８に示すように、入力操作を、ムーブを含む操作（ドラッグ操作またはフリック操作）であると判別する（ステップＳ７１３）。この判別に応答して、ムーブ含む操作によるタッチ位置の移動に逐次追従して処理が開始されるように、当該処理を行うアプリケーションに対して、現在のタッチ位置の座標情報が逐次渡される。そして、ＣＰＵ１０１は、タッチアップが行われた否かを判定する（ステップＳ７１４）。ここで、タッチアップが行われていないと判定された場合、ＣＰＵ１０１は、上記ステップＳ７１３に戻る。上記ステップＳ７１４においてタッチアップが行われたと判定された場合、ＣＰＵ１０１は、ムーブを含む操作が終了したと判断して、本処理を終了する。
【００７０】
上記ステップＳ７０３においてタッチ位置が、ムーブを含まない操作が無効な領域の位置であると判定された場合、図８に示すように、ＣＰＵ１０１は、入力操作を、ムーブを含む操作であると判別する（ステップＳ７１３）。そして、ＣＰＵ１０１は、タッチアップが行われた否かを判定する（ステップＳ７１４）。ここで、タッチアップが行われていないと判定された場合、ＣＰＵ１０１は、上記ステップＳ７１３に戻る。上記ステップＳ７１４においてタッチアップが行われたと判定された場合、ＣＰＵ１０１は、ムーブを含む操作が終了したと判断して、本処理を終了する。
【００７１】
上記ステップＳ７０２においてタッチ位置が、ムーブを含む操作が無効な領域の位置であると判定された場合、図８に示すように、ＣＰＵ１０１は、入力操作を、ムーブを含まない操作（タップ操作）であると判別する（ステップＳ７１５）。ここでは、入力操作によるタッチ位置が、ムーブを含まない操作（タップ操作）のタッチ位置であるとされる。そして、ＣＰＵ１０１は、タッチアップが行われた否かを判定する（ステップＳ７１６）。ここで、タッチアップが行われていないと判定された場合、ＣＰＵ１０１は、上記ステップＳ７１５に戻る。上記ステップＳ７１６においてタッチアップが行われたと判定された場合、ＣＰＵ１０１は、ムーブを含まない操作が終了したと判断して、本処理を終了する。
【００７２】
このように、ムーブを含まない操作（タップ操作）が無効な領域と、ムーブを含む操作（ドラッグ操作またはフリック操作）が無効な領域を設けることにより、入力操作の誤判別の発生を防止することができる。また、ムーブを含まない操作とムーブを含む操作が有効な領域に対してのみ、それぞれの操作を判別すればよく、その判別処理（分散Ｓの算出など）に掛るＣＰＵ１０１の負荷を少なくすることができる。
【００７３】
また、さらに、ドラッグ操作が無効な領域、フリック操作が無効な領域を設けるようにしてもよい。
【００７４】
（第３の実施の形態）
次に、本発明の第３の実施の形態について図９を参照しながら説明する。図９は本発明の第３の実施の形態に係る入力装置の入力操作判別処理の手順を示すフローチャートである。ここで、本実施の形態は、上記第１の実施の形態と同じ構成を有するので、その説明は省略する。
【００７５】
本実施の形態は、ムーブを含む操作（ドラッグ操作またはフリック操作）において、ムーブの方向がタッチパネル１０４のｘ軸方向またはｙ軸方向の一方のみに限定されている場合の入力操作判別処理を行う。この点で、本実施の形態は、上記第１の実施の形態とは異なる。
【００７６】
例えば図２（ａ）に示すユーザインタフェース画面においては、ムーブを含む操作（ドラッグ操作またはフリック操作）により、サムネイル画像２０２の一覧表示領域をｘ軸方向にスクロールさせることはできるが、ｙ軸方向へスクロールはできない。よって、ｙ軸方向へのムーブは無効であり、ユーザがｙ軸方向へのムーブを行った場合、ＣＰＵ１０１は、ｙ軸方向へのムーブを無視する。
【００７７】
このムーブを含む操作において、ムーブの方向がｘ軸方向のみに限定されている場合の入力操作判別処理について図９を参照しながら説明する。図９はムーブの方向がｘ軸方向のみに限定されている場合の入力操作判別処理の手順を示すフローチャートである。図９のフローチャートに示す手順は、ＣＰＵ１０１により、プログラム格納部１０２に格納されているプログラムに従い実行される。
【００７８】
ＣＰＵ１０１は、図９に示すように、タッチダウンが行われるのを待つ（ステップＳ９０１）。ここで、タッチダウンが行われると、ＣＰＵ１０１は、タイマの時間をクリアする（ステップＳ９０２）。
【００７９】
次いで、ＣＰＵ１０１は、タイマを起動する（ステップＳ９０３）。そして、ＣＰＵ１０１は、タッチ位置の座標情報をメモリ１０３に記録する（ステップＳ９０４）。
【００８０】
次いで、ＣＰＵ１０１は、タイマが計時する時間Ｔが所定時間Ｔｍａｘを経過したか否かを判定する（ステップＳ９０５）。ここで、タイマが計時する時間Ｔが所定時間Ｔｍａｘを経過していないと判定された場合、ＣＰＵ１０１は、タッチアップが行われた否かを判定する（ステップＳ９０６）。ここで、タッチアップが行われていないと判定された場合、ＣＰＵ１０１は、ステップＳ９０４に戻る。
【００８１】
上記ステップＳ９０６においてタッチアップが行われたと判定された場合、ＣＰＵ１０１は、メモリ１０３に記録されているタッチ位置の座標情報に基づいて、タッチ位置の分散Ｓｘ，Ｓｙを算出する（ステップＳ９０７）。
【００８２】
次いで、ＣＰＵ１０１は、算出した分散Ｓｙが閾値Ｓｙｍａｘより小さいか否かを判定する（ステップＳ９０８）。分散Ｓｙが閾値Ｓｙｍａｘより小さいと判定された場合、ＣＰＵ１０１は、算出した分散Ｓｘが閾値Ｓｘｍａｘより小さいか否かを判定する（ステップＳ９０９）。分散Ｓｘが閾値Ｓｘｍａｘより小さいと判定された場合、ＣＰＵ１０１は、入力操作を、ムーブを含まない操作（タップ操作）であると判別する（ステップＳ９１０）。そして、ＣＰＵ１０１は、本処理を終了する。
【００８３】
上記ステップＳ９０９において分散Ｓｘが閾値Ｓｘｍａｘより小さくないと判定された場合、ＣＰＵ１０１は、入力操作を、ムーブを含む操作（ドラッグ操作またはフリック操作）であると判別する（ステップＳ９１１）。そして、ＣＰＵ１０１は、本処理を終了する。
【００８４】
上記ステップＳ９０８において分散Ｓｙが閾値Ｓｙｍａｘより小さくない（分散Ｓｙが閾値Ｓｙｍａｘ以上）と判定された場合、ＣＰＵ１０１は、許容されないｙ軸方向へのムーブが行われているので、当該入力操作を無効として、本処理を終了する。
【００８５】
上記ステップＳ９０５においてタイマが計時する時間Ｔが所定時間Ｔｍａｘを経過したと判定された場合、ＣＰＵ１０１は、入力操作を、ムーブを含む操作（ドラッグ操作またはフリック操作）であると判別する（ステップＳ９１２）。そして、ＣＰＵ１０１は、タッチアップが行われた否かを判定する（ステップＳ９１３）。ここで、タッチアップが行われていないと判定された場合、ＣＰＵ１０１は、上記ステップＳ９１２に戻る。上記ステップＳ９１３においてタッチアップが行われたと判定された場合、ＣＰＵ１０１は、ムーブを含む操作が終了したと判断して、本処理を終了する。
【００８６】
このように本実施の形態によれば、ユーザがｘ軸方向へのムーブのみが可能な領域において、分散ｙが閾値Ｓｙｍａｘ以上になるようなｙ軸方向へのムーブをした場合に、当該ｙ軸方向へのムーブを含む操作が無視される。その結果、ｘ軸方向へのムーブのみが可能な領域におけるｙ軸方向へのムーブが行われたことに起因する、入力操作の誤判別の発生をなくすことができ、操作性を改善することができる。
【００８７】
また、所定時間Ｔｍａｘを超えてタッチオン状態が継続する場合、入力操作が、ムーブを含む操作と判別されるので、タッチ位置がｘ，ｙ軸方向のそれぞれにふれるようなムーブが行われたとしても、入力操作に対する判別を正確に行うことができる。
【００８８】
本実施の形態においては、ｙ軸方向へのムーブが無効な場合について説明したが、ｘ軸方向のムーブが無効な場合も、同様の処理で入力操作に対する判別を行うことができる。この場合、ステップＳ９０８における分散Ｓｙと閾値Ｓｙｍａｘの比較を、分散Ｓｘと閾値Ｓｘｍａｘの比較に代えればよい。
【００８９】
以上、本発明をその好適な実施の形態に基づいて詳述してきたが、本発明はこれら特定の実施の形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。また、上述の実施の形態の一部を適宜組み合わせてもよい。
【００９０】
なお、ＣＰＵ１０１の制御は、１つのハードウェアにより行うようにしてもよいし、複数のハードウェアが処理を分担することにより、行うようにしてもよい。また、上述した各実施の形態においては、本発明を情報処理装置（ＰＣ）に適用した場合を例にして説明したが、これに限定されることない。即ち、本発明は、タッチパネルを有する入力装置を用いるＰＤＡ、デジタルカメラ、デジタルビデオカメラなどの各種機器に適用可能である。さらに、携帯電話端末、携帯型の画像ビューワ、プリンタ装置に設けられた印刷画像選択および確認のためのディスプレイ、デジタルフォトフレームなどの機器にも、本発明は適用可能である。
【００９１】
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００９２】
１００  情報処理装置
１０１  ＣＰＵ
１０２  プログラム格納部
１０３  メモリ
１０４  タッチパネル
１０５  表示制御部
１１０  ディスプレイ
【図１】
0005523090.tif 000002
【図２】
0005523090.tif 000003
【図３】
0005523090.tif 000004
【図４】
0005523090.tif 000005
【図５】
0005523090.tif 000006
【図６】
0005523090.tif 000007
【図７】
0005523090.tif 000008
【図８】
0005523090.tif 000009
【図９】
0005523090.tif 000010