(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0009】
発明の詳細な説明
本発明に係る実施例を詳細に説明する前に、当該実施例は、テキストをマトリクスコードシンボルに符号化し、復号化する方法に関連する方法ステップおよび装置構成部品の組合せに主に属することに注目すべきである。したがって、装置構成部品および方法ステップは、図中で従来の記号によって適宜表わされており、本明細書中の説明の恩恵を受ける当業者にとって容易に明らかとなる詳細で開示内容を曖昧にすることを避けるために、本発明の実施例の理解に関連する特定の詳細のみが示されている。
【0010】
詳細な説明の段落で与えられる説明は、コンピュータメモリ内のデータビットに対する演算の手順、ステップ、論理ブロック、処理、および他の記号表現を含む。手順、コンピュータ実行ステップ、論理ブロック、プロセス等は、ここでは概して、所望の結果をもたらすステップまたは命令の自己一致シーケンスであると考えられる。本明細書中に記載のステップは、物理量の物理的操作を必要とする。通常、必ずしもそうではないが、これらの量は、コンピュータシステムにおいて格納、転送、結合、比較、または他の方法で操作可能な電気または磁気信号の形態をとる。さらに説明を容易にするために、これらの信号は、ビット、値、要素、記号、文字、用語、数などと称される。
【0011】
しかし、これらおよび同様の用語はすべて適切な物理量に関連付けられることになっており、説明を簡単にするためにこれらの量に適用されるラベルに過ぎないことに留意すべきである。特に記載しない限り、または以下の説明から明らかでない限り、本発明全体にわたって、「修正する」、「切捨てる」、「計算する」、「選択する」、「受取る」、「除去する」、「符号化する」、「前に置く」、「後に置く」、「取出す」、「マッピングする」、「復号化する」などの用語を用いる説明は、コンピュータシステムのレジスタおよびメモリ内の物理(電子)量として表わされるデータを、コンピュータシステムメモリまたはレジスタまたは他のそのような情報記憶、送信もしくは表示装置内の物理量として同様に表わされる他のデータに操作および変換するコンピュータシステム、または同様の電子計算装置によって実行される動作およびプロセスを指すことが認識される。
【0012】
一例として、限定されずに、コンピュータ使用可能媒体は、コンピュータ記憶媒体および通信媒体を含み得る。コンピュータ記憶媒体は、コンピュータ読取可能命令、データ構造、プログラムモジュールまたは他のデータなどの情報を記憶するための任意の方法または技術で実現される揮発性および不揮発性の、取外し可能および不可能な媒体を含む。
【0013】
本発明のさまざまな実施例は、テキストをマトリクスコードシンボルに符号化し、復号化するコンピュータ実行方法を提供する。本発明の第1の局面は、テキストをマトリクスコードシンボルに符号化するコンピュータ実行方法を提供することである。テキストは複数の文字を含む。当該方法は、複数の文字のうちの1つ以上の文字の各々に関連付けられた所定の符号化値を受取ることを含む。当該方法はさらに、1つ以上の文字の各々に関連付けられた所定の符号化値を修正して、修正後符号化値が対応の所定の符号化値よりも長さが短いように、対応の修正後符号化値を得ることを含む。その後、対応の修正後符号化値を用いて、1つ以上の文字をマトリクスコードシンボルに符号化する。
【0014】
本発明の第2の局面は、マトリクスコードシンボルを復号化するコンピュータ実行方法を提供することである。当該方法は、マトリクスコードシンボルから1つ以上の符号化値を取出すことを含む。1つ以上の符号化値は、1つ以上の修正後符号化値を含み得る。当該方法はさらに、1つ以上の修正後符号化値の各々を、対応の所定の符号化値とマッピングすることを含み、修正後符号化値は、対応の所定の符号化値よりも長さが短い。その後、対応の所定の符号化値を復号化して対応文字を求める。
【0015】
図1は、本発明のさまざまな実施例が機能し得る例示的な環境100を示す。環境100は、エンコーダ102、マトリクスコードシンボル104、およびデコーダ106を含む。エンコーダ102の例は、装置、回路、ソフトウェアプログラム、およびアルゴリズムを含み得るが、これらに限定されない。エンコーダ102は、テキストを受取り、テキストを符号化した後、それをマトリクスコードシンボル104に格納するように構成される。ある実施例では、マトリクスコードシンボル104は、正方形または矩形のいずれか一方のパターンに配列された白黒セルを含むデータマトリクスバーコードであり得る。黒色セルはビット0を表わし、白色セルはビット1を表わし得る。代替的に、黒色セルがビット1を表わし、白色セルがビット0を表わしてもよい。マトリクスコードシンボル104が保持するデータ量は、マトリクスコードシンボル104の寸法に依存する。マトリクスコードシンボル104の例は、一次元データマトリクス、二次元データマトリクス、および三次元データマトリクスを含み得るが、これらに限定されない。
【0016】
テキストを符号化するために、エンコーダ102は1つ以上の文字符号化スキームを使用し得る。1つ以上の文字符号化スキームの例は、情報交換用米国標準コード(ASCII)、ユニコード、モールスコード、ECC200 ASCII符号化、およびISO−8859−1スキームを含むが、これらに限定されない。したがって、エンコーダ102は、1つ以上の文字符号化スキームを用いてテキストを符号化し、それをマトリクスコードシンボル104に格納する。符号化テキストをマトリクスコードシンボル104に格納するために、符号化テキストは、マトリクスコードシンボル104に図式化して符号化可能なフォーマットに変換され得る。たとえば、符号化テキストは“0”および“1”に変換されて、マトリクスコードシンボル104に格納される。
【0017】
デコーダ106は、マトリクスコードシンボル104に格納された符号化テキストを復号化することによってテキストを受取るように構成される。デコーダ106の例は、装置、回路、ソフトウェアプログラム、スキャナ、データマトリクス読取装置、およびアルゴリズムを含み得るが、これらに限定されない。デコーダ106は、エンコーダ102が使用する1つ以上の文字符号化スキームに関連付けられた対応の文字復号化スキームを使用してテキストを取出す。
【0018】
図2は、本発明の実施例に係るテキストをマトリクスコードシンボルに符号化するためのコンピュータ実行方法のフローチャートを示す。マトリクスコードシンボルは、正方形または矩形のいずれか一方のパターンに配列された白黒セルを含むデータマトリクスバーコードである。各黒色セルはビット“0”に対応し、各白色セルはビット“1”に対応し得る。代替的に、各黒色セルがビット“1”に対応し、各白色セルがビット“0”に対応してもよい。ある実施例では、マトリクスコードシンボルに符号化するテキストを、テキストを収容するように構成されたテキストボックスを介して受取る。テキストは複数の文字を含み、複数の文字のうちの各文字が1つ以上の言語に対応する。たとえば、複数の文字のうちの各文字がアラビア文字または英文字に対応し得る。アラビア文字および英文字は、ランダムなシーケンスおよび所定のシーケンスのいずれか一方でテキストに現れ得る。たとえば、アラビア文字はテキスト内で常に英文字の後に続き得る。同様に、アラビア文字および英文字は、ランダムな順序でテキストに現れ得る。ある実施例では、複数の文字はアラビア語などの言語に対応し得る。
【0019】
さらに、複数の文字は、1つ以上の空白、1本以上の線、1つ以上のタブ、1つ以上のパッド文字、および1つ以上の特殊文字のうちの1つ以上も含み得る。1つ以上のパッド文字のうちの1つのパッド文字は、空間を埋めるのに用いる文字に対応する。たとえば、フィールドの長さが7文字であり、当該フィールドに3文字しか割当てられていない場合、パッド文字を用いてフィールド内の残りの空間を埋める。一方、1つ以上の特殊文字のうちの1つの特殊文字は、記号、数学の記号、および非英語言語の文字に対応し得る。
【0020】
テキストをマトリクスコードシンボルに符号化する前に、テキストが前処理されて改良テキストが得られ得る。前処理の際、1つ以上の特殊文字がテキストから除去され得る。たとえば、以下のテキスト“HE
*|LLO WORL^D”は、特殊文字“
*”、特殊文字“|”、および特殊文字“^”を含む。前処理の際、テキストから特殊文字が除去されて、改良テキストが得られる。したがって、特殊文字の除去後に、改良テキスト“HELLO WORLD”が得られる。さらに、テキストが分析されて、マトリクスコードシンボルに符号化すべき複数の文字が識別され得る。分析に基づいて、テキスト内に存在する複数の文字についての統計が作成され得る。統計は、テキスト内の言語に関連付けられた文字の数、テキスト内の桁の数、テキスト内の連続桁の数、空白の数、新たな線の数、タブの数、パッド文字の数、特殊文字の数、まだ追加されていない文字の数、ある言語から別の言語への移行の数に関する情報を含み得る。たとえば、テキストが1つ以上のアラビア文字、1つ以上の英文字、および1つ以上の桁を含む場合、テキストが分析されてテキストについての統計が作成される。統計は、アラビア文字の数、英文字の数、英語からアラビア語への移行の数、およびアラビア語から英語への移行の数に関連付けられた情報を提供し得る。さらに、前処理の際、マトリクスコードシンボルに関連付けられた情報も求めることができる。当該情報は、マトリクスコードシンボルのサイズおよび寸法を含み得る。
【0021】
テキストを前処理した後、文字符号化スキームを用いて、複数の文字がマトリクスコードシンボルに符号化される。文字符号化スキームの例はASCII符号化スキームを含み得るが、これに限定されない。ステップS202において、複数の文字のうちの1つ以上の文字の各々に関連付けられた所定の符号化値が、ASCII表およびユニコード表の一方から文字符号化スキームによって取出される。文字に関連付けられた取出された所定の符号化値は、同等のASCII数および同等のユニコード数の一方に対応し得る。ASCII表は000から255の値を含み、各文字を表わすのに1バイトを使用する。ユニコード表は、16進法の0000からFFFFの値を含む。ユニコードは、各文字を表わすのに16ビットまたは2バイトを使用する。したがって、ユニコードはASCIIと比べて2倍のデータビットが必要である。さらに、アラビア語のユニコード文字は1563から1618である。
【0022】
1つ以上の文字の各々に関連付けられた言語に基づいて、所定の符号化値を受取る。たとえば、文字がアラビア語であると判断された場合、ユニコード表の1563から1618の範囲内から、アラビア文字に対応する所定の符号化値が取出される。
【0023】
同様に、文字が英語であると判断された場合、英文字に対応する所定の符号化値を受取る。したがって、1つ以上の文字の各々に関連付けられた言語に基づいて、所定の符号化値を受取る。
【0024】
1つ以上の文字の各々に関連付けられた所定の符号化値を受取った後、1つ以上の文字のうちの1文字に関連付けられた所定の符号化値の前に、移行コード値が置かれる。移行コード値は、上記所定の符号化値の前の所定の符号化値に関連付けられた文字に対応する言語が、上記所定の符号化値に関連付けられた文字に対応する言語とは異なることを示すために用いられる。したがって、移行コード値は、テキスト内のある言語から別の言語への移行に関する情報を提供する。たとえば、移行コード値は、テキスト内のアラビア語から英語への移行を示し得る。同様に、移行コード値は、英語からアラビア語への移行に関する情報を提供する。これは、
図3を参照してさらに説明する。
【0025】
代替的に、1つ以上の文字の各々に関連付けられた所定の符号化値を受取った後、1つ以上の文字のうちの1文字に関連付けられた所定の符号化値の後に、移行コード値が置かれる。移行コード値は、上記所定の符号化値の後の所定の符号化値に関連付けられた文字に対応する言語が、上記所定の符号化値に関連付けられた文字に対応する言語とは異なることを示すために用いられる。これは、
図3を参照してさらに説明する。
【0026】
その後、ステップS204において、1つ以上の文字の各々に関連付けられた所定の符号化値が修正されて、対応の修正後符号化値が得られる。ある実施例では、1つ以上の文字は、テキスト内に存在するアラビア文字に対応し得る。修正後符号化値は、対応の所定の符号化値よりも長さが短い。ある実施例では、対応の所定の符号化値を切捨てることによって修正後符号化値が得られる。切捨ては、所定の符号化値から1桁以上を除去することを含み得る。たとえば、アラビア文字に関連付けられた所定の符号化値“1563”を、“1563”から1および5の桁を除去することによって切捨てて、修正後符号化値“63”を得る。同様に、所定の符号化値“1563”を、“1563”から1の桁を除去することによって切捨てて、修正後符号化値“563”を得る。修正後符号化値は対応の所定の符号化値よりも長さが短いため、修正後符号化値を表わすのに1バイトしか使用せずに済む。
【0027】
対応の修正後符号化値を得た後、ステップ206において、対応の修正後符号化値を用いて、1つ以上の文字がマトリクスコードシンボルに符号化される。ある実施例では、1つ以上の修正後符号化値に1つ以上のエラー訂正コードが加えられた後、1つ以上の文字がマトリクスコードシンボルに符号化され得る。同様に、1つ以上の修正後符号化値に1つ以上のパッド文字が加えられた後、マトリクスコードシンボルに符号化され得る。1つ以上のパッド文字の例は、スペース、ビット0、ビット1、およびパッド文字として確保しておいたユニコード表からの文字を含み得る。1つ以上のパッド文字は、パディング動作時に1つ以上の修正後符号化値に加えられるダミーデータに対応する。パディング動作の例は、ビットパディング動作、バイトパディング動作、およびゼロパディング動作を含み得るが、これらに限定されない。パディング動作は、予め定められた値と等しいマトリクスコードシンボル内の符号化値の長さをもたらすように行なわれる。たとえば、予め定められた値が長さ5に対応し、修正後符号化値の数が2に等しい場合は、3つのパッド文字が加えられる。その後、1つ以上のパッド文字が、1つ以上の修正後符号化値と共に、マトリクスコードシンボルに符号化される。
【0028】
図3は、本発明の実施例に係る1つ以上の文字のうちの1文字に関連付けられた所定の符号化値の前または後に移行コード値を付けるためのコンピュータ実行方法のフローチャートを示す。移行コード値は、ある言語においてあまり用いられない文字に関連付けられる。ある実施例では、移行コード値は、複数の文字内に存在する1つ以上の特殊文字に対応し得る移行文字に関連付けられる。移行文字の例は、“|”、“
*”、“^”、および“&”を含み得るが、これらに限定されない。任意の他の文字も移行文字として用いられ得ることが当業者にとって明白であろう。ステップ302において、1つ以上の文字の各々に関連付けられた所定の符号化値が受取られる。所定の符号化値を受取った後、ステップ304aにおいて、1つ以上の文字のうちの1文字に関連付けられた所定の符号化値の前に移行コード値が付けられる。ある実施例では、移行コード値は、移行文字のASCII値に対応し得る。ASCII値はASCII表から取出される。そして、移行文字に対応する取出されたASCII値が、所定の符号化値の前に付けられる。たとえば、ある実施例では、“|”が移行文字であり得る。“|”のASCII値は、ASCII表の中の124である。このASCII値が取出され、所定の符号化値の前に付けられる。
【0029】
移行コード値は、ある文字に関連付けられたある所定の符号化値の前の当該所定の符号化値に関連付けられた当該文字に対応する言語が、当該文字に対応する言語とは異なることを示す。たとえば、ASCII値124は、ある文字に関連付けられたある所定の符号化値の前の当該所定の符号化値に関連付けられた当該文字に対応する言語が、当該文字に対応する言語とは異なることを示す。
【0030】
代替的に、1つ以上の文字の各々に関連付けられた所定の符号化値を受取ったことに応答して、ステップ304bにおいて、1つ以上の文字のうちの1文字に関連付けられた所定の符号化値の後に移行コード値が付けられる。この場合、移行コード値は、ある文字に関連付けられたある所定の符号化値の後の当該所定の符号化値に関連付けられた当該文字に対応する言語が、当該所定の符号化値に関連付けられた当該文字に対応する言語とは異なることを示す。
【0031】
移行コード値は言語移行を示すために用いられるため、移行コード値に関連付けられた移行文字はこの目的のために特別に確保される。したがって、テキスト内の移行文字のすべての出現が、前処理の段階でテキストから削除される。符号化の際、および文字の前または後に移行コード値を付ける際にテキストに移行文字がないことを確実にするように、テキストから移行文字が削除される。テキストから移行文字を削除した後、テキスト内の言語の移行を示すために移行コード値が加えられる。たとえば、表1は、前処理の際にテキストから移行文字を除去する例を示す。
【0033】
表1の第1行第1欄のエントリに示されるように、テキストは、移行文字“|”の4つのインスタンスを含む。“英語1”と名付けられたバーコードにテキストを符号化する前に、表1に示されるテキスト“Hello| This is a b |arc || ode”から移行文字の各インスタンスが除去される。表1の第1行第2欄のテキストは、当該テキストから移行文字の各インスタンスを除去した後に得られる。同様に、表1の第2行第1欄は、移行文字“|”の2つのインスタンスを含むテキストを示し、表1の第2行第2欄は、テキストから移行文字の各インスタンスを除去した後のテキストを示す。
【0034】
ステップ304aにおける移行コード値を前に置くステップ、およびステップ304bにおける移行コード値を後に置くステップの1つ以上を実行した後、ステップ306において、移行コード値がマトリクスコードシンボルに符号化される。移行文字は、1つ以上の文字と共にマトリクスコードシンボルに符号化される。ある実施例では、二言語テキストがアラビア文字で終了し得る。そのような場合、二言語テキスト内のアラビア文字の始まりを示すために移行コード値が加えられ得る。しかし、移行コード値は、二言語テキストの末尾に存在するアラビア文字の末尾では省略され、マトリクスコードシンボルに符号化されない。アラビア文字の後には英文字が続いていないため、移行コード値は不要である。
【0035】
表2に示されるように、2つの二言語テキストをマトリクスコードシンボルに符号化する本明細書中に記載の例示的な実施例を考えてみる。第1の二言語テキストは表1の第1行第1欄に示され、第2の二言語テキストは表2の第2行第1欄に示される。各二言語テキストは、表2に示されるような複数の文字を含む。複数の文字のうちの各文字は、英語またはアラビア語である言語に関連付けられる。
【0037】
第1の二言語テキストおよび第2の二言語テキストを符号化する前に、各二言語テキストは前処理されて特殊文字のすべてのインスタンスが除去される。表2に示されるように、第1の二言語テキストおよび第2の二言語テキストは、特殊文字を全く含んでいない。したがって、前処理の際、各二言語テキストは分析されて、二言語テキストについての統計が作成される。統計は、アラビア文字の数、空白の数、線の数、タブの数、英文字の数、アラビア語から英語への移行の数、および英語からアラビア語への移行の数のうちの1つ以上を含む。統計に基づいて、ASCII符号化スキームを用いて、複数の文字のうちの1つ以上の文字の各々に関連付けられた所定の符号化値が受取られる。1つ以上の文字は、各二言語テキスト内のアラビア文字に対応する。したがって、1つ以上のアラビア文字のうちの各アラビア文字に関連付けられた所定の符号化値が受取られる。所定の符号化値は、
図4に示されるユニコード表から受取られる。
図4は、各アラビア文字に関連付けられた所定の符号化値を含む。また、
図4に示されるように、所定の符号化値は1563から1618である。
【0038】
所定の符号化値を受取った後、1つ以上のアラビア文字のうちの1つのアラビア文字に関連付けられた所定の符号化値の前に移行文字が付けられる。表2の第1行第2欄に示されるように、第1の二言語テキスト内に移行文字“|”が加えられる。移行文字は、1つ以上のアラビア文字の各々に関連付けられたある所定の符号化値の前の当該所定の符号化値に関連付けられた文字に対応する言語が英語であることを示す。代替的に、所定の符号化値を受取った後、1つ以上のアラビア文字のうちの1つのアラビア文字に関連付けられた所定の符号化値の後に移行文字が付けられる。表2の第2行第2欄に示されるように、第2の二言語テキスト内に移行文字“|”が加えられる。移行文字は、1つ以上のアラビア文字の各々に関連付けられたある所定の符号化値の後の当該所定の符号化値に関連付けられた文字に対応する言語が英語であることを示す。ある実施例では、1つ以上のアラビア文字のうちの1つのアラビア文字に関連付けられた所定の符号化値の後に付けられる移行文字は、符号化の際に省略され得る。移行文字は、1つ以上のアラビア文字の後に英文字がなければ省略される。たとえば、表2の第1行第2欄に示されるように、移行文字は“Hello|71070475”の末尾で省略されている。
【0039】
その後、1つ以上のアラビア文字の各々に関連付けられた所定の符号化値が修正されて、対応の修正後符号化値が得られる。対応の修正後符号化値を得るために、所定の符号化値が切捨てられる。ある実施例では、所定の符号化値の切捨てを実行するために、所定の符号化値から1桁以上が除去される。
図4に見られるように、1つ以上のアラビア文字の各々に関連付けられた所定の符号化値の長さは4桁である。符号化の際、所定の符号化値に関連付けられた4桁を表わすのに2バイトを使用することになる。しかし、1つ以上のアラビア文字に関連付けられた所定の符号化値は“1”の桁で始まることに注目することができる。ここで、1つ以上のアラビア文字の所定の符号化値から“1”の桁を除去しても、所定の符号化値の表現に違いはない。しかし、所定の符号化値の長さは4桁から3桁に減る。したがって、1つ以上のアラビア文字の所定の符号化値から“1”の桁を除去する。
【0040】
同様に、所定の符号化値から“1”の桁を除去した後、各所定の符号化値は“5”の桁または“6”の桁のいずれか一方で始まる。また、“5”の桁または“6”の桁の後の最後の2桁は一意的であり、非反復的である。したがって、“5”の桁および“6”の桁を除去しても、1つのアラビア文字に関連付けられた各所定の符号化値は一意的であるため、所定の符号化値同士の間で衝突は起こらない。
図4に示されるように、63から94の所定の符号化値の前は常に5の桁であり、00から18の所定の符号化値の前は常に6の桁である。したがって、所定の符号化値の長さを3桁から2桁に減らすことができる。所定の符号化値を2桁に減らすことによって、1つ以上のアラビア文字の各アラビア文字を表わすのに必要なのは1バイトで済む。したがって、1つ以上のアラビア文字の各々に関連付けられた所定の符号化値の切捨てに応答して、対応の修正後符号化値が得られる。1つ以上のアラビア文字の各々に関連付けられた対応の修正後符号化値が
図5に示される。
【0041】
対応の修正後符号化値を得た後、対応の修正後符号化値を用いて、1つ以上のアラビア文字が符号化される。対応の修正後符号化値を用いて符号化された、第1の二言語テキストに関連付けられた1つ以上のアラビア文字が表2の第1行第2欄に示される。同様に、対応の修正後符号化値を用いて符号化された、第2の二言語テキストに関連付けられた1つ以上のアラビア文字が表2の第2行第2欄に示される。
【0042】
図6は、本発明の実施例に係るマトリクスコードシンボルを復号化するコンピュータ実行方法のフローチャートを示す。マトリクスコードシンボルは、複数の符号化値を含む。複数の符号化値のうちの1つの符号化値は、1文字に対応する。当該文字は、ある言語に関連付けられる。ある実施例では、当該言語はアラビア語および英語の一方であり得る。ステップ602において、マトリクスコードシンボルから1つ以上の符号化値が取出される。1つ以上の符号化値は、1つ以上の修正後符号化値を含む。1つ以上の修正後符号化値のうちの1つの修正後符号化値は、1つのアラビア文字に関連付けられる。1つ以上の符号化値を取出した後、ステップ604において、1つ以上の修正後符号化値の各々が対応の所定の符号化値とマッピングされる。修正後符号化値は、対応の所定の符号化値よりも長さが短い。これは、
図2を参照して既に説明した。
【0043】
1つ以上の修正後符号化値の各々を対応の所定の符号化値とマッピングするために、1つ以上の移行コード値が1つ以上の符号化値の中で識別される。1つ以上の移行コード値は、1つ以上の修正後符号化値の出現も示す。たとえば、符号化値のストリングが1つ以上の所定の符号化値および1つ以上の修正後符号化値を含む場合、1つ以上の移行コード値を用いて、ストリング内の1つ以上の修正後符号化値の出現を示す。これは、
図7を参照してさらに説明する。1つ以上の移行コード値を識別した後、1つ以上の修正後符号化値の各々が対応の所定の符号化値とマッピングされる。マッピングは、所定の符号化表を用いて、1つ以上の符号化値の各々に関連付けられた対応の所定の符号化値を求めることによって実行され得る。所定の符号化表の例は、ASCII表およびユニコード表を含み得るが、これらに限定されない。これは、
図8を参照してさらに説明する。代替的に、マッピングは、対応の所定の符号化値を得るために、1つ以上の修正後符号化値の各修正後符号化値に1桁以上を追加することによって実行され得る。これは、
図8を参照してさらに説明する。その後、ステップ606において、対応の所定の符号化値を復号化して対応文字を求める。
【0044】
図7は、本発明の実施例に係る1つ以上の移行コード値を1つ以上の符号化値の中で識別するコンピュータ実行方法のフローチャートを示す。ステップ702において、マトリクスコードシンボルから1つ以上の符号化値が取出される。1つ以上の符号化値は、データマトリクス読取装置、スキャナ、およびレーザのうちの1つ以上を用いて取出され得る。その後、ステップ704において、1つ以上の移行コード値が1つ以上の符号化値の中で識別される。1つ以上の移行コード値のうちの1つの移行コード値は、移行文字に関連付けられた符号化値に対応する。移行文字の例は、“|”、“
*”、“^”、および“&”を含み得るが、これらに限定されない。ある実施例では、移行コード値は、移行文字“|”に関連付けられたASCII値124に対応し得る。移行コード値124を用いて、1つ以上の符号化値のうちの対応文字に関連付けられた言語が識別され得る。
【0045】
1つ以上の識別された移行コード値に基づいて、1つ以上の修正後符号化値が1つ以上の符号化値の中で識別される。たとえば、移行コード値が、英文字に対応する1つ以上の符号化値の後に識別された場合、当該移行コード値の後の符号化値は、アラビア文字に関連付けられた修正後符号化値に対応すると推測され得る。同様に、移行コード値が、1つ以上のアラビア語符号化値の後に識別された場合、当該移行コード値の後の符号化値は英文字に対応すると推測され得る。
【0046】
図8は、本発明の実施例に係る1つ以上の修正後符号化値の各々に関連付けられた対応の所定の符号化値を得るコンピュータ実行方法のフローチャートを示す。ステップ802において、マトリクスコードシンボルから1つ以上の符号化値が取出される。1つ以上の符号化値は、1つ以上の修正後符号化値を含む。1つ以上の修正後符号化値は、1つ以上の移行コード値を用いて1つ以上の符号化値の中で識別される。これは
図7を参照して説明した。1つ以上の符号化値を取出した後、ステップ804aにおいて、1つ以上の修正後符号化値の各々に関連付けられた対応の所定の符号化値が求められる。対応の所定の符号化値は、所定の符号化表を用いて求められる。所定の符号化表の例は、ASCII表およびユニコード表を含み得るが、これらに限定されない。所定の符号化表を用いて、1つ以上の修正後符号化値の各々が対応の所定の符号化値とマッピングされる。マッピングは、探索動作、および1つ以上の修正後符号化値内に存在する1桁以上の整合の一方によって実行され得る。たとえば、アラビア文字の修正後符号化値“66”に関連付けられた桁が、ユニコード表内のアラビア文字に関連付けられた“1563から1618”の範囲内の検索のクエリとして用いられ得る。これに応答して、修正後符号化値を最後の2桁として含む整合値“1566”が所定の符号化表から取出される。
【0047】
代替的に、ステップ804bにおいて、対応の所定の符号化値を得るために、1つ以上の修正後符号化値の各々に1桁以上が加えられ得る。1つ以上の修正後符号化値の各々に加えるべき桁数は、予め定義され得る。たとえば、対応の所定の符号化値を得るために、1つ以上の修正後符号化値の各々に2桁が加えられ得る。
図5の表に示されるアラビア文字の修正後符号化値を再び参照して、修正後符号化値の各々の長さは2に等しい。対応の所定の符号化値を得るために、63から94の修正後符号化値に15の桁を加え、00から18の修正後符号化値に16の桁を加える。15および16の桁を加えることによって得られる対応の所定の符号化値は、
図4の表に示される。
【0048】
マトリクスコードシンボルを復号化して当該マトリクスコードシンボル内に存在する情報を取出す、本明細書中に記載の例示的な実施例を考えてみる。マトリクスコードシンボルは、表3に示される第1の二言語テキストおよび第2の二言語テキストに関連付けられた情報を含む。
【0050】
マトリクスコードシンボルから取出すべき第1の二言語テキストが表3の第1行第3欄に表わされ、マトリクスコードシンボルから取出すべき第2の二言語テキストが表3の第2行第3欄に表わされる。第1の二言語テキストおよび第2の二言語テキストは、マトリクスコードシンボルを復号化することによって取出される。マトリクスコードシンボルを復号化するために、マトリクスコードシンボルから1つ以上の符号化値が取出される。第1の二言語テキストに関連付けられた1つ以上の符号化値が表3の第1行第2欄に表わされ、第2の二言語テキストに関連付けられた1つ以上の符号化値が表3の第2行第2欄に表わされる。1つ以上の符号化値は、1つ以上の修正後符号化値を含む。1つ以上の修正後符号化値は、第1の二言語テキストおよび第2の二言語テキスト内に存在するアラビア文字に対応する。1つ以上の修正後符号化値は、表3の第1行第2欄および第2行第2欄に示される。
【0051】
1つ以上の修正後符号化値を取出した後、1つ以上の修正後符号化値の各々が、対応の所定の符号化値とマッピングされる。アラビア文字に関連付けられた修正後符号化値は、当該アラビア文字に関連付けられた対応の所定の符号化値よりも長さが短い。たとえば、表3の第1行第2欄のアラビア文字に関連付けられた、取出された修正後符号化値“71”は、当該アラビア文字に関連付けられた対応の所定の符号化値“1571”よりも長さが短い。1つ以上の修正後符号化値を識別するために、1つ以上の移行コード値が1つ以上の符号化値の中で識別される。1つ以上の移行コード値のうちの1つの移行コード値を用いて、アラビア語に関連付けられた1つ以上の修正後符号化値が識別される。
【0052】
表3では、移行コード値は、移行文字“|”に関連付けられた符号化値に対応する。移行文字“|”の移行コード値は124である(表3には図示せず)。表3に示されるように、第1の二言語テキストに関連付けられた第1行第2欄は、移行コード値の1つのインスタンスを含む。同様に、第2の二言語テキストに関連付けられた第2行第2欄は、移行コード値の2つのインスタンスを含む。
【0053】
1つ以上の修正後符号化値を識別した後、1つ以上の修正後符号化値の各々が、対応の所定の符号化値とマッピングされる。ある実施例では、マッピングは、所定の符号化表を用いて、1つ以上の修正後符号化値の各々に関連付けられた対応の所定の符号化値を求めることによって実行され得る。所定の符号化表は、
図4を参照して既に説明した。たとえば、第1行第2欄に存在する修正後符号化値“71”を所定の符号化表の中で探索して、対応の符号化値が求められる。
図4に示されるように、修正後符号化値“71”に関連付けられた対応の所定の符号化値は“1571”であると判断される。同様に、第1の二言語テキストおよび第2の二言語テキストに関連付けられた各修正後符号化値を所定の符号化表の中で探索して、対応の所定の符号化値が取出される。
【0054】
別の実施例では、対応の所定の符号化値を得るために、1つ以上の修正後符号化値の各々に1桁以上が加えられ得る。各修正後符号化値に加えるべき1桁以上は、予め定義され得る。たとえば、1つ以上の修正後符号化値が63から94の範囲内に存在する場合、15が加えられる。したがって、修正後符号化値71に15が加えられて、71に関連付けられた対応の所定の符号化値を表わす1571が得られる。同様に、1つ以上の修正後符号化値が00から18の範囲内に存在する場合、16の桁が加えられる。
【0055】
その後、対応の所定の符号化値を復号化して対応文字を求める。対応文字は、
図4に示される所定の符号化表を用いて求められる。対応の所定の符号化値の各々を復号化した後、第1の二言語テキストおよび第2の二言語テキストがオリジナルフォーマットで得られる。対応の所定の符号化値の各々を復号化した後に得られる、取出された第1の二言語テキストおよび第2の二言語テキストは、表3の第1行第3欄および第2行第3欄にそれぞれ示される。
【0056】
図9は、本発明の実施例に係るテキストをマトリクスコードシンボルに符号化するためのエンコーダ900を示す。マトリクスコードシンボルは、正方形または矩形のいずれか一方のパターンに配列された白黒セルを含むデータマトリクスバーコードである。これは、
図2を参照して既に説明した。エンコーダ900は、メモリ902、およびメモリ902に結合されたプロセッサ904を含む。マトリクスコードシンボルに符号化すべきテキストは、エンコーダ900に関連付けられたインターフェイス(
図9には図示せず)を介して受取られる。ある実施例では、インターフェイスは、テキストを収容するように構成されたテキストボックスに対応し得る。テキストは複数の文字を含み、複数の文字のうちの各文字は1つ以上の言語に対応する。さらに、複数の文字は、1つ以上の空白、1本以上の線、1つ以上のタブ、1つ以上のパッド文字、および1つ以上の特殊文字のうちの1つ以上も含む。符号化すべきテキストをインターフェイスを介して受取った後、テキストはメモリ902に保管される。
【0057】
テキストをマトリクスコードシンボルに符号化する前に、テキストはプロセッサ904によって処理され得る。プロセッサ904はメモリ902からテキストを取出し、テキストを前処理して、テキスト内に存在する1つ以上の特殊文字を除去する。さらに、プロセッサ904はテキストを分析して、マトリクスコードシンボルに符号化すべき複数の文字を識別する。分析に基づいて、プロセッサ904はテキスト内に存在する複数の文字についての統計を作成し、統計をメモリ902に格納する。統計は、テキスト内の言語に関連付けられた文字の数、テキスト内の桁の数、テキスト内の連続桁の数、空白の数、新たな線の数、タブの数、パッド文字の数、特殊文字の数、まだ追加されていない文字の数、ある言語から別の言語への移行の数に関する情報を含み得る。
【0058】
その後、プロセッサ904は、文字符号化スキームを用いて統計に基づいて、テキストをマトリクスコードシンボルに符号化する。文字符号化スキームの例はASCII符号化スキームを含み得るが、これに限定されない。プロセッサ904は、ASCII表およびユニコード表などの所定の符号化表から、テキスト内の複数の文字のうちの1つ以上の文字の各々に関連付けられた所定の符号化値を取出す。ある実施例では、所定の符号化表はメモリ902に格納され得る。取出された所定の符号化値は、1つ以上の文字の各々に関連付けられた同等のASCII数および同等のユニコード数の一方に対応する。プロセッサ904は、1つ以上の文字の各々に関連付けられた言語に基づいて、所定の符号化値を取出す。これは
図2で既に説明した。
【0059】
所定の符号化値を取出した後、プロセッサ904は、1つ以上の文字のうちの1文字に関連付けられた所定の符号化値の前に移行コード値を付ける。移行コード値は、ある文字に関連付けられたある所定の符号化値の前の当該所定の符号化値に関連付けられた当該文字に対応する言語が、当該文字に対応する言語とは異なることを示す。代替的に、プロセッサ904は、1つ以上の文字のうちの1文字に関連付けられた所定の符号化値の後に移行コード値を付ける。移行コード値は、ある文字に関連付けられたある所定の符号化値の後の当該所定の符号化値に関連付けられた当該文字に対応する言語が、当該所定の符号化値に関連付けられた当該文字に対応する言語とは異なることを示すために用いられる。これは、
図3を参照して既に説明した。
【0060】
その後、プロセッサ904は、1つ以上の文字の各々に関連付けられた所定の符号化値を修正して、対応の修正後符号化値を得る。所定の符号化値を修正するために、プロセッサ904は所定の符号化値を切捨て得る。プロセッサ904は、所定の符号化値から1桁以上を除去することによって所定の符号化値を切捨てて、対応の修正後符号化値を得ることができる。これは、
図2を参照して既に説明した。対応の修正後符号化値を得た後、プロセッサ904は、対応の修正後符号化値を用いて、1つ以上の文字をマトリクスコードシンボルに符号化する。
【0061】
図10は、本発明の実施例に係るマトリクスコードシンボルを復号化するためのデコーダ1000を示す。マトリクスコードシンボルは、複数の符号化値を含む。複数の符号化値のうちの1つの符号化値は1文字に対応し、当該文字はある言語に関連付けられる。デコーダ1000は、メモリ1002、およびメモリ1002に結合されたプロセッサ1004を含む。複数の符号化値がマトリクスコードシンボルから取出され、メモリ1002に格納される。複数の符号化値は、データマトリクス読取装置、データマトリクススキャナ、およびレーザのうちの1つ以上を用いて取出され得る。複数の符号化値をメモリ1002に格納した後、プロセッサ1004は、複数の符号化値から1つ以上の修正後符号化値を取出す。プロセッサ1004は、複数の符号化値のうちの1つ以上の符号化値内に存在する1つ以上の移行コード値を識別することによって、1つ以上の修正後符号化値を識別する。1つ以上の移行コード値は、1つ以上の符号化値の文字に関連付けられた言語を識別する。
【0062】
1つ以上の修正後符号化値を識別した後、プロセッサ1004は、1つ以上の修正後符号化値の各々を、対応の所定の符号化値とマッピングする。プロセッサ1004は、所定の符号化表を用いて、1つ以上の修正後符号化値の各々をマッピングする。所定の符号化表の例は、ASCII表およびユニコード表を含み得るが、これらに限定されない。代替的に、プロセッサ1004は、対応の所定の符号化値を得るために、1つ以上の修正後符号化値の各々に1桁以上を加え得る。これは、
図8を参照して既に説明した。その後、プロセッサ1004は対応の所定の符号化値を復号化して対応文字を求める。
【0063】
本明細書中に記載の方法のさまざまな実施例によって、テキストのマトリクスコードシンボルへの符号化および復号化が容易になる。当該方法は、複数の文字のうちの1つ以上の文字の各々に関連付けられた所定の符号化値を受取り、1つ以上の文字の各々に関連付けられた所定の符号化値を修正して、対応の修正後符号化値を得る。対応の修正後符号化値は、対応の所定の符号化値よりも長さが短い。これによって、テキストをマトリクスコードシンボルに格納する容量が容易に増加する。さらに、当該方法は、マトリクスコードシンボルから1つ以上の符号化値を取出し、1つ以上の符号化値内の1つ以上の修正後符号化値の各々を、対応の所定の符号化値とマッピングする。
【0064】
当業者であれば、本明細書中に記載の上記の認識された利点および他の利点は例示的なものに過ぎず、本発明のさまざまな実施例のすべての利点を完全に表わしているわけではないことを認識するであろう。
【0065】
上記の明細書では、本発明の特定的な実施例を説明した。しかし、当業者であれば、以下の請求項に記載されるような本発明の範囲から逸脱することなくさまざまな修正および変更がなされ得ることを認識するであろう。したがって、明細書および図面は限定的ではなく例示的なものであると見なされ、すべてのそのような修正は本発明の範囲内にあると意図される。いずれかの長所、利点、または解決策をもたらし得るか、より顕著にし得る長所、利点、問題の解決策、およびいずれの要素も、すべての請求項の重要で必須または不可欠な特徴または要素であると解釈されるべきではない。本発明は、本願の係属中になされるすべての補正、および発行されたそれらの請求項のすべての同等物を含む添付の請求項によってのみ規定される。