JP3643196B2 - 印刷媒体に印刷する情報をエンコードする方法、印刷媒体に印刷された情報をデコードする方法、および2次元データバーコード - Google Patents

印刷媒体に印刷する情報をエンコードする方法、印刷媒体に印刷された情報をデコードする方法、および2次元データバーコード Download PDF

Info

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
Application number
JP32653396A
Other languages
English (en)
Other versions
JPH09179924A (ja
Inventor
ロプレスティ ダニエル
エサコフ ジェフリー
ゾウ ジアンギン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Publication of JPH09179924A publication Critical patent/JPH09179924A/ja
Application granted granted Critical
Publication of JP3643196B2 publication Critical patent/JP3643196B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/10544Methods 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/10821Methods 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/1093Methods 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K1/00Methods or arrangements for marking the record carrier in digital fashion
    • G06K1/12Methods or arrangements for marking the record carrier in digital fashion otherwise than by punching
    • G06K1/121Methods or arrangements for marking the record carrier in digital fashion otherwise than by punching by printing code marks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record 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/06009Record 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/06037Record 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods 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/1404Methods for optical code recognition
    • G06K7/1408Methods for optical code recognition the method being specifically adapted for the type of code
    • G06K7/14172D bar codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods 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/1404Methods for optical code recognition
    • G06K7/1439Methods for optical code recognition including a method step for retrieval of the optical code
    • G06K7/1452Methods for optical code recognition including a method step for retrieval of the optical code detecting bar code edges

Description

【0001】
【発明の属する技術分野】
本発明は、広くは、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. 印刷媒体上に印刷する情報をエンコードする方法であって、
    該情報を、データビットを表現する1シーケンスの「0」および「1」文字を有するデータストリームに変換するステップと、
    該データストリームをランダマイズすることによって、1シーケンスの「0」および「1」文字を有するランダマイズされたデータストリームを生成するステップと、
    該ランダマイズされたデータストリームを、複数のロウおよび複数のカラムの2次元ビットマップにフォーマットするステップと、
    クロッキングビットなし、かつ、ボーダーなしで該フォーマットされたビットマップを該印刷媒体上に印刷するステップと、
    を含んでいる情報エンコード方法。
  2. 印刷媒体上に印刷する情報をエンコードする方法であって、
    該情報を、データビットを表現する1シーケンスの「0」および「1」文字を有するデータストリームに変換するステップと、
    該データストリームをマッピングすることによって、複数の所定の空きビット位置をもつ複数のロウおよび複数のカラムのディジタル2次元ビットマップをつくるステップと、
    該複数の所定の空きビット位置のそれぞれにディジタルブロック識別子を追加するステップであって、該ディジタルブロック識別子がそれぞれ、所定数のブロック識別子ビットと、該ディジタルブロック識別子間のロウ数あるいはカラム数を識別可能とする値と、を有している、ステップと、
    該ディジタル2次元ビットマップをフォーマットすることによって、データ画素およびブロック識別子画素を有する、画素ベースの2次元ビットマップをつくるステップと、
    クロッキングビットなし、かつ、ボーダーなしで該フォーマットされたビットマップを該印刷媒体上に印刷するステップと、
    を含んでいる情報エンコード方法。
  3. 印刷媒体上に印刷する情報をエンコードする方法であって、
    該情報を、データビットを表現する1シーケンスの「0」および「1」文字を有するデータストリームに変換するステップと、
    該データストリームをランダマイズすることによって、データストリームにおいてほぼ同数の「0」文字および「1」文字を生成するステップと、
    該ランダマイズされたデータストリームをマッピングすることによって、複数の所定の空きビット位置をもつ複数のロウおよび複数のカラムのディジタル2次元ビットマップをつくるステップと、
    該複数の所定の空きビット位置のそれぞれにディジタルブロック識別子を追加するステップであって、該ディジタルブロック識別子がそれぞれ、所定数のブロック識別子ビットと、該ディジタルブロック識別子間のロウ数あるいはカラム数を識別可能とする値と、を有している、ステップと、
    該ディジタル2次元ビットマップをフォーマットすることによって、データ画素およびブロック識別子画素を有する、画素ベースの2次元ビットマップをつくるステップと、
    クロッキングビットなし、かつ、ボーダーなしで該フォーマットされたビットマップを該印刷媒体上に印刷するステップと、
    を含んでいる情報エンコード方法。
  4. 前記情報を圧縮するステップをさらに含んでいる、請求項1から3のいずれか1つに記載の方法。
  5. 誤り訂正符号データビットを前記データストリームに追加するステップをさらに含んでいる、請求項4に記載の方法。
  6. 前記データストリームを複製することによって、エンコード時の信頼性を改善する冗長データを生成するステップをさらに含んでいる、請求項5に記載の方法。
  7. 前記フォーマットするステップが、前記データストリームにヘッダ情報を追加することによって、標準的なポータブルビットマップ(PBM)フォーマットをつくるステップをさらに含んでいる、請求項6に記載の方法。
  8. 前記フォーマットするステップが、ロウの長さまたはカラムの長さにそれぞれほぼ等しい長さをもつ、少なくとも1つの水平または垂直デスキューイングストリップを追加するステップをさらに含んでいる、請求項7に記載の方法。
  9. 前記フォーマットするステップが、前記PBMフォーマットをインキャプシュレーテッドポストスクリプトに変換するステップをさらに含んでいる、請求項3に記載の方法。
  10. 前記データストリームをランダマイズする前記ステップが、該ストリームを1ビットずつランダマイズする、請求項1および3のいずれか1つに記載の方法。
  11. 所定の情報を表現するデータ画素の複数のロウおよび複数のカラムのかたちで印刷媒体上に印刷された情報をデコードする方法であって、該データ画素が第1の色または第2の色のいずれかであ方法
    該印刷媒体から該情報を読み取るステップと、
    該複数の画素ロウおよび該複数の画素カラムのそれぞれにおいて、水平エッジ数および垂直エッジ数を求めるステップと、
    該複数のロウおよび該複数のカラム中から選択されたいくつかのグループをつくり、該選択されたいくつかのグループのそれぞれにおいて、該エッジの数が最小となるロウセンターラインおよびカラムセンターラインをそれぞれ求めるステップと、
    該ロウセンターラインのそれぞれと、該カラムセンターラインのそれぞれとの交点に位置する2進データを読み出すことによって、該印刷媒体上に印刷されているエンコードされた情報を表現する信号を生成するステップと、
    を含んでいる方法。
  12. 所定の情報を表現するデータ画素の複数のロウおよび複数のカラムのかたちで印刷媒体上に印刷されたランダマイズされた情報をデコードする方法であって、該データ画素が第1の色または第2の色のいずれかであ方法
    該印刷媒体から該情報を読み取るステップと、
    該複数の画素ロウおよび該複数の画素カラムのそれぞれにおいて、水平エッジ数および垂直エッジ数を求めるステップと、
    該複数のロウおよび該複数のカラム中から選択されたいくつかのグループをつくり、該選択されたいくつかのグループのそれぞれにおいて、該エッジの数が最小となるロウセンターラインおよびカラムセンターラインをそれぞれ求めるステップと、
    該ロウセンターラインのそれぞれと、該カラムセンターラインのそれぞれとの交点に位置する2進データを読み出すことによって、該印刷媒体上に印刷されているエンコードされた情報を表現するランダマイズされた信号を生成するステップと、
    該ランダマイズされた信号をデランダマイズすることによって、該媒体上に印刷されている該ランダマイズされた情報をデコードするステップと、
    を含んでいる方法。
  13. エンコードされたデータビットを表現するデータ画素の複数のロウおよび複数のカラムのビットマップのかたちで印刷媒体上に印刷された情報をデコードする方法であって、該データ画素のうち所定数のデータ画素が、該エンコードされたデータビットのうち比例する数の該エンコードされたデータビットをそれぞれ表現しており、該比例する数の該エンコードされたデータビットが、所定の値を有するブロック識別子ビットを表現する複数のブロック識別子画素によって互いに分離されており、該データ画素および該ブロック識別子画素のそれぞれが、第1の色または第2の色のいずれかであ方法
    該印刷媒体から該ビットマップを読み取るステップと、
    該データ画素および該ブロック識別子画素から2進データを読み出すことによって、該ブロック識別子ビットによって互いに分離されている、ある選択された数の該エンコードされたデータビットを有する該ビットマップを表現する2次元ディジタルアレイをつくるステップと、
    該所定の値と実質的に同じ値を表現するデータビットを選択することによって、該複数のブロック識別子ビットのそれぞれを求めるステップと、
    該それぞれのブロック識別子ビット毎に、該エンコードされたデータビットのビット数をカウントするステップと、
    該それぞれのブロック識別子ビット毎に、該エンコードされたデータビットの該比例する数を超える該エンコードされたデータビットのビットを削除するステップと、
    該エンコードされたデータビットの該数が該比例する数未満である時に、該それぞれのブロック識別子ビット毎に、該エンコードされたデータビットにディジタルビットを追加することによって、該印刷媒体上に印刷されている該情報をデコードするステップと、
    を含んでいる方法。
  14. 前記エンコードされたデータビットの前記比例する数がそれぞれ、ブロック識別子ビットを表現する前記複数のブロック識別子画素のあるロウによって分離されている、複数のロウの既知の数を含んでおり、前記削除するステップが、該複数のロウの該既知の数を超える該エンコードされたデータビットの複数のロウを削除し、かつ、前記追加するステップが、複数のディジタルビットロウの数が、該複数のロウの該既知の数未満である時に、該複数のディジタルビットロウを追加する、請求項13に記載の方法。
  15. エンコードされたデータビットを表現するデータ画素の複数のロウおよび複数のカラムのビットマップのかたちで印刷媒体上に印刷された情報をデコードする方法であって、該複数のデータ画素カラムのうち所定数の該データ画素カラムがそれぞれ、該エンコードされたデータビットの該複数のカラムのうち比例する数の該エンコードされたデータビットカラムを表現しており、該比例する数の該エンコードされたデータビットカラムが、所定の値を有するブロック識別子ビットを表現する複数のブロック識別子画素によって互いに分離されており、該データ画素および該ブロック識別子画素のそれぞれが、第1の色または第2の色のいずれかであ方法
    該印刷媒体から該ビットマップを読み取るステップと、
    該データ画素および該ブロック識別子画素から2進データを読み出すことによって、該ブロック識別子ビットによって互いに分離されている、該エンコードされたデータビットの複数のロウを有する該ビットマップを表現する2次元ディジタルアレイをつくるステップと、
    該所定の値と実質的に同じ値を表現するビットを有するカラムを選択することによって、該複数のブロック識別子ビットのそれぞれを決定するステップと、
    該ブロック識別子ビットを有するそれぞれのカラム毎に、該エンコードされたデータビットの複数のカラムの数をカウントするステップと、
    該ブロック識別子ビットを有する該それぞれのカラム毎に、該複数のエンコードされたデータビットカラムの該比例する数を超える複数のエンコードされたデータビットカラムを削除するステップと、
    該複数のエンコードされたデータビットカラムの該数が該比例する数未満である時に、該ブロック識別子ビットを有する該それぞれのカラム毎に、ディジタルビットの複数のカラムを追加することによって、該印刷媒体上に印刷されている該情報をデコードするステップと、
    を含んでいる方法。
  16. エンコードされたデータビットを表現するデータ画素の複数のロウおよび複数のカラムのビットマップのかたちで印刷媒体上に印刷されたラインダマイズされた情報をデコードする方法であって、該複数のデータ画素ロウのうち所定数の該データ画素ロウがそれぞれ、該エンコードされたデータビットの該複数のロウのうち比例する数の該エンコードされたデータビットロウを表現しており、該比例する数の該エンコードされたデータビットロウが、所定の値を有するブロック識別子ビットを表現する複数のブロック識別子画素によって互いに分離されており、該データ画素および該ブロック識別子画素のそれぞれが、第1の色または第2の色のいずれかであ方法
    該印刷媒体から該ビットマップを読み取るステップと、
    該ビットマップの該複数のロウおよび該複数のカラムのそれぞれにおいて、水平エッジ数および垂直エッジ数を求めるステップと、
    該複数のロウおよび該複数のカラム中から選択されたいくつかのグループをつくり、該選択されたいくつかのグループのそれぞれにおいて、該エッジの数が最小となるロウセンターラインおよびカラムセンターラインをそれぞれ求めるステップと、
    該ロウセンターラインのそれぞれと、該カラムセンターラインのそれぞれとの交点に位置する2進データを読み出すことによって、該エンコードされたデータビットおよび該ブロック識別子ビットの複数のロウを有する該ビットマップを表現する2次元ディジタルアレイをつくるステップと、
    該所定の値と実質的に同じ値を表現するビットを選択することによって、該複数のブロック識別子ビットのそれぞれを求めるステップと、
    該ブロック識別子ビットを有するそれぞれのロウ毎に、該エンコードされたデータビットの複数のロウの数をカウントするステップと、
    該ブロック識別子ビットを有する該それぞれのロウ毎に、該複数のエンコードされたデータビットロウの該比例する数を超える該複数のエンコードされたデータビットロウを削除するステップと、
    該複数のエンコードされたデータビットロウの該数が該比例する数未満である時に、該ブロック識別子ビットを有する該それぞれのロウ毎に、複数のディジタルビットロウを追加するステップと、
    該ビットマップの該ディジタル表現をデランダムマイズすることによって、該印刷媒体上に印刷されている該情報をデコードするステップと、
    を含んでいる方法。
  17. エンコードされたデータビットを表現するデータ画素の複数のロウおよび複数のカラムのビットマップのかたちで印刷媒体上に印刷されたランダマイズされた情報をデコードする方法であって、該データ画素のうち所定数のデータ画素がそれぞれ、該エンコードされたデータビットのうち比例する数の該エンコードされたデータビットを表現しており、該比例する数の該エンコードされたデータビットが、所定の値を有するブロック識別子ビットを表現する複数のブロック識別子画素によって互いに分離されており、該データ画素および該ブロック識別子画素のそれぞれが、第1の色または第2の色のいずれかであ、該印刷媒体が、印刷されたテキスト情報をさらに有しており、該エンコードされた情報が、該情報に隣接する少なくとも1つの垂直または水平デスキューイングストリップを有しており方法
    該印刷媒体から該テキスト情報および該ビットマップを読み取るステップと、
    該テキスト情報および該ビットマップを画素ベースの階調表現にフォーマットするステップと、
    該階調表現に基づいて、閾値を超える画素が該第1の色に対応し、かつ、該閾値を下回る画素が該第2の色に対応するように、閾値強度レベルを設定することによって、該閾値のビットマップを求めるステップと、
    該閾値ビットマップの位置を特定するステップと、
    該少なくとも1つの垂直または水平デスキューイングストリップが、それぞれ実質的に垂直または水平にシフトされるように、該ビットマップをデスキューするステップと、
    該ビットマップの該複数のロウおよび該複数のカラムのそれぞれにおいて、水平エッジ数および垂直エッジ数を求めるステップと、
    該複数のロウおよび該複数のカラム中から選択されたいくつかのグループをつくり、該選択されたいくつかのグループのそれぞれにおいて、該エッジの数が最小となるロウセンターラインおよびカラムセンターラインをそれぞれ求めるステップと、
    該ロウセンターラインのそれぞれと、該カラムセンターラインのそれぞれとの交点に位置する2進データを読み出すことによって、選択された数の該エンコードされたデータビットおよび該ブロック識別子ビットを有する該ビットマップを表現する2次元ディジタル表現を生成するステップと、
    該所定の値と実質的に同じ値を表現するデータビットを選択することによって、該複数のブロック識別子ビットのそれぞれを求めるステップと、
    該それぞれのブロック識別子ビット毎に、該エンコードされたデータビットのビット数をカウントするステップと、
    該それぞれのブロック識別子ビット毎に、該エンコードされたデータビットの該比例する数を超える該エンコードされたデータビットのビットを削除するステップと、
    該エンコードされたデータビットの該数が該比例する数未満である時に、該それぞれのブロック識別子ビット毎に、該エンコードされたデータビットにディジタルビットを追加するステップと、
    該ビットマップの該ディジタル表現をデランダマイズするステップと、
    該デランダマイズされたディジタル表現を誤り訂正することによって、該印刷媒体上に印刷された該エンコードされた情報を表現する実質的に誤りのない信号を生成するステップと、
    を含んでいる方法。
  18. 前記エッジ数を求める前記ステップが、ある選択された画素に隣接する2つの画素の色を求めるステップと、該2つの隣接する画素が異なる色である時にエッジを宣言するステップと、を含んでいる、請求項11、12、16および17のいずれか1つに記載の方法。
  19. 前記第1の色が白および黒のいずれか1つであり、前記第2の色が白および黒のもう一方である、請求項18に記載の方法。
  20. 前記ロウまたはカラムを削除するステップが、隣接するロウまたはカラムと実質的に同じディジタルデータを有するロウまたはカラムを選択することによって、削除すべき余分なロウまたはカラムを選択するステップを含んでおり、前記ロウまたはカラムを追加するステップが、ランダムデータロウまたはランダムデータカラムを追加するステップを含んでいる、請求項14、15および16のいずれか1つに記載の方法。
  21. 前記ディジタルロウあるいはカラムを追加するステップが、前記それぞれのロウセンターラインに隣接するロウが、該ロウセンターラインに対して最大ハミング距離を有する位置を求めることによって、該追加するロウあるいはカラムをどこに追加するかを選択するステップと、ランダムデータを含むディジタルロウあるいはカラムを該位置に追加するステップと、をさらに含んでいる、請求項15および16のいずれか1つに記載の方法。
  22. 前記ランダマイズされ情報が、1ビットずつランダマイズされている、請求項12、15、16および17のいずれか1つに記載の方法。
  23. 選択された画素ロウ長およびカラム長を有し、かつ複数のブロック識別子を有する、ディジタル的にエンコードされた情報のビットマップフォーマット化表現を含んでいる2次元データバーコードであって、該複数のブロック識別子のそれぞれが所定の値を有しており、かつ、隣接するブロック識別子から所定数のロウまたはカラムだけ隔てられているように所定の位置に配置されており、それによって、該エンコードされた情報が該バーコードからデコードされた時に、もし2つのシーケンシャルブロック識別子間のロウ数またはカラム数が該所定の数に等しくないのなら、該デコードされた情報を自動的に訂正することができる、2次元データバーコード。
  24. 選択された画素ロウ長およびカラム長を有し、かつ複数のブロック識別子を有するランダマイズされエンコードされた情報のビットマップフォーマット化表現を含んでいる2次元データバーコードであって、該複数のブロック識別子のそれぞれが所定の値を有しており、かつ、隣接するブロック識別子から所定数のロウまたはカラムだけ隔てられているように所定の位置に配置されており、それによって、該エンコードされた情報が該バーコードからデコードされた時に、もし2つのシーケンシャルブロック識別子間のロウ数またはカラム数が該所定の数に等しくないのなら、該デコードされた情報を自動的に訂正することができる、2次元データバーコード。
  25. 前記ロウ長または前記カラム長にそれぞれほぼ等しい長さをもつ少なくとも1つの水平または垂直デスキューイングストリップをさらに含んでいる、請求項23および24のいずれか1つに記載のデータバーコード。
  26. 前記ランダマイズされたエンコードされた情報が、1ビットずつランダマイズされている、請求項24に記載のデータバーコード。
JP32653396A 1995-12-08 1996-12-06 印刷媒体に印刷する情報をエンコードする方法、印刷媒体に印刷された情報をデコードする方法、および2次元データバーコード Expired - Fee Related JP3643196B2 (ja)

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)

