【課題】デジタルインクに含まれる値と線幅又は透明度との対応関係を一括して変更することや、デジタルインクに含まれる値を、例えばシグネチャ認証の比較パラメータに利用することを可能にする。
【解決手段】デジタルインクを再生するデジタルインク処理装置2であって、デジタルインクに含まれる筆圧又は座標の値を抽出する第1の抽出手段と、デジタルインクに含まれる変換規則であり、筆圧又は座標の値を線幅又は透明度の値に変換するための変換規則を抽出する第2の抽出手段と、第2の抽出手段によって抽出された変換規則に基づいて、第1の抽出手段によって抽出された前記筆圧又は座標の値を線幅又は透明度の値に変換する変換手段と、を有する。
前記範囲データがストロークの末端部分と先端部分との両方の端部を示す場合に、範囲の開始点に対応する前記インデックス値情報は負の整数を用いて指定され、範囲の終了点に対応する前記インデックス値情報は正の整数を用いて指定される、
請求項8に記載のデジタルインク再生装置。
前記変換規則は、前記ストロークの先端部及び又は末端部に対して前記筆圧の値から線幅の値を導出する変換規則であって、前記ストロークの前記先端部及び又は末端部以外の部分に適用される変換規則に比して線幅が大きくなるように変換される変換規則である、
請求項10に記載のデジタルインク再生装置。
前記変換規則は、前記座標の値に基づいて透明度を導出するための変換規則であって、前記ストロークの先端部及び又は末端部に対し、前記ストロークの他の部分よりも透明度が大きくなるように変換される変換規則である、
請求項10に記載のデジタルインク再生装置。
前記デジタルインクは、前記変換規則と前記変換規則が適用される範囲を示す第1の範囲データとを含む第1のマッピングデータ、及び、前記変換規則とは異なる第2の変換規則と該第2の変換規則が適用される範囲を示す第2の範囲データとを含む第2のマッピングデータを含み、
前記デジタルインクは、前記第1の範囲データの示す範囲と前記第2の範囲データの示す範囲とが重なりを有する場合における前記第1のマッピングデータ及び前記第2のマッピングデータの適用順に基づいて、前記デジタルインク内における前記第1のマッピングデータと、前記第2のマッピングデータとの配置順が決められているデジタルインクである、
請求項1に記載のデジタルインク再生装置。
【背景技術】
【0002】
インクの充填されたペンや絵の具の付いた毛筆を紙の上で動かすことにより、インクや絵の具が紙に吸収あるいは堆積され軌跡が描かれる。
【0003】
このように紙に描かれた手書きの軌跡(ストローク)を模擬するように、電子ペンやスタイラスなどの指示体をタブレット等の位置検出器の上で動かした軌跡を電子データ化したデータがデジタルインクである。デジタルインクは、通常、(1)手書きの軌跡を再現するためのデータ、(2)軌跡の描画スタイルを記述するデータ、及び、(3)軌跡に関するデータの変換規則を記述するデータを含み構成される。デジタルインクには、様々なOSで動作する描画アプリケーションや文書作成アプリケーションなどの異種環境でも利用できるように標準化されたデータフォーマットが存在する(非特許文献1〜4)。
【0004】
非特許文献1記載のInkMLは、最も知られたデジタルインクのデータフォーマットの1つである。(1)手書きの軌跡を再現するためのデータは<trace>要素と呼ばれる。<trace>要素には、1ストローク(指示体を位置検出装置のセンサ面に接触させてから離すまでの動作)の軌跡を構成する複数のポイントデータ(入力センサによって所定の時間間隔で検出されるデータ。座標データ(X,Y)、筆圧データP、時刻データTなど、入力センサ依存の属性(入力センサ属性)を示すデータを含む)の集合を記述する。また、InkMLでは(2)軌跡の描画スタイルを指定するデータとして例えば<brush>要素などのデータ、(3)軌跡に関するデータの変換規則を記述するデータとして後述する<mapping>要素などのデータが規定されている。
【0005】
非特許文献2記載のISF(Ink Serialized Format)は、マイクロソフト社のアプリケーション上で利用されるデジタルインクのデータフォーマットである。(1)手書きの軌跡を再現するためのデータのブロックは、StrokeDescriptorBlockと呼ばれる。StrokeDescriptorBlockには、ストロークの軌跡を再現するためのポイント(ポイントはX、Y座標値である)や筆圧値等が記述される。又、(2)描画スタイルを記述するブロックであるDrawingAttributeBlockや、(3)軌跡に関するデータの変形規則を記述するブロックとしてTransformBlockなどが規定されている。
【0006】
非特許文献3記載のSVGは、二次元グラフィックスアプリケーション及び画像、並びにグラフィックスクリプトのセットを記述するためのマークアップ言語である。(1)手書きの軌跡を再現するためのデータとして<path>要素が存在する。<path>要素中には、複数の制御点(ポイントデータ)が含まれ、これらの複数の制御点に基づくベジエ曲線により軌跡が再現される。
【0007】
他、非特許文献4記載のHTML5には、(1)手書きの軌跡を再現するためのデータとしてCanvas Pathクラスとよばれるデータ型が規定されている。
【0008】
以下では、非特許文献1の<trace>、非特許文献2のStrokeDescriptorブロック、非特許文献3の<path>要素、非特許文献4記載のHTML5におけるCanvasPathなどを総称し、入力装置を用いて手書きした軌跡と線幅を含む形状を再現するためのベクタデータをストロークデータと呼ぶ。
【0009】
また、以下では、非特許文献1の<mapping>、非特許文献2の<transformBlock>など軌跡に関するデータ(ストロークデータ)の変換規則を記述するデータを総称し、マッピングデータと呼ぶ。
【0010】
図19Aは、非特許文献1のマッピングデータである<mapping>要素を説明する図である。この例は、<mapping>要素のタイプとして"affine"を用いた変換規則を示している。この変換規則は、X座標及びY座標で規定される図形に対し、4行目〜7行目で示す行列に示されるアフィン変換(90度の回転を施し、Y方向に200平行移動する変換)を施す変換を示している。
【0011】
また、
図19Bは、<mapping>要素のタイプとして「mathml」を利用した変換規則を示す図である。"mathml"を用いた変換規則では、非特許文献5のMathML2が規定する名前空間で予約された"root"、"cos"、"minus"等の表現を用い、それに対応付けられた演算を利用することができる。
図19Bの例に示す変換規則は、極座標形式で示される入力センサ属性の座標データ(VR,VTh)を、直交座標形式で示される座標データ(X,Y)に変換する規則である。図中、2行目〜13行目までの破線枠MD_Xで示す変換規則は、入力センサ属性が示す径VRの値(変数r)、及び、角度VThの値(変数theta)、並びに、MathMLで"cos"により規定される余弦等を用いて、新たなX座標データを導出するための変換規則を記述している。また、14行目〜25行目までのMD_Yで示す変換規則は、新たなY座標データを得るための変換規則を示している。
【0012】
非特許文献2のISFは、変換規則として利用可能な変形を<TRANSFORM BLOCK>の種類として列挙する(10ページ)。
図19Aに示したアフィン変換行列のような変換として、M11、M12、M21、M22、及び、DX、DYの要素からなる2行3列で表現できる変換行列を観念し、この変換行列を用いた各種の変換が規定されている。例えば、ストロークデータを拡大縮小するための<TAG_TRANSFORM_ISOTROPIC_SCALE>、<TAG_TRANSFORM_ANISOTROPICSCALE>、ストロークデータに回転を施すための<TAG_TRANSFORM_ROTATE>、平行移動等を施すための<TAG_TRANSFORM_TRANSLATE>、回転した後で平行移動を施すための<TAG_TRANSFROM_ROTATE_AND_TRANSLATE>_などを利用することができる。
【0013】
非特許文献6には、デジタルインクに基づいて自然な線を描画するための描画方法の例が開示されている。
【発明を実施するための形態】
【0027】
以下、添付図面を参照しながら、本発明の好ましい実施の形態について詳細に説明する。
【0028】
(第1の実施の形態)
図1は、本発明の第1の実施の形態による入力システム1を示す概念図である。入力システム1は、記憶装置2aを有するデジタルインク処理装置2と、平板状のセンサ3aを有するデジタイザ3(位置検出装置)と、電子ペン4(指示体)と、ディスプレイ5とを備えて構成される。なお、指示体としては、上記電子ペン4の他に、例えば人間の指や単なるプラスチックの棒(スタイラス)を用いることも可能である。また、
図1では、コンピュータ2、デジタイザ3、及びディスプレイ5を別体の装置として描いているが、これらの一部又は全部を一体の装置(タブレットPCなど)として構成することも可能である。
【0029】
入力システム1は、ユーザが、電子ペン4を用いてデジタイザ3のセンサ3a上で文字や絵を描くことにより入力された座標データ等に基づいてInkML形式のデジタルインクを生成して記憶装置2aに記録する機能と、記録されたデジタルインクから画像信号を生成しディスプレイ5上に再生する機能とを有している。
【0030】
センサ3aの表面には、それぞれx方向(センサ3aの表面内の一方向)に延在する複数の線状導体と、それぞれy方向(センサ3aの表面内においてx方向と直交する方向)に延在する複数の線状導体とがそれぞれ等間隔で配置される。デジタイザ3は、センサ3aの表面に電子ペン4が近づいたことによって生ずるこれらの線状導体の電位の変化に基づき、センサ3aの表面内における電子ペン4の位置を示す座標データ(X,Y)を検出するよう構成される。
【0031】
本実施の形態の電子ペン4は、所定の時間間隔で筆圧データPを検出し、検出した筆圧データPを随時デジタイザ3に対して送信するように構成される。
【0032】
デジタイザ3は、上記座標データ(X,Y)及び筆圧データPを検出するように構成される。そして、検出した座標データ(X,Y)と、対応する筆圧データPと、検出時刻を示す時刻データTとのセットである入力センサデータISDを生成し、随時、
図1に示すようにデジタルインク処理装置2に対して、図示しないIO部を通じて出力するように構成される。これによりデジタルインク処理装置2には、デジタイザ3が電子ペン4を検出している間、一連の入力センサデータISDがセンサ3aのサンプリングレート毎に供給されることになる。
【0033】
デジタルインク処理装置2は、例えばパーソナルコンピュータである。図示した記憶装置2aの他、CPUや通信回路などの通常のコンピュータが備える構成を備えている。記憶装置2aは、主メモリなどの主記憶装置と、ハードディスクなどの補助記憶装置とを含んで構成される。
図2に示すデジタルインク処理装置2の機能ブロックは、デジタルインク処理装置2のCPUが記憶装置2a内に記憶されるプログラムに従って動作することによって実現される。
【0034】
図2は、デジタルインク処理装置2の機能ブロック図である。同図に示すように、デジタルインク処理装置2は機能的に、入力処理部10、ストロークデータ生成部20、デジタルインク生成部30、及びデジタルインク再生部40を有して構成される。このうちデジタルインク生成部30は、内部構成として、デジタルインク組立部31、マッピングデータ生成部32、及び適用順決定部33を有して構成される。
【0035】
入力処理部10は、デジタイザ3からUSBやI2C等のインタフェース経由で供給される入力センサデータISDから座標データ(X,Y)や筆圧データPなどの入力センサ属性ISAを抽出し、オペレーティングシステム上で動作する他のプログラムに利用可能な形式であるイベントデータEDにして出力する。入力処理部10は、典型的には、デジタルインク処理装置2上で動作するオペレーティングシステムに組み込まれたデジタイザ3に対応するデバイスドライバとして実現される。
【0036】
ここで、イベントデータEDに含まれる情報には、座標データ(X,Y)や筆圧データPを含むポイントデータPDの他に、そのポイントデータPDが一連のストロークのうちどの部分かを識別するためのイベントタイプ識別情報ETYPEが含まれる。イベントタイプ識別情報ETYPEの取る値には、ペンダウン状態Pdown,ペンムーブド状態Pmvd、ペンアップ状態Pupなどが含まれる。入力処理部10は、電子ペン4や指などの指示体がデジタイザ3に接触(ペンダウン)したことを検出すると、接触位置に対応する座標データ(X,Y)を含むポイントデータPDを生成するとともにイベントタイプ識別情報ETYPEの値としてペンダウン状態Pdownであることを設定したイベントデータEDを生成する。その後、電子ペン4や指示体がデジタイザ3に摺動されている間、入力処理部10は、一連の座標データ(X,Y)に対応する一連のポイントデータPDとともにイベントタイプ識別情報ETYPEの値にペンムーブド状態Pmvdの値を設定したイベントデータEDを生成し続ける。最後に、入力処理部10は、電子ペン4がデジタイザ3から持ち上げられた(ペンアップした)ことを検出すると、イベントタイプ識別情報ETYPEの値にペンアップ状態Pupであることを指定したイベントデータEDを生成する。
【0037】
ストロークデータ生成部20は、入力処理部10からイベントデータEDの供給を受け、1以上のポイントデータPDを包含するストロークデータSD(第1のストロークデータ)を生成する機能部である。ストロークデータ生成部20は、典型的には、デジタルインク処理装置2のCPUで実行されるライブラリあるいはサービスと呼ばれるプログラムで実現される。ストロークデータ生成部20は、入力処理部10から供給されるイベントデータEDのイベントタイプ識別情報ETYPEの値を参照し、ペンダウン状態Pdownを示すイベントデータEDからペンアップ状態Pupを示すイベントデータEDまでの間のイベントデータEDに含まれた一連のポイントデータPDを包含する1つのストロークデータSDを生成する。ストロークデータ生成部20は、入力センサデータISDに含まれる座標データ(X,Y)の値をそのままポイントデータPDの座標データ(X,Y)の値とする場合の他に、入力センサデータISDに含まれる座標データ(X,Y)の値に重み付け平均あるいは指数平滑法等のスムージング処理や間引き処理等を行うことによって得られる新たな座標データ(X,Y)の値をポイントデータPDの座標データ(X,Y)とする場合、並びに、入力センサデータISDに含まれる座標データ(X,Y)に加えてベジエ曲線等の補間曲線の形状を決定するための追加の制御点をポイントデータPDとする場合がある。
【0038】
図3は、ポイントデータPDとストロークデータSDとの関係を説明する図である。図中、5つの破線枠は、5つのアルファベット「h」「e」「l」「l」「o」が入力された際に生成される5つのストロークデータSD(SD0、SD1、SD2、SD3、SD4)を示している。
【0039】
ストロークデータSD0〜SD4の各々には、図中白丸で示す一連のポイントデータPDが包含される。図中白丸間の実線は、白丸で示されるポイントデータPDが一連のものであることを示す。
【0040】
ここで、アルファベット「h」に対応するストロークデータSD0には、インデックス値が0であるポイントデータPD0から始まり、そのインデックス値が25であるPD25で終わるポイントデータ数n=26個のポイントデータPD0〜PD25が含められる。また、アルファベット「e」に対応するストロークデータSD1には、インデックス値が0であるPD0から始まりインデックス値が14であるPD14で終わるポイントデータ数n=15個のポイントデータPD0〜PD14が含められる。アルファベット「o」に対応するストロークデータSD4には、インデックス値が0であるPD0から始まりインデックス値が8であるPD8で終わるポイントデータ数n=9個のポイントデータPD0〜PD8が含められる。このように、ストロークデータSDによって含められるポイントデータPDのポイントデータ数nの値は異なる。
【0041】
尚、
図3に示したOPは、ポイントデータPDに含まれる座標データ(X,Y)についての座標系の原点座標を示している。以下、説明の便宜上、座標データの値は、右への方向をX座標の値が増加する方向とし、下への方向をY座標の値が増加する方向とする。
【0042】
本実施の形態のストロークデータ生成部20は、ストロークデータSDのフォーマットとして非特許文献1のInkMLを利用したフォーマットに従い、<trace>要素の記述形式に従ってストロークデータSDを生成する。
【0043】
図4は、InkML形式のフォーマットに従って生成される
図3のストロークデータSD0〜SD4を示す図である。
図5は、
図4の5つのアルファベットに対応するストロークデータSD0〜SD4のうち、アルファベット"e"に対応するストロークデータSD1のみを取り出した図である。
【0044】
図4、
図5の例に示されるように、ストロークデータSDは、<trace>要素として表現され、図中各行の末尾に存在するカンマ(,)を区切り記号として各ポイントデータPD0〜PD14が区切られる形式により生成される。
【0045】
各ポイントデータPD内では、1以上の半角スペースを区切り記号として各属性データが区切られている。本実施の形態においては、ストロークデータSD内に、入力センサ属性ISAである第1の属性(座標データX)、第2の属性(座標データY)、及び第3の属性(筆圧データP)の3つの属性データを、元データの値のまま保持している。
【0046】
これら3つの入力センサ属性ISAの値は、座標データX、座標データY、及び筆圧データPの順で各ポイントデータPD内に配置されている。例えば、
図5に示すストロークデータSd1におけるインデックス値0である1つ目のポイントデータPD0に関して言えば、左側の「199」が座標データX、「306」が座標データY、「1.0」が筆圧データPとなる。
【0047】
図2に戻る。ストロークデータ生成部20が生成したストロークデータSDは、デジタルインク組立部31に供給される。デジタルインク組立部31は、こうして供給されるストロークデータSDと、適用順決定部33から供給される1又は複数のマッピングデータMDとに基づいて、デジタルインクINKDを組み立てるよう構成される。
【0048】
図6は、デジタルインク組立部31が組み立てるデジタルインクINKDを説明する図である。図の例はデジタルインクINKDをInkMLのフォーマットに従って生成した例である。
【0049】
デジタルインクINKDは、「<?xml 」で始まるXML宣言と、「<ink・・>」で始まる行から末尾行の</ink>までの間に記述される<ink>要素とを含んで構成される。
【0050】
<ink>要素は、定義ブロックDEB(<definitions>要素)及びストロークデータ記述ブロックSDB(<ストロークデータSD>要素)を含んで構成される。
【0051】
定義ブロックDEBは、マッピングデータ記述ブロックMDBと描画スタイルデータ記述ブロックDDBとを含み構成される。
【0052】
マッピングデータ記述ブロックMDBは、ストロークデータの変換規則を示すマッピングデータMDが記述されるブロックである。変換規則として、ストロークデータ記述ブロックSDBに記述されたストロークデータSDに含まれる入力センサ属性ISAの値を変換前のデータの値とし、この変換前データの値から、線幅や濃淡など新たな描画属性DAの属性の値を得るための変換規則funcが記述される。
【0053】
描画スタイルデータ記述ブロックDDBは、ペン先の形状などストロークデータSDを描画する際の基本的なスタイルを示す描画スタイルを記述するブロックである。
【0054】
ストロークデータ記述ブロックSDBは、ストロークデータSDが記述されるブロックである。
図4に示したストロークデータSD0〜SD4など複数個のストロークデータSDが列挙される。
【0055】
図2に戻り、マッピングデータ生成部32は、ストロークデータSD内に含まれる入力センサ属性ISAを描画属性DAに変換するための変換規則を示すマッピングデータMDを生成、出力する機能部である。なお、描画属性DAは、線幅値Wあるいは濃淡値(透明度A)のいずれかを含んで構成される。また、マッピングデータ生成部32が生成するマッピングデータMDには、変換規則の適用範囲を示す範囲データrd(後述)が含まれる。
【0056】
マッピングデータ生成部32が生成するマッピングデータMDの変換規則の内容funcは、ユーザ設定により事前に指定される。
【0057】
図7は、ユーザが設定するマッピングデータの内容funcの各種の例を示す図である。
図7(a)は、筆圧値Pを入力センサ属性ISAの変換前の値とし、変換後の値として線幅Wである描画属性DAの値を出力する変換規則の例を示している。図中、func1で示す関数は、0.0から1.0までの間で値を取る筆圧値Pに対し、その10倍の値を線幅Wとする変換規則である。図中、func2aで示す関数は、0.0から1.0までの間で値を取る筆圧値Pに対し、その5倍の値を線幅Wとする変換規則である。図中、func2bで示す関数は、0.0から1.0までの間で値を取る筆圧値Pに対し、その20倍の値を線幅Wとする変換規則である。
【0058】
図7(b)は、座標データ(X,Y)及び時刻Tに基づいて導出される速さVを入力センサ属性ISAの変換前の値とし、変換後の値として透明度Aである描画属性DAの値を出力する変換規則の例を示している。図中、func3とfunc3bで示す関数は、速さVが増加するに伴い透明度が単調増加する変換規則を示している。
【0059】
変換規則は、ユーザが任意に指定することができ、マッピングデータMDの変換規則の関数として、原点を通らないような関数func2cや、非線形の関数func3bなどを利用することもできる。
【0060】
次に、マッピングデータ生成部32が生成するマッピングデータMDについて、
図8を用いてより詳しく説明する。
図8は、InkMLのフォーマットに従ったマッピングデータMDの例を示している。
図8に示すように、本実施の形態によるマッピングデータ生成部32は、2つのマッピングデータMD1,MD2を生成するように構成される。
【0061】
最初に、マッピングデータMD1(第1のマッピングデータ)について説明する。
【0062】
図8の5行目〜6行目は、マッピングデータMD1が、筆圧データP(source="P")を線幅データW(target="W")に変換するための変換規則(第1の変換規則)であることを示している。7行目は、前述したMathMLを用いて表現することを示している。9行目〜11行目は、sourceである筆圧データP(を表す変数p)に対し、数値10を乗算する(<times/>)ことにより、線幅データWを生成する、という
図7の変換規則の内容func1を示している。尚、この関数func1による変換規則の適用範囲は、ストロークデータSDの全部であるとしているため、変換規則の適用範囲のデータを含まない。
【0063】
次に、マッピングデータMD2(第2のマッピングデータ)について説明する。
図8の19行目〜20行目は、マッピングデータMD2が、筆圧データP(source="P")を線幅データW(target="W")に変換するための変換規則(第2の変換規則)であることを示している。23行目〜25行目は、sourceである筆圧データP(を表す変数p)に数値5を掛ける(<times/>)ことにより線幅データWを生成するという、
図7の変換規則の内容func2aを示している。18行目の"range"は、この関数func2aによる変換規則の適用範囲を示す範囲データrd(第1の範囲データ)の存在と、その範囲の例「"−2,−1"」が示されている。ここで左側の「−2」は範囲の開始点を示し、「−1」は範囲の終了点を示している。
【0064】
ここで、範囲データrdの記述方法について詳しく説明する。今、ストロークデータSD内の各ポイントデータPDには、0から始まるインデックス値が付されているとする。範囲データrdは、ストロークデータの範囲を示すために、このポイントデータPDのインデックス値を示すインデックス値情報を使用する。インデックス値情報は、具体的には、インデックス値そのもの、又は、剰余演算を用いた演算規則によってインデックス値を修正してなる修正インデックス値である。
【0065】
演算規則は、例えば、次の式(1)及び式(2)によって表される。ただし、iは修正前のインデックス値であり、jは修正インデックス値であり、nはストロークデータSD内のポイントデータPDのポイントデータ数n(例えば、
図3に示したストロークデータSD1については、n=15となる)である。また、mod(a,b)は、aをbで割った場合に得られる剰余を求める関数である。式(1)より理解されるように、修正インデックス値jは、ポイントデータ数nを法として、対応するインデックス値iと合同な整数である。
【0067】
式(1)により算出される修正インデックス値jは、ポイントデータPDの総数nによらず、最後のインデックス値(n番目のポイントデータPDの修正インデックス値j)から順に「−1」「−2」「−3」・・・のように1ずつ低下する負の値となる。一方、インデックス値はすべて正の値であるので、範囲データrdに含まれるインデックス値情報の正負を判定することにより、そのインデックス値情報がインデックス値であるか修正インデックス値であるかを判定することができる。
【0068】
図9A乃至
図9Dは、範囲データrdの4つの例と、それぞれの例により示されるストロークデータSD0、ストロークデータSD1、及びストロークデータSD4におけるストロークの範囲(端部)を説明する図である。図中破線枠が、各々の例の範囲データrdに対応するストロークの範囲である。
【0069】
図9Aは、範囲データrdの例としてrange="−2,−1"を指定した場合のストロークの範囲を示す図である。ポイントデータ数nの異なるストロークデータSD0、SD1、及び、SD4に対し、修正インデックス値を用いた表現により、同一の表現でいずれのストロークデータに対しても末尾の端部である最後から2番目のポイントデータPDから最後のポイントデータPDまでの範囲を示すことが可能になる。
【0070】
図9Bは、範囲データrdの例としてrange="0,1"を指定した場合のストロークの範囲を示す図である。ポイントデータ数nの異なるストロークデータSD0、SD1、及び、SD4に対し、同一の表現で最初の端部である、最初のポイントデータPDから2番目のポイントデータPDまでの部分の範囲を示すことが可能となる。
【0071】
図9Cは、範囲データrdの例としてrange="−1,0"を指定した場合のストロークの範囲を示す図である。ポイントデータ数nの異なるストロークデータSD0、SD1、及び、SD4に対し、1個の表現で2つの端部を含む範囲を示すことができる。これは、インデックス値及び修正インデックス値によりストロークデータSDに含まれるポイントデータPDを扱うことによる効果である。この点は、特にストロークの両端部に対して特別な処理を要する場合に有益となる。
【0072】
図9Dは、範囲データrdの例としてrange="1、−2"を指定した場合のストロークの範囲を示している。
【0073】
このように、範囲データの記述に剰余値を用いた修正インデックス値jを含むインデックス値情報を用いることで以下の効果がある。
【0074】
まず、ストロークデータSD0〜SD4の各々のポイントデータPDの総数nによらず、全てのストロークデータSD0〜SD4の末端部の範囲を指定することができる。これは、ストロークの端部を指定する上で、マッピングデータMDの生成にあたって事前にストロークデータSDを参照する必要がないことを意味する。したがって、新たなストロークデータSDがマッピングデータを生成した後にも続けて生成されるようなアプリケーション(例えば、リアルタイムに描画領域を共有するアプリケーション)であっても、事前にストロークデータSDとは独立してマッピングデータMDを生成することが可能になる。
【0075】
また、剰余を用いて算出される修正インデックス値を利用することにより、ストロークデータSDを、修正インデックス値−1が与えられる末尾のポイントデータPDnと、インデックス値0が与えられる先端のポイントデータPD0とが連続している環状のデータとして扱えるようになる。これにより、インクデータの線幅や濃淡の変化の多いストロークデータの両端部に対する変形を1つの範囲データrdで示すことが可能になる。
【0076】
なお、ストロークデータSDの個々のために、途中のポイントデータPDのインデックスを指定する必要がある場合、例えば中央に位置するポイントデータPDを指定する場合などには、
図2に破線で示したように、マッピングデータ生成部32にストロークデータSDを供給すればよい。こうすることで、マッピングデータ生成部32は、変換規則の対象となるポイントデータPDのインデックス値を判定し、対応する範囲データに含めることが可能になる。
【0077】
図2に戻り、マッピングデータ生成部32により生成された1以上のマッピングデータMDは、適用順決定部33に供給される。適用順決定部33は、マッピングデータ生成部32から複数のマッピングデータMDが供給された場合に、それらの適用順を決定する機能部である。
【0078】
例えば
図8の例では、仮にマッピングデータMD2を適用した後にマッピングデータMD1を適用したとすると、マッピングデータMD1はストロークデータSD0〜SD5に含まれる全インデックス値のポイントデータPD0〜PDnに適用されるものであるから、マッピングデータMD2の適用結果が取り消される結果となってしまう。これに対し、マッピングデータMD1を適用した後にマッピングデータMD2を適用したとすると、マッピングデータMD1によってストロークデータSDに含まれる全インデックス値のポイントデータPD0〜PDnに対して線幅データWを生成した後、その線幅データWを上書きするように一部分(最初の端部、両端部等)のインデックス値のポイントデータPDに対応する線幅データWのみをマッピングデータMD2によって修正することが可能になる(
図11で後述する)。
【0079】
このように、1つのデジタルインクINKDが複数のマッピングデータMDを含む場合、その適用順によって結果が異なることになるので、適用順を予め規定しておく必要がある。より詳細には、適用順決定部33は、同一の属性データを同一の属性データに変換するように構成された2つのマッピングデータMDが存在し、かつ、これらの範囲データが重なりを有する場合に、例えば、ストロークデータSDの一部分に対するマッピングデータMD2によりストロークデータSDの全部に対するマッピングデータMD1を上書きするなどのユーザ設定に応じて、これらのマッピングデータMDの適用順を決定すればよい。こうすることで、ユーザが意図したとおりの属性データ(
図8の例では線幅データW)を得ることが可能になる。
【0080】
デジタルインク組立部31は、ストロークデータ生成部20から供給されるストロークデータSDを、
図6に示したストロークデータ記述ブロックSDBに配置する。
【0081】
また、デジタルインク組立部31は、適用順決定部33から供給される1又は複数のマッピングデータMDを、
図6に示したマッピングデータ記述ブロックMDBに配置する。この場合において、適用順決定部33から複数のマッピングデータMDが供給された場合、デジタルインク組立部31は、適用順決定部33により決定された適用順に基づいて、これら複数のマッピングデータMDの配置順を決定する。具体的な配置順は、後述するデジタルインク再生部40の仕様によるが、先に適用されるべきマッピングデータMD(
図8の例ではマッピングデータMD1)が、後に適用されるべきマッピングデータMD(
図8の例ではマッピングデータMD2)より上側に来るように配置することにより、再生部30が、このデジタルインクINKDをインタープリトする場合に、データの先頭から順にマッピングデータMD1、MD2、乃至MDmの順で変換規則を適用することで、再生時の適用順を適用順決定部33により決定された適用順と同じ順序にすることができる。
【0082】
又、デジタルインク組立部31は、設定データ記述ブロックDDBに、ストロークデータSDのフォーマットに関するスタイルなどを記述した描画スタイルデータDDを加える。
【0083】
図10は、描画スタイルデータDDの例として、ストロークデータSDの生成時にアプリケーションに設定されていたブラシのスタイルを示す描画スタイル情報DD1を示している。
【0084】
このようにして、デジタルインク組立部31は、ストロークデータSDとマッピングデータMDと描画スタイルデータDDとをXML文書として組み合わせることで、InkMLのフォーマットに合わせてデジタルインクINKDを組み立てる。
【0085】
尚、デジタルインク組立部31は、こうして組み立てたデジタルインクINKDを、
図6の行頭で宣言したXMLファイルの符号化方法(UTF8等)によりバイト列にしてXMLファイルとして、
図1の記憶装置2aやネットワークメディア等に出力する。このようにして、本実施の形態のデジタルインク処理装置2は、デジタルインクINKDを出力する。
【0086】
<デジタルインク再生処理>
次に、デジタルインクの再生処理について説明する。
【0087】
図2に示したデジタルインク再生部40は、デジタルインク処理装置2のうち、デジタルインク生成部30により生成されたデジタルインクINKDを再生する役割を果たす機能部である。
【0088】
デジタルインク再生部40が行う処理には、デジタルインクINKDからストロークデータSD(第1のストロークデータ)及びマッピングデータMDを抽出し、抽出したストロークデータSDに含まれる入力センサ属性ISAに対して、抽出したマッピングデータMDを適用することにより、描画属性DAの値を含む修正されたストロークデータSD(第2のストロークデータ)を生成する処理が含まれる。
【0089】
以下、このデジタルインク再生処理について、
図11を用いて具体的に説明する。以下では、処理対象のデジタルインクINKDが
図8に示したマッピングデータ記述ブロックMDBを含むものとして説明する。
【0090】
図11(a)は、デジタルインク再生部40によってデジタルインクINKDから抽出された状態のストロークデータSD1を示している。ストロークデータSD1は、入力センサ属性ISAとして、X座標を示す第1の属性データX、Y座標を示す第2の属性データY、筆圧値を示す第3の属性データPの3つの属性データを含んでいる。
【0091】
デジタルインク再生部40は、
図6に示したデジタルインクINKD内のマッピングデータ記述ブロックMDBから、
図8に示したマッピングデータMD1,MD2を順に抽出する。
【0092】
デジタルインク再生部40は、抽出した2つのマッピングデータMD1及びMD2のうち、最初に抽出したマッピングデータMD1をまずストロークデータSD1に適用する。
【0093】
これにより、
図11(b)に示すように、マッピングデータMD1適用後のストロークデータSD1が得られる。MD1適用後のストロークデータSDは、変換前の第1〜第3の属性データX,Y,Pに加え、第4の属性データとして新たな描画属性DAである線幅Wの値を含む。
【0094】
ここで、
図8に示すマッピングデータMD1には、範囲データrdについての明示的な記述が存在しない。このように明示的な範囲の指定がない場合、デジタルインク再生部40は、従前の<mappping>要素のルールに従い、ストローク全部(ストロークデータSDに含まれる全部のインデックスのポイントデータPD)に対しマッピングデータMD1が適用されるものとして処理を行う。これにより、
図8に示すマッピングデータMD1に関しては、ストロークデータSDの全部分に対して変換規則が適用されることになる。
図11中、rd1で示す破線枠は、ストロークデータSDのうちマッピングデータMD1にかかる変換規則が適用されるストロークの範囲を示している。又、rd1で示す破線枠内の値は、
図7のfunc1(10倍)を変換規則の内容とするマッピングデータMD1により得られた線幅Wの値を示している。
【0095】
図8のマッピングデータMD1内の変換規則func1に従ってデジタルインク再生部40が処理を行った結果、
図11(b)に示すように、マッピングデータMD1適用後のストロークデータSDでは、各ポイントデータPD内の第4の属性データ(線幅W)の値が筆圧データPの値の10倍の値として導出されている。
【0096】
次に、デジタルインク再生部40は、
図8に示すマッピングデータMD2を、その中に記述されている範囲データrdにより示されるストロークデータSDの範囲(部分)に対して適用する。なお、
図8に示した範囲データrdは"−2,−1"であったが、
図11(c)には、範囲データrdの値が"−1,−1"であるとした場合の例を示している。
図11(c)にrd2で示す破線枠は、範囲データrdの値が"−1,−1"であるとした場合にマッピングデータMD2が適用される範囲を示している。rd2で示す破線枠の内の値は、
図7のfunc2a(5倍)を変換規則の内容とするマッピングデータMD2により得られた描画属性DA(第4の属性データ)の値を示している。
【0097】
ポイントデータPD14について、
図11(c)に示すマッピングデータMD2適用後の値「3」を
図11(b)に示すマッピングデータMD1適用後の値「6」と比較すると理解されるように、マッピングデータMD2適用後のストロークデータSDにおいては、ストロークの一部分(最後の部分)のポイントデータPD14の描画属性DAの第4の属性データである線幅Wの値が部分的に減少している。これは、マッピングデータMD2内に、筆圧データPを5倍することにより筆圧データPを線幅データWに変換すること、及び、その適用範囲がインデックス値−1で示される最後のポイントデータPDのみであること、が記述されていることに対応するものである。
【0098】
以上のようにして、入力センサ属性ISAの値から描画属性DAを導出することにより変換後のストロークデータSDを生成したデジタルインク再生部40は、上述した描画スタイルDDなどの他の情報に基づいて既存の描画処理方法を適用することにより画像信号を生成する。
【0099】
図12は、既存の描画処理方法の例として、非特許文献6に記載された、描画処理の例を模式化したものである。図中、白丸PD0〜PD14は、ストロークデータSD1に含まれる15個のポイントデータPDを示している。白丸中の数字は、ポイントデータPD0〜PD15の各々についての第4の属性Wの値を示している。図中、各々の白丸の円の半径は、第4の属性Wの値に比例した値で記載している。例えば、ポイントデータPD0は第4の属性Wの値である10を径とし、ポイントデータPD14はマッピングデータMD2により得られた第4の属性(線幅データW)の値である3を径とする円で記載されている。
【0100】
デジタルインク再生部40は、ポイントデータPD0〜PD14の各々の円に接するような2つの包絡線(内側の包絡線IE、外側の包絡線OE)を導出する。そして、得られた2つの包絡線IE、OEをストロークデータSD1の形状の輪郭とする。例えばこのようにして、デジタルインク再生部40は、線幅データWに比例した線幅をストロークデータの線幅とした画像信号を生成することができる。尚、変換後のストロークデータSDの描画方法はこれに限るものではなく、既存の描画方法を利用するとしてよい。
【0101】
デジタルインク再生部40により生成された画像信号は、
図1に示すように、ディスプレイ5に出力される。これにより、ユーザの目に見える形で、ストロークデータSD0〜SD5について、マッピングデータMD2により修正されたストロークデータSDが表示されることになる。
【0102】
図13A〜
図13Dは、以上のようにして画像信号にされたストロークデータSD(ストロークデータSD0〜SD4)のイメージ例を示している。
【0103】
図13Aは、
図3に示したストロークデータSD0〜SD4に対し、筆圧Pを10倍して線幅Wを得る変換規則func1をストロークデータの全部分に対して適用して得られたストロークデータSDから再生された画像信号を示している。
【0104】
図13Bは、
図3に示したストロークデータSD0〜SD4に対し、(1)筆圧Pを10倍して線幅Wを得る変換規則func1をストロークデータの全部分に対して適用し、更に、(2)筆圧Pを5倍して線幅Wを得るという変換規則func2aを、ストロークの図中破線枠で示す末尾部分に対して適用して得られたストロークデータSDから再生された画像信号を示している。
【0105】
図13Cは、
図3に示したストロークデータSD0〜SD4に対し、(1)筆圧Pを10倍して線幅Wを得る変換規則func1をストロークデータの全部分に対して適用し、更に、(2)筆圧Pを5倍して線幅Wを得るという変換規則func2aを、ストロークの図中破線枠で示す末尾と先端との両方の端部に対して適用して得られたストロークデータSDから再生された画像信号を示している。
【0106】
図13Dは、
図3に示したストロークデータSD0〜SD4に対し、(1)筆圧Pを10倍して線幅Wを得る変換規則func1をストロークデータの全部分に対して適用し、更に、(2)筆圧Pを20倍して線幅Wを得るという変換規則func2bを、ストロークの図中破線枠で示す末尾と先端との両方の端部に対して適用して得られたストロークデータSDから再生された画像信号を示している。
【0107】
以上説明したように、本実施の形態による入力システム1(特にデジタルインク生成部30)によれば、筆圧データ等の入力センサ属性ISAを示すデータを失うことなく、線幅Wあるいは透明度Aなどのストロークデータの描画属性DAの値を導出するための変換規則を記述したインクデータINKDを生成することができる。
【0108】
これにより、描画属性DAの値(線幅Wや透明度A)を、入力センサ属性ISAのどの値からどのように導出したのかをデジタルインクINKDが示すことができることになるので、過去に生成したデジタルインクINKDに含まれる筆圧データPと線幅Wとの対応関係を一括して変更することや、デジタルインクINKDに(描画には直接用いられないにも関わらず)保存されている筆圧データPをシグネチャ認証の比較パラメータに利用することも可能になる。
【0109】
また、本実施の形態にかかるデジタルインクINKDの生成方法によれば、ストロークデータSDのうち、一部分の範囲に対してマッピングデータMD内の変換規則を適用する規則を記述したデジタルインクINKDを生成することが可能になる。したがって、上述した例のように、ストロークデータSDの始点と終点のみに変換規則が適用されるように構成することも可能になるので、
図13A〜
図13Dに例示したように筆跡について高い表現能力を有するデジタルインクINKDを生成することが可能になる。また、インデックス値と、剰余演算を用いて得られる修正インデックス値とを用いて範囲データの端点を表現するため、末端部、又は、末端部と先端部の両方を指定する変換規則を、ストロークデータSDが生成される前に事前に得ることが可能になる。
【0110】
(実施の形態2)
次に、本発明の第2の実施の形態による入力システム1について説明する。本実施の形態による入力システム1のシステム構成及びデジタルインク処理装置2の機能ブロックは、
図1及び
図2に示した第1の実施の形態によるものと同様である。
【0111】
本実施の形態による入力システム1は、ストロークデータ生成部20から出力されるストロークデータSDの内容、並びに、マッピングデータ生成部32及びデジタルインク再生部40それぞれの内部処理の点で第1の実施の形態による入力システム1と異なるので、第1の実施の形態と同一の構成には同一の符号を付して説明を省略し、以下では、第1の実施の形態との相違点に着目して説明する。
【0112】
本実施の形態によるストロークデータ生成部20は、座標データX、座標データY、及び時刻データTの3種類の入力センサ属性ISAを含むストロークデータSDを生成する。
図14に、本実施の形態によるストロークデータ生成部20によって生成されるストロークデータSDの例として、10個のポイントデータPD0〜PD9を含むストロークデータSD5を示す。
【0113】
図14の例に示されるように、本実施の形態においても、ストロークデータSDはInkMLの形式により生成されるものとし、具体的には、カンマ(,)によって各ポイントデータPDが区切られた形式により生成される。また、各ポイントデータPD内では、半角スペースによって各属性データが区切られている。ポイントデータPD内における各属性データの配置は、座標データX、座標データY、及び時刻データTの順となる。例えば、上記の例における2つ目のポイントデータPD1に関して言えば、左側の「8」が座標データX、中央の「0」が座標データY、右側の「'16」の右側の数値16が時刻データTとなる。なお、各ポイントデータPDの時刻データTは、最初のインデックス値に対応する時刻を0ミリ秒とし、そこからの経過時間によって表現されている。
【0114】
説明の単純のため、
図14の例は、16ミリ秒の一定間隔で座標データ(X,Y)が得られている例を示している。座標データ(X,Y)についても、Y座標は0で固定とし、X方向にのみ等加速度(16ミリ秒毎に速さが8増加する速さ)で電子ペン4を移動させた場合に得られる座標の例を示している。
【0115】
本実施の形態によるマッピングデータ生成部32は、1つのストロークデータSDに含まれる複数のポイントデータPDのうち第1のポイントデータPDiの第1の入力センサ属性ISA(例えば座標データ(X,Y)又は時刻データT)の値と、上記第1のポイントデータPDiとはインデックス値が異なる第2のポイントデータPDi+1に含まれる第1の入力センサ属性ISAの値とに基づいて、透明度データAである描画属性DAを得る変換規則を含むマッピングデータMDを生成するように構成される。
【0116】
本実施の形態によるマッピングデータ生成部32が生成するマッピングデータMDについて、
図15を用いてより詳しく説明する。
【0117】
図15は、本実施の形態によるマッピングデータ生成部32が生成するマッピングデータMD3を示す図である。
【0118】
3行目〜7行目は、変換元となる入力センサ属性(X,Y、T)と、変換により得られる描画属性(透明度A)を定義する部分である。
【0119】
11行目〜37行目はマッピングデータMD3に含まれる変換規則を示す部分である。具体的には、次の式(2)及び式(3)によりi番目のインデックス値に対応する透明度データA
iを生成する、という変換規則が記述されている。ここで、式(3)中のX
i,X
i−1,Y
i,Y
i−1,T
i,T
i−1はそれぞれ、i番目のインデックス値に対応する座標データX、i−1番目のインデックス値に対応する座標データX、i番目のインデックス値に対応する座標データY、i−1番目のインデックス値に対応する座標データY、i番目のインデックス値に対応する時刻データT、i−1番目のインデックス値に対応する時刻データTをそれぞれ示している。
【0121】
上記式(2)及び式(3)による変換規則の特徴は、i番目のインデックス値に対応する透明度データA
iを生成する際に、i番目ではないインデックス値に対応する属性データを参照している点にある。具体的には、1つ前のインデックス値i−1に対応する属性データを参照しており、式(3)によって求められるV
iは、インデックス値i−1に対応する位置からインデックス値iに対応する位置に移動するまでの間の電子ペン4の移動速度を表している。式(2)による変換規則は、移動速度V
iが大きくなるに伴い、透明度が大きくなるような関数(
図7(b)に示したfunc3)が設定されていることになる。
【0122】
ここで、
図15に示したマッピングデータMD3と、上記式(2)及び式(3)との対応関係について説明する。まず
図15において、dxで示す22行目「'x」、dyで示す27行目「'y」、dtで示す32行目の「't」はそれぞれ、「X
i−X
i−1」「Y
i−Y
i−1」「T
i−T
i−1」を意味している。
【0123】
図15内の破線枠Aで囲んだ部分は、Xの変位量である「X
i−X
i−1」を2乗した値を示している。破線枠Bで囲んだ部分は、Yの変位量である「Y
i−Y
i−1」を2乗した値を示している。図中破線枠Cで囲んだ部分は、式(3)右辺の分子に対応する2次元平面内での変位量を示している。破線枠Dで囲んだ部分は、式(3)の右辺全体に対応しており、時間「T
i−T
i−1」の区間の速さを示している。破線枠Eで囲んだ部分は、式(2)右辺の右辺全体「20・V
i」に対応している。このように、
図14に示したマッピングデータMD3には、式(2)及び式(3)により示される入力センサ属性ISAから描画属性DA(透明度A)への変換規則が記述されている。
【0124】
このように、本実施の形態のデジタルインク処理装置2は、マッピングデータMD3を含むデジタルインクINKDを生成、出力する。
【0125】
次に、
図16を用いて、本実施の形態におけるデジタルインク再生処理について説明する。
【0126】
まず、デジタルインクデータ再生部30は、デジタルインクINKDからストロークデータSD5とマッピングデータMD3とを抽出する。
【0127】
図16(a)は、デジタルインク再生部40がデジタルインクINKDから抽出した変換元のストロークデータSD5を示している。
図14で説明した通りストロークデータSD5は、入力センサ属性ISAとして、X座標を示す第1の属性データX、Y座標を示す第2の属性データY、時刻情報を示す第3の属性データTの3つのデータを含んでいる。
【0128】
次に、デジタルインクINKDを取得したデジタルインク再生部40は、抽出したストロークデータSD5に抽出したマッピングデータMD3を適用する。
図16(b)は、マッピングデータMD3の適用により得られたストロークデータSD5を示している。この時点におけるストロークデータSD5は、入力センサ属性ISAから導出された第4の属性(描画属性DA)の透明度データAを含んでいる。なお、上記式(2)及び式(3)によっては、1番目のインデックス値に対応する透明度データA
0が得られないので、デジタルインク再生部40は、便宜的に、透明度データA
1の値10を透明度データA
0の値10として設定している。
【0129】
図16(c)は、変換規則func3をストロークの全部ではなく、範囲データrd="−3、−1"の部分に適用した場合に得られるストロークデータSDを示している。この例では、ストローク中で末尾から3つの透明度データAのみが得られ、先頭部分等他の部分については値の得られない場合の透明度のデフォルトの値0としている。
【0130】
このように、本実施の形態によるデジタルインクデータ再生処理においては、変換規則により得られた透明度Aを含むストロークデータSDを得ることができる。
【0131】
以上のようにして、入力センサ属性ISAの値から描画属性DAを導出することにより変換後のストロークデータSDを生成したデジタルインク再生部40は、上述した描画スタイルDDなどの他の情報に基づいて既存の描画処理方法を適用することにより画像信号を生成する。
【0132】
図17は、本実施の形態によるストロークデータSDを説明するための図である。
【0133】
図17の最上段Aは、
図14で示したストロークデータSD5に含まれるポイントデータPD0〜PD9までの10個の座標データ(X,Y)の位置関係を示している。
【0134】
図17の中段Bは、各々のポイントデータPD0〜PD9を黒色の円で表現し、その黒色の透明度Aに
図16(b)に示した透明度Aの値を設定することにより得られるストロークデータSD5に基づいて生成される画像信号のイメージ図である。時間当たりの変位量あるいは移動速度Vが大きくなるにつれて透明度Aが大きくなる設定により、単位時間あたりにインクが紙に吸収される量が減少する状態を再現でき、より自然なストロークに近い表現を再現できる。
【0135】
図17の下段Cは、各々のポイントデータPD0〜PD9を黒色の円で表現し、その黒色の透明度Aに
図16(c)に示した透明度Aの値を設定することにより得られるストロークデータSD5に基づいて生成される画像信号のイメージ図である。ストロークのうち末尾の端部の範囲にのみ部分的に変換規則func3を適用することにより、人間の手の加速的な動き、漢字の払い等をイメージした表現を再現することを指定できるようになる。
【0136】
図18は、速度Vに応じて透明度Aが大きくなる変換規則の効果を説明するための他の図である。描画スタイル情報DD1(
図6及び
図10を参照)で設定されるブラシタイプとしてフェルトペンなどのデータを適用した場合に、
図17に示したストロークデータSD5と同様に図中左側から右側に移動するにつれて指示体の移動速度(速さ)が大きくなるに伴い透明度Aが増加している画像信号を示している。
【0137】
以上説明したように、本実施の形態によるデジタルインク処理装置2によれば、インデックス値の異なる2以上のポイントデータPDに含まれる入力センサ属性ISAの値を入力として描画属性DAを得るための変換関係を規定したマッピングデータMDを生成することができる。これにより、例えば、筆圧データPなどの入力センサ属性ISAを出力することのできない入力センサを用いて生成したデジタルインクであったとしても、線幅Wや透明度Aといった描画属性DAを導出することができ、かつ、その透明度Aや線幅Wを与えるために用いた元データの種別を(筆圧データが含まれていたのか、あるいは、速度等から導出したデータなのか)を記録することができる。
【0138】
また、透明度Aや線幅Wなどの描画属性DAを導出するにあたって、同じ入力センサ属性ISA(座標値)の微分値、積分値、又は、加算平均等の統計値に基づいた変換規則を記述することが可能になる。例えば、移動速度が大きくなるほど透明度Aが大きくなるような、変換規則を記述することが可能になる。
【0139】
以上、本発明の好ましい実施の形態について説明したが、本発明はこうした実施の形態に何等限定されるものではなく、本発明が、その要旨を逸脱しない範囲において、種々なる態様で実施され得ることは勿論である。
【0140】
例えば、第1の実施の形態と第2の実施の形態を組み合わせ、太さ及び濃淡の両方についての高い表現能力を有するデジタルインクを得ることも可能である。この場合、ストロークデータSDを構成する各ポイントデータPDに筆圧データPと時刻データTの両方を含め、かつ、デジタルインクINKDに、筆圧データPを線幅データWに変換するためのマッピングデータMD(第1の実施の形態)と、運筆速度から透明度データAを得るためのマッピングデータMD(第2の実施の形態)との両方を含めるようにすればよい。
【0141】
尚、第1の実施の形態において範囲データにより指定する範囲に適用される変換規則は、入力センサ属性ISAから線幅Wや透明度Aといった描画属性DAを導出するためのものでなくてもよい。ストロークの一部分に対し従来のアフィン変換などを用いて幾何形状を変形させたい場合に用いても良い。
【0142】
尚、又、第2の実施の形態において同一の入力センサ属性ISAの統計値により変換されて得られる属性は線幅Wや透明度Aといった描画属性DDに限らない。ストロークデータSDに含まれた座標データを元データとし、加重平均などの変換規則を適用して実際に描画する際に用いるポイントデータPDの座標データを得るとしてもよい。
【0143】
尚、又、本発明は、コンピュータを用いてストロークデータ生成部20及びデジタルインク生成部30の処理を順次実行する方法の発明と捉えることも可能であるし、これらの処理を実行させ得るためのプログラムを記述したコンピュータプログラムの発明と捉えることも可能であることは言うまでもない。