JP3643196B2 - 印刷媒体に印刷する情報をエンコードする方法、印刷媒体に印刷された情報をデコードする方法、および2次元データバーコード - Google Patents
印刷媒体に印刷する情報をエンコードする方法、印刷媒体に印刷された情報をデコードする方法、および2次元データバーコード Download PDFInfo
- Publication number
- JP3643196B2 JP3643196B2 JP32653396A JP32653396A JP3643196B2 JP 3643196 B2 JP3643196 B2 JP 3643196B2 JP 32653396 A JP32653396 A JP 32653396A JP 32653396 A JP32653396 A JP 32653396A JP 3643196 B2 JP3643196 B2 JP 3643196B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- bits
- rows
- row
- information
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/10544—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
- G06K7/10821—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices
- G06K7/1093—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices sensing, after transfer of the image of the data-field to an intermediate store, e.g. storage with cathode ray tube
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K1/00—Methods or arrangements for marking the record carrier in digital fashion
- G06K1/12—Methods or arrangements for marking the record carrier in digital fashion otherwise than by punching
- G06K1/121—Methods or arrangements for marking the record carrier in digital fashion otherwise than by punching by printing code marks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
- G06K19/06009—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
- G06K19/06037—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking multi-dimensional coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/1408—Methods for optical code recognition the method being specifically adapted for the type of code
- G06K7/1417—2D bar codes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/1439—Methods for optical code recognition including a method step for retrieval of the optical code
- G06K7/1452—Methods for optical code recognition including a method step for retrieval of the optical code detecting bar code edges
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Electromagnetism (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Toxicology (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Editing Of Facsimile Originals (AREA)
- Printers Characterized By Their Purpose (AREA)
- Image Processing (AREA)
- Record Information Processing For Printing (AREA)
- Facsimile Transmission Control (AREA)
Description
【発明の属する技術分野】
本発明は、広くは、2次元バーコードに関しており、より具体的には、耐久性のあるクロック不要の2次元バーコードのシンボロジと、そのようなバーコードシンボロジでフォーマットされた情報をエンコードすることと、バーコードシンボロジを印刷媒体上に印刷することと、それをデコードすることとに関する。
【0002】
【従来の技術】
いつかは「紙のない社会」に住むことになるだろうとしばしば予測されてはいるものの、紙やその他の印刷媒体は、安価で、効果的で、便利な通信手段としてますます重要になる役割を果たしている。しかし紙についての基本的な制約は、コンピュータの視点からいえば、現在は出力専用のフォーマットになっていることである。紙は、人間が使うための情報を表示する媒体としては好ましいが、いったん印刷されてしまうと、コンピュータがデータを高い信頼性で復元することは、不可能ではないにせよ困難である。光学的文字認識(OCR)は、標準フォントを用いて印刷されたテキストのような比較的、簡単な領域においてこの問題を解決しようとするものであるが、今のところは限られた成功にしか至っていない。認識率(accuracy rate)99%は、おそらく実現可能であり、これだけでも大したものと思えるものの、3000文字のページに平均30文字のOCRエラーが発生することになるので、高価で時間のかかる手作業による後処理が必要となってしまう。
【0003】
また別のアプローチでは、紙(またはマイクロフィルムのような他の印刷媒体)の上に直接、含ませることができる、コンピュータが判読可能なバーコードを利用する。いったんエンコードされると、このようなバーコードは、それを読む人間には明らかだが、コンピュータが認識するには難しい情報(例えば印刷されたテキスト)や、ページを構成するために暗黙のうちに含まれるが、それを読む人間には実質的には不可視の情報(例えばスプレッドシートの数式)や、または紙の上の実際の文字テキストに依存する、しないにかかわらず必要とされるその他の情報をコンピュータによって復元するために用いることができる。
【0004】
ディジタルデータが紙の上に直接、記録される、コンピュータが判読可能なバーコードは、簡単な数字のエンコード技術とスキャニング技術とを用いて、決められた一連の値が割り振られることによって文書または製品の識別をおこなうために知られており、利用されてきている。過去に用いられた文書または製品の識別システムは、現在広い範囲の分野で利用されているバーコードマーカおよびスキャナを含んでいる。紙でできた書類については、例えばHikawaの米国特許第5,051,779号に教示される画像処理のためのジョブ制御シートのように、情報を関連する装置に与えるために、紙の上の特別のマークやパターンが用いられてきている。同様に、Johnsonらに付与された米国特許第5,060,980号に記載されているように、エンコードされた情報を含む識別用のマークが予め印刷されたフォームの表面に印刷されてきている。Johnsonらのシステムによれば、ユーザは、書式の紙コピーの上のフィールドの中に手で書いた情報を入力した後、その書式をスキャンすることによって、コンピュータの中に電子的に記憶される同一の書式の中のフィールドへの挿入をおこなうことができる。さらに他のシステムがBloombergらの米国特許第5,091,966号に記載されている。Bloombergらは、グリフ状のコードをデコードすることを教示している。このようなコードは、紙面上にディジタル的にエンコードされたデータである。これらの識別コードはコンピュータが判読可能なものである。このコードを用いることによって、例えば文書の識別、取り出しおよび送信といった、コンピュータによる文書操作がより容易になる。
【0005】
上述したさまざまな形状のバーコードの他にも、印刷媒体上にディジタル的にエンコードされた情報を表現する、複数の「データライン」すなわち複数のロウを有する「データストリップ」と呼ばれる2次元バーコードもまた、この技術分野ではよく知られている。各データラインロウは、(それぞれの画素が2進値「0」または「1」を表現している)一連の白画素および黒画素から構成されている。各ロウにおいてビットの順番付けをおこなうことによって、そのロウに記憶されるディジタルデータを決めることができる。すべてのロウ内に記憶されたデータが、2次元バーコード内に含まれているデータを規定する。このバーコードを読み取るためには、典型的には、ユーザは、バーコードの長さ方向に沿って垂直に各データラインロウの情報を同時に読み取ることによって、すべてのデータラインロウを読み取る、ハンドスキャナを通す。
【0006】
【発明が解決しようとする課題】
複数のデータラインロウを有するデータストリップ2次元バーコードを紙の媒体と共に用いる従来技術によるシステムの一例は、Brassらに付与された米国特許第4,692,603号、第4,754,127号および第4,782,221号に記載されている。このシステムにおいては、2次元バーコードは、コンピュータプログラムおよび紙面上のデータをエンコードするのに用いられ、ハンドスキャナを用いてスキャニングされる、複数のデータラインロウから構成される。コンピュータプログラムおよびデータをエンコードすることに加えて、これらのデータラインは、トラッキングビットおよび同期ビット(以下の説明では、「クロックビット」と称する)も含んでいる。各データラインロウ内に多数のクロックビットを直接用いることが要求されるために、各ロウ内に記憶可能なディジタルデータの量が大幅に減ってしまう。また、(このようなバーコードを写真複写したり、ファクシミリシステムによって送信したりしたときにはよくあることであるが)、もしクロックビットを有するデータラインロウにダメージが与えられると、このようなクロックビットか失われてしまい、バーコード内にエンコードされた情報をデコードすることは、不可能ではないにしても、難しくなってしまう。
【0007】
Knowlesの米国特許第5,083,214号は、エンコードされたデータそのものの中にクロックビットを埋め込むことがやはり必要になる2次元バーコードシステムを記載している。しかし、同期ビットおよびトラッキングビットを用いてデータのすべてのロウおよびカラムをエンコードするのではなく、Knowlesの第'214号特許は、スキャニング中に同期をとるために、データバーコードの一番上のロウを用いる。また、左端から8本のカラムのビットは、各ロウに含まれているデータビットを読み出すためのクロックを確定するために用いられるクロックビットを含んでいる。 Knowlesの第'214号特許に記載されている2次元バーコードの一番上のロウおよび左端の8本のカラムは、同期をとりクロックを合わせるためだけに用いられるので、バーコードの全データ容量はこれに比例して低下する。また、もしバーコードの一番上のロウあるいは左端の8本のカラムにダメージが与えられると、クロック情報が失われてしまい、従来技術によるその他のシステムと同様に、各データロウ内にエンコードされたデータを読み出すことは、不可能ではないにしても、難しくなってしまう。
【0008】
本発明は、上記課題を解決するためになされたものであり、その目的とするところは、ディジタル的にエンコードされたデータを表現するクロック不要の2次元バーコードを提供することにある。
【0009】
本発明の別の目的は、印刷媒体上に印刷され、媒体に対するダメージに耐えられるだけの十分な耐久性をもつ、クロック不要の2次元バーコードを提供することにある。
【0010】
本発明のさらに別の目的は、ランダマイズされたデータビットを表現する複数の画素を設けることによって、連続する複数の画素からなる長いストリングが同一の色になることを防止し、かつ、不正なデコードを防止する安全性を保証する、クロック不要の2次元バーコードを提供することにある。
【0011】
本発明のさらに別の目的は、データのいくつかロウあるいはカラムが複製されているか、あるいは散逸しているかどうかを判定して、エラーを訂正するために、クロック不要の2次元バーコード内にブロック識別子を設けることにある。
【0012】
本発明のさらに別の目的は、印刷媒体上に印刷するために、クロック不要の2次元バーコードにフォーマットされた情報をエンコードすることにある。
【0013】
本発明のさらに別の目的は、印刷媒体上に印刷されたクロック不要の2次元バーコードのかたちでディジタル的にエンコードされた情報をデコードする方法を提供することにある。
【0014】
本発明のその他のさまざまな目的、効果および特徴は、以下に述べる詳細な説明を読めば容易に明らかになるであろう。また、本発明の新規な特徴は、添付の請求の範囲内で具体的に指摘されるであろう。
【0015】
【課題を解決するための手段】
本発明による印刷媒体上に印刷する情報をエンコードする方法は、該情報を、データビットを表現する1シーケンスの「0」および「1」文字を有するデータストリームに変換するステップと、該データストリームをランダマイズすることによって、1シーケンスの「0」および「1」文字を有するランダマイズされたデータストリームを生成するステップと、該ランダマイズされたデータストリームを、複数のロウおよび複数のカラムの2次元ビットマップにフォーマットするステップと、クロッキングビットなし、かつ、ボーダーなしで該フォーマットされたビットマップを該印刷媒体上に印刷するステップと、を含んでおり、そのことにより上記目的が達成される。
【0016】
本発明による印刷媒体上に印刷する情報をエンコードする方法は、該情報を、データビットを表現する1シーケンスの「0」および「1」文字を有するデータストリームに変換するステップと、該データストリームをマッピングすることによって、複数の所定の空きビット位置をもつ複数のロウおよび複数のカラムのディジタル2次元ビットマップをつくるステップと、該複数の所定の空きビット位置のそれぞれにディジタルブロック識別子を追加するステップであって、該ディジタルブロック識別子がそれぞれ、所定数のブロック識別子ビットと、該ディジタルブロック識別子間のロウ数あるいはカラム数を識別可能とする値と、を有している、ステップと、該ディジタル2次元ビットマップをフォーマットすることによって、データ画素およびブロック識別子画素を有する、画素ベースの2次元ビットマップをつくるステップと、クロッキングビットなし、かつ、ボーダーなしで該フォーマットされたビットマップを該印刷媒体上に印刷するステップと、を含んでおり、そのことにより上記目的が達成される。
【0017】
本発明による印刷媒体上に印刷する情報をエンコードする方法は、該情報を、データビットを表現する1シーケンスの「0」および「1」文字を有するデータストリームに変換するステップと、該データストリームをランダマイズすることによって、データストリームにおいてほぼ同数の「0」文字および「1」文字を生成するステップと、該ランダマイズされたデータストリームをマッピングすることによって、複数の所定の空きビット位置をもつ複数のロウおよび複数のカラムのディジタル2次元ビットマップをつくるステップと、該複数の所定の空きビット位置のそれぞれにディジタルブロック識別子を追加するステップであって、該ディジタルブロック識別子がそれぞれ、所定数のブロック識別子ビットと、該ディジタルブロック識別子間のロウ数あるいはカラム数を識別可能とする値と、を有している、ステップと、該ディジタル2次元ビットマップをフォーマットすることによって、データ画素およびブロック識別子画素を有する、画素ベースの2次元ビットマップをつくるステップと、クロッキングビットなし、かつ、ボーダーなしで該フォーマットされたビットマップを該印刷媒体上に印刷するステップと、を含んでおり、そのことにより上記目的が達成される。
【0018】
ある実施形態では、前記情報を圧縮するステップをさらに含んでいる。
【0019】
ある実施形態では、誤り訂正符号データビットを前記データストリームに追加するステップをさらに含んでいる。
【0020】
ある実施形態では、前記データストリームを複製することによって、エンコード時の信頼性を改善する冗長データを生成するステップをさらに含んでいる。
【0021】
ある実施形態では、前記フォーマットするステップが、前記データストリームにヘッダ情報を追加することによって、標準的なポータブルビットマップ(PBM)フォーマットをつくるステップをさらに含んでいる。
【0022】
ある実施形態では、前記フォーマットするステップが、ロウの長さまたはカラムの長さにそれぞれほぼ等しい長さをもつ、少なくとも1つの水平または垂直デスキューイングストリップを追加するステップをさらに含んでいる。
【0023】
ある実施形態では、前記フォーマットするステップが、前記PBMフォーマットをインキャプシュレーテッドポストスクリプトに変換するステップをさらに含んでいる。
【0024】
ある実施形態では、前記データストリームをランダマイズする前記ステップが、該ストリームを1ビットずつランダマイズする。
【0025】
本発明による所定の情報を表現するデータ画素の複数のロウおよび複数のカラムのかたちで印刷媒体上に印刷された情報をデコードする方法は、該データ画素が第1の色または第2の色のいずれかである、方法であって、該印刷媒体から該情報を読み取るステップと、該複数の画素ロウおよび該複数の画素カラムのそれぞれにおいて、水平エッジ数および垂直エッジ数を求めるステップと、該複数のロウおよび該複数のカラム中から選択されたいくつかのグループをつくり、該選択されたいくつかのグループのそれぞれにおいて、該エッジの数が最小となるロウセンターラインおよびカラムセンターラインをそれぞれ求めるステップと、該ロウセンターラインのそれぞれと、該カラムセンターラインのそれぞれとの交点に位置する2進データを読み出すことによって、該印刷媒体上に印刷されているエンコードされた情報を表現する信号を生成するステップと、を含んでおり、そのことにより上記目的が達成される。
【0026】
本発明による所定の情報を表現するデータ画素の複数のロウおよび複数のカラムのかたちで印刷媒体上に印刷されたランダマイズされた情報をデコードする方法において、該データ画素が第1の色または第2の色のいずれかである、方法は、該印刷媒体から該情報を読み取るステップと、該複数の画素ロウおよび該複数の画素カラムのそれぞれにおいて、水平エッジ数および垂直エッジ数を求めるステップと、該複数のロウおよび該複数のカラム中から選択されたいくつかのグループをつくり、該選択されたいくつかのグループのそれぞれにおいて、該エッジの数が最小となるロウセンターラインおよびカラムセンターラインをそれぞれ求めるステップと、該ロウセンターラインのそれぞれと、該カラムセンターラインのそれぞれとの交点に位置する2進データを読み出すことによって、該印刷媒体上に印刷されているエンコードされた情報を表現するランダマイズされた信号を生成するステップと、該ランダマイズされた信号をデランダマイズすることによって、該媒体上に印刷されている該ランダマイズされた情報をデコードするステップと、を含んでおり、そのことにより上記目的が達成される。
【0027】
本発明によるエンコードされたデータビットを表現するデータ画素の複数のロウおよび複数のカラムのビットマップのかたちで印刷媒体上に印刷された情報をデコードする方法は、該データ画素のうち所定数のデータ画素が、該エンコードされたデータビットのうち比例する数の該エンコードされたデータビットをそれぞれ表現しており、該比例する数の該エンコードされたデータビットが、所定の値を有するブロック識別子ビットを表現する複数のブロック識別子画素によって互いに分離されており、該データ画素および該ブロック識別子画素のそれぞれが、第1の色または第2の色のいずれかである、方法であって、該印刷媒体から該ビットマップを読み取るステップと、該データ画素および該ブロック識別子画素から2進データを読み出すことによって、該ブロック識別子ビットによって互いに分離されている、ある選択された数の該エンコードされたデータビットを有する該ビットマップを表現する2次元ディジタルアレイをつくるステップと、該所定の値と実質的に同じ値を表現するデータビットを選択することによって、該複数のブロック識別子ビットのそれぞれを求めるステップと、該それぞれのブロック識別子ビット毎に、該エンコードされたデータビットのビット数をカウントするステップと、該それぞれのブロック識別子ビット毎に、該エンコードされたデータビットの該比例する数を超える該エンコードされたデータビットのビットを削除するステップと、該エンコードされたデータビットの該数が該比例する数未満である時に、該それぞれのブロック識別子ビット毎に、該エンコードされたデータビットにディジタルビットを追加することによって、該印刷媒体上に印刷されている該情報をデコードするステップと、を含んでおり、そのことにより上記目的が達成される。
【0028】
ある実施形態では、前記エンコードされたデータビットの前記比例する数がそれぞれ、ブロック識別子ビットを表現する前記複数のブロック識別子画素のあるロウによって分離されている、複数のロウの既知の数を含んでおり、前記削除するステップが、該複数のロウの該既知の数を超える該エンコードされたデータビットの複数のロウを削除し、かつ、前記追加するステップが、複数のディジタルビットロウの数が、該複数のロウの該既知の数未満である時に、該複数のディジタルビットロウを追加する。
【0029】
本発明によるエンコードされたデータビットを表現するデータ画素の複数のロウおよび複数のカラムのビットマップのかたちで印刷媒体上に印刷された情報をデコードする方法は、該複数のデータ画素カラムのうち所定数の該データ画素カラムがそれぞれ、該エンコードされたデータビットの該複数のカラムのうち比例する数の該エンコードされたデータビットカラムを表現しており、該比例する数の該エンコードされたデータビットカラムが、所定の値を有するブロック識別子ビットを表現する複数のブロック識別子画素によって互いに分離されており、該データ画素および該ブロック識別子画素のそれぞれが、第1の色または第2の色のいずれかである、方法であって、該印刷媒体から該ビットマップを読み取るステップと、該データ画素および該ブロック識別子画素から2進データを読み出すことによって、該ブロック識別子ビットによって互いに分離されている、該エンコードされたデータビットの複数のロウを有する該ビットマップを表現する2次元ディジタルアレイをつくるステップと、該所定の値と実質的に同じ値を表現するビットを有するカラムを選択することによって、該複数のブロック識別子ビットのそれぞれを決定するステップと、該ブロック識別子ビットを有するそれぞれのカラム毎に、該エンコードされたデータビットの複数のカラムの数をカウントするステップと、該ブロック識別子ビットを有する該それぞれのカラム毎に、該複数のエンコードされたデータビットカラムの該比例する数を超える複数のエンコードされたデータビットカラムを削除するステップと、該複数のエンコードされたデータビットカラムの該数が該比例する数未満である時に、該ブロック識別子ビットを有する該それぞれのカラム毎に、ディジタルビットの複数のカラムを追加することによって、該印刷媒体上に印刷されている該情報をデコードするステップと、を含んでおり、そのことにより上記目的が達成される。
【0030】
本発明によるエンコードされたデータビットを表現するデータ画素の複数のロウおよび複数のカラムのビットマップのかたちで印刷媒体上に印刷されたランダマイズされた情報をデコードする方法は、該複数のデータ画素ロウのうち所定数の該データ画素ロウがそれぞれ、該エンコードされたデータビットの該複数のロウのうち比例する数の該エンコードされたデータビットロウを表現しており、該比例する数の該エンコードされたデータビットロウが、所定の値を有するブロック識別子ビットを表現する複数のブロック識別子画素によって互いに分離されており、該データ画素および該ブロック識別子画素のそれぞれが、第1の色または第2の色のいずれかである、方法であって、該印刷媒体から該ビットマップを読み取るステップと、該ビットマップの該複数のロウおよび該複数のカラムのそれぞれにおいて、水平エッジ数および垂直エッジ数を求めるステップと、該複数のロウおよび該複数のカラム中から選択されたいくつかのグループをつくり、該選択されたいくつかのグループのそれぞれにおいて、該エッジの数が最小となるロウセンターラインおよびカラムセンターラインを求めるステップと、該ロウセンターラインのそれぞれと、該カラムセンターラインのそれぞれとの交点に位置する2進データを読み出すことによって、該エンコードされたデータビットおよび該ブロック識別子ビットの複数のロウを有する該ビットマップを表現する2次元ディジタルアレイをつくるステップと、該所定の値と実質的に同じ値を表現するビットを選択することによって、該複数のブロック識別子ビットのそれぞれを求めるステップと、該ブロック識別子ビットを有するそれぞれのロウ毎に、該エンコードされたデータビットの複数のロウの数をカウントするステップと、該ブロック識別子ビットを有する該それぞれのロウ毎に、該複数のエンコードされたデータビットロウの該比例する数を超える該複数のエンコードされたデータビットロウを削除するステップと、該複数のエンコードされたデータビットロウの該数が該比例する数未満である時に、該ブロック識別子ビットを有する該それぞれのロウ毎に、複数のディジタルビットロウを追加するステップと、該ビットマップの該ディジタル表現をデランダマイズすることによって、該印刷媒体上に印刷されている該情報をデコードするステップと、を含んでおり、そのことにより上記目的が達成される。
【0031】
本発明によるエンコードされたデータビットを表現するデータ画素の複数のロウおよび複数のカラムのビットマップのかたちで印刷媒体上に印刷されたランダマイズされた情報をデコードする方法において、該データ画素のうち所定数のデータ画素がそれぞれ、該エンコードされたデータビットのうち比例する数の該エンコードされたデータビットを表現しており、該比例する数の該エンコードされたデータビットが、所定の値を有するブロック識別子ビットを表現する複数のブロック識別子画素によって互いに分離されており、該データ画素および該ブロック識別子画素のそれぞれが、第1の色または第2の色のいずれかであり、該印刷媒体が、印刷されたテキスト情報をさらに有しており、該エンコードされた情報が、該情報に隣接する少なくとも1つの垂直または水平デスキューイングストリップを有している、方法であって、該印刷媒体から該テキスト情報および該ビットマップを読み取るステップと、該テキスト情報および該ビットマップを画素ベースの階調表現にフォーマットするステップと、該階調表現に基づいて、閾値を超える画素が該第1の色に対応し、かつ、該閾値を下回る画素が該第2の色に対応するように、閾値強度レベルを設定することによって、該閾値のビットマップを求めるステップと、該閾値ビットマップの位置を特定するステップと、該少なくとも1つの垂直または水平デスキューイングストリップが、それぞれ実質的に垂直または水平にシフトされるように、該ビットマップをデスキューするステップと、該ビットマップの該複数のロウおよび該複数のカラムのそれぞれにおいて、水平エッジ数および垂直エッジ数を求めるステップと、該複数のロウおよび該複数のカラム中から選択されたいくつかのグループをつくり、該選択されたいくつかのグループのそれぞれにおいて、該エッジの数が最小となるロウセンターラインおよびカラムセンターラインを求めるステップと、該ロウセンターラインのそれぞれと、該カラムセンターラインのそれぞれとの交点に位置する2進データを読み出すことによって、選択された数の該エンコードされたデータビットおよび該ブロック識別子ビットを有する該ビットマップの2次元ディジタル表現を生成するステップと、該所定の値と実質的に同じ値を表現するデータビットを選択することによって、該複数のブロック識別子ビットのそれぞれを求めるステップと、該それぞれのブロック識別子ビット毎に、該エンコードされたデータビットのビット数をカウントするステップと、該それぞれのブロック識別子ビット毎に、該エンコードされたデータビットの該比例する数を超える該エンコードされたデータビットのビットを削除するステップと、該エンコードされたデータビットの該数が該比例する数未満である時に、該それぞれのブロック識別子ビット毎に、該エンコードされたデータビットにディジタルビットを追加するステップと、該ビットマップの該ディジタル表現をデランダマイズするステップと、該デランダマイズされたディジタル表現を誤り訂正することによって、該印刷媒体上に印刷された該エンコードされた情報を表現する実質的に誤りのない信号を生成するステップと、を含んでおり、そのことにより上記目的が達成される。
【0032】
ある実施形態では、前記エッジ数を求める前記ステップが、ある選択された画素に隣接する2つの画素の色を求めるステップと、該2つの隣接する画素が異なる色である時にエッジを宣言するステップと、を含んでいる。
【0033】
ある実施形態では、前記第1の色が白および黒のいずれか1つであり、前記第2の色が白および黒のもう一方である。
【0034】
ある実施形態では、前記ロウまたはカラムを削除するステップが、隣接するロウまたはカラムと実質的に同じディジタルデータを有するロウまたはカラムを選択することによって、削除すべき余分なロウまたはカラムを選択するステップを含んでおり、前記ロウまたはカラムを追加するステップが、ランダムデータロウまたはランダムデータカラムを追加するステップを含んでいる。
【0035】
ある実施形態では、前記ディジタルロウあるいはカラムを追加するステップが、前記それぞれのロウセンターラインに隣接するロウが、該ロウセンターラインに対して最大ハミング距離を有する位置を求めることによって、該追加するロウあるいはカラムをどこに追加するかを選択するステップと、ランダムデータを含むディジタルロウあるいはカラムを該位置に追加するステップと、をさらに含んでいる。
【0036】
ある実施形態では、前記ランダマイズされる情報が、1ビットずつランダマイズされる。
【0038】
本発明による選択された画素ロウ長およびカラム長を有し、かつ複数のブロック識別子を有する、ディジタル的にエンコードされた情報のビットマップフォーマット化表現を含んでいる2次元データバーコードは、該複数のブロック識別子のそれぞれが所定の値を有しており、かつ、隣接するブロック識別子から所定数のロウまたはカラムだけ隔てられているように所定の位置に配置されており、それによって、該エンコードされた情報が該バーコードからデコードされた時に、もし2つのシーケンシャルブロック識別子間のロウ数またはカラム数が該所定の数に等しくないのなら、該デコードされた情報を自動的に訂正することができ、そのことにより上記目的が達成される。
【0039】
本発明による選択された画素ロウ長およびカラム長を有し、かつ複数のブロック識別子を有するランダマイズされエンコードされた情報のビットマップフォーマット化表現を含んでいる2次元データバーコードは、該複数のブロック識別子のそれぞれが所定の値を有しており、かつ、隣接するブロック識別子から所定数のロウまたはカラムだけ隔てられているように所定の位置に配置されており、それによって、該エンコードされた情報が該バーコードからデコードされた時に、もし2つのシーケンシャルブロック識別子間のロウ数またはカラム数が該所定の数に等しくないのなら、該デコードされた情報を自動的に訂正することができ、そのことにより上記目的が達成される。
【0040】
ある実施形態では、前記ロウ長または前記カラム長にそれぞれほぼ等しい長さをもつ少なくとも1つの水平または垂直デスキューイングストリップをさらに含んでいる。
【0041】
ある実施形態では、前記ランダマイズされたエンコードされた情報が、1ビットずつランダマイズされる。
【0042】
以下に作用を説明する。
【0043】
本発明の2次元バーコードはそれぞれ、好ましくはランダマイズされたエンコードされたデータビットを表現するビットマップ内にエンコードされたディジタル情報を有しており、印刷媒体上に印刷される。このビットマップは、さらに、所定数のエンコードされたデータビットを介して互いに隔てられている、複数のブロック識別子を含みうる。これらのブロック識別子は、バーコードがデコードされた時に、失われたデータビットや追加されたデータビットを訂正するために用いられる。印刷媒体上に印刷されているバーコードがデコードされると、ディジタル情報がスキャンされ、バーコード中の各カラム内の水平エッジの数、および各ロウ内の垂直エッジの数が、それぞれ求められる。エッジは、1個の画素を選択し、選択されたその画素に隣接する2つの画素の色が、選択されたその画素の色と異なるかどうかを判定することによって求められる。すべてのエッジがカウントされた後、選択されたいくつかのカラムグループおよびロウグループが分析され、選択された各グループにおいてカラムセンターラインおよびロウセンターラインを示す、カウントされた水平エッジ数の極小値、および垂直エッジ数の極小値が選択された各グループにおいて求められる。その後、各カラムセンターラインと各ロウセンターラインとの交点に位置する2進データが読み出され、印刷されたバーコード内にエンコードされたディジタル情報を表現する信号が生成される。
【0044】
本発明の上記目的およびその他の目的は、選択された画素ロウ長およびカラム長を有する、ランダマイズされたデータビットから構成されるビットマップフォーマット化表現のかたちでエンコードされたディジタル情報をもつ2次元データバーコードによって実現される。
【0045】
本発明の別の実施形態においては、2次元データバーコードは、選択された画素ロウ長およびカラム長を有するビットマップフォーマット化表現のかたちでエンコードされたディジタル情報をもつ。このビットマップは、複数のブロック識別子を含んでいる。これらのブロック識別子は、それぞれ所定の値を有しており、また、2つのシーケンシャルなブロック識別子同士が所定数のロウまたはカラムを介して隔てられているように、所定の位置に配置されている。このようなブロック識別子は、デコードされた情報における2つのシーケンシャルなブロック識別子間のロウ数またはカラム数が、これらのブロック識別子間の所定のロウ数またはカラム数に等しくない場合に、バーコードからデコードされた情報を自動的に訂正するために用いられる。
【0046】
本発明の別の局面として、例えば紙のような印刷媒体上に印刷する情報をエンコードする方法が説明される。情報は、まず、データビットを表現する1シーケンスの2進文字を有するデータストリームに変換される。次に、このデータストリームがランダマイズされ、ほぼ同数の「0」文字および「1」文字を生成する。その後、ランダマイズされたデータストリームは、複数のロウおよび複数のカラムからなる2次元ビットマップにフォーマットされ、印刷媒体上に印刷される。
【0047】
本発明のこの局面による別の実施形態においては、情報は、データビットを表現する複数の2進文字を有するデータストリームに変換される。このデータストリームはマッピングされ、所定の空き位置をもつ複数のロウおよびカラムからなる2次元ビットマップとして配列されるディジタルデータビットを生成する。ビットマップにおける以前の空き位置には、ディジタルブロック識別子が挿入される。各ディジタルブロック識別子は、所定の値を表現する所定の数のブロック識別子ビットを有している。それによって、各ディジタルブロック識別子を認識することができる。また、その結果、隣接するディジタルブロック識別子間のロウ数あるいはカラム数をカウントすることができるので、ロウまたはカラムが追加されたり、失われていたりしても、そのことを確実に検出することができる。このディジタル2次元ビットマップは、画素ベースの2次元ビットマップをつくるようにフォーマットされた後、印刷媒体上に印刷される。
【0048】
本発明のさらに別の局面は、所定の情報を表現するデータ画素からなる複数のロウおよび複数のカラムのかたちで印刷媒体上に印刷された情報をデコードする方法に関する。まず、この情報は、例えば媒体をスキャニングすることによって印刷媒体から読み出される。その後、各カラムおよびロウにそれぞれ対応する水平エッジおよび垂直エッジが求められる。エッジは、ある画素を選択して、選択されたその画素に隣接する2つの画素が、選択された画素の色と異なる色であるかどうかを判定することによって求められる。水平エッジおよび垂直エッジは、それぞれ各カラムおよび各ロウについてカウントされる。次に、複数のカラムおよび複数のロウの中から選択されたいくつかのカラムグループおよびロウグループが分析され、選択された各グループにおいてカウントされた水平エッジ数および垂直エッジ数における極小値をそれぞれ求める。それによって、選択された各グループについて、カラムセンターラインおよびロウセンターラインがそれぞれ求められる。その後、各カラムセンターラインおよび各ロウセンターラインの交点に位置する2進データが読み出され、印刷媒体上に印刷されたエンコードされた情報を表現する信号を生成する。
【0049】
本発明による2次元バーコードのすべての実施形態において、好ましくは、印刷媒体上に印刷されたエンコードされた情報はランダマイズされる。これは、(ランダマイズをおこなわなければそうなる可能性がある事態である)連続する複数の画素からなるいくつかのストリングが、同じ色になるのを防ぐためにおこなわれる。
【0050】
本発明のこの局面による別の実施形態においては、エンコードされたデータビットを表現するデータ画素から構成される複数のロウおよび複数のカラムからなる2次元ビットマップのかたちで印刷媒体上に印刷された情報がデコードされる。エンコードされたデータビットは、複数のロウおよび/または複数のカラムにおいてエンコードされたデータビットの数が所定数に等しくなるたびに、複数のブロック識別子を介して分離される。このビットマップは、印刷媒体からスキャニングされ、データ画素およびブロック識別子からの2進データが読み出されて、エンコードされたデータビットおよびブロック識別子にそれぞれ対応する2次元のディジタルアレイをつくる。このディジタルアレイにおけるブロック識別子が求められる。その後、隣接する複数のブロック識別子間のエンコードされたデータビット数がカウントされ、カウントされたデータビットの数が、エンコードされたデータビットの所定数を超えているか、あるいはそれ未満であるかによって、データビットが削除されたり、追加されたりする。
【0051】
【発明の実施の形態】
以下に述べる詳細な説明は、単に一例を示すことを目的とするものであり、本発明を以下の実施形態のみに限定することを意図しているものではないが、添付の図面を併せて参照しながら読めば、最もよく理解することができるであろう。
【0052】
「証明可能な光学文字認識」(シリアル番号07/958,938、1992年10月9日出願、すでに出願放棄済み、継続出願は、シリアル番号08/223,830、1994年4月6日出願)、および「印刷された文書の改善された光学文字認識再生を提供する方法および装置」(シリアル番号08/138,467、1993年10月15日出願)と題され、同時係属中の特許出願(これらの内容はここで明示的に参考として援用される)に十分に記載されているように、文書の内容、レイアウト、生成、および取り出しに関する情報は、初めてその文書を生成するとき、またはそれに続くコンピュータ処理時に、コンピュータによってエンコードされうる。エンコードされた文書情報は、それから、文書の印刷されたバージョンの表面に生成されたデータバーコード(本願明細書では、「パナマーク(PanaMark)」(R)とも称する)を介して与えられうる。なお本明細書においては、「(R)」によって各社の登録商標であることを示す。現在利用できるエンコードおよび印刷の解像度の能力は、1インチ4方のスペースにおいて、30000ビットもの情報まで扱える。よって上述の出願によって教示されているように、理論的には文書内容のすべてをエンコードすることができる。これは、パナマーク用にすすんで犠牲にされる文書表面上のスペース量によってのみ制限をうける。バーコードスキャナは、 光学ページスキャナと連係して、またはそれからまったく独立して、パナマークをスキャニングすることができ、また、適切な認識およびデコーディングソフトウェアを備えた付属システムに情報を出力することができる。デコードされた情報は、文書の新しいバージョンをつくるか、またはスキャンされた文書についての認識、再生および誤り訂正を改善するために、その後、スキャニングシステムによって用いられうる。パナマークをデコードするにあたって、このようなバーコードスキャナおよびスキャニングシステムは、もしスキャナのスキャニング解像度が少なくともパナマークの印刷解像度と同程度に細かいものであるのなら、パナマークの印刷解像度を知っている必要はない。その結果、パナマークの1×1以上のサイズの、論理ビットを表現する各画素をスキャニングすることができる。
【0053】
パナマークのかたちでエンコードされた情報は、紙の文書を作成するために既に用いられているソフトウェアツールを改良するのに用いることができる。その例としては、ワードプロセッサ、スプレッドシート、オブジェクト指向グラフィックス、および音声記録や写真撮像のような各種マルチメディアアプリケーションなどが挙げられる。以下に、図1を参照して、このような例を説明する。
【0054】
図1は、印刷されたページ上に印刷されるパナマークの各種アプリケーションのいくつかを図示する図である。印刷されたページ10は、例えばマイクロソフト(R)ワード5.1a(R)のような標準的なワードプロセシングプログラムによって生成された文字テキストを図示している。印刷されたページ11は、例えばマイクロソフト(R)エクセル(R)のような標準的なスプレッドシートプログラムによって生成されたスプレッドシートを図示している。印刷されたページ12は、例えばマックドロープロ1.5vl(R)のような標準的なグラフィックスプログラムによって生成された、コンピュータによって生成されたグラフィックスを図示している。これらの印刷されたページ10〜12はそれぞれ、例えばページ10の文字テキストのような、人間が目で容易に読み取って理解できるアナログ部13と、機械用にフォーマットされたデータバーコードつまりパナマークの一例であるディジタル部14とを含んでいる。印刷されたページ10のパナマーク14は、ページの全テキスト、および/または例えば別のフォーマット化情報のようなその他の情報をエンコードすることができる。その結果、例えばマイクロソフト(R)ワード(R)のようなあるワードプロセシングソフトウェアによって生成されたテキストをフォーマットしなおして、例えばワードパーフェクト(R)のような別のワードプロセシングソフトウェアを用いて作業にあてることができる。印刷されたページ11のパナマーク14は、実際のテキストスプレッドシートをエンコードすることができ、および/または書式およびフォーマット化情報を含むこともできる。その結果、マイクロソフト(R)エクセル(R)でフォーマットされたスプレッドシートを、例えばロータス(R)スプレッドシートのようなその他のスプレッドシートソフトウェアプログラムに変換することができる。同様に、印刷されたページ12のパナマーク14も、コンピュータによって生成されたグラフィックス以外の情報をエンコードすることができる。また、これらのパナマーク14はいずれも、アナログ部13から完全に独立した情報を含むことができることには注意が必要である。さらには、パナマーク14は、美観上の考慮から、あるいは印刷されたページ上に所定の量のエンコードされた情報を含ませるために必要とされるいかなる2次元サイズおよび形状のものでもよい。
【0055】
図2は、基本的なパナマークシンボロジの一例を図示している。パナマーク15は、2次元グリッドをなす1セットのエンコードされたデータビットを含んでいる。典型的には、エンコードされた各データビットは、黒または白の複数の画素17からなるマトリックスとして印刷される。好ましくは、1データビットを表現する画素マトリックスは方形であり、1×1程度の小さいマトリックスから6×6以上の大きいマトリックスまでの様々なサイズのものでありうる。また、非方形マトリックスを用いることもできる。このパナマークは、好ましくは、デスキューイング(deskewing)ボーダー16を含んでいる。このデスキューイングボーダー16は、2つの水平デスキューイングストリップと2つの垂直デスキューイングストリップとを含んでいる。これらのストリップは、パナマークの非データ部分のみを構成する。それぞれのデスキューイングストリップは、図5を参照して後にさらに詳しく説明するように、パナマークの各ロウおよび各カラムが、互いに確実に正しい向きになる(aligned)ように用いられる。しかし、1本のデスキューイングストリップを用いるだけで十分な位置合わせ(alignment)を実現することができるので、これらのデスキューイングストリップのいずれかを用いることがなくても、十分に許容可能な結果を得ることができる。
【0056】
複数の黒画素および白画素17によって表現されるデータビットは、好ましくは、0ビットと1ビットを確実に均等にミックスすることができるように、ランダマイズされる。また、通常の(黒)インク、または、(例えば紫外スキャナのような)適切なスキャナのみが判読可能である「不可視」インクのいずれかを用いて、パナマークの全体を印刷することができる。
【0057】
図3は、デスキューイングボーダー25を有しており、かつ、いわゆる「ブロック識別子」である複数のロウ21、22、23および24を含んでいるパナマーク20の好ましい例を図示している。これらのブロック識別子は、それぞれ、図3に図示されているように、データビットからなる1本のロウ全体を含んでいてもいいし、1本のロウの一部、すなわち予め具体的に定められた複数の位置におけるデータビットのみを含むものでもよい。また、ブロック識別子は、データビットからなる複数のロウの代わりに、またはそれらに加えて、データビットからなる複数のカラムに含まれていてもよい。
【0058】
図4を参照して以下により詳細に説明するように、ブロック識別子は、隣接するブロック識別子間のデータビット数を識別することができるように、パナマーク内の所定のいくつかの位置に随意に追加されるものである。このようにして、パナマーク内にデータビットが追加されているか、あるいは失われているかどうかを判定し、そのような誤りを補償することができる。
【0059】
図4は、情報を、パナマークのかたちで紙などの印刷媒体上にエンコードするための各ステップを示すフローチャートである。パナマーク内に含ませるように指定された入力データは、ステップ30において圧縮される。入力データの性格次第で(例えば、テキスト用にはLZW(R)、グラフィックス用にはJPEG(R)というふうに)異なる複数の圧縮アルゴリズムを使い分けることができる。圧縮アルゴリズムをおこなうことによって、生の入力データ(どんな種類のものでもよい)が変換され、文字ベースの圧縮データストリームあるいは2進圧縮データストリームが生成される。もし圧縮データストリームが文字ベースのものであるのなら、そのデータストリームは、複数の0および複数の1を含むディジタルデータの対応する2進ビットまたはバイトにマッピングされる。もし圧縮データストリームが2進値である場合には、このステップは不要である。
【0060】
ステップ31において、2進データストリームは所定の回数だけ複写され、好ましくは、単一の線形データストリームに組み合わせられる。冗長度は、どのような用途に供するつもりであるかによって(例えば、現実世界でどの程度のダメージを受けることが予想されるかによって)、また、パナマーク用に利用可能なスペースの量によって変わってくる。また、データストリームを複製することは必ずしも必要ではなく、冗長性をもたせることによってデコード時の正確さを改善するために用いられるものであることは理解されたい。
【0061】
ステップ32において、データストリームに沿ったさまざまな位置に誤り訂正符号(ECC)を追加してもよい。例えば、データに対してECCビットを生成する標準的なECC技術を適用することができる。満足のいく結果をもたらしたECCアルゴリズムの一例としては、2進BCH符号が挙げられる。さらに、データストリーム内のデータを巡回冗長検査(CRC)を用いてエンコードすることによって、誤りを検出し、誤り訂正をサポートすることができる。用いられるCRCアルゴリズムは、例えば「CCITT多項式」のような標準的なアルゴリズムでよい。この場合でも、ECCは必ずしも必要ではなく、デコード時により高い正確さを実現するためには、用いるのが好ましいものであるにすぎない。
【0062】
ステップ33において、データストリーム内のデータは、好ましくはランダマイズされ、全データストリームを通して実質的に同数の「0」ビットおよび「1」ビットが確実に存在しているようにする。このランダマイズ動作は、ランダマイズされたビットを、デコード時にデランダマイズすることができるように、もちろん反転可能なものでなければならない。ランダマイズ動作をおこなうためには、多くの技術を利用できる。例えば、データストリームを1ビットずつランダマイズすることができる。すなわち、データストリーム内の各データビットは、2進0ビットになる可能性と、2進1ビットになる可能性とを等しくもっていることになる。別の圧縮レイヤを適用するためには、別のランダマイズ技術が用いられることになる。さらに、よく知られているいくつかの暗号化技術のいずれかを用いることもできる。暗号化技術を用いれば、望ましい副作用、すなわちデータを安全に保つことができるという効果が得られる可能性もある。なぜなら、データをデコードするためには、適正な処理キーが必要になるからである。したがって、パナマークが不正にデコードされる事態を回避することができる。データビットをランダマイズする目的は、複数の「0」および「1」が正しく50%対50%の割合で確実に配分されているようにすることである。このような配分は、クロックを用いないでパナマーク内のデータをデコードする一助となるからである。このことについては、後にさらに詳しく説明する。
【0063】
ステップ34では、ランダマイズされたデータストリームがマッピングされる。つまり、2次元アレイをなすようにブロック化される。このステップは、この技術分野ではよく知られている技術である簡単なロウ優先順マッピング技術、あるいはもっと複雑な「ランダム」マッピング技術を用いておこなうことができる。また、この2次元アレイは、使用されていない複数の位置を満たすために、複数のランダムビットで満たす、すなわち「ビットスタッフする」ことができる。また、上述したように、もしブロック識別子をパナマーク内に挿入することが望ましいのなら、このブロッキングプロセスでは、2次元アレイ内のいくつかの所定の位置を空いたままにしておく。
【0064】
ステップ35では、前述したように隣接するブロック識別子間のエンコードされたデータビットの数をカウントすることによって、パナマークが読み出された時に失われた、または追加されているデータロウおよび/またはデータカラムを検出するために用いられる複数の空き位置の中に、ブロック識別子が挿入される。これらの空き位置は、2次元アレイ内の複数のロウまたは複数のカラム内にあってもよく、また、1本のロウまたは1本のカラムの全体を含んでいても、含んでいなくてもよい。
【0065】
次に、この2次元ディジタルアレイは、ステップ36でヘッダ情報および何らかの必要な制御データ(例えば、スキューバー)をパナマークに加えることによって、ポータブルビットマップ(PBM)フォーマットに変換される。このPBMは、次に、従来の変換プログラムを用いてインキャプシュレーテッドポストスクリプト(Encapsulated Postscript: EPS)に変換される。
【0066】
ステップ37では、標準的なマージプログラムを用いて、パナマークのEPS表現が印刷されたページのポストスクリプト表現と組み合わせられる。最後に、ステップ38では、何らかのタイプの標準的なプリンタを用いて、アナログ情報およびパナマークが、印刷媒体上に印刷される。
【0067】
なお、上述した複数のステップの多くは、相互に順番を入れ替えたり、すっかりなくしてしまったりすることができるものであることは理解されたい。例えば、データストリームを複製するステップ31の前に、ランダマイズするステップ33をおこなうこともできるし、このランダマイズするステップ33そのものを完全になくしてしまうこともできる。
【0068】
図4で説明した各ステップを説明する一助となる具体例が図5に示されている。ステップ50において、フレーズ「Call me Ishmael」は、パナマーク内にエンコードされ、印刷されたページ上に印刷されるべき生の入力データを表している。
【0069】
ステップ51では、上記文字フレーズを、図示されている表現に圧縮することができる。次に、ステップ52において、それぞれの文字がその2進表現にマッピングされる。
【0070】
ステップ53は、ステップ52のデータストリームの複製をとることを図示している。なお、図には3つのデータストリームが示されているが、これらのデータストリームは、好ましくは単一のコンカレントデータストリーム(concurrent data stream)であることは理解されたい。ステップ54では、図示されているように、3ビットのECCが、データの4ビット毎に加えられる。ステップ55では、複製されたECCエンコードされたデータストリームのビットがランダマイズされる。ステップ56では、ランダマイズされた線形データストリームが、「ランダム」マッピング技術を用いて2次元アレイにマッピングされる。パナマークの一部に与えられるダメージがごく局所的なものであることが予想される用途では、ロウ優先順マッピングよりもランダムマッピングのほうが好ましい。空きビット位置には、ステップ57でブロック識別子(0 0 1)が挿入される。最後に、ステップ58で、パナマークの一部の表現が示される。
【0071】
いったん情報がパナマークのかたちにエンコードされ、印刷媒体上に印刷されると、図6に示す各ステップを通して、その情報をページから読み取ることができるようになる。パナマークをデコードするに当たっては、このマークの識別は、単に印刷されたページ上でのその位置をつきとめるステップの他にもいくつかのステップを含んでいる。この識別は、ステップ60〜63からなる。これらのステップには、パナマークの位置の特定と、パナマークのデコードを準備するためのイメージ変換の実行とが含まれている。
【0072】
ステップ60では、例えばスキャナによって、文書のそのページ全体が読み取られる。このステップでは、アナログ部およびパナマークの両方がオンラインビットマップ表現に転換(transferred)される。具体的には、このステップは、標準的な8ビット階調(TIFF)フォーマットでイメージファイルを生成するフラットベッド光学スキャナを用いておこなうことができる。しかし、もしパナマークが上述したいわゆる「不可視」インクを用いて印刷されているのなら、パナマークをスキャンするために紫外光スキャナを用いることもできる。
【0073】
ステップ61では、階調イメージは、閾値を用いて分けることによって、2進黒および白のビットマップに変換される。この閾値分けをおこなう時、強度レベルが動的に選択される。すなわち、閾値レベルを上回る強度レベルを有する画素は、黒(または白)画素とみなされ、逆に閾値レベルを下回る強度レベルを有する画素は、白(または黒)画素とみなされる。
【0074】
その後、ステップ62において、パナマークは、さまざまな技術に基づき、ビットマップからその位置が特定される。例えば、パナマークのサイズおよびそのおおよその位置を記憶しておき、印刷された文書上でそのパナマークの位置を特定することができるようにすることができる。次に、パナマークイメージが取り入れられ、2次元画素サイズが求められる。ここで、画素の長さあるいは幅を求めるのが望ましい。なぜなら、例えば、もしパナマークが2615画素長であるとわかり、それが655ビットに相当することがわかっているのなら、各ビットはおよそ4画素長であると結論づけることができるからである。
【0075】
ステップ63において、わずかな角度でパナマークをスキャニングしたことを補償するために、パナマークに対して補正が施される。基本的には、パナマークをデスキューするこのステップは、垂直および水平デスキューイングストリップが実際にそれぞれ垂直および水平となるように、データビットおよびデスキューイングストリップを「スライドさせる」ことによって、マークの回転を戻すステップを含んでいる。上述したように、このデスキューイングステップをおこなうためには、1個のストリップが必要なだけである。この技術では、いわゆる「純粋な」アルゴリズムを用いることができる。このアルゴリズムでは、必要に応じていくつかの画素ロウを左にスライドさせるために、左端のストリップがパナマークのエッジで面一であるものとされる。「回転」アルゴリズムとして知られている別のデスキューイング技術を用いることもできる。この技術では、逆幾何学的回転をイメージに適用する。パナマークがデスキューされた後、デスキューイングストリップ(すなわち、非データボーダー)は、イメージから取り除かれる。
【0076】
この時点では、既にパナマークの位置が特定され、改善されているので、このパナマークは、ステップ64および65でデコードする準備ができたものとなっている。パナマークをデコードするステップは、スキャニングされたイメージからの画素を、2次元ビットアレイのかたちの2進データに実際に変換するステップを含んでいる。このようなものであるので、これは、パナマーク読み取りプロセスおいて最も重要なステップであることが理解できるであろう。上述したように、過去においては2次元バーコードは、いわゆる「クロック」または「クロッキングビット」を用いてデコードされてきたが、このパナマークは、そのようなクロッキングビットを用いず、データ画素そのものだけに基づいて情報をデコードする。このデコーディングは、各データ画素のランダム性を利用している。その結果、与えられたどのロウまたはカラムにも、ほぼ同数の「0」および「1」が含まれていることになる。よって、このマーク全体をとおして、多数の「白黒」遷移および「黒白」遷移(以下、「エッジ」と称する)がある。これらのエッジは、ステップ64でロウおよびカラムの「中心」を計算するために用いられる。これらのロウおよびカラムの中心は、次に、ステップ65で各データビットをどこから読み出すべきかを決めるために用いられる。このクロック不要のデコード技術は、もしデータがランダマイズされていなくても作用することができる。しかし、その場合には、あまり効果的ではないと思われる。ステップ64および65の詳細については、図9〜図15を参照して後により詳細に説明する。
【0077】
ステップ66において、2進データがパナマークから読み出され、(もしあるのなら)ブロック識別子の位置が求められる。次に、位置の求められたブロック識別子間のエンコードされたデータビットの数、またはロウ数および/またはカラム数に基づいて、データのロウ/カラムが削除されたか、あるいは追加されたかがベリファイされる。もしそうであるのなら、追加されたロウ/カラム、または失われたロウ/カラムは、図12〜図15を参照して後に説明するように補償される。
【0078】
2次元ビットアレイが完全なかたちであることが確認された後、ステップ67で2進データビットのブロックが解体され、線形データストリームが形成される。次に、ステップ68で、逆ランダマイズプロセスが適用される。ステップ69において、2進データビットは、この技術分野ではよく知られている標準的なECCプロシージャにかけられ、誤りをなくす。ECCプロシージャの後、ステップ70では、(もしあるのなら)冗長データストリームが「コンセンサス」データストリームを形成するのに用いられる。例えば、もし3つの冗長データストリームがあるものとすると、多数決投票(majority voting)が適用される。それにより、もしこれら3つのデータストリームのうち2つが、特定のデータ文字の値が「C」であることを表しているのに対して、3つ目のデータストリームが、その値は「Q」であることを表しているのなら、多数派が勝ち、出力は「C」となる。最後に、ステップ71において、ストリームは伸長され、オリジナルの生の入力データが復元される。
【0079】
さて次に、パナマークをデコードするこの技術を、図7〜図11を参照してさらに説明する。クロッキングビットを用いることなくパナマークをデコードするためには、各カラムに対応するすべての水平「エッジ」および各ロウに対応するすべての垂直「エッジ」がカウントされる。ここで、エッジとは、ある色の画素に隣接する、その色とは別の同一色の2つの画素のことをいう。互いに異なる4つのタイプの水平エッジが、図7に参照番号73および74で示されている。同様に、互いに異なる4つのタイプの垂直エッジが、図8に参照番号75および76で示されている。水平エッジを右のエッジ73と見なすか、左のエッジ74と見なすかということは、パナマークをデコードするのにそれらのエッジを用いる時には、何ら重要なことではない。しかし、もし水平右エッジおよび水平左エッジの数が予めわかっているのなら、そして異なる数がカウントされれば、誤りが検出されることになる。同じことは、垂直上エッジ75および垂直下エッジ76についても言うことができる。
【0080】
図9は、水平エッジおよび垂直エッジが、どのようにして各カラムおよび各ロウにおいてそれぞれカウントされ、カラムセンターラインおよびロウセンターラインが求められるかを図示している。概して、カラムセンターラインおよびロウセンターラインにそれぞれ対応するカラムおよびロウは、非センターに対応するカラムおよびロウに比べて、エッジ数がはるかに少ない。カラムセンターラインおよびロウセンターラインは、読み出されるべき2進データビットを表現する画素マトリックスの中心画素を求めるために用いられる。中心画素は、そのマトリックスの周囲の近傍画素とは対立するものとして、最も正確なデータを与えるために読み出される。換言すれば、単一のデータビットが、3×3画素からなるブロックによって表現される場合には、そのデータビットの中心画素は、2進データを読み出すのに最も望ましい位置にある。逆に、中心画素周囲の画素は、ランダム画素誤りなどによってもたらされるノイズの影響で誤りを含んでいる可能性が、中心画素よりもはるかに高い。したがって、エッジの数が最小であるそれぞれのカラムおよびロウの位置を求めれば、各中心画素の位置を正確に求めることができる。その結果、その画素が読み出される時、最も信頼性の高い2進データを生成することができる。
【0081】
図9は、パナマークの一部において、どのように垂直エッジおよび水平エッジがカウントされるかを図示している。例えば、スキャンライン80は、ロウ3に含まれている垂直エッジの数をカウントするために用いられる。図示されているように、ロウ3は4個の垂直エッジをもっている。同様に、ロウ5は、スキャンライン81に沿ってカウントされる、13個の垂直エッジをもっている。水平エッジカウントについては、カラム8は、スキャンライン78に沿って8個の水平エッジをもっており、カラム15はスキャンライン79に沿って2個の水平エッジをもっている。もちろん、各ロウおよび各カラムは、それぞれのロウおよびカラムについてエッジ数を求めることができるようにスキャンされることになる。
【0082】
図10は、134本の画素カラムを有するパナマークの全幅についてカウントされる1カラム毎の水平エッジ数を示している。図示されているように、極小値があるところではどこでも、そのカラムはセンターラインをもっていると判定される。同様に、図11は、図1のパナマーク14に見られるように、印刷されたページの大半で垂直方向に延びているパナマークの(最初の134本のロウに対応する)長さの一部に対応する1ロウ毎の垂直エッジカウントを表している。ここでも、ロウセンターラインを示す極小値は、十分に規定されている。
【0083】
動作時において、コンピュータシステムは、図10および図11にそれぞれ図示されているカラムおよびロウの中心を、実際にグラフィック再生する必要はない。その代わり、極小値を求めるために、各ロウおよび各カラムにそれぞれ対応する1次元線形表現が計算される。この計算は、非常に正確におこなうことができる。なぜなら、コンピュータは、それぞれのロウの中心およびカラムの中心がどのぐらい離れているべきであるかを推定することができるからである。例えば、3×3画素マトリックスによって表現される2進データビットにおいては、およそ3本の画素ロウ毎に新たなロウセンターラインがあるはずであること、また、およそ3本の画素カラム毎に新たなカラムセンターラインがあるはずであることがわかっている。しかし、センターラインをそのようにうまく規定できるからといって、コンピュータが、センターライン間のおおよその間隔を知っている必要はない。
【0084】
いったん、水平エッジおよび垂直エッジがカウントされ、各カラムセンターラインおよび各ロウセンターラインが求められると、カラムセンターラインとロウセンターラインとの交点に位置する2進データがシーケンシャルに読み出され、データビットから構成される2次元アレイを形成する。例えば、図10に示されているように、カラム31はカラムセンターラインをもっている。よって、それぞれのロウセンターラインについては、図11に図示されているように(ロウ9、13、16…)、2進データは、各ロウセンターライン(9、13、16…)がカラムセンターライン31と交差するところから読み出されることになる。
【0085】
いったん、データビットから構成される2次元アレイがつくられると、(もしあるのなら)ブロック識別子が、図6のステップ66で述べたように識別される。エンコードする段階でパナマーク中にブロック識別子を挿入することにより得られる効果は明白であろう。すなわち、パナマーク内の2進データが信頼性よくデコードできない状況は、容易に想像できるものであるからである。例えば、パナマークの大半が覆い隠されていたり、失われている場合、あるいはパナマークが、ごく一部でも覆い隠されている場合を想定する。その場合、存在しているどのデータもすべて直接にデコードすることは可能ではあるが、失われたデータについては、そのデータがどこに属しているかはわからないので、デコードされたそのデータを利用することができないこともある。パナマークをファクスする時には、もっと微妙な影響が生じる。ファクシミリ機のスキャナが、データバーコードに対して多少の歪みをもたらすことは観察の結果わかっている。そういうものであるので、ファクシミリ機を通して送信されたパナマークが、画素ロウを横切って歪みを受けている結果、いくつかの画素ロウが失われていたり、余分な画素ロウが現れたりすることは十分に考えられる。図12は、ある画素ロウ83が圧縮されたパナマーク82を示している。ここで、その画素ロウ83は、パナマークがデコードされる時、スキップされるように圧縮されている。図13は、ある画素ロウ86が、オリジナルのサイズのほぼ2倍に伸長されているパナマーク84を示している。したがって、パナマーク84がデコードされると、伸長されたロウが出力中に現れる回数が1回よりも多くなる。これは、そのロウの全体、またはデータビットからなるいくつかのロウが失われたり、複製されたりすることにつながる。もちろん、同じ影響はパナマークのカラムにも現れる可能性がある。
【0086】
したがって、図5のステップ56および57に示されているように、(それぞれが既知の、つまり所定のビットシーケンスまたは値をもつ)ブロック識別子を、ディジタル2次元アレイの所定の空き位置内に挿入するのが望ましい。これらのブロック識別子は、あるロウまたはあるカラムの全体を占めることができる。また、隣接するブロック識別子同士を、データビットから構成される既知の数のロウまたはカラムで互いに隔てることもできる。あるいは、ブロック識別子は、所定数のデータビットによって互いに隔てられた所定数のビットでもありうる。デコード時において、2進データビットが2次元ビットアレイに読み出された後、まず、それらのブロック識別子の位置が求められた後、好ましくは、隣接するブロック識別子間のロウ数および/またはカラム数がカウントされることによって、追加されたロウがあるか、あるいは失われているロウがあるかが判定される。あるいは、隣接するブロック識別子間のデータビット数をカウントすることによって、データビットを追加すべきか、あるいは削除すべきかが判定される。もしデータビットから構成されるいくつかのロウおよび/またはカラムが失われているのなら、それらの誤りを補償するために、どこにデータを追加すべきを決定しなければならない。
【0087】
図14は、ブロック識別子の位置を求めるに当たって好ましいサーチオーダーを示している。誤りは、他のどこよりもブロック識別子を表現するビット内で発生する可能性が高いので、ブロック識別子アルゴリズムは、所定の値と正確に整合する値をサーチしない。その代わり、所定の各ビットシーケンスに対するハミング距離が最小であるラインが、ブロック識別子を含むラインとして識別される。もちろん、ハミング距離比較以外の技術を用いてもよい。
【0088】
図14は、一連のデータビットロウ91、92、93、94および95を有するパナマーク90の一部を示している。ここで、各ロウは、所定のビットシーケンスを有するブロック識別子を有している。ブロック識別子の位置を求めるためには、もし、例えば、8つのエンコードされたデータビットロウの後に必ず1個のブロック識別子が挿入されることがわかっているのなら、歪みが生じているのでなければ、ブロック識別子ビットを有するロウは、9番目のロウ毎にあるものとされる。したがって、予想されるブロック識別子を有するロウ(図14ではロウ91)が、まず所定のビットシーケンスと比較される。もし正確に整合しないのなら、ロウ92がそのビットシーケンスと比較される。残りのサーチオーダーは、図14に示されているとおりである。つまり、ロウ93、94そして95の順となる。もしこれらのロウのいずれにも正確な整合が見られないのなら、所定のビットシーケンスから最小のハミング距離を有するロウが、ブロック識別子ロウであると判定される。ブロック識別子は、データビットロウの中にあるものとして図示されてはいるものの、もちろん、ブロック識別子は、ビットアレイのカラム内に位置していてもよい。また、ロウまたはカラム内の各ブロック識別子の正確な位置を知ることができるので、上述したように、その既知のロウまたはカラムが、最初に所定のビットシーケンスと比較される。
【0089】
いったんすべてのブロック識別子の位置が求められたら、アラインメント(alignment、位置合わせ)をおこなう必要があるかどうかが判定される。もし隣接するブロック識別子間のロウ数が正しい所定の数であるのなら、アラインメントをおこなう必要はない。しかし、もしそのロウ数が少なすぎるのなら、追加ロウを追加するためにアラインメントが必要になる。一方、もしライン数が多すぎるのなら、余剰ロウを削除するためにアラインメントが必要になる。
【0090】
もし、あるエンコードされたデータビットロウを削除すべきであると判定されたのなら、つまり、もし実際のエンコードされたデータビットロウの数が所定の数を超えているのなら、同一の2進データをもつ隣接する2つのロウがある場合、そのうち1つを削除すべきであるものとする。もし同一のデータをもつ2つの隣接するロウがないのなら、相互間のハミング距離が最小である2つの隣接するロウのうち1つが削除されることになる。
【0091】
しかし、もし、エンコードされた2進データロウの数が所定の数よりも小さいと判定されたのなら(例えば、1本のロウが失われているのなら)、2進データロウを追加することが必要になる。これによって、どんなデータを挿入すべきか、そしてどこにそのようなデータを挿入すべきかという問題が生ずる。どんなデータを挿入すべきかということについては、より情報量の多い選択肢がないときには、ランダムデータを「プレースホールダ(place holder)」として用いることができる。オリジナルのエンコードされたデータはランダマイズされるのであるから、挿入されるロウに対する「0」および「1」の数をどのように設定しても、予想される正確度(accuracy rate)は50%になる。挿入されるロウは、平均すると比較的多数の誤りを含むものになるが、隣接するブロック識別子間に正しい数のロウを配置することは可能になる。また、ECCをおこなうことによって、および/またはデータに冗長性をもたせることによって、発生したどのような誤りも訂正することができる。
【0092】
図15は、1本のロウが失われたと判定された場合に、パナマーク100のどこにランダム2進データロウを挿入すべきかを決定するためのプロシージャを示している。好ましいプロシージャでは、決定されたそれぞれのロウセンターラインを見る。例えば、図15に矢印105で示されているように、連続する2つのブロック識別子間のロウセンターライン101を見る。ロウセンターライン101では、すべての画素に「×」マークがつけられている。次に、ロウセンターライン101の上のロウ102内の各画素、 およびロウセンターライン101の下のロウ103内の各画素が、ロウセンターライン101内の、それぞれの画素に隣接している画素と比較される。これらのロウ102および103において、ロウセンターライン101の隣接画素と同一色である(すなわち「接続されている」)画素には、それを示す「×」マークがつけられている。最後に、「×」の数が一番少ないロウ(すなわち、「接続の断たれている」画素が一番多いロウ)が、ロウセンターラインに隣接するには不適切なロウであると判定され、ランダムデータからなる追加ロウが、それに該当するロウとロウセンターラインを含むロウとの間に挿入される。この技術を用いれば、ロウ102は、(ロウ103の接続の断たれている画素が2つだけであるのに対して)接続の断たれている画素を3つ含むことになるので、誤って隣接しているロウとして選択されることになる。したがって、ロウ102とロウセンターライン101との間に、1本のランダムデータロウが追加される。
【0093】
以上に、好ましい実施形態および各種局面に言及しながら、本発明を具体的に示し説明してきたが、本発明の着想および範囲を超えることなく、さまざまな変形および改変を加えることが可能であることは、当業者には理解できるであろう。また、添付の請求の範囲は、本願明細書に記載された各実施形態、前述した代替方法、およびそれらの等価物のすべてを包含すると解釈されるように意図されているものである。
【0094】
【発明の効果】
本発明によれば、少なくとも以下の効果が得られる。すなわち、ディジタル的にエンコードされたデータを表現するクロック不要の2次元バーコードを提供することができる。また印刷媒体上に印刷され、媒体に対するダメージに耐えられるだけの十分な耐久性をもつ、クロック不要の2次元バーコードを提供することができる。さらに、ランダマイズされたデータビットを表現する複数の画素を設けることによって、連続する複数の画素からなる長いストリングが同一の色になることを防止し、かつ、不正なデコードを防止する安全性を保証する、クロック不要の2次元バーコードを提供することができる。さらに、印刷媒体上に印刷するために、クロック不要の2次元バーコードにフォーマットされた情報をエンコードすることができる。さらに、印刷媒体上に印刷されたクロック不要の2次元バーコードのかたちでディジタル的にエンコードされた情報をデコードする方法を提供することができる。
【図面の簡単な説明】
【図1】本発明により印刷媒体上に印刷されたバーコードのいくつかの例を模式的に示す図である。
【図2】本発明による2次元バーコードの一例を示す図である。
【図3】本発明によるブロック識別子ロウを含む2次元バーコードを示す図である。
【図4】本発明により情報を印刷媒体上にエンコードするための各ステップを示すフローチャートである。
【図5】図4のフローチャートに述べられている方法に基づいておこなわれる複数のステップのいくつかを図示する図である。
【図6】本発明により印刷媒体上に印刷された情報をデコードするための各ステップを示すフローチャートである。
【図7】本発明によりスキャニングされたバーコードにおいて、どのようにして水平エッジが求められるかを説明する図である。
【図8】本発明によりスキャニングされたバーコードにおいて、どのようにして垂直エッジが求められるかを説明する図である。
【図9】本発明により、どのようにして水平エッジおよび垂直エッジが各ロウおよび各カラムにおいてそれぞれカウントされるかを説明する図である。
【図10】本発明により、どのようにしてカラムクロックセンターが求められるかをグラフによって説明する図である。
【図11】本発明により、どのようにしてロウクロックセンターが求められるかをグラフによって説明する図である。
【図12】本発明において、失われたロウのあるバーコードを示す図である。
【図13】本発明において、余分なロウのあるバーコードを示す図である。
【図14】本発明によりブロック識別子の位置を求めるためのサーチオーダーを示す図である。
【図15】本発明により失われたロウが求められた時の、情報ロウの追加を示す図である。
【符号の説明】
30 圧縮ステップ
31 複製ステップ
32 ECC付加ステップ
33 ランダマイズステップ
34 ブロック化ステップ
35 タグ付加ステップ
36 ポストスクリプト生成ステップ
37 ポストスクリプト導入ステップ
38 印刷ステップ
Claims (26)
- 印刷媒体上に印刷する情報をエンコードする方法であって、
該情報を、データビットを表現する1シーケンスの「0」および「1」文字を有するデータストリームに変換するステップと、
該データストリームをランダマイズすることによって、1シーケンスの「0」および「1」文字を有するランダマイズされたデータストリームを生成するステップと、
該ランダマイズされたデータストリームを、複数のロウおよび複数のカラムの2次元ビットマップにフォーマットするステップと、
クロッキングビットなし、かつ、ボーダーなしで該フォーマットされたビットマップを該印刷媒体上に印刷するステップと、
を含んでいる情報エンコード方法。 - 印刷媒体上に印刷する情報をエンコードする方法であって、
該情報を、データビットを表現する1シーケンスの「0」および「1」文字を有するデータストリームに変換するステップと、
該データストリームをマッピングすることによって、複数の所定の空きビット位置をもつ複数のロウおよび複数のカラムのディジタル2次元ビットマップをつくるステップと、
該複数の所定の空きビット位置のそれぞれにディジタルブロック識別子を追加するステップであって、該ディジタルブロック識別子がそれぞれ、所定数のブロック識別子ビットと、該ディジタルブロック識別子間のロウ数あるいはカラム数を識別可能とする値と、を有している、ステップと、
該ディジタル2次元ビットマップをフォーマットすることによって、データ画素およびブロック識別子画素を有する、画素ベースの2次元ビットマップをつくるステップと、
クロッキングビットなし、かつ、ボーダーなしで該フォーマットされたビットマップを該印刷媒体上に印刷するステップと、
を含んでいる情報エンコード方法。 - 印刷媒体上に印刷する情報をエンコードする方法であって、
該情報を、データビットを表現する1シーケンスの「0」および「1」文字を有するデータストリームに変換するステップと、
該データストリームをランダマイズすることによって、データストリームにおいてほぼ同数の「0」文字および「1」文字を生成するステップと、
該ランダマイズされたデータストリームをマッピングすることによって、複数の所定の空きビット位置をもつ複数のロウおよび複数のカラムのディジタル2次元ビットマップをつくるステップと、
該複数の所定の空きビット位置のそれぞれにディジタルブロック識別子を追加するステップであって、該ディジタルブロック識別子がそれぞれ、所定数のブロック識別子ビットと、該ディジタルブロック識別子間のロウ数あるいはカラム数を識別可能とする値と、を有している、ステップと、
該ディジタル2次元ビットマップをフォーマットすることによって、データ画素およびブロック識別子画素を有する、画素ベースの2次元ビットマップをつくるステップと、
クロッキングビットなし、かつ、ボーダーなしで該フォーマットされたビットマップを該印刷媒体上に印刷するステップと、
を含んでいる情報エンコード方法。 - 前記情報を圧縮するステップをさらに含んでいる、請求項1から3のいずれか1つに記載の方法。
- 誤り訂正符号データビットを前記データストリームに追加するステップをさらに含んでいる、請求項4に記載の方法。
- 前記データストリームを複製することによって、エンコード時の信頼性を改善する冗長データを生成するステップをさらに含んでいる、請求項5に記載の方法。
- 前記フォーマットするステップが、前記データストリームにヘッダ情報を追加することによって、標準的なポータブルビットマップ(PBM)フォーマットをつくるステップをさらに含んでいる、請求項6に記載の方法。
- 前記フォーマットするステップが、ロウの長さまたはカラムの長さにそれぞれほぼ等しい長さをもつ、少なくとも1つの水平または垂直デスキューイングストリップを追加するステップをさらに含んでいる、請求項7に記載の方法。
- 前記フォーマットするステップが、前記PBMフォーマットをインキャプシュレーテッドポストスクリプトに変換するステップをさらに含んでいる、請求項3に記載の方法。
- 前記データストリームをランダマイズする前記ステップが、該ストリームを1ビットずつランダマイズする、請求項1および3のいずれか1つに記載の方法。
- 所定の情報を表現するデータ画素の複数のロウおよび複数のカラムのかたちで印刷媒体上に印刷された情報をデコードする方法であって、該データ画素が第1の色または第2の色のいずれかであり、該方法は、
該印刷媒体から該情報を読み取るステップと、
該複数の画素ロウおよび該複数の画素カラムのそれぞれにおいて、水平エッジ数および垂直エッジ数を求めるステップと、
該複数のロウおよび該複数のカラム中から選択されたいくつかのグループをつくり、該選択されたいくつかのグループのそれぞれにおいて、該エッジの数が最小となるロウセンターラインおよびカラムセンターラインをそれぞれ求めるステップと、
該ロウセンターラインのそれぞれと、該カラムセンターラインのそれぞれとの交点に位置する2進データを読み出すことによって、該印刷媒体上に印刷されているエンコードされた情報を表現する信号を生成するステップと、
を含んでいる方法。 - 所定の情報を表現するデータ画素の複数のロウおよび複数のカラムのかたちで印刷媒体上に印刷されたランダマイズされた情報をデコードする方法であって、該データ画素が第1の色または第2の色のいずれかであり、該方法は、
該印刷媒体から該情報を読み取るステップと、
該複数の画素ロウおよび該複数の画素カラムのそれぞれにおいて、水平エッジ数および垂直エッジ数を求めるステップと、
該複数のロウおよび該複数のカラム中から選択されたいくつかのグループをつくり、該選択されたいくつかのグループのそれぞれにおいて、該エッジの数が最小となるロウセンターラインおよびカラムセンターラインをそれぞれ求めるステップと、
該ロウセンターラインのそれぞれと、該カラムセンターラインのそれぞれとの交点に位置する2進データを読み出すことによって、該印刷媒体上に印刷されているエンコードされた情報を表現するランダマイズされた信号を生成するステップと、
該ランダマイズされた信号をデランダマイズすることによって、該媒体上に印刷されている該ランダマイズされた情報をデコードするステップと、
を含んでいる方法。 - エンコードされたデータビットを表現するデータ画素の複数のロウおよび複数のカラムのビットマップのかたちで印刷媒体上に印刷された情報をデコードする方法であって、該データ画素のうち所定数のデータ画素が、該エンコードされたデータビットのうち比例する数の該エンコードされたデータビットをそれぞれ表現しており、該比例する数の該エンコードされたデータビットが、所定の値を有するブロック識別子ビットを表現する複数のブロック識別子画素によって互いに分離されており、該データ画素および該ブロック識別子画素のそれぞれが、第1の色または第2の色のいずれかであり、該方法は、
該印刷媒体から該ビットマップを読み取るステップと、
該データ画素および該ブロック識別子画素から2進データを読み出すことによって、該ブロック識別子ビットによって互いに分離されている、ある選択された数の該エンコードされたデータビットを有する該ビットマップを表現する2次元ディジタルアレイをつくるステップと、
該所定の値と実質的に同じ値を表現するデータビットを選択することによって、該複数のブロック識別子ビットのそれぞれを求めるステップと、
該それぞれのブロック識別子ビット毎に、該エンコードされたデータビットのビット数をカウントするステップと、
該それぞれのブロック識別子ビット毎に、該エンコードされたデータビットの該比例する数を超える該エンコードされたデータビットのビットを削除するステップと、
該エンコードされたデータビットの該数が該比例する数未満である時に、該それぞれのブロック識別子ビット毎に、該エンコードされたデータビットにディジタルビットを追加することによって、該印刷媒体上に印刷されている該情報をデコードするステップと、
を含んでいる方法。 - 前記エンコードされたデータビットの前記比例する数がそれぞれ、ブロック識別子ビットを表現する前記複数のブロック識別子画素のあるロウによって分離されている、複数のロウの既知の数を含んでおり、前記削除するステップが、該複数のロウの該既知の数を超える該エンコードされたデータビットの複数のロウを削除し、かつ、前記追加するステップが、複数のディジタルビットロウの数が、該複数のロウの該既知の数未満である時に、該複数のディジタルビットロウを追加する、請求項13に記載の方法。
- エンコードされたデータビットを表現するデータ画素の複数のロウおよび複数のカラムのビットマップのかたちで印刷媒体上に印刷された情報をデコードする方法であって、該複数のデータ画素カラムのうち所定数の該データ画素カラムがそれぞれ、該エンコードされたデータビットの該複数のカラムのうち比例する数の該エンコードされたデータビットカラムを表現しており、該比例する数の該エンコードされたデータビットカラムが、所定の値を有するブロック識別子ビットを表現する複数のブロック識別子画素によって互いに分離されており、該データ画素および該ブロック識別子画素のそれぞれが、第1の色または第2の色のいずれかであり、該方法は、
該印刷媒体から該ビットマップを読み取るステップと、
該データ画素および該ブロック識別子画素から2進データを読み出すことによって、該ブロック識別子ビットによって互いに分離されている、該エンコードされたデータビットの複数のロウを有する該ビットマップを表現する2次元ディジタルアレイをつくるステップと、
該所定の値と実質的に同じ値を表現するビットを有するカラムを選択することによって、該複数のブロック識別子ビットのそれぞれを決定するステップと、
該ブロック識別子ビットを有するそれぞれのカラム毎に、該エンコードされたデータビットの複数のカラムの数をカウントするステップと、
該ブロック識別子ビットを有する該それぞれのカラム毎に、該複数のエンコードされたデータビットカラムの該比例する数を超える複数のエンコードされたデータビットカラムを削除するステップと、
該複数のエンコードされたデータビットカラムの該数が該比例する数未満である時に、該ブロック識別子ビットを有する該それぞれのカラム毎に、ディジタルビットの複数のカラムを追加することによって、該印刷媒体上に印刷されている該情報をデコードするステップと、
を含んでいる方法。 - エンコードされたデータビットを表現するデータ画素の複数のロウおよび複数のカラムのビットマップのかたちで印刷媒体上に印刷されたラインダマイズされた情報をデコードする方法であって、該複数のデータ画素ロウのうち所定数の該データ画素ロウがそれぞれ、該エンコードされたデータビットの該複数のロウのうち比例する数の該エンコードされたデータビットロウを表現しており、該比例する数の該エンコードされたデータビットロウが、所定の値を有するブロック識別子ビットを表現する複数のブロック識別子画素によって互いに分離されており、該データ画素および該ブロック識別子画素のそれぞれが、第1の色または第2の色のいずれかであり、該方法は、
該印刷媒体から該ビットマップを読み取るステップと、
該ビットマップの該複数のロウおよび該複数のカラムのそれぞれにおいて、水平エッジ数および垂直エッジ数を求めるステップと、
該複数のロウおよび該複数のカラム中から選択されたいくつかのグループをつくり、該選択されたいくつかのグループのそれぞれにおいて、該エッジの数が最小となるロウセンターラインおよびカラムセンターラインをそれぞれ求めるステップと、
該ロウセンターラインのそれぞれと、該カラムセンターラインのそれぞれとの交点に位置する2進データを読み出すことによって、該エンコードされたデータビットおよび該ブロック識別子ビットの複数のロウを有する該ビットマップを表現する2次元ディジタルアレイをつくるステップと、
該所定の値と実質的に同じ値を表現するビットを選択することによって、該複数のブロック識別子ビットのそれぞれを求めるステップと、
該ブロック識別子ビットを有するそれぞれのロウ毎に、該エンコードされたデータビットの複数のロウの数をカウントするステップと、
該ブロック識別子ビットを有する該それぞれのロウ毎に、該複数のエンコードされたデータビットロウの該比例する数を超える該複数のエンコードされたデータビットロウを削除するステップと、
該複数のエンコードされたデータビットロウの該数が該比例する数未満である時に、該ブロック識別子ビットを有する該それぞれのロウ毎に、複数のディジタルビットロウを追加するステップと、
該ビットマップの該ディジタル表現をデランダムマイズすることによって、該印刷媒体上に印刷されている該情報をデコードするステップと、
を含んでいる方法。 - エンコードされたデータビットを表現するデータ画素の複数のロウおよび複数のカラムのビットマップのかたちで印刷媒体上に印刷されたランダマイズされた情報をデコードする方法であって、該データ画素のうち所定数のデータ画素がそれぞれ、該エンコードされたデータビットのうち比例する数の該エンコードされたデータビットを表現しており、該比例する数の該エンコードされたデータビットが、所定の値を有するブロック識別子ビットを表現する複数のブロック識別子画素によって互いに分離されており、該データ画素および該ブロック識別子画素のそれぞれが、第1の色または第2の色のいずれかであり、該印刷媒体が、印刷されたテキスト情報をさらに有しており、該エンコードされた情報が、該情報に隣接する少なくとも1つの垂直または水平デスキューイングストリップを有しており、該方法は、
該印刷媒体から該テキスト情報および該ビットマップを読み取るステップと、
該テキスト情報および該ビットマップを画素ベースの階調表現にフォーマットするステップと、
該階調表現に基づいて、閾値を超える画素が該第1の色に対応し、かつ、該閾値を下回る画素が該第2の色に対応するように、閾値強度レベルを設定することによって、該閾値のビットマップを求めるステップと、
該閾値ビットマップの位置を特定するステップと、
該少なくとも1つの垂直または水平デスキューイングストリップが、それぞれ実質的に垂直または水平にシフトされるように、該ビットマップをデスキューするステップと、
該ビットマップの該複数のロウおよび該複数のカラムのそれぞれにおいて、水平エッジ数および垂直エッジ数を求めるステップと、
該複数のロウおよび該複数のカラム中から選択されたいくつかのグループをつくり、該選択されたいくつかのグループのそれぞれにおいて、該エッジの数が最小となるロウセンターラインおよびカラムセンターラインをそれぞれ求めるステップと、
該ロウセンターラインのそれぞれと、該カラムセンターラインのそれぞれとの交点に位置する2進データを読み出すことによって、選択された数の該エンコードされたデータビットおよび該ブロック識別子ビットを有する該ビットマップを表現する2次元ディジタル表現を生成するステップと、
該所定の値と実質的に同じ値を表現するデータビットを選択することによって、該複数のブロック識別子ビットのそれぞれを求めるステップと、
該それぞれのブロック識別子ビット毎に、該エンコードされたデータビットのビット数をカウントするステップと、
該それぞれのブロック識別子ビット毎に、該エンコードされたデータビットの該比例する数を超える該エンコードされたデータビットのビットを削除するステップと、
該エンコードされたデータビットの該数が該比例する数未満である時に、該それぞれのブロック識別子ビット毎に、該エンコードされたデータビットにディジタルビットを追加するステップと、
該ビットマップの該ディジタル表現をデランダマイズするステップと、
該デランダマイズされたディジタル表現を誤り訂正することによって、該印刷媒体上に印刷された該エンコードされた情報を表現する実質的に誤りのない信号を生成するステップと、
を含んでいる方法。 - 前記エッジ数を求める前記ステップが、ある選択された画素に隣接する2つの画素の色を求めるステップと、該2つの隣接する画素が異なる色である時にエッジを宣言するステップと、を含んでいる、請求項11、12、16および17のいずれか1つに記載の方法。
- 前記第1の色が白および黒のいずれか1つであり、前記第2の色が白および黒のもう一方である、請求項18に記載の方法。
- 前記ロウまたはカラムを削除するステップが、隣接するロウまたはカラムと実質的に同じディジタルデータを有するロウまたはカラムを選択することによって、削除すべき余分なロウまたはカラムを選択するステップを含んでおり、前記ロウまたはカラムを追加するステップが、ランダムデータロウまたはランダムデータカラムを追加するステップを含んでいる、請求項14、15および16のいずれか1つに記載の方法。
- 前記ディジタルロウあるいはカラムを追加するステップが、前記それぞれのロウセンターラインに隣接するロウが、該ロウセンターラインに対して最大ハミング距離を有する位置を求めることによって、該追加するロウあるいはカラムをどこに追加するかを選択するステップと、ランダムデータを含むディジタルロウあるいはカラムを該位置に追加するステップと、をさらに含んでいる、請求項15および16のいずれか1つに記載の方法。
- 前記ランダマイズされた情報が、1ビットずつランダマイズされている、請求項12、15、16および17のいずれか1つに記載の方法。
- 選択された画素ロウ長およびカラム長を有し、かつ複数のブロック識別子を有する、ディジタル的にエンコードされた情報のビットマップフォーマット化表現を含んでいる2次元データバーコードであって、該複数のブロック識別子のそれぞれが所定の値を有しており、かつ、隣接するブロック識別子から所定数のロウまたはカラムだけ隔てられているように所定の位置に配置されており、それによって、該エンコードされた情報が該バーコードからデコードされた時に、もし2つのシーケンシャルブロック識別子間のロウ数またはカラム数が該所定の数に等しくないのなら、該デコードされた情報を自動的に訂正することができる、2次元データバーコード。
- 選択された画素ロウ長およびカラム長を有し、かつ複数のブロック識別子を有するランダマイズされエンコードされた情報のビットマップフォーマット化表現を含んでいる2次元データバーコードであって、該複数のブロック識別子のそれぞれが所定の値を有しており、かつ、隣接するブロック識別子から所定数のロウまたはカラムだけ隔てられているように所定の位置に配置されており、それによって、該エンコードされた情報が該バーコードからデコードされた時に、もし2つのシーケンシャルブロック識別子間のロウ数またはカラム数が該所定の数に等しくないのなら、該デコードされた情報を自動的に訂正することができる、2次元データバーコード。
- 前記ロウ長または前記カラム長にそれぞれほぼ等しい長さをもつ少なくとも1つの水平または垂直デスキューイングストリップをさらに含んでいる、請求項23および24のいずれか1つに記載のデータバーコード。
- 前記ランダマイズされたエンコードされた情報が、1ビットずつランダマイズされている、請求項24に記載のデータバーコード。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/569,280 US5862270A (en) | 1995-12-08 | 1995-12-08 | Clock free two-dimensional barcode and method for printing and reading the same |
US08/569,280 | 1995-12-08 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09179924A JPH09179924A (ja) | 1997-07-11 |
JP3643196B2 true JP3643196B2 (ja) | 2005-04-27 |
Family
ID=24274776
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP32653396A Expired - Fee Related JP3643196B2 (ja) | 1995-12-08 | 1996-12-06 | 印刷媒体に印刷する情報をエンコードする方法、印刷媒体に印刷された情報をデコードする方法、および2次元データバーコード |
Country Status (5)
Country | Link |
---|---|
US (2) | US5862270A (ja) |
EP (1) | EP0783160B1 (ja) |
JP (1) | JP3643196B2 (ja) |
CA (1) | CA2192008C (ja) |
DE (1) | DE69635512T2 (ja) |
Families Citing this family (132)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6543024B2 (en) * | 1996-02-09 | 2003-04-01 | Overland Storage, Inc. | Write format for digital data storage |
US6314406B1 (en) * | 1996-06-26 | 2001-11-06 | Telxon Corporation | Customer information network |
US20020194075A1 (en) * | 1996-12-19 | 2002-12-19 | O'hagan Timothy P. | Customer order notification system using mobile computers for use in retail establishiments |
US6201901B1 (en) * | 1998-06-01 | 2001-03-13 | Matsushita Electronic Industrial Co., Ltd. | Border-less clock free two-dimensional barcode and method for printing and reading the same |
DE29924753U1 (de) * | 1998-12-16 | 2005-05-19 | Matsushita Electric Industrial Co., Ltd., Kadoma | Vorrichtung zum Auffinden und Lesen eines zweidimensionalen Strichcodes |
US6565003B1 (en) | 1998-12-16 | 2003-05-20 | Matsushita Electric Industrial Co., Ltd. | Method for locating and reading a two-dimensional barcode |
US6082619A (en) * | 1998-12-16 | 2000-07-04 | Matsushita Electric Industrial Co., Ltd. | Method for locating and reading a two-dimensional barcode |
US6847469B1 (en) * | 1998-12-24 | 2005-01-25 | Ricoh Company, Ltd. | Image processing apparatus for removing an isolated point |
US6371373B1 (en) * | 1999-05-25 | 2002-04-16 | Matsushita Electric Industrial Co., Ltd. | Method for reading a two-dimensional barcode |
US6894794B1 (en) * | 1999-06-24 | 2005-05-17 | Eastman Kodak Company | Method and apparatus for making a print having an invisible coordinate system |
US6771820B1 (en) * | 1999-08-12 | 2004-08-03 | Hewlett-Packard Development Company, Lp. | Encoding information within text printed on a page using differing gray or color levels |
US7558563B2 (en) * | 1999-09-17 | 2009-07-07 | Silverbrook Research Pty Ltd | Retrieving contact details via a coded surface |
US6674919B1 (en) * | 1999-09-21 | 2004-01-06 | Matsushita Electric Industrial Co., Ltd. | Method for determining the skew angle of a two-dimensional barcode |
US6826562B1 (en) * | 1999-11-29 | 2004-11-30 | International Business Machines Corporation | Method of simplifying and optimizing scalar subqueries and derived tables that return exactly or at most one tuple |
US6880755B2 (en) * | 1999-12-06 | 2005-04-19 | Xerox Coporation | Method and apparatus for display of spatially registered information using embedded data |
US6678425B1 (en) * | 1999-12-06 | 2004-01-13 | Xerox Corporation | Method and apparatus for decoding angular orientation of lattice codes |
US6935562B2 (en) | 1999-12-06 | 2005-08-30 | Xerox Corporation | Operations on images having glyph carpets |
US20010034835A1 (en) * | 2000-02-29 | 2001-10-25 | Smith Robert E. | Applied digital and physical signatures over telecommunications media |
US7185816B1 (en) * | 2000-05-04 | 2007-03-06 | Symbol Technologies, Inc. | Bar code and method of forming a bar code having color for encoding supplemental information |
US20020016750A1 (en) * | 2000-06-20 | 2002-02-07 | Olivier Attia | System and method for scan-based input, storage and retrieval of information over an interactive communication network |
KR20020010458A (ko) * | 2000-07-26 | 2002-02-04 | 정규식 | 이차원바코드를 이용한 문서전달 시스템 및 방법 |
JP2002062803A (ja) * | 2000-08-23 | 2002-02-28 | Dainippon Printing Co Ltd | 認証書類、認証用紙、及び、認証書類の発行・検証システム |
DE10123406A1 (de) * | 2001-05-15 | 2002-11-21 | Sick Ag | Verfahren zum Erfassen von zweidimensionalen Codes |
US6814289B2 (en) | 2001-05-30 | 2004-11-09 | Sandia Corporation | Self-registering spread-spectrum barcode method |
US6869015B2 (en) | 2001-05-30 | 2005-03-22 | Sandia National Laboratories | Tamper-indicating barcode and method |
US6895116B2 (en) * | 2001-06-07 | 2005-05-17 | Hewlett-Packard Development Company, L.P. | Automatically extracting graphical bar codes |
DE10141876A1 (de) * | 2001-08-28 | 2003-03-20 | Sick Ag | Verfahren zur Erkennung eines Codes |
KR20030038299A (ko) * | 2001-11-06 | 2003-05-16 | 이강용 | 바코드를 이용한 지문 인식 방법 |
US6631012B2 (en) * | 2001-12-11 | 2003-10-07 | Pitney Bowes Inc. | Apparatus and method for printing two-dimensional barcode and articles incorporating such barcode |
US8262090B2 (en) * | 2001-12-13 | 2012-09-11 | The United States Playing Card Company | Method, apparatus and article for random sequence generation and playing card distribution |
KR100353416B1 (en) * | 2002-02-15 | 2002-09-18 | Dream To Reality | Print controlling method capable of inserting two-dimensional bar code |
US7028911B2 (en) * | 2002-08-07 | 2006-04-18 | Shenzhen Syscan Technology Co. Limited | Methods and systems for encoding and decoding data in 2D symbology |
US6922199B2 (en) * | 2002-08-28 | 2005-07-26 | Micron Technology, Inc. | Full-scene anti-aliasing method and system |
US7156311B2 (en) * | 2003-07-16 | 2007-01-02 | Scanbuy, Inc. | System and method for decoding and analyzing barcodes using a mobile device |
US7387250B2 (en) * | 2003-12-04 | 2008-06-17 | Scanbuy, Inc. | System and method for on the spot purchasing by scanning barcodes from screens with a mobile device |
US20050194444A1 (en) * | 2004-03-03 | 2005-09-08 | Gieske Harry A. | System for encoding information using colors |
US7296747B2 (en) * | 2004-04-20 | 2007-11-20 | Michael Rohs | Visual code system for camera-equipped mobile devices and applications thereof |
KR100560330B1 (ko) * | 2004-04-21 | 2006-03-30 | 에이디정보통신 주식회사 | 색상 보정이 가능한 대용량 2차원 칼라 바코드인코딩/디코딩 시스템 및 그 방법 |
US7687271B2 (en) * | 2004-04-22 | 2010-03-30 | Kodak Graphic Communications Canada Company | Covert authentication method and apparatus |
US20050246196A1 (en) * | 2004-04-28 | 2005-11-03 | Didier Frantz | Real-time behavior monitoring system |
WO2005111922A1 (en) * | 2004-05-18 | 2005-11-24 | Silverbrook Research Pty Ltd | Pharmaceutical product tracking |
US8215556B2 (en) * | 2004-06-28 | 2012-07-10 | Konica Minolta Laboratory U.S.A., Inc. | Color barcode producing, reading and/or reproducing method and apparatus |
JP4116597B2 (ja) * | 2004-07-13 | 2008-07-09 | グローリー株式会社 | バーコード認識装置、バーコード認識方法およびバーコード認識プログラム。 |
US7309015B2 (en) * | 2004-07-14 | 2007-12-18 | Scanbuy, Inc. | Mobile device gateway providing access to instant information |
US7533817B2 (en) * | 2004-08-09 | 2009-05-19 | Konica Minolta Systems Laboratory, Inc. | Color barcode producing method and apparatus, color barcode reading method and apparatus and color barcode reproducing method and apparatus |
US8624970B2 (en) * | 2004-08-10 | 2014-01-07 | Thomas Krobath | Method for displaying route information |
US20060043189A1 (en) * | 2004-08-31 | 2006-03-02 | Sachin Agrawal | Method and apparatus for determining the vertices of a character in a two-dimensional barcode symbol |
DE102004051056A1 (de) * | 2004-09-13 | 2006-03-16 | Udo Herrmann | Schlüssel, Schlüsselsystem, Verfahren zur Identifikation eines individuellen Schlüssels und Verfahren zur Herstellung eines solchen Schlüssels |
US7848578B2 (en) * | 2004-09-13 | 2010-12-07 | Nokia Corporation | Methods, devices and computer program products for capture and display of visually encoded data and an image |
US7267272B2 (en) * | 2004-09-28 | 2007-09-11 | Markem Corporation | Variable stride bit blitting |
US7578436B1 (en) * | 2004-11-08 | 2009-08-25 | Pisafe, Inc. | Method and apparatus for providing secure document distribution |
US7543748B2 (en) * | 2005-02-16 | 2009-06-09 | Pisafe, Inc. | Method and system for creating and using redundant and high capacity barcodes |
JP4556705B2 (ja) * | 2005-02-28 | 2010-10-06 | 富士ゼロックス株式会社 | 2次元座標同定装置、画像形成装置及び2次元座標同定方法 |
US7669769B2 (en) * | 2005-03-28 | 2010-03-02 | Konica Minolta Systems Laboratory, Inc. | Systems and methods for preserving and maintaining document integrity |
US7523855B2 (en) * | 2005-03-28 | 2009-04-28 | Konica Minolta Systems Laboratory, Inc. | Systems and methods for preserving and maintaining document integrity |
KR100773090B1 (ko) * | 2005-09-14 | 2007-11-02 | 박문수 | 별코드 |
US7558599B2 (en) * | 2005-09-19 | 2009-07-07 | Silverbrook Research Pty Ltd | Printing a bill using a mobile device |
US20070085332A1 (en) * | 2005-09-19 | 2007-04-19 | Silverbrook Research Pty Ltd | Link object to sticker and location on surface |
US7880911B2 (en) * | 2005-09-19 | 2011-02-01 | Silverbrook Research Pty Ltd | Printing a position using a mobile device |
US7697714B2 (en) * | 2005-09-19 | 2010-04-13 | Silverbrook Research Pty Ltd | Associating an object with a sticker and a surface |
US7708203B2 (en) | 2005-09-19 | 2010-05-04 | Silverbrook Research Pty Ltd | Link object to sticker |
US7506802B2 (en) * | 2005-09-19 | 2009-03-24 | Silverbrook Research Pty Ltd | Method of performing an action in relation to a software object |
US7380709B2 (en) * | 2005-09-19 | 2008-06-03 | Silverbrook Research Pty Ltd | Printing a trading card using a mobile device |
US7945943B2 (en) * | 2005-09-19 | 2011-05-17 | Silverbrook Research Pty Ltd | Retrieving an access token via a coded surface |
US7689249B2 (en) * | 2005-09-19 | 2010-03-30 | Silverbrook Research Pty Ltd | Printing a security identification using a mobile device |
US7407092B2 (en) * | 2005-09-19 | 2008-08-05 | Silverbrook Research Pty Ltd | Printing gaming information using a mobile device |
US7843596B2 (en) | 2005-09-19 | 2010-11-30 | Silverbrook Research Pty Ltd | Printing a ticket using a mobile device |
US7668540B2 (en) * | 2005-09-19 | 2010-02-23 | Silverbrook Research Pty Ltd | Print on a mobile device with persistence |
US7761090B2 (en) | 2005-09-19 | 2010-07-20 | Silverbrook Research Pty Ltd | Print remotely to a mobile device |
US7357311B2 (en) * | 2005-09-19 | 2008-04-15 | Silverbrook Research Pty Ltd | Printing educational material using a mobile device |
US20070064075A1 (en) * | 2005-09-19 | 2007-03-22 | Silverbrook Research Pty Ltd | Printing a membership using a mobile device |
US7756526B2 (en) | 2005-09-19 | 2010-07-13 | Silverbrook Research Pty Ltd | Retrieving a web page via a coded surface |
US7637424B2 (en) * | 2005-09-19 | 2009-12-29 | Silverbrook Research Pty Ltd | Printing audio information using a mobile device |
US7403797B2 (en) * | 2005-09-19 | 2008-07-22 | Silverbrook Research Pty Ltd | Obtaining a physical product via a coded surface |
US7575172B2 (en) | 2005-09-19 | 2009-08-18 | Silverbrook Research Pty Ltd | Printing a greeting card using a mobile device |
US20070065206A1 (en) * | 2005-09-19 | 2007-03-22 | Silverbrook Research Pty Ltd | Printing a coupon using a mobile device |
US7856225B2 (en) | 2005-09-19 | 2010-12-21 | Silverbrook Research Pty Ltd | Retrieving a program state via a coded surface |
US7654444B2 (en) * | 2005-09-19 | 2010-02-02 | Silverbrook Research Pty Ltd | Reusable sticker |
US7428986B2 (en) * | 2005-09-19 | 2008-09-30 | Silverbrook Research Pty Ltd | Printing a health report using a mobile device |
US7920896B2 (en) * | 2005-09-19 | 2011-04-05 | Kia Silverbrook | Printing an almanac using a mobile device |
US7438215B2 (en) * | 2005-09-19 | 2008-10-21 | Silverbrook Research Pty Ltd | Printing location-based information using a mobile device |
US7805162B2 (en) * | 2005-09-19 | 2010-09-28 | Silverbrook Research Pty Ltd | Print card with linked object |
US7641115B2 (en) | 2005-09-19 | 2010-01-05 | Silverbrook Research Pty Ltd | Type-specific sticker |
US7742755B2 (en) | 2005-09-19 | 2010-06-22 | Silverbrook Research Pty Ltd | Retrieving a bill via a coded surface |
US7970435B2 (en) * | 2005-09-19 | 2011-06-28 | Silverbrook Research Pty Ltd | Printing an advertisement using a mobile device |
US7621442B2 (en) * | 2005-09-19 | 2009-11-24 | Silverbrook Research Pty Ltd | Printing a subscription using a mobile device |
US7953386B2 (en) | 2005-09-19 | 2011-05-31 | Silverbrook Research Pty Ltd | Bill per card print |
US7848777B2 (en) | 2005-09-19 | 2010-12-07 | Silverbrook Research Pty Ltd | Printing a puzzle using a mobile device |
US7855805B2 (en) | 2005-09-19 | 2010-12-21 | Silverbrook Research Pty Ltd | Printing a competition entry form using a mobile device |
US7992213B2 (en) | 2005-09-19 | 2011-08-02 | Silverbrook Research Pty Ltd | Gaining access via a coded surface |
US7953387B2 (en) * | 2005-09-19 | 2011-05-31 | Silverbrook Research Pty Ltd | Retrieving a program via a coded surface |
US7924450B2 (en) * | 2005-09-19 | 2011-04-12 | Silverbrook Research Pty Ltd | Reprint card on a mobile device |
US7843595B2 (en) | 2005-09-19 | 2010-11-30 | Silverbrook Research Pty Ltd | Printing a calendar using a mobile device |
US7724399B2 (en) * | 2005-09-19 | 2010-05-25 | Silverbrook Research Pty Ltd | Method of downloading and installing a software object |
US20070064130A1 (en) * | 2005-09-19 | 2007-03-22 | Silverbrook Research Pty Ltd | Link object to form field on surface |
US7672664B2 (en) * | 2005-09-19 | 2010-03-02 | Silverbrook Research Pty Ltd | Printing a reminder list using mobile device |
US7469829B2 (en) * | 2005-09-19 | 2008-12-30 | Silverbrook Research Pty Ltd | Printing video information using a mobile device |
US7747280B2 (en) | 2005-09-19 | 2010-06-29 | Silverbrook Research Pty Ltd | Retrieving a product via a coded surface |
US8072629B2 (en) * | 2005-09-19 | 2011-12-06 | Silverbrook Research Pty Ltd | Print subscribed content on a mobile device |
US7917171B2 (en) * | 2005-09-19 | 2011-03-29 | Silverbrook Research Pty Ltd | Printing a receipt using a mobile device |
US7920854B2 (en) * | 2005-09-19 | 2011-04-05 | Silverbrook Research Pty Ltd | Printing a map using a mobile device |
US7558597B2 (en) | 2005-09-19 | 2009-07-07 | Silverbrook Research Pty Ltd. | Retrieving a ringtone via a coded surface |
US7428996B2 (en) * | 2005-11-17 | 2008-09-30 | Pitney Bowes Inc. | Method and system for encoding information into a bar code with different module size |
WO2007075719A2 (en) | 2005-12-16 | 2007-07-05 | Pisafe, Inc. | Method and system for creating and using barcodes |
US8016187B2 (en) * | 2006-02-21 | 2011-09-13 | Scanbury, Inc. | Mobile payment system using barcode capture |
US8150163B2 (en) * | 2006-04-12 | 2012-04-03 | Scanbuy, Inc. | System and method for recovering image detail from multiple image frames in real-time |
JP2008078777A (ja) * | 2006-09-19 | 2008-04-03 | Brother Ind Ltd | 印刷物管理装置 |
JP2008074068A (ja) * | 2006-09-25 | 2008-04-03 | Brother Ind Ltd | 画像形成装置 |
JP2008084152A (ja) * | 2006-09-28 | 2008-04-10 | Brother Ind Ltd | 画像形成装置及びプログラム |
JP2008085844A (ja) * | 2006-09-28 | 2008-04-10 | Brother Ind Ltd | データ処理装置及び被記録媒体 |
JP4197027B2 (ja) * | 2006-09-28 | 2008-12-17 | ブラザー工業株式会社 | 画像形成装置及びプログラム |
US7628330B2 (en) * | 2006-09-29 | 2009-12-08 | Konica Minolta Systems Laboratory, Inc. | Barcode and decreased-resolution reproduction of a document image |
US7766241B2 (en) * | 2006-09-29 | 2010-08-03 | Konica Minolta Systems Laboratory, Inc. | Barcode for two-way verification of a document |
JP2008090340A (ja) * | 2006-09-29 | 2008-04-17 | Brother Ind Ltd | 文書データ編集装置、文書作成システム、及びプログラム |
JP4240107B2 (ja) * | 2006-10-27 | 2009-03-18 | コニカミノルタビジネステクノロジーズ株式会社 | 領域判定方法、領域判定装置、画像処理装置、およびコンピュータプログラム |
AT504746B1 (de) * | 2007-01-23 | 2008-07-15 | Arc Austrian Res Centers Gmbh | Verfahren zum speichern und auslesen einer folge von datenwerten |
GB0714534D0 (en) * | 2007-07-26 | 2007-09-05 | Iti Scotland Ltd | Secure authentic feature |
JP5014013B2 (ja) * | 2007-08-02 | 2012-08-29 | 株式会社リコー | 画像処理装置 |
US8780402B2 (en) * | 2007-09-04 | 2014-07-15 | Hewlett-Packard Development Company, L.P. | Document and method of producing a document |
US7874496B2 (en) * | 2008-01-04 | 2011-01-25 | Microsoft Corporation | Optically readable tag |
CN101978380B (zh) | 2008-01-29 | 2015-11-25 | 威泰克公司 | 二维符号及其读取方法 |
US8213706B2 (en) * | 2008-04-22 | 2012-07-03 | Honeywell International Inc. | Method and system for real-time visual odometry |
JP5287485B2 (ja) * | 2009-05-11 | 2013-09-11 | 富士ゼロックス株式会社 | 情報表現画像、印刷物、画像処理装置及び画像処理プログラム |
US8532632B2 (en) | 2011-05-16 | 2013-09-10 | Wesley Boudville | Cellphone changing an electronic display that contains a barcode |
US8348149B1 (en) | 2011-07-28 | 2013-01-08 | Wesley Boudville | Using dynamic barcodes to send data to a cellphone |
US8821277B2 (en) | 2011-12-16 | 2014-09-02 | Wesley John Boudville | Colour barcodes and cellphone |
US8655694B2 (en) | 2012-05-29 | 2014-02-18 | Wesley John Boudville | Dynamic group purchases using barcodes |
FR2993655B1 (fr) * | 2012-07-20 | 2014-08-29 | Color Grail Res | Procede de codage par compression adaptative de la couleur d'un objet sous une forme multispectrale et procede de decodage associe |
US10567489B2 (en) * | 2013-03-15 | 2020-02-18 | Time Warner Cable Enterprises Llc | System and method for seamless switching between data streams |
KR101557829B1 (ko) * | 2013-08-07 | 2015-10-06 | (주) 엠티콤 | 음성 기반 재생정보 생성 및 인식 방법 및 기록 매체 |
US9646236B1 (en) * | 2015-12-14 | 2017-05-09 | International Business Machines Corporation | Encoding and decoding data in two-dimensional symbology |
DE102020130929A1 (de) | 2020-07-31 | 2022-02-03 | Technische Universität Dortmund | Verfahren und Vorrichtung zur Auswertung von Matrixcodes |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS57147374A (en) * | 1981-03-06 | 1982-09-11 | Fuji Xerox Co Ltd | Reader of two-color original |
US4447903A (en) * | 1981-05-22 | 1984-05-08 | Ael Microtel, Ltd. | Forward error correction using coding and redundant transmission |
US4692603A (en) * | 1985-04-01 | 1987-09-08 | Cauzin Systems, Incorporated | Optical reader for printed bit-encoded data and method of reading same |
US4782221A (en) * | 1985-04-01 | 1988-11-01 | Cauzin Systems, Incorporated | Printed data strip including bit-encoded information and scanner control |
US4835713A (en) * | 1985-08-06 | 1989-05-30 | Pitney Bowes Inc. | Postage meter with coded graphic information in the indicia |
US4754127A (en) * | 1985-11-15 | 1988-06-28 | Cauzin Systems, Incorporated | Method and apparatus for transforming digitally encoded data into printed data strips |
JPS62219769A (ja) * | 1986-03-19 | 1987-09-28 | Canon Inc | 電子フアイリングシステム |
JPS62219768A (ja) * | 1986-03-19 | 1987-09-28 | Canon Inc | 電子フアイリングシステム |
US4924078A (en) * | 1987-11-25 | 1990-05-08 | Sant Anselmo Carl | Identification symbol, system and method |
US5053609A (en) * | 1988-05-05 | 1991-10-01 | International Data Matrix, Inc. | Dynamically variable machine readable binary code and method for reading and producing thereof |
US4939354A (en) * | 1988-05-05 | 1990-07-03 | Datacode International, Inc. | Dynamically variable machine readable binary code and method for reading and producing thereof |
US5126542A (en) * | 1988-05-05 | 1992-06-30 | International Data Matrix, Inc. | Dynamically variable machine readable binary code and method for reading and producing thereof |
US5083214A (en) * | 1990-05-02 | 1992-01-21 | Eastman Kodak Company | Apparatus and methods for extracting data from a scanned bit-mapped data strip |
JPH0428062A (ja) * | 1990-05-24 | 1992-01-30 | Matsushita Electric Ind Co Ltd | ディジタルデータ記録再生装置 |
US5060980A (en) * | 1990-05-30 | 1991-10-29 | Xerox Corporation | Form utilizing encoded indications for form field processing |
US5091966A (en) * | 1990-07-31 | 1992-02-25 | Xerox Corporation | Adaptive scaling for decoding spatially periodic self-clocking glyph shape codes |
US5128525A (en) * | 1990-07-31 | 1992-07-07 | Xerox Corporation | Convolution filtering for decoding self-clocking glyph shape codes |
US5168147A (en) * | 1990-07-31 | 1992-12-01 | Xerox Corporation | Binary image processing for decoding self-clocking glyph shape codes |
US5051779A (en) * | 1990-10-10 | 1991-09-24 | Fuji Xerox Co., Ltd. | Job control sheet for image processing system |
WO1993009506A1 (en) * | 1991-10-30 | 1993-05-13 | Computer Based Controls, Inc. | Financial document dispensing apparatus and method |
US5245165A (en) * | 1991-12-27 | 1993-09-14 | Xerox Corporation | Self-clocking glyph code for encoding dual bit digital values robustly |
US5221833A (en) * | 1991-12-27 | 1993-06-22 | Xerox Corporation | Methods and means for reducing bit error rates in reading self-clocking glyph codes |
US5343028A (en) * | 1992-08-10 | 1994-08-30 | United Parcel Service Of America, Inc. | Method and apparatus for detecting and decoding bar code symbols using two-dimensional digital pixel images |
JP2833975B2 (ja) * | 1992-09-28 | 1998-12-09 | オリンパス光学工業株式会社 | ドットコード |
US5337362A (en) * | 1993-04-15 | 1994-08-09 | Ricoh Corporation | Method and apparatus for placing data onto plain paper |
JP2938338B2 (ja) * | 1994-03-14 | 1999-08-23 | 株式会社デンソー | 二次元コード |
JP3335470B2 (ja) * | 1994-05-02 | 2002-10-15 | オリンパス光学工業株式会社 | 変調方法及び復調方法 |
-
1995
- 1995-12-08 US US08/569,280 patent/US5862270A/en not_active Expired - Fee Related
-
1996
- 1996-12-04 CA CA002192008A patent/CA2192008C/en not_active Expired - Fee Related
- 1996-12-05 DE DE69635512T patent/DE69635512T2/de not_active Expired - Fee Related
- 1996-12-05 EP EP96308846A patent/EP0783160B1/en not_active Expired - Lifetime
- 1996-12-06 JP JP32653396A patent/JP3643196B2/ja not_active Expired - Fee Related
-
1998
- 1998-08-14 US US09/134,327 patent/US6115508A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US5862270A (en) | 1999-01-19 |
DE69635512D1 (de) | 2006-01-05 |
EP0783160A2 (en) | 1997-07-09 |
CA2192008A1 (en) | 1997-06-09 |
EP0783160A3 (en) | 2001-07-11 |
JPH09179924A (ja) | 1997-07-11 |
DE69635512T2 (de) | 2006-08-10 |
CA2192008C (en) | 2002-02-12 |
US6115508A (en) | 2000-09-05 |
EP0783160B1 (en) | 2005-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3643196B2 (ja) | 印刷媒体に印刷する情報をエンコードする方法、印刷媒体に印刷された情報をデコードする方法、および2次元データバーコード | |
US7857405B2 (en) | Method of mapping error-detection and redundant encoded data to an image | |
US7286162B2 (en) | Photograph including coded image data | |
US5861619A (en) | Method of and apparatus for embedding data into an electronic document by modulating spaces between words | |
US20060255141A1 (en) | Machine readable data | |
JP2000132651A (ja) | 無境界クロックなし2次元バ―コ―ドとそのプリント法および読みとり法 | |
AU2007254619B2 (en) | Barcode removal | |
EP1333979B1 (en) | Method and apparatus for fault tolerant data storage on photographs | |
AU2002210250A1 (en) | Fault tolerant data storage on photographs | |
AU2001295290A1 (en) | Method and apparatus for fault tolerant data storage on photographs | |
US6641051B1 (en) | System for embedded digital data that allows embedding of data around known obstructions | |
US20080101699A1 (en) | Image generation apparatus and recording medium | |
JP3545782B2 (ja) | 極秘文書の機密保持方法 | |
Kise et al. | Backgrounds as information carriers for printed documents | |
EA002213B1 (ru) | Способ идентификации изображения или документа | |
AU2005202426B2 (en) | Method and apparatus for fault tolerant storage of photographs | |
Bloomberg | Embedding digital data on paper in iconic text | |
KITAZAWA et al. | An improvement of a single-dot method for an information-hiding method by applying an error-correcting code | |
AU2004202957A1 (en) | Data storage on photographs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040330 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040531 |
|
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: 20050117 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050127 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080204 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090204 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |