JP2016119051A - デジタルインク生成装置、デジタルインク生成方法、及びプログラム - Google Patents

デジタルインク生成装置、デジタルインク生成方法、及びプログラム Download PDF

Info

Publication number
JP2016119051A
JP2016119051A JP2015133170A JP2015133170A JP2016119051A JP 2016119051 A JP2016119051 A JP 2016119051A JP 2015133170 A JP2015133170 A JP 2015133170A JP 2015133170 A JP2015133170 A JP 2015133170A JP 2016119051 A JP2016119051 A JP 2016119051A
Authority
JP
Japan
Prior art keywords
data
stroke
digital ink
conversion rule
value
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015133170A
Other languages
English (en)
Other versions
JP6526504B2 (ja
Inventor
ブラニミール アンゲロフ
Angelov Branimir
ブラニミール アンゲロフ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wacom Co Ltd
Original Assignee
Wacom Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wacom Co Ltd filed Critical Wacom Co Ltd
Priority to JP2015133170A priority Critical patent/JP6526504B2/ja
Publication of JP2016119051A publication Critical patent/JP2016119051A/ja
Application granted granted Critical
Publication of JP6526504B2 publication Critical patent/JP6526504B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

【課題】入力センサ等から得られる筆圧等の入力センサ属性の値を保存しつつも、それらの入力センサ属性の値から線幅及び/又は透明度等が変化する筆跡を再現する変換規則を記述することが可能なデジタルインクを生成する。
【解決手段】デジタルインク処理装置2は、指示体を操作することに伴い入力センサにより生成されるペンイベントデータに基づいて、入力センサ属性を属性とするストロークデータSDを生成するストロークデータ生成部20と、ストロークデータに含まれた入力センサ属性の値を線幅又は透明度の値に変換するための変換規則を含むマッピングデータMDを生成するマッピングデータ生成部32と、ストロークデータSD及びマッピングデータMDを含むデジタルインクINKDをXML形式のデータフォーマットで外部機器に対し出力するデジタルインク組立部31とを備える。
【選択図】図2

Description

本発明はデジタルインク生成装置、デジタルインク生成方法及びデジタルインク再生装置に関し、特に、ペンを動作するに伴い生成されるイベントデータに基づいてデジタルインクを生成するデジタルインク生成装置及びデジタルインク生成方法と、そうして生成されたデジタルインクを再生するデジタルインク再生装置とに関する。
インクの充填されたペンや絵の具の付いた毛筆を紙の上で動かすことにより、インクや絵の具が紙に吸収あるいは堆積され軌跡が描かれる。
このように紙に描かれた手書きの軌跡(ストローク)を模擬するように、電子ペンやスタイラスなどの指示体をタブレット等の位置検出器の上で動かした軌跡を電子データ化したデータがデジタルインクである。デジタルインクは、通常、(1)手書きの軌跡を再現するためのデータ、(2)軌跡の描画スタイルを記述するデータ、及び、(3)軌跡に関するデータの変換規則を記述するデータを含み構成される。デジタルインクには、様々なOSで動作する描画アプリケーションや文書作成アプリケーションなどの異種環境でも利用できるように標準化されたデータフォーマットが存在する(非特許文献1〜4)。
非特許文献1記載のInkMLは、最も知られたデジタルインクのデータフォーマットの1つである。(1)手書きの軌跡を再現するためのデータは<trace>要素と呼ばれる。<trace>要素には、1ストローク(指示体を位置検出装置のセンサ面に接触させてから離すまでの動作)の軌跡を構成する複数のポイントデータ(入力センサによって所定の時間間隔で検出されるデータ。座標データ(X,Y)、筆圧データP、時刻データTなど、入力センサ依存の属性(入力センサ属性)を示すデータを含む)の集合を記述する。また、InkMLでは(2)軌跡の描画スタイルを指定するデータとして例えば<brush>要素などのデータ、(3)軌跡に関するデータの変換規則を記述するデータとして後述する<mapping>要素などのデータが規定されている。
非特許文献2記載のISF(Ink Serialized Format)は、マイクロソフト社のアプリケーション上で利用されるデジタルインクのデータフォーマットである。(1)手書きの軌跡を再現するためのデータのブロックは、StrokeDescriptorBlockと呼ばれる。StrokeDescriptorBlockには、ストロークの軌跡を再現するためのポイント(ポイントはX、Y座標値である)や筆圧値等が記述される。又、(2)描画スタイルを記述するブロックであるDrawingAttributeBlockや、(3)軌跡に関するデータの変形規則を記述するブロックとしてTransformBlockなどが規定されている。
非特許文献3記載のSVGは、二次元グラフィックスアプリケーション及び画像、並びにグラフィックスクリプトのセットを記述するためのマークアップ言語である。(1)手書きの軌跡を再現するためのデータとして<path>要素が存在する。<path>要素中には、複数の制御点(ポイントデータ)が含まれ、これらの複数の制御点に基づくベジエ曲線により軌跡が再現される。
他、非特許文献4記載のHTML5には、(1)手書きの軌跡を再現するためのデータとしてCanvas Pathクラスとよばれるデータ型が規定されている。
以下では、非特許文献1の<trace>、非特許文献2のStrokeDescriptorブロック、非特許文献3の<path>要素、非特許文献4記載のHTML5におけるCanvasPathなどを総称し、入力装置を用いて手書きした軌跡と線幅を含む形状を再現するためのベクタデータをストロークデータと呼ぶ。
また、以下では、非特許文献1の<mapping>、非特許文献2の<transformBlock>など軌跡に関するデータ(ストロークデータ)の変換規則を記述するデータを総称し、マッピングデータと呼ぶ。
図19Aは、非特許文献1のマッピングデータである<mapping>要素を説明する図である。この例は、<mapping>要素のタイプとして"affine"を用いた変換規則を示している。この変換規則は、X座標及びY座標で規定される図形に対し、4行目〜7行目で示す行列に示されるアフィン変換(90度の回転を施し、Y方向に200平行移動する変換)を施す変換を示している。
また、図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座標データを得るための変換規則を示している。
非特許文献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>_などを利用することができる。
非特許文献6には、デジタルインクに基づいて自然な線を描画するための描画方法の例が開示されている。
Yi-Min Chee、外11名、"Ink Markup Language (InkML) W3C Recommendation 20 September 2011"、[online]、平成23年9月20日、W3C、[平成26年11月19日検索]、インターネット〈URL:http://www.w3.org/TR/InkML/〉 "Ink Serialized Format Specification"、[online]、Microsoft Corporation、[平成26年12月11日検索]、インターネット〈URL:http://download.microsoft.com/download/0/B/E/0BE8BDD7-E5E8-422A-ABFD-4342ED7AD886/InkSerializedFormat(ISF)Specification.pdf〉 Erik Dahlstrom、外9名、"Scalable Vector Graphics (SVG) 1.1 (Second Edition) W3C Recommendation 16 August 2011"、[online]、平成23年8月16日、W3C、[平成26年12月11日検索]、インターネット〈URL:http://www.w3.org/TR/SVG/〉 Ian Hickson、外6名、"A vocabulary and associated APIs for HTML and XHTML W3C Recommendation 28 October 2014"、[online]、平成26年10月28日、W3C、[平成26年12月11日検索]、インターネット〈URL:http://www.w3.org/TR/html5/〉 Ron Ausbrooks、外15名、 "Mathematical Markup Language (MathML) Version 2.0 (Second Edition) W3C Recommendation 21 October 2003"、[online]、平成15年10月21日、W3C、[平成26年12月11日検索]、インターネット〈URL:http://www.w3.org/TR/MathML2/〉 L.M. Mestetskii、"Fat Curves and Representation of Planar Figures"、[online]、平成12年、Department of Information Technologies, Tver' State University, Tver, Russia、[平成26年11月19日検索]、インターネット〈URL:http://cgm.cs.ntust.edu.tw/hlyang/www/Fat%20Curves.ppt〉
しかしながら、上記非特許文献1や非特許文献2に例示されたマッピングデータによる変換規則は、ストロークデータの回転や拡大などの幾何的な変形に用いるためのものであり、ストロークデータに含まれた座標データや筆圧値など入力センサで得られた入力センサ属性から線幅や透明度などの描画処理において利用される描画属性データへの変換に着眼したものではない。ストロークデータ中に描画属性データの値を示す替わりに、描画属性データの値がどの入力センサ属性の値からどのような演算で得られる値であるかを示すことは、そのストロークデータを生成したときに用いられた入力センサの機能を事後的に確認できる点で有益である。
また、従来の変換規則の記述形式では、実際のペンや毛筆などが描く線の濃淡や幅への変換を表現するための変換規則を記述するために十分でない。具体的には、例えばインクを充填したペンや絵の具を吸収した毛筆を用いて紙の上に線を書いた場合、特に始点や終点などで、ペンや毛筆を動かした際のインクや絵の具のかすれ具合などによりストロークの一部分が細くなったり、逆に太くなったりする。上記従来の変換規則の記述形式によっては、ストロークの一部分に対して特別な変換規則を適用する変換規則を与える記述や、速度等ストロークの入力センサ属性の値の変化量に対しての変換規則を記述することができない。
したがって、本発明の目的のひとつは、入力センサ等から得られる筆圧等の入力センサ属性の値を保存しつつも、それらの入力センサ属性の値から線幅及び/又は透明度等が変化する筆跡を再現する変換規則を記述することが可能なデジタルインクを生成するデジタルインク生成装置及びデジタルインク生成方法と、そのようなデジタルインク生成装置によって生成されたデジタルインクを再生できるデジタルインク再生装置とを提供することにある。
第1の発明は、指示体を操作することに伴い入力センサにより生成されるペンイベントデータに基づいて、入力センサ属性を属性とするストロークデータを生成するストロークデータ生成部と、前記ストロークデータに含まれた前記入力センサ属性の値を、線幅又は透明度の値に変換するための変換規則を示すマッピングデータを生成するマッピングデータ生成部と、前記ストロークデータ及び前記マッピングデータを含むデジタルインクを所定のデータフォーマットで出力するデジタルインク組立部と、を備えるデジタルインク生成装置である。
第2の発明は、第1の発明において、前記マッピングデータ生成部は、前記入力センサ属性の値を線幅又は透明度の値に変換するための変換規則と該変換規則が適用される範囲を示す範囲データとを含むマッピングデータを生成する、というものである。
第3の発明は、第1の発明において、前記ストロークデータ生成部は、前記入力センサ属性を属性とするポイントデータを複数含むストロークデータを生成し、前記マッピングデータ生成部は、複数の前記ポイントデータのうち第1のポイントデータに含まれる前記入力センサ属性のうち第1の属性の値と、複数の前記ポイントデータのうちの前記第1のポイントデータとは異なる第2のポイントデータに含まれる前記第1の属性の値との統計値に基づいて、前記第2のポイントデータの線幅又は透明度の値を得るための変換規則を含むマッピングデータを生成する、というものである。
また、本発明によるデジタルインク再生装置は、本発明によるデジタルインク生成装置により生成される前記デジタルインクから前記ストロークデータ及び前記マッピングデータを抽出し、前記ストロークデータに含まれた前記入力センサ属性の値に、前記マッピングデータに含まれた前記変換規則を適用することにより線幅又は透明度の値を含むストロークデータを生成し、生成されたストロークデータを描画処理する、というものである。
また、本発明によるデジタルインク生成方法は、入力センサを備えたコンピュータで実行されるデジタルインク生成方法であって、指示体を操作することに伴い前記入力センサにより生成されるペンイベントデータに基づいて、第1の属性を属性とするストロークデータを生成するストロークデータ生成ステップと、前記ストロークデータに含まれた前記第1の属性の値を、前記第1の属性または第2の属性の値に変換するための変換規則を示すマッピングデータを生成するマッピングデータ生成ステップと、前記ストロークデータ及び前記マッピングデータを含むデジタルインクを所定のデータフォーマットで出力するデジタルインク組立ステップと、を含む。
第1の発明によれば、筆圧データ等の入力センサ属性の値を保持したまま、その入力センサ属性の値に基づいて線幅あるいは透明度などのストロークデータの描画属性の値を導出するための変換規則を記述したデジタルインクを生成することができる。これにより、例えば、線幅や透明度といった値が入力センサにより取得された筆圧から導出された値なのか、速度のパラメータから仮想的に導出された値なのかの区別をしたい場合や、事後的に一括して筆圧と線幅との対応関係を変更したい場合、又は、筆圧値Pをシグネチャ認証の比較パラメータに利用するような場合に有益である。
また、第2の発明によれば、一部分の範囲に対してマッピングデータ内の変換規則を適用する規則を記述したデジタルインクを生成することが可能になる。これにより、例えば、ストロークの始点付近の部分や終点付近の部分のみに変換規則が適用されるように構成することも可能になるので、特に、実際のストロークでも線幅や透明度が変わりやすい端部に対して特別な強調処理を実行することのできる表現力の高い変換規則を記述することができる。
また、第3の発明によれば、インデックス値の異なる2以上のポイントデータに含まれる入力センサ属性値を入力として線幅や透明度等を得るための変換関係を規定したマッピングデータを生成することができる。これにより、透明度や線幅などの描画時に用いる属性の値を導出するにあたって、微分値、積分値、又は、加算平均等の統計値に基づいた変換規則を適用することができ、例えば、指示体の移動の速さに応じて透明度が増加する変換規則など、実際のインクの状況を模したデジタルインクを生成するための変換規則を記述することができる。
本発明の第1の実施の形態による入力システム1を示す概念図である。 図1に示したデジタルインク処理装置2の機能ブロック図である。 ポイントデータPDとストロークデータSDとの関係を説明する図である。 InkML形式のフォーマットに従って生成される図3のストロークデータSD0〜SD4を示す図である。 図4の5つのアルファベットに対応するストロークデータSD0〜SD4のうち、アルファベット"e"に対応するストロークデータSD1のみを取り出した図である。 図2に示したデジタルインク組立部31が組み立てるデジタルインクINKDを説明する図である。 ユーザが設定するマッピングデータの内容funcの各種の例を示す図である。 InkMLのフォーマットに従ったマッピングデータMDの例を示す図である。 範囲データrdの例としてrange="−2,−1"を指定した場合のストロークの範囲を示す図である。 範囲データrdの例としてrange="0,1"を指定した場合のストロークの範囲を示す図である。 範囲データrdの例としてrange="−1,0"を指定した場合のストロークの範囲を示す図である。 範囲データrdの例としてrange="1、−2"を指定した場合のストロークの範囲を示す図である。 描画スタイルデータDDの例として、ストロークデータSDの生成時にアプリケーションに設定されていたブラシのスタイルを示す描画スタイル情報DD1を示す図である。 (a)は、デジタルインク再生部40によってデジタルインクINKDから抽出された状態のストロークデータSD1を示す図であり、(b)は、マッピングデータMD1適用後のストロークデータSD1を示す図であり、(c)は、マッピングデータMD2適用後のストロークデータSD1を示す図である。 非特許文献6に記載される描画処理の例を模式化した図である。 図3に示したストロークデータSD0〜SD4に対し、筆圧Pを10倍して線幅Wを得る変換規則func1をストロークデータの全部分に対して適用して得られたストロークデータSDから再生された画像信号を示す図である。 図3に示したストロークデータSD0〜SD4に対し、(1)筆圧Pを10倍して線幅Wを得る変換規則func1をストロークデータの全部分に対して適用し、更に、(2)筆圧Pを5倍して線幅Wを得るという変換規則func2aを、ストロークの図中破線枠で示す末尾部分に対して適用して得られたストロークデータSDから再生された画像信号を示す図である。 図3に示したストロークデータSD0〜SD4に対し、(1)筆圧Pを10倍して線幅Wを得る変換規則func1をストロークデータの全部分に対して適用し、更に、(2)筆圧Pを5倍して線幅Wを得るという変換規則func2aを、ストロークの図中破線枠で示す末尾と先端との両方の端部に対して適用して得られたストロークデータSDから再生された画像信号を示す図である。 図3に示したストロークデータSD0〜SD4に対し、(1)筆圧Pを10倍して線幅Wを得る変換規則func1をストロークデータの全部分に対して適用し、更に、(2)筆圧Pを20倍して線幅Wを得るという変換規則func2bを、ストロークの図中破線枠で示す末尾と先端との両方の端部に対して適用して得られたストロークデータSDから再生された画像信号を示す図である。 本発明の第2の実施の形態によるストロークデータ生成部20によって生成されるストロークデータSDの例として、10個のポイントデータPD0〜PD9を含むストロークデータSD5を示す図である。 本発明の第2の実施の形態によるマッピングデータ生成部32が生成するマッピングデータMD3を示す図である。 (a)は、デジタルインク再生部40によってデジタルインクINKDから抽出された状態のストロークデータSD5を示す図であり、(b)は、ストロークの全部にマッピングデータMD3を適用した後のストロークデータSD5を示す図であり、(c)は、範囲データrd="−3、−1"の部分にマッピングデータMD3を適用した後のストロークデータSD5を示す図である。 本発明の第2の実施の形態によるストロークデータSDを説明するための図である。 速度Vに応じて透明度Aが大きくなる変換規則の効果を説明するための他の図である。 非特許文献1のマッピングデータである<mapping>要素を説明する図である。 <mapping>要素のタイプとして「mathml」を利用した変換規則を示す図である。
以下、添付図面を参照しながら、本発明の好ましい実施の形態について詳細に説明する。
(第1の実施の形態)
図1は、本発明の第1の実施の形態による入力システム1を示す概念図である。入力システム1は、記憶装置2aを有するデジタルインク処理装置2と、平板状のセンサ3aを有するデジタイザ3(位置検出装置)と、電子ペン4(指示体)と、ディスプレイ5とを備えて構成される。なお、指示体としては、上記電子ペン4の他に、例えば人間の指や単なるプラスチックの棒(スタイラス)を用いることも可能である。また、図1では、コンピュータ2、デジタイザ3、及びディスプレイ5を別体の装置として描いているが、これらの一部又は全部を一体の装置(タブレットPCなど)として構成することも可能である。
入力システム1は、ユーザが、電子ペン4を用いてデジタイザ3のセンサ3a上で文字や絵を描くことにより入力された座標データ等に基づいてInkML形式のデジタルインクを生成して記憶装置2aに記録する機能と、記録されたデジタルインクから画像信号を生成しディスプレイ5上に再生する機能とを有している。
センサ3aの表面には、それぞれx方向(センサ3aの表面内の一方向)に延在する複数の線状導体と、それぞれy方向(センサ3aの表面内においてx方向と直交する方向)に延在する複数の線状導体とがそれぞれ等間隔で配置される。デジタイザ3は、センサ3aの表面に電子ペン4が近づいたことによって生ずるこれらの線状導体の電位の変化に基づき、センサ3aの表面内における電子ペン4の位置を示す座標データ(X,Y)を検出するよう構成される。
本実施の形態の電子ペン4は、所定の時間間隔で筆圧データPを検出し、検出した筆圧データPを随時デジタイザ3に対して送信するように構成される。
デジタイザ3は、上記座標データ(X,Y)及び筆圧データPを検出するように構成される。そして、検出した座標データ(X,Y)と、対応する筆圧データPと、検出時刻を示す時刻データTとのセットである入力センサデータISDを生成し、随時、図1に示すようにデジタルインク処理装置2に対して、図示しないIO部を通じて出力するように構成される。これによりデジタルインク処理装置2には、デジタイザ3が電子ペン4を検出している間、一連の入力センサデータISDがセンサ3aのサンプリングレート毎に供給されることになる。
デジタルインク処理装置2は、例えばパーソナルコンピュータである。図示した記憶装置2aの他、CPUや通信回路などの通常のコンピュータが備える構成を備えている。記憶装置2aは、主メモリなどの主記憶装置と、ハードディスクなどの補助記憶装置とを含んで構成される。図2に示すデジタルインク処理装置2の機能ブロックは、デジタルインク処理装置2のCPUが記憶装置2a内に記憶されるプログラムに従って動作することによって実現される。
図2は、デジタルインク処理装置2の機能ブロック図である。同図に示すように、デジタルインク処理装置2は機能的に、入力処理部10、ストロークデータ生成部20、デジタルインク生成部30、及びデジタルインク再生部40を有して構成される。このうちデジタルインク生成部30は、内部構成として、デジタルインク組立部31、マッピングデータ生成部32、及び適用順決定部33を有して構成される。
入力処理部10は、デジタイザ3からUSBやI2C等のインタフェース経由で供給される入力センサデータISDから座標データ(X,Y)や筆圧データPなどの入力センサ属性ISAを抽出し、オペレーティングシステム上で動作する他のプログラムに利用可能な形式であるイベントデータEDにして出力する。入力処理部10は、典型的には、デジタルインク処理装置2上で動作するオペレーティングシステムに組み込まれたデジタイザ3に対応するデバイスドライバとして実現される。
ここで、イベントデータ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を生成する。
ストロークデータ生成部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とする場合がある。
図3は、ポイントデータPDとストロークデータSDとの関係を説明する図である。図中、5つの破線枠は、5つのアルファベット「h」「e」「l」「l」「o」が入力された際に生成される5つのストロークデータSD(SD0、SD1、SD2、SD3、SD4)を示している。
ストロークデータSD0〜SD4の各々には、図中白丸で示す一連のポイントデータPDが包含される。図中白丸間の実線は、白丸で示されるポイントデータPDが一連のものであることを示す。
ここで、アルファベット「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の値は異なる。
尚、図3に示したOPは、ポイントデータPDに含まれる座標データ(X,Y)についての座標系の原点座標を示している。以下、説明の便宜上、座標データの値は、右への方向をX座標の値が増加する方向とし、下への方向をY座標の値が増加する方向とする。
本実施の形態のストロークデータ生成部20は、ストロークデータSDのフォーマットとして非特許文献1のInkMLを利用したフォーマットに従い、<trace>要素の記述形式に従ってストロークデータSDを生成する。
図4は、InkML形式のフォーマットに従って生成される図3のストロークデータSD0〜SD4を示す図である。図5は、図4の5つのアルファベットに対応するストロークデータSD0〜SD4のうち、アルファベット"e"に対応するストロークデータSD1のみを取り出した図である。
図4、図5の例に示されるように、ストロークデータSDは、<trace>要素として表現され、図中各行の末尾に存在するカンマ(,)を区切り記号として各ポイントデータPD0〜PD14が区切られる形式により生成される。
各ポイントデータPD内では、1以上の半角スペースを区切り記号として各属性データが区切られている。本実施の形態においては、ストロークデータSD内に、入力センサ属性ISAである第1の属性(座標データX)、第2の属性(座標データY)、及び第3の属性(筆圧データP)の3つの属性データを、元データの値のまま保持している。
これら3つの入力センサ属性ISAの値は、座標データX、座標データY、及び筆圧データPの順で各ポイントデータPD内に配置されている。例えば、図5に示すストロークデータSd1におけるインデックス値0である1つ目のポイントデータPD0に関して言えば、左側の「199」が座標データX、「306」が座標データY、「1.0」が筆圧データPとなる。
図2に戻る。ストロークデータ生成部20が生成したストロークデータSDは、デジタルインク組立部31に供給される。デジタルインク組立部31は、こうして供給されるストロークデータSDと、適用順決定部33から供給される1又は複数のマッピングデータMDとに基づいて、デジタルインクINKDを組み立てるよう構成される。
図6は、デジタルインク組立部31が組み立てるデジタルインクINKDを説明する図である。図の例はデジタルインクINKDをInkMLのフォーマットに従って生成した例である。
デジタルインクINKDは、「<?xml 」で始まるXML宣言と、「<ink・・>」で始まる行から末尾行の</ink>までの間に記述される<ink>要素とを含んで構成される。
<ink>要素は、定義ブロックDEB(<definitions>要素)及びストロークデータ記述ブロックSDB(<ストロークデータSD>要素)を含んで構成される。
定義ブロックDEBは、マッピングデータ記述ブロックMDBと描画スタイルデータ記述ブロックDDBとを含み構成される。
マッピングデータ記述ブロックMDBは、ストロークデータの変換規則を示すマッピングデータMDが記述されるブロックである。変換規則として、ストロークデータ記述ブロックSDBに記述されたストロークデータSDに含まれる入力センサ属性ISAの値を変換前のデータの値とし、この変換前データの値から、線幅や濃淡など新たな描画属性DAの属性の値を得るための変換規則funcが記述される。
描画スタイルデータ記述ブロックDDBは、ペン先の形状などストロークデータSDを描画する際の基本的なスタイルを示す描画スタイルを記述するブロックである。
ストロークデータ記述ブロックSDBは、ストロークデータSDが記述されるブロックである。図4に示したストロークデータSD0〜SD4など複数個のストロークデータSDが列挙される。
図2に戻り、マッピングデータ生成部32は、ストロークデータSD内に含まれる入力センサ属性ISAを描画属性DAに変換するための変換規則を示すマッピングデータMDを生成、出力する機能部である。なお、描画属性DAは、線幅値Wあるいは濃淡値(透明度A)のいずれかを含んで構成される。また、マッピングデータ生成部32が生成するマッピングデータMDには、変換規則の適用範囲を示す範囲データrd(後述)が含まれる。
マッピングデータ生成部32が生成するマッピングデータMDの変換規則の内容funcは、ユーザ設定により事前に指定される。
図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とする変換規則である。
図7(b)は、座標データ(X,Y)及び時刻Tに基づいて導出される速さVを入力センサ属性ISAの変換前の値とし、変換後の値として透明度Aである描画属性DAの値を出力する変換規則の例を示している。図中、func3とfunc3bで示す関数は、速さVが増加するに伴い透明度が単調増加する変換規則を示している。
変換規則は、ユーザが任意に指定することができ、マッピングデータMDの変換規則の関数として、原点を通らないような関数func2cや、非線形の関数func3bなどを利用することもできる。
次に、マッピングデータ生成部32が生成するマッピングデータMDについて、図8を用いてより詳しく説明する。図8は、InkMLのフォーマットに従ったマッピングデータMDの例を示している。図8に示すように、本実施の形態によるマッピングデータ生成部32は、2つのマッピングデータMD1,MD2を生成するように構成される。
最初に、マッピングデータMD1(第1のマッピングデータ)について説明する。
図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の全部であるとしているため、変換規則の適用範囲のデータを含まない。
次に、マッピングデータ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」は範囲の終了点を示している。
ここで、範囲データrdの記述方法について詳しく説明する。今、ストロークデータSD内の各ポイントデータPDには、0から始まるインデックス値が付されているとする。範囲データrdは、ストロークデータの範囲を示すために、このポイントデータPDのインデックス値を示すインデックス値情報を使用する。インデックス値情報は、具体的には、インデックス値そのもの、又は、剰余演算を用いた演算規則によってインデックス値を修正してなる修正インデックス値である。
演算規則は、例えば、次の式(1)及び式(2)によって表される。ただし、iは修正前のインデックス値であり、jは修正インデックス値であり、nはストロークデータSD内のポイントデータPDのポイントデータ数n(例えば、図3に示したストロークデータSD1については、n=15となる)である。また、mod(a,b)は、aをbで割った場合に得られる剰余を求める関数である。式(1)より理解されるように、修正インデックス値jは、ポイントデータ数nを法として、対応するインデックス値iと合同な整数である。
Figure 2016119051
式(1)により算出される修正インデックス値jは、ポイントデータPDの総数nによらず、最後のインデックス値(n番目のポイントデータPDの修正インデックス値j)から順に「−1」「−2」「−3」・・・のように1ずつ低下する負の値となる。一方、インデックス値はすべて正の値であるので、範囲データrdに含まれるインデックス値情報の正負を判定することにより、そのインデックス値情報がインデックス値であるか修正インデックス値であるかを判定することができる。
図9A乃至図9Dは、範囲データrdの4つの例と、それぞれの例により示されるストロークデータSD0、ストロークデータSD1、及びストロークデータSD4におけるストロークの範囲(端部)を説明する図である。図中破線枠が、各々の例の範囲データrdに対応するストロークの範囲である。
図9Aは、範囲データrdの例としてrange="−2,−1"を指定した場合のストロークの範囲を示す図である。ポイントデータ数nの異なるストロークデータSD0、SD1、及び、SD4に対し、修正インデックス値を用いた表現により、同一の表現でいずれのストロークデータに対しても末尾の端部である最後から2番目のポイントデータPDから最後のポイントデータPDまでの範囲を示すことが可能になる。
図9Bは、範囲データrdの例としてrange="0,1"を指定した場合のストロークの範囲を示す図である。ポイントデータ数nの異なるストロークデータSD0、SD1、及び、SD4に対し、同一の表現で最初の端部である、最初のポイントデータPDから2番目のポイントデータPDまでの部分の範囲を示すことが可能となる。
図9Cは、範囲データrdの例としてrange="−1,0"を指定した場合のストロークの範囲を示す図である。ポイントデータ数nの異なるストロークデータSD0、SD1、及び、SD4に対し、1個の表現で2つの端部を含む範囲を示すことができる。これは、インデックス値及び修正インデックス値によりストロークデータSDに含まれるポイントデータPDを扱うことによる効果である。この点は、特にストロークの両端部に対して特別な処理を要する場合に有益となる。
図9Dは、範囲データrdの例としてrange="1、−2"を指定した場合のストロークの範囲を示している。
このように、範囲データの記述に剰余値を用いた修正インデックス値jを含むインデックス値情報を用いることで以下の効果がある。
まず、ストロークデータSD0〜SD4の各々のポイントデータPDの総数nによらず、全てのストロークデータSD0〜SD4の末端部の範囲を指定することができる。これは、ストロークの端部を指定する上で、マッピングデータMDの生成にあたって事前にストロークデータSDを参照する必要がないことを意味する。したがって、新たなストロークデータSDがマッピングデータを生成した後にも続けて生成されるようなアプリケーション(例えば、リアルタイムに描画領域を共有するアプリケーション)であっても、事前にストロークデータSDとは独立してマッピングデータMDを生成することが可能になる。
また、剰余を用いて算出される修正インデックス値を利用することにより、ストロークデータSDを、修正インデックス値−1が与えられる末尾のポイントデータPDnと、インデックス値0が与えられる先端のポイントデータPD0とが連続している環状のデータとして扱えるようになる。これにより、インクデータの線幅や濃淡の変化の多いストロークデータの両端部に対する変形を1つの範囲データrdで示すことが可能になる。
なお、ストロークデータSDの個々のために、途中のポイントデータPDのインデックスを指定する必要がある場合、例えば中央に位置するポイントデータPDを指定する場合などには、図2に破線で示したように、マッピングデータ生成部32にストロークデータSDを供給すればよい。こうすることで、マッピングデータ生成部32は、変換規則の対象となるポイントデータPDのインデックス値を判定し、対応する範囲データに含めることが可能になる。
図2に戻り、マッピングデータ生成部32により生成された1以上のマッピングデータMDは、適用順決定部33に供給される。適用順決定部33は、マッピングデータ生成部32から複数のマッピングデータMDが供給された場合に、それらの適用順を決定する機能部である。
例えば図8の例では、仮にマッピングデータMD2を適用した後にマッピングデータMD1を適用したとすると、マッピングデータMD1はストロークデータSD0〜SD5に含まれる全インデックス値のポイントデータPD0〜PDnに適用されるものであるから、マッピングデータMD2の適用結果が取り消される結果となってしまう。これに対し、マッピングデータMD1を適用した後にマッピングデータMD2を適用したとすると、マッピングデータMD1によってストロークデータSDに含まれる全インデックス値のポイントデータPD0〜PDnに対して線幅データWを生成した後、その線幅データWを上書きするように一部分(最初の端部、両端部等)のインデックス値のポイントデータPDに対応する線幅データWのみをマッピングデータMD2によって修正することが可能になる(図11で後述する)。
このように、1つのデジタルインクINKDが複数のマッピングデータMDを含む場合、その適用順によって結果が異なることになるので、適用順を予め規定しておく必要がある。より詳細には、適用順決定部33は、同一の属性データを同一の属性データに変換するように構成された2つのマッピングデータMDが存在し、かつ、これらの範囲データが重なりを有する場合に、例えば、ストロークデータSDの一部分に対するマッピングデータMD2によりストロークデータSDの全部に対するマッピングデータMD1を上書きするなどのユーザ設定に応じて、これらのマッピングデータMDの適用順を決定すればよい。こうすることで、ユーザが意図したとおりの属性データ(図8の例では線幅データW)を得ることが可能になる。
デジタルインク組立部31は、ストロークデータ生成部20から供給されるストロークデータSDを、図6に示したストロークデータ記述ブロックSDBに配置する。
また、デジタルインク組立部31は、適用順決定部33から供給される1又は複数のマッピングデータMDを、図6に示したマッピングデータ記述ブロックMDBに配置する。この場合において、適用順決定部33から複数のマッピングデータMDが供給された場合、デジタルインク組立部31は、適用順決定部33により決定された適用順に基づいて、これら複数のマッピングデータMDの配置順を決定する。具体的な配置順は、後述するデジタルインク再生部40の仕様によるが、先に適用されるべきマッピングデータMD(図8の例ではマッピングデータMD1)が、後に適用されるべきマッピングデータMD(図8の例ではマッピングデータMD2)より上側に来るように配置することにより、再生部30が、このデジタルインクINKDをインタープリトする場合に、データの先頭から順にマッピングデータMD1、MD2、乃至MDmの順で変換規則を適用することで、再生時の適用順を適用順決定部33により決定された適用順と同じ順序にすることができる。
又、デジタルインク組立部31は、設定データ記述ブロックDDBに、ストロークデータSDのフォーマットに関するスタイルなどを記述した描画スタイルデータDDを加える。
図10は、描画スタイルデータDDの例として、ストロークデータSDの生成時にアプリケーションに設定されていたブラシのスタイルを示す描画スタイル情報DD1を示している。
このようにして、デジタルインク組立部31は、ストロークデータSDとマッピングデータMDと描画スタイルデータDDとをXML文書として組み合わせることで、InkMLのフォーマットに合わせてデジタルインクINKDを組み立てる。
尚、デジタルインク組立部31は、こうして組み立てたデジタルインクINKDを、図6の行頭で宣言したXMLファイルの符号化方法(UTF8等)によりバイト列にしてXMLファイルとして、図1の記憶装置2aやネットワークメディア等に出力する。このようにして、本実施の形態のデジタルインク処理装置2は、デジタルインクINKDを出力する。
<デジタルインク再生処理>
次に、デジタルインクの再生処理について説明する。
図2に示したデジタルインク再生部40は、デジタルインク処理装置2のうち、デジタルインク生成部30により生成されたデジタルインクINKDを再生する役割を果たす機能部である。
デジタルインク再生部40が行う処理には、デジタルインクINKDからストロークデータSD(第1のストロークデータ)及びマッピングデータMDを抽出し、抽出したストロークデータSDに含まれる入力センサ属性ISAに対して、抽出したマッピングデータMDを適用することにより、描画属性DAの値を含む修正されたストロークデータSD(第2のストロークデータ)を生成する処理が含まれる。
以下、このデジタルインク再生処理について、図11を用いて具体的に説明する。以下では、処理対象のデジタルインクINKDが図8に示したマッピングデータ記述ブロックMDBを含むものとして説明する。
図11(a)は、デジタルインク再生部40によってデジタルインクINKDから抽出された状態のストロークデータSD1を示している。ストロークデータSD1は、入力センサ属性ISAとして、X座標を示す第1の属性データX、Y座標を示す第2の属性データY、筆圧値を示す第3の属性データPの3つの属性データを含んでいる。
デジタルインク再生部40は、図6に示したデジタルインクINKD内のマッピングデータ記述ブロックMDBから、図8に示したマッピングデータMD1,MD2を順に抽出する。
デジタルインク再生部40は、抽出した2つのマッピングデータMD1及びMD2のうち、最初に抽出したマッピングデータMD1をまずストロークデータSD1に適用する。
これにより、図11(b)に示すように、マッピングデータMD1適用後のストロークデータSD1が得られる。MD1適用後のストロークデータSDは、変換前の第1〜第3の属性データX,Y,Pに加え、第4の属性データとして新たな描画属性DAである線幅Wの値を含む。
ここで、図8に示すマッピングデータMD1には、範囲データrdについての明示的な記述が存在しない。このように明示的な範囲の指定がない場合、デジタルインク再生部40は、従前の<mappping>要素のルールに従い、ストローク全部(ストロークデータSDに含まれる全部のインデックスのポイントデータPD)に対しマッピングデータMD1が適用されるものとして処理を行う。これにより、図8に示すマッピングデータMD1に関しては、ストロークデータSDの全部分に対して変換規則が適用されることになる。図11中、rd1で示す破線枠は、ストロークデータSDのうちマッピングデータMD1にかかる変換規則が適用されるストロークの範囲を示している。又、rd1で示す破線枠内の値は、図7のfunc1(10倍)を変換規則の内容とするマッピングデータMD1により得られた線幅Wの値を示している。
図8のマッピングデータMD1内の変換規則func1に従ってデジタルインク再生部40が処理を行った結果、図11(b)に示すように、マッピングデータMD1適用後のストロークデータSDでは、各ポイントデータPD内の第4の属性データ(線幅W)の値が筆圧データPの値の10倍の値として導出されている。
次に、デジタルインク再生部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の属性データ)の値を示している。
ポイントデータPD14について、図11(c)に示すマッピングデータMD2適用後の値「3」を図11(b)に示すマッピングデータMD1適用後の値「6」と比較すると理解されるように、マッピングデータMD2適用後のストロークデータSDにおいては、ストロークの一部分(最後の部分)のポイントデータPD14の描画属性DAの第4の属性データである線幅Wの値が部分的に減少している。これは、マッピングデータMD2内に、筆圧データPを5倍することにより筆圧データPを線幅データWに変換すること、及び、その適用範囲がインデックス値−1で示される最後のポイントデータPDのみであること、が記述されていることに対応するものである。
以上のようにして、入力センサ属性ISAの値から描画属性DAを導出することにより変換後のストロークデータSDを生成したデジタルインク再生部40は、上述した描画スタイルDDなどの他の情報に基づいて既存の描画処理方法を適用することにより画像信号を生成する。
図12は、既存の描画処理方法の例として、非特許文献6に記載された、描画処理の例を模式化したものである。図中、白丸PD0〜PD14は、ストロークデータSD1に含まれる15個のポイントデータPDを示している。白丸中の数字は、ポイントデータPD0〜PD15の各々についての第4の属性Wの値を示している。図中、各々の白丸の円の半径は、第4の属性Wの値に比例した値で記載している。例えば、ポイントデータPD0は第4の属性Wの値である10を径とし、ポイントデータPD14はマッピングデータMD2により得られた第4の属性(線幅データW)の値である3を径とする円で記載されている。
デジタルインク再生部40は、ポイントデータPD0〜PD14の各々の円に接するような2つの包絡線(内側の包絡線IE、外側の包絡線OE)を導出する。そして、得られた2つの包絡線IE、OEをストロークデータSD1の形状の輪郭とする。例えばこのようにして、デジタルインク再生部40は、線幅データWに比例した線幅をストロークデータの線幅とした画像信号を生成することができる。尚、変換後のストロークデータSDの描画方法はこれに限るものではなく、既存の描画方法を利用するとしてよい。
デジタルインク再生部40により生成された画像信号は、図1に示すように、ディスプレイ5に出力される。これにより、ユーザの目に見える形で、ストロークデータSD0〜SD5について、マッピングデータMD2により修正されたストロークデータSDが表示されることになる。
図13A〜図13Dは、以上のようにして画像信号にされたストロークデータSD(ストロークデータSD0〜SD4)のイメージ例を示している。
図13Aは、図3に示したストロークデータSD0〜SD4に対し、筆圧Pを10倍して線幅Wを得る変換規則func1をストロークデータの全部分に対して適用して得られたストロークデータSDから再生された画像信号を示している。
図13Bは、図3に示したストロークデータSD0〜SD4に対し、(1)筆圧Pを10倍して線幅Wを得る変換規則func1をストロークデータの全部分に対して適用し、更に、(2)筆圧Pを5倍して線幅Wを得るという変換規則func2aを、ストロークの図中破線枠で示す末尾部分に対して適用して得られたストロークデータSDから再生された画像信号を示している。
図13Cは、図3に示したストロークデータSD0〜SD4に対し、(1)筆圧Pを10倍して線幅Wを得る変換規則func1をストロークデータの全部分に対して適用し、更に、(2)筆圧Pを5倍して線幅Wを得るという変換規則func2aを、ストロークの図中破線枠で示す末尾と先端との両方の端部に対して適用して得られたストロークデータSDから再生された画像信号を示している。
図13Dは、図3に示したストロークデータSD0〜SD4に対し、(1)筆圧Pを10倍して線幅Wを得る変換規則func1をストロークデータの全部分に対して適用し、更に、(2)筆圧Pを20倍して線幅Wを得るという変換規則func2bを、ストロークの図中破線枠で示す末尾と先端との両方の端部に対して適用して得られたストロークデータSDから再生された画像信号を示している。
以上説明したように、本実施の形態による入力システム1(特にデジタルインク生成部30)によれば、筆圧データ等の入力センサ属性ISAを示すデータを失うことなく、線幅Wあるいは透明度Aなどのストロークデータの描画属性DAの値を導出するための変換規則を記述したインクデータINKDを生成することができる。
これにより、描画属性DAの値(線幅Wや透明度A)を、入力センサ属性ISAのどの値からどのように導出したのかをデジタルインクINKDが示すことができることになるので、過去に生成したデジタルインクINKDに含まれる筆圧データPと線幅Wとの対応関係を一括して変更することや、デジタルインクINKDに(描画には直接用いられないにも関わらず)保存されている筆圧データPをシグネチャ認証の比較パラメータに利用することも可能になる。
また、本実施の形態にかかるデジタルインクINKDの生成方法によれば、ストロークデータSDのうち、一部分の範囲に対してマッピングデータMD内の変換規則を適用する規則を記述したデジタルインクINKDを生成することが可能になる。したがって、上述した例のように、ストロークデータSDの始点と終点のみに変換規則が適用されるように構成することも可能になるので、図13A〜図13Dに例示したように筆跡について高い表現能力を有するデジタルインクINKDを生成することが可能になる。また、インデックス値と、剰余演算を用いて得られる修正インデックス値とを用いて範囲データの端点を表現するため、末端部、又は、末端部と先端部の両方を指定する変換規則を、ストロークデータSDが生成される前に事前に得ることが可能になる。
(実施の形態2)
次に、本発明の第2の実施の形態による入力システム1について説明する。本実施の形態による入力システム1のシステム構成及びデジタルインク処理装置2の機能ブロックは、図1及び図2に示した第1の実施の形態によるものと同様である。
本実施の形態による入力システム1は、ストロークデータ生成部20から出力されるストロークデータSDの内容、並びに、マッピングデータ生成部32及びデジタルインク再生部40それぞれの内部処理の点で第1の実施の形態による入力システム1と異なるので、第1の実施の形態と同一の構成には同一の符号を付して説明を省略し、以下では、第1の実施の形態との相違点に着目して説明する。
本実施の形態によるストロークデータ生成部20は、座標データX、座標データY、及び時刻データTの3種類の入力センサ属性ISAを含むストロークデータSDを生成する。図14に、本実施の形態によるストロークデータ生成部20によって生成されるストロークデータSDの例として、10個のポイントデータPD0〜PD9を含むストロークデータSD5を示す。
図14の例に示されるように、本実施の形態においても、ストロークデータSDはInkMLの形式により生成されるものとし、具体的には、カンマ(,)によって各ポイントデータPDが区切られた形式により生成される。また、各ポイントデータPD内では、半角スペースによって各属性データが区切られている。ポイントデータPD内における各属性データの配置は、座標データX、座標データY、及び時刻データTの順となる。例えば、上記の例における2つ目のポイントデータPD1に関して言えば、左側の「8」が座標データX、中央の「0」が座標データY、右側の「'16」の右側の数値16が時刻データTとなる。なお、各ポイントデータPDの時刻データTは、最初のインデックス値に対応する時刻を0ミリ秒とし、そこからの経過時間によって表現されている。
説明の単純のため、図14の例は、16ミリ秒の一定間隔で座標データ(X,Y)が得られている例を示している。座標データ(X,Y)についても、Y座標は0で固定とし、X方向にのみ等加速度(16ミリ秒毎に速さが8増加する速さ)で電子ペン4を移動させた場合に得られる座標の例を示している。
本実施の形態によるマッピングデータ生成部32は、1つのストロークデータSDに含まれる複数のポイントデータPDのうち第1のポイントデータPDiの第1の入力センサ属性ISA(例えば座標データ(X,Y)又は時刻データT)の値と、上記第1のポイントデータPDiとはインデックス値が異なる第2のポイントデータPDi+1に含まれる第1の入力センサ属性ISAの値とに基づいて、透明度データAである描画属性DAを得る変換規則を含むマッピングデータMDを生成するように構成される。
本実施の形態によるマッピングデータ生成部32が生成するマッピングデータMDについて、図15を用いてより詳しく説明する。
図15は、本実施の形態によるマッピングデータ生成部32が生成するマッピングデータMD3を示す図である。
3行目〜7行目は、変換元となる入力センサ属性(X,Y、T)と、変換により得られる描画属性(透明度A)を定義する部分である。
11行目〜37行目はマッピングデータMD3に含まれる変換規則を示す部分である。具体的には、次の式(2)及び式(3)によりi番目のインデックス値に対応する透明度データAを生成する、という変換規則が記述されている。ここで、式(3)中のX,Xi−1,Y,Yi−1,T,Ti−1はそれぞれ、i番目のインデックス値に対応する座標データX、i−1番目のインデックス値に対応する座標データX、i番目のインデックス値に対応する座標データY、i−1番目のインデックス値に対応する座標データY、i番目のインデックス値に対応する時刻データT、i−1番目のインデックス値に対応する時刻データTをそれぞれ示している。
Figure 2016119051
上記式(2)及び式(3)による変換規則の特徴は、i番目のインデックス値に対応する透明度データAを生成する際に、i番目ではないインデックス値に対応する属性データを参照している点にある。具体的には、1つ前のインデックス値i−1に対応する属性データを参照しており、式(3)によって求められるVは、インデックス値i−1に対応する位置からインデックス値iに対応する位置に移動するまでの間の電子ペン4の移動速度を表している。式(2)による変換規則は、移動速度Vが大きくなるに伴い、透明度が大きくなるような関数(図7(b)に示したfunc3)が設定されていることになる。
ここで、図15に示したマッピングデータMD3と、上記式(2)及び式(3)との対応関係について説明する。まず図15において、dxで示す22行目「'x」、dyで示す27行目「'y」、dtで示す32行目の「't」はそれぞれ、「X−Xi−1」「Y−Yi−1」「T−Ti−1」を意味している。
図15内の破線枠Aで囲んだ部分は、Xの変位量である「X−Xi−1」を2乗した値を示している。破線枠Bで囲んだ部分は、Yの変位量である「Y−Yi−1」を2乗した値を示している。図中破線枠Cで囲んだ部分は、式(3)右辺の分子に対応する2次元平面内での変位量を示している。破線枠Dで囲んだ部分は、式(3)の右辺全体に対応しており、時間「T−Ti−1」の区間の速さを示している。破線枠Eで囲んだ部分は、式(2)右辺の右辺全体「20・V」に対応している。このように、図14に示したマッピングデータMD3には、式(2)及び式(3)により示される入力センサ属性ISAから描画属性DA(透明度A)への変換規則が記述されている。
このように、本実施の形態のデジタルインク処理装置2は、マッピングデータMD3を含むデジタルインクINKDを生成、出力する。
次に、図16を用いて、本実施の形態におけるデジタルインク再生処理について説明する。
まず、デジタルインクデータ再生部30は、デジタルインクINKDからストロークデータSD5とマッピングデータMD3とを抽出する。
図16(a)は、デジタルインク再生部40がデジタルインクINKDから抽出した変換元のストロークデータSD5を示している。図14で説明した通りストロークデータSD5は、入力センサ属性ISAとして、X座標を示す第1の属性データX、Y座標を示す第2の属性データY、時刻情報を示す第3の属性データTの3つのデータを含んでいる。
次に、デジタルインクINKDを取得したデジタルインク再生部40は、抽出したストロークデータSD5に抽出したマッピングデータMD3を適用する。図16(b)は、マッピングデータMD3の適用により得られたストロークデータSD5を示している。この時点におけるストロークデータSD5は、入力センサ属性ISAから導出された第4の属性(描画属性DA)の透明度データAを含んでいる。なお、上記式(2)及び式(3)によっては、1番目のインデックス値に対応する透明度データAが得られないので、デジタルインク再生部40は、便宜的に、透明度データAの値10を透明度データAの値10として設定している。
図16(c)は、変換規則func3をストロークの全部ではなく、範囲データrd="−3、−1"の部分に適用した場合に得られるストロークデータSDを示している。この例では、ストローク中で末尾から3つの透明度データAのみが得られ、先頭部分等他の部分については値の得られない場合の透明度のデフォルトの値0としている。
このように、本実施の形態によるデジタルインクデータ再生処理においては、変換規則により得られた透明度Aを含むストロークデータSDを得ることができる。
以上のようにして、入力センサ属性ISAの値から描画属性DAを導出することにより変換後のストロークデータSDを生成したデジタルインク再生部40は、上述した描画スタイルDDなどの他の情報に基づいて既存の描画処理方法を適用することにより画像信号を生成する。
図17は、本実施の形態によるストロークデータSDを説明するための図である。
図17の最上段Aは、図14で示したストロークデータSD5に含まれるポイントデータPD0〜PD9までの10個の座標データ(X,Y)の位置関係を示している。
図17の中段Bは、各々のポイントデータPD0〜PD9を黒色の円で表現し、その黒色の透明度Aに図16(b)に示した透明度Aの値を設定することにより得られるストロークデータSD5に基づいて生成される画像信号のイメージ図である。時間当たりの変位量あるいは移動速度Vが大きくなるにつれて透明度Aが大きくなる設定により、単位時間あたりにインクが紙に吸収される量が減少する状態を再現でき、より自然なストロークに近い表現を再現できる。
図17の下段Cは、各々のポイントデータPD0〜PD9を黒色の円で表現し、その黒色の透明度Aに図16(c)に示した透明度Aの値を設定することにより得られるストロークデータSD5に基づいて生成される画像信号のイメージ図である。ストロークのうち末尾の端部の範囲にのみ部分的に変換規則func3を適用することにより、人間の手の加速的な動き、漢字の払い等をイメージした表現を再現することを指定できるようになる。
図18は、速度Vに応じて透明度Aが大きくなる変換規則の効果を説明するための他の図である。描画スタイル情報DD1(図6及び図10を参照)で設定されるブラシタイプとしてフェルトペンなどのデータを適用した場合に、図17に示したストロークデータSD5と同様に図中左側から右側に移動するにつれて指示体の移動速度(速さ)が大きくなるに伴い透明度Aが増加している画像信号を示している。
以上説明したように、本実施の形態によるデジタルインク処理装置2によれば、インデックス値の異なる2以上のポイントデータPDに含まれる入力センサ属性ISAの値を入力として描画属性DAを得るための変換関係を規定したマッピングデータMDを生成することができる。これにより、例えば、筆圧データPなどの入力センサ属性ISAを出力することのできない入力センサを用いて生成したデジタルインクであったとしても、線幅Wや透明度Aといった描画属性DAを導出することができ、かつ、その透明度Aや線幅Wを与えるために用いた元データの種別を(筆圧データが含まれていたのか、あるいは、速度等から導出したデータなのか)を記録することができる。
また、透明度Aや線幅Wなどの描画属性DAを導出するにあたって、同じ入力センサ属性ISA(座標値)の微分値、積分値、又は、加算平均等の統計値に基づいた変換規則を記述することが可能になる。例えば、移動速度が大きくなるほど透明度Aが大きくなるような、変換規則を記述することが可能になる。
以上、本発明の好ましい実施の形態について説明したが、本発明はこうした実施の形態に何等限定されるものではなく、本発明が、その要旨を逸脱しない範囲において、種々なる態様で実施され得ることは勿論である。
例えば、第1の実施の形態と第2の実施の形態を組み合わせ、太さ及び濃淡の両方についての高い表現能力を有するデジタルインクを得ることも可能である。この場合、ストロークデータSDを構成する各ポイントデータPDに筆圧データPと時刻データTの両方を含め、かつ、デジタルインクINKDに、筆圧データPを線幅データWに変換するためのマッピングデータMD(第1の実施の形態)と、運筆速度から透明度データAを得るためのマッピングデータMD(第2の実施の形態)との両方を含めるようにすればよい。
尚、第1の実施の形態において範囲データにより指定する範囲に適用される変換規則は、入力センサ属性ISAから線幅Wや透明度Aといった描画属性DAを導出するためのものでなくてもよい。ストロークの一部分に対し従来のアフィン変換などを用いて幾何形状を変形させたい場合に用いても良い。
尚、又、第2の実施の形態において同一の入力センサ属性ISAの統計値により変換されて得られる属性は線幅Wや透明度Aといった描画属性DDに限らない。ストロークデータSDに含まれた座標データを元データとし、加重平均などの変換規則を適用して実際に描画する際に用いるポイントデータPDの座標データを得るとしてもよい。
尚、又、本発明は、コンピュータを用いてストロークデータ生成部20及びデジタルインク生成部30の処理を順次実行する方法の発明と捉えることも可能であるし、これらの処理を実行させ得るためのプログラムを記述したコンピュータプログラムの発明と捉えることも可能であることは言うまでもない。
1 入力システム
2 デジタルインク処理装置
2a 記憶装置
3 デジタイザ
3a センサ
4 電子ペン
5 ディスプレイ
10 入力処理部
20 ストロークデータ生成部
30 デジタルインク生成部
31 デジタルインク組立部
32 マッピングデータ生成部
33 適用順決定部
40 デジタルインク再生部

