(57)【要約】【課題】従来技術より少ない情報でも同等の性能と精度を提供することが可能なワイヤレスポインティングデバイスを提供する。【解決手段】本発明は、スクリーンポインタの位置を制御する装置を提供する。この装置は、装置と面との間の相対的な動作を感知して対応する動作データを生成する動作センサを含む。動作センサは、動作データを表わす圧縮されたデータを生成するように構成される。この装置は、圧縮データをワイヤレス送信するワイヤレス送信器を含む。【選択図】図１
2005302022.tif 000002
【特許請求の範囲】
【請求項１】
スクリーンポインタの位置を制御する装置であって、
前記装置と面との間の相対的な動作を感知し、対応する動作データを生成する動作センサを有し、該動作センサは、前記動作データを表す圧縮されたデータを生成するように構成されており、
前記圧縮されたデータをワイヤレス送信するワイヤレス送信器
を有する装置。
【請求項２】
前記圧縮されたデータは、動作のマグニチュードを表すマグニチュード値と、動作の角度を表す角度値とを含む、請求項１に記載の装置。
【請求項３】
前記マグニチュード値と角度値は、圧縮アルゴリズムに基づいて圧縮される、請求項２に記載の装置。
【請求項４】
前記圧縮されたデータは、前記装置と前記面の間の加速度を示す加速度データを含む、請求項１に記載の装置。
【請求項５】
前記加速度データは圧縮アルゴリズムに基づいて圧縮される、請求項４に記載の装置。
【請求項６】
前記動作センサは圧縮アルゴリズムに基づいて圧縮されたデータを生成するように構成される、請求項１に記載の装置。
【請求項７】
前記圧縮アルゴリズムは対数ベースの圧縮アルゴリズムである、請求項６に記載の装置。
【請求項８】
前記動作センサは、現在の報告周期に関して、前記動作データと前記圧縮されたデータの間の差を識別し、前記識別された差に基づいて、次の報告周期に関する動作データを調整するように構成される、請求項６に記載の装置。
【請求項９】
前記装置は、以前の動作報告以降に動作に変化があったときだけ、前記圧縮されたデータをワイヤレス送信するように構成される、請求項１に記載の装置。
【請求項１０】
ワイヤレスポインティングデバイスで動作データを生成する方法であって、
前記デバイスと面との間の相対的な動作を感知し、対応する動作データを生成するステップと、
前記動作データの圧縮された表現を生成するステップと、
前記圧縮された表現をワイヤレス送信するステップと、を含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に、ディスプレイ画面上でポインタを制御する装置に関し、より具体的には、圧縮データをワイヤレス送信してスクリーンポインタの位置を制御する装置に関する。
【背景技術】
【０００２】
種々のタイプのポインティングデバイスの１つの形態は、マウスパッドと共に使用される従来の機械式のマウスである。機械式のマウスは、典型的にはマウスの動きとともにマウスパッド上を転がる、ゴムで覆われたスチール製の球を含む。マウスの内部にはローラまたはホイールがあり、ローラまたはホイールは球の赤道（equator）で球に接触し、球の回転をマウスの動きの直交成分を表わす電気信号に変換する。これらの電気信号はコンピュータに結合され、コンピュータでは、ソフトウェアが信号に応答し、マウスの動作に従ってポインタ（カーソル）の表示位置を、ΔＸとΔＹだけ変更する。
【０００３】
従来の機械式マウスなど機械式のタイプのポインティングデバイスの他に、光学式のポインティングデバイスも開発されている。光学式ポインティングデバイスの１つの形態では、球などの可動の機械式要素を使用するのではなく、指（finger）またはデスクトップなどの映像面と、光学式ポインティングデバイス内の画像センサとの相対的な動作を光学的に感知し、動作情報に変換する。
【０００４】
ワイヤレスポインティングデバイスも開発されている。電力消費の制限は、ワイヤレス光学マウスなどのワイヤレスポインティングデバイスにとって重要である。バッテリ寿命はワイヤレスマウスの販売において重要な特徴である。ワイヤレス光学ポインティングデバイスにおける電力消耗の主要な原因の１つは、ワイヤレス通信チャネルである。一部のワイヤレス光学ポインティングデバイスでは、電力供給のおよそ５０％はワイヤレスチャネルのために使用される。この電力のほとんどは、ワイヤレスチャネルを介して送信される動作情報のビット数に比例する。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、従来技術より少ない情報でも同等の性能と精度を提供することが可能なワイヤレスポインティングデバイスを提供することである。
【課題を解決するための手段】
【０００６】
本発明の一形態では、スクリーンポインタの位置を制御する装置を提供する。この装置は、装置と面（surface）との間の相対的な動作を感知して対応する動作データを生成する動作センサを含む。動作センサは、動作データを表わす圧縮されたデータを生成するように構成される。この装置は、圧縮データをワイヤレス送信するワイヤレス送信器を含む。
【発明を実施するための最良の形態】
【０００７】
好ましい実施形態に関する次の説明では、添付図面を参照する。これらの図面は本発明の説明の一部を形成し、本発明を実施する特定の実施形態を例示的に示す。本発明の範囲から離れることなく、他の実施形態を使用でき、また、構造的および論理的な変更を行なえることを理解されたい。したがって、次の詳細な説明は限定的な意味に受け取るべきではなく、本発明の範囲は付随する請求項によって定義される。
【０００８】
Ｉ．  ワイヤレスポインティングデバイス
図１は、本発明の一実施形態によるワイヤレス光学ポインティングデバイス１００の主な構成要素を示す構成図である。光学ポインティングデバイス１００は、光学ナビゲーションセンサ集積回路（ＩＣ）１０１、アンテナ１０２、ワイヤレス送信器／受信器１０４、光源１１８、レンズ１２０を含む。光学ナビゲーションセンサ（動作センサ）１０１は、入出力インタフェース１０６、ナビゲーションプロセッサ１０８、アナログ／デジタルコンバータ（ＡＤＣ）１１２、光検出器アレイ（光アレイ）１１４、光源ドライバ回路１１６を含む。一実施形態では、光学ポインティングデバイス１００は、デスクトップパーソナルコンピュータ、ワークステーション、ポータブルコンピュータ、または、その他の装置のためのワイヤレス光学マウスである。別の実施形態では、光学ポインティングデバイス１００は、ワイヤレス光学指紋感知ポインティングデバイス、または他のポインティングデバイスとして構成される。
【０００９】
一実施形態によれば、動作においては、光源１１８は、光１２２をナビゲーション面１２４に放射する。ナビゲーション面１２４はデスクトップまたは他の適切なイメージング面であり、反射された画像が生成される。一実施形態では、光源１１８は１つまたは複数の発光ダイオード（ＬＥＤ）を含む。別の実施形態では、光源１１８は、コヒーレント光源または少なくとも部分的にコヒーレントな光源である。本発明の一形態では、光源１１８はレーザである。光源１１８はドライバ回路１１６によって制御され、ドライバ回路１１６は制御ライン１１０を介してナビゲーションプロセッサ１０８によって制御される。一実施形態では、ナビゲーションプロセッサ１０８は制御ライン１１０を使用し、ドライバ回路１１６の電力のオンとオフを切り換え、またこれに対応して、光源１１８の電力のオンとオフを切り換える。
【００１０】
面１２４から反射された光はレンズ１２０によって光検出器アレイ１１４上に導かれる。光検出器アレイ１１４中の各光検出器は、光検出器に入射した光の強さに基づいてマグニチュード（magnitude、大きさ）が変わる信号を提供する。光検出器アレイ１１４からの信号はアナログ／デジタルコンバータ１１２に出力され、アナログ／デジタルコンバータ１１２は信号を、たとえば８ビットなどの適切な解像度のデジタル値に変換する。デジタル値は、光学ポインティングデバイス１００の下のデスクトップまたは他のナビゲーション面のうちの一部分のデジタル画像またはデジタル表現を表す。アナログ／デジタルコンバータ１１２が生成したデジタル値は、ナビゲーションプロセッサ１０８に出力される。ナビゲーションプロセッサ１０８が受信したデジタル値は、ナビゲーションプロセッサ１０８のメモリ２０４（図２に示す）内にフレームとして記憶される。
【００１１】
光検出器アレイ１１４の全体のサイズは、好ましくは、いくつかの特徴を有する画像を受信できるように十分に大きい。光学ポインティングデバイス１００がナビゲーション面１２４上を動くと共に、空間的な特徴の画像は、ピクセル情報を翻訳したパターンを生成する。アレイ１１４内の光検出器の数およびそれらの内容がキャプチャされデジタル化されるフレームレートは共同して、面上を動く光学ポインティングデバイス１００のトラッキングできる速度に関して影響を与えることができる。ナビゲーションプロセッサ１０８は、新しくキャプチャしたサンプルフレームと以前にキャプチャした基準フレームと比較することによってトラッキングを行い、動作の方向および量を確認する。
【００１２】
一実施形態では、ナビゲーションプロセッサ１０８は、連続的なフレームの相互相関を行ない、動作情報を決定する。本発明の一形態では、ナビゲーションプロセッサ１０８は、これらの連続的フレームのうちの１フレームの全内容を８方向へ連続的に１ピクセルの距離だけシフトする。これら８方向は、１ピクセルオフセットの試行シフト（one over, one over and one down, one down, one up, one up and one over, one over in the other direction, etc.  すなわち１つ右、１つ右１つ下、１つ下、１つ上、１つ上１つ右、１つ左など）によって与えられる。８つまでの試行が合計される。さらに、動きがない場合があるので、第９の試行「ヌル（null、ゼロ）シフト」も使用される。各試行シフトの後、フレームのうち互いに重複する部分は、ナビゲーションプロセッサ１０８によってピクセルごとのベースで減算され、この結果得られた差を好ましくは平方しついで合計して、重複領域内の同一性（相関）の測定を形成する。別の実施形態では、たとえば２オーバー１ダウンなど、より大きな試行シフトを使用することができる。最小の違いすなわち最も大きな相関を伴う試行シフトを、２つのフレーム間の動きを示すものとして得ることができる。すなわちこれは、スケーリングまたは蓄積し、便利な粒度および適切な情報交換レートで動作情報（ΔＸとΔＹ）を提供する生の動作情報を提供する。これは入出力インタフェース１０６を介してワイヤレス送信器／受信器１０４に出力される。ワイヤレス送信器／受信器１０４は、アンテナ１０２を介してホスト装置に動作情報をワイヤレス送信する。一実施形態では、光学ポインティングデバイス１００は、アンテナ１０２とワイヤレス送信器／受信器１０４を介して、ホスト装置からデータと制御信号を受信するように構成される。
【００１３】
本発明の一形態では、ナビゲーションプロセッサ１０８は、光学ポインティングデバイス１００の１つまたは複数のボタン１２６からボタンプレス情報を受信するように構成される。マウス装置など既存のポインティングデバイスは、典型的にはたとえば左マウスボタンと右マウスボタンという少なくとも２個のボタンを含み、また、一部のマウス装置は８個以上のボタンを含む場合がある。一実施形態では、ナビゲーションプロセッサ１０８は、ユーザが押したボタンを識別するボタンプレス情報を、入出力インタフェース１０６を介してワイヤレス送信器／受信器１０４に出力するように構成される。ついで、ワイヤレス送信器／受信器１０４は、アンテナ１０２を介してホスト装置にボタンプレス情報をワイヤレス送信する。
【００１４】
一実施形態では、ポインティングデバイス１００は、動作情報をホスト装置に規則的な間隔で報告する。この時間間隔を報告周期（reporting period）と呼ぶ。一実施形態では、報告周期は１０ミリ秒である。他の実施形態では、ポインティングデバイス１００は、１０ミリ秒より長いかまたは短い報告周期を使用することができる。本発明の一形態では、ポインティングデバイス１００は毎秒数千の画像をキャプチャし、１０ミリ秒に１度より速いレートでデルタｘとデルタｙの動作情報を計算する。一実施形態では、レポート間隔中にデルタｘ動作情報およびデルタｙ動作情報を蓄積し、次の動作レポートを出力する時間になると、ポインティングデバイス１００は蓄積されたデルタｘデータとデルタｙデータを出力する。
【００１５】
一部の関連技術のポインティングデバイスは、デルタｘ情報を１２ビット、デルタｙ情報を１２ビット、オーバヘッド（overhead）を８ビットで報告していた。他の関連技術のポインティングデバイスは、デルタｘ情報を８ビット、デルタｙ情報を８ビット、オーバヘッドを８ビットで報告していた。したがって、関連技術の装置で、たとえば１０ミリ秒の各報告周期の間に合計で２４ビットまたは３２ビットのいずれかを送信し、動作情報をホスト装置に報告する。
【００１６】
一部の既存のワイヤレスマウスは１／８００インチの解像度を有し、また、トラッキング速度は最高で毎秒１６インチである。１／８００インチの解像度を有するマウスは８００ＣＰＩ（１インチあたりのカウント）の解像度を有すると言われる。そのようなマウスに関しては、１０ミリ秒のレポート間隔で最大の動作は、１間隔あたり±０．１６インチ、または１間隔あたり±１２７インクリメント（increment、増分）である。Ｘ次元とＹ次元について１間隔あたり±１２７インクリメントを表わすために、典型的には、１つの８ビットワードをデルタｘに使用し、別の８ビットワードをデルタｙに使用する。一部の既存のワイヤレスマウスでは、デルタｘを表わす１つの８ビットワード、およびデルタｙを表す別の８ビットワードを、いくつかのオーバーヘッドビットと共に、たとえば１０ミリ秒ごとなど各レポート間隔の間にホスト装置に送信する。
【００１７】
本発明の一形態は、関連技術のワイヤレス通信ポインティングデバイスより少ない数のビットを送信しながら、同等の性能と精度を提供するワイヤレスポインティングデバイスを提供する。送信される情報の低減は、関連技術のワイヤレスポインティングデバイスにと比較すると大幅な電力節約を提供する。一実施形態では、各報告周期の間、デルタｘに関して８ビット、デルタｙに関して８ビットを送信するよりも少ない数のビットを使用する、「Ｒシータ（R-theta）」表現を使用して動作データを送信する。別の実施形態では、たとえばデルタｘとデルタｙの速度データではなく加速度データを送信して、送信されるデータ量を低減する。本発明の別の形態では、圧縮アルゴリズムを使用して、ワイヤレス光学ポインティングデバイスが送信する圧縮された動作データを生成する。次に、図２および図３を参照しながらこれらの実施形態について詳細に説明する。
【００１８】
ＩＩ．  動作の表現
図２は、本発明の一実施形態による、図１の構成図で示されたナビゲーションプロセッサ１０８の主な構成要素を示す構成図である。ナビゲーションプロセッサ１０８は、プロセッサ２０２、メモリ２０４、入出力インタフェース２０６を含み、これらはすべて、通信リンク２０８を介して通信できるように結合されている。メモリ２０４は、デルタｘレジスタ２１０、デルタｙレジスタ２１２、バッファ２１４、ルックアップテーブル（ＬＵＴ）２１６、Ｒシータデータ２１８、加速度データ２２０、圧縮アルゴリズム２２２を含む。一実施形態では、プロセッサ２０２は、連続的にキャプチャされたデジタル画像の相互相関を行ない、画像間の動きを表わすデルタｘ値とデルタｙ値を計算する。本発明の一形態では、デジタル画像は入出力インタフェース２０６を介して受信され、メモリ２０４に記憶される。報告周期の間に計算されたデルタｘとデルタｙ値は蓄積され、それぞれ、デルタｘレジスタ２１０、デルタｙレジスタ２１２に記憶される。一実施形態では、デルタｘ値とデルタｙ値は両方とも１２ビットの値である。別の実施形態では、デルタｘ値とデルタｙ値は両方とも８ビットの値である。次に、図３と図４を参照して、バッファ２１４とルックアップテーブル２１６について説明する。
【００１９】
本発明の一形態では、プロセッサ２０２は、レジスタ２１０に記憶されたデルタｘ値と、レジスタ２１２に記憶されたデルタｙ値に基づいて、各報告周期についてポインティングデバイス１００の動きを表す「Ｒシータ」表現２１８を生成する。Ｒシータ表現（R-theta representation）２１８は、動作のマグニチュードを示すマグニチュード値Ｒ、および、たとえば０度から３６０度の範囲である動作の角度を表わす角度値シータ（theta）を含む。本発明の一形態では、１０ビットのＲシータ値２１８を使用して、マグニチュードＲと角度シータの両方を表わす。一実施形態では、１０ビットのＲシータ値２１８のうち７ビットを使用してマグニチュードＲを表し、１０ビット値のうち３ビットを使用して角度シータを表す。他の実施形態では、異なる合計ビット数、および／または、Ｒとシータの間での異なるビット数の割り当てを、Ｒシータ表現２１８に関して使用することができる。この中には、マグニチュードＲより角度シータに対して多くのビットを使用することも含まれる。本発明の一形態では、プロセッサ２０２は各報告周期の間に１０ビットのＲシータ値２１８を生成し、入出力インタフェース２０６を介してＲシータ値２１８を出力する。Ｒシータ値２１８は、ポインティングデバイス１００によって、送信器／受信器１０４とアンテナ１０２を介してホスト装置にワイヤレス送信される。各報告周期に、デルタｘとデルタｙを表わす２つの８ビット値ではなく１０ビットのＲシータ値２１８を送信することによって、この圧縮した表現を使用して、大幅な省電力が達成される。
【００２０】
本発明の別の形態では、プロセッサ２０２は、計算されたデルタｘ値とデルタｙ値に基づいて加速度値２２０を生成し、ポインティングデバイス１００の動きを表わす。本発明の一形態では、プロセッサ２０２は、デルタｘ値とデルタｙ値を微分することによって加速度値２２０を生成する。ポインティングデバイスは比較的高速で動くことがあるが、典型的には速度の変化、すなわち加速はあまり急速には生じない。したがって、加速度は典型的には比較的小さく、速度より少ないビット数で表わすことができる。
【００２１】
一実施形態では、８ビットの加速度値２２０を使用し、Ｘ次元とＹ次元の両方の加速度を表わす。一実施形態では、８ビットの加速度値２２０のうち４ビットを使用してＸ次元での加速度を表し、残りの４ビットを使用してＹ次元での加速度を表す。別の実施形態では、加速度は典型的にはＹ次元よりＸ次元で大きいので、８ビットの加速度値２２０のうち５ビットを使用してＸ次元での加速度を表し、残りの３ビットを使用してＹ次元での加速度を表す。他の実施形態では、加速度表現２２０に関して、異なるビット合計数、および／または、Ｘ次元とＹ次元の間で異なるビット数の割り当てを使用することができる。
【００２２】
本発明の一形態では、プロセッサ２０２は各報告周期に８ビットの加速度値２２０を生成し、入出力インタフェース２０６を介して加速度値２２０を出力する。加速度値２２０は、ポインティングデバイス１００によって、送信器／受信器１０４とアンテナ１０２を介してホスト装置にワイヤレス送信される。各報告周期に、デルタｘとデルタｙを表わす２つの８ビット値ではなく１つの８ビット加速度値２２０を送信することによって、この圧縮した表現を使用して、大幅な省電力が達成される。
【００２３】
本発明の別の形態では、ポインティングデバイス１００は、加速度値２２０あるいは速度値のいずれかを選択的に送信するように構成される。一実施形態では、たとえばポインティングデバイス１００の速度があらかじめ定義された閾値速度を超過するなどポインティングデバイス１００が比較的高速で動くときには、ポインティングデバイス１００は加速度値２２０を生成してワイヤレス送信し、また、たとえばポインティングデバイス１００の速度が既定の閾値速度以下であるなどポインティングデバイス１００が比較的低速で動くときには、ポインティングデバイス１００はたとえばデルタｘ値とデルタｙ値などの速度値を生成してワイヤレス送信する。このように、正確さがそれほど求められないときにはポインティングデバイス１００はより少ない情報を高速でワイヤレス送信し、正確さが求められるときにはより多くの情報を低速でワイヤレス送信して、速度情報だけを送信する装置より送信エネルギを節約する。
【００２４】
ＩＩＩ．動作データの圧縮
本発明の一形態では、プロセッサ２０２は、動作データに対して圧縮アルゴリズム２２２を実行し、生または元の動作データより少ないビット数でワイヤレス送信できる圧縮された動作データを生成する。プロセッサ２０２によって圧縮される動作データは、デルタｘ値２１０、デルタｙ値２１２、Ｒシータ値２１８、加速度値２２０を含む、いくつかの異なる形態をとることができる。
【００２５】
本発明の一形態は、動作インクリメントの対数だけをホスト装置に送信し、剰余は、連続的に戻されて次の送信に追加される、コード化、すなわち圧縮アルゴリズム２２２を提供する。一実施形態では、デルタｘ値とデルタｙ値は、短い、２を底として四捨五入された対数の表現として報告される。任意の剰余は保持され、次の移動に加えられるので、たとえば１０ミリ秒などの報告周期内のエラーに関しては平均して補正される。この実施形態では、任意の経路に沿った動作はエラーを蓄積しないが、前進は、人の視覚系には見えない瞬間的な顕微鏡的な軸方向のジッタを含む場合がある。一実施形態によって対数圧縮アルゴリズム２２２を使用すると、速い動作については全動作は瞬間的に見えるが、細かな位置決定は数十ミリ秒内に終了する。遅い動作については、トラッキングは本質的に瞬間的である。次に、本発明の一形態による対数圧縮アルゴリズムを、図３と図４を参照しながら詳細に説明する。
【００２６】
図３は、本発明の１つの実施形態による、対数圧縮アルゴリズム２２２に基づく、図１に示されたワイヤレスポインティングデバイス１００で圧縮された動作データを生成する方法３００を示すフロー図である。ステップ３０２では、プロセッサ２０２（図２）はメモリ２０４から現在の報告周期に関するデルタｘ値とデルタｙ値を検索する。ステップ３０４では、プロセッサ２０２は、ステップ３０２で検索された値および前の報告周期で計算された剰余に基づいて、調整された（adjusted）デルタｘ値と調整されたデルタｙ値を計算する。一実施形態では、プロセッサ２０２は、Ｘ次元に関して、ステップ３０２で検索された現在のデルタｘ値と前に決定された剰余を合計することによって、調整されたデルタｘ値を計算し、Ｙ次元に関して、ステップ３０２で検索された現在のデルタｙ値と前に決定された剰余を合計することによって、調整されたデルタｙ値を計算する。
【００２７】
ステップ３０６では、プロセッサ２０２は第１の２Ｘ値を識別する。上式でｘは調整されたデルタｘ値にもっとも近い整数（たとえば２０＝１、２１＝２、２２＝４、２３＝８など）である。また、調整されたデルタｙ値にもっとも近い第２の２Ｘ値を識別する。したがって、調整されたデルタｘ値は対応する２Ｘ値を有し、また、調整されたデルタｙ値は対応する２Ｘ値を有する。
【００２８】
ステップ３０８では、プロセッサ２０２は、Ｘ次元に関する剰余値とＹ次元に関する剰余値を計算する。本発明の一形態では、プロセッサ２０２は、調整されたデルタｘ値から調整されたデルタｘ値に対応する２Ｘ値を引くことにより、Ｘ次元に関する剰余値を計算し、調整されたデルタｙ値から調整されたデルタｙ値に対応する２Ｘ値を引くことにより、Ｙ次元に関する剰余値を計算する。
【００２９】
ステップ３１０では、プロセッサ２０２は、調整されたデルタｘ値に対応する２Ｘの２を底とした対数値を計算し、調整されたデルタｙ値に対応する２Ｘの２を底とした対数値を計算する。ステップ３１２では、ポインティングデバイス１００は、ステップ３１０で計算された対数の結果を表わすバイナリデータをワイヤレス送信する。
【００３０】
図３で示した方法３００については、図４を参照して次に詳細に説明する。図４は、本発明の一実施形態による対数圧縮アルゴリズム２２２に関する値を例示したテーブル４００である。テーブル４００は、４つの列４０２から４０８と、４つの行４１０Ａから４１０Ｄを含む。行４１０Ａから４１０Ｄは連続する４つの報告周期を表わす。列４０２は、各報告周期のＸ次元におけるポインティングデバイス１００の動作を表わす動作値（デルタｘ）を含む。列４０４は、各報告周期にナビゲーションプロセッサ１０８のバッファ２１４（図２）に記憶されたバッファ値を含む。列４０６は、各報告周期にポインティングデバイス１００がホスト装置にワイヤレス送信する、送信された値を含む。列４０８は、各報告周期に関する剰余値を含む。
【００３１】
たとえば図４では、各報告周期の間、ポインティングデバイス１００は１４ピクセルの固定レートでＸ次元の正方向に動くと仮定されている。したがって、エントリ４１０Ａから４１０Ｄが表す、図４に示された連続的な４回の報告周期の間、列４０２の値は同じ、すなわち１４ピクセルまたはバイナリ「００００１１１０」である。一実施形態では、各報告周期の間、プロセッサ２０２は、以前に計算された剰余（列４０８）に基づいて現在のデルタｘ値（列４０２）を調整し、調整された動作値（列４０４）をバッファ２１４に記憶する。報告周期４１０Ａは第１の報告周期であり、したがって、すでに計算された剰余はないと仮定されている。したがって、この報告周期４１０Ａに関するデルタｘ値（１４ピクセル）は、調整せずにバッファ２１４に記憶される。
【００３２】
各報告周期について、プロセッサ２０２は対数値、および、バッファ２１４に記憶された現在値に対応する剰余値を決定する。一実施形態では、プロセッサ２０２は２Ｘ値を決定する。上式でｘは例えば２０＝１、２１＝２、２２＝４、２３＝８などの、バッファ２１４に記憶された値にもっとも近い整数である。したがって、バッファ２１４に記憶された「１４」の値を有する第１の報告周期４１０Ａについては、値「１６」、すなわち２４が選択される。選択された値の２を底とした対数すなわちｌｏｇ１６２を計算し、結果、すなわち「４」またはバイナリ「０１００」が、ポインティングデバイス１００がホストにワイヤレス送信する値となる。当業者であれば、受信された値の逆対数を行ない、動作を決定するようにホスト装置を構成してもよいことが理解されるであろう。
【００３３】
第１の報告周期４１０Ａに関して、ポインティングデバイス１００は、バッファ２１４に記憶された「１４」ピクセルの動作ではなく、エンコードされた表現「０１００」を使用して値「１６」を報告したので、動作は本質的に２ピクセルだけ過度に報告されている。この過度の報告を補正するために、バッファ２１４の中の値、すなわち「１４」から、エンコードされない送信された値すなわち「１６」を引くことにより、剰余値を計算する。したがって列４０８に示すように、第１の報告周期４１０Ａについては、計算された剰余は「−２」である。
【００３４】
前の動作レポートからの剰余値を使用して、次に連続する動作レポートを調整する。上述のように、第１の報告周期４１０Ａからの剰余は「−２」であった。第２の報告周期４１０Ｂについては、プロセッサ２０２は、以前に計算された剰余値「−２」に基づいて「１４」である現在のデルタｘ値（列４０２）を調整し、調整された動作値、すなわち列４０４に示すように「１２」をバッファ２１４に記憶する。一実施形態では、現在のデルタｘ値と前の報告周期からの剰余値を合計することによって、現在のデルタｘ値を調整する。
【００３５】
バッファ２１４に値「１２」が記憶されている第２の報告周期４１０Ｂについては、プロセッサ２０２は値「１６」すなわち２４を選択して動作を表す。選択された値の２を底とする対数を計算し、この結果すなわち「４」またはバイナリ「０１００」が、ポインティングデバイス１００がホストにワイヤレス送信する値となる。第２の報告周期４１０Ｂについては、ポインティングデバイス１００は、バッファ２１４に記憶されている「ｌ２」ピクセルの動作ではなく、エンコードされた表現「０１００」を使用して値「１６」を報告したので、動作は本質的に４ピクセルだけ過度に報告されている。この過剰報告を補正するために、バッファ２１４の値すなわち「１２」からエンコードされない送信された値すなわち「１６」を引くことにより、剰余値を計算する。したがって、列４０８に示すように、第２の報告周期４１０Ｂについては、計算された剰余は「−４」である。
【００３６】
第３の報告周期４１０Ｃについては、プロセッサ２０２は、すでに計算された剰余値「−４」に基づいて、この場合も「１４」である現在のデルタｘ値（列４０２）を調整し、調整された動作値すなわち列４０４に示す「１０」をバッファ２１４に記憶する。バッファ２１４に値「１０」が記憶された第３の報告周期４１０Ｃについては、プロセッサ２０２は、値「８」すなわち２３を選択して動作を表す。選択された値の２を底とした対数を計算し、この結果すなわち「３」またはバイナリ「００１１」が、ポインティングデバイス１００がホストにワイヤレス送信する値となる。
【００３７】
第３の報告周期４１０Ｃについては、ポインティングデバイス１００は、バッファ２１４に記憶された「１０」ピクセルの動きではなく、エンコードされた表現「００１１」を使用して値「８」を報告したので、動作は、本質的に２ピクセルだけ過少報告されている。この過少報告を補正するために、バッファ２１４の中の値すなわち「１０」からエンコードされない送信された値すなわち「８」を引くことにより、剰余値を計算する。したがって列４０８に示すように、第３の報告周期４１０Ｃについては、計算された剰余は「＋２」である。
【００３８】
第４の報告周期４１０Ｄについては、プロセッサ２０２は、以前に計算された剰余値「＋２」に基づいて、この場合も「１４」である現在のデルタｘ値（列４０２）を調整し、調整された動作値、すなわち列４０４に示すように「１６」をバッファ２１４に記憶する。バッファ２１４に値「１６」が記憶されている第４の報告周期４１０Ｄについては、プロセッサ２０２は値「１６」すなわち２４を選択して動作を表す。選択された値の２を底とした対数を計算し、その結果すなわち「４」またはバイナリ「０１００」が、ポインティングデバイス１００がホストにワイヤレス送信する値となる。
【００３９】
第４の報告周期４１０Ｄについては、ポインティングデバイス１００はエンコードされた表現「０１００」を使用して値「１６」を報告するがこれはバッファ２１４に記憶された値と同じ値であるので、動作は正確に報告されている。したがって列４０８に示すように、第４の報告周期４１０Ｄについては、計算された剰余は「０」である。
【００４０】
別の例としては、報告周期ごとのＸ次元の正方向に向かう１２ピクセルの一定の動作は、報告周期ごとのバイナリの「００００  １１００」としては報告されない。本発明の一形態によれば、ポインティングデバイス１００は、報告周期ごとの１２ピクセルの一定の動作を、「０１００」と「００１１」として交互に報告する。これは、１報告周期に関して８ピクセルを送信し、次の報告周期に関して１６ピクセルを送信するバイナリ対数表現である。
【００４１】
上記２つの例において、最も大きなエラーはわずかに４ピクセルであり、このエラーはたとえば１０ミリ秒の１報告周期しか続かない。マウス解像度を０．００１インチと仮定すると、画面のポインタの動きは、修正されるまでのたとえば１０ミリ秒などの短い期間の間、わずかに０．００４インチというマウスの動きだけエラーとなる。エラーは非常に速く訂正されるので、対数エンコードによるこれらの一過性のエラーはユーザに気づかれないであろう。さらに、一過性のエラーは、たとえば「微細に」マウスが動くときなどのユーザにもっとも気づかれやすいときなど、もっとも問題になるときにはもっとも小さい。このように対数を使用して動作を表すと、粗い動作情報は即時に報告され、細かい動作はいくつかのレポートに渡って平均されるので、大幅な圧縮を達成することができる。
【００４２】
いくつかの既存のポインティングデバイスでは、デルタｘとデルタｙはそれぞれ８ビットの２つの補数であり、また、各々は、−１２８から＋１２７（すなわち、−１２８、−１２７、．．．、−１、０、＋１、．．．、＋１２７）の範囲の動作を表わす。したがって、デルタｘとデルタｙは各々２５６の異なる動作状態のうち１つを表わす。本発明の一形態によって対数圧縮を使用し、ｘは整数である±２Ｘの状態だけを送信することによって、Ｘ次元に関する状態の数は１７、すなわち−２７、−２６、・・・、−２０、０、＋２０、・・・、＋２６、＋２７）に低減され、Ｙ次元に関しても１７に低減される。これは、デルタｘに関しては５ビット、デルタｙに関しては５ビットに対応する。したがって、以前のポインティングデバイスは１６ビットを送信していたが、本発明の一実施形態では、ポインティングデバイス１００は各報告周期の間に対数圧縮アルゴリズム２２２を使用して、合計で１０ビット送信してＸとＹの動作情報を報告する。
【００４３】
デルタｘには１７状態、デルタｙには１７状態があるため、デルタｘとデルタｙの情報の組合せに関して可能な状態の合計数は２８９状態（１７×１７＝２８９）であり、９ビットで表わすことができる。したがって、デルタｘ情報とデルタｙ情報を組み合わせたものを表す値を送信することによって、ワイヤレス送信においてさらにビットが節約され、すなわち１０ビットではなく９ビットが送信される。本発明の一形態では、ルックアップテーブル２１６（図２）は、デルタｘとデルタｙに関する状態の可能な組合せを表わす複数の９ビット値を記憶する。一実施形態では、ＸとＹの動作に関する５ビットの対数値をルックアップテーブル２１６に入力として提供し、これに対応する９ビット値をルックアップテーブル２１６から出力し、ポインティングデバイス１００からワイヤレス送信する。
【００４４】
また、９ビット値を使用してデルタｘとデルタｙの情報を表わすことにより、一部の既存システムで表される２５６だけの異なる動作状態より多くの動作状態を表すことができる。たとえば、たとえば１０ミリ秒などの報告周期ごとに最高で±５１２状態のマウスの動作については、対数圧縮アルゴリズム２２２で２１状態、すなわち−２９、−２８、・・・、−２０、０、＋２０、・・・、＋２９が使用される。Ｘ次元とＹ次元に関して、合計で２１ｘ２１＝４４１の状態が可能である。したがって、各報告周期に関してたとえばルックアップテーブル２１６を使用してデルタｘ情報とデルタｙ情報を組み合わせて、９ビットを使用してワイヤレス送信することが可能である。ＸとＹの各軸は、４．５ビットよりわずかに少ない情報を生成する。
【００４５】
本発明の一形態では、デルタｘ情報とデルタｙ情報は報告周期ごとに９ビットの情報に圧縮またはエンコードされるが、デルタｘについて１２ビットとデルタｙについて１２ビットという２４ビットを使用していた以前のシステム、および、デルタｘについて８ビットとデルタｙについて８ビットという１６ビットを使用していたシステムと比べても、実質的に同じ性能が得られる。デルタｘとデルタｙについて１６ビットを送信するシステムと比較すると、８ビットのヘッダを含んで、３２ビットパケットより少ない１７ビットは送信器パワーを４７％節約する。ヘッダを除去すると、さらに大きな省電力が得られる。
【００４６】
一実施形態では、Ｘ次元とＹ次元の１つまたは両方について非対称的な状態を使用する、たとえば、所与の次元について報告周期ごとに±５１２状態ではなく−２５６から＋５１２の状態の範囲でマウスの動作をトラッキングすることによるか、および／または、たとえばＹなど１つの次元についてはたとえばＸなどもう１つの次元より少ない数の状態を使用するか、および／または、たとえば＋Ｙなど１つの方向については、たとえば−Ｙなど反対方向より少ない状態の数を使用することによって、送信される動作情報の量をさらに低減することができる。いくつかの例は、Ｘ次元に±５１２状態を使用しＹ次元に−２５６から＋５１２状態を使用すること、または、Ｘ次元に±５１２状態を使用しＹ次元に±２５６状態を使用することを含む。他の実施形態では、他の変形例を使用することもできる。
【００４７】
本発明の別の形態では、対数圧縮アルゴリズム２２２を使用して、各報告周期中に、４ビットをＸ次元４ビットをＹ次元に割り当てた１つの８ビットバイトを生成してワイヤレス送信し、ＸとＹの動作情報を表すようにポインティングデバイス１００を構成することができる。速度と解像度の間のトレードオフに依存して、８００ＣＰＩでＸ次元とＹ次元に±８インチ／秒、または、４００ＣＰＩで±１６インチ／秒など、いくつかの異なる性能レベルを達成することができる。たとえば、１．５インチ＝フルスクリーンに対してポインティングデバイス１００をスケーリングする場合、８インチ／秒のピーク速度をトラッキングし、１報告周期について１つの８ビットバイトを使用して報告することができる。
【００４８】
８００ＣＰＩ解像度を維持しながら、１報告周期について１つの８ビットバイトを使用して１６インチ／秒などの高速をトラッキングし報告することができるが、高速では、「どもり効果」がわずかに高くなる可能性もある。しかし、そのようなどもり効果が起きても、人間の視覚系に気づかれる可能性はない。例えば、一実施形態によれば、８００ＣＰＩと８ビットのレポートを維持しながらより高速でトラッキングするために、動作マグニチュードのレベルのうち１つまたは複数を除去する、すなわち、２Ｘ状態のうち１つまたは複数を使用しない。本発明の一形態では、Ｘ次元について１７の２Ｘ状態（すなわち−２７、−２６、・・・、−２０、０、＋２０、・・・、＋２６、＋２７）、Ｙ次元について１７の２Ｘ状態を使用するのではなく、「−２６」の状態をドロップする、すなわち使用せず、状態＋２６および他の状態を報告する。このコード化により、Ｘ次元とＹ次元に対してレポート要件が１６状態に低減される。これは１つの８ビットバイトで対応することができる。したがって、本発明の一実施形態では、ポインティングデバイス１００は、８００ＣＰＩ解像度で毎秒１６インチまたは３２インチの速度をトラッキングしながら、報告周期ごとは１つの８ビットバイトだけをワイヤレス報告する。
【００４９】
ポインティングデバイス１００の別の実施形態では、最も速い動作は典型的にＸの次元であるという事実を利用し、デルタｘの完全な１６インチ／秒のエンコードを使用しながら、デルタｙについては８インチ／秒のエンコードを使用する。この実施形態では、ポインティングデバイス１００はより速いＹ速度でも機能するが、速度は本質的に固定される。
【００５０】
本発明の一形態では、ワイヤレス光学ポインティングデバイス１００に効率的なデータエンコードを提供する。本発明の一実施形態は、最適なデータエンコードと圧縮を使用することによって、ワイヤレス光学ポインティングデバイス１００のバッテリ寿命を向上させる。本発明の一形態では、Ｘの動作情報とＹの動作情報の両方について、以前に使用されていた２つの８ビットバイトの代わりに１つの８ビットバイトを使用することによって、送信エネルギを５０％節約しながら、既存のマウス装置より２倍から４倍のマウス速度を可能にする。
【００５１】
本発明の別の形態では、上記のように対数圧縮アルゴリズム２２２を使用する代わり、または、このアルゴリズムの使用に追加して、ランレングス符号化アルゴリズム、ホフマン符号化アルゴリズム、他の圧縮アルゴリズムなどの別の圧縮アルゴリズム２２２を使用するようにポインティングデバイス１００を構成する。
【００５２】
ＩＶ．  送信データのさらなる低減
本発明の一形態では、ポインティングデバイス１００は、動作レポート間で送信サイズを変化させるか、および／または不規則なレポート間隔を使用することによって、ワイヤレス送信されるデータ量をさらに低減する。一実施形態では、ポインティングデバイス１００は、装置１００の小さい動作に関してはより少ないビット数、装置１００の大きな動作に関してはより多くのビット数をワイヤレス送信するように構成される。
【００５３】
本発明の一形態では、以前の動作レポート以降動作に任意の変化があったかどうかを決定し、このような変化があった場合のみ動作情報をワイヤレス送信するように、ナビゲーションプロセッサ１０８を構成する。この実施形態では、ポインティングデバイス１００が動いていない場合、またはポインティングデバイス１００が等速度で動いている場合、ポインティングデバイス１００はこれらの報告周期の間に動作情報を送信せず、本質的に１つまたは複数の報告周期をスキップする。この実施形態は、本質的に不規則なレポート間隔を提供するか、または、一定ではないレートのレポート間隔を提供する。ここで、たとえば動作情報は、以前の動作レポートから変化があったときだけワイヤレス送信される。ついでホスト装置は、以前の動作レポートからの動作を繰り返すように構成される。
【００５４】
本発明の別の形態では、ポインティングデバイス１００は、装置１００の動作速度に基づいて変わるレポート間隔で動作情報をワイヤレス報告するように構成される。一実施形態では、ポインティングデバイス１００は、デバイス１００の小さな動作に関してはより遅いレポートレートでワイヤレス報告し、デバイス１００の大きな動作に関してはより速いレポートレートでワイヤレス報告するように構成される。
【００５５】
本発明の一形態では、動作情報をワイヤレス送信することに加えて、ポインティングデバイス１００は、ユーザが押したデバイス１００上の、たとえば左または右のマウスボタン、スクロールデバイスなどのボタン１２６を識別するボタンプレス情報をワイヤレス送信するように構成される。既存のポインティングデバイスでは、ボタンプレス情報は動作情報と共に、各報告周期について送信される。しかし典型的には、ポインティングデバイスのボタンはあまりしばしば使用されない。ポインティングデバイス１００の１つの形態は、すべての報告周期ではなく、実際にボタンが押された時だけボタンプレス情報を送信することによって、ワイヤレス送信されるデータ量を低減する。
【００５６】
一実施形態では、ナビゲーションプロセッサ１０８（図１）は、光学ポインティングデバイス１００の１つまたは複数のボタン１２６からボタンプレス情報を受信するように構成される。ボタン１２６が押されたことをナビゲーションプロセッサ１０８が感知すると、ナビゲーションプロセッサ１０８は、対応するボタンプレス情報を、ワイヤレス送信器／受信器１０４とアンテナ１０２とを介して次の報告周期の間にワイヤレス送信させる。本発明の一形態では、ナビゲーションプロセッサ１０８は、ボタン１２６が押されたことをナビゲーションプロセッサ１０８が感知したときだけ、ボタンプレス情報を出力するように構成される。この実施形態では、ナビゲーションプロセッサ１０８は、一部の報告周期、すなわちボタンプレス情報がない期間は動作情報だけを出力し、他の報告周期の間は動作情報とボタンプレス情報の両方を出力するように構成される。一実施形態では、ナビゲーションプロセッサ１０８は、圧縮アルゴリズムを使用してボタンプレス情報を圧縮してから送信するので、これによって、送信されるデータ量がさらに低減され、消費される送信エネルギもさらに減少する。
【００５７】
ポインティングデバイスがＮ個のボタンを含む場合、典型的には、ユーザがどのボタンを押したか示すためにＮビットの値がデバイスから送信される。Ｎビット値は複数のボタンを識別し、２個以上のボタンが同時に押されたことを示す場合がある。Ｎビット値は、Ｎ個のボタンがすべて同時に押されたことを示すことができる。逆に、ボタンが同時に押されたことを示す必要がない場合、８個のボタンをたとえば３ビットで表すことができる。
【００５８】
本発明の一形態では、ポインティングデバイス１００のボタン１２６は主ボタンと副ボタンに分割される。本発明の一形態では、ポインティングデバイス１００は主ボタンでは１つのボタンについて１ビットを使用し、副ボタンでは１ビット未満を使用する。したがって、ボタンプレス情報のビットの合計数はボタンの数より少ない。一実施形態では、ポインティングデバイス１００は、たとえば左マウスボタンと右マウスボタンなどの各々１ビットで表される２個の主ボタンと、集合的に３つのビットで表される６個の副ボタンとを伴う、８個のボタン１２６を含む。この実施形態では、各レポート間隔の間、ポインティングデバイス１００は５ビットのボタンプレス情報をワイヤレス送信し、別の実施形態では、８個のボタンのうち１個または複数が押されたときだけ送信する。ボタンプレス情報に対して５ビットを使用することにより、２個の主ボタンが同時に押されたかどうか示すが、副ボタンが同時に押されたかどうかは示さない機能が提供される。
【００５９】
当業者であれば、ポインティングデバイス１００が行う機能は、ハードウェア、ソフトウェア、ファームウェア、または、これらの任意の組み合わせによって実行できることが理解されるであろう。実装は、マイクロプロセッサ、プログラマブルロジックデバイス、または、ステートマシンを介してもよい。本発明のコンポーネントは、１つまたは複数のコンピュータ読み取り可能媒体上のソフトウェアに常駐してもよい。本明細書で使用するコンピュータ読み取り可能媒体という用語は、フロッピーディスク、ハードディスク、ＣＤ−ＲＯＭ、フラッシュメモリ、リードオンリーメモリ（ＲＯＭ）、ランダムアクセスメモリなど、揮発性または不揮発性の任意の種類のメモリを含むように定義される。
【００６０】
本明細書では、好ましい実施形態を説明するために特定の実施形態を図示および説明したが、当業者であれば、本発明の範囲から離れずに、ここに示し説明した特定の実施形態の代わりに、種々の代替および／または等価の実装を行えることが理解されるであろう。機械業界、および、電気機械業界、コンピュータ業界の当業者であれば、本発明は非常に広い範囲の実施形態で実装できることを容易に理解されるであろう。本出願は、本明細書に論じた好ましい実施形態の任意の適応例および変形例をカバーすることを目的としている。したがって、本発明は、請求項および請求項の等価物によってのみ制限されることが明らかに意図されている。
【図面の簡単な説明】
【００６１】
【図１】本発明の一実施形態によるワイヤレス光学ポインティングデバイスの主な構成要素を示す構成図である。
【図２】本発明の一実施形態による、図１の構成図で示されたナビゲーションプロセッサの主な構成要素を示す構成図である。
【図３】本発明の一実施形態による、対数圧縮アルゴリズムに基づいて、図１に示されたワイヤレスポインティングデバイスで圧縮された動作データを生成する方法を示すフロー図である。
【図４】本発明の一実施形態による、対数圧縮アルゴリズムに関する値を例示したテーブルを示す図である。
【符号の説明】
【００６２】
１００  ワイヤレス光学ポインティングデバイス
１０１  光学ナビゲーションセンサ集積回路
１０２  アンテナ
１０４  ワイヤレス送信器／受信器
１０６  入出力インタフェース
１０８  ナビゲーションプロセッサ
１１０  制御ライン
１１２  アナログ／デジタルコンバータ
１１４  光検出器アレイ
１１６  光源ドライバ回路
１１８  光源
１２０  レンズ
１２２  光
１２４  ナビゲーション面
１２６  ボタン
２０２  プロセッサ
２０４  メモリ
２０６  入出力インタフェース
２０８  通信リンク
２１０  デルタｘレジスタ
２１２  デルタｙレジスタ
２１４  バッファ
２１６  ルックアップテーブル
２１８  Ｒシータデータ
２２０  加速度データ
２２２  圧縮アルゴリズム
【図１】
2005302022.tif 000003
【図２】
2005302022.tif 000004
【図３】
2005302022.tif 000005
【図４】
2005302022.tif 000006