JPH1083274A - ポインタ位置に文字データを受け入れられることを判定する方法およびシステム - Google Patents

ポインタ位置に文字データを受け入れられることを判定する方法およびシステム

Info

Publication number
JPH1083274A
JPH1083274A JP9123899A JP12389997A JPH1083274A JP H1083274 A JPH1083274 A JP H1083274A JP 9123899 A JP9123899 A JP 9123899A JP 12389997 A JP12389997 A JP 12389997A JP H1083274 A JPH1083274 A JP H1083274A
Authority
JP
Japan
Prior art keywords
pointer
shape
determining whether
equivalent
mask
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.)
Pending
Application number
JP9123899A
Other languages
English (en)
Inventor
Mark Zetz John
ジョン・マーク・ゼッツ
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH1083274A publication Critical patent/JPH1083274A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04812Interaction techniques based on cursor appearance or behaviour, e.g. being affected by the presence of displayed objects

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Digital Computer Display Output (AREA)
  • Position Input By Displaying (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】 非システム・ポインタがシステム・ポインタ
と同等であるかどうかを判定するためのシステムおよび
方法を提供する。 【解決手段】 システム・ポインタと非システム・ポイ
ンタにはそれぞれポインタIDが付いている。システム
はまず、非システム・ポインタのポインタIDがポイン
タIDのテーブルに入っていて、システム・ポインタと
同等であるというフラグがそのテーブル内に付いている
かどうかを判定する。非システム・ポインタのポインタ
IDがポインタIDのテーブルに入っていない場合、シ
ステムは、非システム・ポインタの形状に基づいて、非
システム・ポインタがシステム・ポインタと同等である
かどうかを判定する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、広義にはデータ処
理システムに関する。本発明は、単一タスクがキーボー
ド、マウス、またはスタイラス事象などのユーザ入力を
ユーザの制御下で現在実行中の様々なコンピュータ・プ
ログラムに経路指定することに専用化された、マルチタ
スク処理ペンベース・コンピュータ・システムにおいて
具体的に応用されるものである。
【0002】
【従来の技術】オペレーティング・システム、好ましく
はIBMのOS/2オペレーティング・システムなどの
ペン・ソフトウェア拡張機能により、ユーザは、後で認
識のためにジェスチャ筆跡認識エンジンに送られる文字
をウィンドウに直接書き込むことができる。デフォルト
の場合、そのウィンドウが編集フィールドまたはテキス
ト入力ウィンドウなどテキストを受け入れるものでない
限り、このシステムは、手書き形状をジェスチャとして
扱う。ペンベース・システムについては、アラン・タネ
ンバウム(Alan Tannenbaum)他の「Graphical User In
terface with Gesture Recognition in a Multi-Applic
ation Environment」という名称の米国特許第5252
951号に全般的に記載されている。
【0003】規約により、テキストを受け入れるフィー
ルドは、ポインタがそのテキスト・フィールドの上に位
置決めされたときにIビーム・マウス・ポインタを表示
することにより、その旨を示す。オペレーティング・シ
ステムは、1)すべての入力フィールドの外観が均一に
なり、2)各アプリケーションの開発者がIビーム・マ
ウス・ポインタのカスタム・バージョンを設計して、そ
れぞれの製品とともにそれを出荷する必要がないように
アプリケーションが使用するための標準的なIビーム・
マウス・ポインタを提供する。
【0004】ペンベース・システム・ソフトウェアは、
この標準的なIビームを利用し、ユーザがテキスト・フ
ィールドに書き込んでいることを把握する。ユーザが表
面付近にスタイラスを移動させ、書込みを始めると、シ
ステムはスタイラスの位置までマウス・ポインタを移動
させる。マウス・ポインタがテキスト・フィールド内に
ある場合、ポインタはIビームになる。ペンベース・シ
ステムは、ポインタの形状に気付かないが、ポインタの
IDをシステムが供給したIビーム・ポインタのIDと
比較する。両方のIDが一致した場合、システムは2通
りのアクションを行う。第1に、システムはマウス・ポ
インタをIビームからペン形に変更し、ユーザがスタイ
ラスでそのフィールドに直接書き込めることをユーザに
警告する。第2に、システムは手書き文字をジェスチャ
ではなく主にテキストとして扱う。ペンまたはスタイラ
ス入力を解釈するためのアプリケーション、ウィンド
ウ、ポインタの特性の検査については、「Data Interpr
etation Techniques for a Pen-based Computer」と題
するIBMテクニカル・ディスクロージャ・ブリテン、
Vol. 38、No. 09、1995年9月に記載されている。
【0005】しかし、ペンが直面する問題は、多くのア
プリケーション開発者が独自のバージョンのIビーム・
ポインタを付けてそれぞれのアプリケーションを出荷す
ることである。このような開発者は、美的な理由のため
または単に自分のアプリケーションを競合他社のものと
区別するだけのために、独自のIビーム・ポインタ形状
を設計している。しかし、いずれの場合も、このような
カスタムIビームは、良好なヒューマン・ファクタを確
保するために、依然として標準的なIビーム形状との類
似性をある程度保持している。そうしないと、ユーザが
混乱し、そのフィールドがテキスト入力を受け入れるこ
とに気付かない恐れがある。残念ながら、有力なワード
・プロセッサ・アプリケーションのほとんどは、独自の
Iビーム・ポインタを付けて出荷されており、ポインタ
ID同士を比較するための現存するペンベース・システ
ム技法がいくらか無効になる。
【0006】ペンベース・システムのもう1つの問題
は、アプリケーションがマウスおよびキーボード入力を
処理できないときを確認することである。通常、アプリ
ケーションは、砂時計ポインタを表示することによっ
て、この「使用中」状態を通知する。これは普通は十分
な表示であり、砂時計ポインタが矢印ポインタに復元さ
れるまで、ユーザは入力を停止する。しかし、多くの場
合、アプリケーションが使用中状態になっている間、デ
スクトップ上の他の活動アプリケーションに向けられた
マウスまたはキーボード入力はすでにシステム待ち行列
に入っている。しかし、OS/2とWindowsの両方のオ
ペレーティング・システムの設計では、それがマウスお
よびキーボード入力の待ち行列解除を終了したことを使
用中アプリケーションが実際に最初にオペレーティング
・システムに通知するまで、待ち行列に入っている入力
を待ち行列から外してターゲット・アプリケーションに
ディスパッチすることができない。オペレーティング・
システムは、アプリケーションが瞬間的に使用中状態に
なっていることを知ることができないが、ユーザはそれ
を知ることができる。オペレーティング・システムがこ
の使用中状態を検出することができれば、即座に入力待
ち行列を調べ、ユーザ入力を待っている非使用中アプリ
ケーションに向けられたマウスまたはキーボード入力を
待ち行列解除/経路指定することができるはずである。
その結果、処理上のボトルネックが除去されるはずであ
る。
【0007】
【発明が解決しようとする課題】したがって、本発明の
一目的は、様々なコンピュータ・プログラム・アプリケ
ーションによって表示されるマウス・ポインタを光学的
に認識し、そのアプリケーションの動的状態または環境
を判定することにある。
【0008】本発明の他の目的は、正確なポインタ形状
認識を実行し、高い確信度でターゲット以外のポインタ
形状を確実に拒否することにある。
【0009】本発明のさらに他の目的は、認識プロセス
によって追加されるオーバヘッドがコンピュータの応答
性またはパフォーマンスに対して認識できるほどの影響
を及ぼさないように、計算上効率のよいやり方でポイン
タ形状認識を実行することにある。
【0010】本発明のさらに他の目的は、ディスプレイ
の解像度とカラー能力が変化するコンピュータ上でポイ
ンタ形状認識を実行することにある。
【0011】
【課題を解決するための手段】簡単に説明すると、上記
およびその他の目的は、本発明の方法およびシステムに
よって達成される。本発明の一態様のシステムは、非シ
ステム・ポインタがシステム・ポインタと同等であるか
どうかを判定する。システム・ポインタと非システム・
ポインタにはそれぞれポインタIDが付いている。シス
テムはまず、非システム・ポインタのポインタIDがポ
インタIDのテーブルに入っていて、システム・ポイン
タと同等であるというフラグがそのテーブル内に付いて
いるかどうかを判定する。非システム・ポインタのポイ
ンタIDがポインタIDのテーブルに入っていない場
合、システムは、非システム・ポインタの形状に基づい
て、非システム・ポインタがシステム・ポインタと同等
であるかどうかを判定する。
【0012】システムは、非システム・ポインタを事前
定義マスクと比較することにより、非システム・ポイン
タがシステム・ポインタと同等であるかどうかを形状に
基づいて判定する。非システム・ポインタのすべての画
素がマスク内に入る場合、システムは、非システム・ポ
インタを構成する画素数が所定のしきい値を上回るかど
うかを判定する。非システム・ポインタがシステム・ポ
インタと同等であるとシステムが判定すると、システム
は、ポインタIDのテーブルに非システム・ポインタの
ポインタIDを追加し、そのポインタIDにシステム・
ポインタと同等であるというフラグを付ける。
【0013】本発明の他の態様のシステムは、まず非シ
ステム・ポインタを事前定義粗大マスクと比較すること
により、非システム・ポインタがシステム・ポインタと
同等であるかどうかを判定することができる。非システ
ム・ポインタのすべての画素が粗大マスク内に入る場
合、システムは非システム・ポインタを事前定義微細マ
スクと比較する。前記非システム・ポインタのすべての
画素が微細マスク内に入る場合、システムは、非システ
ム・ポインタを構成する画素数が所定のしきい値を上回
るかどうかを判定する。次にシステムは、非システム・
ポインタが所定の対称条件を満足するかどうかを判定す
ることができる。
【0014】
【発明の実施の形態】次に添付図面、特に図1をまず参
照すると、本発明のシステムおよび方法を実施すること
ができるパーソナル・コンピュータ・システムのハード
ウェア・ブロック図の全体が参照番号10によって示さ
れている。システム10は、中央演算処理装置(CP
U)15とランダム・アクセス・メモリ13とを含むプ
ロセッサ11を含む。システム10は、ハード・ディス
ク記憶装置17とフロッピー・ディスク装置19という
形式の追加メモリも含むことが好ましい。フロッピー・
ディスク装置19は、本発明のソフトウェア実施態様を
含む、プログラム用のソフトウェアを記録可能なディス
ケット21を受け入れられるようになっている。また、
システム10は、ディスプレイ23、キーボード25、
マウス27、ペンまたはスタイラス29を含む、ユーザ
・インタフェース・ハードウェア装置も含む。システム
10はプリンタ31を含むことが好ましい。
【0015】次に図2を参照すると、同図には、本発明
のペンベース・システムの主要ソフトウェア・システム
構成要素の高レベル図が示されている。図2の下部で
は、ペン29、マウス27、キーボード25からの出力
信号がデバイス・ドライバ33に接続されているが、こ
のデバイス・ドライバはそれぞれの装置に低レベルの入
出力サポートを提供するモジュールである。デバイス・
ドライバ33は事象をシステム待ち行列35に入れる。
システム待ち行列35内の事象は、その後、プレゼンテ
ーション・マネージャ37によって処理され、プレゼン
テーション・マネージャ37は次にペン事象およびマウ
ス事象を処理のためにペン拡張部39に経路指定する。
【0016】典型的なシステムは、ペン認識アプリケー
ション41とペン非認識アプリケーション43の両方を
含む。ペン認識アプリケーションは、ペン入力を認識し
て処理するための固有の能力を備えている。ペン非認識
アプリケーションは、キーボードまたはマウスあるいは
その両方の入力を認識して処理するための固有の能力だ
けを備えたものである。したがって、ペン拡張部39
は、ペン事象をペン認識アプリケーション41に直接経
路指定する。しかし、ペン非認識アプリケーション43
はペン機能を使用することができないので、システムは
互換モジュール45を含む。
【0017】互換モジュール45は、ペン非認識アプリ
ケーションのためにペン認識アプリケーションとして動
作する。たとえば、ユーザがペン認識アプリケーション
に手書き文字事象を入力した場合、ペン拡張部39はこ
の事象を互換モジュール45に経路指定し、次に互換モ
ジュール45がすべてのペン・ストロークをジェスチャ
筆跡認識エンジン47に経路指定する。ジェスチャ筆跡
認識エンジン47は、ペン・ストローク事象を処理し、
認識結果を互換モジュール45に返す。
【0018】認識事象がジェスチャである場合、互換モ
ジュール45はそれを認識事象送達サブシステム49に
経路指定し、そのサブシステムは、特定のジェスチャに
応答してペン非認識アプリケーションでどのアクション
を実行すべきかをユーザが判定できるようにセットアッ
プしたプロファイル51にアクセスする。任意で一部の
ツール53を呼び出して、ペン非認識アプリケーション
43上で何らかのアクションを実行することもできる。
互換モジュール45に返された認識結果が筆跡であると
認識された場合、その結果のテキスト・ストリングは適
切なペン非認識アプリケーション43に直接経路指定さ
れる。
【0019】次に図3を参照すると、コンピュータのデ
ィスプレイ画面の全体が参照番号60で示されている。
画面60は、その上にウィンドウ61が表示されてお
り、そのウィンドウはノートブック63を表示してい
る。当業者には当たり前のように、ノートブック63
は、様々なタブおよびボタンと、テキスト入力フィール
ド65を含む。ペンベース・システムでは、ユーザがペ
ンまたはスタイラス(図示せず)を画面60の近くに持
ってくると、システムは、ペンの位置までポインタを移
動させ、ペン位置の特性に応じてペンによるアクション
を処理する。図3では、ポインタはテキスト・フィール
ド65内にあり、Iビーム67の形状を呈している。こ
のIビーム・ポインタ形状は、テキスト・フィールド6
5がキーボードからのテキスト入力を受け入れることを
ユーザに示すものである。
【0020】図4は、図3とほぼ同じであるが、図4の
システムには図3のIビーム・ポインタの代わりにペン
形ポインタ69が描かれてる。ペン形ポインタ69は、
テキスト・フィールド65が文字またはジェスチャの形
で手書き入力を受け入れることをユーザに示すものであ
る。
【0021】次に図5を参照すると、同図には、アイコ
ン・エディタ・アプリケーションで表示されるような、
アイコン・ビットマップ80の絵画表現が示されてお
り、代表的な6通りのIビーム・ポインタ形状がそこに
描かれている。アイコン・ビットマップ80は32×3
2のエレメントからなるグリッドであり、各エレメント
はVGA解像度の1つの画素(ペル)を表している。図
5に示すIビーム・ポインタ形状は、OS/2(TM)
のIビーム・ポインタ81と、Windows(TM)のIビ
ーム・ポインタ83を含んでいる。
【0022】図5に示すIビーム・ポインタ形状は、ユ
ーザがただちにIビームとして認識するような形状を保
持しながら、ペル・レベルでかなり変形したポインタを
示している。また、図5は、設計者がIビーム・ポイン
タをビットマップのどこにでも配置できることも示して
いる。
【0023】次に図13を参照すると、同図には、マウ
ス事象を受け取るたびに呼び出される図2のペン拡張部
39の機能を示す高レベル流れ図が示されている。この
機能は、通常、マウスまたはペンが動いている間に毎秒
60〜100回呼び出される。というのは、これがこの
ような装置の標準的な報告速度であるからである。ポイ
ンティング・デバイスの増分運動ごとに、ポインタ形状
は新しい位置に描き直す必要がある。ポインティング・
デバイスが任意のタイプの入力フィールドの上にある
と、オペレーティング・システムまたはアプリケーショ
ンは、Iビームをペイントして、キーボード入力が許さ
れていることをユーザに通知する。ポインタが現在、I
ビームである場合、図13の機能により、オペレーティ
ング・システムは図4のペン・ポインタ形状69をペイ
ントすることになる。
【0024】ブロック1500から始まり、現行ポイン
タのIDを照会し、現行ポインタがシステムIビームで
あるか(判断ブロック1510)または別のシステム・
ポインタであるか(判断ブロック1520)を確認する
ためにテストする。そのポインタがシステムIビームで
ある場合、システムはブロック1570でそのポインタ
形状をペンに変更し、ブロック1580で終了する。
【0025】そのポインタがオペレーティング・システ
ムによって供給された他のポインタの1つである場合、
システムは追加アクションを一切行わず、ブロック15
80で終了する。そうではない場合、システムは、ブロ
ック1530で図12によるポインタ・テーブル140
0にアクセスし、現行ポインタID用の項目が存在する
かどうかを判定する。
【0026】図12に移行すると、ポインタ・テーブル
1400は、ポインタID1405、プロセスID14
10、Iビーム・フラグ1415などの列を有するテー
ブルである。好ましい実施例のポインタ・テーブル14
00は、行0〜249に最高250項目まで保持できる
ように構築されている。後で詳述するように、ポインタ
・テーブルは、新しいポインタが認識されたときに項目
を追加し、アプリケーションがシャットダウンされたと
きに項目を削除することによって管理される。
【0027】図13に戻ると、判断ブロック1540で
ポインタ・テーブル1400が現行ポインタ用の項目を
含む場合、システムは、判断ブロック1560でそのテ
ーブル項目にIビームとしてのフラグが付いているかど
うかをテストするために分岐する。フラグが付いている
場合、システムはブロック1570でペン・ポインタを
ペイントし、付いていない場合、プロセスはブロック1
580で終了する。判断ブロック1540でのポインタ
・テーブル項目のテストで不合格になった場合、そのポ
インタのIビーム形状をテストするために別のルーチン
が呼び出されるが、これについては全体をプロセス・ブ
ロック1550に示し、詳しくは図15ないし図21に
示す。判断ブロック1560でそのポインタがIビーム
であるとルーチンが示す場合、システムはブロック15
70でポインタをペンに変更し、そうではない場合、ル
ーチンは1580で終了する。
【0028】図15を参照すると、図13のブロック1
550でIビーム形状をテストするルーチンは、アプリ
ケーション供給の各ポインタごとに1回ずつしか呼び出
されないことに留意されたい。これは、ポインタのIビ
ーム形状のテスト結果が肯定であるかどうかにかかわら
ず、図15のルーチンがブロック1750および178
0で各ポインタ・フラグごとにポインタ・テーブル14
00のIビーム・フラグ列1415に項目を1つずつ作
成するからである。特定のポインタIDについてポイン
タ・テーブル1400の項目が存在すると、図13の判
断ブロック1540のテーブル項目テストの結果が必ず
真になり、Iビーム認識プロセスによって発生するオー
バヘッドが防止される。大多数のアプリケーションがシ
ステム供給Iビームとその他のシステム・ポインタを使
用し、非システム・ポインタは1回しかテストされない
ということにより、この機能の処理要件が最小限に維持
される。システムにかかる追加の負荷は、洗練され見識
のあるユーザでも認識できないほどである。
【0029】次に図14を参照すると、同図には、ポイ
ンタ形状をテストし監視できるようにペン拡張部モジュ
ール39(図2)を準備するためにブート時にどのよう
な前処理が必要かを示している。ブロック1600で
は、ポインタ・テーブル1400内の有効項目の数がゼ
ロになる。好ましい実施例では、Windows(TM)のI
ビーム・ポインタの迅速テストを促進するために、ブロ
ック1610でWindowsのIビーム・ビットマップのコ
ピーがロードされ、ブロック1620で照会され、ブロ
ック1630でグローバル・メモリ内に移動される。
【0030】好ましいオペレーティング・システムであ
るOS/2では、独自のDOS仮想計算機に各Windows
アプリケーションをロードすることにより、固有のWind
owsアプリケーションを実行することができる。この実
施態様の難点は、すべてのアプリケーションが同一のWi
ndows供給Iビーム・ポインタを使用していても、活動
状態の各Windowsアプリケーションに固有のIビーム・
ポインタIDが1つずつ与えられることである。認識プ
ロセスの速度を上げるため、現行ポインタとの高速メモ
リ間比較を行えるように、標準のWindowsIビームのビ
ットマップがメモリに保持される。
【0031】初期設定の最後のステップでは、システム
供給IビームのIDがブロック1640で照会される。
これは、図13の判断ブロック1510のテストで使用
するIDである。
【0032】図15は、高レベル認識プロセスを示して
いる。ブロック1700で概略を示すように、システム
は、現行ポインタのビットマップをメモリにコピーする
ためのルーチンを呼び出すが、そのメモリではビットマ
ップを検査し操作することができる。図16はこの処理
を示している。ただし、ペン拡張部モジュール39は、
アプリケーションと同じようにビットマップにアクセス
できるわけではないことに留意されたい。というのは、
このモジュールはオペレーティング・システムの拡張部
として動作しているため、アプリケーションの環境につ
いてはほとんど把握していないからである。このため、
ペン拡張部37は非常に間接的かつ遠回しのやり方でビ
ットマップ・データにアクセスしなければならない。周
知のOS/2システムAPIを使用して、ブロック18
00でプレゼンテーション・スペースが割り振られ、ブ
ロック1810でポインタ形状ビットマップのハンドル
が照会される。次に、ビットマップがプレゼンテーショ
ン・スペースに設定されるが、これは、ブロック183
0でグラフィック・エンジンの制限付きメモリからビッ
トマップ・データを読み取り、ペン拡張部のグローバル
・メモリに読み込むための前処理である。ビットマップ
・データが得られると、ブロック1840でそれがプレ
ゼンテーション・スペースから削除され、ブロック18
50でプレゼンテーション・スペース資源が割振り解除
される。
【0033】図15に戻ると、ブロック1700でビッ
トマップ・データを照会後、システムは、ブロック17
10で最適化メモリ間比較を実行し、ポインタがWindow
sのIビームであるかどうかを確認する。1720で比
較の結果、同じであると判明した場合、ブロック178
0でポインタ・テーブル1400に項目が追加され、ブ
ロック1785でその項目にIビームとしてのフラグが
付けられ、1790で有効ポインタ・テーブル項目数が
増分される。ポインタ・テーブル1400は250項目
を含み、ブロック1530で費やす探索時間を短縮する
ように構築されており、最後の有効項目が見つかった
後、探索が中断されるので、有効ポインタ項目数は慎重
に管理される。
【0034】判断ブロック1720での比較の結果、偽
であると判明した場合は、ポインタに関する追加テスト
を行うためにブロック1730で別のルーチンが呼び出
される。このルーチンが判断ブロック1740で否定の
結果を報告した場合、ブロック1750でポインタ・テ
ーブルに項目が追加され、ブロック1760でその項目
に非Iビームとしてのフラグが付けられ、ブロック17
70で有効ポインタ・テーブル項目数が増分され、ブロ
ック1775でそのルーチンが呼出しルーチンに否定の
結果を返す。判断ブロック1740での比較の結果、真
であると判明した場合は、ブロック1780でポインタ
・テーブルに項目が追加され、ブロック1785でその
項目にIビームとしてのフラグが付けられ、ブロック1
790で有効ポインタ・テーブル項目数が増分され、ブ
ロック1795でその結果が返される。
【0035】図6を参照すると、同図には、任意のIビ
ーム・ポインタ形状のビットマップ・アレイ510が示
されている。ビットマップ・アレイ510は、32×3
2の2進データからなるアレイであり、Iビーム形状の
ペルが1で示されている。ただし、ビットマップ・アレ
イ510のIビームは、9列と14行を占有する28個
のペルを含むことに留意されたい。さらに、そのIビー
ムはビットマップ・アレイ510内の任意の位置に位置
決めされていることに留意されたい。
【0036】図17は、近似Iビーム形状、たとえば、
図6のIビーム形状のテストの流れを示している。図1
8ないし図21に示すようにこのルーチンおよびその補
助サブルーチンによる処理を合理化するため、ブロック
1900でビットマップ・アレイが8ビットから32ビ
ットの位置合せに変換される。データを再フォーマット
することにより発生する不利益は、所与の時点では32
ビットで動作するCPU命令の使用により十二分に補正
される。図9は、ビット・アレイ510を8ビット60
0から32ビット610の位置合せに変換する場合を示
している。ブロック1910では、テスト中のポインタ
のタイプとディスプレイの解像度に応じてポインタ形状
マスクが選択される。VGA解像度用のマスク710と
XGA解像度用のマスク810を図10と図11にそれ
ぞれ示す。様々なマスクを使用すると、ポインタ形状認
識の正確さが増す。ブロック1920では、ブロック1
930でANDマスクとORマスクを結合するための準
備として、ビットマップのANDマスクがその1の補数
に変換される。ポインタの形状はANDマスクまたはO
Rマスクあるいはその両方にコード化することができる
ので、ポインタ形状全体を確実に考慮に入れるために、
2つのマスクを結合する。また、ANDマスクは通常、
すべて1であり、ポインタ形状をコード化するためにゼ
ロに変化するので、正反対であるORマスクのフォーマ
ットと一致するようにブロック1920で反転される。
【0037】この時点でビットマップは2つのマスクか
ら1つに削減されているが、マスクと照らし合わせてポ
インタ形状をテストするため、ポインタ形状をさらに分
離しなければならない。これを実施するため、ブロック
1940でポインタ形状を左寄せし、ブロック1950
でビットマップ・アレイの下部に寄せるためのサブルー
チンが呼び出される。しかし、イメージを下寄せする前
に、システムは判断ブロック1945で、ポインタがブ
ランクであるかどうかを確認するためのテストを行う。
ポインタがブランクであることは珍しいことではない。
ブランクである場合、処理は停止し、ブロック1955
でルーチンが否定の結果を返す。左寄せおよび下寄せの
処理の結果はそれぞれ図7のビットマップ・アレイ52
0と図8のビットマップ・アレイ530になる。
【0038】ポインタのイメージは既知の位置にあるの
で、ブロック1960でマスク外のビットが1に設定さ
れているかどうかを判定するために別のサブルーチンが
呼び出される。わずか1つのビットでもマスク外で1に
設定されている場合、判断ブロック1965のテストで
不合格になり、ブロック1985で呼出しサブルーチン
に偽が返される。判断ブロック1965でいずれのビッ
トもマスク外で1に設定されていない場合、形状マスク
下に設定されているビットの数をカウントするためにブ
ロック1975で別のサブルーチンが呼び出される。判
断ブロック1975で十分な数のビットが1に設定され
ている場合、ポインタ形状はほぼIビームであると見な
され、ブロック1980で真が返される。形状がIビー
ムであるかどうかを判定するために使用するしきい値は
経験に基づいて設定され、現在、そのアルゴリズムはV
GA解像度の場合は17ビットが1に設定され、XGA
の場合は24ビットが1に設定されていると予想する。
【0039】次に、図17のブロック1940、195
0、1960、1970で呼び出される4つのサブルー
チンについて詳しく検討する。ビットマップの左寄せに
ついては図18に示す。ポインタ形状イメージは、右寄
せではなく左寄せされる。というのは、ビットマップの
走査線は必ず32ビットの倍数でコード化しなければな
らないからである。これは、ビデオ操作を最適化し、メ
モリをビデオ・ハードウェアに直接マッピングできるよ
うにするために行われる。このため、そのイメージが2
番目の32ビット・ワードのうちのわずか数ビットしか
使用しなくても、解像度が32×32ペルから64×6
4ペルの間のビットマップは、必ず走査線当たり64ビ
ットのデータを有することになる。このような余分なビ
ットは埋込みと呼ばれ、図11のビットマップ・アレイ
810の列820に示されているが、アルゴリズムが右
寄せを使用する場合は、まず、ゼロの埋込みを越えてイ
メージをシフトさせなければならないはずである。これ
は時間のかかることである。32×32を上回る解像度
のビットマップを処理する場合、ポインタ・イメージは
通常、ビットマップの左端により接近することになる。
【0040】図18のブロック2000では、走査線の
数がビットマップ・ヘッダからロードされる。次に、サ
ブルーチンはブロック2010〜2050のループに入
り、そこでブロック2010で各走査線の左端のビット
が1であるかどうかがテストされる。各走査線のテスト
後、判断ブロック2020で左端のビットがすべて0で
あるかどうかを確認するためにテストが行われる。すべ
て0である場合、ポインタ・イメージの先頭はまだ突き
止められていないので、ブロック2030で各走査線が
1ビットずつ左にシフトされ、ブロック2040でシフ
ト・カウントが増分される。判断ブロック2050で
は、シフトしたビットの数が走査線の数以上であるかを
確認するためにテストが行われる。このテストは、ポイ
ンタ形状がブランクの場合を見つけて、無限ループを防
止するものである。判断ブロック2050でシフト・カ
ウントが走査線カウントを上回る場合、サブルーチンは
ブロック2060で単に真を返すだけである。判断ブロ
ック2020で全走査線のうちの1本の左端のビットが
最終的に1を含むまで、ブロック2030のイメージの
左シフトが続行される。このような事態が発生すると、
このイメージは完全に左寄せされ、サブルーチンはブロ
ック2070で偽を返す。
【0041】図19は、認識アルゴリズムの次のステッ
プの流れを示し、そこで左寄せしたイメージが下寄せさ
れる。入口では、最後または最下部の走査線からテスト
が始まるように、ブロック2100で走査線ポインタが
ビットマップ・アレイの下部に設定される。ブロック2
100〜2130でループに入り、そのうちの判断ブロ
ック2110では各走査線の全体に非ゼロ・ビットがな
いかどうかテストされる。非ゼロ・ビットが一切見つか
らない場合、ブロック2120で走査線ポインタが減分
される。判断ブロック2130で走査線ポインタがビッ
トマップの最上部の走査線を指し示す場合、ルーチンは
ブロック2140で復帰する。そうではない場合、ルー
プが終了し、サブルーチンの残り半分に移行する点にポ
インタ・イメージの最下部が位置していることを意味す
る非ゼロ走査線が見つかるまで、ループが反復する。
【0042】サブルーチンの残り半分では、イメージの
最下部にある走査線を指し示すようにブロック2150
でソース・ポインタが初期設定され、ブロック2155
でビットマップ・アレイの最下部を指し示すようにター
ゲット・ポインタが設定される。これらのポインタは、
イメージを有効に下寄せする、ビットマップのメモリ間
転送を実行するために使用する。これは、2165から
2185までの操作によって制限されるループで実施さ
れる。各走査線はブロック2160で1つずつ転送さ
れ、その都度、ブロック2175と2180でソース・
ポインタとターゲット・ポインタがそれぞれ減分され
る。各走査線の転送後、現行ソース・ポインタがビット
マップの最上部を指し示しているかどうかを確認するた
めに判断ブロック2165でテストが行われる。指し示
している場合、ビットマップ全体が転送されるように、
ソース・ポインタはブロック2170でビットマップの
最下部に折り返す。最終的には、判断ブロック2185
でターゲット・ポインタがビットマップの最上部にヒッ
トして転送の完了を意味し、ループは終了し、サブルー
チンはブロック2190で復帰する。
【0043】図20は、形状マスク外で1に設定された
ビットがないかどうか、ポインタ・イメージをテストす
る論理の流れを示している。この場合も、走査線ポイン
タは、ブロック2200でポインタ・イメージの既知の
先頭であるアレイの最下部に設定される。形状マスク・
ポインタも、ビットマップ走査線と固定して調和するよ
うにブロック2210でマスク上の最下部に設定され
る。ブロック2220〜2290のループは、ブロック
2220でその1の補数を取り、ブロック2230でA
ND演算を使用することにより、マスク線を反転するも
のであり、判断ブロック2240でその関連ビットマッ
プ走査線と照らし合わせてそれをテストする。ほぼIビ
ームである形状は、マスク外に設定されたビットを含ま
なくなる。非ゼロ・ビットが見つかった場合、サブルー
チンは2250で真を返し、呼出しルーチンに対して非
Iビーム形状を示す。見つからない場合は、判断ブロッ
ク2260で、ポインタがビット・アレイの最上部に達
し、テストの完了を通知するかどうかを確認するための
テストが行われる。達していない場合、走査線ポインタ
とマスク線ポインタはブロック2280と2290でそ
れぞれ減分され、ブロック2220に戻ってループが反
復する。判断ブロック2260で走査線に達している場
合、マスク外ではいずれのビットも見つかっていないの
で、サブルーチンはブロック2270で偽を返す。
【0044】図21は、認識アルゴリズムの最終作業ル
ーチンである。すべての非ゼロ・ビットが形状マスク下
にある場合は、2つの形状がぴったり一致していること
を意味することがこれまでに分かっている。最後のタス
クは、マスク下に設定されているビットをカウントし、
それがIビームとしての資格があるかどうかを確認する
ことである。実際には、このステップでは形状マスクは
不要である。というのは、すべての非ゼロ・ビットがマ
スク内にあるからである。ループ変数を初期設定する
と、シフト・カウント、走査線カウント、ビット・カウ
ントがいずれもブロック2300、2305、2310
でそれぞれクリアされる。次に、2つの事前定義定数で
ある非ゼロ・マスク線の数と非ゼロ・マスク列の数は、
ループ内で使用するために、ブロック2315と232
0でそれぞれロードされる。ブロック2325では現行
走査線ポインタがビットマップ・アレイの最下部に設定
され、次にコードは、内部ループ2330〜2350と
外部ループ2355〜2370に入る。内部ループ23
30〜2350は各非ゼロ・ビットを含む各走査線を調
査し、外部ループ2355〜2370は各走査線全体で
反復する。
【0045】判断ブロック2330では、現行走査線の
左端のビットが1であるかどうかがテストされる。それ
が1である場合、ブロック2335でビット・カウント
が増分される。いずれの場合も、シフト・カウントはブ
ロック2340で必ず増分され、シフトしたビットの数
が非ゼロ列の数と等しいかどうかを確認するために判断
ブロック2345でテストが行われる。1ではない場
合、ブロック2350で走査線全体が1ビットずつ左に
シフトされ、判断ブロック2330に戻ってループが反
復する。判断ブロック2345で、シフトしたビットの
数が非ゼロ・マスク列の数と等しい場合、シフト・カウ
ントはブロック2355でクリアされ、次の走査線を検
査するためにブロック2360で走査線ポインタが減分
される。判断ブロック2365で、検査した走査線の数
が非ゼロ・マスク走査線の数と等しい場合、マスク下の
すべての走査線がテスト済みであり、サブルーチンはブ
ロック2375でカウントした非ゼロ・ビットの総数を
返す。そうではない場合、走査線カウントはブロック2
370で増分され、判断ブロック2330で内部ループ
の最上部に戻って外部ループが反復する。このようにし
て、ポインタ形状内のすべての非ゼロ・ビットがカウン
トされ、呼出しルーチンに返される。
【0046】前述のように、有効ポインタ・テーブル1
400の項目のカウントは慎重に管理されている。マウ
ス移動の処理中に新しいアプリケーション供給ポインタ
IDが発見されると、項目がテーブルに追加される。図
27は、もはや不要になったときに項目が除去されるよ
うにテーブルをさらに管理する方法を示している。図2
7のルーチンは、オペレーティング・システムがアプリ
ケーションを閉じるかまたはシャットダウンするたびに
呼び出される。入口では、項目が存在するかどうかを確
認するために判断ブロック2800で検査が行われる。
存在しない場合、クリーンアップすべきものは一切ない
ので、ルーチンはブロック2880で終了する。判断ブ
ロック2800でテーブルが空ではない場合、ブロック
2810でシャットダウン中のアプリケーションのプロ
セスIDが照会される。ブロック2820では有効項目
の数がロードされ、ブロック2830ではテーブル・ポ
インタがポインタ・テーブル1400内の最初の項目に
設定される。次に、判断ブロック2840でループに入
り、そこで各項目が有効であるかどうかを確認するため
にその項目がテストされる。それが有効である場合、そ
れがシャットダウン中のアプリケーションに属すかどう
かを確認するために、判断ブロックで項目がテストされ
る。属す場合、ブロック2855で有効項目のカウント
が減分され、ブロック2860でその項目がテーブルか
ら除去される。判断2850のテスト結果にかかわら
ず、ブロック2865でループ・カウントが減分され、
ブロック2870でゼロかどうかがテストされる。ゼロ
ではない場合、ポインタ・テーブル1400にまだいく
つか有効な項目があるので、テーブル・ポインタはブロ
ック2875で増分され、ループは判断ブロック284
0に戻って反復する。判断ブロック2840で非有効テ
ーブル項目が見つかった場合、その項目は無視され、ブ
ロック2875でテーブル・ポインタが増分され、やは
りループが反復する。最終的に、すべての有効項目が見
つかり、ブロック2870でループ・カウントがゼロに
なると、ループは終了し、ルーチンはブロック2880
で終了する。ポインタ・テーブル1400は250項目
を含むように構築されているが、ほとんどの実際の場合
には最小数の項目しか検査されない。
【0047】図28を参照すると、同図には、Windows
(TM)の砂時計ポインタ用のビットマップ2410が
示されている。図28の砂時計ポインタ形状を検査する
と、その砂時計が「ウェストが細い」形状であり、マス
クを有効にするためにも、それはウェストが細くなけれ
ばならないはずであることが分かる。マスクのウェスト
を太くすればするほど、形状がより四角形に近くなり、
その結果、認識精度が低下するはずである。また、図3
1および図32に見られるように、マスクとポインタ形
状の位置合せ不良が発生すると、その結果、砂時計ポイ
ンタ形状を認識できなくなる可能性がある。図31は砂
時計ポインタへの微細形状マスク用のビット・アレイ2
610を示し、図32は砂時計ポインタ2620用のビ
ット・アレイを示している。砂時計形状2620は依然
として砂時計として認識可能であるが、短いので、走査
線中心点2630に示すようにウェスト位置が低くなっ
ている。したがって、砂時計ポインタ2620の幅広の
最上部は走査線中心点2640に示すマスク2610の
ウェストと一致し、それにより、認識アルゴリズムはマ
スク外の非ゼロ・ビットのために不合格になるはずであ
る。
【0048】形状マスクに関する潜在的な問題は、図3
2の砂時計マスクのようにマスクが大きくなればなるほ
ど、非砂時計形状がマスク下に入る可能性が高くなるこ
とである。150程度の高いビット・カウントしきい値
は効果的なフィルタ処理をもたらしうるが、必ずしもす
べての場合に有効なわけではない。砂時計のように珍し
く、しかもビットしきい値が高い場合でも、図34のビ
ットマップ2810のクィーン・ポインタ形状などのそ
の他の形状は両方のテストを通過するはずである。クィ
ーン・ポインタを使用中アプリケーションと誤解する
と、重大な使用可能度の問題が発生する恐れがある。
【0049】このような問題に対処するため、第2の実
施例は、図29および図30にそれぞれ示す粗大マスク
2510と微細マスク2520を使用する、変更済みで
はあるがわずかに長いアルゴリズムを使用し、図33に
示すようにポインタ・イメージの対称の考慮に入れるも
のである。
【0050】図33を参照すると、砂時計ポインタ・イ
メージ2710がその走査線中心点2715とその列中
心点2720の両方について対称であることが分かるだ
ろう。走査線中心点2715と列中心点2720は、ポ
インタ・イメージ2710を4つの4分割部分に分割す
る。
【0051】図22は、本発明の第2の実施例のわずか
に変更した論理を示している。図22に入ると、ポイン
タ形状はすでに左寄せおよび下寄せされており、ブロッ
ク2400で粗大マスク外に非ゼロ・ビットがあるかど
うかのテストが行われる。粗大マスクは、砂時計の設計
においては相当な破格を許しながら、大部分の非砂時計
ポインタを除去するように設計されている。判断ブロッ
ク2410で粗大マスク外にビットが設定されている場
合、処理は停止され、ブロック2495で偽が返され
る。判断ブロック2410でビットが一切設定されてい
ない場合、ポインタ形状はブロック2420で微細マス
クの上にセンタリングされる。
【0052】図23は、図31および図32に示す走査
線不一致の問題を解消するためのセンタリング技法の流
れを示している。2つのループに入るが、そこでシステ
ムはブロック2500で非ゼロ・ポインタ走査線の数を
カウントし、ブロック2510で非ゼロ・ポインタ列の
数をカウントする。その結果得られる非ゼロの走査線と
列のカウントをブロック2520で2で割り、ポインタ
形状の中心点を計算する。また、微細形状マスクの中心
点も、このような2つの既知の定数を取り、ブロック2
530で2で割ることによって計算される。次に、2つ
の被比較数の2つの中心点間の差を求めるため、ブロッ
ク2540で微細ブロックの中心点XおよびYからポイ
ンタ形状の中心点XおよびYを引く。ただし、ポインタ
形状は微細マスクより大きくはならないので、計算した
XおよびYの変位はゼロまたは正数になりうるが、けっ
して負数にはならないことに留意されたい。
【0053】列(X)と走査線(Y)の変位が分かる
と、微細マスクは、ブロック2550で列変位と等しい
量だけ左寄せされ、ブロック2560で走査線変位と等
しい量だけ下寄せされる。このような操作の正味の影響
は、ポインタ形状の中心点の上に微細マスクの中心点を
重ねることである。ポインタ形状と微細マスクを重ねる
ことにより、マスクはより小さくよりぴったりの輪郭を
備えたシルエットを有することができ、それにより、認
識精度が高まる。ルーチンは、対称テストで使用すべき
ポインタの中心点を渡す際にブロック2570で呼出し
側に戻る。
【0054】もう一度図22を参照すると、ブロック2
450でシステムは、4分割部分によって微細マスク下
に設定されたビットをカウントするためのサブルーチン
を呼び出す。図33は、ポインタ・イメージの中心点を
原点として共用する4分割部分の順序を示している。図
25は、4分割部分によって微細マスク下のビットをカ
ウントするサブルーチンである。図25のサブルーチン
は、マスク下のビットをカウントする前述の第1の実施
例の図21のサブルーチンと同じであるが、各4分割部
分ごとに個別のビット・カウンタが管理される。ブロッ
ク2705では、4つの4分割ビット・カウンタがすべ
てクリアされる。ビット・カウントは図21のように内
部ループおよび外部ループによって始まるが、判断ブロ
ック2730で非ゼロ・ビットが検出され、ブロック2
732で4分割部分カウントを増分するためのサブルー
チンが呼び出される。
【0055】図26は、どの4分割部分にビットが配置
されているかを判定するための論理の流れを示してい
る。このサブルーチンへの入口では、列カウントと走査
線カウントが偶数か奇数かを確認するために判断ブロッ
ク2771、2772、2773で3通りのテストが行
われる。対称かどうかをテストするため、イメージは対
称の半分ずつに分割しなければならず、列または走査線
が奇数の場合は、中央の列または走査線が対称軸になる
ので、この列または走査線は無視しなければならない。
列または走査線が偶数の場合、実際の対称線は2つの列
または行同士の間に入り、計算した中心点の列および行
はそれぞれ4分割部分3と4または3と2の一部にな
る。列と走査線のカウントの関係を確立した後、270
1〜2704、2706〜2709、2716〜271
9、2721〜2724の操作は、新たに見つかったビ
ットがどの4分割部分に入るかを判定するためのふるい
として機能する。列または走査線のカウントが奇数の場
合、対称軸上で見つかったビットはカウントされず、論
理はブロック2763で復帰するだけである。操作27
51〜2754は適切な4分割部分カウントを増分し、
サブルーチンは2763で復帰する。
【0056】図26のサブルーチンから復帰すると、図
25のブロック2735で非ゼロ・ビットの総数が増分
される。判断ブロック2765ですべての走査線が検査
されると、外部ループは終了し、すべてのビット・カウ
ントはブロック2775で呼出しルーチンに返される。
【0057】もう一度図22に戻ると、判断ブロック2
460でのビット・カウントのテストは、経験に基づい
て150ビットに設定されている、砂時計形状に適した
しきい値を使用する。テストで不合格になると、ブロッ
ク2495で否定の結果が返される。そうではない場
合、ブロック2470でポインタ・イメージが対称かど
うか検査される。
【0058】図24は、対称検査サブルーチンの論理の
流れを示している。ブロック2600では、この特定の
ポインタ形状について対称検査が必要かどうかを判定す
るために、図30の砂時計用の微細形状マスクに照会す
る。判断ブロック2610で検査が一切不要である場
合、システムは単にブロック2680で対称に関する肯
定表示を呼出し側に返すだけである。砂時計の場合、列
と走査線両方の対称が必要なので、判断ブロック262
0の操作の結果、真であると判明し、論理はブロック2
630に移行し、そこで列対称線の両側の列ビット・カ
ウントがまとめて加算される。この2通りのカウントが
比較され、判断ブロック2640でその差が3ペルを上
回る場合、両側は非対称であると見なされ、ブロック2
690でサブルーチンは否定表示を返す。そうではない
場合、判断ブロック2650で走査線対称も検査しなけ
ればならないかどうかを確認するために検査が行われ
る。検査する必要がない場合、サブルーチンはブロック
2680で肯定を返して終了する。そうではない場合、
操作2660が実行され、そこで走査線対称線の両側の
4分割部分ビット・カウントが加算される。判断ブロッ
ク2670でこの2つのカウントの差が3ビットを上回
る場合、ポインタは垂直軸に対して非対称であると見な
され、ブロック2690で否定の結果が返される。そう
ではない場合、サブルーチンはブロック2680で呼出
しルーチンに真を返す。図34のクィーン・ポインタを
テストした場合、そのポインタは水平軸に対する対称テ
ストで不合格になるはずである。
【0059】もう一度図22を参照すると、呼び出され
たサブルーチンの復帰の処理後、判断ブロック2480
で必要な対称についてテストが行われ、それに応じてブ
ロック2490または2495で真または偽の表示がそ
れぞれ返される。
【0060】この変更により、第2のマスクを処理しな
ければならず、2つのイメージを重ね、対称を検査する
ことから、わずかなパフォーマンス上の不利益が発生す
るが、この不利益は、認識アルゴリズムの信頼性の向上
によって軽減される。また、この不利益は、ポインタ・
タイプによって条件づけられた対称検査を使用すること
により、さらに軽減される。
【0061】上記の説明により、本発明は、ポインタ形
状の認識を十分実施できるようになっていることが分か
るだろう。テキスト・ポインタ形状がIビームの形状に
近くなければならないとすると、本発明は、ポインタ形
状がIビームの視覚的外観を有するかどうかを判定する
ために光学認識を実行するために、ポインタのビットマ
ップを検査する。ポインタ形状は、Iビームのサイズ、
形状、特徴の点で相当な変形が可能なIビームのマスク
と照らし合わせてテストされるが、Iビームの妥当な模
写ではない形状は拒否される。
【0062】本発明では、数多くの変数を考慮してい
る。たとえば、VGA、SVGA、XGA解像度のディ
スプレイ・ドライバなどの複数のディスプレイ解像度
は、それぞれ異なるポインタ・ビットマップ・サイズ
(たとえば、32×32、40×40)を備えている可
能性がある。ポインタ解像度の差は、ポインタ・サイズ
に基づいて形状マスクを選択することにより、認識アル
ゴリズムにとって透過なものになる。本発明は、マウス
・ポインタにカラーを使用しても影響を受けない。カラ
ー変動は無視され、ポインタはモノクロの場合と同じよ
うに処理される。
【0063】ポインタ形状は標準的なビットマップでは
ない。ポインタ・ビットマップは、実際には、所望のポ
インタ形状を除いて透過なポインタ形状イメージを生成
するために結合するカラー・インデックス値のアレイと
ともに、XORマスクとANDマスクという2つのマス
クから構成される。ポインタ形状は、XORマスクまた
はANDマスクあるいはその両方にコード化することが
できる。XORマスクは、通常、0であり、その形状
は、0のビットを1のビットに変換することによってコ
ード化される。これに対して、ANDマスクは、通常、
すべて1であり、形状をコード化するために0に変換さ
れる。
【0064】32×32ペルのポインタ形状は1024
ペルを含み、そのうちの18程度は形状の定義に使用す
ることができる。ポインタの設計者は、ビットマップの
境界内であればどこでも自由にポインタをコード化する
ことができる。この問題を回避するため、本発明では、
ポインタ・イメージをビットマップ内に配置し、次にそ
のイメージをビットマップの左下に再配置する。
【0065】本発明では、独創的なIビーム形状のため
に相当な破格を認めるが、Iビーム以外の形状は相当な
確実さで拒否する。正確さを高めるため、一部のポイン
タ形状では、テスト中のポインタ形状がより高い解像度
のマスクと正確に位置合せされるような、余分な操作が
認識プロセスで必要な場合もある。さらに、垂直軸また
は水平軸あるいはその両方に対して対称なポインタ形状
についてより厳重なフィルタ処理を行うため、システム
は、テスト中のポインタ形状にこのような対称があるか
どうか探索する場合もある。
【0066】ビットマップは、デバイス・ドライバ・レ
ベルの高速転送に対応できるように構築されている。し
たがって、左上端のビットは最終的に2進フォーマット
の左下端のビットになる。さらに、ビットマップは、イ
メージ内で連続する2つのビットがバイト境界を横切る
のであれば、15ビットで分離できることを意味するバ
イト・アレイである。これはいずれも、処理前にビット
マップについて重大なビット操作を行う必要がある。2
つの連続ビットは、ビットマップ・データを8ビット・
データではなく32ビット・データとして扱うときに不
連続になる可能性がある。したがって、本発明では、ビ
ットマップ・データを8ビットから32ビットの位置合
せに再フォーマットする。
【0067】ペンベース・システムには、すべてのアプ
リケーション定義ポインタについてマウス移動またはペ
ンダウン事象を基礎とする光学認識など、計算上の集中
操作を可能にしないような非常に厳重なパフォーマンス
要件がある。アプリケーション定義のポインタをテキス
トまたは非テキスト・ポインタ形状として分類するプロ
セスは、システムの応答性またはパフォーマンスに対し
て識別できるほどの影響を及ぼさない程度まで最適化さ
れる。
【0068】本発明の好ましい実施例ではテキスト・ウ
ィンドウ域を非テキスト・ウィンドウ域から区別するた
めにIビーム・ポインタ形状の光学認識を使用するが、
本発明は、ポインティング・デバイスがアプリケーショ
ンを移動するときに、ユーザが行うように、前記アプリ
ケーションの特定の状態を把握することによりオペレー
ティング・システムが利益を得るような、どのようなタ
スクでも実施することができる。アプリケーションが現
在使用中であり、ユーザ入力を処理できない時期を判定
するために、砂時計または時計の認識を使用する、第2
の実施例が記載されている。
【0069】2通りの特定の実施例について開示してき
たが、本発明の精神および範囲を逸脱せずにこのような
特定の実施例に対して変更を加えることができること
は、当業者であれば分かるだろう。さらに、このような
実施例は、例示のみを目的とするものであり、本発明の
範囲を制限したり、特許請求の範囲を狭めるためのもの
であると解釈してはならない。
【0070】まとめとして、本発明の構成に関して以下
の事項を開示する。
【0071】(1)システムIビーム・ポインタIDを
有するシステムIビーム・ポインタを有するペンベース
・コンピュータ・システムにおいて、ポインタの位置が
文字データを受け入れることができることを判定する方
法であって、前記ポインタがポインタIDを有し、前記
方法が、前記ポインタIDが前記システムIビーム・ポ
インタIDと等しいかどうかを判定するステップと、前
記ポインタIDが前記システムIビーム・ポインタID
と等しくない場合に、前記ポインタIDがポインタID
のテーブルに入っていて、Iビーム・ポインタであると
いうフラグが前記テーブル内に付いているかどうかを判
定するステップと、前記ポインタIDが前記ポインタI
Dのテーブルに入っていない場合に、前記ポインタがI
ビーム形状を有するかどうかを判定するステップとを含
むことを特徴とする方法。 (2)前記ポインタIDが前記システムIビーム・ポイ
ンタIDと等しい場合に、前記ポインタをペン形ポイン
タに変更するステップをさらに含むことを特徴とする、
上記(1)に記載の方法。 (3)前記ポインタIDが前記ポインタIDのテーブル
に入っていて、Iビーム・ポインタであるというフラグ
が前記テーブル内に付いている場合に、前記ポインタを
ペン形ポインタに変更するステップをさらに含むことを
特徴とする、上記(1)に記載の方法。 (4)前記ポインタがIビーム形状を有すると判定され
た場合に、前記ポインタIDを前記ポインタIDのテー
ブルに追加し、Iビーム・ポインタであるというフラグ
を前記ポインタIDに付けるステップをさらに含むこと
を特徴とする、上記(1)に記載の方法。 (5)前記ポインタがIビーム形状を有すると判定され
た場合に、前記ポインタをペン形ポインタに変更するス
テップをさらに含むことを特徴とする、上記(1)に記
載の方法。 (6)前記ポインタがIビーム形状を有するかどうかを
判定する前記ステップが、前記ポインタを事前定義Iビ
ーム・ポインタ形マスクと比較するステップを含むこと
を特徴とする、上記(1)に記載の方法。 (7)前記ポインタがIビーム形状を有するかどうかを
判定する前記ステップが、前記ポインタのすべての画素
が前記Iビーム・ポインタ形マスク内に入っている場合
に、前記ポインタを構成する画素の数をカウントするス
テップをさらに含むことを特徴とする、上記(6)に記
載の方法。 (8)前記ポインタを構成する画素の数が所定のしきい
値を上回る場合に、前記ポインタをペン形ポインタに変
更するステップをさらに含むことを特徴とする、上記
(7)に記載の方法。 (9)前記ポインタがビット・マップ内にあり、前記方
法が、前記ビット・マップを8ビットから32ビットの
位置合せに変換するステップを含むことを特徴とする、
上記(6)に記載の方法。 (10)前記ポインタがビット・マップ内にあり、前記
方法が、前記ビット・マップ内で前記ポインタを左寄せ
し、下寄せするステップを含むことを特徴とする、上記
(6)に記載の方法。 (11)非システム・ポインタがシステム・ポインタと
同等であることを判定する方法において、前記非システ
ム・ポインタがポインタIDを有し、前記方法が、前記
ポインタIDがポインタIDのテーブルに入っていて、
前記システム・ポインタと同等であるというフラグが前
記テーブル内に付いているかどうかを判定するステップ
と、前記ポインタIDが前記ポインタIDのテーブルに
入っていない場合に、前記非システム・ポインタの形状
に基づいて、前記非システム・ポインタが前記システム
・ポインタと同等であるかどうかを判定するステップと
を含むことを特徴とする方法。 (12)形状に基づいて、前記非システム・ポインタが
前記システム・ポインタと同等であると判定された場合
に、前記ポインタIDを前記ポインタIDのテーブルに
追加し、前記システム・ポインタと同等であるというフ
ラグを前記ポインタIDに付けるステップをさらに含む
ことを特徴とする、上記(11)に記載の方法。 (13)形状に基づいて、前記非システム・ポインタが
前記システム・ポインタと同等であるかどうかを判定す
る前記ステップが、前記非システム・ポインタを事前定
義マスクと比較するステップを含むことを特徴とする、
上記(11)に記載の方法。 (14)形状に基づいて、前記非システム・ポインタが
前記システム・ポインタと同等であるかどうかを判定す
る前記ステップが、前記非システム・ポインタのすべて
の画素が前記マスク内に入る場合に、前記非システム・
ポインタを構成する画素の数をカウントするステップを
さらに含むことを特徴とする、上記(13)に記載の方
法。 (15)形状に基づいて、前記非システム・ポインタが
前記システム・ポインタと同等であるかどうかを判定す
る前記ステップが、前記非システム・ポインタを構成す
る画素の数が所定のしきい値を上回る場合に、前記非シ
ステム・ポインタが所定の対称条件を満足するかどうか
を判定するステップをさらに含むことを特徴とする、上
記(14)に記載の方法。 (16)形状に基づいて、前記非システム・ポインタが
前記システム・ポインタと同等であるかどうかを判定す
る前記ステップが、前記非システム・ポインタを事前定
義粗大マスクと比較するステップを含むことを特徴とす
る、上記(11)に記載の方法。 (17)形状に基づいて、前記非システム・ポインタが
前記システム・ポインタと同等であるかどうかを判定す
る前記ステップが、前記非システム・ポインタのすべて
の画素が前記粗大マスク内に入る場合に、前記非システ
ム・ポインタを事前定義微細マスクと比較するステップ
を含むことを特徴とする、上記(16)に記載の方法。 (18)形状に基づいて、前記非システム・ポインタが
前記システム・ポインタと同等であるかどうかを判定す
る前記ステップが、前記非システム・ポインタのすべて
の画素が前記微細マスク内に入る場合に、前記非システ
ム・ポインタを構成する画素の数をカウントするステッ
プをさらに含むことを特徴とする、上記(17)に記載
の方法。 (19)形状に基づいて、前記非システム・ポインタが
前記システム・ポインタと同等であるかどうかを判定す
る前記ステップが、前記非システム・ポインタを構成す
る画素の数が所定のしきい値を上回る場合に、前記非シ
ステム・ポインタが所定の対称条件を満足するかどうか
を判定するステップをさらに含むことを特徴とする、上
記(18)に記載の方法。 (20)前記非システム・ポインタが砂時計ポインタで
あることを特徴とする、上記(11)に記載の方法。 (21)前記非システム・ポインタがIビーム・ポイン
タであることを特徴とする、上記(11)に記載の方
法。 (22)ディスプレイと、前記ディスプレイ上に表示可
能なシステムIビーム・ポインタとを有するペンベース
・コンピュータ・システムにおいて、前記システムIビ
ーム・ポインタがシステムIビーム・ポインタIDを有
し、ポインタによって示される前記ディスプレイ上の位
置が文字データを受け入れることができることを判定す
るシステムであって、前記ポインタがポインタIDを有
し、前記システムが、前記ポインタIDが前記システム
Iビーム・ポインタIDと等しいかどうかを判定する手
段と、前記ポインタIDが前記システムIビーム・ポイ
ンタIDと等しくない場合に、前記ポインタIDがポイ
ンタIDのテーブルに入っていて、Iビーム・ポインタ
であるというフラグが前記テーブル内に付いているかど
うかを判定する手段と、前記ポインタIDが前記ポイン
タIDのテーブルに入っていない場合に、前記ポインタ
がIビーム形状を有するかどうかを判定する手段とを含
むことを特徴とするシステム。 (23)前記ポインタがIビーム形状を有すると判定さ
れた場合に、前記ポインタIDを前記ポインタIDのテ
ーブルに追加し、Iビーム・ポインタであるというフラ
グを前記ポインタIDに付ける手段をさらに含むことを
特徴とする、上記(22)に記載のシステム。 (24)前記ポインタがIビーム形状を有するかどうか
を判定する手段が、前記ポインタを事前定義Iビーム・
ポインタ形マスクと比較する手段を含むことを特徴とす
る、上記(22)に記載のシステム。 (25)前記ポインタがIビーム形状を有するかどうか
を判定する前記手段が、前記ポインタのすべての画素が
前記Iビーム・ポインタ形マスク内に入っている場合
に、前記ポインタを構成する画素の数をカウントする手
段をさらに含むことを特徴とする、上記(24)に記載
のシステム。 (26)ディスプレイを有するコンピュータ・システム
において、非システム・ポインタがシステム・ポインタ
と同等であることを判定するシステムであって、前記非
システム・ポインタがポインタIDを有し、前記システ
ムが、前記ポインタIDがポインタIDのテーブルに入
っていて、前記システム・ポインタと同等であるという
フラグが前記テーブル内に付いているかどうかを判定す
る手段と、前記ポインタIDが前記ポインタIDのテー
ブルに入っていない場合に、前記非システム・ポインタ
の形状に基づいて、前記非システム・ポインタが前記シ
ステム・ポインタと同等であるかどうかを判定する手段
とを含むことを特徴とするシステム。 (27)形状に基づいて、前記非システム・ポインタが
前記システム・ポインタと同等であると判定された場合
に、前記ポインタIDを前記ポインタIDのテーブルに
追加し、前記システム・ポインタと同等であるというフ
ラグを前記ポインタIDに付ける手段を含むことを特徴
とする、上記(26)に記載のシステム。 (28)形状に基づいて、前記非システム・ポインタが
前記システム・ポインタと同等であるかどうかを判定す
る前記手段が、前記非システム・ポインタを事前定義マ
スクと比較する手段を含むことを特徴とする、上記(2
6)に記載のシステム。 (29)形状に基づいて、前記非システム・ポインタが
前記システム・ポインタと同等であるかどうかを判定す
る前記手段が、前記非システム・ポインタのすべての画
素が前記マスク内に入る場合に、前記非システム・ポイ
ンタを構成する画素の数をカウントする手段を含むこと
を特徴とする、上記(28)に記載のシステム。 (30)形状に基づいて、前記非システム・ポインタが
前記システム・ポインタと同等であるかどうかを判定す
る前記手段が、前記非システム・ポインタを構成する画
素の数が所定のしきい値を上回る場合に、前記非システ
ム・ポインタが所定の対称条件を満足するかどうかを判
定する手段を含むことを特徴とする、上記(29)に記
載のシステム。 (31)形状に基づいて、前記非システム・ポインタが
前記システム・ポインタと同等であるかどうかを判定す
る前記手段が、前記非システム・ポインタを事前定義粗
大マスクと比較する手段を含むことを特徴とする、上記
(26)に記載のシステム。 (32)形状に基づいて、前記非システム・ポインタが
前記システム・ポインタと同等であるかどうかを判定す
る前記手段が、前記非システム・ポインタのすべての画
素が前記粗大マスク内に入る場合に、前記非システム・
ポインタを事前定義微細マスクと比較する手段を含むこ
とを特徴とする、上記(31)に記載のシステム。 (33)形状に基づいて、前記非システム・ポインタが
前記システム・ポインタと同等であるかどうかを判定す
る前記手段が、前記非システム・ポインタのすべての画
素が前記微細マスク内に入る場合に、前記非システム・
ポインタを構成する画素の数をカウントする手段を含む
ことを特徴とする、上記(32)に記載のシステム。 (34)形状に基づいて、前記非システム・ポインタが
前記システム・ポインタと同等であるかどうかを判定す
る前記手段が、前記非システム・ポインタを構成する画
素の数が所定のしきい値を上回る場合に、前記非システ
ム・ポインタが所定の対称条件を満足するかどうかを判
定する手段を含むことを特徴とする、上記(33)に記
載のシステム。 (35)前記非システム・ポインタが砂時計ポインタで
あることを特徴とする、上記(26)に記載のシステ
ム。 (36)前記非システム・ポインタがIビーム・ポイン
タであることを特徴とする、上記(26)に記載のシス
テム。
【図面の簡単な説明】
【図1】本発明によるシステムのハードウェア・ブロッ
ク図である。
【図2】本発明の主要ソフトウェア構成要素のアーキテ
クチャ図である。
【図3】Iビーム・ポインタ形状を表示する編集可能テ
キスト・ウィンドウの絵画表現である。
【図4】ペン・ポインタ形状を表示する編集可能テキス
ト・ウィンドウの絵画表現である。
【図5】様々なIビーム・ポインタを示す絵画表現であ
る。
【図6】ポインタ・イメージに見られるようにIビーム
・ポインタを示す図である。
【図7】左寄せイメージに見られるようにIビーム・ポ
インタを示す図である。
【図8】左下寄せイメージに見られるようにIビーム・
ポインタを示す図である。
【図9】8ビット・データと32ビット・データの両方
としてフォーマットされたビットマップを示す図であ
る。
【図10】VGA表示解像度用のIビーム・ポインタ形
状マスクを示す図である。
【図11】XGA表示解像度用のIビーム・ポインタ形
状マスクを示す図である。
【図12】本発明によるポインタ・テーブルの図であ
る。
【図13】本発明のIビーム・ポインタ形状認識方法お
よびシステムの好ましいソフトウェア実施態様の流れ図
である。
【図14】本発明のIビーム・ポインタ形状認識方法お
よびシステムの好ましいソフトウェア実施態様の流れ図
である。
【図15】本発明のIビーム・ポインタ形状認識方法お
よびシステムの好ましいソフトウェア実施態様の流れ図
である。
【図16】本発明のIビーム・ポインタ形状認識方法お
よびシステムの好ましいソフトウェア実施態様の流れ図
である。
【図17】本発明のIビーム・ポインタ形状認識方法お
よびシステムの好ましいソフトウェア実施態様の流れ図
である。
【図18】本発明のIビーム・ポインタ形状認識方法お
よびシステムの好ましいソフトウェア実施態様の流れ図
である。
【図19】本発明のIビーム・ポインタ形状認識方法お
よびシステムの好ましいソフトウェア実施態様の流れ図
である。
【図20】本発明のIビーム・ポインタ形状認識方法お
よびシステムの好ましいソフトウェア実施態様の流れ図
である。
【図21】本発明のIビーム・ポインタ形状認識方法お
よびシステムの好ましいソフトウェア実施態様の流れ図
である。
【図22】アプリケーションが使用中または使用不能状
態になっている場合を判定するために砂時計ポインタ形
状認識が実行される、本発明の代替実施例の好ましいソ
フトウェア実施態様の流れ図である。
【図23】アプリケーションが使用中または使用不能状
態になっている場合を判定するために砂時計ポインタ形
状認識が実行される、本発明の代替実施例の好ましいソ
フトウェア実施態様の流れ図である。
【図24】アプリケーションが使用中または使用不能状
態になっている場合を判定するために砂時計ポインタ形
状認識が実行される、本発明の代替実施例の好ましいソ
フトウェア実施態様の流れ図である。
【図25】アプリケーションが使用中または使用不能状
態になっている場合を判定するために砂時計ポインタ形
状認識が実行される、本発明の代替実施例の好ましいソ
フトウェア実施態様の流れ図である。
【図26】アプリケーションが使用中または使用不能状
態になっている場合を判定するために砂時計ポインタ形
状認識が実行される、本発明の代替実施例の好ましいソ
フトウェア実施態様の流れ図である。
【図27】アプリケーションがシャットダウンされたと
きにポインタ項目がポインタ・テーブルから除去される
場合の流れ図である。
【図28】Windows(TM)の砂時計による「アプリケ
ーション使用中」ポインタ形状の絵画表現である。
【図29】砂時計ポインタ形状用の粗大マスクを表す図
である。
【図30】砂時計ポインタ形状用の微細マスクを表す図
である。
【図31】砂時計ポインタ・イメージと微細マスクとの
位置合せ不良を示す図である。
【図32】砂時計ポインタ・イメージと微細マスクとの
位置合せ不良を示す図である。
【図33】砂時計ポインタ形状の対称線および4分割部
分を示す図である。
【図34】チェス・プログラム・アプリケーションのク
ィーン・ポインタ形状を示す図である。
【符号の説明】
10 パーソナル・コンピュータ・システム 11 プロセッサ 13 ランダム・アクセス・メモリ 15 中央演算処理装置(CPU) 17 ハード・ディスク記憶装置 19 フロッピー・ディスク装置 21 ディスケット 23 ディスプレイ 25 キーボード 27 マウス 29 ペンまたはスタイラス 31 プリンタ

