(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）の解像度で印刷した場合、２８８０ｄｐｉの解像度で読み取りを行う。この場合、印刷ドット１つに対し４点の濃度データを取得することができる。スキャナ４００は、読み取った画像ＤのデータをＰＣ３００に出力する。ＰＣ３００のＣＰＵ３１０は、入力された画像データをスキャン画像３０４としてＨＤＤ３５０に記憶する。
【００３２】
続いてＣＰＵ３１０は、スキャン画像３０４における濃度データと、各ノズルとの対応付けを行う。濃度データとノズルとを対応付ける方法はいくつか存在する。例えば以下で説明するように、「ノズル毎」の濃度データを用いる方法と、「ノズル間」の濃度データを用いる方法がある。本実施形態において、ＣＰＵ３１０は、「ノズル毎」の濃度データを各ノズルに対応付ける。以下の説明において、濃度データをノズルに対応付けるための領域を「単位領域」という。
【００３３】
図１１は、ノズル毎およびノズル間の濃度データの定義を説明する図である。図１１の例は、理想的なサイズを有するドットが、理想的な位置に形成されたパターンを示している。「ノズル間」の濃度とは、ドットの理想的な形成位置に対して、隣接する２つのドットの中心間の濃度を意味する。すなわち、隣接する２つのドットの中心を結ぶ線分の中点を、隣接する２つのドットの境界点と定義すると、「ノズル間」の濃度とは、ドットの中間領域、すなわち、境界点を中心とした、理想的なドットピッチと等しい長さを有する領域における濃度を意味する。一方「ノズル毎」の濃度とは、隣接する２つの境界点の間の濃度を意味する。
【００３４】
これに対し、ノズル間の濃度データを用いて生成された濃度補正テーブルを用いると、ノズルと補正データとを一意に対応付けることができるため、補正値を正確に算出することができる。また、飛行曲がりが原因のバンディングはノズル間で発生するため、ノズル間の輝度を正確に計算し補正することができるノズル間の濃度データを用いて生成された濃度補正テーブルは、有用である。
【００３５】
図１２は、ノズル間の単位領域を例示する図である。濃度データにおけるノズル毎の領域の特定は例えば以下のように行われる。ＣＰＵ３１０は、濃度があらかじめ決められたしきい値を下回ったデータに相当する位置をテストパターンの端部と特定する。ＣＰＵ３１０は、このようにしてテストパターンの例えば左隅に相当するデータを特定する。ＣＰＵ３１０は、特定した左隅から、縦４点×横４点＝１６点分の濃度データを、テストパターンの左隅の画素（ノズル）に対応する濃度データ、すなわち単位領域の濃度データとして特定する。その他のノズルについても同様である。
【００３６】
続いてＣＰＵ３１０は、スキャン画像３０４に基づいて濃度補正テーブルの生成を行う（ステップＳ２３０）。ここではまず、図８のノズル＃０１およびノズル＃０２を例にとって濃度補正テーブル生成処理の詳細を説明する。図８において、点線で示した領域はノズル＃０１の印刷範囲である。ＣＰＵ３１０は、スキャン画像３０４から、単位領域の平均輝度を算出する。以下の説明においてスキャン画像３０４における座標（ｘ，ｙ）の輝度をＣ（ｘ，ｙ）と表記する。ｘの正方向は図８において右方向であり、ｙの正方向は図８において下方向である。
【００３７】
単位領域の左上隅の座標を（ｘ１，ｙ１）とする。ここで、単位領域の大きさは前述の単位パターンの大きさと等しい。単位パターンは前述のように縦１ドット×横６ドットのドットから構成される。また、本実施形態では印刷解像度の４倍（１ドットにつき縦４点×横４点）の解像度で読み取りを行っている。したがって、単位領域は縦４点×横２４点のピッチで読み取られている。すなわち、単位領域左下隅の座標は（ｘ１，ｙ１＋３）、右上隅の座標は（ｘ１＋２３，ｙ１）、右下隅の座標は（ｘ１＋２３，ｙ１＋３）となる。平均濃度Ｐは、次式（１）で算出される。
Ｐ＝ΣＣ（ｘ，ｙ）／ｍＤ  …（１）
ここで、ｍＤは単位領域に含まれる濃度データの数（本実施形態においては４×２４＝９６）を示す。また、本実施形態ではｘ＝ｘ１〜ｘ１＋２３、ｙ＝ｙ１〜ｙ１＋３であるので、この範囲でＣ（ｘ，ｙ）が足し合わされる。
【００３８】
図１３は、ノズル＃０１の濃度補正テーブルの生成方法を説明する図である。図１３（ａ）および（ｂ）に示される基本パターンは、図９（ａ）および（ｂ）に示される基本パターンと同一のものである。すなわち、図１３（ａ）は隣接ノズル輝度が０の基本パターンを示し、図１３（ｂ）は隣接ノズル輝度が５１の基本パターンを示している。ＣＰＵ３１０はまず、隣接ノズル輝度が０の場合（図１３（ａ））について、各単位領域の平均輝度Ｐを算出する。本実施形態においては、入力輝度０、５１、１０２、１５３、２０４、２５５の単位領域に対して、平均輝度が２３、３３、４０、６６、７６、１２０であると算出される。次にＣＰＵ３１０は、隣接ノズル輝度が５１の場合（図１３（ｂ））について、各単位領域の平均輝度Ｐを算出する。本実施形態においては、各単位領域に対して、平均輝度が３１、３８、５４、７９、９７、１３２であると算出される。以下同様にして、隣接ノズル輝度が１０２、１５３、２０４、２５５の基本パターンについて各単位領域の平均輝度を算出する。ＣＰＵ３１０は、算出した平均輝度をＲＡＭ３３０に記憶する。
【００３９】
図１４は、ノズル＃０２の濃度補正テーブルの生成方法を説明する図である。図１４（ａ）および（ｂ）に示される基本パターンも、図９（ａ）および（ｂ）に示される基本パターンと同一のものである。ＣＰＵ３１０はまず、隣接ノズル輝度が０の場合（図１４（ａ））について、各単位領域の平均輝度Ｐを算出する。なお、ノズル＃００、＃０２、＃０４、＃０６においては、自ノズルの輝度が固定され隣接ノズルの輝度が変化する関係になっている点に注意が必要である。すなわち、図９の例では奇数番目のノズルは隣接ノズルの輝度が固定で自ノズルの輝度が変化しているが、偶数番目のノズルは自ノズルの輝度が固定で隣接ノズルの輝度が変化する関係になっている。ＣＰＵ３１０はまず、自ノズル輝度が０の場合（図１４（ａ））について、各単位領域の平均輝度Ｐを算出する。本実施形態においては、隣接ノズルの入力輝度が０、５１、１０２、１５３、２０４、２５５である単位領域に対して、平均輝度が１９、２６、２９、４１、５５、７７であると算出される。次にＣＰＵ３１０は、自ノズル輝度が５１の場合（図１４（ｂ））について、各単位領域の平均輝度Ｐを算出する。本実施形態においては、各単位領域に対して、平均輝度が２５、３１、４０、５６、７４、９７であると算出される。以下同様にして、自ノズル輝度が１０２、１５３、２０４、２５５の基本パターンについて各単位領域の平均輝度を算出する。ＣＰＵ３１０は、算出した平均輝度をＲＡＭ３３０に記憶する。
【００４０】
ＣＰＵ３１０は、以上で説明したのと同様にしてノズル＃００〜＃０７のすべてのノズルについて各単位領域の平均輝度Ｐを算出し、ＲＡＭ３３０に記憶する。ＣＰＵ３１０は、ＲＡＭ３３０に記憶された平均輝度を組み合わせ、濃度補正テーブルを生成する。ＣＰＵ３１０は、生成した濃度補正テーブルを濃度補正テーブルＴＢ１としてＲＡＭ３３０に記憶する。ＣＰＵ３１０は、濃度補正テーブルの更新を要求するテーブル更新要求および濃度補正テーブルＴＢ１を画像形成装置２００に送信する。画像形成装置２００のＣＰＵ２１０は、テーブル更新要求を受信すると、受信した濃度補正テーブルＴＢ１をＲＯＭ２２０に記憶する。こうして、画像形成装置２００は、自身のノズルに特有の濃度むらを補正するための濃度補正テーブルＴＢ１を記憶する。
【００４１】
図１５は、ノズル＃００〜＃０２の３つのノズルについて、上述の方法により作成した濃度補正テーブルＴＢ１を例示する図である。濃度補正テーブルＴＢ１は、ノズル毎の濃度補正テーブルを含む。すなわち、ノズル＃００〜＃０７の８つのノズルが存在する場合、濃度補正テーブルＴＢ１は８つの濃度補正テーブルから構成される。ここで、テーブルの横方向は自ノズルの入力輝度を、縦方向は隣接ノズルの入力輝度を示す。自ノズルと隣接ノズルの交点の値が出力輝度（平均輝度）を示している。例えば、ノズル＃００に対して、自ノズルの入力輝度が５１で、隣接ノズルの入力輝度が１０２の場合、出力輝度は４５となる。
【００４２】
ここで、各ノズルにおける最高輝度（図１５の例では自ノズル輝度２５５かつ隣接ノズル輝度２５５）のうち、輝度が最も低いものをＭａｘＭｉｎと表す。図１５の例では、ノズル＃０１の輝度２４１が最も低いのでＭａｘＭｉｎ＝２４１である。同様に、各ノズルにおける最低輝度（図１５の例では自ノズル輝度０かつ隣接ノズル輝度０）のうち、輝度が最も高いものをＭｉｎＭａｘと表す。図１５の例では、ノズル＃０１の輝度２３が最も高いのでＭｉｎＭａｘ＝２３である。全てのノズルが出力できる輝度はこの範囲に制限されることになる。すなわち、この場合、全てのノズルが出力できる出力輝度範囲は２３〜２４１である。
以下同様にして、シアン、イエロー、マゼンタ各色の濃度補正テーブルが作成される。
【００４３】
＜１−３．濃度補正処理＞
次に、上述のようにして生成された濃度補正テーブルＴＢ１を用いた濃度補正処理について説明する。ここで説明する濃度補正処理は、図４のステップＳ１３０における濃度補正処理の詳細である。濃度補正処理の概要は次のとおりである。処理は、画像データを構成する画素のうち処理対象となる「自画素」を一画素ずつ順番に特定して行われる。自画素の補正値は、自画素以外の画素である参照画素の画素値が与えられた場合に、自画素の出力画素値が要求出力画素値と等しくなるよう、濃度補正テーブルＴＢ１を用いて算出される。「参照画素」は、自画素と異なる画素であって、自画素との位置関係があらかじめ決められた条件を満たす画素をいう。本実施形態においては、自画素に隣接する画素が参照画素として用いられる。なお、以下では黒インク（Ｋ）に関する処理についてのみ説明するが、他の色成分（シアン、イエロー、マゼンタ）についても同様に濃度補正処理が行われる。
【００４４】
図１６は、本実施形態に係る濃度補正処理の詳細を示すフローチャートである。ＰＣ１００のＣＰＵ１１０はまず、全てのノズルが出力できる出力輝度範囲を算出する（ステップＳ３０１）。すなわち、濃度補正テーブルＴＢ１から、ＭａｘＭｉｎおよびＭｉｎＭａｘを算出する。なお、以下では簡単のため、ノズル＃００〜＃０２の３つのノズルについてのみ考慮した説明を行う。ノズル＃００〜＃０２の濃度補正テーブルは、図１５に示されるものである。したがって、ＭａｘＭｉｎ＝２４１、ＭｉｎＭａｘ＝２３である。
【００４５】
次に、ＣＰＵ１１０は、画像内の位置を示すパラメータｘおよびｙを初期化する（ステップＳ３０２）。パラメータｘおよびｙは、自画素を特定するための位置パラメータである。ｘは画像幅方向（紙送り方向）の位置を、ｙは画像高さ方向（紙送り方向と直交する方向）の位置（すなわちノズル番号）を示すパラメータである。本実施形態において、ＣＰＵ１１０は、ｘおよびｙをそれぞれ０に初期化する。なお、以下の説明では、自画素を形成するインクドットを出力するノズルを「自ノズル」と、参照画素を形成するインクドットを出力するノズルを「隣接ノズル」という。
【００４６】
続いてＣＰＵ１１０は、要求出力輝度の算出をする（ステップＳ３０３）。要求出力輝度とは、出力輝度の目標値のようなものである。本実施形態において、入力画像は２５６階調（０〜２５５）の輝度で表現されている。しかし、前述のように画像形成装置２００が出力可能な輝度はＭｉｎＭａｘ〜ＭａｘＭｉｎの範囲に制限される（本実施形態では、２３〜２４１）。そこで、入力画像の輝度が出力輝度範囲に収まるように、入力画像の輝度を要求出力輝度に変換する必要がある。ＣＰＵ１１０は、次式（２）に従って入力画像の輝度Ｉを要求出力輝度Ｃｒｅｑに変換する。
Ｃｒｅｑ＝（ＭａｘＭｉｎ−ＭｉｎＭａｘ）／Ｃｍａｘ×Ｉ＋ＭｉｎＭａｘ  …（２）
ここで、Ｃｍａｘは最大輝度（本実施形態ではＣｍａｘ＝２５５）を示す。
【００４７】
いま、入力画像として輝度１２８のベタ画像を入力したとすると、（２）式にＭａｘＭｉｎ＝２４１、ＭｉｎＭａｘ＝２３、Ｃｍａｘ＝２５５、Ｉ＝１２８を代入してＣｒｅｑ＝１３２が得られる（小数点以下四捨五入）。入力画像はベタ画像なので、すべての画素で要求出力輝度は１３２となる。
【００４８】
図１７は、出力輝度範囲および要求出力輝度を視覚的に説明する図である。図１７中の破線は、（２）式を示す直線である。
【００４９】
再び図１６を参照して説明する。続いてＣＰＵ１１０は、自ノズル、すなわちノズル＃ｙの濃度補正テーブルを取得する（ステップＳ３０４）。この処理は例えば、以下のように行われる。ＣＰＵ１１０は、濃度補正テーブルの送信を要求するテーブル送信要求を画像形成装置２００に送信する。テーブル送信要求を受信すると、画像形成装置２００のＣＰＵ２１０は、ＲＡＭ２３０から濃度補正テーブルＴＢ１を読み出す。ＣＰＵ２１０は、読み出した濃度補正テーブルＴＢ１を含むテーブル送信応答を、テーブル送信要求の送信元であるＰＣ１００に送信する。ＰＣ１００のＣＰＵ１１０は、テーブル送信応答を受信すると、受信したテーブル送信応答から濃度補正テーブルＴＢ１を抽出する。ＣＰＵ１１０は、抽出した濃度補正テーブルＴＢ１をＨＤＤ１５０に記憶する。ＣＰＵ１１０は、ＨＤＤ１５０に記憶された濃度補正テーブルＴＢ１の中からノズル＃ｙの濃度補正テーブルを抽出する。ＣＰＵ１１０は、抽出した濃度補正テーブルをＲＡＭ１３０に記憶する。
【００５０】
なお、画像形成装置２００からＰＣ１００への濃度補正テーブルＴＢ１の読出しは、例えば、ＰＣ１００にプリンタドライバをインストールしたときなど、図１６に示されるフローに先立って行われてもよい。また、画像形成装置２００は、濃度補正テーブルＴＢ１のすべてを読み出してもよいし、必要に応じて一部分だけを読み出してもよい。
【００５１】
続いて、ＣＰＵ１１０は、自ノズルが端部に位置するノズルであるか、すなわち、ｙ＝０であるか判断する（ステップＳ３０５）。ｙ＝０の場合（ステップＳ３０５：ＹＥＳ）、ＣＰＵ１１０は参照画素の輝度（画素値）をあらかじめ決められた値（本実施形態においては、１２８）とする（ステップＳ３０７）。これは、自ノズルが端部に位置する場合は隣接ノズル（参照画素）が存在しないため、参照画素の輝度の初期値を仮想的に与えるものである。ＣＰＵ１１０は、参照画素の輝度と要求出力輝度を用いて濃度補正テーブルから自画素の補正値Ｍ［ｘ，ｙ］を算出する（ステップＳ３０８）。補正値の算出方法は後述する。ＣＰＵ１１０は、算出した補正値をＲＡＭ１３０に記憶する。
【００５２】
一方、ｙ≧１の場合（ステップＳ３０５：ＮＯ）、ＣＰＵ１１０は、ＲＡＭ１３０から補正値Ｍ［ｘ，ｙ−１］を参照画素の輝度として読み出す（ステップＳ３０６）。ＣＰＵ１１０は、参照画素の輝度と要求出力輝度を用いて濃度補正テーブルから自画素の補正値を算出する（ステップＳ３０８）。補正値の算出方法は後述する。ＣＰＵ１１０は、算出した補正値をＲＡＭ１３０に記憶する。
【００５３】
ステップＳ３０８における補正値の算出は、以下のように行われる。
図１８は、図１５に示されるノズル＃００の濃度補正テーブルをグラフ化した図である。図１８に示されるように、濃度補正テーブルは、隣接ノズルの輝度ごとの「自ノズル入出力特性」を示すものと考えられる。前述のように、自ノズルがノズル＃００である場合、隣接ノズルの輝度はあらかじめ決められた値（本実施形態では１２８）が用いられる。
【００５４】
本実施形態において、濃度補正テーブルは、参照画素の輝度が０、５１、１０２、１５３、２０４、２５５である場合の出力輝度を記録したものである。したがって、参照画素の輝度がこれらの値以外の値である場合は、補間により補正値を算出する必要がある。いま、参照画素の入力輝度が１２８であるので、輝度が１０２と１５３のときのデータを用いて線形補間を行う。具体的には次のとおりである。
【００５５】
図１９は、近似直線を用いた補間方法を示す図である。ＣＰＵ１１０はまず、濃度補正テーブルから補間に用いる４点のデータを特定する。参照画素の輝度が１２８であるので、参照画素の輝度がその前後の１０２と１５３であるデータが用いられる。ＣＰＵ１１０は、参照画素（隣接ノズル）の輝度が１０２の直線と１５３の直線のうち、輝度が１２８である点を囲む４点を特定する。本実施形態においては、図１５に示されるノズル＃００の濃度補正テーブルのうち太線で囲まれた４点のデータが用いられる。これらの４つのデータが、図１９（ａ）におけるＤ（ｍ，ｎ）、Ｄ（ｍ＋１，ｎ）、Ｄ（ｍ，ｎ＋１）、Ｄ（ｍ＋１，ｎ＋１）に相当する。この場合、Ｄ（ｍ，ｎ）＝９８、Ｄ（ｍ＋１，ｎ）＝１３３、Ｄ（ｍ，ｎ＋１）＝１２４、Ｄ（ｍ＋１，ｎ＋１）＝１６１である。ここで、記号Ｄ（ｍ，ｎ）は、自画素（自ノズル）の階調番号がｍ、参照画素（隣接ノズル）の階調番号がｎであるときの濃度データ（出力輝度）を意味する。階調番号とは、例えば図１５のような濃度補正テーブルを用いる場合、０、５１、１０２、１５３、２０４、２５５の輝度に対して順番にｍ＝１、２、…、６というように付す番号を意味する。
【００５６】
続いて、ＣＰＵ１１０は、参照画素の輝度ＦＮから、線形補間により補間値Ｄ１およびＤ２の値を算出する（図１９（ｂ））。この場合、ＦＮ＝１２８、Ｄ１＝１１１、Ｄ２＝１４７である。続いて、ＣＰＵ１１０は、補間値Ｄ１およびＤ２を結ぶ直線の式を求める。ＣＰＵ１１０は、この直線の式に要求輝度ＤＯを代入し、補正値ＦＯを算出する（図１９（ｃ））。この場合、ＤＯ＝１３２であるので、ＦＯ＝２３３と算出される。図１８において点線は、補間により求めた参照画素の輝度が１２８の近似入出力特性を示している。
【００５７】
なお、近似直線を用いた補間方法に代えて、近似平面を用いた補間を採用してもよい。
図２０は、近似平面を用いた補間方法を説明する図である。ＣＰＵ１１０は、Ｄ（ｍ，ｎ）、Ｄ（ｍ＋１，ｎ）、Ｄ（ｍ，ｎ＋１）の３点を含む平面の式と、Ｄ（ｍ＋１，ｎ）、Ｄ（ｍ，ｎ＋１）、Ｄ（ｍ＋１，ｎ＋１）の３点を含む平面の式を求める。次に、ＣＰＵ１１０は、それぞれの平面の式から、既に算出された参照画素の輝度と要求出力輝度から補正値を算出する。続いてＣＰＵ１１０は、参照画素の輝度と補正値の範囲からどちらの平面が正しいか判断する。ＣＰＵ１１０は、正しいと判断された平面の式を利用して算出された補正値を補正値ＦＯをとして採用する。
【００５８】
以上で説明したように、画素［ｘ，０］に対して参照画素の輝度としてあらかじめ決められた値（１２８）と、補間により求めた参照画素の輝度が１２８の近似入出力特性を用いることにより、要求出力輝度１３２に対して必要な入力輝度、すなわち補正値を求めることができる。
【００５９】
再び図１６を参照して説明する。自ノズルの補正値を算出すると、ＣＰＵ１１０は、算出した補正値が実現可能なものであるか判断する（ステップＳ３０９）。「補正値が実現可能」とは、次のような意味である。前述のように、各ノズルが出力可能な輝度は濃度補正テーブルにより、ある範囲内に制限される。例えば、図１５の濃度補正テーブルの例で説明すると、参照画素の入力輝度（補正値）が１０２である場合、自ノズルが出力できる輝度（自画素の画素値）は、３３〜１４６の範囲に限定される。ここで、例えば要求出力輝度が１５０であった場合、自ノズルの補正値をどのように決定しても、要求出力輝度１５０を実現することはできない。このように、ＣＰＵ１１０は、自画素の要求出力輝度が、参照画素の輝度により制限される出力輝度の範囲内にあるか判断する。算出した補正値が実現可能なものである場合（ステップＳ３０９：ＹＥＳ）、ＣＰＵ１１０は、処理をステップＳ３１１に移行する。算出した補正値が実現可能なものでない場合（ステップＳ３０９：ＮＯ）、ＣＰＵ１１０は、処理をステップＳ３１０に移行する。
【００６０】
ステップＳ３１０において、ＣＰＵ１１０は、再補正処理を行う。再補正処理の詳細については後述する。再補正処理が完了すると、ＣＰＵ１１０は、処理をステップＳ３１１に移行する。
【００６１】
ステップＳ３１１において、ＣＰＵ１１０は、ノズル番号ｙを更新する。具体的には、ｙ＝ｙ＋１としてノズル番号ｙを更新する。ＣＰＵ１１０は、すべてのノズルについて処理が完了したか判断する（ステップＳ３１２）。すべてのノズルについて処理が完了していない場合（ステップＳ３１２：ＮＯ）、ＣＰＵ１１０は、上述のステップＳ３０４〜Ｓ３１１の処理を繰り返し実行する。本実施形態において、ノズル＃００（画素［ｘ，０］）についてステップＳ３０４〜Ｓ３１１の処理が完了すると、続いてノズル＃０１（画素［ｘ，１］）についてステップＳ３０４〜Ｓ３１１の処理が行われる。
【００６２】
画素［ｘ，１］に対するステップＳ３０４〜Ｓ３１１の処理も、基本的には画素［ｘ，０］に対するステップＳ３０４〜Ｓ３１１の処理と同様に行われる。ノズル＃００に対する処理と異なる点は次のとおりである。いま、自ノズルはノズル＃０１（ｙ＝１）なので、ステップＳ３０５における判断結果はＮＯとなる。この場合処理はステップＳ３０６に進む。ステップＳ３０６において、ＣＰＵ１１０は、ＲＡＭ１３０から参照画素［ｘ，ｙ−１］、すなわち画素［ｘ，０］の補正値を参照画素の輝度として読み出す。以下ステップＳ３０８〜Ｓ３１２の処理は画素［ｘ，０］の場合と同様である。画素［ｘ，２］以降の画素（ノズル＃０２以降のノズル）についても、同様の処理が行われる。
【００６３】
一方、１ライン分すべてのノズルについて処理が完了した場合（ステップＳ３１２：ＹＥＳ）、ＣＰＵ１１０は、ｘの値をｘ＝ｘ＋１として更新し、ノズル番号を０に戻す（ステップＳ３１３）。ＣＰＵ１１０は、すべての画素について処理が完了したか判断する（ステップＳ３１４）。すべての画素について処理が完了していない場合（ステップＳ３１２：ＮＯ）、ＣＰＵ１１０は、ステップＳ３０４〜Ｓ３１３の処理を繰り返し実行する。すべての画素について処理が完了した場合（ステップＳ３１４：ＹＥＳ）、ＣＰＵ１１０は、濃度補正処理を完了する。
【００６４】
＜１−４．再補正処理＞
続いて、図１６のステップＳ３１０における再補正処理の詳細について説明する。
図２１は、本実施形態に係る再補正処理を示すフローチャートである。以下、必要に応じてこの再補正処理を「反復補正処理」という。図２２は、以下の説明で用いる濃度補正テーブルの一例である。図２３は、ノズル＃ｋの入出力特性を示す図である。図２４は、ノズル＃ｋ＋１の入出力特性を示す図である。ここでは、以下の（１）〜（２）の状況を例として説明を行う。（１）画素［ｘ，ｋ］（ノズル＃ｋ）および画素［ｘ，ｋ＋１］（ノズル＃ｋ＋１）に対する要求出力輝度は１２６．３である。（２）画素［ｘ，ｋ−１］（ノズル＃ｋ−１）の補正値は２３４である。このとき、図２２に示されるノズル＃ｋの濃度補正テーブルから、画素［ｘ，ｋ］の補正値は１４９と決定される（図２３）。次に、画素［ｘ，ｋ＋１］を自ノズルとして濃度補正処理が行われる。図２２に示されるノズル＃ｋ＋１の濃度補正テーブルのうち、隣接ノズル（参照画素）の輝度が１４９の行を参照すると、ノズル＃ｋ＋１が出力可能な輝度は最大でも１２１．０である。すなわち、画素［ｘ，ｋ＋１］の補正値を０〜２５５のいずれにしても、出力輝度を要求出力輝度と同一にすることはできない（図２４）。この状況では、図１６のステップＳ３０９において、算出された補正値は実現不可能と判断され、処理はステップＳ３１０、すなわち図２１に示される再補正処理に移行する。
【００６５】
本実施形態における再補正処理は、概ね次のように行われる。まず、算出された補正値が実現不可能と判断された自画素について、要求出力輝度と出力輝度との差が最小となるように補正値を決定する。続いて、既に補正値が算出済みの画素について、通常とは逆の順番（逆方向）に補正値の再計算が行われる。本実施形態においては、ノズル番号が減少する方向に補正値の再計算が行われる。詳細は以下のとおりである。
【００６６】
ステップＳ４０１において、ＣＰＵ１１０は、自画素を示すパラメータｘおよびｙを初期化する。図１６のステップＳ３０９において補正値が実現不可能であると判断されたときの自画素のｘ座標をＸ、ｙ座標（自ノズルのノズル番号）をＹと表すと、ｘ＝Ｘ、およびｙ＝Ｙとする。さらに、ステップＳ４０１において、ＣＰＵ１１０は、要求出力輝度と出力輝度との差が最小となる入力輝度Ｍ’を、自画素の補正値Ｍ［ｘ，ｙ］とする。すなわち、Ｍ［ｘ，ｙ］＝Ｍ’とする。図２２の例では、ＣＰＵ１１０は、Ｍ［ｘ，ｋ＋１］＝２５５として画素［ｘ，ｋ＋１］の補正値を決定する。
【００６７】
ステップＳ４０２において、ＣＰＵ１１０はｙの値をｙ＝ｙ−１として更新する。この場合、ｙ＝ｋとなる。すなわち、画素［ｘ，ｋ］が自画素となる。次に、ステップＳ４０３において、ＣＰＵ１１０は、ＨＤＤ１５０に記憶された濃度補正テーブルＴＢ１から、自ノズル（ノズル＃ｙ）に対応する濃度補正テーブルを読み出す。ＣＰＵ１１０は、画素［ｘ，ｙ＋１］を参照画素として（すなわち、ノズル＃ｙ＋１を隣接ノズルとして）、参照画素の補正値Ｎを取得する。すなわち、Ｎ＝Ｍ［ｘ，ｙ＋１］である。この場合、Ｎ＝Ｍ［ｘ，ｋ＋１］＝２５５である。
【００６８】
次に、ステップＳ４０５において、ＣＰＵ１１０は、濃度補正テーブルＴＢ１に基づいて自画素の補正値Ｍ［ｘ，ｙ］を算出する。次に、ステップＳ４０８において、ＣＰＵ１１０は、ｙ＝ｙ−１としてｙの値を更新する。次に、ステップＳ４０９において、ＣＰＵ１１０は、すべての補正済み画素について再補正処理が完了したか、すなわちｙ＝０であるか判断する。ｙ＝０でない場合（ステップＳ４０９：ＮＯ）、ＣＰＵ１１０は、ステップＳ４０３〜Ｓ４０９の処理を繰り返し実行する。ｙ＝０である場合（ステップＳ４０９：ＹＥＳ）、ＣＰＵ１１０は、再補正処理を終了する。
【００６９】
図２１の再補正処理が完了すると、ＣＰＵ１１０は、補正値が実現不可能であると判断された画素に対して通常の処理順番で次の画素、すなわち、画素［ｘ，ｋ＋２］を自画素として図１６の処理を継続する。
【００７０】
以上で説明したように、本実施形態によれば、隣接ノズルの影響を考慮した補正テーブルを生成することができる。また、本実施形態に係る画像形成システムによれば、参照画素（隣接ノズル）の影響を考慮した補正テーブルを用いることにより、ノズルの物理的特性のばらつきを補償することができる。これにより、より高画質な画像を得ることができる。さらに、本実施形態に係る画像形成システムによれば、要求出力輝度と出力輝度が同一となるように補正値を決定することができない場合でも、通常の補正値算出アルゴリズムとは異なるアルゴリズムで補正値が算出される。したがって、さらに高画質な画像を得ることができる。
【００７１】
＜２．第２実施形態＞
続いて、本発明の第２実施形態について説明する。以下の説明においては、第１実施形態と共通する要素については共通の参照符号を用いて説明する。また、第１実施形態と共通する要素および事項についての説明は省略し、第１実施形態との差異点を中心に説明する。第２実施形態においては、図１６のステップＳ３１０における再補正処理が図２１に示されるフローから図２６に示されるフローに変更される。以下、説明の便宜上、図２６に示される処理を「平滑化処理」という。
【００７２】
図２５（ａ）〜（ｂ）は、平滑化処理の概念を説明する図である。図２５（ａ）に示される例においては、画素［ｘ，ｋ］（ノズル＃ｋ）までは要求出力輝度と出力輝度とが一致しているが、画素［ｘ，ｋ＋１］（ノズル＃ｋ＋１）において実現可能な出力輝度の最大値が要求出力輝度よりも低くなっている。そこで、自画素と特定の位置関係にある画素（「周辺画素」という）の輝度を自画素と一緒に補正することにより、自画素を含む複数の画素の平均出力輝度を、要求出力輝度の平均値と一致させようとするものである。本実施形態においては、周辺画素として、自画素の両隣の画素が採用される。つまり、画素［ｘ，ｋ］から画素［ｘ，ｋ＋２］までの３画素（ノズル＃ｋからノズル＃ｋ＋２までの３つのノズル）の平均出力輝度は、画素［ｘ，ｋ＋１］の出力輝度が要求輝度に満たないため、要求出力輝度の平均値よりも低くなる。そこで、画素［ｘ，ｋ］から画素［ｘ，ｋ＋２］までの３画素の平均出力輝度を要求出力輝度に近づけるため、自画素の両隣の画素［ｘ，ｋ］および画素［ｘ，ｋ＋２］の要求輝度が上げられる。詳細には次のとおりである。
【００７３】
以下では、画素［ｘ，ｋ＋１］（ノズル＃ｋ＋１）において、要求輝度１２６．４に対して実現可能な出力輝度の最大値が１２１．０である場合について説明する。実現可能な出力輝度は、要求輝度よりも５．４低い。したがって図１６のステップＳ３０９において補正値は実現可能でないと判断され、ステップＳ３１０の処理、すなわち、図２６に示される平滑化処理が行われる。
【００７４】
図２６は、平滑化処理の詳細を示すフローチャートである。ステップＳ５００において、ＣＰＵ１１０は、まず補正値が実現不可能と判断された画素、ここでは画素［ｘ，ｋ＋１］の補正値Ｍを算出する。補正値Ｍは、要求出力輝度と出力輝度との差が最小となるように決定される。ここでは、Ｍ［ｘ，ｋ＋１］＝２５５と決定される。さらに、ＣＰＵ１１０は、周辺画素のうち、まだ補正値が算出されていない画素について補正値を算出する。ここでは、自画素（画素［ｘ，ｋ＋１］）の右隣の画素（画素［ｘ，ｋ＋２］）の補正値が算出される。このとき、参照画素は画素［ｘ，ｋ＋１］であり、その輝度としては先ほど決定した補正値Ｍ［ｘ，ｋ＋１］＝２５５が用いられる。
【００７５】
図２７は、ノズル＃ｋ＋２の濃度補正テーブルを示す図である。図２８は、ノズル＃ｋ＋２の濃度補正テーブルをグラフ化した図、すなわちノズル＃ｋ＋２の入出力特性を示す図である。ステップＳ５００において、ＣＰＵ１１０は、図２７に示される濃度補正テーブルから、画素［ｘ，ｋ＋２］の補正値を算出する。ここでは、Ｍ［ｘ，ｋ＋１］＝１２９．０と算出される。
【００７６】
次に、ステップＳ５０１において、ＣＰＵ１１０は、平滑化処理に用いるパラメータの初期化を行う。平滑処理では、パラメータＳｍｉｎおよびパラメータＡが用いられる。パラメータＳｍｉｎは、要求出力輝度と出力輝度との誤差を示すパラメータである。パラメータＡは、周辺画素に付加する補正量を算出するためのパラメータである。ＣＰＵ１１０は、Ｓｍｉｎ、Ａを、Ｓｍｉｎ＝ＭＡＸ、Ａ−１＝−１０、Ａ＝−１０、Ａ＋１＝−１０としてそれぞれのパラメータを初期化する。ここで、ＭＡＸはあらかじめ決められた値である。Ａ−１は自画素の左隣の周辺画素に、Ａは自画素に、Ａ＋１は自画素の右隣の周辺画素に対するパラメータである。
【００７７】
次に、ステップＳ５０２において、ＣＰＵ１１０は、自画素および周辺画素の仮補正値Ｍｔｅｍｐを以下のように算出する。
Ｍｔｅｍｐ［ｘ，ｙ−１］＝Ｍ［ｘ，ｙ−１］＋Ａ−１
Ｍｔｅｍｐ［ｘ，ｙ］＝Ｍ［ｘ，ｙ］＋Ａ
Ｍｔｅｍｐ［ｘ，ｙ＋１］＝Ｍ［ｘ，ｙ＋１］＋Ａ＋１
ここで、パラメータＡと同様に、Ｍ−１は自画素の左隣の周辺画素の、Ｍは自画素の、Ｍ＋１は自画素の右隣の周辺画素の仮補正値を示す。
【００７８】
次に、ステップＳ５０３において、ＣＰＵ１１０は、自画素の左隣の周辺画素（画素［ｘ，ｙ−１］）について、濃度補正テーブルＴＢ１から、参照画素の仮補正値Ｍｔｅｍｐ［ｘ，ｙ−２］および自画素の仮補正値Ｍｔｅｍｐ［ｘ，ｙ−１］に対応する自画素の出力輝度（実現輝度）Ｐ［ｘ，ｙ−１］を算出する。
【００７９】
同様に、ステップＳ５０４において、ＣＰＵ１１０は、自画素（画素［ｘ，ｙ］）について、濃度補正テーブルＴＢ１から、参照画素の仮補正値Ｍｔｅｍｐ［ｘ，ｙ−１］および自画素の仮補正値Ｍｔｅｍｐ［ｘ，ｙ］に対応する自画素の出力輝度（実現輝度）Ｐ［ｘ，ｙ］を算出する。
【００８０】
さらに、ステップＳ５０５において、ＣＰＵ１１０は、自画素の右隣の周辺画素（画素［ｘ，ｙ＋１］）について、濃度補正テーブルＴＢ１から、参照画素の仮補正値Ｍｔｅｍｐ［ｘ，ｙ］および自画素の仮補正値Ｍｔｅｍｐ［ｘ，ｙ＋１］に対応する自画素の出力輝度（実現輝度）Ｐ［ｘ，ｙ＋１］を算出する。
【００８１】
次に、ステップＳ５０６において、ＣＰＵ１１０は、要求出力輝度と出力輝度（実現輝度）との誤差Ｓ（ｋ）を以下の（１）式のように算出する。
S(k)=(P(k)-Q(k))2+(P(k+1)-Q(k+1))2+(P(k+2)-Q(k+2))2    …（１）
ここで、Ｐ（ｋ）はノズル＃ｋの実現輝度すなわち画素［ｘ，ｋ］の出力輝度を、Ｑ（ｋ）はノズル＃ｋの要求出力輝度すなわち画素［ｘ，ｋ］の要求出力輝度を示す。
【００８２】
次に、ステップＳ５０７において、ＣＰＵ１１０は、算出した誤差Ｓ（ｋ）がこれまでで最小のものであるか、すなわち、誤差Ｓ（ｋ）が最小誤差Ｓｍｉｎより小さいか判断する。誤差Ｓ（ｋ）が最小誤差Ｓｍｉｎより小さい場合（ステップＳ５０７：ＹＥＳ）、ＣＰＵ１１０は、最小誤差Ｓｍｉｎおよび最小誤差を与える補正量を示すパラメータＡｍｉｎを以下のように更新する（ステップＳ５０８）。
Ｓｍｉｎ＝Ｓ（ｋ）
Ａ−１ｍｉｎ＝Ａ−１
Ａｍｉｎ＝Ａ
Ａ＋１ｍｉｎ＝Ａ＋１
ステップＳ５０８の処理が完了すると、ＣＰＵ１１０は処理をステップＳ５０９に移行する。ステップＳ５０７において誤差Ｓ（ｋ）が最小誤差Ｓｍｉｎより小さくないと判断された場合（ステップＳ５０７：ＮＯ）も、ＣＰＵ１１０は処理をステップＳ５０９に移行する。
【００８３】
ステップＳ５０９において、ＣＰＵ１１０は、Ａ−１＝Ａ−１＋１としてパラメータＡ−１の値を更新する。次に、ステップＳ５１０において、ＣＰＵ１１０は、更新されたパラメータＡ−１があらかじめ決められた値（ここでは１０）を超えたか判断する。パラメータＡ−１があらかじめ決められた値を超えていない場合（ステップＳ５１０：ＮＯ）、ＣＰＵ１１０は、ステップＳ５０２〜Ｓ５０９の処理を繰り返し実行する。パラメータＡ−１があらかじめ決められた値を超えていた場合（ステップＳ５１０：ＹＥＳ）、ＣＰＵ１１０は、処理をステップＳ５１１に移行する。
【００８４】
ステップＳ５１１において、ＣＰＵ１１０は、Ａ＝Ａ＋１としてパラメータＡの値を更新する。さらに、ＣＰＵ１１０は、Ａ−１＝１０としてパラメータＡ−１を初期化する。次に、ステップＳ５１２において、ＣＰＵ１１０は、更新されたパラメータＡがあらかじめ決められた値（ここでは１０）を超えたか判断する。パラメータＡがあらかじめ決められた値を超えていない場合（ステップＳ５１２：ＮＯ）、ＣＰＵ１１０は、ステップＳ５０２〜Ｓ５１１の処理を繰り返し実行する。パラメータＡがあらかじめ決められた値を超えていた場合（ステップＳ５１２：ＹＥＳ）、ＣＰＵ１１０は、処理をステップＳ５１３に移行する。
【００８５】
ステップＳ５１３において、ＣＰＵ１１０は、Ａ＋１＝Ａ＋１＋１としてパラメータＡの値を更新する。さらに、ＣＰＵ１１０は、Ａ−１＝１０およびＡ＝１０としてパラメータＡ−１およびＡを初期化する。次に、ステップＳ５１４において、ＣＰＵ１１０は、更新されたパラメータＡ＋１があらかじめ決められた値（ここでは１０）を超えたか判断する。パラメータＡ＋１があらかじめ決められた値を超えていない場合（ステップＳ５１４：ＮＯ）、ＣＰＵ１１０は、ステップＳ５０２〜Ｓ５１３の処理を繰り返し実行する。パラメータＡ＋１があらかじめ決められた値を超えていた場合（ステップＳ５１４：ＹＥＳ）、ＣＰＵ１１０は、処理をステップＳ５１５に移行する。
【００８６】
ステップＳ５１５において、ＣＰＵ１１０は、要求出力輝度と出力輝度（実現輝度）との誤差Ｓ（ｋ）が最小となるパラメータＡ−１ｍｉｎ、Ａｍｉｎ、Ａ＋１ｍｉｎ、を用いて、自画素および周辺画素の補正値を以下のように再計算する。
Ｍ［ｘ，ｙ−１］＝Ｍ［ｘ，ｙ−１］＋Ａｍｉｎ−１
Ｍ［ｘ，ｙ］＝Ｍ［ｘ，ｙ］＋Ａｍｉｎ
Ｍ［ｘ，ｙ＋１］＝Ｍ［ｘ，ｙ＋１］＋Ａｍｉｎ＋１
【００８７】
図２６に示される平滑化処理が完了すると、ＣＰＵ１１０は、平滑化処理によって補正値が決定された画素の次の画素、すなわち画素［ｘ，ｋ＋３］を自画素として図１６の濃度補正処理を継続する。
【００８８】
以上で説明したように本実施形態によれば、要求出力輝度と出力輝度が同一となるように補正値を決定することができない場合には、自画素と周辺画素における、要求出力輝度からの誤差が最小となるように補正値が再計算される。したがってこのような場合でも、高画質の画像を得ることができる。
【００８９】
なお、上述の実施形態においては、誤差が最小となる補正量を与えるパラメータＡｍｉｎを得るため、自画素および周辺画素に所定の補正量（パラメータＡ）を加えた時の出力輝度を算出した。所定の補正量としては、−１０≦Ａ≦１０を満たす整数Ａが用いられた。すなわち、自画素および２つの周辺画素に対し、１１３の補正量の組み合わせについて誤差Ｓ（ｋ）が算出された。しかし、所定の補正量の範囲、および組み合わせの数はこれに限定されるものではなく、任意に設計可能な事項である。Ｓ（ｋ）を最小と摺る補正値をより正確に求めるため、例えば、所定の補正量の範囲を拡大してもよい。あるいは、上述の実施形態では補正量の変化量は１であったが、これを例えば０．１にしてもよい。さらにあるいは、最初に例えば補正量の変化量を１として補正量の範囲を絞り込み、絞り込まれた範囲で補正量の変化量を例えば０．１に減じて正確な補正量を算出する構成としてもよい。
【００９０】
また、要求出力輝度と出力輝度（実現輝度）との誤差は式（１）に示される自乗誤差に限定されるものではなく、他の計算方法により算出してもよい。例えば、以下の式（２）で算出される誤差を用いてもよい。
S(k)=｜P(k)-Q(k)｜+｜P(k+1)-Q(k+1)｜+｜P(k+2)-Q(k+2)｜    …（２）
【００９１】
＜３．第３実施形態＞
続いて、本発明の第３実施形態について説明する。以下の説明においては、第１実施形態あるいは第２実施形態と共通する要素については共通の参照符号を用いて説明する。また、前述の実施形態と共通する要素および事項についての説明は省略し、第１実施形態との差異点を中心に説明する。第３実施形態においては、図１６のステップＳ３１０における再補正処理が図２１に示されるフローから図２９に示されるフローに変更される。本実施形態における再補正処理は、第１実施形態の再補正処理と第２実施形態の平滑化処理とを組み合わせたものである。
【００９２】
図２９は、本実施形態に係る再補正処理を示すフローチャートである。図２９に示されるフローは、図２１に示されるフローと多くの部分において共通する。図２９において、図２１と共通する処理については共通の符号を付している。ステップＳ４０５において自画素の補正値を算出すると、ＣＰＵ１１０は、補正値が実現可能なものであるか判断する（ステップＳ４０６）。ステップＳ４０６の処理は、図１６のステップＳ３０９の処理と同様に行われる。補正値が実現可能なものでない場合（ステップＳ４０６：ＮＯ）、ＣＰＵ１１０は、処理をステップＳ４０７に移行する。ステップＳ４０７においては、第２実施形態で説明した平滑化処理が行われる。平滑化処理が完了すると、ＣＰＵ１１０は、図２９に示される再補正処理を終了する。
【００９３】
ステップＳ４０６において補正値が実現可能であると判断された場合（ステップＳ４０６：ＹＥＳ）、ＣＰＵ１１０は処理をステップＳ４０８に移行する。ステップＳ４０８以降の処理は第１実施形態と同様である。
【００９４】
本実施形態によれば、例えば、画素［ｘ，ｋ＋１］において補正値が実現不可能と判断された場合、再補正処理は以下のように進行する。（１）画素［ｘ，ｋ＋１］において補正値が実現不可能と判断されたので、画素［ｘ，ｋ＋１］から画素［ｘ，０］まで逆向きに補正値を再計算する。（２）補正値の再計算中、画素［ｘ，ｍ］において要求出力輝度が実現不可能であると判断された（ｋ＞ｍ＞０）。（３）画素［ｘ，ｍ］に対して、第２実施形態で説明した平滑化処理が行われる。画素［ｘ，ｍ−１］〜画素［ｘ，ｍ＋１］までの補正値が決定される。（４）画素［ｘ，ｋ＋２］から通常の補正処理が再開される。したがって、画素［ｘ，０］〜画素［ｘ，ｍ−２］までの画素については再補正処理が行われない。
【００９５】
以上で説明したように本実施形態によれば、要求出力輝度と出力輝度が一致するように補正値を決定することができない場合には再補正処理が行われる。また、最補正処理において要求出力輝度と出力輝度が一致するように補正値を決定することができない場合には、複数の画素における要求出力輝度と出力輝度の誤差が最小となるように補正値が決定される。したがって、より高画質の画像を得ることができる。
【００９６】
＜４．第４実施形態＞
続いて、本発明の第４実施形態について説明する。以下の説明においては、第１実施形態と共通する要素については共通の参照符号を用いて説明する。また、第１実施形態と共通する要素および事項についての説明は省略し、第１実施形態との差異点を中心に説明する。第４実施形態においては、濃度補正テーブルＴＢ１は、「ノズル毎」の濃度データではなく、「ノズル間」の濃度データを基に作成されたものが採用される。
【００９７】
ノズル間の濃度データにより作成された濃度補正テーブルを用いる場合でも、処理の概要はノズル毎の濃度データにより作成された濃度補正テーブルを用いた場合と同一である。第１実施形態で説明した反復補正において、ノズル間の濃度補正テーブルを用いる場合、図１５の濃度補正テーブルを例にとると、縦軸がノズル＃ｋの輝度、横軸がノズル＃ｋ＋１の輝度というように、ノズルとの関係が一意に特定される。したがって、通常と逆向きの反復補正処理においては、データの処理方法が異なる。例えば、画素［ｘ，ｋ＋１］を参照画素として（ノズル＃ｋ＋１を隣接ノズルとして）、画素［ｘ，ｋ］（自ノズルであるノズル＃ｋ）の補正値を算出する場合、隣接ノズルの輝度は横軸から、自ノズルの輝度は縦軸から参照する必要がある。
【００９８】
図３０は、ノズル間の濃度補正テーブルを用いた平滑化処理を説明する図である。例えば画素［ｘ，ｋ＋１］において要求出力輝度が実現不可能であると判断され平滑化処理を行う場合には、対象となる画素は画素［ｘ，ｋ］と画素［ｘ，ｋ＋１］の２つの画素である。すなわち、対象となるノズルはノズル＃ｋとノズル＃ｋ＋１の２つのノズルである。このように、第１〜第３実施形態で説明した再補正処理は、ノズル間の濃度テーブルを用いて補正処理を行う画像処理装置に対しても適用することができる。
【００９９】
＜５．他の実施形態＞
【０１００】
本発明は上述の実施形態に限定されるものではなく、種々の変形実施が可能である。上述の実施形態の説明に用いた補正テーブル（図１５など）は、あくまで例示であり、補正テーブルの内容はこれに限定されるものではない。図１５に示される例では、濃度補正テーブルＴＢ１は、自ノズルおよび隣接ノズルについて、６つの輝度（階調値）のデータを含んでいるが、輝度の数は６つに限定されるものではない。補間の精度を向上させるためには多くの階調値のデータを用いることが望ましく、メモリ容量を節約するためには少ない階調値のデータを用いることが望ましい。
【０１０１】
また、上述の実施形態においては、画像形成装置２００がラインヘッド型のプリンタである態様について説明したが、いわゆる２パス型のプリンタ等、ラインヘッド型以外のプリンタであってもよい。また、上述の実施形態においては、画像形成装置２００が４色のインクを用いて画像形成を行うプリンタである態様について説明したが、画像形成装置２００が用いるインクの数は４色に限定されない。画像形成装置２００は、６色、７色、あるいはそれ以上のインクを用いて画像形成を行ってもよい。
【０１０２】
また、上述の実施形態においては、図４に示される画像処理をＰＣ１００が行う態様について説明したが、図４のステップＳ１００〜Ｓ１５０の処理の一部または全部を画像形成装置２００が行う構成としてもよい。図４のステップＳ１００〜Ｓ１５０の処理の全部を画像形成装置２００が行う場合、画像形成装置２００は、メモリカードからデータを読み取るためのメモリカードインターフェースを有することが望ましい。この場合、ユーザは、デジタルカメラ等の撮像装置により画像が記録されたメモリカードを、画像形成装置２００のメモリカードインターフェースに挿入する。画像形成装置２００は、挿入されたメモリカードから画像を読み取って図４の処理を行う。
【図面の簡単な説明】
【０１０３】
【図１】第１実施形態に係る画像形成システム１の機能構成を示す図である。
【図２】画像形成装置２００のハードウェア構成を示すブロック図である。
【図３】ＰＣ１００のハードウェア構成を示すブロック図である。
【図４】画像形成システム１の動作を示すフローチャートである。
【図５】濃度補正テーブル生成システム２の機能構成を示すブロック図である。
【図６】ＰＣ３００のハードウェア構成を示す図である。
【図７】濃度補正テーブル生成処理の概要を示すフローチャートである。
【図８】テストパターン３０１（の一部）を例示する図である。
【図９】テストパターン３０１（の一部）を例示する図である。
【図１０】単位パターンにおける階調表現を説明する図である。
【図１１】ノズル毎およびノズル間の濃度データの定義を説明する図である。
【図１２】単位領域を例示する図である。
【図１３】ノズル＃０１の濃度補正テーブルの生成方法を説明する図である。
【図１４】ノズル＃０２の濃度補正テーブルの生成方法を説明する図である。
【図１５】濃度補正テーブルＴＢ１を例示する図である。
【図１６】濃度補正処理の詳細を示すフローチャートである。
【図１７】出力輝度範囲および要求出力輝度を視覚的に説明する図である。
【図１８】ノズル＃００の濃度補正テーブルをグラフ化した図である。
【図１９】近似直線を用いた補間方法を示す図である。
【図２０】近似平面を用いた補間方法を説明する図である。
【図２１】第１実施形態に係る再補正処理を示すフローチャートである。
【図２２】濃度補正テーブルの一例である。
【図２３】ノズル＃ｋの入出力特性を示す図である。
【図２４】ノズル＃ｋ＋１の入出力特性を示す図である。
【図２５】第２実施形態に係る平滑化処理の概念を説明する図である。
【図２６】第２実施形態に係る再補正処理を示すフローチャートである。
【図２７】ノズル＃ｋ＋２の濃度補正テーブルを示す図である。
【図２８】ノズル＃ｋ＋２の入出力特性を示す図である。
【図２９】第３実施形態に係る再補正処理を示すフローチャートである。
【図３０】ノズル間の濃度補正テーブルを用いた平滑化処理を説明する図である。
【図３１】補正テーブル作成の際の隣接ノズルの影響を説明する図である。
【符号の説明】
【０１０４】
ＴＢ１…濃度補正テーブル、ＴＢ２…濃度補正テーブル、ＴＢ３…濃度補正テーブル、１…画像形成システム、２…濃度補正テーブル生成システム、１００…ＰＣ、１０１…解像度変換部、１０２…色空間変換部、１０３…濃度補正部、１０４…量子化部、１０５…ラスタライズ部、１０８…アプリケーション、１０９…デバイスドライバ、１１０…ＣＰＵ、１２０…ＲＯＭ、１３０…ＲＡＭ、１４０…Ｉ／Ｆ、１５０…ＨＤＤ、１６０…キーボード、１７０…ディスプレイ、１９０…バス、２００…画像形成装置、２１０…ＣＰＵ、２２０…ＲＯＭ、２３０…ＲＡＭ、２４０…Ｉ／Ｆ、２５０…画像形成部、２５１…ラインヘッド、２５２…インクタンク、２５３…ヘッド駆動回路、２５４…制御部、２５５…モータ、２５６…モータ駆動回路、２５７…ページバッファ、２９０…バス、３００…ＰＣ、３０１…テストパターン、３０２…濃度補正テーブル生成部、３０３…濃度測定部、３０４…スキャン画像、３１０…ＣＰＵ、３１１…テストパターン、３２１…テストパターン、３３０…ＲＡＭ、３４０…Ｉ／Ｆ、３５０…ＨＤＤ、３９０…バス、４００…スキャナ、２４０１…ドット、２４０２…ドット、２４０３…ノズル、２４０４…ノズル
【図１】
0004561600.tif 000002
【図２】
0004561600.tif 000003
【図３】
0004561600.tif 000004
【図４】
0004561600.tif 000005
【図５】
0004561600.tif 000006
【図６】
0004561600.tif 000007
【図７】
0004561600.tif 000008
【図８】
0004561600.tif 000009
【図９】
0004561600.tif 000010
【図１０】
0004561600.tif 000011
【図１１】
0004561600.tif 000012
【図１２】
0004561600.tif 000013
【図１３】
0004561600.tif 000014
【図１４】
0004561600.tif 000015
【図１５】
0004561600.tif 000016
【図１６】
0004561600.tif 000017
【図１７】
0004561600.tif 000018
【図１８】
0004561600.tif 000019
【図１９】
0004561600.tif 000020
【図２０】
0004561600.tif 000021
【図２１】
0004561600.tif 000022
【図２２】
0004561600.tif 000023
【図２３】
0004561600.tif 000024
【図２４】
0004561600.tif 000025
【図２５】
0004561600.tif 000026
【図２６】
0004561600.tif 000027
【図２７】
0004561600.tif 000028
【図２８】
0004561600.tif 000029
【図２９】
0004561600.tif 000030
【図３０】
0004561600.tif 000031
【図３１】
0004561600.tif 000032