* Cited by examiner, † Cited by third party
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
US6565003B1 (en) 1998-12-16 2003-05-20 Matsushita Electric Industrial Co., Ltd. Method for locating and reading a two-dimensional barcode
DE29924753U1 (de) * 1998-12-16 2005-05-19 Matsushita Electric Industrial Co., Ltd., Kadoma Vorrichtung zum Auffinden und Lesen eines zweidimensionalen Strichcodes
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
WO2005086076A1 (en) * 2004-03-03 2005-09-15 Signal Tree Research, Inc. 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
JP2008502058A (ja) * 2004-05-18 2008-01-24 シルバーブルック リサーチ ピーティワイ リミテッド セキュリティ文書を追跡する方法およびコンピュータシステム
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
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
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
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次元座標同定方法
US7523855B2 (en) * 2005-03-28 2009-04-28 Konica Minolta Systems Laboratory, Inc. Systems and methods for preserving and maintaining document integrity
US7669769B2 (en) * 2005-03-28 2010-03-02 Konica Minolta Systems Laboratory, Inc. Systems and methods for preserving and maintaining document integrity
KR100773090B1 (ko) * 2005-09-14 2007-11-02 박문수 별코드
US7724399B2 (en) * 2005-09-19 2010-05-25 Silverbrook Research Pty Ltd Method of downloading and installing a software object
US7843595B2 (en) 2005-09-19 2010-11-30 Silverbrook Research Pty Ltd Printing a calendar 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
US7953386B2 (en) 2005-09-19 2011-05-31 Silverbrook Research Pty Ltd Bill per card print
US7654444B2 (en) * 2005-09-19 2010-02-02 Silverbrook Research Pty Ltd Reusable sticker
US7357311B2 (en) * 2005-09-19 2008-04-15 Silverbrook Research Pty Ltd Printing educational material 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
US7747280B2 (en) 2005-09-19 2010-06-29 Silverbrook Research Pty Ltd Retrieving a product via a coded surface
US7848777B2 (en) 2005-09-19 2010-12-07 Silverbrook Research Pty Ltd Printing a puzzle using a mobile device
US20070065206A1 (en) * 2005-09-19 2007-03-22 Silverbrook Research Pty Ltd Printing a coupon using a mobile device
US7920854B2 (en) * 2005-09-19 2011-04-05 Silverbrook Research Pty Ltd Printing a map using a mobile device
US20070064130A1 (en) * 2005-09-19 2007-03-22 Silverbrook Research Pty Ltd Link object to form field on surface
US8072629B2 (en) * 2005-09-19 2011-12-06 Silverbrook Research Pty Ltd Print subscribed content on a mobile device
US7970435B2 (en) * 2005-09-19 2011-06-28 Silverbrook Research Pty Ltd Printing an advertisement using a mobile device
US7917171B2 (en) * 2005-09-19 2011-03-29 Silverbrook Research Pty Ltd Printing a receipt using a mobile device
US7380709B2 (en) * 2005-09-19 2008-06-03 Silverbrook Research Pty Ltd Printing a trading card using a mobile device
US7953387B2 (en) * 2005-09-19 2011-05-31 Silverbrook Research Pty Ltd Retrieving a program via a coded 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
US7506802B2 (en) * 2005-09-19 2009-03-24 Silverbrook Research Pty Ltd Method of performing an action in relation to a software object
US7641115B2 (en) 2005-09-19 2010-01-05 Silverbrook Research Pty Ltd Type-specific sticker
US7920896B2 (en) * 2005-09-19 2011-04-05 Kia Silverbrook Printing an almanac using a mobile device
US7761090B2 (en) 2005-09-19 2010-07-20 Silverbrook Research Pty Ltd Print remotely to a mobile device
US7805162B2 (en) * 2005-09-19 2010-09-28 Silverbrook Research Pty Ltd Print card with linked object
US7668540B2 (en) * 2005-09-19 2010-02-23 Silverbrook Research Pty Ltd Print on a mobile device with persistence
US7742755B2 (en) 2005-09-19 2010-06-22 Silverbrook Research Pty Ltd Retrieving a bill via a coded surface
US20070064075A1 (en) * 2005-09-19 2007-03-22 Silverbrook Research Pty Ltd Printing a membership using a mobile device
US7438215B2 (en) * 2005-09-19 2008-10-21 Silverbrook Research Pty Ltd Printing location-based information using a mobile device
US7708203B2 (en) 2005-09-19 2010-05-04 Silverbrook Research Pty Ltd Link object to sticker
US7880911B2 (en) * 2005-09-19 2011-02-01 Silverbrook Research Pty Ltd Printing a position using a mobile device
US7689249B2 (en) * 2005-09-19 2010-03-30 Silverbrook Research Pty Ltd Printing a security identification 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
US7637424B2 (en) * 2005-09-19 2009-12-29 Silverbrook Research Pty Ltd Printing audio information using a mobile device
US7856225B2 (en) 2005-09-19 2010-12-21 Silverbrook Research Pty Ltd Retrieving a program state via a coded surface
US7621442B2 (en) * 2005-09-19 2009-11-24 Silverbrook Research Pty Ltd Printing a subscription using a mobile device
US20070085332A1 (en) * 2005-09-19 2007-04-19 Silverbrook Research Pty Ltd Link object to sticker and location on surface
US7756526B2 (en) 2005-09-19 2010-07-13 Silverbrook Research Pty Ltd Retrieving a web page via a coded surface
US7575172B2 (en) 2005-09-19 2009-08-18 Silverbrook Research Pty Ltd Printing a greeting card using a mobile device
US7428986B2 (en) * 2005-09-19 2008-09-30 Silverbrook Research Pty Ltd Printing a health report using a mobile device
US7558599B2 (en) * 2005-09-19 2009-07-07 Silverbrook Research Pty Ltd Printing a bill using a mobile device
US7992213B2 (en) 2005-09-19 2011-08-02 Silverbrook Research Pty Ltd Gaining access via a coded surface
US7945943B2 (en) * 2005-09-19 2011-05-17 Silverbrook Research Pty Ltd Retrieving an access token via a coded surface
US7403797B2 (en) * 2005-09-19 2008-07-22 Silverbrook Research Pty Ltd Obtaining a physical product via a coded surface
US7924450B2 (en) * 2005-09-19 2011-04-12 Silverbrook Research Pty Ltd Reprint card on 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
US7571864B2 (en) 2005-12-16 2009-08-11 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 画像形成装置
JP2008085844A (ja) * 2006-09-28 2008-04-10 Brother Ind Ltd データ処理装置及び被記録媒体
JP2008084152A (ja) * 2006-09-28 2008-04-10 Brother Ind Ltd 画像形成装置及びプログラム
JP4197027B2 (ja) * 2006-09-28 2008-12-17 ブラザー工業株式会社 画像形成装置及びプログラム
JP2008090340A (ja) * 2006-09-29 2008-04-17 Brother Ind Ltd 文書データ編集装置、文書作成システム、及びプログラム
US7766241B2 (en) * 2006-09-29 2010-08-03 Konica Minolta Systems Laboratory, Inc. Barcode for two-way verification of a document
US7628330B2 (en) * 2006-09-29 2009-12-08 Konica Minolta Systems Laboratory, Inc. Barcode and decreased-resolution reproduction of a document image
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
EP2248068B1 (en) 2008-01-29 2014-04-30 Veritec, Inc. Two-dimensional symbol and method for reading same
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)