Claims (36)

    【特許請求の範囲】
  1. 【請求項1】システムIビーム・ポインタIDを有する
    システムIビーム・ポインタを有するペンベース・コン
    ピュータ・システムにおいて、ポインタの位置が文字デ
    ータを受け入れることができることを判定する方法であ
    って、前記ポインタがポインタIDを有し、前記方法
    が、 前記ポインタIDが前記システムIビーム・ポインタI
    Dと等しいかどうかを判定するステップと、 前記ポインタIDが前記システムIビーム・ポインタI
    Dと等しくない場合に、前記ポインタIDがポインタI
    Dのテーブルに入っていて、Iビーム・ポインタである
    というフラグが前記テーブル内に付いているかどうかを
    判定するステップと、 前記ポインタIDが前記ポインタIDのテーブルに入っ
    ていない場合に、前記ポインタがIビーム形状を有する
    かどうかを判定するステップとを含むことを特徴とする
    方法。
  2. 【請求項2】前記ポインタIDが前記システムIビーム
    ・ポインタIDと等しい場合に、前記ポインタをペン形
    ポインタに変更するステップをさらに含むことを特徴と
    する、請求項1に記載の方法。
  3. 【請求項3】前記ポインタIDが前記ポインタIDのテ
    ーブルに入っていて、Iビーム・ポインタであるという
    フラグが前記テーブル内に付いている場合に、前記ポイ
    ンタをペン形ポインタに変更するステップをさらに含む
    ことを特徴とする、請求項1に記載の方法。
  4. 【請求項4】前記ポインタがIビーム形状を有すると判
    定された場合に、前記ポインタIDを前記ポインタID
    のテーブルに追加し、Iビーム・ポインタであるという
    フラグを前記ポインタIDに付けるステップをさらに含
    むことを特徴とする、請求項1に記載の方法。
  5. 【請求項5】前記ポインタがIビーム形状を有すると判
    定された場合に、前記ポインタをペン形ポインタに変更
    するステップをさらに含むことを特徴とする、請求項1
    に記載の方法。
  6. 【請求項6】前記ポインタがIビーム形状を有するかど
    うかを判定する前記ステップが、 前記ポインタを事前定義Iビーム・ポインタ形マスクと
    比較するステップを含むことを特徴とする、請求項1に
    記載の方法。
  7. 【請求項7】前記ポインタがIビーム形状を有するかど
    うかを判定する前記ステップが、 前記ポインタのすべての画素が前記Iビーム・ポインタ
    形マスク内に入っている場合に、前記ポインタを構成す
    る画素の数をカウントするステップをさらに含むことを
    特徴とする、請求項6に記載の方法。
  8. 【請求項8】前記ポインタを構成する画素の数が所定の
    しきい値を上回る場合に、前記ポインタをペン形ポイン
    タに変更するステップをさらに含むことを特徴とする、
    請求項7に記載の方法。
  9. 【請求項9】前記ポインタがビット・マップ内にあり、
    前記方法が、 前記ビット・マップを8ビットから32ビットの位置合
    せに変換するステップを含むことを特徴とする、請求項
    6に記載の方法。
  10. 【請求項10】前記ポインタがビット・マップ内にあ
    り、前記方法が、 前記ビット・マップ内で前記ポインタを左寄せし、下寄
    せするステップを含むことを特徴とする、請求項6に記
    載の方法。
  11. 【請求項11】非システム・ポインタがシステム・ポイ
    ンタと同等であることを判定する方法において、前記非
    システム・ポインタがポインタIDを有し、前記方法
    が、 前記ポインタIDがポインタIDのテーブルに入ってい
    て、前記システム・ポインタと同等であるというフラグ
    が前記テーブル内に付いているかどうかを判定するステ
    ップと、 前記ポインタIDが前記ポインタIDのテーブルに入っ
    ていない場合に、前記非システム・ポインタの形状に基
    づいて、前記非システム・ポインタが前記システム・ポ
    インタと同等であるかどうかを判定するステップとを含
    むことを特徴とする方法。
  12. 【請求項12】形状に基づいて、前記非システム・ポイ
    ンタが前記システム・ポインタと同等であると判定され
    た場合に、前記ポインタIDを前記ポインタIDのテー
    ブルに追加し、前記システム・ポインタと同等であると
    いうフラグを前記ポインタIDに付けるステップをさら
    に含むことを特徴とする、請求項11に記載の方法。
  13. 【請求項13】形状に基づいて、前記非システム・ポイ
    ンタが前記システム・ポインタと同等であるかどうかを
    判定する前記ステップが、 前記非システム・ポインタを事前定義マスクと比較する
    ステップを含むことを特徴とする、請求項11に記載の
    方法。
  14. 【請求項14】形状に基づいて、前記非システム・ポイ
    ンタが前記システム・ポインタと同等であるかどうかを
    判定する前記ステップが、 前記非システム・ポインタのすべての画素が前記マスク
    内に入る場合に、前記非システム・ポインタを構成する
    画素の数をカウントするステップをさらに含むことを特
    徴とする、請求項13に記載の方法。
  15. 【請求項15】形状に基づいて、前記非システム・ポイ
    ンタが前記システム・ポインタと同等であるかどうかを
    判定する前記ステップが、 前記非システム・ポインタを構成する画素の数が所定の
    しきい値を上回る場合に、前記非システム・ポインタが
    所定の対称条件を満足するかどうかを判定するステップ
    をさらに含むことを特徴とする、請求項14に記載の方
    法。
  16. 【請求項16】形状に基づいて、前記非システム・ポイ
    ンタが前記システム・ポインタと同等であるかどうかを
    判定する前記ステップが、 前記非システム・ポインタを事前定義粗大マスクと比較
    するステップを含むことを特徴とする、請求項11に記
    載の方法。
  17. 【請求項17】形状に基づいて、前記非システム・ポイ
    ンタが前記システム・ポインタと同等であるかどうかを
    判定する前記ステップが、 前記非システム・ポインタのすべての画素が前記粗大マ
    スク内に入る場合に、前記非システム・ポインタを事前
    定義微細マスクと比較するステップを含むことを特徴と
    する、請求項16に記載の方法。
  18. 【請求項18】形状に基づいて、前記非システム・ポイ
    ンタが前記システム・ポインタと同等であるかどうかを
    判定する前記ステップが、 前記非システム・ポインタのすべての画素が前記微細マ
    スク内に入る場合に、前記非システム・ポインタを構成
    する画素の数をカウントするステップをさらに含むこと
    を特徴とする、請求項17に記載の方法。
  19. 【請求項19】形状に基づいて、前記非システム・ポイ
    ンタが前記システム・ポインタと同等であるかどうかを
    判定する前記ステップが、 前記非システム・ポインタを構成する画素の数が所定の
    しきい値を上回る場合に、前記非システム・ポインタが
    所定の対称条件を満足するかどうかを判定するステップ
    をさらに含むことを特徴とする、請求項18に記載の方
    法。
  20. 【請求項20】前記非システム・ポインタが砂時計ポイ
    ンタであることを特徴とする、請求項11に記載の方
    法。
  21. 【請求項21】前記非システム・ポインタがIビーム・
    ポインタであることを特徴とする、請求項11に記載の
    方法。
  22. 【請求項22】ディスプレイと、前記ディスプレイ上に
    表示可能なシステムIビーム・ポインタとを有するペン
    ベース・コンピュータ・システムにおいて、前記システ
    ムIビーム・ポインタがシステムIビーム・ポインタI
    Dを有し、ポインタによって示される前記ディスプレイ
    上の位置が文字データを受け入れることができることを
    判定するシステムであって、前記ポインタがポインタI
    Dを有し、前記システムが、 前記ポインタIDが前記システムIビーム・ポインタI
    Dと等しいかどうかを判定する手段と、 前記ポインタIDが前記システムIビーム・ポインタI
    Dと等しくない場合に、前記ポインタIDがポインタI
    Dのテーブルに入っていて、Iビーム・ポインタである
    というフラグが前記テーブル内に付いているかどうかを
    判定する手段と、 前記ポインタIDが前記ポインタIDのテーブルに入っ
    ていない場合に、前記ポインタがIビーム形状を有する
    かどうかを判定する手段とを含むことを特徴とするシス
    テム。
  23. 【請求項23】前記ポインタがIビーム形状を有すると
    判定された場合に、前記ポインタIDを前記ポインタI
    Dのテーブルに追加し、Iビーム・ポインタであるとい
    うフラグを前記ポインタIDに付ける手段をさらに含む
    ことを特徴とする、請求項22に記載のシステム。
  24. 【請求項24】前記ポインタがIビーム形状を有するか
    どうかを判定する手段が、 前記ポインタを事前定義Iビーム・ポインタ形マスクと
    比較する手段を含むことを特徴とする、請求項22に記
    載のシステム。
  25. 【請求項25】前記ポインタがIビーム形状を有するか
    どうかを判定する前記手段が、 前記ポインタのすべての画素が前記Iビーム・ポインタ
    形マスク内に入っている場合に、前記ポインタを構成す
    る画素の数をカウントする手段をさらに含むことを特徴
    とする、請求項24に記載のシステム。
  26. 【請求項26】ディスプレイを有するコンピュータ・シ
    ステムにおいて、非システム・ポインタがシステム・ポ
    インタと同等であることを判定するシステムであって、
    前記非システム・ポインタがポインタIDを有し、前記
    システムが、 前記ポインタIDがポインタIDのテーブルに入ってい
    て、前記システム・ポインタと同等であるというフラグ
    が前記テーブル内に付いているかどうかを判定する手段
    と、 前記ポインタIDが前記ポインタIDのテーブルに入っ
    ていない場合に、前記非システム・ポインタの形状に基
    づいて、前記非システム・ポインタが前記システム・ポ
    インタと同等であるかどうかを判定する手段とを含むこ
    とを特徴とするシステム。
  27. 【請求項27】形状に基づいて、前記非システム・ポイ
    ンタが前記システム・ポインタと同等であると判定され
    た場合に、前記ポインタIDを前記ポインタIDのテー
    ブルに追加し、前記システム・ポインタと同等であると
    いうフラグを前記ポインタIDに付ける手段を含むこと
    を特徴とする、請求項26に記載のシステム。
  28. 【請求項28】形状に基づいて、前記非システム・ポイ
    ンタが前記システム・ポインタと同等であるかどうかを
    判定する前記手段が、 前記非システム・ポインタを事前定義マスクと比較する
    手段を含むことを特徴とする、請求項26に記載のシス
    テム。
  29. 【請求項29】形状に基づいて、前記非システム・ポイ
    ンタが前記システム・ポインタと同等であるかどうかを
    判定する前記手段が、 前記非システム・ポインタのすべての画素が前記マスク
    内に入る場合に、前記非システム・ポインタを構成する
    画素の数をカウントする手段を含むことを特徴とする、
    請求項28に記載のシステム。
  30. 【請求項30】形状に基づいて、前記非システム・ポイ
    ンタが前記システム・ポインタと同等であるかどうかを
    判定する前記手段が、 前記非システム・ポインタを構成する画素の数が所定の
    しきい値を上回る場合に、前記非システム・ポインタが
    所定の対称条件を満足するかどうかを判定する手段を含
    むことを特徴とする、請求項29に記載のシステム。
  31. 【請求項31】形状に基づいて、前記非システム・ポイ
    ンタが前記システム・ポインタと同等であるかどうかを
    判定する前記手段が、 前記非システム・ポインタを事前定義粗大マスクと比較
    する手段を含むことを特徴とする、請求項26に記載の
    システム。
  32. 【請求項32】形状に基づいて、前記非システム・ポイ
    ンタが前記システム・ポインタと同等であるかどうかを
    判定する前記手段が、 前記非システム・ポインタのすべての画素が前記粗大マ
    スク内に入る場合に、前記非システム・ポインタを事前
    定義微細マスクと比較する手段を含むことを特徴とす
    る、請求項31に記載のシステム。
  33. 【請求項33】形状に基づいて、前記非システム・ポイ
    ンタが前記システム・ポインタと同等であるかどうかを
    判定する前記手段が、 前記非システム・ポインタのすべての画素が前記微細マ
    スク内に入る場合に、前記非システム・ポインタを構成
    する画素の数をカウントする手段を含むことを特徴とす
    る、請求項32に記載のシステム。
  34. 【請求項34】形状に基づいて、前記非システム・ポイ
    ンタが前記システム・ポインタと同等であるかどうかを
    判定する前記手段が、 前記非システム・ポインタを構成する画素の数が所定の
    しきい値を上回る場合に、前記非システム・ポインタが
    所定の対称条件を満足するかどうかを判定する手段を含
    むことを特徴とする、請求項33に記載のシステム。
  35. 【請求項35】前記非システム・ポインタが砂時計ポイ
    ンタであることを特徴とする、請求項26に記載のシス
    テム。
  36. 【請求項36】前記非システム・ポインタがIビーム・
    ポインタであることを特徴とする、請求項26に記載の
    システム。
