(57)【要約】【課題】本発明の目的は、画質劣化のない粒状性の優れた出力画像を得るとともに、コスト増大を防ぐ画像処理装置、画像処理方法、及びプログラムを提供すること。【解決手段】画素ごとの階調画像データの総和が閾値以上となるまで画素を選択して複数の画素群を構成する画素群生成手段と、前記画素群生成手段で生成した各画素群の重心位置を決定する重心位置決定手段と、前記重心位置決定手段で決定した前記画素群の重心位置と前記基準点に位置する画素位置との誤差を前記画素群ごとに演算する誤差演算手段と、前記複数の画素群のうち前記誤差演算手段で演算した誤差が最小となる画素群を選択し、当該画素群の前記基準点に位置する画素に量子化画像データを付与する量子化画像データ付与手段と、を備えた画像処理装置であることを特徴とする。【選択図】図６
2005341353.tif 000002
【特許請求の範囲】
【請求項１】
画素ごとの階調画像データの総和が閾値以上となるまで画素を選択して複数の画素群を構成する画素群生成手段と、
前記画素群生成手段で生成した各画素群の重心位置を決定する重心位置決定手段と、
前記重心位置決定手段で決定した前記画素群の重心位置と前記基準点に位置する画素の重心位置との誤差を前記画素群ごとに演算する誤差演算手段と、
前記複数の画素群のうち前記誤差演算手段で演算した誤差が最小となる画素群を選択し、当該画素群の前記基準点に位置する画素に量子化画像データを付与する量子化画像データ付与手段と、
を備えたことを特徴とする画像処理装置。
【請求項２】
請求項１記載の画像処理装置において、
さらに、前記誤差が最小となる画素群の前記誤差演算手段で演算した誤差に応じたデータ分だけ第１の画素の階調画像データを第２の画素に移動させる階調画像データ移動手段、を備えたことを特徴とする画像処理装置。
【請求項３】
画素選択のための第１の基準点に基づいて、画素ごとの階調画像データの総和が閾値以上となるまで画素を選択して画素群を構成する第１の画素群生成手段と、前記第１の画素群生成手段で生成した画素群の重心位置を決定する重心位置決定手段と、を備えた画像処理装置であって、
前記階調画像データが中濃度領域の画像データのとき、複数の第２の基準点それぞれに基づいて、画素ごとの階調画像データの総和が閾値以上となるまで画素を選択して複数の画素群を構成する第２の画素群生成手段と、
前記第１の画素群生成手段で生成した画素群の前記重心位置と前記重心位置を含む画素の重心位置との誤差を演算するとともに、前記第２の画素群生成手段で生成した前記各画素群の重心位置と前記各画素群の前記第２の基準点に位置する画素の重心位置との誤差を演算する誤差演算手段と、
前記誤差演算手段で演算した誤差が最小となる画素群を選択し、選択された前記画素群の前記重心位置に位置する画素又は選択された前記画素群の前記第２の基準点に位置する画素に量子化画像データを付与する付与手段と、
を備えたことを特徴とする画像処理装置。
【請求項４】
請求項３記載の画像処理装置において、
前記第２の基準点は前記第１の画素群生成手段で前記画素群を構成したときに最初に選択した画素及び当該画素に隣接する未処理画素である、ことを特徴とする画像処理装置。
【請求項５】
請求項３記載の画像処理装置において、
前記画素群生成手段は前記画素を選択するごとに前記第１の基準点を更新させる、ことを特徴とする画像処理装置。
【請求項６】
請求項３記載の画像処理装置において、
前記画素群第１の基準点は固定点である、ことを特徴とする画像処理装置。
【請求項７】
請求項３記載の画像処理装置において、
前記第１の基準点は前記画素群を構成する前記各画素の座標位置と当該画素の階調画像データとから決定した重心位置である、ことを特徴とする画像処理装置。
【請求項８】
請求項３記載の画像処理装置において、
さらに、前記誤差が最小となる画素群の前記誤差演算手段で演算した誤差に応じたデータ分だけ第１の画素の階調画像データを第２の画素に移動させる階調画像データ移動手段、を備えることを特徴とする画像処理装置。
【請求項９】
請求項３記載の画像処理装置において、
前記第２の基準点は整数値である、ことを特徴とする画像処理装置。
【請求項１０】
請求項３記載の画像処理装置において、
前記第２の画素群生成手段は前記第２の基準点に隣接する画素を選択して前記画素群を構成する、ことを特徴とする画像処理装置。
【請求項１１】
請求項１０記載の画像処理装置において、
前記第２の画素群生成手段は前記第２の基準点に隣接する画素を選択したとき画素群を構成する画素の階調画像データの総和が閾値以上のときは、前記階調画像データの総和が閾値となるように前記第２の基準点に隣接する画素から均等に前記階調画像データを前記画素群に取り込む、ことを特徴とする画像処理装置。
【請求項１２】
画素ごとの階調画像データの総和が閾値以上となるまで画素を選択して複数の画素群を構成する画素群生成工程と、
前記画素群生成工程で生成した各画素群の重心位置を決定する重心位置決定工程と、
前記重心位置決定工程で決定した前記画素群の重心位置と前記基準点に位置する画素の重心位置との誤差を前記画素群ごとに演算する誤差演算工程と、
前記複数の画素群のうち前記誤差演算工程で演算した誤差が最小となる画素群を選択し、当該画素群の前記基準点に位置する画素に量子化画像データを付与する量子化画像データ付与工程と、
を備えたことを特徴とする画像処理方法。
【請求項１３】
画素選択のための第１の基準点に基づいて、画素ごとの階調画像データの総和が閾値以上となるまで画素を選択して画素群を構成する画素群生成手段と、前記画素群生成手段で生成した画素群の重心位置を決定する重心位置決定手段と、を備えた画像処理装置における画像処理方法であって、
前記階調画像データが中濃度領域の画像データのとき、複数の第２の基準点それぞれに基づいて、画素ごとの階調画像データの総和が閾値以上となるまで画素を選択して複数の画素群を構成する画素群生成工程と、
前記画素群生成手段で生成した画素群の前記重心位置と前記重心位置を含む画素の重心位置との誤差を演算するとともに、前記画素群生成工程で生成した前記各画素群の重心位置と前記各画素群の前記第２の基準点に位置する画素の重心位置との誤差を演算する誤差演算工程と、
前記誤差演算工程で演算した誤差が最小となる画素群を選択し、選択された前記画素群の前記重心位置に位置する画素又は選択された前記画素群の前記第２の基準点に位置する画素に量子化画像データを付与する付与工程と、
を備えたことを特徴とする画像処理方法。
【請求項１４】
画素ごとの階調画像データの総和が閾値以上となるまで画素を選択して複数の画素群を構成する画素群生成処理と、
前記画素群生成処理で生成した各画素群の重心位置を決定する重心位置決定処理と、
前記重心位置決定処理で決定した前記画素群の重心位置と前記基準点に位置する画素の重心位置との誤差を前記画素群ごとに演算する誤差演算処理と、
前記複数の画素群のうち前記誤差演算処理で演算した誤差が最小となる画素群を選択し、当該画素群の前記基準点に位置する画素に量子化画像データを付与する量子化画像データ付与処理と、
をコンピュータに実行させることを特徴とするプログラム。
【請求項１５】
画素選択のための第１の基準点に基づいて、画素ごとの階調画像データの総和が閾値以上となるまで画素を選択して画素群を構成する第１の画素群生成処理と、前記第１の画素群生成処理で生成した画素群の重心位置を決定する重心位置決定処理と、をコンピュータに実行させるプログラムであって、
さらに、前記階調画像データが中濃度領域の画像データのとき、複数の第２の基準点それぞれに基づいて、画素ごとの階調画像データの総和が閾値以上となるまで画素を選択して複数の画素群を構成する第２の画素群生成処理と、
前記第１の画素群生成処理で生成した画素群の前記重心位置と前記重心位置を含む画素の重心位置との誤差を演算するとともに、前記第２の画素群生成処理で生成した前記各画素群の重心位置と前記各画素群の前記第２の基準点に位置する画素の重心位置との誤差を演算する誤差演算処理と、
前記誤差演算処理で演算した誤差が最小となる画素群を選択し、選択された前記画素群の前記重心位置に位置する画素又は選択された前記画素群の前記第２の基準点に位置する画素に量子化画像データを付与する付与処理と、
をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レーザプリンタなどの画像処理装置における階調画像データのハーフトーン処理に関する。詳しくは、複数の画素からなるセルを構成し、その重心に位置する画素にドットを発生させる処理において、初期画素を含む複数のセルを生成し、そのセルの中からセルの重心位置とドットの重心位置との誤差が最小となるセルを選択し、当該選択したセルを用いてドットを発生させるようにしたハーフトーン処理に関する。
【背景技術】
【０００２】
従来から、プリンタなどの画像処理装置は、画素ごとに多値の階調値を有する階調データに対して、ドットの有無を表す２値の値に変換処理して印刷用紙に印刷を行うようになされている。一般には、多値の階調値を２値の値に変換する処理のことをハーフトーン処理と称されている。
【０００３】
かかるハーフトーン処理の方法としては、所定の閾値が格納された閾値マトリックスを利用して、入力階調値が閾値よりも大きいか小さいかにより２値化するディザ法や、閾値を設定しその閾値よりも大きいか小さいかにより２値化するとともにその誤差分をまわりの画素に分散して処理を進める誤差拡散法もある。
【０００４】
また、入力画像の各画素の階調値の合計が所定の閾値になるまでセルを構成する画素を選択し、セルの中心位置にドットを生成させるようにしたハーフトーン処理も知られている（例えば、以下の特許文献１）。さらに、かかるハーフトーン処理と誤差拡散法とを組み合わせた処理もある（例えば、以下の特許文献２）。
【０００５】
しかし、かかるハーフトーン処理ではセルを構成する画素を予め探索順が決められたテーブルを用いて探索しているために処理済みの画素を考慮しておらず、結果的に出力ドットが偏り画質劣化が生じていた。
【０００６】
そこで、セル内で重心位置を求め、その重心位置に最も近い画素を順次セルに取り込み、これを閾値に達するまで処理を繰り返すことによってドットの偏りがない分散性の向上したハーフトーン処理も提案されている（例えば、以下の特許文献３）
【特許文献１】特開平１１−２７５２８号公報
【特許文献２】特開２０００−２２９５２号公報
【特許文献３】特願２００３−１５４２０２号
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述した特願２００３−１５４２０２号では、入力画像の中濃度（例えば、２５６階調で１２８に近い値など）領域においてすぐに閾値に達してしまうためセルサイズが小さくなってしまう。このため、セル形状が歪み、隣接するセルとの距離が近づきドットが繋がってしまうなど粒状的なドットを生じさせる問題があった。かかる粒状的なドットは画質劣化の原因でもあった。このような問題は、特開平１１−２７５２８号や特開２０００−２２９５２号でも生じる。
【０００８】
また、特開２０００−２２９５２号では、２つの処理を行わせるために、２つの処理部が必要である。かかる処理を実現するには計算量自体も多くなってしまい、さらに部品点数も多くなりその分装置全体のコストが増大するという問題がある。
【０００９】
そこで、本発明の目的は、中濃度の入力画像に対して画質劣化のない粒状性の優れた出力画像を得るとともに、コスト増大を防ぐ画像処理装置、画像処理方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【００１０】
上記目的を達成するために本発明は、画素ごとの階調画像データの総和が閾値以上となるまで画素を選択して複数の画素群を構成する画素群生成手段と、画素群生成手段で生成した各画素群の重心位置を決定する重心位置決定手段と、重心位置決定手段で決定した画素群の重心位置と基準点に位置する画素の重心位置との誤差を画素群ごとに演算する誤差演算手段と、複数の画素群のうち誤差演算手段で演算した誤差が最小となる画素群を選択し、当該画素群の基準点に位置する画素に量子化画像データを付与する量子化画像データ付与手段と、を備えた画像処理装置であることを特徴としている。これにより、例えば、重心誤差が最小のセルが選択され、このセルを用いてドットを発生させるようにしているので、粒状性の優れた出力画像を得ることができる。
【００１１】
また、本発明は上記画像処理装置において、誤差が最小となる画素群の誤差演算手段で演算した誤差に応じたデータ分だけ第１の画素の階調画像データを第２の画素に移動させる階調画像データ移動手段、をさらに備えることを特徴としている。これにより、例えば、重心誤差最小のセルでもそのセルで発生した重心誤差が補正されるので、さらに粒状性の優れた出力画像を得ることができる。
【００１２】
また、上記目的を達成するために本発明は、画素選択のための第１の基準点に基づいて、画素ごとの階調画像データの総和が閾値以上となるまで画素を選択して画素群を構成する第１の画素群生成手段と、第１の画素群生成手段で生成した画素群の重心位置を決定する重心位置決定手段と、を備えた画像処理装置であって、階調画像データが中濃度領域の画像データのとき、複数の第２の基準点それぞれに基づいて、画素ごとの階調画像データの総和が閾値以上となるまで画素を選択して複数の画素群を構成する第２の画素群生成手段と、第１の画素群生成手段で生成した画素群の重心位置とこの重心位置を含む画素の重心位置との誤差を演算するとともに、第２の画素群生成手段で生成した各画素群の重心位置と各画素群の第２の基準点に位置する画素の重心位置との誤差を演算する誤差演算手段と、誤差演算手段で演算した誤差が最小となる画素群を選択し、選択された画素群の重心位置に位置する画素又は選択された画素群の第２の基準点に位置する画素に量子化画像データを付与する付与手段と、を備えた画像処理装置であることを特徴としている。これにより、例えば、ＣＣ法による処理で入力画像が中濃度領域であっても、重心誤差が最小のセルが選択されこのセルによりドットを発生させるようにしているので粒状性の優れた出力画像を得ることができる。さらに、ＣＣ法の処理中に複数セルを生成して選択するようにしているので処理部を別々に設ける必要がなくコストを低減した画像処理装置を提供することができる。
【００１３】
また、本発明は上記画像処理装置において、第２の基準点は第１の画素群生成手段で画素群を構成したときに最初に選択した画素及び当該画素に隣接する未処理画素である、ことを特徴としている。これにより、例えば、ＣＣ法で最初に選択した初期画素周辺で選択すべき複数のセルが生成されることになる。
【００１４】
さらに、本発明は上記画像処理装置において、上記画素群生成手段は画素を選択するごとに第１の基準点を更新させる、ことを特徴としている。これにより、例えば、セルに取り込むべき画素選択の基準点が固定でないので、セルが円状に成長し易くなり、粒状性の優れた出力画像を得ることができる。
【００１５】
さらに、本発明は上記画像処理装置において、上記画素群第１の基準点は固定点である、ことを特徴としている。これにより、例えば、セルに取り込むべき画素を選択する際に複雑な演算を行うことなく処理を速くすることができる。
【００１６】
さらに、本発明は上記画像処理装置において、上記第１の基準点は画素群を構成する各画素の座標位置と当該画素の階調画像データとから決定した重心位置である、ことを特徴としている。これにより、例えば、重心位置を基準にしてセルに取り込む画素を選択しているので、セルが円状に成長し易くなり、ドット間距離が保たれ、粒状性の優れた出力画像を得ることができる。
【００１７】
さらに、本発明は上記画像処理装置において、誤差が最小となる画素群の誤差演算手段で演算した誤差に応じたデータ分だけ第１の画素の階調画像データを第２の画素に移動させる階調画像データ移動手段、をさらに備えることを特徴としている。これにより、例えば、重心誤差最小のセルでもそのセルで発生した重心誤差が補正されるので、さらに粒状性の優れた出力画像を得ることができる。
【００１８】
さらに、本発明は上記画像処理装置において、上記第２の基準点は整数値である、ことを特徴としている。これにより、例えば、第２の基準点に最も近い未処理画素をセルに取り込むと第２の基準点の上下左右に位置する画素をセル内に取り込み易くなるため、セルが円状に成長し易くなる。
【００１９】
さらに、本発明は上記画像処理装置において、上記第２の画素群生成手段は第２の基準点に隣接する画素を選択して画素群を構成する、ことを特徴としている。これにより、例えば、セルが円状に成長し易くなるため、ドット間距離が保たれ、粒状性の優れた出力画像を得ることができる。
【００２０】
さらに、本発明は上記画像処理装置において、上記第２の画素群生成手段は第２の基準点に隣接する画素を選択したとき画素群を構成する画素の階調画像データの総和が閾値以上のときは、階調画像データの総和が閾値となるように第２の基準点に隣接する画素から均等に階調画像データを前記画素群に取り込む、ことを特徴としている。これにより、例えば、セルが円状に成長し易くなるため、粒状性の優れた出力画像を得ることができる。
【００２１】
さらに、上記目的を達成するために本発明は、画素ごとの階調画像データの総和が閾値以上となるまで画素を選択して複数の画素群を構成する画素群生成工程と、画素群生成工程で生成した各画素群の重心位置を決定する重心位置決定工程と、重心位置決定工程で決定した画素群の重心位置と基準点に位置する画素の重心位置との誤差を画素群ごとに演算する誤差演算工程と、複数の画素群のうち誤差演算工程で演算した誤差が最小となる画素群を選択し、当該画素群の基準点に位置する画素に量子化画像データを付与する量子化画像データ付与工程と、  を備えた画像処理方法であることを特徴としている。これにより、例えば、重心誤差が最小のセルが選択され、このセルを用いてドットを発生させるようにしているので、粒状性の優れた出力画像を得ることができる。
【００２２】
さらに、上記目的を達成するために本発明は、画素選択のための第１の基準点に基づいて、画素ごとの階調画像データの総和が閾値以上となるまで画素を選択して画素群を構成する画素群生成手段と、画素群生成手段で生成した画素群の重心位置を決定する重心位置決定手段と、を備えた画像処理装置における画像処理方法であって、階調画像データが中濃度領域の画像データのとき、複数の第２の基準点それぞれに基づいて、画素ごとの階調画像データの総和が閾値以上となるまで画素を選択して複数の画素群を構成する画素群生成工程と、画素群生成手段で生成した画素群の重心位置とこの重心位置を含む画素の重心位置との誤差を演算するとともに、画素群生成工程で生成した各画素群の重心位置と各画素群の第２の基準点に位置する画素の重心位置との誤差を演算する誤差演算工程と、誤差演算工程で演算した誤差が最小となる画素群を選択し、選択された画素群の重心位置に位置する画素又は選択された画素群の第２の基準点に位置する画素に量子化画像データを付与する付与工程と、を備えた画像処理方法であることを特徴としている。これにより、例えば、ＣＣ法による処理で入力画像が中濃度領域であっても、重心誤差が最小のセルが選択されこのセルによりドットを発生させるようにしているので粒状性の優れた出力画像を得ることができる。さらに、ＣＣ法の処理中に複数セルを生成して選択するようにしているのでコストを低減した画像処理方法を提供することができる。
【００２３】
さらに、上記目的を達成するために本発明は、画素ごとの階調画像データの総和が閾値以上となるまで画素を選択して複数の画素群を構成する画素群生成処理と、画素群生成処理で生成した各画素群の重心位置を決定する重心位置決定処理と、重心位置決定処理で決定した画素群の重心位置と基準点に位置する画素の重心位置との誤差を画素群ごとに演算する誤差演算処理と、複数の画素群のうち誤差演算処理で演算した誤差が最小となる画素群を選択し、当該画素群の前記基準点に位置する画素に量子化画像データを付与する量子化画像データ付与処理と、をコンピュータに実行させるプログラムであることを特徴としている。これにより、例えば、重心誤差が最小のセルが選択され、このセルを用いてドットを発生させるようにしているので、粒状性の優れた出力画像を得ることができる。
【００２４】
さらに、上記目的を達成するために本発明は、画素選択のための第１の基準点に基づいて、画素ごとの階調画像データの総和が閾値以上となるまで画素を選択して画素群を構成する第１の画素群生成処理と、第１の画素群生成処理で生成した画素群の重心位置を決定する重心位置決定処理と、をコンピュータに実行させるプログラムであって、さらに、階調画像データが中濃度領域の画像データのとき、複数の第２の基準点それぞれに基づいて、画素ごとの階調画像データの総和が閾値以上となるまで画素を選択して複数の画素群を構成する第２の画素群生成処理と、第１の画素群生成処理で生成した画素群の重心位置とこの重心位置を含む画素の重心位置との誤差を演算するとともに、第２の画素群生成処理で生成した各画素群の重心位置と各画素群の第２の基準点に位置する画素の重心位置との誤差を演算する誤差演算処理と、誤差演算処理で演算した誤差が最小となる画素群を選択し、選択された画素群の重心位置に位置する画素又は選択された画素群の第２の基準点に位置する画素に量子化画像データを付与する付与処理と、をコンピュータに実行させることを特徴としている。これにより、例えば、ＣＣ法による処理で入力画像が中濃度領域であっても、重心誤差が最小のセルが選択されこのセルによりドットを発生させるようにしているので粒状性の優れた出力画像を得ることができる。さらに、ＣＣ法の処理中に複数セルを生成して選択するようにしているのでコストを低減したプログラムを提供することができる。
【発明を実施するための最良の形態】
【００２５】
以下、図面を参照して本発明を実施するための最良の形態を説明する。図１は、本発明が適用されるシステム全体の構成を示す図である。全体としてホストコンピュータ１０と、画像処理装置２０とから構成される。
【００２６】
ホストコンピュータ１０は、アプリケーション部１１とラスタライズ部１２とから構成される。アプリケーション部１１では、文字データ、図形データ、ビットマップデータ等の印刷対象のデータが生成される。例えば、ワードプロセッサや図形ツールなどのアプリケーションプログラムを使用してキーボード等の操作により文字データや図形データなどが生成される。生成されたこれらのデータは、ラスタライズ部１２へ出力される。
【００２７】
ラスタライズ部１２では、アプリケーション部１１から出力された印刷対象のデータを画素ごと（又はドットごと）に８ビットの階調データに変換する。したがって、各画素０から２５５までの階調値（レベル値）を有することになる。ラスタライズ部１２における階調データの生成は、実際にはホストコンピュータ１０に実装されたドライバによって処理が行われる。ラスタライズ部１２から出力される階調データは、画像処理装置２０に出力される。なお、本実施例においてこの階調データはモノクロデータとして以下説明する。
【００２８】
画像処理装置２０は、全体として画像処理部２１と印刷エンジン２２とから構成される。画像処理部２１は、ハーフトーン処理部２１１と、パルス幅変換部２１２とから構成される。ハーフトーン処理部２１１は、ホストコンピュータ１０から出力された階調画像データが入力され、２値以上の多値の値（レベル値）に変換し、量子化画像データを出力する。ハーフトーン処理としては、本実施例では複数の画素からなるセルを構成してその重心に位置する画素にドットを生成させる、重心を利用した処理（Circular Cell法、以下ＣＣ法）を行う。本処理の具体的な内容は後述する。
【００２９】
パルス幅変調部２１２は、ハーフトーン処理部２１１から出力された量子化画像データが入力され、この量子化データに対してドットごとにレーザ駆動パルス有り又は無し等の駆動データを生成する。生成した駆動データは、印刷エンジン２２に出力される。
【００３０】
印刷エンジン２２は、レーザドライバ２２１とレーザーダイオード（ＬＤ）２２２とから構成される。レーザドライバ２２１は、パルス幅変調部２１２からの駆動データが入力され、その駆動データをもとに駆動パルスあり又はなし等を示す制御データを生成し、レーザーダイオード２２２に出力する。レーザーダイオード２２２は、レーザドライバ２２１から出力された制御データに基づいて駆動され、さらに図示しない感光ドラムや転写ベルトが駆動されて、実際に印刷用紙等の記録媒体にホストコンピュータ１０からのデータが印刷されることになる。本実施例では画像処理装置２０はプリンタとして機能する。
【００３１】
次に図２を参照して、画像処理装置２０の具体的構成について説明する。ここで、図１の画像処理装置２０のうち、ハーフトーン処理部２１１及びパルス幅変調部２１２は、図２におけるＣＰＵ２４、ＲＯＭ２５、及びＲＡＭ２６に対応する。
【００３２】
画像処理装置２０は、全体として、入力インターフェース（Ｉ／Ｆ）２３、ＣＰＵ２４、ＲＯＭ２５、ＲＡＭ２６、印刷エンジン２２とから構成され、バス２７を介して互いに接続されている。入力Ｉ／Ｆ２３は、ホストコンピュータ１０とも接続され、ホストコンピュータ１０と画像処理装置２０とのインターフェースの役割を果たす。入力Ｉ／Ｆ２３には、所定の伝送方式により伝送された、ホストコンピュータ１０からの階調画像データが入力され、画像処理装置２０で処理できるデータに変換する。変換された階調画像データは、一旦ＲＡＭ２６に格納される。
【００３３】
ＣＰＵ２４は、ＲＯＭ２５に格納されたプログラムを読み出して、本発明に係るＣＣ法によるハーフトーン処理を含む各種処理を行う。その詳細は後述する。ＲＡＭ２６は、ＣＰＵ２４で実行される各処理のワーキングメモリとして役割を果たし、処理中や処理後の各種データが格納される。また、印刷エンジン２２のレーザドライバ２２１を駆動させるための駆動データも格納される。
【００３４】
印刷エンジン２２は、図１の印刷エンジン２２と同様の構成で、ＲＡＭ２６に格納された駆動データがＣＰＵ２４の制御により入力されて、上述した印刷処理が行われることになる。
【００３５】
次に、このハーフトーン処理部２１１における処理について以下、具体的に説明するが、その前にＣＣ法についての概要を簡単に説明する。ＣＣ法によるハーフトーン処理は、まず初期画素を選択し、所定の閾値に達するまで初期画素周辺の未処理画素を選択して、複数画素からなるセル（１つ又は複数の画素から構成される画素群）を構成する。セルを構成する未処理画素選択の際、それまで構成したセルの重心位置（画素選択のための基準点）から最も近い画素を選択する。そして、閾値に達するとそのセルの重心位置に位置する画素にドット生成を示す値（例えば“２５５”）を割り当て、それ以外の画素はドットの生成を行わないことを示す値（例えば“０”）を割り当てる。ＣＣ法は、以上の処理を入力画像の全てのデータに対して行うことで、量子化された画像データを得るのである。
【００３６】
上述した特開平１１−２７５２８では、セルに取り込むべき未処理画素の選択にテーブルを利用して予め決められた位置の画素を選択するようにしている。しかし、かかる処理では、画素選択のための基準点に対して左上の画素は既に処理済みの画素である可能性が高く、セルが歪んだ形になりその中心にドットを発生させても隣り合うセル間でドットが近接する等、粒状的なドットが発生する。一方、ＣＣ法は重心位置を利用してセルに取り込むべき未処理画素を選択するようにしているため、特開平１１−２７５２８と比較して、セルが円状に成長し易く、ドット間距離を一定に保つことができ、ドットの分散性を向上させて視覚的に快適な印刷出力を得ることができるのである。
【００３７】
また、入力階調値と、所定のサイズからなる閾値マトリックス（変換テーブル）とを比較してドットを生成させるようにした、いわゆる網点処理によるハーフトーン処理も従来から知られている。しかし、かかる網点処理では網点（ドット）位置が固定されているため、解像性が網点周期程度に劣化し、例えば文字がギザつくジャギーが発生したり、小さく薄い文字が読みにくくなる等の問題があった。一方、ＣＣ法では重心位置にドットが発生して網点が形成されることになるので、細線やエッジの再現性が向上してジャギーが発生せず、小さく薄い文字が読み易くなり、高解像度の網点画像を生成する。すなわち、ＣＣ法は従来の網点処理と比較して解像度の高い出力画像を得ることができる。また、従来の網点処理の場合、大きい閾値によって入力階調値が切り捨てられ細い線が再現されなかったり、或いはその逆で入力階調値がドット生成を示す“２５５”に切り上げられ太線に変換されたり、入力階調値と出力階調値との不一致の問題があった。しかし、ＣＣ法ではセルに含まれる階調値の合計と同じ階調値を有する網点が生成されることになり、入力画像の階調値に忠実な出力を得ることができる。なお、以上の議論に鑑みて、本発明が適用されるのは図１に示す画像処理装置２０のみならず、同じ機能を有する網点画像生成装置に適用しても全く同様の効果を奏することが言える。
【００３８】
以下、本発明に係るＣＣ法によるハーフトーン処理の詳細について図面を参照しながら説明する。図３はその処理の動作を示すフローチャートである。まず、ＣＰＵ２４は本処理を実行するためのプログラムをＲＯＭ２５から読み出すことによって、処理を開始する（ステップＳ１０）。
【００３９】
ホストコンピュータ１０から出力された入力階調データはＲＡＭ２６に格納されているものとする。その例を図１１（Ａ）に示す。この図に示すようにＲＡＭ２６には、入力階調データを格納するための入力バッファ領域２６２と、量子化データを格納するための出力バッファ領域２６４とを有する。ＣＰＵ２４の制御により各データが各領域２６２、２６４に格納される。
【００４０】
入力バッファ領域２６２において各座標位置は、全体画像の画素位置に対応するものである。例えば、（０，０）の座標位置は、全体画像の（０，０）に位置する画素に対応する。また、各座標位置に格納された値は当該画素の入力階調値を示す。なお、図１１（Ａ）に示す例は３行３列の構成であるが、これは説明を容易にするためであって、例えば１ページ（１フレーム）分の画像を格納できる構成であってもよいし、この図より少ない行と列の構成であってもよい。また、出力バッファ領域２６４の構成は入力バッファ領域２６２と同様であり、各座標位置に格納される値はドット生成の有無を示す値（本実施例ではドットの生成を示す“２５５”とドットを生成しない“０”）である。ここで、図面上矢印Ａは主走査方向（ＬＤ２２２から照射されるレーザビームの走査方向）、矢印Ｂは副走査方向（紙送りの方向）を示す。出力バッファ２６４の方向も同様である。
【００４１】
図３に戻り、次いでＣＰＵ２４は、初期画素を決定し、基準点を初期画素の座標に設定する（ステップＳ１１）。初期画素とは、セルに取り込まれる最初の画素のことで、図面上最も左側の最も上に位置する未処理画素である。図１１（Ａ）の例では、（０，０）に位置する画素が初期画素として選択される（図１１（Ｂ）参照）。また、基準点とはセルに取り込むべき画素を選択するための基準点のことで、本実施例ではセルの重心位置である。重心位置の演算は、以下の数式を用いる。
【００４２】
[数１]
Ｘ重心＝｛｛（セルの重心のｘ座標）×（セルの階調値の合計）｝
＋｛（選択した未処理画素のｘ座標）×（選択した未処理画素の階調値）｝｝
／（セルの階調値の合計＋選択した未処理画素の階調値）
Ｙ重心＝｛｛（セルの重心のｙ座標）×（セルの階調値の合計）｝
＋｛（選択した未処理画素のｙ座標）×（選択した未処理画素の階調値）｝｝
／（セルの階調値の合計＋選択した未処理画素の階調値）
（Ｘ重心、Ｙ重心はセルの重心位置の座標、ｘ座標は主走査方向の座標成分、ｙ座標は副走査方向の座標成分）
この演算式はＲＯＭ２５に格納され、重心位置の演算のときにＣＰＵ２４がＲＯＭ２５から読み出して演算を行うことになる。ちなみに、初期画素の場合は、［数１］においてセルの重心のｘ座標、ｙ座標、及びセルの階調値の合計はともに０として演算される。なお、 “セルの重心”とあるのは、これまで構成したセルの重心のことである。図１１（Ｂ）の例で、［数１］を用いて重心を演算すると、（Ｘ重心，Ｙ重心）＝（０，０）となる。図１１（Ｂ）には重心位置２６５も示す。
【００４３】
図３に戻り、次いでＣＰＵ２４は、未処理画素の選択を行う（ステップＳ１２）。未処理画素の選択は、これまで構成したセル２６２Ａ内の重心位置２６５（画素選択のための基準点）から最も近い未処理画素を選択する。セル２６２Ａを円状に成長させてドット間距離を保つためである。
【００４４】
図１１（Ｂ）の例では、この重心位置２６５から最も近い未処理画素として、（１，０）と（０，１）の２つの画素が存在する。このように選択すべき未処理画素が複数存在したとき、ランダムにいずれか１つの画素を選択する。固定順（例えば次に選択すべき未処理画素は右隣の画素、次に選択すべき画素はその画素の下にある画素など）に選択すると、最終的に構成されるセル２６２Ａが規則的に並びすぎることによって、印刷出力のある領域でドットが周期的に発生する周期パターンが生じ、快適な印刷出力を得ることができないからである。図１１（Ｂ）の例では、ＣＰＵ２４はランダムに（１，０）に位置する画素を選択する（図１２（Ａ）参照）。
【００４５】
図３に戻り、次いでＣＰＵ２４は選択した未処理画素を含めたセル２６２Ａの階調値の合計が閾値を超えるか否か判断する（ステップＳ１３）。本実施例では、この閾値を“２５５”とする。ドット発生を示す値と同じ値である。図１２（Ａ）の例では、画素（０，０）、（１，０）の階調値の合計は“２００”で閾値以下なので“ＮＯ”が選択される。
【００４６】
閾値を超えないと（ステップＳ１３で“ＮＯ”のとき）、次いでＣＰＵ２４は未処理画素を含めたセル２６２Ａ内の基準点を演算する（ステップＳ１４）。すなわち、上述した［数１］を用いて重心位置２６５を演算する。図１２（Ａ）の例では、２つの画素（（０，０）と（１，０））から構成されたセル２６２Ａの重心位置２６５は、（Ｘ重心，Ｙ重心）＝（１，０）となる（図１２（Ａ）参照）。
【００４７】
次いで、ＣＰＵ２４はセル２６２Ａの階調値の合計を演算する（ステップＳ１５）。図１２（Ａ）の例では、“２００”となる。そして、その値が閾値である“２５５”と等しいか否かを判断する（ステップＳ１６）。等しくないと（“ＮＯ”のとき）、再び未処理画素を選択し（ステップＳ１３）、閾値と等しいか（ステップＳ１６で“ＹＥＳ”）、超えるまで（ステップＳ１３で“ＹＥＳ”）上述の処理を繰り返してセル２６２Ａを構成する画素の選択を行う。
【００４８】
図１２（Ａ）の例で処理を続けると、再び未処理画素の選択を行う（ステップＳ１２）。ここではランダムに（０，１）に位置する画素を選択する（図１２（Ｂ）参照）。そして、この画素を含めたセル２６２Ａの階調値の合計は“３００”となり、閾値を超えるので（ステップＳ１３で“ＹＥＳ”）、ステップＳ１７に移行する。
【００４９】
ステップＳ１７において、ＣＰＵ２４は閾値から濃度の合計を減算する。最後に選択した未処理画素の階調値を閾値分だけセル２６２Ａ内に取り込むためである。ここで、“濃度の合計”とは階調値の合計（ステップＳ１５）のことである。図１２（Ｂ）の例では、濃度の合計は“２００”、したがって“５５”（＝２５５−２００）を得て、この値が最後に選択した画素（０，１）の階調値として以下処理を進める。
【００５０】
次いで、ＣＰＵ２４は画素群の平均階調値を演算する（ステップＳ１８）。選択した未処理画素の階調値の合計が閾値と等しいとき（ステップＳ１６で“ＹＥＳ”のとき）も本ステップに移行する。ここで平均階調値は、セル２６２Ａ内に取り込んだ画素の階調値の合計から画素の数で除算した値により求める。しかし、最後に選択した未処理画素の階調値は本来の入力階調値ではなく閾値と同じ値となるように演算した値（ステップＳ１７）である。よって、本実施例では本来の入力階調値に対する平均階調値を求めるために、最後に選択した未処理画素の階調値についてステップＳ１７を経由したときはその画素を除いた画素で平均階調値を演算する。図１２（Ｂ）の例では、最後に選択した（０，１）の画素を除いた２つの画素（（０，０）と（１，０））とで平均階調値を求める。その値は、“１００”（＝（１００＋１００）／２）となる。
【００５１】
次いでＣＰＵ２４は画素群の平均階調値は低濃度か否か判断する（図８のステップＳ１９）。本実施例では、平均階調値が“１２７”より小さいときは低濃度、“１２７”以上のときは低濃度でない、と判断する。低濃度でないときに低濃度と同様の処理を行うと、複数画素からなるセルはすぐに閾値に達しセルの大きさを確保することがでず、隣り合うセルでドットが近接するなど粒状的なドットを発生させてしまう。そこで、低濃度のときとそうでないときとで処理を異ならせるために本ステップにおける判断を行う。
【００５２】
平均階調値が低濃度のとき（ステップＳ１９で“ＹＥＳ”のとき）、ＣＰＵ２４は平均階調値が所定の範囲か否か判断する（ステップＳ２０）。すなわち、入力階調値が中濃度領域か否かを判断する。上述した例でも理解されるように、入力階調値が中間階調の値（中濃度）を有するとき、ＣＣ法による処理を行うと、少ない画素数ですぐに閾値に達してしまう。すなわち、中濃度領域の入力画像に対してはセル２６２Ａの大きさを保てない。これでは、セル２６２Ａ内でドットを発生させると隣のセル２６２Ａで発生したドットと近接して発生する可能性が高くなる。しかも、ランダムに近接したり、そうでなかったりするため、出力画像全体で見たときそのドットがムラとなって現れ、粒状的なドットを発生させることになる。
【００５３】
また、セル２６２Ａが円状になる程度に大きさが保たれていればセル２６２Ａの重心位置２６５そのものにドットの重心位置が位置するはずである。しかし、中濃度の領域ではセル２６２Ａの大きさが確保できないため、セル２６２Ａが円状に成長せず、セル２６２Ａの重心位置２６５とドットの重心位置とがずれてしまう。
【００５４】
図１３は、図１２（Ｂ）に示すセル２６２Ａにおいて、かかる重心位置のずれが発生している例を示す図である。本来、３つの画素で構成したセル２６２Ａでドットを打つにはセル２６２Ａの重心位置２６５を中心にしたドット２６５Ａを打つべきである。しかし、実際にはドットの重心位置２６６を中心にしたドット２６６Ａが打たれてしまっている。すなわち、ドットの重心位置２６６とセル２６２Ａの重心位置２６５との間でずれが発生している。
【００５５】
しかも、その重心位置のずれの方向（図１３では矢印で示す）は一定の方向にならずランダムに発生する。そのため出力画像は、例えばある領域では左方向に、またある領域では右方向にずれが生じ、ドットの周期性が崩れたものとなる。この周期性の破綻により、いわゆる低周波ノイズが発生し、粒状性を悪化させた出力画像となってしまう。
【００５６】
そこで、本発明は、初期画素を含めた周辺画素で複数のセルを構成し、そのセルのうち、このドットの重心位置２６６とセルの重心位置２６５とのずれ（以下、「重心誤差」）が最小なセルを選択し、このセルを用いてドットを発生させるようにする。これにより、重心誤差が最小なドットが生成されるため、中濃度領域であっても低周波ノイズが少なく粒状性の改善した出力画像を得ることができる。
【００５７】
本実施例において、本ステップＳ２０における所定の範囲とは、平均階調値が５０以上で２００以下（中濃度領域と判断される値であればこの値の範囲に限定されず任意の値でもよい）とする。そして、この範囲に平均階調値があれば（ステップＳ２０で“ＹＥＳ”のとき）、入力画像が中濃度領域であるとして、上述の処理を行うのである。具体的に以下説明する。
【００５８】
中濃度のとき（ステップＳ２０で“ＹＥＳ”のとき）、次いでＣＰＵ２４はセル情報記録処理を行う（ステップＳ２７）。これまで構成したセルの重心誤差等の演算と記録を行って、後で最も重心誤差が少ないセルを選択するためである。その詳細を図５に示す。
【００５９】
本処理に移行するとＣＰＵ２４は、まずこれまで構成したセルの重心位置２６５と、重心誤差を演算する（ステップＳ２７１）。セルの重心位置２６５は上述した［数１］を用いる。重心誤差は、ドットの重心位置２６６とセルの重心位置２６５との差で演算するが、具体的には、ドットが発生する画素位置からセル２６２Ａの重心位置２６５を減算することで求める。図１２（Ｂ）の例では、セル２６２Ａの重心位置２６５は、（Ｘ重心，Ｙ重心）＝（５５／２５５，１００／２５５）、この重心位置２６５に位置する画素は（０，０）、よってドットの発生画素位置を（Ｘト゛ット，Ｙト゛ット）とすると、（Ｘト゛ット，Ｙト゛ット）＝（０，０）を得る。したがって、重心誤差は、（−５５／２５５，−１００／２５５）となる。
【００６０】
次いで、ＣＰＵ２４は重心誤差とドット発生画素位置とを記録する（ステップＳ２７２）。記録は、本実施例においてＲＡＭ２６のセル情報記録領域２６８に記録する。ドット発生画素と重心誤差とがセル情報記録領域２６８に記録された例を図１２（Ｃ）に示す。
【００６１】
次いで、ＣＰＵ２４はセル２６２Ａ内の画素位置と利用した階調値とを記録する（ステップＳ２７３）。重心誤差が最小のセル２６２Ａが選択されたとき、後で入力バッファ２６２の画素位置に利用した階調値を格納させるためである。これらもセル情報記録領域２６８に記録される。図１２（Ｂ）の例では、セル２６２Ａ内の画素位置は、（０，０）、（１，０）、及び（０，１）の３つの画素位置で、利用した階調値はそれぞれ“１００”、“１００”、“５５”である。セル情報記録領域２６８に記録された例を図１２（Ｃ）に示す。
【００６２】
そして、セル情報記録処理（ステップＳ２７）が終了し、図４のステップＳ２８に移行する。ステップＳ２８においてＣＰＵ２４は複数セル生成処理を行う。初期画素を含めた隣接する周辺の画素がドット発生画素２６２Ｂと仮定して複数のセル２６２Ａを生成するためである。その詳細を図６に示す。
【００６３】
複数セル生成処理に移行すると、まずＣＰＵ２４は、複数セル生成処理で生成されるセル２６２Ａの番号を示すＮに“１”を代入し、そのＮの最大値であるＮMAXを演算する。ＮMAXの値は、初期画素（ステップＳ１１）とその初期画素に隣接する未処理画素の数の和により求める。ここで、隣接画素は初期画素の上下左右に位置する画素のみならず、斜め方向に隣接する画素も含む。図１２（Ｂ）の例では、初期画素は（０，０）であったので、その初期画素に隣接する未処理画素は、図１４（Ａ）に示すように３個ある。したがって、ＮMAXは“４”となる。
【００６４】
次いで、ＣＰＵ２４は初期画素とその近傍画素のうちＮ番目の画素を基準点に設定する（ステップＳ２８２）。すなわち、当該画素２６２Ｂをドット発生画素と仮定して、この画素２６２Ｂをセル２６２Ａ生成のための基準点とする。ステップＳ２８１でＮに“１”を代入したので、まず１番目の画素を基準点にして１つめのセル２６２Ａを生成する。例えば、図１４（Ｂ）に示すように１番目の画素２６２Ｂとして（１，０）に位置する画素を設定する。どの画素を１番目にするかは任意であってよい。
【００６５】
次いで、ＣＰＵ２４は初期画素をセル２６２Ａ内に取り込む（ステップＳ２８３）。複数セル生成処理で生成されるセル２６２Ａは常に初期画素が含まれる。初期画素の階調値すべてを使いきるためである。つまり、最終的に生成した複数のセル２６２Ａのうちいずれか１つのセル２６２Ａを選択してドットを発生させるようにするが、初期画素の階調値が残っていると、その後その初期画素をもとにセル２６２Ａを構成する処理（ステップＳ１１からＳ１７）を行い何度も最初に選択した初期画素を使用することになるため処理の効率が悪くなってしまう。また、その後の処理（ステップＳ１１からＳ１７）で階調値の余った初期画素をもとにセル２６２Ａを構成すると、初期画素に隣接する画素が処理済みの場合、さらにその周辺の画素でセル２６２Ａを構成することになり、歪んだ形のセル２６２Ａが構成される。これではドット間距離が保たれず、重心誤差が大きくなり、粒状性の悪化した不快なドットパターンを生成してしまう。かかる理由から、複数セル生成処理では初期画素を取り込んでセル２６２Ａを生成している。図１４（Ｂ）の例では、初期画素（０，０）を取り込んでセル２６２Ａを構成している（図１５（Ａ）参照）。
【００６６】
次いで、ＣＰＵ２４はセル２０２Ａを構成するため未処理画素を選択する（ステップＳ２８４）。ここでは、基準点としたＮ番目の画素に上下左右に隣接する未処理画素をすべて選択する。すなわち、基準点から最も近い、初期画素を除いた未処理画素を選択する。隣接する画素をセル２６２Ａ内に取り込めば、セル２６２Ａが円状に成長するからである。また、基準点は整数値の座標点（又は座標位置）となっている。このことからも、基準点に最も近い未処理画素を選択すると、基準点に位置する画素に隣接する複数の未処理画素が同時に選択され、セル２６２Ａが円状に成長し易くなる。セル２６２Ａが円状に成長するとドット間距離が保たれた快適な出力画像を得ることができる。
【００６７】
図１５（Ａ）の例では、基準点の画素（１，０）の右隣と下に位置する２つの画素（（２，０）と（１，１）に位置する画素）を選択する（図１５（Ｂ）参照）。なお、未処理画素か否かは、処理済みの画素には入力バッファ２６２に“−１”が格納される（後述するステップＳ２９３）ので、かかる値が格納されたか否かで判断できる。
【００６８】
次いで、ＣＰＵ２４はこれまで構成したセル２６２Ａ内の階調値の合計が閾値を超えるか否か判断する（ステップＳ２８５）。本実施例では、閾値は図３のステップＳ１３と同じ“２５５”である。図１５（Ｂ）の例では、セル２６２Ａ内の階調値の合計は“４００”で閾値を超える。
【００６９】
階調値の合計が閾値を超えたとき（ステップＳ２８５で“ＹＥＳ”のとき）、閾値から階調値の合計（初期画素を取り込んだとき（ステップＳ２８３）までのセル２６２Ａの階調値の合計）を減算し、未処理画素に均等に割り当てる（ステップＳ２８７）。すなわち、閾値と同じ値になるように未処理画素から均等に階調値をセル２６２Ａ内に取り込む。図１５（Ｂ）の例では、閾値“２５５”から階調値の合計“２００”を減算すると“５５”となり、これを選択した２つの未処理画素（（２，０）と（１，１）の画素）から均等に“２２．５”の階調値をセル２６２Ａ内に取り込む。次いで、処理はセル情報記録処理（ステップＳ２８９）に移行する。
【００７０】
一方、階調値の合計が閾値を超えないとき（ステップＳ２８５で“ＮＯ”のとき）、未処理画素を含めたセル２６２Ａ内の階調値の合計が閾値と等しいか否か判断する（ステップＳ２８６）。等しいと（ステップＳ２８６で“ＹＥＳ”のとき）、閾値分セル２６２Ａ内に階調値を取り込んだことになるので、処理はセル情報記録処理（ステップＳ２８９）に移行し、等しくないと（ステップＳ２８６で“ＮＯ”のとき）、再び未処理画素の選択を行い（ステップＳ２８４）、閾値と等しいか（ステップＳ２８６で“ＹＥＳ”）、閾値を超える（ステップＳ２８５で“ＹＥＳ”）まで処理を繰り返す。
【００７１】
セル情報記録処理（ステップＳ２８９）は、上述した処理とほぼ同様で、その詳細を図５に示す。すなわち、Ｎ番目の画素を基準点にしたときステップＳ２８３からＳ２８７の処理により１つのセル２６２Ａを構成したが、本処理において当該セル２６２Ａの重心位置２６５や重心誤差を演算し（ステップＳ２７１）、その重心誤差等の記録（ステップＳ２７２、Ｓ２７３）を行う。図１５（Ｂ）の例では、セル２６２Ａ内の画素位置は（１，０）、（０，０）、（１，１）、（２，０）、利用した階調値はそれぞれ“１００”、“１００”、“２２．５”、“２２．５”、重心誤差は（０．３２，−０．０９）を得て、ＲＡＭ２６のセル情報記録領域２６８に記録する（図１５（Ｃ）参照）。なお、ドット発生画素は基準点としたＮ番目の画素２６２Ｂである。よって、図１５（Ｃ）に示すようにドット発生画素位置は（Ｘト゛ット，Ｙト゛ット）＝（１，０）となる。
【００７２】
セル情報記録処理（ステップＳ２８９）が終了すると、処理は図７のステップＳ２９０に移行し、Ｎに“１”を加算する（ステップＳ２９０）。そして、その値がＮMAXを超えないとき（ステップＳ２９１で“ＮＯ”のとき）、加算したＮ番目の画素を基準点にして（ステップＳ２８２）、上述したセル２６２Ａ構成等の処理を行う。図１５（Ｂ）の例では、Ｎに“１”を加算すると、“２”でＮMAXである“４”より小さい値であるので、ステップＳ２９１で“ＮＯ”が選択され、２番目の画素を基準点にして処理を繰り返すことになる。
【００７３】
２番目の画素を（１，１）としたとき、セル２６２Ａは図１６（Ａ）のように構成され、またこのセル２６２Ａでのセル情報記録処理（ステップＳ２８９）により図１６（Ｂ）に示すように各値が記録領域２６８に記録される。そして、Ｎに“１”を加算（ステップＳ２９０）しても、ＮMAXを超えないため（ステップＳ２９１で“ＮＯ”）、３番目の画素を基準点にして処理を繰り返す。
【００７４】
以上のようにして、３番目の画素を（０，１）としたときのセル２６２Ａを図１６（Ｃ）に示し、そのときのセル情報は図１６（Ｄ）のように記録される。さらに４番目の画素を（０，０）としたときのセル２６２Ａは図１７（Ａ）となり、セル情報は図１７（Ｂ）となる。そして、Ｎに“１”を加算すると“５”となり（ステップＳ２９０）、ＮMAXを超えることになる。よってステップＳ２９１で“ＹＥＳ”が選択され、本複数セル生成処理で４つのセル２６２Ａが生成されることになる。
【００７５】
次いで、ＣＰＵ２４はＮMAX＋１個のセル２６２Ａの中から重心誤差が最小のセル２６２Ａを選択する（ステップＳ２９２）。複数セル生成処理ではＮMAX個のセル２６２Ａが生成され、複数セル生成処理を行う前の処理（ステップＳ１１からＳ１７までの処理）で１個のセル２６２Ａが生成される。よって本ステップの段階では全部でＮMAX＋１個のセル２６２Ａが生成される。このうちから、記録領域２６８に記録した重心誤差が最小のセル２６２Ａを選択するのである。上述したように、粒状的なドットを抑えた出力画像を得るためである。重心誤差は座標で表されているが、その距離（各成分を２乗した値を加算しその平行根の値）が最小のものを選択することにする。上述の例では、（０，１）を基準点にしたセル２６２Ａ（図１６（Ｃ）参照）が最も重心誤差が最小となるので、このセル２６２Ａを選択する。
【００７６】
次いで、ＣＰＵ２４は各画素の利用階調値を入力データに反映させる（ステップＳ２９３）。すなわち、重心誤差が最小のセル２６２Ａに関する利用階調値を入力バッファ２６２の対応する各座標位置に格納する。上述の例では、図１６（Ｃ）のセル２６２Ａが選択されたので、このセル２６２Ａに対応する記録領域２６８に記録された各座標位置と利用階調値の値（図１６（Ｄ）参照）が入力バッファ２６２に記録される（図１７（Ｃ）参照）。なお、利用階調値が入力階調値より低い値のとき、入力階調値から利用階調値を減算した値が当該画素位置に格納され、すべて利用した場合は以後未処理画素として選択されないように“−１”が格納される。図１７（Ｃ）に示すように、（１，１）の画素の入力階調値は“１００”、利用階調値は“２２．５”、よって減算した“７７．５”を（１，１）の画素に格納する。（０，０）の画素の入力階調値はすべて利用したので“−１”が格納される。
【００７７】
次いで、ＣＰＵ２４は記録したドット発生画素位置にドットを発生させる（ステップＳ２９４）。すなわち、出力バッファ２６４の対応する画素位置に“２５５”を格納する（図１７（Ｄ）参照）。そして、一連の複数セル生成処理（ステップＳ２８）が終了し、処理は図４に示す重心補正処理（ステップＳ２３）に移行する。
【００７８】
このように、初期画素に隣接する近傍の画素をドット発生画素２６２Ｂとして各セルを生成し、そのセルの中で最も重心誤差が最小のセルを選択してドットを発生させるようにしたので、入力画像が中濃度領域であっても粒状性の優れた出力画像を得ることができる。また、複数セル生成処理はＣＣ法の処理内で行われているため、かかる処理を別々にハードウェアを構成して処理を行う必要がなく、コスト低減を図ることができる。
【００７９】
上述までの処理では重心誤差が最小のセルを選択したが、それでも重心誤差は発生する。かかる重心誤差は上述したように出力画像に低周波ノイズを発生させ、出力画像の粒状性が悪化する。そこで、重心誤差を補正する処理を行うことで粒状性を改善させる。もちろん、複数セルの中から重心誤差最小のセルを選択しドットを発生させる処理により、低周波ノイズは低減し粒状性は改善されるが、かかる重心誤差補正と組み合わせることで、より粒状性の改善した出力画像を得ることができる。
【００８０】
重心誤差補正処理を簡単に説明すると、ドット発生画素に最も近い未処理画素を移動元画素とする。また、セルの重心位置からドットの重心位置に向かう方向（以下、「重心誤差の方向」）とは反対方向に位置する、移動元画素から最も近い未処理画素を移動先画素とする。そして、移動元画素から移動先画素に重心誤差に対応する補正用階調値を移動させる。
【００８１】
図１８は図１７（Ｄ）の出力バッファ２６４を拡大してものである。セルの重心位置２６５は（０．０９，０．７０）で、ドットは（０，１）の画素で発生するのでドットの重心位置２６６は（０，１）となる。このとき重心誤差はＫの方向に発生している。かかる場合、重心誤差補正処理によって、ドット発生画素に最も近い未処理画素を移動元画素としてＫ方向とは反対のＬ方向に位置する移動先画素に補正用階調値を移動させる。このような階調値の移動によって、セルの重心位置とドットの重心位置とのずれを補正する方向に、周辺の階調値が移動するため、注目セルで発生した重心誤差を相殺する最適な位置に周辺のドットが打たれやすくなる。すなわち、周辺ドットも含めた複数のドットによって、入力画像の階調値の重心が保存された、忠実かつ粒状性に優れた出力画像を得ることができる。
【００８２】
重心誤差補正処理（ステップＳ２３）の詳細を図８に示す。重心誤差補正処理に移行すると、まずＣＰＵ２４は画素群（セル）の重心誤差を演算する（ステップＳ２３１）。演算とあるものの、すでに選択したセル２６２Ａ（ステップＳ２９２）の重心誤差は記録領域２６８に記録されている（ステップＳ２７２）ので実際にはかかる領域２６８から当該セル２６２Ａの重心誤差を読み出す。図１７（Ｃ）の例では、記録領域２６８から読み出した重心誤差は（−０．０９，０．３０）である。
【００８３】
次いで、ＣＰＵ２４はドット出力画素に最も近い未処理画素を探索する（ステップＳ２３２）。階調値を移動させるときの移動元の画素を探索するためである。複数の未処理画素が存在するときはすべて選択するようにしてもよいし、いずれか１つ選択するようにしてもよい。図１７（Ｃ）の例では、（０，２）の画素を移動元画素２６２Ｃとして選択する（図１９（Ａ）の斜線で示す画素）。
【００８４】
次いで、ＣＰＵ２４は探索した画素が未処理画素か否か判断する（ステップＳ２３３）。図１９（Ａ）の例では、探索した（０，２）の画素２６２Ｃは未処理画素（“−１”が格納されていない画素）であるため、本ステップで“ＹＥＳ”が選択される。一方、探索した画素に未処理画素がないとき（本ステップで“ＮＯ”のとき）、階調値を移動できる画素２６２Ｃが存在しないことになるため重心演算処理を終了して、処理は図４のステップＳ２４に移行する。
【００８５】
未処理画素があるとき（ステップＳ２３３で“ＹＥＳ”のとき）、次いでＣＰＵ２４は重心誤差を補正できる階調値移動先画素を探索する（ステップＳ２３４）。すなわち、階調値を移動する移動先の画素を探索する。移動元の画素２６２Ｃに隣接する画素であって、重心誤差とは反対方向に位置する未処理画素を探索する。図１９（Ａ）の例では、重心誤差は（−０．０９，０．３０）であるから、移動元の画素（０，２）に対し主走査方向であり、かつ副走査方向とは反対方向に位置する画素（１，１）が移動先の画素２６２Ｄとして探索される（図１９（Ｂ）参照、図中、移動先画素２６２Ｄを網点状で示す）。
【００８６】
次いで、ＣＰＵ２４は移動先画素２６２Ｄが存在するか否か判断する（ステップＳ２３５）。画像の端部では、探索した移動先画素２６２Ｄが存在しない場合もあるからである。図１９（Ｂ）の例では移動先画素２６２Ｄは存在するので、本ステップで“ＹＥＳ”が選択される。一方、移動先画素２６２Ｄが存在しないと（本ステップで“ＮＯ”のとき）、別の移動元の画素２６２Ｃと移動先の画素２６２Ｄとを探索すべくステップＳ２３２に移行し、上述の処理を繰り返す。
【００８７】
移動先画素２６２Ｄが存在するとき（ステップＳ２３５で“ＹＥＳ”のとき）、次いでＣＰＵ２４は補正用階調値を演算する（ステップＳ２３６）。すなわち、実際に移動すべき階調値を演算する。演算は以下の数式を用いる。
【００８８】
[数２]
補正用階調値＝重心誤差×ドットの重み
ここで、“ドットの重み”とは黒ドット生成を示す値のことである。本実施例では“２５５”がドットの重みとなる。図１３（Ｂ）に示す例では、補正用階調値は（−０．０９，０．３０）×２５５≒（２２．５，−７７．５）となる。なお、この［数２］はＲＯＭ２５に予め格納され本処理の際にＣＰＵ２４によって読み出されて演算が行われる。
【００８９】
次いで、ＣＰＵ２４は階調値の移動を実行する（ステップＳ２３７）。すなわち、演算した補正階調値を移動元画素２６２Ｃから移動先画素２６２Ｄに移動させる。このとき補正用階調値は２次元座標として表現されるが、まず絶対値の少ない方の成分を用いて階調値を移動させる。図１９（Ｂ）の例では、補正用階調値は（２２．５，−７７．５）であるから、“２２．５”を移動させる。移動後の入力バッファ２６２は図２０（Ａ）に示す状態となる。
【００９０】
次いで、ＣＰＵ２４は残り補正量から補正済み値を減算する（ステップＳ２３８）。すなわち、補正用階調値から実際に移動させた階調値を減算して残り補正量を求める。図２０（Ａ）の例では、残り補正量は（０，−５０）となる。
【００９１】
次いで、ＣＰＵ２４は残り補正量があるか否か判断する（ステップＳ２３９）。補正用階調値がなくなるまで階調値の移動を行うためである。したがって、残り補正量があれば（本ステップで“ＹＥＳ”のとき）、再び移動元の画素２６２Ｃの探索等を行うべくステップＳ２３２に移行して上述の処理を繰り返す。一方、残り補正量がなくなると階調値の移動がすべて終了したことになり、重心補正処理が終了して、図４のステップＳ２４に移行する。
【００９２】
図２０（Ａ）の例で処理を進めると、残り補正量は（０，−５０）で、残り補正量があるため（ステップＳ２３９で“ＹＥＳ”）、再び未処理画素のうちから移動元の画素２６２Ｃの探索を行う（ステップＳ２３２）。ドット出力画素に最も近い画素は（１，１）で、これを移動元画素２６２Ｃとして選択する。当該画素は未処理画素であり（ステップＳ２３３で“ＹＥＳ”）、次に移動先画素２６２Ｄを探索する（ステップＳ２３４）。探索は、上述の同様に移動元画素２６２Ｃに対し重心誤差と反対方向に位置する画素を移動先画素２６２Ｄとする。図２０（Ａ）の例では（２，０）の画素を選択する。移動先画素２６２Ｄが存在するので（ステップＳ２３５で“ＹＥＳ”）、次いで補正用階調値を演算する（ステップＳ２３６）。ここでは、残り補正量を用いる。そして、階調値を移動させる（ステップＳ２３７）。移動後の入力階調値の分布を図２０（Ｂ）に示す。そして、残り補正量から補正済み値“５０”を減算する（ステップＳ２３８）と、残り補正量は（０，０）となり、残り補正量がなくなるため（ステップＳ２３９で“ＮＯ”）、一連の重心補正処理（ステップＳ２３）が終了する。なお、この階調値の移動であるが、移動元画素２６２Ｃが複数存在したとき、すべての画素２６２Ｃから均等に補正用階調値を移動させるようにしてもよい。
【００９３】
このように、本発明に係る複数セルの生成と、さらにかかる重心補正処理とを組み合わせることで重心誤差が補正され粒状性のさらに優れた出力画像を得ることができる。
【００９４】
一連の重心補正処理（ステップＳ２３）が終了すると、図４に戻り、次いでＣＰＵ２４は未処理画素があるか否か判断する（ステップＳ２４）。未処理画素があれば（ステップＳ２４で“ＹＥＳ”のとき）、再びセル２６２Ａを構成する画素を探索すべく、ステップＳ１１に移行し上述の処理を繰り返す。図２０（Ｂ）の例では、（１，０）に位置する画素等が未処理画素である（“−１”が格納されていない）。よって処理は、再びステップＳ１１に移行する。ステップＳ１１で未処理画素の探索を行うと、図２１（Ａ）に示すように、（１，０）に位置する画素を選択する。そして、上述の処理を行う。また、未処理画素がないと（ステップＳ２４で“ＮＯ”のとき）、すべての画素に対する処理を終了したことになるので一連の処理が終了する（ステップＳ２５）。
【００９５】
一方、画素群の平均階調値が低濃度でないとき（図４のステップＳ１９で“ＮＯ”のとき）、すなわち、初期画素の階調値が“１２７”以上のとき、白濃度処理（ステップＳ３０）に移行する。白濃度処理では、本来の入力階調値を、黒ドット生成を示す値から減算した値を当該画素の階調値として処理を進めるとともに、重心位置２６５に白ドット、それ以外のセル２６２Ａ内の画素には黒ドットを生成させるように処理を行う。
【００９６】
白濃度処理の動作を示すフローチャートを図９乃至図１０に示す。ここで、白濃度処理に移行する前に、ステップＳ１２からステップＳ１７までで作成したセル２６２Ａに関してはキャンセルし、本処理において再びセル２６２Ａを生成することになる。
【００９７】
この白濃度処理は、フローチャートから理解されるように、ほぼ低濃度のときの処理（図３のステップＳ１２からステップＳ２８）と同様である。すなわち、セル２６２Ａを構成する画素が閾値と等しいか（ステップＳ３０７で“ＹＥＳ”）、超える（ステップＳ３０４で“ＹＥＳ”）まで重心位置（基準点）２６５から最も近い画素を選択し続ける。複数あればランダムに選択する。そして、平均階調値が所定の範囲のとき（図１０のステップＳ３１１で“ＹＥＳ”のとき、ここでは１２７以上２００以下を所定の範囲とする。もちろん、中濃度領域と判断される値であればそれ以外でもよい）、セル情報記録処理（ステップＳ３１４）や複数セル生成処理（ステップＳ３１５）を行うが、その内容は上述したものと全く同様である。すなわち、初期画素を含む周辺の未処理画素を基準点に（ステップＳ２８２）し、各基準点をドット発生画素と仮定してセルを生成する（ステップＳ２８３からＳ２８７）。そして、複数セルの中から重心誤差が最小のセルを選択し（ステップＳ２９２）、当該セルを用いてドットを発生させる（ステップＳ２９４）。
【００９８】
この白濃度処理で低濃度の処理のときとの違いは、上述したように選択した未処理画素の階調値をそのまま使用するのではなく、入力階調値の最大値（ここでは“２５５”）からの差を演算して（ステップＳ３０２）、その値が当該画素の階調値として重心等の演算を行うようにする。例えば、図２２（Ａ）に示す階調値が入力されたとき、未処理画素として（０，０）の画素を選択すると、その画素の階調値は“１５５”なので、最大値“２５５”から減算すると“１００”となる（図２２（Ｂ）の入力バッファ２６２参照）。この値が当該画素の階調値としてセルの構成等の処理を行う。そして、この処理を各未処理画素選択（ステップＳ３０１）のたびに行う。この場合、結局図１１に示す入力階調値と同じ値を有するものとして処理が行われることになる。
【００９９】
また、低濃度の処理のときとの違いは、未処理画素を選択する（ステップＳ３０１）と、対応する画素位置に黒ドットを生成することを示す値（ここでは“２５５”）を格納する（ステップＳ３０３）。図２２（Ｂ）に示すように（０，０）の画素を未処理画素として選択したとき、出力バッファ領域２６４の対応する（０，０）に“２５５”を格納することになる。
【０１００】
さらに、セル２６２Ａを構成する画素の階調値の合計が閾値と等しい（ステップＳ３０７で“ＹＥＳ”）か、超える（ステップＳ３０４で“ＹＥＳ”）と重心位置２６５にドットを生成することになるが、低濃度のときとは異なり、ドットを生成しないことを示す値（ここでも“０”）、すなわち白ドット生成を示す値を重心位置２６５に位置する画素に割り当てるのである。複数セル生成処理（ステップＳ３１５）により図２３（Ａ）に示すセル２６２Ａが重心誤差最小のセル２６２Ａとして選択されたとき、その重心点に位置する画素（０，０）に、白ドット生成を示す“０”が格納される（ステップＳ３１３、図２３（Ｂ）の出力バッファ２６４参照）。なお、このセル２６２Ａが選択されたときの各値を入力データに反映させる（図７のステップＳ２９３）と図２３（Ｂ）の入力バッファ２６２の状態となる。
【０１０１】
そして、図４に戻り白濃度処理（ステップＳ３０）が終了すると、ステップＳ２３に移行して上述した重心補正処理が行われる。
【０１０２】
その後、出力バッファ２６４に格納された各値が量子化データとしてパルス幅変調部２１２に出力され、“２５５”がドットオン、“０”がドットオフとして制御され、印刷用紙などの記録媒体に画像が形成される。なお、パルス幅変調部２１２において出力されるレーザ駆動用のパルス信号のタイミングとパルス幅を制御することでドット内の任意の位置に任意の面積の現像領域を確保することができる。すなわち、セル２６２Ａを構成するための閾値として“１２８”としたとき、１つのドット領域のうち半分の領域を現像領域にすることができ、また閾値を“６４”としたとき１／４の領域を現像領域とすることも可能である。したがって、必ずしもドット生成を示す値（＝セル２６２Ａを構成するための閾値）を“２５５”とする必要はなく任意の値でもよく、また量子化データも“０”と“２５５”の２値以外にも３値、４値等任意の値でもよい。
【０１０３】
次に、重心補正処理（ステップＳ２３）における階調値の移動によってどのように粒状性が改善されたかについて若干の補足説明をする。
【０１０４】
例えば、図２４（Ａ）に示す入力バッファ２６２に入力階調値が格納されて例で説明する。このとき、図に示すように３つの画素（（２，２）、（２，３）、（３，２）に位置する画素））によりセル２６２Ａが構成され、この重心位置２６５に位置する画素（２，２）に他の２画素の階調値“１０”をそれぞれ集めた値“３０”に対応するドットを生成させることを考える。また、それ以外の画素位置には入力階調値に対応するドットを生成させるようにする。かかる状況で評価関数によって出力画像の粒状度を測定すると“１．０”となった。
【０１０５】
一方、図２４（Ｂ）に示すようにセル２６２Ａ内でドットが発生する画素（２，２）に最も近い画素として、２つの移動元画素２６２Ｃ（（２，１）と（１，２）の画素）を選択し、これらの画素２６２Ｃから階調値“５”ずつ、２つの移動先画素２６２Ｄ（（３，２）、（２，３）の画素）に移動させる。このとき、評価関数による粒状度を測定すると、“０．２６”となった。図２４（Ａ）の場合と比較して粒状度が低くなり、出力画像の粒状性は改善されることが言える。
【０１０６】
しかしながら、実際の処理において、セル２６２Ａ内のドット出力画素に対して図面上、上の画素と左の画素に関してすでに処理済みの場合が多いので現実的には移動元、移動先の画素２６２Ｃ、２６２Ｄが図２４（Ｂ）のように選択されることは少ない。
【０１０７】
そこで、図２５（Ａ）に示すように、ドット出力画素（２，２）に対して図面上、右斜め下と左斜め下の２つ画素（（１，３）と（３，３））を移動元画素２６２Ｃとして選択して均等に階調値を移動させた。このとき、粒状度は“０．６２”となった。図２４（Ａ）と比較してその粒状度は低くなっているが、図２４（Ｂ）と比較すると粒状度は高くなっている。すなわち、粒状性は図２４（Ａ）と比較して改善されているものの図２４（Ｂ）と比較するとそれほど改善は見られない。
【０１０８】
一方、図２５（Ｂ）に示すようにドット出力画素（２，２）に対して左斜め下に位置する画素から階調値をすべて移動させた。このときの粒状度は“０．４９”となった。図２５（Ａ）と比較して粒状度の値が低くなり、出力画像の粒状性は改善される。
【０１０９】
双方を比較すると、図２５（Ａ）では（３，３）の画素から（４，４）の画素に階調値を移動させており、ドット出力画素（２，２）から移動先の画素（４，４）への距離が図２５（Ｂ）と比較してより遠くの画素に移動させている。このことから、図２５（Ａ）の方が図２５（Ｂ）の場合よりも粒状度が悪くなったのは、セル２６２Ａ内のドット出力画素から遠くの画素に階調値を移動させていることが原因と考えられる。したがって、本発明に係る複数セル生成処理とこの重心補正処理とを組み合わせて処理を行うとき、粒状性の優れた出力画像を得るには、重心補正処理においてドット出力画素に近い画素間で階調値の移動を行うことが好ましいと言える。
【０１１０】
以上説明してきたように、本発明によれは、初期画素を含む隣接する複数の画素を基準点にセルを複数構成し、最初に構成したＣＣ法によるセルを含めた複数のセルで重心誤差が最小となるセルを選択し、当該セルを使用してドットを発生させるようにしたので、入力画像が中濃度領域でも低周波ノイズが少ない、粒状性を改善した出力画像を得ることができる。さらに、重心誤差最小のセルで、重心誤差に対応する補正階調値分だけ移動元画素から移動先画素に階調値を移動させる重心補正処理とを組み合わせることで、重心誤差が改善され、さらに粒状性の優れた出力画像を得ることができる。
【０１１１】
上述の処理では、ホストコンピュータ１０からのモノクロデータに対する処理を説明したが、それ以外にも図２６に示すようにカラーデータに対しても同様に処理を行うことができる。この場合に、ラスタライズ部１２からＲＧＢ（レッド、グリーン、ブルー）の画像データが出力され、色変換処理部２１３でＣＭＹＫ（シアン、マゼンタ、イエロー、ブラック）のカラーデータに変換した後で、各色ごとに本発明にかかるハーフトーン処理を行う。カラーデータの場合でも粒状性の優れた出力画像が形成される。もちろん、カラーを表現する色成分としてＣ、Ｍ、Ｙ、Ｋの４色以外にもライトシアンやライトマゼンタを含めた６色や、さらにそれ以外の色成分を含めた複数色の場合でも同様の効果を奏する。
【０１１２】
また、図２７に示すように、ホストコンピュータ１０で本発明にかかるハーフトーン処理部２１１を備える構成としてもよい。この場合、ハーフトーン処理後の量子化データが画像処理装置２０に出力され、画像処理装置２０では量子化データに対してパルス幅変調部２１２にてレーザ駆動用のパルス信号を形成するようにする。この場合でも上述の例と全く同様の効果を奏することができる。
【０１１３】
さらに、画像処理装置２０の例としてプリンタを例にして説明したが、これ以外にも、例えばファクシミリやイメージスキャナ、複写機、ディスプレイ等であっても同様の作用効果を奏する。
【０１１４】
さらに、本発明に係るハーフトーン処理部２１１を有する画像処理装置２０に接続されるのは、ホストコンピュータ１０以外にも例えば携帯電話や、デジタルカメラ、ＰＤＡ（Personal Digital Assistance）、その他の情報携帯端末であってもよい。さらには、かかる端末に本発明が適用されるハーフトーン処理部２１１を備えるようにしてもよい。これらの場合でも、上述した効果を得ることができる。
【０１１５】
さらに、上述の例ではラスタライズ部１２において画像データを８ビット（２５６階調ｔ）にして処理を行う例について示したが、これ以外にも７ビット（１２８階調）、９ビット（５１２階調）等、任意のビット数の階調データにしても本発明を適用することができ同様の効果を奏する。
【０１１６】
さらに、上述したＣＣ法による処理では、セル２６２Ａ内に取り込むべき画素を選択するときにこれまで構成したセル２６２Ａ内の重心位置２６５に最も近い画素から行うようにした。すなわち、画素選択のための基準点は、順次セル２６２Ａ内に画素を取り込むことで更新される。かかる処理以外にも、セル２６２Ａに取り込むべき画素を選択するときに予め決められた順に行うようにしてもよい。つまり、画素選択のための基準点が固定でかつ予め決められた順でセル２６２Ａに取り込む画素を選択するようにしてもよい。例えば、この順番をＲＯＭ２５などのメモリに記憶させて処理の際にＣＰＵ２４によって読み出されてセル２６２Ａを構成するようにする。この場合でも、中濃度領域でセル２６２Ａ内の重心位置２６５とドットの重心位置２６６の位置ずれが発生する可能性が高いので、上述した処理と同様に重心誤差が最小のセル２６２Ａを選択して、当該セル２６２Ａによりドットを発生させるようにすることで粒状性の優れた出力画像を得ることができる。  
【０１１７】
さらに、上述したＣＣ法に処理で画素選択のための基準点として［数１］に示す重心位置として説明したが、それ以外にも、座標位置のみ考慮した中心位置を基準点としてセルを構成するようにしてもよい。この場合でも、複数のセルのうち重心誤差が最小となるセルによりドットを発生させることで粒状性の優れた出力画像を得ることができる。
【０１１８】
さらに、上述の例ではＣＣ法の処理の中で複数セル生成処理を行うものとして説明したが、中濃度領域か否かにかかわらず、複数セル生成処理のみによりハーフトーン処理を行うようにしてもよい。この場合でも、生成した複数セルのうち重心誤差最小のセルによりドットが発生するので、粒状性の優れた出力画像を得ることができる。
【０１１９】
さらに、上述の例では初期画素を含む隣接する複数の画素を基準点とした複数のセルを生成したが、ＣＣ法では画素選択のための基準点に最も近い未処理画素が複数あるときに画素をランダムに選択するため、ＣＣ法を複数回行うことによっても、重心誤差が異なる複数のセルを生成することができる。このように、ＣＣ法を複数回行い、生成された複数のセルで重心誤差が最小となるセルを選択し、当該セルを使用してドットを発生させるようにしても、低周波ノイズが少ない、粒状性を改善した出力画像を得ることができる。
【０１２０】
さらに、ＣＣ法を複数回行うことによって生成された複数のセルと、初期画素を含む隣接する複数の画素を基準点とした複数のセルと、を合わせた複数のセルの中から重心誤差が最小となるセルを選択するようにしてもよい。かかる場合でも粒状性の優れた出力画像を得ることができる。
【図面の簡単な説明】
【０１２１】
【図１】本発明が適用されるシステム全体の構成を示す図である。
【図２】画像処理装置２０の具体的構成を示す図である。
【図３】ＣＣ法による処理の動作を示すフローチャートである。
【図４】ＣＣ法による処理の動作を示すフローチャートである。
【図５】セル情報記録処理の動作を示すフローチャートである。
【図６】複数セル生成処理の動作を示すフローチャートである。
【図７】複数セル生成処理の動作を示すフローチャートである。
【図８】重心補正処理の動作を示すフローチャートである。
【図９】白濃度処理の動作を示すフローチャートである。
【図１０】白濃度処理の動作を示すフローチャートである。
【図１１】ＲＡＭ２６の内部構成の例を示す図である。
【図１２】ＲＡＭ２６の内部構成の例を示す図である。
【図１３】重心誤差の概念を説明するための図である。
【図１４】ＲＡＭ２６の内部構成の例を示す図である。
【図１５】ＲＡＭ２６の内部構成の例を示す図である。
【図１６】ＲＡＭ２６の内部構成の例を示す図である。
【図１７】ＲＡＭ２６の内部構成の例を示す図である。
【図１８】重心補正処理による階調値移動の概念を示す図である。
【図１９】ＲＡＭ２６の内部構成の例を示す図である。
【図２０】ＲＡＭ２６の内部構成の例を示す図である。
【図２１】ＲＡＭ２６の内部構成の例を示す図である。
【図２２】ＲＡＭ２６の内部構成の例を示す図である。
【図２３】ＲＡＭ２６の内部構成の例を示す図である。
【図２４】ＲＡＭ２６の内部構成の例を示す図である。
【図２５】ＲＡＭ２６の内部構成の例を示す図である。
【図２６】他のシステム全体の構成図である。
【図２７】他のシステム全体の構成図である。
【符号の説明】
【０１２２】
１０  ホストコンピュータ    ２０  画像処理装置    ２１  画像処理部    ２１１  ハーフトーン処理部    ２１２  パルス幅変調部    ２２  印刷エンジン    ２４  ＣＰＵ    ２５  ＲＯＭ    ２６  ＲＡＭ    ２６２  入力バッファ領域    ２６２Ａ  セル    ２６２Ｂ  ドット発生画素    ２６２Ｃ  移動元画素    ２６２Ｄ  移動先画素    ２６４  出力バッファ領域    ２６５  セルの重心位置    ２６６  ドットの重心位置  ２６８  セル情報記録領域
【図１】
2005341353.tif 000003
【図２】
2005341353.tif 000004
【図３】
2005341353.tif 000005
【図４】
2005341353.tif 000006
【図５】
2005341353.tif 000007
【図６】
2005341353.tif 000008
【図７】
2005341353.tif 000009
【図８】
2005341353.tif 000010
【図９】
2005341353.tif 000011
【図１０】
2005341353.tif 000012
【図１１】
2005341353.tif 000013
【図１２】
2005341353.tif 000014
【図１３】
2005341353.tif 000015
【図１４】
2005341353.tif 000016
【図１５】
2005341353.tif 000017
【図１６】
2005341353.tif 000018
【図１７】
2005341353.tif 000019
【図１８】
2005341353.tif 000020
【図１９】
2005341353.tif 000021
【図２０】
2005341353.tif 000022
【図２１】
2005341353.tif 000023
【図２２】
2005341353.tif 000024
【図２３】
2005341353.tif 000025
【図２４】
2005341353.tif 000026
【図２５】
2005341353.tif 000027
【図２６】
2005341353.tif 000028
【図２７】
2005341353.tif 000029