(57)【要約】光学読取コード作成装置は、符号化しようとするデータ及び提示データを含むパラメータデータを受け取ることができる記憶ユニット（４）と、符号化しようとするデータ及びパラメータデータに基づいてコードデータを作成することができる符号化ユニット（６）と、提示データ及び／又はコードデータに基づき、画像平面を定めるデータを作成することができるイメージングユニット（８）と、スケジューラ（１０）であって、符号化しようとするデータ及び提示データを含むパラメータデータを受け取ることに応答して、受け取った符号化しようとするデータ及びパラメータデータを用いて符号化ユニット（６）を呼び出して、関連するコードデータを作成し、関連するコードデータを用いて、選択的に提示データの少なくとも一部を用いてイメージングユニット（８）を呼び出して、明るい情報平面に関するデータ及び暗い情報平面に関するデータを作成し、画像を定める指定の提示データの一部を用いてイメージングユニット（８）を呼び出して、明るい画像平面に関するデータ及び暗い画像平面に関するデータを作成し、明るい情報平面に関するデータ、暗い情報平面に関するデータ、明るい画像平面に関するデータ、および暗い画像平面に関するデータのうちの少なくとも一方の所定の順序の構成に基づき光学読取コードを作成するように構成されるスケジューラ（１０）とを備える。
2014526109.tif 000002
【特許請求の範囲】
【請求項１】
符号化しようとするデータ（２２）及び提示データ（Ｉｍｇ，Ｐａｔ，Ｆｘ＿Ｐａｒ）を含むパラメータデータ（２０）を受け取ることができる記憶ユニット（４）と、
符号化しようとするデータ（２２）及びパラメータデータ（２０）に基づいてコードデータ（ＭＵ，ＭＣ）を作成することができる符号化ユニット（６）と、
提示データ（Ｉｍｇ，Ｐａｔ，Ｆｘ＿Ｐａｒ）及びコードデータ（ＭＵ，ＭＣ）のうちの少なくとも一方に基づき、画像平面を定めるデータ（ＭＵＬ，ＭＣＬ，ＢＧＬ，ＦＧＬ，ＭＵ＿Ｉｍｇ，ＭＣ＿Ｉｍｇ，Ｌｏｗ＿Ｉｍｇ，Ｈｉｇｈ＿Ｈｏｌｅｄ，Ｌｏｗ＿Ｉｍｇ＿Ｍｓｋ，Ｈｉｇｈ＿Ｉｍｇ＿Ｍｓｋ）を作成することができるイメージングユニット（８）と、
スケジューラ（１０）であって、符号化しようとするデータ（２２）及び提示データ（Ｉｍｇ，Ｐａｔ，Ｆｘ＿Ｐａｒ）を含むパラメータデータ（２０）を受け取ることに応答して、
受け取った前記符号化しようとするデータ（２２）及び前記パラメータデータ（２０）を用いて前記符号化ユニット（６）を呼び出して、関連するコードデータ（ＭＵ，ＭＣ）を作成し、
前記関連するコードデータ（ＭＵ，ＭＣ）を用いて、選択的に前記提示データ（Ｉｍｇ，Ｐａｔ，Ｆｘ＿Ｐａｒ）の少なくとも一部を用いて前記イメージングユニット（８）を呼び出して、明るい情報平面に関するデータ（ＭＣＬ，ＭＣ＿Ｉｍｇ）及び暗い情報平面に関するデータ（ＭＵＬ，ＭＵ＿Ｉｍｇ）のうちの少なくとも一方を作成し、
画像（Ｉｍｇ，ＢＧ，ＦＧ）を定める指定の提示データ（Ｉｍｇ，Ｐａｔ，Ｆｘ＿Ｐａｒ）の一部を用いて前記イメージングユニット（８）を呼び出して、明るい情報平面に関するデータ（ＢＧＬ，ＦＧＬ，Ｈｉｇｈ＿Ｈｏｌｅｄ，Ｈｉｇｈ＿Ｉｍｇ＿Ｍｓｋ）及び暗い情報平面に関するデータ（ＢＧＬ，ＦＧＬ，Ｌｏｗ＿Ｉｍｇ，Ｌｏｗ＿Ｉｍｇ＿Ｍｓｋ）のうちの少なくとも一方を作成し、
前記暗い情報平面に関するデータ（ＭＵＬ，ＭＵ＿Ｉｍｇ）の前記明るい情報平面に関するデータ（ＭＣＬ，ＭＣ＿Ｉｍｇ）、前記明るい画像平面に関するデータ（ＢＧＬ，ＦＧＬ，Ｈｉｇｈ＿Ｈｏｌｅｄ，Ｈｉｇｈ＿Ｉｍｇ＿Ｍｓｋ）、および前記暗い画像平面に関するデータ（ＢＧＬ，ＦＧＬ，Ｌｏｗ＿Ｉｍｇ，Ｌｏｗ＿Ｉｍｇ＿Ｍｓｋ）のうちの少なくとも一方の所定の順序の構成に基づき光学読取コード（２４）を作成する
ように構成される、前記スケジューラ（１０）と
を備える、光学読取コード作成装置。
【請求項２】
前記イメージングユニット（８）が、前記提示データの少なくとも一部及び前記関連するコードデータ（ＭＵ，ＭＣ）に基づき、明るい画像平面に関するデータ及び暗い画像平面に関するデータのうちの少なくとも一方を作成するように構成される、請求項１に記載の光学読取コード作成装置。
【請求項３】
前記イメージングユニット（８）が、前記提示データの少なくとも一部と、明るい情報平面に関するデータ（ＭＣＬ，ＭＣ＿Ｉｍｇ）および暗い情報平面に関するデータ（ＭＵＬ，ＭＵ＿Ｉｍｇ）のうちの少なくとも一方とに基づき、明るい画像平面に関するデータおよび暗い画像平面に関するデータのうちの少なくとも一方を作成するように構成される、請求項２に記載の光学読取コード作成装置。
【請求項４】
画像（Ｉｍｇ）を定める前記提示データが、フォアグラウンドデータ、バックグラウンドデータ、および画像データのうちの少なくとも一方を含む、請求項１〜３の何れか一項に記載の光学読取コード作成装置。
【請求項５】
フォアグラウンドデータ、はバックグラウンドデータ、および画像データのうちの少なくとも一方を含む、画像（Ｉｍｇ）を定める前記提示データが、ビットマップ画像データ及びベクトルグラフィックスデータのうちの少なくとも一方を含む、請求項４に記載の光学読取コード作成装置。
【請求項６】
前記提示データがパターンデータ（Ｐａｔ）および変換データ（Ｆｘ＿Ｐａｒ）のうちの少なくとも一方を含み、
前記イメージングユニット（８）が、前記提示データの少なくとも一部が、パターンデータ（Ｐａｔ）および前記変換データ（Ｆｘ−Ｐａｒ）のうちの少なくとも一方を含むことに基づき、明るい画像平面に関するデータ及び暗い画像平面に関するデータのうちの少なくとも一方を作成するように構成される、請求項１〜５の何れか一項に記載の光学読取コード作成装置。
【請求項７】
前記変換データが、軸まわりの回転、平行移動、相似、光投影、陰影投影、軟焦点、歪曲、透過性のデータ、乱流データ、又はかかるデータの混合を含む、請求項６に記載の光学読取コード作成装置。
【請求項８】
前記明るい画像平面に関するデータ（Ｈｉｇｈ＿Ｉｍｇ＿Ｍｓｋ）及び暗い画像平面に関するデータ（Ｌｏｗ＿Ｉｍｇ＿Ｍｓｋ）が、交わらない画像を定める、請求項１〜７の何れか一項に記載の光学読取コード作成装置。
【請求項９】
前記光学読取コード（２４）が、
前記明るい情報平面に関するデータ（ＭＣＬ，ＭＣ＿Ｉｍｇ）、前記暗い情報平面に関するデータ（ＭＵＬ，ＭＵ＿Ｉｍｇ）、前記明るい画像平面に関するデータ（ＢＧＬ，ＦＧＬ，Ｈｉｇｈ＿Ｈｏｌｅｄ，Ｈｉｇｈ＿Ｉｍｇ＿Ｍｓｋ）、及び前記暗い画像平面に関するデータ（ＢＧＬ，ＦＧＬ，Ｌｏｗ＿Ｉｍｇ，Ｌｏｗ＿Ｉｍｇ＿Ｍｓｋ）の所定の順序の平滑化を含む画像形式、
前記明るい情報平面に関するデータ（ＭＣＬ，ＭＣ＿Ｉｍｇ）、前記暗い情報平面に関するデータ（ＭＵＬ，ＭＵ＿Ｉｍｇ）、前記明るい画像平面に関するデータ（ＢＧＬ，ＦＧＬ，Ｈｉｇｈ＿Ｈｏｌｅｄ，Ｈｉｇｈ＿Ｉｍｇ＿Ｍｓｋ）、及び前記暗い画像平面に関するデータ（ＢＧＬ，ＦＧＬ，Ｌｏｗ＿Ｉｍｇ，Ｌｏｗ＿Ｉｍｇ＿Ｍｓｋ）を含むファイル形式、または
前記明るい情報平面に関するデータ（ＭＣＬ，ＭＣ＿Ｉｍｇ）、前記暗い情報平面に関するデータ（ＭＵＬ，ＭＵ＿Ｉｍｇ）、前記明るい画像平面に関するデータ（ＢＧＬ，ＦＧＬ，Ｈｉｇｈ＿Ｈｏｌｅｄ，Ｈｉｇｈ＿Ｉｍｇ＿Ｍｓｋ）、および前記暗い画像平面に関するデータ（ＢＧＬ，ＦＧＬ，Ｌｏｗ＿Ｉｍｇ，Ｌｏｗ＿Ｉｍｇ＿Ｍｓｋ）のうちの少なくとも一方を規定する複数のレイヤ宣言を含むファイル形式で
作成される、請求項１〜８の何れか一項に記載の光学読取コード作成装置。
【請求項１０】
符号化しようとするデータ（２２）及び提示データ（Ｉｍｇ，Ｐａｔ，Ｆｘ＿Ｐａｒ）を含むパラメータデータ（２０）を受け取ること、
符号化しようとするデータ（２２）及びパラメータデータ（２０）に基づいてコードデータ（ＭＵ，ＭＣ）を計算すること、
前記コードデータ（ＭＵ，ＭＣ）、及び選択的に前記提示データ（Ｉｍｇ，Ｐａｔ，Ｆｘ＿Ｐａｒ）の少なくとも一部に基づき、明るい情報平面に関するデータ（ＭＣＬ，ＭＣ＿Ｉｍｇ）および暗い情報平面に関するデータ（ＭＵＬ，ＭＵ＿Ｉｍｇ）のうちの少なくとも一方を作成すること、
画像（Ｉｍｇ，ＢＧ，ＦＧ）を定める前記提示データ（Ｉｍｇ，Ｐａｔ，Ｆｘ＿Ｐａｒ）の少なくとも一部に基づき、明るい画像平面に関するデータ（ＢＧＬ，ＦＧＬ，Ｈｉｇｈ＿Ｈｏｌｅｄ，Ｈｉｇｈ＿Ｉｍｇ＿Ｍｓｋ）および暗い画像平面に関するデータ（ＢＧＬ，ＦＧＬ，Ｌｏｗ＿Ｉｍｇ，Ｌｏｗ＿Ｉｍｇ＿Ｍｓｋ）のうちの少なくとも一方を作成すること、
前記明るい情報平面に関するデータ（ＭＣＬ，ＭＣ＿Ｉｍｇ）、前記暗い情報平面に関するデータ（ＭＵＬ，ＭＵ＿Ｉｍｇ）、前記明るい画像平面に関するデータ（ＢＧＬ，ＦＧＬ，Ｈｉｇｈ＿Ｈｏｌｅｄ，Ｈｉｇｈ＿Ｉｍｇ＿Ｍｓｋ）、および前記暗い画像平面に関するデータ（ＢＧＬ，ＦＧＬ，Ｌｏｗ＿Ｉｍｇ，Ｌｏｗ＿Ｉｍｇ＿Ｍｓｋ）のうちの少なくとも一方の所定の順序の構成に基づきコード（２４）を作成すること
を備える、光学読取コードを作成する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、光学読取コードを作成する分野に関する。
【背景技術】
【０００２】
光学読取コードとは、シンボル体系、即ち１組のデータのグラフィック表現である。入力データに全単射的に対応する画像の作成物を体系化するために、様々な形式が提案されている。例えばこのような形式には、とりわけデータ行列（ＩＳＯ／ＩＥＣ  １６０２２）、マキシコード（ＩＳＯ／ＩＥＣ  １６０２３）、ＱＲコード（登録商標）（ＩＳＯ／ＩＥＣ  １８００４）がある。
【０００３】
出力画像は、モジュールと呼ばれる１組の正方形の白黒ドットから成る。これらの点は、元のデータをそこから回復することができる、行列とも呼ばれるフラットファイルを規定する。
【０００４】
光学読取コードは、大量のデータを限られた領域上に高度に再現性のある方法で記憶することができるので非常に有利である。
従って、電話（「スマートフォン」とも呼ばれる）及びタブレット向けに多くのソフトウェアアプリケーションが現在入手可能である。これらのアプリケーションは光学読取コードを読み取り、そこに含まれるデータを使用することを可能にする。そのために、これらのアプリケーションは写真光学センサ（又はビデオカメラ）を使用し、撮影された画像又は画像シーケンスに基づいて情報を復元する。
【０００５】
この種のアプリケーションは、光学式文字認識（OCR:optical character recognition）を回避できるようにし、例えば利用者がアドレスを入力する必要なしに、又は他の如何なる努力もすることなしに、ウェブサイトへのリンク又は雑誌内若しくはショーウィンドウ内の別のリンクへのリンクを提供できるようにする。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
光学読取コードに関連する主な欠点の１つは、このようなコードの見かけが悪いことである。実際のところ、様々な形式に対応するアルゴリズムは、それを見る人物にとっては無意味な白黒の正方行列を作り出す。例えば、多数のコード発行者のグラフィック要素を所与のコードに関連付けることは難しい。
【０００７】
更に、絵であろうと写真であろうとグラフィック表示を光学読取コードに関連付けることは複雑であり、概してコードを判読不能にするか、又はコードが含むことができる情報量を極めて制限する。
【０００８】
これらの理由から、機能的な且つ見て十分に美しいコードが得られるまで、光学読取コードをカスタマイズするあらゆる努力はこれまでのところ、どちらかと言えば試験と失敗による試行錯誤であった。
【０００９】
これに関連して、グラフィカルにカスタマイズされた光学読取コードを作成する解決策は現在存在せず、ましてや一見同じように見えるがそれぞれ異なる情報を含むコードが大量に、例えば数千コピー単位で印刷されるようになされるかかるコードを作成する解決策は存在しない。
【００１０】
本発明はこの状況を改善する。
【課題を解決するための手段】
【００１１】
このために、本発明は、光学読取コード作成装置を提供し、光学読取コード作成装置は、符号化しようとするデータ及び提示データを含むパラメータデータを受け取ることができる記憶ユニットと、符号化しようとするデータ及びパラメータデータに基づいてコードデータを作成することができる符号化ユニットと、提示データ及び／又はコードデータに基づき、画像平面を定めるデータを作成することができるイメージングユニットと、スケジューラであって、符号化しようとするデータ及び提示データを含むパラメータデータを受け取ることに応答して、受け取った符号化しようとするデータ及びパラメータデータを用いて符号化ユニットを呼び出し、それにより関連するコードデータを作成し、関連するコードデータを用いて、選択的に提示データの少なくとも一部を用いてイメージングユニットを呼び出し、それにより明るい情報平面に関するデータ及び／又は暗い情報平面に関するデータを作成し、画像を定める指定の提示データの一部を用いてイメージングユニットを呼び出し、それにより明るい情報平面に関するデータ及び／又は暗い情報平面に関するデータを作成し、明るい情報平面に関するデータ、暗い情報平面に関するデータ、明るい画像平面に関するデータ、及び暗い画像平面に関するデータの所定の順序の構成に基づきコードを作成するように考案されるスケジューラとを含む。
【００１２】
本発明は、光学読取コードを作成する方法にも関し、光学読取コードを作成する方法は、符号化しようとするデータ及び提示データを含むパラメータデータを受け取ること、符号化しようとするデータ及びパラメータデータに基づいてコードデータを計算すること、コードデータ、及び選択的に提示データの少なくとも一部に基づき、明るい情報平面に関するデータ及び／又は暗い情報平面に関するデータを作成すること、画像を定める提示データの少なくとも一部に基づき、明るい画像平面に関するデータ及び／又は暗い画像平面に関するデータを作成すること、明るい情報平面に関するデータ、及び／又は暗い情報平面に関するデータ、及び／又は明るい画像平面に関するデータ、及び／又は暗い画像平面に関するデータの所定の順序の構成に基づきコードを作成することを含む。
【図面の簡単な説明】
【００１３】
【図１】本発明による装置の図を示す。
【図２】図１の装置の動作についての概略図を示す。
【図３】図１の装置によって実施される、光学読取コードを作成するためのアルゴリズムを示す。
【図４】図３の第１の操作の一実施形態を示す。
【図５】図３の第２の操作の概略図を示す。
【図６】図３の第３の操作を示す。
【図７】図３の第４の操作の一例示的実装形態を示す。
【図８】別の実施形態の一例示的実装形態を示す。
【図９】更に別の実施形態の一例示的実装形態を示す。
【発明を実施するための形態】
【００１４】
限定ではなく例示目的で与える例から取られる以下の説明を読むと、本発明の他の特徴及び利点がより明らかになる。
以下の図面及び説明は主に特性要素を含む。従って、それらの特性要素は本発明をより良く理解するためだけではなく、必要に応じて本発明の定義に寄与するためにも使用することができる。
【００１５】
本説明は、特許使用料及び／又は著作権によって保護されている場合がある要素を含む可能性がある。権利者は、公式記録に掲載される通りに本特許文書又はその説明を何人が同一に再現しても異議はない。その他の点に関しては、その者が自身の権利を完全に保有する。
【００１６】
図１は、本発明による装置を示す。図面内に見て取れるように、装置２は、記憶ユニット４、符号化ユニット６、イメージングユニット８、及びスケジューラ１０を含む。
本明細書に記載する例では、記憶ユニット４は、プラッタ又はフラッシュメモリハードディスク（ＳＳＤ）、フラッシュ又はＲＯＭメモリ、コンパクトディスク（ＣＤ）、ＤＶＤ、ブルーレイディスクなどの物理的記憶媒体、又は他の任意の種類の物理的記憶媒体であり得る従来の記憶媒体である。記憶ユニット４は、システム領域ネットワーク（SAN:System Area Network）、インターネット、又は広く「クラウド」に転送されても良い。
【００１７】
この例では、符号化ユニット６、イメージングユニット８、及びスケジューラ１０は、それらを含むコンピュータによって実行されるソフトウェア要素である。但し、これらは複数のコンピュータ上に分散される方法で実装することができ、プリント回路形式（ＡＳＩＣ、ＦＰＧＡ、又は他の任意のもの）、又は専用のマイクロプロセッサ（ＮｏＣやＳｏＣ）とすることもできる。
【００１８】
スケジューラ１０は、本発明による処理を実施するために符号化ユニット６及びイメージングユニット８を選択的に制御し、記憶ユニット４にアクセスする。
図２は、装置２によって実行される処理を示す。この図面内に見て取れるように、装置２は一方でパラメータデータ２０を受け取り、他方で符号化しようとするデータ２２を受け取り、コード２４を出力する。
【００１９】
パラメータデータ２０は、作成される光学読取コードをカスタマイズすることを可能にする全ての提示データ、並びに装置２の実行に固有の任意のパラメータから成る。例えばパラメータデータ２０には、これだけに限定されないがコードバックグラウンドデータ、コードフォアグラウンドデータ、画像データ、パターンデータ、パターン変換データ、又は他の任意のデータが含まれ得る。実行に固有のパラメータには、作成されるコードの種類のデータ、バッチデータ、ブロックデータ、又は他の任意のデータが含まれ得る。これらのデータの性質及び機能を以下に明記する。
【００２０】
符号化しようとするデータ２２は、コード２４が含まなければならないデータである。これらのデータは、名刺ファイル、ウェブアドレス、又は１つ若しくは複数のテキストストリング、ビットストリング、又は他の任意のストリングによって規定される他の任意の情報を形成することができる。
【００２１】
図２ではコード２４を最終的な形式で示すが、自然人によって理解されるように、装置２によって作成されるコード２４は、機能的な光学読取コードを得ることを可能にする如何なる要素でも良いことを理解すべきである。
【００２２】
従って、コード２４は、ベクトルグラフィックス形式で、ビットマップ画像として、又はなお複数のレイヤが定められるがまだマージされていない文書形式で、及びかかる要素を得るためにアセンブルされ得る任意のデータ形式で入手可能とすることができる。
【００２３】
図３は、装置２によって実施される、光学読取コードを作成するための一例示的アルゴリズムの図を示す。
このアルゴリズムは、利用者がパラメータデータ２０を直接的に、又はこれらのデータを含むソースの位置を指示することによって入力する操作３００から始まる。これらのデータは、コード２４の作成及び最終的なレンダリング効果を条件付ける。
【００２４】
先に示したように、このようなデータには、コードバックグラウンドデータ、コードフォアグラウンドデータ、画像データ、パターンデータ、パターン変換データ、作成されるコードの種類のデータ、バッチデータ、及びブロックデータが含まれ得る。
【００２５】
実際、本出願人は、例えばバックグラウンド又はフォアグラウンドを追加することによるか、又はモジュールを実現するための１つ又は幾つかのパターンを使用することにより、光学読取コードをグラフィカルにカスタマイズする幾つかの方法を確認した。
【００２６】
バックグラウンドデータ及びフォアグラウンドデータには、例えばビットマップやベクトル形式の選択された色のバックグラウンド、又は連続階調画像が含まれ得る。所与のコードに関し、バックグラウンドデータ又はフォアグラウンドデータだけが与えられても良い。
【００２７】
実際のところ、一片の＜＜０＞＞情報を表すために最も高い頻度で選択される色は白色であり、白色は透明なバックグラウンド又はフォアグラウンドを有する。しかし、バックグラウンド及びフォアグラウンドが規定される場合、その一方は「明るい」、即ち一片の＜＜０＞＞情報として検出されなければならず、他方は「暗い」、即ち一片の＜＜１＞＞情報として検出されなければならない。
【００２８】
画像データには、１つ若しくは複数の写真、又はロゴ、モデル、ブランド標識、他の任意の画像など、企業に関連する図画を再現できるようにするビットマップ又はベクトル形式の任意のグラフィック型データが含まれ得る。後で分かるように、画像データに関連する画像の寸法は、コード２４に望ましい寸法に比べ任意の寸法とすることができ、即ちこのような寸法はより小さくても、同じでも、又はより大きくても良い。
【００２９】
パターンデータには、光学読取コード内の情報を構成するモジュール又はモジュール群を表すことを目的とするパターンを形成するために使用可能な、ビットマップ又はベクトル形式のあらゆるグラフィック型データが含まれ得る。
【００３０】
パターン変換データには、パターンに幾何変換及び／又は光学的変換を適用することを可能にする、任意の関数及びパラメータが含まれ得る。これらの変換には、例えば軸まわりの回転、平行移動、相似、光投影、陰影投影、軟焦点、歪曲、透過性、乱流等、又はそれらの変換の組み合わせが含まれ得る。
【００３１】
情報検出の固有の許容度の結果、パターンデータ及び変換データを用いて元のパターンを形成することが可能である。実際、光学読取コードを復号するとき、光学読取コードを行列内のボックスのそれぞれに対応する複数の領域にまず分割する。次いで各領域を暗いか明るいか判定し、これにより一片の＜＜１＞＞情報と一片の＜＜０＞＞情報とを区別する。
【００３２】
その結果、グラフィック要素が適切に復号されるカラープロファイルを有し、関係領域内の十分なスペースを占める限り、ほぼあらゆるグラフィック要素を用いてモジュールを表すことができる。
【００３３】
例えば、赤いハートが各領域の十分な部分を覆う限り、その赤いハートを用いて黒いモジュールを置換することができる。この原理は上記の変換にも同様に当てはまる。上記の結果は、パターンが延在する領域を越えた領域の情報を変えない限り、そのパターンは対応する領域を「通り越す」こともできることである。
【００３４】
本出願人が発見した「明るい」及び「暗い」の概念は極めて重要である。実際のところ、機能的な光学読取コードを確実に、即ち余分なミスの危険を冒すことなしに作成するために、モジュールが、一片の＜＜１＞＞情報として検出されるには完全に黒でなければならず、一片の＜＜０＞＞情報として検出されるには完全に白でなければならないと長い間考えられてきた。更に、今日ではモジュールが正方形であり、所与のコード内で互いに同一であることも必須であると見なされている。実際、これらの条件が満たされない場合、機能的なコードを得るためにいく通りもの推定を行うことが必要になる。
【００３５】
例えば、画像の組み込みは例え小さいものでさえ試行錯誤によって行われ、つまり画像を通常コードの中央に組み込み、そのコードを検査する。この検査は、通常否定的である。次いで、画像を多くの場合トリミングによって修正し、機能的に且つある程度美的なコードが得られるまでこのプロセスを繰り返す。
【００３６】
この手法は、明らかにコンピュータグラフィックスよりも処理方法によって生じる。更に、例えば自身の名刺を用いて人間のためにカスタマイズされるのみならず、例えば自社のロゴを用いてグラフィカルにもカスタマイズされる光学読取コードを有する多数のメディアを作成するのは不可能である。
【００３７】
本出願人は、これらの概念が間違っており、「明るい」部分と「暗い」部分とを実際に区別すべきであるということを発見した。実際のところ、本出願人は以下の等価性を達成できることを見出した。
【００３８】
−「明るい」部分を一片の＜＜０＞＞情報として検出し、
−「暗い」部分を一片の＜＜１＞＞情報として検出する。
従って以下、「０」又は「明るい」データは一片の＜＜０＞＞情報を伝達するモジュールを指し、よって「１」又は「暗い」データは一片の＜＜１＞＞情報を伝達するモジュールを指す。
【００３９】
この発見は根本的なものであり、本出願人がカスタマイズされた光学読取コードを作成することを可能にし、モジュールを表すために使用されるグラフィック要素は、もはや所与の寸法を有するスペースを占める黒い正方形に限定されず、適切な特性を有するほぼ任意のグラフィック要素である。これらの光学読取コードは、画像など、モジュールにリンクされていないグラフィック要素を自由に組み込むことによってもカスタマイズすることができる。
【００４０】
作成しようとするコード２４のデータは、上記のように出力されるコード２４の種類、つまりビットマップ画像、ベクトル図面、平滑化されていないレイヤを含む文書等を指定できるようにする。
【００４１】
バッチデータは、幾つかのコードが、同じパラメータ及び異なる符号化しようとするデータ２２を用いて作成されなければならないことを指示できるようにする。従って、光学読取コードを使用するカスタマイズされた情報を用いるが、同じ種類のバッチグラフィックカスタマイゼーションによりメディアを印刷することが可能になる。
【００４２】
バッチ処理の場合、コード内に挿入されるデータのみが変わるが、グラフィックカスタマイゼーションデータ及び視覚的描画は同じままである。以下で論じるように、本発明は、確実に、即ち誤り又は試験と失敗がないのみならず、グラフィックスに関して同様にカスタマイズされ、データに関して異なるようにカスタマイズされるかなりの量のコードを確実に作成できるようにする。
【００４３】
ブロックデータは、コードの周りに確保されているモジュール数を示すことを可能にする。従来、ブロックデータは情報行列の周りに、即ちコードの周りに「明るい」又は一片の「０」情報を含む、２つ又は４つのモジュールから成る。
【００４４】
パラメータが設定されると、操作３１０で、アルゴリズムがバックグラウンドレイヤ及びフォアグラウンドレイヤの作成を続ける。実際、本出願人は、一定の規則が守られる限り、光学読取コードを極めてリッチな且つ自由な方法でカスタマイズできることを見出した。これらの規則は、主に「明るい」情報及び「暗い」情報の検出を保つことに関する。
【００４５】
図４は、操作３１０の一例示的実装形態を示す。操作４００で、作成しようとするコードに関連するフォアグラウンドデータ、バックグラウンドデータ、及び画像データを回復する。
【００４６】
次いで、操作４１０で、画像データの有無を検査する。実際、画像データを入手できない場合、操作４２０で、Ｌａｙ（）関数を用いてバックグラウンドレイヤ及びフォアグラウンドレイヤを直接的に実行し、操作３１０は４３０で終了する。バックグラウンドデータもフォアグラウンドデータも入手できない場合、Ｌａｙ（）関数は何もせず、又は透明なレイヤを返す。
【００４７】
画像データが組み合わさっている場合、操作４４０でＳｐｌｉｔ＿Ｉ（）関数を実行する。Ｓｐｌｉｔ＿Ｉ（）関数は、画像データ及びバックグラウンドデータを引数として受け取る。
【００４８】
Ｓｐｌｉｔ＿Ｉ（）関数は、バックグラウンドデータに関連する情報の種類に応じて、画像データに基づき２つのレイヤを作り出す。従って、バックグラウンドデータが「暗い」情報に対応する場合、Ｓｐｌｉｔ＿Ｉ（）関数は、「暗い」情報に対応する画像データを含むＩｍｇ＿Ｂレイヤ、及び「明るい」情報に対応する画像データを含むＩｍｇ＿Ｆレイヤを作成する。
【００４９】
Ｓｐｌｉｔ＿Ｉ（）関数を実行する一例示的方法は、画像データを取ること、それらの画像データをモジュール行列に従って切り取り、画像データ内の１組の領域を画定することから成る。次いで各領域を検査し、各領域が「明るい」情報に対応する画像データを含むのか、「暗い」情報に対応する画像データを含むのかを判定する。最後に、この判定に基づいてＩｍｇ＿Ｂレイヤ及びＩｍｇ＿Ｆレイヤを再構築する。
【００５０】
最終的に、操作４５０でＦｕｓ（）関数を用いてＢＧＬバックグラウンドレイヤを計算し、操作４６０でＦｕｓ（）関数を用いてＦＧＬフォアグラウンドレイヤを計算し、この操作は４３０で終了する。
【００５１】
Ｆｕｓ（）関数は、提出順に引数として渡される平面を平滑化することによって実行される。本明細書に記載の例では、Ｉｍｇ＿ＢレイヤがＢＧレイヤ上で平滑化され、Ｉｍｇ＿ＦレイヤがＦＧレイヤ上で平滑化される。
【００５２】
バックグラウンドレイヤ及びフォアグラウンドレイヤが作成されると、データ行列作成操作３２０で、光学読取コードの作成を続ける。
操作３２０は２つのステップを含む。第１のステップでは、符号化しようとするデータ２２を、選択されたコード形式に従って情報行列に変換する。次いで追加の行列を生成し、この行列の役割については以下で説明する。
【００５３】
図５は、操作３２０の実装形態の概略図を示し、情報行列に５００の参照番号を付け、追加の行列には５１０の参照番号を付けてある。この操作では、ブロックデータが規定される場合、それらのブロックデータをここでは部分的に示す行列内に組み込む。
【００５４】
図５には全ての係数を示しているが、以下では、ヌルでないものだけを効果的に解説する。行列５００及び５１０は、モジュールを表現すべきコード内の位置である、非ヌル係数の位置を示す一連の手掛かり形式で表しても良いことに留意すべきである。行列５００及び５１０を表すデータはコードデータである。本明細書に記載の例は、ＱＲコード形式に適している。他のコード形式によって、異なる行列が生成される。
【００５５】
次いで、任意選択的な操作３３０を実行する。操作３３０はグループ検出操作である。実際、コードを形成するために選択されるパターンに応じて、連続した「１」又は「０」タイプの幾つかの情報を組み合わせることが魅力的な場合がある。
【００５６】
従って、例えば、本出願人が実施する一例ではパターンが鉛筆の線である。数本の線が垂直に又は水平に並ぶ場合、それらの線を一本の長い実線に組み合わせることが魅力的であり得る。同様に、パターンとして画像、例えばハンバーガーを使用する場合、単一の画像を置き換えるために、正方形を形成する同一の情報片を組み合わせることが魅力的な場合があり、その際相似が行われる。或いは、例えばテトリス（Ｔｅｔｒｉｓ）（商標）型の要素の形状に似た他の形を検出し、使用しても良い。
【００５７】
操作３３０は、操作３２０で作成した行列内でこれらのグループを検出することによりこの実装形態を容易にする。図６は、操作３３０の実装形態の概略図を示し、検出前の行列に６００の参照番号を付け、検出後の行列に６１０の参照番号を付けてある。本明細書に記載の例では、グループ検出情報を含む単一の係数が係数群に置き換えられ、他の係数が無効にされる。図５と同様に行列６００及び６１０を分けて示しており、行列６００内には３＊２のモジュールサイズの矩形ブロックを識別している。他の代替的解決策を実施しても良い。
【００５８】
「１」の情報に対応するモジュールは大抵「暗い」色で作られるので、グループ検出操作３３０は概して情報行列５００に対して行われる。
本明細書に記載の例では、行列５００だけがグループ検出の対象であり、行列５１０は変わらないままである。代替的解決策では、行列５１０、又は行列５００及び５１０の両方が操作３３０の対象となり得る。
【００５９】
次いで、ＭＵＬ有用情報レイヤ及びＭＣＬ追加情報レイヤを生成する操作３４０を行う。図７は、この操作の一例示的実装形態を示す。
この操作は、ＢＧバックグラウンドデータ、Ｐａｔパターンデータ、及びＦｘ＿Ｐａｒ変換データの回復と共に７００から始まる。本明細書に記載の例では、Ｐａｔパターンデータ及びＦｘ＿Ｐａｒ変換データはテーブルである。
【００６０】
次いで、操作７１０でＣｈｓ（）関数を実行し、情報レイヤを作成するための基礎として使用する行列を求める。実際のところ、ＢＧＬバックグラウンドレイヤが「明るい」情報に対応する場合、これがＭＵ有用情報行列である。そうでない場合、ＭＣ追加情報行列を使用する。
【００６１】
従って、Ｃｈｓ（）関数は、ＭＵ有用情報行列、ＭＣ追加情報行列（操作３３０の後で修正しなければならない場合）、及びＢＧＬバックグラウンドレイヤを引数として受け取る。Ｃｈｓ（）関数は２つの行列、Ｍ１及びＭ２を返し、ＢＧＬバックグラウンドレイヤの情報が明るい場合、Ｍ１行列はＭＵ行列を含み、そうでない場合はＭＣ行列を含む。バックグラウンドレイヤがない場合、又はレイヤが透明な場合、Ｍ１行列はＭＵ行列である。
【００６２】
次いで操作７２０で、Ｍａｋ（）関数により、行列Ｍ１を情報平面に変換する。
最初に、Ｍａｋ（）関数は、Ｍ１行列をＭ１＿Ｔａｂ（）関数内のテーブルに変換する。Ｍ１＿Ｔａｂ（）関数は、操作７１０のＭ１行列、並びにＰａｔパターンデータ及びＦｘ＿Ｐａｒ変換データを引数として受け取り、Ｍ１＿Ｔａｂ［］テーブルを返し、各要素はＭ１行列領域の１つ又は複数のインデックスを含む。
【００６３】
本明細書に記載の例では、Ｍ１＿Ｔａｂ［］テーブルの各要素は、Ｍ１のものと同一の寸法の行列である。各Ｍ１＿Ｔａｂ［ｉ］行列内では、一部の係数だけがヌルでなく、Ｍ１の非ヌル係数に対応する。Ｍ１＿Ｔａｂ［ｉ］行列の或る係数がヌルでない場合、その係数は他の全てのＭ１＿Ｔａｂ［ｊ］行列内でヌルであり、全てのＭ１＿Ｔａｂ［ｉ］行列の和はＭ１を与える。
【００６４】
非ヌル係数は、各Ｍ１＿Ｔａｂ［ｉ］行列内に所定の順序で又は無作為に割り当てることができ、Ｐａｔパターンデータ及びＦｘ＿Ｐａｒ変換データに従って実行することができる。後者の場合、バッチを処理するとき、作成される全てのコードが共通の視覚形態を有するが、それらのコードは互いに全く異なるものになることを意味する。従って、各Ｍ１モジュールはＭ１＿Ｔａｂ［］テーブルの行列内にあり、１つの行列内にしかない。
【００６５】
こうすることで、Ｍ１の非ヌル係数ごとに多様なパターンを使用し且つ／又は様々な効果を適用することにより、Ｍ１行列の全ての情報を別々に処理できるようになる。操作３３０を実行するとき、パターンの選択はグループ検出情報、より具体的にはグループ検出情報が参照するグループの大きさによって決まり得る。
【００６６】
第２のステップで、Ｍａｋ（）関数がＭ１＿Ｔａｂ［］テーブル及びＰａｔパターンデータに基づいてＭＵＬ有用情報レイヤを生成し、Ｆｘ＿Ｐａｒ変換データに従いＰａｔパターンデータによって識別される要素を用いてモジュールをＭ１＿Ｔａｂ［ｉ］行列の非ヌル係数によって指定される位置において表現するためのＦｘ＿Ｐａｒ変換データを生成する。
【００６７】
本明細書に記載の例では、Ｆｘ＿Ｐａｒ変換データが、Ｐａｔパターンデータの重心（barycentre）が保たれるように適用される。こうすることで、Ｆｘ＿Ｐａｒ変換データを適用する前のパターンデータ、及びＦｘ＿Ｐａｒ変換データを適用した後のＰａｔパターンデータが、コード読取アプリケーションによって同じ方法で検出されることを確実にする。
【００６８】
最も単純な実装形態では、１種類のパターンしかなく変換はない。この場合、Ｍ１＿Ｔａｂ［］テーブルはＭ１行列と同一の一意行列を含み、モジュールはＭ１行列によって指示される位置にパターンデータを用いて示される。
【００６９】
次いで操作７３０で、ＭＣＬ追加情報レイヤがＭａｋ（Ｍ２）関数によって同様に作成され、操作３４０が７４０で終わる。或いは、宣言型グラフィックスエンジンを使用する場合、操作７２０及び７３０がレイヤを返さず、レイヤ宣言データを返しても良い。
【００７０】
全てのバックグラウンドレイヤ、フォアグラウンドレイヤ、及び情報レイヤが作成されると、操作３５０でこれらを処理し、データのデータタイプ内で規定される通りにコード２４をもたらす。従って、平滑化された画像形式のコード２４が要求されることをこれらのデータが示す場合、この操作はバックグラウンドレイヤ、有用情報レイヤ、フォアグラウンドレイヤ、及び追加情報レイヤを平滑化する。平滑化されていない画像が要求される場合、これらのレイヤは直接等で提供される。この場合もやはり、宣言型グラフィックスエンジンを使用する場合、コード２４は１組のレイヤ宣言データによって定義され得る。
【００７１】
更に、上記の操作の一部は任意選択的であるか、又はより優れた視覚効果を得るために異なる順序で行うことができる。
例えば追加情報に関し、このような情報は多くの場合見えない、即ち透明であることが望ましい。より具体的には、追加情報は、バックグラウンド又は「暗い」フォアグラウンドが適用されるコード領域内に位置する「明るい」情報片に対応する場合にのみ表示する必要がある。そのような領域が存在しない場合、追加情報レイヤの適用は省略することができる。
【００７２】
このことは、バックグラウンドデータがフォアグラウンドデータよりも多く存在することにより裏打ちされる。その結果、ＦＧＬフォアグラウンドレイヤは多くの場合、画像のＩｍｇ＿Ｆ部分に低減され、このことは、このような領域が存在する可能性を減らす。
【００７３】
更に、本発明により、高度にカスタマイズされた光学読取コードを容易に大量生産できることが上記の内容から分かる。実際のところ、コード作成が「明るい」情報及び「暗い」情報の保全を規定する限り、検討されるグラフィックカスタマイゼーションが如何なるものでも、本発明の範囲内で作成されるコードが機能的であることは確実である。これは非常に有利なことであり、技術的現状では不可能である。
【００７４】
本出願人は、光学読取コードを作成する別の有利な方法も発見した。
図８は、その第１の実施形態を示す。
操作８００で、画像データ、パターンデータ、変換データ、並びにＭＵ及びＭＣ行列データを受け取る。
【００７５】
次いで、操作８１０で、ＬＥ（）関数を画像データに適用する。ＬＥ（）関数は、画像データによって表されるＩｍｇ画像を徐々に透明にすることによって変えることを目的とする。その結果Ｌｏｗ＿Ｉｍｇデータが得られ、Ｌｏｗ＿Ｉｍｇデータは、その明るさが「明るい」情報片に対応する元の画像の全てのデータが、それらのデータを徐々に透明にすることによって除去された画像を表す。
【００７６】
或いはこの関数は、その明るさが選択閾値を下回る入力画像の全ての要素を透明にし、その明るさが選択閾値を上回る入力画像の全ての要素を不透明にすることができる。
次いで、操作８２０で、ＭＵ＿Ｉｍｇデータ及びＭＣ＿ＩｍｇデータをＭａｋ（ＭＵ，ＭＣ）関数によって計算し、操作８３０で、ＭＵ＿ＩｍｇデータをＢｌｋ（）関数によって黒くする。Ｂｌｋ（）関数は、厳密に白ではないＭＵ＿Ｉｍｇ画像の全ての要素を黒い要素に変換し、ＭＵ＿Ｉｍｇ＿Ｂｌｋ画像を規定するデータをもたらす。
【００７７】
その後、操作８４０で、ＭＵ＿Ｉｍｇ＿ＢｌｋデータをＬｏｗ＿Ｉｍｇデータ上に重ね合わせ、操作８５０で、色反転操作をＩｎｖ（）関数によって行いＨｏｌｅｄ＿Ｉｎｖデータを作成する。従って、Ｈｏｌｅｄ＿Ｉｎｖデータは、ＭＵ行列の「暗い」モジュールの位置に対応する透明な孔を有する、Ｉｍｇ画像データの比色ミラーを含む。
【００７８】
操作８６０で、Ｈｏｌｅｄ＿ＩｎｖデータにＬＥ（）関数を適用し、操作８７０で、その結果生じるＨｉｇｈ＿Ｈｏｌｅｄ＿ＩｎｖデータをＩｎｖ（）関数によって再び反転させ、Ｈｉｇｈ＿Ｈｏｌｅｄデータをもたらす。実際、Ｈｉｇｈ＿Ｈｏｌｅｄデータは、「明るい」情報に対応するモジュールが表現されているＩｍｇ画像の「暗い」部分に対応する。
【００７９】
最後に操作８８０で、ＭＵ＿Ｉｍｇ、Ｌｏｗ＿Ｉｍｇ、ＭＣ＿Ｉｍｇ、及びＨｉｇｈ＿Ｈｏｌｅｄデータレイヤを平滑化してコード２４を作成する。
上記のように、これらの操作は平滑化された画像形式の、順序付けられたレイヤ群形式の、又は宣言型グラフィックスエンジンを使用する場合は１組のレイヤ宣言形式のコード２４を生成することができる。
【００８０】
図９は、図８の改変形態を示す。
操作９００で、画像データ、パターンデータ、変換データ、並びにＭＵ及びＭＣ行列データを受け取る。
【００８１】
最初に、この改変形態は、Ｉｍｇ画像の「暗い」部分、及びＭＵ行列内の「暗い」モジュールの位置に対応する部分を計算することを目的とする。
この計算を行うために、操作９０５で、ＭＵ＿ＩｍｇデータをＭａｋ（ＭＵ）関数によって計算し、操作９０７で、ＭＵ＿ＩｍｇデータをＢｌｋ（）関数によって黒くし、ＭＵ＿Ｉｍｇ＿Ｂｌｋ画像を規定するデータをもたらす。
【００８２】
次いで、操作９１０で、ＭＵ＿Ｉｍｇ＿ＢｌｋデータにＩｎｖ（）関数を適用し、ＭＵ＿Ｉｍｇ＿Ｉｎｖデータを得る。典型的には、ＭＵ＿Ｉｍｇ＿Ｉｎｖ画像は、存在する場合ブロックデータを有するＭＣ行列に対応し、「明るい」モジュールは黒で表示され、「暗い」モジュールは白で表示される。操作９１５で、ＭＵ＿Ｉｍｇ＿ＩｎｖデータにＬＥ（）関数を適用し、「明るい」モジュールを不透明にし、「暗い」モジュールを透明にする。その結果生じるデータをＬｏｗ＿ＭＵ＿Ｉｍｇ＿Ｉｎｖと呼ぶ。
【００８３】
操作９２０で、Ｉｍｇ画像の画像データをＩｎｖ（）関数によって比色的に反転させ、Ｉｍｇ＿Ｉｎｖデータを取得し、操作９２５で、Ｌｏｗ＿ＭＵ＿Ｉｍｇ＿ＩｎｖデータをＩｍｇ＿Ｉｎｖデータとマージする。その結果、Ｉｍｇ＿Ｍｓｋ＿Ｉｎｖマスクデータが得られ、このデータはＭＵの「暗い」モジュールに対応するＩｍｇ画像の部分の比色ミラーを含む。
【００８４】
Ｉｍｇ画像の「暗い」部分、及びＭＵ行列内の「暗い」モジュールの位置に対応する部分を含む画像を得るために、操作９３０で、Ｉｍｇ＿Ｍｓｋ＿ＩｎｖデータにＩｎｖ（）関数を適用し、操作９３５で、その結果生じるＩｍｇ＿ＭｓｋデータにＬＥ（）関数を適用し、Ｌｏｗ＿Ｉｍｇ＿Ｍｓｋ出力データをもたらす。
【００８５】
第２のステップでは、この改変形態は、Ｉｍｇ画像の「明るい」部分、及びＭＵ行列内の「暗い」モジュールの位置に対応する部分を計算することを目的とする。
この計算を行うために、操作９４０で、ＭＣ＿ＩｍｇデータをＭａｋ（ＭＣ）関数によって計算し、操作９４５で、ＭＣ＿ＩｍｇデータをＷｈｔ（）関数によって白くする。Ｗｈｔ（）関数は、厳密に黒ではないＭＣ＿Ｉｍｇ画像の全ての要素を白い要素に変換し、ＭＣ＿Ｉｍｇ＿Ｗｈｔ画像を規定するデータをもたらす。
【００８６】
次いで、操作９４７で、ＭＣ＿Ｉｍｇ＿ＷｈｔデータにＬＥ（）関数を適用し、ＭＵの「暗い」モジュールが不透明であり、ＭＣの「明るい」モジュールが透明である画像に対応するＨｉｇｈ＿ＭＣ＿Ｉｍｇデータを得る。操作９５０で、Ｈｉｇｈ＿ＭＣ＿ＩｍｇデータをＩｍｇ画像の画像データとマージし、Ｉｍｇ＿Ｍｓｋデータを得る。
【００８７】
Ｉｍｇ＿Ｍｓｋデータは、ＭＣの「明るい」モジュールに対応するＩｍｇ画像の部分を含む。Ｉｍｇ画像の「明るい」部分、及びＭＣ行列の「明るい」モジュールの位置に対応する部分を含む画像を得るために、操作９５５で、Ｉｍｇ＿ＭｓｋデータにＩｎｖ（）関数を適用し、操作９６０で、その結果生じるＩｍｇ＿Ｍｓｋ＿ＩｎｖデータにＬＥ（）関数を適用し、操作９６５で、Ｉｎｖ（）関数を再び適用し、それによりＨｉｇｈ＿Ｉｍｇ＿Ｍｓｋ出力データがもたらされる。
【００８８】
具体的には、Ｌｏｗ＿Ｉｍｇ＿Ｍｓｋデータは、ＭＵ行列の「暗い」モジュールを表す画像によって覆われるＩｍｇ画像の全ての「暗い」データを含み、Ｈｉｇｈ＿Ｉｍｇ＿Ｍｓｋデータは、ＭＣ行列の「明るい」モジュールの画像によって覆われるＩｍｇ画像の全ての「明るい」データを含む。
【００８９】
コード２４を得るために、操作９７０で、各平面を最も深いものから前面のものへと単純に重ね合わせる必要がある：
−  ＭＵ＿Ｉｍｇデータ
−  Ｌｏｗ＿Ｉｍｇ＿Ｍｓｋデータ
−  ＭＣ＿Ｉｍｇデータ
−  Ｈｉｇｈ＿Ｉｍｇ＿Ｍｓｋデータ。
【００９０】
或いは、Ｉｍｇ画像の画像データは、このようにして作成されるコード２４のバックグラウンドとして使用することができる。実際のところモジュールは、作成されるコード２４の品質に影響を及ぼすことなしに、コード内で与えられる全スペースを占めなくても良いことが分かっている。
【００９１】
従って本出願人は、グラフィックカスタマイゼーションとしてかなり大きい画像を用いてコードを作成する範囲内では、コード２４内でモジュール用に確保される区域よりも僅かに小さい大きさのモジュールを使用することが有利且つ美的であることを見出した。実際のところ、全区域を占めないモジュールにより「非連続的な」モジュールが得られ、この非連続性はモジュールの行及び列間の隙間によって視覚的に示され、非常に良い視覚的描画を与える。
【００９２】
しかしながら、先に見たように、図９の改変形態では、モジュールに充てられた区域をモジュールが満たすように、モジュールの輪郭に沿って画像を正確に切り取る。従って、上記の平面の重ね合わせは隙間を空けたままにしておく。Ｉｍｇ画像をバックグラウンドとして再利用することは、コード２４を破損することなしにこれらの隙間を埋め、更にはその視覚的描画を改善する。
【００９３】
この場合もやはり、コードタイプデータ内に規定される通りにコード２４を与えることができる。従って、平滑化された画像形式のコード２４が要求されることをこれらのデータが示す場合、この操作は上記に定めた順序で平面を平滑化する。平滑化されていない画像が要求される場合、これらのレイヤは直接等提供される。ここでも、宣言型グラフィックスエンジンを使用する場合、コード２４は１組のレイヤ宣言によって定義され得る。
【００９４】
上記の内容では、平滑化とマージャに交互に言及した。これらの操作は、必要に応じて、アルファチャネルの管理によるマージャと同程度に従来の平面の平滑化を目的とする。更に、多くの場合、これらの操作は交わらない、即ち重複しないグラフィック要素を作成するために実行される。この場合、平滑化又はアルファチャネルの管理によるマージャを使用することは問題にならない。これは例えば図９の改変形態のデータの一部に当てはまり、つまりＬｏｗ＿Ｉｍｇ＿ＭｓｋデータとＨｉｇｈ＿Ｉｍｇ＿Ｍｓｋデータとは完全に別々である。
【００９５】
平面の透過性及び分離の使用は、図８の改変形態と図９の改変形態との主な違いを説明する。
図８では、処理がＩｍｇ画像に重点を置き、「明るい」モジュールで「穴あけ」されなければならないＩｍｇ画像の暗い部分が保たれることが望ましい。「明るい」レイヤと「暗い」レイヤに分けることは相補的であり、平面をマージするときＩｍｇ画像を再構築するので、ＬＥ（）関数を使用することは理にかなっている。この改変形態においてＬＥ（）関数以外のツールを使用することは、コード２４内にＩｍｇ画像を保たない異なる結果を与える可能性がある。
【００９６】
図９では、処理がコード有用情報片に重点を置き、Ｉｍｇ画像が「明るい」モジュール及び「暗い」モジュールに従って系統的に切り取られる。ここでは、最終的なコード２４内のＩｍｇ画像の完全性に一切影響を及ぼすことなしにＬＥ（）関数を容易に置換することができる。
【００９７】
更に、画像データが提供される場合、バックグラウンドデータ又はフォアグラウンドデータは滅多に提供されず、このことはこれらの実施形態を近づける。何れにせよ、フォアグラウンドデータ及びバックグラウンドデータは、図８及び図９の改変形態において画像データとして処理することができる。
【００９８】
更に、グループ検出、モジュールについての様々なパターンの使用、及び変換の適用に関するものを含む、図１〜図７に関して説明した全ての改変形態及び選択肢を図８及び図９の改変形態に直接的に適用することができる。これらの実施形態の主な違いは、図１〜図７の実施形態が画像を異なる方法で扱い、よりレイヤの平滑化に依拠するのに対し、図８及び図９の改変形態は透過性を利用する。
【００９９】
記載した全ての改変形態の視覚的描画を改善するために、更なる変化を適用しても良い。実際、本出願人は、バックグラウンド、フォアグラウンド、又は画像の全て若しくは一部を本発明に従って作成されるコード上のフォアグラウンドとして、低い透明度、通常７５％未満で再び適用することが有利であり得ることを見出した。こうすることで、追加情報を変更することなく画像の表示を均質化できるようになる。
【０１００】
更に、殆どの光学読取コードには、形式によって定められ、決して変わらない情報を含む特定の領域がある。これらの領域を通常「ドライバ」と呼ぶ。ドライバの機能は、光学読取コードが撮影されている向きに関わらず、光学読取コードを復号しようと試みるアプリケーションがそのコードを正しい順序で読み取るために、光学読取コードを既定の向きに従って配置できるようにすることである。
【０１０１】
例えば、基本的なＱＲコードタイプのコードでは、左上隅、右上隅、及び左下隅の３つの領域が設けられ、これらの領域は、「暗い」情報の第１の正方形、第１の正方形内にある「明るい」情報の第２の正方形、及び第２の正方形内にある「暗い」情報で埋め尽くされた正方形を含む。これらのドライバを例えば図２に示す。右下に最終的なドライバも含まれている。
【０１０２】
一部の光学読取コードの形式ではこれらのドライバが極めて重要であり、その理由はこれらのドライバなしではコードを正しく読み取ることが不可能だからである。安全上の理由で、ドライバを残りのコードデータのように扱わないことが望ましい場合がある。これは、情報行列に対して行うように、操作７１０でドライバを分けることにより本発明の範囲内で行うことができる。その後、暗い又は暗くない情報とのドライバの対応関係に応じてドライバを平滑化する。
【０１０３】
更に、上記の組合せ及び平滑化は、コード２４の最適な視覚的描画を与えるために行われる。但し、例えば一部の平滑化を反転させることによる、視覚的に最適ではない他の解決策も使用することができる。
【０１０４】
上記の結果は、コードの作成が、反対情報に関連する、グラフィックタイプレイヤと情報レイヤとが交互になったレイヤに基づくことである。例えば明るいバックグラウンドが使用され、その上に暗い情報、次いで暗いフォアグラウンド、及び明るい追加情報等が平滑化される。この平滑化が情報を保つ限り、平滑化、パターン、及び効果のバリエーションは自由である。
【０１０５】
この情報の保護は、ほぼ無限範囲のグラフィックカスタマイゼーションを作成することを可能にし、これは従来考えられなかったことである。更に、本発明はコード及び画像の完全性を保証し、検証又は編集のステップを必要としない。
【０１０６】
最後に、本発明はどんな画像にも適合するので、その大きさが如何なるものでも、ポスタや広告などの任意のグラフィックサポート内に光学読取コードを組み込むことが非常に容易になる。メディアを形成する画像の相対位置を単純に指定する必要があり、コードを組み込むことによりこの画像が修正される。従って読者は、一方で視覚メディアを有し他方でそのメディアに追加されるコードを有するのではもはやなく、コードとそのコードが組み込まれるメディアとの実際のマージを得る。
【０１０７】
当然ながら本発明はＥＡＮ−８、ＥＡＮ−１３、ＵＰＣ−Ａ、ＵＰＣ−Ｅ、ＰＤＦ−４１７又は他のコードなど、二次元でない光学読取コードに適合する。
【図１】
2014526109.tif 000003
【図２】
2014526109.tif 000004
【図３】
2014526109.tif 000005
【図４】
2014526109.tif 000006
【図５】
2014526109.tif 000007
【図６】
2014526109.tif 000008
【図７】
2014526109.tif 000009
【図８】
2014526109.tif 000010
【図９】
2014526109.tif 000011
【国際調査報告】
2014526109.tif 000012
2014526109.tif 000013
2014526109.tif 000014
2014526109.tif 000015