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