JP6790208B2 - Digital ink file generation method, digital ink file generation device, digital ink file playback method, digital ink file playback device, and program - Google Patents

Digital ink file generation method, digital ink file generation device, digital ink file playback method, digital ink file playback device, and program Download PDF

Info

Publication number
JP6790208B2
JP6790208B2 JP2019179182A JP2019179182A JP6790208B2 JP 6790208 B2 JP6790208 B2 JP 6790208B2 JP 2019179182 A JP2019179182 A JP 2019179182A JP 2019179182 A JP2019179182 A JP 2019179182A JP 6790208 B2 JP6790208 B2 JP 6790208B2
Authority
JP
Japan
Prior art keywords
stroke
metadata
stroke data
data
ink file
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.)
Active
Application number
JP2019179182A
Other languages
Japanese (ja)
Other versions
JP2020035452A (en
Inventor
嘉貴 中山
嘉貴 中山
ブラニミール アンゲロフ
ブラニミール アンゲロフ
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 JP2019179182A priority Critical patent/JP6790208B2/en
Publication of JP2020035452A publication Critical patent/JP2020035452A/en
Application granted granted Critical
Publication of JP6790208B2 publication Critical patent/JP6790208B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明はインクファイルの検索方法、検索装置、及びプログラムに関し、特に、検索条件のひとつとして入力デバイスを指定可能なインクファイルの検索を実現できるインクファイルの検索方法、検索装置、及びプログラムに関する。 The present invention relates to an ink file search method, a search device, and a program, and more particularly to an ink file search method, a search device, and a program that can realize an ink file search in which an input device can be specified as one of the search conditions.

電子ペンやスタイラス等の入力デバイスを用いてタブレット等の位置検出器上に書いた文字や画像をベクタデータとして保持し、後に再生することを可能とするデジタルインクが知られている。デジタルインクは、紙に描かれた手書きの軌跡(ストローク)を模擬するように、入力デバイスを位置検出器上で動かした軌跡を電子データ化してなるデータである。デジタルインクには、通常、(1)座標点や制御点などの集合により手書きの軌跡を再現するためのデータ、及び、(2)色情報やペン先のタイプなどの手書きの軌跡を描画するスタイルを記述するデータ、及び、(3)座標変換行列など軌跡に関するデータの幾何的な変換規則を記述するデータ等が含まれる。デジタルインクの具体的なフォーマットとして数種のものが提唱されており、非特許文献1〜4にはその例が開示されている。 There is known a digital ink that can hold characters and images written on a position detector such as a tablet using an input device such as an electronic pen or a stylus as vector data and reproduce them later. Digital ink is data obtained by converting the locus of moving an input device on a position detector into electronic data so as to simulate a handwritten locus (stroke) drawn on paper. Digital ink usually has a style of drawing (1) data for reproducing a handwritten trajectory by a set of coordinate points and control points, and (2) drawing a handwritten trajectory such as color information and pen tip type. The data that describes the above, and (3) the data that describes the geometric conversion rule of the data related to the trajectory such as the coordinate transformation matrix are included. Several types of specific formats for digital ink have been proposed, and examples thereof are disclosed in Non-Patent Documents 1 to 4.

非特許文献1記載のInkMLは、最も知られたデジタルインクのデータフォーマットである。InkMLにおいて、上記(1)の「手書きの軌跡を再現するためのデータ」は、<trace>要素と呼ばれる。<trace>要素には、1ストローク(指示体を位置検出装置のセンサ面に接触させてから離すまでの動作)の軌跡を構成する複数のポイントデータ(入力センサによって所定の時間間隔で検出されるデータ。ポイントデータ(x,y)、筆圧データ、時刻データなど、入力センサ依存の属性(入力センサ属性)を示すデータを含む)の集合が記述される。また、上記(2)の「軌跡の描画スタイルを指定するデータ」として例えば<brush>要素などのデータが規定される。上記(3)の「軌跡に関するデータの変換規則を記述するデータ」として<mapping>要素などのデータが規定されている。また、<inkSource>要素により、インクデータを供給したハードウェアデバイスの製造者、モデル、シリアル番号などを記述することが可能なことが示されている。 InkML described in Non-Patent Document 1 is the most well-known digital ink data format. In InkML, the above-mentioned (1) "data for reproducing a handwritten trajectory" is called a <trace> element. In the <trace> element, a plurality of point data (detected by an input sensor at predetermined time intervals) constituting a locus of one stroke (operation from contacting the indicator body with the sensor surface of the position detection device to releasing the indicator body) Data. A set of data indicating input sensor-dependent attributes (input sensor attributes) such as point data (x, y), pen pressure data, and time data) is described. In addition, data such as a <brush> element is defined as the "data that specifies the drawing style of the locus" in (2) above. Data such as a <mapping> element is defined as "data describing a conversion rule of data related to a locus" in (3) above. It is also shown that the <inkSource> element can describe the manufacturer, model, serial number, etc. of the hardware device that supplied the ink data.

非特許文献2記載のISF(Ink Serialized Format)は、マイクロソフト社のアプリケーション上で利用されるデジタルインクのデータフォーマットである。上記(1)の「手書きの軌跡を再現するためのデータ」は、ISFではStrokeDescriptorBlockと呼ばれる。StrokeDescriptorBlockには、ストロークの軌跡を再現するためのポイント(ポイントはx,y座標値である)や筆圧値等が記述される。上記(2)の「軌跡の描画スタイルを指定するデータ」としてはDrawingAttributeBlockが規定される。上記(3)の「軌跡に関するデータの変換規則を記述するデータ」としてはTransformBlockが規定されている。 The ISF (Ink Serialized Format) described in Non-Patent Document 2 is a digital ink data format used on an application of Microsoft Corporation. The "data for reproducing the handwritten trajectory" in (1) above is called a StrokeDescriptorBlock in the ISF. In the StrokeDescriptorBlock, points (points are x, y coordinate values), pen pressure values, etc. for reproducing the locus of the stroke are described. DrawingAttributeBlock is defined as the "data that specifies the drawing style of the locus" in (2) above. The Transfer Block is defined as the "data describing the conversion rule of the data related to the locus" in (3) above.

非特許文献3記載のSVGは、二次元グラフィックスアプリケーション及び画像、並びにグラフィックスクリプトのセットを記述するためのマークアップ言語である。SVGにおいては、上記(1)の「手書きの軌跡を再現するためのデータ」として<path>要素が存在する。<path>要素中には曲線補間に用いる複数の制御点(座標データ)が含まれ、これらの複数の制御点に基づくベジエ曲線により軌跡が再現される。 SVG described in Non-Patent Document 3 is a markup language for describing a set of two-dimensional graphics applications and images, and graphic scripts. In SVG, the <path> element exists as the "data for reproducing the handwritten trajectory" in (1) above. A plurality of control points (coordinate data) used for curve interpolation are included in the <path> element, and the locus is reproduced by a Bezier curve based on these plurality of control points.

非特許文献4記載のHTML5には、上記(1)の「手書きの軌跡を再現するためのデータ」として、Canvas Pathクラスとよばれるデータ型が規定されている。Canvas Pathクラスには、軌跡を複数のベジエ曲線のセグメントの連結で再現する上で、各々のセグメントを生成するための3次曲線を生成するために必要な制御点が与えられる。 HTML5 described in Non-Patent Document 4 defines a data type called a Canvas Path class as the "data for reproducing a handwritten locus" in (1) above. The Canvas Path class is given the control points necessary to generate a cubic curve to generate each segment in order to reproduce the trajectory by connecting the segments of a plurality of Bezier curves.

特許文献1には、デジタルインクの圧縮に関する技術が記載される。手書きを行っている間の座標検出により得られた生データのデータ量を圧縮するために、曲線補間アルゴリズムを用いて必要なポイントデータの数を削減し、データを圧縮することが記載されている。 Patent Document 1 describes a technique relating to compression of digital ink. It is stated that a curve interpolation algorithm is used to reduce the number of point data required and compress the data in order to compress the amount of raw data obtained by coordinate detection during handwriting. ..

以下では、非特許文献1の<trace>要素、非特許文献2のStrokeDescriptorBlock、非特許文献3の<path>要素、非特許文献4記載のCanvas Pathクラスや特許文献1の圧縮されたデジタルインクなどを総称し、一連のポイントデータにより位置検出器を用いて入力した手書きの軌跡を再現するためのベクタデータをストロークデータと呼ぶ。 In the following, the <trace> element of Non-Patent Document 1, the StrokeDescriptorBlock of Non-Patent Document 2, the <path> element of Non-Patent Document 3, the Canvas Path class described in Non-Patent Document 4, the compressed digital ink of Patent Document 1, etc. Is generically called stroke data, and vector data for reproducing a handwritten trajectory input using a position detector with a series of point data is called stroke data.

また、電子ペン等の入力デバイスには、いわゆるペン識別情報PIDなどの固有の識別情報を保持するものがある。この種の入力デバイスは、内部に固有の識別情報を記憶するROMを有しており、タブレット等の位置検出器に対して出力可能に構成される。 In addition, some input devices such as electronic pens hold unique identification information such as so-called pen identification information PID. This type of input device has a ROM that stores unique identification information inside, and is configured to be output to a position detector such as a tablet.

位置検出器が取得したペン識別情報PIDは、位置検出器の機能に対応したドライバあるいはライブラリのAPIを通じてアプリケーションから取得することができる。非特許文献5には、wintabとよばれるドライバあるいはライブラリAPIの例が記載されている。同文献C.4節には、ワコム社の位置検出器であるIntuos(登録商標)を位置検出器とした場合に、wintabと呼ばれるAPIが出力するペン識別情報PIDであるUniqueIDの仕様が記載される。 The pen identification information PID acquired by the position detector can be acquired from the application through the API of the driver or library corresponding to the function of the position detector. Non-Patent Document 5 describes an example of a driver or library API called wintab. The same document C. Section 4 describes the specifications of UniqueID, which is the pen identification information PID output by the API called wintab when Intuos (registered trademark), which is a position detector of Wacom, is used as the position detector.

特開2003−141100号公報Japanese Unexamined Patent Publication No. 2003-141100 国際公開第2015/019883号International Publication No. 2015/019883

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/〉Yi-Min Chee, 11 outsiders, "Ink Markup Language (InkML) W3C Recommendation 20 September 2011", [online], September 20, 2011, W3C, [Search November 19, 2014], Internet < 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〉"Ink Serialized Format Specification", [online], Microsoft Corporation, [Searched on December 11, 2014], Internet <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/〉Erik Dahlstrom, 9 outsiders, "Scalable Vector Graphics (SVG) 1.1 (Second Edition) W3C Recommendation 16 August 2011", [online], August 16, 2011, W3C, [Search December 11, 2014] , Internet <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/〉Ian Hickson, 6 outsiders, "A vocabulary and associated APIs for HTML and XHTML W3C Recommendation 28 October 2014", [online], October 28, 2014, W3C, [Search December 11, 2014], Internet <URL: http://www.w3.org/TR/html5/> WDN Beta "Wintab"の説明、[online]、株式会社ワコム、[平成27年3月25日検索]、インターネット〈URL:http://wdnet.jp/library/windows/wintab/〉Explanation of WDN Beta "Windows", [online], Wacom Co., Ltd., [Search on March 25, 2015], Internet <URL: http://wdnet.jp/library/windows/wintab/>

ところで、近年クラウドコンピューティングが注目を集めており、デジタルインクのコンテナファイル(複数のストロークデータを含むファイル。以下、「インクファイル」と称する)についても、写真や画像などの共有サービスのごとく、クラウド上に保存したり、保存した画像をクラウド上で共有したり、といった使い方がされることが期待される。 By the way, cloud computing has been attracting attention in recent years, and digital ink container files (files containing multiple stroke data; hereinafter referred to as "ink files") are also cloud computing, like sharing services such as photos and images. It is expected that it will be used for saving on top and sharing the saved image on the cloud.

ファイル単位の検索としては所定のタグが付された画像ファイル検索などは行われていることである。これと同様に、何らかの検索条件を指定してインクファイルを検索することができれば便利であり、特にインクファイルに関しては、検索条件のひとつとして入力デバイスや入力デバイスに対応したユーザ名等の情報を指定できれば非常に便利である。 As a file-based search, an image file search with a predetermined tag is performed. Similarly, it is convenient to be able to search for ink files by specifying some search conditions. Especially for ink files, specify information such as the input device and the user name corresponding to the input device as one of the search conditions. Very convenient if possible.

しかしながら、従前のインクファイルの生成方法により生成されたインクファイルではこのような入力デバイスに対応した情報による検索を簡易に行うことは不可能であった。 However, with the ink file generated by the conventional ink file generation method, it is impossible to easily search by the information corresponding to such an input device.

したがって、本発明の目的の一つは、検索条件のひとつとして入力デバイスを指定可能なインクファイルの検索を実現するインクファイルの検索方法、検索装置、及びプログラムを提供することにある。 Therefore, one of the objects of the present invention is to provide an ink file search method, a search device, and a program that realizes a search for an ink file in which an input device can be specified as one of the search conditions.

また、1つのキャンバスに複数のユーザが絵を書くような場合や、1つのキャンバスに赤ペンと鉛筆などペンを持ち替えて絵を書くような場合がある。このような場合に、自分が入力したストロークデータや特定のデバイスを用いて入力されたストロークデータのみを抽出し、抽出されたストロークデータのみを描画することができれば便利である。 In addition, there are cases where a plurality of users draw a picture on one canvas, or there are cases where a red pen and a pencil or the like are used to draw a picture on one canvas. In such a case, it is convenient to be able to extract only the stroke data input by oneself or the stroke data input by using a specific device and draw only the extracted stroke data.

しかしながら、従前行われている検索処理では、検索にヒットした画像全体を表示することしかできず、部分的にストロークを抽出して出力することはできなかった。 However, in the conventional search process, only the entire image hit by the search can be displayed, and the stroke cannot be partially extracted and output.

したがって、本発明の目的の一つは、検索条件に該当したストロークデータのみを抽出し、抽出されたストロークデータのみを描画処理するインクデータの検索方法、検索装置、及びプログラムを提供することにある。 Therefore, one of the objects of the present invention is to provide a search method, a search device, and a program for ink data that extracts only stroke data corresponding to the search conditions and draws only the extracted stroke data. ..

第1の発明は、インクファイルの検索方法であって、それぞれ複数の座標データを含むM個のストロークデータと、前記M個のストロークデータのそれぞれにN(N≦M)種類の入力デバイスのうちいずれの入力デバイスで入力されたかを示す情報に対応したメタデータを関連付けるメタデータブロックとをそれぞれ含む複数のインクファイルを取得するステップと、メタデータの指定を含む検索条件を取得するステップと、前記複数のインクファイルの中から、前記検索条件により指定された前記メタデータに関連付けられた前記ストロークデータを含む1以上のインクファイルを選択するステップと、前記1以上のインクファイルのそれぞれについて、ストロークデータを含む描画処理を行うステップとを備えることを特徴とするインクファイルの検索方法、である。 The first invention is a method for searching an ink file, of among M stroke data including a plurality of coordinate data and N (N ≦ M) types of input devices for each of the M stroke data. The step of acquiring a plurality of ink files including each of the metadata blocks associated with the metadata corresponding to the information indicating which input device was input, the step of acquiring the search condition including the specification of the metadata, and the above. A step of selecting one or more ink files including the stroke data associated with the metadata specified by the search condition from a plurality of ink files, and stroke data for each of the one or more ink files. It is a method for searching an ink file, which comprises a step of performing a drawing process including.

第2の発明は、第1の発明において、前記描画処理を行うステップは、前記1以上のインクファイルのそれぞれについて、前記検索条件により指定された前記メタデータに関連付けられた前記ストロークデータのみを前記描画処理の対象とすることを特徴とするインクファイルの検索方法、である。 In the second invention, in the first invention, in the step of performing the drawing process, for each of the one or more ink files, only the stroke data associated with the metadata specified by the search condition is described. This is an ink file search method, which is characterized in that it is the target of drawing processing.

尚、上記いずれかの発明において、前記1以上のストロークデータはそれぞれ、複数のフォーマットの中から選択される一のフォーマットにより符号化された状態で、対応する前記インクファイル内に格納され、前記インクファイルは、前記一のフォーマットを識別する情報を前記ストロークデータのフォーマットから独立したフォーマットにより前記ストロークデータが格納される領域とは異なる領域に保持し、前記検索条件は、前記フォーマットの指定を含み、前記1以上のインクファイルを選択するステップは、前記1以上のインクファイルの中から、前記検索条件により指定された前記フォーマットで符号化された前記ストロークデータを含むインクファイルを前記ストロークデータが格納される領域とは異なる領域に保持された前記一のフォーマットを識別する情報により選択する、としても良い。 In any of the above inventions, the stroke data of one or more is stored in the corresponding ink file in a state of being encoded by one format selected from a plurality of formats, and the ink is described. The file holds the information identifying the one format in an area different from the area in which the stroke data is stored by a format independent of the stroke data format, and the search condition includes the designation of the format. In the step of selecting one or more ink files, the stroke data is stored in an ink file containing the stroke data encoded in the format specified by the search condition from the one or more ink files. It may be selected by the information for identifying the one format held in the area different from the area.

尚、上記いずれかの発明において、前記複数のインクファイルはそれぞれ、前記M個のストロークデータ間の相対的な描画順を表す情報である順序情報を格納し、前記描画処理を行うステップは、前記1以上のインクファイルのそれぞれについて、前記検索条件により指定された前記メタデータに関連付けられたストロークデータに付与された前記順序情報により示される描画順で、抽出されたストロークデータのそれぞれに格納される複数のポイントデータの描画を行う、としてもよい。 In any of the above inventions, the plurality of ink files each store order information which is information representing the relative drawing order between the M stroke data, and the step of performing the drawing process is described above. Each of the one or more ink files is stored in each of the extracted stroke data in the drawing order indicated by the order information given to the stroke data associated with the metadata specified by the search condition. It may be possible to draw a plurality of point data.

第1の発明によれば、検索条件のひとつとして入力デバイスや入力デバイスを利用したユーザ名などの文字列等を検索条件として指定可能なインクファイルの検索が実現される。 According to the first invention, it is possible to search for an ink file in which an input device or a character string such as a user name using the input device can be specified as a search condition as one of the search conditions.

第2の発明によれば、自分が入力したストロークデータや特定のデバイスを用いて入力されたストロークデータのみを抽出し、抽出されたストロークデータのみを描画することができ、ストロークデータを画像データ(ラスタデータ)化せず、ベクタデータとして保持するという利点を活用したインクデータの検索方法を実現できる。 According to the second invention, only the stroke data input by oneself or the stroke data input by using a specific device can be extracted, and only the extracted stroke data can be drawn, and the stroke data can be used as image data (image data). It is possible to realize a search method for ink data that utilizes the advantage of holding it as vector data without converting it to raster data).

また、上記いずれかの発明において、ストロークデータが格納される領域とは異なる領域に保持された前記一のフォーマットを識別する情報により、1のインクファイルを選択する構成によれば、検索方法を実行するサーバが対応していないようなストロークデータのフォーマットを保持するインクファイルを抽出可能としたり、ユーザが自己の環境で復号化できるストロークデータを含むインクファイルを取得したりすることができ、画像フォーマットのように広く普及したフォーマットが存在しないストロークデータの検索に好適である。 Further, in any of the above inventions, the search method is executed according to the configuration in which one ink file is selected based on the information for identifying the one format held in an area different from the area in which the stroke data is stored. It is possible to extract an ink file that holds the stroke data format that the server does not support, and it is possible to acquire an ink file that contains stroke data that the user can decode in his / her own environment. It is suitable for searching stroke data for which there is no widely used format such as.

また、上記いずれかの発明において、ストロークデータ間の相対的な描画順を表す情報である順序情報をインクファイルに格納し、この順序情報により示される描画順でストロークデータのそれぞれに格納される複数のポイントデータの描画を行うため、1以上の検索条件により選択したストロークデータ群を合成して描画する上で、複数回先後関係が入れ替わるような単純なオブジェクトの前景背景では表現できないようなストロークデータの重畳関係を再現して提示する、検索方法を実現することが可能となる。 Further, in any of the above inventions, a plurality of order information which is information indicating a relative drawing order between stroke data is stored in an ink file, and is stored in each of the stroke data in the drawing order indicated by the order information. In order to draw the point data of, when synthesizing and drawing the stroke data group selected by one or more search conditions, the stroke data that cannot be expressed by the foreground background of a simple object whose relationship is switched multiple times. It is possible to realize a search method that reproduces and presents the superposition relationship of.

本発明の第1の実施の形態によるコンピュータ1のシステム構成を示す図である。It is a figure which shows the system structure of the computer 1 by the 1st Embodiment of this invention. 図1に示したデジタルインク生成装置30の機能ブロック図である。It is a functional block diagram of the digital ink generation apparatus 30 shown in FIG. インクファイル40を生成する処理のメインルーチン(前半部分)を示す処理フロー図である。It is a processing flow diagram which shows the main routine (the first half part) of the processing which generates an ink file 40. インクファイル40を生成する処理のメインルーチン(後半部分)を示す処理フロー図である。It is a processing flow diagram which shows the main routine (the latter half part) of the processing which generates an ink file 40. 図2に示した入力処理部31及びメタデータ生成部33の内部構成を示す図である。It is a figure which shows the internal structure of the input processing unit 31 and the metadata generation unit 33 shown in FIG. 図4のステップS11に示したメタデータ生成処理の処理フロー図である。It is a processing flow diagram of the metadata generation processing shown in step S11 of FIG. ペン識別情報PIDから論理識別情報LIDを生成する処理の説明図である。It is explanatory drawing of the process which generates the logical identification information LID from the pen identification information PID. (a)は論理名LNが文字列である場合における論理識別情報LIDと論理名LNの例を示す図であり、(b)は論理名LNがハッシュ値である場合における論理識別情報LIDと論理名LNの例を示す図であり、(c)は論理名LNがURNである場合における論理識別情報LIDと論理名LNの例を示す図である。(A) is a diagram showing an example of the logical identification information LID and the logical name LN when the logical name LN is a character string, and (b) is a diagram showing the logical identification information LID and the logic when the logical name LN is a hash value. It is a figure which shows the example of the name LN, (c) is the figure which shows the example of the logical identification information LID and the logical name LN when the logical name LN is URN. 図3のステップS23に示した順序確認処理の処理フロー図である。It is a process flow diagram of the order confirmation process shown in step S23 of FIG. (a)は2つの電子ペンP,Pのそれぞれによって描画された図形の一例を示す図であり、(b)は(a)を離散的なポイントデータに置換してなる図であり、(c)は(b)に示した一連の座標に対応付けられる順序情報Uorder(PID)を示す図である。(A) two of the electronic pen P A, a diagram showing an example of a figure drawn by the respective P B, (b) is a diagram obtained by replacing the discrete points data (a), (C) is a figure which shows the order information Worder (PID) associated with the series of coordinates shown in (b). (a)は2つの電子ペンP,Pのそれぞれによって描画された図形の他の一例を示す図であり、(b)は(a)を離散的なポイントデータに置換してなる図であり、(c)は(b)に示した一連の座標に対応付けられる順序情報Uorder(PID)を示す図である。(A) two of the electronic pen P A, a diagram showing another example of a figure drawn by the respective P B, (b) is a view obtained by replacing the discrete point data: (a) There is, (c) is a figure which shows the order information Worder (PID) associated with the series of coordinates shown in (b). (a)は、図11に示したストロークデータを含む1つのインクファイル内に格納される一連の情報を例示する図であり、(b)は、(a)に示した一連の情報を順序情報Uorder(PID)によりソートしたものである。(A) is a diagram illustrating a series of information stored in one ink file including stroke data shown in FIG. 11, and (b) is a diagram in which a series of information shown in (a) is ordered. It is sorted by Older (PID). 図4のステップS40に示したインクファイル生成処理の処理フロー図である。It is a process flow diagram of the ink file generation process shown in step S40 of FIG. RIFFによって生成されるインクファイルの構造を示す図である。It is a figure which shows the structure of the ink file generated by RIFF. (a)はWILL形式のストロークデータのフォーマットを定義するためのストロークデータフォーマットを示す図であり、(b)は(a)に示した各属性の具体的な表現形式を示す図であり、(c)は階層構造を有するストローク属性の具体的な表現形式を示す図である。(A) is a diagram showing a stroke data format for defining a stroke data format in WILL format, and (b) is a diagram showing a specific expression format of each attribute shown in (a). c) is a diagram showing a specific representation format of stroke attributes having a hierarchical structure. 図13のステップS404に示したストロークデータ符号化処理の処理フロー図である。It is a processing flow diagram of the stroke data coding process shown in step S404 of FIG. InkML形式で記述したストロークデータの例を示す図である。It is a figure which shows the example of the stroke data described in the InkML format. 図13のステップS406に示したストロークデータグループ化処理の処理フロー図である。It is a processing flow diagram of the stroke data grouping process shown in step S406 of FIG. XMP形式で記述したメタデータチャンクの例を示す図である。It is a figure which shows the example of the metadata chunk described in the XMP format. 図1に示したデジタルインク再生装置50の機能ブロック図である。It is a functional block diagram of the digital ink reproduction apparatus 50 shown in FIG. 図20に示したフィルタ情報に従って画像を生成する処理のメインルーチンを示す処理フロー図である。It is a processing flow diagram which shows the main routine of the processing which generates an image according to the filter information shown in FIG. 図21のステップS51に示した画像生成処理の処理フロー図である。It is a processing flow diagram of the image generation processing shown in step S51 of FIG. 本発明の第2の実施の形態によるコンピュータシステム90のシステム構成を示す図である。It is a figure which shows the system structure of the computer system 90 by the 2nd Embodiment of this invention. 図23に示したストレージ71に格納されるインクテーブルの例を示す図である。It is a figure which shows the example of the ink table stored in the storage 71 shown in FIG. 図23に示したインクサーバ70の機能ブロック図である。It is a functional block diagram of the ink server 70 shown in FIG. 図23に示したインクサーバ70によるインクファイル再生処理のメインルーチンを示す処理フロー図である。It is a processing flow diagram which shows the main routine of the ink file reproduction processing by the ink server 70 shown in FIG. 本発明の第3の実施の形態によるコンピュータシステム91のシステム構成を示す図である。It is a figure which shows the system structure of the computer system 91 by the 3rd Embodiment of this invention. 図27に示したストレージ71に格納されるインクテーブルの例を示す図である。It is a figure which shows the example of the ink table stored in the storage 71 shown in FIG. 27. 図2に示した入力処理部31及びメタデータ生成部33の内部構成の変形例を示す図である。It is a figure which shows the modification of the internal structure of the input processing unit 31 and the metadata generation unit 33 shown in FIG.

以下、添付図面を参照しながら、本発明の好ましい実施の形態について詳細に説明する。 Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.

