JP3687945B2 - 画像処理装置およびその方法 - Google Patents
画像処理装置およびその方法 Download PDFInfo
- Publication number
- JP3687945B2 JP3687945B2 JP35315398A JP35315398A JP3687945B2 JP 3687945 B2 JP3687945 B2 JP 3687945B2 JP 35315398 A JP35315398 A JP 35315398A JP 35315398 A JP35315398 A JP 35315398A JP 3687945 B2 JP3687945 B2 JP 3687945B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- circuit
- texture
- storage circuit
- image
- 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 - Lifetime
Links
- 238000012545 processing Methods 0.000 title claims description 114
- 238000000034 method Methods 0.000 title claims description 48
- 238000002156 mixing Methods 0.000 claims description 50
- 230000008569 process Effects 0.000 claims description 39
- 238000009877 rendering Methods 0.000 claims description 36
- 230000006870 function Effects 0.000 claims description 17
- 239000003086 colorant Substances 0.000 claims description 16
- 239000004065 semiconductor Substances 0.000 claims description 8
- 238000003672 processing method Methods 0.000 claims description 4
- 239000000284 extract Substances 0.000 claims description 3
- 239000000872 buffer Substances 0.000 description 66
- 238000010586 diagram Methods 0.000 description 14
- 238000004364 calculation method Methods 0.000 description 13
- 239000000203 mixture Substances 0.000 description 5
- 238000012937 correction Methods 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000011960 computer-aided design Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 239000012536 storage buffer Substances 0.000 description 2
- 241001122767 Theaceae Species 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/503—Blending, e.g. for anti-aliasing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
- Control Of Indicators Other Than Cathode Ray Tubes (AREA)
- Controls And Circuits For Display Device (AREA)
Description
【発明の属する技術分野】
本発明は、いわゆるαブレンディング処理およびディザ処理を行う画像処理装置およびその方法に関するものである。
【0002】
【従来の技術】
種々のCAD(Computer Aided Design) システムや、アミューズメント装置などにおいて、コンピュータグラフィックスがしばしば用いられている。特に、近年の画像処理技術の進展に伴い、3次元コンピュータグラフィックスを用いたシステムが急速に普及している。
このような3次元コンピュータグラフィックスでは、各画素(ピクセル)に対応する色を決定するときに、各画素の色の値を計算し、この計算した色の値を、当該画素に対応するディスプレイバッファ(フレームバッファ)のアドレスに書き込むレンダリング(Rendering) 処理を行う。
【0003】
レンダリング処理の手法の一つに、ポリゴン(Polygon)レンダリングがある。この手法では、立体モデルを三角形の単位図形(ポリゴン)の組み合わせとして表現しておき、このポリゴンを単位として描画を行うことで、表示画面の色を決定する。
【0004】
ポリゴンレンダリングでは、物理座標系における三角形の各頂点についての、座標(x,y,z)と、色データ(R,G,B,α)と、張り合わせのイメージパターンを示すテクスチャデータの同次座標(s,t)および同次項qの値とを入力とし、これらの値を三角形の内部で補間する処理が行われる。
ここで、同次項qは、簡単にいうと、拡大縮小率のようなもので、実際のテクスチャバッファのUV座標系における座標、すなわち、テクスチャ座標データ(u,v)は、同次座標(s,t)を同次項qで除算した「s/q」および「t/q」に、それぞれテクスチャサイズUSIZEおよびVSIZEを乗じたものとなる。
【0005】
図10は、3次元コンピュータグラフィックスシステムの基本的な概念を示すシステム構成図である。
【0006】
この3次元コンピュータグラフィックスシステムにおいては、グラフィックス描画等のデータは、メインプロセッサ1のメインメモリ2、あるいは外部からのグラフィックスデータを受けるI/Oインタフェース回路3からメインバス4を介してレンダリングプロセッサ5a、フレームバッファメモリ5bを有するレンダリング回路5に与えられる。
【0007】
レンダリングプロセッサ5aには、表示するためのデータを保持することを目的とするフレームバッファ5bと、描画する図形要素(たとえば三角形)の表面に張り付けるテクスチャデータを保持しているテクスチャメモリ6が結合されている。
そして、レンダリングプロセッサ5aによって、図形要素毎に表面にテクスチャを張り付けた図形要素を、フレームバッファ5bに描画するという処理が行われる。
【0008】
フレームバッファ5bとテクスチャメモリ6は、一般的にDRAM(Dynamic Random Access Memory)により構成される。
そして、図9のシステムにおいては、フレームバッファ5bとテクスチャメモリ6は、物理的に別々のメモリシステムとして構成されている。
【0009】
ところで、画像データを描画するにあたっては、レンダリングプロセッサ5aにおいて、必要に応じて、現画像データに含まれる(R,G,B)データと、既にフレームバッファ5bに記憶されている(R,G,B)データとが、現画像データに対応するαデータが示す混合値で混合されるαブレンディング処理が行われ、さらにαブレンディング後の画像データをフレームバッファ5bの容量等を考慮してデータを間引くディザ(dither)処理が行われて、ディザ処理後の(R,G,B)データがフレームバッファ5に書き戻される。
【0010】
換言すれば、αブレンディング処理は、2つの色を線形補間して間に色を付ける処理であり、ディザ処理は、αブレンディング処理を受けたデータに雑音データを加え、その後にデータを間引いて、少ない色数で多くの色に見えるようにするための処理である。
【0011】
図11は、従来のαブレンディング処理回路およびディザ処理回路の構成例を示すブロック図である。
【0012】
αブレンディング処理回路6は、現画像データ(たとえば〔0,255〕を表現する8ビット整数)Sと混合係数α(たとえば〔0,2〕を表現する8ビット整数を乗算する乗算器61と、1から混合係数αを減算する減算器62、既にフレームバッファ5bに記憶されている画像データ(たとえば〔0,255〕を表現する8ビット整数)Dと減算器62の出力とを乗算する乗算器63と、乗算器61の出力と乗算器63の出力とを加算する加算器64と、加算器64で得られたデータから色(カラー)値の有効値(たとえば〔0,255〕)を抽出するクランプ回路65とから構成されている。
【0013】
αブレンディング処理回路6においては、図11に示すように、加算器64の出力のように、入力値S,D,αからα×S+(1−α)×Dなるデータが得られる。
【0014】
また、ディザ処理回路7は、αブレンディング処理回路6の出力信号S6に雑音データである誤差データ(たとえば〔−4,3〕を表現する3ビット整数)Eを加算する加算器71と、加算器71の出力からカラー値の有効値を抽出するクランプ回路72と、クランプ回路72の出力から下位3ビットを切り捨てて(間引いて)上位5ビットをフレームバッファ5bに書き戻す切り捨て回路(除算回路)73とから構成されている。
【0015】
ディザ処理回路7においては、図11に示すように、加算器71の出力のように、入力値α×S+(1−α)×DおよびEからα(S−D)+D+Eなるデータが得られる。
【0016】
【発明が解決しようとする課題】
しかしながら、上述したように、従来の画像処理装置では、αブレンディング処理回路6およびディザ処理回路7が別々に設けられ、かつ直列に接続された構成であることから、回路規模が大きくなり、また、演算時間がかかり、高速処理の障害となっている。
【0017】
また、上述した3次元コンピュータグラフィックスシステムにおける従来のいわゆる内蔵DRAMシステムにおいて、フレームバッファメモリとテクスチャメモリが別々のメモリシステムに別れている場合においては、以下のような不利益があった。
【0018】
第1に、表示の解像度の変化によって空きとなったフレームバッファをテクスチャ用に利用できない、あるいはフレームバッファメモリとテクスチャメモリを物理的に同一にすると、フレームバッファメモリとテクスチャーメモリの同時アクセスにおいて、DRAMのペ−ジ切り替え等のオーバーヘッドが大きくなり、性能を犠牲にしなければならなくなる等の不利益がある。
【0019】
本発明は、かかる事情に鑑みてなされたものであり、その目的は、αブレンディングおよびディザ処理用回路の回路規模を小さくでき、しかも高速処理を実現でき、また、表示の解像度の変化によって空きとなったメモリ領域をテクスチャ用に利用でき、ペ−ジ切り替え等のオーバーヘッドの増大を防止き、性能を低下を招くことがない、柔軟でかつ高速処理が可能な画像処理装置およびその方法を提供することにある。
【0020】
【課題を解決するための手段】
上記目的を達成するため、本発明は、画像データに対してαブレンディング処理およびディザ処理を行う画像処理装置であって、少なくとも表示用画像データが描画される記憶回路と、これから描画すべき現画像データから、既に上記記憶回路に記憶されている画像データを減算した値に与えられた混合係数αを乗じたデータを用いて求めるとともに、上記記憶回路に記憶されている画像データに雑音データを加えたデータを求め、得られた両データを加算することにより、2つの色の線形補間をしたデータに雑音データを加えたデータを求め、このデータから色の有効値を抽出し、この抽出データからデータを間引いて、上記記憶回路に書き戻すロジック回路とを有する。
【0021】
本発明では、上記ロジック回路は、これから描画すべき現画像データSから既に上記記憶回路に記憶されている画像データDを減算する減算器と、既に上記記憶回路に記憶されている画像データDに雑音データである誤差データEを加算する第1の加算器と、上記減算器の出力データ(S−D)に混合係数αを乗算する乗算器と、上記乗算器の出力データ{α×(S−D)}と上記第1の加算器の出力データ(D+E)を加算する第2の加算器と、上記第2の加算器の出力データから色の有効値を抽出するクランプ回路と、上記クランプ回路の出力データから所定のデータを間引いて上記記憶回路に書き戻す切り捨て回路とを有する。
【0022】
また、本発明では、上記記憶回路は、表示用画像デ−タに加えて、少なくとも一つの図形要素が必要とするテクスチャデ−タを記憶し、上記ロジック回路は、上記記憶回路の記憶データに基づいて、表示データの図形要素の表面へのテクスチャデータの張り付け処理を行い、上記記憶回路および上記ロジック回路が一つの半導体チップ内に混載されている。
【0023】
また、本発明では、上記記憶回路は、同一機能を有する複数のモジュールに分割され、上記ロジック回路は、各モジュールを並列にアクセスする。
【0024】
また、本発明では、上記記憶回路には、表示アドレス空間において、隣接するアドレスにおける表示要素が、異なる記憶ブロックになるように配置される。
【0025】
また、本発明は、前記単位図形の頂点について、3次元座標(x,y,z)、R(赤),G(緑),B(青)データ、混合係数α、テクスチャの同次座標(s,t)および同次項qを含むポリゴンレンダリングデータを受けてレンダリング処理を行う画像処理装置であって、表示用画像デ−タと少なくとも一つの図形要素が必要とするテクスチャデ−タを記憶する記憶回路と、これから描画すべき現画像データから、既に上記記憶回路に記憶されている画像データを減算した値に与えられた混合係数αを乗じたデータを求めるとともに、上記記憶回路に記憶されている画像データに雑音データを加えたデータを求め、得られた両データを加算することにより、2つの色の線形補間をしたデータに雑音データを加えたデータを求め、このデータから色の有効値を抽出し、この抽出データからデータを間引いて、上記記憶回路に書き戻す描画データ制御回路と、前記単位図形の頂点のポリゴンレンダリングデータを補間して、前記単位図形内に位置する画素の補間データを生成する補間データ生成回路と、前記補間データに含まれるテクスチャの同次座標(s,t)を同次項qで除算して「s/q」および「t/q」を生成し、前記「s/q」および「t/q」に応じたテクスチャアドレスを用いて、前記記憶回路からテクスチャデータを読み出し、表示用画像データの図形要素の表面へのテクスチャデータの張り付け処理を行うテクスチャ処理回路と、を少なくとも有し、前記記憶回路、描画データ制御回路、補間データ生成回路およびテクスチャ処理回路が一つの半導体チップ内に混載されている。
【0026】
また、本発明は、画像データに対してαブレンディング処理およびディザ処理を行い記憶回路に描画する画像処理方法であって、これから描画すべき現画像データから、既に上記記憶回路に記憶されている画像データを減算した値に与えられた混合係数αを乗じる処理と、上記記憶回路に記憶されている画像データに雑音データを加える処理とを並行して行い、両処理で得られたデータを加算することにより、2つの色の線形補間をしたデータに雑音データを加えたデータを求め、このデータから色の有効値を抽出し、この抽出データからデータを間引いて、上記記憶回路に書き戻す。
【0027】
本発明によれば、ロジック回路において、まず、これから描画すべき現画像データの、既に上記記憶回路に記憶されている画像データに対する更新量データが、与えられた混合係数αを用いて求められ、これと並行して、記憶回路に記憶されている画像データに雑音データを加えたデータが求められる。
次に、両処理で得られたデータが加算されて、αブレンディング処理が行われた画像データに雑音データが加えられたデータが得られる。
そして、この加算データから色の有効値が抽出され、この抽出データからデータが切り捨てる等の処理で間引かれていて、記憶回路に書き戻される。
すなわち、αブレンディング処理およびディザ処理が、簡単化された回路で、短時間に行われる。
【0028】
また、本発明によれば、一つの半導体チップの内部に、DRAM等の記憶回路とロジック回路を混載させ、表示用画像デ−タと少なくとも一つの図形要素が必要とするテクスチャデ−タを、内蔵の記憶回路に記憶させていることにより、表示領域以外の部分にテクスチャデ−タを格納できることになり、内蔵メモリの有効利用が可能となる。
【0029】
また、記憶回路における同一機能を独立した複数のモジュ−ルとして並列にもつことにより、並列動作の効率が向上する。単にデ−タのビット数が多いだけでは、デ−タの使用効率は悪化し、性能向上できるのは一部の条件の場合に限定されることになるが、平均的な性能を向上させるためには、ある程度の機能をもったモジュ−ルを、複数設けることで、ビット線が有効に利用できる。
【0030】
また、内蔵記憶回路の配置、すなわち、それぞれの独立されたメモリ+機能モジュ−ルが、占有するアドレス空間を工夫することで、さらにビット線の有効利用が可能となる。
グラフィックス描画におけるような、比較的固まった表示領域へのアクセスが多い場合には、表示アドレス空間において、隣接するアドレスにおける表示要素が、それぞれ異なるメモリのブロックになるように配置することで、それぞれのモジュ−ルが同時に処理できる確率が増加し、描画性能の向上が可能となる。固まった表示領域へのアクセスが多いというのは、三角形等の閉領域の内部を描画しようとした場合、その内部の表示要素どうしは隣接しているので、そのような領域へのアクセスはアドレス隣接することになる。
【0031】
【発明の実施の形態】
以下、本実施形態においては、パーソナルコンピュータなどに適用される、任意の3次元物体モデルに対する所望の3次元画像をCRT(Cathode Ray Tube)などのディスプレイ上に高速に表示する3次元コンピュータグラフィックスシステムについて説明する。
【0032】
図1は、本発明に係る画像処理装置としての3次元コンピュータグラフィックスシステム10のシステム構成図である。
【0033】
3次元コンピュータグラフィックスシステム10は、立体モデルを単位図形である三角形(ポリゴン)の組み合わせとして表現し、このポリゴンを描画することで表示画面の各画素の色を決定し、ディスプレイに表示するポリゴンレンダリング処理を行うシステムである。
また、3次元コンピュータグラフィックスシステム10では、平面上の位置を表現する(x,y)座標の他に、奥行きを表すz座標を用いて3次元物体を表し、この(x,y,z)の3つの座標で3次元空間の任意の一点を特定する。
【0034】
図1に示すように、3次元コンピュータグラフィックスシステム10は、メインプロセッサ11、メインメモリ12、I/Oインタフェース回路13、およびレンダリング回路14が、メインバス15を介して接続されている。
以下、各構成要素の機能について説明する。
【0035】
メインプロセッサ11は、たとえば、アプリケーションの進行状況などに応じて、メインメモリ12から必要なグラフィックデータを読み出し、このグラフィックデータに対してクリッピング(Clipping)処理、ライティング(Lighting)処理などのジオメトリ(Geometry)処理などを行い、ポリゴンレンダリングデータを生成する。メインプロセッサ11は、ポリゴンレンダリングデータS11を、メインバス15を介してレンダリング回路14に出力する。
【0036】
I/Oインタフェース回路13は、必要に応じて、外部から動きの制御情報またはポリゴンレンダリングデータ等を入力し、これをメインバス15を介してレンダリング回路14に出力する。
【0037】
ここで、ポリゴンレンダリングデータは、ポリゴンの各3頂点の(x,y,z,R,G,B,α,s,t,q,F)のデータを含んでいる。
ここで、(x,y,z)データは、ポリンゴの頂点の3次元座標を示し、(R,G,B)データは、それぞれ当該3次元座標における赤、緑、青の輝度値を示している。
データαは、これから描画する画素と、ディスプレイバッファ147bに既に記憶されている画素とのR,G,Bデータのブレンド(混合)係数を示している。
(s,t,q)データのうち、(s,t)は、対応するテクスチャの同次座標を示しており、qは同次項を示している。ここで、「s/q」および「t/q」に、それぞれテクスチャサイズUSIZEおよびVSIZEを乗じてテクスチャ座標データ(u,v)が得られる。テクスチャバッファ147aに記憶されたテクスチャデータへのアクセスは、テクスチャ座標データ(u,v)を用いて行われる。
Fデータは、フォグのα値を示している。
すなわち、ポリゴンレンダリングデータは、三角形の各頂点の物理座標値と、それぞれの頂点の色とテクスチャおよびフォグの値のデータである。
【0038】
以下、レンダリング回路14について詳細に説明する。
図1に示すように、レンダリング回路14は、DDA(Digital Differential Anarizer) セットアップ回路141、トライアングルDDA回路142、テクスチャエンジン回路143、メモリインタフェース(I/F)回路144、CRTコントロール回路145、RAMDAC回路146、DRAM147およびSRAM(Static RAM)148を有する。
本実施形態におけるレンダリング回路14は、一つの半導体チップ内にロジック回路と少なくとも表示用画像データ(以下、表示データという)とテクスチャデータとを記憶するDRAM147とが混載されている。
【0039】
DRAM147
DRAM147は、テクスチャバッファ147a、ディスプレイバッファ147b、zバッファ147cおよびテクスチャCLUT(Color Look Up Table) バッファ147dとして機能する。
また、DRAM147は、後述するように、同一機能を有する複数(本実施形態では4個)のモジュールに分割されている。
【0040】
また、DRAM147には、より多くのテクスチャデ−タを格納するために、インデックスカラ−におけるインデックスと、そのためのカラ−ルックアップテ−ブル値が、テクスチャCLUTバッファ147dに格納されている。
インデックスおよびカラ−ルックアップテ−ブル値は、テクスチャ処理に使われる。すなわち、通常はR,G,Bそれぞれ8ビットの合計24ビットでテクスチャ要素を表現するが、それではデ−タ量が膨らむため、あらかじめ選んでおいたたとえば256色等の中から一つの色を選んで、そのデ−タをテクスチャ処理に使う。このことで256色であればそれぞれのテクスチャ要素は8ビットで表現できることになる。インデックスから実際のカラ−への変換テ−ブルは必要になるが、テクスチャの解像度が高くなるほど、よりコンパクトなテクスチャデ−タとすることが可能となる。
これにより、テクスチャデ−タの圧縮が可能となり、内蔵DRAMの効率良い利用が可能となる。
【0041】
さらにDRAM147には、描画と同時並行的に隠れ面処理を行うため、描画しようとしている物体の奥行き情報が格納されている。
なお、表示データと奥行きデータおよびテクスチャデータの格納方法としては、メモリブロックの先頭から連続して表示データが格納され、次に奥行きデータが格納され、残りの空いた領域に、テクスチャの種類毎に連続したアドレス空間でテクスチャデータが格納される。これにより、テクスチャデータを効率よく格納できることになる。
【0042】
DDAセットアップ回路141
DDAセットアップ回路141は、後段のトライアングルDDA回路142において物理座標系上の三角形の各頂点の値を線形補間して、三角形の内部の各画素の色と深さ情報を求めるに先立ち、ポリゴンレンダリングデータS11が示す(z,R,G,B,α,s,t,q,F)データについて、三角形の辺と水平方向の差分などを求めるセットアップ演算を行う。
このセットアップ演算は、具体的には、開始点の値と終点の値と、開始点と終点との距離を用いて、単位長さ移動した場合における、求めようとしている値の変分を算出する。
DDAセットアップ回路141は、算出した変分データS141をトライアングルDDA回路142に出力する。
【0043】
DDAセットアップ回路141の機能について図2に関連付けてさらに説明する。
上述したように、DDAセットアップ回路141の主な処理は、前段のジオメトリ処理を経て物理座標にまで落ちてきた各頂点における各種情報(色、ブレンドの割合、テクスチャ座標、Fogカラー)の与えられた三頂点により構成される三角形内部で変分を求めて、後段の線形補間処理の基礎デ−タを算出することである。
なお、三角形の各頂点データは、たとえばx,y座標が16ビット、z座標が24ビット、RGBカラー値が各12ビット(=8+4)、s,t,qテクスチャ座標は各32ビット浮動少数値(IEEEフォーマット)、α係数が12ビット、並びにFog係数が12ビットで構成される。
【0044】
三角形の描画は水平ラインの描画に集約されるが、そのために水平ラインの描画開始点における最初の値を求める必要がある。
この水平ラインの描画においては、一つの三角形の中でその描画方向は一定にする。たとえば左から右へ描画する場合は、左側の辺におけるY方向変位に対するXおよび上記各種の変分を算出しておいて、それを用いて頂点から次の水平ラインに移った場合の最も左の点のx座標と、上記各種情報の値を求める(辺上の点はY,X両方向に変化するのでY方向の傾きのみでは計算できない。)。
右側の辺に関しては終点の位置がわかればよいので、Y方向変位に対するxの変分のみを調べておけばよい。
水平ラインの描画に関しては、水平方向の傾きは同一三角形内では均一なので、上記各種情報の傾きを算出しておく。
与えられた三角形をY方向にソートして最上位の点をAとする。次に残りの2頂点のX方向の位置を比較して右側の点をBとする。こうすることで、処理の場合分け等が2通り程度にできる。
【0045】
トライアングルDDA回路142
トライアングルDDA回路142は、DDAセットアップ回路141から入力した変分データS141を用いて、三角形内部の各画素における線形補間された(z,R,G,B,α,s,t,q,F)データを算出する。
トライアングルDDA回路11は、各画素の(x,y)データと、当該(x,y)座標における(z,R,G,B,α,s,t,q,F)データとを、DDAデータ(補間データ)S142としてテクスチャエンジン回路143に出力する。
たとえば、トライアングルDDA回路142は、並行して処理を行う矩形内に位置する8(=2×4)画素分のDDAデータS142をテクスチャエンジン回路143に出力する。
【0046】
トライアングルDDA回路142の機能について図3に関連付けてさらに説明する。
上述したように、DDAセットアップ回路141により、三角形の各辺と水平方向における先出の各種情報の傾き情報が準備され、この情報を受けたトライアングルDDA回路142の基本的処理は、三角形の辺上の各種情報の補間処理による水平ラインの初期値の算出と、水平ライン上での各種情報の補間処理である。
ここで最も注意しなければならないことは、補間結果の算出は、画素中心における値を算出する必要があるということである。
その理由は、算出する値が画素中心からはずれたところを求めていては、静止画の場合はさほど気にならないが、動画にした場合には、画像の揺らぎが目立つようになるからである。
【0047】
最初の水平ライン(当然画素中心を結んだライン)の一番左側における各種情報は、辺上の傾きに頂点からその最初の水平ラインまでの距離をかけてやることで求めることができる。
次のラインにおける開始位置での各種情報は、辺上の傾きを足してゆくことで算出できる。
水平ラインにおける最初の画素での値は、ラインの開始位置における値に、最初の画素までの距離と水平方向の傾きをかけた値を足すことで算出できる。水平ラインにおける次の画素における値は、最初の画素の値に対してつぎつぎに水平方向の傾きを足し込んでゆけば算出できる。
【0048】
次に、頂点のソートについて図4に関連付けて説明する。
頂点をあらかじめソートしておくことで、以降の処理の場合分けを最大限に減らし、かつ、補間処理においてもできるだけ一つの三角形の内部においては、矛盾が生じにくくすることができる。
ソートのやり方としては、まずすべての与えられた頂点をY方向にソートして、最上位の点と最下位の点を決めそれぞれA点、C点とする。残りの点はB点とする。
このようにすることで、Y方向に最も長く伸びた辺が辺ACとなり、最初に辺ACと辺ABを用いてその二つの辺で挟まれた領域の補間処理を行い、次に辺ACはそのままで、辺ABに変えて辺BCと辺ACで挟まれた領域の補間を行うという処理になる。また、Y方向の画素座標格子上への補正に関しても、辺ACと辺BCについて行っておけばよいこともわかる。
このようにして、ソート後の処理に場合分けが不必要になることで、データを単純に流すだけの処理で可能となりバグも発生しにくくなるし、構造もシンプルになる。
また、一つの三角形の中で補間処理の方向が辺BC上を開始点として一定にできるため、水平方向の補間(Span)の方向が一定となり、演算誤差があったとしても辺BCから他の辺に向かって誤差が蓄積されるかたちとなり、その蓄積の方向が一定となるため、隣接する辺同士での誤差は目立たなくなる。
【0049】
次に、水平方向の傾き算出について図5に関連付けて説明する。
三角形内における各種変数(x,z,α,R,G,B,s,t,q)の(x,y)に対する傾き(変数分)は、線形補間であることから一定となる。
したがって、水平方向の傾き、すなわち、各水平ライン(Span)上での傾きはどのSpanにおいても、一定となるので、各Spanの処理に先立ってその傾きを求めておくことになる。
三角形の与えられた頂点をY方向にソートした結果、辺ACが最も長く伸びた辺と再定義されているので、頂点Bを水平方向に伸ばしたラインと辺ACの交点が必ず存在するのでその点をDとする。
後は単純に点Bと点Dの間の変分を求めるようなことを行えば、水平方向すなわちx方向の傾きを求めることができる。
【0050】
具体的には、D点でのxおよびz座標は次式のようになる。
【0051】
【数1】
xd ={(yd −ya )/(yc −ya )}・(xc −xa )
zd ={(yd −ya )/(yc −ya )}・(zc −za )
【0052】
これに基づいて、変数zのx方向の傾きを求めると、次のようになる。
【0053】
【数2】
【0054】
次に、頂点データの補間手順の一例について、図6および図7に関連付けて説明する。
頂点のソート、水平方向の傾き算出、各辺上での傾きの算出処理を経て、それらの結果を使って補間処理を行う。
B点の位置によって、Spanでの処理の向きは2通りに別れる。これは、一つの三角形の内部での補間における各Span同士での誤差の蓄積方向を、一定にすることで、できるだけ不具合が発生しないようにするために、Y方向に最も長く伸びた辺を常に始点として、処理するようにしようとしているからである。
B点がA点と同じ高さにあった場合には、前半の処理はスキップされることになる。よって、場合分けというよりは、スキップが可能な機構を設けておくだけで処理としてはすっきりしたものとできる。
複数のSpanを同時処理することで、処理能力をあげようとした場合には、Y方向における傾きを求めたくなるが、頂点のソートからやり直す必要があることになる。しかしながら、補間処理の前処理だけでことが済むために、全体としての処理系は簡単にできる。
【0055】
具体的には、B点がA点と同じ高さでない場合には、AC,ABのY方向補正(画素格子上の値算出)を行い(ST1,ST2)、AC辺上の補間およびAB辺上の補間を行う(ST3)。
そして、AC水平方向の補正およびAC辺からAB辺方向の水平ライン(Span)上を補間する(ST4)。
以上のステップST3,ST4の処理をAB辺の端点まで行う(ST5)。
AB辺の端点までステップST2〜ST4の処理が終了した場合、あるいはステップST1においてB点がA点が同じ高さであると判別した場合には、BCのY方向補正(画素格子上の値算出)を行い(ST6)、AC辺上の補間およびBC辺上の補間を行う(ST7)。
そして、AC水平方向の補正およびAC辺からBC辺方向の水平ライン(Span)上を補間する(ST8)。
以上のステップST7,ST8の処理をBC辺の端点まで行う(ST9)。
【0056】
テクスチャエンジン回路143
テクスチャエンジン回路143は、「s/q」および「t/q」の算出処理、テクスチャ座標データ(u,v)の算出処理、テクスチャバッファ147aからの(R,G,B,α)データの読み出し処理、および、混合処理(αブレンディング処理)を順にパイプライン方式で行う。
なお、テクスチャエンジン回路143は、たとえば所定の矩形内に位置する8画素についての処理を同時に並行して行う。
【0057】
テクスチャエンジン回路143は、DDAデータS142が示す(s,t,q)データについて、sデータをqデータで除算する演算と、tデータをqデータで除算する演算とを行う。
テクスチャエンジン回路143には、たとえば図示しない除算回路が8個設けられており、8画素についての除算「s/q」および「t/q」が同時に行われる。
【0058】
また、テクスチャエンジン回路143は、除算結果である「s/q」および「t/q」に、それぞれテクスチャサイズUSIZEおよびVSIZEを乗じて、テクスチャ座標データ(u,v)を生成する。
また、テクスチャエンジン回路143は、メモリI/F回路144を介して、SRAM148あるいはDRAM147に、生成したテクスチャ座標データ(u,v)を含む読み出し要求を出力し、メモリI/F回路144を介して、SRAM148あるいはテクスチャバッファ147aに記憶されているテクスチャデータを読み出すことで、(s,t)データに対応したテクスチャアドレスに記憶された(R,G,B,α)データS148を得る。
ここで、SRAM148には、テクスチャバッファ147aに格納されているテクスチャデータが記憶される。
テクスチャエンジン回路143は、読み出した(R,G,B,α)データS148の(R,G,B)データと、前段のトライアングルDDA回路142からのDDAデータS142に含まれる(R,G,B)データとを、(R,G,B,α)データS148に含まれるαデータが示す割合で混合し(それぞれかけあわせるなどして)、画素データS143を生成する。
テクスチャエンジン回路143は、この画素データS143をメモリI/F回路144に出力する。
【0059】
なお、テクスチャバッファ147aには、MIPMAP(複数解像度テクスチャ)などの複数の縮小率に対応したテクスチャデータが記憶されている。ここで、何れの縮小率のテクスチャデータを用いるかは、所定のアルゴリズムを用いて、前記三角形単位で決定される。
【0060】
テクスチャエンジン回路143は、フルカラー方式の場合には、テクスチャバッファ147aから読み出した(R,G,B,α)データを直接用いる。
一方、テクスチャエンジン回路143は、インデックスカラー方式の場合には、あらかじめ作成したカラールックアップテーブル(CLUT)をテクスチャCLUTバッファ147dから読み出して、内蔵するSRAMに転送および記憶し、このカラールックアップテーブルを用いて、テクスチャバッファ147aから読み出したカラーインデックスに対応する(R,G,B)データを得る。
【0061】
メモリI/F回路144
メモリI/F回路144は、テクスチャエンジン回路143から入力した画素データS143に対応するzデータと、zバッファ147cに記憶されているzデータとの比較を行い、入力した画素データS143によって描画される画像が、前回、ディスプレイバッファ147bに書き込まれた画像より、手前(視点側)に位置するか否かを判断し、手前に位置する場合には、画像データS143に対応するzデータでzバッファ147cに記憶されたzデータを更新する。
また、メモリI/F回路144は、必要に応じて、画像データS143に含まれる(R,G,B)データと、既にディスプレイバッファ147bに記憶されている(R,G,B)データとを、画像データS143に対応するαデータが示す混合値で混合するαブレンディング処理と、ディスプレイバッファ147bの容量等を考慮してデータを間引く(切り捨てる)ディザ処理とを並列的に行い、処理後の(R,G,B)データをディスプレイバッファ147bに書き込む(打ち込む)。
【0062】
図8は、αブレンディング処理とディザ処理とを並列的に行うαブレンディング/ディザ処理回路1440の構成例を示すブロック図である。
【0063】
このロジック回路または描画データ制御回路としてのαブレンディング/ディザ処理回路1440は、図8に示すように、これから描画すべき現画像データ(たとえば〔0,255〕を表現する8ビット整数)Sから既にディスプレイバッファ147bに記憶されている画像データ(たとえば〔0,255〕を表現する8ビット整数)Dを減算する減算器1441と、既にディスプレイバッファ147bに記憶されている画像データDに雑音データである誤差データ(たとえば〔−4,3〕を表現する3ビット整数)Eを加算する第1の加算器1442と、減算器1441の出力データ(S−D)に混合係数(たとえば〔0,2〕を表現する8ビット整数)αを乗算する乗算器1443と、乗算器1443の出力データ{α×(S−D)}と第1の加算器1442の出力データ(D+E)を加算する第2の加算器1444と、第2の加算器1444の出力データからカラー値の有効値(たとえば〔0,255〕)を抽出するクランプ回路1445と、クランプ回路1445の出力データから下位3ビットを切り捨てて(間引いて)上位5ビットをディスプレイバッファ147bに書き戻す切り捨て回路(除算回路)1446とから構成されている。
【0064】
このαブレンディング/ディザ処理回路1440では、減算器1441および乗算器1443で、これから描画すべき現画像データSの既にディスプレイバッファ147bに記憶されている画像データDに対する更新量データを混合係数αを用いて求める処理と、第1の加算器1442で既にディスプレイバッファ147bに記憶されている画像データDに雑音データEを加える処理とが同時並列的に行われ、両処理で得られたデータを第2の加算器1444で加算することにより、2つの色の線形補間をしたデータに雑音データを加えたデータ{α×(S−D)+D+Eが求められ、その後、クランプ回路1445でカラーの有効値が抽出され、この抽出データから切り捨て回路1446でデータが間引かれて、ディスプレイバッファ147bに書き戻される。
【0065】
この回路は、従来回路に比べて乗算器およびクランプ回路が1つずつ少ない構成となっており、回路規模が小さく、また、αブレンディング処理とディザ処理とが並列的に行われることから、演算時間が短縮されている。
【0066】
なお、メモリI/F回路144によるDRAM147に対してのアクセスは、16画素について同時に行われる。
【0067】
本実施形態においては、DRAM147は、たとえば図9に示すように、4つのDRAMモジュール1471〜1474に分割されており、メモリI/F回路144には、各DRAMモジュール1471〜1474に対応したメモリコントローラ1447〜1450、並びにこれらメモリコントローラ1441にデータを分配するディストリビュータ1451が設けられている。
そして、メモリI/F回路144は、各DRAMモジュール1471〜1474に対して、図9に示すように、画素データを、表示領域において隣接した部分は、異なるDRAMモジュールとなるように配置する。
これにより、三角形のような平面を描画する場合には面で同時に処理できることになるため、それぞれのDRAMモジュールの動作確率は非常に高くなっている。
【0068】
CRTコントロール回路145
CRTコントローる回路145は、与えられた水平および垂直同期信号に同期して、図示しないCRTに表示するアドレスを発生し、ディスプレイバッファ147bから表示データを読み出す要求をメモリI/F回路144に出力する。この要求に応じて、メモリI/F回路144は、ディスプレイバッファ147bから一定の固まりで表示データを読み出す。CRTコントローラ回路145は、ディスプレイバッファ147bから読み出した表示データを記憶するFIFO(First In First Out)回路を内蔵し、一定の時間間隔で、RAMDAC回路146に、RGBのインデックス値を出力する。
【0069】
RAMDAC回路146
RAMDAC回路146は、各インデックス値に対応するR,G,Bデータを記憶しており、CRTコントローラ回路145から入力したRGBのインデックス値に対応するデジタル形式のR,G,Bデータを、図示しないD/Aコンバータ(Digital/Analog Converter)に転送し、アナログ形式のR,G,Bデータを生成する。RAMDAC回路146は、この生成されたR,G,BデータをCRTに出力する。
【0070】
次に、上記構成による動作を説明する。
3次元コンピュータグラフィックスシステム10においては、グラフィックス描画等のデータは、メインプロセッサ11のメインメモリ12、あるいは外部からのグラフィックスデータを受けるI/Oインタフェース回路13からメインバス15を介してレンダリング回路14に与えられる。
なお、必要に応じて、グラフィックス描画等のデータは、メインプロセッサ11等において、座標変換、クリップ処理、ライティング処理等のジオメトリ処理が行われる。
ジオメトリ処理が終わったグラフィックスデータは、三角形の各3頂点の頂点座標x,y,z、輝度値R,G,B、描画しようとしている画素とディスプレイバッファ内の画素とのTGB値のブレンド係数α、対応するテクスチャ座標s,t,qとからなるポリゴンレンダリングデータS11となる。
【0071】
このポリゴンレンダリングデータS11は、レンダリング回路14のDDAセットアップ回路141に入力される。
DDAセットアップ回路141においては、ポリゴンレンダリングデータS11に基づいて、三角形の辺と水平方向の差分などを示す変分データS141が生成される。具体的には、開始点の値と終点の値、並びに、その間の距離を用いて、単位長さ移動した場合における、求めようとしている値の変化分である変分が算出され、変分データS141としてトライアングルDDA回路142に出力される。
【0072】
トライアングルDDA回路142においては、変分データS141を用いて、、三角形内部の各画素における線形補間された(z,R,G,B,α,s,t,q,F)データが算出される。
そして、この算出された(z,R,G,B,α,s,t,q,F)データと、三角形の各頂点の(x,y)データとが、DDAデータS142として、トライアングルDDA回路142からテクスチャエンジン回路143に出力される。
【0073】
テクスチャエンジン回路143においては、DDAデータS142が示す(s,t,q)データについて、sデータをqデータで除算する演算と、tデータをqデータで除算する演算とが行われる。そして、除算結果「s/q」および「t/q」に、それぞれテクスチャサイズUSIZEおよびVSIZEが乗算され、テクスチャ座標データ(u,v)が生成される。
【0074】
次に、テクスチャエンジン回路143からメモリI/F回路144を介して、テクスチャエンジン回路143からSRAM148に、生成されたテクスチャ座標データ(u,v)を含む読み出し要求が出力され、メモリI/F回路144を介して、SRAM148に記憶された(R,G,B,α)データS148が読み出される。
次に、テクスチャエンジン回路143において、読み出した(R,G,B,α)データS148の(R,G,B)データと、前段のトライアングルDDA回路142からのDDAデータS142に含まれる(R,G,B)データとが、(R,G,B,α)データS148に含まれるαデータが示す割合で混合され、x,y座標におけるテクスチャの色が算出され、画素データS143として生成される。
この画素データS143は、テクスチャエンジン回路143からメモリI/F回路144に出力される。
【0075】
フルカラーの場合には、テクスチャバッファ147aからのデータ(R,G,B,α)を直接用いればよいが、インデックスカラーの場合には、あらかじめ作成しておいたカラーインデックステーブル(Color Index Table )のデータが、テクスチャCLUT(Color Look Up Table)バッファ147dより、SRAM等で構成される一時保管バッファへ転送され、この一時保管バッファのCLUTを用いてカラーインデックスから実際のR,G,Bカラーが得られる。
なお、CULTがSRAMで構成された場合は、カラーインデックスをSRAMのアドレスに入力すると、その出力には実際のR,G,Bカラーが出てくるといった使い方となる。
【0076】
そして、メモリI/F回路144において、テクスチャエンジン回路143から入力した画素データS143に対応するzデータと、zバッファ147cに記憶されているzデータとの比較が行われ、入力した画素データS12によって描画される画像が、前回、ディスプレイバッファ21に書き込まれた画像より、手前(視点側)に位置するか否かが判断される。
判断の結果、手前に位置する場合には、画像データS143に対応するzデータでzバッファ147cに記憶されたzデータが更新される。
【0077】
次に、メモリI/F回路144においては、αブレンディング/ディザ処理回路1440で、必要に応じて、画像データS143に含まれる(R,G,B)データと、既にディスプレイバッファ147bに記憶されている(R,G,B)データとが、画像データS143に対応するαデータが示す混合値で混合されるαブレンディング処理と、ディスプレイバッファ147bの容量等を考慮してデータを間引く(切り捨てる)ディザ処理とが並列的に行われ、処理後の(R,G,B)データがディスプレイバッファ147bに書き込まれる。
【0078】
具体的には、αブレンディング/ディザ処理回路1440において、減算器1441および乗算器1443で、これから描画すべき現画像データSの既にディスプレイバッファ147bに記憶されている画像データDに対する更新量データが混合係数αを用いて求められ、これに並行して、第1の加算器1442で既にディスプレイバッファ147bに記憶されている画像データDに雑音データEが加えられる。
そして、乗算器1443で得られたデータと第1の加算器1442で得られたデータとが第2の加算器1444で加算され、2つの色の線形補間をしたデータに雑音データを加えたデータ{α×(S−D)+D+E}が求められ、その後、クランプ回路1445でカラーの有効値が抽出され、この抽出データから切り捨て回路1446でデータが間引かれて、ディスプレイバッファ147bに書き戻される。
【0079】
メモリI/F回路144においては、今から描画しようとしている画素におけるテクスチャアドレスに対応したテクスチャを格納しているメモリブロックがそのテクスチャアドレスにより算出され、そのメモリブロックにのみ読みだし要求が出され、テクスチャデータが読み出される。
この場合、該当するテクスチャデータを保持していないメモリブロックにおいては、テクスチャ読み出しのためのアクセスが行われないため、描画により多くのアクセス時間を提供することが可能となっている。
【0080】
描画においても同様に、今から描画しようとしている画素アドレスに対応する画素データを格納しているメモリブロックに対して、該当アドレスから画素データがモディファイ書き込み(Modify Write)を行うために読み出され、モディファイ後、同じアドレスへ書き戻される。
【0081】
隠れ面処理を行う場合には、やはり同じように今から描画しようとしている画素アドレスに対応する奥行きデータを格納しているメモリブロックに対して、該当アドレスから奥行きデータがモディファイ書き込み(Modify Write)を行うために読み出され、必要ならばモディファイ後、同じアドレスへ書き戻される。
【0082】
このようなメモリI/F回路144に基づくDRAM147とのデータのやり取りにおいては、それまでの処理を複数並行処理することで、描画性能を向上させることができる。
特に、トライアングルDDA回路142とテクスチャエンジン143の部分を並列実行形式で、同じ回路に設ける(空間並列)か、または、パイプラインを細かく挿入する(時間並列)ことで、部分的に動作周波数を増加させるという手段により、複数画素の同時算出が行われる。
【0083】
また、画素データは、メモリI/F回路144の制御のもと、表示領域において隣接した部分は、異なるDRAMモジュールとなるように配置される。
これにより、三角形のような平面を描画する場合には面で同時に処理される。このため、それぞれのDRAMモジュールの動作確率は非常に高い。
【0084】
そして、図示しないCRTに画像を表示する場合には、CRTコントロール回路145において、与えられた水平垂直同期周波数に同期して、表示アドレスが発生され、メモリI/F回路144へ表示データ転送の要求が出される。
メモリI/F回路144では、その要求に従い、一定のまとまった固まりで、表示データがCRTコントロール回路145に転送される。
CRTコントロール回路145では、図示しないディスプレイ用FIFO(First In First Out)等にその表示データが貯えられ、一定の間隔でRAMDAC146へRGBのインデックス値が転送される。
【0085】
RAMDAC146においては、RAM内部にRGBのインデックスに対するRGB値が記憶されていて、インデックス値に対するRGB値が図示しないD/Aコンバータへ転送される。
そして、D/Aコンバータでアナログ信号に変換されたRGB信号がCRTへ転送される。
【0086】
以上説明したように、本実施形態によれば、減算器1441および乗算器1443で、これから描画すべき現画像データSの既にディスプレイバッファ147bに記憶されている画像データDに対する更新量データを混合係数αを用いて求める処理と、第1の加算器1442で既にディスプレイバッファ147bに記憶されている画像データDに雑音データEを加える処理とを並行して行い、両処理で得られたデータを第2の加算器1444で加算することにより、2つの色の線形補間をしたデータに雑音データを加えたデータ{α×(S−D)+D+E}を求め、その後、クランプ回路1445でカラーの有効値を抽出し、この抽出データから切り捨て回路1446でデータを間引いて、ディスプレイバッファ147bに書き戻すαブレンディング/ディザ処理回路1440を設けたので、従来回路に比べて乗算器およびクランプ回路が1つずつ少ない回路構成であることから、回路規模が小さく、また、αブレンディング処理とディザ処理とが並列的に行われることから、演算時間を短縮でき、高速処理を実現できる利点がある。
【0087】
また、本実施形態によれば、半導体チップ内部に内蔵されたDRAM147に、表示デ−タと少なくとも一つの図形要素が必要とするテクスチャデ−タを記憶させた構成を有することから、表示領域以外の部分にテクスチャデ−タを格納できることになり、内蔵DRAMの有効利用が可能となり、高速処理動作、並びに低消費電力化を並立させるようにした画像処理装置が実現可能となる。
そして、単一メモリシステムを実現でき、すべてが内蔵された中だけで処理ができる。その結果、ア−キテクチャとしても大きなパラダイムシフトとなる。
また、メモリの有効利用ができることで、内部に持っているDRAMのみでの処理が可能となり、内部にあるがゆえのメモリと描画システムの間の大きなバンド幅が、十分に活用可能となる。また、DRAMにおいても特殊な処理を組み込むことが可能となる。
【0088】
また、DRAMにおける同一機能を独立した複数のモジュ−ル1471〜1474として並列にもつことから、並列動作の効率を向上させることができる。単にデ−タのビット数が多いだけでは、デ−タの使用効率は悪化し、性能向上できるのは一部の条件の場合に限定されることになる。平均的な性能を向上させるためには、ある程度の機能をもったモジュ−ルを複数設けることで、ビット線の有効利用を行うことができる。
【0089】
さらに、表示アドレス空間において、隣接するアドレスにおける表示要素が、それぞれ異なるDRAMのブロックになるように配置するので、さらにビット線の有効利用が可能となり、グラフィックス描画におけるような、比較的固まった表示領域へのアクセスが多い場合には、それぞれのモジュ−ルが同時に処理できる確率が増加し、描画性能の向上が可能となる。
【0090】
また、より多くのテクスチャデ−タを格納するために、インデックスカラ−におけるインデックスと、そのためのカラ−ルックアップテ−ブル値を内蔵DRAM147内部に格納するので、テクスチャデ−タの圧縮が可能となり、内蔵DRAMの効率良い利用が可能となる。
【0091】
また、描画しようとしている物体の奥行き情報を、内蔵のDRAMに格納するので、描画と同時並行的に隠れ面処理を行うことが可能となる。
描画を行って、通常はそれを表示しようとするわけだが、ユニファイドメモリとして、テクスチャデ−タと表示デ−タを同一のメモリシステムに同居させることができることから、直接表示に使わずに、描画デ−タをテクスチャデ−タとして使ってしまうということも可能となる。
このようなことは、必要なときに必要なテクスチャデ−タを、描画によって作成する場合に有効となり、これもテクスチャデ−タを膨らませないための効果的な機能となる。
【0092】
また、チップ内部にDRAMを内蔵することで、その高速なインタ−フェ−ス部分がチップの内部だけで完結することになるため、大きな付加容量のI/Oバッファであるとか、チップ間配線容量をドライブする必要がなくなり、消費電力は内蔵しない場合に比較して小さくなる。
よって、さまざまな技術を使って、一つのチップの中だけですべてができるような仕組みは、今後の携帯情報端末等の身近なデジタル機器のためには、必要不可欠な技術要素となっている。
【0093】
なお、本発明は上述した実施形態には限定されない。
また、上述した図1に示す3次元コンピュータグラフィックスシステム10では、SRAM148を用いる構成を例示したが、SRAM148を設けない構成にしてもよい。
【0094】
さらに、図1に示す3次元コンピュータグラフィックスシステム10では、ポリゴンレンダリングデータを生成するジオメトリ処理を、メインプロセッサ11で行う場合を例示したが、レンダリング回路14で行う構成にしてもよい。
【0095】
【発明の効果】
以上説明したように、本発明によれば、回路規模を小さくでき、また、αブレンディング処理とディザ処理とを並列的に行うことができ、演算時間を短縮でき、高速処理を実現できる利点がある。
【0096】
また、半導体チップ内部にロジック回路と混載された記憶回路に、表示デ−タと少なくとも一つの図形要素が必要とするテクスチャデ−タを記憶させた構成を有することから、表示領域以外の部分にテクスチャデ−タを格納できることになり、内蔵記憶回路の有効利用が可能となり、高速処理動作、並びに低消費電力化を並立させるようにした画像処理装置が実現可能となる。
【0097】
また、メモリにおける同一機能を独立した複数のモジュ−ルとして並列にもつことから、並列動作の効率を向上させることができる。
【0098】
さらに、表示アドレス空間において、隣接するアドレスにおける表示要素を、それぞれ異なるメモリのブロックになるように配置するので、グラフィックス描画におけるような、比較的固まった表示領域へのアクセスが多い場合には、それぞれのモジュ−ルが同時に処理できる確率が増加し、描画性能の向上が可能となる。
【図面の簡単な説明】
【図1】本発明に係る3次元コンピュータグラフィックスシステムの構成を示すブロック図である。
【図2】本発明に係るDDAセットアップ回路の機能を説明するための図である。
【図3】本発明に係るトライアングルDDA回路の機能を説明するための図である。
【図4】本発明に係るトライアングルDDA回路の頂点のソート処理を説明するための図である。
【図5】本発明に係るトライアングルDDA回路の水平方向の傾き算出処理を説明するための図である。
【図6】本発明に係るトライアングルDDA回路の頂点データの補間手順を説明するための図である。
【図7】本発明に係るトライアングルDDA回路の頂点データの補間手順を説明するためのフローチャートである。
【図8】本発明に係るαブレンディング/ディザ処理回路の構成例を示すブロック図である。
【図9】本発明に係るデータ格納方法を説明するための図である。
【図10】3次元コンピュータグラフィックスシステムの基本的な概念を示すシステム構成図である。
【図11】従来のαブレンディング処理回路およびディザ処理回路の構成例を示すブロック図である。
【符号の説明】
10…3次元コンピュータグラフィックスシステム、11…メインプロセッサ、12…メインメモリ、13…I/Oインタフェース回路、14…レンダリング回路、141…DDAセットアップ回路、142…トライアングルDDA回路、143…テクスチャエンジン回路、144…メモリI/F回路、1440…αブレンディング/ディザ処理回路(描画データ制御回路)、1441…減算器、1442…第1の加算器、1443…乗算器、1444…第2の加算器、1445…クランプ回路、1446…切り捨て回路、1447〜1450…メモリコントローラ、1451…ディストリビュータ、145…CRTコントローラ回路、146…RAMDAC回路、147…DRAM、1471〜1474…DRAMモジュール、147a…テクスチャバッファ、147b…ディスプレイバッファ、147c…zバッファ、147d…テクスチャCLUTバッファ、148…SRAM。
Claims (9)
- 画像データに対してαブレンディング処理およびディザ処理を行う画像処理装置であって、
少なくとも表示用画像データが描画される記憶回路と、
これから描画すべき現画像データから、既に上記記憶回路に記憶されている画像データを減算した値に与えられた混合係数αを乗じたデータを求めるとともに、上記記憶回路に記憶されている画像データに雑音データを加えたデータを求め、得られた両データを加算することにより、2つの色の線形補間をしたデータに雑音データを加えたデータを求め、このデータから色の有効値を抽出し、この抽出データからデータを間引いて、上記記憶回路に書き戻すロジック回路と
を有する画像処理装置。 - 上記ロジック回路は、
これから描画すべき現画像データSから既に上記記憶回路に記憶されている画像データDを減算する減算器と、
既に上記記憶回路に記憶されている画像データDに雑音データである誤差データEを加算する第1の加算器と、
上記減算器の出力データ(S−D)に混合係数αを乗算する乗算器と、
上記乗算器の出力データ{α×(S−D)}と上記第1の加算器の出力データ(D+E)を加算する第2の加算器と、
上記第2の加算器の出力データから色の有効値を抽出するクランプ回路と、
上記クランプ回路の出力データから所定のデータを間引いて上記記憶回路に書き戻す切り捨て回路と
を有する請求項1記載の画像処理装置。 - 上記記憶回路は、表示用画像デ−タに加えて、少なくとも一つの図形要素が必要とするテクスチャデ−タを記憶し、
上記ロジック回路は、上記記憶回路の記憶データに基づいて、表示データの図形要素の表面へのテクスチャデータの張り付け処理を行い、
上記記憶回路および上記ロジック回路が一つの半導体チップ内に混載されている
請求項1記載の画像処理装置。 - 上記記憶回路は、同一機能を有する複数のモジュールに分割され、
上記ロジック回路は、各モジュールを並列にアクセスする
請求項3記載の画像処理装置。 - 上記記憶回路には、表示アドレス空間において、隣接するアドレスにおける表示要素が、異なる記憶ブロックになるように配置される
請求項4記載の画像処理装置。 - 前記単位図形の頂点について、3次元座標(x,y,z)、R(赤),G(緑),B(青)データ、混合係数α、テクスチャの同次座標(s,t)および同次項qを含むポリゴンレンダリングデータを受けてレンダリング処理を行う画像処理装置であって、
表示用画像デ−タと少なくとも一つの図形要素が必要とするテクスチャデ−タを記憶する記憶回路と、
これから描画すべき現画像データから、既に上記記憶回路に記憶されている画像データを減算した値に与えられた混合係数αを乗じたデータを用いて求めるととに、上記記憶回路に記憶されている画像データに雑音データを加えたデータを求め、得られた両データを加算することにより、2つの色の線形補間をしたデータに雑音データを加えたデータを求め、このデータから色の有効値を抽出し、この抽出データからデータを間引いて、上記記憶回路に書き戻す描画データ制御回路と、
前記単位図形の頂点のポリゴンレンダリングデータを補間して、前記単位図形内に位置する画素の補間データを生成する補間データ生成回路と、
前記補間データに含まれるテクスチャの同次座標(s,t)を同次項qで除算して「s/q」および「t/q」を生成し、前記「s/q」および「t/q」に応じたテクスチャアドレスを用いて、前記記憶回路からテクスチャデータを読み出し、表示用画像データの図形要素の表面へのテクスチャデータの張り付け処理を行うテクスチャ処理回路と
を少なくとも有し、
前記記憶回路、描画データ制御回路、補間データ生成回路およびテクスチャ処理回路が一つの半導体チップ内に混載されている
画像処理装置。 - 上記記憶回路は、同一機能を有する複数のモジュールに分割され、
上記各モジュールは並列にアクセスされる
請求項6記載の画像処理装置。 - 上記記憶回路には、表示アドレス空間において、隣接するアドレスにおける表示要素が、異なる記憶ブロックになるように配置される
請求項7記載の画像処理装置。 - 画像データに対してαブレンディング処理およびディザ処理を行い記憶回路に描画する画像処理方法であって、
これから描画すべき現画像データから、既に上記記憶回路に記憶されている画像データを減算した値に与えられた混合係数αを乗じる処理と、上記記憶回路に記憶されている画像データに雑音データを加える処理とを並行して行い、
両処理で得られたデータを加算することにより、2つの色の線形補間をしたデータに雑音データを加えたデータを求め、
このデータから色の有効値を抽出し、この抽出データからデータを間引いて、上記記憶回路に書き戻す
画像処理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP35315398A JP3687945B2 (ja) | 1998-12-11 | 1998-12-11 | 画像処理装置およびその方法 |
US09/458,167 US6473091B1 (en) | 1998-12-11 | 1999-12-09 | Image processing apparatus and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP35315398A JP3687945B2 (ja) | 1998-12-11 | 1998-12-11 | 画像処理装置およびその方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000182069A JP2000182069A (ja) | 2000-06-30 |
JP3687945B2 true JP3687945B2 (ja) | 2005-08-24 |
Family
ID=18428931
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP35315398A Expired - Lifetime JP3687945B2 (ja) | 1998-12-11 | 1998-12-11 | 画像処理装置およびその方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US6473091B1 (ja) |
JP (1) | JP3687945B2 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7483042B1 (en) * | 2000-01-13 | 2009-01-27 | Ati International, Srl | Video graphics module capable of blending multiple image layers |
JP4568950B2 (ja) * | 2000-02-29 | 2010-10-27 | ソニー株式会社 | グラフィックス描画装置 |
US6747660B1 (en) * | 2000-05-12 | 2004-06-08 | Microsoft Corporation | Method and system for accelerating noise |
CA2350411C (en) * | 2000-06-16 | 2006-06-27 | Dainichiseika Color & Chemicals Mfg. Co., Ltd. | Ccm calculating system, ccm calculating method and recording medium |
JP2003016441A (ja) * | 2001-07-04 | 2003-01-17 | Sony Corp | 画像処理装置 |
TW550620B (en) * | 2002-03-18 | 2003-09-01 | Chunghwa Picture Tubes Ltd | Color tuning device and method of plasma display panel |
JP4133369B2 (ja) * | 2003-01-27 | 2008-08-13 | 株式会社リコー | 画像処理装置、方法及びプログラム |
US7705842B2 (en) * | 2006-01-11 | 2010-04-27 | Microsoft Corporation | Fast display initialization and light up |
KR100885917B1 (ko) | 2007-03-16 | 2009-02-26 | 삼성전자주식회사 | 선형 변환기를 이용하여 오차를 효율적으로 분산할 수 있는디더링 시스템 및 그에 적합한 방법 |
US11488349B2 (en) | 2019-06-28 | 2022-11-01 | Ati Technologies Ulc | Method and apparatus for alpha blending images from different color formats |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5799111A (en) * | 1991-06-14 | 1998-08-25 | D.V.P. Technologies, Ltd. | Apparatus and methods for smoothing images |
GB9501832D0 (en) * | 1995-01-31 | 1995-03-22 | Videologic Ltd | Texturing and shading of 3-d images |
US5701444A (en) * | 1995-03-24 | 1997-12-23 | 3Dlabs Inc. Ltd. | Three-dimensional graphics subsystem with enhanced support for graphical user interface |
US6025853A (en) * | 1995-03-24 | 2000-02-15 | 3Dlabs Inc. Ltd. | Integrated graphics subsystem with message-passing architecture |
US5594854A (en) * | 1995-03-24 | 1997-01-14 | 3Dlabs Inc. Ltd. | Graphics subsystem with coarse subpixel correction |
US6111584A (en) * | 1995-12-18 | 2000-08-29 | 3Dlabs Inc. Ltd. | Rendering system with mini-patch retrieval from local texture storage |
US6191793B1 (en) * | 1998-04-01 | 2001-02-20 | Real 3D, Inc. | Method and apparatus for texture level of detail dithering |
US6226017B1 (en) * | 1999-07-30 | 2001-05-01 | Microsoft Corporation | Methods and apparatus for improving read/modify/write operations |
-
1998
- 1998-12-11 JP JP35315398A patent/JP3687945B2/ja not_active Expired - Lifetime
-
1999
- 1999-12-09 US US09/458,167 patent/US6473091B1/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2000182069A (ja) | 2000-06-30 |
US6473091B1 (en) | 2002-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1659595B (zh) | 用于编码纹理信息的方法和设备 | |
JP3687945B2 (ja) | 画像処理装置およびその方法 | |
US6313844B1 (en) | Storage device, image processing apparatus and method of the same, and refresh controller and method of the same | |
US6441818B1 (en) | Image processing apparatus and method of same | |
JP4568950B2 (ja) | グラフィックス描画装置 | |
US6480199B1 (en) | Image processing apparatus | |
US6466219B1 (en) | Storage device and image data processing apparatus | |
JP4314655B2 (ja) | 画像処理装置 | |
JP3979162B2 (ja) | 画像処理装置およびその方法 | |
JP2005332195A (ja) | テクスチャユニット、画像描画装置、テクセル転送方法 | |
US6563507B1 (en) | Storage circuit control device and graphic computation device | |
US7245303B2 (en) | Image processing apparatus | |
US6476818B1 (en) | Storage circuit control device and graphic computation device | |
JP4081860B2 (ja) | 画像処理装置 | |
US7583270B2 (en) | Image processing apparatus | |
JP3747859B2 (ja) | 画像処理装置およびその方法 | |
US6727905B1 (en) | Image data processing apparatus | |
JP3741053B2 (ja) | 画像処理装置 | |
US20040012586A1 (en) | Image processing apparatus and method of same | |
JPH11272548A (ja) | 記憶回路制御装置およびグラフィック演算装置 | |
JP4670887B2 (ja) | 画像処理装置 | |
JP4580475B2 (ja) | 演算処理装置およびグラフィック演算装置 | |
JP2003022696A (ja) | テスト回路および画像処理装置 | |
JPH11288266A (ja) | 画像メモリ制御装置およびグラフィック演算装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050510 |
|
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: 20050517 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050606 |
|
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: 20090617 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100617 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110617 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110617 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120617 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130617 Year of fee payment: 8 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313117 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |