(57)【要約】      （修正有）【課題】出力画像のぼやけをなくし、入力に忠実な出力を得る画像処理装置を提供する。【解決手段】入力画像を複数画素から構成される画素群に分割し、当該画素群単位に多値ディザマトリックスを適用することで入力階調値に対して２種類以上の階調を有する出力階調値に変換する画像処理装置において、前記入力階調値から前記画素群の重心位置を決定する重心位置決定手段と、前記画素群の重心位置に前記多値ディザマトリックスの中心を配置させる配置手段と、前記配置された多値ディザマトリックスと前記画素群に含まれる前記各画素の前記入力階調値とを比較して前記出力階調値を得る出力手段と、前記出力手段よって前記画素群内の前記入力階調値の合計に基づく理想階調値が得られなかったとき、前記画素群内の前記出力階調値の合計が略前記理想階調値となるよう補足処理を行う補足処理手段と、を備えることを特徴としている。【選択図】  図１０
2006325136.tif 000002
【特許請求の範囲】
【請求項１】
入力画像を複数画素から構成される画素群に分割し、当該画素群単位に多値ディザマトリックスを適用することで入力階調値に対して２種類以上の階調を有する出力階調値に変換する画像処理装置において、
前記画素群に含まれる前記各画素の前記入力階調値から前記画素群の重心位置を決定する重心位置決定手段と、
前記画素群の重心位置に前記多値ディザマトリックスの中心を配置させる配置手段と、
前記配置された多値ディザマトリックスと前記画素群に含まれる前記各画素の前記入力階調値とを比較して前記出力階調値を得る出力手段と、
前記出力手段によって前記画素群内の前記入力階調値の合計に基づく理想階調値が得られなかったとき、前記画素群内の前記出力階調値の合計が略前記理想階調値となるよう補足処理を行う補足処理手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
請求項１記載の画像処理装置において、
前記補足処理手段は、前記出力手段によって得られた前記出力階調値をリセットし、前記画素群内において前記入力階調値の大きい前記画素順に前記理想階調値を配分する処理により前記補足処理を行うことを特徴とする画像処理装置。
【請求項３】
請求項１記載の画像処理装置において、
前記補足処理手段は、前記出力手段によって得られた前記出力階調値をリセットし、前記多値ディザマトリックスよりもドット密度が高い多値ディザマトリックスを用いて前記出力階調値を得る処理により前記補足処理を行うことを特徴とする画像処理装置。
【請求項４】
請求項１記載の画像処理装置において、
前記補足処理手段は、前記理想階調値から前記出力階調値の合計値を減算した不足階調値を前記重心位置に近いドット生成を示す出力階調値が出力されていない画素に配分する処理により前記補足処理を行うことを特徴とする画像処理装置。
【請求項５】
請求項１乃至４記載の画像処理装置において、
前記出力手段は、前記理想階調値が得られたとき、前記画素群内における前記出力階調値を得る処理を終了させることを特徴とする画像処理装置。
【請求項６】
請求項１乃至４記載の画像処理装置において、
前記出力手段は、前記重心位置に最も近い画素から順番に出力階調値を得ることを特徴とする画像処理装置。
【請求項７】
請求項１乃至４記載の画像処理装置において、
前記多値ディザマトリックスには、前記入力階調値と前記出力階調値との対応関係を示すテーブルのテーブル番号が格納され、
前記出力手段は、前記画素群に含まれる各画素位置に対応する前記多値ディザマトリックスのテーブル番号を参照することで前記入力階調値に対応する出力階調値を得ることを特徴とする画像処理装置。
【請求項８】
請求項１乃至４記載の画像処理装置において、
前記多値ディザマトリックスには閾値が格納され、
前記出力手段は、前記閾値と前記入力階調値とを比較することで前記出力階調値を得ることを特徴とする画像処理装置。
【請求項９】
入力画像を複数画素から構成される画素群に分割し、当該画素群単位に多値ディザマトリックスを適用することで入力階調値に対して２種類以上の階調を有する出力階調値に変換する画像処理装置において、
前記画素群に含まれる前記各画素の前記入力階調値から前記画素群の重心位置を決定する重心位置決定手段と、
前記画素群の重心位置と、前記多値ディザマトリックスで最もドットが生成され易い画素位置とが略一致するように前記多値ディザマトリックスを配置する配置手段と、
前記配置された多値ディザマトリックスと前記画素群に含まれる前記各画素の前記入力階調値とを比較して前記出力階調値を得る出力手段と、
前記出力手段によって前記画素群内の前記入力階調値の合計に基づく理想階調値が得られたかったとき、前記画素群内の前記出力階調値の合計が略前記理想階調値となるよう補足処理を行う補足処理手段と、
を備えることを特徴とする画像処理装置。
【請求項１０】
入力画像を複数画素から構成される画素群に分割し、当該画素群単位に多値ディザマトリックスを適用することで入力階調値に対して２種類以上の階調を有する出力階調値に変換する画像処理方法において、
前記画素群に含まれる前記各画素の前記入力階調値から前記画素群の重心位置を決定する重心位置決定工程と、
前記画素群の重心位置に前記多値ディザマトリックスの中心を配置させる配置工程と、
前記配置された多値ディザマトリックスと前記画素群に含まれる前記各画素の前記入力階調値とを比較して前記出力階調値を得る出力工程と、
前記出力工程によって前記画素群内の前記入力階調値の合計に基づく理想階調値が得られなかったとき、前記画素群内の前記出力階調値の合計が略前記理想階調値となるよう補足処理を行う補足処理工程と、
を備えることを特徴とする画像処理方法。
【請求項１１】
入力画像を複数画素から構成される画素群に分割し、当該画素群単位に多値ディザマトリックスを適用することで入力階調値に対して２種類以上の階調を有する出力階調値に変換する画像処理方法において、
前記画素群に含まれる前記各画素の前記入力階調値から前記画素群の重心位置を決定する重心位置決定工程と、
前記画素群の重心位置と、前記多値ディザマトリックスで最もドットが生成され易い画素位置とが略一致するように前記多値ディザマトリックスを配置する配置工程と、
前記配置された多値ディザマトリックスと前記画素群に含まれる前記各画素の前記入力階調値とを比較して前記出力階調値を得る出力工程と、
前記出力工程によって前記画素群内の前記入力階調値の合計に基づく理想階調値が得られたかったとき、前記画素群内の前記出力階調値の合計が略前記理想階調値となるよう補足処理を行う補足処理工程と、
を備えることを特徴とする画像処理方法。
【請求項１２】
入力画像を複数画素から構成される画素群に分割し、当該画素群単位に多値ディザマトリックスを適用することで入力階調値に対して２種類以上の階調を有する出力階調値に変換する画像処理をコンピュータに実行させる画像処理プログラムにおいて、
前記画素群に含まれる前記各画素の前記入力階調値から前記画素群の重心位置を決定する重心位置決定処理と、
前記画素群の重心位置に前記多値ディザマトリックスの中心を配置させる配置処理と、
前記配置された多値ディザマトリックスと前記画素群に含まれる前記各画素の前記入力階調値とを比較して前記出力階調値を得る出力処理と、
前記出力処理によって前記画素群内の前記入力階調値の合計に基づく理想階調値が得られなかったとき、前記画素群内の前記出力階調値の合計が略前記理想階調値となるよう処理を行う補足処理と、
をコンピュータに実行させることを特徴とする画像処理プログラム。
【請求項１３】
入力画像を複数画素から構成される画素群に分割し、当該画素群単位に多値ディザマトリックスを適用することで入力階調値に対して２種類以上の階調を有する出力階調値に変換する画像処理をコンピュータに実行させる画像処理プログラムにおいて、
前記画素群に含まれる前記各画素の前記入力階調値から前記画素群の重心位置を決定する重心位置決定処理と、
前記画素群の重心位置と、前記多値ディザマトリックスで最もドットが生成され易い画素位置とが略一致するように前記多値ディザマトリックスを配置する配置処理と、
前記配置された多値ディザマトリックスと前記画素群に含まれる前記各画素の前記入力階調値とを比較して前記出力階調値を得る出力処理と、
前記出力処理によって前記画素群内の前記入力階調値の合計に基づく理想階調値が得られたかったとき、前記画素群内の前記出力階調値の合計が略前記理想階調値となるよう処理を行う補足処理と、
をコンピュータに実行させることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、及び画像処理プログラムに関する。詳しくは、出力画像のぼやけをなくし、入力に忠実な出力画像を得る画像処理装置等に関する。
【背景技術】
【０００２】
従来から、プリンタなどの画像処理装置は、画素ごとに多値の階調値を有する入力画像データに対して、ハーフトーン処理により、それよりも低い階調数（例えば２値）の出力画像データに変換して、印刷用紙に印刷が行われている。
【０００３】
ハーフトーン処理としては、ドット集中型ディザ法（多値ディザ法）による処理が知られている。多値ディザ法は、所定の大きさのマトリックス内に中央部からドットが成長するように閾値が配分され、各画素の入力階調値との比較により処理を行う。
【０００４】
しかし、入力画像に閾値マトリックスを適用した場合に、閾値の大きい領域では画素の入力階調値は消失し、逆に閾値の小さい領域では必要以上に大きな出力値に変換される場合がある。例えば閾値マトリックス内に細線があるとその細線が切れる画像が出力されてしまう。従って、多値ディザ法による処理では出力画像の画質面で問題があった。
【０００５】
そこで、従来は、ドットの成長特性の異なる複数の閾値マトリックスを用意し、網点生成領域ごとに所望のドットサイズが得られるマトリックスを判定して、使用する閾値マトリックスを切り替える方法がある（例えば、以下の特許文献１）。
【０００６】
しかし、かかる方法では複数の閾値マトリックスを記録するためのメモリが必要である。また、マトリックス切り替えの際に入力画像の全画素に対して複数回ディザ処理を行うため計算量が多くなる。更に、かかる方法を含め多値ディザ法による処理では、ドット位置が所定間隔で固定されているため、入力された階調分布を再現するのに最適な位置にドットを発生させることができず、入力に忠実でない低解像度の画像が出力されることもある。
【０００７】
そこで、これらの問題点を解決するため、複数画素から構成されるセル内の各画素の階調値から重心位置を求め、その重心位置に各画素の階調値の和に対応するドットを生成させるようにしたものがある（例えば以下の特許文献２、以下「ＡＡＭ（Advanced ＡＭスクリーン）法」と称す）。
【特許文献１】特開平４−１９５１３７号公報
【特許文献２】特願２００４−１３７３２６号
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、ＡＡＭ法では、セル内の重心位置からドットが成長するため、例えばセル内に細線があると円形ドットとしてまとめられしまい、出力画像がぼやけてしまう問題があった。
【０００９】
また、セル内に入力階調値が偏在すると、入力階調値が「０」の画素にもドットが生成されることがあり、入力に忠実でない画像が出力される問題もある。
【００１０】
そこで、本発明は上記問題点に鑑みてなされたもので、その目的は、出力画像のぼやけをなくし、入力画像に忠実な出力画像を得る画像処理装置、画像処理方法、及び画像処理プログラムを提供することにある。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明は、入力画像を複数画素から構成される画素群に分割し、当該画素群単位に多値ディザマトリックスを適用することで入力階調値に対して２種類以上の階調を有する出力階調値に変換する画像処理装置において、前記画素群に含まれる前記各画素の前記入力階調値から前記画素群の重心位置を決定する重心位置決定手段と、前記画素群の重心位置に前記多値ディザマトリックスの中心を配置させる配置手段と、  前記配置された多値ディザマトリックスと前記画素群に含まれる前記各画素の前記入力階調値とを比較して前記出力階調値を得る出力手段と、前記出力手段によって前記画素群内の前記入力階調値の合計に基づく理想階調値が得られなかったとき、前記画素群内の前記出力階調値の合計が略前記理想階調値となるよう補足処理を行う補足処理手段と、を備えることを特徴としている。これにより、例えば、多値ディザマトリックスとの比較により理想的なドットサイズが得られなくても補足処理により略理想的なドットサイズとなるため、入力画像に忠実な出力画像を得ることができる。
【００１２】
また、本発明は上記画像処理装置において、前記補足処理手段は、前記出力手段によって得られた前記出力階調値をリセットし、前記画素群内において前記入力階調値の大きい前記画素順に前記理想階調値を配分する処理により前記補足処理を行うことを特徴としている。これにより、例えば、画素単位で出力階調値が得られるため解像性の高い出力画像を得ることができる。
【００１３】
更に、本発明は上記画像処理装置において、前記補足処理手段は、前記出力手段によって得られた前記出力階調値をリセットし、前記多値ディザマトリックスよりもドット密度が高い多値ディザマトリックスを用いて前記出力階調値を得る処理により前記補足処理を行うことを特徴としている。これにより、例えば、ドットが生成されやすい画素が高密度で配置された、高線数の多値ディザマトリックスを用いて処理を行うため、複雑な入力画像でもドットとして再現され易く解像性の高い出力画像を得ることができる。
【００１４】
更に、本発明は上記画像処理装置において、前記補足処理手段は、前記理想階調値から前記出力階調値の合計値を減算した不足階調値を前記重心位置に近いドット生成を示す出力階調値が出力されていない画素に配分する処理により前記補足処理を行うことを特徴としている。これにより、例えば、不足階調値が画素群内の各画素に配分されるため、入力画像に忠実な出力画像を得ることができる。
【００１５】
更に、本発明は上記画像処理装置において、前記出力手段は、前記理想階調値が得られたとき、前記画素群内における前記出力階調値を得る処理を終了させることを特徴としている。これにより、例えば、出力すべき理想的なドットサイズの出力画像が得られた時点で出力処理が終了するため、ドットの太りすぎを抑え入出力画像間での濃度が保存される。
【００１６】
更に、本発明は上記画像処理装置において、前記出力手段は、前記重心位置に最も近い画素から順番に出力階調値を得ることを特徴としている。これにより、例えば、確実に重心位置に最も近い画素にドットが生成され、入力画像に忠実な出力画像を得る。
【００１７】
更に、本発明は上記画像処理装置において、前記多値ディザマトリックスには、前記入力階調値と前記出力階調値との対応関係を示すテーブルのテーブル番号が格納され、前記出力手段は、前記画素群に含まれる各画素位置に対応する前記多値ディザマトリックスのテーブル番号を参照することで前記入力階調値に対応する出力階調値を得ることを特徴としている。これにより、例えば、入力階調値が「０」の画素にはドットの生成を示す出力階調値が出力されないため、円形ドットの出力画像が生成されず出力画像のぼやけを防止することができる。
【００１８】
更に、本発明は上記画像処理装置において、前記多値ディザマトリックスには閾値が格納され、前記出力手段は、前記閾値と前記入力階調値とを比較することで前記出力階調値を得ることを特徴としている。これにより、例えば、出力画像のぼやけを防止することができる。
【００１９】
また、上記目的を達成するために本発明は、入力画像を複数画素から構成される画素群に分割し、当該画素群単位に多値ディザマトリックスを適用することで入力階調値に対して２種類以上の階調を有する出力階調値に変換する画像処理装置において、前記画素群に含まれる前記各画素の前記入力階調値から前記画素群の重心位置を決定する重心位置決定手段と、前記画素群の重心位置と、前記多値ディザマトリックスで最もドットが生成され易い画素位置とが略一致するように前記多値ディザマトリックスを配置する配置手段と、  前記配置された多値ディザマトリックスと前記画素群に含まれる前記各画素の前記入力階調値とを比較して前記出力階調値を得る出力手段と、前記出力手段によって前記画素群内の前記入力階調値の合計に基づく理想階調値が得られたかったとき、前記画素群内の前記出力階調値の合計が略前記理想階調値となるよう補足処理を行う補足処理手段と、を備えることを特徴としている。
【００２０】
更に、上記目的を達成するために本発明は、入力画像を複数画素から構成される画素群に分割し、当該画素群単位に多値ディザマトリックスを適用することで入力階調値に対して２種類以上の階調を有する出力階調値に変換する画像処理方法において、前記画素群に含まれる前記各画素の前記入力階調値から前記画素群の重心位置を決定する重心位置決定工程と、前記画素群の重心位置に前記多値ディザマトリックスの中心を配置させる配置工程と、前記配置された多値ディザマトリックスと前記画素群に含まれる前記各画素の前記入力階調値とを比較して前記出力階調値を得る出力工程と、前記出力工程によって前記画素群内の前記入力階調値の合計に基づく理想階調値が得られなかったとき、前記画素群内の前記出力階調値の合計が略前記理想階調値となるよう補足処理を行う補足処理工程と、  を備えることを特徴としている。
【００２１】
更に、上記目的を達成するために本発明は、入力画像を複数画素から構成される画素群に分割し、当該画素群単位に多値ディザマトリックスを適用することで入力階調値に対して２種類以上の階調を有する出力階調値に変換する画像処理方法において、前記画素群に含まれる前記各画素の前記入力階調値から前記画素群の重心位置を決定する重心位置決定工程と、前記画素群の重心位置と、前記多値ディザマトリックスで最もドットが生成され易い画素位置とが略一致するように前記多値ディザマトリックスを配置する配置工程と、  前記配置された多値ディザマトリックスと前記画素群に含まれる前記各画素の前記入力階調値とを比較して前記出力階調値を得る出力工程と、前記出力工程によって前記画素群内の前記入力階調値の合計に基づく理想階調値が得られたかったとき、前記画素群内の前記出力階調値の合計が略前記理想階調値となるよう補足処理を行う補足処理工程と、を備えることを特徴としている。
【００２２】
更に、上記目的を達成するための本発明は、入力画像を複数画素から構成される画素群に分割し、当該画素群単位に多値ディザマトリックスを適用することで入力階調値に対して２種類以上の階調を有する出力階調値に変換する画像処理をコンピュータに実行させる画像処理プログラムにおいて、前記画素群に含まれる前記各画素の前記入力階調値から前記画素群の重心位置を決定する重心位置決定処理と、前記画素群の重心位置に前記多値ディザマトリックスの中心を配置させる配置処理と、前記配置された多値ディザマトリックスと前記画素群に含まれる前記各画素の前記入力階調値とを比較して前記出力階調値を得る出力処理と、前記出力処理によって前記画素群内の前記入力階調値の合計に基づく理想階調値が得られなかったとき、前記画素群内の前記出力階調値の合計が略前記理想階調値となるよう処理を行う補足処理と、をコンピュータに実行させる画像処理プログラムであることを特徴としている。
【００２３】
更に、上記目的を達成するために本発明は、入力画像を複数画素から構成される画素群に分割し、当該画素群単位に多値ディザマトリックスを適用することで入力階調値に対して２種類以上の階調を有する出力階調値に変換する画像処理をコンピュータに実行させる画像処理プログラムにおいて、前記画素群に含まれる前記各画素の前記入力階調値から前記画素群の重心位置を決定する重心位置決定処理と、前記画素群の重心位置と、前記多値ディザマトリックスで最もドットが生成され易い画素位置とが略一致するように前記多値ディザマトリックスを配置する配置処理と、前記配置された多値ディザマトリックスと前記画素群に含まれる前記各画素の前記入力階調値とを比較して前記出力階調値を得る出力処理と、前記出力処理によって前記画素群内の前記入力階調値の合計に基づく理想階調値が得られたかったとき、前記画素群内の前記出力階調値の合計が略前記理想階調値となるよう処理を行う補足処理と、をコンピュータに実行させる画像処理プログラムであることを特徴としている。
【発明を実施するための最良の形態】
【００２４】
以下、図面を参照して本発明を実施するための最良の形態を説明する。図１は、本発明が適用されるシステム全体の構成を示す図である。本システムは、全体としてホストコンピュータ１０と画像処理装置２０とから構成される。
【００２５】
ホストコンピュータ１０は、アプリケーション部１１とラスタライズ部１２とから構成される。
【００２６】
アプリケーション部１１は、ワードプロセッサや図形ツールなどのアプリケーションプログラムにより文字データや図形データ等の印刷対象のデータを生成する。ラスタライズ部１２は、印刷対象のデータを画素ごと（又はドットごと）に８ビットの入力画像データに変換して画像処理装置２０に出力する。従って、入力画像データは各画素「０」から「２５５」までの階調値を有する。尚、入力画像データはモノクロデータとして以下説明する。
【００２７】
画像処理装置２０は、画像処理部２１と印刷エンジン２２とから構成される。また、画像処理部２１はハーフトーン処理部２１１とパルス幅変調部２１２とから構成される。
【００２８】
ハーフトーン処理部２１１は、ホストコンピュータ１０から入力画像データが入力され、２種類以上の量子化データを有する出力画像データに変換する。パルス幅変調部２１２は、この量子化データに対してドットごとにレーザ駆動パルス有り又は無しを示す駆動データを生成し、印刷エンジン２２に出力する。
【００２９】
印刷エンジン２２は、レーザドライバ２２１とレーザダイオード（ＬＤ）２２２とから構成される。レーザドライバ２２１は、駆動データに対して駆動パルス有り又は無し等を示す制御データを生成してＬＤ２２２に出力する。ＬＤ２２２は、制御データに基づいて駆動され、更に、感光体ドラム等の駆動により実際に印刷用紙にホストコンピュータ１０で生成した印刷データが印刷される。
【００３０】
本発明は、図１に示すようにハードウェアとして構成された画像処理装置２０に適用しても良いし、図２に示す画像処理装置２０においてソフトウェアとして適用しても良い。ここで、ＣＰＵ２４、ＲＯＭ２５、及びＲＡＭ２６が図１におけるハーフトーン処理部２１１やパルス幅変調部２１２に対応する。
【００３１】
次に、本発明に係るハーフトーン処理の詳細について説明するが、その前に簡単に本発明の概要について説明する。
【００３２】
図３に示すように、繰り返しマトリックスＭを入力画像１００に順次適用する。この繰り返しマトリックスＭには複数の多値ディザマトリックス２００（以下、「ディザマトリックス」と称す。図３の例では８個のディザマトリックス２００）があり、各ディザマトリックス２００を入力画像１００のうち複数画素から構成される画素群（以下、「セル」と称す）に適用する。ディザマトリックス２００にはテーブル番号（インデックス）が格納され、各画素位置において参照されるテーブル番号が決定される。
【００３３】
そして、図４に示すように、決定したテーブル番号からその番号のテーブルを参照することで、当該画素位置における入力階調値に対する出力階調値（量子化データ）を得る。
【００３４】
なお、ディザマトリックス２００は、ドット集中型のマトリックスとなっている。ディザマトリックス２００の中心ほど、番号の小さなインデックスが格納され、テーブル番号が小さい程、小さな階調値でもドットが生成され易くなるようにテーブルが構成される。
【００３５】
本発明では、このディザマトリックス２００を適用する際に、そのまま入力画像１００に適用するのではなく、セルに含まれる画素の入力階調値から重心位置を決定し、ディザマトリックス２００の中で最もドットが生成され易い画素位置と、セルの重心位置とが一致するようにディザマトリックス２００をシフトさせる（図５参照）。
【００３６】
このようにディザマトリックス２００をセルの重心位置にシフトさせることで、入力画像を忠実に再現するのに最も適した位置にドットを生成させることができる。従って、入力に忠実なドットが生成される。従来のディザ法で問題となっていた解像度の低下を抑え、解像性の高い出力画像を得ることができる。
【００３７】
また、本発明では重心位置にディザマトリックス２００をシフトさせた後、各画素位置でテーブルを参照して出力階調値を得るようにしている。従って、入力階調値「０」の画素位置では出力階調値は「０」となるため、当該画素位置にドットは形成されない。
【００３８】
前述したＡＡＭ法では、重心位置に近い画素から順に出力階調値が割り当てられるため、入力階調値「０」の画素位置に「０」以外の階調値が割り当てることがある（図６（Ａ）、（Ｂ）参照）。本発明ではかかる事態が発生しないため、ＡＡＭ法で問題となる円形ドットは生成されず、出力画像にぼやけは生じない。
【００３９】
更に、本発明では、ディザマトリックス２００内での処理を行っているときに、理想的なドットサイズ（又は理想階調値、例えばセルに含まれる画素の入力階調値の合計）が得られるとその時点で処理が終了する。理想階調値が得られた時点で処理が終了するため、必要以上にドットが大きく（太く）なるのを防止できる。即ち、入力画像１００と出力画像との間で出力濃度が略一致し、従来のディザ法では備えていなかった入出力画像間での濃度保存性を満たすことになる。
【００４０】
逆に理想階調値が十分得られないとき、本発明では補足処理を行うことで理想的なドットサイズに近づけるようにしている。理想階調値が十分得られないときとは、例えば、セル内で入力階調値が偏在している場合である（図７（Ａ）参照）。ディザマトリックス２００の中心から離れた画素位置では番号の大きいテーブルが適用されるため、入力階調値よりも少ない出力階調値となり易く(図７（Ｂ）参照)、その結果、セル内における出力階調値の合計が理想階調値より十分低い値となるからである。補足処理の詳細は後述する。
【００４１】
次に、本発明に係る処理の具体例を説明する。図８乃至図９は、全体処理の動作を示すフローチャートである。本処理は、ＣＰＵ２４によって行われるものとして説明する。勿論、ハーフトーン処理部２１１が行うものとしてもよい。
【００４２】
順次説明すると、まず、ＣＰＵ２４はＲＯＭ２５から本処理を実行するためのプログラムを読み出すことで処理を開始する（Ｓ１０）。
【００４３】
次いで、ＣＰＵ２４は入力画像１００を読み込む（Ｓ１１）。例えば、ＣＰＵ２４は入力画像１００をＲＡＭ２６に格納する。
【００４４】
次いで、ＣＰＵ２４は繰り返しマトリックスＭを入力画像１００の左上に設定する（Ｓ１２）。入力画像１００に対して左上から順にラスタ方向に処理を進めるためである。なお、ＣＰＵ２４はディザマトリックス２００の番号を示す「Ｎ」に「１」を格納する。
【００４５】
次いで、ＣＰＵ２４はＮ番目のディザマトリックス２００が適用されるセル内の入力階調値の合計を演算する（Ｓ１３）。重心演算の際に必要だからである。
【００４６】
次いで、ＣＰＵ２４はその合計が「０」より大きいか否か判断する（Ｓ１４）。合計値が「０」とは、セル内の画素の入力階調値がすべて「０」の場合である。従って、この場合（ＮＯの場合）、ドット生成等の処理を何ら行うことなくＳ１８（図９）に移行する。かかる領域すべて処理する場合と比較して処理がスキップされるためその分計算量を少なくすることができる。
【００４７】
一方、階調値の合計が「０」より大きいとき（Ｓ１４でＹＥＳ）、ＣＰＵ２４はセル内の画素の重心を演算する（Ｓ１５）。ディザマトリックス２００をどの位置にシフトさせるかの判断に必要だからである。重心位置を（Ｘ重心，Ｙ重心）としたとき、演算は以下の式を用いる。
【００４８】
【数１】
2006325136.tif 000003
【００４９】
これらの式は、例えばＲＯＭ２５に格納され、本処理の際にＣＰＵ２４が読み出すことで式が適用される。例えば、図５（Ｂ）の場合、左上の画素を（０，０）、右方向をＸ座標、下方向をＹ座標とすると、重心位置は、（Ｘ重心，Ｙ重心）＝（１，０）となる。
【００５０】
次いで、ＣＰＵ２４はドット生成処理を行う（Ｓ１６）。このドット生成処理により、量子化データを得る。上述した重心位置へのシフトや、補足処理等もドット生成処理内で行われる。ドット生成処理の詳細を図１０に示す。
【００５１】
まず、ＣＰＵ２４は、セル内に出力すべき理想階調値を演算する（Ｓ１６１）。理想階調値は、所定の関数によりセル内の画素の入力階調値の合計から求められる。例えば、理想階調値は、セル内の入力階調値の合計値である。
【００５２】
次いで、ＣＰＵ２４は濃度制限付多値ディザ処理を行う（Ｓ１６２）。濃度制限付き多値ディザ処理の詳細を図１１に示す。
【００５３】
まず、ＣＰＵ２４はＳ１５で求めたセルの重心位置にディザマトリックス２００の中心をシフトさせる（Ｓ１６２１）。前述の例では、図５（Ｄ）のようにシフトさせる。
【００５４】
次いで、ＣＰＵ２４は重心位置に最も近いドット未出力画素を探索する（Ｓ１６２２）。図５（Ｄ）の例では、（１，０）の位置を探索する。
【００５５】
次いで、ＣＰＵ２４は探索した画素位置に対応するガンマテーブルを参照して出力階調値を得る（Ｓ１６２３）。例えば、ＣＰＵ２４は図４（Ｂ）に示すようなテーブルを参照する。
【００５６】
その際にＣＰＵ２４は、出力階調値の合計が理想階調値を超えるか否か判断する（Ｓ１６２４）。前述したように、理想的なサイズのドットよりも大きなドットが生成される（理想階調値を超える出力階調値を得る）ことを防止するためである。
【００５７】
従って、その合計値が理想階調値よりも大きいと（ＹＥＳ）、理想階調値と等しくなるように出力階調値を調整する（Ｓ１６２６）。その合計値が理想階調値を超えないと（Ｓ１６２４でＮＯ）、調整することなく処理はＳ１６２５に移行する。
【００５８】
そして、Ｓ１６２５でＣＰＵ２４は、実際に探索した画素に出力階調値を出力する（Ｓ１６２５）。
【００５９】
次いで、ＣＰＵ２４は理想階調値に達したか否か判断し（Ｓ１６２７）、達したときは濃度制限付き多値ディザ処理が終了する（Ｓ１６４へ）。この場合は、理想的なドットサイズが得られたことになる。
【００６０】
一方、理想階調値に達しておらず（Ｓ１６２７でＮＯ）、セル内の画素全て処理していないときは（Ｓ１６２８でＮＯ）、再びセル内のドット未出力画素を探索し（Ｓ１６２２）、上述の処理が繰り返される。
【００６１】
理想階調値に達していなくても、ディザマトリックス２００が適用されるセル内の画素全て処理したとき（Ｓ１６２８でＹＥＳ）も濃度制限付き多値ディザ処理は終了する。この場合、理想階調値に達していないため、十分なサイズのドットが出力されない。後述の補足処理で調整される。
【００６２】
濃度制限付き多値ディザ処理が終了すると、図１０に戻り、この処理で出力した出力階調値の合計と理想階調値とを比較して理想階調値全て出力したか否か判断する（Ｓ１６４）。
【００６３】
理想階調値全て出力したとき（ＹＥＳ）は、セル内で理想的なドットサイズ（例えば、セル内の入力階調値の合計と同じ出力階調値）が出力されたことになり、本発明に係る一連の処理が終了して、ディザマトリックス２００の移動処理（図９のＳ１８以降の処理）に移行する。例えば、図６（Ｄ）のような出力が得られた場合である。
【００６４】
一方、理想階調値全て出力できなかったとき（Ｓ１６４でＮＯ）、ＣＰＵ２４は上述した補足処理を行う。例えば、図７（Ｂ）のような出力を得た場合に処理が行われる。
【００６５】
補足処理は以下のようになる。まず、図１０に示すように、ＣＰＵ２４は理想階調値のうち８０％以上出力階調値を出力できたか否か判断する（Ｓ１６５）。出力できないと（ＮＯ）、濃度制限付き多値ディザ処理（Ｓ１６２）で得られた出力階調値をリセットし（Ｓ１６８）、別途出力階調値を得るために、ＣＡＰＩＸ法を参考にした処理（Ｓ１６９）を行う。
【００６６】
図７（Ｂ）の例では、セル内の出力階調値の合計は「１００」で、理想階調値をセル内の入力階調値の合計「４００」とすると、５０％しか出力階調値を出力できていない。この場合、ＣＡＰＩＸ法を参考にした処理（Ｓ１６９）が行われる。
【００６７】
一方、８０％以上出力できても（Ｓ１６５でＹＥＳ）、セル内において理想階調値全て出力できたわけではないため、ＣＰＵ２４はその不足分の階調値を追加する処理（Ｓ１６６）を行う。
【００６８】
なお、Ｓ１６５で「８０％」以上としているがこれは一例であって、それ以外の数字でもよい。
【００６９】
まず、ＣＡＰＩＸ法を参考にした処理（Ｓ１６９）について詳細に説明する。ＣＡＰＩＸ法を参考にした処理とは、ディザマトリックス２００が適用されるセル内の入力階調値の合計を求め、入力階調値の高い画素に優先して高い出力階調値を再配分する処理のことである。画素単位で出力階調値が割り当てられてドットが生成されるため、解像度の高い出力が得られる。
【００７０】
その詳細を図１２に示す。まず、ＣＰＵ２４は、セル内の画素を入力階調値の大きい順にソートする（Ｓ１６９１）。例えば、図７（Ａ）の例では、入力階調値「２００」の２つの画素、次いで、「０」の７つの画素とする。
【００７１】
次いでＣＰＵ２４は、理想階調値を残余階調値に代入する（Ｓ１６９２）。理想階調値を入力階調値の合計値とすると、図７（Ａ）の例では、理想階調値は「４００」となり、この値が残余階調値となる。
【００７２】
次いで、ＣＰＵ２４は、ソートした画素リストの先頭の未処理画素に残余階調値を加算し、その値が画素の出力最大値を超えるか否か判断する（Ｓ１６９３）。８ビット出力の出力最大値は、「２５５」となる。
【００７３】
そして、ＣＰＵ２４は、最大値を超えると（ＹＥＳ）、最大値と等しくなるように加算する値を調整し（Ｓ１６９５）、その値を先頭の未処理画素に加算する（Ｓ１６９６）。一方最大値を越えないと（Ｓ１６９３でＮＯ）、残余階調値を画素に加算する値とし（Ｓ１６９４）、その値を先頭の未処理画素に加算する（Ｓ１６９６）。
【００７４】
図７（Ａ）の例では、残余階調値「４００」を入力階調値「２００」のいずれか一方の画素に加算すると最大階調値「２５５」を超えるため（Ｓ１６９３でＹＥＳ）、加算値が「２５５」に調整され（Ｓ１６９５）、当該画素に「２５５」が加算される（Ｓ１６９６）。
【００７５】
次いで、ＣＰＵ２４は残余階調値から加算した階調値を減算して（Ｓ１６９７）、残余階調値が「０」になるまで処理が繰り返される（Ｓ１６９８）。
【００７６】
図７（Ａ）の例では、残余階調値が「１４５」（＝４００−２５５）となり、入力階調値「２００」の一方の未処理画素にこの値を加算して処理が終了する。処理後の出力例を図７（Ｃ）に示す。
【００７７】
なお、このＣＡＰＩＸ法を参考にした処理は、一例であって、例えば、図１３に示す高線数ディザ処理（Ｓ１７０）を行うようにしてもよい。高線数多値ディザ処理では、ドットが生成されやすい画素が高密度で配置された、すなわちサンプリングポイントが増加するようにテーブル番号が配置されたディザマトリックス２００を用いる。例えば、図４（Ａ）に示すディザマトリックス２００でテーブル番号「１」のインデックスが番号「８」の位置にもあるようなディザマトリックス２００である。複雑な入力でもドットとして再現され易く、解像度の高い出力を得ることができる。
【００７８】
高線数多値ディザ処理は、セルの重心位置にディザマトリックス２００の中心をシフトする以外は濃度制限付き多値ディザ処理(図１１)と略同じである。
【００７９】
ＣＰＵ２４は、セル中心に最も近いドット未出力画素を探索し（Ｓ１７０１）、探索した画素についてテーブルを参照する（Ｓ１７０２）。そして、テーブルから出力階調値を得てその合計が理想階調値を超えると（Ｓ１７０３でＹＥＳ）、理想階調値と等しくなるように出力階調値を調整して（Ｓ１７０４）、探索画素に出力階調値を出力する（Ｓ１７０５）。
【００８０】
一方、理想階調値を越えないと（Ｓ１７０３でＮＯ）、テーブルから得られた出力階調値を探索画素に出力する（Ｓ１７０５）。
【００８１】
そして、出力階調値の合計が理想階調値に達するか（Ｓ１７０７でＹＥＳ）、又は達しなくてもセル内の画素全て処理すると（Ｓ１７０７でＮＯ、Ｓ１７０８でＹＥＳ）、高線数多値ディザ処理は終了する。
【００８２】
セル内の画素全て処理していないと（Ｓ１７０８でＮＯ）、再びドット未出力画素を探索して（Ｓ１７０１）、上述の処理を繰り返す。なお、この高線数多値ディザ処理は、ＣＡＰＩＸ法を参考にした処理と比較してソート処理（Ｓ１６９１）を行わない分処理が速い。
【００８３】
ＣＡＰＩＸ法を参考にした処理（Ｓ１６９）、高線数多値ディザ処理（Ｓ１７０）は、いずれも理想階調値を８０％以上出力していない場合である。一方、８０％以上出力した場合（図１０のＳ１６５でＹＥＳ）は不足分階調値の重心近傍画素への追加処理を行う（Ｓ１６６）。
【００８４】
追加処理の詳細を図１４に示す。まず、ＣＰＵ２４は不足階調値を演算する（Ｓ１６６１）。理想階調値から実際にこれまでに出力した出力階調値の合計値を減算することで演算する。
【００８５】
次いで、ＣＰＵ２４は重心から最も近いドット未出力画素を探索して（Ｓ１６６２）、探索した画素に不足階調値を加算する（Ｓ１６６３）。その際に、加算値が出力最大値（８ビット出力の場合は「２５５」）を超えると（Ｓ１６６４でＹＥＳ）、最大値に等しくなるように調整する（Ｓ１６６５）。
【００８６】
加算値が出力最大値を超えないとき（Ｓ１６６４でＮＯ）や、出力値の調整（Ｓ１６６５）後、ＣＰＵ２４は不足階調値から加算値を減算する（Ｓ１６６６）。そして、減算後の不足階調値が「０」になるか（Ｓ１６６７でＹＥＳ）、「０」にならなくても（Ｓ１６６７でＮＯ）セル内の画素全て処理したとき（Ｓ１６６８でＹＥＳ）に本追加処理が終了し、それ以外は（Ｓ１６６８でＮＯ）、Ｓ１６６２に移行して処理が繰り返される。
【００８７】
この追加処理（Ｓ１６６）又はＣＡＰＩＸ法を参考にした処理（Ｓ１６９）若しくは高線数多値ディザ処理（Ｓ１７０）が終了すると、ドット生成処理が終了して（図１０参照）、ディザマトリックス２００を他のセルの領域に適用するための移動処理（図９参照）が行われる。
【００８８】
即ち、ＣＰＵ２４はディザマトリックス２００の番号「Ｎ」が「Ｎｍａｘ」か否か判断する（Ｓ１８）。「Ｎｍａｘ」とは、繰り返しマトリックスＭに含まれるディザマトリックス２００の数である。図３の例では、「Ｎｍａｘ」は「８」となる。ここでは、繰り返しマトリックスＭ内のすべての画素に対してディザマトリックス２００を適用して処理が終了したか否か判断している。
【００８９】
繰り返しマトリックスＭ内ですべてのディザマトリックス２００の適用が終了していないと（ＮＯ）、ディザマトリックス番号「Ｎ」に「１」を加算し、上述の処理を繰り返す（Ｓ１３乃至Ｓ１８）。
【００９０】
一方、繰り返しマトリックスＭ内ですべてのディザマトリックス２００の適用が終了すると（Ｓ１８でＹＥＳ）、繰り返しマトリックスＭ右端より右に未処理画素があるか否か判断する（Ｓ２０）。もし、未処理画素があれば（ＹＥＳ）、繰り返しマトリックスＭを右に移動して、ディザマトリックス番号「Ｎ」を「１」として、上述の処理が繰り返される（Ｓ１３乃至Ｓ１８）。
【００９１】
未処理画素がなければ（Ｓ２０でＮＯ）、入力画像１００の１ライン分の処理が終了したことになり、次いでＣＰＵ２４は繰り返しマトリックスＭ下端より下に未処理画素があるか否か判断する（Ｓ２２）。
【００９２】
繰り返しマトリックスＭ下端より下に未処理画素があれば（ＹＥＳ）、繰り返しマトリックスＭを１段下の最左位置に移動して（Ｓ２３）、再び上述の処理が繰り返される（Ｓ１３乃至Ｓ１８）。一方、下端より下に未処理画素がなければ（Ｓ２２でＮＯ）、１頁分の入力画像１００すべての画素に対して処理が終了したことになり、上述した一連の処理が終了する（Ｓ２４）。
【００９３】
図１５は、入力画像に対する出力画像の例である。細線の入力画像（図１５（Ａ）参照）に対して、従来の多値ディザ法による出力画像は、図１５（Ｂ）に示すように、所々で線が切れているが、本発明による出力画像は図１５（Ｃ）に示すようにかかる事態は発生しない。
【００９４】
また、従来の多値ディザ法の出力画像（図１５（Ｂ））では、入力画像に対して線が太くなっている部分が存在するが、本発明による出力画像はかかる事態も発生していない。即ち、本発明による出力画像は入力に忠実なものとなる。
【００９５】
なお、本発明のよる効果は上述した以外にも以下のものが上げられる。即ち、本発明はディザマトリックス２００を適用するのは入力画像１００の各セルに対して１回のみであるため、複数回繰り返す場合と比較して高速な処理を行い得る。
【００９６】
また、ドット成長特性の異なる複数のディザパターンを画像処理装置２０のメモリ内（ＲＯＭ２５やＲＡＭ２６等）に記録する必要がないため、メモリに記録容量の削減を図り装置２０自体のコストダウンを実現できる。
【００９７】
上述した例は、本発明にかかるハーフトーン処理が画像処理装置２０で行われるものとして説明したが、図１６に示すようにホストコンピュータ１０側で行われてもよい。この場合、ホストコンピュータ１０が本発明に係る画像処理装置として機能する。
【００９８】
また、上述した例は入力画像データをモノクロデータとして説明した。それ以外にも、図１７に示すようにＣＭＹＫのカラーデータに対して本発明が適用されてもよい。この場合に、ラスタライズ部１２からはＲＧＢカラーデータが出力され、画像処理装置２０内の色変換処理部２１３によりＣＭＹＫのカラーデータに変換される。
【００９９】
この際に本発明は、ＣＭＹＫのプレーンごとに繰り返しマトリックスＭが適用され、プレーンごとに上述した処理が繰り返される。また、モアレ縞が発生しないように、マトリックスＭ内のディザマトリックス２００が配列される。
【０１００】
更に、本発明は、色変換処理部２１３がホストコンピュータ１０に設けられている場合や、色変換処理２１３とハーフトーン処理部２１１とがホストコンピュータ１０に設けられている場合でもよい。いずれの場合も上述した例と同様の作用効果を奏する。
【０１０１】
更に、上述した例では、多値ディザマトリックス２００内に参照すべきテーブル番号が格納されている例を示したが、これ以外にもディザマトリックス２００に閾値が直接格納されていてもよい。この場合でも上述した例と同様の作用効果を奏する。
【０１０２】
更に、上述した例は、入力画像データの階調数は「０」から「２５５」までの２５６階調（８ビット）、量子化データも同様に２５６階調（８ビット）として説明した。勿論、これ以外にも、１２８階調（７ビット）や５１２階調（９ビット）等種々の階調数であっても同様の作用効果を奏する。
【０１０３】
更に、上述した例では、画像処理装置２０の例としてプリンタを例にした説明した。勿論、複写機やファクシミリ、これらの機能を有する複合機等であってもよいし、また、ホストコンピュータ１０も携帯電話やＰＤＡ（Personal Digital Assistance）、デジタルカメラなどの情報携帯端末でもよい。
【図面の簡単な説明】
【０１０４】
【図１】本発明が適用されるシステム全体の構成図である。
【図２】画像処理装置の構成を示す図である。
【図３】繰り返しマトリックスの例を示す図である。
【図４】セルとテーブルとの関係を示す図である。
【図５】入力画像の重心位置にセルの中心をシフトさせる場合の例を示す図である。
【図６】入力階調値と出力階調値の例を示す図である。
【図７】入力階調値と出力階調値の例を示す図である。
【図８】全体処理の動作を示すフローチャートである。
【図９】全体処理の動作を示すフローチャートである。
【図１０】ドット生成処理の動作を示すフローチャートである。
【図１１】濃度制限付き多値ディザ処理の動作を示すフローチャートである。
【図１２】ＣＡＰＩＸ法を参考にした処理の動作を示すフローチャートである。
【図１３】高線数の多値ディザ処理の動作を示すフローチャートである。
【図１４】重心近傍の画素への不足分階調値の追加処理の動作を示すフローチャートである。
【図１５】入力画像の例と出力画像の例を示す図である。
【図１６】本発明が適用される他のシステム全体の構成を示す図である。
【図１７】本発明が適用される他のシステム全体の構成を示す図である。
【符号の説明】
【０１０５】
１０  ホストコンピュータ、２０  画像処理装置、２４  ＣＰＵ、２５  ＲＯＭ、２６  ＲＡＭ、１００  入力画像、２００  多値ディザマトリックス、２１１  ハーフトーン処理部、Ｍ  繰り返しマトリックス、Ｎ  多値ディザマトリックス番号
【図１】
2006325136.tif 000004
【図２】
2006325136.tif 000005
【図３】
2006325136.tif 000006
【図４】
2006325136.tif 000007
【図５】
2006325136.tif 000008
【図６】
2006325136.tif 000009
【図７】
2006325136.tif 000010
【図８】
2006325136.tif 000011
【図９】
2006325136.tif 000012
【図１０】
2006325136.tif 000013
【図１１】
2006325136.tif 000014
【図１２】
2006325136.tif 000015
【図１３】
2006325136.tif 000016
【図１４】
2006325136.tif 000017
【図１５】
2006325136.tif 000018
【図１６】
2006325136.tif 000019
【図１７】
2006325136.tif 000020