JPH05324844A - 図形出力装置 - Google Patents

図形出力装置

Info

Publication number
JPH05324844A
JPH05324844A JP4131247A JP13124792A JPH05324844A JP H05324844 A JPH05324844 A JP H05324844A JP 4131247 A JP4131247 A JP 4131247A JP 13124792 A JP13124792 A JP 13124792A JP H05324844 A JPH05324844 A JP H05324844A
Authority
JP
Japan
Prior art keywords
division
pixel set
graphic
processing
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.)
Pending
Application number
JP4131247A
Other languages
English (en)
Inventor
Eri Nakamura
恵理 中村
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson 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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP4131247A priority Critical patent/JPH05324844A/ja
Publication of JPH05324844A publication Critical patent/JPH05324844A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Controls And Circuits For Display Device (AREA)
  • Image Generation (AREA)

Abstract

(57)【要約】 【目的】 図形出力装置において、出力する直線、曲線
の描画位置に関わらず一様に図形の分割を可能にし、分
割された各々の図形に対して画素集合発生処理を並列実
行すること。 【構成】 図形出力装置において、直線に関しては始
点、終点2点間の長さ、曲線に関しては目的とする曲線
を近似する折れ線を形成する線分の長さの総和を検出す
る画素集合発生範囲検出手段2と、図形を2分割するか
しないかを判定する分割判定手段3と、該分割判定手段
3が分割しないと決定した場合には、実画素を発生させ
る画素集合発生手段7により処理し、分割すると決定し
た場合には図形を2分割し、分割した各々の図形に関す
る図形情報を決定する画素集合発生範囲分割手段4によ
り2つのプロセッサで画素発生を並列に実行する並列実
行手段とを有する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、印刷処理装置、グラフ
ィックディスプレイ等の図形出力装置に関し、特に直
線、曲線等の図形の画素集合発生処理を高速に実行する
図形出力装置に関する。また、前記処理を並列実行する
ための処理分散の技術及び、処理分散時に処理系の最適
な分散粒度を自動的に選択する技術に関する。
【0002】
【従来の技術】印刷装置、グラフィックディスプレイ等
の出力装置へ図形を出力する場合、各1ピクセルごとに
適当なビット数を対応させた記憶領域(以下イメージメ
モリ領域と呼称する)を用意し、この中に図形の形状を
表す画素集合を発生させる方法を用いるのが一般的であ
る。
【0003】図形描画の中で最も基本的なものは、直線
線分を発生させることである。すなわち、始点と終点の
2点の座標が与えられた時、その2点間を結ぶ画素集合
を始点から順に発生させ、イメージメモリに書き込む方
法である。2点間を結ぶ直線にできるだけ近い画素を発
生させる補間方法には、一般にBresenhamのアルゴリズ
ムを使用した補間画素発生方法が用いられる。また、曲
線を描画する場合にはBezier曲線、スプライン曲線、円
弧等を用い、実際の画素集合の発生には曲線を折れ線で
近似する方法が一般的である。上記のいずれの場合でも
図形の画素集合を発生させる場合は、単一の画素発生装
置で順次実行している。
【0004】しかし、直線や曲線等の図形の画素集合を
発生させる処理において、与えられた座標群により補間
画素集合を発生する処理は、どの部分から発生させなけ
ればならないという規定はない。従って、画素集合発生
範囲を分割し、それぞれの範囲ごとに別の場所で画素集
合発生処理を実行し(並列処理)、その後合成処理を実
行しても、前者と同様の処理結果が得られることは明か
である。特開平02-210394「グラフィックディスプレイ
制御装置」は、一つの直線の描画を分割し、並行して実
行することにより、図形出力を高速に実行可能とするこ
とを目的とした技術である。上記技術は、画素集合を出
力する対象となるグラフィックディスプレイを複数に分
割し、画素集合発生の対象となる直線に関して領域を分
割している直線との交点の座標を求め、分割された領域
に含まれる線分の始点、終点をそれぞれ求め、それらの
点により分割された各領域に対応したイメージメモリご
とに画素集合発生処理を同時に並行して行っている。
【0005】
【発明が解決しようとする課題】しかし、上記の方法は
複数個の分割領域に渡って描画される直線に対しては有
効であるが、図21に示すように処理対象となる直線P
0、P1が分割した領域の境界線と交わらず、ある1つ
の領域に入ったときは分割されず、多重度が上がらな
い。また、一つの領域に出力する図形が集中した場合、
プロセッサに対する負荷が片寄り、並列処理の効果を効
率的に利用できないという問題もある。
【0006】さらに、この方法を用いて曲線の描画に対
応させようとした場合、図22に示す4点P0、P1、
P2、P3からなるBezier曲線の点列発生に見られるよ
うに、発生させようとする曲線上の形状を決定する点の
座標データ(この例では点P1、P2)を図形情報とし
てもつ場合には、与えられた座標データがいくつかの領
域に渡って存在するにも関わらず、実際に発生させる曲
線の画素集合は分割して発生処理を実行できないという
問題もある。
【0007】この様な並列処理系を実現する場合、系に
最適な処理分散の粒度をどの様な手段で取り出すかが問
題となる。分散粒度が必要以上に小さい場合、処理割当
てを行うための処理時間の比率が実際の処理時間に比較
して無視できず、むしろ処理速度を落とす可能性すらあ
る。一方、分散粒度が大きすぎる場合、処理の並列化が
行われずプロセッサ資源やメモリ資源の有効利用ができ
ない。
【0008】本発明はこの様な問題を解決するために鑑
みられたものであり、その目的とするところは、点列発
生処理の対象となる図形が、直線であっても曲線であっ
ても同様の方法で分割処理を行い、与えられた座標の位
置的な制約に係わらず、任意の座標をもつ直線、曲線に
対して分割を可能にすることにある。さらに、分散粒度
を最適なものに選択でき、多重度を一様に上げ、並列処
理を効率よく実行でき、図形出力処理の高速化を図るこ
とである。
【0009】
【課題を解決するための手段】この様な問題を解決する
ために本発明の図形出力装置では、始点と終点さらに図
形発生に必要となる座標を含む図形情報から、図形の形
状を表す画素集合を発生させる図形出力装置において、
(a)直線に関しては始点と終点の2点間の長さ、曲線
に関しては目的とする曲線を近似する折れ線を形成する
線分の長さの総和を検出する画素集合発生範囲検出手段
と、(b)前記の手段により検出された値とあらかじめ
定めた値とを比較し、その結果を受けて図形を2分割す
るかしないかを判定する分割判定手段と、(c)前記分
割判定手段が分割しないと判断した場合に、実画素を発
生させる画素集合発生手段と、(d)前記分割判定手段
が分割すると決定した場合に、図形を2分割し、分割し
た各々の図形に関して新たな始点、終点、図形発生に必
要となる座標を含む図形情報を決定する画素集合発生範
囲分割手段と、(e)前記画素集合発生範囲分割手段に
よって分割された図形に関する情報を、2つのプロセッ
サに各々分担して与え、該各プロセッサでは与えられた
図形情報を用いて画素集合の発生を並列に実行する並列
実行手段と、を少なくとも有することを特徴とする。
【0010】
【実施例】以下、本発明について、実施例に基づき詳細
に説明する。
【0011】[実施例1]図1に本発明の実施例の基本
構成を示す。印刷処理装置やグラフィックディスプレイ
等の表示装置に図形を出力する際、アプリケーションプ
ログラムから出力された図形描画のための図形情報デー
タを取得し、実画素発生を行う処理に関して処理の分散
を行う。後述する手順で各図形ごとに画素集合発生範囲
を分割し、複数のプロセッサ上に割当てて並列実行によ
り順次実画素を発生させる。生成された実画素集合をイ
メージメモリ領域に書き込み、量子化された画素データ
をグラフィックディスプレイあるいはプリンタに転送す
ることによって図形出力を得る処理構成をとる。並列処
理を実行するには相互に影響を与えない実行単位に処理
が分割され、それらが並列性を帯びている必要がある。
本発明は、従来単一のプロセスとして行っていた画素集
合発生処理を、画素集合発生範囲を再帰的に分割するこ
とにより、直線に限らず曲線に対しても処理に並列性を
もたせている。これにより複数のプロセッサによる並列
処理が可能となり、処理速度が向上する。
【0012】図1の1は、アプリケーションによって出
力された図形情報である。図形情報は、直線や曲線の図
形の始点座標、終点座標、形状を表す時に必要となるそ
の他の座標データが記述されている。画素集合発生範囲
検出手段2はこの図形情報1を読み込み、直線や曲線そ
れぞれの場合ごとにあらかじめ用意された検出方法によ
り図形を発生させる画素集合の長さを検出する。各図形
に対する長さの検出方法は、図5、図6、図7で詳細を
述べる。分割判定手段3では、画素集合検出手段2によ
り検出された値とあらかじめ定められた値を比較し、前
者が後者以上の場合は分割処理をすべきと判断し、画素
集合発生範囲分割手段4に移行する。一方、前者が後者
より小さい場合は画素集合発生手段7に移行し、実画素
データを生成させる。画素集合発生手段7では、従来の
画素集合発生アルゴリズムに従って折れ線近似等の処理
を実行し、実画素を発生させる。画素集合発生範囲分割
手段4は、直線や曲線に応じて発生させる画素集合の範
囲を決められた分割方法を用いて2分割する。この際、
分割の境界となる点の座標は分割された片側の図形の終
点座標となり、もう片側の始点座標となる。さらに、分
割時には分割前の図形に関する図形情報と同様のデータ
構造を持ち合わせる必要がある。この後、画素集合発生
範囲分割手段4により分割された図形情報はプロセス待
ち行列8に送られ、複数のCPU5に分散される。プロ
セス実行を指定されたプロセッサ上でも上記手順と同様
の画素集合発生処理を行うプログラムが稼働される。こ
のとき、割り当てられた図形情報を受けとって処理を実
行することから、図形情報は分割後も分割前と同様のデ
ータ構造をとるようになっている。オペレーティングシ
ステム10は、スケジューラ9により複数のプロセスに
対するCPU時間の割当てを行う。このため、複数のC
PU5の管理下で生成されるプロセス6を同時に実行可
能であり、画素集合発生処理を並列実行できる。スケジ
ューラ9が画素集合発生処理を各CPUに割り当てる
と、割当てられたプロセッサは再度取得した図形情報を
もとにプロセス6を起動して手段2、3、4の一連の処
理を実行する。各プロセッサで生成された実画素データ
はイメージメモリ11に蓄積され、出力装置12に出力
される。
【0013】本実施例は複数のプロセッサが同一コンピ
ュータ上にある場合に関して説明しているが、ネットワ
ーク上で粗結合されているコンピュータ上ではネットワ
ークデバイスドライバを使用してデータ列を転送し、分
散並列実行することが可能である(後述)。
【0014】本発明を構成する各手段に関して詳細を述
べる。図形情報1はアプリケーションにより出力された
図形情報の記述が、コンピュータの処理に適した中間コ
ード形式に変換されたものである。プリンタやCRT等
の実際の出力装置の画素の解像度に依存しないようにす
るためアプリケーションから出力される図形描画手順の
記述の仕様の中には、図形記述の際にユーザ座標系と呼
ばれる任意の座標系の指定を認めるものがある。一方、
実際に出力する画素は出力装置の物理的な仕様に従った
デバイス座標系上の画素として扱われるため、これらの
解像度の変換を行い、実画素データの座標系に合わせた
記述を得る必要がある。解像度に応じた変換を行った後
の図形情報1は、図2のようにデータ列のバイト数及び
その他の付加情報を含むヘッダ21と終了符号24に囲
まれた図形要素を区別する識別子22と各図形の形状を
表すのに必要な実データ列23からなる。各図形要素を
表す実データ列はあらかじめ定められた構造を持ち、表
1に示す構成をとる。
【0015】
【表1】
【0016】本実施例では図形要素として直線と曲線を
扱い、曲線を構成する時に一般的に扱われる図形として
3次Bezier曲線、円弧を取り上げている。表1の各図形
要素のデータ構造に含まれるx座標、又はy座標データ
と円弧における中心角を表すデータは、上位16ビット
を整数部、下位16ビットを小数部とみなした固定小数
点実数で与えられる。表1中の記号は図3の(a)
(b)(c)に表記されている記号と対応している。
(a)は直線の説明図で始点、終点の各x、y座標を図
形情報としてもつ。(b)は3次Bezier曲線の説明図で
あり、始点P0、終点P1、2つの制御点P2、P3に
より得られる曲線である。4点P0、P1、P2、P3
が与えられたとき、この4点から得られる3次Bezier曲
線B(t)はパラメータtを用いて次の多項式(ア)で
示される。(c)は円弧の説明図である。円弧は点Cを
中心とし、rを半径としてもつ。図中ang1、ang
2はそれぞれ正の方向のx軸から反時計方向に計測した
時の始点P0、終点P1での中心角である。
【0017】 B(t)=(1−t)3P0+3t(1−t)2P1+ 3t2(1−t)P2+t3P3 0≦t≦1 ‥‥(ア) 次に、画素集合発生範囲検出手段2と分割判定手段3に
ついて、処理内容を図4の流れ図を用いて説明する。こ
の処理は図形情報から識別子により直線、Bezier曲線、
円弧等の図形要素を識別し、各図形要素に応じて画素集
合発生範囲の長さ、或は長さに相当する近似折れ線の長
さを検出し、取得された長さの値により画素集合発生範
囲を分割するかしないかの判定を行い、処理の分岐を行
うものである。まず、上記で説明した図形情報を読み込
み(41)、図形要素の実データ列の先頭に付いている
識別子を認識する。この値が”0x10”であれば直線
と判断し、”0x20”または”0x30”であればそ
れぞれBezier曲線、円弧であると判別する(42)。判
別された図形要素に対して、それぞれ定められた方法に
より画素集合の長さを検出する(43)(44)(4
5)。後述する方法で検出した画素集合のおよその長さ
により画素集合発生範囲を分割するかしないかを判定す
る(46)。判定は図形要素ごとに長さの値の検出時に
行うが、本実施例では全図形要素に共通する基準として
取得された長さの値が100以上であった場合に分割を
実行する。この基準値は出力装置の解像度により最適値
を用いればよい。分割すると判定された場合、画素発生
範囲分割処理を実行する(47)。他方、分割の必要が
ない場合は従来のアルゴリズムを用いて画素集合発生処
理を実行する(48)。
【0018】上記の直線、Bezier曲線、円弧の画素集合
の長さの検出方法及び判定方法を述べる。まず、図形要
素が直線の場合(43)、図3(a)中の2点P0、P
1間の長さにより分割の有無を判定する。手順としては
直線のx座標の変位量を検出して基準値と比較すること
により分割の有無を判定し、この値が基準値より小さい
場合はy座標の変位量を用いて評価の対象とする。さら
にそれでも基準値より小さかった場合には、2点P0、
P1間の長さを評価の対象とする。直接、直線の長さを
用いて評価を行わないのは無駄な計算量を省くためであ
る。上記手順を図5の流れ図を用いて説明する。まず、
2点の各x成分x0、x1に対して変位量|x1−x0
|を算出する(51)(|x1−x0|はx1−x0の
絶対値を意味する)。この結果得られたΔxが100以
上であれば、y成分の変位量に関係なく2点間の長さは
100以上であることは明らなため分割有りの判定をす
る(55)。一方、Δxが100より小さい値の場合、
今度は2点の各y成分y1、y0に対して変位量|y1
−y0|を算出する(52)。この結果得られた値Δy
が100以上であれば分割有りの判定をするが、そうで
ない場合は|x1−x0|2+|y1−y0|2を算出
し、10000以上であるか評価する(53)。通常、
上記の2点間の長さと基準値100を用いて評価する
が、計算量の増加を招くため|x1−x0|2+|y1
−y0|2の2乗の和を用いて比較評価を行う。この値
が10000以上である場合は分割有りの判定をし(5
5)、”ー1”の値を返すが、そうでない場合は分割無
しの判定をし(54)、|x1−x0|2+|y1−y
0|2の値を返す。
【0019】次に、Bezier曲線の長さの検出方法(図4
の(44)の操作分岐)について、図6の流れ図に従い
説明する。図3(b)に示されている与えられた4点P
0、P1、P2、P3から得られる直線P0P1、直線
P1P2、直線P2P3の長さの総和を注目する曲線の
長さを近似する折れ線の長さであると定め、分割の有無
の判定に用いる。上記の折れ線は3つの線分から構成さ
れているため、直接線分の総和の長さをもって評価の対
象とするのではなく、まず1つ1つの線分について前記
の直線の分割・判定方法を用いて分割の有無を調査す
る。次に各線分が分割されないとわかった場合は順に線
分の長さの和を求め、評価していく。前記で述べた直線
の長さの評価方法を用いて直線P0P1について分割の
有無を判定する(61)。ここで分割無しの判定を得た
場合は、次に直線P1P2に対して同様の評価を行なう
(62)。ここでも分割無しの判定がされた場合はさら
に直線P2P3に関して同様の評価を行なう(63)。
結局、曲線近似の折れ線を構成する各直線P0P1、P
1P2、P2P3において、すべて分割有りの判定がさ
れた場合は当然注目している曲線に対して分割有りの判
定をするが、一方で分割無しの判定がされた場合は直線
P0P1の長さと、直線P1P2の長さを算出し、加算
した長さについて評価を行う(64)。直線の長さの算
出は直線の長さの評価時に返される|x1−x0|2
|y1−y0|2の値を利用し、この値の平方根の正の
値を直線の長さとする。両方の直線の長さの和が基準値
100以上の場合は分割有りと判定し、そうでない場合
は上記の2直線の長さの和にさらに直線P2P3の長さ
を加えた値を取得し、評価する(65)。この値が10
0以上の場合は、分割有りと判定するが(67)、それ
以外の場合は分割無しと判定する(68)。以上の方法
によりBezier曲線の長さを検出し、分割の有無の判定を
実行する。
【0020】次に、図形要素が円弧の場合(図4の(4
5)の操作分岐)について図7の流れ図を用いて説明す
る。図3(c)に示されている2点P0、P1の円弧の
長さを分割の有無の判定に使用する。円弧の長さは円の
直径と円周率πを用いた一般的な公式により求まる円周
の長さと、円弧のなす扇形の中心角の円に対する比率に
より算出する。その手順を以下に説明する。円弧の場
合、表1に示した与えられる図形情報の中から、半径r
の値と、始点P0、終点P1でのそれぞれの中心角an
g1、ang2の値を用いる。まず、円弧からなる扇形
の中心角θを|ang2−ang1|として算出する
(71)。次に、角度θである円弧の長さは(2×半径
r×π×θ/360)に等しいという公式を用いて円弧
の長さを算出し、基準値100を比較して分割の有無の
判定を行う。しかし、本実施例では計算量の軽減のため
両項にあらかじめ(360/π/2)を乗算した値を用
いて比較する(72)。半径r×θの値が基準値”57
32”以上であるか判定し(73)、以上であった場合
は注目している円弧の分割有りとする(75)。他方、
基準より小さい値であった場合は分割無しと判定する
(74)。
【0021】次に、画素集合発生範囲分割処理について
説明する。この処理も各図形要素により分割手続きは異
なるが、共通して2分割することにする。基本的な構成
は図11に示すように図形情報中の必要な値91の入力
部92と、それらの値を用いて実際の分割座標等を算出
する処理を実行する分割処理部93、分割処理の実行に
より取得された情報からさらに次の分割処理に必要とな
る図形情報95、96を出力する処理を行う出力部94
から構成される。それぞれの図形要素に対する分割方法
について以下に述べる。
【0022】図8の直線81について、分割処理を行う
ことを例に挙げて図形要素が直線の場合の説明を行な
う。直線81は2点P0、P1の各x、y座標成分(x
0、y0)、(x1、y1)を処理の入力値としても
つ。入力値を用いて直線81の2分割点P2の座標成分
(x2、y2)を求めると次のようになる。
【0023】x2=(x0+x1)/2 y2=(y0+y1)/2 その結果、点P2は直線82の終点、及び直線83の始
点として出力される。分割後の2組の直線82と83は
共に図形情報としてそれぞれ始点座標(x0、y0)
(x2、y2)、終点座標(x2、y2)(x1、y
1)が出力され、両方の直線に対して直線81に対する
処理と同様の処理が行われるが、図形情報の欠如を招く
ことはない。
【0024】図9を用いてBezier曲線の分割方法を説明
する。図中、P0、P1、P2、P3の4点が図形情報
として入力される。Bezier曲線を形成する曲線の点は、
前記の多項式(ア)のパラメータtの値を変化させてい
くことにより得られるが、この方式は画素集合発生範囲
を分割して処理を実行する本発明には適当でないため、
次の方法をとる。まず、3つの直線P0P1、P1P
2、P2P3の各々の中点P4、P5、P6をそれぞれ
求める。次にそれらの点からなる2つの直線P4P5、
P5P6の各々の中点P7、P8を求める。次に直線P
7P8の中点P9を求める。以上の処理から得られる点
P9は、式の上で次のようにまとめることができる。
【0025】 P9=P7+P8 =(P4+P5)/2+(P5+P6)/2 ={(P0+P1)/2+(P1+P2)/2}/2 +{(P1+P2)/2+(P2+P3)/2}/2 =(P0+3P1+3P2+P3)/8 この点P9がBezier曲線上の点であることは、式(ア)
においてt=1/2とした時に得られる結果が下記のよ
うになることから明かである。
【0026】 B(1/2)=(1−1/2)3P0+3t(1−1/2)2P1 +3(1/2)2(1−1/2)P2+(1/2)3P3 =(P0+3P1+3P2+P3)/8 次に点P9を分割点として曲線84を2分割する。分割
後の曲線85は点P0を始点、点P9を終点とし、点P
4と点P7を制御点とする曲線であり、曲線86は点P
9を始点、点P3を終点とし、点P8と点P6を制御点
とする曲線である。これらの曲線がBezier曲線であるこ
とは周知のため、分割後の2曲線85と86も曲線84
と同様の図形情報を得られることは明らかである。
【0027】次に、図10の87を用いて円弧の分割処
理を説明する。円弧のなす扇形の中心角の分割比と、そ
の分割された中心角をもつ円弧の分割比は等しいという
関係から注目する円弧がなす扇形の中心角を分割するこ
とで、円弧の画素発生範囲を分割する方法をとる。分割
処理の入力値として円弧P0P1の図形情報の内、始点
までの中心角ang1と、終点までの中心角ang2を
設定する。θ=|ang1−ang2|は円弧P0P1
のなす角度であり、この角度を2等分することを用いて
円弧の分割を行う。従って、分割後の片側の円弧88の
場合は 始点までの中心角=ang1+θ/2 終点までの中心角=ang2 となり、もう一方の円弧89の場合は 始点までの中心角=ang1 終点までの中心角=ang2−θ/2 となって出力される。
【0028】以上で、画素集合発生範囲の分割処理は完
了する。分割処理は実行される度に分割後の図形情報を
待ち、行列に出力する。
【0029】上記の一連の手順を直線に関して疑似的な
プログラミング言語を使用して記述すると、図12のよ
うになる。手続きplotは、引数として点A、Bの2つの
座標を受け取り、その座標を結ぶ線分ABを発生する手
続きである。変数型pointはx、y座標を格納する
構造体として定義する。条件文(101)で線分ABの
長さが基準値100より小さいかを判断する。もし小さ
いと判断された場合は引数で与えられている図形情報を
用いて直線の画素集合発生手続きを実行する(10
2)。一方、長さが基準値以上であった場合は線分AB
の中点Mを求め(103)、この点を直線の分割点とす
る。cobegin(103)とcoend(107)
間の処理は並列処理するものとし、新たに分割点Mを引
数として用いて自分自身の手続きを再帰的に呼び出して
いる(105)(106)。
【0030】この手続きにA=(100、35)、B=
(512、356)の座標値を与えて実行してみると、
処理系の内部では分割終了の条件に達するまで再帰的に
上記手続きを呼びだすため、図13に示すように2n個
(nは自然数)のプロセスを並列的に作成することにな
る。従って、記述に並列性をもたせてプログラムするこ
とにより、従来の単一処理を並列処理にする事が可能と
なる。Bezier曲線や円弧に対しては与えられる図形情報
が異なるため手続きに渡される引数、画素集合発生範囲
の分割方法が異なるが、基本的には直線の画素集合発生
手続きと同様である。待ち行列8に蓄積された分割後の
各図形に対する処理要求は、オペレーティングシステム
10のスケジューラ9により使用可能なプロセッサに割
り当てられる。使用可能なプロセッサは上述した画素集
合発生処理のプロセスを起動できるようなプロセッサを
検出し、できるだけ多くのプロセッサに処理を割り当て
る。この時、プロセス間通信によりプロセッサの負荷を
検出し、負荷の少ないプロセッサに優先的に処理をスケ
ジュールすることで処理の待ち時間を軽減する。プロセ
ッサの負荷はオペレーティングシステムのスケジューラ
に対する要求の待ち行列の長さを検出することで判断で
きる。処理の分割が終了した時点で、各プロセッサによ
って画素集合発生手段7が実行される。この処理は従来
から一般的に行われている次の方式を使用する。直線に
対してはBresenhamのアルゴリズムを用いて実画素発生
を行う(J.E.Bresenham,"Algorithm for Computer Cont
rol ofa Digital Plotter," IBM SystemJournal,Vol.4,
No.1,1965 参照)。Bezier曲線や円弧等の曲線に対し
ては、補間点列を発生させ、折れ線近似により実画素を
発生させる。発生された実画素データはイメージメモリ
に蓄積される。該イメージメモリとして複数のプロセッ
サの共有メモリを使用するか、各プロセッサごとのメモ
リを使用し、後で合成処理を実行するかは処理系が高速
処理を実現できる方を選択し、採用する。イメージメモ
リへの実画素データの書き込み以降の出力の処理は各出
力装置に対する従来の方法を実行する。
【0031】[実施例2]本発明の画素集合発生処理プ
ログラムが、なんらかの通信手段を介して接続されてい
るコンピュータ上のプロセッサにより実行される場合に
ついて、図14に基づき説明する(他の情報機器との間
の通信手段及び該通信手段を実現するハードウェアを以
後「ネットワーク」と呼称する)。ネットワークは、ハ
ードウェアに依存した物理的なアドレスと、上層のプロ
グラムから参照される論理的なアドレス管理機構をも
つ。これらのアドレスはネットワーク上の特定のコンピ
ュータへのパケット転送に用いられるが、多くのネット
ワークプロトコルより抽象化の進んだ上層の処理手順を
もっている。本発明の実施例においては、これらの上層
の処理ルーチン群がオペレーティングシステムによって
供給されているものとして説明を行う。この様な管理機
構によりプログラムはコンピュータを名前と論理アドレ
スにより検出可能であり、さらに通信相手のプロセスと
は通信ソケットもしくは類似の機構を用いたパケットの
送信/受信が可能である。
【0032】図中コンピュータ121aは、コンピュー
タ121b、121c、121dとネットワーク122
によって接続されている。ここで、コンピュータ121
aで図形の出力要求が発生したとすると、アプリケーシ
ョンにより出力された図形情報データを中間コードに変
換した後の図形情報1をプログラム123は受けとり、
処理を実行する。プログラム123は、図1の手段2、
3、4を実行するプログラムである。つまり、図形情報
を受け取り、識別子により各図形要素を判別し、それぞ
れに定められた方法により、画素集合発生範囲の長さに
応じて範囲の分割処理を実行するものである。上記処理
を実行中、注目している図形要素のデータに対して分割
が行われないと判定された場合は、該図形要素データを
図形集合発生手段7に引き渡す。図形集合発生手段7は
従来の方法で直線、曲線の折れ線近似等を行い、実画素
集合を発生させる。また、図形要素データに対して分割
すると判定された場合、プログラム123は図形情報送
信ソケット127を介してネットワークに出力され、コ
ンピュータ123b、123c、123dに転送される
(プログラム123)。受信側では図形情報受信ソケッ
ト126を介して図形情報を受け取る。受信した図形情
報データを基に各コンピュータ上のプログラム123は
画素集合分割処理を実行し、分割有りと判定された場合
は再度図形情報送信ソケット127を介して他のコンピ
ュータに処理を分散させる。一方、分割が行われない場
合は、画素集合発生手段7により実画素集合を発生させ
る。実画素データを発生させたコンピュータが図形出力
要求を発したコンピュータ121a以外である場合、画
素データ送信ソケット129を介して出力要求を発して
いるコンピュータ121aに実画素データを転送する。
コンピュータ121aでは複数のコンピュータからの実
画素データを画素データ受信ソケット128を用いて受
信し、イメージメモリ領域125に蓄積する。コンピュ
ータ121a上で直接画素集合発生された実画素集合と
上記の転送された実画素集合は、画素合成処理装置12
4により合成され、この結果得られた画素集合データを
プリントエンジンコントローラあるいはグラフィックデ
ィスプレイコントローラに転送することにより出力を得
る。
【0033】[実施例3]実施例1、2では、画素集合
発生範囲分割判定手段の分割の有無の判定基準を画素集
合発生範囲の長さを用いてあらかじめ定められた基準値
と比較し、評価しているが本実施例では、上記判定基準
に付加するものとして画素集合発生処理に使用可能なプ
ロセッサの数による判定基準を設ける。
【0034】図15は本実施例3の構成図である。実施
例1の構成にプロセッサ数検出手段13が追加されてい
る。本実施例では該プロセッサ数検出手段により取得さ
れたプロセッサ数を用いて分割の有無を判定するもので
ある。その場合、画素集合を発生させる範囲の長さより
もプロセッサ数を判定の基準値として優先させる。つま
り、たとえ画素集合発生範囲が長さの基準値より大きか
った場合でも、分割数がプロセッサ数以上になった時点
で分割処理を終了させる。従って、本実施例の場合、複
数のプロセッサ間で授受される図形情報のデータには図
17に示すように2バイトの分割数を評価する値25を
含む。分割数を判定する値は各プロセッサが図形情報を
受け取った時点での分割数とする。つまり、まだ分割さ
れていない図形情報には値”1”が渡され、1回分割さ
れた図形情報には値”2”が渡され、さらにもう1回分
割された図形情報には値”4”が含まれる。本実施例に
おいて、図形情報に含めて渡される分割評価値は整数2
のベキ乗をとるため、分割を終了した時点で実際のプロ
セッサ数より画素集合発生範囲の分割数が大きくなる可
能性が充分ある。しかし、各プロセッサの処理の所要時
間は長短様々であり一様で有るとは限らない。そのた
め、各プロセッサに均等な数だけ処理を分担する必要は
なく処理の負荷の少ないプロセッサに分割時にプロセッ
サ数より多くなった分の処理を順次分担させるようにな
っている。この方法により、余ったプロセスの処理は吸
収され問題にならなくなる。
【0035】本実施例のプロセッサ数検出手段の動作を
説明する。プロセッサ検出手段13は、図形出力要求が
オペレーティングシステムの機能を利用して本発明を実
行するプロセスに伝えられると、ネットワークに接続さ
れているコンピュータ又はその他の情報機器の内部のプ
ロセッサ、あるいは自分自身の内部のプロセッサをでき
るだけ多く利用して処理を実行する。そのため、本プロ
セスは要求がでると同時になんらかの手段で接続されて
いるプロセッサに対してプロセス生成が可能かどうかの
確認を実行する。この時に使用可能であるプロセッサ数
をカウントし、分割判定手段に必要なプロセッサ数を獲
得する。上記手順を図16の流れ図を用いて説明する。
プロセッサ数のカウントを”1”に初期化する(14
1)。接続されているプロセッサにメッセージを送り、
図形出力処理における画素集合発生処理のプロセスを生
成できるか確認する(142)。メッセージを受け取っ
たプロセッサはメモリの使用状況を調べ、新たなプロセ
スの生成が可能であるか判断し、メッセージを返す。こ
のメッセージによりプロセス生成可能であるか判定を行
う(143)。判定の結果、プロセス生成可能であった
場合、プロセス起動のメッセージを該プロセスに送信し
起動する。同時にプロセッサ数のカウントを1増やす
(144)。他方、プロセス生成不可能であった場合
は、接続されている全てのプロセッサに対して確認をし
たかどうか判定し(145)、確認していないプロセッ
サがある場合は、上記の一連の処理を繰り返し実行す
る。全てのプロセッサに対して確認が終了すると、使用
可能と判断されたプロセッサの数を返す。
【0036】次に、本実施例における分割判定手段3の
動作の説明を行う。該分割判定手段が実施例1、2のも
のと異なるところは、分割有無の判定の基準にプロセッ
サ数を用いることである。これは使用可能なプロセッサ
数が少ない場合、必ずしも分割粒度が小さいことが並列
実行による処理速度の向上を招くとは限らないからであ
る。従って、処理対象となる画素集合発生範囲の分割基
準にプロセッサの数による制約を設け、プロセッサ数以
上に分割数がなった場合はたとえ画素集合発生範囲が長
さの基準値より大きかったとしても、分割を終了し、必
要以上の分割を避けるようにする。この手順を図18の
流れ図に従って説明する。まず、上記に示したプロセッ
サ数検出手段13から現在使用可能なプロセッサ数を取
得する(161)。さらに、与えられた図形情報からデ
ータ列に含まれている分割評価値を取得する(16
2)。分割評価値は元の分割処理を実行していない図形
要素に対しての現時点での分割数を意味するものであ
る。この結果得られた分割評価値とプロセッサ数の両方
の値を比較する(163)。もし、分割評価値がプロセ
ッサ数以上であった場合、分割無しの判定をする(16
8)。一方、分割評価値が、プロセッサ数より小さかっ
た場合は分割するかしないかは、実施例1、2と同様に
画素集合発生範囲の長さで判断する。これにより画素集
合発生範囲検出手段2を実行し、画素集合発生範囲の長
さを得る(164)。この長さが基準値”100”以上
であるかどうかを判定し(165)、値”100”より
小さい場合は分割無しの判定をする。他方、基準値以上
であった場合は図形情報に含まれる分割評価値を2倍に
し、データを書き換える処理を行う(166)。この処
理は画素集合発生範囲分割手段の中で分割と同時に図形
情報の分割評価値を書き換える処理を事前に行っている
だけである。その後、分割有りの判定を下し(16
7)、分割判定手段の処理を終了する。分割有りと判定
された図形情報は画素集合発生範囲分割手段4の実行に
移る。また、分割無しと判定された図形情報は、そのま
ま画素集合発生手段7に送られ、実画素発生処理を実行
される。以降の処理は実施例1、2と同様である。
【0037】[実施例4]前記の実施例3では、画素集
合発生範囲の分割判定基準において2のベキ乗の分割方
法を実行する結果、分割数が使用可能なプロセッサ数よ
り多くなってしまう事態も認めているが、本実施例では
分割数が使用可能なプロセッサ数と一致することを規定
する。図19は本実施例の構成図である。図中の構成に
おいて、実施例1と異なるところは実施例3に付加され
たプロセッサ数検出手段13と、新たに分割数記憶領域
14が追加されているところである。プロセッサ数検出
手段13は前記の実施例3と同様の処理手順で実行さ
れ、使用可能なプロセッサ数を返すものである。本実施
例では画素集合発生範囲の総分割数を実施例3のように
図形情報に含ませて各プロセッサに引き渡すのではな
く、分割数記憶領域14に示す共有領域を設定すること
により、この領域に書き込まれる総分割数の値を分割を
行うごとに随時書き換えることによって現時点での画素
集合発生範囲の総分割数を認識できるようにしている。
分割数を認識して分割の有無を判定する処理は分割判定
手段3が行う。分割判定手段3はプロセッサ検出手段か
ら取得された使用可能なプロセッサ数と上記の分割数記
憶領域14に書き込まれている分割数とを比較し、プロ
セッサ数が分割数より大きかったならば分割処理を行う
か判定するための次の処理を実行するが、もし分割数が
プロセッサ数に等しくなった場合は分割しないよう判定
する。動作の流れを図20に従い説明する。まず、プロ
セッサ数検出手段13から使用可能なプロセッサ数を取
得する(181)。次に分割数記憶領域14に記録され
ている値を取得する(182)。この値は現時点での画
素集合発生範囲の総分割数を意味する。従って、上記で
取得したプロセッサ数と分割数の比較を行い(18
3)、両者の値が等しかったときは分割を行わず終了す
る。一方、分割数がプロセッサ数より小さかった場合、
分割を実行してもよいという判断のもとに次の画素集合
発生範囲の長さによる判定を実行する。実施例3で述べ
た手順と同様に画素集合発生範囲検出手段から長さを検
出し(184)、基準値”100”と比較を行う(18
5)。その結果、検出された長さが基準値より大きかっ
た場合は分割有りの判定を行い(187)、逆に基準値
より小さかった場合は、分割無しの判定を行う(18
9)。この時、分割有りの判定をしたときは分割数記憶
領域の分割数を1増やす処理を行い(186)、他方の
分割無しの判定の場合は分割数を変えることなく記憶領
域を解放する(188)。つまり、注目しているプロセ
スが分割数記憶領域14に値を読みにいった時点でこの
領域へのアクセスは該プロセスに限るものとし、排他制
御により他のプロセスによる該分割数の書き換えは処理
(186)あるいは処理(188)が終了するまで認め
ない。
【0038】本実施例の排他制御は、テストと値の書き
換えを一連の操作において実行できる特権化されたメモ
リSを用いたセマフォにより行なった。セマフォへの操
作は特殊な2つの組となる処理で行われる。一つは、ウ
エイト処理、もう一つはシグナル処理である。ウエイト
処理はS>0であればS:=S−1を実行し、そうでな
ければウエイトを呼び出した処理を(一時停止)サスペ
ンドする。シグナル処理は先にサスペンドされていた処
理が待ち行列にあったときはその処理を再起動する。そ
うでないときはS:=S+1を実行する。
【0039】実施例3、4で示したように使用可能なプ
ロセッサを全て使って画素集合発生処理を実行する場合
もあるが、時として全てのプロセッサを使わないで行い
たい場合もある。この場合は、実施例4の構成において
比較するプロセッサ数の値を操作する手段を設け、プロ
セッサ数を小さくするることで対応できる。
【0040】
【発明の効果】以上の実施例によって示されるように、
本発明はアプリケーションが出力した図形描画のための
図形情報を取得して分割し、複数の情報機器に分散して
画素の発生をさせる手段が重要となるため、その手段を
実現するソフトウェアを搭載するハードウェアには依存
しない。
【0041】また、いかなる情報機器にせよ何らかの双
方向通信手段によって接続された機器間では既に述べた
実施例の幾つかに示される手段によって本発明の図形出
力処理における画素集合発生処理を実施可能である。こ
れは汎用のプログラム言語の翻訳を分散処理する場合と
異なり、直線や曲線の実画素集合発生処理は画素集合発
生範囲を分割し、独立して別の場所で実画素を発生させ
た後、重ね合わせても相互に影響が生じないためであ
る。
【0042】また、本発明では図形出力処理において与
えられる図形情報から画素集合発生範囲の長さを検出
し、その値と基準値とを比較することにより分割の有無
の判定を行うため、発生させる直線や曲線の描画位置に
関係なく、並列処理を実行するための分割処理を実行す
ることができる。
【0043】さらに、従来の画素集合発生処理では分割
しにくかった曲線に対しても直線と同様の手順で再帰的
に効率よく分割可能である。従って、各図形要素に対し
て一様に多重度を上げることができ、プロセッサの負荷
の片よりを回避でき、並列処理機能を有効に利用できる
ため、高速処理が可能である。
【図面の簡単な説明】
【図1】実施例1の処理系の構成図。
【図2】実施例1の図形情報の構成図。
【図3】直線、Bezier曲線、円弧の図形情報の説明図。
【図4】実施例1における画素集合発生範囲検出手段及
び分割判定手段の流れ図。
【図5】直線の画素集合発生範囲分割判定手段の流れ
図。
【図6】Bezier曲線を近似する線分による画素集合発生
範囲分割判定手段の流れ図。
【図7】円弧の画素集合発生範囲分割判定手段の流れ
図。
【図8】直線の画素集合発生範囲分割手段の説明図。
【図9】Bezier曲線の画素集合発生範囲分割手段の説明
図。
【図10】円弧の画素集合発生範囲分割手段の説明図。
【図11】画素集合発生範囲分割手段の基本構成図。
【図12】本発明の疑似プログラムによる説明図。
【図13】疑似プログラム実行結果の説明図。
【図14】実施例2の処理系の構成図。
【図15】実施例3の処理系の構成図。
【図16】プロセッサ数検出手段の流れ図。
【図17】実施例3の図形情報の構成図。
【図18】実施例3の分割判定手段の流れ図。
【図19】実施例4の処理系の構成図。
【図20】実施例4の分割判定手段の流れ図。
【図21】従来技術の説明図。
【図22】従来技術の説明図。
【符号の説明】
1 図形情報 2 画素集合発生範囲検出手段 3 分割判定手段 4 画素集合発生範囲分割手段 5 CUP 6 プロセス 7 画素集合発生手段 8 プロセス待ち行列 9 スケジューラ 10 オペレーティングシステム 11 イメージメモリ 12 出力装置 13 プロセッサ数検出手段 14 分割数記憶領域 122 ネットワーク 124 画素合成処理装置 126 図形情報受信ソケット 127 図形情報送信ソケット 128 画素データ受信ソケット 129 画素データ送信ソケット 125 イメージメモリ領域

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】 始点と終点さらに図形発生に必要となる
    座標を含む図形情報から、図形の形状を表す画素集合を
    発生させる図形出力装置において、(a)直線に関して
    は始点と終点の2点間の長さ、曲線に関しては目的とす
    る曲線を近似する折れ線を形成する線分の長さの総和を
    検出する画素集合発生範囲検出手段と、(b)前記の手
    段により検出された値とあらかじめ定めた値とを比較
    し、その結果を受けて図形を2分割するかしないかを判
    定する分割判定手段と、(c)前記分割判定手段が分割
    しないと判断した場合に、実画素を発生させる画素集合
    発生手段と、(d)前記分割判定手段が分割すると決定
    した場合に、図形を2分割し、分割した各々の図形に関
    して新たな始点、終点、図形発生に必要となる座標を含
    む図形情報を決定する画素集合発生範囲分割手段と、
    (e)前記画素集合発生範囲分割手段によって分割され
    た図形に関する情報を、2つのプロセッサに各々分担し
    て与え、該各プロセッサでは与えられた図形情報を用い
    て画素集合の発生を並列に実行する並列実行手段と、を
    少なくとも有することを特徴とする図形出力装置。
  2. 【請求項2】 前記図形出力装置の分割手段において総
    分割数が所定値以上になる場合は画素集合の区間の長さ
    にかかわらず、分割しないことを特徴とする請求項1記
    載の図形出力装置。
