(57)【要約】【課題】インクジェットプリンタ等の画像記録装置によるプリント物のスジムラを低減する。【解決手段】均一パッチの周辺に所定の基準パターンを配置したテスト画像を画像記録装置で出力する。そして、それを光学的に読み取ったスキャン画像から基準パターンの位置を検出し、検出結果に基づいて、記録素子それぞれが画像記録を行う経路をスキャン画像に設定する。そして、設定した経路に沿ってスキャン画像の画素値を積分し、記録素子毎の階調再現関数を導出する。【選択図】図７
2020138426.tif 000002
【特許請求の範囲】
【請求項１】
記録媒体上に画像を記録する画像記録装置の記録素子毎の階調再現関数を導出する画像処理装置であって、
均一パッチの周辺に基準パターンを配置したテスト画像を前記画像記録装置で出力したものを光学的に読み取ったスキャン画像から、前記基準パターンの位置を検出する検出手段と、
前記検出手段で検出された前記基準パターンの位置に基づいて、前記スキャン画像における、前記記録素子それぞれが画像記録を行う経路を設定する設定手段と、
設定された前記経路に沿って、前記スキャン画像の画素値を積分し、前記記録素子毎の階調再現関数を生成する生成手段と、
を備え、
前記均一パッチは、前記記録素子が並ぶ方向に連続しており、
前記基準パターンは、前記記録素子が並ぶ方向における位置の基準を示す図形パターンである、
ことを特徴とする画像処理装置。
【請求項２】
前記基準パターンは、連続性のあるランダムな図形パターンであることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記基準パターンは、所定形状の複数のマークを配置した図形パターンであることを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記テスト画像の四隅に、前記基準パターンの検出の精度を向上させるための補助パターンが配置されていることを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記設定手段は、
前記テスト画像において複数の局所領域を設定し、
前記検出手段で検出された前記基準パターンの位置に基づいて、前記テスト画像に設定された前記複数の局所領域それぞれに対応する、隣接する局所領域間で互いに境界を共有する複数の局所領域を前記スキャン画像に設定し、
前記スキャン画像に設定された前記複数の局所領域それぞれに、異なる座標変換パラメータを用いた座標変換処理を行って、前記経路を設定する、
ことを特徴とする請求項１に記載の画像処理装置。
【請求項６】
前記生成手段は、前記経路上の注目点の画素値を順に取得し、取得した画素値を積分して得られた積分値を平均化して、前記階調再現関数を生成することを特徴とする請求項１に記載の画像処理装置。
【請求項７】
前記生成手段は、前記注目点に対応するサブピクセル位置の画素値を補間処理によって取得することを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記生成手段は、バイリニア補間を用いて、前記注目点に対応するサブピクセル位置の画素値を取得することを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記生成手段は、前記スキャン画像の画素値と、標本化関数との積和演算によって、前記サブピクセル位置の画素値を取得することを特徴とする請求項７に記載の画像処理装置。
【請求項１０】
前記標本化関数は、ｓｉｎｃ関数またはＬａｎｃｚｏｓ関数であることを特徴とする請求項９に記載の画像処理装置。
【請求項１１】
前記標本化関数の、前記記録素子の並ぶ方向に直交する方向のタップ数を、前記記録素子の並ぶ方向のタップ数に比べ小さくしたことを特徴とする請求項９又は１０に記載の画像処理装置。
【請求項１２】
前記均一パッチの輝度が高いほど、前記標本化関数の前記記録素子が並ぶ方向のタップ数を小さくしたことを特徴とする請求項９に記載の画像処理装置。
【請求項１３】
前記標本化関数の値をルックアップテーブルとして保持する記憶手段を有し、
前記生成手段は、前記ルックアップテーブルを用いて、前記補間処理を行う
ことを特徴とする請求項９に記載の画像処理装置。
【請求項１４】
前記検出手段が検出した前記基準パターンを構成する前記複数のマークそれぞれの位置について、正常か否かを判定する判定手段と、
前記判定によって正常でないと判定された前記マークの位置を補正する位置補正手段と、
をさらに備えたことを特徴とする請求項３に記載の画像処理装置。
【請求項１５】
前記位置補正手段は、前記判定によって正常でないと判定された前記マークの位置を、その周辺で検出されたマークであってその位置が正常と判定されたマークの位置に基づいて補正することを特徴とする請求項１４に記載の画像処理装置。
【請求項１６】
前記判定手段は、検出された複数のマークのうち、着目するマークの位置と、その周辺のマークの位置との差分に基づいて、正常か否かを判定することを特徴とする請求項１４又は１５に記載の画像処理装置。
【請求項１７】
前記基準パターンは、所定形状の複数のマークを配置した図形パターンである
前記検出手段が検出した前記複数のマークそれぞれの位置について、正常か否かを判定する判定手段をさらに備え、
前記設定手段は、前記判定によって正常でないと判定された前記マークの位置を除外して、前記局所領域を設定する
ことを特徴とする請求項５に記載の画像処理装置。
【請求項１８】
前記判定手段は、前記マークの形状を表す元画像と、前記スキャン画像における前記マークに対応する画像領域との類似度に基づいて、正常か否かを判定することを特徴とする請求項１４又は１７に記載の画像処理装置。
【請求項１９】
前記画像記録装置は、インクジェットプリンタであり、
前記検出手段は、インクを吐出するノズルの目詰まりを防止するための目詰まり防止パターンが付加されたテスト画像の出力結果を光学的に読み取ったスキャン画像から、前記目詰まり防止パターンを構成する各ドットの周辺にある画素を除外して、前記基準パターンを構成する前記複数のマークの位置を検出する
ことを特徴とする請求項３に記載の画像処理装置。
【請求項２０】
前記画像記録装置は、インクジェットプリンタであり、
前記検出手段は、インクを吐出するノズルの目詰まりを防止するための目詰まり防止パターンが前記複数のマーカーの周囲に付加されていないテスト画像の出力結果を光学的に読み取ったスキャン画像から、前記基準パターンを構成する前記複数のマークの位置を検出する
ことを特徴とする請求項３に記載の画像処理装置。
【請求項２１】
前記画像記録装置は、インクジェットプリンタであり、
前記検出手段は、前記基準パターンを構成する前記複数のマークの重心位置が変化しないように、インクを吐出するノズルの目詰まりを防止するための目詰まり防止パターンが付加されたテスト画像の出力結果を光学的に読み取ったスキャン画像から、前記基準パターンを構成する前記複数のマークの位置を検出する
ことを特徴とする請求項３に記載の画像処理装置。
【請求項２２】
前記検出手段は、前記記録素子が並ぶ方向のドット位置を検出するためのドット位置検出パターンが付加されたテスト画像の出力結果を光学的に読み取ったスキャン画像から、前記ドット位置をさらに検出し、
前記設定手段は、前記ドット位置の検出結果に基づき、前記基準パターンを構成する各マークと同じ役割を果たす仮想的なマークを追加的に設定して、前記スキャン画像に設定する局所領域の数を増やす
ことを特徴とする請求項５に記載の画像処理装置。
【請求項２３】
記録媒体上に画像を記録する画像記録装置の記録素子毎の階調再現関数を導出する方法であって、
均一パッチの周辺に基準パターンを配置したテスト画像を前記画像記録装置で出力したものを光学的に読み取ったスキャン画像から、前記基準パターンの位置を検出する検出ステップと、
前記検出ステップにて検出した前記基準パターンの位置に基づいて、前記スキャン画像における、前記記録素子それぞれが画像記録を行う経路を設定する設定ステップと、
前記設定ステップにて設定した前記経路に沿って、前記スキャン画像の画素値を積分し、前記記録素子毎の階調再現関数を生成する生成ステップと、
を含み、
前記均一パッチは、前記記録素子が並ぶ方向に連続しており、 
前記基準パターンは、前記記録素子が並ぶ方向における位置の基準を示す図形パターンである、
ことを特徴とする方法。
【請求項２４】
コンピュータを、請求項１乃至２２のいずれか一項に記載の装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インクジェットプリンタ等の画像記録装置によるプリント物上の画像のスジムラを低減するための技術に関し、特に、記録素子毎の階調再現関数の導出に関する。
【背景技術】
【０００２】
従来、記録媒体上に画像記録を行う装置として、個々のノズルからインクを吐出することにより画像形成を行うインクジェットプリンタがある。このインクジェットプリンタでは、各ノズルのインク吐出特性のばらつきにより、出力結果であるプリント物上の画像にスジムラ（濃度不均一）が生じることがあり、印刷品質上の問題となっている。このスジムラを低減する技術として、特許文献１には、所謂ヘッドシェーディング技術が開示されている。ヘッドシェーディング技術は、入力階調値とプリント物上の画像濃度との関係を示す階調再現関数をノズル毎に導出し、この逆関数を用いることで、意図する濃度を正確に再現可能な入力階調値を求める技術である。また、特許文献２には、階調再現関数の導出用テスト画像中に同一階調の均一パッチのユニットを複数設け、スキャン画像の歪み補正をユニット毎に行なうことで均一パッチの光学読取値（画素値）を所定のノズルに対応付ける技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−６６５１６号公報
【特許文献２】特開２０１５−１８９１４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記特許文献２の技術では、ユニット同士の端部の長さや傾きが一致しないことがあり、その場合、歪み補正後の画素値（各ノズルに対応付ける画素値）に、意図しない段差が発生する。その結果、導出したノズル毎の階調再現関数をシェーディング補正のパラメータとして用いると、ユニットの端部において適切なシェーディング補正がなされず、スジムラが残ってしまうことがあった。
【課題を解決するための手段】
【０００５】
本発明に係る画像処理装置は、記録媒体上に画像を記録する画像記録装置の記録素子毎の階調再現関数を導出する画像処理装置であって、均一パッチの周辺に基準パターンを配置したテスト画像を前記画像記録装置で出力したものを光学的に読み取ったスキャン画像から、前記基準パターンの位置を検出する検出手段と、前記検出手段で検出された前記基準パターンの位置に基づいて、前記スキャン画像における、前記記録素子それぞれが画像記録を行う経路を設定する設定手段と、設定された前記経路に沿って、前記スキャン画像の画素値を積分し、前記記録素子毎の階調再現関数を生成する生成手段と、を備え、前記均一パッチは、前記記録素子が並ぶ方向に連続しており、前記基準パターンは、前記記録素子が並ぶ方向における位置の基準を示す図形パターンである、ことを特徴とする。
【発明の効果】
【０００６】
本発明によれば、変換前後の座標の対応関係を、隣接する局所領域間で連続的に変化させることができる。そのため、局所領域の端部において、ノズル等の記録素子に対応する領域が切換わる際の、歪み補正後の画素値の変化が滑らかになる。これにより、用紙の伸縮や光学収差等でスキャン画像が局所的に歪んでいても、シェーディング補正技術で用いる記録素子毎の階調再現関数を好適に導出できる。
【図面の簡単な説明】
【０００７】
【図１】インクジェットプリンタの模式図
【図２】画像形成システムのハードウェア構成の一例を示すブロック図
【図３】プリント処理回路の内部構成を示す機能ブロック図
【図４】ノズル毎の一次元ルックアップテーブルの一例を示す図
【図５】従来技術におけるテスト画像の一例を示す図
【図６】画素値段差の説明図
【図７】実施形態１に係る、ホストＰＣの機能ブロック図
【図８】実施形態１に係る、ノズル毎の階調再現関数の導出処理の流れを示すフローチャート
【図９】（ａ）は実施形態１に係るテスト画像の一例、（ｂ）はそのプリント物の輝度を示すスキャン画像の一例
【図１０】メインマーカーの検出枠を示す図
【図１１】メインマーカーの理想位置を求める方法の説明図
【図１２】輝度変換後のスキャン画像の一例を示す図
【図１３】（ａ）〜（ｄ）は、経路設定の説明図
【図１４】実施形態１に係る、補間処理方法の説明図
【図１５】実施形態１の効果の説明図
【図１６】実施形態１の効果の説明図
【図１７】実施形態１の効果の説明図
【図１８】実施形態２に係る、ホストＰＣの機能ブロック図
【図１９】実施形態３に係る、ホストＰＣの機能ブロック図
【図２０】（ａ）〜（ｃ）は、局所変位ベクトルの説明図
【図２１】実施形態４に係る、ホストＰＣの機能ブロック図
【図２２】（ａ）〜（ｃ）は、実施形態４における異常判定処理の説明図
【図２３】特定メインマーカーを除外した局所領域設定の説明図
【図２４】実施形態５に係る、ホストＰＣの機能ブロック図
【図２５】（ａ）及び（ｂ）は、目詰まり防止ドットが打たれる位置を考慮して、メインマーカーの重心位置を求める様子を説明する図
【図２６】ドット位置検出パターンを付加したテスト画像の一例を示す図
【図２７】ノズル列方向における局所領域の数を増やした様子を示す図
【図２８】（ａ）は実施形態７のテスト画像の一例を示す図、（ｂ）はそれを印刷出力して得たプリント物のスキャン画像を示す図
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態について、図面を参照して説明する。なお、以下の実施形態は、本発明を限定するものではなく、各実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。その他、本発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれ、また、以下の各実施形態の一部を適宜組み合わせることもできる。
【０００９】
（プリンタの構成）
図１は、各実施形態において想定する画像記録装置としての、インクジェットプリンタの模式図である。プリンタ１０は、その筐体内に記録ヘッド１００を備える。記録ヘッド１００は、所謂フルラインタイプの記録ヘッドであり、ブラック、シアン、マゼンタ、イエローの各インク色に対応した４つのノズル列を有する。各ノズル列にはインクを吐出するノズルが、一定の間隔でＸ方向に配列されている。例えば、長さが１５インチで６００ｄｐｉのノズル列の場合は、約９０００個のノズルがＸ方向に並んでいることになる。
【００１０】
記録媒体としての用紙１０６は、搬送ローラ１０５（および他の不図示のローラ）がモータ（不図示）の駆動力によって回転することにより、Ｙ方向に搬送される。そして、用紙１０６が搬送される間に、ノズル列１０１〜１０４それぞれの各ノズルが記録用データに応じてインクを吐出することで紙面上に画像が形成される。以下の説明において、用紙搬送方向の記録解像度は６００ｄｐｉとする。
【００１１】
また、記録ヘッド１００よりも下流の位置には、インラインセンサ１０７が備えられている。インラインセンサ１０７は、Ｘ方向に一定の間隔で配列した光学読取素子によって、プリント物上の画像の色を光学的に読み取り、色をＲＧＢ色空間で表現したスキャン画像を出力する。以下の説明において、用紙搬送方向の読取解像度は６００ｄｐｉとする。
【００１２】
なお、各実施形態を適用可能な画像記録装置は、フルラインタイプのインクジェットプリンタに限られない。例えば、記録ヘッドを用紙の搬送方向と交差する方向に走査して画像を形成する所謂シリアルタイプのインクジェットプリンタでもよい。また、ノズル列におけるノズルの間隔および用紙搬送方向の記録解像度は６００ｄｐｉに限定されない。同様に、インラインセンサ１０７の光学読取素子の間隔および、用紙搬送方向の読取解像度も６００ｄｐｉに限定されない。また、画像記録を行う方式もインクジェット方式に限定されるものではなく、記録素子としてＬＥＤや発熱体を使用するプリンタにも適用可能である。具体的には、露光のための光源としてＬＥＤアレイを用いた電子写真プリンタや、固形インクを気化させるための熱源として微小な発熱体が並んだサーマルヘッドを用いた昇華型プリンタにも適用可能である。
【００１３】
（画像形成システムの構成）
図２は、上述のプリンタ１０を含む画像形成システムのハードウェア構成の一例を示すブロック図である。この画像形成システムは、図１に示したプリンタ１０と、そのホスト装置としてのパーソナルコンピュータ（ＰＣ）２０を有する。
【００１４】
ホストＰＣ２０は、ＣＰＵ２０１、ＲＡＭ２０２、ＨＤＤ２０３、データ転送Ｉ／Ｆ２０４、キーボード・マウスＩ／Ｆ２０５、ディスプレイＩ／Ｆ２０６を有する。ＣＰＵ２０１は、ＲＡＭ２０２やＨＤＤ２０３に保持されているプログラムに従って所定の処理を実行する。ＲＡＭ２０２は、揮発性の記憶装置であり、プログラムやデータを一時的に保持する。ＨＤＤ２０３は、不揮発性の記憶装置であり、同じくプログラムやデータを保持する。データ転送Ｉ／Ｆ２０４は、プリンタ１０との間におけるデータの送受信を制御するインタフェースである。このデータ送受信の接続方式としては、ＵＳＢやＬＡＮが用いられる。キーボード・マウスＩ／Ｆ２０５は、キーボードやマウス等のＨＩＤ（Human Interface Device）を制御する。ディスプレイＩ／Ｆ２０６は、液晶モニタなどのディスプレイ（不図示）の表示を制御するインタフェースである。
【００１５】
プリンタ１０は、ＣＰＵ２１１、ＲＡＭ２１２、ＲＯＭ２１３、データ転送Ｉ／Ｆ２１４、ヘッドコントローラ２１５、プリント処理回路２１６、センサコントローラ２１７を有する。ＣＰＵ２１１は、ＲＡＭ２１２やＲＯＭ２１３に保持されているプログラムに従って所定の処理を実行する。ＲＡＭ２１２は、揮発性の記憶装置であり、プログラムやデータを一時的に保持する。ＲＯＭ２１３は、不揮発性の記憶装置であり、同じくプログラムやデータを保持する。データ転送Ｉ／Ｆ２１４は、ホストＰＣ２０との間におけるデータの送受信を制御するインタフェースである。ヘッドコントローラ２１５は、ＲＡＭ２１２に格納された例えば二値に量子化されたハーフトーン画像に基づいて、記録ヘッド１００の各ノズル列におけるインク吐出動作を制御する。プリント処理回路２１６は、画像処理に特化したデジタル回路であり、シェーディング補正や量子化処理といったプリント関連の画像処理を実行する。センサコントローラ２１７は、インラインセンサ１０７の個々の光学読取素子を制御する。
【００１６】
後述の各実施形態において、記録素子毎（ここではノズル毎）の階調再現関数の導出処理はホストＰＣ２０にて行い、シェーディング補正や量子化といったプリント関連の画像処理はプリンタ１０のプリント処理回路２１６にて行なうものとする。ただし、プリント関連の画像処理の全部又は一部を、ホストＰＣ２０側で行なってもよいし、或いはプリンタ１０のＣＰＵ２１１で実行しても構わない。
【００１７】
（プリント処理回路の構成）
図３は、プリンタ１０が有するプリント処理回路２１６の内部構成を示す機能ブロック図である。プリント処理回路２１６は、色変換部３０１、色分解部３０２、ヘッドシェーディング部３０３、ガンマ補正部３０４、量子化部３０５を有する。以下、各部について説明する。
【００１８】
色変換部３０１は、ホストＰＣ２０から入力された印刷対象のＲＧＢ色空間で表現された画像（入力ＲＧＢ画像）を、三次元ルックアップテーブル（３Ｄ-ＬＵＴ）を用いて、プリンタ１０の色再現域に対応したＲＧＢ画像に変換し、色分解部３０２に出力する。なお、プリント処理回路２１６で扱われる画像の解像度は全て、プリンタ１０に搭載されている記録ヘッド１００のノズル解像度と同じ６００ｄｐｉである。また、入力ＲＧＢ画像や色変換後のＲＧＢ画像を含め、以降、プリント処理回路２１６で扱われる画像の各色成分のビット深度は、量子化部３０５が出力するハーフトーン画像を除き、全て１６ビットであるものとする。
【００１９】
色分解部３０２は、色変換後のＲＧＢ画像を、３ＤＬＵＴを用いて、プリンタ１０で使用される各インク色に対応したインク値画像に変換し、ヘッドシェーディング部３０３に出力する。プリンタ１０が、シアン、マゼンタ、イエロー、ブラックの４色のインクを使用する場合、色分解部３０２に入力されたＲＧＢ画像は、シアン、マゼンタ、イエロー、ブラックの４チャンネルから成るインク値画像に変換される。
【００２０】
ヘッドシェーディング部３０３は、色分解部３０２が出力する色版毎のインク値画像に対して、各ノズルの吐出特性に応じた補正（以下、「シェーディング補正」と呼ぶ。）を行い、ガンマ補正部３０４に出力する。ヘッドシェーディング部３０３におけるシェーディング補正処理の詳細は後述する。
【００２１】
ガンマ補正部３０４は、ヘッドシェーディング部３０３が出力するインク値画像に対し、色版毎に、一次元ルックアップテーブル（１Ｄ-ＬＵＴ）を用いて、紙面上に形成されることになるドットの数を調整する。具体的には、各ノズルが吐出するインク滴によって形成されるドットの数と、当該数のドットによって実現される明度との関係が略線形になるように、シェーディング補正後のインク値画像の画素値を変更する。ガンマ補正後のインク値画像は量子化部３０５に出力される。
【００２２】
量子化部３０５は、ガンマ補正部３０４が出力するガンマ補正後のインク値画像に対し、色版毎に、ディザ法や誤差拡散法といった公知の量子化処理を適用して、ドットのオン又はオフを二値で表したハーフトーン画像を生成する。生成されたハーフトーン画像のデータはＲＡＭ２１２に一旦格納された後、ヘッドコントローラ２１５によって読み出される。なお、各ノズルが吐出するインク滴のサイズ（ドットサイズ）を制御可能なプリンタの場合は、ドットサイズの種類に対応した階調数（ビット深度）に量子化する処理を行ってハーフトーン画像を生成すればよい。この場合、ヘッドコントローラ２１５は、４値や１６値といった多値のハーフトーン画像に基づいて各ノズルのインク吐出動作を制御することになる。
【００２３】
（シェーディング補正）
続いて、ヘッドシェーディング部３０３におけるシェーディング補正について説明する。このシェーディング補正は、色版毎のインク値画像それぞれに対して同様に適用される。以下では、ブラックのインク値画像に適用する場合を例に説明を行い、他の色版については省略するものとする。
【００２４】
ここで、ノズル列方向の座標をｘ、ノズル列方向に直交する用紙搬送方向の座標をｙで表すこととする。このとき、シェーディング補正前のインク値画像における座標（ｘ，ｙ）で表される位置の階調値をＤpre_Ｋ（ｘ，ｙ）、シェーディング補正後のインク値画像における座標（ｘ，ｙ）で表される位置の階調値をＤaft_Ｋ（ｘ，ｙ）のように表すこととする。この補正後の階調値Ｄaft_Ｋ（ｘ，ｙ）は、補正前の階調値Ｄpre_Ｋ（ｘ，ｙ）に対し、ノズル位置毎（すなわちｘの値毎）に、異なる１Ｄ-ＬＵＴを適用することで生成する。ｘの値が同じ場合、ｙ方向の各画素には、同一の１Ｄ-ＬＵＴが適用されることになる。１Ｄ-ＬＵＴを用いるシェーディング補正は、前述の特許文献１にも記載されている公知の手法である。ここで、あるノズル位置ｘ（以下、単に「位置ｘ」と表記）における一次元ルックアップテーブルを、１Ｄ-ＬＵＴ_Ｋ_ｘとしたとき、シェーディング補正後の階調値Ｄaft_Ｋ（ｘ，ｙ）は、以下の式（１）によって表される。
Ｄaft_Ｋ（ｘ，ｙ）＝１Ｄ-ＬＵＴ_Ｋ_ｘ（Ｄpre_Ｋ（ｘ，ｙ））・・・式（１）
【００２５】
図４（ａ）は、位置ｘ＝５１３のノズルに適用する１Ｄ-ＬＵＴ_Ｋ_５１３の一例、同（ｂ）は位置ｘ＝５１７のノズルに適用する１Ｄ-ＬＵＴ_Ｋ_５１７の一例である。図４（ａ）及び（ｂ）に示すグラフの横軸は、シェーディング補正を行う前後の階調値を示しており、グラフの縦軸は、プリント物上の画像を光学的に読み取って得られた輝度値を示している。なお、グラフの縦軸は、輝度値に代えて濃度値であっても構わない。グラフの横軸における「紙白」はインク量が最小となるときの階調値である。また、グラフの横軸における「ベタ」はインク量が最大となるときの階調値である。
【００２６】
図４（ａ）及び（ｂ）のグラフにおいて共通の直線４０１は、入力階調値に対応する目標輝度値を示す関数（以下、「目標輝度関数」と表記）Ｉ_Ｔ（ｄ）を示している。この場合おいて、ｄは階調値を表す。いま、Ｉ_Ｔ（ｄ）は、「紙白」の輝度値と「ベタ」の輝度値を直線で結んだ一次関数であるが、プリンタの階調再現特性を決める設計パラメータとして任意の関数を設定できる。なお、この目標輝度関数Ｉ_Ｔ（ｄ）は、全てのノズルで同じものを用いる。そして、図４（ａ）のグラフにおける曲線４０２及び図４（ｂ）のグラフにおける曲線４０３は、それぞれ異なるノズル位置ｘに対応するノズルの階調再現関数Ｉ_ｘ（ｄ）を表している。いま、曲線４０２は位置ｘ＝５１３のノズルの階調再現関数であり、曲線４０３は位置ｘ＝５１７のノズルの階調再現関数である。このノズル毎の階調再現関数Ｉ_ｘ（ｄ）は、位置ｘのノズルで階調値ｄの画像を、シェーディング補正をＯＦＦにして記録したときの、紙面上において対応する位置の輝度値を示す関数である。なお、シェーディング補正をＯＦＦにして記録を行う際は、色分解部３０２から出力されるインク値画像を、ヘッドシェーディング部３０３を通さずに、ガンマ補正部３０４に入力すればよい。
【００２７】
例えば、位置ｘ＝５１３における、シェーディング補正後の階調値Ｄaft_Ｋ（ｘ，ｙ）を求める場合は、以下のような手順となる。まず、目標輝度関数Ｉ_Ｔ（ｄ）により、シェーディング補正前の階調値Ｄpre_Ｋ（５１３，ｙ）に対応する目標輝度値Ｉ_Ｔ（Ｄpre_Ｃ（５１３、ｙ））を求める。そして、位置ｘ＝５１３のノズルに対応する紙面上の位置において目標輝度値Ｉ_Ｔ（Ｄpre_Ｋ（５１３，ｙ））を正確に再現するための、シェーディング補正後の階調値Ｄaft_Ｋ（５１３，ｙ）＝Ｉ_５１３（Ｉ_Ｔ（Ｄpre_Ｋ（５１３，ｙ）））-1 を求める。すなわち、位置ｘ＝５１３における１Ｄ-ＬＵＴ_Ｋ_５１３は、階調再現関数Ｉ_５１３（ｄ）の逆関数Ｉ_５１３-1と、目標輝度関数Ｉ_Ｔ（ｄ）を合成した関数により実現される。他の位置ｘのノズルの１Ｄ-ＬＵＴについても同様である。なお、こうして作成された１Ｄ-ＬＵＴに存在しない値が引数として入力された場合は、公知の補間処理により出力値を算出すればよい。また、シェーディング補正で用いるノズル毎の１Ｄ−ＬＵＴ_Ｋ_ｘは、階調再現関数の逆関数Ｉ_ｘ-1と、目標輝度関数Ｉ_Ｔ（ｄ）とを組み合わせて実現する。もしくは、階調再現関数の逆関数Ｉ_ｘ-1と、目標輝度関数Ｉ_Ｔ（ｄ）とを用いて事前に算出しておいた値を、単独のテーブルとして保持することにより実現する。
【００２８】
図４（ａ）のグラフにおいて、曲線４０２が示す階調再現関数Ｉ_５１３（ｄ）は、直線４０１が示す目標輝度関数Ｉ_Ｔ（ｄ）を常に下回っている。これは、シェーディング補正がＯＦＦの場合、位置ｘ＝５１３のノズルに対応する紙面上の位置に黒スジが発生していることを示している。しかし、シェーディング補正をＯＮにすると、補正前の階調値Ｄpre_Ｋ（５１３，ｙ）はＤaft_Ｋ（５１３，ｙ）へと補正され、紙面上に吐出されるインク量が少なくなるため、黒スジが低減することになる。一方、図４（ｂ）のグラフにおいて、曲線４０３の階調再現関数Ｉ_５１７（ｄ）は、直線４０１が示す目標輝度関数Ｉ_Ｔ（ｄ）を常に上回っている。これは、シェーディング補正がＯＦＦの場合、位置ｘ＝５１７のノズルに対応する紙面上の位置に白スジが発生していることを示している。しかし、シェーディング補正をＯＮにすると、補正前の階調値Ｄpre_Ｋ（５１７、ｙ）はＤaft_Ｋ（５１７、ｙ）へと補正され、紙面上に吐出されるインク量が多くなるため、白スジが低減することになる。
【００２９】
（本発明の課題の確認）
各実施形態の説明に入る前に、本発明の課題について確認しておく。まず、従来手法によるノズル毎の階調再現関数の導出について説明する。ノズル毎の階調再現関数は、記録ヘッド１００が有するノズル列毎に導出される。導出方法は各ノズル列で共通なので、ここではブラックのノズル列１０１を例として説明を行う。
【００３０】
まず、図５に示すような、同一階調の均一パッチが複数（ここでは９個）配置されたテスト画像５０１を、シェーディング補正をＯＦＦにした条件下で、ブラックのノズル列１０１のみを用いて用紙に出力する。そして、出力結果（プリント物上の画像）をインラインセンサ１０７で読取り、色をＲＧＢ色空間で表現した光学読取画像（スキャン画像）をホストＰＣ２０に転送する。ホストＰＣ２０は、受け取ったスキャン画像に対し、その画素値（ＲＧＢ値）の重み和を画素毎に求める輝度変換処理を行う。そして、この輝度変換後のスキャン画像において、各均一パッチの画素値を、各ノズルが画像記録を行う経路、すなわち、インク滴を吐出してドット形成を行う経路（以下、「記録経路」と呼ぶ。）に沿って積分することで、ノズル毎の階調再現関数Ｉ_ｘ（ｄ）の値を求める。
【００３１】
例えば、位置ｘ＝５１３のノズルの階調再現関数Ｉ_５１３（ｄ）を求める際、矢印５０２〜５１０で示す経路に沿って、各パッチの画素値を積分する。これにより、位置ｘ＝５１３のノズルの階調再現関数として、Ｉ_５１３（ｄ＝０）〜Ｉ_５１３（ｄ＝６５５３５）の９個の値が得られる。他の位置ｘのノズルについても同様である。このようにして導出したノズル毎の階調再現関数Ｉ_ｘ（ｄ）を用いて、前述のヘッドシェーディング部３０３におけるシェーディング補正が実行可能となる。
【００３２】
しかしながら、用紙の伸縮や、インラインセンサ１０７の光学収差などにより、スキャン画像が局所的に歪むことがある。また、用紙搬送時の誤差により、スキャン画像の位置が上下左右にズレたり、傾いてしまうことがある。そのため、スキャン画像において、各ノズルの記録経路を、固定したパラメータとして設定すると、階調再現関数Ｉ_ｘ（ｄ）として、不適切な値を生成してしまうことがある。例えば、位置ｘ＝５１３のノズルの記録経路として矢印５０２〜５１０で示す位置を、スキャン画像における固定した座標として設定したとする。この場合、スキャン画像の歪みやズレにより、例えば位置ｘ＝５１７のノズルの記録経路に相当する位置の画素値を積分してしまうことがある。この場合、位置ｘ＝５１３のノズルの階調再現関数Ｉ_５１３（ｄ）として、本来は図４（ａ）に示す曲線４０２が得られるはずが、図４（ｂ）に示す曲線４０３が得られてしまう。その結果、位置ｘ＝５１３の位置において黒スジが発生しているにもかかわらず、シェーディング補正を行う際には、当該位置において、位置ｘ＝５１７のノズルの階調再現関数Ｉ_５１７（ｄ）が用いられることになる。これにより、インク値画像の階調値がインク量を増やす方向に補正され、位置ｘ＝５１３における黒スジがさらに悪化してしまう。このように、スキャン画像の歪みやズレにより、スキャン画像の画素値を所定のノズルに正確に対応付けることができず、シェーディング補正によって却ってスジムラが悪化することがあった。
【００３３】
この点、前述の特許文献１では、テスト画像中に同一階調の均一パッチのユニットを複数配置し、スキャン画像の歪み補正をユニット毎に行うことで、各ユニットの光学読取値を所定のノズルに対応付けている。しかしながら、隣接するユニット同士の境界が互いに接しておらず、歪み補正で用いる座標変換パラメータは、ユニット毎に独立して設定される。そのため、座標変換パラメータの切換えに伴って誤差の発生が避けられない。そのような誤差を含むノズル毎の階調再現関数をシェーディング補正で用いると、ユニットの端部において画素値の段差が発生してしまう。ここで、具体例を、図６（ａ）及び（ｂ）を参照して説明する。いま、座標変換前において、互いに隣接する２つのノズルの記録経路がそれぞれ矢印６０１、６０２であったとする（図６（ａ））。双方の記録経路６０１及び６０２は、互いに離れた領域（点６０３〜６０６で囲まれる領域と、点６０７〜６１０で囲まれる領域）にそれぞれ含まれている。そして、座標変換後の領域が、点６０３〜６０６で囲まれる領域は点６１３〜６１６で囲まれる領域へと変化し、点６０７〜６１０で囲まれる領域は点６１７〜６２０で囲まれる領域へと変化したとする。このとき、記録経路６０１と６０２は、それぞれ記録経路６１１と６１２に変換される。いま、２つの局所領域は共通の境界を持たず、座標変換パラメータに関連性を持たせることができないため、座標変換後の記録経路６１１と６１２は一般的に平行とはならない。そのため、スキャン画像の画素値を、記録経路６１１及び６１２に沿って積分して得られたそれぞれの値の間には、座標変換に起因する意図しない段差が発生してしまう。このような方法で導出したノズル毎の階調再現関数をシェーディング補正に用いると、各ユニットの端部に対応する領域にスジムラが残ってしまうという問題があった。
【００３４】
以下の各実施形態では、用紙の伸縮や光学収差等でスキャン画像が局所的に歪んでいても、上述のような座標変換パラメータの切換えに伴う段差を発生させずに、ノズル毎の階調再現関数Ｉ_ｘ（ｄ）を、好適に導出する方法を示す。
【００３５】
［実施形態１］
図７は、本実施形態に係る、ノズル毎の階調再現関数Ｉ_ｘ（ｄ）の導出処理を実現する、ホストＰＣ２０の機能ブロック図である。そして、図８は、本実施形態に係る、ノズル毎の階調再現関数Ｉ_ｘ（ｄ）の導出処理の流れを示すフローチャートである。従来技術と同様、ノズル毎の階調再現関数Ｉ_ｘ（ｄ）の導出は、各ノズル列で共通なので、以下では、ブラックのノズル列１０１を例として説明するものとする。なお、以下の説明において「Ｓ」はステップを意味する。
【００３６】
Ｓ８０１では、テスト画像生成部７０２が、テスト画像パラメータ記憶部７０１に記憶されているテスト画像パラメータに基づいて、テスト画像を生成する。テスト画像パラメータについては後述する。図９（ａ）に、テスト画像の一例を示す。テスト画像９０１は、単独のノズル列を用いて出力（画像記録）することを想定しているため、ブラック１色の色成分を持つグレイ１６ビット画像である。ここで、印刷出力に用いる用紙サイズとしてＳＲＡ３を想定し、ノズル列方向のサイズを６７３１画素、用紙搬送方向のサイズを１００６３画素とする。画像解像度は、各ノズル列のノズル解像度および、用紙搬送方向の記録解像度と同じ６００ｄｐｉである。テスト画像９０１の各画素列は常に同じノズルで記録されるため、テスト画像９０１の座標が分かれば、当該座標の位置にてインクを吐出するノズルを特定できる。なお、本明細書において、上述の図９（ａ）を含むテスト画像に関する図では、説明の便宜上、実際のテスト画像と寸法や要素の数を変えていることに留意されたい。テスト画像が用意できると、次に、シェーディング補正をＯＦＦにした条件下で、ブラックのノズル列１０１のみを用いて、テスト画像が印刷出力される。そして、得られたプリント物上の画像をインラインセンサ１０７で読み取り、読み取った画像（スキャン画像）のＲＧＢ値の重み和を画素毎に求める輝度変換処理を行なう。図９（ｂ）に、輝度変換後のスキャン画像の一例を示す。いま、スキャン画像９１１のノズル列方向のサイズは６９６７画素、用紙搬送方向のサイズは１０３２８画素である。画像解像度は、光学読取素子の解像度および、用紙搬送方向の記録解像度と同じ６００ｄｐｉである。図９（ｂ）において、斜めの矩形の枠９１２は、テスト画像９０１に対応する領域を示している。前述の通り、用紙搬送時の誤差、用紙の伸縮、インラインセンサ１０７の光学収差などにより、スキャン画像９１１における領域９１２は、通常の場合はテスト画像９０１と一致しない。そのため、一般的には、ノズル列方向の各位置をどのノズルが画像記録を行うのかをスキャン画像９１１の座標から特定することは困難である。以降に示す図では、この事実を示すために、領域９１２に傾きを与えている。
【００３７】
また、スキャン画像における座標と、当該座標の位置にインクを吐出するノズルとの対応関係を求めるために、テスト画像の各均一パッチの周辺には、ノズル列方向の位置の基準を示す図形パターン（以下、「基準パターン」と呼ぶ。）が付加される。実施形態６までの各実施形態においては、所定形状の複数のマーカーを等間隔でノズル列方向に並べたものを基準パターンとして用いる。そして、本実施形態では、図９（ａ）に示す通り、各均一パッチ９０４の周囲に、十字形のマーカー（以下、「メインマーカー」と呼ぶ）９０３を等間隔で並べている。なお、メインマーカーの間隔は等間隔でなくてもよい。テスト画像には、さらに、基準パターンの検出精度を向上させるための、所定形状の複数のマークからなる補助パターンも付加されている。本実施形態では、矩形のマーク（以下、「サブマーカー」と呼ぶ）９０２を、テスト画像の四隅に配置している。そして、スキャン画像９１１から各メインマーカー９１３を検出することで、テスト画像９０１の座標と、スキャン画像９１１における座標との対応関係を求める。前述の通り、テスト画像９０１の座標が分かれば、当該座標の位置でインクを吐出するノズルを特定できるため、スキャン画像９１１における均一パッチ領域９１４の画素値を、所定のノズルに正確に対応付けることができる。
【００３８】
以下の説明では、テスト画像９０１の座標系と、スキャン画像９１１の座標系とが異なることを明示するために、前者を大文字で表記し、後者を小文字で表記するものとする。すなわち、テスト画像９０１におけるノズル列方向の座標を“Ｘ”、用紙搬送方向の座標を“Ｙ”と表記し、スキャン画像９１１におけるノズル列方向の座標を“ｘ”、用紙搬送方向の座標を“ｙ”と表記する。
【００３９】
＜テスト画像パラメータ＞
ここで、前述の「テスト画像パラメータ」について説明する。本実施形態のテスト画像パラメータは、メインマーカーの配置情報、メインマーカーの形状情報、サブマーカーの配置情報、サブマーカーの形状情報、均一パッチの配置情報から構成される（図７を参照）。メインマーカーの配置情報は、各メインマーカー９０３の位置を、テスト画像９０１の座標系で設定した数値データである。本実施形態では、メインマーカー９０３を均等間隔で、Ｘ方向には８５個、Ｙ方向には１８個を配置する。配置を開始する位置はＸ＝４２、Ｙ＝７４２とし、Ｘ方向の配置間隔は７９画素、Ｙ方向の配置間隔は５０４画素とする。メインマーカーの形状情報は、メインマーカー９０３の形状を示す画像データである。本実施形態では、１１画素四方の白背景の上に１画素幅の黒の縦線と横線が直交する十字が描かれた画像データを用いる。テスト画像生成部７０２は、この１１画素四方の形状画像を、前述のメインマーカーの配置情報に基づいて、生成過程のテスト画像に描画する。サブマーカーの配置情報は、各サブマーカー９０２の位置を、テスト画像９０１の座標系で設定した数値データである。本実施形態では、サブマーカー９０２を四隅に配置する。配置を開始する位置はＸ＝４７、Ｙ＝７９とし、Ｘ方向の配置間隔は６５１２画素、Ｙ方向の配置間隔は９７８０画素とする。サブマーカーの形状情報は、サブマーカー９０２の形状を示す画像データである。本実施形態では、全面が黒ベタの１２５画素四方の正方形の画像データを用いる。テスト画像生成部７０２は、この１２５画素四方の形状画像を、前述のサブマーカーの配置情報に基づいて、生成過程のテスト画像に描画する。均一パッチの配置情報は、各均一パッチ９０４の位置を、テスト画像９０１の座標系で設定した数値データである。本実施形態では、均一パッチ９０４をＹ方向に均等間隔で１７個配置する。配置を開始するＸ位置は４７画素目、Ｙ位置は７８７画素目とし、Ｙ方向の配置間隔は５０４画素とする。均一パッチの配置情報には、均一パッチ９０４のサイズ情報も含んでおり、いま、Ｘ方向のサイズは６６３７画素、Ｙ方向のサイズは４２５画素とする。また、均一パッチの配置情報には、各均一パッチ９０４の階調情報も含まれる。本実施形態では、濃度の高い順に以下の１７種類（全１７階調）の均一パッチを描画する。すなわち、階調値ｄが上から順に、６５５３５、６１４４０、５７３４４、５３２４８、４９１５２、４５０５６、４０９６０、３６８６４、３２７６８、２８６７２、２４５７６、２０４８０、１６３８４、１２２８８、８１９２、４０９６、０の１７通りである。テスト画像生成部７０２は、均一パッチの配置情報に基づいて、生成過程のテスト画像に各階調の均一パッチを描画する。なお、メインマーカー９０３、サブマーカー９０２、均一パッチ９０４は、不等間隔で配置しても構わない。また、配置する個数は、上記のものに限定されない。また、メインマーカー９０３の形状として十字形は一例であり他の形状でもよい。また、サブマーカー９０２も基準パターンの検出枠を設定することができればよく、その形状は矩形に限定されない。例えば、メインマーカーの形状を菱形にし、サブマーカーの形状を円形にしても構わない。図８のフローチャートの説明に戻る。
【００４０】
Ｓ８０２では、サブマーカー検出部７０３が、スキャン画像上に存在するすべてのサブマーカーを検出する。この検出には、例えば公知のテンプレートマッチング手法を用いる。例えば左上隅に配置されたサブマーカー９１５を検出する場合は、これを囲む破線で示す領域９１９内の画素毎に、サブマーカーの画像（黒ベタの１２５画素四方の正方形の画像）との類似度を求める。そして、求めた類似度が最大となる画素位置を、サブマーカー９１５の中心位置として特定する。このときに用いるサブマーカーの画像データ（形状情報）はテスト画像パラメータ記憶部７０１から取得する。類似度の尺度としては、例えばＺＮＣＣ（Zero Means Normalized Cross Correlation）などを適用すればよい。残りのサブマーカー９１６〜９１８を検出する場合は、それぞれ、領域９２０〜９２２において同じ処理を実行することになる。
【００４１】
Ｓ８０３では、メインマーカー検出部７０５が、メインマーカーを検出するための枠をスキャン画像上に設定する。図１０は、メインマーカーの検出枠が設定された状態を示す図である。図１０において、メインマーカー９１３を囲む破線の枠１００１が、設定された検出枠を示している。検出枠を設定する際には、まず、座標変換部７０４にて、Ｓ８０２で求めたサブマーカーの中心位置と、メインマーカーの配置情報に基づいて、メインマーカーの理想位置を求める。メインマーカーの理想位置は、スキャン画像９１１において、メインマーカーの中心が存在することが見込まれる座標である。ここで、図１１の（ａ）及び（ｂ）を参照して、メインマーカーの理想位置を求める方法を説明する。図１１（ａ）にはテスト画像９０１の座標が示され、図１１（ｂ）にはスキャン画像９１１の座標が示されている。なお、図１１（ｂ）は説明のため極端な歪みが生じた状態としている。図１１（ａ）において、４つの黒丸１１０１〜１１０４は、テスト画像９０１における、四隅のサブマーカー９０２それぞれの中心位置を示している。サブマーカーの中心位置は、サブマーカーの配置情報と形状情報とに基づいて算出される。図１１（ａ）において、×印１１０５は、理想位置を算出する対象の注目するメインマーカーの中心位置を示している。メインマーカーの中心位置は、メインマーカーの配置情報と形状情報とに基づいて算出される。図１１（ａ）における“αX”と“αY”は、４つの黒丸１１０１〜１１０４で囲まれる矩形内において、×印で示すメインマーカーの中心位置１１０５を、Ｘ方向とＹ方向のそれぞれについて０〜１の比率で表現した値である。一方、図１１（ｂ）における４つの黒丸１１０６〜１１０９は、Ｓ８０２で検出したサブマーカーの中心位置を示している。ここで、４つの黒丸を表すベクトルｖa〜ｖdを、図１１（ｂ）に示す通り定義する。この場合において、ベクトルｖaの起点はスキャン画像の左隅である。そして、図１１（ｂ）において、×印１１１０は、図１１（ａ）における×印１１０５に対応する位置である。このとき、×印１１１０の位置を表すベクトルｖoutは、以下の式（２）で表される。
ｖout＝ｖa＋αXｖb＋αYｖc＋αXαYｖd        ・・・式（２）
【００４２】
上記式（２）を用いることで、テスト画像９０１の座標を、スキャン画像９１１の座標に変換することができる。この変換は、疑似アフィン変換、もしくは共一次変換と呼ばれる。座標変換部７０４は、この変換処理を全てのメインマーカーに対して行って、各メインマーカーの理想位置を求める。そして、メインマーカー検出部７０５は、上述のようにして求められた各メインマーカーの理想位置を中心として、メインマーカーの形状情報で特定される各メインマーカーを囲む検出枠を設定する。図８のフローチャートの説明に戻る。
【００４３】
Ｓ８０４では、メインマーカー検出部７０５が、スキャン画像上に存在するすべてのメインマーカーを検出する。具体的には、Ｓ８０３で設定した各検出枠について、その領域内における画素値の重心位置を求める。例えば、前述の図１０において、メインマーカー９１３の中心位置は、検出枠１００１の領域内における画素値の重心位置とする。なお、図９（ｂ）に示す輝度変換後のスキャン画像９１１では、暗い領域ほど画素値が小さくなる。そこで、重心位置を求める際は、画素値を反転した画像を用いるのが望ましい。なお、メインマーカーの中心位置は、Ｓ８０２におけるサブマーカーの検出と同様、公知のテンプレートマッチング手法を用いて検出しても構わない。
【００４４】
Ｓ８０５では、１７種類（すなわち、１７階調）の均一パッチそれぞれに対して以下のＳ８０６〜Ｓ８１３の処理を適用するべく、注目する均一パッチが決定される。そして、Ｓ８０６では、ブラックのノズル列１０１が有する全てのノズルそれぞれに対して以下のＳ８０７〜Ｓ８１２の処理を適用するべく、注目するノズルが決定される。本実施形態では、均一パッチのＸ方向のサイズを６６３７画素とした。そのため、Ｓ８０７〜Ｓ８１２の処理が、６６３７個のノズルに対して順に適用されることになる。
【００４５】
Ｓ８０７では、経路設定部７０６が、Ｓ８０４で検出したメインマーカーの位置に基づいて、スキャン画像９１１の画素値を積分する経路を設定する。この経路は、各ノズルの記録経路でもある。積分によって得られた累積加算後の画素値を要素数で割った値は、各ノズルの記録経路における平均的な輝度値である。この輝度値を各ノズルに対応付けることにより、ノズル毎の階調再現関数が得られる。ここで、図１２及び図１３（ａ）〜（ｄ）を参照して、どのようにして経路設定を行うのかを具体的に説明する。図１２に示す輝度変換後のスキャン画像９１１において、テスト画像９０１に対応する領域９１２内の矢印１２０１〜１２１７は、ある同一ノズルの記録経路上に位置し、画素値を積分する経路を示す。なお、均一パッチの上端と下端は、紙白との境界に近く、画素値の信頼度が低いため、積分の対象とはしない。図１２において、「＋」マーク１２１８〜１２２６はＳ８０４で検出した各メインマーカーの位置を表し、検出した各メインマーカーの位置の間が点線で結ばれている。以降、この点線で囲まれる１つ１つの領域を「局所領域」と呼ぶこととする。本実施形態では、輝度変換後のスキャン画像９１１を、図１２に示すように複数の局所領域に分割し、局所領域毎に異なる座標変換パラメータを設定する。これにより、用紙の伸縮や光学収差などで、スキャン画像９１１におけるテスト画像９０１に対応する領域９１２が、テスト画像９０１に対して局所的に歪んでいても、スキャン画像９１１の画素値（輝度値）を所定のノズルに正確に対応付けることを可能にする。
【００４６】
図１３（ａ）はテスト画像９０１における座標を示しており、図１３（ｂ）はスキャン画像９１１における対応する座標を示している。そして、図１３（ｂ）における９つの黒丸１２１８〜１２２６は、検出した各メインマーカーの位置であり、図１２における同一番号の「＋」マークの位置を示している。なお、図１３（ｂ）では説明のために、スキャン画像９１１に極端な歪みが発生した状態としていることに留意されたい。図１３（ｂ）における実線の矢印１２０２は、図１２における矢印１２０２に相当し、図１２における上から２つ目の均一パッチ１２３０の画素値を積分する経路を示している。また、図１３（ｂ）における×印１３１２は、矢印１２０２で示す経路上の任意の点を示す。図１３（ａ）における９つの黒丸１３０１〜１３０９は、テスト画像９０１において、図１３（ｂ）の黒丸１２１８〜１２２６に対応する位置を示す。図１３（ａ）の実線の矢印１３１０は、図１３（ｂ）において矢印１２０２で示す経路を、テスト画像９０１の座標系で示したもので、各ノズルのインク吐出方向である用紙搬送方向（Ｙ方向）と向きが同じである。図１３（ａ）において、×印１３１１は、図１３（ｂ）において矢印１２０２で示す経路上の任意の点１３１２を、テスト画像９０１の座標系で示すものであり、矢印１３１０で示す経路上に位置している。
【００４７】
経路設定部７０６は、まず、図１３（ａ）の矢印１３１０に示すような経路を、テスト画像９０１の座標系で、ノズル毎に設定する。そして、×印１３１１で示すような経路上の点毎に、スキャン画像９１１において対応する点を求める。例えば、点１３１１に対応するスキャン画像９１１上の点は、図１３（ｂ）における点１３１２である。このとき、点１３１２の座標は、以下の方法で求めることができる。
【００４８】
まず、座標変換前の点（ここでは、点１３１１）を含む局所領域を求める。これは、座標変換前の点１３１１の座標と、メインマーカーの配置情報とを比較することで求められる。点１３１１を含む局所領域は、４つの黒丸（１３０５、１３０６、１３０８、１３０９）で囲まれる矩形領域である。そして、座標変換前の点を含む局所領域内において、座標変換前の点の位置を、Ｘ方向とＹ方向のそれぞれについて０〜１の比率で表現する。図１３（ａ）において、αXとαYは、点１３１１を含む局所領域内において、点１３１１の位置をそれぞれ０〜１の比率で表現した値である。
【００４９】
次に、点１３１１を含む局所領域に含まれる点の座標変換に用いる、座標変換パラメータを設定する。いま、図１３（ａ）において４つの黒丸（１３０５、１３０６、１３０８、１３０９）で囲まれる局所領域は、スキャン画像９１１においては、同じく４つの黒丸（１２２２、１２２３、１２２５、１２２６）で囲まれる領域に対応する。このような、スキャン画像９１１において対応する局所領域は、Ｓ８０４で検出した各メインマーカーの位置に基づいて設定する。そして、４つの黒丸（１３０５、１３０６、１３０８、１３０９）で囲まれる局所領域に含まれる点の座標変換に用いる座標変換パラメータとして、図１３（ｂ）に示すベクトルｖa〜ｖdを設定する。そして、点１３１１に対応する位置である、点１３１２の位置を特定するベクトルｖoutを、前述の式（２）により求める。これにより、テスト画像９０１の座標を、スキャン画像９１１の座標に変換することができる。なお、座標変換前の点が、異なる局所領域に含まれる場合は、αXとαY、および座標変換パラメータは別途設定する。例えば、座標変換前の点が、図１３（ｃ）の点１３１３の場合、当該点は、４つの黒丸（１３０１、１３０２、１３０４、１３０５）で囲まれる局所領域に含まれる。そのため、まず、この局所領域内において、座標変換前の点の位置を、Ｘ方向とＹ方向のそれぞれについて０〜１の比率で表現する。すなわち、図１３（ｃ）に示すようにαXとαYの値を設定する。また、この局所領域に対応する領域は、図１３（ｄ）において、４つの黒丸（１２１８、１２１９、１２２１、１２２２）で囲まれる領域である。そのため、座標変換パラメータとして、図１３（ｄ）に示すベクトルｖa〜ｖdを設定する。そして、点１３１３に対応する点１３１４の位置を、前述の式（２）により求める。
【００５０】
このようにして経路設定部７０６は、テスト画像９０１の座標系でノズル毎に設定した経路上の全ての点（画素位置）に対して、上述の、局所領域毎に異なる座標変換パラメータを用いた座標変換処理を適用する。これにより、スキャン画像９１１の画素値を積分する各ノズルに対応した経路（例えば、図１２における矢印１２０１、１２０２、１２０３、・・・１２１６、１２１７で示す経路）を求める。図８のフローチャートの説明に戻る。
【００５１】
Ｓ８０８では、画素値取得部７０７が、Ｓ８０７で設定された経路上の全ての点に対しＳ８０９とＳ８１０の処理を順次適用するべく、経路上の点のうち注目する点を決定する。そして、続くＳ８０９にて、Ｓ８０８で決定した注目点における画素値を取得する。この場合において、Ｓ８０７で設定された経路上の注目点の座標値は、一般的に、整数値にはならず、小数を含む値となる。そのため、経路上において注目点として決定された各点の画素値（サブピクセル位置の画素値）を、バイリニア補間といった補間処理によって取得する。なお、補間処理の詳細は後述する。そして、Ｓ８１０では、補間処理で取得した画素値を、Ｓ８０７で設定された経路に沿って積分（累積加算）する。
【００５２】
Ｓ８１１では、経路上の全ての点に対して画素値の取得処理が完了したか否かが判定される。未処理の点があればＳ８０８に戻って、次の点が注目点に決定されて処理が続行される。一方、経路上の全てについて画素値の取得処理が完了していれば、Ｓ８１２に進む。
【００５３】
Ｓ８１２では、平均化部７０８が、累積加算後の画素値（積分値）に対して平均化処理、具体的には、積分値を累積加算に用いた要素の数で割る処理を行う。これにより、各ノズルの記録経路における平均的な輝度値が求まる。こうして求めた値を、注目ノズルの階調再現関数の値として決定する。
Ｓ８１３では、ノズル列内の全てのノズルに対してＳ８１２までの処理が完了したか否かが判定される。未処理のノズルがあればＳ８０６に戻って、次のノズルが注目ノズルに決定されて処理が続行される。一方、ノズル列内の全てのノズルが処理されていれば、Ｓ８１４に進む。
【００５４】
Ｓ８１４では、１７種類の均一パッチの全てに対してＳ８１３までの処理が完了したか否かが判定される。未処理の均一パッチがあればＳ８０５に戻って、次の均一パッチが注目パッチに決定されて処理が続行される。一方、１７種類の全ての均一パッチが処理されていれば、本処理を終える。
【００５５】
以上が、本実施形態に係る、ノズル毎の階調再現関数Ｉ_ｘ（ｄ）の導出処理の内容である。なお、本実施形態では、Ｓ８０２にてサブマーカーを検出し、その結果に基づいて、Ｓ８０３にてメインマーカーの検出枠を設定したが、メインマーカーの検出枠の設定方法は、この方法に限定されない。例えば、プリンタ１０の用紙搬送の精度が高く、インラインセンサ１０７の光学収差の影響が少ない場合は、スキャン画像９１１において常に固定された位置を検出枠として設定しても構わない。すなわち、前述の図８のフローのＳ８０２とＳ８０３の各処理、及び、これら処理を実行するサブマーカー検出部７０３、座標変換部７０４は省略可能である。
【００５６】
（補間処理）
続いて、Ｓ８０９における補間処理の詳細を説明する。図１４（ａ）は、本実施形態における補間処理の方法を説明する図であり、前述の図１３（ｂ）における点１３１２の位置の画素値（サブピクセル位置の画素値）を求める様子を示している。図１４（ａ）における黒丸は、スキャン画像９１１を構成する画素を示している。これら黒丸が表す点の座標値は整数値であるため、その画素値については補間処理を行わずに取得することができる。
【００５７】
本実施形態では、注目点に対応するサブピクセル位置の画素値を、バイリニア補間によって求める。なお、図１４の（ｂ）及び（ｃ）は、後述の実施形態２における補間処理の方法を説明する図である。
【００５８】
図１４（ａ）に示すとおり、点１３１２の位置の、サブピクセル位置の画素値をバイリニア補間で求める場合は、まず、点１３１２を囲む４つの点の画素値を取得する。次に、点１３１２の座標値の小数部分であるｐ_ｘとｐ_ｙを求める。ここで、スキャン画像９１１の画素値を、図１４（ａ）に示すｘ、ｙの座標を用いてＩ（ｘ，ｙ）と表記することとする。この場合、点１３１２の位置の、サブピクセル位置の画素値Ｉ（ｘ＋ｐ_ｘ、ｙ＋ｐ_ｙ）は、以下の式（３）で表される。
Ｉ（ｘ＋ｐ_ｘ、ｙ＋ｐ_ｙ）＝Ｉ_ｙ０＋（Ｉ_ｙ１−Ｉ_ｙ０）×ｐ_ｙ
・・・式（３）
【００５９】
上記式（３）において、Ｉ_ｙ０とＩ_ｙ１は計算過程で用いる変数であり、それぞれ以下の式（４）及び式（５）で表される。
Ｉ_ｙ０＝Ｉ（ｘ，ｙ）＋（Ｉ（ｘ＋１、ｙ）−Ｉ（ｘ，ｙ））×ｐ_ｘ
・・・式（４）
Ｉ_ｙ１＝Ｉ（ｘ、ｙ＋１）＋（Ｉ（ｘ＋１、ｙ＋１）−Ｉ（ｘ、ｙ＋１））×ｐ_ｘ
・・・式（５）
【００６０】
このようなバイリニア補間による補間処理によって、注目点に対応するサブピクセル位置の画素値が求められる。
【００６１】
（本実施形態の効果の説明）
本実施形態では、テスト画像上のＸＹの各方向に３個以上のメインマーカーを配置するため（図９（ａ）を参照）、スキャン画像の歪み補正を行う局所領域の境界を、隣り合う局所領域間で共有できる（図１２を参照）。そのため、座標変換パラメータに関連性を持たせ、変換前後の座標の対応関係を、隣接する局所領域間で連続的に変化させることができる。具体例を使って詳しく説明する。図１５（ａ）は、前述の図１３（ａ）に示す４つの局所領域のうち上段２つの局所領域を示しており、当該２つの局領領域を跨ぐ線分１５０１が描かれている。この線分１５０１に対し、前述した局所領域毎の疑似アフィン変換を適用すると、図１５（ｂ）のようになる。すなわち、変換後の線分は、２つの局所領域の境界において端部が一致した折れ線（線分１５０２と線分１５０３とからなる）のようになる。このように本実施形態によれば、変換前後の座標の対応関係を、隣接する局所領域間で連続的に変化させることができる。一方、公知の変換処理として、例えば射影変換を局所領域毎に適用した場合は、図１５（ｃ）のようになる。すなわち、変換後の線分は、２つの局所領域の境界において端部が一致せずに離間した２本の線分１５０４と１５０５のようになる。このように、変換前後の座標の対応関係が隣接する局所領域間で不連続になると、各局所領域の端部において、所定のノズルに対応する領域が切換わる際の、歪み補正後の画素値（所定のノズルに対応付ける画素値）に、意図しない段差が発生してしまう。図１６（ａ）〜（ｄ）は、局所領域毎の疑似アフィン変換を適用することで、変換前後の座標の対応関係を隣接する領域間で連続的に変化させられることを示す図である。図１６（ａ）と図１６（ｃ）は変換前の座標を示し、図１６（ｂ）と図１６（ｄ）は変換後の座標を示す。図１６（ａ）及び（ｃ）において、×印で示す点１６０１は、線分１５０１と局所領域の境界とが交わる点を示し、図１６（ｂ）及び（ｄ）において、×印で示す点１６０２は、座標変換後において点１６０１に対応する点を示す。また、図１６（ａ）と図１６（ｂ）は、左側の局所領域のパラメータ（αX1＝１、αY1＝０〜１の値）を用いて座標変換を行う様子を示す。そして、図１６（ｃ）と図１６（ｄ）は、右側の局所領域のパラメータ（αX2＝０、αY2＝αY1）を用いて座標変換を行う様子を示す。このとき、左右のどちらの局所領域のパラメータを用いても、境界上の点（例えば点１６０１）は、同じ位置（点１６０２）に変換される。以下、詳しく説明する。
【００６２】
まず、図１６（ａ）と図１６（ｂ）を参照して、左側の局所領域のパラメータ（αX1＝１、αY1＝０〜１の値）を用いる場合の、変換後の位置ｖout1を求める方法を説明する。この場合、座標変換パラメータであるベクトルｖa1〜ｖd1を図１６（ｂ）に示すように設定すると、変換後の位置を表すベクトルｖout1は、以下の式（６）で表される。
ｖout1＝ｖa1＋αX1ｖb1＋αY1ｖc1＋αX1αY1ｖd1
＝（ｖa1＋ｖb1）＋αY1（ｖc1＋ｖd1）  ・・・式（６）
【００６３】
次に、図１６（ｃ）と図１６（ｄ）を参照して、右側の局所領域のパラメータ（αX2＝０、αY2＝αY1）を用いる場合の、変換後の位置ｖout2を求める方法を説明する。この場合、座標変換パラメータであるベクトルｖa2〜ｖd2を図１６（ｄ）に示すように設定すると、変換後の位置を表すベクトルｖout2は、以下の式（７）で表される。
ｖout2＝ｖa2＋αX2ｖb2＋αY2ｖc2＋αX2αY2ｖd2
＝ｖa2＋αY2ｖc2    ・・・式（７）
【００６４】
図１６（ｂ）と図１６（ｄ）から明らかなように、式（７）の右辺第一項のｖa2は、式（６）の右辺第一項の（ｖa1＋ｖb1）と一致する。また、式（７）の右辺第二項のｖc2は、式（６）の右辺第二項の（ｖc1＋ｖd1）と一致する。また、図１６（ａ）と図１６（ｃ）から明らかなように、αY2＝αY1であるため、式（７）の右辺は、ｖa2＋αY2ｖc2＝ｖa2＋αY1ｖc2となる。ここに前述のｖa2＝（ｖa1＋ｖb1）と、ｖc2＝（ｖc1＋ｖd1）を代入すると、式（７）の右辺は、ｖa2＋αY2ｖc2＝ｖa2＋αY1ｖc2＝（ｖa1＋ｖb1）＋αY1（ｖc1＋ｖd1）となり、式（６）の右辺と一致する。すなわち、左右のどちらの局所領域のパラメータを用いても、境界上の点（例えば１６０１）は、同じ位置（１６０２）に変換される。
【００６５】
以上のとおり、本実施形態によれば、変換前後の座標の対応関係を、隣接する局所領域間で連続的に変化させることができる。そのため、局所領域の端部において、所定のノズルに対応する領域が切換わる際の、スキャン画像の歪み補正後の画素値（所定のノズルに対応付ける画素値）の変化を滑らかにすることができる。ここであらためて、図１７（ａ）及び（ｂ）を参照して分かりやすく説明する。図１７（ａ）において２本の矢印１７０１及び１７０２は、変換前の隣接する２つのノズルの記録経路をそれぞれ示しており、それぞれ異なる局所領域に含まれている。本実施形態の手法によれば、これら記録経路は、図１７（ｂ）において２本の矢印１７０３及び１７０４が示すように、ほぼ平行になるように変換される。そのため、スキャン画像９１１の画素値を、矢印１７０３及び１７０４が示す経路に沿って積分して得られたそれぞれの値の間には、座標変換に起因する段差が発生しない。そのため、本実施形態の手法で導出したノズル毎の階調再現関数をシェーディング補正で用いることにより、プリント物上の画像に発生するスジムラを好適に低減できる。
【００６６】
［実施形態２］
サブピクセル位置の画素値を補間処理で求めることは、デジタル信号に標本化関数を畳み込んでアナログ信号を復元し、所望するサブピクセル位置のアナログ信号値をサンプリングすることに相当する。実施形態１では、サブピクセル位置の画素値を求める際にバイリニア補間を用いたが、このバイリニア補間で使用される標本化関数は、孤立した三角波に相当する。この場合、エイリアス成分が除去されずに残ってしまう。つまり、実施形態１の手法によって得られるノズル毎の階調再現関数には、バイリニア補間に起因するエイリアス成分が、意図しない誤差として含まれていることになる。その結果、シェーディング補正を実施して出力したプリント物上の画像にわずかなスジムラが視認されることがあった。そこで、エイリアス成分の除去に関して理想的な標本化関数であるｓｉｎｃ関数を用いた補間処理を行う態様を、実施形態２として説明する。
【００６７】
なお、画像形成システムの基本構成といった実施形態１と共通の内容については説明を省略し、以下では本実施形態の特徴であるサブピクセル位置の画素値を取得する処理（前述の図８のフローチャートのＳ８０９）を中心に説明を行うものとする。
【００６８】
図１８は、本実施形態に係る、ノズル毎の階調再現関数Ｉ_ｘ（ｄ）の導出処理を実現する、ホストＰＣ２０の機能ブロック図である。実施形態１の図７の機能ブロック図と共通の処理部については、図７と同じ番号が振られている。図７との違いは、標本化関数生成部１８０１が追加されている点である。本実施形態の場合、画素値取得部７０７’は、標本化関数生成部１８０１で生成したｓｉｎｃ関数を用いて補間処理を行い、サブピクセル位置の画素値を取得する。
【００６９】
ここで、前述の図１３（ｂ）における点１３１２が示すサブピクセル位置の画素値を取得する場合について、図１４（ｂ）を参照しつつ説明する。図１４（ｂ）において黒丸は、図１４（ａ）と同様、スキャン画像９１１を構成する画素を示す。前述のとおり、これら黒丸の位置の座標値は整数値であるため、その画素値は補間処理を行わずに取得可能である。
【００７０】
点１３１２が示すサブピクセル位置の画素値を取得する際は、まず、点１３１２を中心とした矩形領域の画素値を取得する。そして、図１４（ｂ）に示すように、点１３１２の座標値の小数部分であるｐ_ｘとｐ_ｙを求める。この際の矩形領域のサイズは、標本化関数のタップ数に相当する。このタップ数は、標本化関数生成部１８０１の入力パラメータであり、ノズル列方向のタップ数をｎＸ、用紙搬送方向のタップ数をｎＹで表すこととする。図１４（ｂ）の場合、ｎＸ＝９、ｎＹ＝９である。いま、スキャン画像９１１における位置（ｘ，ｙ）の画素値をＩ（ｘ，ｙ）と表すと、点１３１２の画素値Ｉ（ｘ＋ｐ_ｘ、ｙ＋ｐ_ｙ）は、以下の方法で求められる。ここで、標本化関数としてのｓｉｎｃ関数を、ｓｉｎｃ（ｚ）＝ｓｉｎ（πｚ）／（πｚ）とした。
【００７１】
まず、ｙ−４からｙ＋４の行毎に、スキャン画像９１１の画素値とｓｉｎｃ関数との積和演算を行い、行毎の累積値Ｓ（ｈ）を求める。これを式で表すと、以下の式（８）のようになる。
Ｓ（ｈ）＝Σ（Ｉ（ｘ＋ｗ、ｙ＋ｈ）×ｓｉｎｃ（ａ_ｘ（ｗ−ｐ_ｘ）））
・・・式（８）
【００７２】
上記式（８）において、高さを表すｈの範囲は−４から＋４の整数である。例えば、ｙ−４の行の累積値はＳ（−４）である。また、Σは、幅を表すｗについて加算することを示し、ｗの範囲は−４から＋４の整数である。また、ａ_ｘは、ノズル列方向の帯域を制限するパラメータである。
【００７３】
次に、得られた各行の累積値Ｓ（ｈ）とｓｉｎｃ関数との積和演算を行い、サブピクセル位置の画素値Ｉ（ｘ＋ｐ_ｘ、ｙ＋ｐ_ｙ）を求める。これを式で表すと、以下の式（９）のようになる。
Ｉ（ｘ＋ｐ_ｘ、ｙ＋ｐ_ｙ）＝Σ（Ｓ（ｈ）×ｓｉｎｃ（ａ_ｙ（ｈ−ｐ_ｙ）））
・・・式（９）
【００７４】
上記式（９）において、Σは、高さを表すｈについて加算することを示し、ｈの範囲は−４から＋４の整数である。また、ａ_ｙは、用紙搬送方向の帯域を制限するパラメータである。
【００７５】
標本化関数生成部１８０１は、上記式（８）及び式（９）で用いるｓｉｎｃ関数を、注目点に対応するサブピクセル位置の画素値を求める都度算出する。標本化関数生成部１８０１に入力パラメータとして与えられる帯域制限パラメータａ_ｘ、ａ_ｙは、公知のサンプリング定理に基づき、エイリアス成分を完全に除去できるように設定される。具体的には、前述の図８のフローのＳ８０７で行われる座標変換により、任意の２点間の距離が縮小する場合、最も縮小の程度が大きい場所における距離の比率を、ａ_ｘ、ａ_ｙとして用いる。なお、任意の２点間の距離が縮小しない場合は、ａ_ｘとａ_ｙはそれぞれ１とする。例えば、各ノズル列の記録解像度が６００ｄｐｉで、インラインセンサ１０７の読取解像度が１２００ｄｐｉの場合、座標変換により任意の２点間の距離は０．５倍になる。この場合、ａ_ｘとａ_ｙはそれぞれ０．５とする。また、各ノズル列の記録解像度と、インラインセンサ１０７の読取解像度とが同じであっても、用紙の伸縮や光学収差により、座標変換を行った際に任意の２点間の距離が縮小し得る。例えば、用紙の縮小によって用紙搬送方向における２点間の距離が０．９７倍になるケースであれば、ａ_ｙ＝０．９７とする。同様に、用紙の伸縮とインラインセンサ１０７の光学収差により、ノズル列方向における２点間の距離が０．９５倍になるケースであれば、ａ_ｘ＝０．９５とする。なお、ａ_ｘとａ_ｙは、局所領域毎に異なった値を設定しても構わない。また、検出したメインマーカーの位置に基づいてａ_ｘとａ_ｙを動的に設定しても構わない。
【００７６】
（変形例１）
理想的な標本化関数であるｓｉｎｃ関数を用いた補間処理にてサブピクセル位置の画素値を取得する場合、座標変換後の座標値の小数部分ｐ_ｘ、ｐ_ｙは、サブピクセル位置の画素値を求める位置によって変化する。そのため、サブピクセル位置の画素値を１つ取得する度に複数のｓｉｎｃ関数を算出する必要があり（上述の式（８）及び式（９）を参照）、処理負荷が大きい。そこで、サブピクセル位置の画素値を取得する際に必要な標本化関数を補間処理に先立って生成・保持しておいてもよい。以下、詳しく説明する。
【００７７】
本変形例では、上述の式（８）及び式（９）で使用するｓｉｎｃ関数を補間処理の実行前に生成しておき、生成したｓｉｎｃ関数をＲＡＭ２０２に保持しておく。具体的には、前述の図８のフローのＳ８０４（メインマーカーの検出）の完了後からＳ８０９（注目点の画素値を取得）を実行するまでの間に標本化関数生成部１８０１にて生成し、例えばルックアップテーブル（ＬＵＴ）の形式で保持しておく。そして、補間処理を実行するタイミングで、画素値取得部７０７’がＬＵＴを参照して、上述の式（８）及び式（９）を用いた演算処理を行う。ＬＵＴは式（８）及び式（９）のそれぞれについて以下のように作成する。
【００７８】
まず、式（８）で用いるＬＵＴは、ｗとｐ_ｘの２つの軸を持つ二次元のテーブルとする。図１４（ｂ）に示したように、標本化関数のタップ数が９×９の場合、ｗの範囲は−４から＋４の整数である。この場合、ｗ軸の要素数は９個である。一方、ｐ_ｘは０から１までの小数を含む値で、例えば０から１までの値を１０００等分した値とする。よって、ｐ_ｘ軸の要素数は１００１個とする。このようなＬＵＴによって決定される値が、式（８）におけるｓｉｎｃ（ａ_ｘ（ｗ−ｐ_ｘ））となる。
【００７９】
同様に、式（９）で用いるＬＵＴは、ｈとｐ_ｙの２つの軸を持つ二次元のテーブルとする。図１４（ｂ）に示したように、標本化関数のタップ数が９×９の場合、ｈの範囲は−４から＋４の整数である。そのため、ｈ軸の要素数は９個である。一方、ｐ_ｙは０から１までの小数を含む値で、例えば０から１までの値を１０００等分した値とする。よって、ｐ_ｙ軸の要素数は１００１個である。このようなＬＵＴによって決定される値が、式（９）におけるｓｉｎｃ（ａ_ｙ（ｈ−ｐ_ｙ））となる。
【００８０】
なお、両ＬＵＴを参照する際は、それぞれ引数として与えるｐ_ｘの値及びｐ_ｙの値を、それぞれＬＵＴのｐ_ｘ軸及びｐ_ｙ軸が持つ最も近い値に丸めればよい。このように、補間処理を実施する前に、標本化関数を算出してＬＵＴとしてメモリに保持しておくことで処理負荷を大幅に低減できる。
【００８１】
（変形例２）
理想的な標本化関数としては、上述のｓｉｎｃ関数に窓関数を適用したＬａｎｃｚｏｓ関数でもよい。この場合も、実施形態１のバイリニア補間の場合に比べて好適な結果を得ることができる。ただし、ｓｉｎｃ関数やＬａｎｃｚｏｓ関数を用いた補間処理は、バイリニア補間を用いた処理に比べ、処理負荷が大きい。そこで、例えば、図１４（ｃ）に示すように、標本化関数の用紙搬送方向のタップ数ｎＹを、ノズル列方向のタップ数ｎＸに比べて小さくし、処理負荷を低減するようにしてもよい。タップ数を小さくすると、無限のタップ数を持つ理想的な標本化関数に対する周波数特性のズレが大きくなる。その結果、取得したノズル毎の階調再現関数の精度が低下してしまうという弊害があるが、これが実際上問題となることはない。実施形態１で説明したとおり、スキャン画像９１１の画素値は、用紙搬送方向に近い方向に沿って積分されるため（図１２の矢印１２０１〜１２１７を参照）、階調再現関数の導出精度に対し、タップ数ｎＹを小さくすることは殆ど影響しないためである。用紙搬送方向のタップ数ｎＹを、図１４（ｂ）の例に比べて大幅に小さくした図１４（ｃ）の例においても、ノズル列方向のタップ数ｎＸは同じであるため、ノズル毎の階調再現関数は、ほぼ同じ値となる。
【００８２】
また、均一パッチの明るさに基づいてノズル列方向のタップ数ｎＸを変化させることによって処理負荷を低減してもよい。ヴェーバー・フェヒナーの法則により、輝度の違いは、明るいパッチほど目立たなくなることが知られている。輝度変換後のスキャン画像９１１では、明るいパッチほど（図１２において下のパッチほど）、ノズル列方向のタップ数ｎＸを小さくしても、視覚への影響を抑制できることになる。すなわち、ノズル毎の階調再現関数を導出する際に、明るいパッチほどノズル列方向のタップ数ｎＸを小さくすることで、シェーディング補正を実施した際のスジムラの悪化を抑制しつつ、処理負荷を低減することができる。さらには、ノズル列方向のタップ数ｎＸだけでなく、明るさに応じて用紙搬送方向のタップ数ｎＹを変化させても構わない。
【００８３】
以上のとおり、本実施形態によれば、バイリニア補間を行う実施形態１に比べ、より精度の良いノズル毎の階調再現関数を取得できる。その結果、シェーディング補正を実施して出力したプリント物上の画像においては、スジムラの発生がさらに抑制される。
【００８４】
［実施形態３］
実施形態１のメインマーカー検出処理（Ｓ８０４）では、メインマーカーの中心位置を、Ｓ８０３で求めた検出枠（図１０の１００１を参照）内の画素値の重心位置としていた。ここで、インクの飛び散りや微少なゴミなどによって用紙が汚れることがあり、このような汚れが検出枠の中に存在すると、Ｓ８０４で求められる重心位置に意図しない誤差が含まれてしまう。また、メインマーカーの中心位置を、公知のテンプレートマッチング手法で検出する場合であっても、検出枠の中に汚れがあると、検出結果に意図しない誤差が含まれてしまう。いずれにせよ、メインマーカーの検出結果に誤差を含んでいると、Ｓ８０７の経路設定処理において誤った経路が設定されてしまい、ノズル毎の階調再現関数を正しく導出できなくなる。そこで、検出枠の中に汚れがある可能性が高く、メインマーカーの検出結果に誤差を含んでいると推認される場合に検出結果を補正する態様を、実施形態３として説明する。
【００８５】
なお、先の実施形態と共通の内容については説明を省略し、以下では本実施形態の特徴であるメインマーカーの検出結果を補正する処理を中心に説明を行うものとする。
【００８６】
図１９は、本実施形態に係る、ノズル毎の階調再現関数Ｉ_ｘ（ｄ）の導出処理を実現する、ホストＰＣ２０の機能ブロック図である。実施形態１の図７の機能ブロック図と共通の処理部については、図７と同じ番号が振られている。図７との違いは、メインマーカー位置補正部１９００が追加されている点である。本実施形態の場合、メインマーカー検出部７０５の検出結果が、メインマーカー位置補正部１９００において必要に応じて補正される。図１９に示すとおり、メインマーカー位置補正部１９００は、減算部１９０１、異常判定部１９０２、局所変位ベクトル補正部１９０３及び加算部１９０４を有する。以下、本実施形態における、ノズル毎の階調再現関数を導出する処理について詳しく説明する。
【００８７】
メインマーカーの検出結果が入力されると、まず、減算部１９０１において、スキャン画像９１１の局所的な歪み度合いを示す局所変位ベクトルを求める処理がなされる。ここで、図２０の（ａ）〜（ｃ）を参照して、局所変位ベクトルについて説明する。図２０（ａ）において、実線の「十字」の中心（交差する２本の線分の交点）は、座標変換部７０４が出力する、メインマーカーの理想位置を示す。このメインマーカーの理想位置は、前述の通り、サブマーカー検出部７０３にて検出されたサブマーカーの位置に基づきメインマーカーの配置情報を補正することで求められる。そのため、メインマーカーの理想位置は、スキャン画像９１１に局所的な歪みが発生していないと仮定したときに、メインマーカーが存在することが見込まれる位置であると言える。一方、図２０（ａ）において、破線の「十字」の中心（交差する２本の線分の交点）は、メインマーカー検出部７０５にて検出されたメインマーカーの位置（検出位置）を示しており、スキャン画像９１１の局所的な歪みの影響が付加されている。そのため、メインマーカーの検出位置を示す位置ベクトルｖr（ｗ、ｈ）から、メインマーカーの理想位置を示す位置ベクトルｖi（ｗ、ｈ）を減算したベクトルｖe（ｗ、ｈ）は、スキャン画像９１１における局所的な歪み度合いを示すことになる。このｖe（ｗ、ｈ）を、局所変位ベクトルと呼ぶ。この場合において、ｗはメインマーカーのノズル列方向の位置を示すインデックスである。メインマーカーがノズル列方向に８５個配置されている場合、ｗは０〜８４の整数となる。また、ｈはメインマーカーの用紙搬送方向の位置を示すインデックスである。メインマーカーが用紙搬送方向に１８個配置されている場合、ｈは０〜１７の整数となる。なお、図２０（ａ）では、説明の便宜上、実線の「十字」と破線の「十字」との間隔を実際よりも広めに示していることに留意されたい。求めた局所変位ベクトルｖe（ｗ、ｈ）は、異常判定部１９０２及び局所変位ベクトル補正部１９０３に入力される。
【００８８】
異常判定部１９０２は、入力された局所変位ベクトルｖe（ｗ、ｈ）に基づいて、各メインマーカーの検出結果が正常かどうか、すなわち、許容できないレベルの誤差を含んでいないかどうかを判定する。具体的には、まず、着目するメインマーカー（着目マーカー）を中心とした所定範囲を処理対象領域として設定する。そして、着目マーカーの局所変位ベクトルと、設定した処理対象領域内に存在する着目マーカー以外のメインマーカー（以下、「周辺マーカー」と呼ぶ）の局所変位ベクトルとを比較することにより、着目マーカーの検出結果が正常かどうかを判定する。この処理を、全てのメインマーカーに対して適用（すなわち、着目マーカーを順次変更し、それに応じて処理対象領域をスライド）することで、メインマーカーそれぞれの検出結果について正常かどうかが判定される。図２０（ｂ）は、図２０（ａ）におけるメインマーカー２００１に着目し、これを中心とする３×３の範囲２００３を処理対象領域として設定した場合の異常判定処理の様子を示している。図２０（ｂ）において、着目マーカー２００１に対応する局所変位ベクトル２０１１は、８つの周辺マーカーの局所変位ベクトルと、その向きと長さがほぼ同じである。この場合は、着目マーカーの検出結果は正常であると判定する。図２０（ｃ）は、図２０（ａ）におけるメインマーカー２００２に着目し、これを中心とする３×３の範囲２００４を処理対象領域として設定した場合の異常判定処理の様子を示している。図２０（ｃ）において、着目マーカー２００２に対応する局所変位ベクトル２０１２は、８つの周辺マーカーの局所変位ベクトルと、その向きが大きく異なっている。用紙の伸縮や、光学収差によるスキャン画像９１１の局所的な歪みの度合いは、場所によって急激に変化することがほとんど無い。したがって、この場合は、着目マーカーは、汚れなどの影響を受けている可能性が高く、許容できないレベルの誤差を含んでいると考えられるため、検出結果の信頼性が低い（正常ではない）と判定する。
【００８９】
異常判定処理の上記内容についてさらに詳しく説明する。いま、設定された処理対象領域内の９個の局所変位ベクトルｖe（ｗ、ｈ）を、“０〜８”のインデックスｉを用いてｖe（ｉ）で表すこととする。この場合において、着目マーカーのインデックスを“４”とする。図２０（ｂ）及び（ｃ）において、各矢印は局所変位ベクトルを示し、各局所変位ベクトルの右横にある括弧書きの数字はインデックスｉの値を示している。また、この各局所変位ベクトルｖe（ｉ）のＸ成分をｅ_Ｘ（ｉ）、Ｙ成分をｅ_Ｙ（ｉ）で表すこととする。このとき、ｅ_Ｘ（ｉ）のメジアン値ｅ_Ｘ_Ｍと、ｅ_Ｙ（ｉ）のメジアン値ｅ_Ｙ_Ｍをそれぞれ求め、着目マーカーの局所変位ベクトルの各成分、すなわち、ｅ_Ｘ（４）およびｅ_Ｙ（４）との差分絶対値をそれぞれ求める。そして、求めた差分絶対値が所定の閾値を超える場合は、許容できないレベルの誤差を含んでいると見做し、着目マーカーの検出結果が正常ではないと判定する。この判定手法を式で表すと、以下の式（１０）と式（１１）のようになる。
｜ｅ_Ｘ（４）−ｅ_Ｘ_Ｍ｜  ＞  ｔｈ_Ｘ      ・・・式（１０）
｜ｅ_Ｙ（４）−ｅ_Ｙ_Ｍ｜  ＞  ｔｈ_Ｙ      ・・・式（１１）
【００９０】
上記式（１０）及び式（１１）のいずれか一方を満たす場合、着目マーカーの検出結果が正常ではないと判定されることになる。上記所定の閾値としてのｔｈ_Ｘとｔｈ_Ｙには、例えば１．５といった値が入る。なお、本実施形態では処理対象領域のサイズを、着目マーカーを中心とした３×３の範囲とした。しかし、処理対象領域のサイズはこれに限定されるものではない。処理対象領域の最小サイズとしては、着目マーカーとその両隣のメインマーカーを包含する３×１の範囲や、或いは、着目マーカーとその上下のメインマーカーを包含する１×３の範囲でもよい。また、用紙搬送方向に比べて、ノズル列方向の方がメインマーカーの間隔が狭いため、例えばノズル列方向のサイズを“９”、用紙搬送方向のサイズを“３”といった具合に、用紙搬送方向よりもノズル列方向の数を大きくしても構わない。
【００９１】
局所変位ベクトル補正部１９０３は、異常判定部１９０２にて検出結果が正常ではないと判定されたメインマーカー（以下、「異常マーカー」と呼ぶ）の局所変位ベクトルを補正する。具体的には、着目する異常マーカーを中心とした所定範囲を処理対象領域として設定し、当該処理対象領域内に存在するメインマーカーの局所変位ベクトルのＸ成分ｅ_Ｘ（ｉ）及びＹ成分ｅ_Ｙ（ｉ）それぞれについて、異常マーカーの成分を除外して平均化する。そして、得られた両成分それぞれの平均値を、着目する異常マーカーの局所変位ベクトルの新たなＸ成分とＹ成分とする。ここでは、処理対象領域のサイズを異常判定処理と同じ３×３の範囲とする。この場合、３×３の範囲内に存在するメインマーカーのうち、異常マーカーを除いた全メインマーカーの局所変位ベクトルについて、Ｘ成分ｅ_Ｘ（ｉ）とＹ成分ｅ_Ｙ（ｉ）それぞれの平均値を求める。そして、求めた平均値を、着目する異常マーカーの局所変位ベクトルの新たなＸ成分とＹ成分の値とする。なお、処理対象領域内に着目する異常マーカーとは別の異常マーカーが存在する場合もある。この場合は、着目マーカー以外の異常マーカーの局所変異ベクトルも除外して平均値を求めればよい。
【００９２】
なお、本実施形態では局所変位ベクトルを補正する際の処理対象領域のサイズを、異常判定処理における処理対象領域のサイズと同じ３×３の範囲としたが、異なっていても構わない。例えば、異常判定処理においては処理対象領域を９×３の範囲とし、局所変位ベクトルを補正する際の処理対象領域を３×１の範囲としても構わない。また、補正後の値として、ｅ_Ｘ（ｉ）やｅ_Ｙ（ｉ）のメジアン値を用いても構わない。また、本実施形態では、検出結果が正常でないと判定されたメインマーカーだけを着目マーカーとして補正処理を行うこととしているが、すべてのメインマーカーに対して適用しても構わない。すなわち、検出結果が正常と判定されたメインマーカーについても上述の補正処理の対象としても構わない。
【００９３】
加算部１９０４は、局所変位ベクトル補正部１９０３が出力する補正後の局所変位ベクトルを、メインマーカーの理想位置を示す位置ベクトルｖi（ｗ、ｈ）に加算する。これにより、検出結果が正常でないと判定されたメインマーカーの検出位置が補正され、当該補正後の検出位置が経路設定部７０６に出力される。
【００９４】
以上のとおり、本実施形態によれば、メインマーカーの検出結果に含まれる誤差を打ち消すような補正を検出結果に対して行う。これにより、スキャン画像９１１の画素値を積分する経路として、間違った経路が設定されることを回避でき、ノズル毎の階調再現関数をより精度よく導出することができる。
【００９５】
［実施形態４］
実施形態３では、インクの飛び散りや微少なゴミなどの用紙汚れに起因してメインマーカーの検出結果に誤差が含まれる場合に、検出結果そのものを補正することで正しい経路が設定されるようにしていた。次に、誤差を含んでいると考えられるメインマーカーを除外して局所領域を設定することで正しい経路設定を行う態様を、実施形態４として説明する。なお、先行する実施形態と共通の内容については説明を省略し、以下では本実施形態の特徴であるメインマーカーの異常判定処理とその判定結果に基づく経路設定処理を中心に説明を行うものとする。
【００９６】
図２１は、本実施形態に係る、ノズル毎の階調再現関数Ｉ_ｘ（ｄ）の導出処理を実現する、ホストＰＣ２０の機能ブロック図である。実施形態１の図７の機能ブロック図と共通の処理部については、図７と同じ番号が振られている。図７との違いは、異常判定部２１０１が追加され、その出力が経路設定部７０６’に入力されている点である。本実施形態の場合、経路設定部７０６’における局所領域の決定時に異常判定部２１０１の判定結果が考慮される。以下、詳しく説明する。
【００９７】
異常判定部２１０１は、メインマーカーの形状情報（元画像）をテスト画像パラメータ記憶部７０１から取得し、メインマーカーの元画像と、メインマーカーの検出枠内の画像領域とを比較することで、着目マーカーの検出結果が正常か否かを判定する。図２２の（ａ）〜（ｃ）は、本実施形態における異常判定処理を説明する図である。図２２（ａ）は、メインマーカーの元画像における白背景部分を拡張して、検出枠と同じサイズで表した元画像である。図２２の（ｂ）と（ｃ）はスキャン画像９１１における検出枠内の画像領域であり、（ｂ）は汚れがない状態、（ｃ）は右下隅に汚れがある状態である。本実施形態の異常判定処理では、前述の図８のフローのサブマーカー検出処理（Ｓ８０２）と同様、検出枠内の画像領域の画素毎に、メインマーカーの元画像との類似度を求める。そして、類似度の最大値が、所定の閾値を下回る場合は、メインマーカーの検出結果が正常ではないと判定する。類似度の尺度として例えばＺＮＣＣを用いる場合、検出枠内の画像領域の画素毎に、元画像とのＺＮＣＣを求め、その最大値が例えば０．９を下回ると、検出結果が正常でないと判定する。図２２（ｂ）のように汚れがない場合はＺＮＣＣの最大値はほぼ１となり、検出結果は正常であると判定される。一方、図２２（ｃ）のように汚れがある場合はＺＮＣＣの最大値が０．９を下回る値となり、検出結果は正常でないと判定される。このように、本実施形態では、メインマーカーの元画像と、スキャン画像における対応する画像領域との類似度に基づいて、メインマーカーの検出結果が正常であるかどうかを判定する。
【００９８】
経路設定部７０６’は、異常判定部２１０１での判定結果を考慮して局所領域の範囲を設定して、局所領域毎に座標変換パラメータを設定する。例えば、前述の図１２におけるメインマーカー１２２２の検出結果が正常でない場合は、当該メインマーカー１２２２を除外して局所領域を設定する。図２３は、特定メインマーカーを除外して局所領域の設定を行う様子を説明する図である。本来であれば、メインマーカー１２１８、１２２０、１２２４、１２２６で囲まれる範囲には、４つの局所領域が設定される。しかし、メインマーカー１２２２の検出結果が正常でない場合は、図２３に示す通り、メインマーカー１２１８、１２２０、１２２４、１２２６で囲まれる範囲が、１つの局所領域として設定される。なお、この際には、メインマーカー１２１９、１２２１、１２２３、１２２５の検出位置は無視し、メインマーカー１２１８、１２２０、１２２４、１２２６の検出位置が用いられる。一方、メインマーカー１２２４、１２２５、２４０１、２４０２で囲まれる局所領域に対し座標変換パラメータを設定する際は、メインマーカー１２２５の検出位置を使用する。同様に、メインマーカー１２２５、１２２６、２４０２、２４０３で囲まれる局所領域に対し座標変換パラメータを設定する際も、メインマーカー１２２５の検出位置を使用する。このように、経路設定部７０６’は、検出結果が正常でないと判定されたメインマーカーを除外して局所領域を設定する。後は、実施形態１と同じ方法で、座標変換パラメータを設定し、画素値を積分する経路を求める。
【００９９】
以上のとおり、本実施形態によれば、実施形態３と同様、スキャン画像９１１の画素値を積分する経路として、間違った経路が設定されることを回避でき、ノズル毎の階調再現関数をより精度よく導出することができる。
【０１００】
［実施形態５］
一般的に、インクジェットプリンタでは、乾燥などによるノズルの目詰まりを防止するために、人の目でほとんど視認できないノズル目詰まり防止パターンを、プリント対象の画像に重畳して印刷出力する。このノズル目詰まり防止パターンが問題となることは通常はないが、ノズル毎の階調再現関数を導出する際には、前述の実施形態３及び４で説明した紙面上の汚れと同様、メインマーカーの検出結果に誤差が含まれる原因となってしまう。そこで、メインマーカーの検出時にノズル目詰まり防止パターンの存在を考慮して誤差が含まれないようにする態様を、実施形態５として説明する。なお、先行する実施形態と共通の内容については説明を省略し、以下では本実施形態の特徴であるメインマーカーの検出処理を中心に説明を行うものとする。
【０１０１】
図２４は、本実施形態に係る、ノズル毎の階調再現関数Ｉ_ｘ（ｄ）の導出処理を実現する、ホストＰＣ２０の機能ブロック図である。実施形態１の図７の機能ブロック図と共通の処理部については、図７と同じ番号が振られている。図７との違いは、ノズル目詰まり防止パターン記憶部２４０１が追加され、メインマーカー検出部７０５’にノズル目詰まり防止パターンの位置情報が入力されている点である。以下、詳しく説明する。
【０１０２】
ノズル目詰まり防止パターン記憶部２４０１は、ノズル目詰まり防止パターンを構成するドット（以下、「目詰まり防止ドット」と呼ぶ。）それぞれが紙面上のどの位置に出力されるのかを表す位置情報を格納する。メインマーカー検出部７０５’は、この位置情報に基づいて、各目詰まり防止ドットが誤差として影響しないように、メインマーカーの重心位置を求める。図２５の（ａ）及び（ｂ）は、目詰まり防止ドットが打たれる位置を考慮して、メインマーカーの重心位置を求める様子を説明する図である。図２５（ａ）は、スキャン画像９１１の一部分を示している。破線の矩形２６０１は、図８のフローのＳ８０３で設定される検出枠であり、枠内の画素を用いてメインマーカー２６０２の重心位置が求められる。図２５（ａ）において、白背景部分に満遍なく存在する黒点２６０３が、目詰まり防止ドットである。図２５（ａ）で示されるように、目詰まり防止ドットは、検出枠の中にも打たれてしまうため、メインマーカーの重心位置に影響を与えてしまう。
【０１０３】
そこで、本実施形態のメインマーカー検出部７０５’は、検出枠内に存在する目詰まり防止ドットそれぞれの周辺領域をマスクし、当該周辺領域に含まれる画素を除外して、メインマーカー枠内の重心位置を求める。ここで、周辺領域としては、例えば図２５（ｂ）に示すように、検出枠内に存在する各目詰まり防止ドットの出力位置を中心とする円で囲まれる範囲２６０４とする。この際の円の半径は、スキャン画像の解像度に応じて決定され、６００ｄｐｉであれば例えば４画素とする。なお、目詰まり防止ドットの出力位置がメインマーカーに近い場合は、一回り小さな円の範囲２６０５を周辺領域として、メインマーカー２６０２に周辺領域が掛からないようにする。
【０１０４】
（変形例）
メインマーカーの重心位置を求める際にノズル目詰まり防止パターンが影響を及ぼさないようにするための手法は、目詰まり防止ドットの周辺領域に対してマスクを適用する以外にもある。例えば、メインマーカーの配置情報とノズル目詰まり防止パターンの位置情報とに基づいて、メインマーカーの周辺にノズル目詰まり防止パターンを出力しないように制御しても構わない。もしくは、ノズル目詰まり防止パターンが全面に出力されてもメインマーカーの重心位置が変動しないよう、メインマーカーの中心位置に対して対称となるように目詰まり防止ドットを配置してもよい。
【０１０５】
以上のとおり、本実施形態によれば、ノズル目詰まり防止パターンが印刷対象の画像に重畳して印刷出力される場合であっても、メインマーカーの検出結果に意図しない誤差が含まれてしまうことを回避することができる。
【０１０６】
［実施形態６］
実施形態１で説明した通り、メインマーカーをノズル列方向に多く配置することで、座標変換パラメータを設定する局所領域を細かく設定でき、ノズル毎の階調再現関数の導出精度を高めることができる。しかし、ノズル列方向に配置するメインマーカーの数が多すぎると、隣接するメインマーカー同士が重なってしまい、メインマーカーそれぞれの重心位置を正しく検出することが困難になるという問題がある。そこで、ノズル列方向のドット位置を検出するための図形パターンを付加したテスト画像を印刷出力し、そのスキャン画像における当該図形パターンの検出結果に基づきメインマーカーを追加的に設定して局所領域の数を増やす態様を、実施形態６として説明する。なお、先行する実施形態と共通の内容については説明を省略し、以下では本実施形態の特徴である、ドット位置を検出するための図形パターンの検出結果に基づきメインマーカーを追加設定して局所領域の数を増やす方法を中心に説明を行うものとする。なお、以下の説明では、ドット位置検出パターンの検出結果に基づき追加設定される、現実にはテスト画像上に存在しないが同じ役割を果たす仮想的なメインマーカーを、「仮想メインマーカー」と呼ぶこととする。
【０１０７】
図２６は、ノズル列方向のドット位置、すなわち、各ノズルのインク滴によって紙面上に形成されたドットのＸ方向の位置、を検出するための図形パターン（以下、「ドット位置検出パターン」と呼ぶ。）としての縦万線を付加したテスト画像２６０１の一例を示す図である。このようなドット位置検出パターンを付加したテスト画像を印刷出力し、そのスキャン画像の測定結果に基づいて、Ｓ８０４で検出した各メインマーカーの間に仮想メインマーカーを設定して、局所領域の数を増やす。図２７は、ノズル列方向における局所領域の数を、実施形態１の図１２の場合に比べて３倍に増やした様子を示す図である。以下、どのようにして局所領域の数を増やすのかについて詳しく説明する。
【０１０８】
図２６に示すテスト画像２６０１の場合、その下部に、上述のドット位置検出パターンとして、１画素幅の複数の縦線を設けている。これらの縦線は、ノズル列方向に密集していると各位置の検出が困難になるため、複数段に分けて配置する。図２６の例では２段に分けて配置しているが、例えば６００ｄｐｉの間隔でノズルが並ぶノズル列の場合であれば、縦線のＸ方向の配置間隔を１０画素、縦線のＸ方向の開始位置を１画素ずつスライドさせつつ１０段に分けて配置する。また、１２００ｄｐｉの間隔でノズルが並ぶノズル列の場合であれば、縦方向のＸ方向の配置間隔を２０画素、縦線のＸ方向の開始位置を１画素ずつスライドさせつつ２０段に分けて配置する。このように配置された縦線のうち一部の縦線のＸ位置は、メインマーカーの中心のＸ位置と一致させる。例えば、図２６において、縦線２６０２のＸ位置は、３つのメインマーカー２６１０、２６１２、２６０３の中心のＸ位置と一致しており、縦線２６０４のＸ位置は、３つのメインマーカー２６１１、２６１３、２６０５の中心のＸ位置と一致している。このように、一部の縦線のＸ位置と、メインマーカーの中心のＸ位置とを一致させることで、縦線のＸ位置と、メインマーカーの中心のＸ位置との対応関係を求めることができる。そして、上記一部以外の縦線については、縦線２６０６や縦線２６０７のようにメインマーカー同士の間に配置する。そして、各縦線の位置の検出結果と上述の対応関係に基づいて、メインマーカーのない部分に仮想メインマーカーを設定することによって、図２７に示すようにノズル列方向の局所領域の数を増やす。なお、テスト画像に付加されるドット位置検出パターンは、均一パッチを配置したテスト画像に含めず、別のテスト画像として、異なるタイミングで出力しても構わない。また、ドット位置検出パターンは、縦線に限定されず、ドット位置を特定可能なものであればどのような形状であっても構わない。例えば、メインマーカーと同じ十字形を複数配置したパターンであっても構わない。
【０１０９】
図２７には、図２６のテスト画像２６０１を印刷出力して得たプリント物のスキャン画像２７０１であり、斜めの矩形の枠２７０２はテスト画像２６０１に対応する領域である。縦線２７０３、２７１３、２７１４、２７１５はそれぞれ、図２６における縦線２６０２、２６０６、２６０７、２６０４に対応する。一例として、縦線２７０３のノズル列方向の位置を求める際は、まず、Ｓ８０３と同様の方法により、サブマーカーの検出位置に基づいて、検出枠２７０４を求める。そして、Ｓ８０４と同様の方法により、検出枠２７０４内の画素値の重心位置を求めることにより、縦線２７０３のノズル列方向の位置を求める。他の縦線についても同様である。
【０１１０】
このように、それぞれの縦線のノズル列方向の位置を求めた後は、その結果に基づいて、Ｓ８０４で検出されたメインマーカーの間に仮想メインマーカーを設けるための補間処理を行う。ここで、図２７を参照し、Ｓ８０４で検出された各メインマーカーのうちの４つのメインマーカー２７０５、２７０６、２７０７、２７０８で囲まれる局所領域において、仮想メインマーカーを設定する場合を例に説明する。上記４つのメインマーカー２７０５、２７０６、２７０７、２７０８で囲まれる局所領域は、図２６のテスト画像２６０１における、メインマーカー２６１０、２６１１、２６１２、２６１３で囲まれる領域に対応している。そして、図２７において、点２７０９、２７１０、２７１１、２７１２が、補間処理で求められる仮想メインマーカーの位置を示している。これら仮想メインマーカーを用いて元々の局所領域を分割して、ノズル列方向に局所領域を３倍に増やす。つまり、設定された仮想メインマーカーは、新たな局所領域の頂点となる。
【０１１１】
ここで、図２７に示すスキャン画像２７０１における本来的なメインマーカーの検出位置を小文字のｘとｙで表すこととする。例えば、メインマーカー２７０５の検出位置のノズル列方向の座標をｘ_2705と表記し、用紙搬送方向の座標をｙ_2705と表記する。同様に、縦線２７０３が検出されたノズル列方向の位置を、ｘ_2703と表記する。このとき、補間演算によって求める、仮想メインマーカーとしての点２７０９のノズル列方向の座標ｘ_2709と、用紙搬送方向の座標ｙ_2709は、以下の式（１２）及び式（１３）でそれぞれ表される。
ｘ_2709＝ｘ_2705＋（ｘ_2706−ｘ_2705）÷（ｘ_2715−ｘ_2703）×（ｘ_2713−ｘ_2703）                                                      ・・・式（１２）
ｙ_2709＝ｙ_2705＋（ｙ_2706−ｙ_2705）÷（ｘ_2715−ｘ_2703）×（ｘ_2713−ｘ_2703）                                                      ・・・式（１３）
【０１１２】
なお、上記式（１２）では、テスト画像２６０１における縦線２６０２及び２６０４のＸ位置がそれぞれメインマーカー２６１０及び２６１１のＸ位置と一致していることを利用し、縦線２７１３に対応する点２７０９を補間演算により求めている。そして、他の仮想メインマーカーとしての点も、同様の補間演算で求めることができる。こうして得られた仮想メインマーカーを用いて、元々の局所領域をより小さな複数の局所領域へと分割することにより、図２７に示すように、ノズル列方向における局所領域の数を３倍に増やすことができる。
【０１１３】
なお、本実施形態で局所領域の数を増やした場合において、前述の図８のフローのＳ８０７にて経路設定を行う際は、着目する経路が属する局所領域を、テスト画像２６０１における縦線のＸ位置に基づいて決定する。例えば、図２６において、メインマーカー２６１０、２６１１、２６１２、２６１３で囲まれる元々の局所領域を３つの領域に分割したとする。この場合、着目する経路のＸ座標が、縦線２６０６のＸ座標よりも左のときは、分割した３つの領域のうち、最も左の領域に属すると判定する。同様に、着目する経路のＸ座標が、縦線２６０７のＸ座標よりも右のときは、分割した３つの領域のうち、最も右の領域に属すると判定する。そして、上記以外の場合は、分割した３つの領域の中央の領域に属すると判定する。これにより、実施形態１と同様に、画素値を積分する経路を設定でき、ノズル毎の階調再現関数を導出することができる。
【０１１４】
以上のとおり、本実施形態によれば、ドット位置検出パターンの検出結果に基づいて、メインマーカーの間に仮想メインマーカーを設定し、座標変換パラメータを設定する局所領域を細かく設定する。これにより、ノズル毎の階調再現関数の導出精度を高めることができる。
【０１１５】
［実施形態７］
ここまで説明した各実施形態では、十字形のメインマーカーを等間隔で並べたパターンを、ノズル列方向の位置の基準を示す基準パターンとしていた。しかし、基準パターンはこれに限定されるものではなく、ノズル列方向の基準となる位置を規定可能な、階調が場所によって変化する図形パターンであればどのようなものでもよい。そこで、本実施形態では、連続性のあるランダムな図形を均一パッチの周辺に配置したパターンを基準パターンとして用いる態様を説明する。なお、先行する他の実施形態と共通の内容については説明を省略することとする。
【０１１６】
図２８（ａ）は本実施形態のテスト画像の一例を示す図、同（ｂ）はそれを印刷出力して得たプリント物のスキャン画像を示す図である。図２８の（ａ）及び（ｂ）では、説明の便宜上、ランダムパターンの濃さを薄くして表示している。以下、これらの図を参照して、本実施形態について説明する。いま、図２８（ａ）には、テスト画像２８０１内に配置された各均一パッチ２８０４の周辺を、連続性のあるランダムな図形２８０３で埋めたパターン（以下、「ランダムパターン」と呼ぶ）が示されている。このランダムパターン２８０３は、例えば、公知のグリーンノイズマスクから生成可能である。なお、テスト画像２８０１の四隅にある矩形２８０２はサブマーカーを示している。
【０１１７】
図２８（ｂ）に示すスキャン画像２８１１からノズル毎の階調再現関数を導出する場合、まず、先の実施形態で用いたメインマーカーに対応する領域とその中心位置を表す点をテスト画像２８０１内に設定する。ここでは、図２８（ａ）に示すように、十字型のメインマーカーに対応する領域２８０５とその中心位置を表す点２８０６が、各均一パッチ２８０４の周辺に等間隔でテスト画像２８０１内に設定される。そして、図２８（ｂ）に示すスキャン画像９１１における、テスト画像２８０１に対応する位置を、公知のテンプレートマッチング手法により求める。例えば、テスト画像２８０１における点２８０６に対応する位置として、スキャン画像２８１１内の点２８１６の位置を求める。
【０１１８】
スキャン画像２８１１における対応位置を求める際は、まず、図８のフローのＳ８０３と同じ方法で検出枠を求める。図２８（ｂ）における矩形の枠２８１５は、スキャン画像２８１１上の対応点２８１６を求めるときに用いる検出枠を示している。この検出枠２８１５は、テスト画像２８０１に設定した対応領域２８０５を包含するように、対応領域２８０５よりも大きく設定する。そして、検出枠２８１５内の画素毎に、対応領域２８０５との類似度を求め、類似度が最大となる画素位置を、スキャン画像２８１１における対応点２８１６とする。なお、類似度の尺度としては例えばＺＮＣＣを用いればよい。このようにして、実施形態１等で用いた十字型のメインマーカーを等間隔で並べたパターンと同様に、テスト画像の座標と、そのプリント物のスキャン画像の座標との対応関係が求まる。そして、先の実施形態のときと同様、局所領域毎に座標変換パラメータを設定し、ノズル毎の階調再現関数を導出する。
【０１１９】
（変形例）
メインマーカーを等間隔で並べたパターンに代えてランダムパターンを基準パターンとする例を説明したが、均一パッチ自体を、基準パターンとして用いることも可能である。例えば、図２８（ａ）において、均一パッチ２８０４の上下の境界は、Ｘ方向に伸びる線分であり、Ｙ方向の周波数成分を持っている。そのため、均一パッチ２８０４の上下の境界を含むように、先の実施形態で用いたメインマーカーに対応する領域を設定することで、ランダムパターンを用いることなく、Ｙ方向の位置が検出可能である。これを応用し、Ｘ方向の位置も検出したい場合は、Ｘ方向とＹ方向の両方の周波数成分を持つように、例えば、均一パッチの上下の境界の形状を三角波状にすればよい。この変形例の場合、階調の異なる均一パッチを、間隔を空けずに、互いに上下の境界を共有してＹ方向に隣接して配置でき、テスト画像の面積を削減することができる。
【０１２０】
なお、座標変換前後の座標同士の対応関係が隣り合う局所領域間で連続的であっても、スキャン画像の画素値を積分する経路が隣り合うノズル間で離れていると、テスト画像のプリント物における面内の濃度ムラにより、積分値の間に段差が発生しやすくなる。そのため、画素値を積分する経路は、隣接する２つのノズル間で、その始点と終点が大きく異ならないことが望ましい。具体的には、前述の図１７（ａ）における矢印１７０１と矢印１７０２のように、テスト画像の座標系において、積分経路の始点のＹ座標と、積分経路の終点のＹ座標とが、互いに隣接する２つのノズル間で略一致していることが望ましい。これを実現するためには、同一階調の均一パッチは、ノズル列方向に対して、途切れることなく連続している必要がある。また、上記変形例のように均一パッチの上下の境界を三角波状にする場合であっても、均一パッチの高さに余裕を持たせることにより、均一パッチの内部に矩形の領域（図９の均一パッチ９０４を参照）を設定することもできる。この内部に設けた矩形領域内に積分経路を設定することで、積分経路の始点と終点のＹ座標を、全てのノズルで一致させることができる。
【０１２１】
先の実施形態では、隣接するメインマーカー同士が重ならないように、一定間隔を持たせる必要があった。本実施形態のようなランダムパターンの場合は、各メインマーカーの中心点に対応する位置を、ノズル列方向に最多で１画素おきに設定できる。すなわち、本実施形態の手法の場合、メインマーカーを等間隔に配置した基準パターンを用いる場合に比べ、座標変換パラメータを設定する局所領域を細かく設定でき、ノズル毎の階調再現関数の導出精度を高めることができる。
【０１２２】
［その他の実施形態］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
2020138426.tif 000003
【図２】
2020138426.tif 000004
【図３】
2020138426.tif 000005
【図４】
2020138426.tif 000006
【図５】
2020138426.tif 000007
【図６】
2020138426.tif 000008
【図７】
2020138426.tif 000009
【図８】
2020138426.tif 000010
【図９】
2020138426.tif 000011
【図１０】
2020138426.tif 000012
【図１１】
2020138426.tif 000013
【図１２】
2020138426.tif 000014
【図１３】
2020138426.tif 000015
【図１４】
2020138426.tif 000016
【図１５】
2020138426.tif 000017
【図１６】
2020138426.tif 000018
【図１７】
2020138426.tif 000019
【図１８】
2020138426.tif 000020
【図１９】
2020138426.tif 000021
【図２０】
2020138426.tif 000022
【図２１】
2020138426.tif 000023
【図２２】
2020138426.tif 000024
【図２３】
2020138426.tif 000025
【図２４】
2020138426.tif 000026
【図２５】
2020138426.tif 000027
【図２６】
2020138426.tif 000028
【図２７】
2020138426.tif 000029
【図２８】
2020138426.tif 000030