(57)【要約】　　　（修正有）【課題】以下の特徴を持つ二次元バーコードの信号化および解読方法。様々な記号幅および高さ、様々な印字解像度、様々なダメージ保護レベル、大きな情報保存領域、高冗長自由度、線ベースのスキャナで読み込み可能、接触スキャナでも非接触スキャナでも認識可能。　【解決手段】　以下の各ステップで信号化。バイナリデータを暗号データの第一ビットストリームに変換、所定のエラー訂正レベルに基づいて第一ビットストリームから一連のエラー訂正暗号を計算、第一ビットストリームと一連のエラー訂正暗号とを結合して暗号データの第二ビットストリームを形成、第二ビットストリームを一連の等サイズのデータセグメントに分割、各データセグメントに一連の制御情報暗号を付加、データセグメント間にデータセグメント仕切りを付加、上部ボーダー・下部ボーダー・左部ボーダー・右部ボーダーで前記データセグメントを取り囲むようにして二次元バーコードを形成。【選択図】図３
2004070960.tif 000002
【特許請求の範囲】
【請求項１】
二次元バーコードの信号化方法であって、
　バイナリデータを暗号データの第一ビットストリームに変換するステップと、
　所定のエラー訂正レベルに基づいて前記第一ビットストリームから一連のエラー訂正暗号を計算するステップと、
　前記第一ビットストリームと前記一連のエラー訂正暗号とを結合して暗号データの第二ビットストリームを形成するステップと、
　前記第二ビットストリームを一連の等サイズのデータセグメントに分割するステップと、
　前記データセグメントのそれぞれに一連の制御情報暗号を加えるステップと、
　前記データセグメント間にデータセグメント仕切りを加えるステップと、
　上部ボーダー、下部ボーダー、左部ボーダーおよび右部ボーダーを前記データセグメントを取り囲むように提供して、二次元バーコードを形成するステップと、
を含むことを特徴とする信号化方法。
【請求項２】
少なくとも２つの第二ビットストリームを交互順に再配列するステップをさらに含むことを特徴とする請求項１記載の信号化方法。
【請求項３】
第二ビットストリームはバーとスペースで表され、該バーが特定領域に集中することを防ぐために、所定マスクで該第二ビットストリームにマスキング操作あるいはビット位置ＸＯＲ操作を実行するステップをさらに含むことを特徴とする請求項１記載の信号化方法。
【請求項４】
上部ボーダーは少なくとも１つの開始コードパターン、および１つの終止コードパターンを含み、下部ボーダーは少なくとも１つの終了コードパターン、および１つの終止コードパターンを含み、二次元バーコードの配向を容易に検出させることを特徴とする請求項１記載の信号化方法。
【請求項５】
上部ボーダーの開始コードパターンおよび下部ボーダーの終了コードパターンは６つの交互に並ぶバー及びスペースを含んでおり、前記開始コードパターンの幅の比率は３：１：１：２：２：２モジュールであり、前記終了コードパターンの幅の比率は３：２：２：１：１：２モジュールであることを特徴とする請求項４記載の信号化方法。
【請求項６】
左部ボーダーおよび右部ボーダーは所定のパターンに従って交互に並ぶバーおよびスペースを含んだ一対の同一位置決めブロックであることを特徴とする請求項１記載の信号化方法。
【請求項７】
第二ビットストリームはデータ要素領域内でバーとスペースとによって表され、左部ボーダーあるいは右部ボーダーの前記バーあるいは前記スペースはそれぞれ前記データ要素領域の１以上のバーおよびスペースに対応していることを特徴とする請求項６記載の信号化方法。
【請求項８】
左部あるいは右部ボーダーのそれぞれのバーあるいはスペースは、二次元バーコードをスキャンするのに使用されるスキャナの縦方向解像度の確定を容易にすることを特徴とする請求項６記載の信号化方法。
【請求項９】
左部あるいは右部ボーダーのそれぞれのバーあるいはスペースはスキャナに縦方向の二次元バーコード印字解像度を指示し、上部あるいは下部ボーダーのそれぞれのバーあるいはスペースは前記スキャナに横方向の前記二次元バーコード印字解像度を指示し、前記スキャナが前記二次元バーコードをスキャンする際の効果を高めることを特徴とする請求項６記載の信号化方法。
【請求項１０】
左部あるいは右部ボーダーのそれぞれのバーあるいはスペースは二次元バーコードのスキャン画像が歪んでいるかどうかを指示して、前記スキャン画像が歪んでいる場合の補正を容易にすることを特徴とする請求項６記載の信号化方法。
【請求項１１】
第二ビットストリームはデータ要素領域でバー及びスペースで表され、
　二次元バーコードの横軸とは異なる傾斜を有することで前記二次元バーコード、および前記データ要素領域の前記バーと前記スペースの配向の確定を容易にする一連の等間隔の平行位置決め線を前記二次元バーコードの片側あるいは両側に加えるステップをさらに含むことを特徴とする請求項１記載の信号化方法。
【請求項１２】
二次元バーコードの横軸とは異なる傾斜を有する一連の等間隔の平行位置決め線を前記二次元バーコード上に重ねるステップをさらに含むことを特徴とする請求項１記載の信号化方法。
【請求項１３】
位置決め線は二次元バーコードとは異なる色であり、スキャナによって前記二次元バーコードのスキャン画像と容易に識別されることを特徴とする請求項１２記載の信号化方法。
【請求項１４】
一連の制御情報は、
データセグメントの総数と、
差込トグルと、
所定のエラー訂正レベルと、
所定のマスクタイプと、
データセグメント番号と、
を含むことを特徴とする請求項１記載の信号化方法。
【請求項１５】
それぞれのデータセグメントはバーおよび／あるいはスペースの３段×３列のマトリクスである暗号を含むことを特徴とする請求項１記載の信号化方法。
【請求項１６】
バイナリデータファイルからの暗号データのビットストリームを表すデータ領域内の複数のバー及びスペースを含む二次元バーコードを解読する方法であって、前記データ領域は上部ボーダー、下部ボーダー、左部ボーダーおよび右部ボーダーに外接し、複数のデータセグメント仕切りは前記ビットストリームデータ領域を複数のデータセグメントに分割し、前記方法は、
　前記ｑ二次元バーコード全体をスキャンして保存画像を形成するステップと、
　前記保存画像内で開始コードパターンを有する前記上部ボーダーおよび終了コードパターンを有する前記下部ボーダーを検索するステップと、
　前記開始コードパターンおよび前記終了コードパターンによって前記バーコード画像の横軸および縦軸を確定するステップと、
　走査線と前記保存画像の前記横軸との間の走査線角を計算するステップと、
　前記保存画像から印字解像度を確定するステップと、
　前記保存画像に前記複数のデータセグメント仕切りを配置するステップと、
　前記データセグメントから一連の制御情報を検索するステップと、
　前記データセグメントから前記暗号データのビットストリームを復元するステップと、
　前記暗号データのビットストリームを元のバイナリデータファイルに変換するステップと、
を含むことを特徴とする解読方法。
【請求項１７】
暗号データのビットストリームの復元は、該暗号データのビットストリームにエラー訂正操作を適用するステップを含むことを特徴とする請求項１６記載の解読方法。
【請求項１８】
暗号データのビットストリームの復元は、必要な場合には制御情報に基づく所定マスクを使用したマスキング操作を前記暗号データのビットストリームに実行するステップをさらに含むことを特徴とする請求項１７記載の解読方法。
【請求項１９】
左部ボーダーと右部ボーダーとの間で第一セグメント仕切りから始まる複数のデータ要素の座標を全て計算し、該データ要素の該座標を使用して複数の暗号情報を確定するステップをさらに含むことを特徴とする請求項１８記載の解読方法。
【請求項２０】
二次元バーコードの配向を確定するように構成されたソフトウェアモジュールおよび画像を保存するメモリ空間を含むスキャナによって該二次元バーコードをスキャンすることを特徴とする請求項１８記載の解読方法。
【請求項２１】
保存画像は最初に左部ボーダーおよび右部ボーダーに従ってソフトウェアモジュールによって処理され、それによって暗号データのビットストリームが確定できることを特徴とする請求項２０記載の解読方法。
【請求項２２】
バイナリデータファイルからの暗号データのビットストリームを表すデータ領域内の複数のバー及びスペースを含む二次元バーコードを解読する方法であって、前記データ領域は上部ボーダー、下部ボーダー、左部ボーダーおよび右部ボーダーに外接し、複数のデータセグメント仕切りは前記ビットストリームデータ領域を複数のデータセグメントに分割し、前記方法は、
　前記二次元バーコードをスキャンしてスキャン画像内に第一走査線を形成するステップと、
　前記スキャン画像内で開始コードパターンを有する前記上部ボーダーおよび終了コードパターンを有する前記下部ボーダーを検索するステップと、
　前記スキャン画像が逆方向あるいはミラーイメージであることが確定された場合に、解読以前に前記二次元バーコード全体を解読する方法に切り替えるステップであって、
　　（ａ）第一データセグメントが検出されるまで前記二次元バーコードを前記スキャン画像にスキャンするステップと、
　　（ｂ）エラー訂正後に一連の制御情報暗号で前記第一データセグメントを検索するステップと、
　　（ｃ）前記第一データセグメントの順序が狂っている場合あるいは前記第一データセグメント内のビットストリームデータ領域が交互順で保存されている場合に、グラフィック記号画像全体を解読する方法に切り換えるステップと、
　　（ｄ）処理中のデータセグメントの座標を用いて前記ビットストリームデータ領域で複数の暗号情報を検索するステップと、
　　（ｅ）前記処理中のデータセグメントに対応する前記暗号データの前記第一ビットストリームの第一部分を復元するステップと、
を含むステップと、
　下部ボーダーが検出されるまで（ａ）〜（ｅ）のステップをそれぞれのデータセグメント仕切り検出ごとに繰り返すステップと、
を含むことを特徴とする解読方法。
【請求項２３】
暗号データの１要素はスペースあるいはバーの３段×３列のマトリクスを含むことを特徴とする請求項２２記載の解読方法。
【請求項２４】
二次元バーコードはバイナリデータファイルに応じて拡大できることを特徴とする請求項２３記載の解読方法。
【請求項２５】
制御情報は、
データセグメントの総数と、
差込トグルと、
所定エラー訂正レベルと、
所定マスクタイプと、
データセグメント番号と、
を含むことを特徴とする請求項２２記載の解読方法。
【請求項２６】
スキャナに二次元バーコードを解読させる方法であって、
二次元バーコードの横軸とは異なる傾斜を有する一連の等間隔の平行位置決め線を前記二次元バーコードに提供するステップと、
前記二次元バーコードを前記位置決め線と共にスキャンしてスキャン画像を形成するステップと、
を含むことを特徴とする解読方法。
【請求項２７】
位置決め線は二次元バーコードの少なくとも１側面に提供されることを特徴とする請求項２６記載の解読方法。
【請求項２８】
位置決め線は二次元バーコード上に重ねられ、前記二次元バーコードのバーの色とは異なる色であることを特徴とする請求項２６記載の解読方法。
【請求項２９】
一連の等間隔の位置決め線を有した二次元バーコードの解読に使用されるスキャナであって、
　信号処理チップと、
　該信号処理チップに接続し、二次元バーコードが存在する場合に紙信号を送信する書類検出モジュールと、
　前記二次元バーコードを感知し、アナログ信号を発生するイメージセンサーと、
　前記イメージセンサーからの前記アナログ信号を受信およびデジタル化し、メモリ空間内にそのデジタル画像を形成するアナログデジタル変換器（ＡＤＣ）モジュールと、
　解読ソフトウェアを格納するフラッシュメモリと、
を含むスキャナであって、
　前記解読ソフトウェアは、
　デジタル画像内の位置決め線の検出と、
　前記二次元バーコードの傾斜に対する前記位置決め線の傾斜の確定と、
　前記二次元バーコードの配向の確定と、
を実行するように構成されることを特徴とするスキャナ。
【発明の詳細な説明】
【技術分野】
【０００１】
　本発明は、光学的にコード化されたバーコードに関し、特に、このバーコードの２次元コードへの信号化する方法および解読する方法、そしてバーコードを２次元コードへの信号化するスキャナに関する。
【背景技術】
【０００２】
　今日のハイテク社会では、コンピューターによる自動的作業は増える一方にある。このように自動化の必要が増加すると、新しいテクノロジーが強く要求される。バーコードはデータ入力を自動化するために使用されるテクノロジーの一つである。
【０００３】
　バーコード記号は様々な幅のスペースで相隔した一連の様々な幅を持つバーを含んでいるパターンであり、バーおよびスペースは２進法１と０の文字列を表す異なる光反射特性を有する。バーコード記号は基材あるいは物体に取り付けられたラベルに直接プリントされる。バーコード記号は、典型的にはレーザー光線、電荷結合素子（ＣＣＤ）あるいはコンタクトイメージセンサー（ＣＩＳ）カメラ等の光学技術で読み込まれる。典型的なレーザーベースのバーコードリーダーは、バーコードを横切って移動する際にバーとスペースを電子信号に変換する写真センサーを使用している。その際にリーダーはバーとスペースの相対幅を測定し、異なるパターンを元のキャラクタコードに変換し、それらをさらなる処理のためにコンピューターや携帯端末に送信する。スキャナが適切に読み取れるバーとスペースの幅には最小限度がある。最小の幅は“ユニット”あるいは“モジュール”と呼ばれる。スペースとバーは複数の“ユニット”または“モジュール”からなる。
【０００４】
　上記の従来のバーコードは一次元バーコードである。一次元（１Ｄ）バーコードに信号化された情報は、一次元に延在するバーとスペースの幅のみによって表される。全てのバーとスペースは縦方向で均一の幅であるため、情報は１Ｄバーコードの横方向のみに沿って保存される。通常は、１Ｄバーコードは対象物を詳細な情報を含んだより大きいデータベースに関連させるインデックスとして広く用いられている。１Ｄバーコードは一次元であるため、たとえば郵便番号、社会保証番号あるいはシリアル番号等のごく限られた量の情報しか保存できない。
【０００５】
　情報技術の必要性が増大するにつれて、関連データベースを取り除いて、コード自体により多くの情報を保存する技術への関心が高まっている。このような要求を受けて、１Ｄバーコードの延長から二次元的（二次元）バーコード技術が生み出された。二次元バーコード記号は、通常は正方形あるいは長方形であり、データを２次元に信号化する。二次元バーコード記号は大きく２つに分類される。“スタックバーコード”は１Ｄバーコードが層状ケーキのように積み重なる構造を持つ。“マトリクスバーコード”は真の２次元マトリクスで構成される。
【０００６】
　最もよく使用される“スタックバーコード”の一つは、図１ＡのＰＤＦ４１７である。このＰＤＦ４１７は、特許文献１に提案されているものであるが、複数のコードセグメントを含んでおり、それぞれのコードセグメントは４本のバーおよび４つのスペースを含み、全幅が１７モジュールであるゆえ、ＰＤＦ４１７と呼ばれる。ＰＤＦ４１７は、バーコードに高レベルのエラー訂正が提供される場合に損傷コードへの高抵抗性を有する。理論上は、ＰＤＦ４１７はバーコードごとに２０００キャラクタまで保存することができるが、実際には３５０キャラクタ以下に制限される。ＰＤＦバーコードはレーザープリンターや感熱式プリンター等の高解像度プリンターでプリントする必要がある。ＰＤＦ４１７はカメラ（ＣＣＤまたはＣＭＯＳ）と改善型手持ち式レーザースキャナあるいはＣＩＳスキャナで読み込むことができる。
【０００７】
　ＱＲコード（クイックレスポンスコード）は日本ＤＥＮＳＯ・ＩＤシステムズが開発した“マトリクスバーコード”の一例である。図１ＢのようにＱＲコードバーコードは方形であり、バーコードの３隅のネスト化された暗色と淡色の交互方形のファインダーパターンによって容易に識別できる。ＱＲコードバーコードはこのファインダーパターンによりＣＣＤ配列カメラで非常に速く読み込むことができる。この技術の不利点は最大で１７７モジュール平方というサイズである。対応する最大記憶能力は、７５０バイト低レベルエラー訂正コードで信号化された２９５６バイトである。
【０００８】
　ＣＣＤやＣＩＳカメラに基づくスキャナは、二次元バーコードの読み込みに特に適している。通常は、スキャナは、人間の目に見える光をコンピューターが処理できる「０」信号および「１」信号に変換する。すなわち、スキャナはデータをアナログフォーマットからデジタルフォーマットに変換する。全てのスキャナは同じ反射原理および送信原理で作動する。スキャン対象物は光源とセンサーを含むスキャナの前に配置される。スキャン対象物に反射された光あるいはスキャン対象物を通って送信される光量はセンサーによって感知され、光の強度に応じた信号に変換される。
【０００９】
　スキャナのパフォーマンスを左右する要因の１つはスキャン解像度である。スキャン解像度はスキャナが達成できる細部の精密度に関係し、２．５４ｃｍごとのドット（ｄｐｉ）で測定する場合が多い。スキャナが解像できる２．５４ｃｍごとのドットが多いほど、画像は精密になる。スキャナは、典型的には各ピクセルに光電素子を有する。６００ｄｐｉの横方向光学解像度を有するスキャナは、２．５４ｃｍにつき６００ピクセル（ｐｐｉ）と有すると言うこともでき、またこれはスキャナのＸ方向解像度とも呼ばれる。最大スキャン幅が８．５×２．５４ｃｍであるスキャナの場合、走査ヘッドには５１００光電素子の配列が提供されている。走査ヘッドはスキャン対象を横切って移動させられるトランスポートに搭載される。プロセスは連続的動作のように見えるが、ヘッドは各動作間で読み込みをしながら一度に数２．５４ｃｍ動くだけである。センサー配列中の物質要素の数は横方向のサンプリングレートを決定し、１２．５４ｃｍごとのステップ数はスキャナのＹ方向解像度と呼ばれる縦方向のサンプリングレートを決定する。スキャナ解像度はそのＸ方向解像度およびＹ方向解像度に基づく。
【特許文献１】米国特許第５，３０４，７８６号
【発明の開示】
【発明が解決しようとする課題】
【００１０】
　多くの情報の保存と、内蔵冗長自由度と、複数レベルのダメージ保護と、自由選択制の幅および長さのバーコードと、手持ち式やライン上での接触スキャンあるいは非接触スキャンとが可能である新規な二次元バーコードは望ましいだろう。
【００１１】
　手動スキャナが普及しているため、二次元バーコードを手持ち式スキャナでスキャンすることが好適である。しかしながら、この方法には僅かな問題がある。図２は要素の高さが制限されるために発生する二次元バーコードバーコードをスキャンする際の縦方向同期化２００のエラーと呼ばれる現象を示している。二次元バーコード２１０は一連の平行走査線２２０と重なっている。通常は走査線２２０間とバーコード２１０の横軸との間の角度は、手持ち式スキャナの場合には０ではない。バーコード要素の高さは制限されるため、いくつかの走査線２３０は２列のバーコード要素にまたがる。ゆえにこれらの走査線２３０は有用ではない。この同期化問題のエラーを避ける二次元バーコードの解読方法は望ましい。二次元バーコードを能率的および効果的に解読することもまた望ましい。
【課題を解決するための手段】
【００１２】
　以下に、本発明についていくつかの特徴を要約しながら説明していくが、いくつかの好適実施例を簡単に記述している。また、本発明の内容が分かりにくくなることを避けるために、単純かつ省略的に記述していくが、単純および省略的に説明する目的は、本発明の範囲を制限することではない。
【００１３】
　本発明は、二次元バーコードの信号化および解読の方法、およびソフトウェア製品に関する。本発明の第１の特徴では、新規な二次元バーコード記号には少なくとも以下の特徴が提供されている。１）様々なバーコードの幅および高さと、２）様々な印字解像度と、３）複数のダメージ保護レベルと、４）大きな情報保存領域と、５）高い冗長自由度と、６）ライン上に設置してあるスキャナで読み込み可能であることと、７）接触スキャナと非接触スキャナの何れによっても識別可能であること。
【００１４】
　１実施例によると、二次元バーコードは上部ボーダー、下部ボーダー、左部ボーダー、右部ボーダー、ビットストリームデータ領域および複数のデータセグメント仕切りを含む。上部ボーダーおよび下部ボーダーの独自なパターンは、スキャナに二次元バーコードが逆方向（Upside down）あるいは反転ミラーイメージであるかどうか判別させる。左部ボーダーおよび右部ボーダー上の複数対応ペアのガイドホールは、スキャナにデータ要素の座標を計算させる。ビットストリームデータ領域は、図３に示されているように３段×３列のデータ要素のデータ構造を有する順序列の９ビット“暗号（codeword）”形態でバーコード情報を含む。ビットは列を左部から右部へ、次に上部から下部へという順に保存される。
【００１５】
　二次元バーコードの幅および長さは、ビットストリームデータ領域内にある情報量に応じる。二次元バーコードは、多くの物理的ダメージ防止方法を有している。第一方法は、データビットストリームをいくつかの等サイズのデータセグメントに分割することである。一連のデータセグメント制御情報がそれぞれのデータセグメントに加えられる。その結果、各データセグメント中のバーコード全体に関する重要な制御情報を反復することによって冗長自由度が提供される。
【００１６】
　方法の一つは、各データセグメントに業界標準エラー訂正法（例：リード・ソロモン機能）を採用している。バーコードの一部が識別できない時に、エラー訂正はバーコードの無損傷部分に位置するエラー訂正暗号で欠落情報を再形成できる。エラー訂正には多くの異なるレベルがある。状況によって適切なレベルのエラー訂正を選択できる。解読の確実性を高めるために、データセグメント制御情報には個別的なエラー訂正スキームが採用されている。暗号は順次的ではなく交互順に記憶されるため、連続データはより大きな領域に広げらる。それゆえ、損傷データをエラー訂正によって復元する可能性が増加する一方で、連続データを損傷する可能性が低減する。
【００１７】
　バーコードのある特定部分にバー（暗色）が著しく集中している場合、スキャナがその集中内のごく僅かな白スペース部分を捉えない可能性がある。この問題を避けるため、マスキングあるいはビット位置ＸＯＲ操作を暗号のビットストリームと所定マスクとの間で実行して、集中したバーのいくつかを隠す。このマスキング方法は、従来技術による方法とは異なる。これは３列×３段の暗号に基づいている。それぞれのタイプのマスクは、一対のマスキング暗号で構成される。図１０Ａ〜図１０Ｃは３対のマスキング暗号を示している。それらはチェス盤形式で配列されており、その黒および白の方形はマスキング暗号のペアのどちらかを示している。図１０Ｄはこの配列を示している。
【００１８】
　本発明の別特徴では、異なるいくつかの解読方法も開示される。１方法は二次元バーコード記号全体がスキャンおよび保存された後に二次元バーコードを解読するのに使用される。また別の方法は二次元バーコードのスキャン中に二次元バーコードを解読するのに使用される。１実施例によると、これらの解読方法は二次元バーコードを能率的および効果的に解読するようにスキャナに搭載されるソフトウェア製品に組み込まれる。
【００１９】
　本発明のさらなる別特徴では、二次元バーコードには一連の等間隔の平行位置決め線が提供されている。これらの位置決め線はスキャナに二次元バーコードを適切に解読させる。
【００２０】
　本発明のさらなる別特徴では、二次元バーコードは製品の異なるパラグラフに対応する可視マークに分割される。
【００２１】
　本発明の１対象、１特徴および１利点は、柔軟な特徴を持ち、スキャンに適切なコードを提供することである。
【００２２】
　本発明の別の対象、特徴および利点は、以下で図面を利用しながら実施例に関して詳述される。
【発明の効果】
【００２３】
　以上詳述した通り、本発明においては、
　　「二次元バーコードの信号化方法であって、バイナリデータを暗号データの第一ビットストリームに変換するステップと、所定のエラー訂正レベルに基づいて前記第一ビットストリームから一連のエラー訂正暗号を計算するステップと、前記第一ビットストリームと前記一連のエラー訂正暗号とを結合して暗号データの第二ビットストリームを形成するステップと、前記第二ビットストリームを一連の等サイズのデータセグメントに分割するステップと、前記データセグメントのそれぞれに一連の制御情報暗号を加えるステップと、前記データセグメント間にデータセグメント仕切りを加えるステップと、上部ボーダー、下部ボーダー、左部ボーダーおよび右部ボーダーを前記データセグメントを取り囲むように提供して、二次元バーコードを形成するステップと、を含むこと」
にその構成上の主たる特徴があり、これにより、多くの情報の保存と、内蔵冗長自由度と、複数レベルのダメージ保護と、自由選択制の幅および長さのバーコードと、手持ち式やライン上での接触スキャンあるいは非接触スキャンとが可能である新規な二次元バーコードの信号化方法を提供することができるのである。
【００２４】
　また、本発明の解読方法では、
　「バイナリデータファイルからの暗号データのビットストリームを表すデータ領域内の複数のバー及びスペースを含む二次元バーコードを解読する方法であって、前記データ領域は上部ボーダー、下部ボーダー、左部ボーダーおよび右部ボーダーに外接し、複数のデータセグメント仕切りは前記ビットストリームデータ領域を複数のデータセグメントに分割し、前記方法は、
　前記ｑ二次元バーコード全体をスキャンして保存画像を形成するステップと、
　前記保存画像内で開始コードパターンを有する前記上部ボーダーおよび終了コードパターンを有する前記下部ボーダーを検索するステップと、
　前記開始コードパターンおよび前記終了コードパターンによって前記バーコード画像の横軸および縦軸を確定するステップと、
　走査線と前記保存画像の前記横軸との間の走査線角を計算するステップと、
　前記保存画像から印字解像度を確定するステップと、
　前記保存画像に前記複数のデータセグメント仕切りを配置するステップと、
　前記データセグメントから一連の制御情報を検索するステップと、
　前記データセグメントから前記暗号データのビットストリームを復元するステップと、
　前記暗号データのビットストリームを元のバイナリデータファイルに変換するステップと、
を含むこと」
にその抗せ宇上の主たる特徴があり、これにより、前述した同期化問題のエラーを避けることのできる二次元バーコードの解読方法を提供することができるのである。
【００２５】
　さらに、本発明に係るスキャナは、
　「一連の等間隔の位置決め線を有した二次元バーコードの解読に使用されるスキャナであって、
　信号処理チップと、
　該信号処理チップに接続し、二次元バーコードが存在する場合に紙信号を送信する書類検出モジュールと、
　前記二次元バーコードを感知し、アナログ信号を発生するイメージセンサーと、
　前記イメージセンサーからの前記アナログ信号を受信およびデジタル化し、メモリ空間内にそのデジタル画像を形成するアナログデジタル変換器（ＡＤＣ）モジュールと、
　解読ソフトウェアを格納するフラッシュメモリと、
を含むスキャナであって、
　前記解読ソフトウェアは、
　デジタル画像内の位置決め線の検出と、
　前記二次元バーコードの傾斜に対する前記位置決め線の傾斜の確定と、
　前記二次元バーコードの配向の確定と、
を実行するように構成されること」
にその構成上の主たる特徴があり、これにより、二次元バーコードを確実に読み取ることのできるスキャナを提供することができるのである。
【発明を実施するための最良の形態】
【００２６】
　以下では本発明の全体的な記述のためにいくつかの特定な詳細を提供する。しかしながら本発明がこれらの特定な詳細なしでも実用化できることは当業者にとっては明白である。本明細書の記述および図面は、当業者が別当業者に発明の内容を開示するのに使用される通常手段である。公知の方法、手順、構成部品および回路の詳細は、本発明の特徴を分かりにくくするため省かれる。
【００２７】
　“１実施例”と言う場合は、その実施例に関して記述される特徴や構造は本発明のすくなくとも一つの実施例に含まれるという意味である。本明細書中で“１実施例では”という文が出てきた場合、それは必ずしも同じ実施例のみに当てはまるのではなく、個別の別実施例は互いに限定的ではない。さらに、本発明の１つ以上の実施例を示すフローチャートの作業順序は、例示であって限定はされない。
【００２８】
　図面はすべて同様の表記番号を同様の部品に使用している。図３は本発明で二次元バーコードに使用されるデータ構造の２例を示している。それぞれの９ビット暗号は、３列×３段で配置されるデータ要素を含み、各データ要素の色は暗色あるいは淡色である。各データ要素は１ビットの情報を保存する。暗号の保存順序は、左から右、上から下である。本明細書では暗色要素をバーと呼び、淡色要素をスペースと呼ぶ。１実施例では、バーは１を表し、スペースは０を表す。例を挙げると、図３中の暗号３１０の値は、二進法で、０１０１０１０１０、１６進法で、０×０ａａである。また、図３中の暗号３２０の値は、二進法で、１０１１１１００１、１６進法で、０×１７９である。
【００２９】
　本発明の１実施例によると、図４はバーとスペースに複数の長方形バーコード要素を含んでいる長方形二次元バーコード記号４００の全体を示している。長方形バーコード記号４００は２本の主軸、すなわち横軸４１０および縦軸４２０を有する。図５はバーコード記号４００の分解図である。二次元バーコード記号４００の構成要素は、上部ボーダー５１０、下部ボーダー５２０、左部ボーダー５３０、右部ボーダー５４０、ビットストリームデータ領域５５０および複数のデータセグメント仕切り５６０を含む。二次元バーコードデータは暗号データのビットストリームの形状で保存される。暗号データのビットストリームは一連の順序列９ビット暗号を含む。ビットストリーム領域５５０は、データセグメント仕切り５６０によって分離した複数のデータセグメントによって分割される。
【００３０】
　図６Ａと図６Ｂは２例の上部ボーダー５１０を示している。上部ボーダーは開始コードパターン６０１および終止（terminator）コードパターン６０５という２つの基本構成要素を有する。図６Ａの例示上部ボーダーは、２つの開始コードパターン６０１および１つの終止コードパターン６０５を含む。図６Ｂは３つの開始コードパターン６０１を含む上部ボーダーの別例を示している。開始コードパターン６０１の数は、二次元バーコードの持つデータ量によって異なる。開始コードパターン６０１の数は１つ以上である。また、開始コードパターン６０１の数は理論的には上限はないが、実際はキャリヤの幅（例：紙の幅）に制限される。下部ボーダー５２０は類似したデザインであり、少なくともひとつの終了（end）コードパターン６９１および１つの終止コードパターン６０５を含む。図６Ｃは下部ボーダー５２０の一例を示す。終止コードパターン６０５は、一つの３モジュール幅のバーを含む。
【００３１】
　開始コードパターン６０１と終了コードパターン６９１は共に配向性である。開始コードパターン６０１は幅の組み合わせが別個である６つの交互に並んだバーとスペースの構造を有する。終了コードパターン６９１は幅の組み合わせは異なるが、類似構造を有する。６構成要素の幅は以下の通りである。図７Ａに示す例では、開始コードパターン６０１を構成している６個の要素の各幅は、３：１：１：２：２：２モジュールである。図７Ｂのように、終了コードパターン６９１のバーとスペースの幅は、３：４：４：１：１：２モジュールである。ゆえに、バーコードの全幅は、全ての開始／終了コードパターンおよび終止コードパターンの合計である。この実施例では、バーコードの全幅Ｗは、次式によって計算される。
　　　Ｗ＝１１×Ｎ＋３（モジュール数）
　　　　式中のＷは、バーコードの幅
　　　　Ｎはバーコード中の開始／終了コードパターンの数
【００３２】
　図７Ｃおよび図７Ｄは、開始コードパターンおよび終了コードパターンの別実施例を示す。それらは幅の組み合わせが別個である８つの交互に並んだバーとスペースで構成される。図７Ｃのように、開始コードパターンの８構成要素の幅は３：２：１：１：１：２：２：３である。図７Ｄのように、終了コードパターンのスペース及びバーの幅比率は３：１：２：３：２：２：１：１モジュールである。この実施例では、バーコードの全幅は次の式で計算できる。
　　　Ｗ＝１５×Ｎ＋３（モジュール数）
　　　　式中のＷは、バーコードの幅
　　　　Ｎは、バーコード中の開始／終了コードパターンの数
【００３３】
　図５では、左部ボーダー５３０と右部ボーダー５４０はそれぞれ３モジュール幅とバーコードの高さを覆う長さで提供される同一の位置決めブロックを有する。ボーダー５３０または５４０が３段表示の場合、外側２段はどちらもバーであり、中段は所定パターンに従って交互に配置されたバーとスペースを含む。１実施例では、パターンは１バーにつき１スペースである。別実施例では、パターンは複数のスペースでインターレース処理された複数のバーである。本質的に、左部および右部ボーダーのスペースはデータ要素をその中間に位置させるために提供される。
【００３４】
　バーコード解読の安定性を高めるために、ビットストリームデータ領域５５０は、バーコードの全幅を覆う１列のバーであるデータセグメント仕切り５６０によっていくつかの均等サイズのデータセグメントに分割される。バーコード記号の物理的損傷を防ぐために、リード・ソロモンエラー訂正法が使用されている。本発明の１実施例では、リード・ソロモン方法のいくつかの選択肢を使用してデータ要素を損傷から保護している。図８は１２７暗号データでのリード・ソロモン方法の異なるレベルの例示リストである。エラー訂正レベルが高いほど、既定のバーコードに保存できるデータ量が少なくなるのは明白である。バーコードの置かれた物理的環境に応じて適切な選択肢が選択される。エラー訂正暗号は選択されたエラー訂正法のレベルに基づいて計算する。
【００３５】
　バーコード損傷のほとんどは密集領域で発生する。連続データの損失の可能性を低減する１方法は、以下のとおりである。ａ）データセグメントを一定長さのデータブロック（例：１２７暗号）の複数グループに分割する。ｂ）連続暗号が互いに隣り合って保存されないように複数のグループを交互順で保存する。図９Ａは３グループの１２７暗号をラウンドロビン形状で保存する方法の１例を示す。グループ数は正数ならばどれでもよい。
【００３６】
　図５のビットストリームデータ領域５５０に保存された全ての暗号データに加えて、解読の確実性を高めるためにそれぞれのデータセグメントには一連の重要な制御情報が加えられる。
【００３７】
　図９Ｂは、制御情報データ構造の１実施例を示している。これらの制御データは重要であるため、暗号データ用に採用されているエラー訂正法からは独立的な個別の高レベルエラー訂正コードが使用される。図９Ｂでは、ｅ０からｅ１のビットはエラー訂正コードを表す。ａ０、ａ１、ａ２、ａ４の各ビットはバーコード記号内のデータセグメントの総数を表す。ビットｂ０とｂ１は選択されたエラー訂正レベルを表す。ビットｂ２は差込トグルを表す。ビットｂ３とｂ４はマスクタイプを表す。ｃ０からｃ４はそのデータセグメントの番号を表す。図９Ｃは制御情報データ構造の別実施例を示している。ビットＡ３、Ａ２、Ａ１、Ａ０およびＢ３は処理中のデータセグメント番号を表す。ビットＢ２、Ｂ１、Ｂ０、Ｃ３およびＣ２はバーコード記号内のデータセグメントの総数を表す。Ｃ１、Ｃ０、およびＤ３は選択されたエラー訂正レベルを表す。ビットＤ２とＤ１はマスクタイプを表し、Ｄ０は差込トグルを表す。この実施例では、制御情報は当初は７つの３×３暗号に配列されており、次にビットストリームに変換される。３つの空きスペースは０で満たす。制御情報は重複して各データセグメント内で繰り返され、バーコードが物理的に損傷され得る状況を経た際にも情報を確実に使用可能な状態にする。
【００３８】
　二次元バーコード記号の特定部分でほとんどスペース（淡色）がなく、過剰な数のバー（暗色）が集中している場合、スキャナがスペースを捉えずに結果の情報が不正確になる可能性がある。このような一色の集中を最小化するため（バーとスペース何れの場合も）、本発明の１実施例では、ビットストリーム暗号データに所定のマスクによるマスキングあるいはビット位置ＸＯＲ操作を提供することによってバーをマスクする。図１０Ａ〜図１０Ｄは、本実施例に使用されるマスクの例を示す。
【００３９】
　図１１は、本発明の１実施例による二次元バーコード信号化のフローチャート１１００を示している。まず、ステップ１１１０では、バイナリデータファイルはバイナリビットストリーム暗号に変換される。ステップ１１２０では、ユーザー選択のエラー訂正レベルに応じてエラー訂正暗号が計算され、暗号データの各ビットストリームに加えられる（例：１２７暗号）。ステップ１１３０でこれらのビットストリーム暗号データのグループは交互順に保存される。ステップ１１４０で、暗号データの全ビットストリームはバーコードの持つ情報量に応じた数のデータセグメントに分割される。全てのデータセグメントが等サイズであることを確実にするために、ステップ１１５０で必要に応じて最後のデータセグメントにフィラー暗号を加える。次にステップ１１６０では、ビットストリーム暗号に所定マスクによるマスキングあるいはビット位置ＸＯＲ操作を適用させ、データの新規なビットストリーム暗号を形成する。ステップ１１７０では、制御情報暗号はそれぞれのデータセグメントに加えられる。ステップ１１８０では、上部ボーダー、下部ボーダー、左部ボーダーおよび右部ボーダーが加えられる。最終ステップ１１９０では、二次元バーコードがプリントされる。
【００４０】
　図１２Ａは、二次元バーコード全体の解読の過程１２００を示すフローチャートである。ステップ１２０５では、二次元バーコード記号全体はスキャンされ、保存画像として保存され、最適化される。ステップ１２１０では、上部および下部ボーダーは検出され、その対応座標は保存される。ステップ１２１５では、走査線とバーコードの横軸との間の角度が測定される。また、開始および終了コードパターンによって保存バーコード画像の配向（例：逆方向、裏表）が確定され、保存画像の印字解像度が確定される。ステップ１２２０では、第一データセグメント仕切りが保存画像に配置される。ステップ１２２５では、第一データセグメント仕切り、バーコード印字解像度、および一連の左部および右部の位置決め孔部を利用して、ビットストリーム領域の全データ要素の座標が計算される。ステップ１２３０では制御情報上のエラー訂正プロセスが実行され、エラー訂正レベル、マスクタイプ、差込トグル、データセグメント総数および処理中のデータセグメント番号等の重要な制御情報を抽出する。ステップ１２３５では、ビットストリーム領域内のデータ要素のビット値（バー／スペース）がステップ１２２５で計算されたそれらの座標に従って読み込まれ、暗号データのビットストリームに復元される。ステップ１２４０では、暗号データの元のビットストリームは交互順の再配列、マスキングあるいはビット位置ＸＯＲの操作、およびステップ１２３５で形成されたビットストリームに適用されたエラー訂正により再形成される。暗号データのビットストリームは元のバイナリデータに変換される。
【００４１】
　図１２Ｂおよび図１２Ｃは共に本発明の別実施例による二次元バーコード解読の過程１２５０のフローチャートである。この過程の１特徴は、バーコードがスキャン中に解読されることである。
【００４２】
　図１２Ｂに示すように、ステップ１２５２ではスキャナは二次元バーコードの新規な線をスキャンしてスキャン画像を形成し、仮記憶装置に保存する。ステップ１２５４では、スキャン画像は下部ボーダーパターンと比較される。一致した場合は、スキャンされる二次元バーコード画像は逆方向である。図１２Ａでの記述のように、二次元バーコード画像全体がなければこの解読方法は実行できない。一致しない場合には、ステップ１２５６でスキャン画像は上部ボーダーパターンと比較される。一致しない場合にはプロセスはステップ１２５２を他のスキャン画像で実行する。上部ボーダーが検出されると、次ステップ１２５８では二次元バーコード画像はミラーイメージかどうか確認される。ミラーイメージの場合、図１２Ａの方法のみで解読できる。次にステップ１２６０では、二次元バーコード記号の印字解像度が確定される。ステップ１２６２で、スキャナはその印字解像度に基づいてスキャン画像の別の線を処理する。ステップ１２６４では、スキャン画像は二次元バーコードの幅を横切る固形バーであるデータセグメント仕切かどうか確認される。違う場合、プロセスはステップ１２６２をスキャン画像の別の新規な線で再実行する。そうである場合、プロセスは二次元バーコードに含まれる暗号データのビットストリームの解読を開始する。
【００４３】
　ステップ１２６６では、図１２Ｃに示すように、左部ボーダーおよび右部ボーダーの対応する位置決め孔部が検出される。ステップ１２６８では、一連の制御情報は位置決め孔部およびデータセグメント仕切りに従って読み込まれる。データセグメントの総数、エラー訂正レベル、差込トグル、マスクタイプおよび処理中のセグメントの番号といった制御情報は、暗号データのビットストリームの制御情報部分でのエラー訂正実行後に抽出される。
【００４４】
　ステップ１２７０では、正確なデータセグメントがスキャン中に解読されているかどうかをテストで確認する。そうでない場合、プロセスはステップ１２００へ進んで二次元バーコード記号全体を解読する。ステップ１２７２では、交互的データ保存順序がチェックされる。データのビットストリーム暗号が交互順に保存されている場合には、二次元バーコード全体を解読する方法で解読を再実行する。両方のテストをパスすると、ステップ１２７４でデータ要素の１列が読み込まれる。ステップ１２７６ではスキャン画像の次線がデータセグメント仕切りであるかどうかをテストする。違う場合は、プロセスはステップ１２７４に戻る。そうでなければステップ１２７８で選択されたエラー訂正を実行後に、処理中のデータセグメントに対応したデータの元のビットストリーム暗号は復元される。ステップ１２８０では、最終テストが実行される。スキャン画像の次線で下部ボーダーが検出されていない場合、ステップ１２６６〜１２８０の反復で新規なデータセグメントを解読する。下部ボーダーが検出された場合には、解読は実行される。
【００４５】
　図１３は保存二次元バーコード画像の左部および右部ボーダーの位置決め孔部対応ペアを使用して二次元バーコードのデータ要素の座標を確定する手順を示すために詳細構造を提供している。データセグメント仕切り１３１０はスキャン画像の縦方向に沿った等間隔の４つの縦トレースＶ１、Ｖ２、Ｖ３、Ｖ４によって検出される。左部ボーダー１３２０はスキャン画像の横方向に沿った等間隔の４つの横トレースＨ１、Ｈ２、Ｈ３、Ｈ４によって検出される。同様にして、右部ボーダー１３３０は等間隔の４つの別横方向トレースＨ５、Ｈ６、Ｈ７、Ｈ８によって検出される。これらの直線の座標を使用して、左部ボーダーと上部ボーダーとの交点１３４０、および右部ボーダーと上部ボーダーとの交点１３５０が測定される。長方形バーコード要素の印字解像度（ｐｐｉ）、および上記の２交点の座標に基づいて、位置決め孔部第一ペアのおおよその位置が見積もれらる。位置決め孔部の第一ペアの座標は、次式によって見積領域内の全淡色ピクセルを単純平均して計算する。
　　　Ｘｐ＝（１／Ｎ）×Ｓｕｍ（Ｘｉ）
　　　Ｙｐ＝（１／Ｎ）×Ｓｕｍ（Ｙｉ）
　　　　式中のＮは、位置決め孔部の見積領域内の淡色ピクセル総数
　　　　ＸｉとＹｉは、位置決め孔部の見積領域内の淡色ピクセルの座標
【００４６】
　既知ペアの位置決め孔部の座標を使用して、全ての二次元バーコード要素の座標を計算する。それによってデータは保存画像から非常に効果的に読み込まれる。第一列目のデータ要素の座標を計算後、それ以降の列は推定される。
【００４７】
　図１４Ａは一対の位置決め歯形１４０２に挟まれた二次元バーコード１４０４を示している。これらの位置決め歯形１４０２は、スキャナに画像拡大および縮小を修正させる。通常は、スキャン画像内の複数の列は位置決め歯形の間に均一に分散されている。しかしながら、スキャン画像はスキャナと二次元バーコード記号との間の距離および角度によって歪む場合がある。スキャン画像が引き伸ばされる（拡大される）場合に、ある位置決め歯形の間では他と比べてスキャンされる列が多い。他方では、画像が縮小される場合に、ある位置決め歯形の間ではスキャンされた列が欠落する。位置決め歯形は全て均一に分散されるため、いくつかの列は拡大領域で消去される。隣接するスキャンされた列を縮小領域に挿入することによって追加的な列が加えられる。
【００４８】
　図１４Ｂによると、一連の位置決め線１４１０は二次元バーコード１４２０の左側面に取り付けられている。これらの位置決め線は二次元バーコード１４２０の横軸とは異なる傾斜を有する複数の等間隔の平行線を含む。位置決め線は二次元バーコード記号１４２０の片側あるいは両側に配置される。別実施例では、図１４Ｃのように位置決め線１４３０は二次元バーコード記号１４４０の上部に向かっており、二次元バーコードの暗色バーに使用されているのとは別の色で提供される。位置決め線および二次元バーコードデータ要素は、異なるスキャン光の色の反射に基づいて解読される。たとえば、二次元バーコードの１つは青色バーと白色スペースを使用している。位置決め線の重複は特殊な黒インクでプリントできる。スキャナが二次元バーコード記号をスキャンするのに青色光源を使用する場合、黒色の位置決め線が青色光を吸収する一方で、バーとスペースは共に青色光を反射する。ゆえに、位置決め線は赤外線光源を使用してバーコードデータを読み込もうとする前にまずスキャナの青色光源で読み込まれる。なぜならば、赤外線は特殊な黒インクを通過するが、青色と白色は著しく反射するからである。２つの異なる光源の使用で、スキャナは２つの異なる方法でバーコードデータ要素および位置決め線を読み込むことができる。
【００４９】
　図１５によると、二次元バーコード１５１０は内部に保存されている情報を分離するために複数の物体的な可視分割マーク１５２０を有する。１実施例によると、分割されたバーコードの各部分は製品の異なるパラグラフに対応する。
【００５０】
　図１６は図１４Ｂおよび図１４Ｃの位置決め線の使用例を示し、位置決め線１６００、走査線１６２０および二次元バーコードの横軸１６１０の構造を示している。一連の平行位置決め線１６００は横軸１６１０および走査線１６２０と交差している。位置決め線１６００の間の垂直距離はＤで示される。横軸上にある位置決め線１６００との２交点間距離１６３０はＬである。走査線上にある位置決め線との２交点間の距離１６５０はｎである。走査線１６２０とバーコード横軸１６１０との角度はＦである。横軸１６１０と位置決め線１６００との間の角度はＥである。位置決め線１６００と走査線１６２０との間の角度はＧであり、ＥとＦの合計と等しい。次の等式で角度ＦとＧを計算する。
　　Ｆ＝９０−Ｅ−ａｒｃｏｓ（Ｄ／ｎ）
　　Ｇ＝ａｒｓｉｎ（Ｄ／ｎ）
【００５１】
　図１７Ａおよび図１７Ｂは走査線がスキャナに指示を与える方法を示している。通常は、二次元バーコードの横軸方向あるいはｘ方向に沿った解像度は、ｘＤＰＩであるスキャナの解像度によって確定される。バーコードの縦方向あるいはｙ方向に沿った解像度はｙ解像度と呼ばれ、ｙＤＰＩであるスキャナのサンプリングレートによって確定される。二次元バーコードを適切に解読するために、２本の走査線間の距離はＨ＝１／ｙと等しくなければならない。たとえば、３００ｄｐｉを達成するためには、スキャナは二次元バーコードをｙ方向へ１／３００２．５４ｃｍごとに一回スキャンする必要がある。第一走査線が２本の隣接する位置決め線と交差する際、これらの２交点間の距離ｎは記録され、前式で角度Ｇを計算するのに用いられる。次にスキャナは図１７Ａおよび図１７Ｂの２つの平行走査線画像を比較する。図１７Ｂは２本の平行走査線、線（Ａ）および線（Ａ＋ｎ）を示している。図１７Ａは対応する画像を互いに重なった曲線で示している。２つの頂点、ピクセル（Ｂ）およびピクセル（Ｂ＋ｍ）は、１本の位置決め線と２本の連続的走査線との交点を表す。ゆえに、頂点間の距離はｍピクセルである２本の走査線間の距離、ｍ＊ｘである。このｘは２つの平行ピクセル間の距離である。図１６に示される構造に基づいて、２本の走査線間のｙ方向距離は次式で計算される。
　　Ｖ＝（ｍ×Ｘ）×ｔａｎ（Ｇ）
【００５２】
　ｙ方向距離Ｖがサンプリング距離Ｈと等しい時、スキャン画像の新規な列は記録される。このプロセスは画像全体がスキャンされるまで続く。
【００５３】
　図１８は図４および図５に関連しており、ＣＩＳに基づく例示スキャナは４４８ピクセル幅の走査ヘッドを有する。バーコード要素が４ピクセルのモジュール幅を有する場合、二次元バーコード４００に対するセンサーのマッピングは次の通りである。８ピクセルはバーコードのどちらかの側の白色スペースをカバーする。１２ピクセルは左部ボーダー５３０および右部ボーダー５４０をカバーする。また、４０８ピクセルはビットストリームデータ領域５５０に使用される。各データ要素は４ピクセル幅であるため、４０８ピクセルは１０２データ要素を表す。すなわち、バーコードの１列には１０２ビットの情報を保存できる。１実施例では、１２７暗号を保存するのに３６列のデータ要素が必要となる。従来技術の成功例に基づき、１モジュールとしてのデータ要素を４ピクセルで表す。通常は、二次元バーコードデータ要素の最小限の長さ／幅は以下の式で決められる。
　　ＢＬ≧４×（Ｒｐ／Ｒｓ）ピクセル
　　　式中のＢＬは、二次元バーコードデータ要素の最小容量、
　　　　　　Ｒｐは、プリンタ解像度、
　　　　　　Ｒｓは、スキャナ解像度
【００５４】
　図１９によると、典型的なスキャナ１９００は、信号処理チップ１９１０、イメージセンサー１９２０、書類検出モジュール１９３０、フラッシュメモリ１９４０、ＡＤＣモジュール１９５０、ＲＡＭ１９６０、テストポート１９７０およびデータポート１９８０を含む。スキャナのコアは信号処理チップ１９１０であり、その主機能は接続された全てのモジュールの制御と、バイナリバーコードデータの解読と、解読された情報をＲＡＭ１９６０に保存することと、データポート１９８０に必要なデータを出力することとを含む。信号処理チップ１９１０から送信されるクロックおよびＳＰ信号に応じて、イメージセンサー１９２０はスキャン画像が反射させる光からの発生電圧（Ｖｏｕｔ）を捕捉する。その結果のデジタルデータ（Ｖｉｎ）は、信号処理チップ１９１０に返信される。書類検出モジュール１９３０は、書類検出が割り込むと“紙”信号を発生する。信号処理チップ１９１０はこの“紙”信号に応じてスキャンの開始および終了手順を制御する。信号処理チップ１９１０に使用されているソフトウェアは、フラッシュメモリ１９４０に搭載される。ＡＤＣモジュール１９５０はアナログデータをデジタルデータに変換する。テストポート１９７０はソフトウェアのアップロードに使用される。データポート１９８０はＲＡＭ１９６０からのデータを別のコンピューターに出力するのに使用される。
【００５５】
　以上、本発明の例示的実施例を開示したが、本発明の利点を活用するために様々な変更改善、および代用を加えられることは当業者にとっては明白である。本発明は「補正クレーム」のみによって制限される。
【図面の簡単な説明】
【００５６】
【図１Ａ】従来のＰＤＦ４１７による二次元バーコードを示す拡大図である。
【図１Ｂ】従来のＱＲコードの図形を示す拡大図である。
【図２】二次元バーコード要素の列と走査線との交差状態を示す拡大図である。
【図３】本発明の９ビット暗号の２例を示す拡大図である。
【図４】本発明の二次元バーコードの１示す拡大図である。
【図５】図４のバーコードの解剖図す拡大図である。
【図６Ａ】上部ボーダーのパターン例を示す拡大図である。
【図６Ｂ】上部ボーダーの他のパターン例を示す拡大図である。
【図６Ｃ】下部ボーダーのパターン例を示す拡大図である。
【図７Ａ】上部ボーダーの開始コードの２例を示す拡大図である。
【図７Ｂ】下部ボーダーの終了コードの２例を示す拡大図である。
【図７Ｃ】上部ボーダーの開始コードの２例を示す拡大図である。
【図７Ｄ】下部ボーダーの終了コードの２例を示す拡大図である。
【図８】暗号データのビットストリームの異なるレベルの例示リストである。
【図９Ａ】データセグメント制御情報のデータ構造を示す一覧表である。
【図９Ｂ】データセグメント制御情報のデータ構造を示す他の一覧表である。
【図９Ｃ】データセグメント制御情報のデータ構造を示す別の一覧表である。
【図１０Ａ】本発明の使用する様々なマスクを示す拡大図である。
【図１０Ｂ】他のマスクを示す拡大図である。
【図１０Ｃ】別のマスクを示す拡大図である。
【図１０Ｄ】さらに他のマスクを示す拡大図である。
【図１１】バーコード信号化方法のフローチャートである。
【図１２Ａ】二次元バーコード解読方法のフローチャートである。
【図１２Ｂ】二次元バーコード記号を最初にスキャンする必要がない場合の二次元バーコード解読方法のフローチャートである。
【図１２Ｃ】二次元バーコード記号を最初にスキャンする必要がない場合の二次元バーコード解読方法のフローチャートである。
【図１３】位置決め孔部の配置の拡大図である
【図１４Ａ】二次元バーコードと共に使用された位置決め歯形を示す拡大図である。
【図１４Ｂ】二次元バーコードに提供された位置決め線の２例を示す拡大図である。
【図１４Ｃ】二次元バーコードに提供された位置決め線の２例を示す拡大図である。
【図１５】二次元バーコードにコード化された製品の異なるパラグラフに対応している可視分割マークを示す拡大図である。
【図１６】位置決め線がスキャナに指示を与える仕組みを示す詳細構造を示す概略図である。
【図１７Ａ】隣接する位置決め線と平行走査線との間の関係性を示す概略図である。
【図１７Ｂ】隣接する位置決め線と平行走査線との間の関係性を示す他の概略図である。
【図１８】二次元バーコードに対応する走査ヘッドの図表である。
【図１９】スキャナの典型的なブロック構成図である。
【符号の説明】
【００５７】
２１０　　二次元バーコード
２２０　　平行走査線
２３０　　走査線
４００　　二次元バーコード記号
４１０　　横軸
４２０　　縦軸
５１０　　上部ボーダー
５２０　　下部ボーダー
５３０　　左部ボーダー
５４０　　右部ボーダー
５５０　　ビットストリームデータ領域
５６０　　複数のデータセグメント仕切り
６０１　　開始コードパターン
６０５　　終止コードパターン
６９１　　終了（end）コードパターン
【図１Ａ】
2004070960.tif 000003
【図１Ｂ】
2004070960.tif 000004
【図２】
2004070960.tif 000005
【図３】
2004070960.tif 000006
【図４】
2004070960.tif 000007
【図５】
2004070960.tif 000008
【図６Ａ】
2004070960.tif 000009
【図６Ｂ】
2004070960.tif 000010
【図６Ｃ】
2004070960.tif 000011
【図７Ａ】
2004070960.tif 000012
【図７Ｂ】
2004070960.tif 000013
【図７Ｃ】
2004070960.tif 000014
【図７Ｄ】
2004070960.tif 000015
【図８】
2004070960.tif 000016
【図９Ａ】
2004070960.tif 000017
【図９Ｂ】
2004070960.tif 000018
【図９Ｃ】
2004070960.tif 000019
【図１１】
2004070960.tif 000020
【図１２Ａ】
2004070960.tif 000021
【図１２Ｂ】
2004070960.tif 000022
【図１２Ｃ】
2004070960.tif 000023
【図１３】
2004070960.tif 000024
【図１４Ａ】
2004070960.tif 000025
【図１４Ｂ】
2004070960.tif 000026
【図１４Ｃ】
2004070960.tif 000027
【図１５】
2004070960.tif 000028
【図１６】
2004070960.tif 000029
【図１７Ａ】
2004070960.tif 000030
【図１７Ｂ】
2004070960.tif 000031
【図１８】
2004070960.tif 000032
【図１９】
2004070960.tif 000033
【図１０Ａ】
2004070960.tif 000034
【図１０Ｂ】
2004070960.tif 000035
【図１０Ｃ】
2004070960.tif 000036
【図１０Ｄ】
2004070960.tif 000037