JP4455055B2 - 位置コードを達成し且つ位置コードをデコーディングするための方法 - Google Patents

位置コードを達成し且つ位置コードをデコーディングするための方法 Download PDF

Info

Publication number
JP4455055B2
JP4455055B2 JP2003507753A JP2003507753A JP4455055B2 JP 4455055 B2 JP4455055 B2 JP 4455055B2 JP 2003507753 A JP2003507753 A JP 2003507753A JP 2003507753 A JP2003507753 A JP 2003507753A JP 4455055 B2 JP4455055 B2 JP 4455055B2
Authority
JP
Japan
Prior art keywords
sequence
number sequence
partial
primary
sequences
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.)
Expired - Fee Related
Application number
JP2003507753A
Other languages
English (en)
Other versions
JP2004535011A5 (ja
JP2004535011A (ja
Inventor
マッツ ペッター ペターソン
アンドレアス ビヨルクルンド
Original Assignee
アノト アクティエボラーク
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 アノト アクティエボラーク filed Critical アノト アクティエボラーク
Publication of JP2004535011A publication Critical patent/JP2004535011A/ja
Publication of JP2004535011A5 publication Critical patent/JP2004535011A5/ja
Application granted granted Critical
Publication of JP4455055B2 publication Critical patent/JP4455055B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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/0304Detection arrangements using opto-electronic means
    • G06F3/0317Detection arrangements using opto-electronic means in co-operation with a patterned surface, e.g. absolute position or relative movement detection for an optical mouse or pen positioned with respect to a coded surface
    • 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/0304Detection arrangements using opto-electronic means
    • G06F3/0317Detection arrangements using opto-electronic means in co-operation with a patterned surface, e.g. absolute position or relative movement detection for an optical mouse or pen positioned with respect to a coded surface
    • G06F3/0321Detection arrangements using opto-electronic means in co-operation with a patterned surface, e.g. absolute position or relative movement detection for an optical mouse or pen positioned with respect to a coded surface by optically sensing the absolute position with respect to a regularly patterned surface forming a passive digitiser, e.g. pen optically detecting position indicative tags printed on a paper sheet
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/06009Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
    • G06K19/06037Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking multi-dimensional coding
    • GPHYSICS
    • G08SIGNALLING
    • G08CTRANSMISSION SYSTEMS FOR MEASURED VALUES, CONTROL OR SIMILAR SIGNALS
    • G08C21/00Systems for transmitting the position of an object with respect to a predetermined reference system, e.g. tele-autographic system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Position Input By Displaying (AREA)
  • Image Processing (AREA)
  • Error Detection And Correction (AREA)
  • Editing Of Facsimile Originals (AREA)

Description

本発明は、位置コードを達成するための方法、位置コードをデコーディングするための方法、これらの目的のためのコンピュータプログラム、位置コードが提供される製品ならびに位置コーディングのためおよび位置コードのデコーディングのためのデバイスに関する。
面上に書き込まれまたは描画される情報を電子的形態で記録するための道具として面上の位置コードの使用は既に知られている。
米国特許US5,477,012号において、面上の種々のシンボルからなる位置コードを光学的に検出するペンが記述されている。前記ペンは前記位置コードをデコードし、前記面を横切るペンの動きを記述する座標の対を複数生成する。各位置は特定のシンボルによってコード化される。もしも位置コードが多数の位置をコード化するものであれば、このことは、結果として前記シンボルは複雑になり且つそれ故正確に検出することが困難であるという不都合を生ずる。これに反して、もしもシンボルがより大きく作られれば、分解能は低下する。
国際特許出願WO 92/17859号においては、各位置は複数のシンボルによってコード化され、且つ各シンボルは一よりも多くの位置のコーディングに寄与する位置コードが記述されている。近傍の位置は、それ故部分的に共有されるシンボルによってコード化される。
国際特許出願WO 92/17859号の付録Aにおいては、前記位置コードがどのようにして作られ得るかおよび位置がどのようにしてデコードされ得るかの次の例が与えられる。
s=(0,0,1,0,1,1,1)およびt=(0,1,1)なるm数列からスタートする位置コーディングパターンを作るには、パターンにおける最初の縦列s数列と同じにする。次の縦列を作るために、t数列を参照する。数列における第一の要素が0であるならば、二番目の縦列はs数列と同じになる。数列における第一の要素が1であるならば、二番目の縦列s数列を一ステップだけ循環的にシフトした数列になる。後続の縦列は、t数列における要素の値に従って対応する方法で作られる。それ故、次のパターンが得られる:
0 0 1 1
0 0 0 1
1 1 0 0
0 0 1 0
1 1 0 1
1 1 1 0
1 1 1 1
ここで、前記パターンの次の部分集合(部分パターン)を有する部分面の位置を知りたいものとする。
1 0 0
0 1 0
1 0 1
前記部分パターンにおける最初の縦列は、(1,0,1)である。この部分数列は、s数列における位置2にあらわれる。前記部分パターンにおける循環的なシフトは、(1,1)である。この部分数列は、t数列における位置1にあらわれる。前記パターンにおける累積されたシフトは、(0,0,1,2)であり、そしてそれ故前記部分パターンの垂直位置は、2+0=2である。前記部分面上にある前記部分パターンの位置は、それ故(1,2)である。
このパターンは、それが、例えばについての第一のシンボルおよびについての第二のシンボル等の単純なシンボルを用いてベース上にコード化され得るという利点を有している。
しかしながら、このタイプの位置コーディングパターンの興味深い性質は、位置決定が可能な限り大きな面の上で実行され得るように、多数の特有の位置を有する大きなパターンをコード化する能力である。上述の例において、垂直方向のサイズは、s数列の長さによって制限され且つ水平方向のサイズは、t数列の長さによって制限される。これらの数列の長さは、制限なく増大することはできない。なぜなら、部分数列がkビットからなるものを採用したとして、この部分数列は、前記数列におけるただ一つの場所にのみあらわれるものでなければならないという性質を、前記数列が持たなければならないからである。前記数列の長さを増大させることは、それ故前記部分数列の長さを増大させることになり、そしてそれによって、位置を決定できるために記録されなければならない部分面の大きさを増大させてしまい得る
本出願の出願人に譲渡されている国際特許出願WO 01/26032号、WO 01/26033号およびWO 01/26034号においては、国際特許出願WO 92/17859におけると同様の基本原理に基づいているが、より多数の位置のコーディングを可能とする、他の位置コーディングパターンが、記述されている。
このパターンの一つの実施の形態においては、第一の数列が使用され、この第一の数列は、所定長さの部分数列のそれぞれの当該数列における場所が明確に決定される性質を有するものであり、この数列が、面全体にわたる多数の縦列に、種々の循環ないし循環的シフトを伴ってプリントアウトされる。しかしながら、2値の数で構成される第二数列(国際特許出願WO 92/17859におけるt数列)を使用する代わりに、隣接する縦列間の循環的シフト、より大きな値で許容される。
さらに前記面は、複数のコード窓に分割される。各コード窓は、数列で構成された縦列を少なくとも三つ有し、隣接するコード窓と、一つの数列だけオーバラップしている。隣接する縦列間のシフトを用いて、x軸に沿うコード窓の位置がコード化される。コード窓における前記数列間のシフトは、そのようにして位置を定義し、最初のコード窓は位置0、次のコード窓位置1、等々を有する。
しかしながら、前記位置コードを読み取るとき、読み取りデバイスは、しばしば二つのコード窓の部分を記録するであろう。前記位置コードの読み取りイメージに関する二つのコード窓の位置が決定され得るようにするために、第一の範囲におけるシフトは、位置にとって意味のある最小のシフトを指摘するために用いられ、そして第二の範囲におけるシフトは、位置におけるその他のシフトのために用いられる。
y座標のコーディングは、対応する方法にて実行される。
この位置コードは、非常に良好に働くことが見出されており、且つ非常に多数の位置のコーディングを許容する。しかしながら、位置コードのエラー訂正特性を改善することの要請がある。
例えば、x方向における位置を明確にコード化する最小の部分集合が、五つのシフトを有していると仮定されたい。これらの五つのシフトから、一つのコード窓の位置が決定され得る。二つの隣接するコード窓の位置は、通常は最後の数字最後のシフト)において異なっているのみである。三つの連続的なコード窓について、前記五つのシフトは、例えば、次の通りとなり得る:
25,15,34,18,3; 25,15,34,18,4; 25,15,34,18,5;
エラーを検出する通常の方法は、関連するタスクのために必要とされるものよりも多くの情報を読み取ることに基づいている。上述されたコーディングによって、エラー検出のために使用するのに適する余分の情報を読み取ることは困難である。例えば、読み取りデバイスが、上述の三つのコード窓のうちの最初のコード窓から後ろの二つのシフトを読み、次のコード窓から初めの三つのシフトを読んで、18,3,25,15,34を記録すると仮定されたい。18,4,25,15,34が記録されるというエラーが生じるとさらに仮定されたい。例えば、さらに、前記五つの両側に一ずつの、二つのシフトの読み取りを行ったとしても、エラーを検出することを可能とさせる余分の情報提供されない。
もしも、x方向におけるコーディングを行うときに使用される数列が、所定長さの部分数列のそれぞれが当該数列内に明確に決定される場所を有するという性質を備えるならば、エラー訂正は容易化される。他方では、もしも多くの位置をコード化することが可能となるようにするならば、この数列は大きな基数を持たなければならない、すなわち大きなシフトを許容しなければならない、という実際的な問題が発生する。それから、読み取った部分数列が、前記数列のどの場所に対応するものであるかを知るために、非常に大きなテーブルが要求され、それは結局、非常に多量のメモリが要求されることになる。しかしながら、えば、限定されたメモリおよびプロセッサ容量を有するハンドヘルドの読み取りデバイスにおいてデコーディングが実行されることが可能であることが、望ましい。また、限定されたメモリおよびプロセッサ容量を有するデバイスにおいてコーディングが実行されることが可能であることが、望ましい。
それ故、本発明の目的は、非常に多数の位置をコード化することを可能とさせ、エラー訂正を可能とするが、しかしコーディングおよびデコーディングのために大きなテーブルの記憶部を必要としない、そしてれ故、限定された量のメモリおよび/または限定されたプロセッサ容量を有するデバイスにおいて実現され得る位置コードを提供することによって、上述された問題を低減することである。
他の目的は、非常に多数の位置をコード化する位置コードの効果的で且つ正確なデコーディングを可能とさせることである。
これらの目的は、請求項1に従った位置コーディングのための方法、請求項19に従ったコンピュータプログラム、請求項20に従ったコーディングデバイスにおける方法、請求項3に従ったコンピュータプログラム、請求項3に従った位置コードをデコーディングするための方法、請求項4に従ったコンピュータプログラム、請求項4〜4に従ったデバイス、および請求項48に従った位置コードが付与された面を有する製品によって完全にまたは部分的に達成される。
したがって、本発明の第一の局面は、位置コーディングのための方法に関し、その方法は、面上の第一次元の複数の位置を、一次数列に従ってコーディングするステップを含む。この一次数列は、第一の所定長さの部分数列のそれぞれが、一次数列におけるどの場所にあるかが明確に決定される性質を有し、前記第一次元位置のそれぞれは、前記部分数列のいずれか一によってコード化される前記一次数列は、少なくとも二つの二次数列から作られるものであり、これらの二次数列は、前記一次数列の基数よりも小さな基数を有し前記第一次元位置に対応する前記一次数列の部分数列を求めるために用いられる
前記一次数列が、より小さな基数を有する二次数列から作られ、これらの二次数列の基数が、望ましくはせいぜいであるので、前記一次数列における場所を前記一次数列の部分数列に変換するために必要とされるテーブルは、いくつかのより小さなテーブルによって置き換えることができ、これらのテーブルを合わせても必要なメモリはより少なくなる。したがって、非常に多数の位置のための座標をコード化することが、実際に実行可能となる。
少なくとも第一次元位置をコーディングするため一次数列使用することは、非常に良好なエラー検出およびエラー訂正特性を有する位置コードを達成することをも可能とさせる。さらに詳細には、前記一次数列における各数は、循環主数列の部分列を用いてコード化される。もしも、前記主数列の部分数列を、位置決定のために必要とされるものよりも長い部分数列として記録るならば、エラー検出およびエラー訂正が達成され得る。そのためには、前記主数列を前記長い部分数列が、特定の不適正なバージョンで、例えば一つの数字が誤った状態で、あらわれることがないように、設計する
デコーディングについても、また、前記一次数列が、より小さな基数を有する二次数列から作られることが利用されて、前記デコーディングは、いくつかのより小さなテーブルを用い且つ中国の余剰定理を用いて実行され得る。その結果、前記デコーディングは、例えば限定されたメモリおよびプロセッサ容量を有するハンドヘルドデバイスにおいて実現され得る。
位置コーディングは、一次元および二次元の両方において位置をコーディングするために利用され得る。第二次元におけるコーディングは、第一次元におけるコーディングのために用いられた数列と異なる数列もしくは同一の数列を用いて同様の原理によって実行され得る。
さて、本発明は、例示的な実施の形態を用いてそして添付された図面を参照して、説明されるであろう。
〔実施の形態の記述〕
以下においては、本発明に従った位置コーディングのための全般的な原理が特定の例を用いて説明されるであろう。その後は、コーディングおよびデコーディングが実際にどのようにして実施され得るかが説明される。その後は、位置コードのデコーディングのために使用され得る読み取りデバイスの例が説明される。最後に、代替的な実施の形態が説明される。
〔位置コーディングのための全般的な原理〕
位置コードは、一またはそれより多くの次元における位置をコード化するために用いられる。説明を単純化するために、位置コーディングは、まず、第一次元において、この例ではx方向において考慮される。循環主数列が、この方向におけるコーディングのために用いられ、該循環主数列は、所定長さの部分数列のそれぞれの前記循環主数列における場所が、明確に決定される性質を有している。この例においては、前記所定長さは6である。したがって、もしも六つの連続する数が、前記循環主数列におけるいずれかの場所からとられたら、これら六つの数が、この順序で前記循環主数列においてただ一度だけ生ずるであろう。該性質は、前記主数列の末端が該主数列の始端に連結されている場合にも、当てはまる。前記主数列は、それ故に循環と呼ばれる。この例においては、2値の数で構成される主数列が使用される。もしも、六つの数を有する部分列の場所が、明確に決定されるならば、前記主数列は、したがって、2=64の最大長さを持つことができ長さ6の前記部分列は、前記主数列における場所0〜63を持つことができる。しかしながら、もしも、長さ63の主数列が選択されると、以下に説明されるように、改善されたエラー訂正特性が得られる。以下においては、したがって、主数列の長さは63で、それ故0〜62の範囲で唯一の場所定義されるものとする。前記主数列のこの長さによれば、各部分列を前記主数列における場所に変換し且つその逆変換もするテーブルを持つことが実際に可能である。
前記主数列の開始が次の通りであると仮定されたい:
0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,1,0…
前記主数列において、例えば、部分列0,0,0,0,0,0は、明確な場所0を有し、部分列1,1,1,1,1,0は、明確な場所9を有し、そして部分列1,1,1,0,1,0は、明確な場所11を有する。
前記位置コーディングは、前記循環主数列の異なる循環ないし循環的シフトを利用することに基づいている。x方向における位置をコード化するために、前記主数列が、面を横切る複数の縦列として、すなわち位置がコード化されるべき方向に直交するy方向に並ぶように、プリントアウトされまたは何か他の方法で配列される。このとき、前記主数列は、複数の縦列において、種々の方法で循環されまたは循環的にシフトされる。前記主数列は、y方向において、前記主数列の前記長さに対応するものよりも多くの位置がコード化されようとする場合は、同一の縦列において、必要なだけ繰り返して、プリントアウトされ得る。そのとき、前記主数列のすべての繰り返しに同一の循環が使用される異なる縦列においては異なる循環使用され得る。
図1は、七つの列x〜x+6を有する一枚の紙100を概略的に示している。異なる循環をさせた複数の前記主数列における初めの方の数のみがプリントアウトされている。主数列全体は、ボックスBによって概略的に示されている。加えて、図1においては、各縦列において、六つの数からなる最初の部分数列Sが、破線を用いて描かれたボックスによって示されている。上述されたように、前記部分数列Sの各々は、前記主数列において明確に決定される場所を有する。
隣接する列の各対は、差分数dを定義する。差分数dは、それぞれの列における最初の部分数列の主数列における場所の間の差分によって与えられる。もしも、その代わりに、各列における一ステップ下の部分列の場所の間の差分がとられたら、結果は、それらの場所が同様の方法でずらされているので、同様となるであろう。したがって、差分数dは、前記主数列における部分列の場所が、縦列におけるどの「高さ」において比較されようが、同様となるであろう。したがって、の各対について、差分数dは、y方向では一定である。
列x+5における主数列の最初の部分数列は、0,0,0,0,0,0であり、それは前記主数列における場所0に対応する。列x+6における主数列の最初の部分数列は、1,0,0,0,1,1であり、それは前記主数列における場所57に対応する。これらの列の間の差分または循環的シフトは、したがって57であり、それ故d(x+5)=57である。ここで、前記差分数は、前記主数列の長さを法として求められる
このような方法でコード化され得る差分数は、0〜K−1の範囲内にあり、ここでKは前記主数列の長さで、この場合K=63であり、したがって、それによって0〜62の範囲内における差分数をコード化することが可能となる。前記主数列の異なる循環を選択することによって、差分数の列を作ることができ、この差分数の列は、以下において一次数列または一次差分数列と呼ばれる。この差分数の列(一次数列)は、所定長さの部分数列のそれぞれが前記一次数列において明確に決定される場所を有するという性質を備えるように作ることができる。この例においては、前記所定長さは5である。五つの差分数からなる各部分列は、前記一次差分数列において明確に決定される場所を有するからx方向における位置をコード化するのに用いられ得る。図1において、部分列S(x)〜S(x+5)、前記一次数列の部分列を与える五つの差分数d(x)〜d(x+4)をこのようにコード化していることになる
実際には、前記部分列は、通常は、それらの明示的な値によってプリントアウトされるのではなく、グラフィカルなコード化によってプリントアウトされる。前記主数列の2値のが並んだ縦列は複数で行列を形成し、それは以下においてはx行列と呼ばれる。
前記主数列の長さがKであるならば、前記一次差分数列における基数は、Kに等しくなり、前記一次差分数列の最大長さは、K、すなわちこの場合63 になるであろう。しかしながら、このように大きな基数について、部分数列を一次差分数列における場所に変換および逆変換するためのテーブルを使用することは、実際的に実行可能ではない。しかしながら、もしも、管理可能なテーブルを使用できるようにするために基数が縮小されれば、コード化可能な位置の数が減少してしまうであろう。
この問題は、より短い長さの複数の差分数列から前記一次差分数列を作ることによって、解決される。この短い差分数列は、以下において二次差分数列または二次数列と呼ばれる。この二次差分数列は、部分数列とその場所とが、より小さなテーブル内に用意できるものであり、前記位置コードをコーディングし、またデコーディングする際に、特定のx座標に対応する一次差分数列の部分数列を求めるために、またその逆を求めるために、用いられる
前記二次差分数列は、次のようにして決定され得る:
第一に、差分数は、異なる差分数の個数が少なくとも二つの要素に因数分解され得るような範囲内のみ許可される。長さ63の主数列を有する例においては、差分数は、長さ54の範囲内でのみ許可される。数54は、実際には、2*3*3*3として因数分解され得る。わりに、60の差分数、すなわち5*3*2*2の差分数を選択してもよいが、テーブルが可能な限り小さくなるようにするために、可能な限り小さな要素を与える数を選択することが好都合であるかもしれない。
第二に、異なる差分数の個数が因数分解され得る要素の個数と同一の個数の二次差分数列形成される。この例においては、それ故、二次差分数列の数は、4に等しい。
加えて、我々は、各要素に、それぞれの二次差分数列において基数を形成させる。この例においては、それ故、我々は、基数2を有する一の二次差分数列および基数3を有する三つの二次差分数列を得る。
したがって、もしも、二次差分数列もまた、長さ5の部分列が該二次差分数列において唯一の場所を有するはずであるという性質を有するとするならば、前記二次差分数列の最大長さは、それぞれ32および243である。前記二次差分数列のそのような長さであれば、部分列を場所に変換しまたその逆変換をすることが、実際的に実行可能である。もしも、代わりに、我々が60の異なる数を使用すべく選択したならば、我々は、基数5を有し、それ故最大長さが3125である二次差分数列を得るため、かなりより多くのメモリを使用するテーブルが必要となるが、それでもまだ、管理可能である
最後に、前記二次差分数列の長さは、対にすると該長さが互いに素であるように選択される。このことは、各対をなす二次差分数列について、一方の差分数列の長さが、他方の差分数列の長さと、共通の要素を一切持たないようにすることを意味する。このことは、加えて、もしも前記差分数列の各々が繰り返されるならば、各二次差分数列からの部分数列の組み合わせが同一になることは、L=l*l*…*l だけ後の場所まで生じないであろうことを意味する。なお、lは、二次差分数列1の長さであり、lは、二次差分数列2の長さであり、そして最後の二次差分数列の長さであるl まで、同様である。もしも、二つの二次数列だけしかなければ、もちろん、L=l*lである。
このことは、図2に概略的に図解されている。最上部には、一次数列PDが示されており、ここでは単にXによって示されている差分数一つの長い列になって延びている。下部には、二次数列A1〜A4が概略的に示されている。垂直線は数列が再開する場所を示している。一次数列の部分列および対応する二次数列の部分列は、破線によって示されている。部分列は、二次数列における異なる場所に対応することがわかる。
二次差分数列の部分列の組み合わせによる一次差分数列の部分列の表現は、この例においては、全単射である。これは、しかしながら、必要なことではない。
第二次元における、例えばこの場合y方向における、位置コーディングは、第一次元における位置コーディングと同様の原理に従って実行され得る。前記主数列は、それから、面上の複数の横行中に、すなわち図1におけるx方向に、異なる循環的シフトを伴って、配列される。差分数は、隣接する行の間で定義され且つこれら差分数は、一次差分数列を形成し、この一次差分数列は、複数の二次差分数列から作ることができるものである。第二次元において、他の主数列、他の一次差分数列および他の二次差分数列を使用することが可能である。前記種々の数列における基数も、前記第一次元においてコーディングのために使用されたもの以外のものとすることが可能である。この例においては、しかしながら、同一の列が、x方向y方向との両方に使用される。x方向におけるコーディングに対応する方法において、y方向におけるコーディングは、結果として、行の値が主数列の2値の値からなる行列を得る。
もしも、x行列およびy行列が重ね合わされたならば、結果として得られるxy行列における各点について、x行列からの1ビットとy行列からの1ビットとが存在するであろう。それ故、各点において、次の四つのビット組合せが、取得され得る:0,0;0,1;1,0;および1,1。これらの異なる組み合わせは、例えば図3a〜図3dに示された方法によって、面上にグラフィカルにコード化され得る。図3a〜図3dでは、ドット30が、ラスタにおける公称点31からの四つの方向のいずれか一つの方向に変位されている。ここで、各公称点は、ラスタにおける線32間の交差に対応する、このタイプのグラフィカルなコーディングは、国際特許出願WO 01/26032号に非常に詳細に説明されているが、但しそこでは、基礎となる位置コーディングが異なる方法にて実行されている。この例において使用されるコーディングは次の通りである:


ラスタは、仮想的であり得て、その場合、面上に位置コードとともに明示的にプリントアウトされることはない。
図4は、位置コード410を有する一枚の紙400の形態における製品の一部を概略的に示している。図4における位置コードは、例えば手書きをディジタル化するのに適するバージョンに対して、非常に大きく拡大されていることは、強調されるべきである。加えて、図4では、ラスタ420が示されているが、通常は、ラスタ420はプリントアウトされない。
もちろん、他のタイプのグラフィカルなコーディングが、四対のビットについて選択され得る。例えば、異なるサイズの四つのドット、異なる形状を有する四つのマーク、または異なる回転を有する四つのマークのようなグラフィカルなコーディングがあり得る
位置コーディングが、主数列における異なる部分列の場所の間の差分に基づいており、且つ同一の差分、部分列の異なる対を用いて得ることができるので、一次差分数列、種々の方法で作られ得る。より詳細には、の部分列、すなわち主数列のどの循環が、x行列における最初の列(x=0)およびy行列における最初の行(y=0)を始めるべく選択されたか、に依存して、63の異なる「バージョン」の一次差分数列が作られ得る。したがって、x方向およびy方向へのコーディングのために同一の一次差分数列を利用する位置コードについては、K*K(この例では63*63=3969)個の異なる「バージョン」を生成することが可能である。位置コードのこれらの異なるバージョンは以下においてセクションと呼ばれる。x方向における位置コードについてのセクション番号xsおよびy方向における位置コードについてのセクション番号ysは、それぞれx方向およびy方向についての付加的な座標として示され得る。
上の例においては、主数列を用いて理論的にコード化され得る差分数のうち、部分的にしか使用されていない。より詳細には、可能性のある63個の差分数のうち、54個のみが使用されている。理論的に可能性のある差分数の部分範囲は、種々の方法で選択され得る。この例においては、(前記主数列の長さを法とした)ゼロに近い差分数が、位置コードにおいて、望まれない規則性を作り得る。それ故、この例においては、差分数は、範囲(5,58)内に選択される。このことは、一次数列における部分列と二次数列における部分列との間の変換に関して考慮されなければならず、そしてそれは以下において説明されるであろう。今、位置コードが面上に配置されていると仮定されたい。読み取りデバイスは、少なくとも6*6ドットに対応する位置コードの部分集合を検出するエリアセンサを持ち得る。読み取りのとき、前記読み取りデバイスは、前記位置コードに対して種々の方法で回転されて保持され得る。位置コードは、原則的に、0,90,180または270度のうちのどれだけ回転された場合でも、同じように見えるので、位置コードのイメージは、位置コードと読み取りデバイスとの間の回転をそれ自体で明らかにすることはない。位置コードが回転されるとき、各ドットの変位の方向は、しかしながら、変化され、それが結局、ドットの変位によってコード化されたビット対が変化することにつながる。どのように変化が生ずるかは、変位とビットとの間の変換に依存する。以下においては、上述されたように変換が実施されると仮定されている。三つの異なるケースが存在する。
1)位置コードのイメージの180度の回転によって、非回転位置コードにおける位置およびy位置をコード化する循環主列は、イメージに基づく位置をデコードする試みがなされるとき、逆順に読み取られるであろう。上述された変位とビット対の組み合わせでは、デコードされたビットは、位置コードが上下逆に読み取られることから、反転されるであろう。
2)時計回り方向における90度の回転によって、非回転行列におけるx位置をコード化するビット列は、回転行列におけるy位置をデコードする試みがなされるとき、逆順に読み取られ、そして前記ビットは反転されるであろう。
3)時計回り方向における270度の回転によって、非回転行列におけるy位置をコード化するビット列は、回転行列におけるx位置をデコードする試みがなされるとき、逆順に読み取られ、そして前記ビットは反転されるであろう。
このことは、もしも、正しい向きで正立状態にある非回転行列における部分数列が、反転されて且つ逆順になって、循環主数列中にあらわれることがなならば、90,180および270度の回転が検出され得ることを意味する。もしもそのような条件が前記主数列について満たされるならば、このことは、前記主数列の長さがずいぶん減らされることを意味し、それは結局、コード化できる位置がより少なくなってしまうことを意味する
この問題を解決するため、我々は、その代わりに、前記循環主数列のより長い部分列について、条件が満たされるようにさせる。このことは、実際の位置決定のために要求されるよりも長い部分列が、読み取られなければならないことを意味する。ある場合においては、そのようなより長い部分列は、読み取りの間に既に利用可能になっている。もしも、位置の座標をコード化する位置コードの最小の部分集合が正方形状であるならば、この例における場合にそうであるように、読み取りデバイスが、位置コードに対して45度回転されたときでさえも、読み取られた位置コードの部分前記最小の部分集合の全体を含むように、位置コードの大きな部分がいつも読み取られなければならない。それ故、位置決定のために要求されるものよりも長い少なくとも一つの部分列がいつも含まれる。このことは、図5に図解されており、そこでは、各正方形50がドットに対応し、グレーに影付けされた正方形が、少なくとも一つの行および一つの列を、二つの余分のドット付きで読み取ることが、いつも可能であることを図解している。
位置決定のための主数列の部分長さ6を有する現在の例では、長さ8の部分列が回転の検出のために使用され得る。これら8ビット長の部分列は、したがって、主数列内において逆順に且つ反転してあらわれることがないという性質を有する。この性質は、64ビット長の主数列では得られず、それが前記長さがその代わりに63として選択される理由である。
上述された回転のうちの二つ、すなわち90および270度において、正しい方向に回転する一列、そして誤った方向に回転する一列が読み取られるであろう。回転検出のための上述された方法によれば、二つの読み取り方向(xおよびy)のうちの一方の方向だけにおいて、回転エラーが検出されるであろう。他方の読み取り方向において、正しく回転されたイメージの前記一方の読み取り方向における位置をコード化する循環的シフトを見ることができるであろう。
時計回り方向における90度回転の場合において、正確に回転されたイメージのy座標をコード化する循環的シフトは、x方向についてデコーディングするときにられるであろう。したがって、見られるのは、y方向の一次差分数列の部分列であるが、誤った方向に回転されている(x方向の一次差分数列の部分数列の場合であれば左から右へ並んでいるが、この場合はそうではなく右から左へ並んでいる)。
270度回転の場合には、対応するようにy方向についてデコーディングするときに、x方向の一次差分数列の部分数列が、誤った方向に回転されて見られるであろう
なぜ部分列が誤った方向に回転されて見えるかという理由は、x方向およびy方向の一次差分数列の相対的な方向性である。全体の位置コーディングパターンの縁部から始まり、y方向の一次差分数列が、反時計回り方向に並ぶ一方で、x方向の一次差分数列が、時計回り方向に並ぶ。もしもそれらが同一の方向に並んでいたとしたら上述のケースにおいて、それらは誤った方向には回転せず、正しい方向に回転したであろう
一次差分数列を反対方向に並べることには多数の利点がある。一次差分数列の部分列が正しい回転をしているケースにおいては、「正しい」座標がデコードされるが、誤った方向においてである。この座標は、デコーディングに要求される一次差分数列からの六つの循環的シフトに対応するだけでなく、周囲のシフトが、デコードされる座標が正しいことを確認するであろう。一次差分数列が互いに反対方向に並んでいるケースにおいては、一次差分数列からの六つの循環的シフトもデコードされるが、誤った順序においてであり、結果として誤って回転された一次差分数列の周囲部分に統計的に対応しないであろう座標を生ずる。この事実は、結果としてエラー検出についてより良い可能性を生ずる。
他の利点は、一次差分数列が反対の方向に並んでいれば、連続的なエラー、すなわち複数の連続するイメージが隣接する位置にデコードされるエラー、の危険が少ないことである。より詳細には、誤った方回転され一次差分数列における六つの循環的シフトの異なる隣接する組は、隣接する座標をコード化しない傾向がある。連続的なエラーは、そこでは正しくない座標の広がりが大きく、他のエラーよりも検出することが一層困難である。
回転の検出のために使用されるのと同一の基本原理が、エラー訂正のために使用され得る。主数列は、例えば、位置決定のために要求されるよりも長いある所定長さの部分列が、主数列内ビット反転されてあらわれることがないように選択され得る。もしも、そのようにより長い部分列において、を除く全てのビットが確実性をもって検出され得るならば、不正なビットは、訂正され得る。
位置コードのそのようなエラー検出およびエラー訂正特性は、主数列の理的な選択によってかなり改善され得る。さらなる改善が、二次差分数列の選択によって達成され得る。
上述の例においては、主数列および二次差分数列が、付録Aに示される方法で選択されている。
二次差分数列は、以下に述べる特別なエラー訂正特性を有している:
主数列の部分列の一つが、正しくなくデコードされ、そしてそれは主数列における正しくない場所がデコードされることにつながると仮定されたい。各場所は二つの隣接する差分数を計算するために使用されるので、これらは、両方とも正しくないデコーディングによって影響されるであろう。もしも、差分数のいずれか一が、使用される差分数範囲(5,58)の外側にあれば、エラーは直ちに検出されるであろう。もしも、これがそのようなケースでなければ、しかしながら、一次差分数列の部分列が結果として生ずる四つの二次差分数列の部分列の組合せにおける少なくもと一つの部分列が、二つの隣接する位置においてゆがめられるであろう。初めの二つの二次差分数列A1およびA2の両方が基数3を有し、且つ使用されない差分数の数は、9=3*3であるので、これら二つの列のいずれか一つにおけるゆがみは、二つの影響された数の合計、3を法としいつも同一の値を有するという性質を有している。
二つの二次数列A1およびA2は、長さ7の部分数列のそれぞれについて、単一の不適正な場所のデコーディングによって引き起こされる可能性のある14のゆがみのうちのせいぜい1つが、二次数列内に見出されるであろうという性質を有している。三番目の二次数列A3は、加えて、長さ7の部分数列のそれぞれについて、単一の不適正な場所のデコーディングによって引き起こされる可能性のある13のゆがみのうちのせいぜい1つが、二次数列の中に見出されるであろうという性質を有している。四番目の二次数列A4は、可能性のある28のゆがみのうちのせいぜい7つについてじ性質を有している。主数列の部分列の単一の正しくないデコーディングが検出される可能性は、このように大きい。
選択された列によれば、合計410815348の異なる位置が、一つのセクションの各次元にコード化され得る。コード化され得る異なるセクションの数は、上述された通り63である。したがって、コード化され得る位置の合計数は、63*410815348=6.7*1020位置である。
もしも、各位置が、0.3*0.3mmの面に対応するならば、これは唯一の位置が、6000万kmの面上コード化され得ることに対応する。位置コードによって理論的にコード化され得る全ての唯一の点によって作られるこの面は、仮想面と呼ばれ得る。位置コードがコード化する座標は、それ故仮想面上の点についての絶対座標である。位置コードの部分が、物理的ベースまたは面上に適用され得る。それから、位置コードは、このベース上で位置をコード化する。しかしながら、座標は、通常、物理ベース上の位置についての絶対座標に関連せず、仮想面上の点について関連している。
〔位置コーディングの実際的な例〕
以下において、実際に位置コーディングがどのようにして実現されるかが説明されるであろう。標準的には、ユーザは、座標0からそして上方向きに全ての位置コードをプリントすることには関心がなく、むしろ、ユーザには、特定のアプリケーションのために使用され得る特定の座標エリアが割り当てられている。そこで実際的な問題は、この特定の座標エリアについてどのように位置コードが求められるかである。
位置コードは、何らかの適切なタイプのプロセッサユニットから構成し得るコーディングデバイスにおいて決定されまたは生成され得る。それから、前記プロセッサユニットは、実際のプロセッサ、作業メモリおよび位置コードを決定するための命令群を有するコンピュータプログラムが格納されるプログラムメモリを具備している。前記プロセッサユニットは、典型的なパーソナルコンピュータに、プリンタに、または何らかの他の適切なデバイスに組み込まれ得る。あるいは、前記コーディングデバイスは、ASIC(アプリケーション特定集積回路)またはFPGA(フィールドプログラマブルゲートアレイ)またはこの特定のタスクのために適するように適用され得る同様のユニットのような、特定目的のハードウェアで構成することもできるし、またはディジタルおよび/またはアナログ回路あるいはそれらの何らかの適切な組み合わせで構成することもできる。
位置コードの生成する意味のある最小の部分は、単一の点についての座標をコード化した部分である。この例においては、これは6*6変位値による行列を生成することに対応し、それは基準ラスタにおけるそれらのそれぞれのラスタ点から6*6ドットの変位で記述する。
しかしながら、しばしば、複数の点についての座標をコード化する位置コードの部分集合の生成、すなわちより大きな行列、が要求される。
前記コーディングデバイスへの入力信号は、通常のケースでは六つのパラメータからなることができる:
x:位置コードにおける最も左にある縦列についてのx座標である。
y:最上部の行についてのy座標である。
xs:x位置コードについて使用される位置コードのセクションを示す。
ys:y位置コードについて使用される位置コードのセクションを示す。
幅:位置コードにおける列の数、すなわちx方向における座標エリアのサイズを示す。
高さ:位置コードにおける行の数、すなわちy方向における座標エリアのサイズを示す。
これらのパラメータは、ユーザによってまたは外部ユニットからコーディングデバイスに入力される。オプション的に、変位値によって満たされることとなる行列に対するポインタも含まれ得る。さもなければ、行列についてメモリが割り当てられる。
コーディングデバイスのタスクは、行列における各点を、変位値Oに関連付けることにある。変位値Oは、ベース上にプリントされる位置コードにおいてドットをどの方向へ変位すべきかを示す。
この例においては0〜3であり得る変位値Oが、上述において説明してきたように、一つのビット対におけるビットによって、求められる。そこでは、第一のビットは、現在点についてのx位置コードの値 からなるとともに、第二のビットは、現在点についてのy位置コードの値 からなるもしも、一つのビット対が既知であれば、変位値は、ビットを変位値に変換するテーブルO内において検索され得る。
x位置コードの値mは、もちろん、我々が位置を定めた点xおよびyに依存するが、位置コードの現在セクションにも依存する。したがって、m=m(x,xs,y)である。y位置コードの値m は、対応するように、我々が位置を定めた点xおよびyに依存し、そしてy位置コードの現在セクションにも依存する。したがって、m=m(y,ys,x)である。
もしも我々が、セクションxsにおける縦列xにおいて、前記循環主数列がどの場所sで始まるかを決定して、yを付加すれば(ここで結果は主数列の長さを法としてとられる)、我々がxコーディングのために位置を定めた点x,yにおける前記主数列内の場所が得られる。我々は、それから主数列のテーブルMを参照し、この場所を有するのが、前記主数列におけるどの数(ビット)であるのかを探索する。これにより得られた主数列における数は、点x、yにおけるxコーディングの値を構成する。このことは、m(x,y,xs)=M[(s(x,xs)+y)(mod 63)]として表現され得る。
対応する操作を実行することによって、yコーディングの値が点x,yにおいて見出され得る。このようにして、我々は、ビット対へのアクセスを得る。このビット対から、行列における点x,y格納されるべき変位Oが求められることになる
コーディングデバイスが計算する必要があるのは、したがって、まず、点x,yの座標をコード化する位置コードの部分集合の中で最も左にある縦列である縦列xについて、前記主数列がどの場所sで始まるかである。他の言葉で言えば、列xにおける主数列について循環的シフトが計算されると言える。
このことは次のようにして実行され得る。
差分数d(x)が、先に示されたように、縦列xにおける最初の部分数列の主数列における場所と、隣接する縦列x+1における最初の部分数列の主数列における場所とによって、定義される。より詳細には、それは、次のようになる
d(x)=(s(x+1,xs)−s(x,xs))(主数列の長さを法とする)
ここで、s(x,xs)は、セクションxsの位置コードの縦列xにおける、主数列内の場所ないし主数列についての循環的シフトである。
定義として、さらに、s(0,xs)=xsであり、これは、xセクションを定義するx位置コード中のまさに最初の列における主数列についての循環的シフトである。
これに基づいて、s(x,xs)が
s(x,xs)=(xs+sum(j=0…x−l)d(j))
(主数列の長さを法とする)
として求められる。
多くの点についての座標をコード化する位置コードのための全てのxについて差分数d(x)の値を定義する一次差分数列を格納することは、実際的には可能でないので、ここで、一次差分数列における各差分数が、二次差分数列の各々から一つの数を取り出して組み合わせたものにマップ可能であるという事実が利用される。一般的には次のようになる:
d(x)=dc(1,x) + b*dc(2,x)+ …
+ b*…*b −1*dc(,x)
ここで、は、二次差分数列の個数であり、そして、bは、i=1〜−1についての差分数列iにおける基数であり、dc(i,x)は、差分数列iにおける数を用いてテーブルDCを検索することによって求めることができ、したがってdc(i,x)=DC[差分数列iの長さを法とするx]である。もし、二つの二次差分数列しかなければ、もちろん上述における最初の2項のみが用いられる。
問題のケースにおいては、それ故我々は、次を得る:
d(x)=5+dc(1,x) + 3*dc(2,x) + 9*dc(,x)
+ 18*dc(,x)
但し、定数5は、範囲5〜58における差分数が用いられているという事実に由来している。
それぞれ異なる二次差分数列からの寄与は独立であるので、各二次差分数列について、別々に、差分xまでの全ての差分数の合計が計算され得る。図2において場所xまでの全ての差分数が、各数列について、別々に、合計されたように見られ得る。
実際には、この合計は、定数およびテーブルの使用によって容易に求めることができる。前記二次差分数列のサイクル全体からの寄与は、実際に一定であり且つそれ故、あらかじめ決定されそして定数として格納され得る。これらの定数はここではDCCSとしてあらわされる。差分数列の不完全なサイクルからの寄与、あらかじめ決定されそしてテーブルに格納されることでき、該テーブルは、それぞれ二次差分数列における各場所について、この場所に至るまでとこの場所を含めて差分数の合計を与える。このテーブルは、ここにDCICSとあらわされる。定数項5からの寄与は、5*xである。
sum(j=0…x−l)d(j)の項は、それ故、各二次差分数列について次のようにして求めることができる
DCCS*(x div l(i))+DCICS[x(mod l(i))]
ここで、l(i)は、二次差分数列iの長さである。
s(x,xs)が求まると、点x,yにおけるx位置コードは、それ故、上述されたように、yの既知の値の使用およびテーブル参照によって求めることができる
x位置コードにおける後続の列について、(x,xs)は、上述されたように求められる必要はなく、代わりにs(x,xs)が既知であるという事実が利用されて、次の関係を用いてs(x+l,xs)が計算される。
d(x)=(s(x+1,xs)−s(x,xs))(主数列の長さを法とする)
d(x)=5+dc(1,x)+ b*dc(2,x) +…
+ b*b…*b −1*dc(,x)
dc(i,x)=DC[差分数列iの長さを法とするx]
この手順が、それから、入力パラメータ「幅」に従って必要な個数の縦列について繰り返される。
s(y,ys)は、s(x,xs)についてと対応する方法で求められ、そして入力パラメータxを用いて、点x,yにおけるy位置コードの値も求めることができる
これら両方の値が得られたとき、点x,yにおける変位が、テーブルO内が参照されることによって求められる。
位置をコード化するために、コーディングデバイスが、それ故、次のテーブルおよび定数を使用し得る:
M:主数列における複数の異なる場所のそれぞれに対応する、主数列における数。
O:複数の異なるビットについての変位(0〜3)。
DC二次差分数列iにおける複数の異なる場所のそれぞれに対応する、二次差分数列iにおける数。
DCICS:二次差分数列iの不完全なサイクルの各々における数の合計。
加えて、次の定数が格納され得る:
DCCS:二次差分数列iにおける全ての数の合計。
l(i):二次差分数列iの長さ。
K:主数列の長さ。
位置コーディングのための単純なフローチャートが図6に示されている。最初に、ステップ600において、入力信号が、x,y,xs,ys,幅,高さの形態で受け取られる。その後に、x行列およびy行列が、並列的に、あるいは、xがyより先またはyがxより先のいずれかの順序で逐次的に、求められる。このことは、並列フローによってフローチャートに示されている。ステップ605において、循環的シフトs(x,sx)が、x位置コーディングにおける最初の縦列について、まず求められる。その後に、ステップ610において、循環的シフトs(x+1,xs)が、2番目の縦列について求められる。その後、ステップ615においてx=x+1が適用され、ステップ620において、幅全体について、すなわち全ての縦列について、循環的シフトが求められたか否かが調べられる。もしも、そうでなければ、フローはステップ610に戻り、そしてこのステップおよびステップ615が繰り返される。もしも、全てについて求められたならば、ステップ625において、テーブル参照によってx行列におけるビット値が求められる。対応する方法で、ステップ630〜ステップ650においてy行列についてのビット値が求められる。最後に、xy行列についての変位がステップ655においてテーブル参照によって求められる。
これは、もちろん、位置コーディングがどのように実行され得るかの、まさに粗く概略的な例であり、そして実際には、それは多くのやり方に変更され得る。例えば、点についてのビットおよび対応する変位は、その点について循環的シフト求められると直ちに引き続いて求められることも可能である。結果として、x行列およびy行列をバッファする必要はない。
該方法は、コンピュータプログラムとして実行されることが可能である。コンピュータプログラムからの出力信号は、変位値を伴うxy行列そのものである必要はなく、その代わりに位置コードを作成する主数列の部分列の何らかの他の指示からなること可能である。
〔位置デコーディングの実際の例〕
位置コードは、位置コードを読み取るためのセンサ何らかの適切なタイプのプロセッサユニットとを備え得るデコーディングデバイスにおいてデコードされ得る。プロセッサユニットは、実際のプロセッサ、作業メモリおよび、位置コードをデコーディングするための命令群を有するコンピュータプログラムがそこに格納される、プログラムメモリを備えている。前記プロセッサユニットは、典型的なパーソナルコンピュータに、ハンドヘルド読み取りデバイスにまたは何らかの他の適切なデバイスに組み込まれ得る。あるいは、前記デコーディングデバイスは、ASICまたはFPGAまたはこの特定のタスクのために適するように適用され得る同様のユニットのような、特定目的のハードウェアで構成することもできるし、またはディジタルおよび/またはアナログ回路あるいはそれらの何らかの適切な組み合わせで構成することもできる。
デコーディングデバイスの特定の例が以下において説明されるであろう。
以下の記述は図7のフローチャートに言及している。
デコーディングデバイスへの入力信号は、位置コードの検出された部分集合のイメージまたは他の何らかのディジタル表現からなっており、その部分集合は、少なくとも一点についての座標をコード化しているステップ700。この例においては、位置コードは、上述されたように、ラスタにおけるラスタ点に対して所定の方法にて変位されドットによりグラフィカルに表現される。
デコーディングの最初のステップにおいては、デコーディングデバイスが、例えば閾値弁別を用いることによって、イメージにおけるドットを識別し、ラスタをドットに合わせるステップ705。ラスタは、例えば、複数の異なるドットの間における距離の利用という本出願人の国際特許出願WO 01/26034に記述された方法によって、またはフーリエ変換の利用という国際特許出願WO 01/75783に記述された他の方法によって、決定され得る。各ラスタ点について、関連付けられたドットの変位が求められ、変位に依存する値0〜3が与えられる。少なくともサイズが(n+1)*(n+l)の行列が選択され、ここで、nは、位置決めのために使用される主数列の部分列の長さであり、その部分数列の場所は、主数列内に明確に決定される。ここのでは、8*8行列が選択される((n+2))*(n+2))。この行列は、変位値をビットに変換するテーブルOI検索を利用して、変位値をビット対に変換することによって、x行列(x位置コードとも呼ばれる)とy行列(y位置コードとも呼ばれる)に分離されるステップ710。各ビット対における最初のビットはx行列を形成し、各ビット対における2番目のビットはy行列を形成する。
次のステップにおいて、x行列およびy行列の回転の四つの可能性のあるタイプ(0,90,180および270度)調査され現在の回転が決定されるステップ715。行列を誤って回転させると、長さ8の部分数列として、主数列には無い部分数列があらわれるという、先に述べられた事実が用いられる。
同時に、ある程度のエラー訂正が長さ8の部分列に基づいて実行される。
正しい回転が決定されたとき、次のステップにおいて、中央にあって正しい方法で回転されそしてn*nなるサイズを有するx行列およびy行列のみが使用される。すなわちこの例においては二つの6*6行列のみが使用される。x行列およびy行列が、並列的に、あるいは、xがyより先またはyがxより先のいずれかの順序で逐次的に、求められる。このことは、図7における並列フローによって示されている
x行列のデコーディングの最初のステップ720において、一次差分数列の部分列が求められ、それは図7において、一次部分列と呼ばれる。より詳細には、x行列において、行列内の列におけるビットが、主数列の部分列を構成する。主数列における対応する場所は、部分列を場所に変換するテーブルMI内が参照されることにより求められる。その後に、複数の主数列の部分列によってコード化された差分数が求められる。この例においては、それらの個数は5である。より詳細には、差分数は、隣接する部分列の場所の間の差分dとして求められ、前記差分は主数列の長さを法として求められる。
そのようにして取得される差分数の列は、一次差分数列の部分数列である。一次差分数列は、x方向についてのコーディングのために使用されるが、そのサイズのために、デコーディングデバイスには格納されない。その代わりに、一次差分数列の各部分数列は、二次差分数列の各々からの部分数列の組み合わせに変換され得るという、一次差分数列の性質が利用される。ステップ725において、一次部分列が、そのように二次部分列に変換される。より詳細には、各差分数は次のように書き換えられる:
d=d1 + b*d2 +…+ b*b…*b −1*d
ここで、は、二次差分数列の個数であり、そしてbは、二次差分数列iの基数である。これに関する例は、次のようになる:
d=5+d1 + 3*d2 + 9*d3 + 18*d4
ここで、d1〜d4は、整数除算またはテーブル参照によって求められる。
一次差分数列のデコードされた部分列における五つの数の各々は、それ故結果として四つの数d1,d2,d3,d4となる。したがって、第一の二次差分数列の部分列を形成する五つのd1数が得られ、第二の二次差分数列の部分列を形成する五つのd2数が得られ、第三の二次差分数列の部分列を形成する五つのd3数が得られ、そして第四の二次差分数列の部分列を形成する五つのd4数が得られる。例が、下に与えられる:
d 23 45 51 9 37
d1 2 0 0 0 1
d2 1 0 2 0 0
d3 0 1 1 1 0
d4 1 2 2 0 2
二次差分数列の部分列のそれぞれの場所は、それぞれの二次差分数列の部分数列をそれぞれの二次差分数列における場所に変換する四つのテーブルDCIを参照することによって求められる(ステップ730
各部分数列について、場所piがそのように得られる。これらの場所について、次のような式が成り立つ:
P=p1(mod 1)
P=p2(mod 2)

P=p(mod la
但し、Pは、座標xに対応する一次差分数列における場所、piは、二次差分数列における場所、liは、二次差分数列iの長さ、そしては、二次差分数列の個数である。
この式のシステムは、よく知られた中国の余剰定理を用いて解決され得るそれについては、例えばNiven,Suckerman著「数の理論への導入」Springer Verlagに非常に詳細に説明されている。こうして、ステップ735において、xが求められる。
L=prod(i=1,)liと定義し、qi*(L/li)=1(mod li)と定義する。一次差分数列における場所Pは、次のようにして得られる:
P=(sum(i=1,)((L/li*pi*qi))(mod L)
ここの例では、
L=l1*l2*l3*l4=236*233*31*241=410815348
および
q1=135
q2=145
q3=17
q4=62
が得られる。
もしも、二次差分数列の部分数列について例えば、場所p1=97;p2=176;p3=3およびp4=211が得られるならば、一次差分数列における対応する場所Pは、中国の余剰定理に従って387195149となるであろう。
Pが求まると、次のステップは、場所が属するxセクションを決定することである。これは、まず、y=0という仮定のもとに、そしてs(x,0)の計算によって実行される。s(x,0)は、xs=0についての列xのための部分数列の主数列における場所である。
s(x,0)は、位置xについての位置コードの決定に関連して上述されたのと同様に二次差分数列を用いて計算される。もしも、s(x,0)が、方向についての位置決めのために使用される六つの部分数列のうちの最初の部分数列の場所から引かれると、y=0についてxsが得られる。
y行列は、x行列のデコードに先だって、またはそれと並列的に、あるいはその後に、デコードされ、y方向について、一次差分数列における場所が、x方向についての上述されたのと対応する方法にて、図7におけるステップ740〜755に従って、求められる。加えて、yセクションysが、xセクションについて上述されたのに対応する方法であるが、x=0の仮定のもとに、計算される。最後に、ステップ760において、xsは、yを考慮して決定され、且つysは、xを考慮して決定される。すなわち、y=0についてのxsからy(主数列の長さを法とする)を減算し、x=0についてのysからx(主数列の長さを法とする)を減算する
次のテーブルは、したがって、位置コードをデコードするために使用され得る:
MI:数列の部分列を主数列における場所に変換する、
DCIn個の二次差分数列の各々の部分列を、nの二次差分数列における場所に変換する、そして
OI:位値をビット対に変換する。
図7におけるフローチャートでは、位置デコーディングが、例えばコンピュータプログラムにおいて、どのように実現され得るかの粗い概略的な例であることは強調されるべきである。
〔ハンドヘルド読み取りデバイスの例〕
位置コードは、種々のタイプの読み取りデバイスによって読み取られ且つデコードされ得る。そのようなデバイスは、位置コードのディジタル表現を取得するためのセンサ、およびディジタル表現における位置コードを識別し且つこれをデコードするための手段を有し得る。これらの手段は、上述されたように、メモリを有するプロセッサ、および適切なプログラムまたは特別な目的のためのハードウェアまたは、ディジタルおよび/またはアナログ回路、または何らかのそれらの組み合わせから構成することができる。
読み取りデバイスの例が図8に示されている。それは、ペンとほぼ同様の形状をなすケーシング11を備えている。ケーシングの短寸側部には、開口12がある。短寸側部は、位置決定が実行されるべき面に対して接触させまたはそこから短い距離で保持することを意図している。
ケーシングは、主として光学部分、電子的回路構成部分および電源を収容している。
光学部分は、イメージングされるべき面を照明するための少なくとも一つの発光ダイオード13および二次元イメージを記録するための例えばCCDまたはCMOSセンサ等の光感応性エリアセンサ14を備えている。付加的に、デバイスは、ミラーおよび/またはレンズ系のような光学系を含んでいてもよい。発光ダイオードは、赤外発光ダイオードであってもよく、そしてセンサが赤外光に感応性を有していてもよい。
デバイスのための電源は、ケーシングにおける分離された区画室内に搭載されたバッテリ15から得る。外部電源からケーブルを介して電力供給を得ることも可能である(図示せず)。
電子的回路構成部は、センサからイメージを記録し且つこれらのイメージに基づいて位置決定を実行するようにプログラムされたプロセッサ、ならびに作業メモリおよびプログラムメモリも有するプロセッサユニットを含んでいる。
この実施の形態において、デバイスは、その上で位置決定が実行されるべき面上にその助けを借りて通常の顔料ベースの筆記が描出され得るペンポイント17も具備している。ペンポイント17は、ユーザがそれが使用されるか否かをコントロールできるように延長および折りたたみ収納が可能である。特定のアプリケーションにおいて、デバイスペンポイントを有する必要は全くない。
顔料ベースの描出は赤外光に対して透過性があるタイプが適しており、マークが赤外光を吸収することが適している。赤外光を射出する発光ダイオードを用い且つ赤外光に感応性を有するセンサを用いることにより、パターンの検出が、上述されたパターンとの描出干渉なしに実行され得る。
デバイスは、それによってデバイスが起動され且つ制御され得るボタン18も備えることもできる。例えば赤外光、ラジオ波または超音波を用いてデバイスへおよびデバイスからの情報のワイヤレス通信のためのトランシーバ19も持っている。デバイスは、位置または記録された情報を表示するためのディスプレイ20を備えることもできる。
デバイスは、異なる物理的ケーシングに分割されることもでき、第一のケーシングは、位置コーディングパターンのイメージの記録に必要な構成要素およびこれらを第二のケーシングに収容されおよび記録されたイメージ/イメージ群に基づいて位置決定を実行する構成要素に送信するための構成要素を収容する。
〔代替的実施の形態〕
上述の実施の形態においては、位置コードが二次元において位置をコード化するものとして説明された。しかしながら、位置コードは、一次元の位置をコード化するために使用されるようにすることもできる。上述の例においては、例えば、位置コードの「ストリップ」は、y=0のx軸に沿って使用されるようにすることもできる。代わりに、コーディング行列のみが使用されるようにすることもできる。このケースにおいては、行列における各点が、一つだけ値を持つであろうから、2値の数で構成される主数列を用いる場合に我々グラフィカルにコード化する必要があるのは0または1のみである
一次元位置コーディングの使用は、バーコードと等価とすることができる。
上述の実施の形態において2値の数で構成される主数列が使用されているが、主数列において異なる基数を使用することも可能である。その結果として、位置コーディング行列における各点においていくつかの異なる値をコード化する必要が生じ得る。
上述の実施の形態においては、同一の主数列および同一の二次差分数列が、方向および方向におけるコーディングのために使用される。これは、必要ではない。異なる次元におけるコーディングのために異なる列が使用され得る。列のためのテーブルの格納のためのメモリスペースの必要を予想して、しかしながら、全ての方向についてのコーディングのために同一の列を使用することは利点とすることができる。
上述の実施の形態において、6*6ドットまたはシンボルが位置のコーディングのために使用される。当然、より少ないまたは多いシンボルを使用され得る。両次元に同一数のシンボルが使用される必要はない。
上述の実施の形態において、一次差分数列の部分列が、部分数列の組み合わせ上に、全単射的にマップされ、且つ二次差分数列の部分数列の組み合わせが、一次差分数列の部分列上に、全単射的にマップされる。これは、必要ではない。一次差分数列の異なる部分列は、二次差分数列の部分列の同一の組み合わせ上にマップされることができる。部分列の組み合わせ上にマップされない一次差分数列の部分列が存在し得る。一次部分列よりも多い部分列の組み合わせも存在し得る。上述の実施の形態において、ラスタは直交グリッドである。それは、ロンビックグリッドのような、例えば60度角度グリッド、三角グリッドまたは六角形グリッド等の他の形態を持っていてもよい。
例えば六角形仮想ラスタに沿う3方向における変位についての、四つの方向より少ないまたはより多い方向の変位によるグラフィカルなコーディングが使用され得る。六角形ラスタにおいては、ラスタの再形成を容易にするためにただ二つの変位が使用され得る。
上述の実施の形態において、差分数がゼロに近づくのを回避するために(5,58)の範囲の差分数が使用される。しかしながら、例えば、差分数3および4を含む他の範囲も使用され得る。
上述の実施の形態において、パターンは光学的に読み取り可能であり、そしてセンサも光学的である。しかしながら、パターンは、光学パラメータとは異なるパラメータに基づくこともできる。そのような場合において、センサはもちろんそれに関するパラメータを読み取ることができるタイプからなっていなければならない。そのようなパラメータの例は、化学的、音響的または電磁的パラメータである。容量性または誘導性パラメータも使用され得る。
製品は、一枚の紙によって上述に例示されている。しかしながら、それは上述のパラメータのいずれかを用いて位置コードが適用され得るいかなる製品であってもよい。もしも、位置コードが光学的であれば、それは、例えば、プリンタによってプリントアウトされまたは通常のプリント技術を用いて製品上にプリントされることもできる。
〔付録A〕
主数列M:
0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,1,0,0,1,0,0,0,0,1,1,1,0,1,1,1,0,0,1,0,1,0,1,0,0,0,1,0,1,1,0,1,1,0,0,1,1,0,1,0,1,1,1,1,0,0,0,1,1
二次差分数列:
A1=0,0,0,0,0,1,0,0,0,0,2,0,1,0,0,1,0,1,0,0,2,0,0,0,1,1,0,0,0,1,2,0,0,1,0,2,0,0,2,0,2,0,1,1,0,1,0,1,1,0,2,0,1,2,0,1,0,1,2,0,2,1,0,0,1,1,1,0,1,1,1,1,0,2,1,0,1,0,2,1,1,0,0,1,2,1,0,1,1,2,0,0,0,2,1,0,2,0,2,1,1,1,0,0,2,1,2,0,1,1,1,2,0,2,0,0,1,1,2,1,0,0,0,2,2,0,1,0,2,2,0,0,1,2,2,0,2,0,2,2,1,0,1,2,1,2,1,0,2,1,2,1,1,0,2,2,1,2,1,2,0,2,2,0,2,2,2,0,1,1,2,2,1,1,0,1,2,2,2,2,1,2,0,0,2,2,1,1,2,1,2,2,1,0,2,2,2,2,2,0,2,1,2,2,2,1,1,1,2,1,1,2,0,1,2,2,1,2,2,0,1,2,1,1,1,1,2,2,2,0,0,2,1,1,2,2
A2=0,0,0,0,0,1,0,0,0,0,2,0,1,0,0,1,0,1,0,1,1,0,0,0,1,1,1,1,0,0,1,1,0,1,0,0,2,0,0,0,1,2,0,1,0,1,2,1,0,0,0,2,1,1,1,0,1,1,1,0,2,1,0,0,1,2,1,2,1,0,1,0,2,0,1,1,0,2,0,0,1,0,2,1,2,0,0,0,2,2,0,0,1,1,2,0,2,0,0,2,0,2,0,1,2,0,0,2,2,1,1,0,0,2,1,0,1,1,2,1,0,2,0,2,2,1,0,0,2,2,2,1,0,1,2,2,0,0,2,1,2,2,1,1,1,1,1,2,0,0,1,2,2,1,2,0,1,1,1,2,1,1,2,0,1,2,1,1,1,2,2,0,2,2,0,1,1,2,2,2,2,1,2,1,2,2,0,1,2,2,2,0,2,0,2,1,1,2,2,1,0,2,2,0,2,1,0,2,1,1,0,2,2,2,2,0,1,0,2,2,1,2,2,2,1,1,2,1,2,0,2,2,2,
A3=0,0,0,0,0,1,0,0,1,1,0,0,0,1,1,1,1,0,0,1,0,1,0,1,1,0,1,1,1,0,1,
A4=0,0,0,0,0,1,0,2,0,0,0,0,2,0,0,2,0,1,0,0,0,1,1,2,0,0,0,1,2,0,0,2,1,0,0,0,2,1,1,2,0,1,0,1,0,0,1,2,1,0,0,1,0,0,2,2,0,0,0,2,2,1,0,2,0,1,1,0,0,1,1,1,0,1,0,1,1,0,1,2,0,1,1,1,1,0,0,2,0,2,0,1,2,0,2,2,0,1,0,2,1,0,1,2,1,1,0,1,1,1,2,2,0,0,1,0,1,2,2,2,0,0,2,2,2,0,1,2,1,2,0,2,0,0,1,2,2,0,1,1,2,1,0,2,1,1,0,2,0,2,1,2,0,0,1,1,0,2,1,2,1,0,1,0,2,2,0,2,1,0,2,2,1,1,1,2,0,2,1,1,1,0,2,2,2,2,0,2,0,2,2,1,2,1,1,1,1,2,1,2,1,2,2,2,1,0,0,2,1,2,2,1,0,1,1,2,2,1,1,2,1,2,2,2,2,1,2,0,1,2,2,1,2,2,0,2,2,2,1,1.
図1は、第一の方向に並ぶ位置のx方向のコーディングがどのようにして実行されるかを概略的に示している。 図2は、一次数列PDが四つの二次数列A1〜A4によってどのようにして作られるかを概略的に示している。 図3は、位置コードのグラフィカルコーディングの例を示している。 図4は、拡された位置コードによる製品を示している。 図5は、余分なシンボルが、エラー訂正の目的のために、どのように記録され得るかを示している。 図6は、フローチャートであり且つ位置コードがどのようにして決定され得るかの実施例を示している。 図7は、フローチャートであり且つ位置コードがどのようにしてデコードされ得るかの実施例を示している。 図8は、位置コードの読み取りおよびデコーディングのために使用され得るデバイスを概略的に示している。

Claims (48)

  1. コーディングデバイスにおける方法であって、
    一次数列に含まれる複数の部分数列のそれぞれによって、製品の表面上の第一次元方向における複数の位置のそれぞれをコード化することと、
    前記位置に対応する前記一次数列の部分数列を求めるために、前記一次数列の基数よりも小さな基数を有する少なくとも二つの二次数列を用いることとを含み、
    前記一次数列の各部分数列は、第一の所定の長さを有するものであり、
    前記一次数列は、前記一次数列に含まれる各部分数列の前記一次数列における場所が明確に決定される性質を有するものであり、
    前記一次数列の少なくとも一つの部分数列は、前記少なくとも二つの二次数列のそれぞれから取り出される部分数列の組み合わせと対応付け可能なものであることを特徴とする方法。
  2. 前記位置のコード化のために前記一次数列を構成する数として使用可能な異なる数の個数は、少なくとも二つの因数に因数分解され得る数であり、
    前記因数の個数は、前記二次数列の個数と同一であり、
    前記因数の各々がそれぞれの二次数列における基数を形成するものである請求項1に記載の方法。
  3. 前記少なくとも二つの二次数列のそれぞれの長さは、対にすると前記長さが互いに素であるようになっている請求項1または2に記載の方法。
  4. 前記二次数列の各々は、それぞれの二次数列に含まれる前記第一の所定の長さを有する各部分数列の前記それぞれの二次数列における場所が明確に決定される性質を有するものである請求項1〜3のいずれか1項に記載の方法。
  5. 前記二次数列の基数は、多くとも5、望ましくは多くとも3、である請求項1〜4のいずれか1項に記載の方法。
  6. 前記一次数列の前記部分数列は、前記二次数列の各々からの部分数列を組み合わせたものに全単射で写像され得るものである請求項1〜5のいずれか1項に記載の方法。
  7. 循環主数列に含まれる複数の部分数列を用いて、前記一次数列における複数の数をコード化することをさらに含み、
    前記循環主数列の各部分数列は、第二の所定の長さを有するものであり、
    前記循環主数列は、前記循環主数列に含まれる各部分数列の前記循環主数列における場所が明確に決定される性質を有するものであり、
    複数の前記循環主数列を、隣接する循環主数列の各対が前記一次数列を構成する数となる差分数を定義するように配列し、前記差分数が、各対の一方の循環主数列に含まれる部分数列の前記一方の循環主数列における場所と、前記一方の循環主数列の部分数列に隣接する他方の循環主数列に含まれる部分数列の前記他方の循環主数列における場所との差分によって定められるようにする請求項1〜6のいずれか1項に記載の方法。
  8. 前記循環主数列に含まれる前記複数の部分数列は、各部分数列が前記製品の表面上の第二次元方向に延びるように配列されるものである請求項7に記載の方法。
  9. 前記循環主数列の理論的に形成可能な各対により定義可能な差分数のうち、ゼロに等しいかまたはそれに近い差分数を少なくとも除外した残りの差分数が、前記一次数列を構成する数として使用されるものである請求項7または8に記載の方法。
  10. 前記循環主数列は、2値の数で構成され、前記循環主数列に含まれる前記第二の所定の長さよりも長い所定長さの部分数列が、逆順になった形態もしくは反転した形態で前記循環主数列内にあらわれることがないという性質を有するものである請求項7〜9のいずれか1項に記載の方法。
  11. 前記循環主数列は、2値の数で構成され、前記循環主数列に含まれる前記第二の所定の長さよりも長い所定長さの部分数列が、当該部分数列の中の一つの数がビット反転した状態で前記循環主数列内にあらわれることがないという性質を有するものである請求項7〜10のいずれか1項に記載の方法。
  12. 前記循環主数列の部分数列であって、前記第二の所定の長さの部分数列は、六つの数からなり、
    前記一次数列の部分数列であって、前記第一の所定の長さの部分数列は、五つの前記差分数からなるものである請求項7〜11のいずれか1項に記載の方法。
  13. 前記循環主数列Mが、
    M=0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,1,0,0,1,0,0,0,0,1,1,1,0,1,1,1,0,0,1,0,1,0,1,0,0,0,1,0,1,1,0,1,1,0,0,1,1,0,1,0,1,1,1,1,0,0,0,1,1
    である請求項7〜12のいずれか1項に記載の方法。
  14. 前記一次数列は、54の異なる数を含み、
    前記二次数列の個数は、4であって、それらのうちの三つが基数3を有し、残りの一つが基数2を有するものである請求項1〜13のいずれか1項に記載の方法。
  15. 前記少なくとも二つの二次数列に、4個の二次数列A1,A2,A3,A4が含まれ、
    前記二次数列A1,A2,A3,A4は、それぞれ、
    A1=0,0,0,0,0,1,0,0,0,0,2,0,1,0,0,1,0,1,0,0,2,0,0,0,1,1,0,0,0,1,2,0,0,1,0,2,0,0,2,0,2,0,1,1,0,1,0,1,1,0,2,0,1,2,0,1,0,1,2,0,2,1,0,0,1,1,1,0,1,1,1,1,0,2,1,0,1,0,2,1,1,0,0,1,2,1,0,1,1,2,0,0,0,2,1,0,2,0,2,1,1,1,0,0,2,1,2,0,1,1,1,2,0,2,0,0,1,1,2,1,0,0,0,2,2,0,1,0,2,2,0,0,1,2,2,0,2,0,2,2,1,0,1,2,1,2,1,0,2,1,2,1,1,0,2,2,1,2,1,2,0,2,2,0,2,2,2,0,1,1,2,2,1,1,0,1,2,2,2,2,1,2,0,0,2,2,1,1,2,1,2,2,1,0,2,2,2,2,2,0,2,1,2,2,2,1,1,1,2,1,1,2,0,1,2,2,1,2,2,0,1,2,1,1,1,1,2,2,2,0,0,2,1,1,2,2,
    A2=0,0,0,0,0,1,0,0,0,0,2,0,1,0,0,1,0,1,0,1,1,0,0,0,1,1,1,1,0,0,1,1,0,1,0,0,2,0,0,0,1,2,0,1,0,1,2,1,0,0,0,2,1,1,1,0,1,1,1,0,2,1,0,0,1,2,1,2,1,0,1,0,2,0,1,1,0,2,0,0,1,0,2,1,2,0,0,0,2,2,0,0,1,1,2,0,2,0,0,2,0,2,0,1,2,0,0,2,2,1,1,0,0,2,1,0,1,1,2,1,0,2,0,2,2,1,0,0,2,2,2,1,0,1,2,2,0,0,2,1,2,2,1,1,1,1,1,2,0,0,1,2,2,1,2,0,1,1,1,2,1,1,2,0,1,2,1,1,1,2,2,0,2,2,0,1,1,2,2,2,2,1,2,1,2,2,0,1,2,2,2,0,2,0,2,1,1,2,2,1,0,2,2,0,2,1,0,2,1,1,0,2,2,2,2,0,1,0,2,2,1,2,2,2,1,1,2,1,2,0,2,2,2,
    A3=0,0,0,0,0,1,0,0,1,1,0,0,0,1,1,1,1,0,0,1,0,1,0,1,1,0,1,1,1,0,1,
    A4=0,0,0,0,0,1,0,2,0,0,0,0,2,0,0,2,0,1,0,0,0,1,1,2,0,0,0,1,2,0,0,2,1,0,0,0,2,1,1,2,0,1,0,1,0,0,1,2,1,0,0,1,0,0,2,2,0,0,0,2,2,1,0,2,0,1,1,0,0,1,1,1,0,1,0,1,1,0,1,2,0,1,1,1,1,0,0,2,0,2,0,1,2,0,2,2,0,1,0,2,1,0,1,2,1,1,0,1,1,1,2,2,0,0,1,0,1,2,2,2,0,0,2,2,2,0,1,2,1,2,0,2,0,0,1,2,2,0,1,1,2,1,0,2,1,1,0,2,0,2,1,2,0,0,1,1,0,2,1,2,1,0,1,0,2,2,0,2,1,0,2,2,1,1,1,2,0,2,1,1,1,0,2,2,2,2,0,2,0,2,2,1,2,1,1,1,1,2,1,2,1,2,2,2,1,0,0,2,1,2,2,1,0,1,1,2,2,1,1,2,1,2,2,2,2,1,2,0,1,2,2,1,2,2,0,2,2,2,1,1
    である請求項1〜14のいずれか1項に記載の方法。
  16. 第二の一次数列に含まれる複数の部分数列のそれぞれによって、前記製品の表面上の第二次元方向における複数の位置のそれぞれをコード化することと、
    前記第二の一次数列の複数の部分数列を求めるために、前記第二の一次数列の基数よりも小さな基数を有する少なくとも二つの第二の二次数列を用いることとをさらに含み、
    前記第二の一次数列の各部分数列は、第三の所定の長さを有するものであり、
    前記第二の一次数列は、前記第二の一次数列に含まれる各部分数列の前記第二の一次数列における場所が明確に決定される性質を有するものである請求項1〜15のいずれか1項に記載の方法。
  17. 前記製品の表面上の第一次元方向および第二次元方向における位置のコード化のための一次数列および二次数列が同一のものである請求項16に記載の方法。
  18. 前記位置コードを、グラフィカルなコーディングによってプリントアウトすることをさらに含む請求項1〜17のいずれか1項に記載の方法。
  19. コンピュータに、製品の表面上の位置をコード化する位置コードを求める処理を実行させるための命令群を有するコンピュータプログラムであって、
    該コンピュータプログラムは、
    一次数列に含まれる複数の部分数列のそれぞれによって、製品の表面上の第一次元方向における複数の位置のそれぞれをコード化するための命令群と、
    前記位置に対応する前記一次数列の部分数列を求めるために、前記一次数列の基数よりも小さな基数を有する少なくとも二つの二次数列を用いるための命令群とを含み、
    前記一次数列の各部分数列は、第一の所定の長さを有するものであり、
    前記一次数列は、前記一次数列に含まれる各部分数列の前記一次数列における場所が明確に決定される性質を有するものであり、
    前記一次数列の少なくとも一つの部分数列は、前記少なくとも二つの二次数列のそれぞれから取り出される部分数列の組み合わせと対応付け可能なものであることを特徴とするコンピュータプログラム。
  20. 製品の表面上の位置をコード化する位置コードを求めるためのデバイスであって、
    プロセッサと、
    請求項19に記載のコンピュータプログラムを格納するメモリと
    を具備することを特徴とするデバイス。
  21. 製品の表面上の第一次元方向における点の第一の座標xを少なくともコード化する位置コードを求めるためのコーディングデバイスにおける方法であって、
    前記コーディングデバイスに対する入力信号として少なくとも前記第一の座標xを受け取ることと、
    受け取られた座標xに基づいて、前記製品の表面上の第一次元方向における位置のコーディングのために用いられる一次数列の部分数列を求めることとを含み、
    前記一次数列の部分数列は、第一の所定の長さを有し、前記座標xに対応して、前記一次数列において明確に決定される場所を有するものであり、
    前記一次数列の部分数列を求めることは、前記一次数列の基数よりも小さな基数を有する少なくとも二つの二次数列を用いて、前記座標xに対応する前記一次数列の部分数列を求めることを含み、
    前記座標xに対応する前記一次数列の部分数列は、前記少なくとも二つの二次数列のそれぞれから取り出される部分数列の組み合わせと対応付け可能なものであることを特徴とする方法。
  22. 前記一次数列の部分数列を求めることは、前記一次数列における前記場所を前記二次数列の各々における場所に変換することを含む請求項21に記載の方法。
  23. 前記一次数列の部分数列を求めることは、前記二次数列の各々について、前記二次数列における前記場所に対応する部分数列を求めることと、求められた前記二次数列の部分数列に基づいて、前記一次数列の部分数列を求めることとをさらに含む請求項22に記載の方法。
  24. 循環主数列に含まれる複数の部分数列を用いて、前記一次数列の部分数列における数をコード化することをさらに含み、
    前記循環主数列の各部分数列は、第二の所定の長さを有するものであり、
    前記循環主数列は、前記循環主数列に含まれる各部分数列の前記循環主数列における場所が明確に決定される性質を有するものであり、
    前記一次数列の部分数列における数が、前記循環主数列の複数の部分数列の差分としてコード化されるものである請求項21〜23のいずれか1項に記載の方法。
  25. 前記コーディングデバイスからの出力信号として前記循環主数列の部分数列を示す情報を含む位置コードを出力することをさらに含む請求項24に記載の方法。
  26. 前記コーディングデバイスに、前記循環主数列の複数の部分数列を前記製品の表面上に展開させることをさらに含み、
    前記循環主数列の部分数列が前記製品の表面上の第二次元方向に広がり、前記一次数列の部分数列における数が前記製品の表面上の第一次元方向に広がるように、前記展開が行われる請求項24または25に記載の方法。
  27. 前記循環主数列の複数の部分数列のうちの最初の部分数列を、周期的に繰り返される前記二次数列の各々における初めのx−1個の数を合計することによって計算することをさらに含む請求項24〜26のいずれか1項に記載の方法。
  28. 前記二次数列の完全なサイクルの前もって計算された合計および前記二次数列の不完全なサイクルの前もって計算された合計を用いることにより、前記二次数列における数が合計される請求項27に記載の方法。
  29. 前記コーディングデバイスは前記座標x=0についての前記部分数列の前記循環主数列における場所を入力信号としてさらに受け取るべく構成され、
    前記方法は、前記循環主数列の複数の部分数列のうちの前記最初の部分数列の計算のために座標x=0についての前記場所を用いることをさらに含む請求項27または28に記載の方法。
  30. 前記循環主数列の複数の部分数列のうちの2番目の部分数列を、前記一次数列の前記部分数列における数d(x)を求めることによって、求めることをさらに含み、
    前記数d(x)は、前記循環主数列の前記最初の部分数列および前記2番目の部分数列によってコード化されるものである請求項27〜29のいずれか1項に記載の方法。
  31. 前記数d(x)は、
    d(x)=dc(1,x) + b*dc(2,x) + …
    + b*…*ba−1*dc(a,x)
    但し、aは、二次数列の個数、bは、二次数列iにおける基数、そしてdc(i,x)は、長さlのそれぞれの二次数列における場所p(ここで、pは、lを法としたx)における数、
    として計算されるものである請求項30に記載の方法。
  32. 前記コーディングデバイスに対する入力信号として前記製品の表面上の第二次元方向における前記点の第二の座標yを受け取ることと、
    受け取られた座標yに基づいて、前記製品の表面上の第二次元方向における位置のコーディングのために用いられる第二の一次数列の部分数列を求めることとをさらに含み、
    前記第二の一次数列の部分数列は、第三の所定の長さを有し、前記座標yに対応して、前記第二の一次数列において明確に決定される場所を有するものであり、
    前記第二の一次数列の部分数列を求めることは、前記第二の一次数列よりも小さな基数を有する少なくとも二つの第二の二次数列を用いて、前記座標yに対応する前記第二の一次数列の部分数列を求めることを含む請求項21〜31のいずれか1項に記載の方法。
  33. 請求項21〜32のいずれか1項に記載の方法を、コンピュータに実行させるための命令群を有することを特徴とするコンピュータプログラム。
  34. 製品の表面上の位置をコード化する位置コードを求めるためのデバイスであって、
    プロセッサと、
    請求項33に記載のコンピュータプログラムを格納するメモリと
    を具備することを特徴とするデバイス。
  35. 製品の表面上の第一次元方向における点の第一の座標を少なくともコード化する位置コードをデコーディングするためのデコーディングデバイスにおける方法であって、
    前記位置コードのディジタル表現に基づいて、一次数列の部分数列を構成する第一の所定の個数の数を識別することと、
    前記一次数列の基数よりも小さい基数を有する少なくとも二つの二次数列を用いて、前記部分数列の前記一次数列における場所Pを前記第一の所定の個数の数から求めることとを含み、
    前記一次数列の前記部分数列は、前記一次数列において明確に決定される場所Pを有するものであり、前記場所Pは、前記第一の座標に対応するものであり、前記一次数列の前記部分数列は、前記少なくとも二つの二次数列のそれぞれから取り出される部分数列の組み合わせと対応付け可能なものであることを特徴とする方法。
  36. 前記一次数列における前記部分数列の場所Pを求めることは、前記一次数列の前記部分数列を前記二次数列の各々の部分数列の組み合わせに変換することを含む請求項35に記載の方法。
  37. 前記一次数列における前記部分数列の場所Pを求めることは、前記組み合わせにおける前記部分数列の各々の前記二次数列それぞれにおける場所を求めることと、前記二次数列における前記場所の前記組み合わせに基づいて前記一次数列における場所Pを求めることとをさらに含む請求項36に記載の方法。
  38. 前記一次数列の前記部分数列を前記二次数列の各々の部分数列に変換することは、前記一次数列の前記部分数列における各数dを、
    d=d1 + b*d2 + … + b*b…*ba−1*da
    (但し、aは、前記二次数列の個数であり、bは、前記二次数列iにおける基数)
    に従って、数d1,…,daの組に変換することを含む請求項36または37に記載の方法。
  39. 前記一次数列における場所Pは、中国の余剰定理を用いて、
    P=(sum(i=1,a)((L/l))*p*q)(mod L)
    (但し、L=prod(i=1,a)l、pは、前記二次数列iにおける場所、lは、前記二次数列iの長さ、aは、前記二次数列の個数、そしてq*(L/l)=1(mod l))
    として求められるものである請求項36〜38のいずれか1項に記載の方法。
  40. 座標0についての部分数列の主数列における場所を求めることによって、前記点について前記第一次元方向における付加的な座標を求めることをさらに含み、
    前記一次数列における数は、前記循環主数列の部分数列を用いてコード化されたものである請求項35〜39のいずれか1項に記載の方法。
  41. 前記位置コードが、前記製品の表面上の第二次元方向における前記点の第二の座標をさらにコード化するものであり、
    前記方法は、
    前記位置コードのディジタル表現に基づいて、第二の一次数列の部分数列を構成する第三の所定の個数の数を識別することと、
    前記第二の一次数列の基数よりも小さい基数を有する少なくとも二つの第二の二次数列を用いて、前記第二の一次数列における前記部分数列の場所を求めることとをさらに含み、
    前記第二の一次数列の前記部分数列は、前記第二の一次数列において明確に決定される場所を有するものであり、前記場所は、前記第二の座標に対応するものである請求項35〜40のいずれか1項に記載の方法。
  42. 前記方法が、入力信号として前記位置コードのディジタル表現を受け取り且つ出力信号として少なくとも前記点についての前記第一の座標を与えるデコーディングデバイスにおいて実行される請求項35〜41のいずれか1項に記載の方法。
  43. 請求項35〜42のいずれか1項に記載の方法を、コンピュータに実行させるための命令群を有することを特徴とするコンピュータプログラム。
  44. 製品の表面上の位置がコード化された位置コードをデコーディングするためのデバイスであって、
    プロセッサと、
    請求項43に記載のコンピュータプログラムを格納するメモリと
    を具備することを特徴とするデバイス。
  45. 製品の表面上の第一次元方向における点の第一の座標を少なくともコード化する位置コードをデコーディングするためのデバイスであって、
    デコードされるべき前記位置コードのディジタル表現を提供するためのセンサと、
    一次数列を作ることのできる少なくとも二つの二次数列を格納するためのメモリと、
    前記位置コードの前記ディジタル表現に基づいて、前記一次数列の部分数列を構成する第一の所定の個数の数を識別し、前記二次数列を用いて、前記一次数列における前記部分数列の場所Pを前記第一の所定の個数の数から求めるように、構成されたプロセッサとを具備し、
    前記一次数列の前記部分数列は、前記一次数列において明確に決定される場所Pを有するものであり、前記場所Pは、前記第一の座標に対応するものであり、前記一次数列は、前記二次数列の基数よりも大きな基数を有するものであり、前記一次数列の前記部分数列は、前記少なくとも二つの二次数列のそれぞれから取り出される部分数列の組み合わせと対応付け可能なものであることを特徴とするデバイス。
  46. 前記プロセッサは、前記一次数列における前記部分数列の場所Pを求めるために、前記一次数列の前記部分数列を前記二次数列の各々の部分数列の組み合わせに変換するように、さらに構成されている請求項45に記載のデバイス。
  47. 前記プロセッサは、前記組み合わせにおける前記部分数列の各々の前記二次数列それぞれにおける場所を求め、前記二次数列における前記場所の前記組み合わせに基づいて前記一次数列における場所Pを求めるように、さらに構成されている請求項46に記載のデバイス。
  48. 表面を有する製品であって、
    前記表面上の第一次元方向における点の第一の座標を少なくともコード化する位置コードが、前記表面に付与されており、
    前記第一の座標は、一次数列の部分数列によってコード化されており、
    前記第一の座標に対応する前記一次数列の前記部分数列は、前記一次数列の基数よりも小さな基数を有する少なくとも二つの二次数列を用いて求められるものであり、
    前記一次数列の前記部分数列は、第一の所定の長さを有するものであり、
    前記一次数列は、前記一次数列に含まれる各部分数列の前記一次数列における場所が明確に決定される性質を有するものであり、
    前記一次数列の前記部分数列は、前記少なくとも二つの二次数列のそれぞれから取り出される部分数列の組み合わせと対応付け可能なものであることを特徴とする製品。
JP2003507753A 2001-06-25 2002-06-25 位置コードを達成し且つ位置コードをデコーディングするための方法 Expired - Fee Related JP4455055B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
SE0102235A SE519277C2 (sv) 2001-06-25 2001-06-25 Anordning och förfarande för positionskodning och för avkodning av en positionskod
PCT/SE2002/001243 WO2003001440A1 (en) 2001-06-25 2002-06-25 Method for achieving a position code and decoding a position code

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2009281717A Division JP5048045B2 (ja) 2001-06-25 2009-12-11 位置コードを達成し且つ位置コードをデコーディングするための方法

Publications (3)

Publication Number Publication Date
JP2004535011A JP2004535011A (ja) 2004-11-18
JP2004535011A5 JP2004535011A5 (ja) 2010-02-12
JP4455055B2 true JP4455055B2 (ja) 2010-04-21

Family

ID=20284587

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2003507753A Expired - Fee Related JP4455055B2 (ja) 2001-06-25 2002-06-25 位置コードを達成し且つ位置コードをデコーディングするための方法
JP2009281717A Expired - Fee Related JP5048045B2 (ja) 2001-06-25 2009-12-11 位置コードを達成し且つ位置コードをデコーディングするための方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2009281717A Expired - Fee Related JP5048045B2 (ja) 2001-06-25 2009-12-11 位置コードを達成し且つ位置コードをデコーディングするための方法

Country Status (8)

Country Link
EP (2) EP2133824B1 (ja)
JP (2) JP4455055B2 (ja)
CN (2) CN1242358C (ja)
AT (1) ATE443884T1 (ja)
DE (1) DE60233794D1 (ja)
ES (1) ES2333851T3 (ja)
SE (1) SE519277C2 (ja)
WO (1) WO2003001440A1 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7145556B2 (en) 2001-10-29 2006-12-05 Anoto Ab Method and device for decoding a position-coding pattern
JP4406430B2 (ja) 2003-05-26 2010-01-27 アノト アクティエボラーク コンピュータからプリンタに送信されるページ記述コードを含むデジタル表現を圧縮するための方法
US7753283B2 (en) 2003-06-13 2010-07-13 Anoto Aktiebolag (Anoto Ab) On-demand printing of coding patterns
SE0301729D0 (sv) * 2003-06-13 2003-06-13 Anoto Ab Behovsstyrd utskrift av kodningsmönster
SE0303370D0 (sv) 2003-12-16 2003-12-16 Anoto Ab Method, apparatus, computer program and storage medium for recording a movement of a user unit
KR101236809B1 (ko) * 2005-06-17 2013-02-25 아노토 아베 위치 및 정보 코드를 결합하는 방법 및 시스템
US8411071B2 (en) 2006-02-22 2013-04-02 Anoto Ab Electronic pen
GB201008955D0 (en) 2010-05-28 2010-07-14 Optaglio Sro Holographic matrix, system of holographic personalization of ID cards and synthesis of holograms of desired visual properties and method of production thereof
WO2013179595A1 (ja) 2012-05-31 2013-12-05 パナソニック株式会社 位置コードの読み取り装置及び読み取り方法
KR101974483B1 (ko) * 2012-12-03 2019-05-02 삼성전자주식회사 패턴을 구비한 디스플레이 장치 및 패턴을 구비한 디스플레이 장치에서 화소 위치 검출 방법
EP2813918A1 (en) 2013-06-11 2014-12-17 Anoto AB Electronic pen
GB2526261B (en) 2014-04-28 2017-08-02 Gelliner Ltd Encoded cells and cell arrays
CN107408214B (zh) 2015-01-30 2021-07-09 惠普发展公司,有限责任合伙企业 M进制循环编码
EP3139132B1 (de) 2015-09-03 2020-02-19 Hexagon Technology Center GmbH Flächen-absolutcodierung
CN108665036A (zh) * 2017-04-02 2018-10-16 田雪松 位置编码方法
CN108664868A (zh) * 2017-04-02 2018-10-16 田雪松 一种解码装置和解码方法
CN108664531A (zh) * 2017-04-02 2018-10-16 田雪松 一种基于编码图案的位置信息获取装置和获取方法
CN108664964A (zh) * 2017-04-02 2018-10-16 田雪松 具有编码图案的文件输出方法
CN118015636A (zh) * 2024-02-29 2024-05-10 祝你云记科技有限公司 基于点阵智能笔的数字化应用方法及系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1992017859A1 (en) 1991-04-03 1992-10-15 Hewlett Packard Company Position-sensing apparatus
US5477012A (en) 1992-04-03 1995-12-19 Sekendur; Oral F. Optical position determination
US5852434A (en) 1992-04-03 1998-12-22 Sekendur; Oral F. Absolute optical position determination
WO1994008316A1 (en) * 1992-09-30 1994-04-14 Hewlett Packard Company Initial track recovery in position-sensing systems that use windowing patterns
US5661506A (en) * 1994-11-10 1997-08-26 Sia Technology Corporation Pen and paper information recording system using an imaging pen
US6050490A (en) * 1997-10-31 2000-04-18 Hewlett-Packard Company Handheld writing device and related data entry system
SE517445C2 (sv) 1999-10-01 2002-06-04 Anoto Ab Positionsbestämning på en yta försedd med ett positionskodningsmönster
ATE472778T1 (de) 2000-04-05 2010-07-15 Anoto Ab Identifizierung eines virtuellen rastermusters

Also Published As

Publication number Publication date
CN1520575A (zh) 2004-08-11
EP1405254A1 (en) 2004-04-07
WO2003001440A1 (en) 2003-01-03
CN1782973A (zh) 2006-06-07
CN1242358C (zh) 2006-02-15
EP2133824B1 (en) 2014-04-23
EP1405254B1 (en) 2009-09-23
SE0102235L (sv) 2002-12-26
EP2133824A2 (en) 2009-12-16
JP2010102723A (ja) 2010-05-06
DE60233794D1 (de) 2009-11-05
ES2333851T3 (es) 2010-03-02
JP2004535011A (ja) 2004-11-18
ATE443884T1 (de) 2009-10-15
SE0102235D0 (sv) 2001-06-25
SE519277C2 (sv) 2003-02-11
JP5048045B2 (ja) 2012-10-17
EP2133824A3 (en) 2011-02-16

Similar Documents

Publication Publication Date Title
JP5048045B2 (ja) 位置コードを達成し且つ位置コードをデコーディングするための方法
US6667695B2 (en) Position code
KR100742429B1 (ko) 포지션 결정-계산 방법
CN1641683B (zh) 通过m阵列解码和快速图像匹配的笔划定位
JP4996245B2 (ja) 位置復号のための方法、装置、コンピュータプログラム及び記憶媒体
KR101236809B1 (ko) 위치 및 정보 코드를 결합하는 방법 및 시스템
US20020021284A1 (en) System and method for determining positional information
JP2006504360A (ja) 向きを示す巡回位置符号
JP2006511864A (ja) コピー保護を提供する冗長な情報を含む情報コード
CA2491579A1 (en) Enhanced approach of m-array decoding and error correction
JP4282474B2 (ja) データデコーディングの方法およびデバイス
JP4147528B2 (ja) 位置コーディングパターンをデコードするための方法およびデバイス
JP2004536392A5 (ja)
EP2044558B1 (en) Position location using error correction
BR112013000144B1 (pt) Método para imprimir um código de posição absoluta em uma superfície usando uma impressora eletrônica, aparelho, fabricação e meio legível em computador não-transitório
JP5609469B2 (ja) 画像処理装置、識別装置、電子筆記具及びプログラム
JP2012065124A (ja) 画像処理装置、識別装置及びプログラム
JP5115213B2 (ja) 画像生成装置、画像処理装置、プログラム、及び印刷媒体

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20050207

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050627

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20060428

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060629

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20070521

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20070703

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20071016

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071204

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080303

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080310

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080403

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080410

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080430

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080509

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20080603

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081216

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090316

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090324

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090410

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090417

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090515

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090522

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090609

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090915

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20091214

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100203

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130212

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130212

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130212

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130212

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140212

Year of fee payment: 4

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees