(57)【特許請求の範囲】
【請求項１】
手書きされた手書き文書データが表示されるタッチスクリーンディスプレイと、
前記手書きされた手書き文書データが記憶される文書メモリと、
手書き文字辞書データを参照して、前記手書き文書データに含まれる複数のストロークに対して文字認識の処理を実行するプロセッサと、
を具備する電子機器であって、
前記プロセッサは、
前記文書メモリから前記手書き文書データを修正前の手書き文書データとして読み出すと共に、前記修正前の手書き文書データの各行毎の第１ストロークデータ、第１ハッシュ値、文字認識結果を示す第１テキストデータを作業メモリに読み出し、
前記修正前の手書き文書データを前記タッチスクリーンディスプレイに表示し、
前記修正前の手書き文書データの修正に伴い、修正後の手書き文書データを前記文書メモリに上書きする際に、前記修正後の手書き文書データを各行毎に分割し、
前記修正後の手書き文書データの各行毎の第２ストロークデータの第２ハッシュ値を求め、
前記修正前の手書き文書データの前記第１ハッシュ値と、前記修正後の手書き文書データの対応する前記第２ハッシュ値との比較から、ハッシュ値が異なる差分行を検出し、
前記ハッシュ値が同じ行は前記文字認識を実行せず、前記作業メモリに格納されている前記第１テキストデータを前記文書メモリに上書きし、
前記ハッシュ値が異なる前記差分行は前記文字認識を実行して、その文字認識結果の第２テキストデータを前記文書メモリに上書きする、
電子機器。
【請求項２】
前記タッチスクリーンディスプレイに表示される前記修正後の手書き文書データにおいて、前記修正前の手書き文書データに比べて前記ハッシュ値が異なる前記差分行の表示形態を他の部分と異ならせ、前記文字認識が完了すると元の表示形態に戻す請求項１記載の電子機器。
【請求項３】
手書きされた文書が表示されるタッチスクリーンディスプレイと、
手書き文字辞書データを参照して、手書き文書データに含まれる複数のストロークに対して文字認識の処理を実行するプロセッサと、
を具備する電子機器であって、
前記プロセッサは、
前記タッチスクリーンディスプレイの画面上で手書きにより入力される１以上のストロークを表示すると共に、前記タッチスクリーンディスプレイから出力される座標列から前記手書きされた手書き文書データを生成し、
一定時間が経過した場合、現在の手書き文書データと、前記一定時間経過前の手書き文書データとを文書メモリに保存し、
前記現在の手書き文書データを各行毎に分割し、
前記現在の手書き文書データの各行毎のストロークデータの第１ハッシュ値と、前記一定時間経過前の手書き文書データの各行毎のストロークデータの第２ハッシュ値とを求め、
前記現在の手書き文書データの前記第１ハッシュ値と、前記一定時間経過前の手書き文書データの対応する前記第２ハッシュ値との比較から、ハッシュ値が異なる差分行を検出し、
前記ハッシュ値が同じ行は前記一定時間経過前の手書き文書データの文字認識結果を前記文書メモリに書き込み、前記ハッシュ値が異なる前記差分行は前記文字認識を実行して、その文字認識結果を前記文書メモリに書き込む、
電子機器。
【請求項４】
前記タッチスクリーンディスプレイに表示される前記現在の手書き文書データにおいて、前記一定時間経過前の手書き文書データに比べて前記ハッシュ値が異なる前記差分行の表示形態を他の部分と異ならせ、前記文字認識が完了すると元の表示形態に戻す請求項３記載の電子機器。
【請求項５】
手書きされた文書が表示されるタッチスクリーンディスプレイと、
手書き文字辞書データを参照して、手書き文書データに含まれる複数のストロークに対して文字認識の処理を実行するプロセッサと、
を具備する電子機器であって、
前記プロセッサは、
前記タッチスクリーンディスプレイの画面上で手書きにより入力される１以上のストロークを表示すると共に、前記タッチスクリーンディスプレイから出力される座標列から前記手書きされた手書き文書データを生成し、
現在の手書き文書データと、以前の手書き文書データとを文書メモリに記憶し、
前記現在の手書き文書データを各行毎に分割し、
前記現在の手書き文書データの各行毎のストロークデータの第１ハッシュ値と、前記以前の手書き文書データの各行毎のストロークデータの第２ハッシュ値を求め、
前記現在の手書き文書データの前記第１ハッシュ値と、前記以前の手書き文書データの対応する前記第２ハッシュ値との比較から、ハッシュ値が異なる差分行を検出し、
前記ハッシュ値が同じ行は前記以前の手書き文書データの文字認識結果を前記文書メモリに書き込み、前記ハッシュ値が異なる前記差分行は前記文字認識を実行して、その文字認識結果を前記文書メモリに書き込む、
電子機器。
【請求項６】
前記タッチスクリーンディスプレイに表示される前記現在の手書き文書データにおいて、前記以前の手書き文書データに比べて前記ハッシュ値が異なる前記差分行の表示形態を他の部分と異ならせ、前記文字認識が完了すると元の表示形態に戻す請求項５記載の電子機器。
【請求項７】
手書きされた手書き文書データが表示されるタッチスクリーンディスプレイと、
前記手書きされた手書き文書データが記憶される文書メモリと、
手書き文字辞書データを参照して、前記手書き文書データに含まれる複数のストロークに対して文字認識の処理を実行するプロセッサと、
を具備する電子機器の方法であって、
前記文書メモリから前記手書き文書データを修正前の手書き文書データとして読み出すと共に、前記修正前の手書き文書データの各行毎の第１ストロークデータ、第１ハッシュ値、文字認識結果を示す第１テキストデータを作業メモリに読み出し、
前記修正前の手書き文書データを前記タッチスクリーンディスプレイに表示し、
前記修正前の手書き文書データの修正に伴い、修正後の手書き文書データを前記文書メモリに上書きする際に、前記修正後の手書き文書データを各行毎に分割し、
前記修正後の手書き文書データの各行毎の第２ストロークデータの第２ハッシュ値を求め、
前記修正前の手書き文書データの前記第１ハッシュ値と、前記修正後の手書き文書データの対応する前記第２ハッシュ値との比較から、ハッシュ値が異なる差分行を検出し、
前記ハッシュ値が同じ行は前記文字認識を実行せず、前記作業メモリに格納されている前記第１テキストデータを前記文書メモリに上書きし、
前記ハッシュ値が異なる前記差分行は前記文字認識を実行して、その文字認識結果の第２テキストデータを前記文書メモリに上書きする、
方法。
【請求項８】
前記タッチスクリーンディスプレイに表示される前記修正後の手書き文書データにおいて、前記修正前の手書き文書データに比べて前記ハッシュ値が異なる前記差分行の表示形態を他の部分と異ならせ、前記文字認識が完了すると元の表示形態に戻す請求項７記載の方法。
【請求項９】
手書きされた文書が表示されるタッチスクリーンディスプレイと、
手書き文字辞書データを参照して、手書き文書データに含まれる複数のストロークに対して文字認識の処理を実行するプロセッサと、
を具備する電子機器の方法であって、
前記タッチスクリーンディスプレイの画面上で手書きにより入力される１以上のストロークを表示すると共に、前記タッチスクリーンディスプレイから出力される座標列から前記手書きされた手書き文書データを生成し、
一定時間が経過した場合、現在の手書き文書データと、前記一定時間経過前の手書き文書データとを文書メモリに保存し、
前記現在の手書き文書データを各行毎に分割し、
前記現在の手書き文書データの各行毎のストロークデータの第１ハッシュ値と、前記一定時間経過前の手書き文書データの各行毎のストロークデータの第２ハッシュ値を求め、
前記現在の手書き文書データの前記第１ハッシュ値と、前記一定時間経過前の手書き文書データの対応する前記第２ハッシュ値との比較から、ハッシュ値が異なる差分行を検出し、
前記ハッシュ値が同じ行は前記一定時間経過前の手書き文書データの文字認識結果を前記文書メモリに書き込み、前記ハッシュ値が異なる前記差分行は前記文字認識を実行して、その文字認識結果を前記文書メモリに書き込む、
方法。
【請求項１０】
前記タッチスクリーンディスプレイに表示される前記現在の手書き文書データにおいて、前記一定時間経過前の手書き文書データに比べて前記ハッシュ値が異なる前記差分行の表示形態を他の部分と異ならせ、前記文字認識が完了すると元の表示形態に戻す請求項９記載の方法。
【請求項１１】
手書きされた文書が表示されるタッチスクリーンディスプレイと、
手書き文字辞書データを参照して、手書き文書データに含まれる複数のストロークに対して文字認識の処理を実行するプロセッサと、
を具備する電子機器の方法であって、
前記タッチスクリーンディスプレイの画面上で手書きにより入力される１以上のストロークを表示すると共に、前記タッチスクリーンディスプレイから出力される座標列から前記手書きされた手書き文書データを生成し、
現在の手書き文書データと、以前の手書き文書データとを文書メモリに記憶し、
前記現在の手書き文書データを各行毎に分割し、
前記現在の手書き文書データの各行毎のストロークデータの第１ハッシュ値と、前記以前の手書き文書データの各行毎のストロークデータの第２ハッシュ値を求め、
前記現在の手書き文書データの前記第１ハッシュ値と、前記以前の手書き文書データの対応する前記第２ハッシュ値との比較から、ハッシュ値が異なる差分行を検出し、
前記ハッシュ値が同じ行は前記以前の手書き文書データの文字認識結果を前記文書メモリに書き込み、前記ハッシュ値が異なる前記差分行は前記文字認識を実行して、その文字認識結果を前記文書メモリに書き込む、
方法。
【請求項１２】
前記タッチスクリーンディスプレイに表示される前記現在の手書き文書データにおいて、前記以前の手書き文書データに比べて前記ハッシュ値が異なる前記差分行の表示形態を他の部分と異ならせ、前記文字認識が完了すると元の表示形態に戻す請求項１１記載の方法。
【請求項１３】
手書きされた手書き文書データが表示されるタッチスクリーンディスプレイと、
前記手書きされた手書き文書データが記憶される文書メモリと、
手書き文字辞書データを参照して、前記手書き文書データに含まれる複数のストロークに対して文字認識の処理を実行するプロセッサと、
を具備する電子機器のコンピュータに実行させるプログラムであって、
前記文書メモリから前記手書き文書データを修正前の手書き文書データとして読み出すと共に、前記修正前の手書き文書データの各行毎の第１ストロークデータ、第１ハッシュ値、文字認識結果を示す第１テキストデータを作業メモリに読み出す手順と、
前記修正前の手書き文書データを前記タッチスクリーンディスプレイに表示する手順と、
前記修正前の手書き文書データの修正に伴い、修正後の手書き文書データを前記文書メモリに上書きする際に、前記修正後の手書き文書データを各行毎に分割する手順と、
前記修正後の手書き文書データの各行毎の第２ストロークデータの第２ハッシュ値を求める手順と、
前記修正前の手書き文書データの前記第１ハッシュ値と、前記修正後の手書き文書データの対応する前記第２ハッシュ値との比較から、ハッシュ値が異なる差分行を検出する手順と、
前記ハッシュ値が同じ行は前記文字認識を実行せず、前記作業メモリに格納されている前記第１テキストデータを前記文書メモリに上書きする手順と、
前記ハッシュ値が異なる前記差分行は前記文字認識を実行して、その文字認識結果の第２テキストデータを前記文書メモリに上書きする手順と、
を前記コンピュータに実行させるプログラム。
【請求項１４】
前記タッチスクリーンディスプレイに表示される前記修正後の手書き文書データにおいて、前記修正前の手書き文書データに比べて前記ハッシュ値が異なる前記差分行の表示形態を他の部分と異ならせ、前記文字認識が完了すると元の表示形態に戻す手順を更に具備する請求項１３記載のプログラム。
【請求項１５】
手書きされた文書が表示されるタッチスクリーンディスプレイと、
手書き文字辞書データを参照して、手書き文書データに含まれる複数のストロークに対して文字認識の処理を実行するプロセッサと、
を具備する電子機器のコンピュータに実行させるプログラムであって、
前記タッチスクリーンディスプレイの画面上で手書きにより入力される１以上のストロークを表示すると共に、前記タッチスクリーンディスプレイから出力される座標列から前記手書きされた手書き文書データを生成する手順と、
一定時間が経過した場合、現在の手書き文書データと、前記一定時間経過前の手書き文書データとを文書メモリに保存する手順と、
前記現在の手書き文書データを各行毎に分割する手順と、
前記現在の手書き文書データの各行毎のストロークデータの第１ハッシュ値と、前記一定時間経過前の手書き文書データの各行毎のストロークデータの第２ハッシュ値を求める手順と、
前記現在の手書き文書データの前記第１ハッシュ値と、前記一定時間経過前の手書き文書データの対応する前記第２ハッシュ値との比較から、ハッシュ値が異なる差分行を検出する手順と、
前記ハッシュ値が同じ行は前記一定時間経過前の手書き文書データの文字認識結果を前記文書メモリに書き込み、前記ハッシュ値が異なる前記差分行は前記文字認識を実行して、その文字認識結果を前記文書メモリに書き込む手順と、
を前記コンピュータに実行させるプログラム。
【請求項１６】
前記タッチスクリーンディスプレイに表示される前記現在の手書き文書データにおいて、前記一定時間経過前の手書き文書データに比べて前記ハッシュ値が異なる前記差分行の表示形態を他の部分と異ならせ、前記文字認識が完了すると元の表示形態に戻す手順を更に具備する請求項１５記載のプログラム。
【請求項１７】
手書きされた文書が表示されるタッチスクリーンディスプレイと、
手書き文字辞書データを参照して、手書き文書データに含まれる複数のストロークに対して文字認識の処理を実行するプロセッサと、
を具備する電子機器のコンピュータに実行させるプログラムであって、
前記タッチスクリーンディスプレイの画面上で手書きにより入力される１以上のストロークを表示すると共に、前記タッチスクリーンディスプレイから出力される座標列から前記手書きされた手書き文書データを生成する手順と、
現在の手書き文書データと、以前の手書き文書データとを文書メモリに記憶する手順と、
前記現在の手書き文書データを各行毎に分割する手順と、
前記現在の手書き文書データの各行毎のストロークデータの第１ハッシュ値と、前記以前の手書き文書データの各行毎のストロークデータの第２ハッシュ値を求める手順と、
前記現在の手書き文書データの前記第１ハッシュ値と、前記以前の手書き文書データの対応する前記第２ハッシュ値との比較から、ハッシュ値が異なる差分行を検出する手順と、
前記ハッシュ値が同じ行は前記以前の手書き文書データの文字認識結果を前記文書メモリに書き込み、前記ハッシュ値が異なる前記差分行は前記文字認識を実行して、その文字認識結果を前記文書メモリに書き込む手順と、
を前記コンピュータに実行させるプログラム。
【請求項１８】
前記タッチスクリーンディスプレイに表示される前記現在の手書き文書データにおいて、前記以前の手書き文書データに比べて前記ハッシュ値が異なる前記差分行の表示形態を他の部分と異ならせ、前記文字認識が完了すると元の表示形態に戻す手順を更に具備する請求項１７記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は文字を手書き入力する技術に関する。
【背景技術】
【０００２】
近年、タブレット、ＰＤＡ、スマートフォンといった種々の電子機器が開発されている。従来の電子機器では、文字やコマンドの入力はキーボード、マウス等により文字やコマンドを表すコードを入力することにより行なわれている。近年の電子機器では、この入力を容易にするために、タッチスクリーンディスプレイを備える。画面上で手書き、あるいは画面にタッチすることにより、文字、図形、コマンド等を入力することができるようになっている。【０００３】
手書き文書は、イメージデータではなく、文字を構成する各ストロークのサンプリング点の座標情報と、ストローク間の順序関係（手書きされた順番）とを示すストロークデータとして保存される。検索の際、クエリストロークが手書きされると、クエリストロークの特徴と類似する特徴を有するストロークを含むストロークデータを見つける。しかし、通常の文書プロセッサのように文字コード（テキストデータ）に基づく検索もできるように、手書き文書を文字認識して、認識結果をストロークデータに付随させて保存することもある。通常、文字認識は、手書き文書の保存の際に行なわれる。手書き文書の保存は、新規文書の保存と、一度作成し保存された手書き文書を読み出して修正後に上書き保存する場合がある。後者の上書き保存の場合、修正後の手書き文書は修正前の手書き文書と同じ部分（既に認識した部分）があるにも関わらず、文書全体を文字認識している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開2003-208416号公報
【特許文献２】米国特許第7215815号明細書
【特許文献３】特開2001-229179号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来の電子機器は、手書き文書の文字認識において、既に認識した部分の再認識にかかる処理時間、消費電力が無駄である。【０００６】
本発明の一形態の目的は手書き文字を効率よく文字認識する電子機器、方法及びプログラムを提供することである。
【課題を解決するための手段】
【０００７】
実施形態によれば、電子機器は、手書きされた手書き文書データが表示されるタッチスクリーンディスプレイと、前記手書きされた手書き文書データが記憶される文書メモリと、手書き文字辞書データを参照して、前記手書き文書データに含まれる複数のストロークに対して文字認識の処理を実行するプロセッサと、を具備する。前記プロセッサは、前記文書メモリから前記手書き文書データを修正前の手書き文書データとして読み出すと共に、前記修正前の手書き文書データの各行毎の第１ストロークデータ、第１ハッシュ値、文字認識結果を示す第１テキストデータを作業メモリに読み出し、前記修正前の手書き文書データを前記タッチスクリーンディスプレイに表示し、前記修正前の手書き文書データの修正に伴い、修正後の手書き文書データを前記文書メモリに上書きする際に、前記修正後の手書き文書データを各行毎に分割し、前記修正後の手書き文書データの各行毎の第２ストロークデータの第２ハッシュ値を求め、前記修正前の手書き文書データの前記第１ハッシュ値と、前記修正後の手書き文書データの対応する前記第２ハッシュ値との比較から、ハッシュ値が異なる差分行を検出し、前記ハッシュ値が同じ行は前記文字認識を実行せず、前記作業メモリに格納されている前記第１テキストデータを使用して前記文書メモリに上書きし、前記ハッシュ値が異なる前記差分行は前記文字認識を実行して、その文字認識結果の第２テキストデータを前記文書メモリに上書きする。
【図面の簡単な説明】
【０００８】
【図１】図１は実施形態に係る電子機器の外観を示す例示的な斜視図である。
【図２】図２はタッチスクリーンディスプレイに手書きされる手書き文書の一例を示す図である。
【図３】図３はストロークデータの集合である手書き文書データの一例を示す図である。
【図４】図４は電子機器のシステム構成を示す例示的なブロック図である。
【図５】図５は電子機器によって実行されるデジタルノートアプリケーションプログラムの機能構成を示す例示的なブロック図である。
【図６】図６は実施形態の手書き入力処理の一例を示すフローチャートである。
【図７Ａ】図７Ａは修正前の手書き文書の一例を示す図である。
【図７Ｂ】図７Ｂは修正後の手書き文書の一例を示す図である。
【図８】図８は実施形態の手書き入力処理の他の例を示すフローチャートである。
【図９】図９は実施形態の手書き入力処理のさらに他の例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下、実施形態について図面を参照して説明する。
【００１０】
図１は、実施形態に係る電子機器の外観の一例を示す斜視図である。電子機器は、例えば、ペンまたは指によって手書き入力可能なペン・ベースの携帯型電子機器である。電子機器は、タブレットコンピュータ、ノートブック型パーソナルコンピュータ、スマートフォン、ＰＤＡ等として実現され得る。ここでは、この電子機器がタブレットコンピュータ１０として実現されている場合を説明する。タブレットコンピュータ１０は、タブレットまたはストレートコンピュータとも称される携帯型電子機器である。本体１１は、薄い箱形の筐体を有している。
【００１１】
本体１１の上面にタッチスクリーンディスプレイ１７が重ね合わされるように取り付けられている。タッチスクリーンディスプレイ１７は、フラットパネルディスプレイと、フラットパネルディスプレイの画面上のペンまたは指の接触位置を検出するように構成されたセンサとを含む。フラットパネルディスプレイは、例えば、液晶表示装置（ＬＣＤ）であってもよい。センサとしては、例えば、静電容量方式のタッチパネル、電磁誘導方式のデジタイザなどを使用することができる。ここでは、デジタイザとタッチパネルの２種類のセンサの双方がタッチスクリーンディスプレイ１７に組み込まれている場合を説明する。このため、タッチスクリーンディスプレイ１７は、指を使用した画面に対するタッチ操作のみならず、ペン１００を使用した画面に対するタッチ操作も検出することもできる。
【００１２】
ペン１００は例えばデジタイザペン（電磁誘導ペン）であってもよい。ユーザは、ペン１００を使用してタッチスクリーンディスプレイ１７上で手書き入力操作を行うことができる（ペン入力モード）。ペン入力モードにおいては、画面上のペン１００の動きの軌跡、つまり手書き入力操作によって手書きされるストロークが求められ、これに基づいて手書き入力された複数の文字が画面上に表示される。ペン１００が画面に接触されている期間のペン１００の動きの軌跡が１つのストロークに相当する。複数のストロークが文字、記号等を構成する。手書きされた文字、手書きされた図形、手書きされた表、などに対応する多数のストロークの集合が手書き文書を構成する。手書き文書は複数のページを含むことができる。
【００１３】
実施形態では、手書き文書は、イメージデータではなく、各ストロークを構成する座標列と、ストローク間の順序関係（手書きされた順番）とを示す手書き文書データとして記憶媒体に保存される。手書き文書データは、複数のストロークにそれぞれ対応する時系列のストロークデータの集合を意味する。各ストロークデータは、ある一つのストロークに対応し、このストローク上の点それぞれに対応する座標データ系列（時系列座標）を含む。これらストロークデータの並びの順序は、ストロークそれぞれが手書きされた順序に相当する。手書き文書データには、１または複数のストロークデータに対応する文字を文字認識した結果の文字コード（テキストデータ）も付随される。
【００１４】
タブレットコンピュータ１０は、記憶媒体から既存の任意の手書き文書データを読み出し、この手書き文書データに対応する手書き文書、つまりこの手書き文書データによって示される複数のストロークを画面上に表示することができる。手書き文書データによって示される複数のストロークも、手書きによって入力される複数のストロークである。
【００１５】
タブレットコンピュータ１０は、ネットワーク通信機能を有しており、他のパーソナルコンピュータやインターネット上のサーバシステム２などと連携することができる。すなわち、タブレットコンピュータ１０は、無線ＬＡＮなどの無線通信デバイスを備えており、他のパーソナルコンピュータとの無線通信を実行することができる。さらに、タブレットコンピュータ１０は、インターネット上のサーバシステム２との通信を実行することもできる。サーバシステム２は様々な情報を共有するためのシステムであり、オンラインストレージサービス、他の各種クラウドコンピューティングサービスを実行する。サーバシステム２は１以上のサーバコンピュータから実現し得る。
【００１６】
サーバシステム２はハードディスクドライブ（ＨＤＤ）のような大容量の記憶媒体を備えている。タブレットコンピュータ１０は、手書き文書データをネットワーク越しにサーバシステム２に送信して、サーバシステム２の記憶媒体に格納することができる（アップロード）。タブレットコンピュータ１０とサーバシステム２との間のセキュアな通信を確保するために、通信開始時には、サーバシステム２がタブレットコンピュータ１０を認証するようにしてもよい。この場合、タブレットコンピュータ１０の画面上にユーザに対してＩＤまたはパスワードの入力を促すダイアログを表示してもよいし、タブレットコンピュータ１０のＩＤなどを自動的にタブレットコンピュータ１０からサーバシステム２に送信してもよい。
【００１７】
これにより、タブレットコンピュータ１０内のストレージの容量が少ない場合でも、タブレットコンピュータ１０が多数の手書き文書データあるいは大容量の手書き文書データを扱うことが可能となる。
【００１８】
さらに、タブレットコンピュータ１０は、サーバシステム２の記憶媒体に格納されている任意の１以上の手書き文書データを読み出し（ダウンロード）、その読み出した手書き文書データによって示されるストロークそれぞれの軌跡をタブレットコンピュータ１０のディスプレイ１７の画面に表示することができる。この場合、複数の手書き文書データのページを縮小することによって得られるサムネイル（サムネイル画像）の一覧をディスプレイ１７の画面上に表示してもよいし、これらサムネイルから選ばれた１ページをディスプレイ１７の画面上に通常サイズで表示してもよい。
【００１９】
このように、本実施形態では、手書き文書データが格納される記憶媒体は、タブレットコンピュータ１０内のストレージ、サーバシステム２内のストレージのいずれであってもよい。タブレットコンピュータ１０のユーザは、任意の手書き文書データを、タブレットコンピュータ１０内のストレージおよびサーバシステム２内のストレージから選択される任意のストレージに格納することができる。
【００２０】
次に、図２及び図３を参照して、ユーザによって手書きされたストローク（手書きの文字、マーク、図形、表など）と手書き文書データとの関係について説明する。図２は、ペン１００などを使用してタッチスクリーンディスプレイ１７上に手書きされる文書の例を示している。
【００２１】
一般的に、文書では、一旦手書きされた文字や図形などの上に、さらに別の文字や図形などが手書きされるというケースが多い。図２においては、文字“Ａ”、“Ｂ”、“Ｃ”がこの順番で手書きされ、この後に、矢印が、手書き文字“Ａ”のすぐ近くに手書きされた場合が想定されている。
【００２２】
手書き文字“Ａ”は、ペン１００などを使用して手書きされる２つのストローク（“∧”形状の軌跡、“−”形状の軌跡）、つまり２つの軌跡によって表現される。最初に手書きされる“∧”形状のペン１００の軌跡は例えば等時間間隔でリアルタイムにサンプリングされ、これによって“∧”形状のストロークの時系列座標ＳＤ１１、ＳＤ１２、…ＳＤ１ｎが得られる。同様に、次に手書きされる“−”形状のペン１００の軌跡もサンプリングされ、これによって“−”形状のストロークの時系列座標ＳＤ２１、ＳＤ２２、…ＳＤ２ｎが得られる。
【００２３】
手書き文字“Ｂ”は、ペン１００などを使用して手書きされた２つのストローク、つまり２つの軌跡によって表現される。手書き文字“Ｃ”は、ペン１００などを使用して手書きされた１つのストローク、つまり１つの軌跡によって表現される。手書きの矢印は、ペン１００などを使用して手書きされた２つのストローク、つまり２つの軌跡によって表現される。
【００２４】
図３は、図２の文書に対応する手書き文書データ４００を示している。手書き文書データ４００は、複数のストロークデータＳＤ１、ＳＤ２、…、ＳＤ７を含む。手書き文書データ４００内においては、これらストロークデータＳＤ１、ＳＤ２、…、ＳＤ７は、筆跡順に、つまり複数のストロークが手書きされた順に時系列に並べられている。
【００２５】
手書き文書データ４００において、先頭の２つのストロークデータＳＤ１、ＳＤ２は、手書き文字“Ａ”の２つのストロークをそれぞれ示している。３番目と４番目のストロークデータＳＤ３、ＳＤ４は、手書き文字“Ｂ”を構成する２つのストロークをそれぞれ示している。５番目のストロークデータＳＤ５は、手書き文字“Ｃ”を構成する１つのストロークを示している。６番目と７番目のストロークデータＳＤ６、ＳＤ７は、手書き矢印を構成する２つのストロークをそれぞれ示している。
【００２６】
各ストロークデータは、一つのストロークに対応する座標データ系列（時系列座標）、つまり一つのストローク上の複数の点それぞれに対応する複数の座標を含む。各ストロークデータにおいて、複数の座標は、ストロークが書かれた順に時系列に並べられている。例えば、手書き文字“Ａ”に関しては、ストロークデータＳＤ１は、手書き文字“Ａ”の“∧”形状のストローク上の点それぞれに対応する座標データ系列（時系列座標）、つまりｎ個の座標データＳＤ１１、ＳＤ１２、…ＳＤ１ｎを含む。ストロークデータＳＤ２は、手書き文字“Ａ”の“−”形状のストローク上の点それぞれに対応する座標データ系列、つまりｎ個の座標データＳＤ２１、ＳＤ２２、…ＳＤ２ｎを含む。なお、座標データの数はストロークデータ毎に異なっていてもよい。
【００２７】
各座標データは、ストロークのある１点に対応するＸ座標及びＹ座標を示す。例えば、座標データＳＤ１１は、“∧”形状のストロークの始点のＸ座標“Ｘ１１”及びＹ座標“Ｙ１１”を示す。ＳＤ１ｎは、“∧”形状のストロークの終点のＸ座標“Ｘ１ｎ”及びＹ座標“Ｙ１ｎ”を示す。
【００２８】
また、各座標データは、その座標に対応する点が手書きされた時点に対応するタイムスタンプ情報Ｔを含んでいてもよい。手書きされた時点は、絶対時間（例えば、年月日時分秒）と、ある時点を基準とした相対時間のいずれであってもよい。例えば、各ストロークデータに、ストロークが書き始められた絶対時間（例えば、年月日時分秒）をタイムスタンプ情報として付加し、さらに、ストロークデータ内の各座標データに、絶対時間との差分を示す相対時間をタイムスタンプ情報Ｔとして付加してもよい。各座標データにタイムスタンプ情報Ｔが追加された手書き文書データを使用することにより、ストローク間の時間的関係をより精度よく表すことができる。タイムスタンプ情報Ｔは、手書き文書の修正の有無の検出に利用できる。
【００２９】
さらに、図３では図示しないが、各座標データは、その座標に対応する点が手書きされた時点の、外部オブジェクト（例えば、ペン１００）が画面に接触されたことによる圧力を含んでいてもよい。
【００３０】
さらに、手書き文書データには、ストロークデータに対応する文字を文字認識した結果の文字コード（テキストデータ）４００Ａも付随される。ストロークデータＳＤ１、ＳＤ２からなる手書き文字は“Ａ”として認識され、３番目と４番目のストロークデータＳＤ３、ＳＤ４からなる手書き文字は“Ｂ”として認識され、５番目のストロークデータＳＤ５からなる手書き文字は“Ｃ”として認識される。６番目と７番目のストロークデータＳＤ６、ＳＤ７は手書き文字とは認識されず、図形として認識される。
【００３１】
本実施形態では、上述したように、手書きされるストロークは、イメージや文字認識結果ではなく、時系列のストロークデータの集合から構成される手書き文書データ４００として記憶されるので、言語に依存せずに手書きの文字や図形を扱うことができる。よって、本実施形態の手書き文書データ４００の構造は、使用言語が異なる世界中の様々な国で共通に使用できる。
【００３２】
図４は、タブレットコンピュータ１０のシステム構成を示す図である。  
タブレットコンピュータ１０は、ＣＰＵ１０１、システムコントローラ１０２、主メモリ１０３、グラフィクスコントローラ１０４、ＢＩＯＳ−ＲＯＭ１０５、不揮発性メモリ１０６、無線通信デバイス１０７、エンベデッドコントローラ（ＥＣ）１０８等を備える。
【００３３】
ＣＰＵ１０１は、タブレットコンピュータ１０内の各種コンポーネントの動作を制御するプロセッサである。ＣＰＵ１０１は、ストレージデバイスである不揮発性メモリ１０６から主メモリ１０３にロードされる各種ソフトウェアを実行する。これらソフトウェアには、オペレーティングシステム（ＯＳ）２０１、及び各種アプリケーションプログラムが含まれている。アプリケーションプログラムには、デジタルノートアプリケーションプログラム２０２が含まれている。このデジタルノートアプリケーションプログラム２０２は、上述した手書きされたストロークから手書き文書データを生成する機能に加えて、手書き文書データに対応する手書き文字を文字認識する機能、手書き文書データを検索する機能も有する。
【００３４】
ＣＰＵ１０１は、ＢＩＯＳ−ＲＯＭ１０５に格納された基本入出力システム（ＢＩＯＳ）も実行する。ＢＩＯＳは、ハードウェア制御のためのプログラムである。
【００３５】
システムコントローラ１０２は、ＣＰＵ１０１のローカルバスと各種コンポーネントとの間を接続するデバイスである。システムコントローラ１０２には、主メモリ１０３をアクセス制御するメモリコントローラも内蔵されている。システムコントローラ１０２は、ＰＣＩ  ＥＸＰＲＥＳＳ規格のシリアルバスなどを介してグラフィクスコントローラ１０４との通信を実行する機能も有している。
【００３６】
グラフィクスコントローラ１０４は、タブレットコンピュータ１０のディスプレイモニタとして使用されるＬＣＤ１７Ａを制御する表示コントローラである。グラフィクスコントローラ１０４によって生成される表示信号はＬＣＤ１７Ａに送られる。ＬＣＤ１７Ａは、表示信号に基づいて画面イメージを表示する。ＬＣＤ１７Ａ上にはタッチパネル１７Ｂ及びデジタイザ１７Ｃが配置されている。タッチパネル１７Ｂは、ＬＣＤ１７Ａの画面上で入力を行うための静電容量式のポインティングデバイスである。指が接触される画面上の接触位置及び接触位置の動き等はタッチパネル１７Ｂによって検出される。デジタイザ１７ＣはＬＣＤ１７Ａの画面上で入力を行うための電磁誘導式のポインティングデバイスである。ペン１００が接触される画面上の接触位置、接触位置の動き、接触圧力等はデジタイザ１７Ｃによって検出される。
【００３７】
無線通信デバイス１０７は、無線ＬＡＮ又は３Ｇ移動通信などの無線通信を実行するように構成されたデバイスである。ＥＣ１０８は、電力管理のためのエンベデッドコントローラを含むワンチップマイクロコンピュータである。ＥＣ１０８は、ユーザによるパワーボタンの操作に応じて本タブレットコンピュータ１０を電源オン又は電源オフする機能を有している。
【００３８】
次に、図５を参照して、デジタルノートアプリケーションプログラム２０２の機能構成について説明する。デジタルノートブックアプリケーションプログラム２０２は、タッチスクリーンディスプレイ１７で表示される手書き文書データに対応する１または複数のストロークにより構成される文字を認識する。タッチスクリーンディスプレイ１７で表示される手書き文書データは、新規に作成中の手書き文書データと、新規作成後記憶媒体４０２に一旦保存され、記憶媒体４０２から読み出され修正中の手書き文書データとを含む。
【００３９】
デジタルノートブックアプリケーションプログラム２０２は、例えば、軌跡表示処理部３０１、手書き文書データ生成部３０２、構造解析部３０３、差分検出器３０４、文字認識部３０５、文書保存処理部３０６、文書取得処理部３０７、文書表示処理部３０８、編集部３１１、検索部３１２等を備える。
【００４０】
タッチスクリーンディスプレイ１７は、「タッチ」、「移動（スライド）」、「リリース」等のイベントの発生を検出するように構成されている。「タッチ」は、画面上に外部オブジェクトが接触したことを示すイベントである。「移動（スライド）」は、画面上に外部オブジェクトが接触されている間に接触位置が移動されたことを示すイベントである。「リリース」は、画面から外部オブジェクトが離されたことを示すイベントである。
【００４１】
軌跡表示処理部３０１及び手書き文書データ生成部３０２は、タッチスクリーンディスプレイ１７によって発生される「タッチ」、「移動（スライド）」又は「リリース」のイベントを受信し、これによって手書き入力操作を検出する。「タッチ」イベントには、接触位置の座標が含まれている。「移動（スライド）」イベントには、移動先の接触位置の座標が含まれている。「リリース」イベントには、接触位置が画面から離された位置の座標が含まれている。したがって、軌跡表示処理部３０１及び手書き文書データ生成部３０２は、タッチスクリーンディスプレイ１７から、接触位置の動きの軌跡に対応する座標列を受信することができる。
【００４２】
軌跡表示処理部３０１は、タッチスクリーンディスプレイ１７の画面上で手書きにより入力される１以上のストロークを表示する。軌跡表示処理部３０１は、タッチスクリーンディスプレイ１７から座標列を受信し、この座標列に基づいて、ペン１００等を使用した手書き入力操作によって手書きされる各ストロークの軌跡をタッチスクリーンディスプレイ１７内のＬＣＤ１７Ａの画面上に表示する。この軌跡表示処理部３０１により、画面にペン１００が接触している間のペン１００の軌跡、つまりストロークがＬＣＤ１７Ａの画面上に描画される。
【００４３】
編集部３１１は、ＬＣＤ１７Ａの画面上に表示される手書き文書に対してペンの種類（色、サイズ等）を変更することができる。さらに、編集部３１１は、手書き文書に重畳して消しゴムを表示し、消しゴムを移動することにより、手書き文書をストローク単位で部分的に消去することもできる。さらに、編集部３１１は、手書き文書の少なくとも一部をクリップボードにコピーして、同一文書の他の箇所、あるいは他の文書へ貼り付けることもできる。さらに、編集部３１１は、手書き文書の少なくとも一部を他のアプリケーションへエクスポートすることや、他のアプリケーションから画像をインポートすることもできる。どのストロークを何時消去したかを示す消しゴムの消去履歴を、手書き文書データ４０２Ｂとともに記憶媒体に４０２に格納しても良い。消去履歴は、例えば（消去時間ｔ；消去ストロークデータＳＤ）からなる。消去履歴は、手書き文書の修正の有無の検出に利用できる。
【００４４】
手書き文書データ生成部３０２は、タッチスクリーンディスプレイ１７から出力される上述の座標列を受信し、この座標列に基づいて、図３で詳述したような構造を有する手書き文書データを生成する。この場合、手書き文書データ、つまりストロークの各点に対応する座標及びタイムスタンプ情報は作業メモリ４０１に一時保存されてもよい。手書き文書データ生成部３０２は、生成された手書き文書データを構造解析部３０３に出力する。
【００４５】
構造解析部３０３は、表示中の手書き文書の構造を解析して、文書が複数のページを含む場合は、各ページから所定の領域、例えば行を検出し、各ページの手書き文書データを行毎の手書き文書データに分割する。構造解析部３０３は、例えば、時系列順に隣り合うストロークがしきい値以内の範囲にある場合に、それらストロークが１つの行に含まれると判断する。ページの分割は行に限らず、より大きい領域である段落、またはより小さい領域である単語、文字毎に分割しても良い。この領域は差分検出器３０４が差分を検出する単位であり、差分領域について文字認識をするので、小さい程、文字認識する領域を正確に捉えることができ、文字認識の処理量を最小限とすることができる。しかし、その反面、検出処理に時間がかかり、消費電力も増えるので、領域の大きさは種々の要求に応じて決める。
【００４６】
差分検出器３０４は、修正前の手書き文書と修正後の手書き文書とにおいて異なる領域（差分行）を検出する。作業メモリ４０１が修正前後の手書き文書データを記憶する。表１は作業メモリ４０１の記憶内容を示す。
【表１】
0006465414.tif 000002
【００４７】
手書き文書データは行毎のストロークデータと、それに対するハッシュ値と、文字認識結果であるテキストデータとからなる。テキストデータＣｉ（ｔ１）、Ｃｉ（ｔ２）はそれぞれ時刻ｔ１、ｔ２（ｔ２はｔ１より最近である）の手書き文書データのｉ行目のストロークデータの文字認識結果を示す。ハッシュ値は、行毎のストロークデータに対して不可逆な一方向関数であるハッシュ関数を演算して得られるので、ハッシュ値は行毎の手書き文書データの一致／不一致を検出することができる。修正前後の手書き文書データのハッシュ値が一致（不一致）していることは、修正前後の手書き文書データが同一である（異なる）ことを示す。そのため、ハッシュ値が一致している行は、修正されていない行であり、再度の文字認識は不要である。差分検出器３０４は、修正前後の手書き文書データのハッシュ値を比較し、一致／不一致を検出し、その結果を修正後の手書き文書データに書き込む。
【００４８】
文書認識部３０５は、修正後の手書き文書の文字認識の際、修正前後の手書き文書のハッシュ値が異なる行だけ文字認識を再度行い、ハッシュ値が同じ行は修正前の手書き文書データの文字認識結果を利用する。文字認識には、記憶媒体４０２内の手書き文字辞書データ４０２Ａが利用される。なお、文字を修正するのに消しゴムで消去する以外に取り消し線を引いて削除することがある。取り消し線を文字と区別するために、文字認識部３０５は、一定以上の長さのストロークは文字の一部とは見做さず、認識の対象から除外する。そして、取り消し線の無い文字の部分のみを認識の対象とする。
【００４９】
このように、既に認識した部分の再認識を省略することにより、文字認識に関する処理時間が短縮され、消費電力が抑えられる。文書保存処理部３０６は、表１に示すように、各行毎のストロークデータとテキストコードからなる手書き文書データ４０２Ｂを記憶媒体に保存する。
【００５０】
差分領域の検出はハッシュ値の利用に限らず、他の方法を用いても良い。例えば、図３に示すように、手書き文書データはストロークを構成する座標に対応する点が手書きされた時点に対応するタイムスタンプ情報Ｔを含んでいる。通常は、隣接する座標は時間的に連続して入力されるが、修正された部分は、他の部分より最近に手書きされ、時間的に不連続である。そのため、他の部分に比べて不連続な、かつ最近の時刻を示すタイムスタンプ情報Ｔを含む座標部分を見つければ、当該座標部分を含むストローク、文字、単語、行等は修正されたと判定でき、差分領域として検出してもよい。
【００５１】
また、記憶媒体４０２に手書き文書データ４０２Ｂとともに格納した消しゴムの操作履歴に基づいて、消去されたストロークを検出すれば、当該ストロークは以前の手書き文書において修正されたと判定でき、差分領域として検出してもよい。
【００５２】
検索部３１２は、クエリ入力操作に基づいて手書き文書データ生成部３０２から生成されたクエリストロークを文書取得処理部３０７に供給する。文書取得処理部３０７はこのクエリストロークに対応するストロークを含む手書き文書を記憶媒体４０２から検索する。検索は、ストロークデータの特徴量に基づくパターンマッチングを利用しても良いし、文字認識結果を利用しても良いし、両者を利用してもよい。
【００５３】
次に、修正前後の手書き文書データの例を幾つか挙げて文字認識の例を説明する。図６は、記憶媒体４０２に保存されている手書き文書データ４０２Ｂを読み出して、ＬＣＤ１７Ａに表示して、表示されている手書き文書を修正して上書き保存する動作の一例を示すフローチャートである。この場合、文字認識は保存直前に１回行なう。しかし、文字認識は手書き文書表示中に定期的に、あるいは手書き文書が修正される毎に行なっても良い。
【００５４】
ブロック６２で、文書取得処理部３０７は、図示しないメニューを表示し、ユーザに所望の文書を指定させ、記憶媒体４０２から所望の手書き文書データを読み出す。読み出した手書き文書は、文書表示処理部３０８によりＬＣＤ１７Ａで表示される。読み出された手書き文書データは修正前の手書き文書データとして表１に示すように作業メモリ４０１にも格納される。修正前の手書き文書データは、行毎のストロークデータと、ハッシュ値と、テキストデータからなる。なお、記憶媒体４０２に記憶されている手書き文書は、読み出し前は修正後の手書き文書であったが、読み出されると、修正前の手書き文書となる。手書き文書が複数のページを含む場合、指定の１ページが表示される。表示ページは切り替え可能である。ブロック６４で、手書き文書を修正する。例えば、消しゴムを使って一部を消去し、書き直したり、今までの文書はそのままで新たに書き足したり等の修正処理を行う。
【００５５】
ブロック６６で、手書き文書データ生成部３０２は、ストロークの修正に伴い、手書き文書データを修正する。修正された手書き文書データは構造解析部３０３に供給される。ブロック６８で、修正後の手書き文書の保存（上書き保存）が指示されたか否かが判定される。読み出しと同様に、保存も図示しないメニューから指示される。保存の指示があるまで、ブロック６４、６６が繰り返される。
【００５６】
保存の指示があると、ブロック７０で、構造解析部３０３は、修正後（現在）の手書き文書の各ページの構造を解析して、手書き文書データの各ページを行毎に分割する。ブロック７２で、差分検出器３０４は、修正前後の手書き文書において行毎のストロークデータのハッシュ値を求めて、異なる行を検出する。検出結果は表１に示すように修正後の手書き文書データの一属性として作業メモリ４０１に書き込まれる。ブロック７３で、文書表示処理部３０８は、現在表示されている修正後の手書き文書において、修正前の手書き文書に比べて異なる行の表示態様を、他の部分とは異ならせる。
【００５７】
図７Ａ、図７Ｂは修正前後の手書き文書の一例である。図７Ａに示す
「(1)Market trend
(1-1)Market size and sales
Market size of the apparatus in the 2014 fiscal year is expected as about 300 million dollars.  A share of our company is considered about 20%.」の手書き文書が、ブロック６２で記憶媒体４０２から読み出された修正前の手書き文書である。これに対して、ブロック６４で「A share of our company is considered about 20%.」を「Since a share of our company is considered about 20%, marketing planning should be decided base on this sales.」と修正した手書き文書を図７Ｂに示す。図７Ｂに示すように、修正後の手書き文書表示において、修正部分を他とは異なる表示態様で表示させる。異なる表示態様は、例えば破線で囲む、点滅させる、輝度・色・太さ等を変える等を含むが、これらに限らず、他と区別がつく態様であれば、何でもよい。
【００５８】
ブロック７４で、文書認識部３０５は、修正前後の手書き文書のハッシュ値が異なる行だけ文字認識を行う。文字認識が完了すると、ブロック７５で、文書表示処理部３０８は、差分行の表示態様を元の表示態様に戻す。すなわち、他の部分の表示態様と同じにする。ブロック７６で、文書認識部３０５は、差分行の文字認識結果と、差分行以外についての修正前の手書き文書データの文字認識結果と用いて、修正後の手書き文書データの認識結果を求める。表１の例では、修正後の手書き文書の１行目、２行目のハッシュ値は修正前の手書き文書の１行目、２行目のハッシュ値と同じであり、３行目のハッシュ値は修正前の手書き文書の３行目のハッシュ値と違う。そのため、１行目、２行目については再度認識する必要はなく、修正後の手書き文書の認識結果Ｃ１（ｔ２）、Ｃ２（ｔ２）として、修正前の手書き文書の認識結果Ｃ１（ｔ１）、Ｃ２（ｔ１）を使うことができる。しかし、３行目については修正によりストロークデータが変化しているので、再度の認識結果Ｃ３Ａ（ｔ２）を使う。
【００５９】
ブロック７８で、文書保存処理部３０６は、修正後の手書き文書データを記憶媒体４０２に上書き保存する。修正後の手書き文書データは表１に示すように、行毎のストロークデータと、ハッシュ値と、修正前のハッシュ値との比較結果と、テキストデータからなる。
【００６０】
このように、保存されている手書き文書を読み出して、修正後に上書き保存する際、修正前と同じ部分については修正前の認識結果を使い、修正前と異なる部分のみ認識し、修正後の認識結果として、修正後の手書き文書に付随させて保存するので、修正前と同じストロークについては重複した認識を省略することができ、認識に関する処理時間の短縮、消費電力の節約に繋がる。
【００６１】
図８は、手書き文書を新規に作成する場合の動作の一例を示すフローチャートである。ブロック８０で、図示しないメニューを表示し、ユーザに新規文書作成を指定させ、手書き入力操作を行わせる。ブロック８２で、軌跡表示処理部３０１は、タッチスクリーンディスプレイ１７の画面上で手書きにより入力される１以上のストロークを表示するともに、手書き文書データ生成部３０２は、タッチスクリーンディスプレイ１７から出力される上述の座標列を受信し、この座標列に基づいて、図３で詳述したような構造を有する手書き文書データを生成する。
【００６２】
ブロック８４で一定時間をカウントするタイマが満了（一定時間が経過）しているか否か判定される。一定時間が経過していない場合、ブロック８０、８２が繰り返される。一度作成した手書き文書は、この間に修正される可能性がある。これに対処するために、作業メモリ４０１は、現在の手書き文書データと一定時間前の手書き文書データを保存する。なお、一定時間毎に、現在の手書き文書データが一定時間前の手書き文書データとなり、新たに現在の手書き文書データが書き込まれる。一定時間が経過している場合は、ブロック８６で、構造解析部３０３は、現在の手書き文書の構造を解析して、ページの手書き文書データを行毎の手書き文書データに分割する。ブロック８８で、差分検出器３０４は、作業メモリ４０１に記憶されている現在の手書き文書と一定時間前の手書き文書において行毎のストロークデータのハッシュ値を求めて、異なる行を検出する。検出結果は表１に示すように作業メモリ４０１に書き込まれる。なお、表１の修正前、修正後は図８では一定時間前、現在である。ブロック８９で、文書表示処理部３０８は、現在と一定時間前の手書き文書において異なる行の表示態様を、他の部分とは異ならせる。
【００６３】
ブロック９０で、文書認識部３０５は、一定時間前の手書き文書とハッシュ値が異なる行だけ文字認識を行う。文字認識が完了すると、ブロック９１で、文書表示処理部３０８は、差分行の表示態様を元の表示態様に戻す。すなわち、差分行は、文字認識中は表示態様が変化する。このため、ユーザは文字認識中であることを知ることができる。
【００６４】
ブロック９２で、文書認識部３０５は、差分行の文字認識結果と、差分行以外についての一定時間前の手書き文書データの文字認識結果と用いて、現在の手書き文書データの認識結果を求める。この結果は、表１に示すような形式で作業メモリ４０１に記憶される。すなわち、作業メモリ４０１には、常に、現在の手書き文書と一定時間前の手書き文書が記憶されている。
【００６５】
ブロック９４で、タイマをリセットし、一定時間のカウントを再開する。ブロック９６で、手書き文書の保存が指示されたか否かする。保存が指示されていない場合は、ブロック８０に戻る。保存が指示された場合は、ブロック９８で、文書保存処理部３０６は、現在の手書き文書データを記憶媒体４０２に新規保存する。手書き文書データは表１に示すように、行毎のストロークデータと、ハッシュ値と、テキストデータからなる。
【００６６】
このように、新規作成時に一定時間毎に文字認識を行なう場合でも、一定時間前の手書き文書と異なる部分のみ認識するので、認識に関する処理時間の短縮、消費電力の節約に効果がある。また、異なる部分は認識中は他の部分と異なる表示形態で表示されるので、ユーザは修正済みのストロークが現在認識中であることを理解できる。
【００６７】
図９は、新規作成時に文字認識を行なう場合の変形例を示すフローチャートである。図８では一定時間毎に文字認識を行ったが、図９では差分行が検出されると文字認識を行う。
【００６８】
ブロック８０で、手書き文書の新規作成が行われる。ブロック８２で、手書き文書データが生成される。ブロック８６で、構造解析部３０３は、現在の手書き文書の構造を解析して、ページの手書き文書データを行毎の手書き文書データに分割する。ブロック８８Ａで、差分検出器３０４が、作業メモリ４０１に記憶されている現在の手書き文書と以前の手書き文書において行毎のストロークデータのハッシュ値を求めて、異なる行があるか否か判定する。異なる行がある場合、その検出結果は表１に示すように作業メモリ４０１に書き込まれる。なお、表１の修正前、修正後が図９では以前、現在である。異なる行が検出されない場合、ブロック８０に戻る。異なる行が検出された場合、ブロック８９で、文書表示処理部３０８は、現在と以前の手書き文書において異なる行の表示態様を、他の部分とは異ならせる。
【００６９】
ブロック９０で、文書認識部３０５は、以前の手書き文書とハッシュ値が異なる行だけ文字認識を行う。文字認識が完了すると、ブロック９１で、文書表示処理部３０８は、差分行の表示態様を元の表示態様に戻す。すなわち、他の部分の表示態様と同じにする。ブロック９２で、文書認識部３０５は、差分行の文字認識結果と、差分行以外についての以前の手書き文書データの文字認識結果と用いて、現在の手書き文書データの認識結果を求める。この結果は、表１に示すような形式で作業メモリ４０１に記憶される。すなわち、作業メモリ４０１には、常に、現在の手書き文書と以前の手書き文書が記憶されている。
【００７０】
ブロック９６で、手書き文書の保存が指示されたか否かする。保存が指示されていない場合は、ブロック８０に戻る。保存が指示された場合は、ブロック９８で、文書保存処理部３０６は、現在の手書き文書データを記憶媒体４０２に新規保存する。手書き文書データは表１に示すように、行毎のストロークデータと、ハッシュ値と、テキストデータからなる。
【００７１】
このように、新規作成時に文字認識を行なう場合、以前の手書き文書との差分が生じたら、差分領域のみ再認識し、差分がない領域については以前の認識結果を利用して、現在の手書き文書の文字認識を行うので、認識に関する処理時間の短縮、消費電力の節約に効果がある。
【００７２】
なお、図６で説明した保存文書の修正の場合は、上書き保存指示が入力されると、文字認識処理を開始するが、保存文書の修正においても、図８に示したように文書が表示されている間に一定時間毎に文字認識を行なってもよいし、図９に示したように修正により差分領域が生じる毎に文字認識を行なってもよい。また、図８、図９に示す新規文書の作成においても、図６に示したように保存指示が入力されると、文字認識処理を開始しても良い。
【００７３】
また、文字認識の開始タイミングは上述の例に限らず、他のタイミングも考えられる。例えば、編集モードで、手書き文書の少なくとも一部をクリップボードにコピーする際や、他のアプリケーションへエクスポートする際は、ストロークデータに最新の認識結果が付随していることが好ましい。そのため、編集時にクリップボードへのコピーコマンドやエクスポートコマンドが入力されると、先ず、最新の認識結果が付随しているか否か判定される。この判定は、表１に示す認識結果であるテキストデータＣｉ（ｔ）の時刻パラメータｔと現在時刻とに基づいて行なうことができる。ストロークデータに最新の認識結果が付随していない場合は、図６のブロック７０以降に示すように差分領域を検出して、差分領域のみ文字認識して、最新の文字認識結果を得てから、クリップボードへコピー、あるいは他のアプリケーションへエクスポートされる。
【００７４】
本実施形態の処理はコンピュータプログラムによって実現することができるので、このコンピュータプログラムを格納したコンピュータ読み取り可能な記憶媒体を通じてこのコンピュータプログラムをコンピュータにインストールして実行するだけで、本実施形態と同様の効果を容易に実現することができる。
【００７５】
本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【００７６】
１０…タブレットコンピュータ、１７…タッチスクリーンディスプレイ、１７Ａ…ＬＣＤ、２０２…デジタルノートアプリケーションプログラム、３０１…軌跡表示処理部、３０２…手書き文書データ生成部、３０３…構造解析部、３０４…差分検出器、３０５…文字認識部、３１２…検索部、４０２Ａ…手書き文字辞書データ、４０２Ｂ…手書き文書データ。
【図１】
0006465414.tif 000003
【図２】
0006465414.tif 000004
【図３】
0006465414.tif 000005
【図４】
0006465414.tif 000006
【図５】
0006465414.tif 000007
【図６】
0006465414.tif 000008
【図７Ａ】
0006465414.tif 000009
【図７Ｂ】
0006465414.tif 000010
【図８】
0006465414.tif 000011
【図９】
0006465414.tif 000012