初めに、本発明の第1の実施の形態によるインクファイルの出力方法について説明する。図1は、本実施の形態によるインクファイルの出力方法を実現するコンピュータ1のシステム構成を示す図である。同図に示すように、コンピュータ1は、位置検出器20と、デジタルインク生成装置30(インクファイルの出力装置)と、デジタルインク再生装置50と、ディスプレイ60とを有して構成される。コンピュータ1は、これらの構成がすべて一体化された装置であってもよいし、これらの構成の一部が外部装置として他の構成に接続される装置であってもよい。前者の例としては、コンピュータ1がいわゆるタブレットPCである場合が挙げられる。後者の例としては、コンピュータ1の本体がパーソナルコンピュータであり、このパーソナルコンピュータに、外部装置として位置検出器20及びディスプレイ60が接続される例が挙げられる。いずれの場合においても、コンピュータ1は、CPU、通信回路、記憶装置などの通常のコンピュータが備える構成(図示せず)を備えている。記憶装置は、主メモリなどの主記憶装置と、ハードディスクなどの補助記憶装置とを含んで構成される。コンピュータ1の各機能は、CPUが記憶装置に記憶されるプログラムに従って動作することによって実現される。 First, an ink file output method according to the first embodiment of the present invention will be described. FIG. 1 is a diagram showing a system configuration of a computer 1 that realizes an ink file output method according to the present embodiment. As shown in the figure, the computer 1 includes a position detector 20, a digital ink generation device 30 (ink file output device), a digital ink reproduction device 50, and a display 60. The computer 1 may be a device in which all of these configurations are integrated, or a device in which a part of these configurations is connected to another configuration as an external device. As an example of the former, there is a case where the computer 1 is a so-called tablet PC. As an example of the latter, there is an example in which the main body of the computer 1 is a personal computer, and the position detector 20 and the display 60 are connected to the personal computer as external devices. In any case, the computer 1 includes a configuration (not shown) provided by a normal computer such as a CPU, a communication circuit, and a storage device. The storage device includes a main storage device such as a main memory and an auxiliary storage device such as a hard disk. Each function of the computer 1 is realized by operating the CPU according to a program stored in the storage device.

位置検出器20は、平板状のパネル面と、その直下に配置されたセンサとを有する装置であり、1以上の電子ペンPとともに用いられる。図1には、電子ペンPの例として、2つの電子ペンP,Pを図示している。電子ペンP,Pの符号の右下に付しているA,Bの下付き文字は複数の電子ペンを区別するための記号であり、本明細書においては、複数の電子ペンを特に区別する必要がない場合、単に電子ペンPと表記する。電子ペンP,Pは、一人のユーザにより交互に利用される場合もあれば、図10や図11を用いて後述するように複数のユーザにより同時に利用され、図1中でW及びWで示す2つのストロークのように先後(上下)関係が部分的に入れ替わるストロークを出力する場合がある。 The position detector 20 is a device having a flat panel surface and a sensor arranged immediately below the panel surface, and is used together with one or more electronic pens P. 1, as an example of the electronic pen P, 2 single electronic pen P A, illustrates the P B. Electronic pen P A, are given in the bottom right corner of the sign of P B A, subscripts B is the symbol for distinguishing a plurality of the electronic pen, in the present specification, in particular a plurality of electronic pen When it is not necessary to distinguish, it is simply referred to as an electronic pen P. Electronic pen P A, is P B, if also be utilized alternately the one user, be utilized simultaneously by a plurality of users as will be described later with reference to FIGS. 10 and 11, W A and in FIG. 1 front-rear as two strokes indicated by W B (vertical) relationship is when outputting the stroke replaced partially.

電子ペンPはペン状の入力デバイスであり、通常、ユーザの手に保持された状態で使用される。ユーザは、電子ペンPのペン先を位置検出器20上で移動させることにより、文字や絵の入力を行う。図示していないが、電子ペンPは、電子ペンPごとにユニークなペン識別情報PID(入力デバイス識別情報)が予め格納される記憶装置と、電子ペンPが位置検出器20のパネル面を押す力、すなわち筆圧を検出する筆圧検出装置と、オン又はオフのいずれかの状態を取り得るサイドスイッチと、電子ペンPから位置検出器20に対して各種の信号を送信するための送信装置とを有して構成される。送信装置が送信する信号には、ペン識別情報PIDを表す信号、筆圧検出装置によって検出された筆圧を表す信号、サイドスイッチの状態を表す信号などが含まれる。送信装置は、これらの信号を一定の周期で送信するように構成される。 The electronic pen P is a pen-shaped input device, and is usually used while being held in the user's hand. The user inputs characters and pictures by moving the pen tip of the electronic pen P on the position detector 20. Although not shown, the electronic pen P has a storage device in which a unique pen identification information PID (input device identification information) is stored in advance for each electronic pen P, and the electronic pen P presses the panel surface of the position detector 20. A pen pressure detection device that detects force, that is, a pen pressure, a side switch that can take either an on or off state, and a transmission device for transmitting various signals from the electronic pen P to the position detector 20. It is composed of and. The signal transmitted by the transmitting device includes a signal representing the pen identification information PID, a signal representing the pen pressure detected by the pen pressure detecting device, a signal representing the state of the side switch, and the like. The transmitting device is configured to transmit these signals at regular intervals.

位置検出器20は、パネル面内における各電子ペンPの位置を検出する機能と、各電子ペンPが送信した上記各情報を受信する機能とを有して構成される。位置の検出について具体的に説明すると、位置検出器20を構成するセンサは、それぞれx方向(位置検出器20の表面内の一方向)に延在する複数の線状導体と、それぞれy方向(位置検出器20の表面内においてx方向と直交する方向)に延在する複数の線状導体とがそれぞれ等間隔で配置された構成を有している。位置検出器20は、パネル面に電子ペンPが近づいたことによって生ずるこれらの線状導体の電位の変化に基づき、パネル面内における電子ペンPの位置を示すポイントデータPDを検出する。ポイントデータPDは、x座標とy座標の組み合わせ(x,y)からなるデータである。この検出は、電子ペンPの信号送信周期と同じ周期で行われる。位置検出器20は、USBやICなどのインターフェイスによってデジタルインク生成装置30と接続されており、このインターフェイスを介して、検出したポイントデータPD及び受信した各種の情報を検出又は受信の都度、デジタルインク生成装置30に出力するよう構成される。 The position detector 20 has a function of detecting the position of each electronic pen P in the panel surface and a function of receiving the above-mentioned information transmitted by each electronic pen P. Specifically explaining the position detection, the sensors constituting the position detector 20 have a plurality of linear conductors extending in the x direction (one direction in the surface of the position detector 20) and the y direction (each). It has a configuration in which a plurality of linear conductors extending in a direction orthogonal to the x direction on the surface of the position detector 20 are arranged at equal intervals. The position detector 20 detects the point data PD indicating the position of the electronic pen P in the panel surface based on the change in the potential of these linear conductors caused by the electronic pen P approaching the panel surface. The point data PD is data composed of a combination (x, y) of the x-coordinate and the y-coordinate. This detection is performed in the same cycle as the signal transmission cycle of the electronic pen P. Position detector 20, the interface such as USB and I 2 C is connected to the digital ink generating device 30, via the interface, each time the detection or receiving the detection point data PD and the various received information of, It is configured to output to the digital ink generator 30.

デジタルインク生成装置30は、位置検出器20から供給されるポイントデータPD及び各種の情報に基づき、インクファイル40を生成する装置である。デジタルインク生成装置30は、コンピュータ1のCPU上で実行される、アプリケーション100により動的あるいは静的にリンクされるライブラリ、又は、アプリケーション100から利用されるサービスとして実現される。インクファイル40の詳細は後述するが、インクファイル40には、電子ペンPの移動軌跡を再現するための一連のポイントデータPDをそれぞれ含む1以上のストロークデータと、ストロークデータの生成に用いられた電子ペンPのペン識別情報PIDに対応するメタデータ(後述する論理名LN)とが含まれる。メタデータはストロークデータごとに生成されるもので、対応するストロークデータと対応付けてインクファイル40内に格納される。インクファイル40はコンピュータ1の図示しない記憶装置に格納され、必要に応じて、各種のサーバへのアップロード、電子メールによる送信などの対象となる。 The digital ink generation device 30 is a device that generates an ink file 40 based on the point data PD and various information supplied from the position detector 20. The digital ink generator 30 is realized as a library executed on the CPU of the computer 1 and dynamically or statically linked by the application 100, or a service used by the application 100. The details of the ink file 40 will be described later, but the ink file 40 was used to generate one or more stroke data including a series of point data PDs for reproducing the movement locus of the electronic pen P, and stroke data. It includes metadata (logical name LN described later) corresponding to the pen identification information PID of the electronic pen P. The metadata is generated for each stroke data, and is stored in the ink file 40 in association with the corresponding stroke data. The ink file 40 is stored in a storage device (not shown) of the computer 1, and is subject to uploading to various servers, transmission by e-mail, and the like, if necessary.

デジタルインク再生装置50は、デジタルインク生成装置30が生成したインクファイル40を再生する装置である。デジタルインク再生装置50は、実体的にはデジタルインク再生装置30同様、コンピュータ1のCPU上で実行される、アプリケーション100により動的あるいは静的にリンクされるライブラリ、又は、サービスとして実現される。具体的には、アプリケーション100からの指示を受け、インクファイル40から所望のストロークデータを選択的に取り出して復号化し、復号化されたストロークデータの描画処理を行うことにより、ディスプレイ60に表示される映像信号や、ラスタデータである画像ファイル61を生成するよう構成される。画像ファイル61は、例えばJPEGやPNGのファイルである。本実施の形態によるデジタルインク再生装置50は特に、インクファイル40内のメタデータを参照することにより、特定の電子ペンPで生成されたストロークデータのみを抽出して復号化し、描画処理の対象とする機能を有している。この点については、後ほど別途詳しく説明する。 The digital ink regeneration device 50 is a device that reproduces the ink file 40 generated by the digital ink generation device 30. The digital ink regenerator 50 is realized as a library or a service dynamically or statically linked by the application 100, which is executed on the CPU of the computer 1 in substance like the digital ink regenerator 30. Specifically, it is displayed on the display 60 by receiving an instruction from the application 100, selectively extracting desired stroke data from the ink file 40, decoding it, and performing drawing processing of the decoded stroke data. It is configured to generate a video signal and an image file 61 which is raster data. The image file 61 is, for example, a JPEG or PNG file. In particular, the digital ink regenerating device 50 according to the present embodiment extracts and decodes only the stroke data generated by the specific electronic pen P by referring to the metadata in the ink file 40, and targets the drawing process. Has the function of This point will be described in detail later.

図2は、デジタルインク生成装置30の機能ブロック図である。同図に示すように、デジタルインク生成装置30は、機能的に、入力処理部31、ストロークデータ生成部32、メタデータ生成部33、インクデータ保持部34、及びインクファイル生成部37を有して構成される。このうちインクファイル生成部37は、内部構成として、複数のストロークデータ符号化部35−1〜35−n及びメタデータ符号化部36を有して構成される。 FIG. 2 is a functional block diagram of the digital ink generator 30. As shown in the figure, the digital ink generation device 30 functionally includes an input processing unit 31, a stroke data generation unit 32, a metadata generation unit 33, an ink data holding unit 34, and an ink file generation unit 37. It is composed of. Of these, the ink file generation unit 37 is configured to include a plurality of stroke data coding units 35-1 to 35-n and a metadata coding unit 36 as an internal configuration.

ここで、図2に示すアプリケーション100は、コンピュータ1のCPU上で実行されるソフトウェアであり、インクファイル40の生成及び再生にかかるコンピュータ1の動作を制御する役割を果たす。アプリケーション100は、例えば、手書きノートアプリケーション、プレゼンテーションアプリケーション、ホワイトボード共有アプリケーションなど様々なアプリケーションが考えられる。アプリケーション100は、デジタルインク生成装置30及びデジタルインク再生装置50(図1参照)との間で、コンピュータ1のメモリを介し後述するメタデータ情報M_infやテーブルM_Tblなどの各種の情報を互いに供給可能に構成される。 Here, the application 100 shown in FIG. 2 is software executed on the CPU of the computer 1 and plays a role of controlling the operation of the computer 1 related to the generation and reproduction of the ink file 40. As the application 100, various applications such as a handwritten note application, a presentation application, and a whiteboard sharing application can be considered. The application 100 can supply various information such as metadata information M_inf and table M_Tbl, which will be described later, to each other via the memory of the computer 1 between the digital ink generation device 30 and the digital ink reproduction device 50 (see FIG. 1). It is composed.

入力処理部31は、位置検出器20から各種の情報(ポイントデータPD、ペン識別情報PID、筆圧を示す情報、サイドスイッチの状態を示す情報など)が受信される都度、受信された情報に基づいてイベントデータを生成し、ストロークデータ生成部32、メタデータ生成部33、及びアプリケーション100に分配供給する機能部である。入力処理部31は、典型的には、コンピュータ1上で動作するオペレーティングシステムに組み込まれた位置検出器20に対応するデバイスドライバとして実現される。入力処理部31からストロークデータ生成部32に供給されるデータには、ポイントデータPDが含まれる。また、メタデータ生成部33に供給されるデータには、ペン識別情報PIDが含まれる。一方、アプリケーション100には、ストロークデータSDの処理状況を示す情報D_infの供給を行う。アプリケーション100は、この情報D_infに応じてデジタルインク生成装置30の動作を制御するよう、構成される。 The input processing unit 31 sets the received information each time various information (point data PD, pen identification information PID, information indicating pen pressure, information indicating the state of the side switch, etc.) is received from the position detector 20. It is a functional unit that generates event data based on the information and distributes and supplies it to the stroke data generation unit 32, the metadata generation unit 33, and the application 100. The input processing unit 31 is typically realized as a device driver corresponding to the position detector 20 incorporated in the operating system running on the computer 1. The data supplied from the input processing unit 31 to the stroke data generation unit 32 includes the point data PD. Further, the data supplied to the metadata generation unit 33 includes the pen identification information PID. On the other hand, the application 100 is supplied with information D_inf indicating the processing status of the stroke data SD. The application 100 is configured to control the operation of the digital ink generator 30 according to this information D_inf.

入力処理部31によって生成されるイベントデータには、位置検出器20から供給される情報の他、電子ペンPの状態を示すイベントタイプ識別情報ETYPE(図示せず)が含まれる。イベントタイプ識別情報ETYPEは、位置検出器20から入力されたポイントデータPDにより示されるポイントが一連のストロークのうちどの部分かを識別するための情報であり、図2には示していないが、電子ペンPがパネル面に接触したことを示すペンダウン状態Pdown、電子ペンPがパネル面内で移動したことを示すペンムーブト状態Pmvd、電子ペンPがパネル面から離れたことを示すペンアップ状態Pupなどの値を取る。 The event data generated by the input processing unit 31 includes information supplied from the position detector 20 as well as event type identification information ETYPE (not shown) indicating the state of the electronic pen P. The event type identification information ETYPE is information for identifying which part of a series of strokes the point indicated by the point data PD input from the position detector 20 is, and is not shown in FIG. 2, but is electronic. A pen-down state Pdown indicating that the pen P has come into contact with the panel surface, a pen-moved state Pmvd indicating that the electronic pen P has moved within the panel surface, a pen-up state Pup indicating that the electronic pen P has moved away from the panel surface, etc. Take a value.

入力処理部31は、位置検出器20から受信される情報に基づき、電子ペンPが位置検出器20に接触(ペンダウン)したこと、及び、電子ペンPが位置検出器20から離れた(ペンアップした)ことを検出可能に構成される。入力処理部31は、電子ペンPが位置検出器20に接触(ペンダウン)したことを検出すると、次に生成するイベントデータ内のイベントタイプ識別情報ETYPEの値をペンダウン状態Pdownとする。その後、電子ペンPが位置検出器20のパネル面に触れている間(すなわち、位置検出器20から各種の情報が供給され続けている間)、入力処理部31は、イベントデータ内のイベントタイプ識別情報ETYPEの値にペンムーブト状態Pmvdを設定し続ける。最後に入力処理部31は、電子ペンPが位置検出器20から離れた(ペンアップした)ことを検出すると、次に生成するイベントデータ内のイベントタイプ識別情報ETYPEの値をペンアップ状態Pupとする。こうして入力処理部31は、ペンダウン状態Pdownで始まり、ペンアップ状態Pupで終わる一連のイベントデータを生成する。 Based on the information received from the position detector 20, the input processing unit 31 has contacted (pen down) the electronic pen P with the position detector 20 and separated the electronic pen P from the position detector 20 (pen up). It is configured to be detectable. When the input processing unit 31 detects that the electronic pen P has come into contact with the position detector 20 (pen down), the value of the event type identification information ETYPE in the event data to be generated next is set to the pen down state Pdown. After that, while the electronic pen P is touching the panel surface of the position detector 20 (that is, while various information is continuously supplied from the position detector 20), the input processing unit 31 uses the event type in the event data. Continue to set the pen-moved state Pmvd to the value of the identification information ETYPE. Finally, when the input processing unit 31 detects that the electronic pen P has moved away from the position detector 20 (pen-up), the value of the event type identification information ETYPE in the event data to be generated next is set to the pen-up state Pu. To do. In this way, the input processing unit 31 generates a series of event data starting with the pen-down state Pdown and ending with the pen-up state Pup.

ストロークデータ生成部32は、入力処理部31からポイントデータPDの供給を受け、1以上のポイントデータPDを包含するストロークデータSDを生成する機能部である。ストロークデータ生成部32は、典型的には、コンピュータ1のCPUで実行されるライブラリあるいはサービスと呼ばれるプログラムで実現される。ストロークデータ生成部32は、入力処理部31から供給されるイベントタイプ識別情報ETYPEの値を参照することにより、ペンダウン状態Pdownを示すイベントデータからペンアップ状態Pupを示すイベントデータまでの間の各イベントデータに含まれる一連のポイントデータPDを包含する1つのストロークデータSDを生成する。 The stroke data generation unit 32 is a functional unit that receives the supply of point data PD from the input processing unit 31 and generates stroke data SD including one or more point data PDs. The stroke data generation unit 32 is typically realized by a program called a library or service executed by the CPU of the computer 1. By referring to the value of the event type identification information ETYPE supplied from the input processing unit 31, the stroke data generation unit 32 receives each event from the event data indicating the pen-down state Pdown to the event data indicating the pen-up state Pup. One stroke data SD including a series of point data PDs included in the data is generated.

ここで、ストロークデータSDに包含されるポイントデータPDには、様々なタイプが存在する。ストロークデータ生成部32は、入力処理部31から供給されるポイントデータPDの値をそのままストロークデータSDに含めることとしてもよいし、重み付け平均あるいは指数平滑法等のスムージング処理や間引き処理、又は特許文献1記載のデジタルインクのように圧縮処理等を行うことによって間引かれたポイントデータPDの値をストロークデータSDに含めることとしてもよい。また、ベジエ曲線等補間曲線の曲線形状を決定する上で再現される軌跡上に存在しない外部の制御点の位置あるいは2次元ベクトルをポイントデータPDの値としてストロークデータSDに加えることとしてもよい。ストロークデータ生成部32は、生成したストロークデータSDをインクデータ保持部34に格納するよう構成される。 Here, there are various types of point data PD included in the stroke data SD. The stroke data generation unit 32 may include the value of the point data PD supplied from the input processing unit 31 as it is in the stroke data SD, smoothing processing such as weighted averaging or exponential smoothing method, thinning processing, or patent document. The stroke data SD may include the value of the point data PD thinned out by performing a compression process or the like as in the digital ink described in 1. Further, the position of an external control point or a two-dimensional vector that does not exist on the locus reproduced in determining the curve shape of the Bezier curve or the like interpolation curve may be added to the stroke data SD as the value of the point data PD. The stroke data generation unit 32 is configured to store the generated stroke data SD in the ink data holding unit 34.

メタデータ生成部33は、入力処理部31から供給されるペン識別情報PIDに基づいて、メタデータである論理名LNを生成する機能部である。メタデータ生成部33も、典型的には、コンピュータ1のCPUで実行されるライブラリあるいはサービスと呼ばれるプログラムで実現される。メタデータ生成部33は、入力処理部31から供給されるイベントデータにペンダウン状態Pdownを示すイベントタイプ識別情報ETYPEが含まれていた場合に、そのイベントデータに含まれるペン識別情報PIDに対応する論理名LNを生成する。論理名LNの具体的な内容は、後ほど説明する図8に示すように、文字列、ハッシュ値、URNという3種類の形式の中からアプリケーション100によって選択される一の形式によって記述されたものとなる。アプリケーション100は、メタデータ生成部33に対して、論理名LNの出力形式を記述したメタデータ情報M_inf、並びに、単一のフォーマットで記述された1以上の論理識別情報LIDと論理名LNとの組を記述したテーブルM_Tblを供給することにより、論理名LNの形式の選択、並びに、各々の論理識別情報LIDに対応する論理名LNの指定を行う。メタデータ生成部33は、生成した論理名LNをインクデータ保持部34に格納するよう構成される。 The metadata generation unit 33 is a functional unit that generates a logical name LN that is metadata based on the pen identification information PID supplied from the input processing unit 31. The metadata generation unit 33 is also typically realized by a program called a library or service executed by the CPU of the computer 1. When the event data supplied from the input processing unit 31 includes the event type identification information ETYPE indicating the pen-down state Pdown, the metadata generation unit 33 has a logic corresponding to the pen identification information PID included in the event data. Generate the name LN. As shown in FIG. 8 to be described later, the specific contents of the logical name LN are described in one format selected by the application 100 from the three formats of a character string, a hash value, and a URN. Become. The application 100 tells the metadata generation unit 33 that the metadata information M_inf that describes the output format of the logical name LN, and one or more logical identification information LIDs and the logical name LN that are described in a single format. By supplying the table M_Tbl that describes the set, the format of the logical name LN is selected, and the logical name LN corresponding to each logical identification information LID is specified. The metadata generation unit 33 is configured to store the generated logical name LN in the ink data holding unit 34.

インクデータ保持部34は、メタデータ生成部33から供給される論理名LNと、ストロークデータ生成部32から供給されるストロークデータSDとを関連付けて記憶するよう構成される。具体的には、ある電子ペンPがペンダウン状態Pdownとなったことに応じてメタデータ生成部33から供給される論理名LNと、その電子ペンPが次にペンアップ状態Pupとなったことに応じてストロークデータ生成部32から供給されるストロークデータSDとを関連付けて記憶する。 The ink data holding unit 34 is configured to store the logical name LN supplied from the metadata generation unit 33 in association with the stroke data SD supplied from the stroke data generation unit 32. Specifically, the logical name LN supplied from the metadata generation unit 33 in response to the fact that a certain electronic pen P is in the pen-down state Pdown, and the electronic pen P is next in the pen-up state Pu. Correspondingly, the stroke data SD supplied from the stroke data generation unit 32 is associated and stored.

インクファイル生成部37は、インクデータ保持部34に保持されるストロークデータSD及び論理名LNに基づき、インクファイル40を生成する機能部である。インクファイル生成部37により生成されるインクファイル40は、後に説明する図14に示されるように、ストロークデータSDを含むインクチャンクと、メタデータである論理名LNを含むメタデータチャンクとを含んで構成される。 The ink file generation unit 37 is a functional unit that generates an ink file 40 based on the stroke data SD and the logical name LN held in the ink data holding unit 34. The ink file 40 generated by the ink file generation unit 37 includes an ink chunk including stroke data SD and a metadata chunk including a logical name LN which is metadata, as shown in FIG. 14 to be described later. It is composed.

ストロークデータSDは、それぞれ互いに異なるフォーマット(データ構造、及び、符号化方式)に対応するストロークデータ符号化部35−1〜35−nの中からアプリケーション100によって選択される一のフォーマットに対応するストロークデータ符号化部35によって符号化された状態で、インクチャンク内に格納される。ストロークデータ符号化部35−1〜35−nが対応するストロークデータのフォーマットの例としては、InkML、ISFなど非特許文献1~4に記載したフォーマットや、図15、図16を参照して説明する本発明に係るフォーマットなどが挙げられる。 The stroke data SD is a stroke corresponding to one format selected by the application 100 from the stroke data coding units 35-1 to 35-n corresponding to different formats (data structure and coding method). It is stored in the ink chunk in a state of being encoded by the data coding unit 35. As an example of the stroke data format supported by the stroke data coding unit 35-1 to 35-n, the formats described in Non-Patent Documents 1 to 4 such as InkML and ISF, and FIGS. 15 and 16 will be described. Examples include the format according to the present invention.

アプリケーション100は、インクファイル生成部37に対してストロークのデータフォーマットを指定する情報であるストロークデータフォーマットS_Fmtを供給することにより、ストロークデータ符号化部35の選択を行う。ストロークデータフォーマットS_Fmtの詳細については、後ほど図15を参照しながら詳しく説明する。 The application 100 selects the stroke data coding unit 35 by supplying the stroke data format S_Fmt, which is information for designating the stroke data format, to the ink file generation unit 37. The details of the stroke data format S_Fmt will be described in detail later with reference to FIG.

一方、論理名LNは、当該論理名LNに1以上のストロークデータSDを対応付けるための記述を含むメタデータブロックの一部として、メタデータチャンクに格納される。メタデータブロックは、XMLフォーマットにより記述される。より特定的には、XMP(Extensible Metadata Platform)形式のフォーマットにより記述される。記述されたメタデータブロックは、UTF−8などの符号化方式により、メタデータ符号化部36によって符号化(バイナリ化)されメタデータチャンク内に格納される。 On the other hand, the logical name LN is stored in the metadata chunk as a part of a metadata block including a description for associating the logical name LN with one or more stroke data SDs. The metadata block is described in XML format. More specifically, it is described in the format of XMP (Extensible Metadata Platform) format. The described metadata block is encoded (binary) by the metadata coding unit 36 by a coding method such as UTF-8 and stored in the metadata chunk.

図3及び図4は、インクファイル40を生成する処理のメインルーチンを示す処理フロー図である。以下、デジタルインク生成装置30が行う処理について、これらの図を参照しながら、再度より詳しく説明する。 3 and 4 are process flow diagrams showing the main routine of the process of generating the ink file 40. Hereinafter, the processing performed by the digital ink generator 30 will be described in more detail again with reference to these figures.

この処理では、図3に示すように、まず初めに変数stroke_idに数値「1」が、変数uorder及び変数CSに数値「0」が、それぞれ設定される(ステップS1)。変数stroke_idは、ペン識別情報PIDによる区別なく、ストロークをユニークに識別するために付与される識別情報(ストローク識別子)である。また、変数uorderは、ストローク又はストロークの部分的なセグメントが生成された順序を記憶するために使用する変数(順序情報)であり、変数CSは、あるストロークが入力されている間に位置検出器20によって同時に検出されている電子ペンPの本数を示す数字データである。 In this process, as shown in FIG. 3, first, a numerical value "1" is set in the variable stroke_id, and a numerical value "0" is set in the variable inner and the variable CS (step S1). The variable stroke_id is identification information (stroke identifier) given to uniquely identify the stroke without distinction by the pen identification information PID. Further, the variable user is a variable (order information) used to store the stroke or the order in which the partial segments of the stroke are generated, and the variable CS is the position detector while a certain stroke is input. It is numerical data which shows the number of electronic pens P which are detected at the same time by 20.

