JP2001051674A - 描画処理装置及び描画処理方法 - Google Patents

描画処理装置及び描画処理方法

Info

Publication number
JP2001051674A
JP2001051674A JP11223353A JP22335399A JP2001051674A JP 2001051674 A JP2001051674 A JP 2001051674A JP 11223353 A JP11223353 A JP 11223353A JP 22335399 A JP22335399 A JP 22335399A JP 2001051674 A JP2001051674 A JP 2001051674A
Authority
JP
Japan
Prior art keywords
block
processing
drawing command
command
memory
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
JP11223353A
Other languages
English (en)
Inventor
Takashi Nakamoto
貴士 中本
Junko Nakase
純子 中瀬
Akira Hase
昌 長谷
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP11223353A priority Critical patent/JP2001051674A/ja
Publication of JP2001051674A publication Critical patent/JP2001051674A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Controls And Circuits For Display Device (AREA)
  • Image Input (AREA)
  • Microcomputers (AREA)

Abstract

(57)【要約】 【課題】効率良く画像データメモリにアクセスし、描画
処理を行う描画処理装置及び描画処理方法を提供する。
描画処理装置内の必要メモリ容量を低減する。 【解決手段】描画コマンドにより描画される画素を含む
ブロックを確定する描画処理ブロック確定部7と、処理
ブロック確部7より指定されたブロックとメモリ4との
読み書きを制御するメモリ制御手段4と、ブロック単位
に描画処理を行う、描画ブロック処理部8を有する。 【効果】描画処理ブロック確定部7をブロック単位の描
画ブロック処理部8と独立に有する事により、ブロック
の読み出しに於けるメモリ制御と、ブロックの描画処理
が並列に実行する事ができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は描画処理装置及び描
画処理方法、更に詳しくいえば、線分やポリゴン(多角
形)のなどのグラフィックス画像を、画面をブロックに
分割してブロック単位でディジタルデータ処理する描画
処理方法及び描画処理装置に関する。
【0002】
【従来の技術】PC(Personal Computer)や家庭用ゲ
ーム機器等、表示画面に対し、線分、多角形(以下、ポ
リゴンと呼ぶ)等のグラフィックス画像の描画処理を行
う装置に於いては、画像データをメモリ上にマッピング
し、このメモリからデータを読み書きしながら描画処理
装置が処理を行う。
【0003】画像データはデータ量が多く(例えば1フ
レーム720×480×4byte)、また処理速度も高い
(例えば30フレーム/秒)ので画像メモリへのアクセ
スは、ランダムアクセスではなく、まとまったデータ単
位で行うことが望ましい。すなわち、メモリアクセスの
バンド幅を下げることが可能となる。描画処理装置にお
いて、まとまったデータ単位で処理を行うとすれば、画
面をm画素×n画素(m、nは1以上の整数)のブロッ
ク単位で描画処理を実行する構成をとることが考えられ
る。
【0004】例えば、図18に示す従来の描画処理装置
30では、CPU2の制御により描画処理コマンドと画
像データがCPUデータバス6を介して描画処理装置3
0に送られる。この際、CPU2は描画処理装置30の
処理する領域を画像データバッファ32に転送する必要
がある。描画処理装置30がDMA(ダイレクトメモリ
アクセス)処理機能を有する場合は、メモリ制御部33
がDMA機能を用い、メモリ3とアクセスする。描画回
路31は送られた描画コマンドを基にバッファ32に対
し描画処理を行う。バッファ32に格納可能なデータサ
イズよりも大きいポリゴンを扱う際は、CPU2があら
かじめ、ポリゴンの分割を行い、ブロック領域に閉じた
ポリゴン処理命令として描画処理装置に送る必要があ
る。
【0005】あるいは、図19に示す従来の描画処理装
置40では、画像データ用の専用画像メモリ4を設け、
描画処理装置40はCPU2により指定される描画処理
命令から描画領域を判断し、ブロック単位の描画処理毎
に画像メモリに対しブロック単位にアクセスを行う。ブ
ロック単位でアクセスして得られた画像データは描画処
理装置40のバッファ42に格納される。描画処理回路
41はバッファ42上の画像データに対し描画処理を行
い、再び画像データメモリ4に上書きする。このときの
描画処理手順は図20の描画処理フローのようになる。
【0006】CPU2から描画コマンドが入力される
(s1)とコマンドに示される多角形の頂点のソートを
行う(s2)、次にソートされた頂点データより基準座
標の原点に一番近い頂点を選択する(s3)。その後こ
の頂点を含む画像データブロックを画像データメモリか
ら読み出しバッファに格納し(s4)、その画像ブロッ
クの描画処理を実行する(s5)。描画処理実行によ
り、そのブロックの描画処理で他の頂点部の処理を行う
事が出来たかどうかが分かるので(s6)、さらに処理
を行う必要がある場合は該ブロックに連続するブロック
を読み出し(s7)、上記動作を描画終了まで繰り返
す。
【0007】
【発明が解決しようとする課題】上述の従来の描画処理
装置30では、描画コマンドを描画処理装置30に発行
する際に、描画データメモリのアクセスを行う単位ブロ
ック領域に描画コマンドを分ける必要があり、このコマ
ンドデータの分割のためCPU2にかかる負担が非常に
大きくなる。また一つの描画コマンドが複数個に分割さ
れるためコマンドバッファも増大する問題がある。
【0008】一方、従来の描画処理装置40では図20
の描画処理フローで説明したように、ブロックの読み出
し処理とそのブロックの描画処理を順次実行するため、
描画処理の並列化が困難であり、また、描画コマンドに
対する描画処理開始のブロックを任意に出来ない。従っ
て、ブロックバッファ内に描画コマンドに関係するブロ
ックが存在する場合でも、その画像データを有効かどう
か判断することが出来ないため、有効活用することが出
来ない。
【0009】本発明は上述の問題点に対し、与えられた
描画コマンドの描画対象と、画像データ領域のブロック
位置との関係を描画処理と独立に演算し、ブロック単位
での画像データのメモリアクセス及びブロック単位の描
画処理する事を可能にし、高能率な描画処理装置及び描
画処理方法を提供することを目的とする。
【0010】
【課題を解決するための手段】上記目的を達成するた
め、本発明の描画処理方法は、画面をm画素×n画素
(m、nは1以上の整数)のブロックに分割し、グラフ
ィック画像を描画コマンドに従って上記ブロック単位で
デジタルデータによる描画処理を行う描画処理装置にお
いて、順次入力される描画コマンドに対し、その描画コ
マンドにより描画される画素(以後、描画領域と呼ぶ)
を含むN個の(Nは0以上の整数)処理ブロックを描画
コマンドで指定される描画対象の座標を基に確定し、確
定されたブロックに対し、画像メモリより上記確定され
たブロックに相当する画像データを読み出し、その読み
出されたブロックデータを描画処理手段がブロック単位
で独立に処理を実行し、上記描画処理手段により、描画
された画像データを上記画像メモリに書き戻す事により
描画処理を実行する。なお、ここで、描画コマンドと
は、線分、ポリゴン等の描画を指定するデータ列のこと
を指しており、このデータ列中には、少なくとも画面中
のどの位置に描画するかを指定する描画位置情報を含む
ものとする。
【0011】また、本発明の描画処理装置は次の手段を
設けて構成する。すなわち、描画コマンドのバッファリ
ングを行うコマンドバッファと、一つあるいは複数のブ
ロックの全画素データを格納可能な容量を有するブロッ
クバッファと、入力される描画コマンドで指定される描
画要素の描画位置情報から、描画領域を含むM個(Mは
0以上の整数)のブロック(以後、処理ブロックと呼
ぶ)を求め、上記M個の処理ブロックを指定するブロッ
クパラメータをブロック処理部及びメモリ制御部に供給
する処理ブロック確定部と、上記処理ブロック確定部か
ら指定される処理ブロックのデータを外部接続された画
像メモリから読み出して上記ブロックバッファメモリに
格納するメモリ制御部と、上記処理ブロック確定手段に
より指定された処理ブロックについて、描画コマンドに
基づき描画に必要な演算を実行し、その結果得られた画
素データを上記ブロックバッファメモリに格納する描画
処理手段と、その処理ブロックの画素データの処理終了
後に、上記ブロックバッファメモリから上記画像データ
メモリにデータを書き戻す前記メモリ制御部から構成さ
れる。
【0012】
【発明の実施の形態】<実施形態1>図1は、本発明に
よる描画処理方法が実施される描画処理装置及び周辺回
路の一実施形態の構成を示す。同図において、本発明に
よる描画処理装置1は、CPUデータバス6を介してC
PU2と接続され、データバス5を介して画像データメ
モリ(単に画像メモリとも称呼する)4と接続されてい
る。CPU2は、CPUメインメモリ3と接続されてい
る。
【0013】描画処理装置1は、CPUデータバス6を
介してCPU2から送られる描画コマンドのバッファリ
ングを行うコマンドバッファ11と、コマンドバッファ
11から与えられる描画コマンドから処理ブロックを決
定し、処理ブロックを指定するパラメータをブロック処
理部8及びメモリ制御部10に与える処理ブロック確定
部7と、処理ブロック確定部7により指定される処理ブ
ロックに対し、上記描画コマンドに基づき描画に必要な
演算を実行し、その結果得られた画素データをブロック
バッファメモリ9に書き込むブロック処理部8と、ブロ
ック確定部7から指定される処理ブロックの画像データ
をデータバス5を介して外部の画像メモリ4とブロック
単位でデータ転送を行うブロックバッファメモリ9と備
えて構成される。ブロックバッファメモリ9は一つある
いは複数のブロックの全画素データを格納可能な容量を
もつ。処理ブロック確定部7は描画コマンドで指定され
る描画要素の描画位置情報から、描画領域を含むM個
(Mは0以上の整数)のブロック(以後、処理ブロック
と呼ぶ)を求める。
【0014】図2は、本発明によるによる描画処理装置
に於ける描画処理方法の一実施形態の処理フローを示
す。描画開始で、描画コマンドがCPU2から入力され
る(12)。描画コマンドとは、少なくとも描画の図形
の種類(線分、四角形等)とその始点終点又は頂点の座
標(以下、描画位置情報と呼ぶ)を指定するデータ列で
ある。上記描画コマンドが入力されると、上記描画位置
情報に基づき、処理が必要なブロック(すなわち、描画
すべき画素データを含むブロック)を求め(13)、処
理順を決める(14)。ここではブロックをブロックの
並び順に順次処理するかどうかを判定し(15)、処理
が必要なブロックであれば、そのブロックの画像データ
を画像データメモリ4から読み出し処理を実行する(1
6)。
【0015】一方、処理の必要の無いブロックであれば
処理を行わず、次のブロックの判定に移行する。このブ
ロック確定は対象画像データの全領域実行される。ある
処理が必要なブロックについての画像メモリ4からのデ
ータ読み出し処理が終了する(18)と、描画ブロック
処理部8がこのブロックの描画処理を実行する(2
0)。描画処理が終了した時点で、処理の終わったブロ
ックnの画像データは画像データメモリへ書き戻しされ
る(21)。描画ブロック処理部8の描画実行とブロッ
ク確定判定及び画像メモリ4の読み出しは独立して実行
できるため、バッファメモリ10に複数ブロックを格納
する容量がある場合には、描画処理実行中に次のブロッ
クの判定及び画像データメモリの読み出しを先行して行
う事が可能となる。この結果、描画処理全体の処理効率
を高めることが出来る。
【0016】以下、図1の描画処理装置の構成、動作及
び図2の描画処理方法の詳細について、図3に示すポリ
ゴンの描画を例に説明する。図3は、描画コマンドaの
描画領域(ポリゴン)と処理ブロックとの関係を示す。
描画コマンドaは、8×8のブロックから成る画平面に
三角形PQRを描画することである。1ブロックは水平
方向m(=8)画素×垂直方向n(=8)画素である。
また、図3において記号B00〜B77は、ブロックの識別
記号である。
【0017】処理ブロック確定部7の構成、動作の詳細
に関しては更に後述するが、処理ブロック確定部7は以
下の処理を実行する。
【0018】ポリゴンaの描画領域(三角形PQR)を
含んでいるブロックは全て処理ブロックとなるので、図
3の例では、ブロックB16〜B17、B24〜B26、B33〜
B35、B41〜B44、B52〜B54、B63の17ブロックが
処理ブロックとなる。処理ブロック確定部7は、画像領
域全体から、これら処理ブロックを特定し、処理ブロッ
クを指定するパラメータをブロック処理部8及びメモリ
制御部10に転送する。処理ブロックを指定するパラメ
ータ(以後、ブロックパラメータと呼ぶ)としては、処
理ブロックの左下の画素位置の座標を用いる。この場
合、ブロックB00を指定するブロックパラメータは
(x,y)=(0,0)、ブロックB01を指定するブロ
ックパラメータは(x,y)=(m,0)、ブロックB
10を指定するブロックパラメータは(x,y)=(0,
n)のようになる。
【0019】また、ブロック単位の座標としてブロック
座標(X,Y)を定義して、処理ブロックのブロック座
標をブロックパラメータとして用いてもよい。このブロ
ック座標をブロックパラメータとして用いた場合、ブロ
ックB00は(bx,by)=(0,0)、ブロックB01
は(bx,by)=(1,0)、ブロックB10は(b
x,by)=(0,1)で表される。ブロック座標X、
Yが与えられれば、m、nからx=m・X、y=n・
Y、のように各処理ブロックの左上の画素の座標を求め
ることができる。上記処理ブロックのブロックパラメー
タは、描画コマンドにより与えられる描画領域の描画位
置情報、すなわちこの場合はポリゴンaの4頂点の座標
値から求めることができる。
【0020】また、処理ブロック確定部7では、処理ブ
ロックのブロックパラメータを処理順のリスト(ブロッ
クリスト)にして保持し、ブロックリストを順次読み出
して、ブロック処理部8にブロックパラメータを与える
こともでき、毎回、計算により次の処理ブロックのブロ
ックパラメータを求めてブロック処理部にブロックパラ
メータを与えるようにしてもよい。
【0021】メモリ制御部10は処理ブロック確定部7
から受け取ったブロックパラメターに従い、画像データ
を画像データメモリ4から読み出し、ブロックバッファ
メモリ9に格納する。また、メモリ制御部10はブロッ
ク処理部8で描画処理が終了したブロックの画像データ
を画像データメモリ4に書き戻しを行うと同時に、ブロ
ックバッファ9の情報を無効にする。ブロック処理部8
では、処理ブロック確定部7からのブロックパラメータ
と、コマンドバッファ11からの描画コマンドに基づ
き、ブロックパラメータで指定されるブロック描画処理
を実行する。以下、描画コマンドにより線分を描画する
場合を例に、ブロック処理部8の描画処理手順を説明す
る。図4は、12ブロックから成る画面に、ブロックB
20からブロックB13にわたる線分PQを描画するときの
線分と処理ブロックとの関係を示す。処理ブロックはB
20、B21、B11、B12、B13の5ブロックである。この
場合、処理ブロック確定部7では、ブロックB20、B2
1、B11、B12、B13の順で順次ブロックパラメータを
ブロック処理部8及びメモリ制御部10に供給する。メ
モリ制御部10では、ブロックパラメータ入力に対し、
ブロックB20、B21、B11、B12、B13の順に画像デー
タメモリ4からデータを読み出しブロックバッファ9に
格納する。ブロックバッファ9にブロックデータが格納
されることによりブロック処理部8で描画処理を開始出
来る。
【0022】一方、ブロックバッファ9がすでに一杯
で、新たなブロックデータを画像データメモリ4から読
み出しても格納出来ないときはブロックバッファ9が空
くまで待たされる。ブロック処理部8ではブロックパラ
メータ入力に対し、ブロックB20、B21、B11、B12、
B13の順でブロックバッファ9にデータがそろったら、
描画処理を実行する。
【0023】線分PQのうちブロックB20に含まれる画
素のデータがメモリ4に書き込まれ、ブロックB20につ
いての処理が終了すると、次にブロックB21、B11、B
12、B13についても同様にブロック描画処理を行い、線
分PQの画素のデータがメモリ4に書き込まれる。
【0024】ブロック処理部8では、ブロック内の画素
位置は次のように求める。ブロック処理部8には、コマ
ンドバッファ11から描画コマンド、処理ブロック確定
部7からは、処理ブロックのブロックパラメータが与え
られている。描画コマンドにはP、Qの座標値が含まれ
ている。これらブロックパラメータと描画コマンドに基
づき、ブロック処理部8では、各処理ブロック内の描画
の始点となる座標を求め、その始点からブロックの境界
あるいは線分の終点まで描画処理を行う。図4のブロッ
クB20の場合には、線分の始点P自身がブロックB20内
に存在するので、Pが始点となり、ブロックB20の右端
のブロック境界まで処理を行う。
【0025】ブロックB21の場合には、点Pと点Qの座
標値データと、ブロックパラメータから得られる処理ブ
ロックの境界のX座標、Y座標とから、線分PQとブロ
ック境界との二つの交点のうち始点Pに近い方の交点を
始点としてブロックB21の右端のブロック境界まで描画
処理を実行する。ブロックB11、B12、B13の場合にも
同様に線分PQとブロック境界の交点を求めて始点と
し、終点Pまで描画処理を実行する。
【0026】次に、本実施形態の構成要素である、処理
ブロック確定方法、及びその演算回路の詳細について説
明を行う。図5は、描画処理装置に於ける処理ブロック
確定方法で用いる外積演算回路のの回路図を示す。A、
Bは描画コマンドより与えられる、頂点座標の内のある
側辺に対応した頂点座標で、(Ax、Ay)、(Bx、
By)で表す。Pはm×n矩形ブロックの頂点座標で
(mX、nY)で表す。描画コマンドより与えられた頂
点座標A、Bは行列演算器51に転送され、行列演算器
51は(AxBy―BxAy)の演算を行う。減算器5
2は(Bx―Ax)を演算、減算器53は(Ay―B
y)を演算する。演算器54は減算器52の結果にPy
を乗ずるもので、mが2のべき乗の値を持つときには演
算を簡略化することが出来る。
【0027】また、Pは各ブロックに対しPmXとPm
(X+1)の2点を演算することから、PmXが分かれ
ばPm(X+1)はPmX+mであり、演算器54の演
算はシフト+加算で行うことが出来る。同様に演算器5
5では減算器53の結果にPxを乗ずる演算を行う。こ
れら、演算器51、54、55の結果は加算器56で加
算され値Fを得る。処理ブロックの判定ではこのFの符
号情報のみを用いるので57で符号情報だけを取り出し
判定部に結果を転送する。ここで、演算中複雑なのは5
1の(AxBy―BxAy)であるが、この値は必ずし
も、描画処理部1で行う必要はない。例えばCPU2が
描画コマンド転送時に頂点データと共に、この演算結果
を描画処理部1に転送する構成をとることでも対応可能
である。
【0028】図6及び図7は、処理ブロック確定方法の
基本演算要素である、ベクトルの外積演算について説明
するための画平面図である。点Aはx座標Ax、y座標
Ayの点で(Ax、Ay)で表す。同様に点Bは(B
x、By)、点Pは(Px、Py)で定義できる。直線
ABと点Pとの角APBすなわちwはベクトルPAとベ
クトルPBとの外積演算により関連づけられる。ベクト
ルPAとベクトルPBとの外積は角wのサイン関数で定
義される。このことから、角wが180度より大きい時
には外積演算は負になり、角wが180度より小さい時
のみ正の値をとる。ベクトルPAは((Ax-Px),
(Ay-Py))で表すことができ、ベクトルPBは
((Bx-Px),(By-Py))で表すことができ
る。従って外積演算を行うことで角wが180度以上か
どうかが検査することができる。ベクトルPAとベクト
ルPBのベクトル外積演算式は図に示すように、 F(A,B,P)=(AxBy−BxAy+(Ax(Bx)Py)+
(By(Ay)Px)) に変型出来る。
【0029】一方、m画素×n画素の画像データブロッ
クB(X,Y)は図7に示すように、B1、B2、B
3、B4の4点による矩形で表現できる。ここで、B1
は点(mX,nY)、B2は点(m(X+1),n
Y)、B3は点(mX,n(Y+1))、B4は点(m
(X+1),n(Y+1))と表す。このブロックを代
表する点B1、B2、B3、B4と描画するポリゴンの
頂点との間の前記外積演算により、本ブロックが描画す
るポリゴンとどのような位置関係であるかを判定するこ
とができる。以下、図8ないし図11を用いて、ブロッ
クと描画ポリゴンの位置関係に関して説明する。
【0030】図8は、ポリゴンPQRとブロックB21の
一部の頂点が重なる場合を示している。従って、このブ
ロックB21がポリゴンPQRに対して処理ブロックであ
ることを判定出来ればよい。ここで点B2に着目する。
点B2は三角形ポリゴンPQRの内側に存在するが、こ
の場合、角PB2Q、角QB2R、角RB2Pはそれぞ
れ180度以下になる。すなわち、ベクトルB2Pとベ
クトルB2Qの演算F(P,Q,B2)は正の値を持
ち、ベクトルB2QとベクトルB2Rの演算F(Q,
R,B2)も正の値を持ち、ベクトルB2Rとベクトル
B2Pの演算F(R,P,B2)も正の値を持つ。この
ように、三角形ポリゴンP,Q、Rと点B2に対する3
つの演算Fの値が全て正の値を持つなら、その代表点B
2はポリゴンPQRの内側であることが判定できる。従
ってブロックの4代表点B1、B2、B3、B4に関し
て順次上記演算を施すことにより、ブロックの頂点のど
れかがポリゴンの内側であるかどうかを判定出来る。演
算結果ブロック代表点の内、どれか一つでもポリゴン内
部と判断されれば、そのブロックは処理対象ブロックと
する。
【0031】図9は、ブロックB00のようにポリゴンP
QRと重ならない非処理ブロックの場合を示している。
この場合も前例同様、各ブロックの代表点B1,B2,
B3,B4に対し、それぞれ3つのF演算を施す。仮
に、B4に着目すると、ベクトルB4PとベクトルB4
Pの演算F(P,Q,B4)は正になるが、ベクトルB
4QとベクトルB4Qの演算F(Q,R,B4)は負に
なる。これは角QB4Rが180度を越えている為であ
る。このように、ポリゴンPQRの3頂点に対する演算
Fの演算結果のどれかが負であば、その代表点がポリゴ
ンの外側であることが分かる。
【0032】しかしながら、前記結果ブロック代表点の
4つの演算結果、代表点全てがポリゴンの外側であって
も、そのブロックが非処理ブロックであるとは限らな
い。例えば、図10に示すブロックB13のように、ポリ
ゴンPQRがブロックの内部を通る場合がある。この場
合、ブロックの代表点B1、B2、B3、B4はポリゴ
ンPQRの外側であるが、処理ブロック対象にする必要
がある。この場合各頂点間の演算結果の推移を見ること
で、ポリゴンブロックの通過を検出することが出来る。
例えば、辺RPに対するブロック代表点との演算を考え
ると、B1点でのRPに対する演算F(R,P,B1)
は正であるが、B2でのRPに対する演算F(R,P,
B2)は負になる。これは、辺RPがB1、B2間を通
過している為で、同様のことが点B1、点B4間でも言
える。ブロックをポリゴンが通過するには少なくとも2
辺のポリゴン側辺がブロック代表点間を横切る事にな
る。従ってブロック代表点4つのポリゴンのある側辺を
構成する頂点2つに関する外積演算を施した時に、符号
反転がある側辺が2個以上ある場合はポリゴンが通過し
たブロック、すなわち処理ブロックとすることが可能で
ある。
【0033】また、図11の様にブロックポリゴンの頂
点を含むブロックの場合、ポリゴン頂点がブロックの内
部にあることが、ブロック代表点B1,B2,B3,B
4と比較するだけで容易に判定可能であり、本ブロック
も処理ブロックとする。
【0034】以上をまとめると、ポリゴンとブロック関
係は(1)ブロックの代表点のいずれか一つがポリゴン
内部にある場合(タイプ1とする。)。(2)ブロック
がポリゴンに関係しない位置にある場合(タイプ2とす
る)。(3)ブロックをポリゴンが通過する場合(タイ
プ3とする)。(4)頂点を含むブロックである場合
(タイプ4とする)に分類できる。
【0035】ここで、あるブロックに対しタイプ1、タ
イプ3、タイプ4のブロック分類の重複があり得るが、
本分類はあるブロックが処理ブロックであるかどうかを
判定するだけのものであり分類の重複は差し支えない。
この分類でタイプ1,タイプ3、タイプ4が処理ブロッ
クとなり、タイプ2が非処理ブロックである。
【0036】図12は、上述の処理ブロック確定方法の
処理フローである。
【0037】まず、(1)入力されたポリゴンの頂点デ
ータの各座標の最小、最大値を求め処理ブロック探索範
囲を決定する(121)。(2)ポリゴンの頂点データ
を含むブロックをタイプ4の処理ブロックに決定する
(122)。(3)ポリゴンの連続する2頂点に対する
ブロック代表値との外積演算の符号を演算で求める(1
23−125)。この例ではポリゴンが3角形のため3
辺の演算を実行する。
【0038】(4)ブロックの代表点中の一つが、ポリ
ゴンの全ての連続する2頂点との外積演算で正になる場
合、このブロックをタイプ1の処理ブロックに決定する
(126)。(5)ポリゴンの任意の連続する2頂点と
4つのブロック代表点との外積演算で、4つの演算結果
で符号が変化するのもが2辺以上ある場合には、このブ
ロックをタイプ3の処理ブロックに決定し、それ以外の
場合は、このブロックをタイプ2の非処理ブロックに決
定する(127)。
【0039】図13は、以上の処理ブロック確定演算を
図3のポリゴンPQRに具体的に適応させた結果を示
す。図3で扱うポリゴンは3角形PQRで、各頂点の座
標はP(27,48)、Q(15,36)、R(57,
11)とする。一方、ブロックはx座標、y座標共に8
画素の矩形ブロックとし、描画エリアは64画素×64
画素のエリアを持つとする。従って、ブロックB00―
ブロックB77までの64ブロックが割り当てられる事
になる。
【0040】まず本ポリゴンが与えられたら各座標の最
大最小座標を求める。この場合x座標の最小値が15で
最大値が57、y座標の最小値が11最大値が48であ
るから、この各軸の最小値、最大値を含むブロックB1
1―B17、B21−B27、B31―B37、B41
−B47、B51―B57、B61―B67のブロック
を演算対象とする。次にそれぞれのブロックで各4つの
ブロック頂点B1、B2、B3、B4に対しポリゴンの
PQ点、ポリゴンのQR点、RP点に対し外積演算を行
う。例えば、B52ブロックの4つの頂点はB1(1
6,40)、B2(24,40)、B3(16,4
8)、B4(24,48)であり、PQ点に対する演算
値F(P,Q,B)はそれぞれ、-36、60、-13
2、-36となる。同様にQR点に対する演算値F
(Q,R,B)及びRP点に対する演算値F(R,P,
B)に対しての演算を行う。
【0041】以上の様に描画エリア中の演算対象ブロッ
クについて演算を行うと図13に示される結果を得る。
図13では、演算対象ブロック中の代表的な一部のブロ
ックの演算結果を記すにとどめてある。結果を順次見て
いくと、(1)B52ブロックは点B2に於いて、P
Q、QR、RPに対する演算結果がいずれも正の値をと
っている。このことにより、B52ブロックは点B2が
ポリゴン内部にあり、描画対象とすべきブロックである
ことが分かる。(2)B43ブロックはB1、B2、B
3、B4いずれの点も、PQ、QR、RPに対する演算
結果がいずれも正の値をとっている。このことにより、
B43ブロックはブロック全体がポリゴン内部にあり、
描画対象とすべきブロックであることが分かる。(3)
B16ブロックはB1、B2、B3、B4いずれの点
も、PQ、QR、RPに対する演算結果とも正の値をと
っている点が存在しない。従ってブロックの頂点B1、
B2、B3、B4がポリゴンの外部である事がわかる。
一方、ポリゴンの各辺に対するブロック4頂点の演算結
果をみると、PQに対する演算ではB1、B2、B3、
B4点いずれも符号が変化していないのに対し、QR及
びRPに対する演算では4頂点の演算間で符号が変化し
ている。このことは、ポリゴンの側辺がブロックを通過
したことを意味する。従って本ブロックB16も描画対
象とすべきブロックであることが分かる。(4)B17
はポリゴン頂点を含むブロックであり、直ちに描画対象
とすべきブロックであることが分かる。(5)B31の
ブロックの演算結果はB1、B2、B3、B4いずれの
点も、PQ、QR、RPに対する演算結果とも正の値を
とっている点が存在しない。従ってブロックの頂点B
1、B2、B3、B4がポリゴンの外部である事がわか
る。また、ポリゴンの各辺に対するブロック4頂点の演
算結果をみると、PQ、QR、RPに対する演算でB
1、B2、B3、B4点いずれも符号が変化していない
ことが分かる。従って本ブロックは描画対象から除外す
べきブロックであることが分かる。
【0042】以上説明したように、本発明の描画処理装
置に於ける処理ブロック確定方法は与えられたポリゴン
の座標のみから、任意のブロックが描画対象であるかど
うかを、簡単な演算の符号に着目することで行うことが
出来るため、描画実行と独立に処理ブロックの確定が行
え、処理ブロックデータのメモリからの読み出しを効率
的に行うことができる。また、描画装置の描画実行部を
複数持たせた時の並列化が容易にできる。
【0043】以上、説明した描画処理装置、描画処理方
法、処理ブロック確定方法の説明では描画ポリゴンとし
て3角形を例に上げたが、直線や、図14に示す4角形
の描画処理に於いても同様に拡張可能である。また、説
明の都合上、全て2次元を例に上げて説明を行ったが、
3次元グラフィック処理を行う場合でも、2次元に投影
した描画情報を描画メモリに書く時に同様の処理を行う
ことが出来る。
【0044】第1の実施形態では、上述したように、ブ
ロック単位で画像データメモリ4をアクセスするため、
ランダムにメモリをアクセスする場合に比べてメモリア
クセスを有効に活用することが出来る。また、描画コマ
ンドにより処理すべきブロック確定及びそのブロックの
画像データの読み出しと、ブロック単位で行われる描画
処理とを独立して実行するために、ブロック単位の描画
処理がブロックデータの読み出しにより待たされ、描画
効率を落とす事がない。また、ブロック処理を並列化す
ることも容易に可能である。ブロック処理の並列化の例
は本発明の第3の実施形態で後述する。
【0045】<実施形態2>図15は本発明の描画処理
方法の他の実施形態における処理フロー図である。図に
おいて、図2と同じ処理部には図2と同じ番号を付して
いる。本実施形態の描画処理方法は、描画コマンドを実
行する時、処理すべきブロックの処理順を現在バッファ
上に格納されているブロックデータのパラメタによって
変更することにある。すなわち、描画コマンドを実行す
る際、処理ブロックを確定する時に、ブロックをブロッ
ク並びに順次検査して、処理するかどうかを決めるので
はなく、現在バッファ9にあるブロックが処理すべきブ
ロックかどうかを検査する(22)。
【0046】もし、現在バッファ内にあるブロックデー
タが処理すべきブロックである場合、新たな、ブロック
データの読み出しは行わず、そのまま、描画処理を実行
する。他方、もし現在バッファ内にあるブロックが、処
理ブロックで無い場合は、現在のバッファ内のデータを
画像データメモリに書き戻し(24)、第一のフロー同
様新たにブロックデータを読み出し、ブロックの描画処
理を行う。本フローにより、連続する二つの描画コマン
ド間で第一の描画コマンドの描画処理の最終の数ブロッ
クが第2の描画コマンドの処理領域と重なる場合には、
第2の描画コマンドの処理ブロックの読み出しを削減す
ることが可能であり、連続する描画コマンドでの、画像
データメモリアクセス効率を上げることができる。
【0047】<実施形態3>図16は、本発明による描
画処理装置の他の実施形態の構成を示す。本実施形態
は、上記第一の実施形態の描画処理装置において一つで
あったブロック描画処理回路を複数個持つ描画処理部で
構成するものである。
【0048】描画処理を4つの別のブロックに対し、そ
れぞれ別のブロック描画処理回路81、82、83、8
4が描画処理を行うものである。描画処理装置8はコマ
ンドバッファ11に蓄えられた描画命令に対し、処理ブ
ロック確定部7、処理を必要とするブロックを複数個す
なわちブロック描画処理回路の個数(=4)分直ちに確
定し、ブロック描画処理部8中の複数のブロック描画処
理回路81、82、83、84にそれぞれ描画ブロック
を指定し、描画を実行させる。描画実行に先立ち、処理
ブロック確定部は確定したブロックのデータを描画デー
タメモリから読み出し、ブロックバッファメモリ90に
格納するよう、メモリ制御部10に指示を出す。各ブロ
ック描画81、82、83、84が担当の描画ブロック
の描画処理をブロックバッファメモリ90に対し行う。
【0049】図17は、図16の実施形態の装置におけ
る複数個のブロック描画処理回路の並列動作を表したタ
イミングチャートである。図示の例では、前述した図2
に於ける三角形ポリゴンPQRの描画の際の例を示して
いる。
【0050】描画コマンドを受け取った処理ブロック確
定部7は処理すべきブロックを決定し、処理ブロックの
読み出しを指示する。メモリ読み出しブロックB63、
B52、B53、B54が処理ブロック確定部7からの
指示を受けて読み出されるブロックである。ブロックの
画像データが画像データメモリから読み出されバッファ
に格納された時点で処理回路が描画処理を開始する。従
って図17に示すように、処理回路81がブロックB6
3の描画を行い、処理回路82がブロックB52の描画
を行い、処理回路83がブロックB53の描画を行い、
処理回路84がブロックB54の描画を行う。
【0051】処理回路8により描画が終了したブロック
は再び画像データメモリに書き戻される。メモリ制御部
90では、これら、処理ブロック確定部7からくる、ブ
ロック読み出し指示とブロックバッファメモリ90の容
量及び描画処理部8からの処理終了による書き戻し指示
に従って、画像データメモリへのアクセスを行う。
【0052】このように、描画処理回路が複数個ある場
合でも、各描画処理回路が空き時間を少なくブロック描
画処理が可能なように、ブロック画像データを供給する
ことができ、描画エリアをブロック化して処理する描画
処理装置に於いて、効率よく描画実行が可能な描画処理
装置を提供することが可能である。なお、上記の説明で
はブロック処理回路を4個用いた四並列の場合について
示したが、この構成はブロック処理回路をL個(Lは2
以上の整数)設けてL並列処理を実行する構成に容易に
拡張可能である。
【0053】以上、本発明の実施形態についての説明を
行ったが、本発明が上記実施形態に限定されるものでは
ない。上述の説明では、描画処理装置の描画コマンドは
CPUから与えられるとしたが、描画コマンドを与える
手段は必ずしもCPUである必要はなく、たとえば、ポ
リゴンの頂点座標計算(ジオメトリ演算)を行う専用回
路であってもよい。
【0054】
【発明の効果】本発明の描画処理装置及び描画処理方法
によれば、CPU等により与えられる描画コマンドか
ら、描画を行うべきブロックを描画処理回路と独立に確
定し、メモリ制御を行い画像データメモリとのアクセス
を行い、また描画処理回路は前記処理ブロック確定部か
らの指示により任意ブロックの描画処理を行う為、
(1)画像データメモリに対しブロックでアクセスする
ため、ランダムアクセスに比較してメモリアクセス効率
を上げることが出来る。(2)画像データメモリアクセ
スと描画処理とを並列に実行出来るため、描画処理効率
を上げることが出来る。(3)描画処理回路を複数持つ
ことで、処理の並列化が容易に可能である。(4)直前
の描画処理で使用したブロックバッファメモリの内容を
そのまま次のブロックで使用する事を可能とし、画像デ
ータメモリのアクセスを削減可能とする。
【0055】また、処理ブロックの確定方法は描画コマ
ンドによって与えられる頂点座標から直接計算できるた
め、(1)任意のブロックに対する有効、無効判定が周
囲のブロック判定の順序に関係なく行う事が出来る。
(2)演算式は一種類のもので、複雑な条件処理等必要
としない。
【図面の簡単な説明】
【図1】本発明による描画処理装置の第一の実施形態の
構成を示すブロック図である。
【図2】本発明による描画処理方法の第一の実施形態の
構成を示す処理フロー図である。
【図3】描画図例を示す図である。
【図4】本発明の実施形態説明のための描画ブロック説
明図である。
【図5】本発明による描画処理装置に使用する外積演算
回路の回路図である。
【図6】外積演算の説明図である。
【図7】処理ブロック説明図である。
【図8】描画ブロック説明図である。
【図9】描画ブロック説明図である。
【図10】描画ブロック説明図である。
【図11】描画ブロック説明図である。
【図12】本発明の描画処理方法の一実施形態における
処理ブロック確定部の処理フロー図である。
【図13】本発明の一実施形態における処理ブロック確
定部の演算結果を示す図である。
【図14】描画ブロック説明図である。
【図15】本発明による描画処理方法の他の実施形態の
処理フロー図である。
【図16】本発明による描画処理装置の第二の実施形態
の構成を示すブロック図である。
【図17】本発明による描画処理装置の第二の実施形態
におけるタイミング図である。
【図18】従来の描画処理装置の構成図である。
【図19】従来の描画処理装置の構成図である。
【図20】従来の描画処理方法の処理フロー図である。
【符号の説明】
1、30、40…描画処理装置、2…CPU、3…CP
Uメインメモリ、4…画像データメモリ、5…画像デー
タバス、6…CPUデータバス、7…処理ブロック確定
部、8、31、41、81、82、83、84…ブロッ
ク描画処理部、9、32、42、90…ブロックバッフ
ァメモリ、10、…メモリ制御部、11…描画コマンド
バッファ、51…行列演算回路、54、55…シフト加
算器、56…加算器、57…符号抽出回路。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 長谷 昌 東京都小平市上水本町五丁目20番1号 株 式会社日立製作所システムLSI開発セン タ内 Fターム(参考) 5B047 EA02 EA07 5B062 AA03 CC02 DD02 5C082 AA01 BA12 BB15 CB01 DA22 DA54 DA87 MM02 MM04

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】画面をm画素×n画素(m、nは1以上の
    整数)ブロックに分割し、グラフィック画像を描画コマ
    ンドに従って上記ブロック単位でディジタルデータ処理
    を行う描画装置であって、 少なくとも上記ブロック1個分のデータ容量を有するブ
    ロックバッファメモリと、上記描画コマンドにより描画
    される領域を含むN個の(Nは0以上の整数)処理ブロ
    ックを確定する処理ブロック確定部と、上記処理ブロッ
    クについて、ブロック単位で描画処理を行うブロック処
    理部と、画像メモリ内に配置された1画面分のデータか
    ら上記処理ブロックのデータを読み出して上記ブロック
    バッファメモリに格納し、上記ブロック処理部で上記描
    画コマンドに基づき描画に必要な演算を実行して得られ
    た画素データを上記ブロックバッファメモリ手段を介し
    て上記画像メモリに書き戻す制御を行うメモリ制御部と
    をもつことを特徴とする描画処理装置。
  2. 【請求項2】上記処理ブロック確定部が上記ブロックの
    頂点の座標値と、上記描画コマンドで指定される連続す
    る2頂点座標とのベクトルをそれぞれ求め、上記2頂点
    に対する2つのベクトルの外積演算の符号により、上記
    描画コマンドの描画オブジェクトが上記ブロックに対し
    処理が必要かどうかを判断する手段とで構成された請求
    項1記載の描画処理装置。
  3. 【請求項3】画面をm画素×n画素(m、nは1以上の
    整数)ブロックに分割し、グラフィック画像を描画コマ
    ンドに従って上記ブロック単位でディジタルデータ処理
    を行う描画装置であって、 ブロック複数分のデータ容量を有するブロックバッファ
    メモリと、上記描画コマンドにより描画される領域を含
    むN個の(Nは0以上の整数)処理ブロックを確定する
    処理ブロック確定部と、上記処理ブロック確定部で指定
    された確定された複数の処理ブロックに対しブロック単
    位で同時に描画処理を行う複数の描画処理回路と、画像
    データを画像メモリ上から読み出して上記ブロックバッ
    ファメモリに格納し、上記複数の描画処理回路が実行し
    て得られた複数ブロックの画素データを上記ブロックバ
    ッファメモリに格納し、上記ブロックバッファメモリか
    ら上記画像メモリに書き戻す制御を行うアドレス制御部
    とをもつことを特徴とする描画処理装置。
  4. 【請求項4】上記処理ブロック確定部が上記ブロックの
    頂点の座標値と、上記描画コマンドで指定される連続す
    る2頂点座標とのベクトルをそれぞれ求め、上記2頂点
    に対する2つのベクトルの外積演算の符号により、上記
    描画コマンドの描画オブジェクトが上記ブロックに対し
    処理が必要かどうかを判断する手段で構成された請求項
    3記載のの描画処理装置。
  5. 【請求項5】画面をm画素×n画素(m、nは1以上の
    整数)ブロックに分割し、グラフィック画像を描画コマ
    ンドに従って上記ブロック単位でディジタルデータによ
    る処理を行う描画処理方法であって、上記描画コマンド
    により描画される領域を含むN個の(Nは0以上の整
    数)ブロックを描画コマンドで指定される描画対象の座
    標を基に確定し、確定された確定ブロックに対し、画像
    メモリから上記確定ブロックに相当する画像データをバ
    ッファを介して読み出し、上記確定ブロックに相当する
    画像データを描画処理手段でブロック単位で独立に描画
    処理を実行し、上記描画処理手段により描画された画像
    データを上記メモリに書き戻す事により描画処理を実行
    する描画処理方法において、 上記描画コマンドにより描画される領域を含むN個のブ
    ロックを描画コマンドで指定される描画対象の座標を基
    に確定する際に、上記ブロックの頂点の座標値と、描画
    コマンドで指定される連続する2頂点座標とのベクトル
    をそれぞれ求め、上記2頂点に対する2つのベクトルの
    外積演算の符号により、上記描画コマンドの描画オブジ
    ェクトが上記ブロックに対し処理が必要かどうかを判断
    することを特徴とする描画処理方法。
  6. 【請求項6】上記バッファに格納されている画像データ
    ブロックが、描画コマンドに対し、その描画コマンドに
    より描画される領域に入る場合には、当該ブロックのメ
    モリからの読み出しを行わず、バッファに格納されてい
    る画像データブロックが、描画コマンドに対し、その描
    画コマンドにより描画される領域に入らない場合には、
    該ブロックのメモリからの読み出しを行う請求項5の描
    画処理方法。
  7. 【請求項7】上記描画コマンドに対し、描画される領域
    を含むN個の(Nは0以上の整数)ブロックを描画コマ
    ンドで指定される描画対象の座標を基に確定する際に、
    上記ブロックの頂点の座標値と、描画コマンドで指定さ
    れる連続する2頂点座標とのベクトルをそれぞれ求め、
    上記2頂点に対する2つのベクトルの外積演算の符号に
    より、上記描画コマンドの描画オブジェクトが上記ブロ
    ックに対し処理が必要かどうかを判断することを特徴と
    する請求項5記載の描画処理方法。
  8. 【請求項8】画面をm画素×n画素(m、nは1以上の
    整数)ブロックに分割し、グラフィック画像を描画コマ
    ンドに従って上記ブロック単位でディジタルデータによ
    る処理を行う描画処理方法であって、 描画コマンドに対し、描画される領域を含むN個の(N
    は0以上の整数)ブロックを描画コマンドで指定される
    描画対象の座標を基に確定する手段において、前記ブロ
    ックの頂点の座標値と、描画コマンドで指定される連続
    する2頂点座標とのベクトルをそれぞれ求め、上記2頂
    点に対する2つのベクトルの外積演算の符号により、上
    記描画コマンドの描画オブジェクトが前記ブロックに対
    し処理が必要かどうかを判断することを特徴とする描画
    処理方法。
JP11223353A 1999-08-06 1999-08-06 描画処理装置及び描画処理方法 Pending JP2001051674A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11223353A JP2001051674A (ja) 1999-08-06 1999-08-06 描画処理装置及び描画処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11223353A JP2001051674A (ja) 1999-08-06 1999-08-06 描画処理装置及び描画処理方法

Publications (1)

Publication Number Publication Date
JP2001051674A true JP2001051674A (ja) 2001-02-23

Family

ID=16796839

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11223353A Pending JP2001051674A (ja) 1999-08-06 1999-08-06 描画処理装置及び描画処理方法

Country Status (1)

Country Link
JP (1) JP2001051674A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116611991A (zh) * 2023-07-20 2023-08-18 杭州几率视界科技有限公司 一种基于gpu描绘复杂场景的处理方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116611991A (zh) * 2023-07-20 2023-08-18 杭州几率视界科技有限公司 一种基于gpu描绘复杂场景的处理方法及系统
CN116611991B (zh) * 2023-07-20 2023-10-03 杭州几率视界科技有限公司 一种基于gpu描绘复杂场景的处理方法及系统

Similar Documents

Publication Publication Date Title
US6476808B1 (en) Token-based buffer system and method for a geometry pipeline in three-dimensional graphics
US20150091892A1 (en) Method and apparatus for rendering image data
US8547385B2 (en) Systems and methods for performing shared memory accesses
KR19980702804A (ko) 영상 생성 및 조작을 위한 하드웨어 아키텍처
CN110675480B (zh) 用于获取纹理操作的采样位置的方法和装置
JP7282675B2 (ja) アウトオブオーダキャッシュリターン
US20100265254A1 (en) Graphics filled shape drawing
US11010939B2 (en) Rendering of cubic Bezier curves in a graphics processing unit (GPU)
JP3106872B2 (ja) 画像処理プロセッサ及びそれを用いたデータ処理システム
CN114461406A (zh) DMA OpenGL优化方法
JPH09212412A (ja) メモリアクセス方法及びデータ処理装置
WO2023202367A1 (zh) 图形处理器、系统、装置、设备及方法
CA2055784C (en) Hierarchical memory controller
JPS59172064A (ja) ビデオ・システムにおける並列処理方式
JP2001051674A (ja) 描画処理装置及び描画処理方法
US11972518B2 (en) Hybrid binning
JPH07295787A (ja) 演算処理装置
JPH02297594A (ja) データ処理装置、データ処理システム及びアウトラインフォントデータ発生方法
US10832465B2 (en) Use of workgroups in pixel shader
KR100393305B1 (ko) 컴퓨터 판독 가능 기록 매체, 묘화 방법 및 그래픽 묘화장치
JP4622165B2 (ja) 画像メモリ制御装置、グラフィック演算装置およびレンダリング処理方法
US6930686B1 (en) Method and apparatus for drawing thick graphic primitives
JP3468985B2 (ja) グラフィック描画装置、グラフィック描画方法
JP4419480B2 (ja) 画像処理装置およびその方法
WO2023230878A1 (zh) 着色方法和图像处理器