JP2019077133A - 画像形成装置、画像形成方法、プログラム - Google Patents
画像形成装置、画像形成方法、プログラム Download PDFInfo
- Publication number
- JP2019077133A JP2019077133A JP2017207439A JP2017207439A JP2019077133A JP 2019077133 A JP2019077133 A JP 2019077133A JP 2017207439 A JP2017207439 A JP 2017207439A JP 2017207439 A JP2017207439 A JP 2017207439A JP 2019077133 A JP2019077133 A JP 2019077133A
- Authority
- JP
- Japan
- Prior art keywords
- edge
- data
- image forming
- processing
- processor
- 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.)
- Pending
Links
Images
Landscapes
- Image Generation (AREA)
- Editing Of Facsimile Originals (AREA)
- Record Information Processing For Printing (AREA)
Abstract
【課題】エッジデータのソートをプロセッサで実行し、所定の合成演算を演算回路で行うことができる画像形成装置を提供する。【解決手段】印刷データによって表現されるページ内のライン上にあるオブジェクトのエッジに対応するエッジデータを、ライン上におけるエッジの座標に基づいてソートし、ソートされたエッジデータに基づいて、ラインにおける各エッジ間の区間のラスタ画像を生成する画像形成装置であって、所定のプログラムを読み込んで実行するプロセッサと、所定の合成演算を行う演算回路を含む処理部と、を有し、プロセッサは、所定のプログラムにしたがって、エッジデータをソートし、処理部は、ラスタ画像の生成において所定の合成演算にしたがってオブジェクトを合成する場合に、演算回路を用いて、当該オブジェクトの色値に基づく所定の合成演算を行うことを特徴とする。【選択図】図4
Description
本発明は、画像形成装置、画像形成方法、プログラムに関する。
従来、ホストコンピュータ上で実行される描画アプリケーションを用いて生成された描画データをプリンタで印刷する場合、ホストコンピュータは描画データをページ記述言語(以降、PDL)と呼ばれる印刷データの形式でプリンタへ送信する。PDLには描画データにおける、文字、グラフィック、イメージ等のオブジェクトを印刷する際に必要となる印刷情報が含まれている。
PDLを受信したプリンタは、PDLに含まれる描画データをもとに、ページのラスタ画像を生成するレンダリング処理を行う。レンダリング処理の方法は幾つか存在するが、例えば、1ラインごとにページのラスタ画像を生成するスキャンラインレンダリングという方法がある。スキャンラインレンダリングは、ページ内に描画するオブジェクトとオブジェクト、またはオブジェクトと背景の境目を指すエッジのデータ(エッジデータ)を基にライン単位でレンダリングを行う。
スキャンラインレンダリングは、ページに含まれるオブジェクトのエッジのうち、処理対象のライン(現在のライン)上に存在する複数のエッジのデータをリスト(エッジリスト)で管理するエッジ処理を行う。このエッジ処理は、現在のライン上に存在する複数のエッジを特定し、それらエッジのデータを、現在のラインにおける各エッジの座標に基づき、座標昇順でソートし、ソートされたエッジデータをエッジリストで管理する。このように複数のエッジデータを座標昇順でソートする処理をエッジソート処理と呼び、各ラインについて行われる。そして、スキャンラインレンダリングは、現在のラインについて、エッジソート処理によってソートされたエッジデータにしたがって、エッジ間の区間(スパン)を特定し、特定された各区間の画素の最終的な色を算出する。特定された区間の画素の最終的な色を算出する際に、その区間に存在する複数のオブジェクトの色を合成演算命令にしたがって合成する処理(合成処理)が行われる。
特許文献1では、上記エッジソート処理と合成処理とを開示している。またこの特許文献1では、このスキャンラインレンダリングのエッジソート処理と合成処理とを別々のCPUで実行する方法を開示する。
スキャンラインレンダリングをCPUによる処理(ソフトウェアプログラムに従う逐次処理)ではなく、ASICやFPGAなどに代表されるハードウェア回路による演算処理によって高速化することを考える。
スキャンラインレンダリングの合成処理において、合成演算の種類(ROP演算やαブレンド)は限られている上に、また、最終的な色を算出するための複数の合成演算は逐次的に繰り返される。そのため、ROP演算回路やαブレンド演算回路をハードウェア回路上に構成し、これら演算回路を用いて複数の合成演算を逐次処理することで高速化が見込める。
エッジソート処理も同様に、ハードウェア回路上に所望のソートアルゴリズムにしたがって複数の演算器およびメモリ回路を構成し、それらを動作させることで高速化を図ることが可能である。
しかしながら、エッジソート処理の対象は、ライン上の複数のエッジのデータであるため、ソート処理回路の回路規模は、ソート対象のエッジの数に依存する。
近年、ホストコンピュータ上の描画アプリケーションによって作成される描画データは複雑化しているため、1ライン上に存在するエッジの数は膨大な量となることがある。このようなエッジ数が膨大なケースに合わせてエッジソート回路を構成すると、エッジソート回路の回路規模が大きくなってしまう。
本発明の形成装置は、印刷データによって表現されるページ内のライン上にあるオブジェクトのエッジに対応するエッジデータを、前記ライン上における前記エッジの座標に基づいてソートし、前記ソートされたエッジデータに基づいて、前記ラインにおける各エッジ間の区間のラスタ画像を生成する画像形成装置であって、所定のプログラムを読み込んで実行するプロセッサと、
所定の合成演算を行う演算回路を含む処理部と、を有し、前記プロセッサは、前記所定のプログラムにしたがって、前記エッジデータをソートし、前記処理部は、前記ラスタ画像の生成において前記所定の合成演算にしたがってオブジェクトを合成する場合に、前記演算回路を用いて、当該オブジェクトの色値に基づく前記所定の合成演算を行うことを特徴とする。
所定の合成演算を行う演算回路を含む処理部と、を有し、前記プロセッサは、前記所定のプログラムにしたがって、前記エッジデータをソートし、前記処理部は、前記ラスタ画像の生成において前記所定の合成演算にしたがってオブジェクトを合成する場合に、前記演算回路を用いて、当該オブジェクトの色値に基づく前記所定の合成演算を行うことを特徴とする。
本発明に依れば、エッジデータのソートをプロセッサで実行し、所定の合成演算を演算回路で行うことができる。
以下、本発明を実施するための形態について図面を用いて説明する。
<実施例1>
図1は、本発明のシステム構成の例を示す図である。本システムでは、ホストコンピュータと画像形成装置110がLAN経由で接続する構成とする。
図1は、本発明のシステム構成の例を示す図である。本システムでは、ホストコンピュータと画像形成装置110がLAN経由で接続する構成とする。
ユーザは、まずホストコンピュータ上で、印刷対象のページを表す、PDL(ページ記述言語)で記述された印刷データ(以下PDL)を生成し、画像形成装置110に転送する。画像形成装置110は、転送されたPDLに基づき、印刷処理を行う構成をとる。本画像形成装置は、MFP(Multi Function Peripheral)、SFP(Single Function Peripheral)のうち、いずれのプリンタであってもよい。また、画像処理装置は、MFP、SFP以外のプリンタであってもよい。
図1を用いて、本実施形態の画像形成装置110の詳細なハードウェア構成について説明する。図1において、画像形成装置110は、画像出力デバイスであるプリンタエンジン151を保持する。また、画像形成装置110は、LANと接続することで、PDLやデバイス情報をLAN経由で入出力するための制御を行う。CPU121は画像形成装置全体を制御するための中央処理部である。このCPU121は、プログラム中の演算命令をRAM122から読み込んで(フェッチ)、解読して(デコード)、実行するサイクルを繰り返すプロセッサの一例である。また、このCPU121は、内部にSRAMで構成されたキャッシュメモリを有する。このキャッシュメモリのサイズは1Mバイトである。RAM122は、CPU121が動作するためのシステムワークメモリである。また送信されたPDLや印刷処理のため画像形成装置内で生成する中間データ、レンダリング処理を行う際の作業領域であるワーク領域や、入力された画像データを一時記憶するためのメモリでもある。さらに、ROM123はブートROMであり、システムのブートプログラムが格納されている。記憶装置124はハードディスクドライブであり、各種処理のためのシステムソフトウェア及び送信されたPDLを格納する構成である。操作部I/F 130は、各種メニューや印刷データ情報等を表示可能な表示画面を有する操作部131に対するインタフェース部であり、操作部131に対して操作画面データを出力する。また、操作部I/F 130は、操作部131から操作者が入力した情報をCPU121に伝える役割をする。たとえば、記憶装置124に格納したPDLの印刷指示は、ユーザによって操作部131を介して実行される。ネットワークI/F 120は、LANに接続して外部装置との間で情報の入出力を行う。圧縮器125は、入力データに対して圧縮処理を行う。圧縮後データの出力先はRAM122、または記憶装置124である。以上のユニットがシステムバス160上に配置されている。イメージバスI/F 140は、システムバス160と画像データを高速で転送する画像バス170と接続するためのインタフェースであり、データ構造を変換するバスブリッジである。画像バス170上には、RIP(Raster Image Processors)141、プリント画像処理部142、デバイスI/F 150が接続される。RIP141は、エッジ処理前のDLあるいはエッジ処理済のDLからRGB形式のページのラスタ画像を生成する。プリント画像処理部142は、RIP141が生成したRGB形式のページのラスタ画像を、CMYK形式のページのラスタ画像に変換し、CMYK形式のラスタ画像にスクリーン処理を行う。デバイスI/F 150は、プリンタエンジン151と画像形成装置110とを接続し、スクリーン処理後のラスタ画像をプリンタエンジン151が処理可能な形式に変換し、変換後の画像データをプリンタエンジン151に転送する。プリンタエンジン151は、受け取った画像データに基づいて画像を印刷する。
図2は、RIP141の内部構成を表す図である。伸張器202は、入力データ(例えばエッジ処理済のDL)に対して伸張処理を行う。伸張後データの出力先はRAM203である。RIP141はパイプラインを形成する複数のサブCPUシステムを有し、各サブCPUシステム内のサブCPU211からサブCPU241は、RIP処理を高速に行うために対応するハードウェア回路を制御する専用CPUである。一般的に、各サブCPUの周波数、キャッシュサイズ(キャッシュメモリのメモリ容量)は、CPU121に比べて小さい。本実施例でのサブCPUが内蔵するキャッシュメモリのサイズは、32Kバイトである。しかし、各処理(エッジ処理、レベル処理、ピクセル処理、合成処理)に特化したハードウェア制御により、条件次第で汎用CPUと同等かそれ以上のパフォーマンスを実現する。本実施形態では、サブCPU211はエッジ処理、サブCPU221はレベル処理、サブCPU231はピクセル処理、サブCPU241は合成処理に特化したハードウェア回路を制御なCPUとして説明する。RAM203は、サブCPU211からサブCPU241が動作するためのシステムワークメモリである。
図3は、本発明のソフトウェア構成の例を示す図である。尚、中間データ生成部301、PDLデータ解析部321、レンダリング処理部302はCPU121上で動作するソフトウェアモジュールであり、レンダリング処理部310は、サブCPU211〜241上で動作するソフトウェアモジュールである。
中間データ生成部301は、ネットワークI/F120から受信したPDLで指定される描画コマンドを読みだし、中間データであるDLを生成するソフトウェアモジュールである。中間データ生成部301は、CPU121上で動作し、生成したDLはRAM122、もしくは記憶装置124に格納する。
レンダリング処理部302は、RAM122から取得したDLから後述のエッジ処理済のDL(ソート済DL)を生成するソフトウェアモジュールである。また、レンダリング処理部302は、DLをレンダリングしてラスタ画像を生成する。このラスタ画像をレンダリング処理部302は、ネットワークI/F120を介して外部の画像形成装置(図示せず)への送信や、イメージバスI/F140、プリント画像処理部142、デバイスI/F 150を経由してプリンタエンジン151へ送信する。ラスタ画像の生成については、実施例2以降で後述する。レンダリング処理部302は、CPU121上で動作し、ソート済DL、または、ラスタ画像を、RAM122、もしくは記憶装置124に格納する。
PDLデータ解析部321は、PDLコマンドの種類毎の描画位置や描画範囲をカウントし、データ傾向を予測するためのソフトウェアモジュールである。この詳細は実施例2以降で後述する。PDLデータ解析部321は、CPU121上で動作し、解析結果はRAM122、もしくは記憶装置124に格納する。
レンダリング処理部310は、ソフトウェアモジュールである。レンダリング処理部310は、RAM122からイメージバスI/F 140を経由して渡されたDLや後述のソート済DLをレンダリングし、生成したラスタ画像をプリント画像処理部142、デバイスI/F 150を経由してプリンタエンジン151へ送る。レンダリング処理部310は、レンダリング処理の各工程(エッジ処理、レベル処理、ピクセル処理、合成処理)を複数のサブCPU211〜241、および各ハードウェア回路212〜242を用いて実行する。各サブCPU間のデータ授受はRAM203か、より高速に行うためにCPU間に専用バッファ(図示しない)を用意しても良い。また、レンダリング処理部310は、以下4つのソフトウェアサブモジュールで構成される。
エッジ処理部311は、イメージバスI/F 140を経由して渡されたDLを基に、スキャンライン毎にエッジソート処理(エッジ処理)を行うためのソフトウェアモジュールである。エッジ処理部311は、サブCPU211上で動作し、生成した情報はRAM203、またはCPU間の専用バッファに格納する。サブCPU211がエッジ処理回路212にエッジソート処理を実行させる。なお、このエッジ処理回路212は、次の演算回路を有する。1つめは、現在のライン上に存在する1つのエッジの座標値を、そのエッジの1つ前のライン上の座標値とそのエッジの傾きから算出する回路である。2つめは、2つのエッジの座標値が入力された場合に、どちらの入力座標値のほうが大きいのかを判定する回路である。サブCPU211は、エッジリスト中のエッジデータに含まれるエッジの座標値とエッジの傾きを取得し、その座標値と傾きを1つめの回路に入力することで現在のラインにおけるそのエッジの座標値を得る。そして、その得られた座標値で、エッジリスト中のそのエッジデータに含まれるそのエッジの座標値を更新する。この座標値の更新処理を、エッジリストに含まれるすべてのエッジデータに対して行うことで、現在のラインにおける各エッジの座標値が算出される。そしてサブCPU211は、エッジリスト中のエッジデータに含まれる2つのエッジデータに含まれる座標値を2つ目の回路に入力して、その大小比較の判定結果を基に、エッジリスト中のエッジデータをソートする。なおエッジリストは、RAM203に記憶され、ライン単位で更新される。また以上のエッジ処理回路212は、複数のエッジデータを入力してハードウェア回路のみでエッジソート処理を行うものではない。なぜなら、エッジ処理回路212の回路規模を大きくしすぎないためである。
レベル処理部312は、エッジ処理部311が生成したエッジソート済のデータを基に、レベル処理回路222にレベル処理を行わせるためのソフトウェアモジュールである。このレベル処理は、処理対象ライン上のエッジ間の区間(、スパン)に存在するオブジェクトを特定し、それらオブジェクトをレベル順にソートする。このソート処理によってスパン内の色に影響を与えるオブジェクトを特定することができる。例えば、半透明なオブジェクト(第1オブジェクト)、不透明なオブジェクト(第2オブジェクト)、半透明なオブジェクト(第3オブジェクト)の順に、これら3つのオブジェクトが重なる単純合成のスパンを仮定する。この仮定によれば、スパンの色は、レベル番号が3つのオブジェクトのうちで最大の(一番上に重なる)第3オブジェクトと、レベル番号が次に大きい第2オブジェクトの色で決まる。なぜなら、第2オブジェクトは不透明であり、一番下に重なる第1オブジェクトの色の影響を遮断するからである。そこで、レベル処理は、オブジェクトのソート後、スパン内の画素の色に影響を与えるオブジェクトのみをスパンに関連付ける。レベル処理部312は、サブCPU221上で動作し、オブジェクトのレベル順のソート(レベル処理)にはレベル処理回路222を用いる。このレベルソートはスパンごとに行われ、生成した情報(レベル処理後のスパンの情報)はRAM203、またはCPU間の専用バッファに格納する。
ピクセル処理部313は、レベル処理後のスパンの情報を基に、拡大、縮小、回転処理やグラデーション等の色の計算処理(ピクセル処理、フィル処理とも呼ばれる)をピクセル処理回路232に行わせるためのソフトウェアモジュールである。ピクセル処理部313は、サブCPU231上で動作し、処理対象のスパンにおけるオブジェクトの色を算出するピクセル処理回路232を用いる。このピクセル処理回路232は、スパン内の画素におけるオブジェクトの色を算出する回路であって、例えばグラデーションオブジェクトであれば、グラデーションの幅および勾配と、対象の画素位置を入力として、対象の画素の色を算出する。このサブCPU231は、レベル処理後のスパンの情報から、スパン内の色に影響を与えるオブジェクトを特定する。そしてサブCPU231は、そのオブジェクトの色を算出する処理をピクセル処理回路232に行わせる。生成した情報(スパン内の各画素におけるオブジェクトの色)はRAM203、またはCPU間の専用バッファに格納する。
合成処理部314は、ROP(ラスターオペレーション)やαブレンド(アルファブレンド)等の合成処理を合成処理回路242に行わせ、スパン(ピクセル)の色値を決めるためのソフトウェアモジュールである。合成処理部314は、サブCPU241上で動作し、処理対象の画素におけるオブジェクトの色を合成処理回路242に合成させる。この合成処理回路242は、ROP演算回路とαブレンド(アルファブレンド)演算回路を有し、処理対象画素について、サブCPU241から入力される合成演算命令と合成対象の1つ以上の色値を基に、ROP演算回路やαブレンド演算回路で合成処理を行う。ROPには、ROP2やROP3などの種々の命令があるが、これら命令の数は有限であるため、これら命令を個々に実行するための演算回路を予め用意しておいても回路規模が無用に大きくなることはない。また合成演算命令は、スタックに保存されて、逐次実行されるので、各合成演算命令を、対応する演算回路に逐次実行させることで、合成処理の高速化を図ることができる。また、サブCPU241は、逐次実行された合成演算命令の処理結果(合成後の画素の色値)をキャッシュに一時的に保持するが、高々数画素分のデータをキャッシュすればよいだけなので、比較的小さいサイズのキャッシュメモリで十分である。このように合成処理は、ハードウェア回路を用いて行ったほうが効率的である。この合成処理によって生成した情報(ピクセルの色値)はページのラスタ画像としてRAM203に格納する。
図4は、受信したPDLデータを解釈してラスタライズされた画像データ(ラスタ画像)が生成されるまでの流れを示すフローチャート図である。尚、図4のフローチャートに記載のステップS401〜S410のプログラムは、画像形成装置110の起動時にRAM122、RAM203に展開され、CPU121、サブCPU211〜241によって実行される。本実施形態では、図5のPDLデータを用いて処理の流れを説明する。尚、図5は幅が1画素の矩形オブジェクトが複数、横方向に並んでおり、その上に三角形のオブジェクトが重なる状態を示している。この矩形オブジェクトは、色値(RGBα)=(200、200、200、1.0)の不透明の灰色のオブジェクトである。この三角形オブジェクトは、色値(RGBα)=(255、255、255、0.8)の半透明の白色のオブジェクトである。
ステップS401において、中間データ生成部301は、ホストコンピュータ101から送信されたPDLデータをネットワークI/F120を介して受信し、RAM122、もしくは記憶装置124に格納する。本実施形態では、ホストコンピュータ101からのPDLデータ投入を例に説明するが、別の画像形成装置に格納されたPDLを取得しても良い。また、USB端子(図示せず)からフラッシュメモリなどの記憶装置を画像形成装置110に直接挿入して、そこからPDLを取得しても良く、投入元は限定しない。
ステップS402において、中間データ生成部301は、受信したPDLで指定される描画コマンドを読み出し、中間データであるDLを生成する。中間データ生成部301は、描画コマンドによって描画されるオブジェクトの輪郭(エッジ)を抽出し、そのエッジの情報をエッジデータとして含むDLを生成する。各エッジのデータは、エッジ毎に固有のエッジID、開始位置座標、開始点からの遷移を示すセグメント、エッジ向き、オブジェクトの上下関係を示すレベル、オブジェクトの色値(塗情報)を示すフィル、リンクされる前後のエッジのアドレス(ID)を持つ。1つのオブジェクトにつき、少なくとも2つのエッジデータが生成される。1つは、エッジ向きがupに設定されたエッジデータであり、もう1つは、エッジ向きがdownに設定されたエッジデータである。エッジ向きがupであるエッジデータの座標と、エッジ向きがdownであるエッジデータの座標との間の区間は、そのオブジェクトの描画区間であることを示す。
中間データ生成部301は、生成したDLをRAM222の連続したアドレス領域に格納する。連続したアドレス領域に格納するのは、次のS403でCPU121(レンダリング処理部302)によって行われるエッジソート処理において、CPU121のキャッシュヒット率を上げるためである。
図6(b)は、DLの構成の一例を示した図である。図5での複数の矩形オブジェクトと1つの三角形オブジェクトは、図6(a)において、N本のエッジで表現されている。ここでこれらオブジェクトの総数はN/2である。
例えば図5の再左端の矩形オブジェクトは、左辺と右辺で定義可能であるので、左辺を示すエッジと右辺を示すエッジで表現される。この左辺および右辺は図6(b)に示されるようにエッジID=1、2を持つエッジデータに相当する。矩形オブジェクトの左辺は、始点(開始位置)の座標が(200、400)、始点に対する終点(終了位置)の相対位置が(0、600)である。そのため、エッジID=1のエッジデータには、開始位置=(200、400)、セグメント=(0、600)が設定される。またこのエッジは矩形オブジェクトの左辺であるので、エッジ向き=upがエッジID=1のエッジデータに含まれる。またこの矩形オブジェクトの色値(R値、G値、B値、α値)が(200、200、200、1.0)であるので、フィルにも同じ値が設定されている。そして、この矩形オブジェクトが複数のオブジェクトのなかで最も下層である(Zオーダーで最も値が小さい、視点からの距離が最も遠い)のでレベルID=1が設定される。同様にこの矩形オブジェクトの右辺に相当するエッジID=2のエッジデータは、開始位置=(201、400)、セグメント=(0、600)を持つ。また右辺であるので、エッジ向き=downが設定される。そして、レベルID、フィルについては左辺のエッジと同様に、レベルID=1、フィル=(200、200、200、1.0)が設定される。またDLは、オブジェクト単位で生成されるため、この矩形オブジェクトのDLを生成する際に、エッジID=1のエッジデータには、次のエッジ(エッジデータ)としてエッジID=2のエッジデータが設定される。同様に、エッジID=2のエッジデータには、前のエッジ(エッジデータ)としてエッジID=1のエッジデータが設定される。そしてこの矩形オブジェクトの次に右に隣接する矩形オブジェクトのDLが生成される場合に、この隣接矩形オブジェクトの左辺および右辺それぞれに対応するエッジID=3、4のエッジデータを同様に生成する。このとき、エッジID=2のエッジデータには、次のエッジ(エッジデータ)としてエッジID=3が設定される。
また、例えば図5の最上位の三角形オブジェクトは、斜辺と右辺で定義可能であるので、斜辺を示すエッジと右辺を示すエッジで表現される。この斜辺および右辺は図6(b)に示されるようにエッジID=N−1、Nを持つエッジデータに相当する。斜辺は、始点(開始位置)の座標が(800、500)、終点(終了位置)の始点に対する相対位置が(−700、400)であるので、エッジID=N−1のエッジデータには、開始位置=(800、500)、セグメント=(−700、400)が設定される。そして前述の矩形オブジェクトと同様の理由から、このエッジID=N−1のエッジデータには、エッジ向き=up、レベルID=N/2、フィル=(255、255、255、0.8)、前のエッジID=N−2、次のエッジID=Nが設定される。エッジID=Nのエッジデータには次の値が設定される。開始位置=(800、500)、セグメント=(0、400)、エッジ向き=down、レベルID=N/2、フィル=(255、255、255、0.8)、前のエッジID=N−1、次のエッジID=nullが設定される。なお、不図示ではあるが、オブジェクトにROP(ROP2やROP3など)による合成が指定されている場合には、その情報(ROP種の情報)もDL中の各エッジデータのフィル情報に関連付けて保存される。
ステップS403において、レンダリング処理部302は、ステップS402で生成したDLを基に、ラインごとにエッジソート処理を行い、エッジソート処理が行われたエッジリストをラインごとに生成する。すなわち、ページの全ライン分のエッジリストが生成される。このレンダリング処理部302は、エッジソート処理の所定のプログラムであり、このプログラム中の演算命令をCPU121がRAM122から読み込み、実行することでエッジソート処理はCPU121によって行われる。すなわちS403におけるエッジソート処理は、エッジソート処理に特化した専用のハードウェア回路を用いない処理である。CPU121がエッジソート処理を行うメリットを説明するため、まずエッジソート処理について説明する。エッジソート処理は、概して、ラインに存在する複数のエッジのデータをそれらエッジの座標を基に座標昇順にソートする処理である。ここでは、CPU121が、処理対象のライン上に存在するエッジのエッジデータを特定し、特定されたエッジデータのセグメント情報を用いて、ライン上におけるそれらエッジの座標を算出し、エッジデータの座標情報を更新する。そして更新された座標情報を基に、CPU121は、特定されたエッジデータを座標昇順でソートする。このソートは、エッジデータのリンク情報(前のエッジID、次のエッジID)の更新によって行われる。ここでこのソートにおいてCPU121は、座標情報が更新されたエッジデータを取得するときに、取得対象のエッジデータの近くのアドレスのエッジデータもキャッシュメモリに読み込む。そのため、ソートにおけるエッジ座標の大小比較やリンク情報の更新において、キャッシュヒット効果が得られる。このキャッシュヒット効果はソート対象のエッジ数が多いときでも得られる。
一方、このエッジソート処理を専用のハードウェア回路で行うことを仮に考えると、用意すべき回路の回路規模は、ソート対象のエッジの数の数に依存する。そのため、大量のエッジがライン上に存在する可能性を考慮して回路を用意すると、回路規模が大きくなってしまう。それに対してCPU121でソフト処理を行うようにすることで大量のエッジをソートする場合でも回路規模の増大を防ぐことができる。また上述のように、CPU121はRIP141の専用ハードウェア回路212〜242の持つキャッシュメモリよりも大きなサイズのキャッシュメモリを内蔵している。そのため、大量のエッジがライン上に存在する場合でも、キャッシュヒット効果により高速にエッジソート処理を行うことができる。
図7はエッジソート後のDLを示している。レンダリング処理部302は、あるスキャンラインを処理する際、そのスキャンライン上に存在するエッジのデータ(エッジデータ)をRAM222に格納されるDLからロードし、CPUキャッシュに展開する。また、本実施形態では簡単のため、各エッジデータのサイズは同一とする。ここでは例として、スキャンライン=500とスキャンライン=700を処理する場合について説明する。なお以下でエッジと呼ぶときにはエッジデータを指し示す。
まずスキャンライン=500を処理する際、レンダリング処理部302は、エッジ(ID=1)から順番にエッジをロードして、エッジ(ID=N)までロードして該スキャンラインのエッジソート処理を完了する。スキャンライン=500では、ソートを必要とするエッジが存在しないため、レンダリング処理部302は、次のスキャンラインに処理を進める。
スキャンライン=700を処理する際、セグメント情報によって、エッジ(ID=N−1)が傾きを持つエッジであることが分かっている。そのため、レンダリング処理部302は、X座標=m(n−1<=m<n)であるエッジ(ID=N−1)がどのエッジの間に挿入されるかを判定する。レンダリング処理部302は、エッジ(ID=1)とエッジ(ID=N−1)のX座標を比較し、エッジ(ID=N−1)の方が主走査方向に後方である(X座標が大きい)ため、次のエッジと比較する。レンダリング処理部302は、この大小比較の処理をエッジ(ID=N−1)のX座標よりも小さいX座標を持つエッジを見つけるまで繰り返す。X座標=nであるエッジ(ID=k)と比較の結果、エッジ(ID=N−1)の方が主走査方向で前方である(X座標が小さい)ため、レンダリング処理部302は、エッジ(ID=k−1)とエッジ(ID=k)の間にエッジ(ID=N−1)を挿入する。この一連のソート処理におけるCPUキャッシュの状態について、図8を用いて説明する。尚、本実施形態ではソートアルゴリズムとして挿入ソートを基に説明したが、どのアルゴリズムを採用しても良い。
上で述べたように、レンダリング処理部302は、図8(a)のようにソートによりエッジ(ID=N−1)をエッジ(ID=k−1)とエッジ(ID=k)の間へ挿入する際、まずスキャンライン=700上の先頭エッジ(ID=1)のエッジのロードを行う。しかし、図8(b)に示すように、CPUキャッシュの小さいサブCPUでは、全てのエッジがキャッシュに載り切らない場合がある(ここではID=Kまでのエッジが載ったとする)。この場合、エッジソートにおいてX座標を比較する際に、エッジ(ID=1)、エッジ(ID=N−1)、エッジ(ID=2)、エッジ(ID=N−1)、と処理するため、エッジをロードする度にキャッシュミスヒットが発生する。一方、図8(c)で示すように、CPUキャッシュが十分にあるCPU121の場合、スキャンライン=700上のエッジ(ID=1)からエッジ(ID=N)までのエッジが全てキャッシュに載り切るため、高速にエッジソートを行うことが出来る。
ステップS404において、レンダリング処理部302は、ステップS403で作成した情報(すべてのラインについてのソート済エッジデータ)を基にスパンを生成し、その色値を決定するためのレベル処理を行う。スキャンライン=500におけるレベル処理について、図9を用いて説明する。スキャンライン=500は、図9(a)に示されるように三角形オブジェクトの頂点が存在するラインである。尚、この処理で生成したレベル処理後のDL情報(以降、ソート済DL)はRAM122に格納される。
レンダリング処理部302は、ステップS403で生成した各エッジの情報(ページ内の全てのラインについてのエッジデータ)を基にページ内の全てのラインについてのスパンを生成する。レンダリング処理部302は、スキャンライン=500におけるソート済のエッジリスト(図7(b))を先頭から参照する。まずスキャンライン開始点(X座標=0)に最も近いエッジはエッジ(ID=1)であることがわかる。そのため、1番目のスパンの長さ(ピクセル長)はエッジ(ID=1)のX座標に等しく、スパンID=1のスパンデータには、ピクセル長=200が設定される。またこのスパンにはオブジェクトが含まれないため、フィル=背面、オブジェクト数=0が設定される。そしてそれ以前にスパンは登場しないため、前のスパンID=null、次のスパンID=2が設定される。そしてレンダリング処理部302は、エッジリストを再び参照し、エッジ(ID=1)の次のエッジIDを検索する。するとエッジ(ID=2)が見つかる。レンダリング処理部302は、エッジ(ID=2)のX座標とエッジ(ID=1)の2エッジ間の差分を計算し、その差分「1」を次のスパン(ID=2)のピクセル長に設定する。またこのエッジ間において、エッジ(ID=1)のエッジ向きがupであるため、エッジ(ID=1)のフィルが、スパン(ID=2)に設定され、オブジェクト数=1となる。そして前のスパンID=1、次のスパンID=3が設定される。またレンダリング処理部302は、このエッジ(ID=2)のレベルIDが1であり、のエッジ向きがdownであるため、以降のスパンではエッジ(ID=1)のフィルは参照されない。以降、同様の処理を繰り返し、スキャンライン終端である最終スパン(ID=S)まで処理する。また、スキャンライン=500では、1つのスパン内に重複するエッジがなかったため、全てのスパンのオブジェクト数=1となる。またレンダリング処理部302は、2つのエッジ間のX座標の差分が0であるときはスパンを生成しない。エッジデータのフィルにROP種の情報が関連付けられている場合、スパンデータのフィルにもその情報が同様に関連付けられる。
ステップS405において、レンダリング処理部302は、RAM122からソート済DL(すなわち、ページ内の全てのラインについてのスパンのデータ)を取得し、圧縮器125に送り、圧縮処理を行う。ページ全体(すなわち複数のライン分)のスパンを生成しているため、圧縮しないと、RIP141へのデータを行う際に転送帯域を圧迫してしまうからである。
ステップS406において、レンダリング処理部302は、圧縮したソート済DLをイメージバスI/F140を介して、RIP141(RIP141のRAM)に転送する。尚、ここでは転送処理についてレンダリング処理部302が明示的に転送する例について述べた。しかし、レンダリング処理部302はRAM122(記憶部)にソート済DLを格納に留め、後述するピクセル処理部313がイメージバスI/F140を介してRAM122にアクセスし情報を取得する、でも良い。
ステップS407において、ピクセル処理部313は、転送されたソート済DLを伸張器202に送り、伸張処理を行う。
ステップS408において、ピクセル処理部313は、拡大、縮小、回転処理やグラデーション等の色の計算処理を行う。
ステップS409において、合成処理部314は、スパンデータのフィル情報にしたがってROPやαブレンド等の合成処理を行い、スパン(ピクセル)の色値を決め、ページのラスタ画像を生成する。例えば、合成処理部314は、スパンデータのフィル情報にROPによる合成命令が関連付けられている場合に、そのROPに対応するROP演算回路に、複数のオブジェクト(フィル)に指定された色値の合成処理を実行させる。フィル情報にROPによる合成命令が関連付けられていない場合には、合成処理部314は、オブジェクト(フィル)に指定された色値を上書きする処理を、上書き用(ROP2のCOPYPEN)の演算回路に実行させる。またスパンデータのフィル情報に半透明を示すα値が含まれている場合に、合成処理部314は、複数のオブジェクト(フィル)に指定された色値のαブレンド演算処理を、αブレンド演算回路に実行させる。このようにして、複数オブジェクトが重なっているスパン(エッジ間の区間)の画素の最終的な色値を、演算回路を用いた合成処理によって算出する。
ステップS410において、合成処理部314は、生成したラスタ画像を、プリンタ画像処理部142、デバイスI/F150を介してプリンタエンジン151へ送り、プリンタエンジン151は印刷処理を行う。
本実施形態によれば、エッジソート処理を、専用のハードウェア回路を用いることなく、エッジソート処理プログラムに従ってCPU121(いわゆる汎用プロセッサ)による逐次処理によって行う。そのため、処理すべきエッジ数に依存しない回路規模(すなわちCPU121がもともと備えている演算装置の回路規模)でエッジソート処理を実行することができる。さらに、1スキャンライン上に大量のエッジが存在し、それらが交差するデータであっても、キャッシュメモリサイズ(メモリ容量)が比較的大きいCPU121を用いることで、キャッシュミスヒットが抑えられて、高速にエッジソート処理を行うことができる。また、本実施形態では、レベル処理後のDLに対して圧縮してRIP141に転送したが、エッジ処理後のDLに対して圧縮してRIP141に転送しても良い。その場合、RIP141では、転送されたDLに対して、レベル処理部312がレベル処理から実施する。
<実施例2>
実施例1は、1スキャンライン上に大量のエッジがあるデータに対して効果的だが、そうではないデータに対しては、圧縮、転送、伸張のオーバヘッドによりパフォーマンスが劣化するケースが存在する。そのため、実施例2では、実施例1に加え、事前にPDLデータを解析し、そのPDLデータの内容に応じて適切なレンダリング処理を行う形態について説明する。
実施例1は、1スキャンライン上に大量のエッジがあるデータに対して効果的だが、そうではないデータに対しては、圧縮、転送、伸張のオーバヘッドによりパフォーマンスが劣化するケースが存在する。そのため、実施例2では、実施例1に加え、事前にPDLデータを解析し、そのPDLデータの内容に応じて適切なレンダリング処理を行う形態について説明する。
システム構成、ソフトウェア構成は実施例1と同様のため、割愛する。
図10は、入稿されたPDLを解析し、その結果に応じたRIP形態でレンダリングするまでの流れを示すフローチャート図である。尚、図10のフローチャートに記載のステップS1001〜S1007のプログラムは、画像形成装置110の起動時にRAM122、もしくはRAM203に展開され、CPU121、サブCPU211〜241によって実行されるものである。
ステップS1002において、PDLデータ解析部321は、受信したPDL(ステップS1001)のPDLコマンドを解釈し、スキャンライン単位(またはバンド単位)に存在するエッジ数を算出する。また、PDLデータ解析部321は、ページに含まれる、背面を必要とする1または複数のグラフィック(ROPやαブレンドによる合成演算が行われるグラフィックオブジェクト)の描画総面積を算出する。またPDLデータ解析部321は、ページに含まれる、透過付の1または複数のイメージ(α値を有するイメージオブジェクト)の総面積を算出する。PDLデータ解析部321は、閾値を超えるエッジ数を有するラインがページに含まれるか否かを判定し、含まれる場合にエッジ過多であると判定する。そうでない場合にはエッジ過多でないと判定する。またPDLデータ解析部321は、グラフィックの描画総面積とイメージの総面積との和が閾値を超えるかを判定し、超える場合に透過過多であると判定し、そうでない場合には透過過多でないと判定する。尚、この閾値はRIP141の性能によって決定される固定値である。より具体的には、エッジ数は、RIP141にてエッジを処理するCPUのCPUキャッシュサイズとエッジ数を比較し、キャッシュミスヒットが発生しないエッジ数を閾値とする。面積は、RIP141のピクセル処理、及び合成透過処理で使用されるHW性能において、1ピクセルあたりのピクセル演算に必要なサイクル数から、スループット達成可能なピクセル上限値を算出して閾値とする。また、複数の画像形成装置が接続される環境において、実際にレンダリング処理を行う画像形成装置が別となる場合は、接続されている全ての画像形成装置のうち、最も高速な画像形成装置のRIP性能に合わせて閾値を決定しても良い。
ステップS1003において、ステップS1002の結果、エッジ過多と判断される場合はステップS1004へ、過多でないと判断される場合はステップS1007へ遷移する。
ステップS1004において、ステップS1002の結果、透過過多と判断される場合はステップS1005へ、過多でないと判断される場合はステップS1006へ遷移する。
ステップS1005は図4のフローと同様であるため、説明を割愛する。
ステップS1006は、図11のフローチャートの処理を行う。図11のフローチャートに記載のステップS1101〜S1102のプログラムは、画像形成装置110の起動時にRAM122に展開され、CPU121によって実行されるものである。また、図11のステップS402からステップS404までは、図4を用いて説明済のため、割愛する。
ステップS1101において、レンダリング処理部302は、RAM122からソート済DLを取得し、拡大、縮小、回転処理やグラデーション等の色の計算処理を行う。
ステップS1102において、レンダリング処理部302は、ROPや透過処理等の合成処理を行い、スパン(ピクセル)の色値を決める。
ステップS1007は、図12のフローチャートの処理を行う。図12のフローチャートに記載のステップS1201〜S1203のプログラムは、画像形成装置110の起動時にRAM122、もしくはRAM203に展開され、CPU121、もしくはサブCPU211からサブCPU241によって実行されるものである。また、図12のステップS402、ステップS408、及びステップS409は、図4を用いて説明済のため、割愛する。
ステップS1201において、中間データ生成部301は、ステップS402で生成したRAM122に格納されているDL情報を、イメージバスI/F 140を介してRIP141に転送する。
ステップS1202において、エッジ処理部311は、転送されたDLをRAM203から取得して、スキャンライン単位で走査し、X方向にエッジをソートするエッジソート処理を行う。エッジソート処理自体は、実施例1で説明済のため、詳細は割愛する。実施例2では、事前にステップS1002にてスキャンライン単位でエッジ数を解析したうえでステップS1202の処理が行われるため、エッジロード時に、CPUキャッシュが小さいサブCPUでもキャッシュミスヒットの発生が抑えられる。
ステップS1203において、レベル処理部312は、ステップS1202で作成した情報を基にスパンを生成し、その色値を決定するためのレベル処理を行う。レベル処理自体は実施例1で説明済のため、詳細は割愛する。
以上のように、S1005、S1006、S1007の何れかの処理が完了すると、S410と同様にラスタ画像の印刷処理が行われる。
本実施形態によれば、事前にPDLデータを解析し、データに応じたRIP形態で処理を行うことが可能となるため、システムが持つRIP性能を最大限引き出すことが出来る。
本実施形態では、ステップS1004にて透過過多であるデータに対して、ステップS1006にてソフトRIPする例について説明したが、ステップS1005の実施例1のRIP形態でも良い。
本実施形態では、ステップS1201にてDL情報を非圧縮でRIP141へ転送する例について説明したが、DL圧縮をしてから転送するでも良い。
<実施例3>
昨今、情報処理装置から一意に画像形成装置を指定して印刷を行うのではなく、所望の画像形成装置から印刷を行える「リモート印刷」が実施されている。「リモート印刷」は、情報処理装置から入稿された印刷ジョブを印刷ジョブ送信装置上で一時的に蓄積する。「リモート印刷」は、所望の画像形成装置上でユーザ認証され、ユーザが印刷ジョブを指定して印刷実行すると、印刷ジョブ送信装置から印刷ジョブが所望の画像形成装置に送信され印刷物を出力する印刷システムである。
昨今、情報処理装置から一意に画像形成装置を指定して印刷を行うのではなく、所望の画像形成装置から印刷を行える「リモート印刷」が実施されている。「リモート印刷」は、情報処理装置から入稿された印刷ジョブを印刷ジョブ送信装置上で一時的に蓄積する。「リモート印刷」は、所望の画像形成装置上でユーザ認証され、ユーザが印刷ジョブを指定して印刷実行すると、印刷ジョブ送信装置から印刷ジョブが所望の画像形成装置に送信され印刷物を出力する印刷システムである。
印刷ジョブが印刷処理に時間のかかる(=スループットが出ない)データである場合に、ユーザが画像形成装置の前で待つことがないよう、送信装置上で一時的に蓄積されている状態で先行してレンダリングを行う技術がある。しかし、スループットを出すために全ての印刷ジョブをレンダリングすると、送信装置のメモリ逼迫や転送サイズが増大する課題がある。また、スループットが出ない処理は印刷ジョブの入稿からレンダリングまでの一部の処理であり、事前にその処理を行うことで全てのデータをレンダリングすることなく、印刷データのスループットを達成することが出来る。
本実施形態では、事前にPDLデータを解析することにより、入稿された印刷データをどこまで処理するかを決定し、その処理結果に応じた中間データを送信装置上に蓄積する形態について説明する。これにより、印刷時にスループットが出る最小の構成で、送信装置上に印刷ジョブと先行処理情報を蓄積することが出来る。また、本実施形態では、説明を簡略化するため送信装置=画像形成装置として説明するが、ネットワークI/F120を介した別の画像形成装置や情報機器を送信装置とみなしても良い。
システム構成、ソフトウェア構成は実施例1と同様のため、割愛する。
図13は、入稿されたPDLを解析し、その結果に応じた先行処理形態で情報を格納するまでの流れを示すフローチャート図である。尚、図13のフローチャートに記載のステップS1301〜S1307のプログラムは、画像形成装置110の起動時にRAM122に展開され、CPU121によって実行されるものである。
ステップS1301において、PDLデータ解析部321は、受信したPDL(ステップS1001)のPDLコマンドを解釈し、ステップS1002で説明したエッジ数、面積に加え、ページ内に含まれる細切れイメージのオブジェクト数を算出する。細切れイメージとは、幅高が閾値以内の小さな圧縮イメージのことを指す。これが大量にある場合、伸張のオーバヘッドによりスループット達成が困難になるデータがあるため、あらかじめ伸張しておく必要がある(ステップS1307)。PDLデータ解析部321は、細切れイメージの閾値と比較し、閾値を超える場合は過多である、と判断する。
尚、この閾値は画像形成装置のイメージ伸張性能によって決定される固定値である。より具体的には、本実施形態では、イメージ伸張は伸張器202を利用して行うので、幅高の閾値のイメージの伸張コストからスループット達成可能な細切れイメージの個数を算出し閾値とする。また、複数の画像形成装置が接続される環境において、実際にレンダリング処理を行う画像形成装置が別となる場合は、接続されている全ての画像形成装置のうち、最も高速な画像形成装置のイメージ伸張性能に合わせて閾値を決定しても良い。
ステップS1302において、ステップS1301の結果、エッジ過多と判断される場合はステップS1303へ、過多でないと判断される場合はステップS1304へ遷移する。
ステップS1303において、ステップS1301の結果、透過過多と判断される場合はステップS1305へ、過多でないと判断される場合はステップS1306へ遷移する。
ステップS1304において、ステップS1301の結果、細切れイメージ過多と判断される場合はステップS1307へ、過多でないと判断される場合は、その印刷ジョブは先行処理がなくともスループット達成可能なデータと判断し、本フローを終了する。
ステップS1305において、PDLデータ解析部321は、先行処理情報をソート済DLとして格納する。具体的には、PDLデータ解析部321は、受信したPDLに対し、図4で説明したステップS402からステップS405までの処理を行い、生成したソート済DLをRAM122、もしくは記憶装置124に入稿されたPDLデータと紐づけて格納する。この格納されたソート済DLは、印刷指示をユーザから受け付けたときに処理される。
ステップS1306において、PDLデータ解析部321は、先行処理情報をラスタ画像として格納する。具体的には、PDLデータ解析部321は、受信したPDLに対し、図11で説明したステップS402からステップS1102までの処理を行い、生成したラスタ画像をRAM122、もしくは記憶装置124に入稿されたPDLデータと紐づけて格納する。この格納されたラスタ画像は、印刷指示をユーザから受け付けたときに処理される。
ステップS1307において、PDLデータ解析部321は、先行処理情報をDL情報として格納する。具体的には、PDLデータ解析部321は、受信したPDLに対し、図12で説明したステップS402の処理を行い、生成したDL情報をRAM122、もしくは記憶装置124に入稿されたPDLデータと紐づけて格納する。このDLにおいて圧縮イメージは伸張された状態となっている。この格納されたソート済DLは、印刷指示をユーザから受け付けたときに処理される。
図14は、印刷指示を受けた画像形成装置が送信装置からPDLと先行処理情報を取得し、取得した先行処理情報に応じた処理形態でレンダリングするまでの流れを示すフローチャート図である。尚、図14のフローチャートに記載のステップS1401〜S1404のプログラムは、画像形成装置110の起動時にRAM122に展開され、CPU121によって実行されるものである。
ステップS1401において、中間データ生成部301は、操作部I/F130を介して操作部131より、ユーザから印刷指示があったかを検知する。印刷指示があった場合、中間データ生成部301は、記憶装置124に格納される指定されたPDLデータを取得し、印刷指示がなかった場合は、ステップS1401の処理を繰り返す。
ステップS1402において、中間データ生成部301は、取得したPDLに紐づく先行処理情報の有無を確認する。ある場合はステップS1403へ、ない場合は図12のステップS402へ遷移する。
ステップS1403において、中間データ生成部301は、取得したPDLに紐づく先行処理情報の種別がラスタ画像か判別する。ラスタ画像である場合、レンダリング処理は終了しているため本フローを終了し、ラスタ画像でない場合、ステップS1404へ遷移する。
ステップS1404において、中間データ生成部301は、取得したPDLに紐づく先行処理情報の種別がDLか判別する。DLである場合、図12のステップS1202へ遷移し、DLでない場合(=ソート済DL)、図4のステップS407へ遷移する。
本実施形態によれば、事前にPDLデータを解析することで行う先行処理を制御し、印刷時のスループット達成を維持しながら、最小の構成となるデータ形式で先行処理情報を蓄積することが出来る。
Claims (10)
- 印刷データによって表現されるページ内の処理対象のライン上にあるオブジェクトのエッジに対応するエッジデータを、前記ライン上における前記エッジの座標に基づいてソートし、前記ソートされたエッジデータに基づいて、前記ラインにおける各エッジ間の区間のラスタ画像を生成する画像形成装置であって、
所定のプログラムを読み込んで実行するプロセッサと、
所定の合成演算を行う演算回路を含む処理部と、
を有し、
前記プロセッサは、前記所定のプログラムにしたがって、前記エッジデータをソートし、
前記処理部は、前記ラスタ画像の生成において前記所定の合成演算にしたがってオブジェクトを合成する場合に、前記演算回路を用いて、当該オブジェクトの色値に基づく前記所定の合成演算を行うことを特徴とする画像形成装置。 - 前記プロセッサは、前記所定のプログラムにしたがって、前記ソートされたエッジデータに基づいて、前記ライン上における前記区間のデータを生成し、当該生成された各区間のデータを圧縮して所定の記憶部に記憶し、
前記処理部は、前記所定の記憶部から前記圧縮された前記データを取得して伸張することで、前記各区間のデータを取得し、当該取得された各区間のデータに基づいて、前記ラインにおける各区間のラスタ画像を生成することを特徴とする請求項1に記載の画像形成装置。 - 前記プロセッサは、前記所定のプログラムにしたがって、前記ページ内の複数のラインについて、前記エッジデータのソートおよび前記区間のデータの生成を行い、前記複数のラインについて生成された前記区間のデータを圧縮して前記所定の記憶部に記憶し、
前記処理部は、前記所定の記憶部から前記圧縮された前記データを取得して伸張することで、前記複数のラインについての各区間のデータを取得し、当該取得されたデータに基づいて、前記複数のラインにおける各区間のラスタ画像を生成することを特徴とする請求項2に記載の画像形成装置。 - 前記プロセッサは、第1のキャッシュメモリを有し、
前記プロセッサは、前記エッジデータのソートを、前記第1のキャッシュメモリを利用して実行し、
前記処理部は、第2のキャッシュメモリを有し、
前記処理部は、前記所定の合成演算を、前記演算回路および前記第2のキャッシュメモリを利用して実行し、
前記第1のキャッシュメモリは、前記第2のキャッシュメモリよりもメモリ容量が大きいことを特徴とする請求項1乃至3の何れか1項に記載の画像形成装置。 - 前記プロセッサは、前記印刷データを解釈して前記ページに含まれるオブジェクトのエッジに対応するエッジデータを生成することを特徴とする請求項1乃至4の何れか1項に記載の画像形成装置。
- 前記印刷データは、ページ記述言語で記述されることを特徴とする請求項1に記載の画像形成装置。
- 前記所定の合成演算とは、ROPあるいはαブレンドであることを特徴とする請求項1に記載の画像形成装置。
- 前記処理部は、前記エッジデータのソートを行うためのプロセッサを有し、
前記プロセッサは、前記印刷データを解析し、
当該解析された印刷データの内容に応じて、
前記エッジデータのソートを前記プロセッサで行い、かつ、前記所定の合成演算を前記演算回路で行うか、
前記エッジデータのソートおよび前記所定の合成演算を前記プロセッサで行うか、
前記エッジデータのソートおよび前記所定の合成演算を前記処理部のプロセッサおよび前記演算回路で行うと判定することを特徴とする請求項1に記載の画像形成装置。 - 印刷データによって表現されるページ内のライン上にあるオブジェクトのエッジに対応するエッジデータを、前記ライン上における前記エッジの座標に基づいてソートし、前記ソートされたエッジデータに基づいて、前記ラインにおける各エッジ間の区間のラスタ画像を生成する画像形成方法であって、
前記エッジデータのソートを行うプログラムをプロセッサに実行させる工程と、
前記ラスタ画像の生成において所定の合成演算にしたがってオブジェクトを合成する場合に、前記所定の合成演算を行う演算回路に、当該オブジェクトの色値に基づく前記所定の合成演算を行わせる工程と、
を有することを特徴とする画像形成装置。 - 印刷データによって表現されるページ内の処理対象のライン上にあるオブジェクトのエッジに対応するエッジデータを、前記ライン上における前記エッジの座標に基づいてソートし、前記ソートされたエッジデータに基づいて、前記ラインにおける各エッジ間の区間のラスタ画像を生成する画像形成方法を行うためのプログラムであって、
前記エッジデータをソートするための所定のプログラムにしたがって、プロセッサに前記エッジデータのソートを実行させ、
前記ラスタ画像の生成において前記所定の合成演算にしたがってオブジェクトを合成する場合に、所定の合成演算を行う演算回路に、当該オブジェクトの色値に基づく前記所定の合成演算を行わせることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017207439A JP2019077133A (ja) | 2017-10-26 | 2017-10-26 | 画像形成装置、画像形成方法、プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017207439A JP2019077133A (ja) | 2017-10-26 | 2017-10-26 | 画像形成装置、画像形成方法、プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019077133A true JP2019077133A (ja) | 2019-05-23 |
Family
ID=66626251
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017207439A Pending JP2019077133A (ja) | 2017-10-26 | 2017-10-26 | 画像形成装置、画像形成方法、プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2019077133A (ja) |
-
2017
- 2017-10-26 JP JP2017207439A patent/JP2019077133A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5596938B2 (ja) | 画像処理装置、画像処理方法、及びプログラム | |
US8855438B2 (en) | Image processing apparatus, image processing method of image processing apparatus, and program | |
US10762401B2 (en) | Image processing apparatus controlling the order of storing decompressed data, and method thereof | |
US8654147B2 (en) | Apparatus for generating raster images, raster image generating method, and storage medium | |
JP5282092B2 (ja) | 二次元ベクター画像のマルチサンプルレンダリング | |
US20140168695A1 (en) | Image forming apparatus and control method for image forming apparatus | |
JP6135329B2 (ja) | 印刷データ処理装置、プログラム、及びシステム | |
US9230200B2 (en) | Method of processing graphics with limited memory | |
JP2017024321A (ja) | 画像処理装置、画像形成装置及び画像処理時間予測方法及びプログラム | |
JP2008042345A (ja) | 画像処理方法、画像処理装置 | |
CA2346761C (en) | Method, system, program, and data structure for generating raster objects | |
KR20170099211A (ko) | 복합 문서에 포함된 이미지 객체의 화질 개선 방법 및 이를 수행하기 위한 장치 | |
JP6904717B2 (ja) | 画像処理装置、その制御方法、およびプログラム | |
US10565294B2 (en) | Image processing apparatus, image processing method, and non-transitory computer-readable storage medium | |
US10552717B2 (en) | Image processing apparatus, control method thereof, and storage medium | |
JP2019077133A (ja) | 画像形成装置、画像形成方法、プログラム | |
CN105704347A (zh) | 图像处理设备和图像处理方法 | |
JP2016206934A (ja) | 画像処理装置、画像処理方法及びプログラム | |
JP5879912B2 (ja) | 印刷データ生成プログラム、印刷システム及び印刷方法 | |
JP4964219B2 (ja) | 画像処理装置、方法及びプログラム | |
US10089561B2 (en) | Generating a raster image region by rendering in parallel plural regions of smaller height and segmenting the generated raster image region into plural regions of smaller width | |
JP2014194635A (ja) | 画像形成装置及び画像形成方法ならびにプログラム | |
JP6882099B2 (ja) | 画像処理装置、画像処理方法及びプログラム | |
JP2015075839A (ja) | 画像処理装置、画像処理方法、及びプログラム | |
US20110205591A1 (en) | Image processing device and image processing method |