JP2007237510A - 画像形成装置、並びに当該装置で実行される画像形成方法及び画像形成プログラム - Google Patents
画像形成装置、並びに当該装置で実行される画像形成方法及び画像形成プログラム Download PDFInfo
- Publication number
- JP2007237510A JP2007237510A JP2006061325A JP2006061325A JP2007237510A JP 2007237510 A JP2007237510 A JP 2007237510A JP 2006061325 A JP2006061325 A JP 2006061325A JP 2006061325 A JP2006061325 A JP 2006061325A JP 2007237510 A JP2007237510 A JP 2007237510A
- Authority
- JP
- Japan
- Prior art keywords
- block
- memory
- image processing
- image forming
- access
- 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
- Record Information Processing For Printing (AREA)
- Image Input (AREA)
- Memory System (AREA)
- Facsimiles In General (AREA)
- Storing Facsimile Image Data (AREA)
Abstract
【課題】PDL(ページ記述言語)を並列処理に適したブロックに分割し、関連付けられた描画オブジェクト数の異なる個々のブロックをより均等な時間で描画することができる画像形成装置を提供する。
【解決手段】画像形成装置は、複数の画像処理プロセッサ(102〜104)と、ページ上に複数のブロックを構成し、各ブロックが互いに並列処理可能となるページ記述言語の描画命令を抽出するブロック分割部(101)と、アクセス速度の異なる2つ以上のメモリ(106,107)を有し、前記ページ記述言語又は前記画像処理プロセッサにより処理される中間データを格納する格納部(106,107)と、画像処理プロセッサからメモリへのアクセスを調停するメモリアクセス調停部(108)とを備え、メモリアクセス調停部は、格納部へのアクセス頻度が高い画像処理プロセッサを優先的にアクセス速度の速いメモリ(106)に割り当てる。
【選択図】図1
【解決手段】画像形成装置は、複数の画像処理プロセッサ(102〜104)と、ページ上に複数のブロックを構成し、各ブロックが互いに並列処理可能となるページ記述言語の描画命令を抽出するブロック分割部(101)と、アクセス速度の異なる2つ以上のメモリ(106,107)を有し、前記ページ記述言語又は前記画像処理プロセッサにより処理される中間データを格納する格納部(106,107)と、画像処理プロセッサからメモリへのアクセスを調停するメモリアクセス調停部(108)とを備え、メモリアクセス調停部は、格納部へのアクセス頻度が高い画像処理プロセッサを優先的にアクセス速度の速いメモリ(106)に割り当てる。
【選択図】図1
Description
本発明は、ページ記述言語(PDL)で記述された印刷データを解釈し、画像データを生成する画像形成装置、並びに当該装置で実行される画像形成方法及び画像形成プログラムに関する。
画像形成装置に対し、PostScriptやPDF等のページ記述言語(PDL)で記述された描画データが入力されると、その描画データが解釈されて各ページの画像データが形成される。入力される描画データは、複数種類のオブジェクト(描画オブジェクト)の集合として構成され、そのオブジェクトとしては図形、テキスト、その他の画像がある。出力される画像データは、1ページのラスタ画像又は圧縮形式の画像等である。画像形成装置が出力する画像は、必要に応じて一旦記憶装置に蓄積されたり、ページ合成や回転等の画像処理が実行された後、プリンタエンジンに送出されて、印刷される。
画像形成にかかる時間を削減する手法として、必要な画像形成過程を並列化する方法が考えられている。特許文献1では、線又は短冊状に分割した描画領域に対して並列処理を行う描画処理装置が開示され、特許文献2では描画対象となる二次元領域を複数のブロックに分割する画像処理装置が開示されている。
図9は、従来の画像形成装置の概略構成を示すブロック図である。
従来の画像形成装置は、入力処理部としてのブロック分割部901、1つ以上の画像処理プロセッサ902,903,904、描画オブジェクト情報やページ画像データ等が書き込まれるメモリ905、及びCPU906によって構成される。
ブロック分割部901はPDLを受け取り、そのデータをPDLの規約に沿って解釈する機能と、描画オブジェクト毎に描画命令(コマンド群)を切り出す機能と、PDLの描画領域を格子状の領域(以下ブロック)に分割する機能とを有する。
一般に、ブロック分割部901に入力されるPDLは、直線や曲線によって囲まれた閉領域の塗り潰し、直線や曲線そのもの、文字など描画オブジェクトの描画操作に相当する。
ブロック分割部901は、このような描画オブジェクトが存在する領域を、PDLの描画命令から抽出した座標情報によって定義する。描画時間を短縮するため、円や曲線等、交点座標とブロック境界の交点演算が複雑になるものに対しては、まず、印刷データから抽出した座標情報に基づいて描画オブジェクトの存在する可能性のある領域(以下、概形)を求める。そして、概形が重複しているかいないかによって交点演算の実行を判断する。
例えば、三角形の描画オブジェクトは、頂点座標の最大および最小のXおよびY値に囲まれた矩形領域内に必ず存在する。また、ベジエ曲線では、4点の制御点の座標が得られれば、ベジエ曲線の存在する領域は制御点に囲まれた領域内に限定できる。
以上のように、ある領域に描画オブジェクト全体が含まれる領域を概形として求めている。概形は、ある描画オブジェクトがその描画オブジェクトの概形からはみ出ないという条件を満たす他の方法によって決定してもよい。
以下、概形は描画オブジェクト全体を含む矩形と定義する。
ブロック分割部901の動作を説明する。概形を矩形に限定した場合、単純な演算で描画オブジェクトの概形を含むブロックを判定可能である。ブロック分割部901では、このような描画オブジェクトの概形情報を用いて、他の描画オブジェクトとの交点演算の必要性を判定する。概形が重複しない場合、交点演算が不必要と判断され、描画オブジェクトの描画処理は他の描画オブジェクトと依存関係がなく独立して実行できる。このようにして、ブロック分割部901では、概形情報から独立に描画処理が行える描画オブジェクトの描画命令を、入力された描画命令から分割し、画像処理プロセッサ902〜904に適宜割り当てる。
画像処理プロセッサ902〜904は受け取った描画命令を元に描画処理を行う。描画処理時に必要な記憶領域は、画像処理プロセッサごとに割り当てられたメモリ905の領域を用いる。また、画像処理プロセッサ902〜904によって形成された画像データはメモリ905に格納される。この他、形成された画像データをそのまま後段の画像処理装置や出力装置、表示装置等に転送する場合もある。
特開平9−167242号公報
特開平4−170686号公報
しかしながら、PDLで記述された描画情報を均等なブロック単位の描画情報に分割しただけでは、各ブロックに含まれるオブジェクト数の偏りによって、各ブロックの描画処理に要するメモリアクセスの回数にばらつきが生じていた。
このようなメモリアクセス回数のばらつきにより、画像形成装置によるブロック単位の出力に対するラスタ画像処理を行う際にレイテンシ(遅延)が発生する問題が生じていた。また、印刷処理などライン単位の処理を行う場合に、スループット(単位時間あたりの処理能力)がメモリアクセス回数の多いブロックによって制限されてしまう問題が生じていた。
本発明の目的は、PDL(ページ記述言語)を並列処理に適したブロックに分割し、関連付けられた描画オブジェクト数の異なる個々のブロックをより均等な時間で描画することができる画像形成装置、並びに当該装置で実行される画像形成方法及び画像形成プログラムを提供することにある。
上記目的を達成するため、請求項1の画像形成装置は、ページ記述言語の入力データに対して並列に描画処理が実行可能な複数の画像処理手段と、ページ上に複数のブロックを構成し、各ブロックが互いに並列処理可能となるページ記述言語の描画命令を抽出するブロック分割手段と、アクセス速度の異なる2つ以上のメモリを有し、前記ページ記述言語又は前記画像処理手段により処理される中間データを格納する格納手段と、前記画像処理手段から前記格納手段へのアクセスを調停するメモリアクセス調停手段とを備え、前記メモリアクセス調停手段は、前記格納手段へのアクセス頻度が高い画像処理手段を優先的にアクセス速度の速いメモリに割り当てることを特徴とする。
本発明によれば、PDLを並列化に適したブロックに分割し、関連付けられた描画オブジェクト数の異なる個々のブロックをより均等な時間で描画することが可能となる。また、メモリ装置を拡張することなくバンド単位の描画時間を平滑化することができる。
以下、図面を参照して本発明の実施の形態を説明する。
図1は、本発明の実施の形態に係る画像形成装置の構成を示すブロック図である。
この画像形成装置は、例えば、印刷データとしてPostScriptやPDF等のPDLを入力とし、該PDLに基づいて画像データを形成する。
図1の画像形成装置は、入力処理部としてのブロック分割部101と、画像処理部であるところの画像処理プロセッサ102,103,104と、CPU105と、描画オブジェクト情報やページ画像データ等が書き込まれる高速メモリ部106及び低速メモリ部107と、画像処理プロセッサ102,103,104から高速メモリ部106及び低速メモリ部107へのアクセスを制御するメモリアクセス調停部108とによって構成されている。
画像処理プロセッサ102,103,104が処理中の中間データ、及び印刷データを格納するメモリはアクセス速度の異なる高速メモリ部106及び低速メモリ部107で構成されている。例えばアクセス速度の高速な高速メモリ部106はSRAM(Static Random Access Memory)、アクセス速度の低速な低速メモリ部107はDRAM(Dynamic Random Access Memory)などである。
図2は、図1に示したブロック分割部101に入力されるPostScript言語で記述された印刷データの一例を示す図である。また、図3は、図2の印刷データによって描画される画像データを示す図である。
符号220、符号221、符号222、符号223、符号224は各描画オブジェクトの描画命令に相当し、それぞれ図3の円オブジェクト351、三角形オブジェクト352、曲線オブジェクト353、直線オブジェクト354、直線オブジェクト355を描画する。また、図3の個々の描画オブジェクトの外側にある点線の領域が概形となる。
図3の概形361,362,363,364,365は、それぞれ、円オブジェクト351、三角オブジェクト352、曲線オブジェクト353、直線オブジェクト354、直線オブジェクト355の概形となる。
図4は画像形成装置の描画処理の手順を示したフローチャートである。ここでは、図3に示した図形が描画されるものとする。
まず、ブロック分割部101は描画命令を読み込み、解釈を行う(ステップS401)。描画命令とは、例えば図2に示したPostScript言語で記述された印刷データである。
図2に示したPostScriptの描画コマンドにおいて、描画命令群220は中心座標(120,200)で半径20の円を記述し、色010(緑)で円を塗りつぶす描画命令である。同じように描画命令群221,222, 223,224はそれぞれ、三角形オブジェクト、ぺジェ曲線オブジェクト、直線オブジェクト、直線オブジェクトを記述する命令である。
ここで、ブロック分割部101の描画命令の解釈により得られたオブジェクト情報は、オブジェクトテーブルに登録される。図5にオブジェクトテーブル500の一例を示す。オブジェクトテーブル500には、解釈した描画命令を示すポインタ511〜515に、オブジェクトを識別する識別子501〜505が付加されている。
ステップS401の描画命令解釈終了後、ブロック分割部101は描画オブジェクトの概形を算出する(ステップS402)。概形の算出は以下のように行う。
まず、ブロック分割部101は、図2の円オブジェクトの描画命令220を解釈し、中心座標(120,200)と半径20の円オブジェクトの取りうるXおよびY座標の範囲を計算し概形を求める。円オブジェクトの概形は図3の矩形領域361に相当する。この円のX,Yの最小値は、(X,Y)=(120−20,200−20)=(100,180)、同様に最大値は(X,Y)=(120+20,200+20)=(140,220)となる。
次に、ブロック分割部101は、三角形オブジェクトの描画命令221を解釈し、概形を計算する。最初に、moveto命令によってペン座標を(X,Y)=(90,140)に移動させる。ここから、順にlineto命令によって座標(150,90)、(60,40)、(90,140)に直線を引き、三角形を描く。このように三角形オブジェクト352は直線から構成される図形である。したがって、ブロック分割部部101は、描画命令220の解釈終了まで、描画オブジェクトの各頂点の最大値、および最小値を単純に更新しつづけることで、オブジェクトを包含する領域を特定することが可能である。ここでは、3つの頂点の座標から、XおよびYの最小値は(X,Y)=(60,40)、最大値は(X,Y)=(150,140)であることがわかる。求まる三角形オブジェクト352の概形は、図3の矩形362となる。
次にブロック分割部101は、曲線オブジェクト353の描画命令222を解釈し、概形を計算する。ここでは最初に、ペンの座標を(20,10)に移動させ、現在のペン座標と(40,60)、(80,25)、(70,10)の4点で囲まれるベジエ曲線を描く。ベジエ曲線は、各制御点のXおよびYの最小値、および最大値から描画オブジェクトを包含する矩形領域を判定可能である。
このベジエ曲線を含む領域は、(X,Y)=(20,10),(80,60)の矩形内である。これは、図3の矩形363に示される領域に相当する。このようにして各描画オブジェクトの概形を算出する。
最後にブロック分割部101は、直線オブジェクト354の描画命令223を解釈する。直線オブジェクトはmoveto命令によってペン座標を(X,Y)=(70,225)に移動させ、lineto命令によって座標(110,245)に直線を引く。直線オブジェクトは、始点、終点の座標からXおよびYの最小値、最大値が求められる。XおよびYの最小値は(X,Y)=(70、225)、最大値は(X,Y)=(110、245)であることがわかる。次に解釈する直線オブジェクト355の描画命令224も同様の方法で概形を計算する。上記のようにブロック分割部101で算出された各オブジェクトの概形情報の一例を図6に示す。図6のリストには、各オブジェクトの識別子611〜615と、各オブジェクトに対応する概形情報601〜605とが記録される。
図4に戻り、ブロック分割部101は、各描画オブジェクトの概形を算出した後(ステップS402)、描画領域をブロック状に分割する(ステップS403)。ここでブロックとは、1ページ内を格子状に分割する各領域である。本実施の形態ではブロックをX方向50、Y方向50の矩形領域とする。
次いで、ブロック分割部101はブロック内に概形が存在するか判定を行い、ブロックと概形の対応情報を取得し、ブロック―オブジェクト対応テーブル700(図7)を作成する(ステップS404)。ブロック―オブジェクト対応テーブルは、各ブロックに含まれる概形数740とその概形を持つオブジェクトの識別子であるオブジェクト識別子750を記録している。
ここで、ブロック分割部101によるブロック―オブジェクト対応テーブル700の作成方法について説明する。図3に示すブロック340は(X,Y)=(0,0),(50,50)の矩形であり、ステップS402で算出した図6の概形情報を用い矩形内に概形が存在するか判定を行う。ブロック340の範囲は(X,Y)=(0,0),(50,50)なので、概形情報603((X,Y)=(20,10),(80,60))を持った概形が含まれる。ブロック340に含まれている概形は1つなので、ブロック340の概形数740は1にセットされる。さらに、概形情報603を参照し、これ含まれる概形に対応するオブジェクト識別子613をブロック―オブジェクト対応テーブルのオブジェクト識別子750に登録する。
次いで、ブロック分割部101はブロック341のブロック―オブジェクト対応情報を作成する。図6の概形情報から、(X,Y)=(20,10),(80,60)、(X,Y)=(60,40),(150,140)、(X,Y)=(90,10),(120,15)の領域を持つ概形がブロック341の領域(X,Y)=(0,50),(100,50)に含まれていると判断される。それぞれの概形のオブジェクト識別子は、1、2、4でありブロック―オブジェクト対応テーブル700に登録される。ブロックに含まれる概形数は3つなので、概形数は3と記録される。このようにしてすべてのブロックについて含まれる概形の数740と、概形と対応するオブジェクト識別子750をブロック―オブジェクト対応テーブルに記録する。描画領域すべてのブロックに対して以上の処理を行うと、ブロック―オブジェクト対応テーブル700が得られる。
次に、ブロック分割部101は、前述のように分割したブロック701〜720の中で描画処理が行われていないブロックが存在するか否かの判定を行う(ステップS410)。この場合、いずれのブロックも描画処理は行われていない。よってステップ411に移る。
ステップ411では、ブロック分割部101は、バンド内で最も概形数740が多いブロックを描画処理を行うブロックとして選択する。バンドとは描画対象を短冊型に分割した領域であり、副走査線方向の座標が等しいブロック群で構成される。この場合、ブロック701〜704で構成されるバンドが描画対象となり、バンド内で最も概形数が多いブロックの描画処理が描画対象として選択される。ブロック分割部101は、バンド内で最も概形数が多い概形数3を持ったブロック703を処理対象として選択する。
次いで、ブロック分割部101は、画像処理プロセッサ群102〜104の実行状況を確認する(ステップS412)。一回目の確認では、いずれの画像処理プロセッサ102、103、104も描画処理を実行しておらず、アイドル状態として認識される。
次に、ブロック分割部101は、アイドル状態の画像処理プロセッサの有無を判定する(ステップS420)。画像処理プロセッサ102、103、104はすべてアイドル状態であるので、アイドル状態の画像処理プロセッサがあると判定される。ステップS420で、アイドル状態の画像処理プロセッサがないと判定された場合にはステップS412に戻る。
ステップS420でアイドル状態の画像処理プロセッサがあると判定されると、ブロック分割部101は、高速メモリ部106の使用状況を確認する(ステップS421)。
本実施の形態では、高速メモリ部106は1ブロックの描画処理に必要な作業領域を持っているとする。なお、高速メモリ部106の使用状況を確認する手段としては、さまざまな方法が考えられる。オブジェクトの種類、個数から必要となる作業領域を算出し、高速メモリ部の未使用領域と比較する方法なども、本発明の範囲に含まれる。ここでは、高速メモリ部106はいずれのブロックの描画命令も割り当てられていないため、未使用であることが確認される。
ブロック分割部101は、描画処理に必要な作業領域を高速メモリ部106に確保できるか否かの判定を行う(ステップS430)。ここでは、ブロック分割部101は、ステップS421で高速メモリ部106が未使用であることを確認しており、作業領域を高速メモリ部106に確保できる。したがって、メモリアクセス調停部108がアイドル状態の画像処理プロセッサ102の作業領域を高速メモリ部106に割り当てる(ステップS431)。
その後、ブロック分割部101がステップ411で選択されたブロック702の描画命令を画像処理プロセッサ102に割り当てる。描画命令を割り当てられた画像処理プロセッサ102は、高速メモリ部106を作業領域として用いて描画処理を行う(ステップS432)。画像処理プロセッサ102は、ブロック―オブジェクト対応テーブル700と、オブジェクトテーブル500からブロックの描画に必要な描画命令を実行し描画処理を行う。
次にステップS410に戻り、ブロック分割部101は、描画処理の終了していないブロックが存在するか確認する。描画処理が行われていないブロックが存在するので、ブロック分割部101は、バンド内で概形数が最も多いブロックを選択する(ステップS411)。概形数2のブロック703が選択される。
次に、ブロック分割部101は、画像処理プロセッサ群102〜104の実行状況を確認する(ステップ412)。画像処理プロセッサ102はブロック702を描画処理中なので、画像処理プロセッサ103,104がアイドル状態であると確認され、ステップS420の判定では、アイドル状態の画像プロセッサが存在するので、ステップS421に移る。
ブロック分割部101は、高速メモリ部106の使用状況を確認する(ステップS421)。高速メモリ部106は1ブロック分の作業領域を持っているが、画像処理プロセッサ102がブロック702の描画処理の作業領域として使用されているので、使用中と判断される(ステップS430でNO)。したがって、メモリアクセス調停部108は、アイドル状態の画像処理プロセッサ103の作業領域を低速メモリ部107に割り当てる(ステップS433)。ブロック分割部101は、ステップS411で選択したブロック703の描画命令を画像処理プロセッサ103に割り当てる。描画命令を割り当てられた画像処理プロセッサ103は、低速メモリ部107を作業領域として用いて描画処理を行う(ステップS434)。
再度ステップS410に戻り、ブロック分割部101は、未処理の描画領域を確認し、ステップS411で次に概形数の多いブロック701を選択し、ステップS412で画像処理プロセッサ104がアイドル状態であることを確認する。ステップS420ではアイドル状態の画像プロセッサが存在するので処理はステップS421へ移る。ステップS421でブロック分割部101は、高速メモリ部106の使用状況を確認し、ステップS430の判定では高速メモリ部106が使用中なので、処理はステップS433へ移る。
ステップS433において、メモリアクセス調停部108は、アイドル状態の画像処理プロセッサ104の作業領域を低速メモリ部107に割り当てる。ブロック分割部101は、ステップS411で選択したブロック701の描画命令を画像処理プロセッサ104に割り当てる。描画命令を割り当てられた画像処理プロセッサ104は、低速メモリ部107を作業領域として用いて描画処理を行う(ステップS434)。
再度ステップS410に戻り、ブロック分割部101は、未処理の描画領域を確認し、バンド内の残りのブロック704を選択する(ステップS411)。
ステップ412において、ブロック分割部101は、画像処理プロセッサ102〜104の実行状況確認を行うと、画像処理プロセッサ102,103,104はそれぞれブロック702,703,701を描画処理中であり、アイドル状態の画像処理プロセッサは存在しない。
ステップS420では、アイドル状態の画像処理プロセッサが無いため、ステップ412に戻る。ブロック分割部101は、ブロックの処理が終了し、画像処理プロセッサがアイドル状態になるまで、画像処理プロセッサの実行状況の確認を繰り返す。
次に、画像処理プロセッサ104に割り当てられたブロック701の描画処理が完了したとする。
画像処理プロセッサ104はアイドル状態となり、ステップS420の判定で、ブロック分割部101は、アイドル状態の画像処理プロセッサを検知し、高速メモリ部106の使用状況を確認する(ステップS421)。
その後、ステップS430の判定では、高速メモリ部106は画像処理プロセッサ102で使用されているので、ステップS433に移る。
ステップS433において、メモリアクセス調停部108は、アイドル状態の画像処理プロセッサ104の作業領域を低速メモリ部107に割り当てる。ブロック分割部101は、ステップS411で選択したブロック704の描画命令を画像処理プロセッサ104に割り当てる。描画命令を割り当てられた画像処理プロセッサ104は、低速メモリ部107を作業領域として用いて描画処理を行う(ステップS434)。
最後にすべてのブロックを画像処理プロセッサに割り当てた後の動作について説明する。ブロック304の描画処理が画像プロセッサに割り当てられた状態でステップ410に戻った場合について説明する。ステップS410では、ブロック分割部101は、未描画ブロックが残されていないので、ステップS441に移る。
次いで、ブロック分割部101は、各画像処理プロセッサにおける描画処理の完了を検知するまで待機する(ステップS441)。
ブロック分割部101が描画処理終了を確認後、CPU105に描画処理終了を通知する。その後、CPU105は、ラスタ画像の統合を行う(ステップS442)。この統合処理は各画像処理プロセッサが形成したラスタ画像を統合し、入力された描画命令を処理した場合に形成される画像と同等の画像を生成する処理である。
分割した描画命令の描画範囲はブロックの領域であるので、その描画範囲にあたる所定のアドレスにラスタ画像を出力するように予め画像処理プロセッサに設定することで画像を統合することができる。もしくは、画像処理プロセッサは任意のアドレスにラスタ画像を出力し、全体の描画画像300から任意のアドレスに出力されたブロックのラスタ画像へリンクする処理を行ってもよい。前述の統合処理が終了すると描画処理は終了となる。統合処理を行うことで、領域を分割して描画処理を行っても入力された描画命令と等価な画像が得られる。
図8(A)は、従来例の画像形成装置の各画像プロセッサ102、103、104における、1バンドに含まれるブロックの描画処理の実行状況を説明する図である。また、図8(B)は、本実施の形態にかかる画像形成装置の各画像プロセッサ102、103、104における、1バンドに含まれるブロックの描画処理の実行状況を説明する図である。図8(C)は、従来の画像プロセッサ102と本発明の画像プロセッサ102における、1バンドに含まれるブロックの描画処理の実行状況を説明する図である。図8(D)は、従来の画像プロセッサ103と本発明の画像プロセッサ103における、1バンドに含まれるブロックの描画処理の実行状況を説明する図である。
図8(A)における従来例の画像形成装置では、時刻810にブロック分割部101が描画領域分割を開始し、時刻811に分割したブロックを各画像処理プロセッサに割り当てを行う。
まず、ブロック分割部101が最も概形数の多いブロック341を選択し、高速メモリ部106を作業領域として画像処理プロセッサ102に描画命令を割り当てる。
画像処理プロセッサ102は、時刻812から描画を開始する。同様に、画像処理プロセッサ103,104がそれぞれブロック342,340の描画処理を時刻813,814から開始する。
ブロック340はオブジェクトを1つしか含まないために処理時間も短く、画像処理プロセッサ104は時刻815に描画処理を終える。
アイドル状態となった画像処理プロセッサ104は、ブロック分割部101から割り当てられたブロック343の描画処理を時刻816から行う。
ブロック343はオブジェクトを含まないため描画時間は短く、画像処理プロセッサ104は時刻817に描画処理を終える。
次にオブジェクトを2つ含んでいたブロック342の描画処理を画像処理プロセッサ103が時刻818に終える。
さらに遅れて、オブジェクトを3つ含むブロック341の描画処理を画像処理プロセッサ102が時刻819に終え、1バンドの描画処理が完了する。
従来例では、メモリがキャッシュシステムを持っているとすると、キャッシュがヒットした場合にはアクセスタイム830、キャッシュがミスした場合にはアクセスタイム840を要していた。従来例では、ブロックの描画処理の負荷によらず、一様に各画像処理プロセッサはメモリにアクセスしていた。そのため、オブジェクト数の不均衡により、オブジェクトを多く含むブロック341の描画処理は他のブロックと比べ長い時間を要してしまい、バンド単位の描画処理のボトルネックとなってしまう。
本実施の形態における描画処理の実行を図8(B)を用いて説明する。本実施の形態ではブロックの描画処理の負荷によって、メモリアクセス調停部108が、描画処理に用いる作業領域に割り当てる高速メモリ部106又は低速メモリ部107を変更する。
本実施の形態に示される画像形成装置における描画領域分割開始時刻820と、ブロックを各画像処理プロセッサに割り当てを開始する時刻821と、各画像処理プロセッサが描画を開始する時刻822,823,824は、それぞれ、従来例の時刻810,811,812,813,814と等しい。ブロック340の描画処理終了時刻は、描画処理終了時刻は従来例よりも遅く時刻825に描画処理を終える。
本実施の形態では、ブロック340の描画処理を行っている画像処理プロセッサは作業領域として低速メモリ部107をメモリアクセス調停部108により割り当てられているため常に低速メモリ部アクセスタイムを要する。そのため、描画処理終了時刻は従来例よりも遅くなり時刻815となる。
しかし、本実施の形態では従来例でボトルネックになっていたオブジェクトを3つ含むブロック341の描画処理に高速メモリ部106をメモリアクセス調停部108により割り当てるため、終了時刻は時刻819となる。したがって、従来例の時刻819よりも短い時間で、1バンドの描画処理を完了する。
本実施の形態では、オブジェクト数が多くメモリアクセス回数が多いブロックの描画処理を行う画像処理プロセッサに高速メモリ部106を割り当てるため、メモリアクセスは常に高速メモリ部106のアクセスタイムで可能となる。そのため、本実施の形態では、従来例のバンド処理が終了した時刻819よりも早い時刻829でバンド単位の処理を終了させることができる。
以上詳細に説明したように、本実施の形態では、ページ記述言語の入力データに対して並列に描画処理が実行可能な複数の画像処理プロセッサ(102〜104)と、ページ上に複数のブロックを構成し、各ブロックが互いに並列処理可能となるページ記述言語の描画命令を抽出するブロック分割部(101)と、アクセス速度の異なる2つ以上のメモリ(106,107)を有し、前記ページ記述言語又は前記画像処理プロセッサにより処理される中間データを格納する格納部(106,107)と、画像処理プロセッサからメモリへのアクセスを調停するメモリアクセス調停部(108)とを備え、メモリアクセス調停部(108)は、格納部(106,107)へのアクセス頻度が高い画像処理プロセッサを優先的にアクセス速度の速いメモリ(106)に割り当てる。また、本実施の形態によれば、PDL(ページ記述言語)を並列処理に適したブロックに分割し、関連付けられた描画オブジェクト数の異なる個々のブロックをより均等な時間で描画することができる。さらに、メモリ装置を拡張することなくバンド単位の描画時間を平滑化することができる。
また、本発明の目的は、前述した各実施の形態の機能を実現するソフトウェアのプログラムコードを記憶した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても達成される。
この場合、記憶媒体から読み出されたプログラムコード自体が前述した各実施の形態の機能を実現することになり、そのプログラムコード及び該プログラムコードを記憶した記憶媒体は本発明を構成することになる。
また、プログラムコードを供給するための記憶媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。または、プログラムコードをネットワークを介してダウンロードしてもよい。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した各実施の形態の機能が実現される場合には限られない。すなわち、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した各実施の形態の機能が実現される場合も含まれる。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その拡張機能を拡張ボードや拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した各実施の形態の機能が実現される場合も含まれる。
101 ブロック分割部
102,103,104 画像処理プロセッサ
105 CPU
106 高速メモリ部
107 低速メモリ部
108 メモリアクセス調停部
102,103,104 画像処理プロセッサ
105 CPU
106 高速メモリ部
107 低速メモリ部
108 メモリアクセス調停部
Claims (7)
- ページ記述言語の入力データに対して並列に描画処理が実行可能な複数の画像処理手段と、
ページ上に複数のブロックを構成し、各ブロックが互いに並列処理可能となるページ記述言語の描画命令を抽出するブロック分割手段と、
アクセス速度の異なる2つ以上のメモリを有し、前記ページ記述言語又は前記画像処理手段により処理される中間データを格納する格納手段と、
前記画像処理手段から前記格納手段へのアクセスを調停するメモリアクセス調停手段とを備え、
前記メモリアクセス調停手段は、前記格納手段へのアクセス頻度が高い画像処理手段を優先的にアクセス速度の速いメモリに割り当てることを特徴とする画像形成装置。 - 前記ブロック分割手段は、描画オブジェクトごとに、これを包含する概形を生成する概形生成手段を備え、
前記メモリアクセス調停手段は、ブロック毎に含まれる、前記概形生成手段により生成された概形の数に基づいて、前記画像処理手段のメモリへの割り当てを決定することを特徴とする請求項1に記載の画像形成装置。 - 前記ブロック分割手段は、
描画オブジェクト数の最も多いブロックの描画命令を選択する選択手段と、
前記複数の画像処理手段の実行状況を確認する確認手段と、
アイドル状態の画像処理手段があるか否かを判別するアイドル状態判別手段と、
前記アクセス速度の速いメモリの使用状況を確認するメモリ使用状況確認手段と、
前記アクセス速度の速いメモリに描画処理に必要な作業領域を確保できるか否かを判別する作業領域判別手段とを備え、
前記メモリアクセス調停手段は、
前記作業領域判別手段で前記アクセス速度の速いメモリに描画処理に必要な作業領域を確保できると判別される場合に、前記画像処理手段をアクセス速度の異なる2つ以上のメモリのうちアクセス速度の速いメモリに割り当て、
前記作業領域判別手段で前記アクセス速度の速いメモリに描画処理に必要な作業領域を確保できないと判別される場合に、前記画像処理手段をアクセス速度の異なる2つ以上のメモリのうちアクセス速度の遅いメモリに割り当てることを特徴とする請求項1又は2に記載の画像形成装置。 - 前記ブロック分割手段は、前記選択手段で選択したブロックの描画命令を、前記アクセス速度の速いメモリに割り当てられた画像処理手段又は前記アクセス速度の遅いメモリに割り当てられた画像処理手段に割り当てることを特徴とする請求項3記載の画像形成装置。
- 前記ブロックの形状は、格子状であることを特徴とする請求項1乃至4のいずれか1項記載の画像形成装置。
- ページ記述言語の入力データに対して並列に描画処理が実行可能な複数の画像処理手段と、アクセス速度の異なる2つ以上のメモリを有し、前記ページ記述言語又は前記画像処理手段により処理される中間データを格納する格納手段とを備える画像形成装置で実行される画像形成方法であって、
ページ上に複数のブロックを構成し、各ブロックが互いに並列処理可能となるページ記述言語の描画命令を抽出するブロック分割工程と、
前記画像処理手段から前記格納手段へのアクセスを調停するメモリアクセス調停工程とを備え、
前記メモリアクセス調停工程は、前記格納手段へのアクセス頻度が高い画像処理手段を優先的にアクセス速度の速いメモリに割り当てることを特徴とする画像形成装置で実行される画像形成方法。 - ページ記述言語の入力データに対して並列に描画処理が実行可能な複数の画像処理手段と、アクセス速度の異なる2つ以上のメモリを有し、前記ページ記述言語又は前記画像処理手段により処理される中間データを格納する格納手段とを備える画像形成装置で実行される画像形成プログラムであって、
ページ上に複数のブロックを構成し、各ブロックが互いに並列処理可能となるページ記述言語の描画命令を抽出するブロック分割モジュールと、
前記画像処理手段から前記格納手段へのアクセスを調停するメモリアクセス調停モジュールとを備え、
前記メモリアクセス調停モジュールは、前記格納手段へのアクセス頻度が高い画像処理手段を優先的にアクセス速度の速いメモリに割り当てることを特徴とする画像形成装置で実行される画像形成プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006061325A JP2007237510A (ja) | 2006-03-07 | 2006-03-07 | 画像形成装置、並びに当該装置で実行される画像形成方法及び画像形成プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006061325A JP2007237510A (ja) | 2006-03-07 | 2006-03-07 | 画像形成装置、並びに当該装置で実行される画像形成方法及び画像形成プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007237510A true JP2007237510A (ja) | 2007-09-20 |
Family
ID=38583512
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006061325A Pending JP2007237510A (ja) | 2006-03-07 | 2006-03-07 | 画像形成装置、並びに当該装置で実行される画像形成方法及び画像形成プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007237510A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010009603A (ja) * | 2008-06-27 | 2010-01-14 | Toshiba Corp | 画像処理装置及び画像処理方法 |
WO2010053201A1 (en) * | 2008-11-10 | 2010-05-14 | Canon Kabushiki Kaisha | Image processing device and image processing method |
JP2020113064A (ja) * | 2019-01-11 | 2020-07-27 | コニカミノルタ株式会社 | 印刷用ファイル加工部、印刷用ファイルの加工方法および印刷用ファイル加工プログラム |
-
2006
- 2006-03-07 JP JP2006061325A patent/JP2007237510A/ja active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010009603A (ja) * | 2008-06-27 | 2010-01-14 | Toshiba Corp | 画像処理装置及び画像処理方法 |
WO2010053201A1 (en) * | 2008-11-10 | 2010-05-14 | Canon Kabushiki Kaisha | Image processing device and image processing method |
JP2010111099A (ja) * | 2008-11-10 | 2010-05-20 | Canon Inc | 画像処理装置およびその制御方法 |
US20110205591A1 (en) * | 2008-11-10 | 2011-08-25 | Canon Kabushiki Kaisha | Image processing device and image processing method |
JP2020113064A (ja) * | 2019-01-11 | 2020-07-27 | コニカミノルタ株式会社 | 印刷用ファイル加工部、印刷用ファイルの加工方法および印刷用ファイル加工プログラム |
JP7172614B2 (ja) | 2019-01-11 | 2022-11-16 | コニカミノルタ株式会社 | 印刷用ファイル加工部、印刷用ファイルの加工方法および印刷用ファイル加工プログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7747077B2 (en) | Image processing apparatus, image processing method, and image processing program | |
JP4614389B2 (ja) | 画像形成装置、印刷装置、表示装置、描画処理方法、及びプログラム | |
US8861014B2 (en) | Systems and methods for optimized printer throughput in a multi-core environment | |
JP2012081626A (ja) | 画像形成装置、画像処理方法、プログラム | |
JP5675445B2 (ja) | 情報処理装置、情報処理装置の制御方法、及びコンピュータプログラム | |
JP2007237510A (ja) | 画像形成装置、並びに当該装置で実行される画像形成方法及び画像形成プログラム | |
JP2003051019A (ja) | 画像処理装置、画像処理方法、画像処理プログラム及び記憶媒体 | |
JP2009285891A (ja) | 画像形成装置及び画像形成システム | |
JP2012071544A (ja) | 画像形成装置、画像処理方法 | |
JP2007122188A (ja) | 画像形成装置及び画像処理方法、並びにプログラム | |
JP2006338194A (ja) | データ処理システム、データ処理プログラム及びデータ処理方法 | |
JP2006092125A (ja) | 画像処理装置、画像処理方法、プログラムおよび記憶媒体 | |
JP4580697B2 (ja) | 印刷処理システム、プログラムおよび記録媒体 | |
JP6226604B2 (ja) | ディスプレイリストを生成する装置、方法、プログラム | |
JP2001312383A (ja) | 印刷装置、高速印刷方法、及び記憶媒体 | |
US11341383B2 (en) | Methods and apparatus to detect effective tiling area and fill tiles efficiently | |
JP2002063582A (ja) | 画像形成装置及び画像形成方法 | |
JP2012060562A (ja) | 画像形成装置 | |
JPH03114856A (ja) | プリンタデータ管理方式 | |
JPH01263051A (ja) | プリンタコントローラ | |
JP6078954B2 (ja) | 画像処理装置 | |
JP4392920B2 (ja) | プリントシステム並びに情報処理装置及び方法 | |
JP4261793B2 (ja) | 描画装置及びその描画方法、カラー印刷装置及びカラー印刷制御装置 | |
JP2006079475A (ja) | 印刷処理システム、プログラムおよび記録媒体 | |
JPH08258378A (ja) | 印刷装置および印刷装置のバンド描画方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD05 | Notification of revocation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7425 Effective date: 20070626 |