(57)【要約】【課題】回路規模を過剰に増大させることなく図形に関する描画処理を高速に実行可能にする。【解決手段】描画処理装置は、描画命令を実行するための、処理能力の異なる複数の描画処理部を有する。そして、描画処理装置は、入力された描画データから図形オブジェクト毎に描画命令列を抽出して、抽出された描画命令列をその実行に必要な処理能力に基づいて分類し、その分類結果に基づいて、複数の描画処理部より当該描画命令列を処理すべき描画処理部を選択し、選択した描画処理部へ描画命令列を送信する。そして、描画処理装置は、複数の描画処理部が送信された描画命令列を処理することにより生成した描画結果を合成する。【選択図】  図１Ｂ
2008027395.tif 000002
【特許請求の範囲】
【請求項１】
描画命令を実行するための、処理能力の異なる複数の描画処理部と、
入力された描画データから図形オブジェクト毎に描画命令列を抽出し、抽出された描画命令列をその実行に必要な処理能力に基づいて分類する分類手段と、
前記描画命令列の分類結果に基づいて、前記複数の描画処理部より当該描画命令列を処理すべき描画処理部を選択する選択手段と、
前記選択手段で選択した描画処理部へ前記描画命令列を送信する送信手段と、
前記複数の描画処理部が前記送信手段により送信された描画命令列を処理することにより生成した描画結果を合成する合成手段とを備えることを特徴とする描画処理装置。
【請求項２】
前記分類手段は、抽出された前記描画命令列に含まれる描画命令が高次関数演算を必要とするか否かに基づいて、当該描画命令列を分類し、
前記選択手段は、高次関数演算を必要とする描画命令列を処理すべき描画処理部として、乗算器を有する描画処理部を選択することを特徴とする請求項１に記載の描画処理装置。
【請求項３】
前記選択手段は、高次関数演算を必要とする描画命令列を乗算器を有する描画処理部に優先的に割り当て、高次関数演算が不要な描画命令列を乗算器を持たない描画処理部に優先的に割り当てることを特徴とする請求項２に記載の描画処理装置。
【請求項４】
前記複数の描画処理部はそれぞれソフトウエアを実行可能なプロセッサを具備していることを特徴とする請求項３に記載の描画処理装置。
【請求項５】
前記複数の描画処理部の各々は、前記描画結果として描画された図形のビットマップイメージを生成し、
前記合成手段は、前記複数の描画処理部により生成された描画結果としてのビットマップイメージを、前記入力された描画データに基づいて決定される上下位置関係に従って合成することを特徴とする請求項１に記載の描画処理装置。
【請求項６】
前記複数の描画処理部の各々は、走査線毎に、描画された図形オブジェクトと走査線との交点を描画結果として生成し、
前記合成手段は、走査線毎に、前記複数の描画処理部より取得した同一走査線上の交点を走査線方向座標順にソートし、前記入力された描画データに基づいて決定される上下位置関係に従って交点及び交点間の画素値を決定することを特徴とする請求項１に記載の描画処理装置。
【請求項７】
描画命令を実行するための複数の描画処理部と、
入力された描画データから、図形オブジェクト毎に描画命令列を抽出し、抽出された描画命令列をその実行に必要な処理能力に基づいて分類する分類手段と、
前記描画命令列の分類結果に基づいて、当該描画命令列を単一の描画命令処理部で処理するか複数の描画命令処理部で処理するかを決定する決定手段と、
単一の描画処理部で処理すると決定された場合は、前記複数の描画処理部の一つへ前記描画命令列を送信し、複数の描画処理部で処理すると決定された場合は、複数の描画処理部により当該図形オブジェクトの描画を分担させるべく、前記複数の描画処理部から選択された複数の描画処理部へ当該描画命令列を送信する送信手段と、
前記複数の描画処理部が前記送信手段により送信された描画命令列を処理することにより生成した描画結果を合成する合成手段とを備えることを特徴とする描画処理装置。
【請求項８】
前記分類手段は、抽出された前記描画命令列が高次関数演算を必要とするか否かに基づいて、当該描画命令列を分類し、
前記決定手段は、高次関数演算を必要とする描画命令列を複数の描画処理部で処理し、高次関数演算が不要な描画命令列を単一の描画処理部で処理するよう決定することを特徴とする請求項７に記載の描画処理装置。
【請求項９】
前記決定手段は、高次関数を必要とする描画命令列によって描画される図形オブジェクトの大きさに基づいて、当該描画命令列を処理する描画処理部の数を決定することを特徴とする請求項８に記載の描画処理装置。
【請求項１０】
前記送信手段は、前記選択された複数の描画処理部の各々が当該描画命令列による描画処理をそれぞれの描画範囲で実行するように、当該描画命令列に描画範囲を設定して送信することを特徴とする請求項７に記載の描画処理装置。
【請求項１１】
前記複数の描画処理部はそれぞれソフトウエアを実行可能なプロセッサを具備していることを特徴とする請求項７に記載の描画処理装置。
【請求項１２】
前記複数の描画処理部の各々は、前記描画結果として描画された図形のビットマップイメージを生成し、
前記合成手段は、前記複数の描画処理部により生成された描画結果としてのビットマップイメージを、前記入力された描画データに基づいて決定される上下位置関係に従って合成することを特徴とする請求項７に記載の描画処理装置。
【請求項１３】
前記複数の描画処理部の各々は、走査線毎に、描画された図形と走査線との交点を描画結果として生成し、
前記合成手段は、走査線毎に、前記複数の描画処理部より取得した交点を走査線方向座標順にソートし、前記入力された描画データに基づいて決定される上下位置関係に従って交点及び交点間の画素値を決定することを特徴とする請求項７に記載の描画処理装置。
【請求項１４】
描画命令を実行するための、処理能力の異なる複数の描画処理部を有する描画処理装置の制御方法であって、
入力された描画データから図形オブジェクト毎に描画命令列を抽出し、抽出された描画命令列をその実行に必要な処理能力に基づいて分類する分類工程と、
前記描画命令列の分類結果に基づいて、前記複数の描画処理部より当該描画命令列を処理すべき描画処理部を選択する選択工程と、
前記選択工程で選択した描画処理部へ前記描画命令列を送信する送信工程と、
前記複数の描画処理部が前記送信工程により送信された描画命令列を処理することにより生成した描画結果を合成する合成工程とを備えることを特徴とする描画処理装置の制御方法。
【請求項１５】
描画命令を実行するための複数の描画処理部を有する描画処理装置の制御方法であって、
入力された描画データから、図形オブジェクト毎に描画命令列を抽出し、抽出された描画命令列をその実行に必要な処理能力に基づいて分類する分類工程と、
前記描画命令列の分類結果に基づいて、当該描画命令列を単一の描画命令処理部で処理するか複数の描画命令処理部で処理するかを決定する決定工程と、
単一の描画処理部で処理すると決定された場合は、前記複数の描画処理部の一つへ前記描画命令列を送信し、複数の描画処理部で処理すると決定された場合は、複数の描画処理部により当該図形オブジェクトの描画を分担させるべく、前記複数の描画処理部から選択された複数の描画処理部へ当該描画命令列を送信する送信工程と、
前記複数の描画処理部が前記送信工程により送信された描画命令列を処理することにより生成した描画結果を合成する合成工程とを備えることを特徴とする描画処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ページ記述言語（ＰＤＬ）等の描画データに従って画像データを生成するための描画処理に関する。
【背景技術】
【０００２】
印刷装置等の画像形成装置は、入力デバイスから送られてくるPostScriptやPDF等のページ記述言語（ＰＤＬ）で記述された描画データを解釈してラスタ画像を形成する描画処理装置を具備する。ここで、描画データは複数種類の描画オブジェクトの集合として構成され、その種類としては図形、テキスト、他の画像などが挙げられる。これらの描画オブジェクトの処理はそれぞれ異なる処理となっており、複雑な描画オブジェクトの描画処理には多くのプロセスおよび時間が必要となる。
【０００３】
そこで、画像出力を高速化するために、画像形成装置に対して各種処理機能を有するユニットを付加することが行われている。これら付加されるユニットの多くはハードウェアによって実装されることが多い。しかしながら、ハードウェアによる実装は高速な反面、対象となる処理毎に専用のユニットを付加していくため回路規模が増大してしまう。一方、高速化の他の手法として描画処理の並列化が行われている。このような並列化では以下のような手法がとられる。例えば、入力された描画データを解析して描画オブジェクト単位に分割し、分割された描画データを複数の描画処理装置に振り分けて並列処理する方法が挙げられる。或は、描画データに対して領域分割を行って部分画像を生成するための描画データを再構成し、再構成された描画データを複数の描画処理装置に振り分けて並列に処理する方法が挙げられる。
【０００４】
上記のように専用の描画処理装置を設け、かつ並列化を行って描画オブジェクトを処理する構成は、特許文献１に開示されている。特許文献１では、文字、画像、描画図形毎に専用の描画処理ユニットを設け、それぞれの処理の高速化と並列実行による高速化を達成している。
【特許文献１】特開平０２−０６３７６０
【発明の開示】
【発明が解決しようとする課題】
【０００５】
一般に、描画図形としては、直線によって構成される図形、本来曲線によって構成されているが直線で近似的に表現されている図形、高次関数で表現される曲線によって構成される図形等が挙げられる。これら描画図形の外形追跡処理は、画素単位あるいは走査線単位で行う必要があり、特に高精細化が進むにつれて演算回数が増大するため、高次関数の処理時間が描画時間に大きく影響してくる。特許文献１のように、並列処理すべく配置されている複数の描画処理装置が描画オブジェクトの種類毎の専用の描画処理装置である場合には、印刷データに含まれる描画オブジェクトの種類に偏りがあると並列化の効果が小さくなるという課題がある。
【０００６】
一方、そのような偏りを防止するべく、並列処理すべく配置されている全ての描画処理装置が広範な描画オブジェクトに対応できるようにすると、高機能な描画処理装置が必要以上に配置されることになる。例えば、配列処理すべく配置されているすべての描画処理装置が高次関数を高速に実行できる必要はなく、むしろこのような構成はハードウェアに必要以上の性能とコストをかけることとなり望ましくない。
【０００７】
本発明は以上の問題に鑑みてなされたものであり、回路規模を過剰に増大させることなく図形に関する描画処理を高速に実行可能にすることを目的とする。
【課題を解決するための手段】
【０００８】
上記の目的を達成するための本発明の一態様による描画処理装置は以下の構成を備える。即ち、
描画命令を実行するための、処理能力の異なる複数の描画処理部と、
入力された描画データから図形オブジェクト毎に描画命令列を抽出し、抽出された描画命令列をその実行に必要な処理能力に基づいて分類する分類手段と、
前記描画命令列の分類結果に基づいて、前記複数の描画処理部より当該描画命令列を処理すべき描画処理部を選択する選択手段と、
前記選択手段で選択した描画処理部へ前記描画命令列を送信する送信手段と、
前記複数の描画処理部が前記送信手段により送信された描画命令列を処理することにより生成した描画結果を合成する合成手段とを備える。
【０００９】
又、上記の目的を達成するための本発明の他の態様による描画処理装置は以下の構成を備える。即ち、
描画命令を実行するための複数の描画処理部と、
入力された描画データから、図形オブジェクト毎に描画命令列を抽出し、抽出された描画命令列をその実行に必要な処理能力に基づいて分類する分類手段と、
前記描画命令列の分類結果に基づいて、当該描画命令列を単一の描画命令処理部で処理するか複数の描画命令処理部で処理するかを決定する決定手段と、
単一の描画処理部で処理すると決定された場合は、前記複数の描画処理部の一つへ前記描画命令列を送信し、複数の描画処理部で処理すると決定された場合は、複数の描画処理部により当該図形オブジェクトの描画を分担させるべく、前記複数の描画処理部から選択された複数の描画処理部へ当該描画命令列を送信する送信手段と、
前記複数の描画処理部が前記送信手段により送信された描画命令列を処理することにより生成した描画結果を合成する合成手段とを備える。
【発明の効果】
【００１０】
本発明によれば、回路規模を過剰に増大させることなく図形に関する描画処理を高速に実行することが可能となる。
【発明を実施するための最良の形態】
【００１１】
以下、添付図面を参照して本発明の好適な実施形態を説明する。
【００１２】
＜第１実施形態＞
図１Ａは第１実施形態に係る画像形成装置の構成例を示すブロック図である。画像形成装置１において、入力Ｉ／Ｆ１１は外部の情報処理装置（例えばパーソナルコンピュータ）からＰＤＬにより記述された印刷データを受信する。描画処理装置１００は印刷データを処理して、ビットマップイメージを生成する。ビデオ信号化部１２は描画処理装置１００で生成されたビットマップイメージを走査線順次のビデオ信号に変換してプリンタエンジン１３に出力する。プリンタエンジン１３は受信したビットマップイメージに従って記録媒体上に可視画像を形成する。尚、プリンタエンジン１３には、例えばレーザビームを利用した静電写真方式やインクジェット方式など、周知のいかなる記録方式も適用できる。尚、インクジェット方式を採用した場合等において、バンド単位でイメージデータをプリンタエンジン１３に供給する場合は、ビデオ信号化部１２の代わりに、バンドメモリにバンド単位でイメージを書き込む処理ユニットを設けることになる。
【００１３】
上記の構成において、描画処理装置１００は、例えばPostScriptやPDF等のＰＤＬによる印刷データを入力とし、該ＰＤＬに基づいて画像データを形成する。図１Ｂは第１実施形態による描画処理装置１００の構成例を示すブロック図である。
【００１４】
描画処理装置１００において、命令解析部１０１は、印刷データ（ＰＤＬ）を入力し、入力した印刷データの描画命令を解析する。命令解析部１０１は、このような描画命令列から描画オブジェクト毎に描画命令列を抽出する。印刷データ（描画データ）が図２により後述するような図形を描画するための描画命令列を含む場合、命令解析部１０１は、図形オブジェクト毎の描画命令列を抽出する。図形グループ決定部１０２は、その図形を描画するのに要求される処理能力（例えば高次関数演算が必要か否か）によって、図形オブジェクトに対応した描画命令列を分類する。描画命令分配部１０３は、分類された描画命令列を、各々の分類結果に応じて第１プロセッサ１０４と第２プロセッサ１０５に分配する。第１プロセッサ１０４及び第２プロセッサ１０５はそれぞれ描画命令に従って画像の描画を行う画像処理部である。画素合成部１０６は、第１プロセッサ１０４によって生成された画素情報と第２プロセッサ１０５によって生成された画素情報を併合して印刷データに対応するビットマップデータを出力する。尚、本実施形態では図形描画のためのプロセッサのみを示したが、描画処理装置１００は文字や画像を描画するための専用のプロセッサも有するものとする。或いは、文字や画像を第１プロセッサまたは第２プロセッサで描画するように構成してもよい。但し、これらのプロセッサの構成や、これらのプロセッサへの描画命令の分配は周知であるので、ここでは説明を省略する。
【００１５】
以下、各構成についてより詳細に説明する。
命令解析部１０１はＰＤＬにより記述された印刷データを受け取り、その印刷データをＰＤＬの規約に沿って解釈する機能と、非描画命令を実行する機能と、描画オブジェクト毎に描画命令列（コマンド群）を切り出す機能を有する。
【００１６】
図形グループ決定部１０２は、描画命令と図形グループとの対応を定義した図形グループ対応テーブル４００を参照し、命令解析部１０１によって切り出された各描画命令列を高次関数演算が不要な第１グループと高次関数演算が必要な第２グループに分類する。図４は図形グループ対応テーブル４００のデータ構成例を示す図である。図４に示す図形グループ対応テーブル４００では、直線を描画する命令「lineto」４０１が第１グループに対応付けられている。また、円を描画する命令「arc」４０２や曲線（ベジエ曲線）を描画する命令「curveto」４０３は第２グループに対応付けられている。即ち、第１グループは一次関数で解決できる図形であることを示しており、第２グループは高次関数の計算を要する図形であることを示している。例えば、描画命令列に「curveto」なるコマンドが含まれていた場合は、当該描画命令列の図形グループは第２グループであると決定される。このように、図形グループ決定部１０２は、図形グループ対応テーブル４００を参照することで、描画命令列（図形）が描画の際に高次関数演算を必要とするグループ（第２グループ）に属するか、そうでないグループ（第１グループ）に属するかを判定する。
【００１７】
描画命令分配部１０３は上記図形グループ決定部１０２によって決定されたグループに基いて、対応する図形の描画命令列を第１プロセッサ１０４に対して第１描画命令列として分配し、第２プロセッサ１０５に第２描画命令列として分配する機能を有する。本実施形態では、上記第１グループに属する描画命令を第１描画命令列とし、上記第２グループに属する描画命令を第２描画命令列として生成する。
【００１８】
第１プロセッサ１０４は加算器、論理演算器、シフト演算器を有するプロセッサである。第１プロセッサ１０４は、描画命令分配部１０３によって分配された第１描画命令列を処理してラスタ画像を生成するソフトウェアを実行することにより、第１描画命令列に対応する第１のビットマップデータを生成する。第２プロセッサ１０５は第１プロセッサ１０４の構成に加えさらに乗算器を有するプロセッサである。第２プロセッサ１０５は、描画命令分配部１０３によって分配された第２描画命令列を処理してラスタ画像を生成するソフトウェアを実行することにより、第２描画命令列に対応する第２のビットマップデータを生成する。又、乗算器を利用することにより、高次関数演算を高速に処理することができる。
【００１９】
画素合成部１０６は第１プロセッサ１０４で生成された第１のビットマップデータと、第２プロセッサ１０５で生成された第２のビットマップデータとを印刷データの中で定義された上下関係に基いて合成する。合成されたビットマップデータは、印刷データに対応する画像のビットマップデータとして画素合成部１０６より出力される。
【００２０】
以上のような構成を備えた本実施形態の描画処理装置１００の動作について、図２、図３の描画例を用いてより詳細に説明する。
【００２１】
図２は、図１に示した命令解析部１０１に入力されるPostScirpt言語で記述された印刷データ（描画命令列）の一例を示す。又、この印刷データによって描画される画像を図３に示す。図２において、記述２０１、２０２は各描画オブジェクトの描画命令に相当し、それぞれ図３に示されている三角形オブジェクト３０１、曲線オブジェクト３０２を描画する描画命令列である。
【００２２】
図２の記述２０３によって示される描画命令は、これから描画しようとしている図形の形状を定義している部分である。記述２０３は、三角形オブジェクト３０１の形状を定義している。具体的に説明すると、最初に、moveto命令によってペン座標を(X,Y)=(180,280)に移動させる。そして、そこから順にlineto命令によって座標(120,70)、(315,170)、(180,280)に直線を引き、三角形オブジェクト３０１を描画する。記述２０３ではclosepathまでにlinetoのみが現れている。従って、図形グループ決定部１０２は図４に示す図形グループ対応テーブルの４０１を参照し、記述２０３により描画される図形が一次関数の計算のみを要する第１グループに属する図形であると決定する。もし記述２０３の中にcurveto等が含まれていた場合には、記述４０３で描画される図形を第２グループに属する図形であると判断する。この判断結果（第１グループに属していることを示すグループ情報）は記述２０３の描画命令列とともに描画命令分配部１０３に入力される。描画命令分配部１０３は、この第１グループであることを示すグループ情報に基づいて、記述２０３〜２０５に至る描画命令列を第１プロセッサ１０４に対して出力する。
【００２３】
第１プロセッサ１０４は記述２０３〜２０５に至る描画命令列を処理する。通常一次関数に対しては座標毎に差分計算が行われるため加算器があれば座表計算には十分である。記述２０４（setrgbcolor）は記述２０３で定義した三角形の色を定義する。ここでは、赤が指定されている。記述２０５は、三角形を記述２０４で定義した赤色に塗り潰す処理が指示されている。従って、第１プロセッサ１０４は、記述２０３で定義される三角形に包含される座標に対応する画素に対して赤を示す画素データを出力する。
【００２４】
図２の記述２０６は、曲線オブジェクト３０２（ベジエ曲線）の描画を指示している。ここでは最初に、ペンの座標を(30,20)に移動させ、現在のペン座標と(85,120)、(160,60)、(140,20)の４点で囲まれるベジエ曲線を描く。記述２０６に続く線は定義されてないので、これは単一のベジエ曲線であることが分かる。
【００２５】
図形グループ決定部１０２は図４に示す図形グループ対応テーブル４００を参照し、記述２０６の図形（curveto）が高次関数の計算を要する第２グループに属する図形であることを決定する。
【００２６】
この判断結果（第２グループに属していることを示すグループ情報）は記述２０２の描画命令列とともに描画命令分配部１０３に入力される。描画命令分配部１０３は、第２グループであることを示すグループ情報に従って、記述２０２の描画命令列を第２プロセッサ１０５に出力する。
【００２７】
第２プロセッサ１０５は記述２０２の描画命令列を処理する。高次関数の計算には乗算が必要とされるため、第２プロセッサ１０５は乗算を高速に実行する構成を具備している。第２プロセッサ１０５は記述２０６で定義されるベジエ曲線の座標に対応する画素に対して赤を示す画素データを出力する。尚、描画命令分配部１０３は、記述２０２に色の指定が無いことから、記述２０２に記述２０４を付加して第２プロセッサ１０５へ送信する。したがって、記述２０６により描画されるベジェ曲線の色は記述２０４によって設定された色となる。
【００２８】
画素合成部１０６は以上のようにして第１プロセッサ１０４が出力した第１のビットマップデータと第２プロセッサ１０５が出力した第２ビットマップデータとを合成し、入力した印刷データに対するビットマップデータとしてこれを出力する。尚、図２の印刷データにおいて三角形オブジェクト３０１と曲線オブジェクト３０２が重なる場合、画素合成部１０６は次のように処理する。即ち、画素合成部１０６は、描画命令列の中で先に出現する記述２０３に対応する三角形オブジェクト３０１が後に出現する記述２０６に対応する曲線オブジェクト３０２よって上書きされるように第１ビットマップデータと第２ビットマップデータを合成する。
【００２９】
以上のように、第１実施形態によれば、印刷データに含まれる図形は描画に高次関数の計算が必要か否かにより、それぞれ異なる構成のプロセッサに割当てられ、並列に処理される。
【００３０】
尚、第２プロセッサ１０５に既にいくつかの図形の描画処理が割当てられている場合に、第１プロセッサ１０４に対して第２グループに属する図形の描画を割当てるスケジュール機能を描画命令分配部１０３に持たせてもよい。同様に、第１プロセッサ１０４に既にいくつかの図形の描画処理が割当てられている場合に、第２プロセッサ１０５に対して第１グループに属する図形の描画を割当てるスケジュール機能を描画命令分配部１０３に持たせてもよい。即ち、描画命令分配部１０３が高次関数演算を必要とする描画命令列を乗算器を有するプロセッサに優先的に割り当て、高次関数演算が不要な描画命令列を乗算器を持たないプロセッサに優先的に割り当てるようにしてもよい。このようにすれば、ページ内に現れる図形に偏りがあった場合にも、より効果的に並列性を維持することが可能になる。
【００３１】
又、上記実施形態では、第１プロセッサ１０４及び第２プロセッサ１０５においてビットマップデータを生成したが、これに限られるものではない。例えば、第１プロセッサ１０４、第２プロセッサ１０５が、走査線毎に各図形の交点座標のみを計算する構成にも適用可能である。この場合の画像合成部１０６の構成及び動作について図７を参照して説明する。
【００３２】
画像合成部１０６は第１プロセッサ１０４及び第２プロセッサ１０５の演算結果や印刷データから得られる命令ストリームを含む表示リスト７１を参照し、走査線毎の画像データを生成する画像処理パイプライン７２を有する。表示リスト７１において、命令ストリーム７１１は印刷データから取得される描画命令ストリームである。エッジ情報７１２は第１プロセッサ１０４及び第２プロセッサ１０５から取得される走査線毎の、各図形の交点座標の情報である。
【００３３】
画素合成部１０６は、画像処理パイプライン７２を有する。画像処理パイプライン７２は、命令処理ユニット７２１、エッジ処理ユニット７２２、優先順位決定ユニット７２３、塗りつぶし色決定ユニット７２４、画素生成ユニット７２５および画素出力ユニット７２６により構成される。７２１〜７２６の各ユニットは、直列に接続されている。
命令処理ユニット７２１は、表示リスト７１中の命令ストリーム７１１を解釈し、その命令を下流の各ユニットに適合したフォーマットへ変換し、送出する。エッジ処理ユニット７２２は、スキャンラインを走査し、表示リスト７１中のエッジ情報７１２の交点座標をソートする。即ち、エッジ処理ユニット７２２は、走査線毎に第１プロセッサ１０４と第２プロセッサ１０５とから図形の交点座標座標を受け取り、受け取った座標を走査線方向座標順にソートして、エッジ交差情報を生成する。そして、エッジ処理ユニット７２２は、命令処理ユニット７２１から受信した優先順位情報や塗りつぶし情報とともに、エッジ交差情報およびスキャンライン終了情報を下流の画像処理ユニットへ送出する。
【００３４】
優先順位決定ユニット７２３は、エッジ交差情報と優先順位情報に基づいて、交点座標と図形との対応から当該走査線上の各位置で有効な図形を決定し、有効図形情報を生成する。即ち、優先順位決定ユニット７２３は、上記のソート処理によって並べ替えられた交点座標列と図形との対応を参照して、当該走査線において描画対象図形として活性化している図形（図形の優先順位（即ち、上下関係））を決定し、有効図形情報とする。そして、優先順位決定ユニット７２３は、上流のエッジ処理ユニット７２２から受信した塗りつぶし情報、スキャンライン終了情報とともに、有効図形情報を塗りつぶし色決定ユニット７２４へ送出する。
【００３５】
塗りつぶし色決定ユニット７２４は、有効図形情報と塗りつぶし情報に基づいて、当該走査線上の各画素の色を決定し色合成情報を生成する。即ち、塗りつぶし色決定ユニット７２４は、上記活性化している図形の上下位置関係（有効図形情報）と色の透明度情報（塗りつぶし情報）とから画素の色に関与する図形を決定して各図形の色を決定する。即ち、各図形の色情報に従って表される色を、図形の上下位置関係に従って合成し、当該走査線上の各画素の色を決定し、これを色合成情報とする。塗りつぶし色決定ユニット７２４は、生成した色合成情報、画素終了情報およびスキャンライン終了情報を画素生成ユニット７２５へ送出する。画素生成ユニット７２５では、受信した情報から当該走査線の画素を生成し、画素出力ユニット７２６へ送出する。画素出力ユニット７２６は、画素生成ユニット７２５から受信した画素データをビットマップデータとしてプリンタなどへ出力する。以上のようにして、画素合成部１０６は、走査線上の画素または画素から画素のスパンに対して有効になっている図形の色を合成して画素の座標順にビットマップデータを出力する。
【００３６】
又、第１実施形態は、処理能力の異なる複数のプロセッサを備え、描画命令分配部１０３が図形オブジェクトに対応した描画命令列の処理に必要となる演算能力に応じて、複数のプロセッサから当該描画命令列を処理させるべきプロセッサを選択する。従って、図１Ｂでは図形オブジェクトを描画するためのプロセッサとして２つのプロセッサを設けた例を示したが、プロセッサの数はこれに限られるものではない。
【００３７】
以上述べたように、第１実施形態によれば、ＰＤＬに含まれる図形をそれぞれ必要十分な機能を有するプロセッサに割当て並列に処理することにより、回路規模の過剰な増大なしに描画時間を短縮することができる。
【００３８】
＜第２実施形態＞
上記第１実施形態では、能力の異なる複数のプロセッサを用意し、描画命令の実行に必要な演算能力に応じて描画命令を複数のプロセッサのいずれかに振り分ける構成を示した。第２実施形態では、同じ能力のプロセッサを複数用意しておき、高い処理能力が必要な描画命令（処理時間のかかる描画命令）については、描画される図形オブジェクトを分割し、複数のプロセッサで分担して１つの図形オブジェクトを描画させる。
【００３９】
図５は第２実施形態による描画処理装置５００の構成例を示すブロック図である。尚、描画処理装置５００を適用可能な画像形成装置の構成例は図１Ａに示したとおりであり、第２実施形態では、描画処理装置１００の代わりに描画処理装置５００が配置されることになる。
【００４０】
図５において、命令解析部１０１、図形グループ決定部１０２、図形グループ対応テーブル４００は第１実施形態（図１Ｂ）と同様の構成である。描画命令分配部５０３は、図形グループ決定部１０２で決定されたグループ情報に基づいて、プロセッサ５０１ａ〜５０１ｃに図形オブジェクトに対応する描画命令列を分配する。第２実施形態では、画像処理部であるところの複数のプロセッサ５０１ａ〜５０１ｃは、すべて同じ描画処理能力を有するものとする（但し、複数のプロセッサ間に処理能力の差があってもかまわない）。画素合成部５０４はプロセッサ５０１ａ〜５０１ｃによって生成された画素情報を併合してビットマップデータを生成し、これを印刷データに対応するビットマップデータとして出力する。
【００４１】
上述したように、図形グループ決定部１０２は、描画命令列を高次関数演算を必要としない第１グループの図形オブジェクトの描画命令列と、高次関数演算を必要とする第２グループの図形オブジェクトの描画命令列に分ける。図形グループ決定部１０２は、描画命令列を、第１グループ、第２部グループのいずれに属するかを示すグループ情報とともに描画命令分配部５０３に提供する。描画命令分配部５０３は、第１グループの図形オブジェクトの描画命令列を第１描画命令列とし、高次関数演算を必要とする第２グループの図形オブジェクトの描画命令列を第２描画命令列とする。そして、描画分配部５０３は、第１描画命令列をプロセッサ５０１ａ〜５０１ｃのうちの単一のプロセッサ（例えばプロセッサ５０１ａ）に分配し、第２描画命令列を単一または複数のプロセッサ（例えばプロセッサ５０１ｂ、５０１ｃ）に分配する。
【００４２】
プロセッサ５０１ａ〜５０１ｃは、加算器、論理演算器、シフト演算器を有するプロセッサであり、描画命令分配部５０３によって分配された描画命令列を処理してラスタ画像を生成するためのソフトウェアを実行する。こうして、プロセッサ５０１ａ〜５０１ｃにより第１描画命令列に対応する第１ビットマップデータと第２描画命令列に対応する第２ビットマップデータが生成される。画素合成部５０４は、プロセッサ５０１ａ〜５０１ｃで生成された第１ビットマップデータと第２ビットマップデータを印刷データの中で定義された上下関係に基いて合成し、印刷データに対応する画像のビットマップデータを出力する機能を有する。
【００４３】
以下、第１実施形態と同様に、図２に示す描画命令に従って図３に示す図形を描画する場合について第２実施形態の画像形成装置による詳細な動作を説明する。
命令解析部１０１及び図形グループ決定部１０２により、記述２０１が第１グループの描画命令列に分類され、記述２０２が第２グループの描画命令列に分類される処理までは第１実施形態と同様である。
【００４４】
描画命令分配部５０３は、第１グループに分類された一図形オブジェクト分の描画命令列を単一のプロセッサに分配する。例えば、一つの三角形オブジェクト３０１に対応する描画命令列（記述２０１）はプロセッサ５０１ａに供給され、第1実施形態で説明したような手順で三角形が描画される。
【００４５】
一方、第２グループに分類された一図形オブジェクト分の描画命令列については、当該図形の大きさが所定の描画範囲（例えば走査線方向の大きさ）に収まるか否かを判断し、収まらない場合は描画範囲指定とともに複数のプロセッサに分配する。この場合、所定の描画範囲で図形を分割し、分割された部分が別々のプロセッサで描画されるように、描画範囲指定とともに複数のプロセッサに描画命令列を送る。所定の描画範囲に収まる場合は、単一のプロセッサに描画命令列を送る。即ち、分割数と等しい数のプロセッサに一つの図形オブジェクトの描画を分担させることになる。分割数が具備するプロセッサの数を超えた場合には、例えば、図形オブジェクトをプロセッサ数で分割するようにすればよい。或いは、プロセッサに複数の分割部分を処理させるようにしてもよい。例えば５つに分割された図形オブジェクトを３つのプロセッサで実行する場合には、２つのプロセッサに２つの分割部分を、１つのプロセッサに１つの分割部分を処理させるように分配するようにしてもよい。尚、本実施形態の場合、図形オブジェクトの大きさが所定の描画範囲に収まる場合は、第２グループに分類された描画命令列であっても単一のプロセッサにより処理されることになる。尚、第２グループに分類された図形オブジェクトの分割方法はこれに限られるものではなく、例えば、必ず所定数に分割するといったように、種々の変形が可能である。
【００４６】
プロセッサ５０１ａ〜５０１ｃは、入力された描画命令列を実行して描画処理を行う。描画範囲指定がなされている場合は、指定された範囲内について描画処理を行う。第２グループの描画命令を実行する際には、乗算を伴う高次関数の計算が必要とされるため、乗算を高速に実行する必要がある。第１実施形態では、このような描画命令に対応するべく高速なプロセッサを用いたが、第２実施形態では描画範囲を小さくして、複数のプロセッサで並列処理することにより、第２グループの描画命令による描画処理を高速に実行する。
【００４７】
例えば、記述２０２により示される曲線オブジェクト３０２は、図６に示されるように部分Ａと部分Ｂの２つに分割され、部分ＡとＢは２つのプロセッサにより並列に描画される。これは、記述２０６の「curveto」におけるパラメータを変更して、部分Ａのみを描画する描画命令と、部分Ｂのみを描画する描画命令を生成し、それぞれ別々のプロセッサへ送ることで実現できる。或いは、描画範囲を示すコマンドを付加できる命令体系であれば、そのような描画範囲指定コマンドを付加して各プロセッサへ描画命令列を送るようにすればよい。
【００４８】
画素合成部５０４は複数のプロセッサ５０１ａ〜５０１ｃから入力されたビットマップデータを合成して印刷データに対するビットマップデータとして外部へ出力する。上記例の場合、三角形オブジェクト３０１を含むビットマップデータと、曲線オブジェクト３０２の部分Ａを含むビットマップデータと、曲線オブジェクト３０２の部分Ｂを含むビットマップデータが合成され、図６に示すようなビットマップデータが生成される。
【００４９】
尚、図２の印刷データにおいて三角形２０３と曲線２０６が重なる場合、画素合成部503は次のように処理する。即ち、画素合成部５０４は、描画命令列の中で先に出現する記述２０３に対応する三角形オブジェクト３０１が後に出現する記述２０６に対応する曲線オブジェクト３０２によって上書きされるようにビットマップデータを合成する。
【００５０】
以上のように、第２実施形態では、印刷データに含まれる図形は描画に高次関数の計算が必要か否かにより、それぞれ異なる数のプロセッサに割当てられ、並列に処理される。即ち、描画処理の重さに応じて１つの図形の描画を複数のプロセッサにより分担させて、効率よく並列処理を実行させることにより、描画処理の高速化が達成される。
【００５１】
尚、図５に示した第２実施形態は、プロセッサ５０１ａ〜５０１ｃにおいて走査線毎に各図形の交点座標のみを計算する実施形態に応用可能である。この場合、図7により上述した画像処理パイプライン７２の構成を画素合成部５０４に適用すればよい。即ち、画素合成部５０４は走査線毎に複数のプロセッサ５０１ａ〜５０１ｃから走査線毎に座標データを受け取り、座標データを走査線方向座標順にソートする。そして、交点と図形との対応から走査線上で有効な図形を決定し、走査線上の画素または画素から画素のスパンに対して有効になっている図形の色を合成して画素の座標順にビットマップデータを出力する。
【００５２】
尚、図５では３つのプロセッサを示したが、これに限られるものではない。又、第１実施形態と第２実施形態の構成を組み合わせてもよい。例えば、第１プロセッサと第２プロセッサを複数個ずつ設けておき、第１グループに分類された描画命令列は第１プロセッサへ優先的に分配し、第２グループに分類された描画命令列は第２プロセッサへ優先的に分配するようにする。そして、第２プロセッサの利用状況により、第２グループの描画命令列を第１プロセッサに実行させる状況が生じた場合には、複数の第１プロセッサにより第２グループの描画命令列を実行させる。
【００５３】
以上述べたように、第２実施形態によれば、ＰＤＬに含まれる図形をそれぞれの演算負荷に応じて単一または複数のプロセッサに描画処理が割当てられ、並列に処理されることになる。このため、回路規模の過剰な増大なしに描画時間を短縮することができる。
【図面の簡単な説明】
【００５４】
【図１Ａ】第１実施形態による画像形成装置の構成例を示す図である。
【図１Ｂ】第１実施形態による描画処理装置の構成例を示す図である。
【図２】PostScriptによる描画コマンド例を示す図である。
【図３】図２の描画コマンドにより描画される画像を示す図である。
【図４】図形グループ対応テーブルのデータ構成例を示す図である。
【図５】第２実施形態による描画処理装置の構成例を示す図である。
【図６】図２の描画コマンドにより描画される画像において、画像の分割を説明する図である。
【図７】プロセッサからの交点座標に基づいて画素合成を行う画素合成部の構成を説明するブロック図である。
【図１Ａ】
2008027395.tif 000003
【図１Ｂ】
2008027395.tif 000004
【図２】
2008027395.tif 000005
【図３】
2008027395.tif 000006
【図４】
2008027395.tif 000007
【図５】
2008027395.tif 000008
【図６】
2008027395.tif 000009
【図７】
2008027395.tif 000010