Claims (17)

  1. 指示体を操作することに伴い入力センサにより生成されるペンイベントデータに基づいて、入力センサ属性を属性とするストロークデータを生成するストロークデータ生成部と、
    前記ストロークデータに含まれた前記入力センサ属性の値を線幅又は透明度の値に変換するための変換規則を含むマッピングデータを生成するマッピングデータ生成部と、
    前記ストロークデータ及び前記マッピングデータを含むデジタルインクをXML形式のデータフォーマットで外部機器に対し出力するデジタルインク組立部と、
    を備えるデジタルインク生成装置。
  2. 前記XML形式のデータフォーマットはInkML形式のデータフォーマットであり、前記変換規則は、前記InkML形式が規定するmapping要素を用いて記述される、
    請求項1に記載のデジタルインク生成装置。
  3. 前記ストロークデータ生成部は、前記入力センサ属性に加えて前記入力センサ属性の値から前記変換規則により導出された線幅又は透明度の値を含む描画属性とを属性とするストロークデータを生成するものである、
    請求項1又は2に記載のデジタルインク生成装置。
  4. 前記入力センサ属性は、前記入力センサにより取得される筆圧であり、
    前記マッピングデータは前記筆圧の値を前記線幅又は透明度のいずれかの属性の値に変換するための変換規則を示すデータである、
    請求項1に記載のデジタルインク生成装置。
  5. 前記入力センサ属性は座標データであり、
    前記マッピングデータは前記座標データに基づいて前記透明度の値を導出するための変換規則を示すデータである、
    請求項1に記載のデジタルインク生成装置。
  6. 前記変換規則は、前記座標データに基づいて導出される指示体の移動速度が大きい程、前記透明度の値が大きくなる関係の変換規則である請求項3に記載のデジタルインク生成装置。
  7. 前記マッピングデータ生成部は、前記入力センサ属性の値を線幅又は透明度の値に変換するための変換規則と該変換規則が適用される範囲を示す範囲データとを含むマッピングデータを生成する、
    請求項1記載のデジタルインク生成装置。
  8. 前記ストロークデータ生成部は、前記入力センサ属性を属性とするポイントデータを1以上包含するストロークデータを生成し、
    前記範囲データは、前記変換規則が適用される範囲を、範囲の開始点を示すポイントデータのインデックス値を示すインデックス値情報と範囲の終了点を示すポイントデータのインデックス値を示すインデックス値情報とにより示すデータである、
    請求項1に記載のデジタルインク生成装置。
  9. 前記インデックス値情報は、前記インデックス値、又は、前記ストロークデータに含まれる前記ポイントデータの総数を法として前記インデックス値と合同な整数である、
    請求項8に記載のデジタルインク生成装置。
  10. 前記インデックス値情報は、前記範囲データがストロークの末端の端部を示す場合に負の整数で指定される、請求項9に記載のデジタルインク生成装置。
  11. 前記範囲データがストロークの末端部分と先端部分との両方の端部を示す場合に、範囲の開始点に対応する前記インデックス値情報は負の整数を用いて指定され、範囲の終了点に対応する前記インデックス値情報は正の整数を用いて指定される、請求項10に記載のデジタルインク生成装置。
  12. 前記範囲データはストロークの先端部分及び/又は末端部分を示すデータであり、
    前記変換規則は、前記ストロークの先端部及び又は末端部に対し、前記ストロークの他の部分とは異なる変換規則を与える規則である、
    請求項1に記載のデジタルインク生成装置。
  13. 前記入力センサ属性は筆圧であり、
    前記変換規則は、前記ストロークの先端部及び又は末端部に対して前記筆圧から線幅を導出する変換規則であって、前記ストロークの前記先端部及び又は末端部以外の部分に適用される変換規則に比して線幅が大きくなるように変換される変換規則である
    請求項12に記載のデジタルインク生成装置。
  14. 前記所定の属性は座標データであり、
    前記変換規則は、前記座標データに基づいて、透明度を導出するための変換規則であって、前記ストロークの先端部及び又は末端部に対し、前記ストロークの他の部分よりも透明度が大きくなるように変換される変換規則である、
    請求項12に記載のデジタルインク生成装置。
  15. 前記マッピングデータ生成部は、
    前記入力センサ属性の値を線幅又は透明度の値に変換するための第2の変換規則と該第2の変換規則の適用範囲を示す第2の範囲データとを含む第2のマッピングデータをさらに生成し、
    前記範囲データの示す範囲と前記第2の範囲データの示す範囲とが重なりを有する場合に前記マッピングデータ及び前記第2のマッピングデータの適用順を決定する適用順決定部をさらに備え、
    前記デジタルインク組立部は、前記適用順決定部により決定された適用順に基づいて、前記デジタルインク内における前記マッピングデータと、前記第2のマッピングデータとの配置順を決定する
    請求項1に記載のデジタルインク生成装置。
  16. 入力センサを備えたコンピュータで実行されるデジタルインク生成方法であって、
    指示体を操作することに伴い前記入力センサにより生成されるペンイベントデータに基づいて、入力センサ属性を属性とするストロークデータを生成するストロークデータ生成ステップと、
    前記ストロークデータに含まれた前記入力センサ属性の値を線幅又は透明度の値に変換するための変換規則を含むマッピングデータを生成するマッピングデータ生成ステップと、
    前記ストロークデータ及び前記マッピングデータを含むデジタルインクをXML形式のデータフォーマットで外部機器に対し出力するデジタルインク組立ステップと、
    を含む、デジタルインク生成方法。
  17. 入力センサを備えたコンピュータを、
    指示体を操作することに伴い前記入力センサにより生成されるペンイベントデータに基づいて、入力センサ属性を属性とするストロークデータを生成するストロークデータ生成部、
    前記ストロークデータに含まれた前記入力センサ属性の値を線幅又は透明度の値に変換するための変換規則を含むマッピングデータを生成するマッピングデータ生成部、及び
    前記ストロークデータ及び前記マッピングデータを含むデジタルインクをXML形式のデータフォーマットで外部機器に対し出力するデジタルインク組立部
    として機能させるためのプログラム。
JP2015133170A 2015-07-02 2015-07-02 デジタルインク生成装置、デジタルインク生成方法、及びプログラム Active JP6526504B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015133170A JP6526504B2 (ja) 2015-07-02 2015-07-02 デジタルインク生成装置、デジタルインク生成方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015133170A JP6526504B2 (ja) 2015-07-02 2015-07-02 デジタルインク生成装置、デジタルインク生成方法、及びプログラム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2015511540A Division JP5775240B1 (ja) 2014-12-18 2014-12-18 デジタルインク生成装置、デジタルインク生成方法、及びプログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2019088054A Division JP6710803B2 (ja) 2019-05-08 2019-05-08 デジタルインクファイル再生装置、デジタルインクファイル再生方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2016119051A true JP2016119051A (ja) 2016-06-30
JP6526504B2 JP6526504B2 (ja) 2019-06-05

Family

ID=56244358

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015133170A Active JP6526504B2 (ja) 2015-07-02 2015-07-02 デジタルインク生成装置、デジタルインク生成方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP6526504B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11100317B2 (en) 2017-01-11 2021-08-24 Wacom Co., Ltd. Drawing device and drawing method

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06222879A (ja) * 1993-01-27 1994-08-12 Matsushita Electric Ind Co Ltd 筆跡表示方法および筆跡表示装置
JP2003330605A (ja) * 2002-05-14 2003-11-21 Microsoft Corp インクとのインターフェース
JP2013137696A (ja) * 2011-12-28 2013-07-11 Sharp Corp 電子機器、表示制御方法、およびプログラム
JP2014203393A (ja) * 2013-04-09 2014-10-27 株式会社東芝 電子機器、手書き文書処理方法、及び手書き文書処理プログラム
JP2014225188A (ja) * 2013-05-17 2014-12-04 株式会社リコー 情報処理装置、プログラム、情報処理システム及び情報表示方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06222879A (ja) * 1993-01-27 1994-08-12 Matsushita Electric Ind Co Ltd 筆跡表示方法および筆跡表示装置
JP2003330605A (ja) * 2002-05-14 2003-11-21 Microsoft Corp インクとのインターフェース
JP2013137696A (ja) * 2011-12-28 2013-07-11 Sharp Corp 電子機器、表示制御方法、およびプログラム
JP2014203393A (ja) * 2013-04-09 2014-10-27 株式会社東芝 電子機器、手書き文書処理方法、及び手書き文書処理プログラム
JP2014225188A (ja) * 2013-05-17 2014-12-04 株式会社リコー 情報処理装置、プログラム、情報処理システム及び情報表示方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11100317B2 (en) 2017-01-11 2021-08-24 Wacom Co., Ltd. Drawing device and drawing method

