JP2015015589A - 画像処理装置、画像処理方法及びプログラム - Google Patents

画像処理装置、画像処理方法及びプログラム Download PDF

Info

Publication number
JP2015015589A
JP2015015589A JP2013140858A JP2013140858A JP2015015589A JP 2015015589 A JP2015015589 A JP 2015015589A JP 2013140858 A JP2013140858 A JP 2013140858A JP 2013140858 A JP2013140858 A JP 2013140858A JP 2015015589 A JP2015015589 A JP 2015015589A
Authority
JP
Japan
Prior art keywords
line
image processing
line width
data
text
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2013140858A
Other languages
English (en)
Other versions
JP6202908B2 (ja
Inventor
弘志 松田
Hiroshi Matsuda
弘志 松田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2013140858A priority Critical patent/JP6202908B2/ja
Publication of JP2015015589A publication Critical patent/JP2015015589A/ja
Application granted granted Critical
Publication of JP6202908B2 publication Critical patent/JP6202908B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Facsimile Image Signal Circuits (AREA)
  • Dot-Matrix Printers And Others (AREA)
  • Record Information Processing For Printing (AREA)
  • Image Processing (AREA)

Abstract

【課題】シンプルな操作で効果的に線幅を太らせる。
【解決手段】PSインタプリタは、設定される線幅に応じてプリントデータに含まれるラインの幅を変更するように、プリントデータであるベクタデータを定義する(S106)。レンダラは、定義したベクタデータに基づいて、ビットマップデータを生成する(S112)。プリンタドライバは、設定される線幅に応じてプリントデータに含まれるテキストの幅を変更するように、上記ビットマップデータに対して画像処理を施す。
【選択図】図4

Description

本発明は、線幅を太らせる技術に関するものである。
複写機、レーザプリンタ及びインクジェットプリンタ等の画像形成装置では、細線再現の変動要因が多数存在する。例えば、電子写真の場合、濃度変動、トナーの飛散、及び、主走査/副走査方向のプロセス特性等の影響が顕著に表れやすい。これらは、機種間差、個体差、経時変動、及び、メディアの搬送方向に依存した出力差等につながる。さらに、ホスト端末から印刷する場合には、使用するページ記述言語(PDL)によってもベクタ描画を実際のピクセルに割り当てるルール、即ち、塗りルールの違いにより、細線の再現が異なったものとなる。これらは忠実再現に関する課題であるが、必ずしも忠実再現だけが期待されるとも限らない。ホスト端末から印刷する場合には、ホスト端末のディスプレイ解像度と画像形成装置の出力解像度との違いから、ユーザの想定以上に細く見えてしまう場合もある。また、複数種類の画像形成装置を同時に使用する場合や、画像形成装置を入れ替えて使用する場合に、細線の再現幅を合わせたいという要求もある。これらの各種課題を解決するために、今日までに様々な細線補正の技術が提案されている。
例えば、特許文献1には、細線を描画するためのコマンドを含むとともに、当該コマンドにより指定される線幅を補正するための指示を含むPDLの描画コマンドを発行する技術が開示されている。しかし、一般的なPDLにおいて、テキストはアウトラインフォントとして表現される。アウトラインフォントはテキストの輪郭を構成する曲線を定義するのみで、その線(ステム)の幅を定義するものではない。従って、細線を描画するためのコマンドのように単純に線幅を調整するといった方法を使用することはできない。また、テキストの中にはビットマップフォントして表現されるものもあり、この場合はアウトラインフォントの情報もない。
特許文献2には、テキストの中に含まれる細線の幅を補正する技術として、パターンマッチングを用いる技術が開示されている。しかしながら、パターンマッチングによる太らせでは予め定義したパターンに依存した指向性が発生し易い。例えば、注目ピクセルの上か左のピクセルがテキストを構成するピクセルであった場合に注目ピクセルを塗り足す場合を考える。水平線及び垂直線は、この場合、1ピクセル塗り足されることになる。45度の斜め線は、左上から右下に描画される線は2ピクセル塗り足されることになる。右上から左下に描画される線は1ピクセル塗り足されることになる。このように線の描画方向により太り方が異なってしまう。上下左右の全方向に太らせればよいが、必ず2ピクセル太ることになってしまい、太り過ぎてしまう懸念がある。即ち、パターンマッチングによる細線の補正は指向性が課題といえる。
特開2009−105827号公報 特開2007−125827号公報
従来技術の特性を考慮すると、直線や曲線等のラインに対してはベクタデータ段階での線幅の補正、テキストに対してはパターンマッチングによる線幅の補正が好ましいと考えられる。しかしながら、補正量を別々に指定する方法では、テキストとラインとの太らせ方に差異が生じる可能性がある。パターンマッチングにより線幅を太らせる方法では、ピクセル単位での太り方になるのに対して、ベクタデータ段階では論理線幅を増やす必要があるためである。PDLではデバイス依存性をなくすために、描画用の座標空間として論理座標系を定義するものが多い。論理座標系でラインを太らせると、出力解像度に依存せずに太らせることが可能である。しかし、これは出力解像度によって太るピクセル数が異なることにも繋がり、パターンマッチングによるテキストの太らせと不一致が生じる。また、1つのメディアに複数のページを配置するN−UP処理等のレイアウト制御を行う場合も、縮小が起こるために不一致が生じる。
そこで、本発明の目的は、シンプルな操作で効果的に線幅を太らせることにある。
本発明の画像処理装置は、線幅を設定する設定手段と、前記設定手段により設定される線幅に応じてプリントデータに含まれるラインの幅を変更するように、前記プリントデータであるベクタデータを定義する定義手段と、前記定義手段により定義された前記ベクタデータに基づいて、ビットマップデータを生成する生成手段と、前記設定手段により設定される線幅に応じて前記プリントデータに含まれるテキストの幅を変更するように、前記ビットマップデータに対して画像処理を施す画像処理手段とを有することを特徴とする。
本発明によれば、シンプルな操作で効果的に線幅を太らせることが可能となる。
本発明の実施形態に係る画像形成装置の構成を示す図である。 本発明の実施形態に係る画像形成装置のソフトウェアモジュールの構成を示す図である。 操作部の液晶タッチパネルに表示される線幅補正の設定画面を示す図である。 コントローラユニットにて実行される基本プリント処理を示すフローチャートである。 線幅指定PSオペレータの再定義について説明するための図である。 出力画像の中でどのように線幅が太るのかについて説明するための図である。 図4に示す基本プリント処理におけるスレッドCの処理を詳細に示すフローチャートである。 図7のステップS1212において実行される、パターンマッチングによりテキストを太らせる処理の詳細を示すフローチャートである。 図8を用いて説明したパターンマッチングによりテキストを太らせる処理を適用した例を示す図である。 本発明の第2の実施形態が解決する課題を説明するための図である。 テキストとラインとの重なりを検知するための処理を示すフローチャートである。 図7のステップS1212において実行される、パターンマッチングによりテキストを太らせる処理の詳細を示すフローチャートである。 本発明の第3の実施形態において、図8に示す処理に代わって実行される処理を示すフローチャートである。
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
先ず、本発明の第1の実施形態について説明する。図1は、本発明の第1の実施形態に係る画像形成装置100の構成を示す図である。なお、本実施形態では、画像形成装置100単体の場合を例に挙げるが、ネットワークを介して接続されるホストコンピュータ上に多くの処理を分離実行させる構成であってもよい。
図1において、200は、コントローラユニットであり、画像データやデバイス情報の入出力を制御する。CPU1は、ROM3又はHDD4に記憶されたプログラムをRAM2に読み出して実行する。さらに、システムバス5に接続される各デバイスをCPU1が統括的に制御する。RAM2は、CPU1の主メモリ及びワークエリアとして機能する。ROM3には、電源ON時に実行されるブートプログラムが格納され、HDD4には、オペレーティングシステム及び画像形成装置100の制御プログラムが格納される。また、HDD4は、画像データやプリントデータ等の大容量データを一時的又は長期的に保持する目的でも使用される。
ネットワークI/F6は、ローカルエリアネットワーク13とのインタフェースであり、印刷データやデバイス情報の入出力を担う。操作部I/F7は、操作部14とのインタフェースであり、表示させる画像データを操作部14に対して出力する。また、操作部I/F7は、画像形成装置100のユーザが操作部14から入力した情報を、CPU1に伝える役割をする。操作部14は、出力器として液晶パネル及び音源を備え、入力器としてタッチパネル及びハードキーを備えるものである。
コントローラユニット200は、デバイスI/F8を介してプリンタエンジン15に接続される。デバイスI/F8は、CPU1の指示に基づき、画像データの送信処理、デバイス動作の指示処理、及び、デバイス情報の受信処理を行う。プリンタエンジン15は、コントローラユニット200から入力した画像データを媒体上に出力する出力部であり、電子写真方式及びインクジェット方式の何れでも構わない。
RIP(Raster Image Processor)9は、ディスプレイリスト(以下、DLと称す)をラスタイメージに展開する専用ハードウェアである。このディスプレイリストはRIP9が解釈可能な形式の中間データである。RIP9は、CPU1によりRAM2上に生成されたDLを高速、且つ、CPU1の実行と並列に処理するものである。プリンタ画像処理部10は、プリント出力画像データに対して、画像補正及びハーフトーニング等を行う。画像回転部12は、画像データの回転処理を行う。画像圧伸部11は、多値画像データに対してはJPEG形式の圧縮伸張処理を行い、2値画像データに対してはJBIG、MMR、MH形式の圧縮伸張処理を行う。
図2は、第1の実施形態に係る画像形成装置100のソフトウェアモジュールの構成を示す図である。図2に示した各ソフトウェアモジュールは、プログラムとしてHDD4に格納され、RAM2にロードされ、CPU1により実行されるものである。より具体的には、各ソフトウェアモジュールは、CPU1上で動作するOS(オペレーティングシステム)によりRAM2にロードされ、スレッド単位で実行権を付与され、実行されるものである。
データ受信部201は、ホスト端末から送信されたプリントデータを受信する。データ受信部201において受信したプリントデータは、ジョブ制御部202を介してジョブデータ管理部208で保持される。
ジョブ制御部202は、プリントデータの受信処理から印刷処理までのジョブ制御の全般を司る。PSインタプリタ203は、PostScript(登録商標)データを解釈して、中間データであるDLを生成する。生成されたDLは、ジョブ制御部202を介してジョブデータ管理部208で保持される。レンダラ204は、DLからビットマップイメージを生成するモジュールであり、多くの処理は専用ハードウェアRIP9により実行される。生成されたビットマップイメージは、ジョブ制御部202を介してジョブデータ管理部208で保持される。プリンタドライバ205は、デバイスI/F8を介してプリンタエンジン15に対する印刷指示処理とビットマップイメージの送信処理とを実行する。この際に、プリンタドライバ205は、プリンタ画像処理部10による画像補正も行う。ユーザインタフェース206は、操作部I/F7を介して、操作部14を制御するモジュールである。主に、ユーザインタフェース206は、操作部14の液晶パネルに表示するデータを生成し、タッチパネルからの入力に従って液晶パネルの表示を更新する。また、タッチパネルからの入力が何らかのジョブ実行指示であった場合、ユーザインタフェース206は、ジョブ制御部202に指示を伝達する。ジョブデータ管理部208は、プリントデータ、DL、ビットマップイメージのそれぞれを一時的又は長期的に管理するデータベースである。
図3は、操作部14の液晶タッチパネルに表示される線幅補正の設定画面を示す図である。「線幅補正」項目301において、「ON」302が押下されると、線幅補正が有効となり、「OFF」303が押下されると、線幅補正が無効となる。また、「太らせ幅(ピクセル)」項目304において、「1」305が押下されると、太らせ幅は1ピクセルと設定され、「2」306が押下されると、太らせ幅は2ピクセルと設定される。ここで、CPU1は、設定画面上の押下された位置から選択された項目を判定し、その設定値をRAM2に保存する。例えば、CPU1は、液晶タッチパネル上の「ON」302が押下されたことを検知して、RAM2に細線補正が有効という情報を記憶する。同様に、CPU1は、液晶タッチパネルの「1」305の領域が押下されたことを検知して、RAM2に太らせ幅1ピクセルという情報を記憶する。
図4は、コントローラユニット200にて実行されるプリント処理を示すフローチャートである。なお、図4のフローチャートに示す処理は、HDD4に記憶された図2の各ソフトウェアモジュール内のプログラムがRAM2に読み出され、CPU1により実行されることにより実現される。また、図4のフローチャートに示す処理では、スレッドA、スレッドB及びスレッドCの三つのスレッドが並列に実行される。各スレッドは、オペレーティングシステムにより時分割され、その実行権が割り振られる。時分割の単位は十分に小さいため、三つのスレッドは並列動作するとみなすことができる。オペレーティングシステムによるマルチスレッディング処理は一般に広く知られた技術であるため、詳細な説明は省略する。スレッドA、スレッドB及びスレッドCは、画像形成装置100の起動時にオペレーティングシステムにより生成される常駐スレッドである。
先ず、スレッドAについて説明する。ステップS101において、データ受信部201は、プリントデータであるPSデータを受信し、ジョブ制御部202を介してジョブデータ管理部208に格納する。ステップS102において、PSインタプリタ203は、出力解像度及びレイアウトの内容に応じて、論理座標とデバイス座標間のアフィン変換マトリックスをPSインタプリタ203自身に設定する。画像形成装置100では、出力解像度として600dpiと1200dpiとの二つをサポートしているものとする。また、画像形成装置100では、1ページを一枚の用紙に配置する1UPと2ページを一枚の用紙の左右に並べて配置する2UPとの二つのレイアウトをサポートしているものとする。PostScriptでは、論理座標の基準単位は、ポイント(1ポイントは1/72インチ)であり、座標原点はページの左下角の点となる。また、デバイス座標の基準単位はピクセルであり、座標原点は用紙の左上角の点となる。このとき、LTRサイズ(8.5×11インチ)のページを1UP、600dpiで出力した場合のアフィン変換マトリックスは(8.333,0,0,−8.333,0,6600)となる。出力解像度とレイアウト内容との設定値は、PSデータとともに送信されるジョブチケットにより指定される。ジョブチケットにより設定された設定値は、ジョブ制御部202からPSインタプリタ203に通知される。
ステップS103において、PSインタプリタ203は、線幅補正の設定が有効であるか否かを判定する。ここで、PSインタプリタ203は、操作部14により設定された線幅補正の設定値をRAM2から読み出すことにより有効であるか否かを判定する。線幅補正の設定が有効である場合、処理はステップS104に移行する。一方、線幅補正の設定が有効ではない場合、処理はステップS107に移行する。
ステップS104において、PSインタプリタ203は、図3の設定画面上の操作の結果RAM2に記憶された太らせ幅(線幅を太らせるピクセル数)を、取得する。図3を用いて説明したように、画像形成装置100では、1ピクセル及び2ピクセルの値をサポートしている。ステップS105において、PSインタプリタ203は、論理座標とデバイス座標間の変換マトリックスを取得し、太らせるピクセル数から太らせる論理線幅(以下、論理太らせ幅と称す)を逆算するPSコードを生成する。ステップS106において、PSインタプリタ203は、生成したPSコードを用いて、論理太らせ幅だけ太くなるように線幅指定PSオペレータ(setlinewidth)を再定義する。再定義の詳細については後述する。
ステップS107において、PSインタプリタ203は、PSデータを解析処理し、当該ページのディスプレイリストを生成する。ここで、ステップS105及びS106で再定義された論理線幅を太らせるための処理は、ステップS107において実際に線幅指定PSオペレータによって線幅が指定された際に実行されることに留意されたい。即ち、ステップS107において、PSインタプリタ203は、指定されたピクセル数分だけ、論理線幅を太らせる処理をPSデータに対して実行する。また、本実施形態では、線幅指定PSオペレータの再定義により論理線幅を太らせる処理を実現するが、線幅指定PSオペレータの実行モジュール内に同様の実装を行う方法も可能である。いずれにせよ、線幅指定PSオペレータによる線幅指定時に論理線幅を補正することにより、ラスタライズ後のビットマップデータに対する補正ではなく、ベクタデータ(PSデータ)段階での線幅の補正が可能となる。
ステップS108において、PSインタプリタ203は、レンダラ204に対してディスプレイリストの生成完了を通知し、レンダリングを依頼する。ステップS109において、PSインタプリタ203は、全ページの処理を終了したか否かを判定する。全ページの処理が終了した場合、本フローチャートに示す処理は終了する。一方、全ページの処理が終了していない場合、残りのページについて処理を継続する。
スレッドBの処理は、レンダラ204によって実行される。ステップS111において、レンダラ204は、1ページ分のディスプレイリストの生成完了を待つ。ディスプレイリストの生成完了が通知されると、処理はステップS111からステップS112に移行する。ステップS112において、レンダラ204は、ディスプレイリストを用いてレンダリングを行うことにより、ビットマップデータ及び属性マップを生成する。ここで、生成されるビットマップデータは、CMYKの各色8ビットの諧調を有し、属性マップはビットマップデータの各ピクセルに対応した2ビットの情報を有する。ディスプレイリスト内には、各オブジェクトの属性フラグが含まれており、オブジェクトがグラフィックス、イメージ及びテキストの何れであるかが識別される。この属性フラグがレンダリング時に属性マップに展開される。即ち、属性マップは各ピクセルがグラフィックス(00)、テキスト(01)及びイメージ(10)の何れであるかを示す。
ステップS113において、レンダラ204は、ビットマップデータ及び属性マップをジョブデータ管理部208に保存し、プリンタドライバ205にプリントを依頼する。プリントの依頼は、プリンタドライバ205に対してレンダリング終了通知を送信することにより行われる。プリンタドライバ205は、プリンタエンジン15と同期して処理を実行するために、スレッドCとしてスレッドAとは別スレッドで実行される。ステップS121において、依頼を受けたプリンタドライバ205は、ビットマップデータに対して画像処理を施す。そして、プリンタドライバ205は、プリンタエンジン15に対してプリント開始要求コマンドを送信し、画像データを転送する。ここで行う画像処理には、ハーフトーニング処理とテキストを太らせる処理とがある。なお、ステップS121の詳細については後述する。
ステップS114において、レンダラ204は、全ページのレンダリングが完了したか否かを判定する。全ページのレンダリングが完了した場合、スレッドBの処理は終了する。一方、全ページのレンダリングが完了していない場合、処理はステップS111に戻る。
次に、図5を参照しながら、線幅指定PSオペレータの再定義について説明する。図5(A)は、線幅指定PSオペレータを指定された幅よりも1ピクセル太らせるように再定義したPSコードを示している。このPSコードをPSインタプリタ203に実行させることにより線幅指定PSオペレータの再定義が完了する。図5(A)では、2〜4行目が再定義した処理の内容を示し、これを1行目及び5行目のPSコードにより既存の線幅指定PSオペレータの動作から変更する。2行目では、先ず、現在の論理座標とデバイス座標間の変換マトリックスを取得し(matrix currentmatrix)、その変換マトリックスの第一要素を取り出し(0 get)、絶対値に変換(abs)し、変倍率を求めることが定義されている。この値は1ポイントが何ピクセルに相当するかを示す。また、2行目では、変倍率と線幅指定PSオペレータに指定された論理線幅との積を計算し(dup 3 1 roll mul)、論理線幅(ポイント)をデバイス線幅(ピクセル)に変換することが定義されている。3行目では、計算したデバイス線幅に1を足して(1 add)、変倍率で割る(div)ことにより1ピクセル太らせた場合の論理線幅(ポイント)を計算することが定義されている。4行目では、その値を線幅値として設定する(systemdict /setlinewidth get exec)ことが定義されている。1行目の左括弧({)と5行目の右括弧(})に挟まれた間のPSコードが実際に実行されるのは、再定義された線幅指定PSオペレータが呼び出された際になる。図5(B)は、同様に線幅指定PSオペレータを指定された幅よりも2ピクセル太らせるように再定義したPSコードを示している。図5(A)との違いは、3行目の加算値が2となっている(2 add)箇所のみである。
次に、図6を参照しながら、出力画像の中でどのように線幅が太るのかについて説明する。図6(A)は、論理線幅が1.8ピクセルの垂直線が指定された場合を仮想的に示している。マス目の1マスは1ピクセルを示す。便宜的に特定解像度に関連付けた表記をしているが、論理線幅は解像度とは関係しないことに注意されたい。即ち、出力解像度が2倍になった場合、図6(A)の1マスは4マスに分割され、論理線幅は3.6ピクセルになる。ラインの位置は中心線の位置に指定され、中心線の両側に0.9ピクセルの厚さを持った塗りが期待される描画となる。図6(B)は、論理線幅を1ピクセル増やして2.8ピクセルとした場合を仮想的に示している。中心線の両側の厚みをそれぞれ0.5ピクセルずつ増やすことにより線幅が1ピクセル太くなる。図6(C)は、これを実際のデバイス座標上での塗りに変換した結果であるデバイス線幅を示している。デバイス座標上では整数のピクセル分しか塗れないため、デバイス線幅は四捨五入して3ピクセルとなる。1ピクセル太らせた場合に水平線又は垂直線の場合は上下、左右の何れかに追加ピクセルが偏る。しかしながら、斜め線や曲線の場合は論理座標上で中心線から均等に太らせることにより、追加ピクセルが特定方向に偏ることはない。
図7は、図4に示すプリント処理におけるスレッドC(即ち、ステップS121)の処理を詳細に示すフローチャートである。スレッドCの処理は、プリンタドライバ205により実行される。
ステップS1211において、プリンタドライバ205は、レンダリング終了通知の受信を待つ。図4のステップS113でレンダリング終了通知が発行されると、処理はステップS1212に移行する。ステップS1212において、プリンタドライバ205は、属性マップを用いて、ビットマップデータに画像処理を施す。画像処理の内容としては、テキストを太らせる処理、及び、ハーフトーニング処理であり、プリンタ画像処理部10を用いてハードウェア処理されるものである。テキストを太らせる処理の詳細については後述する。
ステップS1213において、プリンタドライバ205は、プリンタエンジン15に対してプリント開始要求コマンドを送信し、画像データを転送する。なお、ステップS1213において、プリンタドライバ205は、プリンタエンジン15との同期処理も行う。プリンタエンジン15は、所定のスピード以上では出力できない。コントローラユニット200は、そのRIP処理が速すぎる場合にプリンタエンジン15の印字出力を待つ必要がある。
ステップS1214において、プリンタドライバ205は、次ページがレンダリング済みであるか否かを判定する。次ページがレンダリング済みである場合、処理はステップS1212に戻る。次ページがレンダリング済みではない場合、処理はステップS1215に移行する。
ステップS1215において、プリンタドライバ205は、全ページの画像転送が完了したか否かを判定する。全ページの画像転送が完了した場合、処理はステップS1216に移行する。一方、全ページの画像転送が完了していない場合、処理はステップS1211に戻る。ステップS1216において、プリンタドライバ205は、プリンタエンジン15に対してプリント完了要求コマンドを送信する。
図8は、図7のステップS1212において実行される、パターンマッチングによりテキストを太らせる処理の詳細を示すフローチャートである。ステップS121201において、プリンタドライバ205は、線幅補正の設定が有効であるか否かを判定する。プリンタドライバ205は、操作部14により設定された線幅補正の設定値をRAM2から読み出すことにより、線幅補正の設定が有効であるか否かを判定する。線幅補正の設定が有効である場合、処理はステップS121202に移行する。一方、線幅補正の設定が無効である場合、図8に示す処理は終了する。
ステップS121202において、プリンタドライバ205は、注目ピクセルを画像データの左上ピクセルに設定する。ステップS121203において、プリンタドライバ205は、太らせるピクセル数が1ピクセルであるか否かを判定する。太らせるピクセル数が1ピクセルである場合、処理はステップS121204に移行する。一方、太らせるピクセル数が1ピクセルではない場合(太らせるピクセル数が2ピクセルである場合)、処理はステップS121205に移行する。
ステップS121204において、プリンタドライバ205は、参照ピクセルを注目ピクセルの上ピクセル及び左ピクセルに設定する。ステップS121205において、プリンタドライバ205は、参照ピクセルを注目ピクセルの上下左右の4ピクセルに設定する。
ステップS121206において、プリンタドライバ205は、参照ピクセルの何れかの属性がテキストであるか否かを属性マップにより判定する。参照ピクセルの何れかの属性がテキストである場合、処理はステップS121207に移行する。一方、参照ピクセルの何れの属性もテキストではない場合、処理はステップS121209に移行する。
ステップS121207において、プリンタドライバ205は、テキスト属性の参照ピクセルの中で最高濃度のピクセルの色値を取り出す。ステップS121208において、プリンタドライバ205は、注目ピクセルの色値を、ステップS121207で取り出した色値で上書きする。ステップS121209において、プリンタドライバ205は、全ピクセルの処理が終了したか否かを判定する。全ピクセルの処理が終了した場合、図8に示す処理は終了する。一方、全ピクセルの処理が終了していない場合、処理はステップS121210に移行する。
ステップS121210において、プリンタドライバ205は、注目ピクセルを次のピクセルに設定する。そして、処理はステップS121203に戻り、処理を繰り返す。ここで、次のピクセルとは、注目ピクセルのスキャンライン方向右隣のピクセルを意味する。しかし、注目ピクセルがスキャンライン右端のピクセルである場合に限り、1ライン下のスキャンラインの左端ピクセルが次のピクセルとなる。
図9は、図8を用いて説明したパターンマッチングによりテキストを太らせる処理の具体例を示す図である。図9(A)は、テキストの一部分をピクセル単位で示した例を示している。マス目の1マスは、1ピクセルを示す。濃く塗られたマスがテキストを構成するピクセルであり、当該ピクセルに対応する属性マップの属性もテキストとなる。図9(B)は、1ピクセル太らせる処理を実施した場合に追加で塗られるピクセルを示している。追加で塗られるピクセルはマスの中央にドットを配したピクセルである。参照ピクセルが上ピクセル及び左ピクセルになるため、右側のピクセル及び下側のピクセルが塗られることになる。図9(C)は、最終的に1ピクセル太らせるための塗りを実施した結果を示している。図9(D)は、2ピクセル太らせる処理を実施した場合に追加で塗られるピクセルを示している。同様に、追加で塗られるピクセルは、マスの中央にドットを配したピクセルである。参照ピクセルが上下左右の4ピクセルになるため、上下左右の全方向にピクセルが付加される。図9(E)は、最終的に2ピクセル太らせるための塗りを実施した結果を示している。
以上の手順により、ライン(線)に対してはPSデータレベル、即ち、ベクタデータ段階で線幅を太らせる処理を実行し、テキスト(文字)に対してはパターンマッチングにより太らせる処理を実行することができる。従って、本実施形態によれば、ベクタデータ段階で線幅を太らせる量を、テキストを太らせる量と連動させることにより、一貫性をもってラインとテキストとを太らせることが可能となる。また、解像度を変更した場合や、N−UP処理に代表されるレイアウト処理を行った場合でも、ラインとテキストとを太らせる量に一貫性を持たせることができる。従って、操作者は、線幅を太らせる量だけを設定すればよく、シンプルな操作により効果的に線幅を太らせることができる。
次に、本発明の第2の実施形態について説明する。なお、第2の実施形態に係る画像形成装置は、図1及び図2に示した第1の実施形態に係る画像形成装置100と同様の構成であるため、以下の説明においても、図1及び図2に示した符号を用いるものとする。また、以下では、第1の実施形態と相違する点に主眼をおいて説明を行うものとする。
図10(A)は、図9(A)に示したテキスト上に、左上から右下に走る45度のラインを重ねて描画した例を示している。図10(B)は、図10(A)に示したテキストを1ピクセル太らせる処理を実行した場合に追加で塗られるピクセルを示している。追加で塗られるピクセルは、マスの中央にドットを配したピクセルである。参照ピクセルが上ピクセルと左ピクセルになるため、右側のピクセルと下側のピクセルとが塗られることになる。図10(C)は、最終的に1ピクセル太らせる処理を実行して塗りを実施した結果を示している。図10(B)及び図10(C)に示すように、テキストを太らせることによりライン上にテキストが浸食し、その部分だけラインが細くなる結果となっている。テキストとラインとの濃度が大きく異なる場合、この影響が非常に目立ち易い。第2の実施形態は、このような課題を解決するものである。
図11は、テキストとラインとの重なりを検知するための処理を示すフローチャートである。図11に示す処理は、図4のステップS108に代わって実行されるものである。即ち、第2の実施形態では、図4のステップS107の後に図11に示す処理が実行され、図11に示す処理の後に図4のステップS109が実行されることになる。
ステップS1101において、PSインタプリタ203は、テキストの線幅補正フラグをオンに設定する。ステップS1102において、PSインタプリタ203は、PSデータを解釈して描画コマンドを取得する。
ステップS1103において、PSインタプリタ203は、取得した描画コマンドがテキスト描画コマンドであるか否かを判定する。テキスト描画コマンドである場合、処理はステップS1104に移行する。一方、テキスト描画コマンドでない場合、処理はステップS1105に移行する。
ステップS1104において、PSインタプリタ203は、当該テキスト描画コマンドにより描画されるテキストのバウンディングボックスを取得し、バウンディングボックスリストに追加する。ステップS1105において、PSインタプリタ203は、取得した描画コマンドがライン描画コマンドであるか否かを判定する。ライン描画コマンドである場合、処理はステップS1106に移行する。一方、ライン描画コマンドではない場合、処理はステップS1108に移行する。
ステップS1106において、PSインタプリタ203は、ライン描画コマンドにより指示されたラインの下にテキストがあるか否かを判定する。ラインの下にテキストがあるか否かの判定は、バウンディングボックスリストにラインと交わるバウンディングボックスがあるか否かにより判定される。即ち、ラインと交わるバウンディングボックスがある場合、ラインの下にテキストがあると判定され、ラインと交わるバウンディングボックスがない場合、ラインの下にテキストがないと判定される。ラインの下にテキストがある場合、処理はステップS1107に移行する。一方、ラインの下にテキストがない場合、処理はステップS1108に移行する。
ステップS1107において、PSインタプリタ203は、テキストの線幅補正フラグをオフに設定する。ステップS1108において、PSインタプリタ203は、描画オブジェクトをディスプレイリストに追加する。
ステップS1109において、PSインタプリタ203は、ページ内の全描画処理が終了したか否か判定する。ページ内の全描画処理が終了した場合、処理はステップS1110に移行する。一方、ページ内の全描画処理が終了していない場合、処理はステップS1102に戻る。ステップS1110において、PSインタプリタ203は、テキストの線幅補正フラグの値をページに関連付けてジョブデータ管理部208に保存する。従って、複数ページからなるPSデータの場合、複数の線幅補正フラグの値がジョブデータ管理部208に保持される。
図12は、図7のステップS1212において実行される、パターンマッチングによりテキストを太らせる処理の詳細を示すフローチャートである。即ち、図12に示す処理は、第1の実施形態における図8に示す処理に代わって実行される処理である。
ステップS121201´において、プリンタドライバ205は、線幅補正の設定が有効であり、且つ、テキストの線幅補正フラグがオンであるか否かを判定する。線幅補正フラグは、ジョブデータ管理部208において管理される当該ページに関連する線幅補正フラグである。線幅補正の設定が有効であり、且つ、テキストの線幅補正フラグがオンである場合、処理はステップS121202に移行する。一方、線幅補正の設定が無効である場合、又は、テキストの線幅補正フラグがオフである場合、処理は終了する。なお、ステップS121201´以外の処理は、図8に示した同一符号の処理と同様であるため、説明を省略する。
以上により、テキストの上にラインが重なっていると判定されたページに関しては、パターンマッチングによりテキストを太らせる処理は一切実行されなくなる。従って、第2の実施形態によれば、テキストとラインとの重なりに伴う弊害を回避することができる。
次に、本発明の第3の実施形態について説明する。第3の実施形態に係る画像形成装置は、図1及び図2に示した第1の実施形態に係る画像形成装置100と同様の構成であるため、以下の説明においても、図1及び図2に示した符号を用いるものとする。また、以下では、第1の実施形態と相違する点に主眼をおいて説明を行うものとする。
第2の実施形態では、テキストの上にラインが重なるページでは、パターンマッチングによりテキストを太らせる処理を実行しないことにより、テキストを太らせたことによるラインへの浸食を回避する方法について示した。第3の実施形態は、第2の実施形態とは異なる方法により、テキストを太らせたことによるラインへの浸食を回避するものである。
第1の実施形態では、属性マップに定義される属性は、グラフィックス、イメージ及びテキストの3種類であったが、第3の実施形態では、これにラインを追加した4種類の属性とする。即ち、イメージ(10)、テキスト(01)、ラインを除くグラッフィクス(00)、ライン(11)の4属性になる。これは、図4のステップS111において、ライン描画が指定されたディスプレイリスト上の描画オブジェクトに対して、レンダラ204がライン属性を付与することにより実現される。そして、パターンマッチングによりテキストを太らせる場合において、注目ピクセルがライン属性である場合に当該ピクセルに対して太らせる処理を実施しないことにより、テキストを太らせることによるラインへの浸食が回避される。
図13は、第3の実施形態における、パターンマッチングによりテキストを太らせる処理の詳細を示すフローチャートである。即ち、第3の実施形態では、図8に示す処理に代わって、図13に示す処理が実行される。図13において、ステップS121201及びS121202は、図8に示したステップS121201及びS121202と同様の処理である。
ステップS201において、プリンタ画像処理部10は、注目ピクセルの属性がラインであるか否かを判定する。注目ピクセルの属性がラインである場合、処理はステップS121209に移行する。一方、注目ピクセルの属性がラインではない場合、処理はステップS121203に移行する。
図13におけるステップS121203〜S121210の処理は、図8における同一符号の処理と同様である。以上のように、第3の実施形態では、ステップS201で注目ピクセルの属性がラインであるか否かを判定し、注目ピクセルの属性がラインである場合、テキストを太らせる処理をスキップする。これにより、テキストを太らせることによるラインへの浸食を完全に防止しつつ、テキストの太らせとラインの太らせとを同時に実現することができる。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
201:データ受信部、202:ジョブ制御部、203:PSインタプリタ、204:レンダラ、205:プリンタドライバ、206:ユーザインタフェース、208:ジョブデータ管理部

Claims (6)

  1. 線幅を設定する設定手段と、
    前記設定手段により設定される線幅に応じてプリントデータに含まれるラインの幅を変更するように、前記プリントデータであるベクタデータを定義する定義手段と、
    前記定義手段により定義された前記ベクタデータに基づいて、ビットマップデータを生成する生成手段と、
    前記設定手段により設定される線幅に応じて前記プリントデータに含まれるテキストの幅を変更するように、前記ビットマップデータに対して画像処理を施す画像処理手段とを有することを特徴とする画像処理装置。
  2. 前記定義手段は、論理座標とデバイス座標間の変換マトリックスを用いて、前記設定手段により設定された前記デバイス座標において太らせる線幅から前記論理座標におけるラインの幅を算出するように、前記ベクタデータを定義することを特徴とする請求項1に記載の画像処理装置。
  3. 前記プリントデータにおいてテキストとラインとが重ねて描画されるか否かを判定する判定手段を更に有し、
    前記画像処理手段は、前記判定手段によりテキストとラインとが重ねて描画されると判定された場合、前記ビットマップデータに対して画像処理を実行しないことを特徴とする請求項1又は2に記載の画像処理装置。
  4. 前記画像処理手段は、前記ビットマップデータのうちのライン属性のデータに対しては前記画像処理を施さないことを特徴とする請求項1又は2に記載の画像処理装置。
  5. 画像処理装置によって実行される画像処理方法であって、
    線幅を設定する設定ステップと、
    前記設定ステップにより設定される線幅に応じてプリントデータに含まれるラインの幅を変更するように、前記プリントデータであるベクタデータを定義する定義ステップと、
    前記定義ステップにより定義された前記ベクタデータに基づいて、ビットマップデータを生成する生成ステップと、
    前記設定ステップにより設定される線幅に応じて前記プリントデータに含まれるテキストの幅を変更するように、前記ビットマップデータに対して画像処理を施す画像処理ステップとを有することを特徴とする画像処理方法。
  6. 線幅を設定する設定ステップと、
    前記設定ステップにより設定される線幅に応じてプリントデータに含まれるラインの幅を変更するように、前記プリントデータであるベクタデータを定義する定義ステップと、
    前記定義ステップにより定義された前記ベクタデータに基づいて、ビットマップデータを生成する生成ステップと、
    前記設定ステップにより設定される線幅に応じて前記プリントデータに含まれるテキストの幅を変更するように、前記ビットマップデータに対して画像処理を施す画像処理ステップとをコンピュータに実行させるためのプログラム。
JP2013140858A 2013-07-04 2013-07-04 画像処理装置、画像処理方法及びプログラム Active JP6202908B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013140858A JP6202908B2 (ja) 2013-07-04 2013-07-04 画像処理装置、画像処理方法及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013140858A JP6202908B2 (ja) 2013-07-04 2013-07-04 画像処理装置、画像処理方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2015015589A true JP2015015589A (ja) 2015-01-22
JP6202908B2 JP6202908B2 (ja) 2017-09-27

Family

ID=52437031

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013140858A Active JP6202908B2 (ja) 2013-07-04 2013-07-04 画像処理装置、画像処理方法及びプログラム

Country Status (1)

Country Link
JP (1) JP6202908B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017047602A (ja) * 2015-09-02 2017-03-09 シャープ株式会社 画像処理装置、画像処理方法、及びプログラム
JP2017147620A (ja) * 2016-02-17 2017-08-24 キヤノン株式会社 画像形成装置、方法およびプログラム
JP2020116800A (ja) * 2019-01-22 2020-08-06 キヤノン株式会社 画像形成装置、その制御方法、およびプログラム
JP2020146851A (ja) * 2019-03-11 2020-09-17 キヤノン株式会社 画像形成装置、その制御方法、およびプログラム
US11057528B2 (en) 2018-09-27 2021-07-06 Canon Kabushiki Kaisha Information processing apparatus, method and storage medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006146836A (ja) * 2004-11-25 2006-06-08 Oki Data Corp 画像処理装置及び画像形成システム
JP2013125996A (ja) * 2011-12-13 2013-06-24 Canon Inc 画像処理装置、画像処理方法、コンピュータプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006146836A (ja) * 2004-11-25 2006-06-08 Oki Data Corp 画像処理装置及び画像形成システム
JP2013125996A (ja) * 2011-12-13 2013-06-24 Canon Inc 画像処理装置、画像処理方法、コンピュータプログラム

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017047602A (ja) * 2015-09-02 2017-03-09 シャープ株式会社 画像処理装置、画像処理方法、及びプログラム
JP2017147620A (ja) * 2016-02-17 2017-08-24 キヤノン株式会社 画像形成装置、方法およびプログラム
US11057528B2 (en) 2018-09-27 2021-07-06 Canon Kabushiki Kaisha Information processing apparatus, method and storage medium
JP2020116800A (ja) * 2019-01-22 2020-08-06 キヤノン株式会社 画像形成装置、その制御方法、およびプログラム
JP7282530B2 (ja) 2019-01-22 2023-05-29 キヤノン株式会社 画像形成装置、その制御方法、およびプログラム
JP2020146851A (ja) * 2019-03-11 2020-09-17 キヤノン株式会社 画像形成装置、その制御方法、およびプログラム
JP7250574B2 (ja) 2019-03-11 2023-04-03 キヤノン株式会社 画像形成装置、その制御方法、およびプログラム

Also Published As

Publication number Publication date
JP6202908B2 (ja) 2017-09-27

Similar Documents

Publication Publication Date Title
JP4436851B2 (ja) プリンタドライバ・プログラムおよび画像形成装置
US8958085B2 (en) Image processing system, image forming apparatus, image processing program, and image processing method
US8830506B2 (en) Image processing system utilizing plural parallel processors and image processing method utilizing plural parallel processors
JP6202908B2 (ja) 画像処理装置、画像処理方法及びプログラム
US8780127B2 (en) Image forming apparatus, method for controlling same, and storage medium
JP2011070337A (ja) 画像処理システム及び画像処理プログラム
JP4375449B2 (ja) 画像処理装置、画像処理プログラム、および画像処理方法
JP4396670B2 (ja) 画像形成装置、画像形成方法及びプログラム
JP2013126178A (ja) 画像処理装置、及び画像処理装置の制御プログラム
JP6482432B2 (ja) 描画命令処理装置および描画命令処理方法
JP2001293936A (ja) 描画情報処理装置および描画情報処理方法
JP4502908B2 (ja) 画像処理装置及び画像処理システム
JP2006159738A (ja) 印刷制御装置およびそのデータ処理方法並びに記憶媒体。
JP2016066222A (ja) 画像処理装置、画像処理方法、コンピュータプログラム
JP5424546B2 (ja) 画像処理装置及び画像形成システム
JP6755644B2 (ja) 文字処理装置、文字処理方法、文字処理プログラム
JP6492895B2 (ja) 印刷データ処理装置及びプログラム
JP2019004380A (ja) 画像処理装置とその制御方法、及びプログラム
US20050213126A1 (en) Image forming apparatus and image reading apparatus
JP5112223B2 (ja) 画像処理装置及び画像処理プログラム
JP5526863B2 (ja) プリンタドライバ、及び印刷制御装置
JP2007081886A (ja) 描画処理装置
JP4325339B2 (ja) 印刷システム、ホストコンピュータ及びプリンタドライバ
JP2019192087A (ja) 情報処理装置、プログラム、情報処理方法
JP2024097246A (ja) 画像処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160704

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170724

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170801

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170829

R151 Written notification of patent or utility model registration

Ref document number: 6202908

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151