以下、図面を参照して本発明の好適な実施形態について詳細に説明する。
(座標入力装置の概略構成)
まず、本実施形態におけるプレゼンテーションシステムの概略構成を図1を用いて説明する。このプレゼンテーションシステムは、画像を表示する表示装置としてのプロジェクター7、このプロジェクター7の画像表示面7a上に設けられる座標入力装置8、プロジェクター7および座標入力装置8にそれぞれ接続され、両者を制御する制御装置としてのホストコンピュータ6を含む構成である。ホストコンピュータ6は例えばパーソナルコンピュータ(PC)によって実現されるものである。したがって、プロジェクター7および座標入力装置8はそれぞれ、例えばUSBなどのインタフェースを介してホストコンピュータ6に接続されうる。
以下、座標入力装置8の構成について説明する。図中1L、1Rはそれぞれ、投光器および検出器を有するセンサユニットであり、1Lと1Rとは互いに所定の距離だけ離れた位置に設置されている。センサユニット1L、1Rは、制御・演算を行う制御・演算ユニット2に接続され、制御信号を制御・演算ユニット2から受け取ると共に、検出した信号を制御・演算ユニット2に送信する。3は、図2のように入射光を到来方向に反射する再帰反射面を有する反射部材であり、左右それぞれのセンサユニットから入力領域5の面に沿ってその入力領域5を覆う範囲(例えば略90°の範囲)に投光された光を、センサユニットに向けて再帰反射する。反射光は、集光光学系とラインCCD等によって構成されたセンサユニットの検出器によって1次元的に検出され、その光量分布が制御・演算ユニット2に送られる。
入力領域5は、PDPやリアプロジェクタ、LCDパネルなどの表示装置の表示画面上に構成されることで、インタラクティブな入力装置として利用可能となっている。
このような構成において、入力領域に指などによる入力指示がなされると、上記投光器から投光された光が遮られ、再帰反射による反射光が得られなくなるため、入力指示位置のみ光量が得られなくなる。
制御・演算ユニット2は、左右のセンサユニット1L、1Rの光量変化から、入力指示された部分の遮光範囲を検出し、同範囲内での検出点を特定してそれぞれの角度を算出する。算出された角度および、センサユニット間の距離等から、入力領域5上の座標位置を算出し、ホストコンピュータ6にその座標値を出力する。
このようにして、指などによって、画面上に線を描画したり、アイコンの操作するなどホストコンピュータ6の操作が可能になる。
以下、座標入力装置8の各部分毎についての詳細説明を行う。
(センサユニットの詳細説明)
図3は、センサユニット1L、1Rにおける投光器の構成例を示す図で、(A)は投光器を上から(入力面に対し垂直方向)から見た図、(B)は横(入力面に対し水平方向)から見た図である。31は赤外光を発する赤外LEDであり、発光した光は投光レンズ32によって、略90°範囲に光が射出する。この方向では、赤外LED31からの光は上下方向に制限された光束として投光され、主に反射器3に対して光が投光されるようになっている。
図4は、センサユニット1L、1Rにおける検出器を入力面に対して垂直方向から見た図である。検出器は、1次元のラインCCD41および集光光学系としてのレンズ42,43および、入射光の入射方向を制限する絞り44、可視光など余分な光の入射を防止する赤外フィルター45を有する構成である。
投光器からの光は再帰反射部材によって反射され、赤外フィルター45、絞り44を抜けて、集光用レンズ42,43によって入力面の略90°範囲の光がCCD41の検出面にその入射角に依存した画素上に結像され、角度ごとの光量分布を示す。つまり画素番号が角度情報を表すことになる。
図5は、入力面を水平方向からの見たときのセンサユニット1L、1Rの構成を示している。図示のように、上記投光器と検出器とが重なるように構成されている。投光器と検出器の光軸間の距離は再帰反射部材の角度特性から充分検出可能な範囲に設定されていればよい。
(反射部材について)
図1に示した再帰性反射部材3は、入射角度に対する反射特性を有している。図6に示す入射角度に対する反射光量の特性図からわかるように、再帰性反射部材3が平坦に構成された場合には、反射部材からの角度が45度を超えるあたりから得られる反射光量が減少し、遮蔽物があった場合にその変化が十分に取れないことになる。
反射光量は、光量分布(照明強度および距離)、反射部材の反射率(入射角度、反射部材の幅)、結像系照度(cosine4乗則)によって決まる。光量が足りない場合に、照明強度を上げることが考えられるが、反射分布が均一で無い場合には、強い部分の光を受光したときに、受光手段であるCCDでその部分が飽和することがあり、照明強度を上げるには限界がある。裏返せば、反射部材の反射の分布をなるべく均一にすることで低光量部分への入射光量の増大も望むことができる。
角度方向に対して均一化を図るために、再帰性反射部材3を貼り付ける部材を図7に示すような三角柱を並べた形とし、この上に再帰反射部材3を設置している。これにより、角度特性を改善することができる。なお、三角柱の角度は再帰反射部材の反射特性から決定すればよく、また、そのピッチはCCDでの検出分解能以下に設定するのが望ましい。
(制御・演算ユニットの説明)
図1に示した制御・演算ユニット2とセンサユニット1L,1Rとの間では、CCDの制御信号、CCD用クロック信号とCCDの出力信号、および、LEDの駆動信号がやり取りされている。
図8は、制御・演算ユニット2の構成を示すブロック図である。CCD制御信号は、ワンチップマイコンなどで構成される演算制御回路(CPU)83から出力されており、CCDのシャッタタイミングや、データの出力制御などを行っている。CCD用のクロックはクロック発生回路87からセンサユニット1L、1Rに送られると共に、CCDとの同期をとって、各種制御を行うために、演算制御回路83にも入力されている。
LED駆動信号は、演算制御回路83からLED駆動回路84L,84Rを経て、センサユニット1L、1Rの赤外LEDに供給されている。
センサユニット1L、1Rの検出器におけるCCDからの検出信号は、A/Dコンバータ81L,81Rに入力され、演算制御回路83からの制御によって、デジタル値に変換される。変換されたデジタル値はメモリ(例えばRAM)82に記憶され、角度計算に用いられる。計算された角度から座標値が求められると、その座標値データがホストコンピュータ6に出力される。
(光量分布検出の説明)
図9は、LED発光に係る各制御信号のタイミングチャートである。
信号SH、ICGL、ICGRはCCD制御用の制御信号であり、SHの間隔でCCDのシャッタ解放時間が決定される。信号ICGL、ICGRはそれぞれ左右のセンサユニット1L,1Rへのゲート信号であり、CCD内部の光電変換部の電荷を読み出し部へ転送する信号である。信号LEDL、LEDRはそれぞれ、左右のLEDの駆動信号であり、SHの最初の周期で一方のLEDを点灯するために駆動信号LEDLがLED駆動回路を経てLEDに供給される。次の周期でもう一方のLEDが駆動される。双方のLEDの駆動が終了した後に、CCDの信号が左右のセンサから読み出される。
読み出される信号は、入力がない場合には、それぞれのセンサからの出力として、図10のような光量分布が得られる。もちろん、このような分布がどのシステムでも必ず得られるわけではなく、再帰性反射部材3の特性やLEDの特性、また、経時変化(反射面の汚れなど)によって分布は変化する。同図においては、Aのレベルが最大光量であり、Bのレベルが最低のレベルとなる。つまり反射光のない状態では、得られるレベルがB付近になり、反射光量が増えるほどAのレベルの方向になっている。このようにCCDから出力されたデータは、逐次AD変換されCPUにデジタルデータとして取り込まれる。
図11は、指などで入力を行った、つまり、反射光を遮った場合の出力の例である。Cの部分が指などで反射光が遮られたため、その部分のみ光量が低下している。検出は、この光量分布の変化から行う。具体的には、図10のような入力の無い初期状態を予め記憶しておいて、それぞれのサンプル期間に図11のような変化があるか初期状態との差分によって検出し、変化があったらその部分を入力点として入力角度を決定する演算を行う。
(角度計算の説明)
角度計算にあたっては、まず、遮光範囲を検出する必要がある。先にも述べたように、光量分布は経時変化などで一定ではないため、システムの起動時などに記憶することが望ましい。そうすることで、例えば、再帰反射面がほこりなどで汚れていても、完全に反射しないような場合を除いて使用可能になる。以下、一方のセンサのデータについて説明するが、他方でも同様の処理を行っている。
電源投入時、入力の無い状態で、まず投光器から照明すること無しにCCDの出力をAD変換して、これをBas_data[N]として、メモリに記憶する。これは、CCDのバイアスのばらつき等を含んだデータとなり、図10におけるBのレベル付近のデータとなる。ここで、Nは画素番号であり、有効な入力範囲に対応する画素番号が用いられる。
次に、投光器から照明した状態での光量分布を記憶する。図10の実線で表されたデータであり、Ref_data[N]とする。これらのデータを用いてまずは入力がなされたか、遮光範囲があるかどうかの判定を行う。あるサンプル期間のデータをNorm_data[N]とする。
まず遮光範囲を特定するために、データの変化の絶対量によって、有無を判定する。これは、ノイズなどによる誤判定を防止し、所定量の確実な変化を検出するためである。変化の絶対量を各々の画素において以下の計算を行い、予め決定してある閾値Vthaと比較する。
Norm_data_a[N]=Norm_data[N]−Ref_data[N] (1)
ここで、Norm_data_a[N]は各画素における絶対変化量である。
この処理は、差をとり比較するだけなので、処理時間をさほど使わないので、入力の有無の判定を高速に行うことが可能である。Vthaを初めて超えた画素が所定数を超えて検出されたときに入力があったと判定する。
次に、より高精度に検出するために、変化の比を計算して入力点の決定を行う。
図12において、121は反射部材3の再帰反射面を示している。ここで領域Aが汚れなどにより反射率が低下していたとすると、このときのRef_data[N]の分布は、図13の(a)のように、領域Aの反射光量が少なくなる。この状態で、図12のように指などの指示具が挿入され、再帰反射部材のほぼ半分を覆ったとすると、反射光量は略半分となるため、図13の(B)の太線で示した分布Norm_data[N]が観測される。
この状態に対して、式(1)を適用すると、図14の(a)のようになる。ここで、縦軸は初期状態との差分電圧になっている。このデータに対して、閾値を適用すると、本来の入力範囲をはずれてしまうような場合がある。もちろん、閾値を下げればある程度検出可能であるが、ノイズなどの影響を受ける可能性がある。
そこで、変化の比を計算することとすると、領域A、Bとも反射光量は最初の半分であるので、次式で比を計算する。
Norm_data_r[N]=Norm_data_a[N]/(Bas_data[N]−Ref_data[N]) (2)
この計算結果を示すと、図14の(B)のようになり、変動比であらわされるため、反射率が異なる場合でも、等しく扱うことが可能になり、高精度に検出が可能になる。
このデータに対して、閾値Vthrを適用して、その立ち上がり部と立下り部の画素番号から、両者の中央を入力画素として、角度を求める。図14の(B)は説明のために模式的に描いたもので、実際にはこのような立ち上がりにはなっておらず、画素ごとに異なるレベルを示している。
図15は比計算を終えた後の検出の例である。いま閾値Vthrで検出すると遮光領域の立ち上がり部分は、Nr番目の画素で閾値を超えたとする。さらに、Nf番の画素でVthrを下回ったとする。このまま中心画素Npを、
Np=Nr+(Nf−Nr)/2 (3)
のように計算してもよいが、そうすると、画素間隔が最小の分解能になってしまう。より細かく検出するために、それぞれの画素のレベルとその一つ前の画素のレベルを用い閾値を横切った仮想の画素番号を計算する。
今、NrのレベルをLr、Nr-1番画素のレベルをLr-1とする。また、NfのレベルをLf、Nf-1番がそのレベルをLf-1とすれば、それぞれの仮想画素番号Nrv,Nfvは、次式で計算できる。
Nrv= Nr-1+ ( Vthr - Lr-1 ) / ( Lr - Lr-1 ) (4)
Nfv= Nf-1+ ( Vthr - Lf-1 ) / ( Lf - Lf-1 ) (5)
また、仮想中心画素Npvは次式で表される。
Npv=Nrv+(Nfv-Nrv)/2 (6)
このように、画素番号とそのレベルから仮想的な画素番号を計算することで、より分解能の高い検出ができる。
得られた中央画素番号から、実際の座標値を計算するためには、角度情報に変換する必要がある。後述する実際の座標計算では、角度そのものよりもその角度における正接(tangent)の値を求めるほうが都合がよい。画素番号から、tanθへの変換には、テーブル参照や変換式を用いる。
図16は、画素番号に対するtanθ値をプロットしたものである。このデータに対して近似式を求め、その近似式を用いて画素番号、tanθ変換を行う。変換式は例えば高次の多項式を用いると精度を確保できるが次数などは計算能力および精度スペック等を鑑みて決定すればよい。
5次多項式を用いる場合には係数が6個必要になるので、出荷時などにこのデータを不揮発性メモリーなどに記憶しておけばよい。
今5次多項式の係数をL5,L4,L3,L2,L1,L0としたとき、tanθは次式で表される。
tanθ=(L5*Npr+L4)*Npr+L3)*Npr+L2)*Npr+L1)*Npr+L0 (7)
同様なことを各々のセンサに対して行えば、それぞれの角度データを決定できる。もちろん、上記例ではtanθを求めているが、角度そのものを求め、その後tanθを求めても構わない。
(座標計算方法の説明)
得られた角度データから座標を算出する。
図17は、画面座標との位置関係を示す図である。入力範囲の下辺左右にそれぞれのセンサユニットが取り付けられており、その間の距離はDsで表されている。
画面中央が画面の原点位置であり、P0はそれぞれのセンサユニットの角度0の交点である。それぞれの角度をθL、θRとして、それぞれtanθL,tanθRを上記多項式を用いて算出する。このとき点Pのx、y座標は次式で表される。
x=Ds/2 *(tanθL+tanθR)/(1+(tanθL*tanθR)) (8)
y=−Ds/2*(tanθR - tanθL - (2*tanθL*tanθR))/(1+(tanθL*tanθR))+P0Y (9)
図18は、データ取得から座標計算までの工程を示した、フローチャートである。
まず、ステップS101で電源投入されると、ステップS102で、演算制御回路83などのポート設定、タイマ設定などさまざまな初期化が行われる。ステップS103は立ち上げ時のみに行う不要電荷除去のための準備である。CCDなどの光電変換素子において、動作させていないときに不要な電荷が蓄積している場合があり、そのデータをそのままリファレンスデータとして用いると、検出不能になったり、誤検出の原因となる。それを避けるために、最初に照明無しで、複数回データの読み出しを行っている。ステップS103ではその読み込み回数を設定しており、ステップS104で照明無しで、所定回数データを読み出すことで、不要電荷の除去を行っている。
ステップS105は所定回数繰り返すための判断文である。
ステップS106はリファレンスデータとしての照明無しでのデータの取り込みであり、上記Bas_dataに相当する。ここで取り込んだデータはメモリに記憶され(ステップS107)、以降計算に用いられる。これともう一つのリファレンスデータである、照明したときの初期光量分布に相当するデータRef_dataを取り込み(ステップS108)、これもメモリーに記憶する(ステップS109)。このステップまでが、電源投入時の初期設定動作になり、次から通常の取り込み動作になる。
ステップS110で上記説明したように光量分布を取り込み、ステップS111でRef_dataとの差分値で遮光部分の有無を判定する。無いと判定されたときには、ステップS110に戻り再び取り込みを行う。
このとき、この繰り返し周期を10[msec]程度に設定すれば、100回/秒のサンプリングになる。
ステップS112で遮光領域が有りと判定されたら、ステップS113で式(2)の処理により比を計算する。得られた比に対して閾値で立ち上がり部、立下り部を決定し、(4)、(5)、(6)式で中心を計算する(ステップS114)。得られた中心値から近似多項式よりtanθを計算し(ステップS115)、左右のセンサユニットでのtanθ値からx、y座標を(8)、(9)式を用いて算出する(ステップS116)。
次にステップS117にてタッチされたか否かの判定を行う。これは、例えばマウスのボタンを押下せずにカーソルを移動させている状態のような近接入力状態と、左ボタンを押した状態であるタッチダウン状態の判定を行っている。実際には、先に得られた比の最大値が、ある所定値例えば0.5などの値を超えていればダウンと判定し、それ以下なら近接入力状態と判定する。この結果に従って、ダウンフラグのセット(ステップS118)あるいはリセット(ステップS119)を行う。
座標値とダウン状態が決定されたので、そのデータをホストコンピュータ6へ送信する(ステップS120)。ホストコンピュータ6は、ドライバが受信データを解釈し、カーソルの移動、マウスボタン状態の変更などを座標値、フラグなどを参照して行う。
ステップS120の処理が終了したら、ステップS110の動作に戻り、以降電源OFFまでこの処理を繰り返すことになる。
(座標入力用ペンの説明)
本実施形態における座標入力装置では、指での入力が可能であるが、ペンなどの指示具で入力を行うことによって、マウスの各種ボタンに対応する操作を直感的に操作することが可能となる。本実施形態における座標入力用ペン(以下「指示具」ともいう。)4について、図19を用いて説明する。
本実施形態における指示具4は、筆記具であるところのペン先端部を押圧することで動作するペン先スイッチ(SW)41、並びに指示具4の筐体に設けられた複数のペンサイドスイッチ(SW)42を具備する。このいずれかのスイッチが動作することによって、指示具4から所定周期で信号を送信することになる。具体的には、駆動回路45は、所定周期毎にタイミング信号およびコマンド信号であるところの光信号を放射する。
その光信号は制御信号検出回路86(図8を参照)によって受光される。制御信号検出回路86は受光した光信号に基づき指示具4のどのスイッチが動作をしているかを判定する。同時に、センサユニット1L,1Rの間で、CCDの制御信号、CCD用クロック信号およびLEDの駆動信号のやり取りが開始される。具体的には、指示具4がタイミング信号として放射する光信号にスイッチ情報を示す信号を重畳(その他に例えば座標入力ペンを識別するための識別コード等を重畳させることも可能)させるものであるが、その情報を伝送する方法は、例えば連続するパルス列からなるリーダ部と、これに続くコード(メーカーIDなど)とからなるヘッダ部をまず出力し、その後ペンスイッチ信号等の制御信号などからなる送信データ列を予め定義された順序と形式に従って順次出力する。この方法はよく知られた方法(例えば赤外線を利用したリモコン等)であり、ここでの詳述は省略する。
またその他の方法としては、例えば所定周期毎に座標検出を行うこの種の座標入力装置の所定周期を変更し、その情報を検出することにより識別することも可能である。座標入力装置が最大100ポイント/秒、つまり10msec毎に座標検出可能な仕様とすれば、ペン先SW41が動作している場合には、例えば100ポイント/秒で座標算出を行い、ペンサイドSW42が動作している場合には、80ポイント/秒で座標算出するように設定、つまり、各々その周期で指示具4から信号を放射することになるので、その周期を制御信号検出回路86で監視することによって、どのスイッチが動作しているかを判別することが可能となる。
(座標入力用ペンのアップダウンの説明)
つづいて、図20のフローチャートを用いて、ペン/アップダウンについて説明する。
まずステップS402でペン先スイッチ41の状態を判定する。ペン先スイッチ41がON状態とは、入力領域5上に座標入力ペンが位置し、操作者によってまさに座標入力が行われ、筆跡を入力しようとする状態(「ペンダウン」状態)であり、画面上に表示された筆跡は、操作者による筆記動作に対して忠実に再現される。また例えばペン先スイッチを所定時間内に2回動作させた場合、座標入力装置の座標サンプリングレートを参照しながら、信号を受信した時間、間隔、あるいは座標を算出しているタイミング等を監視することで、マウスのダブルクリック動作を認識するように構成されている。
一方ステップS402でペン先スイッチが動作していない(OFF状態)場合は、ステップS403〜S405において、ペンサイドスイッチの状態を判別する。本実施形態においては、指示具4にはペンサイドスイッチ42a、42bの2個のサイドスイッチ42が具備されており、どちらか一方だけがON状態にあれば、「ペンアップ」状態、その両者がON状態となっていれば「ペンダウン」状態として動作する。
このようにペン先スイッチ41がOFF状態で、かつ、42aまたは42bの少なくとも一方のサイドスイッチが動作状態(ON状態)となっているときは、操作者が入力領域5から浮かせた位置で、画面を制御しようとしている場合であり、浮かせた位置で例えばカーソルを所望の位置に移動したり、筆跡を入力しようとする場合である(以下、この入力状態を「近接入力」という。)。具体的には、サイドスイッチ42a、42bのいずれか一方だけが動作しているペンアップ状態では、操作者は画面上に示されているカーソルを移動させることができ、その両者が動作しているペンダウン状態では、後述するような態様で指示具4の移動軌跡を筆跡として表示することができる。これを実現すべく、座標入力装置が座標を算出する際に、ペンの状態(ペンアップ、ペンダウン)を情報として同時に出力することができるように構成してあるので、その情報を基にホストコンピュータ6に格納されている制御ソフト、或いはアプリケーションソフト等によって、所望の動作を実現することができる。
また、動作状態を「一方のサイドスイッチ」と「両者のサイドスイッチ」とで区別したのは、利き腕を考慮した結果である。つまり、図19に示すように、座標入力ペンのサイドスイッチ42は、指示具4の対称軸に対称に、しかも隣接するように配置してあるので、右利き、左利きの区別無く、同一の動作で同一の効果が得られるように構成したものである。サイドスイッチの他の実施例としては、2段スイッチ、つまりスイッチのキートップを押圧することで1段目のスイッチが動作し、さらに押圧することによって2段目のスイッチが動作するスイッチを用いることによって、同様の効果も得られる。
指示具4の少なくともいずれかのスイッチが動作している状態は、常に所定周期での座標算出、つまり指示具4から信号が所定周期で放出されている状態である。したがって、このタイミング信号であるところの光信号を所定周期毎に検出できるかどうかによって、最初の座標を検知した状態から、「連続的/継続的に座標が入力されている状態」にあるのか、「連続的に座標入力が行われている状態が中断した状態」にあるのかを判定することができる。つまり、制御信号検出回路86のスタート信号の発生タイミングを監視(座標サンプリングレートを100回/秒とすれば、0.01秒毎にスタート信号が発生する)することによって、「連続入力」の状態にあるかどうかを判定する。
さらには、「連続入力」を判定する手段としては、所定時間を設定し、その所定時間内に信号(例えば本実施形態の場合には、スタート信号であるところの光信号)が検知されるか、あるいは座標値が検出されたかを判定しても良い。
以上述べたように、制御信号検出回路86は、上記方法に基づき「連続入力状態の判定」、「スイッチの動作状態の判定」、「ペンアップ/ダウンの判定」等を行い、その旨の信号を演算制御回路83に出力するように構成される。
(座標値の処理例1)
さて、検出された座標値の処理形態、並びにその作用効果について詳述する。
まず、座標値処理方法のフローについて図21を用いて説明する。
ステップS502では、指示具4の位置の座標検出が行われるのを待機する。上述したとおり、座標検出は指示具4のいずれかのスイッチが動作状態となったときに行われる。座標値が検出されるとステップS503に進み、前述した制御信号検出回路86の出力信号に基づきペンダウン状態かどうかを判断する。上記したとおり、指示具4のペン先SW41が動作状態にある場合、またはサイドスイッチ42a、42bの両方が動作状態に有る場合にペンダウン状態と判断される。ここでペンダウン状態と判断されたときは、ステップS504にてフラグ(Flag)の値を参照し、フラグの値がFlag=0の場合には、フラグの値をFlag=1に設定し(ステップS505)、検出した座標値を基準座標値として格納する(ステップS506)。
ステップS507では、検出座標値と上記基準座標値との差分値を算出し、例えば表示装置に表示されているカーソルを算出した差分値に応じた量、移動するように、例えば表示装置を制御しているホストコンピュータにその旨出力する。ステップS508では前述した方法で連続入力状態にあるかを判定する。連続的に座標検出が行われている間は、設定された基準座標値と検出した座標値の差分値を連続的に出力し、連続的な座標検出が中断すると、処理を終了し(ステップS513)、次の座標検出が行われるまで待機状態となる(ステップS502)。
連続的な座標検出が中断し、再度ステップS502にて指示具4の座標検出が行われると、同様にステップS503にてペンダウン状態かどうかを確認し、ペンダウン状態にあれば、ステップS504にてフラグの値を判定することになるが、上記の説明では前回の「一連の連続した座標検出時」にフラグはステップS505にてFlag=1に設定されており、従って基準座標の設定/更新(ステップS506)は行われず、保持されていた基準座標値を用いて、ステップS507、ステップ508のループにより、連続的な座標検出が行われている間、差分値が出力される。以上のようなペンダウン状態における処理中は、指示具4の移動に伴ってその筆跡が表示装置に表示されることになる。
連続入力が中断すると、再びステップS502にて指示具4の座標検出の待機状態になるが、座標値が検出され、ステップS503にてペンダウン状態ではなくペンアップ状態と判定された場合には、ステップS509に進む。ステップS509では、フラグを初期状態であるFlag=0に設定し、検出した座標値を基準座標に設定、更新し、ステップS511、ステップS512のループにて、座標値が連続的に検出されている間、設定された基準座標値と検出した座標値の差分値(すなわち、相対座標値)が出力されることになる。以上のようなペンアップ状態における処理中は、指示具4の移動に伴って表示装置に表示されているカーソルの位置を移動させることができる。
つぎに、このような座標値処理方法を採用することによる作用効果について、図22を用いて説明を加える。
図22はカーソル移動のための操作例およびその作用を説明するものであり、表示装置によって表示されているカーソルが(1)の位置にあって、操作者の意図によってカーソルを(3)の位置に移動しようとしている場合の説明図である。まず操作者は指示具4を位置Aに移動し、その時点でペンサイドSW42aまたは42bのいずれかのみをONすることでペンアップ状態にする。この時、ペン先SW41は動作状態に無いので、ステップS509にてフラグがFlag=0に設定され、指示具4の位置座標がステップS510にて基準座標として記憶される(この時、カーソル位置は(1)のままであり、移動はまだしない)。ここで操作者が、ペンアップ状態を維持したまま指示具4を位置Bに移動させると、ステップS511、S512のループにより、その指示具4の移動方向と移動距離に応じてカーソルが移動し、例えば(2)の位置に移動する。そして、指示具4が位置Bに達した時点でペンサイドSW42がOFFにされると、この時点で「連続的」な座標検出が終了し、ステップS502において座標検出待機状態となる。
このとき操作者は、指示具4のスイッチをすべてOFFにしたまま指示具4を位置Bから位置Aの方に戻すと、このときは座標検出が行われず、カーソルは(2)の位置で動かない。その後、操作者が再び位置A付近においてペンサイドSW42のいずれか一方(42aまたは42b)のみをONすることによってペンアップ状態とすると、連続入力状態が開始され、ステップS510にて最初に検出された絶対座標値が基準座標として新たに更新、記憶される。その後さらに操作者が指示具4をその位置から位置Bまでペンアップ状態のまま移動させると、カーソルは(2)の位置から(3)の位置へ移動することになる。
このような操作によれば、聞き手の視線を遮ることなく、画面上のカーソルの大移動をその場で実現することが可能となる。このようにして、指示具4の移動軌跡の画像を表示する際のオフセット量が指示具4の簡単な操作によって設定される。
図23は、指示具4の筆跡を表示させるための操作例およびその作用を説明する図である。まず操作者は図22で説明した方法によりカーソルを所望の位置(3)に移動させたと仮定する。この時フラグの値は、前述した通りFlag=0に設定されている。その後、操作者が所望の位置Cにて指示具4を入力領域5上に当接させてペン先SW41をONにすることによりペンダウン状態にすると、これに応じて座標検出が行われる(ステップS502)。現状はFlag=0の状態にあるので、ステップS505にてフラグがFlag=1に設定され、ステップS506にて、検出した座標値が基準座標として記憶される(この時カーソルは(3)の位置から動かない)。操作者が指示具4を入力領域5上に当接させながら(すなわち、ペンダウン状態を維持したまま)位置Dまで移動させると、ステップS507、ステップS508にて継続的に検出座標値と基準座標値との差分値(すなわち、相対座標値)が出力され、指示具4の移動方向及び移動距離を忠実に再現して、カーソルが(3)の位置から(4)の位置へと移動し、その軌跡が表示される。操作者が位置Dの位置で指示具4の当接をやめる(すなわち、ペン先SW41をOFFにする)と、連続検出が中断するので座標検出待機状態となり(ステップS502)、指示具4を位置Eに移動しても、カーソルは(4)の位置から移動することはない。
続いて、操作者が指示具4を位置Eにて入力領域5に指示具4を当接させペン先SW41を動作させることによりペンダウン状態にすると、ステップS502、ステップS503を経て、ステップS504にてフラグの判定が行われる。この場合、フラグは前回の連続座標検出動作にてFlag=1に設定されているので、基準座標の更新は行われず、前回の連続座標検出時に記憶された基準座標を用いて、ステップS507、ステップS508のループが繰り返される。基準座標は、前回の連続座標入力動作で設定された座標値、つまり指示具4の位置が位置Cにある時に検出された座標値であるので、指示具4の位置が位置Eにある場合には、その時に検出された座標値と、指示具4の位置が位置Cにあるときの座標値(基準座標値)との差分が出力されることになり、カーソルは位置(4)から位置(5)に移動することになる。
その後、操作者が指示具4を当接させたまま(ペンダウン状態のまま)位置Fに移動すると、カーソルは、指示具4の移動方向及び移動距離を忠実に再現して、(5)の位置から(6)の位置へと移動し、その軌跡が表示されることになる。
さて、図23の説明において、文字等の情報を追記したい位置(3)(現状のカーソル位置)は、図22で説明した通り、操作者の意図によって容易に設定される。その後、指示具4の操作によって情報を入力するのであるが、指示具4の操作位置Cは任意の位置で良く、従来例に示されるオフセット量を設定しなければならないような装置と比べ、格段に操作性が向上する。つまり図23の如く、画面右側の所望位置に「い」という文字の追記は、例えば画面左側の任意の位置での操作により実現できることから、聞き手の視線を遮ることもない。また、情報を追記すべき位置により近い領域(例えば図23における画面中央部)で操作することによって、操作者は入力した情報をより視認しやすくなり、操作者の手等で表示装置の光路が遮断されるような場合であっても、適宜情報追記位置(3)と操作位置Cの位置関係を無意識のうちに設定することが可能なので、良好な操作環境を実現することが可能となる。
さらには、位置(3)と操作位置Cとが一致、つまり情報を追記、表示させたい位置にカーソルを移動させ、そのカーソル位置で指示具4を入力領域5に当接(ペン先SW41が動作)させて操作させると、操作者から見て、従来例に見られる座標入力装置(指示具4の絶対位置座標を検出し、その絶対座標値を出力することによって、指示具4の指示位置に常にカーソルが存在する)と同等の作業性を得ることができる。この同等の作業性は、一連の指示具4の操作が、ペン先SWのみの動作により行われている間成立するので、用途によっては重要な役割を演じる。つまり、本発明をリアプロジェクタ、PDP等に適用した場合には、操作者による光路の遮断により表示情報が操作者に視覚できないという問題は発生しないので、この絶対的な入力ができるということは、重要な利点である。しかしながら絶対的な入力のみの機能であれば、それを見ている聞き手(参加者)にとっては、操作者の体等により表示情報が遮断されるので、本発明の如く、相対的に情報が入力できる操作性も、重要な役割を演じることになる。したがって、フロントプロジェクタ等を用いたシステムのみならず、リアプロジェクタ、PDPの表示装置を用いたシステムであっても、本発明によって、操作性に優れた操作環境を提供できるようになった。
また、操作者が行うスイッチ操作は、座標検出動作を実行するためのペン先SW41、もしくはペンサイドSW42のみの操作であり、上記操作性を実現するための特別なスイッチ操作を必要としない。つまり、従来例に見られるような例えばオフセットを設定するためのスイッチ操作、座標入力領域(操作領域)の制限等が一切無く、装置を使いこなすための習熟、熟練が不要で、誰でもが直感で操作できるという優れた利点を有する。
(座標値の処理例2)
上述した座標値の処理例は、指示具4の簡単な操作で所望の位置にカーソルを移動させて、その位置を起点とした情報入力(相対座標による軌跡の描画)を容易に行うようにするものであった。このような処理において、さらに操作性を高めるべく、指示具4の実際の移動軌跡(絶対座標による軌跡)を同時に表示可能とすることも好ましい実施形態である。
このような処理は、基本的には上述した図21のフローに従い実現が可能である。ただし、この場合には、絶対座標による軌跡と相対座標による軌跡を同時に描画するものであるから、処理中に検出される座標については、常に絶対座標と相対座標を求める必要がある。具体的には、図21のステップS502、S508、S512では絶対座標値を検出し、ステップS507あるいはステップS511では、基準座標値と検出された絶対座標値との差分値を相対座標値として算出し、その絶対座標値と相対座標値を共に、例えば表示装置を制御しているホストコンピュータに出力する。すなわち、ステップS507,S508のループ、あるいはステップS511,S512のループによる連続的な座標検出においては、絶対座標値および相対座標値が出力されることになる。
この場合、上述した図23の場面では、操作者が指示具4を入力領域5上に当接させながら位置CからDまで移動させると、ステップS507、S508にて継続的に絶対座標値および相対座標値(すなわち、絶対座標値と基準座標値との差分値)が出力される。この時、座標値を受け取る例えば画像制御用のホストコンピュータは、指示具4の移動に伴う絶対座標値の変化に基づき、表示装置上にその軌跡(図23においては位置CからDまでの破線で示される軌跡)を表示するように動作するとともに、指示具4の移動に伴う相対座標値の変化に基づき、表示装置上のカーソル位置を基点としてその移動軌跡(図23においては(3)から(4)までの実線で示される軌跡)を表示するように動作する。つまり、表示装置には実際に指示具4が移動した軌跡、及び、現在のカーソル位置を起点とする相似形の軌跡の両者が表示される。同様な処理により、位置EからFへの移動軌跡も表示装置に表示される。
このように、操作者が入力した情報(図23中の破線で示される軌跡)もが表示画面上に表示されるので、操作者が入力を意図した位置を見ながら入力作業を行う必要がなく、指示具4の軌跡を視認しながら、例えば細かい文字の入力等を容易に行える、優れた操作性を提供することが可能となる。
ところで、操作者が意図したのは、あくまで所望のカーソル位置を起点とする軌跡情報である。操作者の操作性を向上させる指示具4の軌跡(絶対座標による軌跡)は、操作者にとって操作性を向上させるための情報として重要な役割を演じているのは確かであるが、その一方で、表示装置を見ている多くの聴衆にとっては不要な情報でもある。
そこで、この絶対座標に基づく軌跡は、描画後、所定時間経過後に消去されることが好ましい。
あるいは、別途設けられたスイッチ手段を使用して、絶対座標に基づく軌跡を消去することが好ましい。このスイッチ手段は、例えば、表示領域の近傍に設けられたスイッチであっても良いし、座標入力有効エリアの所定領域をスイッチとして割り付けて、例えばその領域の座標値が検出されると、絶対座標に基づく軌跡を消去するようにしてもよい。
あるいは、図21におけるステップS505、S506にて基準座標が設定されるのに伴って、絶対座標に基づく軌跡を消去するように構成してもよいであろう。これは、細かい文字等を一連の操作で入力しているような場合には、常に設定されている基準座標値は同一の値であり、その間の絶対座標に基づく軌跡情報は、操作者に重要な情報を与えるのに対し、一連の例えば文字入力動作が終了(つまり図21において、例えばステップS503にてペン先SWがOFFの状態で座標入力が行われ、ステップS509からS512の動作に移行)した時には、操作者にとってもそれまでに入力した絶対座標に基づく軌跡情報は不要な情報となる、ということに基づく。したがって、前述の一連の文字入力動作終了を、基準座標値が更新されたことをもって検知することにより、自動的に不要となった絶対座標値に基づく軌跡を消去するように構成することが可能である。
(座標値の出力形態および表示形態の説明)
上記構成において、さらに操作性よく入力することを可能とするために、座標値の出力形態および表示装置における表示形態を以下のような構成とすることもできる。図24を用いて説明する。
図24は、相対座標である軌跡情報を含む所定領域の表示内容を操作者が入力する領域に対応させて表示させる構成としたときの概略説明図である。すなわち、先述の例においては、操作者は領域Bに表示される軌跡情報を目視しながら、実際は領域Aに入力することができたが、さらに領域Aに領域Bの表示内容を表示させることで、操作性を大幅に向上させることができる。前述した通り、相対座標に基づく軌跡はカーソルの位置を起点として行われる。例えば、現在のカーソル位置の周辺領域の表示情報を、指示具4を当接させた位置を中心として表示させる。これにより、指示具4を操作する領域に、実際に軌跡を入力したい領域の表示情報をトレースすることできる。
このように、領域Aに領域Bの表示情報をトレースして、軌跡情報a(絶対座標)を表示することにより、操作者の視線移動を最小限にすることができ、作業性を向上させることができる。
なお、このモードは、不図示のスイッチや画像情報(アイコン)を操作者が操作することで任意に開始することができるように構成されることが好ましい。また、例えば、指示具4のペンサイドスイッチ42を全て押しながらペン先スイッチ41を入力面に押し当ててオンにすることでモードの変更がなされるように構成してもよい。さらには、先に説明したように、絶対座標に基づく軌跡情報が消去される際に、同時に領域Aの表示情報を消去しても良いし、あるいは、前述のようにステップS506における基準座標の設定/更新が行われた際に、このモードを終了するように構成しても良い。
図24の各領域における座標出力の形態は、領域A内では基準座標値が固定、すなわち、操作者は領域Aにおいて軌跡aを入力すると、軌跡aの表示は絶対座標の出力に従って表示され、領域Bに表示される軌跡bは先の基準座標値に対応する相対座標の軌跡として表示される。ここで、領域Aは領域Bの表示データを複写したものであり、領域Aに領域Bの表示データと同じ画像データが表示される。
領域Aの表示データは、元画像を背景として認識できるように透過であったり、領域Bに対して縮小されていてもよく、操作者が適宜選択できるよう構成される。
絶対座標に基づく軌跡画像と相対座標に基づく軌跡画像は同一である必要はなく、相似形であってもよく、両軌跡画像の少なくとも一方の拡大率を設定可能にする構成を設けてもよい。そのような拡大率を設定場合には、領域Aのウィンドウや透過領域もその拡大率に従って拡大縮小させて表示させる。
このように、絶対座標と相対座標とを関連付けて表示データを表示させることによって、操作者の作業性を向上させることができる。
ところで、操作者が入力する領域Aの表示の大きさと位置は、書き出し位置(基準点)を中心とした所定領域としてもよいし、書き出し位置(基準点)を含むウィンドウのみを表示させてもよい。また、表示はコマンドが変更されたときだけ表示される(ポップアップ)でもよいし、操作者が絶対座標で入力するための固定のウィンドウを表示させてもよい。
上記を実現するために、CPU83では絶対座標と相対座標の両方を同時に出力する。また、相対座標近傍の画像データをキャプチャして画像データとして保存し、絶対座標と関連付けて画像データを加工し表示データをホストコンピュータ6に送信する。
以上、検出した座標値を処理して、その座標値を出力する座標入力装置8について説明したが、この座標値処理は、前述の如く座標入力装置8の内部で実行してもかまわないし、座標入力装置8が検出した座標値を受け取ったホストコンピュータ6が実行するように構成してもよい。
図25は、実施形態におけるプレゼンテーションシステムの各装置間における座標値および画像信号の流れの例を示した図である。
まず、同図(1)は、座標入力装置8が、絶対座標と相対座標の両方をホストコンピュータ6に出力するように構成した場合の概念図である。この場合、座標入力装置8からの座標データは、ホストコンピュータ6のアプリケーションにより処理され、絶対座標と相対座標の両方から、画像データの関連付け(絶対座標による指示具の軌跡の表示と相対座標による指示具の軌跡の表示との関連付け)、領域の確定などの処理をして表示装置(プロジェクター)7に表示させる。
次に、同図(2)は、ホストコンピュータ6には相対座標のみを出力し、絶対座標は画像処理部(例えば制御・演算ユニット2によって実現される)を介して表示装置7に送信するように構成した場合の概念図である。この場合、相対座標はホストコンピュータ6に入力され、絶対座標は画像処理部(制御・演算ユニット2)に入力される。画像処理部(制御・演算ユニット2)は、この絶対座標と相対座標およびホストコンピュータ6から出力されるRGB信号を処理して、相対座標に対応する画像データをキャプチャして、絶対座標に対応した位置に表示する。なお、この画像処理部が出力する画像データは、ホストコンピュータ6が出力するRGB信号から表示する画像とは階層が異なり、表示装置7の調整メニューなどを表示するいわゆるOSD(オンスクリーンディスプレイ)と同じ階層にすることで、ホストコンピュータ6からの画像とは独立した画像表示とすることができる。このようにすることによって、ホストコンピュータ6は、相対座標のみ処理すればよく、特別なアプリケーションをインストールすることなく動作させることができる。
(他の実施形態)
以上、本発明の実施形態を詳述したが、本発明は、複数の機器から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
なお、本発明は、前述した実施形態の機能を実現するソフトウェアのプログラムを、システムあるいは装置に直接あるいは遠隔から供給し、そのシステムあるいは装置のコンピュータがその供給されたプログラムコードを読み出して実行することによっても達成される。その場合、プログラムの機能を有していれば、その形態はプログラムである必要はない。
従って、本発明の機能処理をコンピュータで実現するために、そのコンピュータにインストールされるプログラムコード自体およびそのプログラムを格納した記憶媒体も本発明を構成することになる。つまり、本発明の特許請求の範囲には、本発明の機能処理を実現するためのコンピュータプログラム自体、およびそのプログラムを格納した記憶媒体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。
プログラムを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などがある。
その他、プログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、そのホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記憶媒体にダウンロードすることによっても供給できる。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明のクレームに含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記憶媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現される。