(57)【特許請求の範囲】
【請求項１】
画像形成装置の濃度補正に用いる濃度補正テーブルを記憶する記憶手段と、
前記画像形成装置の入出力特性であって、複数のデータ点を有する入出力特性を取得する入出力特性取得手段と、
前記入出力特性取得手段により取得された入出力特性が有するデータ点のうち、あらかじめ決められた数のデータ点を、前記濃度補正テーブルに含まれるデータ点の初期値として特定する初期化手段と、
前記初期化手段により特定されたデータ点のうち、一のデータ点を処理の基準となる基準データ点として、前記基準データ点と特定方向において隣接するデータ点を隣接データ点として特定するデータ点特定手段と、
前記基準データ点と前記隣接データ点との間の補間処理により、これら２点間における補間特性を算出する補間特性算出手段と、
前記補間特性算出手段により算出された補間特性と、前記入出力特性とを比較することにより、前記基準データ点と前記隣接データ点との間における補間誤差の代表値を算出する補間誤差算出手段と、
前記補間誤差算出手段により算出された補間誤差の代表値が、あらかじめ決められた許容誤差以下または許容誤差未満であるか判断する補間誤差判断手段と、
前記補間誤差判断手段により前記補間誤差の代表値が前記許容誤差以下または前記許容誤差未満でないと判断された場合、前記代表値に対応するデータ点を、前記記憶手段に記憶された濃度補正テーブルに追加する濃度補正テーブル更新手段と、
前記濃度補正テーブル更新手段により追加されたデータ点を、新たな隣接データ点として特定する隣接データ点更新手段と、
前記補間誤差判断手段により前記補間誤差の代表値が前記許容誤差以下または前記許容誤差未満であると判断された場合、前記隣接データ点を新たな基準データ点として特定する基準データ点更新手段と、
前記初期化手段により特定されたデータ点のうち、前記基準データ点更新手段により新たな基準データ点として特定されたデータ点と前記特定方向において隣接するデータ点が存在するか判断する終了判断手段と、
前記終了判断手段により、前記基準データ点と前記特定方向において隣接するデータ点が存在しないと判断された場合、前記濃度補正テーブルに含まれるデータ点を確定する濃度補正テーブル確定手段と
を有する濃度補正テーブル生成装置。
【請求項２】
前記画像形成装置が複数のノズルを有し、
前記入出力特性が、複数の最大出力値および最小出力値であって、各々前記複数のノズルの各々に対応する複数の最大出力値および最小出力値を含み、
前記初期化手段が、前記複数の最大出力値のうち一の出力値に対応するデータ点と、前記複数の最小出力値のうち一の出力値に対応するデータ点とを初期値として特定する
ことを特徴とする請求項１に記載の濃度補正テーブル生成装置。
【請求項３】
前記複数の最大出力値のうち一の出力値が、前記複数の最大出力値のうち最小の出力値であり、
前記複数の最小出力値のうち一の出力値が、前記複数の最小出力値のうち最大の出力値である
ことを特徴とする請求項２に記載の濃度補正テーブル生成装置。
【請求項４】
前記補間誤差の代表値が、前記補間誤差の最大値であることを特徴とする請求項１に記載の濃度補正テーブル生成装置。
【請求項５】
前記入出力特性取得手段が、前記画像形成装置が出力可能な全階調値についてのデータ点を含むことを特徴とする請求項１に記載の濃度補正テーブル生成装置。
【請求項６】
画像形成装置の濃度補正に用いる濃度補正テーブルを生成する濃度補正テーブル生成方法であって、
前記画像形成装置の入出力特性であって、複数のデータ点を有する入出力特性を取得する入出力特性取得ステップと、
前記入出力特性が有するデータ点のうち、あらかじめ決められた数のデータ点を、前記濃度補正テーブルに含まれるデータ点の初期値として特定する初期化ステップと、
前記初期化ステップにおいて特定されたデータ点のうち、一のデータ点を処理の基準となる基準データ点として、前記基準データ点と特定方向において隣接するデータ点を隣接データ点として特定するデータ点特定ステップと、
前記基準データ点と前記隣接データ点との間の補間処理により、これら２点間における補間特性を算出する補間特性算出ステップと、
前記補間特性と、前記入出力特性とを比較することにより、前記基準データ点と前記隣接データ点との間における補間誤差の代表値を算出する補間誤差算出ステップと、
前記補間誤差の代表値が、あらかじめ決められた許容誤差以下または許容誤差未満であるか判断する補間誤差判断ステップと、
前記補間誤差判断ステップにおいて前記補間誤差の代表値が前記許容誤差以下または前記許容誤差未満でないと判断された場合、前記代表値に対応するデータ点を、前記記憶手段に記憶された濃度補正テーブルに追加する濃度補正テーブル更新ステップと、
前記濃度補正テーブル更新ステップにおいて追加されたデータ点を、新たな隣接データ点として特定する隣接データ点更新ステップと、
前記補間誤差の代表値が前記許容誤差以下または前記許容誤差未満であると判断された場合、前記隣接データ点を新たな基準データ点として特定する基準データ点更新ステップと、
前記初期化ステップにおいて特定されたデータ点のうち、前記基準データ点更新手段により新たな基準データ点として特定されたデータ点と前記特定方向において隣接するデータ点が存在するか判断する終了判断ステップと、
前記終了判断ステップにおいて、前記基準データ点と前記特定方向において隣接するデータ点が存在しないと判断された場合、前記濃度補正テーブルに含まれるデータ点を確定する濃度補正テーブル確定ステップと
を有する補正テーブル生成方法。
【請求項７】
コンピュータ装置を、
画像形成装置の濃度補正に用いる濃度補正テーブルを記憶する記憶手段と、
前記画像形成装置の入出力特性であって、複数のデータ点を有する入出力特性を取得する入出力特性取得手段と、
前記入出力特性取得手段により取得された入出力特性が有するデータ点のうち、あらかじめ決められた数のデータ点を、前記濃度補正テーブルに含まれるデータ点の初期値として特定する初期化手段と、
前記初期化手段により特定されたデータ点のうち、一のデータ点を処理の基準となる基準データ点として、前記基準データ点と特定方向において隣接するデータ点を隣接データ点として特定するデータ点特定手段と、
前記基準データ点と前記隣接データ点との間の補間処理により、これら２点間における補間特性を算出する補間特性算出手段と、
前記補間特性算出手段により算出された補間特性と、前記入出力特性とを比較することにより、前記基準データ点と前記隣接データ点との間における補間誤差の代表値を算出する補間誤差算出手段と、
前記補間誤差算出手段により算出された補間誤差の代表値が、あらかじめ決められた許容誤差以下または許容誤差未満であるか判断する補間誤差判断手段と、
前記補間誤差判断手段により前記補間誤差の代表値が前記許容誤差以下または前記許容誤差未満でないと判断された場合、前記代表値に対応するデータ点を、前記記憶手段に記憶された濃度補正テーブルに追加する濃度補正テーブル更新手段と、
前記濃度補正テーブル更新手段により追加されたデータ点を、新たな隣接データ点として特定する隣接データ点更新手段と、
前記補間誤差判断手段により前記補間誤差の代表値が前記許容誤差以下または前記許容誤差未満であると判断された場合、前記隣接データ点を新たな基準データ点として特定する基準データ点更新手段と、
前記初期化手段により特定されたデータ点のうち、前記基準データ点更新手段により新たな基準データ点として特定されたデータ点と前記特定方向において隣接するデータ点が存在するか判断する終了判断手段と、
前記終了判断手段により、前記基準データ点と前記特定方向において隣接するデータ点が存在しないと判断された場合、前記濃度補正テーブルに含まれるデータ点を確定する濃度補正テーブル確定手段と
して機能させるプログラム。
【請求項８】
コンピュータ装置を、
画像形成装置の濃度補正に用いる濃度補正テーブルを記憶する記憶手段と、
前記画像形成装置の入出力特性であって、複数のデータ点を有する入出力特性を取得する入出力特性取得手段と、
前記入出力特性取得手段により取得された入出力特性が有するデータ点のうち、あらかじめ決められた数のデータ点を、前記濃度補正テーブルに含まれるデータ点の初期値として特定する初期化手段と、
前記初期化手段により特定されたデータ点のうち、一のデータ点を処理の基準となる基準データ点として、前記基準データ点と特定方向において隣接するデータ点を隣接データ点として特定するデータ点特定手段と、
前記基準データ点と前記隣接データ点との間の補間処理により、これら２点間における補間特性を算出する補間特性算出手段と、
前記補間特性算出手段により算出された補間特性と、前記入出力特性とを比較することにより、前記基準データ点と前記隣接データ点との間における補間誤差の代表値を算出する補間誤差算出手段と、
前記補間誤差算出手段により算出された補間誤差の代表値が、あらかじめ決められた許容誤差以下または許容誤差未満であるか判断する補間誤差判断手段と、
前記補間誤差判断手段により前記補間誤差の代表値が前記許容誤差以下または前記許容誤差未満でないと判断された場合、前記代表値に対応するデータ点を、前記記憶手段に記憶された濃度補正テーブルに追加する濃度補正テーブル更新手段と、
前記濃度補正テーブル更新手段により追加されたデータ点を、新たな隣接データ点として特定する隣接データ点更新手段と、
前記補間誤差判断手段により前記補間誤差の代表値が前記許容誤差以下または前記許容誤差未満であると判断された場合、前記隣接データ点を新たな基準データ点として特定する基準データ点更新手段と、
前記初期化手段により特定されたデータ点のうち、前記基準データ点更新手段により新たな基準データ点として特定されたデータ点と前記特定方向において隣接するデータ点が存在するか判断する終了判断手段と、
前記終了判断手段により、前記基準データ点と前記特定方向において隣接するデータ点が存在しないと判断された場合、前記濃度補正テーブルに含まれるデータ点を確定する濃度補正テーブル確定手段と
して機能させるプログラムを記憶した記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置により形成される画像の濃度むらを補正する技術に関する。
【背景技術】
【０００２】
インクジェットプリンタ等、液滴吐出機構を有する画像形成装置は、印刷の高速化のためにインクを吐出するノズルを複数有している。ここで、理想的にはすべてのノズルが均一な間隔で一列に配列されていることが望ましい。しかし、現実には製造技術上の問題からノズルの間隔には一定のばらつきが存在する。また、ノズルから吐出されるインクの量にばらつきが生じる場合もある。このような印刷ヘッドを用いて印刷を行うと、ヘッドから吐出されたインクは、ノズル間隔のばらつきに起因して着弾位置や大きさにばらつきが発生する。すなわち、用紙上に形成される画像（ドット）は、ノズルのばらつきを反映したものとなってしまう。特にラインヘッド型インクジェットプリンタのような用紙送り方向のみの１パス型の画像形成装置においては、このようなノズルのばらつきはいわゆるバンディング現象を引き起こす原因となる。
【０００３】
ノズルのばらつきに起因するバンディング現象を抑制する技術として、画像処理によりノズルのばらつきを補償する技術がある（例えば特許文献１参照）。特許文献１には、ノズルのばらつきに起因する印刷濃度のむらを、補正テーブルにより補償する技術が開示されている。すなわち、特許文献１は、いわゆるベタパターンを印刷したときの印刷濃度に基づいて得られた補正係数をあらかじめ画像形成装置に記憶しておき、印刷時には画素の階調値に補正係数を乗じることにより濃度むらを補正する技術を開示している。
【特許文献１】特開平１−１２９６６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
濃度補正の精度を上げる方法は様々なものが考えられる。中でも、補正テーブルに記憶するデータの数を増やすことが最も直接的な方法である。精度向上という観点からは、プリンタが出力可能な全階調値についてデータを記憶しておくことが望ましい。しかし、補正テーブルに記憶するデータ量が多くなると、そのぶん多くのメモリを確保しなければならないという問題が生じる。一方、省メモリ化の観点からは、補正テーブルに記憶するデータ量は少ないほうが望ましい。補正テーブルのデータ量を削減した場合、補正テーブルに記憶されたデータ間については、線形補間により補正値を算出する必要がある。しかし、入出力特性が線形性でない領域について線形補間をすると、補間による誤差が大きくなってしまうという問題があった。
【０００５】
本発明は上述の事情に鑑みてなされたものであり、補間誤差を許容範囲に収めることができ、かつ、メモリ容量を抑えた補正テーブルを作成する技術を提供する。
【課題を解決するための手段】
【０００６】
上述の課題を解決するため、本発明は、画像形成装置の濃度補正に用いる濃度補正テーブルを記憶する記憶手段と、前記画像形成装置の入出力特性であって、複数のデータ点を有する入出力特性を取得する入出力特性取得手段と、前記入出力特性取得手段により取得された入出力特性が有するデータ点のうち、あらかじめ決められた数のデータ点を、前記濃度補正テーブルに含まれるデータ点の初期値として特定する初期化手段と、前記初期化手段により特定されたデータ点のうち、一のデータ点を処理の基準となる基準データ点として、前記基準データ点と特定方向において隣接するデータ点を隣接データ点として特定するデータ点特定手段と、前記基準データ点と前記隣接データ点との間の補間処理により、これら２点間における補間特性を算出する補間特性算出手段と、前記補間特性算出手段により算出された補間特性と、前記入出力特性とを比較することにより、前記基準データ点と前記隣接データ点との間における補間誤差を算出する補間誤差算出手段と、前記補間誤差算出手段により算出された補間誤差が、あらかじめ決められた許容誤差以下または許容誤差未満であるか判断する補間誤差判断手段と、前記補間誤差判断手段により前記補間誤差が前記許容誤差以下または前記許容誤差未満でないと判断された場合、前記入出力特性において前記基準データ点と前記隣接データ点との間に存在するデータ点のうち、あらかじめ決められた条件を満たすデータ点を、前記記憶手段に記憶された濃度補正テーブルに追加する濃度補正テーブル更新手段と、前記濃度補正テーブル更新手段により追加されたデータ点を、新たな隣接データ点として特定する隣接データ点更新手段と、前記判断手段により前記補間誤差が前記許容誤差以下または前記許容誤差未満であると判断された場合、前記隣接データ点を新たな基準データ点として特定する基準データ点更新手段と、前記初期化手段により特定されたデータ点のうち、前記基準データ点更新手段により新たな基準データ点として特定されたデータ点と前記特定方向において隣接するデータ点が存在するか判断する終了判断手段と、前記終了判断手段により、前記基準データ点と前記特定方向において隣接するデータ点が存在しないと判断された場合、前記濃度補正テーブルに含まれるデータ点を確定する濃度補正テーブル確定手段とを有する濃度補正テーブル生成装置を提供する。
【０００７】
好ましい態様において、この濃度補正テーブル生成装置は、前記画像形成装置が複数のノズルを有し、前記入出力特性が、複数の最大出力値および最小出力値であって、各々前記複数のノズルの各々に対応する複数の最大出力値および最小出力値を含み、前記初期化手段が、前記複数の最大出力値のうち一の出力値に対応するデータ点と、前記複数の最小出力値のうち一の出力値に対応するデータ点とを初期値として特定してもよい。この場合、前記複数の最大出力値のうち一の出力値が、前記複数の最大出力値のうち最小の出力値であり、前記複数の最小出力値のうち一の出力値が、前記複数の最小出力値のうち最大の出力値であってもよい。
【０００８】
さらに別の好ましい態様において、この濃度補正テーブル生成装置は、前記補間の最大値であってもよい。
【０００９】
さらに別の好ましい態様において、この濃度補正テーブル生成装置は、前記入出力特性取得手段が、前記画像形成装置が出力可能な全階調値についてのデータ点を含んでもよい。
【００１０】
また、本発明は、コンピュータ装置に上記の機能を実現させるプログラムおよびそのプログラムを記憶した記憶媒体を提供する。
【００１１】
さらに、本発明は、コンピュータ装置に、画像形成装置の濃度補正に用いる濃度補正テーブルを生成する濃度補正テーブル生成方法であって、前記画像形成装置の入出力特性であって、複数のデータ点を有する入出力特性を取得する入出力特性取得ステップと、前記入出力特性が有するデータ点のうち、あらかじめ決められた数のデータ点を、前記濃度補正テーブルに含まれるデータ点の初期値として特定する初期化ステップと、前記初期化ステップにおいて特定されたデータ点のうち、一のデータ点を処理の基準となる基準データ点として、前記基準データ点と特定方向において隣接するデータ点を隣接データ点として特定するデータ点特定ステップと、前記基準データ点と前記隣接データ点との間の補間処理により、これら２点間における補間特性を算出する補間特性算出ステップと、前記補間特性と、前記入出力特性とを比較することにより、前記基準データ点と前記隣接データ点との間における補間誤差の代表値を算出する補間誤差算出ステップと、前記補間誤差の代表値が、あらかじめ決められた許容誤差以下または許容誤差未満であるか判断する補間誤差判断ステップと、前記補間誤差判断ステップにおいて前記補間誤差の代表値が前記許容誤差以下または前記許容誤差未満でないと判断された場合、前記代表値に対応するデータ点を、前記記憶手段に記憶された濃度補正テーブルに追加する濃度補正テーブル更新ステップと、前記濃度補正テーブル更新ステップにおいて追加されたデータ点を、新たな隣接データ点として特定する隣接データ点更新ステップと、前記補間誤差の代表値が前記許容誤差以下または前記許容誤差未満であると判断された場合、前記隣接データ点を新たな基準データ点として特定する基準データ点更新ステップと、前記初期化ステップにおいて特定されたデータ点のうち、前記基準データ点更新手段により新たな基準データ点として特定されたデータ点と前記特定方向において隣接するデータ点が存在するか判断する終了判断ステップと、前記終了判断ステップにおいて、前記基準データ点と前記特定方向において隣接するデータ点が存在しないと判断された場合、前記濃度補正テーブルに含まれるデータ点を確定する濃度補正テーブル確定ステップとを有する補正テーブル生成方法とを有する補正テーブル生成方法を提供する。
【発明を実施するための最良の形態】
【００１２】
以下、図面を参照して本発明の実施形態について説明する。
＜１．画像形成システム＞
図１は、本発明の第１実施形態に係る画像形成システム１の機能構成を示すブロック図である。画像形成システム１は、画像形成装置２００およびＰＣ（Personal Computer）１００から構成される。画像形成装置２００は、制御データに従ってインクの吐出を行い用紙（記録材）上に画像を形成する装置である。ＰＣ１００は、画像形成装置２００を制御するコンピュータ装置である。ＰＣ１００は、ワードプロセッサ、画像加工ソフト等のアプリケーション１０８と、画像形成装置２００を制御するためのデバイスドライバ１０９とを有する。アプリケーション１０８は、ユーザの指示入力などに応じて画像データをデバイスドライバ１０９に引き渡す。デバイスドライバ１０９は、処理対象の画像データ（ＲＧＢ（赤、緑、青）カラー多値）を、ＣＭＹＫ（シアン、マゼンタ、イエロー、黒）の色毎にノズルからのインクの吐出を指示する制御データに変換し、制御データを画像形成装置２００に出力する機能を有する。
【００１３】
デバイスドライバ１０９は、詳細には以下の機能を有する。解像度変換部１０１は、入力されたカラー多値の画像データを、画像形成装置２００で処理可能な解像度に解像度変換する。色空間変換部１０２は、ＲＧＢ形式の画像データをＣＭＹＫ形式の画像データに変換する。濃度補正部１０３は、濃度補正テーブルＴＢ１を用いて画像データに濃度補正処理を行う。ここで、濃度補正テーブルＴＢ１は画像形成装置２００に記憶されている濃度補正テーブルＴＢ１を読み出してＰＣ１００に記憶したものである。濃度補正テーブルＴＢ１の詳細は後述する。量子化部１０４は、多値ＣＭＹＫデータを２値ＣＭＹＫデータに変換する２値化処理を行う。ラスタライズ部１０５は、２値ＣＭＹＫデータから制御データを生成する。画像形成装置２００の画像形成部２５０は、制御データに従ってＣＭＹＫ各色のインクを吐出する。こうして、画像形成システム１は用紙（記録材）上に画像を形成する。
【００１４】
図２は、画像形成装置２００のハードウェア構成を示すブロック図である。本実施形態において、画像形成装置２００はラインヘッド型インクジェットプリンタである。ＣＰＵ（Central Processing Unit）２１０は、ＲＯＭ（Read Only Memory）２２０に記憶されている印刷処理プログラムを読み出して実行する。ＲＯＭ２２０は、画像形成装置２００に固有の濃度補正テーブルＴＢ１を記憶している（濃度補正テーブルＴＢ１の詳細は後述する）。また、ＲＯＭ２２０は、書き換え可能なＥＥＰＲＯＭ（Electronically Erasable and Programmable Read Only Memory）であることが望ましい。ＲＡＭ（Random Access Memory）２３０は、ＣＰＵ２１０がプログラムを実行する際の作業エリアとして機能する。Ｉ／Ｆ２４０は、ＰＣ１００等の他の機器との間でデータや制御信号の送受信を行うためのインターフェースである。ＲＡＭ２３０はまた、Ｉ／Ｆ２４０を介して受信したデータを記憶する。画像形成部２５０は、ＣＰＵ２１０の制御下で、ノズル制御データに従って用紙上に画像形成を行う。以上の各構成要素は、バス２９０で相互に接続されている。ＣＰＵ２１０がアプリケーション１０８およびデバイスドライバ１０９を実行することにより、画像形成装置２００は、図１に示される各機能構成要素に相当する機能を具備する。
【００１５】
画像形成部２５０は、図２に示されるように、さらに以下で説明する構成を有している。ラインヘッド２５１は、インクを吐出するノズル（図示略）を複数（ｚ個）有する印刷ヘッドである。ノズルは、圧電体により液滴を吐出するピエゾ式のもの、加熱により吐出する加熱式のもの等、いかなる構造のノズルでもよい。ラインヘッド２５１は、画像形成装置２００が印刷可能な用紙の最大幅以上の大きさを有している。インクタンク２５２はノズルにインクを供給するものであって、ＣＭＹＫの色毎に設けられている。本実施形態において、画像形成装置２００は４色のインクを用いて画像形成を行うが、６色、７色、あるいはそれ以上の色数のインクを用いる構成としてもよい。ページバッファ２５７は、画像１ページ分のノズル制御データを記憶するメモリである。ヘッド駆動回路２５３は、制御部２５４の制御下で、ラインヘッド２５１に搭載された複数のノズルのうち、指定されたノズルからインクの液滴を吐出させるための制御信号をラインヘッド２５１に出力する。このように、指定されたノズルから、用紙に対しインクの液滴が吐出される。ノズルから吐出されたインクの液滴は、用紙上にドットを形成する。以下、説明の便宜上、ノズルからインクの液滴を吐出することを「ドットのオン」、ノズルからインクの液滴を吐出しないことを「ドットのオフ」と表現する。例えば「ドットのオン／オフを指定するデータ」とは、指定されたノズルについてインクの液滴を吐出するか吐出しないかを指定するデータを意味する。また、「ドット」とはノズルから吐出されるインク滴、またはそのインク滴により用紙上に形成された画像を意味する。
【００１６】
ラインヘッド２５１は用紙幅以上のサイズを有しているので、１ライン分のドットを形成することができる。モータ２５５は用紙を所定方向に移動（紙送り）させるモータである。モータ駆動回路２５６は、制御部２５４の制御下でモータ２５５に駆動信号を出力する。モータ２５５が用紙を１ライン分移動させると、次のラインの描画が行われる。画像形成装置２００は、このようにして１方向の走査（用紙の紙送り）のみで１枚の用紙に画像形成を行うことができる。
【００１７】
図３は、ＰＣ１００のハードウェア構成を示すブロック図である。ＣＰＵ１１０は、ＰＣ１００の各構成要素を制御する制御部である。ＣＰＵ１１０は、ＨＤＤ（Hard Disk Drive）１５０に記憶されている制御データ生成プログラム（デバイスドライバ）を読み出して実行する。ＲＡＭ１３０は、ＣＰＵ１１０がプログラムを実行する際の作業エリアとして機能する。ＲＯＭ１２０は、ＰＣ１００の起動に必要なプログラム等を記憶している。Ｉ／Ｆ１４０は、画像形成装置２００等の他の機器との間でデータや制御信号の送受信を行うためのインターフェースである。ＨＤＤ１５０は、各種データやプログラムを記憶する記憶装置である。また、ＨＤＤ１５０は、画像形成装置２００から読み出した濃度補正テーブルＴＢ１を記憶する。キーボード１６０およびディスプレイ１７０は、ユーザがＰＣ１００に対し操作入力を行うためのユーザインターフェースである。以上の各構成要素は、バス１９０で相互に接続されている。ＣＰＵ２１０が印刷処理プログラムを実行することにより、ＰＣ１００は、図１に示される各機能構成要素に相当する機能を具備する。なお、図示は省略したが、ＰＣ１００と画像形成装置２００とは、Ｉ／Ｆ１４０およびＩ／Ｆ２４０を介して、有線あるいは無線で接続されている。
【００１８】
図４は、画像形成システム１の動作を示すフローチャートである。画像形成装置２００の図示せぬ電源が投入されると、ＣＰＵ２１０は、ＲＯＭ２２０から印刷処理プログラムを読み出して実行する。印刷処理プログラムを実行すると、ＣＰＵ２１０は、制御データの入力待ち状態となる。ＰＣ１００において、アプリケーション１０８から印刷指示が入力されると、ＣＰＵ１１０は、ＨＤＤ１５０から画像形成装置２００のデバイスドライバ１０９を読み出して実行する。まず、ＣＰＵ１１０は処理対象の画像データをＨＤＤ１５０から読み出し、ＲＡＭ１３０に記憶する（ステップＳ１００）。本実施形態において、入力画像データはＲＧＢカラー多値の画像データである。また、画像形成装置２００はＣＭＹＫ４色のインクにより画像形成を行うインクジェットプリンタである。したがって、画像形成装置２００は、ＲＧＢからＣＭＹＫへと画像データの色空間を変換する必要がある。また、入力される画像データは画素ごとに階調値を有しているが、画像形成装置２００のノズルから吐出されるインクは、あるサイズのドットについてドットのオン／オフ（ドットを打つ／打たない）の２階調のみで中間階調を表現することができない。また、画像形成装置２００が形成することのできるドットのサイズはＳ、Ｍ、Ｌの３種類である。このため画像形成装置２００においては、入力画像データの１画素に、ａドット×ａドットのドットマトリクスを対応させ、ドットマトリクスに描画されるドットの数で階調表現を行っている。なお、ドットマトリクスは正方形に限定されず、長方形であってもよい。したがって、入力画像データをドットのオン／オフを指定するデータに変換する必要がある。このために、以下で説明するように、画像データの解像度を、ノズルの数に相当する解像度に変換する処理、および、多階調の画像データをドットのオン／オフを指定する２階調のデータに変換する処理を行う必要がある。なお、画像形成装置２００が形成することのできるドットサイズは３種類に限られず、それ以上でも以下でもよい。
【００１９】
続いてＣＰＵ１１０は、入力画像データの解像度を判断する。ＣＰＵ１１０は入力画像データの解像度が画像形成装置２００で処理可能な解像度と異なる場合には、入力画像データを、画像形成装置２００が処理可能な解像度とする解像度変換処理を行う（ステップＳ１１０）。ＣＰＵ１１０は、解像度変換後の画像データをＲＡＭ１３０に記憶する。続いてＣＰＵ１１０は、解像度変換後の画像データを画像形成装置２００の色空間に適合させるため、ＲＧＢ形式の画像データをＣＭＹＫ形式の画像データに変換する（ステップＳ１２０）。ＣＰＵ１１０は色変換後の画像データをＲＡＭ１３０に記憶する。続いてＣＰＵ１１０は、色変換後の画像データに対して濃度補正テーブルＴＢ１を用いて濃度補正処理を行う（ステップＳ１３０）。濃度補正処理の詳細については後述する。
【００２０】
続いてＣＰＵ１１０は、濃度補正後の画像データに対してディザマトリクス法、誤差拡散法等による２値化（量子化）処理を行う（ステップＳ１４０）。ＣＰＵ１１０は、濃度補正後の画像データをＲＡＭ１３０に記憶する。ＣＰＵ１１０は、濃度補正後の画像データから、制御データを生成するラスタライズ処理を行う（ステップＳ１５０）。ＣＰＵ１１０は、生成された制御データを画像形成装置２００に出力する。画像形成装置２００の画像形成部２５０は、制御データに従って用紙上に画像形成を行う。画像形成装置２００は、このようにして濃度が補正された画像を用紙に形成する。
【００２１】
＜２．濃度補正テーブルの生成＞
続いて、濃度補正テーブルＴＢ１の生成方法について説明する。ここでは、黒インク（Ｋ）を例に取り説明するが、濃度補正テーブルは各色について作成される。
図５は、本実施形態に係る濃度補正テーブル生成システム２の機能構成を示すブロック図である。濃度補正テーブル生成システム２は、画像形成装置２００、ＰＣ３００、およびスキャナ４００から構成される。図示は省略したが、ＰＣ３００と画像形成装置２００、ＰＣ３００とスキャナ４００はそれぞれ、有線あるいは無線で接続されている。ＰＣ３００は、濃度補正テーブル生成のためのテストパターン３０１を記憶している。画像形成装置２００の画像形成部２５０は、テストパターン３０１に従って画像Ｄを出力する。スキャナ４００は画像Ｄを読み取り、スキャン画像を生成する。スキャナ４００は、生成したスキャン画像をＰＣ３００に出力する。ＰＣ３００は、受信したスキャン画像をスキャン画像３０４として記憶する。ＰＣ３００の濃度測定部３０３は、スキャナ４００から出力されたスキャン画像３０４の濃度を計算する。濃度補正テーブル生成部３０２は、濃度測定部３０３による濃度測定結果に基づいて濃度補正テーブルを生成する。画像形成装置２００は、ＰＣ３００が生成した濃度補正テーブルを濃度補正テーブルＴＢ１として記憶する。
【００２２】
図６は、濃度補正テーブル生成部３０２の詳細を示すブロック図である。入出力特性取得部３０２１は、濃度測定部３０３による濃度測定結果から、画像形成装置２００の入出力特性を生成する。入出力特性は、複数のデータ点を含む。補間特性算出部３０２２は、まず、複数のデータ点から、濃度補正テーブルＴＢ１に記録するデータ点を、少なくとも２つ特定する。補間特性算出部３０２２は、少なくとも２つのデータ点のうち、処理の基準となる基準データ点と、基準データ点と特定方向において隣接する隣接データ点とを特定する。補間特性算出部３０２２は、基準データ点および隣接データ点から、これら２点間の補間特性を算出する。補間誤差算出部３０２３は、補間特性と入出力特性とを比較することにより、これら２点間の補間誤差の最大値を算出する。補間誤差判断部３０２４は、補間誤差の最大値が、あらかじめ決められた許容誤差以下（あるいは許容誤差未満）であるか判断する。補間誤差判断部３０２４により、補間誤差の最大値があらかじめ決められた許容誤差以下でないと判断された場合、濃度補正テーブル更新部３０２５は、最大値に対応するデータ点を、あらかじめ決められた条件に従って、濃度補正テーブルＴＢ１に追加する。濃度補正テーブルＴＢ１が更新されると、補間特性算出部３０２２は、追加されたデータ点を新たな隣接データ点として、基準データ点と隣接データ点の間の補間特性を算出する。また、補間誤差判断部３０２４により、補間誤差の最大値があらかじめ決められた許容誤差以下でないと判断された場合、隣接データ点が、新たな基準データ点とされる。これらの処理の詳細は後述する。このように、本実施形態において、濃度補正テーブル生成システム２は、補間誤差の代表値として補間誤差の最大値を用いる。しかし、濃度補正テーブル生成システム２は、最大値以外の他の代表値を用いてもよい。
【００２３】
図７は、ＰＣ３００のハードウェア構成を示す図である。ＰＣ３００のハードウェア構成は基本的にＰＣ１００と同一であるので詳細な説明を省略し、ＰＣ１００との相違点のみ説明する。ＨＤＤ３５０は、濃度補正テーブル生成のための濃度補正テーブル生成プログラムを記憶している。また、ＨＤＤ３５０は、濃度補正テーブル生成のためのテストパターン３０１を記憶している。
【００２４】
図８は、濃度補正テーブル生成処理を示すフローチャートである。ユーザがキーボード３６０を操作する等の方法により濃度補正テーブルの生成を指示すると、ＰＣ３００のＣＰＵ３１０は、ＨＤＤ３５０から濃度補正テーブルの生成プログラムを読み出して実行する。ＣＰＵ３１０が濃度補正テーブル生成プログラムを実行することにより、ＰＣ３００は、図６に示される濃度補正テーブル生成装置としての機能を具備する。まず、ステップＳ２０において、ＣＰＵ３１０は、画像形成装置２００の入出力特性を取得する。入出力特性とは、入力輝度と出力輝度との関係を示す情報である。入出力特性取得処理の詳細は次のとおりである。
【００２５】
図９は、入出力特性取得処理の詳細を示すフローチャートである。ステップＳ２０１において、ＣＰＵ３１０は、テストパターン画像を生成する。ＣＰＵ３１０は、ＨＤＤ３５０に記憶されているテストパターン３０１を読み出す。ＣＰＵ３１０は読み出したテストパターン３０１を、Ｉ／Ｆ３４０を介して画像形成装置２００に出力する。テストパターン３０１は、画像形成装置２００のノズルが出力可能な全階調値を出力させるための画像データである。画像形成装置２００が、例えば８ビットの階調表現が可能である場合、テストパターン３０１は、０〜２５５の２５６階調のパターンを含む画像である。テストパターン３０１のデータを受信すると、ステップＳ２０２において、画像形成装置２００は、受信したデータに従って用紙上にテストパターンを印刷する。このテストパターンは濃度補正テーブルを生成するためのものであるので、テストパターンの印刷の際には濃度補正処理は行われない。したがって、テストパターンは、ノズルの物理的特性に起因する印刷むらを含んだ状態で印刷される。
【００２６】
次に、ステップＳ２０３において、スキャナ４００は、印刷されたテストパターンの画像Ｄを読み取る。以降の処理でノズル毎の輝度値を測定するため、画像読み取りの際には印刷解像度より高い解像度で読み取りを行う。例えば、７２０ｄｐｉ（dot per inch）の解像度で印刷した場合、２８８０ｄｐｉの解像度で読み取りを行う。この場合、印刷ドット１つに対し４点の濃度データを取得することができる。スキャナ４００は、読み取った画像ＤのデータをＰＣ３００に出力する。ＰＣ３００のＣＰＵ３１０は、入力された画像データをスキャン画像３０４としてＨＤＤ３５０に記憶する。
【００２７】
続いて、ＣＰＵ３１０は、スキャン画像３０４における濃度データ（出力輝度）と、各ノズルとの対応付けを行う。ＣＰＵ３１０は、濃度があらかじめ決められたしきい値を下回ったデータに相当する位置をテストパターンの端部と特定する。ＣＰＵ３１０は、このようにしてテストパターンの例えば左隅に相当するデータを特定する。ＣＰＵ３１０は、特定した左隅から、縦４点×横４点＝１６点分の濃度データを、テストパターンの左隅の画素（ノズル）に対応する濃度データ、すなわち単位領域の濃度データとして特定する。その他のノズルについても同様である。
【００２８】
次に、ステップＳ２０４において、ＣＰＵ３１０は、入出力特性を生成する。ＣＰＵ３１０は、テストパターン３０１の画像データから、入力輝度を得ることができる。また、ＣＰＵ３１０は、スキャン画像３０４から、出力輝度を得ることができる。入出力特性は、複数のデータ点を含む。８ビット画像データの場合、入力輝度は０〜２５５の２５６階調なので、あるノズルにおける入出力特性は、２５６個のデータ点を含む。各データ点は、入力輝度と、その入力輝度に対応する出力輝度とを含む。以下の説明において、入力輝度ｘおよび出力輝度ｙに対応するデータ点を（ｘ，ｙ）と表す。
【００２９】
図１０は、入出力特性を例示する図である。ＣＰＵ３１０は、画像形成装置２００が有するｚ個のノズルの各々に対して、入出力特性Ｔｂｅｓｔを取得する。図１０において、３つのノズルの入出力特性Ｔｂｅｓｔ０〜Ｔｂｅｓｔ２が示されている。理想的には、すべてのノズルの入出力特性は同一であることが望ましい。しかし、現実には製造誤差などの理由により、各ノズルの入出力特性は完全に同一とはならない。ＣＰＵ３１０は、生成したｚ組の入出力特性Ｔｂｅｓｔ０〜Ｔｂｅｓｔｚ−１を、ＲＡＭ１３０に記憶する。
【００３０】
再び図８を参照して説明する。入出力特性を取得すると、ステップＳ２１において、ＣＰＵ３１０は、濃度補正テーブルを初期化する。すなわち、ＣＰＵ３１０は、濃度補正テーブルに含まれるデータ点の初期値を特定する。詳細には次のとおりである。
【００３１】
図１１は、初期化処理の詳細を示すフローチャートである。まず、ＣＰＵ３１０は、ＲＡＭ３３０に濃度補正テーブルＴＢ１の記憶領域を確保する。この時点では、濃度補正テーブルに含まれるデータ点はない。次に、ステップＳ１１１において、ＣＰＵ３１０は、ｚ組の入出力特性から、最大入力輝度における各ノズルの出力輝度を算出する。ここで、８ビット画像の場合、最大入力輝度＝２５５である。例えば、ＣＰＵ３１０は、入出力特性Ｔｂｅｓｔ０〜Ｔｂｅｓｔ２から、入力輝度＝２５５に対応する出力輝度が、それぞれ、２５２、２５１、２４５であると算出する。次に、ステップＳ１１２において、ＣＰＵ３１０は、最大入力輝度に対する出力値のうち最小値ＯＨｍｉｎを特定する。先ほどの例では、ＯＨｍｉｎ＝２４５である。
【００３２】
次に、ステップＳ１１３において、ＣＰＵ３１０は、入出力特性から、最小入力輝度における各ノズルの出力輝度を算出する。ここで、８ビット画像の場合、最小入力輝度＝０である。例えば、ＣＰＵ３１０は、入出力特性Ｔｂｅｓｔ０〜Ｔｂｅｓｔ２から、入力輝度＝０に対応する出力輝度が、それぞれ、４０、４３、３８であると算出する。次に、ステップＳ１１４において、ＣＰＵ３１０は、最小入力輝度に対する出力値のうち最大値ＯＬｍａｘを特定する。先ほどの例では、ＯＬｍａｘ＝３８である。
【００３３】
次に、ステップＳ１１５において、ＣＰＵ３１０は、ＯＨｍｉｎおよびＯＬｍａｘに対応するデータ点を、初期値として濃度補正テーブルに追加する。すなわち上記の例では、（２５５，ＯＨｍｉｎ）および（０，ＯＬｍａｘ）で表される２つのデータ点が濃度補正テーブルに追加される。すなわち、濃度補正テーブルがこれら２つのデータ点を含むように、ＲＡＭ３３０に記憶された濃度補正テーブルを更新する。これらのデータ点を濃度補正テーブルに追加すると、ＣＰＵ３１０は、初期化処理を終了する。なお、初期値として特定されるデータ点の数は２つに限定されない。ＣＰＵ３１０は、３つ以上のデータ点を初期値として特定してもよい。例えば、ＣＰＵ３１０は、ＯＨｍｉｎ、ＯＬｍａｘ、およびこれらの中間点に対応するデータ点の３つのデータ点を初期値として濃度補正テーブルに追加してもよい。また、ＯＨｍｉｎおよびＯＬｍａｘを算出する処理の順序は図１１に示されるものに限定されない。ＣＰＵ３１０は、ＯＨｍｉｎよりもＯＬｍａｘを先に算出してもよい。
【００３４】
再び図８を参照して説明する。以下の処理は、処理対象ノズルを１つずつ順番に特定して、その処理対象ノズルに対して行われる。処理対象ノズルの特定は、例えば処理対象ノズルを示すパラメータを設定することにより行われる。濃度補正テーブルを初期化すると、ステップＳ２２において、ＣＰＵ３１０は、濃度補正テーブルに含まれるデータ点のうち、処理の基準となる基準データ点および、基準データ点と特定方向において隣接する隣接データ点を特定する。本実施形態において、ＣＰＵ３１０は、入力輝度値が最小のデータ点を基準データ点として特定する、また、ＣＰＵ３１０は、入力輝度値が増加する方向において基準データ点と隣接するデータ点を、隣接データ点として特定する。すなわち、データ点（０，ＯＬｍａｘ）が基準データ点として特定され、データ点（２５５，ＯＨｍｉｎ）が隣接データ点として特定される。ＣＰＵ３１０は、基準データ点および隣接データ点を特定する識別子を、ＲＡＭ３３０に記憶する。なお、ＣＰＵ３１０は、入力輝度値が最大のデータ点を基準データ点として特定してもよい。また、ＣＰＵ３１０は、入力輝度値が減少する方向において基準データ点と隣接するデータ点を、隣接データ点として特定してもよい。
【００３５】
次に、ステップＳ２３において、ＣＰＵ３１０は、要求出力特性を算出する。要求出力特性とは、入力輝度−出力輝度座標系において、点（最小入力輝度，ＯＬｍａｘ）と点（最大入力輝度，ＯＨｍｉｎ）を結ぶ直線により定義される。すなわち、ＣＰＵ３１０は、点（０，ＯＬｍａｘ）と点（２５５，ＯＨｍｉｎ）とを結ぶ直線を特定するパラメータを算出する。ＣＰＵ３１０は、要求出力特性を特定するパラメータをＲＡＭ３３０に記憶する。次に、ステップＳ２４において、ＣＰＵ３１０は、補間誤差を算出する。詳細には次のとおりである。
【００３６】
図１２は、補間誤差算出処理の詳細を示すフローチャートである。図１３は、補間誤差算出処理を説明する図である。まず、ＣＰＵ３１０は、パラメータｉの記憶領域をＲＡＭ３３０に確保する。パラメータｉは、入力輝度を示すパラメータである。本実施形態において、パラメータｉは、０≦ｉ≦２５５を満たす整数である。ＣＰＵ３１０は、パラメータｉの初期値を、基準データ点の入力輝度に設定する。本実施形態において、ｉ＝０として初期値が決定される。ステップＳ１４１において、ＣＰＵ３１０は、基準データ点と隣接データ点との間の補間特性を算出する。
本実施形態において、線形補間が行われる。すなわち、ＣＰＵ３１０は、点（０，ＯＬｍａｘ）と点（２５５，ＯＨｍｉｎ）とを結ぶ直線を特定するパラメータを算出する。ＣＰＵ３１０は、補間特性を特定するパラメータをＲＡＭ３３０に記憶する。本実施形態の１回目の処理において、要求出力特性と補間特性とは同一の直線である。
【００３７】
次に、ステップＳ１４２において、ＣＰＵ３１０は、要求出力特性から、入力輝度Ｉｉ＝ｉのときの出力輝度Ｏｉを算出する。ＣＰＵ３１０は、算出した出力輝度Ｏｉの値をＲＡＭ３３０に記憶する。次に、ステップＳ１４３において、ＣＰＵ３１０は、要求出力特性から、出力輝度＝Ｏｉのときの補正入力輝度Ｓｉを算出する。ＣＰＵ３１０は、算出した入力輝度Ｓｉの値をＲＡＭ３３０に記憶する。要求出力特性と補間特性とが同一の直線である場合、Ｉｉ＝Ｓｉである。次に、ステップＳ１４４において、ＣＰＵ３１０は、入出力特性Ｔｂｅｓｔｉから、出力輝度＝Ｏｉのときの入力輝度Ｐｉを算出する。前述のように入出力特性は複数のデータ点を含む。ＣＰＵ３１０は、入出力特性が、出力輝度＝Ｏｉであるデータ点を含んでいるか判断する。入出力特性が出力輝度＝Ｏｉであるデータ点を含んでいる場合、ＣＰＵ３１０は、そのデータ点の入力輝度の値と等しくなるようにＰｉを決定する。入出力特性が出力輝度＝Ｏｉであるデータ点を含んでいない場合、ＣＰＵ３１０は、補間によりＰｉを算出する。すなわち、ＣＰＵ３１０は、出力輝度＝Ｏｉの前後２点のデータ点を用いて、出力輝度＝Ｏｉに対応する入力輝度Ｐｉを算出する。ＣＰＵ３１０は、線形補間、ｎ次多項式補間、指数補間、対数補間など任意のものを用いることができる。ＣＰＵ３１０は、算出した入力輝度Ｐｉの値をＲＡＭ３３０に記憶する。なお、ＣＰＵ３１０は、補間によらず、出力輝度とＯｉとの差が最小であるデータ点の入力輝度をＰｉとしてもよい。
【００３８】
次に、ステップＳ１４５において、ＣＰＵ３１０は、補間誤差Ｄｉを算出する。補間誤差Ｄｉは、補間特性による入力輝度Ｓｉと入出力特性による入力輝度Ｐｉとの差の絶対値により定義される。すなわち、Ｄｉ＝｜Ｓｉ−Ｐｉ｜である。ＣＰＵ３１０は、算出した補間誤差Ｄｉと、補間誤差Ｄｉに対応する入力輝度Ｐｉ、入力輝度Ｐｉに対応する出力輝度ＤｉとをＲＡＭ３３０に記憶する。次に、ステップＳ１４６において、ＣＰＵ３１０は、必要な補完誤差の算出が完了したか判断する。すなわち、パラメータｉが隣接データ点の入力輝度と等しいか判断する。パラメータｉが隣接データ点の入力輝度よりも小さい場合（ステップＳ１４６：ＮＯ）、ＣＰＵ３１０は、ｉ＝ｉ＋１としてパラメータｉを更新する。パラメータｉを更新すると、ＣＰＵ３１０は、ステップＳ１４２〜Ｓ１４５の処理を繰り返し実行する。パラメータｉが隣接データ点の入力輝度と等しい場合（ステップＳ１４６：ＹＥＳ）、ＣＰＵ３１０は、補間誤差算出処理を終了する。補間誤差処理が完了すると、ＲＡＭ３３０には、基準データ点と隣接データ点との間の補間誤差の変化を示す補間誤差特性が記憶される。
【００３９】
再び図８を参照して説明する。補間誤差を算出すると、ステップＳ２５において、ＣＰＵ３１０は、補間誤差が許容誤差以下であるか（あるいは許容誤差未満であるか）判断する。具体的に、ＣＰＵ３１０は、基準データ点と隣接データ点との間の補間誤差Ｄｉのうち、最大値Ｄｉｍａｘを特定する。ＣＰＵ３１０は、最大値Ｄｉｍａｘと許容誤差とを比較する。最大値Ｄｉｍａｘが許容誤差を超えていた場合（ステップＳ２５：ＮＯ）、ＣＰＵ３１０は、処理をステップＳ２６に移行する。最大値Ｄｉｍａｘが許容誤差以下であった場合（ステップＳ２５：ＹＥＳ）、ＣＰＵ３１０は、処理をステップＳ２８に移行する。ＰＣ３００は、あらかじめＨＤＤ３５０またはＲＯＭ３２０に許容誤差を記憶している。許容誤差は、２値化処理の精度などに基づいて定められる。本実施形態において、許容誤差は、すべての入力輝度に対して同一の値である。なお、許容誤差は、入力輝度に依存して変化してもよい。例えば、許容誤差が、最大および最小の点において許容誤差が最大となり、入力輝度が中間階調の点において許容誤差が最小となる特性を有してもよい。
【００４０】
ステップＳ２６において、ＣＰＵ３１０は、Ｄｉｍａｘに対応するデータ点を追加することにより、濃度補正テーブルを更新する。ＣＰＵ３１０は、ＲＡＭ３３０から、Ｄｉｍａｘを与える入力輝度Ｐｉおよび出力輝度Ｏｉを抽出する。以下、Ｄｉｍａｘを与える入力輝度Ｐｉおよび出力輝度Ｏｉを、それぞれＩＤｉｍａｘおよびＯＤｉｍａｘと表す。ＣＰＵ３１０は、データ点（ＩＤｉｍａｘ，ＯＤｉｍａｘ）を濃度補正テーブルに追加する。なお、ＣＰＵ３１０は、データ点（ＩＤｉｍａｘ，ＯＤｉｍａｘ）を濃度補正テーブルに追加する代わりに、入出力特性に含まれるデータ点のうち、入力輝度とＩＤｉｍａｘとの差が最小であるデータ点あるいは出力輝度とＯＤｉｍａｘとの差が最小であるデータ点を濃度補正テーブルに追加してもよい。
【００４１】
次に、ステップＳ２７において、ＣＰＵ３１０は、濃度補正テーブルに新たに追加されたデータ点を、新たな隣接データ点とする。隣接データ点を更新すると、ＣＰＵ３１０は、処理をステップＳ２３に移行する。
【００４２】
図１４は、濃度補正テーブル更新処理を説明する図である。図１４において、点Ａおよび点Ｂは、濃度補正テーブルに初期値として記憶されたデータ点である。データ点Ａが基準データ点であり、データ点Ｂが隣接データ点である。以上で説明した処理により、最大補間誤差に対応するデータ点Ｃが、あらたに濃度補正テーブルに追加される。そして、データ点Ｃが、新たな隣接データ点として特定される。すなわち、データ点Ａが基準データ点であり、データ点Ｃが隣接データ点である。こうして隣接データ点が更新されると、再びステップＳ２４の補間誤差算出処理が行われる。
【００４３】
図１５は、補間誤差算出処理を説明する図である。ここでは、基準データ点（データ点Ａ）と隣接データ点（データ点Ｃ）の間の領域において補間誤差Ｄｉが算出される。前述と同様に、データ点Ａとデータ点Ｃの間の領域において、補間誤差Ｄｉの最大値Ｄｉｍａｘが許容誤差以下であるか判断される。Ｄｉｍａｘが許容誤差を超えていた場合、Ｄｉｍａｘに対応するデータ点が、濃度補正テーブルに追加される。
【００４４】
図１６は、濃度補正テーブル更新処理を説明する図である。図１６の例では、新たにデータ点Ｄが濃度補正テーブルに追加されている。ＣＰＵ３１０は、データ点Ｄをあらたな隣接データ点として隣接データ点を更新する。
【００４５】
再び図８を参照して説明する。補間誤差Ｄｉの最大値Ｄｉｍａｘが許容誤差以下であった場合（ステップＳ２５：ＹＥＳ）、ステップＳ２８において、ＣＰＵ３１０は、前回の隣接データ点を新たな基準データ点として基準データ点を更新する。図１６の例において、基準データ点Ａと隣接データ点Ｄの間の領域における補間誤差Ｄｉの最大値Ｄｉｍａｘが許容誤差以下であった場合、データ点Ｄが新たな基準データ点として特定される。次に、ステップＳ２９において、ＣＰＵ３１０は、濃度補正テーブルに含まれるすべてのデータ点について処理が完了したか判断する。具体的には、新たな基準データ点に対して、特定方向（入力輝度が増加する方向）に隣接するデータ点が存在するか判断する。図１６の例では、基準データ点であるデータ点Ｄには、隣接するデータ点（データ点Ｃ）が存在する。したがって、まだ濃度補正テーブルに含まれるすべてのデータ点について処理が完了していないと判断される。濃度補正テーブルに含まれるすべてのデータ点について処理が完了していないと判断された場合（ステップＳ２９：ＮＯ）、ＣＰＵ３１０は、新たな基準データ点に隣接するデータ点を新たな隣接データ点として隣接データ点を更新する。こうして新たな基準データ点および隣接データ点が特定されると、ＣＰＵ３１０は処理をステップＳ２４に移行する。
【００４６】
図１６の例において、データ点Ｃが基準データ点であり、データ点Ｂが隣接データ点であった場合を考える。基準データ点と隣接データ点の間の領域における補間誤差Ｄｉの最大値Ｄｉｍａｘが許容誤差以下であった場合、ステップＳ２８において、ＣＰＵ３１０は、濃度補正テーブルに含まれるすべてのデータ点について処理が完了したか判断する。ここで、データ点Ｂが新たな基準データ点として特定されるが、データ点Ｂは、特定方向において隣接するデータ点を有しない。したがって、ＣＰＵ３１０は、濃度補正テーブルに含まれるすべてのデータ点について処理が完了したと判断する。この場合（ステップＳ２９：ＹＥＳ）、ＣＰＵ３１０は、ステップＳ３０において、未処理の濃度補正テーブル（すなわち未処理のノズル）が存在するか判断する。未処理の濃度補正テーブルが存在すると判断された場合（ステップＳ３０：ＹＥＳ）、ＣＰＵ３１０は、処理対象の濃度補正テーブル（処理対象ノズル）を更新する。処理対象ノズルを更新すると、ＣＰＵ３１０は、処理をステップＳ２１に移行する。未処理の濃度補正テーブルが存在しないと判断された場合（ステップＳ３０：ＮＯ）、ＣＰＵ３１０は、濃度補正テーブルを確定する。例えば図１６に示される状態であった場合、濃度補正テーブルは、データ点Ａ〜Ｄの４つのデータ点を含むテーブルとして確定される。ＣＰＵ３１０は、確定した濃度補正テーブルＴＢ１をＨＤＤ３５０に記憶する。ＣＰＵ３１０は、濃度補正テーブル生成処理を終了する。
【００４７】
次に、ＣＰＵ３１０は、濃度補正テーブルの更新を要求するテーブル更新要求および濃度補正テーブルＴＢ１を画像形成装置２００に送信する。画像形成装置２００のＣＰＵ２１０は、テーブル更新要求を受信すると、受信した濃度補正テーブルＴＢ１をＲＯＭ２２０に記憶する。こうして、画像形成装置２００は、自身のノズルに特有の濃度むらを補正するための濃度補正テーブルＴＢ１を記憶する。
【００４８】
図１７は、生成された濃度補正テーブルＴＢ１を例示する図である。濃度補正テーブルＴＢ１は、複数の濃度補正テーブルを有する。複数の濃度補正テーブルの各々は、それぞれ、画像形成装置２００の複数ノズルうちの一ノズルに対応する。このようにして生成された濃度補正テーブルを用いた補間により得られる入出力特性において、テストパターンから得られた入出力特性との誤差が、あらかじめ決められた許容誤差以下に収まっている。したがって、本実施形態によれば、メモリ容量を抑えつつ、補間誤差を許容範囲内に収めた濃度補正テーブルを得ることができる。なお、必要なメモリ容量をさらに低減するため、ＣＰＵ３１０は、濃度補正テーブルＴＢ１を圧縮してもよい。ＣＰＵ３１０は、例えば、図１７において入力輝度および出力輝度が共通する部分のデータに対し、共通のインデックスを付与することによりデータ量を削減してもよい。
【００４９】
＜３．濃度補正処理＞
次に、上述のようにして生成された濃度補正テーブルＴＢ１を用いた濃度補正処理について説明する。ここで説明する濃度補正処理は、図４のステップＳ１３０における濃度補正処理の詳細である。濃度補正処理の概要は次のとおりである。処理は、画像データを構成する画素のうち処理対象となる「自画素」を一画素ずつ順番に特定して行われる。自画素の補正値は、濃度補正テーブルＴＢ１を用いて算出される。なお、以下では黒インク（Ｋ）に関する処理についてのみ説明するが、他の色成分（シアン、イエロー、マゼンタ）についても同様に濃度補正処理が行われる。
【００５０】
図１８は、本実施形態に係る濃度補正処理の詳細を示すフローチャートである。ＰＣ１００のＣＰＵ１１０はまず、全てのノズルが出力できる出力輝度範囲を算出する（ステップＳ３０１）。すなわち、濃度補正テーブルＴＢ１から、ＭａｘＭｉｎおよびＭｉｎＭａｘを算出する。なお、以下では簡単のため、ノズル＃００〜＃０２の３つのノズルについてのみ考慮した説明を行う。ノズル＃００〜＃０２の濃度補正テーブルは、図１７に示されるものである。したがって、ＭａｘＭｉｎ＝２４５．０、ＭｉｎＭａｘ＝３８．０である。
【００５１】
次に、ＣＰＵ１１０は、画像内の位置を示すパラメータｘおよびｙを初期化する（ステップＳ３０２）。パラメータｘおよびｙは、自画素を特定するための位置パラメータである。ｘは画像幅方向（紙送り方向）の位置を、ｙは画像高さ方向（紙送り方向と直交する方向）の位置（すなわちノズル番号）を示すパラメータである。本実施形態において、ＣＰＵ１１０は、ｘおよびｙをそれぞれ０に初期化する。なお、以下の説明では、自画素を形成するインクドットを出力するノズルを「自ノズル」という。
【００５２】
続いてＣＰＵ１１０は、要求出力輝度の算出をする（ステップＳ３０３）。要求出力輝度とは、出力輝度の目標値のようなものである。本実施形態において、入力画像は２５６階調（０〜２５５）の輝度で表現されている。しかし、前述のように画像形成装置２００が出力可能な輝度はＭｉｎＭａｘ〜ＭａｘＭｉｎの範囲に制限される（本実施形態では、３８〜２４５）。そこで、入力画像の輝度が出力輝度範囲に収まるように、入力画像の輝度を要求出力輝度に変換する必要がある。ＣＰＵ１１０は、次式（２）に従って入力画像の輝度Ｉを要求出力輝度Ｃｒｅｑに変換する。
Ｃｒｅｑ＝（ＭａｘＭｉｎ−ＭｉｎＭａｘ）／Ｃｍａｘ×Ｉ＋ＭｉｎＭａｘ  …（２）
ここで、Ｃｍａｘは最大輝度（本実施形態ではＣｍａｘ＝２５５）を示す。
【００５３】
いま、入力画像として輝度１２８のベタ画像を入力したとすると、（２）式にＭａｘＭｉｎ＝２４５、ＭｉｎＭａｘ＝３９、Ｃｍａｘ＝２５５、Ｉ＝１２８を代入してＣｒｅｑ＝１４２が得られる（小数点以下四捨五入）。入力画像はベタ画像なので、すべての画素で要求出力輝度は１４２となる。
【００５４】
再び図１８を参照して説明する。続いてＣＰＵ１１０は、自ノズル、すなわちノズル＃ｙの濃度補正テーブルを取得する（ステップＳ３０４）。この処理は例えば、以下のように行われる。ＣＰＵ１１０は、濃度補正テーブルの送信を要求するテーブル送信要求を画像形成装置２００に送信する。テーブル送信要求を受信すると、画像形成装置２００のＣＰＵ２１０は、ＲＡＭ２３０から濃度補正テーブルＴＢ１を読み出す。ＣＰＵ２１０は、読み出した濃度補正テーブルＴＢ１を含むテーブル送信応答を、テーブル送信要求の送信元であるＰＣ１００に送信する。ＰＣ１００のＣＰＵ１１０は、テーブル送信応答を受信すると、受信したテーブル送信応答から濃度補正テーブルＴＢ１を抽出する。ＣＰＵ１１０は、抽出した濃度補正テーブルＴＢ１をＨＤＤ１５０に記憶する。ＣＰＵ１１０は、ＨＤＤ１５０に記憶された濃度補正テーブルＴＢ１の中からノズル＃ｙの濃度補正テーブルを抽出する。ＣＰＵ１１０は、抽出した濃度補正テーブルをＲＡＭ１３０に記憶する。
【００５５】
なお、画像形成装置２００からＰＣ１００への濃度補正テーブルＴＢ１の読出しは、例えば、ＰＣ１００にプリンタドライバをインストールしたときなど、図１８に示されるフローに先立って行われてもよい。また、画像形成装置２００は、濃度補正テーブルＴＢ１のすべてを読み出してもよいし、必要に応じて一部分だけを読み出してもよい。
【００５６】
次に、ＣＰＵ１１０は、自ノズルの濃度補正テーブルに基づいて自画素の補正値を計算する（ステップＳ３０８）。具体的には、ＣＰＵ１１０は、出力輝度が要求出力輝度に一致するように入力輝度の補正値を算出する。要求出力輝度の値が濃度補正テーブルにないときは、補間により補正値を算出する。いま、自画素の要求出力輝度が１４２であるので、要求出力輝度が１５０．３と１３０．０のときのデータを用いて線形補間を行う。要求出力輝度を１４２とするには、入力輝度の補正値は１６２となる。ＣＰＵ１１０は、こうして算出した補正値をＲＡＭ１３０に記憶する。
【００５７】
次に、ステップＳ３０９において、ＣＰＵ１１０は、ノズル番号ｙを更新する。具体的には、ｙ＝ｙ＋１としてノズル番号ｙを更新する。ＣＰＵ１１０は、すべてのノズルについて処理が完了したか判断する（ステップＳ３１０）。すべてのノズルについて処理が完了していない場合（ステップＳ３１０：ＮＯ）、ＣＰＵ１１０は、上述のステップＳ３０４〜Ｓ３０９の処理を繰り返し実行する。本実施形態において、ノズル＃００（画素［ｘ，０］）についてステップＳ３０４〜Ｓ３０９の処理が完了すると、続いてノズル＃０１（画素［ｘ，１］）についてステップＳ３０４〜Ｓ３０９の処理が行われる。画素［ｘ，１］に対するステップＳ３０４〜Ｓ３０９の処理も、基本的には画素［ｘ，０］に対するステップＳ３０４〜Ｓ３０９の処理と同様に行われる。
【００５８】
一方、１ライン分すべてのノズルについて処理が完了した場合（ステップＳ３１０：ＹＥＳ）、ＣＰＵ１１０は、ｘの値をｘ＝ｘ＋１として更新し、ノズル番号を０に戻す（ステップＳ３１１）。ＣＰＵ１１０は、すべての画素について処理が完了したか判断する（ステップＳ３１２）。すべての画素について処理が完了していない場合（ステップＳ３１０：ＮＯ）、ＣＰＵ１１０は、ステップＳ３０４〜Ｓ３１１の処理を繰り返し実行する。すべての画素について処理が完了した場合（ステップＳ３１２：ＹＥＳ）、ＣＰＵ１１０は、濃度補正処理を完了する。
【００５９】
ＣＰＵ１１０は、以上のようにして算出された補正値を含む制御データを画像形成装置２００に出力する。画像形成装置は、補正値に従って画像を形成する。
【００６０】
以上で説明したように本実施形態によれば、補正対象である自画素に対応する自ノズルの出力特性を考慮した画像補正が行われる。補正処理は、ノズルの出力特性を示す情報を記憶した濃度補正テーブルに基づいて行われる。また、連続するノズルの吐出特性（出力輝度）のバラツキがある許容値以下であれば、濃度補正テーブルのデータが統合される。これにより、濃度補正テーブルを用いた補正により高画質化を実現するとともに、濃度補正テーブルを記憶するメモリ容量を削減することができる。
【００６１】
＜４．他の実施形態＞
本発明は上述の実施形態に限定されるものではなく、種々の変形実施が可能である。
上述の実施形態において、画像形成装置２００はラインヘッド型のインクジェットプリンタであったが、画像形成装置２００は、マルチパス型のインクジェットプリンタ等、他の種類のプリンタでもよい。
【００６２】
また、上述の実施形態においては、画像処理装置であるＰＣ１００および濃度補正テーブル生成装置であるＰＣ３００がそれぞれ別個の装置であったが、単一の装置が画像処理装置および濃度補正テーブル生成装置としての機能を有してもよい。また、画像処理装置あるいは濃度補正テーブル生成装置としての機能を、２つ以上のコンピュータ装置に分散する構成としてもよい。
【００６３】
また、上述の実施形態においては、入出力特性Ｔｂｅｓｔが下に凸な曲線である例について説明したが、入出力特性の形状は実施形態で説明したものに限定されない。どのような形状の入出力特性に対しても、本発明を適用することが可能である。
【図面の簡単な説明】
【００６４】
【図１】画像形成システム１の機能構成を示すブロック図である。
【図２】画像形成装置２００のハードウェア構成を示すブロック図である。
【図３】ＰＣ１００のハードウェア構成を示すブロック図である。
【図４】画像形成システム１の動作を示すフローチャートである。
【図５】濃度補正テーブル生成システム２の機能構成を示すブロック図である。
【図６】濃度補正テーブル生成部３０２の詳細を示すブロック図である。
【図７】ＰＣ３００のハードウェア構成を示す図である。
【図８】濃度補正テーブル生成処理を示すフローチャートである。
【図９】入出力特性取得処理の詳細を示すフローチャートである。
【図１０】入出力特性を例示する図である。
【図１１】初期化処理の詳細を示すフローチャートである。
【図１２】補間誤差算出処理の詳細を示すフローチャートである。
【図１３】補間誤差算出処理を説明する図である。
【図１４】濃度補正テーブル更新処理を説明する図である。
【図１５】補間誤差算出処理を説明する図である。
【図１６】濃度補正テーブル更新処理を説明する図である。
【図１７】生成された濃度補正テーブルを例示する図である。
【図１８】本実施形態に係る濃度補正処理の詳細を示すフローチャートである。
【符号の説明】
【００６５】
ＴＢ１…濃度補正テーブル、１…画像形成システム、２…濃度補正テーブル生成システム、１００…ＰＣ、１００…濃度補正テーブル生成装置、１０１…解像度変換部、１０２…色空間変換部、１０３…濃度補正部、１０４…量子化部、１０５…ラスタライズ部、１０８…アプリケーション、１０９…デバイスドライバ、１１０…ＣＰＵ、１２０…ＲＯＭ、１３０…ＲＡＭ、１４０…Ｉ／Ｆ、１５０…ＨＤＤ、１６０…キーボード、１７０…ディスプレイ、２００…画像形成装置、２１０…ＣＰＵ、２２０…ＲＯＭ、２３０…ＲＡＭ、２４０…Ｉ／Ｆ、２５０…画像形成部、２５１…ラインヘッド、２５２…インクタンク、２５３…ヘッド駆動回路、２５４…制御部、２５５…モータ、２５６…モータ駆動回路、２５７…ページバッファ、２９０…バス、３００…ＰＣ、３０１…テストパターン、３０２…濃度補正テーブル生成部、３０３…濃度測定部、３０４…スキャン画像、３１０…ＣＰＵ、３２０…ＲＯＭ、３３０…ＲＡＭ、３４０…Ｉ／Ｆ、３５０…ＨＤＤ、３６０…キーボード、４００…スキャナ、３０２１…入出力特性取得部、３０２２…補間特性算出部、３０２３…補間誤差算出部、３０２４…補間誤差判断部、３０２５…濃度補正テーブル更新部
【図１】
0004487932.tif 000002
【図２】
0004487932.tif 000003
【図３】
0004487932.tif 000004
【図４】
0004487932.tif 000005
【図５】
0004487932.tif 000006
【図６】
0004487932.tif 000007
【図７】
0004487932.tif 000008
【図８】
0004487932.tif 000009
【図９】
0004487932.tif 000010
【図１０】
0004487932.tif 000011
【図１１】
0004487932.tif 000012
【図１２】
0004487932.tif 000013
【図１３】
0004487932.tif 000014
【図１４】
0004487932.tif 000015
【図１５】
0004487932.tif 000016
【図１６】
0004487932.tif 000017
【図１７】
0004487932.tif 000018
【図１８】
0004487932.tif 000019