(57)【特許請求の範囲】
【請求項１】
手書きによって入力される１以上の第１ストロークを画面上に表示するための処理を実行し、
前記１以上の第１ストロークに対応する１以上の第２ストローク列を入力候補として前記画面上に表示するための処理を実行し、
前記１以上の第２ストローク列の中からいずれかが選択される場合、選択される第２ストローク列を前記１以上の第１ストロークに代えて前記画面上に表示するための処理を実行する処理手段を具備し、
前記処理手段は、前記１以上の第１ストロークの筆圧または前記１以上の第１ストロークの手書き入力に伴って設定されるストロークの彩色に関する色の変化の度合いの少なくとも一方に関する第１属性と、選択される第２ストローク列の筆圧または選択される第２ストローク列の手書き入力に伴って設定されるストロークの彩色に関する色の変化の度合いの少なくとも一方に関する第２属性とを用いて、選択される第２ストローク列の属性を決定する、
電子機器。
【請求項２】
前記処理手段は、前記１以上の第１ストロークの中の一部の第１ストロークの第１属性を、選択される第２ストローク列の属性を決定するために使用する請求項１に記載の電子機器。
【請求項３】
前記第１属性は、ストロークの色を含み、
前記処理手段は、前記１以上の第１ストロークの手書き入力に伴って設定されるストロークの色を、選択される第２ストローク列の属性に採用する、
請求項１に記載の電子機器。
【請求項４】
前記第１属性は、ストロークの彩色に関する背景色の透過度を含み、
前記処理手段は、前記１以上の第１ストロークの手書き入力に伴って設定されるストロークの彩色に関する背景色の透過度を、選択される第２ストローク列の属性に採用する、
請求項１に記載の電子機器。
【請求項５】
前記第１属性は、ストロークの筆圧に対する太さの変化の度合いを含み、
前記処理手段は、前記１以上の第１ストロークの手書き入力に伴って設定されるストロークの筆圧に対する太さの変化の度合いを、選択される第２ストローク列の属性に採用する、
請求項１に記載の電子機器。
【請求項６】
電子機器の方法であって、
手書きによって入力される１以上の第１ストロークを画面上に表示することと、
前記１以上の第１ストロークに対応する１以上の第２ストローク列を入力候補として前記画面上に表示することと、
前記１以上の第２ストローク列の中からいずれかが選択される場合、選択される第２ストローク列を前記１以上の第１ストロークに代えて前記画面上に表示することと、
を具備し、
前記選択される第２ストローク列を表示することは、前記１以上の第１ストロークの筆圧または前記１以上の第１ストロークの手書き入力に伴って設定されるストロークの彩色に関する色の変化の度合いの少なくとも一方に関する第１属性と、選択される第２ストローク列の筆圧または選択される第２ストローク列の手書き入力に伴って設定されるストロークの彩色に関する色の変化の度合いの少なくとも一方に関する第２属性とを用いて、選択される第２ストローク列の属性を決定することを含む、
方法。
【請求項７】
前記選択される第２ストローク列を表示することは、前記１以上の第１ストロークの中の一部の第１ストロークの第１属性を、選択される第２ストローク列の属性を決定するために使用することを含む請求項６に記載の方法。
【請求項８】
前記第１属性は、ストロークの色を含み、
前記選択される第２ストローク列を表示することは、前記１以上の第１ストロークの手書き入力に伴って設定されるストロークの色を、選択される第２ストローク列の属性に採用することを含む、
請求項６に記載の方法。
【請求項９】
前記第１属性は、ストロークの彩色に関する背景色の透過度を含み、
前記選択される第２ストローク列を表示することは、前記１以上の第１ストロークの手書き入力に伴って設定されるストロークの彩色に関する背景色の透過度を、選択される第２ストローク列の属性に採用することを含む、
請求項６に記載の方法。
【請求項１０】
前記第１属性は、ストロークの筆圧に対する太さの変化の度合いを含み、
前記選択される第２ストローク列を表示することは、前記１以上の第１ストロークの手書き入力に伴って設定されるストロークの筆圧に対する太さの変化の度合いを、選択される第２ストローク列の属性に採用することを含む、
請求項６に記載の方法。
【請求項１１】
コンピュータを、
手書きによって入力される１以上の第１ストロークを画面上に表示するための処理を実行し、
前記１以上の第１ストロークに対応する１以上の第２ストローク列を入力候補として前記画面上に表示するための処理を実行し、
前記１以上の第２ストローク列の中からいずれかが選択される場合、選択される第２ストローク列を前記１以上の第１ストロークに代えて前記画面上に表示するための処理を実行する処理手段、
として機能させ、
前記処理手段は、前記１以上の第１ストロークの筆圧または前記１以上の第１ストロークの手書き入力に伴って設定されるストロークの彩色に関する色の変化の度合いの少なくとも一方に関する第１属性と、選択される第２ストローク列の筆圧または選択される第２ストローク列の手書き入力に伴って設定されるストロークの彩色に関する色の変化の度合いの少なくとも一方に関する第２属性とを用いて、選択される第２ストローク列の属性を決定する、
プログラム。
【請求項１２】
前記処理手段は、前記１以上の第１ストロークの中の一部の第１ストロークの第１属性を、選択される第２ストローク列の属性を決定するために使用する請求項１１に記載のプログラム。
【請求項１３】
前記第１属性は、ストロークの色を含み、
前記処理手段は、前記１以上の第１ストロークの手書き入力に伴って設定されるストロークの色を、選択される第２ストローク列の属性に採用する、
請求項１１に記載のプログラム。
【請求項１４】
前記第１属性は、ストロークの彩色に関する背景色の透過度を含み、
前記処理手段は、前記１以上の第１ストロークの手書き入力に伴って設定されるストロークの彩色に関する背景色の透過度を、選択される第２ストローク列の属性に採用する、
請求項１１に記載のプログラム。
【請求項１５】
前記第１属性は、ストロークの筆圧に対する太さの変化の度合いを含み、
前記処理手段は、前記１以上の第１ストロークの手書き入力に伴って設定されるストロークの筆圧に対する太さの変化の度合いを、選択される第２ストローク列の属性に採用する、
請求項１１に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本実施形態は、手書き入力機能を有する電子機器に好適な情報処理技術に関する。
【背景技術】
【０００２】
近年、ユーザによる入力操作を容易にするために、タッチスクリーンディスプレイを搭載する電子機器が増えてきている。タッチスクリーンディスプレイによる入力操作は、電子機器に対して動作指示を与えることに加えて、手書きで文書を入力する用途にも使われている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−２５５６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
手書きで文書を入力する労力を軽減するために、履歴を用いて入力を補助する方法が存在する。しかしながら、ユーザが実際に手書きした状態とは大きく異なった状態で入力が行われる等、ユーザに違和感を与えてしまうものが少なくない。【０００５】
本発明の一形態は、ユーザに違和感を与えることのない手書き入力の補助を実現する電子機器、方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
実施形態によれば、電子機器は、処理手段を具備する。処理手段は、手書きによって入力される１以上の第１ストロークを画面上に表示するための処理を実行し、前記１以上の第１ストロークに対応する１以上の第２ストローク列を入力候補として前記画面上に表示するための処理を実行し、前記１以上の第２ストローク列の中からいずれかが選択される場合、選択される第２ストローク列を前記１以上の第１ストロークに代えて前記画面上に表示するための処理を実行する。処理手段は、前記１以上の第１ストロークの筆圧または前記１以上の第１ストロークの手書き入力に伴って設定されるストロークの彩色に関する色の変化の度合いの少なくとも一方に関する第１属性と、選択される第２ストローク列の筆圧または選択される第２ストローク列の手書き入力に伴って設定されるストロークの彩色に関する色の変化の度合いの少なくとも一方に関する第２属性とを用いて、選択される第２ストローク列の属性を決定する。
【図面の簡単な説明】
【０００７】
【図１】図１は、実施形態の電子機器の外観を示す斜視図である。
【図２】図２は、実施形態の電子機器と外部装置との連携動作を示す図である。
【図３】図３は、実施形態の電子機器のタッチスクリーンディスプレイ上に手書きされる手書き文書の例を示す図である。
【図４】図４は、実施形態の電子機器によって生成される、図３の手書き文書に対応する時系列情報を説明するための図である。
【図５】図５は、実施形態の電子機器のシステム構成を示すブロック図である。
【図６】図６は、実施形態の電子機器上で動作する手書きノートアプリケーションプログラムの機能構成を示すブロック図である。
【図７】図７は、実施形態の電子機器上で動作する手書きノートアプリケーションプログラムによって表示されるページ編集画面の一例を示す図である。
【図８】図８は、実施形態の電子機器上で動作する手書きノートアプリケーションプログラムによって表示されるペン設定画面の一例を示す図である。
【図９】図９は、実施形態の電子機器上で動作する手書きノートアプリケーションプログラムによる推薦ストロークの表示例を示す第１の図である。
【図１０】図１０は、実施形態の電子機器上で動作する手書きノートアプリケーションプログラムによる推薦ストロークの表示例を示す第２の図である。
【図１１】図１１は、実施形態の電子機器上で動作する手書きノートアプリケーションプログラムによる手書きストロークの補完例を示す図である。
【図１２】図１２は、実施形態の電子機器上で動作する手書きノートアプリケーションプログラムがストロークの軌跡を表示（描画）する基本原理を説明するための第１の図である。
【図１３】図１３は、実施形態の電子機器上で動作する手書きノートアプリケーションプログラムがストロークの軌跡を表示（描画）する基本原理を説明するための第２の図である。
【図１４】図１４は、実施形態の電子機器上で動作する手書きノートアプリケーションプログラムによる推薦ストロークの別の表示例を示す第１の図である。
【図１５】図１５は、実施形態の電子機器上で動作する手書きノートアプリケーションプログラムによる推薦ストロークの別の表示例を示す第２の図である。
【図１６】図１６は、実施形態の電子機器上で動作する手書きノートアプリケーションプログラムが実行する筆跡補完処理の手順を示すフローチャートである。
【発明を実施するための形態】
【０００８】
以下、実施の形態について図面を参照して説明する。
【０００９】
図１は、一実施形態に係る電子機器の外観を示す斜視図である。この電子機器は、例えば、ペン（スタイラス）または指によって手書き入力可能なペン・ベースの携帯型電子機器である。この電子機器は、タブレットコンピュータ、ノートブック型パーソナルコンピュータ、スマートフォン、ＰＤＡ等として実現され得る。以下では、この電子機器がタブレットコンピュータ１０として実現されている場合を想定する。タブレットコンピュータ１０は、タブレットまたはスレートコンピュータとも称される携帯型電子機器である。タブレットコンピュータ１０は、図１に示すように、本体１１とタッチスクリーンディスプレイ１７とを備える。本体１１は、薄い箱形の筐体を有している。タッチスクリーンディスプレイ１７は、本体１１の上面に重ね合わさるように取り付けられている。
【００１０】
タッチスクリーンディスプレイ１７には、フラットパネルディスプレイと、センサとが組み込まれている。センサは、フラットパネルディスプレイの画面上のペンまたは指の接触位置を検出するように構成されている。フラットパネルディスプレイは、例えば、液晶表示装置（ＬＣＤ）であってもよい。センサとしては、例えば、静電容量方式のタッチパネル、電磁誘導方式のデジタイザなどを使用することができる。以下では、デジタイザとタッチパネルの２種類のセンサの双方がタッチスクリーンディスプレイ１７に組み込まれている場合を想定する。
【００１１】
デジタイザは、例えば、フラットパネルディスプレイの画面の下側に配置される。タッチパネルは、例えば、フラットパネルディスプレイの画面上に配置される。このタッチスクリーンディスプレイ１７は、指を使用した画面に対するタッチ操作のみならず、ペン１００を使用した画面に対するタッチ操作も検出することができる。ペン１００は例えばデジタイザペン（電磁誘導ペン）であってもよい。ユーザは、外部オブジェクト（ペン１００または指）を使用してタッチスクリーンディスプレイ１７上で手書き入力操作を行うことができる。手書き入力操作中においては、画面上の外部オブジェクトの動きの軌跡、つまり手書きによって入力されるストロークの軌跡がリアルタイムに描画され、これによって各ストロークの軌跡が画面上に表示される。外部オブジェクトが画面に接触されている間の外部オブジェクトの動きの軌跡が１ストロークに相当する。手書きされた文字または図形などに対応する多数のストロークの集合、つまり多数の軌跡（筆跡）の集合が手書き文書を構成する。
【００１２】
本実施形態では、この手書き文書は、イメージデータではなく、各ストロークの軌跡の座標列とストローク間の順序関係とを示す時系列情報として記憶媒体に保存される。この時系列情報の詳細は図４を参照して後述するが、この時系列情報は、複数のストロークが手書きされた順を示し、かつ複数のストロークにそれぞれ対応する複数のストロークデータを含む。換言すれば、この時系列情報は、複数のストロークにそれぞれ対応する時系列のストロークデータの集合を意味する。各ストロークデータは、ある１つのストロークに対応し、このストロークの軌跡上の点それぞれに対応する座標データ系列（時系列座標）を含む。これらストロークデータの並びの順序は、ストロークそれぞれが手書きされた順序つまり筆順に相当する。
【００１３】
タブレットコンピュータ１０は、記憶媒体から既存の任意の時系列情報（手書き文書情報）を読み出し、この時系列情報に対応する手書き文書、つまりこの時系列情報によって示される複数のストロークそれぞれに対応する軌跡を画面上に表示することができる。さらに、タブレットコンピュータ１０は編集機能を有している。この編集機能は、「消しゴム」ツール、「範囲指定」ツールおよび他の各種ツール等を用いたユーザによる編集操作に応じて、表示中の手書き文書内の任意のストロークまたは任意の手書き文字等を削除または移動することができる。さらに、この編集機能は、いくつかの手書き操作の履歴を取り消す機能も含んでいる。
【００１４】
さらに、タブレットコンピュータ１０は、筆跡補完（ストローク推薦）機能も有している。この筆跡補完機能は、多くの文字列を手書きによって容易に入力できるようにするために、ユーザの手書き入力操作を補助するための機能である。
【００１５】
図２は、タブレットコンピュータ１０と外部装置との連携動作の例を示している。タブレットコンピュータ１０は、パーソナルコンピュータ１やクラウドと連携することができる。すなわち、タブレットコンピュータ１０は、無線ＬＡＮなどの無線通信デバイスを備えており、パーソナルコンピュータ１との無線通信を実行することができる。さらに、タブレットコンピュータ１０は、インターネット上のサーバ２との通信を実行することもできる。サーバ２はオンラインストレージサービス、他の各種クラウドコンピューティングサービスを実行するサーバであってもよい。
【００１６】
パーソナルコンピュータ１はハードディスクドライブ（ＨＤＤ）のようなストレージデバイスを備えている。タブレットコンピュータ１０は、時系列情報（手書き文書）をネットワーク越しにパーソナルコンピュータ１に送信して、パーソナルコンピュータ１のＨＤＤに記録することができる（アップロード）。
【００１７】
これにより、タブレットコンピュータ１０内のストレージの容量が少ない場合でも、タブレットコンピュータ１０が多数の時系列情報（手書き文書）あるいは大容量の時系列情報（手書き文書）を扱うことが可能となる。
【００１８】
さらに、タブレットコンピュータ１０は、パーソナルコンピュータ１のＨＤＤに記録されている任意の１以上の手書き文書を読み出すことができる（ダウンロード）。タブレットコンピュータ１０は、この読み出した手書き文書によって示されるストロークそれぞれの軌跡をタブレットコンピュータ１０のタッチスクリーンディスプレイ１７の画面に表示することができる。この場合、複数の時系列情報それぞれのページを縮小することによって得られるサムネイルの一覧をタッチスクリーンディスプレイ１７の画面上に表示してもよいし、これらサムネイルから選ばれた１ページをタッチスクリーンディスプレイ１７の画面上に通常サイズで表示してもよい。
【００１９】
さらに、タブレットコンピュータ１０が通信する先はパーソナルコンピュータ１ではなく、前述したように、ストレージサービスなどを提供するクラウド上のサーバ２であってよい。タブレットコンピュータ１０は、手書き文書をネットワーク越しにサーバ２に送信して、サーバ２のストレージデバイス２Ａに記録することができる（アップロード）。さらに、タブレットコンピュータ１０は、サーバ２のストレージデバイス２Ａに記録されている任意の手書き文書を読み出すことができる（ダウンロード）。タブレットコンピュータ１０は、この読み出した手書き文書によって示されるストロークそれぞれの軌跡をタブレットコンピュータ１０のタッチスクリーンディスプレイ１７の画面に表示することができる。
【００２０】
このように、本実施形態では、手書き文書が格納される記憶媒体は、タブレットコンピュータ１０内のストレージデバイス、パーソナルコンピュータ１内のストレージデバイス、サーバ２のストレージデバイスのいずれであってもよい。
【００２１】
次に、図３および図４を参照して、ユーザによって手書きされたストローク（文字、マーク、図形（線図）、表など）と手書き文書との関係について説明する。図３は、ペン１００などを使用してタッチスクリーンディスプレイ１７上に手書きされる手書き文字列の例を示している。
【００２２】
手書き文書では、一旦手書きされた文字や図形などの上に、さらに別の文字や図形などが手書きされるというケースが多い。図３においては、「ＡＢＣ」の手書き文字列が「Ａ」、「Ｂ」、「Ｃ」の順番で手書きされ、この後に、手書きの矢印が、手書き文字「Ａ」のすぐ近くに手書きされた場合が想定されている。
【００２３】
手書き文字「Ａ」は、ペン１００などを使用して手書きされる２つのストローク（「∧」形状の軌跡、「−」形状の軌跡）によって、つまり２つの軌跡によって表現される。最初に手書きされる「∧」形状のペン１００の軌跡は例えば等時間間隔でリアルタイムにサンプリングされ、これによって「∧」形状のストロークの時系列座標ＳＤ１１、ＳＤ１２、…ＳＤ１ｎが得られる。同様に、次に手書きされる「−」形状のペン１００の軌跡も等時間間隔でリアルタイムにサンプリングされ、これによって「−」形状のストロークの時系列座標ＳＤ２１、ＳＤ２１、…ＳＤ２ｎが得られる。
【００２４】
手書き文字「Ｂ」は、ペン１００などを使用して手書きされた２つのストローク、つまり２つの軌跡によって表現される。手書き文字「Ｃ」は、ペン１００などを使用して手書きされた１つのストローク、つまり１つの軌跡によって表現される。手書きの「矢印」は、ペン１００などを使用して手書きされた２つのストローク、つまり２つの軌跡によって表現される。
【００２５】
図４は、図３の手書き文字列に対応する時系列情報２００を示している。時系列情報２００は、複数のストロークデータＳＤ１、ＳＤ２、…、ＳＤ７を含む。時系列情報２００内においては、これらストロークデータＳＤ１、ＳＤ２、…、ＳＤ７は、筆跡順に、つまり複数のストロークが手書きされた順に時系列に並べられている。
【００２６】
時系列情報２００において、先頭の２つのストロークデータＳＤ１、ＳＤ２は、手書き文字「Ａ」の２つのストロークをそれぞれ示している。３番目と４番目のストロークデータＳＤ３、ＳＤ４は、手書き文字「Ｂ」を構成する２つのストロークをそれぞれ示している。５番目のストロークデータＳＤ５は、手書き文字「Ｃ」を構成する１つのストロークを示している。６番目と７番目のストロークデータＳＤ６、ＳＤ７は、手書き「矢印」を構成する２つのストロークをそれぞれ示している。
【００２７】
各ストロークデータは、１つのストロークに対応する座標データ系列（時系列座標）、つまり１つのストロークの軌跡上の複数の点それぞれに対応する複数の座標を含む。各ストロークデータにおいては、複数の座標はストロークが書かれた順に時系列に並べられている。例えば、手書き文字「Ａ」に関しては、ストロークデータＳＤ１は、手書き文字「Ａ」の「∧」形状のストロークの軌跡上の点それぞれに対応する座標データ系列（時系列座標）、つまりｎ個の座標データＳＤ１１、ＳＤ１２、…ＳＤ１ｎを含む。ストロークデータＳＤ２は、手書き文字「Ａ」の「−」形状のストロークの軌跡上の点それぞれに対応する座標データ系列、つまりｎ個の座標データＳＤ２１、ＳＤ２２、…ＳＤ２ｎを含む。なお、座標データの数はストロークデータ毎に異なっていてもよい。すなわち、ペン１００の軌跡は等時間間隔でリアルタイムにサンプリングされるので、ストロークの長さが長いほど、あるいはストロークの手書き速度が遅いほど、座標データの数は増加する。
【００２８】
各座標データは、対応する軌跡内のある１点に対応するＸ座標およびＹ座標を示す。例えば、座標データＳＤ１１は、「∧」形状のストロークの始点のＸ座標（Ｘ１１）およびＹ座標（Ｙ１１）を示す。ＳＤ１ｎは、「∧」形状のストロークの終点のＸ座標（Ｘ１ｎ）およびＹ座標（Ｙ１ｎ）を示す。
【００２９】
さらに、各座標データは、その座標に対応する点が手書きされた時点に対応するタイムスタンプ情報Ｔを含んでいてもよい。手書きされた時点は、絶対時間（例えば、年月日時分秒）またはある時点を基準とした相対時間のいずれであってもよい。例えば、各ストロークデータに、ストロークが書き始められた絶対時間（例えば、年月日時分秒）をタイムスタンプ情報として付加し、さらに、ストロークデータ内の各座標データに、絶対時間との差分を示す相対時間をタイムスタンプ情報Ｔとして付加してもよい。
【００３０】
このように、各座標データにタイムスタンプ情報Ｔが追加された時系列情報を使用することにより、ストローク間の時間的関係をより精度よく表すことができる。
【００３１】
さらに、各座標データには、筆圧を示す情報（Ｚ）を追加してもよい。
【００３２】
図４で説明したような構造を有する時系列情報２００は、個々のストロークの筆跡だけでなく、ストローク間の時間的関係も表すことができる。したがって、この時系列情報２００を使用することにより、図３に示すようにたとえ手書き「矢印」の先端部が手書き文字「Ａ」上に重ねてまたは手書き文字「Ａ」に近接して書かれたとしても、手書き文字「Ａ」と手書き「矢印」の先端部とを異なる文字または図形として扱うことが可能となる。なお、タイムスタンプ情報Ｔはオプション情報として使用してもよく、各々がタイムスタンプ情報Ｔを有さない複数のストロークデータを上述の時系列情報として使用しても良い。
【００３３】
さらに、本実施形態では、前述したように、手書き文書は、イメージまたは文字認識結果ではなく、時系列のストロークデータの集合として構成されるので、手書き文字の言語に依存せずに手書き文字を扱うことができる。よって、本実施形態の時系列情報２００の構造は、使用言語の異なる世界中の様々な国で共通に使用できる。
【００３４】
図５は、タブレットコンピュータ１０のシステム構成を示す図である。
【００３５】
タブレットコンピュータ１０は、図５に示されるように、ＣＰＵ１０１、システムコントローラ１０２、主メモリ１０３、グラフィクスコントローラ１０４、ＢＩＯＳ−ＲＯＭ１０５、不揮発性メモリ１０６、無線通信デバイス１０７、エンベデッドコントローラ（ＥＣ）１０８等を備える。
【００３６】
ＣＰＵ１０１は、タブレットコンピュータ１０内の各種モジュールの動作を制御するプロセッサである。ＣＰＵ１０１は、ストレージデバイスである不揮発性メモリ１０６から主メモリ１０３にロードされる各種コンピュータプログラムを実行する。これらプログラムには、オペレーティングシステム（ＯＳ）２０１および各種アプリケーションプログラムが含まれている。アプリケーションプログラムには、手書きノートアプリケーションプログラム２０２が含まれている。この手書きノートアプリケーションプログラム２０２は、前述の手書き文書を作成および表示する機能、手書き文書を編集する機能および筆跡補完機能等を有している。
【００３７】
また、ＣＰＵ１０１は、ＢＩＯＳ−ＲＯＭ１０５に格納された基本入出力システム（ＢＩＯＳ）も実行する。ＢＩＯＳは、ハードウェア制御のためのプログラムである。
【００３８】
システムコントローラ１０２は、ＣＰＵ１０１のローカルバスと各種コンポーネントとの間を接続するデバイスである。システムコントローラ１０２には、主メモリ１０３をアクセス制御するメモリコントローラも内蔵されている。また、システムコントローラ１０２は、ＰＣＩ  ＥＸＰＲＥＳＳ規格のシリアルバスなどを介してグラフィクスコントローラ１０４との通信を実行する機能も有している。
【００３９】
グラフィクスコントローラ１０４は、タブレットコンピュータ１０のディスプレイモニタとして使用されるＬＣＤ１７Ａを制御する表示コントローラである。このグラフィクスコントローラ１０４によって生成される表示信号はＬＣＤ１７Ａに送られる。ＬＣＤ１７Ａは、表示信号に基づいて画面イメージを表示する。このＬＣＤ１７Ａ上にはタッチパネル１７Ｂおよびデジタイザ１７Ｃが配置されている。タッチパネル１７Ｂは、ＬＣＤ１７Ａの画面上で入力を行うための静電容量式のポインティングデバイスである。指が接触される画面上の接触位置および接触位置の動き等はタッチパネル１７Ｂによって検出される。デジタイザ１７ＣはＬＣＤ１７Ａの画面上で入力を行うための電磁誘導式のポインティングデバイスである。ペン１００が接触される画面上の接触位置および接触位置の動き等はデジタイザ１７Ｃによって検出される。
【００４０】
無線通信デバイス１０７は、無線ＬＡＮまたは３Ｇ移動通信などの無線通信を実行するように構成されたデバイスである。ＥＣ１０８は、電力管理のためのエンベデッドコントローラを含むワンチップマイクロコンピュータである。ＥＣ１０８は、ユーザによるパワーボタンの操作に応じてタブレットコンピュータ１０を電源オンまたは電源オフする機能を有している。
【００４１】
次に、図６を参照して、手書きノートアプリケーションプログラム２０２の機能構成について説明する。
【００４２】
手書きノートアプリケーションプログラム２０２は、ペン設定部３０１、ペン軌跡表示処理部３０２、時系列情報生成部３０３、ページ保存処理部３０４、ページ取得処理部３０５、手書き文書表示処理部３０６、編集処理部３０７および筆跡補完処理部３０８等を備える。
【００４３】
手書きノートアプリケーションプログラム２０２は、タッチスクリーンディスプレイ１７を用いて入力されるストロークデータを使用することによって、手書き文書の作成、表示、編集等を行う。タッチスクリーンディスプレイ１７は、「タッチ」、「移動（スライド）」、「リリース」等のイベントの発生を検出するように構成されている。「タッチ」は、画面上に外部オブジェクトが接触したことを示すイベントである。「移動（スライド）」は、画面上に外部オブジェクトが接触されている間に接触位置が移動されたことを示すイベントである。「リリース」は、画面から外部オブジェクトが離されたことを示すイベントである。
【００４４】
手書きノートアプリケーションプログラム２０２は、手書き文書の作成、表示、編集を行うためのページ編集画面５００をタッチスクリーンディスプレイ１７上に表示する。図７は、手書きノートアプリケーションプログラム２０２によって表示されるページ編集画面５００の一例を示す図である。
【００４５】
図７に示すページ編集画面５００において、破線で囲まれた矩形の領域５００Ａが手書き入力可能な手書き入力エリアである。手書き入力エリア５００Ａにおいては、デジタイザ１７Ｃからの入力イベントはストロークの表示（描画）のために使用され、タップ等のジェスチャを示すイベントとしては使用されない。一方、手書き入力エリア５００Ａ以外の領域においては、デジタイザ１７Ｃからの入力イベントはタップ等のジェスチャを示すイベントとしても使用され得る。
【００４６】
また、ページ編集画面５００において、タッチパネル１７Ｂからの入力イベントは、ストロークの軌跡の表示（描画）には使用されず、タップ等のジェスチャを示すイベントとして使用される。
【００４７】
ページ編集画面５００は、さらに、３種類のペン５０１〜５０３と、範囲選択ペン５０４、消しゴムペン５０５とを含むクイックセレクトメニューを表示する。ユーザは、ペン１００または指でクイックセレクトメニュー内のあるペン（ボタン）をタップすることにより、使用するペンの種類を切り替えることができる。例えば、黒ペン５０１、赤ペン５０２、マーカー５０３がユーザによって登録されているものと想定する。この場合、例えば、黒ペン５０１がユーザによるペン１００または指を使用したタップジェスチャによって選択された状態で、ペン１００を用いた手書き入力操作がページ編集画面５００上で行われると、手書きノートアプリケーションプログラム２０２は、ペン１００の動きに合わせて黒色のストロークの軌跡をページ編集画面５００上に表示する。クイックセレクトメニュー内の３種類のペン５０１〜５０３の各々には、よく使うペンの色やペンの太さ等の組み合わせを設定することができる。
【００４８】
ページ編集画面５００は、さらに、メニューボタン５１１を表示する。メニューボタン５１１はメニューを表示するためのボタンである。メニューボタン５１１を操作することにより、ユーザは、ページ編集画面５００上にソフトウェアボタン群をメニューとして表示させることができる。このソフトウェアボタン群の１つに、クイックセレクトメニュー内の３種類のペン５０１〜５０３の各々の色や太さ等の組み合わせを設定するためのペン設定画面６００を呼び出すためのボタンが存在する。
【００４９】
図８は、手書きノートアプリケーションプログラム２０２によって表示されるペン設定画面６００の一例を示す図である。
【００５０】
ペン設定画面６００は、ペンの種類を設定するためのフィールド６０１、線の色を設定するためのフィールド６０２、線の太さを設定するためのフィールド６０３、線の透明度を設定するためのフィールド６０４を備えている。このペン設定画面６００によって、ユーザは、クイックセレクトメニュー内の３種類のペン５０１〜５０３の各々の色や太さ等の組み合わせを設定することができる。なお、線の透明度は、背景色の透過度であり、線の透明度を設定することは、線の濃さを設定することと同義である。
【００５１】
ペン設定部３０１は、ページ編集画面５００上のクイックセレクトメニュー内の３種類のペン（ボタン）５０１〜５０３に対するユーザの操作、および、ペン設定画面６００上でのユーザの操作に応じて、ストロークの彩色等、ストロークの軌跡の表示（描画）の形態を設定する。
【００５２】
ペン軌跡表示処理部３０２および時系列情報生成部３０３は、タッチスクリーンディスプレイ１７によって発生される「タッチ」または「移動（スライド）」のイベントを受信し、これによって手書き入力操作を検出する。「タッチ」イベントには、接触位置の座標が含まれている。「移動（スライド）」イベントにも、移動先の接触位置の座標が含まれている。したがって、ペン軌跡表示処理部３０２および時系列情報生成部３０３は、タッチスクリーンディスプレイ１７から、接触位置の動きの軌跡に対応する座標列を受信することができる。
【００５３】
ペン軌跡表示処理部３０２は、手書きによって入力されるストロークをタッチスクリーンディスプレイ１７の画面上に表示するように構成された表示処理部として機能する。ペン軌跡表示処理部３０２は、タッチスクリーンディスプレイ１７から座標列を受信する。また、ペン軌跡表示処理部３０２は、タッチスクリーンディスプレイ１７から筆圧に関する情報を受信する。ペン軌跡表示処理部３０２は、タッチスクリーンディスプレイ１７から受信する座標列および筆圧に関する情報と、ペン設定部３０１で設定される線の色や太さ等の組み合わせに関する情報とに基づき、ペン１００等を使用した手書き入力操作によって入力される複数のストロークの軌跡をタッチスクリーンディスプレイ１７内のＬＣＤ１７Ａの画面上に表示する。
【００５４】
時系列情報生成部３０３は、タッチスクリーンディスプレイ１７から出力される座標列を受信する。この座標列に基づいて、時系列情報生成部３０３は、前述の複数のストロークに対応する複数のストロークデータ（時系列情報）を生成する。これらストロークデータ、つまり各ストロークの各点に対応する座標および各ストロークのタイムスタンプ情報は作業メモリ４０１に一時保存してもよい。また、タッチスクリーンディスプレイ１７から出力される筆圧に関する情報と、ペン設定部３０１で設定される線の色や太さ等の組み合わせに関する情報とが、このストロークデータに属性情報として含まれる。
【００５５】
ページ保存処理部３０４は、複数のストロークに対応する複数のストロークデータを含む手書き文書情報を記憶媒体４０２内の手書きノートデータベース４０２Ａに保存する。記憶媒体４０２は、前述したように、タブレットコンピュータ１０内のストレージデバイス、パーソナルコンピュータ１内のストレージデバイス、サーバ２のストレージデバイスのいずれであってもよい。
【００５６】
ページ取得処理部３０５は、記憶媒体４０２から任意の手書き文書情報を読み出す。読み出された手書き文書情報は手書き文書表示処理部３０６に送られる。手書き文書表示処理部３０６は、手書き文書情報を解析し、この解析結果に基づいて、手書き文書情報内の複数のストロークデータによって示される複数のストロークの軌跡を画面上に手書きページとして表示する。
【００５７】
編集処理部３０７は、現在表示中の手書き文書（手書きページ）を編集するための処理を実行する。すなわち、編集処理部３０７は、タッチスクリーンディスプレイ１７上でユーザによって行われる編集操作に応じて、表示されている複数のストローク内の１以上のストロークを削除または移動等するための編集処理を実行する。さらに、編集処理部３０７は、編集処理の結果を表示中の手書き文書に反映するために、この手書き文書を更新する。
【００５８】
ユーザは、「消しゴム」ツール等を使用して、表示されている複数のストローク内の任意のストロークを削除することができる。また、ユーザは、画面上の任意の部分を丸または四角によって囲むための「範囲指定」ツールを使用して、表示されている手書きページ内の任意の部分を範囲指定することができる。
【００５９】
筆跡補完処理部３０８は、前述の筆跡補完機能を実行するように構成された処理部である。筆跡補完処理部３０８は、推薦ストローク検索部３０８Ａとストローク属性決定部３０８Ｂとを有する。筆跡補完処理において、筆跡補完処理部３０８は、手書きによって入力されるストロークに対応する１以上のストローク列（手書き文字列）を、推薦ストローク検索部３０８Ａにより、過去に入力されたストロークの集合（手書き文書情報）から取得する。筆跡補完処理部３０８は、取得された１以上のストローク列を、入力可能なストロークの候補（推薦ストローク）として画面上に表示するための処理を実行する。
【００６０】
換言すれば、筆跡補完処理部３０８は、入力されるストロークと手書き文書情報とに基づいて、ユーザが手書きしようとしているストローク列（手書き文字列）を予測する。そして、筆跡補完処理部３０８は、予測によって得られるいくつかのストローク列（手書き文字列）を推薦ストローク（候補手書き文字列）としてユーザに提示する。
【００６１】
例えば、ストローク（手書き文字列）「ａ」が手書きによって入力された場合には、手書きの語「ａｄｄ」または「ａｃｃｅｓｓ」のような候補がユーザに提示されてもよい。もしユーザによって手書きの語「ａｃｃｅｓｓ」が選択されたならば、この手書きの語「ａｃｃｅｓｓ」が、入力された手書き文字列となる。よって、ユーザは、手書きの語「ａｃｃｅｓｓ」のストローク列を容易に入力することができる。また、筆跡補完処理部３０８は、ストローク属性決定部３０８Ｂにより、この手書きの語「ａｃｃｅｓｓ」の属性を決定する。ストローク属性決定部３０８Ｂの働きについては後述する。
【００６２】
手書き文書情報に格納される手書き文字列の言語はどのような言語であってもよい。利用可能な言語の例は、英語、日本語、中国語および他の様々な言語を含む。英語の文字列に関しては、ストローク列（手書き文字列）は、ブロック体の文字列に対応するストローク列であってもよいし、筆記体の文字列に対応するストローク列であってもよい。筆記体で手書きされた単語は１つのストロークから構成される場合がある。したがって、筆跡補完処理において手書き文書情報から取得されるストローク列は、必ずしも複数のストロークを含んでいる必要はなく、１つのストロークであってもよい。
【００６３】
入力されたストロークに対応するストローク列の例には、入力されたストロークに類似するストロークを含む複数のストロークや、入力されたストロークに類似するストローク部分を含む１つのストロークがある。例えば、先頭のストローク（または先頭のストローク部分）が、入力されたストロークに類似しているストローク列が手書き文書情報から取得される。
【００６４】
入力されたストロークに対応するストローク列を手書き文書情報から容易に取得できるようにするために、筆跡補完処理部３０８は、手書きノートデータベース４０２Ａに格納されているストロークの集合（手書き文書情報）に基づいて、候補ストロークデータベース４０２Ｂを作成しても良い。
【００６５】
この候補ストロークデータベース４０２Ｂにおいては、例えば、単語のような意味のある文字列単位で、ストローク列（ストロークデータ群）と、このストロークデータ群に対応する文字認識結果（文字列）とが格納されていても良い。
【００６６】
この場合、筆跡補完処理部３０８は、まず、ユーザによって入力されたストロークを文字認識してもよい。そして、筆跡補完処理部３０８は、候補ストロークデータベース４０２Ｂを参照し、この入力されたストロークの文字認識結果（文字列）に前方一致する文字列を見つけ出す。筆跡補完処理部３０８は、見つけ出した文字列に対応するストローク列（ストロークデータ群）を、入力されたストロークに対応するストローク列として候補ストロークデータベース４０２Ｂから取得する。
【００６７】
あるいは、候補ストロークデータベース４０２Ｂにおいては、例えば、単語のような意味のある文字列単位で、ストローク列（ストロークデータ群）と、このストロークデータ群に対応する各ストロークの特徴量とが格納されていても良い。あるストロークの特徴量としては、このストロークの手書き特徴を表すことができる任意の特徴を使用することができる。例えば、特徴量としては、ストロークの形状、ストロークの筆画方向、ストロークの傾斜、等を表す特徴量データを使用しても良い。この場合、筆跡補完処理部３０８は、入力されたストロークの特徴量に類似する特徴量を有するストローク列を候補ストロークデータベース４０２Ｂから取得してもよい。また、この場合、例えば文字の一部が入力された時点で、筆跡補完処理部３０８は、推薦ストローク（候補手書き文字列）を検索して提示することができる。
【００６８】
あるいは、候補ストロークデータベース４０２Ｂにおいては、例えば、単語のような意味のある文字列単位で、ストローク列（ストロークデータ群）と、このストロークデータ群に対応する文字認識結果（文字列）と、このストロークデータ群に対応する各ストロークの特徴量とが格納されていても良い。
【００６９】
筆跡補完処理部３０８は、入力されたストロークと、候補ストロークデータベース４０２Ｂとに基づいて、ユーザが入力しようとしているストローク列を予測する。この予測の処理では、筆跡補完処理部３０８は、入力されたストロークに対応するいくつかのストローク列（手書き文字列等）を候補ストロークデータベース４０２Ｂから取得する。そして、筆跡補完処理部３０８は、これらストローク列を、入力が予測される手書き文字列の候補（推薦ストローク）として画面上に表示するための処理を実行する。
【００７０】
図９は、入力されるストロークに対応する候補（推薦ストローク）の例を示す第１の図である。
【００７１】
ここでは、ページ編集画面５００上での手書き入力操作によって、手書き文字「ａ」に対応するストローク７１１が入力された場合が想定されている。
【００７２】
ストローク７１１が手書きによって入力された場合、筆跡補完処理部３０８は、この入力されたストローク７１１（ここでは手書き文字「ａ」）に対応するいくつかのストローク列（推薦ストローク）を候補ストロークデータベース４０２Ｂから取得する。そして、筆跡補完処理部３０８は、これらストローク列それぞれをページ編集画面５００上の推薦ストロークリスト７０１上に表示する。
【００７３】
入力されたストローク７１１は「未確定ストローク（または仮ストローク）」として扱われる。「未確定ストローク」は手書きページにまだ反映されていないストロークを意味する。「未確定ストローク」は筆跡補完対象のストロークであり、このストロークに基づいて予測されるストロークが推薦ストロークとしてユーザに提示される。入力されたストローク６１１が「未確定ストローク（仮ストローク）」であることがユーザに分かるように、ストローク７１１は、例えば、現在選択されているペン色とは異なる色で表示されるようにしても良い。
【００７４】
図９においては、推薦ストロークリスト７０１上に、４つのストローク列が推薦ストロークとして提示された場合が想定されている。ここでは、４つのストローク列は、手書き文字列「ａｂｉｌｉｔｙ」、手書き文字列「ａｃｃｅｓｓ」、手書き文字列「ａｄａｐｔｏｒ」、手書き文字列「ａｄｄ」を含む。
【００７５】
このように、先頭の手書き文字が「ａ」で始まるいくつかのストローク列（手書き文字列）がユーザに提示される。これらストローク列は、過去にユーザによって手書き入力されたストローク列（手書き文字列）である。
【００７６】
図１０は、入力されるストロークに対応する候補（推薦ストローク）の例を示す第２の図である。
【００７７】
ここでは、ページ編集画面５００上での手書き入力操作によって、手書き文字「ａ」に対応するストローク７１１が入力された後に、手書き文字「ｐ」に対応するストローク７１２、７１３がさらに入力された場合が想定されている。この場合、推薦ストロークリスト７０１の内容が更新される。
【００７８】
すなわち、筆跡補完処理部３０８は、入力されたストローク７１１、７１２、７１３（手書き文字列「ａｐ」）に対応するいくつかのストローク列（推薦ストローク）を候補ストロークデータベース４０２Ｂから取得する。そして、筆跡補完処理部３０８は、これらストローク列それぞれをページ編集画面５００上の推薦ストロークリスト７０１上に表示する。
【００７９】
図１０では、推薦ストロークリスト７０１上に、４つの手書きストローク列、つまり手書き文字列「ａｐｐｌｉｃａｔｉｏｎ」、手書き文字列「ａｐｅｒｔｕｒｅ」、手書き文字列「ａｐｅｘ」、手書き文字列「ａｐｏｌｏｇｙ」が、推薦ストロークとして提示された場合が想定されている。
【００８０】
このように、「ａｐ」で始まるいくつかの手書き文字列がユーザに提示される。
【００８１】
ユーザによって推薦ストロークリスト７０１上のある推薦ストロークが選択された場合、筆跡補完処理部３０８は、選択された推薦ストロークに対応するストローク列をページ編集画面５００上に表示する。換言すれば、筆跡補完処理部３０８は、入力された手書きストロークを、選択された推薦ストロークに対応するストローク列で補完する。これにより、ユーザは目的の単語の一部を手書きによって入力するだけで、目的の単語を容易に入力することができる。
【００８２】
また、漢字のように複数のストロークから構成される文字に関しては、ユーザは、これら複数のストロークの一部を手書きによって入力するだけで、この文字を入力することができる。
【００８３】
また筆記体の文字列に関しては、ユーザは、この文字列を構成する１つのストロークの先頭の一部分を手書きによって入力するだけで、この筆記体の文字列を入力することができる。
【００８４】
図１１は、入力された手書きストロークを補完する例を示す図である。
【００８５】
ここでは、推薦ストロークリスト７０１上の手書き文字列「ａｐｐｌｉｃａｔｉｏｎ」が選択された場合が想定されている。手書き文字列「ａｐｐｌｉｃａｔｉｏｎ」がペン１００または指によってタップされると、筆跡補完処理部３０８は、ペン軌跡表示処理部３０２または手書き文書表示処理部３０６と協働して、選択された手書き文字列「ａｐｐｌｉｃａｔｉｏｎ」をページ編集画面５００上に表示するための処理を実行する。この場合、入力されたストローク（図１０のストローク７１１、７１２、７１３）は選択された手書き文字列「ａｐｐｌｉｃａｔｉｏｎ」で補完される。換言すれば、表示処理部は、入力されたストローク（図１０のストローク７１１、７１２、７１３）の代わりに、選択された手書き文字列「ａｐｐｌｉｃａｔｉｏｎ」をページ編集画面５００上に表示する。
【００８６】
そして、選択された手書き文字列「ａｐｐｌｉｃａｔｉｏｎ」は確定ストロークとなり、編集中の手書きページに反映される。つまり、候補ストロークデータベース４０２Ｂから取得された「ａｐｐｌｉｃａｔｉｏｎ」のストロークデータ群が手書きページに加えられる。なお、もし手書き文字列「ａｐｐｌｉｃａｔｉｏｎ」が筆記体で記述されたストローク列である場合には、手書き文字列「ａｐｐｌｉｃａｔｉｏｎ」に対応する１個のストロークデータが手書きページに加えられる。
【００８７】
このように、筆跡補完処理においては、手書きによって入力されたストローク（仮ストローク）に対応するいくつかの手書き文字列が推薦ストロークとしてユーザに提示される。そして、選択された推薦ストローク（手書き文字列）が仮ストロークに代えてページ編集画面５００上に表示される。
【００８８】
しかし、各推薦ストロークは過去に手書きによって入力されたストローク列（手書き文字列）であるので、各推薦ストローク（手書き文字列）の色や太さ等は、ユーザが書こうとしている文字列の色や太さ等と異なる場合がある。したがって、選択された推薦ストロークをページ編集画面５００上に単純に表示したならば、ユーザにとって違和感のある色や太さを有する推薦ストローク（手書き文字列）が入力されてしまう可能性がある。
【００８９】
そこで、本実施形態では、筆跡補完処理部３０８は、ストローク属性決定部３０８Ｂにより、仮ストローク（図１０の７２１）の属性（筆圧、使用されたペンの設定情報［線の色や太さ等の組み合わせに関する情報］）と、選択された推薦ストロークの属性との両方に基づき、仮ストロークに代えてページ編集画面５００上に表示する、選択された推薦ストローク（図１１の７２２）の属性を決定する。以下、このストローク属性決定部３０８Ｂの働きについて詳述する。
【００９０】
まず、図１２および図１３を参照して、手書きノートアプリケーションプログラム２０２がストロークの軌跡を表示（描画）する基本原理について説明する。
【００９１】
前述したように、ユーザは、ページ編集画面５００上に表示されるクイックセレクトメニュー内のペン５０１〜５０３をタップすることにより、使用するペンの種類を切り替えることができ、また、クイックセレクトメニュー内のペン５０１〜５０３の各々の色や太さ等の組み合わせをペン設定画面６００により設定することができる。ここでは、ペンの種類として「毛筆」が設定されたペンが選択された状態でペン１００による手書き入力操作が行われた場合と、ペンの種類として「サインペン」が設定されたペンが選択された状態でペン１００による手書き入力操作が行われた場合とを想定し、ストロークの軌跡がどのように表示（描画）されるかを説明する。
【００９２】
図１２中、（Ａ）は、ペン設定画面６００のフィールド６０１でペンの種類として「毛筆」が設定された場合におけるストロークの軌跡の表示（描画）パターンの一例を示しており、（Ｂ）は、ペンの種類として「サインペン」が設定された場合におけるストロークの軌跡の表示（描画）パターンの一例を示している。
【００９３】
ペンの種類として「毛筆」が設定されると、図１２（Ａ）に示すように、ストロークの彩色に関するパラメータとして、中心部から端部へなだらかに色を変化（濃→淡）させる「毛筆」用のパラメータが適用される。この「毛筆」用のパラメータは、ペン設定画面６００のフィールド６０３での太さの設定に応じて、中心部から端部までの距離が伸縮し、また、ペン設定画面６００のフィールド６０４での透明度の設定に応じて、濃さのピーク値が上下する。また、この「毛筆」用のパラメータは、筆圧が高まるにつれて、太さおよび濃さの双方が増加する特性をもつ。なお、言うまでも無いが、ストロークの色は、ペン設定画面６００のフィールド６０２で設定される色が採用される。
【００９４】
ペンの種類として「サインペン」が設定されると、図１２（Ｂ）に示すように、ストロークの彩色に関するパラメータとして、中心部から端部まで色の変化が生じない「サインペン」用のパラメータが適用される。つまり、色の変化の度合いは、ペンの種類によって異なっている。この「サインペン」用のパラメータは、ペン設定画面６００のフィールド６０３での太さの設定に応じて、中心部から端部までの距離が伸縮し、また、ペン設定画面６００のフィールド６０４での透明度の設定に応じて、濃さのレベルが全体的に上下する。また、この「サインペン」用のパラメータは、筆圧が高まるにつれて、太さのみが増加する特性をもつ。勿論、ストロークの色は、ペン設定画面６００のフィールド６０２で設定される色が採用される。
【００９５】
そして、手書きノートアプリケーションプログラム２０２は、このように各々が固有の特性をもつパラメータに基づき、図１３に示すように、手書きされたストロークの軌跡上の座標データのサンプリング点Ｐｎそれぞれで円を表示（描画）することにより、ストロークの軌跡を表示（描画）する。例えば「毛筆」の場合、中心部から端部へなだらかに色を変化（濃→淡）させるので、にじみのような視覚的効果を上げることができる。図１３の例は、一定の筆圧でストロークが手書き入力された場合を想定しているが、筆圧が変化した場合、表示（描画）される円の大きさや濃さが適応的に変化する。
【００９６】
この基本原理を踏まえて、再び、前述した、選択された推薦ストロークを仮ストロークに代えてページ編集画面５００上に表示する場合について考える。
【００９７】
例えば、図１０の手書き文字「ａｐ」、つまり仮ストロークの手書き入力時に設定されているペンの色が赤色であり、図１０の推薦ストロークリスト７０１上に表示される手書き文字列「ａｐｐｌｉｃａｔｉｏｎ」、つまり推薦ストロークの手書き入力時に設定されるペンの色が黒色であった場合を想定する。そして、この手書き文字列「ａｐｐｌｉｃａｔｉｏｎ」がユーザによって選択された場合に、もし、それまでにユーザが手書きした手書き文字「ａｐ」の赤色とは異なる黒色で手書き文字列「ａｐｐｌｉｃａｔｉｏｎ」を表示（描画）したならば、ユーザに違和感を与えることは避けられない。そこで、ストローク属性決定部３０８Ｂは、ユーザが赤色で「ａｐ」を手書き入力しているならば、推薦ストロークである手書き文字列「ａｐｐｌｉｃａｔｉｏｎ」の色が赤色とは異なる黒色であったとしても、この手書き文字列「ａｐｐｌｉｃａｔｉｏｎ」が赤色で表示（描画）されるように当該手書き文字列「ａｐｐｌｉｃａｔｉｏｎ」の属性を決定する。
【００９８】
また、ストローク属性決定部３０８Ｂは、色と同様、ペンの種類、太さ、透明度についても、現在使用中のペンの属性に基づき、仮ストロークに代えてページ編集画面５００上に表示する推薦ストロークの属性を決定する。換言すれば、図１２に例示した、ストロークの彩色に関するパラメータを（必要ならば）変更する。よって、例えば、仮ストロークが「毛筆」で手書きされている一方で、推薦ストロークが「サインペン」で手書きされていたとしても、同じ太さ、透明度の「毛筆」で手書きされたように、（「サインペン」で手書きされた）推薦ストロークをページ編集画面５００上に表示することができる。図１３に示したにじみも、仮ストロークに準じて表現されることになる。
【００９９】
また、前述したように、ストロークの軌跡の線の太さや濃さは、筆圧によって変化し得る。そこで、ストローク属性決定部３０８Ｂは、仮ストロークの筆圧と、推薦ストロークの筆圧との両方に基づき、仮ストロークに代えてページ編集画面５００上に表示する推薦ストロークの属性を決定する。
【０１００】
具体的に説明すると、ストローク属性決定部３０８Ｂは、まず、仮ストロークの筆圧の平均値を計算する。なお、平均値の計算に用いるストロークは、推薦ストロークを検索する根拠となる仮ストローク全体であってもよいし、仮ストロークのうち、直近のストロークから遡って閾値数のストロークのみであってもよい。仮ストローク数が閾値数に満たない場合は仮ストローク全体を用いればよい。ここで計算される平均値をＰｍとする。
【０１０１】
次に、ストローク属性決定部３０８Ｂは、（仮ストロークに代えてページ編集画面５００上に表示する）推薦ストロークの筆圧の平均値を計算する。ここで計算される平均値をＰｓとする。さらに、平均値Ｐｍおよび平均値Ｐｓの両方を計算すると、ストローク属性決定部３０８Ｂは、平均値のずれＰｄを、Ｐｄ＝Ｐｍ−Ｐｓの計算式で計算する。
【０１０２】
そして、ストローク属性決定部３０８Ｂは、推薦ストロークの各サンプル点の筆圧に平均値のずれＰｄを加える。平均値Ｐｍより平均値Ｐｓの方が大きい場合には、筆圧を減らすことになる。
【０１０３】
これにより、推薦ストロークの手書き入力時の筆圧の変化に起因する線の太さや濃さの変化を活かしつつ、仮ストロークの手書き入力時の筆圧に整合させて、推薦ストロークをページ編集画面５００上に表示することができる。
【０１０４】
このように、本実施形態では、ストローク属性決定部３０８Ｂの働きにより、ユーザに違和感を与えることのない手書き入力の補助が実現される。
【０１０５】
なお、前述したように、手書き文書情報に格納される手書き文字列の言語はどのような言語であってもよい。従って、図１４に示すように、日本語の「東京」という文字が手書きされた場合に、この「東京」（仮ストローク８２１）を根拠に、「東京都港区」、「東京都世田谷区」、「東京都杉並区」といった文字列を推薦ストロークリスト７０１上に表示することができる。また、例えば「東京都港区」という文字列が選択された場合、仮ストロークである手書き文字「東京」の属性と、推薦ストロークリスト７０１上に表示される文字列「東京都港区」の属性との両方に基づき、図１５に示すように、「東京」までを手書きしたユーザに違和感を与えることなく、選択された文字列「東京都港区」（推薦ストローク８２２）を表示することができる。
【０１０６】
図１６は、手書きノートアプリケーションプログラム２０２が実行する筆跡補完処理の手順を示すフローチャートである。
【０１０７】
筆跡補完処理部３０８は、手書き入力されたストロークを時系列情報生成部３０２を介して入力する（ブロックＡ１）。筆跡補完部処理部３０８は、この入力したストロークを基に、推薦ストローク検索部３０８Ａにより、候補ストロークデータベース４０２Ｂから推薦ストロークを検索する（ブロックＡ２）。検索された推薦ストロークは、推薦ストロークリスト７０１としてページ編集画面５００上に表示される。
【０１０８】
推薦ストロークリスト７０１上のいずれかの推薦ストロークが選択されると（ブロックＡ３）、筆跡補完処理部３０８は、手書き入力されたストロークの属性と、選択された推薦ストロークの属性とに基づき、ストローク属性決定部３０８Ｂにより、手書き入力されたストロークに代えてページ編集画面５００上に表示する、選択された推薦ストロークの属性を決定する（ブロックＡ４）。
【０１０９】
そして、筆跡補完処理部３０８は、決定された属性に基づき、手書き入力されたストロークに代えて、選択された推薦ストロークをページ編集画面５００上に表示する（ブロックＡ５）。
【０１１０】
以上のように、本タブレットコンピュータ１０は、ユーザに違和感を与えることのない手書き入力の補助を実現する。
【０１１１】
本実施形態の動作手順は全てソフトウェアによって実現することができるので、このソフトウェアをコンピュータ読み取り可能な記憶媒体を通じて通常のコンピュータに導入することにより、本実施形態と同様の効果を容易に実現することができる。
【０１１２】
ここで説明したシステムの様々なモジュールは、ソフトウェアアプリケーション、ハードウェアおよび／またはソフトウェアのモジュール、あるいは、サーバのような１つ以上のコンピュータ上のコンポーネントとして実現することができる。様々なモジュールを別々に示したが、これらは、同一の根本的なロジックまたはコードのいくつかまたはすべてを共有することが可能である。
【０１１３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【図１】
0006010253.tif 000002
【図２】
0006010253.tif 000003
【図３】
0006010253.tif 000004
【図４】
0006010253.tif 000005
【図５】
0006010253.tif 000006
【図６】
0006010253.tif 000007
【図７】
0006010253.tif 000008
【図９】
0006010253.tif 000009
【図１０】
0006010253.tif 000010
【図１１】
0006010253.tif 000011
【図１２】
0006010253.tif 000012
【図１３】
0006010253.tif 000013
【図１４】
0006010253.tif 000014
【図１５】
0006010253.tif 000015
【図１６】
0006010253.tif 000016
【図８】
0006010253.tif 000017