(57)【要約】【課題】  画素の画像データを量子化する際に、セルの形状の歪を抑えるようにする。【解決手段】  画素ごとの階調値の総和が閾値以上となるまで未処理画素を取り込み、画素群を生成する画素群生成部６０と、未処理画素を取り込む毎に画素群の基準点の位置を決定する画素群基準点決定部６４と、画素群の階調値の総和が閾値以上になった時点で画素群基準点決定部６４で決定した基準点に位置する画素に量子化データを付与する量子化データ付与部６６とを備える。画素群生成部６０は、画素群基準点決定部６４で決定した基準点から最短距離にある未処理画素を選択画素として選択し、選択画素が１つの場合はその画素から階調値を取り込み、選択画素が複数ある場合はそのうち少なくとも２つの画素からそれぞれ階調値を取り込む。【選択図】      図２
2006074649.tif 000002
【特許請求の範囲】
【請求項１】
画素ごとの階調値の総和が閾値以上となるまで未処理画素を取り込み、画素群を生成する画素群生成部と、前記画素群生成部で未処理画素を取り込む毎に画素群の基準点の位置を決定する画素群基準点決定部と、前記画素群の階調値の総和が閾値以上になった時点で前記画素群基準点決定部で決定した基準点に位置する画素に量子化データを付与する量子化データ付与部とを備え、前記画素群生成部は、前記画素群基準点決定部で決定した基準点から最短距離にある未処理画素を選択画素として選択し、前記選択画素が１つの場合はその画素から階調値を取り込み、前記選択画素が複数ある場合はそのうち少なくとも２つの画素からそれぞれ階調値を取り込む画素選択部を備えていることを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、前記画素選択部は、前記選択画素が１つで、前記選択画素の階調値を前記画素群に取り込むと閾値を超える場合、閾値と前記画素群の階調値の総和との差分を前記選択画素から前記画素群に取り込むことを特徴とする画像処理装置。
【請求項３】
請求項１に記載の画像処理装置であって、前記画素選択部は、前記選択画素が複数ある場合はそれらの画素の最小の階調値である最小階調値を前記選択画素の少なくとも２つの画素から前記画素群に取り込むことを特徴とする画像処理装置。
【請求項４】
請求項１または３に記載の画像処理装置であって、前記画素選択部は、前記選択画素が複数あり、前記最小階調値を前記選択画素の各画素から前記画素群に取り込むと閾値を超える場合、閾値と前記画素群の階調値の総和との差分を分配して、前記選択画素の少なくとも２つの画素から前記画素群に取り込むことを特徴とする画像処理装置。
【請求項５】
請求項１から４のいずれか一項に記載の画像処理装置であって、前記画素群生成部は、前記選択画素の各画素から階調値を取り込み後、階調値が残っている画素がある場合、それらの画素を未処理画素とすることを特徴とする画像処理装置。
【請求項６】
請求項１から５のいずれか一項に記載の画像処理装置であって、前記画素群生成部が最初に選択した画素の階調値に応じて、前記階調値を閾値との差分である白濃度に変換する白濃度変換部、を備えていることを特徴とする画像処理装置。
【請求項７】
画素ごとの階調値の総和が閾値以上となるまで未処理画素を取り込み、画素群を生成する画素群生成工程と、前記画素群生成工程で未処理画素を取り込む毎に画素群の基準点の位置を決定する画素群基準点決定工程と、前記画素群の階調値の総和が閾値以上になった時点で前記画素群基準点決定工程で決定した基準点に位置する画素に量子化データを付与する量子化データ付与工程とを備え、前記画素群生成工程は、前記画素群基準点決定工程で決定した基準点から最短距離にある未処理画素を選択画素として選択し、前記選択画素が１つの場合はその画素から階調値を取り込み、前記選択画素が複数ある場合はそのうち少なくとも２つの画素からそれぞれ階調値を取り込む画素選択工程を備えていることを特徴とする画像処理方法。
【請求項８】
コンピュータを、画素ごとの階調値の総和が閾値以上となるまで未処理画素を取り込み、画素群を生成する画素群生成ステップと、前記画素群生成ステップで未処理画素を取り込む毎に画素群の基準点の位置を決定する画素群基準点決定ステップと、前記画素群の階調値の総和が閾値以上になった時点で前記画素群基準点決定ステップで決定した基準点に位置する画素に量子化データを付与する量子化データ付与ステップとして機能させ、前記画素群生成ステップは、前記画素群基準点決定ステップで決定した基準点から最短距離にある未処理画素を選択画素として選択し、前記選択画素が１つの場合はその画素から階調値を取り込み、前記選択画素が複数ある場合はそのうち少なくとも２つの画素からそれぞれ階調値を取り込む画素選択ステップを有することを特徴とする画像処理プログラム。
【請求項９】
請求項８に記載の画像処理プログラムを記録したコンピュータによって読取可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画素の階調画像データを量子化する処理に関する。
【背景技術】
【０００２】
従来より、階調画像データを量子化することが行われている。例えば、２５６階調の階調画像データを二値化することなどが行われている。このような高画質な量子化の結果が得られる処理方法として、誤差拡散法が広く知られているが、この誤差拡散法にはハイライト部でドットの分散性が劣化する問題がある。
【０００３】
従来、このような不具合を解消するために、２値化処理されていない入力画素を次々にまとめ、そのときの入力画素値を加算し、総和が所定値になるまで拡大しセル（画素群）を作り、セルの中心位置を求め、その位置に２値化出力画素を設定し、２値化によって生じたセル内の誤差を他のセルに渡し、未処理画素について再びセルを設定して、同様の処理を繰り返す、処理方法が考案されている（例えば、特許文献１参照）。
【０００４】
この方法は高解像性を保ったまま、ハイライト部でのドット分散性を向上させた量子化処理を実現するものである。
【０００５】
【特許文献１】特開平１１−２７５２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、特許文献１では、セル生成時に未処理画素を１画素ずつ順次選択しているため、セルの形状が歪み、ドット間距離のばらつきが発生する、すなわちドット分散性が劣化する課題があった。
そこで、本発明は、階調画像データを量子化する際に、セルの形状の歪を抑えることができる画像処理装置、画像処理方法、画像処理プログラムおよびそのプログラムを記録した記録媒体を提供することを目的とする。
【課題を解決するための手段】
【０００７】
＝＝発明１＝＝
上記課題を解決するために、本発明の画像処理装置では、画素ごとの階調値の総和が閾値以上となるまで未処理画素を取り込み、画素群を生成する画素群生成部と、前記画素群生成部で未処理画素を取り込む毎に画素群の基準点の位置を決定する画素群基準点決定部と、前記画素群の階調値の総和が閾値以上になった時点で前記画素群基準点決定部で決定した基準点に位置する画素に量子化データを付与する量子化データ付与部とを備え、前記画素群生成部は、前記画素群基準点決定部で決定した基準点から最短距離にある未処理画素を選択画素として選択し、前記選択画素が１つの場合はその画素から階調値を取り込み、前記選択画素が複数ある場合はそのうち少なくとも２つの画素からそれぞれ階調値を取り込む画素選択部を備えていることを要旨とする。
【０００８】
この構成によれば、画素群生成部は、画素群基準点決定部で決定した基準点から最短距離にある１つ以上の未処理画素からなる選択画素の各画素からそれぞれ階調値を画素群に取り込むので、基準点位置から見て線対称な位置にある画素から階調値が取り込まれ、取り込み後に画素群基準点決定部により再計算される画素群の基準点位置もほぼ画素群の中心に位置することになり、画素群の形状をより円に近くすることができ、ドット間距離のばらつきが減少し、ドット分散性を向上させることができる。
【０００９】
＝＝発明２＝＝
また、本発明の画像処理装置では、前記画素選択部は、前記選択画素が１つで、前記選択画素の階調値を前記画素群に取り込むと閾値を超える場合、閾値と前記画素群の階調値の総和との差分を前記選択画素から前記画素群に取り込む。
【００１０】
この構成によれば、画素選択部は、１つの選択画素の階調値を画素群に取り込むと階調値の総和が閾値以上となる場合があるので、その場合は閾値から画素群の階調値の総和を減算した値を選択画素から取り込めばよい。
【００１１】
＝＝発明３＝＝
また、本発明の画像処理装置では、前記画素選択部は、前記選択画素が複数ある場合はそれらの画素の最小の階調値である最小階調値を前記選択画素の少なくとも２つの画素から前記画素群に取り込む。
【００１２】
この構成によれば、画素選択部は、複数の選択画素の最小の階調値を画素群に取り込むので、基準点位置から見て線対称な位置にある画素から階調値が取り込まれ、取り込み後に画素群基準点決定部により再計算される画素群の基準点位置もほぼ画素群の中心に位置することになり、画素群の形状をより円に近くすることができ、ドット間距離のばらつきが減少し、ドット分散性を向上させることができる。
【００１３】
＝＝発明４＝＝
また、本発明の画像処理装置では、前記画素選択部は、前記選択画素が複数あり、前記最小階調値を前記選択画素の各画素から前記画素群に取り込むと閾値を超える場合、閾値と前記画素群の階調値の総和との差分を前記選択画素の少なくとも２つの画素から任意に分配して前記画素群に取り込む。
【００１４】
この構成によれば、画素選択部は、複数の選択画素の少なくとも２つの画素から最小階調値を画素群に取り込むと階調値の総和が閾値以上となる場合があるので、その場合は閾値から画素群の階調値の総和を減算した値を任意に分配して選択画素から取り込めばよい。
【００１５】
＝＝発明５＝＝
また、本発明の画像処理装置では、前記画素群生成部は、前記選択画素の各画素から階調値を取り込み後、階調値が残っている画素がある場合、それらの画素を未処理画素とする。
【００１６】
この構成によれば、画素群生成部は、選択画素の各画素からそれぞれ階調値を取り込み後、階調値が残っている画素がある場合、それらの画素を未処理画素とするので、これらの未処理画素は再び画素群生成部により画素群に取り込まれる。
【００１７】
＝＝発明６＝＝
また、本発明の画像処理装置では、前記画素群生成部が最初に選択した画素の階調値に応じて、前記階調値を閾値との差分である白濃度に変換する白濃度変換部、を備えている。
【００１８】
この構成によれば、画素群生成部が最初に選択した画素が、例えば閾値の半分以上の値の階調値である場合、階調値を閾値との差分である白濃度に変換することにより、画素群生成部は階調値が高濃度な画素群に対しても、低濃度の画素群と同様の処理を行うことができ、ドット間距離のばらつきが減少し、ドット分散性を向上させることができる。
【００１９】
＝＝発明７＝＝
また、上記課題を解決するために、本発明の画像処理方法では、画素ごとの階調値の総和が閾値以上となるまで未処理画素を取り込み、画素群を生成する画素群生成工程と、前記画素群生成工程で未処理画素を取り込む毎に画素群の基準点の位置を決定する画素群基準点決定工程と、前記画素群の階調値の総和が閾値以上になった時点で前記画素群基準点決定工程で決定した基準点に位置する画素に量子化データを付与する量子化データ付与工程とを備え、前記画素群生成工程は、前記画素群基準点決定工程で決定した基準点から最短距離にある未処理画素を選択画素として選択し、前記選択画素が１つの場合はその画素から階調値を取り込み、前記選択画素が複数ある場合はそのうち少なくとも２つの画素からそれぞれ階調値を取り込む画素選択工程を備えていることを要旨とする。
【００２０】
この構成によれば、本発明の画像処理装置と同等の効果が得られる。
【００２１】
＝＝発明８＝＝
また、上記課題を解決するために、本発明の画像処理プログラムでは、コンピュータを、画素ごとの階調値の総和が閾値以上となるまで未処理画素を取り込み、画素群を生成する画素群生成ステップと、前記画素群生成ステップで未処理画素を取り込む毎に画素群の基準点の位置を決定する画素群基準点決定ステップと、前記画素群の階調値の総和が閾値以上になった時点で前記画素群基準点決定ステップで決定した基準点に位置する画素に量子化データを付与する量子化データ付与ステップとして機能させ、前記画素群生成ステップは、前記画素群基準点決定ステップで決定した基準点から最短距離にある未処理画素を選択画素として選択し、前記選択画素が１つの場合はその画素から階調値を取り込み、前記選択画素が複数ある場合はそのうち少なくとも２つの画素からそれぞれ階調値を取り込む画素選択ステップを有することを要旨とする。
【００２２】
この構成によれば、本発明の画像処理装置と同等の効果が得られる。
【００２３】
＝＝発明９＝＝
また、本発明は画像処理プログラムを記録したコンピュータによって読取可能な記録媒体としてもよい。
【００２４】
このプログラムを記録した記録媒体としては、フレキシブルディスクやＣＤ−ＲＯＭ、ＩＣカード、パンチカードなど、コンピュータが読み取り可能な種々の媒体を利用することができる。
【発明を実施するための最良の形態】
【００２５】
以下、本発明を具体化した実施例について図面に従って説明する。
【実施例１】
【００２６】
＝＝画像処理装置の構成＝＝
まず、本発明を具体化した一実施形態における画像処理装置の概略構成について、図１を参照して説明する。
【００２７】
図１は、本発明による画像処理装置をモノクロ入力画像に適用した場合の構成図である。この例では、ホストコンピュータ１０において、階調画像データ１６（図１においてはモノクロ８ビットデータである）が生成され、ページプリンタなどの画像出力装置２０に与えられる。ページプリンタなどの画像出力装置２０は、供給された階調画像データ１６に基づきモノクロ画像を再現する。画像出力装置２０は、画像処理を行って印刷エンジン３０にレーザ駆動用データ２９を供給するコントローラ２２と、前記レーザ駆動用データ２９に従って画像の再生を行う印刷エンジン３０とを有する。
【００２８】
ホストコンピュータ１０は、ワードプロセッサや図形ツールなどのアプリケーションプログラム１２により、文字データ、図形データ及びビットマップデータ等を生成する。これらのアプリケーションプログラム１２により生成されたそれぞれのデータは、ホストコンピュータ１０にインストールされている画像出力装置用のドライバ１４により、ラスタライズされ、画素またはドット毎のモノクロデータからなる階調画像データ１６に変換される。階調画像データ１６は、例えば、各画素ごとに８ビットすなわち０〜２５５までの値をとる階調値の集合体である。
【００２９】
画像出力装置２０も、図示しないマイクロプロセッサを備え、そのマイクロプロセッサとインストールされている制御プログラムにより、ハーフトーン処理部２４及びパルス幅変調部２８を有するコントローラ２２が構成される。ハーフトーン処理部２４は、階調画像データ１６を受けて、量子化画像データ２６を生成する。ハーフトーン処理部２４の構成は後で説明する。量子化画像データ２６はパルス幅変調部２８に与えられる。パルス幅変調部２８は、ドット毎にレーザ駆動パルス有りと無しからなるレーザ駆動用データ２９を生成する。
【００３０】
印刷エンジン３０内のレーザドライバ３２が、レーザ駆動用データ２９に基づいて、画像描画用のレーザダイオード３４を駆動する。印刷エンジン３０には、感光ドラムや転写ベルト等とその駆動部が含まれるが、図１では省略されている。
【００３１】
本発明の実施形態にかかる画像処理装置は、階調画像データ１６を量子化画像データ２６に変換するハーフトーン処理部２４に相当するものである。
【００３２】
＝＝画像処理装置のハード構成＝＝
次に、図２を参照して、本発明が適用される画像出力装置２０の概略的なハード構成について説明する。ここで、図１の画像出力装置２０を構成するハーフトーン処理部２４は、図２におけるＣＰＵ４２、ＲＡＭ４４およびＲＯＭ４６、ハードディスク４８に対応する。
図２は、本発明が適用される画像出力装置２０の概略的なハード構成図である。
【００３３】
画像出力装置２０は、全体として、入力インターフェイス（Ｉ／Ｆ）４０、ＣＰＵ４２、ＲＡＭ４４、ＲＯＭ４６、ハードディスク４８、印刷エンジン３０とから構成され、それらはバス５０を介して互いに接続されている。入力Ｉ／Ｆ４０は、ホストコンピュータ１０と画像出力装置２０とのインターフェイスの役割を果たす。入力Ｉ／Ｆ４０には、所定の伝送方式により伝送されたホストコンピュータ１０からのモノクロデータからなる階調画像データ１６が入力され、画像出力装置２０で処理できるデータに変換される。階調画像データ１６は、一旦ＲＡＭ４４に格納される。そして、レーザ駆動用データ２９が生成され、バス５０を介して印刷エンジン３０に送られる。
【００３４】
ＣＰＵ４２は、バスを介してハードディスク４８またはＲＯＭ４６に格納されたプログラムを読み出し、この読み出したプログラムを所定のオペレーティングシステムのもとで実行することによって、画像出力装置２０として機能し、所定の処理を実行する。特に、ハーフトーン処理部２４として、画素群生成部６０、画素選択部６１、白濃度変換部６２、画素群基準点決定部６４、量子化データ付与部６６の各機能を実行する。
【００３５】
これらの処理を記録したプログラムは、予めハードディスク４８やＲＯＭ４６に格納されていることとしてもよいし、例えばＣＤ−ＲＯＭなどのコンピュータが読み取り可能な記録媒体によって外部から供給され、図示しないＣＤ−Ｒ／ＲＷドライブを介してハードディスク４８に記憶することによって格納されるものとしてもよい。もとより、インターネットなどのネットワーク手段を介して、プログラムを供給するサーバー等にアクセスし、データをダウンロードすることによってハードディスク４８に格納されるものとしてもよい。
【００３６】
ＲＡＭ４４は、ＣＰＵ４２の制御によって実行される各処理のワーキングメモリとして役割を果たし、処理後の各種データを格納する。ＲＡＭ４４は少なくとも、画像出力装置用のドライバ１４から出力され入力Ｉ／Ｆ４０に入力された階調画像データ１６を保管する入力バッファ７２と、ハーフトーン処理部２４で階調画像データ１６の各画素の濃度（階調値）を取り込み保管する取込バッファ７４と、濃度合計、基準点の計算に使用されるワークバッファ７６で構成される。
【００３７】
＝＝画像処理装置の処理を示すフローチャート＝＝
次に、図３を参照して、本発明が適用される画像出力装置２０のハーフトーン処理部２４の処理について説明する。
図３は、本発明が適用される画像出力装置２０のハーフトーン処理部２４の処理を示すフローチャートである。
【００３８】
画像出力装置用のドライバ１４から階調画像データ１６が入力Ｉ／Ｆ４０に入力されると、図３のハーフトーン処理が開始される。
【００３９】
先ず、ステップＳ１００では、階調画像データ１６をＲＡＭ４４の入力バッファ７２に書き込む。
【００４０】
次に、ステップＳ１０２では、ＲＡＭ４４の入力バッファ７２に読み込まれた階調画像データ１６から画素群を生成する起点となる初期画素を探索する。
【００４１】
次に、ステップＳ１０４では、初期画素があったか否かを判定し、初期画素があった場合は、ステップＳ１０６に移行し、初期画素がなかった場合（ＲＡＭ４４の入力バッファ７２に読み込んだ階調画像データ１６の処理がすべて終了した場合）、ステップＳ１１８に移行する。
【００４２】
次に、ステップＳ１０６では、初期画素を選択画素に設定する。
【００４３】
次に、ステップＳ１０８では、初期画素の濃度（階調値）が階調値の最大値に設定してある閾値の半分以下であるか否かを判定し、半分以下である場合は、ステップＳ１１２に移行し、半分以下でない場合は、ステップＳ１１６に移行する。
【００４４】
次に、ステップＳ１１２では、図４で詳述する黒濃度処理を実行し、ステップＳ１０２に移行する。
【００４５】
一方、ステップＳ１１６では、図５で詳述する白濃度処理を実行し、ステップＳ１０２に移行する。
【００４６】
一方、ステップＳ１１８では、すべての階調画像データに対し量子化が行われた結果の量子化画像データ２６をパルス幅変調部２８に出力し、ハーフトーン処理部２４の処理を終了する。
【００４７】
なお、ステップＳ１０２からＳ１１６の処理は、画素群生成部、画素群生成工程および画素群生成ステップに対応する。
また、ステップＳ１１８の処理は、量子化データ付与部、量子化データ付与工程および量子化データ付与ステップに対応する。
【００４８】
＝＝黒濃度処理を示すフローチャート＝＝
次に、図４を参照して、本発明が適用される画像出力装置２０のハーフトーン処理部２４の黒濃度処理について説明する。黒濃度処理とは、初期画素の濃度が閾値の半分以下である場合に、画素群生成部６０による画素群の生成処理において画素群が低濃度であることを前提として処理し、生成された画素群の基準点位置に閾値の濃度を設定し、その他の画素群の画素には０濃度を設定する処理である。
【００４９】
図４は、本発明が適用される画像出力装置２０のハーフトーン処理部２４の黒濃度処理を示すフローチャートである。
【００５０】
先ず、ステップＳ１１０では、初期画素の濃度を選択画素の各画素から取り込む濃度である取込濃度に設定する。
【００５１】
次に、ステップＳ１２０では、ＲＡＭ４４の入力バッファ７２の選択画素の各画素から取込濃度を減算し、ＲＡＭ４４の取込バッファ７４の該当する各画素の位置に取込濃度を加算する。
【００５２】
次に、ステップＳ１２２では、画素群基準点決定部６４により、選択画素に基づき、濃度合計と、基準点を計算し、ＲＡＭ４４のワークバッファ７６に書き込む。
【００５３】
次に、ステップＳ１２４では、ステップＳ１２２で求めた濃度合計が閾値以上であるか否かを判定し、閾値以上である場合は、ステップＳ１３６に移行し、閾値以上でない場合は、ステップＳ１２６に移行する。
【００５４】
次に、ステップＳ１２６では、ステップＳ１２２で求めた基準点から最短距離にあり、０＜濃度＜閾値である画素（未選択画素）を、選択画素に設定する。基準点から最短距離で等距離に複数の画素がある場合は、それらの画素を選択画素に設定する。
【００５５】
次に、ステップＳ１２８では、選択画素に含まれる画素が１つの場合は画素の濃度を最小濃度に設定し、選択画素に含まれる画素が２つ以上の場合は最小の濃度を最小階調値である最小濃度に設定する。
【００５６】
次に、ステップＳ１３０では、選択画素に含まれる画素の数である選択画素数と最小濃度の乗算結果が、（閾値−濃度合計）よりも大きいか否かを判定し、大きい場合は、ステップＳ１３２に移行し、大きくない場合は、ステップＳ１３４に移行する。
【００５７】
次に、ステップＳ１３２では、（閾値−濃度合計）／選択画素数を取込濃度に設定し、ステップＳ１２０に移行する。
【００５８】
一方、ステップＳ１３４では、最小濃度を取込濃度に設定し、ステップＳ１２０に移行する。
【００５９】
一方、ステップＳ１３６では、濃度合計が閾値以上になったので、画素群への画素の取り込みが終了し、ＲＡＭ４４の入力バッファ７２の基準点位置を含む画素の濃度に閾値（黒ドット）を設定し、黒濃度処理を終了し、図３のステップＳ１０２に移行する。画素群に取り込まれた画素は濃度が０か閾値であり、これらの画素は黒濃度処理のステップＳ１２６で対象外となるので処理済みの画素になる。
【００６０】
なお、ステップＳ１２２の処理は、画素群基準点決定工程および画素群基準点決定ステップに対応する。
また、ステップＳ１２６の処理は、画素選択工程および画素選択ステップに対応する。
【００６１】
＝＝白濃度処理を示すフローチャート＝＝
次に、図５を参照して、本発明が適用される画像出力装置２０のハーフトーン処理部２４の白濃度処理について説明する。白濃度処理とは、初期画素の濃度が閾値の半分より大きい場合に、画素群生成部６０による画素群の生成処理において画素群が高濃度であることを前提として処理し、生成された画素群の基準点位置に０濃度を設定し、その他の画素群の画素には閾値の濃度を設定する処理である。
【００６２】
図５は、本発明が適用される画像出力装置２０のハーフトーン処理部２４の白濃度処理を示すフローチャートである。
【００６３】
先ず、ステップＳ１１４では、（閾値−初期画素の濃度）を取込濃度に設定する。
【００６４】
次に、ステップＳ１５０では、ＲＡＭ４４の入力バッファ７２の選択画素の各画素に取込濃度を加算し、ＲＡＭ４４の取込バッファ７４の該当する各画素の位置に取込濃度を加算する。
【００６５】
次に、ステップＳ１５２では、画素群基準点決定部６４により、選択画素に基づき、濃度合計と、基準点を計算し、ＲＡＭ４４のワークバッファ７６に書き込む。
【００６６】
次に、ステップＳ１５４では、ステップＳ１５２で求めた濃度合計が閾値以上であるか否かを判定し、閾値以上である場合は、ステップＳ１６６に移行し、閾値以上でない場合は、ステップＳ１５６に移行する。
【００６７】
次に、ステップＳ１５６では、ステップＳ１５２で求めた基準点から最短距離にあり、０＜濃度＜閾値である画素（未選択画素）を、選択画素に設定する。基準点から最短距離で等距離に複数の画素がある場合は、それらの画素を選択画素に設定する。
【００６８】
次に、ステップＳ１５８では、選択画素に含まれる画素が１つの場合は（閾値−濃度）を最小濃度に設定し、選択画素に含まれる画素が２つ以上の場合は（閾値−濃度）が最小となる値を最小階調値である最小濃度に設定する。
【００６９】
次に、ステップＳ１６０では、選択画素に含まれる画素の数である選択画素数と最小濃度の乗算結果が、（閾値−濃度合計）よりも大きいか否かを判定し、大きい場合は、ステップＳ１６２に移行し、大きくない場合は、ステップＳ１６４に移行する。
【００７０】
次に、ステップＳ１６２では、（閾値−濃度合計）／選択画素数を取込濃度に設定し、ステップＳ１５０に移行する。
【００７１】
一方、ステップＳ１６４では、最小濃度を取込濃度に設定し、ステップＳ１５０に移行する。
【００７２】
一方、ステップＳ１６６では、濃度合計が閾値以上になったので、画素群への画素の取り込みが終了し、ＲＡＭ４４の入力バッファ７２の基準点位置を含む画素の濃度に０（白ドット）を設定し、白濃度処理を終了し、図３のステップＳ１０２に移行する。画素群に取り込まれた画素は濃度が０か閾値であり、これらの画素は白濃度処理のステップＳ１５６で対象外となるので処理済みの画素になる。
【００７３】
＝＝ＲＡＭ４４の構成＝＝
次に、図６を参照して、本発明が適用される画像出力装置２０のＲＡＭ４４の構成について説明する。
図６（Ａ）は、本発明が適用される画像出力装置２０のＲＡＭ４４の構成を示す構成図である。
【００７４】
ＲＡＭ４４は、図６（Ａ）に示すように、入力バッファ７２と、取込バッファ７４と、ワークバッファ７６で構成されている。
【００７５】
入力バッファ７２は、階調画像データ１６を格納する領域であり、図６（Ａ）では、入力バッファ７２の（ｎ列ｍ行）から（ｎ＋３列ｍ＋２行）の領域を表示している。起点となる初期画素を探索する走査方向は図６（Ａ）の矢印で示すように、入力バッファ７２の（０列０行）の画素から始まり、列番号の増加する方向に探索し、列番号の末端に達したら、次の行の０列から列番号の増加する方向に探索することを繰り返し、最終行の列番号の末端まで探索する。
【００７６】
取込バッファ７４は、入力バッファ７２の画素から濃度を取り込んで格納する領域であり、入力バッファ７２と同じ領域を有する。
【００７７】
ワークバッファ７６は、ハーフトーン処理部２４が処理に使用する領域であり、少なくとも、基準点と、濃度合計と、最小濃度と、取込濃度を記憶する領域を有する。
【００７８】
次に、入力バッファ７２の画素の中心点の座標の定義について、図６（Ｂ）を参照して説明する。入力バッファ７２の画素の中心点の座標は、（０列０行）の画素の中心点（０，０）を始点とし、図６（Ｂ）に示すように、（ｎ列ｍ行）の画素の中心点は（ｎ，ｍ）と定義される。
【００７９】
次に、基準点から画素までの距離の定義について説明する。基準点の座標を（Ｇｘ，Ｇｙ）とすると、基準点から（ｎ列ｍ行）の画素までの距離は、基準点（Ｇｘ，Ｇｙ）と（ｎ列ｍ行）の画素の中心点（ｎ，ｍ）間の距離とする。
【００８０】
次に、濃度合計の定義について説明する。現在の濃度合計をＴ０、選択画素を取り込み後の濃度合計をＴ１とし、図３のステップＳ１０６、図４のステップＳ１２６、または図５のステップＳ１５６で選択画素に設定された画素数を選択画素数とすると、以下の式（１）で計算される。
Ｔ１＝Ｔ０＋選択画素数×取込濃度                            ・・・（１）
濃度合計が閾値以上になると、画素群への新規の画素の取り込みは終了し、次の画素群生成に移行し、この時点でワークバッファ７６のすべての値が０にクリアされる。
【００８１】
次に、画素群基準点決定部６４による基準点の計算方法にについて説明する。図３のステップＳ１０６、図４のステップＳ１２６、または図５のステップＳ１５６で選択画素に設定された１つ以上の画素のＸ座標の合計をΣ（選択画素のＸ座標）、Ｙ座標の合計をΣ（選択画素のＹ座標）とし、現在の基準点の座標を（Ｇｘ０、Ｇｙ０）、選択画素を取り込み後の基準点の座標を（Ｇｘ１、Ｇｙ１）とすると、以下の式（２）および（３）で計算される。
Ｇｘ１＝（Ｇｘ０×Ｔ０＋Σ（選択画素のＸ座標）×取込濃度）／Ｔ１  ・・・（２）
Ｇｙ１＝（Ｇｙ０×Ｔ０＋Σ（選択画素のＹ座標）×取込濃度）／Ｔ１  ・・・（３）
【００８２】
＝＝黒濃度処理の動作＝＝
次に、図７および図８を参照して、本発明が適用される画像出力装置２０の黒濃度処理のＲＡＭ４４のデータの動きについて説明する。
図７および図８は、本発明が適用される画像出力装置２０の黒濃度処理のＲＡＭ４４のデータの動きを示す構成図である。
図７および図８では、説明を簡略化するために、図６（Ａ）の入力バッファ７２の（ｎ列ｍ行）の画素を（０列０行）として説明する。
【００８３】
本実施例の説明においては、階調画像データ１６は、０から２５５までの濃度を持つモノクロ２５６階調（８ｂｉｔｓ）のデータとし、閾値は２５５とする。また、ハーフトーン処理部２４は、２５６階調のデータを０と２５５の２値に変換する場合について説明する。
【００８４】
図７（Ａ）は、入力バッファ７２に階調画像データ１６が読み込まれた（図３のＳ１００）状態を示し、（０列０行）から（３列２行）までの画素を表示している。例えば、入力バッファ７２の（０列０行）の画素には濃度の値が５０に、（３列２行）の画素には濃度の値が５５に設定されている。また、取込バッファ７４と、ワークバッファ７６は初期状態ですべての値が０にクリアされている。
【００８５】
＝＝初期画素の選択＝＝
最初に、起点となる初期画素を探索するので、図７（Ａ）の入力バッファ７２の（０列０行）の画素が選択される（図３のＳ１０２）。初期画素があったと判断され（図３のＳ１０４）、初期画素（０列０行）を選択画素に設定する（図３のＳ１０６）。
【００８６】
次に、初期画素（０行０列）の濃度が５０なので、閾値２５５の半分以下であると判断され（図３のＳ１０８）、黒濃度処理に移行する（図３のＳ１１２）。
【００８７】
次に、ワークバッファ７６の取込濃度に初期画素（０行０列）の濃度５０が設定される（図４のＳ１１０）。
【００８８】
次に、選択画素に設定された画素（０行０列）から取込濃度５０を、取込バッファ７４の同一画素位置である（０列０行）に加算し、入力バッファ７２の（０列０行）から減算する（図４のＳ１２０）。
【００８９】
次に、選択画素に基づき、濃度合計と、基準点を計算する（図４のＳ１２２）。
現在の濃度合計Ｔ０＝０、選択画素数＝１、取込濃度＝５０、なので、濃度合計Ｔ１は式（１）により、Ｔ１＝０＋１×５０＝５０となる。
【００９０】
現在の基準点の座標は（０，０）、選択画素のＸ座標の合計Σ（選択画素のＸ座標）＝０、選択画素のＹ座標の合計Σ（選択画素のＹ座標）＝０、濃度合計＝５０なので、選択画素を取り込み後の基準点の座標は式（２）、（３）より、（０，０）となる。
【００９１】
図７（Ｂ）は、最初の選択画素を取り込み後のＲＡＭ４４の状態である。
図７（Ｂ）の入力バッファ７２の（０行０列）には、濃度０が設定され、取込バッファ７４の（０行０列）には、濃度５０が設定され、ワークバッファ７６の基準点は（０，０）、濃度合計＝５０、最小濃度＝５０、取込濃度＝５０がそれぞれ設定されている。また、図７（Ｂ）の入力バッファ７２の（０列０行）に○印で現在の基準点位置を示してある。
【００９２】
濃度合計＝５０は閾値＝２５５以下と判定され（図４のＳ１２４）、選択画素の選択（図４のＳ１２６）に移行する。
【００９３】
＝＝２回目の画素の選択＝＝
次に、２回目の画素群への取り込みとして、現在の基準点（０，０）に対し、最短距離にある０＜濃度＜閾値の画素（未処理画素）を選択画素に設定する（図４のＳ１２６）。
【００９４】
図７（Ｂ）の入力バッファ７２において、基準点（０，０）から最短距離にある画素は、（１列０行）と（０列１行）の２つの画素なので、これらの画素を選択画素に設定する。
【００９５】
次に、選択画素の最小濃度を求める（図４のＳ１２８）。
（１列０行）の画素の濃度は５０、（０列１行）の画素の濃度は６５なので、ワークバッファ７６の最小濃度に５０を設定する。
【００９６】
次に、（最小濃度×選択画素数）の値が（閾値−濃度合計）より大きいか判定する（図４のＳ１３０）。
最小濃度＝５０、選択画素数＝２、濃度合計＝５０なので、５０×２＜（２５５−５０）であり、大きくないと判定され、図４のステップＳ１３４に移行する。
【００９７】
次に、ワークバッファ７６の取込濃度＝最小濃度＝５０が設定され（図４のＳ１３４）、図４のステップＳ１２０に移行する。
【００９８】
次に、選択画素に設定された画素（０行１列）と（１行０列）から取込濃度５０を、取込バッファ７４の同一画素位置である（０列１行）と（１行０列）に加算し、入力バッファ７２の（０列１行）と（１行０列）から減算する（図４のＳ１２０）。
【００９９】
次に、選択画素に基づき、濃度合計と、基準点を計算する（図４のＳ１２２）。
現在の濃度合計Ｔ０＝５０、選択画素数＝２、取込濃度＝５０、なので、濃度合計Ｔ１は式（１）により、Ｔ１＝５０＋２×５０＝１５０となる。
【０１００】
現在の基準点の座標は（０，０）、選択画素のＸ座標の合計Σ（選択画素のＸ座標）＝１＋０＝１、選択画素のＹ座標の合計Σ（選択画素のＹ座標）＝０＋１＝１、濃度合計＝１５０なので、選択画素を取り込み後の基準点の座標は式（２）、（３）より、（０＋１×５０／１５０，０＋１×５０／１５０）≒（０．３３，０．３３）となる。
【０１０１】
図７（Ｃ）は、２回目の選択画素を取り込み後のＲＡＭ４４の状態である。
【０１０２】
入力バッファ７２の（１列０行）の濃度＝０、（０列１行）の濃度＝１５となり、（０列１行）には濃度＝１５が残っているので、この画素は再び未処理画素として選択対象となる。取込バッファ７４の（１列０行）の濃度＝５０、（０列１行）の濃度＝５０となっている。
【０１０３】
＝＝３回目の画素の選択＝＝
次に、３回目の画素群への取り込みとして、現在の基準点（０．３３，０．３３）に対し、最短距離にある０＜濃度＜閾値の画素（未処理画素）を選択画素に設定する。
【０１０４】
図７（Ｃ）の入力バッファ７２において、基準点（０．３３，０．３３）から最短距離にある未処理画素は、（０列１行）の画素なので、この画素を選択画素に設定する。
【０１０５】
最小濃度＝１５となり、閾値−濃度合計＝２５５−１５０＝１０５なので、取込濃度＝１５となる。
【０１０６】
入力バッファ７２の（０列１行）から１５を減算、取込バッファ７４の（０列１行）に１５を加算し、同様に濃度合計と基準点を求めると、濃度合計＝１６５、基準点（０．３，０．３９）となる。
【０１０７】
図８（Ｄ）は、３回目の選択画素を取り込み後のＲＡＭ４４の状態である。
【０１０８】
＝＝４回目の画素の選択＝＝
次に、４回目の画素群への取り込みとして、現在の基準点（０．３，０．３９）に対し、最短距離にある０＜濃度＜閾値の画素（未処理画素）を選択画素に設定する。
【０１０９】
図７（Ｃ）の入力バッファ７２において、基準点（０．３，０．３９）から最短距離にある未処理画素は、（１列１行）の画素なので、この画素を選択画素に設定する。
【０１１０】
最小濃度＝５０となり、閾値−濃度合計＝２５５−１６５＝９０なので、取込濃度＝５０となる。
【０１１１】
入力バッファ７２の（１列１行）から５０を減算、取込バッファ７４の（１列１行）に５０を加算し、同様に濃度合計と基準点を求めると、濃度合計＝２１５、基準点（０．４７，０．５３）となる。
【０１１２】
図８（Ｅ）は、４回目の選択画素を取り込み後のＲＡＭ４４の状態である。
【０１１３】
＝＝５回目の画素の選択＝＝
次に、５回目の画素群への取り込みとして、現在の基準点（０．４７，０．５３）に対し、最短距離にある０＜濃度＜閾値の画素（未処理画素）を選択画素に設定する。
【０１１４】
図８（Ｅ）の入力バッファ７２において、基準点（０．４７，０．５３）から最短距離にある未処理画素は、（０列２行）の画素なので、この画素を選択画素に設定する。
【０１１５】
最小濃度＝５０となり、閾値−濃度合計＝２５５−２１５＝４０なので、図４のステップＳ１３０において、（最小濃度×選択画素数）は（閾値−濃度合計）より大きいと判定されるので、取込濃度＝（閾値−濃度合計）／選択画素数＝（２５５−２１５）／１＝４０となる（図４のＳ１３２）。
【０１１６】
入力バッファ７２の（０列２行）から４０を減算、取込バッファ７４の（０列２行）に４０を加算し、同様に濃度合計と基準点を求めると、濃度合計＝２５５、基準点（０．３９，０．７６）となる。
【０１１７】
ここで、濃度合計＝２５５＝閾値なので、現在の画素群への画素の取り込みは終了し、基準点（０．３９，０．７６）を含む画素である入力バッファ７２の（０列２行）の画素に閾値＝２５５（黒ドット）が加算される（図４のＳ１３６）。
【０１１８】
図８（Ｆ）は、５回目の選択画素を取り込み後のＲＡＭ４４の状態である。
【０１１９】
図８（Ｆ）の入力バッファ７２において、（０列０行）、（０列１行）、（１列０行）、（１列１行）の画素は画素群に取り込まれ、処理済の画素として扱われ、（０列２行）の画素は濃度１０が残っているので、次の画素群を生成する際に未処理画素として扱われる。
【０１２０】
再び、起点となる初期画素を探索する（図３のＳ１０２）に戻り、走査方向に従い、次の初期画素として（２列０行）の画素が選択画素に取り込まれる。
【０１２１】
入力バッファ７２のすべての画素が処理済になると、入力バッファ７２の０か２５５に量子化された量子化画像データ２６がパルス幅変調部２８に出力され、ハーフトーン処理部２４の処理が終了する。
【０１２２】
＝＝白濃度処理の動作＝＝
次に、初期画素が閾値の半分以上である場合の、白濃度処理について、図９および図１０を参照して説明する。
【０１２３】
図９および図１０は、本発明が適用される画像出力装置２０の白濃度処理のＲＡＭ４４のデータの動きを示す構成図である。
【０１２４】
図９および図１０では、説明を簡略化するために、図６（Ａ）の入力バッファ７２の（ｎ列ｍ行）の画素を（０列０行）として説明する。
【０１２５】
本実施例の説明においては、階調画像データ１６は、０から２５５までの濃度を持つモノクロ２５６階調（８ｂｉｔｓ）のデータとし、閾値は２５５とする。また、ハーフトーン処理部２４は、２５６階調のデータを０と２５５の２値に変換する場合について説明する。
【０１２６】
図９（Ａ）は、入力バッファ７２に階調画像データ１６が読み込まれた（図３のＳ１００）状態を示し、（０列０行）から（３列２行）までの画素を表示している。例えば、入力バッファ７２の（０列０行）の画素には濃度の値が２０５に、（３列２行）の画素には濃度の値が２００に設定されている。また、取込バッファ７４と、ワークバッファ７６は初期状態ですべての値が０にクリアされている。
【０１２７】
＝＝初期画素の選択＝＝
最初に、起点となる初期画素を探索するので、図９（Ａ）の入力バッファ７２の（０列０行）の画素が選択される（図３のＳ１０２）。初期画素があったと判断され（図３のＳ１０４）、初期画素（０列０行）を選択画素に設定する（図３のＳ１０６）。
【０１２８】
次に、初期画素（０行０列）の濃度が２０５なので、閾値２５５の半分以下でないと判断され（図３のＳ１０８）、白濃度処理に移行する（図３のＳ１１６）。
【０１２９】
次に、ワークバッファ７６の取込濃度＝（閾値−初期画素（０行０列）の濃度２０５）＝５０が設定される（図５のＳ１１４）。
【０１３０】
次に、選択画素に設定された画素（０行０列）から取込濃度５０を、取込バッファ７４の同一画素位置である（０列０行）に加算し、入力バッファ７２の（０列０行）に加算する（図５のＳ１５０）。
【０１３１】
次に、選択画素に基づき、濃度合計と、基準点を計算する（図５のＳ１５２）。
【０１３２】
現在の濃度合計Ｔ０＝０、選択画素数＝１、取込濃度＝５０、なので、濃度合計Ｔ１は式（１）により、Ｔ１＝０＋１×５０＝５０となる。
【０１３３】
現在の基準点の座標は（０，０）、選択画素のＸ座標の合計Σ（選択画素のＸ座標）＝０、選択画素のＹ座標の合計Σ（選択画素のＹ座標）＝０、濃度合計＝５０なので、選択画素を取り込み後の基準点の座標は式（２）、（３）より、（０，０）となる。
【０１３４】
図９（Ｂ）は、最初の選択画素を取り込み後のＲＡＭ４４の状態である。
【０１３５】
図９（Ｂ）の入力バッファ７２の（０行０列）には、濃度２５５が設定され、取込バッファ７４の（０行０列）には、濃度５０が設定され、ワークバッファ７６の基準点は（０，０）、濃度合計＝５０、最小濃度＝５０、取込濃度＝５０がそれぞれ設定されている。また、図９（Ｂ）の入力バッファ７２の（０列０行）に○印で現在の基準点位置を示してある。
【０１３６】
濃度合計＝５０は閾値＝２５５以下と判定され（図５のＳ１５４）、選択画素の選択（図５のＳ１５６）に移行する。
【０１３７】
＝＝２回目の画素の選択＝＝
次に、２回目の画素群への取り込みとして、現在の基準点（０，０）に対し、最短距離にある０＜濃度＜閾値の画素（未処理画素）を選択画素に設定する（図５のＳ１５６）。
【０１３８】
図９（Ｂ）の入力バッファ７２において、基準点（０，０）から最短距離にある画素は、（１列０行）と（０列１行）の２つの画素なので、これらの画素を選択画素に設定する。
【０１３９】
次に、選択画素の最小濃度を求める（図５のＳ１５８）。
（１列０行）の画素の濃度は２０５で閾値−２０５＝５０、（０列１行）の画素の濃度は１９０で閾値−１９０＝６５なので、ワークバッファ７６の最小濃度に５０を設定する。
【０１４０】
次に、（最小濃度×選択画素数）の値が（閾値−濃度合計）より大きいか判定する（図５のＳ１６０）。
最小濃度＝５０、選択画素数＝２、濃度合計＝５０なので、５０×２＜（２５５−５０）であり、大きくないと判定され、図５のステップＳ１６４に移行する。
【０１４１】
次に、ワークバッファ７６の取込濃度＝最小濃度＝５０が設定され（図５のＳ１６４）、図５のステップＳ１５０に移行する。
【０１４２】
次に、選択画素に設定された画素（０行１列）と（１行０列）から取込濃度５０を、取込バッファ７４の同一画素位置である（０列１行）と（１行０列）に加算し、入力バッファ７２の（０列１行）と（１行０列）に加算する（図５のＳ１５０）。
【０１４３】
次に、選択画素に基づき、濃度合計と、基準点を計算する（図５のＳ１５２）。
現在の濃度合計Ｔ０＝５０、選択画素数＝２、取込濃度＝５０、なので、濃度合計Ｔ１は式（１）により、Ｔ１＝５０＋２×５０＝１５０となる。
【０１４４】
現在の基準点の座標は（０，０）、選択画素のＸ座標の合計Σ（選択画素のＸ座標）＝１＋０＝１、選択画素のＹ座標の合計Σ（選択画素のＹ座標）＝０＋１＝１、濃度合計＝１５０なので、選択画素を取り込み後の基準点の座標は式（２）、（３）より、（０＋１×５０／１５０，０＋１×５０／１５０）≒（０．３３，０．３３）となる。
【０１４５】
図９（Ｃ）は、２回目の選択画素を取り込み後のＲＡＭ４４の状態である。
【０１４６】
入力バッファ７２の（１列０行）の濃度＝２５５、（０列１行）の濃度＝２４０となり、（０列１行）は２５５に達していないので、この画素は再び未処理画素として選択対象となる。取込バッファ７４の（１列０行）の濃度＝５０、（０列１行）の濃度＝５０となっている。
【０１４７】
＝＝３回目の画素の選択＝＝
次に、３回目の画素群への取り込みとして、現在の基準点（０．３３，０．３３）に対し、最短距離にある０＜濃度＜閾値の画素（未処理画素）を選択画素に設定する。
【０１４８】
図９（Ｃ）の入力バッファ７２において、基準点（０．３３，０．３３）から最短距離にある未処理画素は、（０列１行）の画素なので、この画素を選択画素に設定する。
【０１４９】
最小濃度＝閾値−２４０＝１５となり、閾値−濃度合計＝２５５−１５０＝１０５なので、取込濃度＝１５となる。
【０１５０】
入力バッファ７２の（０列１行）に１５を加算、取込バッファ７４の（０列１行）に１５を加算し、同様に濃度合計と基準点を求めると、濃度合計＝１６５、基準点（０．３，０．３９）となる。
【０１５１】
図１０（Ｄ）は、３回目の選択画素を取り込み後のＲＡＭ４４の状態である。
【０１５２】
＝＝４回目の画素の選択＝＝
次に、４回目の画素群への取り込みとして、現在の基準点（０．３，０．３９）に対し、最短距離にある０＜濃度＜閾値の画素（未処理画素）を選択画素に設定する。
【０１５３】
図９（Ｃ）の入力バッファ７２において、基準点（０．３，０．３９）から最短距離にある未処理画素は、（１列１行）の画素なので、この画素を選択画素に設定する。
【０１５４】
最小濃度＝閾値−２０５＝５０となり、閾値−濃度合計＝２５５−１６５＝９０なので、取込濃度＝５０となる。
【０１５５】
入力バッファ７２の（１列１行）に５０を加算、取込バッファ７４の（１列１行）に５０を加算し、同様に濃度合計と基準点を求めると、濃度合計＝２１５、基準点（０．４７，０．５３）となる。
【０１５６】
図１０（Ｅ）は、４回目の選択画素を取り込み後のＲＡＭ４４の状態である。
【０１５７】
＝＝５回目の画素の選択＝＝
次に、５回目の画素群への取り込みとして、現在の基準点（０．４７，０．５３）に対し、最短距離にある０＜濃度＜閾値の画素（未処理画素）を選択画素に設定する。
【０１５８】
図１０（Ｅ）の入力バッファ７２において、基準点（０．４７，０．５３）から最短距離にある未処理画素は、（０列２行）の画素なので、この画素を選択画素に設定する。
【０１５９】
最小濃度＝閾値−２０５＝５０となり、閾値−濃度合計＝２５５−２１５＝４０なので、図５のステップＳ１６０において、（最小濃度×選択画素数）は（閾値−濃度合計）より大きいと判定されるので、取込濃度＝（閾値−濃度合計）／選択画素数＝（２５５−２１５）／１＝４０となる（図５のＳ１６２）。
【０１６０】
入力バッファ７２の（０列２行）に４０を加算、取込バッファ７４の（０列２行）に４０を加算し、同様に濃度合計と基準点を求めると、濃度合計＝２５５、基準点（０．３９，０．７６）となる。
【０１６１】
ここで、濃度合計＝２５５＝閾値なので、現在の画素群への画素の取り込みは終了し、基準点（０．３９，０．７６）を含む画素である入力バッファ７２の（０列２行）の画素に閾値＝０（白ドット）が設定される（図５のＳ１６６）。
【０１６２】
図１０（Ｆ）は、５回目の選択画素を取り込み後のＲＡＭ４４の状態である。
【０１６３】
図１０（Ｆ）の入力バッファ７２において、（０列０行）、（０列１行）、（１列０行）、（１列１行）の画素は画素群に取り込まれ、処理済の画素として扱われ、（０列２行）の画素は濃度２４５で閾値に達していないので、次の画素群を生成する際に未処理画素として扱われる。
【０１６４】
再び、起点となる初期画素を探索する（図３のＳ１０２）に戻り、走査方向に従い、次の初期画素として（２列０行）の画素が選択画素に取り込まれる。
【０１６５】
入力バッファ７２のすべての画素が処理済になると、入力バッファ７２の０か２５５に量子化された量子化画像データ２６がパルス幅変調部２８に出力され、ハーフトーン処理部２４の処理が終了する。
【実施例２】
【０１６６】
なお、これまで、本発明による画像処理装置をモノクロ入力画像に適用したものを前提として本発明の実施形態を説明してきた。しかし、本発明による画像処理装置をカラー入力画像に適用することもできる。図１１は、本発明による画像処理装置をカラー入力画像に適用したものの構成図である。
【０１６７】
この例では、ホストコンピュータ１０において、ＲＧＢカラー画像データ１５が生成され、ページプリンタなどの画像出力装置２０に与えられる。ページプリンタなどの画像出力装置２０は、供給されたＲＧＢカラー画像データ１５に基づきカラー画像を再現する。画像出力装置２０は、画像処理を行って印刷エンジン３０にレーザ駆動用データ２９を供給するコントローラ２２と、前記レーザ駆動用データ２９に従って画像の再生を行う印刷エンジン３０とを有する。
【０１６８】
ホストコンピュータ１０は、ワードプロセッサや図形ツールなどのアプリケーションプログラム１２により、文字データ、図形データ及びビットマップデータ等を生成する。これらのアプリケーションプログラム１２により生成されたそれぞれのデータは、ホストコンピュータ１０にインストールされている画像出力装置用のドライバ１４により、ラスタライズされ、画素またはドット毎のＲＧＢデータからなるＲＧＢカラー画像データ１５に変換される。ＲＧＢカラー画像データ１５は、例えば、各画素における各色（赤：ＲＥＤ、緑：ＧＲＥＥＮ、青：ＢＬＵＥ）をそれぞれ８ビットすなわち０〜２５５までの値で示したＲＧＢデータの集合体である。
【０１６９】
画像出力装置２０も、図示しないマイクロプロセッサを備え、そのマイクロプロセッサとインストールされている制御プログラムにより、色変換部２１、ハーフトーン処理部２４及びパルス幅変調部２８を有するコントローラ２２が構成される。
【０１７０】
色変換部２１は、ＲＧＢカラー画像データ１５を受けて、Ｃ（シアン）、Ｍ（マゼンタ）、Ｙ（イエロー）、Ｋ（ブラック）の四色をそれぞれ８ビットで表現した合計８×４＝３２ビットの階調画像データ２３を生成する。階調画像データ２３は、例えば図７などに示したものと同様である。ただし、各画素には黒の濃度のかわりに、Ｃ（シアン）、Ｍ（マゼンタ）、Ｙ（イエロー）、Ｋ（ブラック）のうちのいずれか一つの色の濃度が記録されている。また、シアンなどの濃度が高すぎる場合に、白濃度に変換することもモノクロ画像の場合と同様である。
【０１７１】
ハーフトーン処理部２４は、階調画像データ２３を受けて、量子化画像データ２６を生成する。ハーフトーン処理部２４の構成は前に説明した通りである。量子化画像データ２６はパルス幅変調部２８に与えられる。パルス幅変調部２８は、ドット毎にレーザ駆動パルス有りと無しからなるレーザ駆動用データ２９を生成する。
【０１７２】
印刷エンジン３０内のレーザドライバ３２が、レーザ駆動用データ２９に基づいて、画像描画用のレーザダイオード３４を駆動する。印刷エンジン３０には、感光ドラムや転写ベルト等とその駆動部が含まれるが、図１１では省略されている。
【０１７３】
なお、ハーフトーン処理部２４は、ハーフトーン処理プログラムが画像出力装置２０によって実行されることによって構成されるようにしてもよい。このハーフトーン処理プログラムは、通常、画像出力装置２０が読取可能な形態でフレキシブルディスク、ＣＤ−ＲＯＭなどの記録媒体に記録されて流通する。当該プログラムは、メディア読取装置（ＣＤ−ＲＯＭドライブ、フレキシブルディスクドライブなど）によって読み取られてハードディスクにインストールされる。そして、ＣＰＵが所望のプログラムを適宜ハードディスクから読み出して所望の処理を実行するように構成されている。あるいは、画像出力装置２０がＲＯＭなどの記録媒体を有しており、ハーフトーン処理プログラムがこのＲＯＭに記録されるようにしてもよい。
【０１７４】
以上に述べた前記実施形態によれば、以下の効果が得られる。
【０１７５】
前記実施形態によれば、画素群生成部６０は、画素群基準点決定部６４で決定した基準点から最短距離にある１つ以上の未処理画素からなる選択画素の各画素から等量の階調値を画素群に取り込んでいる。従って、基準点位置から見て線対称な位置にある画素から等量の階調値が取り込まれ、取り込み後に画素群基準点決定部６４により再計算される画素群の基準点位置もほぼ画素群の中心に位置することになり、画素群の形状をより円に近くすることができ、ドット間距離のばらつきが減少し、ドット分散性を向上させることができる。
【０１７６】
この効果は、特にドットの密度が高くなる中濃度領域で顕著であり、ドットが生成される基準点に隣接する画素の階調値が均等に減少し、その画素にドットが生成される確率が下がる。すなわち、隣接する画素にドットが連続して打たれる現象を防ぎ、粒状性を改善することができる。
【０１７７】
以上、本発明の実施形態を説明したが、本発明はこうした実施の形態に何ら限定されるものではなく、本発明の趣旨を逸脱しない範囲内において様々な形態で実施し得ることができる。以下、変形例を挙げて説明する。
【０１７８】
（変形例１）
本発明の第１変形例について説明する。前記実施形態では、図４のステップＳ１２６、または、図５のステップＳ１５６において、基準点から最短距離で等距離にある画素を選択画素に設定するように説明したが、基準点からの距離に許容範囲を持たせることも可能である。このようにすれば、基準点から許容範囲内で最短距離にある画素を選択することも可能になる。
【０１７９】
（変形例２）
本発明の第２変形例について説明する。前記実施形態では、図４のステップＳ１３２、または、図５のステップＳ１６２において、取込濃度＝（閾値−濃度合計）／選択画素数とし、選択画素から等量の取込濃度を取り込むように説明したが、必ずしも等量に限定するものではない。例えば選択画素が３つある場合、基準点から見て線対称な位置にある対の２つの画素から取込濃度＝（閾値−濃度合計）×０．４を取り込み、残りの１つの画素から取込濃度＝（閾値−濃度合計）×０．２を取り込むようにしてもよい。
【０１８０】
（変形例３）
本発明の第３変形例について説明する。前記実施形態では、図４のステップＳ１２６、または、図５のステップＳ１５６において、基準点から最短距離で等距離にある画素を選択画素に設定するように説明したが、必ずしも選択画素に含まれるすべての画素を処理対象とする必要はない。例えば、選択画素が３つある場合、基準点から見て線対称な位置にある対の２つの画素を選択するようにしてもよい。
【０１８１】
（変形例４）
本発明の第４変形例について説明する。前記実施形態では、図４のステップＳ１３６、または、図５のステップＳ１６６において、基準点位置を含む画素に黒ドット、または、白ドットを設定するように説明したが、例えば、図８（Ｅ）の入力バッファ７２において、基準点が（０．５，０．５）になった場合、（０列０行）、（１列０行）、（０列１行）、（１列１行）のどの画素に基準点が含まれるか判断できなくなる。このような場合は、例えば、基準点を右下隅に有する画素（０列０行）を選択するようにしてもよい。
【０１８２】
（変形例５）
本発明の第５変形例について説明する。前記実施形態における画像処理装置は、レーザープリンタにて構成するようにしたが、本発明はこれに限定されるものでなく、インクジェットプリンタなどインクを印刷媒体に付着させて印刷する方式のプリンタやサーマルプリンタなど種々のプリンタや電子写真あるいはディスプレーなどにて構成するようにしてもよい。あるいは、このようなプリンタなどの機能が組み込まれたコピー機やコンピュータ、ワープロ、ファックスなど種々の機器において本発明の画像処理装置を構成するようにしてもよい。
【図面の簡単な説明】
【０１８３】
【図１】本発明による画像処理装置をモノクロ入力画像に適用したものの構成図。
【図２】画像出力装置の概略的なハード構成図。
【図３】画像出力装置のハーフトーン処理部の処理を示すフローチャート。
【図４】黒濃度処理を示すフローチャート。
【図５】白濃度処理を示すフローチャート。
【図６】（Ａ）はＲＡＭの構成構成図、（Ｂ）は入力バッファの画素の中心点の座標の定義を示す構成図。
【図７】（Ａ）（Ｂ）（Ｃ）は黒濃度処理のＲＡＭのデータの動きを示す構成図。
【図８】（Ｄ）（Ｅ）（Ｆ）は黒濃度処理のＲＡＭのデータの動きを示す構成図。
【図９】（Ａ）（Ｂ）（Ｃ）は白濃度処理のＲＡＭのデータの動きを示す構成図。
【図１０】（Ｄ）（Ｅ）（Ｆ）は白濃度処理のＲＡＭのデータの動きを示す構成図。
【図１１】本発明による画像処理装置をカラー入力画像に適用したものの構成図。
【符号の説明】
【０１８４】
１０…ホストコンピュータ、１２…アプリケーションプログラム、１４…画像出力装置用のドライバ、１５…ＲＧＢカラー画像データ、１６…階調画像データ、２０…画像出力装置、２１…色変換部、２２…コントローラ、２３…階調画像データ、２４…ハーフトーン処理部、２８…パルス幅変調部、３０…印刷エンジン、３２…レーザドライバ、３４…レーザダイオード、４０…入力Ｉ／Ｆ、４２…ＣＰＵ、４４…ＲＡＭ、４６…ＲＯＭ、４８…ハードディスク、６０…画素群生成部、６１…画素選択部、６２…白濃度変換部、６４…画素群基準点決定部、６６…量子化データ付与部、７２…入力バッファ、７４…取込バッファ、７６…ワークバッファ。
【図１】
2006074649.tif 000003
【図２】
2006074649.tif 000004
【図３】
2006074649.tif 000005
【図４】
2006074649.tif 000006
【図５】
2006074649.tif 000007
【図６】
2006074649.tif 000008
【図７】
2006074649.tif 000009
【図８】
2006074649.tif 000010
【図９】
2006074649.tif 000011
【図１０】
2006074649.tif 000012
【図１１】
2006074649.tif 000013