JP6387207B1 - デジタルインクの符号化方法、復号化方法 - Google Patents

デジタルインクの符号化方法、復号化方法 Download PDF

Info

Publication number
JP6387207B1
JP6387207B1 JP2018511499A JP2018511499A JP6387207B1 JP 6387207 B1 JP6387207 B1 JP 6387207B1 JP 2018511499 A JP2018511499 A JP 2018511499A JP 2018511499 A JP2018511499 A JP 2018511499A JP 6387207 B1 JP6387207 B1 JP 6387207B1
Authority
JP
Japan
Prior art keywords
data
digital ink
width
encoding
binary
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
JP2018511499A
Other languages
English (en)
Other versions
JPWO2018124209A1 (ja
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
Application granted granted Critical
Publication of JP6387207B1 publication Critical patent/JP6387207B1/ja
Publication of JPWO2018124209A1 publication Critical patent/JPWO2018124209A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/142Image acquisition using hand-held instruments; Constructional details of the instruments
    • G06V30/1423Image acquisition using hand-held instruments; Constructional details of the instruments the instrument generating sequences of position coordinates corresponding to handwriting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0354Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of 2D relative movements between the device, or an operating part thereof, and a plane or surface, e.g. 2D mice, trackballs, pens or pucks
    • G06F3/03545Pens or stylus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0412Digitisers structurally integrated in a display
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/0414Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means using force sensing means to determine a position
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/32Digital ink
    • G06V30/333Preprocessing; Feature extraction
    • G06V30/347Sampling; Contour coding; Stroke extraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/041Indexing scheme relating to G06F3/041 - G06F3/045
    • G06F2203/041012.5D-digitiser, i.e. digitiser detecting the X/Y position of the input means, finger or stylus, also when it does not touch, but is proximate to the digitiser's interaction surface and also measures the distance of the input means within a short range in the Z direction, possibly with a separate measurement setup

Abstract

固定幅であっても可変幅であっても同一の復号方法によりデジタルインクを復号可能であり、かつ、ストロークの少なくとも一部を固定幅にする場合に、ストロークの全部を可変幅にする場合と比べてデジタルインクのビット数を削減できるデジタルインクの符号化を実現する。本発明によるデジタルインクの符号化方法は、スタイラスの動作に伴って取得されたN個の位置データPを符号化することによって、一連のx座標データ及びy座標データの組を示す第1のバイナリを取得するステップS8と、N個の位置データPそれぞれの位置における幅を決定するM個(Mは1以上N以下の整数)の幅データWを符号化することによって、第1のバイナリから全体として分離されてなる第2のバイナリを取得するステップS9と、第1及び第2のバイナリを互いに異なる領域に含むバイナリストリームBinInkを生成するシリアライズステップS13と、を含む。

Description

本発明は、デジタルインクの符号化方法、デジタルインクの復号方法、デジタルインクのデータ構造、及び、デジタルインクを含むファイルの生成方法に関する。
インクの充填されたペンや絵の具の付いた毛筆を紙の上で動かすことにより、インクや絵の具が紙に吸収あるいは堆積され軌跡が描かれる。このように紙に描かれた手書きの軌跡(ストローク)を模擬するように、電子ペンやスタイラスなどの指示体をタブレット等の座標検出装置の上で動かした軌跡を電子データ化したデータがデジタルインクである。特許文献1,2には、このようなデジタルインクの例が開示されている。
デジタルインクは通常、特許文献1に示されるように、手書きの軌跡を再現するためのベクターデータ及びその軌跡の描画スタイルを記述するデータを含み構成される。デジタルインクの具体的なフォーマットとしては、非特許文献1に開示されるSVG(Scalable Vector Graphics)、非特許文献2に開示されるWindows Ink、非特許文献3に開示されるInkML(Ink Markup Language)、非特許文献4に開示されるOffice
Open XMLなどが知られている。これらはいずれも、多様な環境の下(様々なOSで動作する描画アプリケーションや文書作成アプリケーションなど)で利用できるように標準化されたデータフォーマットである。
国際公開第2015/075930号 米国特許出願公開第2017/0236021号明細書
"SVG 1.1(Second Edition)"、[online]、平成23年8月16日、ワールド・ワイド・ウェブ・コンソーシアム、[平成29年12月6日検索]、インターネット<URL:http://www.w3.org/TR/SVG/paths.html> ".NET Framework Class Library"、[online]、マイクロソフト・コーポレイション、[平成29年12月6日検索]、インターネット<URL:https://msdn.microsoft.com/en-us/library/system.windows.ink.stroke(v=vs.110).aspx> "Ink Markup Language (InkML)"、[online]、平成23年9月20日、ワールド・ワイド・ウェブ・コンソーシアム、[平成29年12月6日検索]、インターネット<URL:https://www.w3.org/TR/InkML/> "ISO/IEC 29500−2:2012"、[online]、平成24年9月1日、国際標準化機構、[平成29年12月13日検索]、インターネット<URL: http://standards.iso.org/ittf/PubliclyAvailableStandards/index.html>
固定幅であっても可変幅であっても同一の復号方法によりデジタルインクを復号可能であり、かつ、ストロークの少なくとも一部を固定幅にする場合に、ストロークの全部を可変幅にする場合と比べてデジタルインクのビット数を削減できるデジタルインクの符号化を実現する。
また、座標検出装置やスタイラスごとに異なり得る位置データの精度データに基づき、ストローク単位で位置データを符号化ないし復号可能とする。これにより、1つのデジタルインク内に、互いに精度の異なる複数の位置データを配置することを可能にする。
さらに、ストロークを構成する一連の位置データを符号化することによって生成されたバイナリストリームに対し、XML等の汎用の記述法によりメタデータを付与可能にする。
本発明によるデジタルインクの符号化方法は、ポインティングデバイスの状態によって決まる所定の期間内における該ポインティングデバイスの動作に伴い取得されたそれぞれx座標データ及びy座標データの組を含んでなるN個の位置データを符号化することによって、一連のx座標データ及びy座標データの組を示す第1のバイナリを取得する座標符号化ステップと、前記N個の位置データそれぞれの位置における幅を決定するM個(Mは1以上N以下の整数)の幅データを符号化することによって、前記第1のバイナリから全体として分離されてなる第2のバイナリを取得する幅符号化ステップと、前記第1及び第2のバイナリを互いに異なる領域に含むバイナリストリームを生成するシリアライズステップと、を含む。
上記デジタルインクの符号化方法においては、前記N個の位置データの精度を示す精度データを符号化することによって第3のバイナリを生成する精度データ符号化ステップをさらに含み、前記座標符号化ステップは、前記精度データを用いて前記N個の位置データを符号化し、前記シリアライズステップは、復号順で前記前記第2のバイナリより前に前記第3のバイナリが含まれるように、前記第1乃至第3のバイナリを互いに異なる領域に含む前記バイナリストリームを生成する、こととしてもよい。
本発明によるデジタルインクの復号方法は、符号化されたデジタルインクを含むバイナリストリームからポインティングデバイスの軌跡を再現するためのデジタルインクの復号方法であって、前記ポインティングデバイスの状態によって決まる所定の期間内における該ポインティングデバイスの動作に伴い取得されたN個の位置データを、前記バイナリストリームの第1の領域から復号する位置データ復号ステップと、前記N個の座標データの位置での幅を決定するM個(Mは1以上N以下の整数)の幅データを、前記バイナリストリームのうち前記第1の領域とは異なる第2の領域から復号する幅データ復号ステップと、前記M個が前記N個より少ない場合に、前記M個の幅データのうちのいずれかにより、前記N個の位置データのうちのN−M個それぞれの位置における幅を補完する幅補完ステップと、を含む。
本発明によるデジタルインクのデータ構造は、ポインティングデバイスの状態によって決まる所定の期間内における該ポインティングデバイスの動作に伴い取得されたN個の位置データを符号化することによって得られる第1のバイナリと、前記N個の位置データそれぞれの位置における幅を決定するM個(Mは1以上N以下の整数)の幅データを符号化することによって得られる第2のバイナリとを異なる領域に含み、前記デジタルインクの復号方法を実行するコンピュータにおいて、前記第1のバイナリから前記N個の座標データを復元し、前記第2のバイナリから前記M個の幅データを復元し、前記M個の幅データを前記N個の座標データに対応付ける処理に用いられる。
本発明による符号化されたデジタルインクを含むファイルの生成方法は、符号化されたデジタルインクを含むファイルの生成方法であって、ポインティングデバイスの状態によって決まる所定の期間内における該ポインティングデバイスの動作に伴い取得されたN個の位置データを第1の符号化方法により符号化することによってバイナリストリームを取得する第1の符号化ステップと、前記バイナリストリームに付与すべきメタデータを取得し、該メタデータを含む第1のXMLデータを第2の符号化方法により符号化することによって第1のXMLファイルを生成する第1のメタデータバイナリ生成ステップと、前記バイナリストリームを示すターゲットIDと、該バイナリストリームに関連付ける前記メタデータとの関係を示す第2のXMLデータを生成し、該第2のXMLデータを前記第2の符号化方法により符号化することによって第2のXMLファイルを生成する第2のメタデータバイナリ生成ステップと、前記バイナリストリームと、前記第1及び第2のXMLファイルとを一つのパッケージファイルにアーカイブするパッケージ生成ステップと、を含むデジタルインクを含む。
本発明によるデジタルインクの符号化方法、復号方法、及びデータ構造によれば、一連のx座標データ及びy座標データ(並びにz座標データ)の組が1つのバイナリ(第1のバイナリ)を形成するようにシリアライズを実行しつつも、その組により示される位置における幅データについては、第1のバイナリから全体として分離されてなる第2のバイナリにシリアライズを実行するので、固定幅(M=1)であっても可変幅(1<M≦N)であっても同一の復号方法によりデジタルインクを復号可能となり、かつ、ストロークの少なくとも一部を固定幅にする場合(1≦M<N)に、ストロークの全部を可変幅にする場合(M=N)と比べてデジタルインクのビット数を削減できる。
また、本発明によるデジタルインクの符号化方法、復号方法、及びデータ構造によれば、座標検出装置ごとに異なり得る位置データの精度データに基づき、ストローク単位で位置データを符号化ないし復号可能となる。したがって、1つのデジタルインク内に、互いに精度の異なる複数の位置データを配置することが可能になる。
また、本発明によるデジタルインクを含むファイルの生成方法によれば、ストロークを構成する一連の位置データを符号化することによって生成されたバイナリストリームに対し、XML等の汎用の記述法によりメタデータを付与することが可能になる。
本発明の実施の形態による座標検出装置1のシステム構成を示す図である。 本発明の実施の形態によるデジタルインク100のデータのモデルを示すER(Entity-Relationship)図である。 N個の位置データP〜Pにより構成されるパスデータPAと、このパスデータPAに包含されるN−1個のセグメントS〜SN−1との幾何上の関係を示す図である。 図3に示したパスデータPAに含まれる幅データWの例を示す図である。 図3に示したパスデータPAに含まれる幅データWの他の例を示す図である。 図2に示したスタートパラメータ104及びエンドパラメータ105を説明する図である。 図6に示したセグメントS,Si+1のそれぞれと、GPU40によって描画されるキャットマル−ロム曲線との関係を示す図である。 本発明の実施の形態によるデジタルインク100の符号化処理を示すフロー図である。 本発明の実施の形態による位置データP及び幅データWの符号化処理のフロー図である。 1つのパスデータPAを符号化することによって得られるパスメッセージBinPathのスキーマの例を示す図である。 本発明の実施の形態によるデジタルインク100の復号処理を示すフロー図である。 本発明の実施の形態によるデジタルインク100の復号処理を示すフロー図である。 本発明の実施の形態による位置データP及び幅データWの復号処理のフロー図である。 本発明の実施の形態によるコンテナファイルCFを構成するエンティティを説明するER図である。 本発明の実施の形態によるコンテナファイルCF内にアーカイブされるファイル群の構成例を示す図である。 (a)は、関係ファイル401の具体的な内容の例を示す図である。(b)は、XMLファイル411の具体的な内容の例を示す図であり、(c)は、XMLファイル412の具体的な内容の例を示す図である。 (a)は、関係ファイル422の具体的な内容の例を示す図であり、(b)は、SVGファイル423の具体的な内容の例を示す図である。 本発明の実施の形態によるコンテナファイルCFの生成方法のフロー図である。
以下、添付図面を参照しながら、本発明の実施の形態について詳細に説明する。
図1は、本発明の実施の形態による座標検出装置1のシステム構成を示す図である。同図には、座標検出装置1への入力装置として機能するスタイラス2(ポインティングデバイス)も図示している。
図1に示すように、座標検出装置1は、電極群11に接続されたセンサコントローラ10と、センサコントローラ10に接続された入出力部23、CPU21、RAM22、及び、GPU30を含み構成されるコンピュータである。図示していないが、座標検出装置1には、液晶ディスプレイなどの表示部も設けられる。具体的な例では、座標検出装置1はタブレット端末又はスマートフォンである。
電極群11は、座標検出装置1に設けられるパネル面(平面)に平行に面を形成するように配設された各複数の電極11x,11yを含んで構成される。複数の電極11x,11yはそれぞれ、上記表示部の表示面上(又は裏側)に配置された透明な導体である。図1に示すように、複数の電極11xは、それぞれy方向(パネル面内の方向)に延設され、かつ、x方向(パネル面内でy方向に直交する方向)に等間隔で配置される。また、複数の電極11yは、それぞれx方向に延設され、かつ、y方向に等間隔で配置される。
センサコントローラ10は、電極群11を用いて、ポインティングデバイスとしてのスタイラス2がパネル面に接触したか(図1に示す「DOWN」)、又は、離間したか(図1に示す「UP」)を検出する機能と、パネル面内におけるスタイラス2の位置を示す位置データPを導出する機能と、スタイラス2から筆圧値WPを受信する機能とを有する。ここで、位置データPは、パネル面内の位置を示す2次元の座標(すなわち、x座標データ及びy座標データの組(x,y))によって表されてもよいし、パネル面内の位置及びパネル面とスタイラス2のペン先との間の距離を示す3次元の座標(すなわち、x座標データ、y座標データ、及びz座標データの組(x,y,z))によって表されてもよい。また、筆圧値WPは、スタイラス2のペン先がパネル面から受ける力を示す値であり、スタイラス2内に設けられるセンサによって検出される。
センサコントローラ10は、スタイラス2の状態によって決まる所定の期間内におけるスタイラス2の動作に伴って、一連の位置データの取得を行う。具体的には、例えば位置データPが2次元の座標によって表される場合であれば、センサコントローラ10は、例えばスタイラス2がパネル面にダウンされてからパネル面からアップされるまでの間、スタイラス2の位置データPの導出を周期的に行えばよい。また、位置データPが3次元の座標によって表される場合であれば、センサコントローラ10は、例えばスタイラス2がパネル面に一旦ダウンされてからユーザによってスタイラス2のボタン(スタイラス2の側面又は端部に配置される押しボタン)が押下されるまでの間、又は、ユーザによってスタイラス2のボタンが押下されてから再度ユーザによってスタイラス2のボタンが押下されるまでの間、スタイラス2の位置データPの導出を周期的に行えばよい。こうして導出された一連の位置データPは、それぞれ筆圧値WPと対応付けて、スタイラスデータとして入出力部23に供給される。
CPU21、RAM22、及び入出力部23は、デジタルインク100についての各種の処理を実行するデジタルインク処理部20を構成する。具体的に説明すると、CPU21は、センサコントローラ10から入出力部23に供給されたスタイラスデータに基づいてRAM22内にデジタルインク100を生成し、生成したデジタルインク100を後述する図8に示す符号化方法によって符号化する処理を実行する。また、CPU21は、符号化したデジタルインク100を含むバイナリストリームBinInkを、後述する図18に示す方法によって所定形式のコンテナファイルCF内にアーカイブし、外部に出力する処理を実行する。
ここで、コンテナファイルCFの出力先は、他のコンピュータであってもよいし、座標検出装置1自身であってもよい。また、コンテナファイルCF内にアーカイブされていない状態のバイナリストリームBinInkを直接、外部に出力することとしてもよい。この場合、バイナリストリームBinInkの断片化によって得られる各断片を、互いに異なるパケットのペイロードに含めて通信することとしてもよい。
CPU21はまた、符号化したデジタルインク100を含むバイナリストリームBinInkがアーカイブされたコンテナファイルCF(又は、コンテナファイルCF内にアーカイブされていない状態のバイナリストリームBinInk)の入力を受け付け、その中に含まれるデジタルインク100を後述する図11及び図12に示す復号方法によって復号することにより、デジタルインク100をRAM22内に復元する処理を実行する。
GPU40は、RAM22内に生成又は復元されたデジタルインク100のレンダリングを実行し、その結果をパネル面(表示部)に供給する機能を有する。これにより、デジタルインク100の描画が実行される。
デジタルインク100について説明する。デジタルインク100は、インクペンや鉛筆等の筆記具を用いて紙媒体等に残されたインクあるいは鉛筆粉等により表現される筆跡を模擬するデータである。デジタルインク100には、少なくとも1つのパスデータPAが含まれる。パスデータPAは、スタイラス2などのポインティングデバイスを動かすことにより生成されるデータであり、例えば、スタイラス2がパネル面にタッチしてから(図1のDOWN)、パネル面上を摺動した後、パネル面から離れる(図1のUP)までにパネル面上で動いた軌跡(trajectory、path、stroke等と称される)の幾何形状(2次元グラフィックス上での特徴)を表現している。
なお、本明細書では、このように手書きの軌跡を表現するデータを「パスデータ」と称するが、これは非特許文献1の用語に従ったものであり、他の用語を用いても差し支えない。例えば、非特許文献2において使用される「ストローク(Stroke)」、デジタルインクの標準の1つとして知られる非特許文献3において使用される「トレース(trace)」などの用語を、パスデータの代わりに用いてもよい。
パスデータPAには、軌跡の幅を示す幅データ、軌跡の色・透明度を示すカラーデータなどのメタデータや、その他のデータ(例えば画像データ)が関連付けられ得る。パスデータPAのレンダリングは、関連付けられたレンダリング方法によって実行される。このレンダリング方法は、形状の全てをベクターベースでレンダリングする、というものであってもよいし、ビットマップ等ピクセルデータを一部利用することによりピクセルベースの処理を用いてレンダリングする、というものであってもよいし、これら2つの方法を混合させた方法を用いてレンダリングする、というものであってもよい。
図2は、デジタルインク100のデータのモデルを示すER(Entity-Relationship)図である。同図において、矩形はエンティティを示し、楕円はエンティティの属性を示している。図2に示すように、デジタルインク100は、パスクラス101及びセグメントクラス110という2つのエンティティを含んで構成される。上述したパスデータPAは、パスクラス101のインスタンスである。また、以下では、セグメントクラス110のインスタンスをセグメントSと称する。
図2の菱形は、エンティティ間の関係を示している。菱形の両側にある記号は多重度(cardinality)を示すもので、図2の例では、1以上のパスクラス101のインスタンス(=パスデータPA)のそれぞれに、0個以上のセグメントクラス110のインスタンス(=セグメントS)が包含される、という関係(1対0以上の関係)が示されている。
パスクラス101は、デジタルインク100の核となるエンティティであり、スタイラス2をパネル面にダウンさせてからアップさせるまでのパネル面上におけるスタイラス2の移動の軌跡(SVGにおける「パスストローク」)を記述するために使用される。パスクラス101のインスタンスであるパスデータPAは複数の位置データPを含んで構成され、1つの軌跡が生成される都度新たに生成される。パスクラス101の属性には、ストロークカラー102及びストローク幅103という2つのスタイル属性と、スタートパラメータ104及びエンドパラメータ105という2つの幾何属性と、精度データ106とが含まれる。
セグメントクラス110は、パスデータPAを構成する複数の位置データPによって表される軌跡を分割してなるセグメントを示すエンティティであり、キャットマル−ロム曲線などの所定の補間曲線に関連付けて使用される。以下では、この補間曲線がキャットマル−ロム曲線である場合を例にとって説明を続ける。この場合、セグメントクラス110のインスタンスであるセグメントSには、属性として4つの位置111が含まれる。各位置111は補間曲線のコントロールポイントを表すもので、キャットマル−ロム曲線の場合には、それぞれがパスデータPAを構成する複数の位置データPのいずれかに対応する。この点については、後ほど図6及び図7を参照しながら詳しく説明する。
なお、パスクラス101及びセグメントクラス110といったエンティティの名前自体は、非特許文献1に記載されるSVGのパス仕様(Path Specification)のサブセット(Path data、SVGPathSeg等)を踏襲したものであるが、図2に示す各属性は、本発明のデジタルインク100のために拡張されたものである。
図3は、N個の位置データP〜Pにより構成されるパスデータPAと、このパスデータPAに包含されるN−1個のセグメントS〜SN−1との幾何上の関係を示す図である。同図に示すように、セグメントS(kは1〜N−1までの整数)は、位置データPと位置データPk+1との間に形成される曲線を表すデータとなる。
図2に戻り、ストロークカラー102は、パスデータPAをレンダリングする際に用いられる色及び透明度を示す属性である。ストロークカラー102によって示される色及び透明度は、1つのパスデータPAにつき1つ(1つのRGB値及び1つの透明度A。固定カラー)としてもよいし、1つのパスデータPAにつきM個(M個のRGB値及びM個の透明度A。可変カラー)としてもよい。また、1つのパスデータPAに対し、1つのRGB値及びM個の透明度Aを示すストロークカラー102を対応付けることとしてもよい。ただし、Mは、1以上N以下の整数である。以下では、ストロークカラー102についての説明は特に行わないが、デジタルインク処理部20は、後述するストローク幅103についての処理と同様の処理により、ストロークカラー102の符号化及び復号を行うよう構成される。
ストローク幅103は、パスデータPAを構成する複数の位置データそれぞれの位置における軌跡の幅を示す属性である。デジタルインク処理部20は、センサコントローラ10から供給される筆圧値WP(図1を参照)に基づいて、ストローク幅103の具体的な値(幅データW)を決定する。ストロークカラー102と同様に、ストローク幅103によって示される幅は、1つのパスデータPAにつき1つ(固定幅)としてもよいし、1つのパスデータPAにつきM個(可変幅)としてもよい。なお、Mの具体的な値は、ストロークカラー102とストローク幅103とで同じであってもよいし、異なっていてもよい。
図4は、図3に示したパスデータPAに含まれる幅データWの例を示す図である。同図には、パスデータPAを構成するN個の位置データP〜Pがそれぞれ2次元の座標によって表される例を示している。また、図4(a)にはM=Nの場合を示し、図4(b)にはM<Nの場合を示している。
初めに図4(a)を参照すると、この場合のパスデータPAには、N個の位置データP〜Pそれぞれの位置における軌跡の幅を示すN個の幅データW〜Wが含まれる。図1に示したGPU40を用いたレンダリングにおいては、このN個の幅データW〜Wに従ってN個の位置データP〜Pそれぞれの位置における軌跡の幅が決定され、決定された幅を直径とする円をなめらかに包絡することによって、軌跡の描画が実行される。上掲した特許文献2には、この描画の詳細が記載されている。
なお、軌跡の描画のために用いる図形としては、円ではなく楕円を用いることとしてもよい。この場合における幅データWは楕円の長径又は短径などを示すデータとなり、GPU40は、N個の位置データP〜Pそれぞれの位置における軌跡の幅を決定する際に、各位置における楕円の向きを決定する必要がある。各位置における楕円の向きによって描画結果が変わってくるからである。これに対し、円を用いる場合には、円が等方性を有することから、この向きを決定するステップを省略することができる。
次に図4(b)を参照すると、この場合のパスデータPAには、M個の位置データP〜Pそれぞれの位置における軌跡の幅を示すM個の幅データW〜Wが含まれる。ただし、同図においてはM<Nである。N−M個の位置データPM+1〜Pそれぞれの位置における軌跡の幅を示す幅データWは、パスデータPAに含まれない。
この場合、図1に示したGPU40によるレンダリングにおいては、まずM個の幅データW〜Wに従ってM個の位置データP〜Pそれぞれの位置における軌跡の幅が決定され、次いで、M個の幅データW〜Wのうちのいずれか(図4(b)の例では、幅データW)に従って、残りのN−M個の位置データPM+1〜Pそれぞれの位置における軌跡の幅が決定される。そして、こうして決定された幅を直径とする円をなめらかに包絡することによって、軌跡の描画が実行される。
なお、図4(b)についての説明から理解されるように、M=1である場合には、図1に示したGPU40によるレンダリングにおいて、1個の幅データWに従ってN個の位置データP〜Pそれぞれの位置における軌跡の幅が決定されることになる。したがって、固定幅で軌跡の描画が実行されることになる。
図5は、図3に示したパスデータPAに含まれる幅データWの他の例を示す図である。同図には、パスデータPAを構成するN個の位置データP〜Pがそれぞれ3次元の座標によって表される例を示している。ただし、図5においては、N=5としている。
図5に示すように、位置データP〜Pがz座標データを含む3次元の座標によって表される場合、幅データWは、球SHの径(例えば直径又は半径)を示すデータであるとすることが好適である。この場合のレンダリングにおいては、N個の幅データW〜WによりN個の位置データP〜Pそれぞれの位置を中心とする球SHの直径が決定され、さらに、位置データPの進行方向(例えば、位置データP〜Pを補間してなる補間曲線の各位置における接線の延在方向)に対して鉛直な面内に位置する球SHの大円(図5に網掛けで示した図形)が決定される。そして、各大円をなめらかに通過するように軌跡の描画が実行される。
なお、位置データPが3次元の座標によって表される場合の幅データWは、軌跡を通過させる所定の形状の輪郭あるいは面積に対応するデータであればよい。上述した球SHの直径を示す幅データWは、このような幅データWの一例である。また、所定の形状としては、球SHの大円ではなく、楕円や正方形を用いることとしてもよい。ただし、この場合におけるGPU40は、軌跡の描画の際に、進行方向に対して鉛直な面内に配置される所定の形状の輪郭の座標位置を得るために、上記鉛直な面内における楕円や正方形の向きを決定する必要がある。大円を用いる場合には、大円が上記鉛直な面内で等方性を有することから、1つのパラメータで輪郭の座標位置が決定されるため、向きを決定するためのステップを省略することができる。
図2に戻り、スタートパラメータ104は、1つのパスデータPAを構成する1以上のセグメントSのうち、先頭に対応する開始セグメントSstartの描画開始位置を示す属性である。また、エンドパラメータ105は、1つのパスデータPAを構成する1以上のセグメントSのうち、末尾に対応する終了セグメントSendの描画終了位置を示す属性である。
図6は、スタートパラメータ104及びエンドパラメータ105を説明する図である。同図に示したパスデータPA及び各セグメントSは、図3及び図4に示したものと同じものである。同図では、上述したキャットマル−ロム曲線についても詳しく説明する。
スタートパラメータ104は、開始セグメントSstart(=S)のt値によって表される。t値は、図6に併記したセグメントSの拡大図に示すように、0以上1以下の値をとるセグメントの内分点である。スタートパラメータ104によれば、位置データPにより示される位置と位置データPにより示される位置との間の任意の位置を、表示処理を開始する位置として指定することができる。
スタートパラメータ104の初期値は0である(後述する図10の2行目「default=0」を参照)。この初期値0は、パスデータPAのレンダリングが開始セグメントSstartの先頭から開始されることを示している。参考のために、図6には、スタートパラメータ104の値が0.5である場合において開始セグメントSstartの表示が開始される位置SPを示している。
エンドパラメータ105は、終了セグメントSend(=SN−1)のt値によって表される。エンドパラメータ105によれば、位置データPN−1により示される位置と位置データPにより示される位置との間の任意の位置を、表示処理を終了する位置として指定することができる。
エンドパラメータ105の初期値は1である(後述する図10の3行目「default=1」を参照)。この初期値1は、パスデータPAのレンダリングが終了セグメントSendの末尾まで実行されることを示している。参考のために、図6には、エンドパラメータ105の値が0.7である場合において終了セグメントSendの表示が終了する位置EPを示している。
なお、開始セグメントSstartでも終了セグメントSendでもないセグメントSにおいては、すべての区間で表示処理が実行されるため、t値は特段の意味を有さない。スタートパラメータ104及びエンドパラメータ105は、1つのパスデータPAに1つずつ存在するものである。
キャットマル−ロム曲線について、説明する。キャットマル−ロム曲線によるセグメントSは、属性である位置111(図2を参照)として、その両端に位置する2つの位置データP,Pi+1と、さらにその外側に位置する2つの位置データPi−1,Pi+ とを含んで構成される。図1に示したGPU40は、これら4つの位置データPi−1〜Pi+2の座標をキャットマル−ロム曲線のコントロールポイントとして用いることにより、セグメントSの具体的な形状を決定するよう構成される。
図7は、図6に示したセグメントS,Si+1のそれぞれと、GPU40によって描画されるキャットマル−ロム曲線との関係を示す図である。同図中段には、4つの位置データ{Pi−1,P,Pi+1,Pi+2}の組によって、位置データP,Pi+1のそれぞれにより示される位置の間に存在するセグメントSの具体的な形状が定義されることを示している。また、同図下段には、4つの位置データ{Pi−1,P,Pi+ ,Pi+2}の組を1つ右にスライドしてなる4つの位置データ{P,Pi+1,Pi+2,Pi+3}の組によって、位置データPi+1,Pi+2のそれぞれにより示される位置の間に存在するセグメントSi+1の具体的な形状が定義されることを示している。
なお、開始セグメントSstartを構成する曲線の形状は、パスデータPAの始点に対応する位置データPと同じ位置に設定した位置データPを含む4つの位置データ{P,P,P,P}の組によって定義される。同様に、終了セグメントSendを構成する曲線の形状は、パスデータPAの終点に対応する位置データPと同じ位置に設定した位置データPN+1を含む4つの位置データ{PN−2,PN−1,P,PN+ }の組によって定義される。ただし、位置データPに位置データPと異なる位置を示す値を設定してもよく、位置データPN+1に位置データPと異なる位置を示す値を設定してもよい。
図2に戻り、精度データ106は、パスデータPAを符号化する際に用いる符号化の精度を示す属性であり、値が大きいほど、図9を参照して後述する変換処理(ステップS21)の結果として得られる整数型データの精度が細かいことを示す。精度データ106は、1つのパスデータPAに対して1つ割り当てられる。このようにパスデータPAごとに精度データ106が割り当てられるのは、パスデータPAを生成する際に使用されたスタイラス2の種類や座標検出装置1の種類などによって、位置データPや幅データWの取得精度が異なる可能性があるためである。
以下、図8〜図13を参照しながら、図1に示したデジタルインク処理部20によって実行されるデジタルインク100の符号化及び復号処理について、詳しく説明する。
図8は、デジタルインク100の符号化処理を示すフロー図である。同図に示すように、デジタルインク処理部20は、デジタルインク100の中に含まれるパスデータPAの数(Z個とする)だけ、ステップS2〜S12の処理を繰り返すよう構成される(ステップS1)。この繰り返しにより、各パスデータPAが順次符号化される。詳しくは後述するが、符号化された各パスデータPAはそれぞれパスメッセージBinPathを構成し、各パスメッセージBinPathは、1つのバイナリストリームBinInk内に区別可能な状態で順次追加される。なお、図8及び後掲の図においては、j番目のパスデータPAをパスデータPA[j]と表すことにする。
j番目のパスデータPA[j]に関して、デジタルインク処理部20はまず、図2に示したスタートパラメータ104、エンドパラメータ105、及び精度データ106を取得する(ステップS2)。デジタルインク処理部20は通常、スタートパラメータ104及びエンドパラメータ105の値として、それぞれの初期値0,1を取得する。ただし、パスデータPA[j]がユーザ操作等による他のパスデータPAの切断の結果として生成されたものである場合、スタートパラメータ104又はエンドパラメータ105が初期値とは異なる値になることがある。また、デジタルインク処理部20は、精度データ106の値として、バスデータPA[j]を生成するために使用されたスタイラス2及び座標検出装置1の組み合わせに対応して予め定められた値を取得する。
次にデジタルインク処理部20は、パスデータPA[j]に含まれるN個の位置データP〜Pの符号化処理を実行することにより、N個の符号化位置データEP〜EPを取得する(ステップS3)。
図9は、位置データPの符号化処理のフロー図である。後ほど説明するが、この符号化処理は幅データWの符号化においても使用される。同図に示すように、この符号化処理は、1以上の入力データD(i≧1)のそれぞれについて繰り返し実行される(ステップS20)。この符号化処理がステップS3で呼び出される場合、1以上の入力データDはN個の位置データP〜Pとなる。
i番目の入力データDに関して、デジタルインク処理部20はまず、図8のステップS2で取得した精度データ106を用いて、浮動小数型である入力データDを整数型データINTDに変換する処理を行う(ステップS21)。この処理を行うことにより、入力データDのビット数を削減できるとともに、後述する図8のステップS8,S9で行う可変長符号化の結果として生成されるバイナリデータのビット数をも削減することが可能になる。
次にデジタルインク処理部20は、入力データDを符号化してなる符号化データEDを導出する。具体的には、iが1に等しいか否かを判定し(ステップS22)、等しいと判定した場合には、整数型データINTDを符号化データEDとして出力する(ステップS23)。一方、等しくないと判定した場合には、整数型データINTDから1つ前の整数型データINTDi−1を減じてなる値INTD−INTDi−1(差分値)を符号化データEDとして出力する(ステップS24)。ステップS3においては、こうして出力された符号化データEDが、符号化位置データEPとして取得される。
図8に戻る。デジタルインク処理部20は続いて、パスデータPA[j]に含まれるM個の幅データW〜Wを1以上の入力データDとして図9に示す符号化処理を実行することにより、M個の符号化幅データEW〜EWを取得する(ステップS4)。符号化処理の詳しい内容については、図9を参照して説明したとおりである。
この後に実行されるステップS5〜S12の処理は、パスデータPA[j]を構成する各データを所定のスキーマに従って符号化することによって、バイナリストリームBinInkに追加するためのパスメッセージBinPath[j]を生成する処理である。
図10は、1つのパスデータPAを符号化することによって得られるパスメッセージBinPathのスキーマ(デジタルインク100のデータ構造)の例を示す図である。このスキーマは、図8に示す符号化処理によってパスメッセージBinPathを生成する目的の他、後述する図11及び図12に示す復号処理においてパスデータPAを構成する各データを復号するためにも用いられる。なお、図10においては、スキーマを記述するために、インタフェース記述言語(Interface Definition Language)を用いている。
図10に示すように、本実施の形態によるパスメッセージBinPathのスキーマにおいては、2行目にスタートパラメータ104のフィールド(startParameter)が定義され、3行目にエンドパラメータ105のフィールド(endParameter)が定義され、4行目に精度データ106のフィールド(decimalPrecision。第3のバイナリ)が定義され、5行目に位置データPのフィールド(Positions。第1のバイナリ)が定義され、6行目に幅データWのフィールド(strokeWidths。第2のバイナリ)が定義され、7行目にカラーデータのフィールド(strokeColor)が定義される。なお、カラーデータは、ストロークカラー102の具体的な値である。各フィールドは、パスメッセージBinPath内の互いに異なる領域に格納される。例えば、幅データWのフィールドは、一連のx座標データ、y座標データ、及びz座標データの組を示す位置データP(ただし、z座標データは3次元の場合のみ)のフィールドから全体として分離されている。
各フィールドの名称に付加された「optional」の文字は、そのフィールドが省略可能であることを示している。また、「repeated」の文字は、そのフィールドが複数の値を持ち得ることを示している。さらに、「float」は浮動小数点型、「uint32」は32ビット符号なし整数型、「sint32」は32ビット符号あり整数型をそれぞれ示している。また、各フィールドの等号の直後に記載される数値はフィールドを識別するためのタグの値を示し、「default」により示される値はそのフィールドの初期値を示している。「packed=true」は、そのフィールドに格納されているデータが圧縮されたものであることを示している。ここでいう圧縮されたものとは、図9に示した符号化処理を経たデータであることを意味する。
図8に戻り、ステップS5において、デジタルインク処理部20は、タグの値に1を設定する。そして、タグの値の判定を行う(ステップS6)。タグの値が1,2,3のいずれかである場合、デジタルインク処理部20は、タグの値と、対応するデータとを固定長符号化する処理を行う(ステップS7)。
ステップS7で符号化の対象となるのは、ステップS2で取得したスタートパラメータ104、エンドパラメータ105、精度データ106である。タグの値が1である場合、デジタルインク処理部20はスタートパラメータ104を固定長符号化することによって浮動小数点型のデータを生成し、パスメッセージBinPath[j]に追加する(ステップS10)。また、タグの値が2である場合、デジタルインク処理部20はエンドパラメータ105をすることによって浮動小数点型のデータを生成し、パスメッセージBinPath[j]に追加する(ステップS10)。さらに、タグの値が3である場合、デジタルインク処理部20は精度データ106を固定長符号化することによって32ビット符号なし整数型のデータ(第3のバイナリ)を生成し(精度データ符号化ステップ)、パスメッセージBinPath[j]に追加する(ステップS10)。
ここで、精度データ106のタグの値として、位置データP、幅データW、及びカラーデータよりも小さい値を付与しているのは、後述する図11及び図12に示す復号処理において、精度データ106がこれらのデータよりも先に復号されるようにするためである。精度データ106を先に復号することで、位置データP、幅データW、及びカラーデータを正しく復号することが可能になる。
ステップS10で各データをパスメッセージBinPath[j]に追加したデジタルインク処理部20は、現在のタグの値が5であるか否かを判定し(ステップS11)、5でなければタグの値を1インクリメントし(ステップS12)、処理をステップS6に戻す。なお、カラーデータの符号化を考慮する場合、ステップS11の判定は、タグの値が6であるか否かの判定となる。タグの値が5であると判定した場合の処理については、後述する。
ステップS6でタグの値が4であると判定した場合、デジタルインク処理部20は、タグの値4と、ステップS3で取得したN個の符号化位置データEP〜EPのそれぞれとを可変長符号化することにより、一連のx座標データ、y座標データ、及びz座標データの組を示す第1のバイナリ(ただし、z座標データは3次元の場合のみ)を生成し(ステップS8。座標符号化ステップ)、生成した第1のバイナリをパスメッセージBinPath[j]に追加する(ステップS10)。可変長符号化の具体的な方式としては、符号化の対象となる値の絶対値が小さいほど符号化の結果として得られる値のビット数が少なくなるものであれば、特に限定されない。例えば、指数ゴロム符号や、グーグルプロトコルバッファで用いられるsint32などを利用することが可能である。
ここで、スタイラス2の動きにより取得される位置データPの値は、連続した2つの値が近い値をとる傾向がある。これはスタイラス2が物理的に1つしかなく、これがパネル面をなぞるように動かされるためである。したがって、図9を参照して説明したように、連続する2つの位置データP間の差分値を符号化対象値とし、この値の符号化に可変長符号を用いることにより発生確率が比較的高い値を短いビット数の符号にすることができ、それによってデジタルインク100のビット数を削減することが可能になる。
ステップS6でタグの値が5であると判定した場合、デジタルインク処理部20は、タグの値5と、ステップS4で取得したM個の符号化幅データEW〜EWのそれぞれとを可変長符号化することにより、第1のバイナリから全体として分離されてなる第2のバイナリを生成し(ステップS9。幅符号化ステップ)、生成した第2のバイナリをパスメッセージBinPath[j]に追加する(ステップS10)。可変長符号化の具体的な方式としては、ステップS8と同様に、符号化の対象となる値の絶対値が小さいほど符号化の結果として得られる値のビット数が少なくなるものであれば、特に限定されない。例えば、指数ゴロム符号や、グーグルプロトコルバッファで用いられるsint32などを利用することが可能である。
ここで、位置データPの場合と同様、幅データWについても、連続した2つの値が近い値をとる傾向がある。これは、幅データWが上述したように筆圧値WPから決定されるものであり、筆圧値WPは、スタイラス2を物理的に押し付ける力をサンプリングして得られる値であるためである。したがって、この場合にも、連続する2つの幅データW間の差分値を符号化対象値とし、この値の符号化に可変長符号を用いることにより発生確率が比較的高い値を短いビット数の符号にすることができ、それによってデジタルインク100のビット数を削減することが可能になる。
ステップS9の後のステップS10が終了すると、処理中のパスデータPAに関する各データがパスメッセージBinPath[j]内にすべてシリアライズされることになる。なお、カラーデータの符号化を考慮する場合には、処理中のパスデータPAに関する各データがパスメッセージBinPath[j]内にすべてシリアライズされるのは、さらにカラーデータについての処理も終了した後となる。
こうして生成されたパスメッセージBinPath[j]は、復号順で第2のバイナリより前に第3のバイナリが含まれるように、第1乃至第3のバイナリを互いに異なる領域に含むバイナリデータとなる。デジタルインク処理部20は、ステップS11でタグの値が5(カラーデータの符号化を考慮する場合には6)であると判定した場合、パスメッセージBinPath[j]が完成したと判断し、パスメッセージBinPath[j]のビット長と、パスメッセージBinPath[j]とを順次バイナリストリームBinInkに追加する処理を行う(ステップS13。シリアライズステップ)。
デジタルインク処理部20が以上の処理をデジタルインク100内のZ個のパスデータPAのそれぞれについて実行することにより、各パスデータPAのパスメッセージBinPathをシリアライズしてなるバイナリストリームBinInkが完成する。
表1は、以上の処理の結果として生成されるバイナリストリームBinInkの構成を示している。この表に示すように、バイナリストリームBinInkは、パスメッセージBinPathのビット長とパスメッセージBinPathの実体との組み合わせを、パスデータPAの個数分、繰り返し含んで構成される。なお、パスメッセージBinPathには、図10のスキーマに示した{タグの値、バイナリ}のペアが含まれる。
Figure 0006387207
次に、図11及び図12は、デジタルインク100の復号処理を示すフロー図である。同図に示すように、デジタルインク処理部20は、まず初めにバイナリストリームBinInkを含むコンテナファイルCF、又は、バイナリストリームBinInkがフラグメント化されてなる通信パケットから、デジタルインク100を含むバイナリストリームBinInkを抽出する処理を行う(ステップS30)。
次にデジタルインク処理部20は、変数jに0を代入し(ステップS31)、ステップS30で抽出したバイナリストリームBinInkからパスメッセージBinPath[j]のビット長及びパスメッセージBinPath[j]の抽出を試みる(ステップS32)。その結果、抽出できた場合には図12のステップS34に処理を移し、抽出できなかった場合には処理を終了する。
ステップS34以降の処理は、図10に示したスキーマに従って、パスメッセージBinPath[j]内に格納されている各データ(スタートパラメータ104、エンドパラメータ105、精度データ106、位置データP、幅データW、カラーデータ)を復号する処理である。
具体的に説明すると、デジタルインク処理部20はまず、パスメッセージBinPathの未だ復号していない部分に最初に含まれるタグの復号を試みる(ステップS34)。そして、復号できたか否かを判定し(ステップS35)、できなかったと判定した場合には、変数jの値を1インクリメントしたうえで(ステップS36)、処理を図11のステップS32に戻す。これにより、次のパスメッセージBinPath[j]についての処理が開始されることになる。
一方、ステップS35で復号できたと判定した場合には、復号したタグの値の判定を行う(ステップS37)。その結果、タグの値が1,2,3のいずれかであると判定した場合、デジタルインク処理部20は、それぞれのタグの後方領域に格納されている固定長のバイナリ列から、対応する固定長の各データを復号する処理を行う(ステップS38)。こうして復号されるデータは、タグの値が1の場合にはスタートパラメータ104、タグの値が2の場合にはエンドパラメータ105、タグの値が3の場合には精度データ106となる。デジタルインク処理部20は、あるタグの値についてステップS38が終了した場合には、その都度、ステップS34に処理を戻し、次のタグの値の復号を実施する。
次に、ステップS37でタグの値が4であると判定した場合、デジタルインク処理部20は、4であるタグの後方領域(第1の領域)に格納されているバイナリ列からN個の位置データP〜Pを復号する処理を行う(ステップS39,S40。位置データ復号ステップ)。
具体的に説明すると、デジタルインク処理部20はまず、ステップS39において、符号化されたバイナリ列(第1のバイナリ)からN個の整数値型の符号化対象値を可変長復号する。この処理は図8に示したステップS8の処理の逆処理であり、結果としてN個の符号化位置データEP〜EPが取得される。
続いてデジタルインク処理部20は、ステップS40において、N個の符号化位置データEP〜EPから浮動小数点型のN個の位置データP〜Pを復元するための復号処理を行う。
図13は、位置データPの復号処理のフロー図である。後ほど説明するが、この復号処理は幅データWの復号においても使用される。同図に示すように、この復号処理は、1以上の入力データED(i≧1)のそれぞれについて繰り返し実行される(ステップS50)。この復号処理がステップS40で呼び出される場合、1以上の入力データEDはN個の符号化位置データEP〜EPとなる。
i番目の入力データEDに関して、デジタルインク処理部20はまず、iが1に等しいか否かを判定し(ステップS51)、等しいと判定した場合には、入力データEDを整数型データINTDとして取得する(ステップS52)。一方、等しくないと判定した場合には、入力データEDに1つ前の整数型データINTDi−1を加算してなる値ED+INTDi−1を整数型データINTDとして取得する(ステップS53)。
次にデジタルインク処理部20は、図12のステップS38で復号済みの精度データ106を用いて、整数型データINTDを浮動小数型のデータDに変換して出力する処理を行う(ステップS54)。ステップS40においては、こうして出力されたデータDが位置データPとして取得されることになる。
図12に戻る。ステップS40の処理を終えたデジタルインク処理部20は、ステップS34に処理を戻し、次のタグの値の復号を実施する。
次に、ステップS37でタグの値が5であると判定した場合、デジタルインク処理部20は、5であるタグの後方領域(第1の領域とは異なる第2の領域)に格納されているバイナリ列からM個の幅データW〜Wを復号する処理を行う(ステップS41,S42。幅データ復号ステップ)。
具体的に説明すると、デジタルインク処理部20はまず、ステップS41において、符号化されたバイナリ列(第2のバイナリ)からN個の整数値型の符号化対象値を可変長復号する。この処理は図8に示したステップS9の処理の逆処理であり、結果としてM個の符号化幅データEW〜EWが取得される。
続いてデジタルインク処理部20は、ステップS42において、M個の符号化幅データEW〜EWを1以上の入力データEDとして図13に示す復号処理を実行することにより、浮動小数点型のM個の幅データW〜Wを復元する。復号処理の詳しい内容については、図13を参照して説明したとおりである。
M個の幅データW〜Wを復元したデジタルインク処理部20は、MとNの値を比較する(ステップS43)。その結果、MがNより小さくない(又は、MがNに等しい)と判定した場合、デジタルインク処理部20は、ステップS34に処理を戻し、次のタグの値の復号を試みる。一方、MがNより小さいと判定したデジタルインク処理部20は、例えばM番目の幅データWにより、M+1番目〜N番目の幅データWM+1〜Wを補完する処理を行う(ステップS44。幅補完ステップ)。具体的には、幅データWM+1〜Wに幅データWの値を代入する。これにより、MがNより小さく、すべての位置データPに対応する幅データWが存在しない場合にも、すべての位置データPに幅データWを対応付けることが可能になる。なお、代入する幅データWは、必ずしも幅データWでなくてもよく、幅データW〜Wのいずれかであればよい。ステップS44の完了後、デジタルインク処理部20は、ステップS34に処理を戻し、次のタグの値の復号を試みる。
以上説明したように、本実施の形態によるデジタルインクの符号化方法、復号方法、及びデータ構造によれば、固定幅(M=1)であっても可変幅(1<M≦N)であっても、同一の復号方法によりデジタルインクを復号できるようになる。また、ストロークの少なくとも一部を固定幅にする場合(1≦M<N)には、N個未満の幅データを付加すれば足りることになるので、ストロークの全部を可変幅にする場合(M=N)と比べてデジタルインクのビット数を削減することが可能になる。
また、本実施の形態によるデジタルインクの符号化方法、復号方法、及びデータ構造によれば、座標検出装置1又はスタイラス2ごとに異なり得る精度データ106に基づき、ストローク単位で位置データPを符号化ないし復号可能となる。したがって、1つのデジタルインク100内に、互いに精度の異なる複数の位置データPを配置することが可能になる。幅データW及びカラーデータについても同様である。
例えば、本実施の形態によるデジタルインクの符号化方法、復号方法、及びデータ構造によれば、スタイラス2が第1及び第2のスタイラス(第1及び第2のポインティングデバイス)を含む場合、バイナリストリームBinInkは、第3のバイナリとして、第1のスタイラスについて取得される位置データPの精度を示す第1の精度データと、第2のスタイラスについて取得される位置データPの精度を示す第2の精度データとを含む。そしてこの場合、図9のステップS21においては、第1のスタイラスについて取得される一連の位置データPを第1の精度データを用いて符号化する一方、第2のスタイラスについて取得される一連の位置データPを第2の精度データを用いて符号化する。したがって、第1のスタイラスによるストロークを構成する一連の位置データPと、第2のスタイラスによるストロークを構成する一連の位置データPとが、異なる精度データ106に基づいて符号化される。
次に、図14〜図18を参照しながら、図1に示したデジタルインク処理部20によって実行されるコンテナファイルCFの生成処理について、詳しく説明する。なお、以下では、非特許文献4に記載されるOPC(OpenPackagingConvention)のフォーマットに従ったファイルの生成方法を説明する。OPCは、XMLファイル群及び非XMLファイル群(SVGファイル、及び、バイナリストリームBinInk等)がZIPアーカイブされてなるコンテナファイルCFのフォーマットである。
図14は、コンテナファイルCFを構成するエンティティを説明するER図である。ER図の表記方法及び多重度は図2と同じであるが、図中に矩形で示す各エンティティは、上述したOPCの「パッケージ」と、その中に含まれる「OPCパーツ」とに対応している。
図14に示すように、コンテナファイルCF内には、エンティティとしてパッケージ301、コア情報302、アプリ情報303、SVGセクション情報304、バイナリストリーム305が含まれる。
コア情報302は、コンテナファイルCFに関する一般的な情報と、このパッケージ全体に含まれる各ファイルについてのメタデータとを含む情報であり、パッケージ301と1対1に対応する(関係rel1)。アプリ情報303は、コンテナファイルCFを生成するために用いられたオリジナルアプリケーションを示す情報を含む情報であり、パッケージ301と1対1に対応する(関係rel2)。
SVGセクション情報304は、SVGに従って符号化されたマルチメディアコンテンツを含む情報であり、パッケージ301との間に1対0以上の関係rel3を有する。バイナリストリーム305は、本発明によるデジタルインクの符号化方法により生成されたバイナリストリームBinInkであり、SVGセクション情報304との間に1対0以上の関係rel4を有する。
なお、パッケージ301、コア情報302、及びこれらの関係rel1は、非特許文献4に記載されるOPCに規定されるものである。これに対し、その他のエンティティ及びこれらに関する関係rel2〜rel4(破線で囲った部分)は、本発明によるOPCの拡張に相当する。
図15は、コンテナファイルCF内にアーカイブされるファイル群の構成例を示す図である。同図において、長方形はディレクトリを示し、平行四辺形はファイルを示している。同図に示すように、パッケージ301は実体としてはディレクトリであり、関係ディレクトリ400(_rels)、プロパティディレクトリ410(prop)、セクションディレクトリ420(sections)という3つのディレクトリを含んで構成される。
関係ディレクトリ400には、パッケージ301とパッケージ301に含まれる各パーツとの関係(図14に示した関係rel1〜rel3)を示す関係ファイル401(.rels)が含まれる。
図16(a)は、関係ファイル401の具体的な内容の例を示す図である。同図に示す「/props/core.xml」はコア情報302のURI(Uniform Resource Identifier)であり、「/props/app.xml」はアプリ情報303のURIであり、「/sections/section0.svg」は1番目のSVGセクション情報304のURIである。同図に示すように、関係ファイル401には、コア情報302、アプリ情報303、SVGセクション情報304のそれぞれについて、後にコンテナファイルCFを参照するコンピュータがその情報を識別するための識別情報(Id)と、その情報のタイプを示す情報(Type)と、その情報のURIとが対応付けて格納される。なお、関係ファイル401並びに後述する関係ファイル422及びSVGファイル423は、XMLに従って記述されたXMLデータがUTF−8等のテキストの符号化方法によってバイナリ列化されてなるXMLファイルである。
例えば、図16(a)の例による関係ファイル401には、対応するパッケージ301に「section0」という識別情報が付与されたセクション(並びにコンテンツ)が存在し、そのURIが「/sections/section0.svg」あるいはその位置から派生する位置であることが記載されており、さらに、そのセクションには、「/props/core.xml」の位置に示されるメタデータが付与されることが記載されている。
図15に戻り、プロパティディレクトリ410には、コア情報302が記述されてなるXMLファイル411(core.xml)と、アプリ情報303が記述されてなるXMLファイル412(app.xml)とが含まれる。図16(b)は、XMLファイル411の具体的な内容の例を示し、図16(c)は、XMLファイル412の具体的な内容の例を示している。例えば図16(b)に示した「Author_name_0001」は、コンテナファイルCFの作成者の情報を示している。
セクションディレクトリ420には、関係ディレクトリ421(_rels)と、それぞれSVGセクション情報304が記述されてなる1以上のSVGファイル423(section0.svg,section1.svg)と、メディアディレクトリ424(media)とが含まれる。なお、図15には2つのSVGファイル423を示しているが、これは例示であり、SVGファイル423の数は2つに限定されない。
メディアディレクトリ424には、それぞれ本発明によるデジタルインクの符号化方法によって符号化されたバイナリストリーム305(バイナリストリームBinInk)である1以上のバイナリファイル425(paths0.protobuf,paths1.protobuf)が含まれる。なお、図15には2つのバイナリファイル425を示しているが、これは例示であり、バイナリファイル425の数は2つに限定されない。また、関係ディレクトリ421には、1以上のSVGファイル423のそれぞれに対応して、1以上のバイナリファイル425との関係(図14に示した関係rel4)を示す関係ファイル422(section0.svg.rel,section1.svg.rel)が格納される。
図17(a)は、関係ファイル422の具体的な内容の例を示す図である。例えば、この例においては、「paths0.protobuf」であるバイナリファイル425を示すターゲットID「strokes0」が記述されており、これにより、「paths0.protobuf」がこの関係ファイル422に対応するものであることが示されている。また、図17(b)は、SVGファイル423の具体的な内容の例を示す図である。
図18は、以上で説明した構造を有するコンテナファイルCFの生成方法のフロー図である。以下、この図18を参照しながら、図1に示したデジタルインク処理部20によるコンテナファイルCFの生成処理について、詳しく説明する。
コンテナファイルCFの生成処理は、まず、図8に示したデジタルインク100の符号化処理を行ってバイナリストリームBinInkを得ることから開始される。すなわち、デジタルインク処理部20はまず、スタイラス2(図1を参照)が平面にダウンされてから、該平面からアップされるまでの動作に伴い取得されたN個の位置データPを第1の符号化方法(図8のステップS3,S4,S7〜S9において実行される符号化方法の総体)により符号化することによって、バイナリストリームBinInkを取得する(ステップS60。第1の符号化ステップ)。
次にデジタルインク処理部20は、バイナリストリームBinInkに付与すべきメタデータ(図16(b)に示した「Author_name_0001」に対応する作成者の情報など)を取得し(ステップS61)、該メタデータを含むコア情報302(第1のXMLデータ)を第2の符号化方法(UTF−8等)により符号化することによって、図15に示したXMLファイル411(Core.xml。第1のXMLファイル)を生成する(ステップS62。第1のメタデータバイナリ生成ステップ)。
続いてデジタルインク処理部20は、ステップS60で取得したバイナリストリームBinInkを示すターゲットIDと、ステップS62で生成したXMLファイル411との関係を示すXMLデータ(第2のXMLデータ)を生成し(ステップS63)、該XMLデータを上記第2の符号化方法により符号化することによって、図15に示した関係ファイル401(.rels。第2のXMLファイル)を生成する(ステップS64。第2のメタデータバイナリ生成ステップ)。
そして最後に、デジタルインク処理部20は、ステップS60で取得したバイナリストリームBinInkと、ステップS62,S64で生成したXMLファイル411及び関係ファイル401とを、1つのコンテナファイルCF(パッケージ)内にアーカイブする(ステップS65。パッケージ生成ステップ)。
以上説明したように、本実施の形態によるデジタルインクを含むファイルの生成方法によれば、ストロークを構成する一連の位置データを符号化することによって生成されたバイナリストリームに対し、XML等の汎用の記述法によりメタデータを付与し、それぞれを1つのコンテナファイルCF内にアーカイブすることが可能になる。これにより、例えば本発明に係る符号化方法により生成されたバイナリストリームBinInkを復号できないアプリケーションであっても、OPC形式のコンテナファイルCFに格納されたXMLファイルを解釈することが可能であれば、そのメタデータを得ることが可能になる。
以上、本発明の好ましい実施の形態について説明したが、本発明はこうした実施の形態に何等限定されるものではなく、本発明が、その要旨を逸脱しない範囲において、種々なる態様で実施され得ることは勿論である。
1 座標検出装置
2 スタイラス
10 センサコントローラ
11 電極群
11x,11y 電極
20 デジタルインク処理部
21 CPU
22 RAM
23 入出力部
30 GPU
100 デジタルインク
101 パスクラス
102 ストロークカラー
103 ストローク幅
104 スタートパラメータ
105 エンドパラメータ
106 精度データ
110 セグメントクラス
111 位置
301 パッケージ
302 コア情報
303 アプリ情報
304 セクション情報
305 バイナリストリーム
400,421 関係ディレクトリ
401,422 関係ファイル
410 プロパティディレクトリ
411,412 XMLファイル
420 セクションディレクトリ
423 SVGファイル
424 メディアディレクトリ
425 バイナリファイル
BinInk バイナリストリーム
BinPath パスメッセージ
CF コンテナファイル
EP 符号化位置データ
EW 符号化幅データ
INTD 整数型データ
P 位置データ
PA パスデータ
S セグメント
W 幅データ
WP 筆圧値
rel1〜rel3 関係

Claims (9)

  1. デジタルインクの符号化方法であって、
    ポインティングデバイスの状態によって決まる所定の期間内における該ポインティングデバイスの動作に伴い取得されたそれぞれx座標データ及びy座標データの組を含んでなるN個の位置データを符号化することによって、一連のx座標データ及びy座標データの組を示す第1のバイナリを取得する座標符号化ステップと、
    前記N個の位置データそれぞれの位置における幅を決定するM個(Mは1以上N以下の整数)の幅データを符号化することによって、前記第1のバイナリから全体として分離されてなる第2のバイナリを取得する幅符号化ステップと、
    前記第1及び第2のバイナリを互いに異なる領域に含むバイナリストリームを生成するシリアライズステップと、
    を含むデジタルインクの符号化方法。
  2. 前記幅データは、前記Mが1である場合に、前記N個の位置データにより示される軌跡の幅が固定値であることを示し、前記Mが2以上前記N以下である場合に、前記N個の位置データにより示される軌跡の幅が可変であることを示す、
    請求項1に記載のデジタルインクの符号化方法。
  3. 前記N個の位置データはそれぞれ、x座標データ、y座標データ、及びz座標データの組を含んでなり、
    前記第1のバイナリは、一連のx座標データ、y座標データ、及びz座標データの組を示すバイナリであり、
    前記M個の幅データはそれぞれ、前記N個の位置データの位置における所定の形状の面積に対応するデータである、
    請求項1に記載のデジタルインクの符号化方法。
  4. 前記所定の形状の面積に対応するデータは、球の径を示すデータである、
    請求項3に記載のデジタルインクの符号化方法。
  5. 前記N個の位置データの精度を示す精度データを符号化することによって第3のバイナリを生成する精度データ符号化ステップをさらに含み、
    前記座標符号化ステップは、前記精度データを用いて前記N個の位置データを符号化し、
    前記シリアライズステップは、復号順で前記第2のバイナリより前に前記第3のバイナリが含まれるように、前記第1乃至第3のバイナリを互いに異なる領域に含む前記バイナリストリームを生成する、
    請求項1に記載のデジタルインクの符号化方法。
  6. 前記ポインティングデバイスは、第1及び第2のポインティングデバイスを含み、
    前記バイナリストリームは、前記第3のバイナリとして、前記第1のポインティングデバイスについて取得される位置データの精度を示す第1の精度データ、及び、前記第2のポインティングデバイスについて取得される位置データの精度を示す第2の精度データを含み、
    前記座標符号化ステップは、前記第1のポインティングデバイスについて取得される一連の位置データを前記第1の精度データを用いて符号化する一方、前記第2のポインティングデバイスについて取得される一連の位置データを前記第2の精度データを用いて符号化する、
    請求項5に記載のデジタルインクの符号化方法。
  7. 符号化されたデジタルインクを含むバイナリストリームからポインティングデバイスの軌跡を再現するためのデジタルインクの復号方法であって、
    前記ポインティングデバイスの状態によって決まる所定の期間内における該ポインティングデバイスの動作に伴い取得されたN個の位置データを、前記バイナリストリームの第1の領域から復号する位置データ復号ステップと、
    前記N個の位置データの位置での幅を決定するM個(Mは1以上N以下の整数)の幅データを、前記バイナリストリームのうち前記第1の領域とは異なる第2の領域から復号する幅データ復号ステップと、
    前記M個が前記N個より少ない場合に、前記M個の幅データのうちのいずれかにより、前記N個の位置データのうちのN−M個それぞれの位置における幅を補完する幅補完ステップと、
    を含むデジタルインクの復号方法。
  8. 前記幅データは、前記Mが1である場合に、前記N個の位置データにより示される軌跡の幅が固定値であることを示し、前記Mが2以上前記N以下である場合に、前記N個の位置データにより示される軌跡の幅が可変であることを示す、
    請求項7に記載のデジタルインクの復号方法。
  9. 符号化されたデジタルインクを含むファイルの生成方法であって、
    ポインティングデバイスの状態によって決まる所定の期間内における該ポインティングデバイスの動作に伴い取得されたN個の位置データを第1の符号化方法により符号化することによってバイナリストリームを取得する第1の符号化ステップと、
    前記バイナリストリームに付与すべきメタデータを取得し、該メタデータを含む第1のXMLデータを第2の符号化方法により符号化することによって第1のXMLファイルを生成する第1のメタデータバイナリ生成ステップと、
    前記バイナリストリームを示すターゲットIDと、該バイナリストリームに関連付ける前記メタデータとの関係を示す第2のXMLデータを生成し、該第2のXMLデータを前記第2の符号化方法により符号化することによって第2のXMLファイルを生成する第2のメタデータバイナリ生成ステップと、
    前記バイナリストリームと、前記第1及び第2のXMLファイルとを一つのパッケージファイルにアーカイブするパッケージ生成ステップと、
    を含むデジタルインクを含むファイルの生成方法。
JP2018511499A 2016-12-30 2017-12-27 デジタルインクの符号化方法、復号化方法 Active JP6387207B1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662440851P 2016-12-30 2016-12-30
US62/440,851 2016-12-30
PCT/JP2017/047025 WO2018124209A1 (ja) 2016-12-30 2017-12-27 デジタルインクの符号化方法、復号化方法

Publications (2)

Publication Number Publication Date
JP6387207B1 true JP6387207B1 (ja) 2018-09-05
JPWO2018124209A1 JPWO2018124209A1 (ja) 2018-12-27

Family

ID=62709549

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018511499A Active JP6387207B1 (ja) 2016-12-30 2017-12-27 デジタルインクの符号化方法、復号化方法

Country Status (3)

Country Link
US (1) US10747339B2 (ja)
JP (1) JP6387207B1 (ja)
WO (1) WO2018124209A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018124209A1 (ja) * 2016-12-30 2018-07-05 株式会社ワコム デジタルインクの符号化方法、復号化方法
CN114585992A (zh) * 2020-09-29 2022-06-03 京东方科技集团股份有限公司 书写轨迹处理方法、触控设备、书写系统及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007305109A (ja) * 1997-10-31 2007-11-22 Hewlett Packard Co <Hp> インタリーブ画像を捕捉する方法及び装置
JP2016505907A (ja) * 2013-10-25 2016-02-25 株式会社ワコム 手書きデータ出力方法及びコンピュータシステム
JP2016532165A (ja) * 2013-11-19 2016-10-13 株式会社ワコム インクデータの生成、インクデータのレンダリング、インクデータの操作、及び、インクデータの伝達のための方法及びシステム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016074090A1 (en) * 2014-11-11 2016-05-19 Helio Technology Inc. An angle encoder and a method of measuring an angle using same
JP2016134014A (ja) * 2015-01-20 2016-07-25 株式会社リコー 電子情報ボード装置、情報処理方法およびプログラム
JP2016224808A (ja) * 2015-06-02 2016-12-28 株式会社ジャパンディスプレイ タッチ検出機能付き表示システム
US10049289B2 (en) 2016-02-12 2018-08-14 Wacom Co., Ltd. Method and system for generating and selectively outputting two types of ink vector data
WO2018124209A1 (ja) * 2016-12-30 2018-07-05 株式会社ワコム デジタルインクの符号化方法、復号化方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007305109A (ja) * 1997-10-31 2007-11-22 Hewlett Packard Co <Hp> インタリーブ画像を捕捉する方法及び装置
JP2016505907A (ja) * 2013-10-25 2016-02-25 株式会社ワコム 手書きデータ出力方法及びコンピュータシステム
JP2016532165A (ja) * 2013-11-19 2016-10-13 株式会社ワコム インクデータの生成、インクデータのレンダリング、インクデータの操作、及び、インクデータの伝達のための方法及びシステム

Also Published As

Publication number Publication date
WO2018124209A1 (ja) 2018-07-05
US10747339B2 (en) 2020-08-18
US20190317616A1 (en) 2019-10-17
JPWO2018124209A1 (ja) 2018-12-27

Similar Documents

Publication Publication Date Title
US20220164100A1 (en) Method and system for ink data generation, ink data rendering, ink data manipulation and ink data communication
US20230186665A1 (en) Ink file searching method, apparatus, and program
US9484006B2 (en) Manipulation of textual content data for layered presentation
US10885266B2 (en) Preserving semantic information in document conversion via color codes
JP2004533132A (ja) デジタルインクの圧縮
JP6387207B1 (ja) デジタルインクの符号化方法、復号化方法
US20040233197A1 (en) System and method for ink or handwriting compression
CN111881651A (zh) 一种uot流式文档转换成ofd版式文档的方法
CN102682265A (zh) 显示终端的手写输入方法、装置及手写输入系统
JP6790208B2 (ja) デジタルインクファイル生成方法、デジタルインクファイル生成装置、デジタルインクファイル再生方法、デジタルインクファイル再生装置、及びプログラム
JP6596215B2 (ja) インクファイルの検索方法、検索装置、及びプログラム
JP7072621B2 (ja) デジタルインクファイル再生装置、デジタルインクファイル再生方法、及びプログラム
WO2023155302A1 (zh) Pdf版面分割方法和装置、电子设备、存储介质
Ferilli et al. Digital Formats
WO2002091288A1 (en) System and method for compressing stroke-based handwriting and line drawing

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180301

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20180301

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20180328

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180410

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180416

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20180703

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180705

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20180712

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180810

R150 Certificate of patent or registration of utility model

Ref document number: 6387207

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250