(57)【特許請求の範囲】
【請求項１】
ハーフトーン処理後の多値データを補正する画像処理装置であって、
前記多値データのうち、前記補正の対象となる補正ラインの多値データを入力する第１入力手段と、
前記補正ラインからＮライン先行する先行ラインの多値データを入力する第２入力手段と、
副走査方向において前記補正ラインに最も近い位置にある下端エッジから前記補正ラインまでに、前記先行ラインの多値データにおいてドットが連結するドット連結数を検出する検出手段と、
前記補正ラインの多値データを、前記検出手段が検出した前記ドット連結数に基づいて補正する補正手段と、
を備え、
前記下端エッジは、副走査方向に濃度が小さくなるエッジで、かつ、濃度が小さい方が背景色となるエッジである、
ことを特徴とする画像処理装置。
【請求項２】
前記補正手段は、
前記検出手段が検出した前記ドット連結数に基づいて、前記補正ラインの多値データにおける各画素を補正するか否かを判定し、
前記第１入力手段により入力された前記補正ラインの多値データにおける、補正すると判定された画素を補正する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記検出手段は、
所定の閾値以上の画素値を有する画素をカウントするカウンタを有し、
前記補正ラインから前記先行ラインの間に存在する所定の閾値未満の画素値を有する画素の数に基づいて、前記カウンタのカウント値を制御することで、前記補正ライン側から副走査方向に連結している下端エッジまでのドット連結数を検出する
ことを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記検出手段は、前記先行ラインの多値データにおいて所定の閾値以上の画素値を有する画素を前記ドットとして、当該ドットが連結するドット連結数を検出することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項５】
前記補正手段は、前記ドット連結数が所定の範囲の個数である場合のみ、前記補正を行なうことを特徴とする請求項１乃至４のいずれか１項に記載の画像処理装置。
【請求項６】
前記補正手段は、補正前の多値データ及び前記ドット連結数と、補正後の多値データとを対応付けた補正テーブルを用いて、前記補正を行うことを特徴とする請求項１乃至５のいずれか１項に記載の画像処理装置。
【請求項７】
前記補正手段は、さらに、前記下端エッジから上端エッジまでのドット連結数を示すドット連結幅に基づいて、前記補正を行うことを特徴とする請求項１乃至５のいずれか１項に記載の画像処理装置。
【請求項８】
前記補正手段は、前記ドット連結幅が所定の幅未満の場合に、前記補正を行わないことを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記補正手段は、補正前の多値データ、前記ドット連結数及び前記ドット連結幅と、補正後の多値データとを対応付けた補正テーブルを用いて、前記補正を行うことを特徴とする請求項７又は８に記載の画像処理装置。
【請求項１０】
前記検出手段は、前記ドット連結数を、前記先行ラインの多値データでドットが検出されるとカウント値をインクリメントし、前記補正ラインの多値データでドットが検出されるとカウント値をデクリメントするカウンタを用いて検出することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項１１】
｛１＋（Ｎ／２）｝個の前記カウンタを有し、前記補正ラインと前記先行ライン間のドット連結毎に１つのカウンタを用いることにより、前記ドット連結数をカウントすることを特徴とする請求項１０に記載の画像処理装置。
【請求項１２】
ハーフトーン処理後の多値データを補正する画像処理方法であって、
前記多値データのうち、前記補正の対象となる補正ラインの多値データを入力する第１入力ステップと、
前記補正ラインからＮライン先行する先行ラインの多値データを入力する第２入力ステップと、
副走査方向において前記補正ラインに最も近い位置にある下端エッジから前記補正ラインまでに、前記先行ラインの多値データにおいてドットが連結するドット連結数を検出する検出ステップと、
前記補正ラインの多値データを、前記ドット連結数に基づいて補正する補正ステップと、
を含み、
前記下端エッジは、副走査方向に濃度が小さくなるエッジで、かつ、濃度が小さい方が背景色となるエッジである、
ことを特徴とする画像処理方法。
【請求項１３】
コンピュータを、請求項１乃至１１のいずれか１項に記載の画像処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタル画像データをハーフトーン処理した後の多値データに対し、エッジ周辺に起こる濃度変動を補正する技術に関する。
【背景技術】
【０００２】
１色当り８ビットや１６ビットで表現されるデジタル画像データをプリンタで印刷する場合、元の階調を疑似的に表現しつつ、プリンタで印刷可能な階調数の多値データに変換するハーフトーン処理が施される。プリンタが電子写真プロセスを用いた画像形成を行うレーザービームプリンタの場合には、ハーフトーン処理がなされた多値データに従ってＰＷＭ制御することで、露光工程におけるレーザーの発光時間が決定される。
【０００３】
電子写真プロセスを用いた画像形成では、感光体上にある静電潜像のエッジに電界が集中することで、磁性トナーが文字等のエッジ部に集中して現像される現象（エッジ効果と呼ばれる。）により、画像のエッジ周辺に濃度変動が起こることが知られている。このエッジ効果の出現度合は、エッジの方向、長さ、濃度等の画像要因の他、電子写真プロセスを形成する各工程の特性によっても異なる。特に、副走査方向に濃度が小さくなるエッジで、かつ、濃度が小さい方が背景色となるエッジ（以降、下端エッジと呼ぶ）周辺におけるエッジ効果が顕著になる。
【０００４】
このような現象に対し、特許文献１では、画像データ上の注目画素の値に対し、該注目画素よりも副走査方向下流側に位置する画素の値に基づいた演算を行い、その演算結果に応じて画像データに補正を行う技術が提案されている。
【０００５】
また、特許文献２では、副走査方向に変化するエッジ画素を抽出し、その記録媒体上での位置と画素値を決定して、入力画像データの中間画素値を有する画素の値を、エッジ画素から遠い第１領域とエッジ画素側の第２領域とに分けて補正する技術が提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−２７２１５３号公報
【特許文献２】特開平１１−２８８３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記特許文献１では、画像データを外部記憶装置から画像メモリに一旦保持し、この画像メモリ内の元画像データと、副走査方向に並行移動させた仮想画像データとの間でデータ値の演算を行い、演算結果に応じて画像データを補正している。この手法の場合、主走査方向に印刷出力する画像データを少なくとも並行移動のライン数分画像メモリに保持する必要があり、補正処理に伴うコスト増が小さくない。
【０００８】
また、特許文献２では、エッジ画素（副走査方向に中間画素値から背景画素値に変化する画素）を抽出し、下端エッジの位置と下端エッジまでの中間画素値の長さを確定するために、副走査方向に画素値が入力される。このため、１ページ分の印刷データを生成した後、９０°回転を行って主走査方向に並べられた画素データ列を副走査方向に変換する前処理、或いは１ページ分の印刷データを生成する際に９０°回転したデータの生成が必要となる。しかしながら、プリントエンジンに出力する際は９０°回転して出力しなければならない。いずれにせよ９０°回転のためのバッファが必要となり、大幅なコストアップを招くことになる。
【課題を解決するための手段】
【０００９】
本発明に係る画像処理装置は、ハーフトーン処理後の多値データを補正する画像処理装置であって、前記多値データのうち、前記補正の対象となる補正ラインの多値データを入力する第１入力手段と、前記補正ラインからＮライン先行する先行ラインの多値データを入力する第２入力手段と、副走査方向において前記補正ラインに最も近い位置にある下端エッジから前記補正ラインまでに、前記先行ラインの多値データにおいてドットが連結するドット連結数を検出する検出手段と、前記補正ラインの多値データを、前記検出手段が検出した前記ドット連結数に基づいて補正する補正手段と、を備え、前記下端エッジは、副走査方向に濃度が小さくなるエッジで、かつ、濃度が小さい方が背景色となるエッジである、ことを特徴とする。
【発明の効果】
【００１０】
本発明によれば、エッジ効果の抑制を低コストで実現することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】電子写真方式の画像形成装置の概略構成を示す図である。
【図２】実施例１に係る、画像処理部の内部構成を示すブロック図である。
【図３】実施例１に係る、画像処理部における画像データ補正処理の流れを示すフローチャートである。
【図４】ハーフトーン処理後の画像データの一例を示す図である。
【図５】多値データからドットデータへの変換を説明する図である。
【図６】ドット検出の一例を示す図である。
【図７】ラインメモリに保持されるドットデータの一例を示す図である。
【図８】ドット連結数の一例を示す図である。
【図９】実施例１に係る、補正テーブルの一例を示す図である。
【図１０】補正対象となる多値データを、閾値を用いて限定する様子を説明する図である。
【図１１】実施例１を適用して得られた補正後の画像データ（多値データ）を示す図である。
【図１２】実施例２に係る、画像処理部の内部構成を示すブロック図である。
【図１３】ドット連結幅の導出・保持の方法を説明する図である。
【図１４】実施例２に係る、画像処理部における画像データ補正処理の流れを示すフローチャートである。
【図１５】実施例２に係る、補正テーブルの一例を示す図である。
【図１６】実施例２を適用して得られた補正後の画像データ（多値データ）を示す図である。
【図１７】実施例３に係る、画像処理部の内部構成を示すブロック図である。
【図１８】実施例３に係る、カウンタを用いたドット連結数のカウント処理の流れを示すフローチャートである。
【図１９】入力されたドットデータ列に対するカウンタ値の変遷を説明する図である。
【図２０】カウンタを用いたカウント処理によって得られるドット連結数を示す図である。
【図２１】実施例４に係る、複数のカウンタを用いたカウント動作を説明する図である。
【図２２】実施例４に係る、ドット連結数のカウント処理の流れを示すフローチャートである。
【図２３】実施例５に係る、ドット連結数のカウント処理の流れを示すフローチャートである。
【図２４】ステップ２３０６における分岐処理の条件を図示したものである。
【図２５】実施例５において得られるドット連結数を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明を実施する為の形態について図面を用いて説明する。なお、以下の実施例において示す構成は一例にすぎず、本発明は図示された構成に限定されるものではない。
【実施例１】
【００１３】
本実施例では、下端エッジからのドット連結数を導出し、下端エッジからの距離に応じて入力された画像データを補正する態様について説明する。
【００１４】
図１は、本実施例に係る、電子写真方式の画像形成装置の概略構成を示す図である。図１において、画像形成装置１００は、ＣＰＵ１０１、主記憶部１０２、画像処理部１０３、ＰＷＭ制御回路１０４、画像形成部１０５及びバス１０６で構成される。
【００１５】
画像形成装置１００は、ＣＰＵ１０１によって制御される。ＣＰＵ１０１は、ＨＤＤ等の主記憶部１０２に格納されているハーフトーン処理後の入力画像データを画像処理部１０３に読み出して補正処理を施す。補正処理された画像データは、再び主記憶部１０２に格納される。或いは、破線で示すようにＰＷＭ制御回路１０４に、補正処理後の画像データが直接出力される。
【００１６】
ＰＷＭ制御回路１０４は、主記憶部１０２や画像処理部１０３から入力される画像データに従い、画像形成部１０５におけるレーザー発光をＰＷＭ制御する。
【００１７】
画像形成部１０５は、ＰＷＭ制御回路１０４からの制御信号に従って感光体にレーザー光をスキャンして感光体上で潜像させ、色材としてのトナーを塗布し、記録媒体にトナーを定着させて画像を現像する。
【００１８】
バス１０６は、上記各部を相互に接続する。
【００１９】
続いて、画像処理部１０３について詳しく説明する。図２は、本実施例に係る画像処理部１０３の内部構成を示すブロック図である。
【００２０】
画像処理部１０３は、ライン入力部２００とライン補正部２１０とで構成される。まず、ライン入力部２００について説明する。
【００２１】
ライン入力部２００には、ハーフトーン処理後の多値の画像データ（以下、多値データ）のうち、データ値を補正する対象ライン（補正ライン）と、補正ラインにＮ（Ｎ：自然数）ライン先行しドット検出を行うライン（先行ライン）とを取得し、ライン補正部２１０に入力する。そのための構成として、ライン入力部２００は、補正ライン入力部２０１及び先行ライン入力部２０２を備える。ライン入力部２００は、ＤＭＡ（Direct Memory Access）機能を有し、主記憶部１０２に自律的に読み出し要求を出して多値データを受け取る構成でもよいし、ＣＰＵ１０１の要求により読み出される多値データを受け取る構成でもよい。また、補正ラインと先行ラインを物理的に相異なる経路を用いて多値データを受け取るようにしてもよいし、物理的に同一の経路を用いて時系列的に多値データを取得してもよい。
【００２２】
次に、ライン補正部２１０について説明する。
【００２３】
ライン補正部２１０は、ライン入力部２００から入力された多値データの先行ラインからドットデータを生成し、該ドットデータを用いて上述のドット連結数を導出して、下端エッジから補正ラインまでの距離に応じた補正を行う。ここで、ドット連結数は、補正ラインから下端エッジまで副走査方向にドット（所定の閾値以上の画素値を有する画素）がいくつ連結しているかを示す情報と定義される。そして、導出したドット連結数に基づいて、補正ラインの多値データを補正する。そのための構成として、ライン補正部２１０は、ドット検出部２１１、ドットデータ保持部２１２、ドット連結数導出部２１３及び多値データ補正部２１４を備える。下端エッジから補正ラインまでのドット連結数を導出するために必要な情報は、先行ラインから補正ラインまでの間の多値データそのものではなく、ドットデータ若しくはドットデータに由来する情報のみである。故に、先行する先行ラインの多値データは即座にドットデータに変換され、情報量が削減される。これにより、情報を保持するための記憶容量を削減できる。一方、補正が行われる多値データは、入力される補正ラインの多値データそのものであるため、保持する必要はない。すなわち、補正ラインと補正ラインに先行する先行ラインの多値データが入力されることによって、記憶容量を削減しつつ、下端エッジから補正ラインまでの距離に応じた補正処理が可能となる。
【００２４】
図３は、本実施例に係る、画像処理部１０３における画像データ補正処理の流れを示すフローチャートである。本処理は、以下に示す手順を記述したコンピュータ実行可能なプログラムを不図示のＲＡＭ上に読み込んだ後、ＣＰＵ１０１によって該プログラムを実行することによって実施される。
【００２５】
ステップ３０１において、ライン入力部２００は、ハーフトーン処理後の多値データのうち、補正ライン及び先行ラインの多値データを取得する。具体的には、補正ライン入力部２０１に、ハーフトーン処理後の多値データのうち、補正するラインの多値データが主記憶部１０２から入力される。また、先行ライン入力部２０２に、ハーフトーン処理後の多値データのうち、補正ラインにＮライン先行し、ドット検出を行う先行ラインの多値データが主記憶部１０２から入力される。本実施例では、ハーフトーン処理後の画像データとして、図４に示すような１６値（０〜１５）の多値データが格納されているものとする。
【００２６】
エッジ効果を抑制するための「下端エッジからの距離に応じた補正」を行うには、補正ラインに対する先行ラインの先行ライン量Ｎは、「エッジ効果抑制に必要な下端エッジからの最大距離」以上でなければならない。ここでは、エッジ効果抑制には下端エッジから少なくとも５ライン必要であるとの前提の下、先行ライン量Ｎを“５”として説明するものとする。
【００２７】
ステップ３０２において、ドット検出部２１１は、先行ラインの多値データからドットの検出を行い、少ないビット数（ここでは１ビット）のドットデータに変換する。図５は、多値データからドットデータへの変換を説明する図である。図５で示すように、閾値[ＴＨ１]（ここでは“１”）と多値データの値とを比較し、多値データの値が閾値[ＴＨ１]未満ならば“０”、閾値[ＴＨ１]以上ならば“１”が、ドットデータ（検出結果）として出力される。なお、補正された多値データによって、ＰＷＭ制御回路１０４を通して画像形成部１０５のレーザー発光時間が決定されるが、このときレーザー発光された画素にトナーが定着しドットを形成するかどうかは電子写真プロセスの各工程の特性によって決まるものである。従って、上記閾値[ＴＨ１]は、画像形成部１０５の電子写真プロセスの特性に合せて、適切に設定されることが好ましい。図６は、前述の図４で示した画像データの場合を例に、具体的なドット検出の一例を示す図である。画像データ６０１は、図４で示した画像データに説明のための行番号（Ｌ〜）と列番号（Ｃ〜）を付加したものである。いま、Ｌ５の多値データが補正ラインとして入力され、当該補正ラインに５ライン先行したＬ１０の多値データが先行ラインとして入力されたとする。Ｌ１０の先行ラインの多値データに対し補正対象ドットの検出を行った結果、ドットデータ６０２が得られることになる。
【００２８】
ステップ３０３において、ドットデータ保持部２１２は、不図示のラインメモリなどの記憶領域に、ステップ３０２で検出された１ビットのドットデータを保持する。ラインメモリは、補正ラインと先行ライン間の情報を保持する必要がある。本実施例では先行ライン量Ｎ＝５であるから５ライン以上のラインメモリを持つ必要がある。図７は、図６に示した画像データ６０１におけるＬ５を補正ライン、Ｌ１０を先行ラインとして入力したときのラインメモリに保持されるドットデータを示している。この場合、ドットデータ保持部２１２には、Ｌ５〜Ｌ９のドットデータが保持されることが分かる。ドットデータ保持部２１２は、これらのドットデータを後段のドット連結数導出部２１３に出力するとともに、ドット検出部２１１から入力されるドットデータ（図６の例ではドットデータ６０２）を、対応するドットデータ（図７におけるＬ５のドットデータ）が保持されている記憶領域に上書きして保持する。１６値（４ビット）の多値データをそのままラインメモリに保持する従来技術の場合には、４ビット×５ライン分の記憶容量を確保する必要があった。本実施例では、４ビットの多値データを1ビットのドットデータに変換することで、１／４の記憶容量で必要なデータを保持することができる。
【００２９】
ステップ３０４において、ドット連結数導出部２１３は、ドット検出部２１１から出力される先行ラインのドットデータと、ドットデータ保持部２１２に保持されたドットデータを参照し、補正ラインから下端エッジまでの副走査方向のドットの連結数を導出する。上述のとおり下端エッジは、「副走査方向に濃度が小さくなるエッジで、かつ、濃度が小さい方が背景色となるエッジ」と定義される。本実施例において背景色は、白（ドットが打たれない）であるとする。従って下端エッジは、「副走査方向下流で最初にドットデータが“１”から“０”に変わるエッジ」と言い換えることができる。本ステップでは、補正ラインから先行ラインまで、副走査方向にドットデータが“１”である画素が何画素連結しているかどうかを導出していることになる。図８は、図６に示した画像データ６０１におけるＬ５を補正ラインとして入力したときのドット連結数を示している。画像データ６０１におけるＣ０〜Ｃ４及びＣ１１〜Ｃ１５に関しては、補正ラインＬ５のドットデータが“０”であるため、ドット連結数は“０”となる。Ｃ５、Ｃ６、Ｃ９、Ｃ１０については、補正ラインであるＬ５のドットデータが“１”であって、先行ラインであるＬ１０までドットデータの値“１”が続いているので、ドット連結数は“６”となる。Ｃ７に関しては、補正ラインであるＬ５ではドットデータが“１”であるが、次のラインＬ６ではドットデータが“０”となっているので、この場合のドット連結数は“１”である。Ｃ８に関しては、補正ラインであるＬ５とその次のラインＬ６ではドットデータが“１”であるが、続くラインＬ７でドットデータが“０”となっているので、この場合のドット連結数は“２”である。その結果、補正ラインＬ５についてのドット連結数の導出結果は、図８の８０１のようになる。
【００３０】
ステップ３０５において、多値データ補正部２１４は、ステップ３０４で導出したドット連結数をもとに、補正ラインの多値データを補正する。この補正は、例えば、入力値としての（補正前の）多値データ及びドット連結数と、出力値としての（補正後の）多値データとを対応付けた補正テーブルを用いることで実現できる。図９は、本実施例に係る補正テーブルの一例を示す図であり、このような補正テーブルを予め用意し、主記憶部１０２に格納しておけばよい。補正テーブル内の補正後の多値データ（補正多値データ）の値は、エッジ効果の出現度合に応じて設定すればよく、画像形成部１０５の特性変化等によって適宜変更される。図９に示した補正テーブルの例では、ドット連結数が“０”又は“６”については出力値（補正多値データ）が設けられていない。これは、本実施例においてドット連結数が“０”又は“６”の場合は補正の必要がないことから補正の対象外とすること（すなわち、補正を行う場合のドット連結数の個数を“１〜５”の範囲に限定すること）を意味している。また、図９に示した補正テーブルでは、入力値としての多値データ（入力多値データ）の値が“１３〜１５”についてしか補正多値データが用意されていない。これは、多値データの値が小さい場合には、トナーが画素に定着する確率が不安定で、多値データの値を１レベル変更するだけで大きな影響が出てしまうため、補正を行う範囲を多値データの値が“１３”以上に限定したものである。これを実現するため、本実施例では、多値データに対して閾値[ＴＨ２]（ここでは、“１３”）を設けて、補正の対象とする範囲を所定値以上の多値データに限定している。図１０は、補正対象となる多値データを閾値を用いて限定する様子を説明する図であり、多値データの値が“０〜１２”までは補正対象外であり、“１３”以上が補正対象であることが示されている。
【００３１】
ステップ３０６では、入力された補正ラインが入力多値データにおける下端ラインであるかどうかの判定がなされる。下端ラインでなければステップ６０１に戻って、次のラインを対象に処理が続行される。一方、下端ラインであれば、処理を終了する。
【００３２】
以上が、本実施例に係る画像データ補正処理の内容である。図１１は、図４に示す画像データに本実施例を適用して得られた補正後の画像データ（多値データ）を示しており、オブジェクト内部の画素の値が小さく（濃度が低く）なっているのがわかる。図１１の画像データでは、上端部の補正ラインを入力させる前に、先行ライン入力部２０２に上端部５ライン分の先行ラインを入力させて、画像データ上部のドットデータを作成している。また、先行ライン入力部２０２において、先行ラインが画像データの領域外となってしまう場合には、多値データを“０”として後段に出力することで、多値データ下部のドットデータを作成している。
【００３３】
本実施例によれば、多値データを下端エッジからのドット連結数に応じて補正することで、エッジ効果による濃度変動を抑制することができる。また、下端エッジからのドット連結数を導出するために保持すべき情報を、多値データから抽出した少ビット数のドットデータのみとしているので、メモリの記憶容量を低減できる。
【実施例２】
【００３４】
次に、ドット連結数に加えてドット連結幅を導出して、下端エッジからの距離に応じた多値データの補正を行う態様について、実施例２として説明する。なお、実施例１と共通する部分については、説明を省略ないしは簡略化し、以下では差異点を中心に説明するものとする。
【００３５】
図１２は、本実施例に係る画像処理部１０３の内部構成を示すブロック図である。ライン補正部２１０内に、実施例１ではなかったドット連結幅導出部１２０１が追加されている。
【００３６】
ドット連結幅導出部１２０１は、ドット連結数導出部２１３から出力されるドット連結数をもとに、ドット連結幅を導出・保持し、後段の多値データ補正部２１４に出力する。ここで、ドット連結幅は、補正ラインのドットを含み、下端エッジから上端エッジ（副走査方向上流で最初にドットデータが“１”から“０”に変わるエッジ）まで何ドット連結しているかを示す情報である。
【００３７】
図１３は、ドット連結幅の導出・保持の方法を説明する図である。図１３（ａ）は、前述の図４で示した画像データを入力多値データとし、ドット連結数導出部２１３によって出力された補正ラインのドット連結数をライン毎に重ねたデータであって、説明のために行番号及び列番号を付加したものである。ドット連結幅導出部１２０１には、Ｌ０〜Ｌ１５までライン毎にドット連結数が入力される。そして、列毎に、入力されるドット連結数に基づいてドット連結幅を以下のようにして求める。  
・入力されるドット連結数が“０”の場合は、ドット連結幅を“０”とする。  
・入力されるドット連結数が“０”以外の場合は、現在保持しているドット連結幅と比較し、入力されるドット連結数が大きければ、その値を新たなドット連結幅として更新する。現在保持しているドット連結幅と比較して、入力されるドット連結数が小さければその値を維持する。
【００３８】
図１３（ｂ）は、図１３（ａ）に示すドット連結数がライン毎に入力された場合に導出されるドット連結幅を示したデータである。図１３（ｂ）のデータにおいて、例えばＣ０列では、Ｌ１２までの連結数は“０”であるので、Ｌ０〜Ｌ１２までの連結幅は“０”である。そして、Ｌ１３の連結数が“２”であるので、連結幅として“２”が保持される。Ｌ１４の連結数は“１”なので保持されている連結幅“２”が維持される。Ｌ１５については連結数が“０”なので、連結幅も“０”となる。
【００３９】
なお、ドット連結幅の値が“６”となる画素については、実際のドット連結幅（すなわち下端エッジから上端エッジの間のドット連結数）が“６”以上となる場合もある。しかしながら、ドット連結幅が先行ライン量Ｎを超える場合、ドット連結幅は補正量に大きな影響を与えないため、そのまま後段に出力しても問題ない。
【００４０】
また、導出されたドット連結幅の情報の保持が必要となるが、ドット連結幅の最大値は先行ライン量Ｎによって決まるため、Ｎ＝５の本実施例であれば高々４ビットの記憶容量を１ライン分持てばよい。
【００４１】
そして、多値データ補正部２１４において、ドット連結数導出部２１３で導出したドット連結数と、ドット連結幅導出部１２０１で導出したドット連結幅をもとに、補正ラインの多値データが補正される。
【００４２】
図１４は、本実施例に係る、画像処理部１０３における画像データ補正処理の流れを示すフローチャートである。
【００４３】
ステップ１４０１〜ステップ１４０４は、実施例１における図３のフローチャートのステップ３０１〜ステップ３０４にそれぞれ対応し、異なるところはないので説明を省く。
【００４４】
ステップ１４０５において、ドット連結幅導出部１２０１は、ステップ１４０４で導出されたドット連結数をもとに、上述のようにドット連結幅を導出して保持する。導出されたドット連結幅の情報は、多値データ補正部２１４に出力される。
【００４５】
ステップ１４０６において、多値データ補正部２１４は、ステップ１４０４で導出したドット連結数と、ステップ１４０５で導出したドット連結幅をもとに、補正ラインの多値データを補正する。この補正は、例えば、入力値としての多値データ、ドット連結数及びドット連結幅と、出力値としての多値データ（補正多値データ）とを対応付けた補正テーブルを用いることで実現できる。図１５は、本実施例の多値データ補正に用いる補正テーブルの一例を示す図である。ドット連結幅によってもエッジ効果の出現度合が変動することから、ドット連結幅に応じて補正多値データを調整することでより精度の高い補正が可能となる。なお、ドット連結幅が小さい場合にはもともと出力濃度が不安定であるため、余分な補正を行わないことが好ましい。そこで、図１５に示す補正テーブルでは、ドット連結幅が所定の幅以上の場合（ここでは、その値が“４”以上）のみについて補正多値データを用意し、ドット連結幅が所定の幅未満の場合の画素に関しては補正を行わない内容となっている。さらに、図１５の補正テーブルでは、補正の対象を入力多値データの値が“１５”のみに限定しているが、これに限定されるものでないことはいうまでもない。
【００４６】
ステップ１４０７では、入力された補正ラインが入力多値データにおける下端ラインであるかどうかの判定がなされる。下端ラインでなければステップ１４０１に戻って、次のラインを対象に処理が続行される。一方、下端ラインであれば、処理を終了する。
【００４７】
以上が、本実施例に係る画像データ補正処理の内容である。図１６は、図４に示す画像データに本実施例を適用して得られた補正後の画像データ（多値データ）を示している。実施例１を適用した場合の図１１と比較すると、いくつかの画素で元の濃度が維持、或いはより大きな値を持っていることが分かる。
【００４８】
本実施例によれば、より精度の高い多値データの補正が可能となり、過補正により出力濃度が不安定になることを防止することができる。
【実施例３】
【００４９】
次に、ドット連結数をカウンタにより計数する態様について、実施例３として説明する。なお、実施例１と共通する部分については、説明を省略ないしは簡略化し、以下では差異点を中心に説明するものとする。
【００５０】
図１７は、本実施例に係る画像処理部１０３の内部構成を示すブロック図である。実施例１の図２のブロック図と比較すると、ライン補正部２１０の構成が以下の点で異なっている。
【００５１】
まず、ドット検出部が２つ設けられている。具体的には、先行ライン入力部２０２に入力された先行ラインのドット検出を行う第１ドット検出部１７０１（実施例１のドット検出部２１１に相当）と、補正ライン入力部２０１に入力された補正ラインのドット検出を行う第２のドット検出部１７０２が存在する。
【００５２】
第２ドット検出部１７０２におけるドット検出も、第１ドット検出部１７０１と同様、多値データの値と閾値との比較によりなされる（前述の図５を参照）。第２ドット検出部１７０２においても、第１ドット検出部１７０１と同一の基準によってドットデータへの変換を行うことから、閾値[ＴＨ１]の値は、第１ドット検出部１７０１（つまり、ドット検出部２１１）の場合と同一の値となる。そして、第１及び第２ドット検出部での検出結果としてのドットデータは、ドット連結数カウント部１７０３に入力される。
【００５３】
ドット連結数カウント部１７０３は、第１ドット検出部１７０１から入力される補正ラインのドットデータ及び第２ドット検出部１７０２から入力される先行ラインのドットデータをもとに、ドット連結数を、カウンタを用いて計数（カウント）する。本実施例において、カウンタは、１ラインの各列に１つ設けられ、図１８に示すフローチャートに従って、下端エッジから補正ラインまでのドット連結数がカウントされる。以下、本実施例におけるドット連結数のカウント動作について、図１８のフローチャートに沿って説明する。
【００５４】
ステップ１８０１では、カウンタを初期化（０をセット）する。
【００５５】
ステップ１８０２では、第１ドット検出部１７０１で（すなわち、先行ラインの画素で）ドットが検出されたかどうかを判定する。第１ドット検出部１７０１でドットが検出された場合（ドットデータが“１”である場合）には、ステップ１８０３に進む。一方、第１ドット検出部１７０１でドットが検出されなかった場合（ドットデータが“０”である場合）には、ステップ１８０４に進む。
【００５６】
ステップ１８０３では、カウンタをインクリメント（＋１）する。
【００５７】
ステップ１８０４では、現在のカウンタ値をドット連結数として出力する。
【００５８】
ステップ１８０５では、第２ドット検出部１７０２で（すなわち、補正ラインの画素で）ドットが検出されたかどうかを判定する。第２ドット検出部１７０２でドットが検出された場合（ドットデータが“１”である場合）には、ステップ１８０６に進む。一方、第２ドット検出部１７０２でドット検出されなかった場合（ドットデータが“０”である場合）には、ステップ１８０７に進む。
【００５９】
ステップ１８０６では、カウンタをデクリメント（−１）する。
【００６０】
ステップ１８０７では、補正ラインが入力多値データの下端ラインであるかどうかを判定する。補正ラインが下端ラインである場合には処理を終了する。一方、補正ラインが下端ラインでない場合には、ステップ１８０２に戻り、次のラインの処理を行う。このようにして、下端エッジから補正ラインまでのドット連結数がカウントされる。
【００６１】
図１９は、入力されたドットデータ列に対するカウンタ値の変遷を説明する図である。図１９では、図６に示した画像データのＣ３列を入力ドットデータ列とした場合のドット検出結果が示されている。また、同一時間に対して上側に並んだ矩形は補正ラインのドットデータで、“１”を黒、“０”を白でそれぞれ表しており、矩形内の数値はカウンタの出力値（ドット連結数）を示している。また、同一時間に対して下側に並んだ矩形は先行ラインのドットデータで、同様に、“１”を黒、“０”を白でそれぞれ表している。ライン毎に先行ライン及び補正ラインのドットデータが入力され、先行ラインのドットデータが“１（黒）”である場合にカウンタがインクリメントされ、カウンタ値が出力される。その後、補正ラインのドットデータが“１（黒）”になると、カウンタがデクリメントされる。なお、入力ドットデータの上端部については、補正ライン上端部の入力前に先行ラインを５ライン分入力させており、入力ドットデータの下端部については先行ラインがドットデータの領域外となる場合は、ドットデータを“０”としている。
【００６２】
図２０は、上述したカウント処理を、図４（図６）に示す画像データに適用した結果得られるドット連結数を示している。以上のようにして得られたドット連結数が多値データ補正部２１４に出力されることになる。
【００６３】
なお、ドット連結数カウント部１７０３から出力されるカウンタ値は、補正ラインと先行する先行ラインの間のドット検出がなされた画素の数である。そのため、Ｃ５〜Ｃ９の列についてはドット連結間の間隙が先行ライン量Ｎよりも狭く、一部で前述の図１３（ａ）で示したデータと異なるドット連結数が出力される。具体的には、Ｃ５列のＬ７〜Ｌ１０、Ｃ６列のＬ９とＬ１０、Ｃ７列のＬ３〜Ｌ５、Ｃ９列のＬ９とＬ１０において、図２０におけるドット連結数が図１３（ａ）よりも大きな値となっている。その結果、本実施例で導出されたドット連結数をもとに多値データを補正した場合、下端エッジ周辺の濃度変動が若干残る（補正不足が生じる）ことになる。しかしながら、実際にプリンタで印刷される書類等の多くの画像では、ドット連結数が大きく、且つ、ドット連結間の距離が離れていることが多いため、本実施例で得られるドット連結数に基づいて多値データの補正を行っても大きな影響はない。
【００６４】
一方、保持すべき情報量は実施例１と比較してより少なくて済む。本実施例の場合、列毎に４ビットのカウンタを１ライン分持てば実現可能であるため、ドットデータをラインメモリに保持する実施例１よりも回路規模削減効果が大きい。そして、先行ライン量Ｎを大きくしていくと、ドットデータをラインメモリに保持する場合と比較して、削減効果はより大きくなっていく。
【００６５】
さらには、実施例２を適用してドット連結幅を導出・保持し、ドット連結幅に応じて補正多値データを変更（もしくは多値データを補正しない）してもよい。
【実施例４】
【００６６】
次に、実施例３をベースとして、ドット連結数を複数のカウンタを用いることで正確に計数する態様について、実施例４として説明する。なお、実施例３と共通する部分については、説明を省略ないしは簡略化し、以下では差異点を中心に説明するものとする。
【００６７】
本実施例では、複数のカウンタを用いることによって、正確なドット連結数のカウントを実現する。以下、本実施例に係るカウント動作について説明する。
【００６８】
本実施例におけるドット連結数カウント部１７０３は、先行ライン側カウンタポインタ[Ｐｐ]と、補正ライン側カウンタポインタ[Ｐｃ]とによって、複数のカウンタを制御してドット連結数をカウントする。ここで、カウンタの数は、先行ラインと補正ラインの間にいくつのドット連結（連続するドットの固まり）が存在し得るかによって決まる。つまり、カウンタの最大数は、先行ライン量をＮとすると、｛１＋（Ｎ／２）｝となる（小数点以下は切り捨て）。そして、対応するカウンタポインタの値は、０〜｛１＋（Ｎ／２）｝の範囲をとり、各カウンタにそれぞれのカウンタポインタの値が対応付けられる。そして、カウンタポインタの示す値により対応するカウンタが選択されることで、ドット連結数が出力される。
【００６９】
図２１は、本実施例に係る複数のカウンタを用いたカウント動作を説明する図である。図２１の例では、Ｎ＝５として、３個のカウンタのそれぞれに対して補正ライン側カウンタポインタ[Ｐｃ]と先行ライン側カウンタポインタ[Ｐｐ]の値“０〜２”が１対１で対応付けられている様子が示されている。
【００７０】
本実施例では、第１ドット検出部１７０１及び第２ドット検出部１７０２からそれぞれ入力されるドットデータをもとに、先行ライン側カウンタポインタ[Ｐｐ]と補正ライン側カウンタポインタ[Ｐｃ]の値によって、出力に用いるカウンタを切り替えている。図２２は、本実施例におけるドット連結数のカウント処理の流れを示すフローチャートである。以下、図２１で示したＮ＝５の場合を前提に説明する。
【００７１】
ステップ２２０１では、全てのカウンタを初期化（“０”をセット）する。
【００７２】
ステップ２２０２では、先行ライン側カウンタポインタ[Ｐｐ]及び補正ライン側カウンタポインタ[Ｐｃ]をそれぞれ初期化（“０”がセット）する。この初期化によって、双方のカウンタポインタは、同一のカウンタ（カウンタ＿０）を示すこととなる。
【００７３】
ステップ２２０３では、先行ラインの画素でドットが検出されたか否かを判定する。先行ラインの画素でドットが検出された場合（第１ドット検出部１７０１から入力されたドットデータが“１”である場合）は、ステップ２２０４に進む。一方、先行ラインの画素でドットが検出されなかった場合（第１ドット検出部１７０１から入力されたドットデータが“０”である場合）は、ステップ２２０５に進む。
【００７４】
ステップ２２０４では、先行ライン側カウンタポインタ[Ｐｐ]が示すカウンタのカウンタ値をインクリメントする。
【００７５】
ステップ２２０５では、先行ライン側カウンタポインタ[Ｐｐ]の値を更新（ここでは、インクリメント）する。例えば、前述した図２０の画像データのＣ７列の場合、Ｌ１〜Ｌ５のドット連結では先行ライン側カウンタポインタ[Ｐｐ]の値は“０”であるが、Ｌ８〜Ｌ１０のドット連結ではカウンタポインタ[Ｐｐ]の値は更新によって“１”となる。つまり、先行ライン側カウンタポインタ[Ｐｐ]が示すカウンタは、Ｌ１〜Ｌ５では[カウンタ＿０]であり、Ｌ８〜Ｌ１０では[カウンタ＿１]となる。この更新によって、補正ライン側カウンタポインタ[Ｐｃ]が示すカウンタと先行ライン側カウンタポインタ[Ｐｐ]が示すカウンタとが、後述のステップ２２０９で補正ライン側カウンタポインタ[Ｐｃ]が更新されるまでの間は異なることになる。なお、複数（ここでは３個）のカウンタのすべてが一通り指定された後の更新であれば、カウンタポインタの初期値（本実施例では“０”）へと戻される。
【００７６】
ステップ２２０６では、補正ライン側カウンタポインタ[Ｐｃ]が示すカウンタのカウンタ値を、ドット連結数として出力する。
【００７７】
ステップ２２０７では、補正ラインの画素でドットが検出がされたか否かを判定する。補正ラインの画素でドットが検出された場合（第２ドット検出部１７０２から入力されたドットデータが“１”である場合）は、ステップ２２０８に進む。一方、補正ラインの画素でドットが検出されなかった場合（第２ドット検出部１７０２から入力されたドットデータが“０”である場合）は、ステップ２２０９に進む。
【００７８】
ステップ２２０８では、補正ライン側カウンタポインタ[Ｐｃ]が示すカウンタのカウンタ値をデクリメントする。
【００７９】
ステップ２２０９では、補正ライン側カウンタポインタ[Ｐｃ]の値を更新（ここでは、インクリメント）する。なお、カウンタを指定する値の更新の順序は、ステップ２２０５における先行ライン側カウンタポインタの更新と同一とする。すなわち、先行ライン側カウンタポインタ[Ｐｐ]の初期値を“３”とし、更新時にはデクリメント（−１）することで指定するカウンタを変更する場合であれば、補正ライン側カウンタポインタ[Ｐｃ]も同様に初期値を“３”とした上で、デクリメントされる。
【００８０】
ステップ２２１０では、補正ラインが入力多値データの下端ラインであるかどうかを判定する。補正ラインが下端ラインである場合には処理を終了する。一方、補正ラインが下端ラインでない場合には、ステップ２２０３に戻り、次のラインの処理を行う。
【００８１】
以上が、本実施例におけるドット連結数のカウント動作の流れである。
【００８２】
本実施例によれば、実施例３と異なり、補正ラインと先行ライン間のドット連結毎に一つのカウンタが使用されるので、ドット連結間の間隙が先行ライン量Ｎ以下であっても、正確に下端エッジからの距離に応じた濃度補正が可能となる。
【００８３】
また、カウンタの数は最大でも｛１＋（先行ライン量Ｎ）／２｝であり、従来技術のように入力多値データをラインメモリに直接保持するよりも回路規模を削減可能である。
【実施例５】
【００８４】
次に、実施例３をベースとしつつ、出力濃度が不安定となるようなドット連結幅の場合に多値データを補正しない態様について、実施例５として説明する。なお、以下では実施例３との差異点を中心に説明するものとする。
【００８５】
本実施例に係るドット連結数カウント部１７０３は、ドット連結数を計数する際に、出力濃度が不安定となるようなドット連結幅（以下、最小連結幅）未満のドット連結に対してはカウンタをリセットして、多値データの補正を行わないようにする。具体的には、補正ライン及び先行ラインのドット検出結果に基づいて、予め設定された最小連結幅未満のドット連結についてはカウンタをリセットして、出力されるドット連結数が０となるように制御する。
【００８６】
図２３は、本実施例に係る、ドット連結数カウント部１７０３におけるドット連結数のカウント処理の流れを示すフローチャートである。
【００８７】
ステップ２３０１では、カウンタを初期化（０をセット）する。
【００８８】
ステップ２３０２では、カウンタをリセットするためのフラグ（以下、リセットフラグ）に“０”をセットする。このリセットフラグは、列毎に１ビットずつ保持するフラグであり、補正ラインから先行ラインの間に最小連結幅未満のドット連結があり、カウンタがリセットされた場合にそのことを示す値として“１”がセットされる。
【００８９】
ステップ２３０３では、第１ドット検出部１７０１で（すなわち、先行ラインの画素で）ドットが検出されたかどうかを判定する。第１ドット検出部１７０１でドットが検出された場合（ドットデータが“１”である場合）には、ステップ２３０４に進む。一方、第１ドット検出部１７０１でドットが検出されなかった場合（ドットデータが“０”である場合）には、ステップ２３０５に進む。
【００９０】
ステップ２３０４では、カウンタをインクリメント（＋１）する。
【００９１】
ステップ２３０５では、第２ドット検出部１７０２で（すなわち、補正ラインの画素で）ドットが検出されたかどうかを判定する。第２ドット検出部１７０２でドットが検出された場合（ドットデータが“１”である場合）には、ステップ２３０９に進む。一方、第２ドット検出部１７０２でドットが検出されなかった場合（ドットデータが“０”である場合）には、ステップ２３０６に進む。
【００９２】
ステップ２３０６では、カウンタ値が最小連結幅を規定する所定の閾値未満であるかどうかを判定する。本実施例では、最小連結幅を規定する所定の閾値を“４”に設定した場合を想定する。判定の結果、カウンタ値が所定の閾値未満である場合は、ステップ２３０７に進む。一方、カウンタ値が所定の閾値以上である場合は、ステップ２３０９に進む。
【００９３】
ステップ２３０７では、カウンタをリセット（“０”をセット）する。図２４は、先行ライン量Ｎを“５”、最小連結幅を規定する閾値を“４”とした場合における、ステップ２３０７に進むための条件を図示したものである。補正ラインと先行ラインの間に連結幅が４個未満のドット連結（図２４においては３個のドット連結）が存在するときにカウンタがリセットされることを示している。
【００９４】
ステップ２３０８では、上述のリセットフラグに“１”をセットする。
【００９５】
ステップ２３０９では、現在のカウンタ値をドット連結数として出力する。
【００９６】
ステップ２３１０では、カウンタ値が最小連結幅を規定する所定の閾値以上であるかどうかを判定する。判定の結果、カウンタ値が所定の閾値以上である場合は、ステップ２３１１に進む。一方、カウンタ値が所定の閾値未満である場合は、ステップ２３１２に進む。
【００９７】
ステップ２３１１では、上述のリセットフラグに“０”をセットする。リセットフラグに“１”がセットされている間は、後段のステップ２３１３におけるカウンタのデクリメントは実行されない。リセットフラグに“１”がセットされている間は、先行ラインにおいて、リセットフラグに“１”がセットされる要因となった最小連結幅未満のドット連結より下流にある、ドット連結数を計数するのみとなる。このとき、リセットフラグが“０”にセットされる条件（カウンタ値が最小連結幅以上）を満たすのは、最小連結幅未満のドット連結が既に先行ラインと補正ラインの間からなくなり、補正が必要な最小連結幅以上のドット連結が存在する可能性が高い場合である。そのため、本ステップでリセットフラグに“０”をセットし、最小連結幅未満のドット連結によりカウンタをリセットしたことを示す情報を消去する。
【００９８】
ステップ２３１２では、第２ドット検出部１７０２で（すなわち、補正ラインの画素で）ドットの検出がされ、かつ、リセットフラグが“０”であるかどうかを判定する。第２ドット検出部１７０２でドットが検出され（ドットデータが“１”）、かつ、リセットフラグが“０”である場合には、ステップ２３１３に進む。一方、それ以外である場合には、ステップ２３１４に進む。
【００９９】
ステップ２３１３では、カウンタをデクリメント（−１）する。このとき、カウンタ値が既に“０”である場合には、デクリメントは行わない。
【０１００】
ステップ２３１４では、補正ラインが入力多値データの下端ラインであるかどうかを判定する。補正ラインが下端ラインである場合には処理を終了する。一方、補正ラインが下端ラインでない場合には、ステップ２３０３に戻り、次のラインの処理を行う。
【０１０１】
以上が、本実施例におけるドット連結数のカウント動作の流れである。このようにしてカウント動作を行なう結果、最小連結幅未満のドット連結については、ドット連結数が“０”として出力されることになる。
【０１０２】
図２５は、上述したドット連結数のカウント処理を、図４に示す画像データに適用した結果得られるドット連結数を示している。図２５の場合、Ｃ０列のＬ１３とＬ１４、Ｃ６列のＬ１３とＬ１４、Ｃ７列のＬ８〜Ｌ１０、Ｃ８列のＬ８〜Ｌ１０、Ｃ９列のＬ１３とＬ１４、Ｃ１５列のＬ１３とＬ１４にて、本来は“１”以上の値が出力されるはずのドット連結数がすべて“０”となっている。
【０１０３】
本実施例によれば、出力濃度が不安定となるようなドット連結に対しては、コスト増加を最小限に抑えつつ、多値データの補正を行わないことが可能となる。
【符号の説明】
【０１０４】
２００  ライン入力部
２０１  補正ライン入力部
２０２  先行ライン入力部
２１０  ライン補正部
２１１  ドット検出部
２１２  ドットデータ保持部
２１３  ドット連結数導出部
２１４  多値データ補正部
【図１】
0006316135.tif 000002
【図２】
0006316135.tif 000003
【図３】
0006316135.tif 000004
【図４】
0006316135.tif 000005
【図５】
0006316135.tif 000006
【図６】
0006316135.tif 000007
【図７】
0006316135.tif 000008
【図８】
0006316135.tif 000009
【図９】
0006316135.tif 000010
【図１０】
0006316135.tif 000011
【図１１】
0006316135.tif 000012
【図１２】
0006316135.tif 000013
【図１３】
0006316135.tif 000014
【図１４】
0006316135.tif 000015
【図１５】
0006316135.tif 000016
【図１６】
0006316135.tif 000017
【図１７】
0006316135.tif 000018
【図１８】
0006316135.tif 000019
【図１９】
0006316135.tif 000020
【図２０】
0006316135.tif 000021
【図２１】
0006316135.tif 000022
【図２２】
0006316135.tif 000023
【図２３】
0006316135.tif 000024
【図２４】
0006316135.tif 000025
【図２５】
0006316135.tif 000026