(57)【特許請求の範囲】
【請求項１】
マトリックスコードシンボルにデータをエンコードする、コンピュータで実行される方法であって、
前記コンピュータで実行される方法は、
データ要素表の形式でデータを受信するステップを備え、前記データ要素表のデータ要素は、少なくとも１つの文字を含み、
前記データ要素表は、
少なくとも１つのデータ要素の行を含み、前記少なくとも１つのデータ要素の行のうちの１つのデータ要素の行は、少なくとも１つのデータ要素を有し、
前記データ要素表は、
少なくとも１つのデータ要素の列をさらに含み、前記少なくとも１つのデータ要素の列のうちの１つのデータ要素の列は、少なくとも１つのデータ要素を有し、
前記コンピュータで実行される方法は、
前記データ要素表を文字列に変換し、メモリに記憶するステップと、
前記メモリの文字列を前記マトリックスコードシンボルにエンコードするステップとをさらに備え、
前記文字列に変換するステップは、
前記データ要素表から各データ要素を抽出するステップと、
抽出された各データ要素と、前記各データ要素に関連する識別子と、データ要素の区切りを示す特殊文字とから前記文字列を生成するステップとを含み、
前記識別子それぞれは、関連する前記データ要素の前記データ要素表の行列における行番号及び列番号からなる位置を示す、コンピュータで実行される方法。
【請求項２】
前記特殊文字は、前記データ要素表の始まりにおいて抽出された前記データ要素に関連付けされる始まり文字と、前記データ要素表の終わりにおいて抽出された前記データ要素に関連付けされる終わり文字とを含む、請求項１に記載のコンピュータで実行される方法。
【請求項３】
各データ要素は、行ごとの基準で、前記データ要素表から抽出される、請求項１または２に記載のコンピュータで実行される方法。
【請求項４】
各データ要素は、列ごとの基準で、前記データ要素表から抽出される、請求項１または２に記載のコンピュータで実行される方法。
【請求項５】
マトリックスコードシンボルからデータをデコードする、コンピュータで実行される方法であって、
前記マトリックスコードシンボルから文字列を読み出しメモリに記憶するステップと、
前記メモリの前記文字列を、前記データを表わすデータ要素表に変換し、それによって前記マトリックスコードシンボルから前記データをデコードするステップとを備え、前記データ要素表のデータ要素は、少なくとも１つの文字を含み、
前記データ要素表は、
少なくとも１つのデータ要素の行を含み、前記少なくとも１つのデータ要素の行のうちの１つのデータ要素の行は、少なくとも１つのデータ要素を有し、
前記データ要素表は、
少なくとも１つのデータ要素の列をさらに含み、前記少なくとも１つのデータ要素の列のうちの１つのデータ要素の列は、少なくとも１つのデータ要素を有し、
前記文字列は、前記データ要素表の各データ要素と、前記各データ要素に関連する識別子と、データ要素の区切りを示す特殊文字とからなり、
前記識別子それぞれは、関連する前記データ要素の前記データ要素表の行列における行番号及び列番号からなる位置を示し、
前記デコードするステップは、
前記文字列から前記特殊文字を検出するステップと、
前記文字列から前記識別子を識別するステップと、
前記文字列から各データ要素を抽出するステップと、
抽出された各データ要素と、各データ要素に関連する識別子を用いて、前記データ要素表を生成するステップを含む、コンピュータで実行される方法。
【請求項６】
前記特殊文字は、前記データ要素表の始まりにおいて抽出された前記データ要素に関連付けされる始まり文字と、前記データ要素表の終わりにおいて抽出された前記データ要素に関連付けされる終わり文字とを含む、請求項５に記載のコンピュータで実行される方法。
【請求項７】
マトリックスコードシンボルにデータをエンコードするためのエンコーダであって、
前記エンコーダは、
データ要素表を記憶するためのメモリを備え、
前記データ要素表のデータ要素は、少なくとも１つの文字を含み、
前記データ要素表は、
少なくとも１つのデータ要素の行を含み、前記少なくとも１つのデータ要素の行のうちの１つのデータ要素の行は、少なくとも１つのデータ要素を含み、
前記データ要素表は、
少なくとも１つのデータ要素の列をさらに含み、前記少なくとも１つのデータ要素の列のうちの１つのデータ要素の列は、少なくとも１つのデータ要素を含み、
前記エンコーダは、
前記メモリに結合されたプロセッサをさらに備え、
前記プロセッサは、
前記データ要素表を文字列に変換し、メモリに記憶する手段と、
前記メモリの文字列を前記マトリックスコードシンボルにエンコードする手段とを備え、
前記文字列に変換する手段は、
前記データ要素表から各データ要素を抽出する手段と、
抽出された各データ要素と、前記各データ要素に関連する識別子と、データ要素の区切りを示す特殊文字とから前記文字列を生成する手段とを含み、
前記識別子それぞれは、関連する前記データ要素の前記データ要素表の行列における行番号及び列番号からなる位置を示す、エンコーダ。
【請求項８】
前記特殊文字は、前記データ要素表の始まりにおいて抽出された前記データ要素に関連付けされる始まり文字と、前記データ要素表の終わりにおいて抽出された前記データ要素に関連付けされる終わり文字とを含む、請求項７に記載のエンコーダ。
【請求項９】
各データ要素は、行ごとの基準で、前記データ要素表から抽出される、請求項７または８に記載のエンコーダ。
【請求項１０】
各データ要素は、列ごとの基準で、前記データ要素表から抽出される、請求項７または８に記載のエンコーダ。
【請求項１１】
マトリックスコードシンボルからデータをデコードするためのデコーダであって、
前記デコーダは、プロセッサと、前記プロセッサに結合されたメモリとを備え、
前記プロセッサは、
前記マトリックスコードシンボルから文字列を読み出し前記メモリに記憶する手段と、
前記メモリに記憶された前記文字列を、前記データを表わすデータ要素表に変換し前記メモリに格納する変換手段とを含み、
前記データ要素表のデータ要素は、少なくとも１つの文字を含み、
前記データ要素表は、
少なくとも１つのデータ要素の行を含み、前記少なくとも１つのデータ要素の行のうちの１つのデータ要素の行は、少なくとも１つのデータ要素を含み、
前記データ要素表は、
少なくとも１つのデータ要素の列をさらに含み、前記少なくとも１つのデータ要素の列のうちの１つのデータ要素の列は、少なくとも１つのデータ要素を含み、
前記文字列は、前記データ要素表の各データ要素と、前記各データ要素に関連する識別子と、データ要素の区切りを示す特殊文字とからなり、
前記識別子それぞれは、関連する前記データ要素の前記データ要素表の行列における行番号及び列番号からなる位置を示し、
前記変換手段は、
前記文字列から前記特殊文字を検出する手段と、
前記文字列から前記識別子を識別する手段と、
前記文字列から各データ要素を抽出する手段と、
抽出された各データ要素と、当該データ要素に関連する識別子を用いて、前記データ要素表を生成する手段を含む、デコーダ。
【請求項１２】
前記特殊文字は、前記データ要素表の始まりにおいて抽出された前記データ要素に関連付けされる始まり文字と、前記データ要素表の終わりにおいて抽出された前記データ要素に関連付けされる終わり文字とを含む、請求項１１に記載のデコーダ。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の分野
本発明は、概して、データのエンコーディングおよびデコーディングに関連し、より特定的には、データ要素表をマトリックスコードシンボルにエンコードおよびデコードする方法に関する。
【背景技術】
【０００２】
発明の背景
近年、バーコードのようなマトリックスコードシンボルが、様々な雑誌、本、広告物、および新聞に印刷されている。これらのマトリックスコードシンボルは、ユーザに、雑誌または本に関する追加的な情報を提供する。一次元バーコードのような従来のバーコードは、異なる太さのバーの単一列として構成される。一次元バーコードは、単一の軸に沿って読出し可能である。一次元バーコードを読出すとき、バーの列がデコードされてテキスト情報のようなデータを表わす。しかしながら、一次元バーコードは、数字のようなテキスト情報を表わすためにバーコードによって用いられるバーの数および空間のために、小さい記憶容量を有する。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
より多くのデータ量を記憶するために、二次元バーコードが用いられ得る。二次元バーコードも、マトリックスコードシンボルとして知られている。二次元バーコードは、二進数の「０」および「１」を表す、黒と白の画素のグリッドまたはマトリックスを含む。さらに、二次元バーコードによって記憶されるデータ量は、一次元バーコードによって記憶されるデータ量よりも多い。しかしながら、二次元バーコードは、データを表わすために多くの量の空間を消費し得る。
【０００４】
したがって、マトリックスコードシンボル上にデータを表わすために必要とされる空間量を低減する、マトリックスコードシンボルへデータをエンコードおよびデコードする方法が必要とされている。
【課題を解決するための手段】
【０００５】
本発明の様々な実施形態は、マトリックスコードシンボルにデータをエンコードおよびデコードする、コンピュータで実行される方法を提供する。本発明の第１の局面は、マトリックスコードシンボルにデータをエンコードする、コンピュータで実行される方法を提供することである。方法は、データ要素表形式のデータを受信することを含む。データ要素表のデータ要素は、１つまたはより多くの文字を含む。１つまたはより多くの文字は、限定されないが、アルファベット、数字、特殊文字、および英数字を含み得る。データ要素表は、１つまたはより多くのデータ要素の行を含む。データ要素表は、また、１つまたはより多くのデータ要素の列を含む。方法は、さらに、データ要素表を文字列に変換することを含む。その後、文字列は、マトリックスコードシンボルにエンコードされる。
【０００６】
本発明の第２の局面は、マトリックスコードシンボルからデータをデコードする、コンピュータで実行される方法を提供することである。文字列が、最初に、マトリックスコードシンボルから読込まれる。文字列は、その後、データを表わすデータ要素表に変換される。
【０００７】
添付の図面は、それにおいて、同様の参照番号は個別の図を通して同一のまたは機能的に同じ要素を示し、以下の詳細な説明とともに本明細書に含まれかつその一部を形成し、本発明のすべてに従う様々な実施形態を記述するためならびに様々な原理および利点を説明するために機能する。
【図面の簡単な説明】
【０００８】
【図１】本発明の様々な実施形態が機能し得る、例示的な環境を示す図である。
【図２】マトリックスコードシンボルを示す図である。
【図３】本発明の実施形態に従う、マトリックスコードシンボルにデータ要素表のようなデータをエンコードする方法のフローチャートである。
【図４】本発明の実施形態に従う、データ要素表を文字列に変換する方法のフローチャートである。
【図５】本発明の実施形態に従う、マトリックスコードシンボルからデータをデコードする方法のフローチャートである。
【図６】本発明の実施形態に従う、文字列をデータ要素表に変換する方法のフローチャートである。
【図７】本発明の実施形態に従う、マトリックスコードシンボルにデータをエンコードするためのエンコーダのフロー図である。
【図８】本発明の実施形態に従う、マトリックスコードシンボルからデータをデコードするためのデコーダのフロー図である。
【発明を実施するための形態】
【０００９】
当業者は、図中の要素は、単純さおよび明確さのために説明されており、縮尺通りに必ずしも描かれていないことを理解するであろう。たとえば、図中のいくつかの要素の寸法は、本発明の実施形態の理解を向上することを助けるために、他の要素と比較して誇張され得る。
【００１０】
発明の詳細な説明
本発明に従う詳細な実施形態を説明する前に、実施形態は、マトリックスコードシンボルにデータをエンコードおよびデコードする方法に関連する方法ステップおよび装置要素の組み合わせに主として属することに気付くべきである。したがって、装置要素および方法ステップは、図面において従来のシンボルによってどこが占められるかが表わされており、本明細書の利益を有する、当業者には容易に明らかである詳細を伴う開示が曖昧にならないように、本発明の実施形態の理解に関するこれら特定の詳細を示す。
【００１１】
詳細な説明の節において与えられる説明は、手順、ステップ、論理ブロック、プロセッシング、および、コンピュータメモリ内のデータビットについての操作の他のシンボル表現を含む。手順、コンピュータ実行ステップ、論理ブロック、プロセスなどは、ここでは概して、所望の結果を導くステップまたは指令の自己矛盾のないシーケンスであると考えられる。本明細書で記述されるステップは、物理量の物理的操作を必要とする。通常、必要不可欠ではないが、これらの物理量は、コンピュータシステムにおいて、記憶され、転送され、組合わされ、比較され、および他の操作がなされることが可能な、電気的または時期的信号の形式をとる。さらに、説明を容易にするために、これらの信号は、ビット、値、要素、シンボル、文字、語句、数字などと称される。
【００１２】
しかしながら、これらおよび類似の語句のすべては、適当な物理量に関連しているべきであり、かつ、単に、説明を容易にするためにこれらの物理量に適用される符号に過ぎないことに注意すべきである。以下の説明から明らかであるように、特に言及しない場合には、本発明を通して、「受信する」、「変換する」、「エンコードする」、「抽出する」、「創出する」、「加える」、「読み出す」、「検出する」、「識別する」、「生成する」、「デコードする」などのような語句を利用する説明は、コンピュータシステム、あるいは類似の電子演算装置によって実行される動作およびプロセスを称し、それらは、コンピュータのレジスタまたはメモリ内の物理（電子的）量として表わされるデータを操作し、かつ、コンピュータシステムメモリまたはレジスタあるいは他の情報記憶、転送または表示装置における物理量として同様に表わされる他のデータへ変換する。
【００１３】
例として、限定ではないが、コンピュータ使用可能媒体は、コンピュータ記憶媒体および通信媒体を含み得る。コンピュータ記憶媒体は、コンピュータ読出可能指令、データ構造、プログラムモジュール、または他のデータのような情報の記憶のための、任意の方法および技術で実現される、揮発性および不揮発性、取り外し可能および取り外し不可能な媒体を含む。
【００１４】
図１は、本発明の様々な実施形態が機能し得る、例示的な環境１００を示す。環境１００は、エンコーダ１０２と、マトリックスコードシンボル１０４と、デコーダ１０６とを含む。エンコーダ１０２の例は、限定されないが、装置、回路、ソフトウェアプログラム、およびアルゴリズムを含み得る。エンコーダ１０２は、データを受信するとともに、それをマトリックスコードシンボル１０４に記憶する前にデータをエンコードするように構成される。マトリックスコードシンボルは、二次元バーコードまたは三次元バーコードであり得る。一実施形態においては、マトリックスコードシンボル１０４は、図２に示されるような正方形または長方形のパターン内に配列された、黒いセルおよび白いセルを含む、二次元バーコードであり得る。黒いセルはビット「０」を表わし、白いセルはビット「１」を表わし得る。あるいは、黒いセルはビット「１」を表わし、白いセルはビット「０」を表わしてもよい。マトリックスコードシンボル１０４が記憶するデータ量は、マトリックスコードシンボル１０４の寸法に依存し得る。マトリックスコードシンボル１０４内に記憶されたデータは、データ要素表の形式であり得る。データ要素表は、１つまたはより多くのデータ要素の行を含み得る。同様に、データ要素表は、１つまたはより多くのデータ要素の列を含み得る。これは、図３と関連して詳細に説明される。
【００１５】
データ要素表をエンコードするために、エンコーダ１０２は、１つまたはより多くの文字エンコーディングスキームを用い得る。１つまたはより多くの文字エンコーディングスキームの例は、限定はされないが、情報交換用米国標準コード（American  Standard  Code  for  Information  Interchange：ＡＳＣＩＩ）、ユニコード、モールス信号、ＥＣＣ２００  ＡＳＣＩＩエンコーディング、およびＩＳＯ−８８５９−１スキームを含む。このように、エンコーダ１０２は、データ要素表をエンコードし、１つまたはより多くの文字エンコーディングスキームを用いて、それをマトリックスコードシンボル１０４に記憶する。エンコードされたデータ要素表をマトリックスコードシンボル１０４に記憶するために、エンコードされたデータ要素表は、マトリックスコードシンボル１０４上に描画的にエンコードされ得るフォーマットに変換され得る。たとえば、エンコードされたデータは、「０」および「１」に変換されて、それをマトリックスコードシンボル１０４に記憶される。
【００１６】
デコーダ１０６は、マトリックスコードシンボル１０４に記憶された、エンコードされたデータ要素表をデコードすることによって、データ要素表を読み出すように構成される。デコーダ１０６の例は、限定されないが、装置、回路、ソフトウェアプログラム、スキャナ、データマトリックスリーダ、およびアルゴリズムを含む。デコーダ１０６は、エンコーダ１０２によって使用される１つまたはより多くの文字エンコーディングスキームに対応する文字デコーディングスキームを用いて、データ要素表を読み出す。
【００１７】
図３は、本発明の実施形態に従う、データをマトリックスコードシンボルにエンコードする、コンピュータで実行される方法のフローチャートを示す。マトリックスコードシンボルは、正方形または長方形パターンのいずれかに配列された、黒いセルおよび白いセルを含む、データマトリックスバーコードである。これは図１と関連して説明されている。
【００１８】
図３に示されるように、データは、ステップ３０２にて、データ要素表の形式で受信される。データ要素表のデータ要素は、１つまたはより多くの文字を含む。１つまたはより多くの文字は、限定されないが、アルファベット、数字、特殊文字、および英数字を含み得る。１つまたはより多くの文字は、多言語文字であり得る。１つまたはより多くの文字は、限定されないが、アラビア語および英語を含む、１つ又はより多くの言語に関連し得る。さらに、データ要素表は、１つまたはより多くのデータ要素の行を含む。１つまたはより多くのデータ要素の行の１つのデータ要素の行は、１つまたはより多くのデータ要素を含む。データ要素表は、また、１つまたはより多くのデータ要素の列を含む。同様に、１つまたはより多くのデータ要素の列の１つのデータ要素の列は、１つまたはより多くのデータ要素を含む。データ要素表を受信すると、ステップ３０４にて、データ要素表は文字列に変換される。データ要素表を文字列に変換する方法は、図４に関連して詳細に説明される。その後、ステップ３０６にて、文字列は、マトリックスコードシンボルにエンコードされる。文字列は、１つまたはより多くの文字エンコーディングスキームを用いてエンコードされ得る。１つまたはより多くの文字エンコーディングスキームの例は、限定されないが、情報交換用米国標準コード（ＡＳＣＩＩ）、ユニコード、モールス信号、ＥＣＣ２００  ＡＳＣＩＩエンコーディング、およびＩＳＯ−８８５９−１スキームを含む。
【００１９】
図４は、本発明の実施形態に従う、データ要素表を文字列に変換する、コンピュータで実行される方法のフローチャートを示す。図４に示されるように、ステップ４０２にて、各データ要素がデータ要素表から抽出されて、抽出されたデータ要素の組が取得される。表１に示されるようなデータ要素表の例を考える。
【００２０】
【表１】
0005476346.tif 000002
【００２１】
一実施形態においては、各データ要素は、行ごと基準（row-by-row basis）で、データ要素表から抽出される。たとえば、各データ要素は、以下のような順序で、行ごと基準で表１から抽出される。
【００２２】
Day/Time, 8-10, 10-12, Saturday, Study, Lab, Sunday, Study, Lab
あるいは、各データ要素は、列ごと基準（column-by-column basis）で、データ要素表から抽出される。たとえば、各データ要素は、以下のような順序で、列ごと基準で表１から抽出される。
【００２３】
Day/Time, Saturday, Sunday, 8-10, Study, Study, 10-12, Lab, Lab
各データ要素がデータ要素表から抽出されると、ステップ４０４にて、抽出されたデータ要素の組から文字列が生成される。文字列は、各抽出されたデータ要素に関連した識別子を抽出されたデータ要素の組に加えることによって生成される。識別子は、データ要素表における各データ要素の位置を表わす。たとえば、識別子「11」が抽出されたデータ要素「Day/Time」に加えられ、「11 Day/Time」として表わされる。識別子「11」は、データ要素「Day/Time」が、表１の第１行，第１列から抽出されたことを示す。同様に、識別子「12」、「13」、「21］、「22」、「23」、「31」、「32」および「33」が抽出されたデータ要素「8-10」、「10-12」、「Saturday」、「Study」、「Lab」、「Sunday」、「Study」および「Lab」にそれぞれ加えられる。
【００２４】
文字列が生成されている間に、１つまたはより多くの特殊文字も、抽出されたデータ要素の組の各データ要素に加えられる。１つまたはより多くの特殊文字は、限定されないが、「＼」、「*」、「^」および「&」を含み得る。文字列を生成している間に、任意の他の特殊文字が加えられてもよいことが当業者には明白であろう。１つまたはより多くの特殊文字は、各抽出されたデータ要素の始まりを示すために、各抽出されたデータに加えられる。実施形態においては、１つまたはより多くの特殊文字は、各抽出されたデータの始まりに加えられる。この場合には、１つまたはより多くの特殊文字は、各抽出されたデータ要素の区切りとして作用し得る。たとえば、２つの特殊文字「＼＼」が、抽出されたデータ要素「Day/Time」、「8-10」、「10-12」、「Saturday」、「Study」、「Lab」、「Sunday」、「Study」および「Lab」の始まりに加えられる。さらに、１つまたはより多くの特殊文字が、最初に抽出されたデータ要素の終わりに加えられて得る。最初に抽出されたデータ要素の終わりへ１つまたはより多くの特殊文字を加えることは、データ要素表の始まりを示す。たとえば、特殊文字「＾」が、最後に抽出されたデータ要素の終わりに加えられる。識別子および１つまたはより多くの特殊文字を、表１の各抽出されたデータ要素に加えることによって、以下のような形式で文字列が生成される。
【００２５】
＼＼11 Day/Time＼＼12 8-10＼＼13 10-12＼＼21 Saturday＼＼22 Study＼＼23 Lab＼＼31 Sunday＼＼32 Study＼＼33 Lab ^
あるいは、特殊文字「^」のような１つまたはより多くの特殊文字は、最後に抽出されたデータ要素の始まりに加えられてもよい。最後の抽出されたデータ要素の始まりへ１つまたはより多くの特殊文字を加えることは、データ要素表の終わりを示す。また、１つまたはより多くの特殊文字は、最初に抽出されたデータ要素の始まり、および、最後に抽出されたデータ要素の終わりの双方に加えられてもよい。
【００２６】
他の実施形態においては、識別子「R」が抽出されたデータ要素「Day/Time」に加えられ、「R Day/Time」のように表わされる。識別子「R」は、データ要素「Day/Time」が、テーブル１の第１の行から抽出されたことを示す。さらに、識別子「C」が、抽出されたデータ要素「8-10」に加えられ、「C 8-10」のように表わされる。識別子「C」は、データ要素「8-10」が、表１の第２の列から抽出されたことを示す。さらに、特殊文字「^」が、テーブル１の各抽出されたデータ要素の始まりに加えられてもよい。この場合、特殊文字「^」は、テーブル１の各抽出されたデータ要素についての区切りとして作用し得る。他の実施形態においては、「^E」のような、識別子と特殊文字との組み合わせが、最後に抽出されたデータ要素「Lab」の終わりに追加され、データ要素表の終わりを示す。識別子および特殊文字を、表１の各抽出されたデータ要素に加えることによって、文字列は、以下の形式で生成される。
【００２７】
^R Day/Time ^C 8-10 ^C 10-12 ^R Saturday ^C Study ^C Lab ^R Sunday ^C Study ^C Lab ^E
一実施形態においては、データ要素が多言語であり得るデータ要素表である。このような場合においては、データ要素表の１つまたはより多くの行はアラビア語であり、データ要素表の１つまたはより多くの列は英語であり得る。さらに、各データ要素が、データ要素表から抽出されて、抽出されたデータ要素の組が取得される。データ要素が抽出されると、抽出されたデータ要素の組から、文字列が生成される。文字列は、各抽出されたデータ要素に関連した識別子を、抽出されたデータ要素の組に加えることによって生成される。文字列を生成している間に、１つまたはより多くの特殊文字も、抽出されたデータ要素の組の各抽出されたデータ要素に加えられる。
【００２８】
文字列を生成すると、文字列は、図１に関連して説明されたように、マトリックスコードシンボルにエンコードされる。データ要素表の文字列への変換、および１つまたはより多くの特殊文字を文字列内に加えることは、マトリックスコードシンボルのデータ記憶容量を増加するのを容易にする。
【００２９】
マトリックスコードシンボルにエンコードされたデータは読み出される必要があり、そのため、データはマトリックスコードシンボルからデコードされる。図５は、本発明の実施形態に従う、マトリックスコードシンボルからデータをデコードする、コンピュータで実行される方法のフローチャートを示す。マトリックスコードシンボルにエンコードされたデータは、データ要素表であり得る。データ要素表のデータ要素は、１つまたはより多くの文字を含む。データ要素表および１つまたはより多くの文字は、図３に関連して詳細に説明されている。
【００３０】
図５に示されるように、ステップ５０２にて、文字列がマトリックスコードシンボルから読み出される。文字列は、図３に関連して、詳細が説明されている。マトリックスコードシンボルから文字列を読み出すために、マトリックスコードシンボルは、マトリックスコードシンボルからの黒いセルおよび白いセルを読むことによってスキャンされ得る。文字列を読み出すと、ステップ５０４にて、文字列は、データ要素表に変換される。文字列をデータ要素表に変換する方法は、図６に関連して詳細に説明される。データ要素表は、マトリックスコードシンボルからデコードされたデータを表わす。
【００３１】
図６は、本発明の実施形態に従う、文字列をデータ要素表に変換する、コンピュータで実行される方法のフローチャートを示す。図６に示されるように、ステップ６０２にて、１つまたはより多くの特殊文字が、文字列から検出される。１つまたはより多くの特殊文字は、限定されないが、「＼」、「*」、「^」および「&」を含み得る。任意の他の特殊文字が文字列から検出されてもよいことが、当業者には明白であろう。一実施形態においては、１つまたはより多くの特殊文字は、文字列の各データ要素の始まりにおいて検出され得る。１つまたはより多くの特殊文字の１つの特殊文字は、文字列において対応するデータ要素の始まりを示す。文字列が、以下の形式である例を考える。
【００３２】
＼＼11 Day/Time＼＼12 8-10＼＼13 10-12＼＼21 Saturday＼＼22 Study＼＼23 Lab＼＼31 Sunday＼＼32 Study＼＼33 Lab ^
この場合においては、２つの特殊文字「＼＼」が、データ要素「Day/Time」の始まりにおいて検出される。文字列の始まりにおいて検出された１つまたはより多くの特殊文字は、文字列の始まりを示す。あるいは、１つまたはより多くの特殊文字は、文字列の終わりにおいて検出されてもよい。この場合は、１つまたはより多くの特殊文字は、文字列の終わりを示す。たとえば、上記で示された文字列の終わりにおいて検出された特殊文字「^」は、文字列に対応するデータ要素表の終わりを示す。一実施形態においては、１つまたはより多くの特殊文字は、文字列の始まり、および文字列の終わりの双方で検出されてもよい。
【００３３】
さらに、ステップ６０４にて、１つまたはより多くの識別子が文字列から識別される。１つまたはより多くの識別子の１つの識別子は、データ要素表における対応するデータ要素の位置を示す。たとえば、識別子「11」は、文字列から識別され、データ要素「Day/Time」の位置を示す。識別子「11」は、データ要素表の第１行，第１列を示す。
【００３４】
１つまたはより多くの識別子が識別されると、ステップ６０６にて、１つまたはより多くのデータ要素が文字列から抽出される。たとえば、文字列から抽出されたデータ要素は、「Day/Time」、「8-10」、「10-12」、「Saturday」、「Study」、「Lab」、「Sunday」、「Study」および「Lab」である。その後、ステップ６０８にて、１つまたはより多くの抽出されたデータ要素および各抽出されたデータ要素に関連する識別子を用いて、データ要素表が生成される。たとえば、データ要素表は、表２に示されるように生成される。
【００３５】
【表２】
0005476346.tif 000003
【００３６】
図７は、本発明に実施形態に従う、マトリックスコードシンボルにデータをエンコードするためのエンコーダ７００のフロー図を示す。マトリックスコードシンボルは、正方形または長方形パターンのいずれかに配列された黒いセルおよび白いセルを含むデータマトリックスバーコードである。これは、図１に関連してすでに説明されている。データは、データ要素表の形式で受信され得る。データ要素表のデータ要素は、１つまたはより多くの文字を含む。１つまたはより多くの文字は、限定されないが、アルファベット、数字、特殊文字、および英数字を含み得る。１つまたはより多くの文字は、多言語文字であり得る。１つまたはより多くの文字は、限定されないが、アラビア語および英語を含む１つまたはより多くの言語に関連し得る。さらに、データ要素表は、１つまたはより多くのデータ要素の行を含む。１つまたはより多くのデータ要素の行の１つのデータ要素の行は、１つまたはより多くのデータ要素を含む。データ要素表は、また、１つまたはより多くのデータ要素の列を含む。同様に、１つまたはより多くのデータ要素の列の１つのデータ要素の列は、１つまたはより多くのデータ要素を含む。エンコーダ７００は、メモリ７０２と、メモリ７０２に結合されたプロセッサ７０４とを含む。データはマトリックスコードシンボルにエンコードされる。一実施形態においては、データは、エンコーダ７００に関連する（図７には図示しない）インターフェースを通して受信されるマトリックスコードシンボルにエンコードされる。
【００３７】
エンコードされるべきデータ要素表の受信後、データ要素表は、メモリ７０２に記憶され得る。データ要素表は、プロセッサ７０４によってメモリ７０２から読み出される。さらに、プロセッサ７０４は、データ要素表を文字列に変換する。データ要素表を文字列に変換するために、プロセッサ７０４は、データ要素表の各データ要素を抽出し、抽出されたデータ要素の組を取得する。一実施形態においては、各データ要素は、各データ要素は、行ごと基準でデータ要素表から抽出される。他の実施形態においては、各データ要素は、列ごと基準でデータ要素表から抽出される。抽出されたデータ要素の組を取得すると、プロセッサ７０４は、各抽出されたデータ要素に関連する識別子を、抽出されたデータ要素の組に加える。各データ要素に関連する識別子は、データ要素表の各データ要素の位置を表わす。これは、図３に関連して説明されている。
【００３８】
さらに、プロセッサ７０４は、各抽出されたデータ要素に関連する特殊文字を、抽出されたデータ要素の組に加える。１つまたはより多くの特殊文字は、限定されないが、「＼」、「*」、「^」および「&」を含み得る。文字列を生成している間に、任意の他の特殊文字が加えられてもよいことが当業者には明白であろう。１つまたはより多くの特殊文字は、各抽出されたデータに加えられ、各抽出されたデータ要素の始まりを示す。１つまたはより多くの特殊文字は、各抽出されたデータ要素の区切りとして作用し得る。一実施形態においては、１つまたはより多くの特殊文字は、各抽出されたデータ要素の始まりに加えられ得る。このように加えられた１つまたはより多くの特殊文字は、データ要素表の始まりを示す。あるいは、１つまたはより多くの特殊文字は、最後に抽出されたデータ要素の終わりに加えられてもよい。この場合に加えられた１つまたはより多くの特殊文字は、データ要素表の終わりを示す。代替的な実施形態においては、１つまたはより多くの特殊文字は、最初に抽出されたデータ要素の始まり、および最後に抽出されたデータ要素の終わりの双方に加えられてもよい。
【００３９】
抽出されたデータ要素の組に、抽出されたデータ要素の組の各抽出されたデータ要素に関連する識別子を加え、そして、１つ又はより多くの特殊文字を加えると、プロセッサ７０４は文字列を生成する。プロセッサ７０４によって生成された文字列は、メモリ７０２に記憶される。その後、プロセッサ７０４は、その文字列をマトリックスコードシンボルにエンコードする。プロセッサ７０４は、文字列をマトリックスコードシンボルにエンコードするために、文字エンコーディングスキームを用い得る。１つまたはより多くの文字エンコーディングスキームは、限定されないが、情報交換用米国標準コード（ＡＳＣＩＩ）、ユニコード、モールス信号、ＥＣＣ２００  ＡＳＣＩＩエンコーディング、およびＩＳＯ−８８５９−１スキームを含む。
【００４０】
一実施形態においては、データ要素表は、エンコーダを用いて文字列にエンコードされる。データ要素表を文字列にエンコードすると、エンコーダ７００は、その文字列をマトリックスコードシンボルにエンコードする。
【００４１】
図８は、本発明に実施形態に従う、マトリックスコードシンボルからデータをデコードするためのデコーダ８００のフロー図を示す。デコーダ８００は、メモリ８０２と、メモリ８０２に結合されたプロセッサ８０４とを含む。プロセッサ８０４は、マトリックスコードシンボルからデータを読み出す。マトリックスコードシンボルから読み出されたデータは、文字列であり得る。マトリックスコードシンボルから読み出された文字列は、メモリ８０２に記憶される。さらに、プロセッサ８０４は、１つまたはより多くの特殊文字を、文字列から検出する。１つまたはより多くの特殊文字の１つの特殊文字は、文字列における対応するデータ要素の始まりを示す。データ要素表のデータ要素は、１つまたはより多くの文字を含む。１つまたはより多くの文字は、限定されないが、アルファベット、数字、特殊文字、および英数字を含み得る。データ要素表およびデータ要素は、図３および図７に関連して、詳細に説明されている。
【００４２】
一実施形態においては、１つまたはより多くの特殊文字は、文字列の各データ要素の始まりにおいて検出され得る。さらに、１つまたはより多くの特殊文字は、文字列の始まりにおいて検出され得る。検出された１つまたはより多くの特殊文字は、文字列の始まりを示す。あるいは、１つまたはより多くの特殊文字は、文字列の終わりにおいて検出され得る。このように検出された１つまたはより多くの特殊文字は、文字列の終わりを示す。また、１つまたはより多くの特殊文字は、最初に抽出されたデータ要素の始まり、および、最後に抽出されたデータ要素の終わりの双方において検出されてもよい。
【００４３】
１つまたはより多くの特殊文字を検出すると、プロセッサ８０４は、文字列から、１つまたはより多くの識別子を識別する。１つまたはより多くの識別子の１つの識別子は、データ要素表における対応するデータ要素の位置を示す。さらに、プロセッサ８０４は、文字列から、１つまたはより多くのデータ要素を抽出する。その後、文字列から抽出された１つまたはより多くのデータ要素、および１つまたはより多くの各データ要素に関連する識別子を用いて、プロセッサ８０４はデータ要素表を生成する。プロセッサ８０４によって生成されたデータ要素表は、メモリ８０２に記憶される。
【００４４】
一実施形態においては、文字列は、デコーダ８００を用いて、マトリックスコードシンボルからデコードされる。マトリックスコードシンボルから文字列をデコードすると、デコーダ８００は、その文字列からデータ要素表をデコードする。
【００４５】
本明細書に記載された方法の様々な実施形態は、データ要素表として表わされたデータを、マトリックスコードシンボルにエンコードおよびデコードすることを容易にする。方法は、データ要素表を文字列に変換すること、および、その文字列をマトリックスコードシンボルにエンコードすることを含む。文字列は、１つまたはより多くの文字列を区切りとして含む。マトリックスコードシンボル内に文字列の形式でデータを記憶することは、マトリックスコードシンボルへのデータの記憶容量を増加することを容易にする。
【００４６】
当業者は、本明細書に記載された上記の認識された利点および他の利点が、単に例に過ぎず、本発明の様々な実施形態の利点および全ての完全な表示であることが意味されていないことが理解できるだろう。
【００４７】
上述の明細書においては、本発明の特定の実施形態が説明された。しかしながら、当業者は、以下の特許請求の範囲に記載されるような本発明の範囲から逸脱することなく、様々な修正および変更がなされることを理解する。したがって、明細書および図面は、制限の意味というよりはむしろ例示の意味と見なされるべきであり、そのような修正の全てが、本発明の範囲に含まれることが企図される。利益、利点、課題の解法、および、任意の利益、利点、または解法を生じさせあるいはより明白にさせるいかなる要素も、請求項の任意または全ての必須の、避けられない、あるいは不可欠な特徴または要素として解釈されるべきではない。本発明は、本出願の継続中になされるいかなる補正を含む添付の請求項、および発行されたこれらの請求項の均等物によってのみ定義される。
【図１】
0005476346.tif 000004
【図２】
0005476346.tif 000005
【図３】
0005476346.tif 000006
【図４】
0005476346.tif 000007
【図５】
0005476346.tif 000008
【図６】
0005476346.tif 000009
【図７】
0005476346.tif 000010
【図８】
0005476346.tif 000011