(57)【特許請求の範囲】
【請求項１】
黒セル及び白セルを連続的に二次元に配置した二次元コードを複数、１枚のシートに印刷する印刷手段を有する印刷装置であって、
前記複数の二次元コード間で黒セル及び白セルの大きさは相異なり、各二次元コードが有する前記白セル及び黒セルのセルサイズは、前記二次元コードのサイズが大きくなるにつれて大きくなり、前記二次元コードのサイズが小さくなるにつれて小さくなっており、
前記印刷手段により印刷された前記１枚のシートにおける前記複数の二次元コードそれぞれの品質の評価を行う評価手段と、
前記評価手段により一定の品質が保証されると評価された二次元コードのうち、最も小さいサイズとなる二次元コードを決定する決定手段と
を備えることを特徴とする印刷装置。
【請求項２】
前記評価手段は、前記複数の二次元コードそれぞれについて複数の評価結果に基づき総合評価値を決定することにより、前記複数の二次元コードそれぞれの品質の評価を行う、ことを特徴とする請求項１に記載の印刷装置。
【請求項３】
前記複数の評価結果は、二次元コードが復号可能であるか否かを示す評価結果を含む、ことを特徴とする請求項２に記載の印刷装置。
【請求項４】
前記複数の評価結果は、二次元コードを復号した際に使用された誤り訂正の使用量に基づく評価結果を含む、ことを特徴とする請求項２又は３に記載の印刷装置。
【請求項５】
前記複数の評価結果は、二次元コードのコントラストに基づく評価結果を含む、ことを特徴とする請求項２乃至４のいずれか１項に記載の印刷装置。
【請求項６】
前記一定の品質は、複数の品質基準のうちのいずれかの品質基準であることを特徴とする請求項１乃至５のいずれか１項に記載の印刷装置。
【請求項７】
１枚のシートに印刷された前記複数の二次元コードを読み取る読取手段をさらに備え、
前記評価手段は、前記読取手段により読み取られた結果得られた画像信号を用いて、前記複数の二次元コードそれぞれの品質の評価を行う、
ことを特徴とする請求項１乃至６のいずれか１項に記載の印刷装置。
【請求項８】
黒セル及び白セルを連続的に二次元に配置した二次元コードを複数、１枚のシートに印刷するように印刷装置を制御する印刷制御装置であって、
前記複数の二次元コード間で黒セル及び白セルの大きさは相異なり、各二次元コードが有する前記白セル及び黒セルのセルサイズは、前記二次元コードのサイズが大きくなるにつれて大きくなり、前記二次元コードのサイズが小さくなるにつれて小さくなっており、
前記印刷された前記１枚のシートにおける前記複数の二次元コードそれぞれの品質の評価を行う評価手段と、
前記評価手段により一定の品質が保証されると評価された二次元コードのうち、最も小さいサイズとなる二次元コードを決定する決定手段と
を備えることを特徴とする印刷制御装置。
【請求項９】
前記評価手段は、前記複数の二次元コードそれぞれについて複数の評価結果に基づき総合評価値を決定することにより、前記複数の二次元コードそれぞれの品質の評価を行う、ことを特徴とする請求項８に記載の印刷制御装置。
【請求項１０】
前記複数の評価結果は、二次元コードが復号可能であるか否かを示す評価結果を含む、ことを特徴とする請求項９に記載の印刷制御装置。
【請求項１１】
前記複数の評価結果は、二次元コードを復号した際に使用された誤り訂正の使用量に基づく評価結果を含む、ことを特徴とする請求項９又は１０に記載の印刷制御装置。
【請求項１２】
前記複数の評価結果は、二次元コードのコントラストに基づく評価結果を含む、ことを特徴とする請求項９乃至１１のいずれか１項に記載の印刷制御装置。
【請求項１３】
前記一定の品質は、複数の品質基準のうちのいずれかの品質基準であることを特徴とする請求項８乃至１２のいずれか１項に記載の印刷制御装置。
【請求項１４】
１枚のシートに印刷された前記複数の二次元コードを読み取る読取手段をさらに備え、
前記評価手段は、前記読取手段により読み取られた結果得られた画像信号を用いて、前記複数の二次元コードそれぞれの品質の評価を行う、
ことを特徴とする請求項８乃至１３のいずれか１項に記載の印刷制御装置。
【請求項１５】
黒セル及び白セルを連続的に二次元に配置した二次元コードを複数、１枚のシートに印刷する印刷手段を有し、前記複数の二次元コード間で黒セル及び白セルの大きさは相異なり、各二次元コードが有する前記白セル及び黒セルのセルサイズは、前記二次元コードのサイズが大きくなるにつれて大きくなり、前記二次元コードのサイズが小さくなるにつれて小さくなっている、印刷装置において実行されるデータ処理方法であって、
前記印刷装置の評価手段が、前記印刷された前記１枚のシートにおける前記複数の二次元コードそれぞれの品質の評価を行う評価工程と、
前記印刷装置の決定手段が、前記評価工程において一定の品質が保証されると評価された二次元コードのうち、最も小さいサイズとなる二次元コードを決定する決定工程と
を有することを特徴とするデータ処理方法。
【請求項１６】
前記評価工程は、前記複数の二次元コードそれぞれについて複数の評価結果に基づき総合評価値を決定することにより、前記複数の二次元コードそれぞれの品質の評価を行う、ことを特徴とする請求項１５に記載のデータ処理方法。
【請求項１７】
前記複数の評価結果は、二次元コードが復号可能であるか否かを示す評価結果を含む、ことを特徴とする請求項１６に記載のデータ処理方法。
【請求項１８】
前記複数の評価結果は、二次元コードを復号した際に使用された誤り訂正の使用量に基づく評価結果を含む、ことを特徴とする請求項１６又は１７に記載のデータ処理方法。
【請求項１９】
前記複数の評価結果は、二次元コードのコントラストに基づく評価結果を含む、ことを特徴とする請求項１６乃至１８のいずれか１項に記載のデータ処理方法。
【請求項２０】
前記一定の品質は、複数の品質基準のうちのいずれかの品質基準であることを特徴とする請求項１５乃至１９のいずれか１項に記載のデータ処理方法。
【請求項２１】
前記印刷装置の読取手段が、１枚のシートに印刷された前記複数の二次元コードを読み取る読取工程をさらに備え、
前記評価工程は、前記読取工程において読み取られた結果得られた画像信号を用いて、前記複数の二次元コードそれぞれの品質の評価を行う、
ことを特徴とする請求項１５乃至２０のいずれか１項に記載のデータ処理方法。
【請求項２２】
請求項１５乃至２１のいずれか１項に記載の方法の各工程をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報を画素集合の規則的な配列に符号化したコード情報を生成する印刷装置、印刷制御装置、データ処理方法およびプログラムに関する。
【背景技術】
【０００２】
内容が容易に認識できる文字などの可視読情報に代わり、内容の認識に、元情報に対する何らかの解読処理が必要な符号情報（以下「コード情報」と呼ぶ）を印刷媒体に印刷する情報記載手法が普及しつつある。その代表例はQRコード(R)（登録商標）のような二次元コードである。
【０００３】
文字などの元情報の符号化は、一般に、コンピュータ上で動作するアプリケーションプログラムなどによって行い、コード情報を印刷装置に送って紙などの印刷媒体に印刷する。
【０００４】
印刷されたコード情報は、そのままでは内容を認識することはできないが、読取装置を用いてコード情報を画像として読み込み、画像を復号処理すれば可視読情報が得られる。復号処理は、読み取った画像をコンピュータに入力して、コンピュータ上で動作するアプリケーションプログラムで行う。あるいは、例えば二次元コードに対応した携帯電話のような復号装置、または、スキャナなどの読取装置をもつ複合機(MFP)で復号してもよい。
【０００５】
二次元コードは、一般に、コードを構成する最小単位の情報領域（以下「セル」と呼ぶ）をもつ。そして、予め定義した二種類のセルを、予め定義した規則に従い配置することで、可視読情報を符号化する。通常、二種類のセルは、黒を印刷する黒セルと、何も印刷しない白セルである。従って、符号化する元情報のデータ量（以下「元情報量」と呼ぶ）が大きければ、その分セル数が増え、符号化した状態のデータ量（以下「コードサイズ」と呼ぶ）も大きくなる。
【０００６】
コード情報を印刷媒体上に二次元コードとして印刷する場合、セルは、所定数の画素を含む画素の集合体として構成される。その際、元情報量が同じであれば、セル中に含まれる画素数が多いほど、つまりセルサイズが大きいほどコードサイズは大きくなる。すなわち、最終的なコードサイズは、 元情報量とセルサイズの二つに影響される。なお、元情報には、元情報そのものの他に、元情報の符号化、復号の過程に必要な付加情報（誤り訂正符号など）が含まれる場合がある。
【０００７】
また、出力デバイスにおける微妙なドットの太りや細りが、コード情報の認識精度に大きく影響を与えることが分かっている。MFPによるコード情報の認識を考えた場合、MFPによって印刷物に付加したコード情報は、MFPによって解析する必要がある。そのため、MFP自体のコピー耐性などを考慮した生成パラメータ（セルサイズ、セル形状、誤り訂正量など）によってコード情報を生成し、紙面に埋め込む必要がある。
【０００８】
ところが、MFPの印刷特性は個体差、環境変化、経時変化などによって変動する。この特性変動は、コード情報の認識精度に大きく影響し、MFPよって印刷物に付加したコード情報の認識精度が保証できない場合がある。
【０００９】
MFPの特性変動を抑制する技術としてキャリブレーションが存在する。キャリブレーションは、MFPによってテストチャートを出力し、それを読み取りる。そして、読取結果のデータとテストチャートのデータから色差を求めて、画像処理条件や色材（トナーやインク）の補給信号を補正する技術である（例えば特許文献1参照）。
【００１０】
しかし、キャリブレーションは、印刷する画像そのものを補正する技術で、印刷物に付加するコード情報の生成方法、付加方法を補正して、その認識精度を保証するものではない。そのため、コピー耐性を高める支配的な生成パラメータであるセルサイズに余裕をもたせ、二次元コードなどのコード情報を印刷することになる。
【００１１】
しかし、セルサイズに余裕をもたせれば、コードサイズが大きくなる、セルサイズが大きなコード情報の印刷は印刷物の観察者に不快感を与える、コード情報の配置の自由度を奪う、などの問題が発生する。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開平９−１８５２０９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
本発明は、必要最小限のコードサイズの、よりセルサイズが小さいコード情報を生成することを目的とする。
【課題を解決するための手段】
【００１４】
本発明は、前記の目的を達成する一手段として、以下の構成を備える。
【００１５】
本発明にかかる印刷装置は、黒セル及び白セルを連続的に二次元に配置した二次元コードを複数、１枚のシートに印刷する印刷手段を有する印刷装置であって、
前記複数の二次元コード間で黒セル及び白セルの大きさは相異なり、各二次元コードが有する前記白セル及び黒セルのセルサイズは、前記二次元コードのサイズが大きくなるにつれて大きくなり、前記二次元コードのサイズが小さくなるにつれて小さくなっており、前記印刷手段により印刷された前記１枚のシートにおける前記複数の二次元コードそれぞれの品質の評価を行う評価手段と、前記評価手段により一定の品質が保証されると評価された二次元コードのうち、最も小さいサイズとなる二次元コードを決定する決定手段とを備えることを特徴とする。
【発明の効果】
【００１６】
本発明によれば、必要最小限のコードサイズの、よりセルサイズが小さいコード情報を生成することができる。従って、セルサイズに余裕をもたせる必要がないので、コードサイズが大きくなる、セルサイズが大きなコード情報の印刷は印刷物の観察者に不快感を与える、コード情報の配置の自由度を奪う、などの問題を抑制することができる。
【図面の簡単な説明】
【００１７】
【図１】実施例のMFPの構成例を示すブロック図。
【図２】コード情報の印刷を説明するフローチャート。
【図３】パラメータテーブルの一例を示す図。
【図４】文字列の元情報を符号化してコード情報のシンボルを生成する処理を示すフローチャート。
【図５】セルの状況に応じた、セルサイズごとに最適なセル形状の定義を説明する図。
【図６】コード情報の付加手順を示すフローチャート。
【図７】コード情報の復号を説明するフローチャート。
【図８】QRコード(R)を例としてコード情報の復号を説明する図。
【図９】セル定義テーブルの調整を説明するフローチャート。
【図１０】調整チャートの一例を示す図。
【図１１】調整チャートのセルの解析とセル定義テーブルの更新を説明する図。
【図１２】セルサイズ決定テーブルの調整を説明するフローチャート。
【図１３】セルサイズ決定テーブルの調整チャートの一例を示す図。
【図１４】各セルサイズで構成されたコード情報のシンボル品質を評価する処理例をフローチャート。
【図１５】「X」世代のシンボル品質の評価結果の一例を示す図。
【図１６】実施例2のドットの太り、細りを検出してセル定義テーブルを更新する処理を示すフローチャート。
【図１７】調整チャートの一例を示す図。
【図１８】太り、細り情報によってセル形状テーブルを更新する処理の一例を説明する図。
【発明を実施するための形態】
【００１８】
以下、本発明にかかる実施例の画像処理を図面を参照して詳細に説明する。
［実施例１］
［画像処理装置の概要］
図1は実施例のMFPの構成例を示すブロック図である。
【００１９】
ビデオコントローラ102は、LCDおよびタッチパネルを備える操作パネル101から入力される指示に従い、画像処理や各種制御を行う。例えば、コピーが指示された場合は、スキャナ100で原稿画像を読み取り、画像処理して、プリンタエンジン105に出力する。また、ファクシミリ送信が指示された場合は、スキャナ100で原稿画像を読み取り、画像処理して、送受信部104に出力する。
【００２０】
また、ビデオコントローラ102は、ネットワーク118を介して、コンピュータ116からネットワークプリントを指示された場合は、送受信部104によって印刷ジョブを受信し、画像処理して、プリンタエンジン105に出力する。また、コンピュータ116からネットワークスキャンを指示された場合は、スキャナ100で原稿画像を読み取り、画像処理して、送受信部104に出力する。
【００２１】
さらに、ビデオコントローラ102は、図示しない電話回線から受信したファクシミリ画像を、画像処理して、プリンタエンジン105に出力する。
【００２２】
ビデオコントローラ102は、上記の処理を実行する際に必要に応じて、ハードディスクドライブ(HDD)などの記憶装置103に画像データを保存する。また、操作パネル101やコンピュータ116から画像データの保存を指示された場合もHDD 103に画像データを保存する。
【００２３】
ビデオコントローラ102のCPU 108は、RAM 109をワークメモリとして、プログラムROM 106やHDD 103に格納されたデータ処理や制御用のプログラムを実行し、システムバス119を介してMFPの各構成を制御する。入力部インタフェイス(I/F) 110はスキャナ100とのインタフェイス。設定部I/F 111は操作パネルとのインタフェイス。出力部I/F 112はプリンタエンジン105とのインタフェイス。送受信I/F 113は送受信部104とのインタフェイス。記憶部I/F 114はHDD 103とのインタフェイスである。また、タイマ115は時計機能を提供する。
【００２４】
また、操作パネル101は、MFPの動作条件の設定や動作状態の表示にも利用する。
［コード情報の印刷］
図2はコード情報の印刷を説明するフローチャートで、CPU 108が実行する処理である。
【００２５】
まず、コード情報に符号化する元情報を取得する(S1001)。元情報は、ユーザや、MFPの管理者（以下「管理者」と呼ぶ）により、操作パネル101、あるいは、MFPに接続可能なコンピュータ116上の専用アプリケーションまたはプリンタドライバ（以下「アプリケーション」と呼ぶ）などを利用して入力される。元情報は、文字などの情報を直接入力してもよいし、データの所在場所（例えばネットワーク118上のサーバ、HDD 103、または、コンピュータ116のローカルドライブに保存したファイルのパス名）を指定してもよい。データの所在場所が指定された場合、CPU 108またはアプリケーションは、そのファイルをダウンロードする。あるいは、ユーザID、日時、プリントジョブIDなとのメタ情報として元情報を指定してもよい。
【００２６】
次に、符号化パラメータを取得する(S1002)。符号化パラメータには、ユーザや管理者が指定するメタパラメータと、MFPやコンピュータ116が保持するテーブルから取得する生成パラメータがあり、メタパラメータは上記のテーブルから生成パラメータを取得する際に利用される。ユーザや管理者は、操作パネル101やアプリケーションによってメタパラメータを入力する。なお、メタパラメータは、ユーザや管理者が直感的に把握でき、生成パラメータとの関係性があれば何でも構わない。
【００２７】
ここでは、MFPにより「X」世代コピーしたときのコード情報の品質「Y」をメタパラメータとする。コード情報の品質としては、例えばJIS X 0510に基づく印刷品質を考える。この印刷品質は、復号可能性、エラー訂正量の使用量、セルの太りと細り、軸の歪み、シンボルコントラストの五種類の指標の評価から、最終評価を導出する仕組みで、総合的な観点から二次元コードなどのコード情報を評価することができる。
【００２８】
つまり、CPU 108は、メタパラメータ「X, Y」に基づき、メタパラメータと生成パラメータの関係を示すテーブル（以下「パラメータテーブル」と呼ぶ）から生成パラメータを取得する(S1002)。ここでは、エラー訂正量とセルサイズが生成パラメータである。
【００２９】
エラー訂正量は、コード情報の汚れなどによって誤った復号を行った際に訂正可能なエラー量を表す。エラー訂正量を増やせば、汚れなどにロバストになるが、エラー訂正情報を含める分、コード情報の面積が大きくなる。なお、エラー訂正方法には、リードソロモン符号やLDPC(Low Density Parity Check)コードなどが存在する。また、セルサイズは、前述したように、コード情報を構成する最小単位の情報領域であるセルの大きさである。
【００３０】
図3はパラメータテーブルの一例を示す図で、エラー訂正量が「中」の場合のメタパラメータ「X, Y」に対応するセルサイズを表す。
【００３１】
図3に示すようなテーブルがエラー訂正量ごとに存在し、エラー訂正量ごとに最適なセルサイズが存在する。エラー訂正量とセルサイズによって、コードサイズが決定する。コードサイズは小さい方が、印刷物の見た目の印象を損わず、コード情報の配置の自由度も高まる。そこで、CPU 108は、エラー訂正量と最適なセルサイズの組み合わせの中で、最小のコードサイズになる組み合わせを生成パラメータとして取得する。なお、パラメータテーブルの生成方法は後述する。
【００３２】
次に、生成パラメータに基づき元情報を符号化してコード情報を生成する(S1003)。
【００３３】
図4は文字列の元情報を符号化してコード情報のシンボル(JIS X 0510)を生成する処理(S1003)を示すフローチャートである。
【００３４】
まず、符号化する、種類が異なる文字を識別するために入力データ列を分析する。また、誤り検出および誤り訂正量を選択し、入力データ列と誤り訂正情報が収容できる最小型番を選択する(S900)。
【００３５】
次に、入力データ列を所定のビット列に変換し、必要に応じてデータのモード（数字、英数字、8ビットバイト、漢字等）を表す指示子や、終端パターンを付加して、所定ビット数のデータコード語に変換する(S901)。続いて、誤り訂正を行うために、型番および誤り訂正レベルに応じて、データコード語列を所定のブロック数に分割し、ブロックごとに誤り訂正コード語を生成し、データコード語列の後に付加する(S902)。
【００３６】
次に、ステップS902で得られる各ブロックのデータコード語列を接続し、さらに各ブロックの誤り訂正コード語、必要に応じて剰余コード語を後に付加する(S903)。
【００３７】
次に、位置検出パターン、分離パターン、タイミングパターンおよび位置合わせパターン、そしてコード語列をマトリクスに配置したコード語モジュールを生成する(S904)。続いて、シンボルの符号化領域に対して最適なマスクパターンを選択し、そのマスクパターンとステップS904で得たコード語モジュールを排他的論理和(XOR)演算し、コード語モジュールをマスク処理する(S905)。
【００３８】
次に、ステップS905でマスク処理したコード語モジュールの形式情報および型番情報を生成し、コード語モジュールに付加してコード情報を生成する(S906)。最後に、ステップS906で得たコード情報を構成するセル形状を適応的に変更する(S907)。
【００３９】
通常、コード情報の生成はステップS906で終了するが、本実施例は、MFPの性能に応じた最適なコード情報を生成するために、ステップS907を備える。ディジタル的なコード情報としては、ステップS906で得るコード情報は完璧なものである。しかし、コード情報を印刷すると、プリンタの特性によってセルが伸縮するなど変形が生じ、セル形状が理想的なものにならない。そこで、セルの変形を改善するために、印刷後のセル形状が理想的な形状に近づくように、ディジタル的なセル形状を適応的に変更する。
【００４０】
セルの種類はディジタル的には白セルと黒セルの二種類しか存在しないが、印刷したセルの変形は、白セルと黒セルの違いだけではなく、周辺のセルの状況によっても変化する。また、最適なセル形状はセルサイズによっても変化する。そこで、セルの状況に応じて、セルサイズごとに最適なセル形状を決定するテーブルを参照して、ステップS906で生成したコード情報のセルを最適なセル形状に変更する。
【００４１】
図5はセルの状況に応じた、セルサイズごとに最適なセル形状の定義を説明する図である。図5に示す定義に対応するテーブルを用いて、注目セルごとに、その周囲8セルの状況に応じて、最適なセル形状に変更する。なお、当該テーブルの生成は後述する。
【００４２】
次に、図2において、画像情報を取得する(S1004)。取得する画像情報は、スキャナ100によって原稿画像をスキャンした画像、コンピュータ116などからネットワーク118経由で受信した画像、ファクシミリ受信した画像などである。
【００４３】
次に、取得した画像にコード情報を付加する(S1005)。ユーザや管理者が操作パネル101やコンピュータ116上のアプリケーションによって、コード情報の付加位置を予め指定している場合は、画像上の指定位置にコード情報を付加する。コード情報を付加する際、画像上の有用な情報が消える可能性がある。これを避けるために、画像を強制的に縮小し、空き領域（余白）を作成して、ユーザや管理者に、その空き領域の位置を付加場所に指定させてコード情報を付加してもよい。また、付加位置の指定がない場合は、適当な空き領域を探索し、そこへコード情報を付加する。
【００４４】
図6はコード情報の付加手順を示すフローチャートである。
【００４５】
まず、画像の空き領域を探索する(S1051)。空き領域とは、画像の白地部分や下地部分などとみなされる有用な情報がない領域である。その際、探索効率を向上するために、画像をダウンサンプリングして解像度を低下した画像で探索しても構わない。
【００４６】
次に、検出した空き領域の中に、コード情報を付加可能な面積をもつ空き領域があるか否かを判定する(S1052)。そのような空き領域が存在すれば、当該空き領域にコード情報を付加する(S1053)。
【００４７】
一方、コード情報を付加可能な面積をもつ空き領域がない場合は、管理者が強制挿入モードを設定しているか否かを判定する(S1054)。強制挿入モードは、印刷物を管理するなどの目的で、印刷日時、プリントジョブID、印刷者のユーザIDをコード情報として印刷物に強制的に付加する機能である。管理者は、操作パネル101やコンピュータ116上のアプリケーションから強制挿入モードを指定することができる。
【００４８】
強制挿入モードが設定されている場合は、有用な情報を損う程度が低い、面積が最大の空き領域を探し、当該空き領域にコード情報を付加する(S1055)。あるいは、画像を縮小して強制的に、コード情報を付加可能な空き領域を作成し、そこへコード情報を付加してもよい。
【００４９】
強制挿入モードが設定されていない場合は、コード情報を付加可能な空き領域がないことをユーザに通知する(S1056)。この通知は、操作パネル101で行うか、コンピュータ116で行う（例えばモニタに表示する）が、ユーザの利便性に合ったユーザインタフェイスを利用すればよい。そして、通知に使用したのと同じユーザインタフェイスを利用して、コード情報を空き領域に収める処置を提示する(S1057)。目標のコピー耐性や品質の設定値を下げる、コード情報にエンコードする情報量を減らす、などの処置が考えられるが、その処置と具体的な数値をユーザに提示する。また、画像を縮小してコード情報を挿入する方法も可能であることを提示する。ステップS1057の後は、図2のステップS1001に戻り、ステップS1001以降の処理をやり直す。ただし、変更すべき箇所だけを変更すれば済むようにして、ユーザが、コード情報を印刷するための設定を繰り返さないようにすることが好ましい。
【００５０】
次に、図2において、コード情報を付加した画像を印刷する(S1006)。この印刷は、プリンタエンジン105を用いて、通常の印刷と同様に行う。
【００５１】
以上が、コード情報を印刷する処理手順である。これにより、ユーザまたは管理者が要求する品質のコード情報を付加した画像を印刷することができる。
［コード情報の復号］
図7はコード情報の復号を説明するフローチャートで、CPU 108が実行する処理である。
【００５２】
まず、画像情報を取得する(S2001)。取得する画像情報は、スキャナ100によって原稿画像をスキャンした画像、コンピュータ116などからネットワーク118経由で受信した画像、ファクシミリ受信した画像などである。
【００５３】
次に、コード情報を探索し(S2002)、コード情報を検出したか否かを判定する(S2003)。
【００５４】
通常、コード情報には探索用の特徴が存在し、それを手掛かりに、取得した画像に含まれるコード情報を探索する。例えば、QRコード(R)の探索用の位置検出パターンは、コード情報の四隅のうち三隅に配置された同一の位置検出要素パターンから構成される。その際、探索効率を向上するために、画像をダウンサンプリングして解像度を低下した画像で探索しても構わない。
【００５５】
コード情報を検出しなかった場合は処理を終了する。また、コード情報を検出した場合は、コード情報を復号する(S2003)。
【００５６】
図8はQRコード(R)を例としてコード情報の復号を説明する図である。
【００５７】
まず、検出した位置検出パターンに隣接する形式情報を復元して、コード情報に適用された誤り訂正レベルおよびマスクパターンを得る(S301)。そして、コード情報の型番を決定し(S302)、形式情報から得られるマスクパターンを使って符号化領域ビットパターンを排他的論理和(XOR)演算することでマスクを解除する(S303)。
【００５８】
次に、型番に対応する配置規則に従い、シンボルキャラクタを読み取り、データおよび誤り訂正コード語を復元する(S304)。そして、データの誤りを検出し(S305)、検出した誤りを訂正する(S306)。
【００５９】
次に、モード指示子および文字数指示子に基づき、データをセグメント分割して、データコード語を復元する(S307)。最後に、仕様モードに基づき、データコード語を文字に復号して出力する(S308)。
【００６０】
こうして復号されるコード情報は、その復号結果を画像処理に反映する、復号した文字列をユーザインタフェイスに表示する、などに利用される。これにより、ユーザや管理者は、コード情報を有効に活用することができる。
［コード情報に関するキャリブレーション］
次に、MFPに特性変動が生じた場合に、認識精度を保証するためのコード情報に関するキャリブレーションを説明する。
【００６１】
ここでは、プリンタエンジン105の印刷特性、印刷状態に合わせるため、図3に示すパラメータテーブルと、図5に示す定義に対応するテーブルを調整するキャリブレーションの一例を説明する。なお、以下では、図3に示すパラメータテーブルを「セルサイズ決定テーブル」、図5に示す定義に対応するテーブルを「セル定義テーブル」と呼ぶ場合がある。
【００６２】
これらテーブルの調整は、まず、セル定義テーブルを調整して最適なセルを決定し、その後、セルサイズ決定テーブルを調整してデバイスの実力に応じたセルサイズを決定することが望ましい。しかし、調整の順序はこれに限定されるものではなく、どちらのテーブルを先に調整してもよい。
【００６３】
また、セル定義テーブルおよびセルサイズ決定テーブルはHDD 103に保持される。そして、コード情報に関するキャリブレーションの実行は、管理者が操作パネル101を使用してを指示する。この指示に対して、CPU 108は、プログラムROM 106またはHDD 103に格納された調整プログラムを実行し、これらテーブルを調整し、HDD 103のこれらテーブルを更新する。
●セル定義テーブルの調整
図9はセル定義テーブルの調整を説明するフローチャートである。
【００６４】
まず、データROM 107またはHDD 103からセル定義テーブルの調整チャートデータを取得する(S3010)。
【００６５】
図10は調整チャートの一例を示す図である。調整チャートは、セル定義テーブルが表現するセルのパターン（図5参照）のすべてを印刷したものである。
【００６６】
次に、データROM 107またはHDD 103からプリンタエンジン105のセル定義テーブルを取得する(S3011)。なお、調整後のセル定義テーブルはHDD 103に格納するが、初期値（未調整）のセル定義テーブルはデータROM 107に格納されている。
【００６７】
次に、取得したセル定義テーブルを用いて、調整チャートデータをプリンタエンジン105に出力して、調整チャートを印刷する(S3012)。そして、印刷した調整チャートの画像をスキャナ100により読み取り、読み取った調整チャートの画像をRAM 109に画像記録信号として記録する(S3013)。そして、画像記録信号によって表現される調整チャートのセルを解析し(S3014)、解析結果に基づきセル定義テーブルを更新する(S3015)。
【００６８】
図11は調整チャートのセルの解析(S3014)とセル定義テーブルの更新(S3015)を説明する図で、図11(a)は、画像記録信号として表現される黒セル状況1、セルサイズ3（図5参照）のセルの一例を示す。図11(b)は、図11(a)に示す画像記録信号を二値化して得られるセル形状を示す。図11(c)は理想のセル形状を示す。図11(d)はセル定義テーブルに設定されたセル形状を示す。
【００６９】
二値化セル形状(b)と、理想セル形状(c)の差分から得られる信号を定義されたセル形状(d)に反映して、図11(e)に示す新たなセル形状の定義を生成する。
【００７０】
定義されたセル形状に差分を反映するとは、例えば二値化セル形状(b)において水平および垂直方向に黒画素を追跡して、理想セル形状(c)に対する黒画素の増減を差分として検出する。そして、検出した差分が例えば右辺の中央で＋1ならば、定義されたセル形状(d)の右辺の中央の黒画素を−1するという逆算により、新たなセル形状の定義(e)を生成する。
【００７１】
以上の調整を、セル状況およびセルサイズで表される、すべてのセル形状に施し、プリンタエンジン105の現在の印刷性能に最適なセル形状を導出する。
【００７２】
上述したセル定義テーブルの調整は、一回実行することで所望の調整結果を得ることが可能である。しかし、より精度が高い調整結果を得るために、複数回調整を実行してもよい。例えば、調整チャートの読取結果から得られる二値化セル形状が、理想セル形状に一致するまで繰り返してもよい。
●セルサイズ決定テーブルの調整
図12はセルサイズ決定テーブルの調整を説明するフローチャートである。
【００７３】
まず、データROM 107またはHDD 103からセルサイズ決定テーブルの調整チャートデータを取得する(S3030)。
【００７４】
図13はセルサイズ決定テーブルの調整チャートの一例を示す図で、セルサイズごとにエラー訂正量を「中」として情報を付加した、調整の標準コードが印刷される。なお、調整用の標準コードとは、調整用に構成された情報コードで、コードサイズを表現する領域内に黒セルおよび白セルが一定に分散するようにセルが構成された情報コードである。
【００７５】
次に、セル定義テーブルを用いて、調整チャートデータをプリンタエンジン105に出力して、調整チャートを印刷する(S3031)。そして、印刷した調整チャートの画像をスキャナ100により読み込み、読み込んだ調整チャートの画像をRAM 109に画像記録信号として記録する(S3032)。
【００７６】
なお、調整チャートを印刷する際のセル定義テーブルは、理想形状の（または理想形状に近い）セル形状を印刷するために、プリンタエンジン105の印刷能力に応じてセル形状を定義したものである。言い換えれば、上述のセル定義テーブルの調整によって、セル形状の定義が調整されたセル定義テーブルが好ましい。
【００７７】
次に、調整チャートの画像記録信号と調整チャートデータの一致の程度を解析して、各セルサイズにより構成されたコード情報ごとに印刷媒体上の読取品質（シンボル品質）を評価する(S3033)。なお、評価方法は後述する。そして、評価結果に基づき、各セルサイズの情報コードごとに「X」世代のセルサイズ決定テーブルを更新する(S3034)。
【００７８】
次に、規定の世代分の更新が終了したか否かを判定する(S3035)。「X」世代とは、何度印刷されたか（何度読み込まれたか）の回数を意味し、例えばステップS3031で印刷した調整チャートを読み込んだ場合はX=1であり、第1世代である。規定の世代分の更新が終了した場合は処理を終了する。また、規定の世代分の更新が未了（未更新の世代がある）ならば、RAM 109に保存した記録画像信号をプリントエンジン105に出力し、次世代の調整チャートを印刷する(S3036)。そして、ステップS3032へ戻り、「X+1」世代について上記の処理を繰り返す。
【００７９】
図14は各セルサイズで構成されたコード情報のシンボル品質を評価する処理例をフローチャートで、調整チャート上の各コード情報ごとに実施する処理を示す。なお、図14に示すシンボル品質の評価フローは、JIS規格に基づき印刷品質を評価する方法である。
【００８０】
まず、調整チャート上の位置が特定されたコード情報について、JIS規格に規定された復号アルゴリズムによって復号可能か否かを判定する(S3050)。ここで復号できる場合は等級A、復号できない場合は等級Fと評価する。
【００８１】
次に、コード情報についてシンボルコントラストSCを評価する(S3051)。具体的な評価方法は、コード情報（シンボル）内の最も暗い部分の画素10%と明るい部分の画素10%の反射率の平均を計算し、両者の平均値の違いをシンボルコントラストSCとして算出し、下記により等級A〜Fを決定する。なお、JIS規格において、A〜Dの四等級が合格、F等級が不合格と定義され、E等級は存在しない。
【００８２】
等級A：SC≧70%
等級B：SC≧55%
等級C：SC≧40%
等級D：SC≧20%
等級F：SC＜20%
次に、モジュールの伸縮を評価する(S3052)。
【００８３】
モジュールの伸縮とは、コード情報の水平または垂直方向への伸縮割合で、まず、タイミングパターンの平均セルピッチに対する最大伸縮割合D'を以下の式で求める。なお、タイミングパターンとは、QRコード(R)のセルの水平および垂直方向の位置決めを行うための所定パターンデータ列である。
【００８４】
D = 最大伸縮セル/平均セルピッチ
D'= (D - 0.5)/0.15
そして、D'を基に下記により等級A〜Fを決定する。
【００８５】
等級A：-0.50＜D'＜0.50
等級B：-0.70＜D'＜0.70
等級C：-0.85＜D'＜0.85
等級D：-1.00＜D'＜1.00
等級F：D'≦-1.00 or D'≧1.00
次に、コード情報の軸の非均一性を評価する(S3053)。軸の非均一性の評価値ANは、コード情報の中心間の距離Xavg（コード情報のX方向の距離）、Uavg（コード情報のY方向の距離）を用いて次式で表現される。
【００８６】
AN = |(Xavg - Yavg)/(Xavg - Yavg)/2|
そして、ANを基に下記により等級A〜Fを決定する。
【００８７】
等級A：AN≦0.06
等級B：AN≦0.08
等級C：AN≦0.10
等級D：AN≦0.12
等級F：AN＞0.12
次に、未使用誤り訂正を評価する(S3054)。コード情報を復号し、誤り訂正の使用量から評価する。未使用誤り訂正量は以下の式で求める。
【００８８】
UEC = 1.0 - 2t/d
ここで、tはコード情報を読み取った際の実際の誤り数
dはコードに設定されている誤り訂正コード語数
そして、UECを基に下記により等級A〜Fを決定する。
【００８９】
等級A：UEC≧0.62
等級B：UEC≧0.50
等級C：UEC≧0.37
等級D：UEC≧0.25
等級F：UEC＜0.25
次に、ステップS3050〜S3054で求められた評価値を基に、コード情報の総合評価値を決定する(S3055)。例えば、ステップS3050〜S3054で求めた評価値のワーストケースを総合評価値にすればよい。
【００９０】
以上の処理を、ステップS3032で読み取った調整チャート上のすべてのコード情報について行い、各コード情報の評価値を求める。なお、調整チャート上のコード情報はセルサイズごとに表現されている。図15は「X」世代のシンボル品質の評価結果の一例を示す図である。
【００９１】
この評価結果を基に「X」世代のセルサイズ決定テーブルを更新する(S3034)。図15に示すセルサイズと総合評価を基に「X」世代の品質を保証する場合、品質Aを保証するにはセルサイズは8以上になる。また、品質Bを保証するにはセルサイズは7以上になる。以上の判断を、品質A〜Fについて行い、セルサイズ決定テーブルを更新する。
【００９２】
上記では、コード情報の印刷品質を保証する調整を、代表的な二次元コードであるQRコード(R)に基づき説明した。そのため、JISの評価基準による評価方法を適用したが、セルサイズ決定テーブルとその調整は、JISの評価基準に限るわけではない。当然、QRコード(R)以外の二次元コードにJISの評価基準は適用でない。その場合、例えばコード情報を構成するセルの誤判定結果、または、印刷セルの太り易さ、細り易さなどを基に、コード情報の評価基準を設定して評価することで、印刷品質を保証する。
【００９３】
このように、コード情報の印刷用のキャリブレーションを行うことで、コード情報の印刷に最適なセル定義テーブルおよびセルサイズ決定テーブルを得ることができる。従って、必要最小限のコードサイズの、よりセルサイズが小さいコード情報を生成することができ、印刷物の観察者に与える不快感を軽減し、コード情報の配置の自由度を拡大することができる。
【００９４】
［実施例２］
以下、本発明にかかる実施例2の画像処理を説明する。なお、実施例2において、実施例1と略同様の構成については、同一符号を付して、その詳細説明を省略する。
【００９５】
実施例1のセル定義テーブルの調整では、印刷した調整チャートのすべてのコード情報のセル形状を解析（実測）してセル形状の定義を更新した。セルの印刷品質は、プリンタエンジン105によるドットの太り、細りといった性能に大きく依存する。従って、プリンタエンジン105のドットの太り、細りを検出してセル形状の定義を更新することも可能である。
【００９６】
図16はプリンタエンジン105のドットの太り、細りを検出してセル定義テーブルを更新する処理を示すフローチャートで、CPU 108が実行する処理である。
【００９７】
まず、データROM 107またはHDD 103からセル定義テーブルの調整チャートデータを取得する(S3100)。
【００９８】
図17は調整チャートの一例を示す図である。符号3201は、各セルサイズで形成された、上述した調整用の標準コードを表す。符号3200および3203は、各セルサイズに応じた太さをもつ水平線および垂直線を表す。
【００９９】
次に、調整チャートデータをプリンタエンジン105に出力して、調整チャートを印刷する(S3101)。そして、印刷した調整チャートをスキャナ100により読み取り、読み取った調整チャートの画像をRAM 109に画像記録信号として記録する(S3012)。そして、画像記録信号から、調整チャート上のコード情報の位置を特定し、そのコード情報パターンを抽出する(S3103)。調整チャート上には、セルサイズごとのコード情報が存在し、セルサイズごとにコード情報パターンを抽出する。
【０１００】
次に、抽出したコード情報パターン（以下「抽出パターン」と呼ぶ）と調整チャートデータのコード情報パターン（以下「印刷パターン］と呼ぶ）を比較する(S3104)。比較は、各セルサイズによって構成されるコード情報パターンごとに実施する。比較の結果、抽出パターンと印刷パターンがすべて一致する場合は、調整を終了する。
【０１０１】
一方、比較の結果、抽出パターンと印刷パターンに不一致があれば、読み取った調整チャートの画像を用いて、太り細り情報を検出する(S3106)。つまり、図17に示す各セルサイズに応じた太さをもつ水平線3200および垂直線3203から線の太り細りを検出する。なお、水平線3200からは垂直方向の太り、細り情報を、垂直線3203からは水平方向の太り、細り情報を検出する。勿論、太り、細り情報はセルサイズごとに検出する。
【０１０２】
次に、抽出パターンと印刷パターンが不一致のセルサイズのコード情報（コード情報はセルサイズごとに構成されている）について、検出した太り、細り情報を用いてセル定義テーブルを更新する(S3108)。
【０１０３】
図18は太り、細り情報によってセル形状テーブルを更新する処理の一例を説明する図で、黒セル状況1（図5参照） におけるプリンタエンジン105の印刷性能に依存する理想セル形状の特性を示す。
【０１０４】
なお、プリントエンジン105の印刷性能に依存する理想セル形状の特性は、例えばセル状況1、かつ、デフォルトのセルサイズ（ここでは最大のセルサイズ）に関して、図9を用いて説明したセル定義テーブルの調整と同じ処理を用いて得ることが可能である。
【０１０５】
セル状況1における各セルの定義は、理想セル形状を各セルサイズに解像度変換することで得られる。例えば、ステップS3106で、セルサイズ3のコード情報の太り、細り情報として水平方向に「＋ΔT3」が得られたとする。図18に示す理想セル形状の画像サイズを、一旦「−ΔT3」倍し、セルサイズ3へ解像度変換する。これにより、セルサイズ3のセル定義が得られ、新たなセルサイズ3のセル定義としてセル定義テーブルを更新する。この更新処理を、ステップS3105で、抽出パターンと印刷パターンが一致しないセルサイズをもつセル定義に実施する。
【０１０６】
次に、更新したセル形状テーブルを用いて、再び調整チャートを印刷し(S3109)、ステップS3102へ戻る。ステップS3109で印刷した調整用チャートは、ステップS3102で再び読み取られ、ステップS3105で抽出パターンと印刷パターンがすべて一致するまで、ステップS3102〜S3109の処理を繰り返す。
【０１０７】
このようにして、プリンタエンジン105の太り細り性能に応じてセル定義テーブルを更新することができる。
【０１０８】
なお、ステップS3105において、抽出パターンと印刷パターンのすべての一致を得るのが難しい場合、抽出パターンと印刷パターンが一致する割合が所定値以上であれば、すべて一致とみなすこともできる。あるいは、コード情報すべてが復号可能、または、訂正コードの使用量が所定値以下であれば、すべて一致するとみなしてもよい。
【０１０９】
また、セル定義テーブルを最適化したとしても、プリンタエンジン105の性能に限界があり、抽出パターンと印刷パターンのすべて一致が得られない場合がある。そのような場合を考慮して、ステップS3105の判定を規定回数実行した場合は処理を強制終了するようにしてもよい。
【０１１０】
［他の実施例］
なお、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタなど）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、複写機、ファクシミリ装置など）に適用してもよい。
【０１１１】
また、本発明の目的は、上記実施例の機能を実現するソフトウェアを記録した記憶媒体（記録媒体）をシステムまたは装置に供給し、そのシステムまたは装置のコンピュータ（CPUやMPU）が前記ソフトウェアを実行することでも達成される。この場合、記憶媒体から読み出されたソフトウェア自体が上記実施例の機能を実現することになり、そのソフトウェアを記憶した記憶媒体は本発明を構成する。
【０１１２】
また、前記ソフトウェアの実行により上記機能が実現されるだけでなく、そのソフトウェアの指示により、コンピュータ上で稼働するオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、それによって上記機能が実現される場合も含む。
【０１１３】
また、前記ソフトウェアがコンピュータに接続された機能拡張カードやユニットのメモリに書き込まれ、そのソフトウェアの指示により、前記カードやユニットのCPUなどが実際の処理の一部または全部を行い、それによって上記機能が実現される場合も含む。
【０１１４】
本発明を前記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するソフトウェアが格納される。
【図１】
0005518140.tif 000002
【図２】
0005518140.tif 000003
【図３】
0005518140.tif 000004
【図４】
0005518140.tif 000005
【図５】
0005518140.tif 000006
【図６】
0005518140.tif 000007
【図７】
0005518140.tif 000008
【図８】
0005518140.tif 000009
【図９】
0005518140.tif 000010
【図１０】
0005518140.tif 000011
【図１１】
0005518140.tif 000012
【図１２】
0005518140.tif 000013
【図１３】
0005518140.tif 000014
【図１４】
0005518140.tif 000015
【図１５】
0005518140.tif 000016
【図１６】
0005518140.tif 000017
【図１７】
0005518140.tif 000018
【図１８】
0005518140.tif 000019