[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP3707208B2 - Drawing processor - Google Patents

Drawing processor Download PDF

Info

Publication number
JP3707208B2
JP3707208B2 JP16554597A JP16554597A JP3707208B2 JP 3707208 B2 JP3707208 B2 JP 3707208B2 JP 16554597 A JP16554597 A JP 16554597A JP 16554597 A JP16554597 A JP 16554597A JP 3707208 B2 JP3707208 B2 JP 3707208B2
Authority
JP
Japan
Prior art keywords
processing
unit
area
data
divided
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.)
Expired - Fee Related
Application number
JP16554597A
Other languages
Japanese (ja)
Other versions
JPH1115983A (en
Inventor
千登 林
雅夫 森田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP16554597A priority Critical patent/JP3707208B2/en
Publication of JPH1115983A publication Critical patent/JPH1115983A/en
Application granted granted Critical
Publication of JP3707208B2 publication Critical patent/JP3707208B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Image Processing (AREA)
  • Image Generation (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は描画処理装置に関し、特にページ記述言語を入力として描画処理を行う描画処理装置に関する。
【0002】
【従来の技術】
現在、ページプリンタでは、Interpress(米国ゼロックス社の登録商標)やPostsScript(米国アドビ・システムズ社の商標)などのPDL(ページ記述言語)を入力として印刷を実行している。
【0003】
このようなPDLを入力として印刷を実行する際には、PDL形式のデータからラスタ出力デバイスに適した形式のデータに変換するイメージング処理を行う必要がある。ところが、一般にイメージング処理にかかる時間は非常に長く、このことは特に高速のページプリンタに出力するシステムなどでは問題となっている。
【0004】
例えば、カラーの高速ページプリンタは毎分40枚以上の出力能力を持つものがあるにもかかわらず、イメージング処理にかかる時間は、10数秒から数分かかってしまい、高価な高速ページプリンタの能力を十分に生かせなかった。したがって、イメージング処理を高速に行うために、並列描画処理を行う必要がある。
【0005】
従来の並列描画処理方式には、印刷すべきPDLデータをページ毎に分割してページ単位で並列処理を行うものや、予め定めた分割領域ごとにPDL内に記述されている描画オブジェクトを分割して並列描画を行うものなどがあったが、これらは並列処理を行う単位となるページ間や、分割領域間の描画処理負荷が均等にならないという事実により、期待通りの性能を得ることができなかった。
【0006】
これらに対し、特願平08−211258号に提案されている描画処理装置においては、ページ内での描画負荷の偏りにかかわらず、各並列描画処理部の処理負荷を均一にする上、並列描画処理部の一部の処理装置の処理がなんらかの外乱により遅れた場合も救済することを可能としていた。
【0007】
【発明が解決しようとする課題】
しかし、この特願平08−211258号に開示された描画処理装置においても、実行時に順番に割り当てられる描画領域の内、最後の方で割り当てられる分割描画領域に予想以上に負荷が偏っていた場合には、その分割描画領域の処理がボトルネックとなって、並列処理の効果が十分に上がらない場合があるという問題があった。
【0008】
本発明はこのような点を鑑みてなされたものであり、複数の描画処理部に対して担当する分割描画領域が処理の実行時に動的に定められる並列描画処理装置において、描画オブジェクトの描画領域上の分布にかかわらず、安定して、より高速な並列描画処理を行う描画処理装置を提供することを目標とする。
【0009】
【課題を解決するための手段】
本発明では上記課題を解決するために、ページ記述言語を入力として描画処理を行う描画処理装置において、描画命令を受け取り、描画図形の内部データを構成する描画データを生成する描画データ生成手段と、前記描画データの格納及び描画処理手段に対する出力の制御を行う描画データ格納制御手段と、前記描画データ格納制御手段からの描画データを入力して描画処理を実行する複数の描画処理手段と、前記複数の描画処理手段における処理単位を決定するための描画領域の分割基準となる基準値を保持する分割基準管理手段と、分割基準管理手段の有する基準値に基づいて描画領域を分割し、描画処理手段各々の要求に応じて、該分割描画領域を描画処理手段各々に割り当てる処理担当範囲割り当て手段と、複数の描画処理手段から出力される複数の処理結果を記憶する処理結果格納手段と、処理結果格納手段に格納された処理結果の出力を行う出力手段とを備え、分割基準管理手段は、異なる複数の基準値を有し、複数の描画処理手段における処理の全体の進行度に応じて選択される該複数の基準値の中の1つの基準値を処理担当範囲割り当て手段に出力し、該処理担当範囲割り当て手段は、該選択された基準値に基づき描画領域を分割し、該分割描画領域を複数の描画処理手段各々に割り当てることを特徴とする。
【0010】
また、本発明の描画処理装置における分割基準管理手段は、描画処理手段における描画データの処理の進行度を示すデータとして描画処理手段に割り当て済みの分割描画領域の副走査方向の位置座標値を受領し、該受領位置座標値に基づいて複数の基準値から1つの基準値を選択する構成を有することを特徴とする。
【0011】
また、本発明の描画処理装置における分割基準管理手段は、描画処理手段における描画データの処理の進行度を示すデータとして描画処理手段に割り当て済みの描画領域の面積と処理を要する全体面積、例えばページあたりの面積との比を示す値を受領し、該受領値に基づいて複数の基準値から1つの基準値を選択する構成を有することを特徴とする。
【0012】
また、本発明の描画処理装置における分割基準管理手段の有する複数の基準値の各々に基づいて複数の描画処理手段に割り当てられる分割描画領域の各々は、描画領域の副走査方向における最小分割単位である単位描画領域(Rn)の整数倍となることを特徴とする。
【0013】
また、本発明の描画処理装置における分割基準管理手段は、描画処理手段における描画データ処理の進行に従って、該描画処理手段に割り当てる描画領域の大きさを減少させるように基準値を選択することを特徴とする。
【0014】
また、本発明の描画処理装置における分割基準管理手段は、描画処理手段における描画データ処理の進行に従って、該描画処理手段に割り当てる分割描画領域の単位描画領域数を減少させるように基準値を選択することを特徴とする。
【0015】
また、本発明の描画処理装置における分割基準管理手段は、描画処理手段における描画データ処理の進行に従って、該描画処理手段に割り当てる1以上の単位描画領域各々に含まれる描画データの総数を減少させるように基準値を選択することを特徴とする。
【0016】
また、本発明の描画処理装置における処理担当範囲割り当て手段は、複数の描画処理手段からの処理の割り当て要求に応じて、描画領域の割り当てを実行することを特徴とする。
【0017】
また、本発明の描画処理装置における処理担当範囲割り当て手段は、分割基準管理手段の有する複数の基準値に基づき、複数の描画処理装置に対して割り当てる分割描画領域の大きさを、描画処理に係るデータについて一括して決定する構成を有することを特徴とする。
【0018】
また、本発明の描画処理装置における処理担当範囲割り当て手段は、複数の処理手段に対する処理の割り当てを実行する際に、描画データ格納制御手段からの描画データに関する情報を受領し、該情報に基づいて描画領域の割り当てを実行することを特徴とする。
【0019】
また、本発明の描画処理装置における処理担当範囲割り当て手段は、複数の描画処理装置からの描画領域要求を排他的に実行する排他的インタフェースを有することを特徴とする。
さらに、本発明の第2の側面は、描画命令を解釈し、描画処理を実行する描画処理方法において、描画命令を受け取り、描画図形の内部データを構成する描画データを生成する描画データ生成ステップと、前記描画データの格納及び描画処理手段に対する出力の制御を行う描画データ格納制御ステップと、複数の描画処理手段において、前記描画データ格納制御ステップの制御に基づいて出力される描画データを入力して描画処理を実行する描画処理ステップと、前記複数の描画処理手段における処理単位を決定するための描画領域の分割基準となる異なる複数の基準値から、前記複数の描画処理手段における処理の全体の進行度に応じて1つの基準値を選択し、選択した基準値を処理担当範囲割り当て手段に出力する分割基準管理ステップと、分割基準管理ステップにおいて選択された基準値に基づいて前記描画領域を分割し、前記描画処理手段各々の要求に応じて、該分割された描画領域を前記描画処理手段各々に割り当てる処理を実行する処理担当範囲割り当てステップと、前記複数の描画処理手段から出力される複数の処理結果を処理結果格納手段に格納する処理結果格納ステップと、前記処理結果格納手段に格納された処理結果の出力を行う出力ステップとを有することを特徴とする描画処理方法にある。
【0020】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照しながら説明する。図1は、本発明の描画処理装置の原理図である。描画データ生成手段20は、図示しない入力手段から入力されるページ記述言語10である描画記述の解釈・展開を行い、描画記述に記述されていたイメージを描画するための描画データを生成して、描画データ格納制御手段30に送信する。描画データ格納制御手段30は、複数の描画処理手段40a〜40nに、描画データを送信する。
【0021】
分割基準管理手段70は、処理担当範囲割り当て手段60から、割り当てを決定中の描画領域の位置座標や、割り当て済面積と描画領域全体の面積の比などの情報や、処理の進度を表した情報を受け取り、内部に記憶されている関数式あるいは表などを用いて、受け取った情報に対応した描画領域の分割基準値を求め、処理担当範囲割り当て手段60に送信する。
【0022】
処理担当範囲割り当て手段60は、分割基準管理手段70を参照して、2種類以上の大きさに描画領域を分割して複数の分割描画領域を規定し、複数の描画処理手段40a〜40nに対して、要求の順に割り当てる。
【0023】
描画処理手段40a〜40nは、処理担当範囲割り当て手段60と通信を行い、担当する分割描画領域の指定を受け取り、指定された分割描画領域の処理に必要な描画データを描画データ格納制御手段30から読みだして描画処理を行う。
【0024】
そして、処理結果格納制御手段50は、描画処理手段40a〜40nで処理された結果を一時格納し、出力装置200にその結果を送信する。
【0025】
また、これらの各手段はその初期化や処理の開始、終了、同期などは図示しない制御手段により制御されて動作する。
【0026】
ここで、分割基準管理手段70は、処理の進度に対する基準値を、テーブルや表形式で管理していてもよいし、処理の進度に対する、関数の形で保持していてもよい。ここで、処理の進度が進むにつれて、基準値が分割描画領域の大きさを連続的あるいは段階的に小さくする方向に変化することを実現できればよい。
【0027】
図2は、本発明の画像処理装置の別の実施例を示す構成図である。この図2においては、描画データ格納制御手段30と処理担当範囲割り当て手段60が通信路により接続されている。この通信路によって、描画データ格納制御手段30は、複数の描画処理手段40a〜40nに、描画データを送信する以外に、処理担当範囲割り当て手段60に対して、格納している描画データの存在範囲等の情報を処理担当範囲割り当て手段60の要求に従って送信する。また、処理担当範囲割り当て手段60は、分割描画領域を決定する際に、描画データ格納制御手段30と通信して、描画データに関する情報を得て、分割描画領域の決定の際に利用する。
【0028】
図3は、本発明が適用されるシステムの一例についての概念図である。このシステムは、ネットワーク400に接続されたネットワークインタフェース300を介して、描画処理装置100が接続される。そして、描画処理装置100からの処理結果を出力する出力装置200が接続される。
【0029】
システムの動作としては、図示しないクライアント・コンピュータから、イーサネットケーブルや電話線や無線などの様々な媒体を使用したネットワークを介して描画出力用のデータが送られる。この描画出力用のデータはネットワークインタフェース300等のインタフェース装置を介して、描画処理装置100に受信され処理される。そして、処理の終ったデータは出力装置200に転送されて紙やフィルムやラスタイメージを表示するために使用されるメモリ装置などの媒体状にイメージが再現される。
【0030】
図4は、描画処理装置の全体の流れを示すフローチャートである。描画処理装置が起動されるとまず、起動時の初期化が行われる(ステップ、S401)。このとき、図示しない制御手段の初期化や図示しないメモリ管理機構の初期化などが行われる他、この段階で分割基準管理手段70等の初期化を行ってもよい。起動時の初期化が終ると、描画処理装置100は描画記述の入力待ちである、ジョブ待ちの状態になる(ステップ、S402)。ジョブが受け付けられ、描画記述が入力されると、ジョブ開始時の初期化が行われる(ステップ、S403)。ここでは、描画処理装置100の構成要素のいくつかについての初期化を行ってもよいが、特に、ジョブ毎に変化する設定についての初期化が行われる。例えば入力データ中に記述してある設定による初期化などが例としてあげられる。また、本発明においては、例えば、ジョブ毎に描画領域の分割基準を変更する場合には、この段階において分割基準管理手段70の設定を行うことになる。ジョブ開始時の初期化が終ると、1ページごと描画処理が行われ、ジョブの全ページあるいは指定されたページ全ての描画処理が終るとジョブの終了処理が行われる(ステップ、S404、405、406)。ジョブの終了処理後、まだ他のジョブを処理するかどうかを判定し、他のジョブを更に処理しない場合には、獲得しているメモリ領域の解放などの終了処理を行ってから終了する(ステップ、S407、408)。
【0031】
以降は簡単のため、説明は1ページ分の描画処理について行うものとする。図5は、1ページ分の処理の流れの概略を示した図である。
【0032】
描画処理が開始されると、各手段において初期化が行われる(ステップ、S501)。この時、描画データ格納制御手段30においては、記憶領域の初期化が行われ、処理結果格納制御手段50は、処理結果を格納する記憶領域の初期化が行われ、描画処理手段40a〜40nは描画処理時に使用するワーク領域の初期化が行われ、さらに、処理担当範囲割り当て手段60では、処理の単位の設定や処理済の位置などの初期化が実行される。また、この時、ページ毎に特殊な処理を行う設定が例えば入力されたページ記述言語10などを通じて指定されていた場合には、この初期化の際にその設定が行われるし、ページの区切りで描画領域の分割基準を変更したい場合には、この段階で分割基準管理手段70の設定変更が行われる。
【0033】
初期化が終了すると、描画データ生成手段20に対して、描画記述を読み込んで1ページ分の描画データを生成する指示が出される。そして、1ページ分の描画データが生成(ステップ、S502)され、描画データ格納制御手段30に格納されると、図1、図2において図示していない制御手段は複数の描画処理手段40a〜40nに対して処理の開始を通知する。この後、描画処理手段による処理が実行される(ステップ、S503)。制御手段は、複数の描画処理手段40a〜40nの処理が全て終了したことを、描画処理手段40a〜40nからの通知を通して知る。あるいは未処理の描画領域が無いことを描画処理手段40a〜40nの全てに通知したことを処理担当範囲割り当て手段60から通知される。
または、処理結果格納制御手段50からの、描画領域全体の結果が格納されたことの通知によって処理の終了を知ることができる。この処理終了により、処理結果格納制御手段50内のデータは、出力装置200に対して描画処理の結果として出力(ステップ、S504)される。そして、終了処理(ステップ、S505)時には、使用したメモリの解放などが行われる。
【0034】
次に、描画処理装置の各手段について詳しく説明する。図6は描画データ生成手段20の処理の流れを示すフローチャートである。描画データ生成手段20は、処理の開始を指示されるとページ記述言語である描画記述のデータを読み込み、1ページを構成する描画記述のデータが残っている間、描画記述のデータを読み込み、解釈を行って、描画データを生成(ステップ、S601、S602)して、生成した描画データを描画データ格納制御手段30に送信する(ステップ、S603)ことを繰り返し行う。
【0035】
図7に、描画データ生成手段20で生成される描画データのデータ構造の一例として、以降の説明で使用するものを示す。図7では、走査線方向に平行な2辺を持つ台形表現により描画領域を表現する描画データ21(図7、下図)とそのデータ構造22(図7、上表)とを示している。そして、副走査線方向にY座標、走査線方向にX座標をとって描画領域上での位置をXY座標系で表現している。この座標系の取り方は以降の説明でも使用する。
【0036】
データ構造22は描画領域に関する値(YMIN,YMAX,X1,X2,DX1,DX2)以外には、色などの塗りつぶし属性値(ATTR)と、重ね塗りの順番を制御する塗りつぶし優先順位の値(PRIO)などが格納される。台形データによる塗りつぶし領域の表現はさまざまなものが挙げられるが、ここではその一例を示している。図に示したY座標値の最大値YMAXと最小値YMIN、左側の辺についてはY座標値の最小値の位置におけるX座標値X1、Y座標値が単位量増加した際のX座標値の増分値DX1、右側の辺についてはY座標値の最小値の位置におけるX座標値X2、Y座標値が単位量増加した際のX座標値の増分値DX2、により台形領域を少なくとも規定できる。
【0037】
なお、本実施例の形態においては、説明の簡単のために描画データとして台形表現により塗りつぶし領域を表現する描画データを用いているが、描画データは主走査線方向に平行な2辺を持つ台形表現である必要はない。例えば、点列やベクトル表現による多角形表現、曲線を含めるあるいは含めない線分列表現、直線分のみからなるベクトル表現、向かい合う線分列同士を関連づけた線分列ペアによる表現、描画領域を三角形や矩形や台形などで分割した表現など、塗りつぶし領域あるいは塗りつぶし領域の境界あるいは塗りつぶし領域の境界の一部など、描画領域の座標系上において座標値や大きさを特定できる表現形式であれば何を用いても、本発明のの想定する描画データの範囲である。
【0038】
次に描画データ格納制御手段30について説明を行う。図8は描画データ格納制御手段30の構成の一例を示した概念図である。
【0039】
描画データ格納用インタフェース31は、描画データ生成手段20からの描画データを受信する。描画データ登録手段35は、直接あるいは間接的に、描画データのY座標値の最大値、最小値の座標値をもとに描画データを抽出できるように登録する。これは、例えば、描画領域のY方向の単位描画領域に対応する描画データテーブルを用意し、各描画データをY方向の座標値の例えば最小値が含まれる単位描画領域に対応する場所に、描画データを登録することにより実現できる。描画データ送出用インタフェース36は、描画処理手段40と通信を行う。
【0040】
図9は描画データ格納制御手段30の図8に示した構成の描画データを格納する段階の処理の流れを示した図である。描画データ格納制御手段30は、1ページ分の描画データが送られて来る間、描画データを描画データ登録手段35に登録する(ステップ、S901)。そして、これらの操作は描画データ生成手段20により生成されるすべての描画データについて入力が終了するまで(ステップ、S902)行われる。
【0041】
図10は描画データ格納制御手段30の別の構成例を示した図である。この描画データ格納制御手段30の構成は描画処理装置100の構成が、図2に示したように描画データ格納制御手段30と処理担当範囲割り当て手段60の間に通信路が設けられている場合の描画データ格納制御手段30の構成の一例である。
【0042】
描画データ格納用インタフェース31は、描画データ生成手段20からの描画データを受信する。描画データ存在範囲抽出手段32は、受信した各描画データから副走査線方向(以降説明の簡単のため、副走査線の方向をY方向、副走査線方向の位置を示す数値をY座標値、これに対し走査線の方向をX方向、走査線方向の位置を示す数値をX座標値と呼ぶ。)に対する存在範囲を検出する。
【0043】
描画データ存在範囲集計手段33は、検出したY方向の存在範囲を集計する。この集計とは例えば、Y方向に順に処理することにより各単位描画領域に存在する描画データの個数を集計することができる。これは例えば、各単位描画領域をY座標値の小さい側から大きい側に順に処理するものとしたとき、処理中の単位描画領域の処理以前に存在していた描画データの個数から、一つ前で処理対象としていた単位描画領域にY座標値の最大値を持つ描画データの個数を引き、処理中の単位描画領域に最小値があるものとして登録されている描画データの個数を足すことによって順に得ることができる。描画データ存在数通知用インタフェース34は、処理担当範囲割り当て手段60と通信する。描画データ登録手段35は、直接あるいは間接的に、描画データのY座標値の最大値、最小値の少なくとも一つの座標値をもとに描画データを抽出できるように登録する。描画データ送出用インタフェース36は、描画処理手段40a〜40nと通信を行う。
【0044】
図11は描画データ格納制御手段30の図10に示した構成の描画データを格納する段階の処理の流れを示した図である。描画データ格納制御手段30は、1ページ分の描画データが送られて来る間、送られて来た描画データに対して、その描画データについて描画データ存在範囲抽出手段32により、その描画データのY方向の存在範囲を検出(ステップ、S111)し、この両端を描画データ存在範囲集計手段33に登録(ステップ、S112)する。例えば、描画データ存在範囲抽出手段32が描画データのY方向の座標値の最大値と最小値を抽出する。そして、最大値に当てはまる個数、最小値に当てはまる個数をカウントする一組ずつのカウンタが単位Y座標毎に用意されている描画データ存在範囲集計手段33中の対応するカウンタをインクリメントする。(以降、ここで例に挙げたようなカウンタのテーブルについて参照する際には、最小値側のカウンタを進入カウンタ、最大値側のカウンタを退出カウンタと呼ぶ。)
【0045】
次に、描画データを描画データ登録手段35に登録(ステップ、S113)する。例えば、描画領域のY方向の単位領域に対応する描画データテーブルを用意し、各描画データをY方向の座標値の例えば最小値に対応する場所に、描画データを登録することにより実現できる。そして、これらの操作は描画データ生成手段20により生成されるすべての描画データについて行われる(ステップ、S114)。
【0046】
なお、ここで説明する実施例においては、描画データ格納制御手段30内の描画データ存在範囲集計手段33、描画データ登録手段35等にテーブル形式のデータ構造を使用するが、これは説明の簡単のためであり、他のデータ構造を用いてもよい。リスト構造や、ツリー構造、ハッシュ機構などのさまざまな他のデータ構造を利用しても同様の機能を得ることは可能である。
【0047】
描画データ格納制御手段30は、描画データの格納時以外にも、描画処理が行われている段階において、描画処理手段40a〜40nからの要求を受けて、データの要求された描画データの抽出と送出を行う。このとき、描画処理手段40a〜40nからは、Y方向の座標値、あるいは、Y方向の座標値の範囲を指定される。描画データ格納制御手段30はその指定された座標値あるいは範囲に対応する描画データを一つずつあるいはまとめていくつかずつ、あるいは、その指定された分類に対応する描画データ全てを要求もとの描画処理手段40に送信する。上記の描画データを送信する処理のうち、説明の簡単な要求された範囲に登録されている描画データをまとめて返送する場合について、概略を図12を用いて説明する。
【0048】
描画データ格納制御手段30は、1ページ分の処理が終るまでの間、複数の描画処理手段40a〜40nからの個別に要求を受けては、描画データを転送することを繰り返す。具体的には、通信を受ける(ステップ、S121)と、その通信が1ページの処理の終了の通知でなく描画データの要求命令であれば(ステップ、S122)、その要求元にデータを転送できるだけの情報、すなわち、要求元を一意に示すIDやアドレス、あるいは、要求元の描画処理手段40内の局所記憶装置内のアドレス、あるいは、要求元の描画処理手段40が参照可能な記憶領域のアドレスを一時、描画データ送出用インタフェース36内の図示しない記憶部に記憶(ステップ、S123)する。そして、描画データを要求されている範囲の指示を読み込み(ステップ、S124)、この要求された範囲に登録されている描画データを収集(ステップ、S125)する。そして、収集した描画データを一時保存されている前述の要求元を示す情報を元にして、転送(ステップ、S126)する。この処理の流れは、図8の構成においても、図10の構成においても共通の流れとなる。
【0049】
この描画データを転送する際あるいは、描画データを収集する際において描画データ格納制御手段30内から描画データを取り出す際には、その描画データ自体を描画データ格納制御手段30内に残らないように破壊的に取り出してもよいし、描画データ格納制御手段30内の描画データ自体は保存したまま、その参照用のデータや、描画データの複製物を作って収集する場合もありうる。また、描画データ格納制御手段30のデータの送出の機能は、描画処理手段40a〜40n間の共有メモリ上に構成されている場合には、描画データ格納制御手段30が能動的な機能を果たさずとも、描画処理手段40a〜40nが必要な範囲に登録されている描画データにアクセスできるデータ構造を提供するだけでもよい。このとき各描画処理手段40a〜40nはそれぞれ勝手に描画データを読み出していくことが可能である。
【0050】
そして、描画データ格納制御手段30が、図10に示された構成を取る場合には、処理担当範囲割り当て手段60と通信する際の処理が存在する。
【0051】
処理担当範囲割り当て手段60は、描画処理手段40a〜40nに対して、描画領域を分割して処理の担当を割り当てる。この描画領域の分割を決定する際に、単純に位置座標のみを基準にして描画領域を分割する以外にも、分割した描画領域内のオブジェクトの数などの入力データの特徴を反映して分割することもできる。このように、位置座標値以外を基準として描画領域の分割を行う場合に本発明を適用する場合の例について、ここでは入力データ中の描画データの分布を利用して描画領域の分割を決定する場合について説明を行う。そして、描画データの分布に関する情報を、処理担当範囲割り当て手段60が得るために、処理担当範囲割り当て手段60は描画データ格納制御手段30と通信を行う。
【0052】
以降の説明において、単位描画領域はY方向の最小分割単位であり、分割描画領域は、処理担当範囲割り当て手段60により大きさと位置を決められて各描画処理手段40に割り当てられる領域である。例えば、単位描画領域は走査線1〜数本分のX方向に細長い領域であり、分割描画領域はこの単位描画領域数個から数十個程度の大きさの領域となる。
【0053】
処理担当範囲割り当て手段60が分割描画領域を決定する際に、例えば、割り当てを決定中の分割描画領域中の各単位描画領域ごとに存在する(交わる)描画データの個数の総計が、基準値よりも大きいか小さいかを判定基準として分割描画領域を決定する例を考えると(処理担当範囲割り当て手段60の処理の流れについては、後に改めて行う)、処理担当範囲割り当て手段60は、描画データ格納制御手段30に対して、単位描画領域を指定して、その単位描画領域中に描画データがいくつ存在するかというデータを要求することになる。
【0054】
図13は、この処理について、処理担当範囲割り当て手段60と描画データ格納制御手段30の通信ごとの処理の流れを示した図である。通信が開始されると、まず、データの要求されている範囲(簡単にはY座標値の範囲)を受け取り(ステップ、S131)、そして、指定された範囲について、描画データ存在範囲集計手段33に問い合わせを行う。描画データ存在範囲集計手段33は、この問い合わせの時点で指定された範囲に存在する描画データの個数を計算し、あるいは、予め計算して記憶してあった場所から取り出し(ステップ、S132)、そのデータを処理担当範囲割り当て手段60に送出(ステップ、S133)する。
【0055】
次に、処理担当範囲割り当て手段60について説明する。図14は、処理担当範囲割り当て手段60の構成を示した図である。排他的インタフェース61は、描画処理手段40a〜40nからいずれか一つの描画処理手段の要求を受け付ける。すると、分割描画領域決定手段62で決定された分割描画領域についての情報が例えば、分割描画領域のY座標値の最大値と最小値の組などとして、問い合わせた描画処理手段に通知される。分割描画領域の決定は、例えば、順次描画領域の範囲を広げて行きながら、分割描画領域の幅が、後述する基準値と比較されることにより行われる。この分割描画領域の決定は、描画処理の進行と同期しながら行われてもよいし、描画処理に先立って決定が行われていてもよい。基準値問い合わせ用インタフェース67は、分割描画領域決定手段62から処理中の位置座標や、処理中の単位描画領域の位置や、処理済の面積と全体の描画領域の面積の比などの情報を受けて、分割基準管理手段70と通信し、その処理時点での基準値を分割描画領域決定手段62に通知する。描画範囲判定手段63は、描画処理の進行にともない処理すべき描画領域がなくなった状態を判定する。未処理位置保持手段64は、Y方向の次の未処理位置すなわち、まだ割り当てを行っていない位置を保持するための保持手段であり、描画処理手段40a〜40nに対して分割描画領域を割り当てる際に更新される。分割描画領域決定手段62は、描画範囲判定手段63と未処理位置保持手段64を参照し、順に分割描画領域の範囲を広げながら、基準値問い合わせ用インタフェース67に問い合わせを行って、分割描画領域を決定することと、排他的インタフェース61を通じた要求を受け、要求元の描画処理手段40に分割描画領域の割り当ての情報を通知することを行う。
【0056】
図15は、処理担当範囲割り当て手段60の処理の流れを示すフローチャートである。(ただし、このフローチャートは分割描画領域の決定を描画処理の進行と同期して行う場合についての処理の流れについてのみ示している)処理担当範囲割り当て手段60は、全体の処理開始時に必要なら描画範囲判定手段63や分割描画領域決定手段62や分割基準管理手段の初期化が行われる他に、描画処理手段40a〜40nからの問い合わせがあると以下に示すような処理をおこなう。
【0057】
描画処理手段40a〜40nからの要求は、排他的インタフェース61によりアクセスを制限され、同時に複数の描画処理手段40a〜40nからいずれか一つの描画処理手段の要求を受け付ける(ステップ、S151)。担当範囲の割り当て要求があると、描画範囲判定手段63を参照し、まだ未処理の描画領域があるかどうかを判断(ステップ、S152)する。未処理の描画領域が既になければ、その旨を要求元の描画処理手段に通知する。未処理の描画領域がまだある場合には、未処理位置保持手段64に保持されている位置から順に、単位描画領域についての検討を行う。すなわち、割り当てを検討中の描画領域を少しずつ広げる(ステップ、S153)と共に、検討中の単位描画領域の位置での基準値を分割基準管理手段70に問い合わせ、その処理位置における基準値を得る(ステップ、S154)。この基準値と、前記検討中の分割描画領域の幅を比較(ステップ、S155)し、基準値を越えていない場合には、さらに検討中の分割描画領域の幅を広げる処理を繰り返す。また、基準値を越えていた場合には以下の処理を行う。
【0058】
ステップ155において、基準値を超えたことが確認されると、次に、割り当てる分割描画領域が実際にあるかどうかを判断(ステップ、S156)する。無い場合には、割り当てる分割描画領域が無いことを要求元の描画処理手段に送信(ステップ、S159)し、ある場合には、要求元の描画処理手段にその分割描画領域の情報、例えば、分割描画領域の境界の座標値などの情報を送信(ステップ、S157)して、未処理位置保持手段64に保持されている位置を次の未処理の描画位置に更新(ステップ、S158)する。
【0059】
図16は、処理担当範囲割り当て手段60が、位置座標以外の情報も描画領域の分割に使用する場合の例として、分割描画領域内の単位描画領域ごとの描画データの個数の総計値により分割描画領域を決定する場合の構成例を示した図である。
【0060】
排他的インタフェース61は、複数の描画処理手段40a〜40nからいずれか一つの描画処理手段の要求を受け付ける。すると、分割描画領域決定手段62で決定された分割描画領域についての情報が例えば、分割描画領域のY座標値の最大値と最小値の組などとして、問い合わせた描画処理手段に通知される。分割描画領域の決定は、例えば、順次描画領域の範囲を広げて行きながら、描画データの個数の総計が、後述する基準値と比較されることにより行われる。基準値問い合わせ用インタフェース67は、分割描画領域決定手段62から処理中の位置座標や、処理中の単位描画領域の位置や、処理済の面積と全体の描画領域の面積の比などの情報を受けて、分割基準管理手段70と通信し、その処理時点での基準値を分割描画領域決定手段62に通知する。描画範囲判定手段63は、描画処理の進行にともない処理すべき描画領域がなくなった状態を判定する。未処理位置保持手段64は、Y方向の次の未処理位置を保持するための保持手段であり、描画処理手段40a〜40nに対して分割描画領域を割り当てる際に更新される。描画データ数問い合わせ用インタフェース66は、検討中の単位描画領域内の描画データの個数を描画データ格納制御手段30に問い合わせるためのインタフェースである。描画データ数集計手段65は、描画データ数問い合わせ用インタフェース66を通じて得られた単位描画領域ごとの描画データ数を累算し、その値を保持する。分割描画領域決定手段62は、描画範囲判定手段63と未処理位置保持手段64を参照し、順に分割描画領域の範囲を広げながら、基準値問い合わせ用インタフェース67と描画データ数問い合わせ用インタフェース66と描画データ数集計手段65に問い合わせを行って、分割描画領域を決定することと、排他的インタフェース61を通じた要求を受け、要求もとの描画処理手段40に分割描画領域の割り当ての情報を通知することを行う。
【0061】
図17は、処理担当範囲割り当て手段60が、図16に示した構成を取る場合の処理の流れを示すフローチャートである。処理担当範囲割り当て手段60は、全体の処理開始時に初期化が行われる他に、描画処理手段40からの問い合わせがあると以下に示すような処理を行う。
【0062】
描画処理手段40a〜40nからの要求は、排他的インタフェース61によりアクセスを制限され、同時に複数の描画処理手段40a〜40nからいずれか一つの描画処理手段の要求を受け付ける(ステップ、S1701)。担当範囲の割り当て要求があると、描画範囲判定手段63を参照し、まだ未処理の描画領域があるかどうかを判断(ステップ、S1702)する。未処理の描画領域が既になければ、その旨を要求元の描画処理手段に通知する。未処理の描画領域がまだある場合には、未処理位置保持手段64に保持されている位置から順に、単位描画領域についての検討を行う。すなわち、描画データ格納制御手段30に対してその単位描画領域ごとの描画データの数を問い合わせ(ステップ、S1703)、そして、未処理位置保持手段64に保持されている位置から順に、前記と同様の処理により単位描画領域ごとの描画データの個数を累算し、単位描画領域の負荷推定値と分配描画領域の負荷推定値とを求める(ステップ、S1704、S1705)。一方、検討中の単位描画領域の位置での基準値を、分割基準管理手段70に問い合わせ、その処理位置における基準値を得る(ステップ、S1706)。この基準値と、前記単位描画領域ごとの描画データの累算値を比較し、累算値が、基準値を越えるかどうかを判断(ステップ、S1707)する。値を越えない場合は、次の単位描画領域にまで、検討している分割描画領域を広げて処理を続け、そうでない場合には以下の処理を行う。
【0063】
ステップ、S1707において、累算値が、基準値を越えたと判断されると、次に、割り当てる分割描画領域が実際にあるかどうかを判断(ステップ、S1708)する。無い場合は、分配する描画領域がないことを要求元の描画処理手段に送信(ステップ、S1711)し、ある場合には、要求元の描画処理手段にその分割描画領域の情報、例えば、分割描画領域の境界座標値などの情報を送信(ステップ、S1709)して、未処理位置保持手段64に保持されている位置を次の未処理の描画位置に更新(ステップ、S1710)する。このとき、累算値は初期化されてもよいし、基準値と演算されて更新されてもよい。
【0064】
次に描画処理手段40a〜40nについて説明を行う。描画処理手段の内部構成は、いずれも同じなので描画処理手段40として説明する。
【0065】
図18は、描画処理手段40の構成を示す図である。処理済描画位置保持手段41は、処理済みの描画位置を保持する。担当描画範囲保持手段42は、処理担当範囲割り当て手段60から得られた、担当する分割描画領域についての情報(例えば、描画領域上での範囲を範囲の境界を示す座標値などで表した情報)を保持するための保持手段であり、半導体記憶装置や磁気ディスクなどにより容易に実現できる。
【0066】
描画データ保持手段43は、描画データ格納制御手段30から得られた描画データを一時保持すると共に、先に処理した他の描画領域から引き継がれる描画データも保持するための保持手段である。この描画データ保持手段43も半導体記憶装置などのさまざまな記憶手段により実現することが可能である。
【0067】
描画データ判定・破棄手段44は、描画機構45が処理対象とする描画位置が更新されることに伴い、描画データ保持手段43内の描画データの内、描画処理の行われる位置が、その描画データの存在範囲外になってしまったものを描画機構45の処理の対象から除いて、描画機構45の処理の効率をあげると共に、描画データ保持手段43の必要記憶容量を削減するためのものである。
【0068】
描画機構45は、内部に描画位置を保持し、描画データ保持手段43内のデータを描画処理バッファ46をワーク領域として利用しながら処理して、担当する分割描画領域に関して、ラスタイメージデータと対応のとれるデータに変換する。処理結果データの形式としては、ラスタイメージデータを代表として、主走査線方向の範囲と色により表現されるランレングスデータ、これらのデータをデータ圧縮の技術により圧縮したデータ等色々な形式がありうる。描画機構45は、処理結果を単位描画領域ごとに処理結果格納制御手段50内に格納してもよい。
また、ある程度集めてから処理結果格納制御手段50内に格納してもよい。特に、この処理結果格納制御手段50は、描画処理手段40a〜40n間の共有メモリ上に構築されている場合、例えば、副走査方向のテーブルの領域が予め確保されていれば、描画処理手段40a〜40nが各々、そのテーブルに処理結果を格納した記憶領域のアドレスを登録してもよい。
【0069】
図19は描画処理手段40の処理の流れを示すフローチャートである。描画処理手段40は、描画データ格納制御手段30に予め定められた範囲のデータが格納されると、図示しない制御手段により動作の開始(ステップ、S1901)を指示される。処理の開始時には、処理済描画位置保持手段41と描画データ保持手段43と描画処理バッファ46の初期化が行われる(ステップ、S1902)。初期動作が終ると、処理担当範囲割り当て手段60に対して処理を担当する分割描画領域の問い合わせを行う(ステップ、S1903)。処理を担当する分割描画領域が伝えられると、これを担当描画範囲保持手段42に格納し、描画処理位置を担当描画範囲保持手段42に格納された範囲の片側の位置に設定(ステップ、S1904)する。
【0070】
まず、描画データ判定・破棄手段44が描画データ保持手段43内に保持されている描画データを検査して、描画位置に影響を与えなくなった描画データを選び、破棄(ステップ、S1905)する。そして、処理済描画位置保持手段41に格納されている位置と描画処理位置を組み合わせたデータとを使用して描画データ格納制御手段30に描画データの要求を行う(ステップ、S1906)。例えば、この段階の処理は、描画データ格納制御手段30が共有メモリ上の記憶領域として実現されていた場合には、各描画処理手段40が処理済描画位置保持手段に格納されていた位置から、描画位置までに登録されている描画データを読み込むという処理になる。
【0071】
また、描画機構45により描画データ保持手段43内に保持されている描画データから、描画処理バッファ46を使用して処理(ステップ、S1907)が行われ、処理結果データが作成される。この段階での描画機構45としての機能を発揮するものは、様々のものが提案されているので、それらの内、出力結果データの種類に応じたものを用いてもよい。ここでは、描画処理バッファ46をラインバッファとして使用して、走査線単位で描画データを優先順位の低い順に重ね塗りを行って走査線毎のラスタデータを作成して行くものとして説明を続けるが、他の方法を特に排除するものではない。描画位置が決まると、描画処理バッファ46内のラインバッファ領域の初期化を行う。そして、描画データ保持手段43内のデータを優先順位の低い方から取り出し、これに対して決定された描画位置に対応する走査線方向の色塗情報を表現するランレングスデータを生成して、ラインバッファの対応する場所に色データを格納する。これを、描画データ保持手段43内に格納されている描画データ分繰り返して処理する。
【0072】
描画位置の処理が終る(ステップ、S1908)と、描画処理手段40は描画処理バッファ46内の処理結果を処理結果格納制御手段50に転送(ステップ、S1910)する。描画処理手段40a〜40nが共有メモリを有する並列計算機システム上に構築されている場合には、例えば、描画位置の更新(ステップ、S1909)時に描画処理バッファ46を共有メモリ上の領域として確保して描画機構45を動作させる。そして、処理結果の格納は、処理結果格納制御手段50内の描画位置を示すテーブルの描画位置に対応する場所に、処理結果を格納した領域のアドレスの値を記録するだけでもよい。
【0073】
描画機構45は、処理結果を処理結果格納制御手段50に転送すると、処理済描画位置保持手段41に処理の終った描画位置を記録した後、描画位置を進める。描画位置が担当している分割描画領域の範囲内であれば、描画データ保持手段43内のデータの整理から繰り返して同様の処理を行う。
【0074】
描画処理手段の処理の過程において、例外的な動作をする場合は、処理担当範囲割り当て手段60により描画領域内に担当すべき未処理領域がないことを告げられた場合である。このとき、描画処理手段40は処理を終了して停止する。
【0075】
次に、具体的な描画サンプルを用いて、本発明である描画処理装置の動作を説明する。図20は、入力描画記述データ(ページ記述言語による表現であるが、特定のページ記述言語の文法にそったものではない)と、その入力描画記述データが表す描画サンプルの概念図を示している。以降の説明では、この入力記述データを入力した時に描画処理を例として説明を行う。描画サンプル11は、3つの多角形(ここでは3角形)と1つの楕円からなる。そして入力描画記述データ12は、楕円の記述データovalと多角形の記述データpolygonとからなる。例えば、polygon([148,0,12,256,148,256],4)は、(X1,Y1)=(148,0)、(X2,Y2)=(12,256),(X3,Y3)=(148,256)であり、ハッチパターンが4であることを示している。その他も同様なので説明は省略する。
【0076】
図21は、図20に示した入力描画記述データから、描画データ生成手段20により生成される描画データの概念図を示したものである。ここでの例では、描画記述中のそれぞれの描画オブジェクトは、台形(三角形を含む)による描画領域を表現する形式に分割され、描画データD1〜D8のフォーマットに変換され、描画データ格納制御手段30に送信される。
【0077】
図22は、単位描画領域の例を示した概念図である。描画領域cをここでは走査線単位の単位描画領域R1〜R18に分割する。描画データD1〜D8は、描画データ生成手段20により生成されると、描画データ格納制御手段30に転送される。描画データ格納制御手段30に転送されると、描画データD1〜D8は、図9で説明した処理を受けて描画データ格納制御手段30内に格納される。
【0078】
図23は描画データD1〜D8が描画データ格納制御手段30内に格納された状態の一例を示している。図8で説明した描画データ登録手段35はここでは、単位描画領域ごとにエントリを持つテーブルから構成されており、各描画データD1〜D8はそれぞれの最小のY座標値に対応するエントリの位置と関係づけられて格納されている。
【0079】
図24は描画データ格納制御手段30が図10に示した構成になっている場合に、描画データD1〜D8が描画データ格納制御手段30に格納された状態の一例を示している。図10で説明した描画データ登録手段35はここでは、単位描画領域ごとにエントリを持つテーブルから構成されており、各描画データD1〜D8はそれぞれの最小のY座標値に対応するエントリの位置と関係づけられて格納されている。図10で説明した描画データ存在範囲集計手段33内には、進入テーブルと退出テーブルと描画データ個数カウンタテーブルがあり、進入テーブルには、各単位描画領域において、その位置にY座標値の最小値(上側の座標)を持つ描画データがいくつあるかを集計しており、退出テーブルには、各単位描画領域において、その位置にY座標値の最大値(下側の座標)を持つ描画データがいくつあるかを集計している。描画データ個数カウンタテーブルは、各単位描画領域に描画データがいくつあるかを示す数値を保持するテーブルである。このテーブルは、描画処理時に進出テーブルと退出テーブルを走査することによって埋めていくこともできるが、ここでは説明の簡単のため、描画処理手段40が描画処理を開始する前に、一度進入テーブルと退出テーブルを走査して、描画データ個数カウンタテーブルが埋められるものとして説明を行う。
【0080】
以下の説明では、描画処理を3つの描画処理手段40a、40b、40cで行うものとして説明する。描画データ格納制御手段30に描画データが格納されると、描画処理手段に対して起動命令が発行される。描画処理手段40a〜40cはほば同時に起動するが、処理担当範囲割り当て手段60へのアクセスが排他的に制御されているため、この段階で順序づけられる。
【0081】
ここでは、最初の処理担当範囲割り当て手段60へのアクセスが描画処理手段40a、描画処理手段40b、描画処理手段40cの順で許可されたものとする。
【0082】
まず、一番目の構成の場合の実行例を説明する。一番目の構成例においては、分割描画領域の大きさを、単純に分割描画領域の位置座標あるいは、その分割描画領域の処理順番により決定する。ここでは、分割描画領域の大きさを位置座標をキーとして決定する場合について説明する。そして、説明の簡単のため、分割描画領域の決定を描画処理に先だって行なう場合について説明するが、分割描画領域の決定は必ずしも描画処理に先だって行なう必要はなく、描画処理と同期しながら行なうことも可能である。
【0083】
図25にここで説明する描画領域の分割についての概念図を示す。まず、図25の上側に、描画領域を分割する基準として分割基準管理手段70に準備される情報の例を示す。この例においては、単位描画領域のR1〜R12までの位置においては分割描画領域の幅は4単位描画領域R13〜R18までの位置においては分割描画領域の幅は1としてある。この結果として、図25に示した分割描画領域BR1〜BR8が決定される。(但し、分割描画領域の割り当てはBR1、BR2、…、BR18)の順に行なわれるものとする。)
【0084】
描画処理手段40aが最初に処理担当範囲割り当て手段60に対して処理の割り当て要求を行なうと、処理担当範囲割り当て手段60は描画処理手段40aに対して前記の分割描画領域BR1を割り当てる。
【0085】
描画処理手段40aは、処理を担当する分割描画領域の情報を受け取ると、描画データ格納制御手段30から描画データを読み込み、順に処理する。ここで読み込まれて描画処理の対象となる描画データは単位描画領域R1から単位描画領域R4の間にY方向の最小値(上側の座標値)を持ち、単位描画領域R1よりも上側にY方向の最大値(下側の座標値)を持たないD1,D2,D3である。描画処理手段40aは、これらの描画データを処理して単位描画領域R1からR4に対応する処理結果データを作成して処理結果格納制御手段50に登録する。
【0086】
そして、描画処理手段40aは再度、処理担当範囲割り当て手段60に処理を担当する分割描画領域の割り当て要求を行なって処理を続けることになる。
【0087】
描画処理手段40bから問い合わせがあると処理担当範囲割り当て手段60は、図14および図16で説明した未処理位置保持手段64に保持されている単位描画領域R5から始まる分割描画領域BR2が描画処理手段40bに割り当てられる。
【0088】
描画処理手段40bは、処理を担当する分割描画領域の情報を受け取ると、描画データ格納制御手段30から描画データを読み込み、順に処理する。描画処理手段40bは図18で説明した処理済描画位置保持手段41が初期化されたままであるため、単位描画領域R5からではなく、単位描画領域R1から描画データを要求し、単位描画領域R8までの間にY方向の最小値(上側の座標値)を持ち、単位描画領域R5よりも上側にY方向の最大値(下側の座標値)を持たない描画データとして、D1,D3,D4,D7を読み込んで処理の対象とする。
【0089】
描画処理手段40bは、これらの描画データを処理して単位描画領域R5から単位描画領域R8に対応する処理結果データを作成して処理結果格納制御手段50に登録する。そして、描画処理手段40は再度、処理担当範囲割り当て手段60に処理を担当する分割描画領域の割り当て要求を行なって処理を続けることになる。
【0090】
描画処理手段40cからの最初の要求において、処理担当範囲割り当て手段60は、図14および図16で説明した未処理位置保持手段64に保持されている単位描画領域R9から始まる分割描画領域BR3を描画処理手段40cに割り当てる。
【0091】
描画処理手段40cは、処理を担当する分割描画領域BR3の情報を受け取ると、描画データ格納制御手段30から描画データを読み込み、順に処理する。描画処理手段40cは、図18で説明した処理済描画位置保持手段41が初期化されたままであるため、単位描画領域R9からではなく、単位描画領域R1から描画データを要求し、単位描画領域R12までの間にY方向の最小値(上側の座標値)を持ち、単位描画領域R9よりも上側にY方向の最大値(下側の座標値)を持たない描画データとしてD1,D3,D4,D5,D7を読み込んで処理の対象とする。描画処理手段40cは、これらの描画データを処理して単位描画領域R9〜R12に対応する処理結果データを作成して処理結果格納制御手段50に登録する。
【0092】
以降の処理は、描画処理手段40a〜40cの処理の終了する順により、各描画処理手段に対して割り当てが変わる。ここでは説明の簡単のために、先に、この実行例でののタイムチャートの概略を図26に示す。図26に示すように、各分割描画領域BR1〜BR9の描画処理の処理時間は、各分割描画領域内の描画データの量やその他の要因により一様ではない。
【0093】
次に割り当てられる分割描画領域BR4は、図26に示したように、最初に処理の終る描画処理手段40aに割り当てられる。描画処理手段40aは分割描画領域BR1の処理を終了すると、処理済描画位置保持手段41に分割描画領域BR1の最も未処理側に近い単位描画領域である単位描画領域R4の位置を格納したのち、処理担当範囲割り当て手段60に分割描画領域の割り当てを要求する。
処理担当範囲割り当て手段60は、この要求に対して分割描画領域BR4を割り当てる。ここでは、描画処理に先だって分割描画領域を決定していたが、描画処理と同期して要求に従って描画領域を決定していた場合には割り当てる分割描画領域の位置がR13以降になるため、この段階において分割基準管理手段70が処理担当範囲割り当て手段60に対して回答する基準値は、分割描画領域の幅4から分割描画領域の幅1に変項されてから、その基準値に従って分割描画領域BR4が決定されることになる。
【0094】
描画処理手段40aは分割描画領域BR4を割り当てられると、描画データ判定・破棄手段44により、分割描画領域BR4の範囲の単位描画領域の内、もっともY座標の小さい方側の単位描画領域である単位描画領域R13のY座標値よりも、Y座標の最大値が小さい描画データが、描画データ保持手段43内から選ばれ、破棄される。具体的には、描画処理手段40aは分割描画領域BR1の処理時に描画データD1,D2,D3を読み込んで、描画データ保持手段43に保持しているが、これらの内描画データD2,D3は破棄され、描画データD1は描画データ保持手段43に残される。次に、処理済描画位置保持手段41に格納されている単位描画領域R4の位置以降で、割り当てられた分割描画領域BR4の最も未処理方向の単位描画領域R13までにY座標の最小値を持ち、単位描画領域R13の位置よりもY座標の最大値が大きい描画データを描画データ格納制御手段30に要求する。この結果D5,D7,D8が新たに描画処理手段40aに読み込まれて、描画データ保持手段43に格納され、分割描画領域BR4の描画処理が行なわれる。以降同様にして、分割描画領域BR5の処理を描画処理手段40bが、分割描画領域BR6の処理を描画処理手段40cが、分割描画領域BR7の処理を描画処理手段40aが、分割描画領域BR8の処理を描画処理手段40aが、分割描画領域BR9の処理を描画処理手段40bが順に行なって割り当てる分割描画領域が無くなり、描画処理が終了する。
【0095】
図29は、処理の結果として処理結果格納制御手段50に格納される処理結果データの概念図を示したものである。図30に比較のための均等に描画領域を分割した例として分割描画領域BU1〜BU6を示す。そして、図31にその場合の処理の進行についてのタイムチャートの概略を示す。図20に示した描画記述は、描画領域のうちY座標の大きい方に描画オブジェクトがかたよっており、このため、Y座標の小さい方から大きい方に向けて描画処理を行なった場合図30のように均等な大きさの分割描画領域に分割して処理した場合には、図31に示したタイムチャートのように負荷の配分のバランスがくずれて、ボトルネックが生じることにより全体の処理速度が遅くなる。これに対して、本発明によれば、処理の後半において負荷の分割の粒度が細かくなることにより、図20に示した描画記述のような場合にも、バランスよく負荷が配分されて、効率的に並列処理が行なわれる。
【0096】
次に、図10に示したように描画データ格納制御手段30に描画データが格納された状態から、第二の構成例による実施例を説明する。
【0097】
第二の構成例においては、分割描画領域の大きさを、入力データの分布などの入力データに依存した情報、あるいは、処理の進度を示す情報あるいは、それらの両方により決定する。ここでは、例として入力データに依存した情報として、単位描画領域あたりの描画データの個数により分割描画領域の大きさを決定する場合について説明する。描画データの分割描画領域あたりの個数は、描画処理を開始する前に決定可能であるため、描画処理に先だって分割描画領域を決定することも可能であるが、ここでは、処理の進行とともに順に描画領域を決定していく例について説明を行なう。
【0098】
まず、説明の簡単のために、図27にここでの実施例で決定される描画領域の分割についての概念図を前もって示す。ここに示す例においては単位描画領域R1〜R13までは、単位描画領域あたりの描画データの個数が10を越えたところで分割描画領域を区切り、単位描画領域R14〜R18では単位描画領域あたりの描画データの個数の累算値が4を越えたところで分割描画領域を区切るという基準が分割基準管理手段70に格納されているものとし、この結果として、処理が進むにつれて図27の下側に示した分割描画領域BS1〜BS6が決定される。また、同様に説明の簡単のために、まえもって第二の構成による処理の実行例のタイムチャートの概略を図28に示す。処理は、分割描画領域BS1を描画処理手段40aが処理し、分割描画領域BS2を描画処理手段40bが処理し、分割描画領域BS3を描画処理手段40cが処理し、分割描画領域BS4を描画処理手段40aが処理し、分割描画領域BS5を描画処理手段40bが処理し、分割描画領域BS6を描画処理手段40cが処理する順で行なわれる。
【0099】
描画処理の開始時は第一の構成の実行例の説明と同様に、描画処理手段40a、描画処理手段40b、描画処理手段40cの順に分割描画領域の割り当て要求が処理担当範囲割り当て手段60に受け付けられるものとして説明を行なう。
【0100】
描画処理手段40aの割り当て要求を処理担当範囲割り当て手段60が受け取ると、処理担当範囲割り当て手段60は、未処理位置保持手段64に保持されている単位描画領域R1の位置から順に分割描画領域の範囲を広げて行く。ここで、説明の簡単のため、各単位描画領域ごとの描画データの個数は、描画処理に先だって描画データ格納制御手段30内で上記の方法で進入テーブルと退出テーブルを一度走査して各単位描画領域ごとに生成されているものとして説明を行なうが、この各単位描画領域ごとの情報等も、描画処理と同期して生成されてもよい。また、以降の説明の簡単のため、単位描画領域ごとの描画データの個数を単に「データ個数」と呼び、分割描画領域内での「データ個数」の累算値を「データ個数累算値」と呼ぶ。処理担当範囲割り当て手段60はまず、描画データ格納制御手段30に対して単位描画領域R1の「データ個数」を要求し、値2を得る。そして、分割基準管理手段70に単位描画領域R1での分割基準の値を問い合わせると、基準値10を得る。そして、単位描画領域R2,R3,R4,R5の順にこの描画データ格納制御手段30と分割基準管理手段70への問い合わせを繰り返しながら分割描画領域の大きさを広げて行く。単位描画領域R5のところで、ちょうど「データ個数累算値」が分割の基準値10になるため、ここで分割描画領域BS1を決定し、描画処理手段40aに通知し、未処理位置保持手段64に単位描画領域R6の位置を格納する。描画処理手段40aは分割描画領域BS1を割り当てられると上記の第一の構成における描画処理手段の動作の説明と同様の処理を行なう。ここで描画処理手段40aにより描画データ格納制御手段30から読み込まれる描画データはD1,D2,D3,D7となる。
【0101】
次に、処理担当範囲割り当て手段60は描画処理手段40bからの要求を受け付ける。未処理位置保持手段64に格納されている単位描画領域R6の位置から順に描画データ格納制御手段30に「データ個数」を問い合わせ、分割基準管理手段70に分割の基準値を問い合わせることを繰り返して分割描画領域BS2を決定する。ここでも分割の基準値が10のままで、単位描画領域R6,R7,R8,R9まで広げたところで「データ個数累算値」が11となり、分割描画領域BS2はR6〜R9の領域に決定される。分割描画領域BS2は描画処理手段40bに通知され、未処理位置保持手段64には単位描画領域R10の位置が格納される。
【0102】
描画処理手段40bが分割描画領域BS2を割り当てられた時の処理は第一の構成の実行例で説明したものと同様なので説明を省略するが、ここで描画処理手段40bに読み込まれる描画データは、D1,D3,D4,D7である。
【0103】
次に、処理担当範囲割り当て手段60は描画処理手段40cからの要求を受け付ける。未処理位置保持手段64に格納されている単位描画領域R10の位置から順に描画データ格納制御手段30に「データ個数」を問い合わせ、分割基準管理手段70に分割の基準値を問い合わせることを繰り返して分割描画領域BS3を決定する。ここでも分割の基準値が10のままで、単位描画領域R10,R11,R12,R13まで広げたところで「データ個数累算値」が12となり、分割描画領域BS3はR10〜R13の領域に決定され、描画処理手段40cに通知され、未処理位置保持手段64には単位描画領域R14の位置が格納される。
【0104】
描画処理手段40cが分割描画領域BS3を割り当てられた時の処理は第一の構成の実行例で説明したものと同様なので説明を省略するが、ここで描画処理手段40cに読み込まれる描画データは、D1,D5,D7,D8である。
【0105】
次に、処理担当範囲割り当て手段60は分割描画領域BS1の処理が終了した描画処理手段40aからの要求を受け付ける。未処理位置保持手段64に格納されている単位描画領域R14の位置から順に描画データ格納制御手段30に「データ個数」を問い合わせ、分割基準管理手段70に分割の基準値を問い合わせることを繰り返して分割描画領域BS4を決定する。ここでは、単位描画領域R14の「データ個数」は4であり、分割基準管理手段70に問い合わせた単位描画領域R14の位置での分割の基準値は4である。このため、分割描画領域BS4は単位描画領域R14だけの領域で決定され、描画処理手段40aに通知され、未処理位置保持手段64には単位描画領域R15の位置が格納される。
【0106】
描画処理手段40aが最初の処理が終って再度分割描画領域BS4を割り当てられた時の処理は第一の構成の実行例で説明したものと同様なので説明を省略するが、ここで、描画処理手段40aの描画データ保持手段43からは描画データD2,D3が削除されD1が残され、新たにD6,D7,D8が読み込まれる。
【0107】
次に、処理担当範囲割り当て手段60は分割描画領域BS2の処理が終了した描画処理手段40bからの要求を受け付ける。未処理位置保持手段64に格納されている単位描画領域R15の位置から順に描画データ格納制御手段30に「データ個数」を問い合わせ、分割基準管理手段70に分割の基準値を問い合わせることを繰り返して分割描画領域BS5を決定する。ここでは、単位描画領域R15の「データ個数」は4であり、分割基準管理手段70に問い合わせた単位描画領域R15の位置での分割の基準値は4である。このため、分割描画領域BS5は単位描画領域R15だけの領域で決定され、描画処理手段40bに通知され、未処理位置保持手段64には単位描画領域R16の位置が格納される。
【0108】
描画処理手段40bが最初の処理が終って再度分割描画領域BS5を割り当てられた時の処理は上記と同様なので説明を省略するが、ここで、描画処理手段40bの描画データ保持手段43からは描画データD3,D4が削除されD1が残され、新たにD6,D7,D8が読み込まれる。
【0109】
次に、処理担当範囲割り当て手段60は分割描画領域BS3の処理が終了した描画処理手段40cからの要求を受け付ける。未処理位置保持手段64に格納されている単位描画領域R16の位置から順に描画データ格納制御手段30に「データ個数」を問い合わせ、分割基準管理手段70に分割の基準値を問い合わせることを繰り返して分割描画領域BS6を決定する。ここでは、単位描画領域R16の「データ個数」は2であり、分割基準管理手段70に問い合わせた単位描画領域R16の位置での分割の基準値は4である。そして、順に単位描画領域R17,R18に分割描画領域が広げられR18以降には単位描画領域が無いため、分割描画領域BS6は単位描画領域R16,R17,R18の領域で決定され、描画処理手段40cに通知され、未処理位置保持手段64には未処理の領域が無いことを示す情報が格納される。
【0110】
描画処理手段40cが最初の処理が終って再度分割描画領域BS6を割り当てられた時の処理は上記と同様なので説明を省略するが、ここで、描画処理手段40cの描画データ保持手段43からは描画データD5,D7,D8が削除されD1が残され、新たにD6が読み込まれる。
【0111】
以上、説明したように、本発明の描画処理装置は、描画処理の負荷を描画処理装置の数以上に分割し、さらに、処理の後半で割り当てられる描画処理の負荷が、処理の前半で割り当てられる描画処理の負荷よりも小さくなるように分割して並列描画処理を行なう構成とした。これにより、描画対象となるページイメージに部分的な負荷の偏りがあった場合、特に、処理の終盤に負荷の重い領域があった場合にも、描画処理の高速化を可能とし、また、処理の前半においては負荷の分割の粒度が大きくできるために処理の割り当ての切替えの回数を少なくすることができ資源へのアクセス競合によるオーバヘッドも削減することが可能になる。
【0112】
また、実行時に他のプロセスによる影響などにより、特定の部分処理を担当している処理手段の処理が一時的に遅れた場合にも、描画処理の高速化を可能とする。
【0113】
なお、処理担当範囲割り当て手段60は、分割描画領域の大きさを描画処理手段40a〜40nからの問い合わせの時点で決定しても、問い合わせ時点より前、例えば極端な場合には、描画処理を開始する前にまとめて全ての分割描画領域の大きさを分割基準管理手段70を参照して決定しておいてから、描画処理を開始してもよい。
【0114】
上記の例においては読み込み時に描画データのY座標の最大値と最小値を検査して各描画処理手段に読み込む例について説明したが、各描画データが各分割描画領域に入っているかどうかの検査の一部を省略して読み込み、各描画処理手段で行なうことも可能である。
【0115】
【発明の効果】
以上説明したように、本発明の描画処理装置の構成によれば、描画データの複数の分割基準値を持つことにより、描画処理装置中の複数の処理手段の各々が担当する処理範囲を動的に変更し、全体の処理時間の短縮を効果的に達成することができる。
【0116】
特に、処理の終盤において描画処理の分割の粒度を小さくなるように分割描画領域の大きさを決定し、各描画処理手段に割り当てる描画データをより少なくなるように構成したので、処理の終盤に割り当てられる描画領域に描画オブジェクトが偏って存在する場合においても、処理が特定の処理手段に偏ることを防止でき、高速な描画処理を行なうことが可能になる。
【図面の簡単な説明】
【図1】 本発明の描画処理装置の一実施例の構成を示す図である。
【図2】 本発明の描画処理装置の他の実施例の構成を示す図である。
【図3】 本発明の描画処理装置が適用されるシステムの例を示すブロック図である。
【図4】 本発明の描画処理装置を有するシステム全体の動作の例を示すフローチャートである。
【図5】 本発明の描画処理装置を有するシステム全体の1ページ分の動作の例を示すフローチャートである。
【図6】 本発明の描画処理装置の描画データ生成手段処理の流れを示すフローチャートである。
【図7】 描画データ生成手段で生成される描画データのデータ構造の一例を示す図である。
【図8】 本発明の描画処理装置の描画データ格納制御手段の一実施例の構成を示す図である。
【図9】 図8に示す描画データ格納制御手段の処理の流れを示すフローチャートである。
【図10】 本発明の描画処理装置の描画データ格納制御手段の一実施例の構成を示す図である。
【図11】 図10に示す描画データ格納制御手段における処理の流れを示すフローチャートである。
【図12】 描画データ格納制御手段から描画処理手段に描画データを送出する際の処理の流れを示すフローチャートである。
【図13】 本発明の描画処理装置の処理担当範囲割り当て手段に対する描画データ格納制御手段の処理の流れを示すフローチャートである。
【図14】 処理担当範囲割り当て手段の構成を示す図である。
【図15】 処理担当範囲割り当て手段の処理の流れを示したフローチャートである。
【図16】 処理担当範囲割り当て手段の構成を示す図である。
【図17】 処理担当範囲割り当て手段の構成における処理の流れを示したフローチャートである。
【図18】 本発明の描画処理装置の描画処理手段の処理の構成を示した図である。
【図19】 描画処理手段の処理の流れを示した図である。
【図20】 描画記述の例を示す図である。
【図21】 描画データの例を示す図である。
【図22】 本発明の描画処理装置における描画データの単位描画領域の例を示す図である。
【図23】 本発明の描画処理装置における描画データの格納状態の一実施例を示す図である。
【図24】 本発明の描画処理装置における描画データの格納状態の一実施例を示す図である。
【図25】 本発明の描画処理装置における分割描画領域の一実施例を示す図である。
【図26】 本発明の描画処理装置における一実施例のタイムチャートを示す図である。
【図27】 本発明の描画処理装置における分割描画領域の一実施例を示す図である。
【図28】 本発明の描画処理装置における一実施例のタイムチャートを示す図である。
【図29】 描画処理の結果の概念図を示す図である。
【図30】 描画領域を均等に分割した場合の分割描画領域を示す図である。
【図31】 描画領域を均等に分割した場合の実行例のタイムチャートを示す図である。
【符号の説明】
10 ページ記述言語
20 描画データ生成手段
30 描画データ格納制御手段
40 描画処理手段
50 処理結果格納制御手段
60 処理担当範囲割り当て手段
70 分割基準管理手段
200 出力装置
300 ネットワークインタフェース
400 ネットワーク
100 描画処理装置
21 描画データ
22 データ構造
61 分割描画領域
31 描画データ格納用インタフェース
32 描画データ存在範囲抽出手段
33 描画データ存在範囲集計手段
34 描画データ存在数通知用インタフェース
35 描画データ登録手段
36 描画データ送出用インタフェース
61 排他的インタフェース
62 分割描画領域決定手段
63 描画範囲判定手段
64 未処理位置保持手段
65 描画データ数集計手段
66 描画データ数問い合わせ用インタフェース
67 基準値問い合わせ用インタフェース
41 処理済描画位置保持手段
42 担当描画範囲保持手段
43 描画データ保持手段
44 描画データ判定・破棄手段
45 描画機構
46 描画処理バッファ
11 描画サンプル
12 入力描画記述データ
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a drawing processing apparatus, and more particularly to a drawing processing apparatus that performs drawing processing using a page description language as an input.
[0002]
[Prior art]
Currently, a page printer performs printing by inputting PDL (page description language) such as Interpress (registered trademark of Xerox Corporation in the United States) and PostsScript (trademark of Adobe Systems Corporation in the United States).
[0003]
When printing is performed using such PDL as input, it is necessary to perform an imaging process for converting the data in the PDL format into data in a format suitable for the raster output device. However, in general, the time required for imaging processing is very long, and this is a problem particularly in a system that outputs to a high-speed page printer.
[0004]
For example, although some color high-speed page printers have an output capacity of 40 sheets per minute or more, the time required for the imaging process takes 10 seconds to several minutes. I couldn't use it enough. Therefore, in order to perform imaging processing at high speed, it is necessary to perform parallel drawing processing.
[0005]
In the conventional parallel drawing processing method, PDL data to be printed is divided into pages and parallel processing is performed in units of pages, or drawing objects described in the PDL are divided into predetermined divided areas. Some of them perform parallel drawing, etc., but these do not achieve the expected performance due to the fact that the drawing processing load between the pages that are the units for parallel processing and between the divided areas is not uniform. It was.
[0006]
On the other hand, in the drawing processing apparatus proposed in Japanese Patent Application No. 08-212258, the processing load of each parallel drawing processing unit is made uniform and the parallel drawing regardless of the drawing load unevenness in the page. Even when processing of some processing devices of the processing unit is delayed due to some disturbance, it is possible to remedy.
[0007]
[Problems to be solved by the invention]
However, even in the drawing processing apparatus disclosed in Japanese Patent Application No. 08-212258, when the load is more biased than expected in the divided drawing area assigned at the end of the drawing areas assigned in order at the time of execution. However, there is a problem that the processing of the divided drawing area becomes a bottleneck and the effect of parallel processing may not be sufficiently improved.
[0008]
The present invention has been made in view of the above points, and in a parallel drawing processing apparatus in which divided drawing areas in charge of a plurality of drawing processing units are dynamically determined at the time of execution of a process, the drawing area of a drawing object It is an object of the present invention to provide a drawing processing apparatus that performs stable and faster parallel drawing processing regardless of the above distribution.
[0009]
[Means for Solving the Problems]
  In the present invention, in order to solve the above-described problem, in a drawing processing apparatus that performs drawing processing using a page description language as an input, drawing data generating means for receiving drawing commands and generating drawing data constituting internal data of a drawing figure; Drawing data storage control means for controlling the output to the drawing data storage and drawing processing means, a plurality of drawing processing means for inputting drawing data from the drawing data storage control means and executing drawing processing, the plurality A division reference management means for holding a reference value as a reference for dividing the drawing area for determining a processing unit in the drawing processing means, and a drawing processing means for dividing the drawing area based on the reference value of the division reference management means. In response to each request, a processing range assignment unit that allocates the divided drawing area to each drawing processing unit, and a plurality of drawing processing units A processing result storage unit that stores a plurality of processing results that are input, and an output unit that outputs the processing results stored in the processing result storage unit. The division criterion management unit has a plurality of different reference values. ,pluralProcess of drawing processing meansoverallOne reference value selected from the plurality of reference values selected according to the degree of progress is output to the processing charge range assignment means, and the processing charge range assignment means divides the drawing area based on the selected reference value. The divided drawing area is assigned to each of a plurality of drawing processing means.
[0010]
The division reference management means in the drawing processing apparatus of the present invention receives the position coordinate value in the sub-scanning direction of the divided drawing area assigned to the drawing processing means as data indicating the progress of the drawing data processing in the drawing processing means. In addition, one reference value is selected from a plurality of reference values based on the reception position coordinate value.
[0011]
Further, the division criterion management means in the drawing processing apparatus of the present invention provides the area of the drawing area assigned to the drawing processing means as the data indicating the progress of the drawing data processing in the drawing processing means and the total area required for processing, for example, page It is characterized by having a configuration for receiving a value indicating a ratio with the per unit area and selecting one reference value from a plurality of reference values based on the received value.
[0012]
Further, each of the divided drawing areas allocated to the plurality of drawing processing means based on each of the plurality of reference values possessed by the division reference managing means in the drawing processing apparatus of the present invention is a minimum division unit in the sub-scanning direction of the drawing area. It is an integral multiple of a certain unit drawing area (Rn).
[0013]
The division reference management means in the drawing processing apparatus of the present invention selects the reference value so as to reduce the size of the drawing area assigned to the drawing processing means as the drawing data processing in the drawing processing means proceeds. And
[0014]
Further, the division reference management means in the drawing processing apparatus of the present invention selects the reference value so as to reduce the number of unit drawing areas of the divided drawing areas assigned to the drawing processing means as the drawing data processing in the drawing processing means proceeds. It is characterized by that.
[0015]
Further, the division criterion management means in the drawing processing apparatus of the present invention reduces the total number of drawing data included in each of one or more unit drawing areas allocated to the drawing processing means as the drawing data processing in the drawing processing means progresses. And selecting a reference value.
[0016]
Further, the processing range assignment means in the drawing processing apparatus of the present invention is characterized in that the drawing area is assigned in response to processing assignment requests from a plurality of drawing processing means.
[0017]
In addition, the processing charge range allocating unit in the drawing processing apparatus of the present invention relates to the drawing processing by assigning the size of the divided drawing area to be assigned to the plurality of drawing processing apparatuses based on the plurality of reference values of the dividing reference managing unit. It has the structure which determines collectively about data.
[0018]
Further, the processing charge range allocating means in the drawing processing apparatus of the present invention receives the information related to the drawing data from the drawing data storage control means when allocating the processing to the plurality of processing means, and based on the information It is characterized in that the allocation of the drawing area is executed.
[0019]
  Further, the processing charge range allocating means in the drawing processing apparatus of the present invention has an exclusive interface for exclusively executing drawing area requests from a plurality of drawing processing apparatuses.
  Further, according to a second aspect of the present invention, in a drawing processing method for interpreting a drawing command and executing a drawing process, a drawing data generation step for receiving a drawing command and generating drawing data constituting internal data of a drawing figure; A drawing data storage control step for storing the drawing data and controlling output to the drawing processing means; and a plurality of drawing processing means for inputting drawing data output based on the control of the drawing data storage control step. The overall progress of the processing in the plurality of drawing processing means from a drawing processing step for executing drawing processing and a plurality of different reference values serving as division criteria of the drawing area for determining processing units in the plurality of drawing processing means. A division criterion management step for selecting one criterion value according to the degree and outputting the selected criterion value to the processing range assignment means , Dividing the drawing area based on the reference value selected in the division reference management step, and executing a process of assigning the divided drawing area to each drawing processing means in response to a request from each drawing processing means. A processing range assignment step, a processing result storage step for storing a plurality of processing results output from the plurality of drawing processing means in a processing result storage means, and output of the processing results stored in the processing result storage means And an output step.
[0020]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below with reference to the drawings. FIG. 1 is a principle diagram of a drawing processing apparatus of the present invention. The drawing data generation means 20 interprets and expands a drawing description that is a page description language 10 input from an input means (not shown), generates drawing data for drawing an image described in the drawing description, This is transmitted to the drawing data storage control means 30. The drawing data storage control unit 30 transmits drawing data to the plurality of drawing processing units 40a to 40n.
[0021]
The division criterion management unit 70 receives information such as the position coordinates of the drawing area for which allocation is being determined, the ratio of the allocated area to the entire drawing area, and the processing progress information from the processing range assignment unit 60. Using the function formula or table stored therein, the division reference value of the drawing area corresponding to the received information is obtained and transmitted to the processing area allocation means 60.
[0022]
The processing charge range allocating unit 60 refers to the division criterion management unit 70 and divides the drawing area into two or more sizes to define a plurality of divided drawing areas, and the plurality of drawing processing units 40a to 40n. And assign them in order of request.
[0023]
The drawing processing units 40 a to 40 n communicate with the processing assigned range assignment unit 60, receive the designation of the divided drawing area in charge, and draw drawing data necessary for the processing of the designated divided drawing area from the drawing data storage control unit 30. Read and perform drawing processing.
[0024]
Then, the processing result storage control means 50 temporarily stores the results processed by the drawing processing means 40 a to 40 n and transmits the results to the output device 200.
[0025]
Each of these means operates under the control of control means (not shown) such as initialization, processing start, end, and synchronization.
[0026]
Here, the division reference management means 70 may manage the reference value for the progress of processing in a table or table format, or may hold it in the form of a function for the progress of processing. Here, it is only necessary to realize that the reference value can be changed in the direction of decreasing the size of the divided drawing area continuously or step by step as the processing progresses.
[0027]
FIG. 2 is a block diagram showing another embodiment of the image processing apparatus of the present invention. In FIG. 2, the drawing data storage control means 30 and the processing charge range assignment means 60 are connected by a communication path. Through this communication path, the drawing data storage control unit 30 transmits the drawing data to the plurality of drawing processing units 40a to 40n, and in addition, the drawing data storage control unit 30 stores the drawing data existing range stored in the processing charge range allocation unit 60. And the like are transmitted according to the request of the processing range assignment means 60. The processing charge range allocation unit 60 communicates with the drawing data storage control unit 30 when determining the divided drawing area, obtains information about the drawing data, and uses it when determining the divided drawing area.
[0028]
FIG. 3 is a conceptual diagram of an example of a system to which the present invention is applied. In this system, the drawing processing apparatus 100 is connected via a network interface 300 connected to the network 400. Then, an output device 200 that outputs a processing result from the drawing processing device 100 is connected.
[0029]
As an operation of the system, drawing output data is sent from a client computer (not shown) via a network using various media such as an Ethernet cable, a telephone line, and radio. The drawing output data is received and processed by the drawing processing apparatus 100 via an interface device such as the network interface 300. The processed data is transferred to the output device 200 to reproduce the image on a medium such as a memory device used for displaying paper, film, or a raster image.
[0030]
FIG. 4 is a flowchart showing the overall flow of the drawing processing apparatus. When the drawing processing apparatus is activated, initialization at the time of activation is first performed (step S401). At this time, initialization of the control means (not shown) and initialization of the memory management mechanism (not shown) are performed, and the division criterion management means 70 and the like may be initialized at this stage. When the initialization at the start-up is completed, the drawing processing apparatus 100 enters a job waiting state in which drawing drawing input is waited for (step S402). When a job is received and a drawing description is input, initialization at the start of the job is performed (step S403). Here, some of the components of the drawing processing apparatus 100 may be initialized. In particular, the settings that change for each job are initialized. For example, initialization by setting described in input data can be given as an example. In the present invention, for example, when the drawing area division reference is changed for each job, the division reference management means 70 is set at this stage. When the initialization at the start of the job is completed, drawing processing is performed for each page, and when the drawing processing for all pages of the job or all the specified pages is completed, job end processing is performed (steps S404, 405, and 406). ). After the job end processing, it is determined whether or not another job is to be processed, and if no other job is to be processed, the end processing is performed after the end processing such as releasing the acquired memory area is performed (step). , S407, 408).
[0031]
Hereinafter, for the sake of simplicity, the description will be made on the drawing process for one page. FIG. 5 is a diagram showing an outline of the processing flow for one page.
[0032]
When the drawing process is started, initialization is performed in each means (step S501). At this time, the drawing data storage control means 30 initializes the storage area, the processing result storage control means 50 initializes the storage area for storing the processing results, and the drawing processing means 40a to 40n The work area used at the time of the drawing process is initialized, and further, the processing area assignment means 60 executes initialization of processing unit settings, processed positions, and the like. At this time, if a setting for performing special processing for each page is specified through, for example, the input page description language 10, the setting is performed at the time of initialization. If it is desired to change the drawing area division criterion, the setting of the division criterion management means 70 is changed at this stage.
[0033]
When the initialization is completed, the drawing data generation means 20 is instructed to read the drawing description and generate one page of drawing data. When drawing data for one page is generated (step S502) and stored in the drawing data storage control means 30, the control means not shown in FIGS. 1 and 2 includes a plurality of drawing processing means 40a to 40n. Is notified of the start of processing. Thereafter, processing by the drawing processing means is executed (step S503). The control means knows through the notification from the drawing processing means 40a to 40n that the processing of the plurality of drawing processing means 40a to 40n has been completed. Alternatively, the processing charge range assignment unit 60 notifies the drawing processing units 40a to 40n that there is no unprocessed drawing area.
Alternatively, the end of the processing can be known by a notification from the processing result storage control means 50 that the result of the entire drawing area has been stored. Upon completion of this process, the data in the process result storage control means 50 is output as a result of the drawing process to the output device 200 (step, S504). In the end process (step S505), the used memory is released.
[0034]
Next, each means of the drawing processing apparatus will be described in detail. FIG. 6 is a flowchart showing the processing flow of the drawing data generation means 20. When the drawing data generation means 20 is instructed to start processing, it reads the drawing description data which is a page description language, and reads and interprets the drawing description data while the drawing description data constituting one page remains. The drawing data is generated (steps S601 and S602), and the generated drawing data is transmitted to the drawing data storage control means 30 (step S603) repeatedly.
[0035]
FIG. 7 shows an example of the data structure of the drawing data generated by the drawing data generation means 20 used in the following description. FIG. 7 shows drawing data 21 (FIG. 7, the lower diagram) and its data structure 22 (FIG. 7, the upper table) that represent the drawing area by a trapezoidal expression having two sides parallel to the scanning line direction. Then, the Y coordinate is taken in the sub-scanning line direction and the X coordinate is taken in the scanning line direction, and the position on the drawing area is expressed in the XY coordinate system. This method of coordinate system is also used in the following explanation.
[0036]
In addition to the values (YMIN, YMAX, X1, X2, DX1, DX2) relating to the drawing area, the data structure 22 includes a fill attribute value (ATTR) such as a color and a fill priority value (PRIO) that controls the order of overpainting. ) Etc. are stored. There are various representations of the filled area by the trapezoid data, but an example is shown here. The maximum value YMAX and minimum value YMIN of the Y coordinate values shown in the figure, the X coordinate value X1 at the position of the minimum value of the Y coordinate value for the left side, and the increment of the X coordinate value when the Y coordinate value increases by a unit amount At least the trapezoidal area can be defined by the value DX1, the X coordinate value X2 at the position of the minimum value of the Y coordinate value, and the increment value DX2 of the X coordinate value when the Y coordinate value increases by a unit amount.
[0037]
In the present embodiment, for the sake of simplicity of description, drawing data that represents a filled area by a trapezoidal expression is used as drawing data. However, the drawing data has a trapezoid having two sides parallel to the main scanning line direction. It need not be an expression. For example, polygon representation by point sequence or vector representation, line segment representation with or without curves, vector representation consisting only of straight line segments, representation by line segment sequence pairs that face each other, and the drawing area is triangular What is an expression format that can specify the coordinate value and size on the coordinate system of the drawing area, such as a solid area, a rectangle, a trapezoid, etc. Even if it uses, it is the range of the drawing data which this invention assumes.
[0038]
Next, the drawing data storage control means 30 will be described. FIG. 8 is a conceptual diagram showing an example of the configuration of the drawing data storage control means 30.
[0039]
The drawing data storage interface 31 receives the drawing data from the drawing data generation means 20. The drawing data registration unit 35 registers the drawing data so that drawing data can be extracted based on the maximum and minimum coordinate values of the Y coordinate value of the drawing data directly or indirectly. For example, a drawing data table corresponding to the unit drawing area in the Y direction of the drawing area is prepared, and each drawing data is drawn in a place corresponding to the unit drawing area including the minimum value of the coordinate values in the Y direction. This can be realized by registering data. The drawing data sending interface 36 communicates with the drawing processing means 40.
[0040]
FIG. 9 is a diagram showing a flow of processing in the stage of storing the drawing data having the configuration shown in FIG. The drawing data storage control means 30 registers drawing data in the drawing data registration means 35 while drawing data for one page is sent (step S901). These operations are performed until input of all the drawing data generated by the drawing data generation means 20 is completed (step S902).
[0041]
FIG. 10 is a diagram showing another configuration example of the drawing data storage control means 30. In FIG. The drawing data storage control means 30 is configured when the drawing processing apparatus 100 has a communication path between the drawing data storage control means 30 and the processing charge range assignment means 60 as shown in FIG. 3 is an example of a configuration of a drawing data storage control unit 30.
[0042]
The drawing data storage interface 31 receives the drawing data from the drawing data generation means 20. The drawing data existence range extracting unit 32 calculates the sub-scanning line direction from each received drawing data (for the sake of simplicity, the sub-scanning line direction is the Y direction, and the numerical value indicating the position of the sub-scanning line direction is the Y coordinate value, On the other hand, the existence range with respect to the direction of the scanning line is called the X direction, and the numerical value indicating the position in the scanning line direction is called the X coordinate value.
[0043]
The drawing data existence range counting means 33 adds up the detected existence ranges in the Y direction. For example, the number of drawing data existing in each unit drawing area can be counted by sequentially processing in the Y direction. For example, when each unit drawing area is processed in order from the smaller Y coordinate value side to the larger side, the previous one is calculated from the number of drawing data existing before the processing of the unit drawing area being processed. The number of drawing data having the maximum Y coordinate value is subtracted from the unit drawing area to be processed in step 1, and the number of drawing data registered as having the minimum value in the unit drawing area being processed is added in order. Obtainable. The drawing data existence number notification interface 34 communicates with the processing range assignment unit 60. The drawing data registering unit 35 registers the drawing data so that the drawing data can be extracted directly or indirectly based on at least one coordinate value of the maximum and minimum Y coordinate values of the drawing data. The drawing data sending interface 36 communicates with the drawing processing means 40a to 40n.
[0044]
FIG. 11 is a diagram showing a flow of processing in the stage of storing the drawing data having the configuration shown in FIG. While the drawing data for one page is being sent, the drawing data storage control means 30 applies the Y of the drawing data to the drawing data received by the drawing data existence range extraction means 32 for the drawing data received. The direction existence range is detected (step S111), and both ends thereof are registered in the drawing data existence range totaling unit 33 (step S112). For example, the drawing data existence range extracting unit 32 extracts the maximum value and the minimum value of the coordinate values in the Y direction of the drawing data. Then, a set of counters for counting the number corresponding to the maximum value and the number corresponding to the minimum value increments the corresponding counter in the drawing data existence range counting means 33 prepared for each unit Y coordinate. (Hereafter, when referring to the counter table as exemplified here, the counter on the minimum value side is referred to as an entry counter, and the counter on the maximum value side is referred to as an exit counter.)
[0045]
Next, the drawing data is registered in the drawing data registration means 35 (step S113). For example, it can be realized by preparing a drawing data table corresponding to a unit area in the Y direction of the drawing area and registering the drawing data in a place corresponding to, for example, the minimum value of the coordinate values in the Y direction. These operations are performed for all drawing data generated by the drawing data generation means 20 (step S114).
[0046]
In the embodiment described here, a data structure in a table format is used for the drawing data existence range totaling means 33, the drawing data registration means 35, etc. in the drawing data storage control means 30, but this is a simple explanation. Therefore, other data structures may be used. Similar functions can be obtained by using various other data structures such as a list structure, a tree structure, and a hash mechanism.
[0047]
The drawing data storage control means 30 receives the request from the drawing processing means 40a to 40n in the stage where the drawing processing is being performed, other than the time of storing the drawing data, and extracts the drawing data requested for the data. Send it out. At this time, the coordinate values in the Y direction or the range of coordinate values in the Y direction are designated from the drawing processing means 40a to 40n. The drawing data storage control means 30 draws the drawing data corresponding to the designated coordinate value or range one by one or several at a time, or all the drawing data corresponding to the designated classification. It transmits to the processing means 40. Of the processes for transmitting the drawing data described above, the outline of returning the drawing data registered in the requested range in a simple explanation will be described with reference to FIG.
[0048]
The drawing data storage control means 30 repeats transferring drawing data in response to individual requests from the plurality of drawing processing means 40a to 40n until the processing for one page is completed. Specifically, when communication is received (step, S121), if the communication is not a notification of completion of processing of one page but a drawing data request command (step, S122), data can be transferred to the request source. Information, i.e., an ID or address that uniquely indicates the request source, an address in the local storage device in the drawing processing unit 40 of the request source, or an address of a storage area that can be referred to by the drawing processing unit 40 of the request source Is temporarily stored in a storage unit (not shown) in the drawing data transmission interface 36 (step S123). Then, the instruction of the range for which the drawing data is requested is read (step S124), and the drawing data registered in the requested range is collected (step S125). Then, the collected drawing data is transferred based on the information indicating the request source stored temporarily (step S126). This processing flow is common to both the configuration of FIG. 8 and the configuration of FIG.
[0049]
When drawing data is transferred from the drawing data storage control means 30 when transferring the drawing data or collecting the drawing data, the drawing data itself is destroyed so as not to remain in the drawing data storage control means 30. Alternatively, the drawing data stored in the drawing data storage control means 30 may be collected and stored as a reference data or a copy of the drawing data while being saved. In addition, when the drawing data storage control means 30 is configured on a shared memory between the drawing processing means 40a to 40n, the drawing data storage control means 30 does not perform an active function. In any case, the drawing processing means 40a to 40n may simply provide a data structure that can access the drawing data registered in a necessary range. At this time, each drawing processing means 40a to 40n can read drawing data without permission.
[0050]
When the drawing data storage control unit 30 has the configuration shown in FIG. 10, there is a process for communicating with the processing range assignment unit 60.
[0051]
The processing charge range allocating unit 60 divides the drawing area and assigns processing responsibilities to the drawing processing units 40a to 40n. When determining the division of the drawing area, in addition to dividing the drawing area based on only the position coordinates, the division is performed by reflecting the characteristics of the input data such as the number of objects in the divided drawing area. You can also. As described above, in the case where the present invention is applied to the case where the drawing area is divided based on a position other than the position coordinate value, the drawing area division is determined using the distribution of the drawing data in the input data. The case will be described. Then, the processing charge range assignment means 60 communicates with the drawing data storage control means 30 in order for the processing charge range assignment means 60 to obtain information relating to the distribution of the drawing data.
[0052]
In the following description, the unit drawing area is the minimum division unit in the Y direction, and the divided drawing area is an area that is assigned to each drawing processing means 40 with its size and position determined by the processing range assignment means 60. For example, the unit drawing area is an elongated area in the X direction for one to several scanning lines, and the divided drawing area is an area having a size of several to several tens of unit drawing areas.
[0053]
When the processing charge range allocating unit 60 determines the divided drawing area, for example, the total number of drawing data existing (intersecting) for each unit drawing area in the divided drawing area for which allocation is determined is determined from the reference value. Considering an example in which a divided drawing area is determined based on whether it is larger or smaller (the processing flow of the processing charge range assignment means 60 will be performed later), the processing charge range assignment means 60 performs drawing data storage control. A unit drawing area is designated to the means 30, and data indicating how many drawing data exist in the unit drawing area is requested.
[0054]
FIG. 13 is a diagram showing the flow of processing for each communication between the processing charge range assignment unit 60 and the drawing data storage control unit 30 for this processing. When the communication is started, first, the requested range of data (simple Y coordinate value range) is received (step S131), and the specified range is sent to the drawing data existence range counting means 33. Make an inquiry. The drawing data existence range totaling means 33 calculates the number of drawing data existing in the range designated at the time of this inquiry, or takes it out from the place previously calculated and stored (step, S132). The data is sent to the processing area allocation means 60 (step, S133).
[0055]
Next, the processing charge range assignment means 60 will be described. FIG. 14 is a diagram showing the configuration of the processing charge range assignment means 60. The exclusive interface 61 receives a request from any one of the drawing processing units 40a to 40n. Then, the information about the divided drawing area determined by the divided drawing area determining unit 62 is notified to the drawing processing unit inquired as a set of the maximum value and the minimum value of the Y coordinate value of the divided drawing area. The divided drawing area is determined by, for example, comparing the width of the divided drawing area with a reference value described later while sequentially expanding the range of the drawing area. The determination of the divided drawing area may be performed in synchronization with the progress of the drawing process, or may be determined prior to the drawing process. The reference value inquiry interface 67 receives information such as the position coordinates being processed, the position of the unit drawing area being processed, and the ratio of the processed area to the entire drawing area from the divided drawing area determining means 62. Then, it communicates with the division reference management means 70 and notifies the division drawing area determination means 62 of the reference value at the time of processing. The drawing range determination unit 63 determines a state in which there is no drawing area to be processed as the drawing process proceeds. The unprocessed position holding means 64 is a holding means for holding the next unprocessed position in the Y direction, that is, a position that has not yet been assigned, and is used for assigning divided drawing areas to the drawing processing means 40a to 40n. Updated to The divided drawing area determination unit 62 refers to the drawing range determination unit 63 and the unprocessed position holding unit 64, and inquires the reference value inquiry interface 67 while sequentially expanding the range of the divided drawing area, and sets the divided drawing area. The determination and the request through the exclusive interface 61 are received, and the drawing processing unit 40 of the request source is notified of the allocation information of the divided drawing area.
[0056]
FIG. 15 is a flowchart showing the processing flow of the processing charge range assignment means 60. (However, this flowchart shows only the flow of processing in the case where the determination of the divided drawing area is performed in synchronization with the progress of the drawing process.) The processing range assignment means 60 can draw the drawing range if necessary at the start of the entire process. In addition to the initialization of the determination unit 63, the divided drawing area determination unit 62, and the division reference management unit, the following processing is performed when there is an inquiry from the drawing processing units 40a to 40n.
[0057]
Requests from the drawing processing means 40a to 40n are restricted in access by the exclusive interface 61, and requests from any one of the drawing processing means 40a to 40n are received simultaneously (step S151). When there is a request for assigning the assigned range, the drawing range determination means 63 is referred to and it is determined whether or not there is an unprocessed drawing area (step S152). If there is no unprocessed drawing area, it notifies the requesting drawing processing means to that effect. If there is still an unprocessed drawing area, the unit drawing areas are examined in order from the position held in the unprocessed position holding means 64. That is, the drawing area under consideration for allocation is gradually expanded (step S153), and the reference value at the position of the unit drawing area under consideration is inquired to the division reference management means 70 to obtain the reference value at the processing position ( Step, S154). This reference value is compared with the width of the divided drawing area under consideration (step S155). If the reference value is not exceeded, the process of further expanding the width of the divided drawing area under consideration is repeated. If the reference value is exceeded, the following processing is performed.
[0058]
If it is confirmed in step 155 that the reference value has been exceeded, it is next determined whether or not there is actually a divided drawing area to be allocated (step S156). If there is not, the fact that there is no divided drawing area to be allocated is sent to the requesting drawing processing means (step S159), and if there is, information on the divided drawing area, for example, the divided drawing area is sent to the requesting drawing processing means. Information such as the coordinate value of the boundary of the drawing area is transmitted (step, S157), and the position held in the unprocessed position holding means 64 is updated to the next unprocessed drawing position (step, S158).
[0059]
FIG. 16 shows an example in which the processing charge range allocating unit 60 uses information other than the position coordinates to divide the drawing area, and the divided drawing based on the total number of drawing data for each unit drawing area in the divided drawing area. It is the figure which showed the structural example in the case of determining an area | region.
[0060]
The exclusive interface 61 receives a request for any one drawing processing means from the plurality of drawing processing means 40a to 40n. Then, the information about the divided drawing area determined by the divided drawing area determining unit 62 is notified to the drawing processing unit inquired as a set of the maximum value and the minimum value of the Y coordinate value of the divided drawing area. The division drawing area is determined by, for example, comparing the total number of drawing data with a reference value to be described later while sequentially expanding the range of the drawing area. The reference value inquiry interface 67 receives information such as the position coordinates being processed, the position of the unit drawing area being processed, and the ratio of the processed area to the entire drawing area from the divided drawing area determining means 62. Then, it communicates with the division reference management means 70 and notifies the division drawing area determination means 62 of the reference value at the time of processing. The drawing range determination unit 63 determines a state in which there is no drawing area to be processed as the drawing process proceeds. The unprocessed position holding unit 64 is a holding unit for holding the next unprocessed position in the Y direction, and is updated when the divided drawing areas are allocated to the drawing processing units 40a to 40n. The drawing data number inquiry interface 66 is an interface for inquiring the drawing data storage control means 30 about the number of drawing data in the unit drawing area under consideration. The drawing data number counting means 65 accumulates the number of drawing data for each unit drawing area obtained through the drawing data number inquiry interface 66 and holds the value. The divided drawing area determination unit 62 refers to the drawing range determination unit 63 and the unprocessed position holding unit 64, and sequentially expands the range of the divided drawing area while sequentially increasing the reference value inquiry interface 67, the drawing data number inquiry interface 66, and the drawing. An inquiry is made to the data count totaling means 65 to determine the divided drawing area, and a request through the exclusive interface 61 is received, and the request for the drawing processing means 40 is notified of the allocation information of the divided drawing area. I do.
[0061]
FIG. 17 is a flowchart showing the flow of processing when the processing charge range allocating means 60 takes the configuration shown in FIG. In addition to being initialized at the start of the entire processing, the processing charge range assignment unit 60 performs the following processing when there is an inquiry from the drawing processing unit 40.
[0062]
Requests from the drawing processing units 40a to 40n are restricted in access by the exclusive interface 61, and requests from any one of the drawing processing units 40a to 40n are simultaneously received from the plurality of drawing processing units 40a to 40n (step S1701). When there is a request for assigning the assigned range, the drawing range determination unit 63 is referred to and it is determined whether there is an unprocessed drawing area (step S1702). If there is no unprocessed drawing area, it notifies the requesting drawing processing means to that effect. If there is still an unprocessed drawing area, the unit drawing areas are examined in order from the position held in the unprocessed position holding means 64. That is, the drawing data storage control means 30 is inquired about the number of drawing data for each unit drawing area (step S1703), and the same as the above in order from the position held in the unprocessed position holding means 64. The number of drawing data for each unit drawing area is accumulated by the processing, and a load estimated value for the unit drawing area and a load estimated value for the distributed drawing area are obtained (steps S1704 and S1705). On the other hand, the reference value at the position of the unit drawing area under consideration is inquired to the division reference management means 70, and the reference value at the processing position is obtained (step S1706). This reference value is compared with the accumulated value of the drawing data for each unit drawing area, and it is determined whether or not the accumulated value exceeds the reference value (step S1707). If the value does not exceed the value, the divided drawing area under consideration is expanded to the next unit drawing area, and the process is continued. Otherwise, the following process is performed.
[0063]
If it is determined in step S1707 that the accumulated value exceeds the reference value, it is next determined whether or not there is actually a divided drawing area to be allocated (step S1708). If there is no drawing area, the fact that there is no drawing area to be distributed is sent to the requesting drawing processing means (step S1711). If there is, the requesting drawing processing means sends information on the divided drawing area, for example, divided drawing. Information such as the boundary coordinate value of the area is transmitted (step, S1709), and the position held in the unprocessed position holding means 64 is updated to the next unprocessed drawing position (step, S1710). At this time, the accumulated value may be initialized, or may be calculated and updated with the reference value.
[0064]
Next, the drawing processing means 40a to 40n will be described. Since the internal configuration of the drawing processing unit is the same, the drawing processing unit 40 will be described.
[0065]
FIG. 18 is a diagram showing the configuration of the drawing processing means 40. The processed drawing position holding means 41 holds the processed drawing position. The assigned drawing range holding unit 42 obtains information about the divided drawing area to be assigned obtained from the processing assigned range assigning unit 60 (for example, information indicating the range on the drawing area by a coordinate value indicating the boundary of the range). Is a holding means for holding the disk, and can be easily realized by a semiconductor memory device, a magnetic disk, or the like.
[0066]
The drawing data holding unit 43 is a holding unit for temporarily holding the drawing data obtained from the drawing data storage control unit 30 and holding drawing data inherited from another drawing area processed earlier. The drawing data holding means 43 can also be realized by various storage means such as a semiconductor memory device.
[0067]
The drawing data determining / discarding unit 44 determines that the drawing data position in the drawing data holding unit 43 is the drawing data in the drawing data holding unit 43 as the drawing position to be processed by the drawing mechanism 45 is updated. Are excluded from the processing target of the drawing mechanism 45 to increase the processing efficiency of the drawing mechanism 45 and reduce the required storage capacity of the drawing data holding means 43. .
[0068]
The drawing mechanism 45 holds the drawing position therein, processes the data in the drawing data holding means 43 while using the drawing processing buffer 46 as a work area, and relates to the raster image data for the divided drawing area in charge. Convert it into data that can be taken. As the format of the processing result data, there can be various formats such as run-length data represented by the range and color in the main scanning line direction, representative of raster image data, and data obtained by compressing these data by a data compression technique. . The drawing mechanism 45 may store the processing result in the processing result storage control unit 50 for each unit drawing area.
Further, after collecting the data to some extent, it may be stored in the processing result storage control means 50. In particular, when the processing result storage control unit 50 is constructed on a shared memory between the drawing processing units 40a to 40n, for example, if a table area in the sub-scanning direction is secured in advance, the drawing processing unit 40a. ˜40n may each register the address of the storage area storing the processing result in the table.
[0069]
FIG. 19 is a flowchart showing the processing flow of the drawing processing means 40. The drawing processing unit 40 is instructed to start an operation (step S1901) by a control unit (not shown) when data in a predetermined range is stored in the drawing data storage control unit 30. At the start of processing, the processed drawing position holding means 41, drawing data holding means 43, and drawing processing buffer 46 are initialized (step S1902). When the initial operation is completed, an inquiry is made to the divided drawing area in charge of processing to the processing charge range allocation means 60 (step S1903). When the divided drawing area in charge of processing is transmitted, this is stored in the assigned drawing range holding means 42, and the drawing processing position is set to a position on one side of the range stored in the assigned drawing range holding means 42 (step S1904). To do.
[0070]
First, the drawing data determination / discard means 44 inspects the drawing data held in the drawing data holding means 43, selects drawing data that no longer affects the drawing position, and discards it (step S1905). Then, the drawing data storage control unit 30 is requested for drawing data using the position stored in the processed drawing position holding unit 41 and data obtained by combining the drawing processing positions (step S1906). For example, when the drawing data storage control unit 30 is realized as a storage area on the shared memory, the processing at this stage is performed from the position where each drawing processing unit 40 is stored in the processed drawing position holding unit. The processing is to read the drawing data registered up to the drawing position.
[0071]
Further, processing (step S1907) is performed from the drawing data held in the drawing data holding unit 43 by the drawing mechanism 45 using the drawing processing buffer 46, and processing result data is created. Since various things which exhibit the function as the drawing mechanism 45 at this stage have been proposed, one corresponding to the type of output result data may be used. Here, the description will be continued on the assumption that the drawing processing buffer 46 is used as a line buffer, and drawing data is overlaid in order of low priority to create raster data for each scanning line in units of scanning lines. Other methods are not specifically excluded. When the drawing position is determined, the line buffer area in the drawing processing buffer 46 is initialized. Then, the data in the drawing data holding means 43 is taken out from the one with the lowest priority order, and run length data expressing the color painting information in the scanning line direction corresponding to the drawing position determined for this is generated, and the line Store the color data in the corresponding location of the buffer. This process is repeated for the drawing data stored in the drawing data holding means 43.
[0072]
When the processing of the drawing position ends (step S1908), the drawing processing means 40 transfers the processing result in the drawing processing buffer 46 to the processing result storage control means 50 (step S1910). When the drawing processing means 40a to 40n are constructed on a parallel computer system having a shared memory, for example, the drawing processing buffer 46 is secured as an area on the shared memory when the drawing position is updated (step S1909). The drawing mechanism 45 is operated. Then, the processing result may be stored simply by recording the value of the address of the area storing the processing result in a location corresponding to the drawing position of the table indicating the drawing position in the processing result storage control means 50.
[0073]
When the drawing mechanism 45 transfers the processing result to the processing result storage control means 50, the drawing position after the processing is recorded in the processed drawing position holding means 41 and then the drawing position is advanced. If the drawing position is within the range of the divided drawing area in charge, the same processing is repeated from the arrangement of the data in the drawing data holding means 43.
[0074]
In the course of processing of the drawing processing means, an exceptional operation is when the processing charge range assignment means 60 tells that there is no unprocessed area to be handled in the drawing area. At this time, the drawing processing means 40 ends the processing and stops.
[0075]
Next, the operation of the drawing processing apparatus according to the present invention will be described using specific drawing samples. FIG. 20 shows a conceptual diagram of input drawing description data (which is expressed in a page description language but not in accordance with the grammar of a specific page description language) and a drawing sample represented by the input drawing description data. . In the following description, drawing processing will be described as an example when the input description data is input. The drawing sample 11 includes three polygons (here, a triangle) and one ellipse. The input drawing description data 12 includes ellipse description data ova and polygon description data polygon. For example, polygon ([148, 0, 12, 256, 148, 256], 4) is (X1, Y1) = (148, 0), (X2, Y2) = (12, 256), (X3, Y3 ) = (148, 256), indicating that the hatch pattern is 4. Others are the same, so the description is omitted.
[0076]
FIG. 21 shows a conceptual diagram of drawing data generated by the drawing data generating means 20 from the input drawing description data shown in FIG. In this example, each drawing object in the drawing description is divided into a format representing a trapezoid (including a triangle) drawing area, converted into the drawing data D1-D8 format, and the drawing data storage control means 30. Sent to.
[0077]
FIG. 22 is a conceptual diagram showing an example of the unit drawing area. Here, the drawing area c is divided into unit drawing areas R1 to R18 in units of scanning lines. When the drawing data D1 to D8 are generated by the drawing data generation means 20, they are transferred to the drawing data storage control means 30. When transferred to the drawing data storage control unit 30, the drawing data D1 to D8 are stored in the drawing data storage control unit 30 after receiving the processing described with reference to FIG.
[0078]
FIG. 23 shows an example of a state in which the drawing data D1 to D8 are stored in the drawing data storage control means 30. The drawing data registration means 35 described with reference to FIG. 8 is composed of a table having an entry for each unit drawing area. Each drawing data D1 to D8 includes the position of the entry corresponding to the minimum Y coordinate value. Stored in association.
[0079]
FIG. 24 shows an example of a state in which drawing data D1 to D8 are stored in the drawing data storage control means 30 when the drawing data storage control means 30 has the configuration shown in FIG. The drawing data registration means 35 described with reference to FIG. 10 is composed of a table having an entry for each unit drawing area. Each drawing data D1 to D8 includes the position of the entry corresponding to the minimum Y coordinate value. Stored in association. The drawing data existence range counting means 33 described with reference to FIG. 10 includes an entry table, an exit table, and a drawing data number counter table. The entry table has a minimum Y coordinate value at the position in each unit drawing area. The number of drawing data having (upper coordinates) is counted, and the withdrawal table includes drawing data having the maximum Y coordinate value (lower coordinates) at that position in each unit drawing area. The number is counted. The drawing data number counter table is a table that holds a numerical value indicating how many drawing data are present in each unit drawing area. This table can be filled by scanning the advance table and the exit table at the time of the drawing process, but for the sake of simplicity of explanation, here, before the drawing processing means 40 starts the drawing process, The explanation will be made on the assumption that the drawing data number counter table is filled by scanning the exit table.
[0080]
In the following description, it is assumed that the drawing process is performed by the three drawing processing units 40a, 40b, and 40c. When drawing data is stored in the drawing data storage control means 30, an activation command is issued to the drawing processing means. The drawing processing means 40a to 40c are activated almost at the same time, but since the access to the processing charge range assignment means 60 is controlled exclusively, they are ordered at this stage.
[0081]
Here, it is assumed that access to the first processing charge range assignment unit 60 is permitted in the order of the drawing processing unit 40a, the drawing processing unit 40b, and the drawing processing unit 40c.
[0082]
First, an execution example in the case of the first configuration will be described. In the first configuration example, the size of the divided drawing area is simply determined by the position coordinates of the divided drawing area or the processing order of the divided drawing area. Here, a case where the size of the divided drawing area is determined using the position coordinates as a key will be described. For the sake of simplicity, the description will be given of the case where the determination of the divided drawing area is performed prior to the drawing process. However, the determination of the divided drawing area is not necessarily performed prior to the drawing process, and may be performed in synchronization with the drawing process. Is possible.
[0083]
FIG. 25 shows a conceptual diagram about the division of the drawing area described here. First, an example of information prepared in the division reference management unit 70 as a reference for dividing the drawing area is shown on the upper side of FIG. In this example, the width of the divided drawing area is set to 1 at the positions from R1 to R12 of the unit drawing area, and the width of the divided drawing area is set to 1 at the positions from 4 to the unit drawing areas R13 to R18. As a result, the divided drawing areas BR1 to BR8 shown in FIG. 25 are determined. (However, the divided drawing areas are assigned in the order of BR1, BR2,..., BR18). )
[0084]
When the drawing processing unit 40a first makes a processing assignment request to the processing charge range assignment unit 60, the processing charge range assignment unit 60 assigns the divided drawing region BR1 to the drawing processing unit 40a.
[0085]
When the drawing processing unit 40a receives the information of the divided drawing area in charge of processing, the drawing processing unit 40a reads the drawing data from the drawing data storage control unit 30 and processes it in order. The drawing data read here and subjected to the drawing process has a minimum value (upper coordinate value) in the Y direction between the unit drawing area R1 and the unit drawing area R4, and the Y direction above the unit drawing area R1. D1, D2, and D3 that do not have the maximum value (lower coordinate value). The drawing processing unit 40a processes these drawing data, creates processing result data corresponding to the unit drawing regions R1 to R4, and registers them in the processing result storage control unit 50.
[0086]
The drawing processing unit 40a again requests the processing assigned range allocation unit 60 to assign a divided drawing area for processing, and continues the processing.
[0087]
When there is an inquiry from the drawing processing means 40b, the processing charge range assignment means 60 determines that the divided drawing area BR2 starting from the unit drawing area R5 held in the unprocessed position holding means 64 described with reference to FIGS. 40b.
[0088]
When the drawing processing unit 40b receives the information of the divided drawing area in charge of processing, the drawing processing unit 40b reads the drawing data from the drawing data storage control unit 30 and processes it in order. Since the processed drawing position holding means 41 described with reference to FIG. 18 remains initialized, the drawing processing unit 40b requests drawing data from the unit drawing region R1, not from the unit drawing region R5, and goes to the unit drawing region R8. D1, D3, D4 as drawing data having a minimum value (upper coordinate value) in the Y direction and a maximum value in the Y direction (lower coordinate value) above the unit drawing region R5. D7 is read and processed.
[0089]
The drawing processing means 40b processes these drawing data, creates processing result data corresponding to the unit drawing area R8 from the unit drawing area R5, and registers it in the processing result storage control means 50. Then, the drawing processing means 40 again requests the processing charge range assignment means 60 to assign the divided drawing area in charge of processing and continues the processing.
[0090]
In the first request from the drawing processing means 40c, the processing range assignment means 60 draws the divided drawing area BR3 starting from the unit drawing area R9 held in the unprocessed position holding means 64 described in FIG. 14 and FIG. Assigned to the processing means 40c.
[0091]
When the drawing processing unit 40c receives the information of the divided drawing region BR3 in charge of processing, the drawing processing unit 40c reads the drawing data from the drawing data storage control unit 30 and processes it in order. Since the processed drawing position holding means 41 described with reference to FIG. 18 remains initialized, the drawing processing unit 40c requests drawing data from the unit drawing region R1, not from the unit drawing region R9, and the unit drawing region R12. D1, D3, D4 as drawing data having a minimum value in the Y direction (upper coordinate value) and no maximum value in the Y direction (lower coordinate value) above the unit drawing region R9. D5 and D7 are read and processed. The drawing processing unit 40c processes these drawing data, creates processing result data corresponding to the unit drawing regions R9 to R12, and registers them in the processing result storage control unit 50.
[0092]
Subsequent processing is assigned to each drawing processing unit in the order in which the processing of the drawing processing units 40a to 40c ends. Here, for simplicity of explanation, FIG. 26 shows an outline of a time chart in this execution example. As shown in FIG. 26, the processing time of the drawing process in each divided drawing area BR1 to BR9 is not uniform due to the amount of drawing data in each divided drawing area and other factors.
[0093]
As shown in FIG. 26, the divided drawing area BR4 to be assigned next is assigned to the drawing processing means 40a that finishes processing first. When the drawing processing unit 40a finishes the processing of the divided drawing region BR1, the drawing processing unit 40a stores the position of the unit drawing region R4 that is the unit drawing region closest to the unprocessed side of the divided drawing region BR1 in the processed drawing position holding unit 41. The processing charge range allocation means 60 is requested to allocate the divided drawing area.
The processing charge range assignment means 60 assigns the divided drawing area BR4 to this request. Here, the divided drawing area is determined prior to the drawing process. However, when the drawing area is determined according to the request in synchronization with the drawing process, the position of the divided drawing area to be assigned is after R13. The reference value that the division reference management means 70 answers to the processing range assignment means 60 is changed from the width 4 of the divided drawing area to the width 1 of the divided drawing area, and the divided drawing area BR4 is changed according to the reference value. Will be decided.
[0094]
When the drawing processing unit 40a is assigned the divided drawing area BR4, the drawing data determining / discarding unit 44 assigns the unit drawing area having the smallest Y coordinate among the unit drawing areas within the divided drawing area BR4. Drawing data having a maximum Y coordinate smaller than the Y coordinate value of the drawing area R13 is selected from the drawing data holding means 43 and discarded. Specifically, the drawing processing unit 40a reads the drawing data D1, D2, and D3 during the processing of the divided drawing region BR1 and holds them in the drawing data holding unit 43. However, these drawing data D2 and D3 are discarded. The drawing data D1 is left in the drawing data holding means 43. Next, after the position of the unit drawing area R4 stored in the processed drawing position holding means 41, the unit drawing area R13 in the most unprocessed direction of the assigned divided drawing area BR4 has the minimum value of the Y coordinate. The drawing data storage control means 30 is requested for drawing data whose maximum value of the Y coordinate is larger than the position of the unit drawing area R13. As a result, D5, D7, and D8 are newly read into the drawing processing means 40a, stored in the drawing data holding means 43, and drawing processing of the divided drawing area BR4 is performed. In the same manner, the drawing processing unit 40b processes the divided drawing region BR5, the drawing processing unit 40c processes the divided drawing region BR6, the drawing processing unit 40a processes the divided drawing region BR7, and the divided drawing region BR8. The drawing processing unit 40a performs the processing of the divided drawing region BR9 in order by the drawing processing unit 40b, and the divided drawing region to be assigned disappears, and the drawing process ends.
[0095]
FIG. 29 shows a conceptual diagram of the processing result data stored in the processing result storage control means 50 as a processing result. FIG. 30 shows divided drawing areas BU1 to BU6 as an example of equally dividing the drawing area for comparison. FIG. 31 shows an outline of a time chart regarding the progress of processing in that case. The drawing description shown in FIG. 20 is based on the drawing object having the larger Y coordinate in the drawing area. Therefore, when the drawing process is performed from the smaller Y coordinate to the larger one as shown in FIG. When the processing is divided into equally divided divided drawing areas, the balance of load distribution is lost as shown in the time chart of FIG. 31, and a bottleneck is generated, resulting in a slow overall processing speed. Become. On the other hand, according to the present invention, since the granularity of load division becomes fine in the latter half of the processing, even in the case of the drawing description shown in FIG. Parallel processing is performed.
[0096]
Next, an embodiment according to the second configuration example will be described from the state in which the drawing data is stored in the drawing data storage control means 30 as shown in FIG.
[0097]
In the second configuration example, the size of the divided drawing area is determined by information depending on input data such as the distribution of input data, information indicating the progress of processing, or both. Here, as an example, a case will be described in which the size of a divided drawing area is determined based on the number of drawing data per unit drawing area as information depending on input data. Since the number of drawing data per divided drawing area can be determined before starting the drawing process, it is also possible to determine the divided drawing area prior to the drawing process. An example of determining the area will be described.
[0098]
First, for the sake of simplicity of explanation, FIG. 27 shows in advance a conceptual diagram regarding the division of the drawing area determined in the embodiment here. In the example shown here, the unit drawing areas R1 to R13 are divided when the number of drawing data per unit drawing area exceeds 10, and the drawing data per unit drawing area is divided in the unit drawing areas R14 to R18. It is assumed that a criterion for dividing the divided drawing area when the cumulative value of the number of images exceeds 4 is stored in the division reference management means 70. As a result, as shown in the lower part of FIG. The drawing areas BS1 to BS6 are determined. Similarly, for simplicity of explanation, FIG. 28 shows an outline of a time chart of an execution example of processing according to the second configuration. The drawing processing unit 40a processes the divided drawing region BS1, the drawing processing unit 40b processes the divided drawing region BS2, the drawing processing unit 40c processes the divided drawing region BS3, and the drawing processing unit 40c. The drawing processing unit 40b processes the divided drawing area BS5, and the drawing processing unit 40b processes the divided drawing area BS6.
[0099]
At the start of the drawing process, as in the description of the execution example of the first configuration, the divided drawing area allocation request is received by the processing area allocation unit 60 in the order of the drawing processing unit 40a, the drawing processing unit 40b, and the drawing processing unit 40c. The description will be made assuming that
[0100]
When the processing charge range allocating unit 60 receives the allocation request of the drawing processing unit 40 a, the processing charge range allocating unit 60 starts from the position of the unit drawing region R 1 held in the unprocessed position holding unit 64 in order of the divided drawing region ranges. To spread. Here, for simplicity of description, the number of drawing data for each unit drawing area is calculated by scanning the entry table and the leaving table once in the drawing data storage control means 30 in the drawing method prior to the drawing process. Although the description will be made assuming that the data is generated for each region, the information for each unit drawing region may be generated in synchronization with the drawing processing. For the sake of simplicity, the number of drawing data for each unit drawing area is simply called “data number”, and the accumulated value of “data number” in the divided drawing area is “data number accumulated value”. Call it. The processing charge range allocating unit 60 first requests the “data count” of the unit drawing area R1 from the drawing data storage control unit 30 to obtain the value “2”. When the division reference management means 70 is inquired about the value of the division reference in the unit drawing area R1, the reference value 10 is obtained. Then, the size of the divided drawing area is increased while repeating the inquiry to the drawing data storage control means 30 and the division reference management means 70 in the order of the unit drawing areas R2, R3, R4, and R5. At the unit drawing area R5, since the “data number accumulated value” is exactly the division reference value 10, the divided drawing area BS1 is determined and notified to the drawing processing means 40a, and the unprocessed position holding means 64 is notified. Stores the position of the unit drawing area R6. When the drawing processing unit 40a is assigned the divided drawing region BS1, the drawing processing unit 40a performs the same processing as the description of the operation of the drawing processing unit in the first configuration. Here, the drawing data read from the drawing data storage control unit 30 by the drawing processing unit 40a are D1, D2, D3, and D7.
[0101]
Next, the processing charge range assignment unit 60 receives a request from the drawing processing unit 40b. It is divided by repeatedly inquiring “data quantity” from the drawing data storage control means 30 and inquiring the division reference value from the division reference management means 70 in order from the position of the unit drawing area R6 stored in the unprocessed position holding means 64. The drawing area BS2 is determined. In this case as well, the division reference value remains 10, and when the unit drawing areas R6, R7, R8, and R9 are expanded, the “data number accumulated value” becomes 11, and the divided drawing area BS2 is determined as an area of R6 to R9. The The divided drawing area BS2 is notified to the drawing processing means 40b, and the position of the unit drawing area R10 is stored in the unprocessed position holding means 64.
[0102]
Since the processing when the drawing processing unit 40b is assigned the divided drawing region BS2 is the same as that described in the execution example of the first configuration, description thereof will be omitted, but here the drawing data read into the drawing processing unit 40b is D1, D3, D4, and D7.
[0103]
Next, the processing charge range assignment unit 60 receives a request from the drawing processing unit 40c. It is divided by repeatedly inquiring “data number” from the drawing data storage control unit 30 in order from the position of the unit drawing region R10 stored in the unprocessed position holding unit 64 and inquiring the division reference management unit 70 for the division reference value. The drawing area BS3 is determined. Here, the division reference value remains 10, and when the unit drawing areas R10, R11, R12, and R13 are expanded, the “data number accumulated value” becomes 12, and the divided drawing area BS3 is determined as an area of R10 to R13. The drawing processing unit 40c is notified, and the position of the unit drawing region R14 is stored in the unprocessed position holding unit 64.
[0104]
Since the processing when the drawing processing unit 40c is assigned the divided drawing region BS3 is the same as that described in the execution example of the first configuration, description thereof will be omitted, but the drawing data read into the drawing processing unit 40c here is D1, D5, D7, and D8.
[0105]
Next, the processing charge range allocating unit 60 receives a request from the drawing processing unit 40a that has completed the processing of the divided drawing region BS1. Dividing by repeatedly inquiring “data number” from the drawing data storage control means 30 and inquiring the division reference value from the division reference management means 70 in order from the position of the unit drawing area R14 stored in the unprocessed position holding means 64. The drawing area BS4 is determined. Here, the “number of data” of the unit drawing area R14 is 4, and the division reference value at the position of the unit drawing area R14 inquired of the division reference management means 70 is 4. For this reason, the divided drawing area BS4 is determined by the area of only the unit drawing area R14, notified to the drawing processing means 40a, and the position of the unit drawing area R15 is stored in the unprocessed position holding means 64.
[0106]
Since the processing when the drawing processing means 40a finishes the first processing and is assigned the divided drawing area BS4 again is the same as that described in the execution example of the first configuration, the description is omitted here. The drawing data D2 and D3 are deleted from the drawing data holding means 43 of 40a, D1 is left, and D6, D7 and D8 are newly read.
[0107]
Next, the processing charge range allocation unit 60 receives a request from the drawing processing unit 40b that has completed the processing of the divided drawing region BS2. The division is performed by repeatedly inquiring “the number of data” from the drawing data storage control means 30 in order from the position of the unit drawing area R15 stored in the unprocessed position holding means 64 and inquiring the division reference management means 70 for the division reference value. The drawing area BS5 is determined. Here, the “number of data” of the unit drawing area R15 is 4, and the division reference value at the position of the unit drawing area R15 inquired of the division reference management means 70 is 4. For this reason, the divided drawing area BS5 is determined by the area of only the unit drawing area R15, notified to the drawing processing means 40b, and the position of the unit drawing area R16 is stored in the unprocessed position holding means 64.
[0108]
The processing when the drawing processing unit 40b finishes the initial processing and is assigned the divided drawing region BS5 again is the same as described above, and will not be described here. However, the drawing processing unit 40b draws the drawing data from the drawing data holding unit 43. Data D3 and D4 are deleted, D1 is left, and D6, D7, and D8 are newly read.
[0109]
Next, the processing charge range assignment unit 60 receives a request from the drawing processing unit 40c that has completed the processing of the divided drawing region BS3. Dividing by repeatedly inquiring “data number” from the drawing data storage control means 30 and inquiring the division reference value from the division reference management means 70 in order from the position of the unit drawing area R16 stored in the unprocessed position holding means 64. The drawing area BS6 is determined. Here, the “number of data” of the unit drawing area R16 is 2, and the division reference value at the position of the unit drawing area R16 inquired of the division reference management means 70 is 4. Since the divided drawing areas are expanded in order in the unit drawing areas R17 and R18 and there are no unit drawing areas after R18, the divided drawing area BS6 is determined by the areas of the unit drawing areas R16, R17, and R18, and the drawing processing means 40c. The unprocessed position holding unit 64 stores information indicating that there is no unprocessed area.
[0110]
Since the processing when the drawing processing means 40c finishes the first processing and is assigned the divided drawing area BS6 again is the same as described above, the description thereof will be omitted, but here the drawing data holding means 43 of the drawing processing means 40c draws the drawing. Data D5, D7, and D8 are deleted, D1 is left, and D6 is newly read.
[0111]
As described above, the drawing processing device of the present invention divides the drawing processing load into more than the number of drawing processing devices, and the drawing processing load assigned in the latter half of the processing is assigned in the first half of the processing. The parallel drawing processing is performed by dividing the drawing processing so as to be smaller than the drawing processing load. This makes it possible to speed up the drawing process even when there is a partial load bias in the page image to be drawn, especially when there is a heavy load area at the end of the process. In the first half, the granularity of the load division can be increased, so that the number of times of switching the process allocation can be reduced, and the overhead due to the contention of access to resources can be reduced.
[0112]
Further, even when the processing of the processing means in charge of the specific partial processing is temporarily delayed due to the influence of other processes at the time of execution, the drawing processing can be speeded up.
[0113]
Even if the processing charge range allocation means 60 determines the size of the divided drawing area at the time of inquiry from the drawing processing means 40a to 40n, it starts drawing processing before the inquiry time, for example, in an extreme case. The drawing process may be started after the sizes of all the divided drawing areas are determined with reference to the division reference management unit 70 before the drawing.
[0114]
In the above example, the example in which the maximum value and the minimum value of the Y coordinate of the drawing data are inspected at the time of reading and read into each drawing processing means has been described, but the inspection of whether each drawing data is in each divided drawing area It is also possible to read out a part of the data and perform it by each drawing processing means.
[0115]
【The invention's effect】
As described above, according to the configuration of the drawing processing apparatus of the present invention, the processing range handled by each of the plurality of processing units in the drawing processing apparatus is dynamically determined by having a plurality of division reference values of the drawing data. Thus, the overall processing time can be effectively shortened.
[0116]
In particular, the size of the divided drawing area is determined so as to reduce the granularity of the drawing process at the end of the process, and the drawing data to be assigned to each drawing processing means is configured to be smaller. Even when drawing objects are biased in the drawn area, the processing can be prevented from being biased to specific processing means, and high-speed drawing processing can be performed.
[Brief description of the drawings]
FIG. 1 is a diagram showing a configuration of an embodiment of a drawing processing apparatus of the present invention.
FIG. 2 is a diagram showing the configuration of another embodiment of the drawing processing apparatus of the present invention.
FIG. 3 is a block diagram illustrating an example of a system to which the drawing processing apparatus of the present invention is applied.
FIG. 4 is a flowchart showing an example of the operation of the entire system having the drawing processing apparatus of the present invention.
FIG. 5 is a flowchart showing an example of the operation of one page of the entire system having the drawing processing apparatus of the present invention.
FIG. 6 is a flowchart showing a flow of drawing data generation means processing of the drawing processing apparatus of the present invention.
FIG. 7 is a diagram illustrating an example of a data structure of drawing data generated by a drawing data generation unit.
FIG. 8 is a diagram showing a configuration of an embodiment of drawing data storage control means of the drawing processing apparatus of the present invention.
FIG. 9 is a flowchart showing the flow of processing of the drawing data storage control means shown in FIG. 8;
FIG. 10 is a diagram showing a configuration of an embodiment of drawing data storage control means of the drawing processing apparatus of the present invention.
11 is a flowchart showing the flow of processing in the drawing data storage control means shown in FIG.
FIG. 12 is a flowchart showing the flow of processing when drawing data is sent from the drawing data storage control means to the drawing processing means.
FIG. 13 is a flowchart showing the flow of processing of the drawing data storage control means for the processing charge range assignment means of the drawing processing apparatus of the present invention.
FIG. 14 is a diagram illustrating a configuration of a processing charge range assignment unit.
FIG. 15 is a flowchart showing a processing flow of a processing charge range assignment unit.
FIG. 16 is a diagram showing a configuration of a processing charge range assignment unit.
FIG. 17 is a flowchart showing the flow of processing in the configuration of processing charge range assignment means.
FIG. 18 is a diagram showing a configuration of processing of a drawing processing unit of the drawing processing apparatus of the present invention.
FIG. 19 is a diagram showing a flow of processing of a drawing processing means.
FIG. 20 is a diagram illustrating an example of a drawing description.
FIG. 21 is a diagram illustrating an example of drawing data.
FIG. 22 is a diagram showing an example of a unit drawing area of drawing data in the drawing processing apparatus of the present invention.
FIG. 23 is a diagram illustrating an example of a storage state of drawing data in the drawing processing apparatus of the present invention.
FIG. 24 is a diagram showing an embodiment of a drawing data storage state in the drawing processing apparatus of the present invention.
FIG. 25 is a diagram showing an example of a divided drawing area in the drawing processing apparatus of the present invention.
FIG. 26 is a diagram showing a time chart of an embodiment in the drawing processing apparatus of the present invention.
FIG. 27 is a diagram showing an example of a divided drawing area in the drawing processing apparatus of the present invention.
FIG. 28 is a diagram showing a time chart of one embodiment in the drawing processing apparatus of the present invention.
FIG. 29 is a diagram illustrating a conceptual diagram of a result of a drawing process.
FIG. 30 is a diagram illustrating a divided drawing area when the drawing area is divided equally.
FIG. 31 is a diagram showing a time chart of an execution example when a drawing area is divided equally.
[Explanation of symbols]
10 page description language
20 Drawing data generation means
30. Drawing data storage control means
40 Drawing processing means
50 Processing result storage control means
60 Processing area allocation means
70 division criteria management means
200 Output device
300 Network interface
400 network
100 Drawing processing device
21 Drawing data
22 Data structure
61 Split drawing area
31 Drawing data storage interface
32 Drawing data existence range extraction means
33 Drawing data existence range counting means
34 Interface for notifying the number of drawing data
35 Drawing data registration means
36 Interface for sending drawing data
61 Exclusive interface
62 Divided drawing area determination means
63 Drawing range determination means
64 Unprocessed position holding means
65 Total number of drawing data
66 Interface for querying the number of drawing data
67 Reference value inquiry interface
41 Processed drawing position holding means
42 In charge drawing range holding means
43 Drawing data holding means
44 Drawing data judgment / discard means
45 Drawing mechanism
46 Drawing processing buffer
11 Drawing sample
12 Input drawing description data

Claims (13)

描画命令を解釈し、描画処理を実行する描画処理装置において、
描画命令を受け取り、描画図形の内部データを構成する描画データを生成する描画データ生成手段と、
前記描画データの格納及び描画処理手段に対する出力の制御を行う描画データ格納制御手段と、
前記描画データ格納制御手段からの描画データを入力して描画処理を実行する複数の描画処理手段と、
前記複数の描画処理手段における処理単位を決定するための描画領域の分割基準となる基準値を保持する分割基準管理手段と、
前記分割基準管理手段の有する基準値に基づいて前記描画領域を分割し、前記描画処理手段各々の要求に応じて、該分割された描画領域を前記描画処理手段各々に割り当てる処理担当範囲割り当て手段と、
前記複数の描画処理手段から出力される複数の処理結果を記憶する処理結果格納手段と、
前記処理結果格納手段に格納された処理結果の出力を行う出力手段とを備え、
前記分割基準管理手段は、異なる複数の基準値を有し、複数の前記描画処理手段における処理の全体の進行度に応じて選択される1つの基準値を前記処理担当範囲割り当て手段に出力し、該処理担当範囲割り当て手段は、該選択された基準値に基づき前記描画領域を分割し分割描画領域を決定し、該分割描画領域を前記複数の描画処理手段各々に割り当てることを特徴とする描画処理装置。
In a drawing processing device that interprets drawing commands and executes drawing processing,
Drawing data generation means for receiving a drawing command and generating drawing data constituting internal data of the drawing figure;
Drawing data storage control means for controlling the output to the drawing data storage and drawing processing means;
A plurality of drawing processing means for executing drawing processing by inputting drawing data from the drawing data storage control means;
A division criterion management unit that holds a reference value serving as a division criterion for a drawing area for determining a processing unit in the plurality of drawing processing units;
A processing charge range assigning unit that divides the drawing area based on a reference value possessed by the division reference managing unit, and assigns the divided drawing region to each of the drawing processing units in response to a request of each of the drawing processing units; ,
Processing result storage means for storing a plurality of processing results output from the plurality of drawing processing means;
Output means for outputting the processing result stored in the processing result storage means,
The division criterion management means has a plurality of different reference values, and outputs one reference value selected according to the overall progress of processing in the plurality of drawing processing means to the processing charge range assignment means, The processing area allocation means divides the drawing area based on the selected reference value, determines a divided drawing area, and assigns the divided drawing area to each of the plurality of drawing processing means. apparatus.
前記分割基準管理手段は、前記描画処理手段における描画データの処理の進行度を示すデータとして前記描画処理手段に割り当て済みの分割描画領域の副走査方向の位置座標値を受領し、該受領位置座標値に基づいて前記複数の基準値から1つの基準値を選択する構成を有することを特徴とする請求項1記載の描画処理装置。  The division reference management unit receives position coordinate values in the sub-scanning direction of the divided drawing area assigned to the drawing processing unit as data indicating the progress of drawing data processing in the drawing processing unit, and receives the received position coordinates. The drawing processing apparatus according to claim 1, further comprising: a reference value selected from the plurality of reference values based on a value. 前記分割基準管理手段は、前記描画処理手段における描画データの処理の進行度を示すデータとして前記描画処理手段に割り当て済みの描画領域の面積と処理を要する全体面積との比を示す値を受領し、該受領値に基づいて前記複数の基準値から1つの基準値を選択する構成を有することを特徴とする請求項1記載の描画処理装置。  The division criterion management unit receives a value indicating a ratio between an area of a drawing area allocated to the drawing processing unit and an entire area requiring processing as data indicating a progress degree of processing of drawing data in the drawing processing unit. The drawing processing apparatus according to claim 1, further comprising: a reference value selected from the plurality of reference values based on the received value. 前記処理を要する全体面積は、ページ当たりの面積であることを特徴とする請求項3記載の描画処理装置。  4. The drawing processing apparatus according to claim 3, wherein the entire area that requires processing is an area per page. 前記分割基準管理手段の有する複数の基準値の各々に基づいて前記描画処理手段に割り当てられる分割描画領域の各々は、描画領域の副走査方向における最小分割単位である単位描画領域(Rn)の整数倍の領域からなることを特徴とする請求項1乃至4いずれかに記載の描画処理装置。  Each of the divided drawing areas assigned to the drawing processing unit based on each of the plurality of reference values of the division reference managing unit is an integer of a unit drawing area (Rn) that is a minimum division unit in the sub-scanning direction of the drawing area. The drawing processing apparatus according to claim 1, wherein the drawing processing apparatus comprises a double region. 前記分割基準管理手段は、前記描画処理手段における描画データ処理の進行に従って、該描画処理手段に割り当てる描画領域の大きさを減少させるように前記基準値を選択することを特徴とする請求項1乃至5いずれかに記載の描画処理装置。  2. The division reference management unit selects the reference value so as to reduce the size of a drawing area allocated to the drawing processing unit as the drawing data processing in the drawing processing unit proceeds. 5. The drawing processing apparatus according to any one of 5. 前記分割基準管理手段は、前記描画処理手段における描画データ処理の進行に従って、該描画処理手段に割り当てる描画領域の単位描画領域の数を減少させるように前記基準値を選択することを特徴とする請求項5に記載の描画処理装置。  The division criterion management means selects the reference value so as to reduce the number of unit drawing areas of the drawing area allocated to the drawing processing means as the drawing data processing in the drawing processing means progresses. Item 6. The drawing processing apparatus according to Item 5. 前記分割基準管理手段は、前記描画処理手段における描画データ処理の進行に従って、該描画処理手段に割り当てる1以上の単位描画領域各々に含まれる描画データの総数を減少させるように前記基準値を選択することを特徴とする請求項5に記載の描画処理装置。  The division reference management means selects the reference value so as to reduce the total number of drawing data included in each of one or more unit drawing areas assigned to the drawing processing means as the drawing data processing in the drawing processing means progresses. The drawing processing apparatus according to claim 5. 前記処理担当範囲割り当て手段は、前記複数の描画処理手段からの処理の割り当て要求に応じて、前記描画領域の割り当てを実行することを特徴とする請求項1乃至8いずれかに記載の描画処理装置。  The drawing processing apparatus according to claim 1, wherein the processing charge range allocating unit allocates the drawing area in response to a process allocation request from the plurality of drawing processing units. . 前記処理担当範囲割り当て手段は、前記分割基準管理手段の有する複数の基準値に基づき、前記複数の描画処理装置に対して割り当てる描画領域の大きさを、描画処理に係るデータについて一括して決定する構成を有することを特徴とする請求項1乃至8いずれかに記載の描画処理装置。  The processing charge range allocating unit collectively determines the size of a drawing area to be allocated to the plurality of drawing processing devices based on a plurality of reference values of the division criterion managing unit for data related to the drawing process. The drawing processing apparatus according to claim 1, having a configuration. 前記処理担当範囲割り当て手段は、前記複数の処理手段に対する処理の割り当てを実行する際に、前記描画データ格納制御手段からの描画データに関する情報を受領し、該情報に基づいて前記描画領域の割り当てを実行することを特徴とする請求項1乃至10いずれかに記載の描画処理装置。  The processing charge range allocating unit receives information on the drawing data from the drawing data storage control unit when allocating the process to the plurality of processing units, and allocates the drawing area based on the information. The drawing processing apparatus according to claim 1, wherein the drawing processing apparatus is executed. 前記処理担当範囲割り当て手段は、前記複数の描画処理装置からの描画領域要求を排他的に実行する排他的インタフェースを有することを特徴とする請求項1乃至11いずれかに記載の描画処理装置。  12. The drawing processing apparatus according to claim 1, wherein the processing charge range allocating unit has an exclusive interface that exclusively executes drawing area requests from the plurality of drawing processing apparatuses. 描画命令を解釈し、描画処理を実行する描画処理方法において、
描画命令を受け取り、描画図形の内部データを構成する描画データを生成する描画データ生成ステップと、
前記描画データの格納及び描画処理手段に対する出力の制御を行う描画データ格納制御ステップと、
複数の描画処理手段において、前記描画データ格納制御ステップの制御に基づいて出力される描画データを入力して描画処理を実行する描画処理ステップと、
前記複数の描画処理手段における処理単位を決定するための描画領域の分割基準となる異なる複数の基準値から、前記複数の描画処理手段における処理の全体の進行度に応じて1つの基準値を選択し、選択した基準値を処理担当範囲割り当て手段に出力する分割基準管理ステップと、
分割基準管理ステップにおいて選択された基準値に基づいて前記描画領域を分割し、前記描画処理手段各々の要求に応じて、該分割された描画領域を前記描画処理手段各々に割り当てる処理を実行する処理担当範囲割り当てステップと、
前記複数の描画処理手段から出力される複数の処理結果を処理結果格納手段に格納する処理結果格納ステップと、
前記処理結果格納手段に格納された処理結果の出力を行う出力ステップと、
を有することを特徴とする描画処理方法。
In a drawing processing method that interprets drawing commands and executes drawing processing,
A drawing data generation step for receiving a drawing command and generating drawing data constituting internal data of the drawing figure;
A drawing data storage control step for controlling the output to the drawing data storage and drawing processing means;
In a plurality of drawing processing means, a drawing processing step of executing drawing processing by inputting drawing data output based on the control of the drawing data storage control step;
A single reference value is selected from a plurality of different reference values that serve as division criteria for drawing areas for determining processing units in the plurality of drawing processing means according to the overall progress of processing in the plurality of drawing processing means. A division reference management step for outputting the selected reference value to the processing range assignment means,
A process of dividing the drawing area based on the reference value selected in the division reference management step and executing a process of assigning the divided drawing area to each of the drawing processing means in response to a request from each of the drawing processing means. The assignment range step,
A processing result storage step of storing a plurality of processing results output from the plurality of drawing processing means in a processing result storage means;
An output step for outputting the processing result stored in the processing result storage means;
A drawing processing method characterized by comprising:
JP16554597A 1997-06-23 1997-06-23 Drawing processor Expired - Fee Related JP3707208B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP16554597A JP3707208B2 (en) 1997-06-23 1997-06-23 Drawing processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP16554597A JP3707208B2 (en) 1997-06-23 1997-06-23 Drawing processor

Publications (2)

Publication Number Publication Date
JPH1115983A JPH1115983A (en) 1999-01-22
JP3707208B2 true JP3707208B2 (en) 2005-10-19

Family

ID=15814421

Family Applications (1)

Application Number Title Priority Date Filing Date
JP16554597A Expired - Fee Related JP3707208B2 (en) 1997-06-23 1997-06-23 Drawing processor

Country Status (1)

Country Link
JP (1) JP3707208B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7149826B2 (en) * 2018-12-04 2022-10-07 シュナイダーエレクトリックホールディングス株式会社 screen display device

Also Published As

Publication number Publication date
JPH1115983A (en) 1999-01-22

Similar Documents

Publication Publication Date Title
US5619624A (en) Apparatus for selecting a rasterizer processing order for a plurality of graphic image files
JP4464424B2 (en) Image output system
JP5475307B2 (en) Memory management method, computer readable medium and apparatus for rasterization
JP3474078B2 (en) Drawing processing device
CN103034618A (en) Image processing device
US20070112441A1 (en) Modular layer for abstracting peripheral hardware characteristics
JP5344075B1 (en) Print image processing system and program
JP5942860B2 (en) Print data processing system
JP3707208B2 (en) Drawing processor
JP3620154B2 (en) Printing system and printing control method
US20050094194A1 (en) Enhanced image processing with shared data storage
JP2000035870A (en) Printing system and printer
US8934121B2 (en) Coordinated, distributed, reusable document component respository
JP2002169682A (en) Server apparatus, image processing apparatus, information processing apparatus, data processing method, information processing method, storage medium and program
JPH0934660A (en) Information processing device
JP2018106222A (en) Information processing apparatus and communication control method
JP3728820B2 (en) Drawing processor
JP5799968B2 (en) Printing system
JP2000198239A (en) Print system
JP2000132350A (en) Plotting processor
JP2000132349A (en) Plotting processor
JP3225711B2 (en) Job processing system and job processing execution device
JP3897083B2 (en) Print processing apparatus and print processing method
JP2007152623A (en) Image plotting controller, method for controlling plotting of image, memory medium, and program
JPH10304180A (en) Drawing processor and drawing processing method

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050329

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050512

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050512

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050712

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050725

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090812

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100812

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110812

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120812

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120812

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130812

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees