説明

マトリックスコードシンボルにデータをエンコードおよびデコードする方法

【課題】マトリックスコードシンボルへデータをエンコードおよびデコードする方法において、マトリックスコードシンボル上にデータを表わすために必要とされる空間量を低減する。
【解決手段】本発明は、マトリックスコードシンボルにデータをエンコードおよびデコードする方法を提供する。マトリックスコードシンボルにデータをエンコードする方法は、データ要素表の形式でデータを受信すること、およびデータ要素表を文字列に変換することを含む。その後、文字列は、マトリックスコードシンボルにエンコードされる。さらに、マトリックスコードシンボルからデータをデコードする方法は、マトリックスコードシンボルから文字列を読み出すこと、およびその文字列を、データを表わすデータ要素表に変換することを含む。

【発明の詳細な説明】
【技術分野】
【0001】
発明の分野
本発明は、概して、データのエンコーディングおよびデコーディングに関連し、より特定的には、データ要素表をマトリックスコードシンボルにエンコードおよびデコードする方法に関する。
【背景技術】
【0002】
発明の背景
近年、バーコードのようなマトリックスコードシンボルが、様々な雑誌、本、広告物、および新聞に印刷されている。これらのマトリックスコードシンボルは、ユーザに、雑誌または本に関する追加的な情報を提供する。一次元バーコードのような従来のバーコードは、異なる太さのバーの単一列として構成される。一次元バーコードは、単一の軸に沿って読出し可能である。一次元バーコードを読出すとき、バーの列がデコードされてテキスト情報のようなデータを表わす。しかしながら、一次元バーコードは、数字のようなテキスト情報を表わすためにバーコードによって用いられるバーの数および空間のために、小さい記憶容量を有する。
【発明の概要】
【発明が解決しようとする課題】
【0003】
より多くのデータ量を記憶するために、二次元バーコードが用いられ得る。二次元バーコードも、マトリックスコードシンボルとして知られている。二次元バーコードは、二進数の「0」および「1」を表す、黒と白の画素のグリッドまたはマトリックスを含む。さらに、二次元バーコードによって記憶されるデータ量は、一次元バーコードによって記憶されるデータ量よりも多い。しかしながら、二次元バーコードは、データを表わすために多くの量の空間を消費し得る。
【0004】
したがって、マトリックスコードシンボル上にデータを表わすために必要とされる空間量を低減する、マトリックスコードシンボルへデータをエンコードおよびデコードする方法が必要とされている。
【課題を解決するための手段】
【0005】
本発明の様々な実施形態は、マトリックスコードシンボルにデータをエンコードおよびデコードする、コンピュータで実行される方法を提供する。本発明の第1の局面は、マトリックスコードシンボルにデータをエンコードする、コンピュータで実行される方法を提供することである。方法は、データ要素表形式のデータを受信することを含む。データ要素表のデータ要素は、1つまたはより多くの文字を含む。1つまたはより多くの文字は、限定されないが、アルファベット、数字、特殊文字、および英数字を含み得る。データ要素表は、1つまたはより多くのデータ要素の行を含む。データ要素表は、また、1つまたはより多くのデータ要素の列を含む。方法は、さらに、データ要素表を文字列に変換することを含む。その後、文字列は、マトリックスコードシンボルにエンコードされる。
【0006】
本発明の第2の局面は、マトリックスコードシンボルからデータをデコードする、コンピュータで実行される方法を提供することである。文字列が、最初に、マトリックスコードシンボルから読込まれる。文字列は、その後、データを表わすデータ要素表に変換される。
【0007】
添付の図面は、それにおいて、同様の参照番号は個別の図を通して同一のまたは機能的に同じ要素を示し、以下の詳細な説明とともに本明細書に含まれかつその一部を形成し、本発明のすべてに従う様々な実施形態を記述するためならびに様々な原理および利点を説明するために機能する。
【図面の簡単な説明】
【0008】
【図1】本発明の様々な実施形態が機能し得る、例示的な環境を示す図である。
【図2】マトリックスコードシンボルを示す図である。
【図3】本発明の実施形態に従う、マトリックスコードシンボルにデータ要素表のようなデータをエンコードする方法のフローチャートである。
【図4】本発明の実施形態に従う、データ要素表を文字列に変換する方法のフローチャートである。
【図5】本発明の実施形態に従う、マトリックスコードシンボルからデータをデコードする方法のフローチャートである。
【図6】本発明の実施形態に従う、文字列をデータ要素表に変換する方法のフローチャートである。
【図7】本発明の実施形態に従う、マトリックスコードシンボルにデータをエンコードするためのエンコーダのフロー図である。
【図8】本発明の実施形態に従う、マトリックスコードシンボルからデータをデコードするためのデコーダのフロー図である。
【発明を実施するための形態】
【0009】
当業者は、図中の要素は、単純さおよび明確さのために説明されており、縮尺通りに必ずしも描かれていないことを理解するであろう。たとえば、図中のいくつかの要素の寸法は、本発明の実施形態の理解を向上することを助けるために、他の要素と比較して誇張され得る。
【0010】
発明の詳細な説明
本発明に従う詳細な実施形態を説明する前に、実施形態は、マトリックスコードシンボルにデータをエンコードおよびデコードする方法に関連する方法ステップおよび装置要素の組み合わせに主として属することに気付くべきである。したがって、装置要素および方法ステップは、図面において従来のシンボルによってどこが占められるかが表わされており、本明細書の利益を有する、当業者には容易に明らかである詳細を伴う開示が曖昧にならないように、本発明の実施形態の理解に関するこれら特定の詳細を示す。
【0011】
詳細な説明の節において与えられる説明は、手順、ステップ、論理ブロック、プロセッシング、および、コンピュータメモリ内のデータビットについての操作の他のシンボル表現を含む。手順、コンピュータ実行ステップ、論理ブロック、プロセスなどは、ここでは概して、所望の結果を導くステップまたは指令の自己矛盾のないシーケンスであると考えられる。本明細書で記述されるステップは、物理量の物理的操作を必要とする。通常、必要不可欠ではないが、これらの物理量は、コンピュータシステムにおいて、記憶され、転送され、組合わされ、比較され、および他の操作がなされることが可能な、電気的または時期的信号の形式をとる。さらに、説明を容易にするために、これらの信号は、ビット、値、要素、シンボル、文字、語句、数字などと称される。
【0012】
しかしながら、これらおよび類似の語句のすべては、適当な物理量に関連しているべきであり、かつ、単に、説明を容易にするためにこれらの物理量に適用される符号に過ぎないことに注意すべきである。以下の説明から明らかであるように、特に言及しない場合には、本発明を通して、「受信する」、「変換する」、「エンコードする」、「抽出する」、「創出する」、「加える」、「読み出す」、「検出する」、「識別する」、「生成する」、「デコードする」などのような語句を利用する説明は、コンピュータシステム、あるいは類似の電子演算装置によって実行される動作およびプロセスを称し、それらは、コンピュータのレジスタまたはメモリ内の物理(電子的)量として表わされるデータを操作し、かつ、コンピュータシステムメモリまたはレジスタあるいは他の情報記憶、転送または表示装置における物理量として同様に表わされる他のデータへ変換する。
【0013】
例として、限定ではないが、コンピュータ使用可能媒体は、コンピュータ記憶媒体および通信媒体を含み得る。コンピュータ記憶媒体は、コンピュータ読出可能指令、データ構造、プログラムモジュール、または他のデータのような情報の記憶のための、任意の方法および技術で実現される、揮発性および不揮発性、取り外し可能および取り外し不可能な媒体を含む。
【0014】
図1は、本発明の様々な実施形態が機能し得る、例示的な環境100を示す。環境100は、エンコーダ102と、マトリックスコードシンボル104と、デコーダ106とを含む。エンコーダ102の例は、限定されないが、装置、回路、ソフトウェアプログラム、およびアルゴリズムを含み得る。エンコーダ102は、データを受信するとともに、それをマトリックスコードシンボル104に記憶する前にデータをエンコードするように構成される。マトリックスコードシンボルは、二次元バーコードまたは三次元バーコードであり得る。一実施形態においては、マトリックスコードシンボル104は、図2に示されるような正方形または長方形のパターン内に配列された、黒いセルおよび白いセルを含む、二次元バーコードであり得る。黒いセルはビット「0」を表わし、白いセルはビット「1」を表わし得る。あるいは、黒いセルはビット「1」を表わし、白いセルはビット「0」を表わしてもよい。マトリックスコードシンボル104が記憶するデータ量は、マトリックスコードシンボル104の寸法に依存し得る。マトリックスコードシンボル104内に記憶されたデータは、データ要素表の形式であり得る。データ要素表は、1つまたはより多くのデータ要素の行を含み得る。同様に、データ要素表は、1つまたはより多くのデータ要素の列を含み得る。これは、図3と関連して詳細に説明される。
【0015】
データ要素表をエンコードするために、エンコーダ102は、1つまたはより多くの文字エンコーディングスキームを用い得る。1つまたはより多くの文字エンコーディングスキームの例は、限定はされないが、情報交換用米国標準コード(American Standard Code for Information Interchange:ASCII)、ユニコード、モールス信号、ECC200 ASCIIエンコーディング、およびISO−8859−1スキームを含む。このように、エンコーダ102は、データ要素表をエンコードし、1つまたはより多くの文字エンコーディングスキームを用いて、それをマトリックスコードシンボル104に記憶する。エンコードされたデータ要素表をマトリックスコードシンボル104に記憶するために、エンコードされたデータ要素表は、マトリックスコードシンボル104上に描画的にエンコードされ得るフォーマットに変換され得る。たとえば、エンコードされたデータは、「0」および「1」に変換されて、それをマトリックスコードシンボル104に記憶される。
【0016】
デコーダ106は、マトリックスコードシンボル104に記憶された、エンコードされたデータ要素表をデコードすることによって、データ要素表を読み出すように構成される。デコーダ106の例は、限定されないが、装置、回路、ソフトウェアプログラム、スキャナ、データマトリックスリーダ、およびアルゴリズムを含む。デコーダ106は、エンコーダ102によって使用される1つまたはより多くの文字エンコーディングスキームに対応する文字デコーディングスキームを用いて、データ要素表を読み出す。
【0017】
図3は、本発明の実施形態に従う、データをマトリックスコードシンボルにエンコードする、コンピュータで実行される方法のフローチャートを示す。マトリックスコードシンボルは、正方形または長方形パターンのいずれかに配列された、黒いセルおよび白いセルを含む、データマトリックスバーコードである。これは図1と関連して説明されている。
【0018】
図3に示されるように、データは、ステップ302にて、データ要素表の形式で受信される。データ要素表のデータ要素は、1つまたはより多くの文字を含む。1つまたはより多くの文字は、限定されないが、アルファベット、数字、特殊文字、および英数字を含み得る。1つまたはより多くの文字は、多言語文字であり得る。1つまたはより多くの文字は、限定されないが、アラビア語および英語を含む、1つ又はより多くの言語に関連し得る。さらに、データ要素表は、1つまたはより多くのデータ要素の行を含む。1つまたはより多くのデータ要素の行の1つのデータ要素の行は、1つまたはより多くのデータ要素を含む。データ要素表は、また、1つまたはより多くのデータ要素の列を含む。同様に、1つまたはより多くのデータ要素の列の1つのデータ要素の列は、1つまたはより多くのデータ要素を含む。データ要素表を受信すると、ステップ304にて、データ要素表は文字列に変換される。データ要素表を文字列に変換する方法は、図4に関連して詳細に説明される。その後、ステップ306にて、文字列は、マトリックスコードシンボルにエンコードされる。文字列は、1つまたはより多くの文字エンコーディングスキームを用いてエンコードされ得る。1つまたはより多くの文字エンコーディングスキームの例は、限定されないが、情報交換用米国標準コード(ASCII)、ユニコード、モールス信号、ECC200 ASCIIエンコーディング、およびISO−8859−1スキームを含む。
【0019】
図4は、本発明の実施形態に従う、データ要素表を文字列に変換する、コンピュータで実行される方法のフローチャートを示す。図4に示されるように、ステップ402にて、各データ要素がデータ要素表から抽出されて、抽出されたデータ要素の組が取得される。表1に示されるようなデータ要素表の例を考える。
【0020】
【表1】

