以下、本発明を実施するための形態について図面を用いて説明するが、本発明は以下の各実施形態に限定されない。
[第1の実施形態]
図1は、本実施形態におけるシステム構成の概略図である。
図1に示される画像処理システムは、ホストコンピュータ1、印刷装置2によって構成される。本実施形態の印刷装置2は、本発明の画像形成装置の一例であり、コントローラ21、印刷エンジン22を備える。
ホストコンピュータ1は、一般のPC(パーソナルコンピュータ)やWS(ワークステーション)などのコンピュータである。このホストコンピュータ1上の不図示のプリンタドライバ等のソフトウェアアプリケーションで作成された画像や文書は、PDLデータとしてネットワーク(例えばLocal Area Network)を介して印刷装置2に送信される。印刷装置2では、コントローラ21が、送信されたPDLデータを受け取る。PDLとは、Page Description Language(ページ記述言語)のことである。
コントローラ21は、印刷エンジン22に接続され、ホストコンピュータ1からPDLデータを受け取り、印刷エンジン22で処理可能な印刷データに変換し、その印刷データを印刷エンジン22に出力する。
印刷エンジン22は、コントローラ21より出力された印刷データに基づいて、画像の印刷を行う。本実施形態の印刷エンジン22は、後述するように電子写真方式の印刷エンジンである。
次に、コントローラ21の詳細について説明する。コントローラ21はホストI/F(インターフェース)部101、CPU102、RAM103、ROM104、画像処理部105、エンジンI/F部106、内部バス107を有する。
ホストI/F部101は、ホストコンピュータ1から送信されたPDLデータを受け取るためのインターフェースである。例えば、イーサネット(登録商標)やシリアルインターフェースもしくは、パラレルインターフェースといったもので構成されている。
CPU102は、RAM103やROM104に格納されているプログラムやデータを用いて印刷装置2全体の制御を行うと共に、コントローラ21が行う後述の処理を実行する。
RAM103は、CPU102が各種の処理を実行する際に用いるワークエリアを備えている。
ROM104は、後述の各種処理をCPU102に実行させるためのプログラムやデータ、また、コントローラ21の設定データなどが格納されている。
画像処理部105は、CPU102からの設定に応じて、ホストI/F部101が受け取ったPDLデータに対してプリント用画像処理を行うことで、印刷エンジン22で処理可能な印刷データを生成する。画像処理部105は特に、受け取ったPDLデータに対してラスタライズを行うことで、1画素あたり複数の色成分を持つ画像データを生成する。複数の色成分とは、グレースケールやRGB(赤、緑、青)などの色空間において独立した色成分のことである。画像データは、画素毎に1つの色成分につき8ビット(256階調)の値を持つ。すなわち、画像データは多値の画素を含む、多値のビットマップデータである。また以上のラスタライズでは、画像データの他に、画像データの画素の属性を画素毎に示す属性データも生成される。この属性データは、画素がどの種類のオブジェクトに属するかを示し、例えば文字や線、図形、イメージといったオブジェクトの種類を示す値を画素の属性として保持している。画像処理部105は、これら生成された画像データおよび属性データに後述の画像処理を施すことによって印刷データを生成する。
エンジンI/F部106は、画像処理部105によって生成された印刷データを、印刷エンジン22に送信するインターフェースである。
内部バス107は、上述の各部を繋ぐシステムバスである。
次に、印刷エンジン22の詳細について、図2を用いて説明する。印刷エンジン22は電子写真方式によるものであり、図2に示すような構成になっている。すなわち、帯電した感光体(感光ドラム)に対して、単位面積あたりの露光強度が変調されたレーザービームが照射されることで、現像剤(トナー)が露光部分に付着してトナー画像(可視画像)が形成される。この露光強度の変調の仕方は、パルス幅変調(PWM)等の従来手法がある。ここで重要なのは、次の点である。(1)1画素に対するレーザービームの露光強度は、画素中心を最大として、画素中心から離れるにつれて減衰する。(2)1画素に対するレーザービームの露光範囲(露光スポット径)は、隣接する画素に対する露光範囲と部分的に重なりを持つため、ある画素に対する最終的な露光強度は、隣接する画素の露光強度との累積に依存する。(3)最終的な露光強度に従って、トナーの付着の仕方が異なる。例えば1画素に対する最終的な露光強度が画素の全範囲にわたって強ければ、濃く大きい画素の画像が可視化され、1画素に対する最終的な露光強度が画素中心のみだけ強ければ、濃く小さい画素の画像が可視化される。本実施例では、上記の特性を考慮した後述の画像処理を行うことで、濃く太い線や文字を印刷できるようにする。印刷データから画像を印刷するまでのプロセスについて以下に説明される。
像担持体としての感光ドラム202、203、204、205がその中心で軸支され、矢印方向に回転駆動される。各感光ドラム202〜205は、それぞれのプロセスカラー(例えばイエロー、マゼンタ、シアン、ブラック)のトナーで形成される像を担持する。感光ドラム202〜205の外周面に対向してその回転方向に一次帯電器210、211、212、213、露光制御部201、現像装置206、207、208、209が配置されている。一次帯電器210〜213は、感光ドラム202〜205の表面を均一な負の電位(例えば−500V)に帯電させる。次いで露光制御部201は、コントローラ21から送信された印刷データに応じてレーザービームの露光強度を変調し、変調されたレーザービームを感光ドラム202〜205に照射(露光)する。露光された箇所の感光ドラム表面の電位は下がり、この電位が下がった箇所が静電潜像として感光ドラム上に形成される。この形成された静電潜像には、現像装置206〜209の現像バイアス(例えば−300V)によって、現像装置206〜209が格納する負の電位に帯電したトナーが付着され、トナー画像が顕像化される。このトナー画像は、感光ドラム202〜205のそれぞれと中間転写ベルト218とが対向する位置で、各感光ドラム202〜205から中間転写ベルトに転写される。そして、転写されたトナー画像はさらに、中間転写ベルト218と転写ベルト220とが対向する位置で、その位置まで搬送されてきた紙等のシートに、中間転写ベルトから転写される。そしてトナー画像が転写されたシートには、定着器221によって定着処理(加熱、加圧)が行われ、排紙口230から印刷装置2の外部へ排紙される。
[画像処理部]
次に、画像処理部105の詳細について説明する。画像処理部105は、図3に示すように、色変換部301、細線補正部302、ガンマ補正部303、スクリーン処理部304、細線用スクリーン処理部305、スクリーン選択部306を有する。なお上述したように画像処理部105は、ホストI/F部101で受け取ったPDLデータに対してラスタライズ処理を行うことで、多値の画像データを生成する。ここでは、その生成された多値の画像データに対して行われるプリント用画像処理について詳述する。
色変換部301は、多値の画像データに対してグレースケール色空間あるいはRGB色空間からCMYK色空間への色変換処理を行う。この色変換処理によって1画素の1色成分あたり8ビット(256階調)の多値の濃度値(階調値、信号値とも呼ぶ)を持つ多値のビットマップ画像データが生成される。この画像データは、CMYK(シアン、マゼンタ、イエロー、ブラック)の各色成分を有しており、CMYK画像データとも呼ばれる。このCMYK画像データは色変換部301内の不図示のバッファに格納される。
細線補正部302は、バッファに格納されたCMYK画像データを取得し、まず、この画像データにおける細線部(すなわち画像オブジェクトにおける幅の細い部分)を特定する。そして細線補正部302は、特定された細線部の画素に対する濃度値およびその細線部に隣接する非細線部の画素に対する濃度値を、細線部の画素の濃度値に基づいて決定する。なお、これら細線部の画素および非細線部(細線部を挟む2つの非細線部を含む)の画素に対する各濃度値の総和は、細線部の画素の濃度値に基づいて、細線部の画素の濃度値よりも大きくなるように決定されることが重要である。細線部の画像を適切に濃く太く印刷するためである。そして細線補正部302は、決定された各濃度値で、細線部および非細線部の画素それぞれの濃度値を補正して、補正された各画素の濃度値をガンマ補正部303に出力する。細線補正部302の処理については図6を用いて後で詳述する。
また、細線補正部302は、細線を構成する画素とそれ以外の画素とで適用するスクリーン処理を切り替えるための細線フラグを、スクリーン選択部306に出力する。これは、細線部の画素とその細線部に隣接する画素については、細線用のスクリーン処理(平坦型スクリーン処理)を適用することで、スクリーン処理によるオブジェクトの途切れやジャギーを軽減することが目的である。スクリーン処理の種類については、図4、5を用いて後述する。
ガンマ補正部303は、トナー画像がシートへと転写された際の濃度特性が所望となるよう、一次元のルックアップテーブルを用いて、入力された画素データを補正するガンマ補正処理を実行する。本実施形態では、例としてリニアな形状をした一次元のルックアップテーブルを用いる。このルックアップテーブルは入力がそのまま出力されるようなルックアップテーブルである。ただし、印刷エンジン22の状態の変化に応じて、CPU102は、この一次元のルックアップテーブルを書き換えても良い。ガンマ補正後の画素データは、スクリーン処理部304および細線用スクリーン処理部305に入力される。
スクリーン処理部304は、入力された画素データに集中型スクリーン処理を行って、その結果の画素データをスクリーン選択部306へ出力する。
細線用スクリーン処理部305は、入力された画素データに、細線用のスクリーン処理として、平坦型スクリーン処理を行って、その結果の画素データをスクリーン選択部306へ出力する。
スクリーン選択部306は、スクリーン処理部304と細線用スクリーン処理部305からの出力の何れか1つを、細線補正部302から入力された細線フラグに従って選択し、選択された出力を、印刷データとして、エンジンI/F部106へする。
[各スクリーン処理について]
次に、図4、図5を用いて、本実施形態におけるスクリーン処理部304と細線用スクリーン処理部305で行われるスクリーン処理について詳細に説明する。
集中型スクリーン処理及び平坦型スクリーン処理は、入力された8ビット(256階調)画素データ(以下では単に画像データと呼ぶ)から、スクリーン処理によって印刷エンジン22で処理可能な4ビット(16階調)の画像データに変換する。この変換には、16階調の画像データに変換するため、15個のディザマトリックスを含むディザマトリックス群を用いる。
ここで、各々のディザマトリックスは、幅M、高さNのM×N個の閾値をマトリックス状に配置したものである。ディザマトリックス群に含まれるディザマトリックスの個数は出力する画像データの階調(Lビット(Lは2以上の整数)の場合2L諧調)に応じて決定され、(2L−1)がマトリックスの個数となる。スクリーン処理は、画像データの各画素に対応した閾値をディザマトリックスの各面から読み出し、画素の値と面数分の閾値との比較を行う。
16諧調の場合、各ディザマトリックスには第1レベル〜第15レベル(Level 1〜Level 15)を設定し、画素の値が閾値以上であれば、その閾値が読みだされたマトリックスのレベルの中で最も大きい値を出力し、そうでなければ0を出力する。それによって画像データの各画素の濃度値を4ビット値に変換する。ディザマトリックスは、画像データの横方向にM画素、縦方向にN画素の周期でタイル状に繰り返し適用される。
ここで、スクリーン処理部304で用いるディザマトリックスは、図4に例示的に示されるように、網点(ハーフトーンドット)の周期が強く表れるディザマトリックスを用いる。つまり、濃度値増加による網点成長を面積拡大による網点成長よりも優先するように閾値が与えられている。そして、ある1つの画素が所定レベル(例えば最大レベル)まで成長した後、網点が集中するように隣接する画素が同様にしてレベル方向に成長していることが見て取れる。このように設定されたディザマトリックス群は、ドットが集中するため階調特性が安定するという特徴と持つ。以下、このような特徴を持つディザマトリックス群を集中型のディザマトリックス(ドット集中型ディザマトリックス)と呼ぶ。一方で、この集中型のディザマトリックスは、網点のパターンが強く現れるため分解能が低いという特徴を持つ。言い換えれば、集中型のディザマトリックスは、スクリーン処理前の画素の濃度情報がその画素の位置によっては消失するような、濃度情報の保存の位置依存性が高いディザマトリックス群である。そのため、集中型のディザマトリックスが、細線などの細かいオブジェクトに対するスクリーン処理に用いられた場合、オブジェクトの途切れなどが生じやすい。
一方、細線用スクリーン処理部305で用いるディザマトリックスは、図5に例示的に示されるように、規則的に表れる網点の周期が現れにくいディザマトリックスを用いるものである。つまり、ドット集中型のディザマトリックスとは異なり、面積拡大による網点成長を濃度値増加による網点成長よりも優先するように閾値が与えられている。ある1つの画素が所定レベル(例えば最大レベル)まで成長する以前に、網点の面積が大きくなるように網点内の画素が成長していることが見て取れる。このディザマトリックスは、周期性が表れにくく分解能が高いためオブジェクトの形状をより正確に再現することが可能である。以下、これを平坦型のディザマトリックス(ドット平坦型ディザマトリックス)と呼ぶ。そのため、平坦型のディザマトリックスは、集中型のディザマトリックスに比べて、細線などの細かいオブジェクトに対するスクリーン処理に好適である。
すなわち、本実施形態においては、色の再現よりも形状の再現を優先すべき細線等のオブジェクトには平坦型のディザマトリックスによるスクリーン処理(平坦型スクリーン処理)を適用する。また、色の再現を優先すべきオブジェクトには集中型のディザマトリックスによるスクリーン処理(集中型スクリーン処理)を適用する。
[細線補正処理について]
次に、図6〜11を用いて、本実施形態における細線補正部302で行われる細線補正処理について詳細に説明する。
この補正を行うにあたり、細線補正部302は、色変換部301内のバッファに格納されているCMYK画像データのうち、処理対象である注目画素を中心とする5×5画素のウィンドウ画像を取得する。そして、細線補正部302は、この注目画素が細線の一部を構成する画素であるのか否か、および、非細線部の画素(非細線画素、非細線部)であって細線に隣接する画素(以降、細線隣接画素と呼ぶ)であるのか否かを判定する。そして、細線補正部302は、その判定結果に従って、注目画素の濃度値の補正を行い、濃度値が補正された注目画素のデータをガンマ補正部303に出力する。また、細線補正部302は、細線と細線以外の画素でスクリーン処理を切り替えるために細線フラグをスクリーン選択部306に出力する。これは、上述のように補正が行われた細線の画素と、補正が行われた細線隣接画素については、平坦型スクリーン処理を適用することで、スクリーン処理による途切れやジャギーを軽減することが目的である。
図6は、細線補正部302のブロック図である。図7は、細線補正部302で行われる細線補正処理に相当するフローチャートである。図8は、細線補正部302に入力される注目画素p22と周辺画素を含む5×5画素ウィンドウを示すものである。図9は、細線画素判定部602で行われる細線画素判定処理を説明するための図である。図10は、細線隣接画素判定部603で行われる細線隣接画素判定処理を説明するための図である。
図11(a)は、細線画素補正部604で用いられる細線画素補正処理用のルックアップテーブルである。このルックアップテーブルによって出力値は入力値以上になるように補正される。すなわち細線画素は元の濃度値よりも大きな濃度値に制御され、印刷される細線は、図14(b)で後述するように、より濃くなって視認性が向上する。また、入力値0から、最大濃度値255の半分に相当する128よりも小さい入力値までの区間に対するルックアップテーブルの入出力関係を示す線分の傾きは1を超えている。これはとりわけ視認性が低い低濃度の細線の視認性向上のために、細線画素の濃度値を大幅に上昇させるためである。
図11(b)は、細線隣接画素補正部605で用いられる細線隣接画素補正処理用のルックアップテーブルである。このルックアップテーブルによって出力値は入力値以下になるように補正される。すなわち細線隣接画素の濃度値は細線画素の濃度値以下の濃度値に制御され、印刷される細線は、図14(b)で後述するように、細線の幅を元の細線の濃度を考慮して、細かに調整することができる。すなわち、細線隣接画素の補正後の濃度は元々の細線画素の濃度を越えないので、細線の縁が必要以上に濃く(太く)印刷されることを防げる。また、細線画素の位置付近の潜像の電位を全体的により低電位にすることで、細線を適切な太さで印刷することができる。
なお図11(a)、(b)のルックアップテーブルを用いることで、細線部の画素および非細線部の画素の補正後の各濃度は、各濃度の和が細線部の画素の補正前の濃度値よりも大きくなるように、決定される。
まず、ステップS701において、二値化処理部601は、細線画素判定部602と細線隣接画素判定部603にて判定処理を行うための前処理として、5×5画素ウィンドウの画像に対して二値化処理を行う。二値化処理部601は、例えば、予め設定された閾値とウィンドウの各画素を比較することで、単純二値化処理を行う。例えば、予め設定された閾値が127だった場合、二値化処理部601は、画素の濃度値が64であれば値0を出力し、画素の濃度値が192であれば値1を出力する。なお本実施形態の二値化処理は閾値が固定の単純二値化だが、これに限定するものではない。例えば、閾値を注目画素と周辺画素の濃度値の差としてもよい。なお二値化処理後のウィンドウ画像の各画素は、細線画素判定部602および細線隣接画素判定部603に出力される。
次に、ステップS702において、細線画素判定部602は、二値化処理後のウィンドウ画像を解析することで、注目画素が細線画素であるかを判定する。
細線画素判定部602は、図9の(a)で示すように、二値化処理後の画像の注目画素p22が値1で、周辺画素p21と周辺画素p23とが共に値0の場合、注目画素p22は細線画素であると判定する。すなわち、この判定処理は、注目画素を中心とした1×3画素(画素p21、p22、p23)と、所定値パターン(0、1、0)とのパターンマッチングと等価である。
また、細線画素判定部602は、図9の(b)で示すように、二値化処理後の画像の注目画素p22が値1で、周辺画素p12と周辺画素p32とが共に値0の場合、注目画素p22は細線画素であると判定する。すなわち、この判定処理は、細線画素判定部602は、注目画素を中心とした3×1画素(画素p12、p22、p32)と、所定値パターン(0、1、0)とのパターンマッチングと等価である。
注目画素p22が細線画素であると判定されなかった場合は、細線画素判定部602は、画素選択部606と細線フラグ生成部607に細線画素フラグとして値1を出力する。注目画素p22が細線画素であると判定されなかった場合は、細線画素判定部602は、画素選択部606と細線フラグ生成部607に細線画素フラグとして値0を出力する。
なお、上述の判定処理では、両端の隣接画素が濃度値を持たないような注目画素を細線画素として判定しているが、線の形状を考慮した判定処理を行っても良い。例えば、縦線を判別するために、5×5画素ウィンドウ内の3×3画素(p11、p12、p13、p21、p22、p23、p31、p32、p33)において注目画素を中心に縦に並ぶ3画素(p12、p22、p32)のみが値1であるかを判定しても良い。あるいは斜め線を判別するために、上記の3×3画素において注目画素を中心に斜めに並ぶ3画素(p11、p22、p33)のみが値1であるかの判定でも良い。
また、上述の判定処理では、5×5画素ウィンドウの画像を解析することで、1画素幅以下(すなわち2画素未満)の幅を持つ部分を細線画素(すなわち細線部)として特定している。しかしながら、ウィンドウのサイズおよび上記の所定値パターンを適宜調整することで、2画素幅以下や3画素幅以下などの所定幅以下(あるいは所定幅未満)の幅を持つ部分を細線部(複数細線画素)として特定できる。
次に、ステップS703において、細線隣接画素判定部603は、二値化処理後のウィンドウ画像を解析することで、注目画素が細線に隣接する画素(細線隣接画素)であるかを判定する。また細線隣接画素判定部603は、この判定によってどの周辺画素が細線画素であるのかを示す情報を、細線隣接画素補正部605に通知する。
細線隣接画素判定部603は、図10の(a)で示すように、二値化処理後の画像の注目画素p22と周辺画素p20が値0で、周辺画素p21が値1の場合、周辺画素p21が細線画素であると判定する。そして、注目画素p22は細線に隣接した画素であると判定する。すなわち、この判定処理は、注目画素を端とした1×3画素(画素p20、p21、p22)と、所定値パターン(0、1、0のパターン)とのパターンマッチングと等価である。なお、この場合に、細線隣接画素判定部603は、周辺画素p20が細線画素であることを示す情報を、細線隣接画素補正部605に通知する。
細線隣接画素判定部603は、図10の(b)で示すように、二値化処理後の画像の注目画素p22と周辺画素p24が値0で、周辺画素p23が値1の場合、周辺画素p23が細線画素であると判定する。そして、注目画素p22は細線に隣接した画素であると判定する。すなわち、この判定処理は、注目画素を端とした1×3画素(画素p22、p23、p24)と、所定値パターン(0、1、0のパターン)とのパターンマッチングと等価である。なお、この場合に、細線隣接画素判定部603は、周辺画素p23が細線画素であることを示す情報を、細線隣接画素補正部605に通知する。
細線隣接画素判定部603は、図10の(c)で示すように、二値化処理後の画像の注目画素p22と周辺画素p02が値0で、周辺画素p12が値1の場合、周辺画素p12が細線画素であると判定する。そして、注目画素p22は細線に隣接した画素であると判定する。すなわち、この判定処理は、注目画素を端とした3×1画素(画素p02、p12、p22)と、所定値パターン(0、1、0のパターン)とのパターンマッチングと等価である。なお、この場合に、細線隣接画素判定部603は、周辺画素p12が細線画素であることを示す情報を、細線隣接画素補正部605に通知する。
細線隣接画素判定部603は、図10の(d)で示すように、二値化処理後の画像の注目画素p22と周辺画素p42が値0で、周辺画素p32が値1の場合、周辺画素p32が細線画素であると判定する。そして、注目画素p22は細線に隣接した画素であると判定する。すなわち、この判定処理は、注目画素を端とした3×1画素(画素p22、p32、p42)と、所定値パターン(0、1、0のパターン)とのパターンマッチングと等価である。なお、この場合に、細線隣接画素判定部603は、周辺画素p32が細線画素であることを示す情報を、細線隣接画素補正部605に通知する。
注目画素p22が細線隣接する画素であると判定された場合は、細線隣接画素判定部603は、画素選択部606と細線フラグ生成部607に細線隣接画素フラグとして値1を出力する。注目画素p22が細線隣接画素であると判定されなかった場合は、細線隣接画素判定部603は、画素選択部606と細線フラグ生成部607に細線隣接画素フラグとして値0を出力する。なお注目画素p22が細線隣接画素であると判定されなかった場合は、細線隣接画素判定部603は、デフォルトの周辺画素(例えばp21)が細線画素であることを示す情報をダミー情報として通知する。
なお、このS703での判定処理においても、線の形状を考慮した判定処理を行っても良い。例えば、縦線の隣接画素を判別するために、5×5画素ウィンドウ内の注目画素を中心とした3×3画素において、その注目画素p22に隣接する周辺画素p21を中心に縦に並ぶ3画素(p11、p21、p31)のみが値1であるかを判定しても良い。あるいは斜め線の隣接画素を判別するために、上記の3×3画素において周辺画素p21を中心に斜めに並ぶ3画素(p10、p21、p32)のみが値1であるかの判定でも良い。
次に、ステップS704において、細線画素補正部604は、注目画素の濃度値を入力とするルックアップテーブル(図11(a))を用いて、注目画素に対して第1の補正処理を行う。例えば細線画素補正部604は、注目画素の濃度値が153である場合は、ルックアップテーブルによって濃度値230を決定し、その決定された濃度値230で注目画素の濃度値を補正する。そして細線画素補正部604は、その補正結果を画素選択部606へ出力する。この第1の補正処理は、細線画素を補正する処理(細線画素補正処理)と呼ばれる。
次に、ステップS705において、細線隣接画素補正部605は、細線隣接画素判定部603から通知されたどの周辺画素が細線画素であるかを示す情報に基づいて、細線画素を特定する。そしてその特定された細線画素の濃度値を入力とするルックアップテーブル(図11(b))を用いて、注目画素に対して第2の補正処理を行う。ここでは例えば、細線隣接画素補正部605は、特定された細線画素の濃度値が153である場合は、ルックアップテーブルによって濃度値51を決定し、その決定された濃度値51で注目画素の濃度値を補正する。そして細線隣接画素補正部605は、その補正結果を画素選択部606へ出力する。この第2の補正処理は、細線隣接画素を補正する処理(細線隣接画素補正処理)と呼ばれる。ここで細線隣接画素補正部605は、細線隣接画素の濃度値が0であれば、その濃度値が大きくなるような濃度値をルックアップテーブルを用いて決定し、その決定された濃度値で補正を行う。
次にステップS706、S708、において、画素選択部606は、細線画素フラグと細線隣接画素フラグとに基づいて、注目画素の濃度値として出力すべき濃度値を次の3つから選択する。元のままの濃度値、細線画素補正処理後の濃度値、細線隣接画素補正処理後の濃度値の何れかが選択される。
ステップS706において、画素選択部606は、細線画素フラグを参照して、注目画素が細線画素であるかを判定する。細線画素フラグが1である場合は、注目画素は細線画素であるので、ステップS707において、画素選択部606は、細線画素補正部604からの出力(細線画素補正処理後の濃度値)を選択する。そして画素選択部606は、選択された出力を、ガンマ補正部303に出力する。
一方、細線画素フラグが0である場合は、注目画素は細線画素でないので、ステップS708において、画素選択部606は、細線隣接画素フラグを参照して、注目画素が細線隣接画素であるかを判定する。細線隣接画素フラグが1である場合は、注目画素は細線隣接画素であるので、ステップS709において、画素選択部606は、細線隣接画素補正部605からの出力(細線隣接画素補正処理後の濃度値)を選択する。そして画素選択部606は、選択された出力を、ガンマ補正部303に出力する。
一方、ここで細線隣接画素フラグが0である場合は、注目画素は細線画素でも細線隣接画素でもないので、ステップS710において、画素選択部606は、元のままの濃度値(5×5画素ウィンドウの注目画素の濃度値)を選択する。そして画素選択部606は、選択された出力を、ガンマ補正部303に出力する。
次に、ステップS711〜S713において、細線フラグ生成部607は、後段のスクリーン選択部306においてスクリーン処理を切り替えるための細線フラグを生成する。
ステップS711において、細線フラグ生成部607は、細線画素フラグおよび細線隣接画素フラグを参照し、注目画素が細線画素または細線隣接画素のいずれかであるかを判定する。
注目画素が細線画素または細線隣接画素のいずれかである場合は、細線フラグ生成部607は、ステップS712において、細線フラグに1を代入してスクリーン選択部306に出力する。
注目画素が細線画素でも細線隣接画素でもない場合は、細線フラグ生成部607は、ステップS713において、細線フラグに0を代入してスクリーン選択部306に出力する。
次に、ステップS714において、細線補正部302は、色変換部301のバッファに含まれている全ての画素について処理を行ったか判定し、全ての画素について処理を行った場合は細線補正処理を終了する。全ての画素について処理を行っていないと判定した場合は、注目画素を未処理の画素に変更して、ステップS701へ移行する。
[細線補正部での画像処理の様子]
次に、図12を用いて、本実施形態における細線補正部302で行われる画像処理について詳細に説明する。
図12(a)は、本実施形態における細線補正部302に入力される画像である。画像は、縦の細線1201と矩形のオブジェクト1202から構成されている。図中の数値は、画素の濃度値であり、数値が無い画素は濃度値0である。
図12(b)は、本実施形態における細線補正部302による補正との比較のための用いられる図であり、図12(a)に示される入力画像における細線を右に一画素太くした場合の出力画像を示したものである。細線1201の濃度値153が右に置換され、濃度値153の2画素幅の細線1203となっている。
図12(c)は、本実施形態における細線補正部302の出力画像を示した画像である。細線画素は、図11(a)のルックアップテーブルを用いて、細線画素補正部604によって、濃度値が153から230に補正される。細線隣接画素は、図11(b)のルックアップテーブルを用いて、細線隣接画素補正部605によって、濃度値が0から51に補正される。
ここで、図11(a)の細線画素に対する補正テーブルは、入力よりも大きくなるように設定する。すなわち、細線画素は、細線画素の元々の濃度よりも濃くなる。また、図11(b)の細線隣接画素に対する補正テーブルは、入力よりも小さくなるように設定を行う。すなわち、細線隣接画素は、隣接する細線画素の元々の濃度よりも薄くなる。そのため、図12(a)の濃度値153の1画素幅の縦線である細線1201は、図12(c)に示される細線1204に補正される。すなわち、補正後の細線1204における細線画素および細線画素(細線部)を挟む2つの細線隣接画素(非細線部)の連続3画素の濃度値の関係は、次のようになる。(1)連続3画素の中心画素が、補正前の濃度値よりも大きい濃度値をピークに持ち、且つ、(2)その中心画素の両端の画素が、補正後のピーク濃度値よりも小さい濃度値を持つ。そのため、補正前後で細線の重心は変わらずに、細線の濃度を濃くすることができる。また、本補正で細線隣接画素に小さな濃度値を持たせることによって、図14で後述するように弱い強度の露光を細線画素に重畳することができるので、細線の線幅と濃度をより細かく調整することが可能となる。
なお、オブジェクト1202は、細線と判定されないので、補正されない。
図12(d)は本実施形態における細線補正部302の細線フラグの画像を示した画像である。図から理解されるように、補正後の細線1204に対して細線フラグ1が付加され、それ以外には細線フラグ0が付加されたデータがスクリーン選択部306に出力される。
[スクリーン処理の様子]
次に、図13、14を用いて、本実施形態における画像処理部105で行われるスクリーン処理について詳細に説明する。
図13(a)は、細線補正部302にて細線補正処理が実施された出力画像である。前述のようにガンマ補正部303は入力値をそのまま出力値としている。
図13(b)は、図13(a)を入力とし、スクリーン処理部304において、集中型スクリーン処理が適用された画像である。細線に隣接する画素が大きく欠けている(濃度値が0である)ことが分かる。
図13(c)は、図13(a)を入力とし、細線用スクリーン処理部305において、平坦型スクリーン処理が適用された画像である。図13(b)に比べて、細線に隣接する画素が欠けていないことが分かる。
図13(d)は、スクリーン選択部305において、図12(d)の細線フラグに基づいて、細線画素または細線隣接画素は、図13(c)の画素を選択し、細線画素でも細線隣接画素でもない画素は、図13(b)の画素を選択した結果である。
図13(e)は、図12(b)の画像に平坦型スクリーン処理が適用された画像を示す。
図14(a)は、図13(e)の5画素分の画像データ1305に基づいて露光制御部201が感光ドラムを露光した場合の、感光ドラム上の電位の様子を示したものである。画素1306の画像データに基づく露光で形成されるべき電位1401は、破線で示される。画素1307の画像データに基づく露光で形成されるべき電位1402は、一点鎖線で示される。また画素1306および1307の2画素の画像データに基づく露光で形成される電位1403は、電位1401と電位1402を重畳(合成)したものとなる。図からわかるように、隣接する画素どうしの露光範囲(露光スポット径)は重複している。ここで、電位1408は、現像装置による現像バイアス電位Vdcであり、現像プロセスにおいては、現像バイアス電位Vdc以下に電位が低下した感光ドラム上の領域にトナーが付着し、静電潜像が現像される。すなわち、図14(a)に示される電位1403で、現像バイアス電位(Vdc)以上の部分の幅は65ミクロンとなり、この65ミクロン幅においてトナー像が現像される。
一方、図14(b)は、図13(d)の5画素分の画像データ1301に基づいて露光制御部201が感光ドラムを露光した場合の、感光ドラム上の電位の様子を示したものである。画素1302の画像データに基づく露光で形成されるべき電位1404は、点線で示される。画素1303の画像データに基づく露光で形成されるべき電位1406は、破線で示される。画素1304の画像データに基づく露光で形成されるべき電位1405は、一点鎖線で示される。そして、画素1302、1303、1304の3画素の画像データに基づく露光で形成される電位1407は、電位1404と電位1405と電位1406を重畳(合成)したものとなる。ここでも図14(a)と同様に露光スポット径は画素間で重畳している。ここでも現像バイアス電位Vdc以下の電位が低下した感光ドラム上の領域にトナーが付着するので、電位1407では、61ミクロン幅のトナー像が現像されることになる。
さてここで、図14(a)、(b)を比較すると、いずれも現像されるトナー像の幅、すなわち細線の幅はほぼ等しい。そのため、図12(b)(図13(e))の方法(細線画素の濃度値を右の細線隣接画素の濃度値にコピーする方法)を採っても、図14(a)に示されるように、本実施形態と同様に細線の幅を細かく調整することは可能である。しかしながら、図14(a)の電位1403のピークは−210Vであり、一方本実施形態の図14(b)の電位1407のピークは、−160Vである。すなわち本実施形態の方が、低電位であることが分かる。すなわち、本実施形態は、図12(b)の方法に比べて、細線の幅を細かく調整することのみならず、濃くはっきりとした細線を再現できる。
以上説明したように、画像データにおける細線部の画素と細線部に隣接する非細線部の画素とを、細線部のその画素の濃度に応じて制御することで、細線の幅も濃度も好適に制御することが可能となり、細線の視認性の向上を実現できる。
また、図14(a)のように、細線を右に一画素太らせた場合は、細線の重心が右にずれてしまっている。しかし、本実施形態によれば、図14(b)のように、細線部に隣接する、その細線部を挟む2つの非細線部の濃度値を等しい濃度値に制御するので、細線の重心を変えずに細線の幅と濃度の両方を制御することが可能となる。つまり、線画や文字を構成する線の向きなどに起因する重心ズレによる見た目の変化を防ぐことできる。
また、細線隣接画素は細線に隣接する画素としたが、もう1画素先の画素の濃度値も同様の方法で、細線画素の濃度値に応じて制御してもよいことは言うまでもない。
また、本実施形態では、単色を例に挙げて説明を行ったが、混色であっても同様である。それぞれの色で独立に細線補正処理を実施してもよい。色を独立で白抜き細線の補正を実施する場合は、細線と判定される色版とそうでない色版が混在すると、細線と判定されなかった色版に処理が適用されず、細線部に色が残ることがある。色が残ってしまうと色滲みとなってしまうので、白抜き細線補正で、すくなくともひとつの色版で細線と判定された場合は、他の全ての色版にも補正処理を適用すべきである。
[第2の実施形態]
以下、本発明の第2の実施形態に係る画像処理を説明する。
第1の実施形態では、細線画素と細線隣接画素の濃度値を、その細線画素の濃度値に応じて補正するというものであった。本実施形態では、細線隣接画素の濃度値を、細線画素の濃度値と、細線隣接画素を挟んでの細線画素から他のオブジェクトまでの距離とに応じて決定する処理を説明する。なお、以下では第1の実施形態との差分のみについて詳細に説明する。
次に本実施形態における細線補正部302で行われる細線補正処理について詳細に説明する。
図15は、細線補正部302のブロック図であり、第1の実施形態との違いは、細線距離判定部608を有することである。図16は、細線補正部302で行われる細線補正処理のフローチャートである。図17は、細線距離判定部608で行われる細線距離判定処理を説明するための図である。図18は、細線隣接画素補正部605で用いられる細線隣接画素補正処理の補正用のルックアップテーブルである。
ステップS1601において、二値化処理部601は、ステップS701と同様の処理を行いつつ、二値化処理後の5×5画素ウィンドウを細線距離判定部608にも出力する。
ステップS1602において、細線画素判定部602は、ステップS702と同様の処理を行う。
次に、ステップS1603において、細線隣接画素判定部603は、ステップS703と同様の処理を行いつつ、次の処理も行う。細線隣接画素判定部603は、どの周辺画素が細線画素であるのかを示す情報を細線距離判定部608に出力する。例えば、図10(a)の例であれば、細線隣接画素判定部603は、周辺画素p21が細線画素であることを示す情報を細線距離判定部608に入力する。
次に、ステップS1604において、細線距離判定部608は、二値化処理後の5×5画素ウィンドウの画像を参照して、ステップS1603で入力された情報に基づいて、注目画素を挟んでの細線(細線画素)から他のオブジェクトまでの距離を判定する。
例えば細線距離判定部608は、周辺画素p21が細線画素であることを示す情報が入力された場合、次の処理を行う。細線距離判定部608は、図17の(a)で示すように、二値化処理後の画像における周辺画素p23が値1である場合は、細線画素から他のオブジェクトまでの距離を示す細線距離情報として値1を画素減衰部609に出力する。また、周辺画素p23が値0であり、且つ、周辺画素p24が値1である場合は、細線距離判定部608は、細線距離情報として値2を画素減衰部609に出力する。そして、周辺画素p23およびp24が共に値0である場合は、細線距離判定部608は、細線距離情報として値3を画素減衰部609に出力する。
例えば細線距離判定部608は、周辺画素p23が細線画素であることを示す情報が入力された場合、次の処理を行う。細線距離判定部608は、図17の(b)で示すように、二値化処理後の画像における周辺画素p21が値1である場合は、細線距離情報として値1を画素減衰部609に出力する。また、周辺画素p21が値0であり、且つ、周辺画素p20が値1である場合は、細線距離判定部608は、細線距離情報として値2を画素減衰部609に出力する。そして、周辺画素p21およびp20が共に値0である場合は、細線距離判定部608は、細線距離情報として値3を画素減衰部609に出力する。
例えば細線距離判定部608は、周辺画素p12が細線画素であることを示す情報が入力された場合、次の処理を行う。細線距離判定部608は、図17の(c)で示すように、二値化処理後の画像における周辺画素p32が値1である場合は、細線画素から他のオブジェクトまでの距離を示す細線距離情報として値1を画素減衰部609に出力する。また、周辺画素p32が値0であり、且つ、周辺画素p42が値1である場合は、細線距離判定部608は、細線距離情報として値2を画素減衰部609に出力する。そして、周辺画素p32およびp42が共に値0である場合は、細線距離判定部608は、細線距離情報として値3を画素減衰部609に出力する。
例えば細線距離判定部608は、周辺画素p32が細線画素であることを示す情報が入力された場合、次の処理を行う。細線距離判定部608は、図17の(d)で示すように、二値化処理後の画像における周辺画素p12が値1である場合は、細線画素から他のオブジェクトまでの距離を示す細線距離情報として値1を画素減衰部609に出力する。また、周辺画素p12が値0であり、且つ、周辺画素p02が値1である場合は、細線距離判定部608は、細線距離情報として値2を画素減衰部609に出力する。そして、周辺画素p12およびp02が共に値0である場合は、細線距離判定部608は、細線距離情報として値3を画素減衰部609に出力する。
次に、ステップS1605において、細線画素補正部604は、ステップS704と同様の処理を行う。
次に、ステップS1606において、細線隣接画素補正部605は、ステップS705と同様の処理を行い、その処理結果である注目画素のデータ(濃度値)を画素減衰部609に入力する。
次に、ステップS1607において、画素減衰部609は、細線距離判定部608から入力された細線距離情報に基づいて、細線隣接画素補正部605から入力された注目画素(細線隣接画素)のデータ(濃度値)を減衰処理によって補正する。この減衰処理について説明する。
画素減衰部609は、図18に示される減衰処理用のルックアップテーブルを参照して、注目画素の濃度値を補正する。減衰処理用のルックアップテーブルは、細線距離情報を入力として、注目画素の濃度値を減衰するために用いられる補正率を求めるためのルックアップテーブルである。例えば、細線隣接画素である注目画素の濃度値が51、注目画素に隣接する細線画素の濃度値が153である場合を考える。
入力された細線距離情報が値1である場合、画素減衰部609は、減衰処理用のルックアップテーブルから補正率を0%と求め、注目画素の濃度値を0(=51×0(%))に減衰する。濃度値を減衰させる目的は、細線のオブジェクトと他のオブジェクトとの距離が1画素と近いので、細線隣接画素の濃度値を大きくすることでオブジェクト間の隙間の潰れを防止することである。
入力された細線距離情報が値2の場合は、画素減衰部609は、減衰処理用のルックアップテーブルから補正率を50%と求め、注目画素の濃度値を25(=51×50(%))に減衰する。ここで補正率を0〜100%の間の50%としているのは、細線隣接画素の濃度値を大きくはするが、濃度値を大きくしすぎることによるオブジェクト間の隙間の減少度合いを抑えるためである。入力された細線距離情報が値3の場合は、補正率は100%と求まるので、画素減衰部609は、注目画素の濃度値を減衰させずにそのままの濃度値とする。
以上の画素減衰部609による処理結果の注目画素のデータ(濃度値)は、画素選択部606へ入力される。第1の実施形態では、細線隣接画素補正部605から直接画素選択部606へデータが入力されていたが、この点が本実施例と異なる。
ステップS1608、S1609、S1610、S1612において、画素選択部606は、ステップS706、S707、S708、S710と同様の処理を行う。
なおステップS1611において、画素選択部606は、画素減衰部609からの出力(減衰処理後の濃度値)を選択して、ガンマ補正部303に出力する。
また、ステップS1613、S1614、S1615において、細線フラグ生成部607は、ステップS711、S712、S713と同様の処理を行う。
ステップS1616は、S714と同様の処理である。
次に、図19を用いて、本実施形態における細線補正部302で行われる画像処理について詳細に説明する。
図19(a)は、本実施形態における細線補正部302に入力される多値の画像データである。
図19(b)は、本実施形態における細線補正部302がスクリーン選択部306に出力する細線フラグを示す画像データである。
図19(c)は、減衰処理を実施しなかった場合の細線補正部302の出力画像である。
図19(d)は、減衰処理を実施した場合の細線補正部302の出力画像である。
図19(e)は、減衰処理を実施しなかった場合の細線用スクリーン処理部305で平坦型スクリーン処理が適用された画像である。
図19(f)は、減衰処理を実施した場合の細線用スクリーン処理部305で平坦型スクリーン処理が適用された画像である。
図19(d)の画素1910は、図19(a)の細線画素1901の細線隣接画素である。細線隣接画素1910は、細線画素1901に対して“右”に隣接するので、細線距離判定部608は、図17(a)を用いて説明した上述の判定処理を行う。図17(a)に示された画素p23と画素p24は、図19(a)の画素1902と画素1903に対応する。二値化処理された画素1902と画素1903のそれぞれの濃度値は値0なので、細線距離判定部608は、画素減衰部609に細線距離情報として値3を入力する。その結果、画素減衰部609は、補正率を100%に決定し、画素1910の濃度値として値51を画素選択部606に出力する。画素1910は細線隣接画素であるので、濃度値51がガンマ補正部303に出力される。
一方、図19(d)の画素1911は、図19(a)の細線画素1905の細線隣接画素である。細線隣接画素1911は、細線画素1905に対して“右”に隣接するので、細線距離判定部608は、図17(a)を用いて説明した上述の判定処理を行う。図17(a)に示された画素p23と画素p24は、図19(a)の画素1906と画素1907に対応する。二値化処理された画素1906の濃度値は値0、画素1907の濃度値は値1なので、細線距離判定部608は、画素減衰部609に細線距離情報として値2を入力する。その結果、画素減衰部609は、補正率を50%に決定し、画素1911の濃度値として値25を画素選択部606に出力する。そして、画素1911の濃度値25がガンマ補正部303に出力される。
また一方、図19(d)の画素1912は、図19(a)の細線画素1908の細線隣接画素である。細線隣接画素1912は、細線画素1908に対して“右”に隣接するので、細線距離判定部608は、図17(a)を用いて説明した上述の判定処理を行う。図17(a)に示された画素p23は、図19(a)の画素1909に対応する。二値化処理された画素1909の濃度値は値1なので、細線距離判定部608は、画素減衰部609に細線距離情報として値1を入力する。その結果、画素減衰部609は、補正率を0%に決定し、画素1912の濃度値として値0を画素選択部606に出力する。そして画素1912の濃度値0がガンマ補正部303に出力される。
以下、図20を用いて、最終的に感光ドラムに形成される電位の様子を説明する。
図20(a)は、図19(e)の5画素分の画像データ1913に基づいて露光制御部201が感光ドラムを露光した場合の、感光ドラム上の電位の様子を示したものである。図20(a)に記載されている5つの縦破線は、画像データ1913の5画素それぞれの画素中心の位置を示す。また、画素1(画像データ1913の左から1番目の画素)の濃度値に基づいて露光された場合の感光ドラム上に形成されるべき電位は、画素1の位置でピークを持つ一点鎖線で示される。同様に画素2〜5(画像データ1913の左から2〜5番目の画素)の濃度値に基づいて露光された場合の感光ドラム上に形成されるべきそれぞれの電位は、画素2〜5の位置でそれぞれのピークを持つ線で示される。
またこれら5画素の画像データ1913に基づく露光で形成される電位2001は、各画素の濃度値に対応する5つの電位を重畳(合成)したものとなる。ここでも第1の実施形態同様、隣接する画素どうしの露光範囲(露光スポット径)は重複している。また、電位2003は、現像装置による現像バイアス電位Vdcであり、現像プロセスにおいては、現像バイアス電位Vdc以下に電位が低下した感光ドラム上の領域にトナーが付着し、静電潜像が現像される。そのため、画素2〜4までの電位2001は現像バイアスVdc以下に電位が低下してしまっているので、元々の入力画像では別々の線であったはずの2つの細線の間にトナーが付着して線間の隙間が潰れてしまう。
一方、本実施形態における減衰処理を実施すれば、このような線間の潰れを防止できる。この様子を図20(b)に示す。
図20(b)は、図19(f)の5画素分の画像データ1914に基づいて露光制御部201が感光ドラムを露光した場合の、感光ドラム上の電位の様子を示したものである。図20(b)に記載されている5つの縦破線は、画像データ1914の5画素それぞれの画素中心の位置を示す。また、画素1(画像データ1914の左から1番目の画素)の濃度値に基づいて露光された場合の感光ドラム上に形成されるべき電位は、画素1の位置でピークを持つ一点鎖線で示される。同様に画素2、4、5(画像データ1914の左から2、4、5番目の画素)の濃度値に基づいて露光された場合の感光ドラム上に形成されるべきそれぞれの電位は、画素2、4、5の位置でそれぞれのピークを持つ線で示される。
この図20(b)と図20(a)との違いは、画素3の濃度値に基づく露光が行われていないことである。そのため、これら5画素の画像データ1914に基づく露光で形成される電位2002は、各画素の濃度値に対応する4つの電位を重畳(合成)したものとなるが、画素3の位置における電位2002は、現像バイアス電位Vdcよりも電位が高い。その結果、感光ドラム上の画素3の位置にはトナーが付着せず、2つの線間は潰れずに潜像の現像が行われる。また、図20(b)からもわかる通り、2つの線のそれぞれの細線隣接画素である画素1、5に小さい濃度値を付加しつつ、画素3には濃度値を0とすることで、それぞれの線の重心をわずかながら離すことができ、線の潰れをさらに抑制できる。
以上、説明したように、細線オブジェクトと、細線オブジェクトに最近接する他のオブジェクトとの距離に応じて、細線隣接画素の濃度値を補正することで、細線の濃度と幅を好適に制御しながら、補正による潰れを防止することが可能となる。
[第3の実施形態]
上述の実施形態では、黒い細線(有色細線)が白い背景(無色背景)に描画される状況を想定して説明した。すなわち、白背景中の黒細線の判定およびその補正を例に挙げて説明したが、細線画素判定部602と細線隣接画素判定部603の判定方法を逆転すれば、白い細線(無色細線)が黒い背景(有色背景)に描画されるような状況にも本発明を適用可能である。すなわち、黒背景中の白細線の判定および補正が可能となる。1画素の白細線を3画素の白細線に補正したい場合は、図11(b)のルックアップテーブルの出力値を全ての入力値に対して0に設定する。1画素の白細線を2画素に補正したい場合は、図11(b)のルックアップテーブルの出力値を全ての入力値に対して128(255の50%)に設定すればよい。また、細線とそれ以外でスクリーン処理を切り替えると、白細線の場合には、切り替わりが目立ってしまう。そこで、白細線に隣接する画素は、細線用スクリーン処理ではなく、スクリーン処理を適用するのが望ましい。
また以上では、本実施形態では、感光ドラム表面での露光スポットの径が主走査と副走査で同じ場合を説明したが、感光ドラム表面でのスポット径は主走査と副走査で同じであるとは限らない。つまり、縦の細線と横の細線では、細線の幅や濃度が異なるので、補正量も縦の細線と横の細線で変える必要がある。スポット径が縦と横で異なる場合は、細線画素補正部604を縦用と横用に用意し、図9(a)と図9(b)で補正量を変えることで、縦の細線と横の細線の太さ、濃度を同じに制御することが可能となる。細線隣接画素についても同様である。
[その他の実施形態]
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。