Also Published As

Publication number Publication date
JP6526504B2 (ja) 2019-06-05

Similar Documents

Publication Publication Date Title
JP5775240B1 (ja) デジタルインク生成装置、デジタルインク生成方法、及びプログラム
US11580761B2 (en) Ink file searching method, apparatus, and program
JP6728036B2 (ja) インクからテキスト表現への変換
Zhang et al. Viscode: Embedding information in visualization images using encoder-decoder network
US20160048318A1 (en) Detecting selection of digital ink
CN104794106A (zh) 一种批注方法及装置
CN111782131A (zh) 笔锋实现方法、装置、设备及可读存储介质
US20170131801A1 (en) Method for displaying handwriting in a pdf file
JP2021184271A (ja) デジタルインク生成装置、方法及びプログラム
CN106250035B (zh) 动态生成个人化手写字型的系统和方法
WO2016018682A1 (en) Processing image to identify object for insertion into document
JP6526504B2 (ja) デジタルインク生成装置、デジタルインク生成方法、及びプログラム
JP4868830B2 (ja) コンテクスト・ツリーにおける分析代替案
JP6710803B2 (ja) デジタルインクファイル再生装置、デジタルインクファイル再生方法、及びプログラム
JP7320157B1 (ja) コンテンツ評価装置、プログラム、方法、及びシステム
Wu Achieving interoperability of pen computing with heterogeneous devices and digital ink formats
WO2023145429A1 (ja) コンテンツ評価装置、プログラム、方法、及びシステム
US20240355018A1 (en) Utilizing a diffusion neural network for mask aware image and typography editing
US20240168575A1 (en) Input support apparatus, method, computer-readable medium, and input system
WO2023145227A1 (ja) コンテンツ評価装置、プログラム、方法、及びシステム
JP2024100572A (ja) 情報処理装置、方法、及びプログラム
WO2024181963A1 (en) Universal handwriting recognition
Paternò et al. Natural modelling of interactive applications

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171213

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180827

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180904

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181102

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190409

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190508

R150 Certificate of patent or registration of utility model

Ref document number: 6526504

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250