次に、入力処理部31によって電子ペンPの状態が検出される(ステップS2)。ステップS2において電子ペンPがペンダウン状態Pdownとなったことが検出された場合、入力処理部31は、位置検出器20からペン識別情報PIDを取得し(ステップS10)、メタデータ生成部33に供給する。メタデータ生成部33は、供給されたペン識別情報PIDに基づき、stroke_id番目の論理名LNの生成を行う(ステップS11)。この論理名LNの生成処理については、後ほど図5〜図8を参照しながら、より詳しく説明する。 Next, the input processing unit 31 detects the state of the electronic pen P (step S2). When it is detected in step S2 that the electronic pen P is in the pen-down state Pdown, the input processing unit 31 acquires the pen identification information PID from the position detector 20 (step S10) and supplies it to the metadata generation unit 33. To do. The metadata generation unit 33 generates the logical name LN at the stroke_id th based on the supplied pen identification information PID (step S11). The process of generating the logical name LN will be described in more detail later with reference to FIGS. 5 to 8.

次いで、入力処理部31は、筆圧を示す情報を含む位置検出器20からの入力情報に基づいて線幅などのスタイル情報を取得する(ステップS12)とともに、位置検出器20からポイントデータPDを取得する(ステップS13)。ステップS13で取得されるポイントデータPDは、1つのストロークの開始点を示す開始座標(x0,y0)となる。なお、ステップS10,S12,S13における各種情報の取得の順序は、ここに記載したものに限られない。 Next, the input processing unit 31 acquires style information such as a line width based on the input information from the position detector 20 including the information indicating the writing pressure (step S12), and obtains the point data PD from the position detector 20. Acquire (step S13). The point data PD acquired in step S13 becomes the start coordinates (x0, y0) indicating the start point of one stroke. The order of acquisition of various information in steps S10, S12, and S13 is not limited to that described here.

次に、入力処理部31は、ストローク識別子Stroke_id(PID)に、その時点での変数stroke_idの値を設定する(ステップS14)。ストローク識別子Stroke_id(PID)は、変数stroke_idと同様に各々のストロークを識別するための情報であるが、ペン識別情報PIDによる区別を行うために、ペン識別情報PIDをインデックス(あるいはキー)とする連想配列の形式で保持される。この連想配列はステップS10で取得したペン識別情報PIDにより示される電子ペンPによってこれから生成されるストロークデータSDに付与されるべき変数stroke_idを一時的に保存するために使用される。このように各種の変数(stroke_id,uorder等)を通常の変数に加えて別に連想配列の形式でも保持するのは、複数の異なる電子ペンPにより同時にストロークデータが入力されている間に、入力されている最中の複数のストロークにそれぞれ付与されたstroke_idやuorderの値をインデクス(あるいはキー)により区別して取り出し可能にするためである。 Next, the input processing unit 31 sets the value of the variable stroke_id at that time in the stroke identifier Stroke_id (PID) (step S14). The stroke identifier Stroke_id (PID) is information for identifying each stroke like the variable stroke_id, but is associated with the pen identification information PID as an index (or key) in order to distinguish by the pen identification information PID. It is held in the form of an array. This associative array is used to temporarily store the variable stroke_id to be assigned to the stroke data SD generated by the electronic pen P indicated by the pen identification information PID acquired in step S10. In this way, various variables (stroke_id, orderer, etc.) are held in the form of an associative array in addition to the normal variables, while the stroke data is being input by a plurality of different electronic pens P at the same time. This is to make it possible to distinguish the values of stroke_id and input given to each of the plurality of strokes during the process by an index (or key) and retrieve them.

また、入力処理部31は、順序情報Uorder(PID)に、その時点での変数uorderの値を代入する(ステップS15)。順序情報Uorder(PID)も、ペン識別情報PIDをインデックスとする連想配列である。順序情報Uorder(PID)は、複数の電子ペンPのそれぞれについて検出される複数のポイントデータPD間(あるいはポイントデータPDのセグメント間)の相対的な検出順(描画順)を表す情報であり、検出されたポイントデータPDと対応付けて記憶される(後述するステップS16,S24,S34)。順序情報Uorder(PID)の値は、後述するステップS23,S33で実行される順序確認処理によって更新される場合がある。順序確認処理の詳細については、後ほど図9〜図11を参照しながら説明する。 Further, the input processing unit 31 substitutes the value of the variable auder at that time into the order information order (PID) (step S15). The order information Older (PID) is also an associative array indexed by the pen identification information PID. The order information Older (PID) is information representing the relative detection order (drawing order) between the plurality of point data PDs (or between the segments of the point data PDs) detected for each of the plurality of electronic pens P. It is stored in association with the detected point data PD (steps S16, S24, S34 described later). The value of the order information Order (PID) may be updated by the order confirmation process executed in steps S23 and S33 described later. The details of the order confirmation process will be described later with reference to FIGS. 9 to 11.

次いで、デジタルインク生成装置30は、ステップS10で取得したペン識別情報PID、ステップS13で取得したポイントデータPD、及び、最新の順序情報Uorder(PID)を対応付けて記憶する(ステップS16)。この後、変数stroke_id、変数CS、変数uorderがそれぞれ1ずつインクリメントされ(ステップS17)、ステップS2に処理が戻される。 Next, the digital ink generator 30 stores the pen identification information PID acquired in step S10, the point data PD acquired in step S13, and the latest order information Older (PID) in association with each other (step S16). After that, the variable stroke_id, the variable CS, and the variable user are each incremented by 1 (step S17), and the process is returned to step S2.

次に、ステップS2において電子ペンPがペンムーブト状態Pmvdであることを検出した入力処理部31は、まず位置検出器20からペン識別情報PID及びポイントデータPDを取得する(ステップS20,S21)。ステップS21で取得されるポイントデータPDは、1つのストロークの途中点を示す移動座標(x1,y1)〜(xn−1,yn−1)となる。なお、ステップS20,S21における各種情報の取得の順序も、ここに記載したものに限られない。 Next, the input processing unit 31 that detects that the electronic pen P is in the pen-moved state Pmvd in step S2 first acquires the pen identification information PID and the point data PD from the position detector 20 (steps S20 and S21). The point data PD acquired in step S21 has moving coordinates (x1, y1) to (xn-1, yn-1) indicating an intermediate point of one stroke. The order of acquisition of various information in steps S20 and S21 is not limited to that described here.

次いで、入力処理部31は、変数CSが2以上となっているか否かを判定し(ステップS22)、2以上であれば、順序確認処理を行う(ステップS23)。続いて入力処理部31は、ステップS20で取得したペン識別情報PID、ステップS21で取得したポイントデータPD、及び、最新の順序情報Uorder(PID)を対応付けて記憶する(ステップS24)。この後、ステップS2に処理が戻される。 Next, the input processing unit 31 determines whether or not the variable CS is 2 or more (step S22), and if it is 2 or more, performs an order confirmation process (step S23). Subsequently, the input processing unit 31 stores the pen identification information PID acquired in step S20, the point data PD acquired in step S21, and the latest order information Older (PID) in association with each other (step S24). After that, the process is returned to step S2.

次に、ステップS2において電子ペンPがペンアップ状態Pupであることを検出した入力処理部31は、まず位置検出器20からペン識別情報PID及びポイントデータPDを取得する(ステップS30,S31)。ステップS31で取得されるポイントデータPDは、1つのストロークの終了点を示す終了座標(xn,yn)となる。なお、ステップS30,S31における各種情報の取得の順序も、ここに記載したものに限られない。 Next, the input processing unit 31 that detects that the electronic pen P is in the pen-up state in step S2 first acquires the pen identification information PID and the point data PD from the position detector 20 (steps S30 and S31). The point data PD acquired in step S31 becomes end coordinates (xn, yn) indicating the end point of one stroke. The order of acquisition of various information in steps S30 and S31 is not limited to that described here.

次に、入力処理部31は、同時に入力されているストロークが存在するか否かを判定するため、変数CSが2以上となっているか否かを判定し(ステップS32)、2以上であれば、ステップS23と同様の順序確認処理を行う(ステップS33)。続いて入力処理部31は、ステップS30で取得したペン識別情報PID、ステップS31で取得したポイントデータPD、及び、最新の順序情報Uorder(PID)を対応付けて記憶する(ステップS34)。この後、変数CSの値が1デクリメントされる(ステップS35)。 Next, the input processing unit 31 determines whether or not the variable CS is 2 or more in order to determine whether or not there are strokes that are simultaneously input (step S32), and if it is 2 or more. , The same order confirmation process as in step S23 is performed (step S33). Subsequently, the input processing unit 31 stores the pen identification information PID acquired in step S30, the point data PD acquired in step S31, and the latest order information Order (PID) in association with each other (step S34). After that, the value of the variable CS is decremented by 1 (step S35).

続いて、ストロークデータ生成部32により、ステップS30で取得したペン識別情報PIDに対応付けて記憶している一連のポイントデータPD及び順序情報Uorder(PID)に基づいて、Stroke_id(PID)番目のストロークデータSDが生成される(ステップS36)。なお、ストローク識別子Stroke_id(PID)の値は、ステップS14で設定されたものである。ここで生成されるストロークデータSDには、上記一連のポイントデータPD及び順序情報Uorder(PID)の他、Stroke_id(PID)番目のストロークデータSDであることを示す情報、及び、ステップS12で取得したスタイル情報が含まれる。ステップS36で生成したストロークデータSDは、ステップS30で取得したペン識別情報PIDに関してステップS11で生成した論理名LNと対応付けて、インクデータ保持部34に保持される(ステップS37)。 Subsequently, the stroke data generation unit 32 strokes the Stroke_id (PID) th stroke based on a series of point data PDs and sequence information Older (PID) stored in association with the pen identification information PID acquired in step S30. Data SD is generated (step S36). The value of the stroke identifier Stroke_id (PID) is the one set in step S14. The stroke data SD generated here includes the above-mentioned series of point data PD and order information Older (PID), information indicating that the stroke data SD is the Stroke_id (PID) th stroke data SD, and acquired in step S12. Contains style information. The stroke data SD generated in step S36 is held in the ink data holding unit 34 in association with the logical name LN generated in step S11 with respect to the pen identification information PID acquired in step S30 (step S37).

以上の処理が、アプリケーション100から上述したストロークデータフォーマットS_Fmtが供給されるまでの間、繰り返し実行される(ステップS38の否定判定)。アプリケーション100からストロークデータフォーマットS_Fmtが供給されると、インクファイル生成部37はインクファイル40の出力が指示されたと判定し(ステップS38の肯定判定)、ステップS40に示すインクファイル生成処理を実行する。これにより、ここまでに生成された一連のストロークデータSDを含むインクファイル40が生成される。インクファイル生成処理の詳細については、後ほど図13〜図19を参照しながら、詳しく説明する。 The above processing is repeatedly executed until the stroke data format S_Fmt described above is supplied from the application 100 (negative determination in step S38). When the stroke data format S_Fmt is supplied from the application 100, the ink file generation unit 37 determines that the output of the ink file 40 has been instructed (affirmative determination in step S38), and executes the ink file generation process shown in step S40. As a result, the ink file 40 including the series of stroke data SD generated so far is generated. The details of the ink file generation process will be described in detail later with reference to FIGS. 13 to 19.

デジタルインク生成装置30は、以上のようにして、インクファイル40の生成を行う。以下、後ほど説明するとした各処理について、順次説明する。 The digital ink generation device 30 generates the ink file 40 as described above. Hereinafter, each process described later will be described in sequence.

初めに、論理名LNの生成処理について、図5〜図8を参照しながら説明する。 First, the process of generating the logical name LN will be described with reference to FIGS. 5 to 8.

図5は、図2に示した入力処理部31及びメタデータ生成部33の内部構成を示す図である。同図には、電子ペンP及び位置検出器20の4つのタイプTY1〜TY4も示している。このように、電子ペンP及び位置検出器20にはいくつかのタイプ(デバイス種別)があるが、いずれのタイプでも、電子ペンPのポイントデータPDは位置検出器20によって検出され、入力処理部31に供給される。 FIG. 5 is a diagram showing an internal configuration of the input processing unit 31 and the metadata generation unit 33 shown in FIG. The figure also shows four types TY1 to TY4 of the electronic pen P and the position detector 20. As described above, there are several types (device types) of the electronic pen P and the position detector 20, but in any of the types, the point data PD of the electronic pen P is detected by the position detector 20 and is an input processing unit. It is supplied to 31.

一方、ペン識別情報PIDなどの電子ペンPが送信する各種の情報については、タイプTY1,TY2では位置検出器20が一旦受信して入力処理部31に供給するが、タイプTY3では電子ペンPから入力処理部31に直接送信される。タイプTY3の電子ペンPとして特許文献2記載の電子ペンのようなペンが挙げられる。電子ペンPのポイントデータPDは静電容量式のタッチパネルである位置検出器20よって検出され内部のインタフェースにより供給される一方で、筆圧などのポイントデータPDではないデータは、Bluetooth(登録商標)等を利用した別の通信チャネルを経由して入力処理部31に供給される。 On the other hand, various information transmitted by the electronic pen P such as the pen identification information PID is once received by the position detector 20 in the types TY1 and TY2 and supplied to the input processing unit 31, but in the type TY3, it is supplied from the electronic pen P. It is directly transmitted to the input processing unit 31. Examples of the type TY3 electronic pen P include a pen such as the electronic pen described in Patent Document 2. The point data PD of the electronic pen P is detected by the position detector 20 which is a capacitive touch panel and is supplied by the internal interface, while the non-point data PD data such as pen pressure is Bluetooth (registered trademark). It is supplied to the input processing unit 31 via another communication channel using the above.

タイプTY4の電子ペンPは、典型的には、静電容量方式のタッチパネルで用いられるタッチペンのような入力デバイスである。タイプTY4の電子ペンPは、位置入力を行うためのマウスデバイスのようなデバイスである場合もある。タイプTY4の電子ペンPは、ペン識別情報PIDを記憶しておらず、したがって、このタイプの電子ペンPを用いる場合、入力処理部31にペン識別情報PIDは供給されない。以下では、電子ペンP又は位置検出器20の符号の末尾に(TYn)と付記した場合、その電子ペンP又は位置検出器20がタイプTYn(nは1〜4の整数)のものであることを示す。また、タイプTY1〜TY3にかかるペン識別情報PIDをそれぞれペン識別情報PID1〜PID3と表記する。 The type TY4 electronic pen P is typically an input device such as a touch pen used in a capacitive touch panel. The electronic pen P of type TY4 may be a device such as a mouse device for performing position input. The type TY4 electronic pen P does not store the pen identification information PID, and therefore, when this type of electronic pen P is used, the pen identification information PID is not supplied to the input processing unit 31. In the following, when (TYn) is added to the end of the code of the electronic pen P or the position detector 20, the electronic pen P or the position detector 20 is of type TYn (n is an integer of 1 to 4). Is shown. Further, the pen identification information PIDs of the types TY1 to TY3 are referred to as pen identification information PID1 to PID3, respectively.

入力処理部31は、入出力インターフェイス(I/O)310と、ドライバ311〜315とを有して構成される。入出力インターフェイス310は、USBやIC、あるいはBlueTooth(登録商標)などの通信規格に従って構成された通信回路であり、入力処理部31が各タイプの位置検出器20及びタイプTY3の電子ペンP(TY3)との間で行う通信を実現する役割を果たす。 The input processing unit 31 includes an input / output interface (I / O) 310 and drivers 31 to 315. Output interface 310 is a communication circuit constructed in accordance with a communication standard such as USB and I 2 C or BlueTooth, (R), the electronic pen P of the position detector 20 and the type TY3 of the input processing unit 31 for each type It plays a role of realizing communication with (TY3).

ドライバ311は、位置検出器20(TY1)を制御・操作するためのソフトウェア(デバイスドライバ)である。ドライバ311は、位置検出器20(TY1)からポイントデータPD及びペン識別情報PID1を含む各種の情報を受信し、ポイントデータPDをストロークデータ生成部32に、ペン識別情報PID1をメタデータ生成部33にそれぞれ出力する機能を有する。 The driver 311 is software (device driver) for controlling and operating the position detector 20 (TY1). The driver 311 receives various information including the point data PD and the pen identification information PID1 from the position detector 20 (TY1), and uses the point data PD as the stroke data generation unit 32 and the pen identification information PID1 as the metadata generation unit 33. It has a function to output to each.

第1のペン識別情報PIDであるペン識別情報PID1は、非特許文献5記載のUniqueIDの例による情報である。ペン識別情報PID1は、KビットのID空間を利用するものであって、Kビット中にK1ビットの電子ペンPごとに異なる番号情報を含むユニーク情報UIDと、K2ビットのペン先識別ビットとが混在するフォーマット(第1フォーマット)により記述されている。より具体的に説明すると、ペン識別情報PID1は、図7に示すように、タイプTY1であることを含む電子ペンP(TY1)の各種の属性を示す12ビットの属性情報CSR_TYPEと、電子ペンP(TY1)のシリアル番号を示す32ビットのシリアル番号情報CSR_PHYSIDとからなるKビット(44ビット)によって構成される。属性情報CSR_TYPEによって示される属性には、例えば、電子ペンP(TY1)のペン先の種類(ペン、エアブラシなど)や、電子ペンP(TY1)が有する複数のペン先を相互に区別するための情報などが含まれる。後者の属性は電子ペンP(TY1)が例えば両端にペン先を有する場合に必要となる属性であり、属性情報CSR_TYPE内の1以上のビット(K2ビット、例では2ビット)(以下、「ペン先識別ビット」と称する)により示される。このペン先識別ビットにより、入力処理部31は、現在入力されているポイントデータPDの入力が、あるスタイラスのペンtip側でなされているか、又は、同じスタイラスのペンtail側(典型的にはイレーサなどの機能が対応付けられる)であるかを識別することができる。シリアル番号情報CSR_PHYSIDは、後述するペン識別情報PID2内のユニーク情報UIDなどとは異なり、それ自体では電子ペンPごとに異なる情報とはなっておらず、属性情報CSR_TYPEの一部(上記ペン先識別ビットを除く部分)と組み合わせることによって、電子ペンPごとに異なる情報となる。 The pen identification information PID1, which is the first pen identification information PID, is information according to the example of Unique ID described in Non-Patent Document 5. The pen identification information PID1 uses the K-bit ID space, and the unique information UID containing different number information for each K1 bit electronic pen P in the K bit and the K2 bit pen tip identification bit It is described in a mixed format (first format). More specifically, as shown in FIG. 7, the pen identification information PID1 includes a 12-bit attribute information CSR_TYPE indicating various attributes of the electronic pen P (TY1) including being of type TY1, and an electronic pen P. It is composed of K bits (44 bits) including 32-bit serial number information CSR_PHYSID indicating the serial number of (TY1). Attribute information The attributes indicated by CSR_TYPE include, for example, the type of pen tip of the electronic pen P (TY1) (pen, airbrush, etc.) and the plurality of pen tips of the electronic pen P (TY1) for distinguishing each other. Information etc. are included. The latter attribute is an attribute required when the electronic pen P (TY1) has pen tips at both ends, for example, and is one or more bits (K2 bit, in the example, 2 bits) in the attribute information CSR_TYPE (hereinafter, "pen". It is indicated by (referred to as the first identification bit). With this pen tip identification bit, the input processing unit 31 inputs the currently input point data PD on the pen tip side of a certain stylus, or on the pen tile side of the same stylus (typically, an eraser). Etc.) can be identified. The serial number information CSR_PHYSID is different from the unique information UID in the pen identification information PID2 described later, and is not information that differs for each electronic pen P by itself, and is a part of the attribute information CSR_TYPE (the above pen tip identification). By combining with the part excluding the bit), the information becomes different for each electronic pen P.

ドライバ312は、位置検出器20(TY2)を制御・操作するためのソフトウェア(デバイスドライバ)である。ドライバ312は、位置検出器20(TY2)からポイントデータPD及びペン識別情報PID2を含む各種の情報を受信し、ポイントデータPDをストロークデータ生成部32に、ペン識別情報PID2をメタデータ生成部33にそれぞれ出力する機能を有する。 The driver 312 is software (device driver) for controlling and operating the position detector 20 (TY2). The driver 312 receives various types of information including the point data PD and the pen identification information PID2 from the position detector 20 (TY2), and uses the point data PD as the stroke data generation unit 32 and the pen identification information PID2 as the metadata generation unit 33. It has a function to output to each.

第2のペン識別情報PIDであるペン識別情報PID2は、LビットのID空間を利用するものであってL2ビット(16ビット)のデバイス情報DIDと電子ペンの各々の筐体をユニークに識別するために設けられたL1ビット(35ビット)のユニーク情報UIDとが単純に連結されるフォーマット(第2フォーマット)により記述されている。具体的には、図7に示すように、タイプTY2であることを含む電子ペンP(TY2)の各種の属性を示す16ビットのデバイス情報DIDと、電子ペンPごとに異なる番号情報を含む35ビットのユニーク情報UIDとによって構成される。デバイス情報DIDによって示される属性は、上述した属性情報CSR_TYPEの場合と基本的に同様であるが、上述したペン先識別ビットを含まないこととしてもよい。 The pen identification information PID2, which is the second pen identification information PID, uses the L-bit ID space and uniquely identifies each housing of the L2-bit (16-bit) device information DID and the electronic pen. It is described in a format (second format) in which the unique information UID of the L1 bit (35 bits) provided for the purpose is simply concatenated. Specifically, as shown in FIG. 7, a 16-bit device information DID indicating various attributes of the electronic pen P (TY2) including being of type TY2 and a number information different for each electronic pen P 35 are included. It is composed of the unique information UID of the bit. The attributes indicated by the device information DID are basically the same as in the case of the attribute information CSR_TYPE described above, but may not include the pen tip identification bit described above.

ドライバ313は、電子ペン(TY3)を制御・操作するためのソフトウェアである。ドライバ313は、電子ペン(TY3)からペン識別情報PID3を含む各種の情報を受信し、メタデータ生成部33に出力する機能を有する。 The driver 313 is software for controlling and operating the electronic pen (TY3). The driver 313 has a function of receiving various information including the pen identification information PID 3 from the electronic pen (TY3) and outputting it to the metadata generation unit 33.

第3のペン識別情報PIDであるペン識別情報PID3は、MビットのID空間を利用するものであってMビット全部で電子ペンの各々の筐体を識別するフォーマット(第3フォーマット)により記述されている。具体的には、図7に示すように、電子ペンPごとに異なる番号情報を含む48ビットのユニーク情報UIDによって構成される。ID付与の体系としては、例えば、48ビットのBlueTothアドレスやIEEE EUI−48などのベンダIDを含むアドレスが利用される。ペン識別情報PID2のデバイス情報DIDに相当する情報は、ペン識別情報PID3には含まれない。 The pen identification information PID3, which is the third pen identification information PID, uses the ID space of M bits and is described in a format (third format) for identifying each housing of the electronic pen with all the M bits. ing. Specifically, as shown in FIG. 7, it is composed of a 48-bit unique information UID including different number information for each electronic pen P. As an ID assignment system, for example, an address including a vendor ID such as a 48-bit BlueToth address or IEEE EUI-48 is used. The information corresponding to the device information DID of the pen identification information PID2 is not included in the pen identification information PID3.

ドライバ314は、位置検出器20(TY3)を制御・操作するためのソフトウェア(デバイスドライバ)である。ドライバ314は、位置検出器20(TY3)からポイントデータPDを含む各種の情報を受信し、受信したポイントデータPDをストロークデータ生成部32に出力する機能を有する。 The driver 314 is software (device driver) for controlling and operating the position detector 20 (TY3). The driver 314 has a function of receiving various information including the point data PD from the position detector 20 (TY3) and outputting the received point data PD to the stroke data generation unit 32.

ドライバ315は、位置検出器20(TY4)を制御・操作するためのソフトウェア(センサドライバ)である。ドライバ315は、位置検出器20(TY4)からポイントデータPDを含む各種の情報を受信し、受信したポイントデータPDをストロークデータ生成部32に出力する機能を有する。 The driver 315 is software (sensor driver) for controlling and operating the position detector 20 (TY4). The driver 315 has a function of receiving various information including the point data PD from the position detector 20 (TY4) and outputting the received point data PD to the stroke data generation unit 32.

メタデータ生成部33は、アドレス空間統合部330と、LID変換部331と、デバイスタイプ記録部332とを有して構成される。このうちアドレス空間統合部330は、内部構成として、UID抽出部3300,3301と、Nビット空間マッピング処理部3302とを有して構成される。また、LID変換部331は、内部構成として、切替部3310、名前導出部3311、ハッシュ部3312、及びURN化部3313を有して構成される。以下、図6の処理フロー図に沿ってメタデータ生成部33の処理を説明しつつ、これらの各部の機能について説明する。 The metadata generation unit 33 includes an address space integration unit 330, an LID conversion unit 331, and a device type recording unit 332. Of these, the address space integration unit 330 includes UID extraction units 3300 and 3301 and an N-bit space mapping processing unit 3302 as internal configurations. Further, the LID conversion unit 331 includes a switching unit 3310, a name derivation unit 3311, a hash unit 3312, and a URN conversion unit 3313 as internal configurations. Hereinafter, the processing of the metadata generation unit 33 will be described with reference to the processing flow diagram of FIG. 6, and the functions of each of these units will be described.

まず、メタデータ生成部33は、デジタルインク生成装置30に接続されている電子ペンP及び位置検出器20のデバイス種別(上述したタイプTY1〜TY4)を取得する(ステップS110)。そして、取得したデバイス種別に応じて特定されるペン識別情報PIDのフォーマットに応じた処理を行う(ステップS111の各選択肢)。以下、タイプごとに説明する。 First, the metadata generation unit 33 acquires the device types (types TY1 to TY4 described above) of the electronic pen P and the position detector 20 connected to the digital ink generation device 30 (step S110). Then, processing is performed according to the format of the pen identification information PID specified according to the acquired device type (each option in step S111). Hereinafter, each type will be described.

まずデバイス種別がタイプTY1であった場合、ペン識別情報PIDのフォーマットは第1フォーマットであると特定される。第1フォーマットは、Kビット中に電子ペンPごとに異なる番号情報を含むユニーク情報UIDとペン先識別ビットとが混在するフォーマットであるため、UID抽出部3300により、対応するドライバ311を通じて供給されるペン識別情報PID1から、電子ペンPごとに異なる番号情報を含むユニーク情報UIDを抽出する処理を行う(ステップS111)。この抽出は具体的には、図7に示すように、属性情報CSR_TYPEのうち上述したペン先識別ビットに相当する部分を「0」ビットによってマスクすることによって行う。UID抽出部3300は、図5に示すように、抽出されたユニーク情報UIDをタイプTY1に対応するユニーク情報UID1として、Nビット空間マッピング処理部3302に供給する。また、UID抽出部3300は、マスクしたペン先識別ビットの内容を、デバイス情報DID1としてデバイスタイプ記録部332に供給する処理も行う。 First, when the device type is type TY1, the format of the pen identification information PID is specified to be the first format. Since the first format is a format in which the unique information UID containing different number information for each electronic pen P and the pen tip identification bit are mixed in the K bit, it is supplied by the UID extraction unit 3300 through the corresponding driver 311. A process of extracting unique information UID including number information different for each electronic pen P from the pen identification information PID 1 is performed (step S111). Specifically, as shown in FIG. 7, this extraction is performed by masking the portion of the attribute information CSR_TYPE corresponding to the pen tip identification bit described above with the “0” bit. As shown in FIG. 5, the UID extraction unit 3300 supplies the extracted unique information UID to the N-bit space mapping processing unit 3302 as the unique information UID1 corresponding to the type TY1. The UID extraction unit 3300 also performs a process of supplying the contents of the masked pen tip identification bit to the device type recording unit 332 as device information DID1.