【0021】
一実施形態においては、各データ要素は、行ごと基準(row-by-row basis)で、データ要素表から抽出される。たとえば、各データ要素は、以下のような順序で、行ごと基準で表1から抽出される。
【0022】
Day/Time, 8-10, 10-12, Saturday, Study, Lab, Sunday, Study, Lab
あるいは、各データ要素は、列ごと基準(column-by-column basis)で、データ要素表から抽出される。たとえば、各データ要素は、以下のような順序で、列ごと基準で表1から抽出される。
【0023】
Day/Time, Saturday, Sunday, 8-10, Study, Study, 10-12, Lab, Lab
各データ要素がデータ要素表から抽出されると、ステップ404にて、抽出されたデータ要素の組から文字列が生成される。文字列は、各抽出されたデータ要素に関連した識別子を抽出されたデータ要素の組に加えることによって生成される。識別子は、データ要素表における各データ要素の位置を表わす。たとえば、識別子「11」が抽出されたデータ要素「Day/Time」に加えられ、「11 Day/Time」として表わされる。識別子「11」は、データ要素「Day/Time」が、表1の第1行,第1列から抽出されたことを示す。同様に、識別子「12」、「13」、「21]、「22」、「23」、「31」、「32」および「33」が抽出されたデータ要素「8-10」、「10-12」、「Saturday」、「Study」、「Lab」、「Sunday」、「Study」および「Lab」にそれぞれ加えられる。
【0024】
文字列が生成されている間に、1つまたはより多くの特殊文字も、抽出されたデータ要素の組の各データ要素に加えられる。1つまたはより多くの特殊文字は、限定されないが、「\」、「*」、「^」および「&」を含み得る。文字列を生成している間に、任意の他の特殊文字が加えられてもよいことが当業者には明白であろう。1つまたはより多くの特殊文字は、各抽出されたデータ要素の始まりを示すために、各抽出されたデータに加えられる。実施形態においては、1つまたはより多くの特殊文字は、各抽出されたデータの始まりに加えられる。この場合には、1つまたはより多くの特殊文字は、各抽出されたデータ要素の区切りとして作用し得る。たとえば、2つの特殊文字「\\」が、抽出されたデータ要素「Day/Time」、「8-10」、「10-12」、「Saturday」、「Study」、「Lab」、「Sunday」、「Study」および「Lab」の始まりに加えられる。さらに、1つまたはより多くの特殊文字が、最初に抽出されたデータ要素の終わりに加えられて得る。最初に抽出されたデータ要素の終わりへ1つまたはより多くの特殊文字を加えることは、データ要素表の始まりを示す。たとえば、特殊文字「^」が、最後に抽出されたデータ要素の終わりに加えられる。識別子および1つまたはより多くの特殊文字を、表1の各抽出されたデータ要素に加えることによって、以下のような形式で文字列が生成される。
【0025】
\\11 Day/Time\\12 8-10\\13 10-12\\21 Saturday\\22 Study\\23 Lab\\31 Sunday\\32 Study\\33 Lab ^
あるいは、特殊文字「^」のような1つまたはより多くの特殊文字は、最後に抽出されたデータ要素の始まりに加えられてもよい。最後の抽出されたデータ要素の始まりへ1つまたはより多くの特殊文字を加えることは、データ要素表の終わりを示す。また、1つまたはより多くの特殊文字は、最初に抽出されたデータ要素の始まり、および、最後に抽出されたデータ要素の終わりの双方に加えられてもよい。
【0026】
他の実施形態においては、識別子「R」が抽出されたデータ要素「Day/Time」に加えられ、「R Day/Time」のように表わされる。識別子「R」は、データ要素「Day/Time」が、テーブル1の第1の行から抽出されたことを示す。さらに、識別子「C」が、抽出されたデータ要素「8-10」に加えられ、「C 8-10」のように表わされる。識別子「C」は、データ要素「8-10」が、表1の第2の列から抽出されたことを示す。さらに、特殊文字「^」が、テーブル1の各抽出されたデータ要素の始まりに加えられてもよい。この場合、特殊文字「^」は、テーブル1の各抽出されたデータ要素についての区切りとして作用し得る。他の実施形態においては、「^E」のような、識別子と特殊文字との組み合わせが、最後に抽出されたデータ要素「Lab」の終わりに追加され、データ要素表の終わりを示す。識別子および特殊文字を、表1の各抽出されたデータ要素に加えることによって、文字列は、以下の形式で生成される。
【0027】
^R Day/Time ^C 8-10 ^C 10-12 ^R Saturday ^C Study ^C Lab ^R Sunday ^C Study ^C Lab ^E
一実施形態においては、データ要素が多言語であり得るデータ要素表である。このような場合においては、データ要素表の1つまたはより多くの行はアラビア語であり、データ要素表の1つまたはより多くの列は英語であり得る。さらに、各データ要素が、データ要素表から抽出されて、抽出されたデータ要素の組が取得される。データ要素が抽出されると、抽出されたデータ要素の組から、文字列が生成される。文字列は、各抽出されたデータ要素に関連した識別子を、抽出されたデータ要素の組に加えることによって生成される。文字列を生成している間に、1つまたはより多くの特殊文字も、抽出されたデータ要素の組の各抽出されたデータ要素に加えられる。
【0028】
文字列を生成すると、文字列は、図1に関連して説明されたように、マトリックスコードシンボルにエンコードされる。データ要素表の文字列への変換、および1つまたはより多くの特殊文字を文字列内に加えることは、マトリックスコードシンボルのデータ記憶容量を増加するのを容易にする。
【0029】
マトリックスコードシンボルにエンコードされたデータは読み出される必要があり、そのため、データはマトリックスコードシンボルからデコードされる。図5は、本発明の実施形態に従う、マトリックスコードシンボルからデータをデコードする、コンピュータで実行される方法のフローチャートを示す。マトリックスコードシンボルにエンコードされたデータは、データ要素表であり得る。データ要素表のデータ要素は、1つまたはより多くの文字を含む。データ要素表および1つまたはより多くの文字は、図3に関連して詳細に説明されている。
【0030】
図5に示されるように、ステップ502にて、文字列がマトリックスコードシンボルから読み出される。文字列は、図3に関連して、詳細が説明されている。マトリックスコードシンボルから文字列を読み出すために、マトリックスコードシンボルは、マトリックスコードシンボルからの黒いセルおよび白いセルを読むことによってスキャンされ得る。文字列を読み出すと、ステップ504にて、文字列は、データ要素表に変換される。文字列をデータ要素表に変換する方法は、図6に関連して詳細に説明される。データ要素表は、マトリックスコードシンボルからデコードされたデータを表わす。
【0031】
図6は、本発明の実施形態に従う、文字列をデータ要素表に変換する、コンピュータで実行される方法のフローチャートを示す。図6に示されるように、ステップ602にて、1つまたはより多くの特殊文字が、文字列から検出される。1つまたはより多くの特殊文字は、限定されないが、「\」、「*」、「^」および「&」を含み得る。任意の他の特殊文字が文字列から検出されてもよいことが、当業者には明白であろう。一実施形態においては、1つまたはより多くの特殊文字は、文字列の各データ要素の始まりにおいて検出され得る。1つまたはより多くの特殊文字の1つの特殊文字は、文字列において対応するデータ要素の始まりを示す。文字列が、以下の形式である例を考える。
【0032】
\\11 Day/Time\\12 8-10\\13 10-12\\21 Saturday\\22 Study\\23 Lab\\31 Sunday\\32 Study\\33 Lab ^
この場合においては、2つの特殊文字「\\」が、データ要素「Day/Time」の始まりにおいて検出される。文字列の始まりにおいて検出された1つまたはより多くの特殊文字は、文字列の始まりを示す。あるいは、1つまたはより多くの特殊文字は、文字列の終わりにおいて検出されてもよい。この場合は、1つまたはより多くの特殊文字は、文字列の終わりを示す。たとえば、上記で示された文字列の終わりにおいて検出された特殊文字「^」は、文字列に対応するデータ要素表の終わりを示す。一実施形態においては、1つまたはより多くの特殊文字は、文字列の始まり、および文字列の終わりの双方で検出されてもよい。
【0033】
さらに、ステップ604にて、1つまたはより多くの識別子が文字列から識別される。1つまたはより多くの識別子の1つの識別子は、データ要素表における対応するデータ要素の位置を示す。たとえば、識別子「11」は、文字列から識別され、データ要素「Day/Time」の位置を示す。識別子「11」は、データ要素表の第1行,第1列を示す。
【0034】
1つまたはより多くの識別子が識別されると、ステップ606にて、1つまたはより多くのデータ要素が文字列から抽出される。たとえば、文字列から抽出されたデータ要素は、「Day/Time」、「8-10」、「10-12」、「Saturday」、「Study」、「Lab」、「Sunday」、「Study」および「Lab」である。その後、ステップ608にて、1つまたはより多くの抽出されたデータ要素および各抽出されたデータ要素に関連する識別子を用いて、データ要素表が生成される。たとえば、データ要素表は、表2に示されるように生成される。
【0035】
【表2】

【0036】
図7は、本発明に実施形態に従う、マトリックスコードシンボルにデータをエンコードするためのエンコーダ700のフロー図を示す。マトリックスコードシンボルは、正方形または長方形パターンのいずれかに配列された黒いセルおよび白いセルを含むデータマトリックスバーコードである。これは、図1に関連してすでに説明されている。データは、データ要素表の形式で受信され得る。データ要素表のデータ要素は、1つまたはより多くの文字を含む。1つまたはより多くの文字は、限定されないが、アルファベット、数字、特殊文字、および英数字を含み得る。1つまたはより多くの文字は、多言語文字であり得る。1つまたはより多くの文字は、限定されないが、アラビア語および英語を含む1つまたはより多くの言語に関連し得る。さらに、データ要素表は、1つまたはより多くのデータ要素の行を含む。1つまたはより多くのデータ要素の行の1つのデータ要素の行は、1つまたはより多くのデータ要素を含む。データ要素表は、また、1つまたはより多くのデータ要素の列を含む。同様に、1つまたはより多くのデータ要素の列の1つのデータ要素の列は、1つまたはより多くのデータ要素を含む。エンコーダ700は、メモリ702と、メモリ702に結合されたプロセッサ704とを含む。データはマトリックスコードシンボルにエンコードされる。一実施形態においては、データは、エンコーダ700に関連する(図7には図示しない)インターフェースを通して受信されるマトリックスコードシンボルにエンコードされる。
【0037】
エンコードされるべきデータ要素表の受信後、データ要素表は、メモリ702に記憶され得る。データ要素表は、プロセッサ704によってメモリ702から読み出される。さらに、プロセッサ704は、データ要素表を文字列に変換する。データ要素表を文字列に変換するために、プロセッサ704は、データ要素表の各データ要素を抽出し、抽出されたデータ要素の組を取得する。一実施形態においては、各データ要素は、各データ要素は、行ごと基準でデータ要素表から抽出される。他の実施形態においては、各データ要素は、列ごと基準でデータ要素表から抽出される。抽出されたデータ要素の組を取得すると、プロセッサ704は、各抽出されたデータ要素に関連する識別子を、抽出されたデータ要素の組に加える。各データ要素に関連する識別子は、データ要素表の各データ要素の位置を表わす。これは、図3に関連して説明されている。
【0038】
さらに、プロセッサ704は、各抽出されたデータ要素に関連する特殊文字を、抽出されたデータ要素の組に加える。1つまたはより多くの特殊文字は、限定されないが、「\」、「*」、「^」および「&」を含み得る。文字列を生成している間に、任意の他の特殊文字が加えられてもよいことが当業者には明白であろう。1つまたはより多くの特殊文字は、各抽出されたデータに加えられ、各抽出されたデータ要素の始まりを示す。1つまたはより多くの特殊文字は、各抽出されたデータ要素の区切りとして作用し得る。一実施形態においては、1つまたはより多くの特殊文字は、各抽出されたデータ要素の始まりに加えられ得る。このように加えられた1つまたはより多くの特殊文字は、データ要素表の始まりを示す。あるいは、1つまたはより多くの特殊文字は、最後に抽出されたデータ要素の終わりに加えられてもよい。この場合に加えられた1つまたはより多くの特殊文字は、データ要素表の終わりを示す。代替的な実施形態においては、1つまたはより多くの特殊文字は、最初に抽出されたデータ要素の始まり、および最後に抽出されたデータ要素の終わりの双方に加えられてもよい。
【0039】
抽出されたデータ要素の組に、抽出されたデータ要素の組の各抽出されたデータ要素に関連する識別子を加え、そして、1つ又はより多くの特殊文字を加えると、プロセッサ704は文字列を生成する。プロセッサ704によって生成された文字列は、メモリ702に記憶される。その後、プロセッサ704は、その文字列をマトリックスコードシンボルにエンコードする。プロセッサ704は、文字列をマトリックスコードシンボルにエンコードするために、文字エンコーディングスキームを用い得る。1つまたはより多くの文字エンコーディングスキームは、限定されないが、情報交換用米国標準コード(ASCII)、ユニコード、モールス信号、ECC200 ASCIIエンコーディング、およびISO−8859−1スキームを含む。
【0040】
一実施形態においては、データ要素表は、エンコーダを用いて文字列にエンコードされる。データ要素表を文字列にエンコードすると、エンコーダ700は、その文字列をマトリックスコードシンボルにエンコードする。
【0041】
図8は、本発明に実施形態に従う、マトリックスコードシンボルからデータをデコードするためのデコーダ800のフロー図を示す。デコーダ800は、メモリ802と、メモリ802に結合されたプロセッサ804とを含む。プロセッサ804は、マトリックスコードシンボルからデータを読み出す。マトリックスコードシンボルから読み出されたデータは、文字列であり得る。マトリックスコードシンボルから読み出された文字列は、メモリ802に記憶される。さらに、プロセッサ804は、1つまたはより多くの特殊文字を、文字列から検出する。1つまたはより多くの特殊文字の1つの特殊文字は、文字列における対応するデータ要素の始まりを示す。データ要素表のデータ要素は、1つまたはより多くの文字を含む。1つまたはより多くの文字は、限定されないが、アルファベット、数字、特殊文字、および英数字を含み得る。データ要素表およびデータ要素は、図3および図7に関連して、詳細に説明されている。
【0042】
一実施形態においては、1つまたはより多くの特殊文字は、文字列の各データ要素の始まりにおいて検出され得る。さらに、1つまたはより多くの特殊文字は、文字列の始まりにおいて検出され得る。検出された1つまたはより多くの特殊文字は、文字列の始まりを示す。あるいは、1つまたはより多くの特殊文字は、文字列の終わりにおいて検出され得る。このように検出された1つまたはより多くの特殊文字は、文字列の終わりを示す。また、1つまたはより多くの特殊文字は、最初に抽出されたデータ要素の始まり、および、最後に抽出されたデータ要素の終わりの双方において検出されてもよい。
【0043】
1つまたはより多くの特殊文字を検出すると、プロセッサ804は、文字列から、1つまたはより多くの識別子を識別する。1つまたはより多くの識別子の1つの識別子は、データ要素表における対応するデータ要素の位置を示す。さらに、プロセッサ804は、文字列から、1つまたはより多くのデータ要素を抽出する。その後、文字列から抽出された1つまたはより多くのデータ要素、および1つまたはより多くの各データ要素に関連する識別子を用いて、プロセッサ804はデータ要素表を生成する。プロセッサ804によって生成されたデータ要素表は、メモリ802に記憶される。
【0044】
一実施形態においては、文字列は、デコーダ800を用いて、マトリックスコードシンボルからデコードされる。マトリックスコードシンボルから文字列をデコードすると、デコーダ800は、その文字列からデータ要素表をデコードする。
【0045】
本明細書に記載された方法の様々な実施形態は、データ要素表として表わされたデータを、マトリックスコードシンボルにエンコードおよびデコードすることを容易にする。方法は、データ要素表を文字列に変換すること、および、その文字列をマトリックスコードシンボルにエンコードすることを含む。文字列は、1つまたはより多くの文字列を区切りとして含む。マトリックスコードシンボル内に文字列の形式でデータを記憶することは、マトリックスコードシンボルへのデータの記憶容量を増加することを容易にする。
【0046】
当業者は、本明細書に記載された上記の認識された利点および他の利点が、単に例に過ぎず、本発明の様々な実施形態の利点および全ての完全な表示であることが意味されていないことが理解できるだろう。
【0047】
上述の明細書においては、本発明の特定の実施形態が説明された。しかしながら、当業者は、以下の特許請求の範囲に記載されるような本発明の範囲から逸脱することなく、様々な修正および変更がなされることを理解する。したがって、明細書および図面は、制限の意味というよりはむしろ例示の意味と見なされるべきであり、そのような修正の全てが、本発明の範囲に含まれることが企図される。利益、利点、課題の解法、および、任意の利益、利点、または解法を生じさせあるいはより明白にさせるいかなる要素も、請求項の任意または全ての必須の、避けられない、あるいは不可欠な特徴または要素として解釈されるべきではない。本発明は、本出願の継続中になされるいかなる補正を含む添付の請求項、および発行されたこれらの請求項の均等物によってのみ定義される。

【特許請求の範囲】
【請求項1】
マトリックスコードシンボルにデータをエンコードする、コンピュータで実行される方法であって、
前記コンピュータで実行される方法は、
データ要素表の形式でデータを受信するステップを備え、前記データ要素表のデータ要素は、少なくとも1つの文字を含み、
前記データ要素表は、
少なくとも1つのデータ要素の行を含み、前記少なくとも1つのデータ要素の行のうちの1つのデータ要素の行は、少なくとも1つのデータ要素を有し、
前記データ要素表は、
少なくとも1つのデータ要素の列をさらに含み、前記少なくとも1つのデータ要素の列のうちの1つのデータ要素の列は、少なくとも1つのデータ要素を有し、
前記コンピュータで実行される方法は、
前記データ要素表を文字列に変換するステップと、
前記文字列を前記マトリックスコードシンボルにエンコードするステップとをさらに備える、コンピュータで実行される方法。
【請求項2】
前記少なくとも1つの文字は、アルファベット、数字、特殊文字、および英数字のうちの少なくとも1つである、請求項1に記載のコンピュータで実行される方法。
【請求項3】
前記データ要素表を文字列に変換するステップは、
前記データ要素表から各データ要素を抽出して、抽出されたデータ要素の組を取得するステップと、
前記抽出されたデータ要素の組から前記文字列を生成するステップとを含む、請求項1に記載のコンピュータで実行される方法。
【請求項4】
各データ要素は、行ごとの基準で、前記データ要素表から抽出される、請求項3に記載のコンピュータで実行される方法。
【請求項5】
各データ要素は、列ごとの基準で、前記データ要素表から抽出される、請求項3に記載のコンピュータで実行される方法。
【請求項6】
前記文字列を生成するステップは、
各抽出されたデータ要素に関連する識別子を、前記抽出されたデータ要素の組に加えるステップを含み、前記識別子は、前記データ要素表における各データ要素の位置を表わし、
前記文字列を生成するステップは、
前記抽出されたデータ要素の組における各抽出されたデータ要素に関連する少なくとも1つの特殊文字を、前記抽出されたデータ要素の組に加え、それによって前記文字列を生成するステップをさらに含み、前記少なくとも1つの特殊文字は、各抽出されたデータ要素の始まりを示す、請求項3に記載のコンピュータで実行される方法。
【請求項7】
前記少なくとも1つの特殊文字は、各抽出されたデータ要素の始まりに加えられる、請求項6に記載のコンピュータで実行される方法。
【請求項8】
前記少なくとも1つの特殊文字は、最後に抽出されたデータ要素の終わりに加えられる、請求項6に記載のコンピュータで実行される方法。
【請求項9】
マトリックスコードシンボルからデータをデコードする、コンピュータで実行される方法であって、
前記マトリックスコードシンボルから文字列を読み出すステップと、
前記文字列を、前記データを表わすデータ要素表に変換し、それによって前記マトリックスコードシンボルから前記データをデコードするステップとを備え、前記データ要素表のデータ要素は、少なくとも1つの文字を含み、
前記データ要素表は、
少なくとも1つのデータ要素の行を含み、前記少なくとも1つのデータ要素の行のうちの1つのデータ要素の行は、少なくとも1つのデータ要素を有し、
前記データ要素表は、
少なくとも1つのデータ要素の列をさらに含み、前記少なくとも1つのデータ要素の列のうちの1つのデータ要素の列は、少なくとも1つのデータ要素を有する、コンピュータで実行される方法。
【請求項10】
少なくとも1つの文字は、アルファベット、数字、特殊文字、および英数字のうちの少なくとも1つである、請求項9に記載のコンピュータで実行される方法。
【請求項11】
前記文字列は、前記データ要素表の少なくとも1つのデータ要素と、前記少なくとも1つのデータ要素の各データ要素に関連する少なくとも1つの特殊文字と、各データ要素に関連する識別子とを含む、請求項9に記載のコンピュータで実行される方法。
【請求項12】
前記文字列を前記データ要素表に変換するステップは、
前記文字列から前記少なくとも1つの特殊文字を検出するステップを含み、前記少なくとも1つの特殊文字のうちの1つの特殊文字は、前記文字列における対応するデータ要素の始まりを示し、
前記文字列を前記データ要素表に変換するステップは、
前記文字列から、少なくとも1つの識別子を識別するステップをさらに含み、前記少なくとも1つの識別子の1つの識別子は、前記データ要素表における対応するデータ要素の位置を示し、
前記文字列を前記データ要素表に変換するステップは、
前記文字列から少なくとも1つのデータ要素を抽出するステップと、
前記少なくとも1つの抽出されたデータ要素、および各抽出されたデータ要素に関連する識別子を用いて、前記データ要素表を生成するステップとをさらに含む、請求項11に記載の記載のコンピュータで実行される方法。
【請求項13】
前記少なくとも1つの特殊文字は、前記対応するデータ要素の始まりにおいて検出される、請求項12に記載のコンピュータで実行される方法。
【請求項14】
前記少なくとも1つの特殊文字は、前記文字列の終わりにおいて検出される、請求項12に記載のコンピュータで実行される方法。
【請求項15】
マトリックスコードシンボルにデータをエンコードするためのエンコーダであって、
前記エンコーダは、
データ要素表を記憶するためのメモリを備え、
前記データ要素表のデータ要素は、少なくとも1つの文字を含み、
前記データ要素表は、
少なくとも1つのデータ要素の行を含み、前記少なくとも1つのデータ要素の行のうちの1つのデータ要素の行は、少なくとも1つのデータ要素を含み、
前記データ要素表は、
少なくとも1つのデータ要素の列をさらに含み、前記少なくとも1つのデータ要素の列のうちの1つのデータ要素の列は、少なくとも1つのデータ要素を含み、
前記エンコーダは、
前記メモリに結合されたプロセッサをさらに備え、
前記プロセッサは、
前記データ要素表を文字列に変換し、
前記文字列を前記マトリックスコードシンボルにエンコードするように構成される、エンコーダ。
【請求項16】
前記プロセッサは、
前記データ要素表から各データ要素を抽出して、抽出されたデータ要素の組を取得し、
前記抽出されたデータ要素の組から前記文字列を生成するようにさらに構成される、請求項15に記載のエンコーダ。
【請求項17】
各データ要素は、行ごとの基準で、前記データ要素表から抽出される、請求項16に記載のエンコーダ。
【請求項18】
各データ要素は、列ごとの基準で、前記データ要素表から抽出される、請求項16に記載のエンコーダ。
【請求項19】
前記プロセッサは、
前記抽出されたデータ要素の組における各抽出されたデータ要素に関連する識別子を、前記抽出されたデータ要素の組に加えるようにさらに構成され、
前記識別子は、前記データ要素表における各データ要素の位置に対応し、
前記プロセッサは、
前記抽出されたデータ要素の組における各抽出されたデータ要素に関連する少なくとも1つの特殊文字を、前記抽出されたデータ要素の組に加え、それによって前記文字列を生成するようにさらに構成され、
前記少なくとも1つの特殊文字は、各抽出されたデータ要素の始まりを示す、請求項16に記載のエンコーダ。
【請求項20】
前記少なくとも1つの特殊文字は、各抽出されたデータ要素の始まりに加えられる、請求項19に記載のエンコーダ。
【請求項21】
前記少なくとも1つの特殊文字は、最後に抽出されたデータ要素の終わりに加えられる、請求項19に記載のエンコーダ。
【請求項22】
前記文字列は、前記データ要素表の各データ要素と、各データ要素に関連する少なくとも1つの特殊文字と、各データ要素に関連する識別子とを含む、請求項15に記載のエンコーダ。
【請求項23】
マトリックスコードシンボルからデータをデコードするためのデコーダであって、
前記デコーダは、プロセッサを備え、
前記プロセッサは、
前記マトリックスコードシンボルから文字列を読み出し、
前記文字列を、前記データを表わすデータ要素表に変換するように構成され、
前記データ要素表のデータ要素は、少なくとも1つの文字を含み、
前記データ要素表は、
少なくとも1つのデータ要素の行を含み、前記少なくとも1つのデータ要素の行のうちの1つのデータ要素の行は、少なくとも1つのデータ要素を含み、
前記データ要素表は、
少なくとも1つのデータ要素の列をさらに含み、前記少なくとも1つのデータ要素の列のうちの1つのデータ要素の列は、少なくとも1つのデータ要素を含み、
前記デコーダは、
前記プロセッサに結合され、前記文字列および前記データ要素表を記憶するためのメモリをさらに備える、デコーダ。
【請求項24】
前記プロセッサは、
前記文字列から少なくとも1つの特殊文字を検出するようにさらに構成され、
前記少なくとも1つの特殊文字のうちの1つの特殊文字は、前記文字列における、対応するデータ要素の始まりを示し、
前記プロセッサは、
前記文字列から少なくとも1つの識別子を識別するようにさらに構成され、
前記少なくとも1つの識別子のうちの1つの識別子は、前記データ要素表における、対応するデータ要素の位置を示し、
前記プロセッサは、
前記文字列から少なくとも1つのデータ要素を抽出し、
前記少なくとも1つの抽出されたデータ要素、および各抽出されたデータ要素に関連する識別子を用いて、前記データ要素表を生成するようにさらに構成される、請求項23に記載のデコーダ。
【請求項25】
前記少なくとも1つの特殊文字は、前記対応するデータ要素の始まりにおいて検出される、請求項24に記載のデコーダ。
【請求項26】
前記少なくとも1つの特殊文字は、前記文字列の終わりにおいて検出される、請求項24に記載のデコーダ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−160161(P2012−160161A)
【公開日】平成24年8月23日(2012.8.23)
【国際特許分類】
【出願番号】特願2011−173712(P2011−173712)
【出願日】平成23年8月9日(2011.8.9)
【出願人】(511072895)キング・アブドゥルアジズ・シティ・フォー・サイエンス・アンド・テクノロジー(ケイ・エイ・シィ・エス・ティ) (13)
【氏名又は名称原語表記】KING ABDULAZIZ CITY FOR SCIENCE AND TECHNOLOGY (KACST)
【Fターム(参考)】