(57)【要約】      （修正有）【課題】非常に多数の位置をコード化することを可能とさせ、エラー訂正を可能とし、コーディングおよびデコーディングのために大きなテーブルの記憶部を必要としない限定された量のメモリおよび／または限定されたプロセッサ容量を有するデバイスで実現できる位置コードを提供。【解決手段】面上の第一次元の複数の位置を、一次数列に従ってコーディングするステップを含む。この一次数列は、第一の所定長さの部分数列のそれぞれが、一次数列におけるどの場所にあるかが明確に決定される性質を有し、前記第一次元の位置のそれぞれは、前記部分数列のいずれか一つによってコード化される。【選択図】図１
2010102723.tif 000002
【特許請求の範囲】
【請求項１】
位置コーディングのための方法であって、
一次数列に含まれる複数の部分数列のそれぞれによって、面上の第一次元における複数の位置のそれぞれをコード化することと、
前記一次数列の複数の部分数列の決定のために、前記一次数列の基数よりも小さな基数を有する少なくとも二つの二次数列を用いることとを含み、
前記一次数列の各部分数列は、第一の所定の長さを有するものであり、
前記一次数列は、前記各部分数列の前記一次数列における場所が明確に決定される性質を有するものであることを特徴とする方法。
【請求項２】
前記位置コーディングのために使用可能な前記一次数列における異なる数の個数は、少なくとも二つの因数に因数分解され得る数であり、
前記因数の個数は、前記二次数列の個数と同一であり、
前記因数の各々がそれぞれの二次数列における基数を形成するものである請求項１に記載の方法。
【請求項３】
前記二次数列のそれぞれの長さが、対にすると互いに素であるようになっている請求項１または２に記載の方法。
【請求項４】
前記二次数列の各々は、前記第一の所定長さを有する各部分数列の前記それぞれの二次数列における場所が明確に決定される性質を有するものである請求項１〜３のいずれか１項に記載の方法。
【請求項５】
前記二次数列の基数は、多くとも５、望ましくは多くとも３、である請求項１〜４のいずれか１項に記載の方法。
【請求項６】
前記一次数列の前記部分数列は、前記二次数列の各々からの部分数列を組み合わせたものに全単射的に写像され得るものである請求項１〜５のいずれか１項に記載の方法。
【請求項７】
循環主数列に含まれる複数の部分数列を用いて、前記一次数列における複数の数をコード化することをさらに含み、
前記循環主数列の各部分数列は、第二の所定の長さを有するものであり、
前記循環主数列は、前記各部分数列の前記循環主数列における場所が明確に決定される性質を有するものであり、
前記循環主数列は、前記一次数列における数を形成する差分数が定義されるように、面上に配列される請求項１〜６のいずれか１項に記載の方法。
【請求項８】
前記循環主数列の前記部分数列は、各部分数列が第二次元に延びるようにして、面上に配列されるものである請求項７に記載の方法。
【請求項９】
前記主数列の部分数列を用いて理論的に定義され得る差分数のうちの選択された部分集合が実際に利用されるものであり、
該部分集合は、理論的に定義可能な差分数のうちのゼロに等しいかまたはそれに近い差分数を除外したものである請求項７または８に記載の方法。
【請求項１０】
前記主数列は、２値の数で構成され、前記第二の所定長さよりも長い所定長さの部分数列が、逆順になった形態もしくは反転した形態で前記主数列内にあらわれることがないように、選択されたものである請求項７〜９のいずれか１項に記載の方法。
【請求項１１】
前記主数列は、２値の数で構成され、前記第二の所定長さよりも長い所定長さの部分数列が、１ビットが反転した状態で前記主数列内にあらわれることがないように、選択されたものである請求項７〜１０のいずれか１項に記載の方法。
【請求項１２】
前記主数列の部分数列であって、前記第二の所定長さの部分数列は、六つの数からなり、
前記一次数列の部分数列であって、前記第一の所定長さの部分数列は、五つの差分数からなるものである請求項７〜１１のいずれか１項に記載の方法。
【請求項１３】
前記循環主数列Ｍが、
Ｍ＝０，０，０，０，０，０，１，０，０，１，１，１，１，１，０，１，０，０，１，０，０，０，０，１，１，１，０，１，１，１，０，０，１，０，１，０，１，０，０，０，１，０，１，１，０，１，１，０，０，１，１，０，１，０，１，１，１，１，０，０，０，１，１
である請求項７〜１２のいずれか１項に記載の方法。
【請求項１４】
前記一次数列は、５４の異なる数を含み、
前記二次数列の個数は、４であって、それらのうちの三つが基数３を有し、残りの一つが基数２を有するものである請求項１〜１３のいずれか１項に記載の方法。
【請求項１５】
前記少なくとも二つの二次数列Ａ１，Ａ２，Ａ３，Ａ４が、
Ａ１＝０，０，０，０，０，１，０，０，０，０，２，０，１，０，０，１，０，１，０，０，２，０，０，０，１，１，０，０，０，１，２，０，０，１，０，２，０，０，２，０，２，０，１，１，０，１，０，１，１，０，２，０，１，２，０，１，０，１，２，０，２，１，０，０，１，１，１，０，１，１，１，１，０，２，１，０，１，０，２，１，１，０，０，１，２，１，０，１，１，２，０，０，０，２，１，０，２，０，２，１，１，１，０，０，２，１，２，０，１，１，１，２，０，２，０，０，１，１，２，１，０，０，０，２，２，０，１，０，２，２，０，０，１，２，２，０，２，０，２，２，１，０，１，２，１，２，１，０，２，１，２，１，１，０，２，２，１，２，１，２，０，２，２，０，２，２，２，０，１，１，２，２，１，１，０，１，２，２，２，２，１，２，０，０，２，２，１，１，２，１，２，２，１，０，２，２，２，２，２，０，２，１，２，２，２，１，１，１，２，１，１，２，０，１，２，２，１，２，２，０，１，２，１，１，１，１，２，２，２，０，０，２，１，１，２，２，
Ａ２＝０，０，０，０，０，１，０，０，０，０，２，０，１，０，０，１，０，１，０，１，１，０，０，０，１，１，１，１，０，０，１，１，０，１，０，０，２，０，０，０，１，２，０，１，０，１，２，１，０，０，０，２，１，１，１，０，１，１，１，０，２，１，０，０，１，２，１，２，１，０，１，０，２，０，１，１，０，２，０，０，１，０，２，１，２，０，０，０，２，２，０，０，１，１，２，０，２，０，０，２，０，２，０，１，２，０，０，２，２，１，１，０，０，２，１，０，１，１，２，１，０，２，０，２，２，１，０，０，２，２，２，１，０，１，２，２，０，０，２，１，２，２，１，１，１，１，１，２，０，０，１，２，２，１，２，０，１，１，１，２，１，１，２，０，１，２，１，１，１，２，２，０，２，２，０，１，１，２，２，２，２，１，２，１，２，２，０，１，２，２，２，０，２，０，２，１，１，２，２，１，０，２，２，０，２，１，０，２，１，１，０，２，２，２，２，０，１，０，２，２，１，２，２，２，１，１，２，１，２，０，２，２，２，
Ａ３＝０，０，０，０，０，１，０，０，１，１，０，０，０，１，１，１，１，０，０，１，０，１，０，１，１，０，１，１，１，０，１，
Ａ４＝０，０，０，０，０，１，０，２，０，０，０，０，２，０，０，２，０，１，０，０，０，１，１，２，０，０，０，１，２，０，０，２，１，０，０，０，２，１，１，２，０，１，０，１，０，０，１，２，１，０，０，１，０，０，２，２，０，０，０，２，２，１，０，２，０，１，１，０，０，１，１，１，０，１，０，１，１，０，１，２，０，１，１，１，１，０，０，２，０，２，０，１，２，０，２，２，０，１，０，２，１，０，１，２，１，１，０，１，１，１，２，２，０，０，１，０，１，２，２，２，０，０，２，２，２，０，１，２，１，２，０，２，０，０，１，２，２，０，１，１，２，１，０，２，１，１，０，２，０，２，１，２，０，０，１，１，０，２，１，２，１，０，１，０，２，２，０，２，１，０，２，２，１，１，１，２，０，２，１，１，１，０，２，２，２，２，０，２，０，２，２，１，２，１，１，１，１，２，１，２，１，２，２，２，１，０，０，２，１，２，２，１，０，１，１，２，２，１，１，２，１，２，２，２，２，１，２，０，１，２，２，１，２，２，０，２，２，２，１，１
である請求項１〜１４のいずれか１項に記載の方法。
【請求項１６】
第二の一次数列に含まれる複数の部分数列のそれぞれによって、面上の第二次元における複数の位置のそれぞれをコード化することと、
前記第二の一次数列の複数の部分数列の決定のために、前記第二の一次数列の基数よりも小さな基数を有する少なくとも二つの第二の二次数列を用いることとをさらに含み、
前記第二の一次数列の各部分数列は、第三の所定の長さを有するものであり、
前記第二の一次数列は、前記各部分数列の前記第二の一次数列における場所が明確に決定される性質を有するものである請求項１〜１５のいずれか１項に記載の方法。
【請求項１７】
第一次元および第二次元における位置コーディングのための一次数列および二次数列が同一のものである請求項１６に記載の方法。
【請求項１８】
前記位置コードを、グラフィックなコーディングによって、面上にプリントアウトすることをさらに含む請求項１〜１７のいずれか１項に記載の方法。
【請求項１９】
コンピュータに位置コーディングを実行させるための命令群を有するコンピュータプログラムであって、
該コンピュータプログラムは、
一次数列に含まれる複数の部分数列のそれぞれによって、面上の第一次元における複数の位置のそれぞれをコード化するための命令群と、
前記一次数列の複数の部分数列の決定のために、前記一次数列の基数よりも小さな基数を有する少なくとも二つの二次数列を用いるための命令群とを含み、
前記一次数列の各部分数列は、第一の所定の長さを有するものであり、
前記一次数列は、前記各部分数列の前記一次数列における場所が明確に決定される性質を有するものであることを特徴とするコンピュータプログラム。
【請求項２０】
位置をコーディングするためのデバイスであって、
プロセッサと、
請求項１９に記載のコンピュータプログラムを格納するメモリと、
を具備することを特徴とするデバイス。
【請求項２１】
面上の第一次元における点の第一の座標ｘを少なくともコード化する位置コードを求めるためのコーディングデバイスにおける方法であって、
前記コーディングデバイスに対する入力信号として少なくとも前記第一の座標ｘを受け取ることと、
受け取られた座標ｘに基づいて、前記第一次元における位置のコーディングのために用いられる一次数列の部分数列を求めることとを含み、
前記一次数列の部分数列は、第一の所定の長さを有し、前記座標ｘに対応して、前記一次数列において明確に決定される場所を有するものであり、
前記一次数列の部分数列を求めることは、前記一次数列の基数よりも小さな基数を有する少なくとも二つの二次数列を用いて、前記座標ｘに対応する前記一次数列の部分数列を求めることを含むことを特徴とする方法。
【請求項２２】
前記一次数列の部分数列を求めることは、前記一次数列における前記場所を前記二次数列の各々における場所に変換することを含む請求項２１に記載の方法。
【請求項２３】
前記一次数列の部分数列を求めることは、前記二次数列の各々について、前記二次数列における前記場所に対応する部分数列を求めることと、求められた前記二次数列の部分数列に基づいて、前記一次数列の部分数列を求めることとをさらに含む請求項２２に記載の方法。
【請求項２４】
循環主数列に含まれる複数の部分数列を用いて、前記一次数列の部分数列における数をコード化することをさらに含み、
前記循環主数列の各部分数列は、第二の所定の長さを有するものであり、
前記循環主数列は、前記各部分数列の前記循環主数列における場所が明確に決定される性質を有するものであり、
前記一次数列の部分数列における数が、前記循環主数列の複数の部分数列の差分としてコード化されるものである請求項２１〜２３のいずれか１項に記載の方法。
【請求項２５】
前記コーディングデバイスからの出力信号として前記循環主数列の部分数列を示す情報を含む位置コードを出力することをさらに含む請求項２４に記載の方法。
【請求項２６】
前記コーディングデバイスに、前記循環主数列の複数の部分数列を、面上に適用させることをさらに含み、
前記循環主数列の部分数列が第二次元に広がり、前記一次数列の部分数列における数が前記第一次元に広がるように、前記適用が行われる請求項２４または２５に記載の方法。
【請求項２７】
前記循環主数列の複数の部分数列のうちの最初の部分数列を、周期的に繰り返される前記二次数列の各々における初めのｘ−１個の数を合計することによって計算することをさらに含む請求項２４〜２６のいずれか１項に記載の方法。
【請求項２８】
前記二次数列の完全なおよび不完全なサイクルの前もって計算された合計を用いることにより、前記二次数列における数が合計される請求項２７に記載の方法。
【請求項２９】
前記コーディングデバイスは前記座標ｘ＝０についての前記部分数列の前記循環主数列における場所を入力信号としてさらに受け取るべく構成され、
前記方法は、前記循環主数列の複数の部分数列のうちの前記最初の部分数列の計算のために座標ｘ＝０についての前記場所を用いることをさらに含む請求項２７または２８に記載の方法。
【請求項３０】
前記循環主数列の複数の部分数列のうちの２番目の部分数列を、前記一次数列の前記部分数列における数ｄ（ｘ）を求めることによって、求めることをさらに含み、
前記数ｄ（ｘ）は、前記循環主数列の前記最初の部分数列および前記２番目の部分数列によってコード化されるものである請求項２７〜２９のいずれか１項に記載の方法。
【請求項３１】
前記数ｄ（ｘ）は、
ｄ（ｘ）＝ｄｃ（１，ｘ）  ＋  ｂ１＊ｄｃ（２，ｘ）＋…
＋  ｂ１＊…＊ｂｎ−１＊ｄｃ（ｎ，ｘ）
但し、ｎは、二次数列の個数、ｂｉは、二次数列ｉにおける基数、そしてｄｃ（ｉ，ｘ）は、長さｌｉのそれぞれの二次数列におけるｌｉを法とした場所ｘにおける数、
として計算されるものである請求項３０に記載の方法。
【請求項３２】
前記コーディングデバイスに対する入力信号として前記面上の第二次元における前記点の第二の座標ｙを受け取ることと、
受け取られた座標ｙに基づいて、前記第二次元における位置のコーディングのために用いられる第二の一次数列の部分数列を求めることとをさらに含み、
前記第二の一次数列の部分数列は、第三の所定の長さを有し、前記座標ｙに対応して、前記第二の一次数列において明確に決定される場所を有するものであり、
前記第二の一次数列の部分数列を求めることは、前記第二の一次数列よりも小さな基数を有する少なくとも二つの第二の二次数列を用いて、前記座標ｙに対応する前記第二の一次数列の部分数列を求めることを含む請求項２１〜３１のいずれか１項に記載の方法。
【請求項３３】
請求項２１〜３２のいずれか１項に記載の方法を、コンピュータに実行させるための命令群を有することを特徴とするコンピュータプログラム。
【請求項３４】
位置をコーディングするためのデバイスであって、
プロセッサと、
請求項３３に記載のコンピュータプログラムを格納するメモリと、
を具備することを特徴とするデバイス。
【請求項３５】
面上の第一次元における点の第一の座標を少なくともコード化する位置コードのデコーディングのための方法であって、
前記位置コードのディジタル表現に基づいて、一次数列の部分数列を構成する第一の所定の個数の数を識別することと、
前記一次数列の基数よりも小さい基数を有する少なくとも二つの二次数列を用いて、前記部分数列の前記一次数列における場所Ｐを求めることとを含み、
前記一次数列の前記部分数列は、前記一次数列において明確に決定される場所Ｐを有するものであり、前記場所Ｐは、前記第一の座標に対応するものであることを特徴とする方法。
【請求項３６】
前記一次数列における前記部分数列の場所Ｐを求めることは、前記一次数列の前記部分数列を前記二次数列の各々の部分数列の組み合わせに変換することを含む請求項３５に記載の方法。
【請求項３７】
前記一次数列における前記部分数列の場所Ｐを求めることは、前記組み合わせにおける前記部分数列の各々の前記二次数列それぞれにおける場所を求めることと、前記二次数列における前記場所の前記組み合わせに基づいて前記一次数列における場所Ｐを求めることとをさらに含む請求項３６に記載の方法。
【請求項３８】
前記一次数列の前記部分数列を前記二次数列の各々の部分数列に変換することは、前記一次数列の前記部分数列における各数ｄを、
ｄ＝ｄ１  ＋  ｂ１＊ｄ２  ＋…＋  ｂ１＊ｂ２…＊ｂｎ−１＊ｄｎ、
（但し、ｎは、前記二次数列の個数であり、ｂｉは、前記二次数列ｉにおける基数）
に従って、数ｄ１，…，ｄｎの組に変換することを含む請求項３６または３７に記載の方法。
【請求項３９】
前記一次数列における場所Ｐは、中国の余剰定理を用いて、
Ｐ＝（ｓｕｍ（ｉ＝１，ｎ）（（Ｌ／ｌｉ））＊ｐｉ＊ｑｉ）（ｍｏｄ  Ｌ）
（但し、Ｌ＝ｐｒｏｄ（ｉ＝１，ｎ）ｌｉ、ｐｉは、前記二次数列ｉにおける場所、ｌｉは、前記二次数列ｉの長さ、ｍは、前記二次数列の個数、そしてｑｉ＊（Ｌ／ｌｉ）＝１（ｍｏｄ  ｌｉ））
として求められるものである請求項３６〜３８のいずれか１項に記載の方法。
【請求項４０】
座標０についての部分数列の主数列における場所を求めることによって、前記点について前記第一次元における付加的な座標を求めることをさらに含み、
前記一次数列における数は、前記主数列の部分数列を用いてコード化されたものである請求項３５〜３９のいずれか１項に記載の方法。
【請求項４１】
前記位置コードが、前記面上の第二次元における前記点の第二の座標をさらにコード化するものであり、前記方法は、
前記位置コードのディジタル表現に基づいて、第二の一次数列の部分数列を構成する第三の所定の個数の数を識別することと、
前記第二の一次数列の基数よりも小さい基数を有する少なくとも二つの第二の二次数列を用いて、前記第二の一次数列における前記部分数列の場所を求めることとをさらに含み、
前記第二の一次数列の前記部分数列は、前記第二の一次数列において明確に決定される場所を有するものであり、前記場所は、前記第二の座標に対応するものである請求項３５〜４０のいずれか１項に記載の方法。
【請求項４２】
前記方法が、入力信号として前記位置コードのディジタル表現を受け取り且つ出力信号として少なくとも前記点についての前記第一の座標を与えるデコーディングデバイスにおいて実行される請求項３５〜４１のいずれか１項に記載の方法。
【請求項４３】
請求項３５〜４２のいずれか１項に記載の方法を、コンピュータに実行させるための命令群を有することを特徴とするコンピュータプログラム。
【請求項４４】
位置コードをデコーディングするためのデバイスであって、
プロセッサと、
位置コードをデコーディングするための請求項４３に記載のコンピュータプログラムを格納するメモリと、
を具備することを特徴とするデバイス。
【請求項４５】
面上の第一次元における点の第一の座標を少なくともコード化する位置コードのデコーディングのためのデバイスであって、
デコードされるべき前記位置コードのディジタル表現を提供するためのセンサと、
一次数列を作ることのできる少なくとも二つの二次数列を格納するためのメモリと、
前記位置コードの前記ディジタル表現に基づいて、前記一次数列の部分数列を構成する第一の所定の個数の数を識別し、前記二次数列を用いて、前記一次数列における前記部分数列の場所Ｐを求めるように、構成されたプロセッサとを具備し、
前記一次数列の前記部分数列は、前記一次数列において明確に決定される場所Ｐを有するものであり、前記場所Ｐは、前記第一の座標に対応するものであり、前記一次数列は、前記二次数列の基数よりも大きな基数を有するものであることを特徴とするデバイス。
【請求項４６】
前記プロセッサは、前記一次数列における前記部分数列の場所Ｐを求めるために、前記一次数列の前記部分数列を前記二次数列の各々の部分数列の組み合わせに変換するように、さらに構成されている請求項４５に記載のデバイス。
【請求項４７】
前記プロセッサは、前記組み合わせにおける前記部分数列の各々の前記二次数列それぞれにおける場所を求め、前記二次数列における前記場所の前記組み合わせに基づいて前記一次数列における場所Ｐを求めるように、さらに構成されている請求項４６に記載のデバイス。
【請求項４８】
面上の第一次元における点の第一の座標を少なくともコード化する位置コードが付与された面を有する製品であって、
前記第一の座標は、一次数列の部分数列によってコード化されており、
前記一次数列は、前記一次数列の基数よりも小さな基数を有する少なくとも二つの二次数列を用いて作られるものであり、
前記一次数列の前記部分数列は、第一の所定の長さを有するものであり、
前記一次数列は、前記第一の所定長さを有する各部分数列の前記一次数列における場所が明確に決定される性質を有するものであることを特徴とする製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、位置コードを達成するための方法、位置コードをデコーディングするための方法、これらの目的のためのコンピュータプログラム、位置コードが提供される製品ならびに位置コーディングのためおよび位置コードのデコーディングのためのデバイスに関する。
【背景技術】
【０００２】
面上に書き込まれまたは描画される情報を電子的形態で記録するための道具として面上の位置コードの使用は既に知られている。
【０００３】
米国特許ＵＳ５，４７７，０１２号において、面上の種々のシンボルからなる位置コードを光学的に検出するペンが記述されている（特許文献１参照）。前記ペンは前記位置コードをデコードし、前記面を横切るペンの動きを記述する座標の対を複数生成する。各位置は特定のシンボルによってコード化される。もしも位置コードが多数の位置をコード化するものであれば、このことは、結果として前記シンボルは複雑になり且つそれ故正確に検出することが困難であるという不都合を生ずる。これに反して、もしもシンボルがより大きく作られれば、分解能は低下する。
【０００４】
国際特許出願ＷＯ ９２／１７８５９号においては、各位置は複数のシンボルによってコード化され、且つ各シンボルは一よりも多くの位置のコーディングに寄与する位置コードが記述されている（特許文献２参照）。近傍の位置は、それ故部分的に共有されるシンボルによってコード化される。
【０００５】
国際特許出願ＷＯ ９２／１７８５９号の付録Ａにおいては、前記位置コードがどのようにして作られ得るかおよび位置がどのようにしてデコードされ得るかの次の例が与えられる（特許文献３参照）。
【０００６】
ｓ＝（０，０，１，０，１，１，１）およびｔ＝（０，１，１）なるｍ数列からスタートする。位置コーディングパターンを作るには、パターンにおける最初の縦列をｓ数列と同じにする。次の縦列を作るために、ｔ数列を参照する。ｔ数列における第一の要素が０であるならば、二番目の縦列はｓ数列と同じになる。ｔ数列における第一の要素が１であるならば、二番目の縦列はｓ数列を一ステップだけ循環的にシフトした数列になる。後続の縦列は、ｔ数列における要素の値に従って、対応する方法で作られる。それ故、次のパターンが得られる：
０ ０ １ １
０ ０ ０ １
１ １ ０ ０
０ ０ １ ０
１ １ ０ １
１ １ １ ０
１ １ １ １
【０００７】
ここで、前記パターンの次の部分集合（部分パターン）を有する部分面の位置を知りたいものとする。
１ ０ ０
０ １ ０
１ ０ １
前記部分パターンにおける最初の縦列は、（１，０，１）である。この部分数列は、ｓ数列における位置２にあらわれる。前記部分パターンにおける循環的なシフトは、（１，１）である。この部分数列は、ｔ数列における位置１にあらわれる。前記パターンにおける累積されたシフトは、（０，０，１，２）であり、そしてそれ故前記部分パターンの垂直位置は、２＋０＝２である。前記部分面上にある前記部分パターンの位置は、それ故（１，２）である。
【０００８】
このパターンは、それが、例えば０についての第一のシンボルおよび１についての第二のシンボル等の単純なシンボルを用いてベース上にコード化され得るという利点を有している。
【０００９】
しかしながら、このタイプの位置コーディングパターンの興味深い性質は、位置決定が可能な限り大きな面の上で実行され得るように、多数の特有の位置を有する大きなパターンをコード化する能力である。上述の例において、垂直方向のサイズは、ｓ数列の長さによって制限され、且つ、水平方向のサイズは、ｔ数列の長さによって制限される。これらの数列の長さは、制限なく増大することはできない。なぜなら、部分数列がｋビットからなるものを採用したとして、この部分数列は、前記数列におけるただ一つの場所にのみあらわれるものでなければならないという性質を、前記数列が持たなければならないからである。前記数列の長さを増大させることは、それ故前記部分数列の長さを増大させることになり、そしてそれによって、位置を決定できるために記録されなければならない部分面の大きさを増大させてしまい得る。
【００１０】
本出願の出願人に譲渡されている国際特許出願ＷＯ ０１／２６０３２号、ＷＯ ０１／２６０３３号およびＷＯ ０１／２６０３４号においては、国際特許出願ＷＯ ９２／１７８５９におけるのと同様の基本原理に基づいているが、より多数の位置のコーディングを可能とする、他の位置コーディングパターンが、記述されている。
【００１１】
このパターンの一つの実施の形態においては、第一の数列が使用され、この第一の数列は、所定長さの部分数列のそれぞれの当該数列における場所が明確に決定される性質を有するものであり、この数列が、面全体にわたる多数の縦列に、種々の循環ないし循環的シフトを伴ってプリントアウトされる。しかしながら、２値の数で構成される第二数列（国際特許出願ＷＯ ９２／１７８５９におけるｔ数列）を使用する代わりに、隣接する縦列間の循環的シフトが、より大きな値で許容される。
【００１２】
さらに前記面は、複数のコード窓に分割される。各コード窓は、数列で構成された縦列を少なくとも三つ有し、隣接するコード窓と、一つの数列だけオーバラップしている。隣接する縦列間のシフトを用いて、ｘ軸に沿うコード窓の位置がコード化される。コード窓における前記数列間のシフトは、そのようにして位置を定義し、最初のコード窓は位置０、次のコード窓は位置１、等々を有する。
【００１３】
しかしながら、前記位置コードを読み取るとき、読み取りデバイスは、しばしば二つのコード窓の部分を記録するであろう。前記位置コードの読み取りイメージに関する二つのコード窓の位置が決定され得るようにするために、第一の範囲におけるシフトは、位置にとって意味のある最小のシフトを指摘するために用いられ、そして第二の範囲におけるシフトは、位置におけるその他のシフトのために用いられる。
【００１４】
ｙ座標のコーディングは、対応する方法にて実行される。
【００１５】
この位置コードは、非常に良好に働くことが見出されており、且つ非常に多数の位置のコーディングを許容する。しかしながら、位置コードのエラー訂正特性を改善することの要請がある。
【００１６】
例えば、ｘ方向における位置を明確にコード化する最小の部分集合が、五つのシフトを有していると仮定されたい。これらの五つのシフトから、一つのコード窓の位置が決定され得る。二つの隣接するコード窓の位置は、通常は最後の数字（最後のシフト）において異なっているのみである。三つの連続的なコード窓について、前記五つのシフトは、例えば、次の通りとなり得る：
25，15，34，18，3；  25，15，34，18，4；  25，15，34，18，5；
エラーを検出する通常の方法は、関連するタスクのために必要とされるものよりも多くの情報を読み取ることに基づいている。上述されたコーディングによって、エラー検出のために使用するのに適する余分の情報を読み取ることは困難である。例えば、読み取りデバイスが、上述の三つのコード窓のうちの最初のコード窓から後ろの二つのシフトを読み、次のコード窓から初めの三つのシフトを読んで、１８，３，２５，１５，３４を記録すると仮定されたい。１８，４，２５，１５，３４が記録されるというエラーが生じるとさらに仮定されたい。例えば、さらに、前記五つの両側に一つずつの、二つのシフトの読み取りを行ったとしても、エラーを検出することを可能とさせる余分の情報は提供されない。
【００１７】
もしも、ｘ方向におけるコーディングを行うときに使用される数列が、所定長さの部分数列のそれぞれが当該数列内に明確に決定される場所を有するという性質を備えるならば、エラー訂正は容易化される。他方では、もしも多くの位置をコード化することが可能となるようにするならば、この数列は大きな基数を持たなければならない、すなわち大きなシフトを許容しなければならない、という実際的な問題が発生する。それから、読み取った部分数列が、前記数列のどの場所に対応するものであるかを知るために、非常に大きなテーブルが要求され、それは結局、非常に多量のメモリが要求されることになる。しかしながら、例えば、限定されたメモリおよびプロセッサ容量を有するハンドヘルドの読み取りデバイスにおいてデコーディングが実行されることが可能であることが、望ましい。また、限定されたメモリおよびプロセッサ容量を有するデバイスにおいてコーディングが実行されることが可能であることが、望ましい。
【先行技術文献】
【特許文献】
【００１８】
【特許文献１】米国特許ＵＳ５，４７７，０１２号明細書
【特許文献２】国際特許出願ＷＯ ９２／１７８５９号
【特許文献３】国際特許出願ＷＯ ９２／１７８５９号
【発明の概要】
【発明が解決しようとする課題】
【００１９】
それ故、本発明の目的は、非常に多数の位置をコード化することを可能とさせ、エラー訂正を可能とするが、しかしコーディングおよびデコーディングのために大きなテーブルの記憶部を必要としない、そしてそれ故、限定された量のメモリおよび／または限定されたプロセッサ容量を有するデバイスにおいて実現され得る位置コードを提供することによって、上述された問題を低減することである。
【００２０】
他の目的は、非常に多数の位置をコード化する位置コードの効果的で且つ正確なデコーディングを可能とさせることである。
【課題を解決するための手段】
【００２１】
これらの目的は、請求項１に従った位置コーディングのための方法、請求項１９に従ったコンピュータプログラム、請求項２０に従ったコーディングデバイスにおける方法、請求項３３に従ったコンピュータプログラム、請求項３５に従った位置コードをデコーディングするための方法、請求項４３に従ったコンピュータプログラム、請求項４５〜４７に従ったデバイス、および請求項４８に従った位置コードが付与された面を有する製品によって完全にまたは部分的に達成される。
【００２２】
したがって、本発明の第一の態様は、位置コーディングのための方法に関し、その方法は、面上の第一次元の複数の位置を、一次数列に従ってコーディングするステップを含む。この一次数列は、第一の所定長さの部分数列のそれぞれが、一次数列におけるどの場所にあるかが明確に決定される性質を有し、前記第一次元の位置のそれぞれは、前記部分数列のいずれか一つによってコード化される。前記一次数列は、少なくとも二つの二次数列から作られるものであり、これらの二次数列は、前記一次数列の基数よりも小さな基数を有し、前記第一次元の位置に対応する前記一次数列の部分数列を求めるために用いられる。
【発明の効果】
【００２３】
前記一次数列が、より小さな基数を有する二次数列から作られ、これらの二次数列の基数が、望ましくはせいぜい５であるので、前記一次数列における場所を前記一次数列の部分数列に変換するために必要とされるテーブルは、いくつかのより小さなテーブルによって置き換えることができ、これらのテーブルを合わせても必要なメモリはより少なくなる。したがって、非常に多数の位置のための座標をコード化することが、実際に実行可能となる。
【００２４】
少なくとも第一次元の位置をコーディングするために一次数列を使用することは、非常に良好なエラー検出およびエラー訂正特性を有する位置コードを達成することをも可能とさせる。さらに詳細には、前記一次数列における各数は、循環主数列の部分数列を用いてコード化される。もしも、前記主数列の部分数列を、位置決定のために必要とされるものよりも長い部分数列として記録するならば、エラー検出およびエラー訂正が達成され得る。そのためには、前記主数列を、前記長い部分数列が、特定の不適正なバージョンで、例えば一つの数字が誤った状態で、あらわれることがないように、設計する。
【００２５】
デコーディングについても、また、前記一次数列が、より小さな基数を有する二次数列から作られることが利用されて、前記デコーディングは、いくつかのより小さなテーブルを用い且つ中国の余剰定理を用いて実行され得る。その結果、前記デコーディングは、例えば限定されたメモリおよびプロセッサ容量を有するハンドヘルドデバイスにおいて実現され得る。
【００２６】
位置コーディングは、一次元および二次元の両方において位置をコーディングするために利用され得る。第二次元におけるコーディングは、第一次元におけるコーディングのために用いられた数列と異なる数列もしくは同一の数列を用いて、同様の原理によって実行され得る。
【図面の簡単な説明】
【００２７】
【図１】図１は、第一の方向に並ぶ位置のｘ方向のコーディングがどのようにして実行されるかを概略的に示している。
【図２】図２は、一次数列ＰＤが四つの二次数列Ａ１〜Ａ４によってどのようにして作られるかを概略的に示している。
【図３】図３は、位置コードのグラフィカルコーディングの例を示している。
【図４】図４は、拡大された位置コードによる製品を示している。
【図５】図５は、余分なシンボルが、エラー訂正の目的のために、どのように記録され得るかを示している。
【図６】図６は、フローチャートであり且つ位置コードがどのようにして決定され得るかの実施例を示している。
【図７】図７は、フローチャートであり且つ位置コードがどのようにしてデコードされ得るかの実施例を示している。
【図８】図８は、位置コードの読み取りおよびデコーディングのために使用され得るデバイスを概略的に示している。
【発明を実施するための形態】
【００２８】
さて、本発明は、例示的な実施の形態を用いてそして添付された図面を参照して、説明されるであろう。
【００２９】
〔実施の形態の記述〕
以下においては、本発明に従った位置コーディングのための全般的な原理が特定の例を用いて説明されるであろう。その後は、コーディングおよびデコーディングが実際にどのようにして実施され得るかが説明される。その後は、位置コードのデコーディングのために使用され得る読み取りデバイスの例が説明される。最後に、代替的な実施の形態が説明される。
【００３０】
〔位置コーディングのための全般的な原理〕
位置コードは、一またはそれより多くの次元における位置をコード化するために用いられる。説明を単純化するために、位置コーディングは、まず、第一次元において、この例ではｘ方向において、考慮される。循環主数列が、この方向におけるコーディングのために用いられ、該循環主数列は、所定長さの部分数列のそれぞれの前記循環主数列における場所が、明確に決定される性質を有している。この例においては、前記所定長さは６である。したがって、もしも六つの連続する数が、前記循環主数列におけるいずれかの場所からとられたら、これら六つの数が、この順序で前記循環主数列においてただ一度だけ生ずるであろう。該性質は、前記主数列の末端が該主数列の始端に連結されている場合にも、当てはまる。前記主数列は、それ故に循環と呼ばれる。この例においては、２値の数で構成される主数列が使用される。もしも、六つの数を有する部分数列の場所が、明確に決定されるならば、前記主数列は、したがって、２６＝６４の最大長さを持つことができ、長さ６の前記部分数列は、前記主数列における場所０〜６３を持つことができる。しかしながら、もしも、長さ６３の主数列が選択されると、以下に説明されるように、改善されたエラー訂正特性が得られる。以下においては、したがって、主数列の長さは６３で、それ故０〜６２の範囲で唯一の場所が定義されるものとする。前記主数列のこの長さによれば、各部分数列を前記主数列における場所に変換し且つその逆変換もするテーブルを持つことが実際に可能である。
【００３１】
前記主数列の開始が次の通りであると仮定されたい：
０，０，０，０，０，０，１，０，０，１，１，１，１，１，０，１，０…
前記主数列において、例えば、部分数列０，０，０，０，０，０は、明確な場所０を有し、部分数列１，１，１，１，１，０は、明確な場所９を有し、そして部分数列１，１，１，０，１，０は、明確な場所１１を有する。
【００３２】
前記位置コーディングは、前記循環主数列の異なる循環ないし循環的シフトを利用することに基づいている。ｘ方向における位置をコード化するために、前記主数列が、面を横切る複数の縦列として、すなわち位置がコード化されるべき方向に直交するｙ方向に並ぶように、プリントアウトされまたは何か他の方法で配列される。このとき、前記主数列は、複数の縦列において、種々の方法で循環されまたは循環的にシフトされる。前記主数列は、ｙ方向において、前記主数列の前記長さに対応するものよりも多くの位置がコード化されようとする場合は、同一の縦列において、必要なだけ繰り返して、プリントアウトされ得る。そのとき、前記主数列のすべての繰り返しに同一の循環が使用されるが、異なる縦列においては異なる循環が使用され得る。
【００３３】
図１は、七つの列ｘ〜ｘ＋６を有する一枚の紙１００を概略的に示している。異なる循環をさせた複数の前記主数列における初めの方の数のみがプリントアウトされている。主数列全体は、ボックスＢによって概略的に示されている。加えて、図１においては、各縦列において、六つの数からなる最初の部分数列Ｓが、破線を用いて描かれたボックスによって示されている。上述されたように、前記部分数列Ｓの各々は、前記主数列において明確に決定される場所を有する。
【００３４】
隣接する縦列の各対は、差分数ｄを定義する。差分数ｄは、それぞれの縦列における最初の部分数列の主数列における場所の間の差分によって与えられる。もしも、その代わりに、各縦列における一ステップ下の部分数列の場所の間の差分がとられたら、結果は、それらの場所が同様の方法でずらされているので、同様となるであろう。したがって、差分数ｄは、前記主数列における部分数列の場所が、縦列におけるどの「高さ」において比較されようが、同様となるであろう。したがって、縦列の各対について、差分数ｄは、ｙ方向では一定である。
【００３５】
列ｘ＋５における主数列の最初の部分数列は、０，０，０，０，０，０であり、それは前記主数列における場所０に対応する。列ｘ＋６における主数列の最初の部分数列は、１，０，０，０，１，１であり、それは前記主数列における場所５７に対応する。これらの列の間の差分または循環的シフトは、したがって５７であり、それ故ｄ（ｘ＋５）＝５７である。ここで、前記差分数は、前記主数列の長さを法として求められる。
【００３６】
このような方法でコード化され得る差分数は、０〜Ｋ−１の範囲内にあり、ここでＫは前記主数列の長さで、この場合Ｋ＝６３であり、したがって、それによって０〜６２の範囲内における差分数をコード化することが可能となる。前記主数列の異なる循環を選択することによって、差分数の列を作ることができ、この差分数の列は、以下において一次数列または一次差分数列と呼ばれる。この差分数の列（一次数列）は、所定長さの部分数列のそれぞれが前記一次数列において明確に決定される場所を有するという性質を備えるように作ることができる。この例においては、前記所定長さは５である。五つの差分数からなる各部分数列は、前記一次差分数列において明確に決定される場所を有するから、ｘ方向における位置をコード化するのに用いられ得る。図１においては、部分数列Ｓ（ｘ）〜Ｓ（ｘ＋５）が、前記一次数列の部分数列を与える五つの差分数ｄ（ｘ）〜ｄ（ｘ＋４）を、このようにコード化していることになる。
【００３７】
実際には、前記部分数列は、通常は、それらの明示的な値によってプリントアウトされるのではなく、グラフィカルなコード化によってプリントアウトされる。前記主数列の２値の数が並んだ縦列は複数で行列を形成し、それは以下においてはｘ行列と呼ばれる。
【００３８】
前記主数列の長さがＫであるならば、前記一次差分数列における基数は、Ｋに等しくなり、前記一次差分数列の最大長さは、Ｋ５、すなわちこの場合６３５になるであろう。しかしながら、このように大きな基数について、部分数列を一次差分数列における場所に変換および逆変換するためのテーブルを使用することは、実際的に実行可能ではない。しかしながら、もしも、管理可能なテーブルを使用できるようにするために基数が縮小されれば、コード化可能な位置の数が減少してしまうであろう。
【００３９】
この問題は、より短い長さの複数の差分数列から前記一次差分数列を作ることによって、解決される。この短い差分数列は、以下において二次差分数列または二次数列と呼ばれる。この二次差分数列は、部分数列とその場所とが、より小さなテーブル内に用意できるものであり、前記位置コードをコーディングし、またデコーディングする際に、特定のｘ座標に対応する一次差分数列の部分数列を求めるために、またその逆を求めるために、用いられる。
【００４０】
前記二次差分数列は、次のようにして決定され得る：
第一に、差分数は、異なる差分数の個数が少なくとも二つの要素に因数分解され得るような範囲内でのみ許可される。長さ６３の主数列を有する例においては、差分数は、長さ５４の範囲内でのみ許可される。数５４は、実際には、２＊３＊３＊３として因数分解され得る。代わりに、６０の差分数、すなわち５＊３＊２＊２の差分数を選択してもよいが、テーブルが可能な限り小さくなるようにするために、可能な限り小さな要素を与える数を選択することが好都合であるかもしれない。
【００４１】
第二に、異なる差分数の個数が因数分解され得る要素の個数と同一の個数の二次差分数列が形成される。この例においては、それ故、二次差分数列の個数は、４に等しい。
【００４２】
加えて、我々は、各要素に、それぞれの二次差分数列において基数を形成させる。この例においては、それ故、我々は、基数２を有する一つの二次差分数列および基数３を有する三つの二次差分数列を得る。
【００４３】
したがって、もしも、二次差分数列もまた、長さ５の部分数列が該二次差分数列において唯一の場所を有するはずであるという性質を有するとするならば、前記二次差分数列の最大長さは、それぞれ３２および２４３である。前記二次差分数列のそのような長さであれば、部分数列を場所に変換しまたその逆変換をすることが、実際的に実行可能である。もしも、代わりに、我々が６０の異なる数を使用すべく選択したならば、我々は、基数５を有し、それ故最大長さが３１２５である二次差分数列を得るため、かなりより多くのメモリを使用するテーブルが必要となるが、それでもまだ、管理可能である。
【００４４】
最後に、前記二次差分数列の長さは、対にすると該長さが互いに素であるように選択される。このことは、各対をなす二次差分数列について、一方の差分数列の長さが、他方の差分数列の長さと、共通の要素を一切持たないようにすることを意味する。このことは、加えて、もしも前記差分数列の各々が繰り返されるならば、各二次差分数列からの部分数列の組み合わせが同一になることは、Ｌ＝ｌ１＊ｌ２＊…＊ｌｍだけ後の場所まで生じないであろうことを意味する。なお、ｌ１は、二次差分数列１の長さであり、ｌ２は、二次差分数列２の長さであり、そして最後の二次差分数列の長さであるｌｍまで、同様である。もしも、二つの二次数列だけしかなければ、もちろん、Ｌ＝ｌ１＊ｌ２である。
【００４５】
このことは、図２に概略的に図解されている。最上部には、一次数列ＰＤが示されており、ここでは単にＸによって示されている差分数が一つの長い列になって延びている。下部には、二次数列Ａ１〜Ａ４が概略的に示されている。垂直線は数列が再開する場所を示している。一次数列の部分数列および対応する二次数列の部分数列は、破線によって示されている。部分数列は、二次数列における異なる場所に対応することがわかる。
【００４６】
二次差分数列の部分数列の組み合わせによる一次差分数列の部分数列の表現は、この例においては、全単射である。これは、しかしながら、必要なことではない。
【００４７】
第二次元における、例えばこの場合ｙ方向における、位置コーディングは、第一次元における位置コーディングと同様の原理に従って実行され得る。前記主数列は、それから、面上の複数の横行中に、すなわち図１におけるｘ方向に、異なる循環的シフトを伴って、配列される。差分数は、隣接する横行の間で定義され且つこれら差分数は、一次差分数列を形成し、この一次差分数列は、複数の二次差分数列から作ることができるものである。第二次元において、他の主数列、他の一次差分数列および他の二次差分数列を使用することが可能である。前記種々の数列における基数も、前記第一次元においてコーディングのために使用されたもの以外のものとすることが可能である。この例においては、しかしながら、同一の数列が、ｘ方向とｙ方向との両方に使用される。ｘ方向におけるコーディングに対応する方法において、ｙ方向におけるコーディングは、結果として、行の値が主数列の２値の値からなる行列を得る。
【００４８】
もしも、ｘ行列およびｙ行列が重ね合わされたならば、結果として得られるｘｙ行列における各点について、ｘ行列からの１ビットとｙ行列からの１ビットとが存在するであろう。それ故、各点において、次の四つのビット組合せが、取得され得る：０，０；０，１；１，０；および１，１。これらの異なる組み合わせは、例えば図３ａ〜図３ｄに示された方法によって、面上にグラフィカルにコード化され得る。図３ａ〜図３ｄでは、ドット３０が、ラスタにおける公称点３１からの四つの方向のいずれか一つの方向に変位されている。ここで、各公称点は、ラスタにおける線３２間の交差に対応する、このタイプのグラフィカルなコーディングは、国際特許出願ＷＯ ０１／２６０３２号に非常に詳細に説明されているが、但しそこでは、基礎となる位置コーディングが異なる方法にて実行されている。この例において使用されるコーディングは次の通りである：
【表１】
2010102723.tif 000003
ラスタは、仮想的であり得て、その場合、面上に位置コードとともに明示的にプリントアウトされることはない。
【００４９】
図４は、位置コード４１０を有する一枚の紙４００の形態における製品の一部を概略的に示している。図４における位置コードは、例えば手書きをディジタル化するのに適するバージョンに対して、非常に大きく拡大されていることは、強調されるべきである。加えて、図４では、ラスタ４２０が示されているが、通常は、ラスタ４２０はプリントアウトされない。
【００５０】
もちろん、他のタイプのグラフィカルなコーディングが、四対のビットについて選択され得る。例えば、異なるサイズの四つのドット、異なる形状を有する四つのマーク、または異なる回転を有する四つのマークのようなグラフィカルなコーディングがあり得る。
【００５１】
位置コーディングが、主数列における異なる部分数列の場所の間の差分に基づいており、且つ同一の差分を、部分数列の異なる対を用いて得ることができるので、一次差分数列は、種々の方法で作られ得る。より詳細には、どの部分数列、すなわち主数列のどの循環が、ｘ行列における最初の縦列（ｘ＝０）およびｙ行列における最初の横行（ｙ＝０）を始めるべく選択されたか、に依存して、６３の異なる「バージョン」の一次差分数列が作られ得る。したがって、ｘ方向およびｙ方向へのコーディングのために同一の一次差分数列を利用する位置コードについては、Ｋ＊Ｋ（この例では６３＊６３＝３９６９）個の異なる「バージョン」を生成することが可能である。位置コードのこれらの異なるバージョンは以下においてセクションと呼ばれる。ｘ方向における位置コードについてのセクション番号ｘｓおよびｙ方向における位置コードについてのセクション番号ｙｓは、それぞれｘ方向およびｙ方向についての付加的な座標として示され得る。
【００５２】
上の例においては、主数列を用いて理論的にコード化され得る差分数のうち、部分的にしか使用されていない。より詳細には、可能性のある６３個の差分数のうち、５４個のみが使用されている。理論的に可能性のある差分数の部分範囲は、種々の方法で選択され得る。この例においては、（前記主数列の長さを法とした）ゼロに近い差分数が、位置コードにおいて、望まれない規則性を作り得る。それ故、この例においては、差分数は、範囲（５，５８）内に選択される。このことは、一次数列における部分数列と二次数列における部分数列との間の変換に関して考慮されなければならず、そしてそれは以下において説明されるであろう。今、位置コードが面上に配置されていると仮定されたい。読み取りデバイスは、少なくとも６＊６ドットに対応する位置コードの部分集合を検出するエリアセンサを持ち得る。読み取りのとき、前記読み取りデバイスは、前記位置コードに対して種々の方法で回転されて保持され得る。位置コードは、原則的に、０，９０，１８０または２７０度のうちのどれだけ回転された場合でも、同じように見えるので、位置コードのイメージは、位置コードと読み取りデバイスとの間の回転をそれ自体で明らかにすることはない。位置コードが回転されるとき、各ドットの変位の方向は、しかしながら、変化され、それが結局、ドットの変位によってコード化されたビット対が変化することにつながる。どのように変化が生ずるかは、変位とビット対との間の変換に依存する。以下においては、上述されたように変換が実施されると仮定されている。三つの異なるケースが存在する。
【００５３】
１）位置コードのイメージの１８０度の回転によって、非回転位置コードにおけるｘ位置およびｙ位置をコード化する循環主数列は、イメージに基づく位置をデコードする試みがなされるとき、逆順に読み取られるであろう。上述された変位とビット対の組み合わせでは、デコードされたビットは、位置コードが上下逆に読み取られることから、反転されるであろう。
【００５４】
２）時計回り方向における９０度の回転によって、非回転行列におけるｘ位置をコード化するビット列は、回転行列におけるｙ位置をデコードする試みがなされるとき、逆順に読み取られ、そして前記ビットは反転されるであろう。
【００５５】
３）時計回り方向における２７０度の回転によって、非回転行列におけるｙ位置をコード化するビット列は、回転行列におけるｘ位置をデコードする試みがなされるとき、逆順に読み取られ、そして前記ビットは反転されるであろう。
【００５６】
このことは、もしも、正しい向きで正立状態にある非回転行列における部分数列が、反転されて且つ逆順になって、循環主数列中にあらわれることがないならば、９０，１８０および２７０度の回転が検出され得ることを意味する。もしもそのような条件が前記主数列について満たされるならば、このことは、前記主数列の長さがずいぶん減らされることを意味し、それは結局、コード化できる位置がより少なくなってしまうことを意味する。
【００５７】
この問題を解決するため、我々は、その代わりに、前記循環主数列のより長い部分数列について、条件が満たされるようにさせる。このことは、実際の位置決定のために要求されるよりも長い部分数列が、読み取られなければならないことを意味する。ある場合においては、そのようなより長い部分数列は、読み取りの間に既に利用可能になっている。もしも、位置の座標をコード化する位置コードの最小の部分集合が正方形状であるならば、この例における場合にそうであるように、読み取りデバイスが、位置コードに対して４５度回転されたときでさえも、読み取られた位置コードの部分が前記最小の部分集合の全体を含むように、位置コードの大きな部分がいつも読み取られなければならない。それ故、位置決定のために要求されるものよりも長い少なくとも一つの部分数列がいつも含まれる。このことは、図５に図解されており、そこでは、各正方形５０がドットに対応し、グレーに影付けされた正方形が、少なくとも一つの横行および一つの縦列を、二つの余分のドット付きで読み取ることが、いつも可能であることを図解している。
【００５８】
位置決定のための主数列の部分数列が長さ６を有する現在の例では、長さ８の部分数列が回転の検出のために使用され得る。これら８ビット長の部分数列は、したがって、主数列内において逆順に且つ反転してあらわれることがないという性質を有する。この性質は、６４ビット長の主数列では得られず、それが、前記長さがその代わりに６３として選択される理由である。
【００５９】
上述された回転のうちの二つ、すなわち９０および２７０度において、正しい方向に回転する一列、そして誤った方向に回転する一列が読み取られるであろう。回転検出のための上述された方法によれば、二つの読み取り方向（ｘおよびｙ）のうちの一方の方向だけにおいて、回転エラーが検出されるであろう。他方の読み取り方向においては、正しく回転されたイメージの前記一方の読み取り方向における位置をコード化する循環的シフトを見ることができるであろう。
【００６０】
時計回り方向における９０度回転の場合において、正確に回転されたイメージのｙ座標をコード化する循環的シフトは、ｘ方向についてデコーディングするときに見られるであろう。したがって、見られるのは、ｙ方向の一次差分数列の部分数列であるが、誤った方向に回転されている（ｘ方向の一次差分数列の部分数列の場合であれば左から右へ並んでいるが、この場合はそうではなく右から左へ並んでいる）。
【００６１】
２７０度回転の場合には、対応するように、ｙ方向についてデコーディングするときに、ｘ方向の一次差分数列の部分数列が、誤った方向に回転されて見られるであろう。
【００６２】
なぜ部分数列が誤った方向に回転されて見えるかという理由は、ｘ方向およびｙ方向の一次差分数列の相対的な方向性である。全体の位置コーディングパターンの縁部から始まり、ｙ方向の一次差分数列が、反時計回り方向に並ぶ一方で、ｘ方向の一次差分数列が、時計回り方向に並ぶ。もしもそれらが同一の方向に並んでいたとしたら、上述のケースにおいて、それらは誤った方向には回転せず、正しい方向に回転したであろう。
【００６３】
一次差分数列を反対方向に並べることには多数の利点がある。一次差分数列の部分数列が正しい回転をしているケースにおいては、「正しい」座標がデコードされるが、誤った方向においてである。この座標は、デコーディングに要求される一次差分数列からの六つの循環的シフトに対応するだけでなく、周囲のシフトが、デコードされる座標が正しいことを確認するであろう。一次差分数列が互いに反対方向に並んでいるケースにおいては、一次差分数列からの六つの循環的シフトもデコードされるが、誤った順序においてであり、結果として誤って回転された一次差分数列の周囲部分に統計的に対応しないであろう座標を生ずる。この事実は、結果としてエラー検出についてより良い可能性を生ずる。
【００６４】
他の利点は、一次差分数列が反対の方向に並んでいれば、連続的なエラー、すなわち複数の連続するイメージが隣接する位置にデコードされるエラー、の危険が少ないことである。より詳細には、誤った方に回転された一次差分数列における六つの循環的シフトの異なる隣接する組は、隣接する座標をコード化しない傾向がある。連続的なエラーは、そこでは正しくない座標の広がりが大きく、他のエラーよりも検出することが一層困難である。
【００６５】
回転の検出のために使用されるのと同一の基本原理が、エラー訂正のために使用され得る。主数列は、例えば、位置決定のために要求されるよりも長いある所定長さの部分数列が、主数列内に１ビットが反転された状態であらわれることがないように、選択され得る。もしも、そのようにより長い部分数列において、一つを除く全てのビットが確実性をもって検出され得るならば、不正確なビットは、訂正され得る。
【００６６】
位置コードのそのようなエラー検出およびエラー訂正特性は、主数列の理知的な選択によってかなり改善され得る。さらなる改善が、二次差分数列の選択によって達成され得る。
【００６７】
上述の例においては、主数列および二次差分数列が、付録Ａに示される方法で選択されている。
【００６８】
二次差分数列は、以下に述べる特別なエラー訂正特性を有している：
主数列の部分数列の一つが、正しくなくデコードされ、そしてそれは主数列における正しくない場所がデコードされることにつながると仮定されたい。各場所は二つの隣接する差分数を計算するために使用されるので、これらは、両方とも正しくないデコーディングによって影響されるであろう。もしも、差分数のいずれか一つが、使用される差分数範囲（５，５８）の外側にあれば、エラーは直ちに検出されるであろう。もしも、これがそのようなケースでなければ、しかしながら、一次差分数列の部分数列が結果として生ずる四つの二次差分数列の部分数列の組合せにおける少なくとも一つの部分数列が、二つの隣接する位置においてゆがめられるであろう。初めの二つの二次差分数列Ａ１およびＡ２の両方が基数３を有し、且つ使用されない差分数の個数は、９＝３＊３であるので、これら二つの数列のいずれか一つにおけるゆがみは、二つの影響された数の合計が、３を法としていつも同一の値を有するという性質を有している。
【００６９】
二つの二次数列Ａ１およびＡ２は、長さ７の部分数列のそれぞれについて、単一の不適正な場所のデコーディングによって引き起こされる可能性のある１４のゆがみのうちのせいぜい１つが、二次数列内に見出されるであろうという性質を有している。三番目の二次数列Ａ３は、加えて、長さ７の部分数列のそれぞれについて、単一の不適正な場所のデコーディングによって引き起こされる可能性のある１３のゆがみのうちのせいぜい１つが、二次数列の中に見出されるであろうという性質を有している。四番目の二次数列Ａ４は、可能性のある２８のゆがみのうちのせいぜい７つについて、同じ性質を有している。主数列の部分数列の単一の正しくないデコーディングが検出される可能性は、このように大きい。
【００７０】
選択された数列によれば、合計４１０８１５３４８個の異なる位置が、一つのセクションの各次元にコード化され得る。コード化され得る異なるセクションの数は、上述された通り６３２である。したがって、コード化され得る位置の合計数は、６３２＊４１０８１５３４８２＝６．７＊１０２０位置である。
【００７１】
もしも、各位置が、０．３＊０．３ｍｍ２の面に対応するならば、これは唯一の位置が、６０００万ｋｍ２の面上でコード化され得ることに対応する。位置コードによって理論的にコード化され得る全ての唯一の点によって作られるこの面は、仮想面と呼ばれ得る。位置コードがコード化する座標は、それ故仮想面上の点についての絶対座標である。位置コードの部分が、物理的ベースまたは面上に適用され得る。それから、位置コードは、このベース上で位置をコード化する。しかしながら、座標は、通常、物理的ベース上の位置についての絶対座標に関連せず、仮想面上の点について関連している。
【００７２】
〔位置コーディングの実際的な例〕
以下において、実際に位置コーディングがどのようにして実現されるかが説明されるであろう。標準的には、ユーザは、座標０からそして上方向きに全ての位置コードをプリントすることには関心がなく、むしろ、ユーザには、特定のアプリケーションのために使用され得る特定の座標エリアが割り当てられている。そこで実際的な問題は、この特定の座標エリアについてどのように位置コードが求められるかである。
【００７３】
位置コードは、何らかの適切なタイプのプロセッサユニットから構成し得るコーディングデバイスにおいて決定されまたは生成され得る。それから、前記プロセッサユニットは、実際のプロセッサ、作業メモリおよび位置コードを決定するための命令群を有するコンピュータプログラムが格納されるプログラムメモリを具備している。前記プロセッサユニットは、典型的なパーソナルコンピュータに、プリンタに、または何らかの他の適切なデバイスに組み込まれ得る。あるいは、前記コーディングデバイスは、ＡＳＩＣ（アプリケーション特定集積回路）またはＦＰＧＡ（フィールドプログラマブルゲートアレイ）またはこの特定のタスクのために適するように適用され得る同様のユニットのような、特定目的のハードウェアで構成することもできるし、またはディジタルおよび／またはアナログ回路あるいはそれらの何らかの適切な組み合わせで構成することもできる。
【００７４】
位置コードの生成する意味のある最小の部分は、単一の点についての座標をコード化した部分である。この例においては、これは６＊６変位値による行列を生成することに対応し、それは基準ラスタにおけるそれらのそれぞれのラスタ点から６＊６ドットの変位で記述する。
【００７５】
しかしながら、しばしば、複数の点についての座標をコード化する位置コードの部分集合の生成、すなわちより大きな行列、が要求される。
【００７６】
前記コーディングデバイスへの入力信号は、通常のケースでは六つのパラメータからなることができる：
ｘ：位置コードにおける最も左にある縦列についてのｘ座標である。
【００７７】
ｙ：最上部の横行についてのｙ座標である。
【００７８】
ｘｓ：ｘ位置コードについて使用される位置コードのセクションを示す。
【００７９】
ｙｓ：ｙ位置コードについて使用される位置コードのセクションを示す。
【００８０】
幅：位置コードにおける縦列の数、すなわちｘ方向における座標エリアのサイズを示す。
【００８１】
高さ：位置コードにおける横行の数、すなわちｙ方向における座標エリアのサイズを示す。
【００８２】
これらのパラメータは、ユーザによってまたは外部ユニットからコーディングデバイスに入力される。オプション的に、変位値によって満たされることとなる行列に対するポインタも含まれ得る。さもなければ、行列についてメモリが割り当てられる。
【００８３】
コーディングデバイスのタスクは、行列における各点を、変位値Ｏに関連付けることにある。変位値Ｏは、ベース上にプリントされる位置コードにおいてドットをどの方向へ変位すべきかを示す。
【００８４】
この例においては０〜３であり得る変位値Ｏが、上述において説明してきたように、一つのビット対におけるビットによって、求められる。そこでは、第一のビットは、現在点についてのｘ位置コードの値ｍｘからなるとともに、第二のビットは、現在点についてのｙ位置コードの値ｍｙからなる。もしも、一つのビット対が既知であれば、変位値は、ビット対を変位値に変換するテーブルＯ内において検索され得る。
【００８５】
ｘ位置コードの値ｍｘは、もちろん、我々が位置を定めた点ｘおよびｙに依存するが、位置コードの現在セクションにも依存する。したがって、ｍｘ＝ｍｘ（ｘ，ｘｓ，ｙ）である。ｙ位置コードの値ｍｙは、対応するように、我々が位置を定めた点ｘおよびｙに依存し、そしてｙ位置コードの現在セクションにも依存する。したがって、ｍｙ＝ｍｙ（ｙ，ｙｓ，ｘ）である。
【００８６】
もしも我々が、セクションｘｓにおける縦列ｘにおいて、前記循環主数列がどの場所ｓで始まるかを決定して、ｙを付加すれば（ここで結果は主数列の長さを法としてとられる）、我々がｘコーディングのために位置を定めた点ｘ，ｙにおける前記主数列内の場所が得られる。我々は、それから主数列のテーブルＭを参照し、この場所を有するのが、前記主数列におけるどの数（ビット）であるのかを探索する。これにより得られた主数列における数は、点ｘ、ｙにおけるｘコーディングの値を構成する。このことは、ｍｘ（ｘ，ｙ，ｘｓ）＝Ｍ［（ｓ（ｘ，ｘｓ）＋ｙ）（ｍｏｄ ６３）］として表現され得る。
【００８７】
対応する操作を実行することによって、ｙコーディングの値が点ｘ，ｙにおいて見出され得る。このようにして、我々は、ビット対へのアクセスを得る。このビット対から、行列における点ｘ，ｙに格納されるべき変位Ｏが求められることになる。
【００８８】
コーディングデバイスが計算する必要があるのは、したがって、まず、点ｘ，ｙの座標をコード化する位置コードの部分集合の中で最も左にある縦列である縦列ｘについて、前記主数列がどの場所ｓで始まるかである。他の言葉で言えば、縦列ｘにおける主数列について、循環的シフトが計算されると言える。
【００８９】
このことは次のようにして実行され得る。
【００９０】
差分数ｄ（ｘ）が、先に示されたように、縦列ｘにおける最初の部分数列の主数列における場所と、隣接する縦列ｘ＋１における最初の部分数列の主数列における場所とによって、定義される。より詳細には、それは、次のようになる：
ｄ（ｘ）＝（ｓ（ｘ＋１，ｘｓ）−ｓ（ｘ，ｘｓ））（主数列の長さを法とする）
ここで、ｓ（ｘ，ｘｓ）は、セクションｘｓの位置コードの縦列ｘにおける、主数列内の場所ないし主数列についての循環的シフトである。
【００９１】
定義として、さらに、ｓ（０，ｘｓ）＝ｘｓであり、これは、ｘセクションを定義するｘ位置コード中のまさに最初の縦列における、主数列についての循環的シフトである。
【００９２】
これに基づいて、ｓ（ｘ，ｘｓ）が、
ｓ（ｘ，ｘｓ）＝（ｘｓ＋ｓｕｍ（ｊ＝０…ｘ−ｌ）ｄ（ｊ））
（主数列の長さを法とする）
として求められる。
【００９３】
多くの点についての座標をコード化する位置コードのための全てのｘについて差分数ｄ（ｘ）の値を定義する一次差分数列を格納することは、実際的には可能でないので、ここで、一次差分数列における各差分数が、二次差分数列の各々から一つの数を取り出して組み合わせたものにマップ可能であるという事実が利用される。一般的には次のようになる：
ｄ（ｘ）＝ｄｃ（１，ｘ）  ＋  ｂ１＊ｄｃ（２，ｘ）＋  …
＋  ｂ１＊…＊ｂｎ−１＊ｄｃ（ｎ，ｘ）
ここで、ｎは、二次差分数列の個数であり、そして、ｂｉは、ｉ＝１〜ｎ−１についての差分数列ｉにおける基数であり、ｄｃ（ｉ，ｘ）は、差分数列ｉにおける数を用いてテーブルＤＣｉを検索することによって求めることができ、したがってｄｃ（ｉ，ｘ）＝ＤＣｉ［差分数列ｉの長さを法とするｘ］である。もし、二つの二次差分数列しかなければ、もちろん上述における最初の２項のみが用いられる。
【００９４】
問題のケースにおいては、それ故我々は、次を得る：
ｄ（ｘ）＝５＋ｄｃ（１，ｘ）  ＋  ３＊ｄｃ（２，ｘ）  ＋  ９＊ｄｃ（３，ｘ）
＋  １８＊ｄｃ（４，ｘ）
但し、定数５は、範囲５〜５８における差分数が用いられているという事実に由来している。
【００９５】
それぞれ異なる二次差分数列からの寄与は独立であるので、各二次差分数列について、別々に、差分ｘまでの全ての差分数の合計が計算され得る。図２において、場所ｘまでの全ての差分数が、各数列について、別々に、合計されたように見られ得る。
【００９６】
実際には、この合計は、定数およびテーブルの使用によって容易に求めることができる。前記二次差分数列のサイクル全体からの寄与は、実際に一定であり且つそれ故、あらかじめ決定されそして定数として格納され得る。これらの定数はここではＤＣＣＳｉとしてあらわされる。差分数列の不完全なサイクルからの寄与も、あらかじめ決定されそしてテーブルに格納されることができ、該テーブルは、それぞれの二次差分数列における各場所について、この場所に至るまでとこの場所を含めて差分数の合計を与える。このテーブルは、ここにＤＣＩＣＳｉとあらわされる。定数項５からの寄与は、５＊ｘである。
【００９７】
ｓｕｍ（ｊ＝０…ｘ−ｌ）ｄ（ｊ）の項は、それ故、各二次差分数列について次のようにして求めることができる。
【００９８】
ＤＣＣＳｉ＊（ｘ  ｄｉｖ  ｌ（ｉ））＋ＤＣＩＣＳｉ［ｘ（ｍｏｄ  ｌ（ｉ））］
ここで、ｌ（ｉ）は、二次差分数列ｉの長さである。
【００９９】
ｓ（ｘ，ｘｓ）が求まると、点ｘ，ｙにおけるｘ位置コードは、それ故、上述されたように、ｙの既知の値の使用およびテーブル参照によって求めることができる。
【０１００】
ｘ位置コードにおける後続の縦列については、（ｘ，ｘｓ）は、上述されたように求められる必要はなく、代わりにｓ（ｘ，ｘｓ）が既知であるという事実が利用されて、次の関係を用いてｓ（ｘ＋ｌ，ｘｓ）が計算される。
【０１０１】
ｄ（ｘ）＝（ｓ（ｘ＋１，ｘｓ）−ｓ（ｘ，ｘｓ））（主数列の長さを法とする）
ｄ（ｘ）＝５＋ｄｃ（１，ｘ）＋  ｂ１＊ｄｃ（２，ｘ）  ＋…
＋  ｂ１＊ｂ２…＊ｂｍ−１＊ｄｃ（ｍ，ｘ）
ｄｃ（ｉ，ｘ）＝ＤＣｉ［差分数列ｉの長さを法とするｘ］
この手順が、それから、入力パラメータ「幅」に従って必要な個数の縦列について繰り返される。
【０１０２】
ｓ（ｙ，ｙｓ）は、ｓ（ｘ，ｘｓ）についてと対応する方法で求められ、そして入力パラメータｘを用いて、点ｘ，ｙにおけるｙ位置コードの値も求めることができる。
【０１０３】
これら両方の値が得られたとき、点ｘ，ｙにおける変位が、テーブルＯ内が参照されることによって求められる。
【０１０４】
位置をコード化するために、コーディングデバイスが、それ故、次のテーブルおよび定数を使用し得る：
Ｍ：主数列における複数の異なる場所のそれぞれに対応する、主数列における数。
【０１０５】
Ｏ：複数の異なるビット対についての変位（０〜３）。
【０１０６】
ＤＣｉ：二次差分数列ｉにおける複数の異なる場所のそれぞれに対応する、二次差分数列ｉにおける数。
【０１０７】
ＤＣＩＣＳｉ：二次差分数列ｉの不完全なサイクルの各々における数の合計。
【０１０８】
加えて、次の定数が格納され得る：
ＤＣＣＳｉ：二次差分数列ｉにおける全ての数の合計。
【０１０９】
ｌ（ｉ）：二次差分数列ｉの長さ。
【０１１０】
Ｋ：主数列の長さ。
【０１１１】
位置コーディングのための単純なフローチャートが図６に示されている。最初に、ステップ６００において、入力信号が、ｘ，ｙ，ｘｓ，ｙｓ，幅，高さの形態で受け取られる。その後に、ｘ行列およびｙ行列が、並列的に、あるいは、ｘがｙより先またはｙがｘより先のいずれかの順序で逐次的に、求められる。このことは、並列フローによってフローチャートに示されている。ステップ６０５において、循環的シフトｓ（ｘ，ｓｘ）が、ｘ位置コーディングにおける最初の縦列について、まず求められる。その後に、ステップ６１０において、循環的シフトｓ（ｘ＋１，ｘｓ）が、２番目の縦列について求められる。その後、ステップ６１５においてｘ＝ｘ＋１が適用され、ステップ６２０において、幅全体について、すなわち全ての縦列について、循環的シフトが求められたか否かが調べられる。もしも、そうでなければ、フローはステップ６１０に戻り、そしてこのステップおよびステップ６１５が繰り返される。もしも、全てについて求められたならば、ステップ６２５において、テーブル参照によってｘ行列におけるビット値が求められる。対応する方法で、ステップ６３０〜ステップ６５０においてｙ行列についてのビット値が求められる。最後に、ｘｙ行列についての変位がステップ６５５においてテーブル参照によって求められる。
【０１１２】
これは、もちろん、位置コーディングがどのように実行され得るかの、まさに粗く概略的な例であり、そして実際には、それは多くのやり方に変更され得る。例えば、点についてのビット対および対応する変位は、その点について循環的シフトが求められると直ちに引き続いて求められることも可能である。結果として、ｘ行列およびｙ行列をバッファする必要はない。
【０１１３】
該方法は、コンピュータプログラムとして実行されることが可能である。コンピュータプログラムからの出力信号は、変位値を伴うｘｙ行列そのものである必要はなく、その代わりに位置コードを作成する主数列の部分数列の何らかの他の指示からなることも可能である。
【０１１４】
〔位置デコーディングの実際の例〕
位置コードは、位置コードを読み取るためのセンサと何らかの適切なタイプのプロセッサユニットとを備え得るデコーディングデバイスにおいてデコードされ得る。プロセッサユニットは、実際のプロセッサ、作業メモリおよび、位置コードをデコーディングするための命令群を有するコンピュータプログラムがそこに格納される、プログラムメモリを備えている。前記プロセッサユニットは、典型的なパーソナルコンピュータに、ハンドヘルド読み取りデバイスに、または何らかの他の適切なデバイスに組み込まれ得る。あるいは、前記デコーディングデバイスは、ＡＳＩＣまたはＦＰＧＡまたはこの特定のタスクのために適するように適用され得る同様のユニットのような、特定目的のハードウェアで構成することもできるし、またはディジタルおよび／またはアナログ回路あるいはそれらの何らかの適切な組み合わせで構成することもできる。
【０１１５】
デコーディングデバイスの特定の例が以下において説明されるであろう。
【０１１６】
以下の記述は図７のフローチャートに言及している。
【０１１７】
デコーディングデバイスへの入力信号は、位置コードの検出された部分集合のイメージまたは他の何らかのディジタル表現からなっており、その部分集合は、少なくとも一点についての座標をコード化している（ステップ７００）。この例においては、位置コードは、上述されたように、ラスタにおけるラスタ点に対して所定の方法にて変位されたドットにより、グラフィカルに表現される。
【０１１８】
デコーディングの最初のステップにおいては、デコーディングデバイスが、例えば閾値弁別を用いることによって、イメージにおけるドットを識別し、ラスタをドットに合わせる（ステップ７０５）。ラスタは、例えば、複数の異なるドット対の間における距離の利用という本出願人の国際特許出願ＷＯ ０１／２６０３４に記述された方法によって、またはフーリエ変換の利用という国際特許出願ＷＯ ０１／７５７８３に記述された他の方法によって、決定され得る。各ラスタ点について、関連付けられたドットの変位が求められ、変位に依存する値０〜３が与えられる。少なくともサイズが（ｎｌ＋１）＊（ｎｌ＋ｌ）の行列が選択され、ここで、ｎｌは、位置決めのために使用される主数列の部分数列の長さであり、その部分数列の場所は、主数列内に明確に決定される。ここの例では、８＊８行列が選択される（（ｎｌ＋２））＊（ｎｌ＋２））。この行列は、変位値をビット対に変換するテーブルＯＩの検索を利用して、変位値をビット対に変換することによって、ｘ行列（ｘ位置コードとも呼ばれる）とｙ行列（ｙ位置コードとも呼ばれる）とに分離される（ステップ７１０）。各ビット対における最初のビットはｘ行列を形成し、各ビット対における２番目のビットはｙ行列を形成する。
【０１１９】
次のステップにおいて、ｘ行列およびｙ行列の回転の、四つの可能性のあるタイプ（０，９０，１８０および２７０度）が調査され、現在の回転が決定される（ステップ７１５）。行列を誤って回転させると、長さ８の部分数列として、主数列には無い部分数列があらわれるという、先に述べられた事実が用いられる。
【０１２０】
同時に、ある程度のエラー訂正が長さ８の部分数列に基づいて実行される。
【０１２１】
正しい回転が決定されたとき、次のステップにおいて、中央にあって正しい方法で回転されそしてｎｌ＊ｎｌなるサイズを有するｘ行列およびｙ行列のみが使用される。すなわちこの例においては、二つの６＊６行列のみが使用される。ｘ行列およびｙ行列が、並列的に、あるいは、ｘがｙより先またはｙがｘより先のいずれかの順序で逐次的に、求められる。このことは、図７における並列フローによって示されている。
【０１２２】
ｘ行列のデコーディングの最初のステップ７２０において、一次差分数列の部分数列が求められ、それは図７において、一次部分列と呼ばれる。より詳細には、ｘ行列において、行列内の縦列におけるビットが、主数列の部分数列を構成する。主数列における対応する場所は、部分数列を場所に変換するテーブルＭＩ内が参照されることにより求められる。その後に、複数の主数列の部分数列によってコード化された差分数が求められる。この例においては、それらの個数は５である。より詳細には、差分数は、隣接する部分数列の場所の間の差分ｄとして求められ、前記差分は主数列の長さを法として求められる。
【０１２３】
そのようにして取得される差分数の列は、一次差分数列の部分数列である。一次差分数列は、ｘ方向についてのコーディングのために使用されるが、そのサイズのために、デコーディングデバイスには格納されない。その代わりに、一次差分数列の各部分数列は、二次差分数列の各々からの部分数列の組み合わせに変換され得るという、一次差分数列の性質が利用される。ステップ７２５において、一次部分列が、そのように二次部分列に変換される。より詳細には、各差分数は次のように書き換えられる：
ｄ＝ｄ１   ＋  ｂ１＊ｄ２  ＋…＋  ｂ１＊ｂ２…＊ｂｎ−１＊ｄｎ
ここで、ｎは、二次差分数列の個数であり、そしてｂｉは、二次差分数列ｉの基数である。これに関する例は、次のようになる：
ｄ＝５＋ｄ１  ＋  ３＊ｄ２  ＋  ９＊ｄ３  ＋  １８＊ｄ４
ここで、ｄ１〜ｄ４は、整数除算またはテーブル参照によって求められる。
【０１２４】
一次差分数列のデコードされた部分数列における五つの数の各々は、それ故結果として四つの数ｄ１，ｄ２，ｄ３，ｄ４となる。したがって、第一の二次差分数列の部分数列を形成する五つのｄ１数が得られ、第二の二次差分数列の部分数列を形成する五つのｄ２数が得られ、第三の二次差分数列の部分数列を形成する五つのｄ３数が得られ、そして第四の二次差分数列の部分数列を形成する五つのｄ４数が得られる。例が、下に与えられる：
ｄ        ２３    ４５    ５１    ９      ３７
ｄ１      ２      ０      ０      ０      １
ｄ２      １      ０      ２      ０      ０
ｄ３      ０      １      １      １      ０
ｄ４      １      ２      ２      ０      ２
二次差分数列の部分数列のそれぞれの場所は、それぞれの二次差分数列の部分数列をそれぞれの二次差分数列における場所に変換する四つのテーブルＤＣＩｉを参照することによって求められる（ステップ７３０）。
【０１２５】
各部分数列について、場所ｐｉがそのように得られる。これらの場所について、次のような式が成り立つ：
Ｐ＝ｐ１（ｍｏｄ  ｌ１）
Ｐ＝ｐ２（ｍｏｄ  ｌ２）
：
Ｐ＝ｐｍ（ｍｏｄ  ｌｍ）
但し、Ｐは、座標ｘに対応する一次差分数列における場所、ｐｉは、二次差分数列における場所、ｌｉは、二次差分数列ｉの長さ、そしてｍは、二次差分数列の個数である。
【０１２６】
この式のシステムは、よく知られた中国の余剰定理を用いて解決され得る。それについては、例えばＮｉｖｅｎ，Ｓｕｃｋｅｒｍａｎ著「数の理論への導入」Ｓｐｒｉｎｇｅｒ Ｖｅｒｌａｇに非常に詳細に説明されている。こうして、ステップ７３５において、ｘが求められる。
【０１２７】
Ｌ＝ｐｒｏｄ（ｉ＝１，ｍ）ｌｉと定義し、ｑｉ＊（Ｌ／ｌｉ）＝１（ｍｏｄ  ｌｉ）と定義する。一次差分数列における場所Ｐは、次のようにして得られる：
Ｐ＝（ｓｕｍ（ｉ＝１，ｎ）（（Ｌ／ｌｉ）＊ｐｉ＊ｑｉ））（ｍｏｄ  Ｌ）
ここの例では、
Ｌ＝ｌ１＊ｌ２＊ｌ３＊ｌ４＝２３６＊２３３＊３１＊２４１＝４１０８１５３４８ 
および
ｑ１＝１３５
ｑ２＝１４５
ｑ３＝１７
ｑ４＝６２
が得られる。
【０１２８】
もしも、二次差分数列の部分数列について例えば、場所ｐ１＝９７；ｐ２＝１７６；ｐ３＝３およびｐ４＝２１１が得られるならば、一次差分数列における対応する場所Ｐは、中国の余剰定理に従って１７０３２６９６１となるであろう。
【０１２９】
Ｐが求まると、次のステップは、場所が属するｘセクションを決定することである。これは、まず、ｙ＝０という仮定のもとに、そしてｓ（ｘ，０）の計算によって実行される。ｓ（ｘ，０）は、ｘｓ＝０についての縦列ｘのための部分数列の主数列における場所である。
【０１３０】
ｓ（ｘ，０）は、位置ｘについての位置コードの決定に関連して上述されたのと同様に二次差分数列を用いて計算される。もしも、ｓ（ｘ，０）が、ｘ方向についての位置決めのために使用される六つの部分数列のうちの最初の部分数列の場所から引かれると、ｙ＝０についてｘｓが得られる。
【０１３１】
ｙ行列は、ｘ行列のデコードに先だって、またはそれと並列的に、あるいはその後に、デコードされ、ｙ方向について、一次差分数列における場所が、ｘ方向についての上述されたのと対応する方法にて、図７におけるステップ７４０〜７５５に従って、求められる。加えて、ｙセクションｙｓが、ｘセクションについて上述されたのに対応する方法であるが、ｘ＝０の仮定のもとに、計算される。最後に、ステップ７６０において、ｘｓは、ｙを考慮して決定され、且つｙｓは、ｘを考慮して決定される。すなわち、ｙ＝０についてのｘｓからｙ（主数列の長さを法とする）を減算し、ｘ＝０についてのｙｓからｘ（主数列の長さを法とする）を減算する。
【０１３２】
次のテーブルは、したがって、位置コードをデコードするために使用され得る：
ＭＩ：主数列の部分数列を、主数列における場所に変換する、
ＤＣＩｉ：ｎ個の二次差分数列の各々の部分数列を、ｎ個の二次差分数列における場所に変換する、そして
ＯＩ：変位値を、ビット対に変換する。
【０１３３】
図７におけるフローチャートでは、位置デコーディングが、例えばコンピュータプログラムにおいて、どのように実現され得るかの粗い概略的な例であることは強調されるべきである。
【０１３４】
〔ハンドヘルド読み取りデバイスの例〕
位置コードは、種々のタイプの読み取りデバイスによって読み取られ且つデコードされ得る。そのようなデバイスは、位置コードのディジタル表現を取得するためのセンサ、およびディジタル表現における位置コードを識別し且つこれをデコードするための手段を有し得る。これらの手段は、上述されたように、メモリを有するプロセッサ、および適切なプログラムまたは特別な目的のためのハードウェアまたは、ディジタルおよび／またはアナログ回路、または何らかのそれらの組み合わせから構成することができる。
【０１３５】
読み取りデバイスの例が図８に示されている。それは、ペンとほぼ同様の形状をなすケーシング１１を備えている。ケーシングの短寸側部には、開口１２がある。短寸側部は、位置決定が実行されるべき面に対して接触させまたはそこから短い距離で保持することを意図している。
【０１３６】
ケーシングは、主として光学部分、電子的回路構成部分および電源を収容している。
【０１３７】
光学部分は、イメージングされるべき面を照明するための少なくとも一つの発光ダイオード１３および二次元イメージを記録するための例えばＣＣＤまたはＣＭＯＳセンサ等の光感応性エリアセンサ１４を備えている。付加的に、デバイスは、ミラーおよび／またはレンズ系のような光学系を含んでいてもよい。発光ダイオードは、赤外発光ダイオードであってもよく、そしてセンサが赤外光に感応性を有していてもよい。
【０１３８】
デバイスのための電源は、ケーシングにおける分離された区画室内に搭載されたバッテリ１５から得る。外部電源からケーブルを介して電力供給を得ることも可能である（図示せず）。
【０１３９】
電子的回路構成部は、センサからイメージを記録し且つこれらのイメージに基づいて位置決定を実行するようにプログラムされたプロセッサ、ならびに作業メモリおよびプログラムメモリも有するプロセッサユニットを含んでいる。
【０１４０】
この実施の形態において、デバイスは、その上で位置決定が実行されるべき面上にその助けを借りて通常の顔料ベースの筆記が描出され得るペンポイント１７も具備している。ペンポイント１７は、ユーザがそれが使用されるか否かをコントロールできるように延長および折りたたみ収納が可能である。特定のアプリケーションにおいては、デバイスがペンポイントを有する必要は全くない。
【０１４１】
顔料ベースの描出は赤外光に対して透過性があるタイプが適しており、マークが赤外光を吸収することが適している。赤外光を射出する発光ダイオードを用い且つ赤外光に感応性を有するセンサを用いることにより、パターンの検出が、上述されたパターンとの描出干渉なしに実行され得る。
【０１４２】
デバイスは、それによってデバイスが起動され且つ制御され得るボタン１８も備えることもできる。例えば赤外光、ラジオ波または超音波を用いてデバイスへおよびデバイスからの情報のワイヤレス通信のためのトランシーバ１９も持っている。デバイスは、位置または記録された情報を表示するためのディスプレイ２０を備えることもできる。
【０１４３】
デバイスは、異なる物理的ケーシングに分割されることもでき、第一のケーシングは、位置コーディングパターンのイメージの記録に必要な構成要素およびこれらを第二のケーシングに収容されおよび記録されたイメージ／イメージ群に基づいて位置決定を実行する構成要素に送信するための構成要素を収容する。
【０１４４】
〔代替的実施の形態〕
上述の実施の形態においては、位置コードが二次元において位置をコード化するものとして説明された。しかしながら、位置コードは、一次元の位置をコード化するために使用されるようにすることもできる。上述の例においては、例えば、位置コードの「ストリップ」は、ｙ＝０のｘ軸に沿って使用されるようにすることもできる。代わりに、ｘコーディング行列のみが使用されるようにすることもできる。このケースにおいては、行列における各点が、一つだけ値を持つであろうから、２値の数で構成される主数列を用いる場合に我々がグラフィカルにコード化する必要があるのは０または１のみである。
【０１４５】
一次元位置コーディングの使用は、バーコードと等価とすることができる。
【０１４６】
上述の実施の形態においては、２値の数で構成される主数列が使用されているが、主数列において異なる基数を使用することも可能である。その結果として、位置コーディング行列における各点においていくつかの異なる値をコード化する必要が生じ得る。
【０１４７】
上述の実施の形態においては、同一の主数列および同一の二次差分数列が、ｘ方向およびｙ方向におけるコーディングのために使用される。これは、必要ではない。異なる次元におけるコーディングのために異なる数列が使用され得る。数列のためのテーブルの格納のためのメモリスペースの必要を予想して、しかしながら、全ての方向についてのコーディングのために同一の数列を使用することは利点とすることができる。
【０１４８】
上述の実施の形態において、６＊６ドットまたはシンボルが位置のコーディングのために使用される。当然、より少ないまたは多いシンボルを使用され得る。両次元に同一数個のシンボルが使用される必要はない。
【０１４９】
上述の実施の形態において、一次差分数列の部分数列が、部分数列の組み合わせ上に、全単射的にマップされ、且つ二次差分数列の部分数列の組み合わせが、一次差分数列の部分数列上に、全単射的にマップされる。これは、必要ではない。一次差分数列の異なる部分数列は、二次差分数列の部分数列の同一の組み合わせ上にマップされることができる。部分数列の組み合わせ上にマップされない一次差分数列の部分数列が存在し得る。一次部分列よりも多い部分数列の組み合わせも存在し得る。上述の実施の形態において、ラスタは直交グリッドである。それは、ロンビックグリッドのような、例えば６０度角度グリッド、三角グリッドまたは六角形グリッド等の他の形態を持っていてもよい。
【０１５０】
例えば六角形仮想ラスタに沿う３方向における変位についての、四つの方向より少ないまたはより多い方向の変位によるグラフィカルなコーディングが使用され得る。六角形ラスタにおいては、ラスタの再形成を容易にするためにただ二つの変位が使用され得る。
【０１５１】
上述の実施の形態において、差分数がゼロに近づくのを回避するために（５，５８）の範囲の差分数が使用される。しかしながら、例えば、差分数３および４を含む他の範囲も使用され得る。
【０１５２】
上述の実施の形態において、パターンは光学的に読み取り可能であり、そしてセンサも光学的である。しかしながら、パターンは、光学パラメータとは異なるパラメータに基づくこともできる。そのような場合において、センサはもちろんそれに関するパラメータを読み取ることができるタイプからなっていなければならない。そのようなパラメータの例は、化学的、音響的または電磁的パラメータである。容量性または誘導性パラメータも使用され得る。
【０１５３】
製品は、一枚の紙によって上述に例示されている。しかしながら、それは上述のパラメータのいずれかを用いて位置コードが適用され得るいかなる製品であってもよい。もしも、位置コードが光学的であれば、それは、例えば、プリンタによってプリントアウトされまたは通常のプリント技術を用いて製品上にプリントされることもできる。
【０１５４】
〔付録Ａ〕
主数列Ｍ：
０，０，０，０，０，０，１，０，０，１，１，１，１，１，０，１，０，０，１，０，０，０，０，１，１，１，０，１，１，１，０，０，１，０，１，０，１，０，０，０，１，０，１，１，０，１，１，０，０，１，１，０，１，０，１，１，１，１，０，０，０，１，１
二次差分数列：
Ａ１＝０，０，０，０，０，１，０，０，０，０，２，０，１，０，０，１，０，１，０，０，２，０，０，０，１，１，０，０，０，１，２，０，０，１，０，２，０，０，２，０，２，０，１，１，０，１，０，１，１，０，２，０，１，２，０，１，０，１，２，０，２，１，０，０，１，１，１，０，１，１，１，１，０，２，１，０，１，０，２，１，１，０，０，１，２，１，０，１，１，２，０，０，０，２，１，０，２，０，２，１，１，１，０，０，２，１，２，０，１，１，１，２，０，２，０，０，１，１，２，１，０，０，０，２，２，０，１，０，２，２，０，０，１，２，２，０，２，０，２，２，１，０，１，２，１，２，１，０，２，１，２，１，１，０，２，２，１，２，１，２，０，２，２，０，２，２，２，０，１，１，２，２，１，１，０，１，２，２，２，２，１，２，０，０，２，２，１，１，２，１，２，２，１，０，２，２，２，２，２，０，２，１，２，２，２，１，１，１，２，１，１，２，０，１，２，２，１，２，２，０，１，２，１，１，１，１，２，２，２，０，０，２，１，１，２，２
Ａ２＝０，０，０，０，０，１，０，０，０，０，２，０，１，０，０，１，０，１，０，１，１，０，０，０，１，１，１，１，０，０，１，１，０，１，０，０，２，０，０，０，１，２，０，１，０，１，２，１，０，０，０，２，１，１，１，０，１，１，１，０，２，１，０，０，１，２，１，２，１，０，１，０，２，０，１，１，０，２，０，０，１，０，２，１，２，０，０，０，２，２，０，０，１，１，２，０，２，０，０，２，０，２，０，１，２，０，０，２，２，１，１，０，０，２，１，０，１，１，２，１，０，２，０，２，２，１，０，０，２，２，２，１，０，１，２，２，０，０，２，１，２，２，１，１，１，１，１，２，０，０，１，２，２，１，２，０，１，１，１，２，１，１，２，０，１，２，１，１，１，２，２，０，２，２，０，１，１，２，２，２，２，１，２，１，２，２，０，１，２，２，２，０，２，０，２，１，１，２，２，１，０，２，２，０，２，１，０，２，１，１，０，２，２，２，２，０，１，０，２，２，１，２，２，２，１，１，２，１，２，０，２，２，２，
Ａ３＝０，０，０，０，０，１，０，０，１，１，０，０，０，１，１，１，１，０，０，１，０，１，０，１，１，０，１，１，１，０，１，
Ａ４＝０，０，０，０，０，１，０，２，０，０，０，０，２，０，０，２，０，１，０，０，０，１，１，２，０，０，０，１，２，０，０，２，１，０，０，０，２，１，１，２，０，１，０，１，０，０，１，２，１，０，０，１，０，０，２，２，０，０，０，２，２，１，０，２，０，１，１，０，０，１，１，１，０，１，０，１，１，０，１，２，０，１，１，１，１，０，０，２，０，２，０，１，２，０，２，２，０，１，０，２，１，０，１，２，１，１，０，１，１，１，２，２，０，０，１，０，１，２，２，２，０，０，２，２，２，０，１，２，１，２，０，２，０，０，１，２，２，０，１，１，２，１，０，２，１，１，０，２，０，２，１，２，０，０，１，１，０，２，１，２，１，０，１，０，２，２，０，２，１，０，２，２，１，１，１，２，０，２，１，１，１，０，２，２，２，２，０，２，０，２，２，１，２，１，１，１，１，２，１，２，１，２，２，２，１，０，０，２，１，２，２，１，０，１，１，２，２，１，１，２，１，２，２，２，２，１，２，０，１，２，２，１，２，２，０，２，２，２，１，１．
【図１】
2010102723.tif 000004
【図２】
2010102723.tif 000005
【図３】
2010102723.tif 000006
【図４】
2010102723.tif 000007
【図５】
2010102723.tif 000008
【図６】
2010102723.tif 000009
【図７】
2010102723.tif 000010
【図８】
2010102723.tif 000011
【手続補正書】
【提出日】平成21年12月24日(2009.12.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
位置コードの一部分を生成するためのコーディングデバイスにおいて実行される方法であって、前記位置コードは、ｘｙ座標系における複数の位置をコード化するものであり、
前記方法は、
第１の差分数列に含まれる所定長さの各部分数列の前記第１の差分数列における場所が明確に決定される性質を備える第１の差分数列を用いて、ｘ方向における複数の位置をコード化することと、
第２の差分数列に含まれる所定長さの各部分数列の前記第２の差分数列における場所が明確に決定される性質を備える第２の差分数列を用いて、ｙ方向における複数の位置をコード化することと、
を含み、
前記ｘ方向における位置をコード化する第１の差分数列は、複数の第１の循環主数列がそれぞれ異なる循環シフトで前記ｘ方向と交差する方向に配置されることによって、作られるものであり、
前記ｙ方向における位置をコード化する第２の差分数列は、複数の第２の循環主数列がそれぞれ異なる循環シフトで前記ｙ方向と交差する方向に配置されることによって、作られるものであることを特徴とする方法。
【請求項２】
前記ｘ方向における位置をコード化する前記第１の差分数列および前記ｙ方向における位置をコード化する前記第２の差分数列は、反対方向に並んでいる、請求項１に記載の方法。
【請求項３】
前記第１の循環主数列は、前記第１の循環主数列に含まれる所定長さの各部分数列の前記第１の循環主数列における場所が明確に決定される性質を備え、
前記第２の循環主数列は、前記第２の循環主数列に含まれる所定長さの各部分数列の前記第２の循環主数列における場所が明確に決定される性質を備える、請求項１または２に記載の方法。
【請求項４】
前記第１の循環主数列の前記所定長さの各部分数列は、逆順になった形態もしくは反転した形態で前記第１の循環主数列内にあらわれることがなく、
前記第２の循環主数列の前記所定長さの各部分数列は、逆順になった形態もしくは反転した形態で前記第２の循環主数列内にあらわれることがない、請求項３に記載の方法。
【請求項５】
前記第１の循環主数列に含まれる特定長さの各部分数列であって、前記特定長さが前記所定長さより長い前記各部分数列は、逆順になった形態もしくは反転した形態で前記第１の循環主数列内にあらわれることがなく、
前記第２の循環主数列に含まれる特定長さの各部分数列であって、前記特定長さが前記所定長さより長い前記各部分数列は、逆順になった形態もしくは反転した形態で前記第２の循環主数列内にあらわれることがない、請求項３に記載の方法。
【請求項６】
前記第１および前記第２の循環主数列は、２値の数で構成され、
前記第１の循環主数列に含まれる特定長さの各部分数列であって、前記特定長さが前記所定長さより長い前記各部分数列は、１ビットが反転した状態で前記第１の循環主数列内にあらわれることがなく、
前記第２の循環主数列に含まれる特定長さの各部分数列であって、前記特定長さが前記所定長さより長い前記各部分数列は、１ビットが反転した状態で前記第２の循環主数列内にあらわれることがない、請求項３に記載の方法。
【請求項７】
前記コーディングデバイスへの入力信号として、生成されるべき前記位置コードの一部分のｘ座標とｙ座標と幅と高さを、少なくとも受け取ることと、
縦列ｘに始まり前記幅によって定められる数の縦列について、前記第１の循環主数列の前記循環シフトを計算することと、
横行ｙに始まり前記高さによって定められる数の横行について、前記第２の循環主数列の前記循環シフトを計算することと、
をさらに含む、請求項１〜６のいずれかに記載の方法。
【請求項８】
前記コーディングデバイスへの入力信号として、前記位置コードの最初の縦列について前記第１の循環主数列の前記循環シフトを示す情報と、前記位置コードの最初の横行について前記第２の循環主数列の前記循環シフトを示す情報を受け取ることをさらに含む、請求項７に記載の方法。
【請求項９】
点ｘ，ｙに対応する前記第１の循環主数列における場所を決定するために、縦列ｘにおける前記第１の循環主数列の前記循環シフトに、前記ｙ座標を付加することと、
点ｘ，ｙに対応する前記第２の循環主数列における場所を決定するために、横行ｙにおける前記第２の循環主数列の前記循環シフトに、前記ｘ座標を付加することと、
をさらに含む、請求項７または８に記載の方法。
【請求項１０】
テーブルを参照して、前記第１の循環主数列において決定された場所に対応する前記第１の循環主数列における数と、前記第２の循環主数列において決定された場所に対応する前記第２の循環主数列における数を探索することと、
求められた前記第１および前記第２の循環主数列の数に対応する変位値であって、前記位置コードにおけるドットの変位の方向を示す前記変位値を決定することと、
をさらに含む、請求項９に記載の方法。
【請求項１１】
前記第１の差分数列と前記第２の差分数列が同じものである、請求項１〜１０のいずれかに記載の方法。
【請求項１２】
前記第１の循環主数列と前記第２の循環主数列が同じものである、請求項１〜１１のいずれかに記載の方法。
【請求項１３】
前記第１の差分数列の差分数の少なくともいくつかは１より大きい数であり、
前記第２の差分数列の差分数の少なくともいくつかは１より大きい数である、請求項１〜１２のいずれかに記載の方法。
【請求項１４】
前記ｘ方向における位置をコード化する前記第１の差分数列の差分数の各々は、隣接する縦列の組のそれぞれの縦列における前記所定長さの部分数列の前記第１の循環主数列における場所の差によって与えられ、
前記ｙ方向における位置をコード化する前記第２の差分数列の差分数の各々は、隣接する横行の組のそれぞれの横行における前記所定長さの部分数列の前記第２の循環主数列における場所の差によって与えられる、請求項３〜１３のいずれかに記載の方法。
【請求項１５】
位置コードの一部分を生成するためのコーディングデバイスであって、前記位置コードは、ｘｙ座標系における複数の位置をコード化するものであり、
前記コーディングデバイスは、
第１の差分数列に含まれる所定長さの各部分数列の前記第１の差分数列における場所が明確に決定される性質を備える第１の差分数列を用いて、ｘ方向における複数の位置をコード化する手段と、
第２の差分数列に含まれる所定長さの各部分数列の前記第２の差分数列における場所が明確に決定される性質を備える第２の差分数列を用いて、ｙ方向における複数の位置をコード化する手段と、
を備え、
前記ｘ方向における位置をコード化する第１の差分数列は、複数の第１の循環主数列がそれぞれ異なる循環シフトで前記ｘ方向と交差する方向に配置されることによって、作られるものであり、
前記ｙ方向における位置をコード化する第２の差分数列は、複数の第２の循環主数列がそれぞれ異なる循環シフトで前記ｙ方向と交差する方向に配置されることによって、作られるものであることを特徴とするコーディングデバイス。
【請求項１６】
ｘｙ座標系における複数の位置をコード化する位置コードが付された面を有する製品であって、
ｘ方向における複数の位置は、第１の差分数列に含まれる所定長さの各部分数列の前記第１の差分数列における場所が明確に決定される性質を備える第１の差分数列を用いて、コード化されており、
ｙ方向における複数の位置は、第２の差分数列に含まれる所定長さの各部分数列の前記第２の差分数列における場所が明確に決定される性質を備える第２の差分数列を用いて、コード化されており、
前記ｘ方向における位置をコード化する第１の差分数列は、複数の第１の循環主数列がそれぞれ異なる循環シフトで前記ｘ方向と交差する方向に配置されることによって、作られるものであり、
前記ｙ方向における位置をコード化する第２の差分数列は、複数の第２の循環主数列がそれぞれ異なる循環シフトで前記ｙ方向と交差する方向に配置されることによって、作られるものであることを特徴とする製品。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１２８
【補正方法】変更
【補正の内容】
【０１２８】
もしも、二次差分数列の部分数列について例えば、場所ｐ１＝９７；ｐ２＝１７６；ｐ３＝３およびｐ４＝２１１が得られるならば、一次差分数列における対応する場所Ｐは、中国の余剰定理に従って３８７１９５１４９となるであろう。
【外国語明細書】
2010102723000001.pdf