以下、本発明の実施形態について、添付図面を参照して説明する。図1は、本発明の画像処理装置の第1実施形態である制御部10を搭載したプリンタ1の部分断面図である。制御部10は、プリンタ1によって印刷される画像のバンディングを抑制できるよう構成されている。
プリンタ1はラインプリンタであって、制御部10、印刷ヘッド2、用紙Pを搬送する搬送機構21、搬送機構21に用紙Pを給紙する給紙機構30、印刷ヘッド2により画像が形成された用紙Pを排紙する排紙部90を主に備えている。
搬送機構21は、ベルトローラ6,7と、ベルトローラ6,7に巻き掛けられた搬送ベルト8とを有する。ベルトローラ7には、搬送モータ22(図3)が接続され、搬送モータ22からの回転力によって図1中矢印R方向に回転する。このとき、搬送ベルト8が用紙Pを搬送方向Tに搬送するように走行し、従動ローラであるベルトローラ6も回転する。
搬送ベルト8を挟んでベルトローラ6と対向する位置には、ニップローラ4が配置される。ニップローラ4は、給紙機構30により送られてきた用紙Pを、搬送ベルト8の外周面8aに押さえ付けて、搬送ベルト8の外周面8aに保持させる。一方、搬送ベルト8の内周側には、プラテン19が配置され、内周側から搬送ベルト8を支持する。
印刷ヘッド2は、4つのインク色C,M,Y,K(シアン、マゼンタ、イエロー、ブラック)ごとに設けられており、枠体のフレーム3に支持されて、用紙Pの搬送方向Tに併設されている。各印刷ヘッド2は、それぞれチューブを介してインク貯留部60と接続される。インク貯留部60には、インクを色別に貯留するインクカートリッジ61が設けられ、各印刷ヘッド2には、それぞれ対応する色のインクが供給される。
搬送ベルト8に保持された用紙Pが、4つの各印刷ヘッド2を順番に通過することで用紙Pに画像が形成される。各印刷ヘッド2は、インク吐出面2aのノズル2d(図2)からインク滴を吐出し、ドットとして用紙Pに着弾させることにより、ドット列を用紙Pに形成する。プリンタ1は、ドット列の形成を繰返し、用紙Pに多数のドット列を形成することにより、画像を印刷する。画像が印刷された用紙Pは、搬送機構21によって更に下流側の排紙部90へ搬送される。排出機構90は、搬送機構21から搬送されてきた用紙Pを上方に搬送し、排紙する。
図2(a)は、印刷ヘッド2の構成と印刷範囲との関係を示した図である。1色の印刷ヘッド2は、2つのヘッドユニット2bを含む。一方のヘッドユニット2bは、搬送方向Tに平行な方向における第1の位置L1に設けられ、他方のヘッドユニット2bは、搬送方向Tに平行な方向における第2の位置L2に設けられる。各ヘッドユニット2bのインク吐出面2aには、台形状の部分ヘッド2cが複数設けられる。複数の部分ヘッド2cは、搬送方向Tに直交する主走査方向Sに沿って並ぶ。
以下の説明では、印刷ヘッド2の長手方向をX方向、X方向に直交する方向をY方向とする。理想的には、図2(a)に示すように、印刷ヘッド2のX方向と主走査方向Sとが平行となるように、印刷ヘッド2がフレーム3(図1)に取り付けられる。ただし、実際には、製造段階における取り付けの誤差や経時変動を考慮し、プリンタ1の実用上許容される範囲であれば、印刷ヘッド2のX方向が主走査方向Sに対して傾いていても良い。
また、以下の説明では、印刷ヘッド2により印刷可能な主走査方向Sの印刷範囲を、A領域、B領域、C領域に分類する。A領域は、部分ヘッド2cの中央部に対応した領域である。A領域の画像は、1つの部分ヘッド2cに設けられたノズル2dにより形成される。B領域は、1つのヘッドユニット2b内で隣り合う2つの部分ヘッド2cの境界に対応する領域であり、C領域は、互いに異なるヘッドユニット2bに設けられた互いに隣り合う2つの部分ヘッド2cの境界に対応する領域である。B領域およびC領域の画像は、互いに異なる2つの部分ヘッド2cに設けられたノズル2dにより形成される。
図2(b)は、部分ヘッド2cを示す拡大図である。図2(b)に示すように、部分ヘッド2cには、多数のノズル2dが形成される。各ノズル2dは、サイズが互いに異なる3種類のドット(大ドット、中ドット、小ドット)を、用紙P上に形成可能に構成されている。
印刷ヘッド2には、X方向において互いに隣り合うノズル2dが、Y方向において互いに位置が異なるような配置で、ノズル2dが形成されている。ここで、画像にバンディングが発生する場合、そのバンディングは、X方向において隣り合うノズル2d間のY方向距離が大きいほど目立ち易い。特に、B領域、C領域においては、X方向に隣り合うノズル2d間のY方向距離が、A領域に比較して大きくなる場合があり、バンディングが目立ちやすい。例えば、B領域においては、図2(b)に示すように、互いに異なる部分ヘッド2cに形成された一対のノズル2d1が、X方向において互いに隣り合う場合があるからである。
また、図示は省略するが、C領域においては、互いに異なるヘッドユニット2bに形成された一対のノズル2dが、X方向において互いに隣り合う場合がある。よって、C領域は、B領域に比較して、さらにバンディングが目立ち易い。
図3は、プリンタ1の主な電気的構成を模式的に示すブロック図である。図3に示すように、プリンタ1は、制御部10、インターフェイス16(I/F16)、印刷ヘッド2、搬送モータ22を有する。
制御部10は、CPU11、ROM12、RAM13、フラッシュメモリ14、及びASIC15を備え、これらは、バスラインを介して互いに接続される。また、制御部10、I/F16、印刷ヘッド2、搬送モータ22は、ASIC15を介して互いに接続される。
CPU11は、ROM12やフラッシュメモリ14に記憶される固定値やプログラムに従って、プリンタ1が有している各機能の制御や、ASIC15と接続された各部を制御する。ROM12は、制御プログラム12a、誤差拡散パラメータメモリ12b、カラープロファイルメモリ12cなどを格納した書換不能なメモリである。制御プログラム12aは、図5,図6のフローチャートに示す処理をCPU11に実行させるためのプログラムである。
誤差拡散パラメータメモリ12bは、3種類の誤差拡散パラメータを格納する。誤差拡散パラメータについては、図4を参照して後述する。カラープロファイルメモリ12cは、R(赤),G(緑),B(青)の各色の画素値を、C,M,Y,Kの各色の画素値に色変換するための予め定められた対応関係(カラープロファイル)を格納する。誤差拡散パラメータメモリ12bと同様に、カラープロファイルメモリ12cにも、3種類のカラープロファイルが予め記憶されている。
RAM13は、書換可能な揮発性のメモリであり、画像データメモリ13a、誤差拡散パラメータ設定メモリ13b、カラープロファイル設定メモリ13c、乱数テーブル13d、乱数カウンタ13eが設けられる。
画像データメモリ13aには、処理対象の画像データが格納される。誤差拡散パラメータ設定メモリ13bには、誤差拡散パラメータメモリ12bに記憶された3種類の誤差拡散パラメータのうち、選択された1種類の誤差拡散パラメータが設定されるが、詳細は図5を参照して後述する。カラープロファイル設定メモリ13cには、カラープロファイルメモリ12cに記憶された3種類のカラープロファイルのうち、誤差拡散パラメータ設定メモリ13bに設定された誤差拡散パラメータと組み合わせて使用されるべき1種類のカラープロファイルが設定される。フラッシュメモリ14は書換可能な不揮発性のメモリである。
乱数テーブル13dは、公知のアルゴリズムを用いて生成された擬似的な乱数を複数個(例えば、512個)、格納する。なお、第1実施形態の乱数テーブル13dには、−8から8の範囲内の乱数が格納される。乱数カウンタ13eは、乱数の読み出し位置を示すカウンタである。乱数カウンタ13eの値は、所定時間ごとに「1」ずつカウントアップされ、その値が乱数テーブル13dに格納された乱数の個数に達すると、「1」に設定される。制御部10は、乱数テーブル13dから読み出した乱数を用いて誤差拡散処理を実行するが、詳細は図6を参照して後述する。
制御部10は、画像データに対して、誤差拡散処理を含む画像処理を施して印刷データを生成し、ASIC15に供給する。ASIC15は、印刷データに基づいて、印刷ヘッド2および搬送モータ22などを制御することにより、用紙Pに画像を印刷する。
図4(a)は、誤差拡散パラメータメモリ12bの構成を模式的に示す図である。図4(a)には、3種類の誤差拡散パラメータを示している。各種の誤差拡散パラメータは、大ドット基準値(threL),中ドット基準値(threM),小ドット基準値(threS)の3つの値を含む。図4(a)に示すように、各種誤差拡散パラメータは、threLのみ互いに異なる。以下の説明では、threLが大きい方から順番に、それぞれ誤差拡散パラメータA、誤差拡散パラメータB、誤差拡散パラメータCという。
詳細は図6を参照して後述するが、threLとして設定する値を小さくするほど、大ドットをより多く発生させ(すなわち大ドットの発生頻度を上昇させ)、threLとして設定する値を大きくするほど、大ドットをより少なく発生させる(すなわち大ドットの発生頻度を低減する)ことができる。したがって、誤差拡散パラメータCを設定する場合に、大ドットを最も多く発生させ、誤差拡散パラメータAを設定する場合に、大ドットを最も少なく発生させることができる。
図4(b)は、各種の誤差拡散パラメータを設定した場合に、印刷結果に表れるバンディングと粒状感を評価し、まとめた表である。大ドットが最も発生しにくい誤差拡散パラメータAを用いた誤差拡散処理を行う場合、バンディングについては悪く(バンディングが目立ち易く)、粒状感については良い(粒状感の発生が抑制される)という評価結果が得られた。一方、大ドットが最も発生し易い誤差拡散パラメータCを用いた誤差拡散処理を行う場合、バンディングについては良く(バンディングが抑制され)、粒状感については悪い(粒状感が目立ち易い)という評価結果が得られた。
本実施形態の制御部10は、画像データのB領域またはC領域に有意な画素が含まれているか否かに応じて、誤差拡散パラメータを使い分けることにより、バンディングを抑制する。ここで、有意な画素とは、ドットの形成に寄与する画素を意味する。本実施形態においては、白色の画素(R,G,Bの画素値が全て255である画素)以外の画素を、有意な画素として扱う。
図5は、制御部10が実行する印刷処理を示すフローチャートである。この処理は、画像データに対して誤差拡散処理を含む画像処理を施して印刷データを生成し、画像を印刷する処理である。この処理は、パーソナルコンピュータなどの外部装置から印刷指示が入力された場合に実行される。
まず、CPU11は、画像データを入力し、画像データメモリ13aに格納する(S502)。この画像データに含まれるR,G,Bの各画素値は、0以上255以下であるものとする。次に、CPU11は、画像データを解析し(S504)、画像データ内のC領域に、有意な画素が含まれているか否かを判断する(S506)。具体的には、C領域を構成する各画素について、R,G,Bの画素値が全て255であるか否かを判断する。C領域に含まれるR,G,Bの各画素値が全て255であると判断される場合、CPU11は、C領域に有意な画素が含まれないと判断する(S506:No)。
一方、C領域に含まれるR,G,Bの各画素値のうち、いずれかが255ではない場合、CPU11は、C領域に有意な画素が含まれていると判断する(S506:Yes)。そして、CPU11は、誤差拡散パラメータメモリ12bから誤差拡散パラメータCを読み出し、誤差拡散パラメータ設定メモリ13bに設定する(S508)。また、CPU11は、カラープロファイルメモリ12cからカラープロファイルCを読み出し、カラープロファイル設定メモリ13cに設定する(S510)。カラープロファイルCは、誤差拡散パラメータCを用いた誤差拡散処理を画像データに施す場合に、当該画像データの色変換に最適なカラープロファイルとして、予め準備されたものである。
次に、CPU11は、カラープロファイル設定メモリ13cに設定されたカラープロファイルCを用いて、画像データメモリ13aに格納された画像データに、色変換処理を施す(S522)。色変換処理により、画像データに含まれるR,G,Bの画素値を、C,M,Y,Kの画素値に変換する。
次に、CPU11は、色変換済みの画像データに対して、誤差拡散パラメータ設定メモリ13bに設定された誤差拡散パラメータCを用いた誤差拡散処理を施し、印刷データを生成する(S524)。誤差拡散処理の詳細は、図6を参照して後述する。次に、CPU11は、生成した印刷データをASIC15に供給し、画像を印刷させて(S526)、処理を終了する。
このようにすれば、C領域に有意な画素が含まれると判断された画像データには、誤差拡散パラメータCを用いた誤差拡散処理が施されるので、他の誤差拡散パラメータが設定される場合に比較して、大ドットをより多く発生させることができる。その結果、バンディングが特に目立ち易いC領域に有意な画素が含まれる場合において、バンディングを確実に抑制できる。
一方、C領域に有意な画素が含まれない場合(S506:No)、CPU11は、次に、B領域に有意な画素が含まれているか否かを判断する(S512)。なお、B領域についても、C領域と同様に、B領域に含まれるR,G,Bの画素値に、255ではない値が含まれるか否かを判断する。
B領域に有意な画素が含まれていると判断される場合(S512:Yes)、CPU11は、誤差拡散パラメータメモリ12bから誤差拡散パラメータBを読み出し、誤差拡散パラメータ設定メモリ13bに設定する(S514)。また、CPU11は、カラープロファイルメモリ12cからカラープロファイルBを読み出し、カラープロファイル設定メモリ13cに設定する(S516)。カラープロファイルBは、誤差拡散パラメータBを用いた誤差拡散処理を画像データに施す場合に、当該画像データの色変換に最適なカラープロファイルとして、予め準備されたものである。
次に、CPU11は、カラープロファイルBを用いて、画像データに色変換処理を施し(S522)、色変換済みの画像データに対して、誤差拡散パラメータBを用いた誤差拡散処理を施す(S524)。このようにすれば、C領域に有意な画素が含まれず、B領域に有意な画素が含まれると判断された画像データには、誤差拡散パラメータBを用いた誤差拡散処理が施される。よって、誤差拡散パラメータAが設定される場合に比較して、大ドットを多く発生させることができる。また、誤差拡散パラメータCが設定される場合に比較して、大ドットを少なく発生させることができる。したがって、バンディングを抑制しつつ、粒状感の発生を抑制できる。
B領域に有意な画素が含まれないと判断される場合(S512:No)、CPU11は、誤差拡散パラメータメモリ12bから誤差拡散パラメータAを読み出し、誤差拡散パラメータ設定メモリ13bに設定する(S518)。また、CPU11は、カラープロファイルメモリ12cからカラープロファイルAを読み出し、カラープロファイル設定メモリ13cに設定する(S520)。カラープロファイルAは、誤差拡散パラメータAを用いた誤差拡散処理を画像データに施す場合に、当該画像データの色変換に最適なカラープロファイルとして、予め準備されたものである。
次に、CPU11は、カラープロファイルAを用いて、画像データに色変換処理を施し(S522)、色変換済みの画像データに対して、誤差拡散パラメータAを用いた誤差拡散処理を施す(S524)。このようにすれば、B領域、C領域共に有意な画素が含まれないと判断された画像データには、誤差拡散パラメータAを用いた誤差拡散処理が施される。したがって、他の誤差拡散パラメータが設定される場合に比較して、大ドットをより少なく発生させ、粒状感の発生を抑制できる。
図6は、CPU11が実行する誤差拡散処理(S524)を示すフローチャートである。この処理は、色変換済みの画像データに基づいて、大,中,小のドットのうちいずれかの形成またはドットの非形成を示す印刷データを生成する処理である。この処理は、C,M,Y,Kの色毎に実行されるが、説明を簡単にするため、図6のフローチャートでは1色分の処理のみを説明する。
まず、CPU11は、注目画素を選択し(S602)、補正入力値I’を決定する(S604)。補正入力値I’は、注目画素の画素値に、周辺画素の誤差eを加算した値である。誤差拡散処理における補正入力値I’の算出方法は公知であるため詳細な説明は省略する。
次に、CPU11は乱数Tを取得する(S606)。具体的には、乱数カウンタ13eの値Nを取得し、乱数テーブル13dのN番目に格納された乱数Tを取得する。本第1実施形態では、−8から8までの範囲の乱数が取得される。次に、CPU11は、誤差拡散パラメータ設定メモリ13bに設定された誤差拡散パラメータのうち、threLに乱数Tを加算した値を、大ドット閾値として決定する(S608)。
次に、CPU11は、補正入力値I’が大ドット閾値より大きいか否かを判断する(S612)。補正入力値I’が大ドット閾値より大きいと判断される場合(S612:Yes)、CPU11は、注目画素の値を、大ドットの形成を示す値とし、補正入力値I’から大ドット相対濃度(DotL)を減算した値を、注目画素の誤差eとして算出する(S614)。そして、CPU11は、算出した誤差eを誤差バッファ(図示せず)に記憶し(S630)、最終画素か否かを判断する(S632)。S632の判断が否定される場合(S632:No)、CPU11はS602から処理を繰り返す。
一方、補正入力値I’が大ドット閾値以下であると判断される場合(S612:No)、CPU11は、誤差拡散パラメータ設定メモリ13bに設定された誤差拡散パラメータのうち、threMに乱数Tを加算した値を、中ドット閾値として決定する(S616)。
次に、CPU11は、補正入力値I’が中ドット閾値より大きいか否かを判断する(S618)。補正入力値I’が中ドット閾値より大きいと判断される場合(S618:Yes)、CPU11は、注目画素の値を、中ドットの形成を示す値とし、補正入力値I’から中ドット相対濃度(DotM)を減算した値を、注目画素の誤差eとして算出する(S620)。
一方、補正入力値I’が中ドット閾値以下であると判断される場合(S618:No)、CPU11は、誤差拡散パラメータ設定メモリ13bに設定された誤差拡散パラメータのうち、threSに乱数Tを加算した値を、小ドット閾値として決定する(S622)。
次に、CPU11は、補正入力値I’が小ドット閾値より大きいか否かを判断する(S624)。補正入力値I’が小ドット閾値より大きいと判断される場合(S624:Yes)、CPU11は、注目画素の値を小ドットの形成を示す値とし、補正入力値I’から小ドット相対濃度(DotS)を減算した値を、注目画素の誤差eとして算出する(S626)。一方、補正入力値I’が小ドット閾値以下であると判断される場合(S624:No)、CPU11は、注目画素の値をドットの非形成を示す値とし、補正入力値I’を誤差eとする(S628)。このようにして処理を繰り返すうちに、最終画素まで処理を終了すると(S632:Yes)、CPU11は誤差拡散処理を終了する。
誤差拡散処理(S524)によれば、誤差拡散パラメータ設定メモリ13bに設定された誤差拡散パラメータのthreLが小さいほど、大ドット閾値として小さい値が決定される。その結果、大ドットの発生を増大させ、バンディングを抑制できる。
第1実施形態によれば、画像データ内の特定領域に有意な画素が含まれているか否かに応じて、誤差拡散パラメータが使い分け、バンディングを適切に抑制できる。すなわち、最もバンディングが目立ち易いC領域に有意な画素が含まれている場合、誤差拡散パラメータCを用いて、バンディングを確実に抑制できる。また、C領域に有意な画素が含まれず、且つ、B領域に有意な画素が含まれている場合、誤差拡散パラメータBを用いて、バンディングを抑制しつつ粒状感の発生を抑制できる。また、B領域およびC領域のいずれにも有意な画素が含まれない場合、誤差拡散パラメータAを用いて、粒状感の発生を抑制できる。
また、本実施形態によれば、経時変動や用紙搬送ズレなど予測しにくい変動が原因となってバンディングが発生する場合であっても、誤差拡散パラメータの使い分けにより、バンディングを適切に抑制できるので、ロバストな画像処理が実現される。また、本実施形態によれば、むらの位置を検出せずにバンディングを抑制できるので、むら位置検出手段をプリンタに設ける場合に比較して、プリンタ1を安価に構成できる。
さらに、本実施形態によれば、1つの画像データには、1種類の誤差拡散パラメータを用いた誤差拡散処理が施される。換言すれば、1つの画像データのA領域、B領域、C領域には、同一の誤差拡散パラメータを用いた誤差拡散処理が施される。よって、各領域の境目に不自然な境界が発生することが抑制される。
図7を参照して、第2実施形態について説明する。上記第1実施形態では、B領域またはC領域に有意な画素が含まれるか否かに応じて、大ドット閾値の決定に用いられるthreLを変更した。これに対し、第2実施形態では、大ドット閾値、中ドット閾値、小ドット閾値の決定に用いる乱数Tの範囲を、場合に応じて変更する。
図7は、第2実施形態の制御部10の誤差拡散パラメータメモリ12bに格納される情報の構成を模式的に示す図である。第2実施形態において、誤差拡散パラメータは、乱数テーブル13dに格納すべき乱数の範囲を定める。
第2実施形態において、誤差拡散パラメータメモリ12bには3種類の誤差拡散パラメータが格納される。これら3種類の誤差拡散パラメータが規定する乱数の範囲は、上限値が同一であり、下限値が互いに異なる。第2実施形態においては、乱数の下限値が大きい方から順番に、誤差拡散パラメータA,誤差拡散パラメータB,誤差拡散パラメータCと称する。
次に、第2実施形態の制御部10が実行する処理を説明する。既に参照した図5,図6のフローチャートは、第2実施形態の制御部10が実行する処理の説明にも利用できるので、以下、図5,図6を参照して、第2実施形態の制御部10が実行する処理を説明する。図5,図6のフローチャートで示す処理のうち、第1実施形態と同一の処理を行う部分については、説明を省略する。
図5に示す印刷処理を第2実施形態の制御部10が実行する場合において、C領域に有意な画素が含まれていると判断される場合(S506:Yes)、CPU11は、図7に示す第2実施形態の誤差拡散パラメータCを誤差拡散パラメータ設定メモリ13bに設定する(S508)。また、C領域に有意な画素が含まれず(S506:No)、B領域に有意な画素が含まれている場合(S512:Yes)、CPU11は、第2実施形態の誤差拡散パラメータBを誤差拡散パラメータ設定メモリ13bに設定する(S514)。また、B領域およびC領域に有意な画素が含まれない場合(S506:No,S512:No)、CPU11は、第2実施形態の誤差拡散パラメータAを誤差拡散パラメータ設定メモリ13bに設定する(S518)。
なお、第2実施形態の制御部10において、CPU11は、印刷処理(図5)とは独立に、乱数生成処理を実行する。乱数生成処理は、誤差拡散パラメータ設定メモリ13bに設定された範囲内の乱数を生成して、乱数テーブル13dに格納する処理であるが、公知のアルゴリズムで実現できるので、図示及び詳細な説明は省略する。
図6を参照して、第2実施形態の制御部10が実行する誤差拡散処理(S524)を説明する。CPU11は、誤差拡散パラメータ設定メモリ13bに設定された範囲内の乱数Tを、乱数テーブル13dから取得する(S606)。
次に、CPU11は、threLに乱数Tを加算した値を、大ドット閾値を決定する(S608)。上記第1実施形態において、threLは、誤差拡散パラメータ設定メモリ13bから読み出されていた。一方、本第2実施形態において、このthreLは、例えば、ROM12等に予め記憶された固定値(例えば、128)である。
ここで、誤差拡散パラメータA[−8〜8]は、誤差拡散パラメータB[−16〜8]または誤差拡散パラメータC[−32〜8]に比較して、乱数Tの下限値が大きい。よって、誤差拡散パラメータ設定メモリ13bに誤差拡散パラメータAが設定されている場合、大ドット閾値がより大きい値をとり易い。したがって、誤差拡散パラメータAを用いた誤差拡散処理を実行する場合、大ドットを発生し難くし、粒状感の発生を抑制できる。
また、誤差拡散パラメータC[−32〜8]は、誤差拡散パラメータA[−8〜8]または誤差拡散パラメータB[−16〜8]に比較して、乱数Tの下限値が小さい。よって、誤差拡散パラメータ設定メモリ13bに誤差拡散パラメータCが設定されている場合、大ドット閾値が、より小さい値をとり易い。したがって、誤差拡散パラメータCを用いた誤差拡散処理を実行する場合、大ドットを発生しやすくし、バンディングを抑制できる。
なお、第2実施形態において、CPU11は、threM、threSに、それぞれ乱数Tを加算した値を、中ドット閾値、小ドット閾値として決定する(S616,S622)。上述したthreLと同様に、threM,threSは、ROM12等に予め記憶された固定値(例えば、65,2)であり、threLと同じ乱数Tが加算される。
第2実施形態の制御部10によれば、第1実施形態と同様の効果が得られる。
図8,図9を参照して本発明の第3実施形態を説明する。上記第1実施形態および第2実施形態の制御部10は、画像データの特定領域に、有意な画素が含まれているか否かを判断した。第3実施形態の制御部10は、さらに、特定領域内に濃度が基準濃度よりも高いことを示す有意な画素が含まれているか否かを判断する。
図8は、基準濃度の決定に用いるチャートの一例を示す図である。このチャートは、下方に向かうほど段階的に輝度が低くなる(濃度が高くなる)グラデーション画像を、プリンタ1に印刷させたものである。また、このチャートは、印刷ヘッド2により印刷可能な主走査方向Sにおける印刷範囲(図2(a))のうち、A領域、B領域、C領域を少なくとも1つ以上含む。
ここで、バンディングは、低濃度では知覚されにくく、ある濃度以上に濃度が高い領域で知覚されやすい。よって、設計者(あるいはプリンタ1のユーザ)は、チャートを目視し、バンディングが画質に悪影響を与える濃度(基準濃度)を決定する。この基準濃度は、B領域とC領域とのそれぞれについて決定される。上述したように、B領域はC領域に比較するとバンディングが知覚され難いので、B領域について決定される第1種の基準濃度は、C領域について決定される第2種の基準濃度よりも高い濃度を示す値である。
なお、本第3実施形態では、基準濃度よりも高い濃度の画素が特定領域に存在するか否かを判断するために、輝度値を用いる。具体的には、B領域について決定された第1種の基準濃度に対応した輝度値T1を求め、輝度値T1以下の輝度の画素がB領域に存在するか否かを判断する。同様に、C領域について決定された第2種の基準濃度に対応した輝度値T2を求め、輝度値T2以下の輝度の画素がC領域に存在するか否かを判断する。
図9は、第3実施形態の制御部10が実行する印刷処理を示すフローチャートである。図9のフローチャートに示す処理のうち、図5のフローチャートに示される処理と同一の処理については、同一のステップ番号を付し、詳細な説明を省略する。
図9に示すように、CPU11は、輝度値T2以下の輝度値Yを示す画素が、C領域にあるか否かを判断する(S902)。なお、CPU11は、注目画素のR,G,Bの各色の画素値のうち、最小の値を、注目画素の輝度値Yとして用いて、S902の判断を行う。C領域に有意な画素が存在し、さらに、その画素の輝度値Yが輝度値T2以下である(すなわち、濃度が第2種の基準濃度よりも高い)ことを示すと判断される場合(S902:Yes)、CPU11は、第1実施形態で説明した誤差拡散パラメータC(図4(a))を誤差拡散パラメータ設定メモリ13bに設定する(S508)。
一方、輝度値T2以下の輝度値Yを示す画素がC領域にあると判断されない場合(S902:No)、CPU11は、輝度値T1以下の輝度値Yを示す画素が、B領域にあるか否かを判断する(S904)。B領域に有意な画素が存在し、さらに、その画素の輝度値Yが輝度値T1以下である(すなわち、濃度が第1種の基準濃度よりも高い)ことを示すと判断される場合(S904:Yes)、CPU11は、第1実施形態で説明した誤差拡散パラメータBを誤差拡散パラメータ設定メモリ13bに設定する(S514)。
一方、輝度値T2以下の輝度値Yの画素がC領域になく、輝度値T1以下の輝度値Yの画素がB領域にない場合(S902:No,S904:No)、CPU11は、第1実施形態で説明した誤差拡散パラメータAを誤差拡散パラメータ設定メモリ13bに設定する(S518)。
第3実施形態によれば、第2種の基準濃度よりも濃度が高いことを示す画素がC領域に含まれている場合、誤差拡散パラメータCを用いた誤差拡散処理が実行される。よって、バンディングが画質に悪影響を与える可能性が高い場合、誤差拡散パラメータCを用いて、バンディングを確実に抑制できる。
また、第2種の基準濃度よりも濃度が高いことを示す画素がC領域に含まれず、且つ、第1種の基準濃度よりも濃度が高いことを示す画素がB領域に含まれている場合、誤差拡散パラメータBを用いた誤差拡散処理が実行される。よって、バンディングが画質に悪影響を与える可能性が高い場合、誤差拡散パラメータBを用いて、バンディングを抑制しつつ、粒状感の発生を抑制する。
また、B領域について決定する第1種の基準濃度を、C領域について決定する第2種の基準濃度よりも高い濃度を示す値とすることにより、C領域においてはB領域よりも、より低濃度からバンディングが目立ちやすいという特性を加味して、誤差拡散パラメータを使い分けることができ、バンディングをより適切に抑制できる。
さらに、第3実施形態によれば、B領域、C領域に有意な画素が含まれる場合であっても、それらがそれぞれの領域について決定された基準濃度よりも低い濃度を示す場合は、誤差拡散パラメータAが設定されるので、粒状感の発生を確実に抑制できる。
なお、第3実施形態の印刷処理(図9)では、第1実施形態で説明した誤差拡散パラメータ(図4)を用いるものとして説明したが、これに代えて、第2実施形態で説明した誤差拡散パラメータ(図7)を用いるように第3実施形態を構成しても良い。
上記実施形態において、プリンタ1内の印刷ヘッド2を含む印刷機構が印刷実行部の一例である。制御プログラム12aが画像処理プログラムの一例である。主走査方向Sが第1の方向の一例である。B領域が第1種の特定領域の一例であり、C領域が第2種の特定領域の一例である。誤差拡散パラメータAが第1の値の一例であり、誤差拡散パラメータBが第1種の第2の値の一例であり、誤差拡散パラメータCが第2種の第2の値の一例である。大ドットが第1種のドットの一例であり、中ドットおよび小ドットが第2種のドットの一例である。S524を実行するCPU11が生成部の一例であり、S526を実行するCPU11が供給部の一例である。
以上、実施形態に基づき本発明を説明したが、本発明は上述した実施形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々の改良変更が可能であることは容易に推察できるものである。
例えば、上記実施形態では、プリンタ1内の制御部10が画像処理装置の一例であったが、プリンタ1と通信可能に接続されたパーソナルコンピュータなどの外部装置が、本発明の画像処理装置の一例となり得る。
また、上記実施形態において、各色の印刷ヘッド2は、2列のヘッドユニット2bを含み、主走査方向Sに沿って並ぶ2列の部分ヘッド2cから構成されていた。しかしながら、主走査方向Sに沿って一列に並ぶ複数の部分ヘッド2cから印刷ヘッド2が構成される場合にも、本発明を適用可能である。その場合、隣り合う2つの部分ヘッド2cの境界に対応するB領域が、特定領域の一例に相当する。
この場合であっても、特定領域に有意な画素が含まれるか否かに応じて、少なくとも2種類の誤差拡散パラメータを使い分けることにより、上記実施形態と同様、バンディングを適切に抑制できる。例えば、特定領域に有意な画素が含まれる場合には、第1の誤差拡散パラメータよりも大ドットをより多く発生させるような第2の誤差拡散パラメータを用いた誤差拡散処理を実行することによりバンディングを抑制できる。一方、特定領域に有意な画素が含まれない場合には、第1の誤差拡散パラメータを用いることにより、粒状感の発生を抑制できる。
また、一列に並ぶ部分ヘッド2cから印刷ヘッド2が構成される場合、第3実施形態と同様に、特定領域に有意な画素が含まれ、且つ、特定領域内に濃度が基準濃度よりも高いことを示す画素が含まれていると判断されることを条件として、第2の誤差拡散パラメータを用いるように構成しても良い。このようにすれば、画質に悪影響を与えるようなバンディングを抑制しつつ、粒状感の発生を抑制できる。
また、上記実施形態では、誤差拡散パラメータの種類に応じて、カラープロファイルを変更していた。しかしながら、誤差拡散パラメータの種類に関わらず、同一のカラープロファイルを用いて、色変換処理を実行するように構成しても良い。
また、上記実施形態では、R,G,Bの画素値に基づいて、特定領域に有意な画素が含まれるか否かを判断していた。しかしながら、これに代えて、例えば、C,M,Y,Kの画素値、あるいは、R,G,Bの画素値から算出される輝度値を用いて、この判断を行っても良い。
また、上記第1実施形態(図4(a))において、複数種類の誤差拡散パラメータは、大ドット閾値を決定するためのthreLのみが互いに異なっていたが、threM、threSも、互いに異なっていても良い。
また、上記第2実施形態(図7)において、CPU11は、誤差拡散パラメータ設定メモリ13bに設定された範囲内の乱数を乱数テーブル13dに格納するものとして説明した。しかしながら、制御部10に、予め複数種類の乱数テーブルが設けられ、各乱数テーブルが、互いに異なる範囲の乱数を格納していても良い。その場合、誤差パラメータは、複数種類の乱数テーブルのいずれから乱数を読み出すべきかを示す値であっても良い。
また、上記第1実施形態および第2実施形態を組み合わせても良い。すなわち、大ドット閾値を決定するためのthreLと、乱数Tが取り得る値との両方を、特定領域に有意な画素が含まれるか否かに応じて変更しても良い。
また、上記第3実施形態では、濃度が基準濃度よりも高いことを示す画素が存在するか否かを判断するために、輝度値Yを用いたが、例えば、C,M,Y,Kの画素値を用いて判断するように構成しても良い。