説明

画像形成装置、画像形成方法及びプログラム

【課題】描画速度を向上させることを目的とする。
【解決手段】描画を行うページに含まれる描画オブジェクトを取得する取得手段と、取得手段で取得された描画オブジェクトとページに含まれる他の描画オブジェクトとの関連性に応じて、描画オブジェクトをマスク描画とエッジ描画との何れで描画するかを選択する際に用いられるマスク・エッジ閾値を更新する更新手段と、更新手段で更新されたマスク・エッジ閾値と、取得手段で取得された描画オブジェクトと、に基づいて、描画オブジェクトをマスク描画とエッジ描画との何れで描画するかを選択する選択手段と、選択手段で選択された描画方法で、取得手段で取得された描画オブジェクトを描画する描画手段と、を有することによって課題を解決する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像形成装置、画像形成方法及びプログラムに関する。
【背景技術】
【0002】
近年、クライアントPC上で動作する各種アプリケーションや、様々なデバイス機器の描画機能の高機能化に伴い、プリンタに対しても様々な描画機能を用いた描画が可能となってきている。
特に、従来、文字情報や矩形情報等を描画する際、ROP機能を用いたマスクデータによる描画方法や、ベクタ情報による描画等、同一の描画を行う際にも描画手段を様々な形態を用いて実現することが可能となってきている。
例えば、画像形成装置は、図1で示すようなPage200に含まれるObject1 201を描画する際、「マスク描画」で記載されるように、塗り情報202とROP機能が指定されるマスク情報203とを用いて、描画することが可能である。マスク情報203は、ON/OFFを示すような情報から構成されている。OFFの座標位置には下地(ここではページの背景色(白色))が選択される。またONの座標位置には、塗り情報202の色が配置されるようなROP指示がされている。画像形成装置は、座標毎のON/OFFの選択により、Object1 201の描画を実現する。
また、画像形成装置は、「エッジ描画」で記載されるように、塗り情報202とエッジ情報204とを用いて、描画することも可能である。画像形成装置は、エッジ情報204のように矢印で示される領域を塗り情報202で塗りつぶす、という描画方法により、Object1 201の描画を実現することも可能である。
このような背景の中、特許文献1では、予め定めた所定のパス数の閾値に応じて、描画を選択する手法が提案されている。選択する描画としては、オブジェクト毎に前述したROP機能とマスク情報203とを用いた描画を用いるか、塗り情報202とエッジ情報204とを用いた描画の選択が提案されている。この選択処理を用いることで、より最適な描画方法で描画を実現する技術が提案されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2006−048172号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし前述のように、所定の閾値のみで判断を行う場合、他オブジェクトとの関連性によっては、最適な閾値とはならず、速度性能の劣化を引き起こす要因となってしまう。例えば図2に示すような、イメージ302と重なり合うObject2 301を含むPage300の描画位置303を描画する際を基に説明する。その際のマスク描画は、Object2 301の描画の際は、Object2 301の色情報の準備処理は、例えば7回要し、更にイメージ302の色情報の準備処理にも、7回の処理を要する。一方、Object1 201の描画の際は、Object1 201の色情報の準備処理は、例えば7回要し、Page200の色情報の準備処理は単一塗りつぶし情報であるため、1回のみで終了する。したがって、マスク描画を行う際、そのマスク描画を行う描画オブジェクトに関連する他の描画オブジェクトの有無に応じて、マスク描画に要する負荷が異なってくる。
【0005】
本発明はこのような問題点に鑑みなされたもので、描画速度を向上させることを目的とする。
【課題を解決するための手段】
【0006】
そこで、本発明の画像形成装置は、描画を行うページに含まれる描画オブジェクトを取得する取得手段と、前記取得手段で取得された描画オブジェクトと前記ページに含まれる他の描画オブジェクトとの関連性に応じて、前記描画オブジェクトをマスク描画とエッジ描画との何れで描画するかを選択する際に用いられるマスク・エッジ閾値を更新する更新手段と、前記更新手段で更新されたマスク・エッジ閾値と、前記取得手段で取得された描画オブジェクトと、に基づいて、前記描画オブジェクトをマスク描画とエッジ描画との何れで描画するかを選択する選択手段と、前記選択手段で選択された描画方法で、前記取得手段で取得された描画オブジェクトを描画する描画手段と、を有する。
【発明の効果】
【0007】
本発明によれば、描画速度を向上させることができる。
【図面の簡単な説明】
【0008】
【図1】マスク描画及びエッジ描画を実現する従来技術の一例を示す図である。
【図2】マスク描画の従来技術における解決すべき課題の一例を示す図である。
【図3】画像形成処理装置の一例を示す図である。
【図4】実施形態1におけるページ画像に対する画像形成処理の一例を示すフローチャートである。
【図5】中間言語生成処理(S402)の詳細な処理の一例を示すフローチャートである。
【図6】マスク・エッジ閾値決定処理(S501)の詳細な処理の一例を示すフローチャートである。
【図7】係数1及び係数2から構成されるマスク・エッジ閾値701〜705の詳細な一例を示す図である。
【図8】マスク・エッジ閾値決定処理(S501)の内部で扱うオブジェクト情報リストの詳細な一例を示す図である。
【図9】背景イメージの有無の判断処理(S601)の際に、判断した縮退処理の概要を示す図である。
【図10】マスク・エッジ閾値更新処理(S503)の詳細な処理の一例を示すフローチャートである。
【図11】マスク・エッジ中間言語生成処理(S504)の詳細な処理の一例を示すフローチャートである。
【図12】実施形態2におけるページ画像に対する画像形成処理の一例を示すフローチャートである。
【図13】マスク・エッジ変換可否判断処理(S1101)の詳細な処理の一例を示すフローチャートである。
【図14】マスク・エッジ変換中間言語生成処理(S1103)の詳細な処理の一例を示すフローチャートである。
【図15】マスク閾値更新処理(S1303)の詳細な処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態について図面に基づいて説明する。
【0010】
本実施形態では、画像形成処理装置100の一例としてMFP(Multi Function Printer)を用いて説明を行う。なお、画像形成装置は、SFP(Single Function Printer)やLBP(Laser Beam Printer)、その他のプリント方式のプリンタでもよい。
図3は、画像形成処理装置の一例を示す図である。画像形成処理装置100は、LAN(Local Area Network)にて、ホストコンピュータ(PC)160に接続されている。画像形成処理装置100は、リーダー装置140、プリンタ装置150、操作/表示部120、データ記憶部130、更に、これら各構成要素を制御する制御装置(コントローラ部)110によって構成されている。制御装置110は、CPU111、ROM112、RAM113等を有し、CPU111がROM112又は他の記憶媒体に格納されたプログラムに基づいて、画像形成処理装置100全体を統括制御する。例えば、制御装置110は、CPU111に、それぞれPDL解析処理・中間言語生成処理、及びレンダリング処理等を行うための予め決められたプログラムをロードする。なお、レンダリング処理に関しては、ここでは記述しないが専用のハードウェアを利用してもよい。プリンタ装置150は、画像データの出力を行う。操作/表示部120は、画像出力処理を行うための各種印刷設定の操作を行うキーボード、及び画像出力設定を行う操作ボタン等の表示を行う液晶パネルを備える。データ記憶部130は、画像データやドキュメントデータ、印刷装置制御言語(例えば、ESCコード、PDL(Page Description Language))等の印刷データの格納/保存ができる。例えば、データ記憶部130は、LANを介してホストコンピュータ(PC)160より受信した画像データ・ドキュメント・PDLや、リーダー装置140を制御して読み込む画像データの格納/保存ができる。
つまり、CPU111が、プログラムに基づき処理を実行することによって、後述するフローチャートの処理が実現される。なお、本実施形態では、CPU111がプログラムに基づき処理するよう説明を行うが専用のハードウェアで全ての処理、又はCPU11が行う処理の一部を実行するようにしてもよい。
【0011】
<実施形態1>
図4は、実施形態1のページ画像に対する画像形成処理の一例を示すフローチャートである。
まず、PDL(Page Description Language)で示されたページ画像情報の印刷指示が、PC160から転送される。画像形成処理装置100は、転送されたPDLを、データ記憶部130に格納する。次に、画像の生成処理を行うため、CPU111は、データ記憶部130からPDLを取得し、解析処理を行う(S401)。次にCPU111は、解析したPDLから、所定のレンダリング可能な中間言語の生成処理を行う(S402)。続いて、CPU111は、S402で生成された中間言語を基に、レンダリング処理を行い、ページの画像を示すビットマップデータの生成を行う(S403)。
次に、CPU111は、処理するPDLデータが、縮退処理の必要があるか否かを判断する(S404)。縮退処理の詳細は後述する図9で説明する。CPU111は、縮退処理の必要可否を、中間言語生成処理(S402)内のS506で判断する。CPU111は、オブジェクト処理毎に中間言語生成に必要なメモリの空きが未だ存在するか否かから判断し(S804、S805、S806)、S806処理時にメモリ枯渇を検知した時点で縮退処理が必要と判断する。また縮退処理が必要な際は、CPU111は、専用のフラグ情報を設定しておく。このフラグ情報に基づいて、CPU111は、以降縮退処理中であるか否かを判断する。詳細は後述する。CPU111は、縮退処理が必要であると判断した場合、S405に進む。またCPU111は、縮退処理が必要でないと判断した場合、本印刷処理を終了させる。
【0012】
図5は、中間言語生成処理(S402)の詳細な処理の一例を示すフローチャートである。
CPU111が行う中間言語生成処理(S402)では、まず描画を行うページの設定情報に応じて、マスク・エッジ閾値の初期値を決定する処理を行う(S501)。マスク・エッジ閾値の初期値の決定処理は、以降で詳細に説明する。次に、CPU111は、ページ内に含まれる描画オブジェクトの取得及び描画オブジェクトに関連した描画情報を解析する処理を行う(S502)。次に、CPU111は、S502で取得した描画情報の解析結果に応じて、S501で決定したマスク・エッジ閾値の初期値の更新が必要であるか否かを判断する処理を行う(S503)。必要であると判断した場合、後述するような閾値に更新し、必要でないと判断した場合、現在設定されるマスク・エッジ閾値で中間言語生成処理を継続する。マスク・エッジ閾値更新処理の詳細は以降で説明する。次に、CPU111は、S501及びS503で決定したマスク・エッジ閾値を基に、マスク描画及びエッジ描画のどちらが高速に処理可能か判断する。その判断結果に応じて、CPU111は、マスク描画若しくはエッジ描画を指示する中間言語の生成処理を行う(S504)。マスク描画及びエッジ描画のどちらが高速に処理可能か判断する処理は以下の式を基に算出する。
(Width × Height) < 係数1 × エッジ数 + 係数2 (式1)
ここで、Widthは、オブジェクトの幅である。Heightは、オブジェクトの高さである。エッジ数は、オブジェクトのエッジの数である。
【0013】
CPU111は、上記判断が"真"だった場合、マスク描画の方が早いと判断し、マスク描画を用いた中間言語を生成する。また、CPU111は、上記判断が"偽"だった場合、エッジ描画の方が早いと判断し、エッジ描画を用いた中間言語を生成する。係数1,2は、例えば予めテーブル情報としてデータ記憶部130に保持されているものとする。CPU111は、以降で説明する各種判断処理に応じて適切な閾値を選択し、中間言語生成処理を行う。次に、CPU111は、ページ内に含まれる描画オブジェクトの処理が完了したか否かを判断する(S505)。完了したと判断した場合、CPU111は、中間言語生成処理(S402)を終了する。また完了していないと判断した場合、CPU111は、S506に進む。次に、CPU111は、本ページが縮退処理の必要があるかを判断する(S506)。縮退処理の判断では、CPU111は、生成する中間言語の合計サイズが、データ記憶部130に予め割り当てられた容量を超えた場合、縮退処理が必要となる。よってその際は、必要であると判断する。また、超えない場合、CPU111は、必要ないと判断し、S502に進み、一連の処理を継続する。
【0014】
図6は、マスク・エッジ閾値決定処理(S501)の詳細な処理の一例を示すフローチャートである。また、図7は、係数1及び係数2から構成されるマスク・エッジ閾値701〜705の詳細な一例を示す図である。また、図8は、マスク・エッジ閾値決定処理(S501)の内部で扱うオブジェクト情報リストの詳細な一例を示す図である。
CPU111は、まずページ内にページ全体に描画する背景イメージの有無を判断する(S601)。CPU111は、背景イメージが存在した場合、S602に進み、背景イメージが存在しなかった場合、S604に進む。また、判断の方法としては、CPU111は、例えばページの縮退処理を前回行ったページであるかを示すフラグ情報から判断する。詳細は後述するが、本実施形態の処理では縮退処理を行った場合、必ず背景イメージが存在する構成となる。そのため、その縮退処理であるか否かのフラグ情報により、CPU111は、背景イメージの有無の判断が可能となる。CPU111は、背景の存在に応じて、マスク描画の負荷が大きいか少ないかを判断する。また、背景イメージの有無を判断する別例としては、CPU111は、内部で保持するオブジェクト情報のオブジェクトリスト1500から背景イメージの有無を判断する。例えば、CPU111は、中間言語の生成処理は、データ記憶部130に格納されるオブジェクトリスト1500を基に行う。オブジェクトリスト1500は、オブジェクトの情報1501、1502、1503と、そのオブジェクトの塗り情報(単色塗り/イメージ塗り)1504、1505、1506と、から構成される。したがって、CPU111は、背景イメージの有無を、オブジェクトリスト1500に格納されるイメージ塗り情報1504、1505、1506の検索及び含まれる幅高等の情報を解析することで判断する。例えば、CPU111は、幅高が所定の大きさ以上のイメージがあった場合、背景イメージが存在すると判断する。
【0015】
次に、CPU111は、ページ描画に用いられる属性処理モードの指定を判断する(S602)。CPU111は、属性処理モードの指定に、複雑な動作モード(複雑モード)が指定される場合、S606に進み、属性処理モードの指定に、簡易な動作モード(簡易モード)が指定される場合、S603に進む。属性処理とは、下地のオブジェクトと上に重なるオブジェクトを合成した際の、属性値の出力結果の算出を行う処理を示す。本実施形態では従来から提案されている複数の属性処理を切り替えられる構成を想定している。例えば、従来提案されている属性処理の一例として、下記のように属性同士を簡易な演算で行う手法が提案されている。
属性値(結果) = 属性値(下地) & 属性値(上地) (式2)
上記は、属性値の各ビットがそれぞれの意味合いを示しており、合成していく毎に不要な意味合いのビットを削除していく処理を示す。単純なAND演算のため比較的簡易に処理が可能である。また、属性処理の他の一例として、下記のように合成方法の解析から属性値の結果を算出する処理が提案されている。
属性値(結果) = (合成方法解析結果 == 下地になる) ? 属性値(下地) : 属性値(上地) (式3)
上記は、属性値の結果を各種パラメータの組み合わせを解析することで属性値の結果の選択処理を行う。解析するパラメータが複数あり、かつ、複雑な組み合わせを解析することになり時間を要する。したがって、比較的複雑な処理となる。このように、属性処理には簡易なモードや、複雑なモードが存在する。したがって、S602の処理によりピクセル毎に異なる負荷となるマスク描画に対して最適な変換が可能となる。
【0016】
次に、CPU111は、レンダリングモードがカラー/モノクロのどちらのモードであるかを判断する(S603)。CPU111は、レンダリングモードの指定に、カラーモードが指定される場合、S606に進み、レンダリングモードの指定に、モノクロモードが指定される場合、S605に進む。これにより、レンダリングモードに応じ、ピクセル毎に異なる負荷となるマスク描画に対して最適な変換が可能となる。次に、CPU111は、(S601〜S603)の判断結果に応じ、閾値テーブル700から前述したマスク・エッジ閾値701〜705の中の、初期値を決定する(S604〜S606)。各閾値の値は、図7で示すようにIDに応じて予め決められた係数1及び係数2を保持する構成をとり、このテーブル自体はデータ記憶部130で保持する。閾値1・閾値2・閾値3は予め所定の値が決定されているが、閾値1>閾値2>閾値3の順でマスクに振れやすい係数の構成をとることとする。したがって、閾値1がマスクに振れやすい係数となり、閾値3がエッジに振れやすい係数となる。
【0017】
図9は、背景イメージの有無の判断処理(S601)の際に、判断した縮退処理の概要を示す図である。
例えばPage800内にイメージ801・Object3 802・Object4 803が含まれる際、CPU111は、S804、S805のように中間言語生成処理を続ける。しかし、S806の中間言語生成処理の際、メモリ枯渇が発生した場合、CPU111は、S805まで生成された中間言語までのレンダリング処理を行う。これにより、複数のオブジェクトの中間言語を、一つのイメージデータに変換することでメモリ空き状態を作ることができる。そして、CPU111は、その際に縮退処理を行い、処理の継続が必要であることを示す情報である専用のフラグ情報を設定する。そしてレンダリング処理が完了したら、CPU111は、前記専用のフラグ情報を参照し、縮退処理が必要であることを検知する。そして、CPU111は、その背面に当たるイメージの中間言語を生成する(S807)。最後に、CPU111は、Object4 808の中間言語を生成し、レンダリング処理を行うことでPage800の印刷処理を実現する。
【0018】
図10は、マスク・エッジ閾値更新処理(S503)の詳細な処理の一例を示すフローチャートである。
CPU111は、S502で取得した描画オブジェクトが、所定面積以上のイメージであるかを判断する(S901)。CPU111は、背景イメージの面積の判断処理を前述したオブジェクトリスト1500から判断する。CPU111は、中間言語生成時は、オブジェクトリスト1500を順に参照していき、それぞれの中間言語を生成する。したがって、CPU111は、処理対象であるオブジェクトの塗り情報1504、1505、1506の情報の幅高情報を解析し、所定の面積以上になるか否かを判断する。面積が大きいイメージであった場合、CPU111は、他オブジェクトに影響を与えやすいイメージであると判断できる(図2で説明の準備処理の増大により)。面積が大きいイメージであった場合、CPU111は、他オブジェクトに影響を与えやすいイメージであると判断できる(図2で説明の準備処理の増大により)。したがって、CPU111は、S901の条件が合致した場合、エッジに振れやすい閾値に更新を行うS905に進む。またCPU111は、S901の条件が合致しなかった場合、S902に進む。
次に、CPU111は、S502で取得した描画オブジェクトにおいて、合成処理が必要なオブジェクトの累積数が、所定の累積数以上になっているかを判断する処理を行う(S902)。CPU111は、描画オブジェクト毎に関連するROP情報を判別することで、合成の必要可否が分かる。したがって、CPU111は、合成が必要なオブジェクトをオブジェクト毎に累積し、所定の累積数を超えた場合、エッジに振れやすい閾値に更新を行うS905に進む。また、CPU111は、所定の累積数を未だ超え無いと判断した場合、S903に進む。
【0019】
次に、CPU111は、S502で取得した描画オブジェクトを含むイメージの累積面積が所定の面積以上になっているかを判断する処理を行う(S903)。CPU111は、イメージの各面積を累積(加算)していき、累積面積が所定の面積を超えたか否かを判断する。CPU111は、所定の累積面積を超えたと判断した場合、S904に進む。また、CPU111は、所定の累積面積を未だ超えていないと判断した場合、マスク閾値更新処理(S503)を終了する。
次に、CPU111は、(S901〜S903)の判断結果に応じ、閾値テーブル700からマスク・エッジ閾値701〜705の中の、閾値に更新する(S904〜S905)。各閾値の値は、図7で示すようにIDに応じて予め決められた係数1及び係数2を保持する構成をとり、このテーブル自体はデータ記憶部130で保持される。閾値4・閾値5は予め所定の値を決定しておくが、閾値1>閾値4>閾値5の順でマスクに振れやすい係数の構成をとることとする。したがって、閾値1がマスクに振れやすい係数となり、閾値5がエッジに振れやすい係数となる。
【0020】
図11は、マスク・エッジ中間言語生成処理(S504)の詳細な処理の一例を示すフローチャートである。
まずCPU111は、S502で取得した描画オブジェクトが、所定のマスク描画若しくはエッジ描画の切り替え対象のオブジェクトであるかを判断する(S1001)。対象データは任意に設定可能な構成とするが、例えば文字データやグラフィックデータ、元々マスクデータ等を対象とする。CPU111は、文字データやグラフィックデータをオブジェクトの属性から判断可能である。またマスクデータに関しては、従来提案されている技術を用いることを想定しており、CPU111は、例えば合成処理にROP3の所定コードとマスクデータの組み合わせの指定検知に応じて、マスクデータであるか否かを判断する。また、ROPの所定コードによっては合成処理を不要とするコード(例えば、単純な上書きを意図するROPコード等)は、ここではマスクデータとは判断しないものとする。CPU111が、所定の対象データであると判断した場合、S1002に進む。またCPU111が、所定の対象データでないと判断した場合、S1005に進む。
【0021】
次にCPU111は、S502で取得した描画オブジェクトが、マスク描画及びエッジ描画のどちらが高速に処理可能かを判断する(S1002)。CPU111は、前記マスク・エッジ閾値を用いた図5のS504の説明で前述した式1との計算により、条件が"真"となるか、"偽"となるかを判断する。CPU111は、上記判断が"真"だった場合、S1003に進む。また、CPU111は、上記判断が"偽"だった場合、S1004に進む。
次に、CPU111は、S1002の判断処理で"真"であった場合、S502で取得した描画オブジェクトに対して、マスク描画を用いた中間言語の生成処理を行う(S1003)。また、CPU111は、S1002の判断処理で"偽"であった場合、S502で取得した描画オブジェクトに対して、エッジ描画を用いた中間言語の生成処理を行う(S1004)。また、CPU111は、S1001の判断処理で"偽"であった場合、従来通りの中間言語を生成する(S1005)。S1003、S1004等は、描画の処理の一例である。
【0022】
<実施形態2>
本実施形態では実施形態1と異なる点を説明する。
図12は、実施形態2におけるページ画像に対する画像形成処理の一例を示すフローチャートである。
まず、PDLで示されたページ画像情報の印刷指示が、PC160から転送される。画像形成処理装置100は、転送されたPDLを、データ記憶部130に格納する。次に、画像の生成処理を行うため、CPU111は、データ記憶部130からPDLを取得し、解析処理を行う(S401)。
次にCPU111は、中間言語生成処理時に、マスク・エッジ中間言語生成処理を有効にするか否かを、各種パラメータを基に判断する処理を行う(S1101)。詳細は後述する。次にCPU111は、S1101の判断結果を基に、マスク・エッジ中間言語生成処理の有効/無効を選択する処理を行う(S1102)。CPU111は、S1101で"有効"と判断した場合、S1103に進む。またCPU111は、S1101で"無効"と判断した場合、S1104に進む。
次にCPU111は、S1101で"有効"と判断した場合に、マスク・エッジ変換中間言語生成処理を行う(S1103)。詳細は後述する。また、CPU111は、S1101で"無効"と判断した場合に、マスク・エッジ中間言語生成処理を含まない、従来通りの中間言語生成処理を行う(S1104)。続いて、CPU111は、S1103若しくはS1104で生成された中間言語を基に、レンダリング処理を行い、ページの画像を示すビットマップデータの生成を行う(S403)。
【0023】
次に、CPU111は、処理するPDLデータが、縮退処理の必要があるか否かを判断する(S404)。CPU111は、縮退処理の詳細は図9で説明する内容となっており、縮退処理の必要可否を、中間言語生成処理(S1103)内のS1307の処理及びS1104の処理で判断する。CPU111は、オブジェクト処理毎に中間言語生成に必要なメモリの空きが未だ存在するか否かから判断し(S804、S805、S806)、S806処理時にメモリ枯渇を検知した時点で縮退処理が必要と判断する。また縮退処理が必要な際は、CPU111は、専用のフラグ情報を設定しておくことで、以降縮退処理中であるか否かを判断する。CPU111は、縮退処理が必要であると判断した場合、S405に進み、縮退処理を行ったことを示すフラグを設定し、S1101から処理を継続する。またCPU111が、縮退処理が必要でないと判断した場合、本印刷処理を終了させる。縮退処理の詳細は、前述したとおりである。
【0024】
図13は、マスク・エッジ変換可否判断処理(S1101)の詳細な処理の一例を示すフローチャートである。
CPU111は、まずページ内にページ全体に描画する背景イメージの有無を判断する(S1201)。CPU111は、背景イメージが存在した場合、S1202に進み、背景イメージが存在しなかった場合、S1204に進む。CPU111は、例えばページの縮退処理を前回行ったページであるかを示すフラグ情報からページ全体に描画する背景イメージの有無を判断する。詳細は前述したとおりであり、縮退処理を行った場合、必ず背面イメージが存在するため、CPU111は、その縮退処理であるか否かのフラグ情報により、前記判断を行う。これによりCPU111は、背景の存在に応じて、マスク描画の負荷が大きいか少ないかを判断することが可能となる。また、背景イメージの有無を判断する別例としては、CPU111は、内部で保持するオブジェクト情報のオブジェクトリスト1500から背景イメージの有無を判断する。例えば、CPU111は、中間言語の生成処理を、データ記憶部130に格納されるオブジェクトリスト1500を基に行う。オブジェクトリスト1500は、オブジェクトの情報1501、1502、1503と、そのオブジェクトの塗り情報(単色塗り/イメージ塗り)1504、1505、1506の情報と、から構成される。したがって、CPU111は、背景イメージの有無を、オブジェクトリスト1500に格納されるイメージ塗り情報1504、1505、1506の検索及び含まれる幅高等の情報を解析することで判断する。CPU111は、幅高が所定の大きさ以上のイメージがあった場合、背景イメージが存在すると判断する。
【0025】
次に、CPU111は、ページ描画に用いられる属性処理モードの指定を判断する(S1202)。CPU111は、属性処理モードの指定に、複雑な動作モードが指定される場合、S1206に進み、属性処理モードの指定に、簡易な動作モードが指定される場合、S1203に進む。これにより、属性処理のモードに応じ、ピクセル毎に異なる負荷となるマスク描画に対して最適な変換を可能とする。属性処理の概要としては前述したとおりである。
次に、CPU111は、レンダリングモードがカラー/モノクロのどちらのモードであるかを判断する(S1203)。CPU111は、レンダリングモードの指定に、カラーモードが指定される場合、S1206に進み、レンダリングモードの指定に、モノクロモードが指定される場合、S1205に進む。これにより、レンダリングモードに応じ、ピクセル毎に異なる負荷となるマスク描画に対して最適な変換を可能とする。次に、CPU111は、S1201、S1202、S1203の判断結果に応じ、マスク・エッジ中間言語生成処理を行うか否かを判断する。同時に、CPU111は、マスク・エッジ中間言語生成処理を有効にすべきと判断した場合、閾値も合わせて選択する処理を行う(S1204、S1205)。またS1201、S1202、S1203の判断結果で、S1206に進んだ際は、CPU111は、マスク・エッジ中間言語生成処理を無効にすると判断し、以降の処理ではマスク・エッジ中間言語生成処理は行わないようにする(S1206)。
【0026】
図14は、マスク・エッジ変換中間言語生成処理(S1103)の詳細な処理の一例を示すフローチャートである。
まず、CPU111は、ページ内に含まれる描画オブジェクトの取得及び描画オブジェクトに関連した描画情報を解析する処理を行う(S1301)。次に、CPU111は、マスク・エッジ中間言語生成処理が有効か否かを判断する(S1302)。CPU111は、S1302の判断の結果、有効と判断された場合、S1303に進む。また、CPU111は、S1302の判断の結果、無効と判断された場合、S1305に進む。次に、CPU111は、マスク・エッジ閾値更新処理を行う(S1303)。CPU111は、マスク・エッジ閾値更新処理(S1303)において、各描画オブジェクトの特性を基に、ページ内のマスク・エッジ変換処理を継続するか否かの判断と、閾値の変更が必要であるか否かの判断と、を行う。詳細は後述する。次に、CPU111は、マスク・エッジ中間言語生成処理を行う(S504)。詳細は前述したとおりであるため、ここでは割愛する。また、CPU111は、マスク・エッジ中間言語生成処理を含まない、従来通りの中間言語生成処理を行う(S1305)。
次に、CPU111は、ページ内に含まれる描画オブジェクトの処理が完了したか否かを判断する(S1306)。完了したと判断した場合、CPU111は、マスク・エッジ変換中間言語生成処理(S1103)を終了する。また完了していないと判断した場合、CPU111は、S1307に進む。次に、CPU111は、本ページが縮退処理の必要があるかを判断する(S1307)。CPU111は、生成する中間言語のサイズが、データ記憶部130に予め割り当てられた容量を超えた場合、縮退処理が必要であると判断する。また、CPU111は、超えない場合は必要ないと判断し、S1301に進み、一連の処理を継続する。
【0027】
図15は、マスク閾値更新処理(S1303)の詳細な処理の一例を示すフローチャートである。
CPU111は、S1301で取得した描画オブジェクトが、所定面積以上のイメージであるかを判断する処理である(S1401)。CPU111は、背景イメージの面積の判断を、前述したオブジェクトリスト1500から判断する。CPU111は、中間言語生成時は、オブジェクトリスト1500を順に参照していき、それぞれの中間言語を生成する構成をとる。したがって、CPU111は、処理対象であるオブジェクトの塗り情報1504、1505、1506の情報の幅高情報を解析し、所定の面積以上になるか否かを判断する。面積が大きいイメージであった場合、CPU111は、他オブジェクトに影響を与えやすいイメージであると判断できる(図2で説明の準備処理の増大により)。したがって、CPU111は、S1401の条件が合致した場合、マスク・エッジ中間言語生成処理を以降行わない("無効")に更新する(S1405)。またCPU111は、S1401の条件が合致しなかった場合、S1402に進む。
【0028】
次に、CPU111は、S502で取得した描画オブジェクトにおいて、合成処理が必要なオブジェクトの累積数が、所定の累積数以上になっているかを判断する処理を行う(S1402)。CPU111は、描画オブジェクト毎に関連するROP情報を判別することで、合成の必要可否が分かる。したがって、CPU111は、合成が必要なオブジェクトを累積し、所定の累積数を超えた場合、マスク・エッジ中間言語生成処理を以降行わない("無効")に更新する(S1405)。また、CPU111は、所定の累積数を未だ超え無いと判断した場合、S1403に進む。
次に、CPU111は、S502で取得した描画オブジェクトを含むイメージの累積面積が所定の面積以上になっているかを判断する処理を行う(S1403)。CPU111は、イメージの各面積を累積(加算)していき、所定の面積を超えたか否かを判断する。CPU111は、所定の面積を超えたと判断した場合、S1404に進む。また、CPU111は、所定の面積を未だ超えていないと判断した場合、マスク閾値更新処理(S1303)を終了する。
次に、CPU111は、(S1401〜S1403)の判断結果に応じ、マスク・エッジ閾値を閾値4に更新する。閾値4は予め任意の値を決定しておくが、閾値1>閾値4の順でマスクに振れやすい係数の構成をとることとする。したがって、閾値1がマスクに振れやすい係数となり、閾値4がエッジに振れやすい係数となる。
【0029】
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
【0030】
以上、上述した各実施形態によれば、ページ内の描画オブジェクトの関連性や処理の指定に依存しない、最適な描画方法の選択を行い、より描画速度を向上させることができる。
なお、上述した実施形態では、閾値を用いる例を用いて説明を行ったが、CPU111は、所定の数よりエッジ数が多く、所定の面積より領域が小さい場合、マスク描画を選択し、前記所定の数よりエッジ数が少なく、前記所定の面積より領域が大きい場合、エッジ描画を選択するようにしてもよい。
【0031】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。