次に、デバイス種別がタイプTY2であった場合、ドライバより得られるペン識別情報PID2のフォーマットは、第2フォーマットである。第2フォーマットでは、L1ビットのデバイス情報DIDと電子ペンの各々の筐体をユニークに識別するために設けられたL2ビットのユニーク情報UIDとが連結されている。従って、UID抽出部3301により、対応するドライバ312を通じて供給されるペン識別情報PID2から、電子ペンPごとに異なる番号情報を含むユニーク情報UIDを抽出する処理を行う(ステップS111)。この抽出は、図7に示すように、ペン識別情報PID2内のユニーク情報UIDを単純に取り出す処理である。UID抽出部3301は、図5に示すように、抽出されたユニーク情報UIDをタイプTY2に対応するユニーク情報UID2として、Nビット空間マッピング処理部3302に供給する。また、UID抽出部3301は、ペン識別情報PID2に含まれるデバイス情報DIDを、デバイス情報DID2としてデバイスタイプ記録部332に供給する処理も行う。 Next, when the device type is type TY2, the format of the pen identification information PID2 obtained from the driver is the second format. In the second format, the L1 bit device information DID and the L2 bit unique information UID provided for uniquely identifying each housing of the electronic pen are linked. Therefore, the UID extraction unit 3301 performs a process of extracting the unique information UID including the number information different for each electronic pen P from the pen identification information PID2 supplied through the corresponding driver 312 (step S111). As shown in FIG. 7, this extraction is a process of simply extracting the unique information UID in the pen identification information PID2. As shown in FIG. 5, the UID extraction unit 3301 supplies the extracted unique information UID to the N-bit space mapping processing unit 3302 as the unique information UID2 corresponding to the type TY2. The UID extraction unit 3301 also performs a process of supplying the device information DID included in the pen identification information PID2 to the device type recording unit 332 as the device information DID2.

次に、デバイス種別がタイプTY3であった場合には、得られるペン識別情報PIDは第3フォーマットである。第3フォーマットは、MビットのID空間を利用するものであってMビット全部で電子ペンの各々の筐体を識別するフォーマットにより記述されている。従って、ペン識別情報PID3の全体が、タイプTY3に対応するユニーク情報UID3としてNビット空間マッピング処理部3302に供給される(ステップS112)。 Next, when the device type is type TY3, the obtained pen identification information PID is in the third format. The third format utilizes the ID space of M bits and is described by a format that identifies each housing of the electronic pen by all the M bits. Therefore, the entire pen identification information PID3 is supplied to the N-bit space mapping processing unit 3302 as the unique information UID3 corresponding to the type TY3 (step S112).

最後に、デバイス種別がタイプTY4であった場合、得られるペン識別子が存在しない。得られるペン識別子が存在しない場合、Nビット空間マッピング処理部3302により、タイプTY4に対応するユニーク情報UID4としてNULL(所定のダミーデータ)が設定される(ステップS113)。これは、ペン識別情報PIDを記憶していないタイプTY4の電子ペンP(TY4)ついても他のタイプの電子ペンPと同様に取り扱えるようにするための措置であり、ユニーク情報UID4は、電子ペンPを一意に識別する機能を有しない。 Finally, if the device type is type TY4, there is no pen identifier to obtain. If the obtained pen identifier does not exist, the N-bit space mapping processing unit 3302 sets NULL (predetermined dummy data) as the unique information UID4 corresponding to the type TY4 (step S113). This is a measure to enable the electronic pen P (TY4) of the type TY4 that does not store the pen identification information PID to be handled in the same manner as the electronic pen P of other types, and the unique information UID4 is the electronic pen. It does not have a function to uniquely identify P.

ステップS111〜S114によりユニーク情報UIDを取得した後には、Nビット空間マッピング処理部3302により、ユニーク情報UIDをNビット空間にマッピングする処理が行われる(ステップS115)。このマッピング処理の結果、論理識別情報LIDが得られる。以下、図7を参照しながら詳しく説明する。 After the unique information UID is acquired in steps S111 to S114, the N-bit space mapping processing unit 3302 performs a process of mapping the unique information UID to the N-bit space (step S115). As a result of this mapping process, the logical identification information LID is obtained. Hereinafter, a detailed description will be given with reference to FIG. 7.

マッピング対象となる空間のビット数は特に限定されないが、図7では64ビットとしている。マッピング処理は、次の第1ステップと第2ステップを含む。 The number of bits in the space to be mapped is not particularly limited, but is set to 64 bits in FIG. The mapping process includes the following first and second steps.

まず、第1ステップでは、ペン識別子のフォーマットによって異なるビット数のユニーク情報UID(第1フォーマットではK1(42)ビット、第2フォーマットではL1(35)ビット、第3フォーマットではM(48)ビット、タイプTY4のデバイスについては0ビット)のうち最長のビット数(48ビット)以上の1つのビット数LLEN(例では52ビット)が決定される。この決定は事前に1回実行されればよい。マスク処理あるいは分離処理により得られたユニーク情報UIDに対し、ビット数LLENになるように先頭に「0」であるパディングデータを付加することによって、各種フォーマットで得られたユニーク情報UIDをLLENビット(52ビット)の情報に統一する。 First, in the first step, the unique information UID of the number of bits that differs depending on the format of the pen identifier (K1 (42) bits in the first format, L1 (35) bits in the second format, M (48) bits in the third format, For a device of type TY4, one bit number LLEN (52 bits in the example) having the longest number of bits (48 bits) or more among 0 bits) is determined. This decision may be made once in advance. By adding padding data of "0" to the beginning of the unique information UID obtained by mask processing or separation processing so that the number of bits is LLEN, the unique information UID obtained in various formats can be added to the LLEN bit (LLEN bit). 52 bits) of information is unified.

次に、第2ステップにおいて、LLENビットのユニーク情報の先頭に、デバイス種別あるいはフォーマット種別を示すためのPLENビット(例では12ビット)の情報を付加する。図7の例では、4種類のデバイス種別を示す情報に対して、タイプTY1については「1」、タイプTY1については「2」、タイプTY3については「3」、タイプTY4については「4」を12ビットで設定している。尚、4つの情報を区別する場合は2ビットで足るが、12ビットとしているのはID空間ビット数として64ビットや128ビットなど2のべき乗に合わせるためである。 Next, in the second step, the information of the PLEN bit (12 bits in the example) for indicating the device type or the format type is added to the beginning of the unique information of the LLEN bit. In the example of FIG. 7, for information indicating four types of devices, "1" is used for type TY1, "2" is used for type TY1, "3" is used for type TY3, and "4" is used for type TY4. It is set with 12 bits. When distinguishing four pieces of information, 2 bits are sufficient, but 12 bits are used in order to match the number of ID space bits to a power of 2, such as 64 bits or 128 bits.

上記2つのステップを含むマッピング処理により、最終的に得られたLLENビット(52ビット)+PLENビット(12ビット)のNビット(64ビット)の情報が論理識別情報LIDとなる。タイプTY1〜TY4のそれぞれについて得られた論理識別情報LIDは、それぞれ論理識別情報LID1〜LID4として、Nビット空間マッピング処理部3302からLID変換部331内の切替部3310に供給される。 The N-bit (64-bit) information of the LLEN bit (52 bits) + PLEN bit (12 bits) finally obtained by the mapping process including the above two steps becomes the logical identification information LID. The logical identification information LIDs obtained for each of the types TY1 to TY4 are supplied as logical identification information LIDs 1 to LID4 from the N-bit space mapping processing unit 3302 to the switching unit 3310 in the LID conversion unit 331.

切替部3310は、アプリケーション100(図2参照)から供給されるメタデータ情報M_infに基づき、名前導出部3311、ハッシュ部3312、及びURN化部3313のいずれかを選択する(ステップS120)。この選択は、ユーザあるいはアプリケーション100の開発者のペン識別情報の公開に関する嗜好により事前に決定されるものである。そして、選択した機能部に対し、供給された論理識別情報LIDを出力するよう構成される。 The switching unit 3310 selects one of the name derivation unit 3311, the hash unit 3312, and the URN conversion unit 3313 based on the metadata information M_inf supplied from the application 100 (see FIG. 2) (step S120). This choice is predetermined by the preference of the user or the developer of the application 100 regarding the disclosure of pen identification information. Then, the supplied logical identification information LID is output to the selected functional unit.

名前導出部3311は、論理識別情報LIDを文字列に変換し、得た文字列を論理名LNとして出力する機能部である(ステップS121,S122)。アプリケーション100は、論理識別情報LIDと文字列とを対応付けるテーブルM_Tblを名前導出部3311に対して1つ供給する。ペン識別子のフォーマットとして、複数のフォーマットが混在する環境であったとしても、論理識別LIDは上述マッピング処理により単一の空間にマッピングされているため、アプリケーション100から供給するテーブルとしては1つのテーブルを供給することで足りる。名前導出部3311は、論理識別情報LIDと文字列との組が列挙されたテーブルM_Tblを受け付け、切替部3310から供給された論理識別情報LIDに対応する文字列をこのテーブルM_Tblから読み出すことにより、上記の変換を行う。尚、アプリケーション100側で名前導出部3311の変換を行う場合であっても、同様にアプリケーション100は、単一のフォーマットで記述した論理識別情報LIDのみを処理するルーチンのみを実装すればよいことになる。 The name derivation unit 3311 is a functional unit that converts the logical identification information LID into a character string and outputs the obtained character string as a logical name LN (steps S121 and S122). The application 100 supplies one table M_Tbl that associates the logical identification information LID with the character string to the name derivation unit 3311. Even in an environment where a plurality of formats are mixed as the pen identifier format, since the logical identification LID is mapped to a single space by the above mapping process, one table is used as the table supplied from the application 100. It is enough to supply. The name derivation unit 3311 receives the table M_Tbl in which the pairs of the logical identification information LID and the character string are listed, and reads the character string corresponding to the logical identification information LID supplied from the switching unit 3310 from this table M_Tbl. Perform the above conversion. Even when the name derivation unit 3311 is converted on the application 100 side, the application 100 also needs to implement only the routine for processing only the logical identification information LID described in a single format. Become.

図8(a)は、名前導出部3311に供給されるテーブルM_Tblの例を示す図である。同図に示すように、この場合の論理名LNを構成する文字列としては、ユーザ名を用いることができる。後にインクファイル40を再生する際に、人名によるストロークデータSDのフィルタリングを行うことが可能になる。また、複数の電子ペンP(論理識別情報LID)に同一のユーザ名を対応付けることで、一人の人間が複数の電子ペンPを使用して描いた複数のストロークデータSDを、1つのフィルタ条件によるフィルタリングでまとめて抽出することが可能になる。また、ペン識別情報がインクデータに含められ公開されることに抵抗を感じるユーザや、数値の羅列されたペン識別情報よりも、ペン識別情報を名前化した文字列を好むユーザの嗜好に対し、ペン識別情報とは異なる情報を出力することができる。 FIG. 8A is a diagram showing an example of the table M_Tbl supplied to the name derivation unit 3311. As shown in the figure, a user name can be used as the character string constituting the logical name LN in this case. Later, when the ink file 40 is played back, it becomes possible to filter the stroke data SD by a person's name. Further, by associating the same user name with a plurality of electronic pens P (logical identification information LID), a plurality of stroke data SDs drawn by one person using the plurality of electronic pens P can be subjected to one filter condition. It becomes possible to extract all at once by filtering. In addition, for users who are reluctant to include pen identification information in ink data and make it public, or for users who prefer a character string named pen identification information to pen identification information that lists numerical values. Information different from the pen identification information can be output.

ハッシュ部3312は、図8(b)に示すように、所定の一方向関数により論理識別情報LIDをハッシュ値に変換し、得たハッシュ値を論理名LNとして出力する機能部である(ステップS123,S124)。この場合、インクファイル40を再生する際にストロークデータSDのフィルタリングを行うためには、ハッシュ値によるフィルタ条件を指定することになる。こうすることで、論理識別情報LIDがユーザの目に触れなくなるため、ユーザに対して論理識別情報LIDを隠蔽することが可能になる。なお、ハッシュ部3312が用いる一方向関数としては、1つのハッシュ値に対して複数の論理識別情報LIDが対応する可能性(すなわち、いわゆる衝突が発生する可能性)を実用上ゼロにすることができるように設計されたものを用いることが好ましい。 As shown in FIG. 8B, the hash unit 3312 is a functional unit that converts the logical identification information LID into a hash value by a predetermined one-way function and outputs the obtained hash value as the logical name LN (step S123). , S124). In this case, in order to filter the stroke data SD when the ink file 40 is reproduced, a filter condition based on a hash value is specified. By doing so, the logical identification information LID is not visible to the user, so that the logical identification information LID can be hidden from the user. As a one-way function used by the hash unit 3312, the possibility that a plurality of logical identification information LIDs correspond to one hash value (that is, the possibility that a so-called collision occurs) can be practically zeroed. It is preferable to use one designed so that it can be used.

URN化部3313は、図8(c)にも示すように、所定のヘッダを付加することによって論理識別情報LIDをURN(Uniform Resource Name)に変換し、得たURNを論理名LNとして出力する機能部である(ステップS125,S126)。図8(c)の例では、本発明の論理識別情報LIDの体系に適合した電子ペンPであることを示す「urn:dev:wcm:」というヘッダを付している。このようにすることにより、論理識別情報LIDによって識別されるべき電子ペンPの範囲を限定することができ、本発明に係る論理識別情報LIDが付与されたインクデータであることを他の発明に係る論理識別情報が付与されたインクデータから区別可能になる。 As shown in FIG. 8C, the URN conversion unit 3313 converts the logical identification information LID into a URN (Uniform Resource Name) by adding a predetermined header, and outputs the obtained URN as a logical name LN. It is a functional unit (steps S125 and S126). In the example of FIG. 8C, a header of "urn: dev: wcm:" is added to indicate that the electronic pen P conforms to the system of the logical identification information LID of the present invention. By doing so, the range of the electronic pen P to be identified by the logical identification information LID can be limited, and the ink data to which the logical identification information LID according to the present invention is given can be applied to other inventions. It becomes possible to distinguish from the ink data to which the logical identification information is given.

デバイスタイプ記録部332は、アドレス空間統合部330から供給されるデバイス情報DIDに基づいてデバイス情報D_dscrを生成し、外部に出力する機能を有する。このデバイス情報D_dscrは、例えば論理名LNに付加されることにより、後段の処理において論理名LNの一部として取り扱うことができる。こうすることで、後述するインクファイル40の再生の際、フィルタ情報の一部としてデバイス情報DIDを使用することが可能になる。 The device type recording unit 332 has a function of generating device information D_dscr based on the device information DID supplied from the address space integration unit 330 and outputting it to the outside. By adding this device information D_dscr to, for example, the logical name LN, it can be handled as a part of the logical name LN in the subsequent processing. By doing so, the device information DID can be used as a part of the filter information when playing back the ink file 40 described later.

以上、論理名LNの生成処理について説明した。次に、図3のステップS23に示した順序確認処理について、図9〜図11を参照しながら説明する。なお、ステップS33で行われる順序確認処理も同様の処理である。 The process of generating the logical name LN has been described above. Next, the order confirmation process shown in step S23 of FIG. 3 will be described with reference to FIGS. 9 to 11. The order confirmation process performed in step S33 is the same process.

<順序確認処理>
以下では、図10の例を参照しながら、順序確認処理を説明する。2つのストロークの先後関係は2つの図形オブジェクトのどちらを前景とするかどちらを背景と定めるかのように単純な話ではない。ストロークの重畳関係においては、2つのストロークが交差する図中破線枠IS1で示す交差する位置での重畳関係を調べる必要がある。図10の例では、2種類の電子ペンP,Pが同時に使用される。図10(b)に示すように、電子ペンPの軌跡は座標A1〜A4によって表され、電子ペンPの軌跡は座標B1〜B4によって表される。図10(a)に示すように、電子ペンPの軌跡と電子ペンPの軌跡は交差しており、その交点では、電子ペンPの軌跡が最前面に配置されている。このような配置は、電子ペンPが交点を通過するタイミングが、電子ペンPが交点を通過するタイミングに比べて後の時刻になった場合に発生する。
<Order confirmation process>
Hereinafter, the order confirmation process will be described with reference to the example of FIG. The relationship between the front and back of the two strokes is not as simple as determining which of the two graphic objects is the foreground and which is the background. In the overlapping relationship of strokes, it is necessary to investigate the overlapping relationship at the intersecting positions indicated by the broken line frame IS1 in the figure where the two strokes intersect. In the example of FIG. 10, two kinds of electronic pen P A, the P B are used simultaneously. As shown in FIG. 10 (b), the locus of the electronic pen P A is represented by the coordinate Al to A4, the locus of the electronic pen P B is represented by coordinates B1 to B4. As shown in FIG. 10 (a), the locus of the trajectory and electronic pen P B of the electronic pen P A is crossed, at the intersection, the locus of the electronic pen P A is placed on top. Such an arrangement, the timing at which the electronic pen P A passes through the intersection point occurs when the electronic pen P B becomes time later than the timing when passing through the intersection.

図3に示す処理フローにおいて、2本の電子ペンP,Pがともにペンダウン状態Pdownになったとすると、何個のストロークが同時に開始されているかを示す変数CSが2となる。すると、電子ペンP,Pがともにペンムーブト状態Pmvdを維持している間、ステップS22の判定結果が肯定となるため、電子ペンP,PのそれぞれについてステップS21で新たなポイントデータPDが取得される都度、ステップS23の順序確認処理が行われることになる。 In the processing flow shown in FIG. 3, two of the electronic pen P A, when it is assumed that P B becomes both pen-down state Pdown, variable CS indicating how many strokes are started simultaneously is two. Then, while the electronic pen P A, the P B are both maintained Penmubuto state Pmvd, since the determination result of step S22 is positive, the electronic pen P A, P new point data PD for each at step S21 in B Is acquired, the order confirmation process of step S23 is performed.

図9には、図3のステップS21において電子ペンPのi番目の座標Aiが取得された場合を示している(ステップS231)。この場合、入力処理部31は、新たに取得された座標Aiと、電子ペンPに関してひとつ前に取得されていた座標Ai−1とを結ぶ線分によって示されるストロークセグメント(ストロークの一部分)が、現在同時に入力されている他のストロークについて既に入力されたストロークセグメントと交差するか否かを判定する(ステップS232)。この判定は、既存の全てのストロークと現在のストロークとが交差するかの判定ではなく、現在同時に入力されている他のストロークに限って行われる。図10の例では、i=2,4の場合には判定結果が否定となる一方、i=3の場合には、座標B2と座標B3を結ぶ線分によって示されるストロークセグメントが既に存在し、このストロークセグメントと座標A3と座標A2を結ぶ線分によって示されるストロークセグメントとが交差しているため、判定結果は肯定となる。 FIG 9 shows a case where the i-th coordinates Ai of the electronic pen P A is obtained in step S21 in FIG. 3 (step S231). In this case, the input processing unit 31, and the newly acquired coordinates Ai, stroke segment indicated by a line connecting the coordinates Ai-1 which has been acquired before one respect electronic pen P A (a portion of the stroke) is , It is determined whether or not the other strokes currently input at the same time intersect with the already input stroke segment (step S232). This determination is not for determining whether all existing strokes intersect with the current stroke, but only for other strokes that are currently being input at the same time. In the example of FIG. 10, when i = 2 and 4, the determination result is negative, while when i = 3, the stroke segment indicated by the line segment connecting the coordinates B2 and the coordinates B3 already exists. Since this stroke segment intersects with the stroke segment indicated by the line segment connecting the coordinates A3 and the coordinates A2, the determination result is affirmative.

ステップS232で否定判定が得られた場合には、順序確認処理が終了する。一方、ステップS232で肯定判定が得られた場合には、変数uorderが1インクリメントされ(ステップS233)、さらに、新たな変数uorderにより順序情報Uorder(PID)が更新される(ステップS234)。この場合のペン識別情報PIDは、電子ペンPのペン識別情報PIDである。 If a negative determination is obtained in step S232, the order confirmation process ends. On the other hand, if an affirmative determination is obtained in step S232, the variable auder is incremented by 1 (step S233), and the order information uider (PID) is updated by the new variable auder (step S234). Pen identification information PID in this case is a pen identification information PID of the electronic pen P A.

図10(c)は、以上の順序確認処理の結果、図3のステップS24で各座標に対応付けられる順序情報Uorder(PID)の値を示している。図3のステップS15の処理により、同図に示すように、座標A1には「0」である順序情報Uorder(PID)が対応付けられ、座標B1には「1」である順序情報Uorder(PID)が対応付けられる。その後、電子ペンPの軌跡を示す座標B1〜B4については、いずれも「1」である変数uorder{PID)が対応付けられる。これに対し、電子ペンPの軌跡については、座標A3に至った時点以降、「2」である順序情報Uorder(PID)が対応付けられることになる。これにより、座標A1,A2、座標B1〜B4、座標A3,A4の順で描画されたことが整数値により保存されることになる。 FIG. 10C shows the value of the order information Older (PID) associated with each coordinate in step S24 of FIG. 3 as a result of the above order confirmation process. By the process of step S15 of FIG. 3, as shown in the figure, the coordinate A1 is associated with the order information UIDR (PID) which is “0”, and the coordinate B1 is associated with the order information UIDER (PID) which is “1”. ) Is associated. Then, for the coordinate B1~B4 indicating the trajectory of the electronic pen P B, both variable uorder is "1" {PID) is associated. In contrast, for the locus of the electronic pen P A, since it was reached coordinates A3, so that the order information Uorder is "2" (PID) is associated. As a result, the fact that the coordinates A1 and A2, the coordinates B1 to B4, and the coordinates A3 and A4 are drawn in this order is saved as an integer value.

なお、こうして保存される描画順に描画すると、必ずしも入力された時刻順を反映しない場合がある。例えば、本実施の形態による順序確認処理では、座標B4と座標A4のいずれが先に描画されたかについては検出されない。 Note that drawing in the drawing order saved in this way may not necessarily reflect the input time order. For example, in the order confirmation process according to the present embodiment, it is not detected which of the coordinates B4 and A4 is drawn first.

これに対し、例えば各座標に対応付けて、その座標に電子ペンPが到達した時刻(絶対時刻、又は、描画開始からの相対時刻)を示す情報を記憶することも可能である。この方法によれば、すべての座標間の先後関係を確実に保存することが可能になり、かつ、描画処理をアニメーションのように画面上で再現することも可能になる。尚、ストロークデータSDの先後関係をできる限り少ないデータ量で、適切に復元するという観点からは、上記のようにして順序情報Uorder(PID)を保存すれば十分である。これらはアプリケーション100の指定によって選択することも可能である。 On the other hand, for example, it is possible to store information indicating the time (absolute time or relative time from the start of drawing) when the electronic pen P arrives at each coordinate in association with each coordinate. According to this method, it is possible to surely save the pre-post relationship between all the coordinates, and it is also possible to reproduce the drawing process on the screen like an animation. From the viewpoint of appropriately restoring the front-back relationship of the stroke data SD with the smallest possible amount of data, it is sufficient to save the order information Older (PID) as described above. These can also be selected by specifying the application 100.

図11に示す他の例を参照しながら、再度、順序確認処理について説明する。この例は、2以上のストロークが同時に生成され、図中破線枠IS2、IS3で示す位置において、先後(上下)関係を入れ替えながら複数回交差する、複雑な例を示している。 The order confirmation process will be described again with reference to another example shown in FIG. This example shows a complicated example in which two or more strokes are generated at the same time and intersect multiple times at the positions indicated by the broken line frames IS2 and IS3 in the figure while exchanging the front-back (upper and lower) relationships.

この例において同時に使用される電子ペンPは、図10の例と同じく、電子ペンP,Pの2本である。図11(b)に示すように、電子ペンPの軌跡は座標A1〜A9によって表され、電子ペンPの軌跡は座標B1〜B5によって表される。図11(a)に示すように、電子ペンPの軌跡と電子ペンPの軌跡は、2箇所で交差している。1つ目は、座標A2と座標A3を結ぶ線分によって示されるストロークセグメントと、座標B2と座標B3を結ぶ線分によって示されるストロークセグメントとによって実現される交差であり、2つ目は、座標A7と座標A8を結ぶ線分によって示されるストロークセグメントと、座標B4と座標B5を結ぶ線分によって示されるストロークセグメントとによって実現される交差である。前者では電子ペンPの軌跡が最前面に配置され、後者では電子ペンPの軌跡が最前面に配置されている。 The electronic pens P used at the same time in this example are two electronic pens P A and P B , as in the example of FIG. As shown in FIG. 11 (b), the locus of the electronic pen P A is represented by the coordinate A 1 to A 9, the locus of the electronic pen P B is represented by coordinates B1 to B5. As shown in FIG. 11 (a), the locus of the trajectory and electronic pen P B of the electronic pen P A intersect at two points. The first is the intersection realized by the stroke segment indicated by the line segment connecting the coordinates A2 and A3 and the stroke segment indicated by the line segment connecting the coordinates B2 and the coordinates B3, and the second is the coordinates. It is an intersection realized by a stroke segment indicated by a line segment connecting A7 and coordinate A8 and a stroke segment indicated by a line segment connecting coordinate B4 and coordinate B5. In the former disposed trajectory forefront of the electronic pen P A, the latter is the locus of the electronic pen P B are arranged on top.

図10の例と同様、座標A1には「0」である順序情報Uorder(PID)が対応付けられ、座標B1には「1」である順序情報Uorder(PID)が対応付けられる。その後、電子ペンPについては座標B4まで、「1」である順序情報Uorder(PID)が対応付けられ続ける。これは、座標B4までの描画が行われる間に、電子ペンPのストロークセグメントが他の既存のストロークセグメントと交差する状態が発生しないからである。 Similar to the example of FIG. 10, the coordinate A1 is associated with the order information ordinate (PID) which is “0”, and the coordinate B1 is associated with the order information ordinate (PID) which is “1”. After that, the order information lord (PID) of "1" continues to be associated with the electronic pen P B up to the coordinate B4. This is because the stroke segment of the electronic pen P B does not intersect with other existing stroke segments while the drawing up to the coordinate B4 is performed.

