JP2010250628A - キーボードからジェスチャ入力が可能なコンピュータ - Google Patents

キーボードからジェスチャ入力が可能なコンピュータ Download PDF

Info

Publication number
JP2010250628A
JP2010250628A JP2009100495A JP2009100495A JP2010250628A JP 2010250628 A JP2010250628 A JP 2010250628A JP 2009100495 A JP2009100495 A JP 2009100495A JP 2009100495 A JP2009100495 A JP 2009100495A JP 2010250628 A JP2010250628 A JP 2010250628A
Authority
JP
Japan
Prior art keywords
key
entry
gesture
phantom
keys
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2009100495A
Other languages
English (en)
Other versions
JP5148547B2 (ja
Inventor
Yasumichi Tsukamoto
泰通 塚本
Tetsushi Nakamura
哲志 中村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lenovo Singapore Pte Ltd
Original Assignee
Lenovo Singapore Pte Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Lenovo Singapore Pte Ltd filed Critical Lenovo Singapore Pte Ltd
Priority to JP2009100495A priority Critical patent/JP5148547B2/ja
Publication of JP2010250628A publication Critical patent/JP2010250628A/ja
Application granted granted Critical
Publication of JP5148547B2 publication Critical patent/JP5148547B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】キー・トップが独立した構造のキーボードから連続的なキー入力を受け取ってジェスチャを認識する。
【解決手段】Nキー・ロールオーバを解除してファントム・キーを受け入れるようにコンピュータの動作モードを変更する。キーボードからの連続的な入力に対応するキーまたはキー群のエントリを生成する。エントリの座標に基づいて各エントリがファントム・キーを含むか否かを判断しリアル・キーを特定する。リアル・キーを特定したエントリの座標を計算する。リアル・キーの座標に基づいてキーボードに入力されたジェスチャを認識する。
【選択図】図10

Description

本発明は、キーボードからコンピュータにウインドウを操作するジェスチャを入力する技術に関する。
コンピュータの入力装置としてはキーボードが代表的である。キーボードは通常コンピュータに文字を入力するために利用され、ユーザはキー・トップに刻印された文字を認識してキーを押下する。キーの押下はスキャン・コードに変換されてシステムにより文字が認識され対応する処理が行われる。一方、コンピュータの他の入力装置としてタッチ・パッドおよびタッチ・スクリーンが存在する。特許文献1は、ユーザが複数の指をタッチ・スクリーンやタッチ・パッドなどのタッチ・センシティブ・デバイスの表面に沿って動かしたときのジェスチャを認識してディスプレイの表示に対してスクロールや回転を行う技術を開示する。同文献には、タッチ・スクリーン上にキーボードを表示して入力することも記載されている。
また、特許文献2はカーソル・キーによるポインティング操作に代えてキーボードからの連続的な入力により素早いポインティング操作やアナログ量(方向、距離)の移動を可能にしたキーボードタブレット装置を開示する。特許文献3は、キーボードにキーボード領域を設け、キー操作とポインティング操作を切り換えることで操作性を高めた入力装置を開示する。特許文献4には、キーボードからのキー入力に対して発生するファントム・キーについて記載している。同文献には、電流の回り込みを防ぐために各キーに逆流防止用のダイオードを設けて同時に押下するキーの個数にかかわらず入力を認めるNキー・ロールオーバを実現するダイオード方式、マイコン等で押下キー数をカウントして3個キー以上の同時押下を認めない2キー・ロックアウト方式、キーが多重押しされた場合その状態がファントム状態かどうかを判断してファントム状態に関与しないキーのみを出力する疑似Nキー・ロールオーバ方式などが開示されている。
さらに特許文献4は、今回検出したキー情報と前回のキー情報を比較して回り込みを検出するファントム状態検出手段を設け、ファントム状態を検出した場合は、ファントム状態の原因となった最後のキーおよびファントム状態によって誤検出されるファントム・キーのオンコードを出力せずにオフコードを出力するようにした他の擬似Nキー・ロールオーバ方式について開示している。
特表2008−508601号公報 特開平10−198488号公報 特開2001−265498号公報 特許第2839304号公報
ノートブック型パーソナル・コンピュータ(以下、ノートPCという。)では、入力装置のために十分なスペースを確保することができないため、必須の入力装置であるキーボードを利用してその入力機能を高めることが望ましい。そして、キーボードからタッチ・パッドまたはタッチ・スクリーンを利用したジェスチャの入力が実現できれば、ノートPCの操作性を一層高めることができる。ところで、キーボードは、スキャン・ラインとデコーダ・ラインで形成されたキー・マトリクスに、各キーに対応してスイッチが配置されている。押下されたキーは、キー・マトリクス上で認識されてスキャン・コードとしてシステムに通知される。
キーボードのキーを指で連続的に押下してゆくとシステムは押下された一連のキーまたはキー群をスキャン・コードの発生のタイミングで順番に認識する。通常のキーボードでは、1本の指で最大4個のキーを同時に押下することができる。そして、この認識された一連のキー群から指の動きであるジェスチャを認識しようとする場合に、同時に3個または4個のキーが押下されることがある。さらに、複数の指のジェスチャでキーが入力されたときは、同時に5つ以上のキーが押下されることがある。
ここで、従来技術にも示したようにダイオード方式以外のキーボードでは、同時に3つ以上のキーが押下されたときに、押下されていないファントム・キーが押下されたものとして認識されるいわゆるファントム状態が発生する。ファントム状態は、同時に押下された2つのキーが、スキャン・ラインが同一でデコーダ・ラインが異なる位置に配置され、かつ、いずれかのデコーダ・ラインにさらに押下された3つ目のキーが存在するときに発生する。ファントム・キーはキーボードからの通常の入力をする場合には、何らかの方法で抑制する必要がある。
ダイオード方式以外のキーボードでは、擬似Nキー・ロールオーバ方式を採用してソフトウエアでその発生を防止している。ファントム・キーの発生をソフトウエアで抑制したキーボードでは、ジェスチャにより複数のキーを連続的に押下しても途中でファントム・キーが発生すると、それ以後に入力されたキーを認識できなくなったり、ファントム条件が成立しているキー群の認識をすることができなかったりする。したがって、キーボードで押下された連続的なキー群の軌跡からジェスチャを認識するためには、適切にファントム・キーの処理を行う必要がある。
そこで本発明の目的は、キー・トップが独立した構造のキーボードからジェスチャを入力してウインドウの操作が可能なジェスチャ入力システムを実現するコンピュータ・プログラムを提供することにある。さらに本発明の目的は、そのようなコンピュータ・プログラムを実装したコンピュータを提供することにある。
本発明においてコンピュータは、キー・トップが独立した構造のキーボードから連続的なキー入力を受け取る。連続的なキー入力はユーザがウインドウを操作するジェスチャに対応する。コンピュータはソフトウエアでNキー・ロールオーバ機能を実現するが、ジェスチャ入力を可能にする場合は、コンピュータがNキー・ロールオーバを解除して一旦ファントム・キーを受け入れるように動作モードを変更する。ここにNキー・ロールオーバはファントム・キーをシステムが誤って認識することを抑制するいかなる手法をも意味している。コンピュータはキーボードからの連続的な入力に応じて認識したキーまたはキー群のエントリを生成する。そしてコンピュータは、各エントリの座標に基づいて各エントリがファントム・キーを含むか否かを判断してファントム・キーを認定し各エントリのリアル・キーを特定する。リアル・キーが複数含まれるエントリではエントリの座標を複数のキーの重心とすることができる。コンピュータはリアル・キーを特定した各エントリの座標を計算し、リアル・キーの座標に基づいてキーボードに入力されたジェスチャを認識する。
ジェスチャの認識には、最初のエントリで認識される開始キーの個数を判断要素に含めるようにしてもよい。本発明によれば、ジェスチャの入力を受け入れる際に、一旦ファントム・キーも含めたキー群を受け入れてからエントリの座標に基づいてファントム・キーを認定するために、ジェスチャに応じて押下されたキーの座標軌跡を得ることができるようになる。ファントム・キーの認定は、第1のエントリと第2のエントリの座標に基づいて計算した移動直線に基づいて行うことができる。移動直線は、ジェスチャの移動方向を予測させる性質を備えている。移動直線が各指でそれぞれ押下された2個の開始キー間を結ぶ直線であるとすれば、2本の指によるズームイン操作でのジェスチャの移動方向を予測させる。移動直線が第1の指で押下された開始キーとリアル・キーが特定された第1の指に関連するエントリの座標を結ぶ直線および第2の指で押下された開始キーとリアル・キーが特定された第2の指に関連するエントリの座標を結ぶ直線であるとすれば、第1の指と第2の指によるズームアウト操作でのジェスチャの移動方向を予測させる。
移動直線が1個の開始キーとリアル・キーが特定されたエントリの座標を結ぶ直線であるとすれば、1本の指によるスクロール操作または回転操作でのジェスチャの移動方向を予測させる。ズームアウト操作または1本の指によるスクロール操作または回転操作のジェスチャのときは、対象となるエントリより先に生成されたエントリについて計算された移動直線に基づいてファントム・キーを認定することが望ましい。そして対象となるエントリのリアル・キーを特定できないときは対象となるエントリより後に生成されたエントリについて計算された移動直線に基づいてファントム・キーを認定してもよい。リアル・キーを特定したエントリに基づいてジェスチャの認識を行う際には、開始キーを含むエントリと最後にリアル・キーが特定されたエントリとの間の距離および経過時間を測定することにより行うこともできる。
本発明により、キー・トップが独立した構造のキーボードからジェスチャを入力してウインドウの操作が可能なジェスチャ入力システムを実現するコンピュータ・プログラムを提供することができた。さらに本発明により、そのようなコンピュータ・プログラムを実装したコンピュータを提供することができた。
ノートPCの概略のハードウエア構成を示すブロック図である。 キーボードとキーボード・コントローラの内部構成を説明する図である。 ジェスチャ入力処理システムのハードウエアおよびソフトウエアの構成を示すブロック図である。 キーボードのキー・トップの配列を示す図である。 キー・スイッチと文字コードを対応付けたマッピング・テーブルの一部を示す図である。 キー配列から入力するジェスチャの典型的なパターンを示す図である。 ジェスチャ入力処理システムにおいて、マルチタッチ入力またはシングルタッチ入力によるジェスチャを認識するための基本手順を示すフローチャートである。 図7のブロック209で行われるマルチタッチ入力処理の手順を示すフローチャートである。 ズームイン操作のときに演算部がエントリ制御部から受け取ったエントリを処理する際に使用する作業テーブルのデータ構造を示す図である。 ズームイン操作を行うジェスチャが入力されたときに作業テーブルに登録されたキーをエントリの順番に示したキー配列である。 ファントム条件が成立した隣接する4個のキーの中から、ファントム・キーを特定する方法を説明する図である。 エントリ番号13のエントリに対するファントム・キーの処理を説明する図である。 エントリ番号16のエントリに対するファントム・キーの処理を説明する図である。 ズームイン操作のときに生成されたリアル・キー・リストのデータ構造を示す図である。 ズームアウト入力処理の手順を示すフローチャートである。 ズームアウト操作のときに演算部がエントリ制御部から受け取ったエントリを処理する際に使用する作業テーブルのデータ構造を示す図である。 ズームアウト操作を行うジェスチャが入力されたときに作業テーブルに登録されたキーをエントリの順番に示したキー配列である。 1本の指で押下できる可能性のあるキー群を説明する図である。 ズームアウト操作のときに生成されたリアル・キー・リストのデータ構造を示す図である。 ズーム操作に対する入力キーの座標の軌跡を示す図である。 図7のブロック211で行われるシングルタッチ入力処理の手順を示すフローチャートである。 シングルタッチ入力処理においてジェスチャの認識を行う方法を説明する図である。
[ノートPCの構成]
図1は、本発明にかかるノートPC10の概略のハードウエア構成を示すブロック図である。ノートPC10は、バス14に接続された中央演算処理装置(CPU)11、ハードディスク・ドライブ13、液晶ディスプレイ(LCD)15、キーボード・コントローラ17、キーボード19、メイン・メモリ21、およびタイマ23を含んで構成されている。HDD13は図3に示す、アプリケーション・プログラム31、ジェスチャ・プログラム25、オペレーティング・システム(OS)27、およびキーボード・ドライバ29を格納する。HDD13に格納された各プログラムはメイン・メモリ21にロードされてCPU11により実行される。
キーボード19は、ノートPC10の筐体に組み込まれているが、本発明にかかるキーボードは、システム本体から分離してUSBやPS/2などのキーボード・インターフェースで接続されるタイプのものでもよい。ただし、本発明にかかるキーボード19は、各キー・トップが独立した硬質の部品で形成され、キー・トップ間の境界にはわずかな窪みが形成されているような独立タイプのものであり、圧力パッドのように表面が連続的に平坦ないわゆるメンブレン・キーボードや、ディスプレイに表示されるいわゆるソフトウエア・キーボードは除く。図1に示したハードウエア構成はHDD13に格納されているプログラムを除いて本発明との関連では周知である。
[キーボードの構成とファントム条件]
図2は、キー・マトリクス20とキーボード・コントローラ17の内部構成を説明する図である。キーボード19には、各キーに対応した複数のキー・スイッチ51がマトリクス状に配置されたキー・マトリクス20が設けられている。各キー・スイッチ51は、キーが解放されている間はオフになり、キーが押下されている間はオンになる。キー・マトリクス20は、16本のスキャン・ライン1S〜16Sと8本のデコーダ・ライン1D〜8Dで構成され、各スキャン・ライン1S〜16Sと各デコーダ・ライン1D〜8Dが交差する位置で両ラインを各キー・スイッチ51が接続している。各デコーダ・ライン1D〜8Dは、一端が電圧源Vccに接続され他端がデコーダ33に接続されている。また各スキャン・ライン1S〜16Sは、スキャン・ドライバ31に接続されている。スキャン・ドライバ31では、各スキャン・ライン1S〜16Sとグラウンドとの間に各スキャン・スイッチ30が接続されている。
スキャン・ドライバ31は、ある瞬間はいずれか1つのスキャン・ラインがグランドに接続されるようにスキャン・スイッチ30を順番にオン/オフする。スキャン・ドライバ31は、スキャン・ライン1Sからスキャン・ライン16Sまで順番にスキャン・スイッチ30をオン/オフしたあとにまたスキャン・ライン1Sに戻り以後この動作を繰り返す。スキャン・ドライバ31がスキャン・ラインを一巡する時間をスキャン・サイクルという。デコーダ33は、スキャン・ドライバ31の動作とタイミングを一致させながら、同時に8本のデコーダ・ライン1D〜8Dの電位を読み取る。キーボード・コントローラ17を制御するキーボード・ドライバ29(図3)は、ある瞬間に電位がグラウンド・レベルになっているスキャン・ラインとそのときにグラウンド・レベルになっているデコーダ・ラインを認識することで、各キーに対応するスキャン・コードを生成することができる。
ここで、ファントム・キーについて説明する。図2のキー・マトリクス20には、各キー・スイッチ51に対して直列に逆流防止用のダイオードが接続されていない。いま、ライン53で囲まれた4つのキー・スイッチ61、63、65、67に着目する。キー・スイッチ61、63、65が同時に押下されたと仮定すると、同時に押下された2つのキー・スイッチ61、63が、同一のスキャン・ライン1Sとデコーダ・ライン1D、2Dとの間に接続され、かつ、デコーダ・ライン1Dにさらに同時に押下された3つ目のキー・スイッチ65が存在するためファントム条件が成立し、キー・スイッチ67に対応するキーがファントム・キーになる。ファントム・キーに対して実際に押下されたキーをリアル・キーということにする。
なお、以後、キー・スイッチとキーという文言は特に必要がない限り同じ意味で使用する。このとき、スキャン・ライン2Sがスキャンされたときには、キー・スイッチ65、61、63を経由してデコーダ・ライン2Dはグラウンド・レベルになるため、デコーダ33は、キー67が押下されたと認識してしまうことになる。ただし、ライン54で囲まれた4つのキー67、69、71、73に着目したときに、同時に押下されたリアル・キー69、71とファントム・キー67とではファントム条件が成立しないので、キー73はファントム・キーにはならない。
キー・マトリクス20には、逆流防止用のダイオードが挿入されていないので、キーボード・コントローラ17は擬似Nキー・ロールオーバ方式を採用してキー入力中にキーボード・ドライバ29がファントム・キーの発生を監視して抑制している。ノートPC10は、キーボード19からの入力処理に関して、擬似Nキー・ロールオーバ機能を有効にする通常モードとそれを無効にするジェスチャ・モードで動作する。キーボード・ドライバ29は、キーボード19に特別に割り当てられた単独キーの押下または複数のキーの同時押下に応じてジェスチャ・モードに移行し、擬似Nキー・ロールオーバの機能を解除することができる。擬似Nキー・ロールオーバの機能が解除されると、キーボード・ドライバ29は3個以上のキーが同時に押下されたとき、キー・マトリクス20からデコーダ33が認識したファントム・キーを含むキー群のスキャン・コードをOS27(図3)に送る。
[ジェスチャ入力システム]
図3は、ジェスチャ入力処理システム100のハードウエアおよびソフトウエアの構成を示すブロック図である。キーボード・ドライバ29は、デコーダ33が検出したキーに対応するスキャン・コードを生成してOS27に送る。スキャン・コードには、キーが押下されたときに生成するメーク・コードと押下されたキーが解放されたときに生成するブレーク・コードが含まれる。OS27は、キーボード・ドライバ29からスキャン・コードを受け取るたびに、マッピング・テーブル150(図5)を参照して当該スキャン・コードに対応する文字コードを生成し相手先に送る。
OS27が文字コードを送る相手先は、通常モードでは押下されたときのウインドウの状態やキーの種類により、アプリケーション・プログラム31に帰属するウインドウであったりシステムであったりするが、ジェスチャ・モードではすべての文字コードがジェスチャ・プログラム25に送られる。アプリケーション・プログラム31は、OS27のサービスを受けながらLCD14にウインドウを表示するWebブラウザ、文書作成プログラム、または動画再生プログラムなどのようないずれのプログラムであってもよい。アプリケーション・プログラム31に帰属するウインドウがジェスチャによる操作の対象となる。ここに、ジェスチャとは、ユーザがキーボード19上で連続的にキーを押下するときの指の動きをいう。
ジェスチャ・プログラム25は、アプリケーション・プログラム31がウインドウを表示しているときに、ジェスチャ・モードでユーザがキーボード19からキー入力をしたときに、ユーザのジェスチャを認識してウインドウの操作量に対応するパラメータ値をOS27に戻す。OS27は、タッチ処理プログラム25から受け取ったパラメータ値に基づいて、アプリケーション・プログラム25のウインドウに対してズーム、回転、あるいはスクロールなどの処理をする。ジェスチャ・プログラム25は、エントリ制御部101、演算部105、作業テーブル103、検索テーブル107、パターン認識部104、および操作データ生成部109からなる機能を含んでいる。これらの機能は、ジェスチャ・プログラム25がメイン・メモリ21にロードされてCPU11で実行されることにより実現される。
エントリ制御部101は、OS27から連続的なキー入力に対応する文字コードを受け取るたびにエントリを生成する。ここにエントリとは、所定のスキャン・サイクルの間に認識されているキーまたはキー群の文字コードをいう。エントリ制御部101は、所定のスキャン・サイクルの間に受け取った複数の文字コードに対応するキー群は同時に押下されたものとして1つのエントリを作成する。エントリ制御部101は、現在のエントリに変化があった場合に新たなエントリを生成して、そのエントリに連続するエントリ番号を付与し演算部105に送る。エントリ制御部101は、ノートPC10に搭載されたタイマ23から時間情報を取得し、最初のエントリを生成してから最後のエントリを生成するまでの経過時間およびエントリ間の経過時間を測定する。
演算部105はパターン認識部104とともに、エントリ制御部101から受け取ったエントリを処理して、操作データ生成部に送るウインドウを操作するための操作データを生成する。検索テーブル107には、マッピング・テーブル150(図5)に基づいて作成されたファントム条件の成立を検索するためのリストが格納されている。演算部105は、エントリ制御部101から4個以上のキーの文字コードを含むエントリを受け取ったときには、当該キーの組み合わせが検索テーブル107に存在するか否かでファントム条件が成立しているか否かを判断する。作業テーブル103は、演算部105がエントリを処理している途中のデータを記憶するためにメイン・メモリ21に形成された領域である。操作データ生成部109は演算部105から受け取った操作データをOS27に渡すためのパラメータ値に変換する。
なお、図1〜図3は本実施の形態を説明するために、本実施の形態に関連する主要なハードウエアの構成および接続関係を簡略化して記載したに過ぎないものである。ここまでの説明で言及した以外にも、ノートPC10を構成するには多くのデバイスが使われる。しかしそれらは当業者には周知であるので、ここでは詳しく言及しない。図で記載した複数のブロックを1個の集積回路もしくは装置としたり、逆に1個のブロックを複数の集積回路もしくは装置に分割して構成したりすることも、当業者が任意に選択することができる範囲においては本発明の範囲に含まれる。
[キー・トップの配列]
図4は、キーボード19のキー・トップのキー配列を示す図である。図4(A)は、キーボード19の全体のキー配列81を示し、図4(B)はキー配列81の中でジェスチャの入力に使用するキー配列83を示す。図4(B)において、キー配列83を構成する各キーはそれぞれ物理的に独立して形成されておりその平面的な形状がほぼ等しい。キー配列83は、行方向には複数のキーが整列して配置されているが、列方向は人間工学的見地から整列して配置されていない。キー配列83には、最下行のキー群「Z、X、・・・>、?」の中心を通るX軸と最も左に配置されたキーである「1」の中心を通過するY軸によりX−Y座標が定義されており、キー配列83を構成するすべてのキーはその中心位置で座標を特定することができる。以後、単独のキーの位置は、X−Y座標におけるその中心位置の座標で示すものとする。また、各キーの矩形上の輪郭の四隅または四辺も座標で特定することができる。
図5は、キー・スイッチ51と文字コードを対応付けたマッピング・テーブル150の一部を示す図である。マッピング・テーブル150はOS27の中に組み込まれている。マッピング・テーブル150は1〜16のスキャン・ラインと1〜8のデコーダ・ラインからなるマトリクスに、文字コードが割り当てられている。たとえば、スキャン・ライン1とデコーダ・ライン3に対応するキーが押下されたときは、キーボード・ドライバ29は、マッピング・テーブル150に基づいてキー「Q」に対応するメーク・コードを生成し、当該キーが離されたときはキー「Q」に対応するブレーク・コードを生成する。
マッピング・テーブル150において、任意の2本のスキャン・ラインと任意の2本のデコーダ・ラインを抽出したときに、それらが交差する位置にある4個のキーはファントム条件を成立させる。たとえばノートPC10がジェスチャ・モードで動作するときに、スキャン・ライン2、5とデコーダ・ライン3、5の交差する位置に配置されたキー「E」、「D」、「R」、「F」がファントム条件を形成し、4個のキーから取り出した任意の3つのキーが同時に押下されたときに、残りの1つのキーが押下されなくてもキーボード・ドライバ29は、当該キーが押下されたと認識してOS27には4個のキーのスキャン・コードを送る。
[入力するジェスチャ]
図6は、キー配列83から入力するジェスチャの典型的なパターンを示す図である。図6(A)は、ウインドウを拡大するためのズームアウト操作のジェスチャで、図6(B)はウインドウを縮小するためのズームイン操作のジェスチャである。ズームイン操作およびズームアウト操作のジェスチャは、両手の指1本ずつの2本の指または片手の2本の指で入力される。これをマルチタッチ入力という。ズームアウト操作のジェスチャは2本の指がほぼ直線方向に離れ、ズームイン操作のジェスチャは2本の指がほぼ直線上を近づくように形成される。図6(A)と図6(B)のジェスチャは斜め方向にジェスチャが移動しているが、ズーム操作ではXーY座標上で2本の指が移動する方向はいずれであってもよく、たとえば上下方向または左右方向であってもよい。ズームアウト操作およびズームイン操作のジェスチャは、指の移動距離がウインドウの拡大または縮小の程度に対応し、移動速度がウインドウの拡大または縮小の速度に対応する。
図6(C)〜図6(E)のジェスチャは1本の指で入力される。これをシングルタッチ入力という。図6(C)は、左右方向のスクロールのジェスチャで、図6(D)は、上下方向のスクロールのジェスチャである。スクロールのジェスチャは、指の移動距離がウインドウに対するスクロール量に対応し、移動方向がスクロールの方向に対応し、移動速度がスクロールの速度に対応する。図6(E)は、ウインドウを回転させるジェスチャである。回転のジェスチャは、指の移動距離がウインドウの回転量に対応し、移動速度が回転の速度に対応し、回転の方向が回転方向に対応する。
[基本手順]
図7は、ジェスチャ入力処理システム100において、マルチタッチ入力またはシングルタッチ入力によるジェスチャを認識するための基本手順を示すフローチャートである。ブロック201では、アプリケーション・プログラム23を実行してLCD15にウインドウを開いているユーザが、ウインドウをジェスチャにより操作するためにキー配列81のいずれかの単一のキーを押下または複数のキーを同時に押下してジェスチャ入力処理システム100をジェスチャ・モードに変更する。このようにジェスチャ・モードに変更するためのキーまたはキーの組み合わせをモード選択キーという。
ジェスチャ入力処理システム100は、マルチタッチ入力を片手で行うことを想定しているためもう一方の手でモード選択キーが押下されている間だけジェスチャ・モードで動作する。これに関わらず、ジェスチャ入力処理システム100は、通常モードでモード選択キーが押下されたときにジェスチャ・モードに移行し、ジェスチャ・モードでモード選択キーが押下されたときに通常モードに復帰するようにしてもよい。このようにすれば、モード選択キーを押下したあとにマルチタッチ入力を両手で行うことができる。ジェスチャ・モードでは、キーボード・ドライバ29は、図4のキー配列83に含まれるキー以外のキーが押下されてもスキャン・コードをOS27に送らない。
ユーザはキー配列83から図6に示したいずれかのジェスチャで連続的にキーを押下する。このとき、ユーザが最初に押下する開始キーは、必ず1本の指で1個のキーが押下されるものとする。したがって、2本の指で押下するマルチタッチ入力の場合は開始キーとして2個のキーが押下される。マルチタッチ入力の場合はエントリ制御部101により2個のキーを含むエントリが生成され、シングルタッチ入力の場合は1個のキーを含むエントリが生成される。ブロック205では、キーボード・ドライバ29がスキャン・コードを生成してOS27に送る。ジェスチャ・モードに移行している間は、OS27はキーボード・ドライバ29から受け取ったすべてのスキャン・コードに対応する文字コードをジェスチャ・プログラム25に渡す。
ブロック207では、OS27がエントリ制御部101にキーボード・ドライバ29から受け取ったスキャン・コードに対応する文字コードを送る。エントリ制御部101は、所定のスキャン・サイクルの間に受け取った文字コードごとに1つのエントリを作成し演算部105に送る。ジェスチャ・モードに移行してから最初のエントリを受け取った演算部105は、ブロック207で、そこに含まれる開始キーが2個か1個かを判断する。2個の場合はマルチタッチ入力であると判断してブロック209に移行し、1個の場合はシングルタッチ入力であると判断してブロック211に移行する。ブロック213では、OS27が操作データ生成部109からアプリケーション・プログラム31に帰属するウインドウを操作するためのパラメータ値を受け取り実行する。
[マルチタッチ入力(ズームイン)]
図8は、図7のブロック209で行われるマルチタッチ入力処理の手順を示すフローチャートである。図9は演算部105がエントリ制御部101から受け取ったエントリを処理する際に使用する作業テーブル103のデータ構造を示す図である。最初にマルチタッチ入力処理におけるファントム・キーの認定の概要を説明する。作業テーブル103はノートPC10がジェスチャ・モードに移行したときに、ジェスチャ・プログラム25によりメイン・メモリ21の作業領域に形成される。作業テーブル103にはエントリ制御部101から送られたエントリがエントリ番号ごとに登録される。図10は、ズームイン操作を行うジェスチャが入力されたときに作業テーブル103に登録されたキーをエントリの順番に示したキー配列83である。
図10では、黒く塗りつぶしたキーがリアル・キーで、淡く塗りつぶしたキーがファントム・キーを示す。左側の数字は、作業テーブル103に登録されたエントリ番号に対応する。演算部105がエントリ制御部101から受け取った各エントリのキー群には、ファントム・キーも含まれている。演算部105は作業テーブル103を使用してファントム・キーを認定する。作業テーブル103の中で、括弧で囲ったキーはファントム・キーであるが、演算部105はエントリ制御部101からエントリを受け取った時点では、いずれのキーがファントム・キーであるかを認識することができない。演算部105は各エントリに含まれるファントム・キーを以下の手順で認定する。認定されたファントム・キーは作業テーブル103から消去される。
ブロック301でマルチタッチ入力処理が開始される。ブロック303では、エントリ制御部101が生成した2個の開始キーを含む最初のエントリにエントリ番号1を付与して演算部105に送る。エントリ制御部101は、新たなエントリを生成するたびに、当該エントリに新たなエントリ番号を付与して演算部105に送る。エントリ制御部101は、新たなエントリに対してエントリ番号を1ずつ増分する。エントリ制御部101は、さらに、タイマ23から得た時間情報に基づいてあるエントリからつぎのエントリまでの経過時間を計測して所定値を越えた場合には、ジェスチャの入力が終了したと判断して演算部105に通知する。
演算部105は、エントリ制御部101から受け取ったエントリを作業テーブル103に登録する。エントリ制御部101は、エントリ番号1のエントリを受け取ったときにそこに含まれる2個の開始キーの一方を第1の指に対応させ、他方を第2の指に対応させて作業テーブル103のタッチ番号のフィールドにそれぞれのタッチ番号を設定する。いま、2個の開始キーとして第1の指に相当する親指でキー「X」が押下され、第2の指に相当する中指でキー「0」が押下されたものとすると、演算部105は作業テーブル103のエントリ番号1にキー「X」、「0」を登録し、かつそれぞれにタッチ番号の1または2を設定する。タッチ番号1は親指により押下されたキーまたはキー群に割り当てられ、タッチ番号2は中指により押下されたキーまたはキー群に割り当てられる。なお、タッチ番号の割り当てはこの逆であってもよい。
演算部105は、作業テーブル103のリアル・フラグのフィールドに、エントリ制御部101から受け取ったエントリに対してファントム・キーが含まれていると判断したときに、ファントム・キーを認定することでリアル・キーを特定できた場合にはタッチ番号ごとにリアル・フラグとして1を設定する。1つのエントリに含まれるキーが3個以内の場合はファントム条件が成立しないので、それらのキーはすべてリアル・キーとして特定される。リアル・キーの特定方法については後に詳しく説明するが、マルチタッチ入力では、開始キーは2個にしているのでファントム条件が成立することはないため、演算部105はこの時点でエントリ番号1のエントリに対してリアル・フラグを設定する。
なお、第1の指により押下されたリアル・キーまたはリアル・キー群およびその周囲に隣接するキーからなるキー群を第1のキー・グループといい、第2の指により押下されたリアル・キーまたはリアル・キー群およびその周囲に隣接するキーからなるキー群を第2のキー・グループという。第1のキー・グループおよび第2のキー・グループまたはそのいずれか一方には、第1の指により押下されたリアル・キーと第2の指により押下されたリアル・キーにより発生したファントム・キーも含まれる。
エントリ番号1のデータを作業テーブル103に登録した演算部103は、ブロック303でキー「X」とキー「0」の2つの開始キー間を結ぶ直線である図10に示した移動直線351の傾きと切片を計算する。移動直線351は、ズーム操作におけるジェスチャの指の移動方向を予測してファントム・キーを認定するための直線である。演算部105は、ブロック303でさらに開始キー「X」、「0」間の距離を計算する。演算部105は、開始キー「X」と「0」の距離が所定値以上であればジェスチャがズームイン操作であると判断してブロック307に移行し、所定値未満であればズームアウト操作であると認識して図15のブロック307に移行する。
ズームイン操作の場合は、最初に第1の指と第2の指がキー配列83上の離れた位置におかれてそれぞれ1個の開始キーを押下したのちに、キー上で指を滑らせながら移動させてキーを連続的に押下し、最終的には2つの指が接近してジェスチャが終了するので、各指の移動方向が移動直線351に沿っていると予測することができる。移動直線351は演算部105に対して、第1のキー・グループに含まれるリアル・キーまたはリアル・キー群に対してキー「X」からキー「0」への移動を予測させ、第2のキー・グループに含まれるキーまたはキー群に対してキー「0」からキー「X」への移動を予測させる。
ブロック307では、エントリ制御部101が各エントリについて1つ前のエントリからの経過時間が一定値を超えたか否かを判断し、一定値を超えた場合はジェスチャの入力が停止したものと判断して演算部105に通知して処理はブロック319に移行する。エントリ制御部101が所定時間以内につぎのエントリを生成した場合は、ブロック309で演算部105はエントリ制御部101からその新たなエントリを受け取る。ブロック309では演算部105は、エントリ番号1のエントリに続いてエントリ番号2のエントリに関する文字コードを受け取り、各キーを第1のキー・グループと第2のキー・グループに分けてそれぞれのキー・グループにタッチ番号を設定し作業テーブル103に登録する。
演算部105は、1つ前のエントリにおいて特定されたリアル・キーに対して今回のエントリにおいて認識された各キーが隣接するか否かでそれらに対するタッチ番号を決定する。エントリ番号2のエントリでは、演算部105はキー「X」、「0」、「9」の文字コードを受け取る。キー「9」はエントリ番号1で特定されたリアル・キー「0」に隣接するキーであるため、第2のキー・グループに属すると判断して、キー「0」、「9」にタッチ番号2を設定する。キー「X」は変更がないので、エントリ番号1のエントリと同様にタッチ番号1を設定する。
つづいて、ブロック311で演算部105は、エントリ番号2のエントリに4個以上のキーが含まれるか否かを判断する。1つのエントリにキーが4個以上含まれるときは、ファントム条件が成立している可能性があるのでブロック313に移行して処理する。ブロック311で1つのエントリに含まれるキーが3個以下のときはファントム条件が成立する余地がないのでブロック317に移行し、エントリ番号2に含まれるタッチ番号1、2のいずれの文字コードに対してもリアル・フラグを設定してブロック307に戻る。
エントリの生成が継続しているとすれば、ブロック309でエントリ制御部101によりエントリ番号3のエントリが生成される。エントリ番号3のエントリには、キー「X」、「C」、「0」、「9」が含まれる。演算部105は、エントリ番号2のエントリに対する処理と同様にして、キー「X」、「C」が第1のキー・グループに属すると判断し、キー「0」、「9」が第2のキー・グループに属すると判断して各キー・グループにタッチ番号を付与し作業テーブル103に登録してブロック311に移行する。
演算部105はブロック311でエントリ番号3のエントリに4個以上のキーが含まれると判断して、ブロック313に移行し当該4個のキーについて検索テーブル107を参照してファントム条件が成立するか否かを判断する。図5のマッピング・テーブル150から明らかなように、キー「X」、「C」、「0」、「9」にはファントム条件が成立しないので、演算部105はいずれのキーもリアル・キーであると判断してブロック317に移行してエントリ番号3のエントリの第1のキー・グループおよび第2のキー・グループに対してリアル・フラグを設定して作業テーブル103に登録しブロック307に戻る。
エントリ番号4のエントリには6個のキーが含まれている。演算部105はブロック313でエントリ番号4のエントリに含まれるキー「X」、「C」、「0」、「9」、「O」、「P」の中で、第2のキー・グループに属する「0」、「9」、「O」、「P」にファントム条件が成立することを認識してブロック315に移行してファントム・キーを特定する処理を行う。キーボード19からジェスチャを入力するときには、通常は1本の指で同時に押下するキーは3個であるが、指の角度を小さくした場合に4個のキーを押下することもできる。本実施の形態では、4個以上のキー群のなかから抽出した4個のキーにファントム条件が成立し、かつそれらのキーが隣接しているときにはすべてがリアル・キーであったとしてもいずれか1個のキーはファントム・キーであるものと想定して処理する。
演算部105は、ファントム条件が成立する4個のキーのなかで、いずれのキーにも隣接しない孤立したキーがある場合は、残りの3個のキーが同時に押下されたリアル・キーであることは明らかなので当該孤立したキーをファントム・キーと認定する。演算部105は、ファントム条件が成立する4個のキーが相互に隣接する場合は、以下のようにファントム・キーを認定する。図11は、ファントム条件が成立した相互に隣接する4個のキーの中から、ファントム・キーを特定する方法を説明する図である。本発明ではファントム・キーを、図10の移動直線351に基づいて特定する。演算部105は、ファントム条件が成立した4個のキーに対して、各キーと移動直線351の距離を計算する。そして、最も距離の長い位置にあるキーがファントム・キーであると特定する。
たとえば、図11(A)の場合は、移動直線353aに対して4つのキーの中でキー357が最も距離が遠く、ズームイン操作のジェスチャが移動直線353aに沿って行われることを想定すると、ジェスチャの方向から判断してキー352がリアル・キーである可能性が最も小さいためこれがファントム・キーであると認定する。図11(B)の場合は、移動直線353bに対してキー359が最も距離が遠いためこれをファントム・キーであると認定する。このとき、各キーまでの距離を相互に比較する際に有意差を示すための一定の閾値を設けてもよい。そして、その閾値を越えるほどの差がない場合は、当該エントリにおいてはファントム・キーを認定できないものとしてブロック307に戻るようにしてもよい。図11(C)のような場合は、ファントム・キーの認定が困難になり、また、誤って認定する可能性も高くなる。
したがって、移動直線353cに対する4個のキーの距離に閾値以上の差がないものとして、ファントム・キーを認定しないでブロック307に戻ることができる。ファントム・キーが認定されないときは、作業テーブル103にはリアル・フラグが設定されないことになる。図11(A)〜(C)では、移動直線と各キーとの距離に基づいてファントム・キーを認定する場合を説明したが、ファントム・キーは図11(D)のように移動直線上に定義した一定の幅の細長い領域353dにより認定することもできる。この方法では、領域353dに重ならないキー361をファントム・キーであると認定することができる。
エントリ番号4のデータに対して演算部105は、キー「P」がファントム・キーであると認定して、ブロック317で作業テーブル103にリアル・フラグを設定してブロック307に戻る。このとき演算部105は作業テーブル103に登録されたキーのなかから、ファントム・キーである「P」を削除する。以後同様の手順が繰り返されてエントリ番号13のエントリの処理まで進む。エントリ番号13のエントリは、キー群がすべて隣接しているので、演算部105はブロック309でこれらのキーを2つのキー・グループに分類しないでブロック313に移行する。したがて、エントリ番号13のエントリにはタッチ番号が設定されない。ブロック315で演算部105は、タッチ番号が設定されないエントリについては、ファントム・キーの認定ができないと判断してブロック307に戻る。したがって、作業テーブル103のエントリ番号13には、リアル・フラグが設定されない。
図12は、エントリ番号13のエントリに対するファントム・キーの処理を説明する図である。エントリ番号13のエントリには、キー「F」、「V」、「G」、「R」、「J」、「U」、「H」、「M」の8個のキーが含まれている。これらの8個のキーのなかからファントム条件が成立する4個のキーの組み合わせを抽出して図示すると、図12(A)〜(C)のようになる。エントリ番号13のエントリでは、リアル・キーが「F」、「U」、「G」、「J」、「U」で、ファントム・キーが「R」、「H」、「M」であるが、移動直線351から最も遠い位置にあるキーがファントム・キーとはならない。このように、1つのエントリのキーがすべて隣接して1つのキー・グループを形成している場合は、移動直線351からファントム・キーを認定することができない。
エントリ番号16のエントリは、エントリ番号13のエントリと同様にキー群がすべて隣接しているので、演算部105はブロック309でこれらのキー群にタッチ番号を設定しないでブロック315に移行する。図13は、エントリ番号16のエントリに対するファントム・キーの処理を説明する図である。エントリ番号16のエントリから演算部105は、キー「B」、「G」、「F」、「J」、「H」、「N」の6個のキーを認識する。これらの6個のキーのなかからファントム条件が成立する4個のキーの組み合わせを抽出して図示すると、図13(A)、(B)のようになる。
この場合は、リアル・キーを「B」、「G」、「J」、「H」とし、ファントム・キーを「F」、「N」としたときに、移動直線351に基づいてファントム・キーを認定しようとしても正しい判断ができなくなる。エントリ番号16のエントリに対しては1つのエントリで認識されたキー群が1つのキー・グループを形成するため、エントリ番号13のエントリに対する処理と同様に、ファントム・キーの認定をしないでブロック307に戻る。エントリ制御部101は、エントリ番号16のエントリを生成してから所定の時間が経過しても新たな文字コードをOS27から受け取らない場合は、ブロック307で、演算部105にジェスチャの入力が終了したことを通知してブロック319に移行する。
ブロック319では、パターン認識部104がこの時点の作業テーブル103の内容に基づいてジェスチャを認識する。演算部105は、作業テーブル103からリアル・フラグが設定されたエントリだけを抽出して図14に示すリアル・キー・リストを生成してパターン認識部104に送る。リアル・キー・リストは、各エントリから認定されたファントム・キーが除かれリアル・キーだけで構成されている。リアル・キー・リストからは、作業テーブル103においてリアル・フラグが設定されなかったエントリ番号13、16のエントリは除かれている。パターン認識部104は、リアル・キー・リストに含まれる各エントリのタッチ番号ごとのキーまたはキー群の座標(x,y)を計算する。1つのエントリにおいて一方のグループ・キーに対して複数のリアル・キーが特定された場合には、それらのキー群を代表する位置はキー群を構成する各キーの中心を結んで形成された図形の重心の位置とする。重心の計算は周知の方法を採用してよい。つづいてパターン認識部104は、各タッチ番号のキー・グループに関して、エントリの順番に座標を結んで作成した入力キーの座標軌跡を計算する。図20は、ズーム操作に対する入力キーの座標軌跡を示す図である。
図20(A)には、ズームイン操作における第1の指によるジェスチャに対応する第1の座標軌跡401と第2の指によるジェスチャに対応する第2の座標軌跡409が示されている。第1の座標軌跡401は、図14のリアル・キー・リストに含まれるタッチ番号1の各エントリのキーまたはキー群の座標を連結したもので、第2の座標軌跡409はタッチ番号2の各エントリのキーまたはキー群の座標を連結したものである。座標403、411はエントリ番号1のエントリに含まれる開始キー「X」、「0」に対応し、座標405、413は、タッチ番号1およびタッチ番号2のエントリに関してそれぞれ最後のエントリであるエントリ番号15のキー群「B、G」、「U、J」に対応する。パターン認識部104は第1の座標軌跡401について、最初の座標403と最後の座標405を結んだ直線から最も離れた座標407が所定の距離未満であるか否かを判断する。また、第2の座標軌跡409についても同様に最初の座標411と最後の座標413を結んだ直線から最も遠い座標415が所定の距離未満であるか否かを判断する。
パターン認識部104はともに所定の距離未満であると判断した場合は、ジェスチャがズームイン操作であると認識してズームイン操作を示す記号ZIを演算部105に渡してブロック321に移行する。少なくともいずれか一方が所定の距離以上の場合は、パターン認識部104はジェスチャがズームイン操作であるとは認識しないでジェスチャを認識できないことを示す記号NRを演算部105に渡して図7のブロック203へ移行する。このとき、演算部105は操作データ生成部109に操作データを送らないため、操作データ生成部からOS27にもパラメータ値が送られないことになり、アプリケーション・プログラム31のウインドウは変化しない。
ブロック321では、演算部105は操作データ生成部109に送るための操作データを生成する。演算部105は、図20の第1の座標軌跡401における座標403から座標405まで距離と、第2の座標軌跡における座標411から座標413までの距離を計算して合計の距離をズーム量Lとして計算する。また、演算部105は、エントリ制御部101からエントリ番号1のエントリを生成してから最後のエントリを生成するまでの経過時間時間tを受け取り、経過時間tでズーム量Lを除してズーム速度Vを計算する。演算部105は、ジェスチャの種類ZI、ズーム量L、およびズーム速度Vを操作データとして操作データ生成部109に送る。
操作データ生成部109は、ブロック323で演算部105から受け取ったジェスチャの種類ZI、ズーム量L、ズーム速度Vに基づいてウインドウを変化させるためのパラメータ値を生成し、アプリケーション・プログラム31に帰属するウインドウの識別子とともにOS27に渡す。OS27は、受け取ったパラメータ値に基づいて対象となるウインドウに対してズームインの処理を行う。またOS27は、ウインドウの拡大または縮小の程度をズーム量Lに対応するパラメータ値で決定し、ウインドウの大きさが変化する速度をズーム速度Vに対応するパラメータ値で決定する。ユーザは、ウインドウの変化が意図に合致する場合は、モード設定キーを解放してジェスチャ入力処理システム100を通常モードに移行させる。ウインドウの変化が足りない場合は、さらにジェスチャを続けて、意図に合致するまでウインドウを変化させる。
[マルチタッチ入力(ズームアウト)]
図15は、ズームアウト入力処理の手順を示すフローチャートである。図15の手順は、図8のズームイン入力処理の手順と類似するので、図15には図8と同一要素に同一参照番号を付与し、同じ手順内容は説明を省略または簡略化して異なる部分を中心に説明する。図16は演算部105がエントリ制御部101から受け取ったエントリを処理する際に使用する作業テーブル121のデータ構造を示す。図17は、ズームアウト操作を行うジェスチャが入力されたときに作業テーブル121に登録されたキーをエントリの順番に示したキー配列83である。
いま、2個の開始キーとして、親指でキー「G」が押下され、中指でキー「Y」が押下されたものとすると、演算部101により作業テーブル121のエントリ番号1のエントリにキー「G」とキー「Y」が登録される。そして、演算部105は、キー「G」にタッチ番号1を設定し、キー「Y」にタッチ番号2を設定してそれぞれにリアル・フラグを設定する。ブロック309において、後続のエントリに含まれるキー群に対してタッチ番号を割り当てる際には、1本の指で押下できる可能性のあるキー・パターンとジェスチャの移動方向を考慮する。具体的には、エントリ番号2、3、4のエントリに含まれる各キー群は、図17に示すように2つのグループに分かれていないので、図8の手順で説明したようにタッチ番号を付与することができず、よってリアル・フラグを設定することもできない。
ここで、1本の指で押下できる可能性のある状態は、図18に示した4個のキー群361の中央部または典型的に示した3個のキー群363の中央部(三つのコーナーが接近する位置)を押下した場合である。したがって、図17に示すエントリ番号2、3、4のキー群は、1本の指による押下の物理的な制約とジェスチャの移動方向に基づいて2つのキー・グループに分けることができる。そのとき、直前のエントリにおいて認識されたリアル・キーとの連続性を考慮する。たとえば、エントリ番号2のエントリに含まれる3個のキー「G」、「Y」、「7」は1本の指で押下することはできない。そして1つ前のエントリ番号1のエントリの処理でキー「G」とキー「Y」にはリアル・フラグが設定されており、このジェスチャは図8のブロック305でズームアウト操作と特定されているため2つの指は離れる方向に移動することがわかっているので、この3個のキー群に対しては、キー「G」にタッチ番号1を設定し、キー「Y」、「7」にタッチ番号2を設定してよい。エントリ番号3およびエントリ番号4で認識されたキー群に対しても同様の手順でキー・グループを特定してそれぞれにタッチ番号を設定することができる。
図8のブロック303では、最初のエントリに含まれる開始キー「G」、「Y」に対して図17のエントリ番号1のキー状態に示されたように移動直線351が計算される。ズームアウト操作では、2個の開始キーについて計算した移動直線351をその後のジェスチャの移動方向と予測するよりも、エントリ番号2以降の各エントリについて計算した移動直線で移動方向を予測した方が望ましい。たとえば、開始キーが「G」、「Y」であるとしたとき、ユーザはジェスチャを図17のエントリ番号1のキー状態について計算した移動直線351の方向に移動する場合もあるが、キー「G」を下方向、キー「Y」を上方向に移動する場合もある。
この手順では図8のフローチャートに対して、ブロック341、343、345を新たに設けている。ブロック341ではリアル・フラグが設定されたエントリ番号2以降の各エントリに対して、タッチ番号ごとのキー・グループについて移動直線351a、351bを再計算してその傾きaおよび切片bを作業テーブル121に登録する。具体的には図17に示すように、開始キー「G」、「Y」とリアル・フラグが設定されたエントリの各キー・グループとの間を結ぶ移動直線351a、351bを計算する。たとえば、図17において、エントリ番号6のエントリに含まれるキー群については、タッチ番号1のリアル・キー「F」、「V」、「D」の重心と開始キー「G」の重心を結んだ直線が移動直線351aとなり、タッチ番号2のリアル・キー「7」、「U」、「8」の重心と開始キー「Y」とを結んだ直線が移動直線351bとなる。
演算部105がブロック315でファントム・キーを認定するときには、処理対象となるエントリより過去において、当該エントリに最も近い時刻にリアル・フラグが設定されたエントリについて計算された移動直線351aおよび移動直線351bを利用する。移動直線351a、351bは、第1のキー・グループと第2のキー・グループでそれぞれ別のエントリから選択してよい。この場合もファントム・キーの認定は、第1のキー・グループには移動直線351aを使用し、第2のキー・グループには移動直線351bを使用して、図11で説明した方法を採用する。
そして、ブロック343では演算部105が、作業テーブル16に、ブロック315でリアル・フラグが設定されていないエントリがあるか否かを判断する。そのようなエントリがある場合はブロック345に移行し、リアル・フラグの設定されていないエントリがない場合はブロック307に戻る。ブロック345ではブロック315とは異なって処理対象となるエントリより過去のエントリに対して計算された移動直線351a、351bに代えて、それ以後の最も早い時刻にリアル・フラグが設定されたエントリについて計算された移動直線351aおよび移動直線351bを使用してファントム・キーを認定する。移動直線351a、351bは、第1のキー・グループと第2のキー・グループでそれぞれ別のエントリから選択してよい。
たとえば、図17において、処理対象となるエントリ番号6のエントリに対してエントリ番号5のエントリについて計算した移動直線351a、351bではファントム・キーの認定ができなかった場合に、エントリ番号7のエントリについて計算した移動直線351a、351bでファントム・キーの認定を行う。ブロック345でファントム・キーが認定できた場合はブロック317に移行して作業テーブル121にリアル・フラグを設定し、認定できなかった場合はブロック307に戻る。
ブロック307でジェスチャの入力が終了すると図8のブロック319に移行する。ブロック319では、ズームイン入力処理と同様にパターン認識部104がこの時点の作業テーブル103の内容に基づいてジェスチャを認識する。演算部105は、作業テーブル121からリアル・フラグが設定されたエントリだけを抽出して図19に示すリアル・キー・リストを生成してパターン認識部104に送る。図19のリアル・キー・リストのデータ構造は図14のデータ構造と同一である。
図20(B)には、ズームアウト操作における第1の指によるジェスチャに対応する第1の座標軌跡451と第2の指によるジェスチャに対応する第2の座標軌跡403が示されている。第1の座標軌跡451は、図19のリアル・キー・リストに含まれるタッチ番号1の各エントリのキーまたはキー群の座標を連結したもので、第2の座標軌跡459はタッチ番号2の各エントリの座標を連結したものである。座標453、461は開始キー「G」、「Y」に対応し、座標455、463は第1のタッチ番号および第2のタッチ番号のエントリに対してそれぞれ最後のリアル・キーが特定されたエントリであるエントリ番号10のキー群「C、X」、「8、9」に対応する。
パターン認識部104は第1の座標軌跡451について、最初の座標453と最後の座標455を結んだ直線から最も離れた座標457が所定の距離未満であるか否かを判断する。また、第2の軌跡459についても同様に最初の座標461と最後の座標463を結んだ直線から最も遠い座標465が所定の距離未満であるか否かを判断する。パターン認識部104はともに所定の距離未満であると判断した場合は、ジェスチャがズームアウト操作であると認識してズームアウトを示す記号ZOを演算部105に渡してブロック321に移行する。
少なくともいずれか一方が所定の距離より遠い場合は、パターン認識部104はジェスチャがズームアウト操作であるとは認識しないで、ジェスチャを認識できないことを示す記号NRを演算部105に渡して図7のブロック203へ移行する。このとき、操作データ生成部109からOS27にはパラメータ値が送られないため、アプリケーション・プログラム31のウインドウには変化がない。演算部105はズームアウト操作であることを示す記号ZOを受け取ると、ズームイン入力処理の場合と同様に、ジェスチャの種類ZO、ズーム量L、およびズーム速度Vを操作データとして操作データ生成部109に送る。
[シングルタッチ入力]
図21は、図7のブロック211で行われるシングルタッチ入力処理の手順を示すフローチャートである。図22は、シングルタッチ入力処理においてジェスチャの認識を行う方法を説明する図である。シングルタッチ入力処理は、図15で説明したズームアウト入力処理の手順において、ブロック307でジェスチャが終了するまでは第1のキー・グループまたは第2のキー・グループに対して行われる処理とほぼ同じであるため、フローチャートの各要素に同じ参照番号を付与している。
図7のブロック207で演算部105は、最初のエントリに含まれる開始キーが1個であることを認識して処理はブロック211に移行する。シングルタッチ入力の場合も、開始キーは1個だけ押下されるが、それに続いて2個目のキーが押下される。演算部105が最初のエントリからシングルタッチ入力であるかマルチタッチ入力であるかを判断するために、ユーザはシングルタッチ入力をする際に、開始キー押下して所定のスキャン・サイクルが経過してからつぎのキーを押下する。こうすることで非常に短い時間の間に2個のキーが押下されてシングルタッチ入力とマルチタッチ入力の区別ができなくなるような事態を防ぎ、シングルタッチ入力では最初のエントリに1個のキーだけ含まれるようになる。
ブロック319でパターン認識部104は、図22(A)に示された座標軌跡501を計算したと仮定する。パターン認識部104は、座標軌跡501が図6(C)、(D)、(E)のいずれのジェスチャであるかを認識する必要がある。パターン認識部104は、座標軌跡501の最初の座標503と最後の座標505を結んだ直線から、X−Y座標上での座標軌跡の移動方向と角度を認識する。また最初の座標503と最後の座標505を結んだ直線から最も遠い座標507が所定の距離未満であれば、図6(C)、(D)のスクロールであると認識し、所定の距離以上であれば回転であると認識する。パターン認識部104は、スクロールであると認識したときは、図22(B)のようにX座標に対して45度および135で交差する2本の直線で座標領域を4等分した領域505、507、509、511からスクロールの方向を判断する。
パターン認識部104は、直線の交差部からそれぞれの領域の外側に向かう方向が領域505、507、509、511の範囲であれば、それぞれ上スクロール、下スクロール、右スクロール、左スクロールのジェスチャであると認識して、それぞれの操作を示す記号US、DS、RS、LSを演算部104に送る。そして、演算部105はブロック321で座標503から座標505までの距離をスクロール量Lとして計算する。また、演算部105は、エントリ制御部101から、エントリ番号1のエントリが生成されてから最後のエントリが生成されるまでの経過時間tを受け取り、ブロック307において、時間tでスクロール量Lを除してスクロール速度Vを計算する。
パターン認識部104がブロック319でジェスチャが回転であると認識したときは、回転を示す記号Tを演算部105に送る。演算部105は、座標503、505、507から回転の方向を認識し、座標軌跡501を構成する座標間の距離を合計した長さを回転量Lとして計算する。また、演算部105は時間tで回転量Lを除して回転速度Vを計算する。スクロールの判断と回転の判断のために、座標503と座標505を結ぶ線から座標507までの距離に差を設けた場合や、図22(B)の各領域の境界にいずれの領域とも判定しない不感帯を設けた場合には、パターン認識部104がジェスチャを認識できない場合がある。その場合はブロック201に戻って最初からやり直す。
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることはいうまでもないことである。
20…キー・マトリクス
25…ジェスチャ・プログラム
31…スキャン・ドライバ
51…キー・スイッチ
81、83…キー配列
100…ジェスチャ入力処理システム
103、121…作業テーブル
150…マッピング・テーブル
351、351a、351b、353a、353b、353c…移動直線
401…第1の座標軌跡
409…第2の座標軌跡

Claims (10)

  1. キー・トップが独立した構造のキーボードから連続的なキー入力を受け取るコンピュータに、
    ファントム・キーを受け入れるように前記コンピュータの動作モードを変更するステップと、
    前記キーボードからの連続的なキー入力に対応するエントリを生成するステップと、
    前記エントリの座標に基づいて各エントリがファントム・キーを含むか否かを判断するステップと、
    前記ファントム・キーを認定して各エントリに含まれるリアル・キーを特定するステップと、
    リアル・キーを特定した各エントリのリアル・キーの座標を計算するステップと、
    前記リアル・キーの座標に基づいて前記連続的なキー入力に対応するジェスチャを認識するステップと
    を含む処理を実行させるコンピュータ・プログラム。
  2. 前記処理が、第1のエントリと第2のエントリの座標に基づいて移動直線を計算するステップを含み、
    前記リアル・キーを特定するステップが、前記移動直線に基づいてファントム・キーを認定する請求項1に記載のコンピュータ・プログラム。
  3. 前記ジェスチャを認識するステップが、最初のエントリで認識される開始キーの個数を判断するステップを含む請求項1または請求項2に記載のコンピュータ・プログラム。
  4. 前記ジェスチャが2本の指によるズームイン操作のとき、前記移動直線が各指でそれぞれ押下された2個の前記開始キー間を結ぶ直線である請求項3に記載のコンピュータ・プログラム。
  5. 前記ジェスチャが第1の指と第2の指によるズームアウト操作のとき、前記移動直線が前記第1の指で押下された前記開始キーとリアル・キーが特定された前記第1の指に関連するエントリの座標を結ぶ直線と、前記第2の指で押下された前記開始キーとリアル・キーが特定された前記第2の指に関連するエントリの座標を結ぶ直線である請求項3に記載のコンピュータ・プログラム。
  6. 前記ジェスチャが1本の指によるスクロール操作または回転操作のとき、前記移動直線が前記開始キーとリアル・キーが特定されたエントリの座標を結ぶ直線である請求項3に記載のコンピュータ・プログラム。
  7. 前記エントリごとのリアル・キーを特定するステップが、特定の対象となるエントリより先に生成されたエントリについて生成された移動直線に基づいて前記特定の対象となるエントリに含まれる前記ファントム・キーを認定する請求項5または請求項6に記載のコンピュータ・プログラム。
  8. 前記特定の対象となるエントリに含まれるリアル・キーを特定できないときは、前記対象となるエントリより後に生成されたエントリについて生成された移動直線に基づいて前記特定の対象となるエントリに含まれる前記ファントム・キーを認定する請求項7に記載のコンピュータ・プログラム。
  9. 前記ジェスチャを認識するステップが、前記開始キーを含むエントリと最後にリアル・キーが特定されたエントリとの間の距離および経過時間を測定するステップを含む請求項2から請求項8のいずれかに記載のコンピュータ・プログラム。
  10. 請求項1から請求項9までのいずれかに記載のコンピュータ・プログラムを実装したコンピュータ。
JP2009100495A 2009-04-17 2009-04-17 キーボードからジェスチャ入力が可能なコンピュータ Active JP5148547B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009100495A JP5148547B2 (ja) 2009-04-17 2009-04-17 キーボードからジェスチャ入力が可能なコンピュータ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009100495A JP5148547B2 (ja) 2009-04-17 2009-04-17 キーボードからジェスチャ入力が可能なコンピュータ

Publications (2)

Publication Number Publication Date
JP2010250628A true JP2010250628A (ja) 2010-11-04
JP5148547B2 JP5148547B2 (ja) 2013-02-20

Family

ID=43312871

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009100495A Active JP5148547B2 (ja) 2009-04-17 2009-04-17 キーボードからジェスチャ入力が可能なコンピュータ

Country Status (1)

Country Link
JP (1) JP5148547B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014219867A (ja) * 2013-05-09 2014-11-20 コニカミノルタ株式会社 画像形成装置、画像形成装置が操作方法を案内する方法、プログラム、および、システム
US10895978B2 (en) 2017-04-13 2021-01-19 Fanuc Corporation Numerical controller

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03172910A (ja) * 1989-11-30 1991-07-26 Matsushita Electric Ind Co Ltd キーボード装置
JP2001255986A (ja) * 2000-03-10 2001-09-21 Toshiba Corp 電子装置における文字入力装置、その方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03172910A (ja) * 1989-11-30 1991-07-26 Matsushita Electric Ind Co Ltd キーボード装置
JP2001255986A (ja) * 2000-03-10 2001-09-21 Toshiba Corp 電子装置における文字入力装置、その方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014219867A (ja) * 2013-05-09 2014-11-20 コニカミノルタ株式会社 画像形成装置、画像形成装置が操作方法を案内する方法、プログラム、および、システム
US9386174B2 (en) 2013-05-09 2016-07-05 Konica Minolta, Inc. Image forming apparatus, method for guidance on operation method by image forming apparatus, and system
US10895978B2 (en) 2017-04-13 2021-01-19 Fanuc Corporation Numerical controller

Also Published As

Publication number Publication date
JP5148547B2 (ja) 2013-02-20

Similar Documents

Publication Publication Date Title
US20200225835A1 (en) Portable terminal device and display control method
US10359932B2 (en) Method and apparatus for providing character input interface
US9851809B2 (en) User interface control using a keyboard
US8570283B2 (en) Information processing apparatus, information processing method, and program
US7477231B2 (en) Information display input device and information display input method, and information processing device
JP5730667B2 (ja) デュアルスクリーン上のユーザジェスチャのための方法及びデュアルスクリーンデバイス
US20100253630A1 (en) Input device and an input processing method using the same
KR20150104619A (ko) 원형의 접촉 감지 키보드를 위한 타이핑 방법 및 타이핑 디바이스
US20090251422A1 (en) Method and system for enhancing interaction of a virtual keyboard provided through a small touch screen
JP4818036B2 (ja) タッチパネル制御装置およびタッチパネル制御方法
EP1599787A1 (en) Unambiguous text input method for touch screens and reduced keyboard systems
WO2003027826A1 (fr) Dispositif d'entree, appareil informatique, procede d'identification d'un objet entre, procede d'identification d'un objet entre avec un clavier, et programme informatique
JP2010086064A (ja) 情報処理装置、文字入力方法及びプログラム
TWI502394B (zh) 電子裝置及其解鎖方法
JP2012018660A (ja) ハイブリッドタッチパネルの作動モジュール及びその作動方法
US20110025718A1 (en) Information input device and information input method
WO2012155784A1 (zh) 一种多点触摸设备及信息显示方法及应用处理装置
JP2014238755A (ja) 入力システム、入力方法およびスマートフォン
KR20110104620A (ko) 휴대용 단말기에서 문자 입력 방법 및 장치
JP2011090422A (ja) 入力処理装置
US20140022176A1 (en) Information processing method and apparatus for a touch screen device
JP5148547B2 (ja) キーボードからジェスチャ入力が可能なコンピュータ
JPWO2014045414A1 (ja) 文字入力装置、文字入力方法、文字入力制御プログラム
JP5414134B1 (ja) タッチ式入力システムおよび入力制御方法
JP6482312B2 (ja) タッチ操作入力装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110114

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120224

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121127

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121128

R150 Certificate of patent or registration of utility model

Ref document number: 5148547

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151207

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250