【特許請求の範囲】
【請求項1】
描画を行うページに含まれる描画オブジェクトを取得する取得手段と、
前記取得手段で取得された描画オブジェクトと前記ページに含まれる他の描画オブジェクトとの関連性に応じて、前記描画オブジェクトをマスク描画とエッジ描画との何れで描画するかを選択する際に用いられるマスク・エッジ閾値を更新する更新手段と、
前記更新手段で更新されたマスク・エッジ閾値と、前記取得手段で取得された描画オブジェクトと、に基づいて、前記描画オブジェクトをマスク描画とエッジ描画との何れで描画するかを選択する選択手段と、
前記選択手段で選択された描画方法で、前記取得手段で取得された描画オブジェクトを描画する描画手段と、
を有する画像形成装置。
【請求項2】
前記マスク・エッジ閾値は、係数1及び係数2から構成され、
前記選択手段は、
(Width × Height) < 係数1 × エッジ数 + 係数2 (式)
が"真"の場合、マスク描画を選択し、"偽"の場合、エッジ描画を選択する請求項1記載の画像形成装置。
ここで、Widthは、オブジェクトの幅である。Heightは、オブジェクトの高さである。エッジ数は、オブジェクトのエッジの数である。
【請求項3】
前記更新手段は、前記関連性として、前記取得手段で取得された描画オブジェクトが所定面積以上のイメージか否かに応じて、前記取得手段で取得された描画オブジェクトと前記ページに含まれる他の描画オブジェクトとの関連性を判断し、前記マスク・エッジ閾値を更新する請求項1又は2記載の画像形成装置。
【請求項4】
前記更新手段は、前記関連性として、前記取得手段で取得された描画オブジェクトが、合成が必要な描画オブジェクトであり、合成が必要な描画オブジェクトが所定の累積数を超えたか否かに応じて、前記マスク・エッジ閾値を更新する請求項1又は2記載の画像形成装置。
【請求項5】
前記更新手段は、前記関連性として、前記取得手段で取得された描画オブジェクトを含むイメージの累積面積が所定の面積を超えたか否かに応じて、前記マスク・エッジ閾値を更新する請求項1又は2記載の画像形成装置。
【請求項6】
描画を行うページの設定情報に応じて、前記マスク・エッジ閾値を決定する決定手段を更に有し、
前記更新手段は、前記決定手段で決定されたマスク・エッジ閾値を前記関連性に応じて更新する請求項1乃至5何れか1項記載の画像形成装置。
【請求項7】
前記決定手段は、前記設定情報として、前記ページの全体に描画する背景イメージの有無を示す情報に応じて、前記マスク・エッジ閾値を決定する請求項6記載の画像形成装置。
【請求項8】
前記決定手段は、前記設定情報として、下地のオブジェクトと上に重なるオブジェクトとを合成した際の属性値の出力結果の算出を行う処理のモードが、各種パラメータの組み合わせの解析を要しない簡易モードか、各種パラメータの組み合わせの解析を要する複雑モードか、を示す情報に応じて、前記マスク・エッジ閾値を決定する請求項6記載の画像形成装置。
【請求項9】
前記決定手段は、前記設定情報として、レンダリングモードが、カラーモードか、モノクロモードか、を示す情報に応じて、前記マスク・エッジ閾値を決定する請求項6記載の画像形成装置。
【請求項10】
描画を行うページの設定情報に応じて、前記選択手段における前記描画オブジェクトをマスク描画とエッジ描画との何れで描画するかを選択する処理を実行するか否かを判断する判断手段を更に有し、
前記選択手段は、前記判断手段で前記処理を実行すると判断された場合、前記描画オブジェクトをマスク描画とエッジ描画との何れで描画するかを選択する請求項1乃至5何れか1項記載の画像形成装置。
【請求項11】
前記判断手段は、前記設定情報として、前記ページの全体に描画する背景イメージの有無を示す情報に応じて、前記処理を実行するか否かを判断する請求項10記載の画像形成装置。
【請求項12】
前記判断手段は、前記設定情報として、下地のオブジェクトと上に重なるオブジェクトとを合成した際の属性値の出力結果の算出を行う処理のモードが、AND演算で行う簡易モードか、各種パラメータの組み合わせの解析を要する複雑モードか、を示す情報に応じて、前記処理を実行するか否かを判断する請求項10記載の画像形成装置。
【請求項13】
前記判断手段は、前記設定情報として、レンダリングモードが、カラーモードか、モノクロモードか、を示す情報に応じて、前記処理を実行するか否かを判断する請求項10記載の画像形成装置。
【請求項14】
画像形成装置が実行する画像形成方法であって、
描画を行うページに含まれる描画オブジェクトを取得する取得ステップと、
前記取得ステップで取得された描画オブジェクトと前記ページに含まれる他の描画オブジェクトとの関連性に応じて、前記描画オブジェクトをマスク描画とエッジ描画との何れで描画するかを選択する際に用いられるマスク・エッジ閾値を更新する更新ステップと、
前記更新ステップで更新されたマスク・エッジ閾値と、前記取得ステップで取得された描画オブジェクトと、に基づいて、前記描画オブジェクトをマスク描画とエッジ描画との何れで描画するかを選択する選択ステップと、
前記選択ステップで選択された描画方法で、前記取得ステップで取得された描画オブジェクトを描画する描画ステップと、
を含む画像形成方法。
【請求項15】
コンピュータに、
描画を行うページに含まれる描画オブジェクトを取得する取得ステップと、
前記取得ステップで取得された描画オブジェクトと前記ページに含まれる他の描画オブジェクトとの関連性に応じて、前記描画オブジェクトをマスク描画とエッジ描画との何れで描画するかを選択する際に用いられるマスク・エッジ閾値を更新する更新ステップと、
前記更新ステップで更新されたマスク・エッジ閾値と、前記取得ステップで取得された描画オブジェクトと、に基づいて、前記描画オブジェクトをマスク描画とエッジ描画との何れで描画するかを選択する選択ステップと、
前記選択ステップで選択された描画方法で、前記取得ステップで取得された描画オブジェクトを描画する描画ステップと、
を実行させるプログラム。
【請求項16】
描画を行うページに含まれる描画オブジェクトを取得する取得手段と、
所定の数よりエッジ数が多く、所定の面積より領域が小さい場合、マスク描画を選択し、前記所定の数よりエッジ数が少なく、前記所定の面積より領域が大きい場合、エッジ描画を選択する選択手段と、
前記選択手段で選択された描画方法で、前記取得手段で取得された描画オブジェクトを描画する描画手段と、
を有する画像形成装置。
【請求項17】
画像形成装置が実行する画像形成方法であって、
描画を行うページに含まれる描画オブジェクトを取得する取得ステップと、
所定の数よりエッジ数が多く、所定の面積より領域が小さい場合、マスク描画を選択し、前記所定の数よりエッジ数が少なく、前記所定の面積より領域が大きい場合、エッジ描画を選択する選択ステップと、
前記選択ステップで選択された描画方法で、前記取得ステップで取得された描画オブジェクトを描画する描画ステップと、
を含む画像形成方法。
【請求項18】
コンピュータに、
描画を行うページに含まれる描画オブジェクトを取得する取得ステップと、
所定の数よりエッジ数が多く、所定の面積より領域が小さい場合、マスク描画を選択し、前記所定の数よりエッジ数が少なく、前記所定の面積より領域が大きい場合、エッジ描画を選択する選択ステップと、
前記選択ステップで選択された描画方法で、前記取得ステップで取得された描画オブジェクトを描画する描画ステップと、
を実行させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2012−178042(P2012−178042A)
【公開日】平成24年9月13日(2012.9.13)
【国際特許分類】
【出願番号】特願2011−40519(P2011−40519)
【出願日】平成23年2月25日(2011.2.25)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】