JP4996461B2 - データのコーディングおよび復号化 - Google Patents
データのコーディングおよび復号化 Download PDFInfo
- Publication number
- JP4996461B2 JP4996461B2 JP2007518009A JP2007518009A JP4996461B2 JP 4996461 B2 JP4996461 B2 JP 4996461B2 JP 2007518009 A JP2007518009 A JP 2007518009A JP 2007518009 A JP2007518009 A JP 2007518009A JP 4996461 B2 JP4996461 B2 JP 4996461B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- layer
- information code
- information
- code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 claims description 47
- 125000004122 cyclic group Chemical group 0.000 claims description 40
- 239000011159 matrix material Substances 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims 2
- 230000001419 dependent effect Effects 0.000 claims 1
- 230000015654 memory Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 238000007667 floating Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000000737 periodic effect Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000005286 illumination Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000007639 printing Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 101000579647 Penaeus vannamei Penaeidin-2a Proteins 0.000 description 1
- 241000839309 Thesea Species 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
Images
Description
【0001】
本発明は、概して任意の非位置データの記憶のための情報コードに関する。さらに詳細には、本発明はデータを記憶する方法、データ記憶製品、データを復号化する方法、およびデータを復号化するためのデバイスに関する。
【背景技術】
【0002】
任意のデータを、例えば一次元バーコードまたは二次元バーコード等のコードによってコンパクトにベースに記憶できることは周知である。
【0003】
本願の譲受人に譲渡される国際公開第01/71653号パンフレットは、データの記憶のためのコードを開示している。該コードは、該数列の中では少なくとも所定の長さの任意の部分列が一度だけしか現れないという特性を有する数列によって構築される。この特性を有する数列は、以下でウィンドウシーケンスと呼ぶ。
【0004】
国際公開第01/71653号パンフレットに開示されている該コードは、行列の列にウィンドウシーケンス(数列)の部分を配列することにより形成されている。各々の数列部分は、ウィンドウシーケンスの中に明確な位置を有する。データは隣接する数列部分のウィンドウシーケンス位置の差異によってコード化される。ウィンドウシーケンス位置の該差異はまた、コードが読み取られることを意図される方向におけるウィンドウシーケンスの形式で、ルーラをコード化する。このルーラによって、コードから読み取られるデータを正しい順序で配列し、完全なメッセージが記録されることを確実にすることができる。
【0005】
前記から明らかであるように、コードに記憶されるメッセージは、ユーザ装置でコードの部分領域の複数の画像を記録し、該複数の画像の中のデータとルーラ情報を復号化し、データを正しい順序で並べることによってメッセージを再構築するためにルーラ情報を使用することによって、再現することができる。コード行列が水平軸に沿って走査されることを意図されると仮定すると、該走査は行列の垂直軸上のどのレベルでも実施でき、復号化される情報はすべてのレベルで同じになる。
【特許文献1】
国際公開第01/71653号
【特許文献2】
米国特許第5,852,434号
【特許文献3】
米国特許第6,570,104号
【特許文献4】
米国特許第6,663,008号
【特許文献5】
米国特許第6,674,427号
【特許文献6】
米国特許第6,667,695号
【特許文献7】
米国第2004/0085287号
【特許文献8】
米国特許第5,442,147号
【特許文献9】
米国第2003/0053699号
【特許文献10】
米国第2003/0189664号
【特許文献11】
米国第2003/0118233号
【特許文献12】
米国2002/0044138号
【特許文献13】
米国特許第6,732,927号
【特許文献14】
米国2003/0122855号
【特許文献15】
米国第2003/0128194号
【発明の開示】
【発明が解決しようとする課題】
【0006】
本発明の一つの目的は、任意の非位置データをベース上にコード化された形式で記憶するための代替コードを提供することである。
【0007】
この目的は、独立クレームに主張されているように、データを記憶する方法、データ記憶製品、データを復号化する方法、データを復号化するためのデバイスによって完全にまたは部分的に達成される。
【0008】
本発明の一つの態様によれば、データを記憶する方法は、位置決め層で位置情報をコード化することと、それとは別のデータ層で任意の非位置データをコード化することと、該位置決め層と該データ層とを組み合わせて、ベース上に配列される情報コードを形成することとを備える。
【0009】
位置情報とデータとを異なるコード層に分離することによって、多くの優位点が得られる。さらに後述されるように、位置決め層は、位置情報のみではなく他の情報をコード化するために使用することができる。それは、例えば、2つの層で位置情報をコード化する類似の位置コードから前記情報コードを区別するインジケータを、コード化するために使用できる。それは、また、位置決め層の任意の位置で復号化可能である情報コードパラメータを、コード化するために使用することもできる。さらに、データは他の方法で、および例えば国際公開第01/71653号パンフレットにおける場合よりさらに高いデータ密度でコード化されてよい。全体的に見ると、結果として生じる情報コードは、より良く構造化されており、様々な種類の情報をコード化するためにさらに容易に適応できるであろう。
【0010】
位置決め層およびデータ層は、様々な方法で組み合わされてよい。これらの層は、相互に重ね合わされて、異なる層からの重なる要素が、共通のコード要素によりコード化されてよい。これらの層は、相互にインターリーブされて、異なる層からの要素が互いから変位され、重ならないようにされてもよい。
【0011】
情報コードは、様々な方法でベース上に配列できる。それは、例えばベース上に可視印字インクまたは不可視印字インクでインク印字されてよく、あるいは異なる磁気特性、化学的特性、位相的特性、または他の特性をベースの異なる部分に割り当てることによってベースに付けられてよい。
【0012】
位置決め層によってコード化される位置情報は一次元でもよいし、二次元でもよい。二次元の代替策はデータのさらに洗練されたコード化を可能にし、さらに高いデータ密度を可能にする。二次元の位置情報により、一方では情報コードの意図された走査方向で位置を決定し、他方ではそれに対して直角な位置を決定することができる。走査方向での位置を知っていることで、情報コードを、ほとんど重複することなく、あるいは事実上まったく重複することなく、複数の画像によって記録、または読み取ることができる。さらに、記録される情報の完全性を容易にチェックすることができる。画像コンテンツの相関をとる必要はなく、位置情報が、正しい順序でデータを配列するために使用される。意図された走査方向に直角の方向での位置を知っていることで、既知のコード以外の方法でデータをコード化できる。
【0013】
位置情報は、様々な方法でコード化されてよい。位置コードは、例えばタイル表示型であってよく、ベースは個別の重複しない部分領域に分けられ、その各々が位置を規定する。このタイプの位置コードは、例えばSekendurに対する米国第5,852,434号に開示されている。位置コードはまた、浮動型であってもよく、位置をコード化するために必要とされる最小のサイズと同じサイズを有するベース上での任意の部分領域が位置を規定する。浮動型の位置コードでは、部分的に重複する部分領域が、このようにして異なる位置を規定する。典型的には、浮動型の位置コードで位置を規定する各部分領域が複数の単純なシンボルを備えるのに対し、タイル表示型の位置コードで位置を規定する部分領域は複数の単純なシンボルまたは単一のさらに複雑なシンボルのどちらかを備えてよい。
【0014】
浮動型の位置コードは、一つ以上のウィンドウシーケンスによって実現できる。浮動型の位置コードの例は、例えば、すべてが本願の譲受人に譲渡されている米国第6,570,104号、米国6,663,008号、米国第6,674,427号、米国第6,667,695号に、およびさらにWangに対する米国第2004/0085287号、Burnsに対する米国第5,442,147号に記載されている。
【0015】
データ層のデータも、タイル表示型コードまたは浮動型コードでコード化されてよい。浮動型コードのケースでは、それは例えば一つ以上のウィンドウシーケンスによってコード化されてよい。
【0016】
位置情報および/またはデータは、例えば、行列の中にまとめられる(wrapped into a matrix)単一の長いウィンドウシーケンスによって、あるいは行列の中に配列されるより短いウィンドウシーケンスの複数の完全なまたは部分的なインスタンスによってコード化されてよい。
【0017】
位置決め層とデータ層の両方とも、例えばウィンドウシーケンスの循環的にシフトされる複数のインスタンスから行列を形成することによって設けられてよく、循環性シフトの大きさが、コード化されるべき位置情報またはデータに依存する。
【0018】
第一の位置決め層と第二のデータ層を有する情報コードは、情報コードの第一の位置決め層によって排他的に使用される特定の座標領域を確保することによって、第一の位置層と第二の位置層を有する類似した外観の位置コードから区別できる。
【0019】
ウィンドウシーケンスの循環的にシフトされるインスタンスが位置決め層で使用される場合、循環性シフトまたは隣接するインスタンス間の相対的な循環性シフトは、各々、前記位置コードにより使用されない循環性シフトと相対的な循環性シフトの特定のセットに制限できる。
【0020】
グローバル情報コードパラメータも位置決め層でコード化されてよい。グローバルというのは、ここでは、パラメータが位置決め層の任意の位置で復号化可能であり、それが位置決め層全面に渡って同じである、という意味である。それは他の種類の情報から独立したものであり、したがって復号化装置によって即座に解釈されてよい。グローバル情報コードパラメータは、例えば情報コードの循環性シフトまたは相対的な循環性シフトでコード化されてよい。
【0021】
本発明の追加の態様によれば、製品はベースと、該ベース上の情報コードとを備え、前記情報コードは位置情報をコード化する位置決め層と任意の非位置データをコード化するデータ層とを備える。
【0022】
製品は、情報コードを付けることができるベースを備える任意の製品であってよい。様々な製品の例は詳細な説明に示されている。
【0023】
本発明の別の態様によれば、情報コードからデータを復号化する方法は、該情報コードの部分領域の表現を受け取るステップと、該部分領域における情報コードを部分領域位置決め層と部分領域データ層とに分離するステップと、部分領域位置決め層から位置情報を復号化し、部分領域データ層から任意の非位置データを復号化するステップとを備える。
【0024】
本発明のさらに別の態様によれば、情報コードを復号化するためのデバイス(装置)は、情報コードの部分領域の表現を受け取り、該部分領域における情報コードを部分領域位置決め層と部分領域データ層とに分離し、部分領域のデータ層から位置情報を復号化し、部分領域データ層から任意の非位置データを復号化するように構成されるプロセッサを備える。
【0025】
製品、復号化方法、および復号化装置の優位点は、コード化方法の説明、および以下の詳細な説明から明らかである。
【0026】
ここで、本発明の添付概略図に関してさらに詳しく説明する。
【発明を実施するための最良の形態】
【0027】
図1は、情報コードを使用できる情報管理システムの例を概略で示している。該システムは製品1、ペンスタイルユーザ装置2、携帯電話3、パーソナルコンピュータ(PC)4、遠隔装置5と、ローカル装置6とを備えている。
【0028】
製品1には情報コード7と位置コード8が備えられている。情報コード7と位置コード8の各々の小さな部分が倍尺で概略して示されている。他の製品は情報コード7のみを有してよい。
【0029】
情報コードは一次元の情報コードであり、ベース上に一次元で、この場合はベース上で水平方向に、データを記憶する。情報コードに記憶されるデータは、情報コード全体の上でユーザ装置2を水平方向に左から右にまたは右から左に移動することによって記録される。理論的には、ユーザ装置2を垂直方向に移動することでは追加情報は獲得されない。しかしながら、実際には、例えば情報コードがベース上で完全に再生されていない場合、あるいはユーザ装置による情報コードのイメージングが不完全または未完成である場合等、補足情報は、情報コードの異なる垂直位置にある同じデータを見るユーザ装置によって取得されてよい。
【0030】
図5を参照してさらに詳細に後述するユーザ装置2は、情報コード7を記録し、復号化できる。ユーザ装置は、位置コード8からの位置情報も記録、復号化してよい。ユーザ装置2は復号化された情報を内部で処理し、復号化された情報に応えてユーザにフィードバックを行ってよい。それは、携帯電話3、PC4またはローカル装置6等のローカル装置が記録された情報の処理の少なくとも一部を行うためにおよび/または復号化された情報に応えるために、該ローカル装置と通信してもよい。ローカル装置は、記録/復号化された情報の転送のためにインターネット上のサーバ等の遠隔装置への通信インタフェースの機能を果たしてもよい。
【0031】
情報コード7は様々な目的に提供できる。情報コードは、例えば位置コード8によって記録された手書きの情報の送信先のアドレスを定めてよい。あるいは、それは位置コード8を備える領域のレイアウトの記述を含んでよい。この領域は、例えばユーザによって記入されるフォームを構成してよく、情報コード7は、該フォームの異なる領域からの情報をどのようにして解釈、および/または処理するのかについてユーザ装置2に命令を与える。例えば製品のすべてのサンプルに、全製品で同一の位置をコード化する同一位置コード8(「コピーされた位置コード」とも呼ばれる)が備えられる場合に、情報コード7は製品の特定のサンプルの一意の識別を行ってもよい。
【0032】
ユーザ装置2は、情報コード7と位置コード8の両方を正しく復号化できるために、好ましくはこれらのコードを区別できなければならない。コード自体にコードの種類を示すという一つの方法が後述される。しかしながら、まず、情報コード7がどのように構築されてよいのかを示す例が図2に関して説明される。
【0033】
図2に概略して示されているように、情報コード7は2つの別々の層―位置決め層20とデータ層21―から構成されている。
【0034】
位置決め層20は、一意の絶対位置を二次元でコード化する。データ層21はデータをコード化する。情報コード7では、位置決め層20とデータ層21は互いに重ね合わされ、その結果情報コードの各要素は位置決め層20とデータ層21の対応する要素の組み合わせを構成する。情報コードの要素はグラフィックシンボルでコード化される。
【0035】
情報コードが復号化されると、位置決め層20とデータ層21は分離され、層は個別に復号化される。しかしながら、データ層21を復号化するときに位置情報は使用される。
【0036】
この種の情報コード7は、所定の長さの任意の部分列が数列内に一度だけ出現するという特性を有するウィンドウシーケンスによって構築できる。
【0037】
数学分野の中では、前述された特性を有する最大長の数列はDeBruijn数列として知られている。このような変化する長さの数列を生成するための方法は周知である。
【0038】
表現「ウィンドウシーケンス」は、本願では前記特性を有する任意の数列に使用される。数列は、部分列(ウィンドウ)長に関して最大長である必要はない。それは、前述された特性を有する数列を繰り返すことにより得られる数列にも使用される。このような数列は周期的となり、繰り返される数列の各周期において、繰り返される数列間の変わり目を含めて、前述された特性を有する。
【0039】
図2の例では、位置決め層20は、長さnのウィンドウシーケンスのインスタンスによって構築され、前記インスタンスは図2のx軸と平行する行で続く。データ層21は同じウィンドウシーケンスのインスタンスにより構築され、前記インスタンスはy軸に平行した列で続く。意図された走査方向はx軸に沿ったものである。代わりに、位置決め層20のウィンドウシーケンスのインスタンスがy軸に沿って続いてよく、データ層のウィンドウシーケンスのインスタンスがx軸に沿って続いてよいことは言うまでもない。例えばウィンドウシーケンス間の他の角度を用いる他の配列も使用されてよい。
【0040】
ウィンドウシーケンスのインスタンスは必ずしも完全なウィンドウシーケンス周期で開始せずに、その一部のみで開始してよい。ウィンドウシーケンスのインスタンスが開始する位置つまりインデックスが、インスタンスの循環性シフト、あるいは単にシフトと呼ばれる。行または列が完全なウィンドウシーケンス周期で開始する場合、循環性シフトはゼロである。
【0041】
2つの隣接する行または列の2つのインスタンスのシフト間のnを法とする差異が、インスタンス間の相対的な循環性シフト△iつまり相対シフトを規定する。
【0042】
図2では、ウィンドウシーケンスのインスタンスは位置決め層20とデータ層21の中の棒23として概略で示されている。位置決め層20の中の二個の相対シフト△iと△i+1、およびデータ層21の中の二個のシフトsiとsi+1も示唆されている。図2が縮尺通りに作られていないことが強調される必要がある。
【0043】
位置決め層20は、ウィンドウシーケンスのインスタンスおよびその間の相対シフトによってコード化されるn*nの一意の絶対位置のある位置決め面を形成してよい。位置決め面は任意の長さまたは幅の位置決め層20を作成するために繰り返されてよい。位置決め層20は、位置決め情報に加えて、それが位置決め表面上で変化せず、それが位置決め層20から任意の位置で復号化できるであろうためにそのように呼ばれるグローバル情報コードパラメータも、コード化してよい。
【0044】
データ層21は、ウィンドウシーケンスのインスタンスの循環性シフトsiによってデータをコード化する。それは、さらに詳しく後述されるように、情報コードの開始と終了を示す境界決定ゾーンもコード化してよい。
【0045】
情報コード7を作成するために使用されるウィンドウシーケンスは任意の基数を有することができるが、それは好ましくは、4以下等の小さな基数とする方がよく、その結果それは複雑度の低いシンボルによってグラフィックにコード化できるであろう。この例では、基数は2である。したがって、位置決め層20とデータ層21の各々はバイナリ行列から成る。これらの二つのバイナリ行列が重ね合わされると、組み合わされた行列の中の各々の位置が、一個は位置決め層から、一個はデータ層からの二個の関連ビットを有する。これらの二個のビットは、四つの異なる値0〜3を表す四つの異なる状態を有するシンボルを活用して製品の表面でコード化できる。
【0046】
図3は、簡略なグラフィックシンボルつまりマーク31によってコード化された情報コードの小さな部分を示す。マーク31は、基準位置32つまりラスタポイントに対する各々の位置に応じて、0〜3の四個の異なる値を取ることができる。図3に見られるように、各シンボル31はドット形状を有し、基準位置32に対して四つの異なる方向の内の一つで距離33変位されている。基準位置32は、好ましくは非可視または仮想のラスタまたはグリッドの中のラスタ線間の交点である。グリッド間隔35は、通常0.3mmであってよい。シンボルの値は変位の方向により決定される。各シンボル値0〜3は位置決め層20における位置のコード化に寄与する1ビットと、データ層21におけるデータのコード化に寄与する1ビットとに、つまりビットの組(0、0)、(0、1)、(1、0)および(1、1)に、変換される。これは、情報コードが位置決め層とデータ層でどのように構築できるのかの一つの例である。
【0047】
以下では、次に示す、長さn=63およびウィンドウ6のバイナリ(binary)ウィンドウシーケンスが、情報コードを作成するために使用されると仮定する。
【0048】
0,0,0,0,0,0,1,0,0,1,1,1,1,1,0,1,0,0,1,0,0,0,0,1,1,1,0,1,1,1,0,0,1,0,1,0,1,0,0,0,1,0,1,1,0,1,1,0,0,1,1,0,1,0,1,1,1,1,0,0,0,1,1
主数列Mとも呼ばれるこの数列は、63*63の位置決め面をコード化するために使用されてよい。それは、63の異なる位置で開始するように循環的にシフトできるため、63の異なる循環性シフトを有する。
【0049】
位置決め層20は、以下の方程式に従って該主数列Mのインスタンスをシフトすることにより作成される。
ここで、Rは、長さ63のトリナリ(trinary)[0,1,2]のウィンドウシーケンスであり、gは、前述されたグローバル情報コードパラメータをコード化する、長さ7のトリナリ(trinary)[−1,0,1]のシーケンスであり、iは、位置決め層での行番号を示すインデックスである。
【0050】
また、行jがすべてのjについて行j+63と同一であることを保証するために、Riの和は63を法としたゼロでなければならず、giの和は7を法としたゼロでなければならない。
【0051】
数列Rは長さ63およびウィンドウ4のウィンドウシーケンスである。この例では以下の数列が使用される。
【0052】
0,0,0,0,1,0,0,0,2,0,0,1,1,0,0,1,2,0,0,2,1,0,0,2,2,0,1,0,1,1,1,0,1,2,1,0,2,1,2,0,1,2,2,0,2,2,2,1,1,1,1,2,1,1,2,2,1,2,1,2,2,2,2
数列Rは走査方向に直角のy軸の方向に続く。それにより情報コードがどのレベルで走査されたかの検出が可能になるため、それはルーラシーケンスと呼ばれる。これにより同様にデータ層の循環性シフトでのデータのコード化が可能になる。このようなコード化は、一つのシフトの誤差はそのシフトによってコード化されるデータに影響を及ぼすのみであり、相対シフトでのデータのコード化に比較して有利となる場合がある。
【0053】
シーケンスgは、合計すると7を法としたゼロとなるアルファベット[−1,0,1]からの任意の七個のシンボルの系列である。395のこのような系列がある。一つの例が以下の系列である。
【0054】
1,1、−1,0,1,−1,−1
したがって、ほかの点では同一の情報コードを区別する、多くの方法がある。グローバルパラメータは、通常、情報コードの復号化を開始するときに直ちに使用可能でなければならない情報をコード化するために使用されてよい。例えば、それは、いずれの符号化原則がデータ層のデータの背後にあるのかを記すために使用されてよい(例えば、ドットコードが全体的なメッセージと見なされるべきかそれとも一連の短いインスタントメッセージと見なされるべきか、データはサイクリックリダンダンシーチェック(CRC)によって保護されているのか、存在する場合、いずれの種類のエラー訂正符号(ECC)にデータが埋め込まれているのか等)。追加の例として、情報コードの方位(水平または垂直)がグローバルパラメータでコード化されてよく、その結果ユーザは情報コードがいずれの方向に走査されるべきかについて即時フィードバックを得ることができる。
【0055】
位置決め層20をコード化するために前記の方程式(1)および前記に示されるようなR数列とg系列を使用すると、位置決め層20のインスタンス間のすべての循環性シフトが区間[−4,4]に属する。位置決め層のすべての循環性シフトがこの区間にあるという事実は、さらに後述されるように、情報コードを他の類似したコードから区別するために使用できる。
【0056】
データ層21は、y軸に平行に続く主数列のインスタンスの循環性シフトsiによって実際のデータメッセージDをコード化する。
【0057】
データのコード化は多くの異なった方法で実施されてよい。各主数列は63の異なる循環性シフトを有する。したがって、例えば該循環性シフトは、63の異なる文字または他のデータをコード化するために使用できる。しかしながら、さらに詳しく後述されるようにデータDとシフトsi間で異なる変換またはマッピングを実施することも可能である。データDは、印字エラーおよび/または読み取りエラーにさらに耐性を示すために、例えばECC(誤り訂正符号)に埋め込まれてよい。
【0058】
データ層21はデータのみをコード化してよいが、それは情報コードの開始および/または終了を示す一つ以上の境界決定領域もコード化してよい。境界決定領域を有する優位点は、ユーザ装置が不完全な情報または二種類の異なるコードからの情報を記録するときに、それが背景または他のコードから情報コードへの遷移での混乱を回避できるという点である。
【0059】
境界決定領域は、例えば実際の情報コードのグラフィックコーディングとは異なるグラフィックコーディングによって等、様々な方法で区別されてよい。それらはまた、境界決定領域の符号化のために確保されている特定の循環性シフトによって区別されてもよい。この例では、循環性シフト10と11が、各々開始領域と停止領域の符号化のために確保されている。
【0060】
情報コードによりコード化されるメッセージデータDは、さらに所定の長さのブロックに分割されてよい。ブロックへの分割は、データを循環性シフトにマッピングするのに役立つことがある。また、それは、データをいずれの時点で復号化モジュールから他のモジュールへ、あるいは外部装置に送信できるのかを決定するのを容易にする。
【0061】
すべてのブロックはメッセージデータをコード化してよい。一個以上のブロックは、メッセージのヘッダ等の他のデータをコード化するために使用することもできる。ヘッダは、例えばCRC(サイクリックリダンダンシーチェック)、ECC、メッセージの長さを示す長さ情報、メッセージがどのような種類のデータを含むのかを示すメッセージタイプID、またはメッセージについての他の情報であって通常はそれにより復号化プロセスを簡略化できる情報を、備えてよい。
【0062】
情報コードは、固定数のデータブロックのある所定の長さを有してよい。あるいは情報コードは、選択可能な長さを有してよい。
【0063】
ここで、符号化の例が説明される。L個のバイトの未処理データメッセージDを考える。CRC(2バイト)、5を法とする完全なメッセージの長さL(1バイト)、およびコンテンツタイプ(1バイト)を含むヘッダが、5を法とする長さゼロを得るためにゼロがパディングされるメッセージDに付加される。メッセージデータDは各々七個の循環性シフトを使用して符号化される5バイトのブロックに区分化される。これは、617>2565であるため機能する。マッピングは基数の変化により行われる、つまり
ここでは、ai<256、およびbi<61であり、a1とb1は非負数である。
【0064】
完全メッセージ文字列が図4に示されている。境界決定領域は各々少なくとも八個の循環性シフトから成り、ブロック0から5は各々七個の連続シフトを含む。データ層21の中のウィンドウシーケンスのインスタンスの実際のシフトは、63を法として12が加えられるメッセージ文字列の対応する位置のシフトに従って選ばれ、それによって境界決定領域のために確保されていたシフト10と11を回避する。また、審美的な理由から、シフトは、63を法として10xの量でさらにシフトされてよく、ここで、xはシフトのx位置である。位置決め層20は、第一のブロック(ヘッダブロック)の第一のシフトがx位置ゼロであるようにデータ層21と位置合わせされる方がよく、その結果ブロックの開始と終了は容易に決定できる。
【0065】
情報コードは単独で、あるいは他のコードと組み合わせて使用されてよい。前記に示されたように、それは例えば、手書きの電子的な記録を可能にする位置コードと関連して使用できる。
【0066】
前述された情報コードは、例えば米国第6,667,695号に説明されるような位置コードとともに使用されてよい。この位置コードは、一つがx座標をコード化し、一つがy座標をコード化する二つの位置決め層から構成されている。x位置決め層は、前述された主数列Mのようなウィンドウシーケンスのインスタンスを、y軸と平行な列方向に配列することによって、作成される。インスタンスは、インスタンス間の相対シフトがx軸に沿って続くウィンドウシーケンスを形成するように循環的にシフトされる。y位置決め層は対応するように作成されるが、ウィンドウシーケンスのインスタンスはx軸に平行な行方向で続く。また、y位置決め層のウィンドウシーケンスのインスタンスは、y軸に沿って続くウィンドウシーケンスを作成するために循環的にシフトされる。x位置決め層とy位置決め層は、位置コードの各要素が両方の層の情報を含むように互いに重ね合わされる。位置コードは、情報コードの前述された実施形態で使用されるのと同じシンボル、つまり、四つの方向の内の一つでグリッドポイントから変位されるドットによってグラフィックにコード化できる。この位置コードでは、シンボルの任意の6*6セットが一意の絶対位置を規定する。
【0067】
位置コードはいわゆる「浮動型」から成る。つまり、所定数のシンボル、ここでは6*6のシンボルを備える任意の部分的な領域が位置を規定し、該任意の部分的な領域内のシンボルの内の少なくともいくつかが複数の位置のコード化に寄与する。言い換えると、任意の部分的な領域がグリッド間隔分上方、下方、左または右に移動されると、このようにして得られた任意の部分的な領域内のシンボルによって新しい位置が定められる。
【0068】
位置コードは、x位置決め層またはy位置決め層における循環性シフトが情報コードの位置決め層に使用される区間[−4,4]に属さないように形成される。このようにして、情報コードと位置コードは循環性シフトによって区別できる。
【0069】
情報コードは、ほぼ不定数の用途に使用でき、その内のいくつかのみをここで言及する。
【0070】
情報コードは、例えば、ユーザ装置によって復号化され、ユーザ装置2の中または別の近傍の装置の中のスピーカによってユーザにもたらされる音声に合成できるであろう音声上の文字列をコード化するために使用されてもよい。情報は情報コードを走査しているユーザではない別のユーザによって傾聴されるために遠隔装置に送信することもできるであろう。
【0071】
情報コードは、音楽または一連の音色をコード化してもよい。このようなケースでは、情報コードは、例えば五線紙の上の音符に重畳されてよく、その結果、ユーザがユーザ装置で音符に従うことによって情報コードを走査するとき、対応する音色が、ユーザ装置または情報が転送されている別の装置から出力される。
【0072】
さらに別の応用例は、子供のためのゲームを作成するために情報コードを使用することであろう。情報コードは、例えば、ユーザ装置によって従われる迷路として配列されてよい。ユーザは、迷路に正しく従うと、迷路に沿って移動するときに収集されるメッセージの形式でフィードバックを得る。また、ユーザは、迷路内で間違って曲がったときにもフィードバックを得てよい。
【0073】
情報コードは、さらに、例えば内部更新や、ユーザ装置が相互作用するフォームまたは他の文書のレイアウトについての情報や、ユーザ装置によって与えられるフィードバックについての情報等の情報を、ユーザ装置にダウンロードするために使用することもできる。
【0074】
情報コードは、位置コードによって記録される情報の送信先のアドレスを示すためにも使用できる。それは、例えば、文書のコンテンツの受け入れを確認するためにユーザによって署名される文書での署名欄を構成できるであろう。ユーザが文書に署名したとき、位置層に位置情報によって記録される該電子的に記録された署名は、データ層でコード化されたアドレスに自動的に送信される。
【0075】
図5は、図1の製品1で情報コード7を復号化するために使用することができ、図1の製品1の上の位置コード8から手書きの情報を記録するためにも適している図1のペンスタイルのユーザ装置2の実施形態を概略して示している。
【0076】
ペン2は、それを通って画像が記録されるウインドゥまたは開口部204を形成するペン形状の筺体つまりシェル202を有する。該筺体はカメラシステム、電子システムおよび電源を含む。
【0077】
カメラシステム206は、少なくとも一個の照明光源、レンズ装置、および光画像読取装置(図1では不図示)を備える。光源、適切には発光ダイオード(LED)またはレーザダイオードは、赤外線によってウインドゥ204を通して見ることができる領域の一部を照明する。見られている領域の画像は、レンズ装置によって画像読取装置に投射される。画像読取装置は、通常は約70Hzから100Hzの固定された速度で画像を捕捉するためにトリガされる二次元CCDまたはCMOS検出器であってよい。
【0078】
有利なことに、センサデバイス用電源は、代わりに主電源(不図示)によって置き換えられる、または補足されてよい電子208である。
【0079】
電子システムは、メモリブロック212に接続される制御装置210を備える。制御装置210は、電子ペンの異なる機能に関与し、有利なことにCPU(「中央演算処理装置」)等の市販されているマイクロプロセッサによって、DSP(「デジタル信号プロセッサ」)によって、またはFPGA(「フィールドプログラマブルゲートアレイ」)または代替的にASIC(「特定用途向け集積回路」)等の何らかの他のプログラマブルロジックデバイス、個別のアナログコンポーネントとデジタルコンポーネント、あるいは上記の何らかの組み合わせによって実現できる。メモリブロック212は、好ましくは、ワーキングメモリ(例えば、RAM)とプログラムコード、および固定記憶メモリ(フラッシュメモリ等の不揮発性メモリ)等の異なるタイプのメモリを備える。関連ソフトウェアはメモリブロック212に記憶され、制御装置210によって実行される。情報コードおよび位置コードを復号化するためのソフトウェアは、このようにしてメモリブロック212に記憶されてよく、制御装置210によって実行されてよい。
【0080】
また、筺体202は、ユーザが、その上に置かれている通常の色素ベースのマーキングインクによって表面に物理的に書き込んだり、描画したりすることを可能にするペン先214も持つ。ペン先214の中のマーキングインクは、適切なことに、電子ペンでの光電子検出との干渉を回避するために照射光に対して透明である。接触センサ216は、いずれの時点でペンが下ろされるのか(ペンダウン)、および/または持ち上げられるのか(ペンアップ)を検出するために、およびそうしたければ作動力の決定を可能とするために、ペン先214に動作可能なように接続される。接触センサ216の出力に基づき、カメラシステム206はペンダウンとペンアップの間で画像を捕捉するために制御される。
【0081】
電子システムは、さらに、コンピュータ、携帯電話、PA、ネットワークサーバ等の近傍の装置または遠隔装置へのデータの通信のための通信インタフェース218を備える。通信インタフェース218は、したがって有線または無線の短距離通信(例えば、USB、RS232、無線、赤外線送信、超音波送信、誘導結合等)のためのコンポーネントを、および/または通常はコンピュータ、電話、または衛星通信ネットワークを介する有線または無線の遠隔通信のためのコンポーネントを提供してよい。
【0082】
ペンは、ユーザフィードバックのために選択的に作動されるMMI(マンマシンインタフェース)も含んでよい。MMIはディスプレイ、インジケータランプ、バイブレータ、スピーカ等を含んでよい。
【0083】
さらに、ペンは、それを起動および/または制御できるようにする一個以上のボタンを含んでよい。
【0084】
ユーザ装置2の前述された実施形態は言うまでもなく例に過ぎない。ユーザ装置2は、意図された機能に応じて別の外観または他のコンポーネントを有してよい。
【0085】
ユーザ装置2の前述された実施形態はさらに、位置コード上での移動中のペンの位置を連続して記録することによって図1の製品1上の位置コード8上で行われるペンストロークを電子的に記録するため、および情報コード7から情報を記録するための両方に使用されることを目的とする。
【0086】
ユーザ装置2が情報コード7を記録するためだけに使用される場合、それは違うように設計されてよい。それは例えばペン先を必要としない。
【0087】
ユーザ装置が情報コード7を記録するために使用されるときには、ユーザは任意の高さで情報コードのx軸に沿ってそれを移動する。移動中、ユーザ装置は情報コードの部分領域の画像を記録する。部分領域は情報コードの全高をカバーする必要はなく、その一部だけをカバーする必要がある。走査速度に応じて、画像は走査方向で多少の重複コンテンツを有する。しかしながら、位置決め層があるため、実質的には重複は必要とされないが、データメッセージが完全に再現可能であるために、データ層のウィンドウシーケンスのあらゆるインスタンスの一部が記録される必要はある。
【0088】
次に、一つの画像の中に見られる情報コードの一部の復号化がどのように実施されてよいのかを示す例が、図6に関して説明される。
【0089】
復号化は、ユーザ装置2で、さらに詳細には、ステップ600で情報コードの画像を受信する復号化モジュールで実施される。画像は情報コードの部分領域の表現である。それは、例えば10×10個のシンボルつまりドットを備えてよい。
【0090】
次のステップ602では、画像は異なるドットの値を求めるために処理される。この処理は、前述された米国第6,667,695号に開示されている位置コードに関して対応するように実施されてよく、データ層はx座標層に相当し、位置決め層はy座標層に相当する。したがって、それはここでは詳しく説明しない。あえて言えば、処理はドットの局所化、視野の決定、およびグリッドの決定を含んでよく、それは二つのオフセット確率行列(OPM)を生じさせる。二つのOPMの内、一つが位置決め層の画像化された部分に相当し、一つがデータ層の画像化された部分に相当する。OPMは、ドットごとに、および該ドットが表現してよい値ごとに、該ドットがその値を表現する確率を示す。これらのステップをどのようにして実施できるのかについての追加詳細は、すべてが本願の譲受人に譲渡されている、例えば米国第2003/0053699号、米国第2003/0189664号、米国第2003/0118233号、米国2002/0044138号、米国第6,667,695号、米国第6,732,927号、米国2003/0122855号、米国第2003/0128194号に記載されている。
【0091】
情報コードの画像は主数列のコード化された部分列を含む。長さ6の各部分列は主数列内に所定の位置を有する。この位置が該部分列の数列値を構成する。OPMが確立されると、画像の中で見られる異なる部分列の各々の数列値がテーブル検索または主数列に対する相関によって決定されてよい。数列値は、もしそれが正しい回転から0度、90度、180度または270度回転される場合にユーザ装置2にとっては同じに見える情報コードの回転を決定するために使用されてよい。さらに詳細には、回転は、四つすべての回転(0度、90度、180度および270度)で位置決め層とデータ層の両方から8ビットの部分列を調べ、主数列Mには8ビットの部分列は逆転または反転されて現れないという事実を活用することによって決定されてよい。この種のコードに回転がどのようにして決定されてよいのかを示すさらに詳しい説明は米国第6,732,927号に記載されている。
【0092】
ユーザは情報コード上で多少は真っ直ぐな線に沿ってユーザ装置を移動させると仮定できるため、回転は、画像ごとに決定されてもよいが、必ずしも決定される必要はない。したがって、回転を決定するステップは図6のフローチャートには含まれていない。
【0093】
いったん正しい回転が決定されると、いずれの層が位置決め層であり、いずれの層がデータ層であるのかについても明確となることが言及されるべきである。
【0094】
数列値が求められると、ユーザ装置は、それらの数列値の差異を求めることによって、位置決め層の画像の中に見られる部分列間の相対的な循環性シフトを決定する。位置決め層の主数列の二つの隣接するインスタンスの中の対応する水平位置から取られる長さ6の二つの部分列の二つの数列値の差異は、これらの二つの隣接するインスタンスの循環性シフトの差、つまり相対的な循環性シフトと同じであることが理解される。
【0095】
続くステップ606では、位置決め層の相対的な循環性シフトの内の一つ以上が位置コードで使用される相対的な循環性シフトのグループに属するのか、あるいは情報コードで使用される相対的な循環性シフトのグループに属するのかについてチェックされる。所定数の相対的なシフトが第一のグループに属する場合、該コードは位置コードであり、復号化は位置コードに使用される復号化アルゴリズムに従って進むと、ステップ608で結論される。
【0096】
それ以外の場合、コードは情報コードであり、処理は、復号化された相対的な循環性シフトに対応するルーラ値Riおよびグローバル情報コード値giが、前記方程式(1)に従って求められるステップ610に進むと仮定される。
【0097】
七個のグローバル情報コード値giは、ともに、最初の画像の情報コードが復号化されるとすぐにユーザ装置が使用できるであろうグローバル情報コードパラメータを定める。
【0098】
ルーラシーケンスは、ウィンドウ4であるウィンドウシーケンスであり、その結果ルーラシーケンスの長さ4の部分列が知られるとすぐに、ルーラシーケンスR内の、したがってy軸に沿った位置が知られるため、四個のルーラ値Riは、ともに、y座標を定める。いったんy座標が確立されると、異なる行(異なるy座標)の主数列のシフトが知られるため、ステップ612において、x方向に続く主数列の長さ6の部分列からx座標を求めることもできる。
【0099】
次に、ステップ614では、データ層のデータが決定される。y座標は既知であるため、データ層の画像部分領域内の異なる部分列の各々のシフトを決定できる。ステップ616では、これらシフトにタイムスタンプが押され、対応するx位置に従い、ユーザ装置のメモリ内のデータ構造に記憶されてよい。シフトが10または11である場合、境界決定領域が検出された旨を示す信号が、別のモジュールまたは図7に示されるプロセス等のプロセスに出力されてよい。
【0100】
ユーザ装置が画像内のすべての情報、あるいは少なくとも許容できる品質である画像の部分内のすべての情報を復号化しようとすることが留意されなければならない。
【0101】
次の画像は、対応する方法で処理される。しかしながら、次の画像は、先行する画像との部分的な重複とともに記録される可能性があり、その重複のサイズは、ユーザが情報コード上でユーザ装置をどのくらい速く動かすかに依存する。したがって、x方向の特定の位置の場合、シフトはすでに記憶されている可能性がある。その場合、重複はすでに記憶されているシフトの正しさをチェックするために使用できる。また、画像の質が異なる可能性がある。その場合、最高の画質から生じるシフトを選択できる。幾つか(三つ以上)の画像が重複するコンテンツを有する場合、いずれのシフトが最終的にデータ構造に記憶されなければならないのかを決定するために、多数決が使用できる。
【0102】
図7では、情報コード全体の復号化が概略で示されている。最初に、ステップ700では、画像は、ユーザ装置2が情報コードの上で移動される間にユーザ装置2によって記録され、各々の画像の中の情報コードは図6に関して前述されているとおりに復号化される。
【0103】
次に、ステップ702では、情報コードの開始と終了を記す、二つの境界決定領域が検出されたか否かがチェックされる。検出されない場合は、チェックが繰り返される。
【0104】
情報コードの両方の境界決定領域とも検出されたときには、ステップ704で、情報コードのすべてのブロックが連続して記録されたか否かがチェックされる。タイムスタンプはこの目的に使用されてよい。一つ以上のブロックが欠けている場合、ステップ706で、エラー信号が出力される。情報コードが、ユーザ装置が設計されているより高速の走査速度で操作されると、ブロックは、例えば見失われる可能性がある。すべてのブロックが正しく記録された場合には、プロセスは、記録されたシフトがヘッダデータとメッセージデータDに変換されるステップ708に進み、ヘッダデータはメッセージデータDの復号化に使用される。続くステップ710では、CRCがチェックされる。正しくない場合、ステップ712で、エラー信号が出力される。それ以外の場合、復号化されたメッセージデータDは、EECが使用された場合にはおそらくアンパック(解凍、復元)された後に、追加の処理およびユーザへのフィードバックのためにユーザ装置内の別のモジュールに報告されてよい。
【0105】
復号化プロセスの前記の例は、メッセージデータDが報告される前に、情報コードはその全体が復号化されるものと仮定している。他のタイプの情報コードでは、各データブロックのメッセージデータは、ブロックが全体として受信されるとすぐに報告される。使用されるメッセージデータ報告の種類は、例えば、グローバル情報コードパラメータで示されてよい。
【0106】
情報コードの復号化はユーザ装置で、あるいは情報コードの画像の送信先である別の装置で行われてよい。それは、ソフトウェアまたはハードウェアで、あるいはこの目的のために設計されたその組み合わせで実施されてよい。復号化ソフトウェアはコンピュータ読取可能媒体の上に、あるいはユーザ装置2の中のメモリブロック212内等のコンピュータメモリ内の内部に記憶されてよい。それは電気的な搬送波信号上で搬送されてもよい。
【0107】
情報コードのコード化は、図8の流れ図に概略して示されている。
【0108】
最初に、情報コードのグローバル情報コードパラメータがステップ800で選択される。
【0109】
次に、ステップ802では、位置決め層20は、前記の方程式(1)に従って主数列のインスタンスをシフトすることによって、所定の主数列Mと所定のルーラシーケンスRを活用してコード化される。
【0110】
次に、データ層21がコード化される。このステップ804は、前記の方程式(2)に従って5バイトデータのグループを七個の循環性シフトのブロックに変換することと、第一の所定のシフトを有するインスタンスのある開始領域、ヘッダデータに応じてシフトを有するインスタンスのあるヘッダブロック、メッセージデータに応じてシフトを有するインスタンスのあるメッセージブロック、および第二の所定のシフトを有するインスタンスのある停止領域を形成するために主数列のインスタンスをシフトすることとを備える。
【0111】
最後に、ステップ806において、位置層20とデータ層21は組み合わされ、例えば変位されたドットによってコード化される情報コード7となる。異なる値をコード化するために違うように回転される例えばスラッシュや、あるいは異なる値をコード化するために異なる形またはサイズまたは色を有する他のマーク等、他のタイプのグラフィックシンボルも使用されてよい。例えば、情報コードが浮動型ではない場合等に、さらに複雑なシンボルも使用されてよい。
【0112】
情報コードは、プリンタによって処理できて例えば用紙上に印字できるであろうフォーマットに、直ちにまたは後にフォーマットされてよい。それは、他の方法でベースに適用することもできる。
【0113】
情報コードのコード化は、ソフトウェア内またはハードウェア内、あるいはその任意の組み合わせで実施されてよい。復号化ソフトウェアについて前述された内容は、コード化ソフトウェアにも当てはまる。
【0114】
前述された内容は、それに従った主数列のインスタンスが位置決め層とデータ層内で異なる方向に続く、情報コードの実施形態である。しかしながら、同じ方向に続くインスタンスを有することも考えられる。このような実施形態によれば、データはデータ層のウィンドウシーケンスのインスタンス間の相対的な循環性シフトにコード化されるであろう。また、ルーラシーケンスは、位置決め層のウィンドウシーケンスのインスタンス間の循環性シフトでコード化されるであろう。この実施形態では、情報コードの正しい回転は、x方向とy方向両方で情報コードを読み取ることによって決定することができ、主数列のインスタンスが統計に基づいていずれの方向に続くのかを確立できる。
【0115】
前述された実施形態では、位置決め層は周期的な63*63位置決め面をコード化する。情報コードの読み取り方向で実質的に無限となるであろう位置決め面を作成する一つの方法は、各データブロック内に一個以上のビットを確保して、位置決め面の異なる周期を区別するための追加の位置情報を提供することであろう。データブロックが追加の位置情報を含んでいる旨の表示はグローバル情報コードパラメータでコード化できる。情報コードが読み取り方向の非周期的な位置情報を含む場合、情報コードの複数の走査が可能になり、その結果初めの走査で欠けている情報の部分を次の走査で記録できる。
【0116】
周期的な位置決め面を用いると、複数の走査も可能になる。各個の情報の位置は、周期的な63*63の位置決め面のある前述された例では、63を法として既知である。一個の情報に複数の代替の位置がある場合、正しい位置はマッチングにより決定できる。
【0117】
前述の実施形態では、位置決め層の相対的なシフトが、意図されている走査方向に直角な位置を示すルーラシーケンスR、およびグローバル情報パラメータシーケンスgをコード化する。別の実施形態では、位置決め層の相対的なシフトはルーラシーケンスのみをコード化してよい。さらに別に実施形態では、相対的なシフトは非位置情報のみをコード化してよい。このケースでは、データ層のデータは相対的なシフトでコード化されてよい。
【図面の簡単な説明】
【0118】
【図1】情報コードを使用できるシステムを示す。
【図2】組み合わされて情報コードとなる位置決め層とデータ層を示す。
【図3】情報コードの中の要素がどのようにしてグラフを使ってコード化できるかの例を示す。
【図4】情報コードがどのようにして構造化されてよいかを示す。
【図5】情報コードを復号化するために使用できるユーザ装置を示す。
【図6】情報コードの部分領域の画像がどのようにして処理されてよいのかを描くフローチャートである。
【図7】メッセージがどのようにして情報コードから復号化されてよいのかを描くフローチャートである。
【図8】情報コードがどのようにしてコード化されてよいのかを描くフローチャートである。
Claims (27)
- データをコード化する方法であって、
位置決め層に位置情報をコード化することと、
データ層に任意の非位置データをコード化することと、
該位置決め層と該データ層とを組み合わせて、ベース上に配列される情報コードを形成することとを含み、
前記位置決め層と前記データ層が重ね合わされて、前記位置決め層中の要素と前記データ層中の要素が重なり、重なった要素が、前記情報コードにおける共通のコード要素によりコード化されるものであることを特徴とする方法。 - 前記位置決め層によってコード化される位置情報が、二次元に関連するものである請求項1に記載の方法。
- 前記データ層にデータをコード化することが、ウィンドウシーケンスの複数のインスタンスを循環的にシフトして行列を形成することにより行われ、該循環性シフトの大きさがコード化される該データに依存するものである請求項1または2に記載の方法。
- 該複数のインスタンスの複数の循環性シフトに、該データをコード化するものである請求項3に記載の方法。
- 前記位置決め層に位置情報をコード化することが、ウィンドウシーケンスの複数のインスタンスを循環的にシフトして行列を形成することにより行われ、該循環性シフトの大きさがコード化される該位置情報に依存するものである請求項1から4のいずれか一項に記載の方法。
- 該インスタンス間の相対的な循環性シフトに、第一の次元に関連する該位置情報をコード化するものである請求項5に記載の方法。
- 前記位置決め層の行列の該インスタンス間の相対的な循環性シフトに、ルーラウィンドウシーケンスをコード化することにより、第一の次元に関連する該位置情報をコード化するものである請求項5に記載の方法。
- 該インスタンス間の相対的な循環性シフトが、前記位置決め層の行列を形成するために使用される該ウィンドウシーケンスの該インスタンスのあり得るすべての相対的な循環性シフトの所定の部分集合に属するように、前記位置決め層の行列の中の該ウィンドウシーケンスの前記インスタンスを循環的にシフトするものである請求項5から7のいずれか一項に記載の方法。
- 前記位置決め層にグローバル情報コードパラメータをコード化することをさらに含み、
該グローバル情報コードパラメータは、前記位置決め層のどこにおいても復号化可能である請求項1から8のいずれか一項に記載の方法。 - 前記位置決め層の行列の中の該ウィンドウシーケンスの該インスタンス間の相対的な循環性シフトに、グローバル情報コードパラメータをコード化することをさらに含み、
該グローバル情報コードパラメータは、前記位置決め層のどこにおいても復号化可能である請求項5に記載の方法。 - 前記データ層にデータをコード化することが、所定のサイズの複数のデータ層ブロックにデータをコード化することである請求項1から10のいずれか一項に記載の方法。
- 前記データ層に少なくとも一つの境界決定領域をコード化することをさらに含み、
該境界決定領域内で該ウィンドウシーケンスの該インスタンスを循環的にシフトすることを、所定の固定された循環性シフトによって行う請求項3に記載の方法。 - 前記情報コードが一次元の情報コードである請求項1から12のいずれか一項に記載の方法。
- 該位置情報と該データの両方ともがウィンドウシーケンスを使用することによってコード化される請求項1から13のいずれか一項に記載の方法。
- コンピュータに請求項1から14のいずれか一項に記載の方法を実行させるためのプログラム命令を備えるコンピュータプログラム。
- ベースと該ベース上の情報コードとを備える製品であって、
前記情報コードは、位置情報がコード化された位置決め層と、任意の非位置データがコード化されたデータ層とを含み、
前記位置決め層と前記データ層が重ね合わされて、前記位置決め層中の要素と前記データ層中の要素が重なり、重なった要素が、前記情報コードにおける共通のコード要素によりコード化されていることを特徴とする製品。 - 前記製品が、前記情報コードとは別に、位置コードを備えており、
前記情報コードが、ウィンドウシーケンスの複数のインスタンスを循環的にシフトして形成される少なくとも一つの行列を備え、隣接するインスタンス間の相対的な循環性シフトが、前記情報コードの前記インスタンスのあり得るすべての相対的な循環性シフトの第一の部分集合に排他的に属し、
前記位置コードが、ウィンドウシーケンスの複数のインスタンスを循環的にシフトして形成される少なくとも一つの行列を備え、隣接するインスタンス間の相対的な循環性シフトが、前記位置コードの前記インスタンスのあり得るすべての相対的な循環性シフトの第二の部分集合に排他的に属し、
前記第一の部分集合と第二の部分集合が相互に排他的である請求項16に記載の製品。 - 情報コードを復号化する方法であって、
前記情報コードは、位置情報がコード化された位置決め層と、任意の非位置データがコード化されたデータ層とを含み、
前記位置決め層と前記データ層が重ね合わされて、前記位置決め層中の要素と前記データ層中の要素が重なり、重なった要素が、前記情報コードにおける共通のコード要素によりコード化されており、
前記方法は、
前記情報コードの部分領域の表現を受け取ることと、
前記部分領域における情報コードを部分領域位置決め層と部分領域データ層とに分離することと、
該部分領域位置決め層から位置情報を復号化することと、
該部分領域データ層から任意の非位置データを復号化することと
を含むことを特徴とする方法。 - 該部分領域位置決め層からの位置情報を使用することにより、該部分領域データからデータが復号化される請求項18に記載の方法。
- 前記データ層が、ウィンドウシーケンスの複数のインスタンスからなる行列を備え、前記複数のインスタンスは循環的にシフトされており、
前記データを復号化することは、該ウィンドウシーケンスの前記部分領域データ層と関連付けられているインスタンスの該循環性シフトを決定することにより行われる請求項18に記載の方法。 - 該循環性シフトが、該部分領域位置決め層からの位置情報によって決定される請求項20に記載の方法。
- 該部分領域位置決め層から復号化される位置情報と関連して、該部分領域データ層から復号化されるデータを記憶することをさらに含む請求項18から21のいずれか一項に記載の方法。
- 受け取った前記部分領域が境界決定領域を含んでいると判断することをさらに含み、
前記データ層が、ウィンドウシーケンスの複数のインスタンスからなる行列を備え、前記複数のインスタンスは循環的にシフトされており、
該ウィンドウシーケンスの前記部分領域データ層と関連付けられているインスタンスの該循環性シフトが、前記境界決定領域を示す所定の循環性シフトであることを検出することによって、前記判断が行われる請求項18から22のいずれか一項に記載の方法。 - 前記位置決め層が、ウィンドウシーケンスの複数のインスタンスからなる行列を備え、前記複数のインスタンスは循環的にシフトされており、
第一の方向に関連する前記位置情報を復号化することが、該ウィンドウシーケンスの前記部分領域位置決め層と関連付けられているインスタンス間の相対的な循環性シフトを決定することにより行われる請求項18から23のいずれか一項に記載の方法。 - グローバル情報コードパラメータを復号化することをさらに含み、
前記位置決め層が、ウィンドウシーケンスの複数のインスタンスからなる行列を備え、前記複数のインスタンスは循環的にシフトされており、
前記グローバル情報コードパラメータを復号化することが、該ウィンドウシーケンスの前記部分領域位置決め層と関連付けられているインスタンス間の相対的な循環性シフトを決定することにより行われる請求項18から23のいずれか一項に記載の方法。 - コンピュータに、請求項18から25のいずれか一項に記載の方法を実行させるためのプログラム命令を備えるコンピュータプログラム。
- 情報コードを復号化するための装置であって、
前記情報コードは、位置情報がコード化された位置決め層と、任意の非位置データがコード化されたデータ層とを含み、
前記位置決め層と前記データ層が重ね合わされて、前記位置決め層中の要素と前記データ層中の要素が重なり、重なった要素が、前記情報コードにおける共通のコード要素によりコード化されており、
前記装置は、
前記情報コードの部分領域の表現を受け取り、前記部分領域における情報コードを部分領域位置決め層と部分領域データ層とに分離し、該部分領域位置決め層から位置情報を復号化し、該部分領域データ層から任意の非位置データを復号化するためのプロセッサを備えることを特徴とする装置。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US58286104P | 2004-06-28 | 2004-06-28 | |
US60/582,861 | 2004-06-28 | ||
SE0401647A SE0401647D0 (sv) | 2004-06-28 | 2004-06-28 | Coding and decoding of data |
SE0401647-3 | 2004-06-28 | ||
PCT/SE2005/000992 WO2006001769A1 (en) | 2004-06-28 | 2005-06-23 | Coding and decoding of data |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2008504598A JP2008504598A (ja) | 2008-02-14 |
JP2008504598A5 JP2008504598A5 (ja) | 2012-03-01 |
JP4996461B2 true JP4996461B2 (ja) | 2012-08-08 |
Family
ID=39124618
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007518009A Expired - Fee Related JP4996461B2 (ja) | 2004-06-28 | 2005-06-23 | データのコーディングおよび復号化 |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP4996461B2 (ja) |
TW (1) | TW200725423A (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8120820B2 (en) * | 2007-08-01 | 2012-02-21 | Silverbrook Research Pty Ltd | Method of scanning images larger than the scan swath using coded surfaces |
TWI397013B (zh) * | 2008-09-26 | 2013-05-21 | Elan Microelectronics Corp | The dot code pattern and the dot code group pattern and the image processing circuit of the density coding type |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SE517445C2 (sv) * | 1999-10-01 | 2002-06-04 | Anoto Ab | Positionsbestämning på en yta försedd med ett positionskodningsmönster |
KR100341504B1 (ko) * | 1999-11-13 | 2002-06-21 | 한탁돈 | 기계로 판독가능한 코드와 그 코드의 인코딩/디코딩 방법및 장치 |
US6708881B2 (en) * | 2002-01-30 | 2004-03-23 | Rf Saw Components, Inc. | Reader for a high information capacity SAW identification tag and method of use thereof |
JP4198456B2 (ja) * | 2002-07-10 | 2008-12-17 | 株式会社リコー | 2次元コードパターン、2次元コードパターンを担持するパターン担持媒体、2次元コードパターンの生成方法、2次元コード読取装置および読取方法 |
-
2005
- 2005-06-23 JP JP2007518009A patent/JP4996461B2/ja not_active Expired - Fee Related
- 2005-12-23 TW TW094146155A patent/TW200725423A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
JP2008504598A (ja) | 2008-02-14 |
TW200725423A (en) | 2007-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101119310B1 (ko) | 데이터의 코딩 및 디코딩 | |
KR101236809B1 (ko) | 위치 및 정보 코드를 결합하는 방법 및 시스템 | |
JP4707395B2 (ja) | 冗長な情報を含む情報コード | |
MXPA02006340A (es) | Sistema de administracion de informacion general. | |
US20080235282A1 (en) | Personal Computing Apparatus and a Method Therein | |
KR20130139225A (ko) | 광학 펜을 이용한 절대 위치와 기타 정보용 도트 코드 패턴, 도트 코드 프린팅 방법, 및 도트 코드 읽는 방법 | |
JP4996461B2 (ja) | データのコーディングおよび復号化 | |
JP2008504598A5 (ja) | ||
JP4967823B2 (ja) | 位置検出装置及びプログラム | |
JP4934669B2 (ja) | 非ペンストロークデータの転送に関する方法および装置 | |
JP2012063957A (ja) | 画像処理装置、識別装置、電子筆記具及びプログラム | |
JP4985436B2 (ja) | 位置検出装置及びプログラム | |
TWI401607B (zh) | 編碼與解碼方法及裝置 | |
JP2008109578A (ja) | 画像生成装置、情報読み取り装置および記録媒体 | |
JP5293304B2 (ja) | 媒体位置管理装置及びプログラム | |
JP5098441B2 (ja) | 画像処理装置及びプログラム | |
JP2008301128A (ja) | 画像処理装置、画像生成装置、及びプログラム | |
JP2008299442A (ja) | 画像処理装置及びプログラム | |
JP2009237808A (ja) | 電子筆記具、画像読み取り装置及びプログラム | |
JP2008301120A (ja) | 画像処理装置、画像生成装置、及びプログラム | |
JP2009181363A (ja) | 画像処理装置、画像生成装置、及びプログラム | |
JP2009181504A (ja) | 電子筆記具およびプログラム | |
JP2009176249A (ja) | 画像生成装置、画像処理装置、プログラム、及び印刷媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20071016 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080619 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20110606 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110705 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20111004 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20111012 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20111104 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20111111 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20111130 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20111207 |
|
A524 | Written submission of copy of amendment under article 19 pct |
Free format text: JAPANESE INTERMEDIATE CODE: A524 Effective date: 20120104 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120417 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120511 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150518 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4996461 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |