【文献】
加藤 陽介 3名,ディジタル画像の真贋性を保証するための署名データの埋め込み(第一報)),コンピュータセキュリティシンポジウム2000 情報処理学会シンポジウムシリーズ Vol.2000 No.12,日本,社団法人情報処理学会,2000年10月26日,第2000巻 第12号,pp. 115-120,ISSN 1344-0640
(58)【調査した分野】(Int.Cl.,DB名)
前記ストリームデータを生成するステップは、更に、前記複数のストリームのストリーム毎にストリームのタイプに基づいて複数の利用可能な圧縮方法から圧縮方法を選択するステップ、及び、前記選択された圧縮技術を前記複数のストリームの各々に適用するステップを含む
請求項1に記載の手書きデータ出力方法。
【発明を実施するための形態】
【0019】
同種の数字が同種の要素を参照する、添付図面に関連して以下に示す詳細な説明は、開示された主題の種々の実施態様の説明として意図され、かつ実施態様のみを表すことを意図するものではない。この開示に記載された各実施態様は、単に例又は説明として提供され、かつ他の実施態様よりも好ましい、又は好適であると解釈されるべきでない。本明細書に提供された説明に役立つ例は、網羅的であるか、又は特許請求された主題を、正確な開示された形に限定することを意図するものではない。
【0020】
以下の記載において、複数の具体的な詳細が、本開示の代表的な実施態様の徹底した理解を提供するために示される。しかしながら、本開示の多くの実施態様が、幾つか又は全部の具体的な詳細なしで実施できることは、当業者にとって明白であろう。場合により、本開示の種々の態様を不必要に不明瞭にしないため、周知のプロセスステップは、詳細に記載されなかった。更に、本開示の実施態様が、本明細書に記載された特徴のいかなる組み合わせを用いても良いことが認識されるであろう。
【0021】
I.動的手書き検証及び手書きに基づくユーザ認証
本開示の幾つかの実施態様は、電子サイン又は他の電子手書きを検証することを対象とする。サインが真正であるかを判定することは、多くの課題をもたらす。1つの課題は、同一の人物によってなされた真正なサインが、ある程度の変動性を常に有することである。もう1つの課題は、真正なサイン間の変動性の程度が人によって異なることである。従前では、変動性レベルの判定は、別の時間に、検証に使用され得るテンプレートに収集された幾つかの基準サンプルを組み合わせることによってなされる。しかし、別の時間に幾つかの基準サンプルを収集することは、多くの業務プロセスに上手く適合しない。例えば銀行は、比較するために単一の基準サインを伝統的に保管する。従って、単一の基準サインを使用して行う検証方法の精度を改良する能力が好適である。
【0022】
記載された実施態様において、動的手書き検証エンジンは、試験サンプルが真正であるか判定するために、手書きの試験サンプル(例えば、サイン)に関連した手書きデータを、基準サンプルに関連した手書きデータと比較するように構成される。本明細書に記載された幾つかの実施態様はサインの検証に言及するが、本明細書に記載された実施態様が、あらゆる種類の手書きを検証するために使用され得ること、及びサインの検証に限定されないことが理解されるべきである。
【0023】
本明細書に記載された実施態様によれば、検証方法は、同一の人物によってなされるサンプル間の自然な不一致に起因する軽微な相違を許容しながら、試験サンプル及び基準サンプル中の幾何学的特徴を照合することを伴う。幾何学的特徴に加えて、検証方法は、現在の手書き収集技術によって生成され得る更なるデータ(例えば、ストローク間のペンの動き、筆圧、ペン角度等)を考慮に入れることもでき、そのことは、検証結果の質を改良し得る。異なる入力装置は、異なるタイプのデータを提供することがあるので、検証方法は、本明細書に記載された実施態様に従って特定の装置によって提供されるデータのタイプに適応し得る。例えば、試験サンプルが圧力情報を含み、かつ基準サンプルが含まないのであれば、検証方法は、圧力情報の分析を省略でき、かつその代わりに2つのサンプルに共通するデータの比較に集中できる。
【0024】
図1Aは、本明細書に記載された技術による、サンプル手書きデータの真正性を検証するように構成された説明に役立つクラウドコンピューティング配列1の高レベルの図である。
図1Aに示す例において、手書き入力装置10、12及び14は、種々の形の手書きデータをネットワーク20(例えば、インターネット)を通じて手書き検証サーバ700に提供する。手書き入力装置10、12及び14は、専用の手書き収集装置、又は適切に構成されたスマートフォン若しくはタブレットコンピュータのような汎用装置として実装できる。手書き入力装置10、12及び14は、本明細書において「入力装置」と称されるが、かかる装置は、入力の収集に限定されず、かつ概して他の機能性も含む(例えば、ディスプレイ機能性、データ伝送機能性等)。
【0025】
手書きサインが、紙面上になされる時、インクペンは、サインを形成するインクの連続した跡を残す。デジタル化された手書きサインは、一般に一定の時間間隔で測定された離散データ点の収集を含む。
【0026】
再び
図1Aを参照すると、入力装置10、12、14はいずれも、デジタイザがペンの動きを検出するセンサボードを含み、かつセンサボード表面により生成された磁場によってペンの共振回路内にエネルギーが誘発される、という電磁共鳴(EMR)技術を使用できる。ペンの共振回路は、次にこのエネルギーを使用して磁気信号をセンサボード表面に返信する。ボードは、電子ペンがセンサボード表面に触れなくても、信号がペンからなおも受信できるほど、ペンがセンサボードの十分に近接した中に留まる限り、ペンの座標位置を一定の時間間隔で検出する(有効な信号範囲は使用される特定の技術によって異なり得るが、一般的に約数ミリメートルである)。
【0027】
あるいは、他の手書き入力技術が使用され得る。例えば、電子ペンは、他のワイヤレス技術を使用できるか、又はワイヤによってデジタイザに接続できる。もう1つの例として、電子ペンは、デジタイザの表面から離れて検出可能であっても良いし、なくても良い。もう1つの例として、電子ペンは、アクティブであるか又はパッシブであっても良い。アクティブペンは、外部電源に接続されたワイヤを介して、又は搭載電池を介して電力を受けても良い。もう1つの例として、電子ペンなしで(例えば、感圧デジタルライティングパッド、タッチスクリーン、又は電子ペンを必要としない他の入力装置上のスタイラスを介して)手書きデータを入力することが可能である。
【0028】
どのようにして手書きデータが収集されるとしても、入力装置10、12及び14によって提供される手書きデータは、ペンイベント情報、装置情報及び/又は手書きがなされた状況に関する状況情報を含んでも良い。記載された実施態様において、ペンイベント情報は、デジタイザ表面上のペン先のx、y位置と、手書き開始からの時間とを含む。更に、ペンイベント情報は、圧力(ペンの力)、角度(方位角、高度、及び/又は回転)及びペンダウン状態のような、入力装置10、12及び14の機能に依存する追加の情報を任意に含む場合がある。ペンイベント情報は、一般にサインプロセス中、一定の間隔で収集される。
【0029】
装置情報は、デジタイザ単位を実世界単位に変換するために必要な情報を含んでも良い。サインの状況情報は、サインする人の氏名、サインの日時、サインの理由、ホスト装置上で使用されるオペレーティングシステムのタイプ及びバージョン、デジタイザのタイプ、デジタイザデバイスドライバのバージョン、ホスト装置のネットワークインタフェースコントローラ(NIC)アドレスから取られる一意識別子、ハッシュ機能のタイプに関する情報(暗号ハッシュ機能が使用される場合)、及び/又は捕捉時にソフトウェアアプリケーションによって追加され得る補足データを含んでも良い。状況情報は、暗号メッセージダイジェストのようなサインされる文書に関する情報も含んでも良い。
【0030】
再び
図1Aを参照すると、手書き検証サーバ700は、手書き試験サンプルを基準サンプルと比較して、試験サンプルが真正かを判定する検証方法を実行する。検証方法の結果は、手書き検証サーバ700によって出力され得る。少なくとも1つの実施態様において、手書き検証サーバ700は、以下で更に詳細に記載するように、
図4で説明される検証方法を実行する。
図1Aに示す例において、検証方法の結果は、手書き検証サーバによって更なる処理(例えば、ディスプレイ用に結果の形式を整えること、結果を記憶すること、結果を分析すること、他の装置に結果を伝送すること等)のために後処理部790に提供される。後処理部790は、手書き検証サーバ700及び/又は1つ以上の他の装置内に実装できる。
【0031】
手書き検証サーバ700は、種々の形状(例えば、統合データ、ストリームデータ、未加工ペンイベント情報)で提供される手書き入力データの真正性を検証し得る。例えば、
図1Aに示すように、入力装置10及び12は、未加工の手書きデータを手書きデータ処理部100に伝送できる。手書きデータ処理部100は、以下で詳細に記載するように、ストリームデータ又は統合データを生成し、かつネットワーク20を通じて手書き検証サーバ700に伝送し得る。
【0032】
図1Bは、説明に役立つ手書きデータ処理部100の機能ブロック図である。手書きデータ処理部100は、手書き入力装置、又は入力装置と直接(例えばUSB(Universal Serial Bus)接続を介して)若しくはネットワークを通じて通信できる他の装置内に(例えば、ソフトウェア又はハードウェアとして)実装できる。
【0033】
図1Bに示した例において、手書きデータ処理部100は、入力取扱部101と、ストリーム生成部200と、損失性(非可逆)データ処理部300と、統合部400とを含む。入力取扱部101は、例えばストリーム生成部200及び損失性(非可逆)データ処理部300による更なる処理のために、未加工の手書きデータを転送することに関与する。ストリーム生成部200は、入力として未加工の手書きデータを受信し、かつストリームデータ(例えば、ヘッダ情報と共に、x座標、y座標に関する個別のストリーム、及び圧力情報)を生成する。少なくとも1つの実施態様において、ストリーム生成部200は、無損失性(可逆)符号化技術を使用して、複数のストリームを含む圧縮ストリームデータを生成する。
【0034】
図1Bに示す例において、損失性(非可逆)データ処理部300は、入力として未加工の手書きデータも受信する。損失性(非可逆)データ処理部300は、損失性(非可逆)データ処理技術(すなわち、データ損失を伴うことがある技術)を使用して、(手書きを画像とするために使用され得る)ストロークデータ及び/又は画像データ(例えば、PNG(Portable Network Graphics)フォーマット又は他の画像データフォーマットでの画像データ)を生成し得る。例えば、損失性(非可逆)データ処理部300は、手書き(例えば、サイン)を視覚的に表示するための描画処理を行うために必要とされることがある、データフォーマット及び処理をするように構成されたインクエンジンを含んでも良い。ストロークデータ及び/又は画像データが、未加工の手書きデータに基づき生成される
図1Bに示した構成の代わりに、損失性(非可逆)データ処理部300は、ストリーム生成部200によって提供されるストリームデータに基づき出力を生成し得る。
【0035】
図1Bに示す例において、統合部400は、ストリームデータ、及びストローク及び/又は画像データを入力として受信し、統合手書きデータを出力する。統合部400は、統合データを単一の出力ファイル(例えば、画像ファイル)で出力するか、又はストリームデータ及び/又はストローク/画像データを別個に出力することができる。少なくとも1つの実施態様において、ストリームデータは、符号化バイナリフォーマットに変換でき、かつ統合データは、ステガノグラフィック技術によりデジタル画像に挿入された符号化バイナリデータというデジタル画像の形態を取り得る。
【0036】
図1A及び
図1Bに示す構成は例に過ぎず、他の多くの構成が可能である。例えば、
図1Aでは、手書き入力及び手書き検証が、異なる装置内で(例えば、それぞれ入力装置及び手書き検証サーバ700内で)実行されるとして記載されるが、手書き入力及び手書き検証は、1つの装置内でも実行できる。もう1つの例として、
図1Aでは手書き入力装置及び手書き検証サーバがインターネット20のような広域ネットワークを通じてクラウドコンピューティング配列1内で通信を行うものとして描写されているが、入力装置及び手書き検証サーバは、他の方法(例えば、ローカルエリアネットワークを通じて)でも通信できる。もう1つの例として、手書きデータ処理部100がいかにして動作するかの詳細は、実装及び/又は状況に応じて異なることがある。もう1つの例として、手書きデータ処理部100は、本明細書に記載された技術に従って検証すべき手書きデータを提供するために必須ではない。
図1Aに示す例において、入力装置14は、未加工のペンイベント情報を生成し、手書きデータ処理部100による中間処理なしで、未加工のペンイベント情報をネットワーク20を通じて手書き検証サーバ700に伝送する。
【0037】
本明細書に記載された実施態様によれば、検証すべき手書きサンプル(又は「試験サンプル」)は、手書きサイン(
図2A参照)、又は印刷文字若しくは芸術的図画のような他のタイプの手書きであり得る。
【0038】
記載された実施態様において、手書きデータは、ペンイベントのシーケンスとして表され得る。概して、ペンイベントは、(例えば、デジタイザの表面上又は限定された範囲内にある間に)特定の時間でのペン先の位置を記録する。x/y座標値に加えて、手書き入力装置によっては、ペン角度、筆記速度、筆記圧力等のような他の情報を検出することもある。装置の機能に応じて、ペンイベントに関連したペンデータは、筆圧及び角度のような追加の測定を含んでも良い。
図2Bに示す例において、回転、高度及び方位角が、ペン装置に関して検出され得るパラメータの中に入る(大きな黒い矢印208によって表される)。
【0039】
再び
図2Aを参照すると、説明に役立つ手書きサイン206Aは、複数のペンイベントを含み、ペンイベントは、ペンが信号範囲内に留まる限り、ペンがデジタイザ表面から持ち上げられている時にもペンイベントが検出され続けることを可能にする技術(例えば、EMR技術)を使用して、ペン装置及びデジタイザによって検出される。
図2Aに示す例において、ペンが上にある時に検出された座標は、より薄い点として示され、かつペンが下にある時に検出された座標は、より濃い点として示されている。
【0040】
図2Cは、ペンイベント及びかかるペンイベントのデータシーケンス順序212を表すために使用され得るデータ構造例210の説明図である。ペンイベントのシーケンスは、未処理の形式及び/又は(例えば、ペンイベント情報をストリームデータ及び/又は統合データの形式にするために使用され得る手書きデータ処理部100を介して)前処理された形式での例えば手書き検証サーバ700への入力として提供され得る。
図2Cに示す例において、データ構造210は、「構造体」又は「クラス」タイプとして実装され得る。あるいは、データ構造210は、他の方法で実装され得る。記載された実施態様において、ペンイベントは、データシーケンス順序212において起こった順序で提供される。
【0041】
図3は、手書き検証サーバ(例えば、
図1Aに示す手書き検証サーバ700)において実行され得る手書き検証サービス700Aの機能ブロック図である。
図3に示す例において、手書き検証サービス700Aは、種々のフォーマットの手書きデータを処理するように構成されたサブセクション720、730及び740を含む手書き試験サンプルデータ取扱部710を含む。説明される例において、統合データ取扱サブセクション720、ストリームデータ取扱サブセクション730、及び未加工の手書きデータサブセクション740は、それぞれ統合データ、ストリームデータ及び未加工の手書きデータを入力として受信し、ペンイベントパラメータを出力として生成するように構成される。データ取扱部によっては、他のデータも出力可能であっても良い。例えば、
図3に示す例において、統合データ取扱部720は、統合データから画像データを抽出し、画像データを更なる処理のために後処理部790Aに伝送するように構成される。
【0042】
図3に示す例において、検証部750は、手書き試験サンプルデータ取扱部710からペンイベントパラメータを受信し、リポジトリ760から基準サンプルを受信する。(リポジトリ760は、
図3に示すように手書き検証サービス700Aとは別の装置上に実装されてもよいし、サービス700Aと同じ装置上に実装されてもよい。)検証部750は、ペンイベントパラメータから導き出された特徴を基準サンプルの特徴と比較することにより手書き試験サンプルの真正性を検証する。
【0043】
動的手書き検証方法例が、
図4に示される。
図4に示す検証方法は、手書き検証サーバ(例えば、
図1Aの手書き検証サーバ700)又は他の装置によって実行され得る。
図4に示す検証方法は、クラウドコンピューティング構成(例えば、
図1Aに示すクラウドコンピューティング配列1)又は他の構成で実行され得る。記載された実施態様において、検証方法は、手書き試験サンプル中の手書きの幾何学的パラメータを使用して、基準サンプル中の特徴と比較され得る手書き特徴を導き出す。
【0044】
図4に示す例において、手書きの幾何学的パラメータは、ステップS101で利用可能なペンイベントパラメータから選択される。この例において、手書きの幾何学的パラメータは、x座標値と、y座標値とを含む。幾何学的パラメータが選択される利用可能なペンイベントパラメータは、x座標値及びy座標値に加えて、圧力値、角度値、タイムスタンプ情報等を含んでも良い。利用可能なペンイベントパラメータは、手書きを作り出すために使用された入力装置の機能のような因子によって決まっても良い。
【0045】
通常の手書きの速度には変化があるので、一定の時間間隔でx座標及びy座標位置の検出を行うと、検出される位置の間隔が変化することになる。
図2Aに示すサイン例を再び参照すると、ペンイベントの座標位置206Bは、一定の時間間隔(例えば、1秒当たり133回、1秒当たり200回のサンプルレート、又は他のサンプルレートで)で検出される。それ故に、座標位置206B間の大きな間隔は、ペンが速く動くサインの部分を示し、かつ狭い間隔は、ペンが遅く動く部分を示す。
【0046】
再び
図4を参照する。ステップS103で手書き試験サンプル及び基準サンプル中の特徴点の比較を容易にするために、特徴点が、手書きの幾何学的パラメータから導出される。このように導出された特徴点は、サンプルの手書き経路を辿るものであるが、ペンイベントと同じ場所に置かれる必要はない。少なくとも1つの実施態様において、特徴点は、手書き経路に沿って均等に配置される。しかしながら、特徴点は、他の方法で配置され得る。
【0047】
図5は、手書き経路に沿った特徴点の間隔を示す図である。
図5に示す例において特徴点は均等に分布する。一般的に、間隔を減少させることは、特徴点の数を増加させる傾向にあり、そのことは、処理時間増加に繋がり得る。他方で、間隔を増加させることは、特徴点の数を減少させる傾向にあり、そのことは精度低下及び手書き中の重要な特徴の脱落に繋がり得る。少なくとも1つの実施態様において、1mmの一定の間隔が、合理的な処理時間を重要な手書き特徴の正確な検出と釣り合わせるための妥協点として使用される。
【0048】
使用される特定の間隔は、実装に応じて異なり得る。例えば、特徴点間の間隔は、均一である必要はない。1つの代替的なアプローチによれば、特徴点は、密集したペンイベント間の間隔が対応する特徴点に関して拡張される、密度正規化処理に従って位置決めされ得る。かかるアプローチにおいて、特徴点は、オリジナルのペンイベントと同じ場所に置かれても良いか、又は置かれなくても良い。密度正規化処理は、特徴点をペンイベントがまばらな手書き経路の部分に挿入することを含んでも良い。密度正規化処理は、手書きの速度及び加速度に関連する情報を保存することに役立ち得る、特徴点間の幾らかの間隔変動をなおも許容しながら、サンプル間の点密度差を解消するために、試験サンプル及び基準サンプルに応用され得る。密度正規化処理は、装置によって得られたサンプル間の特徴点の比較可能なセットを異なるサンプリングレートで提供することに役立ち得る。
【0049】
再び
図4を参照すると、各特徴点(ステップS103参照)は、手書き経路に沿って一定の空間間隔で計算された対応するx位置及びy位置と関連する。少なくとも1つの実施態様において、それぞれの特徴点のx位置及びy位置は、
図6に示すように算出される。
【0050】
図6に示した例において、特徴点のx位置(X)及びy位置(Y)はそれぞれ、手書き又は手書きのある部分(例えば、ストローク)のそれぞれの方向の全体値(例えば、幅(w)又は高さ(h))に関連するx座標値又はy座標値の比率として定義される。
【0051】
少なくとも1つの実施態様において、特徴点は、ペンがタブレット表面と接触していなかったペンアップ区域を含む手書きサンプルの全長に関して定義される。状況により、ペンアップ情報は、ストローク間で利用できない。このことは、例えばペンアップデータを支援しない捕捉装置が使用される時、又はペンアップデータが検出され得ないように、ペンがデジタイザから間隔を置いて保持される時に起こり得る。ペンアップ情報が利用できないならば、特徴点は、ペンダウンペンイベントの限界内で生成され得る。
【0052】
再び
図4を参照すると、ステップS105で、方向(D)及び曲率(C)が、導き出された特徴点のx位置及びy位置から導き出される。この例において、ステップS105で導き出された方向及び曲率値は、オリジナルのペンイベントからのx/y座標値に基づかない。少なくとも1つの実施態様において、方向及び曲率は、
図7A及び
図7Bに示すように、1つ前の特徴点及び後続の特徴点のx位置及びy位置に基づき、現在の特徴点に関して導き出される。
【0053】
図7Aに示す例において、現在の特徴点802の方向Dは、1つ前の特徴点804と、次の特徴点806との間の線の角度として(水平線に対するラジアンで)算出される。
図7Bに示す例において、現在の特徴点802の曲率Cは、現在の特徴点802を1つ前の特徴点804に接続する線と、現在の特徴点802を次の特徴点806に接続する線との間の線の角度として(ラジアンで)算出される。
【0054】
再び
図4を参照すると、ステップS107で、特徴照合が、特徴点の幾何学的特徴(例えば、x位置、y位置、方向、曲率)を使用して実行される。この例において、特徴照合の目標は、真正な手書きにおける自然な変動を考慮するために柔軟性を提供しながら、検証すべき手書きサンプル(又は試験サンプル)及び基準サンプル中の対応する幾何学的特徴をリンクすることである。ステップS107の特徴照合は、以下で更に詳細に記載するように、1つを超える特徴照合パスを含んでも良い。
【0055】
図8は、例えば、
図4のステップS107の特徴照合技術により、試験サンプル810と、基準サンプル820との間で構築されるマッピングの説明図である。
図8で説明される例において、マッピングは、試験サンプル810及び基準サンプル820中の(円で表す)対応する特徴点の間で構築される(破線で表す)リンクを含む。リンクの各端部での手書き線の一致は、リンクの「エネルギー」と呼ばれ得る。この例において、エネルギーは、リンクされた特徴点のx位置(X)、y位置(Y)、方向(D)、及び曲率(C)値の間の差の観点から測定される。
【0056】
少なくとも1つの実施態様において、エネルギーは、次式に従って測定される。ただし、式中、e
iは、基準サンプルrを試験サンプルtと接続するi番目のリンクのエネルギーであり、X
r、Y
r、D
r及びC
rは、基準サンプルのx、y、方向及び曲率値であり、X
t、Y
t、D
t及びC
tは、試験サンプルのx、y、方向及び曲率値であり、かつk
x、k
y、k
d及びk
cは、様々なエネルギー成分の重み係数である。
【数1】
【0057】
少なくとも1つの実施態様において、リンクの最適なセットは、次式により定義できる、システムの最小総エネルギー(E)を達成するものである。ただし、式中、e
iは、i番目のリンクのエネルギーであり、k
uは、非リンク特徴のエネルギーを表す定数であり、かつn
uは、(もしあれば)非リンク特徴の数である。
【数2】
【0058】
少なくとも1つの実施態様において、数値アニーリングが、各リンクの端部での特徴点間の差を最小限に抑え、かつそれによりエネルギーEを最小限に抑えるために使用される。特に、少なくとも1つの実施態様において、シミュレーテッドアニーリング処理が、リンクに擬似ランダム変化を起こすために使用され、そのことは、全エネルギーを増加又は減少させることがある。
【0059】
図9A〜
図9Dを参照してこれから記載する1つのアニーリング処理の例において、全エネルギーの低下をもたらす変化は常に許容される。一方、エネルギー増加をもたらす変化は、漸進的に引き下げられ得るシステムの現在温度のような因子に応じて、許容されることがある。本明細書において使用される用語「温度」は、システムの数学的エネルギーを指し、かついかなる実際の熱エネルギーも指さない。同様に「冷却」のような関連用語は、数学的エネルギーの低下を指すために使用され、かつ実際の熱エネルギーのいかなる変化も指さない。
【0060】
「エネルギー」及び「温度」は、アニーリング処理をモデル化するために使用され得る関連用語である。少なくとも1つの実施態様において、アニーリング処理の目標は、2つのサイン中の対応する特徴間のリンクの最良のセットを見出すことである。可能なリンクパターンのいずれかの優劣は、リンク特徴点での位置、線の方向及び曲率のような幾何学的特徴の類似性を算定することによって判定され得る。リンクのエネルギーは、2つの特徴点間の差の尺度である。ゼロエネルギーは同一の特徴を有する状態を示し、差が大きくなるにつれてエネルギーが増加する。
【0061】
アニーリング処理は、リンクのセットを調整することによってシステムの総エネルギーを最小限に抑えようと試みる。しかしながら、総エネルギーを増加させる個別の調整が全く許されないとするならば、アニーリング処理が総エネルギーの局所的最小値に陥る確率が増加する。この状況に対処するために、アニーリング処理は、エネルギー増加をもたらす何らかの変化を可能にし、それにより後続の変化が低い総エネルギーを達成できる可能性を許容することによって、プロセスが局所的最小値に陥るようになる確率を低下させるように設計されている。
【0062】
システムの温度は、総エネルギーを増加させる変化の可能性を制御するために使用され得る。少なくとも1つの実施態様において、温度は当初、エネルギー増加が更に頻繁に起こることを可能にする比較的高い値に設定される。温度は、アニーリング処理が進むにつれ低下する。温度が下がると、エネルギー増加の可能性は、システムの安定に達するまで低下する。
【0063】
図9Aに説明されるアニーリング処理の例をここで参照すると、ステップS201で変数E(エネルギー)、T(温度)、I_step及びI_cycleが初期化される。ステップS203で、リンケージが変更される。この文脈において、用語「リンケージ」は、試験サンプルと、基準サンプルとの間の1つ以上のリンクを一般的に指すために使用される。それ故にステップS203で、試験サンプルと、基準サンプルとの間のリンクのセットが何らかの方法で変更される。(リンクのセットが変更され得る処理の例は、
図9Cを参照して、以下で詳細に記載する。)
【0064】
ステップS205で、変更したリンケージの総エネルギー(E_new)が以前の状態のリンケージの総エネルギー(E_prev)と比較される。E_newがE_prev以下であるならば、リンケージに対する変更は、ステップS207で保持される。E_newがE_prevよりも大きいならば、リンケージに対する変更がなおも許容され得るかに関してステップS217で判定が行われる。
【0065】
少なくとも1つの実施態様において、エネルギー増加は、変更の大きさ(dE)及び現在温度を含む比率次第で許容できる。
図9Bに示す例において、エネルギー増加(正のdE)は、次の条件が満たされる時に、可能にされる。ただし、式中、Uは、0≦U≦1.0の範囲における一様偏差法による値であり、dEはリンケージに対する変更に起因する全エネルギーの変化であり、Tはシステムの現在温度である。一様偏差は、1つ以上の擬似ランダム値Uを生成するために使用される。単一の一様偏差生成器は、試験サンプルと、基準サンプルとの間の全比較のために使用され、かつ同じシードによって常に初期化される。このことは、試験サンプルと、基準サンプルとの比較が常に同じ結果を返すことを確実にする。
【数3】
【0066】
リンケージが変更され得る処理の例(
図9AのステップS203参照)を
図9Cを参照して記載する。ステップS203−1で、特徴点が基準サンプル中で選択される。ステップS203−2で、一様偏差法による値Uが定数K_RemoveLinkよりも小さいかに関して判定がなされる。
【0067】
少なくとも1つの実施態様において、ステップS203−2は、値Uを定数K_RemoveLinkと比較することによって、リンクを外すか、又は新規リンクを設定するかを擬似ランダムに判定することによって、リンケージに対する変更毎に実行される。K_RemoveLinkの値は、判定を既存のリンクを外すこと又は新規リンクを設定することに偏らせるように設定され得る。実験によれば、約30%の変更がリンクを外すことからなるならば望ましいことが示されるが、その場合にK_RemoveLinkは、0.3に設定される。定数K_RemoveLinkの値は、実装に応じて異なり得る。
【0068】
UがK_RemoveLinkよりも小さいならば、リンクは、ステップS203−3で選択された特徴点から外される。(このステップにより、アニーリング処理は、リンクを、それに代わる他のものを挿入せずに外せるようになり、リンケージに対する更に可能な変更が達成可能であることを確実にできるようになる。)そうでない場合、試験サンプル中の特徴点がステップS203−4で選択され、かつ、基準サンプル及び試験サンプル中の選択された特徴点の間にステップS203−5でリンクが挿入される。ステップS203−6では、新規に挿入されたリンクと交差する既存のすべてのリンクが、リンケージから外される。
図9Dに示した例では、新規リンク830が3つの既存のリンクと交差しており、これらの3つの既存のリンクは、
図9Cに記載された処理の例によりリンケージから外される。
【0069】
一般的に、最小エネルギー状態を達成するに十分な回数の変更がリンケージに対してなされ、かつ、結果が最適状態に落ち着くのに十分な程度に温度が低下することが保証されることが望ましい。再び
図9Aを参照すると、ステップS209〜S215は、アニーリング処理が終わりに達したかを判定するために使用される。
図9Aに示す例において、I_cycleは、ステップS211で最大値(Max_cycles)に到達するまでインクリメントされ(ステップS209参照)、かつI_stepは、ステップS215で最大値(Max_steps)に到達するまでインクリメントされる(ステップS213参照)。I_stepが、ステップS215でインクリメントされる時、全システムの温度(T)も、Tに冷却係数(K_cool)を乗じることによって低下する。ステップ数は、各段階で冷却係数によって低下した温度によってなされる温度変化の数である。サイクル数は、各温度レベルで試みた変化の数である。Max_cycles、Max_steps及びK_coolのような値は、実装に応じて異なり得る。
【0070】
アニーリング処理は、更に多数のサイクル及び更になだらかな温度低下を使用することにより、処理速度を可能な代償として更に正確にできる。少なくとも1つの実施態様において、アニーリングパラメータ(例えば、サイクル数、温度低下のための冷却係数)は、大部分の場合に適切な精度を迅速に得るように選択される。しかしながら、このことは、アニーリングが適切だったならば許容可能なリンケージを有したであろう2つのサンプル間でのリンケージ不良を、時折もたらし得る。
【0071】
リンケージ不良が、サンプル間の非類似、又は不正確な初期アニーリング処理の結果であるかの判定を助けるために、第2アニーリング処理が、異なる初期シードによって実行され得る。アニーリングが繰り返され得る処理の例は、
図9Eに説明される。ステップS301で、一様偏差が固定値に初期化される。ステップS303で、
図9Aに示す処理のようなアニーリング処理が実行される。ステップS305で良好な照合が2つのサンプル間で見出されるならば、サンプルが一致するという判定がステップS311でなされる。他の属性(例えば、時間値、圧力値、角度値)も、サンプルの一致を確認するためにステップS315でチェックされ得る。
【0072】
良好な照合が、ステップS305で見出されないならば、もう1つのアニーリングの試みがなされるかを判定するために、ステップS307でチェックが実行される。ステップS307で実行されるチェックは、すでに実行されたアニーリングステップ数を最大値と比較することを伴っても良い。例えば、少なくとも1つの実施態様において、2つのアニーリングの試みがまだなされなかったならば、アニーリングステップS303は、同じランダムシーケンスが、後続のアニーリングステップで使用されないことを保証するために、一様偏差生成器をリセットせずに繰り返される。そうでない場合、2つのアニーリングの試みがなされ、サンプルが一致しないという判定がステップS313でなされる。
【0073】
アニーリングが実行された後、結果として生じたリンケージは、各々が既知のエネルギーを有するリンクのセットを含む。しかしながら、サンプルが同一、又はほぼ同一でない限り、全ての特徴点がリンクされるとは限らない。リンケージの質は、リンクされる特徴点の比率(Pl)及び平均リンクエネルギー(Em)を次式によって計算することによって算定され得る。ただし、式中、P
lは、リンクされる特徴の比率であり、n
lは、リンクの総数であり、n
rは、基準サンプル中の特徴数であり、かつn
tは、試験サンプル中の特徴数である。リンケージの質を算定するために上記式を使用する実施態様において、一致するサインは、高いP
l値及び低いEm値を有する。反対に、類似しないサンプルは、低いP
l値及び高いEm値を有する。
【数4】
【数5】
【0074】
一致するサイン及び一致しないサインに関するP
l及びEm値の予期される差は、経験的に測定され得る。
図10において、多数のサインに関する比率Pl及び平均リンクエネルギーEmが示された試験の結果が、示される。破線内部の領域1010内のプロット点は、別の人々からの、かつそれ故に一致しない可能性が高いサンプルの比較と各々が関連する。点線内部の領域1020内のプロット点は、同一の人物からの、かつそれ故に一致する可能性が高い比較サンプルと各々が関連する。
【0075】
図10に示す例において、領域1010内の大多数のデータ点は、一致しないサンプルと関連したPl及びEm値を反映し、かつ領域1020内の大多数のデータ点は、一致するサンプルと関連したPl及びEm値を反映する。「境界」という標識を付した区域内で、領域1010及び1020間に幾らかの重複があり、Pl及びEm値は、サンプルが一致するか、又は一致しないかを明瞭に示さない。しかしながら、
図10の結果は、多くの場合に、手書きの形状に基づき、試験サンプル及び基準サンプルが一致するかの初期算定を行うことが可能であることを示す。少なくとも1つの実施態様において、この段階で一致しないと識別された試験サンプルは、0の検証スコアを自動的に与えられ、かつ試験サンプルが基準サンプルと一致するかを判定するために、更なる処理は行われない。
【0076】
Pl及びEm値は、多くのシナリオにおいてリンケージの質の測定に有効であるが、サンプルの実質的な部分が非常に類似するならば、試験サンプルと、基準サンプルとの間に有意差を表さないことがある。試験サンプルと、基準サンプルとの間に非リンク特徴点の有意な部分があるか判定するために、追加のチェックを実行することによって手書き検証の精度を改良することが可能である。
【0077】
再び
図4を参照すると、ステップS109で、試験サンプル及び基準サンプルが十分に一致するかに関して判定がなされる。
図4に示す例において、試験サンプル及び基準サンプルが、ステップS109で十分に一致すると判定されるならば、ステップS113で検証の結果を出力する前に、更なる処理が実行される(ステップS111を参照、以下で更に詳細に記載する)。しかしながら、試験サンプル及び基準サンプルが、ステップS109で十分に一致しないとして判定されるならば、サンプルが一致しないことを示す結果が、更なる処理なしに、ステップS113で出力され得る。
【0078】
ステップS113で生成した出力は、ブール値のような、検証の結果を示すために適したいかなる出力でもあり得る。あるいは、単なるバイナリ又は真/偽の結果を超えることの示唆を可能にする異なる値が使用され得る。少なくとも1つの実施態様において、ステップS113で生成した出力は、(試験サンプル及び基準サンプルが非常に異なることを示す)0から(試験サンプル及び基準サンプルが非常に類似することを示す)1.0に及ぶ浮動小数点値を含む。
【0079】
図11は、連続した非リンク特徴点の計数を含む照合処理例S109を説明する。
図11に示す例において、ステップS109−1で、リンケージの質の初期測定が、試験サンプルと、基準サンプルと間のリンケージに関するPl及びEm値を判定することによって実行される。
図10を参照して以上で述べたように、ステップS109−2で、試験サンプル及び基準サンプルが一致しないことをPl及びEm値が示すならば、処理S109は、ステップS109−5で、試験サンプル及び基準サンプルが良好な照合でない(一致しない)ことを示す結果を返し、かつ照合処理S109における更なる処理は、省略され得る。しかしながら、試験サンプル及び基準サンプルが一致することをPl及びEm値が示すならば、ステップS109−3で、連続した非リンク特徴点が計数される。
【0080】
図12A及び
図12Bは、
図11で説明された照合処理S109により処理できる、試験サンプル及び基準サンプルをそれぞれ示す。
図12Aは、「Z」形状を有する試験サンプル例を示し、かつ
図12Bは、類似した「Z」形状を有するが、追加のループのある基準サンプル例を示す。
図12A及び
図12Bに示される2つのサンプルの実質的な部分は、同一又は非常に類似している。従って、
図12A及び
図12Bに示される特徴の大部分が、非常に低いリンクエネルギーによってリンクできる。
図12Bに示す基準サンプル中の追加のループは、リンクされないかもしれないが、全体的なリンケージ及びリンクエネルギーは、真正なサインの間の自然な変動において予期されるものと類似することがある。
【0081】
図12A及び
図12Bに示されるサンプルは、試験サンプル中の有意な欠損特徴にもかかわらず、Pl及びEm値が試験サンプル及び基準サンプルが一致することを示すシナリオの説明に役立つ。(
図11で説明したような)連続した非リンク特徴点の追加のチェックが、照合処理の精度を改良するために使用できる。
図12A及び
図12Bに示される説明に役立つシナリオにおいて、
図11に示される照合処理は、それぞれのサンプルが欠損特徴のために一致しないと判定するために使用できる。
【0082】
再び
図11を参照すると、ステップS109−4で、非リンク特徴点が有意であるか判定がなされる。非リンク特徴点が有意であるならば、処理S109は、ステップS109−5で、試験サンプル及び基準サンプルが良好な照合でない(一致しない)ことを示す結果を返す。非リンク特徴点が有意でないならば、処理S109はステップS109−6で、試験サンプル及び基準サンプルが良好な照合である(一致する)ことを示す結果を返す。
【0083】
少なくとも1つの実施態様において、非リンク特徴点が有意であるか判定することは、非リンク部分内の連続した非リンク特徴点の数が所定値NUよりも大きいか判定することを含む。NUよりも大きい数は加えることができ、かつこれらの数の全長は、全体的なサンプル長の比率(「比率なし(proportion free)」又はPfと称される)として表され得る。NU以下の数は、無視できる。NU値は、実装に応じて変動し得る。所定値を超えるPf値を有するサンプルは、一致しないとみなされ得る。
【0084】
再び
図4を参照すると、試験サンプル及び基準サンプルが、手書き形状に基づき、ステップS109で十分一致していると当初判定されたならば、追加の評価が、手書き形状に限定されない他のペンイベントパラメータを使用してステップS111で実行される。
【0085】
少なくとも1つの実施態様において、ステップS111で実行される追加の評価は、筆記速度のような時間関連ペンイベントパラメータの分析を含む非幾何学的な特徴照合を含む。個人は、ペンで書く方法において習慣的リズムを作り出す傾向にあり、そのことは、ペン速度及び加速度が、同一の人物によってなされる手書き(例えば、サイン)に関して(同一でないが)非常に類似する傾向にあることを意味する。従って、他のステップで分析される幾何学的特徴とは異なる時間関連ペンイベントパラメータは、手書き検証方法において(例えば、幾何学的特徴照合の補完として)有用であり得る。少なくとも1つの実施態様において、幾何学的特徴は、それぞれの特徴に対応する経過時間と共に未加工手書きデータから抽出でき、経過時間値の比較を可能にする。
【0086】
図13Aは、2つの手書きサンプル中の特徴点に対応する経過時間値の比較結果を説明するグラフである。結果は、リンクされた特徴点に関する経過時間に対応するプロットとして
図13で説明される。プロット中の各点はリンクに対応し、かつ基準サンプル(水平軸)中の特徴点までの経過時間、及び試験サンプル(垂直軸)中のリンクされた特徴点までの経過時間を表す。一致するサインに関して、サイン開始からの経過時間は、リンクされた特徴点の各対に関して類似するはずである。
【0087】
図13Aに示す例において、点は、速度の(長方形の対角線傾斜、又は水平からの角度によって)全体的な一致、及び(垂直な矢印によって示すように、長方形の狭い寸法によって)変動性を表す長方形の内側に示される。この状況における全体的な一致は、それぞれのサンプルの平均総経過時間(及びそれ故に速度)を指す。この例において、約1:1の長方形の傾斜は、サンプルが、一致する平均速度を有することを示す。この条件における変動性は、局所的な速度変化の差を指す。速度の全体的一致及び変動性における許容可能な限界は、同一の人物によってなされることが知られているサインサンプルの試験を通して測定され得る。
【0088】
再び
図4を参照すると、ステップS111で実行される追加の評価は、筆圧又はペン角度のような、他のパラメータの分析を含むこともできる。筆圧は、各特徴点での圧力の状態を算定すること(例えば、増加、減少又は安定)によって確実に比較され得る。圧力の一致は、リンクの各端部に同じ圧力状態を有するリンクの比率Ppとして計算され得る。Ppの許容可能な値は、同一の人物によってなされることが知られている多数のサインサンプル中の圧力変動を測定することによって判定され得る。
【0089】
概して、筆圧は、絶対力値よりもむしろ相対値として測定される。圧力値は、装置依存性であり、ペン材料の構造、ヒステリシス、及び経年劣化の差のような因子により、感度の変動が同じモデルの装置間でも起こる。従って、絶対力値を使用してサンプル間で信頼できる比較を行うことは、特に、同一の人物がサンプルを提供するために異なる入力装置を使用し得た場合に、一般的に可能でない。
【0090】
第1の説明に役立つ筆圧値比較方法において、筆圧は、各特徴での圧力状態、すなわち圧力が、各点で増加しているか、減少しているか、又は安定しているかを算定することによって比較され得る。次に一致は、各端部で同じ圧力状態を有するリンクの比率Ppによって算出される。しかし、少なくとも一つの実験において、第1の方法は、圧力が相当な期間、ほぼ一定であるときに不適切である場合がある。その際、わずかな相違も異なる符号勾配として認められ、大きなエラーをもたらすことがある。
【0091】
第2の説明に役立つ筆圧値比較方法において、筆圧は、次式によりサイン全体に関する全体的圧力−時間区域の比率として正規化された、サイン開始から特徴iまでの圧力−時間図の区域、P
iを計算することによって確実に比較され得る。ただし、式中、P
iは特徴iまでの圧力−時間図の比率であり、pは筆圧であり、tはサイン開始から特徴iまでの時間であり、Tは全体的サイン時間である。
【数6】
図13Bは、上記式を説明する図である。
図13Bで、水平軸はサイン開始からの経過時間を示し、垂直軸はペン先によって記録された圧力を示す。点線により定義された領域内のグラフの影付き区域は、時間0から時間tまでの筆圧p(t)の和を示す。
【0092】
図13Cは、2つの手書きサンプル中の特徴点に対応する圧力−時間値の比較結果を説明するグラフである。結果は、リンクされた特徴点に関する圧力−時間値に対応するプロットとして
図13Cで説明される。プロット中の各点は、リンクに対応し、かつ基準サンプル(水平軸)中の特徴点までの圧力−時間グラフの比率、及び試験サンプル(垂直軸)中のリンクされた特徴点までの圧力−時間グラフの比率を表す。一致するサインに関して、圧力−時間グラフの比率は、リンクされた特徴点の各対に関して類似する。この例で、グラフの最終点は、定義により常に(1.0、1.0)であることに注意されたい。
【0093】
図14は、試験サンプルが基準サンプルと一致するか、又は一致しないかに関する判定がなされた後に使用され得る後処理方法例のフロー図である。
図14に示される方法例において、試験サンプルがステップS401で基準サンプルと一致すると判定されるならば、試験サンプルは、ステップS403でもう1つの基準サンプルとしてリポジトリに加えられ得る。試験サンプルが基準サンプルと一致すると認められる時、試験サンプルは、既存の基準サンプルを補完し、かつ将来の検証方法の精度を潜在的に改良するために使用され得る。更に、
図14に示される方法例において、ステップS405で検証結果は、ディスプレイ用に描画され得る個別の画像データと共に出力され得る。例えば、試験サンプル用の手書きデータが画像データと統合されたならば、手書きの画像が検証方法の結果(例えば、手書きが検証されたか、又は検証されなかったか)のインジケーターと共に表示され得る。
【0094】
図15は、説明に役立つコンピュータシステム及びサインの真正性を検証する方法の図である。
図15に示されるシステム及び方法で使用できる特定のサイン検証技術は、実装に応じて、本明細書に記載されたそれと異なり得る。
図15に示す例において、サインは、銀行取引の状況における契約になされる。
【0095】
図15に示すように、ABC銀行によって提供されるサーバ1510は、オリジナルの契約書類を手書き入力装置10にサインのために提供する。入力装置10は、ユーザが契約にサインすることに応答してサインデータを生成し、かつサインデータを、サインした契約の画像と統合する。入力装置10は、統合ファイルをサイン検証サーバ700Bにネットワーク20(例えば、インターネット)を通じて提供する。手書き入力装置10は、専用の手書き収集装置、又はペン入力能力を有する適切に構成されたスマートフォン若しくはタブレットコンピュータのような汎用装置としてとして実装できる。
【0096】
図15に示す例において、サーバ1510(又はABC銀行によって制御される他の何らかのサーバ)は、ユーザIDをサイン検証サーバ700Bに提供する。サイン検証サーバ700Bは、検証方法において使用するためのリポジトリ760内で適切な基準サインを選択するためにユーザIDを使用する。
【0097】
図16は、サイン検証サーバ700Bが、1つ以上の識別子(例えば、(文書をサインのために提供した団体を特定する)サービスID及びサーバ1510によって提供されるユーザID)に基づき基準サインを調べるために使用し得る表1690を示す。サービスIDは、サーバ1510、入力装置10などによって提供されても良い。表1690に示すように、基準サインはいかなる言語であっても良く、かつ1つを超える基準サインが単一のユーザに関して利用可能であっても良い。
【0098】
再び
図15を参照すると、サイン検証サーバ700Bは、サインを基準サインと比較することにより、入力装置10によって提供されたサインを検証する。サイン検証サーバ700Bは、サインが検証される(「OK」)か、又は検証されない(「NG」)かを示す検証結果を、入力装置10に返す。
【0099】
図17は、ユーザのサインに基づいてユーザを認証するために使用され得る、説明に役立つコンピュータシステム及び手書きに基づくユーザ認証方法の図である。
図17に示される説明に役立つコンピュータシステム及び手書きに基づくユーザ認証方法は、本明細書に記載された手書き検証技術、又はユーザ認証のための他の手書き検証技術を、実装に応じて使用できる。
【0100】
図17に示す例において、入力装置10は、ペン/スタイラス装置11によりサインすることによってコンピュータシステムにサインインしようと試みるユーザに応答して試験サインデータを生成する。入力装置10は、サインデータをユーザ装置ID(例えば、ペン/スタイラス装置11と関連したスタイラスID)と共にサインサインインサービス1720にネットワーク20(例えば、インターネット)を通じて提供する。
【0101】
図17に示す例において、サインによるサインインサービス1720は、入力装置10によって提供される試験サインデータに基づき「名前ID」を検索する。サインによるサインインサービス1720は、検証方法を使用して、入力装置10によって提供された試験サインデータが、データベース1730に記憶された1つ以上の基準サインと関連した対応する基準サインデータと一致するかを判定し得る。
【0102】
図18Aは、サインデータに基づき(例えばデータベース1730中で)識別子を調べるために使用され得る表の説明図である。特に、
図18Aは、サインサインインサービス1720が、入力装置10によって提供されるサインデータに基づき、名前ID(例えば、サービスIDと組み合わされたローカルID)を調べるために使用し得る表1890を示す。ローカルIDはユーザと関連しても良く、サービスIDは装置IDサービス1710と関連しても良い(
図17参照)。
【0103】
再び
図17を参照する。サインによるサインインサービス1720は、ユーザ装置ID及び名前ID(例えば、ローカルIDにサービスIDを加えたもの)を装置IDサービス1710に送信する。
図18Bは、他の識別子に基づき基準装置ID(例えば、スタイラスID)を調べるために使用され得る表の説明図である。特に、
図18Bは、サインによるサインインサービス1720によって提供される名前IDに対応する基準装置IDを調べるために装置IDサービス1710が使用し得る表1892を示す。表項目中の基準装置IDがサインによるサインインサービス1720によって送信されるユーザ装置IDと照合するならば、装置IDサービス1710は、入力装置10に認証情報を返信し得る。
図17に示す例において、認証情報は、「成功」又は「失敗」の認証結果を含む。成功/失敗の結果に加えて、この例において伝送される認証情報は、(例えば、「成功」の場合に)ログイン処理を完了するために必要とされ得るユーザID及びパスワードを含み得る。
【0104】
図19Aは、適切に構成されたコンピューティングシステムにおけるもう1つの説明に役立つ手書きに基づくユーザ認証方法の図である。この例において、ユーザ認証方法は、「Book+」と呼ばれるソーシャルネットワークサービスにアクセスを提供されるために使用されるログイン処理である。しかしながら、他のサービスにも同様にアクセスし得る。
【0105】
図19Aに示すように、手書き入力装置10は、(例えば、ブラウザアプリケーションを使用してサービスと関連したウェブサイトにナビゲートすることによって、又はサービスと関連した専用のアプリケーションを起動することによって)サービスと関連したログイン処理を起動する。装置10は、ペン/スタイラス装置(図示せず)によってサインするユーザに応答して生成できる(例えばサイン区域1902の)サインデータを捕捉する。装置10は、検証すべき試験サインデータとしてサインデータを送信する。試験サインデータは、装置10及び/又はペン/スタイラス装置に関連した装置ID、及びネットワーク20(例えば、インターネット)を通じたサインサインインサービス1920に対するサービスに関連したサービスID(例えば、「Book+」)と共に送信される。
【0106】
図19Aに示す例において、サインサインインサービス1920は、(例えば、本明細書に記載された技術又は他の技術により、試験サインデータを基準サインデータと比較することによって、)試験サインデータを検証し、かつ検証結果に少なくとも部分的に基づき、認証情報(例えば、ユーザID及びパスワード情報)を得る。サインによるサインインサービス1920は、装置10によって提供される複数項目のユーザ入力(例えば、ユーザID及びパスワード)を要求するよりもむしろ、一つのユーザ入力(サイン)を使用して、ユーザが認証されることを可能にする「ワンパス」サインインサービスとして実装される。
【0107】
図19Bは、ユーザを認証するためのサインによるサインインサービス(例えば、サインインサービス1920)に提供され得る情報と、ユーザ認証が成功した場合に、サインによるサインインサービスから返送され得る認証情報(例えば、ユーザID及びパスワード)とを説明する表1990を示す。
図19Bに示す例において、ペン/装置ID、検証すべき試験サインと関連したサインデータ、及びサービスID(例えば、「Book+」)は、ユーザ装置(例えば、入力装置10)から受信でき、かつサービスIDによって識別されるサービスに対してユーザ装置のユーザを認証するために使用され得る。
【0108】
再び
図19Aを参照すると、サインによるサインインサービス1920は、データベース1930中でユーザと関連した1つ以上の基準サインを調べるために、装置ID及びサービスIDのような情報を使用する。サインによるサインインサービス1920は、次に手書き検証方法を使用して、入力装置10によって提供されたサインデータが基準サインと一致するかを判定し得る。一旦ユーザがサインによるサインインサービス1920によって認証されると、サービス1920は、ユーザID及びパスワードを装置10に伝送し得る。ユーザID及びパスワードは、次にログイン処理を完了するために使用され得る。例えば、装置10は、ユーザ名(例えば、Eメールアドレス)及びパスワードをユーザインタフェース中の適切なフィールドに自動的に記入できる。
【0109】
実際には、サインによるサインインサービス(例えば、サインによるサインインサービス1920)によってユーザが確実に認証されることを可能にする情報のいかなるコレクションも、ユーザ認証のために使用され得る。データベース(例えば、データベース1930)中で特定のユーザを調べるために使用できる特定の情報は、サインによるサインインサービスに伝送される情報、データベース内に記憶される情報、及びデータベースが設計される方法のような因子に応じて異なり得る。
【0110】
セキュリティのため、手書き検証に関しかつユーザ認証処理に関連するすべての情報(例えば、手書きデータ、装置識別子、サービス識別子、認証情報等)は、(例えば、対称(例えば、共有秘密鍵)又は非対称(例えば、公開鍵)の暗号化を使用して)暗号化され得る。暗号化された情報は、更なる処理が下層の情報に関して実行される前に復号され得る。例えば、暗号化試験サインデータは、試験サインデータを基準サインデータと比較する前に復号され得る。
【0111】
II.手書きデータ生成及び保存
本開示の幾つかの実施態様は、電子手書きデータを生成及び保存する方法を対象とする。幾つかの記載された実施態様において、未加工の電子手書きデータはデジタイザによって生成され、未加工のデータは1以上のストリームを含むストリームフォーマットに変換される。手書きデータのフォーマットは未加工であるときのフォーマットと異なるフォーマットに変更されるけれども、ストリームフォーマットは、データ損失を伴うことがあるデータ処理(例えば、画像として表示するために手書きデータをピクセルなどの標準単位でレンダリングする処理)を行う一方で、無損失性(可逆)データ処理技術を用いることにより、未加工の手書きデータのオリジナルの内容を保存する。
【0112】
未加工の手書きデータのオリジナルの内容は種々のデータフォーマットで保存でき、使用されるフォーマットは、データに対して実行される処理の性質を含む各種の要素に応じて変化し得る。いくつかの実施態様においては、複数の利点を有する手書きデータフォーマットが使用される。利点とはすなわち、データ損失のいかなる危険もなく法的な証拠データとして使用できるように、いかなる方法によっても変更することなくオリジナルのデータを保存すること、オリジナルのデータが共通に理解され得るメトリックス系に変換され得るよう、生成元の装置についての十分な情報を含むこと、すべての装置の機能がサポートされ得るように柔軟でありかつ拡張可能であること、ストレージ及び伝送オーバヘッドを最小限に抑えるために最適にコンパクトであること、いかなるタイプのハードウェア上でも取扱えるようにバイナリレベルでは装置依存性を有すること、である。
【0113】
いくつかのケースでは、手書きデータは、手書きデータが他の方法で保存されなかったならばデータ損失をもたらす他のフォーマット(例えば、ディスプレイ用の標準単位へのレンダリングのためのストロークデータフォーマット)への変換をも可能にしながら、データ損失なしの複数のフォーマットに変換され得る。無損失性(可逆)圧縮技術は、全ての所望の手書きデータが保存されることを可能にしながら、ストレージ及び伝送帯域幅の要求を減少させるために使用できる。
【0114】
本開示の幾つかの実施態様は、適切に構成されたデコーダによって復号化される時に、画像の内容と関連することが多いが画像からは分離した情報を提供するデジタル画像に、データ(例えば、電子手書きデータ)を挿入することを対象とする。記載される実施形態では、未加工の電子手書きデータのオリジナルの内容がストリームデータに変換され、かつそのストリームデータが、画像が表示される時には一般に人間の観察者に気が付かれ得ない方法でデジタル画像(例えば、手書きサインのレンダリングを含むデジタル画像)に挿入される。従って画像品質の顕著な劣化なしに、かつ追加のコンテナファイルの要求なしに、未加工の手書きデータのオリジナルの内容が保存されることを可能にする。かかる実施態様において、手書きの入力中に得られる手書きデータは、将来のレンダリング、認証又は他の処理のために保存され得る。
【0115】
記載された幾つかの実施態様において、未加工の電子手書きデータのオリジナルの内容(例えば、対応するデジタイザに関して電子ペンの動きによって生成された高品質ペンデータ)が保存される。例えば、有用なシナリオの一例においては、電子手書きデータは、手書き自体の画像を表す画素データを含むデジタル画像中に保存される。電子手書きデータは、1つ以上のセンサ(例えば、ペン装置及び/又はデジタイザ内のセンサ)によって収集され、(例えば、サインの一部として)1つ以上のペンストロークとしてレンダリング及び表示され得るストロークデータに変換される。一方、オリジナルの手書きデータはまた、データ損失を回避するために保存される。記載される実施形態では、オリジナルの手書きデータは、広い範囲のアプリケーション、プラットフォーム、及び技術にわたる汎用性を有する手書きデータを分配し、分析し、及びレンダリングすることに適した符号化バイナリフォーマットに変換され得るストリームフォーマットの形式で保存される。
【0116】
手書きサインが紙上になされる時、インクペンはサインを形成するインクの連続した跡を残す。これと同様に、デジタル化された手書きサインは、一般に一定の時間間隔で測定される離散データ点の集合を含む。
【0117】
記載された実施態様において、デジタイザ(例えばサインタブレット装置)などの位置入力装置は、電子ペンの位置を所定のサンプリング間隔で記録し、各点でx(水平)位置及びy(垂直)位置を測定することによって機能する。例えば、電磁共鳴技術を使用するシステムにおいて、デジタイザは、ペンの動きを検出するセンサボードを組み込む。エネルギーは、センサボード表面により生成された磁場によってペンの共振回路内に誘導される。ペンの共振回路は、次にこのエネルギーを使用して磁気信号をセンサボード表面に返信する。ボードは、電子ペンがセンサボード表面に触れなくても、ペンがセンサボードの十分に近接した中に留まる限り、ペンの座標位置を一定の時間間隔で検出し、その結果信号は、なおもペンから受信され得る(有効な信号範囲は、使用される特定の技術によって異なり得るが、一般的に約数ミリメートルである)。
【0118】
他にも他の手書き入力技術を使用することもできる。例えば、電子ペンは、他のワイヤレス技術を使用できるし、ワイヤによってデジタイザに接続されていてもよい。他の例として、電子ペンは、デジタイザの表面から離れて検出可能であっても良いか、又は検出可能でなくても良い。もう1つの例として、電子ペンは、アクティブであるか又はパッシブであっても良い。アクティブペンは、ワイヤを介して、又は搭載電池を介して電力を受けても良い。もう1つの例として、電子ペンなしで(例えば、感圧デジタルライティングパッド、タッチスクリーン、又は電子ペンを必要としない他の入力装置上のスタイラスを介して)手書きデータを入力することも可能である。
【0119】
電子手書きのストロークをレンダリング及び表示するプロセスは、典型的には、ディスプレイ上にストロークを表示するためにディスプレイ中のいずれの画素を制御するべきか判定するために、電子手書きデータを分析することを伴う。ストロークを視覚的に表すために使用される画素は、時にストロークの「インク」と称される。表示のためにストロークをレンダリングするプロセスは、インクエンジンと呼ばれる構成によって取り扱われる。インクエンジンは、ストロークの形状及び位置をレンダリングするためにペン位置データを使用することに加えて、インクの濃さを判定するために他の手書き属性(例えば、圧力)の測定を使用することができる。
【0120】
いくつかのシナリオでは、未加工の手書きデータを(例えば、レンダリング及び表示のためにインクエンジンによって使用された後に)廃棄することを容認できる。未加工のデータを廃棄することは、保存されるデータのサイズに関していくらかの効率を提供する。しかしながら、インクエンジンによる未加工データの変換は、データ損失を伴う。例えば、高解像度の未加工の手書きデータが低解像度のディスプレイ用の標準単位へのレンダリングのために変換されるならば、多くのデータは、他に保存されないならば失われることがある。未加工のデータが何らかの形で保存されないならば、認証目的で手書きデータを分析する能力や、様々なレンダリング特性を有するインクエンジンにおいて手書きデータを利用する能力といった、多くの利点が失われ得る。
【0121】
それ故に、実施態様によれば、電子手書きデータのオリジナルの内容は保存される。手書きデータは、必要に応じて、望ましくないデータの損失をすることなく、インクエンジンによって標準単位に変換され得る。ペンの位置(例えば、x座標及びy座標)は、(使用されるセンサのタイプに応じて異なっていても良い)オリジナルのセンサ測定単位で記憶されても良く、かつ入力装置の特性も、異なる単位への変換を可能にするために記録されても良い。例えば、x、y位置情報は、各軸のスケール及び方向に関する情報が含まれるならば、ネイティブセンサ単位から従来の単位へ(原点からのミリメートルオフセットのように)変換され得る。
【0122】
特に、デジタル画像に手書きデータを記録及び記憶するための技術及びツールが提供される。このように記憶された手書きデータは、様々なソフトウェアアプリケーション、プラットフォーム及び装置にわたって可搬性を有して使用される。
【0123】
本明細書に記載された例のいずれかにおいて、手書きデータは、例えばワードサイズ(例えば、16ビット、32ビット等)、エンディアン特性(例えば、リトルエンディアン、ビッグエンディアン)、浮動小数点サポートの点で様々な要件を有することがある種々の装置及びプラットフォームにわたる可搬性のために設計された形状で保存され得る。更に本明細書に記載された例のいずれでも、既存のソフトウェアに影響を及ぼさずに保存される情報の範囲(種別)を拡張することが可能である。少なくとも幾つかの実施態様において、ソフトウェアが自己が解釈できないストリームタイプを安全に無視することを可能にするストリームデータ構造が使用される。本明細書に記載された原則を使用して、効率的に、かつ予期しない結果なしに、新規又は再度設計されたセンサによって収集される情報のような、最新タイプの情報を欠くことがある古いデータを取り扱う後方互換性を有する新規なアプリケーションが設計でき、長年にわたって記憶される必要があるサインされた文書にとって好適である。
【0124】
図20は、少なくとも1つの記載された実施態様により統合手書きデータを生成するシステム2010の概念図である。
図20に示すように、入力装置2020(例えば、電子ペン及び対応するデジタイザ(例えば、サインパッド装置)、又は手書き入力に使用できるタッチパッド装置のようなその他の入力装置)は、装置入力データ2030を生成し、通信リンク(例えば、USB接続)を通してコンピュータ2040に伝送する。装置入力データ2030は、コンピュータ2040上で動く装置依存性デバイスドライバ2050によって処理される。デバイスドライバ2050は、未加工の電子手書きデータを生成する。
【0125】
図20に示した例において、ペン装置及びデジタイザは、手書き入力を提供するために使用される。デジタイザは、専用の手書き入力装置、又は適切に構成されたスマートフォン又はタブレットコンピュータのような汎用装置を用いて実装できる。ペン装置及び/又はデジタイザ内のセンサは、ペン位置を検出しかつ筆圧などの圧力情報のような追加の情報も検出できる。少なくとも1つの実施態様において、デバイスドライバ2050は、座標情報、圧力情報及びタイミング情報を含む未加工の手書きデータを生成する。
【0126】
手書きデータは、サインプロセス中に一定の間隔で収集されるペンイベント情報、装置情報、及び/又はサインがなされた状況に関する状況情報を含んでも良い。ペンイベント情報は、デジタイザ表面上のペン先のx、y位置と、サイン開始からの時間とを含む。更に、ペンイベント情報は、圧力(ペンの力)、角度(方位角、高度、及び/又は回転)及びペンダウン状態のような、入力装置2020の機能次第の追加の情報を任意に含んでも良い。装置情報は、デジタイザ単位から実世界の単位に変換するために必要な情報を含んでも良い。状況情報は、サインする人の氏名、サインの日時、サインの理由、ホスト装置上で使用されるオペレーティングシステムのタイプ及びバージョン、デジタイザのタイプ、デジタイザ装置ドライバのバージョン、ホスト装置のネットワークインタフェースコントローラ(NIC)アドレスから取られる一意ID、暗号ハッシュ機能が使用されるならば、ハッシュ機能のタイプに関する情報、及び/又は捕捉時にソフトウェアアプリケーションによって追加できる補足データを含んでも良い。状況情報は、暗号メッセージダイジェストのようなサインされる文書に関する情報も含んでも良い。
【0127】
図20に示す例において、手書きデータ処理部2100Aは、入力として未加工の手書きデータを受信し、かつ出力として統合手書きデータを生成する。統合手書きデータを生成する方法、並びに統合手書きデータの内容は、以下で更に詳細に記載するように、状況及び実装に応じて異なることがある。
【0128】
図21Aは、
図20に示す手書きデータ処理部2100Aの実施態様の機能ブロック図である。
図21Aに示す例において、手書きデータ処理部2100Aは、入力取扱部101と、ストリーム生成部200と、損失性(非可逆)データ処理部300と、統合部400とを含む。入力取扱部101は、例えばストリーム生成部200及び損失性(非可逆)データ処理部300による更なる処理のために、未加工の手書きデータを転送することに関与する。
【0129】
図21Aに示す例において、ストリーム生成部200は、入力として未加工の手書きデータを受信し、かつストリームデータ(
図21Aで「FIRST_CONV_DATA」という標識を付される)を生成する。例えば、ストリーム生成部200は、ヘッダ情報と共に、x座標、y座標に関する個別のストリーム、及び圧力情報を提供できる。(幾つかの実施態様において、特定のペンイベントに関する時間情報は、既知のサンプリングレートに基づき計算でき、かつ独自のストリームに記憶される、又は各ペンイベントに関して信号を送られる必要がない。)少なくとも1つの実施態様において、ストリーム生成部200は、無損失性(可逆)符号化技術を使用して、複数のストリームを含む圧縮ストリームデータを生成する。
【0130】
損失性(非可逆)データ処理部300も、入力として未加工の手書きデータを受信する。損失性(非可逆)データ処理部300は、(手書きを画像としてレンダリングするために使用され得る)ストロークデータ及び/又は画像データ(例えば、PNGフォーマット又は他の画像データフォーマットでの画像データ)を生成する。少なくとも1つの実施態様において、損失性(非可逆)データ処理部300は、損失性(非可逆)データ処理技術(すなわち、データ損失を伴うことがある技術)を使用して、ストロークデータ及び/又は画像データを生成する。例えば、損失性(非可逆)データ処理部300は、表示のために手書きをレンダリングするために必要になることがある、データフォーマット及び処理をするように構成されたインクエンジンを含んでも良い。例えば、インクエンジンは、手書き(例えば、サイン)の視覚的な表示を含む画像データを生成できる。
【0131】
ストロークデータ及び/又は画像データが、未加工の手書きデータに基づいて生成される
図21Aに示した構成の代わりに、かかるデータは、符号化された手書きデータに基づいても生成され得る(
図21B参照)。
図21Bは、手書きデータ処理構成要素2100Bのもう1つの実施態様の機能ブロック図である。
図21Bに示す例において、損失性(非可逆)データ処理部300は、ストリーム生成部200によって提供される符号化データ(「FIRST_CONV_DATA」)に基づき、出力(「SECOND_CONV_DATA」)を生成する。
【0132】
図21A及び
図21Bに示すように、統合部400は、ストリームデータ、及びストローク及び/又は画像データを入力として受信し、統合手書きデータを出力する。統合部400は、ストリームデータ及びストローク/画像データを単一の出力ファイル(例えば、画像ファイル)で出力するか、又はストリームデータ及び/又はストローク/画像データを選択的に出力することができる。少なくとも1つの実施態様において、画像データは、符号化ストリームデータと組み合わせて、統合データ(例えば、符号化バイナリデータがステガノグラフィック技術により挿入されたデジタル画像)を形成できる。統合部400がいかにして機能するかの詳細は、以下で更に詳細に記載するように実装に応じて異なっていても良い。
【0133】
図20、
図21A及び
図21Bに示す構成は、例に過ぎず、他の多くの構成が可能である。本明細書に記載されたデータ(例えば、未加工データ、ストリームデータ、ストロークデータ、画像データ及び統合データ)及び本明細書に記載された手書きデータ処理モジュールは、様々な方法で記憶及び実装されても良い。例えば、データ及び処理モジュールは、デジタイザ内、(PC(Personal Computer)のような)他の何らかの装置内で記憶及び実装するか、又は幾つかの装置の間で分配することができる。本明細書に記載されたデータは、(例えば、画像ファイルの形で)一方の装置から他方に伝送されても良いか、又は同じ装置内に記憶及び/又は処理されても良い。例えば、パーソナルコンピュータにおいて、ストリームデータは、画像データと組み合わされ、統合データに変換され、かつパーソナルコンピュータ内でデジタル画像ファイルに記憶されても良い。
【0134】
図21C及び
図21Dは、記載された実施態様により使用され得る、説明に役立つクラウドコンピューティング配列の図である。
図21C及び
図21Dは、手書きデータ処理部2100Aが、単一のコンピュータ2040上に実装されて示される
図20に示す構成の説明に役立つ代案を提供する。
【0135】
図21Cに示す例において、入力装置2020は、未加工の手書きデータを手書きデータ処理部2100Cにネットワーク2110を通じて伝送する。特に、未加工の手書きデータは、入力取扱サーバ2101により受信され、入力取扱サーバ2101は、未加工の手書きデータをストリーム生成サーバ2102、及びストローク及び/又は画像データ処理サーバ2103に伝送する。サーバ2102及び2103は、統合サーバ及びデータストレージ2104に伝送される、それぞれストリームデータ、及びストローク及び/又は画像データを生成する。
【0136】
図21Dに示す例において、様々なアプリケーション(例えば、アプリケーション2180及び2190)が、様々な装置から様々なタイプの情報を得ることができる。例えば、損失性(非可逆)画像データは、サーバ2103から得ることができ、かつ統合データ(例えば、損失性(非可逆)画像データ1及び無損失性(可逆)符号化手書きデータを含むデジタル画像)は、統合サーバ及びデータストレージ2104から得ることができる。実際には、アプリケーション2180及び2190は、異なるコンピューティング装置、又は同じコンピューティング装置上で動いても良い。
【0137】
再び
図21A及び
図21Bを参照すると、
図21C及び
図21Dに示したサーバは、それぞれストリーム生成部200、損失性(非可逆)データ処理部300、及び統合部400のようなソフトウェアを実行する別個のコンピュータとして実装されても良い。
【0138】
再び
図21Dを参照すると、アプリケーション2180及び2190は、損失性(非可逆)又は無損失性(可逆)符号化データを復号化するように構成されたデコーダを含んでも良いか、又はアプリケーションは、損失性(非可逆)又は無損失性(可逆)符号化データを復号化するように構成された他のアプリケーション又は装置に符号化データを伝送しても良い。アプリケーション2180及び2190は、
図21Dでクラウドコンピューティング構成内に示されるが、かかるアプリケーション及びデコーダは、他の構成により情報を得て、かつ処理しても良い。
【0139】
図22及び
図23は、ペンアップ点2202及びペンダウン点2204が示される、電磁共鳴技術を使用するシステムによって検出された、それぞれ手書きサイン2200Aとアート図面2200Bとを含む電子手書きの座標位置の説明図である。位置は、一定の間隔で検出されるので、電子手書き2200A及び2200Bにおける点の間の大きい間隔は、ペンが速く動くサインの部分を示し、かつ狭い間隔は、ペンがゆっくり動く部分を示す。尚、
図22及び
図23に示すように、座標はペンアップ点2202とその後のペンダウン点2204との間で検出され続ける可能性がある点留意されたい。すなわち、ペンが信号範囲内に留まるならば、ペンがデジタイザの表面から持ち上げられる時、座標は検出され続ける。
図23で、ペンが(例えば、ペンアップ点2202と、その後のペンダウン点2204との間で)上げられる時に検出された座標は、明るい点で示され、かつペンが(例えば、ペンダウン点2204と、その後のペンアップ点2202との間で)下げられる間に検出された座標は、暗い点で示される。ボード(又は他の何らかのセンサ)は、ペン角度、筆記速度、筆記圧力等のような他の情報も検出しても良い。
【0140】
本明細書に記載された実施態様によれば、手書きは、手書きサイン(
図22参照)、又は印刷文字若しくはアート図面(
図23参照)のような他のタイプの手書きであっても良い。手書きの所与のストロークの未加工の手書きデータは、ストロークが分析されかつ表示されることを可能にする情報(例えば、x座標、y座標等)を含む。他のペン関連手書きデータは、圧力データ(例えば、ペン先に加えられる力)、傾斜(ペンの胴部と垂直線の間の角度)、配向データ(ペン先からのペンの平面−方向)、及びねじれデータ(サイン中の胴部の回転)を含んでも良い。多くのデジタイザにおいて、サイン中の全ての点が、約数ミリ秒か、それ以上(例えば、1ミリ秒)の精度で記録される。タイミング情報は、ペンの動きの方向を観察し、かつ各位置での速度及び加速度を推測することを可能にする。従って、未加工の手書きデータは、多くの場合、サンプルレート及び/又はタイムスタンプのようなタイミング情報を含む。未加工の手書きデータは、以下で更に詳細に示すように、ペン装置又はデジタイザ自体に関する情報、状況情報(例えば、サインすべき書類の記載、サインの日時等)等のような手書きに関する他のデータも含んでも良い。
【0141】
記載された実施態様において、未加工の手書きデータは、ペンイベントのシーケンスとして表される(
図24参照)。概して、ペンイベントは、特定の時間の(例えば、デジタイザの表面上に、又はデジタイザの限定された範囲内にある間の)ペン先端の位置を含んでいる。装置の機能に応じて、ペンイベントに関連したペンデータは、筆圧及び角度のような追加の測定データ(属性)を含んでも良い。
図24は、手書きデータ処理部(例えば
図20の手書きデータ処理部2100A参照)に提供できる、ペンイベント及びかかるペンイベントのデータシーケンス順序110を表すために使用できるデータ構造例108の説明図である。
図24に示すように、データ構造2408は、「構造体」又は「クラス」型で実装され得る。あるいは、データ構造2408は、他の何らかの方法で実装され得る。記載された実施態様において、ペンイベントは、各イベントがデータシーケンス順序2410で起こる時に入力として提供される。ペンイベントは、記載された実施態様によりストリームフォーマットに(例えばストリーム生成部200によって)変換される。
【0142】
少なくとも幾つかの実施態様において、手書きデータは、ペンダウン情報(すなわち、ペン先端が表面と接触する時に収集されるペンデータ)と、ペンアップ情報(すなわち、ペン先端が表面と接触しない時に収集されるペンデータ)を含むが、ジェスチャ情報と識別される情報を除外する。例えば、使用シナリオによっては、ペン装置は、手書き情報、及び(例えば、タップ、ドラグ、スクロール等のようなユーザインタフェース要素の種々の相互作用のための)ジェスチャ情報の入力のために使用できる。1つのシナリオ例において、ユーザは、指定区域内でペン装置によってサインし、かつ次に(チェックボックス、又は「OK」若しくは「完了」の標識が付されたボタンのような)ユーザインタフェース要素をタップするためにペン装置を使用して、サインが完結したことを示せる。かかるシナリオにおいて、サインに関する手書きデータは、保存でき、他方でチェックボックス又はボタンタップイベントデータは、廃棄できる。あるいは、もし希望するならば、ジェスチャデータをサインデータと共に保存できる。
【0143】
本明細書に記載された例のいずれにおいても、ペン装置及びデジタイザは、手書き入力を提供するために使用され得る。センサによって記録された情報は、未加工の手書きデータフォーマットで当初記憶されても良い。センサによって記録された情報は、ペン装置及び/又はデジタイザによって提供される追加情報(例えば、装置ID情報、サンプルレート情報等)を伴うことがある。未加工の手書きデータは、インクエンジンによる処理のためにストロークデータに変換され得る。(センサに特有の単位で記録されたデータの、画素又はミリメートルのような標準単位への変換を含むことがある)未加工のデータをストロークデータに変換するプロセスは、可逆性でなくても良い。例えば、少なくとも幾つかの実施態様において、未加工の手書きデータを標準単位に変換するプロセスは、データ損失をもたらし得る。しかし、同じ未加工の手書きデータはデータ損失なしにストリームデータに変換される。非圧縮ストリームデータは、データを損失することなく符号化(圧縮)ストリームデータ(例えば、画像ファイルでの符号化に適したフォーマットでのバイナリデータ)に変換され得る。本明細書に記載された実施態様によれば、符号化ストリームデータは、ペン装置及びデジタイザによって提供される手書き入力に対応する手書きの画像を例えば含むデジタル画像ファイル(図示せず)に挿入される。
【0144】
図25は、未加工の手書きデータが、ストリーム適応エンコーダ2540に提供される非圧縮ストリームデータ(例えば、ヘッダ及び個別のストリーム)を生成するストリーム生成器2520によって処理されるストリーム生成部200の説明に役立つ実施態様を示す。ストリーム適応エンコーダ2540は、幾つかのストリームに対して圧縮方法を選択的に適用でき、他方で他のストリームのデータは非圧縮のままで出力される。例えば、データ全体を圧縮のではなく、圧縮はストリーム毎に適用でき、その結果各ストリームタイプの形状を利用できる。少なくとも1つの実施態様において、比較的大量のデータを含むストリーム(例えば、x座標ストリーム、y座標ストリーム、圧力情報ストリーム、タイミング情報ストリーム、角度情報ストリーム)のみが圧縮される。全部のストリームではなく部分的に選択したストリームのみを圧縮する場合は、全ストリームを圧縮する場合に比して僅かに大きいデータサイズをもたらすことがあるが、圧縮処理の複雑さの軽減及び処理時間の点で利点を提供する。
【0145】
図25に示す例において、ヘッダデータは、圧縮されずにストリーム適応エンコーダ2540を通過する一方、他方で(「streamID#1」、「streamID#2」...「streamID#n」とインデクスが付された)個別のストリームはmストリーム適応エンコーダ2540によって圧縮される。ストリーム適応エンコーダ2540の出力は、ヘッダデータと圧縮ストリームとを含む。ストリーム適応エンコーダ2540は、デルタ符号化、ランレングス符号化、エントロピー符号化、又は何らかのビットパッキング方法のような無損失性(可逆)圧縮方法を個別に若しくは組み合わせて使用し、記録されるストリームデータのサイズを減少できる。使用される特定の符号化技術、及び利用可能な符号化技術から適応的に選択するプロセスは、後述するように、状況又は実装に応じて異なることがある。尚、圧縮処理は省略するとしてもよい。
【0146】
ストリームデータは様々の形状を取り得る。少なくとも幾つかの実施態様において、ストリームデータは、各々のストリームが複数のデータ(属性)のうち1つの(単一の)要素(属性)のデータを保持するストリーム(例えば、x座標に関する1つのストリーム、y座標に関する1つのストリーム等)から構成されるストリームのセットを含む。各々のストリームのストリームタイプ(すなわち、特定のストリームのデータ型)は、記憶されるデータに応じて異なり得る。可能なストリームタイプには、整数値(例えば、32ビット符号付き又は符号なし(U32)整数)、整数値対、浮動小数点値(例えば、32ビット浮動小数点値)、UTF(USC Transformation Format)8又は他のテキスト値、又はかかる値の配列又はバッファを含むが、限定されない。例えば、x座標ストリームは、整数配列の形を取り、他の情報については異なるストリームタイプが使用される。
【0147】
幾つかの実施態様において、2つのストリームを集合的に用いてある1つの特定タイプの測定値の情報を提供できる。例えば、一方のストリームは未加工のデータから得られたデータ(例えば、x座標、y座標)等であり、他方は、インクエンジンがこのデータを、出力する際に実際に用いる単位での値に変換するために供給される較正(又は計量)データである。少なくとも1つの実施態様において、x座標ストリームは装置によって供給されるx座標値を含み、かつx座標計量ストリームはこれらのx座標値のスケール及び範囲に関する情報を含む。例えば、x座標計量ストリームに含まれるデータは、値の取りうる範囲、スケール情報、及び符号変換情報(正負の符号等)を含み得る。
【0148】
図26の表2600は、ストリーム生成器220が出力する手書きデータの例を示している。表2600はストリームデータの形式で出力されるが、表のうち行の各々は各々のペンイベントに対応するものである。表2600で「Stroke」のラベルを付された列は、ストロークID=3のストリームのデータとして出力されるデータであって、このストリーム中のデータは手書きデータに含まれた複数のストロークのうち何番目のストロークに各行のペンイベントが関連するかを示すデータを提供するストリームになる(この例において、ストローク「0」は、対応するペンイベントが、複数のストロークのうち最初のストロークであることを示す)。表2600で「Btn」の標識を付された列は、ストリームID=4のストリームとして出力され、ペンが上がっている(0)か、又は下がっている(1)かを示すバイナリ値を提供するストリームである。表2600で「X」及び「Y」のラベルを付された列は、ストリームID=1及びストリームID=2のストリームとして出力され、かつそれぞれx座標及びy座標を提供するストリームとなる。表2600で「Ti」のラベルを付された列は、タイミング情報を提供するストリームとなる。タイミング情報は、各行の個別のペンイベントのタイムスタンプを含んでも良い。しかしながら、
図26に示す例において、「Ti」のラベルの付された列は、最初の行の後は空白である。これは、デジタイザは一定の時間間隔(例えば、5ミリ秒毎)でペンイベントを収集するため、各ペンイベントの時間はサンプリングレートから推測されるので、ペンイベントごとの明示的タイムスタンプ情報の伝達を省略できるという典型的なシナリオを示している。表2600で「P」のラベルを付された列は、ストリームID=7のストリームとして出力され、かつ筆圧値を提供するストリームとなる。
【0149】
図27は、ストリーム適応エンコーダ2540(
図25参照)によって実行される適応符号化ステップS240の例を示している。ステップS241でストリームIDが識別され、ストリームIDに基づき対応する符号化方法が選択される。例えば、ストリームID=1、2又は7(例えば、x座標、y座標又は圧力値)について、第1符号化方法S242が選択され、ストリームID=3又は4(例えば、ストロークID番号、又はペンが上がっているか、又は下がっているかを示す「Btn」値)について第2符号化方法S243が選択される。選択された符号化方法は、符号化すべきデータの値の特性を活用できる。例えば、第1符号化方法S242は、x座標、y座標及び圧力値の傾向として、頻繁に変化する値ではあるが以前のペンイベントの値に基づいてある程度予測可能な方法で変化されることを活用した符号化方法を利用できる。もう1つの例として、第2符号化方法S242は、ストロークID番号及び「Btn」値の傾向として低い頻度で変更される同じ値が長期にわたってて維持される性質を活用した符号化方法を選択することができる。
【0150】
図27に示す例において、適切な符号化方法の選択は、ストリームIDに基づき各ストリームごとに行われ、全てのストリームについて処理が完了すると、ストリームデータ(FIRST_CONV_DATA)が、ステップS245で出力される。対応する符号化方法が存在しないストリームID、又はストリーム適応エンコーダ2540によって認識されないストリームIDは、省略又は廃棄できる。使用される特定の符号化方法、及び符号化のために選択される特定のデータは、実装に応じて異なり得る。
図27に示す例において、符号化方法S244は、本明細書に記載されたいかなる符号化技術も、又は他の符号化技術を含んでも良く、かつ本明細書に記載されたいかなるストリームも、又は他のストリームを符号化するために使用できる。
【0151】
第1符号化方法S242(
図27参照)の例が、
図28に示される。
図28に示す例において、ペンイベントに関連したx座標値が符号化されるが、但し他の値(例えば、y座標値、圧力値)は、同様に符号化され得る。ステップ242A−1で、現在のx座標値(指数k)が、得られる。ステップ242A−2で、デルタ値が、現在のx座標値から以前のx座標値を減算することによって算出される。(ステップ242A−2は、現在のx座標値が、初期ペンイベント(k=0)に関連する場合のように、状況によって省略できる)。ステップ242A−1及び242A−2は、後続のペンイベントに関して繰り返される。このストリーム中の全ての値が処理された時、初期ペンイベント(k=0)の初期x座標値が、後続のペンイベント(k=1...n)のデルタ値と共にステップ242A−3で符号化される。例として、ステップ242A−3の符号化は、デルタ値のランレングス符号化又はエントロピー符号化を含む。初期値及びデルタ値を符号化する特定の技術は、実装に応じて異なっても良い。
【0152】
少なくとも1つの実施態様において、x座標を記憶するために例えば符号なし32ビット整数(U32)配列のストリームが使用され、次の手続きがデータを記憶する時に使用される。
1.値は、初期値及び残りにデルタ値のセットが続く配列として記憶される。
2.デルタ値は、ランレングス符号化される。必要があるデルタ値の最大値が導出され、かつ次に繰り返し回数の最大値が導出される。
3.データは、次に(a)点の数(32v型の値で保持)、(b)第1値(32v型の値で保持)、(c)最大デルタ値を記憶するために必要なビット数(8ビット値で保持)、及び(d)最大ランレングス値を記憶するために必要なビット数(8ビット値で保持)の形式で出力される。この状況において、「32v」は、サイズ32ビットまでの可変ビット数で値を記憶する方法を指し、実際に値を保持するために必要なバイト数のみを使用する。従って、32v値は、可変長符号化データの値の1つの例であり、特に可変数のバイトを有する値(可変バイト値)である。
図29Aは32v符号化技術の例が示される。
図29Aに示すように、32v値において、各バイトは保持する必要のある値の7ビットを記憶するために使用される。第1の7ビットは、符号ビットがセット(1)された第1バイト中に記憶される。この処理は、全ての非ゼロビットが記憶されるまで繰り返される。最終バイトは、符号ビットがクリア(0)されることによって示される。例として、
図29Bに示すプロセスにおいて、整数Vは、ステップ2910で得られる。ステップ2920で、Vは、16進数値0x7Fと比較される。Vが16進数値0x7Fよりも大きいならば、ステップ2940でVのLSBから7ビットは、符号ビットをセット(1)した1バイト中に保持されこの7ビット分右シフト処理が、行われる。ステップ2920、2940、2950は、Vが0x7F以下になるまで繰り返され、その時点でVの最終バイトは、ステップ2930で符号ビットがクリア(0)される。再び
図29Aに示す例を参照すると、2バイト値の第2バイトは、クリアされた符号ビットを有し、他方でnバイト値のn番目のバイトは符号ビットを有する。32v値をロードする際は、各々のバイトが順に読まれ、符号ビットがクリアされていることにより示される最終バイトまで、LSBから7ビットそれぞれ抽出される。
4.このように、必要に応じてランレングス符号化を施した上、デルタ値のフルセットがビット列の集合としてパックされたバイナリブロブとして記憶される(バイナリブロブは、以下で更に詳細に記載する)。
【0153】
少なくとも幾つかの実施態様において、いずれのストリームタイプのストリームデータも一様にビット列に変換されたエクスポートデータに変換でき、このようにして得られるバイナリデータは、符号化バイナリ手書きデータ又は「バイナリブロブ」とも称される。ストリーム群に対応する部分のバイナリブロブは、1以上のストリーム又はエクスポートデータに関連したヘッダ情報(例えばフォーマット及び/又はバージョン情報、ストリーム数等)のような他のバイナリ情報と共に、単一の実体データの中に組み合わせることができる。手書きサインの状況においてこの単一の実体は「サインブロブ」とも称される。アプリケーションは、サインブロブ中のバイナリ情報を直接扱っても良いし、又はバイナリ情報は、例えば、Base−16又はBase−64のように異なるフォーマットで変換されても良い。
【0154】
図30は、3つのストリームと、ストリームの総数を示すヘッダ情報とを含むデータ構造例3000の図である。データ構造3000は、バイナリブロブ、又は符号化バイナリデータの一例である。データ構造3000は、本明細書に記載した実施態様により、ストリームエンコーダ(例えば、
図25のストリーム適応エンコーダ2540)から出力できる。
【0155】
図25に示すように、少なくとも1つの実施態様において、ユニークな整数の識別子(例えば、x座標に関してID=1、y座標に関してID=2、x座標計量に関してID=3、等)が各ストリームに割り当てられる。ストリームIDの値は、1の主体によって定義及び決定できる。ストリームID値は、特定のストリームタイプと関連付けられても良く、所与のストリームに関するストリームタイプが明示的な情報送信がされずにストリームIDから判定されることを可能にする。識別される個々のストリームは、同じストリームタイプであっても良い。例えば、x座標及びy座標ストリームは異なるストリーム識別子を有するが、両方とも整数配列であって良い。ストリームは、ストリーム中に含まれるペイロードデータ(例えば、x座標ストリーム中の実際のx座標に対応するデータ)のバイト数を示す長さフィールドのような追加の情報も含んでも良い。
【0156】
図30を左上から右下に見ると示されるように、データ構造3000は、サインブロブ中のストリームの総数を示すフィールドを含み、その後に個別のストリームに対応するデータ(例えば、ストリームID、バイトでのペイロードデータの長さ、及びペイロードデータ自体)が続く。各ストリームは、ストリームID、含まれるバイナリペイロードデータの長さ、及びペイロードデータ自体を順にリードすることによって、シーケンシャルにリードされる。ストリームIDが認識されると、ペイロードデータは、適切なデータハンドラを利用して適切なフォーマットに変換可能になる。(ストリームID3、4、5及び6が省略されている
図30に説明するように、全てのストリームIDのストリームが存在する必要はない)。ストリームIDが認識できないものならば(例えば、古いデコーダが、新規に定義されたデータストリームを認識しない場合)、ストリームは、他のストリームの認識に悪影響を与えることなく廃棄でき、かつ次のストリームが順番で処理される。
【0157】
以上に説明したように、(例えば、符号化バイナリ手書きデータを含む)本明細書に記載されたデータを符号化するために使用される特定の符号化技術、及び利用可能な符号化技術から適応的に選択するプロセスは、実装に応じて異なり得る。この節において、代替的な符号化技術は、
図31〜
図44を参照して記載される。
【0158】
幾つかの実施態様において、エントロピー符号化を使用する可変長符号化方法は、幾つかのデータタイプの圧縮効率の点で好ましい。更に、幾つかの実施態様において、幾つかの値(例えば、x座標、y座標、及び圧力値)を符号化するために予測符号化が使用される。本明細書に記載された例において、予測符号化は、予測残差、すなわち予測値と実際の値との差、を算出することを伴う。予測値は、以前に得られたデータに基づいて得られる。エンコーダにおいて、以前に得られたデータは、メモリに記憶されても良い。デコーダにおいて、以前に得られたデータは、直近に復号化されたデータであっても良い。予測符号化は、手書き操作の動きが、以前の動きの方向及び速度に類似する方向及び速度で継続する傾向があるという知見に基づいている。デルタ値の符号化のように、予測残差が符号化される。
【0159】
第1符号化方法S242(
図28参照)の他の例によるフロー図を、
図31に示す。
図31に示す例において、ペンイベントに関連しx座標値が符号化されるとしているが、他の値(例えば、y座標値、圧力値)も同様に符号化される。
図31の符号化方法が適用される時、(例えば、
図20の手書きデータ処理部2100Aで)次のステップが実行される。ステップ242B−1で、現在のx座標値(指数k)が得られる。ステップ242B−2で、現在のx座標値(指数k)の予測値が、以前に得られたデータに基づき算出される。例えば、予測値は、2つの復号値(例えば、X[k−2]及びX[k−1])から第3点への線形予測法によって導き出せる。ステップ242B−3で、予測残差値は、現在のx座標値から予測値を減算することによって算出される。この例において、予測残差は、(i)予測されたx座標位置と、実際に取得されたx座標位置との間の差である(ステップ242B−2及び242B−3は、現在のx座標値が、初期ペンイベント(k=0)に関連し、かつ以前得られたデータが予測値を計算するために利用できない場合のような例外の部分は省略できる)。ステップ242B−1、242B−2及び242B−3は、後続のペンイベントに関して繰り返される。このストリーム中の全ての値が、処理された時、初期ペンイベント(k=0)の初期x座標値が、後続のペンイベント(k=1...n)の予測残差と共にステップ242A−4で符号化される。初期値及び予測残差を符号化する特定の技術は、以下で更に詳細に説明するように、実装に応じて異なっても良い。
【0160】
図32は、変形例である
図31に示す第1符号化方法S242Bにおいて実行される予測残差計算の例を説明する図である。
図32に示す例では、ペンイベントに関連してx座標値が予測されとしているが、他の値(例えば、y座標値、圧力値)も同様に予測され得る。現在のx座標値の予測値(X[k]=+26)は、以前得られたデータに基づき算出される。この例において、予測値(Predicted_X[k])は、2つの以前に得られたx座標値(X[k−2]及びX[k−1])の値に基づき算出される。特に、予測値(+25)は、以下に示すように、X[k−2]と、X[k−1]との間の差を、X[k−1]の値に加えることによって算出される。
【数7】
【0161】
予測残差値(+1)は、以下に示すように、現在のx座標値から予測値を引くことによって算出される。
【数8】
【0162】
図33は、x座標値の例と、それに付随するデルタ値、予測値及び予測残差を示す図である。
図33において、第1行の値(X[0...])は、実際のx座標を表し、第2行(delta_X[1...])は、デルタ値を表し、第3行(Predicted_X[2...])は、予測値を表し、かつ第4行(Prediction Residual[2...])は、予測残差値を表す。
図33に示す例において、x座標値(第1行)は、初期値15から増加していき、およそ50で変化率が大幅に減速する。
図34は、
図33に示すデルタ値及び予測残差の頻度を示すヒストグラムである。多くの場合、
図34に示すように、予測残差の絶対値は、デルタ値の絶対値よりも平均して小さくなる。更に、予測残差のヒストグラムは、1個のピーク(例えば、0付近の小さい絶対値)に集中するが、他方でデルタ値の頻度は、複数個のピーク(例えば、+5付近に1つのピーク、0付近に1つのピーク)を生じてしまう。
【0163】
図35及び
図36の表3500及び3600は、手書きサインについての99個のサンプルの実験結果がそれぞれ示される。手書きサインについての99個のサンプルの実験結果は、絶対値の小さいx座標予測残差及び圧力値予測残差の方が、絶対値の大きいx座標予測残差及び圧力値予測残差に比して頻度が多い傾向にあることを示す。
図35に示されるヒストグラム3510は、x座標値の予測残差の頻度が、単一のピーク(例えば、小さい絶対値又は0)に集中し得るが、他方でデルタ値の頻度は、複数のピーク(例えば、−10付近に1つのピーク、+10付近に1つのピーク、及び0付近に1つのピーク)を有し得ることを示す。
図36に示されるヒストグラム3610は、予測残差及び圧力値の頻度が、両者共単一のピーク(例えば、小さい絶対値又は0)に集中し得ることを示す。全体として、ヒストグラム3510及び3610は、圧力値及びx座標値に関して、予測残差値が、0が0に近い値である可能性が高いことを示している。適切な符号化方法を使用することによって、これら絶対値の小さい値を少ないビット数のビットで符号化することが可能である。
【0164】
図37は、デルタ値又は予測残差のような値を符号化するために使用され得る可変長符号化方法例を示す表3700を示す。表3700は、符号化される値と、ビットストリングとの対応を示すマッピングを示す。
図37に示される符号化方法は、高い確率で発生する値に対し短いビットストリングを使用して符号化される可変長エントロピー符号化の一種として、指数ゴロム(又はExp−Golomb)符号化として知られる方法である。
図37に示す符号化方法例は、
図38及び
図39に示すように、絶対値の小さい値の発生する確率が、絶対値の大きい値が発生する確率よりも高い状況に、特に適している。
【0165】
図38及び
図39は、
図37の可変長符号化方法をx座標値及び圧力値の予測残差への適用した結果をそれぞれ示す表3800及び3900を示す。それぞれ表3800及び3900で「X_pred_residual_ExpGolomb」及び「P_pred_residual_ExpGolomb」のラベルを付された列中の記入項目は、適切に構成されたエンコーダ(例えば、
図25のストリーム適応エンコーダ2540)の出力(例えば、「FIRST_CONV_DATA」中のそれぞれ「streamID#1」及び「streamID#7」に関連したストリーム)中に含まれ得る。
【0166】
図40に、コンテキストに基づいた符号化方法選択プロセス4000のフロー図を例示する。ステップ4010で、符号化処理のコンテキストがストリームIDの少なくとも一部に基づき判定される。ステップ4020で、可変長コード(VLC)テーブルが、コンテキストに基づき選択される。ステップ4030で、ストリームIDによって表されるストリーム中の値は、選択されたVLCテーブルを使用して符号化される。
図41A及び
図41Bは、それぞれVLCテーブルの例4100及び4110を示す。
図41Aに示す例において、コンテキストは、x座標値に関連したストリームID(例えば、ストリームID=2)に基づき判定されている。VLCテーブル4100は、傾向として所定の大きさの右方向への移動に対し短いビット数のビットストリングを設定し、左方向への移動よりも右方向への移動に対し短いビット数の付与を優先させている。
図41Bに示す例において、コンテキストは、x座標値に対応付けられたストリームIDである点、並びに、言語として右から左に移動する傾向がある言語(例えばアラビア語)、スクリプト、又は文字に付与されたコード、に基づいて判定される。VLCテーブル4110は、傾向として所定量の左方向への移動に対し短いビットストリングを提供することによって右移動よりも左移動に対して、短いビットストリングの付与を優先させている。いかにして符号化コンテキストが判定されるかの詳細、及び使用される特定のVLCテーブル及びコードは、実装に応じて異なり得る。
【0167】
図42は、復号方法4200のフロー図の例である。
図42に示す例において、復号方法4200では、符号化された予測残差を入力し、値(例えば、x座標値、y座標値等)を復号する方法を実行する。ステップ4210で、符号化された値(例えば、それぞれ指数k=0及びk=1に対応する2つの初期符号化値)の初期値の部分が復号化される。ステップ4210の初期値の部分の値の復号化により、符号化された予測残差を含む後続値を、後のステップで復号化できるようにする。ステップ4220で、それ以前に導出又は復号化された値に基づいて、次のインデクス(例えば、K=2又は後続値)に関する予測値が導かれる。(例えば、
図32参照。)ステップ4230で、それぞれの予測値について、予測残差誤差が復号化される。ステップ4240において、導出された予測値と復号された予測残差値とに基づいて、オリジナルの値が導出される。(例えば、
図32参照。)復号化は、復号化すべき全ての符号化された値が復号化されるまで、続く値についても継続する。特定の符号化値及び/又は符号化予測残差を復号化するために使用される技術(例えば、
図42のステップ4210及び4230参照)は、それらを符号化するために使用された符号化方法に応じて異なる。例えば、Exp−Golomb符号化方法を使用して符号化された値は、符号化方法に対応する復号方法を使用して復号化される。
【0168】
再び
図21Aを参照すると、幾つかの実施態様において、ストローク及び/又は画像データ処理部300は、損失性(非可逆)技術(すなわち、データ損失を伴うことがある技術)を使用して、未加工手書きデータを処理する。データ損失は、とりわけ一方向の関数であるx/y座標平滑化関数、量子化処理(例えば、データを標準単位に変換すること)、タイムスタンプの不使用、及びタイプスタンプの廃棄のようなプロセスのために生じる。
図43は、画像データ処理部300Aの処理内容、特に、レンダリング構成モジュール4320によって提供されるコンフィグレーションデータに基づいて未加工手書きデータが画像プロセッサ4340によって処理される例を示す。コンフィグレーションデータは、画像データを生成するために必要とされ得るデータ、例えば、画像サイズ、スケール、オフセット、ストローク色(例えば、赤、緑、青、不透明)、ペンツールデータ(例えば、ブラシ、鉛筆)等を含んでも良い。
図43に示す例において、画像プロセッサ4340は、未加工手書きデータを(「SECOND_CONV_DATA」の標識を付された)画像データに変換する。
図44は、ストローク及び画像データ処理部300Bの処理内容であって、未加工手書きデータがレンダリング構成モジュール4320によって提供されるコンフィグレーションデータに基づきストロークデータ生成器4330によって処理される説明に役立つ実施態様を示す。
図44に示す例において、ストロークデータ生成器4330は、未加工手書きデータをインクエンジン4340Bによって処理可能なストロークデータに変換する。インクエンジン4340Bは、ストロークデータを画像データ(「SECOND_CONV_DATA」)に変換する。
【0169】
図45及び
図46は、損失性(非可逆)データ処理部300によって(例えば、
図43及び
図44に示される実施態様の一方によって)生成された画像データからレンダリングされた画像の例を示す。それぞれサイン4500及びアート図画4600の画像を示している。
図46に示す例において、アート図画が、背景画像4610上にレンダリングされる。コンフィグレーションデータは画像のレンダリングを構成するために使用され得る。例えば、コンフィグレーションデータは、サイン4500又はアート図画4600の手書きがインクの特定の色でレンダリングされるべきであることを示し得る。
【0170】
図47は、ストロークデータ処理部300Cの実施態様を示す。未加工手書きデータが、レンダリング構成モジュール4320によって提供されるコンフィグレーションデータに基づき、ストロークデータ生成器4330によって処理される。ストロークデータ生成器4330は、未加工手書きデータをストロークデータ(「SECOND_CONV_DATA」)に変換する。
図44に示されるストローク及び画像データ処理部300Bと異なり、ストロークデータ処理部300Cは、インクエンジンを欠く。別個のインクエンジン(図示せず)は、ストロークデータを画像データに変換し得る。例として、別個のインクエンジンは、クラウドコンピューティング構成内のサーバ上で動き得る。本明細書に記載された実施態様において構成データ、ストロークデータ及び画像データを生成し、かつ処理するために使用される特定の技術は、実装及び/又は状況に応じて異なり得る。
【0171】
再び
図21Aを参照すると、幾つかの実施態様において、統合部400は、画像データをストリームフォーマットで保存された手書きデータと組み合わせる。
図48は、ストリーム生成部200(
図21A参照)から受信したデータ(「FIRST_CONV_DATA」)が、損失性(非可逆)データ処理部300(
図21A参照)から受信した画像データ(「SECOND_CONV_DATA」)と統合される統合部400の説明に役立つ実施態様を示す。
図48に示す例において、ステガノグラフィープロセス4820が、ストリームデータを画像データに挿入するために使用される。統合データを生成するために使用される特定の技術は、以下で詳細に説明するように、実装及び/又は状況に応じて異なり得る。
【0172】
手書きデータのオリジナルの内容を保存せずに、サイン又はサインした文書の画像を標準の画像フォーマットを用いてレンダリングすることは可能であるが、これを行うことの不都合の1つは、キャプチャしたサイン情報の多くが失われることである。この問題は、(例えば、符号化バイナリ手書きデータを画像にステガノグラフィープロセス等により挿入することによって)手書きデータのオリジナルの内容を画像データと統合することによって克服できる。この方法の更なる利点は、多くの既存のアプリケーションは画像データならば取り扱えるが、手書きデータは取り扱えないことである。手書きデータを画像に挿入することによって、未加工手書きデータのオリジナルの内容は、画像が、それ自体では手書きデータを認識又は処理不可能なアプリケーション間を通過する際にも保存できる。このタイプの画像を使用することは、修正された画像を取り扱うアプリケーションを修正せずに、手書きデータのオリジナルの内容全部を保存することを可能にする。
【0173】
実際の手書きにおいて、ストリームデータのサイズは可変であり、手書きの持続時間のような要素によって左右される。データ点は概して一定の間隔で収集されるので、記憶される点の数はサインするためにかかった全時間及びデータ収集速度に比例する。デジタイザによっては、毎秒400点以上を収集できる。ストリームデータのサイズは、筆圧及びペン角度ストリームのような、任意であり得るデータストリームの存在又は不存在によっても決まり得る。例として、毎秒100点(一般的な頻度)で収集されるx座標、y座標、時間、及び圧力情報を含むサインは、バイナリ形で記憶される時、1〜2キロバイトを占め得る。毎秒でより多くの点を含む手書きは、更なる情報を含み得る。少なくとも1つの実施態様において、典型的な手書きサインは、2〜4キロバイトのサイズの範囲でストリームデータを生成する。
【0174】
少なくとも1つの実施態様において、符号化されたバイナリ手書きデータは、
図49に示す一般化技術4900により画像に挿入される。ステップ4910において、デジタル画像画素データが得られる。オリジナルの画素データの特定のフォーマットは、必要でない。しかしながら、画素データのビット深度は、ビットによっては、レンダリングされた画像の目に見える劣化を引き起こさずに、そのオリジナルの値から変更できるようになっていることが好ましい。ステップ4920において、オリジナルの画素データの一部が、(例えば上記の符号化バイナリフォーマットで)電子手書きを表す符号化されたバイナリ手書きデータと置き換えられる。例えば1つ以上の色を示すピクセル値の1つ以上のビットが、以下で更に詳細に説明するように、画像中から選択された画素について修正される。修正される画素数は、符号化されるデータのサイズ、及び各画素中で修正されるビット数を含む幾つもの因子によって決まり得る。ステップ4930において、修正された画素値を含む画像データは、修正されたデジタル画像中に記憶される。修正された画像は、圧縮又は非圧縮フォーマットで記憶され得る。データ損失を回避するために、修正されたデジタル画像は、JPEG(Joint Photographic Experts Group)のような損失性(非可逆)圧縮フォーマットを用いて記録しないとする。
【0175】
少なくとも1つの実施態様において、24ビットからなり、8ビットが3つの色値(例えば、赤、緑及び青)の各々のために使用される画素中、色値の下位ビットは、電子手書きデータと置き換えられる。少なくとも1つの実施態様において、画素当たり4ビット(例えば、赤値の最下位ビット、緑値の最下位ビット、及び青値の2つの最下位ビット)が置き換えられ、それにより4ビットの手書きデータが、単一の画素中に記憶され、かつ1バイト(8ビット)の手書きデータが2画素中に記憶されることを可能にする。画素当たり4ビットの手書きデータが、16進数(16進法)値に変形できる。
【0176】
手書きデータは、その全部が画像中の画素の連続シーケンス中にまとまって記憶されないことが好ましい。幾つかの実施態様において、幾つかのデータ(例えば、ヘッダデータ)は、一連の連続画素中に記憶され得るが、データ(例えば、x座標データ、y座標データ)の多くは、疑似ランダム選択により全画像にわたって分布した画素に記憶される。少なくとも1つの実施態様において、ヘッダ情報は、画像の第1画素から開始し、かつ全てのヘッダ情報が挿入されるまで連続的に継続する、一連の連続画素に挿入される。個別のストリーム中のデータは次に画素の疑似ランダム選択に挿入される。ヘッダ情報は、データストレージ機構のバージョン番号、ストリームデータのサイズ、及びデータが記憶される画像の幅及び高さを含んでも良い。
【0177】
ヘッダ情報及びストリームデータに加えて、画像が有効な手書きデータを含むかを判定する機構を提供するために、確認データが、画像に挿入され得る。少なくとも1つの実施態様において、2つの所定の16進法値を表す8ビットが、画像の最初の2つの画素に挿入される。データが後で抽出される時、適切に構成されたデコーダが、これら2つの16進法値の存在を検査して、画像が、有効な手書きデータを含むという初期判定を行える。あるいは、確認データは、他の形(例えば2を越える16進数値、64進数値等を表すバイナリデータ)を取ることができるか、又は確認データは省略できる。
【0178】
図50は、画素の疑似ランダム選択による16ビットのバイナリデータの分布の例を説明している。
図50に示すように、各R値における1ビット、各G値における1ビット、及び各B値における2ビットが、修正される。(
図50で「X」によって表す)各色値における残りのビットは、影響を受けない。あるいは、バイナリデータは、他のいずれかの方法で画素値に挿入できる。例えば、R、G及びB値における様々な数のビットは、修正できるか、又は色値のいずれかのサブセット(例えば、R値及びB値)が、修正でき、他方で残りの色値(例えば、G値)は、修正されないままでいる。修正される特定数のビット及び特定の値は、画像データのフォーマットによって同様に決まり得る。例えば、様々な色値、又は様々なビット深度(例えば、10ビット又は16ビット)を有する色値を含むフォーマットの画像は、様々な方法で調整され得る。一般的に、非常に少量の画像劣化をもたらす統合方法が、好ましい。
【0179】
画素の疑似ランダム選択は、多くの方法で実行できる。少なくとも1つの実施態様において、一様偏差(乱数)生成器が、画像サイズをシードとして初期化され、かつ次に修正される画素シーケンスを判定するために使用される。このことは、画素が一様に分布されることを確実にし、かついずれの画素が修正されたかを、第三者が判定することを困難にする。所与の画素が2回目に選択されるならば、それは単に無視され、かつ別の画素が疑似ランダムアルゴリズムに従って選択される。埋め込みデータが復号化される時、画素シーケンスは、同じアルゴリズムにより画像サイズをシードとして使用して、判定できる。このことは、情報が画像中に拡散されるが、(同じシードを用いて一様偏差(乱数)を初期化する処理によって)同じシーケンスが再現でき、かつ修正された画素が、適切に構成されたデコーダによって正しい順序で読み取れることを意味する。
【0180】
図51に、ステガノグラフィープロセス3200の例を示す。ステガノグラフィープロセス3200は、少なくとも1つの実施態様において符号化バイナリ手書きデータをデジタル画像に挿入する。ステップ5110で、画像が符号化手書きデータを記憶するために(画素数の点で)十分大きいか、に関する初期判定がなされる。この判定を行うために使用されるアルゴリズムは、実装に応じて異なり得る。例として、アルゴリズムは、各画素中で修正されるビット数(例えば、4ビット)を考えると、符号化手書きデータを記憶するために修正される必要がある画素数が、画像中の全画素の所定の閾値割合を超えるか判定できる。画像が十分大きいならば、ステップ5120でヘッダデータが、画素シーケンスに書き込まれる。残りの符号化手書きデータに関して、ステップ5130で画素は、疑似ランダムに選択される。画素が以前選択されたかを判定するために、ステップ5140で検査が実行される。画素が以前選択されたならば、疑似ランダム選択プロセスが、再度実行される。画素が以前選択されなかったならば、ステップ5150で、適切なビット数(例えば、1/2バイト(4ビット))の符号化手書きデータが、画素中に書き込まれる。ステップ5130〜5150は、ステップ5160で、全ての符号化手書きデータが、画像中に書き込まれたという判定がなされるまで繰り返される。状態フラグが、ステップ5170で成功を表示するために設定される。
【0181】
他方で、画像が、符号化手書きデータを記憶するために十分大きくないならば、ステップ5180で、状態フラグが、失敗を表示するために設定される。しかしながら、プロセス5100は、符号化手書きデータを記憶するために十分大きくない幾つかの画像に効果的に対処するための適応特徴も含むことができる。例えば、プロセス5100は、修正される必要がある画素数を減少させるために、(例えば、画素当たり4ビットよりも、画素当たり6ビット(例えば、色値当たり2ビット)を修正することによって)各選択画素中の多数のビットを修正するように適応できる。このようにして、画像中で修正される画素の割合が減少でき、かつステガノグラフィープロセスは、画像中の少数の画素にもかかわらず継続できる。
【0182】
ストリームデータは、画像データ又はストロークデータに常に組み合わせる必要はない。
図52は、ストリーム生成部200(
図21A参照)から受信したデータが、損失性(非可逆)データ処理部300(
図21A参照)から受信したストロークデータと選択的に統合される統合部400Bの説明に役立つ実施態様を示す。
図52に示す例において、統合部400Bは、ストリーム生成部200から受信したデータ(「FIRST_CONV_DATA」)が、選択モジュール5201への入力として提供されるフラグの状態(「FIRST_CONV_DATA_EXIST_FLAG」)に基づきストロークデータマルチプレクサ5202中のストロークデータ(「SECOND_CONV_DATA」)と統合されるかを判定する。
図53は、ストリーム生成部200(
図21A参照)から受信したデータが、損失性(非可逆)データ処理部300(
図21A参照)から受信したストローク及び/又は画像データと選択的に統合される統合部400Cのもう1つの説明に役立つ実施態様を示す。
図53に示す例において、統合部400Cは、ストリーム生成部200から受信したストリームデータ(「FIRST_CONV_DATA」)が、選択モジュール5301及び5303への入力として提供される制御信号(「ctrl」)に基づき再結合モジュール5302中のストローク及び/又は画像データ(「SECOND_CONV_DATA」)と統合されるかを判定する。データを統合し、かつデータが、個別に統合及び/又は処理されるべきか判定するために使用される特定の技術は、実装及び/又は、アプリケーションが特定のデータを要求しているか、のような他の因子に応じて異なり得る。例えば、アプリケーションが、画像データ(例えば、PNGファイル)のみを要求するならば、制御信号は、統合部400Cが画像データのみを出力するように設定できる。もう1つの例として、アプリケーションが、ストリームデータのみを要求するならば、制御信号は、統合部400Cがストリームデータのみを出力するように設定できる。もう1つの例として、アプリケーションが、ストリームデータ及び画像データを要求するならば、制御信号は、統合部400Cがストリームデータ及び画像データを含む統合データを出力するように設定できる。
【0183】
本明細書に記載された例のいずれにおいても、損失性(非可逆)又は無損失性(可逆)符号化データを復号化するために、1つ以上のデコーダが使用できる。デコーダは、符号化データを入力として受信し、かつ復号データを出力する。概して、デコーダは、特定の方法で符号化されたデータを復号化するように構成される復号ロジックを含む。例えば、PNG(ポータブルネットワークグラフィックス)デコーダは、PNGフォーマットで符号化されたデータを復号化するように構成される。復号ロジックは、対応する符号化論理と異なるコンピューティング装置上か、又は同じ装置上に存在し得る。
【0184】
本明細書に記載された実施態様により、符号化手書きデータデコーダは、符号化バイナリ手書きデータ(例えば、ビットパックされたExp−Golomb符号化バイナリ手書きデータ)を読み込み、かつそれをインクエンジン、法的な証拠のように利用されるサインデータ分析ツール又は他の電子手書きツールのようなツールによって使用され得る形に変換し戻すロジックを含む。符号化手書きデータデコーダは、画像データデコーダのような他のデコーダと組み合わせて使用できる。例えば、符号化手書きデータデコーダが、画像ファイル中の画素データに挿入された符号化手書きデータを読み込んだ後、画像ファイルは、次に適切な画像データデコーダによって復号化でき、かつ表示のためにレンダリングできる。
【0185】
デコーダによって使用される復号化プロセスの詳細は、状況及び/又はデコーダに提供される情報によって決まり得る。例えば、本明細書に記載された実施態様によれば、符号化手書きデータデコーダは、画素の各色値で何ビットが、符号化バイナリ手書きデータを含むか、又は特定のコード表がエントロピー符号化方法で使用されたかを示す符号化手書きデータのヘッダ部分における情報を受信し得る。この情報によって、デコーダは、符号化データを復号化する適切な技術を選択できる。
【0186】
上記の実施態様は、デジタル画像中に記憶され得る電子手書きデータに関するが、上記の技術及びツールの多くで、電子手書きデータが、補完される、又は電子手書きデータに限定されない他のタイプのデータと置き換えられることが可能であり、かかるデータは、本明細書に記載された原理によりデジタル画像中に記憶され、かつ/又はデジタル画像から抽出され得ることが理解されるべきである。
【0187】
III.コンピューティング環境
具体的な例の文脈において、別段の指示がない限り、記載された技術及びツールは、ラップトップコンピュータ、デスクトップコンピュータ、スマートフォン、タブレットコンピュータ等を含むが、それらに限定されない、いかなる適切なコンピューティング装置によっても実装できる。例えば、本明細書に記載した幾つかの例において手書きデータの生成は、電子ペンのようなある種のハードウェアの特徴を必要とすることがあるが、電子ペンによって生成された未加工のデータは、ラップトップコンピュータ、デスクトップコンピュータ、スマートフォン、タブレットコンピュータ等を含むが、それらに限定されない、適切に構成された汎用コンピューティング装置に伝送でき、かつそれにより処理できる。
【0188】
本明細書に記載された機能性によっては、クライアント−サーバ関係の状況で実装できる。この状況において、サーバ装置は、本明細書に記載された情報及び/又はサービスを提供するように構成された適切なコンピューティング装置を含んでも良い。サーバ装置は、専用のサーバ装置のような、いかなる適切なコンピューティング装置を含んでも良い。サーバ装置によって提供されるサーバ機能性は、場合により、専用のサーバ装置でないコンピューティング装置上で実行するソフトウェア(例えば、仮想化コンピューティングインスタンス又はアプリケーションオブジェクト)によって提供できる。用語「クライアント」は、サーバによって通信リンクを通じて提供される情報及び/又はアクセスサービスを得るコンピューティング装置を指すために使用され得る。しかしながら、クライアント装置のような特定の装置の指定は、必ずしもサーバの存在を必要としない。種々の時点で、単一の装置が、状況及び構成に応じてサーバ、クライアント、又はサーバ及びクライアントの両者の役目を果たせる。クライアント及びサーバの実際の物理的な位置は、必ずしも重要でないが、クライアントがリモート位置のサーバによって提供される情報を受信する、共通の使用シナリオを説明するために、位置は、クライアントに関して「ローカル」、かつサーバに関して「リモート」と記載され得る。
【0189】
図54は、本開示の実施態様に従った使用に適した代表的なコンピューティング装置5400の態様を説明するブロック図である。下記記載は、サーバ、パーソナルコンピュータ、携帯電話、スマートフォン、タブレットコンピュータ、組込型コンピューティング装置、及び本開示の実施態様により使用できる、他の現在利用可能な、又はこれから開発される装置に適用できる。
【0190】
コンピューティング装置5400は、その最も基本的な構成において、少なくとも1つのプロセッサ5402と、通信バス5406によって接続されたシステムメモリ5404とを含む。装置の正確な構成及びタイプに応じて、システムメモリ5404は、リードオンリーメモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、EEPROM(Electrically Erasable Programmable Read Only Memory)、フラッシュメモリ又は他のメモリ技術のような揮発性又は非揮発性メモリであっても良い。当業者等は、システムメモリ5404が、プロセッサ5402によって即時アクセス可能な、かつ/又は現在操作されるデータ及び/又はプログラムモジュールを概して記憶することを認識するであろう。この点に関して、プロセッサ5402は、命令の実行を支援することによって、コンピューティング装置5400のコンピュータセンタとして役立つことがある。
【0191】
図54に更に説明されるように、コンピューティング装置5400は、他の装置とネットワークを通じて通信するための1つ以上の部品を含むネットワークインタフェース5410を含んでも良い。本開示の実施態様は、ネットワークインタフェース5410を利用する基本サービスにアクセスでき、共通のネットワークプロトコルを使用して、通信を実行する。ネットワークインタフェース5410は、WiFi(Wireless Fidelity)、2G(2nd Generation)、3G(3rd Generation)、4G(4th Generation)、LTE(Long Term Evolution)、WiMAX(Worldwide Interoperability for Microwave Access)、Bluetooth(登録商標)等のような1つ以上のワイヤレス通信プロトコルを通じて通信するように構成されたワイヤレスネットワークインタフェースも含んでも良い。
【0192】
図54に示される代表的な実施態様において、コンピューティング装置5400は、ストレージ媒体5408も含む。しかしながらデータをローカルストレージ媒体に存続させる手段を含まないコンピューティング装置を使用して、サービスにアクセスできる。それ故に、
図54に示されるストレージ媒体5408は、任意である。いずれにせよ、ストレージ媒体5408は、揮発性、又は非揮発性、取り外し可能、又は取り外し不可能であり、ハードドライブ、半導体ドライブ、CD−ROM(Compact Disc Read Only Memory)、DVD(Digital Versatile Disc)、又は他のディスクストレージ、磁気テープ、磁気ディスクストレージ等のような、但しそれらに限定されない情報を記憶することが可能ないずれかの技術を使用して、実装できる。
【0193】
本明細書で使用されるような、用語「コンピュータ可読媒体」は、コンピュータ可読命令、データ構造、プログラムモジュール、又は他のデータのような、情報を記憶可能ないずれかの方法又は技術に実装される揮発性及び非揮発性、並びに取り外し可能及び取り外し不可能な媒体を含む。この点に関して、
図54に示されるシステムメモリ5404及びストレージ媒体5408は、コンピュータ可読媒体の例である。
【0194】
説明を容易にするために、また特許請求された主題を理解をするために重要でないので、
図54は、多くのコンピューティング装置の典型的な部品の幾つかを示さない。この点に関して、コンピューティング装置5400は、キーボード、キーパッド、マウス、トラックボール、マイクロホン、ビデオカメラ、タッチパッド、タッチスクリーン、スタイラス等のような入力装置を含んでも良い。かかる入力装置は、RF(Radio Frequency)、赤外線、直列、並列、Bluetooth(登録商標)、USB、又は無線若しくは物理的接続を使用する他の適切な接続プロトコルを含む、有線又は無線接続によってコンピューティング装置5400に連結できる。
【0195】
いずれの記載例においても、データは、入力装置によって捕捉され、かつ将来の処理のために伝送又は記憶され得る。処理は、データストリームを符号化することを含んでも良く、データストリームは、出力装置による提示のためにその後に復号化され得る。メディアデータは、マルチメディア入力装置によって捕捉され、かつメディアデータストリームをコンピュータ可読ストレージ媒体(例えば、クライアント装置、サーバ、管理者装置、又は他の装置上の持続性ストレージ、又はメモリ内)上のファイルとして保存することによって記憶され得る。入力装置は、コンピューティング装置5400(例えば、クライアント装置)から離れても良く、かつ通信可能に連結されても良いか、又はコンピューティング装置5400の一体部品であっても良い。幾つかの実施態様において、複数の入力装置を組み合わせて、単一の多機能入力装置(例えば、統合されたマイクロホンを有するビデオカメラ)としても良い。現在知られているか、又は将来開発されるいかなる適切な入力装置も、本明細書に記載されたシステムによって使用できる。
【0196】
コンピューティング装置5400は、ディスプレイ、スピーカ、プリンタ等のような出力装置も含んでも良い。出力装置は、ディスプレイ又はタッチスクリーンのようなビデオ出力装置を含んでも良い。出力装置は、外部スピーカ又はイヤホンのような音声出力装置も含んでも良い。出力装置は、コンピューティング装置5400から離れても良く、かつ通信可能に連結されても良いか、又はコンピューティング装置5400の一体部品であっても良い。幾つかの実施態様において、複数の出力装置を組み合わせて、単一の装置(例えば、内蔵スピーカを有するディスプレイ)としても良い。現在知られているか、又は将来開発されるいかなる適切な出力装置も、記載されたシステムによって使用できる。
【0197】
一般的に、本明細書に記載されたコンピューティング装置の機能性は、C、C++、COBOL(COmmon Business Oriented Language)、JAVA(登録商標)、PHP(PHP: Hypertext Preprocessor)、Perl(Practical Extraction and Report Language)、HTML(HyperText Markup Language)、CSS(Cascading Style Sheets)、JavaScript(登録商標)、VBScript(Visual Basic Script)、ASPX、C#などのMicrosoft .NET(商標)言語のようなプログラミング言語で書かれ得るハードウェア又はソフトウェアの命令において実施されるコンピューティングロジックに実装できる。コンピューティングロジックは、実行可能なプログラムにコンパイルできるか、又はインタプリータ形式のプログラミング言語で書いても良い。一般的に、本明細書に記載された機能性は、高い処理能力を提供するために複製されるか、他のモジュールと併合されるか、又はサブモジュールに分割され得るロジックモジュールとして実装され得る。コンピューティングロジックは、いかなるタイプのコンピュータ可読媒体(例えば、メモリ又はストレージ媒体のような非一時的媒体)又はコンピュータストレージ装置にも記憶でき、かつ1つ以上の汎用又は特殊用途のプロセッサに記憶でき、かつそれにより実行され、従って本明細書に記載された機能性を提供するように構成された特殊用途のコンピューティング装置を作り出せる。
【0198】
IV.拡張及び代替案
本明細書に記載されたシステム及び装置の多くの代替案が、可能である。例えば、個別のモジュール又はサブシステムは、追加のモジュール又はサブシステムに分離されるか、又は少数のモジュール又はサブシステムと組み合わされ得る。もう1つの例として、モジュール又はサブシステムは、省略されるか、又は他のモジュール又はサブシステムを補足され得る。もう1つの例として、特定の装置、モジュール、又はサブシステムによって実行されるとして示される機能は、1つ以上の他の装置、モジュール又はサブシステムによって代わりに実行されても良い。本開示における幾つかの例は、特定の構成における特定のハードウェア部品を含む装置の記載を含むが、本明細書に記載された技術及びツールは、異なるハードウェア部品、組み合わせ、又は構成を受け入れるために変更され得る。更に、本開示における幾つかの例は、特定の使用シナリオの記載を含むが、本明細書に記載された技術及びツールは、異なる使用シナリオを受け入れるために変更され得る。ソフトウェアに実装されているとして記載される機能性は、代わりにハードウェアに実装されてもよく、又はその逆にハードウェアに実装されているとして記載される機能性は、代わりにソフトウェアに実装されてもよい。
【0199】
本明細書に記載された技術の多くの代替案が、可能である。例えば、種々の技術における処理段階は、追加の段階に分離されるか、又は少数の段階と組み合わされ得る。もう1つの例として、種々の技術における処理段階は、省略されるか、又は他の技術又は処理段階を補足され得る。もう1つの例として、特定の順序で起こるとして記載される処理段階は、代わりに別の順序で起こり得る。そのかわりに、もう1つの例として、複数のモジュール又はソフトウェアプロセスが、1つ以上の説明された処理段階を同時に処理しながら、一連のステップで実行されるとして記載される処理段階を、並行して処理しても良い。もう1つの例として、特定の装置又はモジュールによって実行されるとして示される処理段階は、1つ以上の他の装置又はモジュールによって代わりに実行されても良い。
【0200】
本開示の原理、代表的な実施態様及び動作形態は、前述の記載において記載された。しかしながら、保護されることを意図する本開示の態様は、開示された特定の実施態様に限定されると解釈されるべきではない。更に、本明細書に記載された実施態様は、限定するものではなく、説明のためのものであるとみなされるべきである。本開示の精神から逸脱することなく、変形例及び変更が他人によってなされ、かつ同等物が用いられることが理解されよう。従って、全てのかかる変形例、変更及び同等物が、特許請求された主題の精神及び範囲内にあることが明確に意図される。
【0201】
排他的な所有権又は特権が請求される本発明の実施態様は、請求項の部に定義される。