一方、電子ペンPの軌跡については、座標A3に至った時点以降、「2」である順序情報Uorder(PID)が対応付けられることになる。これは、座標A2と座標A3を結ぶ線分によって示されるストロークセグメントが描画された時点で、その直下に、座標B2と座標B3を結ぶ線分によって示されるストロークセグメントが存在しているからである。その後、電子ペンPの軌跡を示す座標A3〜A9については、いずれも「2」である順序情報Uorder(PID)が対応付けられることになる。 On the other hand, the locus of the electronic pen P A, since it was reached coordinates A3, so that the order information Uorder is "2" (PID) is associated. This is because when the stroke segment indicated by the line segment connecting the coordinates A2 and the coordinate A3 is drawn, the stroke segment indicated by the line segment connecting the coordinates B2 and the coordinate B3 exists immediately below the stroke segment. .. Then, for the coordinate A3~A9 indicating the trajectory of the electronic pen P A, both would Uorder order information is "2" (PID) is associated.

電子ペンPの座標B5については、「3」である順序情報Uorder(PID)が対応付けられる。これは、座標B4と座標B5を結ぶ線分によって示されるストロークセグメントが描画された時点で、その直下に、座標A7と座標A8を結ぶ線分によって示されるストロークセグメントが存在しているからである。 With respect to the coordinate B5 of the electronic pen P B , the order information UIDR (PID) which is "3" is associated with the coordinate B5. This is because when the stroke segment indicated by the line segment connecting the coordinates B4 and B5 is drawn, the stroke segment indicated by the line segment connecting the coordinates A7 and the coordinates A8 exists immediately below the stroke segment. ..

以上の処理により、図11(c)に示すように、座標A1,A2、座標B1〜B4、座標A3〜A9、座標B5の順で描画されたことが保存される。 By the above processing, as shown in FIG. 11C, it is saved that the coordinates A1 and A2, the coordinates B1 to B4, the coordinates A3 to A9, and the coordinates B5 are drawn in this order.

上記のようにして保存される先後関係は、描画処理の重畳関係(どちらが上でどちらが下のレイヤで表示されるか)が発生する場合に限って、セグメント単位での重畳関係を表現するように簡易化されている。出力されたUorder(PID)は、多くの場合でストローク単位に与えられ、2つのストロークが同時発生した場合であってセグメント間が交差する稀な場合に限って順序情報が付加される。また、その値は交差した場合に限りインクリメントされる値をとるため、ポイントデータPDの符号化同様に差分符号を行うことでデータ量を小さくすることができる。 The pre-post relationship saved as described above is to express the superimposition relationship in segment units only when the superimposition relationship of the drawing process (which is displayed on the upper layer and which is displayed on the lower layer) occurs. It has been simplified. The output Order (PID) is given in stroke units in many cases, and order information is added only when two strokes occur at the same time and the segments intersect in rare cases. Further, since the value is incremented only when it intersects, the amount of data can be reduced by performing the difference code in the same manner as the coding of the point data PD.

図12(a)は、図11に示したストロークデータを含む1つのインクファイル内に格納される一連の情報を例示する図である。また、図12(b)は、(a)に示した一連の情報を順序情報Uorder(PID)によりソートしたものである。 FIG. 12A is a diagram illustrating a series of information stored in one ink file including the stroke data shown in FIG. Further, FIG. 12B shows a series of information shown in FIG. 12A sorted by order information Order (PID).

図12(b)に示すように、1つのインクファイル内には、順序情報Uorder(PID)ごとに、ストローク識別子Stroke_id(PID)、順序情報の保存単位、一連のポイントデータPD、及び論理名LN(入力デバイスを識別するための情報)が対応付けて格納される。なお、詳しくは後述するが、このうち論理名LNとストローク識別子Stroke_id(PID)の対応付けはメタデータブロック内に格納されるもので、その他の情報はストロークデータとしてインクファイル内に格納される。また、図12(a)(b)において黒太枠で囲った部分は、図11に示したストロークデータに対応する部分である。ここで、図11(c)ではUorder(PID)として「0」〜「3」の数字を利用していたが、図12では、前後に他のストロークデータが存在することを示すため、それぞれ「100」〜「103」としている。 As shown in FIG. 12B, in one ink file, the stroke identifier Stroke_id (PID), the storage unit of the sequence information, the series of point data PD, and the logical name LN are contained for each sequence information Older (PID). (Information for identifying the input device) is stored in association with each other. As will be described in detail later, the association between the logical name LN and the stroke identifier Stroke_id (PID) is stored in the metadata block, and other information is stored in the ink file as stroke data. Further, the portion surrounded by the thick black frame in FIGS. 12A and 12B is a portion corresponding to the stroke data shown in FIG. Here, in FIG. 11C, the numbers “0” to “3” were used as the Older (PID), but in FIG. 12, in order to show that there are other stroke data before and after, each “ It is set to "100" to "103".

図12において順序情報の保存単位が「ストローク」となっているレコードは、ユーザによって1回分のストロークが実行される間に順序情報Uorder(PID)の変更がなかったストロークデータを示している。一方、順序情報の保存単位が「ストロークセグメント」となっているレコードは、ユーザによって1回分のストロークが実行される間に順序情報Uorder(PID)の変更があったストロークデータを示している。後者の場合、図12に示すように、順序情報Uorder(PID)が変更になる前の一連のポイントデータPDと後の一連のポイントデータPDとが、インクファイル内に別レコードとして格納される。 The record in which the storage unit of the sequence information is "stroke" in FIG. 12 indicates the stroke data in which the sequence information Order (PID) is not changed while the user executes one stroke. On the other hand, the record in which the storage unit of the sequence information is the "stroke segment" indicates the stroke data in which the sequence information Order (PID) is changed while the user executes one stroke. In the latter case, as shown in FIG. 12, a series of point data PDs before the order information ordinate (PID) is changed and a series of point data PDs after that are stored as separate records in the ink file.

以上、順序確認処理について説明した。次に、図4のステップS40に示したインクファイル生成処理について、図13〜図19を参照しながら説明する。 The order confirmation process has been described above. Next, the ink file generation process shown in step S40 of FIG. 4 will be described with reference to FIGS. 13 to 19.

<インクファイル生成処理>
図13は、図2に示したインクファイル生成部37が行うインクファイル生成処理の処理フロー図である。本発明では、インクファイル40は例えばRIFF(Resource Interchange File Format)などの汎用メタファイル形式によって生成される。また、以下の例では、ストロークデータSDは、ポイントデータPDに差分符号化を行う第1の符号化方式によって符号化され、上述したメタデータブロックは、UTF−8などメタデータチャンクに含まれたXMLフォーマットが指定する文字列(文字)の符号化方式によって符号化される。
<Ink file generation process>
FIG. 13 is a processing flow diagram of the ink file generation process performed by the ink file generation unit 37 shown in FIG. In the present invention, the ink file 40 is generated by a general-purpose metafile format such as RIFF (Resource Interchange File Format). Further, in the following example, the stroke data SD is encoded by the first coding method that performs differential coding on the point data PD, and the above-mentioned metadata block is included in a metadata chunk such as UTF-8. It is encoded by the encoding method of the character string (character) specified by the XML format.

図13に示すように、インクファイル生成部37はまず、空のインクファイル40を生成する(ステップS401)。 As shown in FIG. 13, the ink file generation unit 37 first generates an empty ink file 40 (step S401).

図14は、RIFFによって生成されるインクファイル40の構造を示している。同図に示すように、RIFFによるインクファイル40は、先頭から末尾にかけて、それぞれ4バイトの整数倍のサイズを有する領域A1〜A9が順に並べられた構造を有している。 FIG. 14 shows the structure of the ink file 40 generated by RIFF. As shown in the figure, the ink file 40 by RIFF has a structure in which regions A1 to A9 each having a size of an integral multiple of 4 bytes are arranged in order from the beginning to the end.

領域A1〜A9に格納されるデータの具体的な内容は次のとおりである。すなわち、まず領域A1には、このインクファイル40がRIFFによって生成されたものであることを示す「R」「I」「F」「F」の4文字が配置される。また、領域A2には、このインクファイル40のサイズを示す数値が配置される。領域A1,A2のサイズはそれぞれ4バイトである。領域A2内に配置されるファイルサイズは、インクファイル40の再生装置(例えば、図1に示したデジタルインク再生装置50)がインクファイル40の終端位置を把握するために利用される。 The specific contents of the data stored in the areas A1 to A9 are as follows. That is, first, four characters "R", "I", "F", and "F" indicating that the ink file 40 is generated by RIFF are arranged in the area A1. In addition, a numerical value indicating the size of the ink file 40 is arranged in the area A2. The sizes of the regions A1 and A2 are 4 bytes each. The file size arranged in the area A2 is used by the reproduction device of the ink file 40 (for example, the digital ink reproduction device 50 shown in FIG. 1) to grasp the terminal position of the ink file 40.

領域A3には、領域A4〜A9に格納されているインクデータの全体が、本発明のインクデータ出力方法によって記述されたものであることを示す4文字(例えば「W」「I」「L」「L」)の4文字が配置される。領域A3のサイズも4バイトである。領域A4〜A9内のデータを例えばInkMLなどの他の形式で記述する際には、領域A3の格納内容は当然、上記とは異なるものとなる。 In the area A3, four characters (for example, "W", "I", "L") indicating that the entire ink data stored in the areas A4 to A9 are described by the ink data output method of the present invention. The four letters "L") are arranged. The size of the area A3 is also 4 bytes. When the data in the areas A4 to A9 is described in another format such as InkML, the stored contents of the area A3 are naturally different from the above.

領域A4には、領域A5,A6に格納されているデータが図15、図16で説明するストロークデータフォーマットで生成されたインクチャンクに関するものであることを示す文字列(例えば「I」「N」「K」「1」)の4文字が配置される。領域A4のサイズも4バイトである。 In the area A4, character strings (for example, "I" and "N") indicating that the data stored in the areas A5 and A6 are related to the ink chunks generated by the stroke data formats described in FIGS. 15 and 16 are used. The four characters "K" and "1") are arranged. The size of the area A4 is also 4 bytes.

領域A5には、領域A6のサイズを示すデータであるインクチャンクサイズが格納される。領域A5のサイズも4バイトである。このインクチャンクサイズは、インクファイル40の再生装置(例えば、図1に示したデジタルインク再生装置50)が領域A6の終端位置を把握するために利用される。 Ink chunk size, which is data indicating the size of the area A6, is stored in the area A5. The size of the area A5 is also 4 bytes. This ink chunk size is used by the reproduction device of the ink file 40 (for example, the digital ink reproduction device 50 shown in FIG. 1) to grasp the terminal position of the region A6.

領域A6には、1以上のストロークデータSDを含むインクチャンクが格納される。領域A9のサイズは、4バイトの整数倍である。インクチャンクのデータ量がちょうど4バイトの整数倍でない場合には、末尾に所定のパディングデータが挿入される。領域A6の具体的な格納内容については、後ほど図15〜図17を参照しながら詳しく説明する。 Ink chunks including one or more stroke data SDs are stored in the area A6. The size of region A9 is an integral multiple of 4 bytes. If the amount of ink chunk data is not exactly an integral multiple of 4 bytes, the predetermined padding data is inserted at the end. The specific storage contents of the area A6 will be described in detail later with reference to FIGS. 15 to 17.

領域A7には、領域A8,A9に格納されているデータがXML形式のうち特にXMP形式で記述されたものであることを示す「X」「M」「P」「−」の4文字が配置される。領域A7のサイズも4バイトであり、「−」は、領域A7のサイズを4バイトにするためのパディングデータである。 In the area A7, four characters "X", "M", "P", and "-" indicating that the data stored in the areas A8 and A9 are described in the XML format particularly in the XMP format are arranged. Will be done. The size of the area A7 is also 4 bytes, and “−” is padding data for making the size of the area A7 4 bytes.

領域A8には、領域A9のサイズを示すデータであるメタデータチャンクサイズが格納される。領域A8のサイズも4バイトである。このメタデータチャンクサイズは、インクファイル40の再生装置(例えば、図1に示したデジタルインク再生装置50)が領域A9の終端位置を把握するために利用される。 The area A8 stores a metadata chunk size which is data indicating the size of the area A9. The size of the area A8 is also 4 bytes. This metadata chunk size is used by the reproduction device of the ink file 40 (for example, the digital ink reproduction device 50 shown in FIG. 1) to grasp the terminal position of the area A9.

領域A9には、上述したメタデータブロックを含むメタデータチャンクが格納される。領域A9のサイズは、4バイトの整数倍である。メタデータチャンクのデータ量がちょうど4バイトの整数倍でない場合には、末尾に所定のパディングデータが挿入される。領域A9の具体的な格納内容については、後ほど図18及び図19を参照しながら詳しく説明する。 The area A9 stores a metadata chunk including the above-mentioned metadata block. The size of region A9 is an integral multiple of 4 bytes. If the amount of data in the metadata chunk is not exactly an integral multiple of 4 bytes, the given padding data is inserted at the end. The specific storage contents of the area A9 will be described in detail later with reference to FIGS. 18 and 19.

図13に戻る。インクファイル生成部37は、ステップS401で空のインクファイル40を生成した後、本発明に係るインクデータ出力方法が実行されたことを示す4文字「W」「I」「L」「L」を含めるとともに、図2に示すように、供給されたストロークデータフォーマットS_Fmtのタイプを識別するための4文字「I」「N」「K」「1」をASCII符号により含める(ステップS402)。 Return to FIG. After generating the empty ink file 40 in step S401, the ink file generation unit 37 outputs the four characters "W", "I", "L", and "L" indicating that the ink data output method according to the present invention has been executed. In addition, as shown in FIG. 2, the four characters "I", "N", "K", and "1" for identifying the type of the supplied stroke data format S_Fmt are included by the ASCII code (step S402).

図15(a)は、ストロークデータフォーマットS_Fmtの値として「I」「N」「K」「1」により識別される第1のフォーマット(符号化方法)の一例を示す図である。この例によるストロークデータフォーマットS_Fmtは、ドキュメント(Document)、スタイル(Style)、ストローク(Stroke)の3つのメッセージオブジェクトを有して構成される。ドキュメントであるメッセージオブジェクトは1つのインクチャンクを表しており、ビューボックス(viewBox)、整数化精度情報(decimalPrecision)、スタイル(Styles)、ストローク(Strokes)の各属性と、それぞれのキーを表す数字(「1」〜「4」)を含んで構成される。スタイルであるメッセージオブジェクトは、ドキュメントであるメッセージオブジェクト内のスタイル属性の具体的な内容を表しており、ここでは線幅(strokeWidth)属性と、そのキーを表す数字を含んで構成される。ストロークであるメッセージオブジェクトは、ドキュメントであるメッセージオブジェクト内のストローク属性の具体的な内容を表しており、ポイントデータPDに対応するポイント(point)、ストロークをユニーク識別するためのストローク識別情報(stroke_id)の各属性と、それぞれのキーを表す数字を含んで構成される。なお、これらの属性のうち「repeated」と付記されているものは、同じ属性を複数個含んでよいことを示している。 FIG. 15A is a diagram showing an example of a first format (coding method) identified by “I”, “N”, “K”, and “1” as the value of the stroke data format S_Fmt. The stroke data format S_Fmt according to this example is configured to have three message objects of Document, Style, and Stroke. The message object that is the document represents one ink chunk, and each attribute of view box, integer precision information (decimal Precision), styles (Styles), strokes (Strokes), and the number representing each key ( It is configured to include "1" to "4"). The message object, which is a style, represents the specific content of the style attribute in the message object, which is a document, and is composed of a strokeWidth attribute and a number representing the key thereof. The message object that is a stroke represents the specific content of the stroke attribute in the message object that is a document, and the point corresponding to the point data PD and the stroke identification information (stroke_id) for uniquely identifying the stroke. It is composed of each attribute of the above and a number representing each key. Of these attributes, those marked with "repeated" indicate that the same attribute may be included more than once.

図15(b)は、各属性の具体的な表現形式を示す図である。同図に示すように、各属性は、キーを表す8ビットのビット列と、値を表す可変長(ただし、8ビットの整数倍)のビット列とによって表される。キーを表すビット列は、キー(この例では「1」)を表す5ビットのビット列aと、データタイプを示す3ビットのビット列bとにより構成される。値を表すビット列は、値を表現するために必要な数の可変長バイト数で示される。整数型の場合、値の絶対値が大きい程大きなバイト数が必要となる符号化方法が利用される。値を表すビット列は、格納すべきビット列を先頭から順に7ビットずつのビット列に分解し、これらの順番を入れ替えて後ろ側から順に並べてなるビット列cによって構成される。なお、7ビットずつのビット列それぞれの先頭には、ビット列cの終了を示すためのビットc1が付加される。ビットc1は、「0」である場合にビット列cの終了を示す。 FIG. 15B is a diagram showing a specific expression format of each attribute. As shown in the figure, each attribute is represented by an 8-bit bit string representing a key and a variable-length (however, an integral multiple of 8 bits) bit string representing a value. The bit string representing the key is composed of a 5-bit bit string a representing the key (“1” in this example) and a 3-bit bit string b indicating the data type. The bit string representing the value is represented by the number of variable-length bytes required to represent the value. In the case of an integer type, a coding method is used in which the larger the absolute value of the value, the larger the number of bytes required. The bit string representing the value is composed of a bit string c in which the bit strings to be stored are decomposed into bit strings of 7 bits in order from the beginning, and the order of these is changed and arranged in order from the back side. A bit c1 for indicating the end of the bit string c is added to the beginning of each bit string of 7 bits each. Bit c1 indicates the end of the bit string c when it is "0".

ストローク属性のように階層構造を有する属性については、図15(c)に示すように、値の中にキー(k)と値(V)の対が複数個配置される、という構造により記述される。例えば図15(c)の例では、キーが「4」であるストローク属性の値に、複数のポイント属性(キー=「1」)と、1つのストローク識別情報属性(キー=「2」)とが含まれている。 An attribute having a hierarchical structure such as a stroke attribute is described by a structure in which a plurality of pairs of a key (k) and a value (V) are arranged in a value as shown in FIG. 15 (c). To. For example, in the example of FIG. 15 (c), a plurality of point attributes (key = "1") and one stroke identification information attribute (key = "2") are added to the value of the stroke attribute whose key is "4". It is included.

図13に戻る。インクファイル生成部37は、図14のA4の部分にストロークデータフォーマットS_Fmtを識別する文字列をASCII符号により含めた後、このストロークデータフォーマットS_Fmtに従う符号化方式(第1のフォーマット)により、インクデータ保持部34に蓄積されている一連のストロークデータSDを符号化する処理を行う(ステップS403,S404)。図3及び図4に示した処理フローから明らかなように、インクデータ保持部34内には、1番目からstroke_id−1番目までのストロークデータSDが格納されている。インクファイル生成部37は、これらのストロークデータSDを、ストロークデータフォーマットS_Fmtに従って順次符号化する。 Return to FIG. The ink file generation unit 37 includes a character string identifying the stroke data format S_Fmt in the A4 portion of FIG. 14 by ASCII code, and then uses an encoding method (first format) according to the stroke data format S_Fmt to generate ink data. A process of encoding a series of stroke data SD stored in the holding unit 34 is performed (steps S403 and S404). As is clear from the processing flows shown in FIGS. 3 and 4, the stroke data SD from the first to the stroke_id-1st is stored in the ink data holding unit 34. The ink file generation unit 37 sequentially encodes these stroke data SDs according to the stroke data format S_Fmt.

第1のフォーマットによるストロークデータSDの符号化について、より詳しく説明する。図16は、図13のステップS404に示したストロークデータ符号化処理の処理フロー図である。同図に示すように、ストロークデータ符号化処理を行うインクファイル生成部37は、まず初めに、図2に示したアプリケーション100からビューボックス属性の値を取得し、ビューボックス属性のキー(1)とともに、図15(b)に示した形式で符号化する(ステップS4041)。続いて、インクファイル生成部37は、アプリケーション100から整数化精度情報属性の値を取得し、整数化精度情報属性のキー(2)とともに、図15(b)に示した形式で符号化する(ステップS4042)。 The coding of the stroke data SD by the first format will be described in more detail. FIG. 16 is a processing flow diagram of the stroke data coding process shown in step S404 of FIG. As shown in the figure, the ink file generation unit 37 that performs the stroke data coding process first acquires the value of the view box attribute from the application 100 shown in FIG. 2, and the key (1) of the view box attribute. At the same time, it is encoded in the format shown in FIG. 15 (b) (step S4041). Subsequently, the ink file generation unit 37 acquires the value of the integerization accuracy information attribute from the application 100, and encodes it together with the key (2) of the integerization accuracy information attribute in the format shown in FIG. 15 (b). Step S4042).

次に、インクファイル生成部37は、スタイル属性のキー(3)と値を符号化する(ステップS4043)。ここで、スタイル属性は、ストロークデータフォーマットS_Fmt内の記述(図15(a)参照)から理解されるように、階層構造を有している。したがって、スタイル属性の値には、図15(c)に示した例と同様、下層に位置する線幅属性のキー(1)と値が格納される。線幅属性の値としては、図3のステップS12において入力処理部31が取得したスタイル情報が使用される。 Next, the ink file generation unit 37 encodes the key (3) and the value of the style attribute (step S4043). Here, the style attribute has a hierarchical structure as can be understood from the description in the stroke data format S_Fmt (see FIG. 15A). Therefore, in the value of the style attribute, the key (1) and the value of the line width attribute located in the lower layer are stored as in the example shown in FIG. 15 (c). As the value of the line width attribute, the style information acquired by the input processing unit 31 in step S12 of FIG. 3 is used.

続いて、インクファイル生成部37は、ストローク属性のキー(4)を符号化した後(ステップS4044)、ストローク属性の値の符号化を実施する(ステップS4045〜S4052)。具体的に説明すると、まずストロークデータSD内に含まれる一例の座標のそれぞれに関して、ポイント属性のキー(1)を符号化し(ステップS4045)、次いで、ポイント属性の値の符号化を行う(ステップS4046〜S4048)。ポイント属性の値は、ポイントデータPD及び順序情報Uorder(PID)の組み合わせによって構成される。 Subsequently, the ink file generation unit 37 encodes the stroke attribute key (4) (step S4044), and then encodes the stroke attribute value (steps S4045 to S4052). Specifically, first, the key (1) of the point attribute is encoded (step S4045) for each of the coordinates of the example included in the stroke data SD, and then the value of the point attribute is encoded (step S4046). ~ S4048). The value of the point attribute is composed of a combination of the point data PD and the order information Older (PID).

ポイント属性の値の符号化は、具体的には次のようにして実行される。すなわち、まず、ステップS4042で取得した整数化精度情報属性の値を用いる次の式(1)によって、x座標及びy座標のそれぞれを整数値に変換する(ステップS4046)。なお、式(1)中のxfloat,yfloatはそれぞれ、浮動小数点数型である変換前のx座標及びy座標を示し、xint,yintはそれぞれ、整数型である変換後のx座標及びy座標を示し、decimalPrecisionは、整数化精度情報属性の値を示している。また、右辺の先頭にある(int)の表記は、整数部のみを取り出す関数を表している。 Specifically, the coding of the value of the point attribute is executed as follows. That is, first, each of the x-coordinate and the y-coordinate is converted into an integer value by the following equation (1) using the value of the integerization accuracy information attribute acquired in step S4042 (step S4046). Note that x float and y float in Eq. (1) indicate the x-coordinate and y-coordinate before conversion, which are floating-point number types, respectively, and x int and y int are the x-coordinates after conversion, which are integer types, respectively. And y-coordinates are shown, and digitalPrecision shows the value of the integerization accuracy information attribute. In addition, the notation (int) at the beginning of the right side represents a function that extracts only the integer part.

Figure 0006790208
Figure 0006790208

続いて、x座標及びy座標のそれぞれの差分値を導出する(ステップS4047)。この差分値の導出は、次の式(2)及び式(3)に示すように、0番目の座標についてはその座標の値を差分値として出力し、i番目の座標については、1つ前に位置するi−1番目の座標からi番目の座標の値を減じてなる値を差分値として出力することによって行う。なお、式(2)及び式(3)中のxdiff,ydiffは、x座標及びy座標のそれぞれについて導出される差分値を示している。このように整数値化したうえで差分値を求めて符号化するのは、図15(b)で説明した可変バイト符号など可変長符号化方法をもちいることにより、ある符号(例えば0)の発生確率に偏りをもたせたエントロピー符号化を行うことでストロークデータSDのデータ量を削減するためである。 Subsequently, the difference values of the x-coordinate and the y-coordinate are derived (step S4047). To derive this difference value, as shown in the following equations (2) and (3), the value of that coordinate is output as the difference value for the 0th coordinate, and the i-th coordinate is one before. It is performed by outputting a value obtained by subtracting the value of the i-th coordinate from the i-1st coordinate located at 1 as a difference value. Note that x diff and y diff in the equations (2) and (3) indicate the difference values derived for each of the x coordinate and the y coordinate. The difference value is obtained and coded after being converted into an integer value in this way by using a variable length coding method such as the variable byte code described with reference to FIG. 15B, so that a certain code (for example, 0) can be coded. This is to reduce the amount of stroke data SD by performing entropy coding with a bias in the occurrence probability.

Figure 0006790208
Figure 0006790208

差分値の導出が完了したら、インクファイル生成部37は、導出した差分値及び順序情報Uorder(PID)の符号化を行う(ステップS4048)。この符号化の詳細は、図15(b)(c)を参照して説明したとおりである。 When the derivation of the difference value is completed, the ink file generation unit 37 encodes the derived difference value and the order information Older (PID) (step S4048). The details of this coding are as described with reference to FIGS. 15 (b) and 15 (c).

インクファイル生成部37は、ステップS4045〜S4048の処理を、ストロークデータSD内の全ポイントデータPDについて繰り返す(ステップS4050)。そして、全ポイントデータPDについて処理が完了した後、ストローク識別情報属性のキー(2)を符号化し(ステップS4051)、さらに、ストローク識別情報属性の値として、を符号化する(ステップS4052)。これにより、ストローク識別情報属性の値は、インクファイル40内においてストロークデータSDを一意に識別する情報となる。以上の処理により、ストローク属性のキーと値の符号化が完了する。その後、インクファイル生成部37は、符号化した一連のデータを出力する(ステップS4053)。 The ink file generation unit 37 repeats the processes of steps S4045 to S4048 for all the point data PDs in the stroke data SD (step S4050). Then, after the processing is completed for all the point data PDs, the key (2) of the stroke identification information attribute is encoded (step S4051), and further, is encoded as the value of the stroke identification information attribute (step S4052). As a result, the value of the stroke identification information attribute becomes information that uniquely identifies the stroke data SD in the ink file 40. By the above processing, the coding of the stroke attribute key and value is completed. After that, the ink file generation unit 37 outputs a series of encoded data (step S4053).

図13に戻る。すべてのストロークデータSDの符号化が完了した後、インクファイル生成部37は、ステップS402,S404での符号化処理によって得られた一連のデータをインクファイル40の領域A6(図14参照)内に書き込む(ステップS405)。これにより、インクチャンクの生成が完了する。 Return to FIG. After the coding of all the stroke data SDs is completed, the ink file generation unit 37 puts a series of data obtained by the coding processing in steps S402 and S404 into the area A6 (see FIG. 14) of the ink file 40. Write (step S405). This completes the generation of ink chunks.

