(57)【特許請求の範囲】
【請求項１】
手書きデータ入力装置とともに用いられるコンピュータで実行される手書きデータ出力方法であって、
複数の異なる属性のデータを各々が含む一連のペンイベントを含む未加工の手書きデータを得るステップと、
前記未加工の手書きデータを入力として、前記複数の異なる属性のうち単一の属性のデータを各々が含む複数のストリームにより構成されるストリームデータを生成するステップと、
前記未加工の手書きデータを入力として、ストロークデータ及び画像データの少なくとも一方である出力データを生成するステップと、
前記ストリームデータをステガノグラフィープロセスによって前記出力データと統合し、それによって、前記未加工の手書きデータの元の内容を前記出力データと単一のファイル中に再度組み合わせて出力するステップと
を含む手書きデータ出力方法。
【請求項２】
前記ストリームデータを生成するステップは、前記複数のストリームに関連した識別子を挿入するステップを含み、
前記識別子を挿入するステップは、前記ストリームデータのヘッダに前記識別子を挿入するステップを含む
請求項１に記載の手書きデータ出力方法。
【請求項３】
前記ストリームデータを生成するステップは、更に、前記識別子に基づいて前記複数のストリームのストリーム毎に複数の利用可能な圧縮方法から圧縮方法を選択するステップ、及び、前記選択された圧縮技術を前記複数のストリームの各々に適用するステップを含む
請求項２に記載の手書きデータ出力方法。
【請求項４】
前記複数の利用可能な圧縮方法は、（ａ）非圧縮及び（ｂ）デルタ符号化を含み、
前記デルタ符号化はデルタ値のランレングス符号化を含み、
前記選択された圧縮方法を適用するステップは、前記デルタ符号化をｘ座標値又はｙ座標値に適用するステップを含む
請求項３に記載の手書きデータ出力方法。
【請求項５】
前記選択された圧縮方法は、
一連の手書きデータ値のうちｋ番目（ｋはインデクス値）の値を、現在の符号化対象の値として取得するステップと、
前記ｋ番目の値の符号化を行う前に得られている値に基づき前記ｋ番目の値の予測値を算出するステップと、
前記現在の符号化対象の値と前記ｋ番目の値の前記予測値とに基づいて前記ｋ番目の値の予測残差値を算出するステップと、
絶対値の小さい予測残差値に対して短いビット列を、かつ、絶対値の大きい予測残差値に対して長いビット列をマッピングするエントロピー符号化方法により前記予測残差値を符号化するステップと
を含む請求項３に記載の手書きデータ出力方法。
【請求項６】
前記エントロピー符号化方法は、ストリームタイプに応じて可変長コードテーブルを切り換えるステップを含む
請求項５に記載の手書きデータ出力方法。
【請求項７】
手書きデータ入力装置とともに用いられるコンピュータで実行される方法であって、
複数の異なる属性値を各々が含む一連のペンイベントを含む未加工の手書きデータを得るステップと、
前記未加工の手書きデータを入力として、タイムスタンプ情報を保存する処理を含む可逆データ処理により、前記複数の異なる属性のうち単一の属性のデータを各々が含む複数のストリームにより構成されるストリームデータを生成するステップと、
前記未加工の手書きデータを入力として、前記タイムスタンプ情報を廃棄する処理を含む非可逆データ処理により、ストロークデータ及び画像データの少なくとも一方である出力データを生成するステップと、
前記ストリームデータ又は前記出力データを選択的に出力するステップと
を含む手書きデータ出力方法。
【請求項８】
手書きデータ入力装置とともに用いられるコンピュータシステムであって、
前記手書きデータ入力装置から得られた未加工の手書きデータに基づいて複数のストリームを含むストリームデータを生成するストリームデータ生成部であって、前記複数のストリームを適応的に符号化するように構成された可逆ストリーム適応エンコーダを含む前記ストリームデータ生成部と、
前記未加工の手書きデータに基づいて画像データを生成する非可逆データ処理部と、
前記ストリームデータ並びに前記画像データを、符号化された前記手書きデータが内部に挿入されたデジタル画像を含む統合データに統合するよう構成された統合部と
を含むコンピュータシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
電子手書きは、種々の状況において次第に重要になっている。例えば、電子手書きは、クレジットカード取引のクレジットカード所有者の確認を得るためにペン及び紙の代わりに一般的に使用されるようになってきている。電子手書きが一般的になるにつれ、電子手書きの真正性を検証する能力もますます重要になっている。
【０００２】
特許文献１は、一方のサインを他方のサインと比較する「弾性マッチング」方法を記載する。この方法は、測定点の局所空間的近傍の間の相関を最大にし、かつ同時に、マッピングからの弾性空間的歪みの曲率を最小にするように、サイン記入の開始後に、別の時に測定された比較すべき２つのサイン中の対応する点の間のマッピングを作り、マッピング中の空間的相関度及び不均一な空間的歪み度の両方の定量的尺度を提供し、それによりサイン間の類似性の尺度を提供する工程を含む。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第６，４８７，３１０号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
電子サイン検証の正確さに加え、シグネチャ等の手書きデータを記録する方法は重要なテーマである。近年の手書き入力装置は、従来のデジタイザの機能を拡張し、類似するものの異なる機能を有する多くのタイプのハードウェアがある。あらゆるタイプの装置によってキャプチャされた手書きデータに対して互換性を確保するために、手書きデータの記録フォーマットとして適応性のあるデータフォーマットが望まれる。
【課題を解決するための手段】
【０００５】
この発明の概要は、詳細な説明において以下で更に記載するいくつかの概念を、簡略化された形で紹介するために提供される。この発明の概要は、特許請求された主題の主要な特徴を特定することを意図したものではなく、特許請求された主題の範囲を決定するために使用されることも意図されない。
【０００６】
本開示の少なくとも１つの態様において、手書き検証方法は、複数の利用可能なパラメータを含み、複数の利用可能なパラメータが、幾何学的パラメータと、１つ以上の非幾何学的パラメータとを含む、手書き試験サンプルを得ること、複数の利用可能なパラメータから幾何学的パラメータを抽出すること、幾何学的パラメータに基づき、手書き試験サンプル中に均等に分布した複数の特徴点の各々のｘ位置値と、ｙ位置値とを含む幾何学的特徴を導き出すこと、手書き試験サンプルの幾何学的特徴と、基準サンプルの幾何学的特徴との間で第１特徴照合を行うこと、特徴照合に少なくとも部分的に基づき手書き検証結果を判定すること、及び手書き検証結果を出力することを含む。幾何学的特徴は、方向及び曲率値のような、幾何学的パラメータから導出された値を更に含んでも良い。手書き検証結果の判定は、非リンク特徴点の数に更に基づき得る。
【０００７】
第１特徴照合は、試験サンプル中に均等に分布した１つ以上の特徴点と、基準サンプル中に均等に分布した１つ以上の特徴点との間でマッピングを求めることを含み得る。第１特徴照合は、シミュレーテッドアニーリング処理を含み得る。シミュレーテッドアニーリング処理は、基準サンプル中で特徴点を選択すること、擬似ランダム値を生成すること、擬似ランダム値を定数と比較すること、及び比較に基づき、基準サンプル中の選択された点からリンクを外すか、又は基準サンプル中の選択された特徴点と、試験サンプル中の選択された特徴点との間で新規リンクを定義するかを判定することを含み得る。判定ステップは、定数の値に基づき、既存のリンクを外すことよりも新規リンクを定義することに偏り得る。新規リンクが定義されるならば、新規リンクと交差する以前存在したいかなるリンクも外すことができる。
【０００８】
第２特徴照合も行うことができ、非幾何学的パラメータ（例えば、速度又は加速度のような、時間に関連したパラメータ、又は経時的筆圧）の評価を含んでも良い。第２特徴照合は、基準サンプルの開始点から基準サンプルの第ｉ点までの圧力−時間図の区域と、試験サンプルの開始点から試験サンプルの第ｉ点までの圧力−時間図の区域とを比較することを含んでも良い。手書き検証結果は、第２特徴照合に更に基づき得る。
【０００９】
もう１つの態様において、手書き検証方法は、手書き試験サンプルの幾何学的特徴と、基準サンプルの幾何学的特徴との間で特徴照合を行い、特徴照合が、試験サンプル中に均等に分布した１つ以上の特徴点と、基準サンプル中に均等に分布した１つ以上の特徴点との間で１つ以上のリンクを定義することを含むこと、試験サンプル中の連続した非リンク特徴点の数を得ること、及び手書き検証結果を出力し、手書き検証結果が、特徴照合と、試験サンプル中の連続した非リンク特徴点の数に少なくとも部分的に基づくことを含む。
【００１０】
もう１つの態様において、ユーザ認証方法は、試験サインデータと、ユーザ装置識別子（ＩＤ）とをユーザ装置から受信すること、試験サインデータと関連した名前ＩＤを検索すること、名前ＩＤを得ること、名前ＩＤと関連した基準装置ＩＤを検索すること、基準装置ＩＤをユーザ装置ＩＤと比較すること、及び比較に基づき、ユーザ装置に認証情報（例えば、認証結果）を提供することを含む。装置ＩＤは、例えばペン又はスタイラスと関連したペンＩＤ又はスタイラスＩＤであっても良い。
【００１１】
もう１つの態様において、ユーザ認証方法は、試験サインデータ（例えば、暗号化された試験サインデータ）と、装置ＩＤと、サービスＩＤとをユーザ装置から受信し、サービスＩＤが、ユーザ装置上で実行するサービスに関連すること、試験サインデータを基準サインデータと比較すること、比較結果に基づきユーザ装置上で実行するサービスと関連した認証情報（例えば、ユーザＩＤ及びパスワード）を得ること、及び認証情報をユーザ装置に提供することを含む。試験サインデータが、基準サインデータと一致するならば、試験サインデータは、基準サインデータに（例えば、将来の認証のための補足情報として）追加しても良い。
【００１２】
もう１つの態様において、手書きデータ入力装置によって使用されるように構成されたコンピュータで実行される方法は、複数の異なる属性値を各々が含むペンイベントのシーケンスを含む未加工の手書きデータを得ること、未加工の手書きデータから、異なる属性のうちの単一の属性に関するデータを各々が含む複数のストリームを含むストリームデータを生成すること、未加工の手書きデータから、ストロークデータ及び／又は画像データを生成すること、及びストリームデータ、又はストロークデータ及び／若しくは画像データを選択的に出力することを含む。選択的出力は、アプリケーションからの要求に少なくとも部分的に基づいても良く、かつストリームデータをストロークデータ及び／又は画像データと（例えば、ステガノグラフィー方法として）統合することを含んでも良く、それにより未加工の手書きデータのオリジナルの内容をストロークデータ及び／又は画像データと単一ファイル中に再度組み合わせる。
【００１３】
ストリームデータを生成することは、無損失性（可逆）データ処理を含んでも良く、かつストロークデータ及び／又は画像データを生成することは、損失性（非可逆）データ処理を含んでも良い。無損失性（可逆）データ処理は、タイムスタンプ情報を保存することを含んでも良く、かつ損失性（非可逆）データ処理は、タイムスタンプ情報を破棄することを含んでも良い。無損失性（可逆）データ処理は、オリジナルの精度レベルで値を保存することを含んでも良い。損失性（非可逆）データ処理は、少なくとも幾つかの値に関してオリジナルの精度レベルを低下させることを含んでも良い。
【００１４】
ストリームデータを生成することは、複数のストリームに関連したＩＤを（例えばストリームデータのヘッダに）挿入することを含んでもよい。ストリームデータを生成することは、ＩＤに基づき、複数のストリームの各々の複数の利用可能な圧縮技術から圧縮技術を選択すること、及び選択された圧縮技術を複数のストリームの各々に適用することも含んでも良い。
【００１５】
複数の利用可能な圧縮技術は、（ｉ）圧縮なし及び（ｉｉ）デルタ符号化を含んでもよい。デルタ符号化は、デルタ値のランレングス符号化を含んでも良い。選択された圧縮技術を適用することは、デルタ符号化をｘ座標値又はｙ座標値に適用すること含んでも良い。
【００１６】
選択された圧縮技術は、以下の処理：現在の符号化対象の値として、手書きデータ値のシーケンス中のｋ番目の値を得ること（ｋは、指標値である）、ｋ番目の値の符号化前に得られた値に基づきｋ番目の値の予測値を計算すること、現在の目標値及びｋ番目の値の予測値に基づき、ｋ番目の値の予測残差値を計算すること、及び小さい絶対予測残差値に関して短いビットストリングを、かつ大きい絶対予測残差値に関して長いビットストリングをマッピングするエントロピー符号化方法を使用することによって、予測残差値を符号化することも含んでも良い。エントロピー符号化方法は、ストリームタイプに応じて可変長コード表を切り換えることを含んでも良い。
【００１７】
もう１つの態様において、コンピュータシステムは、未加工の手書きデータに基づきストリームデータを生成するように構成されたストリームデータ生成部であって、ストリームデータは、複数のストリームを含み、ストリームデータ生成部は、複数のストリームを適応的に符号化するように構成された無損失性（可逆）ストリーム適応エンコーダを含むストリームデータ生成部と、未加工の手書きデータに基づきストロークデータ及び／又は画像データを生成するように構成された損失性（非可逆）データ処理部を含む。コンピュータシステムは、ストリームデータ並びにストロークデータ及び／又は画像データを統合データに統合するように構成された統合部も含んでも良い。統合データは、符号化された手書きデータが内部に挿入されたデジタル画像を含んでも良い。
【図面の簡単な説明】
【００１８】
【図１Ａ】サンプル手書きデータの真正性を検証するように構成された説明に役立つクラウドコンピューティング構成の高レベルの図である。
【図１Ｂ】説明に役立つ手書きデータ処理部の機能ブロック図である。
【図２Ａ】複数のペンイベントを含む手書きサインの説明図である。
【図２Ｂ】ペン装置に関して検出され得る回転、高度及び方位角パラメータの図である。
【図２Ｃ】ペンイベント及びかかるペンイベントのデータシーケンス順序を表すために使用され得るデータ構造例の説明図である。
【図３】手書き検証サーバにおいて実装できる手書き検証サービスの機能ブロック図である。
【図４】動的手書き検証方法例のフロー図である。
【図５】手書き経路に沿った特徴点の説明図である。
【図６】それぞれの特徴点のｘ位置及びｙ位置の計算を説明するグラフである。
【図７Ａ】以前の特徴点及び後続の特徴点のｘ位置及びｙ位置に基づく、現在の特徴点の方向の計算を示す説明図である。
【図７Ｂ】以前の特徴点及び後続の特徴点のｘ位置及びｙ位置に基づく、現在の特徴点の曲率の計算を示す説明図である。
【図８】特徴照合技術により、試験サンプルと、基準サンプルとの間で構築されるマッピングの図である。
【図９Ａ】手書き検証方法で使用され得るアニーリング処理例のフロー図である。
【図９Ｂ】手書き検証方法で使用されるアニーリング処理中のエネルギー増加を可能にする条件を説明するグラフである。
【図９Ｃ】手書き検証方法で使用されるアニーリング処理において一連のリンクが変更され得るプロセス例のフロー図である。
【図９Ｄ】手書き検証方法で使用されるアニーリング処理中の一連のリンクの説明に役立つ変更の図である。
【図９Ｅ】手書き検証方法でアニーリングが繰り返され得るプロセス例のフロー図である。
【図１０】多数のサインに関してリンクされる特徴の比率及び平均リンクエネルギーが示された試験の結果を示すグラフである。
【図１１】連続した非リンク特徴点の数を含むサンプル照合プロセス例のフロー図である。
【図１２Ａ】連続した非リンク特徴点の数を含むサンプル照合プロセスによって処理できる試験サンプルの説明図である。
【図１２Ｂ】連続した非リンク特徴点の数を含むサンプル照合プロセスによって処理できる基準サンプルの説明図である。
【図１３Ａ】２つの手書きサンプル中の特徴点に対応する経過時間値の比較結果を説明するグラフである。
【図１３Ｂ】サイン開始から特徴ｉまでの圧力−時間図の区域を説明するグラフである。
【図１３Ｃ】２つの手書きサンプル中の特徴点に対応する圧力値−時間値の比較結果を説明するグラフである。
【図１４】試験サンプルが基準サンプルと一致するか、又は一致しないかに関する判定がなされた後に使用され得る後処理プロセス例のフロー図である。
【図１５】サインの真正性を検証する、説明に役立つコンピュータシステム及びプロセスの図である。
【図１６】１つ以上のＩＤに基づき基準ＩＤを調べるために使用され得る表の説明図である。
【図１７】適切に構成されたコンピューティングシステムにおける説明に役立つ手書きに基づくユーザ認証プロセスの図である。
【図１８Ａ】サインデータに基づきＩＤを調べるために使用され得る表の説明図である。
【図１８Ｂ】他のＩＤに基づき装置ＩＤを調べるために使用され得る表の説明図である。
【図１９Ａ】適切に構成されたコンピューティングシステムにおけるもう１つの説明に役立つ手書きに基づくユーザ認証プロセスの図である。
【図１９Ｂ】図１９Ａに示すユーザ認証プロセスに使用され得るデータの表の説明図である。
【図２０】統合手書きデータを生成するように構成された、説明に役立つシステムの高レベルの図である。
【図２１Ａ】図２０に示した手書きデータ処理部の説明に役立つ実施態様の機能ブロック図である。
【図２１Ｂ】手書きデータ処理要素のもう１つの説明に役立つ実施態様の機能ブロック図である。
【図２１Ｃ】記載された実施態様によって使用できる説明に役立つクラウドコンピューティング構成の図である。
【図２１Ｄ】記載された実施態様によって使用できる説明に役立つクラウドコンピューティング構成の図である。
【図２２】ペンアップ点及びペンダウン点が示された、電磁共鳴技術を使用するシステムによって検出された手書きサインを含む電子手書きにおける座標位置の説明図である。
【図２３】ペンアップ点及びペンダウン点が示された、電磁共鳴技術を使用するシステムによって検出された芸術的図面を含む電子手書きにおける座標位置の説明図である。
【図２４】手書きデータ処理部に提供できる、ペンイベント及びかかるペンイベントのデータシーケンス順序を表すために使用できるデータ構造例の説明図である。
【図２５】ストリーム生成部の説明に役立つ実施態様の機能ブロック図である。
【図２６】ストリーム発生器からの出力に表しても良い手書きデータ例を説明する表である。
【図２７】ストリーム適応エンコーダによって実行できる適応符号化方法の例を説明するフロー図である。
【図２８】図２７に示した適応符号化方法で使用できる第１符号化方法の例を説明するフロー図である。
【図２９Ａ】３２ｖ符号化技術を説明する図である。
【図２９Ｂ】３２ｖ符号化技術を説明するフロー図である。
【図３０】ストリームエンコーダから出力できるデータ構造例の図である。
【図３１】代替的な第１符号化方法を説明するフロー図である。
【図３２】図３１に示す代替的な第１符号化方法で実行できる予測残差計算を説明する図である。
【図３３】それぞれのデルタ値、予測値及び予測残差に対する幾つかのｘ座標値例の図である。
【図３４】図３３に示すデルタ値及び予測残差の頻度を示すヒストグラムである。
【図３５】９９のサンプル手書きサインの実験結果の結果を示す表とヒストグラムである。
【図３６】９９個のサンプルの手書きサインの実験結果の結果を示す表とヒストグラムである。
【図３７】デルタ値又は予測残差のような値を符号化するために使用される可変長符号化方法例を示す表を示す。
【図３８】図３７の可変長符号化方法のｘ座標値の予測残差に対する適用結果を示す表を示す。
【図３９】図３７の可変長符号化方法の圧力値の予測残差に対する適用結果を示す表を示す。
【図４０】コンテキストに基づく符号化方法選択プロセスのフロー図である。
【図４１Ａ】コンテキストに基づく符号化方法の可変長コード（ＶＬＣ）表例を示す。
【図４１Ｂ】コンテキストに基づく符号化方法の可変長コード（ＶＬＣ）表例を示す。
【図４２】符号化された値の予測残差による復号方法を示す復号方法のフロー図である。
【図４３】画像データ処理部の説明に役立つ実施態様の機能ブロック図である。
【図４４】ストローク及び画像データ処理部の説明に役立つ実施態様の機能ブロック図である。
【図４５】損失性（非可逆）データ処理部によって生成された画像データから表示され得る画像の説明図である。
【図４６】損失性（非可逆）データ処理部によって生成された画像データから表示され得る画像の説明図である。
【図４７】ストロークデータ処理部の説明に役立つ実施態様の機能ブロック図である。
【図４８】ストリームデータを画像データに挿入するステガノグラフィープロセスの機能ブロック図である。
【図４９】符号化バイナリ手書きデータを画像に挿入する一般化技術のフロー図である。
【図５０】画素の擬似ランダム選択における１６ビットのバイナリデータの説明に役立つ分布の図である。
【図５１】符号化バイナリ手書きデータをデジタル画像に挿入するステガノグラフィープロセスを説明する詳細フロー図である。
【図５２】統合部の説明に役立つ実施態様の機能ブロック図である。
【図５３】統合部のもう１つの説明に役立つ実施態様の機能ブロック図である。
【図５４】本開示の実施態様に従った使用に適した代表的なコンピューティング装置の態様を説明するブロック図である。
【発明を実施するための形態】
【００１９】
同種の数字が同種の要素を参照する、添付図面に関連して以下に示す詳細な説明は、開示された主題の種々の実施態様の説明として意図され、かつ実施態様のみを表すことを意図するものではない。この開示に記載された各実施態様は、単に例又は説明として提供され、かつ他の実施態様よりも好ましい、又は好適であると解釈されるべきでない。本明細書に提供された説明に役立つ例は、網羅的であるか、又は特許請求された主題を、正確な開示された形に限定することを意図するものではない。
【００２０】
以下の記載において、複数の具体的な詳細が、本開示の代表的な実施態様の徹底した理解を提供するために示される。しかしながら、本開示の多くの実施態様が、幾つか又は全部の具体的な詳細なしで実施できることは、当業者にとって明白であろう。場合により、本開示の種々の態様を不必要に不明瞭にしないため、周知のプロセスステップは、詳細に記載されなかった。更に、本開示の実施態様が、本明細書に記載された特徴のいかなる組み合わせを用いても良いことが認識されるであろう。
【００２１】
Ｉ．動的手書き検証及び手書きに基づくユーザ認証
本開示の幾つかの実施態様は、電子サイン又は他の電子手書きを検証することを対象とする。サインが真正であるかを判定することは、多くの課題をもたらす。１つの課題は、同一の人物によってなされた真正なサインが、ある程度の変動性を常に有することである。もう１つの課題は、真正なサイン間の変動性の程度が人によって異なることである。従前では、変動性レベルの判定は、別の時間に、検証に使用され得るテンプレートに収集された幾つかの基準サンプルを組み合わせることによってなされる。しかし、別の時間に幾つかの基準サンプルを収集することは、多くの業務プロセスに上手く適合しない。例えば銀行は、比較するために単一の基準サインを伝統的に保管する。従って、単一の基準サインを使用して行う検証方法の精度を改良する能力が好適である。
【００２２】
記載された実施態様において、動的手書き検証エンジンは、試験サンプルが真正であるか判定するために、手書きの試験サンプル（例えば、サイン）に関連した手書きデータを、基準サンプルに関連した手書きデータと比較するように構成される。本明細書に記載された幾つかの実施態様はサインの検証に言及するが、本明細書に記載された実施態様が、あらゆる種類の手書きを検証するために使用され得ること、及びサインの検証に限定されないことが理解されるべきである。
【００２３】
本明細書に記載された実施態様によれば、検証方法は、同一の人物によってなされるサンプル間の自然な不一致に起因する軽微な相違を許容しながら、試験サンプル及び基準サンプル中の幾何学的特徴を照合することを伴う。幾何学的特徴に加えて、検証方法は、現在の手書き収集技術によって生成され得る更なるデータ（例えば、ストローク間のペンの動き、筆圧、ペン角度等）を考慮に入れることもでき、そのことは、検証結果の質を改良し得る。異なる入力装置は、異なるタイプのデータを提供することがあるので、検証方法は、本明細書に記載された実施態様に従って特定の装置によって提供されるデータのタイプに適応し得る。例えば、試験サンプルが圧力情報を含み、かつ基準サンプルが含まないのであれば、検証方法は、圧力情報の分析を省略でき、かつその代わりに２つのサンプルに共通するデータの比較に集中できる。
【００２４】
図１Ａは、本明細書に記載された技術による、サンプル手書きデータの真正性を検証するように構成された説明に役立つクラウドコンピューティング配列１の高レベルの図である。図１Ａに示す例において、手書き入力装置１０、１２及び１４は、種々の形の手書きデータをネットワーク２０（例えば、インターネット）を通じて手書き検証サーバ７００に提供する。手書き入力装置１０、１２及び１４は、専用の手書き収集装置、又は適切に構成されたスマートフォン若しくはタブレットコンピュータのような汎用装置として実装できる。手書き入力装置１０、１２及び１４は、本明細書において「入力装置」と称されるが、かかる装置は、入力の収集に限定されず、かつ概して他の機能性も含む（例えば、ディスプレイ機能性、データ伝送機能性等）。
【００２５】
手書きサインが、紙面上になされる時、インクペンは、サインを形成するインクの連続した跡を残す。デジタル化された手書きサインは、一般に一定の時間間隔で測定された離散データ点の収集を含む。
【００２６】
再び図１Ａを参照すると、入力装置１０、１２、１４はいずれも、デジタイザがペンの動きを検出するセンサボードを含み、かつセンサボード表面により生成された磁場によってペンの共振回路内にエネルギーが誘発される、という電磁共鳴（ＥＭＲ）技術を使用できる。ペンの共振回路は、次にこのエネルギーを使用して磁気信号をセンサボード表面に返信する。ボードは、電子ペンがセンサボード表面に触れなくても、信号がペンからなおも受信できるほど、ペンがセンサボードの十分に近接した中に留まる限り、ペンの座標位置を一定の時間間隔で検出する（有効な信号範囲は使用される特定の技術によって異なり得るが、一般的に約数ミリメートルである）。
【００２７】
あるいは、他の手書き入力技術が使用され得る。例えば、電子ペンは、他のワイヤレス技術を使用できるか、又はワイヤによってデジタイザに接続できる。もう１つの例として、電子ペンは、デジタイザの表面から離れて検出可能であっても良いし、なくても良い。もう１つの例として、電子ペンは、アクティブであるか又はパッシブであっても良い。アクティブペンは、外部電源に接続されたワイヤを介して、又は搭載電池を介して電力を受けても良い。もう１つの例として、電子ペンなしで（例えば、感圧デジタルライティングパッド、タッチスクリーン、又は電子ペンを必要としない他の入力装置上のスタイラスを介して）手書きデータを入力することが可能である。
【００２８】
どのようにして手書きデータが収集されるとしても、入力装置１０、１２及び１４によって提供される手書きデータは、ペンイベント情報、装置情報及び／又は手書きがなされた状況に関する状況情報を含んでも良い。記載された実施態様において、ペンイベント情報は、デジタイザ表面上のペン先のｘ、ｙ位置と、手書き開始からの時間とを含む。更に、ペンイベント情報は、圧力（ペンの力）、角度（方位角、高度、及び／又は回転）及びペンダウン状態のような、入力装置１０、１２及び１４の機能に依存する追加の情報を任意に含む場合がある。ペンイベント情報は、一般にサインプロセス中、一定の間隔で収集される。
【００２９】
装置情報は、デジタイザ単位を実世界単位に変換するために必要な情報を含んでも良い。サインの状況情報は、サインする人の氏名、サインの日時、サインの理由、ホスト装置上で使用されるオペレーティングシステムのタイプ及びバージョン、デジタイザのタイプ、デジタイザデバイスドライバのバージョン、ホスト装置のネットワークインタフェースコントローラ（ＮＩＣ）アドレスから取られる一意識別子、ハッシュ機能のタイプに関する情報（暗号ハッシュ機能が使用される場合）、及び／又は捕捉時にソフトウェアアプリケーションによって追加され得る補足データを含んでも良い。状況情報は、暗号メッセージダイジェストのようなサインされる文書に関する情報も含んでも良い。
【００３０】
再び図１Ａを参照すると、手書き検証サーバ７００は、手書き試験サンプルを基準サンプルと比較して、試験サンプルが真正かを判定する検証方法を実行する。検証方法の結果は、手書き検証サーバ７００によって出力され得る。少なくとも１つの実施態様において、手書き検証サーバ７００は、以下で更に詳細に記載するように、図４で説明される検証方法を実行する。図１Ａに示す例において、検証方法の結果は、手書き検証サーバによって更なる処理（例えば、ディスプレイ用に結果の形式を整えること、結果を記憶すること、結果を分析すること、他の装置に結果を伝送すること等）のために後処理部７９０に提供される。後処理部７９０は、手書き検証サーバ７００及び／又は１つ以上の他の装置内に実装できる。
【００３１】
手書き検証サーバ７００は、種々の形状（例えば、統合データ、ストリームデータ、未加工ペンイベント情報）で提供される手書き入力データの真正性を検証し得る。例えば、図１Ａに示すように、入力装置１０及び１２は、未加工の手書きデータを手書きデータ処理部１００に伝送できる。手書きデータ処理部１００は、以下で詳細に記載するように、ストリームデータ又は統合データを生成し、かつネットワーク２０を通じて手書き検証サーバ７００に伝送し得る。
【００３２】
図１Ｂは、説明に役立つ手書きデータ処理部１００の機能ブロック図である。手書きデータ処理部１００は、手書き入力装置、又は入力装置と直接（例えばＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）接続を介して）若しくはネットワークを通じて通信できる他の装置内に（例えば、ソフトウェア又はハードウェアとして）実装できる。
【００３３】
図１Ｂに示した例において、手書きデータ処理部１００は、入力取扱部１０１と、ストリーム生成部２００と、損失性（非可逆）データ処理部３００と、統合部４００とを含む。入力取扱部１０１は、例えばストリーム生成部２００及び損失性（非可逆）データ処理部３００による更なる処理のために、未加工の手書きデータを転送することに関与する。ストリーム生成部２００は、入力として未加工の手書きデータを受信し、かつストリームデータ（例えば、ヘッダ情報と共に、ｘ座標、ｙ座標に関する個別のストリーム、及び圧力情報）を生成する。少なくとも１つの実施態様において、ストリーム生成部２００は、無損失性（可逆）符号化技術を使用して、複数のストリームを含む圧縮ストリームデータを生成する。
【００３４】
図１Ｂに示す例において、損失性（非可逆）データ処理部３００は、入力として未加工の手書きデータも受信する。損失性（非可逆）データ処理部３００は、損失性（非可逆）データ処理技術（すなわち、データ損失を伴うことがある技術）を使用して、（手書きを画像とするために使用され得る）ストロークデータ及び／又は画像データ（例えば、ＰＮＧ（Ｐｏｒｔａｂｌｅ  Ｎｅｔｗｏｒｋ  Ｇｒａｐｈｉｃｓ）フォーマット又は他の画像データフォーマットでの画像データ）を生成し得る。例えば、損失性（非可逆）データ処理部３００は、手書き（例えば、サイン）を視覚的に表示するための描画処理を行うために必要とされることがある、データフォーマット及び処理をするように構成されたインクエンジンを含んでも良い。ストロークデータ及び／又は画像データが、未加工の手書きデータに基づき生成される図１Ｂに示した構成の代わりに、損失性（非可逆）データ処理部３００は、ストリーム生成部２００によって提供されるストリームデータに基づき出力を生成し得る。
【００３５】
図１Ｂに示す例において、統合部４００は、ストリームデータ、及びストローク及び／又は画像データを入力として受信し、統合手書きデータを出力する。統合部４００は、統合データを単一の出力ファイル（例えば、画像ファイル）で出力するか、又はストリームデータ及び／又はストローク／画像データを別個に出力することができる。少なくとも１つの実施態様において、ストリームデータは、符号化バイナリフォーマットに変換でき、かつ統合データは、ステガノグラフィック技術によりデジタル画像に挿入された符号化バイナリデータというデジタル画像の形態を取り得る。
【００３６】
図１Ａ及び図１Ｂに示す構成は例に過ぎず、他の多くの構成が可能である。例えば、図１Ａでは、手書き入力及び手書き検証が、異なる装置内で（例えば、それぞれ入力装置及び手書き検証サーバ７００内で）実行されるとして記載されるが、手書き入力及び手書き検証は、１つの装置内でも実行できる。もう１つの例として、図１Ａでは手書き入力装置及び手書き検証サーバがインターネット２０のような広域ネットワークを通じてクラウドコンピューティング配列１内で通信を行うものとして描写されているが、入力装置及び手書き検証サーバは、他の方法（例えば、ローカルエリアネットワークを通じて）でも通信できる。もう１つの例として、手書きデータ処理部１００がいかにして動作するかの詳細は、実装及び／又は状況に応じて異なることがある。もう１つの例として、手書きデータ処理部１００は、本明細書に記載された技術に従って検証すべき手書きデータを提供するために必須ではない。図１Ａに示す例において、入力装置１４は、未加工のペンイベント情報を生成し、手書きデータ処理部１００による中間処理なしで、未加工のペンイベント情報をネットワーク２０を通じて手書き検証サーバ７００に伝送する。
【００３７】
本明細書に記載された実施態様によれば、検証すべき手書きサンプル（又は「試験サンプル」）は、手書きサイン（図２Ａ参照）、又は印刷文字若しくは芸術的図画のような他のタイプの手書きであり得る。
【００３８】
記載された実施態様において、手書きデータは、ペンイベントのシーケンスとして表され得る。概して、ペンイベントは、（例えば、デジタイザの表面上又は限定された範囲内にある間に）特定の時間でのペン先の位置を記録する。ｘ／ｙ座標値に加えて、手書き入力装置によっては、ペン角度、筆記速度、筆記圧力等のような他の情報を検出することもある。装置の機能に応じて、ペンイベントに関連したペンデータは、筆圧及び角度のような追加の測定を含んでも良い。図２Ｂに示す例において、回転、高度及び方位角が、ペン装置に関して検出され得るパラメータの中に入る（大きな黒い矢印２０８によって表される）。
【００３９】
再び図２Ａを参照すると、説明に役立つ手書きサイン２０６Ａは、複数のペンイベントを含み、ペンイベントは、ペンが信号範囲内に留まる限り、ペンがデジタイザ表面から持ち上げられている時にもペンイベントが検出され続けることを可能にする技術（例えば、ＥＭＲ技術）を使用して、ペン装置及びデジタイザによって検出される。図２Ａに示す例において、ペンが上にある時に検出された座標は、より薄い点として示され、かつペンが下にある時に検出された座標は、より濃い点として示されている。
【００４０】
図２Ｃは、ペンイベント及びかかるペンイベントのデータシーケンス順序２１２を表すために使用され得るデータ構造例２１０の説明図である。ペンイベントのシーケンスは、未処理の形式及び／又は（例えば、ペンイベント情報をストリームデータ及び／又は統合データの形式にするために使用され得る手書きデータ処理部１００を介して）前処理された形式での例えば手書き検証サーバ７００への入力として提供され得る。図２Ｃに示す例において、データ構造２１０は、「構造体」又は「クラス」タイプとして実装され得る。あるいは、データ構造２１０は、他の方法で実装され得る。記載された実施態様において、ペンイベントは、データシーケンス順序２１２において起こった順序で提供される。
【００４１】
図３は、手書き検証サーバ（例えば、図１Ａに示す手書き検証サーバ７００）において実行され得る手書き検証サービス７００Ａの機能ブロック図である。図３に示す例において、手書き検証サービス７００Ａは、種々のフォーマットの手書きデータを処理するように構成されたサブセクション７２０、７３０及び７４０を含む手書き試験サンプルデータ取扱部７１０を含む。説明される例において、統合データ取扱サブセクション７２０、ストリームデータ取扱サブセクション７３０、及び未加工の手書きデータサブセクション７４０は、それぞれ統合データ、ストリームデータ及び未加工の手書きデータを入力として受信し、ペンイベントパラメータを出力として生成するように構成される。データ取扱部によっては、他のデータも出力可能であっても良い。例えば、図３に示す例において、統合データ取扱部７２０は、統合データから画像データを抽出し、画像データを更なる処理のために後処理部７９０Ａに伝送するように構成される。
【００４２】
図３に示す例において、検証部７５０は、手書き試験サンプルデータ取扱部７１０からペンイベントパラメータを受信し、リポジトリ７６０から基準サンプルを受信する。（リポジトリ７６０は、図３に示すように手書き検証サービス７００Ａとは別の装置上に実装されてもよいし、サービス７００Ａと同じ装置上に実装されてもよい。）検証部７５０は、ペンイベントパラメータから導き出された特徴を基準サンプルの特徴と比較することにより手書き試験サンプルの真正性を検証する。
【００４３】
動的手書き検証方法例が、図４に示される。図４に示す検証方法は、手書き検証サーバ（例えば、図１Ａの手書き検証サーバ７００）又は他の装置によって実行され得る。図４に示す検証方法は、クラウドコンピューティング構成（例えば、図１Ａに示すクラウドコンピューティング配列１）又は他の構成で実行され得る。記載された実施態様において、検証方法は、手書き試験サンプル中の手書きの幾何学的パラメータを使用して、基準サンプル中の特徴と比較され得る手書き特徴を導き出す。
【００４４】
図４に示す例において、手書きの幾何学的パラメータは、ステップＳ１０１で利用可能なペンイベントパラメータから選択される。この例において、手書きの幾何学的パラメータは、ｘ座標値と、ｙ座標値とを含む。幾何学的パラメータが選択される利用可能なペンイベントパラメータは、ｘ座標値及びｙ座標値に加えて、圧力値、角度値、タイムスタンプ情報等を含んでも良い。利用可能なペンイベントパラメータは、手書きを作り出すために使用された入力装置の機能のような因子によって決まっても良い。
【００４５】
通常の手書きの速度には変化があるので、一定の時間間隔でｘ座標及びｙ座標位置の検出を行うと、検出される位置の間隔が変化することになる。図２Ａに示すサイン例を再び参照すると、ペンイベントの座標位置２０６Ｂは、一定の時間間隔（例えば、１秒当たり１３３回、１秒当たり２００回のサンプルレート、又は他のサンプルレートで）で検出される。それ故に、座標位置２０６Ｂ間の大きな間隔は、ペンが速く動くサインの部分を示し、かつ狭い間隔は、ペンが遅く動く部分を示す。
【００４６】
再び図４を参照する。ステップＳ１０３で手書き試験サンプル及び基準サンプル中の特徴点の比較を容易にするために、特徴点が、手書きの幾何学的パラメータから導出される。このように導出された特徴点は、サンプルの手書き経路を辿るものであるが、ペンイベントと同じ場所に置かれる必要はない。少なくとも１つの実施態様において、特徴点は、手書き経路に沿って均等に配置される。しかしながら、特徴点は、他の方法で配置され得る。
【００４７】
図５は、手書き経路に沿った特徴点の間隔を示す図である。図５に示す例において特徴点は均等に分布する。一般的に、間隔を減少させることは、特徴点の数を増加させる傾向にあり、そのことは、処理時間増加に繋がり得る。他方で、間隔を増加させることは、特徴点の数を減少させる傾向にあり、そのことは精度低下及び手書き中の重要な特徴の脱落に繋がり得る。少なくとも１つの実施態様において、１ｍｍの一定の間隔が、合理的な処理時間を重要な手書き特徴の正確な検出と釣り合わせるための妥協点として使用される。
【００４８】
使用される特定の間隔は、実装に応じて異なり得る。例えば、特徴点間の間隔は、均一である必要はない。１つの代替的なアプローチによれば、特徴点は、密集したペンイベント間の間隔が対応する特徴点に関して拡張される、密度正規化処理に従って位置決めされ得る。かかるアプローチにおいて、特徴点は、オリジナルのペンイベントと同じ場所に置かれても良いか、又は置かれなくても良い。密度正規化処理は、特徴点をペンイベントがまばらな手書き経路の部分に挿入することを含んでも良い。密度正規化処理は、手書きの速度及び加速度に関連する情報を保存することに役立ち得る、特徴点間の幾らかの間隔変動をなおも許容しながら、サンプル間の点密度差を解消するために、試験サンプル及び基準サンプルに応用され得る。密度正規化処理は、装置によって得られたサンプル間の特徴点の比較可能なセットを異なるサンプリングレートで提供することに役立ち得る。
【００４９】
再び図４を参照すると、各特徴点（ステップＳ１０３参照）は、手書き経路に沿って一定の空間間隔で計算された対応するｘ位置及びｙ位置と関連する。少なくとも１つの実施態様において、それぞれの特徴点のｘ位置及びｙ位置は、図６に示すように算出される。
【００５０】
図６に示した例において、特徴点のｘ位置（Ｘ）及びｙ位置（Ｙ）はそれぞれ、手書き又は手書きのある部分（例えば、ストローク）のそれぞれの方向の全体値（例えば、幅（ｗ）又は高さ（ｈ））に関連するｘ座標値又はｙ座標値の比率として定義される。
【００５１】
少なくとも１つの実施態様において、特徴点は、ペンがタブレット表面と接触していなかったペンアップ区域を含む手書きサンプルの全長に関して定義される。状況により、ペンアップ情報は、ストローク間で利用できない。このことは、例えばペンアップデータを支援しない捕捉装置が使用される時、又はペンアップデータが検出され得ないように、ペンがデジタイザから間隔を置いて保持される時に起こり得る。ペンアップ情報が利用できないならば、特徴点は、ペンダウンペンイベントの限界内で生成され得る。
【００５２】
再び図４を参照すると、ステップＳ１０５で、方向（Ｄ）及び曲率（Ｃ）が、導き出された特徴点のｘ位置及びｙ位置から導き出される。この例において、ステップＳ１０５で導き出された方向及び曲率値は、オリジナルのペンイベントからのｘ／ｙ座標値に基づかない。少なくとも１つの実施態様において、方向及び曲率は、図７Ａ及び図７Ｂに示すように、１つ前の特徴点及び後続の特徴点のｘ位置及びｙ位置に基づき、現在の特徴点に関して導き出される。
【００５３】
図７Ａに示す例において、現在の特徴点８０２の方向Ｄは、１つ前の特徴点８０４と、次の特徴点８０６との間の線の角度として（水平線に対するラジアンで）算出される。図７Ｂに示す例において、現在の特徴点８０２の曲率Ｃは、現在の特徴点８０２を１つ前の特徴点８０４に接続する線と、現在の特徴点８０２を次の特徴点８０６に接続する線との間の線の角度として（ラジアンで）算出される。
【００５４】
再び図４を参照すると、ステップＳ１０７で、特徴照合が、特徴点の幾何学的特徴（例えば、ｘ位置、ｙ位置、方向、曲率）を使用して実行される。この例において、特徴照合の目標は、真正な手書きにおける自然な変動を考慮するために柔軟性を提供しながら、検証すべき手書きサンプル（又は試験サンプル）及び基準サンプル中の対応する幾何学的特徴をリンクすることである。ステップＳ１０７の特徴照合は、以下で更に詳細に記載するように、１つを超える特徴照合パスを含んでも良い。
【００５５】
図８は、例えば、図４のステップＳ１０７の特徴照合技術により、試験サンプル８１０と、基準サンプル８２０との間で構築されるマッピングの説明図である。図８で説明される例において、マッピングは、試験サンプル８１０及び基準サンプル８２０中の（円で表す）対応する特徴点の間で構築される（破線で表す）リンクを含む。リンクの各端部での手書き線の一致は、リンクの「エネルギー」と呼ばれ得る。この例において、エネルギーは、リンクされた特徴点のｘ位置（Ｘ）、ｙ位置（Ｙ）、方向（Ｄ）、及び曲率（Ｃ）値の間の差の観点から測定される。
【００５６】
少なくとも１つの実施態様において、エネルギーは、次式に従って測定される。ただし、式中、ｅｉは、基準サンプルｒを試験サンプルｔと接続するｉ番目のリンクのエネルギーであり、Ｘｒ、Ｙｒ、Ｄｒ及びＣｒは、基準サンプルのｘ、ｙ、方向及び曲率値であり、Ｘｔ、Ｙｔ、Ｄｔ及びＣｔは、試験サンプルのｘ、ｙ、方向及び曲率値であり、かつｋｘ、ｋｙ、ｋｄ及びｋｃは、様々なエネルギー成分の重み係数である。
【数１】
0005841297.tif 000002
【００５７】
少なくとも１つの実施態様において、リンクの最適なセットは、次式により定義できる、システムの最小総エネルギー（Ｅ）を達成するものである。ただし、式中、ｅｉは、ｉ番目のリンクのエネルギーであり、ｋｕは、非リンク特徴のエネルギーを表す定数であり、かつｎｕは、（もしあれば）非リンク特徴の数である。
【数２】
0005841297.tif 000003
【００５８】
少なくとも１つの実施態様において、数値アニーリングが、各リンクの端部での特徴点間の差を最小限に抑え、かつそれによりエネルギーＥを最小限に抑えるために使用される。特に、少なくとも１つの実施態様において、シミュレーテッドアニーリング処理が、リンクに擬似ランダム変化を起こすために使用され、そのことは、全エネルギーを増加又は減少させることがある。
【００５９】
図９Ａ〜図９Ｄを参照してこれから記載する１つのアニーリング処理の例において、全エネルギーの低下をもたらす変化は常に許容される。一方、エネルギー増加をもたらす変化は、漸進的に引き下げられ得るシステムの現在温度のような因子に応じて、許容されることがある。本明細書において使用される用語「温度」は、システムの数学的エネルギーを指し、かついかなる実際の熱エネルギーも指さない。同様に「冷却」のような関連用語は、数学的エネルギーの低下を指すために使用され、かつ実際の熱エネルギーのいかなる変化も指さない。
【００６０】
「エネルギー」及び「温度」は、アニーリング処理をモデル化するために使用され得る関連用語である。少なくとも１つの実施態様において、アニーリング処理の目標は、２つのサイン中の対応する特徴間のリンクの最良のセットを見出すことである。可能なリンクパターンのいずれかの優劣は、リンク特徴点での位置、線の方向及び曲率のような幾何学的特徴の類似性を算定することによって判定され得る。リンクのエネルギーは、２つの特徴点間の差の尺度である。ゼロエネルギーは同一の特徴を有する状態を示し、差が大きくなるにつれてエネルギーが増加する。
【００６１】
アニーリング処理は、リンクのセットを調整することによってシステムの総エネルギーを最小限に抑えようと試みる。しかしながら、総エネルギーを増加させる個別の調整が全く許されないとするならば、アニーリング処理が総エネルギーの局所的最小値に陥る確率が増加する。この状況に対処するために、アニーリング処理は、エネルギー増加をもたらす何らかの変化を可能にし、それにより後続の変化が低い総エネルギーを達成できる可能性を許容することによって、プロセスが局所的最小値に陥るようになる確率を低下させるように設計されている。
【００６２】
システムの温度は、総エネルギーを増加させる変化の可能性を制御するために使用され得る。少なくとも１つの実施態様において、温度は当初、エネルギー増加が更に頻繁に起こることを可能にする比較的高い値に設定される。温度は、アニーリング処理が進むにつれ低下する。温度が下がると、エネルギー増加の可能性は、システムの安定に達するまで低下する。
【００６３】
図９Ａに説明されるアニーリング処理の例をここで参照すると、ステップＳ２０１で変数Ｅ（エネルギー）、Ｔ（温度）、Ｉ＿ｓｔｅｐ及びＩ＿ｃｙｃｌｅが初期化される。ステップＳ２０３で、リンケージが変更される。この文脈において、用語「リンケージ」は、試験サンプルと、基準サンプルとの間の１つ以上のリンクを一般的に指すために使用される。それ故にステップＳ２０３で、試験サンプルと、基準サンプルとの間のリンクのセットが何らかの方法で変更される。（リンクのセットが変更され得る処理の例は、図９Ｃを参照して、以下で詳細に記載する。）
【００６４】
ステップＳ２０５で、変更したリンケージの総エネルギー（Ｅ＿ｎｅｗ）が以前の状態のリンケージの総エネルギー（Ｅ＿ｐｒｅｖ）と比較される。Ｅ＿ｎｅｗがＥ＿ｐｒｅｖ以下であるならば、リンケージに対する変更は、ステップＳ２０７で保持される。Ｅ＿ｎｅｗがＥ＿ｐｒｅｖよりも大きいならば、リンケージに対する変更がなおも許容され得るかに関してステップＳ２１７で判定が行われる。
【００６５】
少なくとも１つの実施態様において、エネルギー増加は、変更の大きさ（ｄＥ）及び現在温度を含む比率次第で許容できる。図９Ｂに示す例において、エネルギー増加（正のｄＥ）は、次の条件が満たされる時に、可能にされる。ただし、式中、Ｕは、０≦Ｕ≦１．０の範囲における一様偏差法による値であり、ｄＥはリンケージに対する変更に起因する全エネルギーの変化であり、Ｔはシステムの現在温度である。一様偏差は、１つ以上の擬似ランダム値Ｕを生成するために使用される。単一の一様偏差生成器は、試験サンプルと、基準サンプルとの間の全比較のために使用され、かつ同じシードによって常に初期化される。このことは、試験サンプルと、基準サンプルとの比較が常に同じ結果を返すことを確実にする。
【数３】
0005841297.tif 000004
【００６６】
リンケージが変更され得る処理の例（図９ＡのステップＳ２０３参照）を図９Ｃを参照して記載する。ステップＳ２０３−１で、特徴点が基準サンプル中で選択される。ステップＳ２０３−２で、一様偏差法による値Ｕが定数Ｋ＿ＲｅｍｏｖｅＬｉｎｋよりも小さいかに関して判定がなされる。
【００６７】
少なくとも１つの実施態様において、ステップＳ２０３−２は、値Ｕを定数Ｋ＿ＲｅｍｏｖｅＬｉｎｋと比較することによって、リンクを外すか、又は新規リンクを設定するかを擬似ランダムに判定することによって、リンケージに対する変更毎に実行される。Ｋ＿ＲｅｍｏｖｅＬｉｎｋの値は、判定を既存のリンクを外すこと又は新規リンクを設定することに偏らせるように設定され得る。実験によれば、約３０％の変更がリンクを外すことからなるならば望ましいことが示されるが、その場合にＫ＿ＲｅｍｏｖｅＬｉｎｋは、０．３に設定される。定数Ｋ＿ＲｅｍｏｖｅＬｉｎｋの値は、実装に応じて異なり得る。
【００６８】
ＵがＫ＿ＲｅｍｏｖｅＬｉｎｋよりも小さいならば、リンクは、ステップＳ２０３−３で選択された特徴点から外される。（このステップにより、アニーリング処理は、リンクを、それに代わる他のものを挿入せずに外せるようになり、リンケージに対する更に可能な変更が達成可能であることを確実にできるようになる。）そうでない場合、試験サンプル中の特徴点がステップＳ２０３−４で選択され、かつ、基準サンプル及び試験サンプル中の選択された特徴点の間にステップＳ２０３−５でリンクが挿入される。ステップＳ２０３−６では、新規に挿入されたリンクと交差する既存のすべてのリンクが、リンケージから外される。図９Ｄに示した例では、新規リンク８３０が３つの既存のリンクと交差しており、これらの３つの既存のリンクは、図９Ｃに記載された処理の例によりリンケージから外される。
【００６９】
一般的に、最小エネルギー状態を達成するに十分な回数の変更がリンケージに対してなされ、かつ、結果が最適状態に落ち着くのに十分な程度に温度が低下することが保証されることが望ましい。再び図９Ａを参照すると、ステップＳ２０９〜Ｓ２１５は、アニーリング処理が終わりに達したかを判定するために使用される。図９Ａに示す例において、Ｉ＿ｃｙｃｌｅは、ステップＳ２１１で最大値（Ｍａｘ＿ｃｙｃｌｅｓ）に到達するまでインクリメントされ（ステップＳ２０９参照）、かつＩ＿ｓｔｅｐは、ステップＳ２１５で最大値（Ｍａｘ＿ｓｔｅｐｓ）に到達するまでインクリメントされる（ステップＳ２１３参照）。Ｉ＿ｓｔｅｐが、ステップＳ２１５でインクリメントされる時、全システムの温度（Ｔ）も、Ｔに冷却係数（Ｋ＿ｃｏｏｌ）を乗じることによって低下する。ステップ数は、各段階で冷却係数によって低下した温度によってなされる温度変化の数である。サイクル数は、各温度レベルで試みた変化の数である。Ｍａｘ＿ｃｙｃｌｅｓ、Ｍａｘ＿ｓｔｅｐｓ及びＫ＿ｃｏｏｌのような値は、実装に応じて異なり得る。
【００７０】
アニーリング処理は、更に多数のサイクル及び更になだらかな温度低下を使用することにより、処理速度を可能な代償として更に正確にできる。少なくとも１つの実施態様において、アニーリングパラメータ（例えば、サイクル数、温度低下のための冷却係数）は、大部分の場合に適切な精度を迅速に得るように選択される。しかしながら、このことは、アニーリングが適切だったならば許容可能なリンケージを有したであろう２つのサンプル間でのリンケージ不良を、時折もたらし得る。
【００７１】
リンケージ不良が、サンプル間の非類似、又は不正確な初期アニーリング処理の結果であるかの判定を助けるために、第２アニーリング処理が、異なる初期シードによって実行され得る。アニーリングが繰り返され得る処理の例は、図９Ｅに説明される。ステップＳ３０１で、一様偏差が固定値に初期化される。ステップＳ３０３で、図９Ａに示す処理のようなアニーリング処理が実行される。ステップＳ３０５で良好な照合が２つのサンプル間で見出されるならば、サンプルが一致するという判定がステップＳ３１１でなされる。他の属性（例えば、時間値、圧力値、角度値）も、サンプルの一致を確認するためにステップＳ３１５でチェックされ得る。
【００７２】
良好な照合が、ステップＳ３０５で見出されないならば、もう１つのアニーリングの試みがなされるかを判定するために、ステップＳ３０７でチェックが実行される。ステップＳ３０７で実行されるチェックは、すでに実行されたアニーリングステップ数を最大値と比較することを伴っても良い。例えば、少なくとも１つの実施態様において、２つのアニーリングの試みがまだなされなかったならば、アニーリングステップＳ３０３は、同じランダムシーケンスが、後続のアニーリングステップで使用されないことを保証するために、一様偏差生成器をリセットせずに繰り返される。そうでない場合、２つのアニーリングの試みがなされ、サンプルが一致しないという判定がステップＳ３１３でなされる。
【００７３】
アニーリングが実行された後、結果として生じたリンケージは、各々が既知のエネルギーを有するリンクのセットを含む。しかしながら、サンプルが同一、又はほぼ同一でない限り、全ての特徴点がリンクされるとは限らない。リンケージの質は、リンクされる特徴点の比率（Ｐｌ）及び平均リンクエネルギー（Ｅｍ）を次式によって計算することによって算定され得る。ただし、式中、Ｐｌは、リンクされる特徴の比率であり、ｎｌは、リンクの総数であり、ｎｒは、基準サンプル中の特徴数であり、かつｎｔは、試験サンプル中の特徴数である。リンケージの質を算定するために上記式を使用する実施態様において、一致するサインは、高いＰｌ値及び低いＥｍ値を有する。反対に、類似しないサンプルは、低いＰｌ値及び高いＥｍ値を有する。
【数４】
0005841297.tif 000005
【数５】
0005841297.tif 000006
【００７４】
一致するサイン及び一致しないサインに関するＰｌ及びＥｍ値の予期される差は、経験的に測定され得る。図１０において、多数のサインに関する比率Ｐｌ及び平均リンクエネルギーＥｍが示された試験の結果が、示される。破線内部の領域１０１０内のプロット点は、別の人々からの、かつそれ故に一致しない可能性が高いサンプルの比較と各々が関連する。点線内部の領域１０２０内のプロット点は、同一の人物からの、かつそれ故に一致する可能性が高い比較サンプルと各々が関連する。
【００７５】
図１０に示す例において、領域１０１０内の大多数のデータ点は、一致しないサンプルと関連したＰｌ及びＥｍ値を反映し、かつ領域１０２０内の大多数のデータ点は、一致するサンプルと関連したＰｌ及びＥｍ値を反映する。「境界」という標識を付した区域内で、領域１０１０及び１０２０間に幾らかの重複があり、Ｐｌ及びＥｍ値は、サンプルが一致するか、又は一致しないかを明瞭に示さない。しかしながら、図１０の結果は、多くの場合に、手書きの形状に基づき、試験サンプル及び基準サンプルが一致するかの初期算定を行うことが可能であることを示す。少なくとも１つの実施態様において、この段階で一致しないと識別された試験サンプルは、０の検証スコアを自動的に与えられ、かつ試験サンプルが基準サンプルと一致するかを判定するために、更なる処理は行われない。
【００７６】
Ｐｌ及びＥｍ値は、多くのシナリオにおいてリンケージの質の測定に有効であるが、サンプルの実質的な部分が非常に類似するならば、試験サンプルと、基準サンプルとの間に有意差を表さないことがある。試験サンプルと、基準サンプルとの間に非リンク特徴点の有意な部分があるか判定するために、追加のチェックを実行することによって手書き検証の精度を改良することが可能である。
【００７７】
再び図４を参照すると、ステップＳ１０９で、試験サンプル及び基準サンプルが十分に一致するかに関して判定がなされる。図４に示す例において、試験サンプル及び基準サンプルが、ステップＳ１０９で十分に一致すると判定されるならば、ステップＳ１１３で検証の結果を出力する前に、更なる処理が実行される（ステップＳ１１１を参照、以下で更に詳細に記載する）。しかしながら、試験サンプル及び基準サンプルが、ステップＳ１０９で十分に一致しないとして判定されるならば、サンプルが一致しないことを示す結果が、更なる処理なしに、ステップＳ１１３で出力され得る。
【００７８】
ステップＳ１１３で生成した出力は、ブール値のような、検証の結果を示すために適したいかなる出力でもあり得る。あるいは、単なるバイナリ又は真／偽の結果を超えることの示唆を可能にする異なる値が使用され得る。少なくとも１つの実施態様において、ステップＳ１１３で生成した出力は、（試験サンプル及び基準サンプルが非常に異なることを示す）０から（試験サンプル及び基準サンプルが非常に類似することを示す）１．０に及ぶ浮動小数点値を含む。
【００７９】
図１１は、連続した非リンク特徴点の計数を含む照合処理例Ｓ１０９を説明する。図１１に示す例において、ステップＳ１０９−１で、リンケージの質の初期測定が、試験サンプルと、基準サンプルと間のリンケージに関するＰｌ及びＥｍ値を判定することによって実行される。図１０を参照して以上で述べたように、ステップＳ１０９−２で、試験サンプル及び基準サンプルが一致しないことをＰｌ及びＥｍ値が示すならば、処理Ｓ１０９は、ステップＳ１０９−５で、試験サンプル及び基準サンプルが良好な照合でない（一致しない）ことを示す結果を返し、かつ照合処理Ｓ１０９における更なる処理は、省略され得る。しかしながら、試験サンプル及び基準サンプルが一致することをＰｌ及びＥｍ値が示すならば、ステップＳ１０９−３で、連続した非リンク特徴点が計数される。
【００８０】
図１２Ａ及び図１２Ｂは、図１１で説明された照合処理Ｓ１０９により処理できる、試験サンプル及び基準サンプルをそれぞれ示す。図１２Ａは、「Ｚ」形状を有する試験サンプル例を示し、かつ図１２Ｂは、類似した「Ｚ」形状を有するが、追加のループのある基準サンプル例を示す。図１２Ａ及び図１２Ｂに示される２つのサンプルの実質的な部分は、同一又は非常に類似している。従って、図１２Ａ及び図１２Ｂに示される特徴の大部分が、非常に低いリンクエネルギーによってリンクできる。図１２Ｂに示す基準サンプル中の追加のループは、リンクされないかもしれないが、全体的なリンケージ及びリンクエネルギーは、真正なサインの間の自然な変動において予期されるものと類似することがある。
【００８１】
図１２Ａ及び図１２Ｂに示されるサンプルは、試験サンプル中の有意な欠損特徴にもかかわらず、Ｐｌ及びＥｍ値が試験サンプル及び基準サンプルが一致することを示すシナリオの説明に役立つ。（図１１で説明したような）連続した非リンク特徴点の追加のチェックが、照合処理の精度を改良するために使用できる。図１２Ａ及び図１２Ｂに示される説明に役立つシナリオにおいて、図１１に示される照合処理は、それぞれのサンプルが欠損特徴のために一致しないと判定するために使用できる。
【００８２】
再び図１１を参照すると、ステップＳ１０９−４で、非リンク特徴点が有意であるか判定がなされる。非リンク特徴点が有意であるならば、処理Ｓ１０９は、ステップＳ１０９−５で、試験サンプル及び基準サンプルが良好な照合でない（一致しない）ことを示す結果を返す。非リンク特徴点が有意でないならば、処理Ｓ１０９はステップＳ１０９−６で、試験サンプル及び基準サンプルが良好な照合である（一致する）ことを示す結果を返す。
【００８３】
少なくとも１つの実施態様において、非リンク特徴点が有意であるか判定することは、非リンク部分内の連続した非リンク特徴点の数が所定値ＮＵよりも大きいか判定することを含む。ＮＵよりも大きい数は加えることができ、かつこれらの数の全長は、全体的なサンプル長の比率（「比率なし（ｐｒｏｐｏｒｔｉｏｎ  ｆｒｅｅ）」又はＰｆと称される）として表され得る。ＮＵ以下の数は、無視できる。ＮＵ値は、実装に応じて変動し得る。所定値を超えるＰｆ値を有するサンプルは、一致しないとみなされ得る。
【００８４】
再び図４を参照すると、試験サンプル及び基準サンプルが、手書き形状に基づき、ステップＳ１０９で十分一致していると当初判定されたならば、追加の評価が、手書き形状に限定されない他のペンイベントパラメータを使用してステップＳ１１１で実行される。
【００８５】
少なくとも１つの実施態様において、ステップＳ１１１で実行される追加の評価は、筆記速度のような時間関連ペンイベントパラメータの分析を含む非幾何学的な特徴照合を含む。個人は、ペンで書く方法において習慣的リズムを作り出す傾向にあり、そのことは、ペン速度及び加速度が、同一の人物によってなされる手書き（例えば、サイン）に関して（同一でないが）非常に類似する傾向にあることを意味する。従って、他のステップで分析される幾何学的特徴とは異なる時間関連ペンイベントパラメータは、手書き検証方法において（例えば、幾何学的特徴照合の補完として）有用であり得る。少なくとも１つの実施態様において、幾何学的特徴は、それぞれの特徴に対応する経過時間と共に未加工手書きデータから抽出でき、経過時間値の比較を可能にする。
【００８６】
図１３Ａは、２つの手書きサンプル中の特徴点に対応する経過時間値の比較結果を説明するグラフである。結果は、リンクされた特徴点に関する経過時間に対応するプロットとして図１３で説明される。プロット中の各点はリンクに対応し、かつ基準サンプル（水平軸）中の特徴点までの経過時間、及び試験サンプル（垂直軸）中のリンクされた特徴点までの経過時間を表す。一致するサインに関して、サイン開始からの経過時間は、リンクされた特徴点の各対に関して類似するはずである。
【００８７】
図１３Ａに示す例において、点は、速度の（長方形の対角線傾斜、又は水平からの角度によって）全体的な一致、及び（垂直な矢印によって示すように、長方形の狭い寸法によって）変動性を表す長方形の内側に示される。この状況における全体的な一致は、それぞれのサンプルの平均総経過時間（及びそれ故に速度）を指す。この例において、約１：１の長方形の傾斜は、サンプルが、一致する平均速度を有することを示す。この条件における変動性は、局所的な速度変化の差を指す。速度の全体的一致及び変動性における許容可能な限界は、同一の人物によってなされることが知られているサインサンプルの試験を通して測定され得る。
【００８８】
再び図４を参照すると、ステップＳ１１１で実行される追加の評価は、筆圧又はペン角度のような、他のパラメータの分析を含むこともできる。筆圧は、各特徴点での圧力の状態を算定すること（例えば、増加、減少又は安定）によって確実に比較され得る。圧力の一致は、リンクの各端部に同じ圧力状態を有するリンクの比率Ｐｐとして計算され得る。Ｐｐの許容可能な値は、同一の人物によってなされることが知られている多数のサインサンプル中の圧力変動を測定することによって判定され得る。
【００８９】
概して、筆圧は、絶対力値よりもむしろ相対値として測定される。圧力値は、装置依存性であり、ペン材料の構造、ヒステリシス、及び経年劣化の差のような因子により、感度の変動が同じモデルの装置間でも起こる。従って、絶対力値を使用してサンプル間で信頼できる比較を行うことは、特に、同一の人物がサンプルを提供するために異なる入力装置を使用し得た場合に、一般的に可能でない。
【００９０】
第１の説明に役立つ筆圧値比較方法において、筆圧は、各特徴での圧力状態、すなわち圧力が、各点で増加しているか、減少しているか、又は安定しているかを算定することによって比較され得る。次に一致は、各端部で同じ圧力状態を有するリンクの比率Ｐｐによって算出される。しかし、少なくとも一つの実験において、第１の方法は、圧力が相当な期間、ほぼ一定であるときに不適切である場合がある。その際、わずかな相違も異なる符号勾配として認められ、大きなエラーをもたらすことがある。
【００９１】
第２の説明に役立つ筆圧値比較方法において、筆圧は、次式によりサイン全体に関する全体的圧力−時間区域の比率として正規化された、サイン開始から特徴ｉまでの圧力−時間図の区域、Ｐｉを計算することによって確実に比較され得る。ただし、式中、Ｐｉは特徴ｉまでの圧力−時間図の比率であり、ｐは筆圧であり、ｔはサイン開始から特徴ｉまでの時間であり、Ｔは全体的サイン時間である。
【数６】
0005841297.tif 000007
図１３Ｂは、上記式を説明する図である。図１３Ｂで、水平軸はサイン開始からの経過時間を示し、垂直軸はペン先によって記録された圧力を示す。点線により定義された領域内のグラフの影付き区域は、時間０から時間ｔまでの筆圧ｐ（ｔ）の和を示す。
【００９２】
図１３Ｃは、２つの手書きサンプル中の特徴点に対応する圧力−時間値の比較結果を説明するグラフである。結果は、リンクされた特徴点に関する圧力−時間値に対応するプロットとして図１３Ｃで説明される。プロット中の各点は、リンクに対応し、かつ基準サンプル（水平軸）中の特徴点までの圧力−時間グラフの比率、及び試験サンプル（垂直軸）中のリンクされた特徴点までの圧力−時間グラフの比率を表す。一致するサインに関して、圧力−時間グラフの比率は、リンクされた特徴点の各対に関して類似する。この例で、グラフの最終点は、定義により常に（１．０、１．０）であることに注意されたい。
【００９３】
図１４は、試験サンプルが基準サンプルと一致するか、又は一致しないかに関する判定がなされた後に使用され得る後処理方法例のフロー図である。図１４に示される方法例において、試験サンプルがステップＳ４０１で基準サンプルと一致すると判定されるならば、試験サンプルは、ステップＳ４０３でもう１つの基準サンプルとしてリポジトリに加えられ得る。試験サンプルが基準サンプルと一致すると認められる時、試験サンプルは、既存の基準サンプルを補完し、かつ将来の検証方法の精度を潜在的に改良するために使用され得る。更に、図１４に示される方法例において、ステップＳ４０５で検証結果は、ディスプレイ用に描画され得る個別の画像データと共に出力され得る。例えば、試験サンプル用の手書きデータが画像データと統合されたならば、手書きの画像が検証方法の結果（例えば、手書きが検証されたか、又は検証されなかったか）のインジケーターと共に表示され得る。
【００９４】
図１５は、説明に役立つコンピュータシステム及びサインの真正性を検証する方法の図である。図１５に示されるシステム及び方法で使用できる特定のサイン検証技術は、実装に応じて、本明細書に記載されたそれと異なり得る。図１５に示す例において、サインは、銀行取引の状況における契約になされる。
【００９５】
図１５に示すように、ＡＢＣ銀行によって提供されるサーバ１５１０は、オリジナルの契約書類を手書き入力装置１０にサインのために提供する。入力装置１０は、ユーザが契約にサインすることに応答してサインデータを生成し、かつサインデータを、サインした契約の画像と統合する。入力装置１０は、統合ファイルをサイン検証サーバ７００Ｂにネットワーク２０（例えば、インターネット）を通じて提供する。手書き入力装置１０は、専用の手書き収集装置、又はペン入力能力を有する適切に構成されたスマートフォン若しくはタブレットコンピュータのような汎用装置としてとして実装できる。
【００９６】
図１５に示す例において、サーバ１５１０（又はＡＢＣ銀行によって制御される他の何らかのサーバ）は、ユーザＩＤをサイン検証サーバ７００Ｂに提供する。サイン検証サーバ７００Ｂは、検証方法において使用するためのリポジトリ７６０内で適切な基準サインを選択するためにユーザＩＤを使用する。
【００９７】
図１６は、サイン検証サーバ７００Ｂが、１つ以上の識別子（例えば、（文書をサインのために提供した団体を特定する）サービスＩＤ及びサーバ１５１０によって提供されるユーザＩＤ）に基づき基準サインを調べるために使用し得る表１６９０を示す。サービスＩＤは、サーバ１５１０、入力装置１０などによって提供されても良い。表１６９０に示すように、基準サインはいかなる言語であっても良く、かつ１つを超える基準サインが単一のユーザに関して利用可能であっても良い。
【００９８】
再び図１５を参照すると、サイン検証サーバ７００Ｂは、サインを基準サインと比較することにより、入力装置１０によって提供されたサインを検証する。サイン検証サーバ７００Ｂは、サインが検証される（「ＯＫ」）か、又は検証されない（「ＮＧ」）かを示す検証結果を、入力装置１０に返す。
【００９９】
図１７は、ユーザのサインに基づいてユーザを認証するために使用され得る、説明に役立つコンピュータシステム及び手書きに基づくユーザ認証方法の図である。図１７に示される説明に役立つコンピュータシステム及び手書きに基づくユーザ認証方法は、本明細書に記載された手書き検証技術、又はユーザ認証のための他の手書き検証技術を、実装に応じて使用できる。
【０１００】
図１７に示す例において、入力装置１０は、ペン／スタイラス装置１１によりサインすることによってコンピュータシステムにサインインしようと試みるユーザに応答して試験サインデータを生成する。入力装置１０は、サインデータをユーザ装置ＩＤ（例えば、ペン／スタイラス装置１１と関連したスタイラスＩＤ）と共にサインサインインサービス１７２０にネットワーク２０（例えば、インターネット）を通じて提供する。
【０１０１】
図１７に示す例において、サインによるサインインサービス１７２０は、入力装置１０によって提供される試験サインデータに基づき「名前ＩＤ」を検索する。サインによるサインインサービス１７２０は、検証方法を使用して、入力装置１０によって提供された試験サインデータが、データベース１７３０に記憶された１つ以上の基準サインと関連した対応する基準サインデータと一致するかを判定し得る。
【０１０２】
図１８Ａは、サインデータに基づき（例えばデータベース１７３０中で）識別子を調べるために使用され得る表の説明図である。特に、図１８Ａは、サインサインインサービス１７２０が、入力装置１０によって提供されるサインデータに基づき、名前ＩＤ（例えば、サービスＩＤと組み合わされたローカルＩＤ）を調べるために使用し得る表１８９０を示す。ローカルＩＤはユーザと関連しても良く、サービスＩＤは装置ＩＤサービス１７１０と関連しても良い（図１７参照）。
【０１０３】
再び図１７を参照する。サインによるサインインサービス１７２０は、ユーザ装置ＩＤ及び名前ＩＤ（例えば、ローカルＩＤにサービスＩＤを加えたもの）を装置ＩＤサービス１７１０に送信する。図１８Ｂは、他の識別子に基づき基準装置ＩＤ（例えば、スタイラスＩＤ）を調べるために使用され得る表の説明図である。特に、図１８Ｂは、サインによるサインインサービス１７２０によって提供される名前ＩＤに対応する基準装置ＩＤを調べるために装置ＩＤサービス１７１０が使用し得る表１８９２を示す。表項目中の基準装置ＩＤがサインによるサインインサービス１７２０によって送信されるユーザ装置ＩＤと照合するならば、装置ＩＤサービス１７１０は、入力装置１０に認証情報を返信し得る。図１７に示す例において、認証情報は、「成功」又は「失敗」の認証結果を含む。成功／失敗の結果に加えて、この例において伝送される認証情報は、（例えば、「成功」の場合に）ログイン処理を完了するために必要とされ得るユーザＩＤ及びパスワードを含み得る。
【０１０４】
図１９Ａは、適切に構成されたコンピューティングシステムにおけるもう１つの説明に役立つ手書きに基づくユーザ認証方法の図である。この例において、ユーザ認証方法は、「Ｂｏｏｋ＋」と呼ばれるソーシャルネットワークサービスにアクセスを提供されるために使用されるログイン処理である。しかしながら、他のサービスにも同様にアクセスし得る。
【０１０５】
図１９Ａに示すように、手書き入力装置１０は、（例えば、ブラウザアプリケーションを使用してサービスと関連したウェブサイトにナビゲートすることによって、又はサービスと関連した専用のアプリケーションを起動することによって）サービスと関連したログイン処理を起動する。装置１０は、ペン／スタイラス装置（図示せず）によってサインするユーザに応答して生成できる（例えばサイン区域１９０２の）サインデータを捕捉する。装置１０は、検証すべき試験サインデータとしてサインデータを送信する。試験サインデータは、装置１０及び／又はペン／スタイラス装置に関連した装置ＩＤ、及びネットワーク２０（例えば、インターネット）を通じたサインサインインサービス１９２０に対するサービスに関連したサービスＩＤ（例えば、「Ｂｏｏｋ＋」）と共に送信される。
【０１０６】
図１９Ａに示す例において、サインサインインサービス１９２０は、（例えば、本明細書に記載された技術又は他の技術により、試験サインデータを基準サインデータと比較することによって、）試験サインデータを検証し、かつ検証結果に少なくとも部分的に基づき、認証情報（例えば、ユーザＩＤ及びパスワード情報）を得る。サインによるサインインサービス１９２０は、装置１０によって提供される複数項目のユーザ入力（例えば、ユーザＩＤ及びパスワード）を要求するよりもむしろ、一つのユーザ入力（サイン）を使用して、ユーザが認証されることを可能にする「ワンパス」サインインサービスとして実装される。
【０１０７】
図１９Ｂは、ユーザを認証するためのサインによるサインインサービス（例えば、サインインサービス１９２０）に提供され得る情報と、ユーザ認証が成功した場合に、サインによるサインインサービスから返送され得る認証情報（例えば、ユーザＩＤ及びパスワード）とを説明する表１９９０を示す。図１９Ｂに示す例において、ペン／装置ＩＤ、検証すべき試験サインと関連したサインデータ、及びサービスＩＤ（例えば、「Ｂｏｏｋ＋」）は、ユーザ装置（例えば、入力装置１０）から受信でき、かつサービスＩＤによって識別されるサービスに対してユーザ装置のユーザを認証するために使用され得る。
【０１０８】
再び図１９Ａを参照すると、サインによるサインインサービス１９２０は、データベース１９３０中でユーザと関連した１つ以上の基準サインを調べるために、装置ＩＤ及びサービスＩＤのような情報を使用する。サインによるサインインサービス１９２０は、次に手書き検証方法を使用して、入力装置１０によって提供されたサインデータが基準サインと一致するかを判定し得る。一旦ユーザがサインによるサインインサービス１９２０によって認証されると、サービス１９２０は、ユーザＩＤ及びパスワードを装置１０に伝送し得る。ユーザＩＤ及びパスワードは、次にログイン処理を完了するために使用され得る。例えば、装置１０は、ユーザ名（例えば、Ｅメールアドレス）及びパスワードをユーザインタフェース中の適切なフィールドに自動的に記入できる。
【０１０９】
実際には、サインによるサインインサービス（例えば、サインによるサインインサービス１９２０）によってユーザが確実に認証されることを可能にする情報のいかなるコレクションも、ユーザ認証のために使用され得る。データベース（例えば、データベース１９３０）中で特定のユーザを調べるために使用できる特定の情報は、サインによるサインインサービスに伝送される情報、データベース内に記憶される情報、及びデータベースが設計される方法のような因子に応じて異なり得る。
【０１１０】
セキュリティのため、手書き検証に関しかつユーザ認証処理に関連するすべての情報（例えば、手書きデータ、装置識別子、サービス識別子、認証情報等）は、（例えば、対称（例えば、共有秘密鍵）又は非対称（例えば、公開鍵）の暗号化を使用して）暗号化され得る。暗号化された情報は、更なる処理が下層の情報に関して実行される前に復号され得る。例えば、暗号化試験サインデータは、試験サインデータを基準サインデータと比較する前に復号され得る。
【０１１１】
ＩＩ．手書きデータ生成及び保存
本開示の幾つかの実施態様は、電子手書きデータを生成及び保存する方法を対象とする。幾つかの記載された実施態様において、未加工の電子手書きデータはデジタイザによって生成され、未加工のデータは１以上のストリームを含むストリームフォーマットに変換される。手書きデータのフォーマットは未加工であるときのフォーマットと異なるフォーマットに変更されるけれども、ストリームフォーマットは、データ損失を伴うことがあるデータ処理（例えば、画像として表示するために手書きデータをピクセルなどの標準単位でレンダリングする処理）を行う一方で、無損失性（可逆）データ処理技術を用いることにより、未加工の手書きデータのオリジナルの内容を保存する。
【０１１２】
未加工の手書きデータのオリジナルの内容は種々のデータフォーマットで保存でき、使用されるフォーマットは、データに対して実行される処理の性質を含む各種の要素に応じて変化し得る。いくつかの実施態様においては、複数の利点を有する手書きデータフォーマットが使用される。利点とはすなわち、データ損失のいかなる危険もなく法的な証拠データとして使用できるように、いかなる方法によっても変更することなくオリジナルのデータを保存すること、オリジナルのデータが共通に理解され得るメトリックス系に変換され得るよう、生成元の装置についての十分な情報を含むこと、すべての装置の機能がサポートされ得るように柔軟でありかつ拡張可能であること、ストレージ及び伝送オーバヘッドを最小限に抑えるために最適にコンパクトであること、いかなるタイプのハードウェア上でも取扱えるようにバイナリレベルでは装置依存性を有すること、である。
【０１１３】
いくつかのケースでは、手書きデータは、手書きデータが他の方法で保存されなかったならばデータ損失をもたらす他のフォーマット（例えば、ディスプレイ用の標準単位へのレンダリングのためのストロークデータフォーマット）への変換をも可能にしながら、データ損失なしの複数のフォーマットに変換され得る。無損失性（可逆）圧縮技術は、全ての所望の手書きデータが保存されることを可能にしながら、ストレージ及び伝送帯域幅の要求を減少させるために使用できる。
【０１１４】
本開示の幾つかの実施態様は、適切に構成されたデコーダによって復号化される時に、画像の内容と関連することが多いが画像からは分離した情報を提供するデジタル画像に、データ（例えば、電子手書きデータ）を挿入することを対象とする。記載される実施形態では、未加工の電子手書きデータのオリジナルの内容がストリームデータに変換され、かつそのストリームデータが、画像が表示される時には一般に人間の観察者に気が付かれ得ない方法でデジタル画像（例えば、手書きサインのレンダリングを含むデジタル画像）に挿入される。従って画像品質の顕著な劣化なしに、かつ追加のコンテナファイルの要求なしに、未加工の手書きデータのオリジナルの内容が保存されることを可能にする。かかる実施態様において、手書きの入力中に得られる手書きデータは、将来のレンダリング、認証又は他の処理のために保存され得る。
【０１１５】
記載された幾つかの実施態様において、未加工の電子手書きデータのオリジナルの内容（例えば、対応するデジタイザに関して電子ペンの動きによって生成された高品質ペンデータ）が保存される。例えば、有用なシナリオの一例においては、電子手書きデータは、手書き自体の画像を表す画素データを含むデジタル画像中に保存される。電子手書きデータは、１つ以上のセンサ（例えば、ペン装置及び／又はデジタイザ内のセンサ）によって収集され、（例えば、サインの一部として）１つ以上のペンストロークとしてレンダリング及び表示され得るストロークデータに変換される。一方、オリジナルの手書きデータはまた、データ損失を回避するために保存される。記載される実施形態では、オリジナルの手書きデータは、広い範囲のアプリケーション、プラットフォーム、及び技術にわたる汎用性を有する手書きデータを分配し、分析し、及びレンダリングすることに適した符号化バイナリフォーマットに変換され得るストリームフォーマットの形式で保存される。
【０１１６】
手書きサインが紙上になされる時、インクペンはサインを形成するインクの連続した跡を残す。これと同様に、デジタル化された手書きサインは、一般に一定の時間間隔で測定される離散データ点の集合を含む。
【０１１７】
記載された実施態様において、デジタイザ（例えばサインタブレット装置）などの位置入力装置は、電子ペンの位置を所定のサンプリング間隔で記録し、各点でｘ（水平）位置及びｙ（垂直）位置を測定することによって機能する。例えば、電磁共鳴技術を使用するシステムにおいて、デジタイザは、ペンの動きを検出するセンサボードを組み込む。エネルギーは、センサボード表面により生成された磁場によってペンの共振回路内に誘導される。ペンの共振回路は、次にこのエネルギーを使用して磁気信号をセンサボード表面に返信する。ボードは、電子ペンがセンサボード表面に触れなくても、ペンがセンサボードの十分に近接した中に留まる限り、ペンの座標位置を一定の時間間隔で検出し、その結果信号は、なおもペンから受信され得る（有効な信号範囲は、使用される特定の技術によって異なり得るが、一般的に約数ミリメートルである）。
【０１１８】
他にも他の手書き入力技術を使用することもできる。例えば、電子ペンは、他のワイヤレス技術を使用できるし、ワイヤによってデジタイザに接続されていてもよい。他の例として、電子ペンは、デジタイザの表面から離れて検出可能であっても良いか、又は検出可能でなくても良い。もう１つの例として、電子ペンは、アクティブであるか又はパッシブであっても良い。アクティブペンは、ワイヤを介して、又は搭載電池を介して電力を受けても良い。もう１つの例として、電子ペンなしで（例えば、感圧デジタルライティングパッド、タッチスクリーン、又は電子ペンを必要としない他の入力装置上のスタイラスを介して）手書きデータを入力することも可能である。
【０１１９】
電子手書きのストロークをレンダリング及び表示するプロセスは、典型的には、ディスプレイ上にストロークを表示するためにディスプレイ中のいずれの画素を制御するべきか判定するために、電子手書きデータを分析することを伴う。ストロークを視覚的に表すために使用される画素は、時にストロークの「インク」と称される。表示のためにストロークをレンダリングするプロセスは、インクエンジンと呼ばれる構成によって取り扱われる。インクエンジンは、ストロークの形状及び位置をレンダリングするためにペン位置データを使用することに加えて、インクの濃さを判定するために他の手書き属性（例えば、圧力）の測定を使用することができる。
【０１２０】
いくつかのシナリオでは、未加工の手書きデータを（例えば、レンダリング及び表示のためにインクエンジンによって使用された後に）廃棄することを容認できる。未加工のデータを廃棄することは、保存されるデータのサイズに関していくらかの効率を提供する。しかしながら、インクエンジンによる未加工データの変換は、データ損失を伴う。例えば、高解像度の未加工の手書きデータが低解像度のディスプレイ用の標準単位へのレンダリングのために変換されるならば、多くのデータは、他に保存されないならば失われることがある。未加工のデータが何らかの形で保存されないならば、認証目的で手書きデータを分析する能力や、様々なレンダリング特性を有するインクエンジンにおいて手書きデータを利用する能力といった、多くの利点が失われ得る。
【０１２１】
それ故に、実施態様によれば、電子手書きデータのオリジナルの内容は保存される。手書きデータは、必要に応じて、望ましくないデータの損失をすることなく、インクエンジンによって標準単位に変換され得る。ペンの位置（例えば、ｘ座標及びｙ座標）は、（使用されるセンサのタイプに応じて異なっていても良い）オリジナルのセンサ測定単位で記憶されても良く、かつ入力装置の特性も、異なる単位への変換を可能にするために記録されても良い。例えば、ｘ、ｙ位置情報は、各軸のスケール及び方向に関する情報が含まれるならば、ネイティブセンサ単位から従来の単位へ（原点からのミリメートルオフセットのように）変換され得る。
【０１２２】
特に、デジタル画像に手書きデータを記録及び記憶するための技術及びツールが提供される。このように記憶された手書きデータは、様々なソフトウェアアプリケーション、プラットフォーム及び装置にわたって可搬性を有して使用される。
【０１２３】
本明細書に記載された例のいずれかにおいて、手書きデータは、例えばワードサイズ（例えば、１６ビット、３２ビット等）、エンディアン特性（例えば、リトルエンディアン、ビッグエンディアン）、浮動小数点サポートの点で様々な要件を有することがある種々の装置及びプラットフォームにわたる可搬性のために設計された形状で保存され得る。更に本明細書に記載された例のいずれでも、既存のソフトウェアに影響を及ぼさずに保存される情報の範囲（種別）を拡張することが可能である。少なくとも幾つかの実施態様において、ソフトウェアが自己が解釈できないストリームタイプを安全に無視することを可能にするストリームデータ構造が使用される。本明細書に記載された原則を使用して、効率的に、かつ予期しない結果なしに、新規又は再度設計されたセンサによって収集される情報のような、最新タイプの情報を欠くことがある古いデータを取り扱う後方互換性を有する新規なアプリケーションが設計でき、長年にわたって記憶される必要があるサインされた文書にとって好適である。
【０１２４】
図２０は、少なくとも１つの記載された実施態様により統合手書きデータを生成するシステム２０１０の概念図である。図２０に示すように、入力装置２０２０（例えば、電子ペン及び対応するデジタイザ（例えば、サインパッド装置）、又は手書き入力に使用できるタッチパッド装置のようなその他の入力装置）は、装置入力データ２０３０を生成し、通信リンク（例えば、ＵＳＢ接続）を通してコンピュータ２０４０に伝送する。装置入力データ２０３０は、コンピュータ２０４０上で動く装置依存性デバイスドライバ２０５０によって処理される。デバイスドライバ２０５０は、未加工の電子手書きデータを生成する。
【０１２５】
図２０に示した例において、ペン装置及びデジタイザは、手書き入力を提供するために使用される。デジタイザは、専用の手書き入力装置、又は適切に構成されたスマートフォン又はタブレットコンピュータのような汎用装置を用いて実装できる。ペン装置及び／又はデジタイザ内のセンサは、ペン位置を検出しかつ筆圧などの圧力情報のような追加の情報も検出できる。少なくとも１つの実施態様において、デバイスドライバ２０５０は、座標情報、圧力情報及びタイミング情報を含む未加工の手書きデータを生成する。
【０１２６】
手書きデータは、サインプロセス中に一定の間隔で収集されるペンイベント情報、装置情報、及び／又はサインがなされた状況に関する状況情報を含んでも良い。ペンイベント情報は、デジタイザ表面上のペン先のｘ、ｙ位置と、サイン開始からの時間とを含む。更に、ペンイベント情報は、圧力（ペンの力）、角度（方位角、高度、及び／又は回転）及びペンダウン状態のような、入力装置２０２０の機能次第の追加の情報を任意に含んでも良い。装置情報は、デジタイザ単位から実世界の単位に変換するために必要な情報を含んでも良い。状況情報は、サインする人の氏名、サインの日時、サインの理由、ホスト装置上で使用されるオペレーティングシステムのタイプ及びバージョン、デジタイザのタイプ、デジタイザ装置ドライバのバージョン、ホスト装置のネットワークインタフェースコントローラ（ＮＩＣ）アドレスから取られる一意ＩＤ、暗号ハッシュ機能が使用されるならば、ハッシュ機能のタイプに関する情報、及び／又は捕捉時にソフトウェアアプリケーションによって追加できる補足データを含んでも良い。状況情報は、暗号メッセージダイジェストのようなサインされる文書に関する情報も含んでも良い。
【０１２７】
図２０に示す例において、手書きデータ処理部２１００Ａは、入力として未加工の手書きデータを受信し、かつ出力として統合手書きデータを生成する。統合手書きデータを生成する方法、並びに統合手書きデータの内容は、以下で更に詳細に記載するように、状況及び実装に応じて異なることがある。
【０１２８】
図２１Ａは、図２０に示す手書きデータ処理部２１００Ａの実施態様の機能ブロック図である。図２１Ａに示す例において、手書きデータ処理部２１００Ａは、入力取扱部１０１と、ストリーム生成部２００と、損失性（非可逆）データ処理部３００と、統合部４００とを含む。入力取扱部１０１は、例えばストリーム生成部２００及び損失性（非可逆）データ処理部３００による更なる処理のために、未加工の手書きデータを転送することに関与する。
【０１２９】
図２１Ａに示す例において、ストリーム生成部２００は、入力として未加工の手書きデータを受信し、かつストリームデータ（図２１Ａで「ＦＩＲＳＴ＿ＣＯＮＶ＿ＤＡＴＡ」という標識を付される）を生成する。例えば、ストリーム生成部２００は、ヘッダ情報と共に、ｘ座標、ｙ座標に関する個別のストリーム、及び圧力情報を提供できる。（幾つかの実施態様において、特定のペンイベントに関する時間情報は、既知のサンプリングレートに基づき計算でき、かつ独自のストリームに記憶される、又は各ペンイベントに関して信号を送られる必要がない。）少なくとも１つの実施態様において、ストリーム生成部２００は、無損失性（可逆）符号化技術を使用して、複数のストリームを含む圧縮ストリームデータを生成する。
【０１３０】
損失性（非可逆）データ処理部３００も、入力として未加工の手書きデータを受信する。損失性（非可逆）データ処理部３００は、（手書きを画像としてレンダリングするために使用され得る）ストロークデータ及び／又は画像データ（例えば、ＰＮＧフォーマット又は他の画像データフォーマットでの画像データ）を生成する。少なくとも１つの実施態様において、損失性（非可逆）データ処理部３００は、損失性（非可逆）データ処理技術（すなわち、データ損失を伴うことがある技術）を使用して、ストロークデータ及び／又は画像データを生成する。例えば、損失性（非可逆）データ処理部３００は、表示のために手書きをレンダリングするために必要になることがある、データフォーマット及び処理をするように構成されたインクエンジンを含んでも良い。例えば、インクエンジンは、手書き（例えば、サイン）の視覚的な表示を含む画像データを生成できる。
【０１３１】
ストロークデータ及び／又は画像データが、未加工の手書きデータに基づいて生成される図２１Ａに示した構成の代わりに、かかるデータは、符号化された手書きデータに基づいても生成され得る（図２１Ｂ参照）。図２１Ｂは、手書きデータ処理構成要素２１００Ｂのもう１つの実施態様の機能ブロック図である。図２１Ｂに示す例において、損失性（非可逆）データ処理部３００は、ストリーム生成部２００によって提供される符号化データ（「ＦＩＲＳＴ＿ＣＯＮＶ＿ＤＡＴＡ」）に基づき、出力（「ＳＥＣＯＮＤ＿ＣＯＮＶ＿ＤＡＴＡ」）を生成する。
【０１３２】
図２１Ａ及び図２１Ｂに示すように、統合部４００は、ストリームデータ、及びストローク及び／又は画像データを入力として受信し、統合手書きデータを出力する。統合部４００は、ストリームデータ及びストローク／画像データを単一の出力ファイル（例えば、画像ファイル）で出力するか、又はストリームデータ及び／又はストローク／画像データを選択的に出力することができる。少なくとも１つの実施態様において、画像データは、符号化ストリームデータと組み合わせて、統合データ（例えば、符号化バイナリデータがステガノグラフィック技術により挿入されたデジタル画像）を形成できる。統合部４００がいかにして機能するかの詳細は、以下で更に詳細に記載するように実装に応じて異なっていても良い。
【０１３３】
図２０、図２１Ａ及び図２１Ｂに示す構成は、例に過ぎず、他の多くの構成が可能である。本明細書に記載されたデータ（例えば、未加工データ、ストリームデータ、ストロークデータ、画像データ及び統合データ）及び本明細書に記載された手書きデータ処理モジュールは、様々な方法で記憶及び実装されても良い。例えば、データ及び処理モジュールは、デジタイザ内、（ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）のような）他の何らかの装置内で記憶及び実装するか、又は幾つかの装置の間で分配することができる。本明細書に記載されたデータは、（例えば、画像ファイルの形で）一方の装置から他方に伝送されても良いか、又は同じ装置内に記憶及び／又は処理されても良い。例えば、パーソナルコンピュータにおいて、ストリームデータは、画像データと組み合わされ、統合データに変換され、かつパーソナルコンピュータ内でデジタル画像ファイルに記憶されても良い。
【０１３４】
図２１Ｃ及び図２１Ｄは、記載された実施態様により使用され得る、説明に役立つクラウドコンピューティング配列の図である。図２１Ｃ及び図２１Ｄは、手書きデータ処理部２１００Ａが、単一のコンピュータ２０４０上に実装されて示される図２０に示す構成の説明に役立つ代案を提供する。
【０１３５】
図２１Ｃに示す例において、入力装置２０２０は、未加工の手書きデータを手書きデータ処理部２１００Ｃにネットワーク２１１０を通じて伝送する。特に、未加工の手書きデータは、入力取扱サーバ２１０１により受信され、入力取扱サーバ２１０１は、未加工の手書きデータをストリーム生成サーバ２１０２、及びストローク及び／又は画像データ処理サーバ２１０３に伝送する。サーバ２１０２及び２１０３は、統合サーバ及びデータストレージ２１０４に伝送される、それぞれストリームデータ、及びストローク及び／又は画像データを生成する。
【０１３６】
図２１Ｄに示す例において、様々なアプリケーション（例えば、アプリケーション２１８０及び２１９０）が、様々な装置から様々なタイプの情報を得ることができる。例えば、損失性（非可逆）画像データは、サーバ２１０３から得ることができ、かつ統合データ（例えば、損失性（非可逆）画像データ１及び無損失性（可逆）符号化手書きデータを含むデジタル画像）は、統合サーバ及びデータストレージ２１０４から得ることができる。実際には、アプリケーション２１８０及び２１９０は、異なるコンピューティング装置、又は同じコンピューティング装置上で動いても良い。
【０１３７】
再び図２１Ａ及び図２１Ｂを参照すると、図２１Ｃ及び図２１Ｄに示したサーバは、それぞれストリーム生成部２００、損失性（非可逆）データ処理部３００、及び統合部４００のようなソフトウェアを実行する別個のコンピュータとして実装されても良い。
【０１３８】
再び図２１Ｄを参照すると、アプリケーション２１８０及び２１９０は、損失性（非可逆）又は無損失性（可逆）符号化データを復号化するように構成されたデコーダを含んでも良いか、又はアプリケーションは、損失性（非可逆）又は無損失性（可逆）符号化データを復号化するように構成された他のアプリケーション又は装置に符号化データを伝送しても良い。アプリケーション２１８０及び２１９０は、図２１Ｄでクラウドコンピューティング構成内に示されるが、かかるアプリケーション及びデコーダは、他の構成により情報を得て、かつ処理しても良い。
【０１３９】
図２２及び図２３は、ペンアップ点２２０２及びペンダウン点２２０４が示される、電磁共鳴技術を使用するシステムによって検出された、それぞれ手書きサイン２２００Ａとアート図面２２００Ｂとを含む電子手書きの座標位置の説明図である。位置は、一定の間隔で検出されるので、電子手書き２２００Ａ及び２２００Ｂにおける点の間の大きい間隔は、ペンが速く動くサインの部分を示し、かつ狭い間隔は、ペンがゆっくり動く部分を示す。尚、図２２及び図２３に示すように、座標はペンアップ点２２０２とその後のペンダウン点２２０４との間で検出され続ける可能性がある点留意されたい。すなわち、ペンが信号範囲内に留まるならば、ペンがデジタイザの表面から持ち上げられる時、座標は検出され続ける。図２３で、ペンが（例えば、ペンアップ点２２０２と、その後のペンダウン点２２０４との間で）上げられる時に検出された座標は、明るい点で示され、かつペンが（例えば、ペンダウン点２２０４と、その後のペンアップ点２２０２との間で）下げられる間に検出された座標は、暗い点で示される。ボード（又は他の何らかのセンサ）は、ペン角度、筆記速度、筆記圧力等のような他の情報も検出しても良い。
【０１４０】
本明細書に記載された実施態様によれば、手書きは、手書きサイン（図２２参照）、又は印刷文字若しくはアート図面（図２３参照）のような他のタイプの手書きであっても良い。手書きの所与のストロークの未加工の手書きデータは、ストロークが分析されかつ表示されることを可能にする情報（例えば、ｘ座標、ｙ座標等）を含む。他のペン関連手書きデータは、圧力データ（例えば、ペン先に加えられる力）、傾斜（ペンの胴部と垂直線の間の角度）、配向データ（ペン先からのペンの平面−方向）、及びねじれデータ（サイン中の胴部の回転）を含んでも良い。多くのデジタイザにおいて、サイン中の全ての点が、約数ミリ秒か、それ以上（例えば、１ミリ秒）の精度で記録される。タイミング情報は、ペンの動きの方向を観察し、かつ各位置での速度及び加速度を推測することを可能にする。従って、未加工の手書きデータは、多くの場合、サンプルレート及び／又はタイムスタンプのようなタイミング情報を含む。未加工の手書きデータは、以下で更に詳細に示すように、ペン装置又はデジタイザ自体に関する情報、状況情報（例えば、サインすべき書類の記載、サインの日時等）等のような手書きに関する他のデータも含んでも良い。
【０１４１】
記載された実施態様において、未加工の手書きデータは、ペンイベントのシーケンスとして表される（図２４参照）。概して、ペンイベントは、特定の時間の（例えば、デジタイザの表面上に、又はデジタイザの限定された範囲内にある間の）ペン先端の位置を含んでいる。装置の機能に応じて、ペンイベントに関連したペンデータは、筆圧及び角度のような追加の測定データ（属性）を含んでも良い。図２４は、手書きデータ処理部（例えば図２０の手書きデータ処理部２１００Ａ参照）に提供できる、ペンイベント及びかかるペンイベントのデータシーケンス順序１１０を表すために使用できるデータ構造例１０８の説明図である。図２４に示すように、データ構造２４０８は、「構造体」又は「クラス」型で実装され得る。あるいは、データ構造２４０８は、他の何らかの方法で実装され得る。記載された実施態様において、ペンイベントは、各イベントがデータシーケンス順序２４１０で起こる時に入力として提供される。ペンイベントは、記載された実施態様によりストリームフォーマットに（例えばストリーム生成部２００によって）変換される。
【０１４２】
少なくとも幾つかの実施態様において、手書きデータは、ペンダウン情報（すなわち、ペン先端が表面と接触する時に収集されるペンデータ）と、ペンアップ情報（すなわち、ペン先端が表面と接触しない時に収集されるペンデータ）を含むが、ジェスチャ情報と識別される情報を除外する。例えば、使用シナリオによっては、ペン装置は、手書き情報、及び（例えば、タップ、ドラグ、スクロール等のようなユーザインタフェース要素の種々の相互作用のための）ジェスチャ情報の入力のために使用できる。１つのシナリオ例において、ユーザは、指定区域内でペン装置によってサインし、かつ次に（チェックボックス、又は「ＯＫ」若しくは「完了」の標識が付されたボタンのような）ユーザインタフェース要素をタップするためにペン装置を使用して、サインが完結したことを示せる。かかるシナリオにおいて、サインに関する手書きデータは、保存でき、他方でチェックボックス又はボタンタップイベントデータは、廃棄できる。あるいは、もし希望するならば、ジェスチャデータをサインデータと共に保存できる。
【０１４３】
本明細書に記載された例のいずれにおいても、ペン装置及びデジタイザは、手書き入力を提供するために使用され得る。センサによって記録された情報は、未加工の手書きデータフォーマットで当初記憶されても良い。センサによって記録された情報は、ペン装置及び／又はデジタイザによって提供される追加情報（例えば、装置ＩＤ情報、サンプルレート情報等）を伴うことがある。未加工の手書きデータは、インクエンジンによる処理のためにストロークデータに変換され得る。（センサに特有の単位で記録されたデータの、画素又はミリメートルのような標準単位への変換を含むことがある）未加工のデータをストロークデータに変換するプロセスは、可逆性でなくても良い。例えば、少なくとも幾つかの実施態様において、未加工の手書きデータを標準単位に変換するプロセスは、データ損失をもたらし得る。しかし、同じ未加工の手書きデータはデータ損失なしにストリームデータに変換される。非圧縮ストリームデータは、データを損失することなく符号化（圧縮）ストリームデータ（例えば、画像ファイルでの符号化に適したフォーマットでのバイナリデータ）に変換され得る。本明細書に記載された実施態様によれば、符号化ストリームデータは、ペン装置及びデジタイザによって提供される手書き入力に対応する手書きの画像を例えば含むデジタル画像ファイル（図示せず）に挿入される。
【０１４４】
図２５は、未加工の手書きデータが、ストリーム適応エンコーダ２５４０に提供される非圧縮ストリームデータ（例えば、ヘッダ及び個別のストリーム）を生成するストリーム生成器２５２０によって処理されるストリーム生成部２００の説明に役立つ実施態様を示す。ストリーム適応エンコーダ２５４０は、幾つかのストリームに対して圧縮方法を選択的に適用でき、他方で他のストリームのデータは非圧縮のままで出力される。例えば、データ全体を圧縮のではなく、圧縮はストリーム毎に適用でき、その結果各ストリームタイプの形状を利用できる。少なくとも１つの実施態様において、比較的大量のデータを含むストリーム（例えば、ｘ座標ストリーム、ｙ座標ストリーム、圧力情報ストリーム、タイミング情報ストリーム、角度情報ストリーム）のみが圧縮される。全部のストリームではなく部分的に選択したストリームのみを圧縮する場合は、全ストリームを圧縮する場合に比して僅かに大きいデータサイズをもたらすことがあるが、圧縮処理の複雑さの軽減及び処理時間の点で利点を提供する。
【０１４５】
図２５に示す例において、ヘッダデータは、圧縮されずにストリーム適応エンコーダ２５４０を通過する一方、他方で（「ｓｔｒｅａｍＩＤ＃１」、「ｓｔｒｅａｍＩＤ＃２」...「ｓｔｒｅａｍＩＤ＃ｎ」とインデクスが付された）個別のストリームはｍストリーム適応エンコーダ２５４０によって圧縮される。ストリーム適応エンコーダ２５４０の出力は、ヘッダデータと圧縮ストリームとを含む。ストリーム適応エンコーダ２５４０は、デルタ符号化、ランレングス符号化、エントロピー符号化、又は何らかのビットパッキング方法のような無損失性（可逆）圧縮方法を個別に若しくは組み合わせて使用し、記録されるストリームデータのサイズを減少できる。使用される特定の符号化技術、及び利用可能な符号化技術から適応的に選択するプロセスは、後述するように、状況又は実装に応じて異なることがある。尚、圧縮処理は省略するとしてもよい。
【０１４６】
ストリームデータは様々の形状を取り得る。少なくとも幾つかの実施態様において、ストリームデータは、各々のストリームが複数のデータ（属性）のうち１つの（単一の）要素（属性）のデータを保持するストリーム（例えば、ｘ座標に関する１つのストリーム、ｙ座標に関する１つのストリーム等）から構成されるストリームのセットを含む。各々のストリームのストリームタイプ（すなわち、特定のストリームのデータ型）は、記憶されるデータに応じて異なり得る。可能なストリームタイプには、整数値（例えば、３２ビット符号付き又は符号なし（Ｕ３２）整数）、整数値対、浮動小数点値（例えば、３２ビット浮動小数点値）、ＵＴＦ（ＵＳＣ  Ｔｒａｎｓｆｏｒｍａｔｉｏｎ  Ｆｏｒｍａｔ）８又は他のテキスト値、又はかかる値の配列又はバッファを含むが、限定されない。例えば、ｘ座標ストリームは、整数配列の形を取り、他の情報については異なるストリームタイプが使用される。
【０１４７】
幾つかの実施態様において、２つのストリームを集合的に用いてある１つの特定タイプの測定値の情報を提供できる。例えば、一方のストリームは未加工のデータから得られたデータ（例えば、ｘ座標、ｙ座標）等であり、他方は、インクエンジンがこのデータを、出力する際に実際に用いる単位での値に変換するために供給される較正（又は計量）データである。少なくとも１つの実施態様において、ｘ座標ストリームは装置によって供給されるｘ座標値を含み、かつｘ座標計量ストリームはこれらのｘ座標値のスケール及び範囲に関する情報を含む。例えば、ｘ座標計量ストリームに含まれるデータは、値の取りうる範囲、スケール情報、及び符号変換情報（正負の符号等）を含み得る。
【０１４８】
図２６の表２６００は、ストリーム生成器２２０が出力する手書きデータの例を示している。表２６００はストリームデータの形式で出力されるが、表のうち行の各々は各々のペンイベントに対応するものである。表２６００で「Ｓｔｒｏｋｅ」のラベルを付された列は、ストロークＩＤ＝３のストリームのデータとして出力されるデータであって、このストリーム中のデータは手書きデータに含まれた複数のストロークのうち何番目のストロークに各行のペンイベントが関連するかを示すデータを提供するストリームになる（この例において、ストローク「０」は、対応するペンイベントが、複数のストロークのうち最初のストロークであることを示す）。表２６００で「Ｂｔｎ」の標識を付された列は、ストリームＩＤ＝４のストリームとして出力され、ペンが上がっている（０）か、又は下がっている（１）かを示すバイナリ値を提供するストリームである。表２６００で「Ｘ」及び「Ｙ」のラベルを付された列は、ストリームＩＤ＝１及びストリームＩＤ＝２のストリームとして出力され、かつそれぞれｘ座標及びｙ座標を提供するストリームとなる。表２６００で「Ｔｉ」のラベルを付された列は、タイミング情報を提供するストリームとなる。タイミング情報は、各行の個別のペンイベントのタイムスタンプを含んでも良い。しかしながら、図２６に示す例において、「Ｔｉ」のラベルの付された列は、最初の行の後は空白である。これは、デジタイザは一定の時間間隔（例えば、５ミリ秒毎）でペンイベントを収集するため、各ペンイベントの時間はサンプリングレートから推測されるので、ペンイベントごとの明示的タイムスタンプ情報の伝達を省略できるという典型的なシナリオを示している。表２６００で「Ｐ」のラベルを付された列は、ストリームＩＤ＝７のストリームとして出力され、かつ筆圧値を提供するストリームとなる。
【０１４９】
図２７は、ストリーム適応エンコーダ２５４０（図２５参照）によって実行される適応符号化ステップＳ２４０の例を示している。ステップＳ２４１でストリームＩＤが識別され、ストリームＩＤに基づき対応する符号化方法が選択される。例えば、ストリームＩＤ＝１、２又は７（例えば、ｘ座標、ｙ座標又は圧力値）について、第１符号化方法Ｓ２４２が選択され、ストリームＩＤ＝３又は４（例えば、ストロークＩＤ番号、又はペンが上がっているか、又は下がっているかを示す「Ｂｔｎ」値）について第２符号化方法Ｓ２４３が選択される。選択された符号化方法は、符号化すべきデータの値の特性を活用できる。例えば、第１符号化方法Ｓ２４２は、ｘ座標、ｙ座標及び圧力値の傾向として、頻繁に変化する値ではあるが以前のペンイベントの値に基づいてある程度予測可能な方法で変化されることを活用した符号化方法を利用できる。もう１つの例として、第２符号化方法Ｓ２４２は、ストロークＩＤ番号及び「Ｂｔｎ」値の傾向として低い頻度で変更される同じ値が長期にわたってて維持される性質を活用した符号化方法を選択することができる。
【０１５０】
図２７に示す例において、適切な符号化方法の選択は、ストリームＩＤに基づき各ストリームごとに行われ、全てのストリームについて処理が完了すると、ストリームデータ（ＦＩＲＳＴ＿ＣＯＮＶ＿ＤＡＴＡ）が、ステップＳ２４５で出力される。対応する符号化方法が存在しないストリームＩＤ、又はストリーム適応エンコーダ２５４０によって認識されないストリームＩＤは、省略又は廃棄できる。使用される特定の符号化方法、及び符号化のために選択される特定のデータは、実装に応じて異なり得る。図２７に示す例において、符号化方法Ｓ２４４は、本明細書に記載されたいかなる符号化技術も、又は他の符号化技術を含んでも良く、かつ本明細書に記載されたいかなるストリームも、又は他のストリームを符号化するために使用できる。
【０１５１】
第１符号化方法Ｓ２４２（図２７参照）の例が、図２８に示される。図２８に示す例において、ペンイベントに関連したｘ座標値が符号化されるが、但し他の値（例えば、ｙ座標値、圧力値）は、同様に符号化され得る。ステップ２４２Ａ−１で、現在のｘ座標値（指数ｋ）が、得られる。ステップ２４２Ａ−２で、デルタ値が、現在のｘ座標値から以前のｘ座標値を減算することによって算出される。（ステップ２４２Ａ−２は、現在のｘ座標値が、初期ペンイベント（ｋ＝０）に関連する場合のように、状況によって省略できる）。ステップ２４２Ａ−１及び２４２Ａ−２は、後続のペンイベントに関して繰り返される。このストリーム中の全ての値が処理された時、初期ペンイベント（ｋ＝０）の初期ｘ座標値が、後続のペンイベント（ｋ＝１...ｎ）のデルタ値と共にステップ２４２Ａ−３で符号化される。例として、ステップ２４２Ａ−３の符号化は、デルタ値のランレングス符号化又はエントロピー符号化を含む。初期値及びデルタ値を符号化する特定の技術は、実装に応じて異なっても良い。
【０１５２】
少なくとも１つの実施態様において、ｘ座標を記憶するために例えば符号なし３２ビット整数（Ｕ３２）配列のストリームが使用され、次の手続きがデータを記憶する時に使用される。
１．値は、初期値及び残りにデルタ値のセットが続く配列として記憶される。
２．デルタ値は、ランレングス符号化される。必要があるデルタ値の最大値が導出され、かつ次に繰り返し回数の最大値が導出される。
３．データは、次に（ａ）点の数（３２ｖ型の値で保持）、（ｂ）第１値（３２ｖ型の値で保持）、（ｃ）最大デルタ値を記憶するために必要なビット数（８ビット値で保持）、及び（ｄ）最大ランレングス値を記憶するために必要なビット数（８ビット値で保持）の形式で出力される。この状況において、「３２ｖ」は、サイズ３２ビットまでの可変ビット数で値を記憶する方法を指し、実際に値を保持するために必要なバイト数のみを使用する。従って、３２ｖ値は、可変長符号化データの値の１つの例であり、特に可変数のバイトを有する値（可変バイト値）である。図２９Ａは３２ｖ符号化技術の例が示される。図２９Ａに示すように、３２ｖ値において、各バイトは保持する必要のある値の７ビットを記憶するために使用される。第１の７ビットは、符号ビットがセット（１）された第１バイト中に記憶される。この処理は、全ての非ゼロビットが記憶されるまで繰り返される。最終バイトは、符号ビットがクリア（０）されることによって示される。例として、図２９Ｂに示すプロセスにおいて、整数Ｖは、ステップ２９１０で得られる。ステップ２９２０で、Ｖは、１６進数値０ｘ７Ｆと比較される。Ｖが１６進数値０ｘ７Ｆよりも大きいならば、ステップ２９４０でＶのＬＳＢから７ビットは、符号ビットをセット（１）した１バイト中に保持されこの７ビット分右シフト処理が、行われる。ステップ２９２０、２９４０、２９５０は、Ｖが０ｘ７Ｆ以下になるまで繰り返され、その時点でＶの最終バイトは、ステップ２９３０で符号ビットがクリア（０）される。再び図２９Ａに示す例を参照すると、２バイト値の第２バイトは、クリアされた符号ビットを有し、他方でｎバイト値のｎ番目のバイトは符号ビットを有する。３２ｖ値をロードする際は、各々のバイトが順に読まれ、符号ビットがクリアされていることにより示される最終バイトまで、ＬＳＢから７ビットそれぞれ抽出される。
４．このように、必要に応じてランレングス符号化を施した上、デルタ値のフルセットがビット列の集合としてパックされたバイナリブロブとして記憶される（バイナリブロブは、以下で更に詳細に記載する）。
【０１５３】
少なくとも幾つかの実施態様において、いずれのストリームタイプのストリームデータも一様にビット列に変換されたエクスポートデータに変換でき、このようにして得られるバイナリデータは、符号化バイナリ手書きデータ又は「バイナリブロブ」とも称される。ストリーム群に対応する部分のバイナリブロブは、１以上のストリーム又はエクスポートデータに関連したヘッダ情報（例えばフォーマット及び／又はバージョン情報、ストリーム数等）のような他のバイナリ情報と共に、単一の実体データの中に組み合わせることができる。手書きサインの状況においてこの単一の実体は「サインブロブ」とも称される。アプリケーションは、サインブロブ中のバイナリ情報を直接扱っても良いし、又はバイナリ情報は、例えば、Ｂａｓｅ−１６又はＢａｓｅ−６４のように異なるフォーマットで変換されても良い。
【０１５４】
図３０は、３つのストリームと、ストリームの総数を示すヘッダ情報とを含むデータ構造例３０００の図である。データ構造３０００は、バイナリブロブ、又は符号化バイナリデータの一例である。データ構造３０００は、本明細書に記載した実施態様により、ストリームエンコーダ（例えば、図２５のストリーム適応エンコーダ２５４０）から出力できる。
【０１５５】
図２５に示すように、少なくとも１つの実施態様において、ユニークな整数の識別子（例えば、ｘ座標に関してＩＤ＝１、ｙ座標に関してＩＤ＝２、ｘ座標計量に関してＩＤ＝３、等）が各ストリームに割り当てられる。ストリームＩＤの値は、１の主体によって定義及び決定できる。ストリームＩＤ値は、特定のストリームタイプと関連付けられても良く、所与のストリームに関するストリームタイプが明示的な情報送信がされずにストリームＩＤから判定されることを可能にする。識別される個々のストリームは、同じストリームタイプであっても良い。例えば、ｘ座標及びｙ座標ストリームは異なるストリーム識別子を有するが、両方とも整数配列であって良い。ストリームは、ストリーム中に含まれるペイロードデータ（例えば、ｘ座標ストリーム中の実際のｘ座標に対応するデータ）のバイト数を示す長さフィールドのような追加の情報も含んでも良い。
【０１５６】
図３０を左上から右下に見ると示されるように、データ構造３０００は、サインブロブ中のストリームの総数を示すフィールドを含み、その後に個別のストリームに対応するデータ（例えば、ストリームＩＤ、バイトでのペイロードデータの長さ、及びペイロードデータ自体）が続く。各ストリームは、ストリームＩＤ、含まれるバイナリペイロードデータの長さ、及びペイロードデータ自体を順にリードすることによって、シーケンシャルにリードされる。ストリームＩＤが認識されると、ペイロードデータは、適切なデータハンドラを利用して適切なフォーマットに変換可能になる。（ストリームＩＤ３、４、５及び６が省略されている図３０に説明するように、全てのストリームＩＤのストリームが存在する必要はない）。ストリームＩＤが認識できないものならば（例えば、古いデコーダが、新規に定義されたデータストリームを認識しない場合）、ストリームは、他のストリームの認識に悪影響を与えることなく廃棄でき、かつ次のストリームが順番で処理される。
【０１５７】
以上に説明したように、（例えば、符号化バイナリ手書きデータを含む）本明細書に記載されたデータを符号化するために使用される特定の符号化技術、及び利用可能な符号化技術から適応的に選択するプロセスは、実装に応じて異なり得る。この節において、代替的な符号化技術は、図３１〜図４４を参照して記載される。
【０１５８】
幾つかの実施態様において、エントロピー符号化を使用する可変長符号化方法は、幾つかのデータタイプの圧縮効率の点で好ましい。更に、幾つかの実施態様において、幾つかの値（例えば、ｘ座標、ｙ座標、及び圧力値）を符号化するために予測符号化が使用される。本明細書に記載された例において、予測符号化は、予測残差、すなわち予測値と実際の値との差、を算出することを伴う。予測値は、以前に得られたデータに基づいて得られる。エンコーダにおいて、以前に得られたデータは、メモリに記憶されても良い。デコーダにおいて、以前に得られたデータは、直近に復号化されたデータであっても良い。予測符号化は、手書き操作の動きが、以前の動きの方向及び速度に類似する方向及び速度で継続する傾向があるという知見に基づいている。デルタ値の符号化のように、予測残差が符号化される。
【０１５９】
第１符号化方法Ｓ２４２（図２８参照）の他の例によるフロー図を、図３１に示す。図３１に示す例において、ペンイベントに関連しｘ座標値が符号化されるとしているが、他の値（例えば、ｙ座標値、圧力値）も同様に符号化される。図３１の符号化方法が適用される時、（例えば、図２０の手書きデータ処理部２１００Ａで）次のステップが実行される。ステップ２４２Ｂ−１で、現在のｘ座標値（指数ｋ）が得られる。ステップ２４２Ｂ−２で、現在のｘ座標値（指数ｋ）の予測値が、以前に得られたデータに基づき算出される。例えば、予測値は、２つの復号値（例えば、Ｘ［ｋ−２］及びＸ［ｋ−１］）から第３点への線形予測法によって導き出せる。ステップ２４２Ｂ−３で、予測残差値は、現在のｘ座標値から予測値を減算することによって算出される。この例において、予測残差は、（ｉ）予測されたｘ座標位置と、実際に取得されたｘ座標位置との間の差である（ステップ２４２Ｂ−２及び２４２Ｂ−３は、現在のｘ座標値が、初期ペンイベント（ｋ＝０）に関連し、かつ以前得られたデータが予測値を計算するために利用できない場合のような例外の部分は省略できる）。ステップ２４２Ｂ−１、２４２Ｂ−２及び２４２Ｂ−３は、後続のペンイベントに関して繰り返される。このストリーム中の全ての値が、処理された時、初期ペンイベント（ｋ＝０）の初期ｘ座標値が、後続のペンイベント（ｋ＝１...ｎ）の予測残差と共にステップ２４２Ａ−４で符号化される。初期値及び予測残差を符号化する特定の技術は、以下で更に詳細に説明するように、実装に応じて異なっても良い。
【０１６０】
図３２は、変形例である図３１に示す第１符号化方法Ｓ２４２Ｂにおいて実行される予測残差計算の例を説明する図である。図３２に示す例では、ペンイベントに関連してｘ座標値が予測されとしているが、他の値（例えば、ｙ座標値、圧力値）も同様に予測され得る。現在のｘ座標値の予測値（Ｘ［ｋ］＝＋２６）は、以前得られたデータに基づき算出される。この例において、予測値（Ｐｒｅｄｉｃｔｅｄ＿Ｘ［ｋ］）は、２つの以前に得られたｘ座標値（Ｘ［ｋ−２］及びＸ［ｋ−１］）の値に基づき算出される。特に、予測値（＋２５）は、以下に示すように、Ｘ［ｋ−２］と、Ｘ［ｋ−１］との間の差を、Ｘ［ｋ−１］の値に加えることによって算出される。
【数７】
0005841297.tif 000008
【０１６１】
予測残差値（＋１）は、以下に示すように、現在のｘ座標値から予測値を引くことによって算出される。
【数８】
0005841297.tif 000009
【０１６２】
図３３は、ｘ座標値の例と、それに付随するデルタ値、予測値及び予測残差を示す図である。図３３において、第１行の値（Ｘ［０...］）は、実際のｘ座標を表し、第２行（ｄｅｌｔａ＿Ｘ［１...］）は、デルタ値を表し、第３行（Ｐｒｅｄｉｃｔｅｄ＿Ｘ［２...］）は、予測値を表し、かつ第４行（Ｐｒｅｄｉｃｔｉｏｎ  Ｒｅｓｉｄｕａｌ［２...］）は、予測残差値を表す。図３３に示す例において、ｘ座標値（第１行）は、初期値１５から増加していき、およそ５０で変化率が大幅に減速する。図３４は、図３３に示すデルタ値及び予測残差の頻度を示すヒストグラムである。多くの場合、図３４に示すように、予測残差の絶対値は、デルタ値の絶対値よりも平均して小さくなる。更に、予測残差のヒストグラムは、１個のピーク（例えば、０付近の小さい絶対値）に集中するが、他方でデルタ値の頻度は、複数個のピーク（例えば、＋５付近に１つのピーク、０付近に１つのピーク）を生じてしまう。
【０１６３】
図３５及び図３６の表３５００及び３６００は、手書きサインについての９９個のサンプルの実験結果がそれぞれ示される。手書きサインについての９９個のサンプルの実験結果は、絶対値の小さいｘ座標予測残差及び圧力値予測残差の方が、絶対値の大きいｘ座標予測残差及び圧力値予測残差に比して頻度が多い傾向にあることを示す。図３５に示されるヒストグラム３５１０は、ｘ座標値の予測残差の頻度が、単一のピーク（例えば、小さい絶対値又は０）に集中し得るが、他方でデルタ値の頻度は、複数のピーク（例えば、−１０付近に１つのピーク、＋１０付近に１つのピーク、及び０付近に１つのピーク）を有し得ることを示す。図３６に示されるヒストグラム３６１０は、予測残差及び圧力値の頻度が、両者共単一のピーク（例えば、小さい絶対値又は０）に集中し得ることを示す。全体として、ヒストグラム３５１０及び３６１０は、圧力値及びｘ座標値に関して、予測残差値が、０が０に近い値である可能性が高いことを示している。適切な符号化方法を使用することによって、これら絶対値の小さい値を少ないビット数のビットで符号化することが可能である。
【０１６４】
図３７は、デルタ値又は予測残差のような値を符号化するために使用され得る可変長符号化方法例を示す表３７００を示す。表３７００は、符号化される値と、ビットストリングとの対応を示すマッピングを示す。図３７に示される符号化方法は、高い確率で発生する値に対し短いビットストリングを使用して符号化される可変長エントロピー符号化の一種として、指数ゴロム（又はＥｘｐ−Ｇｏｌｏｍｂ）符号化として知られる方法である。図３７に示す符号化方法例は、図３８及び図３９に示すように、絶対値の小さい値の発生する確率が、絶対値の大きい値が発生する確率よりも高い状況に、特に適している。
【０１６５】
図３８及び図３９は、図３７の可変長符号化方法をｘ座標値及び圧力値の予測残差への適用した結果をそれぞれ示す表３８００及び３９００を示す。それぞれ表３８００及び３９００で「Ｘ＿ｐｒｅｄ＿ｒｅｓｉｄｕａｌ＿ＥｘｐＧｏｌｏｍｂ」及び「Ｐ＿ｐｒｅｄ＿ｒｅｓｉｄｕａｌ＿ＥｘｐＧｏｌｏｍｂ」のラベルを付された列中の記入項目は、適切に構成されたエンコーダ（例えば、図２５のストリーム適応エンコーダ２５４０）の出力（例えば、「ＦＩＲＳＴ＿ＣＯＮＶ＿ＤＡＴＡ」中のそれぞれ「ｓｔｒｅａｍＩＤ＃１」及び「ｓｔｒｅａｍＩＤ＃７」に関連したストリーム）中に含まれ得る。
【０１６６】
図４０に、コンテキストに基づいた符号化方法選択プロセス４０００のフロー図を例示する。ステップ４０１０で、符号化処理のコンテキストがストリームＩＤの少なくとも一部に基づき判定される。ステップ４０２０で、可変長コード（ＶＬＣ）テーブルが、コンテキストに基づき選択される。ステップ４０３０で、ストリームＩＤによって表されるストリーム中の値は、選択されたＶＬＣテーブルを使用して符号化される。図４１Ａ及び図４１Ｂは、それぞれＶＬＣテーブルの例４１００及び４１１０を示す。図４１Ａに示す例において、コンテキストは、ｘ座標値に関連したストリームＩＤ（例えば、ストリームＩＤ＝２）に基づき判定されている。ＶＬＣテーブル４１００は、傾向として所定の大きさの右方向への移動に対し短いビット数のビットストリングを設定し、左方向への移動よりも右方向への移動に対し短いビット数の付与を優先させている。図４１Ｂに示す例において、コンテキストは、ｘ座標値に対応付けられたストリームＩＤである点、並びに、言語として右から左に移動する傾向がある言語（例えばアラビア語）、スクリプト、又は文字に付与されたコード、に基づいて判定される。ＶＬＣテーブル４１１０は、傾向として所定量の左方向への移動に対し短いビットストリングを提供することによって右移動よりも左移動に対して、短いビットストリングの付与を優先させている。いかにして符号化コンテキストが判定されるかの詳細、及び使用される特定のＶＬＣテーブル及びコードは、実装に応じて異なり得る。
【０１６７】
図４２は、復号方法４２００のフロー図の例である。図４２に示す例において、復号方法４２００では、符号化された予測残差を入力し、値（例えば、ｘ座標値、ｙ座標値等）を復号する方法を実行する。ステップ４２１０で、符号化された値（例えば、それぞれ指数ｋ＝０及びｋ＝１に対応する２つの初期符号化値）の初期値の部分が復号化される。ステップ４２１０の初期値の部分の値の復号化により、符号化された予測残差を含む後続値を、後のステップで復号化できるようにする。ステップ４２２０で、それ以前に導出又は復号化された値に基づいて、次のインデクス（例えば、Ｋ＝２又は後続値）に関する予測値が導かれる。（例えば、図３２参照。）ステップ４２３０で、それぞれの予測値について、予測残差誤差が復号化される。ステップ４２４０において、導出された予測値と復号された予測残差値とに基づいて、オリジナルの値が導出される。（例えば、図３２参照。）復号化は、復号化すべき全ての符号化された値が復号化されるまで、続く値についても継続する。特定の符号化値及び／又は符号化予測残差を復号化するために使用される技術（例えば、図４２のステップ４２１０及び４２３０参照）は、それらを符号化するために使用された符号化方法に応じて異なる。例えば、Ｅｘｐ−Ｇｏｌｏｍｂ符号化方法を使用して符号化された値は、符号化方法に対応する復号方法を使用して復号化される。
【０１６８】
再び図２１Ａを参照すると、幾つかの実施態様において、ストローク及び／又は画像データ処理部３００は、損失性（非可逆）技術（すなわち、データ損失を伴うことがある技術）を使用して、未加工手書きデータを処理する。データ損失は、とりわけ一方向の関数であるｘ／ｙ座標平滑化関数、量子化処理（例えば、データを標準単位に変換すること）、タイムスタンプの不使用、及びタイプスタンプの廃棄のようなプロセスのために生じる。図４３は、画像データ処理部３００Ａの処理内容、特に、レンダリング構成モジュール４３２０によって提供されるコンフィグレーションデータに基づいて未加工手書きデータが画像プロセッサ４３４０によって処理される例を示す。コンフィグレーションデータは、画像データを生成するために必要とされ得るデータ、例えば、画像サイズ、スケール、オフセット、ストローク色（例えば、赤、緑、青、不透明）、ペンツールデータ（例えば、ブラシ、鉛筆）等を含んでも良い。図４３に示す例において、画像プロセッサ４３４０は、未加工手書きデータを（「ＳＥＣＯＮＤ＿ＣＯＮＶ＿ＤＡＴＡ」の標識を付された）画像データに変換する。図４４は、ストローク及び画像データ処理部３００Ｂの処理内容であって、未加工手書きデータがレンダリング構成モジュール４３２０によって提供されるコンフィグレーションデータに基づきストロークデータ生成器４３３０によって処理される説明に役立つ実施態様を示す。図４４に示す例において、ストロークデータ生成器４３３０は、未加工手書きデータをインクエンジン４３４０Ｂによって処理可能なストロークデータに変換する。インクエンジン４３４０Ｂは、ストロークデータを画像データ（「ＳＥＣＯＮＤ＿ＣＯＮＶ＿ＤＡＴＡ」）に変換する。
【０１６９】
図４５及び図４６は、損失性（非可逆）データ処理部３００によって（例えば、図４３及び図４４に示される実施態様の一方によって）生成された画像データからレンダリングされた画像の例を示す。それぞれサイン４５００及びアート図画４６００の画像を示している。図４６に示す例において、アート図画が、背景画像４６１０上にレンダリングされる。コンフィグレーションデータは画像のレンダリングを構成するために使用され得る。例えば、コンフィグレーションデータは、サイン４５００又はアート図画４６００の手書きがインクの特定の色でレンダリングされるべきであることを示し得る。
【０１７０】
図４７は、ストロークデータ処理部３００Ｃの実施態様を示す。未加工手書きデータが、レンダリング構成モジュール４３２０によって提供されるコンフィグレーションデータに基づき、ストロークデータ生成器４３３０によって処理される。ストロークデータ生成器４３３０は、未加工手書きデータをストロークデータ（「ＳＥＣＯＮＤ＿ＣＯＮＶ＿ＤＡＴＡ」）に変換する。図４４に示されるストローク及び画像データ処理部３００Ｂと異なり、ストロークデータ処理部３００Ｃは、インクエンジンを欠く。別個のインクエンジン（図示せず）は、ストロークデータを画像データに変換し得る。例として、別個のインクエンジンは、クラウドコンピューティング構成内のサーバ上で動き得る。本明細書に記載された実施態様において構成データ、ストロークデータ及び画像データを生成し、かつ処理するために使用される特定の技術は、実装及び／又は状況に応じて異なり得る。
【０１７１】
再び図２１Ａを参照すると、幾つかの実施態様において、統合部４００は、画像データをストリームフォーマットで保存された手書きデータと組み合わせる。図４８は、ストリーム生成部２００（図２１Ａ参照）から受信したデータ（「ＦＩＲＳＴ＿ＣＯＮＶ＿ＤＡＴＡ」）が、損失性（非可逆）データ処理部３００（図２１Ａ参照）から受信した画像データ（「ＳＥＣＯＮＤ＿ＣＯＮＶ＿ＤＡＴＡ」）と統合される統合部４００の説明に役立つ実施態様を示す。図４８に示す例において、ステガノグラフィープロセス４８２０が、ストリームデータを画像データに挿入するために使用される。統合データを生成するために使用される特定の技術は、以下で詳細に説明するように、実装及び／又は状況に応じて異なり得る。
【０１７２】
手書きデータのオリジナルの内容を保存せずに、サイン又はサインした文書の画像を標準の画像フォーマットを用いてレンダリングすることは可能であるが、これを行うことの不都合の１つは、キャプチャしたサイン情報の多くが失われることである。この問題は、（例えば、符号化バイナリ手書きデータを画像にステガノグラフィープロセス等により挿入することによって）手書きデータのオリジナルの内容を画像データと統合することによって克服できる。この方法の更なる利点は、多くの既存のアプリケーションは画像データならば取り扱えるが、手書きデータは取り扱えないことである。手書きデータを画像に挿入することによって、未加工手書きデータのオリジナルの内容は、画像が、それ自体では手書きデータを認識又は処理不可能なアプリケーション間を通過する際にも保存できる。このタイプの画像を使用することは、修正された画像を取り扱うアプリケーションを修正せずに、手書きデータのオリジナルの内容全部を保存することを可能にする。
【０１７３】
実際の手書きにおいて、ストリームデータのサイズは可変であり、手書きの持続時間のような要素によって左右される。データ点は概して一定の間隔で収集されるので、記憶される点の数はサインするためにかかった全時間及びデータ収集速度に比例する。デジタイザによっては、毎秒４００点以上を収集できる。ストリームデータのサイズは、筆圧及びペン角度ストリームのような、任意であり得るデータストリームの存在又は不存在によっても決まり得る。例として、毎秒１００点（一般的な頻度）で収集されるｘ座標、ｙ座標、時間、及び圧力情報を含むサインは、バイナリ形で記憶される時、１〜２キロバイトを占め得る。毎秒でより多くの点を含む手書きは、更なる情報を含み得る。少なくとも１つの実施態様において、典型的な手書きサインは、２〜４キロバイトのサイズの範囲でストリームデータを生成する。
【０１７４】
少なくとも１つの実施態様において、符号化されたバイナリ手書きデータは、図４９に示す一般化技術４９００により画像に挿入される。ステップ４９１０において、デジタル画像画素データが得られる。オリジナルの画素データの特定のフォーマットは、必要でない。しかしながら、画素データのビット深度は、ビットによっては、レンダリングされた画像の目に見える劣化を引き起こさずに、そのオリジナルの値から変更できるようになっていることが好ましい。ステップ４９２０において、オリジナルの画素データの一部が、（例えば上記の符号化バイナリフォーマットで）電子手書きを表す符号化されたバイナリ手書きデータと置き換えられる。例えば１つ以上の色を示すピクセル値の１つ以上のビットが、以下で更に詳細に説明するように、画像中から選択された画素について修正される。修正される画素数は、符号化されるデータのサイズ、及び各画素中で修正されるビット数を含む幾つもの因子によって決まり得る。ステップ４９３０において、修正された画素値を含む画像データは、修正されたデジタル画像中に記憶される。修正された画像は、圧縮又は非圧縮フォーマットで記憶され得る。データ損失を回避するために、修正されたデジタル画像は、ＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）のような損失性（非可逆）圧縮フォーマットを用いて記録しないとする。
【０１７５】
少なくとも１つの実施態様において、２４ビットからなり、８ビットが３つの色値（例えば、赤、緑及び青）の各々のために使用される画素中、色値の下位ビットは、電子手書きデータと置き換えられる。少なくとも１つの実施態様において、画素当たり４ビット（例えば、赤値の最下位ビット、緑値の最下位ビット、及び青値の２つの最下位ビット）が置き換えられ、それにより４ビットの手書きデータが、単一の画素中に記憶され、かつ１バイト（８ビット）の手書きデータが２画素中に記憶されることを可能にする。画素当たり４ビットの手書きデータが、１６進数（１６進法）値に変形できる。
【０１７６】
手書きデータは、その全部が画像中の画素の連続シーケンス中にまとまって記憶されないことが好ましい。幾つかの実施態様において、幾つかのデータ（例えば、ヘッダデータ）は、一連の連続画素中に記憶され得るが、データ（例えば、ｘ座標データ、ｙ座標データ）の多くは、疑似ランダム選択により全画像にわたって分布した画素に記憶される。少なくとも１つの実施態様において、ヘッダ情報は、画像の第１画素から開始し、かつ全てのヘッダ情報が挿入されるまで連続的に継続する、一連の連続画素に挿入される。個別のストリーム中のデータは次に画素の疑似ランダム選択に挿入される。ヘッダ情報は、データストレージ機構のバージョン番号、ストリームデータのサイズ、及びデータが記憶される画像の幅及び高さを含んでも良い。
【０１７７】
ヘッダ情報及びストリームデータに加えて、画像が有効な手書きデータを含むかを判定する機構を提供するために、確認データが、画像に挿入され得る。少なくとも１つの実施態様において、２つの所定の１６進法値を表す８ビットが、画像の最初の２つの画素に挿入される。データが後で抽出される時、適切に構成されたデコーダが、これら２つの１６進法値の存在を検査して、画像が、有効な手書きデータを含むという初期判定を行える。あるいは、確認データは、他の形（例えば２を越える１６進数値、６４進数値等を表すバイナリデータ）を取ることができるか、又は確認データは省略できる。
【０１７８】
図５０は、画素の疑似ランダム選択による１６ビットのバイナリデータの分布の例を説明している。図５０に示すように、各Ｒ値における１ビット、各Ｇ値における１ビット、及び各Ｂ値における２ビットが、修正される。（図５０で「Ｘ」によって表す）各色値における残りのビットは、影響を受けない。あるいは、バイナリデータは、他のいずれかの方法で画素値に挿入できる。例えば、Ｒ、Ｇ及びＢ値における様々な数のビットは、修正できるか、又は色値のいずれかのサブセット（例えば、Ｒ値及びＢ値）が、修正でき、他方で残りの色値（例えば、Ｇ値）は、修正されないままでいる。修正される特定数のビット及び特定の値は、画像データのフォーマットによって同様に決まり得る。例えば、様々な色値、又は様々なビット深度（例えば、１０ビット又は１６ビット）を有する色値を含むフォーマットの画像は、様々な方法で調整され得る。一般的に、非常に少量の画像劣化をもたらす統合方法が、好ましい。
【０１７９】
画素の疑似ランダム選択は、多くの方法で実行できる。少なくとも１つの実施態様において、一様偏差（乱数）生成器が、画像サイズをシードとして初期化され、かつ次に修正される画素シーケンスを判定するために使用される。このことは、画素が一様に分布されることを確実にし、かついずれの画素が修正されたかを、第三者が判定することを困難にする。所与の画素が２回目に選択されるならば、それは単に無視され、かつ別の画素が疑似ランダムアルゴリズムに従って選択される。埋め込みデータが復号化される時、画素シーケンスは、同じアルゴリズムにより画像サイズをシードとして使用して、判定できる。このことは、情報が画像中に拡散されるが、（同じシードを用いて一様偏差（乱数）を初期化する処理によって）同じシーケンスが再現でき、かつ修正された画素が、適切に構成されたデコーダによって正しい順序で読み取れることを意味する。
【０１８０】
図５１に、ステガノグラフィープロセス３２００の例を示す。ステガノグラフィープロセス３２００は、少なくとも１つの実施態様において符号化バイナリ手書きデータをデジタル画像に挿入する。ステップ５１１０で、画像が符号化手書きデータを記憶するために（画素数の点で）十分大きいか、に関する初期判定がなされる。この判定を行うために使用されるアルゴリズムは、実装に応じて異なり得る。例として、アルゴリズムは、各画素中で修正されるビット数（例えば、４ビット）を考えると、符号化手書きデータを記憶するために修正される必要がある画素数が、画像中の全画素の所定の閾値割合を超えるか判定できる。画像が十分大きいならば、ステップ５１２０でヘッダデータが、画素シーケンスに書き込まれる。残りの符号化手書きデータに関して、ステップ５１３０で画素は、疑似ランダムに選択される。画素が以前選択されたかを判定するために、ステップ５１４０で検査が実行される。画素が以前選択されたならば、疑似ランダム選択プロセスが、再度実行される。画素が以前選択されなかったならば、ステップ５１５０で、適切なビット数（例えば、１／２バイト（４ビット））の符号化手書きデータが、画素中に書き込まれる。ステップ５１３０〜５１５０は、ステップ５１６０で、全ての符号化手書きデータが、画像中に書き込まれたという判定がなされるまで繰り返される。状態フラグが、ステップ５１７０で成功を表示するために設定される。
【０１８１】
他方で、画像が、符号化手書きデータを記憶するために十分大きくないならば、ステップ５１８０で、状態フラグが、失敗を表示するために設定される。しかしながら、プロセス５１００は、符号化手書きデータを記憶するために十分大きくない幾つかの画像に効果的に対処するための適応特徴も含むことができる。例えば、プロセス５１００は、修正される必要がある画素数を減少させるために、（例えば、画素当たり４ビットよりも、画素当たり６ビット（例えば、色値当たり２ビット）を修正することによって）各選択画素中の多数のビットを修正するように適応できる。このようにして、画像中で修正される画素の割合が減少でき、かつステガノグラフィープロセスは、画像中の少数の画素にもかかわらず継続できる。
【０１８２】
ストリームデータは、画像データ又はストロークデータに常に組み合わせる必要はない。図５２は、ストリーム生成部２００（図２１Ａ参照）から受信したデータが、損失性（非可逆）データ処理部３００（図２１Ａ参照）から受信したストロークデータと選択的に統合される統合部４００Ｂの説明に役立つ実施態様を示す。図５２に示す例において、統合部４００Ｂは、ストリーム生成部２００から受信したデータ（「ＦＩＲＳＴ＿ＣＯＮＶ＿ＤＡＴＡ」）が、選択モジュール５２０１への入力として提供されるフラグの状態（「ＦＩＲＳＴ＿ＣＯＮＶ＿ＤＡＴＡ＿ＥＸＩＳＴ＿ＦＬＡＧ」）に基づきストロークデータマルチプレクサ５２０２中のストロークデータ（「ＳＥＣＯＮＤ＿ＣＯＮＶ＿ＤＡＴＡ」）と統合されるかを判定する。図５３は、ストリーム生成部２００（図２１Ａ参照）から受信したデータが、損失性（非可逆）データ処理部３００（図２１Ａ参照）から受信したストローク及び／又は画像データと選択的に統合される統合部４００Ｃのもう１つの説明に役立つ実施態様を示す。図５３に示す例において、統合部４００Ｃは、ストリーム生成部２００から受信したストリームデータ（「ＦＩＲＳＴ＿ＣＯＮＶ＿ＤＡＴＡ」）が、選択モジュール５３０１及び５３０３への入力として提供される制御信号（「ｃｔｒｌ」）に基づき再結合モジュール５３０２中のストローク及び／又は画像データ（「ＳＥＣＯＮＤ＿ＣＯＮＶ＿ＤＡＴＡ」）と統合されるかを判定する。データを統合し、かつデータが、個別に統合及び／又は処理されるべきか判定するために使用される特定の技術は、実装及び／又は、アプリケーションが特定のデータを要求しているか、のような他の因子に応じて異なり得る。例えば、アプリケーションが、画像データ（例えば、ＰＮＧファイル）のみを要求するならば、制御信号は、統合部４００Ｃが画像データのみを出力するように設定できる。もう１つの例として、アプリケーションが、ストリームデータのみを要求するならば、制御信号は、統合部４００Ｃがストリームデータのみを出力するように設定できる。もう１つの例として、アプリケーションが、ストリームデータ及び画像データを要求するならば、制御信号は、統合部４００Ｃがストリームデータ及び画像データを含む統合データを出力するように設定できる。
【０１８３】
本明細書に記載された例のいずれにおいても、損失性（非可逆）又は無損失性（可逆）符号化データを復号化するために、１つ以上のデコーダが使用できる。デコーダは、符号化データを入力として受信し、かつ復号データを出力する。概して、デコーダは、特定の方法で符号化されたデータを復号化するように構成される復号ロジックを含む。例えば、ＰＮＧ（ポータブルネットワークグラフィックス）デコーダは、ＰＮＧフォーマットで符号化されたデータを復号化するように構成される。復号ロジックは、対応する符号化論理と異なるコンピューティング装置上か、又は同じ装置上に存在し得る。
【０１８４】
本明細書に記載された実施態様により、符号化手書きデータデコーダは、符号化バイナリ手書きデータ（例えば、ビットパックされたＥｘｐ−Ｇｏｌｏｍｂ符号化バイナリ手書きデータ）を読み込み、かつそれをインクエンジン、法的な証拠のように利用されるサインデータ分析ツール又は他の電子手書きツールのようなツールによって使用され得る形に変換し戻すロジックを含む。符号化手書きデータデコーダは、画像データデコーダのような他のデコーダと組み合わせて使用できる。例えば、符号化手書きデータデコーダが、画像ファイル中の画素データに挿入された符号化手書きデータを読み込んだ後、画像ファイルは、次に適切な画像データデコーダによって復号化でき、かつ表示のためにレンダリングできる。
【０１８５】
デコーダによって使用される復号化プロセスの詳細は、状況及び／又はデコーダに提供される情報によって決まり得る。例えば、本明細書に記載された実施態様によれば、符号化手書きデータデコーダは、画素の各色値で何ビットが、符号化バイナリ手書きデータを含むか、又は特定のコード表がエントロピー符号化方法で使用されたかを示す符号化手書きデータのヘッダ部分における情報を受信し得る。この情報によって、デコーダは、符号化データを復号化する適切な技術を選択できる。
【０１８６】
上記の実施態様は、デジタル画像中に記憶され得る電子手書きデータに関するが、上記の技術及びツールの多くで、電子手書きデータが、補完される、又は電子手書きデータに限定されない他のタイプのデータと置き換えられることが可能であり、かかるデータは、本明細書に記載された原理によりデジタル画像中に記憶され、かつ／又はデジタル画像から抽出され得ることが理解されるべきである。
【０１８７】
ＩＩＩ．コンピューティング環境
具体的な例の文脈において、別段の指示がない限り、記載された技術及びツールは、ラップトップコンピュータ、デスクトップコンピュータ、スマートフォン、タブレットコンピュータ等を含むが、それらに限定されない、いかなる適切なコンピューティング装置によっても実装できる。例えば、本明細書に記載した幾つかの例において手書きデータの生成は、電子ペンのようなある種のハードウェアの特徴を必要とすることがあるが、電子ペンによって生成された未加工のデータは、ラップトップコンピュータ、デスクトップコンピュータ、スマートフォン、タブレットコンピュータ等を含むが、それらに限定されない、適切に構成された汎用コンピューティング装置に伝送でき、かつそれにより処理できる。
【０１８８】
本明細書に記載された機能性によっては、クライアント−サーバ関係の状況で実装できる。この状況において、サーバ装置は、本明細書に記載された情報及び／又はサービスを提供するように構成された適切なコンピューティング装置を含んでも良い。サーバ装置は、専用のサーバ装置のような、いかなる適切なコンピューティング装置を含んでも良い。サーバ装置によって提供されるサーバ機能性は、場合により、専用のサーバ装置でないコンピューティング装置上で実行するソフトウェア（例えば、仮想化コンピューティングインスタンス又はアプリケーションオブジェクト）によって提供できる。用語「クライアント」は、サーバによって通信リンクを通じて提供される情報及び／又はアクセスサービスを得るコンピューティング装置を指すために使用され得る。しかしながら、クライアント装置のような特定の装置の指定は、必ずしもサーバの存在を必要としない。種々の時点で、単一の装置が、状況及び構成に応じてサーバ、クライアント、又はサーバ及びクライアントの両者の役目を果たせる。クライアント及びサーバの実際の物理的な位置は、必ずしも重要でないが、クライアントがリモート位置のサーバによって提供される情報を受信する、共通の使用シナリオを説明するために、位置は、クライアントに関して「ローカル」、かつサーバに関して「リモート」と記載され得る。
【０１８９】
図５４は、本開示の実施態様に従った使用に適した代表的なコンピューティング装置５４００の態様を説明するブロック図である。下記記載は、サーバ、パーソナルコンピュータ、携帯電話、スマートフォン、タブレットコンピュータ、組込型コンピューティング装置、及び本開示の実施態様により使用できる、他の現在利用可能な、又はこれから開発される装置に適用できる。
【０１９０】
コンピューティング装置５４００は、その最も基本的な構成において、少なくとも１つのプロセッサ５４０２と、通信バス５４０６によって接続されたシステムメモリ５４０４とを含む。装置の正確な構成及びタイプに応じて、システムメモリ５４０４は、リードオンリーメモリ（「ＲＯＭ」）、ランダムアクセスメモリ（「ＲＡＭ」）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒy）、フラッシュメモリ又は他のメモリ技術のような揮発性又は非揮発性メモリであっても良い。当業者等は、システムメモリ５４０４が、プロセッサ５４０２によって即時アクセス可能な、かつ／又は現在操作されるデータ及び／又はプログラムモジュールを概して記憶することを認識するであろう。この点に関して、プロセッサ５４０２は、命令の実行を支援することによって、コンピューティング装置５４００のコンピュータセンタとして役立つことがある。
【０１９１】
図５４に更に説明されるように、コンピューティング装置５４００は、他の装置とネットワークを通じて通信するための１つ以上の部品を含むネットワークインタフェース５４１０を含んでも良い。本開示の実施態様は、ネットワークインタフェース５４１０を利用する基本サービスにアクセスでき、共通のネットワークプロトコルを使用して、通信を実行する。ネットワークインタフェース５４１０は、ＷｉＦｉ（Ｗｉｒｅｌｅｓｓ  Ｆｉｄｅｌｉｔｙ）、２Ｇ（２ｎｄ  Ｇｅｎｅｒａｔｉｏｎ）、３Ｇ（３ｒｄ  Ｇｅｎｅｒａｔｉｏｎ）、４Ｇ（４ｔｈ  Ｇｅｎｅｒａｔｉｏｎ）、ＬＴＥ（Ｌｏｎｇ  Ｔｅｒｍ  Ｅｖｏｌｕｔｉｏｎ）、ＷｉＭＡＸ（Ｗｏｒｌｄｗｉｄｅ  Ｉｎｔｅｒｏｐｅｒａｂｉｌｉｔｙ  ｆｏｒ  Ｍｉｃｒｏｗａｖｅ  Ａｃｃｅｓｓ）、Ｂｌｕｅｔｏｏｔｈ（登録商標）等のような１つ以上のワイヤレス通信プロトコルを通じて通信するように構成されたワイヤレスネットワークインタフェースも含んでも良い。
【０１９２】
図５４に示される代表的な実施態様において、コンピューティング装置５４００は、ストレージ媒体５４０８も含む。しかしながらデータをローカルストレージ媒体に存続させる手段を含まないコンピューティング装置を使用して、サービスにアクセスできる。それ故に、図５４に示されるストレージ媒体５４０８は、任意である。いずれにせよ、ストレージ媒体５４０８は、揮発性、又は非揮発性、取り外し可能、又は取り外し不可能であり、ハードドライブ、半導体ドライブ、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、又は他のディスクストレージ、磁気テープ、磁気ディスクストレージ等のような、但しそれらに限定されない情報を記憶することが可能ないずれかの技術を使用して、実装できる。
【０１９３】
本明細書で使用されるような、用語「コンピュータ可読媒体」は、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータのような、情報を記憶可能ないずれかの方法又は技術に実装される揮発性及び非揮発性、並びに取り外し可能及び取り外し不可能な媒体を含む。この点に関して、図５４に示されるシステムメモリ５４０４及びストレージ媒体５４０８は、コンピュータ可読媒体の例である。
【０１９４】
説明を容易にするために、また特許請求された主題を理解をするために重要でないので、図５４は、多くのコンピューティング装置の典型的な部品の幾つかを示さない。この点に関して、コンピューティング装置５４００は、キーボード、キーパッド、マウス、トラックボール、マイクロホン、ビデオカメラ、タッチパッド、タッチスクリーン、スタイラス等のような入力装置を含んでも良い。かかる入力装置は、ＲＦ（Ｒａｄｉｏ  Ｆｒｅｑｕｅｎｃｙ）、赤外線、直列、並列、Ｂｌｕｅｔｏｏｔｈ（登録商標）、ＵＳＢ、又は無線若しくは物理的接続を使用する他の適切な接続プロトコルを含む、有線又は無線接続によってコンピューティング装置５４００に連結できる。
【０１９５】
いずれの記載例においても、データは、入力装置によって捕捉され、かつ将来の処理のために伝送又は記憶され得る。処理は、データストリームを符号化することを含んでも良く、データストリームは、出力装置による提示のためにその後に復号化され得る。メディアデータは、マルチメディア入力装置によって捕捉され、かつメディアデータストリームをコンピュータ可読ストレージ媒体（例えば、クライアント装置、サーバ、管理者装置、又は他の装置上の持続性ストレージ、又はメモリ内）上のファイルとして保存することによって記憶され得る。入力装置は、コンピューティング装置５４００（例えば、クライアント装置）から離れても良く、かつ通信可能に連結されても良いか、又はコンピューティング装置５４００の一体部品であっても良い。幾つかの実施態様において、複数の入力装置を組み合わせて、単一の多機能入力装置（例えば、統合されたマイクロホンを有するビデオカメラ）としても良い。現在知られているか、又は将来開発されるいかなる適切な入力装置も、本明細書に記載されたシステムによって使用できる。
【０１９６】
コンピューティング装置５４００は、ディスプレイ、スピーカ、プリンタ等のような出力装置も含んでも良い。出力装置は、ディスプレイ又はタッチスクリーンのようなビデオ出力装置を含んでも良い。出力装置は、外部スピーカ又はイヤホンのような音声出力装置も含んでも良い。出力装置は、コンピューティング装置５４００から離れても良く、かつ通信可能に連結されても良いか、又はコンピューティング装置５４００の一体部品であっても良い。幾つかの実施態様において、複数の出力装置を組み合わせて、単一の装置（例えば、内蔵スピーカを有するディスプレイ）としても良い。現在知られているか、又は将来開発されるいかなる適切な出力装置も、記載されたシステムによって使用できる。
【０１９７】
一般的に、本明細書に記載されたコンピューティング装置の機能性は、Ｃ、Ｃ＋＋、ＣＯＢＯＬ（ＣＯｍｍｏｎ  Ｂｕｓｉｎｅｓｓ  Ｏｒｉｅｎｔｅｄ  Ｌａｎｇｕａｇｅ）、ＪＡＶＡ（登録商標）、ＰＨＰ（ＰＨＰ:  Ｈｙｐｅｒｔｅｘｔ  Ｐｒｅｐｒｏｃｅｓｓｏｒ）、Ｐｅｒｌ（Ｐｒａｃｔｉｃａｌ  Ｅｘｔｒａｃｔｉｏｎ  ａｎｄ  Ｒｅｐｏｒｔ  Ｌａｎｇｕａｇｅ）、ＨＴＭＬ（ＨｙｐｅｒＴｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）、ＣＳＳ（Ｃａｓｃａｄｉｎｇ  Ｓｔｙｌｅ  Ｓｈｅｅｔｓ）、ＪａｖａＳｃｒｉｐｔ（登録商標）、ＶＢＳｃｒｉｐｔ（Ｖｉｓｕａｌ  Ｂａｓｉｃ  Ｓｃｒｉｐｔ）、ＡＳＰＸ、Ｃ＃などのＭｉｃｒｏｓｏｆｔ  ．ＮＥＴ（商標）言語のようなプログラミング言語で書かれ得るハードウェア又はソフトウェアの命令において実施されるコンピューティングロジックに実装できる。コンピューティングロジックは、実行可能なプログラムにコンパイルできるか、又はインタプリータ形式のプログラミング言語で書いても良い。一般的に、本明細書に記載された機能性は、高い処理能力を提供するために複製されるか、他のモジュールと併合されるか、又はサブモジュールに分割され得るロジックモジュールとして実装され得る。コンピューティングロジックは、いかなるタイプのコンピュータ可読媒体（例えば、メモリ又はストレージ媒体のような非一時的媒体）又はコンピュータストレージ装置にも記憶でき、かつ１つ以上の汎用又は特殊用途のプロセッサに記憶でき、かつそれにより実行され、従って本明細書に記載された機能性を提供するように構成された特殊用途のコンピューティング装置を作り出せる。
【０１９８】
ＩＶ．拡張及び代替案
本明細書に記載されたシステム及び装置の多くの代替案が、可能である。例えば、個別のモジュール又はサブシステムは、追加のモジュール又はサブシステムに分離されるか、又は少数のモジュール又はサブシステムと組み合わされ得る。もう１つの例として、モジュール又はサブシステムは、省略されるか、又は他のモジュール又はサブシステムを補足され得る。もう１つの例として、特定の装置、モジュール、又はサブシステムによって実行されるとして示される機能は、１つ以上の他の装置、モジュール又はサブシステムによって代わりに実行されても良い。本開示における幾つかの例は、特定の構成における特定のハードウェア部品を含む装置の記載を含むが、本明細書に記載された技術及びツールは、異なるハードウェア部品、組み合わせ、又は構成を受け入れるために変更され得る。更に、本開示における幾つかの例は、特定の使用シナリオの記載を含むが、本明細書に記載された技術及びツールは、異なる使用シナリオを受け入れるために変更され得る。ソフトウェアに実装されているとして記載される機能性は、代わりにハードウェアに実装されてもよく、又はその逆にハードウェアに実装されているとして記載される機能性は、代わりにソフトウェアに実装されてもよい。
【０１９９】
本明細書に記載された技術の多くの代替案が、可能である。例えば、種々の技術における処理段階は、追加の段階に分離されるか、又は少数の段階と組み合わされ得る。もう１つの例として、種々の技術における処理段階は、省略されるか、又は他の技術又は処理段階を補足され得る。もう１つの例として、特定の順序で起こるとして記載される処理段階は、代わりに別の順序で起こり得る。そのかわりに、もう１つの例として、複数のモジュール又はソフトウェアプロセスが、１つ以上の説明された処理段階を同時に処理しながら、一連のステップで実行されるとして記載される処理段階を、並行して処理しても良い。もう１つの例として、特定の装置又はモジュールによって実行されるとして示される処理段階は、１つ以上の他の装置又はモジュールによって代わりに実行されても良い。
【０２００】
本開示の原理、代表的な実施態様及び動作形態は、前述の記載において記載された。しかしながら、保護されることを意図する本開示の態様は、開示された特定の実施態様に限定されると解釈されるべきではない。更に、本明細書に記載された実施態様は、限定するものではなく、説明のためのものであるとみなされるべきである。本開示の精神から逸脱することなく、変形例及び変更が他人によってなされ、かつ同等物が用いられることが理解されよう。従って、全てのかかる変形例、変更及び同等物が、特許請求された主題の精神及び範囲内にあることが明確に意図される。
【０２０１】
排他的な所有権又は特権が請求される本発明の実施態様は、請求項の部に定義される。
【要約】
手書き検証方法及びコンピュータシステム、並びに手書きに基づくユーザ認証方法及びコンピュータシステムが開示される。手書き検証方法は、複数の利用可能なパラメータを含む手書き試験サンプルを得ること、幾何学的パラメータを抽出すること、試験サンプル中の複数の特徴点の各々のｘ位置値と、ｙ位置値とを含む幾何学的特徴を導き出すこと、試験サンプル及び基準サンプルの幾何学的特徴の間で特徴照合を行うこと、特徴照合に少なくとも部分的に基づき手書き検証結果を判定すること、及び手書き検証結果を出力することを含む。更に、電子手書きデータを生成及び保存する方法及び装置が開示される。未加工の手書きデータは、未加工の手書きデータのオリジナルの内容を保存するストリームフォーマットに変換される。又、電子手書きデータをデジタル画像に挿入する方法及び装置が開示される。【図１Ａ】
0005841297.tif 000010
【図１Ｂ】
0005841297.tif 000011
【図２Ａ】
0005841297.tif 000012
【図２Ｂ】
0005841297.tif 000013
【図２Ｃ】
0005841297.tif 000014
【図３】
0005841297.tif 000015
【図４】
0005841297.tif 000016
【図５】
0005841297.tif 000017
【図６】
0005841297.tif 000018
【図７Ａ】
0005841297.tif 000019
【図７Ｂ】
0005841297.tif 000020
【図８】
0005841297.tif 000021
【図９Ａ】
0005841297.tif 000022
【図９Ｂ】
0005841297.tif 000023
【図９Ｃ】
0005841297.tif 000024
【図９Ｄ】
0005841297.tif 000025
【図９Ｅ】
0005841297.tif 000026
【図１０】
0005841297.tif 000027
【図１１】
0005841297.tif 000028
【図１２Ａ】
0005841297.tif 000029
【図１２Ｂ】
0005841297.tif 000030
【図１３Ａ】
0005841297.tif 000031
【図１３Ｂ】
0005841297.tif 000032
【図１３Ｃ】
0005841297.tif 000033
【図１４】
0005841297.tif 000034
【図１５】
0005841297.tif 000035
【図１６】
0005841297.tif 000036
【図１７】
0005841297.tif 000037
【図１８Ａ】
0005841297.tif 000038
【図１８Ｂ】
0005841297.tif 000039
【図１９Ａ】
0005841297.tif 000040
【図１９Ｂ】
0005841297.tif 000041
【図２０】
0005841297.tif 000042
【図２１Ａ】
0005841297.tif 000043
【図２１Ｂ】
0005841297.tif 000044
【図２１Ｃ】
0005841297.tif 000045
【図２１Ｄ】
0005841297.tif 000046
【図２２】
0005841297.tif 000047
【図２３】
0005841297.tif 000048
【図２４】
0005841297.tif 000049
【図２５】
0005841297.tif 000050
【図２６】
0005841297.tif 000051
【図２７】
0005841297.tif 000052
【図２８】
0005841297.tif 000053
【図２９Ａ】
0005841297.tif 000054
【図２９Ｂ】
0005841297.tif 000055
【図３０】
0005841297.tif 000056
【図３１】
0005841297.tif 000057
【図３２】
0005841297.tif 000058
【図３３】
0005841297.tif 000059
【図３４】
0005841297.tif 000060
【図３５】
0005841297.tif 000061
【図３６】
0005841297.tif 000062
【図３７】
0005841297.tif 000063
【図３８】
0005841297.tif 000064
【図３９】
0005841297.tif 000065
【図４０】
0005841297.tif 000066
【図４１Ａ】
0005841297.tif 000067
【図４１Ｂ】
0005841297.tif 000068
【図４２】
0005841297.tif 000069
【図４３】
0005841297.tif 000070
【図４４】
0005841297.tif 000071
【図４５】
0005841297.tif 000072
【図４６】
0005841297.tif 000073
【図４７】
0005841297.tif 000074
【図４８】
0005841297.tif 000075
【図４９】
0005841297.tif 000076
【図５０】
0005841297.tif 000077
【図５１】
0005841297.tif 000078
【図５２】
0005841297.tif 000079
【図５３】
0005841297.tif 000080
【図５４】
0005841297.tif 000081