JP9123899A 1996-05-31 1997-05-14 ポインタ位置に文字データを受け入れられることを判定する方法およびシステム Pending JPH1083274A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/660056 1996-05-31
US08/660,056 US5898422A (en) 1996-05-31 1996-05-31 Method and system for recognition of pointers

Publications (1)

Publication Number Publication Date
JPH1083274A true JPH1083274A (ja) 1998-03-31

Family

ID=24647945

Family Applications (1)

Application Number Title Priority Date Filing Date
JP9123899A Pending JPH1083274A (ja) 1996-05-31 1997-05-14 ポインタ位置に文字データを受け入れられることを判定する方法およびシステム

Country Status (5)

Country Link
US (1) US5898422A (ja)
EP (1) EP0810514B1 (ja)
JP (1) JPH1083274A (ja)
DE (1) DE69719404T2 (ja)
SG (1) SG52944A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3837812B2 (ja) * 1997-01-30 2006-10-25 株式会社ワコム カートリッジ付コードレス電子ペン
EP1717679B1 (en) 1998-01-26 2016-09-21 Apple Inc. Method for integrating manual input
US7345681B2 (en) * 2004-02-17 2008-03-18 Microsoft Corporation Pen data capture and injection
USD559856S1 (en) * 2006-07-25 2008-01-15 Samsung Electronics Co., Ltd. Generated image for display on a portable telephone
US8130203B2 (en) 2007-01-03 2012-03-06 Apple Inc. Multi-touch input discrimination
US8269727B2 (en) 2007-01-03 2012-09-18 Apple Inc. Irregular input identification
US7855718B2 (en) * 2007-01-03 2010-12-21 Apple Inc. Multi-touch input discrimination
JP5361358B2 (ja) * 2008-12-11 2013-12-04 キヤノン株式会社 情報処理装置およびその制御方法、並びにプログラム
JP2010181616A (ja) * 2009-02-05 2010-08-19 Canon Inc 表示装置及び表示方法
US20110157001A1 (en) * 2009-07-09 2011-06-30 Nokia Corporation Method and apparatus for display framebuffer processing
US9690599B2 (en) 2009-07-09 2017-06-27 Nokia Technologies Oy Method and apparatus for determining an active input area
JP5840174B2 (ja) * 2013-06-21 2016-01-06 キヤノン株式会社 情報処理装置、その装置の制御方法、プログラム
US10097538B1 (en) * 2017-08-12 2018-10-09 Growpath, Inc. User authentication systems and methods

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4686332A (en) * 1986-06-26 1987-08-11 International Business Machines Corporation Combined finger touch and stylus detection system for use on the viewing surface of a visual display device
US4625202A (en) * 1983-04-08 1986-11-25 Tektronix, Inc. Apparatus and method for generating multiple cursors in a raster scan display system
JP2557359B2 (ja) * 1986-12-26 1996-11-27 株式会社東芝 情報処理装置
US5007085A (en) * 1988-10-28 1991-04-09 International Business Machines Corporation Remotely sensed personal stylus
US5252951A (en) * 1989-04-28 1993-10-12 International Business Machines Corporation Graphical user interface with gesture recognition in a multiapplication environment
US5157384A (en) * 1989-04-28 1992-10-20 International Business Machines Corporation Advanced user interface
US5255363A (en) * 1990-06-19 1993-10-19 Mentor Graphics Corporation Graph-based programming system and associated method
AU8649291A (en) * 1990-09-06 1992-03-30 Next Computer, Inc. Method and apparatus for identifying wait states and for providing a wait cursor in a computer system
US5276816A (en) * 1990-12-31 1994-01-04 International Business Machines Corporation Icon object interface system and method
US5231698A (en) * 1991-03-20 1993-07-27 Forcier Mitchell D Script/binary-encoded-character processing method and system
US5664210A (en) * 1991-08-19 1997-09-02 International Business Machines Corporation Method and system of providing multiple selections in text on a computer display
GB2266823A (en) * 1992-04-21 1993-11-10 Ibm Correlation of cursor position in a computer system
US5442376A (en) * 1992-10-26 1995-08-15 International Business Machines Corporation Handling multiple command recognition inputs in a multi-tasking graphical environment
US5515081A (en) * 1993-11-30 1996-05-07 Borland International, Inc. System and methods for improved storage and processing of BITMAP images
US5586243A (en) * 1994-04-15 1996-12-17 International Business Machines Corporation Multiple display pointers for computer graphical user interfaces
US5473343A (en) * 1994-06-23 1995-12-05 Microsoft Corporation Method and apparatus for locating a cursor on a computer screen
US5570113A (en) * 1994-06-29 1996-10-29 International Business Machines Corporation Computer based pen system and method for automatically cancelling unwanted gestures and preventing anomalous signals as inputs to such system