ここで、図15及び図16で説明した第1のフォーマット(第1の符号化方法)と異なるフォーマット(符号化方法)の例として、図17に、InkML形式を用いた場合のストロークデータSDを示す。この場合、図14に示した領域A4には、例えば「I」「N」「K」「2」のように、第1のフォーマットを利用する場合とは異なる文字列が格納される。InkML形式のストロークデータSDは、XML形式で記述され、図17に示すように、traceタグ内に一連のポイントデータPDを順に配置することによって記述される。なお、traceタグ内の各ポイントデータPDはカンマ(,)によって区切られており、各ポイントデータPDは、X座標、Y座標、スタイル情報(この例では筆圧情報)、及び順序情報Uorder(PID)がスペースで区切られた形式で記述される。ただし、図17の例では、順序情報Uorder(PID)については図示していない。図17には、それぞれのストローク識別情報属性が「sd0」〜「sd4」である5つのストロークデータSD0〜SD4を示している。InkML形式のストロークデータSDは、XMLを構成する文字がUTF−8等の符号化処理によって符号化された状態で、インクファイル40の領域A6内に格納される。 Here, as an example of a format (coding method) different from the first format (first coding method) described with reference to FIGS. 15 and 16, the stroke data SD when the InkML format is used is shown in FIG. Shown. In this case, the area A4 shown in FIG. 14 stores a character string different from the case of using the first format, such as "I", "N", "K", and "2". The stroke data SD in the InkML format is described in the XML format, and is described by arranging a series of point data PDs in order in the trace tag as shown in FIG. Each point data PD in the trace tag is separated by a comma (,), and each point data PD has X coordinate, Y coordinate, style information (pen pressure information in this example), and order information Order (PID). ) Is described in a space-separated format. However, in the example of FIG. 17, the order information Order (PID) is not shown. FIG. 17 shows five stroke data SD0 to SD4 whose stroke identification information attributes are “sd0” to “sd4”. The stroke data SD in the InkML format is stored in the area A6 of the ink file 40 in a state where the characters constituting the XML are encoded by a coding process such as UTF-8.

図13に戻る。インクチャンクの生成が完了した後、インクファイル生成部37は、論理名LNによってストロークデータSDをグループ化する処理を行う(ステップS406)。なお、このグループ化処理は、メタデータチャンクのデータ量を削減するために行うものである。 Return to FIG. After the generation of the ink chunk is completed, the ink file generation unit 37 performs a process of grouping the stroke data SD by the logical name LN (step S406). Note that this grouping process is performed in order to reduce the amount of data in the metadata chunk.

<グループ化処理>
図18は、図13のステップS406に示したストロークデータグループ化処理の処理フロー図である。この処理は、同図に示すように、インクデータ保持部34に蓄積されている1番目からstroke_id−1番目までの論理名LNのそれぞれについて、順次行われる(ステップS4061)。具体的に説明すると、インクファイル生成部37はまず、インクデータ保持部34からi番目の論理名LNを取得し(ステップS4062)、その論理名LNにグループを割り当て済みか否かを判定する(ステップS4063)。割り当て済みでなければ(ステップS4063の否定判定)、インクファイル生成部37は新たなグループを生成し、ステップS4062で取得した論理名LNに割り当てる(ステップS4064)。ステップS4063で割り当て済みと判定した場合、及び、ステップS4064の処理が終了した場合には、ステップS4062で取得した論理名LNに割り当てられたグループに、インクデータ保持部34に保持されるi番目のストロークデータSDを関連付ける(ステップS4065)。以上の処理をstroke_id−1番目の論理名LNまで終了した後には、各ストロークデータSDがいずれかのグループに関連付けられた状態となる。
<Grouping process>
FIG. 18 is a processing flow diagram of the stroke data grouping process shown in step S406 of FIG. As shown in the figure, this process is sequentially performed for each of the logical name LNs from the first to the stroke_id-1th stored in the ink data holding unit 34 (step S4061). Specifically, the ink file generation unit 37 first acquires the i-th logical name LN from the ink data holding unit 34 (step S4062), and determines whether or not a group has been assigned to the logical name LN (step S4062). Step S4063). If it has not been assigned (negative determination in step S4063), the ink file generation unit 37 generates a new group and assigns it to the logical name LN acquired in step S4062 (step S4064). When it is determined in step S4063 that the data has been assigned, and when the process in step S4064 is completed, the group assigned to the logical name LN acquired in step S4062 is the i-th group held in the ink data holding unit 34. The stroke data SD is associated (step S4065). After the above processing is completed up to stroke_id-1st logical name LN, each stroke data SD is in a state associated with any group.

図13に戻る。ストロークデータグループ化処理が終了した後、インクファイル生成部37は、ステップS406で生成した各グループについて、論理名LNに1又は複数のストロークデータSDを対応付けるメタデータブロックの生成を行う(ステップS407,S408)。 Return to FIG. After the stroke data grouping process is completed, the ink file generation unit 37 generates a metadata block in which one or more stroke data SDs are associated with the logical name LN for each group generated in step S406 (step S407, step S407, S408).

図19は、メタデータチャンクの一例を示す図である。このメタデータチャンクはXML形式を応用したXMP形式によって記述されたものである。同図に示すように、2つのメタデータブロックB1,B2を含んで構成される。図13のステップS408では、グループごとに、このようなメタデータブロックの生成が行われる。 FIG. 19 is a diagram showing an example of a metadata chunk. This metadata chunk is described in the XMP format, which is an application of the XML format. As shown in the figure, it is composed of two metadata blocks B1 and B2. In step S408 of FIG. 13, such a metadata block is generated for each group.

<メタデータブロックの生成>
メタデータブロックは、ストロークデータ生成部32が生成したM個(Mは1以上の整数)のストロークデータを、メタデータ生成部33が生成した電子ペンなどの入力デバイスを特定するN種類(Nは1以上M以下の整数)のメタデータにN:Mで対応付けるために、ストロークデータチャンクとは別のメタデータチャンクに保持される情報である。
<Generation of metadata block>
The metadata block is an N type (N is) that specifies an input device such as an electronic pen generated by the metadata generation unit 33 for M stroke data (M is an integer of 1 or more) generated by the stroke data generation unit 32. This is information held in a metadata chunk different from the stroke data chunk in order to associate the metadata (an integer of 1 or more and M or less) with N: M.

図19に示す、メタデータブロックB1内の記述B1aは、対応する論理名LN(ここでは「David Smith」)を示している。また、メタデータブロックB1内の記述B1bは、論理名LN「David Smith」に対応する1以上のストロークデータSDのそれぞれに割り当てられたストローク識別情報属性の値(ここでは1番目〜5番目)を示している。この例では、2種類(N=2)のメタデータが存在する。また、これらの記述B1a,B1bにより、メタデータブロックB1は、電子ペンP(第1の入力デバイス)を特定する論理名LN(第1のメタデータ)を、電子ペンPによって生成された1以上のストロークデータSD(第1のストロークデータ)をグループ化してなる第1のグループ(記述B1b内に記述されるストローク識別情報属性の値によって特定されるグループ)に対応付ける情報として機能する。 The description B1a in the metadata block B1 shown in FIG. 19 indicates the corresponding logical name LN (here, "David Smith"). Further, the description B1b in the metadata block B1 sets the value of the stroke identification information attribute (here, 1st to 5th) assigned to each of the 1 or more stroke data SDs corresponding to the logical name LN "David Smith". Shown. In this example, there are two types of metadata (N = 2). These descriptions B1a, by B1b, metadata block B1 is an electronic pen P A logical name for specifying the (first input device) LN (first metadata), generated by the electronic pen P A It functions as information associated with a first group (a group specified by the value of the stroke identification information attribute described in the description B1b) formed by grouping one or more stroke data SDs (first stroke data).

同様に、メタデータブロックB2内の記述B2aは、対応する論理名LN(ここでは「Greg Nelson」)を示しており、メタデータブロックB2内の記述B2bは、論理名LN「Greg Nelson」に対応する1以上のストロークデータSDのそれぞれに割り当てられたストローク識別情報属性の値(ここでは6番目〜9番目)を示している。これらの記述B2a,B2bにより、メタデータブロックB2は、電子ペンP(第2の入力デバイス)を特定する論理名LN(第2のメタデータ)を、電子ペンPによって生成された1以上のストロークデータSD(第2のストロークデータ)をグループ化してなる第2のグループ(記述B2b内に記述されるストローク識別情報属性の値によって特定されるグループ)に対応付ける情報として機能する。 Similarly, the description B2a in the metadata block B2 indicates the corresponding logical name LN (here, "Greg Nelson"), and the description B2b in the metadata block B2 corresponds to the logical name LN "Greg Nelson". The values of the stroke identification information attributes (6th to 9th in this case) assigned to each of the one or more stroke data SDs are shown. According to these descriptions B2a and B2b, the metadata block B2 has a logical name LN (second metadata) that identifies the electronic pen P B (second input device), one or more generated by the electronic pen P B. It functions as information associated with a second group (a group specified by the value of the stroke identification information attribute described in the description B2b) formed by grouping the stroke data SD (second stroke data) of the above.

ここで、図19に示したメタデータブロックB1,B2では、上述した第1及び第2のグループのそれぞれを、対応する1以上のストロークデータSDのそれぞれに割り当てられたストローク識別情報属性の開始番号と終了番号によって特定している。このような特定方法は、各グループに対応する1以上のストロークデータSDのそれぞれに割り当てられるストローク識別情報属性が連番の数字からなるデータであることによって、実現されるものである。各グループに対応する1以上のストロークデータSDのそれぞれに割り当てられるストローク識別情報属性がバラバラな数字からなるデータである場合には、連番となるように対応するストローク識別情報属性をリナンバリングするか、あるいは列挙することによってグループを特定すればよい。 Here, in the metadata blocks B1 and B2 shown in FIG. 19, the start numbers of the stroke identification information attributes assigned to each of the first and second groups described above are assigned to the corresponding one or more stroke data SDs. And the end number. Such a specific method is realized by the stroke identification information attribute assigned to each of the one or more stroke data SDs corresponding to each group being data consisting of serial numbers. If the stroke identification information attribute assigned to each of the one or more stroke data SDs corresponding to each group is data consisting of disparate numbers, whether to renumber the corresponding stroke identification information attributes so as to be serial numbers. Or, the group may be specified by enumerating.

図13に戻る。すべてのグループについてメタデータブロックの生成が完了した後、インクファイル生成部37は、生成したメタデータブロックに基づいて図19に例示したメタデータチャンクの全体を生成し、第1のフォーマットとは異なる第2のフォーマットにより符号化したうえで、インクファイル40の領域A9(図14参照)内に書き込む(ステップS409)。以上の処理により、インクファイル40の生成が完了する。 Return to FIG. After the generation of the metadata blocks for all groups is complete, the ink file generator 37 generates the entire metadata chunk illustrated in FIG. 19 based on the generated metadata blocks, which is different from the first format. After encoding by the second format, the data is written in the area A9 (see FIG. 14) of the ink file 40 (step S409). By the above processing, the generation of the ink file 40 is completed.

以上説明したように、本実施の形態によるインクファイルの出力方法によれば、インクファイル40内に、論理名LNとストロークデータSDとを対応付けて格納することができる。したがって、インクファイル40を再生する際に、インクファイル40内に書き込まれた情報に基づき、論理名LNとストロークデータSDとを対応付けることができるので、論理名LNすなわち電子ペンPに応じたインクファイル40の再生処理を実現することが可能になる。 As described above, according to the ink file output method according to the present embodiment, the logical name LN and the stroke data SD can be stored in association with each other in the ink file 40. Therefore, when the ink file 40 is reproduced, the logical name LN and the stroke data SD can be associated with each other based on the information written in the ink file 40, so that the ink file corresponding to the logical name LN, that is, the electronic pen P can be associated with each other. It becomes possible to realize 40 reproduction processes.

また、ストロークデータの符号化方法に対応していない場合であっても、特定の入力デバイスによって書かれたストロークデータがインクファイルに含まれているか否かをストロークデータの復号化を行う前に判別することが可能となる。 In addition, even if the stroke data coding method is not supported, it is determined whether or not the stroke data written by a specific input device is included in the ink file before the stroke data is decoded. It becomes possible to do.

以下、上記のようなインクファイル40の再生について、図20〜図22を参照しながら説明する。 Hereinafter, reproduction of the ink file 40 as described above will be described with reference to FIGS. 20 to 22.

<インクファイル40の再生処理>
図20は、図1に示したデジタルインク再生装置50の機能ブロック図である。同図に示すように、デジタルインク再生装置50は機能的に、インクファイル受付部51、メタデータ復号部52、ストロークデータ復号部53−1〜53−n、インクデータ保持部54、及び画像生成処理部55を有して構成される。
<Reproduction processing of ink file 40>
FIG. 20 is a functional block diagram of the digital ink regenerator 50 shown in FIG. As shown in the figure, the digital ink reproduction device 50 functionally has an ink file receiving unit 51, a metadata decoding unit 52, a stroke data decoding unit 53-1 to 53-n, an ink data holding unit 54, and an image generation unit. It is configured to have a processing unit 55.

インクファイル受付部51は、デジタルインク生成装置30によって生成されたインクファイル40の入力を受け付ける機能部である。インクファイル受付部51は、インクファイル40に含まれるメタデータチャンクMC及びインクチャンクICを、それぞれメタデータ復号部52及びストロークデータ復号部53−1〜53−nに出力するよう構成される。 The ink file receiving unit 51 is a functional unit that receives the input of the ink file 40 generated by the digital ink generating device 30. The ink file receiving unit 51 is configured to output the metadata chunk MC and the ink chunk IC included in the ink file 40 to the metadata decoding unit 52 and the stroke data decoding unit 53-1 to 53-n, respectively.

メタデータ復号部52は、メタデータチャンクMCを復号するとともに、アプリケーション100からフィルタ情報の入力を受け付ける機能部である。フィルタ情報は1以上の論理名LNを特定する情報であり、例えばユーザによって指定される。メタデータ復号部52は、フィルタ情報に従い、復号したメタデータチャンクMCの中から再生すべきストローク識別情報stroke_idを抽出する。また、メタデータチャンクMC中の記述から、インクチャンクICの符号化方式を特定する。そして、特定した符号化方式に対応するストロークデータ復号部53に対して、抽出したストローク識別情報stroke_idを供給するよう構成される。 The metadata decoding unit 52 is a functional unit that decodes the metadata chunk MC and receives input of filter information from the application 100. The filter information is information that identifies one or more logical names LN, and is specified by, for example, a user. The metadata decoding unit 52 extracts the stroke identification information stroke_id to be reproduced from the decoded metadata chunk MC according to the filter information. Further, the coding method of the ink chunk IC is specified from the description in the metadata chunk MC. Then, the extracted stroke identification information stroke_id is supplied to the stroke data decoding unit 53 corresponding to the specified coding method.

メタデータ復号部52による上記処理について具体的な例を参照して説明すると、例えば図19に示したメタデータチャンクを有するインクファイル40に対してフィルタ情報「David Smith」が指定された場合、メタデータ復号部52により抽出されるストローク識別情報stroke_idは、1番目から5番目のものとなる。また、図19に示したメタデータチャンク内の記述からインクチャンクICがWILLによって符号化されていることが理解できるので、メタデータ復号部52は、WILLに対応するストロークデータ復号部53に、抽出した1番目から5番目のストローク識別情報stroke_idを供給する。 Explaining the above processing by the metadata decoding unit 52 with reference to a specific example, for example, when the filter information “David Smith” is specified for the ink file 40 having the metadata chunk shown in FIG. 19, the meta The stroke identification information stroke_id extracted by the data decoding unit 52 is the first to the fifth. Further, since it can be understood from the description in the metadata chunk shown in FIG. 19 that the ink chunk IC is encoded by WILL, the metadata decoding unit 52 extracts the ink chunk IC into the stroke data decoding unit 53 corresponding to WILL. The first to fifth stroke identification information stroke_id is supplied.

その他、メタデータ復号部52は、フィルタ情報によって指定された1以上の論理名LNをインクデータ保持部54に供給する処理も行う。 In addition, the metadata decoding unit 52 also performs a process of supplying one or more logical name LNs designated by the filter information to the ink data holding unit 54.

ストロークデータ復号部53−1〜53−nは、図2に示したストロークデータ符号化部35−1〜35−nと同様、それぞれ互いに異なるフォーマット(符号化方式)に対応している。各ストロークデータ復号部53は、メタデータ復号部52から1以上のストローク識別情報stroke_idが供給されたことに応じて、対応する符号化方式により、インクファイル受付部51から供給されるインクチャンクICを復号するよう構成される。このとき、インクチャンクIC内のストロークデータSDに相当する部分については、メタデータ復号部52から供給された1以上のストローク識別情報stroke_idに対応するストロークデータSDのみを復号処理の対象とする。これは、復号処理のオーバーヘッドを削減するためである。そして、ストロークデータ復号部53は、復号した1以上のストロークデータSDのそれぞれについて、復号結果をインクデータ保持部54に出力するよう構成される。 The stroke data decoding units 53-1 to 53-n correspond to different formats (encoding methods) from each other, like the stroke data coding units 35-1 to 35-n shown in FIG. Each stroke data decoding unit 53 receives the ink chunk IC supplied from the ink file receiving unit 51 by the corresponding coding method in response to the supply of one or more stroke identification information stroke_id from the metadata decoding unit 52. Configured to decrypt. At this time, regarding the portion corresponding to the stroke data SD in the ink chunk IC, only the stroke data SD corresponding to one or more stroke identification information stroke_id supplied from the metadata decoding unit 52 is targeted for decoding processing. This is to reduce the overhead of the decoding process. Then, the stroke data decoding unit 53 is configured to output the decoding result to the ink data holding unit 54 for each of the decoded one or more stroke data SDs.

インクデータ保持部54は、ストロークデータ復号部53から供給されるストロークデータSDから一連のポイントデータPD及び順序情報Uorder(PID)を抽出し、画像生成処理部55に供給するよう構成される。画像生成処理部55は、こうして供給された一連のポイントデータPD及び順序情報Uorder(PID)に基づき、ディスプレイ60に表示される映像信号や、ラスタデータである画像ファイル61を生成するよう構成される。 The ink data holding unit 54 is configured to extract a series of point data PDs and order information Older (PID) from the stroke data SD supplied from the stroke data decoding unit 53 and supply them to the image generation processing unit 55. The image generation processing unit 55 is configured to generate a video signal displayed on the display 60 and an image file 61 which is raster data based on the series of point data PDs and order information Order (PID) supplied in this way. ..

図21は、インクファイル40を再生する処理のメインルーチンを示す処理フロー図である。以下、デジタルインク再生装置50が行う処理について、同図を参照しながら、再度より詳しく説明する。 FIG. 21 is a processing flow diagram showing a main routine of processing for reproducing the ink file 40. Hereinafter, the processing performed by the digital ink regenerator 50 will be described in more detail again with reference to the figure.

図21に示すように、デジタルインク再生装置50は、まず1以上の論理名LNを指定するフィルタ情報を受け付ける(ステップS50)。続いて、このフィルタ情報に基づいて、画像生成処理(ステップS51)を行う。 As shown in FIG. 21, the digital ink regenerator 50 first receives filter information for designating one or more logical names LN (step S50). Subsequently, an image generation process (step S51) is performed based on this filter information.

図22は、図21のステップS51に示した画像生成処理の処理フロー図である。同図に示すように、この処理では、まず初めにインクファイル受付部51によって、インクファイル40からインクチャンクIC及びメタデータチャンクMCが分離される(ステップS510)。次いで、メタデータ復号部52によりUTF−8で符号化されたメタデータチャンクMCが復号される(ステップS511)。その後、メタデータ復号部52は、復号したメタデータチャンクMCからインクチャンクICの符号化方式を取得する(ステップS512)とともに、復号したメタデータチャンクMCから、フィルタ情報によって指定された論理名LNに対応するストロークデータSDのストローク識別情報stroke_idを取得する(ステップS513)。 FIG. 22 is a processing flow diagram of the image generation processing shown in step S51 of FIG. As shown in the figure, in this process, first, the ink file receiving unit 51 separates the ink chunk IC and the metadata chunk MC from the ink file 40 (step S510). Next, the metadata decoding unit 52 decodes the metadata chunk MC encoded in UTF-8 (step S511). After that, the metadata decoding unit 52 acquires the coding method of the ink chunk IC from the decoded metadata chunk MC (step S512), and from the decoded metadata chunk MC to the logical name LN specified by the filter information. The stroke identification information stroke_id of the corresponding stroke data SD is acquired (step S513).

次に、ステップS512で取得した符号化方式に対応するストロークデータ復号部53により、インクチャンクの復号が行われる(ステップS514)。ここで復号される部分は、例えば図13のステップS402で符号化したストロークデータフォーマットS_Fmtに相当する部分である。続いて、ストロークデータ復号部53は、ステップS513で取得した一連のストローク識別情報stroke_idに対応する1以上のストロークデータSDについて、ステップS512で取得した符号化方式による復号を実施する(ステップS515,S516)。最後に、こうして復号された一連のストロークデータSDについて、画像生成処理部55が描画を行う。このとき、画像生成処理部55は、ストロークデータSDを1つずつ描画していくのではなく、各ストロークデータSD内にポイントデータPDと対応付けて格納されている順序情報Uorder(PID)(図12(b)を参照)の小さいものから順に、各座標の描画を行う。以上により、図21のステップS51に示した画像生成処理が終了する。 Next, the stroke data decoding unit 53 corresponding to the coding method acquired in step S512 decodes the ink chunk (step S514). The portion decoded here is, for example, a portion corresponding to the stroke data format S_Fmt encoded in step S402 of FIG. Subsequently, the stroke data decoding unit 53 decodes one or more stroke data SDs corresponding to the series of stroke identification information stroke_id acquired in step S513 by the coding method acquired in step S512 (steps S515 and S516). ). Finally, the image generation processing unit 55 draws the series of stroke data SDs decoded in this way. At this time, the image generation processing unit 55 does not draw the stroke data SD one by one, but the order information Reference (PID) (PID) stored in each stroke data SD in association with the point data PD. Each coordinate is drawn in ascending order of 12 (b)). As a result, the image generation process shown in step S51 of FIG. 21 is completed.

以上説明したように、本実施の形態によるインクファイルの再生方法によれば、本実施の形態によるインクファイルの出力方法によって生成されたインクファイル40を再生する際に、フィルタ情報によって指定された論理名LNに対応するストロークデータSDのみを描画の対象とすることが可能になる。 As described above, according to the ink file reproduction method according to the present embodiment, the logic specified by the filter information when the ink file 40 generated by the ink file output method according to the present embodiment is reproduced. Only the stroke data SD corresponding to the name LN can be drawn.

また、本実施の形態によるインクファイルの出力方法によって生成されたインクファイル40を再生する際に、フィルタ情報によって指定された論理名LNに対応するストロークデータが含まれるか否かを事前に判定することができる。 Further, when the ink file 40 generated by the ink file output method according to the present embodiment is reproduced, it is determined in advance whether or not the stroke data corresponding to the logical name LN specified by the filter information is included. be able to.

また、ストロークデータ復号部53は、フィルタ情報によって指定された論理名LNに対応するストロークデータSDのみを復号するので、インクチャンクICの全体を復号してから、フィルタ情報によって指定される論理名LNに対応するストロークデータSDのみを選択する場合に比べて、復号に要する処理のオーバーヘッドを縮小することが可能になる。 Further, since the stroke data decoding unit 53 decodes only the stroke data SD corresponding to the logical name LN specified by the filter information, the entire ink chunk IC is decoded and then the logical name LN specified by the filter information is decoded. It is possible to reduce the processing overhead required for decoding as compared with the case where only the stroke data SD corresponding to is selected.

また、インクファイルを生成する際、ストロークデータSD内に各座標と対応付けて順序情報Uorder(PID)を格納することにより座標の描画順をストロークデータSD内に保存し、インクファイルの再生時には、この描画順に従って各座標の描画を行うので、図11に例示したような複数のストロークデータSD間の複雑な先後関係を再現することが可能になる。 Further, when the ink file is generated, the drawing order of the coordinates is saved in the stroke data SD by storing the order information Older (PID) in association with each coordinate in the stroke data SD, and when the ink file is played back, Since each coordinate is drawn according to this drawing order, it is possible to reproduce a complicated front-back relationship between a plurality of stroke data SDs as illustrated in FIG.

次に、本発明の第2の実施の形態によるインクファイルの管理方法について説明する。図23は、本実施の形態によるインクファイルの管理方法を実現するコンピュータシステム90のシステム構成を示す図である。同図に示すように、コンピュータシステム90は、複数のコンピュータ1と、インクサーバ70(インクファイルの管理装置)とを備えて構成される。 Next, a method of managing an ink file according to the second embodiment of the present invention will be described. FIG. 23 is a diagram showing a system configuration of a computer system 90 that realizes an ink file management method according to the present embodiment. As shown in the figure, the computer system 90 includes a plurality of computers 1 and an ink server 70 (ink file management device).

各コンピュータ1は第1の実施の形態で説明したものと同様のものであり、位置検出器20やディスプレイ60と接続され、インクファイル40を生成及び再生可能に構成される。ただし、本実施の形態ではインクサーバ70がインクファイル40の再生を行うので、各コンピュータ1は図1に示したデジタルインク再生装置50を必ずしも備える必要はない。また、図23に示すように、本実施の形態によるコンピュータ1は、インクファイル40の検索条件をインクサーバ70に出力し、その結果としてインクサーバ70から画像ファイル61の供給を受けるように構成される。この画像ファイル61は、図1に示したものと同じものである。なお、図23では、上側の2台のコンピュータ1のみに位置検出器20を接続し、下側の2台のコンピュータ1のみにディスプレイ60を接続するように描いているが、これは説明のための便宜上の描画であり、位置検出器20が接続されたコンピュータ1にディスプレイ60が接続されていてもよいし、ディスプレイ60が接続されたコンピュータ1に位置検出器20が接続されていてもよい。 Each computer 1 is the same as that described in the first embodiment, is connected to the position detector 20 and the display 60, and is configured to be able to generate and reproduce the ink file 40. However, in the present embodiment, since the ink server 70 reproduces the ink file 40, each computer 1 does not necessarily have to include the digital ink reproduction device 50 shown in FIG. Further, as shown in FIG. 23, the computer 1 according to the present embodiment is configured to output the search condition of the ink file 40 to the ink server 70, and as a result, receive the supply of the image file 61 from the ink server 70. To. This image file 61 is the same as that shown in FIG. In FIG. 23, the position detector 20 is connected only to the upper two computers 1, and the display 60 is connected only to the lower two computers 1, but this is for explanation. The display 60 may be connected to the computer 1 to which the position detector 20 is connected, or the position detector 20 may be connected to the computer 1 to which the display 60 is connected.

