説明

情報処理システム、描画処理方法及びプログラム

【課題】複数の描画オブジェクトが結合された描画オブジェクトを描画する際のエッジ処理を効率よく実行できる仕組みを提供する。
【解決手段】印刷情報を生成する情報処理装置と、画像処理装置とを含む情報処理システムにおいて、マスクイメージとして処理すべき描画オブジェクトが含まれていると判断した場合、複数の描画オブジェクトが結合された描画コマンドと、複数の描画オブジェクトが結合されていない描画オブジェクトとから結合された描画オブジェクトを描画するためのエッジ処理を特定するために用いる特徴情報を抽出し、特徴情報を結合された描画オブジェクトに付与した印刷情報を画像処理装置に送信する。結合された描画オブジェクトに特徴情報が付与されていると判断した場合、描画オブジェクトに対して実行すべきエッジ処理をベクタエッジ処理またはビットマップエッジ処理に切り替える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム、描画処理方法及びプログラムに関するものである。
【背景技術】
【0002】
コンピュータ等の情報処理装置を用いて画像処理装置で印刷をする場合、一般的にはプリンタドライバを利用することが多い。情報処理装置上のプリンタドライバではOS・アプリケーションからの描画コマンドを受け取り、印刷データ(Page Description Language data、以下、PDLデータ)に変換する。このPDLデータを画像処理装置が受け取り、インタプリタで解釈し、RIP(Raster Image Processor)で画像形成し、プリンタエンジンで印字する事で、印刷処理が実現される。
【0003】
ここで、PDLデータの最適化手段の1つに「細切れ結合」がある。「細切れ結合」とは、インタプリタで処理する際に、多数の描画コマンドをまとめ、単一の描画コマンドに置き換えることで、RIPが処理するべき描画コマンド数を削減する手段である。これによって、RIPの計算量を削減し、より高速な出力を実現できる。
【0004】
このように、印刷処理をより効率よく実施するために、情報処理装置、あるいはプリンタでPDLデータに対する最適化処理を施すこと手段が広く知られている。例えば下記特許文献1では、情報処理装置側で画像を作ると共に印字時に必要となるヒント情報(特徴情報)をPDLデータに予め埋め込む技術が提案されている。
【0005】
プリンタ側でレンダリング処理を行う際に必要となる情報を画像劣化少なく埋め込むことが可能となる。特許文献2ではPDLデータを解釈する際に必要に応じてアンチエイリアシング処理を行うことで高画質化を図る手段が提案されている。
【0006】
また、特許文献3では、予め定めた所定のパス数の閾値に応じて、描画を選択する手法が提案されている。オブジェクト毎にマスク情報に対する演算処理(Raster Operation 以下、ROP処理)で描画か、塗り情報とエッジ情報を用いた描画を用いるかが選択できる。この選択処理を用いることで、より最適な描画方法で描画を実現する技術が提案されている。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2009−230750号公報
【特許文献2】特開平11−272257号公報
【特許文献3】特開2006−048172号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかし、画像処理装置内で描画コマンドを解釈するCPU、あるいは画像形成をするRIPの実現手段は多種多様である。ソフトウエアのみで全ての処理をする安価な製品もあれば、ハードウェアも併用し高速性を実現する高価な製品もある。ソフトウエアで実現する場合でも、CPUの分岐予測性能は多種多様であり、場合によっては多少計算コストがかかってでも分岐を無くす方が全体の計算量を抑えられるCPUもある。このように、種々の画像処理装置の性能が異なるため、情報処理装置側のプリンタドライバが、幅広い製品レンジの画像処理装置に対して一様に望ましいPDLデータを生成する事は難しい。
【0009】
これに対し、情報処理装置側では最適化処理を行わず、画像処理装置内でそれぞれに適した最適化する代替手段がある。しかしながら、最適化されていないPDLデータを画像処理装置側で最適化処理をするために、画像処理装置側の負荷が増加してしまい、却って性能が低下することがある。
【0010】
一方、プリンタドライバが画像処理装置に能力を問い合わせ、それに基づいて画像処理装置で最適なPDLデータをその都度、生成する代替手段がある。しかし、印刷ユースケースとして、一度ネットワーク上のデバイスにPDLデータをスプールしておき、後から任意のプリンタからそのPDLデータを参照印刷するケースがある。
この場合には能力を問い合わせるべき画像処理装置が印刷時点では決まっておらず、最適化処理の基準を決められない。
以上から、情報処理装置側や画像処理装置側での最適化した結果を、様々な性能の画像処理装置での印刷時に活用できる手段を提供する必要がある。
【0011】
加えて、従来のドライバーでの最適化する場合には、元々イメージを描画するコマンドと、ドライバーで結合したイメージとを画像処理装置側で判別する手段が無く、このエッジ抽出処理の対象となるイメージを判別する事が出来ない。
そのため、結合していないイメージを描画するコマンドに対して、サイズなどの情報だけで判断すると、不要なエッジ抽出処理をしてしまい、エッジ処理モジュールの負荷が増加する課題があった。
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、画像処理装置側で情報処理装置から受信する印刷情報に含まれる複数の描画オブジェクトが結合された描画オブジェクトを描画する際のエッジ処理をベクタエッジ処理またはビットマップエッジ処理のいずれかに切り替えて効率よく実行できる仕組みを提供することである。
【課題を解決するための手段】
【0012】
上記目的を達成する本発明の情報処理システムは以下に示す構成を備える。
入力される描画オブジェクト群から印刷情報を生成する情報処理装置と、前記情報処理装置から受信する印刷情報を処理する画像処理装置とを含む情報処理システムであって、前記情報処理装置は、複数の描画オブジェクトを解析して所定の結合条件を満たす描画オブジェクトを結合する結合手段と、前記結合手段が結合した描画オブジェクトにマスクイメージとして処理すべき描画オブジェクトが含まれているかどうかを判断する判断手段と、前記マスクイメージとして処理すべき描画オブジェクトが含まれていると判断した場合、前記結合手段により結合された描画コマンドと、複数の描画オブジェクトが結合されていない描画オブジェクトとから結合された描画オブジェクトを描画するためのエッジ処理を特定するために用いる特徴情報を抽出する抽出手段と、前記抽出手段が抽出した特徴情報を結合された描画オブジェクトに付与する付与手段と、前記特徴情報が付与された印刷情報を前記画像処理装置に送信する送信手段と、を備え、前記画像処理装置は、描画オブジェクトまたは複数の描画オブジェクトが結合された描画オブジェクトに対して描画処理を行う描画手段と、前記結合された描画オブジェクトに前記特徴情報が付与されているかどうかを判断する判断手段と、前記特徴情報が付与されていると判断した場合、前記描画手段が複数の描画オブジェクトが結合された描画オブジェクトに対して実行すべきエッジ処理をベクタエッジ処理またはビットマップエッジ処理に切り替える制御手段と、を備えることを特徴とする。
【発明の効果】
【0013】
本発明によれば、画像処理装置側で情報処理装置から受信する印刷情報に含まれる複数の描画オブジェクトが結合された描画オブジェクトを描画する際のエッジ処理をベクタエッジ処理またはビットマップエッジ処理のいずれかに切り替えて効率よく実行できる。
【図面の簡単な説明】
【0014】
【図1】情報処理システム構成例を示すブロック図である。
【図2】印刷システムのソフトウエア構成例を示すブロック図である。
【図3】情報処理装置におけるデータ処理装置を説明するフローチャートである。
【図4】情報処理装置における描画処理を説明する模式図である。
【図5】情報処理装置における描画処理を説明する模式図である。
【図6】画像処理装置のデータ処理方法を説明するフローチャートである。
【図7】画像処理装置のデータ処理方法を説明するフローチャートである。
【図8】画像処理装置におけるエッジ処理例を説明する図である。
【図9】情報処理装置におけるデータ処理装置を説明するフローチャートである。
【図10】情報処理装置におけるエッジ処理状態を説明する図である。
【発明を実施するための形態】
【0015】
次に本発明を実施するための最良の形態について図面を参照して説明する。
<システム構成の説明>
〔第1実施形態〕
【0016】
図1は、本発明の実施形態に係る情報処理装置、画像処理装置を含む情報処理システム構成例を示すブロック図である。本例は情報処理装置100と画像処理装置150とがネットワーク130を介して通信可能な情報処理システム例である。本実施形態において、ネットワークとはクラウドコンピューティング環境をも含み、情報処理装置は、クラウドコンピューティング環境において、プリントサービスを提供するサーバとして機能する。
また、本実施形態に示す情報処理装置は、所定のページ記述言語に基づくPDLデータを生成して画像処理装置に転送するためのプリンタドライバがインストールされている。ここで、プリンタドライバは、各種のOS並びに当該OSのバージョンに対応して情報処理装置の外部記憶装置にインストールされている。以下、入力される描画オブジェクト群から印刷情報を生成する情報処理装置と、前記情報処理装置から受信する印刷情報を処理する画像処理装置とを含む情報処理システムの実施形態を図面に基づいて詳述する。
図1において、情報処理装置100内で、プロセッサ101は、バス110を通じて、メモリ102、ディスク装置103、キーボード104、ポインティングデバイス105、ビデオアダプタ106、および、ネットワークアダプタ107が接続されている。ビデオアダプタ106には、ディスプレイ装置108が接続されている。
【0017】
プロセッサ101は、メモリ102に記憶された処理手順、すなわち、所定のプログラムに従って、上述した各構成部を制御する。メモリ102には、プロセッサ101が利用するプログラムやデータが記憶されている。また、ディスク装置103には、本システムが必要とするプログラムやデータが記録されている。ここで、ディスク装置103は2つ以上が接続する構成をとってもよい。また、ROM・ハードディスク・USBストレージ・SDカード・ネットワークストレージ等他の記憶装置によって代替されてもよい。
【0018】
本システムは、キーボード104やポインティングデバイス105により、ユーザがアプリケーションに対して印刷指示をする事が出来る。また、本システムはビデオアダプタ106によって、種々の情報をディスプレイ装置108に表示することが可能である。加え、本システムはネットワークアダプタ107を介してネットワーク130に接続することができる。
【0019】
一方、画像処理装置150内も情報処理装置100同様にプロセッサ151、メモリ152等がバス161によって接続されている。画像処理装置150では更に、RIPデバイス159とプリンタエンジン160もまた、バス161に接続されている。153はディスク装置で、ボックス領域として、アプリケーション、OSの格納領域として使用される。プロセッサ151は、バス161を通じて、メモリ152、ディスク装置153、キーボード154、ポインティングデバイス155、ビデオアダプタ156、および、ネットワークアダプタ157が接続されている。
【0020】
ネットワーク130を介して、ユーザから本システムに印刷指示がなされると、メモリ152上に記憶されたプログラムをプロセッサ151が実行し、RIPデバイス159が解釈可能なDisplay List(以下、DL)をメモリ152上に生成する。RIPデバイス159が生成されたDLを解釈する事で出力画像がメモリ152上に形成される。そして、プリンタエンジン160がメモリ152上に形成された出力画像を物理用紙に印字する。
【0021】
図2は、本発明の実施形態に係る印刷システムのソフトウエア構成例を示すブロック図である。
図2において、情報処理装置100側の処理は、メモリ102あるいはディスク装置103上に保存されているプログラムをプロセッサ101が実行する事により実現される。また、プリンタ側の処理は、メモリ152あるいはディスク装置153上に保存されているプログラムをプロセッサ151が実行する事により実現される。
【0022】
キーボード104ないし、ポインティングデバイス105を介してユーザアプリケーション201にユーザからの印刷指示が行われる。ユーザアプリケーション201は出力しようとする描画コマンドをプリンタドライバ202に送信する。プリンタドライバ202は、ユーザアプリケーション201から受け取る描画コマンドを描画コマンド解析部203で解釈する。
次に、描画コマンド最適化部204が描画コマンド解析部203の解釈結果を印刷に適した形式に変換しようとする。最適化処理として、複数の描画コマンドを、より数の少ない描画コマンドに置き換える場合がある。描画コマンドはメモリ102上に確保される簡易RIP DLM206に保持され、簡易RIP205によって結合される。ここでDLMとは、Display List Memoryの略称であり、描画コマンドをスプールするためのメモリ領域を意味する。
【0023】
PDL生成部207は最適化した描画コマンドおよび、最適化しなかった描画コマンドの両方を合わせてPDLデータを生成する。生成したPDLデータはPDLデータスプーラ―/スケジューラー208によって、ディスク装置103上のスプール領域209に保持される。PDLデータスプーラ―/スケジューラー208は、ディスク装置103上にスプールしたPDLデータが画像処理装置150に送信可能であると判断すると、ネットワーク送信部210にデータを画像処理装置150に送信する。ネットワーク送信部210は必要なプロトコル変換を行い、ネットワークアダプタ107とネットワーク130を介して、画像処理装置150に変換したPDLデータを送信する。
【0024】
画像処理装置150では、情報処理装置100からネットワーク130、ネットワークアダプタ157を介してPDLデータを受信する。受信したデータはネットワーク受信部251が必要なプロトコル変換を行い、PDLデータに逆変換する。そして、このPDLデータをジョブ制御部256に通知する事で、印刷ジョブが開始される。
ジョブ制御部256は、PDLインタプリタ部252にジョブ開始を通知する。PDLデータ解釈部253は、ネットワーク受信部251からPDLデータを受信し、PDLデータの解釈を開始する。描画コマンド最適化部254は、PDLデータ解釈部253が解釈した描画コマンドに対して最適化処理を行う。
【0025】
なお、情報処理装置100同様に描画コマンドをメモリ152上に確保される簡易RIP DLM206にスプールし、簡易RIP部205で結合することも可能である。最適化した描画コマンドおよび最適化していない描画コマンドは、DL生成部257でDLデータに変換される。この変換結果はメモリ152上のDLメモリ258に保持される。1ページ分のPDLデータを解釈すると、PDLインタプリタ部252はジョブ制御部256にページ終了を通知する。
【0026】
ジョブ制御部256はPDLインタプリタ部252からジョブ終了通知と受けると、RIPデバイス制御部260にレンダリング開始を通知する。RIPデバイス制御部260はジョブ制御部256からレンダリング開始が通知されると、DLメモリ258をRIPデバイス159内に通知する。RIPデバイス159は、エッジ変換処理部261にてDLの最適化を行い、エッジ処理部262でDLに含まれる描画コマンド同士の重なり・描画領域範囲の整理をエッジを元に行う。
更に、ピクセル描画部263でDLに基づいて出力画像264上の画素の色値を決定する事で、画像形成する。なお、RIPデバイス159に含まれるエッジ変換処理部261、エッジ処理部262、ピクセル描画部263はそれぞれ別のプロセッサが割り当てられ、パイプラインで処理可能であるものとする。
【0027】
RIPデバイス159によって出力画像264が形成されると、RIPデバイス159からジョブ制御部256にレンダリング終了が通知される。ジョブ制御部256はRIPデバイス159からレンダリング終了が通知されると、プリンタエンジン制御部265を介してプリンタエンジン160に印刷開始を通知する。プリンタエンジン160は出力画像264を元に、物理用紙上に画像を印字する。
【0028】
この実施形態を説明するための印刷システム構成例では、RIPデバイス159を専用ハードウェアとして実装する構成で説明しているが、これをソフトウエアで実装をしてもよい。昨今のCPUにはコアが複数個搭載(マルチコアと呼ばれる)されているものもある。例えば、あるコアではPDLデータからDLを生成し、別のコアではDLから画像を形成する構成をとる事も可能である。
また、エッジ処理部262やピクセル描画部263を異なるCPUコアに割り当てることも、あるいは、それぞれ異なる専用のハードウェアで構成することも可能である。例えば、エッジ変換処理部261やエッジ処理部262をDL生成部257でDLを生成するときに合わせて行うことも、本発明の一実施形態として可能である。
【0029】
また、本実施形態を説明するための印刷システム構成例では、エッジ抽出をしてから描画を行うスキャンライン方式のRIP処理を前提としている。これを、直接ページメモリに描画を行うペインターズモデルのRIPに置き換えても、本発明による効果を得ることが可能であることは明確である。
【0030】
なお、昨今の画像処理装置では物理用紙への出力を指示する代わりに、ディスク装置153内の領域(BOX領域270)に印刷ジョブとして格納する機能を保有しているものもある。形成された出力画像264をそのまま保持する事もできる他、描画コマンド最適化部254で最適化した描画コマンドに対して、PDL生成部259で再度PDLデータに変換して保持する事も可能である。また、BOX領域270に格納した印刷ジョブは、別のプリンタに送信する事で代替印刷することも出来る。
【0031】
なお、描画コマンドを表現する手段には「オブジェクトモデル」と「ステートメントモデル」とがある。
ここで、ステートメントモデルとは、状態を変更する描画コマンドの集合によって、描画しようとしているコンテンツを表現する手段である。例えば、「ペンの色を赤に変える」、「ペンの原点位置を座標0,0に移動する」、「原点位置から右へ10の点まで、直線を描画する」というコマンド列によって直線描画を表現する。
【0032】
一方、オブジェクトモデルとは描画しようとするコンテンツに幾つかの属性を付与し、それぞれのオブジェクトが独立して描画できるモデルである。「座標0,0から座標10,0に赤色で直線を描画する」オブジェクトモデルの描画コマンドは、上記ステートメントモデルでの描画コマンドと等価である。
【0033】
本実施形態では説明を容易にするために、入力される描画コマンドがステートメントモデルで通知された場合でも、描画コマンド解析部203やPDLデータ解釈部253でオブジェクトモデルに変換するものとする。これは説明を容易にすることを目的としており、ステートメントモデルを用いて本発明を適用する事も可能である。
【0034】
以下、本発明の実施形態として情報処理装置上からプリンタ上にPDLデータを送信し、印刷するユースケースを説明する。本発明は描画コマンド最適化部204、およびエッジ変換処理部261に関する発明であるため、その部分に絞って説明を行う。
【0035】
図3は、本実施形態を示す情報処理装置におけるデータ処理装置を説明するフローチャートである。本例は、図2に示した描画コマンド最適化部204で行われる処理の一部を抽出した例である。もちろん、描画コマンド最適化部204でこれ以外の最適化処理を実装しても、本発明を好的に適用する事が可能である。
例えば不要なクリップの除去、出力されない描画コマンドの除去などの最適化処理を予め行った上で、本処理を実行しても良い。あるいは、本発明を適用した後からその他の最適化処理を行っても良い。この両方を組み合わせても、本発明の効果は変わらない。なお、S301〜S314は各ステップを示し、各ステップは、図1に示したプロセッサ101がメモリ102に制御プログラム(図2に示すモジュールを含む)をロードして実行することで実現される。以下、制御の主体を図2に示したモジュールとして説明を行う。
まず、ジョブ開始時には簡易RIP DLM206に何も描画オブジェクトが登録されていないものとする。
【0036】
描画コマンド最適化部204では、入力オブジェクトが細切れ結合条件に適合しているかを判断する(S301)。この条件の一例としては、描画コマンド最適化部204が簡易RIP部205で処理可能なROP(例えば、ROP2 COPYPENないし、ROP3 0xCA)が指定されているかを判定するものがある。
また、描画コマンド最適化部204がそれぞれの入力オブジェクトの幅・高さが一定閾値以内に収まるか、あるいは結合後のオブジェクトの幅・高さが別の閾値以内に収まるか、を判定する。
その他、描画コマンド最適化部204が簡易RIP DLM206に登録可能なオブジェクト数上限を定め、それを超過していないかを判定しても良い。
これらは簡易RIP部205の設計・実装に依存する部分であるため、詳細な説明は省略する。ここで、細切れ結合条件を満たしていると描画コマンド最適化部204が判断した場合には、細切れ結合の対象データであるとしてS302以降を実行する。この条件を満たさない場合にはS306以降を処理する。
【0037】
ここで、入力オブジェクトが細切れ結合条件を満たしていると描画コマンド最適化部204が判断した場合、さらに、メモリ102上に確保される簡易RIP DLM206が空き状態であるかを判定する(S302)。ここで、簡易RIP DLM206が空き状態であると描画コマンド最適化部204が判断した場合、描画コマンド最適化部204がオブジェクトエッジ数総和を「0」とする(S303)。そして、描画コマンド最適化部204は、メモリ102上の簡易RIP DLM206に追加しようとしている入力オブジェクトに含まれるエッジ数をオブジェクトエッジ数総和に加算していく(S304)。そして、描画コマンド最適化部204は、簡易RIP DLM206に、当該入力オブジェクトを追加する(S305)。これによって、結合条件を満たしている間、簡易RIP DLM206にオブジェクトが追加され続ける。
【0038】
一方、S301で、入力オブジェクトが細切れ結合条件を満たしていないと描画コマンド最適化部204が判断した場合は、描画コマンド最適化部204がメモリ102に確保される簡易RIP DLM206が空き状態であるかを判定する(S306)。ここで、簡易RIP DLM206が空き状態であると描画コマンド最適化部204が判断した場合は、入力オブジェクトをPDL生成部207に出力し(S307)、本処理を終了する。なお、細切れ結合処理を併用する別の最適化手段で、この入力オブジェクトの最適化を試みても良い。
一方、S306で、簡易RIP DLM206が空き状態でないと描画コマンド最適化部204が判断した場合は、簡易RIP DLM206に保存されている入力オブジェクト群を簡易RIP205で出力処理し、結合オブジェクトを生成する(S308)。
【0039】
ここで、この結合オブジェクト上で描画する領域・画素を指定する手段には、前述したマスクイメージを使う手段(ビットマップエッジ)と、パスやクリップとして指定する手段(ベクタエッジ)と、がある。
【0040】
また、ビットマップエッジとしてオブジェクトを描画する場合には、エッジ処理部262はオブジェクトの描画しようとするイメージの両端のみをエッジとする。そして、その結果に基づきピクセル描画部263はその描画するべきエッジ内の全画素に対して1つずつ描画処理する。ビットマップエッジは広い面積を指定するとデータ量が増え、かつ再利用の難しい解像度依存なデータになるデメリットがある。
しかしながら、ビットマップエッジでは細かな形状を表現してもデータ量・計算量が一定に抑えられるメリットがある。
【0041】
一方、ベクタエッジとしてオブジェクトを描画する場合には、エッジ処理部262はオブジェクトの描画するパス、クリップに含まれる描画領域指定から実際に描画するべきエッジを決定する。
そして、その結果に基づきピクセル描画部263では描画するべきエッジ内の画素を一様に描画処理する。ベクタエッジでは広い面積を指定してもメモリ量が増加せず、解像度非依存なデータであるメリットがある。
しかしながら、ベクタエッジを用いて非常に細かな形状を表現するとデータ量や計算量が膨れ上がってしまうデメリットもある。
【0042】
図4、図5は、本実施形態を示す情報処理装置における描画処理を説明する模式図である。本例は、"山"を表現するイメージ700の形に、ベクタエッジおよびビットマップエッジのそれぞれを利用して描画する場合の例である。ただし、白画素部分では背景画素を、黒画素部分については特定色での塗りつぶしを行うものとする。
【0043】
図4において、描画例710に示すようにビットマップエッジで描画する場合は、処理するべきエッジはエッジ711とエッジ712の2本となる。そのため、エッジ処理部262の負荷は非常に小さい。だが、スキャンライン721を描画する場合には描画例710上の全ての画素の色値を判定する必要がある。スキャンライン721上での色値を決定するには、ビットマップ上の各画素の色値を参照する必要がある。
【0044】
この場合、スキャンライン721の各画素の色値は、{黒、白、白、黒、白、白、白、黒}となり、これに従い、1画素を塗りつぶし、1画素をスキップ×2、1画素を塗りつぶし、1画素をスキップ×3、1画素を塗りつぶし、と処理する。
同様に、スキャンライン722の各画素の色値は、{黒、黒、黒、黒、黒、黒、黒、黒}となり、全画素で特定色での塗りつぶしを行う。同様に、スキャンライン723の各画素の色値は、{白、白、白、白、白、白、白、白、黒}となり、最初の7画素は背景画素、最後は特定色での塗りつぶしとなる。この手段を用いると、DLとしてはエッジ数が抑えられ、エッジ処理部262の処理量は小さい。
しかしながら、画素毎に色を決定する必要があり、ピクセル描画部263の処理量は大きい。
【0045】
一方、図4の描画例750に示すようにベクタエッジで描画する場合は、処理するべきエッジは、エッジ751〜757の7本となる。スキャンライン上の色値を決定するには、これらのエッジを用いることができる。例えば、スキャンライン761であれば、エッジ751〜752、エッジ753〜754、エッジ755〜757の3か所を特定色で塗りつぶすことになる。
更にスキャンライン762では、エッジ751〜757を、スキャンライン763ではエッジ756〜757の区間(スパン)を塗りつぶせばよい。この時、塗りつぶさない画素については画素毎に色値を決定する必要が無く、また同じスパン内の画素については同じ処理を繰り返せばよい。この手段を用いると、DLとしてはエッジ数が多く、エッジ処理部262の処理量は大きい。しかしながら、画素毎に色を決定する必要が無く、ピクセル描画部263の処理量は小さい。このようにRIPデバイス159では、どちらの表現手段にも得手不得手があり、前述のベクタエッジ数総和などのヒント情報(特徴情報)から使い分ける手段を設けることが望ましい。
【0046】
次に、S309で、描画コマンド最適化部204が結合オブジェクトにマスクイメージがあるかどうかを判断する。ここで、結合オブジェクトにマスクイメージがないと描画コマンド最適化部204が判断した場合は、S310からS312までの処理は行わず、描画コマンド最適化部204は、そのまま結合オブジェクトをPDL生成部207に出力し(S313)、描画コマンド最適化部204は簡易RIP DLM206を空き状態にする(S314)。更に、描画コマンド最適化部204は、結合出力処理を開始するトリガーとなった入力オブジェクトを描画し(S307)、処理を終了する。
【0047】
一方、S309で、結合オブジェクトにマスクイメージがあると描画コマンド最適化部204が判断した場合には、描画コマンド最適化部204が結合オブジェクトから画素を描画する面積が結合オブジェクトに占める割合を算出する(S310)。ここで描画面積割合の算出に関しては、簡易的な手段を用いても良いし、あるいは厳密に計算を行っても良い。
簡易的な手段としては、簡易RIP DLM206に入力オブジェクトを追加するS305の際に、入力オブジェクトのバウンディングボックスを求め、その総和によって描画面積と代替しても良い。あるいは、簡易RIP DLM206に入力オブジェクトのエッジが保存される場合には、そのエッジ情報から算出しても良い。
厳密に求めるためには、結合オブジェクトに含まれるマスクイメージの全画素を走査して描画する画素数を求めても良い。
【0048】
次に、描画コマンド最適化部204がマスクイメージ上のエッジ数を算出する(S311)。マスクイメージ上のエッジ数算出のために、マスクイメージ上の全画素について1画素ずつ右あるいは左の画素と一致してない画素数を数え上げる手段を用いても良い。もしくは、図5に示すような手段を用いてエッジ数を算出しても良い。
図5において、800は元画像である。これに対して、右にシフトしたシフト画像801を生成する。次に、描画コマンド最適化部204が元画像800とシフト画像801の排他的論理和を求め(802)、更に元画像と論理和をとることでエッジ画像803を生成する事ができる。このエッジ画像803上にある描画する画素数(黒画素数)を数え上げることで、エッジ数を算出することができる。
【0049】
そして、描画コマンド最適化部204がオブジェクトエッジ数総和、描画面積割合ならびにマスクイメージ上のエッジ数を、結合オブジェクトのヒント情報(特徴情報)として付与する(S312)。次に、描画コマンド最適化部204が結合オブジェクトをPDL生成部207へ出力し(S313)、描画コマンド最適化部204が簡易RIP DLM206を空き状態にする(S314)。更に、描画コマンド最適化部204が結合出力処理を開始するトリガーとなった入力オブジェクトを描画し(S307)、本処理を終了する。
【0050】
以上によって、入力オブジェクト群のうち細切れ結合条件に適合しているものが簡易RIP DLM206に保持される。そして結合条件に適合しない入力オブジェクトの入力をトリガーとして、結合処理が実行される。この時に、入力オブジェクト群ならびに結合オブジェクトの特徴量からヒント情報(特徴情報)が導かれ、これを結合オブジェクトにヒント情報(特徴情報)として付与される。
次に、画像処理装置150のRIPデバイス159のエッジ変換処理部261の処理について説明する。
【0051】
以上に述べた細切れ結合処理によって、パス点列の集合によってベクターで表現されていた描画コマンドを結合し、イメージ描画コマンドとして表現する事が可能である。これによりエッジ数は削減され、エッジ処理部262の負荷を軽減する事が出来る。その一方、描画コマンド最適化部204では結合処理のために負荷が増大する。また、イメージでの描画コマンドに置き換えると、画素毎に色値を行う必要があり、ROP処理をする画素処理部の負荷も大きくなる。
【0052】
画素処理部の負荷を減らす手段として、最適化した結合イメージ描画コマンドを、ベクターでの描画コマンドに逆変換する手段がある。ベクターでの描画コマンドでは、画像上の色値を決定する処理をスキャンライン上のスパン毎に行えば良く、画素処理部の負荷は大きく軽減される。しかし、ベクターへの逆変換には毎画素毎にエッジを抽出する処理が必要となり、エッジ処理部262の負荷は増加してしまう。
【0053】
エッジ変換処理部261は、入力オブジェクトにマスクイメージが付与されている場合に、必要に応じてビットマップエッジをベクタエッジに変換する処理を行う事で、デバイスの性能に応じて処理時間を最適化する事を目的としている。
【0054】
図6は、本実施形態を示す画像処理装置のデータ処理方法を説明するフローチャートである。本例は、図2に示したエッジ変換処理部261によるエッジ変換処理例である。なお、S401〜S410は各ステップを示し、各ステップは、図1に示したプロセッサ151がメモリ152に制御プログラム(図2に示したモジュールを含む)をロードして実行することで実現される。以下、本実施形態を示すベクタエッジ処理並びにビットマップエッジ処理を説明する。
まず、エッジ変換処理部261は、入力オブジェクトにマスクイメージが付与されているかを判定する(S401)。ここで、マスクイメージが付与されていないとエッジ変換処理部261が判断した場合には描画領域を指定するパスとクリップに基づいてベクタエッジでの描画を行うオブジェクトとして処理して(S402)、本処理を終了する。
【0055】
一方、S401で、入力オブジェクトにマスクイメージが付与されているとエッジ変換処理部261が判断した場合には、更に、エッジ変換処理部261はヒント情報(特徴情報)が付与されているかを判定する(S403)。ここで、入力オブジェクトにヒント情報(特徴情報)が付与されていないとエッジ変換処理部261
が判断した場合には、本入力オブジェクトは結合対象になっていなかったものであるため、そのままイメージ内容に基づいて描画するビットマップエッジとして入力オブジェクトを描画して(S404)、本処理を終了する。
【0056】
一方、S403で、入力オブジェクトにヒント情報(特徴情報)が付与されているとエッジ変換処理部261が判断した場合には、エッジ変換処理部261がそのヒント情報(特徴情報)から結合前および結合後のオブジェクトの特徴を抽出する(S405)。更に、エッジ変換処理部261がRIPデバイスの状態を取得する(S406)。そして、エッジ変換処理部261がこれらの情報を元に入力オブジェクトを処理すべき手段を判断する(S407)。
【0057】
そして、エッジ変換処理部261が入力オブジェクトの処理手段を判断した結果、ベクタエッジで処理するべきかどうかを判断する。ここで、ベクタエッジで処理するべきでないとエッジ変換処理部261が判断した場合は、入力オブジェクトをそのままイメージ内容に基づいて描画するビットマップエッジとして描画する(S404)。
一方、S408で、ベクタエッジで処理するべきであるとエッジ変換処理部261が判断した場合は、エッジ変換処理部261がマスクイメージからベクタエッジを抽出する(S409)。そして、エッジ変換処理部261が抽出したベクタエッジに基づいて、入力オブジェクトを描画して(S410)、本処理を終了する。
これにより、プリンタドライバ202でデータを生成する際においてRIPデバイス159の状態等を問い合わせることなく、最適な形式でエッジ処理部262、ピクセル描画部263を活用する事が可能となる。
ここで、S407における入力オブジェクトを処理すべき手段の判断処理の詳細手順の一例について図7、図8を参照して説明する。
【0058】
図7は、本実施形態を示す画像処理装置のデータ処理方法を説明するフローチャートである。本例は、図2に示したエッジ処理部262による判断処理例である。なお、S501〜S506は各ステップを示し、各ステップは、図1に示したプロセッサ151がメモリ152に制御プログラム(図2に示したモジュールを含む)をロードして実行することで実現される。以下、本実施形態を示すベクタエッジ処理並びにビットマップエッジ処理を説明する。
【0059】
図8は、本実施形態を示す画像処理装置におけるエッジ処理例を説明する図である。
まず、エッジ処理部262が取得したRIPデバイスの状態として、過負荷となっていないかを判定する(S501)。ここで、もし過負荷となっているとエッジ処理部262が判断した場合には少ないエッジ数で処理可能なビットマップとして処理する手段を選択して(S505)、本処理を終了する。
【0060】
一方、S501で、過負荷となっていないとエッジ処理部262が判断した場合には、エッジ処理部262がオブジェクトエッジ数総和が第1の閾値を超過していないかを判定する(S502)。ここで、第1の閾値以上のオブジェクトエッジ数総和を持つ場合には、結合オブジェクト上には複雑なエッジが描画されている事が推定されるため、エッジ処理部262はオブジェクトエッジ数総和が第1の閾値を超過していると判断する。そして、エッジ処理部262は、ビットマップエッジとして描画する手段を選択して(S505)、本処理を終了する。
例えば、図8に示すケース1に示すように、結合オブジェクト900があったものとする。左側のパス表現とは論理空間上で指定されているオブジェクト形状を意味する。
【0061】
このパス表現では実際に1画素に該当する領域にも複数のエッジが含まれる事がある。左上および右下の歯車形状のオブジェクトを表現するには64本のエッジが必要となる。これをビットマップイメージとして表現する場合には901のビットマップエッジで示す通り、4画素の塗りつぶしとなってしまう。このような単純化ができるため、オブジェクトエッジ数総和によって複雑なエッジが描画されている事を推定する手段は有効である。
【0062】
一方、S502で、オブジェクトエッジ数総和が第1の閾値を超過しないとエッジ処理部262が判断した場合には、エッジ処理部262が描画面積割合が第2の閾値を超過するかを判定する(S503)。ここで、オブジェクトエッジ数総和も少なく、描画面積割合が第2の閾値を超過しないとエッジ処理部262が判断した場合には、結合オブジェクト上には少ない数の単純なオブジェクトが描画されている事が推定される。よって、この場合は、エッジ処理部262がベクタエッジとして描画する手段を選択して(S506)、本処理を終了する。
【0063】
例えば、図8のケース2に示す結合オブジェクト930があったとする。こちらについてもパスとして形状を表現したものがパス表現である。描画面積割合が一定比率未満である場合には、すなわち描画しない面積が比率以上あることを意味する。よって、ビットマップエッジ表現931に基づいて描画を行うと、無駄なスキップ処理(すなわち背景画素を選択する処理)が多数発生してしまう。よって、ベクタエッジ表現932に基づいて、描画するべきではない画素を読み飛ばして処理する事が望ましい。
【0064】
一方、S503で、描画面積割合が第2の閾値を超過するとエッジ処理部262が判断した場合には、エッジ処理部262がマスクイメージ内のエッジ数が第3の閾値を超過するかを判定する(S504)。ここで、マスクイメージ内のエッジ数が第3の閾値を超過するとエッジ処理部262が判断した場合には、市松模様のような描画面積割合によらず複雑な描画がなされている事が推定される。よって、エッジ処理部262がビットマップエッジとして描画して(S505)、本処理を終了する。例えば、図8のケース3に示す結合オブジェクト960があったとする。
【0065】
マスクイメージ内のエッジ数が比較的多いため、ベクタエッジ表現962で描画を行っても、エッジ抽出のコストはかかるがほぼ毎画素に対して色値を決定する必要がでてしまう。こうした場合には、ビットマップエッジ表現961に従って描画を行う方が、エッジ抽出コストを削減できるだけ高速となる。
【0066】
一方、S504で、マスクイメージ内のエッジ数が第3の閾値を超過しないとエッジ処理部262が判断した場合には、結合オブジェクト上に描画する領域が結合され、sparseな(まばらな)描画がなされている事が推定される。よって、エッジ処理部262がベクタエッジとして描画して(S506)、本処理を終了する。これにより、無駄な処理を省くことが出来る。
【0067】
例えば図8のケース4に示す結合オブジェクト990があったとする。入力オブジェクト同士が隣接しているため、オブジェクトエッジ数総和に対してマスクイメージ内のエッジ数の方が非常に小さくなる。このようなケースであれば、ビットマップエッジ表現991での描画を行うよりも、ベクタエッジ表現992に基づいて描画した方が高速である。
ここで、第1、第2、第3の閾値は、RIPデバイスの特性や状態によって動的に決定する事が望ましいが、ある固定値を予め決定しておいても良い。
【0068】
本情報処理装置100側でヒント情報(特徴情報)の付与処理を行う事で、プリンタドライバ202は、PDL生成部207がPDLデータを生成する場合に上記ヒント情報(特徴情報)を付与できる。ネットワーク130を介して画像処理装置150内のPDLインタプリタ部252がPDLデータを解釈し、その結果DL生成部257でDLに同ヒント情報(特徴情報)を付与する。DLに付与されたヒント情報(特徴情報)を活用する事で、RIPデバイス159側が最適な処理を選択する事が出来る。
【0069】
〔第2実施形態〕
上記第1実施形態では、プリンタドライバ202内の描画コマンド最適化部204で最適化を行う場合にヒント情報(特徴情報)を付与する場合について説明を行った。しかしながら、情報処理装置100のデータ処理性能が非常に低い場合には、プリンタドライバ202で非常に多くの最適化処理を行う事が難しくなる。また、画像処理装置に送信される印刷情報の全てが最適化されている保証はなく、場合によっては画像処理装置側での最適化が必要となる場合がある。
第2実施形態としては、画像処理装置内の描画コマンド最適化部254で最適化を行う場合にヒント情報(特徴情報)を付与する場合について説明を行う。
【0070】
以下、図3に示した処理を画像処理装置150の描画コマンド最適化部254で行う例を説明する。もちろん、描画コマンド最適化部254でこれ以外の最適化処理を実装しても、本発明を好的に適用する事が可能である。例えば不要なクリップの除去、出力されない描画コマンドの除去などの最適化処理を予め行った上で、本処理を実行しても良い。あるいは、本発明を適用した後からその他の最適化処理を行っても良い。この両方を組み合わせても、本発明の効果は変わらない。
まず、ジョブ開始時にはメモリ152の簡易RIPDLM266に何も描画オブジェクトが登録されていないものとする。
【0071】
描画コマンド最適化部254では、入力オブジェクトが細切れ結合条件に適合しているかを判断する(S301)。この条件の一例としては、簡易RIP部255で処理可能なROP(例えば、ROP2 COPYPENないし、ROP3 0xCA)が指定されているかを判定するものがある。また、それぞれの入力オブジェクトの幅・高さが一定閾値以内に収まるか、あるいは結合後のオブジェクトの幅・高さが別の閾値以内に収まるか、を判定する。
その他、簡易RIPDLM266に登録可能なオブジェクト数上限を定め、それを超過していないかを判定しても良い。これらは簡易RIP部255の設計・実装に依存する部分であるため、詳細な説明は省略する。細切れ結合条件を満たしている場合には細切れ結合の対象データであるとしてS302以降を実行する。この条件を満たさない場合にはS304以降を処理する。
【0072】
入力オブジェクトが細切れ結合条件を満たしていると描画コマンド最適化部254が判断した場合、描画コマンド最適化部254がその簡易RIP DLM206が空であるかを判定する(S302)。これが空であると描画コマンド最適化部254が判断した場合には、オブジェクトエッジ数総和を0とする(S303)。
そして、描画コマンド最適化部254は、簡易RIP DLM206に追加しようとしている入力オブジェクトに含まれるエッジ数を、オブジェクトエッジ数総和に加算していく(S304)。そして、描画コマンド最適化部254は、簡易RIPDLM266に、当該入力オブジェクトを追加する(S305)。これによって、結合条件を満たしている間、簡易RIPDLM266にオブジェクトが追加され続ける。
【0073】
一方、301で、入力オブジェクトが細切れ結合条件を満たしていないと描画コマンド最適化部254が判断した場合、簡易RIPDLM266が空であるかを判定する(S306)。これが空き状態であると描画コマンド最適化部254が判断した場合には、描画コマンド最適化部254は、入力オブジェクトを出力し(S307)、処理を終了する。
なお、細切れ結合処理を併用する別の最適化手段で、この入力オブジェクトの最適化を試みても良い。
一方、S306で、簡易RIPDLM266が空き状態でないと描画コマンド最適化部254が判断した場合には、簡易RIPDLM266に保存されている入力オブジェクト群を簡易RIP255で出力処理し、結合オブジェクトを生成する(S308)。
【0074】
結合オブジェクトにマスクイメージがない場合には、S310からS312までの処理は行わず、そのまま結合オブジェクトを出力し(S313)、簡易RIP DLM206を空にする(S314)。更に、結合出力処理を開始するトリガーとなった入力オブジェクトを描画し(S307)、処理を終了する。
【0075】
一方、S309で、結合オブジェクトにマスクイメージがあると描画コマンド最適化部254が判断した場合には、描画コマンド最適化部254が結合オブジェクトから画素を描画する面積が結合オブジェクトに占める割合を算出する(S310)。
ここで描画面積割合の算出に関しては、簡易的な手段を用いても良いし、あるいは厳密に計算を行っても良い。簡易的な手段としては、簡易RIP DLM206に入力オブジェクトを追加するS305の際に、入力オブジェクトのバウンディングボックスを求め、その総和によって描画面積と代替しても良い。あるいは、簡易RIP DLM206に入力オブジェクトのエッジが保存される場合には、そのエッジ情報から算出しても良い。厳密に求めるためには、結合オブジェクトに含まれるマスクイメージの全画素を走査して描画する画素数を求めても良い。
【0076】
次に、描画コマンド最適化部254がマスクイメージ上のエッジ数を算出する(S311)。マスクイメージに対して1画素だけ左右にずらしたイメージの排他的論理和を求めることで、このマスクイメージ上のエッジ数を算出する事が出来る。
【0077】
そして、描画コマンド最適化部254が以上によって得られた、オブジェクトエッジ数総和、描画面積割合ならびにマスクイメージ上のエッジ数を、結合オブジェクトのヒント情報(特徴情報)として付与する(S312)。次に、描画コマンド最適化部254がこの結合オブジェクトを出力し(S313)、描画コマンド最適化部254が簡易RIPDLM266を空き状態にする(S314)。更に、描画コマンド最適化部254が結合出力処理を開始するトリガーとなった入力オブジェクトを描画し(S307)、処理を終了する。
【0078】
以上によって、入力オブジェクト群のうち細切れ結合条件に適合しているものが簡易RIP DLMに保持される。そして結合条件に適合しない入力オブジェクトの入力をトリガーとして、結合処理が実行される。
この時に、入力オブジェクト群ならびに結合オブジェクトの特徴量からヒント情報(特徴情報)が導かれ、これを結合オブジェクトにヒント情報(特徴情報)として付与される。
【0079】
以上によって、情報処理装置100側で最適化処理が行われていない場合であっても、デバイス内で必要なヒントを描画コマンド最適化部254で形成する事が可能となる。これによって画像処理装置150で利用するRIPデバイス159の構成によらずに好的な処理のできる描画コマンドへ最適化することが可能となる。
【0080】
〔第3実施形態〕
以下、情報処理装置上からプリンタ上にPDLデータを送信し、別PDLデータに変換して利用するユースケースを第3実施形態として説明する。描画コマンド最適化部、およびエッジ変換処理部に関しては、第1実施形態と同等であるため省略する。
【0081】
ネットワーク受信部251から入力されるPDLデータをPDLデータ解釈部253で解釈し、描画コマンド最適化部254で最適化した描画コマンドを、PDL生成部259でPDLデータに変換する処理について、図9を用いて説明する。
【0082】
図9は、本実施形態を示す情報処理装置におけるデータ処理装置を説明するフローチャートである。本例は、図2に示したPDL生成部259で行われる処理例である。なお、S601〜S607は各ステップを示し、各ステップは、図1に示したプロセッサ151がメモリ152に制御プログラム(図2に示すモジュールを含む)をロードして実行することで実現される。以下、制御の主体を図2に示したモジュールとして説明を行う。
まず、PDL生成部259が出力しようとするPDL形式を選択する(S601)。PDL形式としては例えばXPS(XML Paper Specification, Microsoft社商標)を用いることが出来る。あるいは、PS(Post Script、Adobe社商標)、PDF(Portable Document Format、Adobe社商標)も選択できる。また、これ以外のいかなるPDL形式を選択しても良い。
【0083】
次に、PDL生成部259が描画コマンドに対して変換処理を行う(S602)。次に、PDL生成部259が全ての描画コマンドを出力形式に変換する(S603)。そして、PDL生成部259がその対象となっている描画オブジェクトにヒント情報(特徴情報)が付与されているかを判別する(S604)。
なお、このヒント情報(特徴情報)は、第1実施形態でプリンタドライバ202内の描画コマンド最適化部204で付与されたものでも良いし、第2実施形態でPDLインタプリタ部252内の描画コマンド最適化部254で付与されたものでも良い。
ここで、ヒント情報(特徴情報)が付与されているとPDL生成部259が判別した場合には、出力形式の描画コマンドに対してヒントを付与して(S605)、S606へ進む。PDL言語でサポートしているコメントという形で埋め込んでも良いし、あるいは属性情報としてデータ内に埋め込んでも良い。
【0084】
そして、PDL生成部259が出力形式の描画コマンドを出力して(S606)、S607で、PDL生成部259が全ての描画コマンドに対して変換処理を終了したかどうかを判断する(S607)。ここで、PDL生成部259が全ての描画コマンドに対して変換処理を終了したと判断した場合は、本処理を終了し、終了していないと判断した場合は、S602へ戻り、次の描画コマンドの変換処理を繰り返す。なお、ヒント情報(特徴情報)は出力形式の描画コマンドを解釈する直前あるいは同時のタイミングで参照できるように格納する。これにより、生成されるPDLデータ内に、当該ヒント情報(特徴情報)を埋め込むことが可能となる。
【0085】
PDL生成部259が生成したPDLデータは、例えばディスク装置153内のBOX領域270にPDLジョブとして格納することができる。あるいは、ネットワークアダプタ157を介してネットワーク130と接続されている別デバイスに送信する事もできる。この時に、送信するジョブが保存目的であるか、出力目的であるかの情報も付与しても良い。
【0086】
当該デバイスのBOX領域270内や別デバイス内に保持したPDLジョブに対して出力指定がなされた場合、あるいは、別デバイスから出力目的で送信されてきたPDLジョブは、ジョブ制御部256を介してPDLインタプリタ部252に通知される。そしてPDLデータ解釈部253にてヒント情報(特徴情報)を解釈することで、変換する前に行った最適化処理に関する情報を継承することが可能となる。
【0087】
また、本発明の実施形態として情報処理装置上からプリンタ上にPDLデータを送信し、プリンタ上のディスプレイ装置でプレビューとして表示するユースケースなどでも本発明を適用する事が出来る。その際には、印刷時に使うRIPデバイス159とは別にソフトウエアで同処理を行う別のRIPデバイスを設ける事も可能である。
【0088】
本発明を好的に適用する事により、描画コマンドを最適化する際に失われる種々の情報を別PDL形式に変換しても継承することが可能となる。これにより、様々な環境であっても描画コマンド最適化情報を活用できる、最適化情報の可搬性を生み出すことが可能となる。
【0089】
図10は、本実施形態を示す情報処理装置におけるエッジ処理状態を説明する図である。以下、本実施形態におけるエッジ処理の有用性を説明する。
図10において、非常に多くのパスを含むデータを処理する場合、エッジ処理部262の負荷が非常に大きくなる事がある(1001)。
これに対して、従来は細切れ結合などの描画コマンド最適化処理を追加で行う事で、エッジ数が削減され、エッジ処理時間の負荷軽減ができた。
しかし、それに伴い、ビットマップエッジで表現するためにピクセル描画処理は却って大きくなる(1002)。エッジ変換処理を適切なパラメータで行い、一部のビットマップエッジをベクタエッジで表現すると、エッジ変換処理は追加されるが、ピクセル描画処理の負荷を軽減できる(1003)。
【0090】
しかし、エッジ変換処理が不足してしまうと、ピクセル描画処理の負荷が軽減されないばかりか、エッジ変換処理も加算され、前よりも負荷が大きくなる場合がある(1004)。もしくは、エッジ変換処理が過多となると、ピクセル描画処理の負荷が非常に軽減される。しかし、エッジ変換処理のコストが増加してしまい、やはり前よりも負荷が大きくなる場合がある(1005)。
このエッジ変換処理、エッジ処理あるいはピクセル描画処理の実現手段は製品によって異なる。本発明は、描画コマンド最適化処理時に結合時のヒント情報(特徴情報)を付与し、手段決定を遅延させることで、動的に、これらのモジュール間の負荷状態のバランスをとることを目的としている。
【0091】
本発明の各工程は、ネットワーク又は各種記憶媒体を介して取得したソフトウエア(プログラム)をパソコン(コンピュータ)等の処理装置(CPU、プロセッサ)にて実行することでも実現できる。
【0092】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形(各実施形態の有機的な組合せを含む)が可能であり、それらを本発明の範囲から除外するものではない。
【符号の説明】
【0093】
100 情報処理装置
150 画像処理装置