Also Published As

Publication number Publication date
SG52944A1 (en) 1998-09-28
EP0810514A2 (en) 1997-12-03
EP0810514A3 (en) 1998-09-16
US5898422A (en) 1999-04-27
EP0810514B1 (en) 2003-03-05
DE69719404D1 (de) 2003-04-10
DE69719404T2 (de) 2003-12-04

Similar Documents

Publication Publication Date Title
US5847705A (en) Display system and memory architecture and method for displaying images in windows on a video display
EP1703364B1 (en) Word or character boudary-based scratch-out gesture recognition
US5586237A (en) Method for generating and displaying content-based depictions of computer generated objects
US5862256A (en) Distinguishing gestures from handwriting in a pen based computer by size discrimination
US6356281B1 (en) Method and apparatus for displaying translucent overlapping graphical objects on a computer monitor
US6091430A (en) Simultaneous high resolution display within multiple virtual DOS applications in a data processing system
USRE36137E (en) Instruction input system for electronic processor
KR100464194B1 (ko) 데이타 처리 시스템내의 표시영역에 적합한 아이콘 크기의 자동 조정
US5828783A (en) Apparatus and method for input-processing hand-written data
JPH1083274A (ja) ポインタ位置に文字データを受け入れられることを判定する方法およびシステム
US5887155A (en) Vertex based geometry engine system for use in integrated circuit design
US20070013722A1 (en) Context map in computer display magnification
EP0607130B1 (en) Image position interpretation in a graphics system
US4814755A (en) Interactive display system
US5742280A (en) Hand-written graphic form inputting apparatus
US5592604A (en) Method and system for indicating boundaries of connected data subsets
GB2266823A (en) Correlation of cursor position in a computer system
US6344856B1 (en) Text optimization
US6480124B2 (en) CAD data compressing method and apparatus thereof
US5659674A (en) System and method for implementing an operation encoded in a graphics image
US6304270B1 (en) Method and apparatus for determining simple convex polygons
JPS58211186A (ja) 分割画面表示制御方式
US5644691A (en) Method and apparatus for accelerated filling of polygons on a computer display by rectangular decomposition
JP3184662B2 (ja) 文書作成装置及び漢字混じりかな漢字変換方法
US20040233164A1 (en) Method and apparatus for displaying hardware crosshair cursor in a specified region of a display

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060310

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071001

A131 Notification of reasons for refusal

Effective date: 20071017

Free format text: JAPANESE INTERMEDIATE CODE: A131

A521 Written amendment

Effective date: 20071217

Free format text: JAPANESE INTERMEDIATE CODE: A523

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080124