インクサーバ70は、いわゆるクラウドサービスを実現するサーバであり、CPU、通信回路、記憶装置などの通常のサーバコンピュータが備える構成(図示せず)を備えている。記憶装置は、主メモリなどの主記憶装置と、ハードディスクなどの補助記憶装置とを含んで構成される。インクサーバ70の各機能は、CPUが記憶装置に記憶されるプログラムに従って動作することによって実現される。 The ink server 70 is a server that realizes a so-called cloud service, and has a configuration (not shown) provided in a normal server computer such as a CPU, a communication circuit, and a storage device. The storage device includes a main storage device such as a main memory and an auxiliary storage device such as a hard disk. Each function of the ink server 70 is realized by operating the CPU according to a program stored in the storage device.

インクサーバ70には、外部記憶装置としてのストレージ71が接続されている。コンピュータ1におけるユーザ操作によりコンピュータ1からインクサーバ70にインクファイル40が送信(アップロード)されると、インクサーバ70はこのストレージ71に、受信したインクファイル40を格納する。 A storage 71 as an external storage device is connected to the ink server 70. When the ink file 40 is transmitted (uploaded) from the computer 1 to the ink server 70 by a user operation on the computer 1, the ink server 70 stores the received ink file 40 in the storage 71.

ストレージ71は、こうして格納されるインクファイル40の他に、図24に例示するインクテーブルを記憶している。インクテーブルは、図24に示すように、インクファイル40ごとに、そのインクファイル40のファイル名(インクファイル40を特定する情報)と、そのインクファイル40をアップロードしたユーザのアカウントを示す情報(例えば、インクサーバ70のログインアカウント)と、そのインクファイル40に格納されているメタデータチャンク内に記述されている1以上の論理名LNと、この1以上の論理名LNにそれぞれ対応する1以上の論理識別情報LIDと、そのインクファイル40に格納されているストロークデータSDの符号化方式(WILL、InkMLなど)とを記憶するテーブルである。 In addition to the ink file 40 stored in this way, the storage 71 stores the ink table illustrated in FIG. 24. As shown in FIG. 24, in the ink table, for each ink file 40, the file name of the ink file 40 (information for identifying the ink file 40) and information indicating the account of the user who uploaded the ink file 40 (for example,). , The login account of the ink server 70), one or more logical name LNs described in the metadata chunk stored in the ink file 40, and one or more logical name LNs corresponding to the one or more logical name LNs, respectively. This is a table that stores the logical identification information LID and the coding method (WILL, InkML, etc.) of the stroke data SD stored in the ink file 40.

インクサーバ70は、コンピュータ1からインクファイル40を受信すると、これを一旦復号することにより、メタデータチャンク内に記述されている1以上の論理名LNと、ストロークデータSDの符号化方式とを取得する。そして、これらをファイル名及びユーザのアカウントを示す情報とともに、インクテーブルに追記する。 When the ink server 70 receives the ink file 40 from the computer 1, the ink server 70 once decodes the ink file 40 to acquire one or more logical names LN described in the metadata chunk and the encoding method of the stroke data SD. To do. Then, these are added to the ink table together with the file name and the information indicating the user's account.

ここで、第1の実施の形態で説明したインクファイル40は論理識別情報LIDの記述を含まないので、インクサーバ70は、インクファイル40を復号しても論理識別情報LIDを得ることができない。したがって、第1の実施の形態で説明したインクファイル40を使用する場合、インクサーバ70は、インクファイル40とは別に、コンピュータ1から論理名LNごとの論理識別情報LIDを取得する必要がある。論理識別情報LIDの記述を含むインクファイル40を使用する場合には、インクサーバ70は、上述した論理名LNの場合と同様にして、インクファイル40内の記述から論理識別情報LIDを得ればよい。 Here, since the ink file 40 described in the first embodiment does not include the description of the logical identification information LID, the ink server 70 cannot obtain the logical identification information LID even if the ink file 40 is decoded. Therefore, when the ink file 40 described in the first embodiment is used, the ink server 70 needs to acquire the logical identification information LID for each logical name LN from the computer 1 separately from the ink file 40. When the ink file 40 including the description of the logical identification information LID is used, the ink server 70 can obtain the logical identification information LID from the description in the ink file 40 in the same manner as in the case of the logical name LN described above. Good.

なお、論理名LN及び論理識別情報LIDの一方又は両方を取得できない場合、インクサーバ70は、インクテーブルの該当欄を空白にしておけばよい。また、インクテーブルに論理識別情報LIDの列を設けることは必須ではなく、論理識別情報LIDを検索条件のひとつとして使用する必要がない場合には、インクテーブルから論理識別情報LIDの列を除去することとしてもよい。 If one or both of the logical name LN and the logical identification information LID cannot be acquired, the ink server 70 may leave the corresponding column of the ink table blank. Further, it is not essential to provide the logical identification information LID column in the ink table, and when it is not necessary to use the logical identification information LID as one of the search conditions, the logical identification information LID column is removed from the ink table. It may be that.

図25は、インクサーバ70の機能ブロックを示す図である。同図に示すように、インクサーバ70は機能的に、インクファイル選択部73、メタデータ復号部74、切替部75、ストロークデータ復号部76−1〜76−n、インクデータ保持部77、及び画像生成処理部78を有して構成される。 FIG. 25 is a diagram showing a functional block of the ink server 70. As shown in the figure, the ink server 70 functionally includes an ink file selection unit 73, a metadata decoding unit 74, a switching unit 75, a stroke data decoding unit 76-1 to 76-n, an ink data holding unit 77, and an ink data holding unit 77. It includes an image generation processing unit 78.

インクファイル選択部73は、ストレージ71に格納済みの1以上のインクファイル40の中から1以上のインクファイル40を選択する機能部である。また、受付部72は、コンピュータ1より、図24に示したファイル名、アカウント、論理名LN、論理識別情報LID、及び符号化方式のうちのいずれか1つ以上を指定する検索条件の入力を受け付ける機能部である。 The ink file selection unit 73 is a functional unit that selects one or more ink files 40 from one or more ink files 40 stored in the storage 71. Further, the reception unit 72 inputs a search condition for designating any one or more of the file name, the account, the logical name LN, the logical identification information LID, and the coding method shown in FIG. 24 from the computer 1. It is a function part that accepts.

受付部72は、ストレージ71内のインクテーブルを参照することにより、検索条件によって指定された条件に合致するインクファイル40を特定し、インクファイル選択部73にそのインクファイル40を選択させるための処理を行う。また、受付部72は、特定したインクファイル40に対応するインクチャンクの符号化方式を切替部75に通知する処理を行うとともに、論理名LN又は論理識別情報LIDが指定された場合には、メタデータ復号部74に対し、指定された論理名LN又は論理識別情報LIDを特定するフィルタ情報を出力する処理も行うよう構成される。このフィルタ情報は、図20で説明したフィルタ情報と同様のものである。なお、検索条件において論理名LN及び論理識別情報LIDがいずれも指定されていない場合には、フィルタ情報の出力は不要である。また、インクファイル選択部73は、選択したインクファイル40に含まれるメタデータチャンクMC及びインクチャンクICを、それぞれメタデータ復号部74及び切替部75に出力するよう構成される。 The reception unit 72 identifies an ink file 40 that matches the conditions specified by the search conditions by referring to the ink table in the storage 71, and causes the ink file selection unit 73 to select the ink file 40. I do. Further, the reception unit 72 performs a process of notifying the switching unit 75 of the coding method of the ink chunk corresponding to the specified ink file 40, and when the logical name LN or the logical identification information LID is specified, the meta The data decoding unit 74 is also configured to output the filter information that identifies the designated logical name LN or the logical identification information LID. This filter information is similar to the filter information described with reference to FIG. If neither the logical name LN nor the logical identification information LID is specified in the search condition, it is not necessary to output the filter information. Further, the ink file selection unit 73 is configured to output the metadata chunk MC and the ink chunk IC included in the selected ink file 40 to the metadata decoding unit 74 and the switching unit 75, respectively.

メタデータ復号部74は、インクファイル選択部73から供給されるメタデータチャンクMCを復号するとともに、受付部72からフィルタ情報が供給された場合には、そのフィルタ情報に従い、復号したメタデータチャンクMCの中から再生すべきストローク識別情報stroke_idのみを抽出する機能部である。メタデータ復号部74の機能は図20に示したメタデータ復号部52と同様であるので、詳しい説明は省略する。 The metadata decoding unit 74 decodes the metadata chunk MC supplied from the ink file selection unit 73, and when the filter information is supplied from the reception unit 72, the decoded metadata chunk MC is decoded according to the filter information. This is a functional unit that extracts only the stroke identification information stroke_id to be reproduced from the data. Since the function of the metadata decoding unit 74 is the same as that of the metadata decoding unit 52 shown in FIG. 20, detailed description thereof will be omitted.

ここで、第1の実施の形態で説明したインクファイル40は、メタデータ内に論理識別情報LIDを含んでいない。したがって、フィルタ情報によって論理識別情報LIDが指定されていても、メタデータ復号部74は、適切にストローク識別情報stroke_idを抽出することができない。フィルタ情報による論理識別情報LIDの指定は、インクファイル40のメタデータ内に論理識別情報LIDが格納されている場合に限って有効となる。 Here, the ink file 40 described in the first embodiment does not include the logical identification information LID in the metadata. Therefore, even if the logical identification information LID is specified by the filter information, the metadata decoding unit 74 cannot appropriately extract the stroke identification information stroke_id. The designation of the logical identification information LID by the filter information is valid only when the logical identification information LID is stored in the metadata of the ink file 40.

切替部75は、インクファイル選択部73から供給されるインクチャンクICを、ストロークデータ復号部76−1〜76−nのうち受付部72から通知された符号化方式に対応するものに供給する機能部である。インクチャンクICの供給を受けたストロークデータ復号部76は、対応する符号化方式により、インクファイル選択部73から供給されるインクチャンクICを復号する。このとき、インクチャンクIC内のストロークデータSDに相当する部分については、メタデータ復号部74から供給された1以上のストローク識別情報stroke_idに対応するストロークデータSDのみを復号処理の対象とする。これは、上述したストロークデータ復号部53の場合と同様、復号処理のオーバーヘッドを削減するためである。そして、ストロークデータ復号部76は、復号した1以上のストロークデータSDをインクデータ保持部77に出力するよう構成される。 The switching unit 75 has a function of supplying the ink chunk IC supplied from the ink file selection unit 73 to the stroke data decoding units 76-1 to 76-n corresponding to the coding method notified from the reception unit 72. It is a department. The stroke data decoding unit 76 supplied with the ink chunk IC decodes the ink chunk IC supplied from the ink file selection unit 73 by the corresponding coding method. At this time, regarding the portion corresponding to the stroke data SD in the ink chunk IC, only the stroke data SD corresponding to one or more stroke identification information stroke_id supplied from the metadata decoding unit 74 is targeted for decoding processing. This is to reduce the overhead of the decoding process, as in the case of the stroke data decoding unit 53 described above. Then, the stroke data decoding unit 76 is configured to output one or more decoded stroke data SDs to the ink data holding unit 77.

インクデータ保持部77は、図20に示したインクデータ保持部54と同様、ストロークデータ復号部76から供給されるストロークデータSDから一連のポイントデータPD及び順序情報Uorder(PID)を抽出し、画像生成処理部78に供給するよう構成される。画像生成処理部78は、こうして供給された一連のポイントデータPD及び順序情報Uorder(PID)に基づいて描画処理を行うことにより、インクファイル40ごとに、ラスタデータである画像ファイル61を生成するよう構成される。 Similar to the ink data holding unit 54 shown in FIG. 20, the ink data holding unit 77 extracts a series of point data PDs and sequence information Older (PID) from the stroke data SD supplied from the stroke data decoding unit 76, and obtains an image. It is configured to supply to the generation processing unit 78. The image generation processing unit 78 generates an image file 61, which is raster data, for each ink file 40 by performing drawing processing based on the series of point data PDs and the order information Older (PID) supplied in this way. It is composed.

インクサーバ70は、以上のようにして生成された1以上の画像ファイル61を、検索条件に対する返信としてコンピュータ1に送信する。これにより、コンピュータ1のユーザは、検索条件で指定した内容に合致する1以上のインクファイル40のそれぞれにかかる画像ファイル61を、取得ないしディスプレイ60で閲覧することが可能になる。また、検索条件において論理名LN又は論理識別情報LIDを指定した場合には、各画像ファイル61を、指定した論理名LN又は論理識別情報LIDに対応するストロークデータSDのみによって構成されたものとすることが可能になる。 The ink server 70 transmits one or more image files 61 generated as described above to the computer 1 as a reply to the search condition. As a result, the user of the computer 1 can acquire or view the image file 61 related to each of the one or more ink files 40 matching the contents specified in the search condition on the display 60. When the logical name LN or the logical identification information LID is specified in the search condition, each image file 61 shall be composed of only the stroke data SD corresponding to the specified logical name LN or the logical identification information LID. Will be possible.

図26は、インクサーバ70がインクファイル40を再生する処理のメインルーチンを示す処理フロー図である。以下、インクサーバ70が行う処理について、同図を参照しながら、再度より詳しく説明する。なお、図26では、検索条件において論理識別情報LIDが指定される場合を考慮していない。 FIG. 26 is a processing flow diagram showing a main routine of processing in which the ink server 70 reproduces the ink file 40. Hereinafter, the processing performed by the ink server 70 will be described in more detail again with reference to the figure. Note that FIG. 26 does not consider the case where the logical identification information LID is specified in the search condition.

図26に示すように、インクサーバ70は、まずコンピュータ1から検索条件の入力を受け付ける(ステップS60)。そして、検索条件が論理名LNの指定を含む場合、その論理名LNを指定するフィルタ情報を生成する(ステップS61)。 As shown in FIG. 26, the ink server 70 first receives the input of the search condition from the computer 1 (step S60). Then, when the search condition includes the designation of the logical name LN, the filter information for specifying the logical name LN is generated (step S61).

続いてインクサーバ70は、ストレージ71内のインクテーブルを参照し、検索条件に合致する1以上のインクファイル40それぞれのファイル名を取得する。そして、ストレージ71内に格納されている1以上のインクファイル40の中から、取得したファイル名に対応する1以上のインクファイル40を選択する(ステップS62)。 Subsequently, the ink server 70 refers to the ink table in the storage 71 and acquires the file names of one or more ink files 40 that match the search conditions. Then, one or more ink files 40 corresponding to the acquired file names are selected from the one or more ink files 40 stored in the storage 71 (step S62).

その後、ステップS62で選択した一連のインクファイル40のそれぞれについて、図22を参照して説明した画像生成処理を実行する(ステップS63,S51)。これにより、検索条件の指定内容に合致する1以上のインクファイル40のそれぞれにかかる画像ファイル61が生成される。また、検索条件において論理名LN又は論理識別情報LIDが指定されている場合の各画像ファイル61は、指定された論理名LN又は論理識別情報LIDに対応するストロークデータSDのみによって構成されたものとなる。 After that, the image generation process described with reference to FIG. 22 is executed for each of the series of ink files 40 selected in step S62 (steps S63 and S51). As a result, the image file 61 corresponding to each of the one or more ink files 40 that matches the specified contents of the search condition is generated. Further, each image file 61 when the logical name LN or the logical identification information LID is specified in the search condition is composed of only the stroke data SD corresponding to the specified logical name LN or the logical identification information LID. Become.

以上説明したように、本実施の形態によるインクファイルの管理方法によれば、インクファイル40の検索を行う際の検索条件として、論理名LN又は論理識別情報LIDといった入力デバイスを指定することが可能になる。したがって、検索条件のひとつとして入力デバイスを指定可能なインクファイル40の検索が実現される。 As described above, according to the ink file management method according to the present embodiment, it is possible to specify an input device such as a logical name LN or a logical identification information LID as a search condition when searching for the ink file 40. become. Therefore, the search for the ink file 40 in which the input device can be specified as one of the search conditions is realized.

また、本実施の形態によるインクファイルの管理方法によれば、検索条件として論理名LN又は論理識別情報LIDを指定することにより、検索の結果として出力される各画像ファイル61を、指定した論理名LN又は論理識別情報LIDに対応するストロークデータSDのみによって構成されたものとすることが可能になる。 Further, according to the ink file management method according to the present embodiment, by designating the logical name LN or the logical identification information LID as the search condition, each image file 61 output as a result of the search is designated as the designated logical name. It is possible to assume that it is composed only of the stroke data SD corresponding to the LN or the logical identification information LID.

次に、本発明の第3の実施の形態によるインクファイルの出力方法について説明する。図27は、本実施の形態によるコンピュータシステム91のシステム構成を示す図である。同図を図23と比較すると理解されるように、本実施の形態によるコンピュータシステム91は、第2の実施の形態によるコンピュータシステム90と同様、複数のコンピュータ1と、インクサーバ70とを備えて構成される。ただし、本実施の形態によるコンピュータシステム91は、コンピュータ1の内部でインクファイル40の生成工程をすべて行うのではなく、各コンピュータ1でストロークデータSD及び論理名LNの生成までを実施し、符号化を含むその後の工程はインクサーバ70内で行うよう構成される。また、複数のコンピュータ1のユーザが、1つのインクファイル40を同時に生成できるように構成される。その他、図27には図示していないが、各コンピュータ1は、検索条件の指定及び画像ファイル61の受信に関して、第2の実施の形態で説明したコンピュータ1と同様の機能を有している。以下、第1及び第2の実施の形態との相違点を中心に、詳しく説明する。 Next, an ink file output method according to the third embodiment of the present invention will be described. FIG. 27 is a diagram showing a system configuration of the computer system 91 according to the present embodiment. As can be understood by comparing the figure with FIG. 23, the computer system 91 according to the present embodiment includes a plurality of computers 1 and an ink server 70, similarly to the computer system 90 according to the second embodiment. It is composed. However, the computer system 91 according to the present embodiment does not perform all the generation steps of the ink file 40 inside the computer 1, but also generates the stroke data SD and the logical name LN in each computer 1 and encodes them. Subsequent steps including the above are configured to be performed in the ink server 70. Further, it is configured so that a user of a plurality of computers 1 can generate one ink file 40 at the same time. In addition, although not shown in FIG. 27, each computer 1 has the same functions as the computer 1 described in the second embodiment with respect to the designation of search conditions and the reception of the image file 61. Hereinafter, the differences from the first and second embodiments will be mainly described.

各コンピュータ1は、図2に示したインクファイル生成装置30の機能ブロックのうちインクデータ保持部34に保持するストロークデータSDを、対応する論理名LNとともに所定の時間間隔でインクサーバ70に送信するよう構成される。 Each computer 1 transmits stroke data SD held in the ink data holding unit 34 among the functional blocks of the ink file generating device 30 shown in FIG. 2 to the ink server 70 together with the corresponding logical name LN at predetermined time intervals. Is configured.

インクサーバ70は、転送フィルタ80と、インクファイル生成部81とを有して構成される。転送フィルタ80は、1つのインクファイル40を同時に生成しようとする複数のコンピュータ1の間に設けられるもので、各コンピュータ1からの上り回線と、他の各コンピュータ1への下り回線との間にスイッチが挿入された構成を有して構成される。このスイッチがオンとなっている場合、各コンピュータ1からアップロードされたストロークデータSD及び論理名LNは、リアルタイムで他のコンピュータ1に転送される。各コンピュータ1は、こうして転送されたストロークデータSD及び論理名LNを、自身で生成しているストロークデータSD及び論理名LNとともに、リアルタイムでディスプレイ60に表示するよう構成される。これにより、各コンピュータ1のユーザは、遠隔地にいるユーザと同時に1つのインクファイル40を生成するという体験を得ることができる。また、ストロークデータSDとともに論理名LNを表示することで、各コンピュータ1のユーザは、表示されているストロークデータSDの描画主体を把握可能となる。 The ink server 70 includes a transfer filter 80 and an ink file generation unit 81. The transfer filter 80 is provided between a plurality of computers 1 that try to generate one ink file 40 at the same time, and is provided between an uplink from each computer 1 and a downlink to each other computer 1. It is configured to have a configuration in which a switch is inserted. When this switch is turned on, the stroke data SD and the logical name LN uploaded from each computer 1 are transferred to the other computer 1 in real time. Each computer 1 is configured to display the stroke data SD and the logical name LN thus transferred on the display 60 in real time together with the stroke data SD and the logical name LN generated by the computer 1. As a result, the user of each computer 1 can obtain the experience of generating one ink file 40 at the same time as the user at a remote location. Further, by displaying the logical name LN together with the stroke data SD, the user of each computer 1 can grasp the drawing subject of the displayed stroke data SD.

各コンピュータからアップロードされたストロークデータSD及び論理名LNは、インクサーバ70内のインクファイル生成部81に供給される。インクファイル生成部81は、供給されたストロークデータSD及び論理名LNを一時的に保持し、いずれかのコンピュータ1よりインクファイル40の出力指示が入力されたことを契機として、保持していたストロークデータSD及び論理名LNに基づいてインクファイル40の生成を開始するよう構成される。 The stroke data SD and the logical name LN uploaded from each computer are supplied to the ink file generation unit 81 in the ink server 70. The ink file generation unit 81 temporarily holds the supplied stroke data SD and the logical name LN, and the strokes held when the output instruction of the ink file 40 is input from any computer 1. It is configured to start generating the ink file 40 based on the data SD and the logical name LN.

インクファイル生成部81によるインクファイル40の生成処理は、基本的には図2に示したインクファイル生成部37による処理と同様である。ただし、インクファイル生成部81は、各ユーザからストロークデータSDの符号化方式の入力を受け付け、それに従ってストロークデータSDを符号化することとしてもよい。この場合、1つのインクファイル40の中に、互いに異なる符号化方式によって符号化されたストロークデータSDが混在することになる。 The process of generating the ink file 40 by the ink file generation unit 81 is basically the same as the process of the ink file generation unit 37 shown in FIG. However, the ink file generation unit 81 may accept the input of the stroke data SD coding method from each user and encode the stroke data SD accordingly. In this case, stroke data SDs encoded by different coding methods are mixed in one ink file 40.

図28は、本実施の形態において生成されるインクテーブルの例を示す図である。ファイル名#F1〜#F3に対応する3つのファイルは図24のインクテーブルにも格納されていたものであり、ファイル名#F4,#F5に対応する2つのファイルが本実施の形態に特有のファイルとなっている。 FIG. 28 is a diagram showing an example of an ink table generated in the present embodiment. The three files corresponding to the file names # F1 to # F3 are also stored in the ink table of FIG. 24, and the two files corresponding to the file names # F4 and # F5 are peculiar to the present embodiment. It is a file.

例えばファイル名#F4に関するインクテーブル内の記述は、David Smithが、アカウント#AC1によりインクサーバ70にログインしているコンピュータ1上で、それぞれ論理識別情報LIDが「Pid#1」「Pid#2」である2つの電子ペンPを用いてストロークデータSDの生成を行い、同時に、Greg Nelsonが、アカウント#AC2によりインクサーバ70にログインしている他のコンピュータ1上で、論理識別情報LIDが「Pid#3」である電子ペンPを用いてストロークデータSDの生成を行い、さらに、ストロークデータSDの符号化方式として、David SmithがWILLを、Greg NelsonがInkMLをそれぞれ指定した場合に得られるものである。インクテーブルをこのように構成することで、インクファイル40の再生時には、複数のユーザが互いに異なるコンピュータ1上で同時に生成した1つのインクファイル40を、アカウント、論理名LN、論理識別情報LID、ストロークデータSDの符号化方式などの検索条件によって適切に検索することが可能になる。 For example, in the description in the ink table regarding the file name # F4, the logical identification information LIDs are "Pid # 1" and "Pid # 2", respectively, on the computer 1 in which David Smith is logged in to the ink server 70 by the account # AC1. The stroke data SD is generated using the two electronic pens P, and at the same time, the logical identification information LID is "Pid" on the other computer 1 in which Greg Nelson is logged in to the ink server 70 by the account # AC2. It is obtained when the stroke data SD is generated using the electronic pen P which is "# 3", and when David Smith specifies WILL and Greg Nelson specifies InkML as the coding method of the stroke data SD. is there. By configuring the ink table in this way, when the ink file 40 is played back, one ink file 40 generated simultaneously by a plurality of users on different computers 1 can be created with an account, a logical name LN, a logical identification information LID, and a stroke. It becomes possible to search appropriately depending on the search conditions such as the coding method of the data SD.

以上説明したように、本実施の形態によるインクファイルの出力方法によれば、各コンピュータ60のユーザに、遠隔地にいるユーザと同時に1つのインクファイル40を生成するという体験を提供することが可能になる。また、インクファイル40の再生時には、そうして生成されたインクファイル40を、アカウント、論理名LN、論理識別情報LID、ストロークデータSDの符号化方式などの検索条件によって適切に検索することが可能になる。 As described above, according to the ink file output method according to the present embodiment, it is possible to provide the user of each computer 60 with the experience of generating one ink file 40 at the same time as the user at a remote location. become. Further, when the ink file 40 is played back, the ink file 40 generated in this way can be appropriately searched by search conditions such as an account, a logical name LN, a logical identification information LID, and a stroke data SD coding method. become.

以上、本発明の好ましい実施の形態について説明したが、本発明はこうした実施の形態に何等限定されるものではなく、本発明が、その要旨を逸脱しない範囲において、種々なる態様で実施され得ることは勿論である。 Although the preferred embodiments of the present invention have been described above, the present invention is not limited to these embodiments, and the present invention can be implemented in various embodiments without departing from the gist thereof. Of course.

例えば、図5では、アドレス空間統合部330をメタデータ生成部33の機能の一部として実現したが、図29に示すように、アドレス空間統合部330を入力処理部31の一部として実現することも可能である。こうすることで、アドレス空間統合部330をデバイスドライバ側で実現することが可能になる。 For example, in FIG. 5, the address space integration unit 330 is realized as a part of the function of the metadata generation unit 33, but as shown in FIG. 29, the address space integration unit 330 is realized as a part of the input processing unit 31. It is also possible. By doing so, the address space integration unit 330 can be realized on the device driver side.

また、図3及び図4を参照して説明したインクファイル40の生成処理では筆圧情報を使用していなかったが、筆圧情報を使用してもよいことは勿論である。この場合、筆圧情報は位置検出器20からポイントデータPD等とともに送信されるので、デジタルインク生成装置30は、図15(a)に示したポイント属性(point)の値の一部として、ストロークデータSD内に筆圧情報を埋め込むこととすればよい。 Further, although the pen pressure information was not used in the process of generating the ink file 40 described with reference to FIGS. 3 and 4, it goes without saying that the pen pressure information may be used. In this case, since the pen pressure information is transmitted from the position detector 20 together with the point data PD and the like, the digital ink generator 30 uses the stroke as a part of the value of the point attribute (point) shown in FIG. 15 (a). The pen pressure information may be embedded in the data SD.

