JP4081860B2 - 画像処理装置 - Google Patents
画像処理装置 Download PDFInfo
- Publication number
- JP4081860B2 JP4081860B2 JP17855698A JP17855698A JP4081860B2 JP 4081860 B2 JP4081860 B2 JP 4081860B2 JP 17855698 A JP17855698 A JP 17855698A JP 17855698 A JP17855698 A JP 17855698A JP 4081860 B2 JP4081860 B2 JP 4081860B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- circuit
- read
- memory
- texture
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Image Generation (AREA)
- Memory System (AREA)
- Controls And Circuits For Display Device (AREA)
- Semiconductor Integrated Circuits (AREA)
Description
【発明の属する技術分野】
本発明は、グラフィックス描画画像処理装置に係り、特にDRAM等の記憶回路とロジック回路を混載させた画像処理装置に関するものである。
【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】
図14は、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)により構成される。
そして、図14のシステムにおいては、フレームバッファ5bとテクスチャメモリ6は、物理的に別々のメモリシステムとして構成されている。
【0009】
【発明が解決しようとする課題】
ところで、上記における従来のいわゆる内蔵DRAMシステムにおいて、フレームバッファメモリとテクスチャメモリが別々のメモリシステムに別れている場合においては、以下のような不利益があった。
【0010】
第1に、表示の解像度の変化によって空きとなったフレームバッファをたとえばテクスチャ用に利用できない。
このことは、内蔵DRAMという限られた容量のなかですべてを処理しようとする場合に大きな問題となる。
【0011】
第2に、フレームバッファメモリとテクスチャメモリを物理的に同一にすると、フレームバッファメモリとテクスチャーメモリの同時アクセスにおいて、DRAMのペ−ジ切り替え等のオーバーヘッドが大きくなり、性能を犠牲にしなければならなくなる。
【0012】
また、書き込みおよび読み出し動作、特に読み出し動作を効率良く行う必要がある。
【0013】
本発明は、かかる事情に鑑みてなされたものであり、その目的は、表示の解像度の変化によって空きとなったメモリ領域をテクスチャ用等として有効に利用でき、ペ−ジ切り替え等のオーバーヘッドの増大を防止でき、性能の低下を招くことがない、柔軟でかつ高速処理が可能な画像処理装置を提供することにある。
【0014】
【課題を解決するための手段】
上記目的を達成するため、本発明の画像処理装置は、少なくとも表示用画像デ−タを記憶する記憶回路と、上記記憶回路の記憶データに基づいて、画像データに所定の処理を行うロジック回路と、上記記憶回路にデータを書き込む書き込み系回路と、読み出し要求を受けて上記記憶回路に記憶されたデータを上記書き込み系回路と異なる経路で読み出す読み出し系回路とを有し、上記記憶回路、上記ロジック回路、上記書き込み系回路および上記読み出し系回路が一つの半導体チップ内に混載され、上記記憶回路は、同一機能を有する複数のモジュールに分割され、上記書き込み系回路および読み出し系回路は、上記各モジュールに対応して設けられ、それぞれ対応するモジュールと書き込み系配線群、並びに読み出し系配線群を介して接続され、書き込み時および読み出し時に各モジュールに対しての並列アクセスを制御する複数のメモリコントローラを共用し、上記各メモリコントローラは、自身のステートマシンがアイドル状態にあるときに、アイドル信号をアクティブで出力し、上記書き込み系回路は、書き込み時に、複数画素分のデータおよび書き込みアドレスを入力し、当該データを所定画素分のデータからなる上記モジュールの分割数に相当する複数の画像データに分割し、当該分割した画像データおよび書き込みアドレスを出力し、かつ、当該画像データを、上記記憶回路の各モジュールに、画像データの表示アドレス空間において、隣接するアドレスにおける表示要素が、異なるモジュールとなる配置となるように処理するディストリビュータと、書き込み時に、上記ディストリビュータから入力した画像データおよびアドレスを、それぞれ上記各モジュール内のアドレスに変換し、それぞれ変換したアドレスと分割された画像データを上記複数のメモリコントローラに出力するアドレスコンバータと、を含み、上記読み出し系回路は、所定の連続する画素からなるブロック単位で読み出しを行う読み出しコントローラを有し、上記読み出しコントローラは、読み出しアドレスを受けた場合、上記各メモリコントローラからのアイドル信号をすべてアクティブで受けると、このアイドル信号に応答して、複数画素単位で読み出しを行うように、読み出しアドレスおよび読み出し要求信号を上記各メモリコントローラに出力するアドレスコンバータと、読み出しアドレスおよび読み出し要求信号に応答して上記各メモリコントローラで読み出された複数画素単位のデータを読み出し用配線群を介して入力し、所定の演算処理を行って、要求先に出力するデータ演算部と、を含み、上記各メモリコントローラは、自身のステートマシンがアイドル状態にあるときに、上記アイドル信号を上記読み出しコントローラにアクティブで出力し、当該アイドル信号に応答した上記読み出しコントローラによる読み出しアドレスおよび読み出し要求信号を受けて、上記読み出し系配線群を介して上記モジュールからデータの読み出しを行い、上記読み出し用配線群を介して上記読み出しコントローラに出力する。
【0015】
また、本発明は、単位図形の頂点について、3次元座標(x,y,z)、R(赤),G(緑),B(青)データ、テクスチャ同次座標(s,t)および同次項qを含むポリゴンレンダリングデータを受けてレンダリング処理を行う画像処理装置であって、表示デ−タと少なくとも一つの図形要素が必要とするテクスチャデ−タを記憶する記憶回路と、前記単位図形の頂点のポリゴンレンダリングデータを補間して、前記単位図形内に位置する画素の補間データを生成する補間データ生成回路と、前記補間データに含まれるテクスチャ同次座標(s,t)を同次項qで除算して「s/q」および「t/q」を生成し、前記「s/q」および「t/q」に応じたテクスチャアドレスを用いて、前記記憶回路からテクスチャデータを読み出し、表示データの図形要素の表面へのテクスチャデータの張り付け処理を行うテクスチャ処理回路と、上記記憶回路にデータを書き込む書き込み系回路と、読み出し要求を受けて上記記憶回路に記憶されたデータを上記書き込み系回路と異なる経路で読み出す読み出し系回路とを少なくとも有し、上記記憶回路、上記ロジック回路、上記書き込み系回路および上記読み出し系回路が一つの半導体チップ内に混載され、上記記憶回路は、同一機能を有する複数のモジュールに分割され、上記書き込み系回路および読み出し系回路は、上記各モジュールに対応して設けられ、それぞれ対応するモジュールと書き込み系配線群、並びに読み出し系配線群を介して接続され、書き込み時および読み出し時に各モジュールに対しての並列アクセスを制御する複数のメモリコントローラを共用し、上記各メモリコントローラは、自身のステートマシンがアイドル状態にあるときに、アイドル信号をアクティブで出力し、上記書き込み系回路は、書き込み時に、複数画素分のデータおよび書き込みアドレスを入力し、当該データを所定画素分のデータからなる上記モジュールの分割数に相当する複数の画像データに分割し、当該分割した画像データおよび書き込みアドレスを出力し、かつ、当該画像データを、上記記憶回路の各モジュールに、画像データの表示アドレス空間において、隣接するアドレスにおける表示要素が、異なるモジュールとなる配置となるように処理するディストリビュータと、書き込み時に、上記ディストリビュータから入力した画像データおよびアドレスを、それぞれ上記各モジュール内のアドレスに変換し、それぞれ変換したアドレスと分割された画像データを上記複数のメモリコントローラに出力するアドレスコンバータと、を含み、上記読み出し系回路は、所定の連続する画素からなるブロック単位で読み出しを行う読み出しコントローラを有し、上記読み出しコントローラは、読み出しアドレスを受けた場合、上記各メモリコントローラからのアイドル信号をすべてアクティブで受けると、このアイドル信号に応答して、複数画素単位で読み出しを行うように、読み出しアドレスおよび読み出し要求信号を上記各メモリコントローラに出力するアドレスコンバータと、読み出しアドレスおよび読み出し要求信号に応答して上記各メモリコントローラで読み出された複数画素単位のデータを読み出し用配線群を介して入力し、所定の演算処理を行って、要求先に出力するデータ演算部と、を含み、上記各メモリコントローラは、自身のステートマシンがアイドル状態にあるときに、上記アイドル信号を上記読み出しコントローラにアクティブで出力し、当該アイドル信号に応答した上記読み出しコントローラによる読み出しアドレスおよび読み出し要求信号を受けて、上記読み出し系配線群を介して上記モジュールからデータの読み出しを行い、上記読み出し用配線群を介して上記読み出しコントローラに出力する。
【0020】
本発明によれば、記憶回路に対する書き込み系回路と読み出し系回路とを個別に有し、書き込み経路と読み出し経路とを別経路として構成されることから、たとえば読み出しの割り込み要求があった時等に、早いタイミングで切り替えられ、効率良く読み出し動作が行われる。
【0021】
また、記憶回路がアイドル状態にあるときに、記憶回路からのデータの読み出しが行われる。これにより、読み出しデータの同期がとられ、特別の保持回路を設けることなく、効率の良い読み出し動作が行われる。
さらに、読み出しは、所定の連続する画素からなるブロック単位で行われる。その結果、ページ違反の発生が防止される。
【0022】
また、本発明によれば、一つの半導体チップの内部に、DRAM等の記憶回路とロジック回路を混載させ、また、表示デ−タと少なくとも一つの図形要素が必要とするテクスチャデ−タを、内蔵の記憶回路に記憶させていることにより、表示領域以外の部分にテクスチャデ−タを格納できることになり、内蔵メモリの有効利用が可能となる。
【0023】
また、内蔵記憶回路の配置、すなわち、それぞれの独立されたメモリ+機能モジュ−ルが、占有するアドレス空間を工夫することで、さらにビット線の有効利用が可能となる。
グラフィックス描画におけるような、比較的固まった表示領域へのアクセスが多い場合には、表示アドレス空間において、隣接するアドレスにおける表示要素が、それぞれ異なるメモリのブロックになるように配置することで、それぞれのモジュ−ルが同時に処理できる確率が増加し、描画性能の向上が可能となる。固まった表示領域へのアクセスが多いというのは、三角形等の閉領域の内部を描画しようとした場合、その内部の表示要素どうしは隣接しているので、そのような領域へのアクセスはアドレス隣接することになる。
【0024】
【発明の実施の形態】
以下、本実施形態においては、パーソナルコンピュータなどに適用される、任意の3次元物体モデルに対する所望の3次元画像をCRT(Cathode Ray Tube)などのディスプレイ上に高速に表示する3次元コンピュータグラフィックスシステムについて説明する。
【0025】
図1は、本発明に係る画像処理装置としての3次元コンピュータグラフィックスシステム10のシステム構成図である。
【0026】
3次元コンピュータグラフィックスシステム10は、立体モデルを単位図形である三角形(ポリゴン)の組み合わせとして表現し、このポリゴンを描画することで表示画面の各画素の色を決定し、ディスプレイに表示するポリゴンレンダリング処理を行うシステムである。
また、3次元コンピュータグラフィックスシステム10では、平面上の位置を表現する(x,y)座標の他に、奥行きを表すz座標を用いて3次元物体を表し、この(x,y,z)の3つの座標で3次元空間の任意の一点を特定する。
【0027】
図1に示すように、3次元コンピュータグラフィックスシステム10は、メインプロセッサ11、メインメモリ12、I/Oインタフェース回路13、およびレンダリング回路14が、メインバス15を介して接続されている。
以下、各構成要素の機能について説明する。
【0028】
メインプロセッサ11は、たとえば、アプリケーションの進行状況などに応じて、メインメモリ12から必要なグラフィックデータを読み出し、このグラフィックデータに対してクリッピング(Clipping)処理、ライティング(Lighting)処理などのジオメトリ(Geometry)処理などを行い、ポリゴンレンダリングデータを生成する。メインプロセッサ11は、ポリゴンレンダリングデータS11を、メインバス15を介してレンダリング回路14に出力する。
【0029】
I/Oインタフェース回路13は、必要に応じて、外部から動きの制御情報またはポリゴンレンダリングデータなどを入力し、これをメインバス15を介してレンダリング回路14に出力する。
【0030】
ここで、ポリゴンレンダリングデータは、ポリゴンの各3頂点の(x,y,z,R,G,B,s,t,q)のデータを含んでいる。
ここで、(x,y,z)データは、ポリンゴの頂点の3次元座標を示し、(R,G,B)データは、それぞれ当該3次元座標における赤、緑、青の輝度値を示している。
(s,t,q)データのうち、(s,t)は、対応するテクスチャの同次座標を示しており、qは同次項を示している。ここで、「s/q」および「t/q」に、それぞれテクスチャサイズUSIZEおよびVSIZEを乗じてテクスチャ座標データ(u,v)が得られる。テクスチャバッファ147aに記憶されたテクスチャデータへのアクセスは、テクスチャ座標データ(u,v)を用いて行われる。
すなわち、ポリゴンレンダリングデータは、三角形の各頂点の物理座標値と、それぞれの頂点の色とテクスチャデータである。
【0031】
以下、レンダリング回路14について詳細に説明する。
図1に示すように、レンダリング回路14は、DDA(Digital Differential Analyzer) セットアップ回路141、トライアングルDDA回路142、テクスチャエンジン回路143、メモリインタフェース(I/F)回路144、CRTコントロール回路145、RAMDAC回路146、DRAM147およびSRAM(Static RAM)148を有する。
本実施形態におけるレンダリング回路14は、一つの半導体チップ内にロジック回路と少なくとも表示データとテクスチャデータとを記憶するDRAM147とが混載されている。
【0032】
DRAM147
DRAM147は、テクスチャバッファ147a、ディスプレイバッファ147b、zバッファ147cおよびテクスチャCLUT(Color Look Up Table) バッファ147dとして機能する。
また、DRAM147は、後述するように、同一機能を有する複数(本実施形態では4個)のモジュールに分割されている。
【0033】
また、DRAM147には、より多くのテクスチャデ−タを格納するために、インデックスカラ−におけるインデックスと、そのためのカラ−ルックアップテ−ブル値が、テクスチャCLUTバッファ147dに格納されている。
インデックスおよびカラ−ルックアップテ−ブル値は、テクスチャ処理に使われる。すなわち、通常はR,G,Bそれぞれ8ビットの合計24ビットでテクスチャ要素を表現するが、それではデ−タ量が膨らむため、あらかじめ選んでおいたたとえば256色等の中から一つの色を選んで、そのデ−タをテクスチャ処理に使う。このことで256色であればそれぞれのテクスチャ要素は8ビットで表現できることになる。インデックスから実際のカラ−への変換テ−ブルは必要になるが、テクスチャの解像度が高くなるほど、よりコンパクトなテクスチャデ−タとすることが可能となる。
これにより、テクスチャデ−タの圧縮が可能となり、内蔵DRAMの効率良い利用が可能となる。
【0034】
さらにDRAM147には、描画と同時並行的に隠れ面処理を行うため、描画しようとしている物体の奥行き情報が格納されている。
なお、表示データと奥行きデータおよびテクスチャデータの格納方法としては、メモリブロックの先頭から連続して表示データが格納され、次に奥行きデータが格納され、残りの空いた領域に、テクスチャの種類毎に連続したアドレス空間でテクスチャデータが格納される。これにより、テクスチャデータを効率よく格納できることになる。
【0035】
図2は、DRAM147、SRAM148、並びに、DRAM147およびSRAM148へアクセスするメモリI/F回路144の具体的な構成例を示すブロック図である。
【0036】
図2に示すように、図1に示すDRAM147およびSRAM148は、前述したように4個のメモリモジュール200,210,220,230に分割されている。
【0037】
メモリモジュール200は、メモリ201,202を有する。
メモリ201は、DRAM147の一部を構成するバンク201A,201Bと、SRAM148の一部を構成するバンク201C,201Dとを有する。
また、メモリ202は、DRAM147の一部を構成するバンク202A,202Bと、SRAM148の一部を構成するバンク202C,202Dとを有する。
なお、SRAM148を構成するバンク201C,201D,202C,202Dに対しては同時アクセスが可能である。
【0038】
メモリモジュール210は、メモリ211,212を有する。
メモリ211は、DRAM147の一部を構成するバンク211A,211Bと、SRAM148の一部を構成するバンク211C,211Dとを有する。
また、メモリ212は、DRAM147の一部を構成するバンク212A,212Bと、SRAM148の一部を構成するバンク212C,212Dとを有する。
なお、SRAM148を構成するバンク211C,211D,212C,212Dに対しては同時アクセスが可能である。
【0039】
メモリモジュール220は、メモリ221,222を有する。
メモリ221は、DRAM147の一部を構成するバンク221A,221Bと、SRAM148の一部を構成するバンク221C,221Dとを有する。
また、メモリ222は、DRAM147の一部を構成するバンク222A,222Bと、SRAM148の一部を構成するバンク222C,222Dとを有する。
なお、SRAM148を構成するバンク221C,221D,222C,222Dに対しては同時アクセスが可能である。
【0040】
メモリモジュール230は、メモリ231,232を有する。
メモリ231は、DRAM147の一部を構成するバンク231A,231Bと、SRAM148の一部を構成するバンク231C,231Dとを有する。
また、メモリ232は、DRAM147の一部を構成するバンク232A,232Bと、SRAM148の一部を構成するバンク232C,232Dとを有する。
なお、SRAM148を構成するバンク231C,231D,232C,232Dに対しては同時アクセスが可能である。
【0041】
ここで、メモリモジュール200,210,220,230の各々は、図1に示すテクスチャバッファ147a、ディスプレイバッファ147b、Zバッファ147cおよびテクスチャCLUTバッファ147dの全ての機能を持つ。
すなわち、メモリモジュール200,210,220,230の各々は、対応する画素のテクスチャデータ、描画データ((R,G,B)データ)、zデータおよびテクスチャカラールックアップテーブルデータの全てを記憶する。
ただし、メモリモジュール200,210,220,230は、相互で異なる画素についてのデータを記憶する。
ここで、同時に処理される16画素についてのテクスチャデータ、描画データ、zデータおよびテクスチャカラールックアップテーブルデータが、相互に異なるバンク201A,201B,202A,202B,211A,211B,212A,212B,221A,221B,222A,222B,231A,231B,232A,232Bに記憶される。
これにより、I/F回路144は、DRAM147に対して、たとえば2×8画素の16画素についてのデータが同時にアクセス可能になる。
なお、I/F回路144は、後述するように、いわゆる所定のインターリーブ方式のアドレッシングに基づいてDRAM147へのアクセス(書き込み)を行う。
【0042】
図3は、DRAM147のバッファ(たとえばテクスチャバッファ)としての構成例を示す概略図である。
図3に示すように、2×8画素(ピクセル)の領域でメモリアクセスされたデータは、ページ(ロウ)やブロック(カラム)と呼ばれる領域に格納される。
各ロウROW0〜ROWn+1 は、図3(a)に示すように、それぞれ4個のカラム(ブロック)M0A,M0B,M1A,M1Bに区分けされている。
そして、x方向について8画素毎のバウンダリ、かつy方向について偶数のバウンダリでの領域でアクセス(書き込み、読み出し)が行われる。
これにより、たとえばロウROW0とロウROW1をまたぐような領域へのアクセスが行われることがなく、いわゆるページ違反が発生することがない。
【0043】
なお、バンク201C,201D,202C,202D,211C,211D,212C,212D,221C,221D,222C,222D,231C,231D,232C,232Dには、それぞれバンク201A,201B,202A,202B,211A,211B,212A,212B,221A,221B,222A,222B,231A,231B,232A,232Bに記憶されているテクスチャデータが記憶される。
【0044】
次に、インターリーブ方式のアドレッシングに基づくテクスチャバッファ147aにおけるテクスチャデータの記憶パターンについて、図4〜図6に関連付けてさらに詳細に説明する。
図4はテクスチャデータに含まれる同時にアクセスが行われる画素データを説明するための図、図5はテクスチャデータを構成する単位ブロックを説明するための図、図6はテクスチャバッファのアドレス空間を説明するための図である。
【0045】
本実施形態の場合、図4に示すように、テクスチャデータに含まれる、2×8のマトリクス状に配置された画素の色データを示す画素データP0 〜P15が、同時にアクセスされる。
【0046】
画素データP0 〜P15は、テクスチャバッファ147aを構成するSRAM148の異なるバンクに記憶される必要がある。
本実施形態では、画素データP0 ,P1 ,P8 ,P9 が、それぞれ図2に示すメモリ201のバンク201C,201Dおよびメモリ202のバンク202C,202Dに記憶される。また、画素データP2 ,P3 ,P10,P11が、それぞれ図2に示すメモリ211のバンク211C,211Dおよびメモリ212のバンク212C,212Dに記憶される。また、画素データP4 ,P5 ,P12,P13が、それぞれ図2に示すメモリ221のバンク221C,221Dおよびメモリ222のバンク222C,222Dに記憶される。さらに、画素データP6 ,P7 ,P14,P15が、それぞれ図2に示すメモリ231のバンク231C,231Dおよびメモリ232のバンク232C,232Dに記憶される。
【0047】
本実施形態では、同時に処理される矩形領域内に位置する画素の画素データP0 〜P15の組を単位ブロックRi と呼び、たとえば、1枚のイメージを示すテクスチャデータは、図5に示すように、B×Aのマトリクス状に配置された単位ブロックR0 〜RBA-1からなる。
単位ブロックR0 〜RBA-1は、図6に示すように、1次元のアドレス空間で連続したアドレスを持つように、テクスチャバッファ147aを構成するDRAM147に記憶されている。また、各単位ブロックR0 〜RBA-1内の画素データP0 〜P15は、1次元のアドレス空間内で連続したアドレスを持つように、SRAM148の相互に異なるバンクに記憶される。
すなわち、テクスチャバッファ147aには、同時にアクセスが行われる画素データからなる単位ブロックが、一次元のアドレス空間で連続したアドレスを持つように記憶される。
【0048】
DDAセットアップ回路141
DDAセットアップ回路141は、後段のトライアングルDDA回路142において物理座標系上の三角形の各頂点の値を線形補間して、三角形の内部の各画素の色と深さ情報を求めるに先立ち、ポリゴンレンダリングデータS11が示す(z,R,G,B,s,t,q)データについて、三角形の辺と水平方向の差分などを求めるセットアップ演算を行う。
このセットアップ演算は、具体的には、開始点の値と終点の値と、開始点と終点との距離を用いて、単位長さ移動した場合における、求めようとしている値の変分を算出する。
DDAセットアップ回路141は、算出した変分データS141をトライアングルDDA回路142に出力する。
【0049】
DDAセットアップ回路141の機能について図7に関連付けてさらに説明する。
上述したように、DDAセットアップ回路141の主な処理は、前段のジオメトリ処理を経て物理座標にまで落ちてきた各頂点における各種情報(色、テクスチャ座標、)の与えられた三頂点により構成される三角形内部で変分を求めて、後段の線形補間処理の基礎デ−タを算出することである。
なお、三角形の各頂点データは、たとえばx,y座標が16ビット、z座標が24ビット、RGBカラー値が各12ビット(=8+4)、s,t,qテクスチャ座標は各32ビット浮動少数値(IEEEフォーマット)で構成される。
【0050】
三角形の描画は水平ラインの描画に集約されるが、そのために水平ラインの描画開始点における最初の値を求める必要がある。
この水平ラインの描画においては、一つの三角形の中でその描画方向は一定にする。たとえば左から右へ描画する場合は、左側の辺におけるY方向変位に対するXおよび上記各種の変分を算出しておいて、それを用いて頂点から次の水平ラインに移った場合の最も左の点のx座標と、上記各種情報の値を求める(辺上の点はY,X両方向に変化するのでY方向の傾きのみでは計算できない。)。
右側の辺に関しては終点の位置がわかればよいので、Y方向変位に対するxの変分のみを調べておけばよい。
水平ラインの描画に関しては、水平方向の傾きは同一三角形内では均一なので、上記各種情報の傾きを算出しておく。
与えられた三角形をY方向にソートして最上位の点をAとする。次に残りの2頂点のX方向の位置を比較して右側の点をBとする。こうすることで、処理の場合分け等が2通り程度にできる。
【0051】
トライアングルDDA回路142
トライアングルDDA回路142は、DDAセットアップ回路141から入力した変分データS141を用いて、三角形内部の各画素における線形補間された(z,R,G,B,s,t,q)データを算出する。
トライアングルDDA回路11は、各画素の(x,y)データと、当該(x,y)座標における(z,R,G,B,s,t,q)データとを、DDAデータ(補間データ)S142としてテクスチャエンジン回路143に出力する。
たとえば、トライアングルDDA回路142は、並行して処理を行う矩形内に位置する8(=2×4)画素分のDDAデータS142をテクスチャエンジン回路143に出力する。
【0052】
トライアングルDDA回路142の機能について図8に関連付けてさらに説明する。
上述したように、DDAセットアップ回路141により、三角形の各辺と水平方向における先出の各種情報の傾き情報が準備され、この情報を受けたトライアングルDDA回路142の基本的処理は、三角形の辺上の各種情報の補間処理による水平ラインの初期値の算出と、水平ライン上での各種情報の補間処理である。
ここで最も注意しなければならないことは、補間結果の算出は、画素中心における値を算出する必要があるということである。
その理由は、算出する値が画素中心からはずれたところを求めていては、静止画の場合はさほど気にならないが、動画にした場合には、画像の揺らぎが目立つようになるからである。
【0053】
最初の水平ライン(当然画素中心を結んだライン)の一番左側における各種情報は、辺上の傾きに頂点からその最初の水平ラインまでの距離をかけてやることで求めることができる。
次のラインにおける開始位置での各種情報は、辺上の傾きを足してゆくことで算出できる。
水平ラインにおける最初の画素での値は、ラインの開始位置における値に、最初の画素までの距離と水平方向の傾きをかけた値を足すことで算出できる。水平ラインにおける次の画素における値は、最初の画素の値に対してつぎつぎに水平方向の傾きを足し込んでゆけば算出できる。
【0054】
次に、頂点のソートについて図9に関連付けて説明する。
頂点をあらかじめソートしておくことで、以降の処理の場合分けを最大限に減らし、かつ、補間処理においてもできるだけ一つの三角形の内部においては、矛盾が生じにくくすることができる。
ソートのやり方としては、まずすべての与えられた頂点をY方向にソートして、最上位の点と最下位の点を決めそれぞれA点、C点とする。残りの点はB点とする。
このようにすることで、Y方向に最も長く伸びた辺が辺ACとなり、最初に辺ACと辺ABを用いてその二つの辺で挟まれた領域の補間処理を行い、次に辺ACはそのままで、辺ABに変えて辺BCと辺ACで挟まれた領域の補間を行うという処理になる。また、Y方向の画素座標格子上への補正に関しても、辺ACと辺BCについて行っておけばよいこともわかる。
このようにして、ソート後の処理に場合分けが不必要になることで、データを単純に流すだけの処理で可能となりバグも発生しにくくなるし、構造もシンプルになる。
また、一つの三角形の中で補間処理の方向が辺BC上を開始点として一定にできるため、水平方向の補間(Span)の方向が一定となり、演算誤差があったとしても辺BCから他の辺に向かって誤差が蓄積されるかたちとなり、その蓄積の方向が一定となるため、隣接する辺同士での誤差は目立たなくなる。
【0055】
次に、水平方向の傾き算出について図10に関連付けて説明する。
三角形内における各種変数(x,y,z,R,G,B,s,t,q)の(x,y)に対する傾き(変数分)は、線形補間であることから一定となる。
したがって、水平方向の傾き、すなわち、各水平ライン(Span)上での傾きはどのSpanにおいても、一定となるので、各Spanの処理に先立ってその傾きを求めておくことになる。
三角形の与えられた頂点をY方向にソートした結果、辺ACが最も長く伸びた辺と再定義されているので、頂点Bを水平方向に伸ばしたラインと辺ACの交点が必ず存在するのでその点をDとする。
後は単純に点Bと点Dの間の変分を求めるようなことを行えば、水平方向すなわちx方向の傾きを求めることができる。
【0056】
具体的には、D点でのxおよびz座標は次式のようになる。
【0057】
【数1】
xd ={(yd −ya )/(yc −ya )}・(xc −xa )
zd ={(yd −ya )/(yc −ya )}・(zc −za )
【0058】
これに基づいて、変数zのx方向の傾きを求めると、次のようになる。
【0059】
【数2】
【0060】
次に、頂点データの補間手順の一例について、図11および図12に関連付けて説明する。
頂点のソート、水平方向の傾き算出、各辺上での傾きの算出処理を経て、それらの結果を使って補間処理を行う。
B点の位置によって、Spanでの処理の向きは2通りに別れる。これは、一つの三角形の内部での補間における各Span同士での誤差の蓄積方向を、一定にすることで、できるだけ不具合が発生しないようにするために、Y方向に最も長く伸びた辺を常に始点として、処理するようにしようとしているからである。
B点がA点と同じ高さにあった場合には、前半の処理はスキップされることになる。よって、場合分けというよりは、スキップが可能な機構を設けておくだけで処理としてはすっきりしたものとできる。
複数のSpanを同時処理することで、処理能力をあげようとした場合には、Y方向における傾きを求めたくなるが、頂点のソートからやり直す必要があることになる。しかしながら、補間処理の前処理だけでことが済むために、全体としての処理系は簡単にできる。
【0061】
具体的には、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)。
【0062】
テクスチャエンジン回路143
テクスチャエンジン回路143は、「s/q」および「t/q」の算出処理、テクスチャ座標データ(u,v)の算出処理、テクスチャバッファ147aからの(R,G,B)データの読み出し処理等をパイプライン方式で行う。
なお、テクスチャエンジン回路143は、たとえば所定の矩形内に位置する8画素についての処理を同時に並行して行う。
【0063】
テクスチャエンジン回路143は、DDAデータS142が示す(s,t,q)データについて、sデータをqデータで除算する演算と、tデータをqデータで除算する演算とを行う。
テクスチャエンジン回路143には、たとえば図示しない除算回路が8個設けられており、8画素についての除算「s/q」および「t/q」が同時に行われる。
【0064】
また、テクスチャエンジン回路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)データとを、それぞれ掛け合わせるなどして、画素データS143を生成する。
テクスチャエンジン回路143は、この画素データS143をメモリI/F回路144に出力する。
【0065】
なお、テクスチャバッファ147aには、MIPMAP(複数解像度テクスチャ)などの複数の縮小率に対応したテクスチャデータが記憶されている。ここで、何れの縮小率のテクスチャデータを用いるかは、所定のアルゴリズムを用いて、前記三角形単位で決定される。
【0066】
テクスチャエンジン回路143は、フルカラー方式の場合には、テクスチャバッファ147aから読み出した(R,G,B)データを直接用いる。
一方、テクスチャエンジン回路143は、インデックスカラー方式の場合には、あらかじめ作成したカラールックアップテーブル(CLUT)をテクスチャCLUTバッファ147dから読み出して、内蔵するSRAMに転送および記憶し、このカラールックアップテーブルを用いて、テクスチャバッファ147aから読み出したカラーインデックスに対応する(R,G,B)データを得る。
【0067】
メモリI/F回路144
メモリI/F回路144は、テクスチャエンジン回路143から入力した画素データS143に対応するzデータと、zバッファ147cに記憶されているzデータとの比較を行い、入力した画素データS143によって描画される画像が、前回、ディスプレイバッファ147bに書き込まれた画像より、手前(視点側)に位置するか否かを判断し、手前に位置する場合には、画像データS143に対応するzデータでzバッファ147cに記憶されたzデータを更新する。
また、メモリI/F回路144は、(R,G,B)データをディスプレイバッファ147bに書き込む。
さらに、メモリI/F回路144は、テクスチャエンジン回路143からのSRAM148に、生成されたテクスチャ座標データ(u,v)を含む読み出し要求を受けた場合には、SRAM148に記憶された(R,G,B)データS148を読み出す。
また、メモリI/F回路144は、CRTコントロール回路145から表示データを読み出す要求を受けた場合には、この要求に応じて、ディスプレイバッファ147bから一定の固まり、たとえば8画素あるいは16画素単位で表示データを読み出す。
【0068】
このように、メモリI/F回路144は、DRAM147およびSRAM148へのアクセス(書き込みまたは読み出し)を行うが、書き込み経路と読み出し経路とが別経路として構成されている。
すなわち、書き込みの場合には書き込みアドレスADRWと書き込みデータDTWが書き込み系回路で処理されてDRAM147に書き込み、読み出しの場合には読み出し系回路で処理されてDRAM147またはSRAM148から読み出す。
そして、メモリI/F回路144は、所定のインターリーブ方式のアドレッシングに基づいてDRAM147へのアクセスを、たとえば16画素単位で行う。
【0069】
以下に、メモリI/F回路144の具体的な構成例について、図2に関連付けて説明する。
【0070】
メモリI/F回路144は、図2に示すように、ディストリビュータ300、アドレスコンバータ310,320,330,340、メモリコントローラ350,360,370,380および読み出しコントローラ390を有する。
【0071】
ディストリビュータ300は、書き込み時に、16画素分の(R,G,B)データDTWおよび書き込みアドレスADRWを入力し、これらを、各々4画素分のデータからなる4つの画像データS301,S302,S303,S304に分割し、その画像データおよび書き込みアドレスをそれぞれアドレスコンバータ310,320,330,340に出力する。
ここで、1画素分の(R,G,B)データは各8ビット、zデータは、それぞれ32ビットからなる。
【0072】
アドレスコンバータ310,320,330,340は、書き込み時に、ディストリビュータ300から入力した(R,G,B)データおよびzデータに対応したアドレスを、それぞれメモリモジュール200,210,220,230内のアドレスに変換し、それぞれ変換したアドレスS310,S320,S330,S340と分割された画像データをメモリコントローラ350,360,370,380に出力する。
【0073】
図13は、このディストリビュータ300の画像データ処理(ピクセル処理)を模式的に示す図である。
この図は、前述した図3〜図6に対応するものであり、ディストリビュータ300は、DRAM147に対して、たとえば2×8画素の16画素についてのデータが同時にアクセス可能になるように画像データ処理を行う。
そして、x方向について8画素毎のバウンダリ、かつy方向について偶数のバウンダリでの領域でアクセス(書き込み、読み出し)を行うようなアドレッシングとなるように画像データの処理を行う。
これによりDRAM147は、アクセスの先頭がメモリセル番号MCN「1」,「2」,「3」にはならず、必ずメモリセル番号MCN「0」となり、ページ違反の発生等が防止される。
また、ディストリビュータ300は、各DRAMモジュール200〜230に対して、画素データを、表示領域において隣接した部分は、異なるDRAMモジュールとなる配置するとなるように画像データの処理を行う。
これにより、三角形のような平面を描画する場合には面で同時に処理できることになるため、それぞれのDRAMモジュールの動作確率は非常に高くなっている。
【0074】
メモリコントローラ350,360,370,380は、それぞれ書き込み系配線群401W,402W,411W,412W,421W,422W,431W,432W、並びに読み出し系配線群401R,402R,411R,412R,421R,422R,431R,432Rを介してメモリモジュール200,210,220,230に接続されており、書き込み時および読み出し時にメモリモジュール200,210,220,230に対してのアクセスを制御する。
【0075】
具体的には、書き込み時には、メモリコントローラ350,360,370,380は、ディストリビュータ300から出力され、アドレスコンバータ350,360,370,380から入力した4画素分の(R,G,B)データおよびzデータを、書き込み系配線群401W,402W,411W,412W,421W,422W,431W,432Wを介してメモリモジュール200,210,220,230に同時に書き込む。
このとき、たとえば、メモリモジュール200では、前述したように、バンク201A,201B,202A,202Bの各々に、1画素分の(R,G,B)データおよびzデータが記憶される。メモリモジュール210,220,230についても同じである。
【0076】
また、各メモリコントローラ350,360,370,380は、自身のステートマシンがいわゆるアイドル(IDLE)状態にあるときに、アイドル信号S350,S360,S370,S380を読み出しコントローラ390にアクティブで出力し、このアイドル信号S350,S360,S370,S380に応答した読み出しコントローラ390による読み出しアドレスおよび読み出し要求信号S391を受けて、読み出し系配線群401R,402R,411R,412R,421R,422R,431R,432Rを介してデータの読み出しを行い、読み出し系配線群351,361,371,381、並びに配線群440を介して読み出しコントローラ390に出力する。
【0077】
なお、本実施形態では、書き込み系配線群401W,402W,411W,412W,421W,422W,431W,432W、並びに読み出し系配線群401R,402R,411R,412R,421R,422R,431R,432Rの配線本数は128本(128ビット)、読み出し系配線群351,361,371,381の配線本数は256本(256ビット)、ならびに読み出し系配線群440の配線本数は1024本(1024ビット)である。
【0078】
読み出しコントローラ390は、アドレスコンバータ391およびデータ演算処理部392により構成されている。
アドレスコンバータ391は、読み出しアドレスADRRを受けた場合、メモリコントローラ350,360,370,380からのアイドル信号S350,S360,S370,S380をすべてアクティブで受けると、このアイドル信号S350,S360,S370,S380に応答して、8画素あるいは16画素単位で読み出しを行うように、読み出しアドレスおよび読み出し要求信号S391を各メモリコントローラ350,360,370,380に出力する。
データ演算部392は、読み出しアドレスおよび読み出し要求信号S391に応答して各メモリコントローラ350,360,370,380で読み出された8画素あるいは16画素単位の、テクスチャデータ、(R,G,B)データ、zデータおよびテクスチャカラールックアップテーブルデータを配線群440を介して入力し、所定の演算処理を行って、要求先、たとえばテクスチャエンジン回路143またはCRTコントロール回路145に出力する。
【0079】
読み出しコントローラ390は、上述したように、メモリコントローラ350,360,370,380のすべてがアイドル状態にあるときに、読み出しアドレスおよび読み出し要求信号S391をメモリコントローラ350,360,370,380に出力し読み出しデータを受けることから、読み出すデータの同期をとることができる。
したがって、読み出しコントローラ390は、データを一時的に保持するFIFO(First In First Out)回路等の保持回路を設ける必要がなく、回路規模の縮小化が図られている。
【0080】
CRTコントロール回路145
CRTコントロール回路145は、与えられた水平および垂直同期信号に同期して、図示しないCRTに表示するアドレスを発生し、ディスプレイバッファ147bから表示データを読み出す要求をメモリI/F回路144に出力する。この要求に応じて、メモリI/F回路144は、ディスプレイバッファ147bから一定の固まりで表示データを読み出す。CRTコントローラ回路145は、ディスプレイバッファ147bから読み出した表示データを記憶するFIFO回路を内蔵し、一定の時間間隔で、RAMDAC回路146に、RGBのインデックス値を出力する。
【0081】
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に出力する。
【0082】
次に、上記構成による動作を説明する。
3次元コンピュータグラフィックスシステム10においては、グラフィックス描画等のデータは、メインプロセッサ11のメインメモリ12、あるいは外部からのグラフィックスデータを受けるI/Oインタフェース回路13からメインバス15を介してレンダリング回路14に与えられる。
なお、必要に応じて、グラフィックス描画等のデータは、メインプロセッサ11等において、座標変換、クリップ処理、ライティング処理等のジオメトリ処理が行われる。
ジオメトリ処理が終わったグラフィックスデータは、三角形の各3頂点の頂点座標x,y,z、輝度値R,G,B、描画しようとしている画素と対応するテクスチャ座標s,t,qとからなるポリゴンレンダリングデータS11となる。
【0083】
このポリゴンレンダリングデータS11は、レンダリング回路14のDDAセットアップ回路141に入力される。
DDAセットアップ回路141においては、ポリゴンレンダリングデータS11に基づいて、三角形の辺と水平方向の差分などを示す変分データS141が生成される。具体的には、開始点の値と終点の値、並びに、その間の距離を用いて、単位長さ移動した場合における、求めようとしている値の変化分である変分が算出され、変分データS141としてトライアングルDDA回路142に出力される。
【0084】
トライアングルDDA回路142においては、変分データS141を用いて、三角形内部の各画素における線形補間された(z,R,G,B,s,t,q)データが算出される。
そして、この算出された(z,R,G,B,s,t,q)データと、三角形の各頂点の(x,y)データとが、DDAデータS142として、トライアングルDDA回路142からテクスチャエンジン回路143に出力される。
【0085】
テクスチャエンジン回路143においては、DDAデータS142が示す(s,t,q)データについて、sデータをqデータで除算する演算と、tデータをqデータで除算する演算とが行われる。そして、除算結果「s/q」および「t/q」に、それぞれテクスチャサイズUSIZEおよびVSIZEが乗算され、テクスチャ座標データ(u,v)が生成される。
【0086】
次に、テクスチャエンジン回路143からメモリI/F回路144に対して生成されたテクスチャ座標データ(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)データとが掛け合わされ、画素データS143として生成される。
この画素データS143は、テクスチャエンジン回路143からメモリI/F回路144に出力される。
【0087】
フルカラーの場合には、テクスチャバッファ147aからのデータ(R,G,B)を直接用いればよいが、インデックスカラーの場合には、あらかじめ作成しておいたカラーインデックステーブル(Color Index Table )のデータが、テクスチャCLUT(Color Look Up Table)バッファ147dより、SRAM等で構成される一時保管バッファへ転送され、この一時保管バッファのCLUTを用いてカラーインデックスから実際のR,G,Bカラーが得られる。
なお、CULTがSRAMで構成された場合は、カラーインデックスをSRAMのアドレスに入力すると、その出力には実際のR,G,Bカラーが出てくるといった使い方となる。
【0088】
そして、メモリI/F回路144において、テクスチャエンジン回路143から入力した画素データS143に対応するzデータと、zバッファ147cに記憶されているzデータとの比較が行われ、入力した画素データS12によって描画される画像が、前回、ディスプレイバッファ21に書き込まれた画像より、手前(視点側)に位置するか否かが判断される。
判断の結果、手前に位置する場合には、画像データS143に対応するzデータでzバッファ147cに記憶されたzデータが更新される。
【0089】
次に、メモリI/F回路144において、(R,G,B)データがディスプレイバッファ147bに書き込まれる。
これら書き込む(更新も含む)べきデータは、書き込み系回路である、ディストリビュータ300、アドレスデコーダ310,320,330,340を介してメモリコントローラ350,360,370,380に供給され、メモリコントローラ350,360,370,380によって、それぞれ書き込み系配線群401W,402W,411W,412W,421W,422W,431W,432Wを介し所定のメモリに対して並列的に書き込まれる。
【0090】
メモリI/F回路144においては、今から描画しようとしている画素におけるテクスチャアドレスに対応したテクスチャを格納しているメモリブロックがそのテクスチャアドレスにより算出され、そのメモリブロックにのみ読みだし要求が出され、テクスチャデータが読み出される。
この場合、該当するテクスチャデータを保持していないメモリブロックにおいては、テクスチャ読み出しのためのアクセスが行われないため、描画により多くのアクセス時間を提供することが可能となっている。
【0091】
描画においても同様に、今から描画しようとしている画素アドレスに対応する画素データを格納しているメモリブロックに対して、該当アドレスから画素データがモディファイ書き込み(Modify Write)を行うために読み出され、モディファイ後、同じアドレスへ書き戻される。
【0092】
隠れ面処理を行う場合には、やはり同じように今から描画しようとしている画素アドレスに対応する奥行きデータを格納しているメモリブロックに対して、該当アドレスから奥行きデータがモディファイ書き込み(Modify Write)を行うために読み出され、必要ならばモディファイ後、同じアドレスへ書き戻される。
【0093】
このようなメモリI/F回路144に基づくDRAM147とのデータのやり取りにおいては、それまでの処理を複数並行処理することで、描画性能を向上させることができる。
特に、トライアングルDDA回路142とテクスチャエンジン143の部分を並列実行形式で、同じ回路に設ける(空間並列)か、または、パイプラインを細かく挿入する(時間並列)ことで、部分的に動作周波数を増加させるという手段により、複数画素の同時算出が行われる。
【0094】
また、画素データは、メモリI/F回路144の制御のもと、表示領域において隣接した部分は、異なるDRAMモジュールとなるように配置される。
これにより、三角形のような平面を描画する場合には面で同時に処理される。このため、それぞれのDRAMモジュールの動作確率は非常に高い。
【0095】
そして、図示しないCRTに画像を表示する場合には、CRTコントロール回路145において、与えられた水平垂直同期周波数に同期して、表示アドレスが発生され、メモリI/F回路144へ表示データ転送の要求が出される。
メモリI/F回路144では、その要求に従い、一定のまとまった固まりで、表示データがCRTコントロール回路145に転送される。
CRTコントロール回路145では、図示しないディスプレイ用FIFO(First In First Out)等にその表示データが貯えられ、一定の間隔でRAMDAC146へRGBのインデックス値が転送される。
【0096】
なお、上述したようにメモリI/F回路144に対してDRAM147あるいはSRAM148に格納されているデータの読み出し要求があった場合、読み出しコントローラ390のアドレスコンバータ391に読み出しアドレスADRRが入力される。
このとき、アドレスコンバータ391ではメモリコントローラ350,360,370,380からのアイドル信号S350,S360,S370,S380をすべてアクティブで入力された否かのチェックが行われる。そして、アイドル信号S350,S360,S370,S380がすべてアクティブで入力されると、アイドル信号S350,S360,S370,S380に応答して、8画素あるいは16画素単位で読み出しを行うように、読み出しアドレスおよび読み出し要求信号S391が各メモリコントローラ350,360,370,380に出力される。
【0097】
読み出しアドレスおよび読み出し要求信号S391を受けて、各メモリコントローラ350,360,370,380で8画素あるいは16画素単位の、テクスチャデータ、(R,G,B)データ、zデータおよびテクスチャカラールックアップテーブルデータが読み出し系配線群401R,402R,411R,412R,421R,422R,431R,432Rを介して並列的に読み出され、さらに読み出し系配線群351,361,371,381,配線群440を介してデータ演算部392に入力される。
そして、データ演算部392で所定の演算処理が行われて、要求先、たとえばテクスチャエンジン回路143またはCRTコントロール回路145に出力される。
【0098】
RAMDAC146においては、RAM内部にRGBのインデックスに対するRGB値が記憶されていて、インデックス値に対するRGB値が図示しないD/Aコンバータへ転送される。
そして、D/Aコンバータでアナログ信号に変換されたRGB信号がCRTへ転送される。
【0099】
以上説明したように、本実施形態によれば、DRAM147およびSRAM148へのアクセス(書き込みまたは読み出し)を行うメモリI/F回路144において、書き込み経路と読み出し経路とを別経路として構成し、書き込みの場合には書き込みアドレスADRWと書き込みデータDTWを書き込み系回路であるディストリビュータ300、アドレスコンバータ310,320,330,340およびメモリコントローラ350,360,370,380で処理してDRAM147に書き込み、読み出しの場合には読み出し系回路である読み出しコントローラ390、メモリコントローラ350,360,370,380で処理してDRAM147またはSRAM148から読み出すことから、たとえば読み出しの割り込みが入った時等に早いタイミングで切り替えることができ、読み出しの際の性能向上を図れる利点がある。
【0100】
また、読み出しコントローラ390は、メモリコントローラ350,360,370,380がアイドル状態にあるときに、読み出しアドレスおよび読み出し要求信号S391をメモリコントローラ350,360,370,380に出力して読み出しデータを受けるようにしたので、読み出すデータの同期をとることができる。
したがって、読み出しコントローラ390は、データを一時的に保持するFIFO(First In First Out)回路等の保持回路を設ける必要がなく、回路規模の縮小化を図ることができる。
【0101】
また、メモリI/F回路144は、所定のインターリーブ方式のアドレッシングに基づいてDRAM147へのアクセスを、たとえば16画素単位で行い、読み出す領域に制限を加えていることから、ペ−ジ違反を起こさない画像処理装置を実現できる。
【0102】
さらに、本実施形態によれば、半導体チップ内部に内蔵されたDRAM147に、表示デ−タと少なくとも一つの図形要素が必要とするテクスチャデ−タを記憶させた構成を有することから、表示領域以外の部分にテクスチャデ−タを格納できることになり、内蔵DRAMの有効利用が可能となり、高速処理動作、並びに低消費電力化を並立させるようにした画像処理装置が実現可能となる。
そして、単一メモリシステムを実現でき、すべてが内蔵された中だけで処理ができる。その結果、ア−キテクチャとしても大きなパラダイムシフトとなる。
また、メモリの有効利用ができることで、内部に持っているDRAMのみでの処理が可能となり、内部にあるがゆえのメモリと描画システムの間の大きなバンド幅が、十分に活用可能となる。また、DRAMにおいても特殊な処理を組み込むことが可能となる。
【0103】
また、DRAMにおける同一機能を独立した複数のモジュ−ル1471〜1474として並列にもつことから、並列動作の効率を向上させることができる。単にデ−タのビット数が多いだけでは、デ−タの使用効率は悪化し、性能向上できるのは一部の条件の場合に限定されることになる。平均的な性能を向上させるためには、ある程度の機能をもったモジュ−ルを複数設けることで、ビット線の有効利用を行うことができる。
【0104】
さらに、表示アドレス空間において、隣接するアドレスにおける表示要素が、それぞれ異なるDRAMのブロックになるように配置するので、さらにビット線の有効利用が可能となり、グラフィックス描画におけるような、比較的固まった表示領域へのアクセスが多い場合には、それぞれのモジュ−ルが同時に処理できる確率が増加し、描画性能の向上が可能となる。
【0105】
また、より多くのテクスチャデ−タを格納するために、インデックスカラ−におけるインデックスと、そのためのカラ−ルックアップテ−ブル値を内蔵DRAM147内部に格納するので、テクスチャデ−タの圧縮が可能となり、内蔵DRAMの効率良い利用が可能となる。
【0106】
また、描画しようとしている物体の奥行き情報を、内蔵のDRAMに格納するので、描画と同時並行的に隠れ面処理を行うことが可能となる。
描画を行って、通常はそれを表示しようとするわけだが、ユニファイドメモリとして、テクスチャデ−タと表示デ−タを同一のメモリシステムに同居させることができることから、直接表示に使わずに、描画デ−タをテクスチャデ−タとして使ってしまうということも可能となる。
このようなことは、必要なときに必要なテクスチャデ−タを、描画によって作成する場合に有効となり、これもテクスチャデ−タを膨らませないための効果的な機能となる。
【0107】
また、チップ内部にDRAMを内蔵することで、その高速なインタ−フェ−ス部分がチップの内部だけで完結することになるため、大きな付加容量のI/Oバッファであるとか、チップ間配線容量をドライブする必要がなくなり、消費電力は内蔵しない場合に比較して小さくなる。
よって、さまざまな技術を使って、一つのチップの中だけですべてができるような仕組みは、今後の携帯情報端末等の身近なデジタル機器のためには、必要不可欠な技術要素となっている。
【0108】
なお、本発明は上述した実施形態には限定されない。
また、上述した図1に示す3次元コンピュータグラフィックスシステム10では、SRAM148を用いる構成を例示したが、SRAM148を設けない構成にしてもよい。
【0109】
さらに、図1に示す3次元コンピュータグラフィックスシステム10では、ポリゴンレンダリングデータを生成するジオメトリ処理を、メインプロセッサ11で行う場合を例示したが、レンダリング回路14で行う構成にしてもよい。
【0110】
【発明の効果】
以上説明したように、本発明によれば、デ−タの記憶回路への書き込み系と記憶回路メモリからの読み出し系を分離して行うことから、読み出しの割り込みが入った時に早いタイミングで切り替えることができ、読み出しの際の性能向上を図れる利点がある。
また、記憶回路がアイドル状態のときにアドレススと読み出しリクエストを出すようにしたので、読み出すデ−タの同期をとれるようになる。その結果、デ−タを一時的に保存するFIFO等の保持回路を無くすことができ、回路規模を縮小することを実現することができる。
また、読み出す領域に制限を加えていることから、ペ−ジ違反を起こさない画像処理装置を実現できる。
【0111】
さらに、半導体チップ内部にロジック回路と混載された記憶回路に、表示デ−タと少なくとも一つの図形要素が必要とするテクスチャデ−タを記憶させた構成を有することから、表示領域以外の部分にテクスチャデ−タを格納できることになり、内蔵記憶回路の有効利用が可能となり、高速処理動作、並びに低消費電力化を並立させるようにした画像処理装置が実現可能となる。
そして、単一メモリシステムを実現でき、すべてが内蔵された中だけで処理ができる。その結果、ア−キテクチャとしても大きなパラダイムシフトとなる。
また、記憶回路の有効利用ができることで、内部に持っているメモリのみでの処理が可能となり、内部にあるがゆえのメモリと描画システムの間の大きなバンド幅が、十分に活用可能となる。また、メモリにおいても特殊な処理を組み込むことが可能となる。
【0112】
また、メモリにおける同一機能を独立した複数のモジュ−ルとして並列にもつことから、並列動作の効率を向上させることができる。
【0113】
さらに、表示アドレス空間において、隣接するアドレスにおける表示要素を、それぞれ異なるメモリのブロックになるように配置するので、グラフィックス描画におけるような、比較的固まった表示領域へのアクセスが多い場合には、それぞれのモジュ−ルが同時に処理できる確率が増加し、描画性能の向上が可能となる。
【図面の簡単な説明】
【図1】 本発明に係る3次元コンピュータグラフィックスシステムの構成を示すブロック図である。
【図2】 本発明に係るレンダリング回路におけるDRAM、SRAM、並びに、DRAMおよびSRAMへアクセスするメモリI/F回路の具体的な構成例を示すブロック図である。
【図3】 本発明に係るDRAMバッファの構成例を示す概略図である。
【図4】 テクスチャデータに含まれる同時にアクセスが行われる画素データを説明するための図である。
【図5】 テクスチャデータを構成する単位ブロックを説明するための図である。
【図6】 テクスチャバッファのアドレス空間を説明するための図である。
【図7】 本発明に係るDDAセットアップ回路の機能を説明するための図である。
【図8】 本発明に係るトライアングルDDA回路の機能を説明するための図である。
【図9】 本発明に係るトライアングルDDA回路の頂点のソート処理を説明するための図である。
【図10】 本発明に係るトライアングルDDA回路の水平方向の傾き算出処理を説明するための図である。
【図11】 本発明に係るトライアングルDDA回路の頂点データの補間手順を説明するための図である。
【図12】 本発明に係るトライアングルDDA回路の頂点データの補間手順を説明するためのフローチャートである。
【図13】 本発明に係るメモリI/F回路におけるディストリビュータの画像データ処理を説明するための図である。
【図14】 3次元コンピュータグラフィックスシステムの基本的な概念を示すシステム構成図である。
【符号の説明】
10…3次元コンピュータグラフィックスシステム、11…メインプロセッサ、12…メインメモリ、13…I/Oインタフェース回路、14…レンダリング回路、141…DDAセットアップ回路、142…トライアングルDDA回路、143…テクスチャエンジン回路、144…メモリI/F回路、145…CRTコントローラ回路、146…RAMDAC回路、147…DRAM、1471〜1474…DRAMモジュール、147a…テクスチャバッファ、147b…ディスプレイバッファ、147c…zバッファ、147d…テクスチャCLUTバッファ、148…SRAM、200,210,220,230…メモリモジュール、300…ディストリビュータ、310,320,330,340…アドレスデコーダ、350,360,370,380…メモリコントローラ、390…読み出しコントローラ、391…アドレスデコーダ、392…データ演算処理部。
Claims (2)
- 少なくとも表示用画像デ−タを記憶する記憶回路と、
上記記憶回路の記憶データに基づいて、画像データに所定の処理を行うロジック回路と、
上記記憶回路にデータを書き込む書き込み系回路と、
読み出し要求を受けて上記記憶回路に記憶されたデータを上記書き込み系回路と異なる経路で読み出す読み出し系回路とを有し、
上記記憶回路、上記ロジック回路、上記書き込み系回路および上記読み出し系回路が一つの半導体チップ内に混載され、
上記記憶回路は、同一機能を有する複数のモジュールに分割され、
上記書き込み系回路および読み出し系回路は、
上記各モジュールに対応して設けられ、それぞれ対応するモジュールと書き込み系配線群、並びに読み出し系配線群を介して接続され、書き込み時および読み出し時に各モジュールに対しての並列アクセスを制御する複数のメモリコントローラを共用し、
上記各メモリコントローラは、
自身のステートマシンがアイドル状態にあるときに、アイドル信号をアクティブで出力し、
上記書き込み系回路は、
書き込み時に、複数画素分のデータおよび書き込みアドレスを入力し、当該データを所定画素分のデータからなる上記モジュールの分割数に相当する複数の画像データに分割し、当該分割した画像データおよび書き込みアドレスを出力し、かつ、当該画像データを、上記記憶回路の各モジュールに、画像データの表示アドレス空間において、隣接するアドレスにおける表示要素が、異なるモジュールとなる配置となるように処理するディストリビュータと、
書き込み時に、上記ディストリビュータから入力した画像データおよびアドレスを、それぞれ上記各モジュール内のアドレスに変換し、それぞれ変換したアドレスと分割された画像データを上記複数のメモリコントローラに出力するアドレスコンバータと、を含み、
上記読み出し系回路は、
所定の連続する画素からなるブロック単位で読み出しを行う読み出しコントローラを有し、
上記読み出しコントローラは、
読み出しアドレスを受けた場合、上記各メモリコントローラからのアイドル信号をすべてアクティブで受けると、このアイドル信号に応答して、複数画素単位で読み出しを行うように、読み出しアドレスおよび読み出し要求信号を上記各メモリコントローラに出力するアドレスコンバータと、
読み出しアドレスおよび読み出し要求信号に応答して上記各メモリコントローラで読み出された複数画素単位のデータを読み出し用配線群を介して入力し、所定の演算処理を行って、要求先に出力するデータ演算部と、を含み、
上記各メモリコントローラは、
自身のステートマシンがアイドル状態にあるときに、上記アイドル信号を上記読み出しコントローラにアクティブで出力し、当該アイドル信号に応答した上記読み出しコントローラによる読み出しアドレスおよび読み出し要求信号を受けて、上記読み出し系配線群を介して上記モジュールからデータの読み出しを行い、上記読み出し用配線群を介して上記読み出しコントローラに出力する
画像処理装置。 - 単位図形の頂点について、3次元座標(x,y,z)、R(赤),G(緑),B(青)データ、テクスチャ同次座標(s,t)および同次項qを含むポリゴンレンダリングデータを受けてレンダリング処理を行う画像処理装置であって、
表示デ−タと少なくとも一つの図形要素が必要とするテクスチャデ−タを記憶する記憶回路と、
前記単位図形の頂点のポリゴンレンダリングデータを補間して、前記単位図形内に位置する画素の補間データを生成する補間データ生成回路と、
前記補間データに含まれるテクスチャ同次座標(s,t)を同次項qで除算して「s/q」および「t/q」を生成し、前記「s/q」および「t/q」に応じたテクスチャアドレスを用いて、前記記憶回路からテクスチャデータを読み出し、表示データの図形要素の表面へのテクスチャデータの張り付け処理を行うテクスチャ処理回路と、
上記記憶回路にデータを書き込む書き込み系回路と、
読み出し要求を受けて上記記憶回路に記憶されたデータを上記書き込み系回路と異なる経路で読み出す読み出し系回路と
を少なくとも有し、
上記記憶回路、上記ロジック回路、上記書き込み系回路および上記読み出し系回路が一つの半導体チップ内に混載され、
上記記憶回路は、同一機能を有する複数のモジュールに分割され、
上記書き込み系回路および読み出し系回路は、
上記各モジュールに対応して設けられ、それぞれ対応するモジュールと書き込み系配線群、並びに読み出し系配線群を介して接続され、書き込み時および読み出し時に各モジュールに対しての並列アクセスを制御する複数のメモリコントローラを共用し、
上記各メモリコントローラは、
自身のステートマシンがアイドル状態にあるときに、アイドル信号をアクティブで出力し、
上記書き込み系回路は、
書き込み時に、複数画素分のデータおよび書き込みアドレスを入力し、当該データを所定画素分のデータからなる上記モジュールの分割数に相当する複数の画像データに分割し、当該分割した画像データおよび書き込みアドレスを出力し、かつ、当該画像データを、上記記憶回路の各モジュールに、画像データの表示アドレス空間において、隣接するアドレスにおける表示要素が、異なるモジュールとなる配置となるように処理するディストリビュータと、
書き込み時に、上記ディストリビュータから入力した画像データおよびアドレスを、それぞれ上記各モジュール内のアドレスに変換し、それぞれ変換したアドレスと分割された画像データを上記複数のメモリコントローラに出力するアドレスコンバータと、を含み、
上記読み出し系回路は、
所定の連続する画素からなるブロック単位で読み出しを行う読み出しコントローラを有し、
上記読み出しコントローラは、
読み出しアドレスを受けた場合、上記各メモリコントローラからのアイドル信号をすべてアクティブで受けると、このアイドル信号に応答して、複数画素単位で読み出しを行うように、読み出しアドレスおよび読み出し要求信号を上記各メモリコントローラに出力するアドレスコンバータと、
読み出しアドレスおよび読み出し要求信号に応答して上記各メモリコントローラで読み出された複数画素単位のデータを読み出し用配線群を介して入力し、所定の演算処理を行って、要求先に出力するデータ演算部と、を含み、
上記各メモリコントローラは、
自身のステートマシンがアイドル状態にあるときに、上記アイドル信号を上記読み出しコントローラにアクティブで出力し、当該アイドル信号に応答した上記読み出しコントローラによる読み出しアドレスおよび読み出し要求信号を受けて、上記読み出し系配線群を介して上記モジュールからデータの読み出しを行い、上記読み出し用配線群を介して上 記読み出しコントローラに出力する
画像処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP17855698A JP4081860B2 (ja) | 1998-06-25 | 1998-06-25 | 画像処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP17855698A JP4081860B2 (ja) | 1998-06-25 | 1998-06-25 | 画像処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000011189A JP2000011189A (ja) | 2000-01-14 |
JP4081860B2 true JP4081860B2 (ja) | 2008-04-30 |
Family
ID=16050561
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP17855698A Expired - Fee Related JP4081860B2 (ja) | 1998-06-25 | 1998-06-25 | 画像処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4081860B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8253751B2 (en) * | 2005-06-30 | 2012-08-28 | Intel Corporation | Memory controller interface for micro-tiled memory access |
US7558941B2 (en) * | 2005-06-30 | 2009-07-07 | Intel Corporation | Automatic detection of micro-tile enabled memory |
US7872892B2 (en) * | 2005-07-05 | 2011-01-18 | Intel Corporation | Identifying and accessing individual memory devices in a memory channel |
-
1998
- 1998-06-25 JP JP17855698A patent/JP4081860B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000011189A (ja) | 2000-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7027066B2 (en) | Graphics plotting apparatus | |
JPH0484192A (ja) | 図形処理装置及び図形処理方法 | |
JP4182575B2 (ja) | 記憶装置および画像データ処理装置 | |
US6480199B1 (en) | Image processing apparatus | |
JP3687945B2 (ja) | 画像処理装置およびその方法 | |
JP4314655B2 (ja) | 画像処理装置 | |
JP4081860B2 (ja) | 画像処理装置 | |
US7245303B2 (en) | Image processing apparatus | |
JP4828006B2 (ja) | 画像処理装置 | |
JP4665268B2 (ja) | 画像処理装置 | |
US7583270B2 (en) | Image processing apparatus | |
JP4232234B2 (ja) | 画像処理装置 | |
US7068279B2 (en) | Image processing apparatus | |
JP4670887B2 (ja) | 画像処理装置 | |
JP3971448B2 (ja) | 描画装置及び描画方法 | |
JP4580475B2 (ja) | 演算処理装置およびグラフィック演算装置 | |
JP2003085038A (ja) | 画像処理装置 | |
JP2003022696A (ja) | テスト回路および画像処理装置 | |
JPH06259060A (ja) | 高解像度グラフィックスディスプレイ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050304 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20071016 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071023 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071225 |
|
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: 20080122 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080204 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110222 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120222 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130222 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |