(57)【要約】【課題】  入力画像の特徴を維持しつつ、安定したドットの形成を可能にするハーフトーン画像を生成する。【解決手段】  入力画像をハーフトーン画像に変換する画像処理装置であって、入力画像における処理対象領域における出力値の合計の目標値を算出する目標値算出手段と、前記処理対象領域における各画素の画素値と、前記処理対象領域に対応する各閾値とに基づいて、前記処理対象領域における各画素の指標値を算出する指標値算出手段と、前記処理対象領域における各画素の出力値の合計が、前記目標値となるように前記処理対象領域における各画素の出力値を決定する出力値決定手段とを有し、前記出力値決定手段は、前記処理対象領域における各画素の指標値に基づいて、出力値の最大値を出力値とする画素の位置を決定することを特徴とする。【選択図】  図２
2017103562.tif 000002
【特許請求の範囲】
【請求項１】
入力画像をハーフトーン画像に変換する画像処理装置であって、入力画像における処理対象領域における出力値の合計の目標値を算出する目標値算出手段と、
前記処理対象領域における各画素の画素値と、前記処理対象領域に対応する各閾値とに基づいて、前記処理対象領域における各画素の指標値を算出する指標値算出手段と、
前記処理対象領域における各画素の出力値の合計が、前記目標値となるように前記処理対象領域における各画素の出力値を決定する出力値決定手段とを有し、
前記出力値決定手段は、前記処理対象領域における各画素の指標値に基づいて、出力値の最大値を出力値とする画素の位置を決定することを特徴とする画像処理装置。
【請求項２】
前記出力値決定手段は、前記目標値が前記最大値未満の場合は、前記処理対象領域における画素には、前記出力値の最大値を決定せず、前記目標値が前記最大値以上の場合は、前記処理対象領域における少なくとも１つの画素に、前記出力値の最大値を、出力値をして決定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記出力値決定手段は、前記処理対象領域において、前記指標値が最大となる画素の出力値として、前記出力値の最大値を決定することを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記出力値決定手段は、前記処理対象領域において指標値が最大の画素の出力値として、前記出力値の最大値を決定して、前記処理対象領域における他の画素に対しては、前記指標値の大きい順に目標値まで出力値を順に分配することにより、前記処理対象領域における各画素の出力値を決定することを特徴とする請求項１乃至３のいずれか一項に記載の画像処理装置。
【請求項５】
前記出力値決定手段は、前記処理対象領域において、着目画素の周囲の出力値を参照し、出力値が所定の値以上の画素が周囲に存在しない場合、前記着目画素の出力値を所定の値にすることを特徴とする請求項１乃至４のいずれか一項に記載の画像処理装置。
【請求項６】
前記目標値算出手段は、前記処理対象領域における各画素の画素値の平均値を、前記処理対象領域に対応する閾値群と比較することにより量子化した結果の総和を目標値として算出することを特徴とする請求項１乃至５のいずれか一項に記載の画像処理装置
【請求項７】
前記指標値算出手段は、前記処理対象領域における各画素の画素値と対応する閾値との差分を、各画素の指標値として算出することを特徴とする請求項１乃至６のいずれか一項に記載の画像処理装置。
【請求項８】
さらに、前記処理対象領域が平坦な領域かどうかを判定する判定手段を有し、
前記出力値決定手段は、前記判定手段による判定結果に応じて、前記処理対象領域における各画素の決定する処理を制御することを特徴とする請求項１乃至７のいずれか一項に記載の画像処理装置。
【請求項９】
コンピュータに読み込ませ実行させることで、前記コンピュータを請求項１乃至６の何れか一項に記載された画像処理装置として機能させることを特徴とするコンピュータプログラム。
【請求項１０】
入力画像をハーフトーン画像に変換する画像処理方法であって、
入力画像における処理対象領域における出力値の合計の目標値を算出し、
前記処理対象領域における各画素の画素値と、前記処理対象領域に対応する各閾値とに基づいて、前記処理対象領域における各画素の指標値を算出し、
前記処理対象領域における各画素の指標値に基づいて、出力値の最大値を出力値とする画素の位置を決定し、前記処理対象領域における各画素の出力値の合計が、前記目標値となるように前記処理対象領域における各画素の出力値を決定することを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データをより高品質なハーフトーン画像データに変換する技術に関する。
【背景技術】
【０００２】
従来、電子写真方式の複写機やプリンタ等の画像形成装置は感光体ドラムを帯電し、その帯電した感光体ドラム上にレーザ光を走査し露光することによって、感光体ドラム上に静電潜像を形成する（以下、潜像と呼ぶ）。そして、画像形成装置は、着色剤（トナー）を用いて像担持体感光体ドラム上に形成された静電潜像を現像し、それを記録材に転写し、さらに記録材に定着させることによって、記録媒体上に可視像を形成する。一方コンピュータやデジタルカメラを介して入力されたデジタル画像データにより表わされる画像を、画像形成装置が記録媒体上に形成することが広く利用されている。デジタル画像データにおいては一般に、画像を構成する各画素の画素値が、１色当り８ビットや１６ビット等の多階調で表現される。一方画像形成装置では、記録材によるドットのオンオフによって画像を形成するため、画像データの階調数よりも画像形成装置が出力可能な階調数の方が低いことが多い。そこで従来、画像形成装置により画像を印刷するために、デジタル画像データに対してハーフトーン処理が施される。ハーフトーン処理により得られるハーフトーン画像データは、画像形成装置が記憶媒体上に出力するドットパターンを表し、疑似的に画像の階調を表現する。
【０００３】
電子写真方式を用いた画像形成装置では、生成したレーザ光のパルス幅が狭い場合や、パルス幅が広くても周囲に他の画素が無くドットが孤立して存在する場合には、ドラム上にはっきりとした潜像を生成することが出来ない場合がある。その結果、ドットを安定して形成することが困難となり、粒状性ノイズなどの画質低下につながる場合があった。そこで電子写真方式を用いた画像形成装置が安定して画像を形成できるように、ハーフトーン画像データを生成する技術が知られている。特許文献１ではセル内の入力階調値の平均値に応じた理想出力合計値を生成し、この理想出力合計値に達するまでセル内の重心から出力階調値の生成を繰り返す技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−２２８３１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１で開示された技術では、理想出力合計値に達するまでセル内の重心から出力階調値を生成しようとするため、原画像が高周波成分を多く持つ画像の場合、その細部を表現できず解像感の良くない画像になってしまう場合があった。
そこで本発明は、入力画像の特徴を維持しつつ、安定したドットの形成を可能にするハーフトーン画像を生成することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために本発明では、入力画像をハーフトーン画像に変換する画像処理装置であって、入力画像における処理対象領域における出力値の合計の目標値を算出する目標値算出手段と、前記処理対象領域における各画素の画素値と、前記処理対象領域に対応する各閾値とに基づいて、前記処理対象領域における各画素の指標値を算出する指標値算出手段と、前記処理対象領域における各画素の出力値の合計が、前記目標値となるように前記処理対象領域における各画素の出力値を決定する出力値決定手段とを有し、前記出力値決定手段は、前記処理対象領域における各画素の指標値に基づいて、出力値の最大値を出力値とする画素の位置を決定することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、入力画像の特徴を維持しつつ、安定したドットの形成を可能にするハーフトーン画像を生成できる。
【図面の簡単な説明】
【０００８】
【図１】画像処理部の外部構成を示すブロック図
【図２】第１実施例における画像処理部の構成を示すブロック図
【図３】第１実施例における画像処理部の動作を示すフローチャート
【図４】第１実施例における入力画像と処理単位を示す図
【図５】第１実施例における閾値マトリクスを示す図
【図６】第１実施例における出力値決定部の動作を示すフローチャート
【図７】第２実施例における出力値決定部の動作を示すフローチャート
【図８】第３実施例における出力値決定部の動作を示すフローチャート
【図９】第４実施例における出力値決定部の動作を示すフローチャート
【図１０】第５実施例における画像処理部の構成を示すブロック図
【発明を実施するための形態】
【０００９】
以下、添付の図面を参照して、本発明を好適な実施形態に基づいて詳細に説明する。なお、以下の実施形態において示す構成は一例にすぎず、本発明は図示された構成に限定されるものではない。
【００１０】
＜第１の実施形態＞
第１の実施形態では、各画素の画素値が２５６値（８ビット）の入力画像を、１６値（４ビット）のハーフトーン画像データに変換する方法を説明する。第１の実施形態は、入力画像における４画素×４画素の領域ごとに、ハーフトーン処理を行う。図１は、第１の実施形態に適用可能な画像処理装置のハードウェア構成の例を示すブロック図である。画像処理装置は、ＣＰＵ１００、ＲＡＭ１０１、操作部１０３、表示部１０４、外部記憶装置１０５、画像処理部１０６、Ｉ／Ｆ（インターフェース）部１０７、バス１０８を備える。ＣＰＵ１００は、ＲＡＭ１０１やＲＯＭ１０２に格納されているコンピュータプログラムやデータを用いて、画像処理装置全体の動作制御を行う。
【００１１】
ＲＡＭ１０１は、外部記憶装置１０５からロードされたコンピュータプログラムやデータ、Ｉ／Ｆ部１０７を介して外部から受信したデータを一時的に記憶するための記憶領域を有する。また、ＣＰＵ１００が各種の処理を実行する際に用いる記憶領域や画像処理部１０６が画像処理を実行する際に用いる記憶領域を有する。即ち、ＲＡＭ１０１は、各種の記憶領域を適宜提供することが出来る。ＲＯＭ１０２は、本装置の設定データやブートプログラムなどが格納されている。操作部１０３は、キーボードやマウスなどにより構成されており、操作者が操作することで各種の指示をＣＰＵ１００に対して入力することができる。
【００１２】
表示部１０４は、ＣＲＴや液晶画面などにより構成されており、ＣＰＵ１００による処理結果を画像や文字などで表示することができる。
【００１３】
外部記憶装置１０５は、ハードディスクドライブに代表される大容量情報記憶装置である。外部記憶装置１０５には、ＯＳ（オペレーティングシステム）やＣＰＵ１００に処理を実行させるためのコンピュータプログラムやデータなどが保存されている。また、各部の処理によって生成される一時的なデータ（入出力画像や画像処理部で使われる閾値マトリクスなど）を保存することもできる。外部記憶装置１０５に保存されているコンピュータプログラムやデータは、ＣＰＵ１００による制御に従って、適宜ＲＡＭ１０１にロードされ、ＣＰＵ１００による処理対象となる。
【００１４】
画像処理部１０６は、コンピュータプログラムを実行可能なプロセッサや専用の画像処理回路として実現され、印刷対象として入力された画像を画像形成部１０７が出力可能な画像データに変換するため各画像処理を実行する。例えば、ＣＰＵ１００から画像処理を実行する指示を受け付けると、外部記憶装置１０５に格納されたＮ階調の入力画像を処理し、Ｍ階調の出力画像を出力する。また、画像処理の際には、ＲＡＭ１０１の記憶領域を利用しながら処理を実施する。Ｉ／Ｆ部１０７は、外部機器やインターネットに画像処理装置を接続するためのインターフェースとして機能するものである。例えば、Ｎ（Ｎ：自然数）階調の入力画像をこのＩ／Ｆ部１０７を介して画像処理装置に入力しても良いし、画像処理装置の最終的な出力であるＭ（Ｍ：自然数、Ｎ＞Ｍ）値の出力画像をこのＩ／Ｆ部１０７を介して外部に対して送信しても良い。上記の各部はいずれも、バス１０８に接続されている。図２は、画像処理部１０６の詳細な構成を示すブロック図である。また、画像処理部１０６における処理の動作については、図３に示すフローチャートを用いて説明する。画像処理部１０６を専用の画像処理回路として実現する場合には、図２に示したブロック図を構成すればよい。また、画像処理部１０６をソフトウェアとして実装してもよい。この場合、図３に示すフローチャートを実現するコンピュータプログラムを、ＣＰＵ１０１が実行すればよい。
【００１５】
画像処理部１０６は、閾値群取得部２００、画素群取得部２０１、目標値算出部２０２、指標値算出部２０３、出力値決定部２０４を有する。閾値群取得部２００は、ＲＡＭ１０１や外部記憶装置１０５に格納された閾値マトリクスからディザ処理を実施する処理単位に応じたサイズの閾値群を取得する。本実施形態では、４画素×４画素の領域単位で処理をするため、１つの処理単位ごとに１６の閾値を取得する。画素群取得部２０１は、ＲＡＭ１０１や外部記憶装置１０５に格納された入力画像からディザ処理を実施する処理単位分の画素群を取得する。本実施形態は、１つの処理単位ごとに１６画素の画素値を取得する。
【００１６】
目標値算出部２０２は、入力された画素群と閾値群を参照してディザ処理を行い、その結果を集計し、目標値として算出し出力する。処理対象領域の各画素について、画素値と対応する閾値を比較し、量子化する。１６画素の量子化結果の合計値を、処理対象領域の目標値とする。指標値算出部２０３は、処理対象領域の各画素について、各画素の画素値と対応する閾値との差分を、各画素の指標値として算出する。指標値算出部２０３は、得られた各画素の指標値を出力値決定部２０４に出力する。出力値決定部２０４は、各画素の指標値を参照することにより、処理対象領域の出力値の合計が目標値算出部２０２から得た目標値となるように、処理対象領域における画素の出力値を決定する。
【００１７】
図３に示すフローチャートに沿って、画像処理部１０６における処理の動作を具体的に説明する。処理をスタートすると、まず、ステップＳ３００において画素群取得部２０１は、ＲＡＭ１０１や外部記憶装置１０５から処理対象領域の画素の画素値を取得する。本実施形態では、図４に示すような各画素８ビットの入力画像４００に対して、４画素×４画素の矩形領域４０１で示す領域単位にハーフトーン処理を実行する。処理対象領域の画素値を全て取得したら、次のステップに進む。ステップＳ３００と並行して、ステップＳ３０２において閾値群取得部２００は、ＲＡＭ１０１や外部記憶装置１０５から処理対象領域に対応する閾値群を取得する。閾値マトリックスとしては公知のＡＭスクリーンを用いる。本実施形態では、図５に示すような８画素を１単位とする閾値マトリクスを用いる。図５に示す閾値マトリクスは、各閾値が画素に対応するように画像に対してタイル状に配置させている。閾値群取得部３０２は、処理対象領域である４画素×４画素に対応する閾値群を取得する。図５に示す閾値マトリクスは、各画素位置に対して閾値が二つずつ存在し、各閾値は入力画像に合わせて８ビットの値で表現され、出力値が０から１５までの１６値となる多値ディザマトリックスを表している。大きい方の閾値をｔｈ１と表し、小さい方の閾値をｔｈ０と表す。画素値が閾値ｔｈ１以上の場合は出力値として最大値の１５を出力し、画素値が閾値ｔｈ０以下の時は最小値の０を出力する。入力値が閾値ｔｈ０より大きく閾値ｔｈ１未満である場合は、閾値ｔｈ０から閾値ｔｈ１までを１６段階に分けて量子化した値を出力する。具体的には（画素値−閾値ｔｈ０）／８の小数点以下を切り捨てた値を出力する。このような閾値マトリクスを用いてディザ処理することで、２５６値（８ビット）の画素値からなる入力画像を０から１５までの１６値の量子化値からなる出力画像を得る。また、閾値マトリクスの閾値のビット数を変更することで、Ｎ値の入力画像に対して適用可能である。なおステップＳ３０１とステップＳ３０２は、互いに依存関係を持たない処理であるため、逐次的に処理する場合にも、その処理を実行する順番については考慮しなくてよい。
【００１８】
ステップＳ３０４において目標値算出部２０２は、処理対象領域に含まれる画素の画素値の平均値を算出する。次に、ステップＳ３０５において目標値算出部２０２は、算出した平均値とステップＳ３０２において取得した閾値群とを用いてディザ処理を実行する。ステップＳ３０４において算出した処理対象領域における画素値の平均値は一つであるのに対し、取得した閾値群は４画素×４画素の閾値の組を有する。ステップＳ３０４におけるディザ処理では、１つの平均値を閾値群の全ての閾値と比較して、処理対象領域に含まれる画素分の出力値を算出する。これにより、処理対象領域の階調数を２５６値から１６値に低減する量子化処理を行う。次にステップＳ３０７において、ステップＳ３０５における処理対象領域の量子化結果の総和を算出して、処理対象領域の目標値として出力する。
【００１９】
ステップＳ３０６において指標値算出部２０３は、ステップＳ３０４にて算出した目標値に基づいて出力値を決定するための指標となる指標値を算出する。この処理はステップＳ３０４、ステップＳ３０５、ステップＳ３０７の一連の処理と並行して実行が可能である。本実施形態では、指標値は、処理対象領域における画素に対して、“画素値−閾値”を用いるとする。従って各画素２つの指標値を算出されることになる。指標値算出部２０３は、得られた指標値を出力値決定部２０４へ出力する。
【００２０】
ステップＳ３０８において出力値決定部２０４は、処理対象領域における指標値を参照しながら、処理対象領域における出力値の合計が、ステップＳ３０４で算出した目標値と一致するように、処理対象領域における各画素の出力値を決定する。出力画素値としては０から１５までの１６値を出力する。ステップＳ２０８における処理の詳細は後述する。ステップＳ３０９において、全画素に対する処理が完了したかどうかを判定する。未処理の領域があればステップＳ３００およびステップＳ３０１に戻り、全画素の処理が完了すれば処理を終了する。
【００２１】
ステップＳ３０８における出力値決定部２０４が実行する処理の動作を、図６に示すフローチャートに従って具体的に説明する。このフローチャートでは、処理対象領域における指標値が最大の画素位置に、安定したドットを形成できる所定の出力値を設定し、残りの画素位置に対しては、それぞれの画素位置の指標値に応じた出力値になるように各画素の出力値を決定していく。このようにすることで、処理対象領域において所定のパルス幅で安定したドットが形成され、安定したドットを中心に周囲の小さなパルス幅のドットも安定して形成することが出来る。安定したドットを形成できる所定量としては予め決めておけばよく、以下では例として、指標値が最大の画素位置には１６値の出力値の最大値である１５を設定するものとして説明する。
【００２２】
まずステップＳ７００において出力値決定部２０４は、処理対象領域における各画素の出力値を初期化する。即ち、４画素×４画素分の出力値を０にセットする。初期化が終了したらステップＳ７０１へ移る。次に、ステップＳ７０１において出力値決定部２０４は、処理対象領域における１６画素の指標値を参照して、指標値が最大の画素位置を探す。最大の指標値が複数ある場合は、その中で閾値が最も小さい画素位置を探す。画素位置を得た後、ステップＳ７０２へ移る。
【００２３】
ステップＳ７０２において出力値決定部２０４は、処理対象領域の目標値と出力値の最大値（＝１５）とを比較する。目標値が最大値以上の場合、ステップＳ７０３へ移る。一方、最大値未満の場合、ステップＳ７０４へ移る。ステップＳ７０３において出力値決定部２０４は、ステップＳ７０１において選んだ画素位置の出力値を、出力値の最大値である１５に決定し、目標値から１５を減算して新たな目標値を算出する。さらに、ステップＳ７０１において選んだ画素位置の指標値から２５５を減算する。２５５を減算する理由は、指標値を小さくすることでこの画素位置が再び選択されることのないようにするためである。当然、その目的を達せられるのであれば、この画素位置を記憶しておくことで再度の選択を防ぐ方式にしてもよい。ステップＳ７０３での処理を終えるとステップＳ７０５に移る。
【００２４】
ステップＳ７０４において出力値決定部２０４は、ステップＳ７０１において選んだ画素位置の出力値として、処理対象領域の目標値（１５以下の値）を決定し、処理対象領域の目標値を０に更新する。ステップＳ７０５へ移る。ステップＳ７０３あるいはステップＳ７０４までの操作により、指標値が最大の画素位置の出力値を最大（安定したドットに対応する値）にすることが出来る。
【００２５】
ステップＳ７０５では、目標値が０より大きいかを判定する。目標値が０より大きい場合、ステップＳ７０６へ移る。一方、目標値が０の場合、出力値決定部２０４は全ての画素を分配し終えたとして処理を終了する。ステップＳ７０６では、ステップＳ７０２と同じ動作を行う。即ち、指標値を参照して指標値が最大の画素位置を探す。最大の指標値が複数ある場合は、その中で閾値が最も小さい画素位置を探す。画素位置を得た後、ステップＳ７０７へ移る。
【００２６】
ステップＳ７０７では、ステップＳ７０６で得た画素位置の現時点での出力値を調べ、出力値が１５未満かどうかを判定する。出力値が１５未満の場合、ステップＳ７０８へ移る。一方、出力値が１５の場合、ステップＳ７０９へ移る。
【００２７】
ステップＳ７０８では、選んだ画素位置の出力値を１増やし、目標値を１減らす。そして、その画素位置の指標値から１７を減算して、新たな指標値とする。ここで１７を減算する根拠を説明する。出力値は０から１５までの１６値であり、最大値の１５が入力された画素値の最大値２５５に相当すると考えると、２５５÷１５＝１７となり、出力画素値の１は指標値の１７に換算できるためである。ステップＳ７０８での処理を終えると、ステップＳ７０５へ移る。ステップＳ７０９は、既に出力値が上限の１５に達しているという状態であり、この画素が再び選択されることのないようにするために、指標値から２５５を減算する。あるいは、ステップＳ７０３での説明と同様に画素位置を記憶しておき、再度の選択を防ぐという方法にしてもよい。ステップＳ７０９での処理を終えると、ステップＳ７０５へ移る。
【００２８】
以上の操作を行うことで、目標値が０になるまで処理対象領域における各画素の出力値の合計が増え続け、目標値が０になったところで最終的な各画素の出力値が確定する。以上のような処理の効果について説明する。電子写真の場合、最終的に生成した各画素の出力値に基づいて、レーザーのパルス幅が決定される。従って、各画素の出力値は、レーザーのパルス幅とみなすことが出来る。電子写真においては、狭いパルス幅で生成したドットは安定して生成するのが難しく、画像の粒状性などに悪影響を及ぼす場合がある。第１の実施形態では、指標値の最大の部分に広いパルス幅でドットを生成することでドットの安定性を確保し、その周囲に入力画素値に応じたドットを生成することで、入力画像の階調性を維持するハーフトーンを可能とした。さらに、第１の実施形態では、最大値を出力値とする画素の位置を、各画素の画素値と対応する閾値とから算出される画素毎に指標値に基づいて決定した。これにより、画素値の大きい画素に安定したドットを形成するための出力値を分配しやすくなる。その結果、入力された画像のエッジや高周波成分などの特徴を維持したまま細部を十分に表現した高画質なハーフトーン画像データに変換することができる。
【００２９】
＜第２の実施形態＞
第１の実施形態では、出力値決定部２０４において指標値が最大の画素位置に最大の出力画素値を設定していた。第２の実施形態では、処理対象領域において指標値の大きさが二番目以降の画素位置にも、最大の出力値を決定することで、より安定性を高める方式について説明する。第１の実施形態と同様の構成については、同じ符号を用いて説明し、詳細な説明を省略する。第２の実施形態では、図２における出力値決定部２０４が実行する処理の動作のみが、第１の実施形態と異なる。
【００３０】
第２の実施形態に適用可能な出力値決定部２０４が実行する処理の動作を示すフローチャートを図７に示す。説明のために、以降では最大の出力値を決定する画素の数を、最大値出力数として説明する。即ち、２番目の大きさの指標値を持つ画素位置まで最大の出力値を設定する場合は、最大値出力数は２であるとする。
【００３１】
ステップＳ８００において、ステップＳ７００における処理対象領域の出力値の初期化に加え、最大値を出力値として決定した回数を示す変数ｔを０に初期化する。初期化が終了したらステップＳ８０１へ移る。ステップＳ８０１において、変数ｔが、予め設定された最大値出力数よりも小さいかどうかを判定する。小さい場合はステップＳ７０１へ移る。ステップＳ７０１からステップＳ７０３とステップＳ７０４までに至る処理は第１の実施形態と同様であり、それらの処理で最大の出力画素値を決定する動作を終えた後、ステップＳ８０２へ移る。ステップＳ８０２では変数ｔを１だけ増やし、ステップＳ８０１へ移る。ステップＳ８０１において、変数ｔが最大値出力数以上である場合は、指標値の大きさが最大値出力数番目までの画素位置まで最大の出力画素値が決定されたと判断し、ステップＳ７０５へ移る。
【００３２】
以上の動作により、第２の実施形態によれば、指標値の大きさが１番大きい画素位置のみならず、２番目以降の画素位置にも最大の出力値を設定することが出来る。これによって広いパルス幅を持つ画素が増えることとなりドットの安定性を高めることが出来る。
【００３３】
＜第３の実施形態＞
第２の実施形態では、出力値決定部２０４が指標値の大きい複数個の画素位置に最大出力値を決定した後に、残りの画素位置について出力値を１ずつ増やしていくことで出力画素値を分配していた。第３の実施形態では、複数の画素位置に最大出力値を決定した後、残りの画素位置に対して出力画素値を１ずつではなく複数単位ずつ分配していく方式を説明する。これにより、出力値がよりまとまって分配されることとなり安定性が向上する。第２実施形態と異なる出力値決定部２０４が実行する処理の動作のみを説明する。第３の実施形態に適用可能な出力値決定部２０４が実行する処理の動作を示すフローチャートを、図８に示す。図８において、図７に示したフローチャートと同じ動作をする部分については同じ符号を付した。従って、実施例３では図７と異なる動作をする部分についてのみ説明する。説明のために、以降では出力画素値分配時に一度に分配する画素数を分配画素数と呼んで説明する。
【００３４】
ステップＳ９００では、処理対象領域における出力値の初期化と最大値を出力値として決定した回数を示す変数ｔの０への初期化に加え、出力値を複数単位ずつ分配する処理の回数を示す変数ｓを０に初期化する。初期化が終了したらステップＳ８０１へ移り、その後実施例２と同様にステップＳ７０６の最大指標値探索までを行う。そして、ステップＳ９０１へ移る。ステップＳ９０１では、変数ｓと予め設定された分配画素数を比較し、変数ｓが分配画素数未満であればステップＳ９０２へ移る。
【００３５】
ステップＳ９０２では、ステップＳ７０６で得た画素位置の現時点での出力値を参照し、出力値が１５未満かどうかと目標値が０より大きいかどうかを判定する。出力値が１５未満で、且つ、目標値が０より大きい場合、ステップＳ７０８へ移る。一方、それ以外の場合、ステップＳ７０９へ移る。ステップＳ７０８とステップＳ７０９の処理後はステップＳ９０３へ移る。
【００３６】
ステップＳ９０３では変数ｓを１だけ増やし、ステップＳ９０１へ移る。ステップＳ９０１で、変数ｓが分配画素数以上である場合は、分配画素数分のドットを分配し終えたと判断し、ステップＳ７０５へ移る。以上の動作により、第３の実施形態によれば、指標値が最大の画素位置へ最大出力値を決定した後、出力画素値を複数単位ずつ分配することにより広いパルス幅を持つ画素が増えることとなり、ドットの安定性が向上する。
なお、第３の実施形態において加えた、残りの画素位置に対して出力画素値を複数単位ずつ分配する処理は、指標値の大きさが最大以外の画素位置にも最大出力値を決定する処理とは互いに独立している。従って、それらのいずれか一方の処理のみを加えるということができ、第３実施形態で加えた処理のみを第１の実施形態に加えるということも可能である。
【００３７】
＜第４の実施形態＞
前述の実施形態では、各画素の指標値を参照しながら出力値を分配していくという方式について説明した。第４実施形態では、指標値に加えて周囲画素を参照して画素値を分配する方法について説明する。周囲画素を参照することにより、より安定な画素分配を実現することが可能となる。第４の実施形態では、出力値決定部２０４の動作のみが異なり、他の構成要素の動作は第１の実施形態と同じである。第４実施形態に適用可能な出力値決定部２０４の処理の動作を示すフローチャートを図９に示す。図９において、図６に示したフローチャートと同じ動作をする部分については同じ符号を付した。従って、第４の実施形態では、図６と異なる動作をする部分についてのみ説明する。
【００３８】
まず、ステップＳ７００からステップＳ７０６までの処理は第１の実施形態と同じである。ステップＳ７０６において最大指標値の画素位置を得たら、ステップＳ１００１へ移る。ステップＳ１００１において、ステップＳ７０６で得た画素位置に隣接する画素位置（以降、隣接画素位置とする）の出力画素値を参照し、隣接画素位置の出力値が１５未満であるかどうかを判定する。隣接画素位置としては上下左右の４か所を参照する。隣接画素位置の４つの出力値が全て１５未満であれば、ステップＳ１００２へ移る。ステップＳ１００２からステップＳ１００４で行われる処理は、それぞれステップＳ７０２からステップＳ７０４で行われる処理と同じである。ステップＳ１００１からステップＳ１００３あるいはステップＳ１００４までの処理を通じて、隣接画素位置に最大出力値の画素が存在しない場合、着目画素の画素位置の画素値を最大出力値にすることを表している。ステップＳ１００３あるいはステップＳ１００４での処理が終了したら、ステップＳ７０５へ移る。ステップＳ１００１の処理において、隣接画素位置の４つの出力画素値のうち少なくとも１つが１５以上であれば、ステップＳ７０７へ移る。
【００３９】
以上の動作により、隣接画素位置に安定したドット形成ができる大きさの出力値がない場合、その画素位置の出力値は最大になる。前述したように隣接画素に小さい出力画素値しかない孤立した画素は不安定になりやすい傾向がある。そこでそのような画素位置に大きな出力値を決定することで、出力画像の安定性を高めることができ、さらに隣接画素を含む周囲の画素の安定性も高めることが可能となる。
【００４０】
＜第５の実施形態＞
前述の実施形態では、入力された画像に対して、一様に処理する方法について説明した。第５の実施形態では、入力画像の特徴に応じて出力値の決定方法を制御する構成について説明する。図１０は、第５の実施形態に適用可能な画像処理部１０６の構成を示すブロック図である。図１０と図２との相違点は、判定部１１０１が増えた点、出力値決定部１１０４が出力値決定部２０４と異なる動作をする点である。それ以外の構成要素については図２の構成要素と動作と同じであり、それらについては図２と同じ符号を付した。以降では新たに加えた判定部１１０１と動作の異なる出力値決定部１１０４についてのみ説明する。なお、ここでは出力値決定部１１０４は第２の実施形態に示したような最大値出力数をもとに出力画素値を決定する方式で動作するものとして説明する。
【００４１】
判定部１１０１は、画像における所定のブロックごとに、平坦とみなせる領域かどうかを判定する。平坦な領域の判定方法は種々あるが一例を挙げると、ブロックにおけるダイナミックレンジを用いる方法が挙げられる。４画素×４画素のブロックの最大値と最小値の差分値をダイナミックレンジとして算出し、ダイナミックレンジに応じた判定値を出力する。もし、ダイナミックレンジが所定の閾値よりも小さければ平坦な画像であると判定して、複数の画素に安定したドット形成のできる出力値を決定するため、出力値決定部１１０４に出力する判定値は大きい値（第１の判定値）を出力する。一方、ダイナミックレンジが所定の閾値以上である場合、処理対象領域において１つの画素にのみ大きい値の出力値を決定するために、判定値として“１”（第２の判定値）を出力する。出力値決定部１１０４は判定部からの判定結果（判定値）を受け取ると、受け取った判定値を最大値出力数として設定し、図７のフローチャートに従って動作する。
【００４２】
以上の動作により、入力画像が平坦な画像な場合は大きな出力値を出すことでドットの安定性を重視したハーフトーン画像データに変換なされる。一方、入力画像のダイナミックレンジの広い高解像度の画像の場合は、細部の再現を重視したハーフトーン画像データに変換される。従って、入力画像の特性に応じた良好なハーフトーン画像データに変換することができる。
【００４３】
＜その他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００４４】
２００  閾値群取得部
２０１  画素群取得部
２０２  目標値算出部
２０３  指標値算出部
２０４  出力値決定部
【図１】
2017103562.tif 000003
【図２】
2017103562.tif 000004
【図３】
2017103562.tif 000005
【図４】
2017103562.tif 000006
【図５】
2017103562.tif 000007
【図６】
2017103562.tif 000008
【図７】
2017103562.tif 000009
【図８】
2017103562.tif 000010
【図９】
2017103562.tif 000011
【図１０】
2017103562.tif 000012