また、第3の実施の形態で説明したインクファイル40の描画に関して、フィルタ情報にストロークデータSDの符号化方式の指定も含め得るようにしてもよい。つまり、第3の実施の形態では、互いに異なる符号化方式によって符号化された複数のストロークデータSDを含むインクファイル40について説明したが、このようなインクファイル40を再生するにあたり、第1の実施の形態で説明したデジタルインク再生装置50(図20参照)や第2の実施の形態で説明したインクサーバ70の再生機能(図25参照)では、1つのインクファイル40から特定の符号化方式によって符号化されたストロークデータSDのみを抽出して再生する、といった処理を行うことはできない。これは、第1及び第2の実施の形態で説明したフィルタ情報には論理名LNや論理識別情報LIDといったメタデータの指定のみが含まれ、ストロークデータSDの符号化方式の指定が含まれないからである。フィルタ情報にストロークデータSDの符号化方式の指定を含められるようにすることにより、互いに異なる符号化方式によって符号化された複数のストロークデータSDを含むインクファイル40を再生する際に、フィルタ情報によって指定された特定の符号化方式により符号化されたストロークデータSDのみを抽出して、描画処理の対象とすることが可能になる。 Further, regarding the drawing of the ink file 40 described in the third embodiment, the filter information may include the designation of the coding method of the stroke data SD. That is, in the third embodiment, the ink file 40 including the plurality of stroke data SDs encoded by different coding methods has been described, but in reproducing such an ink file 40, the first embodiment has been described. In the reproduction function of the digital ink reproduction device 50 (see FIG. 20) described in the above embodiment and the ink server 70 described in the second embodiment (see FIG. 25), one ink file 40 is used by a specific coding method. It is not possible to perform processing such as extracting and reproducing only the encoded stroke data SD. This is because the filter information described in the first and second embodiments includes only the specification of metadata such as the logical name LN and the logical identification information LID, and does not include the specification of the encoding method of the stroke data SD. Because. By making it possible to include the designation of the coding method of the stroke data SD in the filter information, when playing back the ink file 40 containing a plurality of stroke data SDs encoded by different coding methods, the filter information is used. Only the stroke data SD encoded by the specified specific encoding method can be extracted and used as the target of the drawing process.

1 コンピュータ
20 位置検出器
30 デジタルインク生成装置
31 入力処理部
32 ストロークデータ生成部
33 メタデータ生成部
34 インクデータ保持部
35−1〜35−n ストロークデータ符号化部
36 メタデータ符号化部
37 インクファイル生成部
40 インクファイル
50 デジタルインク再生装置
51 インクファイル受付部
52 メタデータ復号部
53−1〜53−n ストロークデータ復号部
54 インクデータ保持部
55 画像生成処理部
60 ディスプレイ
61 画像ファイル
70 インクサーバ
71 ストレージ
72 受付部
73 インクファイル選択部
74 メタデータ復号部
75 切替部
76−1〜76−n ストロークデータ復号部
77 インクデータ保持部
78 画像生成処理部
80 転送フィルタ
81 インクファイル生成部
90,91 コンピュータシステム
100 アプリケーション
310 入出力インターフェイス
311〜315 ドライバ
330 アドレス空間統合部
331 LID変換部
332 デバイスタイプ記録部
3300,3301 UID抽出部
3302 Nビット空間マッピング処理部
3310 切替部
3311 名前導出部
3312 ハッシュ部
3313 URN化部
B1,B2 メタデータブロック
P 電子ペン
1 Computer 20 Position detector 30 Digital ink generator 31 Input processing unit 32 Stroke data generation unit 33 Metadata generation unit 34 Ink data holding unit 35-1 to 35-n Stroke data coding unit 36 Metadata coding unit 37 Ink File generation unit 40 Ink file 50 Digital ink playback device 51 Ink file reception unit 52 Metadata decoding unit 53-1 to 53-n Stroke data decoding unit 54 Ink data holding unit 55 Image generation processing unit 60 Display 61 Image file 70 Ink server 71 Storage 72 Reception unit 73 Ink file selection unit 74 Metadata decoding unit 75 Switching unit 76-1 to 76-n Stroke data decoding unit 77 Ink data holding unit 78 Image generation processing unit 80 Transfer filter 81 Ink file generation unit 90, 91 Computer system 100 Application 310 Input / output interface 313-1515 Driver 330 Address space integration unit 331 LID conversion unit 332 Device type recording unit 3300, 3301 UID extraction unit 3302 N-bit space mapping processing unit 3310 Switching unit 3311 Name derivation unit 3312 Hash unit 3313 URN conversion part B1, B2 metadata block P electronic pen

Claims (18)

第1のストロークを示す第1のストロークデータ及び前記第1のストロークと異なる第2のストロークを示す第2のストロークデータを生成し、
第1の入力デバイスに関連付けられる情報を示す第1のメタデータ及び前記第1の入力デバイスと異なる第2の入力デバイスに関連付けられる情報を示す第2のメタデータを生成し、
前記第1のストロークデータと前記第1のメタデータとを対応付ける第1のメタデータブロックを生成するとともに、前記第2のストロークデータと前記第2のメタデータとを対応付ける第2のメタデータブロックを生成し、
前記第1のストロークデータ、前記第2のストロークデータ、前記第1のメタデータブロック、及び前記第2のメタデータブロックを含むデジタルインクファイルを生成し、
前記デジタルインクファイルは、前記第1のストローク及び前記第2のストロークが交差する場合に交差する位置における前記第1のストローク及び前記第2のストロークの先後関係を示す順序情報であり、前記第1のストロークデータ及び前記第2のストロークデータの相対的な描画順番を示す順序情報を含む
ことを特徴とするデジタルインクファイル生成方法。
Generating a second stroke data representing a second stroke that is different from the first stroke data and the first stroke of a first stroke,
Generates first metadata indicating information associated with the first input device and second metadata indicating information associated with a second input device different from the first input device.
A first metadata block that associates the first stroke data with the first metadata is generated, and a second metadata block that associates the second stroke data with the second metadata is generated. Generate and
A digital ink file containing the first stroke data, the second stroke data, the first metadata block, and the second metadata block is generated .
The digital ink file is sequence information indicating the relationship between the first stroke and the second stroke at a position where the first stroke and the second stroke intersect when they intersect, and the first stroke. A method for generating a digital ink file, which includes order information indicating the relative drawing order of the stroke data and the second stroke data .
前記第1のメタデータは文字列で構成される情報であり、または、前記第2のメタデータは文字列で構成される情報である
ことを特徴とする請求項1に記載のデジタルインクファイル生成方法。
The digital ink file generation according to claim 1, wherein the first metadata is information composed of a character string, or the second metadata is information composed of a character string. Method.
前記第1のメタデータブロックは、前記第1のメタデータに、複数のストロークデータを含む前記第1のストロークデータを対応付け、
前記第2のメタデータブロックは、前記第2のメタデータに、複数のストロークデータを含む前記第2のストロークデータを対応付ける、
ことを特徴とする請求項1に記載のデジタルインクファイル生成方法。
The first metadata block associates the first metadata with the first stroke data including a plurality of stroke data.
The second metadata block associates the second metadata with the second stroke data including a plurality of stroke data.
The digital ink file generation method according to claim 1, wherein the digital ink file is generated.
第1のストロークを示す第1のストロークデータ及び前記第1のストロークと異なる第2のストロークを示す第2のストロークデータを生成するストロークデータ生成部と、
第1の入力デバイスに関連付けられる情報を示す第1のメタデータ及び前記第1の入力デバイスと異なる第2の入力デバイスに関連付けられる情報を示す第2のメタデータを生成するメタデータ生成部と、
前記第1のストロークデータと前記第1のメタデータとを対応付ける第1のメタデータブロックを生成するとともに、前記第2のストロークデータと前記第2のメタデータとを対応付ける第2のメタデータブロックを生成し、さらに、前記第1のストロークデータ、前記第2のストロークデータ、前記第1のメタデータブロック、及び前記第2のメタデータブロックを含むデジタルインクファイルを生成するインクファイル生成部と、
を有し、
前記デジタルインクファイルは、前記第1のストローク及び前記第2のストロークが交差する場合に交差する位置における前記第1のストローク及び前記第2のストロークの先後関係を示す順序情報であり、前記第1のストロークデータ及び前記第2のストロークデータの相対的な描画順番を示す順序情報を含む
ことを特徴とするデジタルインクファイル生成装置。
And a stroke data generating unit that generates a second stroke data representing a second stroke that is different from the first stroke data and the first stroke of a first stroke,
A metadata generator that generates a first metadata indicating information associated with a first input device and a second metadata indicating information associated with a second input device different from the first input device.
A first metadata block that associates the first stroke data with the first metadata is generated, and a second metadata block that associates the second stroke data with the second metadata is generated. An ink file generation unit that generates and further generates a digital ink file including the first stroke data, the second stroke data, the first metadata block, and the second metadata block.
Have a,
The digital ink file is sequence information indicating the relationship between the first stroke and the second stroke at a position where the first stroke and the second stroke intersect when they intersect, and the first stroke. A digital ink file generation device including the stroke data of the above and order information indicating the relative drawing order of the second stroke data .
前記第1のメタデータは文字列で構成される情報であり、または、前記第2のメタデータは文字列で構成される情報である
ことを特徴とする請求項に記載のデジタルインクファイル生成装置。
The digital ink file generation according to claim 4 , wherein the first metadata is information composed of a character string, or the second metadata is information composed of a character string. apparatus.
前記第1のメタデータブロックは、前記第1のメタデータに、複数のストロークデータを含む前記第1のストロークデータを対応付け、
前記第2のメタデータブロックは、前記第2のメタデータに、複数のストロークデータを含む前記第2のストロークデータを対応付ける、
ことを特徴とする請求項に記載のデジタルインクファイル生成装置。
The first metadata block associates the first metadata with the first stroke data including a plurality of stroke data.
The second metadata block associates the second metadata with the second stroke data including a plurality of stroke data.
The digital ink file generation device according to claim 4 .
デジタルインクファイル生成装置としてコンピュータを機能させるプログラムであって、
前記コンピュータを、
第1のストロークを示す第1のストロークデータ及び前記第1のストロークと異なる第2のストロークを示す第2のストロークデータを生成するストロークデータ生成部、
第1の入力デバイスに関連付けられる情報を示す第1のメタデータ及び前記第1の入力デバイスと異なる第2の入力デバイスに関連付けられる情報を示す第2のメタデータを生成するメタデータ生成部、及び
前記第1のストロークデータと前記第1のメタデータとを対応付ける第1のメタデータブロックを生成するとともに、前記第2のストロークデータと前記第2のメタデータとを対応付ける第2のメタデータブロックを生成し、さらに、前記第1のストロークデータ、前記第2のストロークデータ、前記第1のメタデータブロック、及び前記第2のメタデータブロックを含むデジタルインクファイルを生成するインクファイル生成部、
として機能させ
前記デジタルインクファイルは、前記第1のストローク及び前記第2のストロークが交差する場合に交差する位置における前記第1のストローク及び前記第2のストロークの先後関係を示す順序情報であり、前記第1のストロークデータ及び前記第2のストロークデータの相対的な描画順番を示す順序情報を含む
プログラム。
A program that makes a computer function as a digital ink file generator.
The computer
Stroke data generating unit that generates a second stroke data representing a second stroke that is different from the first stroke data and the first stroke of a first stroke,
A metadata generator that generates first metadata that indicates information associated with the first input device and second metadata that indicates information associated with a second input device that is different from the first input device, and A first metadata block that associates the first stroke data with the first metadata is generated, and a second metadata block that associates the second stroke data with the second metadata is generated. An ink file generator that generates a digital ink file that includes the first stroke data, the second stroke data, the first metadata block, and the second metadata block.
To function as,
The digital ink file is sequence information indicating the pre-post relationship between the first stroke and the second stroke at a position where the first stroke and the second stroke intersect when they intersect, and the first stroke. A program including order information indicating the relative drawing order of the stroke data and the second stroke data .
前記第1のメタデータは文字列で構成される情報であり、または、前記第2のメタデータは文字列で構成される情報である
ことを特徴とする請求項に記載のプログラム。
The program according to claim 7 , wherein the first metadata is information composed of a character string, or the second metadata is information composed of a character string.
前記第1のメタデータブロックは、前記第1のメタデータに、複数のストロークデータを含む前記第1のストロークデータを対応付け、
前記第2のメタデータブロックは、前記第2のメタデータに、複数のストロークデータを含む前記第2のストロークデータを対応付ける、
ことを特徴とする請求項に記載のプログラム。
The first metadata block associates the first metadata with the first stroke data including a plurality of stroke data.
The second metadata block associates the second metadata with the second stroke data including a plurality of stroke data.
7. The program according to claim 7 .
第1のストロークを示す第1のストロークデータ、前記第1のストロークと異なる第2のストロークを示す第2のストロークデータ、前記第1のストロークデータと第1の入力デバイスに関連付けられる情報を示す第1のメタデータとを対応付ける第1のメタデータブロック、及び、前記第2のストロークデータと前記第1の入力デバイスと異なる第2の入力デバイスに関連付けられる情報を示す第2のメタデータとを対応付ける第2のメタデータブロックを含むデジタルインクファイルを取得し、
前記デジタルインクファイルから前記第1のメタデータまたは前記第2のメタデータを取得し、
前記取得した前記第1のメタデータに基づいて前記デジタルインクファイルから前記第1のストロークデータを再生し、または、前記取得した前記第2のメタデータに基づいて前記デジタルインクファイルから前記第2のストロークデータを再生し、
前記デジタルインクファイルは、前記第1のストローク及び前記第2のストロークが交差する場合に交差する位置における前記第1のストローク及び前記第2のストロークの先後関係を示す順序情報であり、前記第1のストロークデータ及び前記第2のストロークデータの相対的な描画順番を示す順序情報を含み、
前記順序情報に基づいて、前記第1のストロークデータまたは前記第2のストロークデータの画像を生成する
ことを特徴とするデジタルインクファイル再生方法。
A first stroke data indicating a first stroke, a second stroke data indicating a second stroke different from the first stroke, a second stroke data indicating the first stroke data and information associated with the first input device. A first metadata block that associates with one metadata and a second metadata that indicates information associated with the second stroke data and a second input device that is different from the first input device are associated with each other. Get the digital ink file containing the second metadata block and
Obtaining the first metadata or the second metadata from the digital ink file,
The first stroke data is reproduced from the digital ink file based on the acquired first metadata, or the second stroke data is reproduced from the digital ink file based on the acquired second metadata. Play the stroke data,
The digital ink file is sequence information indicating the pre-post relationship between the first stroke and the second stroke at a position where the first stroke and the second stroke intersect when they intersect, and the first stroke. Includes order information indicating the relative drawing order of the stroke data of the second stroke data and the second stroke data.
A digital ink file reproduction method, characterized in that an image of the first stroke data or the second stroke data is generated based on the order information .
前記取得した前記第1のメタデータに基づいて前記第1のストロークデータの符号化方式を特定し、または、前記取得した前記第2のメタデータに基づいて前記第2のストロークデータの符号化方式を特定し、
前記特定した第1のストロークデータの符号化方式に基づいて前記デジタルインクファイルから前記第1のストロークデータを再生し、または、前記特定した第2のストロークデータの符号化方式に基づいて前記デジタルインクファイルから前記第2のストロークデータを再生する
ことを特徴とする請求項10に記載のデジタルインクファイル再生方法。
The coding method of the first stroke data is specified based on the acquired first metadata, or the coding method of the second stroke data is based on the acquired second metadata. Identify and
The first stroke data is reproduced from the digital ink file based on the specified first stroke data coding method, or the digital ink is reproduced based on the specified second stroke data coding method. The digital ink file reproduction method according to claim 10 , wherein the second stroke data is reproduced from a file.
前記第1のメタデータブロックは、前記第1のメタデータに、複数のストロークデータを含む前記第1のストロークデータを対応付け、
前記第2のメタデータブロックは、前記第2のメタデータに、複数のストロークデータを含む前記第2のストロークデータを対応付ける、
ことを特徴とする請求項10に記載のデジタルインクファイル再生方法。
The first metadata block associates the first metadata with the first stroke data including a plurality of stroke data.
The second metadata block associates the second metadata with the second stroke data including a plurality of stroke data.
The digital ink file reproduction method according to claim 10 .
第1のストロークを示す第1のストロークデータ、前記第1のストロークと異なる第2のストロークを示す第2のストロークデータ、前記第1のストロークデータと第1の入力デバイスに関連付けられる情報を示す第1のメタデータとを対応付ける第1のメタデータブロック、及び、前記第2のストロークデータと前記第1の入力デバイスと異なる第2の入力デバイスに関連付けられる情報を示す第2のメタデータとを対応付ける第2のメタデータブロックを含むデジタルインクファイルを取得するインクファイル受付部と、
前記デジタルインクファイルから前記第1のメタデータまたは前記第2のメタデータを取得するメタデータ復号部と、
前記取得した前記第1のメタデータに基づいて前記デジタルインクファイルから前記第1のストロークデータを再生し、または、前記取得した前記第2のメタデータに基づいて前記デジタルインクファイルから前記第2のストロークデータを再生する画像生成処理部と、
を有し、
前記デジタルインクファイルは、前記第1のストローク及び前記第2のストロークが交差する場合に交差する位置における前記第1のストローク及び前記第2のストロークの先後関係を示す順序情報であり、前記第1のストロークデータ及び前記第2のストロークデータの相対的な描画順番を示す順序情報を含み、
前記画像生成処理部は、前記順序情報に基づいて、前記第1のストロークデータまたは前記第2のストロークデータの画像を生成する
ことを特徴とするデジタルインクファイル再生装置。
A first stroke data indicating a first stroke, a second stroke data indicating a second stroke different from the first stroke, a second stroke data indicating the first stroke data and information associated with the first input device. A first metadata block that associates with one metadata and a second metadata that indicates information associated with the second stroke data and a second input device that is different from the first input device are associated with each other. An ink file reception unit that acquires a digital ink file containing a second metadata block,
A metadata decoding unit that acquires the first metadata or the second metadata from the digital ink file, and
The first stroke data is reproduced from the digital ink file based on the acquired first metadata, or the second stroke data is reproduced from the digital ink file based on the acquired second metadata. An image generation processing unit that reproduces stroke data,
Have a,
The digital ink file is sequence information indicating the pre-post relationship between the first stroke and the second stroke at a position where the first stroke and the second stroke intersect when they intersect, and the first stroke. Includes order information indicating the relative drawing order of the stroke data of the second stroke data and the second stroke data.
The image generation processing unit is a digital ink file reproduction device characterized in that an image of the first stroke data or the second stroke data is generated based on the order information .
前記メタデータ復号部は、前記取得した前記第1のメタデータに基づいて前記第1のストロークデータの符号化方式を特定し、または、前記取得した前記第2のメタデータに基づいて前記第2のストロークデータの符号化方式を特定し、
前記画像生成処理部は、前記特定した第1のストロークデータの符号化方式に基づいて前記デジタルインクファイルから前記第1のストロークデータを再生し、または、前記特定した第2のストロークデータの符号化方式に基づいて前記デジタルインクファイルから前記第2のストロークデータを再生する
ことを特徴とする請求項13に記載のデジタルインクファイル再生装置。
The metadata decoding unit identifies the encoding method of the first stroke data based on the acquired first metadata, or the second metadata based on the acquired second metadata. Identify the encoding method of the stroke data of
The image generation processing unit reproduces the first stroke data from the digital ink file based on the specified first stroke data coding method, or encodes the specified second stroke data. The digital ink file reproduction apparatus according to claim 13 , wherein the second stroke data is reproduced from the digital ink file based on a method.
前記第1のメタデータブロックは、前記第1のメタデータに、複数のストロークデータを含む前記第1のストロークデータを対応付け、
前記第2のメタデータブロックは、前記第2のメタデータに、複数のストロークデータを含む前記第2のストロークデータを対応付ける、
ことを特徴とする請求項13に記載のデジタルインクファイル再生装置。
The first metadata block associates the first metadata with the first stroke data including a plurality of stroke data.
The second metadata block associates the second metadata with the second stroke data including a plurality of stroke data.
The digital ink file reproduction device according to claim 13 .
デジタルインクファイル再生装置としてコンピュータを機能させるプログラムであって、
前記コンピュータを、
第1のストロークを示す第1のストロークデータ、前記第1のストロークと異なる第2のストロークを示す第2のストロークデータ、前記第1のストロークデータと第1の入力デバイスに関連付けられる情報を示す第1のメタデータとを対応付ける第1のメタデータブロック、及び、前記第2のストロークデータと前記第1の入力デバイスと異なる第2の入力デバイスに関連付けられる情報を示す第2のメタデータとを対応付ける第2のメタデータブロックを含むデジタルインクファイルを取得するインクファイル受付部、
前記デジタルインクファイルから前記第1のメタデータまたは前記第2のメタデータを取得するメタデータ復号部、及び、
前記取得した前記第1のメタデータに基づいて前記デジタルインクファイルから前記第1のストロークデータを再生し、または、前記取得した前記第2のメタデータに基づいて前記デジタルインクファイルから前記第2のストロークデータを再生する画像生成処理部、
として機能させ
前記デジタルインクファイルは、前記第1のストローク及び前記第2のストロークが交差する場合に交差する位置における前記第1のストローク及び前記第2のストロークの先後関係を示す順序情報であり、前記第1のストロークデータ及び前記第2のストロークデータの相対的な描画順番を示す順序情報を含み、
前記画像生成処理部は、前記順序情報に基づいて、前記第1のストロークデータまたは前記第2のストロークデータの画像を生成する
プログラム。
A program that makes a computer function as a digital ink file playback device.
The computer
A first stroke data indicating a first stroke, a second stroke data indicating a second stroke different from the first stroke, a second stroke data indicating the first stroke data and information associated with the first input device. A first metadata block that associates with one metadata and a second metadata that indicates information associated with the second stroke data and a second input device different from the first input device are associated with each other. An ink file reception unit that acquires a digital ink file containing a second metadata block,
A metadata decoding unit that acquires the first metadata or the second metadata from the digital ink file, and
The first stroke data is reproduced from the digital ink file based on the acquired first metadata, or the second stroke data is reproduced from the digital ink file based on the acquired second metadata. Image generation processing unit that reproduces stroke data,
To function as,
The digital ink file is sequence information indicating the pre-post relationship between the first stroke and the second stroke at a position where the first stroke and the second stroke intersect when they intersect, and the first stroke. Includes order information indicating the relative drawing order of the stroke data of the second stroke data and the second stroke data.
The image generation processing unit is a program that generates an image of the first stroke data or the second stroke data based on the order information .
前記メタデータ復号部は、前記取得した前記第1のメタデータに基づいて前記第1のストロークデータの符号化方式を特定し、または、前記取得した前記第2のメタデータに基づいて前記第2のストロークデータの符号化方式を特定し、
前記画像生成処理部は、前記特定した第1のストロークデータの符号化方式に基づいて前記デジタルインクファイルから前記第1のストロークデータを再生し、または、前記特定した第2のストロークデータの符号化方式に基づいて前記デジタルインクファイルから前記第2のストロークデータを再生する
ことを特徴とする請求項16に記載のプログラム。
The metadata decoding unit identifies the encoding method of the first stroke data based on the acquired first metadata, or the second metadata based on the acquired second metadata. Identify the encoding method of the stroke data of
The image generation processing unit reproduces the first stroke data from the digital ink file based on the specified first stroke data coding method, or encodes the specified second stroke data. The program according to claim 16 , wherein the second stroke data is reproduced from the digital ink file based on the method.
前記第1のメタデータブロックは、前記第1のメタデータに、複数のストロークデータを含む前記第1のストロークデータを対応付け、
前記第2のメタデータブロックは、前記第2のメタデータに、複数のストロークデータを含む前記第2のストロークデータを対応付ける、
ことを特徴とする請求項16に記載のプログラム。
The first metadata block associates the first metadata with the first stroke data including a plurality of stroke data.
The second metadata block associates the second metadata with the second stroke data including a plurality of stroke data.
16. The program of claim 16 .
JP2019179182A 2019-09-30 2019-09-30 Digital ink file generation method, digital ink file generation device, digital ink file playback method, digital ink file playback device, and program Active JP6790208B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019179182A JP6790208B2 (en) 2019-09-30 2019-09-30 Digital ink file generation method, digital ink file generation device, digital ink file playback method, digital ink file playback device, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019179182A JP6790208B2 (en) 2019-09-30 2019-09-30 Digital ink file generation method, digital ink file generation device, digital ink file playback method, digital ink file playback device, and program

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2015070827A Division JP6596215B2 (en) 2015-03-31 2015-03-31 INK FILE SEARCH METHOD, SEARCH DEVICE, AND PROGRAM

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2020184165A Division JP7072621B2 (en) 2020-11-04 2020-11-04 Digital ink file playback device, digital ink file playback method, and program

Publications (2)

Publication Number Publication Date
JP2020035452A JP2020035452A (en) 2020-03-05
JP6790208B2 true JP6790208B2 (en) 2020-11-25

Family

ID=69668464

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019179182A Active JP6790208B2 (en) 2019-09-30 2019-09-30 Digital ink file generation method, digital ink file generation device, digital ink file playback method, digital ink file playback device, and program

Country Status (1)

Country Link
JP (1) JP6790208B2 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11177518A (en) * 1997-12-12 1999-07-02 Kokusai Electric Co Ltd Data communication device
JP5401493B2 (en) * 2011-03-04 2014-01-29 エヌ・ティ・ティ・コムウェア株式会社 Information analysis apparatus, display terminal, information analysis method, and information analysis program
JP6056263B2 (en) * 2012-08-24 2017-01-11 大日本印刷株式会社 Terminal device, electronic pen system, and program

Also Published As

Publication number Publication date
JP2020035452A (en) 2020-03-05

Similar Documents

Publication Publication Date Title
JP5886487B1 (en) Ink file output method and output device
CN102792248B (en) Input/output unit, information input-output system
US20030046256A1 (en) Distributed information management
JP2004152040A (en) Handwriting input device, program, and handwriting input method system
US20050105799A1 (en) Dynamic typography system
CN102037476B (en) Decoupled applications for printed materials
US20130215151A1 (en) Apparatus and method of encoding and decoding image files
JP7087364B2 (en) Information processing equipment, information processing systems and programs
JP6790208B2 (en) Digital ink file generation method, digital ink file generation device, digital ink file playback method, digital ink file playback device, and program
JP7072621B2 (en) Digital ink file playback device, digital ink file playback method, and program
JP2012103776A (en) Track information processing device, track information processing system, and program
JP6387207B1 (en) Digital ink encoding method and decoding method
JP6596215B2 (en) INK FILE SEARCH METHOD, SEARCH DEVICE, AND PROGRAM
KR102122918B1 (en) Interactive question-anwering apparatus and method thereof
JP5384315B2 (en) SEARCH DEVICE, METHOD, AND PROGRAM
JPH1091701A (en) Form document system
JP2009181518A (en) Document management apparatus and program
WO2023145227A1 (en) Content evaluation device, program, method, and system
JP2009181519A (en) Document management apparatus and program
CN108664244B (en) Interface generation method and system based on position coding
KR20160124555A (en) Method for sharing handwirting in social network system
JP5293304B2 (en) Medium position management device and program
JP2014225095A (en) Server device and program
CN117493594A (en) Query method and device for game resources, electronic equipment and storage medium
JP4911299B2 (en) Electronic device and data generation method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200707

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200709

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200901

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: 20201006

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201104

R150 Certificate of patent or registration of utility model

Ref document number: 6790208

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250