JP4131247A 1992-05-25 1992-05-25 図形出力装置 Pending JPH05324844A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4131247A JPH05324844A (ja) 1992-05-25 1992-05-25 図形出力装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4131247A JPH05324844A (ja) 1992-05-25 1992-05-25 図形出力装置

Publications (1)

Publication Number Publication Date
JPH05324844A true JPH05324844A (ja) 1993-12-10

Family

ID=15053448

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4131247A Pending JPH05324844A (ja) 1992-05-25 1992-05-25 図形出力装置

Country Status (1)

Country Link
JP (1) JPH05324844A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010113431A (ja) * 2008-11-04 2010-05-20 Konica Minolta Business Technologies Inc 画像処理装置、画像処理方法及び画像処理プログラム
JP2015181016A (ja) * 2015-05-07 2015-10-15 キヤノン株式会社 制御方法、システム及びプログラム
CN112884864A (zh) * 2021-01-21 2021-06-01 广州朗国电子科技有限公司 基于电子白板自动矫正矩形的绘图方法及其应用

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010113431A (ja) * 2008-11-04 2010-05-20 Konica Minolta Business Technologies Inc 画像処理装置、画像処理方法及び画像処理プログラム
JP2015181016A (ja) * 2015-05-07 2015-10-15 キヤノン株式会社 制御方法、システム及びプログラム
CN112884864A (zh) * 2021-01-21 2021-06-01 广州朗国电子科技有限公司 基于电子白板自动矫正矩形的绘图方法及其应用

Similar Documents

Publication Publication Date Title
US7920141B2 (en) Method and apparatus for rasterizer interpolation
US7012604B1 (en) System architecture for high speed ray tracing
US5594860A (en) Method for banding and rasterizing an image in a multiprocessor printing system
US11416282B2 (en) Configurable scheduler in a graph streaming processing system
JP2770598B2 (ja) 図形表示方法およびその装置
CN1957376B (zh) 可缩放着色器结构
US20090259789A1 (en) Multi-processor, direct memory access controller, and serial data transmitting/receiving apparatus
EP1662441A1 (en) System and method of optimizing graphics processing using tessellation
US20130318333A1 (en) Operating processors over a network
WO2011134942A1 (en) Technique for gpu command scheduling
US6704021B1 (en) Method and apparatus for efficiently processing vertex information in a video graphics system
JP2013546098A (ja) グラフィックス計算プロセススケジューリング
US6532016B1 (en) Method of processing print data using parallel raster image processing
CN101051382A (zh) 于图形处理单元中提供共享属性计算电路的系统及方法
US8363059B2 (en) Rendering processing apparatus, parallel processing apparatus, and exclusive control method
US7719538B1 (en) Assignments for parallel rasterization
CN117058288A (zh) 图形处理器及方法、多核图形处理系统、电子装置及设备
JPH06282481A (ja) サーバ・メモリの管理
JPH10111858A (ja) グラフィクス・パイプラインを並列化する方法及び装置
US11734869B2 (en) Graphics processing
JP2003051019A (ja) 画像処理装置、画像処理方法、画像処理プログラム及び記憶媒体
JPH05324844A (ja) 図形出力装置
CN105164636A (zh) 一种虚拟化环境中的数据通信的方法、装置及处理器
EP1532582A1 (en) Method and apparatus for image data processing using image strips and circular addressing arrangement
CN112068908B (zh) 图形处理方法及相关装置和设备