以下、本発明を実施するための最良の形態について図面を参照して説明する。
[実施例1]
<複写機の外観>
図1は、実施例1における複写機の外観例を示す図である。
画像読取手段であるスキャナ部140は、照明ランプの発光によって原稿上の画像を露光走査して得られた反射光をリニアイメージセンサ(CCDセンサ)に入力することで画像の情報を電気信号に変換する。スキャナ部140はさらに電気信号をR、G、B各色からなる輝度信号に変換し、当該輝度信号を画像データとして後述するコントローラ200に出力する。
原稿は、原稿フィーダ141のトレイ142にセットされる。ユーザが操作ユニット160から読み取り開始を指示すると、コントローラ200は、スキャナ部140に対して原稿読み取り指示を送る。スキャナ部140は、この指示を受けとると原稿フィーダ141のトレイ142から原稿を1枚ずつフィードして原稿の読み取り動作を行う。また、原稿は図示しない原稿台ガラス上に置くことで読み取ることもできる。
プリンタ部120は、コントローラ200から受取った画像データを記録媒体である用紙上に形成する画像形成デバイスである。
本実施例における画像形成方式は、感光体ドラムや感光体ベルトを用いた電子写真方式である。また、プリンタ部120は、異なる用紙サイズ又は異なる用紙向きに対応可能な複数の用紙カセット121、122、123を備える。排紙トレイ124には印刷後の用紙が排出される。
<複写機のコントローラ>
図2は、本発明の複写機のハードウェア構成、特にコントローラ200の構成例を詳細に示すブロック図である。
コントローラ200は、画像入力デバイスであるスキャナ部140や、画像出力デバイスであるプリンタ部120や、LAN50や、公衆回線(WAN)52と接続され、複写機の動作を統括的に制御すると共に画像情報やデバイス情報の入出力制御を行う。
CPU2100は、複写機全体を制御するプロセッサであり、ROM2120に記憶された制御プログラム等に基づいて接続中の各種デバイスとのアクセスを統括的に制御する。さらに、CPU2100は、コントローラ200内部で行われる各種処理についても統括的に制御する。RAM2110は、システムワークメモリであり、画像データなどを一時記憶するための画像メモリでもある。ROM2120は、ブートROMであり、システムのブートプログラムを格納する。HDD記憶部2130は、ハードディスクドライブで、主に、コンピュータを起動・動作させるために必要な情報(システムソフトウェア)や画像データを格納する。これらのデータは、HDD記憶部2130に限らず、電源が切れても記憶保持可能な記録媒体に格納してもよい。
LANC(LANコントローラ)2200は、LAN50に接続し、ユーザPC60との間で出力用画像データの入出力や機器制御にかかわる情報の入出力を行う。ローカルIF(ローカルインタフェース)2210は、USBやセントロニクス等のインタフェースであり、ケーブル51にてユーザPC61やプリンタと接続し、データの入出力を行う。MODEM2220は、公衆回線52に接続し、データの入出力を行う。
RIP(ラスター イメージ プロセッサ)2600はLAN50を経由しユーザPC60から受信した画像データ(PDL(ページ記述言語)コード)をビットマップデータに展開する。
スキャナIF画像処理部2400は、スキャナ部140と接続し、スキャナ部140に搭載されたCPUと通信を行う。また、スキャナ部140の画像読取部1400で読み取った画像を受け取り、公知の技術を用いてシェーディング補正などの各種画像処理を実行する。
操作ユニットIF2500は、操作ユニット160に表示する画像データをコントローラ200から操作ユニット160に出力し、かつ、複写機の使用者が操作ユニット160から入力した情報をコントローラ200に出力するためのインタフェースである。
プリンタIF画像処理部2300は、プリンタ部120と接続し、プリンタ部120に搭載されたCPUと通信を行う。また、プリンタIF画像処理部2300は、後述する画像データのトナーセーブ処理や線幅補正処理等の画像処理を行う。プリンタ部120では詳細は後述するが、主に画像形成部1200において印刷用紙などの記録媒体への画像形成を行う。
<複写機のプリンタ部>
図3は、本実施例の電子写真方式の複写機のプリンタ部120における画像形成部1200の一例であり、中間転写体28を採用したタンデム方式の複写機の断面図である。図3を参照して、プリンタ部120における画像形成部1200の動作を説明する。
画像形成部1200は、所望の露光時間に応じて露光を駆動し、静電潜像を形成して、この静電潜像を現像して単色トナー像を形成する。この単色トナー像を重ね合わせて多色トナー像を形成し、この多色トナー像を記録媒体11へ転写して、記録媒体11上の多色トナー像を定着させる。
帯電手段は、Y,M,C,Kの色毎に感光体22Y,22M,22C,22Kを帯電させるための4個の注入帯電器23Y,23M,23C,23Kを備える構成で、各注入帯電器は、スリーブ23YS,23MS,23CS,23KSを備える。
感光体22Y,22M,22C,22Kは、図示しない駆動モータの駆動力が伝達されて回転するもので、駆動モータは感光体22Y,22M,22C,22Kを画像形成動作に応じて反時計周り方向に回転させる。露光手段は、複数色(Y,M,C,K)の画像データに基づいて、感光体22Y,22M,22C,22Kへスキャナ部24Y,24M,24C,24Kより露光を照射し、感光体22Y,22M,22C,22Kの表面を選択的に露光する。これにより、静電潜像を形成する。
現像手段は、上記静電潜像を可視化するために、Y,M,C,Kの色毎に現像を行う4個の現像器26Y,26M,26C,26Kを備える構成で、各現像器には、スリーブ26YS,26MS,26CS,26KSが設けられている。すなわち、現像手段は、感光体に形成された静電潜像を現像して、感光体に単色トナー像を形成するための手段である。
転写手段は、感光体22から中間転写体28へ単色トナー像を転写するためのものである。すなわち、各現像手段にて現像された、複数色の画像を、中間転写体等の媒体に順次転写するための手段である。
更に転写手段は、ステーション毎に単色トナー像を中間転写体28上に重ね合わせ、重ね合わせた多色トナー像を中間転写体28の回転に伴い二次転写ローラ29まで搬送する。さらに記録媒体11を用紙カセット121から二次転写ローラ29へ狭持搬送し、記録媒体11に中間転写体28上の多色トナー像を転写する。この二次転写ローラ29に適当なバイアス電圧を印加し、静電的にトナー像を記録媒体11に転写する。
定着装置31は、記録媒体11に転写された多色トナー像を記録媒体11に溶融定着させるために、記録媒体11を加熱する定着ローラ32と記録媒体11を定着ローラ32に圧接させるための加圧ローラ33とを備える。定着装置31は、多色トナー像を保持した記録媒体11を定着ローラ32と加圧ローラ33により搬送するとともに、熱及び圧力を加え、トナーを記録媒体11に定着させる。
トナー定着後の記録媒体11は、その後図示しない排出ローラによって排紙トレイ124に排出して画像形成動作を終了する。
<複写機の操作ユニット>
図4は、操作ユニット160の構成例を示す図である。
液晶操作パネル161は、液晶とタッチパネルを組み合わせたものであり、操作画面を表示するとともに、表示キーがユーザにより押されるとその情報をコントローラ200に送る。スタートキー162は、原稿画像の読み取り印刷の動作を開始するときや、その他機能の開始指示に用いられる。スタートキーには、緑色と赤色の2色のLEDが組み込まれ、緑色点灯時には開始可能を示し、赤色点灯時には開始不可であることを示す。ストップキー163は稼動中の動作を止める働きをする。ハードキー群164には、テンキー、クリアキー、リセットキー、ガイドキー、ユーザーモードキーが設けられる。
<プリンタIF画像処理部>
図5は、プリンタIF画像処理部2300の構成例を示すブロック図である。プリンタIF画像処理部2300は、RIP2600により展開されたビットマップデータの画素データから、後段の画像形成部1200での画像形成に使用される画素データを生成する。
色空間変換部2301には、まずRIP2600により展開されたビットマップデータの画素データDaが入力される。なお、色空間変換部2301は、ユーザPC60等から受信した画素データだけでなく、スキャナ部140の画像読取部1400からの画素データや公衆回線52を介してFAX受信される画素データ等も扱う。そして色空間変換部2301では、入力されたRGBの画素データを後段の画像形成部1200のトナー色にあわせてCMYKの画素データに公知の技術を用いて色変換する。色変換された画素データDbを後段へと出力する。
その後、ハーフトーン処理部2302は、CMYK各色の画素データDbにハーフトーン処理を行う。ハーフトーン処理は入力される画素データの階調数を削減する処理である。通常、画像形成部1200には2,4,16階調など、低階調データのみ入力可能であることが多い。従って、少ない階調数しか再現できない画像形成部1200においても安定した中間調表現を可能とするようにハーフトーン処理部2302による階調数の削減処理を行う。ハーフトーン処理部の具体的な構成としては、スクリーン処理によるもの、あるいは誤差拡散処理によるものがある。スクリーン処理は、所定の複数のディザマトリクス及び入力される画素データを用いて、N値化(Nは自然数)するものである。また、誤差拡散処理は、入力画素データを所定の閾値と比較することにより、N値化を行い、その際の入力画素データと閾値との差分を以降にN値化処理する周囲画素に対して拡散させる処理である。なお、本実施例においてはハーフトーン処理部2302が出力する画素データDcをハーフトーン処理によって二値化された画素データとして扱うことで、以降の後段処理の説明をする。
二値画像処理部2303は、二値化された画素データDcを受けて各種画像処理を実行する。これにより、ユーザの所望の画像や、高品質な画質を得ることが可能となる。画像処理の内容に関しては後述する。最終的に二値画像処理部2303からは図3で説明した画像形成部1200で画像形成するためにN値化(本実施例では、二値化)され、画像処理が施された画素データDdを出力する。
<二値画像処理部>
次に二値画像処理部2303の内部に関して図6を参照して詳細に説明する。なお、上述のハーフトーン処理部によって二値化された画素データは1が黒画素を、0が白画素を示すものとして以降の説明に用いる。二値画像処理部2303は、1画素ずつにそれぞれの処理を並列に行ってそれぞれの処理結果を得て、そしてそれぞれの処理結果からその画素の出力画素値を最終的に判定する。以下、二値画像処理部2303によって処理されている画素を注目画素と呼び、また、その位置を注目画素位置と呼ぶ。
図6に示すように、二値画像処理部2303は、共用バッファ部2310、中間調判定部2320、トナーセーブ処理部2330、線幅補正処理部2340、尾引き抑制処理部2350、ドット分散処理部2360及び最終出力判定部2370を含む。
共用バッファ部2310は、各画像処理部の前段に配置され、複数ライン分の入力画素データを蓄積保持し、この蓄積保持されている入力画素データから後段の画像処理部がそれぞれ必要とする画素群(共通領域の画素群)をまとめて出力する。
中間調判定部2320は、注目画素を中心とした所定ウィンドウサイズ(例えば、11×11)の画素群Wbを参照して注目画素が中間調領域の画素であるか否かを判定する。中間調判定結果Faは後段のトナーセーブ処理部2330及び線幅補正処理部2340に出力され、後述するように非中間調領域かつエッジの画素の場合はトナーセーブ処理が行われず、中間調領域の画素の場合は線幅補正処理が行われない。
トナーセーブ処理部2330では、主にトナー消費量を低減させるための画素間引き処理を画像オブジェクト(単にオブジェクトと呼ぶ)に対して行う。トナーセーブ処理部2330は、トナーセーブ処理の間引きパターンと注目画素位置とに基づいて、注目画素が間引き対象となるか否かを判定する。また、トナーセーブ処理部2330は、注目画素を中心とした所定ウィンドウサイズ(例えば、3×3)の画素群Wcを参照して注目画素が黒画素と白画素の隣接境界にあるエッジ画素であるか否かを判定する。間引き対象となった画素であってその入力画素値が1(黒画素)である注目画素は、非エッジ画素であると判定されれば、判定結果FbがON(トナーセーブのための間引き実行)として画素値を0(白画素)に変換して出力される。また、間引き対象となった画素であってその入力画素値が1(黒画素)である注目画素は、エッジ画素であると判定されて且つ中間調判定結果Faにより中間調領域の画素であれば、その画素について判定結果FbがONとして画素値を0に変換して出力される。これにより、文字などの非中間調領域のオブジェクトのエッジを間引いてしまうことによるエッジ部の画質低下を抑制しつつ、トナー消費量を低減する。
線幅補正処理部2340では、主に細線や小さな図形などのオブジェクトを目立たせるための線幅補正処理を行う。線幅補正処理は、太らせ処理と呼んでもよい。線幅補正処理部2340は、注目画素を中心とした所定ウィンドウサイズ(例えば、3×3)の画素群Wcを参照して注目画素がエッジ隣接画素であるか否かを判定する。注目画素がエッジ隣接画素であると判定され、中間調判定結果Faにより非中間調領域の画素であり、さらに、入力された画素値が0(白画素)である場合に、注目画素の判定結果Fcは線幅補正処理実行がONとし、画素値を1(黒画素)に変換して出力される。これにより、中間調領域の網点のエッジを強調することによるエッジ部の画質低下を抑制しつつ、細線や小さな図形などのオブジェクトの画質を向上させる。
尾引き抑制処理部2350では、尾引き抑制のための間引きを行う。尾引き抑制処理部2350は、注目画素を中心とした所定ウィンドウサイズ(例えば、5×9)の画素群Wdを参照して、尾引き抑制のための間引き処理が必要か否かを判定する。つまり、画素群Wdが特定のパターン画素群と一致すれば、尾引き抑制処理部2350は尾引き抑制のための間引き処理が必要と判定する。また、尾引き抑制処理部2350は、尾引き抑制処理の間引きパターンと注目画素位置とに基づいて、注目画素が間引き対象となるか否かを判定する。尾引き抑制のための間引き処理が必要でありかつ注目画素が間引き対象となると判定された場合に、注目画素の判定結果Fdは尾引き抑制のための間引き実行がONとし、入力画素値を0(白画素)に変換して出力される。
ドット分散処理部2360では、目ざわりな画像になることを防止するために、濃度を保ちつつ画像内部の特定パターンの白ドットを縮小、分散させる。ドット分散処理部2360は、注目画素を中心とした所定ウィンドウサイズ(例えば、27×27)の画素群Weを参照して、現在の注目画素の白ドットが縮小されるべきか、注目画素位置に白ドットを付与すべきかを判定し、その判定結果Feを出力する。白ドットが縮小されるべきと判定された場合に、注目画素の入力画素値は1(黒画素)に変換して出力され、白ドットを付与すべきと判定された場合に、注目画素の入力画素値は0(白画素)に変換して出力される。また、どちらにも判定されなかった場合に、注目画素の入力画素値はそのまま出力される。
最終出力判定部2370は、注目画素の入力画素値及び各処理部の処理結果から注目画素の最終画素値を判定する。
<共用バッファ部>
次に図7を参照して共用バッファ部2310を詳細に説明する。まず、二値化された画素データDcが共用バッファ部2310に入力される。共用バッファ部2310では、画素データDcを順次バッファに蓄積する。これにより共用バッファ部2310には複数ライン分の画素データが蓄積される。
図7(a)はKライン分の画素データが共用バッファ部2310に蓄積された様子を示す。共用バッファ部2310は、画素データはKラインまで蓄積されると、リング状にまた先頭ラインから画素を上書きして蓄積する。これにより共用バッファ部2310には、現在蓄積している入力画素データDcがあるラインから遡ってKライン分の画素データが常に蓄積保持されている。共用バッファ部2310はこの蓄積保持されている画素データ群から、後段の画像処理部がそれぞれ必要とする画素データ群領域をまとめて出力する。よって共用バッファ部2310の蓄積量(蓄積ライン数K)は後段の画像処理部がまとめて参照したい画素群のライン幅と合致する。
図7(b)は共用バッファ部2310の出力画素例を示す。出力画素群2311は図7(a)で示したKライン分のデータの一部を示す。
画素Waは注目画素であり、そのまま後段の最終出力判定部2370に入力される。
画素群Wbは後段の中間調判定部2320へ出力される画素群であり、ここでは、一例として11×11の画素群としている。つまり中間調判定部2320は注目画素位置の中間調判定のために11×11画素群をまとめて参照するものである。
画素群Wcは後段のトナーセーブ処理部2330及び線幅補正処理部2340へ出力される画素群であり、ここでは、一例として3×3画素群としている。つまり、トナーセーブ処理部2330及び線幅補正処理部2340は注目画素位置のトナーセーブ処理結果及び線幅補正処理結果を得るために3×3画素群をまとめて参照するものである。
画素群Wdは後段の尾引き抑制処理部2350へ出力される画素群であり、ここでは、一例として5×9の画素群としている。つまり尾引き抑制処理部2350は注目画素位置の尾引き抑制処理結果を得るために5×9画素群をまとめて参照するものである。
画素群Weは後段のドット分散処理部2360へ出力される画素群であり、ここでは、一例として27×27の画素群としている。つまりドット分散処理部2360は注目画素位置のドット分散処理結果を得るために27×27画素群をまとめて参照するものである。
よってWaからWeまでの出力画素群の中で最も大きいライン数である27が共用バッファ部2310で蓄積すべきライン数となり、本実施例ではK=27である。
以上のような共用バッファ部2310を有することによって画素群Wa、Wb、Wc、Wd、Weを生成するために個別に複数のバッファ部を構成する必要がなくなる。よって複数のバッファ部を構成することに比べ本実施例のような共用バッファ部2310を有することは回路規模削減に繋がる。
<中間調判定処理>
次に図8を参照して中間調判定部2320を詳細に説明する。中間調判定部2320には共用バッファ部2310から11×11画素群Wbが入力される。中間調判定部2320では、まず画素群Wbを4つのArea*判定部2321(*は1〜4)に入力する。Area*判定部2321では、特定のエリアが全白であるか否かを判定する。
図9はArea*判定部2321の処理を説明するための図である。図9(a)〜(d)の各11×11マトリクスは、画素群Wbを示しており、斜線部分は注目画素を示している。図9(a)はその中のArea1を太線で示しており、続いて図9(b)がArea2、図9(c)がArea3、そして図9(d)がArea4を太線で示す。Area*判定部2321では、これらのArea*がそれぞれ全白であるか否かを判定する。全白とはArea*内部のすべての画素値が0であることを意味する。
そして全エリア判定部2322ではArea*判定部2321での4つの全白判定を用いて、最終的な中間調判定結果Faを生成する。具体的には4つの全白判定に一つでも全白判定された結果があれば非中間調と判定し、一つも全白判定された結果がなければ中間調と判定する。なお、4つの各エリアにおいて全黒(全ての画素値が1である)と判定された場合も、本実施例においては中間調であると判定される。すなわち本実施例の中間調とは必ずしも面積階調の中間調と一致しているのでない。
本実施例では中間調判定部2320から出力される中間調判定結果Faを一つとし、後段のトナーセーブ処理部2330、線幅補正処理部2340に共通に入力させる。このように中間調判定結果をトナーセーブ処理と線幅補正処理で共用させることは回路規模削減に繋がる。なお、このような構成に限らず、トナーセーブ処理部2330、線幅補正処理部2340のそれぞれで判定Area1〜4の定義を変え、それぞれの判定結果をトナーセーブ処理部2330、線幅補正処理部2340に別々に入力させる構成としてもよい。
<トナーセーブ処理>
次に図10を参照してトナーセーブ処理部2330を詳細に説明する。トナーセーブ処理部2330では、主にトナー消費量を低減させるための画素間引き処理を行う。トナーセーブ処理部2330には共用バッファ部2310から注目画素を中心とした3×3画素群Wcが入力される。トナーセーブ処理部2330では、まず画素群Wcを4つのエッジ判定部2331〜2334に入力する。4つのエッジ判定部2331〜2334では、4つの方向に対してそれぞれエッジ判定処理を実行する。エッジ判定処理とは注目画素が、黒画素と白画素の隣接境界にあるエッジ画素であるか否かを判定する処理である。
図11はエッジ判定部2331〜2334の処理を説明するための図である。図11(a)の3×3マトリクスは、エッジ判定部2331〜2334に入力される画素群Wcを示しており、斜線部分は注目画素を示している。図11(b)はその中の注目画素+上領域を示しており、図11(a)の画素群Wcの中で、注目画素が黒画素かつ上領域画素が白画素であるか否かを判定する。これは、上エッジ判定部2331で実行される。注目画素が黒画素かつ上領域画素が白画素であった場合、上エッジ判定部2331は、注目画素が上エッジ画素であると判定し、判定結果を後段のフラグマスク部2335へ出力する。同様に図11(c)では注目画素+下領域を、図11(d)では注目画素+左領域を、図11(e)では注目画素+右領域をそれぞれ参照してエッジ判定を行う。下方向、左方向、右方向に対するエッジ判定は、下エッジ判定部2332、左エッジ判定部2333、右エッジ判定部2334で実行され、注目画素が黒画素かつ参照領域画素が白画素であるか否かを判定する。
続いてフラグマスク部2335では、前述した上下左右方向のエッジ判定結果をマスクする処理を行う。マスク処理によって、エッジを検出していたとしても、エッジが検出されなかったこととして後段へ判定結果を出力することとなる。本実施例では、上下左右方向のエッジ判定結果のうち、線幅補正処理のエッジ隣接検出方向に対するエッジ判定結果をマスクし、マスクした判定結果をトナーセーブ判定部2337へ出力する。それによって、エッジの中で太るエッジのみにトナーセーブを実行させて、自然なエッジ処理を実現する。
具体的には、フラグマスク部2335はCPU2100が後述する設定に基づいて入力するエッジ検出設定信号ed1〜ed4を参照し、各エッジ判定結果をマスクするか否かを判定する。ed1〜ed4がそれぞれ上下左右のエッジ検出設定を示している。例えばed1がOFFに設定されていれば、フラグマスク部2335では上エッジ判定部2331から出力されたエッジ判定信号をマスクし、後段へ判定結果を出力する。つまり、上エッジ判定部2331で上エッジを検出していたとしても、上エッジが検出されなかったこととして後段へ判定結果を出力することとなる。逆にed1がONに設定されていれば、上エッジ判定部2331で上エッジを検出していれば、そのまま後段へ判定結果を出力する。同様の処理をed2は下エッジに、ed3は左エッジに、ed4は右エッジにかける。このようにすることで、フラグマスク部2335はed1〜ed4がONになっている方向のエッジ判定結果(エッジ検出情報)を後段のトナーセーブ判定部2337へ出力することとなる。
また画素位置判定部2336では、現在処理している注目画素の位置を示す信号を生成し、トナーセーブ判定部2337へ出力する。例えば、市松模様の間引きパターンの場合に、これは、注目画素が処理ページ内の副走査方向に奇数ライン目か偶数ライン目か、または主走査方向に奇数画素目か偶数画素目かを示す信号であり、後段のトナーセーブ判定処理の際に利用される。
次にトナーセーブ判定部2337では現在の注目画素がトナーの消費量低減のために間引きされる(黒画素から白画素へ置き換える)べきか否かを判定し、その判定結果Fbを後段へ出力する。これは、中間調判定結果Fa、3×3画素群Wcの一部である注目画素データ、フラグマスク部2335から出力される上下左右のエッジ判定結果、及び画素位置判定部2336からの注目画素位置情報を参照して判定される。
トナーセーブ判定部2337は、まず画素位置判定部2336からの注目画素位置情報とトナーセーブ処理の間引きパターン(トナーセーブ用のパターン)とに基づいて(論理演算により)、注目画素がトナーセーブ処理の間引き対象となるか否かを判定する。一例として、注目画素位置情報を参照し、注目画素位置が奇数ライン目であれば奇数画素を間引き対象とし、注目画素位置が偶数ライン目であれば偶数画素を間引き対象とする。これにより間引き対象となる画素は画像全体に対して市松模様のように配置される。間引き対象とならなかった注目画素は、判定結果FbはOFF(トナーセーブのための間引き実行しない)として入力された注目画素値がそのまま出力される。
次に間引き対象となった画素は、その画素がエッジ領域か否か判定される。トナーセーブ判定部2337はフラグマスク部2335から入力されるマスク後の上下左右のエッジ判定結果を参照し、注目画素がエッジ領域か否かを判定する。例えば、マスク後の上下左右のエッジ判定結果により一つでもエッジと判定されていればその注目画素はエッジ領域とし、一つもエッジ判定されていなければ、エッジ領域以外の領域となる非エッジ領域とする。間引き対象となった画素で非エッジ領域と判定された画素は、その入力画素値が1(黒画素)であれば、判定結果FbがON(トナーセーブのための間引き実行)として入力画素値を0(白画素)に変換して出力される。
間引き対象となった画素でエッジ領域と判定された画素は続いて中間調か否かが判定される。中間調判定結果Faを受けて、注目画素が中間調と判定され、さらに入力画素値が1(黒画素)であれば、その画素の判定結果FbはON(トナーセーブのための間引き実行)として入力画素値を0(白画素)に変換して出力される。中間調判定結果Faにより注目画素が非中間調と判定されていればエッジ領域と判定された画素であっても判定結果FbはOFF(トナーセーブのための間引き実行しない)として入力画素値がそのまま出力される。
つまり、間引き対象となった画素であってその入力画素値が1(黒画素)である注目画素は、非エッジ画素であると判定されれば、またはエッジ画素であると判定されたが中間調判定結果Faにより中間調領域の画素であれば、間引きされるべきと判定される。その画素は判定結果FbがON(トナーセーブのための間引き実行)として画素値を0(白画素)に変換して出力される。また間引き対象となった画素が黒画素である注目画素は、エッジ画素であると判定されたが中間調判定結果Faにより非中間調領域の画素であれば、間引きされないべきと判定される。その画素は判定結果FbがOFF(トナーセーブのための間引き非実行)として画素値を1(黒画素)のまま出力される。これにより、文字などの非中間調領域のエッジを間引いてしまうことによるエッジ部の画質低下を抑制しつつ、トナー消費量を低減する。なお、ここで市松模様の間引きパターンの場合を説明したが、別の間引きパターンをトナーセーブ処理に利用してもよい。
図12は、トナーセーブ処理部2330の入出力画像の一例を示す。設定の一例として上エッジのみエッジ検出設定がON(ed1のみがON)した場合を示す。図12(a)はトナーセーブ処理部2330への入力画素データである。この入力画素データは図12(b)に示したように上エッジ領域のみトナーセーブのための間引き処理が実行されず、その他の画像領域は市松模様にトナーセーブのための間引き処理が実行された画像となって後段へ出力される。
<線幅補正処理部>
次に図13を参照して線幅補正処理部2340を詳細に説明する。線幅補正処理部2340では、主に細線や小さな図形などのオブジェクトを目立たせるための線幅補正処理を行う。線幅補正処理部2340には共用バッファ部2310から注目画素を中心とした3×3画素群Wcが入力される。線幅補正処理部2340では、まず画素群Wcを4つのエッジ隣接判定部2341〜2344に入力する。4つのエッジ隣接判定部2341〜2344では、4つの方向に対してそれぞれエッジ隣接判定処理を実行する。エッジ隣接判定処理とは注目画素が、黒画素と白画素の隣接境界にある白画素であるか否かを判定する処理である。
図14はエッジ隣接判定部2341〜2344の処理を説明するための図である。図14(a)の3×3マトリクスは、エッジ隣接判定部2341〜2344に入力される画素群Wcを示しており、斜線部分は注目画素を示している。図14(b)はその中の注目画素+上下領域を示しており、図14(a)の画素群Wcの中で、注目画素及び上領域画素が白画素でさらに下領域画素が黒画素であるか否かを判定する。これは、上エッジ隣接判定部2341で実行される。注目画素及び上領域画素が白画素でさらに下領域画素が黒画素であった場合、上エッジ隣接判定部2341は、注目画素が上エッジ隣接画素であると判定し、判定結果を後段のフラグマスク部2345へ出力する。同様に図14(c)では、下エッジ隣接判定部2342は注目画素+上下領域を参照し、注目画素及び下領域画素が白画素でさらに上領域画素が黒画素であるか否かを判定し、下エッジ隣接画素であるか否かを判定する。また、図14(d)では、左エッジ隣接判定部2343は注目画素+左右領域を参照し、注目画素及び左領域画素が白画素でさらに右領域画素が黒画素であるか否かを判定し、注目画素が左エッジ隣接画素であるか否かを判定する。同様に図14(e)では右エッジ隣接判定部2344は注目画素+左右領域を参照し、注目画素及び右領域画素が白画素でさらに左領域画素が黒画素であるか否かを判定し、注目画素が右エッジ隣接画素であるか否かを判定する。
続いてフラグマスク部2345では、前述した上下左右方向のエッジ隣接判定結果をマスクする処理を行う。マスク処理によって、エッジ隣接位置を検出していたとしても、エッジ隣接位置が検出されなかったこととして後段へ判定結果を出力することとなる。本実施例では、上下左右方向のエッジ隣接判定結果のうち、トナーセーブ処理のエッジ検出方向に対するエッジ隣接判定結果をマスクし、マスクした判定結果を線幅補正判定部2346へ出力する。このように、エッジ検出の方向とエッジ隣接検出の方向を排他制御し、不自然なエッジ処理を回避する。
具体的には、フラグマスク部2345はCPU2100が後述する設定に基づいて入力するエッジ隣接検出設定信号esd1〜esd4を参照し、各エッジ隣接判定結果をマスクするか否かを判定する。esd1〜esd4がそれぞれ上下左右のエッジ隣接検出設定を示している。例えばesd1がOFFに設定されていれば、フラグマスク部2345では上エッジ隣接判定部2341から出力されたエッジ隣接判定信号をマスクし、後段へ判定結果を出力する。つまり、上エッジ隣接判定部2341で上エッジ隣接位置を検出していたとしても、上エッジ隣接位置が検出されなかったこととして後段へ判定結果を出力することとなる。逆にesd1がONに設定されていれば、上エッジ隣接判定部2341で上エッジ隣接位置を検出していれば、そのまま後段へ判定結果を出力する。同様の処理をesd2は下エッジ隣接位置に、esd3は左エッジ隣接位置に、esd4は右エッジ隣接位置の判定結果にかける。このようにすることで、フラグマスク部2345はesd1〜esd4がONになっている方向のエッジ隣接判定結果(エッジ隣接位置情報)を後段の線幅補正判定部2346へ出力することとなる。
次に線幅補正判定部2346では現在の注目画素が線幅補正のために太る(白画素から黒画素へ置き換える)べきか否かを判定し、その判定結果Fcを後段へ出力する。これは、中間調判定結果Fa、Wcの一部である注目画素データ、及び上下左右のエッジ隣接判定結果を参照して判定される。
具体的には、線幅補正判定部2346はフラグマスク部2345から入力されるマスク後の上下左右のエッジ隣接判定結果を参照し、注目画素がエッジ隣接位置か否かを判定する。例えば、マスク後の上下左右のエッジ隣接判定結果により一つでもエッジ隣接位置と判定されていればその注目画素はエッジ隣接領域とし、一つもエッジ隣接判定されていなければ非エッジ隣接領域とする。注目画素で非エッジ隣接領域と判定された画素は判定結果FcがOFF(線幅補正処理未実行)として入力画素値をそのまま出力される。注目画素でエッジ隣接領域と判定された画素は続いて中間調か否かを判定する。中間調判定結果Faを受けて、注目画素が中間調と判定されれば、エッジ隣接領域と判定された画素であっても判定結果FcはOFF(線幅補正処理未実行)として入力画素値がそのまま出力される。中間調判定結果Faにより注目画素が非中間調と判定されていればその画素の判定結果FcはON(線幅補正処理実行)として入力画素値を1(黒画素)に変換して出力される。
つまり、注目画素がエッジ隣接画素であると判定され、中間調判定結果Faにより非中間調領域の画素であり、さらに、入力された画素値が0(白画素)である場合に、注目画素の判定結果Fcは入力画素値と異なる画素値を出力する信号となる。その他の場合に、注目画素の判定結果Fcは入力画素値と同一の画素値を出力する信号となる。これにより、中間調領域の網点のエッジを強調することによるエッジ部の画質低下を抑制しつつ、細線や小さな図形などのオブジェクトの画質を向上させる。
図15は、線幅補正処理部2340の入出力画像の一例を示す。設定の一例として右エッジのみエッジ隣接検出設定がON(ed4のみがON)した場合を示す。図15(a)は線幅補正処理部2340への入力画素データである。この入力画素データは図15(b)に示したように右エッジ領域のみ線幅補正処理が実行され、その他の画像領域は入力画像がそのまま後段へ出力される。
<尾引き抑制処理部>
次に図16を参照して尾引き抑制処理部2350を詳細に説明する。なお、尾引き抑制処理部2350はトナーセーブ処理部2330とは異なるアルゴリズムに従って間引き処理を実行する。本間引き処理は図3における記録媒体11が定着ローラ32と加圧ローラ33によって搬送される際に、定着ローラ内部のヒーターに起因する急激な温度上昇が原因で発生する記録媒体11上でのトナーの飛び散りを抑制する目的で実行される。この飛び散りは、急激な温度上昇により記録媒体11中の水分から水蒸気が発生し、トナーの載り量が多い部分の水蒸気が逃げ場を失ってトナーを記録媒体11の搬送方向後方に吹き飛ばし、画像品質を劣化させるものであり、尾引きとも称する。尾引き抑制処理部2350には共用バッファ部2310から5×9画素群Wdが入力される。尾引き抑制処理部2350では、まず画素群Wdをパターン判定部2351に入力する。
パターン判定部2351では、入力された画素群Wdが特定のパターン画素群と一致するか否かを判定し、その判定結果(パターンマッチングの判定結果)を後段の尾引き抑制判定部2353へ出力する。図17はパターン画素群の一例を示しており、斜線部分は注目画素を示している。パターン判定部2351は1つ以上のパターン画素群を用いて判定することができる。入力された画素群Wdが図17(a)または図17(b)のパターン画素群のいずれかに一致した場合、パターン判定部2351はパターン画素群に一致したことを示す信号を後段の尾引き抑制判定部2353へ出力する。
また画素位置判定部2352では、現在処理している注目画素の位置を示す信号を生成し、尾引き抑制判定部2353へ出力する。例えば、尾引き抑制処理にも市松模様の間引きパターンを利用する場合、これは、注目画素が処理ページ内の副走査方向に奇数ライン目か偶数ライン目か、または主走査方向に奇数画素目か偶数画素目かを示す信号であり、後段の間引き処理の際に利用される。
次に尾引き抑制判定部2353では画素群Wdの一部である注目画素データ、パターン一致結果及び注目画素位置情報を参照して、現在の注目画素が尾引き抑制のために間引きされるべきか否かを判定し、その判定結果Fdを後段へ出力する。一例として、前述のトナーセーブのための間引きの場合と同様に、注目画素位置情報を参照し、注目画素位置が奇数ライン目であれば奇数画素を間引き対象とし、注目画素位置が偶数ライン目であれば偶数画素を間引き対象とする。これにより間引き対象となる画素は画像全体に対して市松模様のように配置される。尾引き抑制判定部2353は、パターン画素群に一致したか否かを示す信号及び注目画素の入力画素値を受け、それらとともに注目画素が間引き対象となるか否かを参照して判定結果Fdを生成する。パターン群に一致したと判定され、入力画素値が1(黒画素)であり、さらに、注目画素が間引き対象となると判定された場合に、注目画素は判定結果FdがON(尾引き抑制のための間引き実行)として入力画素値を0(白画素)に変換して出力される。その他の場合、すなわちパターン画素群に一致しなかったと判定された画素、入力画素値が0(白画素)である画素、または間引き対象とならなかった画素は判定結果FdはOFF(尾引き抑制のための間引き実行しない)として入力画素値がそのまま出力される。
図18は、尾引き抑制処理部2350の入出力画像の一例を示す。図18(a)は尾引き抑制処理部2350への入力画素データである。この入力画素データは図18(b)に示したようにパターンに一致した画素位置のみ市松模様に尾引き抑制のための間引き処理が実行された画像となって後段へ出力される。なお、ここで市松模様の間引きパターンの場合を説明したが、別の間引きパターンを尾引き抑制処理に利用してもよい。
<ドット分散処理部>
次に図19を参照してドット分散処理部2360を詳細に説明する。なお、ドット分散処理部2360は画像形成部1200の性能次第で記録媒体11上の白ドットが大きく表現され、目ざわりな画像になることを防止する目的で処理を実行する。具体的には、濃度を保ちつつ画像内部の特定パターンの白ドットを縮小、分散させる。ドット分散処理部2360には共用バッファ部2310から27×27画素群Weが入力される。ドット分散処理部2360では、まず画素群Weをドット縮小判定部2361及びドット付与判定部2362に入力する。
ドット縮小判定部2361では、注目画素位置の画素が白く、27×27画素群Weの中で注目画素位置を中心として点対象に別の白画素が斜め4方向に存在した場合にドット縮小を実行するための信号を後段の出力ドット判定部2363へ出力する。
また、ドット付与判定部2362では、注目画素位置の画素が黒く、27×27画素群Weの中で注目画素位置を中心として点対象に別の白画素が上下左右の4方向に存在した場合にドット付与を実行するための信号を後段の出力ドット判定部2363へ出力する。
次に出力ドット判定部2363では現在の注目画素の白ドットが縮小されるべきか、注目画素位置に白ドットを付与すべきかを判定し、その判定結果Feを後段の最終出力判定部2370へ出力する。これは、Weの一部である注目画素データ、ドット縮小判定結果、及びドット付与判定結果を参照して判定される。ドット縮小判定された注目画素は、入力画素値を1(黒画素)に変換して出力される。ドット付与判定された注目画素は、入力画素値を0(白画素)に変換して出力される。また、どちらにも判定されなかった注目画素は入力画素値がそのまま出力される。
図20は、ドット分散処理部2360の入出力画像の一例を示す。図20(a)はドット分散処理部2360への入力画素データである。この入力画素データは図20(b)に示したように画素データ内の白ドットが縮小・分散した画素データとなって後段の最終出力判定部2370へ出力される。
<最終出力判定部>
最終出力判定部2370では、二値画像処理部2303の最終的な出力画素値を判定し、画素データDdとして後段へ出力する。最終出力判定部2370は、共用バッファ部2310から注目画素である画素Waと、各画像処理部(2330〜2360)からそれぞれの判定結果であるFb、Fc、Fd、Feを受け取る。最終出力判定部2370は、これら入力を受けて、画素Waと異なる画素値を出力する信号がFb、Fc、Fd、Feに一つでもあれば異なる画素値を出力する。つまり、画素Waが0(白画素)でFb、Fc、Fd、Feに一つでも1(黒画素)出力を示すものがあれば1(黒画素)を出力する。反対に画素Waが1(黒画素)でFb、Fc、Fd、Feに一つでも0(白画素)出力を示すものがあれば0(白画素)を出力する。また画素Waの画素値とFb、Fc、Fd、Feの示す出力画素値がすべて同一であるならば、画素Waの画素値をそのまま出力する。
ここで、最終出力判定部2370は、Fb、Fc、Fd、Feすべての結果を参照するのではなく、設定に応じて一部結果を無視する構成としてもよい。例えば、ドット分散処理が不要なプリンタ部120が後段にある場合、ドット分散処理結果Feを判定に含まないとしてもよい。また、並列に配置されている各画像処理部の処理遅延量が異なる場合、遅延量調整回路を最終出力判定部内部に持つ構成としてもよい。
<複写機動作フロー>
図21はコントローラ200内のCPU2100が実行する複写機の記録媒体への画像形成に関わる動作を示すフローチャートである。本動作フローチャートのプログラムは、HDD記憶部2130内に本複写機が実現すべき機能として格納されている。本プログラムはCPU2100がブートプログラムを実行することにより、HDD記憶部2130からRAM2110へ読み出される。そしてCPU2100がRAM2110上に読み出したプログラムを実行することで処理される。
まずステップS101において、CPU2100はプリンタ部120に搭載されたCPUと通信し、画像形成処理に必要な画像処理に関するプリンタ情報を取得する。一例として、尾引き抑制処理部2350における間引き処理やドット分散処理部2360によるドット分散処理を機能させるか否かなどの情報を得る。これにより、必要に応じてCPU2100は最終出力判定部2370へ、Fb、Fc、Fd、Feすべての結果を参照するのではなく、一部結果を無視する設定をする。
次にステップS102において、CPU2100は線幅補正設定の情報を取得する。これは、操作ユニット160にユーザが入力した情報から取得してもよいし、ユーザPC61などにインストールされたドライバ上での設定情報から取得してもよい。また、プリンタ部120の種類や状態によって設定情報を変更する場合があるのならば、さらにプリンタ部120に搭載されたCPUと通信し、線幅補正設定に関する情報を取得する。
次にステップS103において、CPU2100はトナーセーブ設定の情報を取得する。これは、操作ユニット160にユーザが入力した情報から取得してもよいし、ユーザPC61などにインストールされたドライバ上での設定情報から取得してもよい。
ここで図23を参照して操作ユニット160における入力情報取得例を説明する。図23は操作ユニット160上の液晶操作パネル161における設定画面の一例である。液晶操作パネル161にはユーザ設定におけるプリント画質設定画面が表示されている。ここで、ユーザはまずトナー消費量削減のためのトナーセーブ処理を実行するか否かを選択する。またそれに加え、黒文字や線画の線幅を太くする線幅補正処理を実行するか否かを選択する。さらに線幅補正に関しては、横線補正レベルを0から2まで選択する。横線補正とは、画像を横方向に太くする補正を意味し、レベルはその補正強度を示す。また、縦線補正とは、画像を縦方向に太くする補正を意味し、レベルはその補正強度を示す。ユーザは、これら実行のする/しないや、レベルを設定する。CPU2100は、この液晶操作パネル161上における設定内容を取得する。
続いてステップS104において、CPU2100はステップS102及びステップS103にて取得した設定情報を実際にトナーセーブ処理部2330や線幅補正処理部2340に設定する。設定詳細に関しては図22を参照して後述する。
ステップS105において、CPU2100は複写機の画像形成処理を実行する。具体的には、ユーザPC60などからLAN50を介して受信した印刷画素データをRIP2600を用いてビットマップデータに展開し、プリンタIF画像処理部2300へと出力する。出力された画素データは、プリンタIF画像処理部2300内部で色空間処理、ハーフトーン処理、二値画像処理など所望の画像処理が施され、さらに画像形成部1200へと出力される。ここで二値画像処理部2303におけるそれぞれの二値画像処理は、ステップS104の処理設定に従って実行される。そしてCPU2100は、プリンタ部120に搭載されたCPUと通信し、画像形成部1200を制御し、記録媒体11を用紙カセット121〜123から搬送する。さらに出力した画素データから形成される所望のトナー像を記録媒体11上に転写・定着させ、図示しない排出ローラによって排紙トレイ124に排出する。
<線幅補正・トナーセーブ処理設定フロー>
図22は、線幅補正・トナーセーブ処理設定の動作フロー(エッジ・エッジ隣接検出方向設定フロー)である。これは、図21におけるステップS104を具体的に記載したものである。なお、図22のフローチャートは、図21に引き続きCPU2100がRAM2110上に読み出したプログラムを実行することで処理されることとなる。なお、本フローチャート内での各種設定情報はステップS102、ステップS103にて操作ユニット160にユーザが入力した情報やドライバ上での設定情報などから取得したものである。
ステップS201からステップS209は、主に線幅補正処理部2340に対するCPU2100からの動作設定処理に関する。つまり、エッジ隣接検出方向を制御する(所定方向にする)エッジ隣接検出設定信号esd1〜esd4を設定する。
まず、ステップS201において、CPU2100は線幅補正の設定がONになっているか否かを判定する。設定がONの場合にはステップS202へ進む。設定がOFFの場合にはステップS210へ進む。
次にステップS202において、CPU2100は横線補正レベルが0か否かを判定する。横線補正レベルが0であった場合はステップS206へ進み、横線補正レベルが0でなかった場合にはステップS203へ進む。
次にステップS203において、横線補正レベルが1か否かが判定される。横線補正レベルが1であった場合はステップS205へ進み、横線補正レベルが1でなかった場合には横線補正レベルは2であると判定し、ステップS204へ進む。
ステップS204において、CPU2100は左方向エッジ隣接検出のON設定を行う。具体的には、CPU2100は線幅補正処理部2340に入力されるesd3信号をONに設定する。これにより線幅補正処理部2340では左エッジ隣接判定結果がフラグマスク部2345でマスクされずに線幅補正判定部2346に入力されることとなる。
ステップS205において、CPU2100は右方向エッジ隣接検出のON設定を行う。具体的には、CPU2100は線幅補正処理部2340に入力されるesd4信号をONに設定する。これにより線幅補正処理部2340では右エッジ隣接判定結果がフラグマスク部2345でマスクされずに線幅補正判定部2346に入力されることとなる。
次にステップS206において、線幅補正の設定がONの場合の縦線補正レベルの判定が実行される。まずステップS206において、CPU2100によって縦線補正レベルが0か否かが判定される。縦線補正レベルが0であった場合はステップS210へ進み、縦線補正レベルが0でなかった場合にはステップS207へ進む。
次にステップS207において、縦線補正レベルが1か否かが判定される。縦線補正レベルが1であった場合はステップS209へ進み、縦線補正レベルが1でなかった場合には縦線補正レベルは2であると判定し、ステップS208へ進む。
ステップS208において、CPU2100は上方向エッジ隣接検出のON設定を行う。具体的には、CPU2100は線幅補正処理部2340に入力されるesd1信号をONに設定する。これにより線幅補正処理部2340では上エッジ隣接判定結果がフラグマスク部2345でマスクされずに線幅補正判定部2346に入力されることとなる。
ステップS209において、CPU2100は下方向エッジ隣接検出のON設定を行う。具体的には、CPU2100は線幅補正処理部2340に入力されるesd2信号をONに設定する。これにより線幅補正処理部2340では下エッジ隣接判定結果がフラグマスク部2345でマスクされずに線幅補正判定部2346に入力されることとなる。
次にステップS210以降では、主にトナーセーブ処理部2330に対するCPU2100からの動作設定処理に関する。つまり、エッジ検出方向を制御する(所定方向以外の方向にする)エッジ検出設定信号ed1〜ed4を設定する。
まず、ステップS210において、CPU2100はトナーセーブの設定がONになっているか否かを判定する。設定がONの場合にはステップS211へ進む。設定がOFFの場合には本フローチャートは終了となる。
次にステップS211において、CPU2100はトナーセーブの左方向エッジ検出設定のために左方向エッジ隣接検出設定を確認する。具体的には、CPU2100は、ステップS204にて線幅補正処理部2340に入力されるesd3信号をONにしていたか否かを確認する。ステップS204にてCPU2100がesd3信号をONにしていた場合にはステップS212に進み、ONにしていなかった場合にはステップS213に進む。
ステップS212において、CPU2100は左方向エッジ検出のOFF設定を行う。具体的にはトナーセーブ処理部2330に入力されるエッジ検出設定信号ed3をOFFとする。これによりトナーセーブ処理部2330では、左エッジ判定部2333による左エッジ判定結果は、フラグマスク部2335でマスクされトナーセーブ判定部2337に入力されないこととなる。
また、ステップS213において、CPU2100は左方向エッジ検出のON設定を行う。具体的にはトナーセーブ処理部2330に入力されるエッジ検出設定信号ed3をONとする。これによりトナーセーブ処理部2330では、左エッジ判定部2333による左エッジ判定結果は、フラグマスク部2335でマスクされずにトナーセーブ判定部2337に入力されることとなる。
次にステップS214において、CPU2100はトナーセーブの右方向エッジ検出設定のために右方向エッジ隣接検出設定を確認する。具体的には、CPU2100は、ステップS205にて線幅補正処理部2340に入力されるesd4信号をONにしていたか否かを確認する。ステップS205にてCPU2100がesd4信号をONにしていた場合にはステップS215に進み、ONにしていなかった場合にはステップS216に進む。
ステップS215において、CPU2100は右方向エッジ検出のOFF設定を行う。具体的にはトナーセーブ処理部2330に入力されるエッジ検出設定信号ed4をOFFとする。これによりトナーセーブ処理部2330では、右エッジ判定部2334による右エッジ判定結果は、フラグマスク部2335でマスクされトナーセーブ判定部2337に入力されないこととなる。
また、ステップS216において、CPU2100は右方向エッジ検出のON設定を行う。具体的にはトナーセーブ処理部2330に入力されるエッジ検出設定信号ed4をONとする。これによりトナーセーブ処理部2330では、右エッジ判定部2334による右エッジ判定結果は、フラグマスク部2335でマスクされずにトナーセーブ判定部2337に入力されることとなる。
次にステップS217において、CPU2100はトナーセーブの上方向エッジ検出設定のために上方向エッジ隣接検出設定を確認する。具体的には、CPU2100は、ステップS208にて線幅補正処理部2340に入力されるesd1信号をONにしていたか否かを確認する。ステップS208にてCPU2100がesd1信号をONにしていた場合にはステップS218に進み、ONにしていなかった場合にはステップS219に進む。
ステップS218において、CPU2100は上方向エッジ検出のOFF設定を行う。具体的にはトナーセーブ処理部2330に入力されるエッジ検出設定信号ed1をOFFとする。これによりトナーセーブ処理部2330では、上エッジ判定部2331による上エッジ判定結果は、フラグマスク部2335でマスクされトナーセーブ判定部2337に入力されないこととなる。
また、ステップS219において、CPU2100は上方向エッジ検出のON設定を行う。具体的にはトナーセーブ処理部2330に入力されるエッジ検出設定信号ed1をONとする。これによりトナーセーブ処理部2330では、上エッジ判定部2331による上エッジ判定結果は、フラグマスク部2335でマスクされずにトナーセーブ判定部2337に入力されることとなる。
次にステップS220において、CPU2100はトナーセーブの下方向エッジ検出設定のために下方向エッジ隣接検出設定を確認する。具体的には、CPU2100は、ステップS209にて線幅補正処理部2340に入力されるesd2信号をONにしていたか否かを確認する。ステップS209にてCPU2100がesd2信号をONにしていた場合にはステップS221に進み、ONにしていなかった場合にはステップS222に進む。
ステップS221において、CPU2100は下方向エッジ検出のOFF設定を行う。具体的にはトナーセーブ処理部2330に入力されるエッジ検出設定信号ed2をOFFとする。これによりトナーセーブ処理部2330では、下エッジ判定部2332による下エッジ判定結果は、フラグマスク部2335でマスクされトナーセーブ判定部2337に入力されないこととなる。
また、ステップS222において、CPU2100は下方向エッジ検出のON設定を行う。具体的にはトナーセーブ処理部2330に入力されるエッジ検出設定信号ed2をONとする。これによりトナーセーブ処理部2330では、下エッジ判定部2332による下エッジ判定結果は、フラグマスク部2335でマスクされずにトナーセーブ判定部2337に入力されることとなる。
ステップS221またはステップS222の処理を終えると本フローチャートは終了となる。
以上のフローチャートに示したようにステップS204及びステップS211〜S213により、CPU2100は線幅補正処理の左方向のエッジ隣接検出設定とトナーセーブ処理の左方向のエッジ検出設定とを排他的な設定とする。またCPU2100は、ステップS205及びステップS214〜S216により右方向を、ステップS208及びステップS217〜S219により上方向を、ステップS209及びステップS220〜S222により下方向をそれぞれ同じく排他的な設定とする。すなわち、線幅補正処理の施される細線等のオブジェクトのエッジ部に対してトナーセーブ処理が施されるように、線幅補正処理部およびトナーセーブ処理部のエッジ検出の設定(エッジ隣接検出設定およびエッジ検出設定)がなされる。
また、トナーセーブ処理のエッジ検出方向に関して線幅補正設定に関わらずエッジ検出方向の指定が存在する場合は、ステップS201〜S209とステップS210〜S222の処理順を逆とすることも可能である。すなわちCPU2100はトナーセーブ処理のエッジ検出方向を先に決定し、その方向と排他的な設定になるように線幅補正処理のエッジ隣接検出方向を決定するように制御してもよい。つまり、トナーセーブ処理のエッジ検出方向と線幅補正処理のエッジ隣接検出方向が排他的な設定と結果的になるのであれば、どのような処理順で設定を定めていっても構わない。
<トナーセーブ処理・線幅補正処理設定>
図24において、図22の線幅補正・トナーセーブ処理設定フローを実行した場合の設定結果の一例を表に示す。図24では、図22のステップS201にて線幅補正処理がONに、さらにステップS210にてトナーセーブ処理もONになっている場合のトナーセーブ処理のエッジ検出設定及び線幅補正処理のエッジ隣接検出設定の一例をまとめたものである。
まず、図24(a)ではトナーセーブ処理の左右エッジ検出設定と線幅補正処理の左右エッジ隣接検出設定の関連を示している。例えば図23で示した液晶操作パネル161の設定画面にて横線補正レベルが0に設定された場合、左右方向の線幅補正処理はOFF(左右エッジ隣接検出設定がOFF)となる。このため左右エッジが線幅補正処理によって変化することはないので、トナーセーブ処理における左右エッジ検出はONとなる。つまりトナーセーブ処理部2330は左右エッジの双方を検出し、その部分は間引き処理を実行しない。
次に横線補正レベルが1に設定された場合、右方向の線幅補正処理のみON(右エッジ隣接検出設定のみON)となる。このため右エッジのみ線幅補正処理によって変化するので、トナーセーブ処理における右エッジ検出はOFFとなる。つまりトナーセーブ処理部2330は右エッジを検出せず、その部分は入力画像のエッジ領域であったとしても間引き処理を実行する。
次に横線補正レベルが2に設定された場合、左右方向の線幅補正処理はON(左右エッジ隣接検出設定がON)となる。このため左右エッジは双方とも線幅補正処理によって変化するので、トナーセーブ処理における左右エッジ検出は双方ともOFFとなる。つまりトナーセーブ処理部2330は左右エッジを検出せず、その部分は入力画像のエッジ領域であったとしても間引き処理を実行する。
次に図24(b)ではトナーセーブ処理の上下エッジ検出設定と線幅補正処理の上下エッジ隣接検出設定の関連を示している。例えば図23で示した液晶操作パネル161の設定画面にて縦線補正レベルが0に設定された場合、上下方向の線幅補正処理はOFF(上下エッジ隣接検出設定がOFF)となる。このため上下エッジが線幅補正処理によって変化することはないので、トナーセーブ処理における上下エッジ検出はONとなる。つまりトナーセーブ処理部2330は上下エッジの双方を検出し、その部分は間引き処理を実行しない。
次に縦線補正レベルが1に設定された場合、下方向の線幅補正処理のみON(下エッジ隣接検出設定のみON)となる。このため下エッジのみ線幅補正処理によって変化するので、トナーセーブ処理における下エッジ検出はOFFとなる。つまりトナーセーブ処理部2330は下エッジを検出せず、その部分は入力画像のエッジ領域であったとしても間引き処理を実行する。
次に縦線補正レベルが2に設定された場合、上下方向の線幅補正処理はON(上下エッジ隣接検出設定がON)となる。このため上下エッジは双方とも線幅補正処理によって変化するので、トナーセーブ処理における上下エッジ検出は双方ともOFFとなる。つまりトナーセーブ処理部2330は上下エッジを検出せず、その部分は入力画像のエッジ領域であったとしても間引き処理を実行する。
図25は、図24において、横線補正レベル1及び縦線補正レベル0が選択された場合の画像変化の一例を示す。図25(a−1)が二値画像処理部2303へ入力される入力画像の一例である。図25(a−1)は、ある二値画像のベタ領域の右上の端部位置のみを示すものである。次に図25(a−2)が図25(a−1)の線幅補正処理部2340の処理後の画像である。横線補正レベル1なので右エッジのみ線幅補正処理により右方向に1画素増加している。次に図25(a−3)が図25(a−1)のトナーセーブ処理部2330の処理後の画像である。横線補正レベル1なので右エッジはトナーセーブ処理部2330内部でエッジ検出されず、間引き処理されている。なお、尾引き抑制処理部2350とドット分散処理部2360の出力画像は、図25(a−1)と変わらないものとしここでは説明を省略する。次に図25(a−4)が最終出力判定部2370の出力画像の一例である。図25(a−4)は、入力画像(a−1)と異なる画素値が図25(a−2)または図25(a−3)のどちらか一方に含まれている場合、差異のある画素値を選択した出力画像となる。よって、図25(a−3)で間引き処理された右エッジの外側に図25(a−2)で太った画素が付与されており、本実施例の並列構成においても従来と同等の画像品質を実現できる。
また、比較のために、図25(b−1)〜(b−4)に図25(a−1)と同じ入力画像である図25(b−1)に関して、本実施例の線幅補正・トナーセーブ処理設定を実施しなかった場合の画像変化の一例を示す。ここでは、線幅補正処理の内容に関わらず、トナーセーブ処理部2330内部で上下左右全方向のエッジ検出を実施したものの一例を示す。この場合、図25(b−3)に示したトナーセーブ処理部2330の処理後の画像は、入力画像の右エッジもエッジ検出され、間引き処理が実施されない画像となる。よって図25(b−2)の線幅補正処理部2340の処理後の画像と図25(b−3)の画像と入力画像(b−1)から最終出力判定部2370によって生成される出力画像は図25(b−4)に示した画像となる。つまり、右エッジが不自然に強調される画像となる。
以上に説明したように本実施例は共用バッファ部2310を有した二値画像処理部2303を有し、さらに内部のトナーセーブ処理のエッジ検出方向と線幅補正設定の方向が排他的な設定となるように制御される。その結果、従来に比べ低コストな構成となり、さらに従来と同等の画像品質を実現することが可能となる。
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。