(57)【要約】【課題】  ２値データに対してフィルタ演算を行うフィルタ演算処理の処理量を削減できる装置及び方法を提供する。【解決手段】  処理対象である２値データに対してフィルタ演算を行う画像処理装置が、処理対象である２値データの変化点の個数を算出して格納しておく。そして、処理対象である２値データに対してフィルタ演算を行いながらその２値データの変化点の個数を計数し、計数された変化点の個数が、格納されている変化点の個数以上になった場合に、フィルタ演算を行わずに前記２値データを処理する。【選択図】      図３
2012243160.tif 000002
【特許請求の範囲】
【請求項１】
処理対象である２値データに対してフィルタ演算を行う画像処理装置であって、
前記処理対象である２値データの値が変化する変化点の個数を算出して格納する格納手段と、
前記処理対象である２値データに対してフィルタ演算を行い、前記フィルタ演算の結果から当該２値データの変化点を判定し、判定された２値データの変化点の個数を計数する計数手段と、
前記計数手段によって計数された変化点の個数が前記格納手段によって格納された前記変化点の個数以上になった場合、前記フィルタ演算を行わずに前記２値データを処理する処理手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記計数手段は、前記格納手段によって格納された変化点の個数が所定の個数より多い場合に、前記２値データの変化点の個数を計数しないことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記フィルタ演算は、処理を行う方向の少なくとも１つのライン上で注目画素と両隣の画素に対して行われることを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記格納手段は、更に前記２値データの変化点の位置を算出して格納し、
前記変化点の位置が含まれない２値データに対して前記フィルタ演算を行わないことを特徴とする請求項１乃至３の何れか１項に記載の画像処理装置。
【請求項５】
前記フィルタ演算は、処理を行う方向の少なくとも１つのライン上で前記２値データに一定の周期がある場合、１周期分のみ行われることを特徴とする請求項１乃至４の何れか１項に記載の画像処理装置。
【請求項６】
処理対象である２値データの値が変換する変化点の個数が算出され格納されている格納手段を含み、前記処理対象である２値データに対してフィルタ演算を行う画像処理装置にて実行される画像処理方法であって、
計数手段が、前記処理対象である２値データに対してフィルタ演算を行い、前記フィルタ演算の結果から当該２値データの変化点を判定し、判定された２値データの変化点の個数を計数する計数工程と、
処理手段が、前記計数工程において計数された変化点の個数が前記格納手段によって格納された変化点の個数以上になった場合、前記フィルタ演算を行わずに前記２値データを処理する処理工程と、
を有することを特徴とする画像処理方法。
【請求項７】
コンピュータを、請求項１乃至５の何れか１項に記載の画像処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データに対するフィルタ処理を高速化するための技術に関する。
【背景技術】
【０００２】
レーザビームプリンタやインクジェットプリンタなどの画像形成装置では、紙面のある位置にトナーもしくはインクを付けるか付けないかで画像形成を行っている。このとき、画像形成装置の内部では、処理するデータを２値データとして扱っている。例えば、処理対象の２値データが、写真領域、文字領域又は網点領域であるかを判断し、判断の結果に応じて２値データを処理する方法が提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平８−２３７４７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来の技術では、２値データに対する処理が必要であるが、トナーもしくはインクを付けるか付けないかで画像を形成する特徴上、画像形成装置で処理する２値データは非常に大きくなる。そこにフィルタ演算処理をかけると、処理時間が大きくなり、画像形成装置の処理が遅くなることが予想される。
【０００５】
本発明は、画像データに対してフィルタ演算を行うフィルタ演算処理の処理量を削減できる装置及び方法を提供する。
【課題を解決するための手段】
【０００６】
本発明は、処理対象である２値データに対してフィルタ演算を行う画像処理装置であって、
前記処理対象である２値データの値が変化する変化点の個数を算出して格納する格納手段と、
前記処理対象である２値データに対してフィルタ演算を行い、前記フィルタ演算の結果から当該２値データの変化点を判定し、判定された２値データの変化点の個数を計数する計数手段と、
前記計数手段によって計数された変化点の個数が前記格納手段によって格納された前記変化点の個数以上になった場合、前記フィルタ演算を行わずに前記２値データを処理する処理手段と、
を有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、画像データに対してフィルタ演算を行うフィルタ演算処理の処理量を削減することができる。
【図面の簡単な説明】
【０００８】
【図１】画像形成装置の概略構成を示す図。
【図２】コントローラの構成例を示すブロック図。
【図３】第１の実施形態の基本的な処理を示すフローチャート。
【図４】３×１の平均値フィルタ演算を説明するための図。
【図５】第２の実施形態のフィルタ演算処理を示すフローチャート。
【図６】第３の実施形態の３×３のフィルタ演算処理を示すフローチャート。
【図７】第４の実施形態の処理を説明するための図。
【図８】第５の実施形態の処理を説明するための図。
【図９】第５の実施形態の処理を示すフローチャート。
【発明を実施するための形態】
【０００９】
以下、図面を参照しながら発明を実施するための形態について詳細に説明する。本実施形態では、画像形成装置の画像処理部において、２値データに対してフィルタ演算を行うフィルタ演算処理について説明する。
【００１０】
［第１の実施形態］
まず、第１の実施形態における画像形成装置の構成を、図１を用いて説明する。図１は、画像形成装置の概略構成を示す図である。ここでは、画像形成装置１０２としてレーザビームプリンタ（以降、プリンタと称する）を用いる。尚、インクジェットプリンタ等の他のプリント方式のプリンタでも２値データ処理は必要とされるので、このレーザビームプリンタに限らないことは言うまでもない。
【００１１】
画像処理部（コントローラ）１０３は、データ処理装置１０１から供給される画像情報が、例えばページ記述言語（以降、ＰＤＬと呼ぶ）で記述されている印刷ジョブを解釈し、ページ毎にラスタデータを生成してプリンタエンジン１０４に送出する。ここで、データ処理装置１０１は、プリンタ１０２に対するホストコンピュータとして機能するものである。また、データ処理装置１０１はパーソナルコンピュータなどの情報処理装置（コンピュータ）である。
【００１２】
プリンタエンジン１０４は、コントローラ１０３から供給されるラスタデータに基づいて感光ドラム上に潜像を形成し、形成された潜像を記録媒体上に転写し、定着（電子写真方式）することにより画像を記録する。パネル部１０５は、ユーザインタフェースとして使用される。また、コントローラ１０３は、パネル部１０５を介してユーザからの所望の動作指示を受け付ける。更に、コントローラ１０３は、パネル部１０５を介してプリンタ１０２の処理内容やユーザへの警告内容を表示する。
【００１３】
第１の実施形態では、処理対象となる２値データは、コントローラ１０３がデータ処理装置１０１から受け取ったＰＤＬを解釈し、ハーフトーン化することで作成される。尚、データ処理装置１０１からＰＤＬを受け取り、処理しているが、データ処理装置１０１でハーフトーン化を行ってもよい。そのため、これ以降で述べる２値データに対する処理もコントローラ１０３だけでなく、データ処理装置１０１でも可能である。
【００１４】
次に、コントローラ１０３のシステム構成を、図２を用いて説明する。図２は、コントローラ１０３の構成例を示すブロック図である。図２において、パネルインタフェース（Ｉ／Ｆ）部２０１は、図１に示すパネル部１０５とのデータ通信を行う。ＣＰＵ２０９は、パネルインタフェース部２０１を介してユーザからのパネル部１０５の操作（設定及び指示内容等）を受け付ける。ホストインタフェース（Ｉ／Ｆ）部２０２は、ネットワークを介してデータ処理装置１０１との双方向の通信接続を制御する。
【００１５】
中間データ作成部２０３は、ホストインタフェース部２０２を介してデータ処理装置１０１から受信した印刷ジョブをプリンタ１０２内部で扱いやすい形である中間データに変換する処理を行う。ここで、第１の実施形態の処理対象である２値データが作成される。ＲＯＭ２０４には、後述する処理や、その他プリンタ１０２の行う制御プログラムコードが保持される。ＲＡＭ２０５は、ＣＰＵ２０９が様々なデータ（印刷データ、２値データなど、他の処理に必要な一時的な各種処理ステータス）が保存される。
【００１６】
エンジンインタフェース（Ｉ／Ｆ）部２０６は、プリンタエンジン１０４との通信接続を制御する。また、ＣＰＵ２０９は、エンジンインタフェース部２０６を介してプリンタエンジン１０４の状態を認識する。ＤＭＡ制御部２０７は、ＣＰＵ２０９から指示され、ＲＡＭ２０５内に格納されているビットマップデータをエンジンインタフェース部２０６に転送する。不揮発性メモリＥＥＰＲＯＭ２１０は、電気的に書き換え可能な不揮発性のメモリであり、プリンタ１０２の設定情報を保持する。レンダリング部２０８は、ＲＡＭ２０５に格納された中間データの内容に従ってビットマップイメージに展開する。
【００１７】
ＣＰＵバス２１１は、アドレス、データ、コントロールバスを含む。上述したデバイス２０１〜２１０は、それぞれＣＰＵバス２１１に接続された全てのデバイスにアクセスできる。
【００１８】
以上の構成からなる第１の実施形態における基本的な処理を、図３を用いて説明する。２値データに３×１の平均値フィルタの演算を施す場合を説明する。尚、３×１の平均値フィルタとは、処理を行う方向（画像としてみるとライン上）で注目画素と両隣の画素を用いて平均値を算出することを意味する。図４に示すようなライン１〜４の各２値データに対して平均値フィルタの演算を行うフィルタ演算処理を具体例として説明する。
【００１９】
まず、Ｓ３０１において、ＣＰＵ２０９はＲＡＭ２０５から各ラインの変化点の個数Ｎを取得する。ここで、変化点とは、２値データの値が“０”から“１”へ、又はその逆に反転した点である。また、変化点の個数Ｎは、ハーフトーン化する際に、同時に得ることができる。尚、ハーフトーン化以降で変化点の個数だけを算出する処理を入れても、それ以降の処理は実現可能である。
【００２０】
続いて、Ｓ３０２において、ＣＰＵ２０９は変化点の計数のための領域（変数count）を用意する。そして、ＣＰＵ２０９はＲＡＭ２０５から読み出した１ラインに対して以下のＳ３０５〜Ｓ３０８の処理を繰り返して行う。
【００２１】
まず、ライン１の処理（Ｓ３０３）では、最初に図４に示すＡを注目画素として平均値フィルタ処理が行われる。尚、３×１の範囲が、１ラインの範囲外になるケースについては省略する。図４に示すＡを注目画素としたとき、Ｓ３０４の判定でＹｅｓと判定され、Ｓ３０５へ処理を移行し、平均値フィルタの演算処理を行う。次に、Ｓ３０６において、１つ前のフィルタ演算結果と比較することで、変化点が存在したか否かを判定する。ここでは、平均値フィルタを例としたため、変化点があったことが、即ち、平均値フィルタの演算結果となる。
【００２２】
Ｓ３０６の判定において、注目画素がＡの場合、１つ前の演算結果が存在しないため、Ｓ３０７へ処理を移行し、変化点の計数が行われる。Ａ以降の処理では、Ｓ３０４で判定した結果、変化点の計数値が、取得した変化点の個数以上になったため（count≧Ｎ）、Ｓ３０８へ移行し、フィルタ演算を行わずに処理を進めることができる。
【００２３】
次に、ライン２の処理を考える。ライン２では、図４に示すＣを注目画素とした段階で、Ｓ３０４で判定した結果、Ｓ３０８へ移行することになり、Ｃ以降の注目画素に対してフィルタ演算を行う必要がなくなる。尚、Ｂを注目画素としてから、Ｃを注目画素とするまでは、３×１の範囲では、０と１の並びが変更するが、平均値フィルタの演算の結果が変化しないため、変化点としてみなさない。これにより、フィルタ演算の範囲を考慮した変化点の検出が可能となる。以上の処理をライン３、４に対しても同様に行う。
【００２４】
第１の実施形態によれば、途中からフィルタ演算を行わず、１つ前の処理結果を再利用することで、フィルタ演算処理の処理量を削減することが可能となる。
【００２５】
［第２の実施形態］
次に、図面を参照しながら本発明に係る第２の実施形態を詳細に説明する。第１の実施形態におけるライン４では、計数した変化点の回数（count）が取得した変化点の個数Ｎを超えることがないため、フィルタ演算処理が最後まで行われる。従って、変化点の計数が無駄な処理となってしまう。
【００２６】
そこで、第２の実施形態では、図５に示すＳ５０２のように、変化点の個数Ｎと事前に設定された所定の個数（一定値）との比較を行う。これにより、変化点の個数Ｎが一定値より多い場合に、Ｓ５１０へ処理を移行させることで、ＣＰＵ２０９がフィルタ演算処理だけを行うことになり、変化点の計数の処理の無駄を軽減することが可能となる。
【００２７】
［第３の実施形態］
次に、図面を参照しながら本発明に係る第３の実施形態を詳細に説明する。第１の実施形態では、３×１の平均値演算を行うフィルタについて説明したが、一般的な処理では、３×３などの８近傍を対象とするフィルタ演算処理が多い。
【００２８】
そこで、第３の実施形態では、３×３のフィルタ演算を行う際の処理を、図６を用いて説明する。尚、３×３のフィルタ演算を行うためには、３ライン分の変化点の計数が必要になる。
【００２９】
まず、Ｓ６０１において、ＣＰＵ２０９は、ＲＡＭ２０５から３ラインの変化点の個数（ｎ１、ｎ２、ｎ３）を取得する。次に、Ｓ６０２において、３ライン分の計数のための変数（count1、count2、count3）を取得する。そして、Ｓ６０３以降で、ＲＡＭ２０５に保存されている３ラインに対してＣＰＵ２０９が処理を行う。
【００３０】
Ｓ６０４において、ＣＰＵ２０９は、フィルタ演算を行うか否かを全てのラインの変化点の計数値（count1、count2、count3）が取得した変化点の個数（ｎ１、ｎ２、ｎ３）より多いかで判断する。判断の結果、フィルタ演算を行う必要があれば、ライン１〜ライン３でそれぞれの変化点の計数を行う（Ｓ６０５〜Ｓ６１０）。ここで、変化点が１つでもあれば（Ｓ６１１、Ｙｅｓ）、フィルタ演算を行い（Ｓ６１２）、各ラインでの０、１の情報を保存する（Ｓ６１３）。一方、変化点が１つもなければ（Ｓ６１１、Ｎｏ）、１つのフィルタ演算の結果を結果として１ラインの処理を終了する（Ｓ６１５）。
【００３１】
また、上述のＳ６０４において、変化点の計数値が取得した変化点の個数より多ければ、最後のフィルタ演算の結果を結果として１ラインの処理を終了する（Ｓ６１６）。
【００３２】
以上のように、３ラインを対象として、それぞれの変化点の計数結果をそれぞれの変化点の個数と比較することで、３×３の範囲のフィルタ演算を削減することが可能となる。また、第２の実施形態で説明したように、変化点の個数が多い場合は、計数自体が無駄な処理となってしまう可能性が高いので、第２の実施形態と同様に、変化点の個数で処理を切り分けることが有効である。
【００３３】
［第４の実施形態］
次に、図面を参照しながら本発明に係る第４の実施形態を詳細に説明する。第１の実施形態では、ＣＰＵ２０９は、ＲＡＭ２０５から変化点の個数を取得することで、フィルタ演算の処理の削減を可能としていた。
【００３４】
第４の実施形態では、変化点の個数だけでなく、変化点の位置を取得し、フィルタ演算処理にかかわる範囲に位置が含まれなければ、フィルタ演算処理を削減する。このようにすることで、図７に示すライン２のように、途中に変化点の変化がない場合でもＡを注目画素とした以降５回のフィルタ演算処理を削減することが可能となる。
【００３５】
尚、この場合も複数のラインの変化点の位置を取得し、フィルタ演算の処理にかかわる範囲に取得した位置が含まれていないかを判断することで、３×３フィルタ演算などへの応用も可能となる。
【００３６】
［第５の実施形態］
次に、図面を参照しながら本発明に係る第５の実施形態を詳細に説明する。図８に示すように、一定の塗りつぶしの領域に関しては、ハーフトーン化に一定の周期があるため、フィルタ演算の処理の結果にも周期性が出現する。そこで、周期性を利用した２値データの処理方法を、図９を用いて説明する。
【００３７】
まず、ＣＰＵ２０９は、ＲＡＭ２０５からハーフトーン化の周期と周期の開始位置及び終了位置を取得する（Ｓ９０１）。次に、現在の注目画素及び処理に関わる範囲が周期の開始及び終了に含まれるか否かを判断する。ここで、含まれなければ、ＣＰＵ２０９は、フィルタ演算処理を行う（Ｓ９０７）。一方、周期に含まれている場合は、次に１周期分のフィルタ演算が終了しているか否かを判断する（Ｓ９０４）。判断の結果、演算が終了していなければ、ＣＰＵ２０９は、ＲＡＭ２０５から２値データを読み出し、１周期分のフィルタ演算を実施する（Ｓ９０５）。尚、このとき、演算する１周期はハーフトーン化とフィルタ演算の範囲の最小公倍数の大きさになる。
【００３８】
以上のように、ハーフトーン化の周期に注目し、１周期分のフィルタ演算の結果を繰り返し用いる（Ｓ９０６）ことで、フィルタ演算の処理を削減することが可能となる。
【００３９】
［第６の実施形態］
次に、図面を参照しながら本発明に係る第６の実施形態を詳細に説明する。第５の実施形態において、複数ラインの周期と開始位置及び終了位置を取得し、複数ラインでの周期の最小公倍数を求める。そして、求めた周期と全ての開始及び終了の位置に注目することで、３×３フィルタ演算などの場合でも、ハーフトーン化の周期を利用してフィルタ演算処理を削減することが可能となる。
【００４０】
［他の実施形態］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2012243160.tif 000003
【図２】
2012243160.tif 000004
【図３】
2012243160.tif 000005
【図５】
2012243160.tif 000006
【図６】
2012243160.tif 000007
【図９】
2012243160.tif 000008
【図４】
2012243160.tif 000009
【図７】
2012243160.tif 000010
【図８】
2012243160.tif 000011