以下、本発明の一実施の形態を図面を参照しつつ説明する。
本実施形態の情報処理装置である手書き入力装置1は、図1(a)に示すように、筆記具である電子ペン2と、座標検出装置3とを備える。手書き入力装置1では、使用者が電子ペン2を持つ。電子ペン2は、入力される入力情報である位置情報、すなわち座標データの入力手段として機能する。
図1(b)及び図1(c)に示すように、座標検出装置3は、所定の方向に見開き可能な形状に構成されたシート体10を備えている。なお、以下の説明においては、上記の見開き形状にシート体10が設置された状態(図1(b)の状態)を基準として、図示左右方向を左右方向4と定義し、図示上下方向を上下方向5と定義する。本実施形態では、座標検出装置3は、所定の方向として、左右方向4に見開き可能な形状に構成されたシート体10を備えている。シート体10は、左側コイルシート100L(後述)を備えた左側シート部10Lと、右側コイルシート100R(後述)を備えた右側シート部10Rとを有する。
図1(b)及び図1(c)に示すように、被筆記体である左右見開き形状のノート30が、左右見開き形状の可撓性部材からなるシート体10に重なるように配置される。なお、左側コイルシート部10L及び右側シート部10Rに、図1(a)に示すようなノート保持部11をそれぞれ設けてもよい。これにより、座標検出装置3を容易かつ確実にノート30と一体化することができ、使用者による取り扱い性を向上することができる。
使用者は、電子ペン2を用いてノート30の第1筆記面31Lや第2筆記面31Rに手書きの所望の文字列等を筆記する。この筆記動作に対応した電子ペン2の移動により、筆記された文字列等に対応した電子的な入力情報、すなわち後述のペン位置データ列が電子ファイルに保存される。その際、実際にインクを用いてノート30の筆記面31L、筆記面31R等にページを切り替えながら記述が行われるのと同様、使用者が図示しないページ切替ボタンを操作することにより、電子ファイルのページ切り替え(ページ送り又はページ戻し)を行いながら保存することができる(後述)。
使用者が、手書き入力装置1を使用する際には、電子ペン2に備えられた図示しない電源スイッチがオンされる。電子ペン2は、図2に示すように、LC発振回路41と、先端スイッチ42と、電池43とを有する。
LC発振回路41は、磁界すなわち交番磁界を発生させる回路である。LC発振回路41は、図示しないコンデンサを含む。LC発振回路41で発生される磁界の周波数は、先端スイッチ42のオン又はオフに基づき、上記コンデンサの容量を変化させることで変更される。先端スイッチ42がオフの場合、LC発振回路41によって発生される磁界は、特定の周波数f1となる。一方、先端スイッチ42がオンの場合、LC発振回路41によって発生される磁界は、オフの場合とは異なる特定の周波数f2となる。
なお、先端スイッチ42がオフの場合にLC発振回路41から発生される磁界の周波数f1を、以下適宜、「接近周波数f1」という。また、先端スイッチ42がオンの場合にLC発振回路41から発生される磁界の周波数f2を、以下適宜、「入力周波数f2」ともいう。LC発振回路41で発生された磁界は座標検出装置3で検出される。f1<f2とすることにより、接近周波数f1の磁界を発生する際の消費電力を低減することができる。
先端スイッチ42は、発生させる磁界の周波数を変更するための指令信号S0を、LC発振回路41に対して出力するスイッチである。例えば、使用者が、電子ペン2を用いて、文字や図形等を記述するために電子ペン2の先端2aを筆記面31L,31Rに押しつけたとき、先端スイッチ42がオンとなる。そして、前述の指令信号S0が出力される。また、使用者が、文字や図形等の記述を止め、電子ペン2の先端2aを筆記面31L,31Rから離したとき、先端スイッチ42はオフとなる。この場合、指令信号S0は出力されず、LC発振回路41によって発生される磁界の周波数は、変更前の接近周波数f1に戻る。
電池43は、LC発振回路41に電力を供給する。また電池43は、図示しない電源スイッチがオンにされることで、LC発振回路41に電力を供給する。
座標検出装置3は、図2に示すように、コイルシート100L,100Rと、接近検出回路50と、位置検出回路60と、周辺回路70と、コンピュータ、例えばマイコン80と、スイッチ部90とを備える。なお、図2に2点鎖線で示す、端末200を備えた手書き入力システムSYとして構築される例については、後述する。マイコン80と、接近検出回路50、位置検出回路60、周辺回路70とは、信号ラインを介して伝送可能に接続されている。コイルシート100L,100Rと、接近検出回路50及び位置検出回路60とは、信号ラインを介して接続されている。接近検出回路50、位置検出回路60、及び周辺回路70と電池21とは、スイッチ部90を介して電力ラインによって接続されている。
マイコン80は、CPU80aと、ROM80bと、RAM80cと、カウンタ80dと、クロック80eと、その他のA/D変換機能部や割り込み機能部等とを、一つの集積回路として構成したものである。マイコン80は、座標検出装置3で実行される各種の処理を制御し、接近検出回路50、位置検出回路60、及び周辺回路70の動作状態を制御する。その制御内容の詳細は、図10を用いて後述する。
例えば、マイコン80は、スリープモードと、ノーマルモードとを切り替える。スリープモードは、接近検出回路50からの信号により、低消費電力モードで座標検出装置3が待機状態となるモードである。ノーマルモードは、座標検出装置3が、電子ペン2により発生された磁界を検出し、座標データを保存する通常動作を行うモードである。マイコン80からの信号により上記の各回路50,60,70はスリープモードとノーマルモードとが切替られる。スリープモードは各回路50,60,70が休止状態となり、電力が消費されない。また、マイコン80自身もスリープモードでは電力消費が小さくなる。スリープモードでは後述するように、スリープモードにおいて接近検出回路50からの接近信号S24による割り込み処理が実行されると、ノーマルモードに切り替えられる。なお、ノーマルモードとスリープモードとの切り替えの詳細については後述する。
コイルシート100L,100Rは、図3に示すように、センスコイル部110と、接近検出コイル部120とを含む。すなわち、図3に示すように配置されたセンスコイル部110及び接近検出コイル部120が例えば外形が長方形の薄板状に樹脂成形されて、コイルシート100L,100Rが構成されている。なお、図3では、センスコイル部110が破線で示され、接近検出コイル部120が実線で示されている。
センスコイル部110は、図3に示すように、x軸方向に配列されたm個のループ状のセンスコイルX1〜Xmと、y軸方向に配列されたn個のループ状のセンスコイルY1〜Ynとによって構成されている。センスコイルX1〜Xmと、センスコイルY1〜Ynとは、直交した位置関係で配置されている。センスコイルX1〜Xm及びセンスコイルY1〜Ynは、例えば表面に絶縁被膜層が形成された銅線によって形成されている。また、センスコイルX1〜Xm及びセンスコイルY1〜Ynは、電子ペン2によって発生された磁界に対応して、信号S1(図2参照)を発生する。さらに、センスコイルX1〜Xm及びセンスコイルY1〜Ynは、後述する位置検出回路60のマルチプレクサ62に接続されている。
センスコイルX1〜Xmは、それぞれ、x軸方向の幅P1の辺とP1より長いy軸方向の長さP2の辺とを備えた、略長方形状に形成されている。センスコイルX1〜Xmのそれぞれは、所定の一定ピッチでx軸方向に連続して配列されている。例えば、隣接するセンスコイルX1〜Xmは、P1の2分の1のピッチでそれぞれ重ねられている。
センスコイルY1〜Ynは、それぞれ、x軸方向の幅P3の辺とP3より短いy軸方向の長さP1の辺とを備えた、略長方形状に形成されている。センスコイルY1〜Ynのそれぞれは、所定の一定ピッチでy軸方向に連続して配列されている。例えば、隣接するセンスコイルY1〜Ynは、P1の2分の1のピッチでそれぞれ重ねられている。
なお、図3では、視覚的にわかりやすくするため、便宜上、センスコイルX1〜XmとセンスコイルY1〜Ynとの各辺が重ならないようにしており、上記ピッチで配列された状態では図示されていない。
接近検出コイル部120は、電子ペン2の先端スイッチ42がオフの状態でLC発振回路41から発生された接近周波数f1の磁界との磁気誘導によって、信号S2(図2参照)を発生する。図3に示すように、センスコイル部110とは異なり、接近検出コイル部120は、一つのループ状のコイルによって構成されている。
図2に戻り、接近検出回路50は、上記接近検出コイル部120で発生する信号S2に基づき、電子ペン2が座標検出装置3に接近したことを検出する。接近検出回路50は、図2に示すように、通過周波数がf1であるバンドパスフィルタ52と、増幅回路54と、整流回路56と、持続検出回路58とを備えている。
バンドパスフィルタ52は、入力される上記信号S2に対して、不要な帯域を除去する。そしてバンドパスフィルタ52は、電子ペン2で先端スイッチ42がオフの場合にLC発振回路41から発生される接近周波数f1の信号S21を通過させる。
増幅回路54は、バンドパスフィルタ52を通過した信号S21を増幅し、信号S22とする。整流回路56は、増幅回路54で増幅された信号S22の振幅検波を行う。
持続検出回路58は、ノイズによる誤動作を防止し、接近周波数f1成分を除去する。そのために、持続検出回路58は、整流回路56で振幅検波された信号S23が所定の一定時間継続しているかを検出するとともに、その信号S23の振幅が所定のしきい値Vthを超えているか判定する。持続検出回路58により、接近周波数f1の信号S23が一定時間継続し、かつ振幅がしきい値Vthを超えたことが検出された場合には、解除信号S24がマイコン80に出力される。解除信号S24は、待機状態すなわち上記スリープモードを解除するための信号である。したがって、電子ペン2が、コイルシート100L,100Rに近接した場合には、解除信号S24が出力される。
位置検出回路60は、電子ペン2が存在するコイルシート100L,100R上の位置を表す座標を検出する、周知の回路である。この位置検出回路60は、図2に示すように、マルチプレクサ62(以下適宜、「MUX」と称する)と、増幅回路64と、整流回路66とを備えている。
MUX62は、マイコン80からのコイル選択信号S3に基づきセンスコイル部110を順番に選択する。そして、MUX62は、選択されたセンスコイル部110において、電子ペン2で先端スイッチ42がオンの場合にLC発振回路41から発生される入力周波数f2の磁界との、磁気誘導によって発生した上記信号S1(図2参照)を入力し、対応する信号S11を出力する。
増幅回路64は、MUX62から入力される信号S11を増幅する。増幅回路64で増幅された信号すなわち電子ペン入力検知信号S12は、マイコン80に入力される。また、増幅回路64で増幅された別の信号S13は、整流回路66に入力される。整流回路66は、入力した上記信号S13を振幅検波した後、平滑化して直流信号に変換する。なお、整流回路66で振幅検波された信号S14は、マイコン80に入力される。マイコン80は前述したようにA/D変換機能を備えており、上記入力された振幅検波後の信号S14をデジタル信号に変換する。このとき、マイコン80の上記ROM80bに後述の位置座標テーブルが記憶されている。マイコン80は、上記デジタル信号に対し、上記位置座標テーブルを適用することにより、x軸方向のx座標及びy軸方向のy座標を算出する。なお、算出された座標データはフラッシュメモリ72に記憶される。この座標データの算出手法の詳細は、後述する。
周辺回路70は、図2に示すように、フラッシュメモリ72と、通信インターフェース74と、表示手段としての表示部76とを備えている。
フラッシュメモリ72には電子ファイルが予め用意されており、座標検出装置3で検出された座標データは上記電子ファイルに書き込まれ、保存される。通信インターフェース74は、フラッシュメモリ72に保存された複数の座標データを含むペン位置データ列に基づくストロークデータを、パーソナルコンピュータなどの外部装置に提供するためのインターフェースである。具体的には、通信インターフェース74は、例えばUniversal Serial Bus(USB)接続のためのUSBインターフェースや、SDカードなどのメモリカードスロットや、無線又は有線のネットワークインターフェースである。
表示部76は、例えばLiquid Crystal Display(LCD)によって構成され、所定の情報を表示する(詳細は後述)。
スイッチ部90は、マイコン80からの制御信号Saにしたがって、電池21を、接近検出回路50、若しくは、位置検出回路60及び周辺回路70に、選択的に接続する。
(A)本実施形態の手法原理
(A−1)追記重ね書きの発生
上記構成の本実施形態の特徴は、使用者がページ戻し操作を忘れてノート30に対し追記を行い、電子ファイルの追記時の最新ページに当該追記に係わる文字列データ(各請求項記載の処理対象電子データに相当。以下、「追記文字列データ」という)が存在していた場合に、当該追記文字列データを分割し、本来の追記箇所に対応した電子ファイルのページに移動させて結合することにある。すなわち、上述したように、本実施形態の手書き入力装置3では、使用者が電子ペン2によって所望の文字列を筆記面31L,31Rに記載すると、筆記された文字列に対応した電子的な入力情報(以下適宜、文字列データという)が生成される。このようにして生成された文字列データは、使用者が上記ページ切替ボタンを操作し電子ファイルのページ切り替え(ページ送り又はページ戻し)を行うことで、各ページに順次保存される。
例えば図4(a)に示す例では、使用者がノート30のある第1ページに「ABCD」「AB」「ABCD」の3行の文字列を記載したことに対応して、図4(d)に示すように、電子ファイルの第1ページに、対応する文字列データが記録される。その後、使用者は、図4(a)に示すようにノート30の第1ページの次のページである第2ページに、「EFGH」「EFG」「EFEF」と記載する。その際、使用者が座標検出装置3に設けた上記ページ切替ボタンを操作することで、電子ファイルのページ切替(第1ページから第2ページへ)も行われ、図4(d)の右側に示すように、電子ファイルにおける上記第1ページの次の第2ページにおいて、対応する文字列データ「EFGH」「EFG」「EFEF」が記録される。
その後、さらに使用者は、図4(b)に示すように、ノート30のさらに次の第3ページに、「IJKLMN」「IJKLMN」「IJKL」と記載する。この際も、上記同様、使用者がページ切替ボタンを操作することで、電子ファイルも第2ページから第3ページへ切り替わり、図4(e)に示すように、電子ファイルにおける上記第3ページにおいて、対応する文字列データ「IJKLMN」「IJKLMN」「IJKL」が記録される。
上記のように、電子ペン2を用いてノート30に対し文字列が記載される場合には、筆記面31L,31Rの未記載領域が、時系列に沿った一定の順序で規則性をもって埋められていくのが一般的である。しかしながら、例外的に、使用者の意図により、新たな文字列を、上記の順序に沿って最新のページの未記載領域に記載するのではなく、既に過去に文字列を記載済みのページにさかのぼって追記する場合がある。例えば、使用者が上記のようにノート30の第3ページへの記載を行っている状態において、さかのぼって第1ページに書き足したい内容を思いついた場合がある。この例では、図4(b)の破線矢印及び図4(c)に示すように、使用者はノート30を第1ページへと戻し、上述のように既にノート30の第1ページにおいて記載した「ABCD」「AB」「ABCD」の3行のうち、真ん中の「AB」の文字列の横に新たに「PQR」を追記している。
このような場合には、使用者が上記ページ切替ボタンを用いページ戻し操作を行って電子ファイルを第1ページに戻すことで、上記同様、電子ファイルの第1ページの未記載領域(「AB」の隣接箇所)に文字列「PQR」が記録される(図示省略)。しかしながら、上記のような追記の実行の際、使用者が上記ページ切替ボタンの操作をうっかり失念する場合がある。この場合には、現実のノート30には使用者の意図通りにさかのぼった第1ページに追記文字列「PQR」が記載されるものの、電子ファイルにおいては、その追記実行時の最新ページである第3ページに、当該追記文字列「PQR」が記録されることとなる。このため、この例では、図4(f)に示すように、最新ページである第3ページの第2行の文字列「IJKLMN」に重なるように上記追記文字列「PQR」が記録される(いわゆる重ね書き)結果、文字列データの信頼性が低くなってしまう。
(A−2)重ね書き箇所の検出
本実施形態では、このような使用者の戻し操作忘れによる、電子ファイル上への追記文字列データの重ね書きを、ストロークデータの挙動により検出する。
まずストロークデータについて、説明する。ストロークデータは、電子ペン2から連続的に発生された磁界とセンスコイル部110との電磁誘導に基づき連続的に取得された複数の座標データからなるペン位置データ列に対応したデータである。図5(a)及び図5(b)には、2つのストロークデータ「a」「b」の例を示している。図5(a)及び図5(b)において、第1ストロークデータ「a」は、T1(X1,Y1)〜T11(X11,Y11)の時系列に沿った11個の座標データを含む、電子ペン2による文字「a」の書き始めから書き終わりまでの一筆書き部分の軌跡を表すデータである。また、第2ストロークデータ「b」は、T12(X12,Y12)〜T21(X21,Y21)の時系列に沿った10個の座標データを含む、電子ペン2による文字「b」の書き始めから書き終わりまでの一筆書き部分の軌跡を表すデータである。
ここで、上述したように、一般に、使用者がノート30に対し文字列を記載する場合には、未記載領域が時系列に沿った一定の順序で規則性をもって埋められていく。例えば図6(a)に示すように、ノート30のあるページにおいて5行にわたって「ABCD」「ABCDEFGHIJ」「ABCDEFG」「ABCDE」「ABCDEF」の文字列が記載された場合を考える。ノート30の左上を原点とし、下方向をy座標値が増大する方向とすると、上記5行の文字列に対応するストロークデータは、図6(b)に示すような挙動となる。図6(b)の縦軸にはy座標をとり、図6(b)の横軸には各座標におけるストロークデータの通過回数を示している。
すなわち、図6(b)において、例えば、図示の最上段の「A」「B」「C」「D」の4文字について、文字「A」を構成するストロークデータ、文字「B」を構成するストロークデータ、文字「C」を構成するストロークデータ、及び、文字「D」を構成するストロークデータをそれぞれのy座標に着目して集計すると、y座標の値がy=11〜15の範囲内に集中するストロークデータ群(以下、第1ストロークデータ群という。図では「第1st群」のように略示)となる。したがって、このようなy座標の分布に基づき、これら文字「ABCD」が、電子ファイルの当該ページにおいて1行(この例では最初の行である第1行)の文字列を構成していることがわかる。
同様に、図6(b)における次の段に位置する「A」「B」「C」「D」「E」「F」「G」「H」「I」「J」をそれぞれ構成するストロークデータを集計すると、y=22〜26の範囲内に集中するストロークデータ群(第2ストロークデータ群)となる。したがって、文字「ABCDEFGHIJ」が第2行の文字列を構成する。以下同様に、y座標の分布に基づき、「ABCDEFG」が第3行の文字列、「ABCDE」が第4行の文字列、「ABCDEFG」が第5行の文字列であることがわかる。
そして、上記のような各ストロークデータ群の挙動を時系列で見ると、図6(c)で示すようになる。図6(c)の縦軸には上記同様のy座標をとり、図6(c)の横軸には各ストロークデータ群が記録されている時間をとって示している。
図6(c)に示されるように、上記第1行〜第5行の文字列に対応したそれぞれストロークデータ群が、図中、右下がりで表される規則性によって時系列的に表されることがわかる。
一方、前述したように、使用者が意図的に追記を行い、かつ、ページ戻し操作を失念した場合には、前述したように、上記追記された新たな追記文字列データは、電子ファイルにおける、その追記時点での最新のページに記録される。この結果、この場合のストロークデータ群の変化は、上記図6(c)に示すような一定の規則性に沿うものとはならない。図7は、このような場合のストロークデータ群の挙動を表す図であり、上記図6(c)に対応する図である。
図7において、時系列に沿って、第1ストロークデータ群、第2ストロークデータ群、第3ストロークデータ群、・・、第7ストロークテータ群が示されている。各ストロークデータ群はそれぞれ複数のストロークデータを含んでおり、図中、各ストロークデータをひとつづきの番号を付与して表している(図7中小カッコ内の番号表記参照)。すなわち、第1ストロークデータ群は第1〜第10ストロークデータを含み、第2ストロークデータ群は第11〜第30ストロークデータを含み、第3ストロークデータ群は第31〜第45ストロークデータを含み、第4ストロークデータ群は第46〜第55ストロークデータを含み、第5ストロークテータ群は第56〜第65ストロークデータを含み、第6ストロークデータ群は第66〜第75ストロークデータを含み、第7ストロークデータ群は第76〜第85ストロークデータを含んでいる。
そして、この例では、図示のように、第1ストロークデータ群のy座標はy=11〜15の範囲、第2ストロークデータ群のy座標はy=22〜26の範囲、及び、第3ストロークデータ群のy座標はy=33〜38の範囲となっている。すなわち、第1ストロークデータ群、第2ストロークデータ群、及び、第3ストロークデータ群は、この順番で、各ストロークデータ群のy座標の値が規則的に増えていることがわかる。
しかしながら、第3ストロークデータ群と第4ストロークデータ群との間では、上記の規則性が崩れている。すなわち、上記のように第3ストロークデータ群のy座標はy=33〜38の範囲であるのに対し、第4ストロークデータ群のy座標はy=11〜15の範囲となっており、第3ストロークデータ群のy座標の値よりも小さい、大きく飛んだ不連続な値であり、上記の規則性に逆行するような変化となっている。
本実施形態では、上記のようなストロークデータ群のy座標の範囲(言い換えればストロークデータの行位置)が検出される。そして、上記のようにストロークデータ群の行位置が大きく飛んで不連続となったり、それまでの規則性に逆行するような変化となった場合に、当該データが追記に対応するストロークデータ(以下、「追記ストロークデータ」という)であると判定される。上記の例では、第3ストロークデータ群から第4ストロークデータ群へ移行するとき、すなわち第3ストロークデータ群の最後の順番の第45ストロークデータから、第4ストロークデータ群の最初の順番の第46ストロークデータへの移行が上記飛び状態として検出される。そして、これ以降のストロークが、当該追記ストロークデータとして認識される。
一方、図4(a)〜(e)を用いて前述したように、一般に、追記は、使用者がノート30のページを戻して一時的に行うものである。したがって、追記が終了したら、追記前に筆記を行っていたもとのページのもとの箇所に戻るのが通常である。このような挙動に対応し、本実施形態では、上記のようにして追記ストロークデータの記録が開始された後、追記直前のストロークデータ(上記の例では第45ストロークデータ)とy座標がほぼ同等であるストロークデータとなったら、当該ストロークデータは追記部分からもとの記載に戻ったストロークデータであるとみなす。すなわち、図7に示す例では、上記第45ストロークデータのy座標範囲がy=33〜38であることから、上記のように第46ストロークデータ以降の追記が始まった後、初めて上記のy=33〜38のy座標範囲となる第66ストロークデータは上記もとの記載のストロークデータであるとみなされる。
以上の結果、追記ストロークデータが、第46ストロークデータから第65ストロークデータまでであることがわかる。言い換えれば、前述の電子ファイル上での文字列データの重ね書き箇所が判別される。
(A−3)追記文字列データの分割、移動
上記のようにして追記文字列データ(第46〜第65ストロークデータ)が確定したら、当該文字列データを分割し、電子ファイルにおける本来の使用者の追記の意図に沿ったページ(ノート30において実際に追記が行われたページに対応した電子ファイルのページ)へと移動する処理を行う。そのときの分割される文字列データの分割開始点は上記第46ストロークであり、分割終了点は上記第65ストロークとなる(図7参照)。
ところで、前述したように使用者が意図的にノート30に対して追記を行った場合には、新たな文字列が既に過去に記載済みのページ(前述の例では第1ページ)にさかのぼって記載される。このため、当該追記された文字列は、上記記載済みのページのうちまだ未記載である部分に記入される場合が多い(前述の例では第1ページの「AB」の横)。すなわち、記載済みのページの未記入部分の占める広さと、追記された文字列の占める領域の広さとは、概ね一致する場合が多い。これを電子ファイルにおける文字列データでの対応でみると、ある1ページにおける全文字列データ以外の部分の大きさと、追記文字列データの占める領域の大きさとが概ね一致し、当該文字列データが上記未記入部分内に納まるように配置されることとなる。この状態は、言い換えれば、当該1ページにおける全文字列データの配置位置と、移動する追記文字列データの配置位置とが、全く重ならない状態である。
本実施形態では、上記に基づき、追記文字列データを電子ファイルの各ページ(以下適宜、「ターゲットページ」という)に対し重ね合わせてみる。そして、各ターゲットページのすべての文字列データ(既にノート30の当該ページに記載されている文字列に対応)の占める第1領域と、上記追記文字列データの占める第2領域との、重なり度合いを決定する。なお、第1領域の占める領域とは、図8(a)〜(c)に示すように、第1領域に含まれるすべての文字列を包含するような外枠を規定した場合の、当該外枠の内側の領域をいう(第2領域についても同様)。
図8(a)〜(c)は、このときの重ね合わせの一例を表す説明図である。この例では、説明の便宜上、各ターゲットページが、縦32ドット×横27ドットの合計864ドットのデータ(図中、格子で示す)で表される場合を例にとって説明する。また、追記文字列データは、「678」「678」の6文字が、電子ファイルの1ページにおける中段の右側に位置する第2領域(縦12ドット×横11ドットの合計132ドット)に、2行にわたって記載された場合を例にとっている。
図8(a)に示すターゲットページ(ターゲットページ1)には、「012345」「012345」「012345」「012345」の24文字からなる文字列が4行にわたって記載されている。上記第1領域のうち、上記した「678」「678」の追記文字列データの位置に対応する部分(132ドット)には、既に「345」「345」の6文字が記載されている。この結果、第2領域の文字列「678」「678」が第1領域と重なった部分を図中の各格子で表されるドット単位で検出すると、図8(a)中に示すように、54ドットとなる。したがって、上記132ドットの第2領域における、上記第1領域及び第2領域が重なった部分の比率、すなわち重なり度合いは、54/132、すなわち約41%となる。
図8(b)に示すターゲットページ(ターゲットページ2)には、「012345」「012」「012345」「012345」の21文字からなる文字列が4行にわたって記載されている。第1領域のうち、上記した「678」「678」の追記文字列データの位置に対応する部分には、「345」の3文字が記載されている。この結果、第2領域の文字列「678」「678」が第1領域と重なった部分を図中の各格子で表されるドット単位で検出すると、図8(b)中に示すように、27ドットとなる。したがって、上記重なり度合いは、27/132、すなわち約20%となる。
図8(c)に示すターゲットページ(ターゲットページ3)には、「012345」「012」「012」「012345」の18文字からなる文字列が4行にわたって記載されている。第1領域のうち、上記した「678」「678」の追記文字列データの位置に対応する部分には、文字列が何も記載されていない。この結果、上記重なり度合いは、0/132、すなわち0%となる。
この結果、上記の例では、重なり度合いが最も少なくなる上記ターゲットページ3が、文字列データ「678」「678」を移動すべきページとして決定される。そして、本実施形態では、その決定結果に基づき、追記文字列データ「678」「678」を実際にターゲットページに移動して結合させた場合をシミュレートして表示する。図9は、上記の例に沿い、ターゲットページ3にもとから存在した文字列データ「012345」「012」「012」「012345」に対し、上記追記文字列データ「678」「678」が結合した状態を示している。結合の結果、ターゲットページ3の文字列データは、「012345」「012678」「012678」「012345」の24文字が4行にわたって記載された状態となっている。
(B)本実施形態の制御処理
以上のような本実施形態の、重ね書き検出、追記文字列データ分割、追記文字列データ移動・結合を含む情報処理方法を実現するために、マイコン80のROM80bに記憶された制御プログラム(情報処理プログラム)に基づいてCPU80aで行われる制御処理の内容を、図10〜図14により順を追って説明する。
図10は、CPU80aにより実行される、データ生成機能に係わるフローである。この処理は、使用者が座標検出装置3の電源をオンした場合に開始される。まず、CPU80aは、ステップSS10で、座標検出装置3を待機状態とする。すなわち、CPU80aは、スイッチ部90に制御信号Sa(図2参照)を出力し、スイッチ部90が電池21と接近検出回路50とを接続するとともに、電池21と位置検出回路60及び周辺回路70とを遮断する。これによって、位置検出回路60及び周辺回路70への電力の供給は遮断され、接近検出回路50にだけ電力が供給される。この結果、接近検出回路50は動作状態となり、位置検出回路60及び周辺回路70を休止状態に切り替えられる。なお、待機状態では、例えば後述するステップSS60で開始されるセンスコイル部110のスキャン等の負荷の大きな処理が実行されないので、マイコン80自体もスリープモードに切り替えられる。これらによって省電力が図られる。
その後、ステップSS20に移り、CPU80aは、座標検出装置3へ電子ペン2が接近したかどうかを判定する。前述のように、電子ペン2が接近したら解除信号S24が入力されるので、CPU80aは、接近検出回路50からの解除信号S24が入力されたかどうかによりステップSS20の判定を行う。解除信号S24が入力されていなければ判定が満たされず、ステップSS10へ戻り同様の手順を繰り返す。電子ペン2が座標検出装置3へ接近し解除信号S24が入力されたらステップSS20の判定が満たされ、ステップSS30へ移る。なお、この解除信号S24の入力検知の処理には、割り込み機能が用いられる。
ステップSS30では、座標検出装置3を動作状態とする。すなわち、CPU80aは、スイッチ部90に制御信号Sa(図2参照)を出力し、スイッチ部90が電池21と接近検出回路50とを遮断するとともに、電池21と位置検出回路60及び周辺回路70とを接続する。これによって、接近検出回路50への電力の供給は遮断され、位置検出回路60及び周辺回路70へ電力が供給される。この結果、接近検出回路50の休止状態に切り替えられるとともに、休止状態であった位置検出回路60及び周辺回路70は動作状態に切り替えられる。
そして、ステップSS40において、CPU80aは、各種変数を初期化する。すなわち、電源オフ操作がされたことを表すフラグFを0に初期化するとともに、ペンが押下状態にあるかどうかを判定する変数Pdを0にしてペン押下待ち状態にし、ストローク番号の変数Stを0にして初期化する。
その後、ステップSS42において、CPU80aは、電子ファイルのページ番号を表す変数Pnを最後に保存されたページ番号をフラッシュメモリから読込んでデータがあるかどうかを判定する。データがあればステップSS42の判定が満たされてステップSS44に移り、CPU80aは、Pnを、読込んだ値で初期化する。データがなければ、ステップSS42の判定が満たされず、ステップSS46に移り、CPU80aは、Pnを0で初期化する。ステップSS44又はステップSS46の後は、ステップSS50へ移る。
ステップSS50では、CPU80aは、使用者により上記ページ切替ボタンを用いたページ送り操作がなされたかどうかを判定する。なお、このような使用者の手動操作による電子ファイルのページ切り替えではなく、適宜の自動制御により電子ファイルのページ切り替えがなされる場合には、このステップSS50では、CPU80aが、上記自動制御によるページ切り替えがなされたかどうかを判定すればよい。使用者によるページ切り替え操作がなされない間はステップSS50の判定が満たされず、ステップSS55へ移る。
ステップSS55では、CPU80aは、使用者が座標検出装置3の電源をオフしたかどうかを判定する。電源オンのままであった場合にはステップSS55の判定が満たされず、ステップSS60に移る。なお、電源がオフ操作されていた場合にはステップSS55の判定が満たされてステップSS57に移り、CPU80aは上記フラグFを1とする。その後、後述のステップSS130に移る。
ステップSS60では、CPU80aは、コイルシート100L,100Rに備えられたセンスコイル部110のスキャン処理を実行する。具体的には、CPU80aは、センスコイルX1〜XmとセンスコイルY1〜Ynとを順番に選択するコイル選択信号S3を、MUX62に出力する。前述したように、電子ペン2の先端スイッチ42がオンの状態でLC発振回路41から発生された入力周波数f2の磁界と、いずれかのセンスコイルX1〜Xm,Y1〜Ynとの磁気誘導によって、信号S1が発生する。信号S1が発生している状態においてMUX62により選択されたセンスコイルX1〜Xm,Y1〜Ynからの上記信号S1は、MUX62へ入力される。MUX62はその入力した信号S1に対応した信号S11を増幅回路64へ出力し、信号S11は、増幅回路64によって増幅され、増幅後の信号S12がマイコン80のカウンタ80dに入力される。このようにしてステップSS60が終了したら、ステップSS70へ移る。
ステップSS70では、CPU80aは、上記ステップSS60でカウンタ80dに対し所定のしきい値以上の入力周波数f2の信号S12が検出されたかを判定する。この入力周波数f2の信号S12は、使用者が電子ペン2を用いて筆記面31に文字などを描き出した場合に先端スイッチ42がオンとなり、LC発振回路41で発生される磁界とセンスコイル部110とで生じた磁気誘導に基づく信号である。カウンタ80dにより上記しきい値以上の入力周波数f2の信号S12が検出されない間はステップSS70の判定が満たされず、ステップSS75に移る。ステップSS75では、CPU80aは、ペン押下状態であるか(Pd=1であるか)どうかを判定する。ペン押下状態が1であった(直前にペン入力があった)場合、ステップSS80に移り、CPU80aは、Pdを0にしてペン押下待ち状態に戻し、次の入力が新しいストロークに関連付けできるように、ストローク番号を表す変数Stを1つ増やす。その後、ステップSS50に戻り同様の手順を繰り返す。
一方、ステップSS70において、カウンタ80dにより上記しきい値以上の入力周波数f2の信号S12が検出されたら、判定が満たされ、ステップSS90に移行する。
ステップSS90では、ペンが押下された状態になったことに対応してPdを1にし、ステップ100に移行する。ステップSS100では、上記ステップSS60でのスキャン結果に基づく電子ペン2の位置の算出、すなわち座標データの算出を行う。この座標データの算出の詳細を、以下、順を追って説明する。
(A)位置座標テーブル
前述したように、座標データの算出には、マイコン80のROM80bに記憶された位置座標テーブルを用いる。この位置座標テーブルについて、図11(a)〜(c)及び図12(a),(b)を参照して説明する。なお、図11(a)では、図3とは異なりセンスコイルX1〜X3は、実線で示されている。また、図11(a)では、センスコイルX1〜X3の配置を分かり易くするために、センスコイルX1〜X3の各辺が重ならないように図示している。
図11(a)において、3つのセンスコイルX1,X2,X3の中心線をそれぞれC1,C2,C3とする。これらセンスコイルX1,X2,X3にそれぞれ発生する電圧値ex1,ex2,ex3は、図11(b)に示すように、センスコイルX1〜X3の中心C1〜C3においてそれぞれ最大になる。このとき、センスコイルX1〜X3は、自己のヌル点が隣接するセンスコイルの中心の外側となるように、前述したように、x軸方向の幅P1の2分の1の幅で重ねられている。
このとき、図11(c)に示すように、センスコイルX1〜X3の相互に隣接するセンスコイル間の電圧差は、センスコイルX1〜X3の中心C1〜C3上においてそれぞれ最大値となる。また、当該電圧差は、センスコイルX1〜X3の中心と、隣接するセンスコイルX1〜X3が重なった部分との中間点において、それぞれ最小値となる。例えば、図11(c)において、(ex1−ex2)のグラフの右半分つまり実線で示す部分は、センスコイルX1の中心C1から、センスコイルX2が重ねられた部分の中間点Q1までの距離、すなわち重ねピッチの2分の1であるP1の4分の1における、ex1−ex2の挙動を示している。
仮に電子ペン2が中間点Q2に存在したとすると、(ex1−ex2)を検出すれば、中心C1から中間点Q2点までの距離△X1を検出でき、その結果中間点Q2のx座標が求められる。仮にセンスコイルX1〜X3の幅P1が50mmであるとすれば、△X=P1/4=12.5mmである。したがって、例えば、図11(c)における上記(ex1−ex2)の特性を示す実線部分を8bitのデジタルデータに変換すると、図12(a)に示すグラフが得られる。このグラフをテーブル形式に変換することにより、図12(b)に示す位置座標テーブルが得られる。
(B)コイル電圧値を用いた座標決定
前述したように、電子ペン2のLC発振回路41から発生した磁界とセンスコイルX1〜Xm,Y1〜Ynとの磁気誘導によって発生した信号S1は、増幅回路64で増幅され、整流回路66で振幅検波され、信号S14となってマイコン80に入力される。マイコン80は、入力された信号S14を、振幅つまり電圧値に対応したデジタル信号に変換する。CPU80aは、このデジタル信号の表す電圧値を用いて、前述の位置座標テーブルを用いて電子ペン2の座標を決定する。以下、センスコイルX1〜Xmを例にとって上記座標決定の詳細手順を説明する。
まず、CPU80aは、上記信号S14から変換されたデジタル信号によって示される電圧値e1〜emを、センスコイルX1〜Xmのコイル番号と対応付けて、RAM80cの電圧値記憶エリアに順次記憶する。
その後、CPU80aは、センスコイルX1〜Xmのコイル番号に対応付けて、電圧値記憶エリアに記憶されている電圧値e1〜emの中で最大の電圧値emaxを選択する。そして、CPU80aは、電圧値emaxを発生したセンスコイルX1〜Xmのコイル番号XmaxをRAM80cに記憶する。
次に、CPU80aは、電圧値emaxを発生したセンスコイルX1〜Xmの両隣のセンスコイルX1〜Xmの電圧値e1〜emのうちいずれか大きい方を決定する。そして、CPU80aは、決定された電圧値e1〜emを発生したセンスコイルX1〜Xmのコイル番号を、コイル番号Xmax2としてRAM80cに記憶する。例えば、電圧値emaxがセンスコイルX2によって発生されていた場合、CPU80aは、その両隣のセンスコイルX1の電圧値e1及びセンスコイルX3の電圧値e3を比較し、大きい電圧値e1又は電圧値e3を決定する。そして、CPU80aは、決定された電圧値e1を発生したセンスコイルX1のコイル番号又は電圧値e3を発生したセンスコイルX3のコイル番号を、コイル番号Xmax2としてRAM80cに記憶する。
その後、CPU80aは、RAM80cに記憶されたコイル番号max及びコイル番号max2を比較して、コイル番号max2はコイル番号maxからx軸の+方向又は−方向のどちらに存在しているかを判定する。なお、x軸の+方向とは図3のx軸を示す矢印の方向であり、x軸の−方向とはその逆の方向である。判定の結果、コイル番号Xmax2がコイル番号Xmaxに対して+方向である場合、CPU80aは、変数SIDEを1に設定する。一方、コイル番号Xmax2がコイル番号Xmaxに対して−方向である場合、CPU80aは、変数SIDEを−1に設定する。例えば、電圧値emaxがセンスコイルX2で発生され、コイル番号XmaxとしてセンスコイルX2を示すコイル番号がRAM80cに記憶され、センスコイルX3のコイル番号がコイル番号Xmax2として記憶されていた場合、CPU80aは、変数SIDEを1に設定する。一方、電圧値emaxがセンスコイルX2で発生され、コイル番号XmaxとしてセンスコイルX2を示すコイル番号がRAM80cに記憶され、センスコイルX1のコイル番号がコイル番号Xmax2として記憶されていた場合、CPU80aは、変数SIDEを−1に設定する。
そして、変数SIDEを設定したCPU80aは、下記(式1)により、変数DIFFを算出する。
DIFF=e(max)−e(max2)・・・(式1)
CPU80aは、算出されたDIFFに最も近い位置座標を、ROM80bに予め記憶されている前述の位置座標テーブル(図12(b)参照)から読み出す。そして、CPU80aは、位置座標テーブルから読み出した位置座標を、変数OFFSETとする。
その後、CPU80aは、上記のようにして算出された変数SIDE及び変数OFFSETを用いて、下記(式2)により、電子ペン2のx軸方向の位置を示すx座標を求める。
X1=(P1/2)×max+OFFSET×SIDE・・・(式2)
ここで、(P1/2)×maxは、コイル番号maxの中心のx座標を示す。
なお、以上はx軸方向のセンスコイルX1〜Xmでの磁気誘導に基づく信号S14に基づく電子ペン2のx座標の算出を例に説明した。電子ペン2のy座標についても、センスコイルY1〜Ynでの磁気誘導に基づく信号S14により、同様の手法により算出される。
以上説明したように、ステップSS100では、上記(A)(B)の手法により電子ペン2の座標データ(x,y)が算出される。上記ステップSS60及びステップSS100の手順が、各請求項記載の位置取得手段として機能するとともに、情報取得手段としても機能する。このようにしてステップSS100が終了した後、ステップSS110に移る。
ステップSS110では、CPU80aは、上記ステップSS100で算出した電子ペン2の座標データ(x,y)を用いてペン位置データ列Dを生成する。詳細には、複数の座標データにより構成されるペン位置データ列Dの最後に、ステップSS100で算出した座標データ(x,y)をストローク番号Stと関連付けて追加し、新たなペン位置データ列Dとする。なお、ステップSS100で算出した座標データが最初の座標データであった場合には、当該1つの座標データにより新規にペン位置データ列Dを生成する。このようにして生成したペン位置データ列Dは、RAM80cに一時的に保存される。なお、後述のように、このペン位置データ列Dによってストロークデータが生成され、当該ストロークデータによって使用者がノート30に記載した文字列に対応した文字列データを取得可能である。すなわち、このペン位置データ列Dの生成は、言い換えれば、文字列データの生成と同等である。したがって、本願明細書においては、理解の容易のために、適宜、ペン位置データ列Dの生成等を、「ストロークデータの生成」「文字列データの生成」、等として表現している。
その後、ステップSS120に移り、CPU80aは、ステップSS110で生成したペン位置データ列Dに対し、電子ファイルの各ページに対応したページ番号Pnを付与する。その後、前述のステップSS50へ戻り、同様の手順を繰り返す。
以上のようにして、ステップSS50〜ステップSS120が繰り返され、使用者による電子ペン2の動きに対応したペン位置データ列Dが生成される。この繰り返しの間に、使用者により前述のページ送り操作があった場合、ステップSS50の判定が満たされ、ステップSS130に移る。
ステップSS130では、CPU80aは、この時点で生成済みでかつ上記RAM80cに保存された上記ペン位置データ列Dを、フラッシュメモリ72に保存する。なお、このステップSS130の手順が、各請求項記載の第1記憶手段として機能する。このように、連続的な複数の座標データ(x,y)からなるペン位置データ列Dを保存することにより、結果的に、当該ペン位置データ列Dに対応した前述のストロークデータを電子ファイルに保存することができる。
上記ステップSS130においてフラッシュメモリ72の電子ファイルに保存されたペン位置データ列D(ストロークデータ)は、使用者による適宜の操作によって、表示部76において、使用者が筆記した上記文字列等として表示し、利用することができる。あるいは、通信インターフェース74を介してパーソナルコンピュータなどの外部装置に提供され、当該外部装置によって、使用者が筆記した上記文字列等として表示し、利用することができる。ステップSS130が終了したら、ステップSS140へ移る。
ステップSS140では、CPU80aは、RAM80cに保存されているペン位置データ列Dの内容をクリアする。その後、ステップSS145へ移る。
ステップSS145では、CPU80aは、電源オフを表す上記フラグFが1であるかどうかを判定する。電源がオフされておらずF=0のままである場合には、ステップSS150に移る。ステップSS150では、上記ページ番号Pnに1を加え、前述のステップSS60へ移る。これにより、この後ステップSS60以降で検出される電子ペン2の動きに基づき生成されるペン位置データ列Dは、電子ファイルにおける次のページへ記録される。一方、先のステップSS55で電源がオフ操作されており、ステップSS57でFが1となっていた場合には、ステップSS145の判定が満たされ、ステップSS147に移る。ステップSS147では、CPU80aは、フラッシュメモリにページ番号Pnを保存し、その後、このフローを終了する。これにより、ページ送り操作がなされていない場合でも、使用者が電源をオフ操作した場合にはステップSS130〜ステップSS140が実行されて、フラッシュメモリ72へのストロークデータの保存及びペン位置データ列Dのクリアが行われる。なお、ステップSS55において、電源オフ操作の有無の判定に代えて、適宜の手法によりノート30やシート体10が閉じられたかどうかをCPU80aが判定するようにしてもよい。あるいは、予め定められた所定の時間が経過したかどうかをCPU80aが判定するようにしてもよい。
図13は、上記のようにして取得されフラッシュメモリ72に保存されたペン位置データ列D(ストロークデータ)に対し、CPU80aが実行する追記対応処理に係わるフローである。この処理は、例えば使用者が適宜の操作を実行することによって開始されてもよいし、上記図10のフローに対する割り込み処理として実行してもよい。この場合のCPU80aによる同時並行処理は、例えば、コンピュータのOS等でしばしば行われる、マルチタスク処理と同様の公知の方式により、1つのCPU80aにより実行することができる。
図13において、まずCPU80aは、ステップSS210で、フラッシュメモリ72に記憶されたペン位置データ列Dのうち、1ページ分のペン位置データ列Dを読み込んで取得する。
その後、ステップSS220に移り、CPU80aは、上記図6(a)〜(c)において説明した手法により、ステップSS210で読み込んだ各ペン位置データ列Dに対応したストロークデータのy座標の集中度に基づき、当該ページの全ストロークデータの行の位置をそれぞれ検出する。このステップSS220の手順が、各請求項記載の第1検出手段として機能する。
そして、ステップSS230に移り、CPU80aは、ステップSS220での行位置の検出結果に基づき、上記図7において説明した手法により、時系列に沿ったストロークデータに不連続な飛び状態が存在するかどうか等に基づき、ステップSS210で読み込んだペン位置データ列Dに、追記ストロークデータがあるかどうかを判定する。追記ストロークデータがなかった場合は判定が満たされず、後述のステップSS270へ移る。追記ストロークデータがあった場合は、ステップSS230の判定が満たされ、ステップSS240に移る。
ステップSS240では、CPU80aは、上記図7において説明したように、ストロークデータが不連続な飛び状態となった時点のストロークデータを分割開始点とし、ストロークデータが不連続な飛び状態になる直前のデータとほぼ同等のy座標となった時点のストロークデータを分割終了点とする。なお、このステップSS240の手順が各請求項記載の第2検出手段として機能し、また、このステップSS240の手順と上記ステップSS230の手順とが、各請求項記載の第1判定手段として機能する。その後、ステップSS250へ移る。
ステップSS250では、CPU80aは、上記ステップSS240で検出した分割開始点から分割終了点までのストロークデータに対応した文字列データを表示する表示信号を生成し、表示部76へ出力する。これにより、表示部76において、追記文字列データが表示され、使用者に対し確認が促される。使用者は、この表示を見ることで、追記文字列データを文字単位で正確に確認し認識することができる。
その後、ステップSS260において、CPU80aは、上記ステップSS250で表示された表示部76の表示をみた使用者により、適宜の操作手段により追記部分の確認操作がなされたかどうかを判定する。使用者が確認操作をすると判定が満たされ、ステップSS300に移る。
ステップSS300では、CPU80aは、上記ステップSS240〜ステップSS260で開始点と終了点が決定され使用者により確認された追記ストロークデータを、使用者が実際にノート30において追記した追記箇所に対応した電子ファイル中のページに移動し結合させる、結合処理を行う(詳細は後述の図14参照)。その後、ステップSS270へ移る。
ステップSS270では、CPU80aは、現在処理を行っている電子ファイルのページが、当該電子ファイルの最後のページであるかどうかを判定する。最後のページであれば判定が満たされてこのフローを終了する。最後のページでなかったらステップSS270の判定が満たされず、ステップSS210へ戻り、CPU80aは次のページのペン位置データ列Dを読み込み、以降、上記同様の手順を繰り返す。
上記ステップSS300の詳細内容を、図14により説明する。まず、ステップSS310で、CPU80aは、上記追記ストロークデータの結合対象の候補となる、電子ファイルの適宜の1ページ分のペン位置データ列Dをフラッシュメモリ72から読み込んで取得する。
その後、ステップSS320に移り、CPU80aは、上記図8(a)〜(c)において説明した手法により、上記ステップSS240〜ステップSS260で開始点と終了点が決定され電子ファイル上で上記第2領域を占める追記ストロークデータと、ステップSS310で読み込んだ上記ターゲットページの各ペン位置データ列Dに対応し電子ファイル上で第1領域を占める全ストロークデータとを、重ね合わせる。そして、CPU80aは、その2つの領域のストロークデータを重ね合わせたときの重なり度合いを算出する。このステップSS320の手順が、各請求項記載の第3決定手段として機能する。
その後、ステップSS330に移り、CPU80aは、すべてのターゲットページ(例えば電子ファイルの全ページ)について、ステップSS310及びステップSS320の処理が終了したかどうかを判定する。全ページについて処理が終了するまでは判定が満たされず、ステップSS310へ戻り、CPU80aは、次のターゲットページのペン位置データ列Dをフラッシュメモリ72から読み込み、同様の手順を繰り返す。すべてのターゲットページについてステップSS310及びステップSS320の処理が終了していたらステップSS330の判定が満たされ、ステップSS340へ移る。
ステップSS340では、ステップSS320で算出されたすべてのターゲットページにおける重なり度合いに基づき、CPU80aは、重なり度合いが最小であるターゲットページを選定する。その後、ステップSS350へ移る。
ステップSS350では、CPU80aは、上記ステップSS340で決定された重なり度合いが最小のターゲットページが、複数あるかどうかを判定する。重なり度合いが最小であるターゲットページが1つに絞られた場合には判定が満たされず、ステップSS370へ移る。重なり度合いが最小であるターゲットページが複数あった場合にはステップSS350の判定が満たされ、ステップSS360へ移る。
ステップSS360では、CPU80aは、上記ステップSS340により重なり度合いが最小であると決定された複数のターゲットページのうち、第1領域と第2領域との間の余白が最小であるページを選定する。この手順の意義を、図15(a)及び図15(b)を用いて説明する。
図15(a)及び図15(b)は、前述の図8(a)〜(c)と同様、ターゲットページの第1領域と追記文字列データの第2領域との重ね合わせの例を表す説明図である。ターゲットページを前述と同様の縦32ドット×横27ドットで表している。また、追記文字列データは、「678」の3文字が縦5ドット×横11ドットの合計55ドットの第2領域に1行で記載された場合を例にとっている。
図15(a)に示すターゲットページ(ターゲットページA)には、「012345」「012」「012」「012345」の18文字からなる文字列が記載されている。図15(b)に示すターゲットページ(ターゲットページB)には、「012345」「012」「012678」「012345」の21文字からなる文字列が記載されている。これら図15(a)及び図15(b)のいずれの場合についても、上記した追記文字列データ「678」に対応する領域には、文字列が記載されていない。この結果、前述の第2領域が第1領域と重なる部分を算出すると、図15(a)及び図15(b)のいずれの場合も0ドットとなり、前述の重なり度合いはいずれも0%となる。
ここで、既に述べたように、使用者が意図的にノート30に対して追記を行った場合には、新たな追記された文字列は上記記載済みのページのうち未記入の部分に記入される場合が多い。典型的には、記載済みのページの未記入部分の占める広さと、追記された文字列の占める領域の広さとは、ほぼ一致する場合が多い。電子ファイルにおける対応でみると、ある1ページにおける全文字列データ以外の部分の大きさ(第1領域以外の広さ)と、追記文字列データの占める領域の大きさ(第2領域の広さ)とが一致し、文字列データが上記未記入部分内に納まるように配置されることとなる。本実施形態ではこれに対応し、前述の重なり度合いが最も少なくなる(上記の例では0%)ページが複数存在した場合は、それら複数のページの中から、未記入部分の大きさと追記文字列データの占める領域の大きさとが概ね一致するようなページ(言い換えれば第1領域と第2領域との間の隙間がなるべく少ないページ)を、見つけ出す。
前述の例では、図15(a)のターゲットページAでは、第1領域と第2領域との間には、縦9ドット×横11ドットの合計99ドット分の比較的広い余白が生じる。これに対して図15(b)のターゲットページBでは、第1領域と第2領域との間には、縦2ドット×横11ドットの合計22ドット分の余白しか生じない。したがって、このような場合には、余白広さが小さい、図15(b)のターゲットページBが、選定される。その後、ステップSS370に移る。
ステップSS370では、CPU80aは、ステップSS340又はステップSS360で1つだけ選定されたターゲットページを、最終的な結合対象ページとして決定する。なお、この手順が、各請求項記載の第1決定手段として機能する。その後、ステップSS380に移る。
ステップSS380では、CPU80aは、上記ステップSS370で決定した、結合対象のページのストロークデータに対応した文字列データを表示する表示信号を生成し、表示部76へ出力する。これにより、表示部76において、上記結合対象のページに対応した全文字列データが表示され、使用者に対し確認が促される。
その後、ステップSS390において、CPU80aは、上記ステップSS380で表示された表示部76の表示をみた使用者により、適宜の操作手段により結合対象ページの確認操作がなされたかどうかを判定する。使用者が確認操作をすると判定が満たされ、ステップSS400に移る。
ステップSS400では、CPU80aは、追記文字列データを結合対象ページの文字列データに結合した状態を表示する表示信号を生成し、表示部76へ出力する。これにより、表示部76において、上記結合対象のページに、上記追記文字列データが結合した状態が表示される(前述の図9参照)。なお、このステップSS400の手順が、各請求項記載の信号生成手段として機能する。このステップSS400が完了したら、図13のフローのステップSS270へ移行する。
以上説明したように、本実施形態の手書き入力装置1においては、電子ファイル内に、使用者が追記文字列データがあるかどうかが判定され(図13のステップSS230参照)、追記文字列データがあった場合には、当該データの結合対象のページが決定される(図14のステップSS370参照)。これにより、当該決定された結合対象のページを表示する(図14のステップSS380参照)ことで、追記文字列データの処理が正しく行われていないことを使用者に認識させ、追記文字列データの移動を促すことができる。あるいは、結合対象のページを自動的に決定することも可能となる(後述の(2)の変形例参照)。したがって、使用者が意図的にページをさかのぼってノート30に対し追記を行った場合に、当該追記に合致した態様の文字列データを確実に正しい態様で電子ファイル上に生成することができる。この結果、使用者にとっての高い信頼性と利便性を確保することができる。
また、本実施形態では特に、追記文字列データを結合対象のページに移動した場合のシミュレート結果が表示部76において表示される(図14のステップSS400参照)。これにより、使用者は、自己の筆記内容に対応する文字列データが、使用者の追記時の意図に沿った態様に正しく修正されたかどうかを、視覚的に確認することができる。
また、本実施形態では特に、ストロークデータの時系列に沿った位置情報(前述の例ではy座標)の変化に基づいて、追記文字列データがあるかどうかの判定が行われる(図13のステップSS220及びステップSS230参照)。これにより、電子ファイル上の各ページに、移動させるべき、追記文字列データが含まれるかどうかを、精度よく判定することができる。
また、本実施形態では特に、電子ファイルにおける追記文字列データの結合対象のページを模索する際、各ターゲットページの既存の文字列データが占有する第1領域に対し、追記文字列データが占める第2領域を重ね合わせ、そのときの両領域の重なり度合いが求められる(図14のステップSS320参照)。そして、上記重なり度合いが最も少なくなるターゲットページが、追記文字列データを移動して結合させるページとして決定される(ステップSS370参照)。また、各ターゲットページの既存の文字列データが占める第1領域と追記文字列データが占める第2領域との重なり度合いを高い順で並び替えてユーザに表示し、ユーザが選択したページが追記文字列データを移動して結合させるページとして決定する手段を設けることもできる。これにより、追記文字列データの正しい結合先を、精度よく決定することができる。さらにこのとき、重なり度合いが最小となるターゲットページが複数存在した場合には、第1領域と第2領域との間に生じる余白が最も小さくなるページが結合対象ページとして決定される(ステップSS360参照)。これにより、追記文字列データの正しい結合先を、さらに精度よく決定することができる。
なお、本発明は、上記実施形態に限られるものではなく、その趣旨及び技術的思想を逸脱しない範囲内で、種々の変形が可能である。以下、そのような変形例を説明する。
(1)座標検出装置に接続された端末において処理を行う場合
上記実施形態においては、電子ペン2の座標データ(x,y)の検出に加え、その検出された座標データ(x,y)に基づく追記対応処理(追記文字列データの存在の有無判定、存在した場合の分割及び移動・結合)が、座標検出装置3により行われた。しかしながら、これに限られず、上記追記対応処理を、座標検出装置3に接続された前述の外部装置により行うようにしてもよい。
本変形例の情報処理システムである手書き入力システムSYを前述の図2を用いて説明する。図2に示すように、手書き入力システムSYでは、周辺回路70に備えられた通信インターフェース74に対し、上記外部装置としての処理端末200(本変形例での記録端末、あるいは情報処理装置に相当)が接続されている。この処理端末200は、例えばパーソナルコンピュータにより構成されている。処理端末200は、記憶装置201と、通信インターフェース202と、表示部203と、CPU204と、操作部205と、ROM(図示せず)、RAM(図示せず)等を有する。
記憶装置201は、例えばハードディスク等を備えた適宜の大容量記憶装置である。通信インターフェース202は、上記通信インターフェース74に対し、情報送受信可能に接続される。表示部203は、例えば液晶ディスプレイにより構成され、使用者に対し、上記実施形態における前述の表示部76と同様の表示を行う。CPU204は、上記RAMの一時記憶機能を利用しつつ、ROMや記憶装置201に予め記憶された制御プログラムを実行する。これにより、CPU204は、処理端末200全体の制御を行う。なお、上記以外の構成は、上記実施形態と同様であるので説明を省略する。
本変形例の手書き入力装置1(本変形例における筆記記録装置に相当)に備えられる座標検出装置3のCPU80aで実行される制御内容は、上記図10と同様である。すなわち、上記実施形態においては、座標検出装置3のCPU80aは図10に示すデータ生成に係わるフローと、図13及び図14に示す追記対応処理に係わるフローとを実行したが、本変形例では、図10のデータ生成に係わるフローのみを実行する。図10のフローにおいて実行する制御内容は上記実施形態と同様であるので、説明を省略する。なお、本変形例においては、ステップSS130の手順が各請求項記載の記憶手順を構成するとともに、第2記憶手段として機能する。
本変形例の処理端末200のCPU204で実行される制御内容を図16(a)及び図16(b)により説明する。図16(a)において、CPU204は、まず、ステップSS310で、上記実施形態の図13のステップSS210と同様、上記図10のステップSS130でフラッシュメモリ72に保存されたペン位置データ列Dのうち、1ページ分のデータを、通信インターフェース74及び通信インターフェース202を介し取得する。
その後、ステップSS200′に移り、CPU204は、ステップSS310で取得した1ページ分のペン位置データ列Dに対する、追記対応処理を実行する(詳細は後述)。
そして、ステップSS320において、CPU204は、表示部203に表示制御信号を出力する。これにより、表示部203は、上記追記対応処理が必要に応じて行われた電子ファイルの全ページの文字列等を表示する。ステップSS320が完了すると、このフローが終了する。
上記ステップSS200′の追記対応処理の詳細内容を図16(b)により説明する。図16(b)においてCPU204が実行する処理は、上記実施形態の図13において座標検出装置3のCPU80aが実行する全処理のうち、ステップSS210の手順を除く処理と同等の処理である。すなわち、CPU204は、図13と同様の、ステップSS220、ステップSS230、ステップSS240、ステップSS250、ステップSS260、ステップSS300、及び、ステップSS270の処理を行う。ステップSS300の詳細手順は、上記実施形態と同様、図14に示すステップSS310〜ステップSS400の各手順を実行する。したがって、詳細な処理内容については説明を省略する。なお、本変形例においては、上記実施形態と同様、ステップSS240の手順が各請求項記載の第2検出手段として機能する。また、このステップSS240の手順とステップSS230の手順とが、各請求項記載の判定手順を構成するとともに、第2判定手段として機能する。さらに、上記ステップSS370の手順が、決定手順を構成するとともに、第2決定手段として機能する。
以上のような本変形例においても、上記実施形態と同様の効果を得ることができる。
(2)追記箇所の特定及び移動・結合をすべて自動的に行う場合
すなわち、上記実施形態及び(1)の変形例においては、追記文字列データの存在及びその開始点・終了点が検出されたら、図13や図16に示すステップSS250で使用者に対し表示を行い、ステップSS260における使用者の確認操作を待って以降のステップSS300の結合処理を行った。また、結合処理においても、図14に示すステップSS380で使用者に対し結合対象ページの表示を行い、ステップSS390における使用者の確認操作を待って以降のステップSS400における結合状態の表示処理を行った。しかしながら、これらの使用者の表示及び確認操作を介在させず省略する形で、追記文字列の移動及び結合までをすべて自動的に行うようにしてもよい。この場合には、CPU80aやCPU204の処理内容を、上記ステップSS250、ステップSS260、ステップSS380、及びステップSS390を省略した内容とすれば足りる。
本変形例によっても、上記実施形態や(1)の変形例と同様の効果を得ることができる。
(3)その他
なお、以上においては、電子ファイルの各ページ毎におけるストロークデータのy座標の時系列変化に基づき、追記文字列データの存在の有無を判定したが、これに限られない。例えばストロークデータのx座標等、その他の位置情報の変化に基づいて上記判定を行うようにしてもよい。
また、以上においては、検出された電子ペン2の位置情報に基づき生成されたペン位置データ列Dを、座標検出装置3が、電子ファイルにおける各ページに記録したが、これに限られない。すなわち、電子ファイルの生成は行わず、単にペン位置データ列Dに対し、ページ番号のみを割り当てて付与し、フラッシュメモリ72に記憶するようにしてもよい。この場合は、電子ファイルの生成は、座標検出装置3に接続される上記処理端末200等の適宜の外部装置によって行えば足りる。
さらに、以上においては、座標検出装置3が自ら電子ペン2の位置を検出することで位置情報を取得したが、これに限られない。すなわち、電子ペン2が自ら検出した位置情報を座標検出装置3へ送り、座標検出装置3が取得するようにしてもよいし、パソコン等、座標検出装置3の外部から位置情報を別途入力して処理するようにしてもよい。この場合の座標検出装置3の位置情報を取得する機能が、各請求項記載の情報取得手段として機能する。
また、以上においては、電子ペン2が自己電源としての電池43を備え、この電池43の起電力によりLC発振回路41が発生した磁界をコイルシート100L,100Rで検出し、位置検出を行ったが、これに限られない。すなわち、電子ペン側に自己電源を設けず、装置側のコイルからの磁気誘導により電子ペンの共振回路に起電力を誘起して電子ペンのコンデンサに電荷を蓄積し、その蓄積した電荷を用いて電子ペンが発生した磁界を装置側のコイルで検出し、位置検出を行ってもよい。この場合も同様の効果を得る。
また、以上においては、シート体10に設けたセンスコイル部110が電磁波を電子ペン2と送受する非接触方式によって、電子ペン2の位置情報を取得したが、これに限られない。すなわち、上記以外の方式、例えば、ペンを用いてタブレットシート上にて所望の文字列の筆記動作を行ったときのペンの動きがタブレットシートにより検出される、接触方式によってペンの位置情報を取得してもよい。この場合も、前述したような手法により座標検出装置3の向きに対する筆記方向を判定し入力情報の回転の有無を切り替えることで、上述と同様の効果を得ることができる。
また、以上は、電子ペン2によって文字が記載される場合を例にとって説明したが、これに限られない。すなわち、図や絵など文字以外のものが記載される場合も同様に適用でき、同様の効果を得る。
なお、以上において、図2中に示す矢印は信号の流れの一例を示すものであり、信号の流れ方向を限定するものではない。
また、図10、図13、図14、図16等に示すフローチャートは本発明を上記フローに示す手順に限定するものではなく、発明の趣旨及び技術的思想を逸脱しない範囲内で手順の追加・削除又は順番の変更等をしてもよい。
また、以上既に述べた以外にも、上記実施形態や各変形例による手法を適宜組み合わせて利用しても良い。
その他、一々例示はしないが、本発明は、その趣旨を逸脱しない範囲内において、種々の変更が加えられて実施されるものである。