(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-02
(45)【発行日】2022-12-12
(54)【発明の名称】画像処理装置、画像処理方法及びプログラム
(51)【国際特許分類】
B41J 5/30 20060101AFI20221205BHJP
G06F 3/12 20060101ALI20221205BHJP
G06T 11/20 20060101ALI20221205BHJP
【FI】
B41J5/30 Z
G06F3/12 304
G06F3/12 308
G06F3/12 354
G06T11/20 300
(21)【出願番号】P 2018242853
(22)【出願日】2018-12-26
【審査請求日】2021-11-10
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100126240
【氏名又は名称】阿部 琢磨
(74)【代理人】
【識別番号】100124442
【氏名又は名称】黒岩 創吾
(72)【発明者】
【氏名】矢部 隆司
【審査官】佐藤 孝幸
(56)【参考文献】
【文献】特開平10-095141(JP,A)
【文献】特開2015-054459(JP,A)
【文献】特開平10-276333(JP,A)
【文献】特開平07-334672(JP,A)
【文献】米国特許出願公開第2010/0296750(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
B41J 5/30
G06F 3/12
G06T 11/20
(57)【特許請求の範囲】
【請求項1】
印刷データを受信する受信手段と、
ビットマップデータを生成するために、前記印刷データに基づいてレンダリング処理を実行する実行手段と、
印刷データで指定された所定の線幅より細い斜め線が含まれるビットマップデータを生成するために、前記レンダリング処理に所定のレンダリング
機能を使用するか否かを決定する決定手段と、
前記レンダリング処理によって生成された前記ビットマップデータにスムージング処理を実行するスムージング手段とを有し、
前記決定手段が前記レンダリング処理に前記
所定のレンダリング
機能を使用すると決定した場合、前記スムージング手段は前記ビットマップデータ内の斜め線を太らせるスムージング処理を実行し、前記決定手段が前記レンダリング処理に前記
所定のレンダリング
機能を使用しないと決定した場合、前記スムージング手段は前記ビットマップデータ内の斜め線を細らせるスムージング処理を実行することを特徴とする画像処理装置。
【請求項2】
前記スムージング手段は、前記ビットマップデータ内の第1の注目画素周辺の画素と所定の画素パターンとが一致する前記第1の注目画素にスムージング処理を実行することを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記斜め線を太らせるスムージング処理は、第2の注目画素周辺の画素と第2の画素パターンとが一致する前記第2の注目画素であり、前記第2の注目画素周辺の画素がライン属性を示す前記第2の注目画素にスムージング処理を実行することであることを特徴とする請求項2に記載の画像処理装置。
【請求項4】
前記斜め線を細らせるスムージング処理は、第3の注目画素周辺の画素と第3の画素パターンとが一致する前記第3の注目画素であり、ライン属性を示す前記第3の注目画素にスムージング処理を実行することであることを特徴とする請求項2または3に記載の画像処理装置。
【請求項5】
前記スムージング手段は、用紙に対する前記斜め線の角度が水平または垂直から遠いほどより強いスムージング処理を実行することを特徴とする請求項1乃至4の何れか1項に記載の画像処理装置。
【請求項6】
前記レンダリング
機能は、PostScriptのStrokeAdjust機能
であることを特徴とする請求項1乃至5の何れか1項に記載の画像処理装置。
【請求項7】
前記StrokeAdjust機能をオンするか、もしくはオフにするかの設定を受け付ける受付手段を有することを特徴とする請求項6に記載の画像処理装置。
【請求項8】
前記ビットマップデータに前記スムージング処理を実行することにより生成されるビットマップデータに基づいて、画像を用紙に印刷する印刷手段をさらに有することを特徴とする請求項1乃至7の何れか1項に記載の画像処理装置。
【請求項9】
前記決定手段が前記レンダリング処理に前記所定のレンダリング機能を使用すると決定した場合、前記スムージング手段は前記ビットマップデータ内の斜め線以外の線を太らせずに、斜め線を太らせるスムージング処理を実行し、前記決定手段が前記レンダリング処理に前記所定のレンダリング機能を使用しないと決定した場合、前記スムージング手段は前記ビットマップデータ内の斜め線以外の線を細らせずに、斜め線を細らせるスムージング処理を実行することを特徴とする請求項1乃至8の何れか1項に記載の画像処理装置。
【請求項10】
印刷データを受信する受信工程と、
ビットマップデータを生成するために、前記印刷データに基づいてレンダリング処理を実行する実行工程と、
印刷データで指定された所定の線幅より細い斜め線が含まれるビットマップデータを生成するために、前記レンダリング処理に所定のレンダリング
機能を使用するか否かを決定する決定工程と、
前記レンダリング処理によって生成された前記ビットマップデータにスムージング処理を実行するスムージング工程とを有し、
前記決定工程で前記レンダリング処理に前記
所定のレンダリング
機能を使用すると決定された場合、前記スムージング工程で、前記ビットマップデータ内の斜め線を太らせるスムージング処理を実行し、
前記決定工程で前記レンダリング処理に前記
所定のレンダリング
機能を使用しないと決定した場合、前記スムージング工程で前記ビットマップデータ内の前記斜め線を細らせるスムージング処理を実行することを特徴とする画像処理方法。
【請求項11】
請求項1乃至
9の何れか1項に記載の画像処理装置の各手段をコンピュータが実行するためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【0002】
画像処理装置がPostScript(以後PSと呼ぶ)で記述された印刷ジョブを実行する際のレンダリング処理には、PSのレンダリング条件が用いられる。PSのレンダリング条件で細線をレンダリングし印刷すると、同じ線幅が指定された描画コマンドであっても、線の描画指示された座標がピクセルにまたがっているか否かによって、描画される線の太さが異なる場合がある。
【0003】
特許文献1では、PSのStrokeAdjust(SA)機能を使用してレンダリング条件を変更し、同じ線幅が指定された描画コマンドを、どの描画位置で指定しても同じ太さの線を描画する技術が開示されている。
【0004】
また、特許文献2では、パターンマッチングを行い、段差部のパターンにスムージング処理を行う技術が開示されている。また、線を太らせるか、細らせるかはユーザにより指示される。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2012-234454号公報
【文献】特開平7-334672号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
SA機能をオフにした際のレンダリング条件でレンダリング処理が行われると、PSの描画コマンドで描画指示された線が、用紙に対して垂直・水平に描画された時の太さより、用紙に対して斜めに描画された時の太さが太くなる。
【0007】
一方、SA機能をオンにした際のレンダリング条件でレンダリング処理が行われると、PSの描画コマンドで描画指示された線が、用紙に対して垂直・水平に描画された時の太さより、用紙に対して斜めに描画された時の太さが細くなる。
【0008】
特許文献2の方法を使用すれば、レンダリング処理が行われた後に、ユーザの指示により用紙に対して斜めに描画される線を太くしたり、細くしたりすることができる。しかし、SA機能がオンになっている時にユーザは線を太らせる指示、SA機能がオフになっている時にユーザは線を細らせる指示をする必要があり、SA機能の設定に基づいて指示をする必要があるため、煩わしい。また、例えば、SA機能がオンになっている時にユーザが線を細らせる指示をすると、ユーザが意図した結果を得られない。SA機能がオフになっている時にユーザが線を太らせる指示をした場合も同様である。
【0009】
本発明は上記の課題に鑑みてなされたものであり、レンダリング処理に所定のレンダリング機能を使用すると決定した場合、ビットマップデータ内の斜め線を太らせるスムージング処理を実行し、レンダリング処理に所定のレンダリング機能を使用しないと決定した場合、ビットマップデータ内の斜め線を細らせるスムージング処理を実行することを目的とする。
【課題を解決するための手段】
【0010】
本発明の画像処理装置は、印刷データを受信する受信手段と、ビットマップデータを生成するために、前記印刷データに基づいてレンダリング処理を実行する実行手段と、印刷データで指定された所定の線幅より細い斜め線が含まれるビットマップデータを生成するために、前記レンダリング処理に所定のレンダリング機能を使用するか否かを決定する決定手段と、前記レンダリング処理によって生成された前記ビットマップデータにスムージング処理を実行するスムージング手段とを有し、前記決定手段が前記レンダリング処理に前記所定のレンダリング機能を使用すると決定した場合、前記スムージング手段は前記ビットマップデータ内の斜め線を太らせるスムージング処理を実行し、前記決定手段が前記レンダリング処理に前記所定のレンダリング機能を使用しないと決定した場合、前記スムージング手段は前記ビットマップデータ内の斜め線を細らせるスムージング処理を実行することを特徴とする。
【発明の効果】
【0011】
レンダリング処理に所定のレンダリング機能を使用すると決定した場合、ビットマップデータ内の斜め線を太らせるスムージング処理を実行し、レンダリング処理に所定のレンダリング機能を使用しないと決定した場合、ビットマップデータ内の斜め線を細らせるスムージング処理を実行することができる。
【図面の簡単な説明】
【0012】
【
図2】MFP120の画像処理部125の構成の一例を示す図
【
図3】PDLデータからビットマップデータを生成するまでの処理の一例を示すフローチャート
【
図4】StrokeAdjust機能の設定画面の一例を示す図
【
図5】異なるレンダリング条件のレンダリング処理で生成されたビットマップデータの一例を示す図
【
図6】エッジ補正処理部202の構成の一例を示す図
【
図7】エッジ補正処理の切替え処理の一例を示すフローチャート
【
図8】スムージング処理の一例を示すフローチャート
【
図9】エッジ補正判定部605で「通常処理」と判定された際のスムージング処理の一例を示すフローチャート
【
図10】2値化データとパターンマッチングするためのパターンの一例を示す図
【
図11】ビットマップデータと属性データの一例を示す図
【
図13】属性判定部603で判定された結果の一例を示した図
【
図14】
図11(a)の黒の部分がラインではなく、グラフィック属性であるときの属性データを示す図
【
図15】
図11(a)の線がグラフィック属性である場合に、従来通りの通常処理のスムージング処理を行う一例を示す図
【
図16】ビットマップデータと属性データの一例を示す図
【
図18】スムージング処理部の判定結果とスムージング処理後のビットマップデータの一例を示す図
【
図19】
図16(a)の黒の部分がラインではなく、グラフィック属性であるときの属性データを示す図
【
図20】スムージング処理部の判定結果とスムージング処理後のビットマップデータの一例を示す図
【
図21】スムージング処理時のビットマップデータの一例を示す図
【
図22】エッジ補正判定部605で判定された判定結果に基づいて、スムージング処理後の濃度変換処理を切り替える処理の一例を示すフローチャート
【
図23】SA機能がOFFでライン属性のビットマップデータを濃度補正処理した後のビットマップデータを示す図
【
図24】SA機能がONでライン属性のビットマップデータを濃度補正処理した後のビットマップデータを示す図
【発明を実施するための形態】
【0013】
以下、本発明を実施するための形態について図面を用いて説明する。なお、以下の実施例において示す構成は一例であり本発明は図示された構成に限定されるものではない。
【実施例1】
【0014】
図1は、印刷システムの構成の一例を示す図である。本実施例の印刷システムは、情報処理装置の一例であるPC110、画像処理装置の一例であるMFP(Multi Function Peripheral)120、LAN(Local Area Network)130から構成される。MFP120は、PC110とLAN130を介して接続されている。
【0015】
ユーザからPC110のプリンタドライバを介して印刷指示を受けることにより、PC110はアプリケーションデータをMFP120に合わせたPDLデータに変換し、変換したPDLデータをMFP120にLAN130を介して送信する。ここで、PDLとはPage Description Launguageである。MFP120はLAN130を介して受信したPDLデータに基づいて印刷処理を実行する。
【0016】
MFP120は、CPU121、ROM122、RAM123、HDD129、UI表示部124、画像処理部125、プリント部126、ネットワークI/F127およびバス128を備える。
【0017】
CPU121は、MFP120を統括的に制御する。なお、CPU121はバス128により各種ハードウェアに信号を送り、他のハードウェアと相互にデータ通信を行うことを実現する。
【0018】
またMFP120のCPU121は、ROM122に記憶された制御プログラムに従ってMFP120の動作を制御する。より詳細には、MFP120の制御を行うオペレーティングシステム(OS)と、ハードウェアを制御するためのドライバプログラムをCPU121が実行する。そしてOS上に配置されたアプリケーションプログラムらが相互に動作することにより、ユーザの所望する機能の動作、制御が行われる。これらのOSや各種プログラムはROM122に記憶され、RAM123において読み出されることで実行される。
【0019】
ROM122はCPU121が使用するプログラムや各種データを記憶するためのメモリである。RAM123は、プログラムや、CPU121が演算に用いるデータを一時的に記憶するためのワークメモリである。またMFP内で生成する中間データ、レンダリング処理を行う際の作業領域であるワーク領域や、入力された画像データを一時記憶するためのメモリでもある。HDD129は、各種データや各種プログラム等を記憶する記憶装置である。
【0020】
UI(User Interface)表示部124は、MFP120を操作するため画面等を表示する表示部である。また、タッチパネル等のMFP120をユーザによる操作や入力を受け付ける所定の受付手段であってもよい。
【0021】
画像処理部125は、ビットマップデータに基づいて印刷するための画像処理を行う。画像処理部の詳細については、
図2で説明する。
【0022】
プリンタ部126は、受信した画像データに基づいて、画像を用紙に印刷する。
【0023】
ネットワークI/F127は、例えばEthernetのような有線LAN通信を行うためのネットワークI/Fである。なお、このネットワークI/F127は無線LAN通信を行うためのネットワークI/Fであっても良いし、USB-LANI/F等でもよい。
【0024】
本実施例のMFP120のCPU121は、受信したPDLデータを解釈し、レンダリング処理を実行し、ビットマップデータを生成する。なお、レンダリング処理は、CPU121がソフトウェアを実行することで行っているが、ハードウェアでレンダリングを行ってもよい。
【0025】
また、レンダリング処理には複数ルールがあり、ルールを変更することで変換されるビットマップデータが変わる。
【0026】
レンダリング処理を行うことで、1画素あたり複数の色成分を持つビットマップデータを生成する。複数の色成分とは、グレースケールやRGB(赤、緑、青)などの色空間において独立した色成分のことである。ビットマップデータは、画素毎に1つの色成分につき8ビット(256階調)の値を持つ。すなわち、ビットマップデータは多値の画素を含む、多値の画像データである。
【0027】
またレンダリング処理では、画像データの他に、画像データの画素の属性を画素毎に示す属性データも生成される。この属性データは、画素がどの種類のオブジェクトに属するかを示し、例えば文字や線、図形、イメージ、非描画領域である「オブジェクトなし」といったオブジェクトの種類を示す値が画素の属性として記憶される。
【0028】
[画像処理部についての説明]
図2は、MFP120の画像処理部125の構成の一例を示す図である。画像処理部125の詳細について説明する。画像処理部125は、色変換部201、スムージング処理部202、ガンマ補正部203、中間調処理部204を有する。画像処理部125には、レンダリング処理を実行された多値のビットマップデータ205とそのビットマップデータのそれぞれの画素に対応した属性データ206が入力される。また、レンダリング処理で使用したルールを示すレンダリング条件データ207も併せて入力される。レンダリング条件とは、論理座標からMFP120の物理座標に変換する際の変換ルールである。
【0029】
色変換部201は、多値の画像データであるビットマップデータ205に対してグレースケール色空間あるいはRGB色空間からCMYK(シアン、マゼンタ、イエロー、ブラック)色空間への色変換処理を行う。この色変換処理によって1画素の1色成分あたり8ビット(256階調)の多値の濃度値(階調値、信号値とも呼ぶ)を持つ多値のビットマップデータが生成される。このビットマップデータは、CMYKの各色成分を有しており、CMYK画像データと呼ばれる。
【0030】
このCMYK画像データは色変換部201内の不図示のバッファに格納される。また、PS(Post Script)やPDF(Portable Document Format)のように画像データがCMYK色空間のPDLでは、色変換部201での色変換処理は行われず、CMYK画像データをエッジ補正処理部202に入力する。
【0031】
エッジ補正処理部202は、バッファに格納されたCMYK画像データを取得し、後述するエッジ補正処理を実行し、処理された画像データをガンマ補正部203に出力する。またスムージングFlagデータ208をガンマ補正部203と中間調処理部204に出力する。スムージングFlagデータ208とは、ガンマ補正部203と中間調処理部204において、処理を切り替えるために用いるデータであり、CMYK画像データのCMYK毎に異なる値を持つ。
【0032】
ガンマ補正部203は、エッジ補正処理部202により入力された画像データにガンマ補正処理を行い、ガンマ補正処理を行った画像データを中間調処理部204に出力する。このガンマ補正処理は画像データが記録紙へと転写された際の濃度特性が所望となるよう、一次元のルックアップテーブルを用いて、入力された画像データを補正する。補正に用いる一次元のルックアップテーブルは、中間調処理部204が持つスクリーン種別毎に記憶されており、スクリーン種別に応じて切り替えて用いられる。
【0033】
中間調処理部204は、スムージングFlagデータ208と属性データ206に従って、中間調処理を切替え、入力された画像データに選択された中間調処理を行い、生成したビットマップデータ(プリント画像データ)209をプリント部126へ出力する。たとえば、スムージング処理が行われた画素は中間調値になるので、中間調処理を切り替えずに通常のスクリーンを適用するとスクリーンのパターンが見えジャギーとなってしまう。そこで、スムージング処理が行われた画素に、ジャギーが見えない平坦化スクリーンを切替え適用するとジャギーは見えなくなる。
【0034】
ここで、SA機能をオフにした際のレンダリング条件でレンダリング処理が行われると、PSの描画コマンドで描画指示された線が、用紙に対して垂直・水平に描画された時の太さより、用紙に対して斜めに描画された時の太さが太くなる。
【0035】
一方、SA機能をオンにした際のレンダリング条件でレンダリング処理が行われると、PSの描画コマンドで描画指示された線が、用紙に対して垂直・水平に描画された時の太さより、用紙に対して斜めに描画された時の太さが細くなる。
【0036】
特許文献2の方法を使用すれば、レンダリング処理が行われた後に、ユーザの指示により用紙に対して斜めに描画される線を太くしたり、細くしたりすることができる。しかし、SA機能がオンになっている時にユーザは線を太らせる指示、SA機能がオフになっている時にユーザは線を細らせる指示をする必要があり、SA機能の設定に基づいて指示をする必要があるため、煩わしい。また、例えば、SA機能がオンになっている時にユーザが線を細らせる指示をすると、ユーザが意図した結果を得られない。SA機能がオフになっている時にユーザが線を太らせる指示をした場合も同様である。
【0037】
以上の課題を解決するために以下の処理を実行することで、画像処理装置において、レンダリング条件に基づいて、用紙に対して斜めに描画される線を太らせるか、細らせるかを切り替えることができる。
【0038】
別の課題として、PSのSA機能をオンにした際のレンダリング条件でレンダリング処理が行われると、PSの描画コマンドで描画指示された線が、用紙に対して垂直・水平に描画された時の太さより、用紙に対して斜めに描画された時の太さが細くなる。
【0039】
以上の課題を解決するために以下の処理を実行することで、PSのSA機能を使用する画像処理装置において、描画コマンドで指示された細幅に近い太さで斜めの線を描画できる。
【0040】
[PDLデータ処理フローの説明]
まず、
図3を用いて、PC110及びプリンタ120において、PDLデータから
図1の画像処理部125に入力するビットマップデータを作成するまでのPDLデータ処理フローを説明する。
図3は、PDLデータからビットマップデータを生成するまでの処理の一例を示すフローチャートである。CPU121がROM122に記憶されたプログラムをRAM123に読み出し、実行することで
図3のフローチャートの処理は実現される。
図3のフローは、MFP120の電源がオンになったことによって開始される。なお、本フローではPDLデータの一例として、PSデータを受信する例を説明する。
【0041】
S301において、CPU121は、PC110内でアプリケーションやプリンタドライバなどで作成されたプリントデータであるPSデータを受信する。なお、PSデータとは、プリントする際の様々なPSコマンドが集まった1ページまたは複数ページからなるプリントジョブを示している。
【0042】
S302において、CPU121は、各種プリント条件を決める制御コマンドを解釈し、その制御先に通知する。例えば、
図4に示すようなUIによって、PSのStrokeAdjust(SA)機能を使用するか、しないかの機能設定の制御コマンドを解釈して、PSインタプリタにPSのSA機能の設定を通知する。ここで、SA機能とは、ストロークの自動調整のパラメータを制御する機能である。
【0043】
図4はStrokeAdjust機能の設定画面の一例を示す図である。
図4の設定画面400は、MFP120のUI表示部124に表示される画面である。ユーザによりONボタン401が選択され、その後にOKボタン403が選択されることによりSA機能がオンに設定される。ユーザによりOFFボタン402が選択され、その後にOKボタン403が選択されることによりSA機能がオフに設定される。
【0044】
次に、S303において、CPU121は、レンダリング処理で生成されるビットマップデータと属性データを格納するPageメモリとレンダリング処理の際に使用されるレンダリング条件を初期化する。一般的にレンダリング条件とは、PDLデータのPDLコマンドが示す論理座標からビットマップデータが示す物理座標(デバイス固有の座標)に変換する際の変換ルールのことを示す。ここでのレンダリング条件は、PSのSA機能を示し、初期値は、OFFとする。なお、ここではレンダリング条件としてPSのSA機能としているが、これに限ったものではない。また、PageメモリはRAM123に特別確保された領域である。
【0045】
S304において、CPU121は、PSデータ内のPSコマンドを解釈する。
【0046】
S305において、CPU121は、S304で解釈したPSコマンドが、線を描画するコマンドのStrokeコマンドであるか否かを判定する。Strokeオペレータであると判定された場合は、S306に進む。そうでない場合は、S320に進む。
【0047】
S306において、CPU121はSA機能がオンになっているか否かを判定する。SA機能がオンであると判定された場合は、S307に進む。具体的には、PSデータ内に「setstrokeadjust true」のコマンドがあると判定された場合に、S307に進む。また、プリンタの機器設定として「setstrokeadjust true」となっているときは「setstrokeadjust true」のコマンドがないときもオンとなるため、falseと指定された時はじめてOFFとなる。
【0048】
S307において、CPU121はSAレンダリングしていることを記憶するため、ページのレンダリング条件としてSA機能ONであることを示す情報をRAM123に記憶する。なお、ここでは、説明を簡単にするため、SA機能の条件をページごとに記憶するが、画素毎に保持してもよい。
【0049】
S308において、CPU121はSAレンダリング処理を行い、ビットマップデータを生成する。SAレンダリング処理とは、StrokeAdjust機能のルールに基づいたStrokeコマンドの線の位置調整を行った後、レンダリング処理を行うことである。この際、ビットマップデータとして、画像データの他に、その画像データの各画素に対応するPSデータのコマンドの種類を示す属性データも生成される。ここで、生成されたビットマップデータ(画像データと属性データ)はPageメモリに記憶される。ここでは、PSデータのコマンドの種類がStrokeコマンドのときなので、属性データはライン属性となる。
【0050】
S320において、CPU121はレンダリングすることを記憶するため、ページのレンダリング条件としてSA機能OFFであることを示す情報をRAM123に記憶する。
【0051】
S321において、CPU121は、レンダリング処理を行う。SA機能のレンダリング条件に基づかず、PSの一般的に知られているレンダリング条件で処理を行う。レンダリング条件の違いに関しては後述する。また、この際、S308と同様に、ビットマップデータとして、画像データの他に、その画像データの各画素に対応するPSデータのコマンドの種類を示す属性データも生成される。ここで、生成されたビットマップデータ(画像データと属性データ)はPageメモリに記憶される。
【0052】
例えば、PSデータのコマンドの種類がキャラクタコマンドのとき、属性データは文字属性となる。PSデータのコマンドの種類がStrokeコマンドのとき、属性データはライン属性に、図形コマンドのときはグラフィック属性となる。PSデータのコマンドの種類がビットマップコマンドのとき、属性データはイメージ属性となる。また、PSデータ時のコマンドがない部分の属性データは、背景属性となる。これら属性データは後述する画像処理部125の処理の切替えに用いられる。
【0053】
S309において、CPU121は未処理のPSコマンドがあるか否かを判定する。未処理のPSコマンドがあると判定された場合はS304に戻り、次のPSデータコマンドを解釈する。そうでない場合はS310に進む。
【0054】
S311において、CPU121はPageメモリに記憶された1ページ分のビットマップデータ(画像データと属性データ)をHDD129に記憶する。
【0055】
S312において、CPU121はレンダリング条件を示す情報をページ毎にレンダリング条件データとしてHDD129に記憶する。
【0056】
S313において、CPU121は未処理のページデータがあるか否かを判定する。未処理のページデータがあると判定された場合は、S303に戻り、次のページの処理を続ける。そうでない場合は、処理を終了する。
【0057】
[レンダリングの条件(ルール)の違いの説明]
図5を用いて、S307とS320でのレンダリング条件の違いを説明する。
図5は異なるレンダリング条件のレンダリング処理で生成されたビットマップデータの一例を示す図である。
【0058】
PSコマンドの論理座標からレンダリング後の物理座標(デバイス座標)に変換は、StrokeAdjust(SA)機能がオン(true)になっているか、オフ(false)になっているかで異なる。
【0059】
図5(a)は、レンダリング処理を行われる前のPSデータの論理座標をPC110のモニターに表示している例を示している。水平方向の線501、垂直方法の線502、45度の線503がそれぞれ同じ太さになっている。
【0060】
図5(b)と
図5(c)は、レンダリング条件により、論理座標からデバイス固有の画素で表される物理座標のビットマップに変換された結果を示している。ここでは、プリンタで一般的使われている解像度が600dpiの例で示す。
【0061】
図5(a)に対して、解像度が600dpiのデバイス固有の座標にレンダリング処理した結果が
図5(b)と
図5(c)となり、線の太さや形状が異なる。
図5(b)は、SA機能がオンの場合を示し、
図5(c)は、SA機能がオフの場合を示す。
【0062】
SA機能は、PSのStrokeコマンドの論理座標から物理座標へ変換する際の誤差を減らす調整機能である。なお、PSのコマンドがStrokeコマンド以外のときは、SA機能は有効とならない。
【0063】
図5(b)と
図5(c)を比較すると、
図5(c)に比べ
図5(b)の方が、全体的に誤差が小さい。しかし、
図5(b)では水平方向の線504、垂直方法の線505と比較して、45度の線506が細くなっている。角度で太さを解析すると特に斜め45度(135度、225度、315度も同様)方向が細くなっている。
【0064】
一方、
図5(c)では水平方向の線507、垂直方法の線508と比較して、45度の線509が太くなっている。角度で太さを解析すると特に45度(135度、225度、315度も同様)方向がより太くなっている。同じ線幅指定の細線の角度を変えたコマンドを処理した際、レンダリング条件に応じて、同じ線幅指定の細線の線幅が角度に応じて変わってしまうことがわかる。
【0065】
[エッジ補正処理の切替え判断の説明]
エッジ補正処理部202について、
図6と
図7を用いて詳細に説明する。本処理は、レンダリング条件に応じて、同じ線幅指定の細線の線幅が角度に応じて変わってしまうことを解決するエッジ補正処理の切替え判断を行うものである。エッジ補正処理は、画像データとしてはCMYKがそれぞれ入力され、個々に処理される。ここでは説明を簡単にするためKすなわち黒に限定して説明する。なお、他のCMYでも同様の処理である。
【0066】
図6は、エッジ補正処理部202の構成の一例を示す図である。
図7は、エッジ補正処理の切替え処理の一例を示すフローチャートである。CPU121がROM122に記憶されたプログラムをRAM123に読み出し、実行することで
図7のフローチャートの処理は実現される。
図7のフローは、
図3の各レンダリング処理でビットマップデータが生成され、色変換部201で色変換処理が行われたことによって開始される。
【0067】
S701において、CPU121が2値化部601を制御し、2値化部601は入力されたビットマップデータ(画像データ)205の2値化処理を行い、2値化データを生成する。画素値が閾値より大きい値であれば1に、画素値が閾値と同じか小さい値であれば0にして2値化を行う。
【0068】
図15は線描画の一例を示す図である。
図15(a)、
図15(b)は、MFP120でレンダリングされた線描画の一例であり、SA機能がOFFである
図5(c)の45度線509の一部を示している。
図15(a)はレンダリング後のビットマップデータ、
図15(b)は属性データを表している。また、
図15(c)は、
図15(a)で示したビットマップデータ205が2値化部601で2値化されたビットマップの一例である。なお、
図15(b)の「B」は背景属性、「L」はライン属性を表している。
【0069】
S702において、CPU121がパターン判定部602を制御し、パターン判定部602が2値化データと予め設定されたパターンとのパターンマッチングを行い、パターンと一致するか否かを判定する。
図10は2値化データとパターンマッチングするためのパターンの一例を示す図であり、斜め45度の線を検出するパターンの例である。
図10(a)~(d)と
図10(i)~(l)は注目画素が0のパターンp0のパターン、
図10(e)~(h)と
図10(m)、(n)は注目画素が1のパターンp1のパターンの例を示している。補正したい角度が斜め45度の線であるため前記パターンをパターンマッチングで用いているが、補正したい角度の画素パターンを追加すれば同様にその角度を補正する効果が得られる。つまり、角度によって一致する画素パターンが異なり、その角度(画素パターン)ごとにスムージング処理の強さを変えてもよい。例えば、角度が90度、180度、270度に近いほど、スムージング処理の強さを弱くする。
【0070】
パターンマッチングは、2値化された画像データから5×5画素の25画素を抽出した部分と
図10のパターンと1つずつ画素の値を比較する。本実施例では、パターンの値が「2」以外の画素が画像データから抽出した部分と一致しているか否かを判定する。また、パターンの値が「2」の画素は、対応する位置の2値化された画像データ部の画素が何の値であっても一致したものと判定する。パターンと一致したと判定された場合はS703に進み、そうでない場合はS706に進む。
【0071】
S703において、CPU121はパターン判定部602で
図10のパターンと一致すると判定された画像データの中心の注目画素が「0」のパターンp0か、注目画素が「1」のパターンp1かを判定する。
【0072】
図12は、
図11(c)と
図10とのパターンマッチングの例を示す図である。たとえば、
図12(a)は、
図11(a)のビットマップデータと
図10(a)のパターンのマッチング例を示している。
図11はビットマップデータと属性データの一例を示す図である。
図12(a)の黒い部分が2値化後の「1」に相当するので、黒と「1」が一致し、さらに
図12(a)の白い部分が2値化後の「0」に相当するので、白と「0」が一致している。パターンの値が「2」以外の画素が注目画素と注目画素周辺の画素と一致しており、パターンの中心の注目画素1201が「0」なのでパターンp0と判定される。また、
図12(b)は、
図11(a)のビットマップデータと
図10(e)のパターンの例を示している。パターンの値が「2」以外の画素が注目画素と注目画素周辺の画素と一致しており、パターンの中心の注目画素1202が「1」なのでパターンp1と判定される。
図10のパターンと一致すると判定された画像データがパターンp0と一致すると判定された場合は、S704に進む。そうでない場合は、S705に進む。
【0073】
S704において、CPU121はパターンFlagをp0とする。S705において、CPU121はパターンFlagをp1とする。その結果、
図11(c)の2値化データは、
図12(c)のパターンFlagデータに変換され、エッジ補正判定部605に出力される。S706において、どのパターンとも一致していないため、CPU121はパターンFlagをnとする。
【0074】
S707において、CPU121は属性判定部603を制御し、属性判定部603はパターン判定部602でパターン一致すると判定された画像データの「1」の画素の属性データがラインか否かを判定する。
図13は、属性判定部603で判定された結果の一例を示した図である。
図11(b)のような属性データの場合は、
図13(a)となり、判定されたパターン部はすべてラインであることがわかる。「1」の画素の属性データがラインであると判定された場合は、S708に進む。そうでない場合は、S713に進む。
【0075】
図13(b)は、
図12(a)がStrokeコマンドではなく、グラフィックコマンドで指定された場合の一例を示す図である。
【0076】
S708において、CPU121はレンダリング条件判定部604を制御し、レンダリング条件判定部604はS308でレンダリング条件=SA機能ONとされたか否かを判定する。SA機能ONと判定された場合、S709に進む。そうでない場合、S711に進む。
【0077】
S709において、CPU121はエッジ補正判定部605を制御し、エッジ補正判定部605は以下の表1に示すようにエッジ補正判定として「太らせ処理」と判定する。
【0078】
【0079】
S710において、CPU121はスムージング処理部606を制御し、スムージング処理部606は「太らせ処理設定」でスムージング処理を実行する。この「太らせ処理設定」のスムージング処理により、SA機能がオンになっていることによる斜め線、特に斜め45度の線の細りを防ぐことが可能となる。「太らせ処理設定」のスムージング処理の詳細は後述する。
【0080】
S711において、CPU121はエッジ補正判定部605を制御し、エッジ補正判定部605は表1に示すようにエッジ補正判定として「細らせ処理」と判定する。
【0081】
S712において、CPU121はスムージング処理部606を制御し、スムージング処理部606は「細らせ処理設定」でスムージング処理を実行する。この「細らせ処理設定」のスムージング処理により、SA機能がオフになっていることによる斜め線、特に斜め45度の線の太りを防ぐことが可能となる。「太らせ処理設定」のスムージング処理の詳細は後述する。
【0082】
S713において、CPU121はエッジ補正判定部605を制御し、エッジ補正判定部605は表1に示すようにエッジ補正判定として「通常処理」と判定する。
【0083】
S714において、CPU121はスムージング処理部606を制御し、スムージング処理部606は「通常処理設定」でスムージング処理を実行する。この「通常処理設定」は、スムージング処理で薄くするところと濃くするところを同じ画素数にすることで、太らせも細らせも行わないような処理である。すなわち、太らせも、細らせも必要ない部分に、太らせも細らせも適用しない。
【0084】
S715において、CPU121はエッジ補正判定部605を制御し、エッジ補正判定部605は表1に示すようにエッジ補正判定を「しない」と判定する。
【0085】
S716において、CPU121はすべての5×5画素に対して処理が終了したか否かを判定する。終了したと判定された場合は処理を終了する。そうでない場合は、未処理の5×5画素に対して処理を繰り返す。
【0086】
[エッジ補正処理フローの説明]
スムージング処理に関して
図8、
図9を用いて説明する。まず、エッジ補正判定結果とパターンFlagに対応したスムージング処理を表2に示す。表2において、スムージング処理のSは、スムージング処理を「する」こと、すなわちスムージング処理を行うことを示す。一方、スムージング処理のNは、スムージング処理を「しない」こと、すなわちスムージング処理を行わないことを示す。
【0087】
【0088】
図8は、スムージング処理の一例を示すフローチャートである。
図8(a)はエッジ補正判定部605で「太らせ処理」と判定された際のスムージング処理の一例を示すフローチャートである。CPU121がROM122に記憶されたプログラムをRAM123に読み出し、実行することで
図8(a)のフローチャートの処理は実現される。
図8(a)のフローは、S709の処理が終了することによって開始される。
【0089】
S801において、CPU121はパターンFlagがp0か否かを判定する。パターンFlagがp0であると判定された場合は、S802に進む。そうでない場合、S804に進む。
【0090】
S802において、CPU121はスムージング処理部606を制御して、スムージング処理部606は、ビットマップデータ205にスムージング処理を行い、処理後のビットマップデータ607を出力する。
【0091】
S803において、CPU121はスムージング処理部606を制御して、スムージング処理部606は、スムージング処理を行った画素ごとにスムージングFlag608をONにする。
【0092】
S804において、CPU121はスムージング処理部606を制御して、スムージング処理部606は、ビットマップデータにスムージング処理を行わず、入力ビットマップデータの画素値をそのままビットマップデータ607として出力する。
【0093】
S805において、CPU121はスムージング処理部606を制御して、スムージング処理部606は、スムージング処理を行っていないので、処理対象の画素にはスムージングFlag608をOFFにする。
【0094】
太らせ処理設定時には、パターンFlagp0の部分のみスムージング処理を行う。パターンFlag0以外の部分は、入力の画像データをそのまま画素のデータとする。パターンFlagp0のパターンは注目画素部分の画像データが0の部分に相当し、スムージング処理によりデータ値が加算されるため、加算された部分が濃くなる、太らせ処理となる。
【0095】
図8(b)は、
図8(a)はエッジ補正判定部605で「細らせ処理」と判定された際のスムージング処理の一例を示すフローチャートである。CPU121がROM122に記憶されたプログラムをRAM123に読み出し、実行することで
図8(b)のフローチャートの処理は実現される。
図8(b)のフローは、S711の処理が終了することによって開始される。
【0096】
S811において、CPU121はパターンFlagがp0か否かを判定する。パターンFlagがp0であると判定された場合は、S8012に進む。そうでない場合、S814に進む。
【0097】
S812において、CPU121はスムージング処理部606を制御して、スムージング処理部606は、ビットマップデータにスムージング処理を行わず、入力ビットマップデータの画素値をそのままビットマップデータ607として出力する。
【0098】
S813において、CPU121はスムージング処理部606を制御して、スムージング処理部606は、スムージング処理を行っていないので、処理対象の画素にはスムージングFlag608をOFFにする。
【0099】
S814において、CPU121はスムージング処理部606を制御して、スムージング処理部606は、ビットマップデータ205にスムージング処理を行い、処理後のビットマップデータ607を出力する。
【0100】
S815において、CPU121はスムージング処理部606を制御して、スムージング処理部606は、スムージング処理を行った画素ごとにスムージングFlag608をONにする。
【0101】
細らせ処理設定時には、パターンFlagp1の部分のみスムージング処理を行う。パターンFlag1以外の部分は、入力の画像データをそのまま画素のデータとする。パターンFlagp1のパターンは注目画素部分の画像データが1の部分に相当し、スムージング処理によりデータ値が削減されるため、削減された部分が薄くなる、細らせ処理となる。
【0102】
図9はエッジ補正判定部605で「通常処理」と判定された際のスムージング処理の一例を示すフローチャートである。CPU121がROM122に記憶されたプログラムをRAM123に読み出し、実行することで
図9のフローチャートの処理は実現される。
図9のフローは、S713の処理が終了することによって開始される。
【0103】
S901において、CPU121はパターンFlagがp0か否かを判定する。パターンFlagがp0であると判定された場合は、S902に進む。そうでない場合、S904に進む。
【0104】
S902において、CPU121はスムージング処理部606を制御して、スムージング処理部606は、ビットマップデータ205にスムージング処理を行い、処理後のビットマップデータ607を出力する。
【0105】
S903において、CPU121はスムージング処理部606を制御して、スムージング処理部606は、スムージング処理を行った画素ごとにスムージングFlag608をONにする。
【0106】
S904において、CPU121はスムージング処理部606を制御して、スムージング処理部606は、ビットマップデータ205にスムージング処理を行い、処理後のビットマップデータ607を出力する。
【0107】
S905において、CPU121はスムージング処理部606を制御して、スムージング処理部606は、スムージング処理を行った画素ごとにスムージングFlag608をONにする。
【0108】
通常処理設定時には、パターンFlagp0の部分とパターンFlagp1の部分の両方にスムージング処理を行う。パターンFlagp0のパターンは注目画素部分の画像データが0の部分に相当し、スムージング処理によりデータ値が追加される。一方パターンFlagp1のパターンは注目画素部分の画像データが1の部分に相当し、スムージング処理によりデータ値が削減される。このようにデータ値の追加と削減の両方手適用されるため、濃くも薄くもなく太さが変化しない処理となる。
【0109】
[スムージング処理の説明]
図21を用いて、
図6のスムージング処理部606で行われるスムージング処理の具体例を示す。
図21はスムージング処理時のビットマップデータの一例を示す図である。
図21(a)は、スムージング処理で用いる注目画素2101のパターンFlagがp0の場合のビットマップデータを示す図である。一方、
図21(b)は、スムージング処理で用いる注目画素2102のパターンFlagがp1の場合のビットマップデータを示す図である。
【0110】
図21(c)は、
図21(a)のビットマップデータ内の注目画素2101にスムージング処理を適用した後のビットマップデータを示す。
【0111】
図21(d)は、
図21(b)のビットマップデータ内の注目画素2102にスムージング処理を適用した後のビットマップデータを示す。
【0112】
まず、
図21(a)では、注目画素2101を含む3×3画素の9画素の平均値、すなわち(0×6+255×3)/9=85をスムージング値とする。この結果、注目画素2001の白い部分の値は、白を示す「0」から「85」となり、白(0)と黒(255)の中間値が付加されたことにより白黒の段差が減り、画像のエッジ補正が行われる。よってスムージング処理が行われた結果として、ビットマップデータは
図21(c)の注目画素2103のようになる。
【0113】
一方、
図21(b)では、注目画素2102を含む3×3画素の9画素の平均値、すなわち(0×3+255×6)/9=170となる。この結果、注目画素2102の黒い部分の値は黒を示す「255」から「170」となる。白(0)と黒(255)の中間値に削減されたことにより、白黒の段差が減り、画像のエッジ補正が行われる。よってスムージング処理が行われた結果として、ビットマップデータは
図21(d)の注目画素2104のようになる。このスムージング処理の説明では、注目画素と周りの画素の9画素の平均値を求めているが、白黒の段差が減るスムージング処理であればこれに限ったものではない。
【0114】
[レンダリングの条件(ルール)による太らせ処理例]
レンダリング条件であるSA機能がONであり、ライン属性である
図5(b)のようなビットマップデータがエッジ補正処理部202に入力されたときのデータの変化の流れの具体例を
図7と
図8(a)のフローに沿って説明する。
【0115】
図16はビットマップデータと属性データの一例を示す図である。
図5(b)の斜め45度の線506の一部を拡大したビットマップデータが
図16(a)、そのビットマップデータに対応する属性データが
図16(b)である。なお、
図16(b)の「B」は背景属性、「L」はライン属性を表している。
【0116】
まず、CPU121は2値化部601を制御し、2値化部601は
図16(a)のビットマップデータを2値化処理する。
図16(c)は、
図16(a)のビットマップデータを2値化したビットマップデータである。
【0117】
次に、CPU121はパターン判定部602を制御し、パターン判定部602は、
図16(c)と
図10のパターンとパターンマッチングを行う。
図17は、
図16(c)と
図10とのパターンマッチングの一例を示す図である。
【0118】
図17(a)の1701の画素に関しては、
図10(i)のパターンp0とマッチングし、
図17(b)の1702の画素に関しては、
図10(m)パターンp1とマッチングする。
図17(c)は、パターンFlagの状況を示している。
【0119】
次に、CPU121はエッジ補正判定部605を制御し、エッジ補正判定部605は、表1よりパターンFlag部は「太らせ処理」と判定する。
【0120】
次に、CPU121はスムージング処理部606を制御し、スムージング処理部606は、表2の「太らせ処理」設定で、
図17(c)のパターンFlagを用いてスムージング処理を切替える。
【0121】
図18はスムージング処理部の判定結果とスムージング処理後のビットマップデータの一例を示す図である。
図18(a)は、表2と
図17(c)のパターンFlagを用いて、スムージング処理を行うか否かを判定した結果を示す図である。スムージング処理を行う部分をS、スムージング処理を行わない部分をNで表している。また、
図18(b)は、
図16(a)にスムージング処理を適用した後のビットマップデータを表している。
図16(a)と
図18(b)を比較すると、
図17(c)のパターンFlagがp0の部分にデータ追加され、元の
図16(a)より太くなっている。
【0122】
一方、
図19は
図16(a)の黒の部分がラインではなく、グラフィック属性であるときの属性データを示す図である。なお、
図19の「B」は背景属性、「G」はグラフィック属性を表している。
図20はスムージング処理部の判定結果とスムージング処理後のビットマップデータの一例を示す図である。
図20(a)は、グラフィック属性の場合に、通常処理設定のスムージング処理を行うか否かを判定した結果を示している。
図20(b)は、通常処理設定のスムージング処理が適用された後のビットマップデータを示している。
【0123】
SA機能がONでライン属性のビットマップデータが通常処理設定のスムージング処理を行う結果より太くなることで、
図5(a)のモニターに表示している状態に近づく効果が得られる。
【0124】
以上の処理を実行することで、PSのStrokeAdjust機能を使用する画像処理装置において、描画コマンドで指示された細幅に近い太さで斜めの線を描画できる。
【0125】
[レンダリングの条件(ルール)による細らせ処理例]
SA機能がOFFでライン属性の
図5(c)のようなビットマップデータがエッジ補正処理に入力されたときのデータの変化の流れの具体例を
図7と
図9のフローに沿って説明する。
【0126】
図11(a)は
図5(c)の斜め45度の線509の一部を拡大したビットマップデータであり、そのビットマップデータに対応する属性データが
図11(b)である。なお、
図15(b)の「B」は背景属性、「L」はライン属性を表している。
【0127】
まず、CPU121は2値化部601を制御し、2値化部601は
図11(a)を2値化処理する。
図11(c)は、
図11(a)を2値化処理したビットマップデータである。
【0128】
次に、CPU121はパターン判定部602を制御し、パターン判定部602は
図11(c)と
図10のパターンとパターンマッチングを行う。
図12(a)の1201の画素に関しては、
図10(a)のパターンp0とマッチングし、
図12(b)の1202の画素に関しては、
図12(e)のパターンp1とマッチングする。
図12(c)は、
図11(a)のパターンFlagの状況を示している。
【0129】
次に、CPU121はエッジ補正判定部605を制御し、エッジ補正判定部605は、表1よりパターンFlag部は「細らせ処理」と判定する。
【0130】
次に、CPU121はスムージング処理部606を制御し、スムージング処理部606は、表2の「細らせ処理」設定で、
図12(c)のパターンFlagを用いてスムージング処理を切替える。
【0131】
図13(a)は、表2と
図12(c)のパターンFlagを用いて、スムージング処理を行うか否かを判定した結果を示す図である。スムージング処理を行う部分をS、スムージング処理を行わない部分をNで表したものである。
【0132】
また、
図13(b)は、
図11(a)にスムージング処理を適用した後のビットマップデータを表している。
図11(a)と
図13(b)を比較すると、
図12(c)のパターンFlagがp1の部分のデータが削減され、元の
図11(a)より細くなっている。
【0133】
一方、
図14は
図11(a)の黒の部分がラインではなく、グラフィック属性であるときの属性データを示す図である。なお、
図14の「B」は背景属性、「G」はグラフィック属性を表している。
【0134】
図15は、
図11(a)の線がグラフィック属性である場合に、従来通りの通常処理のスムージング処理を行う一例を示す図である。
図15(a)は、
図11(a)の線がグラフィック属性である場合に、表2と
図12(c)のパターンFlagを用いて、スムージング処理を行うか否かを判定した結果を示す図である。
図15(b)は、通常処理設定のスムージング処理が適用された後のビットマップデータを示す図である。
【0135】
SA機能がOFFでライン属性のビットマップデータが通常処理設定のスムージング処理を行う結果より細くなることで、
図5(a)のモニターに表示している状態に近づく効果が得られる。
【0136】
以上の処理を実行することで、画像処理装置において、レンダリング条件によって、用紙に対して斜めに描画される線を太らせるか、細らせるかを切り替えることができる。
【実施例2】
【0137】
実施例1では、レンダリング条件に応じてスムージング処理を適用する画素を切り替える例で説明したが、実施例2ではレンダリング条件に応じてスムージング処理での画素値の濃度変換処理を切り替える例を実施例1と差分を主に説明する。
【0138】
図22はエッジ補正判定部605で判定された判定結果に基づいて、スムージング処理後の濃度変換処理を切り替える処理の一例を示すフローチャートである。CPU121がROM122に記憶されたプログラムをRAM123に読み出し、実行することで
図22のフローチャートの処理は実現される。
図22のフローは、S709またはS711またはS713の処理が終了することによって開始される。
【0139】
まず、S2201において、CPU121はパターンFlagがp0か否かを判定する。パターンFlagがp0であると判定された場合は、S2202に進む。そうでない場合はS2205に進む。
【0140】
次に、S2202において、CPU121はスムージング処理部606を制御し、スムージング処理部606は、ビットマップデータにスムージング処理を行い、処理後のビットマップデータ607を出力する。
【0141】
S2203において、CPU121はスムージング処理部606を制御し、スムージング処理部606は、エッジ補正判定部605で判定された判定結果に応じて、下記表3の設定で、濃度変換処理0に変換テーブルを切り替える。
【0142】
【0143】
表3は、エッジ補正判定部605の判定結果のエッジ補正、パターン判定部602のパターンFlagに対応したスムージング処理、濃度変換処理0、濃度変換処理1の設定を表している。濃度変換処理0はパターンFlagがp0のパターンの注目画素が0の部分のスムージング処理後に適用する濃度変換である。例えば
図21(c)の2103に適用する濃度変換である。例えば、エッジ補正判定結果が「太らせ処理」の場合は、濃度を濃くする設定(up0)にし、濃くすることで太くみえるようになる。一方、エッジ補正判定結果が「細らせ処理」の場合は、濃度を薄くする設定(down0)にし、薄くすることで細くみえるようになる。また、エッジ補正判定結果が「通常処理」の場合は、濃度を変えない設定(normal0)にし、太さがかわらないようになる。
【0144】
S2204において、CPU121はスムージング処理を行った画素のスムージングFlag608をONにする。
【0145】
S2205において、CPU121はスムージング処理部606を制御し、スムージング処理部606は、ビットマップデータにスムージング処理を行い、処理後のビットマップデータ607を出力する。
【0146】
S2206において、CPU121はスムージング処理部606を制御し、スムージング処理部606は、エッジ補正判定部605で判定された判定結果に応じて、表3の設定で、濃度変換処理1に変換テーブルを切り替える。
【0147】
濃度変換処理1はパターンFlagがp1のパターンの注目画素が1の部分のスムージング処理後に適用する濃度変換である。例えば
図21(d)の2104に適用する濃度変換である。エッジ補正判定結果が「太らせ処理」の場合は、濃度を濃くする設定(up1)にし、濃くすることで太くみえるようになる。一方、エッジ補正判定結果が「細らせ処理」の場合は、濃度を薄くする設定(down1)にし、薄くすることで細くみえるようになる。また、エッジ補正判定結果が「通常処理」の場合は、濃度を変えない設定(normal1)にし、太さが変わらないようになる。
【0148】
S2207において、
図6のスムージング処理部は、スムージング処理を行った画素にはスムージングFlag608をONにして出力する。
【0149】
図23は、SA機能がOFFでライン属性のビットマップデータを濃度補正処理した後のビットマップデータを示す図である。
図15(b)は、パターンFlagがp0、p1の両方にスムージング処理を行ったビットマップデータを示している。
図15(b)に濃度変換処理で薄くした結果が
図23となる。スムージング処理設定の「通常処理」より薄くすることで細らせ処理が達成されている。
【0150】
図24は、SA機能がONでライン属性のビットマップデータを濃度補正処理した後のビットマップデータを示す図である。
図20(b)は、パターンFlagがp0、p1の両方にスムージング処理を行ったビットマップデータを示している。
図20(b)に濃度変換処理で濃くした結果が
図24となる。スムージング処理設定の「通常処理」より濃くすることで太らせ処理が達成されている。
【0151】
実施例2では、エッジ補正判定部605で判定された判定結果によらず、パターンFlagがp0、p1の両方の場合にスムージング処理を行う。その後、エッジ補正判定部605で判定された判定結果に応じて、スムージング処理後のビットマップデータの濃度を調整することにより、実施例1と同様の「太らせ処理」、「細らせ処理」、「通常処理」を実現している。
【0152】
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給する。そして、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0153】
120 MFP
121 CPU
125 画像処理部