(57)【要約】【課題】  従来、周辺画素情報を基に演算する画像処理は周辺画素を参照するためのバッファを多く用意するため、必要なメモリ容量が多くなり、演算負荷が大きくなる。【解決手段】  ウインドウ内の画像データの注目画素を含む注目ラインが黒ラインであると判定したとき、当該注目ラインを含む連続する黒ラインの数をカウントし、そのカウントされた前記連続する黒ラインの数が所定値よりも大きいかどうかに応じて、前記注目ラインが黒地エリアにあるか否かを判定する。この判定結果、及び前記連続する黒ラインの数を前記注目画素に対応つけて保持し、その保持された前記判定結果、及び前記連続する黒ラインの数に基づいて、前記注目画素に対して画像処理を行う。【選択図】  図４
2014099767.tif 000002
【特許請求の範囲】
【請求項１】
ウインドウ内の画像データの注目画素を含む注目ラインが黒ラインか否かを判定するライン判定手段と、
前記ライン判定手段が、前記ウインドウ内で前記注目ラインが黒ラインであると判定したとき、当該注目ラインを含む連続する黒ラインの数をカウントする黒ライン数カウント手段と、
前記黒ライン数カウント手段によりカウントされた前記連続する黒ラインの数が所定値よりも大きいかどうかに応じて、前記注目ラインが黒地エリアにあるか否かを判定する判定手段と、
前記判定手段による判定結果、及び前記黒ライン数カウント手段に求めた前記連続する黒ラインの数を前記注目画素に対応つけて保持する保持手段と、
前記保持手段により保持された前記判定結果、及び前記連続する黒ラインの数に基づいて、前記注目画素に対して画像処理を行う画像処理手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記画像処理手段による前記画像処理は、前記画像データから黒画素を間引く間引き処理であり、前記画像処理手段は更に、間引き処理の設定情報に従って前記間引き処理を実行することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記間引き処理の設定情報は、前記連続する黒ラインの数に対応つけて前記間引き処理で使用するパターンを特定する情報を含み、
前記画像処理手段は、前記注目ラインが黒地エリアにないとき、前記ウインドウ内の画像データの一部を前記パターンで置き換えることを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記ライン判定手段は、前記注目画素を含むラインに含まれる黒画素の数が所定値或いはそれ以上の場合に、当該ラインが黒ラインであると判定することを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
前記注目ラインの方向は主走査方向であり、前記連続する黒ラインの数は、副走査方向に連続する黒ラインの数であることを特徴とする請求項１乃至４のいずれか１項に記載の画像処理装置。
【請求項６】
前記画像処理手段により画像処理がなされた画像データを画像形成装置に出力する出力手段を更に有し、
前記ウインドウのサイズは、前記画像データの解像度、前記画像形成装置の画像形成速度、或いは前記画像形成装置の周辺環境に応じて変更されることを特徴とする請求項１乃至５のいずれか１項に記載の画像処理装置。
【請求項７】
画像処理装置を制御する画像処理方法であって、
ライン判定手段が、ウインドウ内の画像データの注目画素を含む注目ラインが黒ラインか否かを判定するライン判定工程と、
黒ライン数カウント手段が、前記ライン判定工程が前記ウインドウ内で前記注目ラインが黒ラインであると判定したとき、当該注目ラインを含む連続する黒ラインの数をカウントする黒ライン数カウント工程と、
判定手段が、前記黒ライン数カウント工程でカウントされた前記連続する黒ラインの数が所定値よりも大きいかどうかに応じて、前記注目ラインが黒地エリアにあるか否かを判定する判定工程と、
保持手段が、前記判定工程による判定結果、及び前記黒ライン数カウント工程で求めた前記連続する黒ラインの数を前記注目画素に対応つけて保持する保持工程と、
画像処理手段が、前記保持工程で保持された前記判定結果、及び前記連続する黒ラインの数に基づいて、前記注目画素に対して画像処理を行う画像処理工程と、
を有することを特徴とする画像処理方法。
【請求項８】
コンピュータを、請求項１乃至６のいずれか１項に記載の画像処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置とその方法、及びプログラムに関するものである。
【背景技術】
【０００２】
印刷機能を備えた画像処理装置において、コンピュータ等で作成したデータを印刷する機会が増えている。レーザビームプリンタ等の画像処理装置は、コンピュータ、ワークステーション等のホストコンピュータより印刷に関するコマンド及びコード化された文字、図形情報を受信する。受信したコマンド情報をレンダリング手段により画素情報に変換し、これら画素情報に基づいて生成される画像信号を基に画像を形成（印刷）している。
【０００３】
この画像形成において、黒ラインを検出して行うトナーの載り量の調整処理がある。この処理は、現像の際に付着するトナーの量が多いと、トナーが用紙に完全に定着をせずにトナーが飛び散るトナーが抜けが発生するのを防止するためのものである。
【０００４】
具体的には、主走査方向に直線を印刷した場合、図２に示すように、用紙２０１に印刷された線２０２の副走査方向の後方にトナーが飛び散って画像を乱すという問題が発生していた。これは図３に示すように、内部に高温のヒータを持つ定着器３０１を用紙２０１が通過する際に、急激に温められることで用紙中の水分が水蒸気３０２となって紙から飛び出してくる。このときトナー３０３が細くて高い堤防の状態であると、用紙２０１の水蒸気３０２の勢いに負けてトナーを搬送方向（副走査方向）の後方に吹き飛ばすことが分かっている。以下、このような主走査方向に直線である線画像の副走査方向の後方にトナーが飛び散って画像を乱す現象を「尾引き現象」と呼ぶ。尚、用紙２０１の搬送方向を副走査方向とし、それと直交する方向を主走査方向とする。また用紙２０１において、定着器３０１へ先に到達する部分を上流エリア、後から到達する部分を下流エリアとして扱う。
【０００５】
この「尾引き現象」の対策としては、従来からトナーの載り量を減らすという方法が取られてきた。具体的には、画像データに基づいて黒地エリアかどうかを判定し、その判定結果を用いて画像データに対して間引き処理を行っていた。この黒地エリアかどうかの判定は、副走査方向に連続する黒ラインの数をカウントし、その数が閾値以上になると黒地エリアに突入したと判定する。そして、それ以降の副走査方向の下流エリア（これから定着するエリア）を黒地エリアとして扱う。また、副走査方向に連続する白ラインの数をカウントし、その連続する白ラインの数が閾値以上になると、黒地エリアから脱出したと判定する。そして、それ以降の副走査方向の下流エリアを非黒地エリアとして扱う。
【０００６】
間引き処理部は、この黒地エリアかどうかを示すフラグの状態を見て、黒ラインに対する間引き処理を制御する。尚、画像処理装置が設置されている環境の湿度や温度等の環境条件によって、「尾引き現象」が発生する頻度が異なることが知られている。また印刷に使用される紙等のメディアには様々な種類が存在するが、メディアの種類によっても異なることが知られている。
【０００７】
上述したトナーの載り量の調整処理をハードウェアで行う場合は、周辺画素の情報を得る参照ウインドウを設定し、そのウインドウ用のラインバッファとしてＳＲＡＭを用いるために回路規模が大きくなりコストや消費電力が増大するという課題があった。またソフトウェアで処理する場合でも、ワークメモリや演算によるＣＰＵの負荷の増大によりパフォーマンスが劣化するという課題があった。
【０００８】
一方、周辺画素の情報のうち、画像演算に必要な情報を記憶することでメモリ容量を削減し、例えば原稿中の黒すじを検出することができる画像処理装置および黒すじ検出方法が提案されている（例えば、特許文献１参照）。この発明では、黒スジ検出に用いるために走査ライン毎に、白画素と黒画素のラン長をそれぞれ算出し、これら白及び黒画素のラン長により、走査ライン上で白画素から黒画素に変化する位置を算出する。そして、既に読み取った走査ラインから得られた黒すじ位置の候補を記憶する。処理中のラインで白画素から黒画素に変化した位置と黒すじ位置の候補とが一致していれば黒すじ位置の候補を残し、一致していなければ候補から除外する。一定の走査ライン数で処理を行い、除外されなかった黒すじ位置の候補に基づいて、黒画素の位置を黒すじ位置として検出する。このように座標位置だけを記憶することにより、ラインバッファを用いずにメモリ量を削減して黒すじを検出する技術が記載されている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００１−１５７０４６号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上述した手法は、黒スジが主走査ラインの数か所にしか存在しない場合には有効である。しかしながら、トナーの載り量を低減するために座標情報を記憶する方法を適用した場合は、各画素に対して周辺情報が必要なため、座標情報用のメモリ量がラインバッファの容量より増大してしまうという課題があった。
【００１１】
本発明の目的は、上記従来技術の問題点を解決することにある。
【００１２】
本発明の目的は、画像データの黒画素を間引いて尾引き現象の発生を抑える処理を、より少ないメモリ容量で実現できる技術を提供することにある。
【課題を解決するための手段】
【００１３】
上記目的を達成するために本発明の一態様に係る画像処理装置は以下のような構成を備える。即ち、
ウインドウ内の画像データの注目画素を含む注目ラインが黒ラインか否かを判定するライン判定手段と、
前記ライン判定手段が、前記ウインドウ内で前記注目ラインが黒ラインであると判定したとき、当該注目ラインを含む連続する黒ラインの数をカウントする黒ライン数カウント手段と、
前記黒ライン数カウント手段によりカウントされた前記連続する黒ラインの数が所定値よりも大きいかどうかに応じて、前記注目ラインが黒地エリアにあるか否かを判定する判定手段と、
前記判定手段による判定結果、及び前記黒ライン数カウント手段に求めた前記連続する黒ラインの数を前記注目画素に対応つけて保持する保持手段と、
前記保持手段により保持された前記判定結果、及び前記連続する黒ラインの数に基づいて、前記注目画素に対して画像処理を行う画像処理手段と、を有することを特徴とする。
【発明の効果】
【００１４】
本発明によれば、画像データの黒画素を間引いて尾引き現象の発生を抑える処理を、より少ないメモリ容量で実現できるという効果がある。
【図面の簡単な説明】
【００１５】
【図１】本実施形態に係る印刷システムの構成図。
【図２】一般的な尾引き現象を説明する図。
【図３】電子写真方式のプリンタにおける尾引き現象の発生メカニズムを説明する簡略図。
【図４】実施形態１に係る画像変換部の構成を説明するブロック図。
【図５】実施形態１に係るライン幅カウント部による処理の一例を説明するフローチャート。
【図６】実施形態１に係る黒地エリア判定部による処理を説明するフローチャート。
【図７】実施形態１に係る間引き処理部による処理を説明するフローチャート。
【図８】実施形態１に係る間引き処理部による間引き処理の概要を説明する図。
【図９】実施形態１における、黒地エリアの状態別の、各黒ライン幅に対応した間引き設定情報の一例を示す図。
【図１０】実施形態に係る間引きパターンの一例を示す図。
【発明を実施するための形態】
【００１６】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。尚、本実施形態では、レーザビームプリンタに適用する場合を説明するが、本発明はこれに限られるものではなく、その主旨を逸脱しない範囲で、任意のプリンタやファクシミリ装置等の電子写真方式の画像処理装置にも適用できる。また白黒プリンタに適用する場合を説明するが、カラープリンタであっても適用できる。
【００１７】
先ず最初に、本実施形態の概要について説明する。
【００１８】
本実施形態では、副走査方向に連続する黒ラインの数をカウントし、連続する黒ラインの数が第１閾値以上の場合、黒地エリアに突入したと判定して黒地エリアを示すフラグ（BkAreaFlag）をオンにする。そして、それ以降の副走査方向の下流エリア（これから定着するエリア）を黒地エリアとして扱う。また同様に、副走査方向に連続する白ラインの数をカウントし、連続する白ラインの数が第２閾値以上の場合、黒地エリアから脱出したと判定して黒地エリアを示すフラグ（BkAreaFlag）をオフにする。そして、それ以降の副走査方向の下流エリアを非黒地エリアとして扱う。また、この黒地エリアを示すフラグ（BkAreaFlag）の状態に基づいて、黒ラインに対する間引き処理を制御する。ここで上記の連続する黒及び白ラインの数は、予め記憶部に格納してある１ライン前に算出した副走査方向の上流エリア（既に定着したエリア）の計数値を読み出し、現在処理中の黒もしくは白ラインの数を、各カウンタに加算、もしくはカウンタをクリアする。また、その結果を再度、記憶部に格納する。
【００１９】
尚、本実施形態では、黒地エリアかどうかの判定するためのラインの判断（黒ライン／白ライン／その他）を、解像度６００ｄｐｉで、９画素×３１ラインのウインドウを用いて行う。ここでウインドウの中心を、注目画素（ウインドウの左から５画素目、上から１６ライン目）とし、注目画素を含むラインを注目ラインとして各画素に対して主走査方向にラスタ形式で処理している。しかし、このウインドウのサイズは、黒地かどうかを判断するためのものなので、もっと大きなウインドウで処理しても問題はなく、これに限るものではない。
【００２０】
図１は、本実施形態１に係る印刷システムの構成図である。
【００２１】
この印刷システムでは、ホストコンピュータ１７０と白黒プリンタ１００とが互いにネットワーク１９０を介して接続されている。ここでホストコンピュータ１７０は、白黒プリンタ１００に描画コマンドを送り、これを受け取った白黒プリンタ１００は、その描画コマンドを印刷可能な画像データに変換して紙面に印刷する。
【００２２】
ホストコンピュータ１７０は、アプリケーション１７１、プリンタドライバ１７２、ネットワークＩ／Ｆ１７３を有している。アプリケーション１７１は、ホストコンピュータ１７０で動作するアプリケーションであり、このアプリケーションを用いることで、ページレイアウト文書やワードプロセッサ文書、グラフィック文書等が作成される。プリンタドライバ１７２は、このアプリケーション１７１で作成された文書データに基づいて描画コマンドを生成する。このプリンタドライバ１７２で生成される描画コマンドとしては、ＰＤＬ（ページ記述言語）等のプリンタ記述言語がある。また描画コマンドには、通常、文字やグラフィックス、イメージ等のデータの描画命令が含まれている。こうして生成された描画コマンドは、ネットワークＩ／Ｆ１７３により、ネットワーク１９０を介して白黒プリンタ１００に送信される。
【００２３】
次に白黒プリンタ１００について説明する。
【００２４】
白黒プリンタ１００は、コントローラ部１０１、プリンタ部１０２を具備している。コントローラ部１０１では、ＣＰＵ１１２等の各種モジュールがシステムバス１１１を介して接続されている。ＲＡＭ１１４は、ＲＯＭ１１３に格納されているプログラムデータをロードして一時記憶する。ＣＰＵ１１２は、このＲＡＭ１１４にロードされたプログラムに従って各種モジュールに命令を出力して白黒プリンタ１０２を動作させる。また、各モジュールが命令を実行する際に生成されるデータ等もＲＡＭ１１４に一時記憶される。ネットワークＩ／Ｆ１１０はネットワーク１９０とのインターフェイスを制御する。ネットワークＩ／Ｆ１１０は、イーサネット（登録商標）等の通信プロトコルに基づいてネットワーク１９０を介して他の機器から描画コマンドを受信し、また白黒プリンタ１００のデバイス情報（ジャム情報や紙サイズ情報など）をホストコンピュータ１７０に送信する。
【００２５】
表示部１１６は、ユーザへの指示や白黒プリンタ１０２の状態等を表すＵＩ（User Interface）画面を表示する。操作部１１５は、ユーザからの入力を受け付けるためのユーザインターフェイスである。
【００２６】
インタープリタ１１７は、ネットワークＩ／Ｆ１１０を介して受信した描画コマンドを解釈して中間言語データを生成する。レンダラ１１８は、生成された中間言語データからラスタ画像データを生成する。画像処理部１１９は、その生成されたラスタ画像データに対して、色変換処理やルックアップテーブルによるγ補正処理、擬似中間調処理等の画像処理を行う。画像変換部１２０は、入力された画像データに対して尾引き現象を抑制するための間引き処理を行い、プリンタ部１０２が出力可能なフォーマットの画像データに変換する。画像変換部１２０の詳細な説明については後述する。
【００２７】
コントローラ部１０１と接続されたプリンタ部１０２は、画像変換部１２０で変換された出力可能な画像データをもとに、トナーを用いて紙面上に画像を形成（印刷）する。
【００２８】
図４は、実施形態１に係る画像変換部１２０の構成を説明するブロック図である。
【００２９】
画像変換部１２０は、画像処理部１１９で画像処理が施された画像データを入力し、間引き処理を行いつつ、プリンタ部１０２が受け取れるフォーマットの画像データへ変換してプリンタ部１０２に出力する。
【００３０】
画像変換部１２０は、ライン幅カウント部４０１、黒地エリア判定部４０２、間引き処理部４０３、フォーマット変換部４０４、ライン幅カウント記憶部４０５、黒地エリア判定記憶部４０６を有している。この画像変換部１２０の特徴は、ライン幅カウント記憶部４０５、黒地エリア判定記憶部４０６を持ち、ライン幅カウント部４０１、黒地エリア判定部４０２による処理に従って、これら記憶部４０５，４０６の情報を更新する。
【００３１】
尚、本実施形態１において、各ブロックはハードウェアで構成されても良く、或いは各処理機能を、ＲＯＭ１１３からＲＡＭ１１４に展開されたプログラムをＣＰＵ１１２が実行することにより達成しても良い。その場合、そのプログラムは、ＲＡＭ１１４からの画像データの読み込み、ＲＡＭ１１４への書き込み機能もサポートするものとする。
【００３２】
ライン幅カウント部４０１は、副走査方向の上流エリアに関して、１ライン前の処理時に格納したライン幅カウント値をライン幅カウント記憶部４０５から読み出して黒及び白のカウント値とする。画像変換部１２０は、画像処理部１１９から受け取った注目ラインを含む副走査方向の下流エリアの画像データから、短冊状のウインドウ画像（例えば６００ｄｐｉで、主走査方向の９画素、副走査方向の３１ライン）を取得する。そして、この短冊状のウインドウ画像の各ラインの状態（黒ライン、又は白ライン、又はその他）を、各ラインの黒画素数や割合から判定する。尚、ここでは短冊状のウインドウ画像を生成するためのラインバッファ等の説明は割愛する。そして、各ラインの判定結果に基づいて、そのウインドウ画像において、連続する黒及び白ラインの数をカウントしていく。更に、注目ラインを処理した後に、ライン幅カウント部４０１でカウントしたカウント値をライン幅カウント記憶部４０５に書き込む。ライン幅カウント部４０１の詳細な処理は、図５のフローチャートを用いて後述する。
【００３３】
黒地エリア判定部４０２は、ライン幅カウント部４０１でカウントした連続する黒ラインの数をライン幅カウント記憶部４０５から読み込む。そして１ライン前の処理時に格納した連続する黒ラインの数をもとに、現在、そのラインが黒地エリア内にあるか否かを判定し、その判定結果に応じて黒地エリアフラグを変化させる。また、その判定結果を黒地エリア判定記憶部４０６に書き込む。黒地エリア判定部４０２の詳細な処理は、図６のフローチャートを用いて後述する。
【００３４】
間引き処理部４０３は、ライン幅カウント記憶部４０５と黒地エリア判定記憶部４０６とから得られたライン幅情報と黒地エリアフラグを基に、画像処理部１１９から受け取った画像データの間引き処理を行う。間引き処理部４０３の詳細な処理は、図７のフローチャートを用いて後述する。
【００３５】
フォーマット変換部４０４は、間引き処理部４０３で間引き処理がなされた画像データを、プリンタ部１０２が印刷できるフォーマットの画像データへ変換してプリンタ部１０２に渡す。
【００３６】
図５は、実施形態１に係るライン幅カウント部４０１による処理の一例を説明するフローチャートである。このフローチャートは、本実施形態１ではライン幅カウント部４０１で実現されている。尚、同等の機能をもつＲＯＭ１１３に格納されたプログラムに基づいて、ＣＰＵ１１２が実行しても良い。
【００３７】
この処理により注目ラインは、黒ライン、又は白ライン、又はその他に分類される。次に黒および白ラインの連続カウント値、副走査方向の下流エリアの黒連続ラインカウント値（以下、BkLineCnt，WhLineCnt，BottomBkLineCnt）を算出するために以下の処理を行う。
【００３８】
先ずＳ５０１で、ライン幅カウント部４０１は、１ライン前で処理した副走査方向の上流エリア（ウインドウの１〜１５ライン目）のラインカウント値を、ライン幅カウント記憶部４０５から読み込む。そして、それをBkLineCnt，WhLineCntのカウント初期値とする。またBottomBkLineCntは初期値を「０」とする。
【００３９】
次にＳ５０２に進み、ライン幅カウント部４０１は、ウインドウの画像データの注目ライン（ウインドウの１６ライン目）の黒画素の数や黒画素の割合から、その注目ラインが黒ラインか、白ラインか、或いはそれ以外かを判定する。例えば、主走査方向に６００ｄｐｉで９画素単位（ウインドウ幅）で処理する場合、注目ラインの黒画素の数が９のとき黒ライン、０のとき白ライン、それ以外の画素数の場合はその他と判定する。
【００４０】
そして、Ｓ５０２での判定結果が黒ラインであった場合はＳ５０３に進み、連続する黒ライン数のカウント値（BkLineCnt）及び下流エリアの黒連続ラインカウント値（BottomBkLineCnt）を＋１する。また白ラインが途切れるため連続する白ライン数のカウント値（WhLineCnt）を「０」にクリアして確定する。
【００４１】
一方、Ｓ５０２のライン判定結果が白ラインであった場合はＳ５０４に進み、連続する白ライン数のカウント値（WhLineCnt）を＋１する。また黒ラインが途切れるため、連続する黒ライン数のカウント値（BkLineCnt）を「０」にクリアして確定する。
【００４２】
またＳ５０２の判定結果が、その他であった場合はＳ５０５に進み、同様に黒及び白ラインが途切れるため連続する黒及び白ライン数のカウント値（BkLineCnt，WhLineCnt）をともに「０」にクリアして確定する。尚、カウンタ値が最大値になった場合は、その値を保持するものとする。
【００４３】
こうしてＳ５０３，Ｓ５０４，Ｓ５０５のいずれかを実行した後Ｓ５０６に進み、ライン幅カウント部４０１は、各カウンタ値をライン幅カウント記憶部４０５に書き込む。このカウント値は、現在のラインに対して、副走査方向で上流側にある連続する黒ラインの数を計数したカウンタ値を表している。
【００４４】
次にＳ５０７に進み、ライン幅カウント部４０１は、ウインドウの注目ラインの下流側の複数（１５ライン）の各ラインに対して、そのラインの黒画素の数や黒画素の割合から、そのラインが黒ラインか、白ラインか、或いはそれ以外かを判定する。そして、その判定結果が黒ラインであった場合はＳ５０８に進み、BkLineCntおよびBottomBkLineCntをともに＋１する。また、WhLineCntをストップさせる。
【００４５】
またＳ５０７で、その判定結果が白ラインであった場合はＳ５０９に進み、WhLineCntを＋１する。またBkLineCnt、BottomBkLineCntを確定して、その計数をストップさせる。また、Ｓ５０７で、その判定結果が、その他であった場合はＳ５１０に進み、BkLineCnt、WhLineCnt、BottomBkLineCntを確定して、その計数をストップさせる。こうしてＳ５０８，Ｓ５０９，Ｓ５１０のいずれかを実行した後Ｓ５１１へ進む。尚、これらＳ５０８，Ｓ５０９，Ｓ５１０において、一度確定されたカウンタの値は、そのウインドウ内で、次のラインが黒ライン或いは白ラインであると判定されても更新されない。Ｓ５１１で、ライン幅カウント部４０１は、ウインドウの下流ラインが残っているか否か、即ち、１５ラインの処理が完了したかどうかを判定し、完了していないと判定したときはＳ５０７に進んで前述の処理を実行し、それ以外は処理を終了する。
【００４６】
尚、ここでは説明を簡略化するため、２つのカウンタ（BkLineCnt，BottomBkLineCnt）で間引き処理を制御しているが、その他のライン用にカウンタを持ち、間引き処理時に利用しても良い。また、カウンタ値が確定した後はカウントアップしないものとする。更に、図示していないが、画像の先頭ラインでは、ラインカウンタの初期化処理が行われるものとする。
【００４７】
以上、ライン幅カウント部４１０による黒ライン数カウント値の更新が終わると、黒地エリア判定部４０２へと処理が移る。
【００４８】
以上説明したように図５のフローチャートによれば、９画素×３１ラインのウインドウごとに、連続する黒ライン数及び連続する白ライン数、及び下流エリアの黒の連続するライン数を別々のカウンタにより求めて記憶する。そして、このウインドウを下流側に移動して注目ラインを下流側の次のラインに移動したとき、上流ラインで記憶されている上記カウンタの値を読み取り、現注目ラインに応じて、これらカウンタのカウント値を更新する。これにより、画像データにおいて、副走査方向に連続する黒ライン及び白ラインのライン数、及び下流エリアで黒の連続するライン数を、少ないメモリ容量で求めることができる。
【００４９】
図６は、実施形態１に係る黒地エリア判定部４０２による処理を説明するフローチャートである。このフローチャートで示す処理は、本実施形態１では黒地エリア判定部４０２で実行されるが、同等の機能をもつＲＯＭ１１３に格納されたプログラムに基づいて、ＣＰＵ１１２が実行しても良い。
【００５０】
先ずＳ６０１で、黒地エリア判定部４０２は、１ライン前で処理した黒地エリア判定値を黒地エリア判定記憶部４０６から読み出して黒地エリア判定値（以降、BkAreaFlag）の初期値とする。次にＳ６０２に進み、黒地エリア判定部４０２は、連続する黒ライン数に基づいて、現ラインが黒地エリアにあるかどうかを判定する。連続する黒ラインの数が閾値（InBkAreaThre）より大きい場合はＳ６０３に進み、黒地エリアに入ったと判断して、黒地エリアフラグをオンにする（BkAreaFlag＝True）。
【００５１】
一方、Ｓ６０２で、連続する黒ラインの数が閾値に達しない場合はＳ６０４に進む。Ｓ６０４では、黒地エリア判定部４０２は、連続する白ラインの数に基づいて、黒地エリアから抜け出たかどうかを判定する。連続する白ラインの数が閾値より大きい場合はＳ６０５に進み、白地エリアにあると判定して、黒地エリアフラグをオフにする（BkAreaFlag＝False）。一方、Ｓ６０４で、連続する白ラインの数が閾値に達しない場合はＳ６０６に進み、黒地エリアのフラグは変化させず、何もしない。
【００５２】
こうしてＳ６０３，Ｓ６０５，Ｓ６０６のいずれかを実行した後Ｓ６０７に進み、黒地エリア判定部４０２は、これらステップで更新或いは維持された黒地エリア判定値を黒地エリア判定記憶部４０へ書き込む。尚、図示していないが、画像の先頭ラインでは、黒地フラグの初期化処理が行われるものとする。こうして黒地エリアフラグの更新が終わると、間引き処理部４０３へと処理が移る。
【００５３】
以上説明したように図６のフローチャートによれば、画像データにおける、黒のラインが副走査方向に連続するライン数が所定値（閾値）以上である黒地エリアを、少ないメモリ容量で判別することができる。
【００５４】
図７は、実施形態１に係る間引き処理部４０３による処理を説明するフローチャートである。このフローチャートで示す処理は、本実施形態１では間引き処理部４０３にて実現されているが、同等の機能をもつＲＯＭ１１３に格納されたプログラムに基づいてＣＰＵ１１２が実行しても良い。
【００５５】
先ずＳ７０１で、間引き処理部４０３は、現在の注目画素が黒地エリアにいるか否かを、黒地エリア判定部４０２により判定された黒地エリアフラグ（BkAreaFlag）に基づいて判定する。ここで黒地エリアであると判定した（BkAreaFlag＝True）場合は、間引く必要がないため、そのまま処理を終了する。一方、Ｓ７０１で、黒地エリアで無いと判定した場合はＳ７０２に進む。Ｓ７０２で間引き処理部４０３は、注目画素を含む注目ラインが黒ラインか否かを判定し、黒ラインでない、即ち、BkLineCnt＝０の場合は、間引きを適用する必要が無いと判定して、この処理を終了する。一方、Ｓ７０２で、黒ライン、即ち、連続する黒ラインの数（BkLineCnt）が０でないときはＳ７０３に進む。Ｓ７０３で間引き処理部４０３は、BkLineCnt値、及びBottomBkLineCnt値と、後述する間引き設定情報とに応じて間引き処理を行う。この間引き処理は、図８及び図９を参照して詳しく説明する。
【００５６】
図８（Ａ）〜（Ｃ）は、実施形態１に係る間引き処理部４０３による間引き処理の概要を説明する図である。
【００５７】
図８（Ａ）〜（Ｃ）は、黒ライン幅情報と、予め保持している間引き設定情報（図９）に基づき、間引き処理を適用した具体例を示す。尚、この間引き設定情報は、ＲＯＭ１１３に格納されており、間引き処理部４０３の初期設定情報としてプログラムデータに組み込まれている。
【００５８】
図８（Ａ）が間引き処理前、図８（Ｂ）が間引き処理後を示す。図８（Ｃ）が間引きパターンを示す。この例での間引き設定情報は、連続する黒ライン幅が５ラインの場合（BkLineCnt＝５ライン）に、エッジを１ラインを残して（EdgeLine＝１ライン）、２ラインに間引きパターンを適用する（ApplyLine＝２ライン）としている。つまり下記の式（１）にあるようにBottomBkLineCnt値が、EdgeLineより大きくて（EdgeLine＋ApplyLine）より小さい場合に間引きパターンを適用する。
【００５９】
EdgeLine ＜ BottomBkLineCnt ≦ （EdgeLine ＋ ApplyLine）    …式（１）
また、適用する間引きパターンはパターンＢ（patternB）とし、ApplyLineが２ラインであることから、パターンＢの下流の２ラインが間引き処理に用いられている。ここでは参照ウインドウに含まれる画像データの一部が、このパターンＢにより置き換えられることにより、画像データの間引きが実行されている。
【００６０】
因みに、パターンのサイズは図８（Ｃ）のように４×８サイズに限るものではなく、入出力画像の解像度等によっても変える必要がある。また、パターンに登録される白黒パターンは、規則性のあるパターンである必要は必ずしもない。またエッジから遠くなるほど間引き量を抑制するようなパターンにしても良い。
【００６１】
図９は、本発明の実施形態１に係る、黒地エリアの状態別の、各黒ライン幅に対応する間引き設定情報の一例を示す図である。
【００６２】
図９の例では、連続する黒ライン幅が５ラインの場合（BkLineCnt＝５）の場合には、間引きパターンとして「パターンＢ」を使用し、適用するライン数（ApplyLine）は２ラインとなっている。またエッジライン（EdgeLine）の数は１ラインに設定されている。これは図８（Ａ）（Ｂ）の場合に該当している。
【００６３】
このようにＳ７０３の間引き処理では、これらの設定情報と、カウンタ情報とを基に、間引きパターン、EdgeLine、ApplyLineを切り替えて間引き処理を実施することができる。
【００６４】
因みに、本実施形態１に係るＳ７０３の間引き処理は、黒ライン幅と黒地エリアフラグが確定した後、黒ライン幅に基づき、間引き位置、間引き量を決定している。つまり、現在の注目ラインより手前のラインに対して間引き処理が適用される。そのため、間引き処理部４０３はラインバッファを持ち、間引き処理の有無を含めて完全に確定したラインの画像データをフォーマット変換部４０４へ出力するものとする。
【００６５】
以上、本実施形態１によれば、副走査方向に連続する黒ラインの数を算出する際に、注目ラインより副走査方向の上流エリアのカウントは、１ライン前の結果を記憶部に格納したものを用いて演算を行う。これにより、ウインドウエリアを作るラインバッファの容量を削減でき、また演算量を低減することができる。
【００６６】
例えば、黒地エリアの判断（黒ライン／白ライン／その他）を、６００ｄｐｉの９画素×３１ラインのウインドウ単位とした場合について削減量を算出する。主走査方向の画像サイズを１３インチとした場合、通常７８００画素×３０ライン×１ビットのラインバッファが必要である。しかし本実施形態を適用した場合、副走査方向の上流エリアの１５ラインのラインバッファの代わりに、黒、白ライン用のカウンタ（共に最大４ビット）と黒地エリア判定値（１ビット）の合計７８００画素×２個×（４＋１）ビットのバッファがあれば良い。つまり、７８００×２０ビット分のバッファ容量が削減できる。以降の実施形態では、差分のみ説明していく。
【００６７】
図１０は、実施形態に係る間引きパターンの一例を示す図で、連続する黒ライン幅が５，６，７，８ラインのそれぞれの場合に、２ラインの間引きパターンＡ，Ｂ及び３ラインの間引きパターンＣを適用した例を示している。
【００６８】
連続する黒ライン幅に応じて、どの間引きパターンを適用するかは、図９に示す間引き設定情報で規定されているものとする。この間引き設定情報は、例えばＲＯＭ１１３に記憶されている。
【００６９】
＜実施形態２＞
本実施形態２では、前述の実施形態１と異なる間引き処理手法を用いた場合について説明する。
【００７０】
前述の実施形態１では、ライン幅カウント部４０１で得たラインカウンタの値からライン幅を特定し、それに応じて間引き処理部４０３で間引き処理を実施していた。これに対して実施形態２では、装置の特性に応じて参照ウインドウのサイズを変更することにより、副走査方向の上流エリアのラインカウンタの最大値を変化させる処理を行う。
【００７１】
間引きの特性として、画像形成装置の画像形成速度に応じて尾引きが発生するライン幅が異なる。従って、参照ウインドウサイズが変わって、連続するライン数のカウンタ値を変える必要がある。つまりライン幅のカウント記憶部のビット幅を増減させてバッファメモリ量を調整する必要がある。例えば、エンジンの速度が遅い場合は、ウインドウのライン幅を１６ラインまでに小さくしても良い。
【００７２】
ハードウェアで処理する場合は最大サイズで処理させるが、ソフトウェアでは最適な参照ウインドウサイズにすることにより、演算量を減らして、ＣＰＵ等のプロセッサの負荷を低減することが可能となる。
【００７３】
＜実施形態３＞
前述の実施形態１では、ライン幅カウント部４０１で得たラインカウンタの値からライン幅を特定し、それに応じて間引き処理部４０３で間引き処理を実施していた。実施形態３では、装置の特性に応じて参照ウインドウのサイズを変更することで上流エリアのラインカウンタの最大値を変化させる処理を行う。間引きの特性として画像形成装置の解像度に応じて尾引きが発生するライン幅が異なる。しかしながら、尾引きが発生する物理的なライン幅は変わらないため、例えば解像度が１２００ｄｐｉの画像データを処理する場合は、６００ｄｐｉでのライン幅の２倍となる。例えば、解像度が６００ｄｐｉの場合はウインドウサイズを１６ラインとし、１２００ｄｐｉのときは３２ラインとする。このようにウインドウのサイズを変えて、連続ライン数のカウンタ値を変える。つまりライン幅カウント記憶部４０５のビット幅を増減させてバッファメモリ量を調整する。
【００７４】
ハードウェアで処理する場合は最大サイズで処理させるが、ソフトウェアでは最適な参照ウインドウサイズにすることにより、演算量を減らして、ＣＰＵ等のプロセッサの負荷を低減することが可能となる。
【００７５】
＜実施形態４＞
前述の実施形態１では、ライン幅カウント部４０１で得たラインカウンタの値からライン幅を特定し、それに応じて間引き処理部４０３で間引き処理を実施していた。これに対して実施形態４では、装置の特性に応じて参照ウインドウのサイズを変更することで、副走査方向の上流エリアのラインカウンタの最大値を変化させる処理を行う。間引きの特性として画像形成装置の周辺環境の湿度に応じて尾引きが発生するライン幅が異なる。従って、湿度や温度から含有水分量を推定して尾引きし易さを判断し、例えば、高温多湿の場合はライン幅を多くとり（例えば１６ライン）、低温乾燥の場合はライン幅を小さく（例えば、４ライン）とる。このように参照ウインドウのサイズが変わると、連続ライン数のカウンタ値を変える必要がある。つまりライン幅カウント記憶部４０５のビット幅を増減させてバッファメモリ量を調整する。
【００７６】
ハードウェアで処理する場合は最大サイズで処理させるが、ソフトウェアでは最適な参照ウインドウサイズにすることにより、演算量を減らして、ＣＰＵ等のプロセッサの負荷を低減することが可能となる。
【００７７】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2014099767.tif 000003
【図２】
2014099767.tif 000004
【図３】
2014099767.tif 000005
【図４】
2014099767.tif 000006
【図５】
2014099767.tif 000007
【図６】
2014099767.tif 000008
【図７】
2014099767.tif 000009
【図８】
2014099767.tif 000010
【図９】
2014099767.tif 000011
【図１０】
2014099767.tif 000012