【特許請求の範囲】
【請求項1】
入力される描画オブジェクト群から印刷情報を生成する情報処理装置と、前記情報処理装置から受信する印刷情報を処理する画像処理装置とを含む情報処理システムであって、
前記情報処理装置は、
複数の描画オブジェクトを解析して所定の結合条件を満たす描画オブジェクトを結合する結合手段と、
前記結合手段が結合した描画オブジェクトにマスクイメージとして処理すべき描画オブジェクトが含まれているかどうかを判断する判断手段と、
前記マスクイメージとして処理すべき描画オブジェクトが含まれていると判断した場合、前記結合手段により結合された描画コマンドと、複数の描画オブジェクトが結合されていない描画オブジェクトとから結合された描画オブジェクトを描画するためのエッジ処理を特定するために用いる特徴情報を抽出する抽出手段と、
前記抽出手段が抽出した特徴情報を結合された描画オブジェクトに付与する付与手段と、
前記特徴情報が付与された印刷情報を前記画像処理装置に送信する送信手段と、を備え、
前記画像処理装置は、
描画オブジェクトまたは複数の描画オブジェクトが結合された描画オブジェクトに対して描画処理を行う描画手段と、
前記結合された描画オブジェクトに前記特徴情報が付与されているかどうかを判断する判断手段と、
前記特徴情報が付与されていると判断した場合、前記描画手段が複数の描画オブジェクトが結合された描画オブジェクトに対して実行すべきエッジ処理をベクタエッジ処理またはビットマップエッジ処理に切り替える制御手段と、
を備えることを特徴とする情報処理システム。
【請求項2】
入力される描画オブジェクト群から印刷情報を生成する情報処理装置と、前記情報処理装置から受信する印刷情報を処理する画像処理装置とを含む情報処理システムであって、
前記情報処理装置は、
前記印刷情報を画像処理装置に送信する送信手段を備え、
前記画像処理装置は、
前記印刷情報を解析して所定の結合条件を満たす複数の描画オブジェクトを結合する結合手段と、
前記結合手段が結合した描画オブジェクトにマスクイメージとして処理すべき描画オブジェクトが含まれているかどうかを判断する判断手段と、
前記マスクイメージとして処理すべき描画オブジェクトが含まれていると判断した場合、前記結合手段により結合された描画コマンドと、複数の描画オブジェクトが結合されていない描画オブジェクトとから結合された描画オブジェクトを描画するためのエッジ処理を特定するために用いる特徴情報を抽出する抽出手段と、
前記抽出手段が抽出した特徴情報を結合された描画オブジェクトに付与する付与手段と 前記描画オブジェクトまたは複数の描画オブジェクトが結合された描画オブジェクトに対して描画処理を行う描画手段と、
前記描画オブジェクトに前記特徴情報が付与されているかどうかを判別する判別手段と、
前記特徴情報が付与されていると判別した場合、前記描画手段が複数の描画オブジェクトが結合された描画オブジェクトに対して実行すべきエッジ処理をベクタエッジ処理またはビットマップエッジ処理に切り替える制御手段と、
を備えることを特徴とする情報処理システム。
【請求項3】
入力される描画オブジェクト群から印刷情報を生成する情報処理装置と、前記情報処理装置から受信する印刷情報を処理する画像処理装置とを含む情報処理システムであって、
前記情報処理装置は、
複数の描画オブジェクトを解析して所定の結合条件を満たす描画オブジェクトを結合する結合手段と、
前記結合手段が結合した描画オブジェクトにマスクイメージとして処理すべき描画オブジェクトが含まれているかどうかを判断する判断手段と、
前記マスクイメージとして処理すべき描画オブジェクトが含まれていると判断した場合、前記結合手段により結合された描画コマンドと、複数の描画オブジェクトが結合されていない描画オブジェクトとから結合された描画オブジェクトを描画するためのエッジ処理を特定するために用いる特徴情報を抽出する抽出手段と、
前記抽出手段が抽出した特徴情報を前記印刷情報に付与する付与手段と、
前記特徴情報が付与された印刷情報を前記画像処理装置に送信する送信手段と、を備え、
前記画像処理装置は、
描画オブジェクトまたは複数の描画オブジェクトが結合された描画オブジェクトに対して描画処理を行う描画手段と、
前記印刷情報に前記特徴情報が付与されているかどうかを判断する判断手段と、
前記描画手段が複数の描画オブジェクトが結合された描画オブジェクトに対して実行すべきエッジ処理をベクタエッジ処理またはビットマップエッジ処理に切り替える制御手段と、
を備えることを特徴とする情報処理システム。
【請求項4】
前記制御手段は、前記特徴情報が付与されていると判断した場合、さらに、前記描画手段によるエッジ処理の負荷状態に応じて、前記特徴情報が付与されていると判断した場合、前記描画手段が入力される描画オブジェクトに対して実行すべきエッジ処理をベクタエッジ処理またはビットマップエッジ処理に切り替えることを特徴とする請求項1乃至3のいずれか1項に記載の情報処理システム。
【請求項5】
前記印刷情報を、所定のページ記述言語に基づくPDLデータであることを特徴とする請求項1乃至3のいずれか1項に記載の情報処理システム。
【請求項6】
入力される描画オブジェクト群から印刷情報を生成する情報処理装置と、前記情報処理装置から受信する印刷情報を処理する画像処理装置とを含む情報処理システムにおける描画処理方法であって、
前記情報処理装置は、
複数の描画オブジェクトを解析して所定の結合条件を満たす描画オブジェクトを結合する結合工程と、
前記結合工程が結合した描画オブジェクトにマスクイメージとして処理すべき描画オブジェクトが含まれているかどうかを判断する判断工程と、
前記マスクイメージとして処理すべき描画オブジェクトが含まれていると判断した場合、前記結合工程により結合された描画コマンドと、複数の描画オブジェクトが結合されていない描画オブジェクトとから結合された描画オブジェクトを描画するためのエッジ処理を特定するために用いる特徴情報を抽出する抽出工程と、
前記抽出工程が抽出した特徴情報を結合された描画オブジェクトに付与する付与工程と、
前記特徴情報が付与された印刷情報を前記画像処理装置に送信する送信工程と、を備え、
前記画像処理装置は、
描画オブジェクトまたは複数の描画オブジェクトが結合された描画オブジェクトに対して描画処理を行う描画工程と、
前記描画オブジェクトに前記特徴情報が付与されているかどうかを判断する判断工程と、
前記特徴情報が付与されていると判別した場合、前記描画工程が複数の描画オブジェクトが結合された描画オブジェクトに対して実行すべきエッジ処理をベクタエッジ処理またはビットマップエッジ処理に切り替える制御工程と、
を備えることを特徴とする描画処理方法。
【請求項7】
入力される描画オブジェクト群から印刷情報を生成する情報処理装置と、前記情報処理装置から受信する印刷情報を処理する画像処理装置とを含む情報処理システムにおける描画処理方法であって、
前記情報処理装置は、
前記印刷情報を画像処理装置に送信する送信工程を備え、
前記画像処理装置は、
前記印刷情報を解析して所定の結合条件を満たす複数の描画オブジェクトを結合する結合工程と、
前記結合工程が結合した描画オブジェクトにマスクイメージとして処理すべき描画オブジェクトが含まれているかどうかを判断する判断工程と、
前記マスクイメージとして処理すべき描画オブジェクトが含まれていると判断した場合、前記結合工程により結合された描画コマンドと、複数の描画オブジェクトが結合されていない描画オブジェクトとから結合された描画オブジェクトを描画するためのエッジ処理を特定するために用いる特徴情報を抽出する抽出工程と、
前記抽出工程が抽出した特徴情報を結合された描画オブジェクトに付与する付与工程と 描画オブジェクトまたは複数の描画オブジェクトが結合された描画オブジェクトに対して描画処理を行う描画工程と、
前記描画オブジェクトに前記特徴情報が付与されているかどうかを判別する判別工程と、
前記特徴情報が付与されていると判別した場合、前記描画工程が複数の描画オブジェクトが結合された描画オブジェクトに対して実行すべきエッジ処理をベクタエッジ処理またはビットマップエッジ処理に切り替える制御工程と、
を備えることを特徴とする描画処理方法。
【請求項8】
入力される描画オブジェクト群から印刷情報を生成する情報処理装置と、前記情報処理装置から受信する印刷情報を処理する画像処理装置とを含む情報処理システムにおける描画処理方法であって、
前記情報処理装置は、
複数の描画オブジェクトを解析して所定の結合条件を満たす描画オブジェクトを結合する結合工程と、
前記結合工程が結合した描画オブジェクトにマスクイメージとして処理すべき描画オブジェクトが含まれているかどうかを判断する判断工程と、
前記マスクイメージとして処理すべき描画オブジェクトが含まれていると判断した場合、前記結合工程により結合された描画コマンドと、複数の描画オブジェクトが結合されていない描画オブジェクトとから結合された描画オブジェクトを描画するためのエッジ処理を特定するために用いる特徴情報を抽出する抽出工程と、
前記抽出工程が抽出した特徴情報を前記印刷情報に付与する付与工程と、
前記特徴情報が付与された印刷情報を前記画像処理装置に送信する送信工程と、を備え、
前記画像処理装置は、
描画オブジェクトまたは複数の描画オブジェクトが結合された描画オブジェクトに対して描画処理を行う描画工程と、
前記印刷情報に前記特徴情報が付与されているかどうかを判断する判断工程と、
前記特徴情報が付与されていると判別した場合、前記描画工程が複数の描画オブジェクトが結合された描画オブジェクトに対して実行すべきエッジ処理をベクタエッジ処理またはビットマップエッジ処理に切り替える制御工程と、
を備えることを特徴とする描画処理方法。
【請求項9】
入力される描画オブジェクト群から印刷情報を生成して画像処理装置に出力する情報処理装置を、
複数の描画オブジェクトを解析して所定の結合条件を満たす描画オブジェクトを結合する結合手段と、
前記結合手段が結合した描画オブジェクトにマスクイメージとして処理すべき描画オブジェクトが含まれているかどうかを判断する判断手段と、
前記マスクイメージとして処理すべき描画オブジェクトが含まれていると判断した場合、前記結合手段により結合された描画コマンドと、複数の描画オブジェクトが結合されていない描画オブジェクトとから結合された描画オブジェクトを描画するためのエッジ処理を特定するために用いる特徴情報を抽出する抽出手段と、
前記抽出手段が抽出した特徴情報を結合された描画オブジェクトに付与する付与手段と、
前記特徴情報が付与された印刷情報を前記画像処理装置に送信する送信手段として機能させることを特徴とするプログラム。
【請求項10】
情報処理装置から受信する入力される描画オブジェクト群に対して描画処理を行う画像処理装置を、
前記描画オブジェクト群に含まれる描画オブジェクトまたは複数の描画オブジェクトが結合された描画オブジェクトに対して描画処理を行う描画手段と、
結合された描画オブジェクトを描画するためのエッジ処理を特定するために用いる特徴情報が複数の描画オブジェクトが結合された描画オブジェクトに付与されているかどうかを判断する判断手段と、
前記特徴情報が付与されていると判断した場合、前記描画手段が複数の描画オブジェクトが結合された描画オブジェクトに対して実行すべきエッジ処理をベクタエッジ処理またはビットマップエッジ処理に切り替える制御手段と、
して機能させることを特徴とするプログラム。

【図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