(57)【要約】  情報コードは、位置情報をコーディングするための位置決め層と任意の非位置データをコーディングするためのデータ層とを有する。該位置決め層と該データ層の両方とも、ウィンドウシーケンスの循環的にシフトされるインスタンスにより形成されてよい。情報コードの付いた製品、情報コードをコーディングする方法と復号化する方法、および情報コードを復号化するための装置が開示されている。
2008504598.tif 000002
【特許請求の範囲】
【請求項１】
位置決め層の中の位置情報をコーディングし、個別のデータ層の中の任意の非位置データをコーディングし、該位置決め層と該データ層をベース上に配列される情報コードに結合することと、
を備えるデータを記憶する方法。
【請求項２】
該位置決め層によってコーディングされる位置情報が、二次元に関連する位置情報を備える請求項１に記載の方法。
【請求項３】
ウィンドウシーケンスの循環的にシフトされるインスタンスの行列を形成することにより該データ層の該データをコーディングし、該循環性シフトのサイズがコーディングされる該データに依存することと、
をさらに備える請求項１または２に記載の方法。
【請求項４】
該インスタンスの該循環性シフトで該データをコーディングすることと、
をさらに備える請求項３に記載の方法。
【請求項５】
ウィンドウシーケンスの循環的にシフトされたインスタンスの行列を形成することにより該位置決め層の中の該位置情報をコーディングし、該循環性シフトのサイズがコーディングされる該位置情報に依存することと、
をさらに備える請求項１から４のいずれか一項に記載の方法。
【請求項６】
一次元に関連する該位置情報が、該インスタンス間の相対的な循環性シフトでコーディングされる請求項５に記載の方法。
【請求項７】
該位置決め層行列の該インスタンス間の相対的な循環性シフトでルーラウィンドウシーケンスをコーディングすることにより、一次元に関連する該位置情報をコーディングすることと、
をさらに備える請求項５に記載の方法。
【請求項８】
該インスタンス間の相対的な循環性シフトが該位置決め層行列を形成するために使用される該ウィンドウシーケンスの該インスタンスの考えられるすべての相対的な循環性シフトの所定の部分集合に属するように、該位置決め層行列の中の該ウィンドウシーケンスの前記インスタンスを循環的にシフトすることと、
をさらに備える請求項５から８のいずれか一項に記載の方法。
【請求項９】
該位置決め層の中のグローバル情報コードパラメータを、それが該位置決め層の中のいずれかにおいて復号化可能となるようにコーディングすることと、
をさらに備える前記請求項のいずれか一項に記載の方法。
【請求項１０】
該位置決め層行列の中の該ウィンドウシーケンスの該インスタンス間の相対的な循環性シフトで、それが該位置決め層の中のいずれかにおいて復号化可能となるようにグローバル情報コードパラメータをコーディングすること、
をさらに備える請求項５に記載の方法。
【請求項１１】
所定のサイズのデータ層ブロック内のデータ層のデータをコーディングすることと、
をさらに備える前記請求項の内のいずれか一項に記載の方法。
【請求項１２】
所定の固定された循環性シフトによって該境界決定領域の中の該ウィンドウシーケンスの該インスタンスを循環的にシフトすることによって該データ層内の少なくとも一つの境界決定領域をコーディングすることと、
をさらに備える請求項３に記載の方法。
【請求項１３】
該情報コードが一次元情報コードである前記請求項の内のいずれか一項に記載される方法。
【請求項１４】
該位置情報と該データの両方ともがウィンドウシーケンスを使用することによってコーディングされる前記請求項の内のいずれか一項に記載の方法。
【請求項１５】
コンピュータに請求項１から１４のいずれか一項に記載の方法を実行させるためのプログラム命令を備えるコンピュータプログラム。
【請求項１６】
ベースと、位置層コーディング位置情報と、データ層コーディングの任意の非位置データとを備える、該ベース上の情報コードとを備える製品。
【請求項１７】
該情報コードが、ウィンドウシーケンスの循環的にシフトされたインスタンスにより形成される少なくとも一つの行列を備え、隣接するインスタンス間の該相対的な循環性シフトが該情報コードの前記インスタンスの考えられるすべての相対的な循環性シフトの第一の部分集合に排他的に属し、該製品が該情報コードとは個別であり、ウィンドウシーケンスの循環的にシフトされたインスタンスにより形成される少なくとも一つの行列を備える位置コードをさらに備え、隣接するインスタンス間の該相対的な循環性シフトが該位置コードの該ウィンドウシーケンスの前記インスタンスの考えられるすべての相対的な循環性シフトの第二の部分集合に排他的に属し、前記第一の部分集合と第二の部分集合が相互に排他的である請求項１６に記載の製品。
【請求項１８】
該情報コードの部分領域の表現を受信することと、
部分領域位置決め層の中の該部分領域の中の該情報コードと、部分領域データ層を分離することと、
該部分領域位置決め層から位置情報を復号化することと、
該部分領域データ層から任意の非位置データを復号化することと、
を備える情報コードを復号化する方法。
【請求項１９】
該部分領域位置決め層から位置情報を使用することにより、該データが該部分領域データから復号化される請求項１８に記載の方法。
【請求項２０】
該データ層がウィンドウシーケンスのインスタンスの行列を備え、前記インスタンスが循環的にシフトされ、該部分領域データ層と関連付けられている該ウィンドウシーケンスのそれらのインスタンスの該循環性シフトを決定することにより該データを復号化することをさらに備える請求項１８に記載の方法。
【請求項２１】
該循環性シフトが、該部分領域位置決め層からの位置情報によって決定される請求項２０に記載の方法。
【請求項２２】
該部分領域位置決め層から復号化される該位置情報と関連して、該部分領域データ層から該復号化されたデータを記憶することをさらに備える請求項１８から２１のいずれか一項に記載の方法。
【請求項２３】
該部分領域データ層と関連付けられる該ウィンドウシーケンスのインスタンスが、境界決定領域を示す所定の循環性シフトを有することを検出することによって、該受信された部分領域が境界決定領域を備えると判断することをさらに備える請求項１８から２２のいずれか一項に記載の方法。
【請求項２４】
該位置決め層が、ウィンドウシーケンスのインスタンスの行列を備え、前記インスタンスが循環的にシフトされ、該部分領域位置決め層と関連付けられている該ウィンドウシーケンスのインスタンス間の相対的な循環性シフトを決定することにより第一の方向に関連する該位置情報を復号化するステップをさらに備える請求項１８から２３のいずれか一項に記載の方法。
【請求項２５】
該位置決め層がウィンドウシーケンスのインスタンスの行列を備え、前記インスタンスが循環的にシフトされ、該部分領域位置決め層と関連付けられている該ウィンドウシーケンスのインスタンス間の相対的な循環性シフトを決定することによりグローバル情報コードパラメータを復号化するステップをさらに備える請求項１８から２３のいずれか一項に記載の方法。
【請求項２６】
コンピュータに、請求項１８から２５のいずれか一項に記載の方法を実行させるためのプログラム命令を備えるコンピュータプログラム。
【請求項２７】
該情報コードの部分領域の表現を受信し、部分領域位置決め層の中の該部分領域の該情報コードと、部分領域データ層とを分離し、該部分領域位置決め層から位置情報を復号化し、該部分領域データ層から任意の非位置データを復号化するように装置されるプロセッサを備える、情報コードを復号化するためのデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して任意の非位置データの記憶のための情報コードに関する。さらに詳細には、本発明はデータを記憶する方法、データ記憶製品、データを復号化する方法、およびデータを復号化するためのデバイスに関する。
【背景技術】
【０００２】
任意のデータを、例えば一次元バーコードまたは二次元バーコード等のコードによってコンパクトにベースに記憶できることは周知である。
【０００３】
本願の譲受人に譲渡される国際公開第０１／７１６５３号パンフレットは、データの記憶のためのコードを開示している。該コードは、該数列の中では少なくとも所定の長さの任意の部分列が一度だけしか現れないという特性を有する数列によって構築される。この特性を有する数列は、以下でウィンドウシーケンスと呼ぶ。
【０００４】
国際公開第０１／７１６５３号パンフレットに開示されている該コードは、行列の列にウィンドウシーケンスの部分を配列することにより形成されている。各々の系列部分は、ウィンドウシーケンスの中に明確な位置を有する。データは隣接する系列部分のウィンドウシーケンス位置の差異によってコーディングされる。ウィンドウシーケンス位置の該差異は、コードが読み取られることを意図される方向で、ウィンドウシーケンスの形式でルーラもコーディングする。このルーラによって、コードから読み取られるデータを正しい順序で配列し、完全なメッセージが記録されることを確実にすることができる。
【０００５】
前記から明らかであるように、コードに記憶されるメッセージは、ユーザ装置でコードの部分領域の複数の画像を記録し、該複数の画像の中のデータとルーラ情報を復号化し、データを正しい順序で並べることによってメッセージを再構築するためにルーラ情報を使用することによって再現することができる。コード行列が水平軸に沿って走査されることを意図されると仮定すると、該走査は垂直軸に沿った行列の任意のレベルで実施でき、復号化された情報はすべてのレベルで同じである。
【特許文献１】国際公開第０１／７１６５３号
【特許文献２】米国特許第５，８５２，４３４号
【特許文献３】米国特許第６，５７０，１０４号
【特許文献４】米国特許第６，６６３，００８号
【特許文献５】米国特許第６，６７４，４２７号
【特許文献６】米国特許第６，６６７，６９５号
【特許文献７】米国第２００４／００８５２８７号
【特許文献８】米国特許第５，４４２，１４７号
【特許文献９】米国第２００３／００５３６９９号
【特許文献１０】米国第２００３／０１８９６６４号
【特許文献１１】米国第２００３／０１１８２３３号
【特許文献１２】米国２００２／００４４１３８号
【特許文献１３】米国特許第６，７３２，９２７号
【特許文献１４】米国２００３／０１２２８５５号
【特許文献１５】米国第２００３／０１２８１９４号
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明の一つの目的は、任意の非位置データをベース上にコーディングされた形式で記憶するための代替コードを提供することである。
【０００７】
この目的は、独立クレームに主張されているように、データを記憶する方法、データ記憶製品、データを復号化する方法、データを復号化するためのデバイスによって完全にまたは部分的に達成される。
【０００８】
本発明の一つの態様によれば、データを記憶する方法は、位置決め層で位置情報をコーディングすることと、個別のデータ層で任意の非位置データをコーディングすることと、該位置決め層と該データ層をベース上に配列される情報コードに結合することとを備える。
【０００９】
位置情報とデータとを異なるコード層に分離することによって、多くの優位点が得られる。さらに後述されるように、位置決め層は、位置情報のみではなく他の情報をコーディングするために使用することができる。それは、例えば、情報コードを２つの層の中の類似する位置コードコーディング位置情報から区別するインジケータをコーディングするために使用できる。それは、また、位置決め層の任意の位置で復号化可能である情報コードパラメータをコーディングするために使用することもできる。さらに、データは他の方法で、および例えば国際公開第０１／７１６５３号パンフレットにおける場合よりさらに高いデータ密度でコーディングされてよい。全体的に見ると、結果として生じる情報コードは、より良く構造化されており、異なる種類の情報をコーディングするためにさらに容易に適応できるであろう。
【００１０】
位置決め層およびデータ層は、異なる方法で結合されてよい。層は互いの上に重畳され、一つの共通のコード要素によってコーディングされる異なる層からの要素を重複してよい。層は、異なる層からの要素が互いから変位され、重複しないように相互にインタリーブされてもよい。
【００１１】
情報コードは、異なる方法でベース上に配列できる。それは、例えばベース上に可視印字インクまたは不可視印字インクでインク印字されてよい、あるいは異なる磁気特性、化学的特性、位相的特性、または他の特性をベースの異なる部分に割り当てることによってベースに付けられてよい。
【００１２】
位置層によってコーディングされる位置情報は一次元または二次元である場合があり、二次元の代替策はデータのさらに洗練されたコーディングを可能にし、さらに高いデータ密度を可能にする。二次元の位置情報により、一方では情報コードの意図された走査方向で位置を決定し、他方ではそれに対して直角な位置を決定することができる。走査方向での位置を知っていることで、情報コードをほとんど重複することなく、あるいは事実上まったく重複することなく、複数の画像によって記録、または読み取ることができる。さらに、記録される情報の完全性は容易にチェックされてよい。画像コンテンツの対比を実施する必要はないが、位置情報は正しい順序でデータを配列するために使用される。意図された走査方向に直角の方向での位置を知っていることで、既知のコード以外の方法でデータをコーディングできる。
【００１３】
位置情報は、異なる方法でコーディングされてよい。位置コードは、例えばタイル表示型であってよく、ベースは個別の重複しない部分領域に分けられ、その各々が位置を規定する。このタイプの位置コードは、例えばＳｅｋｅｎｄｕｒに対する米国第５，８５２，４３４号に開示されている。該位置コードは浮動型である場合もあり、位置をコーディングするために必要とされる最小のサイズと同じサイズを有するベース上での任意の部分領域が位置を規定する。浮動型の位置コードでは、部分的に重複する部分領域はこのようにして異なる位置を規定する。典型的には、浮動型の位置コードで位置を規定する各部分領域が複数の単純なシンボルを備えるのに対し、タイル表示型の位置コードで位置を規定する部分領域は複数の単純なシンボルまたは単一のさらに複雑なシンボルのどちらかを備えてよい。
【００１４】
浮動型の位置コードは、一つ以上のウィンドウシーケンスによって実現できる。浮動型の位置コードの例は、例えば、すべてが本願の譲受人に譲渡されている米国第６，５７０，１０４号、米国６，６６３，００８号、米国第６，６７４，４２７号、米国第６，６６７，６９５号に、およびさらにＷａｎｇに対する米国第二００４／００８５２８７号、Ｂｕｒｎｓに対する米国第５，４４２，１４７号に記載されている。
【００１５】
データ層のデータも、タイル表示型コードまたは浮動型コードでコーディングされてよい。浮動型コードのケースでは、それは例えば一つ以上のウィンドウシーケンスによってコーディングされてよい。
【００１６】
位置情報および／またはデータは、例えば、行列の中にまとめられる（ｗｒａｐｐｅｄ  ｉｎｔｏ  ａ  ｍａｔｒｉｘ）単一の長いウィンドウシーケンスによって、あるいは行列の中に配列されるより短いウィンドウシーケンスの複数の完全なまたは部分的なインスタンスによってコーディングされてよい。
【００１７】
位置決め層とデータ層の両方とも、例えばウィンドウシーケンスの循環的にシフトされるインスタンスの行列を形成することによって設けられてよく、循環性のシフトのサイズは位置情報またはコーディングされるデータに依存する。
【００１８】
第一の位置決め層と第二のデータ層を有する情報コードは、情報コードの第一の位置決め層によって排他的に使用される特定の座標領域を確保することによって第一の位置層と第二の位置層を有する類似した外観の位置コードから区別できる。
【００１９】
ウィンドウシーケンスの循環的にシフトされるインスタンスが位置決め層で使用されると、隣接するインスタンス間の循環性のシフトまたは相対的な循環性のシフトは、各々位置コードにより使用されない、循環性のシフトと相対的に循環性のシフトの特定のセットに制限できる。
【００２０】
グローバル情報コードパラメータも位置決め層でコーディングされてよい。グローバルによって、ここでは、パラメータが位置決め層の任意の位置で復号化されてよいことが意味され、それは位置決め層全面に渡って同じである。それは他の種類の情報とは無関係であり、したがって復号化装置によって即座に解釈されてよい。グローバル情報コードパラメータは、例えば情報コードの循環性のシフトまたは相対的に循環性のシフトでコーディングされてよい。
【００２１】
本発明の追加の態様によれば、製品は基部と、該基部の上の情報コードとを備え、前記情報コードは位置層コーディング位置情報とデータ層コーディング任意の非位置データとを備える。
【００２２】
製品は、情報コードを付けることができるベースを備える任意の製品であってよい。異なる製品の例は詳細な説明に示されている。
【００２３】
本発明の別の態様によれば、情報コードからデータを復号化する方法は、該情報コードの部分領域の表現を受け取るステップと、部分領域位置決め層と部分領域データ層において、部分領域の情報コードを分離するステップと、部分領域位置決め層から位置情報を復号化し、部分領域データ層から任意の非位置データを復号化するステップとを備える。
【００２４】
本発明のさらに別の態様によれば、情報コードを復号化するためのデバイスは、情報コードの部分領域の表現を受け取り、部分領域位置決め層と部分領域データ層の中で情報コードを分離し、部分領域のデータ層から位置情報を復号化し、部分領域データ層から任意の非位置データを復号化するように装置されるプロセッサを備える。
【００２５】
製品、復号化方法、および復号化装置の優位点は、コーディング方法の説明、および以下の詳細な説明から明らかである。
【００２６】
ここで、本発明の添付概略図に関してさらに詳しく説明する。
【発明を実施するための最良の形態】
【００２７】
図１は、情報コードを使用できる情報管理システムの例を概略で示している。該システムは製品１、ペンスタイルユーザ装置２、携帯電話３、パーソナルコンピュータ（ＰＣ）４、遠隔装置５と、ローカル装置６とを備えている。
【００２８】
製品１には情報コード７と位置コード８が備えられている。情報コード７と位置コード８の各々の小さな部分が倍尺で概略して示されている。他の製品は情報コード７のみを有してよい。
【００２９】
情報コードは一次元の情報コードであり、ベース上に一次元で、この場合はベース上で水平方向にデータを記憶する。情報コードに記憶されるデータは、情報コード全体の上でユーザ装置２を水平方向に左から右にまたは右から左に移動することによって記録される。理論的には、ユーザ装置２を垂直方向に移動することでは追加情報は獲得されない。しかしながら、実際には、例えば情報コードがべース上で完全に再生されていない場合、あるいはユーザ装置による情報コードのイメージングが不完全または未完成である場合等、補足情報は、情報コードの異なる垂直位置にある同じデータを見るユーザ装置によって取得されてよい。
【００３０】
図５を参照してさらに詳細に後述するユーザ装置２は、情報コード７を記録し、復号化できる。ユーザ装置は、位置コード８からの位置情報も記録、復号化してよい。ユーザ装置２は復号化された情報を内部で処理し、復号化された情報に応えてユーザにフィードバックを行ってよい。それは携帯電話３、ＰＣ４またはローカル装置６等のローカル装置が、記録された情報の処理の少なくとも一部を管理する、および／または復号化された情報に応えるためにローカル装置と通信してもよい。ローカル装置は、記録／復号化された情報の転送のためにインターネット上のサーバ等の遠隔装置への通信インタフェースの機能を果たしてもよい。
【００３１】
情報コード７は異なる目的に提供できる。情報コードは、例えば位置コード８によって記録された手書きの情報の送信先のアドレスを定めてよい。あるいは、それは位置コード８を備える領域のレイアウトの記述を含んでよい。この領域は、例えばユーザによって記入される形式を構成してよく、情報コード７は、該形式の異なる領域からの情報をどのようにして解釈、および／または処理するのかについてユーザ装置２に命令を与える。例えば製品のすべてのサンプルに、全製品で同一の位置をコーディングする同一位置コード８（「コピー位置コード」とも呼ばれる）が備えられる場合に、情報コード７は製品の特定のサンプルの一意の識別を行ってもよい。
【００３２】
それが情報コード７と位置コード８の両方を正しく復号化できるために、ユーザ装置２は好ましくはコードを区別できなければならない。コード自体にコードの種類を示す一つの方法が後述される。しかしながら、第一に、情報コード７がどのように構築されてよいのかを示す例が図２に関して説明される。
【００３３】
図２に概略して示されているように、情報コード７は２つの個別の層―位置決め層２０とデータ層２１―から構成されている。
【００３４】
位置決め層２０は、一意の絶対位置を二次元でコーディングする。データ層２１はデータをコーディングする。情報コード７では、位置決め層２０とデータ層は互い２１の上で重畳され、その結果情報コードの各要素は位置決め層２０とデータ層２１の対応する要素の組み合わせを構成する。情報コードの要素はグラフィックシンボルでコーディングされる。
【００３５】
情報コードが復号化されると、位置層２０とデータ層２１は分離され、層は個別に復号化される。しかしながら、データ層２１を復号化するときに位置情報は使用される。
【００３６】
この種の情報コード７は、所定の長さの任意の部分列が系列内に一度だけ出現するという特性を有するウィンドウシーケンスによって構築できる。
【００３７】
数学分野の中では、前述された特性を有する最大長の系列はＤｅＢｒｕｉｊｎ系列として知られている。このような変化する長さの系列を生成するための方法は周知である。
【００３８】
表現「ウィンドウシーケンス」は、本願では前記特性を有する任意の系列に使用される。系列は、部分列（ウィンドウ）長に関して最大長である必要はない。それは、前述された特性を有する系列を繰り返すことにより得られる系列にも使用される。このような系列は周期的となり、繰り返される系列間の遷移を算入する、各期間に前述された特性を有する。
【００３９】
図２の例では、位置決め層２０は、長さｎのウィンドウシーケンスのインスタンスによって構築され、前記インスタンスは図２のｘ軸と平行する行で続く。データ層２１は同じウィンドウシーケンスのインスタンスにより構築され、前記インスタンスはｙ軸に平行した列で続く。意図された走査方向はｘ軸に沿ったものである。代わりに、位置決め層２０のウィンドウシーケンスのインスタンスがｙ軸に沿って続いてよく、データ層のウィンドウシーケンスのインスタンスがｘ軸に沿って続いてよいことは言うまでもない。例えばウィンドウシーケンス間の他の角度を用いる他の配列も使用されてよい。
【００４０】
ウィンドウシーケンスのインスタンスは必ずしも完全なウィンドウシーケンス期間で開始せずに、その一部のみで開始してよい。ウィンドウシーケンスインスタンスが開始する位置、つまりインデックスがインスタンスの循環性シフト、あるいは単にシフトと呼ばれる。行または列が完全ウィンドウシーケンス期間で開始する場合、循環性シフトはゼロである。
【００４１】
２つの隣接する行または列の２つのインスタンスのシフト間のｎを法とする差異が、インスタンス間の相対的な循環性シフト△ｉつまり相対シフトを規定する。
【００４２】
図２では、ウィンドウシーケンスのインスタンスは位置決め層２０とデータ層２１の中の棒２３として概略で示されている。位置決め層２０の中の二個の相対シフト△ｉと△ｉ＋１、およびデータ層２１の中の二個のシフトｓｉとｓｉ＋１も言外に示唆されている。図２が縮尺通りに作られていないことが強調される必要がある。
【００４３】
位置決め層２０は、ウィンドウシーケンスのインスタンスおよびその間の相対シフトによってコーディングされるｎ＊ｎの一意の絶対位置のある位置決め面を形成してよい。位置決め面は任意の長さまたは幅の位置決め層２０を作成するために繰り返されてよい。位置決め層２０は、位置決め情報に加えて、それが位置決め表面上で変化せず、それが位置決め層２１から任意の位置で復号化できるであろうためにそのように呼ばれるグローバル情報コードパラメータもコーディングしてよい。
【００４４】
データ層２０は、ウィンドウシーケンスのインスタンスの循環性シフトｓｉによってデータをコーディングする。それは、さらに詳しく後述されるように、情報コードの開始と終了を示す境界決定ゾーンもコーディングしてよい。
【００４５】
情報コード７を作成するために使用されるウィンドウシーケンスは任意のベースを有することができるが、それは好ましくは、４以下等の小さなベースとならなければならず、その結果それは複雑度の低いシンボルによってグラフィックにコーディングできるであろう。この例では、ベースは２である。したがって、位置決め層２１とデータ層２０の各々はバイナリ行列から成る。これらの二つのバイナリ行列が重畳されると、結合された行列の中の各々の位置が、一個は位置決め層から、一個はデータ層からの二個の関連ビットを有する。これらの二個のビットは、四つの異なる値0〜3を表す四つの異なる状態を有するシンボルを活用して製品の表面でコーディングできる。
【００４６】
図３は、名目位置３２つまりラスタポイントの関連でのそれらの各々の位置に応じて四個の異なる値を取ることができる、簡略なグラフィックシンボルつまりマーク３１によって、コーディングされる情報コードの小さな部分を示す。図３に見られるように、各シンボル３１はドット形状を有し、名目位置３２を基準にして四つの異なる方向の内の一つで距離３３変位されている。名目位置３２は好ましくは非可視または仮想のラスタまたはグリッドの中のラスタ線間の交点である。グリッド間隔３５は、通常０．３ｍｍであってよい。シンボルの値は変位の方向により決定される。各シンボル値０から３は位置決め層２０の中の位置のコーディングに寄与する1ビットと、データ層２１の中のデータのコーディングに寄与する1ビットに、つまりビットの組（０、０）、（０、１）および（１，１）に変換される。これは、情報コードが位置層とデータ層でどのように構築できるのかの一つの例である。
【００４７】
以下では、ｎ＝６３およびウィンドウ６の次に示すバイナリウィンドウシーケンスが情報コードを作成するために使用されると仮定する。
【００４８】
０，０，０，０，０，０，１，０，０，１，１，１，１，１，０，１，０，０，１，０，０，０，０，１，１，１，０，１，１，１，０，０，１，０，１，０，１，０，０，０，１，０，１，１，０，１，１，０，０，１，１，０，１，０，１，１，１，１，０，０，０，１，１
主系列Ｍとも呼ばれているこの系列は、６３を６３の位置決め面でコーディングするために使用されてよい。それは、６３の異なる位置で開始するために循環的にシフトできるため６３の異なる循環性シフトを有する。
【００４９】
位置決め層２０は、以下の方程式に従って該主系列Ｍのインスタンスをシフトすることにより作成され、
2008504598.tif 000003
ここで、Ｒは長さ６３の三重（ｔｒｉｎａｒｙ）［０，１，２］ウィンドウシーケンスであり、ｇは、前述されたグローバル情報コードパラメータをコーディングする、長さ７の三重［−１，０，１］系列であり、ｉは位置層での行番号を示すインデックスである。
【００５０】
また、行ｊがすべてのｊについて行ｊ＋６３と同一であることを保証するために、Ｒｉの和は６３を法としたゼロでなければならず、ｇｉの和は７を法としたゼロでなければならない。
【００５１】
系列Ｒは長さ６３およびウィンドウ４のウィンドウシーケンスである。この例では以下の系列が使用される。
【００５２】
０，０，０，０，１，０，０，０，２，０，０，１，１，０，０，１，２，０，０，２，１，０，０，２，２，０，１，０，１，１，１，０，１，２，１，０，２，１，２，０，１，２，２，０，２，２，２，１，１，１，１，２，１，１，２，２，１，２，１，２，２，２，２
系列Ｒは走査方向に直角のｙ軸の方向に続く。それにより情報コードが走査されたレベルでの検出が可能になるため、それはルーラシーケンスと呼ばれる。これにより同様にデータ層の循環性シフトでのデータのコーディング可能になる。このようなコーディングは、一つのシフトの誤差はそのシフトによってコーディングされるデータに影響を及ぼすのみであり、相対シフトでのデータのコーディングに比較して有利となる場合がある。
【００５３】
系列ｇは、７を法としてゼロに合計するアルファベット［−１，０，１］からの任意の七個のシンボルの系列である。３９５のこのような系列がある。一つの例が以下の系列である。
【００５４】
１，１、−１，０，１，−１，−１
したがって、それ以外の場合、同一の情報コードを区別する多くの方法がある。グローバルパラメータは、通常、情報コードの復号化を開始するときに直ちに使用可能でなければならない情報をコーディングするために使用されてよい。例えば、それは、いずれの符号化原則がデータ層のデータの背後にあるのかを記すために使用されてよい（例えば、ドットコードが全体的なメッセージまたは一連の短いインスタントメッセージと見なされるのであれば、データはサイクリックリダンダンシーチェック（ＣＲＣ）によって保護されているのか、存在する場合、埋め込まれているデータはいずれの種類のエラー訂正符号なのか等）。追加の例として、情報コードの方位（水平または垂直）がグローバルパラメータでコーディングされてよく、その結果ユーザは情報コードがいずれの方向に走査されるべきかについて即時フィードバックを得ることができる。
【００５５】
位置決め層２０をコーディングするために前記の方程式（１）および前記に示されるようなＲ系列とｇ系列を使用すると、位置決め層２０のインスタンス間のすべての循環性シフトが間隔［−４，４］に属する。位置決め層のすべての循環性シフトがこの間隔にあるという事実は、さらに後述されるように、情報コードを他の類似したコードから区別するために使用できる。
【００５６】
データ層２１は、ｙ軸に平行に続く主系列のインスタンスの循環性シフトｓｉによって実際のデータメッセージＤをコーディングする。
【００５７】
データコーディングは多くの異なった方法で実施されてよい。各主系列は６３の異なる循環性シフトを有する。したがって、例えば該循環性シフトは、６３の異なる文字またはデータの他の部分をコーディングするために使用できる。しかしながら、さらに詳しく後述されるようにデータＤとシフトｓｉ間で異なる変換またはマッピングを実施することも可能である。データＤは、印字エラーおよび／または読み取りエラーにさらに耐性を示すために、例えばＥＣＣ（誤り訂正符号）に埋め込まれてよい。
【００５８】
データ層２１はデータのみをコーディングしてよいが、それは情報コードの開始および／または終了を示す一つ以上の境界決定領域もコーディングしてよい。境界決定領域を有する優位点は、ユーザ装置が不完全な情報または二種類の異なるコードからの情報を記録するときに、それが背景または他のコードから情報コードへの遷移での混乱を回避できるという点である。
【００５９】
境界決定領域は、例えば実際の情報コードのグラフィックコーディングとは異なるグラフィックコーディングによって等、異なる方法で区画化されてよい。それらはまた、境界決定領域の符号化のために確保されている特定の循環性シフトによって区画されてもよい。この例では、循環性シフト１０と１１が、各々開始領域と停止領域の符号化のために確保されている。
【００６０】
情報コードによりコーディングされるメッセージデータＤは、さらに所定の長さのブロックに分割されてよい。ブロックへの分割は、データを循環性シフトにマッピングするのに役立つことがある。また、それは、データをいずれの時点で復号化モジュールから他のモジュールへ、あるいは外部装置に送信できるのかを決定するのを容易にする。
【００６１】
すべてのブロックはメッセージデータをコーディングしてよい。一個以上のブロックも、メッセージのヘッダ等の他のデータをコーディングするために使用できる。ヘッダは、例えばＣＲＣ（サイクリックリダンダンシーチェック）、ＥＣＣ、メッセージの長さを示す長さ情報、メッセージがどのような種類のデータを含むのかを示すメッセージタイプＩＤ、または通常、復号化プロセスを簡略化できるメッセージについての他の情報を備えてよい。
【００６２】
情報コードは、固定数のデータブロックのある所定の長さを有してよい、あるいはそれは選択可能な長さを有してよい。
【００６３】
ここで、符号化の例が説明される。Ｌ個のバイトの未処理データメッセージＤを考える。ＣＲＣ（２バイト）、５を法とする完全なメッセージの長さＬ（１バイト）、およびコンテンツタイプ（１バイト）を含むヘッダが、５を法とする長さゼロを得るためにゼロがパディングされるメッセージＤに付加される。メッセージデータＤは各々七個の循環性シフトを使用して符号化される５バイトのブロックに区分化される。これは、６１７＞２５６５であるため機能する。マッピングはベースの変化により行われる、つまり
2008504598.tif 000004
ここでは、ａｉ＜２５６、およびｂｉ＜６１であり、ａ１とｂ１は非負数である。
【００６４】
完全メッセージ文字列が図４に示されている。境界決定領域は各々少なくとも八個の循環性シフトから成り、ブロック０から５は各々七個の連続シフトを含む。データ層２１の中のウィンドウシーケンスのインスタンスの実際のシフトは、６３を法として１２が加えられるメッセージ文字列の対応する位置のシフトに従って選ばれ、それによって境界決定領域のために確保されていたシフト１０と１１を回避する。また、審美的な理由から、シフトは、６３を法として１０ｘの量でさらにシフトされてよく、ここで、ｘはシフトのｘ位置である。位置決め層２０は、第一のブロック（ヘッダブロック）の第一のシフトがｘ位置ゼロであるようにデータ層２１と位置合わせされなければならず、その結果ブロックの開始と終了は容易に決定できる。
【００６５】
情報コードは単独で、あるいは他のコードと組み合わせて使用されてよい。前記に示されたように、それは例えば、手書きの電子的な記録を可能にする位置コードと関連して使用できる。
【００６６】
前述された情報コードは、例えば米国第６，６６７，６９５号に説明されるような位置コードとともに使用されてよい。この位置コードは、一つがｘ座標をコーディングし、一つがｙ座標をコーディングする二つの位置決め層から構成されている。ｘ位置決め層は、ｙ軸に平行な列の中で前述された主系列Ｍであろうウィンドウシーケンスのインスタンスを配列することによって作成される。インスタンスは、インスタンス間の相対シフトがｘ軸に沿って続くウィンドウシーケンスを形成するように循環的にシフトされる。ｙ位置決め層は対応するように作成されるが、ウィンドウシーケンスのインスタンスはｘ軸に平行な行で続く。また、ｙ位置決め層のウィンドウシーケンスインスタンスは、ｙ軸に沿って続くウィンドウシーケンスを作成するために循環的にシフトされる。ｘ位置決め層とｙ位置決め層は、位置コードの各要素が両方の層の情報を含むように互いの上で重畳される。位置コードは、情報コードの前述された実施形態で使用されるのと同じシンボル、つまり、四つの方向の内の一つでグリッドポイントから変位されるドットによってグラフィックにコーディングできる。この位置コードでは、シンボルの任意の６＊６セットが一意の絶対位置を規定する。
【００６７】
位置コードはいわゆる「浮動型」から成る。つまり、所定数のシンボル、ここで、６＊６のシンボルを備える任意の部分的なデータが位置を規定し、該任意の部分的な領域内のシンボルの内の少なくともいくつかが複数の位置のコーディングに寄与する。それ以外に述べられると、任意の部分的な領域がグリッド間隔分上方、下方、左または右に移動すると、このようにして得られた任意の部分的な領域内のシンボルによって新しい位置が定められる。
【００６８】
位置コードは、ｘ位置決め層またはｙ位置決め層における循環性シフトが情報コードの位置決め層に使用される間隔［−４，４］に属さないように形成される。このようにして、情報コードと位置コードは循環性シフトによって区別できる。
【００６９】
情報コードは、ほぼ不定数の用途に使用でき、その内のいくつかのみをここで言及する。
【００７０】
情報コードは、例えば、ユーザ装置によって復号化され、ユーザ装置２の中または別の近傍の装置の中のスピーカによってユーザにもたらされる音声に合成できるであろう音声上の文字列をコーディングするために使用されてもよい。情報は情報コードを走査しているユーザではない別のユーザによって傾聴されるために遠隔装置に送信することもできるであろう。
【００７１】
情報コードは、音楽または一連の音色をコーディングしてもよい。このようなケースでは、情報コードは、例えば五線紙の上の音符に重畳されてよく、その結果、ユーザがユーザ装置で音符に従うことによって情報コードを走査するとき、対応する音色が、ユーザ装置または情報が転送されている別の装置から出力される。
【００７２】
さらに別の応用例は、子供のためのゲームを作成するために情報コードを使用することであろう。情報コードは、例えば、ユーザ装置によって従われる迷路として配列されてよい。ユーザは、迷路に正しく従うと、迷路を横断するときに収集されるメッセージの形式でフィードバックを得る。また、ユーザは、迷路内で間違った順番で行ったときにもフィードバックを得てよい。
【００７３】
情報コードは、さらに、例えば内部更新、ユーザ装置が相互作用する形式または他の文書のレイアウトについての情報、ユーザ装置によって与えられるフィードバックについての情報等の情報をユーザ装置にダウンロードするために使用することもできる。
【００７４】
情報コードは、位置コードによって記録される情報の送信先のアドレスを示すためにも使用できる。それは、例えば、文書のコンテンツの受け入れを確認するためにユーザによって署名される文書での署名欄を構成できるであろう。ユーザが文書に署名したとき、位置層に位置情報によって記録される該電子的に記録された署名はデータ層でコーディングされたアドレスに自動的に送信される。
【００７５】
図５は、図１の製品１で情報コード７を復号化するために使用することができ、図１の製品１の上の位置コード８から手書きの情報を記録するためにも適している図１のペンスタイルのユーザ装置２の実施形態を概略して示している。
【００７６】
ペン２は、それを通って画像が記録されるウインドゥまたは開口部２０４を形成するペン形状の筺体つまりシェル２０２を有する。該筺体はカメラシステム、電子システムおよび電源を含む。
【００７７】
カメラシステム２０６は、少なくとも一個の照明光源、レンズ装置、および光画像読取装置（図１では不図示）を備える。光源、適切には発光ダイオード（ＬＥＤ）またはレーザダイオードは、赤外線によってウインドゥ２０４を通して見ることができる領域の一部を照明する。見られている領域の画像は、レンズ装置によって画像読取装置に投射される。画像読取装置は、通常は約７０Ｈｚから１００Ｈｚの固定された速度で画像を捕捉するためにトリガされる二次元ＣＣＤまたはＣＭＯＳ検出器であってよい。
【００７８】
有利なことに、センサデバイス用電源は、代わりに主電源（不図示）によって置き換えられる、または補足されてよい電子２０８である。
【００７９】
電子システムは、メモリブロック２１２に接続される制御装置２１０を備える。制御装置２１０は、電子ペンの異なる機能に関与し、有利なことにＣＰＵ（「中央演算処理装置」）等の市販されているマイクロプロセッサによって、ＤＳＰ（「デジタル信号プロセッサ」）によって、またはＦＰＧＡ（「フィールドプログラマブルゲートアレイ」）または代替的にＡＳＩＣ（「特定用途向け集積回路」）等の何らかの他のプログラマブルロジックデバイス、個別のアナログコンポーネントとデジタルコンポーネント、あるいは上記の何らかの組み合わせによって実現できる。メモリブロック２１２は、好ましくは、ワーキングメモリ（例えば、ＲＡＭ）とプログラムコード、および固定記憶メモリ（フラッシュメモリ等の不揮発性メモリ）等の異なるタイプのメモリを備える。関連ソフトウェアはメモリブロック２１２に記憶され、制御装置２１０によって実行される。情報コードおよび位置コードを復号化するためのソフトウェアは、このようにしてメモリブロック２１２に記憶されてよく、制御装置２１０によって実行されてよい。
【００８０】
また、筺体２０２は、ユーザが、その上に置かれている通常の色素ベースのマーキングインクによって表面に物理的に書き込んだり、描画することを可能にするペン先２１４も持つ。ペン先２１４の中のマーキングインクは、適切なことに、電子ペンでの光電子検出との干渉を回避するために照射光に対して透明である。接触センサ２１６は、いずれの時点でペンが下ろされるのか（ペンダウン）、および／または持ち上げられるのか（ペンアップ）を検出するために、および要すれば作動力の決定を可能とするためにペン先２１４に動作可能なように接続される。接触センサ２１６の出力に基づき、カメラシステム２０６はペンダウンとペンアップの間で画像を捕捉するために制御される。
【００８１】
電子システムは、さらに、コンピュータ、携帯電話、ＰＡ、ネットワークサーバ等の近傍の装置または遠隔装置へのデータの通信のための通信インタフェース２１８を備える。通信インタフェース２１８は、このようにして有線または無線の短距離通信（例えば、ＵＳＢ、ＲＳ２３２、無線、赤外線送信、超音波送信、誘導結合等）にコンポーネントを、および／または通常はコンピュータ、電話、または衛星通信ネットワークを介して有線または無線の遠隔通信にコンポーネントを提供してよい。
【００８２】
ペンは、ユーザフィードバックのために選択的に活性化されるＭＭＩ（マンマシンインタフェース）も含んでよい。ＭＭＩはディスプレイ、インジケータランプ、バイブレータ、スピーカ等を含んでよい。
【００８３】
さらに、ペンは、それを活性化および／または制御できるようにする一個以上のボタンを含んでよい。
【００８４】
ユーザ装置２の前述された実施形態は言うまでもなく例に過ぎない。ユーザ装置２は、意図された機能に応じて別の外観または他のコンポーネントを有してよい。
【００８５】
ユーザ装置２の前述された実施形態はさらに、位置コード上での移動中のペンの位置を連続して記録することによって図１の製品１上の位置コード８に対して行われるペンストロークを電子的に記録するため、および情報コード７から情報を記録するための両方に使用されることを目的とする。
【００８６】
ユーザ装置２が情報コード７を記録するためだけに使用されなければならない場合、それは違うように設計されてよい。それは例えばペン先を必要としない。
【００８７】
ユーザ装置が情報コード７を記録するために使用されるときには、ユーザは任意の高さで情報コードのｘ軸に沿ってそれを移動する。移動中、ユーザ装置は情報コードの部分領域の画像を記録する。部分領域は情報コードの全高をカバーする必要はなく、その一部だけをカバーする必要がある。走査速度に応じて、画像は走査方向でさらに多くまたはさらに少ない重複コンテンツを有する。しかしながら、位置決め層に応じて、実質的には重複は必要とされないが、データメッセージが完全に再現可能であるために、データ層のウィンドウシーケンスのあらゆるインスタンスの一部が記録される必要がある。
【００８８】
次に、一つの画像の中に見られる情報コードの一部の復号化がどのように実施されてよいのかを示す例が、図６に関して説明される。
【００８９】
復号化は、ユーザ装置２で、さらに詳細には、ステップ６００情報コードの画像を受信する復号化モジュールで実施される。画像は情報コードの部分領域の表現である。それは、例えば１０×１０個のシンボルつまりドットを備えてよい。
【００９０】
次のステップ６０２では、画像は異なるドットの値を求めるために処理される。この処理は、前述された米国第６，６６７，６９５号に開示されている位置コードに関して対応するように実施されてよく、データ層はｘ座標層に相当し、位置決め層はｙ座標層に相当する。したがって、それはここでは詳しく説明しない。あえて言えば、処理はドットの局所化、視野の決定、およびグリッドの決定を含んでよく、それは一つが位置決め層の結像された部分に相当し、一つがデータ層の結像された部分に相当する二つのオフセット確率行列（ＯＰＭ）を生じさせる。ＯＰＭは、ドットごとに、および該ドットが表現してよい値ごとに、該ドットがその値を表現する確率を示す。これらのステップをどのようにして実施できるのかについての追加詳細は、すべてが本願の譲受人に譲渡されている、例えば米国第２００３／００５３６９９号、米国第２００３／０１８９６６４号、米国第２００３／０１１８２３３号、米国２００２／００４４１３８号、米国第６，６６７，６９５号、米国第６，７３２，９２７号、米国２００３／０１２２８５５号、米国第２００３／０１２８１９４号に記載されている。
【００９１】
情報コードの画像は主系列のコーディングされた部分列を含む。長さ６の各部分列は主系列内に所定の位置を有する。この位置が該部分列の系列値を構成する。ＯＰＭが確立されると、画像の中で見られる異なる部分列の系列値がテーブル検索または主系列に対する相関によって決定されてよい。系列値は、もしそれが正しい回転から０度、９０度、１８０度または２７０度回転される場合にユーザ装置２にとっては同じに見える情報コードの回転を決定するために使用されてよい。さらに詳細には、回転は、四つすべての回転（０度、９０度、１８０度および２７０度）で位置決め層とデータ層の両方から８ビットの部分列を研究し、主系列Ｍには８ビットの部分列は逆転または反転されて現れないという事実を活用することによって決定されてよい。この種のコードに回転がどのようにして決定されてよいのかを示すさらに詳しい説明は米国第６，７３２，９２７号に記載されている。
【００９２】
ユーザは幾分かは情報コード上で直線に沿ってユーザ装置を移動させると仮定できるため、回転は、画像ごとに決定されてよいが、必ずしも決定される必要はない。したがって、回転を決定するステップは図６のフローチャートには含まれていない。
【００９３】
いったん正しい回転が決定されると、いずれ層が位置決め層であり、いずれの層がデータ層であるのかについても明確となることが言及されるべきである。
【００９４】
系列値が求められると、ユーザ装置は、それらの系列値の差異を求めることによって、位置決め層の画像の中に見られる部分列間の相対的な循環性シフトを決定する。位置決め層の主系列の二つの隣接するインスタンスの中の対応する水平位置から取られる長さ６の二つの部分列の二つの系列値の差異は、これらの二つの隣接するインスタンスの循環性シフト、つまり相対的な循環性シフトの場合と同じであることが理解される。
【００９５】
続くステップ６０６では、位置決め層の相対的な循環性シフトの内の一つ以上が位置コードで使用される相対的な循環性シフトのグループに属するのか、あるいは情報コードで使用される相対的な循環性シフトのグループに属するのかについてチェックされる。所定数の相対的なシフトが第一のグループに属する場合、該コードは位置コードであり、復号化は位置コードに使用される復号化アルゴリズムに従って進む、ステップ６０８と結論される。
【００９６】
それ以外の場合、コードは情報コードであり、処理は、ルーラ値Ｒｉと、復号化された相対的な循環性シフトに対応するグローバル情報コード値ｇｉが前記方程式（１）に従って求められるステップ６１０に進むと仮定される。
【００９７】
七個のグローバル情報コード値ｇｉは、ともに、第一の画像の情報コードが復号化されるとすぐにユーザ装置が使用できるであろうグローバル情報コードパラメータを定める。
【００９８】
ルーラシーケンスは、ウィンドウ４であるウィンドウシーケンスであり、その結果ルーラシーケンスの長さ４の部分列が知られるとすぐに、ルーラシーケンスＲ内の、したがってｙ軸に沿った位置が知られるため、四個のルーラ値Ｒｉはともにｙ座標を定める。いったんｙ座標が確立されると、異なる行（異なるｙ座標）の主系列のシフトが知られるため、ステップ６１２、ｘ座標はｘ方向に続く主系列の長さ６の部分列からも求めることができる。
【００９９】
次に、ステップ６１４では、データ層のデータが決定される。ｙ座標は既知であるため、データ層の画像部分領域内の異なる部分列のシフトを決定できる。シフトにはタイムスタンプが押され、対応するｘ位置によれば、ユーザ装置のメモリ内のデータ構造に記憶されてよい、ステップ６１６。シフトが１０または１１である場合、境界決定領域が検出された旨を示す信号が、別のモジュールまたは図７に示されるプロセス等のプロセスに出力されてよい。
【０１００】
ユーザ装置が画像内のすべての情報、あるいは許容できる品質である画像のそれらの部分内の少なくともすべての情報を復号化しようとすることが留意されなければならない。
【０１０１】
次の画像は対応するように処理される。しかしながら、次の画像は、サイズが、ユーザが情報コード上でユーザ装置をどのくらい速く動かすかに依存する前記画像との部分的な重複とともに記録されてよい。したがって、ｘ方向の特定の位置の場合、シフトはすでに記憶されている可能性がある。その場合、重複はすでに記憶されているシフトの正しさをチェックするために使用できる。また、画像の質が異なる可能性がある。その場合、最高の画質から生じるシフトを選択できる。複数の画像が重複するコンテンツを有する場合、過半数の票は、いずれのシフトが最終的にデータ構造に記憶されなければならないのかを決定するために使用できる。
【０１０２】
図７では、情報コード全体の復号化が概略で示されている。最初に、ステップ７００では、画像は、それが情報コードの上で移動される間にユーザ装置２によって記録され、各々の画像の中の情報コードは図６に関して前述されているとおりに復号化される。
【０１０３】
次に、ステップ７０２では、情報コードの開始と終了を記す、二つの境界決定領域が検出されたか否かがチェックされる。検出されない場合は、チェックが繰り返される。
【０１０４】
情報コードの両方の境界決定領域とも検出されたときには、情報コードのすべてのブロックが連続して記録されたか否かがチェックされる、ステップ７０４。タイムスタンプはこの目的に使用されてよい。一つ以上のブロックが欠けている場合、エラー信号が出力される、ステップ７０６。情報コードが、ユーザ装置が設計されているより高速の走査速度で操作されると、ブロックは、例えば見失われる可能性がある。すべてのブロックが正しく記録された場合には、プロセスは、記録されたシフトがヘッダデータとメッセージデータＤに変換されるステップ７０８に進み、ヘッダデータはメッセージデータＤの復号化に使用される。続くステップ７１０では、ＣＲＣがチェックされる。正しくない場合、エラー信号が出力される、ステップ７１２。それ以外の場合、復号化されたメッセージデータＤは、ＥＥＣが使用された場合には、おそらくアンパック（解凍、復元）された後に、追加の処理およびユーザへのフィードバックのためにユーザ装置内の別のモジュールに報告されてよい。
【０１０５】
復号化プロセスの前記の例は、メッセージデータＤが報告される前に、情報コードはその全体が複合化されなければならないと仮定している。他のタイプの情報コードでは、各データブロックのメッセージデータは、ブロックが全体として受信されるとすぐに報告される。使用されるメッセージデータ報告の種類は、例えば、グローバル情報コードパラメータで示されてよい。
【０１０６】
情報コードの復号化はユーザ装置で、あるいは情報コードの画像の送信先である別の装置で行われてよい。それは、ソフトウェアまたはハードウェアで、あるいはこの目的のために設計されたその組み合わせで実施されてよい。復号化ソフトウェアはコンピュータ読取可能媒体の上に、あるいはユーザ装置２の中のメモリブロック２１２内等のコンピュータメモリ内の内部に記憶されてよい。それは電気的な搬送波信号上で搬送されてもよい。
【０１０７】
情報コードのコーディングは、図８の流れずに概略して示されている。
【０１０８】
最初に、情報コードのグローバル情報コードパラメータがステップ８００で選択される。
【０１０９】
次に、ステップ８０２では、位置決め層２０は、前記の方程式（１）に従って主系列のインスタンスをシフトすることによって、所定の主系列Ｍと所定のルーラシーケンスＲを活用してコーディングされる。
【０１１０】
次に、データ層２１がコーディングされる。このステップ８０４は、前記の方程式（２）に従って５バイトデータのグループを七個の循環性シフトのブロックに変換することと、第一の所定のシフトを有するインスタンスのある開始領域、ヘッダデータに応じてシフトを有するインスタンスのあるヘッダブロック、メッセージデータに応じてシフトを有するインスタンスのあるメッセージブロック、および第二の所定のシフトを有するインスタンスのある停止領域を形成するために主系列のインスタンスをシフトすることとを備える。
【０１１１】
最後に、位置層２０とデータ層２１は、例えば変位されたドットによってコーディングされる情報コード７に結合される、ステップ８０６。異なる値をコーディングするために違うように回転される、例えばスラッシュ、あるいは異なる値をコーディングするために異なる形式またはサイズまたは色を有する他のマーク等の他のタイプのグラフィックシンボルも使用されてよい。例えば、情報コードが浮動型ではない場合等に、さらに複雑なシンボルも使用されてよい。
【０１１２】
情報コードは、プリンタによって処理され、例えば用紙上に印字できるであろうフォーマットで直ちに、または後にフォーマットされてよい。それは、ベースに他の方法で適用することもできる。
【０１１３】
情報コードのコーディングは、ソフトウェア内またはハードウェア内、あるいはその任意の組み合わせで実施されてよい。復号化ソフトウェアについて前述された内容は、コーディングソフトウェアにも当てはまる。
【０１１４】
前述された内容は、それに従った主系列のインスタンスが位置決め層とデータ層内で異なる方向に続く、情報コードの実施形態である。しかしながら、同じ方向に続くインスタンスを有することも考えられる。このような実施形態によれば、データはデータ層のウィンドウシーケンスのインスタンスの間の相対的な循環性シフト内でコーディングされるであろう。また、ルーラシーケンスは、位置決め層のウィンドウシーケンスのインスタンス間の循環性シフトでコーディングされるであろう。この実施形態では、情報コードの正しい回転は、ｘ方向とｙ方向両方で情報コードを読み取ることによって決定することができ、主系列のインスタンスが統計に基づいていずれの方向に続くのかを確立できる。
【０１１５】
前述された実施形態では、位置層は周期的な６３＊６３位置決め面をコーディングする。情報コードの読み取り方向で実質的に無限となるであろう位置決め面を作成する一つの方法は、追加の位置情報を提供し、位置決め面の異なる期間を区別するために各データブロック内に一個以上のビットを確保することであろう。データブロックが追加の位置情報を含んでいる旨の表示はグローバル情報コードパラメータでコーディングできる。情報コードが読み取り方向の非周期的な位置情報を含む場合、情報コードの複数の走査が可能になり、その結果第一の走査で欠けている情報の部分を次の走査で記録できる。
【０１１６】
周期的な位置決め面を用いると、複数の走査も可能になる。情報の各部の位置は、周期的な６３＊６３の位置決め面のある前述された例では、６３を法として既知である。一個の情報に複数の代替の位置がある場合、正しい位置はマッチングにより決定できる。
【０１１７】
前述の実施形態では、位置層の相対的なシフトが、意図されている走査方向に直角な位置を示すルーラシーケンスＲ、およびグローバル情報パラメータシーケンスｇをコーディングする。別の実施形態では、位置層の相対的なシフトはルーラシーケンスのみをコーディングしてよい。さらに別に実施形態では、相対的なシフトは非位置情報のみをコーディングしてよい。このケースでは、データ層のデータは相対的なシフトでコーディングされてよい。
【図面の簡単な説明】
【０１１８】
【図１】情報コードを使用できるシステムを示す。
【図２】情報コードに結合される位置決め層とデータ層を示す。
【図３】情報コードの中の要素がどのようにしてグラフを使ってコーディングできるかの例を示す。
【図４】情報コードがどのようにして構造化されてよいかを示す。
【図５】情報コードを復号化するために使用できるユーザ装置を示す。
【図６】情報コードの部分領域の画像がどのようにして処理されてよいのかを描くフローチャートである。
【図７】メッセージがどのようにして情報コードから復号化されてよいのかを描くフローチャートである。
【図８】情報コードがどのようにしてコーディングされてよいのかを描くフローチャートである。
【図１】
2008504598.tif 000005
【図２】
2008504598.tif 000006
【図３】
2008504598.tif 000007
【図４】
2008504598.tif 000008
【図５】
2008504598.tif 000009
【図６】
2008504598.tif 000010
【図７】
2008504598.tif 000011
【図８】
2008504598.tif 000012
【国際調査報告】
2008504598.tif 000013
2008504598.tif 000014
2008504598.tif 000015
2008504598.tif 000016
2008504598.tif 000017
2008504598.tif 000018
2008504598.tif 000019
2008504598.tif 000020
2008504598.tif 000021
2008504598.tif 000022
2008504598.tif 000023
2008504598.tif 000024
2008504598.tif 000025
2008504598.tif 000026
2008504598.tif 000027
2008504598.tif 000028
2008504598.tif 000029
2008504598.tif 000030
2008504598.tif 000031
2008504598.tif 000032