(57)【特許請求の範囲】
【請求項１】
マトリクス状に配置された複数の画素の色をそれぞれ示す複数の画素データを含む表示データを記憶し、複数の前記画素データを同時に書き込み可能な記憶回路と、
前記記憶回路に同時に書き込まれる複数の画素データのそれぞれに対応して設けられ、対応する前記画素データを書き込む前記記憶回路の記憶領域内のアドレスである書き込みアドレスをそれぞれ生成する複数のアドレス生成回路と、
前記複数の画素データを、前記記憶領域内の前記書き込みアドレスにそれぞれ書き込む書き込み回路と、
を有し、
前記画素データは、前記色を示す色データと、対応する画素の２次元上のｘ方向およびｙ方向の位置をそれぞれ示す第１の位置データおよび第２の位置データとを含み、
前記アドレス生成回路は、
前記第２の位置データと、前記記憶領域のｘ方向の幅に応じた幅データとを乗算する乗算回路と、
前記第１の位置データと、前記乗算回路の乗算結果とを加算して前記書き込みアドレスを生成する加算回路と、を有し、
前記乗算回路および前記加算回路は、
画像処理装置の少なくとも一部の回路の機能をハードウェア記述言語を用いて記述した回路パターン生成用データに基づいて、前記少なくとも一部の回路の回路パターンを自動生成した際に、前記回路パターン生成用データにおいて同一のマクロセル内にその機能が記述されている、
画像処理装置。
【請求項２】
前記画素データは、さらに３次元表示処理を行う際に用いられる奥行きデータとを含み、
前記アドレス生成回路は、
前記乗算回路として第１の乗算回路および第２の乗算回路を含み、
前記加算回路として第１の加算回路および第２の加算回路を含み、
前記第１の乗算回路は、
前記第２の位置データと、前記幅データとを乗算し、
前記第１の加算回路は、
前記第１の位置データと、前記第１の乗算回路の乗算結果と、色データを記憶する領域として前記記憶領域内に予め決められた第１の記憶領域の先頭アドレスを示す第１のアドレスデータとを加算して前記色データについての前記書き込みアドレスを生成し、
前記第２の乗算回路は、
前記第２の位置データと、前記幅データとを乗算し、
前記第２の加算回路は、
前記第１の位置データと、前記第２の乗算回路の乗算結果と、前記奥行きデータを記憶する領域として前記記憶領域内に予め決められた第２の記憶領域の先頭アドレスを示す第２のアドレスデータとを加算して前記奥行きデータについての前記書き込みアドレスを生成する
請求項１に記載の画像処理装置。
【請求項３】
前記第１および第２の乗算回路および前記第１および第２の加算回路は、
前記画像処理装置の少なくとも一部の回路の機能をハードウェア記述言語を用いて記述した回路パターン生成用データに基づいて、前記少なくとも一部の回路の回路パターンを自動生成した際に、前記回路パターン生成用データにおいて同一のマクロセル内にその機能が記述された、
請求項２に記載の画像処理装置。
【請求項４】
マトリクス状に配置された複数の画素の色をそれぞれ示す複数の第１の画素データを含む表示データを記憶し、複数の前記第１の画素データを同時に書き込み可能な記憶回路と、
前記同時に書き込まれる前記複数の第１の画素データのそれぞれに対応して設けられ、対応する第２の画素データが示す色と書き込みアドレスで指し示された前記記憶回路の記憶領域に既に記憶されている第３の画素データが示す色とを所定の混合比で混合して新たな色を生成するための色混合処理を、前記第２の画素データおよび前記第３の画素データを用いて行って前記新たな色を示す前記第１の画素データを生成する複数の画素データ生成回路と、
前記生成された複数の第１の画素データを前記記憶回路の記憶領域に同時に書き込む書き込み回路と、
を有し、
前記第１の画素データ、前記第２の画素データおよび前記第３の画素データは、複数の色データを含み、当該複数の色データが示す値を組み合わせて色を示し、
前記画素データ生成回路は、
前記複数の色データのそれぞれに対応して設けられ、対応する前記第２の画素データの前記対応する色データが示す色と前記書き込みアドレスで指し示された前記記憶回路の記憶領域に既に記憶されている第３の画素データの前記対応する色データが示す色とを所定の混合比で混合して新たな色を生成するための色混合処理を、前記第２の画素データおよび前記第３の画素データの前記対応する色データを用いて行って前記新たな色を示す前記第１の画素データの前記対応する色データを生成する複数の色データ生成回路を有し、
前記画素データ生成回路は、
前記第２の画素データの前記対応する色データおよび前記第３の画素データの前記対応する色データとを用いて減算を行う減算回路と、
前記減算回路の減算結果と前記混合比を示す混合比データとを乗算する乗算回路と、を有し、
前記画素データ生成回路の前記減算回路および前記乗算回路は、
画像処理装置の少なくとも一部の回路の機能をハードウェア記述言語を用いて記述した回路パターン生成用データに基づいて、前記少なくとも一部の回路の回路パターンを自動生成した際に、前記回路パターン生成用データにおいて同一のマクロセル内にその機能が記述されている、
画像処理装置。
【請求項５】
前記画素データ生成回路は、
ディザデータと前記第２の画素データの前記対応する色データまたは前記第３の画素データの前記対応する色データとを加算する第１の加算回路と、
前記乗算回路の乗算結果と、前記第１の加算回路の加算結果とを加算する第２の加算回路と
をさらに有する、
請求項４に記載の画像処理装置。
【請求項６】
前記複数の色データ生成回路は、
前記画像処理装置の少なくとも一部の回路の機能をハードウェア記述言語を用いて記述した回路パターン生成用データに基づいて、前記少なくとも一部の回路の回路パターンを自動生成した際に、前記回路パターン生成用データにおいて同一のマクロセル内にその機能が記述されている、
請求項４に記載の画像処理装置。
【請求項７】
立体モデルを複数の単位図形を組み合わせて表現し、表示装置のマトリクス状に配置された画素毎に色を示す画素データを生成する画像処理装置において、
前記単位図形の頂点について、Ｒ（赤），Ｇ（緑），Ｂ（青）データを含むポリゴンレンダリングデータを生成するポリゴンレンダリングデータ生成回路と、
前記単位図形の頂点のポリゴンレンダリングデータを補間して、前記単位図形内に位置する画素の画素データを生成するデータ補間回路と、
複数の前記画素データの前記Ｒ，Ｇ，Ｂデータを含む表示データを記憶し、複数の前記画素データの前記Ｒ，Ｇ，Ｂデータを同時に書き込み可能な記憶回路と、
前記記憶回路に同時に書き込まれる前記複数の画素データのそれぞれに対応して設けられ、対応する前記画素データの前記Ｒ，Ｇ，Ｂデータを書き込む前記記憶回路の記憶領域内のアドレスである書き込みアドレスをそれぞれ生成する複数のアドレス生成回路と、
前記複数の画素データの前記Ｒ，Ｇ，Ｂデータを、前記記憶領域内の前記書き込みアドレスにそれぞれ書き込む書き込み回路と、
を有し、
前記ポリゴンレンダリングデータ生成回路は、前記単位図形の頂点のそれぞれについて、当該頂点の２次元座標を示すｘ，ｙデータをさらに含む前記ポリゴンレンダリングデータを生成し、
前記アドレス生成回路は、
前記ｙデータと、前記記憶領域のｘ方向の幅に応じた幅データとを乗算する乗算回路と、
前記ｘデータと、前記乗算回路の乗算結果とを加算して前記書き込みアドレスを生成する加算回路と、を有し、
前記乗算回路および前記加算回路は、
前記画像処理装置の少なくとも一部の回路の機能をハードウェア記述言語を用いて記述した回路パターン生成用データに基づいて、前記少なくとも一部の回路の回路パターンを自動生成した際に、前記回路パターン生成用データにおいて同一のマクロセル内にその機能が記述されている、
画像処理装置。
【請求項８】
前記ポリゴンレンダリングデータ生成回路は、前記単位図形の頂点について、
奥行きを示すｚデータをさらに含む前記ポリゴンレンダリングデータを生成し、
前記アドレス生成回路は、
前記乗算回路として第１の乗算回路および第２の乗算回路を含み、
前記加算回路として第１の加算回路および第２の加算回路を含み、
前記第１の乗算回路は、
前記ｙデータと、前記幅データとを乗算し、
前記第１の加算回路は、
前記ｘデータと、前記第１の乗算回路の乗算結果と、前記Ｒ，Ｇ，Ｂデータを記憶する領域として前記記憶領域内に予め決められた第１の記憶領域の先頭アドレスを示す第１のアドレスデータとを加算して前記Ｒ，Ｇ，Ｂデータについての前記書き込みアドレスを生成し、
前記第２の乗算回路は、
前記ｙデータと、前記幅データとを乗算し、
前記第２の加算回路は、
前記ｘデータと、前記第２の乗算回路の乗算結果と、前記ｚデータを記憶する領域として前記記憶領域内に予め決められた第２の記憶領域の先頭アドレスを示す第２のアドレスデータとを加算して前記ｚデータについての前記書き込みアドレスを生成する
請求項７に記載の画像処理装置。
【請求項９】
前記第１および第２の乗算回路および前記第１および第２の加算回路は、
前記画像処理装置の少なくとも一部の回路の機能をハードウェア記述言語を用いて記述した回路パターン生成用データに基づいて、前記少なくとも一部の回路の回路パターンを自動生成した際に、前記回路パターン生成用データにおいて同一のマクロセル内にその機能が記述された、
請求項８に記載の画像処理装置。
【請求項１０】
立体モデルを複数の単位図形を組み合わせて表現し、表示装置のマトリクス状に配置された画素毎に色を示す画素データを生成する画像処理装置において、
前記単位図形の頂点のそれぞれについて、当該頂点のＲ（赤），Ｇ（緑），Ｂ（青）データを含むポリゴンレンダリングデータを生成するポリゴンレンダリングデータ生成回路と、
前記単位図形の頂点のポリゴンレンダリングデータを補間して、前記単位図形内に位置する画素の第１の画素データを生成するデータ補間回路と、
複数の第２の画素データを含む表示データを記憶し、複数の前記第２の画素データを同時に書き込み可能な記憶回路と、
前記同時に書き込まれる複数の第２の画素データのそれぞれに対応して設けられ、前記第１の画素データが示す色と書き込みアドレスで指し示された前記記憶回路の記憶領域に既に記憶されている第３の画素データが示す色とを所定の混合比で混合して新たな色を生成するための色混合処理を、前記第１の画素データおよび前記第３の画素データを用いて行って前記新たな色を示す前記第２の画素データを生成する画素データ生成回路と、
前記生成された複数の第２の画素データを前記記憶回路の記憶領域に同時に書き込む書き込み回路と、
を有し、
前記第１の画素データ、前記第２の画素データおよび前記第３の画素データは、複数の色データを含み、当該複数の色データが示す値を組み合わせて色を示し、
前記画素データ生成回路は、
前記複数の色データのそれぞれに対応して設けられ、対応する前記第１の画素データの前記対応する色データが示す色と前記書き込みアドレスで指し示された前記記憶回路の記憶領域に既に記憶されている第３の画素データの前記対応する色データが示す色とを所定の混合比で混合して新たな色を生成するための色混合処理を、前記第１の画素データおよび前記第３の画素データの前記対応する色データを用いて行って前記新たな色を示す前記第２の画素データの前記対応する色データを生成する複数の色データ生成回路を有し、
前記画素データ生成回路は、
前記第１の画素データの前記対応する色データおよび前記第３の画素データの前記対応する色データとを用いて減算を行う減算回路と、
前記減算回路の減算結果と前記混合比を示す混合比データとを乗算する乗算回路と、を有し、
前記画素データ生成回路の前記減算回路および前記乗算回路は、
前記画像処理装置の少なくとも一部の回路の機能をハードウェア記述言語を用いて記述した回路パターン生成用データに基づいて、前記少なくとも一部の回路の回路パターンを自動生成した際に、前記回路パターン生成用データにおいて同一のマクロセル内にその機能が記述されている、
画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理装置に関し、特にアドレス生成回路およびαブレンディング処理回路に特徴を有する画像処理装置に関するものである。
【０００２】
【従来の技術】
種々のＣＡＤ(Computer Aided Design) システムや、アミューズメント装置などにおいて、コンピュータグラフィックスがしばしば用いられている。特に、近年の画像処理技術の進展に伴い、３次元コンピュータグラフィックスを用いたシステムが急速に普及している。
このような３次元コンピュータグラフィックスでは、各画素（ピクセル）に対応する色を決定するときに、各画素の色の値を計算し、この計算した色を示す画素データを生成し、当該画素データを用いてαブレンディング処理を行い、その処理結果である新たな画素データを、アドレス生成回路で生成したディスプレイバッファ（フレームバッファ）内の所定のアドレスに書き込むレンダリング(Rendering) 処理を行う。
【０００３】
【発明が解決しようとする課題】
ところで、上述したような３次元コンピュータグラフィックスでは、αブレンディング処理およびアドレス生成処理を高速化してシステム全体の処理速度を向上したいという要請がある。
【０００４】
本発明は上述した従来技術の問題点に鑑みてなされ、処理の高速化を図れる画像処理装置を提供することを目的とする。
【０００５】
【課題を解決するための手段】
本発明によれば、マトリクス状に配置された複数の画素の色をそれぞれ示す複数の画素データを含む表示データを記憶し、複数の前記画素データを同時に書き込み可能な記憶回路と、前記記憶回路に同時に書き込まれる複数の画素データのそれぞれに対応して設けられ、対応する前記画素データを書き込む前記記憶回路の記憶領域内のアドレスである書き込みアドレスをそれぞれ生成する複数のアドレス生成回路と、前記複数の画素データを、前記記憶領域内の前記書き込みアドレスにそれぞれ書き込む書き込み回路と、を有し、前記画素データは、前記色を示す色データと、対応する画素の２次元上のｘ方向およびｙ方向の位置をそれぞれ示す第１の位置データおよび第２の位置データとを含み、前記アドレス生成回路は、前記第２の位置データと、前記記憶領域のｘ方向の幅に応じた幅データとを乗算する乗算回路と、前記第１の位置データと、前記乗算回路の乗算結果とを加算して前記書き込みアドレスを生成する加算回路と、を有し、前記乗算回路および前記加算回路は、画像処理装置の少なくとも一部の回路の機能をハードウェア記述言語を用いて記述した回路パターン生成用データに基づいて、前記少なくとも一部の回路の回路パターンを自動生成した際に、前記回路パターン生成用データにおいて同一のマクロセル内にその機能が記述されている、
画像処理装置が提供される。
【０００６】
好ましくは、前記画素データは、さらに３次元表示処理を行う際に用いられる奥行きデータとを含み、前記アドレス生成回路は、前記乗算回路として第１の乗算回路および第２の乗算回路を含み、前記加算回路として第１の加算回路および第２の加算回路を含み、前記第１の乗算回路は、前記第２の位置データと、前記幅データとを乗算し、前記第１の加算回路は、前記第１の位置データと、前記第１の乗算回路の乗算結果と、色データを記憶する領域として前記記憶領域内に予め決められた第１の記憶領域の先頭アドレスを示す第１のアドレスデータとを加算して前記色データについての前記書き込みアドレスを生成し、前記第２の乗算回路は、前記第２の位置データと、前記幅データとを乗算し、前記第２の加算回路は、前記第１の位置データと、前記第２の乗算回路の乗算結果と、前記奥行きデータを記憶する領域として前記記憶領域内に予め決められた第２の記憶領域の先頭アドレスを示す第２のアドレスデータとを加算して前記奥行きデータについての前記書き込みアドレスを生成する。
【０００７】
また好ましくは、前記第１および第２乗算回路および前記第１および第２の加算回路は、前記画像処理装置の少なくとも一部の回路の機能をハードウェア記述言語を用いて記述した回路パターン生成用データに基づいて、前記少なくとも一部の回路の回路パターンを自動生成した際に、前記回路パターン生成用データに
おいて同一のマクロセル内にその機能が記述されている。
【０００８】
また本発明によれば、マトリクス状に配置された複数の画素の色をそれぞれ示す複数の第１の画素データを含む表示データを記憶し、複数の前記第１の画素データを同時に書き込み可能な記憶回路と、前記同時に書き込まれる前記複数の第１の画素データのそれぞれに対応して設けられ、対応する第２の画素データが示す色と書き込みアドレスで指し示された前記記憶回路の記憶領域に既に記憶されている第３の画素データが示す色とを所定の混合比で混合して新たな色を生成するための色混合処理を、前記第２の画素データおよび前記第３の画素データを用いて行って前記新たな色を示す前記第１の画素データを生成する複数の画素データ生成回路と、前記生成された複数の第１の画素データを前記記憶回路の記憶領域に同時に書き込む書き込み回路と、を有し、前記第１の画素データ、前記第２の画素データおよび前記第３の画素データは、複数の色データを含み、当該複数の色データが示す値を組み合わせて色を示し、前記画素データ生成回路は、前記複数の色データのそれぞれに対応して設けられ、対応する前記第２の画素データの前記対応する色データが示す色と前記書き込みアドレスで指し示された前記記憶回路の記憶領域に既に記憶されている第３の画素データの前記対応する色データが示す色とを所定の混合比で混合して新たな色を生成するための色混合処理を、前記第２の画素データおよび前記第３の画素データの前記対応する色データを用いて行って前記新たな色を示す前記第１の画素データの前記対応する色データを生成する複数の色データ生成回路を有し、前記画素データ生成回路は、前記第２の画素データの前記対応する色データおよび前記第３の画素データの前記対応する色データとを用いて減算を行う減算回路と、前記減算回路の減算結果と前記混合比を示す混合比データとを乗算する乗算回路と、を有し、前記画素データ生成回路の前記減算回路および前記乗算回路は、画像処理装置の少なくとも一部の回路の機能をハードウェア記述言語を用いて記述した回路パターン生成用データに基づいて、前記少なくとも一部の回路の回路パターンを自動生成した際に、前記回路パターン生成用データにおいて同一のマクロセル内にその機能が記述されている、
画像処理装置が提供される。
【０００９】
好ましくは、前記画素データ生成回路は、ディザデータと前記第２の画素データの前記対応する色データまたは前記第３の画素データの前記対応する色データとを加算する第１の加算回路と、前記乗算回路の乗算結果と、前記第１の加算回路の加算結果とを加算する第２の加算回路とをさらに有する。
【００１０】
また好ましくは、前記複数の色データ生成回路は、前記画像処理装置の少なくとも一部の回路の機能をハードウェア記述言語を用いて記述した回路パターン生成用データに基づいて、前記少なくとも一部の回路の回路パターンを自動生成した際に、前記回路パターン生成用データにおいて同一のマクロセル内にその機能が記述されている。
【００１１】
本発明によれば、立体モデルを複数の単位図形を組み合わせて表現し、表示装置のマトリクス状に配置された画素毎に色を示す画素データを生成する画像処理装置において、前記単位図形の頂点について、Ｒ（赤），Ｇ（緑），Ｂ（青）データを含むポリゴンレンダリングデータを生成するポリゴンレンダリングデータ
生成回路と、前記単位図形の頂点のポリゴンレンダリングデータを補間して、前記
単位図形内に位置する画素の画素データを生成するデータ補間回路と、複数の前記画素データの前記Ｒ，Ｇ，Ｂデータを含む表示データを記憶し、複数の前記画素データの前記Ｒ，Ｇ，Ｂデータを同時に書き込み可能な記憶回路と、前記記憶回路に同時に書き込まれる前記複数の画素データのそれぞれに対応して設けられ、対応する前記画素データの前記Ｒ，Ｇ，Ｂデータを書き込む前記記憶回路の記憶領域内のアドレスである書き込みアドレスをそれぞれ生成する複数のアドレス生成回路と、前記複数の画素データの前記Ｒ，Ｇ，Ｂデータを、前記記憶領域内の前記書き込みアドレスにそれぞれ書き込む書き込み回路とを有し、
前記ポリゴンレンダリングデータ生成回路は、前記単位図形の頂点のそれぞれについて、当該頂点の２次元座標を示すｘ，ｙデータをさらに含む前記ポリゴンレンダリングデータを生成し、
前記アドレス生成回路は、前記ｙデータと、前記記憶領域のｘ方向の幅に応じた幅データとを乗算する乗算回路と、前記ｘデータと、前記乗算回路の乗算結果とを加算して前記書き込みアドレスを生成する加算回路とを有し、
前記乗算回路および前記加算回路は、前記画像処理装置の少なくとも一部の回路の機能をハードウェア記述言語を用いて記述した回路パターン生成用データに基づいて、前記少なくとも一部の回路の回路パターンを自動生成した際に、前記
回路パターン生成用データにおいて同一のマクロセル内にその機能が記述されてい
る、
画像処理装置が提供される。
【００１２】
好ましくは、前記ポリゴンレンダリングデータ生成回路は、前記単位図形の頂点について、奥行きを示すｚデータをさらに含む前記ポリゴンレンダリングデータを生成し、前記アドレス生成回路は、前記乗算回路として第１の乗算回路および第２の乗算回路を含み、前記加算回路として第１の加算回路および第２の加算回路を含み、前記第１の乗算回路は、前記ｙデータと、前記幅データとを乗算し、前記第１の加算回路は、前記ｘデータと、前記第１の乗算回路の乗算結果と、前記Ｒ，Ｇ，Ｂデータを記憶する領域として前記記憶領域内に予め決められた第１の記憶領域の先頭アドレスを示す第１のアドレスデータとを加算して前記Ｒ，Ｇ，Ｂデータについての前記書き込みアドレスを生成し、前記第２の乗算回路は、前記ｙデータと、前記幅データとを乗算し、前記第２の加算回路は、前記ｘデータと、前記第２の乗算回路の乗算結果と、前記ｚデータを記憶する領域として前記記憶領域内に予め決められた第２の記憶領域の先頭アドレスを示す第２のアドレスデータとを加算して前記ｚデータについての前記書き込みアドレスを生成する。
【００１３】
好ましくは、前記第１および第２乗算回路および前記第１および第２の加算回路は、前記画像処理装置の少なくとも一部の回路の機能をハードウェア記述言語を用いて記述した回路パターン生成用データに基づいて、前記少なくとも一部の回路の回路パターンを自動生成した際に、前記回路パターン生成用データにおい
て同一のマクロセル内にその機能が記述されている。
【００１４】
本発明によれば、立体モデルを複数の単位図形を組み合わせて表現し、表示装置のマトリクス状に配置された画素毎に色を示す画素データを生成する画像処理装置において、前記単位図形の頂点のそれぞれについて、当該頂点のＲ（赤），Ｇ（緑），Ｂ（青）データを含むポリゴンレンダリングデータを生成するポリゴンレンダリングデータ生成回路と、前記単位図形の頂点のポリゴンレンダリングデータを補間して、前記単位図形内に位置する画素の第１の画素データを生成するデータ補間回路と、複数の第２の画素データを含む表示データを記憶し、複数の前記第２の画素データを同時に書き込み可能な記憶回路と、前記同時に書き込まれる複数の第２の画素データのそれぞれに対応して設けられ、前記第１の画素データが示す色と書き込みアドレスで指し示された前記記憶回路の記憶領域に既に記憶されている第３の画素データが示す色とを所定の混合比で混合して新たな色を生成するための色混合処理を、前記第１の画素データおよび前記第３の画素データを用いて行って前記新たな色を示す前記第２の画素データを生成する画素データ生成回路と、前記生成された複数の第２の画素データを前記記憶回路の記憶領域に同時に書き込む書き込み回路と、を有し、前記第１の画素データ、前記第２の画素データおよび前記第３の画素データは、複数の色データを含み、当該複数の色データが示す値を組み合わせて色を示し、前記画素データ生成回路は、前記複数の色データのそれぞれに対応して設けられ、対応する前記第１の画素データの前記対応する色データが示す色と前記書き込みアドレスで指し示された前記記憶回路の記憶領域に既に記憶されている第３の画素データの前記対応する色データが示す色とを所定の混合比で混合して新たな色を生成するための色混合処理を、前記第１の画素データおよび前記第３の画素データの前記対応する色データを用いて行って前記新たな色を示す前記第２の画素データの前記対応する色データを生成する複数の色データ生成回路を有し、前記画素データ生成回路は、前記第１の画素データの前記対応する色データおよび前記第３の画素データの前記対応する色データとを用いて減算を行う減算回路と、前記減算回路の減算結果と前記混合比を示す混合比データとを乗算する乗算回路と、を有し、前記画素データ生成回路の前記減算回路および前記乗算回路は、前記画像処理装置の少なくとも一部の回路の機能をハードウェア記述言語を用いて記述した回路パターン生成用データに基づいて、前記少なくとも一部の回路の回路パターンを自動生成した際に、前記回路パターン生成用データにおいて同一のマクロセル内にその機能が記述されている、
画像処理装置が提供される。
【００１９】
【発明の実施の形態】
以下、本実施形態においては、パーソナルコンピュータなどに適用される、任意の３次元物体モデルに対する所望の３次元画像をＣＲＴ(Cathode Ray Tube)などのディスプレイ上に高速に表示する３次元コンピュータグラフィックスシステムについて説明する。
【００２０】
図１は、本実施形態の３次元コンピュータグラフィックスシステム１０のシステム構成図である。
【００２１】
３次元コンピュータグラフィックスシステム１０は、立体モデルを単位図形である三角形（ポリゴン）の組み合わせとして表現し、このポリゴンを描画することでディスプレイ装置の表示画面の各画素の色を決定し、ディスプレイ装置に表示するポリゴンレンダリング処理を行うシステムである。
また、３次元コンピュータグラフィックスシステム１０では、平面上の位置を表現する（ｘ，ｙ）座標の他に、奥行きを表すｚ座標を用いて３次元物体を表し、この（ｘ，ｙ，ｚ）の３つの座標で３次元空間の任意の一点を特定する。
【００２２】
図１に示すように、３次元コンピュータグラフィックスシステム１０は、メインプロセッサ１１、メインメモリ１２、Ｉ／Ｏインタフェース回路１３、およびレンダリング回路１４が、メインバス１５を介して接続されている。
以下、各構成要素の機能について説明する。
【００２３】
メインプロセッサ１１は、たとえば、グラフィック処理に係わるアプリケーションの進行状況などに応じて、メインメモリ１２から必要なグラフィックデータを読み出し、このグラフィックデータに対してクリッピング(Clipping)処理、ライティング(Lighting)処理などのジオメトリ(Geometry)処理などを行い、レンダリング回路１４においてポリゴンレンダリング処理を行う対象のポリゴンレンダリングデータＳ１１を生成する。メインプロセッサ１１は、ポリゴンレンダリングデータＳ１１をメインバス１５を介してレンダリング回路１４に出力する。
【００２４】
Ｉ／Ｏインタフェース回路１３は、必要に応じて、３次元コンピュータグラフィックスシステム１０の外部から動きの制御情報またはポリゴンレンダリングデータなどを入力し、これをメインバス１５を介してレンダリング回路１４に出力する。
【００２５】
ここで、ポリゴンレンダリングデータは、ポリゴンの各３頂点の（ｘ，ｙ，ｚ，Ｒ，Ｇ，Ｂ，α，ｓ，ｔ，ｑ）のデータを含んでいる。
ここで、（ｘ，ｙ，ｚ）データは、ポリゴンの頂点の３次元座標を示し、（Ｒ，Ｇ，Ｂ，α）データは、それぞれ当該３次元座標における赤（Ｒ）の輝度値、緑（Ｇ）の輝度値、青（Ｂ）の輝度値、並びにαブレンディング処理を行う際の混合値αを示している。
（ｓ，ｔ，ｑ）データのうち、（ｓ，ｔ）は、対応するテクスチャの同次座標を示しており、ｑは同次項を示している。ここで、レンダリング回路１４内のテクスチャエンジン回路１４３において、「ｓ／ｑ」および「ｔ／ｑ」を演算し、得られた「ｓ／ｑ」および「ｔ／ｑ」に、それぞれテクスチャサイズＵＳＩＺＥおよびＶＳＩＺＥを乗じてテクスチャ座標データ（ｕ，ｖ）が得られる。レンダリング回路１４内のダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）１７０内のテクスチャバッファ１４７ａに記憶されたテクスチャデータへのアクセスは、テクスチャ座標データ（ｕ，ｖ）を用いて行われる。
すなわち、ポリゴンレンダリングデータは、三角形の各頂点の物理座標値（ｘ，ｙ，ｚ）と、それぞれの頂点の色（Ｒ，Ｇ，Ｂ，α）とテクスチャデータ（ｓ，ｔ，ｑ）である。
【００２６】
以下、レンダリング回路１４について詳細に説明する。
図１に示すように、レンダリング回路１４は、ＤＤＡ(Digital Differential
Analyser) セットアップ回路１４１、トライアングルＤＤＡ回路１４２、テクスチャエンジン回路１４３、メモリインタフェース（Ｉ／Ｆ）回路１４４、ＣＲＴコントロール回路１４５、ＲＡＭＤＡＣ回路１４６、ＤＲＡＭ１４７およびＳＲＡＭ(Static RAM)１４８を有する。
本実施形態におけるレンダリング回路１４は、一つの半導体チップ内にロジック回路と少なくとも表示データとテクスチャデータとを記憶するＤＲＡＭ１４７とが混載されている。
【００２７】
ＤＲＡＭ１４７
ＤＲＡＭ１４７は、テクスチャバッファ１４７ａ、ディスプレイバッファ１４７ｂ、ｚバッファ１４７ｃおよびテクスチャＣＬＵＴ(Color Look Up Table) バッファ１４７ｄとして機能する。
【００２８】
また、ＤＲＡＭ１４７には、より多くのテクスチャデ−タを格納するために、インデックスカラ−におけるインデックスと、そのためのカラ−ルックアップテ−ブル値が、テクスチャＣＬＵＴバッファ１４７ｄに格納されている。
インデックスおよびカラ−ルックアップテ−ブル値は、テクスチャエンジン回路１４３におけるテクスチャ処理に使われる。すなわち、通常はＲ，Ｇ，Ｂそれぞれ８ビットの合計２４ビットでテクスチャ要素を表現するが、それではデ−タ量が膨らむため、あらかじめ選んでおいた、たとえば、２５６色等の中から一つの色を選んで、そのデ−タをテクスチャ処理に使う。このことで２５６色であればそれぞれのテクスチャ要素は８ビットで表現できることになる。インデックスから実際のカラ−への変換テ−ブルは必要になるが、テクスチャの解像度が高くなるほど、よりコンパクトなテクスチャデ−タとすることが可能となる。
これにより、テクスチャデ−タの圧縮が可能となり、レンダリング回路１４に内蔵したＤＲＡＭ１４７の効率良い利用が可能となる。
【００２９】
さらにＤＲＡＭ１４７には、描画と同時並行的に隠れ面処理を行うため、描画しようとしている物体の奥行き情報が格納されている。
なお、表示データと奥行きデータおよびテクスチャデータのＤＲＡＭ１４７への格納方法としては、図３を参照して後述するように、メモリブロックの先頭から連続して表示データが格納され（ディスプレイバッファ１４７ｂ）、次に奥行きデータが格納され（ｚバッファ１４７ｃ）、残りの空いた領域に、テクスチャの種類毎に連続したアドレス空間でテクスチャデータが格納される（テクスチャバッファ１４７ａ）。これにより、テクスチャデータを効率よく格納できることになる。
【００３０】
図２は、ＤＲＡＭ１４７、ＳＲＡＭ１４８、並びに、ＤＲＡＭ１４７およびＳＲＡＭ１４８へアクセスするメモリＩ／Ｆ回路１４４の具体的な構成例を示すブロック図である。
【００３１】
図２に示すように、図１に示すＤＲＡＭ１４７およびＳＲＡＭ１４８は、前述したように４個のメモリモジュール２００，２１０，２２０，２３０に分割されている。
【００３２】
メモリモジュール２００は、メモリチップ２０１，２０２を有する。
メモリチップ２０１は、ＤＲＡＭ１４７の一部を構成するバンク２０１Ａ，２０１Ｂと、ＳＲＡＭ１４８の一部を構成するバンク２０１Ｃ，２０１Ｄとを有する。
また、メモリチップ２０２は、ＤＲＡＭ１４７の一部を構成するバンク２０２Ａ，２０２Ｂと、ＳＲＡＭ１４８の一部を構成するバンク２０２Ｃ，２０２Ｄとを有する。
なお、ＳＲＡＭ１４８を構成するバンク２０１Ｃ，２０１Ｄ，２０２Ｃ，２０２Ｄに対しては同時アクセスが可能である。
【００３３】
メモリモジュール２１０は、メモリチップ２１１，２１２を有する。
メモリチップ２１１は、ＤＲＡＭ１４７の一部を構成するバンク２１１Ａ，２１１Ｂと、ＳＲＡＭ１４８の一部を構成するバンク２１１Ｃ，２１１Ｄとを有する。
また、メモリチップ２１２は、ＤＲＡＭ１４７の一部を構成するバンク２１２Ａ，２１２Ｂと、ＳＲＡＭ１４８の一部を構成するバンク２１２Ｃ，２１２Ｄとを有する。
なお、ＳＲＡＭ１４８を構成するバンク２１１Ｃ，２１１Ｄ，２１２Ｃ，２１２Ｄに対しては同時アクセスが可能である。
【００３４】
メモリモジュール２２０は、メモリチップ２２１，２２２を有する。
メモリチップ２２１は、ＤＲＡＭ１４７の一部を構成するバンク２２１Ａ，２２１Ｂと、ＳＲＡＭ１４８の一部を構成するバンク２２１Ｃ，２２１Ｄとを有する。
また、メモリチップ２２２は、ＤＲＡＭ１４７の一部を構成するバンク２２２Ａ，２２２Ｂと、ＳＲＡＭ１４８の一部を構成するバンク２２２Ｃ，２２２Ｄとを有する。
なお、ＳＲＡＭ１４８を構成するバンク２２１Ｃ，２２１Ｄ，２２２Ｃ，２２２Ｄに対しては同時アクセスが可能である。
【００３５】
メモリモジュール２３０は、メモリチップ２３１，２３２を有する。
メモリチップ２３１は、ＤＲＡＭ１４７の一部を構成するバンク２３１Ａ，２３１Ｂと、ＳＲＡＭ１４８の一部を構成するバンク２３１Ｃ，２３１Ｄとを有する。
また、メモリチップ２３２は、ＤＲＡＭ１４７の一部を構成するバンク２３２Ａ，２３２Ｂと、ＳＲＡＭ１４８の一部を構成するバンク２３２Ｃ，２３２Ｄとを有する。
なお、ＳＲＡＭ１４８を構成するバンク２３１Ｃ，２３１Ｄ，２３２Ｃ，２３２Ｄに対しては同時アクセスが可能である。
【００３６】
ここで、メモリモジュール２００，２１０，２２０，２３０の各々は、図１に示すテクスチャバッファ１４７ａ、ディスプレイバッファ１４７ｂ、Ｚバッファ１４７ｃおよびテクスチャＣＬＵＴバッファ１４７ｄの全ての機能を持つ。
すなわち、メモリモジュール２００，２１０，２２０，２３０の各々は、対応する画素のテクスチャデータ、描画データ（（Ｒ，Ｇ，Ｂ，α）データ）、ｚデータおよびテクスチャカラールックアップテーブルデータの全てを記憶する。
ただし、メモリモジュール２００，２１０，２２０，２３０は、それぞれ、後述するディストリビュータ３００（図２）でテクスチャエンジン回路１４３の出力信号である画素データＳ１４３を分配した、相互で異なる画素についてのデータを記憶する。
ここで、同時に処理される１６画素についてのテクスチャデータ、描画データ、ｚデータおよびテクスチャカラールックアップテーブルデータが、相互に異なる１６個のバンク２０１Ａ，２０１Ｂ，２０２Ａ，２０２Ｂ，２１１Ａ，２１１Ｂ，２１２Ａ，２１２Ｂ，２２１Ａ，２２１Ｂ，２２２Ａ，２２２Ｂ，２３１Ａ，２３１Ｂ，２３２Ａ，２３２Ｂに記憶される。
これにより、Ｉ／Ｆ回路１４４は、ＤＲＡＭ１４７に対して、たとえば２×８画素の１６画素についてのデータが同時にアクセス可能になる。
なお、Ｉ／Ｆ回路１４４は、後述するように、いわゆる所定のインターリーブ方式のアドレッシングに基づいてＤＲＡＭ１４７へのアクセス（書き込み）を行う。
【００３７】
なお、ＳＲＡＭ１４８の一部を構成する、バンク２０１Ｃ，２０１Ｄ，２０２Ｃ，２０２Ｄ，２１１Ｃ，２１１Ｄ，２１２Ｃ，２１２Ｄ，２２１Ｃ，２２１Ｄ，２２２Ｃ，２２２Ｄ，２３１Ｃ，２３１Ｄ，２３２Ｃ，２３２Ｄには、それぞれ、ＤＲＡＭ１４７の一部を構成するバンク２０１Ａ，２０１Ｂ，２０２Ａ，２０２Ｂ，２１１Ａ，２１１Ｂ，２１２Ａ，２１２Ｂ，２２１Ａ，２２１Ｂ，２２２Ａ，２２２Ｂ，２３１Ａ，２３１Ｂ，２３２Ａ，２３２Ｂに記憶されているテクスチャデータが記憶される。
【００３８】
テクスチャバッファ１４７ａには、同時にアクセスが行われる画素データからなる単位ブロックが、一次元のアドレス空間で連続したアドレスを持つように記憶される。
【００３９】
以下、ＤＲＡＭ１４７の機能を説明する。
ＤＲＡＭ１４７の記憶領域は、例えば、１Ｍワード（１ワード＝３２ビット）の記憶容量を持ち、図３に示すように、ディスプレイバッファ１４７ｂ、Ｚバッファ１４７ｃ、テクスチャバッファ１４７ａとして使用される。
なお、ＤＲＡＭ１４７には、図３には図示しないが、テクスチャカラーのモードがインダイレクト（間接）モードのときに使用されるカラールックアップテーブル（ＣＬＵＴ）のデータを記憶することができる。
【００４０】
また、ＤＲＡＭ１４７は、図４に示すように、それぞれ２ｋ（ｋ＝１０２４）ワードのページ（ロウ）と呼ばれる５１２個の領域から構成される。さらに、１ページは、６４ワードのブロックと呼ばれる領域を３２個集めて構成され、ディスプレイバッファ１４７ａやＺバッファ１４７ｃはページ単位でバッファを構成するのに対して、テクスチャバッファ１４７ｂはさらに細かいブロック単位でバッファを構成することができる。従って、ベースポインタ（図８を参照して後述）は、ディスプレイバッファ１４７ａおよびＺバッファ１４７ｃは２ｋワードのページ単位で設定するのに対して、テクスチャバッファ１４７ａは６４ワードのブロック単位で設定することができる。
【００４１】
以下、ページ、ブロックおよびカラムの概念についてメモリモジュール２００を用いて説明する。
図５，図６および図７に示すように、ＤＲＡＭ１４７の記憶領域において、２×８画素（ピクセル）の領域でアクセスされたデータは、ページ（ロウ）、ブロックおよびカラムと呼ばれる領域に格納される。
各ロウＲＯＷ０〜ＲＯＷn+1 は、図５に示すように、それぞれ４個の領域Ｍ０Ａ，Ｍ０Ｂ，Ｍ１Ａ，Ｍ１Ｂに区分けされている。
領域Ｍ０Ａ，Ｍ０Ｂは、例えば、それぞれ図２に示すメモリモジュール２００のメモリチップ２０１のバンク２０１Ａ，２０１Ｂの記憶領域に対応している。領域Ｍ１Ａ，Ｍ１Ｂは、例えば、それぞれ図２に示すメモリモジュール２００のメモリチップ２０２のバンク２０２Ａ，２０２Ｂの記憶領域に対応している。
【００４２】
そして、ｘ方向について、１メモリバンクに記憶される、８画素毎のバウンダリ、かつｙ方向について偶数のバウンダリでの領域でアクセス（書き込み、読み出し）が行われる。
これにより、たとえば、ロウＲＯＷ０とロウＲＯＷ１をまたぐような領域へのアクセスが行われることがなく、いわゆるページ違反が発生することがない。
【００４３】
また、３２ピクセル（画素）格納モードでは、図７に示すように、領域Ｍ０Ａ，Ｍ０Ｂ，Ｍ１Ａ，Ｍ１Ｂは、それぞれ、図７に示すように、３２個のカラムから構成される。
【００４４】
ＤＤＡセットアップ回路１４１
ＤＤＡセットアップ回路１４１は、後段のトライアングルＤＤＡ回路１４２において物理座標系上の三角形の各頂点の値を線形補間処理して、三角形の内部の各画素の色と深さ情報を求めるのに先立ち、ポリゴンレンダリングデータＳ１１が示す（ｚ，Ｒ，Ｇ，Ｂ，α，ｓ，ｔ，ｑ）データについて、三角形の辺と水平方向の差分などを求めるセットアップ演算を行う。
このセットアップ演算は、具体的には、開始点の値と終点の値と、開始点と終点との距離を用いて、単位長さ移動した場合における、求めようとしている値の変分（差分）を算出する。
ＤＤＡセットアップ回路１４１は、算出した変分データＳ１４１をトライアングルＤＤＡ回路１４２に出力する。
【００４５】
トライアングルＤＤＡ回路１４２
トライアングルＤＤＡ回路１４２は、ＤＤＡセットアップ回路１４１から入力した変分データＳ１４１を用いて、三角形内部の各画素における線形補間された（ｚ，Ｒ，Ｇ，Ｂ，α，ｓ，ｔ，ｑ）データを算出する。
トライアングルＤＤＡ回路１１は、各画素の（ｘ，ｙ）データと、当該（ｘ，ｙ）座標における（ｚ，Ｒ，Ｇ，Ｂ，α，ｓ，ｔ，ｑ）データとを、ＤＤＡデータ（補間データ）Ｓ１４２としてテクスチャエンジン回路１４３に出力する。
たとえば、トライアングルＤＤＡ回路１４２は、並行して処理を行う矩形内に位置する８（＝２×４）画素分のＤＤＡデータＳ１４２をテクスチャエンジン回路１４３に出力する。
【００４６】
テクスチャエンジン回路１４３
テクスチャエンジン回路１４３は、「ｓ／ｑ」および「ｔ／ｑ」の算出処理、テクスチャ座標データ（ｕ，ｖ）の算出処理、テクスチャバッファ１４７ａからの（Ｒ，Ｇ，Ｂ）データの読み出し処理等をパイプライン方式で行う。
なお、テクスチャエンジン回路１４３は、たとえば所定の矩形内に位置する８画素についての処理を同時に並行して行う。
【００４７】
テクスチャエンジン回路１４３は、ＤＤＡデータＳ１４２が示す（ｓ，ｔ，ｑ）データについて、ｓデータをｑデータで除算する演算と、ｔデータをｑデータで除算する演算とを行う。
テクスチャエンジン回路１４３には、たとえば図示しない除算回路が８個設けられており、８画素についての除算「ｓ／ｑ」および「ｔ／ｑ」が同時に行われる。
【００４８】
また、テクスチャエンジン回路１４３は、除算結果である「ｓ／ｑ」および「ｔ／ｑ」に、それぞれテクスチャサイズＵＳＩＺＥおよびＶＳＩＺＥを乗じて、テクスチャ座標データ（ｕ，ｖ）を生成する。
また、テクスチャエンジン回路１４３は、メモリＩ／Ｆ回路１４４を介して、ＳＲＡＭ１４８あるいはＤＲＡＭ１４７に、生成したテクスチャ座標データ（ｕ，ｖ）を含む読み出し要求を出力し、メモリＩ／Ｆ回路１４４を介して、ＳＲＡＭ１４８あるいはテクスチャバッファ１４７ａに記憶されているテクスチャデータを読み出すことで、（ｓ，ｔ）データに対応したテクスチャバッファ１４７ａ（ＳＲＡＭ１４８）のテクスチャアドレスに記憶された（Ｒ，Ｇ，Ｂ）データＳ１４８を得る。
ここで、ＳＲＡＭ１４８には、テクスチャバッファ１４７ａに格納されているテクスチャデータが記憶される。
テクスチャエンジン回路１４３は、ＳＲＡＭ１４８から読み出した（Ｒ，Ｇ，Ｂ）データＳ１４８の（Ｒ148 ，Ｇ148 ，Ｂ148 ）データと、前段のトライアングルＤＤＡ回路１４２からのＤＤＡデータＳ１４２に含まれる（Ｒ142 ，Ｇ142 ，Ｂ142 ）データとを、それぞれ掛け合わせるなどして新たな（Ｒ143 ，Ｇ143 ，Ｂ143 ）データを生成し、この生成した（Ｒ143 ，Ｇ143 ，Ｂ143 ）データと、ＤＤＡデータＳ１４２に含まれる（ｘ，ｙ，ｚ，α）データとを格納した画素データＳ１４３を生成する。
テクスチャエンジン回路１４３は、この画素データＳ１４３をメモリＩ／Ｆ回路１４４に出力する。
【００４９】
なお、テクスチャバッファ１４７ａには、ＭＩＰＭＡＰ（複数解像度テクスチャ）などの複数の縮小率に対応したテクスチャデータが記憶されている。ここで、何れの縮小率のテクスチャデータを用いるかは、所定のアルゴリズムを用いて、前記三角形単位で決定される。
【００５０】
テクスチャエンジン回路１４３は、フルカラー方式の場合には、テクスチャバッファ１４７ａから読み出した（Ｒ147 ，Ｇ147 ，Ｂ147 ）データを直接用いる。
一方、テクスチャエンジン回路１４３は、インデックスカラー方式の場合には、あらかじめ作成したカラールックアップテーブル（ＣＬＵＴ）をテクスチャＣＬＵＴバッファ１４７ｄから読み出して、テクスチャエンジン回路１４３に内蔵する図示しないＳＲＡＭに転送および記憶し、このカラールックアップテーブルを用いて、テクスチャバッファ１４７ａから読み出したカラーインデックスに対応する（Ｒ，Ｇ，Ｂ）データを得る。
【００５１】
メモリＩ／Ｆ回路１４４
メモリＩ／Ｆ回路１４４は、テクスチャエンジン回路１４３から入力した画素データＳ１４３に格納されたｚデータと、ｚバッファ１４７ｃに記憶されているｚデータとの比較を行い、入力した画素データＳ１４３によって描画される画像が、前回、ディスプレイバッファ１４７ｂに書き込まれた画像より、手前（視点側）に位置するか否かを判断し、手前に位置する場合には、画素データＳ１４３に対応するｚデータでｚバッファ１４７ｃに記憶されたｚデータを更新する。
また、メモリＩ／Ｆ回路１４４は、画素データＳ１４３に格納された（Ｒ143 ，Ｇ143 ，Ｂ143 ）データを、必要に応じてαブレンディング処理を行った後に、ディスプレイバッファ１４７ｂに書き込む。
さらに、メモリＩ／Ｆ回路１４４は、テクスチャエンジン回路１４３からのＳＲＡＭ１４８に、生成されたテクスチャ座標データ（ｕ，ｖ）を含む読み出し要求を受けた場合には、ＳＲＡＭ１４８に記憶された（Ｒ148 ，Ｇ148 ，Ｂ148 ）データＳ１４８を読み出す。
また、メモリＩ／Ｆ回路１４４は、ＣＲＴコントロール回路１４５から表示データを読み出す要求を受けた場合には、この要求に応じて、ディスプレイバッファ１４７ｂから一定の固まり、たとえば８画素あるいは１６画素単位で表示データを読み出す。
【００５２】
このように、メモリＩ／Ｆ回路１４４は、ＤＲＡＭ１４７およびＳＲＡＭ１４８へのアクセス（書き込みまたは読み出し）を行うが、書き込み経路と読み出し経路とが別経路として構成されている。
すなわち、書き込みの場合には書き込みアドレスＡＤＲＷと書き込みデータＤＴＷがメモリＩ／Ｆ回路１４４の書き込み系回路で処理されてＤＲＡＭ１４７に書き込み、読み出しの場合にはメモリＩ／Ｆ回路１４４の読み出し系回路で処理されてＤＲＡＭ１４７またはＳＲＡＭ１４８から読み出す。
そして、メモリＩ／Ｆ回路１４４は、所定のインターリーブ方式のアドレッシ
ングに基づいてＤＲＡＭ１４７へのアクセスを、たとえば１６画素単位で行う。
【００５３】
以下に、メモリＩ／Ｆ回路１４４の具体的な構成例について、図２に関連付けて説明する。
【００５４】
メモリＩ／Ｆ回路１４４は、図２に示すように、ディストリビュータ３００、アドレスコンバータ３１０，３２０，３３０，３４０、メモリコントローラ３５０，３６０，３７０，３８０および読み出しコントローラ３９０を有する。
【００５５】
〔ディストリビュータ３００〕
ディストリビュータ３００は、ＤＲＡＭ１４７に対して、たとえば２×８画素の１６画素についてのデータが同時にアクセス可能になるようにデータ分配処理を行う。
なお、本実施形態では、上述したように、ｘ方向について８画素毎のバウンダリ、かつｙ方向について偶数のバウンダリでの領域でアクセス（書き込み、読み出し）を行うようなアドレッシングとなるように、アドレス生成処理が行われる。
【００５６】
ディストリビュータ３００は、書き込み時に、図１に示すテクスチャエンジン回路１４３から、１６画素分の（Ｒ143 ，Ｇ143 ，Ｂ143 ，α，ｚ）データからなるデータＤＴＷと、（ｘ，ｙ）データからなるアドレスＡＤＲＲＷとを格納した画素データＳ１４３を入力する。
そして、ディストリビュータ３００は、１６画素分のデータＤＴＷを、各々４画素分のデータからなる４つの画素データＳ３０１Ｄ，Ｓ３０２Ｄ，Ｓ３０３Ｄ，Ｓ３０４Ｄに分割し、これらをそれぞれアドレスコンバータ３１０，３２０，３３０，３４０に出力する。
また、ディストリビュータ３００は、１６画素分の書き込みアドレスＡＤＲＲＷを、各々４画素分の書き込みアドレスからなる４つの書き込みアドレスＳ３０１Ａ，Ｓ３０２Ａ，Ｓ３０３Ａ，Ｓ３０４Ａに分割し、これらをそれぞれアドレスコンバータ３１０，３２０，３３０，３４０に出力する。
ここで、１画素分の（Ｒ143 ，Ｇ143 ，Ｂ143 ，α）データに含まれるＲデータ、Ｇデータ、Ｂデータおよびαデータは各々８ビット（合計２４ビット）、ｚデータは３２ビットからなる。
【００５７】
〔アドレスコンバータ３１０，３２０，３３０，３４０〕
アドレスコンバータ３１０，３２０，３３０，３４０は、書き込み時に、ディストリビュータ３００から入力した（Ｒ，Ｇ，Ｂ，α）データおよびｚデータの書き込みアドレスＳ３０１Ａ，Ｓ３０２Ａ，Ｓ３０３Ａ，Ｓ３０４Ａを、それぞれメモリモジュール２００，２１０，２２０，２３０内のアドレスに変換するアドレス変換処理を行い、それによって得た書き込みアドレスＳ３１０，Ｓ３２０，Ｓ３３０，Ｓ３４０と、画素データＳ３０１Ｄ，Ｓ３０２Ｄ，Ｓ３０３Ｄ，Ｓ３０４Ｄとをそれぞれメモリコントローラ３５０，３６０，３７０，３８０に出力する。
ここで、アドレスコンバータ３１０，３２０，３３０，３４０におけるアドレス変換処理は基本的に同じであるため、以下、アドレスコンバータ３１０において、図６に示すように、３２個のブロックから１ページが構成される３２ピクセル格納モードを採用した場合を例示して説明する。
【００５８】
アドレスコンバータ３１０は、図８に図解のごとく、例えば、図２に示すディストリビュータ３００から入力した書き込みアドレスＳ３０１Ａに含まれるｘ〔１０：６〕データおよびｙ〔１０：５〕データと、所定の設定レジスタからのバッファ幅データｂｗおよびベースポインタｄｂｐ，ｚｂｐを用いて、チップセレクトデータｃｓ、バンクセレクタデータｂｓ、ディスプレイバッファ１４７ｂのロウアドレスｄｒｏｗおよびコラムアドレスｄｃｏｌ、並びにＺバッファ１４７ｃのロウアドレスｚｒｏｗおよびコラムアドレスｚｃｏｌを生成し、これらを含む書き込みアドレスＳ３１０をメモリコントローラ３５０に出力する。
【００５９】
ｘ〔１０：３〕データは、ｘデータの３〜１０ビット目の合計８ビットからなり、２次元上のｘ方向の位置を示し、ｘ〔１０：６〕データによって図５に示す記憶領域のｘ方向のアドレスを６４ワード単位で指定する。
また、ｙ〔１０：１〕は、ｙデータの１〜１０ビット目の合計１０ビットからなり、２次元上のｙ方向の位置を示し、ｙ〔１０：５〕データによって図５に示す記憶領域のｙ方向のアドレスを３２ワード単位で指定する。
また、バッファ幅データｂｗは、図５に示すＤＲＡＭ１４７の２次元の記憶領域のｘ方向の幅（ワード）を示している。
ディスプレイバッファ１４７ｂ用のベースポインタｄｂｐは、図３に示すＤＲＡＭ１４７の記憶領域のうちディスプレイバッファ１４７ｂとして使用される記憶領域の先頭アドレスを示している。
ｚバッファ１４７ｃ用のベースポインタｚｂｐは、図３に示すＤＲＡＭ１４７の記憶領域のうちＺバッファ１４７ｃとして使用される記憶領域の先頭アドレスを示している。
【００６０】
また、チップセレクトデータｃｓは、例えば、図２に示す、メモリモジュール２００のメモリチップ２０１，２０２のうち一方を選択するためのデータである。
バンクセレクタデータｂｓは、図２に示す各メモリチップにおいて、バンクＡ，Ｂのうち一方を選択するためのデータである。
ディスプレイバッファ１４７ｂのロウアドレスｄｒｏｗは、ＤＲＡＭ１４７内のページのベースポインタｄｂｐからのアドレスを示すデータである。
また、コラムアドレスｄｃｏｌは、ＤＲＡＭ１４７のディスプレイバッファ１４７ｂ内のロウアドレスｄｒｏｗによって指定されたページ内のコラムについてのロウアドレスｄｒｏｗからのアドレスを示すデータである。
Ｚバッファ１４７ｃのロウアドレスｚｒｏｗは、ＤＲＡＭ１４７のｚバッファ１４７ｃ内のページのベースポインタｚｂｐからのページアドレスを示すデータである。
また、コラムアドレスｚｃｏｌは、ＤＲＡＭ１４７のｚバッファ１４７ｃ内のロウアドレスｚｒｏｗによって指定されたページ内のコラムについてのロウアドレスｚｒｏｗからのアドレスを示すデータである。
【００６１】
以下、アドレスコンバータ３１０内の構成について説明する。
図８は、アドレスコンバータ３１０内に組み込まれた１画素分の書き込みアドレスを生成するアドレス生成ブロック４８０の構成図である。
アドレスコンバータ３１０は、４画素について同時処理を行うため、図８に示すアドレス生成ブロック４８０を４個内蔵している。
アドレスを生成するアドレス生成ブロック４８０が、本発明のアドレス生成回路に対応している。
【００６２】
図８に示すように、アドレス生成ブロック４８０は、乗算器５００，５０１および加算器５０２，５０３を有する。
ここで、乗算器５００および加算器５０２を用いて、ディストリビュータ３００で４分割された第１の分割データＳ３０１Ｄ内の画素データのディスプレイバッファ１４７ｂへの書き込みアドレスを算出し、乗算器５０１および加算器５０３を用いてデータＳ３０１Ｄ内のＺデータのＺバッファ１４７ｃへの書き込みアドレスを算出する。
【００６３】
本実施形態では、例えば、ＶＨＤＬ(Verilog Hardware Description Language) などのハードウェア記述言語を用いてメモリＩ／Ｆ回路１４４の機能を記述した回路パターン生成用データを作成し、当該回路パターン生成用データから回路パターンを自動生成する。このとき、回路パターン生成用データにおいて、図８に示す乗算器５００および加算器５０２を１つのマクロセル８００として扱い、乗算器５０１および加算器５０３を１つのマクロセル８０１として扱う。これにより、メモリＩ／Ｆ回路１４４内に組み込まれた複数のアドレス生成ブロック４８０の設計過程を共有できる共に、乗算器５００および加算器５０２、並びに乗算器５０１および加算器５０３を、それぞれ物理的に近接した位置に配置した回路構成を実現でき、回路動作を高速にできる。
【００６４】
乗算器５００は、アドレスデータｙ〔１０：１〕とバッファ幅データｂｗとを乗算し、その乗算結果Ｓ５００を加算器５０２に出力する。
加算器５０２は、乗算結果Ｓ５００と、アドレスデータ〔１０：３〕と、ベースポインタｄｂｐとを加算し、その加算結果を図２に示すアドレスＳ３１０に含めてメモリコントローラ３５１に出力する。このとき、加算器５０２から出力された加算結果内の所定ビットによって、ロウアドレスｄｒｏｗ、コラムアドレスｄｃｏｌ、バンクセレクトデータｂｓおよびチップセレクトデータｃｓが示されている。
【００６５】
また、乗算器５０１は、アドレスデータｙ〔１０：１〕とバッファ幅データｂｗとを乗算し、その乗算結果Ｓ５０１を加算器５０３に出力する。
加算器５０３は、乗算結果Ｓ５０１と、アドレスデータ〔１０：３〕と、ベースポインタｚｂｐとを加算し、その加算結果を図２に示すアドレスＳ３１０に含めてメモリコントローラ３５１に出力する。このとき、加算器５０３から出力された加算結果内の所定ビットによって、ロウアドレスｚｒｏｗおよびコラムアドレスｚｃｏｌが示されている。
【００６６】
上述したアドレス変換処理において、アドレス生成ブロック４８０は、以下式（１）〜（４）に基づいて、ロウアドレスｄｒｏｗ、コラムアドレスｄｃｏｌ、ロウアドレスｚｒｏｗおよびコラムアドレスｚｃｏｌの算出および生成を行っている。
【００６７】
【数１】
ｄｒｏｗ＝ｙ〔１０：５〕×ｂｗ＋ｘ〔１０：６〕＋ｄｂｐ    …（１）
【００６８】
【数２】
ｄｃｏｌ＝｛ｘ〔４〕，ｙ〔３〕，ｘ〔３〕，ｙ〔２：１〕｝  …（２）
【００６９】
【数３】
ｚｒｏｗ＝ｙ〔１０：５〕×ｂｗ＋ｘ〔１０：６〕＋ｚｂｐ    …（３）
【００７０】
【数４】
ｚｃｏｌ＝｛ｘ〔４〕，ｙ〔３〕，ｘ〔３〕，ｙ〔２：１〕｝  …（４）
【００７１】
〔メモリコントローラ３５０，３６０，３７０，３８０〕
メモリコントローラ３５０，３６０，３７０，３８０は、図２に図解したように、それぞれ書き込み系配線群４０１Ｗ，４０２Ｗ，４１１Ｗ，４１２Ｗ，４２１Ｗ，４２２Ｗ，４３１Ｗ，４３２Ｗ、並びに読み出し系配線群４０１Ｒ，４０２Ｒ，４１１Ｒ，４１２Ｒ，４２１Ｒ，４２２Ｒ，４３１Ｒ，４３２Ｒを介してメモリモジュール２００，２１０，２２０，２３０に接続されており、書き込み時および読み出し時にメモリモジュール２００，２１０，２２０，２３０に対してのアクセスを制御する。
【００７２】
具体的には、書き込み時には、メモリコントローラ３５０，３６０，３７０，３８０は、ディストリビュータ３００から出力され、アドレスコンバータ３５０，３６０，３７０，３８０から入力した４画素分の（Ｒ，Ｇ，Ｂ，α）データおよびｚデータを、書き込み系配線群４０１Ｗ，４０２Ｗ，４１１Ｗ，４１２Ｗ，４２１Ｗ，４２２Ｗ，４３１Ｗ，４３２Ｗを介してメモリモジュール２００，２１０，２２０，２３０に同時に書き込む。
このとき、たとえば、メモリモジュール２００では、前述したように、バンク２０１Ａ，２０１Ｂ，２０２Ａ，２０２Ｂの各々に、１画素分の（Ｒ，Ｇ，Ｂ，α）データおよびｚデータが記憶される。メモリモジュール２１０，２２０，２３０についても同じである。
【００７３】
また、各メモリコントローラ３５０，３６０，３７０，３８０は、自身のステートマシンがいわゆるアイドル（ＩＤＬＥ）状態にあるときに、アイドル信号Ｓ３５０，Ｓ３６０，Ｓ３７０，Ｓ３８０を読み出しコントローラ３９０にアクティブで出力し、このアイドル信号Ｓ３５０，Ｓ３６０，Ｓ３７０，Ｓ３８０に応答した読み出しコントローラ３９０による読み出しアドレスおよび読み出し要求信号Ｓ３９１を受けて、読み出し系配線群４０１Ｒ，４０２Ｒ，４１１Ｒ，４１２Ｒ，４２１Ｒ，４２２Ｒ，４３１Ｒ，４３２Ｒを介してデータの読み出しを行い、読み出し系配線群３５１，３６１，３７１，３８１、並びに配線群４４０を介して読み出しコントローラ３９０に出力する。
【００７４】
なお、本実施形態では、書き込み系配線群４０１Ｗ，４０２Ｗ，４１１Ｗ，４１２Ｗ，４２１Ｗ，４２２Ｗ，４３１Ｗ，４３２Ｗ、並びに読み出し系配線群４０１Ｒ，４０２Ｒ，４１１Ｒ，４１２Ｒ，４２１Ｒ，４２２Ｒ，４３１Ｒ，４３２Ｒの配線本数は１２８本（１２８ビット）、読み出し系配線群３５１，３６１，３７１，３８１の配線本数は２５６本（２５６ビット）、ならびに読み出し系配線群４４０の配線本数は１０２４本（１０２４ビット）である。
【００７５】
また、メモリコントローラ３５０，３６０，３７０，３８０は、それぞれアドレスコンバータ３１０，３２０，３３０，３４０から入力した画素データＳ３０１Ｄ，Ｓ３０２Ｄ，Ｓ３０３Ｄ，Ｓ３０４Ｄに含まれる４画素分の（Ｒ，Ｇ，Ｂ，α）データを、それぞれ書き込みアドレスＳ３１０，Ｓ３２０，Ｓ３３０，Ｓ３４０が指し示すＤＲＡＭ１４７内のアドレスに書き込む際に、各画素毎に、当該入力した（Ｒ，Ｇ，Ｂ）データと、当該指し示されたアドレスに既に記憶されている（Ｒ，Ｇ，Ｂ）データとをαデータによって示される混合比で混合して新たな（Ｒ，Ｇ，Ｂ）データを生成し、当該生成した（Ｒ，Ｇ，Ｂ）データと、当該入力したαデータとから構成される（Ｒ，Ｇ，Ｂ，α）データを当該指し示されたＤＲＡＭ１４７内のアドレスに書き込む、いわゆるαブレンディング処理を行う。
【００７６】
図９は、メモリコントローラ３５０内の１画素分のαブレンディング処理を行うαブレンディング処理ブロックの構成図である。
αブレンディング処理ブロック６００Ｒの詳細構成を図示した図９に示すように、メモリコントローラ３５０は、各画素毎にαブレンディング処理ブロック６００Ｒ，６００Ｇ，６００Ｂを有し、これらを４画素分有している。
αブレンディング処理ブロック６００Ｒ，６００Ｇ，６００Ｂが、それぞれ本発明の色データ生成回路に対応している。
αブレンディング処理ブロック６００Ｒ，６００Ｇ，６００Ｂは、それぞれＲデータ、ＧデータおよびＢデータについて処理を行う点を除いて同じである。
本実施形態では、例えば、ＶＨＤＬなどのハードウェア記述言語を用いてメモリＩ／Ｆ回路１４４の回路パターンを設計する際に、αブレンディング処理ブロック６００Ｒ，６００Ｇ，６００Ｂをそれぞれマクロセルとして扱う。これにより、メモリＩ／Ｆ回路１４４内に組み込まれたαブレンディング処理ブロック６００Ｒ，６００Ｇ，６００Ｂの設計過程を共有できる共に、αブレンディング処理ブロック６００Ｒ，６００Ｇ，６００Ｂの各々において構成要素を物理的に近接した位置に配置でき、回路動作を高速にできる。
なお、例えば、αブレンディング処理ブロック６００Ｒ，６００Ｇ，６００Ｂを１つのマクロセルとして扱って設計を行ってもよい。
【００７７】
図９において、ソースデータＳはアドレスコンバータ３１０から入力した１画素分の（Ｒ，Ｇ，Ｂ，α）データである。
また、デスティネーションデータＤは、ソースデータＳを書き込もうとするＤＲＡＭ１４７内のアドレスに既に記憶されている１画素分の（Ｒ，Ｇ，Ｂ，α）データである。
【００７８】
αブレンディング処理ブロック６００Ｒは、ソースデータＳのＲデータおよびαデータであるデータＳＲおよびＳαと、デスティネーションデータＤのＲデータおよびαデータであるデータＤＲおよびＤαと、ディザ(Dither)データＤＩＴＨとを入力する。ディザデータは、データを間引くために用いられる。
また、αブレンディング処理ブロック６００Ｒは、ＤＲＡＭ１４７に書き込むＲデータを示すデータＷＲを生成し、これをクランプブロック６５０に出力する。
【００７９】
αブレンディング処理ブロック６００Ｇは、ソースデータＳのＧデータおよびαデータであるデータＳＧおよびＳαと、デスティネーションデータＤのＧデータおよびαデータであるデータＤＧおよびＤαと、ディザデータＤＩＴＨとを入力する。
また、αブレンディング処理ブロック６００Ｇは、ＤＲＡＭ１４７に書き込むＲデータを示すデータＷＧを生成し、これをクランプブロック６５０に出力する。
【００８０】
αブレンディング処理ブロック６００Ｂは、ソースデータＳのＢデータおよびαデータであるデータＳＢおよびＳαと、デスティネーションデータＤのＢデータおよびαデータであるデータＤＢおよびＤαと、ディザデータＤＩＴＨとを入力する。
また、αブレンディング処理ブロック６００Ｂは、ＤＲＡＭ１４７に書き込むＢデータを示すデータＷＢを生成し、これをクランプブロック６５０に出力する。
【００８１】
以下、αブレンディング処理ブロック６００Ｒについて詳細に説明する。
図９に示すように、αブレンディング処理ブロック６００Ｒは、マルチプレクサ６１０，６１１，６１２，６１３、減算器６２０、乗算器６３０および加算器６４０，６４１を有する。
【００８２】
マルチプレクサ６１０，６１１は、データＳＲ、データＤＲおよび論理値「０」を入力し、これらのうち一つを、図示しない制御データに基づいて選択し、それぞれデータＳ６１０，Ｓ６１１として減算器６２０に出力する。
マルチプレクサ６１２は、データＳＲ、データＤＲおよび固定のα値であるＦｉｘαを入力し、これらのうち一つを、図示しない制御データに基づいて選択し、データＳ６１２として乗算器６３０に出力する。
マルチプレクサ６１３は、データＳＲ、データＤＲおよび論理値「０」を入力し、これらのうち一つを、図示しない制御データに基づいて選択し、それぞれデータＳ６１３として加算器６４０に出力する。
【００８３】
減算器６２０は、データＳ６１０からデータＳ６１１を減算する減算処理を行い、減算結果を示すデータＳ６２０を乗算器６３０に出力する。
乗算器６３０は、データＳ６２０とデータＳ６１２とを乗算する乗算処理を行い、乗算結果を示すデータＳ６３０を加算器６４１に出力する。
【００８４】
加算器６４０は、データＳ６１３と、ディザデータＤＩＴＨとを加算する加算処理を行い、加算結果を示すデータＳ６４０を加算器６４１に出力する。
加算器６４１は、データＳ６３０とデータＳ６４０とを加算する加算処理を行い、加算結果を示すデータＷＲを加算器６４１を後段のクランプブロック６５０に出力する。
ここで、データＷＲは、ＤＲＡＭ１４７に書き込むＲデータを示している。
【００８５】
以下、図９に示すαブレンディング処理ブロック６００Ｒの動作の一例について説明する。
ここでは、αブレンディング処理ブロック６００Ｒを用いて、下記式（５）のαブレンディグ処理の演算を行う場合を例示する。
【００８６】
【数５】
ＷＲ＝（ＳＲ−ＤＲ）×Ｄα＋ＤＩＴＨ            …（５）
【００８７】
この場合には、図示しない制御信号に基づいて、マルチプレクサ６１０においてデータＳＲが選択され、マルチプレクサ６１１においてデータＤＲが選択され、マルチプレクサ６１２においてデータＤαが選択され、マルチプレクサ６１３において論理値「０」が選択される。
【００８８】
次に、減算器６２０において、データＳＲからデータＤＲが減算され、減算結果「ＳＲ−ＤＲ」が乗算器６３０に出力される。
次に、乗算器６３０において、減算結果「ＳＲ−ＤＲ」と、データＤαとの乗算が行われ、乗算結果「（ＳＲ−ＤＲ）×Ｄα」が加算器６４１に出力される。
また、それと並行して、加算器６４０において、論理値「０」と、ディザデータＤＩＴＨとの加算が行われ、加算結果「ＤＩＴＨ」が加算器６４１に出力される。
【００８９】
次に、加算器６４１において、乗算結果「（ＳＲ−ＤＲ）×Ｄα」と、加算結果「ＤＩＴＨ」との加算が行われ、加算結果「（ＳＲ−ＤＲ）×Ｄα＋ＤＩＴＨ」が、データＷＲとしてクランプブロック６５０に出力される。
【００９０】
αブレンディング処理６００Ｇの処理は、データＳＧ，ＤＧを用いて処理を点を除いて、前述したαブレンディング処理６００Ｒの処理と同じである。
また、αブレンディング処理６００Ｂの処理は、データＳＢ，ＤＢを用いて処理を点を除いて、前述したαブレンディング処理６００Ｒの処理と同じである。
【００９１】
クランプブロック６５０は、αブレンディング処理ブロック６００Ｒ，６００Ｇ，６００Ｂから入力したデータＷＲ，ＷＧ，ＷＢ，Ｓαに対して３２ビット内にデータ長を調整するために下位数ビットを切り捨てるクランプ処理を行って３２ビットの（Ｒ，Ｇ，Ｂ，α）データＳ６５０を生成する。
【００９２】
メモリコントローラ３５０は、アドレスコンバータ３１０からのアドレスＳ３１０によって指定されたＤＲＡＭ１４７のディスプレイバッファ１４７ｂ内のアドレスに、（Ｒ，Ｇ，Ｂ，α）データＳ６５０を書き込む。
また、アドレスコンバータ３１０からのアドレスＳ３１０によって指定されたＤＲＡＭ１４７のｚバッファ１４７ｃ内のアドレスに、対応するｚデータを書き込む。
【００９３】
なお、図２に示すディストリビュータ３００の処理と、アドレスコンバータ３１０，３２０，３３０，３４０の処理と、メモリコントローラ３５０，３５１，３５２，３５３の処理とが、順次にパイプライン方式で実行される場合には、例えば、図９に示す乗算器６３０の内部と、加算器６４０の入力側とに、それぞれタイミング調整用のフリップフロップが配設される。
【００９４】
〔読み出しコントローラ３９０〕
読み出しコントローラ３９０は、図２に図解のごとく、アドレスコンバータ３９１およびデータ演算処理部３９２により構成されている。
アドレスコンバータ３９１は、読み出しアドレスＡＤＲＲを受けた場合、メモリコントローラ３５０，３６０，３７０，３８０からのアイドル信号Ｓ３５０，Ｓ３６０，Ｓ３７０，Ｓ３８０をすべてアクティブで受けると、このアイドル信号Ｓ３５０，Ｓ３６０，Ｓ３７０，Ｓ３８０に応答して、８画素あるいは１６画素単位で読み出しを行うように、読み出しアドレスおよび読み出し要求信号Ｓ３９１を各メモリコントローラ３５０，３６０，３７０，３８０に出力する。
データ演算部３９２は、読み出しアドレスおよび読み出し要求信号Ｓ３９１に応答して各メモリコントローラ３５０，３６０，３７０，３８０で読み出された８画素あるいは１６画素単位の、テクスチャデータ、（Ｒ，Ｇ，Ｂ）データ、ｚデータおよびテクスチャカラールックアップテーブルデータを配線群４４０を介して入力し、所定の演算処理を行って、要求先、たとえばテクスチャエンジン回路１４３またはＣＲＴコントロール回路１４５に出力する。
【００９５】
読み出しコントローラ３９０は、上述したように、メモリコントローラ３５０，３６０，３７０，３８０のすべてがアイドル状態にあるときに、読み出しアドレスおよび読み出し要求信号Ｓ３９１をメモリコントローラ３５０，３６０，３７０，３８０に出力に読み出しデータを受けることから、読み出すデータの同期をとることができる。
したがって、読み出しコントローラ３９０は、データを一時的に保持するＦＩＦＯ(First In First Out)回路等の保持回路を設ける必要がなく、回路規模の縮小化が図られている。
【００９６】
ＣＲＴコントロール回路１４５
図２に示したＣＲＴコントロール回路１４５は、与えられた水平および垂直同期信号に同期して、図示しないＣＲＴ表示装置に表示データを表示するアドレスを発生し、ディスプレイバッファ１４７ｂから表示データを読み出す要求をメモリＩ／Ｆ回路１４４に出力する。この要求に応じて、メモリＩ／Ｆ回路１４４は、ディスプレイバッファ１４７ｂから一定の固まりで表示データを読み出す。ＣＲＴコントローラ回路１４５は、ディスプレイバッファ１４７ｂから読み出した表示データを記憶するＦＩＦＯ回路を内蔵し、一定の時間間隔で、ＲＡＭＤＡＣ回路１４６に、ＲＧＢのインデックス値を出力する。
【００９７】
ＲＡＭＤＡＣ回路１４６
ＲＡＭＤＡＣ回路１４６は、各インデックス値に対応するＲ，Ｇ，Ｂデータを記憶しており、ＣＲＴコントローラ回路１４５から入力したＲＧＢのインデックス値に対応するデジタル形式のＲ，Ｇ，Ｂデータを、図示しないＤ／Ａコンバータ(Digital/Analog Converter)に転送し、アナログ形式のＲ，Ｇ，Ｂデータを生成する。ＲＡＭＤＡＣ回路１４６は、この生成されたＲ，Ｇ，ＢデータをＣＲＴに出力する。
【００９８】
次に、上記構成による動作を説明する。
図１に示した３次元コンピュータグラフィックスシステム１０においては、グラフィックス描画等のデータは、メインプロセッサ１１のメインメモリ１２、あるいは外部からのグラフィックスデータを受けるＩ／Ｏインタフェース回路１３からメインバス１５を介してレンダリング回路１４に与えられる。
なお、必要に応じて、グラフィックス描画等のデータは、メインプロセッサ１１等において、座標変換、クリップ処理、ライティング処理等のジオメトリ処理が行われる。
ジオメトリ処理が終わったグラフィックスデータは、三角形の各３頂点の頂点座標ｘ，ｙ，ｚ、輝度値Ｒ，Ｇ，Ｂ、描画しようとしている画素と対応するテクスチャ座標ｓ，ｔ，ｑとからなるポリゴンレンダリングデータＳ１１となる。
【００９９】
このポリゴンレンダリングデータＳ１１は、レンダリング回路１４のＤＤＡセットアップ回路１４１に入力される。
ＤＤＡセットアップ回路１４１においては、ポリゴンレンダリングデータＳ１１に基づいて、三角形の辺と水平方向の差分などを示す変分データＳ１４１が生成される。具体的には、開始点の値と終点の値、並びに、その間の距離を用いて、単位長さ移動した場合における、求めようとしている値の変化分である変分が算出され、変分データＳ１４１としてトライアングルＤＤＡ回路１４２に出力される。
【０１００】
トライアングルＤＤＡ回路１４２においては、変分データＳ１４１を用いて、、三角形内部の各画素における線形補間された（ｚ，Ｒ，Ｇ，Ｂ，α，ｓ，ｔ，ｑ）データが算出される。
そして、この算出された（ｚ，Ｒ，Ｇ，Ｂ，α，ｔ，ｑ）データと、三角形の各頂点の（ｘ，ｙ）データとが、ＤＤＡデータＳ１４２として、トライアングルＤＤＡ回路１４２からテクスチャエンジン回路１４３に出力される。
【０１０１】
テクスチャエンジン回路１４３においては、ＤＤＡデータＳ１４２が示す（ｓ，ｔ，ｑ）データについて、ｓデータをｑデータで除算する演算（ｓ／ｑ）と、ｔデータをｑデータで除算する演算（ｔ／ｑ）とが行われる。そして、除算結果「ｓ／ｑ」および「ｔ／ｑ」に、それぞれテクスチャサイズＵＳＩＺＥおよびＶＳＩＺＥが乗算され、テクスチャ座標データ（ｕ，ｖ）が生成される。
【０１０２】
次に、テクスチャエンジン回路１４３からメモリＩ／Ｆ回路１４４に対して生成されたテクスチャ座標データ（ｕ，ｖ）を含む読み出し要求が出力され、メモリＩ／Ｆ回路１４４を介して、ＳＲＡＭ１４８に記憶された（Ｒ，Ｇ，Ｂ）データＳ１４８が読み出される。
次に、テクスチャエンジン回路１４３において、読み出した（Ｒ，Ｇ，Ｂ）データＳ１４８の（Ｒ，Ｇ，Ｂ）データと、前段のトライアングルＤＤＡ回路１４２からのＤＤＡデータＳ１４２に含まれる（Ｒ，Ｇ，Ｂ）データとをそれぞれ掛け合わせるなどして新たな（Ｒ，Ｇ，Ｂ）データが生成され、この生成された（Ｒ，Ｇ，Ｂ）データと、ＤＤＡデータＳ１４２に含まれる（ｘ，ｙ，ｚ，α）データとを格納した画素データＳ１４３が生成される。
この画素データＳ１４３は、テクスチャエンジン回路１４３からメモリＩ／Ｆ回路１４４に出力される。
【０１０３】
フルカラーの場合には、テクスチャバッファ１４７ａからのデータ（Ｒ，Ｇ，Ｂ）を直接用いればよいが、インデックスカラーの場合には、あらかじめ作成しておいたカラーインデックステーブル（Color Index Table ）のデータが、テクスチャＣＬＵＴ（Color Look Up Table)バッファ１４７ｄより、ＳＲＡＭ等で構成される一時保管バッファ（図示せず）へ転送され、この一時保管バッファのＣＬＵＴを用いてテクスチャエンジン回路１４３で演算することによりカラーインデックスから実際のＲ，Ｇ，Ｂカラーが得られる。
なお、ＣＵＬＴがＳＲＡＭで構成された場合は、カラーインデックスをＳＲＡＭのアドレスとしてＳＲＡＭに入力すると、その出力には実際のＲ，Ｇ，Ｂカラーが出てくるといった使い方となる。
【０１０４】
次に、図２示すメモリＩ／Ｆ回路１４４内のアドレスコンバータ３１０，３２０，３３０，３４０において、１６個の画素データについての書き込みアドレスが、それぞれ対応する図８に示すアドレス生成ブロック４８０を用いて算出される。
そして、メモリＩ／Ｆ回路１４４において、テクスチャエンジン回路１４３から入力した画素データＳ１４３に対応するｚデータと、ｚバッファ１４７ｃ内の上記アドレス生成ブロック４８０を用いて算出された書き込みアドレスに記憶されているｚデータとの比較が行われ、入力したポリゴンレンダリングデータによって描画される画像が、前回、ディスプレイバッファ１４７ｂに書き込まれた画像より、手前（視点側）に位置するか否かが判断される。
判断の結果、手前に位置する場合には、画素データＳ１４３に含まれるｚデータでｚバッファ１４７ｃに記憶されたｚデータが更新される。
【０１０５】
次に、図２に示すメモリＩ／Ｆ回路１４４内のメモリコントローラ３５０，３６０，３７０，３８０（図８）において、画素データＳ１４３に含まれる（Ｒ，Ｇ，Ｂ，α）データを用いたαブレンディング処理が行われ、その結果得られた（Ｒ，Ｇ，Ｂ，α）データがディスプレイバッファ１４７ｂに書き込まれる。
これら書き込む（更新も含む）べきデータは、メモリインタフェース（Ｉ／Ｆ）回路１４４内の書き込み系回路である、ディストリビュータ３００、アドレスコンバータ３１０，３２０，３３０，３４０を介してメモリコントローラ３５０，３６０，３７０，３８０に供給され、メモリコントローラ３５０，３６０，３７０，３８０によって、それぞれ書き込み系配線群４０１Ｗ，４０２Ｗ，４１１Ｗ，４１２Ｗ，４２１Ｗ，４２２Ｗ，４３１Ｗ，４３２Ｗを介し所定のメモリ２００，２１０，２２０，２３０に対して並列的に書き込まれる。
【０１０６】
このとき、メモリコントローラ３５０，３６０，３７０，３８０は、αブレンディング処理において、それぞれアドレスコンバータ３１０，３２０，３３０，３４０から入力した画素データＳ３０１Ｄ，Ｓ３０２Ｄ，Ｓ３０３Ｄ，Ｓ３０４Ｄに含まれる４画素分の（Ｒ，Ｇ，Ｂ，α）データを、各画素毎に、当該入力した（Ｒ，Ｇ，Ｂ）データと、ディスプレイバッファ１４７ｂの当該指し示されたアドレスに既に記憶されている（Ｒ，Ｇ，Ｂ）データとをαデータによって示される混合比で混合して新たな（Ｒ，Ｇ，Ｂ）データを生成する。
そして、メモリコントローラ３５０，３６０，３７０，３８０は、該生成した（Ｒ，Ｇ，Ｂ）データと、当該入力したαデータとから構成される（Ｒ，Ｇ，Ｂ，α）データを当該指し示されたＤＲＡＭ１４７のディスプレイバッファ１４７ｂ内のアドレスに書き込む。
【０１０７】
また、図示しないＣＲＴ表示装置に画像を表示する場合には、ＣＲＴコントロール回路１４５において、与えられた水平垂直同期周波数に同期して、表示アドレスが発生され、メモリＩ／Ｆ回路１４４へ表示データの転送の要求が出される。
メモリＩ／Ｆ回路１４４は、その要求に従い、一定のまとまった固まりで、表示データをＣＲＴコントロール回路１４５に転送する。
ＣＲＴコントロール回路１４５では、図示しないディスプレイ用ＦＩＦＯ(First In First Out)等にその表示データが貯えられ、一定の間隔でＲＡＭＤＡＣ１４６へＲＧＢのインデックス値が転送される。
【０１０８】
以上説明したように、本実施形態によれば、１６画素分の画素データについての書き込みアドレスの生成処理を１６個の図８に示すアドレス生成ブロック４８０を用いて並列に行い、アドレス生成処理の高速化を図ることができる。
また、本実施形態によれば、図８に示すように、１画素分のアドレス生成ブロック４８０において、マクロセル８００，８０１を用いて回路設計を行うことで、アドレスコンバータ３１０，３２０，３３０，３４０の処理の高速化を図ることができる。
また、図８に示すアドレス生成ブロック４８０を用いて前述したように書き込みアドレスＳ３１０，Ｓ３２０，Ｓ３３０，Ｓ３４０を生成することで、同時にアクセスする１６画素分の画素データを、それぞれ異なる１６個のバンク２０１Ａ，２０１Ｂ，２０２Ａ，２０２Ｂ，２１１Ａ，２１１Ｂ，２１２Ａ，２１２Ｂ，２２１Ａ，２２１Ｂ，２２２Ａ，２２２Ｂ，２３１Ａ，２３１Ｂ，２３２Ａ，２３２Ｂに割り当てる。
その結果、本実施の形態の３次元コンピュータグラッックシステム１０によれば、１６画素分の（Ｒ，Ｇ，Ｂ，α）データをＤＲＡＭ１４７のディスプレイバッファ１４７ｂに同時に書き込むとができ、処理速度を向上させることができる。
【０１０９】
また、本実施形態によれば、図９に示すように、各画素データについてのαブレンディング処理を、Ｒデータ、ＧデータおよびＢデータについて並列に行うことで、αブレンディング処理の高速化を図ることができる。
また、本実施形態によれば、図９に示すように、１画素分のαブレンディング処理ブロック６００Ｒ，６００Ｇ，６００Ｂを、それぞれマクロセルを用いて設計を行うことで、メモリコントローラ３５０，３６０，３７０，３８０におけるαブレンディング処理の処理の高速化を図る。
その結果、３次元コンピュータグラッックシステム１０によれば、処理速度を向上させることができる。
【０１１０】
また、本実施形態では、ＤＲＡＭ１４７およびＳＲＡＭ１４８へのアクセス（書き込みまたは読み出し）を行うメモリＩ／Ｆ回路１４４において、書き込み経路と読み出し経路とを別経路として構成し、書き込みの場合には書き込みアドレスＡＤＲＷと書き込みデータＤＴＷを書き込み系回路であるディストリビュータ３００、アドレスコンバータ３１０，３２０，３３０，３４０およびメモリコントローラ３５０，３６０，３７０，３８０で処理してＤＲＡＭ１４７に書き込み、読み出しの場合には読み出し系回路である読み出しコントローラ３９０、メモリコントローラ３５０，３６０，３７０，３８０で処理してＤＲＡＭ１４７またはＳＲＡＭ１４８から読み出すことから、たとえば読み出しの割り込みが入った時等に早いタイミングで切り替えることができ、読み出しの際の性能の向上を図ることができる。
【０１１１】
さらに、本実施形態によれば、半導体チップ内部に内蔵されたＤＲＡＭ１４７に、表示デ−タと少なくとも一つの図形要素が必要とするテクスチャデ−タを記憶させた構成を有することから、表示領域以外の部分にテクスチャデ−タを格納できることになり、内蔵ＤＲＡＭの有効利用が可能となり、高速処理動作、並びに低消費電力化を並立させるようにした画像処理装置が実現可能となる。
そして、単一メモリシステムを実現でき、すべてが内蔵された中だけで処理ができる。その結果、ア−キテクチャとしても大きなパラダイムシフトとなる。
また、メモリの有効利用ができることで、内部に持っているＤＲＡＭのみでの処理が可能となり、内部にあるがゆえのメモリと描画システムの間の大きなバンド幅が、十分に活用可能となる。また、ＤＲＡＭにおいても特殊な処理を組み込むことが可能となる。
【０１１２】
なお、本発明は上述した実施形態には限定されない。
また、上述した図１に示す３次元コンピュータグラフィックスシステム１０では、ＳＲＡＭ１４８を用いる構成を例示したが、ＳＲＡＭ１４８を設けない構成にしてもよい。
【０１１３】
さらに、図１に示す３次元コンピュータグラフィックスシステム１０では、ポリゴンレンダリングデータを生成するジオメトリ処理を、メインプロセッサ１１で行う場合を例示したが、レンダリング回路１４で行う構成にしてもよい。
【０１１４】
また、上述した実施形態では、１６個の画素データを同時にＤＲＡＭ１４７に書き込む場合を例示したが、同時に書き込みを行う画素データの数は任意である。
【０１１５】
【発明の効果】
以上説明したように、本発明の画像処理装置によれば、高速な処理を実現できる。
【図面の簡単な説明】
【図１】本発明の実施形態に係る３次元コンピュータグラフィックスシステムの構成を示すブロック図である。
【図２】図２は、図１に示すメモリＩ／Ｆ回路およびＤＲＡＭの構成を示すブロック図である。
【図３】図３は、図１に示すＤＲＡＭの機能を説明するための図である。
【図４】図４は、図１に示すＤＲＡＭのアドレス空間を説明するための図である。
【図５】図５は、図１に示すＤＲＡＭにおけるページ（ロウ）の概念について説明するための図である。
【図６】図６は、図１に示すＤＲＡＭにおけるブロックの概念について説明するための図である。
【図７】図７は、図１に示すＤＲＡＭにおけるカラムの概念について説明するための図である。
【図８】図８は、図２に示すアドレスコンバータ内の１画素分のアドレス生成ブロックのブロック図である。
【図９】図９は、図２に示すメモリコントローラの１画素分のαブレンディング処理ブロックのブロック図である。
【符号の説明】
１０…３次元コンピュータグラフィックスシステム、１１…メインプロセッサ、１２…メインメモリ、１３…Ｉ／Ｏインタフェース回路、１４…レンダリング回路、１４１…ＤＤＡセットアップ回路、１４２…トライアングルＤＤＡ回路、１４３…テクスチャエンジン回路、１４４…メモリＩ／Ｆ回路、１４５…ＣＲＴコントローラ回路、１４６…ＲＡＭＤＡＣ回路、１４７…ＤＲＡＭ、１４７ａ…テクスチャバッファ、１４７ｂ…ディスプレイバッファ、１４７ｃ…ｚバッファ、１４７ｄ…テクスチャＣＬＵＴバッファ、１４８…ＳＲＡＭ、２００，２１０，２２０，２３０…メモリモジュール、３００…ディストリビュータ、３１０，３２０，３３０，３４０…アドレスデコーダ、３５０，３６０，３７０，３８０…メモリコントローラ、３９０…読み出しコントローラ、３９１…アドレスデコーダ、３９２…データ演算処理部
【図１】
0004665268.tif 000002
【図２】
0004665268.tif 000003
【図３】
0004665268.tif 000004
【図４】
0004665268.tif 000005
【図５】
0004665268.tif 000006
【図６】
0004665268.tif 000007
【図７】
0004665268.tif 000008
【図８】
0004665268.tif 000009
【図９】
0004665268.tif 000010