以下、図面を参照して、本発明の一実施形態に係る画像形成装置における画像処理の詳細について説明する。
<実施形態1>
図1は、本発明に係る画像形成装置のブロック図である。以下、本実施形態では、画像形成装置として、複合機を想定しているが、複合機だけでなく、カラープリンタのような他の印刷デバイスを、画像形成装置として用いても良い。
まず、本実施形態に係る画像形成装置の構造について、以下で説明する。
図1に示されているように、本発明に係る画像形成装置は、画像読取部100、画像受信部101、各種画像処理を行う画像処理部102、記憶部105、CPU 106及び画像出力部103を有する。
なお、本発明に係る画像形成装置は、LANやインターネット等のネットワークを介して、画像データを管理するサーバや、画像形成装置に対してプリントの実行を指示するパーソナルコンピュータ(PC)とも接続可能である。また、本発明に係る画像形成装置は、外部通信路104と、画像受信部101を介して接続可能である。
以下で、図1に示されている画像形成装置の各構成の機能について説明する。
画像読取部100は、原稿画像を読み取る。例えば、画像読取部100は、RGBのカラー画像を読み取る。
画像読取部100により読み取られた、カラー画像のRGBデータは、画像処理部102に送られる。
画像処理部102のスキャナ画像処理部102_0は、RGBデータのカラー信号に対して、画像処理を実行する。スキャナ画像処理部102_0の実行する画像処理は、例えば、公知のシェーディング補正、像域分離処理、色変換である。
一方、画像受信部101は、PDL画像データを受信する。画像受信部101により受信されたPDL画像テータは、プリンタ画像処理部102_1に送られる。なお、画像受信部101は、PDL画像データに限らず、画像を構成する個々の画像に対応付けられたコマンド群で表現される任意の画像データを受信することができる。
プリンタ画像処理部102_1のインタープリタは、PDL画像データのコマンド群を解釈し、中間コードを出力する。
そして、プリンタ画像処理部102_1のRIP(ラスターイメージプロセッサ/不図示)は、中間コードからビットマップ画像へと展開し、コマンド群に含まれる属性情報から画素毎の属性情報を展開する。ここで、属性情報は、例えば、グラフィック属性、色属性、自然画像属性、文字属性及び細線属性である。
画像変形処理部102_2は、スキャナ画像処理部102_0、プリンタ画像処理部102_1、レジスタ設定部107から後述するトラッピングの幅を設定するためデータを受け付け、画像を変形する処理を行う。
画像変形処理部102_2に含まれる画像変形部102_4は、画像の形状を変える処理を実行する。画像変形部102_4が実行する処理は、例えば、トラッピングや、ブラックオーバープリント、画像を太らせたり、細らせたりする処理である。
画像変形処理部102_2に含まれるシフト処理部102_5は、画像の書き出しタイミングを調整する処理を実行する。
他の画像処理部102_3は、画像変形処理部102_2からデータを受け取り、画像変形処理部102_2から受け取ったデータに対して、所定の色処理やディザ処理を行う。
上記では、画像変形処理部102_2が、画像を変形する処理を実行する場合について説明した。しかし、プリンタ画像処理部102_1に含まれる画像変形処理部’102_2’の画像変形部’102_4’が画像を変形する処理を実行しても良い。また、プリンタ画像処理部102_1に含まれるシフト処理部102_5’が、画像の書き出しタイミングを調整する処理を実行しても良い。
以下で、図1に示されている画像形成装置の記憶部105、CPU 106及び画像出力部103の構成及び機能について説明する。
記憶部105は、ランダムアクセスメモリ(RAM)や読み出し専用メモリ(ROM)のような記憶媒体から構成される。記憶部105では、例えば、RAMがデータや各種情報を格納する領域として用いられたり、CPU 106の作業領域として用いられる。一方、記憶部105では、例えば、ROMは、各種制御プログラムを格納する領域として用いられる。
また、CPU 106は、記憶部105に含まれるROMに格納されたプログラムに従って各種処理を判断、制御するものとして用いられる。
画像出力部103は、画像を出力する。画像出力部103は、例えば、印刷用紙に画像を形成して、出力する。
以上では、RIP後のビットマップデータに対して変形処理が行われるものとして説明したが、トラッピングやブラックオーバープリントなどの処理は、RIP内で画像データに対して実行されても良い。
RIP内で画像データに対して変形処理が行われる場合には、画像変形処理部’102_2’ の画像変形部’102_4’がトラッピングやブラックオーバープリントのような処理を実行する。
図12は、図1の画像形成装置の画像読取部100、画像受信部101及び画像出力部103のハードウェアを示す図であり、図1の画像形成装置の断面図を示している。以下で、図1を参照し説明した画像形成装置のより詳細な構成について、図12を参照して説明する。
本発明に係る画像形成装置は、コピー/プリンタ/FAXのそれぞれの機能を有している。
図12に示されているように、本発明に係る画像形成装置は、スキャナ1201、ドキュメントフィーダ(DF)1202、シアン、マゼンタ、イエロー、ブラックの4つの感光ドラムを備えるプリント記録用のプリンタ1213を有する。また、本発明に係る画像形成装置は、給紙デッキ1214及びフィニッシャ1215を有する。
以下で、スキャナ1201を中心に行われる読み取り動作について説明する。
原稿台1207に原稿がセットされて、原稿の読み込みが行われる場合に、原稿台1207に、原稿がセットされて、DF1202が閉じられる。
開閉センサ1230は、DF1202が閉じられたことを検知する。そして、スキャナ1201の筐体内にある光反射式の原稿サイズ検知センサ1231〜1235が、原稿台1207にセットされた原稿サイズを検知する。原稿サイズ検知センサ1231〜1235による、原稿サイズの検知後、スキャン読み取り、コピー指示に応じて光源1210が原稿を照射する。そして、CCD(charge−coupled device)1243が、反射板1211、レンズ1212を介して原稿からの反射光を受光して画像を読み取る。
そして、画像形成装置のコントローラ(画像処理部102)が、CCD1243によって読み取られた画像データをデジタル信号に変換し、所望の画像処理を行ってレーザー記録信号に変換する。変換された記録信号は、コントローラ内のメモリに格納される。
DF1202に原稿がセットされて読み込まれる場合には、DF1202の原稿セット部1203のトレイに原稿がフェースアップで載置される。
原稿有無センサ1204は、原稿がセットされたことを検知し、これを受けて原稿給紙ローラ1205と搬送ベルト1206が回転して原稿を搬送し、原稿台1207上の所定の位置に原稿がセットされる。これ以降は原稿台1207で原稿が読み込まれる場合と同様に原稿が読み込まれ、得られた記録信号がコントローラ内のメモリに格納される。
原稿の読み込みが完了すると、再び搬送ベルト1206が回転し、図12の画像形成装置の断面図において右側に原稿を送り、排紙側の搬送ローラ1208を経由して原稿排紙トレイ1209へ原稿が排紙される。
原稿が複数存在する場合は、原稿台1207から原稿が画像形成装置の断面図において右側に排紙搬送されるのと同時に、給紙ローラ1205を経由して画像形成装置の断面図において左側から次原稿が給送され、次原稿の読み込みが連続的に行なわれる。
以上がスキャナ1201の動作である。
以下で、プリンタ1213を中心に行われる印刷動作について説明する。
コントローラ内のメモリに一旦記憶された記録信号(印刷画像データ)は、プリンタ1213へと転送される。そして、プリンタ1213のレーザー記録部により、記録信号が、シアン(C)、マゼンタ(M)、イエロー(Y)、ブラック(K)の4色の記録用レーザー光に変換される。そして、記録用レーザー光は、各色の感光体1216に照射され、各感光体に静電潜像が形成される。
そして、プリンタ1213は、トナーカートリッジ1217から供給されるトナーにより各感光体にトナー現像を行う。
そして、各感光体に可視化されたトナー画像は、中間転写ベルト1221に一次転写される。
中間転写ベルト1221は、図13において時計回転方向に回転する。
用紙カセット1218又は給紙デッキ1214から給紙搬送路1219を通って給送された記録紙が二次転写位置1220に来たところで、中間転写ベルト1221から記録紙へとトナー画像が転写される。
画像が転写された記録紙は、定着器1222で、加圧と熱によりトナーが定着される。
その後、記録紙は、排紙搬送路を搬送された後、フェイスダウンのセンタートレイ1223か、スイッチバックしてフィニッシャへの排紙口1224、或いはフェースアップのサイドトレイ1225へと排紙される。但し、サイドトレイ1225は、フィニッシャ1215が未装着の場合にのみ排紙可能な排紙口である。
フラッパ1226、1227は、排紙口を切り替えるために搬送路を切り替える。両面プリントの場合には、記録紙が定着器1222を通過後に、フラッパ1227が搬送路を切り替え、その後スイッチバックして下方に記録紙が送られ、両面印刷用紙搬送路1236を経て再び二次転写位置1220に給送され、両面プリントが行われる。
以下で、フィニッシャ1215で行われる動作について説明する。
フィニッシャ1215は、ユーザに指定された機能に応じ、印刷済み用紙に対して後処理を加える。具体的には、フィニッシャ1215は、ステープル(1個所綴じ、2箇所綴じなど)やパンチ(2穴パンチ、3穴パンチなど)、製本中綴じ等の機能を有する。
排紙トレイ1228は、フィニッシャ1215への排紙口1224を通過してきた記録紙は、ユーザの設定によって、例えばコピー/プリンタ/FAXの機能毎に排紙トレイ1228が振り分けられる。
プリンタ1213は、カラー4ドラムのプリンタではあるが、カラー1ドラムのエンジンでも良いし、白黒記録のプリンタエンジンでも良い。
本発明に係る画像形成装置は、プリンタとして利用される場合、ドライバにより白黒プリント/カラープリント、用紙サイズ、2UP印刷/4UP印刷/N-UP印刷、両面、ステープル、パンチ、製本中綴じ、合紙、表紙、裏表紙などの各種設定ができる。
以下、図1の画像変形処理部102_2が実行する処理のフローの概要について述べる。
まず、図1に示されているように、画像変形処理部102_2は、レジスタ設定部107からのデータをもとに処理を行う。このデータは、トラッピング幅(画素数)を指定するためのもので、ユーザがマニュアルで設定する。
画像変形処理部102_2が実行する処理のフローの概要を従来技術と比較しながら以下で説明する。
まず、本実施形態では、図2のS201_0で、参照領域確保処理が実行され、ユーザ指定の画素幅によらず一定の参照領域が確保される。すなわち、S201_0で、画像の注目画素に対し、注目画素の周辺の複数の画素が参照領域として生成され、保持される。
一方、従来技術では、図3のS301_0で、参照領域確保処理が実行され、レジスタ設定部302を参照し、レジスタ値の2倍の参照領域が確保される。そのため、従来技術では多大なメモリを必要とした。
そして、本発明では、図2のS201_1で、変更情報判定処理が実行され、参照領域内の画素に関する変更情報の有無が判定される。
S201_1で、変更情報があると判定された場合には、S201_2に処理が進み、更新情報参照型変更処理が実行され、変更情報とレジスタ設定部107に設定された情報を参照して変更処理が実行される。
S201_1で、変更情報がないと判定された場合には、S201_3に処理が進み、参照領域参照型変更処理が実行され、参照領域内の情報に基づいて、レジスタ設定部107に設定された情報を参照して、注目画素が変更される。
その後、S201_4に処理が進み、変更情報更新処理が実行され、更新情報参照型変更処理(S201_2)または参照領域参照型変更処理(S201_3)による変更に基づいて、変更情報が更新される。S201_4の変更情報更新処理では、変更情報保持処理も実行され、画像の画素の変更情報が保持される。また、S201_4の変更情報更新処理では、画素情報更新処理も実行され、変更処理が実行された画素の情報が更新される。また、S201_4の変更情報更新処理では、画素情報保持処理も実行され、変更処理が実行された画素の情報が保持される。
次に、S201_5で、未処理画素検出処理が実行され、未処理画素があるか否かが判定され、未処理画素があれば画素更新処理(S201_6)に処理が進み、次の未処理画素の処理に移る。
一方で、S201_5で、未処理画素ないと判定されたときは、シフト処理(S201_7)に進み、画像の書き出しタイミングを変更するシフト処理が実行され、処理が終了する。
次に、画像変形処理部102_2が実行する処理のフローを、以下で具体的に説明する。
図7に示されているようにマゼンタ版とシアン版の画像に対してトラッピングを2画素行う処理について、以下で説明を行う。
マゼンタ版とシアン版の画像に対してトラッピングを2画素行う場合、図1の画像変形処理部102_2内の画像変形部102_4は、以下のような処理を行う。
まず、画像変形部102_4は、図7の画像701_1のマゼンタ版の斜線部701_4をトラッピング幅だけ細らせる処理(図8に示されている処理)を行う。
次に、画像変形部102_4は、マゼンタ版とシアン版との境界部である図7の画像701_2の斜線部701_5で、トラッピング幅の2倍の画素を太らせる処理(図9に示されている処理)を行う。
次に、画像変形部102_4は、画像701_3のシアン版の斜線部701_6をトラッピング幅だけ太らせる処理(図10に示されている処理)を行う。
その結果、画像変形部102_4は、図7に示されているように、出力画像702を生成する。
その後、シフト処理部102_5は、書き出しタイミングを主走査方向に所望の幅だけ変えることで、マゼンタ版とシアン版の画像に対してトラッピングが2画素行われた、図7の画像703を生成する。ここで、例えば、上記の所望の幅を、レジスタ設定部107に設定された情報(レジスタ値(閾値))と同一の数の画素数としても良い。
図5は、図7に示されている処理をより詳細に説明するための図である。
図5(a)の処理501において、元画像(処理対象画像)500から画像501_1がメモリ上に2ライン書き出される。
次に、注目画素の周辺に2×2の参照領域501_4が確保される。参照領域501_4内の注目画素が値を有していない色版について、周辺画素が値を有しているかを判定し、注目画素が変更される。このとき、注目画素はマゼンタ版に値を有しているが、周辺画素はマゼンタ版に値を有していないので注目画素のマゼンタ版の濃度(画素値)が0に変更される。
次に、変更された注目画素が出力画像として出力され、変更情報501_7が生成され、参照領域が、主走査方向に、1画素ずらされる。このような処理が、メモリに書き出された画像501_2上の注目画素501_5まで行われる。ここでは、画像のエッジから2ライン分の画素の濃度(画素値)が0に変更される。
さらに、メモリの書き出された画像501_3上の注目画素501_6まで処理が行われる。この時点で、画像502が得られる。
最終的に、画像の上部に対して、トラッピング幅(2画素)分細らせる処理が行われる。
次に、図7のマゼンタ版とシアン版との境界部では、画像701_2で、トラッピング幅の2倍の画素分トラッピングが行われる。
具体的には、図5(b)の処理503において、元画像500から画像503_1がメモリ上に2ライン書き出される。
次に、注目画素の周辺に2×2の参照領域503_4が確保される。参照領域503_4内の注目画素が値を有していない色版について、周辺画素画値が値を有しているかを判定し、注目画素の濃度(画素値)が変更される。例えば、注目画素ではシアンしか濃度(画素値)を持たない(他の成分は0)が、参照領域内のマゼンタ版の画素の画素値を、注目画素のマゼンタ版の濃度(画素値)とすることにより、注目画素の濃度が変更される。尚、変更情報(501_7等)は画像変形処理部102_2内の不図示のラインメモリに格納される。
次に、変更された注目画素が出力画像として出力され、変更情報503_7が生成され、参照領域が、主走査方向に、1画素ずらされる。このような処理が、メモリに書き出された画像503_3上の注目画素503_6まで行われる。
なお、メモリに書き出された画像503_2上の注目画素503_5から画像503_3上の注目画素503_6までは変更情報をもとに、注目画素が変更される。
その結果、画像504が得られる。
最終的に、画像の境界で、トラッピング幅(2画素)の2倍の4画素分のトラッピングが行われている。
さらに、シアン版の画像の下部をトラッピング幅だけ太らせる処理が行われ、図7の画像701_3のシアン版の斜線部701_6を含む出力画像が生成され、画像702が得られる。
具体的には、図5(c)の処理505において、元画像500から画像505_1がメモリ上に2ライン書き出される。
次に、注目画素の周辺に2×2の参照領域505_4が確保される。参照領域505_4内の注目画素が値を有していない色版について、周辺画素が値を有しているかを判定し、注目画素が変更される。このとき、注目画素の濃度(画素値)が、参照領域505_4内の注目画素と異なる色版の画素の濃度(画素値)に変更される。
次に、変更された注目画素が出力画像として出力され、変更情報505_7が生成され、参照領域が、主走査方向に、1画素ずらされる。このような処理が、メモリに書き出された画像505_2上の注目画素505_5から、メモリに書き出された画像505_3上の注目画素503_6まで行われる。
なお、注目画素505_5から注目画素505_6までは、変更情報をもとに注目画素が変更される。
その結果、図5(d)の処理507において、元画像500のマゼンタ版507_1では、画像の上部で2画素細り、画像の下部で4画素太っている。一方、シアン版507_2では、画像の上部に変化はなく、画像の下部で、2画素太っている。このため、マゼンタ版507_1とシアン版507_2とをあわせて、画像506(508)が得られる。
さらに、画像508が、画像の上部方向に前述したレジスタ設定された画素分不図示のシフト部によりシフトされて、画像509が得られる。
以下、本実施形態の画像変形処理部102_2が実行する処理のフローを具体的に説明する。
まず、図8に示されている処理について説明する。図8の処理により、トラッピングが行われる画像は、画像800である。ここでは、一例として、マゼンタ版とシアン版の濃度(画素値)は、両方とも、8ビット(0−255)で、70とされている。
以下の説明では、注目画素が、主走査方向にm画素目、副走査方向にn画素目に位置しているとき、画素(m,n)と表記する。また、画素(m,n)の変更後の画素を画素’(m,n)とし、画素(m,n)の変更情報を変更情報(m,n)とする。また、変更情報(m,n)に含まれる変更濃度を変更濃度(m,n)とする。また、主走査方向に濃度変更が行われた回数をカウント値H(m,n)とし、副走査方向に濃度変更が行われた回数をカウント値V(m,n)とする。
ここでは、一例として、変更情報(m,n)は、カウント値V(m,n)と変更濃度(m,n)を含むとする。
すなわち、画素変更情報(m,n)={カウント値V(m,n)=0,変更濃度(、m,n)=(0,0,0,0)}とする。なお、変更濃度(m,n)=(C,M,Y,K)は、画素(m,n)において、シアン(C)、マゼンタ(M)、イエロー(Y)、ブラック(K)の濃度を示す。
図8に処理が詳細に示されている、図7の画像701_1のマゼンタ版の斜線部701_4をトラッピング幅だけ細らせる処理は、処理前の図8の画像800を処理後の画像804にする処理である。すなわち、これは、マゼンタ版上部を細らせる処理である。
まず、図8の画像800において、注目画素が(h,v)〜(h+l,v)にあるとき、処理801を参照しながら、マゼンタ版上部を細らせる処理について、以下で説明する。
本実施形態における画像処理のフローチャートは、図2に示されている。
まず、図2のS201_0で、画像変形処理部102_2は、注目画素(h,v)において、参照領域確保処理を実行し、2×2の参照領域801_1を確保する。
次に、S201_1で、画像変形処理部102_2は、変更情報判定処理を実行し、参照領域801_1内の画素に対応する変更情報のカウント値Vが0である(以下変更情報がない)か否かを判定する。
S201_1で、変更情報がないと判定された場合には、S201_3に処理が進み、変更情報がある(カウント値V=1)と判定された場合には、S201_2に処理が進む。
ここで、変更情報は、変更濃度801_1’と、カウント値V(801_1”)とにより、以下のように表される。
すなわち、変更情報(h,v−1)={カウント値V(h,v−1)=0,変更濃度(h,v−1)=(0,0,0,0)}である。これは画素(h,v−1)についての既に算出済みの変更情報である。
ここで、カウント値V(h,v−1)=0、変更濃度(h,v−1)=(0,0,0,0)である。したがって、S201_1で、画像変形処理部102_2は、カウント値V(h,v−1)が0なので画素(h,v−1)は変更されていないことになり、変更情報がないと判定される。
ここで変更情報がないと判定されたため、参照領域参照型変更処理(S201_3)へ処理が進む。
S201_3で、画像変形処理部102_2は、参照領域参照型変更処理を実行し、参照領域内の画素の情報を変更する。その結果、注目画素のマゼンタ版の濃度が周辺画素のマゼンタ版の濃度である0に変更され、画素801_2が得られる。
ここで、参照領域内の注目画素の変更前の濃度は、画素(h,v)=(0,70,0,0)であり、参照領域内の注目画素の変更後の濃度は、画素’(h,v)=(0,0,0,0)である。
次に、S201_4で、画像変形処理部102_2は、変更情報更新処理を実行し、カウント値V(h,v)を更新して、カウント値V(h,v)=1(801_2”)とする。そして、画像変形処理部102_2は、変更前の濃度と変更後の濃度の差分である変更濃度(h,v)を更新して、変更濃度(h,v)=(0,70,0,0)801_2’が得られる。
ここで、変更情報(h,v)={カウント値V(h,v)=1,変更濃度(h,v)=(0,70,0,0)}となる。
次に、画像変形処理部102_2は、参照領域を、主走査方向に、1画素ずらす。そして、画像変形処理部102_2は、上記の処理を主走査方向の全ての画素について実行する。
ここで、参照領域801_3は、主走査方向の最後の画素(h+l,v)の参照領域である。また、変更濃度801_3’は、主走査方向の最後の画素(h+l,v)の変更濃度である。また、カウント値V(801_3”)は、主走査方向の最後の画素(h+l,v)のカウント値Vである。画像変形処理部102_2は、画素(h,v)と同様に、画素(h+l,v)を画素’(h+l,v)に変更し、画素801_4が得られる。
ここで、参照領域内の画素の変更前の濃度は、画素(h+l,v)=(0,70,0,0)であり、参照領域内の画素の変更後の濃度は、画素’(h+l,v)=(0,0,0,0)である。
そして、画像変形処理部102_2は、変更情報(h+l,v)に含まれるカウント値V(h+l,v)を更新してカウント値V=1(801_4”)とする。また、画像変形処理部102_2は、変更情報(h+l,v)に含まれる変更濃度(h+l,v)を更新して変更濃度(h+l,v)=(0,70,0,0)801_4’とする。
ここで、変更情報(h+l,v)={カウント値V(h+l,v)=1,変更濃度(h+l,v)=(0,70,0,0)}となる。
次に、注目画素が(h,v+1)〜 (h+l,v+1)にある場合について、図8の処理802を参照しながら説明する。
まず、図2のS201_0で、画像変形処理部102_2は、注目画素(h,v+1)において、参照領域確保処理を実行し、2×2の参照領域802_1を確保する。
次に、S201_1で、画像変形処理部102_2は、変更情報判定処理を実行し、参照領域802_1内の画素に対する変更情報があるか否かを判定する。
S201_1で、変更情報がないと判定された場合には、S201_3に処理が進み、変更情報があると判定された場合には、S201_2に処理が進む。
ここで、参照領域内の変更情報は、画素(h、v)を処理した時に得られた変更濃度802_1’と、カウント値V(802_1”)を含み、カウント値V(h,v)=1となっている。そのため、S201_1で、画像変形処理部102_2は、変更情報があると判定する。そして、変更情報参照型変更処理(S201_2)に処理が進む。画像変形処理部102_2は、S201_2において、以下のような処理を行う。
具体的には、S201_2で、画像変形処理部102_2は、レジスタ設定部107からユーザによって設定されたレジスタ値(閾値)と、カウント値とを比較する。そして、「カウント値<レジスタ値」であるとき、画像変形処理部102_2は、注目画素の濃度を注目画素の濃度から変更濃度を引いた値に更新する。
そして、変更情報更新処理(S201_4)に処理が進む。
一方、S201_2で、「カウント値≧レジスタ値」であるとき、画像変形処理部102_2は、注目画素の濃度の変更を行わず、変更情報更新処理(S201_4)に処理が進む。
本実施形態では、一例として、ユーザによって設定されたレジスタ値が2であるとすると、「カウント値V(h,v)=1<レジスタ値=2」である。したがって、この場合、画像変形処理部102_2は、S201_2で、注目画素の濃度を、注目画素から変更濃度を引いた値に更新する。その結果、画素(h,v+1)は、画素’(h,v+1)に変更され、画素802_2が得られる。
ここで、参照領域内の注目画素の変更前の濃度は、画素(h,v+1)=(0,70,0,0)である。この注目画素の変更前の濃度から変更濃度(h,v)=(0,70,0,0)を引くことで、参照領域内の注目画素の変更後の濃度は、画素’(h,v+1)=(0,0,0,0)となる。
そして、変更情報更新処理(S201_4)に処理が進む。
S201_4で、画像変形処理部102_2は、変更情報更新処理を実行し、カウント値V(h,v+1)を更新して、カウント値V(h,v+1)=2(802_2”)とする。そして、画像変形処理部102_2は、変更濃度(h,v+1)を更新して、変更濃度(h,v+1)=(0,70,0,0)802_2’が得られる。
ここで、変更情報(h,v+1)={カウント値V(h,v+1)=2,変更濃度(h,v+1)=(0,70,0,0)}である。
次に、S201_5で、画像変形処理部102_2は、未処理画素検出処理を実行し、未処理画素があるか否かを判定する。
S201_5で、未処理画素があると判定された場合には、S201_6に処理が進み、S201_5で、未処理画素がないと判定された場合には、S201_7に処理が進む。
S201_6で、画像変形処理部102_2は、画素更新処理を実行し、参照領域を、主走査方向に、1画素ずらし、S201_0に処理を進めて、参照領域確保処理を実行する。このような処理を繰り返して、画像変形処理部102_2は、主走査方向の全ての画素について処理を実行する。
その結果、図8の参照領域802_3内の変更濃度802_3’とカウント値V(802_3”)から注目画素(h+l,v+1)は、802_4に変更される。そして、変更情報に含まれる変更濃度は、変更濃度802_4’に変更され、変更情報に含まれるカウント値Vは、カウント値V(802_4”)に変更される。
その後、画像変形処理部102_2は、参照領域を、副走査方向に、1画素ずらし、S201_0で、参照領域確保処理を実行する。
次に、注目画素が(h,v+2)〜 (h+l,v+2)にある場合について、図8の処理803を参照しながら説明する。
まず、S201_0において、画像変形処理部102_2は、参照領域確保処理を実行し、2×2の参照領域803_1を確保する。
次に、S201_1において、画像変形処理部102_2は、変更情報判定処理を実行し、参照領域803_1内に変更情報があるか否かを判定する。
S201_1で、変更情報がないと判定された場合には、S201_3に処理が進み、変更情報があると判定された場合には、S201_2に処理が進む。
ここで、参照領域内の変更情報は、変更濃度803_1’と、カウント値V(803_1”)を含み、カウント値V(h,v+1)=2である。そのため、S201_1で、画像変形処理部102_2は、変更情報があると判定する。そして、変更情報参照型変更処理(S201_2)に処理が進む。そして、画像変形処理部102_2は、変更情報(h,v+1)と、レジスタ設定部107に設定された情報とを参照して注目画素を変更する。
しかし、本実施形態では、「カウント値V(h,v+1)=2≧レジスタ値=2」であるので、注目画素の変更は行われず、画素803_2が得られる。その結果、注目画素の変更前の濃度は、画素(h,v+2)=(0,70,0,0)となり、注目画素の変更後の濃度は、画素’(h,v+2)=(0,70,0,0)となる。
そして、変更情報更新処理(S201_4)に処理が進む。
S201_4で、画像変形処理部102_2は、変更情報更新処理を実行し、カウント値V(h,v+2)は注目画素の濃度が変更されなかったため0にリセットされ、カウント値V(803_2”)となる。そして、画像変形処理部102_2は、変更濃度(h,v+2)を更新して、変更濃度803_2’とする。
ここで、変更情報(h,v+2)={カウント値V(h,v+2)=0,変更前の濃度と変更後の濃度の差分である変更濃度(h,v+2)=(0,0,0,0)}となる。
次に、S201_5で、画像変形処理部102_2は、未処理画素検出処理を実行し、未処理画素があるか否かを判定する。
S201_5で、未処理画素があると判定された場合には、S201_6に処理が進み、S201_5で、未処理画素がないと判定された場合には、S201_7に処理が進む。
S201_6で、画像変形処理部102_2は、画素更新処理を実行し、参照領域を、主走査方向に、1画素ずらし、S201_0に処理を進めて、参照領域確保処理を実行する。
その結果、図8の参照領域内803_3内の変更濃度803_3’とカウント値V(803_3”)から、注目画素(h+l,v+2)は、変更されて、画素803_4が得られる。そして変更情報に含まれる変更濃度は、変更濃度803_4’に変更され、変更情報に含まれるカウント値Vは、カウント値V(803_4”)に変更される。
以下、画像変形処理部102_2は、副走査方向に、(v+3)〜(j−1)番目までの画素に対して処理を行う。副走査方向の(v+3)〜(j−1)番目までの画素に対しては、上記と同様の処理が繰り返される。
そして、画素(h,j−1)の変更前の濃度は、画素(h,j−1)=(0,70,0,0)となり、画素(h,j−1)の変更後の濃度は、画素’(h,j−1)=(0,70,0,0)となる。そして、変更情報(h,j−1)={カウント値V(h,j−1)=0,変更濃度(h,j−1)=(0,0,0,0)}となる。
以下で、図9に示されている処理について説明する。図9に示されている処理は、マゼンダ版とシアン版との境界部である図7の画像701_2の斜線部701_5においてトラッピング幅の2倍まで画像を太らせる処理である。図9に示されている処理によって、図8の画像804から、図9の画像906が得られる。
以下では、注目画素の位置が(h,j)〜 (h+l,j)になる場合の処理を、図9の処理901を参照しながら説明する。
まず、図2のS201_0で、注目画素の位置が(h,j)のとき、画像変形処理部102_2は、参照領域確保処理を実行し、2×2の参照領域901_1を確保する。
次に、S201_1で、画像変形処理部102_2は、変更情報判定処理を実行し、参照領域901_1内に変更情報があるか否かを判定する。
S201_1で、変更情報がないと判定された場合には、S201_3に処理が進み、変更情報があると判定された場合には、S201_2に処理が進む。
ここで、参照領域内の変更情報は変更濃度901_1’と、カウント値V(901_1”)を含み、カウント値V(h,j−1)=0となっている。そのため、S201_1で、画像変形処理部102_2は、変更情報がないと判定する。そして、参照領域参照型変更処理(S201_2)に処理が進む。そして、画像変形処理部102_2は、参照領域内の画素の情報の変更処理を行う。ここでは、画像変形処理部102_2は、注目画素のマゼンタ版の濃度を70に変更する。その結果、画素(h,j)は、画素’(h,j)に変更されて、画素901_2が得られる。
ここで、参照領域内の画素の変更前の濃度は、画素(h,j)=(70,0,0,0)であり、参照領域内の画素の変更後の濃度は、画素’(h,j)=(70,70,0,0)である。
次に、S201_4で、画像変形処理部102_2は、変更情報更新処理を実行して、変更情報の、変更濃度901_2’と、 カウント値V(901_2”)とを更新する。ここで、変更情報(h,j)={カウント値V(h,j)=1,変更濃度(h,j)=(0,70,0,0)}となる。
次に、S201_5で、画像変形処理部102_2は、未処理画素検出処理を実行し、未処理画素があるか否かを判定する。
S201_5で、未処理画素があると判定された場合には、S201_6に処理が進み、S201_5で、未処理画素がないと判定された場合には、S201_7に処理が進む。
S201_6で、画像変形処理部102_2は、画素更新処理を実行し、参照領域を、主走査方向に、1画素ずらし、S201_0に処理を進めて、参照領域確保処理を実行する。このような処理を繰り返して、画像変形処理部102_2は、主走査方向の全ての画素について処理を実行する。
具体的には注目画素の位置が(h+l,j)の場合、画像変形処理部102_2は、参照領域901_3を確保する。
次に、参照領域内の変更情報である変更濃度901_1’とカウント値V(901_1”)から、注目画素の画素を画素901_4へ、変更する。そして、変更情報に含まれる変更濃度を変更濃度901_4’とし、変更情報に含まれるカウント値をカウント値V(901_4”)とする。
その後、画像変形処理部102_2は、参照領域を、副走査方向に、1画素進ませ、注目画素(h,j+1)に対して処理を行う。
図2のS201_0で、画像変形処理部102_2は、注目画素(h,j+1)に対して、参照領域確保処理を実行し、2×2の参照領域902_1を確保する。
次に、S201_1で、画像変形処理部102_2は、変更情報判定処理を実行し、参照領域内に変更情報があるか否かを判定する。
S201_1で、変更情報がないと判定された場合には、S201_3に処理が進み、変更情報があると判定された場合には、S201_2に処理が進む。
ここで、参照領域内の変更情報は、更濃度902_1’とカウント値V(902_1”)であり、カウント値V(h,j)=1である。そのため、S201_1で、画像変形処理部102_2は、変更情報があると判定する。そして、変更情報参照型変更処理(S201_2)に処理が進む。
画像変形処理部102_2は、S201_2において、参照領域内の画素の情報の変更処理を行う。ここで、変更濃度にはマゼンタ版の濃度、注目画素にはシアン版の濃度が存在するため、画像変形処理部102_2は、トラッピング処理を行っていると判断し、レジスタ値(閾値)を2倍にする。
この場合、「カウント値V(h,j+1)=2≦レジスタ値×2=4」であるので注目画素の濃度を、更新する。その結果、画素(h,j+1)は、画素’(h,j+1)に変更され、画素902_2が得られる。ここで、変更前の注目画素の濃度は、画素(h,j+1)=(70,0,0,0)であり、変更後の注目画素の濃度は、画素’(h,j+1)=(70,70,0,0)である。
そして、変更情報更新処理(S201_4)に進む。
次に、S201_4で、画像変形処理部102_2は、変更情報更新処理を実行し、変更情報に含まれる変更濃度を更新して、変更濃度902_2’とし、変更情報に含まれるカウント値Vを更新して、カウント値V(902_2”)とする。ここで、変更情報(h,j+1)={カウント値V(h,j+1)=2,変更濃度(h,j+1)=(0,70,0,0)}となる。
次に、S201_5で、画像変形処理部102_2は、未処理画素検出処理を実行し、未処理画素があるか否かを判定する。
S201_5で、未処理画素があると判定された場合には、S201_6に処理が進み、S201_5で、未処理画素がないと判定された場合には、S201_7に処理が進む。
S201_6で、画像変形処理部102_2は、画素更新処理を実行し、参照領域を、主走査方向に、1画素ずらし、S201_0に処理を進めて、参照領域確保処理を実行する。このような処理を繰り返して、画像変形処理部102_2は、主走査方向の全ての画素について処理を実行する。
具体的には、注目画素の位置が(h+l,j+1)の場合に、画像変形処理部102_2は、参照領域902_3を確保する。
次に、画像変形処理部102_2は、参照領域内の変更情報である変更濃度902_3’とカウント値902_3”から注目画素の濃度を変更し、画素902_4が得られる。
そして、画像変形処理部102_2は、変更情報を更新する。すなわち、画像変形処理部102_2は、変更濃度を変更濃度902_4’に更新し、カウント値をカウント値V(902_4”)に更新する。
次に、画像変形処理部102_2は、参照領域を、副走査方向に、1画素ずらし、注目画素(h,j+2)〜(h+l,j+2)に対して、同じ処理を処理903において行う。さらに、画像変形処理部102_2は、注目画素に位置が(h,j+3)〜(h+l,j+3)である場合にも、同じ処理を処理904において行う。
具体的には、S201_0で、画像変形処理部102_2は、注目画素(h,j+2)に対して、参照領域確保処理を実行し、2×2の参照領域を確保する。
次に、S201_1で、画像変形処理部102_2は、変更情報判定処理を実行し、参照領域内に変更情報があるか否かを判定する。
S201_1で、変更情報がないと判定された場合には、S201_3に処理が進み、変更情報があると判定された場合には、S201_2に処理が進む。
ここで、参照領域内のカウント値V(h,j−1)=2である。そのため、S201_1で、画像変形処理部102_2は、変更情報があると判定する。そして、変更情報参照型変更処理(S201_2)に処理が進む。ここで、画像変形処理部102_2は、変更情報(h,j+1)と、レジスタ設定部107に設定された情報を参照して注目画素を変更する。
ここで、画像変形処理部102_2は、変更濃度にはマゼンタ版の濃度、注目画素にはシアン版の濃度が存在するためトラッピング処理を行っていると判断し、レジスタ値(閾値)を2倍に変更する。
この場合、「カウント値V(h,j+1)=2≦レジスタ値×2=4」であるので、画像変形処理部102_2は、注目画素の変更を行う。つまり、画像変形処理部102_2は、注目画素(h,j+2)に対して、注目画素(h,j+1)と同様な処理を行う。
ここで、注目画素の変更前の濃度は、画素(h,j+2)=(70,0,0,0)であり、注目画素の変更後の濃度は、画素’(h,j+2)=(70,70,0,0)となる。そして、変更情報更新処理(S201_4)に処理が進む。
次に、S201_4で、画像変形処理部102_2は、変更情報更新処理を実行し、変更情報を更新する。ここで、変更情報(h,j+2)={変更濃度(h,j+2)=(0,70,0,0),カウント値V(h,j+2)=3}となる。
そして、画像変形処理部102_2は、この処理を画素(h+1,j+2)〜(h+l,j+2)まで行う。
同様に、画像変形処理部102_2は、注目画素(h,j+3)において、変更前に濃度が画素(h,j+3)=(70,0,0,0)であるのを、変更後に濃度が画素’(h,j+3)=(70,70,0,0)となるように変更する。ここで、変更情報(h,j+3)={変更濃度(h,j+3)=(0,70,0,0),カウント値V(h,j+3)=4}となる。
そして、画像変形処理部102_2は、この処理を画素(h+1,j+2)〜(h+l,j+2)まで行う。
最後に、処理905において、注目画素(h,j+4)に対して以下のような処理が実行される。
まず、画像変形処理部102_2は、2×2の参照領域905_1を確保し、参照領域内の変更情報である変更濃度905_1’とカウント値V(905_1”)を参照する。
ここで,カウント値は、「カウント値V(h,j+3)=4≦レジスタ値×2=4」であるため画素の変更が終了する。
すなわち、注目画素について、変更前の濃度が画素(h,j+4)=(70,0,0,0)となり、変更後の濃度が画素’(h,j+4)=(70,0,0,0)となるような変更は行われず、画素905_2が得られる。
また、変更濃度(h,j+4)905_2’とカウント値V(h,j+4)905_2”から、変更情報(h,j+4)={変更濃度(h,j+4)=(0,0,0,0),カウント値V(h,j+4)=0}が得られる。
画像変形処理部102_2は、同様な処理を画素(h+1,j+4)〜(h+l,j+4)まで行う。
画像変形処理部102_2は、注目画素(h+l,j+4)に対しても同様に、参照領域905_3内の変更情報である変更濃度905_3’とカウント値V(905_3”)を参照する。ここでも、「カウント値V(h+l,j+3)=4≦レジスタ値×2=4」であるため、画像変形処理部102_2は、画素の変更は行なわれない。
すなわち、注目画素について、変更前の濃度が画素(h+l,j+4)=(70,0,0,0)となり、変更後の濃度が画素’(h+l,j+4)=(70,0,0,0)となるように変更は行われず、画素905_4が得られる。
また、変更濃度(h+l,j+4)905_4’とカウント値V(h+l,j+4)905_4”から、変更情報(h+l,j+4)={変更濃度(h+l,j+4)=(0,0,0,0),カウント値V(h+l,j+4)=0}が得られる。
上記処理によって図9の画像906が得られる。
以下で、図10に示されている処理について説明する。図10に示されている処理は、図7の画像701_3のシアン版の斜線部701_6をトラッピング幅だけ太らせる処理である。図10に示されている処理によって、図9の画像906から、図10の画像1004が得られる。
まず、図10の処理1001を参照して、(h,k)〜(h+l,k)に位置する注目画素に対する処理について説明する。
まず、図2のS201_0において、画像変形処理部102_2は、注目画素(h,k)に対して、参照領域確保処理を実行し、2×2の参照領域1001_1を確保する。
次に、S201_1で、画像変形処理部102_2は、変更情報判定処理を実行し、参照領域内に変更情報があるか否かを判定する。
S201_1で、変更情報がないと判定された場合には、S201_3に処理が進み、変更情報があると判定された場合には、S201_2に処理が進む。
ここで、変更濃度1001_1’と、カウント値V1001_1”から、変更情報(h,k−1)={カウント値V(h,k−1)=0,変更濃度(h,k−1)=(0,0,0,0)}が得られる。
ここで、カウント値V(h,k−1)=0、変更濃度(h,k−1)=(0,0,0,0)であるため、S201_1で、画像変形処理部102_2は、変更情報がないと判定する。そして、参照領域参照型変更処理(S201_3)へ処理が進む。
S201_3で、画像変形処理部102_2は、参照領域参照型変更処理を実行し、参照領域内の注目画素の濃度を70に変更し、画素1001_2が得られる。ここで、注目画素の変更前の濃度は、画素(h,k)=(0,0,0,0)であり、注目画素の変更後の濃度は、画素’(h,k)=(70,0,0,0)である。
次に、S201_4で、画像変形処理部102_2は、変更情報更新処理を実行し、カウント値V(h,k)を更新して、カウント値V(1001_2”)とし、変更濃度(h,k)を更新して変更濃度1001_2’が得られる。ここで、変更情報(h,k)={カウント値V(h,k)=1,変更濃度(h,k)=(70,0,0,0)}となる。
次に、画像変形処理部102_2は、参照領域を、主走査方向に、1画素ずらし、参照領域確保処理(S201_0)を実行し、同様の処理を主走査方向の全ての画素に対して行う。
すなわち、画像変形処理部102_2は、注目画素(h+l,k)に対して、参照領域1001_3内の変更情報に含まれている、変更濃度1001_3’とカウント値V(1001_3”)とを参照して変更を行う。
その結果、注目画素(h+l,k)では、画素1001_4に示されているように、変更前の濃度は、画素(h+l,k)=(0,0,0,0)であり、変更後に濃度は、画素’(h+l,k)=(70,0,0,0)となる。
また、変更濃度1001_4’とカウント値V(1001_4”)とから、変更情報(h+l,k)={カウント値V(h+l,k)=1,変更濃度(h+l,k)=(70,0,0,0)}が得られる。
次に、注目画素が(h,k+1)〜(h+l,k+1)にある場合の処理を、処理1002を用いて説明を行う。
まず、図2のS201_0で、画像変形処理部102_2は、注目画素(h,k+1)に対して、参照領域確保処理を実行し、2×2の参照領域1002_1を確保する。
次に、S201_1で、画像変形処理部102_2は、変更情報判定処理を実行し、参照領域内に変更情報があるか否かを判定する。
S201_1で、変更情報がないと判定された場合には、S201_3に処理が進み、変更情報があると判定された場合には、S201_2に処理が進む。
画像変形処理部102_2は、参照領域1002_1内の注目画素の変更情報である変更濃度1002_1’とカウント値V(1002_1”)を参照して変更を行う。S201_1で、画像変形処理部102_2は、変更情報判定処理を実行する。ここで、カウント値V(1002_1”)を参照すると、カウント値V(h,k)=1であるので、S201_1で、画像変形処理部102_2は、変更情報があると判定する。そして、変更情報参照型変更処理(S201_2)に処理が進む。
S201_2で、画像変形処理部102_2は、変更情報参照型変更処理を実行する。ここで、「カウント値V(h,k)=1<レジスタ値(閾値)=2」であるので、注目画素の濃度を変更濃度により更新する。その結果、注目画素(h,k+1)では、画素1002_2に示されているように、変更前の濃度は、画素(h,k+1)=(0,0,0,0)であり、変更後の濃度は、画素’(h,k+1)=(70,0,0,0)となる。そして、変更情報更新処理(S201_4)に処理が進む。
S201_4で、画像変形処理部102_2は、変更情報更新処理を実行し、変更濃度(h,k+1)を更新して、変更濃度1002_2’とし、カウント値V(h,k+1)を更新してカウント値V(1002_2”)とする。
すなわち、変更情報(h,k+1)={カウント値V(h,k+1)=2,変更濃度(h,k+1)=(70,0,0,0)}となる。
次に、S201_5で、画像変形処理部102_2は、未処理画素検出処理を実行し、未処理画素があるか否かを判定する。
S201_5で、未処理画素があると判定された場合には、S201_6に処理が進み、S201_5で、未処理画素がないと判定された場合には、S201_7に処理が進む。
S201_6で、画像変形処理部102_2は、画素更新処理を実行し、参照領域を、主走査方向に、1画素ずらし、S201_0に処理を進めて、参照領域確保処理を実行する。このようにして、画像変形処理部102_2は、主走査方向の全ての画素について処理を実行する。
注目画素(h+l,k+1)に対して、参照領域1002_3内の変更情報に含まれている、変更濃度1002_1’とカウント値V(1002_1”)を参照して変更を行う。
その結果、注目画素(h+l,k+1)では、画素1002_4に示されているように、変更前の濃度は、画素(h+l,k+1)=(0,0,0,0)であり、変更後の濃度は、画素’(h+l,k+1)=(70,0,0,0)となる。
そして、画像変形処理部102_2は、変更情報に含まれる変更濃度を更新して、変更濃度(1002_4’)とし、変更情報に含まれるカウント値Vを更新して、カウント値V(1002_4”)とする。
その後、画像変形処理部102_2は、参照領域を、副走査方向に、1画素ずらし、参照領域確保処理(S201_0)に処理を進める。
最後に、図10の処理1003を参照して、(h,k+2)〜(h+l,k+2)に位置する注目画素に対する処理について説明する。
まず、図2のS201_0で、画像変形処理部102_2は、参照領域確保処理を実行し、注目画素(h,k+2)に対して、2×2の参照領域1003_1を確保する。
次に、S201_1で、画像変形処理部102_2は、変更情報判定処理を実行し、参照領域内に変更情報があるか否かを判定する。
S201_1で、変更情報がないと判定された場合には、S201_3に処理が進み、変更情報があると判定された場合には、S201_2に処理が進む。
ここで、参照領域1003_1内の変更情報は、変更濃度1003_1’とカウント値1003_1”である。
ここで、参照領域内のカウント値V(1003_1”)は、カウント値V(h,k+1)=2である。そのため、画像変形処理部102_2は、変更情報があると判定し、変更情報参照型変更処理(S201_2)に処理が進む。
S201_2で、画像変形処理部102_2は、変更情報(h,k+1)と、レジスタ設定部107に設定された情報(レジスタ値(閾値))を参照する。ここで、「カウント値V(h,k+1)=2≦レジスタ値=2」であるので、画像変形処理部102_2は、注目画素(h,k+2)の変更を行わない。ここで、画素1003_2に示されているように、注目画素の変更前の濃度は、画素(h,k+2)=(0,0,0,0)であり、注目画素の変更後の濃度は、画素’(h,k+2)=(0,0,0,0)である。
次に、S201_4で、画像変形処理部102_2は、変更情報更新処理を実行し、変更濃度(h,k+2)を更新して、変更濃度1003_2’とし、カウント値V(h,k+2)を更新して、カウント値V(1003_2”)とする。
ここで、変更情報(h,k+2)={カウント値V(h,k+2)=0,変更濃度(h,k+2)=(0,0,0,0)}となる。
次に、S201_5で、画像変形処理部102_2は、未処理画素検出処理を実行し、未処理画素があるか否かを判定する。
S201_5で、未処理画素があると判定された場合には、S201_6に処理が進み、S201_5で、未処理画素がないと判定された場合には、S201_7に処理が進む。
S201_6で、画像変形処理部102_2は、画素更新処理を実行し、参照領域を、主走査方向に、1画素ずらし、S201_0に処理を進めて、参照領域確保処理を実行する。このような処理を繰り返して、画像変形処理部102_2は、主走査方向の全ての画素について処理を実行する。
画像変形処理部102_2は、注目画素の位置が(h+l,k+2)のとき、参照領域1003_3内の変更濃度1003_1’とカウント値V(1003_1”)を参照して変更を行う。
その結果、注目画素(h+l,k+2)では、画素1003_4に示されているように、変更前の濃度は、画素(h+l,k+2)=(0,0,0,0)であり、変更後の濃度は、画素’(h+l,k+2)=(70,0,0,0)となる。
そして、画像変形処理部102_2は、変更濃度を更新して、変更濃度(h+l,k+2)1003_4’とし、カウント値V(h+l,k+2)を更新してカウント値V(h+l,k+2)=0(1003_4”)とする。
以上の処理により、図10の画像1004または図7の画像702が得られる。
そして、S201_5で、画像変形処理部102_2が、未処理画素検出処理を実行して、未処理画素が無くなったと判断したとき、シフト処理(S201_7)へ処理が進む。
S201_7で、画像変形処理部102_2は、シフト処理を実行し、書き出しタイミングを、レジスタ設定値をもとにずらして、画像を書き出す。本実施形態では、一例として、レジスタ値を2としているので、画像変形処理部102_2は、副走査方向に、2画素ずらして書き出して、図7の画像703を得る。画像703が、画像700を、処理701およびシフト処理により処理して得られる所望の画像である。
本実施形態で必要するメモリは、参照領域を保持するメモリと変更情報を保持するメモリとの合計である。参照領域を保持するために必要なメモリは、画像が8ビットとすれば、参照領域を例えば、2×2とすると、注目画素を含むラインを除けば8ビット1ラインメモリである。一方、変更情報を保持するために必要なメモリは、変更情報のうち変更濃度801_1’は8ビットであり、変更濃度801_1’を保持するために必要なメモリは、8ビット1ラインである。また、変更情報のうちカウント情報V(801_1”)は、2ビットであり、カウント情報V(801_1”)を保持するのに必要なメモリは、2ビット1ラインである。
したがって、整理すると、実施形態1では、メモリとして、参照領域に、8ビット1ラインが必要であり、変更情報の変更濃度に、8ビット1ラインが必要であり、変更情報のカウント値に、2ビット1ラインが必要とされる。実施形態1に必要とされるメモリは、図16において、2+αラインと示されている。
従来技術は、図16に示されているように、ユーザ指定の画素幅(トラッピング幅)の倍のメモリサイズを必要とする。例えば、画素幅を2画素とすると、従来技術では、メモリとして、参照領域に、8ビット4ラインが必要とされる。
したがって、図16に示されているように、本実施形態では、従来技術と比較してメモリサイズが小さくなっていることがわかる。
さらにユーザが指定する画素幅(トラッピング幅)が4画素のときには、本実施形態は、以下のような効果を有する。すなわち、変更情報判定処理(S201_1)において、ユーザの指定する画素数と画素を変更した順次更新されるカウント値を比較して行うために確保するメモリに変更を必要としない。
そのため、本実施形態では、メモリとして、参照領域に、8ビット1ラインが必要であり、変更情報の変更濃度に、8ビット1ラインが必要であり、変更情報のカウント値に、2ビット1ラインが必要である。
一方、従来技術では、図16に示されているように、ユーザ指定の画素幅(トラッピング幅)の倍のメモリサイズを必要なので、メモリとして、参照領域に、8ビット8ラインが必要とされる。
図16に示されているように、ユーザ指定の画素幅(トラッピング幅)が大きいほど、従来技術で必要とするメモリと実施形態1で必要とするメモリとの差が広がる。なお、今まで、変更情報の変更濃度を8ビット1ラインとしていたが、変更情報の変更濃度にユーザ指定の画素幅分のラインメモリとして確保してもよい。その場合には、実施形態1は、従来技術のおよそ半分のメモリサイズで、従来技術と同じ効果を奏することができる。
また、本実施形態では、注目画素から処理方向の反対側にも、注目画素の変更を行うことができるので、従来技術2の有する「注目画素から処理方向にしか、注目画素の変更を行うことができない」という課題を、本実施形態により解消することができる。
上記の実施形態では、主走査方向に、画素のラインがあるとして、処理が行われたが、副走査方向に、画素のラインがあるとして、処理が行われても良い。
また、参照領域の大きさは、本実施形態に示したものに限られない。例えば、画像変形処理部102_2は、2×2(主走査×副走査)ではなく5×2(主走査×副走査)の参照領域を確保しても良い。
<実施形態2>
上記、実施形態1のように副走査方向に複数ラインにわたって濃度が一定である時、2画素の画像変更に対して、1ラインの画像の変更情報を保持することで正常な変更を示すことができた。しかしながら、1画素ずつ濃度が異なるグラデーションの時、2画素の画像変更に対して、1ラインしか画像の変更情報を保持できない場合、1ライン分データが損失してしまう。それは、対象画像の濃度が一定であれば、変更情報を保持し変更した画素数だけカウントすればよかった。しかし、対象画像がグラデーションである場合、変更情報を1ライン分しか保持できないためそれ以上のデータを損失してしまうからである。
これは、階調再現が豊かでないプリンタで忠実な再現を必要としない場合ならよいが、階調再現が豊かなプリンタにおいて忠実に再現することを求められる場合必須となる。
したがって、階調再現を求められる場合において、データの損失なく再現できるためには、あらかじめユーザが指定するトラッピングなどの画素幅分のラインメモリを保持する必要がある。
このとき、変更処理における変更を継続するか否かの条件は以下のようになる。すなわち、実施形態1ではS201_2、S201_3の変更処理において、一定濃度のオブジェクトの上部、下部、及びトラップ部の3パターンに分け、それぞれカウント値≧閾値という条件で変更を中止した。
しかし、グラデーション部において、カウント値≧閾値の条件だけでは注目画素と保持情報が同じでないとき、一時的に保持した情報がまだ画像に反映されない。
したがってカウント値≧閾値の条件だけではなく、指定画素幅分のラインメモリを保持するため保持情報があるか否かを条件に追加する必要がある。以下、例をあげて説明する。
以下では、図11の画像1100のようにマゼンタ版にグラデーション部A、B、Cがある場合に、トラッピングを2画素行う処理について説明する。ここで、グラデーション部A、B、Cは、それぞれ副走査方向に1画素毎に濃度10ずつ変化するグラデーションである。
実施形態2において、画像変形処理部102_2が実行する処理のフローは、以下の通りである。
まず、画像変形処理部102_2は、マゼンタ版の画像の上部を細らせる処理を実行し、処理1101において、マゼンタ版とシアン版との境界部で指定トラッピング幅の2倍の画素を太らせる処理を実行する。
そして、画像変形処理部102_2は、シアン版の下部も太らせる処理を実行し、出力画像を生成する。
その後、画像変形処理部102_2は、書き出しタイミングを主走査方向に所望の幅だけ変えることで所望の画像を生成する。
ここで、例えば、上記の所望の幅を、レジスタ設定部107に設定された情報(レジスタ値(閾値))と同一の数の画素数とする。
以下では、実施形態2に係る処理のうち、実施形態1と異なる処理が示されている、図11について説明を行う。
以下、実施形態2において、画像変形処理部102_2が実行する処理のフローを具体的に説明する。
図17に詳細が示されている、図11の処理1101に示されているように、画像変形処理部102_2は、グラデーションの画素を副走査方向にずらしていく処理である。すなわち、図17の画像1700を処理後の画像1706にする処理であり、これは、一画素ずつトラッピング幅だけずらしていく処理である。
まず、図17の画像1700において、注目画素が(h,v)〜(h+l,v)にあるとき、処理1701を参照しながら、グラデーションの画素を副走査方向にずらしていく処理について、以下で説明する。
まず、図2のS201_0で、画像変形処理部102_2は、参照領域確保処理を実行し、画像1101_1内の注目画素(h,v)において、2×2の参照領域1701_1を確保する。
次に、S201_1で、画像変形処理部102_2は、変更情報判定処理を実行し、参照領域内1701_1に変更情報があるか否かを判定する。
S201_1で、変更情報がないと判定された場合には、S201_3に処理が進み、変更情報があると判定された場合には、S201_2に処理が進む。
ここで、変更情報(h,v−1)は、画素保持情報1701_1’とカウント値V(1701_1”)とにより、以下のように表される。
すなわち、変更情報(h,v−1)={カウント値V(h,v−1)=0, 画素保持情報(h,v−1)}である。
また、本実施形態では、保持する画素情報が、上記の画素保持情報(h,v−1)として与えられる。
ここで、画素保持情報(h,v−1)={保持濃度1(h,v−1)=(0,0,0,0),保持濃度2(h,v−2)=(0,0,0,0)}である。この画素保持情報は、一例として、ユーザが指定する幅が2画素であるとし、2つの保持濃度を含んでいる。また、この保持濃度は実施形態1の変更濃度の役割のほかに、元の画素濃度を保持する役割を持つ。
上記のように、変更情報(h,v−1)において、カウント値V(h,v−1)=0、また、保持濃度1(h,v−1)=(0,0,0,0)、保持濃度2(h,v−2)=(0,0,0,0)である。
このため、画像変形処理部102_2は、カウント値V=0のため変更情報がないと判定して、参照領域参照型変更処理(S201_3)へ処理が進む。
S201_3で、画像変形処理部102_2は、実施形態1と同様に参照領域参照型変更処理を実行し、参照領域内の注目画素の濃度を0に変更され、画素1701_2が得られる。
ここで、注目画素の変更前の濃度は、画素(h,v)=(0,40,0,0)であるが、S201_3の処理により、注目画素の変更後の濃度は、画素’(h,v)=(0,0,0,0)となる。
次に、S201_4で、画像変形処理部102_2は、変更情報更新処理を実行し、カウント値V(h,v)を更新して、カウント値V(h,v)=2(1701_2”)とする。
すなわち、この結果、変更情報(h,v)={カウント値V(h,v)=1, 画素保持情報(h,v)}となる。そして、図11の保持濃度1102_1に示されているように、画素保持情報(h,v)={保持濃度1(h,v)=(0,40,0,0),保持濃度2(h,v−1)=(0,0,0,0)}となる。
そして、画像変形処理部102_2は、変更情報を保持する。
次に、S201_5で、画像変形処理部102_2は、未処理画素検出処理を実行し、未処理画素があるか否かを判定する。
S201_5で、未処理画素があると判定された場合には、S201_6に処理が進み、S201_5で、未処理画素がないと判定された場合には、S201_7に処理が進む。
S201_6で、画像変形処理部102_2は、画素更新処理を実行し、参照領域を、主走査方向に対し、1画素ずらし、S201_0に処理を進めて、参照領域確保処理を実行する。このような処理を繰り返して、画像変形処理部102_2は、主走査方向の全ての画素について処理を実行する。
ここで、参照領域1701_3は、主走査方向の最後の画素(h+l,v)の参照領域である。また、変更濃度1701_3’は、主走査方向の最後の画素(h+l,v)の変更濃度である。また、カウント値V(1701_3”)は、主走査方向の最後の画素(h+l,v)のカウント値Vである。画像変形処理部102_2は、画素(h,v)と同様に、画素(h+l,v)を画素’(h+l,v)に変更し、画素1701_4が得られる。
その結果、注目画素(h+l,v)で、変更前の濃度は、画素(h+l,v)=(0,40,0,0)であるが、変更後の濃度は、画素’(h+l,v)=(0,0,0,0)となる。そして、変更情報(h+l,v)={カウント値V(h+l,v)=1(1701_4”),画素保持情報(h+l,v)1701_4’}となる。また、画素保持情報(h+l,v)={保持濃度1(h+l,v)=(0,40,0,0),保持濃度2(h+l,v−1)=(0,0,0,0)}となる。
また、上記の処理の結果得られる、画素’(h,v)〜(h+l,v)は、図6の画像601から画像602に示されている。また、画素保持情報(h,v)〜(h+l,v)は、図6の画像605から画像606に示されている。
一方、(h,v)〜(h+l,v)に位置する画素の画像変形処理部102_2による処理後の出力結果は、図11の画像1101_1に示されており、その場合の保持濃度1,2が図11の画像1102_1に示されている。
次に、図2のS201_0で、画像変形処理部102_2は、参照領域確保処理を実行し、注目画素(h,v+1)において、2×2の参照領域1702_1を確保する。
次に、S201_1で、画像変形処理部102_2は、変更情報判定処理を実行し、参照領域1702_1内に変更情報があるか否かを判定する。
S201_1で、変更情報がないと判定された場合には、S201_3に処理が進み、変更情報があると判定された場合には、S201_2に処理が進む。
ここで、参照領域内のカウント値V(h,v)=1(1702_1”)であるため、S201_1で、画像変形処理部102_2は、変更情報があると判定する。
そのため、変更情報参照型変更処理(S201_2)に処理が進み、以下のような処理が実行される。
すなわち、画像変形処理部102_2は、ユーザによって設定されたレジスタ値とカウント値とを比較する。本実施形態では、一例として、ユーザによって設定されたレジスタ値が2であり、「カウント値V(h,v+1)=1<レジスタ値=2」であるので、画像変形処理部102_2は、注目画素の変更処理を進める。
ここで、画像変形処理部102_2は、注目画素の濃度と、保持濃度2(h,v)とを交換する処理を実行する。すなわち、注目画素の変更前の濃度は、画素(h,v+1)=(0,50,0,0)であるが、注目画素の変更後の濃度は、画素’(h,v+1)=(0,0,0,0)となる。また、保持濃度2(h+l,v−1)=(0,50,0,0)となる。
次に、S201_4で、画像変形処理部102_2は、変更情報更新処理を実行し、カウント値V(h,v+1)を更新して、カウント値V(h、v+1)=1(1702_2”)とする。そして、画像変形処理部102_2は、画素保持情報(h,v+1)を更新し、画素保持情報(h,v)(1701_2’)とする。その結果、変更情報(h,v+1)={カウント値V(h,v+1)=2,画素保持情報(h,v+1)}となる。また、画素保持情報(h,v+1)={保持濃度1(h,v+1)=(0,50,0,0),保持濃度2(h,v)=(0,40,0,0)}となる。
そして、画像変形処理部102_2は、変更情報を保持する。
次に、S201_5で、画像変形処理部102_2は、未処理画素検出処理を実行し、未処理画素があるか否かを判定する。
S201_5で、未処理画素があると判定された場合には、S201_6に処理が進み、S201_5で、未処理画素がないと判定された場合には、S201_7に処理が進む。
S201_6で、画像変形処理部102_2は、画素更新処理を実行し、参照領域を、主走査方向に対し、1画素ずらし、S201_0に処理を進めて、参照領域確保処理を実行する。このような処理を繰り返して、画像変形処理部102_2は、主走査方向の全ての画素について処理を実行する。
ここで、参照領域1702_3は、主走査方向の最後の画素(h+l,v+1)の参照領域である。また、変更濃度1702_3’は、主走査方向の最後の画素(h+l,v+1)の変更濃度である。また、カウント値V(1702_3”)は、主走査方向の最後の画素(h+l,v+1)のカウント値Vである。画像変形処理部102_2は、画素(h,v+1)と同様に、画素(h+l,v+1)を画素’(h+l,v+1)に変更し、画素1702_4が得られる。
その結果、注目画素(h+l,v+1)で、変更前の濃度は、画素(h+l,v+1)=(0,50,0,0)であるが、変更後の濃度は、画素’(h+l,v+1)=(0,0,0,0)となる。そして、変更情報(h+l,v+1)={カウント値V(h+l,v+1)=2(1701_4”),画素保持情報(h+l,v+1)1702_4’}となる。また、画素保持情報(h+l,v+1)={保持濃度1(h+l,v+1)=(0,50,0,0),保持濃度2(h+l,v)=(0,40,0,0)}となる。
また、上記の処理の結果得られる、画素’(h,v+1)〜(h+l,v+1)は、図6の画像603から画像604に含まれている。また、画素保持情報(h,v+1)〜(h+l,v+1)は、図6の画像607から画像608に示されている。
一方、(h,v+1)〜(h+l,v+1)に位置する画素の画像変形処理部102_2による処理後の出力結果は、図11の画像1101_2に示されており、その場合の保持濃度1、2が図11の画像1102_2に示されている。
次に、画像変形処理部102_2は、参照領域を、副走査方向に対し、1画素ずらし、S201_0に処理を進めて、参照領域確保処理を実行する。
S201_0で、画像変形処理部102_2は、参照領域確保処理を実行し、注目画素(h,v+2)において、2×2の参照領域1703_1を確保する。
次に、S201_1で、画像変形処理部102_2は、変更情報判定処理を実行し、参照領域内に変更情報があるか否かを判定する。
S201_1で、変更情報がないと判定された場合には、S201_3に処理が進み、変更情報があると判定された場合には、S201_2に処理が進む。
ここで、参照領域内のカウント値V(h,v+1)=2(1703_1’)であるため、S201_1で、画像変形処理部102_2は、変更情報があると判定する。
そのため、変更情報参照型変更処理(S201_2)に処理が進み、以下のような処理が実行される。
ここで、「カウント値V(h,v+1)=2≧レジスタ値=2」であるが、画像変形処理部102_2が保持している画素保持情報(1703_1”)があるため、注目画素の2画素前の画素の画素保持情報を参照して更新する。実施形態2で、グラデーション部などの再現を忠実に行うためにはカウント値≧レジスタ値の関係に加え保持濃度が0または保持濃度がない場合、更新作業を終了する。ここで、濃度とはマゼンタの濃度を指している。その結果、注目画素の変更前の濃度は、画素(h,v+2)=(0,60,0,0)であるが、注目画素の変更後の濃度は、画素’(h,v+2)=(0,40,0,0)(1703_2)を得る。
次に、S201_4で、画像変形処理部102_2は、変更情報更新処理を実行し、カウント値V(h,v+2)を更新する。その結果、変更情報(h,v+2)={カウント値V(h,v+2)=0(1703_2’), 画素保持情報(h,v+2)(1703_1’)}となる。また、画素保持情報(h,v+2)={保持濃度1(h,v+2)=(0,50,0,0),保持濃度2(h,v+1)=(0,60,0,0)}となる。
そして、画像変形処理部102_2は、変更情報を保持する。
次に、S201_5で、画像変形処理部102_2は、未処理画素検出処理を実行し、未処理画素があるか否かを判定する。
S201_5で、未処理画素があると判定された場合には、S201_6に処理が進み、S201_5で、未処理画素がないと判定された場合には、S201_7に処理が進む。
S201_6で、画像変形処理部102_2は、画素更新処理を実行し、参照領域を、主走査方向に対し、1画素ずらし、S201_0に処理を進めて、参照領域確保処理を実行する。このような処理を繰り返して、画像変形処理部102_2は、主走査方向の全ての画素について処理を実行する。
ここで、参照領域1703_3は、主走査方向の最後の画素(h+l,v+2)の参照領域である。また、変更濃度1703_3’は、主走査方向の最後の画素(h+l,v+2)の変更濃度である。また、カウント値V(1703_3”)は、主走査方向の最後の画素(h+l,v+2)のカウント値Vである。画像変形処理部102_2は、画素(h,v+2)と同様に、画素(h+l,v+2)を画素’(h+l,v+2)に変更し、画素1703_4が得られる。
その結果、注目画素(h+l,v+2)で、変更前の濃度は、画素(h+l,v+2)=(0,60,0,0)であるが、変更後の濃度は、画素’(h+l,v+2)=(0,40,0,0)となる。そして、変更情報(h+l,v+2)={カウント値V(h+l,v+2)=2(1703_4”),画素保持情報(h+l,v+2)1703_4’}となる。また、画素保持情報(h+l,v+2)={保持濃度1(h+l,v+2)=(0,50,0,0),保持濃度2(h+l,v+1)=(0,60,0,0)}となる。
また、上記の処理の結果得られる、画素’(h,v+2)〜(h+l,v+2)は、図6の画像609から画像610に含まれている。また、画素保持情報(h,v+2)〜(h+l,v+2)は、図6の画像613から画像614に示されている。
一方、(h,v+2)〜(h+l,v+2)に位置する画素の画像変形処理部102_2による処理後の出力結果は、図11の画像1101_3に示されており、その場合の保持濃度1、2は、図11の画像1102_3に示されている。
その後、画像変形処理部102_2は、参照領域を、副走査方向に、1画素ずらし、S201_0に処理を進めて、参照領域確保処理を実行する。
S201_0で、画像変形処理部102_2は、参照領域確保処理を実行し、注目画素(h,v+3)において、2×2の参照領域1704_1を確保する。
次に、S201_1で、画像変形処理部102_2は、変更情報判定処理を実行し、参照領域内に変更情報があるか否かを判定する。
S201_1で、変更情報がないと判定された場合には、S201_3に処理が進み、変更情報があると判定された場合には、S201_2に処理が進む。
ここで、参照領域内のカウント値V(h,v+2)=0(1704_1’)であるため、S201_1で、画像変形処理部102_2は、変更情報があると判定する。
そのため、変更情報参照型変更処理(S201_2)に処理が進み、以下のような処理が実行される。
ここで、「カウント値V(h,v+2)=0≦レジスタ値=2」であるが、画像変形処理部102_2が保持している画素保持情報(1704_1”)があるため、注目画素の2画素前の画素の画素保持情報を参照して更新する。その結果、注目画素の変更前の濃度は、画素(h,v+3)=(0,70,0,0)であるが、注目画素の変更後の濃度は、画素’(h,v+3)=(0,50,0,0)(1704_2)を得る。
次に、S201_4で、画像変形処理部102_2は、変更情報更新処理を実行し、カウント値V(h,v+3)を更新する。その結果、変更情報(h,v+3)={カウント値V(h,v+3)=0(1704_2’), 画素保持情報(h,v+3)(1704_1’)}となる。また、画素保持情報(h,v+3)={保持濃度1(h,v+3)=(0,70,0,0),保持濃度2(h,v+2)=(0,60,0,0)}となる。
そして、画像変形処理部102_2は、変更情報を保持する。
次に、S201_5で、画像変形処理部102_2は、未処理画素検出処理を実行し、未処理画素があるか否かを判定する。
S201_5で、未処理画素があると判定された場合には、S201_6に処理が進み、S201_5で、未処理画素がないと判定された場合には、S201_7に処理が進む。
S201_6で、画像変形処理部102_2は、画素更新処理を実行し、参照領域を、主走査方向に対し、1画素ずらし、S201_0に処理を進めて、参照領域確保処理を実行する。このような処理を繰り返して、画像変形処理部102_2は、主走査方向の全ての画素について処理を実行する。
ここで、参照領域1704_3は、主走査方向の最後の画素(h+l,v+3)の参照領域である。また、変更濃度1704_3’は、主走査方向の最後の画素(h+l,v+3)の変更濃度である。また、カウント値V(1704_3”)は、主走査方向の最後の画素(h+l,v+3)のカウント値Vである。画像変形処理部102_2は、画素(h,v+3)と同様に、画素(h+l,v+3)を画素’(h+l,v+3)に変更し、画素1704_4が得られる。
その結果、注目画素(h+l,v+3)で、変更前の濃度は、画素(h+l,v+3)=(0,70,0,0)であるが、変更後の濃度は、画素’(h+l,v+3)=(0,50,0,0)となる。そして、変更情報(h+l,v+3)={カウント値V(h+l,v+3)=2(1704_4”),画素保持情報(h+l,v+3)1704_4’}となる。また、画素保持情報(h+l,v+3)={保持濃度1(h+l,v+3)=(0,70,0,0),保持濃度2(h+l,v+3)=(0,60,0,0)}となる。
また、上記の処理の結果得られる、画素’(h,v+3)〜(h+l,v+3)は、図6の画像611から画像612に含まれている。また、画素保持情報(h,v+3)〜(h+l,v+3)は、図6の画像615から画像616に示されている。
一方、(h,v+3)〜(h+l,v+3)に位置する画素の画像変形処理部102_2による処理後の出力結果は、図11の画像1101_4に示されており、その場合の保持濃度1、2は、図11の画像1102_4に示されている。
その後、画像変形処理部102_2は、参照領域を、副走査方向に、1画素ずらし、S201_0に処理を進めて、参照領域確保処理を実行する。
S201_0で、画像変形処理部102_2は、参照領域確保処理を実行し、注目画素(h,v+4)において、2×2の参照領域1705_1を確保する。
次に、S201_1で、画像変形処理部102_2は、変更情報判定処理を実行し、参照領域内に変更情報があるか否かを判定する。
S201_1で、変更情報がないと判定された場合には、S201_3に処理が進み、変更情報があると判定された場合には、S201_2に処理が進む。
ここで、参照領域内のカウント値V(h,v+3)=0(1705_1’)であるため、S201_1で、画像変形処理部102_2は、変更情報があると判定する。
そのため、変更情報参照型変更処理(S201_2)に処理が進み、以下のような処理が実行される。
ここで、「カウント値V(h,v+2)=0≦レジスタ値=2」であるが、画像変形処理部102_2が保持している画素保持情報(1705_1”)があるため、注目画素の2画素前の画素の画素保持情報を参照して更新する。その結果、注目画素の変更前の濃度は、画素(h,v+4)=(0,70,0,0)であるが、注目画素の変更後の濃度は、画素’(h,v+4)=(0,60,0,0)(1705_2)を得る。
次に、S201_4で、画像変形処理部102_2は、変更情報更新処理を実行し、カウント値V(h,v+4)を更新する。その結果、変更情報(h,v+4)={カウント値V(h,v+4)=0(1705_2’), 画素保持情報(h,v+4)(1705_1’)}となる。また、画素保持情報(h,v+4)={保持濃度1(h,v+4)=(0,70,0,0),保持濃度2(h,v+3)=(0,70,0,0)}となる。
そして、画像変形処理部102_2は、変更情報を保持する。
次に、S201_5で、画像変形処理部102_2は、未処理画素検出処理を実行し、未処理画素があるか否かを判定する。
S201_5で、未処理画素があると判定された場合には、S201_6に処理が進み、S201_5で、未処理画素がないと判定された場合には、S201_7に処理が進む。
S201_6で、画像変形処理部102_2は、画素更新処理を実行し、参照領域を、主走査方向に対し、1画素ずらし、S201_0に処理を進めて、参照領域確保処理を実行する。このような処理を繰り返して、画像変形処理部102_2は、主走査方向の全ての画素について処理を実行する。
ここで、参照領域1705_3は、主走査方向の最後の画素(h+l,v+4)の参照領域である。また、変更濃度1705_3’は、主走査方向の最後の画素(h+l,v+4)の変更濃度である。また、カウント値V(1705_3”)は、主走査方向の最後の画素(h+l,v+4)のカウント値Vである。画像変形処理部102_2は、画素(h,v+4)と同様に、画素(h+l,v+4)を画素’(h+l,v+4)に変更し、画素1705_4が得られる。
その結果、注目画素(h+l,v+4)で、変更前の濃度は、画素(h+l,v+4)=(0,70,0,0)であるが、変更後の濃度は、画素’(h+l,v+4)=(0,60,0,0)となる。そして、変更情報(h+l,v+4)={カウント値V(h+l,v+4)=0(1705_4”),画素保持情報(h+l,v+4)1705_4’}となる。また、画素保持情報(h+l,v+4)={保持濃度1(h+l,v+4)=(0,70,0,0),保持濃度2(h+l,v+4)=(0,70,0,0)}となる。
また、上記の処理の結果得られる、画素’(h,v+4)〜(h+l,v+4)は、図6の画像617から画像618に含まれている。また、画素保持情報(h,v+4)〜(h+l,v+4)は、図6の画像621から画像622に示されている。
一方、(h,v+4)〜(h+l,v+4)に位置する画素の画像変形処理部102_2による処理後の出力結果は、図11の画像1101_5に示されており、その場合の保持濃度1、2は、図11の画像1102_5に示されている。
また、画素’(h,v+5)〜(h+l,v+5)は、図6の画像619から画像620に含まれている。また、画素保持情報(h,v+5)〜(h+l,v+5)は、図6の画像623から画像624に示されている。
また、画素’(h,v+6)〜(h+l,v+6)は、図6の画像625に含まれており、画素’(h,j)〜(h+l,j)は、図6の画像626に含まれている。
以上の処理は、グラデーションを含む画像600の上部を2画素細らせて、画像627が得られる。
さらに、画像変形処理部102_2が、図9と図10に示されている処理と同様の処理を行うことで所望のトラッピングが行われる。
実施形態2において、トラッピングに要するメモリは、図16に示されている。図16に示されているように、実施形態2により、グラデーションを含む複雑な画像に対しても、トラッピングを従来技術より少ないメモリで行うことが可能である。
上記、実施形態1、2では、一例として、トラッピング(画像の特定の領域のみを太らせる処理や細らせる処理)について説明したが、画像を全体的に太らせる処理や細らせる処理にも、実施形態1、2を適用することができる。
<他の実施形態>
以上、実施形態1、2を詳述したが、本発明は、例えば、システム、装置、方法、プログラム若しくはコンピュータ読取可能な記憶媒体(記録媒体)等としての実施態様をとることが可能である。具体的には、本発明を、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
尚、前述した実施形態の機能を実現するソフトウェアのプログラム(実施形態では図に示すフローチャートに対応したプログラム)を、システムあるいは装置に直接あるいは遠隔から供給することができる。また、本発明は、そのシステムあるいは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。
従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明は、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。
その場合、プログラムの機能を有していれば、オブジェクトコード、インタープリタにより実行されるプログラム、OSに供給するスクリプトデータ等の形態であっても良い。
プログラムを供給するための記録媒体は、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカードである。また、プログラムを供給するための記録媒体は、例えば、ROM、DVD(DVD−ROM,DVD−R)である。
その他、プログラムの供給方法として、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのものを供給しても良い。また、プログラムの供給方法として、圧縮され自動インストール機能を含むファイルをハードディスク等の記録媒体にダウンロードすることによって供給しても良い。また、本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり、本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明に含まれるものである。
また、本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布しても良い。この場合に、所定の条件をクリアしたユーザに対し、インターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせても良い。また、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて、本発明を実現することも可能である。
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される。また、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現され得る。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれても良い。その後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によっても前述した実施形態の機能が実現されても良い。