(57)【要約】【課題】本発明の課題は、符号画像パターンの復号処理における復号性能を向上させ、復号処理の負荷を小さくすることができる装置を提供することである。【解決手段】上記課題を解決するために、本発明に係る装置は、検出用パターンを持つ符号画像パターンを復号化する装置であって、画像から検出用パターンを検出する検出手段と、検出された検出用パターンにより位置の特定される符号画像パターンの濃度を、検出された検出用パターンの濃度に基づいて、補正する補正手段と、濃度を補正した後の符号画像パターンを復号化する復号化手段とを備えることを特徴とする。【選択図】図９
2010213257.tif 000002
【特許請求の範囲】
【請求項１】
検出用パターンを持つ符号画像パターンを復号化する装置であって、
画像から検出用パターンを検出する検出手段と、
前記検出された検出用パターンにより位置の特定される前記符号画像パターンの濃度を、前記検出された検出用パターンの濃度に基づいて、補正する補正手段と、
前記濃度を補正した後の符号画像パターンを復号化する復号化手段とを備えることを特徴とする装置。
【請求項２】
前記補正手段は、前記画像のうち、前記符号画像パターンのみの濃度を補正することを特徴とする請求項１に記載の装置。
【請求項３】
前記画像は、原稿をスキャンし、それにより得られた画像に対して画像処理が行われた後の画像であり、
前記補正手段は、
前記検出された検出用パターンの濃度に加えて、前記スキャン時のパラメータ、前記画像処理のパラメータをも用いて、
前記補正を行うにあたっての補正量を決定することを特徴とする請求項２に記載の装置。
【請求項４】
検出用パターンを持つ符号画像パターンを復号化する方法であって、
画像から検出用パターンを検出する検出ステップと、
前記検出された検出用パターンにより位置の特定される前記符号画像パターンの濃度を、前記検出された検出用パターンの濃度に基づいて、補正する補正ステップと、
前記濃度を補正した後の符号画像パターンを復号化する復号化ステップとを備えることを特徴とする方法。
【請求項５】
前記補正ステップは、前記画像のうち、前記符号画像パターンのみの濃度を補正することを特徴とする請求項４に記載の方法。
【請求項６】
前記画像は、原稿をスキャンし、それにより得られた画像に対して画像処理が行われた後の画像であり、
前記補正ステップは、
前記検出された検出用パターンの濃度に加えて、前記スキャン時のパラメータ、前記画像処理のパラメータをも用いて、
前記補正を行うにあたっての補正量を決定することを特徴とする請求項５に記載の方法。
【請求項７】
請求項４乃至６のいずれかに記載の方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、装置、方法、プログラムに関する。
【背景技術】
【０００２】
符号画像パターンの印刷された印刷物をコピーするに際して、当該印刷物上の画像のコピーを作成すると共に、当該印刷物上の画像内の符号画像パターンを復号するＭＦＰも出てきている。なお、符号画像パターンとは、例えば、電子透かし画像や二次元バーコード画像（２次元コードと称することもある）やバーコード画像やステガノグラフィーである。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
しかしながら、コピーを作成するのに適した画像と、符号画像パターンを復号するのに適した画像は異なる。コピーを作成するのに適した画像は、元の印刷物の画像を的確に表現した画像であり、符号画像パターンを復号するのに適した画像は、符号画像パターンの黒と白の部分が確りと区別された画像である。
【０００４】
本発明は、コピーを作成するのに適した画像を用い、高速な（演算量の少ない）方法でその画像における符号画像パターンを復号することを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明に係る装置は、検出用パターンを持つ符号画像パターンを復号化する装置であって、画像から検出用パターンを検出する検出手段と、検出された検出用パターンにより位置の特定される符号画像パターンの濃度を、検出された検出用パターンの濃度に基づいて、補正する補正手段と、濃度を補正した後の符号画像パターンを復号化する復号化手段とを備えることを特徴とする。
【発明の効果】
【０００６】
本発明によれば、符号画像パターンの復号処理における復号性能を向上させ、復号処理の負荷を小さくすることができる。
【図面の簡単な説明】
【０００７】
【図１】画像形成システムを示す図である。
【図２】画像形成装置を示す図である。
【図３】タイルデータを概念的に示す図である。
【図４】スキャナ画像処理部のブロック図である。
【図５】プリンタ画像処理部のブロック図である。
【図６】操作部のコピー画面の説明図である。
【図７】２次元コードを示す図である。
【図８】２次元コードの符号化のフローチャートである。
【図９】実施形態１のフローチャートである。
【図１０】２次元コードの検出用パターン図である。
【図１１】２次元コードの復号化処理のフローチャートである。
【図１２】スキャン画像処理後の２次元コードを示す図である。
【図１３】検出用パターンの検出処理の前処理後の２次元コードを示す図である。
【図１４】符号画像パターンの復号処理の前処理後の２次元コードを示す図である。
【図１５】２次元コードのヒストグラムを示す図である。
【図１６】実施形態２のフローチャートである。
【図１７】検出用パターンを示す図である。
【発明を実施するための形態】
【０００８】
以下では、図面を参照して本発明を実施するための最良の形態について説明する。
【０００９】
＜実施形態１＞
実施形態１について図面を参照して詳細に説明する。
【００１０】
＜印刷システム（図１）＞
図１は、本発明の実施形態に係る印刷システムを示すブロック図である。この印刷システムではホストコンピュータ（以下、ＰＣと称する）４０及び３台の画像形成装置（１０，２０，３０）がＬＡＮ５０に接続されているが、本発明における印刷システムにおいては、これらの接続数に限られることはない。また、本実施形態では接続方法としてＬＡＮを適用しているが、これに限られることはない。例えば、ＷＡＮ（公衆回線）などの任意のネットワーク、ＵＳＢなどのシリアル伝送方式、セントロニクスやＳＣＳＩなどのパラレル伝送方式なども適用可能である。
【００１１】
ＰＣ４０は、パーソナルコンピュータの機能を有している。ＰＣ４０は、ＬＡＮ５０やＷＡＮを介してＦＴＰやＳＭＢプロトコルを用いファイルを送受信したり電子メールを送受信したりすることができる。また、ＰＣ４０から画像形成装置１０、２０、３０に対して、プリンタドライバを介した印字命令を行うことが可能となっている。
【００１２】
画像形成装置１０、２０は、同様の装置である。画像形成装置３０は、プリント機能のみの画像形成装置であり、画像形成装置１０、２０が有するスキャナを有していない。以下では、画像形成装置１０、２０のうちの画像形成装置１０に注目して、詳細に説明する。
【００１３】
画像形成装置１０は、画像入力デバイスであるスキャナ１３と、画像出力デバイスであるプリンタ１４と、画像形成装置１０全体の動作制御を司るコントローラ１１と、ユーザインターフェース（ＵＩ）である操作部１２とを有する。
【００１４】
同様に、画像形成装置２０は、画像入力デバイスであるスキャナ２３と、画像出力デバイスであるプリンタ２４と、画像形成装置２０全体の動作制御を司るコントローラ２１と、ユーザインターフェース（ＵＩ）である操作部２２とを有する。
【００１５】
同様に、画像形成装置３０は、画像出力デバイスであるプリンタ３３と、画像形成装置３０全体の動作制御を司るコントローラ３１と、ユーザインターフェース（ＵＩ）である操作部３２とを有する。
【００１６】
＜画像形成装置１０＞
画像形成装置１０のスキャナ１３は、複数のＣＣＤを有している。この各ＣＣＤの感度が夫々異なっていると、たとえ原稿上の各画素の濃度が同じであったとしても、各画素が夫々違う濃度であると認識されてしまう。そのため、スキャナ１３は、最初に白板（一様に白い板）を露光走査し、露光走査して得られた反射光の量を電気信号に変換してコントローラ１１に出力する。なお、後述するように、コントローラ１１のシェーディング補正部５００は、各ＣＣＤから得られた電気信号を元に、各ＣＣＤの感度の違いを認識している。そして、この認識された感度の違いを利用して、原稿上の画像をスキャンして得られた電気信号の値を補正している。
【００１７】
さらに、シェーディング補正部５００は、後述するコントローラ１１のＣＰＵ３０１からゲイン調整の情報を受取ると、当該情報に応じたゲイン調整を行う。ゲイン調整は、原稿を露光走査して得られた電気信号の値を、どのように０〜２５５の輝度信号値に割り付けるかを調整するために用いられる。このゲイン調整により、原稿を露光走査して得られた電気信号の値を高い輝度信号値に変換したり、低い輝度信号値に変換したりすることができるようになっている。つまり、このゲイン調整により、読み取り信号のダイナミックレンジの調整が可能である。
【００１８】
続いて、この原稿上の画像をスキャンするスキャナについて説明する。
【００１９】
スキャナは、原稿上の画像を露光スキャンして得られた反射光をＣＣＤに入力することで画像の情報を電気信号に変換する。さらに電気信号をＲ，Ｇ，Ｂ各色からなる輝度信号に変換し、当該輝度信号を画像としてコントローラ１１に対して出力する。この際に、原稿をスキャンする解像度は、コントローラ１１から指定することが可能である。
【００２０】
なお、原稿は、不図示の原稿フィーダのトレイにセットされる。ユーザが操作部１２から読み取り開始を指示すると、コントローラ１１からスキャナ１３に原稿読み取り指示が与えられる。スキャナ１３は、この指示を受けると原稿フィーダのトレイから原稿を１枚ずつフィードして、原稿の読み取り動作を行う。なお、原稿の読み取り方法は原稿フィーダによる自動送り方式ではなく、原稿を不図示のガラス面上に載置し露光部を移動させることで原稿の走査を行う方法であってもよい。
【００２１】
また、スキャナ１３の周波数特性や特性パラメータの情報は、コントローラ１１のＲＡＭ３０２に保持しておく。ここで、特性パラメータとは、白レベル基準や輝度と濃度の対応関係である。
【００２２】
プリンタ１４は、コントローラ１１から受取った画像を用紙上に形成する画像形成デバイスである。なお、本実施形態において画像形成方式は感光体ドラムや感光体ベルトを用いた電子写真方式となっているが、本発明はこれに限られることはない。例えば、微少ノズルアレイからインクを吐出して用紙上に印字するインクジェット方式などでも適用可能である。また、プリンタ１４には、異なる用紙サイズ又は異なる用紙向きを選択可能とする不図示の複数の用紙カセットが設けられている。また、不図示の排紙トレイには印字後の用紙が排出される。
【００２３】
＜コントローラ１１の詳細説明（図２）＞
図２は、画像形成装置１０のコントローラ１１をより詳細に説明するためのブロック図である。
【００２４】
コントローラ１１は、スキャナ１３やプリンタ１４と電気的に接続されており、一方ではＬＡＮ５０やＷＡＮ３３１を介してＰＣ４０や外部の装置などと接続されている。これにより画像やデバイス情報の入出力が可能となっている。
【００２５】
ＣＰＵ３０１は、ＲＯＭ３０３に記憶された制御プログラム等に基づいて接続中の各種デバイスとのアクセスを統括的に制御すると共に、コントローラで行われる各種処理についても統括的に制御する。
【００２６】
ＲＡＭ３０２は、ＣＰＵ３０１が動作するためのシステムワークメモリであり、かつ画像を一時記憶するためのメモリでもある。ＲＡＭ３０２は、記憶した内容を電源ｏｆｆ後も保持しておく不揮発性ＲＡＭ及び電源ｏｆｆ後には記憶した内容が消去されてしまうＤＲＡＭを有する。ＲＯＭ３０３には装置のブートプログラムなどが格納されている。
【００２７】
ＨＤＤ３０４は、ハードディスクドライブであり、システムソフトウェアや画像を格納する。
【００２８】
操作部Ｉ／Ｆ３０５は、システムバス３１０と操作部１２とを接続するためのインターフェースである。操作部Ｉ／Ｆ３０５は、操作部１２に表示するための画像をシステムバス３１０から受取り操作部１２に出力すると共に、操作部１２から入力された情報をシステムバス３１０へと出力する。
【００２９】
ＮｅｔｗｏｒｋＩ／Ｆ３０６は、ＬＡＮ５０及びシステムバス３１０に接続し、情報の入出力を行う。
【００３０】
Ｍｏｄｅｍ３０７は、ＷＡＮ３３１及びシステムバス３１０に接続しており、情報の入出力を行う。
【００３１】
２値画像回転部３０８は、送信前の画像の方向を変換する。
【００３２】
２値多値画像圧縮・伸張部３０９は、送信前の画像の解像度を所定の解像度や相手能力に合わせた解像度に変換する。なお圧縮及び伸張にあたってはＪＢＩＧ、ＭＭＲ、ＭＲ、ＭＨなどの方式が用いられる。
【００３３】
画像バス３３０は、画像をやり取りするための伝送路であり、ＰＣＩバス又はＩＥＥＥ１３９４を有する。
【００３４】
スキャナ画像処理部３１２は、スキャナ１３からスキャナＩ／Ｆ３１１を介して受取った画像に対して、補正、加工、及び編集を行う。なお、スキャナ画像処理部３１２は、受取った画像がカラー原稿か白黒原稿かや、文字原稿か写真原稿かなどを判定する。そして、その判定結果を画像に付随させる。こうした付随情報を属性データと称する。スキャナ画像処理部３１２で行われる処理の詳細については後述する。
【００３５】
圧縮部３１３は、画像を受取り、この画像を３２×３２画素のブロック単位に分割する。なお、この３２×３２画素の画像をタイルデータと称する。
【００３６】
図３は、タイルデータを概念的に表している。原稿（読み取り前の紙媒体）において、タイルデータに対応する領域をタイル画像と称する。なおタイルデータには、その３２×３２画素のブロックにおける平均輝度情報やタイル画像の原稿上の座標位置がヘッダ情報として付加されている。さらに圧縮部３１３は、複数のタイルデータからなる画像を圧縮する。伸張部３１６は、複数のタイルデータからなる画像を伸張した後にラスタ展開してプリンタ画像処理部３１５に送る。
【００３７】
プリンタ画像処理部３１５は、伸張部３１６から送られた画像を受取り、この画像に付随させられている属性データを参照しながら画像に画像処理を施す。画像処理後の画像は、プリンタＩ／Ｆ３１４を介してプリンタ１４に出力される。この際、一旦、圧縮３１３で圧縮を行い、伸張部３１６で伸張してから、画像処理後の画像を、プリンタＩ／Ｆ３１４を介してプリンタ１４に出力してもよい。プリンタ画像処理部３１５で行われる処理の詳細については後述する。
【００３８】
符号画像パターン処理部３１７は、画像に各種処理を施し、画像に存在する符号画像パターンの復号化の処理（復号処理）を施す。符号画像パターン処理部３１７が処理する画像は、スキャン画像処理部３１２またはプリンタ画像処理部３１５で処理を行ったあとに圧縮部３１３で圧縮が施された画像である。これらの処理部は、ハードウェアである必要はなく、ＲＡＭ３０２上に展開されたプログラムでもよい。符号画像パターン処理部３１７で行われる処理の詳細については後述する。
【００３９】
ＲＩＰ３３０は、ＰＣ４０などから送信されたＰＤＬコードデータを元に生成された中間データを受取り、ビットマップデータ（多値）を生成する。
【００４０】
＜スキャナ画像処理部３１２の詳細説明（図４）＞
図４は、スキャナ画像処理部３１２を示す。
【００４１】
スキャナ画像処理部３１２は、ＲＧＢ各８ｂｉｔの輝度信号からなる画像を受取る。
【００４２】
シェーディング補正部５００は、この輝度信号に対してシェーディング補正する。シェーディング補正とは、上述したように、ＣＣＤの感度のばらつきによって原稿の明るさが誤認識されてしまうことを防止するための処理である。さらに、上述したように、シェーディング補正部５００は、ＣＰＵ３０１からの指示によりゲイン調整を行うことができる。
【００４３】
続いて、この輝度信号は、マスキング処理部５０１によりＣＣＤのフィルタ色に依存しない標準的な輝度信号に変換される。この標準的な輝度信号への変換は、一度、１次元ルックアップテーブルでＲＧＢ各色ごとの調整を行ったあとに、3次元のルックアップテーブルを用いて実行される。
【００４４】
フィルタ処理部５０２は、受取った画像の空間周波数を任意に補正する。フィルタ処理部５０２は、受取った画像に対して、例えば７×７のマトリクスを用いた演算処理を行う。
【００４５】
ところで、複写機や複合機では、図６における７０４タブの押し下げによりコピーモードとして文字モードや写真モードや文字／写真モードを選択することができる。ここで、ユーザにより文字モードが選択された場合には、フィルタ処理部５０２は、文字用のフィルタを画像全体にかける。また、写真モードが選択された場合には、写真用のフィルタを画像全体にかける。また、文字／写真モードが選択された場合には、後述の文字写真判定信号（属性データの一部）に応じて画素ごとに適応的にフィルタを切り替える。
【００４６】
つまり、画素ごとに写真用のフィルタをかけるか文字用のフィルタをかけるかが決定される。なお、写真用のフィルタには高周波成分のみ平滑化が行われるような係数が設定されている。これは、画像のざらつきを目立たせないためである。また、文字用のフィルタには強めのエッジ強調を行うような係数が設定されている。これは、文字のシャープさを出すためである。なお、フィルタ処理部５０２で用いられたフィルタパラメータは、後段の処理で使用する可能性があるため、ＲＡＭ３０２に保持される。
【００４７】
ヒストグラム生成部５０３は、受取った画像の各画素の輝度データをサンプリングする。より詳細に説明すると、主走査方向、副走査方向にそれぞれ指定した開始点から終了点で囲まれた矩形領域の輝度データを、主走査方向、副走査方向に一定のピッチでサンプリングする。そして、サンプリング結果を元にヒストグラムデータを生成する。生成されたヒストグラムデータは、下地飛ばし処理を行う際に下地レベルを推測するために用いられる。なお、ヒストグラム生成部５０３でサンプリングされた結果は、下地飛ばし処理やそのほかの後段での処理で利用する可能性のために、ＲＡＭ３０２に保持される。
【００４８】
入力側ガンマ補正部５０４は、入力側ガンマ補正部５０４に入力された1次元ルックアップテーブルなどを利用して非線形特性を持つ輝度データに変換する。なお、入力側ガンマ補正部５０４で利用した1次元ルックアップテーブルパラメータなどは、後段の処理で使用する可能性があるため、ＲＡＭ３０２に保持される。
【００４９】
カラーモノクロ判定部５０５は、カラーモノクロ判定部５０５が受取った画像の各画素が有彩色であるか無彩色であるかを判定し、その判定結果をカラーモノクロ判定信号（属性データの一部）として画像に付随させる。
【００５０】
文字写真判定部５０６は、画像の各画素が文字の画素なのか、網点の画素なのか、網点中の文字の画素なのか、ベタ画像の画素なのかを各画素の画素値と各画素の周辺画素の画素値とに基づいて判定する。なお、どれにもあてはまらない画素は、白領域の画素である。そして、その判定結果を文字写真判定信号（属性データの一部）として画像に付随させる。
【００５１】
＜プリンタ画像処理部３１５の詳細説明（図５）＞
図５は、プリンタ画像処理部３１５においてなされる処理の流れを示す。
【００５２】
下地飛ばし処理部６０１は、スキャナ画像処理部３１２で生成されたヒストグラムを用いて画像の下地色を飛ばす（除去する）。
【００５３】
モノクロ印刷をする場合には、モノクロ生成部６０２は、カラーデータをモノクロデータに変換する。
【００５４】
Ｌｏｇ変換部６０３は、輝度濃度変換を行う。Ｌｏｇ変換部６０３は、例えば、ＲＧＢ入力された画像を、ＣＭＹの画像に変換する。
【００５５】
出力色補正部６０４は、出力色補正を行う。例えば、ＣＭＹ入力された画像を、テーブルやマトリックスを用いてＣＭＹＫの画像に変換する。
【００５６】
出力側ガンマ補正部６０５は、出力側ガンマ補正部６０５に入力される信号値と、複写出力後の反射濃度値とが比例するように補正を行う。
【００５７】
中間調補正部６０６は、出力するプリンタの階調数に合わせて中間調処理を行う。例えば、受取った高階調の画像に対し2値化や32値化などを行う。
【００５８】
なお、スキャナ画像処理部３１２やプリンタ画像処理部３１５における各処理部では、受取った画像に各処理を施さずに出力させることも可能となっている。
【００５９】
＜符号画像パターン処理部３１７の詳細説明（図２）＞
図２の記載の符号画像パターン処理部３１７の詳細について説明をする。
【００６０】
伸張部３１８は、伸張部３１８が受取った画像を伸張する。伸張部３１８により伸張された画像は、処理部３２０〜３２９を任意の順番で利用して処理されることができる。圧縮部３１９は、圧縮部３１９が受取った画像を圧縮する。圧縮部３１９が受け取る画像は、２値データである場合も、多値データである場合もある。
【００６１】
多値単純２値部３２０は、多値単純２値部３２０が受け取った多値の画像を単純2値化する。単純2値化とは、ＣＰＵ３０１が設定する閾値により、画像を2値化するものである。カラー画像は、任意の変換式により、グレースケール画像に変換されたあとに、ＣＰＵ３０１が設定する閾値により、2値化される。
【００６２】
多値２値部３２１は、多値２値部３２１が受け取った多値の画像を2値化する。多値２値部３２１は、単純2値化ではない各種方法による2値化が可能である。具体的には、多値２値部３２１は、ヒストグラムを用いて２つのクラスタの分離度が最大になるように閾値を決定したり、ヒストグラムを用いて白画素と黒画素のＤＵＴＹ比が５０％になるような閾値を決定することができる。カラー画像については、任意の変換式により、カラー画像をグレースケール画像に変換したあとに、2値化処理を行う。
【００６３】
２値多値部３２２は、2値化された画像を多値変換する。具体的には、２値多値部３２２は、2値画像を多値の最小値と最大値を持つ画像に変換したあとに、ガウシアンフィルタなどのフィルタでぼかすことにより２値多値変換を実行する。
【００６４】
変倍部３２３は、画像に変倍処理を施す。具体的には、リニア変倍やキュービック変倍、間引き変倍をすることにより変倍処理を実行する。
【００６５】
フィルタ処理部３２４は、画像にフィルタ処理を施す。ＣＰＵ３０１が設定する任意の形状・係数のフィルタを用いたフィルタ処理を施すがことが可能である。
【００６６】
線形性調整部３２５は、１次元ＬＵＴ（Look Up Table)を用いて、画像の線形性を調整することが可能である。
【００６７】
特殊処理部３２６は、ノイズドットの除去や、太らせ処理、細らせ処理などの特殊処理を行うことが可能である。
【００６８】
切りだし部３２７は、画像の一部を任意の大きさで切り出すことが可能である。
【００６９】
検出用パターン検出部３２８および、符号画像パターン復号部３２９を説明する前に、本実施形態で使用する符号画像パターンである２次元コードの説明を行う。２次元コードとして、例えば、ＱＲコード（登録商標）を用いることができる。なお、本発明は、２次元コード以外であっても、検出用パターンが存在するすべての符号画像パターンに適用可能である。検出用パターンとは、符号画像パターンを検出するためのパターンであり、検出がし易いような特徴的なパターンとなっている。２次元コードの検出用パターンは、図１０に示すパターンである。この検出用パターン以外の符号画像パターン領域については、符号画像パターン本体と呼ぶ。また、符号画像パターンの最小単位の白い領域のことを白セルと呼び、黒い領域のことを黒セルと呼ぶ。
【００７０】
２次元コードは、ＪＩＳ０Ｘ０５１０で規定される符号画像パターンである。本発明では、原稿側には、２次元コードが付加されていることを前提とする。その符号化のフローチャートについて説明する。
【００７１】
図８は、複写制限情報等の付加情報を用いて２次元コードを生成する過程を示すフローチャートである。図８のフローチャートは、２次元コードを原稿に付加する装置のＣＰＵで実行されても、２次元コードを原稿に付加する装置に接続されたパソコンのＣＰＵで実行されても良い。
【００７２】
まず、ステップＳ９００で、ＣＰＵは、符号化する種種の異なる文字を識別するため、付加情報を分析する。また、ＣＰＵは、誤り訂正レベルを選択し、付加情報を収容できる２次元コードの最小の型番を選択する。２次元コードの型番とは、２次元コードのサイズを表現する番号であり、1〜40の値をとる。型番１は21セル×21セルのサイズであり、177セル×177セルの大きさとなる。
【００７３】
次に、ステップＳ９０１で、ＣＰＵは、付加情報の符号化を行う。まず、ＣＰＵは、付加情報を所定のビット列に変換し、必要に応じて、そのビット列の元データ（付加情報）の種類(数字、英数字、8ビットバイト、漢字等)を表す指示子や、終端パターンを付加する。次に、ＣＰＵは、このビット列を、8ビット単位に分割する。この8ビット単位のビット列をデータコード語と呼び、データコード語単位で分割されたビット列をデータコード語列とよぶ。型番および誤り訂正レベルに応じてデータコード語の数は規定されており、それに満たない場合には、ＣＰＵは、無意味なデータコード語をデータコード語列に追加する。
【００７４】
次に、ステップＳ９０２で、ＣＰＵは、誤り訂正用の情報を付加するために、ステップＳ９０１で得られたデータコード語列を型番および誤り訂正レベルに応じた数の複数のブロックに分割する。そして、ＣＰＵは、各ブロック毎に、そのブロックの誤りを訂正することための誤り訂正コード語列を生成し、データコード語列の後に付加する。なお、誤り訂正コード語も8ビット単位のビット列である。このデータコード語および誤り訂正語のことをコード語と呼び、その並びのことをコード語列と呼ぶ。
【００７５】
次に、ステップＳ９０３で、ＣＰＵは、ステップＳ９０２で得られた各ブロックのコード語列を8ビットのコード語単位でインターリーブし、型番に応じて、残余ビットを付加する。インターリーブは、コード語列の連続性を低下させることにより、バーストエラーに対する耐性を上げるために行われる。こうしてできた最終的なビットの並びを最終ビット列と呼ぶ。
【００７６】
次に、ステップＳ９０４で、ＣＰＵは、白セルもしくは黒セルが配置されるマトリクスを設定する。マトリクスのサイズは、型番ごと決定される。そのマトリクスに、検出用パターンとともに、符号画像本体の構成要素を配置する。符号画像本体の構成要素は、分離パターン、タイミングパターンおよび位置合わせパターン等と、ステップＳ９０３で得られた最終ビット列である。最終ビット列の配置では、ＣＰＵは、ビット0に白セルを対応させ、ビット１に黒セルを対応させて、配置していく。配置は、型番に対応する配置規則に基づいて行われる。
【００７７】
次に、ステップＳ９０５で、ＣＰＵは、更に、Ｓ９０４で得られた最終ビット列を並べた領域について、最適なマスクパターンを選択して、排他的論理和（XOR）演算によりマスク処理を施す。XOR演算とは、マスクパターンが0かつ対応するセルが白セルの場合には黒セルに、マスクパターンが１かつ対応するセルが黒セルの場合に白セルに変換する処理である。ここで、最適なマスクパターンについて説明する。白セルと黒セルの理想的な配置パターンには、検出用パターンに類似したパターンが含まらず、かつ、白セルや黒セルが連続しておらず、白セルと黒セルの比率が1対１に近い領域である。マスク処理（排他的論理和）の結果、このようなパターンを得ることができるマスクパターンが、最適なマスクパターンである。なお、マスク処理の結果、検出用パターンに類似したパターンが得られてしまうと、検出用パターンの誤検出につながるため、好ましくない。また、白セル、又は、黒セルの連続した領域では、一つ一つのセルが太りやすくなり、本来あるべきセルの大きさにならない可能性があるため、好ましくない。逆に、マスク処理の結果、白セルと黒セルの比率が1対１に近くなれば（そして、それ程、連続が無ければ）、黒セルの形成に難があっても、白セルの形成の難があっても、平等に対応できるため好ましいパターンとなる。
【００７８】
次に、ステップＳ９０６で、ＣＰＵは、ステップＳ９０５で得られたモジュールに形式情報および型番情報を生成して、符号画像パターンを完成する。形式情報には、誤り訂正レベルと使用したマスクパターン情報が含まれる。
【００７９】
このように符号化された結果として、２次元コードは図７のような外観の符合画像パターンとなる。
【００８０】
２次元コードには、任意の情報を符号化することが可能である。本発明においては、複写条件情報が符号化された２次元コードパターンが、紙原稿上にあり、その紙原稿を画像形成装置１０でスキャンすることを前提とする。なお、複写条件情報の他に、その原稿の出力プリンタ・時刻などの各種属性情報について符号化しても構わない。
【００８１】
次に、このような２次元コードを前提とし、検出用パターン検出部３２８および、符号画像パターン復号部３２９について説明する。
【００８２】
検出用パターン検出部３２８は、符号画像パターンに存在する検出用パターンを画像から検出し、符号画像パターン位置を特定する。検出は、高速化のため、通常、2値化された画像に対して行うが、多値画像に対して、検出を行っても構わない。また、検出効率を向上するために、画像をダウンサンプリングして解像度が低くした画像に対して、検出を行っても構わない。
【００８３】
符号画像パターン復号部３２９では、符号画像パターンの本体の場所が既知の場合に、その符号画像パターン本体に復号処理を施し、情報データを取り出す。
【００８４】
図１１は、２次元コードを例として、符号画像パターンの復号を説明する図である。（図１１のフローチャートにおいて、検出用パターンの位置はすでに特定されており、符号画像パターン本体の位置は既知である。）
まず、ステップＳ１２０１で、符号画像パターン復号部３２９は、検出用パターンに隣接する形式情報を復元し、符号画像パターンに適用された誤り訂正レベルおよびマスクパターン情報を得る。
【００８５】
次に、ステップＳ１２０２で、符号画像パターン復号部３２９は、検出用パターンに隣接する型番情報を復元し、符号画像パターンの型番を決定する。
【００８６】
次に、ステップＳ１２０３で、符号画像パターン復号部３２９は、形式情報を復元して得られたマスクパターンを使って最終ビット列領域とXOR演算することでマスクを解除する。
【００８７】
次に、ステップＳ１２０４で、符号画像パターン復号部３２９は、型番に対応する配置規則に従い、マスクが解除された最終ビット列領域のビットパターンを読み取る。そして、符号画像パターン復号部３２９は、インターリーブを解除し、コード語列（データコード語列および誤り訂正コード語）を復元する。
【００８８】
次に、ステップＳ１２０５で、符号画像パターン復号部３２９は、誤り訂正コード語列を用いて、データの誤りを検出し、誤りがなければ、ステップＳ１２０７の処理に進み、誤りがあった場合にはステップＳ１２０６の処理に進む。
【００８９】
次に、ステップＳ１２０６で、符号画像パターン復号部３２９は、データコード語列の誤りを訂正する。
次に、ステップＳ１２０７で、符号画像パターン復号部３２９は、元データ（付加情報）の種類を示す指示子に基づき、データコード語列を復元して、符号化されていた付加情報を得る。
【００９０】
次に、ステップＳ１２０８で、符号画像パターン復号部３２９は、復元された、符号化されていた情報を出力する。
【００９１】
ステップＳ１２０１からステップＳ１２０４の処理においては、黒セルおよび白セルを有する、２次元コードに配置されている黒白のパターンを、適宜1bitのデータ列に変換することにより、処理が行われる。図７のような白黒のパターンの形がはっきりとした符号画像パターンから1bitのデータ列を取り出すことは容易である。しかし、図１３のように白黒のパターンが乱れ、白また黒のパターンに太り細りがあるような符号画像パターンから1bitのデータ列を取り出すことは難しい。そのような1bitのデータ列を取り出すことが難しい符号画像パターンについては、処理に失敗することがある。
【００９２】
＜操作画面の説明＞
図６は、画像形成装置１０における初期画面である。
【００９３】
領域７０１は、画像形成装置１０がコピーできる状態にあるか否かを示し、かつ設定したコピー部数を示す。
【００９４】
原稿選択タブ７０４は、原稿のタイプを選択するためのタブであり、このタブが押し下げられると文字、写真、文字／写真モードの３種類の選択メニューをポップアップ表示される。
【００９５】
フィニッシングタブ７０６は、各種フィニッシングに関わる設定を行うためのタブである。
【００９６】
両面設定タブ７０７は、両面読込み及び両面印刷に関する設定を行うためのタブである。
【００９７】
色モードタブ７０２は、原稿の色モードを選択するためのタブである。このタブが押し下げられるとカラー／ブラック／自動（ＡＣＳ）の３種類の選択メニューがポップアップ表示される。なお、カラーが選択された場合にはカラーコピーが、ブラックが選択された場合にはモノクロコピーが行われる。また、ＡＣＳが選択された場合には、上述したモノクロカラー判定信号によりコピーモードが決定される。
【００９８】
本実施形態におけるシステムの説明は以上である。
【００９９】
本実施形態のフローチャートを図９に示す。
【０１００】
本フローチャートにおける各工程の処理は、ＣＰＵ３０１により統括的に制御される。図９に示されているフローチャートは、操作部１２でユーザがスキャン処理を伴う処理を選択し、開始ボタンを押した際に実行される。
【０１０１】
まず、ステップＳ１００１で、ＣＰＵ３０１は、操作部１２の開始ボタンが押されていることを検知すると、スキャナ１３を作動させ、原稿をスキャンする。そして、ＣＰＵ３０１は、スキャナ１３で読み取られた原稿を、画像としてスキャナＩ／Ｆ３１１を介してスキャナ画像処理部３１２に送るように制御する。また、ＣＰＵ３０１は、スキャン時のスキャン解像度など設定パラメータやスキャナの特性パラメータについての情報をＲＡＭ３０２に保持しておく。
【０１０２】
次に、ステップＳ１００２で、スキャナ画像処理部３１２は、スキャナ画像処理を画像に対して行う。
【０１０３】
スキャナ画像処理部３１２は、シェーディング補正部５００、マスキング処理部５０１、フィルタ処理部５０２、ヒストグラム処理部５０３、入力側ガンマ補正部５０４、カラーモノクロ判定部５０５、文字写真判定部５０６で画像に対して処理を行う。そして、スキャナ画像処理部３１２は、処理が済んだ新たな画像と共に属性データを生成し、この属性データを画像に付随させる。そして、スキャナ画像処理部３１２は、画像を圧縮部３１３に送り、圧縮画像をＲＡＭ３０２もしくはＨＤＤ３０４に保持する。また、ＣＰＵ３０１は、スキャン画像処理時のパラメータについての情報をＲＡＭ３０２に保持しておく。
【０１０４】
次に、ステップＳ１００３で、ＣＰＵ３０１は、ステップＳ１００４の補正処理のパラメータと、ステップＳ１００５の単純2値化処理の閾値パラメータを算出する。その算出の際には、ＣＰＵ３０１は、ＲＡＭ３０２に保持されているスキャン時の設定パラメータやスキャナの特性パラメータについての情報やスキャン画像処理時のパラメータを利用する。
【０１０５】
次に、ステップＳ１００４で、ＣＰＵ３０１は、主な補正処理として、変倍部３２３での変倍処理やフィルタ処理部３２４でのフィルタ処理や線形性調整部３２５での線形調整処理を実行する。
【０１０６】
変倍処理のパラメータは、スキャン時のスキャン解像度に関する設定パラメータに基づいて、後段の符号画像パターンの検出に適した解像度となるように決定される。たとえば、スキャン解像度が600×300のように片変倍であり、主副が同じ解像度であることが必要な際には、600×600や300×300などの主副が同じ解像度になるような解像度変換パラメータが決定される。変倍方法は、スキャン画像全面に対して変倍処理を行うため、計算コストを考慮する必要がある。そのため、単純間引きや単純拡大のような計算コストが軽い変倍方法を適用することを優先する。
【０１０７】
フィルタ処理のパラメータ決定方法について述べる。まず、特性パラメータやスキャン画像処理時のフィルタ処理部５０２でのフィルタパラメータに基づいて、その時点での画像の符号画像領域の平均輝度と周波数特性を推定する。ここで、特性パラメータとは、例えば、スキャナの周波数特性や白レベル基準である。
【０１０８】
次に、この推定に基づき、画像が、後段の符号画像パターンの検出に適した平均輝度と周波数特性となるようなパラメータが決定される。理想的な平均輝度とは、符号画像領域の平均輝度が50%の値（画像が8bitであれば127もしくは128）となるようなレベルである。理想的な周波数特性は、対応している符号画像パターンに対応する周波数成分が多く、その他の部分の周波数成分が少ない特性である。
【０１０９】
線形性調整処理のパラメータ決定方法について述べる。まず、特性パラメータと、スキャン画像処理時のヒストグラム生成部５０３のサンプリング結果と入力側ガンマ補正部５０４の１次元ＬＵＴパラメータに基づいて、その時点での輝度と濃度の対応関係を推定する。ここで、特性パラメータとは、例えば、スキャナの白レベル基準や、輝度と濃度の対応関係である。次に、この推定に基づき、画像が、後段の符号画像パターンの検出に適した輝度と濃度の対応関係となるような1次元ＬＵＴのパラメータが決定される。符号画像パターンの検出に適した輝度と濃度の関係は、検出方法にも依存するが、線形な対応関係が適している。
【０１１０】
ステップＳ１００５の単純2値化処理の閾値パラメータは、通常、補正処理が正常に行われていれば、50%の値（画像が8bitであれば127もしくは128）で良い。ただし、補正処理の負荷を軽減するために、補正処理が十分に施されていない場合は、その補正処理を施さないことによる、５０％の閾値からのずれが計算される。そして、そのずれを反映させた値が閾値とされる。（フィルタ処理などが絡むため、正確なずれ量は計算できない）
次に、ステップＳ１００４で、ＣＰＵ３０１は、まず、ＲＡＭ３０２もしくはＨＤＤ３０４に保持されている圧縮画像を、符号画像パターン処理部３１７で処理するために、伸張部３１８で伸張する。次に、ＣＰＵ３０１は、ステップＳ１００３で決定した補正処理パラメータに基づいて、補正処理を行う。すなわち、ＣＰＵ３０１は、ステップＳ１００３で決定した補正処理パラメータに基づいて、補正処理を行うにあたっての補正量を決定する。
【０１１１】
変倍部３２３は、ステップＳ１００３で決定した変倍処理パラメータに基づいて、変倍処理を行う。フィルタ処理部３２４は、ステップＳ１００３で決定した変倍処理パラメータに基づいて、フィルタ処理を行う。線形性調整部３２５は、ステップＳ１００３で決定した線形性調整処理パラメータに基づいて、線形性調整処理を行う。補正処理対象となる画像を、スキャンされた画像の全面としても良い。また、補正処理の負荷を低減するために、補正処理対象となる画像を、スキャンされた画像の一部としても良い。
【０１１２】
次に、ステップＳ１００５で、ＣＰＵ３０１は、ステップＳ１００３で決定した単純2値化処理の閾値パラメータに基づいて、多値単純2値部３２０で、ステップＳ１００４で補正された画像に対して単純2値化処理を行う。
【０１１３】
次に、ステップＳ１００６で、ＣＰＵ３０１は、ステップＳ１００５で2値化された画像から、検出用パターン検出部３２８で、符号画像パターンの検出用パターンの検出を行う。検出用パターンは、１つの情報コードにつき、複数存在するため、その位置関係から符号画像パターン本体の位置を特定することができる。よって、検出用パターンが検出された場合には、ＣＰＵ３０１は、その検出した検出用パターン情報から、符号画像パターンの位置情報を導きだし、その位置情報をＲＡＭ３０２に保持しておく。
【０１１４】
次に、ステップＳ１００７で、ＣＰＵ３０１は、まず、ＲＡＭ３０２もしくはＨＤＤ３０４に保持されている圧縮画像を、符号画像パターン処理部３１７で処理するために、伸張部３１８で伸張する。次に、ＣＰＵ３０１は、切り出し部３２７で、Ｓ１００６で決定されたＲＡＭ３０２に保持されている符号画像パターンの位置情報に基づき、符号画像パターンの復号に用いる画像を切り出す。具体的には、三つの検出用パターンによって形成されている四角形（即ち、三つの検出用パターン全てに外接する四角形）の画像を切り出す。検出用パターンの検出に用いた2値画像は全面の画像に補正処理および2値化処理を施す必要があり、処理の負荷が大きいので、十分な処理を施すことができない。しかし、符号画像パターンの復号に用いる画像は、その全体画像の一部であり、処理の負荷のことを考えずに、後段のステップＳ１００９およびＳ１０１０では、より複雑な画像処理を施すことができる。そこで、符号画像パターンの復号のために独自の画像処理を施すために、検出用パターンの検出画像は符号画像パターンの復号には利用しなくても良い。
【０１１５】
次に、ステップＳ１００８で、ＣＰＵ３０１は、ステップＳ１００９の補正処理のパラメータと、ステップＳ１０１０の2値化処理のパラメータを算出する。その算出の際には、ステップＳ１００３で利用したＲＡＭ３０２に保持されているスキャン時のパラメータについての情報やスキャン画像処理時のパラメータに加え、切り出した画像自体の情報が利用される。ステップＳ１００３で利用した情報に加えて、切り出した画像自体の情報を利用することにより、より精度の高い補正処理や2値化処理が実現される。
【０１１６】
次に、ステップＳ１００９で、ＣＰＵ３０１は、主な補正処理として、変倍部３２３による変倍処理、フィルタ処理部３２４によるフィルタ処理、線形性調整部３２５による線形調整処理、特殊処理部３２６による太らせ処理などを実行する。
【０１１７】
ステップＳ１００９における変倍処理のパラメータの決定方法は、ステップＳ１００３におけるパラメータの決定方法と同様である。ただし、ステップＳ１００９での変倍処理は、部分的な画像に対しての変倍処理である。したがって、ステップＳ１００９での変倍処理の負荷は、ステップＳ１００４の変倍処理の負荷と比べて低い。そのため、ステップＳ１００９では、変倍性能は高いが計算コストが高いキュービック変倍などを適用することができることを考慮して、変倍処理パラメータを決定しても良い。
【０１１８】
フィルタ処理のパラメータ決定方法について述べる。まず、対象となる切り出し画像を分析し、画像の平均輝度や周波数特性を得る。切り出し画像の分析は、フィルタ処理部３２４で行う。その値に基づき、後段の符号画像パターンの検出に適した平均輝度と周波数特性となるようなパラメータが決定される。理想的な平均輝度は、50%の値（画像が8bitであれば127もしくは128）と同じ値である。理想的な周波数特性は、対応している符号画像パターンに対応する周波数成分が多く、その他の部分の周波数成分が少ない特性である。ステップＳ１００３では、全面の画像が切り出しの対象としており、画像特性の分析には、莫大な計算コストがかかる。しかし、ステップＳ１００９では、切り出し画像は画像の一部であるため、ステップＳ１００９の計算コストは、ステップＳ１００３の計算コストよりも低い。
【０１１９】
線形性調整処理のパラメータの決定方法は、ステップＳ１００３における決定方法と同様である。
【０１２０】
特殊処理のパラメータの決定方法について述べる。通常、２次元コードのような符号画像パターンは、黒セル領域と白セル領域の割合が1対１に近い比率となっている。この性質を利用し、切り出した画像を分析し、画像の黒セル領域と白セル領域の割合が1対１に近づけるような処理を、特殊処理部３２６で行えば、より符号画像パターンの復号に適した画像となる。たとえば、第１の閾値よりも濃度が濃い領域の画素数と、第2の閾値よりも濃度が薄い領域の画素数を計算し、その比率に基づいて、太らせ処理・細らせ処理パラメータを決定する。
【０１２１】
ステップＳ１０１０の2値化処理の閾値パラメータは、切りだし画像を解析することにより決定する。切り出し画像の分析は、多値2値部３２１で行う。その解析手法としては、切り出し画像のヒストグラムを利用する方法などが考えられる。たとえば、図１５のような切り出し画像のヒトストグラムを取り、２つのクラスタ（白画素に分類されるクラスタと黒画素に分類されるクラスタ）の分離度が最大になるように閾値パラメータを決定する。クラスタの分離度の評価方法としては、クラスタ同士の共分散行列を用いる手法などが考えられる。または、白画素と黒画素に分類される画素数の比を1対1にするように閾値パラメータを決定してもよい。なお、補正処理が正常に行われていれば、50%の値（画像が8bitであれば127もしくは128）を閾値パラメータとしてもかまわない。
【０１２２】
次に、ステップＳ１００９で、ＣＰＵ３０１は、ステップＳ１００８で決定した補正処理パラメータに基づいて、補正処理を行う。すなわち、ＣＰＵ３０１は、ステップＳ１００８で決定した補正処理パラメータに基づいて、補正処理を行うにあたっての補正量を決定する。
【０１２３】
変倍部３２３は、ステップＳ１００８で決定した変倍処理パラメータに基づいて、変倍処理を行う。フィルタ処理部３２４は、ステップＳ１００８で決定した変倍処理パラメータに基づいて、フィルタ処理を行う。線形性調整部３２５は、ステップＳ１００８で決定した線形性調整処理パラメータに基づいて、線形性調整処理を行う。特殊処理部３２６は、ステップＳ１００８で決定した太らせ処理および細らせ処理用のパラメータに基づいて、特殊処理（太らせ処理・細らせ処理）を行う。
【０１２４】
補正処理対象となる画像は、スキャンした画像全面から切り出した画像であり、画像全面に補正する場合に比べて、補正処理の計算コストは低い。そのため、すべての補正処理を実施することが望ましいが、一部の補正処理だけを行っても構わない。
【０１２５】
次に、ステップＳ１０１０で、ＣＰＵ３０１は、ステップＳ１００８で決定した2値化処理の閾値パラメータに基づいて、多値2値部３２１で、ステップＳ１００９で補正された画像に対して2値化処理を行う。
【０１２６】
次に、ステップ１０１１で、ＣＰＵ３０１は、ステップＳ１０１０で2値化された画像から、符号画像パターン復号部３２９で、符号画像パターンの復号を行う。
【０１２７】
ステップＳ１００２でスキャン画像処理が施された符号画像パターンが図１２のようなものであったとき、ステップＳ１００５で2値化された符号画像パターンは図１３のようなものとなる。
【０１２８】
図１３に示されている符号画像パターンは、ステップＳ１００６の検出用パターンの検出処理をする上では、検出用パターンがはっきりとしているため、検出に問題がない。しかし、ステップＳ１０１１の符合画像パターンの復号処理をする上では、黒セルが細くなりすぎていて、復号に問題が生じる。つまり、ステップＳ１００４やステップＳ１００５で実施される補正処理および2値化処理では、ステップＳ１００６の処理に十分であっても、ステップＳ１０１１の処理には不十分な前処理であることになる。
【０１２９】
ステップＳ１００６で処理する画像サイズとステップＳ１０１１で処理する画像サイズは大きく異なる。そのため、ステップＳ１０１１の処理のために、計算コストが掛る前処理をしても、全体の計算コストに大きな影響を及ぼさない。そこで、ステップＳ１００９とステップＳ１０１０で、ステップＳ１００４とステップＳ１００５に比べて計算コストが掛かる、符合画像パターンの復号処理に適した画像となるような前処理を施す。そうすることにより、図１４のような白黒セルの大きさの釣り合いが取れた画像を生成することができる。そして、ステップＳ１０１１では、図１４のような画像に対して、符号画像パターンの復号処理を行う。このようにして、符号画像パターンの検出用パターンを検出するための画像と、符号画像パターンを復号する画像を別々に処理することにより、計算コストを抑えた形で、符号画像パターンの復号性能を向上させることが可能となる。
【０１３０】
ＣＰＵ３０１は、復号処理が終わったあとに、復号結果を不図示のデータバスを用いてＲＡＭ３０２に保持する。
【０１３１】
次に、ステップＳ１０１２で、ＣＰＵ３０１は、ＲＡＭ３０２に保持されている復号結果から、スキャン画像のプリントを実行するかどうかの判断を行う。
【０１３２】
ＣＰＵ３０１は、復号結果を解析し、その中にプリント判断に関する情報が含まれており、更に、その情報が複写禁止であった場合（ＮＧの場合）には、プリントの実行を中止する。そして、処理を終了する。
【０１３３】
ＮＧ以外の場合（ＯＫの場合）に、ＣＰＵ３０１は、プリントの実行が許可されているとみなし、ステップＳ１０１３に進む。なお、符号画像パターンが見つからなかった場合も、プリントの実行が許可されているとみなす。
【０１３４】
次に、ステップＳ１０１３で、ＣＰＵ３０１は、ステップＳ１０１２の判断をうけて、プリンタ画像処理を実行する。
【０１３５】
まず、ＣＰＵ３０１は、ＲＡＭ３０２もしくはＨＤＤ３０４に保持されているステップＳ１００２で生成された圧縮画像を、プリント画像処理部３１５で処理するために、伸張部３１６で伸張する。
【０１３６】
次に、ＣＰＵ３０１は、プリンタ画像処理部３１５において、プリンタ画像処理を伸長された画像に対して行う。プリンタ画像処理部３１５は、下地飛ばし処理部６０１、モノクロ生成部６０２、Ｌｏｇ変換部６０３、出力色補正部６０４、出力側ガンマ補正部６０５、中間調補正部６０６で画像に対して処理を行う。なお、カラー印刷の際には、モノクロ生成部６０２は動作させない。
【０１３７】
そして、ＣＰＵ３０１は、プリンタ画像処理が施された画像をプリンタＩＦ３１５に送出する。
【０１３８】
次に、ステップＳ１０１４で、ＣＰＵ３０１は、プリンタ１４で、プリンタＩＦ３１４を通して受け取った画像を用紙上に形成する。そして、不図示の排紙トレイに印字後の用紙を排出する。
【０１３９】
＜実施形態２＞
次に実施形態２について図面を参照して説明する。なお、実施形態１において説明をした図や、フローチャートに関する説明は省略する。ここでは、実施形態２で説明をするフローチャートである図１６を用いて説明を行なう。
【０１４０】
図１６のフローチャートにおける各工程の処理は、ＣＰＵ３０１により統括的に制御される。図１６に示されているフローチャートは、操作部１２でユーザがスキャン処理を伴う処理を選択し、開始ボタンを押した際に実行される。
【０１４１】
実施形態２のフローチャートである図１６のステップＳ１００１〜ステップＳ１００５は、実施形態１のステップＳ１００１〜ステップＳ１００５と同様である。
【０１４２】
ステップＳ２００６で、ＣＰＵ３０１は、ステップＳ１００５で2値化された画像から、検出用パターン検出部３２８で、符号画像パターンの検出用パターンの検出を行う。検出用パターンは、１つの情報コードにつき、複数存在するため、その位置関係から符号画像パターン本体の位置を特定することができる。よって、検出用パターンが検出された場合には、ＣＰＵ３０１は、以下のような処理を行う。すなわち、ＣＰＵ３０１は、その検出した検出用パターン情報から、符号画像パターンの位置情報を導きだし、その位置情報をＲＡＭ３０２に保持する。
【０１４３】
また、検出の際には、検出した検出用パターンの太り細り情報を獲得することができる。２次元コードの検出用パターンは、３×３の黒セルの周りに、幅１セルの白セルの枠があり、さらにその外側に幅１の黒セルがある構造となっている。このため、3×3の黒セルの中心を通る任意の断面は、理想的には、黒領域：白領域：黒領域：白領域：黒領域の比率が、１：１：３：１：１の比率になっている。検出の際には、この比率の理想値からのずれを知ることができる。この理想値からのずれ情報は、２次元コードの白セルや黒セルが太っているかもしくは細っているか、どちらであるかを示すものであり、この太り細り情報をＲＡＭ３０２に保持しておく。太り細りは、指向性がある可能性があるので、縦方向と横方向の2種類の太り細り情報を保持しておいてもよい。
なお、太り細り情報が「太」である場合には、符号画像パターン（ステップＳ１００７の切り出しにより得られた画像）に対して細らせ処理が行われることになる。一方、太り細り情報が「細」である場合には、符号画像パターン（ステップＳ１００７の切り出しにより得られた画像）に対して太らせ処理が行われることになる。
【０１４４】
実施形態２のフローチャートである図１６のステップＳ１００７は、実施形態１のステップＳ１００７と同様である。
【０１４５】
次に、ステップＳ２００８で、ＣＰＵ３０１は、ステップＳ２００９で用いる補正処理のパラメータと、ステップＳ２０１０で用いる2値化処理のパラメータを算出する。その算出の際には、ステップＳ１００３で利用したＲＡＭ３０２に保持されているスキャン時のパラメータについての情報やスキャン画像処理時のパラメータに加え、以下のものが利用される。すなわち、ＲＡＭ３０２に保持されている太り細り情報又はステップＳ２００６で検出された検出用パターンが利用される。ステップＳ１００３で利用した情報に加えて、これらの情報を利用することにより、より精度の高い補正処理や2値化処理が実現される。
【０１４６】
次に、ステップＳ２００９で、ＣＰＵ３０１は、主な補正処理として、変倍部３２３による変倍処理、フィルタ処理部３２４によるフィルタ処理、線形性調整部３２５による線形調整処理、特殊処理部３２６による太らせ処理やノイズ画素除去などを実行する。
【０１４７】
ステップＳ２００９における変倍処理のパラメータの決定方法は、ステップＳ１００３におけるパラメータの決定方法と同様である。ただし、ステップＳ２００９での変倍処理は、部分的な画像に対しての変倍処理である。したがって、ステップＳ２００９での変倍処理の負荷は、Ｓ１００４の変倍処理の負荷と比べて低い。そのため、ステップＳ２００９では、変倍性能は高いが計算コストが高いキュービック変倍などを適用することができることを考慮して、変倍処理パラメータを決定しても良い。
【０１４８】
フィルタ処理のパラメータ決定方法は、ステップＳ１００３における決定方法と同様である。
【０１４９】
線形性調整処理パラメータの決定方法は、ステップＳ１００３における決定方法と同様である。
【０１５０】
特殊処理のパラメータの決定方法について述べる。ステップＳ２００６で検出された検出用パターンを利用して、黒セルと白セルの太り細りを補正するためのパラメータを算出する。たとえば、検出用パターンの中心を通る断面の黒領域：白領域：黒領域：白領域：黒領域の比率が、１．２：０．８：３．６：０．８：１．２であったとする。この場合は、黒セルを約0.83倍、白セルを1.25倍するような太らせ処理また細らせ処理用を行えば、黒領域：白領域：黒領域：白領域：黒領域の比率が、１：１：３：１：１となる。この理想的な比率に検出用パターンを変形するための太らせ処理・細らせ処理用のパラメータとして決定する。また、特殊処理部３２６はノイズ画素を除去する能力も持っており、その除去パラメータも算出する。
【０１５１】
また、他の特殊処理のパラメータの決定方法として以下のような方法も挙げられる。この場合もやはり、ステップＳ２００６で検出された検出用パターンを利用して、黒セルと白セルの太り細りを補正するためのパラメータを算出する。なお、検出用パターンは、ステップＳ２００６で三つ検出されている場合であるが、ここで対象とするのはそのうちの任意の一つである。
【０１５２】
たとえば、その検出用パターンが図１７のような検出用パターンだったとする。この検出用パターンの中心を通る横方向の断面の黒領域：白領域：黒領域：白領域：黒領域の画素数が、a画素：b画素：c画素：d画素：e画素だったとする。このとき、図１７に示すように左右の黒領域の中心間のセル数は6セルのはずである。そこで、(a/2+b+c+d+e/2)/6を1セルの画素数として計算し、この1セルの画素数をwとおくこととする。このように、基準となる1セルの画素数を求める。そして、各黒領域（a画素、c/3画素、e画素）が約w画素の幅となるように補正をかけるための太らせ・細らせ処理用のパラメータを決定する（黒領域が約w画素の幅となれば、結果として、白領域も約w画素の幅となる）。
【０１５３】
なお、基準となる1セルの画素数を求めるにあたって、左の黒領域の左端から右の黒領域の右端までの距離を用いる方法も考えられる。この場合、その距離は7セルとなるはずであるが、黒画素の太り・細りの影響で7セル以上になったり以下になったりと変動が激しい。そこで、基準となる1セルの画素数を求めるにあたっては、太り細りに影響されにくい左右の黒領域の中心間のセル数を用いる上述の方法の方が望ましい。
【０１５４】
続いて、パラメータ決定方法を具体的に説明する。様々な方法が考えられるが、その一例として考えられるのは、パラメータxh= (a + c + e -5w)/6である。前半部のa + c + e -5wという式で、黒領域が全体として見た時に総計でどれだけ太っているのか（ただし、このa + c + e -5wが−となる場合はどれだけ細っているか）を計算している。そして、このa + c + e -5wを６で割ることによって、各黒領域が平均的に見てどれだけ左右に太っているかを計算している。黒領域は全部で３つあり、太り得る箇所は各黒領域で左右に二箇所あるため、３×２の６を除算値として用いている。
【０１５５】
このパラメータxh画素の太りを元に戻すためには、-xh画素の太らせ処理（即ち、xh画素の細らせ処理）が必要である。このパラメータを用いた太らせ・細らせ処理としては、下記のような処理が考えられる。なお、本ステップで行われるのはパラメータを求めるまでであり、実際にそのパラメータを使った下記のような太らせ処理・細らせ処理は、特殊処理部３２６で、以下のように行われる。
【０１５６】
まず、太らせ処理の場合には、注目画素の濃度値（value(x,y)）を、注目画素を含む注目画素近傍の画素の濃度値のうちの最大値（processed_value(x,y)）に置き換える処理を行う。（細らせ処理の場合は、最大値ではなく最小値となる。）これを計算式で表すと以下の通りである。
processed_value(x,y) = max_value(value(x-1,y),value(x,y),value(x+1,y))
prcessed_value(x,y) :上記置き換える処理を行った後の注目画素の濃度値
value(x,y) :上記置き換えるの処理を行う前の注目画素の濃度値
max_value(a,b,c) ：a,b,c,のうちの最大値を出力する関数
【０１５７】
具体的には、まず、注目画素をx=1,y=1（左上）に存在する画素に設定し、上記置き換える処理を実行する。そして、その置き換える処理を行った後で注目画素をx=2,y=1となるようにずらす。この注目画素に対して上記置き換える処理を実行して、一つずつ注目画素をずらしながら、上記置き換える処理を全ての画素（ステップＳ１００７の切り出しにより得られた画像における全ての画素）に対して実行していく。
【０１５８】
なお、近傍の探索範囲は、上記の数式にも現れているように、注目画素を中心とした横方向に3画素の範囲としている。即ち、近傍の画素とは、注目画素の左の画素と注目画素と注目画素の右の画素の３画素を含む。
【０１５９】
以上の処理を一回実行すると、約１画素の太らせ処理・細らせ処理となる。
【０１６０】
本実施形態では、このような置き換え処理を「xh」回（「xh」は、xhを四捨五入することで得られた整数値）行う。Ｎ回目（Nは「xh」以下で、かつ、２以上の自然数）の置換えを行う際には、Ｎ−１回目の置換え処理が行われて得られた全ての画素のprocessed_value(x,y)をvalue(x,y)として設定してから、Ｎ回目の置換え処理を行うことになる。
【０１６１】
なお、縦方向についても、横方向と同じような形で、補正パラメータの算出を行う。縦方向の場合には、太らせ・細らせ処理の近傍探索範囲は注目画素を中心とした縦方向に3画素である。
【０１６２】
このように、縦方向と横方向の2方向に関して、太らせ・細らせ処理用のパラメータを決定する。そして、これらのパラメータを使って、前述した縦方向と横方向の太らせ・細らせ処理を順次実行する（具体的には、例えば、横方向の太らせ・細らせ処理が終わった後で、縦方向の太らせ・細らせ処理を実行する。即ち、横方向で「xh」回の置換え処理が終わった後で、縦方向で「yh」回の置換え処理を実行する。なお、yhとは、縦方向用のパラメータである）。ここで、縦と横の太らせを同時に行うようにするために、太らせ・細らせ処理の際の近傍探索範囲を、注目画素を中心とした3×3画素としてもよい。
【０１６３】
また、特殊処理部３２６はノイズ画素を除去する能力も持っており、その除去パラメータも算出する。太り細り情報からは、復号対応の符合画像パターンのセルサイズを予測することができ、さきほどのw画素が予測されたセルサイズである。予測されたセルサイズに基づいて、ノイズとして除去するべき孤立画素の大きさ（例えば、縦w/2、横v/2）を算出し、それを除去パラメータとする。たとえば、横方向のwが10画素で、縦方向のセルサイズvが12画素であった場合には、半分以下の大きさである横方向5画素×縦方向6画素以下の孤立画素群をノイズ画素とみなす。このようにして、画像（ステップＳ１００７の切り出しにより得られた画素）から除去するようなノイズ除去パラメータが決定される。
【０１６４】
ステップＳ２０１０の2値化処理の閾値パラメータは、通常、補正処理が正常に行われていれば、50%の値（画像が8bitであれば127もしくは128）で構わない。ただし、処理の負荷を低減するために、補正処理が十分に施されていない場合は、施すべきだった補正処理パラメータから、その補正処理を施さないことによる、５０％の閾値からのずれを計算する。そして、そのずれを反映させた値を閾値とする。（フィルタ処理などが絡むため、正確なずれ量は計算できない）
【０１６５】
次に、ステップＳ２００９で、ＣＰＵ３０１は、ステップＳ２００８で決定した補正処理パラメータに基づいて、補正処理を行う。すなわち、ＣＰＵ３０１は、ステップＳ２００８で決定した補正処理パラメータに基づいて、補正処理を行うにあたっての補正量を決定する。補正処理対象となる画像は、スキャンした画像全面から切り出した画像である。
【０１６６】
変倍部３２３は、ステップＳ２００８で決定した変倍処理パラメータに基づいて、変倍処理を行う。フィルタ処理部３２４は、ステップＳ２００８で決定した変倍処理パラメータに基づいて、フィルタ処理を行う。線形性調整部３２５は、ステップＳ２００８で決定した線形性調整処理パラメータに基づいて、線形性調整処理を行う。特殊処理部３２６は、ステップＳ２００８で決定した太らせ処理・細らせ処理用のパラメータに基づいて、特殊処理（太らせ処理・細らせ処理）を行う。この処理については、既に上述した通りである。また、特殊処理部３２６は、ステップＳ２００８で決定したノイズ除去パラメータに基づいて、特殊処理（ノイズ除去）を行う。
【０１６７】
補正処理対象となる画像は、スキャンした画像全面から切り出した画像であり、画像全面に補正する場合に比べて、補正処理の計算コストは低い。そのため、すべての補正処理を実行することが望ましいが、一部の補正処理だけを行っても構わない。
【０１６８】
次に、ステップＳ２０１０で、ＣＰＵ３０１は、ステップＳ２００８で決定した2値化処理の閾値パラメータに基づいて、多値2値部３２１で、ステップＳ２００９で補正された画像に対して2値化処理を行う。
【０１６９】
次に、ステップ２０１１で、ＣＰＵ３０１は、ステップＳ２０１０で2値化された画像から、符号画像パターン復号部３２９で、符号画像パターンの復号を行う。
【０１７０】
ステップＳ１００２でスキャン画像処理が施された符号画像パターンが図１２のようなものであったとき、ステップＳ１００５で2値化された符号画像パターンは図１３のようなものとなる。
【０１７１】
図１３に示されている符号画像パターンは、ステップＳ１００６の検出用パターンの検出処理をする上では、検出用パターンがはっきりとしているため、検出に問題がない。しかし、ステップＳ２０１１の符合画像パターン復号処理をする上では、黒セルが細くなりすぎていて、復号に問題が生じる。つまり、ステップＳ１００４やステップＳ１００５で実行される補正処理および2値化処理では、ステップＳ１００６の処理に十分であっても、ステップＳ２０１１の処理には不十分な前処理であることになる。
【０１７２】
ステップＳ１００６で処理する画像サイズとステップＳ２０１１で処理する画像サイズは大きく異なる。そのため、ステップＳ２０１１の処理のために、計算コストが掛る前処理をしても、全体の計算コストに大きな影響を及ぼさない。そこで、ステップＳ２００９とステップＳ２０１０で、ステップＳ１００４とステップＳ１００５に比べて計算コストが掛かる、符合画像パターンの復号処理に適した画像となるような前処理を施す。そうすることにより、図１４のような白黒セルの大きさの釣り合いが取れた画像を生成することができる。そして、ステップＳ２０１１では、図１４のような画像に対して符号画像パターンの復号処理を行う。
【０１７３】
以上説明したように、上記の実施形態によれば、以下のことが可能となる。すなわち、符号画像パターンの検出用パターンを検出するための画像と、符号画像パターンを復号する画像を別々に処理することにより、計算コストを抑えた形で、符号画像パターンの復号性能を向上させることが可能となる。
【０１７４】
ＣＰＵ３０１は、復号処理が終わったあとに、復号結果を不図示のデータバスを用いてＲＡＭ３０２に保持する。
【０１７５】
実施形態２のフローチャートである図１６のステップＳ１０１２〜ステップＳ１０１４は、実施形態１のステップＳ１０１２〜ステップＳ１０１４と同様である。
【０１７６】
＜その他の実施形態＞
さらに本発明は、複数の機器（例えばコンピュータ、インターフェース機器、リーダ、プリンタなど）を有するシステムに適用することも、一つの機器からなる装置（複合機、プリンタ、ファクシミリ装置など）に適用することも可能である。
【０１７７】
また本発明の目的は、上述した実施形態で示したフローチャートの手順を実現するプログラムコードを記憶した記憶媒体から、コンピュータがプログラムコードを読出し実行することによっても達成される。この場合、コンピュータで読取り可能な記憶媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することになる。そのため、このプログラムコード及びプログラムコードを記憶した記憶媒体も本発明の一つとなる。
【０１７８】
プログラムコードを供給するための記憶媒体としては、例えば、フロッピー（登録商標）ディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどを用いることができる。
【符号の説明】
【０１７９】
１０  画像形成装置
１１  コントローラ
１２  操作部
１３  スキャナ
１４  プリンタ
【図１】
2010213257.tif 000003
【図２】
2010213257.tif 000004
【図３】
2010213257.tif 000005
【図４】
2010213257.tif 000006
【図５】
2010213257.tif 000007
【図６】
2010213257.tif 000008
【図７】
2010213257.tif 000009
【図８】
2010213257.tif 000010
【図９】
2010213257.tif 000011
【図１０】
2010213257.tif 000012
【図１１】
2010213257.tif 000013
【図１２】
2010213257.tif 000014
【図１３】
2010213257.tif 000015
【図１４】
2010213257.tif 000016
【図１５】
2010213257.tif 000017
【図１６】
2010213257.tif 000018
【図１７】
2010213257.tif 000019