* Cited by examiner, † Cited by third party
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
US5128525A (en) * 1990-07-31 1992-07-07 Xerox Corporation Convolution filtering for decoding self-clocking glyph shape codes
US5091966A (en) * 1990-07-31 1992-02-25 Xerox Corporation Adaptive scaling for decoding spatially periodic 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 オリンパス光学工業株式会社 変調方法及び復調方法

Also Published As

Publication number Publication date
US6115508A (en) 2000-09-05
DE69635512D1 (de) 2006-01-05
EP0783160A2 (en) 1997-07-09
EP0783160A3 (en) 2001-07-11
JPH09179924A (ja) 1997-07-11
CA2192008A1 (en) 1997-06-09
CA2192008C (en) 2002-02-12
DE69635512T2 (de) 2006-08-10
EP0783160B1 (en) 2005-11-30
US5862270A (en) 1999-01-19

Similar Documents

Publication Publication Date Title
JP3643196B2 (ja) 印刷媒体に印刷する情報をエンコードする方法、印刷媒体に印刷された情報をデコードする方法、および2次元データバーコード
US7857405B2 (en) Method of mapping error-detection and redundant encoded data to an image
JP3212394B2 (ja) 複数の2−ビット・ディジタル値を記録媒体上の自己クロッキングコードとして符号化する方法
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

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