(57)【要約】【課題】周期的紋様の発生を防ぐことができる中間調画像処理装置、画像形成装置および画像処理プログラムを提供すること。【解決手段】入力画像データを、横２画素×縦２画素の記録マトリックスに分割し、分割した記録マトリックス毎に処理を行う。Ｓ２８にて記録マトリックス内の画素の濃度値の総和を算出し、Ｓ３１にて、閾値とそれに対する大・中・小の出力ドット組み合わせが記述された閾値テーブルと濃度値の総和を比較し、出力ドット組み合わせを決定する。そして、Ｓ３３において、出力ドット組み合わせと、乱数および画素の濃度値の大小関係により、記録マトリックス内の画素における出力ドットの配置を決定する。【選択図】図４
2004363938.tif 000002
【特許請求の範囲】
【請求項１】
濃度値をデータとして持つ複数の画素から構成される入力画像データを、所定数の画素からなる記録マトリックスごとに処理し、前記記録マトリックスの画素のうち、出力画像を構成するための出力ドットを形成する画素を前記濃度値に基づいて決定することにより出力画像データを生成する中間調画像処理装置であって、
前記記録マトリックス内の各画素の濃度値から、前記記録マトリックスの濃度を代表する代表濃度値を算出する代表濃度値算出手段と、
前記代表濃度値に対する閾値と、該閾値に対応して、前記記録マトリックス上で画像を形成するための出力ドット数とを表す閾値テーブルが記憶される記憶手段と、
前記代表濃度値と前記閾値とを比較し、前記閾値テーブルに基づいて前記出力ドット数を決定する比較手段と、
前記比較手段により決定された前記出力ドット数に応じて、前記記録マトリックス上の画素のうち前記出力ドットとして出力する画素を乱数により決定するドット形成画素決定手段と、
を備えたことを特徴とする中間調画像処理装置。
【請求項２】
前記ドット形成画素決定手段は、前記出力ドット数に応じて、前記記録マトリックス上の画素のうち前記濃度値の大きい画素を優先的に、前記出力ドットを出力する画素として決定すると共に、前記濃度値が同じ画素がある場合には、前記濃度値が同じ画素のうち前記出力ドットとして出力する画素を、乱数により決定することを特徴とする請求項１に記載の中間調画像処理装置。
【請求項３】
前記閾値テーブルは、複数個の閾値と夫々の閾値に対応する出力ドット数とから形成され、
前記比較手段は、前記代表濃度値と前記複数の閾値とを比較し、前記閾値テーブルに基づいて前記出力ドット数を決定する、
ことを特徴とする請求項１または請求項２に記載の中間調画像処理装置。
【請求項４】
前記閾値テーブルは複数個からなり、
前記閾値テーブルを印字条件に基づいて選択する選択手段を備え、
前記比較手段は、該選択手段において選択された閾値テーブル内の複数の閾値と前記代表濃度値とを比較し、前記選択された閾値テーブルに基づいて前記出力ドット数を決定する、
ことを特徴とする請求項３に記載の中間調画像処理装置。
【請求項５】
操作者の操作によって、前記閾値テーブルを選択するための選択指令と、前記閾値テーブルを選択する選択情報とを入力するための選択入力手段を備え、
前記選択手段は、前記入力手段から前記選択指令が入力されると、前記選択情報に応じて、前記閾値テーブルを選択する、
ことを特徴とする請求項４に記載の中間調画像処理装置。
【請求項６】
前記閾値テーブルにおける前記閾値と前記出力ドット数とを任意に設定する設定手段を備えたことを特徴とする請求項１〜請求項５何れかに記載の中間調画像処理装置。
【請求項７】
操作者の操作によって、前記閾値テーブルにおける前記閾値と前記出力ドット数とを設定するための設定指令と、前記閾値テーブルを構成する前記閾値と前記出力ドット数との少なくとも一方の設定情報とを入力するための設定入力手段を備え、
前記設定手段は、前記入力手段から前記設定指令が入力されると、前記設定情報に応じて、前記閾値テーブルにおける前記閾値と前記出力ドット数とを設定する、
ことを特徴とする請求項６に記載の中間調画像処理装置。
【請求項８】
前記代表濃度値と前記閾値との誤差を検出し、該誤差の検出された記録マトリックスの近傍に位置する所定の記録マトリックスにおける代表濃度値を、前記検出した誤差に応じて補正する補正手段を備え、
前記比較手段は、該補正された代表濃度値と前記閾値とを比較し、その比較結果に応じて、前記出力ドット数を決定すること、
を特徴とする請求項１〜請求項７何れかに記載の中間調画像処理装置。
【請求項９】
前記代表濃度値算出手段と前記記憶手段と前記比較手段と前記ドット形成画素決定手段とにより中間調画像処理を行う第１中間調処理手段と、
前記記録マトリックス上の画素のうち出力ドットとして出力する画素を、ディザ法を用いて決定することにより中間調画像処理を行う第２中間調処理手段と、
印字条件に基づいて、前記第１中間調処理手段と前記第２中間調処理手段の何れかが適しているかを判定し、前記第１中間調処理手段が適していると判定された場合には、前記第２中間調処理手段の動作を禁止すると共に前記第１中間調処理手段を動作させ、前記第２中間調処理手段が適していると判定された場合には、前記第１中間調処理手段の動作を禁止すると共に前記第２中間調処理手段を動作させる判定手段と、
を備えたことを特徴とする請求項８に記載の中間調画像処理装置。
【請求項１０】
前記判定手段は、印字時のインクがイエロー色相に近い色相特性をもつインクであるか否かを判定し、イエロー色相に近い色相特性をもつインクであると判定された場合には、前記第１中間調処理手段の動作を禁止すると共に前記第２中間調処理手段を動作させ、イエロー色相に近い色相特性をもつインクでないと判定された場合には、前記第２中間調処理手段の動作を禁止すると共に前記第１中間調処理手段を動作させることを特徴とする請求項９に記載の中間調画像処理装置。
【請求項１１】
前記出力ドットは、ドット径の異なる複数の種類を有し、
前記閾値テーブルには、前記閾値に対応して前記各種類のドット径毎に設定された出力ドット数が予め設定されており、
前記比較手段は、前記代表濃度値と前記閾値とを比較し、前記閾値テーブルに基づいて、ドット径の種類毎の出力ドット数を決定し、
前記ドット形成画素決定手段は、ドット径の種類毎の出力ドット数に応じて、前記記録マトリックス上の画素のうち出力ドットとして出力する画素及びそのドット径を決定する、
ことを特徴とする請求項１〜請求項１０何れかに記載の中間調画像処理装置。
【請求項１２】
前記閾値テーブルは、前記記録マトリックス上の全ての画素が特定の径のドットで出力されないように設定されていることを特徴とする請求項１１に記載の中間調画像処理装置。
【請求項１３】
前記特定の径のドットは、最小液滴径のドットであることを特徴とする請求項１２に記載の中間調画像処理装置。
【請求項１４】
請求項１〜請求項１０何れか記載の中間調画像処理装置を備えたことを特徴とする画像形成装置。
【請求項１５】
請求項１１〜請求項１３何れか記載の中間調画像処理装置を備えたことを特徴とするインクジェットプリンタ。
【請求項１６】
請求項１〜請求項１３何れか記載の中間調画像処理装置の前記各手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、濃度値をデータとして持つ複数の画素から構成される入力画像データをもとに、出力ドットを形成する画素を決定することによって、出力画像データを生成する中間調画像処理装置、この中間調画像処理装置を備えた画像形成装置、インクジェットプリンタおよび画像処理プログラムに関する。
【０００２】
【従来の技術】
ハーフトーン処理法とは、濃度値をデータとして持つ複数の画素から構成される入力画像データが有する階調性を、ドットの分布により表現するための処理方法である。このハーフトーン処理法の一つである誤差拡散処理は、画素の濃度値をもとにドット出力・非出力の２値化処理する際に発生する誤差を周囲の画素へ分散させることにより、入力画像データと出力画像データとの濃度差を画像データ全体として低減することができ、現在最も使用頻度が高く且つ高画質を再現するものとして使用されている。
【０００３】
その具体的手順を図１５に基づいて説明する。まず、処理対象となる注目画素の濃度を示す入力値が入力されると、この注目画素の周辺画素で発生した誤差値を分散マトリックスに基づいて収集し、その累計を補正量として加算して補正値を算出する（Ｐ１）。次に、この補正値を予め設定した閾値と比較して出力値を生成し（Ｐ２）、出力する（Ｐ３）。つまり、補正値が閾値以上のときはドット出力に対応する出力値（例えば１）を、補正量が閾値未満のときはドット非出力に対応する出力値（例えば０）を生成する。
【０００４】
また、その出力値と対応付けられている相対濃度値を読み込んで誤差値算出用の基準値として設定する（Ｐ４）。
そして、相対濃度値と補正値との差分を誤差値として算出し（Ｐ５）、これをバッファに格納する（Ｐ６）。バッファに格納された誤差値は、分散マトリックスに基づいて分配され（Ｐ７）、注目画素について収集した値が上述の補正量とされる。
【０００５】
このように、誤差値を周囲の画素へ分散させることにより、マクロ的な濃度レベルの再現性の向上が見込まれる。
しかし、上記の誤差拡散処理は、画素毎に誤差値を周囲の画素へ分散させる処理を行うため、結果として計算量を増大させ、同じくハーフトーン処理法のひとつであるディザ法と比較すると、より多くの処理時間を要することとなる。そのため、誤差拡散処理は、様々な形で高速化が実施されている。その高速化法の一つに、近傍の複数画素をまとめて誤差拡散処理を行う方法が知られている（例えば、特許文献１，特許文献２参照。）。
【０００６】
その具体的手順を図１６に基づいて説明する。入力画像データをＸ画素×Ｙ画素のサイズのマトリックスに分割し、分割したマトリックス毎に処理を行う。まず、処理対象となる注目マトリックスの濃度を示す入力値が入力されると、この注目マトリックスの周辺マトリックスで発生した誤差値を分散マトリックスに基づいて収集し、その累計を補正量として加算して補正値を算出する（Ｐ１１）。
【０００７】
次に、この注目マトリックスの補正値を予め設定したＸ×Ｙサイズの閾値マトリックスと比較して出力値を生成し（Ｐ１２）、出力する（Ｐ１３）。つまり、注目マトリックスにおける画素毎に、その画素の補正値とその画素に対応する閾値マトリックスの要素の閾値とを比較し、補正値が閾値以上のときはドット出力に対応する出力値（例えば１）を、補正量が閾値未満のときはドット非出力に対応する出力値（例えば０）を生成する。
【０００８】
また、その注目マトリックスの出力値と対応付けられている相対濃度値を読み込んで誤差値算出用の基準値として設定する（Ｐ１４）。
そして、相対濃度値と補正値との差分を誤差値として算出し（Ｐ１５）、これをバッファに格納する（Ｐ１６）。バッファに格納された誤差値は、分散マトリックスに基づいて分配され（Ｐ１７）、注目マトリックスについて収集した値が上述の補正量とされる。
【０００９】
【特許文献１】
特許第２７４５５２７号公報  （第３，４頁）
【特許文献２】
特開平５−６３９６６号公報  （第６〜１０図）
【００１０】
【発明が解決しようとする課題】
この方法ではＸ×Ｙサイズの画素分を同時に処理できるために高速化は実現できるが、単一の閾値マトリックスを用いているために、入力画像の中に色調の変化が小さい部分が連続して存在すると、その部分の出力値のマトリックスは閾値マトリックスの値を反映し、同一のパターンが連続するものになるため、周期的紋様を発生させる原因となっていた。
【００１１】
本発明は、上記問題を解決するためになされたもので、周期的紋様の発生を防ぐことができる中間調画像処理装置、この中間調画像処理装置を備えた画像形成装置、インクジェットプリンタおよび画像処理プログラムを提供することを目的とする。
【００１２】
【課題を解決するための手段および発明の効果】
上記問題を解決するため請求項１に記載の中間調画像処理装置は、
濃度値をデータとして持つ複数の画素から構成される入力画像データを、所定数の画素からなる記録マトリックスごとに処理し、前記記録マトリックスの画素のうち、出力画像を構成するための出力ドットを形成する画素を前記濃度値に基づいて決定することにより出力画像データを生成する中間調画像処理装置であって、
前記記録マトリックス内の各画素の濃度値から、前記記録マトリックスの濃度を代表する代表濃度値を算出する代表濃度値算出手段と、
前記代表濃度値に対する閾値と、該閾値に対応して、前記記録マトリックス上で画像を形成するための出力ドット数とを表す閾値テーブルが記憶される記憶手段と、
前記代表濃度値と前記閾値とを比較し、前記閾値テーブルに基づいて前記出力ドット数を決定する比較手段と、
前記比較手段により決定された前記出力ドット数に応じて、前記記録マトリックス上の画素のうち前記出力ドットとして出力する画素を乱数により決定するドット形成画素決定手段とを備えることを特徴とする。
【００１３】
このように構成された中間調画像処理装置によれば、代表濃度値算出手段が記録マトリックス内の各画素の濃度値から記録マトリックスの濃度を代表する代表濃度値を算出し、更に比較手段が代表濃度値と閾値とを比較し、閾値テーブルに基づいて出力ドット数を決定する。そして、ドット形成画素決定手段が、出力ドット数に応じて記録マトリックス上の画素のうち出力ドットとして出力する画素を、乱数により決定する。
【００１４】
このため、記録マトリックス上の画素のうち出力ドットとして出力する画素は不規則に変化する。したがって、入力画像データの中に濃度値の変化が小さい領域が連続して存在する場合でも、同一の出力ドット配置の記録マトリックスが連続する出力画像データを生成することがない。即ち、周期的紋様の発生しない出力画像データを生成することができる。
【００１５】
また、請求項１に記載の中間調画像処理装置においては、更に請求項２に記載のように、
前記ドット形成画素決定手段は、前記出力ドット数に応じて、前記記録マトリックス上の画素のうち前記濃度値の大きい画素を優先的に、前記出力ドットを出力する画素として決定すると共に、前記濃度値が同じ画素がある場合には、前記濃度値が同じ画素のうち前記出力ドットとして出力する画素を、乱数により決定する、ようにしてもよい。
【００１６】
このように構成された中間調画像処理装置によれば、濃度値の大きい画素に優先的にドットが出力され、濃度値が同じ画素がある場合には、乱数によりドットを出力する画素が決まる。
このため、濃度値の大きい画素にドットが出力されないという状況が発生することを防止することができ、入力画像データに対して、濃淡の再現性が良好な出力画像データを生成することができる。
【００１７】
また、請求項１または請求項２に記載の中間調画像処理装置においては、更に請求項３に記載のように、
前記閾値テーブルは、複数個の閾値と夫々の閾値に対応する出力ドット数とから形成され、
前記比較手段は、前記代表濃度値と前記複数の閾値とを比較し、前記閾値テーブルに基づいて前記出力ドット数を決定する、ようにしてもよい。
【００１８】
このように構成された中間調画像処理装置によれば、比較手段は、代表濃度値に応じて様々な出力ドット数を決定することができる。
このため、出力ドットとして出力する画素を、代表濃度値に応じて様々に変えることができ、入力画像データに対して、より細かい再現が可能な出力画像データを生成することができる。
【００１９】
また、請求項３に記載の中間調画像処理装置においては、更に請求項４に記載のように、
前記閾値テーブルは複数個からなり、
前記閾値テーブルを印字条件に基づいて選択する選択手段を備え、
前記比較手段は、該選択手段において選択された閾値テーブル内の複数の閾値と前記代表濃度値とを比較し、前記選択された閾値テーブルに基づいて前記出力ドット数を決定する、ようにしてもよい。
【００２０】
このように構成された中間調画像処理装置によれば、印字条件に基づいて閾値テーブルを選択し、その閾値テーブルに基づいて出力ドット数を決定する。
このため、印字条件に最適な閾値テーブルを選択することができ、印字条件に応じて最適な出力画像データを生成することができる。
【００２１】
また、請求項４に記載の中間調画像処理装置においては、更に請求項５に記載のように、
操作者の操作によって、前記閾値テーブルを選択するための選択指令と、前記閾値テーブルを選択する選択情報とを入力するための選択入力手段を備え、
前記選択手段は、前記入力手段から前記選択指令が入力されると、前記選択情報に応じて、前記閾値テーブルを選択する、ようにしてもよい。
【００２２】
このように構成された中間調画像処理装置によれば、操作者の操作により閾値テーブルを選択し、その閾値テーブルに基づいて出力ドット数を決定する。
このため、操作者により最適な閾値テーブルを選択することができ、操作者の判断に基づく最適な出力画像データを生成することができる。
【００２３】
また、請求項１〜請求項５何れかに記載の中間調画像処理装置においては、更に請求項６に記載のように、
前記閾値テーブルにおける前記閾値と前記出力ドット数とを任意に設定する設定手段を備える、ようにしてもよい。
【００２４】
このように構成された中間調画像処理装置によれば、閾値テーブルにおける閾値と出力ドット数とを任意に設定することができる。
このため、連続使用による劣化から画像形成装置の印字特性が変化した際にも、閾値テーブルにおける閾値と出力ドット数を設定することにより、印字特性の変化に対応して好適な出力画像データを生成することができる。
【００２５】
また、請求項６に記載の中間調画像処理装置においては、更に請求項７に記載のように、
操作者の操作によって、前記閾値テーブルにおける前記閾値と前記出力ドット数とを設定するための設定指令と、前記閾値テーブルを構成する前記閾値と前記出力ドット数との少なくとも一方の設定情報とを入力するための設定入力手段を備え、
前記設定手段は、前記入力手段から前記設定指令が入力されると、前記設定情報に応じて、前記閾値テーブルにおける前記閾値と前記出力ドット数とを設定する、ようにしてもよい。
【００２６】
このように構成された中間調画像処理装置によれば、操作者の操作により、閾値テーブルにおける閾値と出力ドット数とを任意に設定することができる。
このため、連続使用による劣化から画像形成装置の印字特性が変化した際にも、印字特性の変化に対応して、操作者の判断に基づき好適な出力画像データを生成することができる。
【００２７】
また、請求項１〜請求項７何れかに記載の中間調画像処理装置においては、更に請求項８に記載のように、
前記代表濃度値と前記閾値との誤差を検出し、該誤差の検出された記録マトリックスの近傍に位置する所定の記録マトリックスにおける代表濃度値を、前記検出した誤差に応じて補正する補正手段を備え、
前記比較手段は、該補正された代表濃度値と前記閾値とを比較し、その比較結果に応じて、前記出力ドット数を決定する、ようにしてもよい。
【００２８】
このように構成された中間調画像処理装置によれば、補正手段が、代表濃度値と閾値との誤差を検出し、誤差の検出された記録マトリックスの近傍に位置する所定の記録マトリックスにおける代表濃度値を検出した誤差に応じて補正し、更に、比較手段は、補正された代表濃度値と閾値とを比較し、その比較結果に応じて、出力ドット数を決定する。
【００２９】
このため、誤差に応じて、近傍の記録マトリックスの代表濃度値を補正するので、入力画像データと出力画像データとの濃度値の差を、画像データ全体として低減することができる。
また、請求項８に記載の中間調画像処理装置においては、更に請求項９に記載のように、
前記代表濃度値算出手段と前記記憶手段と前記比較手段と前記ドット形成画素決定手段とにより中間調画像処理を行う第１中間調処理手段と、
前記記録マトリックス上の画素のうち出力ドットとして出力する画素を、ディザ法を用いて決定することにより中間調画像処理を行う第２中間調処理手段と、
印字条件に基づいて、前記第１中間調処理手段と前記第２中間調処理手段の何れかが適しているかを判定し、前記第１中間調処理手段が適していると判定された場合には、前記第２中間調処理手段の動作を禁止すると共に前記第１中間調処理手段を動作させ、前記第２中間調処理手段が適していると判定された場合には、前記第１中間調処理手段の動作を禁止すると共に前記第２中間調処理手段を動作させる判定手段とを備える、ようにしてもよい。
【００３０】
このように構成された中間調画像処理装置によれば、印字条件に基づいて、第１中間調処理手段と第２中間調処理手段の動作を切り換えることができる。
即ち、ディザ法を用いる第２中間調処理手段は、第１中間調処理手段よりも処理を速く実行することができるので、第１中間調処理手段を用いなくても周期的紋様が発生しない印字条件において第２中間調処理手段を用いると、周期的紋様の発生を抑えると共に、中間調処理を高速化することができる。
【００３１】
また、請求項９に記載の中間調画像処理装置においては、更に請求項１０に記載のように、
前記判定手段は、印字時のインクがイエロー色相に近い色相特性をもつインクであるか否かを判定し、イエロー色相に近い色相特性をもつインクであると判定された場合には、前記第１中間調処理手段の動作を禁止すると共に前記第２中間調処理手段を動作させ、イエロー色相に近い色相特性をもつインクでないと判定された場合には、前記第２中間調処理手段の動作を禁止すると共に前記第１中間調処理手段を動作させる、ようにしてもよい。
【００３２】
このように構成された中間調画像処理装置によれば、印字時のインクがイエロー色相に近い色相特性をもつインクである場合には第２中間調処理手段を動作させ、印字時のインクがイエロー色相に近い色相特性をもつインクでない場合には第１中間調処理手段を動作させる。
【００３３】
即ち、インクがイエロー色相に近い色相特性をもつ場合には周期的紋様が目立ちにくいため、簡便な判定で中間調画像処理の高速化ができる。
また、請求項１〜請求項１０何れかに記載の中間調画像処理装置においては、更に請求項１１に記載のように、
前記出力ドットは、ドット径の異なる複数の種類を有し、
前記閾値テーブルには、前記閾値に対応して前記各種類のドット径毎に設定された出力ドット数が予め設定されており、
前記比較手段は、前記代表濃度値と前記閾値とを比較し、前記閾値テーブルに基づいて、ドット径の種類毎の出力ドット数を決定し、
前記ドット形成画素決定手段は、ドット径の種類毎の出力ドット数に応じて、前記記録マトリックス上の画素のうち出力ドットとして出力する画素及びそのドット径を決定する、ようにしてもよい。
【００３４】
このように構成された中間調画像処理装置によれば、比較手段が代表濃度値と閾値とを比較し、閾値テーブルに基づいてドット径の種類毎の出力ドット数を決定する。そして、ドット形成画素決定手段が、ドット径の種類毎の出力ドット数に応じて記録マトリックス上の画素のうち出力ドットとして出力する画素及びそのドット径を決定する。
【００３５】
このため、画素の濃度値に応じて、ドット径の異なる出力ドットが決定されるので、入力画像データに対して、より細かい再現が可能な出力画像データを生成することができる。
なお、出力ドットに大・中・小ドットというような径による種類があるプリンタにおいて（例えば、インクジェットプリンタ）、小ドットを連続して吐出させることで画像を形成すると、ドット吐出の不安定性に起因して、画像内に白い線状の領域が視認されるという問題（以降、バンディングとも称す）が確認されている。
【００３６】
例えば、低解像度の画像形成においてはドット密度が低下するため、小ドットを密集させて吐出しても白地領域が必ず発生する。また、ノズルから吐出されるインクの着弾位置も理想的な位置から多少ずれているため、小ドットを密集させて画像を形成したとしてもドット間の白地領域の均一性は損なわれる。この不規則な白地領域が、画像形成後にバンディングとして視認される。
【００３７】
一方、高解像度の画像形成においてはドット密度が高まるため、ドット間の白地領域は低減される。よって、小ドットを密集させてもバンディングは視認されにくいといった現象が確認されている。
即ち、バンディングの発生は、解像度とドット径の組み合わせに依存し、解像度によっては大・中ドットでも発生する。
【００３８】
このようなことから、請求項１１に記載の中間調画像処理装置においては、更に請求項１２に記載のように、
前記閾値テーブルは、前記記録マトリックス上の全ての画素が特定の径のドットで出力されないように設定されている、ようにしてもよい。
【００３９】
このように構成された中間調画像処理装置によれば、記録マトリックス上の全ての画素が特定の径のドットで出力されない。
このため、記録マトリックス上の全ての画素を特定の径のドットで出力する出力画像データは生成されないので、バンディングの発生を抑えることができる。
【００４０】
また、請求項１２に記載の中間調画像処理装置においては、更に請求項１３に記載のように、
前記特定の径のドットは、最小液滴径のドットである、ようにしてもよい。
このように構成された中間調画像処理装置によれば、記録マトリックス上の全ての画素が最小液滴径のドットで出力されない。
【００４１】
即ち、バンディングは最小液滴径のドットで発生し易いので、特に、記録マトリックス上の全ての画素を最小液滴径のドットで出力する出力画像データを生成しないことにより、バンディングの発生を抑えることができる。
また請求項１４に記載の画像形成装置は、
請求項１〜請求項１０何れか記載の中間調画像処理装置を備える、ことを特徴とする。
【００４２】
このように構成された画像形成装置によれば、請求項１〜請求項１０何れかに記載の中間調画像処理装置により生成された出力画像データを用いて画像を形成することができる。
このため、周期的紋様の発生しない画像を形成することができる。
【００４３】
また請求項１５に記載のインクジェットプリンタは、
請求項１１〜請求項１３何れか記載の中間調画像処理装置を備える、ことを特徴とする。
このように構成されたインクジェットプリンタによれば、請求項１１〜請求項１３何れかに記載の中間調画像処理装置により生成された出力画像データを用いて画像を形成することができる。
【００４４】
このため、周期的紋様の発生しない画像を形成することができる。
また請求項１６に記載の画像処理プログラムは、
請求項１〜請求項１３何れか記載の中間調画像処理装置の前記各手段としてコンピュータを機能させる、ことを特徴とする。
【００４５】
このようなプログラムによって制御されるコンピュータシステムは、請求項１〜請求項１３に記載の中間調画像処理装置の一部を構成することができ、同中間調画像処理装置と同様の作用・効果を得ることができる。
なお、上述した色変換プログラムは、例えば、ＦＤ、ＣＤ−ＲＯＭなどの記録媒体、インターネットなどの通信回線網を介して、中間調画像処理装置自身、画像形成装置、これらを利用する利用者に提供されるものである。
【００４６】
また、上述した色変換装置を実行するコンピュータシステムとしては、例えば、中間調画像処理装置に内蔵されたコンピュータシステム、画像形成装置に内蔵されたコンピュータシステム、または中間調画像処理装置，画像形成装置に無線または有線の通信路を介してデータ通信可能に接続されたコンピュータシステムなどを利用することができる。
【００４７】
【発明の実施の形態】
以下、パーソナルコンピュータに本発明の中間調画像処理装置としての構成を適用したものを本発明の実施の形態１として説明する。
まず、パーソナルコンピュータ１００の構成を図１に基づいて説明する。
【００４８】
パーソナルコンピュータ（以降、ＰＣとする）１００は、図１に示すように、所定の処理プログラムに基づいて処理を実行するＣＰＵ１０１，記憶装置としてのハードディスク（以降、ＨＤＤとする）１０２，種々の制御プログラムが格納されたＲＯＭ１０３，外部装置から入力したデータ等を格納する各種メモリが設けられたＲＡＭ１０４，入出力インターフェース（以降、入出力Ｉ／Ｆとする）１０５，利用者により操作可能な複数の操作キー１０６ａおよび各種情報を表示する表示パネル１０６ｂからなるユーザインターフェース（以降、ユーザＩ／Ｆとする）１０６，通信用インターフェース（以降、通信用Ｉ／Ｆとする）１０７を備えている。
【００４９】
ＨＤＤ１０２には、ＣＰＵ１０１が中間調画像処理を実行するための中間調画像処理プログラム１０２ａと、中間調画像処理で用いる閾値テーブル１０２ｂの記憶領域が確保されている。
入出力Ｉ／Ｆ１０５は、上記各要素を相互に接続しているとともにスキャナ１０，デジタルカメラ２０，携帯電話３０と接続しており、画像の色情報をデータとしてもつ画像データが、スキャナ１０，デジタルカメラ２０，携帯電話３０からＰＣ１００に入力される。さらに、入出力Ｉ／Ｆ１０５はインクジェットプリンタ２００と接続しており、ＰＣ１００により中間調画像処理された画像データはインクジェットプリンタ２００に出力される。
【００５０】
また、ユーザＩ／Ｆ１０６は、印刷を開始するための操作が操作キー１０６ａにより行われた場合にはＣＰＵ１０１に印刷開始指令を出力する。また、閾値テーブル１０２ｂをユーザが選択するための操作が行われた時にはユーザ選択指令を，後述する登録済テーブルから閾値テーブル１０２ｂを選択するための操作が行われた時には登録済テーブル選択指令をＣＰＵ１０１に出力する。
【００５１】
また、通信用Ｉ／Ｆ１０７はネットワーク４０と接続しており、画像データがネットワーク４０からＰＣ１００に入力される。
このように構成されたＰＣ１００において、まず、ＣＰＵ１０１は、所定の処理プログラムによって、スキャナ１０，デジタルカメラ２０，携帯電話３０もしくはネットワーク４０から入力される画像データを取り込んで、例えばＨＤＤ１０２に記憶する。そして、ユーザＩ／Ｆ１０６からＣＰＵ１０１に印刷開始指令が入力されると、ＣＰＵ１０１は、画像データをＨＤＤ１０２からＲＡＭ１０４へ格納する。その後にＣＰＵ１０１は、画像データをＲＡＭ１０４からＣＰＵ１０１に読み込み、中間調画像処理プログラム１０２ａに基づいて中間調画像処理する。そして、中間調画像処理した画像データを入出力Ｉ／Ｆ１０５を介してインクジェットプリンタ２００に出力する。
【００５２】
次に、本発明の中間調画像処理の概要を図２に基づいて説明する。
本実施例では、入力画像データを、横２画素×縦２画素の記録マトリックスに分割し、分割した記録マトリックス毎に処理を行う。入力画像データのＸ軸に沿う１ラインの記録マトリックスを左側から順に注目マトリックスとして処理し、最右端の記録マトリックスの処理が済むとＹ軸方向にそって２画素分移動することを繰り返して画像処理が行われる。
【００５３】
例として、記録マトリックスＭ１を注目マトリックスとして処理する場合を説明する。
入力画像データを構成する画素データは０〜２５５の範囲で濃度値をもち、記録マトリックスＭ１の画素は、図２に示すように、左上から順に１００，２００，１５０，１００の濃度値をもっているとする。
【００５４】
まず、記録マトリックスＭ１の画素の濃度値を加算することで、加算値５５０を得る（図２（１）参照）。
そして、記録マトリックスＭ１の周囲の記録マトリックスで発生した誤差値は、後述する分散マトリックスに基づいて、記録マトリックスＭ１に加算される。図２では記録マトリックスＭ２，Ｍ３，Ｍ４で発生した誤差値（図２では７０）が記録マトリックスＭ１に加算され、補正値が６２０となったとして説明を続ける（図２（２）参照）。
【００５５】
この補正値を、閾値テーブルと比較し、出力ドットの組み合わせを決定する。
閾値テーブルには、図２に示すように、閾値とそれに対する出力ドットの組み合わせが記述されている。なお、出力ドットには大・中・小ドットの３つの種類がある。
【００５６】
そして、補正値は６２０であるので、閾値６００に対応する組み合わせの（０，小，中，大）の組み合わせが選択される（図２（３）参照）。
さらに、選択された組み合わせと、画素の濃度値の大小関係によりドットが配置される。つまり、２００の濃度値をもつ画素が記録マトリックスＭ１で１番大きいので大ドットが配置され、１５０の濃度値をもつ画素が２番目に大きいので中ドットが配置される。
【００５７】
また、残りの２つの画素の濃度値は等しいので、小ドットを配置する画素を乱数により決定する。図２（４）では、左上の画素に小ドットが配置され、右下の画素にはドットが配置されない場合を示している。
このような手順で、ドットを配置される画素が決定される。
【００５８】
次に、図３を用いて、ＰＣ１００のＣＰＵ１０１が実行する印刷処理について説明する。
図３は、印刷処理を表すフローチャートである。この印刷処理はＰＣ１００が起動（電源ＯＮ）している間に繰り返し実行される処理である。
【００５９】
この印刷処理を実行すると、ＣＰＵ１０１は、まずＳ０１にて、印刷開始指令が入力したか否かを判断する。ここで、印刷開始指令が入力したと判断すると（Ｓ０１：ＹＥＳ）、Ｓ０２に処理を移す。一方、印刷開始指令が入力していないと判断すると（Ｓ０１：ＮＯ）、Ｓ０１の処理を繰り返す。
【００６０】
また、処理がＳ０２に移ると、ＲＡＭ１０４内に設けられたシアン指示フラグＦｃをセットする（Ｆｃ＝１）。この後、Ｓ０３に処理を移し、後述する中間調処理を行う。ここでは、シアンの画素データについて中間調処理を行う。
そして、Ｓ０４の処理でシアン指示フラグＦｃをクリアし（Ｆｃ＝０）、さらにＳ０５の処理で、ＲＡＭ１０４内に設けられたマゼンタ指示フラグＦｍをセットする（Ｆｍ＝１）。この後、Ｓ０６に処理を移し、後述する中間調処理を行う。ここでは、マゼンタの画素データについて中間調処理を行う。
【００６１】
この後、Ｓ０７の処理で指示フラグＦｍをクリアし（Ｆｍ＝０）、さらにＳ０８の処理で、ＲＡＭ１０４内に設けられたイエロー指示フラグＦｙをセットする（Ｆｙ＝１）。この後、Ｓ０９に処理を移し、後述する中間調処理を行う。ここでは、イエローの画素データについて中間調処理を行う。さらに、Ｓ１０の処理でイエロー指示フラグＦｙをクリアし（Ｆｍ＝０）、Ｓ１１の処理で、後述する中間調処理を行う。ここでは、ブラックの画素データについて中間調処理を行う。
【００６２】
そして、Ｓ１２に処理を移し、中間調処理されたデータをインクジェットプリンタ２００に出力する。そして、当該印刷処理を終了する。
次に、図３におけるＳ０３，Ｓ０６，Ｓ０９，Ｓ１１において行われる中間調処理を、図４を用いて説明する。図４は、中間調処理を表すフローチャートである。
【００６３】
この中間調処理を実行すると、ＣＰＵ１０１は、まずＳ２１にて画素データ読込処理を行う。
ＰＣ１００に入力される画像データは、横方向にＸ＿ＳＩＺＥ個、縦方向Ｙ＿ＳＩＺＥ個の画素データが並んでいる（Ｘ＿ＳＩＺＥ：入力データ横サイズ（Ｐｉｘｅｌ）：Ｙ＿ＳＩＺＥ：入力データ縦サイズ（Ｐｉｘｅｌ））。即ち、Ｘ＿ＳＩＺＥ個×Ｙ＿ＳＩＺＥ個の画素データＰ（Ｘ，Ｙ）から構成されている。Ｘは画素の横方向の座標値、Ｙは縦方向の座標値であり、Ｘについては０，１，２，・・・・，Ｘ＿ＳＩＺＥ、Ｙについては０，１，２，・・・・，Ｙ＿ＳＩＺＥの値が付されている。なお、Ｘ＿ＳＩＺＥ，Ｙ＿ＳＩＺＥは、画像データにより異なる。
【００６４】
また、画素データＰ（Ｘ，Ｙ）は、Ｃ（シアン）・Ｍ（マゼンタ）・Ｙ（イエロー）・Ｋ（ブラック）で定義される４種の色成分で構成されており、各成分は０〜２５５の８ビット２５６階調を有し、通常０は最暗部、２５５は最高明度を示す。また、シアンの画素データをＰｃ（Ｘ，Ｙ）、マゼンタの画素データをＰｍ（Ｘ，Ｙ）、イエローの画素データをＰｙ（Ｘ，Ｙ）、ブラックの画素データをＰｋ（Ｘ，Ｙ）と記載する。
【００６５】
この画素データ読込処理は、図５に示す手順で実行される。即ち、この画素データ読込処理では、ＣＰＵ１０１は、まずＳ５１にてフラグＦｃがセットされているか否か判断する。ここで、Ｆｃがセットされていると判断すると（Ｓ５１：ＹＥＳ）、Ｓ５２に処理を移し、例えばＨＤＤ１０２から、全ての（Ｘ，Ｙ）座標におけるシアンの画素データＰｃ（Ｘ，Ｙ）を読み込み、ＲＡＭ１０４に格納する。そして、当該画素データ読込処理を終了する。
【００６６】
一方、Ｓ５１にてフラグＦｃがセットされていないと判断すると（Ｓ５１：ＮＯ）、Ｓ５３に処理を移し、フラグＦｍがセットされているか否か判断する。ここで、Ｆｍがセットされていると判断すると（Ｓ５３：ＹＥＳ）、Ｓ５４に処理を移し、例えばＨＤＤ１０２から、全ての（Ｘ，Ｙ）座標におけるマゼンタの画素データＰｍ（Ｘ，Ｙ）を読み込み、ＲＡＭ１０４に格納する。そして、当該画素データ読込処理を終了する。
【００６７】
また、Ｓ５３にてフラグＦｍがセットされていないと判断すると（Ｓ５３：ＮＯ）、Ｓ５５に処理を移し、フラグＦｙがセットされているか否か判断する。ここで、Ｆｙがセットされていると判断すると（Ｓ５５：ＹＥＳ）、Ｓ５６に処理を移し、例えばＨＤＤ１０２から、全ての（Ｘ，Ｙ）座標におけるイエローの画素データＰｙ（Ｘ，Ｙ）を読み込み、ＲＡＭ１０４に格納する。そして、当該画素データ読込処理を終了する。
【００６８】
一方、Ｓ５５にてフラグＦｙがセットされていないと判断すると（Ｓ５５：ＮＯ）、Ｓ５７に処理を移し、全ての（Ｘ，Ｙ）座標におけるブラックの画素データＰｋ（Ｘ，Ｙ）を読み込み、ＲＡＭ１０４に格納する。そして、当該画素データ読込処理を終了する。
【００６９】
図４の中間調処理に戻り、Ｓ２１の処理が終了すると、Ｓ２２に処理を移し、イエロー指示フラグＦｙがセットされているか否か判断する。ここで、Ｆｙがセットされていないと判断すると（Ｓ２２：ＮＯ）、Ｓ２３に処理を移し、画素データの座標値の初期設定としてＸおよびＹを０にセットする。
【００７０】
そして、Ｓ２４に処理を移して、Ｙが奇数であるか否か判断する。ここで、奇数であると判断すると（Ｓ２４：ＹＥＳ）、Ｓ２６に処理を移す。一方、奇数でないと判断すると（Ｓ２４：ＮＯ）、Ｓ２５に処理を移し、ＸおよびＹの値に対応する画素データＰｘ（Ｘ，Ｙ）を入力バッファＢｕｆ１（Ｘ）に格納する（ｘはｃ，ｍ，ｙ，ｋの何れかで、画素データの色を示す）。
【００７１】
Ｓ２６に処理が移ると、Ｘが奇数であるか否か判断する。ここで、奇数であると判断すると（Ｓ２６：ＹＥＳ）、Ｓ２８に処理を移す。一方、奇数でないと判断すると（Ｓ２６：ＮＯ）、Ｓ２７に処理を移し、ＸおよびＹの値に対応する画素データＰｘ（Ｘ，Ｙ）を入力バッファＢｕｆ２に格納する。
【００７２】
Ｓ２８に処理が移ると、画素データＰｘ（Ｘ，Ｙ）に入力バッファＢｕｆ２，入力バッファＢｕｆ１（Ｘ），Ｂｕｆ１（Ｘ−１）を加算して、加算値Ｓｕｍ（Ｘ，Ｙ）を得る。つまり、座標（Ｘ，Ｙ），（Ｘ−１，Ｙ），（Ｘ，Ｙ−１），（Ｘ−１，Ｙ−１）における画素データを加算する。
【００７３】
次に、Ｓ２９に処理を移し、注目マトリックス周辺の記録マトリックスで発生した誤差ＥＤ（Ｘ，Ｙ）を分散マトリックスｍｔｒ（Ｘ，Ｙ）により集積して、補正量ＭＴＲ（Ｘ，Ｙ）を得る。例えば、注目マトリックスの左隣の記録マトリックスから２／５、直上の記録マトリックスから２／５、左上斜め隣の記録マトリックスから１／５というように（図２（２）参照）、周辺の記録マトリックスで発生した誤差に重み係数を乗算した後に総和をとり、補正量ＭＴＲ（Ｘ，Ｙ）としている。
【００７４】
続いて、Ｓ３０の処理において、補正量ＭＴＲ（Ｘ，Ｙ）に加算値Ｓｕｍ（Ｘ，Ｙ）を加算し、補正値ｎｅｗｄａｔａ（Ｘ，Ｙ）を得る。
そして、Ｓ３１に処理を移し、閾値処理を行う。
この閾値処理は、図６に示す手順で実行される。即ち、この閾値処理では、ＣＰＵ１０１は、まずＳ６１にて、後述する閾値テーブル選択処理において選択された閾値テーブルのデータを読み込む。
【００７５】
閾値テーブルは図１０に示すように、閾値Ｔｈｒｅ〔Ｎ〕〔Ｍ〕とそれに対する出力ドット組合せＯｕｔｌｅｖｅｌ〔Ｎ〕〔Ｍ〕が記述されており、出力ドットには大・中・小ドットの３つの種類がある。尚、出力ドット組合せＯｕｔｌｅｖｅｌには、（小，小，小，小）となる組み合わせは設定されていない。
【００７６】
さらに、閾値テーブルは複数用意され、閾値テーブル選択処理により閾値テーブルが選択される。
閾値テーブル選択処理により、図１０に示される閾値テーブルｍが選択されたとすると、Ｓ６２において、補正値ｎｅｗｄａｔａ（Ｘ，Ｙ）が閾値Ｔｈｒｅ〔ｎ〕〔ｍ〕より大きいか否かを判断する。ここで、大きいと判断すると（Ｓ６２：ＹＥＳ）、Ｓ６３にて、出力ドット組合せＯｕｔｌｅｖｅｌにＯｕｔｌｅｖｅｌ〔ｎ〕〔ｍ〕を格納する。そして、Ｓ６４において、出力ドット組合せＯｕｔｌｅｖｅｌ〔ｎ〕〔ｍ〕に対応した相対濃度値Ｒｅｌａｔｉｖｅ〔ｎ〕〔ｍ〕と補正値ｎｅｗｄａｔａ（Ｘ，Ｙ）との差を誤差ＥＤ（Ｘ，Ｙ）に格納し、当該閾値処理を終了する。
【００７７】
上述の相対濃度値Ｒｅｌａｔｉｖｅ〔Ｎ〕〔Ｍ〕は、出力ドット組合せＯｕｔｌｅｖｅｌ〔Ｎ〕〔Ｍ〕毎に決められている。大ドット・中ドット・小ドットの相対濃度値は例えば、夫々２５５，２００，６０と設定されており、例えば、（０，小，中，大）の出力ドット組合せの場合の相対濃度値は、０＋６０＋２００＋２５５＝５１５となる。
【００７８】
一方、Ｓ６２において、閾値Ｔｈｒｅ〔ｎ〕〔ｍ〕より大きくないと判断すると（Ｓ６２：ＮＯ）、Ｓ６５にて、補正値ｎｅｗｄａｔａ（Ｘ，Ｙ）が閾値Ｔｈｒｅ〔ｎ−１〕〔ｍ〕より大きいか否かを判断する。ここで、大きいと判断すると（Ｓ６５：ＹＥＳ）、Ｓ６６にて、出力ドット組合せＯｕｔｌｅｖｅｌにＯｕｔｌｅｖｅｌ〔ｎ−１〕〔ｍ〕を格納する。そして、Ｓ６７において、出力ドット組合せＯｕｔｌｅｖｅｌ〔ｎ−１〕〔ｍ〕に対応した相対濃度値Ｒｅｌａｔｉｖｅ〔ｎ−１〕〔ｍ〕と補正値ｎｅｗｄａｔａ（Ｘ，Ｙ）との差を誤差ＥＤ（Ｘ，Ｙ）に格納し、当該閾値処理を終了する。
【００７９】
同様に、補正値ｎｅｗｄａｔａ（Ｘ，Ｙ）と閾値とを、閾値が大きいものから比較していくことで、補正値ｎｅｗｄａｔａ（Ｘ，Ｙ）に対応する閾値を決める。
このようにして、処理がＳ６８に移ると、補正値ｎｅｗｄａｔａ（Ｘ，Ｙ）が閾値Ｔｈｒｅ〔１〕〔ｍ〕より大きいか否かを判断する。ここで、大きいと判断すると（Ｓ６８：ＹＥＳ）、Ｓ６９にて、出力ドット組合せＯｕｔｌｅｖｅｌにＯｕｔｌｅｖｅｌ〔１〕〔ｍ〕を格納する。そして、Ｓ７０において、出力ドット組合せＯｕｔｌｅｖｅｌ〔１〕〔ｍ〕に対応した相対濃度値Ｒｅｌａｔｉｖｅ〔１〕〔ｍ〕と補正値ｎｅｗｄａｔａ（Ｘ，Ｙ）との差を誤差ＥＤ（Ｘ，Ｙ）に格納し、当該閾値処理を終了する。
【００８０】
一方、閾値Ｔｈｒｅ〔１〕〔ｍ〕より大きくないと判断すると（Ｓ６８：ＮＯ）、Ｓ７１において、出力ドット組合せＯｕｔｌｅｖｅｌに０を格納する。そして、Ｓ７２において、補正値ｎｅｗｄａｔａ（Ｘ，Ｙ）を誤差ＥＤ（Ｘ，Ｙ）に格納し、当該閾値処理を終了する。
【００８１】
図４の中間調処理に戻り、Ｓ３１の閾値処理が終了すると、Ｓ３２に処理を移し、出力値Ｏｕｔｄａｔａ（Ｘ，Ｙ）に出力ドット組合せＯｕｔｌｅｖｅｌを格納する。
そして、Ｓ３３に処理を移し、ドット配置処理を行う。
【００８２】
このドット配置処理は、図７に示す手順で実行される。即ち、このドット配置処理では、ＣＰＵ１０１は、まずＳ８１にて、閾値処理で選択された出力ドット組合せに対応する出力値Ｏｕｔｄａｔａ（Ｘ，Ｙ）が簡易ソートを実施するものであるか否かを図１７に示すソート番号にて判断する。ソート番号とは、後述の各種ソート法を識別するためのものである。この処理の目的は以下である。
【００８３】
出力ドット配置が入力値の大小関係に従う場合は基本的に入力値をサイズ順にソートする必要があるが、（０，０，０，小）のように全ての順位をソートしなくても、ある特定の順位さえ判別できればすむケースもあるため、計算量の低減の面から、ソート法の分岐を行う。簡易ソート法は、図１７に示す通り各閾値Ｔｈｒｅ〔Ｎ〕ごとに“ドットの組み合わせ”同様あらかじめメモリに記憶されているソート番号が正の際に実施される。また、ソート番号が負の際は、一般的に提案されている公知の各種ソート手法（バブルソート法、ヒープソート法、クイックソート法、シェルソート法等）による手法が実施される。
【００８４】
Ｓ８１にて、ソート番号が正であるときは、簡易ソートを実施する出力ドット組み合わせであると判断し（Ｓ８１：ＹＥＳ）、Ｓ８２に処理を移し、最大濃度画素を１つ抽出する、最大濃度画素を２つ抽出するといった各閾値Ｔｈｒｅ〔Ｎ〕のソート番号ごとに決められたソート法を抽出する。図１７の例では、ソート番号０の時はソートを実施しない、ソート番号１のときは最大濃度画素を１つ抽出する、ソート番号２のときは最大濃度画素を２つ抽出する、と決定されている。
【００８５】
Ｓ８３にて、図１２に示すように、記録マトリックスの画素に０，１，２，３の番号を付す。そして、Ｓ８４にて乱数を発生させ、Ｓ８５において、その乱数を４で割った余り（＝Ａ）を算出する。そして、Ｓ８６の処理において、Ａ番目の画素をソート開始位置とする。例えば、乱数を４で割った余りが２の場合は２番目の画素をソート開始位置とする。
【００８６】
そして、Ｓ８７に処理を移し、Ｓ８２にて選択させたソート法に従い、ソートを実施し、Ｓ８９にて、出力値Ｏｕｔｄａｔａ（Ｘ，Ｙ）と抽出した画素とに基づき、記録マトリックス内の画素にドットを配置する。その後、当該ドット配置処理を終了する。
【００８７】
一方、Ｓ８１にて、簡易ソートを実施する出力ドット組合せでないと判断すると（Ｓ８１：ＮＯ）、Ｓ８８に処理を移し、通常ソート処理を行う。この処理を終了するとＳ８９に処理を移し、出力値Ｏｕｔｄａｔａ（Ｘ，Ｙ）とソートした画素とに基づき、記録マトリックス内の画素にドットを配置する。その後、当該ドット配置処理を終了する。
【００８８】
この通常ソート処理は、図８に示す手順で実行される。即ち、この通常ソート処理では、ＣＰＵ１０１は、まずＳ１０１にて、ソートを実施し、記録マトリックス内の画素を大きい順に並び替える。使用するソート法は、一般的に提案されている公知の各種ソート手法（バブルソート法、ヒープソート法、クイックソート法、シェルソート法等）に順ずるものとし、各ソート法にはそれぞれメモリ上にソート番号が付けられているものとする。
【００８９】
そして、Ｓ１０２に処理を移し、濃度値が同値の画素があるか否かを判断する。ここで、同値の画素があると判断すると（Ｓ１０２：ＹＥＳ）、Ｓ１０３にて、同値の画素の数（＝ｋ）を算出する。そして、同値の画素に０から（ｋ−１）の整数値の番号を付す。例えば、同値の画素が３個ある場合には、同値の画素に０，１，２の番号を付す。そして、Ｓ１０５にて乱数を発生させ、Ｓ１０６において、その乱数をｋで割った余り（＝Ｂ）を算出する。
【００９０】
さらに、Ｓ１０７の処理において、Ｂ番目の画素は抽出済みであるか否かを判断する。ここで、Ｂ番目の画素は抽出済みでないと判断すると（Ｓ１０７：ＮＯ）、Ｓ１０８にて、Ｂ番目の画素を抽出する。例えば、ｋ＝３の場合に乱数を３で割った余りが２であるならば２番目の画素を抽出する。一方、Ｓ１０７において、Ｂ番目の画素は抽出済みであると判断すると（Ｓ１０７：ＹＥＳ）、Ｓ１０５に処理を移し、上述の処理を繰り返す。
【００９１】
さらに、Ｓ１０９に処理が移ると、全画素を抽出したか否かを判断する。ここで全画素を抽出していないと判断すると（Ｓ１０９：ＮＯ）、Ｓ１０５に処理を移し、上述の処理を繰り返す。また、全画素を抽出したと判断すると（Ｓ１０９：ＹＥＳ）、Ｓ１１０に処理を移し、抽出した順番に同値の画素を並び替えて、当該通常ソート処理を終了する。
【００９２】
一方、Ｓ１０２において、同値の画素がないと判断すると（Ｓ１０２：ＮＯ）、当該通常ソート処理を終了する。
図４の中間調処理に戻り、Ｓ３３のドット配置処理が終了すると、Ｓ３４に処理を移し、Ｘをインクリメントする。その後、Ｓ３５に処理を移し、Ｘの値がＸ＿ＳＩＺＥより大きいか否か判断する。ここで、Ｘの値がＸ＿ＳＩＺＥ以下であると判断すると（Ｓ３５：ＮＯ）、Ｓ２４に処理を移し上記の処理を繰り返す。一方、Ｘの値がＸ＿ＳＩＺＥより大きいと判断すると（Ｓ３５：ＹＥＳ）、Ｓ３６に処理を移し、Ｘを０にセットするとともにＹをインクリメントする。その後、Ｓ３７に処理を移し、Ｙの値がＹ＿ＳＩＺＥより大きいか否か判断する。ここで、Ｙの値がＹ＿ＳＩＺＥ以下であると判断すると（Ｓ３７：ＮＯ）、Ｓ２４に処理を移し上記の処理を繰り返す。一方、Ｙの値がＹ＿ＳＩＺＥより大きいと判断すると（Ｓ３７：ＹＥＳ）、当該中間調処理を終了する。
【００９３】
一方、Ｓ２２に処理において、Ｆｙがセットされていると判断すると（Ｓ２２：ＹＥＳ）、Ｓ３８に処理を移し、ディザ処理を行う。これは、ディザ法により画像データの有する階調性をドットの分布により表現する処理である。ディザ法は周知の技術であるので説明は省略する。そして、ディザ処理を終了すると当該中間調処理を終了する。
【００９４】
次に、図９を用いて、ＰＣ１００のＣＰＵ１０１が実行する閾値テーブル選択処理について説明する。
図９は、閾値テーブル選択処理を表すフローチャートである。この閾値テーブル選択処理はＰＣ１００が起動（電源ＯＮ）している間に繰り返し実行される処理である。
【００９５】
この閾値テーブル選択処理を実行すると、ＣＰＵ１０１は、まずＳ１２１にて、ユーザ選択指令が入力したが否かを判断する。ここで、ユーザ選択指令が入力したと判断すると（Ｓ１２１：ＹＥＳ）、Ｓ１２２に処理を移し、登録済テーブル選択指令が入力したが否かを判断する。ここで、登録済テーブル選択指令が入力したと判断すると（Ｓ１２２：ＹＥＳ）、Ｓ１２３の処理においてユーザ閾値テーブル選択処理を行う。ここでは、ＨＤＤ１０２に記憶されている閾値テーブルの中から、ユーザが操作キー１０６ａを操作することで閾値テーブルを選択する。そして、Ｓ１２４において、選択したテーブルを、上記中間調処理で使用する閾値テーブルとして決定し、当該閾値テーブル選択処理を終了する。
【００９６】
また、Ｓ１２２において、登録済テーブル選択指令が入力していないと判断すると（Ｓ１２２：ＮＯ）、Ｓ１０５の処理においてユーザ閾値テーブル編集処理を行う。ここでは、ユーザが操作キー１０６ａを操作することで、新たに閾値テーブルを編集する。そして、Ｓ１２６において、新たに編集した閾値テーブルをＨＤＤ１０２に保存し、さらにＳ１２４において、保存した閾値テーブルを上記中間調処理で使用する閾値テーブルとして決定し、当該閾値テーブル選択処理を終了する。
【００９７】
一方、Ｓ１２１において、ユーザ選択指令が入力していないと判断すると（Ｓ１２１：ＮＯ）、Ｓ１２７に処理を移し、印刷開始指令が入力したが否かを判断する。ここで、印刷開始指令が入力したと判断すると（Ｓ１２７：ＹＥＳ）、Ｓ１２８に処理を移し、閾値テーブル選択処理を行う。ここでは、閾値テーブルを印刷条件（解像度，印刷メディアなど）により選択する。
【００９８】
図１１に示すように、印刷条件により選択する閾値テーブルの番号が記述されている選択用テーブルがＨＤＤ１０２に格納されており、この選択番号を付された閾値テーブルが選択される。そして、Ｓ１２４に処理を移し、Ｓ１２８において選択したテーブルを上記中間調処理で使用する閾値テーブルとして決定し、当該閾値テーブル選択処理を終了する。
【００９９】
また、Ｓ１２７において、印刷開始指令が入力していないと判断すると（Ｓ１２７：ＮＯ）、当該閾値テーブル選択処理を終了する。
［本発明との対応関係］
以上説明した実施形態において、図４におけるＳ２８の処理は本発明における代表濃度値算出手段、図４におけるＳ３１の処理は本発明における比較手段、図４におけるＳ３３の処理は本発明におけるドット形成画素決定手段である。
【０１００】
また、図９におけるＳ１２３，Ｓ１２８の処理は本発明における選択手段、図９におけるＳ１２５の処理は本発明における設定手段、図４におけるＳ２９およびＳ３０の処理は本発明における補正手段である。
また、図４におけるＳ２３〜Ｓ３７の処理は本発明における第１中間調処理手段、図４におけるＳ３８の処理は本発明における第２中間調処理手段、図４におけるＳ２２の処理は本発明における判定手段である。
【０１０１】
また、ＨＤＤ１０２は本発明における記憶手段、ユーザＩ／Ｆ１０６は本発明における選択入力手段および設定入力手段である。
また、加算値は、本発明における代表濃度値である。
また、小ドットは、本発明における最小液滴径のドットである。
【０１０２】
［効果］
このように構成されたＰＣ１００によれば、図４におけるＳ２８の処理により、記録マトリックスの全ての画素における濃度値の加算値Ｓｕｍ（Ｘ，Ｙ）を算出し、更に図４におけるＳ２９およびＳ３０の処理により補正値ｎｅｗｄａｔａ（Ｘ，Ｙ）を算出する。そして、補正値ｎｅｗｄａｔａ（Ｘ，Ｙ）と閾値Ｔｈｒｅ〔Ｎ〕〔Ｍ〕とを比較し、更に図４におけるＳ３１の処理により、閾値テーブルに基づいて出力ドット組合せＯｕｔｌｅｖｅｌを決定する。そして、図４におけるＳ３３の処理により、濃度値の大きい画素に優先的にドットが出力され、濃度値が同じ画素がある場合には、乱数によりドットを出力する画素が決まる。
【０１０３】
このため、記録マトリックス上の画素のうち出力ドットとして出力する画素は不規則に変化する。したがって、入力画像データの中に濃度値の変化が小さい領域が連続して存在する場合でも、同一の出力ドット配置の記録マトリックスが連続する出力画素データを生成することがない。即ち、周期的紋様の発生しない出力画像データを生成することができる。
【０１０４】
さらに、濃度値の大きい画素に優先的にドットが出力されるので、濃度値の大きい画素にドットが出力されないという状況が発生することを防止することができ、入力画像データに対して、濃淡の再現性が良好な出力画像データを生成することができる。
【０１０５】
また、図４におけるＳ３１の処理により、補正値ｎｅｗｄａｔａ（Ｘ，Ｙ）に応じて様々な出力ドット組合せＯｕｔｌｅｖｅｌを決定することができる。
このため、出力ドットとして出力する画素を、補正値ｎｅｗｄａｔａ（Ｘ，Ｙ）に応じて様々に変えることができ、入力画像データに対して、より細かい再現が可能な出力画像データを生成することができる。
【０１０６】
また、図９におけるＳ１２８の処理により、印字条件に基づいて閾値テーブルを選択し、その閾値テーブルに基づいて出力ドット組合せＯｕｔｌｅｖｅｌを決定する。
このため、印字条件に最適な閾値テーブルを選択することができ、印字条件に応じて最適な出力画像データを生成することができる。
【０１０７】
また、図９におけるＳ１２３の処理により、操作者の操作により閾値テーブルを選択し、その閾値テーブルに基づいて出力ドット組合せＯｕｔｌｅｖｅｌを決定する。
このため、連続使用による劣化から画像形成装置の印字特性が変化した際にも、印字特性の変化に対応して、操作者の判断に基づき好適な出力画像データを生成することができる。
【０１０８】
また、図９におけるＳ１２５の処理により、操作者の操作により、閾値テーブルにおける閾値と出力ドット組合せＯｕｔｌｅｖｅｌとを任意に設定することができる。
このため、好適な出力画像データを生成するための閾値と出力ドット組合せＯｕｔｌｅｖｅｌを設定と不適な出力画像データを生成する設定の除外を操作者が行うことができるので、操作者の判断に基づき最適な出力画像データを生成することができる。
【０１０９】
また、図４におけるＳ２９とＳ３０の処理により、誤差ＥＤ（Ｘ，Ｙ）を分散マトリックスｍｔｒ（Ｘ，Ｙ）により集積して補正値ｎｅｗｄａｔａ（Ｘ，Ｙ）を算出し、更に、図４におけるＳ３１の処理により、補正値ｎｅｗｄａｔａ（Ｘ，Ｙ）と閾値とを比較し、その比較結果に応じて、出力ドット組合せＯｕｔｌｅｖｅｌを決定する。
【０１１０】
このため、誤差に応じて、近傍の記録マトリックスの加算値を補正するので、入力画像データと出力画像データとの濃度値の差を、画像データ全体として低減することができる。
また、図４におけるＳ２２の処理により、イエロー指示フラグＦｙがセットされている場合には図４におけるＳ３８の処理を行い、イエロー指示フラグＦｙがセットされていない場合には図４におけるＳ２３〜Ｓ３７の処理を行う。
【０１１１】
即ち、インクがイエローの場合には周期的紋様が目立ちにくいため、簡便な判定で中間調処理の高速化ができる。
また、図４におけるＳ３１の処理により、補正値ｎｅｗｄａｔａ（Ｘ，Ｙ）と閾値Ｔｈｒｅ〔Ｎ〕〔Ｍ〕とを比較し、閾値テーブルに基づいて出力ドット組合せＯｕｔｌｅｖｅｌを決定する。そして、図４におけるＳ３３の処理により、ドット径の種類毎の出力ドット数に応じて記録マトリックス上の画素のうち出力ドットとして出力する画素及びそのドット径を決定する。
【０１１２】
このため、画素の濃度値に応じて、ドット径の異なる出力ドットが決定されるので、入力画像データに対して、より細かい再現が可能な出力画像データを生成することができる。
また、記録マトリックス上の全ての画素が小ドットで出力されない。
【０１１３】
即ち、記録マトリックス上の全ての画素を小ドットで出力するとバンディングが発生し易いので、記録マトリックス上の全ての画素を小ドットで出力する出力画像データを生成しないことにより、バンディングの発生を抑えることができる。
【０１１４】
（実施の形態２）
以下、本発明の実施の形態２について図面を参照しながら説明する。
まず、インクジェットプリンタ２００の構成を図１４に基づいて説明する。
インクジェットプリンタ２００は、図１４に示すように、所定の処理プログラムに基づいて処理を実行するＣＰＵ２０１，種々の制御プログラムが格納されたＲＯＭ２０３，外部装置から入力したデータ等を格納する各種メモリが設けられたＲＡＭ２０４，入出力Ｉ／Ｆ２０５，利用者により操作可能な複数の操作キー２０６ａおよび各種情報を表示する表示パネル２０６ｂからなるユーザＩ／Ｆ２０６と，プリンタエンジン用インターフェース（以降、プリンタエンジン用Ｉ／Ｆとする）２０７とプリンタエンジン２０８を備えている。
【０１１５】
ＲＯＭ２０３には、ＣＰＵ２０１が中間調画像処理を実行するための中間調画像処理プログラム２０３ａと、中間調画像処理で用いる閾値テーブル２０３ｂの記憶領域が確保されている。
上記入出力Ｉ／Ｆ２０５は、上記各要素を相互に接続しているとともにＰＣ等２１０の外部機器と接続しており、画素データがＰＣ等２１０からインクジェットプリンタ２００に入力される。
【０１１６】
プリンタエンジン２０８は、Ｙ，Ｍ，Ｃ，Ｋ各色のインクノズルを備え、大・中・小ドットによる印字が可能な印字ヘッドと、Ｙ，Ｍ，Ｃ，Ｋ各色のインクカートリッジ等から構成されており、インクを下方に噴射して、印刷媒体に画像を形成することができる。
【０１１７】
実施の形態１では印刷処理（図３参照）、中間調画像処理（図４参照）などの処理をＣＰＵ１０１が実行するが、本発明の実施の形態２ではインクジェットプリンタ２００内のＣＰＵ２０１が実行する。印刷処理、中間調画像処理などの方法は実施の形態１と同様であるので説明は省略する。
【０１１８】
［効果］
このように構成されたインクジェットプリンタ２００によれば、実施の形態１と同様にして生成した出力画像データを用いて画像を形成することができる。
このため、周期的紋様の発生しない画像を形成することができる。
【０１１９】
［変形例］
以上、本発明の実施の形態について説明したが、本発明の実施の形態は上記実施の形態に何ら限定されることなく、本発明の技術的範囲に属する限り種々の形態をとり得ることはいうまでもない。
【０１２０】
例えば、本実施形態においては、インクジェットプリンタ２００に画像形成装置としての構成を適用したものを例示した。しかし、画像形成の機能を有していれば、コピー機，ファクシミリ等についても同様に適用可能である。
また、本実施形態においては、代表濃度値として加算値を適用したものを例示した。しかし、記録マトリックス内の全画素における濃度値の平均値を代表濃度値として適用してもよい。
【０１２１】
また、本実施形態においては、出力ドットとして大・中・小ドットの種類があるものを例示した。しかし、１種類の出力ドットしかないものでの適用可能である。この場合の閾値テーブルは、閾値とそれに対応する１種類の出力ドット数とで構成される。そして、レーザープリンタのように１種類の出力ドットしか持たないプリンタについても適用可能である。
【０１２２】
また、本実施形態においては、閾値テーブルに（小，小，小，小）の組み合わせを含まないものを示したが、それに加えて、（中，中，中，中）や（大，大，大，大）の組み合わせを含まないものでもよい。
また、本実施形態においては、２×２の記録マトリックスにより中間調処理を行うものを示したが、４×４や８×８等のサイズの大きい記録マトリックスであってもよい。
【０１２３】
また、本実施形態においては、ドット配置処理として、図７の手順で構成されるものを示した。しかし、図１３において示される手順で構成されるものでもよい。
次に、このドット配置処理を、図１３を用いて説明する。図１３は、別の実施形態におけるドット配置処理を表すフローチャートである。
【０１２４】
このドット配置処理を実行すると、ＣＰＵ１０１は、まずＳ１４１にて、図１２に示すように、記録マトリックスの画素に０，１，２，３の番号を付す。そして、Ｓ１４２にて乱数を発生させ、Ｓ１４３において、その乱数を４で割った余り（＝Ａ）を算出する。
【０１２５】
次にＳ１４４において、Ａ番目の画素は抽出済みであるか否かを判断する。ここで、Ａ番目の画素は抽出済みでないと判断すると（Ｓ１４４：ＮＯ）、Ｓ１４５にて、Ａ番目の画素を抽出する。一方、Ｓ１４４において、Ａ番目の画素は抽出済みであると判断すると（Ｓ１４４：ＹＥＳ）、Ｓ１４２に処理を移し、上述の処理を繰り返す。
【０１２６】
さらに、Ｓ１４６に処理が移ると、全画素を抽出したか否かを判断する。ここで全画素を抽出していないと判断すると（Ｓ１４６：ＮＯ）、Ｓ１４２に処理を移し、上述の処理を繰り返す。また、全画素を抽出したと判断すると（Ｓ１４６：ＹＥＳ）、Ｓ１４７に処理を移し、抽出した順番に同値の画素を並び替える。そして、Ｓ１４８の処理において、出力値Ｏｕｔｄａｔａ（Ｘ，Ｙ）とソートした画素とに基づき、記録マトリックス内の画素にドットを配置する。その後、当該ドット配置処理を終了する。
【０１２７】
このように構成された中間調画像処理装置によれば、図１３におけるＳ１４１〜Ｓ１４８の処理により、出力値Ｏｕｔｄａｔａ（Ｘ，Ｙ）に応じて記録マトリックス上の画素のうち出力ドットとして出力する画素を、乱数により決定する。
このため、記録マトリックス上の画素のうち出力ドットとして出力する画素は不規則に変化する。したがって、入力画像データの中に濃度値の変化が小さい領域が連続して存在する場合でも、同一の出力ドット配置の記録マトリックスが連続する出力画像データを生成することがない。即ち、周期的紋様の発生しない出力画像データを生成することができる。
【図面の簡単な説明】
【図１】実施の形態１における中間調画像処理装置の構成を表すブロック図。
【図２】実施の形態における中間調画像処理の概要説明図。
【図３】実施の形態における印刷処理手順を示すフローチャート。
【図４】実施の形態における中間調処理手順を示すフローチャート。
【図５】実施の形態における画素データ読込処理手順を示すフローチャート。
【図６】実施の形態における閾値処理手順を示すフローチャート。
【図７】実施の形態におけるドット配置処理手順を示すフローチャート。
【図８】実施の形態における通常ソート処理手順を示すフローチャート。
【図９】実施の形態における閾値テーブル選択処理手順を示すフローチャート。
【図１０】実施の形態における閾値テーブルの構成を説明する図。
【図１１】実施の形態における選択用テーブルの構成を説明する図。
【図１２】実施の形態におけるソートの手順を説明する図。
【図１３】別の実施の形態におけるドット配置処理手順を示すフローチャート。
【図１４】実施の形態２におけるインクジェットプリンタの構成を表すブロック図。
【図１５】誤差拡散処理の構成を説明する図。
【図１６】従来の中間調画像処理の構成を説明する図。
【図１７】実施の形態におけるソート番号を説明する図。
【符号の説明】
１０…スキャナ１０、２０…デジタルカメラ、３０…携帯電話、１００…ＰＣ、１０１…ＣＰＵ、１０２…ＨＤＤ、１０３…ＲＯＭ、１０４…ＲＡＭ、１０５…入出力インターフェース、１０６…ユーザインターフェース、１０６ａ…操作キー、１０６ｂ…表示パネル、１０７…通信用インターフェース、２００…インクジェットプリンタ、２０１…ＣＰＵ、２０３…ＲＯＭ、２０４…ＲＡＭ、２０５…入出力インターフェース、２０６…ユーザインターフェース、２０６ａ…操作キー、２０６ｂ…表示パネル、２０７…プリンタエンジン用インターフェース、２０８…プリンタエンジン、２１０…ＰＣ等。
【図１】
2004363938.tif 000003
【図２】
2004363938.tif 000004
【図３】
2004363938.tif 000005
【図４】
2004363938.tif 000006
【図５】
2004363938.tif 000007
【図６】
2004363938.tif 000008
【図７】
2004363938.tif 000009
【図８】
2004363938.tif 000010
【図９】
2004363938.tif 000011
【図１０】
2004363938.tif 000012
【図１１】
2004363938.tif 000013
【図１２】
2004363938.tif 000014
【図１３】
2004363938.tif 000015
【図１４】
2004363938.tif 000016
【図１５】
2004363938.tif 000017
【図１６】
2004363938.tif 000018
【図１７】
2004363938.tif 000019