(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2021-12-23
(45)【発行日】2022-01-18
(54)【発明の名称】手書きデータ記録装置、手書きデータ描画方法、及び手書きデータ合成方法
(51)【国際特許分類】
G06F 3/04883 20220101AFI20220111BHJP
G09G 5/00 20060101ALI20220111BHJP
G09G 5/377 20060101ALI20220111BHJP
【FI】
G06F3/0488 130
G09G5/00 530T
G09G5/36 520M
G09G5/00 510H
G09G5/00 550C
(21)【出願番号】P 2020202446
(22)【出願日】2020-12-07
(62)【分割の表示】P 2016255229の分割
【原出願日】2016-12-28
【審査請求日】2020-12-08
(73)【特許権者】
【識別番号】000139403
【氏名又は名称】株式会社ワコム
(74)【代理人】
【識別番号】100130982
【氏名又は名称】黒瀬 泰之
(72)【発明者】
【氏名】中島 由樹朗
(72)【発明者】
【氏名】コンスタンティン アンゲロフ
(72)【発明者】
【氏名】ウラジーミル ブラッチェフ
(72)【発明者】
【氏名】ターニャ ディミトロハ
【審査官】三吉 翔子
(56)【参考文献】
【文献】特開2014-052873(JP,A)
【文献】特開2015-106333(JP,A)
【文献】特開平10-040058(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/048
G06F 3/041
G09G 5/00
G09G 5/377
(57)【特許請求の範囲】
【請求項1】
スタイラスとともに用いられる手書きデータ記録装置であって、
前記スタイラスがコンタクト状態であるか否かを検出し、前記コンタクト状態であるときの前記スタイラスの位置を示すコンタクト座標を生成する検出部と、
記憶装置と、
グループを更新する第1の操作、及び、前記グループの部分集合であるサブグループを更新する第2の操作を受け付ける操作部と、
連続する前記コンタクト座標を1単位とするストロークデータを生成し、
生成した前記ストロークデータを、現在の前記グループ及び前記サブグループに対応づけて前記記憶装置に蓄積するとともに、
前記操作部が前記第1の操作を受け付けた場合に、現在の前記グループ及び前記サブグループを新たなグループ及び前記サブグループに更新し、
前記操作部が前記第2の操作を受け付けた場合に、前記サブグループを更新する、
プロセッサとを含む、
手書きデータ記録装置。
【請求項2】
前記プロセッサは、
第1のグループ及び該第1のグループの部分集合である第1のサブグループに属する第1のストロークデータと、第2のストロークデータとを順次生成し、
前記第1のストロークデータの生成開始後、前記第2のストロークデータの生成開始前に前記操作部によって前記第1及び第2の操作がいずれも受け付けられなかった場合、前記第2のストロークデータを前記第1のグループ及び前記第1のサブグループに対応付け、
前記第1のストロークデータの生成開始後、前記第2のストロークデータの生成開始前に前記操作部によって前記第1の操作が受け付けられた場合、前記第2のストロークデータを前記第1のグループとは異なる第2のグループ及び該第2のグループの部分集合である第2のサブグループに対応付け、
前記第1のストロークデータの生成開始後、前記第2のストロークデータの生成開始前に前記操作部によって前記第1の操作が受け付けられずかつ前記第2の操作が受け付けられた場合、前記第2のストロークデータを前記第1のグループ及び該第1のグループの部分集合でありかつ前記第1のサブグループとは異なる第3のサブグループに対応付ける、
請求項1に記載の手書きデータ記録装置。
【請求項3】
前記第2のグループは、前記プロセッサが前記第2のストロークデータを対応付ける前に存在するいずれのグループとも異なる新たなグループであり、
前記第2のサブグループは、前記プロセッサが前記第2のストロークデータを対応付ける前に存在するいずれのサブグループとも異なる新たなサブグループであり、
前記第3のサブグループは、前記プロセッサが前記第2のストロークデータを対応付ける前に存在するいずれのサブグループとも異なる新たなサブグループである、
請求項2に記載の手書きデータ記録装置。
【請求項4】
前
記グループはページであり、
前
記サブグループはレイヤであり、
前記第1の操作は改ページ操作であり、
前記第2の操作は改レイヤ操作である、
請求項1乃至3のいずれか一項に記載の手書きデータ記録装置。
【請求項5】
前記プロセッサによって前記第2のストロークデータが前記第1のグループに対応付けられた場合、前記第1及び第2のストロークデータは、外部のコンピュータにおいて同一の画素領域に重畳して表示され、
前記プロセッサによって前記第2のストロークデータが前記第2のグループに対応付けられた場合、前記第1及び第2のストロークデータは、前記外部のコンピュータにおいて互いに異なる画素領域に表示される、
請求項3に記載の手書きデータ記録装置。
【請求項6】
前記プロセッサによって前記第2のストロークデータが前記第3のサブグループに対応付けられた場合、前記第2のストロークデータは、前記外部のコンピュータが前記第1のストロークデータに基づいて生成される第1の画像に対して前記
第2のストロークデータをオーバーレイするための合成演算を実行することにより、前記外部のコンピュータにおいて前記同一の画素領域に重畳して表示される、
請求項5に記載の手書きデータ記録装置。
【請求項7】
前記プロセッサは、
前記コンタクト座標を前記記憶装置に時系列で蓄積し、
前記第1のストロークデータの生成開始後、前記第2のストロークデータの生成開始前に前記操作部によって前記第1の操作が受け付けられた場合、前記第1の操作に対応する第1のイベントを前記記憶装置内の前記第1のストロークデータに対応する一連のコンタクト座標と前記第2のストロークデータに対応する一連のコンタクト座標との間に記録することによって、前記第2のストロークデータを前記第2のグループ及び前記第2のサブグループに対応付け、
前記第1のストロークデータの生成開始後、前記第2のストロークデータの生成開始前に前記操作部によって前記第1の操作が受け付けられずかつ前記第2の操作が受け付けられた場合、前記第2の操作に対応する第2のイベントを前記記憶装置内の前記第1のストロークデータに対応する一連のコンタクト座標と前記第2のストロークデータに対応する一連のコンタクト座標との間に記録することによって、前記第2のストロークデータを前記第1のグループ及び前記第3のサブグループに対応付ける、
請求項2に記載の手書きデータ記録装置。
【請求項8】
前記操作部は1つのボタンによって構成され、
前記プロセッサは、ユーザによる前記ボタンの押下方法に応じて、前記操作部が前記第1及び第2の操作のいずれを受け付けたかを判定する、
請求項1乃至7のいずれか一項に記載の手書きデータ記録装置。
【請求項9】
前記プロセッサは、前記コンタクト座標が生成された時刻を示すタイムスタンプ情報、又は、一連の前記コンタクト座標の生成順序を示す順序番号を対応付けて、前記コンタクト座標を前記記憶装置に蓄積するよう構成される、
請求項1に記載の手書きデータ記録装置。
【請求項10】
前記ストロークデータは、一連の前記コンタクト座標の集合、又は、該集合を加工してなるデータの集合である、
請求項1に記載の手書きデータ記録装置。
【請求項11】
手書きデータ記録装置から供給されるストロークデータに基づいて、スタイラスの位置に対応した座標データに基づいた描画方法を実行するコンピュータで実行される手書きデータ描画方法であって、
前記手書きデータ記録装置は、
スタイラスが近接してから離間するまでの指示位置に対応した座標データ群を検出する検出部と、
不揮発性メモリと、
前記座標データ群を1単位とするストロークデータのグループに対応する第1の操作、及び、前記グループの部分集合であるサブグループに対応する第2の操作を受け付ける操作部と、
前記検出部により検出された前記座標データ群を前記不揮発
性メモリに蓄積するとともに、前記不揮発
性メモリに蓄積した前記座標データ群に基づき、第1のグループ及び該第1のグループの部分集合である第1のサブグループに属する第1のストロークデータと、第2のストロークデータとを順次生成するプロセッサとを含み、
前記プロセッサは、
前記第1のストロークデータの生成開始後、前記第2のストロークデータの生成開始前に前記操作部によって前記第1及び第2の操作がいずれも受け付けられなかった場合、前記第2のストロークデータを前記第1のグループ及び前記第1のサブグループに対応付け、
前記第1のストロークデータの生成開始後、前記第2のストロークデータの生成開始前に前記操作部によって前記第1の操作が受け付けられた場合、前記第2のストロークデータを前記第1のグループとは異なる第2のグループ及び該第2のグループの部分集合である第2のサブグループに対応付け、
前記第1のストロークデータの生成開始後、前記第2のストロークデータの生成開始前に前記操作部によって前記第1の操作が受け付けられずかつ前記第2の操作が受け付けられた場合、前記第2のストロークデータを前記第1のグループ及び該第1のグループの部分集合でありかつ前記第1のサブグループとは異なる第3のサブグループに対応付け、
前記手書きデータ描画方法は、
前記コンピュータと前記手書きデータ記録装置との間の通信を確立するステップと、
前記コンピュータが、前記通信を用いて、前記第1及び第2のストロークデータと、該第1及び第2のストロークデータのそれぞれに対応付けられた前記グループ及び前記サブグループとを前記手書きデータ記録装置から取得するステップと、
前記コンピュータが、前記第1のストロークデータをレンダリングすることによって第1の画像データを生成するステップと、
前記コンピュータが、前記第2のストロークデータをレンダリングすることによって第2の画像データを生成するステップと、
前記コンピュータが、前記第1及び第2のストロークデータがともに前記第1のグループに属する場合、前記第1の画像データに第2の画像データがオーバーレイするように描画処理を行う一方、前記第1のストロークデータが前記第1のグループに属し、かつ、前記第2のストロークデータが前記第2のグループに属する場合、前記第1及び第2の画像データのいずれかのみの描画処理を行うステップと、
を含む手書きデータ描画方法。
【請求項12】
前
記グループはページであり、
前
記サブグループはレイヤであり、
前記手書きデータ描画方法は、
時間的に最古に生成された1番目のレイヤから時間的に最新に生成されたN番目のレイヤまでのN個のレイヤのそれぞれに属するストロークデータ群を取得するステップと、
前記N個のレイヤのうちのn番目のレイヤの指定を受け付けるステップと、
前記n番目のレイヤより時間的に前に生成されたすべてのレイヤに含まれたストロークデータ群をレンダリングすることにより、第1の合成画像データを生成する第1の集約ステップと、
前記n番目のレイヤより時間的に後に生成されたすべてのレイヤに含まれたストロークデータ群をレンダリングすることにより、第2の合成画像データを生成する第2の集約ステップと、
前記n番目のレイヤに対する編集操作を検出する都度、前記N個のレイヤのレンダリングを行うレンダリングステップとを含み、
前記レンダリングステップは、
前記n番目のレイヤに属するストロークデータ群に対し、検出された前記編集操作を実行することによって編集画像データを生成するステップと、
前記第1の合成画像データに前記編集画像データをオーバレイし、その結果として得られる画像に前記第2の合成画像データをオーバレイすることによって、前記N個のレイヤの描画を行うステップとを含む、
請求項11に記載の手書きデータ描画方法。
【請求項13】
前記第1の集約ステップは、前記n番目のレイヤより時間的に前に生成されたすべてのレイヤに含まれたストロークデータ群を、それぞれのレイヤにおいてそれぞれストロークデータの生成順にレンダリングすることによって、前記第1の合成画像データを生成し、
前記第2の集約ステップは、前記n番目のレイヤより時間的に後に生成されたすべてのレイヤに含まれたストロークデータ群を、それぞれのレイヤにおいてそれぞれストロークデータの生成順にレンダリングすることによって、前記第2の合成画像データを生成する、
請求項12に記載の手書きデータ描画方法。
【請求項14】
前記編集画像データを生成するステップは、前記n番目のレイヤに含まれるストロークデータ群に含まれるストロークデータの削除、又は、前記n番目のレイヤに対する新たなストロークデータの追加のいずれかの処理を含む、
請求項13に記載の手書きデータ描画方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はペンタブレット、手書きデータ記録装置、手書きデータ描画方法、及び手書きデータ合成方法に関する。
【背景技術】
【0002】
コンピュータに対しポインタの指示位置をコンピュータに供給するペンタブレットが知られている。ペンタブレットは、マウスやキーボード等と同様に入力対象とするコンピュータに対し現在のユーザの入力データを提供するヒューマン-インターフェイスデバイス(HID: Human-Interface Device)の一種である。ペンタブレットは、電磁誘導方式あるいはアクティブ静電方式などの方式に基づいてスタイラスの位置座標やその操作部の操作状態(サイドスイッチの押下状態)を周期的に取得する機能を有しており、取得した位置座標及び操作状態を含むレポートデータを生成し、USB(Universal Serial Bus)やI2C等の通信インタフェースを介して、コンピュータのデバイスドライバ(所定のOS標準のHIDデバイスドライバあるいはペンタブレットデバイスを供給する各社依存のタブレットのデバイスドライバ等。以下、「デバイスドライバ」と総称する)に供給するよう構成される。コンピュータは、供給されたレポートデータを様々な用途に用いる。例えば、レポートデータに含まれた位置座標をコンピュータで動作するオペレーティングシステムのデスクトップ上に表示される矢印形状のカーソルの位置として用いたり、レポートデータに含まれたサイドスイッチの押下状態をマウスのクリック動作に対応付けたり、デスクトップ上でフォーカスがあたっている描画アプリケーション等のアプリケーションにイベントデータとして供給したり、といった処理に用いる。
【0003】
また、近年、電磁誘導方式を利用したスタイラスであって、文房具であるインクペンや鉛筆のように紙媒体に筆記可能であるスタイラスを用いて、ユーザが紙媒体にインクや鉛筆粉を用いて描いた筆跡に対応する手書きデータ(以下、ストロークデータと称する)を記録可能とする手書きデータ記録装置が販売されるようになっている。特許文献1には、このような手書きデータ記録装置と手書きデータ記録装置が接続されたコンピュータの例が開示されている。手書きデータ記録装置は、紙媒体に残された筆跡に対応するストロークデータを外部のコンピュータに供給することが目的であり、コンピュータを操作することを目的としない。したがって、コンピュータと接続されていなくても単独で利用することができる装置である。手書きデータ記録装置は、紙媒体の下敷きのようにして用いられ、紙媒体への筆跡が残されるたびにストロークデータを蓄積し続け、その後スマートフォン等の表示装置を有するコンピュータに接続されると、蓄積されたストロークデータを通信により供給する。
【0004】
手書きデータ記録装置においては、紙媒体のページに対応するデジタルのページごとに分けてストロークデータを記録する必要がある。そうしないと、紙媒体の複数のページのそれぞれに書き込まれた筆跡が、手書きデータ描画装置において画面上で1つのページ内に重なって表示されてしまうからである。
【0005】
これに関し、特許文献1には、ユーザに大きな負担を生じさせず、また、手書きデータ記録装置から供給された手書きデータの描画を行う手書きデータ描画装置にとっても軽い処理により、適切に手書きデータをページごとに分類できるようにするための技術が開示されている。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
本願の発明者は、ペンタブレットに手書きデータ記録装置としての機能を持たせた1つの装置を検討している。以下では、ペンタブレットが(1)従前のペンタブレットと同じように外部のコンピュータのデバイスドライバに対してリアルタイムにレポートデータを供給する動作を行うモードをタブレットモードと称し、(2)位置座標に基づいてストロークデータを生成し記録する動作モードをペーパーモードと称する。この2つの動作モードで動作するペンタブレットを実現することにより、ユーザが従前コンピュータの周辺機器として利用しているペンタブレットを、特許文献1に記載のような手書きデータ記録装置として、コンピュータから独立して単独で(例えば、持ち運んで)利用することが可能となる。
【0008】
タブレットモードとペーパーモードとの2つの動作モードで動作するペンタブレットについて検討を進めるうち、様々な課題があることが判明した。以下それぞれの課題について説明する。
【0009】
1つ目は、ペンタブレットの記憶容量に関する課題である。ペンタブレットをペーパーモードで動作可能にするためには、ペンタブレットの内部にストロークデータを記録する記憶装置が必要となる。ここで、ペンタブレットのコントローラは、スタイラスの先端が紙媒体等の物体に接触しており筆跡を残している状態(以下、コンタクト状態)であるか、紙媒体の上空で移動している状態(以下、ホバー状態)であるかを問わず、1秒間に数十~数百のレポートデータを生成する動作を行っている。ホバー状態の位置座標(以下、ホバー座標)は、コンピュータのデバイスドライバに対してリアルタイムにレポートデータ供給するタブレットモードにおいては廃棄することはできないデータである一方、ホバー座標をコンタクト状態の位置座標(以下、コンタクト座標)と同じようにすべて記録すると、記憶装置の記憶容量が圧迫されてしまうことになる。
【0010】
2つ目は、ペンタブレットをペーパーモードで利用する際のペンタブレットの課題である。従来からのペンタブレットのユーザには、描画ソフトウェアを用いてデジタルで描画を行うプロのイラストレーターなども多い。描画ソフトウェアには下書きを行うレイヤと線入れを行うレイヤなどレイヤを分離することができるようにされたものが多いが、このようにレイヤ単位で描画する操作に慣れたユーザに、実際の紙媒体描画ソフトウェアにおけるレイヤと同じような操作感をあたえるためには、なるべく描画ソフトウェアのレイヤのような単位でストロークデータを保持できるようにすることが望まれる。しかし、ペンタブレットがペーパーモードで動作している間は、ペンタブレットが表示装置(コンピュータ)に接続されていない場合があり、このような場合、現在どのレイヤに対して描画処理を行っているかをユーザに把握させることが困難である。したがって、表示装置なしの状態でタブレットを操作した場合であっても、後から描画ソフトウェア側でページ及びレイヤに対応付けられるような方法でストロークデータを記録することが必要となる。
【0011】
3つ目は、2つ目の課題を解決するために、ストロークデータが関連付けられるページ及び暫定レイヤを、操作の種別に応じて新たなページ及び暫定レイヤに更新する機能をペンタブレットに採用した場合に、このペンタブレットから供給されるストロークデータを描画処理するコンピュータの側で生ずる課題である。ユーザが表示装置なしでペンタブレットを操作する場合、ユーザは、区別したい筆跡を残すたびに暫定レイヤの更新操作を行うことになる。このようにして生成される暫定レイヤの数は、描画アプリケーションで用いられるレイヤの数に比して多くなり、例えば1ページに数十の暫定レイヤが発生する可能性がある。手書きデータ描画方法を実行するコンピュータ側において1つの暫定レイヤを1つのレイヤとして扱うと、1つのページ内にN枚のレイヤがあるとして、そのうちのn番目のレイヤを編集しようとする際、n番目のレイヤに操作を加えるたびにN-1回のレイヤ合成演算が必要となる。この演算処理は重く、コンピュータの処理負荷が過剰になってしまうのである。したがって、レイヤ構成を有する手書きデータを処理する際の負荷を軽減する必要がある。
【0012】
4つ目も、コンピュータの側での課題である。ページ又は暫定レイヤごとに分類した手書きデータを再び1つのページ又はレイヤに結合することができないというものである。ページ又は暫定レイヤごとの分類はペンタブレットの側で手書きをしているときにユーザがハードボタンを押すことによって実現されるが、ハードボタンを押している段階ではページ又は暫定レイヤの構成を確認できないため、本来描画ソフトウェアにおけるレイヤとしては適切でないところに暫定レイヤの区切りが挿入されてしまう場合がある。そのような場合のために、コンピュータの側で、複数の暫定レイヤに対応づけられた手書きデータを簡易な方法で1つの本来のレイヤに結合できるようにすることが望まれる。
【0013】
本発明の目的は、以上のような課題を解決することにより、手書きデータ描画装置としての機能を有するペンタブレットの提供を実現することにある。
【課題を解決するための手段】
【0014】
本発明の第1の側面によるペンタブレットは、スタイラスの位置を検出し外部のコンピュータに位置座標を供給可能であるペンタブレットであって、前記スタイラスがホバー状態であるかコンタクト状態であるかを識別して検出し、前記ホバー状態であるときの前記位置座標であるホバー座標及び前記コンタクト状態であるときの前記位置座標であるコンタクト座標を生成する検出部と、前記外部のコンピュータで実行されるデバイスドライバ及び所定のアプリケーションとの間で通信を実行する通信部と、記憶装置と、前記通信部が前記外部のコンピュータで実行されるデバイスドライバとの間で通信を要求されているか否かを判定し、前記デバイスドライバとの間の通信を要求されている場合に前記ホバー座標と前記コンタクト座標とを前記デバイスドライバに供給する第1のモードで動作し、前記デバイスドライバとの間の通信を要求されていない場合に前記ホバー座標の少なくとも一部を破棄し前記コンタクト座標に基づいて生成されたストロークデータを前記記憶装置に記録する第2のモードで動作するコントローラと、を含むペンタブレットである。
【0015】
本発明の第2の側面による手書きデータ記録装置は、スタイラスとともに用いられる手書きデータ記録装置であって、前記スタイラスがコンタクト状態であるか否かを検出し、前記コンタクト状態であるときの前記スタイラスの位置を示すコンタクト座標を生成する検出部と、記憶装置と、グループを更新する第1の操作、及び、前記グループの部分集合であるサブグループを更新する第2の操作を受け付ける操作部と、連続する前記コンタクト座標を1単位とするストロークデータを生成し、生成した前記ストロークデータを、現在の前記グループ及び前記サブグループに対応づけて前記記憶装置に蓄積するとともに、前記操作部が前記第1の操作を受け付けた場合に、現在の前記グループ及び前記サブグループを新たなグループ及び前記サブグループに更新し、前記操作部が前記第2の操作を受け付けた場合に、前記サブグループを更新する、プロセッサとを含む、手書きデータ記録装置である。
【0016】
本発明の第3の側面による手書きデータ描画方法は、手書きデータ記録装置から供給されるストロークデータに基づいて、スタイラスの位置に対応した座標データに基づいた描画方法を実行するコンピュータで実行される手書きデータ描画方法であって、前記手書きデータ記録装置は、スタイラスが近接してから離間するまでの指示位置に対応した座標データ群を検出する検出部と、不揮発性メモリと、前記座標データ群を1単位とするストロークデータのグループに対応する第1の操作、及び、前記グループの部分集合であるサブグループに対応する第2の操作を受け付ける操作部と、前記検出部により検出された前記座標データ群を前記不揮発メモリに蓄積するとともに、前記不揮発メモリに蓄積した前記座標データ群に基づき、第1のグループ及び該第1のグループの部分集合である第1のサブグループに属する第1のストロークデータと、第2のストロークデータとを順次生成するプロセッサとを含み、前記プロセッサは、前記第1のストロークデータの生成開始後、前記第2のストロークデータの生成開始前に前記操作部によって前記第1及び第2の操作がいずれも受け付けられなかった場合、前記第2のストロークデータを前記第1のグループ及び前記第1のサブグループに対応付け、前記第1のストロークデータの生成開始後、前記第2のストロークデータの生成開始前に前記操作部によって前記第1の操作が受け付けられた場合、前記第2のストロークデータを前記第1のグループとは異なる第2のグループ及び該第2のグループの部分集合である第2のサブグループに対応付け、前記第1のストロークデータの生成開始後、前記第2のストロークデータの生成開始前に前記操作部によって前記第1の操作が受け付けられずかつ前記第2の操作が受け付けられた場合、前記第2のストロークデータを前記第1のグループ及び該第1のグループの部分集合でありかつ前記第1のサブグループとは異なる第3のサブグループに対応付け、前記手書きデータ描画方法は、前記コンピュータと前記手書きデータ記録装置との間の通信を確立するステップと、前記コンピュータが、前記通信を用いて、前記第1及び第2のストロークデータと、該第1及び第2のストロークデータのそれぞれに対応付けられた前記グループ及び前記サブグループとを前記手書きデータ記録装置から取得するステップと、前記コンピュータが、前記第1のストロークデータをレンダリングすることによって第1の画像データを生成するステップと、前記コンピュータが、前記第2のストロークデータをレンダリングすることによって第2の画像データを生成するステップと、前記コンピュータが、前記第1及び第2のストロークデータがともに前記第1のグループに属する場合、前記第1の画像データに第2の画像データがオーバーレイするように描画処理を行う一方、前記第1のストロークデータが前記第1のグループに属し、かつ、前記第2のストロークデータが前記第2のグループに属する場合、前記第1及び第2の画像データのいずれかのみの描画処理を行うステップと、を含む手書きデータ描画方法であって、さらに、前記第グループはページであり、前記第サブグループはレイヤであり、前記手書きデータ描画方法は、時間的に最古に生成された1番目のレイヤから時間的に最新に生成されたN番目のレイヤまでのN個のレイヤのそれぞれに属するストロークデータ群を取得するステップと、前記N個のレイヤのうちのn番目のレイヤの指定を受け付けるステップと、前記n番目のレイヤより時間的に前に生成されたすべてのレイヤに含まれたストロークデータ群をレンダリングすることにより、第1の合成画像データを生成する第1の集約ステップと、前記n番目のレイヤより時間的に後に生成されたすべてのレイヤに含まれたストロークデータ群をレンダリングすることにより、第2の合成画像データを生成する第2の集約ステップと、前記n番目のレイヤに対する編集操作を検出する都度、前記N個のレイヤのレンダリングを行うレンダリングステップとを含み、前記レンダリングステップは、前記n番目のレイヤに属するストロークデータ群に対し、検出された前記編集操作を実行することによって編集画像データを生成するステップと、前記第1の合成画像データに前記編集画像データをオーバレイし、その結果として得られる画像に前記第2の合成画像データをオーバレイすることによって、前記N個のレイヤの描画を行うステップとを含む、手書きデータ描画方法である。
【0017】
本発明の第4の側面による手書きデータ合成方法は、時間的に最古に生成された1番目のレイヤから時間的に最新に生成されたN番目のレイヤまでのN個のレイヤのそれぞれに属するストロークデータ群を取得するステップと、前記N個のレイヤのうちのn番目のレイヤの指定を受け付けるレイヤ指定ステップと、マージ操作を受け付けるマージ操作受付ステップと、前記n番目のレイヤに含まれたストロークデータ群と、前記N個のレイヤのうちのn-1番目のレイヤに含まれたストロークデータ群とを、順序関係を維持しつつ、前記n-1番目のレイヤ及び前記n番目のレイヤのいずれか一方に対応付け、他方を削除するレイヤ合成ステップと、を含む手書きデータ合成方法である。
【発明の効果】
【0018】
本発明によれば、ペンタブレットが(1)従前のペンタブレットと同じように外部のコンピュータのデバイスドライバに対してリアルタイムにレポートデータを供給する動作を行うタブレットモードと、(2)位置座標に基づいてストロークデータを生成し記録する動作モードを行うペーパーモードとの2つの動作モードで動作するため、ユーザは、従前コンピュータの周辺機器として利用しているペンタブレットを、特許文献1に記載のような手書きデータ記録装置として、コンピュータから独立して単独で(例えば、持ち運んで)利用することが可能となる。
【0019】
また、本発明の第1の側面によるペンタブレットによれば、通信部が外部のコンピュータで実行されるデバイスドライバとの間で通信を要求されているか否かを判定し、デバイスドライバとの間の通信を要求されている場合にホバー座標とコンタクト座標とをデバイスドライバに供給する第1のモードで動作し、デバイスドライバとの間の通信を要求されていない場合にホバー座標の少なくとも一部を破棄しコンタクト座標に基づいて生成されたストロークデータを記憶装置に記録する第2のモードで動作するため、従前のようなペンタブレットを、コンピュータに対して手書きデータを供給する手書きデータ記録装置としても動作させる上で、ホバー座標により記憶装置の容量を圧迫することを防ぐことが可能になる。
【0020】
本発明の第2の側面によるペンタブレットによれば、連続するストロークをグループ(ページ)内のサブグループ(暫定レイヤ)ごとに区別してストロークデータを記録することが可能になる。したがって、ページよりも細かい分類でストローデータ群を記録できるようになるので、例えば、このストロークデータの供給を受けて手書きデータ描画方法を実行するコンピュータにおいて、所定のサブグループに含まれるストロークデータを一括して削除したり、2以上のサブグループに属するストロークデータ群をマージしてレイヤを生成したり、といったユーザにとって便利な操作を実現することが可能になる。
【0021】
本発明の第3の側面による手書きデータ描画方法によれば、n番目のレイヤに対する編集操作に先立って第1及び第2の合成画像データが生成されるので、レイヤ構成を有する手書きデータを処理する際のコンピュータの負荷が軽減される。
【0022】
本発明の第4の側面による手書きデータ合成方法によれば、コンピュータの側で、手書きデータを1つのページ又はレイヤに結合することが可能になる。
【図面の簡単な説明】
【0023】
【
図1】(a)は、本発明の実施の形態によるペンタブレット1のタブレットモードにおける使用状態を示す図であり、(b)は、本発明の実施の形態によるペンタブレット1のペーパーモード(単独利用時)における使用状態を示す図であり、(c)は、本発明の実施の形態によるペンタブレット1のペーパーモード(コンピュータと接続時)における使用状態を示す図である。
【
図2】
図1に示したペンタブレット1、電子ペン5a,5b、及びコンピュータ10,20の内部構成を示す図である。
【
図3】
図2に示したタッチセンサ2及びセンサコントローラ40の内部構成を示す図である。
【
図4】
図3に示した制御部67の動作を示す処理フロー図である。
【
図5】
図2に示したメモリ43に蓄積される座標データ群を示す図である。
【
図6】
図4に示した座標記録処理の詳細を示す処理フロー図である。
【
図7】本発明の実施の形態の第1の変形例による座標記録処理を示す処理フロー図である。
【
図8】本発明の実施の形態の第2の変形例においてメモリ43に蓄積される座標データ群を示す図である。
【
図9】本発明の実施の形態の第2の変形例による座標記録処理を示す処理フロー図である。
【
図10】
図2に示したプロセッサ55が行う描画処理を示す処理フロー図である。
【
図11】
図10に示したステップS105における処理の説明図である。
【
図12】
図2に示したプロセッサ55が行うレイヤ編集処理を示す処理フロー図である。
【
図14】
図2に示したプロセッサ55が行うレイヤマージ処理を示す処理フロー図である。
【
図16】本発明の実施の形態の第3の変形例によるレイヤマージ処理を示す処理フロー図である。
【発明を実施するための形態】
【0024】
以下、添付図面を参照しながら、本発明の好ましい実施の形態について詳細に説明する。以下の説明では、初めに本発明で使用する各機器の構成について概略的に説明し、その後、本発明に特徴的な構成について詳細に説明することとする。
【0025】
図1(a)は、本発明の実施の形態によるペンタブレット1(手書きデータ記録装置)のタブレットモードにおける使用状態を示す図であり、
図1(b)は、本発明の実施の形態によるペンタブレット1のペーパーモード(単独利用時)における使用状態を示す図であり、
図1(c)は、本発明の実施の形態によるペンタブレット1のペーパーモード(コンピュータと接続時)における使用状態を示す図である。これらの図に示すように、本発明によるペンタブレット1は、タブレットモード(第1のモード)、ペーパーモード(第2のモード)という2種類のモードのいずれかで動作するよう構成される。また、ペーパーモードに関しては、単独で利用する場合と、外部のコンピュータと接続して用いる場合とで異なる動作を行う。
【0026】
初めに、
図1に示した各デバイスの構成について簡単に説明すると、まずペンタブレット1は、タッチ面を構成するタッチセンサ2と、押しボタン3とを有して構成される。また、電子ペン5a,5bはともにペン型の端末(スタイラス)である。電子ペン5aと電子ペン5bの違いは紙媒体への筆記機能を有するか否かという点にあり、電子ペン5bは例えばボールペンのようなインク滲出機能を有するのに対し、電子ペン5aはそのような機能を有しない。
【0027】
ペンタブレット1は、静電容量方式又は電磁誘導方式により、タッチ面上における電子ペン5a,5bの位置を示す座標を検出可能に構成される。また、電子ペン5a,5bは、それぞれのペン先に加わる力を示す筆圧値、それぞれに設けられるサイドスイッチ(図示せず)のオンオフ状態を示すサイドスイッチ情報、それぞれが予め記憶しているスタイラスIDなどの各種データをペンタブレット1に対して送信可能に構成される。ペンタブレット1から電子ペン5a,5bに対してもデータを送信可能に構成してもよく、この場合、例えば電子ペン5a,5bが送信すべきデータを指定するためのコマンドが、ペンタブレット1から電子ペン5a,5bに対して送信される。
【0028】
コンピュータ10,20はともに、記憶装置(図示せず)と、該記憶装置に記憶されるプログラムに従って各種の処理を実行可能に構成された中央処理装置(図示せず)とを有する汎用のコンピュータであり、典型的には、
図1に示すように、コンピュータ10は、ディスプレイ11を含む出力装置と、キーボード12及びマウスパッド13を含む入力装置とを有するノート型のパーソナルコンピュータであり、コンピュータ20は、タッチスクリーン21を含むタブレット端末(電子機器)である。以下ではこの典型例を前提として説明を続けるが、コンピュータ10,20を他の種類のコンピュータによって構成しても構わない。具体的には、デスクトップ型のパーソナルコンピュータ、ノート型のパーソナルコンピュータ、サーバコンピュータ、タブレット端末、スマートフォンなどのコンピュータによって、コンピュータ10,20を構成することが可能である。
【0029】
コンピュータ10は、例えば
図1(a)に示すUSBケーブル14により、ペンタブレット1と接続される。また、コンピュータ20は、例えば
図1(c)に示す無線接続22(例えば、ブルートゥース(登録商標)による無線接続)により、ペンタブレット1と接続される。ただし、ペンタブレット1とコンピュータ10,20との接続は、これらの接続以外の方法によって実現されてもよい。例えば、コンピュータ10とペンタブレット1とをブルートゥース(登録商標)などの無線接続によって接続してもよいし、PS/2ケーブルのような他の種類のケーブルによって接続してもよい。また、コンピュータ20とペンタブレット1とを、USBケーブルなどのケーブルを用いて有線接続してもよい。
【0030】
次に、ペンタブレット1が
図1(a)~
図1(c)に示した各モードで動作する場合における各端末の接続及び動作について、説明する。
【0031】
まず、
図1(a)に示すタブレットモードは、典型的には、電子ペン5aをコンピュータ10のポインティングデバイスとして使用するためのモードである。タブレットモードにあるペンタブレット1は、タッチ面上における電子ペン5aの位置を示す座標を周期的に検出し、その都度、検出した座標を含む座標データをUSBケーブル14を介してコンピュータ10に送信するよう構成される。このとき送信する座標データには、他にも、電子ペン5aから受信される筆圧値及びサイドスイッチ情報などが含まれる。コンピュータ10は、座標データが受信される都度、受信した座標データに含まれる座標に基づいてディスプレイ11内におけるマウスカーソルCの位置を決定し、その位置にマウスカーソルCを移動させる処理を行うとともに、座標データ内に含まれる筆圧値及びサイドスイッチ情報の少なくとも一方に基づき、クリック、プレス、ドラッグなどのマウスボタン操作を受け付ける処理を行う。これにより、電子ペン5aをコンピュータ10のポインティングデバイスして使用することが実現される。
【0032】
なお、ここではタブレットモードにおけるペンタブレット1の典型的な用途としてポインティングデバイスを挙げているが、他の用途で使用することも可能である。具体的な例を挙げると、コンピュータ10で実行されている描画ソフトに線を入力するために、タブレットモードにあるペンタブレット1を使用することとしてもよい。
【0033】
次に、
図1(b)及び
図1(c)に示すペーパーモードは、ユーザが電子ペン5bを利用して紙媒体PA上に記入した線を示す一連の座標データをペンタブレット1内に蓄積するためのモードである。ペーパーモードにあるペンタブレット1は、コンピュータ20と接続されている場合には、上記一連の座標データをリアルタイムでコンピュータ20に送信する処理も行う。
【0034】
紙媒体PAは例えば縦開きのレポート用紙であり、
図1(b)及び
図1(c)に示すように、ペンタブレット1のタッチ面上に載せた状態で使用される。ペンタブレット1は、紙媒体PA上における電子ペン5bの位置を示す座標を周期的に検出し、電子ペン5bのペン先が紙媒体PAに接触している場合に限り、検出した座標を含む座標データを蓄積するよう構成される。また、コンピュータ20に接続されている場合には、検出の都度、コンピュータ20に対して、検出した座標データを送信するよう構成される。ペンタブレット1が蓄積又は送信する座標データには、タブレットモードでコンピュータ10に送信する座標データと同様、電子ペン5bから受信される筆圧値及びサイドスイッチ情報などが含まれる。
【0035】
電子ペン5bのペン先が紙媒体PAに接触している否かについて、ペンタブレット1は、電子ペン5bから受信される筆圧値を確認することによって判定する。すなわち、筆圧値がゼロであれば、電子ペン5bのペン先は紙媒体PAに接触していないと判定し、筆圧値がゼロより大きければ、電子ペン5bのペン先は紙媒体PAに接触していると判定する。以下では、ペン先が紙媒体PAに接触していない電子ペン5bの状態を「ホバー状態」と称し、ペン先が紙媒体PAに接触している電子ペン5bの状態を「コンタクト状態」と称する。
【0036】
コンピュータ20は、ペンタブレット1から一連の座標データをリアルタイムで受信する場合には、受信された座標データの逐次レンダリングを行って、ユーザが電子ペン5bを用いて紙媒体PAに記入した線に対応する線をタッチスクリーン21上に描画する処理を行う。レンダリングは、ベジエ曲線やキャットマル-ロム曲線などの補間曲線によって、一連の座標データにより示される一連の座標を補間する処理を含む。タッチスクリーン21には、この補間処理によって得られた補間曲線が描画される。これによりユーザは、紙媒体PAに線を記入している最中に、その線をタッチスクリーン21上でも確認可能となる。
【0037】
コンピュータ20はまた、ペンタブレット1から受信される一連の座標データに基づいて1以上のストロークデータを含むインクデータを生成し、図示しない記憶装置に格納する処理も行う。ストロークデータは、連続するコンタクト座標(電子ペン5bがコンタクト状態である場合に検出された座標)を1単位とするデータであり、より具体的に言えば、ユーザが電子ペン5bを紙媒体PAに接触させてから電子ペン5bを紙媒体PAから離すまでの間に検出された一連の座標データを含むデータである。以下では、電子ペン5bを紙媒体PAに接触させるという動作をペンダウンと称し、電子ペン5bを紙媒体PAから離すという動作をペンアップと称し、ペンダウンとペンアップの間に電子ペン5bを紙媒体PA上で移動させるという動作をペンムーブと称する。コンピュータ20は、ユーザの指示などにより蓄積したインクデータをタッチスクリーン21上に描画する必要が生じた場合、蓄積したストロークデータを蓄積順にレンダリングするよう構成される。これにより、各ストロークデータの上下方向の位置関係を維持しつつ、インクデータをタッチスクリーン21上に描画することが可能になる。
【0038】
ペンタブレット1は、一連の座標データをリアルタイムでコンピュータ20に送信することの他に、バッチ処理により、自身の記憶装置に蓄積した一連の座標データをコンピュータ20にまとめて送信することも可能に構成される。この送信は、コンピュータ20とペンタブレット1とが新たに接続された場合や、コンピュータ20とペンタブレット1とが接続されている状態でユーザによる明示の指示があった場合などに実行される。
【0039】
まとめて送信された一連の座標データを受信したコンピュータ20は、受信した一連の座標データに基づいて上述したインクデータを生成し、図示しない記憶装置に格納するよう構成される。こうして格納したインクデータの描画については、上述した通りである。
【0040】
図2は、ペンタブレット1、電子ペン5a,5b、及びコンピュータ10,20の内部構成を示す図である。以下、この
図2を参照しながら、ペンタブレット1、電子ペン5a,5b、及びコンピュータ10,20それぞれの内部構成について、より詳しく説明する。
【0041】
まず電子ペン5a,5bはそれぞれ、キャパシタ30及びインダクタ31からなるLC共振回路を有して構成される。インダクタ31は、ペンタブレット1のタッチセンサ2から供給される磁界に応じて誘導電圧を生成し、キャパシタ30を充電する役割を果たす。タッチセンサ2からの磁界の供給が止まった後のインダクタ31は、キャパシタ30に蓄積した電圧を利用して、ペンタブレット1に対して反射信号を送信する。こうして送信される反射信号には、位置検出用の連続信号と、連続信号の終了を示すスタート信号と、電子ペン5a,5bがペンタブレット1に対して送信するデータの一部(具体的には、サイドスイッチ情報及びスタイラスID)を示すデータ信号とが、この順に含まれる。
【0042】
キャパシタ30は、電子ペン5a,5bのペン先に対して筆記面(ペンタブレット1のタッチ面又は紙媒体PAの表面)から加えられる力(=筆圧)によってその容量が変化するよう構成される。キャパシタ30の容量が変化すると共振回路の共振周波数が変化するので、上記のようにして送信される反射信号の周波数も筆圧によって変化することになる。上述した筆圧値は、この周波数の変化によって、電子ペン5a,5bからペンタブレット1に伝達される。
【0043】
次にペンタブレット1は、上述したタッチセンサ2及び押しボタン3に加え、センサコントローラ40、操作部41、通信部42、メモリ43を有して構成される。
【0044】
図3は、タッチセンサ2及びセンサコントローラ40の内部構成を示す図である。同図に示すように、タッチセンサ2は、長方形の平面領域内に複数のループコイルLCが配置された構成を有している。各ループコイルLCの一端は接地され、他端はセンサコントローラ40に接続される。
図3では、複数のループコイルLCの例として、図示したy方向に延在する40本のループコイルX
1~X
40と、y方向に直交するx方向に延在する40本のY
1~Y
40とを図示している。以下、この80本のループコイルX
1~X
40,Y
1~Y
40を前提に説明を続けるが、タッチセンサ2に設けるべきループコイルLCの本数はこれに限られない。
【0045】
センサコントローラ40は、
図3に示すように、選択回路60と、スイッチ回路61と、アンプ62と、検波回路63と、ローパスフィルタ(LPF)64と、サンプルホールド回路(S/H)65と、アナログデジタル変換回路(A/D)66と、制御部67と、発振器68と、電流ドライバ69とを有して構成される。
【0046】
選択回路60には各ループコイルLCの他端が接続されている。選択回路60は、制御部67からの制御に応じてループコイルX1~X40,Y1~Y40の中の1本又は複数本を選択し、選択したものをスイッチ回路61に接続する回路である。
【0047】
スイッチ回路61は、1つの共通端子と2つの選択端子とを有するスイッチであり、共通端子に接続される選択端子を制御部67からの制御に応じて切り替え可能に構成される。スイッチ回路61の共通端子には選択回路60が、一方の選択端子にはアンプ62の入力端が、他方の選択端子には電流ドライバ69の出力端がそれぞれ接続される。
【0048】
アンプ62は、スイッチ回路61を介して選択回路60から供給される電圧信号を増幅し、検波回路63に出力する回路である。検波回路63は、アンプ62から出力される電圧信号に対して包絡線検波を行うことによって包絡線信号を生成し、ローパスフィルタ64に出力する回路である。ローパスフィルタ64は、検波回路63が生成した包絡線信号から高周波成分を除去する役割を果たす。サンプルホールド回路65は、ローパスフィルタ64によって高周波成分が除去された上記包絡線信号のサンプル動作及びホールド動作を、所定時間間隔で行うよう構成される。アナログデジタル変換回路66は、サンプルホールド回路65によりホールドされている信号にアナログデジタル変換を施すことによってデジタル信号を生成し、制御部67に出力する。
【0049】
制御部67は、図示しない記憶装置に記憶されるプログラムに従って動作するプロセッサであり、
図2に示した操作部41、通信部42、及びメモリ43に接続される。制御部67は、選択回路60、スイッチ回路61、サンプルホールド回路65、及びアナログデジタル変換回路66の制御を行う他、電子ペン5a,5bがコンタクト状態又はホバー状態のいずれであるか否かを識別して検出し、ホバー状態であるときの電子ペン5a,5bの位置座標であるホバー座標と、コンタクト状態であるときの電子ペン5a,5bの位置座標であるコンタクト座標とを生成する処理(検出部)、電子ペン5a,5bが送信した各種データ(筆圧値、サイドスイッチ情報、スタイラスIDなど)を取得する処理などを実行するように構成される。
【0050】
発振器68は、所定周波数の交流信号を生成するよう構成される。電流ドライバ69は、発振器68から出力される交流信号を電流信号に変換し、スイッチ回路61に供給する役割を果たす。
【0051】
制御部67による電子ペン5a,5bの座標及び電子ペン5a,5bが送信した各種データの取得について、具体的に説明する。まず初めに、制御部67は、スイッチ回路61の他方の選択端子(電流ドライバ69に接続されている選択端子)を共通端子に接続するとともに、選択回路60にループコイルX1~X40,Y1~Y40の中の一本を選択させる。すると、電流ドライバ69から出力される電流信号により、選択されたループコイルLCに磁界が発生する。なお、ここでは1本のループコイルLCを選択するとしているが、例えばループコイルX1~X40の中から1本、ループコイルY1~Y40の中から1本の計2本を選択することとしてもよい。また、ループコイルX1~X40,Y1~Y40とは別に、タッチセンサ2の外周に沿って磁界発生専用のループコイルを配置し、この段階ではこの専用ループコイルのみを選択することとしてもよい。
【0052】
ループコイルLCに発生した磁界の中に電子ペン5a,5bが入ると、上述したように、電子ペン5a,5bのインダクタ31(
図2)に誘導電圧が発生し、キャパシタ30(
図2)に電荷が蓄積される。制御部67は、スイッチ回路61の他方の選択端子を共通端子に接続してから所定時間が経過した後、今度は、スイッチ回路61の一方の選択端子(アンプ62に接続されている選択端子)を共通端子に接続する。すると、ループコイルLCからの磁界の発生が終了する。これを受けて、電子ペン5a,5bは上述した反射信号の送信を開始する。
【0053】
制御部67は、アナログデジタル変換回路66から供給されるデジタル信号を復号することにより、電子ペン5a,5bが送信している反射信号の内容を判定するよう構成される。そして、電子ペン5a,5bが連続信号の送信を行っている間に、選択回路60が選択するループコイルLCを連続的に切り替えることにより、ループコイルX1~X40,Y1~Y40のそれぞれに発生した電圧を走査する。こうして検出される電圧は、ループコイルLCと電子ペン5a,5bのペン先との間の距離が短いほど大きくなるので、制御部67は、走査結果から電子ペン5a,5bの位置を示す座標(上述したホバー座標又はコンタクト座標)を得ることができる。
【0054】
なお、走査時間を短縮するため、上記のようにすべてのループコイルLCを走査して位置検出を行うのは初回だけ(この場合、初回の位置検出では、電子ペン5a,5bがスタート信号やデータ信号を送信している間にも、これらを連続信号とみなして位置検出を行う)とし、2回目からは、前回検出された位置の近傍に位置するループコイルLCのみを走査することとしてもよい。
【0055】
一方、電子ペン5a,5bがデータ信号を送信している間には、制御部67は、検出された電子ペン5a,5bの位置に応じていずれか1本のループコイルLC(通常は、検出した電子ペン5a,5bの位置に最も近いもの)を、選択回路60に選択させる。そして、こうして選択されたループコイルLCを通じて得られた信号の復号結果から、電子ペン5a,5bが送信したサイドスイッチ情報又はスタイラスIDを取得するよう構成される。
【0056】
また、制御部67は、電子ペン5a,5bが送信する反射信号の周波数を検出し、検出した周波数から電子ペン5a,5bが送信した筆圧値を取得するよう構成される。制御部67は、こうして取得した筆圧値に基づき、電子ペン5a,5bが上述したホバー状態及びコンタクト状態のいずれであるかを識別して検出するように構成される。
【0057】
図2に戻る。押しボタン3はペンタブレット1の表面に配置された自動復帰型のスイッチであり、操作部41は、ユーザによる押しボタン3の押下方法に応じて、ユーザ操作を検出可能に構成される。本実施の形態において操作部41が検出するユーザ操作には、少なくとも第1の操作と第2の操作とが含まれる。第1の操作は、例えば押しボタン3を所定時間内に1回だけ押す操作(いわゆるシングルクリック操作)であり、後述する改ページ操作(グループの更新操作)に相当する。第2の操作は、例えば押しボタン3を所定時間内に2回押す操作(いわゆるダブルクリック操作)であり、後述する改レイヤ操作(グループの部分集合であるサブグループの更新操作)に相当する。
【0058】
通信部42は、外部のコンピュータとの通信を実行する際の通信インターフェイスであり、具体的には、USBケーブルによる有線通信を実現するUSB通信部42a(第1の通信部)と、ブルートゥース(登録商標)による無線通信を実現するBT通信部42b(第2の通信部)とを含んで構成される。
【0059】
USB通信部42aは、USBによる通信のインターフェイスを担う機能部であり、センサコントローラ40内の制御部67(
図3参照)の制御に従って、コンピュータ10のUSB通信部52との間でUSBによる通信を確立するよう構成される。USBによる通信が確立された後には、制御部67と、コンピュータ10のプロセッサ50(より具体的には、デバイスドライバ(DD)50a及び所定のアプリケーションに基づく動作を行っているプロセッサ50)との間で、USBによる通信が実行される。
【0060】
BT通信部42bは、ブルートゥース(登録商標)による通信のインターフェイスを担う機能部であり、センサコントローラ40内の制御部67(
図3参照)の制御に従って、コンピュータ20のBT通信部57との間でのブルートゥース(登録商標)による通信を確立するよう構成される。ブルートゥース(登録商標)による通信が確立された後には、制御部67と、コンピュータ20のプロセッサ55(より具体的には、手書きデータ描画プログラムに基づく動作を行っているプロセッサ55)との間で、ブルートゥース(登録商標)による通信が実行される。
【0061】
メモリ43は、センサコントローラ40内の制御部67(
図3参照)が取得した座標及び筆圧値等の各種データを含む座標データをアペンド方式で記憶する記憶装置であり、例えば不揮発性のメモリによって構成される。制御部67は、電子ペン5a,5bの座標を取得する都度、筆圧値に基づいて検出している電子ペン5a,5bの状態(ホバー状態又はコンタクト状態)から、取得した座標がホバー座標及びコンタクト座標のいずれであるかを判定し、判定の結果がコンタクト座標であった場合には、さらに、電子ペン5a,5bの動きの種別を示す情報(ペンダウン、ペンムーブ、ペンアップのいずれか)を取得する。そして、取得した電子ペン5a,5bの動きの種別を示す情報、取得したコンタクト座標、最新の筆圧値、サイドスイッチ情報などを含む座標データを生成し、メモリ43に記憶させる。こうしてメモリ43に順次座標データを記憶させていき、ペンダウンからペンアップまでの一連の座標データを記録することにより、制御部67は、連続するコンタクト座標を1単位とするストロークデータを生成する。また、制御部67は、操作部41によって検出された操作(上述した第1及び第2の操作)の内容に応じて、メモリ43に記録した一連の座標データにより構成されるストロークデータを、ページ(グループ)及びレイヤ(サブグループ)に対応付ける処理も行う。これらの制御部67の処理及びメモリ43の記憶内容の詳細については、後述する。
【0062】
次にコンピュータ10は、上述したディスプレイ11に加え、プロセッサ50、メモリ51、及びUSB通信部52を有して構成される。なお、同図では、
図1(a)に示したキーボード12及びマウスパッド13の記載は省略している。
【0063】
プロセッサ50は、図示しない記憶装置に記憶されるプログラムを実行可能に構成される。プロセッサ50によって実行されるプログラムには、コンピュータ10のオペレーティングシステムの他、ペンタブレット1に対するインターフェイスを提供するデバイスドライバ50aが含まれる。デバイスドライバ50aを実行することにより、プロセッサ50は、ペンタブレット1との間でUSBによる通信を確立し、実行するように構成される。なお、本明細書ではデバイスドライバ50aを通信の主体として表現する場合があるが、これは、デバイスドライバ50aに従って動作しているプロセッサ50による通信を意味する。また、プロセッサ50は、ペンタブレット1から座標データが受信される都度、受信した座標データに含まれる座標に基づいてディスプレイ11内におけるマウスカーソルC(
図1(a)参照)の位置を決定し、その位置にマウスカーソルCを移動させる処理を行うとともに、座標データ内に含まれる筆圧値及びサイドスイッチ情報の少なくとも一方に基づき、クリック、プレス、ドラッグなどのマウスボタン操作を受け付ける処理を行う。
【0064】
メモリ51は、ペンタブレット1から受信した座標データを記憶する記憶装置である。タブレットモードにおけるペンタブレット1をポインティングデバイスではなく描画ソフトへの入力用に用いる場合、プロセッサ50は、ペンタブレット1から受信された座標データの逐次レンダリングを行って、電子ペン5aの移動の軌跡に対応する線をディスプレイ11上に描画するとともに、ペンタブレット1から受信された一連の座標データに基づいて1以上のストロークデータを含むインクデータを生成し、メモリ51に記憶させる処理を行う。
【0065】
USB通信部52は、USBによる通信のインターフェイスを担う機能部であり、プロセッサ50の制御に従って、ペンタブレット1のUSB通信部42aとの間でUSBによる通信を確立するよう構成される。USBによる通信が確立された後には、プロセッサ50(より具体的には、デバイスドライバ50a及び所定のアプリケーションに基づく動作を行っているプロセッサ50)と、ペンタブレット1の制御部67(
図3参照)との間で、USBによる通信が実行される。
【0066】
次にコンピュータ20は、上述したタッチスクリーン21に加え、プロセッサ55、メモリ56、及びBT通信部57を有して構成される。
【0067】
プロセッサ55は、図示しない記憶装置に記憶されるプログラムを実行可能に構成される。プロセッサ55によって実行されるプログラムには、コンピュータ20のオペレーティングシステムの他、ペンタブレット1から順次供給される座標データに従って描画処理を行うための手書きデータ描画プログラムが含まれる。この手書きデータ描画プログラムを実行することにより、プロセッサ55は、ペンタブレット1との間でブルートゥース(登録商標)による通信を確立し、実行するように構成される。なお、本明細書では手書きデータ描画プログラムを通信の主体として表現する場合があるが、これは、手書きデータ描画プログラムに従って動作しているプロセッサ55による通信を意味する。
【0068】
メモリ56は、ペンタブレット1から受信した座標データを記憶する記憶装置である。プロセッサ55は、手書きデータ描画プログラムに従って動作することにより、ペンタブレット1から受信された座標データの逐次レンダリングを行って、電子ペン5bの移動の軌跡に対応する線をタッチスクリーン21上に描画するとともに、ペンタブレット1から受信された一連の座標データに基づいて1以上のストロークデータを含むインクデータを生成し、メモリ56に記憶させる処理を行う。
【0069】
BT通信部57は、ブルートゥース(登録商標)による通信のインターフェイスを担う機能部であり、プロセッサ55の制御に従って、ペンタブレット1のBT通信部42bとの間でのブルートゥース(登録商標)による通信を確立するよう構成される。ブルートゥース(登録商標)による通信が確立された後には、プロセッサ55(より具体的には、手書きデータ描画プログラムに基づく動作を行っているプロセッサ55)と、ペンタブレット1の制御部67(
図3参照)との間で、ブルートゥース(登録商標)による通信が実行される。
【0070】
以上、本発明で使用する各機器の構成について、概略的な説明を行った。次に、本発明に特徴的な構成について、詳細に説明する。本発明に特徴的な構成は特に、
図3に示した制御部67が行う処理と、
図2に示したプロセッサ55が行う処理とに現れる。そこで以下では、まず
図5~
図9を参照しながら前者について詳しく説明し、その後、
図10~
図17を参照しながら後者について詳しく説明することとする。なお、以下の説明では、電子ペン5a,5bをまとめて「スタイラス」と称する場合がある。
【0071】
図4は、
図3に示した制御部67の動作を示す処理フロー図である。同図に示すように、制御部67はまず、USB通信が確立されているか否かを判定する(ステップS1)。この判定は要するに、
図2に示した通信部42がコンピュータ10で実行されるデバイスドライバ50aとの間で通信を要求されているか否かを判定する処理である。
【0072】
ステップS1でUSB通信が確立されていると判定した場合、制御部67は、USB通信による座標データの通信要求があるか否かを判定する(ステップS2)。この通信要求は、例えばデバイスドライバ50aに従って動作しているプロセッサ50(
図2参照)によってなされるものである。ステップS2で通信要求があると判定した場合、制御部67はタブレットモードにエントリし、タブレットモードでの動作(ステップS10~S13)を開始する。ただし、ステップS2の動作はオプションであり、制御部67は、ステップS1でUSB通信が確立されていると判定した場合に直ちにタブレットモードにエントリしてもよい。
【0073】
ステップS1でUSB通信が確立されていないと判定した場合、及び、ステップS2で通信要求がないと判定した場合、制御部67は、座標データの記録要求があるか否かを判定する(ステップS3)。この記録要求は、例えばユーザ操作によってなされるものである。ステップS3で記録要求があると判定した場合、制御部67はペーパーモードにエントリし、ペーパーモードでの動作(ステップS20~S27)を開始する。ステップS3で記録要求がないと判定した場合の制御部67は、ステップS1に戻って処理を継続する。ただし、ステップS3の動作もオプションであり、制御部67は、ステップS1でUSB通信が確立されていないと判定した場合に直ちにペーパーモードにエントリしてもよい。
【0074】
タブレットモードにエントリした制御部67は、まずスタイラス(例えば、
図1に示した電子ペン5a)が検出されるまで待機する(ステップS10)。制御部67は、タッチセンサ2により上述した反射信号が受信されているか否かによって、スタイラスの検出を行う。
【0075】
スタイラスが検出された場合、制御部67は、そのスタイラスから受信される筆圧値に基づいてその状態(ホバー状態又はコンタクト状態)を取得するとともに、その位置を示す座標を検出する(ステップS11)。そして、デバイスドライバ50aに従って動作しているプロセッサ50に対し、スタイラスから受信されている最新の筆圧値及びサイドスイッチ情報と、検出した座標とを含むレポート(座標データ)を送信する(ステップS12)。ここで送信される座標には、上述したホバー座標とコンタクト座標の両方が含まれる。レポートを受けたプロセッサ50は、上述したように、レポートに含まれる座標に基づいてディスプレイ11内におけるマウスカーソルC(
図1参照)の位置を決定し、その位置にマウスカーソルCを移動させる処理を行うとともに、レポート内に含まれる筆圧値及びサイドスイッチ情報の少なくとも一方に基づき、クリック、プレス、ドラッグなどのマウスボタン操作を受け付ける処理を行う。
【0076】
レポートを送信した制御部67は、USB通信の状態が変更されたか否かを判定する(ステップS13)。変更されていないと判定した場合、制御部67は、ステップS10に戻って処理を継続する。これにより、スタイラスが検出されている間、ペンタブレット1からコンピュータ10に対し、周期的に上記レポートが送信されることになる。一方、変更されたと判定した場合の制御部67は、ステップS1に戻って処理を継続する。
【0077】
次に、ペーパーモードにエントリした制御部67は、まずスタイラス(例えば、
図1に示した電子ペン5b)が検出されるまで待機する(ステップS20)。この処理は、ステップS10の処理と同じものである。
【0078】
スタイラスが検出された場合、制御部67は、そのスタイラスから受信される筆圧値に基づいてその状態(ホバー状態又はコンタクト状態)を取得するとともに、その位置を示す座標を検出する(ステップS21)。そして、スタイラスの状態がホバー状態であるか、コンタクト状態であるかの判定を行う(ステップS22)。
【0079】
ステップS22でホバー状態であると判定した場合、制御部67は、検出した座標を破棄する(ステップS23)。この場合、メモリ43への座標データの蓄積、及び、コンピュータ20への座標データの送信のいずれも行われない。
【0080】
一方、ステップS22でコンタクト状態であると判定した場合、制御部67は、座標データをメモリ43に記録するための座標記録処理を行う(ステップS24)。座標記録処理の詳細については、後に
図5及び
図6を参照して詳しく説明する。
【0081】
座標記録処理を行った制御部67は、続いて、ブルートゥース(登録商標)による通信要求があるか否かを判定する(ステップS25)。この通信要求は、具体的には、上述した手書きデータ描画プログラムに従って動作しているプロセッサ55(
図2参照)が行うもので、ペンタブレット1に対し、座標データをリアルタイム送信させるための要求である。ステップS25で通信要求があると判定した場合、制御部67は、ステップS24でメモリ43に記録した座標データをコンピュータ20に対して送信する処理を行う(ステップS26)。通信要求があると判定した場合の制御部67は、ステップS26の処理を行わない。なお、ステップS25,S26の動作はオプションであり、制御部67は、プロセッサ55からの通信要求の有無によらず、座標データのリアルタイム送信を行わないこととしてもよい。
【0082】
ステップS23で座標を破棄した場合、又は、ステップS26で座標データの送信を行った場合(ステップS25,S26の動作を行わない場合には、ステップS24の座標記録処理が完了した場合)、制御部67は、USB通信の状態が変更されたか否かを判定する(ステップS27)。変更されていないと判定した場合、制御部67は、ステップS20に戻って処理を継続する。これにより、スタイラスが検出されている間、座標データがメモリ43に周期的に記録されることになる。また、ステップS25,S26の動作を行う場合には、ペンタブレット1からコンピュータ20に対し、周期的に座標データが送信されることになる。一方、変更されたと判定した場合の制御部67は、ステップS1に戻って処理を継続する。
【0083】
図5は、ステップS24においてメモリ43に蓄積される座標データ群を示す図である。メモリ43には時系列で各座標データが記録されており、同図に示すように、各座標データは、典型的には、スタイラスの動きの種別を示す情報(ペンダウンDN、ペンムーブMV、ペンアップUPのいずれか)と、座標X,Yと、筆圧値PRと、第1及び第2のサイドスイッチ情報SW1,SW2と、タイムスタンプ情報Tと、ページPと、レイヤLとを含んで構成される。なお、
図5には示していないが、スタイラスID又は該スタイラスIDの一部或いはハッシュ値を座標データに含めることとしてもよい。
【0084】
上述したように、ペンダウンDNは、電子ペン5bを紙媒体PAに接触させるという動作を示し、ペンアップUPは、電子ペン5bを紙媒体PAから離すという動作を示し、ペンムーブMVは、ペンダウンとペンアップの間に電子ペン5bを紙媒体PA上で移動させるという動作を示している。したがって、ペンダウンDNに始まり、その後にペンアップUPと、これらの間に位置するペンムーブMVとのそれぞれに対応する一連の座標データにより、1つのストロークデータが構成される。
図5には、8つのストロークデータST1~ST8を例示している。
【0085】
座標X,Yは、制御部67によって検出されたタッチ面上におけるスタイラスの座標である。筆圧値PRは、スタイラスからペンタブレット1に対して送信された筆圧値である。第1及び第2のサイドスイッチ情報SW1,SW2は、それぞれがスタイラスからペンタブレット1に対して送信されたサイドスイッチ情報である。スタイラスには2つのサイドスイッチを有するものがあるので、座標データは、2つ分のサイドスイッチ情報SW1,SW2を格納可能に構成される。タイムスタンプ情報Tは、座標データが生成された時刻を示す情報である。タイムスタンプ情報Tに代え、一連の座標データの生成順序を示す順序番号を座標データに含めることとしてもよい。
【0086】
ページP及びレイヤLはそれぞれ、ストロークデータの属するページ及び暫定レイヤを示す情報である。ペンタブレット1においては、ストロークデータの適切な管理を可能にするため、連続するストローク(一連の座標データ)を、グループ(ページ)ごと、及び、グループ(ページ)の部分集合であるサブグループ(暫定レイヤ)ごとに区別して、ストロークデータを記録する。この区別の具体的な手段として、
図5の例では、個々の座標データにページP及びレイヤLを含めるようにしている。なお、レイヤの頭に「暫定」と付けているのは、ペンタブレット1で記録されるレイヤは、ストロークデータがコンピュータ20において描画された後、後述するレイヤマージ処理によって修正される蓋然性が高いからであって、レイヤと暫定レイヤとの間に構成としての違いはない。
【0087】
図6は、
図4に示した座標記録処理(ステップS24)の詳細を示す処理フロー図である。この座標記録処理に関して、制御部67は予め、ページP及びレイヤLを変数として記憶している。ページP及びレイヤLの初期値はともに1である。
【0088】
図6に示すように、制御部67はまず、
図4のステップS21で検出したコンタクト座標と、現在のページPと、現在のレイヤLとを含む座標データをメモリ43に保存する(ステップS30)。座標データには、
図5に示したようにこれら以外の情報も含まれるが、
図6では記載を省略している。制御部67がこうしてステップS30の処理を行うことにより、メモリ43には、コンタクト座標を含む座標データが時系列で蓄積されていく。
【0089】
続いて制御部67は、操作部41が押しボタン3の操作を検出したか否かを判定し(ステップS31)、検出したと判定した場合にはさらに、検出した操作の内容が上述した第1の操作(改ページ操作)及び第2の操作(改レイヤ操作)のいずれであるかを判定する(ステップS32)。その結果、第1の操作(改ページ操作)が検出された場合であれば、制御部67は、1を加算することによってページPを更新する(P=P+1)とともに、レイヤLを1(最古のレイヤ)に設定する(ステップS33)。一方、第2の操作(改ページ操作)が検出された場合であれば、制御部67は、1を加算することによってレイヤLを更新する(L=L+1)(ステップS34)。この場合、ページPは変更されない。
【0090】
ステップS31で検出していないと判定した場合、又は、ステップS33或いはステップS34の処理を完了した場合の制御部67は、座標記録処理を終了する。この後の処理は、
図4を参照して説明したとおりである。
【0091】
以上の処理により、制御部67は、検出したコンタクト座標を含む座標データをメモリ43に蓄積していくことが可能になるとともに、ユーザ操作に応じて、座標データに含めるページP及びレイヤLを適宜更新していくことが可能になる。
【0092】
ここで、メモリ43に蓄積される座標データ群の構成、及び、制御部67が行う座標記録処理には、ここまでで説明したもの以外にも各種の変形例が考えられる。そこで以下では、座標記録処理の変形例である第1の変形例と、座標データ群の構成の変形例である第2の変形例とを説明する。
【0093】
図7は、本実施の形態の第1の変形例による座標記録処理を示す処理フロー図である。本変形例は、ユーザによって改ページ操作又は改レイヤ操作がなされたとしても、ストロークデータの形成中にはページP又はレイヤLの更新を保留し、ストロークデータの完成後にページP又はレイヤLの更新を行うようにした点で、
図6に示した例と異なっている。以下、詳しく説明する。
【0094】
制御部67はまず、
図4のステップS21で検出したコンタクト座標と、現在のページPと、現在のレイヤLとを含む座標データをメモリ43に保存する(ステップS40)。ステップS40の処理は、
図6に示したステップS30の処理と実質的に同一である。次いで制御部67は、操作部41により第1の操作(改ページ操作)が検出されたか否かを判定し(ステップS41)、検出されたと判定した場合にのみ、改ページイベント発生を一時的に記憶する(ステップS42)。また、制御部67は、操作部41により第2の操作(改レイヤ操作)が検出されたか否かを判定し(ステップS43)、検出されたと判定した場合にのみ、改レイヤイベント発生を一時的に記憶する(ステップS44)。
【0095】
次に、制御部67は、ストロークデータが完成したか否かを判定する(ステップS45)。この判定は、ステップS40でメモリ43に保存した座標データがペンアップUPを含むものであったか否かを判定することにより実行すればよい。
【0096】
ステップS45でストロークデータが完成したと判定した場合、制御部67は、ストロークデータの形成中に改ページイベントが発生していたか否かを判定する(ステップS46)。この判定の結果は、ストロークデータの形成中にステップS42を実行していた場合に肯定となり、そうでない場合に否定となる。ステップS46で改ページイベントが発生していたと判定した場合の制御部67は、1を加算することによってページPを更新する(P=P+1)とともに、レイヤLを1に設定する(ステップS47)。
【0097】
ステップS46で改ページイベントが発生していないと判定した場合の制御部67は、次にストロークデータの形成中に改レイヤイベントが発生していたか否かを判定する(ステップS48)。この判定の結果は、ストロークデータの形成中にステップS44を実行していた場合に肯定となり、そうでない場合に否定となる。ステップS48で改レイヤイベントが発生していたと判定した場合の制御部67は、1を加算することによってレイヤLを更新する(L=L+1)(ステップS49)。この場合、ページPは変更されない。
【0098】
ステップS45でストロークデータが未だ完成していないと判定した場合、又は、ステップS47或いはステップS49の処理を完了した場合の制御部67は、座標記録処理を終了する。この後の処理は、
図4を参照して説明したとおりである。
【0099】
図7の処理によれば、制御部67は、例えば第1のページ(第1のグループ)及び該第1のページの部分集合である第1のレイヤ(第1のサブグループ)に属する第1のストロークデータと、第2のストロークデータとを順次生成したとすると、第1のストロークデータの生成開始後、第2のストロークデータの生成開始前に操作部41によって第1及び第2の操作がいずれも受け付けられなかった場合、第2のストロークデータを第1のページ及び第1のレイヤに対応付け、第1のストロークデータの生成開始後、第2のストロークデータの生成開始前に操作部41によって第1の操作が受け付けられた場合、第2のストロークデータを第1のページとは異なる第2のページ(第2のグループ)及び該第2のページの部分集合である第2のレイヤ(第2のサブグループ)に対応付け、第1のストロークデータの生成開始後、第2のストロークデータの生成開始前に操作部41によって第1の操作が受け付けられずかつ第2の操作が受け付けられた場合、第2のストロークデータを第1のページ及び該第1のページの部分集合でありかつ第1のレイヤとは異なる第3のレイヤ(第3のサブグループ)に対応付けることになる。ここで、第2のページは、制御部67が第2のストロークデータを対応付ける前に存在するいずれのグループとも異なる新たなグループであり、第2のレイヤは、制御部67が第2のストロークデータを対応付ける前に存在するいずれのレイヤとも異なる新たなレイヤであり、第3のレイヤは、前記制御部67が前記第2のストロークデータを対応付ける前に存在するいずれのレイヤとも異なる新たなレイヤである。したがって、ユーザ操作に従って、第1及び第2のストロークデータのそれぞれに適切なページP及びレイヤLを割り当てることが可能になる。
【0100】
以上説明したように、本変形例によれば、ストロークデータが完成するまでページP及びレイヤLの更新を保留することができるので、ストロークデータの途中でページP又はレイヤLが更新されてしまうことの防止が可能になる。
【0101】
次に、
図8は、本実施の形態の第2の変形例においてメモリ43に蓄積される座標データ群を示す図である。また、
図9は、本変形例による座標記録処理を示す処理フロー図である。本変形例は、メモリ43内における座標データ群のデータ構造の点で、
図5に示した例と異なっている。また、
図9の座標記録処理は、基本的には
図7に示した座標記録処理と同様であるが、メモリ43内における座標データ群のデータ構造の相違に伴い、
図7に示した座標記録処理とは異なっている点がある。以下、相違点を中心に説明する。
【0102】
本変形例による座標データは、
図8に示すように、ページP及びレイヤLを含まない。その代わりに、ページの区切りを示すイベントEVENT(Page)と、レイヤの区切りを示すイベントEVENT(Layer)とが座標データ群内に時系列で配置され、これらによってページとレイヤの区切りが示されている。
【0103】
本変形例による制御部67は、
図9に示すように、ステップS40からステップS46まで、
図7と同一の処理を行う。ステップS46で改ページイベントが発生していたと判定した場合、制御部67は、改ページイベントEVENT(Page)をメモリ43に書き込む(ステップS47a)。一方、ステップS46で改ページイベントが発生していないと判定した場合の制御部67は、
図7の例と同様に、ストロークデータの形成中に改レイヤイベントが発生していたか否かを判定する(ステップS48)。そして、このステップS48で改レイヤイベントが発生していたと判定した場合、制御部67は、改レイヤイベントEVENT(Layer)をメモリ43に書き込む(ステップS49a)。
【0104】
ステップS45でストロークデータが未だ完成していないと判定した場合、又は、ステップS47a或いはステップS49aの処理を完了した場合の制御部67は、座標記録処理を終了する。この後の処理は、
図4を参照して説明したとおりである。
【0105】
図9の処理によれば、制御部67は、例えば第1のストロークデータの生成開始後、第2のストロークデータの生成開始前に操作部41によって第1の操作が受け付けられた場合、該第1の操作に対応する第1のイベント(改ページイベントEVENT(Page))をメモリ43内の第1のストロークデータに対応する一連のコンタクト座標と第2のストロークデータに対応する一連のコンタクト座標との間に記録することになる。これにより、第2のストロークデータは、第1のストロークデータとは異なるページ及びレイヤに対応付けられる。
【0106】
また、制御部67は、例えば第1のストロークデータの生成開始後、第2のストロークデータの生成開始前に操作部41によって第1の操作が受け付けられずかつ第2の操作が受け付けられた場合、第2の操作に対応する第2のイベント(改レイヤイベントEVENT(Layer))をメモリ43内の第1のストロークデータに対応する一連のコンタクト座標と第2のストロークデータに対応する一連のコンタクト座標との間に記録することになる。これにより、第2のストロークデータは、第1のストロークデータと同じページ内の異なるレイヤに対応付けられる。
【0107】
以上説明したように、本変形例によれば、座標データ群の中にイベントEVENT(Page),EVENT(Layer)を埋め込むことが可能になる。したがって、改ページ及び改レイヤの箇所が記憶されるので、本変形例によっても、コンピュータ20において、ページ及びレイヤを取得することが可能になる。また、本変形例によれば、各座標データにページP及びレイヤLを含める必要がないので、座標データのデータ量を削減することが可能になる。
【0108】
以上、
図3に示した制御部67が行う処理について、本実施の形態の第1及び第2の変形例の説明も交えながら詳しく説明した。次に、コンピュータ20のプロセッサ55(
図2参照)が行う処理について、
図10~
図17を参照しながら詳しく説明する。
【0109】
初めに、
図10は、プロセッサ55が行う描画処理を示す処理フロー図である。この処理フローは、ペンタブレット1から座標データ群を受信したコンピュータ20が行う基本的な描画処理を示している。
【0110】
図10に示すように、プロセッサ55は、まずペンタブレット1との通信を確立する。この通信は、上述したように、例えばブルートゥース(登録商標)による通信である。そしてプロセッサ55は、確立した通信を介して、ペンタブレット1から座標データ群を受信し、メモリ56に書き込む(ステップS101)。なお、メモリ56内における座標データ群のデータ構造は、
図5又は
図8に示したものと同じであってもよいし、異なっていてもよい。
【0111】
続いて、プロセッサ55は、ユーザによるページ指定操作の発生を待機する(ステップS102)。ページ指定操作は、例えばタッチスクリーン21上に表示されたページ指定アイコン(図示せず)をユーザがタップすることによって行われる操作である。ページ指定操作が発生した場合、プロセッサ55はまず、指定されたページ内の最古のレイヤに含まれるすべてのストロークデータを生成順にレンダリングすることによって、画像データを生成する(ステップS103)。このレンダリングにおいては、上述したように、ベジエ曲線やキャットマル-ロム曲線などの補間曲線による補間処理が行われる。また、座標データに筆圧値PRが含まれている場合には、筆圧値PRに応じて線幅を変更する処理が行われる。さらに、座標データにスタイラスIDが含まれている場合には、スタイラスIDに応じて線色を変更する処理を行うことも可能である。
【0112】
ステップS103が完了した後、プロセッサ55は、指定されたページ内のすべてのレイヤ(最古のレイヤを除く)のそれぞれについて、ステップS105の処理を行う(ステップS104)。例えば、指定されたページが
図8に示したページ2であれば、プロセッサ55は、まずレイヤ2-1に含まれるすべてのストロークデータ(ストロークデータST3,ST4)を生成順にレンダリングすることによって画像データを生成し、その後、その他のレイヤ2-2,2-3のそれぞれについて、ステップS105の処理を実行する。なお、ステップS105の処理は、レイヤの生成順に実行される。
【0113】
ステップS105では、プロセッサ55は、当該レイヤに含まれるすべてのストロークデータを生成順にレンダリングするとともに、レンダリングした各ストロークデータを生成済みの画像データ(ステップS103で生成されたもの、又は、2回目以降のステップS105では、前回のステップS105で更新されたもの)に対して生成順にオーバーレイするための合成演算を実施することにより、画像データを更新する。
【0114】
ステップS104の繰り返し処理が完了した後、プロセッサ55は、最終的に得られた画像データを、タッチスクリーン21に表示する(ステップS106)。これによりユーザは、ページ指定操作によって指定したページの内容をタッチスクリーン21上で確認できるようになる。
【0115】
図11は、ステップS105における処理の説明図である。同図に示す例では、1つのページ2内に3つの暫定レイヤ2-1~2-3が含まれる。なお、ここでは説明の簡単のために1つのページ内の暫定レイヤの数を3つとしているが、実際にはより多数(例えば1000枚以上)の暫定レイヤが含まれることが通常である。また、暫定レイヤ2-1~2-3はそれぞれ1つのストロークデータSTa~STcを含むものとして描いているが、実際には、それぞれより多数のストロークデータを含み得る。
【0116】
暫定レイヤ2-1~2-3は、この順で生成されたものである。プロセッサ55は、まず最も古い暫定レイヤ2-1にかかるストロークデータSTaをレンダリングすることによって画像データを生成し、次いで、2番目に古い暫定レイヤ2-2にかかるストロークデータSTbをレンダリングして画像データにオーバーレイし、最後に、最も新しい暫定レイヤ2-3にかかるストロークデータSTcをレンダリングして画像データにオーバーレイする。これにより、
図11の右側の図に示すように、ページ2内に含まれる3つのストロークデータSTa~STcのすべてが同一の画素領域に重畳して表示され、しかも、ストロークデータSTaの上にストロークデータSTbが位置し、ストロークデータSTbの上にストロークデータSTcが位置するように各ストロークデータSTa~STcが描かれることになる。
【0117】
なお、
図11では、相対的に上側に位置するストロークデータ(例えばストロークデータSTc)によって、相対的に下側に位置するストロークデータ(例えばストロークデータSTb)が隠されているが、各ストロークデータに透明度を付与し、相対的に下側に位置するストロークデータが透けて見えるように合成してもよい。この場合の合成演算は、公知のアルファブレンディング技術を用いて行うことが好ましい。
【0118】
図10に戻る。ステップS105の処理を完了したプロセッサ55は、ステップS102に戻ってユーザによるページ指定操作の発生を再度待機する。これにより、ユーザがページ指定操作を行う都度、そのページに含まれるすべてのレイヤがタッチスクリーン21上に新たに描画されることになる。
【0119】
次に、
図12は、プロセッサ55が行うレイヤ編集処理を示す処理フロー図である。プロセッサ55は、
図11の処理によって描画したレイヤについて、ユーザによる編集を受け付ける機能を有している。このとき、従来であれば、編集操作の都度すべてのレイヤの合成演算を行う必要があるが、レイヤの数や各レイヤに含まれるストロークデータの数が多数に上る場合には、この演算処理によってコンピュータ20の処理負荷が過剰になってしまう。
図12に示すレイヤ編集処理によれば、このような処理負荷の増大を防止することが可能になる。以下、詳しく説明する。
【0120】
初めに、プロセッサ55は、N枚のレイヤ1~Nを含むページを描画する(ステップS110)。この描画処理は、
図10のステップS105で実行される処理である。ステップS110の処理が完了し、ページがタッチスクリーン21上に表示されている状態で、プロセッサ55は、ユーザによるレイヤn(1≦n≦N)の指定操作の発生を待機する(ステップS111)。この指定操作は、例えばタッチスクリーン21上に表示されたレイヤ指定アイコン(図示せず)をユーザがタップすることによって行われる操作である。
【0121】
レイヤnの指定操作が発生した場合、プロセッサ55は、レイヤ1~n-1に含まれるストロークデータ群をレンダリングすることにより、第1の合成画像データを生成する(ステップS112。第1の集約ステップ)。より具体的に言えば、プロセッサ55は、レイヤnより時間的に前に生成されたすべてのレイヤに含まれたストロークデータ群を、それぞれのレイヤにおいてそれぞれストロークデータの生成順にレンダリングすることによって、第1の合成画像データを生成する。
【0122】
プロセッサ55はまた、レイヤn+1~Nに含まれるストロークデータ群をレンダリングすることにより、第2の合成画像データを生成する(ステップS113。第2の集約ステップ)。より具体的に言えば、プロセッサ55は、レイヤnより時間的に後に生成されたすべてのレイヤに含まれたストロークデータ群を、それぞれのレイヤにおいてそれぞれストロークデータの生成順にレンダリングすることによって、第2の合成画像データを生成する。
【0123】
次にプロセッサ55は、レイヤnの具体的な編集操作の発生を待機する(ステップS114)。ここで検出される編集操作には、レイヤnに含まれるストロークデータ群に含まれるストロークデータの削除、又は、レイヤnに対する新たなストロークデータの追加のいずれかの処理が含まれる。そしてプロセッサ55は、編集操作が発生する都度、レイヤ1~Nの再レンダリングを行う(レンダリングステップ)。具体的に説明すると、プロセッサ55は、編集後のレイヤnに属するストロークデータ群に対し、検出された編集操作を実行することによって編集画像データを生成し(ステップS115)、さらに、第1の合成画像データに編集画像データをオーバレイし、その結果として得られる画像に第2の合成画像データをオーバレイすることによって、レイヤ1~Nを含むページを再描画する(ステップS116)。
【0124】
図13は、
図12に示したレイヤ編集処理の説明図である。同図左側には、1つのページ含まれるN枚のレイヤ1~Nを示している。ユーザによってレイヤnの編集が行われる場合、プロセッサ55は予め、レイヤnの下側に位置するレイヤ1~n-1を集約することによって第1の合成画像データを生成するとともに、レイヤnの上側に位置するレイヤn+1~Nを集約することによって第2の合成画像データを生成しておく。こうすることで、レイヤnの編集が行われる都度発生する再描画の際には、第1の合成画像データと、レイヤnを編集してなる編集画像データと、第2の合成画像データとの3枚のみを合成すればよいことになるので、N枚のレイヤの合成演算を毎回行う場合に比べ、大幅にコンピュータ20の処理負荷が軽減される。
【0125】
次に、
図14は、プロセッサ55が行うレイヤマージ処理を示す処理フロー図である。従来、押しボタン3(
図1参照)の操作によって形成された複数の暫定レイヤを1つのレイヤに結合することはできなかったが、ペンタブレット1を特に
図1(b)に示したように単独利用している場合、ユーザは、暫定レイヤの構成を確認しながら押しボタン3を押すことができない。その結果、不適切なところに暫定レイヤの区切りが挿入されてしまう場合があった。
図14に示すレイヤマージ処理によれば、不適切なところに暫定レイヤの区切りが挿入されてしまった場合であっても、事後的に簡便な方法で、区切りを削除する(すなわち、暫定レイヤを結合する)ことが可能になる。以下、詳しく説明する。
【0126】
初めに、プロセッサ55は、
図12を参照して説明したステップS110,S111を実行する。ステップS111でレイヤnの指定操作を検出したプロセッサ55は、変数kに1を代入し(ステップS120)、マージ操作の発生を待機する(ステップS121)。マージ操作は、例えばタッチスクリーン21上に表示されたマージ操作アイコン(図示せず)をユーザがタップすることによって行われる操作である。
【0127】
マージ操作が発生すると、プロセッサ55は、レイヤn-kにレイヤn-k+1をマージして、再描画を行う(ステップS122。レイヤ合成ステップ)。ここで実行されるマージ処理は、具体的には、レイヤn-kに含まれたストロークデータ群と、レイヤn-k+1のレイヤに含まれたストロークデータ群とを、順序関係を維持しつつ、レイヤn-kに対応付ける処理である。ステップS122を実行した後、プロセッサ55は、レイヤn-k+1を削除し(ステップS123)、変数kを1だけインクリメントして(ステップS124)、ステップS121に戻る。
【0128】
図15は、
図14に示したレイヤマージ処理の説明図である。同図左側には、1つのページ含まれるN枚のレイヤ1~Nを示している。ユーザがレイヤnを指定してマージ操作を実行すると、プロセッサ55は、変数k=1という条件の下で、
図14に示したステップS122,S123を実行する。これにより、レイヤnがレイヤn-1にマージされ、レイヤnは削除されることになる。続いて、ユーザが再度マージ操作を実行すると、プロセッサ55は、変数k=2という条件の下で、
図14に示したステップS122,S123を実行する。これにより、レイヤn-1がレイヤn-2にマージされ、レイヤn-1は削除されることになる。このように、2度目以降のマージ操作においては、ユーザは、レイヤを指定することなくマージ操作を行うだけで、下へ下へとレイヤを結合していくことができる。したがって、事後的に簡便な方法で、レイヤを結合していくことが可能になる。
【0129】
なお、
図14及び
図15では、下へ下へとレイヤを結合していく例を説明したが、この方法以外の結合方法を採用することも可能である。そこで以下では、レイヤマージ処理の変形例である第3の変形例の説明を行う。
【0130】
図16は、本実施の形態の第3の変形例によるレイヤマージ処理を示す処理フロー図である。本変形例と、
図14に示した例との違いは、ステップS122,S123をステップS122a,S123aに置き換えた点にある。以下、相違点に着目して詳しく説明する。
【0131】
本変形例によるプロセッサ55は、ステップS121でマージ操作を検出した後、レイヤnにレイヤn-kをマージして、再描画を行う(ステップS122a。レイヤ合成ステップ)。ここで実行されるマージ処理は、具体的には、レイヤnに含まれたストロークデータ群と、レイヤn-kのレイヤに含まれたストロークデータ群とを、順序関係を維持しつつ、レイヤnに対応付ける処理である。ステップS122aを実行した後、プロセッサ55は、レイヤn-kを削除する(ステップS123a)。その後の処理は、
図14を参照して説明したとおりである。
【0132】
図17は、
図16に示したレイヤマージ処理の説明図である。同図左側には、1つのページ含まれるN枚のレイヤ1~Nを示している。ユーザがレイヤnを指定してマージ操作を実行すると、プロセッサ55は、変数k=1という条件の下で、
図16に示したステップS122a,S123aを実行する。これにより、レイヤn-1がレイヤnにマージされ、レイヤn-1は削除されることになる。続いて、ユーザが再度マージ操作を実行すると、プロセッサ55は、変数k=2という条件の下で、
図16に示したステップS122a,S123aを実行する。これにより、レイヤn-2がレイヤnにマージされ、レイヤn-2は削除されることになる。このように、2度目以降のマージ操作においては、ユーザは、レイヤを指定することなくマージ操作を行うだけで、上へ上へとレイヤを結合していくことができる。したがって、本変形例によっても、事後的に簡便な方法で、レイヤを結合していくことが可能になる。
【0133】
以上説明したように、本実施の形態によれば、タブレットモードとペーパーモードとの2つの動作モードで動作するペンタブレット1に関する様々な課題を解決することが可能になる。したがって、タブレットモードとペーパーモードとの2つの動作モードで動作するペンタブレット1を提供することが可能になる。
【0134】
具体的には、
図2に示した通信部42が外部のコンピュータ10で実行されるデバイスドライバ50aとの間で通信を要求されているか否かを判定し、デバイスドライバ50aとの間の通信を要求されている場合にホバー座標とコンタクト座標とをデバイスドライバ50aに供給するタブレットモードで動作し、デバイスドライバ50aとの間の通信を要求されていない場合にホバー座標の少なくとも一部を破棄しコンタクト座標に基づいて生成されたストロークデータをメモリ43に記録するペーパーモードで動作するため、ペンタブレット1をコンピュータ10に対して手書きデータを供給する手書きデータ記録装置としても動作させる上で、ホバー座標によりメモリ43の容量を圧迫することを防ぐことが可能になる。
【0135】
また、連続するストロークをグループ(ページ)内のサブグループ(暫定レイヤ)ごとに区別してストロークデータを記録することが可能になるので、ページよりも細かい分類でストローデータ群を記録できるようになる。したがって、このストロークデータの供給を受けて手書きデータ描画方法を実行するコンピュータ20において、所定のサブグループに含まれるストロークデータを一括して削除したり、2以上のサブグループに属するストロークデータ群をマージしてレイヤを生成したり、といったユーザにとって便利な操作を実現することが可能になる。
【0136】
また、本実施の形態によるレイヤ編集処理によれば、レイヤnに対する編集操作に先立って第1及び第2の合成画像データが生成されるので、レイヤ構成を有する手書きデータを処理する際のコンピュータ20の負荷が軽減される。
【0137】
また、本実施の形態によるレイヤマージ処理によれば、コンピュータ20の側で、手書きデータを1つのページ又はレイヤに結合することが可能になる。
【0138】
以上、本発明の好ましい実施の形態について説明したが、本発明はこうした実施の形態に何等限定されるものではなく、本発明が、その要旨を逸脱しない範囲において、種々なる態様で実施され得ることは勿論である。
【0139】
例えば、上記実施の形態によるペンタブレット1は、ペーパーモードである場合にすべてのホバー座標を廃棄することとした(
図4のステップS23)が、例えばメモリ43の記憶容量に余裕がある場合などには、一部又は全部のホバー座標を記録することとしてもよい。
【0140】
また、上記実施の形態によるペンタブレット1は、検出した座標X,Yそのものを座標データの一部としてメモリ43に記録することとした。つまり、一連のコンタクト座標の集合によってストロークデータを構成したが、ペンタブレット1において補間処理を行い、その結果得られた制御点を、座標X,Yそのものに代えてメモリ43に記録することとしてもよい。この場合のストロークデータは、一連のコンタクト座標の集合を加工してなるデータの集合となる。
【符号の説明】
【0141】
1 ペンタブレット
2 タッチセンサ
3 押しボタン
5a,5b 電子ペン
10,20 コンピュータ
11 ディスプレイ
12 キーボード
13 マウスパッド
14 USBケーブル
21 タッチスクリーン
22 無線接続
30 キャパシタ
31 インダクタ
40 センサコントローラ
41 操作部
42 通信部
42a USB通信部
42b BT通信部
43,51,56 メモリ
50,55 プロセッサ
50a デバイスドライバ
52 USB通信部
57 BT通信部
60 選択回路
61 スイッチ回路
62 アンプ
63 検波回路
64 ローパスフィルタ
65 サンプルホールド回路
66 アナログデジタル変換回路
67 制御部
68 発振器
69 電流ドライバ
C マウスカーソル
L レイヤ
LC ループコイル
P ページ
PA 紙媒体
PR 筆圧値
SW1,SW2 サイドスイッチ情報
ST1~ST8 ストロークデータ
T タイムスタンプ情報
X,Y 座標