(57)【要約】【課題】エッジ再現性に優れたハーフトーン処理を高速に行うことができる画像処理装置、画像形成装置、画像出力装置、画像処理方法、画像処理プログラム、およびそのプログラムを記録した記録媒体を提供すること。【解決手段】ハーフトーン処理部３２０は、入力画像データの画像領域を、予め決められた領域を有する基本セルに区画する基本セル設定部３２１と、基本セルが階調値変化に関するエッジを含んでいるか否かを判定するエッジ判定部３２３と、エッジを含むと判定された基本セルの画像領域において、小セル内の階調値合計が所定の目標階調値に達するまで小セルに画素を次々に取り込んで、エッジを含むと判定された基本セルを小セルに区画する小セル設定部３２５と、エッジを含まないと判定された基本セルおよび小セルの各画素群に対して、セル内の階調値の重心位置に基づく画素に出力階調値を付与する階調値付与部３２６と、を備える。【選択図】図３
2008067259.tif 000002
【特許請求の範囲】
【請求項１】
多数の画素により構成され、各画素に階調値を有する入力画像データを、画素ごとに付与される出力階調値により、２種類以上のレベルを表す出力画像データに変換する画像処理装置であって、
前記入力画像データの画像領域を予め決められた領域ごとに区画して、複数の第１の画素群を設定する第１の画素群設定部と、
前記第１の画素群が、階調値変化に関するエッジを含んでいるか否かを判定するエッジ判定部と、
前記エッジを含むと判定された第１の画素群の画像領域を区画して、複数の第２の画素群を設定する第２の画素群設定部と、
前記エッジを含んでいないと判定された第１の画素群および前記第２の画素群の各画素群に対して、前記画素群内の階調値の重心位置に基づく画素に前記出力階調値を付与する階調値付与部と、を備えることを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置において、
前記第２の画素群設定部は、前記エッジを含むと判定された第１の画素群の画像領域において、前記第２の画素群内の階調値合計が所定の目標階調値に達するまで前記第２の画素群に画素を次々に取り込んで、前記第２の画素群を設定することを特徴とする画像処理装置。
【請求項３】
請求項２に記載の画像処理装置において、
前記第２の画素群設定部は、前記第２の画素群への取り込みが未処理の画素のうち、前記第２の画素群内の階調値の重心位置に最も近い画素を取り込むことを特徴とする画像処理装置。
【請求項４】
請求項３に記載の画像処理装置において、
前記第２の画素群設定部は、前記第２の画素群に画素を取り込む際、当該第２の画素群を含む第１の画素群内のうち前記第２の画素群への取り込みが未処理の画素、および出力階調値の付与が未処理の第１の画素群に含まれる画素のうち、前記第２の画素群内の階調値の重心位置に最も近い画素を取り込むことを特徴とする画像処理装置。
【請求項５】
請求項１ないし４のいずれか一項に記載の画像処理装置において、
前記第１の画素群内の階調値合計が所定の閾値より小さいハイライト領域であるか否かを判定するハイライト判定部と、
前記ハイライト領域と判定された第１の画素群については、当該第１の画素群内の階調値合計が所定の目標階調値に達するまで周辺の画素を次々に取り込んで、前記第１の画素群を拡大する画素群拡大部と、をさらに備えることを特徴とする画像処理装置。
【請求項６】
請求項５に記載の画像処理装置において、
前記画素群拡大部は、前記ハイライト領域と判定された第１の画素群に画素を取り込む際、当該第１の画素群に隣接する前記第１の画素群の画素のうち、前記ハイライト領域と判定された第１の画素群内の階調値の重心位置に最も近い画素を取り込むことを特徴とする画像処理装置。
【請求項７】
請求項１ないし６のいずれか一項に記載の画像処理装置において、
前記階調値付与部は、前記エッジを含んでいないと判定された第１の画素群および前記第２の画素群の各画素群に対して、前記画素群内の階調値の重心位置に基づく画素に当該画素群内の階調値合計に応じた出力階調値を付与することを特徴とする画像処理装置。
【請求項８】
請求項７に記載の画像処理装置において、
前記階調値付与部は、前記画素群内の階調値合計が１画素に付与できる出力階調値の最大値を超えている場合、当該画素群内の階調値の重心位置から近い画素より順番に出力階調値を付与するようにして、前記画素群内の階調値合計に対応する分の出力階調値を前記画素群に対して付与することを特徴とする画像処理装置。
【請求項９】
請求項１ないし８のいずれか一項に記載の画像処理装置において、
前記第２の画素群設定部は、前記入力画像データの階調値が取りうる最大値を有する画素については、前記第２の画素群に取り込むことなく、
前記階調値付与部は、前記入力画像データの階調値が最大値の画素に対して前記出力階調値の最大値を付与することを特徴とする画像処理装置。
【請求項１０】
請求項１ないし９のいずれか一項に記載の画像処理装置において、
前記エッジ判定部は、前記第１の画素群内に含まれる階調値の最大値と最小値との差に基づき、エッジを含んでいるか否かを判定することを特徴とする画像処理装置。
【請求項１１】
請求項１ないし１０のいずれか一項に記載の画像処理装置において、
前記第２の画素群設定部は、前記エッジを含むと判定された第１の画素群のうち、互いに隣接する画素群については、前記互いに隣接する第１の画素群を合わせた画像領域に対して、前記第２の画素群内の階調値合計が前記目標階調値に達するまで前記第２の画素群に画素を次々に取り込んで、前記第２の画素群を設定することを特徴とする画像処理装置。
【請求項１２】
請求項８に記載の画像処理装置において、
前記出力画像データから、画素ごとにＫ（Ｋは正の整数）段階のドットを形成するためのパルス幅信号を生成可能なパルス幅変調部をさらに備え、
前記階調値付与部は、前記出力階調値を付与された画素の集合が、前記重心位置から拡大する方向を示す拡大方向情報を生成し、
前記パルス幅変調部は、前記拡大方向情報を参照して、前記出力階調値が付与された画素内において前記重心位置側を起点とする前記パルス幅信号を生成することを特徴とする画像処理装置。
【請求項１３】
多数の画素により構成され、各画素に階調値を有する入力画像データの画像領域を予め決められた領域ごとに区画して、複数の第１の画素群を設定する第１の画素群設定部と、
前記第１の画素群が、階調値変化に関するエッジを含んでいるか否かを判定するエッジ判定部と、
前記エッジを含むと判定された第１の画素群の画像領域を区画して、複数の第２の画素群を設定する第２の画素群設定部と、
前記エッジを含んでいないと判定された第１の画素群および前記第２の画素群の各画素群に対して、前記画素群内の階調値の重心位置に基づく画素に前記出力階調値を付与する階調値付与部と、
前記出力階調値が付与された画素にドットを形成することにより、画像を出力する画像出力部と、を備えることを特徴とする画像出力装置。
【請求項１４】
多数の画素により構成され、各画素に階調値を有する入力画像データを、画素ごとに付与される出力階調値により、２種類以上のレベルを表す出力画像データに変換する画像処理方法であって、
前記入力画像データの画像領域を予め決められた領域ごとに区画して、複数の第１の画素群を設定する第１の画素群設定工程と、
前記第１の画素群が、階調値変化に関するエッジを含んでいるか否かを判定するエッジ判定工程と、
前記エッジを含むと判定された第１の画素群の画像領域を区画して、複数の第２の画素群を設定する第２の画素群設定工程と、
前記エッジを含んでいないと判定された第１の画素群および前記第２の画素群の各画素群に対して、前記画素群内の階調値の重心位置に基づく画素に前記出力階調値を付与する階調値付与工程と、を備えることを特徴とする画像処理方法。
【請求項１５】
多数の画素により構成され、各画素に階調値を有する入力画像データを、画素ごとに付与される出力階調値により、２種類以上のレベルを表す出力画像データに変換するための画像処理プログラムであって、
コンピュータに、
画素群に設定すべき領域を示したパターンデータを予め記憶する記憶手段から前記パターンデータを読み出し、前記パターンデータに従って前記入力画像データの画像領域を予め決められた領域ごとに区画して、複数の第１の画素群を設定する第１の画素群設定工程と、
前記第１の画素群が、階調値変化に関するエッジを含んでいるか否かを判定するエッジ判定工程と、
エッジを含むと判定された前記第１の画素群の画像領域を区画して、複数の第２の画素群を設定する第２の画素群設定工程と、
前記エッジを含んでいないと判定された第１の画素群および前記第２の画素群の各画素群に対して、前記画素群内の階調値の重心位置に基づく画素に前記出力階調値を付与する階調値付与工程と、を実行させることを特徴とする画像処理プログラム。
【請求項１６】
請求項１５に記載の画像処理プログラムを記録した、コンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
ハーフトーン処理を行う画像処理装置、画像出力装置、画像処理方法、画像処理プログラム、およびそのプログラムを記録した記録媒体に関する。
【背景技術】
【０００２】
従来、プリンタなどでは、各画素ごとに多値の階調数で表現されるビットマップ形式の入力画像データを、ドットに対応する階調数（例えば、ドットの有無に対応する２値）の網点で表現した出力画像データに変換し、出力画像データに従ってドットを形成することにより印刷を行っている。このとき、多値の階調データを網点データに変換する量子化処理をハーフトーン処理という。ハーフトーン処理の代表的な例としては、ディザ法や誤差拡散法などがある。
【０００３】
また、ハーフトーン処理の一手法として、入力画像データの画像領域を、複数の画素の集まりから構成される画素群（以下、「セル」ともいう）に分割して、セルごとに出力階調値を付与する方法も知られている。
【０００４】
例えば、特許文献１には、入力画像データの画像領域に、予め決められた形状のセルを設定し、セル内の階調値の重心位置に近い画素から順番にセル内の階調値合計に対応する数の画素に出力階調値を付与し、出力階調値に応じてドットを形成することによってドットサイズ制御を行う技術が開示されている。このように、ドットサイズ制御に加えて、重心位置によるドット位置制御を行うハーフトーン処理方法を、以下、「ＡＡＭ法（Advanced AM法）」という。
【０００５】
また、特許文献２には、セル内の階調値合計が所定の目標階調値に達するまで、セル内階調値の重心位置に近い画素を次々に取り込んでセルを拡大し、拡大したセルの重心位置に出力階調値を付与する技術が開示されている。この出力階調値に応じてドットを形成すれば、重心位置から略円形状にセルが拡大して、拡大したセルの重心位置にドットが形成されるため、ドット間距離のばらつきを抑えることが可能である。したがって、ドット分散性の良い、画質に優れた画像を得ることができる。このときのハーフトーン処理方法を、以下、「ＣＣ法（Circular Cell法）」という。
【０００６】
【特許文献１】国際公開第２００５／１０９８５１号パンフレット
【特許文献２】特開２００４−３６３６３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に記載のＡＡＭ法によれば、セル形状が予め決められており、セルの重心にドットが形成されるので、画像出力時の解像性は一定である。このため、階調値が急激に変化するエッジ部分を適切な解像性で再現することは困難であり、エッジの再現性が低下するという課題がある。
【０００８】
また、特許文献２に記載のＣＣ法によれば、セルに新たな画素を取り込んでセルを拡大するたびに階調値合計や重心位置の更新演算を行うため、処理に要する時間が長くなってしまうという課題がある。
【０００９】
そこで、本発明は、エッジ再現性に優れたハーフトーン処理を高速に行うことができる画像処理装置、画像出力装置、画像処理方法、画像処理プログラム、およびそのプログラムを記録した記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成する本発明の画像処理装置は、多数の画素により構成され、各画素に階調値を有する入力画像データを、画素ごとに付与される出力階調値により、２種類以上のレベルを表す出力画像データに変換する画像処理装置であって、入力画像データの画像領域を予め決められた領域ごとに区画して、複数の第１の画素群を設定する第１の画素群設定部と、第１の画素群が、階調値変化に関するエッジを含んでいるか否かを判定するエッジ判定部と、エッジを含むと判定された第１の画素群の画像領域を区画して、複数の第２の画素群を設定する第２の画素群設定部と、エッジを含んでいないと判定された第１の画素群および第２の画素群の各画素群に対して、画素群内の階調値の重心位置に基づく画素に出力階調値を付与する階調値付与部と、を備えることを特徴とする。
【００１１】
この構成によれば、入力画像データの画像領域を区画して、予め決められた領域の第１の画素群を設定し、エッジを含んでいない第１の画素群については、第１の画素群の重心位置に基づく画素に出力階調値が付与される。一方、エッジを含む第１の画素群はさらに区画して複数の第２の画素群を設定し、第２の画素群の重心位置に基づく画素に出力階調値が付与される。第２の画素群は区画する前の第１の画素群より小さくなるので、入力画像データの画像領域のうちエッジを含む領域について、出力階調値が付与される画素間の距離が小さくなり、解像性が高まる。したがって、特許文献１に記載の技術に比べても、エッジの再現性に優れた出力画像データを得ることができる。また、エッジを含んでいない画像領域については、予め決められた領域に区画して第１の画素群を設定するようにしているので、第１の画素群を設定するために要する演算量は少ない。以上のことから、本発明によれば、エッジの再現性に優れたハーフトーン処理を高速に行うことが可能となる。
【００１２】
例えば、本発明の画像処理装置により得られた出力画像データを用いて、出力階調値に応じてドットを形成するようにすれば、画質に優れた画像を出力することができる。
【００１３】
また、本発明の画像処理装置において、第２の画素群設定部は、エッジを含むと判定された第１の画素群の画像領域において、第２の画素群内の階調値合計が所定の目標階調値に達するまで第２の画素群に画素を次々に取り込んで、第２の画素群を設定することが好ましい。
【００１４】
この構成によれば、第２の画素群には所定の目標階調値分の画素を取り込むことにより、第２の画素群の大きさのばらつきが抑えられ、出力階調値が付与される画素間の距離のばらつきが抑制される。したがって、エッジを含む画像領域について出力階調値が付与される画素位置の分散性が向上し、エッジの再現性により優れたハーフトーン処理を行うことができる。
【００１５】
なお、目標階調値は、ドット形成が安定しやすいドットサイズに対応する値に設定することが望ましい。このようにすれば、ドット形成が安定し、階調安定性により優れた画像を出力することができる。
【００１６】
また、本発明の画像処理装置において、第２の画素群設定部は、第２の画素群への取り込みが未処理の画素のうち、第２の画素群内の階調値の重心位置に最も近い画素を取り込むことが好ましい。
【００１７】
この構成によれば、第２の画素群内の階調値の重心位置に近い画素を取り込むことにより、第２の画素群は重心位置から略円形状に拡大する可能性が高くなるので、出力階調値が付与される画素間の距離のばらつきが抑制される。したがって、エッジの再現性により優れたハーフトーン処理を行うことができる。
【００１８】
また、本発明の画像処理装置において、第２の画素群設定部は、第２の画素群に画素を取り込む際、当該第２の画素群を含む第１の画素群内のうち第２の画素群への取り込みが未処理の画素、および出力階調値の付与が未処理の第１の画素群に含まれる画素のうち、第２の画素群内の階調値の重心位置に最も近い画素を取り込むことが好ましい。
【００１９】
この構成によれば、重心位置に近ければ隣接する第１の画素群からも画素を取り込むので、特に第１の画素群間の境界部分において、第２の画素群の形状に偏りが生じる可能性が低くなる。これにより、出力階調値が付与される画素の位置についての偏りが抑制されるので、エッジの再現性により優れたハーフトーン処理を行うことができる。
【００２０】
また、本発明の画像処理装置において、第１の画素群内の階調値合計が所定の閾値より小さいハイライト領域であるか否かを判定するハイライト判定部と、ハイライト領域と判定された第１の画素群については、当該第１の画素群内の階調値合計が所定の目標階調値に達するまで周辺の画素を次々に取り込んで、第１の画素群を拡大する画素群拡大部と、をさらに備えることが好ましい。
【００２１】
この構成によれば、ハイライト領域と判定された第１の画素群に対しては、目標階調値に達するまで周辺の画素を取り込んで、第１の画素群を拡大するので、目標階調値に対応した出力階調値を付与することができる。これにより、階調値の小さいハイライト領域についても、目標階調値に対応した出力階調値を有する出力画像データを得ることができる。この出力画像データによれば、ハイライト領域の階調安定性に優れた画像を出力することが可能となる。
【００２２】
また、本発明の画像処理装置において、画素群拡大部は、ハイライト領域と判定された第１の画素群に画素を取り込む際、当該第１の画素群に隣接する第１の画素群の画素のうち、ハイライト領域と判定された第１の画素群内の階調値の重心位置に最も近い画素を取り込むことが好ましい。
【００２３】
この構成によれば、第１の画素群内の階調値の重心位置に近い画素を、隣接する第１の画素群から取り込むことにより、第１の画素群は重心位置から略円形状に拡大する可能性が高くなるので、各第１の画素群において、出力階調値が付与される画素間の距離のばらつきが抑制される。したがって、ハイライト領域の画質により優れたハーフトーン処理を行うことができる。
【００２４】
また、本発明の画像処理装置において、階調値付与部は、エッジを含んでいないと判定された第１の画素群および第２の画素群の各画素群に対して、画素群内の階調値の重心位置に基づく画素に当該画素群内の階調値合計に応じた出力階調値を付与することが好ましい。
【００２５】
この構成によれば、画素群内の階調値合計に応じた出力階調値が画素群の重心位置に付与されるので、入力画像データの階調再現性に優れたハーフトーン処理を行うことができる。
【００２６】
また、本発明の画像処理装置において、階調値付与部は、画素群内の階調値合計が１画素に付与できる出力階調値の最大値を超えている場合、当該画素群内の階調値の重心位置から近い画素より順番に出力階調値を付与するようにして、画素群内の階調値合計に対応する分の出力階調値を画素群に対して付与することが好ましい。
【００２７】
この構成によれば、画素群内の階調値合計が１画素に付与できる出力階調値の最大値を超えていても、画素群内の階調値の重心位置に近い画素から順番に出力階調値を付与することにより、画素群には、入力画像データの階調値合計に対応する分の出力階調値が付与される。したがって、入力画像データの階調再現性に優れたハーフトーン処理を行うことができる。
【００２８】
また、本発明の画像処理装置において、第２の画素群設定部は、入力画像データの階調値が取りうる最大値を有する画素については、第２の画素群に取り込むことなく、階調値付与部は、入力画像データの階調値が最大値の画素に対して出力階調値の最大値を付与することが好ましい。
【００２９】
この構成によれば、最大値を有する入力画像データの画素については、その最大値を出力画像データに付与して、最大値の階調値を引き継ぐようにしているので、ハーフトーン処理によって入力画像データの最大値が、出力画像データの最大値より小さい値に変換されることがなくなる。したがって、入力画像データにおける最大値を有する領域について再現性に優れたハーフトーン処理を行うことができる。例えば、入力画像データにおいて、テキストなどの２値で表現された部分については、画像出力時に確実にドットが形成されるようになるので、文字などのテキストについて視認性に優れた画像を出力することが可能になる。
【００３０】
また、本発明の画像処理装置において、エッジ判定部は、第１の画素群内に含まれる階調値の最大値と最小値との差に基づき、エッジを含んでいるか否かを判定することが好ましい。
【００３１】
この構成によれば、エッジを含んでいるか否かの判定を、階調値の最大値と最小値との差に基づく簡易な処理で行うことができるので、エッジ判定を伴うハーフトーン処理をより高速に行うことができる。
【００３２】
また、本発明の画像処理装置において、第２の画素群設定部は、エッジを含むと判定された第１の画素群のうち、互いに隣接する画素群については、互いに隣接する第１の画素群を合わせた画像領域に対して、第２の画素群内の階調値合計が目標階調値に達するまで第２の画素群に画素を次々に取り込んで、第２の画素群を設定することが好ましい。
【００３３】
この構成によれば、エッジを含むと判定された第１の画素群のうち、互いに隣接する画素群については、互いに隣接する第１の画素群を合わせた画像領域を第２の画素群に区画して、第２の画素群ごとに出力階調値を付与することにより、エッジの再現性に優れたハーフトーン処理を高速に行うことが可能となる。
【００３４】
また、本発明の画像処理装置において、出力画像データから、画素ごとにＫ（Ｋは正の整数）段階のドットを形成するためのパルス幅信号を生成可能なパルス幅変調部をさらに備え、階調値付与部は、出力階調値を付与された画素の集合が、重心位置から拡大する方向を示す拡大方向情報を生成し、パルス幅変調部は、拡大方向情報を参照して、出力階調値が付与された画素内において重心位置側を起点とするパルス幅信号を生成することが好ましい。
【００３５】
この構成によれば、新たに生成するパルス幅信号は、隣接する画素に生成されたパルス幅信号と繋がりやすくなるので、このパルス幅信号に応じてドットを形成すると、ドットが孤立する可能性が低くなる。したがって、Ｋ段階のドットにより階調再現性を高めながら、ドット形成がより安定し、階調安定性により優れた画像を得ることができる。
【００３６】
また、本発明のもうひとつの態様は、多数の画素により構成され、各画素に階調値を有する入力画像データの画像領域を予め決められた領域ごとに区画して、複数の第１の画素群を設定する第１の画素群設定部と、第１の画素群が、階調値変化に関するエッジを含んでいるか否かを判定するエッジ判定部と、エッジを含むと判定された第１の画素群の画像領域を区画して、複数の第２の画素群を設定する第２の画素群設定部と、エッジを含んでいないと判定された第１の画素群および第２の画素群の各画素群に対して、画素群内の階調値の重心位置に基づく画素に出力階調値を付与する階調値付与部と、出力階調値が付与された画素にドットを形成することにより、画像を出力する画像出力部と、を備えることを特徴とする。
【００３７】
この構成によれば、エッジの再現性に優れたハーフトーン処理を高速に行って、出力階調値が付与された画素にドットを形成することにより、エッジの再現性に優れた画像を高速に出力することが可能となる。
【００３８】
また、本発明は、方法の発明とすることもできる。すなわち、本発明の画像処理方法は、多数の画素により構成され、各画素に階調値を有する入力画像データを、画素ごとに付与される出力階調値により、２種類以上のレベルを表す出力画像データに変換する画像処理方法であって、入力画像データの画像領域を予め決められた領域ごとに区画して、複数の第１の画素群を設定する第１の画素群設定工程と、第１の画素群が、階調値変化に関するエッジを含んでいるか否かを判定するエッジ判定工程と、エッジを含むと判定された第１の画素群の画像領域を区画して、複数の第２の画素群を設定する第２の画素群設定工程と、エッジを含んでいないと判定された第１の画素群および第２の画素群の各画素群に対して、画素群内の階調値の重心位置に基づく画素に出力階調値を付与する階調値付与工程と、を備えることを特徴とする。
【００３９】
さらに、本発明は、プログラムまたはそのプログラムを記憶した記録媒体とすることもできる。すなわち、本発明の画像処理プログラムは、多数の画素により構成され、各画素に階調値を有する入力画像データを、画素ごとに付与される出力階調値により、２種類以上のレベルを表す出力画像データに変換するための画像処理プログラムであって、コンピュータに、画素群に設定すべき領域を示したパターンデータを予め記憶する記憶手段からパターンデータを読み出し、パターンデータに従って入力画像データの画像領域を予め決められた領域ごとに区画して、複数の第１の画素群を設定する第１の画素群設定工程と、第１の画素群が、階調値変化に関するエッジを含んでいるか否かを判定するエッジ判定工程と、エッジを含むと判定された第１の画素群の画像領域を区画して、複数の第２の画素群を設定する第２の画素群設定工程と、エッジを含んでいないと判定された第１の画素群および第２の画素群の各画素群に対して、画素群内の階調値の重心位置に基づく画素に出力階調値を付与する階調値付与工程と、を実行させることを特徴とする。また、このプログラムを記録した記録媒体としては、フレキシブルディスクやＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、光磁気ディスク、メモリカードなど、コンピュータが読み取り可能な種々の媒体を利用することができる。
【発明を実施するための最良の形態】
【００４０】
（第１の実施形態）
以下、本発明を具体化した第１の実施形態について図面を参照して説明する。
【００４１】
図１は、第１の実施形態に係る画像出力システムの構成を示したブロック図である。図１に示すように、画像出力システムは、入力画像データを供給するホストコンピュータ１０と、供給された入力画像データに従って画像を出力する画像出力装置２０とを備えている。
【００４２】
ホストコンピュータ１０は、アプリケーション部１００と、ラスタライズ部２００とを有している。
【００４３】
アプリケーション部１００は、文字データ、図形データ、ビットマップデータなどの印刷対象のデータを生成する。アプリケーション部１００は、例えば、ワードプロセッサや図形ツールなどであり、キーボードなどへの操作により文字データや図形データを生成する。生成した印刷対象のデータはラスタライズ部２００に出力する。
【００４４】
ラスタライズ部２００は、アプリケーション部１００から出力された印刷対象のデータを、各画素８ビットのビットマップ画像データに変換（ラスタライズ）する。このときのビットマップ画像データは、マトリクス状に配列された多数の画素ごとに、ＲＧＢ各色の階調値（「０」〜「２５５」）を有することによりカラー画像を表現したＲＧＢデータである。ラスタライズされたビットマップ画像データは、画像出力装置２０への入力画像データとして画像出力装置２０に出力する。
【００４５】
画像出力装置２０は、電子写真方式の画像形成によって印刷を行うレーザプリンタであり、大別すると、ホストコンピュータ１０から供給された入力画像データに各種画像処理を行って出力画像データに変換する画像処理部（画像処理装置）３００と、出力画像データに従って用紙などの印刷媒体に画像を印刷する印刷エンジン４００とを備えている。
【００４６】
画像処理部３００は、色変換部３１０と、ハーフトーン処理部３２０と、パルス幅変調部３３０とを有している。
【００４７】
色変換部３１０は、ホストコンピュータ１０から受け取った入力画像データ（ＲＧＢデータ）を色変換して、ＣＭＹＫの入力画像データに変換する処理を行う。
【００４８】
ハーフトーン処理部３２０は、色変換後の入力画像データ（ＣＭＹＫデータ）に対し、ドットの有無に対応する２値の階調値に変換するハーフトーン処理を行う。ハーフトーン処理により入力画像データは出力画像データに変換され、印刷エンジン４００に出力される。このハーフトーン処理部３２０は本発明の特徴部分であるが、詳細な構成／処理については後述する。
【００４９】
パルス幅変調部３３０は、ハーフトーン処理部３２０から出力された出力画像データにパルス幅変調を施すことにより、各画素に形成するドットの有無をパルス幅信号で表す駆動データ形式のデータに変換する。パルス幅変調部３３０は、パルス幅変調された駆動データ形式の出力画像データを印刷エンジン４００に出力する。
【００５０】
印刷エンジン４００は、レーザドライバ４１０と、レーザダイオード４２０とを有している。レーザドライバ４１０は、画像処理部３００から出力された出力画像データに従って駆動パルスの有無に対応する制御データを生成し、制御データによりレーザドライバ４１０を駆動して、感光体ドラム（図示なし）表面を露光する。そして、現像ユニット、中間転写体、定着ユニット（図示なし）などの構成により、感光体ドラム表面の露光像を現像した画像を印刷用紙表面に定着させる。これにより、画像出力装置２０は入力画像データに対応する画像を印刷する。
【００５１】
次に、画像出力装置２０のハードウェア構成について説明する。図２に示すように、画像出力装置２０は、入力インターフェイス（以下、「入力Ｉ／Ｆ」）２１と、ＣＰＵ２２と、ＲＯＭ（記憶手段）２３と、ＲＡＭ２４と、印刷エンジン４００とを備えており、各構成はバスを介して互いに接続されている。
【００５２】
入力Ｉ／Ｆ２１は、ホストコンピュータ１０から供給された入力画像データを受け付ける部分であり、入力された入力画像データはＲＡＭ２４にいったん格納される。
【００５３】
ＲＯＭ２３は、フラッシュＲＯＭ、ＥＥＰＲＯＭなどの不揮発性のメモリであり、本発明の画像処理プログラムＧＰ、後述するセル繰り返しマトリクスのセルパターンデータＣＤ、および画像出力装置２０の制御プログラムなどが予め記憶されている。なお、本実施形態では、画像処理プログラムＧＰは予めＲＯＭ２３に格納されていているが、画像処理プログラムＧＰを記録した、メモリカードなどの記録媒体の形態で画像出力装置２０に供給してもよい。
【００５４】
ＲＡＭ２４は、ＣＰＵ２２が実行する各種処理のワーキングメモリとして主に用いられるメモリであり、色変換後の入力画像データを記憶するための入力バッファ２４ａ、およびハーフトーン処理後の出力画像データを記憶するための出力バッファ２４ｂが所定のメモリ領域に確保されている。
【００５５】
ＣＰＵ２２は、バスを介して接続された、入力Ｉ／Ｆ２１、ＲＯＭ２３、ＲＡＭ２４および印刷エンジン４００の各構成を制御する。特に、ＣＰＵ２２は、ＲＯＭ２３に格納された画像処理プログラムＧＰをＲＡＭ２４に読み出して、画像処理プログラムＧＰを実行することにより、色変換・ハーフトーン処理・パルス幅変調などの画像処理装置３００としての各種処理を行う。
【００５６】
次に、本発明の特徴部分であるハーフトーン処理部３２０の構成について説明する。図３はハーフトーン処理部の構成を示したブロック図である。図３に示すように、ハーフトーン処理部３２０は、基本セル設定部（第１の画素群設定部）３２１と、ハイライト判定部３２２と、エッジ判定部３２３と、基本セル拡大部（セル拡大部）３２４と、小セル設定部（第２の画素群設定部）３２５と、階調値付与部３２６とを有している。
【００５７】
基本セル設定部３２１は、入力画像データの画像領域を、予め決められた領域に区画して、セルを設定する部分である。なお、ここで設定されるセルを、「基本セル（第１の画素群）」という。
【００５８】
基本セル設定部３２１は、領域を区画するため、所定範囲の領域に複数個のセルを敷き詰めたセル繰り返しマトリクスを用いる。図４に、セル繰り返しマトリクスの一例を示す。図４に示すように、セル繰り返しマトリクスＣＭには、矩形状の領域に、同じ大きさ・形状である複数のセル（セル番号（１）〜（８））が千鳥状に配列されている。ここで、セル番号（３），（４），（６），（７），（８）のセルについては、各々が略円形状の形状に設定されている。セル番号（１），（２），（５）などマトリクスの周辺に位置して、略円形状になっていないセルについては、セル繰り返しマトリクスＣＭを配置したときに、隣り合う位置に配置されたセル繰り返しマトリクスＣＭのセルと合わさって略円形状の基本セルとなるように設定されている。
【００５９】
基本セル設定部３２１は、入力画像データの画像領域において、セル繰り返しマトリクスＣＭと同じ大きさの領域ごとにセル繰り返しマトリクスＣＭを配置して、セル繰り返しマトリクスＣＭのセルごとに領域を区画するようにして、予め決められた大きさ・形状の領域を有する複数の基本セルを設定する。
【００６０】
ハイライト判定部３２２は、基本セルの各々について、そのセル内の領域が、画像出力時に生成されるドットが少なく、明るい画像に出力されるハイライト領域であるかを判定する。
【００６１】
エッジ判定部３２３は、基本セルの各々について、そのセル内に入力画像データの階調値変化に関するエッジ（すなわち、階調値差が急激な部分）を含んでいるか否かを判定する。この判定により、エッジを含む基本セルとエッジを含まない基本セルとに区別する。
【００６２】
基本セル拡大部３２４は、ハイライト領域と判定された基本セルについて、所定の目標階調値に達するまで当該基本セルの周辺にある画素を基本セルに次々に取り込んで、基本セルを拡大する処理を行う。
【００６３】
この目標階調値は、印刷エンジン４００が安定して形成することができるドットサイズに対応した値であり、画像出力装置２０に対して設定された解像度（ｄｐｉ）に応じて、目標階調値が決定される。例えば、解像度６００ｄｐｉであれば、１画素のドットサイズ分に相当する目標階調値「２５５」、解像度１２００ｄｐｉであれば、１つ１つのドットが小さくなりドットが安定し難くなるので、５画素分のドットサイズに相当する「１２７５（＝５×２５５）」を目標階調値に設定する。本実施形態では、目標階調値は、予め「１２７５」に設定されているものとする。
【００６４】
小セル設定部３２５は、エッジを含む基本セル内の画像領域をさらに区画して、複数のセルを設定する部分である。ここで設定されるセルを、「小セル（第２の画素群）」という。小セル設定部３２５は、小セル内の階調値合計が目標階調値に達するまで、小セル内階調値の重心位置に近い画素を次々に取り込んで、小セルを設定する。これにより、エッジを含む基本セルは、各々が目標階調値分の階調値をセル内に有する複数の小セルに、さらに区画される。
【００６５】
階調値付与部３２６は、エッジを含まない基本セルおよび小セルの各セルについて、セル内階調値の重心位置に基づく画素に、セル内の階調値合計に応じた出力階調値を付与する処理（ドット生成処理）を行う。ここで付与する出力階調値は、印刷エンジン４００が形成可能なドットの階調数に対応する８ビットで表現された階調値（「０」〜「２５５」）となる。例えば、印刷エンジン４００が画素ごとにドットの有無を打ち分けて、画像を出力する場合であれば、予め、各画素が出力階調値「０」に初期設定された出力用の画像領域に対して、ドットを生成する画素に出力階調値「２５５」を付与する。これにより、各画素を、出力階調値「０」または「２５５」の２つのレベルで表す出力画像データを生成する。
【００６６】
以上に述べたように、階調値付与部３２６は、エッジを含まない基本セル、および基本セルを区画して得られた小セルの双方に対して、セル内の重心位置に基づく画素に出力階調値を付与するようにしている。このとき、セル繰り返しマトリクスＣＭにより基本セルを設定し、基本セルに出力階調値を付与する一連の処理は、「ＡＡＭ法」の処理手法に従っている。基本セルを小セルに区画し、小セルに出力階調値を付与する一連の処理は、「ＣＣ法」の処理手法に従っている。以下、ＡＡＭ法およびＣＣ法の各々の処理手法について、簡単に説明する。
【００６７】
まず、ＡＡＭ法について説明する。ＡＡＭ法は、セル繰り返しマトリクスＣＭを配置することにより予め決められた領域を有する基本セルを設定し、基本セルごとに出力階調値を付与する方法である。図５は、セル繰り返しマトリクスＣＭによる基本セル設定を説明するための図であり、入力画像データの画像領域に複数のセル繰り返しマトリクスＣＭを配置した一例を示している。ここで、図面横方向に左から右向きを「ｘ方向」、図面縦方向に上から下向きを「ｙ方向」とする。なお、以下では、ｘ方向プラス方向を「右」、ｘ方向マイナス方向を「左」、ｙ方向プラス方向を「下」、ｙ方向マイナス方向を「上」ともいう。
【００６８】
基本セルの設定は、入力画像データの画像領域を、セル繰り返しマトリクスＣＭと同じ大きさを有するセルブロックＣＢに区分けし、セルブロックＣＢごとにセル繰り返しマトリクスＣＭを配置することにより行う。そして、配置されたセル繰り返しマトリクスＣＭに設定されたセルに対応して基本セルＣＬ１に設定する。基本セルを設定する際には、図５に示すように、セルブロックＣＢ（ａ〜ａ＋２，ｂ〜ｂ＋１）が互いに隙間なく、ｘ方向及びｙ方向に繰り返して設定し、各々のセルブロックＣＢにセル繰り返しマトリクスＣＭを配置することにより、複数の基本セルＣＬ１を設定される。
【００６９】
このとき、図４を参照して、セル繰り返しマトリクスＣＭの周辺部にある略円形状になっていないセル（１），（２），（５）については、セル繰り返しマトリクスＣＭが配置されたときに、隣り合うセルブロックＣＢのセル繰り返しマトリクスＣＭのセルと合わさって、略円形状の１つの基本セルＣＬ１となる。例えば、セルブロックＣＢ（ａ＋１，ｂ）のセル（５）は、セルブロックＣＢ（ａ，ｂ）の右端の領域と合わさって、略円形状の基本セルＣＬ１を構成する。同様に、セルブロックＣＢ（ａ＋１，ｂ＋１）のセル（１）は、セルブロックＣＢ（ａ，ｂ）の右下端の領域、セルブロックＣＢ（ａ＋１，ｂ）の左下端の領域、セルブロックＣＢ（ａ，ｂ＋１）の右上端の領域と合わさって、略円形状の基本セルＣＬ１を構成する。
【００７０】
次に、ＡＡＭ法では、基本セルＣＬ１ごとに出力階調値を付与するドット生成処理を行う。図６は、ドット生成処理を説明する図であり、図６（ａ）は処理対象とする基本セルの一例、図６（ｂ）はセル内のうち出力階調値を付与する画素の一例を示している。図６（ａ）の例では、基本セルＣＬ１は階調値「３０」の領域と「５０」の領域とから構成され、セル内の階調値合計は「３９４０（＝２５５×１５＋１１５）」、セル内階調値の重心位置Ｇ１は（ｍ＋５．４８，ｎ＋６．７８）である。
【００７１】
出力階調値を付与する際には、重心位置Ｇに近い画素から順番に出力階調値を付与して、セル内階調値の合計分の階調値を付与する。ここで、階調値付与前には、出力バッファ２４ｂに出力階調値「０」が初期設定されており、付与する出力階調値はドット有りに対応する階調値「２５５」である。図６の例では、セル内の階調値合計は、出力階調値「２５５」を１５個の画素に付与するだけの値を有しているので、重心位置Ｇ１から近い順番に、１５個の画素（図６（ｂ）の（１）〜（１５）参照）に順番に出力階調値「２５５」を付与する。
【００７２】
なお、余りの階調値分の出力階調値を付与するか否かについては、余りの階調値が所定の閾値（例えば、最大値の半分の「１２７」）以上であるかを判断して決定する。図６の例では、余りの階調値「１１５」が閾値未満であるため、余りの階調値「１１５」分については１６番目の画素への付与を行わない。
【００７３】
このＡＡＭ法によれば、図６（ｂ）に示すように、基本セルＣＬ１の重心位置Ｇ１を中心として略円形状に、基本セルＣＬ１のセル内階調値に応じた大きさの範囲内の画素に出力階調値が付与される。
【００７４】
次に、ＣＣ方法について説明する。図７は、ＣＣ法の処理対象とする基本セルＣＬ１の一例を示している。図７の例では、基本セルＣＬ１は、階調値「５０」の領域と「２００」の領域とから構成されている。
【００７５】
図８は、図７に例として示した基本セルＣＬ１に対して、ＣＣ法により行う小セル設定を説明する図である。以下、図８に従って順番に説明する。
【００７６】
ＣＣ法では、まず、小セルＣＬ２を生成するための起点となる初期画素を定める。初期画素は、所定の順番に従って基本セルＣＬ１内の画素から、画素内の階調値を用いた出力階調値の付与が行われていない未処理画素をラスタ順に探索することにより定める。すなわち、対象領域の１番上の行の左端から右方向に走査し、右端まで探索されると、１つ下の行を再び左端から右方向に順番に探索する。探索により始めに見つかった未処理画素を初期画素とする。図８（ａ）の例では、ラスタ順に探索すると、基本セルＣＬ１から未処理画素（ｍ＋６，ｎ）が始めに探索されるので、初期画素として小セルＣＬ２に取り込む。このとき、小セルＣＬ２内の階調値の重心位置Ｇ２は（ｍ＋６．００，ｎ＋０．００）、小セルＣＬ２内の階調値合計は「２００」である。
【００７７】
次に、未処理画素のうち、重心位置Ｇ２に最も近い画素を選択してセルに取り込む。図８（ａ）の状態では、重心位置Ｇ２との距離が「１．４１」の画素（ｍ＋７，ｎ＋１）と、重心位置Ｇ２との距離が「１．００」の画素（ｍ＋６，ｎ＋１）とを比較して、より距離が短い画素（ｍ＋６，ｎ＋１）を小セルＣＬ２に取り込む（図８（ｂ）参照）。このとき、重心位置Ｇ２は（ｍ＋６．００，ｎ＋０．５０）、小セルＣＬ２内の階調値合計は「４００」に更新される。
【００７８】
同様に重心位置Ｇ２に近い画素を取り込む処理を繰り返し行うと、さらに、画素（ｍ＋７，ｎ＋１）、画素（ｍ＋６，ｎ＋２）、画素（ｍ＋７，ｎ＋２）、画素（ｍ＋５，ｎ＋２）が順番にセルＣＬ２に取り込まれる（図８（ｃ）参照）。これにより、重心位置Ｇ２は（ｍ＋６．１７，ｎ＋１．３３）、小セルＣＬ２内の階調値合計は「１２００」に更新される。
【００７９】
次に、重心位置Ｇ２（ｍ＋６．１７，ｎ＋１．３３）から最も近い未処理画素として、画素（ｍ＋６，ｎ＋３）が選択され、小セルＣＬ２に取り込まれる。ここで、画素（ｍ＋６，ｎ＋３）の全階調値を取り込むと、小セルＣＬ２内の階調値合計は「１４００」となり、目標階調値「１２７５」を超える。かかる場合には、目標階調値を超える分の階調値「１２５」を、元の画素（ｍ＋６，ｎ＋３）に戻しておく（図８（ｄ）参照）。こうすることにより、目標階調値分だけの階調値を有する小セルＣＬ２を設定する。
【００８０】
次に、基本セルＣＬ１内に、小セルＣＬ２に取り込まれていない未処理画素が残っているので、未処理画素のうちから初期画素を設定して、１つ目の小セルＣＬ２と同様にして、２つ目以降の小セルＣＬ２を設定する。このとき、図８（ｄ）において元の画素に戻された階調値の画素も未処理画素として処理を行う。このように、ＣＣ法では、基本セルＣＬ１内の領域に目標階調値分の階調値を有した小セルＣＬ２を設定する処理を繰り返し行うようにして、基本セルＣＬ１を複数の小セルＣＬ２に区画する。
【００８１】
ＣＣ法では、設定された小セルＣＬ２に対して出力階調値を付与する際に、小セルＣＬ２に対して図６（ｂ）にて説明したＡＡＭ法のドット生成処理と同様の処理を行う。ただし、小セルＣＬ２内の階調値は予め決められた目標階調値となるので、予め決められた数の画素に対して出力階調値が付与されることになる。
【００８２】
このＣＣ法によれば、基本セルＣＬ１を小セルＣＬ２にさらに区画して、小セルＣＬ２の重心位置Ｇ２を中心として略円形状であり、目標階調値に応じた大きさの範囲に出力階調値が付与される。この出力階調値に応じてドットを形成すると、基本セルＣＬ１を分割した小セルＣＬ２ごとにドットが形成されることになる。したがって、基本セルＣＬ１を対象として行うＣＣ法は、ＡＡＭ法に比べて画像の解像性がより高くなる処理といえる。
【００８３】
以上に説明したように、第１の実施形態では、入力画像の画像領域のうち、エッジ部分を含まない画像領域には、ＣＣ法に比べて重心位置・階調値合計の更新回数が少なく済むＡＡＭ法を適用して、エッジ部分の領域には解像性が高いＣＣ法を適用することにより、ハーフトーン処理を行うようにしている。
【００８４】
次に、第１の実施形態に係るハーフトーン処理の処理手順について、図９，１０のフローチャートに従って詳細に説明する。
【００８５】
ＣＰＵ２２は、ＲＯＭ２３から読み出した画像処理プログラムＧＰを実行して、入力Ｉ／Ｆ２１を介してホストコンピュータ１０から受け取った入力画像データをＣＭＹＫの入力画像データに変換する。そして、入力画像データのＣ，Ｍ，Ｙ，Ｋの各色について図９，１０に示したハーフトーン処理を開始する。
【００８６】
ハーフトーン処理を開始すると、ＣＰＵ２２は、色変換後の入力画像データを読み込んで、ＲＡＭ２４の入力バッファ２４ａに入力画像を展開し（ステップＳ１００）、入力画像の画像領域の左上に位置するセルブロックＣＢ（０，０）にセル繰り返しマトリクスＣＭを設定する（ステップＳ１０５）。ここで、設定したセル繰り返しマトリクスＣＭに含まれる複数の基本セルのうち、セル番号最小となる１つの基本セルＣＬ１に注目する。
【００８７】
次に、ＣＰＵ２２は、注目した基本セルＣＬ１についてのセル内の階調値合計ＦＴを次式に従って算出する（ステップＳ１１０）。ただし、「ｆ」は基本セル内の画素が有する階調値、「ｉ」は基本セルＣＬ１内の各画素に１対１に対応する番号である。
ＦＴ＝Σiｆ（ｉ）  …（１）
【００８８】
階調値合計を算出すると、階調値合計が「０」以上の値になっているか否かを判断する（ステップＳ１１５）。階調値合計が「０」未満であれば（ステップＳ１１５：Ｎｏ）、当該基本セルＣＬ１に対しては出力階調値を付与することなく、ステップＳ１５５に進む。
【００８９】
階調値合計が「０」以上であれば（ステップＳ１１５：Ｙｅｓ）、ＣＰＵ２２は、注目した基本セルＣＬ１がハイライト領域であるか否かを判断する（ステップＳ１２０）。具体的には、基本セルＣＬ１内の階調値合計が、ハイライトと非ハイライトとの境界値に対応する所定の閾値（＞０）より小さいか否かを判断し、閾値より小さければ（ステップＳ１２０：Ｙｅｓ）、ハイライト領域と判断して、ステップＳ１４５に進んで基本セル拡大処理を行う。閾値以上であれば（ステップＳ１２０：Ｎｏ）、非ハイライト領域であると判断して、ステップＳ１２５に進む。
【００９０】
以下、非ハイライト領域に対して行う処理から説明する。ステップＳ１２０において非ハイライト領域と判断されると、ＣＰＵ２２は、注目した基本セルＣＬ１内の階調値のコントラストを算出する（ステップＳ１２５）。コントラストの算出は、次式に従って行う。すなわち、基本セルＣＬ１のセル内階調値の最大値と最小値との差分値をコントラストＣとする。ただし、ｍａｘ（）は最大値を返す関数、ｍｉｎ（）は最小値を返す関数である。
Ｃ＝｜ｍａｘ（ｆ（ｉ））−ｍｉｎ（ｆ（ｉ））｜  …（２）
【００９１】
次に、コントラストを、エッジとエッジでない部分との境界値に対応する所定の基準値（例えば、階調値「８０」など）と比較して、注目した基本セルＣＬ１内にエッジを含んでいるか否かを判断する（ステップＳ１３０）。コントラストが基準値以上であれば（ステップＳ１３０：Ｙｅｓ）、注目した基本セルＣＬ１はエッジを含んでいると判断して、ステップＳ１４０に進み、注目した基本セルＣＬ１を対象としたＣＣ法による処理を行う。コントラストが基準値未満であれば（ステップＳ１３０：Ｎｏ）、注目した基本セルＣＬ１はエッジを含んでいないと判断して、ステップＳ１３５に進んで、注目した基本セルＣＬ１についてＡＡＭ法による処理を行う。
【００９２】
次に、ＡＡＭ法の処理手順について図１１のフローチャートに従って説明する。
【００９３】
ＡＡＭ法の処理が開始されると、まず、ＣＰＵ２２は、次式に従って、注目した基本セルＣＬ１のセル内階調値の重心位置Ｇ１（Ｇ１ｘ，Ｇ１ｙ）を算出する（ステップＳ２００）。
Ｇ１ｘ＝Σiｘ×ｆ（ｉ）  …（３）
Ｇ１ｙ＝Σiｙ×ｆ（ｉ）  …（４）
【００９４】
そして、重心近傍の画素にドットを生成するための出力階調値を付与するドット生成処理を行う（ステップＳ２１０）。ドット生成処理については、図１２のフローチャートに従って説明する。
【００９５】
ドット生成処理では、まず、ＣＰＵ２２は出力すべきドットサイズを決定する（ステップＳ３００）。ＡＡＭ法では、セル内階調値合計に応じた大きさのドットを重心位置Ｇ１に形成するため、ステップＳ１１０にて算出した基準セルＣＬ１のセル内階調値合計から、ドットサイズを決定する。本実施形態では、セル内階調値合計ＦＴを用いて、次式により、「１２７」以下の階調値分を切り捨て、「１２８」以上の階調値分を１画素分「２５５」の階調値に切り上げるようにして、ドットサイズＤＳを決定する。ただし、「ｉｎｔ（）」は、端数を切り捨てて整数を返す関数である。
ＤＳ＝ｎ×２５５
＝ｉｎｔ（ＦＴ／２５５＋０．５）×２５５  …（５）
【００９６】
ドットサイズを決定すると、ＣＰＵ２２は、セル内で未だ出力階調値が付与されていない未出力画素の各々とセル内重心位置Ｇ１との距離を算出して、セル内重心位置Ｇ１に最も近い未出力画素を探索する（ステップＳ３１０）。そして、探索された画素に出力階調値「２５５」を付与する（ステップＳ３２０）。具体的には、探索画素に対応する出力バッファ２４ｂのメモリ領域に記憶された値に階調値「２５５」を加算することにより、出力階調値の付与を行う。なお、ステップＳ３１０においてセル内重心位置Ｇ１に最も近い未出力画素が複数個探索されていた場合には、複数の探索画素のうちランダムに決定した１つの画素に対して出力階調値を付与するとよい。
【００９７】
次に、ＣＰＵ２２は、出力階調値付与後の値が、出力階調値がとりうる最大値「２５５」を超えたか否かを判断する（ステップＳ３３０）。最大値を超えていれば（ステップＳ３３０：Ｙｅｓ）、当該画素に付与された出力階調値を最大値「２５５」に調整してから（ステップＳ３４０）、ステップＳ３５０に進む。最大値を超えていなければ（ステップＳ３３０：Ｎｏ）、出力階調値を調整することなく、ステップＳ３５０に進む。
【００９８】
次に、ＣＰＵ２２は、セル内の画素に付与した出力階調値の合計が、ドットサイズＤＳ分の階調値に達したか否かを判断する（ステップＳ３５０）。ドットサイズＤＳ分の階調値に達していれば（ステップＳ３５０：Ｙｅｓ）、ドット生成処理を終了する。
【００９９】
ドットサイズＤＳの階調値に達していなければ（ステップＳ３５０：Ｎｏ）、基本セルＣＬ１内の全画素について出力階調値の付与を行って、セル内の全画素が処理されたか否かを判断する（ステップＳ３６０）。全画素について出力階調値を付与していなければ（ステップＳ３６０：Ｎｏ）、ステップＳ３１０に戻って次の未出力画素を探索する。全画素について出力階調値が付与されていれば（ステップＳ３６０：Ｙｅｓ）、出力階調値の付与対象となる画素がないため、ドット生成処理を終了する。ドット生成処理を終えるとＡＡＭ法の処理を終了して、図９，１０の処理に戻る。
【０１００】
また、図９のフローチャートのステップＳ１３０において、コントラストが基準値より大きい場合には（ステップＳ１３０：Ｙｅｓ）、当該基本セルＣＬ１が階調値変化の大きいエッジを含んでいると判断して、ステップＳ１４０に進み、基本セルＣＬ１を対象としてＣＣ法による処理を行う。以下、基本セルを対象としたＣＣ法の処理手順について図１３のフローチャートに従って説明する。
【０１０１】
基本セルＣＬ１を対象としたＣＣ法の処理を開始すると、ＣＰＵ２２は、注目した基本セルＣＬ１内に、未処理画素があるか否かを判断する（ステップＳ４００）。基本セルＣＬ１内の画素をラスタ順に探索し、未処理画素が探索されると（ステップＳ４００：Ｙｅｓ）、探索された未処理画素に注目してステップＳ４０５に進む。ステップＳ４０５以降の処理を行うことで、未処理画素がなくなっていれば（ステップＳ４００：Ｎｏ）、基本セルを対象としたＣＣ法の処理を終了する。
【０１０２】
ステップＳ４０５に進むと、ＣＰＵ２２は、次式に従って、注目した未処理画素を含む小セルＣＬ２内の階調値の重心位置Ｇ２（Ｇ２ｘ，Ｇ２ｙ）を算出する。ただし、「ｊ」は小セルＣＬ２内の各画素に１対１に対応する番号である。
Ｇ２ｘ＝Σjｘ×ｆ（ｊ）  …（６）
Ｇ２ｙ＝Σjｙ×ｆ（ｊ）  …（７）
【０１０３】
次に、ステップＳ４１０では、ＣＰＵ２２は、小セルＣＬ２の重心位置Ｇ２に最も近い未処理画素を探索する。
【０１０４】
なお、このときの探索においては、処理対象としている基本セルＣＬ１内の未処理画素に加えて、隣接する基本セルＣＬ１の未処理画素をさらに加えた複数の未処理画素のうちから、重心位置Ｇ２に最も近い画素を探索する。これにより、基本セルＣＬ１の区切りにとらわれずに、重心位置Ｇ２に最も近い未処理画素が探索される。
【０１０５】
次に、ステップＳ４１５では、ＣＰＵ２２は、探索画素の階調値が最大値、すなわち「２５５」であるか否かを判断する。最大値であれば（ステップＳ４１５：Ｙｅｓ）、ステップＳ４２０に進んで、探索画素に対応する出力バッファ２４ｂの領域に階調値「２５５」を書き込むようにして、出力階調値の最大値を探索画素に付与してから、ステップＳ４１０に戻る。
【０１０６】
探索画素の階調値が最大値でなく（ステップＳ４１５：Ｎｏ）、ステップＳ４２５に進むと、小セルＣＬ２内の階調値合計に探索画素の階調値を加えた値が、目標階調値以下であるか否かを判断する。目標階調値以下であれば（ステップＳ４２５：Ｙｅｓ）、ステップＳ４３０に進んで探索画素を小セルＣＬ２に取り込む。目標階調値を超えていれば（ステップＳ４２５：Ｎｏ）、ステップＳ４３５に進んで、目標階調値からの不足分の階調値だけを小セルＣＬ２に取り込んで、小セル内の階調値合計を目標階調値に合わせる（図８（ｄ）参照）。
【０１０７】
ステップＳ４３０またはステップＳ４３５の処理を行うと、次に、新たに取り込んだ画素を考慮して、小セルＣＬ２の新たな重心位置Ｇ２および階調値合計を算出し、更新する（ステップＳ４４０）。
【０１０８】
次に、小セルＣＬ２内の階調値合計が目標階調値以上になっているか否かを判断する（ステップＳ４４５）。目標階調値未満であれば（ステップＳ４４５：Ｎｏ）、ステップＳ４５５に進んで未処理画素があるか否かを判断する。未処理画素が残っていれば（ステップＳ４５５：Ｙｅｓ）、ステップＳ４１０の処理に戻って、次の未処理画素を探索する処理を行う。小セルＣＬ２内の階調値合計が目標階調値以上となるか（ステップＳ４４５：Ｙｅｓ）、または未処理画素が残っていなければ（ステップＳ４５５：Ｎｏ）、ステップＳ４５０に進んでドット生成処理を行う。
【０１０９】
ＣＣ法におけるドット生成処理では、図１２のフローチャートにて説明したＡＡＭ法におけるドット生成処理と概ね同様の処理を小セルＣＬ２に対して行うが、ドットサイズを決定するステップＳ３００の処理が異なる。上述したように、ＣＣ法の目標階調値には予め決められた値（本実施形態では、「１２７５」）を用いているので、ステップＳ３００では予め決められた目標階調値がドットサイズＤＳとして決定され、このドットサイズＤＳを用いてドット生成処理を行うことになる。ＣＣ法におけるドット生成処理を終えると、図１３に戻って、未処理画素が残っているか否かを判断する（ステップＳ４００）。ステップＳ４００〜Ｓ４５５の処理を繰り返して、基本セルＣＬ１内に未処理画素がなくなると（ステップＳ４００：Ｎｏ）、基本セルを対象としたＣＣ法の処理を終了して、図９，１０の処理に戻る。
【０１１０】
また、図９のステップＳ１２０にて基本セルＣＬ１がハイライト領域と判断された場合に行うステップＳ１４５の基本セル拡大処理の処理手順について、図１４のフローチャートに従って説明する。
【０１１１】
基本セル拡大処理を開始すると、まず、ＣＰＵ２２は、基本セルＣＬ１の重心位置Ｇ１を算出する（ステップＳ５００）。そして、次のステップＳ５１０〜Ｓ５５０の処理については、基本セルを対象としたＣＣ法におけるステップＳ４１０およびＳ４２５〜Ｓ４４０の処理と同様の処理を基本セルＣＬ１について行うことにより、新たな未処理画素を基本セルＣＬ１に取り込んでセルを拡大する。そして、基本セルＣＬ１内の階調値合計が目標階調値以上になっているか否かを判断する（ステップＳ５６０）。目標階調値に足りていなければ（ステップＳ５６０：Ｎｏ）、未処理画素が残っているか否かを判断する（ステップＳ５７０）。未処理画素が残っていれば（ステップＳ５７０：Ｙｅｓ）、ステップＳ５１０に戻る。セル内階調値が目標階調値以上になっているか（ステップＳ５６０：Ｙｅｓ）、または基本セルＣＬ１内に未処理画素がなくなれば（ステップＳ５７０：Ｎｏ）、基本セル拡大処理を終了する。
【０１１２】
基本セル拡大処理を終了すると図９の処理に戻って、ドット生成処理を行う（ステップＳ１５０）。このときのドット生成処理は、基本セルを対象としたＣＣ法の処理におけるステップＳ４５０と同様の処理を行うため説明を省略するが、拡大した基本セルＣＬ１に対して、セル重心を中心として予め決められた目標階調値分の出力階調値を付与した状態で、ドット生成処理が終了する。
【０１１３】
ステップＳ２１０、Ｓ４５０またはＳ１５０において、ドットサイズ分の出力階調値を付与してドット生成処理を終了すると、次に、ＣＰＵ２２は、設定されたセル繰り返しマトリクスＣＭに含まれる全ての基本セルＣＬ１について処理を行ったか否かを判断する（ステップＳ１５５）。全基本セルＣＬ１について処理が行われていなければ（ステップＳ１５５：Ｎｏ）、セル繰り返しマトリクスＣＭの次のセル番号の基本セルＣＬ１に注目してから（ステップＳ１６０）、ステップＳ１１０に戻って、次の基本セルＣＬ１について処理を行う。
【０１１４】
設定されたセル繰り返しマトリクスＣＭに含まれる全ての基本セルＣＬ１について処理が行われていれば（ステップＳ１５５：Ｙｅｓ）、ステップＳ１６５に進んで、ＣＰＵ２２は、入力画像データの画像領域において、設定されたセル繰り返しマトリクスＣＭの右側、すなわちｘ方向に未処理画素があるか否かを判断する。右側に未処理画素があれば（ステップＳ１６５：Ｙｅｓ）、セル繰り返しマトリクスＣＭを１つ右側のセルブロックに配置するようにして、セル繰り返しマトリクスＣＭを設定する（ステップＳ１７０）。そして新たに配置したセル繰り返しマトリクスＣＭ内の基本セルＣＬ１について、ステップＳ１１０以降の処理を行う。右側に未処理画素がなければ（ステップＳ１６５：Ｎｏ）、設定されたセル繰り返しマトリクスＣＭより下側、すなわちｙ方向に未処理画素があるか否かを判断する（ステップＳ１７５）。下側に未処理画素があれば（ステップＳ１７５：Ｙｅｓ）、セル繰り返しマトリクスＣＭをセルブロック１つ分下側の左端のセルブロックにセル繰り返しマトリクスＣＭを配置して（ステップＳ１８０）、新たに配置したセル繰り返しマトリクスＣＭ内の基本セルＣＬ１について、ステップＳ１１０以降の処理を行う。このようにラスタ順にセル繰り返しマトリクスＣＭの配置を繰り返して、下側に未処理画素がなくなれば（ステップＳ１７５：Ｎｏ）、図９，１０のハーフトーン処理を終了する。
【０１１５】
上述した図９，１０のハーフトーン処理を行うことにより、入力バッファ２４ａに格納した色変換後の入力画像データから、出力バッファ２４ｂ上には、各画素ごとに「０」または「２５５」の出力階調値を有する出力画像データが生成される。このハーフトーン処理は、入力画像データのＣ，Ｍ，Ｙ，Ｋ各色について行う。ハーフトーン処理部３２０は、生成したＣ，Ｍ，Ｙ，Ｋの出力画像データを、出力バッファ２４ｂから読み出して、パルス幅変調部３３０に出力する。パルス幅変調部３３０は、出力画像データにパルス幅変調を施して、駆動データ形式の出力画像データに変換し、印刷エンジン４００に出力する。印刷エンジン４００のレーザドライバ４１０は、駆動データ形式の出力画像データに従ってレーザダイオード４２０を駆動するようにして、出力階調値が付与された画素にドットを形成することにより、Ｃ，Ｍ，Ｙ，Ｋの画像を重ね合わせるようにして、入力画像データに対応したカラー画像を出力する。
【０１１６】
図１５に、本実施形態のハーフトーン処理において設定されたセルの一例を示す。図１５（ａ）は、基本セルＣＬ１に区画された画像領域の一例であり、図１５（ｂ）は、図１５（ａ）の基本セルを、小セルＣＬ２に区画した例を示している。図１５（ａ）では、セル繰り返しマトリクスＣＭを配置して、エッジＥを一部に含まない基本セルＣＬ１を実線、エッジＥを一部に含む基本セルＣＬ１を破線で示している。また、図１５（ａ）の例では、エッジＥより左側が階調値の高い領域（「２００」）、右側が階調値が小さい領域（「５０」）である。エッジＥを一部にも含まない基本セルＣＬ１に対しては、ＡＡＭ法によるハーフトーン処理が行われる。一方、エッジＥを一部にでも含む基本セルＣＬ１については、図１５（ｂ）に示すように、ＣＣ法の処理によって１つの基本セルＣＬ１が複数の小セルＣＬ２に区画される。
【０１１７】
また、ステップＳ４１０において、処理対象としている基本セルＣＬ１の未処理画素、および隣接する基本セルＣＬ１の未処理画素のうちから最も近い画素を探索したことにより、エッジＥを含む基本セルＣＬ１の境界部分について、隣接する基本セルＣＬ１にまたがるような小セルＣＬ２の設定が許容されている（例えば、図１５（ｂ）の小セルＡ参照）。これにより、基本セルＣＬ１間の境界部分に設定される小セルＣＬ２であっても、セル形状の偏りの発生を抑制して、略円形状となる。
【０１１８】
以下、第１の実施形態における効果を記載する。
【０１１９】
（１）エッジを含まないと判定された基本セルＣＬ１については、セル繰り返しマトリクスＣＭを用いて、予め決められた領域に区画して、基本セルＣＬ１を設定するので、基本セルＣＬ１の設定に要する演算量が少ない。特に、ＣＣ法を用いて基本セルＣＬ１を設定する場合に比べると、階調値合計や重心位置の更新演算などに要する演算量が少なくなる。また、エッジを含むと判定された基本セルＣＬ１については、ＣＣ法の手法によりさらに小セルＣＬ２に区画し、小セルＣＬ２の重心位置Ｇ２に出力階調値を付与するので、エッジ部分の解像性が高くなる。したがって、エッジ再現性に優れたハーフトーン処理を高速に行うことが可能となる。また、生成された出力画像データの出力階調値に従ってドットを形成することにより、エッジの再現性に優れた画像を高速に出力することが可能である。
【０１２０】
（２）エッジを含まないと判定された基本セルＣＬ１を対象として行うＡＡＭ法では、基本セルＣＬ１に対して行うＣＣ法に比べてセル形状が大きくなるため、セル内階調値合計も大きく、出力階調値が付与される画素数がより多くなりやすい。このため、１つのセルに形成されるドットサイズが大きくなり、小さいドットを露光・現像・定着することによる不安定なドット形成を抑制することになるので、ドット形成がより安定する。したがって、エッジを含まない領域について、階調安定性により優れた画像を出力することができる。
【０１２１】
（３）エッジを含むと判定された基本セルＣＬ１を対象として行うＣＣ法では、目標階調値に達するまで画素を次々に取り込むようにして小セルＣＬ２に区画しているので、小セルの大きさのばらつきを抑え、出力階調値が付与される画素間の距離のばらつきが抑制される。したがって、出力階調値が付与される画素位置の分散性に優れたハーフトーン処理を行って、画質に優れた画像を出力できるようになる。また、目標階調値は、設定された解像度に応じてドットが安定して形成されるドットサイズに対応しているので、ドット解像度を高めながら安定したドット形成により、階調安定性に優れた画像を出力することができる。
【０１２２】
（４）ＣＣ法では、セル内重心位置Ｇ２に近い画素から順番に取り込んで、小セルＣＬ２を拡大するので、小セルＣＬ２は重心位置Ｇ２を中心として略円形状に拡大する可能性が高い。これにより、小セルＣＬ２間で出力階調値が付与される画素間の距離のばらつきが抑制されるので、出力階調値が付与される画素位置の分散性に優れたハーフトーン処理を行って、画質に優れた画像を出力することが可能になる。
【０１２３】
（５）ドット生成処理において出力階調値を付与する際、目標階調値分のセル内階調値合計を、重心位置に近い画素から順番に、出力階調値「２５５」ずつ付与しているので、生成されるドットは重心位置から略円形状に拡大する。これにより、出力階調値が付与される画素位置の分散性により優れたハーフトーン処理を行って、画質により優れた画像を出力することができる。また、セル内階調値合計に応じて出力階調値が付与される画素数（ドットサイズ）を決定しているため、入力画像データの階調再現性に優れた画像を出力することができる。
【０１２４】
（６）基本セルＣＬ１のうち、ハイライト領域と判定された基本セルＣＬ１については、セル内階調値の重心位置Ｇ１に近い画素を、隣接する基本セルＣＬ１から取り込んでセルを拡大することにより、セル内階調値合計が目標階調値に達するようにしている（ステップＳ１４５：基本セル拡大処理）。これにより、ドットが生成される画素数が少ないハイライト領域についても、目標階調値に対応する大きさのドット（本実施形態では５画素分の大きさ）を生成するため、安定したドットが生成される。したがって、ハイライト領域において階調安定性に優れた画像を得ることができる。また、セル拡大処理においても、重心位置に近い画素から順番に取り込むため基本セルＣＬ１は略円形状に拡大するので、ハイライト領域についても、画質に優れた画像を出力することが可能である。
【０１２５】
（７）エッジの判定は、基本セルＣＬ１内階調値の階調値の最大値と最小値との差分値であるコントラストを算出し、コントラストが所定の基準値を超えているか判断することにより行っている（ステップＳ１２０，Ｓ１３０）。したがって、エッジ判定を演算量が少ない簡易な処理で判断することができ、エッジ判定を伴うハーフトーン処理をより高速に行うことができる。
【０１２６】
（８）小セルＣＬ２に新たに取り込む未処理画素を探索する際に（ステップＳ４１０）、処理対象としている基本セルＣＬ１の未処理画素に加えて、隣接する基本セルＣＬ１の未処理画素をさらに加えた複数の未処理画素のうちから、重心位置Ｇ２に最も近い画素を探索したので、基本セルＣＬ１間の境界部分に設定される小セルＣＬ２の形状に偏りが生じる可能性は低くなり、略円形状に近付く。このため、ドット位置の偏りが小さく、出力階調値が付与される画素位置の分散性に優れたハーフトーン処理を行って、より画質に優れた画像を出力することが可能である。
【０１２７】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。
【０１２８】
第２の実施形態では、エッジを含むと判定された基本セルＣＬ１については、基本セルＣＬ１の領域にとらわれることなく、ＣＣ法による小セルＣＬ２の設定を行う。すなわち、エッジを含むと判定された基本セルＣＬ１のうち、互いに隣接する基本セルＣＬ１の領域が合わさった領域に対してＣＣ法によるハーフトーン処理を適用する。以下、第２の実施形態に係るハーフトーン処理について、図１６，１７のフローチャートに従って説明する。なお、第１の実施形態と同様の処理を行う部分については説明を省略している。
【０１２９】
ハーフトーン処理を開始して、ステップＳ６００〜Ｓ６２５の処理については、第１の実施形態におけるステップＳ１００〜Ｓ１２５の処理と同様であるため、説明を省略する。
【０１３０】
ステップＳ６２５からステップＳ６３０に進むと、ＣＰＵ（エッジ判定部３２３）２２は、基本セルＣＬ１がエッジを含んでいるか否かを判定する。基本セルＣＬ１がエッジを含まないと判定すると（ステップＳ６３０：Ｎｏ）、ステップＳ６３５に進んで、第１の実施形態において説明したＡＡＭ法と同様の処理を行う。一方、基本セルＣＬ１がエッジを含むと判定すると（ステップＳ６３０：Ｙｅｓ）、第１の実施形態とは異なり、基本セルを対象としたＣＣ法の処理を行うことなく、ステップＳ６５５に進む。次のステップＳ６５５〜Ｓ６８０の処理についても、第１の実施形態におけるステップＳ１５５〜Ｓ１８０と同様の処理を行うため説明を省略する。
【０１３１】
ただし、ステップＳ６７５において、設定されたセル繰り返しマトリクスＣＭより下に未処理画素がないと判断されると（ステップＳ６７５：Ｎｏ）、ステップＳ６８５に進む。このとき、入力画像データの画像領域は、エッジを含まない基本セルＣＬ１の領域にはＡＡＭ法による出力階調値が付与され、エッジを含む基本セルＣＬ１の領域は未処理画素のままの状態となっている。ステップＳ６８５では、この未処理画素が残った全領域に対して、ＣＣ法による処理（全未処理画素を対象としたＣＣ法）を行う。以下、図１８のフローチャートに従って説明する。
【０１３２】
全未処理画素を対象としたＣＣ法を開始すると、入力画像データの全画像領域について、未処理画素が残っているか否かを判断する（ステップＳ７００）。未処理画素が残っていれば（ステップＳ７００：Ｙｅｓ）、ラスタ順に探索して、最初に探索された未処理画素を初期画素として小セルＣＬ２に取り込んでから、小セルＣＬ２内の重心位置を算出する（ステップＳ７０５）。
【０１３３】
ステップＳ７１０〜ステップＳ７５５の処理は、第１の実施形態のステップＳ４０５〜Ｓ４５５と同様に行って、入力画像データの画像領域に未処理画素がなくなるまで、ステップＳ７００〜Ｓ７５０の処理を繰り返し行う。そして、未処理画素がなくなると、図１８の全未処理画素を対象としたＣＣ法、および図１６，１７のハーフトーン処理を終了する。
【０１３４】
以上に説明したハーフトーン処理によれば、エッジを含まないと判定された基本セルＣＬ１について、ＡＡＭ法による処理を行ってから、残った画像領域（すなわち、エッジを含むと判定された基本セルＣＬ１の領域）については、基本セルＣＬ１の区切りにとらわれることなく、全未処理画素に対してＣＣ法による処理が行われる。これにより、エッジＥを一部に含まない基本セル（図１５（ａ）の実線の基本セル参照）ＣＬ１については、ＡＡＭ法によるハーフトーン処理が行われ、エッジＥを一部にでも含む基本セル（図１５（ａ）の破線の基本セル参照）の領域については、ＣＣ法によるハーフトーン処理が行われる。
【０１３５】
第２の実施形態によれば、第１の実施形態における（１）〜（７）と同様の効果を得ることができる。
【０１３６】
（第３の実施形態）
次に、本発明の第３の実施形態について説明する。
【０１３７】
第３の実施形態のパルス幅変調部３３０は、ハーフトーン処理部３２０から出力された出力画像データにパルス幅変調を施すことにより、２以上のＫ（Ｋは整数）段階のパルス幅をもつパルス幅信号に変換することが可能である。本実施形態では、パルス幅変調部３３０が２５５段階のパルス幅信号に対応する場合について説明する。
【０１３８】
第１の実施形態では、式（５）にて説明したように「１２７」以下の階調値分を切り捨てて、「１２７」より大きい階調値については「２５５」分のドットを生成することとなっていた。このため、図６の例では、１５個分の画素に「２５５」の階調値を付与して、残った「１１５」の階調値分には出力階調値を付与していなかった。
【０１３９】
これに対し、第３の実施形態では、パルス幅変調部３３０が２５５段階のパルス幅信号を生成可能であるため、図６（ｂ）の例の場合であれば、階調値付与部３２６は、残った階調値「１１５」を重心位置Ｇ１に近い画素（ｍ＋６，ｎ＋９）に付与する。
【０１４０】
そのため、階調値付与部３２６は、出力画像データを生成する際に、出力階調値を付与した画素について、次々に出力階調値を付与することにより、付与された画素の集合が重心位置Ｇ１から拡大する方向、すなわちドット成長方向を示すドット成長データ（拡大方向情報）を生成する。
【０１４１】
パルス幅変調部３３０は、階調値「２５５」未満の出力階調値を付与する際に、ドット成長データを参照して、出力階調値の付与対象の画素内において、ドット成長方向に対する反対側、すなわち重心位置により近い側を起点として出力階調値分のパルス幅信号を生成する。
【０１４２】
このパルス幅変調を図６の例の場合について行うと、図１９に示したように、画素（ｍ＋６，ｎ＋９）に対して、画素の左側から出力階調値「１１５」分のパルス幅を有したドットが形成される。こうすることにより、基本セルＣＬ１には、１つの塊状のドットが生成され、ドットの孤立が抑制される。
【０１４３】
第３の実施形態によれば、第１の実施形態における（１）〜（７）に加えて、さらに以下の効果を得ることができる。
【０１４４】
（９）ＡＡＭ法において、基本セルＣＬ１内階調値に対応する分の目標階調値を付与したことにより、ハーフトーン処理前後におけるセル内階調値合計と、出力階調値の合計とが等しくなるので、入力画像データの階調再現性により優れたハーフトーン処理を行うことができる。
【０１４５】
（１０）ドットの孤立を抑制することにより、ドット形成がより安定し、階調安定性により優れた画像を出力することができる。
【０１４６】
以上、本発明の第１ないし第３の実施形態について説明したが、本発明はこれに限られることなく、様々な形態とすることもできる。以下、本発明の変形例について説明する。
【０１４７】
（変形例１）上記第１ないし第３の実施形態では、基本セル内ＣＬ１の階調値の最大値と最小値との差分値を用いてエッジを判定したが、エッジの判定方法についてはこれに限られない。例えば、SobelやPrewittなどのエッジ検出フィルタを用いてエッジを検出して、基本セルＣＬ１内にエッジを含んでいるかによりエッジの判定を行ってもよい。また、ＰＤＬ(Page Description Language)などのプリンタ言語で記述した印刷データをラスタライズする際に、テキスト部分の描画範囲を示す付加情報を入力画像データに加えておき、ハーフトーン処理において、付加情報を参照してテキストの描画範囲を含む基本セルＣＬ１を、エッジを含む基本セルＣＬ１と判定するようにしてもよい。このようにすれば、テキスト部分について視認性のよい画像を出力することができる。
【０１４８】
（変形例２）第２の変形例として、本発明は、ホストコンピュータ１０側でハーフトーン処理を行うシステム構成としてもよい。すなわち、図２０に示すように、ホストコンピュータ（画像処理装置）１０は、ラスタライズ部２００、色変換部３１０およびハーフトーン処理部３２０を有する画像処理部３００を備えている。このとき、ハーフトーン処理部３２０は、入力画像データにハーフトーン処理を施して出力画像データに変換し、色変換後の出力画像データを画像出力装置２０に出力することにより、入力画像データの印刷を行う。
【０１４９】
（変形例３）上記第１ないし第３の実施形態では、エッジを含む基本セルＣＬ１をＣＣ法を用いて小セルＣＬ２に分割する場合について説明したが、小セルＣＬ２に分割する際にも、予め決められたセル形状に区画してもよい。すなわち、基本セルＣＬ１を複数の小セルＣＬ２に区画するためのセルパターンのデータを予めＲＯＭ２３に記憶しておき、エッジを含むと判定された基本セルＣＬ１に対しては、セルパターンを配置することによって、小セルＣＬ２に分割する。このようにしても、エッジ部分の解像性を高めることができるので、エッジ再現性に優れたハーフトーン処理を高速に行うことが可能である。
【０１５０】
（変形例４）セル繰り返しマトリクスＣＭについて、生成される基本セルＣＬ１の形状・大きさは図４の例に限られない。例えば、基本セルの形状が四角形の形状であったり、六角形の形状の基本セルＣＬ１がハニカム状に配列したマトリクスであってもよい。また、Ｃ，Ｍ，Ｙ，Ｋの各色について異なるマトリクスを適用するようにしてもよい。図４の例では、ｘ，ｙ方向に沿うように基本セルが並んでいるが、各色間で、例えば、３０°ずつずれた方向に基本セルが並んだマトリスクを適用するようにすれば、各色間のドット位置が適宜ばらつき、モアレの少ない好適な画像を得ることができる。
【０１５１】
（変形例５）上記第１ないし第３の実施形態では、ＣＰＵ２２が画像処理プログラムＧＰを実行することにより、ソフトウェアによってハーフトーン処理を実現する例について説明した。ハーフトーン処理を行う機能を、ＡＳＩＣなどのハードウェアにより実現してもよい。もちろん、一部の機能をハードウェアにもたせて、ハードウェアがもたない機能をソフトウェアによって実現するようにしてもよい。
【０１５２】
（変形例６）上記第１ないし第３の実施形態において、画像処理装置としての画像出力装置は、レーザプリンタであった。本発明はこれに限定されるものでなく、例えば、インクジェットプリンタやサーマルプリンタなど、他の印刷方式のプリンタや複写機、ワープロ、ファックス、ディスプレイなどの種々の機器に適用することができる。
【図面の簡単な説明】
【０１５３】
【図１】第１の実施形態に係る画像出力システムの構成を示した図。
【図２】画像出力装置のハードウェア構成を示した図。
【図３】ハーフトーン処理部の構成を示したブロック図。
【図４】セル繰り返しマトリクスの一例を示した図。
【図５】セル繰り返しマトリクスによる基本セル設定を説明するための図。
【図６】ドット生成処理を説明するための図であり、（ａ）は基本セルの一例、（ｂ）は出力階調値を付与した一例を示した図。
【図７】ＣＣ法の処理対象とする基本セルの一例を示した図。
【図８】ＣＣ法により行う小セル設定を説明するための図。
【図９】ハーフトーン処理の処理手順を示したフローチャート。
【図１０】ハーフトーン処理の処理手順を示したフローチャート。
【図１１】ＡＡＭ法の処理の処理手順を示したフローチャート。
【図１２】ドット生成処理の処理手順を示したフローチャート。
【図１３】基本セルを対象としたＣＣ法の処理の流れを示したフローチャート。
【図１４】基本セル拡大処理の処理手順を示したフローチャート。
【図１５】セル設定の一例を示した図。
【図１６】第２の実施形態に係るハーフトーン処理の処理手順を示したフローチャート。
【図１７】ハーフトーン処理の処理手順を示したフローチャート。
【図１８】全未処理画素を対象としたＣＣ法の処理手順を示したフローチャート。
【図１９】第３の実施形態において、出力されるドットの一例を示した図。
【図２０】第２の変形例を説明するための図。
【符号の説明】
【０１５４】
１０…ホストコンピュータ、２０…画像出力装置、２１…入力インターフェイス、２２…ＣＰＵ、２３…記憶手段としてのＲＯＭ、２４…ＲＡＭ、２４ａ…入力バッファ、２４ｂ…出力バッファ、１００…アプリケーション部、２００…ラスタライズ部、３００…画像処理装置としての画像処理部、３１０…色変換部、３２０…ハーフトーン処理部、３２１…第１の画素群設定部としての基本セル設定部、３２２…ハイライト判定部、３２３…エッジ判定部、３２４…画素群拡大部としての基本セル拡大部、３２５…第２の画素群設定部としての小セル設定部、３２６…階調値付与部、３３０…パルス幅変調部、４００…画像出力部としての印刷エンジン、４１０…レーザドライバ、４２０…レーザダイオード、ＣＤ…パターンデータとしてのセルパターンデータ、ＧＰ…画像処理プログラム、ＣＭ…セル繰り返しマトリクス、ＣＬ１…基本セル、ＣＬ２…小セル、ＣＢ…セルブロック、Ｇ１…基本セルの重心位置、Ｇ２…小セルの重心位置。
【図１】
2008067259.tif 000003
【図２】
2008067259.tif 000004
【図３】
2008067259.tif 000005
【図４】
2008067259.tif 000006
【図５】
2008067259.tif 000007
【図６】
2008067259.tif 000008
【図７】
2008067259.tif 000009
【図８】
2008067259.tif 000010
【図９】
2008067259.tif 000011
【図１０】
2008067259.tif 000012
【図１１】
2008067259.tif 000013
【図１２】
2008067259.tif 000014
【図１３】
2008067259.tif 000015
【図１４】
2008067259.tif 000016
【図１５】
2008067259.tif 000017
【図１６】
2008067259.tif 000018
【図１７】
2008067259.tif 000019
【図１８】
2008067259.tif 000020
【図１９】
2008067259.tif 000021
【図２０】
2008067259.tif 000022