(57)【特許請求の範囲】
【請求項１】
単位図形の頂点について、３次元座標（ｘ，ｙ，ｚ）、Ｒ（赤），Ｇ（緑），Ｂ（青）データ、テクスチャ同次座標（ｓ，ｔ）および同次項ｑを含むポリゴンレンダリングデータを用いてレンダリング処理を行って、複数の画素からなる画像データを生成する画像処理回路と、
所定の大きさのブロックを単位として前記レンダリング処理によって生成された、前記複数の画素からなる画像データの書き込みが行われる複数の記憶回路であって、前記書き込みは代表点を基準とする第１の矩形領域を単位として行われ、当該第１の矩形領域の直交する第１および第２方向について第１の数の倍数のアドレスしか指定できないという制約がある、複数の記憶回路と、
前記画像処理回路から入力した前記レンダリング処理によって生成された前記複数の画素からなる画像データを含む前記ブロックの前記代表点のアドレスを前記制限に基づいて指定したときに、前記前記画像処理回路から入力した前記画像データが前記制約に基づいて前記複数の記憶回路内の該当する記憶回路の該当する前記第１の矩形領域に書き込まれるように、前記画像データを、画素データ単位で並べ替える、データ並べ替え回路と、
書き込み回路と
を具備し、
前記並べ替え回路は、前記画像処理回路から入力した前記レンダリング処理によって生成された前記複数の画素からなる画像データを前記複数の記憶回路に転送して記憶する第１の転送モードにおいて、
前記画像処理回路から入力した前記レンダリング処理された第１のビット幅の第１の画像データを第２のビット幅の第２の画像データ内に配置し、
前記第２の画像データを含む前記ブロックの前記代表点のアドレスを前記制限に基づいて指定したときに、前記第１の画像データが前記複数の記憶回路の該当する記憶回路の該当する前記第１の矩形記憶領域に書き込まれるように、前記第２の画像データを、制御信号に基づいてシフト処理、選択処理、保持処理を反復して、並べ替え、
前記書き込み回路は、前記並べ替えられた前記第２の画像データを含む前記ブロックを、前記複数の記憶回路の該当する記憶回路に分散して書き込む、
画像処理装置。
【請求項２】
前記各記憶回路は、前記２次元のアドレス空間内の直交する２方向のそれぞれについて、所定のアドレス間隔で前記代表点のアドレスが指定される、
請求項１に記載の画像処理装置。
【請求項３】
前記ブロックは矩形であり、
前記第２の画像データの前記第２のビット幅は前記ブロックの一辺の長さと同じであり、
前記記憶回路の記憶領域における前記ブロックの前記一辺の方向のアドレスをＸ方向のアドレスとし、当該Ｘ方向と直交する方向のアドレスをＹ方向のアドレスとした場合に、前記データ並べ替え回路は、同一の前記第１の画像データに含まれる複数の画素データのうち、前記所定の記憶領域における異なるＹ方向のアドレスに書き込まれる画素データを、相互に異なる前記第２の画像データ内に配置する、
請求項１または２に記載の画像処理装置。
【請求項４】
前記データ並べ替え回路は、前記ブロック内における有効な画素データを特定する有効性指示データを生成して、前記生成したアドレスに含め、
前記書き込み回路は、前記アドレスに含まれる前記有効性指示データに基づいて、前記ブロック内の有効性が指示されている画素データに基づいて、前記画像データを含む前記ブロックを、前記複数の記憶回路に分散して書き込む、
請求項１に記載の画像処理装置。
【請求項５】
前記記憶回路、およびデータ並べ替え回路が一つの半導体チップ内に混載されている
請求項１に記載の画像処理装置。
【請求項６】
単位図形の頂点について、３次元座標（ｘ，ｙ，ｚ）、Ｒ（赤），Ｇ（緑），Ｂ（青）データ、テクスチャ同次座標（ｓ，ｔ）および同次項ｑを含むポリゴンレンダリングデータが、それぞれ分散して記憶されている、所定の大きさのブロックを単位として記憶領域に記憶されたレンダリング処理によって生成された、複数の画素データからなる画像データの書き込みおよび読み出しが行われる複数の記憶回路であって、前記書き込みは代表点を基準とする第１の矩形領域を単位として行われ、当該第１の矩形領域の直交する第１および第２方向について第１の数の倍数のアドレスしか指定できないという第１の制約があり、前記読み出しは代表点を基準とする第２の矩形領域を単位として行われ、当該第２の矩形領域の直交する第１方向については任意のアドレスを指定できるが第２方向については第２の数の倍数でしかアドレスを指定できないという第２の制約がある、複数の記憶回路と、
第１のビット幅の第１の画像データを入力し、当該第１の画像データについてレンダリング処理を行う画像処理回路と、
前記第２の制限に基づいて代表点を指定して前記ブロック単位で前記複数の記憶回路から前記画像データを読み出す読み出し回路と、
前記読み出しによって得られた第２のビット幅の第２の画像データを、画素データ単位で並べ替えて生成した第１ビット幅の前記第１の画像データを前記画像処理回路に出力するデータ並べ替え回路と
を具備し、
前記並べ替え回路は、前記記憶回路から前記画像処理回路に画像データを転送する第２の転送モードにおいて、
前記画像処理回路から入力したアドレスに応じたアドレスを生成して前記読み出し回路に出力して前記複数の記憶回路から該当する画像データを読み出し、
前記画像処理回路で規定する前記第１のビット幅の画像データに変換して前記画像処理回路に出力する、
画像処理装置。
【請求項７】
前記各記憶回路は、前記２次元のアドレス空間内の直交する２方向のそれぞれについて、所定のアドレス間隔で前記代表点のアドレスが指定される、
請求項６に記載の画像処理装置。
【請求項８】
前記記憶回路、前記読み出し回路およびデータ並べ替え回路が一つの半導体チップ内に混載されている
請求項６に記載の画像処理装置。
【請求項９】
単位図形の頂点について、３次元座標（ｘ，ｙ，ｚ）、Ｒ（赤），Ｇ（緑），Ｂ（青）データ、テクスチャ同次座標（ｓ，ｔ）および同次項ｑを含むポリゴンレンダリングデータがそれぞれ分散して、所定の大きさのブロックを単位としてレンダリング処理によって生成された画像データの書き込みが行われ、および、前記それぞれ分散した書き込まれた前記レンダリング処理によって生成された画像データの読出しが行われる、複数の記憶回路であって、前記書き込みは代表点を基準とする第１の矩形領域を単位として行われ、当該第１の矩形領域の直交する第１および第２方向について第１の数の倍数のアドレスしか指定できないという第１の制約があり、前記読み出しは代表点を基準とする第２の矩形領域を単位として行われ、当該第２の矩形領域の直交する第１方向については任意のアドレスを指定できるが第２方向については第２の数の倍数でしかアドレスを指定できないという第２の制約がある、複数の記憶回路と、
前記第２の制限に基づいて代表点を指定して前記ブロックを単位として前記複数の記憶回路から前記画像データを読み出す読み出し回路と、
前記画像処理回路から前記記憶回路に画像データを転送する第１の転送モードと、前記記憶回路から前記画像処理回路に画像データを転送する第２の転送モードとのいずれかに応じた処理を行う、並べ替え回路であって、前記読み出された画像データを含む前記ブロックの前記代表点のアドレスを前記第１の制限に基づいて指定したときに、前記読み出された画像データが該当する記憶回路内の該当する第１の矩形領域に書き込まれるように、前記読み出された画像データを画素データ単位で並べ替える、データ並べ替え回路と、
前記第１の制限に基づいて代表点を指定して、前記並べ替えられた画像データを含む前記ブロックを前記記憶回路に書き込む書き込み回路と
を具備し、
前記並べ替え回路は、前記画像処理回路から前記複数の記憶回路に前記画像データを転送して記憶する第１の転送モードにおいて、
前記画像処理回路から入力した前記レンダリング処理された第１のビット幅の第１の画像データを第２のビット幅の第２の画像データ内に配置し、
前記第２の画像データを含む前記ブロックの前記代表点のアドレスを前記第１の制限に基づいて指定したときに、前記第１の画像データが前記複数の記憶回路の該当する記憶回路の該当する矩形領域に書き込まれるように、前記第２の画像データを、制御信号に基づいてシフト処理、選択処理、保持処理を反復して、並べ替え、
前記書き込み回路は、前記並べ替えられた前記第２の画像データを含む前記ブロックを、前記複数の記憶回路の該当する記憶回路に分散して書き込み、
前記並べ替え回路は、前記記憶回路から前記画像処理回路に画像データを転送する第２の転送モードにおいて、
前記画像処理回路から入力したアドレスに応じたアドレスを生成して前記読み出し回路に出力して前記複数の記憶回路から該当する画像データを読み出し、
前記画像処理回路で規定する前記第１のビット幅の画像データ内に配置して前記画像処理回路に出力する、
画像処理装置。
【請求項１０】
前記データ並べ替え回路は、前記ブロック内における有効な画素データを特定する有効性指示データを生成して、前記生成したアドレスに含め、
前記書き込み回路は、前記アドレスに含まれる前記有効性指示データに基づいて、前記ブロック内の有効性が指示されている画素データに基づいて、前記画像データを含む前記ブロックを、前記複数の記憶回路に分散して書き込む、
請求項９に記載の画像処理装置。
【請求項１１】
前記各記憶回路は、前記２次元のアドレス空間内の直交する２方向のそれぞれについて、所定のアドレス間隔で前記代表点のアドレスが指定される、
請求項９または１０記載の画像処理装置。
【請求項１２】
前記各記憶回路は、前記読み出しと前記書き込みとで、前記ブロックの大きさおよび前記代表点のアドレスの指定の制限が異なる、
請求項９に記載の画像処理装置。
【請求項１３】
前記記憶回路、前記読み出し回路、前記データ並べ替え回路および前記書き込み回路が一つの半導体チップ内に混載されている
請求項９に記載の画像処理装置。
【請求項１４】
単位図形の頂点について、３次元座標（ｘ，ｙ，ｚ）、Ｒ（赤），Ｇ（緑），Ｂ（青）データ、テクスチャ同次座標（ｓ，ｔ）および同次項ｑを含むポリゴンレンダリングデータを用いてレンダリング処理を行う画像処理装置であって、
複数の記憶回路であって、複数の画素ビットからなる表示データと少なくとも一つの図形要素が必要とするテクスチャデータとを当該複数の記憶回路に分散して記憶し、所定の大きさのブロックを単位として上記レンダリング処理によって生成された画像データの書き込みが行われる、複数の記憶回路であって、前記書き込みは代表点を基準とする第１の矩形領域を単位として行われ、当該第１の矩形領域の直交する第１および第２方向について第１の数の倍数のアドレスしか指定できないという第１の制約があり、前記読み出しは代表点を基準とする第２の矩形領域を単位として行われ、当該第２の矩形領域の直交する第１方向については任意のアドレスを指定できるが第２方向については第２の数の倍数でしかアドレスを指定できないという第２の制約がある、複数の記憶回路と、
前記単位図形の頂点のポリゴンレンダリングデータを補間して、前記単位図形内に位置する画素の補間データを生成する補間データ生成回路と、
前記補間データに含まれるテクスチャ同次座標（ｓ，ｔ）を同次項ｑで除算して「ｓ／ｑ」および「ｔ／ｑ」を生成し、当該「ｓ／ｑ」および「ｔ／ｑ」に応じたテクスチャアドレスを用いて、前記複数の記憶回路からテクスチャデータを読み出し、図形要素の表面への前記読み出したテクスチャデータの張り付け処理を行って複数の画素ビットからなる表示データを生成するテクスチャ処理回路と、
前記テクスチャー処理回路から前記記憶回路に画像データを転送する第１の転送モードに応じたデータ並べ替え処理を行う、データ並べ替え回路であって、前記テクスチャ処理回路から入力した複数の画素ビットからなる表示データを含む前記ブロックの前記代表点のアドレスを前記第１の制限に基づいて指定したときに、前記表示データが前記複数の記憶回路内の該当する記憶回路に分散して書き込まれるように、画像データ単位で、前記表示データを並べ替えるデータ並べ替え回路と、
前記並べ替えられた前記表示データを含む前記ブロックを、前記複数の記憶回路に分散して書き込む書き込み回路と
を具備し、
前記並べ替え回路は、前記画像処理回路から前記複数の記憶回路に前記画像データを転送して記憶する第１の転送モードにおいて、
前記画像処理回路から入力した前記レンダリング処理された第１のビット幅の第１の画像データを第２のビット幅の第２の画像データ内に配置し、
前記第２の画像データを含む前記ブロックの前記代表点のアドレスを前記第１の制限に基づいて指定したときに、前記第１の画像データが前記複数の記憶回路の所定の記憶領域に書き込まれるように、前記第２の画像データを、制御信号に基づいてシフト処理、選択処理、保持処理を反復して、並べ替え、
前記書き込み回路は、前記並べ替えられた前記第２の画像データを含む前記ブロックを、前記複数の記憶回路の該当する記憶回路に分散して書き込む、
画像処理装置。
【請求項１５】
単位図形の頂点について、３次元座標（ｘ，ｙ，ｚ）、Ｒ（赤），Ｇ（緑），Ｂ（青）データ、テクスチャ同次座標（ｓ，ｔ）および同次項ｑを含むポリゴンレンダリングデータを用いてレンダリング処理を行う画像処理装置であって、
複数の記憶回路であって、表示データと少なくとも一つの図形要素が必要とするテクスチャデータとを当該複数の記憶回路に分散して記憶し、所定の大きさのブロックを単位として上記レンダリング処理によって生成された画像データの書き込みが行われる複数の記憶回路であって、前記書き込みは代表点を基準とする第１の矩形領域を単位として行われ、当該第１の矩形領域の直交する第１および第２方向について第１の数の倍数のアドレスしか指定できないという第１の制約があり、前記読み出しは代表点を基準とする第２の矩形領域を単位として行われ、当該第２の矩形領域の直交する第１方向については任意のアドレスを指定できるが第２方向については第２の数の倍数でしかアドレスを指定できないという第２の制約がある、複数の記憶回路と、
前記単位図形の頂点のポリゴンレンダリングデータを補間して、前記単位図形内に位置する画素の補間データを生成する補間データ生成回路と、
前記補間データに含まれるテクスチャ同次座標（ｓ，ｔ）を同次項ｑで除算して「ｓ／ｑ」および「ｔ／ｑ」を生成し、当該「ｓ／ｑ」および「ｔ／ｑ」に応じたテクスチャアドレスを用いて前記複数の記憶回路から読み出されたテクスチャデータを、図形要素の表面への張り付け処理を行って表示データを生成するテクスチャ処理回路と、
前記第２の制限に基づいて代表点を指定して前記ブロック単位で前記複数の記憶回路から前記テクスチャデータを読み出す読み出し回路と、
インタフェース回路と、
前記記憶回路から読みだした表示データを前記テクスチャー処理回路に転送する第２の転送モードに応じたデータの並べ替えを行うデータ並べ替え回路であって、前記読み出されたテクスチャデータを、前記インタフェース回路の出力フォーマットに応じて並べ替えて、前記インタフェース回路に出力するデータ並べ替え回路と
を具備し、
前記並べ替え回路は、前記第２の転送モードにおいて、前記インタフェースを経由して前記テクスチャー回路から画像処理回路から入力したアドレスに応じたアドレスを生成して前記読み出し回路に出力して前記複数の記憶回路から該当する画像データを読み出し、前記画像処理回路で規定する前記第１のビット幅の画像データ内に配置して前記画像処理回路に出力する、
画像処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理装置に関する。
【０００２】
【従来の技術】
種々のＣＡＤ(Computer Aided Design) システムや、アミューズメント装置などにおいて、コンピュータグラフィックスがしばしば用いられている。特に、近年の画像処理技術の進展に伴い、３次元コンピュータグラフィックスを用いたシステムが急速に普及している。
このような３次元コンピュータグラフィックスでは、各画素（ピクセル）に対応する色を決定するときに、各画素の色の値を計算し、この計算した色の値を、当該画素に対応するディスプレイバッファ（フレームバッファ）のアドレスに書き込むレンダリング(Rendering) 処理を行う。
【０００３】
レンダリング処理の手法の一つに、ポリゴン（Polygon)レンダリングがある。この手法では、立体モデルを三角形の単位図形（ポリゴン）の組み合わせとして表現しておき、このポリゴンを単位として描画を行うことで、表示画面の色を決定する。
【０００４】
ポリゴンレンダリングでは、物理座標系における三角形の各頂点についての、座標（ｘ，ｙ，ｚ）と、色データ（Ｒ，Ｇ，Ｂ）と、張り合わせのイメージパターンを示すテクスチャデータの同次座標（ｓ，ｔ）および同次項ｑの値とを入力とし、これらの値を三角形の内部で補間する処理が行われる。
ここで、同次項ｑは、簡単にいうと、拡大縮小率のようなもので、実際のテクスチャバッファのＵＶ座標系における座標、すなわち、テクスチャ座標データ（ｕ，ｖ）は、同次座標（ｓ，ｔ）を同次項ｑで除算した「ｓ／ｑ」および「ｔ／ｑ」に、それぞれテクスチャサイズＵＳＩＺＥおよびＶＳＩＺＥを乗じたものとなる。
【０００５】
図２８は、３次元コンピュータグラフィックスシステムの基本的な概念を示すシステム構成図である。
【０００６】
この３次元コンピュータグラフィックスシステムにおいては、グラフィックス描画等のデータは、メインプロセッサ１のメインメモリ２、あるいは外部からのグラフィックスデータを受けるＩ／Ｏインタフェース回路３からメインバス４を介してレンダリングプロセッサ５ａ、フレームバッファメモリ５ｂを有するレンダリング回路５に与えられる。
【０００７】
レンダリングプロセッサ５ａには、表示するためのデータを保持することを目的とするフレームバッファ５ｂと、描画する図形要素（たとえば三角形）の表面に張り付けるテクスチャデータを保持しているテクスチャメモリ６が結合されている。
そして、レンダリングプロセッサ５ａによって、図形要素毎に表面にテクスチャを張り付けた図形要素を、フレームバッファ５ｂに描画するという処理が行われる。
【０００８】
フレームバッファ５ｂとテクスチャメモリ６は、一般的にＤＲＡＭ(Dynamic Random Access Memory)により構成される。
そして、図２８のシステムにおいては、フレームバッファ５ｂとテクスチャメモリ６は、物理的に別々のメモリシステムとして構成されている。
【０００９】
【発明が解決しようとする課題】
ところで、上述したような３次元コンピュータグラフィックシステムなどでは、ＤＲＡＭの読み出し動作および書き込み動作を効率よく行うために、例えば、グラフィック処理の特色を考慮してＤＲＡＭへのアクセス時のアドレス指定に制限を設けることが考えられる。
しかしながら、このような制限を設けると、図２８に示すシステムにおいて、レンダリングプロセッサ５ａおよびメインプロセッサ１と、フレームバッファメモリ５ｂおよびテクスチャメモリ６との間でデータ送受信を行う際に、ＤＲＡＭに対してのアクセス時のアドレス指定の制限によって生じる種々の課題を解決する必要がある。
【００１０】
本発明は、かかる事情に鑑みてなされたものであり、メモリへのアクセス時のアドレス指定に制限を設けた場合でも、メモリへのアクセスを正確に行うことができる画像処理装置を提供することを目的とする。
【００１１】
【課題を解決するための手段】
本発明によれば、
単位図形の頂点について、３次元座標（ｘ，ｙ，ｚ）、Ｒ（赤），Ｇ（緑），Ｂ（青）データ、テクスチャ同次座標（ｓ，ｔ）および同次項ｑを含むポリゴンレンダリングデータを用いてレンダリング処理を行って、複数の画素からなる画像データを生成する画像処理回路と、
所定の大きさのブロックを単位として前記レンダリング処理によって生成された、前記複数の画素からなる画像データの書き込みが行われる複数の記憶回路であって、前記書き込みは代表点を基準とする第１の矩形領域を単位として行われ、当該第１の矩形領域の直交する第１および第２方向について第１の数の倍数のアドレスしか指定できないという制約がある、複数の記憶回路と、
前記画像処理回路から入力した前記レンダリング処理によって生成された前記複数の画素からなる画像データを含む前記ブロックの前記代表点のアドレスを前記制限に基づいて指定したときに、前記前記画像処理回路から入力した前記画像データが前記制約に基づいて前記複数の記憶回路内の該当する記憶回路の該当する前記第１の矩形領域に書き込まれるように、前記画像データを、画素データ単位で並べ替える、データ並べ替え回路と、
書き込み回路と
を具備し、
前記並べ替え回路は、前記画像処理回路から入力した前記レンダリング処理によって生成された前記複数の画素からなる画像データを前記複数の記憶回路に転送して記憶する第１の転送モードにおいて、
前記画像処理回路から入力した前記レンダリング処理された第１のビット幅の第１の画像データを第２のビット幅の第２の画像データ内に配置し、
前記第２の画像データを含む前記ブロックの前記代表点のアドレスを前記制限に基づいて指定したときに、前記第１の画像データが前記複数の記憶回路の該当する記憶回路の該当する前記第１の矩形記憶領域に書き込まれるように、前記第２の画像データを、制御信号に基づいてシフト処理、選択処理、保持処理を反復して、並べ替え、
前記書き込み回路は、前記並べ替えられた前記第２の画像データを含む前記ブロックを、前記複数の記憶回路の該当する記憶回路に分散して書き込む、
画像処理装置が提供される。
【００１２】
また本発明によれば、
単位図形の頂点について、３次元座標（ｘ，ｙ，ｚ）、Ｒ（赤），Ｇ（緑），Ｂ（青）データ、テクスチャ同次座標（ｓ，ｔ）および同次項ｑを含むポリゴンレンダリングデータが、それぞれ分散して記憶されている、所定の大きさのブロックを単位として記憶領域に記憶されたレンダリング処理によって生成された、複数の画素データからなる画像データの書き込みおよび読み出しが行われる複数の記憶回路であって、前記書き込みは代表点を基準とする第１の矩形領域を単位として行われ、当該第１の矩形領域の直交する第１および第２方向について第１の数の倍数のアドレスしか指定できないという第１の制約があり、前記読み出しは代表点を基準とする第２の矩形領域を単位として行われ、当該第２の矩形領域の直交する第１方向については任意のアドレスを指定できるが第２方向については第２の数の倍数でしかアドレスを指定できないという第２の制約がある、複数の記憶回路と、
第１のビット幅の第１の画像データを入力し、当該第１の画像データについてレンダリング処理を行う画像処理回路と、
前記第２の制限に基づいて代表点を指定して前記ブロック単位で前記複数の記憶回路から前記画像データを読み出す読み出し回路と、
前記読み出しによって得られた第２のビット幅の第２の画像データを、画素データ単位で並べ替えて生成した第１ビット幅の前記第１の画像データを前記画像処理回路に出力するデータ並べ替え回路と
を具備し、
前記並べ替え回路は、前記記憶回路から前記画像処理回路に画像データを転送する第２の転送モードにおいて、
前記画像処理回路から入力したアドレスに応じたアドレスを生成して前記読み出し回路に出力して前記複数の記憶回路から該当する画像データを読み出し、
前記画像処理回路で規定する前記第１のビット幅の画像データに変換して前記画像処理回路に出力する、
画像処理装置が提供される。
【００１３】
本発明によれば、
単位図形の頂点について、３次元座標（ｘ，ｙ，ｚ）、Ｒ（赤），Ｇ（緑），Ｂ（青）データ、テクスチャ同次座標（ｓ，ｔ）および同次項ｑを含むポリゴンレンダリングデータがそれぞれ分散して、所定の大きさのブロックを単位としてレンダリング処理によって生成された画像データの書き込みが行われ、および、前記それぞれ分散した書き込まれた前記レンダリング処理によって生成された画像データの読出しが行われる、複数の記憶回路であって、前記書き込みは代表点を基準とする第１の矩形領域を単位として行われ、当該第１の矩形領域の直交する第１および第２方向について第１の数の倍数のアドレスしか指定できないという第１の制約があり、前記読み出しは代表点を基準とする第２の矩形領域を単位として行われ、当該第２の矩形領域の直交する第１方向については任意のアドレスを指定できるが第２方向については第２の数の倍数でしかアドレスを指定できないという第２の制約がある、複数の記憶回路と、
前記第２の制限に基づいて代表点を指定して前記ブロックを単位として前記複数の記憶回路から前記画像データを読み出す読み出し回路と、
前記画像処理回路から前記記憶回路に画像データを転送する第１の転送モードと、前記記憶回路から前記画像処理回路に画像データを転送する第２の転送モードとのいずれかに応じた処理を行う、並べ替え回路であって、前記読み出された画像データを含む前記ブロックの前記代表点のアドレスを前記第１の制限に基づいて指定したときに、前記読み出された画像データが該当する記憶回路内の該当する第１の矩形領域に書き込まれるように、前記読み出された画像データを画素データ単位で並べ替える、データ並べ替え回路と、
前記第１の制限に基づいて代表点を指定して、前記並べ替えられた画像データを含む前記ブロックを前記記憶回路に書き込む書き込み回路と
を具備し、
前記並べ替え回路は、前記画像処理回路から前記複数の記憶回路に前記画像データを転送して記憶する第１の転送モードにおいて、
前記画像処理回路から入力した前記レンダリング処理された第１のビット幅の第１の画像データを第２のビット幅の第２の画像データ内に配置し、
前記第２の画像データを含む前記ブロックの前記代表点のアドレスを前記第１の制限に基づいて指定したときに、前記第１の画像データが前記複数の記憶回路の該当する記憶回路の該当する矩形領域に書き込まれるように、前記第２の画像データを、制御信号に基づいてシフト処理、選択処理、保持処理を反復して、並べ替え、
前記書き込み回路は、前記並べ替えられた前記第２の画像データを含む前記ブロックを、前記複数の記憶回路の該当する記憶回路に分散して書き込み、
前記並べ替え回路は、前記記憶回路から前記画像処理回路に画像データを転送する第２の転送モードにおいて、
前記画像処理回路から入力したアドレスに応じたアドレスを生成して前記読み出し回路に出力して前記複数の記憶回路から該当する画像データを読み出し、
前記画像処理回路で規定する前記第１のビット幅の画像データ内に配置して前記画像処理回路に出力する、
画像処理装置が提供される。
【００１４】
本発明によれば、
単位図形の頂点について、３次元座標（ｘ，ｙ，ｚ）、Ｒ（赤），Ｇ（緑），Ｂ（青）データ、テクスチャ同次座標（ｓ，ｔ）および同次項ｑを含むポリゴンレンダリングデータを用いてレンダリング処理を行う画像処理装置であって、
複数の記憶回路であって、複数の画素ビットからなる表示データと少なくとも一つの図形要素が必要とするテクスチャデータとを当該複数の記憶回路に分散して記憶し、所定の大きさのブロックを単位として上記レンダリング処理によって生成された画像データの書き込みが行われる、複数の記憶回路であって、前記書き込みは代表点を基準とする第１の矩形領域を単位として行われ、当該第１の矩形領域の直交する第１および第２方向について第１の数の倍数のアドレスしか指定できないという第１の制約があり、前記読み出しは代表点を基準とする第２の矩形領域を単位として行われ、当該第２の矩形領域の直交する第１方向については任意のアドレスを指定できるが第２方向については第２の数の倍数でしかアドレスを指定できないという第２の制約がある、複数の記憶回路と、
前記単位図形の頂点のポリゴンレンダリングデータを補間して、前記単位図形内に位置する画素の補間データを生成する補間データ生成回路と、
前記補間データに含まれるテクスチャ同次座標（ｓ，ｔ）を同次項ｑで除算して「ｓ／ｑ」および「ｔ／ｑ」を生成し、当該「ｓ／ｑ」および「ｔ／ｑ」に応じたテクスチャアドレスを用いて、前記複数の記憶回路からテクスチャデータを読み出し、図形要素の表面への前記読み出したテクスチャデータの張り付け処理を行って複数の画素ビットからなる表示データを生成するテクスチャ処理回路と、
前記テクスチャー処理回路から前記記憶回路に画像データを転送する第１の転送モードに応じたデータ並べ替え処理を行う、データ並べ替え回路であって、前記テクスチャ処理回路から入力した複数の画素ビットからなる表示データを含む前記ブロックの前記代表点のアドレスを前記第１の制限に基づいて指定したときに、前記表示データが前記複数の記憶回路内の該当する記憶回路に分散して書き込まれるように、画像データ単位で、前記表示データを並べ替えるデータ並べ替え回路と、
前記並べ替えられた前記表示データを含む前記ブロックを、前記複数の記憶回路に分散して書き込む書き込み回路と
を具備し、
前記並べ替え回路は、前記画像処理回路から前記複数の記憶回路に前記画像データを転送して記憶する第１の転送モードにおいて、
前記画像処理回路から入力した前記レンダリング処理された第１のビット幅の第１の画像データを第２のビット幅の第２の画像データ内に配置し、
前記第２の画像データを含む前記ブロックの前記代表点のアドレスを前記第１の制限に基づいて指定したときに、前記第１の画像データが前記複数の記憶回路の所定の記憶領域に書き込まれるように、前記第２の画像データを、制御信号に基づいてシフト処理、選択処理、保持処理を反復して、並べ替え、
前記書き込み回路は、前記並べ替えられた前記第２の画像データを含む前記ブロックを、前記複数の記憶回路の該当する記憶回路に分散して書き込む、
画像処理装置が提供される。
【００１５】
本発明によれば、
単位図形の頂点について、３次元座標（ｘ，ｙ，ｚ）、Ｒ（赤），Ｇ（緑），Ｂ（青）データ、テクスチャ同次座標（ｓ，ｔ）および同次項ｑを含むポリゴンレンダリングデータを用いてレンダリング処理を行う画像処理装置であって、
複数の記憶回路であって、表示データと少なくとも一つの図形要素が必要とするテクスチャデータとを当該複数の記憶回路に分散して記憶し、所定の大きさのブロックを単位として上記レンダリング処理によって生成された画像データの書き込みが行われる複数の記憶回路であって、前記書き込みは代表点を基準とする第１の矩形領域を単位として行われ、当該第１の矩形領域の直交する第１および第２方向について第１の数の倍数のアドレスしか指定できないという第１の制約があり、前記読み出しは代表点を基準とする第２の矩形領域を単位として行われ、当該第２の矩形領域の直交する第１方向については任意のアドレスを指定できるが第２方向については第２の数の倍数でしかアドレスを指定できないという第２の制約がある、複数の記憶回路と、
前記単位図形の頂点のポリゴンレンダリングデータを補間して、前記単位図形内に位置する画素の補間データを生成する補間データ生成回路と、
前記補間データに含まれるテクスチャ同次座標（ｓ，ｔ）を同次項ｑで除算して「ｓ／ｑ」および「ｔ／ｑ」を生成し、当該「ｓ／ｑ」および「ｔ／ｑ」に応じたテクスチャアドレスを用いて前記複数の記憶回路から読み出されたテクスチャデータを、図形要素の表面への張り付け処理を行って表示データを生成するテクスチャ処理回路と、
前記第２の制限に基づいて代表点を指定して前記ブロック単位で前記複数の記憶回路から前記テクスチャデータを読み出す読み出し回路と、
インタフェース回路と、
前記記憶回路から読みだした表示データを前記テクスチャー処理回路に転送する第２の転送モードに応じたデータの並べ替えを行うデータ並べ替え回路であって、前記読み出されたテクスチャデータを、前記インタフェース回路の出力フォーマットに応じて並べ替えて、前記インタフェース回路に出力するデータ並べ替え回路と
を具備し、
前記並べ替え回路は、前記第２の転送モードにおいて、前記インタフェースを経由して前記テクスチャー回路から画像処理回路から入力したアドレスに応じたアドレスを生成して前記読み出し回路に出力して前記複数の記憶回路から該当する画像データを読み出し、前記画像処理回路で規定する前記第１のビット幅の画像データ内に配置して前記画像処理回路に出力する、
画像処理装置が提供される。
【００１６】
【発明の実施の形態】
以下、本実施形態においては、パーソナルコンピュータなどに適用される、任意の３次元物体モデルに対する所望の３次元画像をＣＲＴ(Cathode Ray Tube)などのディスプレイ上に高速に表示する３次元コンピュータグラフィックスシステムについて説明する。
【００１７】
図１は、本発明に係る画像処理装置としての３次元コンピュータグラフィックスシステム１０のシステム構成図である。
【００１８】
３次元コンピュータグラフィックスシステム１０は、立体モデルを単位図形である三角形（ポリゴン）の組み合わせとして表現し、このポリゴンを描画することで表示画面の各画素の色を決定し、ディスプレイに表示するポリゴンレンダリング処理を行うシステムである。
また、３次元コンピュータグラフィックスシステム１０では、平面上の位置を表現する（ｘ，ｙ）座標の他に、奥行きを表すｚ座標を用いて３次元物体を表し、この（ｘ，ｙ，ｚ）の３つの座標で３次元空間の任意の一点を特定する。
【００１９】
図１に示すように、３次元コンピュータグラフィックスシステム１０は、メインプロセッサ１１、メインメモリ１２、Ｉ／Ｏインタフェース回路１３、およびレンダリング回路１４が、メインバス１５を介して接続されている。
以下、各構成要素の機能について説明する。
【００２０】
メインプロセッサ１１は、例えば、アプリケーションの進行状況などに応じて、メインメモリ１２から必要なグラフィックデータを読み出し、このグラフィックデータに対してクリッピング(Clipping)処理、ライティング(Lighting)処理などのジオメトリ(Geometry)処理などを行い、ポリゴンレンダリングデータを生成する。メインプロセッサ１１は、ポリゴンレンダリングデータＳ１１を、メインバス１５を介してレンダリング回路１４に出力する。
【００２１】
Ｉ／Ｏインタフェース回路１３は、必要に応じて、外部から動きの制御情報またはポリゴンレンダリングデータなどを入力し、これをメインバス１５を介してレンダリング回路１４に出力する。
【００２２】
ここで、ポリゴンレンダリングデータは、ポリゴンの各３頂点の（ｘ，ｙ，ｚ，Ｒ，Ｇ，Ｂ，ｓ，ｔ，ｑ）のデータを含んでいる。
ここで、（ｘ，ｙ，ｚ）データは、ポリンゴの頂点の３次元座標を示し、（Ｒ，Ｇ，Ｂ）データは、それぞれ当該３次元座標における赤、緑、青の輝度値を示している。
（ｓ，ｔ，ｑ）データのうち、（ｓ，ｔ）は、対応するテクスチャの同次座標を示しており、ｑは同次項を示している。ここで、「ｓ／ｑ」および「ｔ／ｑ」に、それぞれテクスチャサイズＵＳＩＺＥおよびＶＳＩＺＥを乗じてテクスチャ座標データ（ｕ，ｖ）が得られる。テクスチャバッファ１４７ａに記憶されたテクスチャデータへのアクセスは、テクスチャ座標データ（ｕ，ｖ）を用いて行われる。
すなわち、ポリゴンレンダリングデータは、三角形の各頂点の物理座標値と、それぞれの頂点の色とテクスチャデータである。
【００２３】
以下、レンダリング回路１４について詳細に説明する。
図１に示すように、レンダリング回路１４は、ホストインタフェース回路１４９、ＤＤＡ(Digital Differential Anarizer) セットアップ回路１４１、トライアングルＤＤＡ回路１４２、テクスチャエンジン回路１４３、メモリインタフェース（Ｉ／Ｆ）回路１４４、ＣＲＴコントロール回路１４５、ＲＡＭＤＡＣ回路１４６、ＤＲＡＭ１４７およびＳＲＡＭ(Static RAM)１４８を有する。
本実施形態におけるレンダリング回路１４は、一つの半導体チップ内にロジック回路と少なくとも表示データとテクスチャデータとを記憶するＤＲＡＭ１４７とが混載されている。
【００２４】
ＤＲＡＭ１４７
ＤＲＡＭ１４７は、テクスチャバッファ１４７ａ、ディスプレイバッファ１４７ｂ、ｚバッファ１４７ｃおよびテクスチャＣＬＵＴ(Color Look Up Table) バッファ１４７ｄとして機能する。
また、ＤＲＡＭ１４７は、後述するように、同一機能を有する複数（本実施形態では４個）のモジュールに分割されている。
【００２５】
また、ＤＲＡＭ１４７には、より多くのテクスチャデータを格納するために、インデックスカラーにおけるインデックスと、そのためのカラールックアップテーブル値が、テクスチャＣＬＵＴバッファ１４７ｄに格納されている。
インデックスおよびカラールックアップテーブル値は、テクスチャ処理に使われる。すなわち、通常はＲ，Ｇ，Ｂそれぞれ８ビットの合計２４ビットでテクスチャ要素を表現するが、それではデータ量が膨らむため、あらかじめ選んでおいた例えば２５６色等の中から一つの色を選んで、そのデータをテクスチャ処理に使う。このことで２５６色であればそれぞれのテクスチャ要素は８ビットで表現できることになる。インデックスから実際のカラーへの変換テーブルは必要になるが、テクスチャの解像度が高くなるほど、よりコンパクトなテクスチャデータとすることが可能となる。
これにより、テクスチャデータの圧縮が可能となり、内蔵ＤＲＡＭの効率良い利用が可能となる。
【００２６】
さらにＤＲＡＭ１４７には、描画と同時並行的に隠れ面処理を行うため、描画しようとしている物体の奥行き情報が格納されている。
なお、表示データと奥行きデータおよびテクスチャデータの格納方法としては、メモリブロックの先頭から連続して表示データが格納され、次に奥行きデータが格納され、残りの空いた領域に、テクスチャの種類毎に連続したアドレス空間でテクスチャデータが格納される。これにより、テクスチャデータを効率よく格納できることになる。
【００２７】
図２は、ＤＲＡＭ１４７、ＳＲＡＭ１４８、並びに、ＤＲＡＭ１４７およびＳＲＡＭ１４８へアクセスするメモリＩ／Ｆ回路１４４の具体的な構成例を示すブロック図である。
【００２８】
図２に示すように、図１に示すＤＲＡＭ１４７およびＳＲＡＭ１４８は、前述したように４個のメモリモジュール２００，２１０，２２０，２３０に分割されている。
【００２９】
メモリモジュール２００は、メモリ２０１，２０２を有する。
メモリ２０１は、ＤＲＡＭ１４７の一部を構成するバンク２０１Ａ，２０１Ｂと、ＳＲＡＭ１４８の一部を構成するバンク２０１Ｃ，２０１Ｄとを有する。
また、メモリ２０２は、ＤＲＡＭ１４７の一部を構成するバンク２０２Ａ，２０２Ｂと、ＳＲＡＭ１４８の一部を構成するバンク２０２Ｃ，２０２Ｄとを有する。
なお、ＳＲＡＭ１４８を構成するバンク２０１Ｃ，２０１Ｄ，２０２Ｃ，２０２Ｄに対しては同時アクセスが可能である。
【００３０】
メモリモジュール２１０は、メモリ２１１，２１２を有する。
メモリ２１１は、ＤＲＡＭ１４７の一部を構成するバンク２１１Ａ，２１１Ｂと、ＳＲＡＭ１４８の一部を構成するバンク２１１Ｃ，２１１Ｄとを有する。
また、メモリ２１２は、ＤＲＡＭ１４７の一部を構成するバンク２１２Ａ，２１２Ｂと、ＳＲＡＭ１４８の一部を構成するバンク２１２Ｃ，２１２Ｄとを有する。
なお、ＳＲＡＭ１４８を構成するバンク２１１Ｃ，２１１Ｄ，２１２Ｃ，２１２Ｄに対しては同時アクセスが可能である。
【００３１】
メモリモジュール２２０は、メモリ２２１，２２２を有する。
メモリ２２１は、ＤＲＡＭ１４７の一部を構成するバンク２２１Ａ，２２１Ｂと、ＳＲＡＭ１４８の一部を構成するバンク２２１Ｃ，２２１Ｄとを有する。
また、メモリ２２２は、ＤＲＡＭ１４７の一部を構成するバンク２２２Ａ，２２２Ｂと、ＳＲＡＭ１４８の一部を構成するバンク２２２Ｃ，２２２Ｄとを有する。
なお、ＳＲＡＭ１４８を構成するバンク２２１Ｃ，２２１Ｄ，２２２Ｃ，２２２Ｄに対しては同時アクセスが可能である。
【００３２】
メモリモジュール２３０は、メモリ２３１，２３２を有する。
メモリ２３１は、ＤＲＡＭ１４７の一部を構成するバンク２３１Ａ，２３１Ｂと、ＳＲＡＭ１４８の一部を構成するバンク２３１Ｃ，２３１Ｄとを有する。
また、メモリ２３２は、ＤＲＡＭ１４７の一部を構成するバンク２３２Ａ，２３２Ｂと、ＳＲＡＭ１４８の一部を構成するバンク２３２Ｃ，２３２Ｄとを有する。
なお、ＳＲＡＭ１４８を構成するバンク２３１Ｃ，２３１Ｄ，２３２Ｃ，２３２Ｄに対しては同時アクセスが可能である。
【００３３】
ここで、メモリモジュール２００，２１０，２２０，２３０の各々は、図１に示すテクスチャバッファ１４７ａ、ディスプレイバッファ１４７ｂ、Ｚバッファ１４７ｃおよびテクスチャＣＬＵＴバッファ１４７ｄの全ての機能を持つ。
すなわち、メモリモジュール２００，２１０，２２０，２３０の各々は、対応する画素のテクスチャデータ、描画データ（（Ｒ，Ｇ，Ｂ）データ）、ｚデータおよびテクスチャカラールックアップテーブルデータの全てを記憶する。
ただし、メモリモジュール２００，２１０，２２０，２３０は、相互で異なる画素についてのデータを記憶する。
ここで、同時に処理される１６画素についてのテクスチャデータ、描画データ、ｚデータおよびテクスチャカラールックアップテーブルデータが、相互に異なるバンク２０１Ａ，２０１Ｂ，２０２Ａ，２０２Ｂ，２１１Ａ，２１１Ｂ，２１２Ａ，２１２Ｂ，２２１Ａ，２２１Ｂ，２２２Ａ，２２２Ｂ，２３１Ａ，２３１Ｂ，２３２Ａ，２３２Ｂに記憶される。
これにより、メモリＩ／Ｆ回路１４４は、ＤＲＡＭ１４７に対して、例えば８（Ｘ方向）×２画素（Ｙ方向）の１６画素についてのデータが同時に書き込むことが可能になる。
なお、読み出しは、例えば、８（Ｘ方向）×１画素（Ｙ方向）の８画素についてデータが同時に読み出すことが可能になる。
なお、メモリＩ／Ｆ回路１４４は、後述するように、いわゆる所定のインターリーブ方式のアドレッシングに基づいてＤＲＡＭ１４７へのアクセス（書き込み）を行う。
【００３４】
図３は、ＤＲＡＭ１４７のバッファ（例えばテクスチャバッファ）としての構成例を示す概略図である。
図３に示すように、２×８画素（ピクセル）の領域でメモリアクセスされたデータは、ページ（ロウ）やブロック（カラム）と呼ばれる領域に格納される。
各ロウＲＯＷ０〜ＲＯＷn+1 は、図３（ａ）に示すように、それぞれ４個のカラム（ブロック）Ｍ０Ａ，Ｍ０Ｂ，Ｍ１Ａ，Ｍ１Ｂに区分けされている。
そして、書き込み時には、Ｘ方向およびＹ方向について偶数のバウンダリ、読み出し時には、Ｘ方向について８の倍数のバウンダリ、Ｙ方向については任意バウンダリの領域でアクセスが行われる。
【００３５】
なお、バンク２０１Ｃ，２０１Ｄ，２０２Ｃ，２０２Ｄ，２１１Ｃ，２１１Ｄ，２１２Ｃ，２１２Ｄ，２２１Ｃ，２２１Ｄ，２２２Ｃ，２２２Ｄ，２３１Ｃ，２３１Ｄ，２３２Ｃ，２３２Ｄには、それぞれバンク２０１Ａ，２０１Ｂ，２０２Ａ，２０２Ｂ，２１１Ａ，２１１Ｂ，２１２Ａ，２１２Ｂ，２２１Ａ，２２１Ｂ，２２２Ａ，２２２Ｂ，２３１Ａ，２３１Ｂ，２３２Ａ，２３２Ｂに記憶されているテクスチャデータが記憶される。
【００３６】
次に、インターリーブ方式のアドレッシングに基づくテクスチャバッファ１４７ａにおけるテクスチャデータの記憶パターンについて、図４〜図６に関連付けてさらに詳細に説明する。
図４はテクスチャデータに含まれる同時にアクセスが行われるカラーデータ（画素データ）を説明するための図、図５はテクスチャデータを構成する単位ブロックを説明するための図、図６はテクスチャバッファのアドレス空間を説明するするための図である。
【００３７】
本実施形態の場合、図４に示すように、テクスチャデータに含まれる、２×８のマトリクス状に配置された画素の色データを示すカラーデータｐｉｘ0 〜ｐｉｘ15が、同時にアクセスされる。
【００３８】
カラーデータｐｉｘ0 〜ｐｉｘ15は、テクスチャバッファ１４７ａを構成するＳＲＡＭ１４８の異なるバンクに記憶される必要がある。
本実施形態では、カラーデータｐｉｘ0 ，ｐｉｘ1 ，ｐｉｘ8 ，ｐｉｘ9 が、それぞれ図２に示すメモリ２０１のバンク２０１Ｃ，２０１Ｄおよびメモリ２０２のバンク２０２Ｃ，２０２Ｄに記憶される。また、カラーデータｐｉｘ2 ，ｐｉｘ3 ，ｐｉｘ10，ｐｉｘ11が、それぞれ図２に示すメモリ２１１のバンク２１１Ｃ，２１１Ｄおよびメモリ２１２のバンク２１２Ｃ，２１２Ｄに記憶される。また、カラーデータｐｉｘ4 ，ｐｉｘ5 ，ｐｉｘ12，ｐｉｘ13が、それぞれ図２に示すメモリ２２１のバンク２２１Ｃ，２２１Ｄおよびメモリ２２２のバンク２２２Ｃ，２２２Ｄに記憶される。さらに、カラーデータｐｉｘ6 ，ｐｉｘ7 ，ｐｉｘ14，ｐｉｘ15が、それぞれ図２に示すメモリ２３１のバンク２３１Ｃ，２３１Ｄおよびメモリ２３２のバンク２３２Ｃ，２３２Ｄに記憶される。
【００３９】
本実施形態では、同時に処理される矩形領域内に位置する画素のカラーデータｐｉｘ0 〜ｐｉｘ15の組を単位ブロックＲi と呼び、例えば、１枚のイメージを示すテクスチャデータは、図５に示すように、Ｂ×Ａのマトリクス状に配置された単位ブロックＲ0 〜ＲBA-1からなる。
単位ブロックＲ0 〜ＲBA-1は、図６に示すように、１次元のアドレス空間で連続したアドレスを持つように、テクスチャバッファ１４７ａを構成するＤＲＡＭ１４７に記憶されている。また、各単位ブロックＲ0 〜ＲBA-1内のカラーデータｐｉｘ0 〜ｐｉｘ15は、１次元のアドレス空間内で連続したアドレスを持つように、ＳＲＡＭ１４８の相互に異なるバンクに記憶される。
すなわち、テクスチャバッファ１４７ａには、同時にアクセスが行われるカラーデータからなる単位ブロックが、一次元のアドレス空間で連続したアドレスを持つように記憶される。
【００４０】
ホストインタフェース回路１４９
ホストインタフェース回路１４９は、レンダリング回路１４の外部でメインバス１５に接続され、レンダリング回路１４の内部でＤＤＡセットアップ回路１４１およびメモリＩ／Ｆ回路１４４に接続されている。
ホストインタフェース回路１４９は、後述するように、メモリＩ／Ｆ回路１４４と、メインプセッサ１１およびＩ／Ｏインタフェース回路１３との間で通信を行う際のインタフェースとなる。
【００４１】
ＤＤＡセットアップ回路１４１
ＤＤＡセットアップ回路１４１は、後段のトライアングルＤＤＡ回路１４２において物理座標系上の三角形の各頂点の値を線形補間して、三角形の内部の各画素の色と深さ情報を求めるに先立ち、ポリゴンレンダリングデータＳ１１が示す（ｚ，Ｒ，Ｇ，Ｂ，ｓ，ｔ，ｑ）データについて、三角形の辺と水平方向の差分などを求めるセットアップ演算を行う。
このセットアップ演算は、具体的には、開始点の値と終点の値と、開始点と終点との距離を用いて、単位長さ移動した場合における、求めようとしている値の変分を算出する。
ＤＤＡセットアップ回路１４１は、算出した変分データＳ１４１をトライアングルＤＤＡ回路１４２に出力する。
【００４２】
トライアングルＤＤＡ回路１４２
トライアングルＤＤＡ回路１４２は、ＤＤＡセットアップ回路１４１から入力した変分データＳ１４１を用いて、三角形内部の各画素における線形補間された（ｚ，Ｒ，Ｇ，Ｂ，ｓ，ｔ，ｑ）データを算出する。
トライアングルＤＤＡ回路１１は、各画素の（ｘ，ｙ）データと、当該（ｘ，ｙ）座標における（ｚ，Ｒ，Ｇ，Ｂ，ｓ，ｔ，ｑ）データとを、ＤＤＡデータ（補間データ）Ｓ１４２としてテクスチャエンジン回路１４３に出力する。
例えば、トライアングルＤＤＡ回路１４２は、並行して処理を行う矩形内に位置する８（＝２×４）画素分のＤＤＡデータＳ１４２をテクスチャエンジン回路１４３に出力する。
【００４３】
テクスチャエンジン回路１４３
テクスチャエンジン回路１４３は、「ｓ／ｑ」および「ｔ／ｑ」の算出処理、テクスチャ座標データ（ｕ，ｖ）の算出処理、テクスチャバッファ１４７ａからの（Ｒ，Ｇ，Ｂ）データの読み出し処理等をパイプライン方式で行う。
なお、テクスチャエンジン回路１４３は、例えば所定の矩形内に位置する８画素についての処理を同時に並行して行う。
【００４４】
テクスチャエンジン回路１４３は、ＤＤＡデータＳ１４２が示す（ｓ，ｔ，ｑ）データについて、ｓデータをｑデータで除算する演算と、ｔデータをｑデータで除算する演算とを行う。
テクスチャエンジン回路１４３には、例えば図示しない除算回路が８個設けられており、８画素についての除算「ｓ／ｑ」および「ｔ／ｑ」が同時に行われる。
【００４５】
また、テクスチャエンジン回路１４３は、除算結果である「ｓ／ｑ」および「ｔ／ｑ」に、それぞれテクスチャサイズＵＳＩＺＥおよびＶＳＩＺＥを乗じて、テクスチャ座標データ（ｕ，ｖ）を生成する。
また、テクスチャエンジン回路１４３は、メモリＩ／Ｆ回路１４４を介して、ＳＲＡＭ１４８あるいはＤＲＡＭ１４７に、生成したテクスチャ座標データ（ｕ，ｖ）を含む読み出し要求を出力し、メモリＩ／Ｆ回路１４４を介して、ＳＲＡＭ１４８あるいはテクスチャバッファ１４７ａに記憶されているテクスチャデータを読み出すことで、（ｓ，ｔ）データに対応したテクスチャアドレスに記憶された（Ｒ，Ｇ，Ｂ）データＳ１４８を得る。
ここで、ＳＲＡ５１４８には、前述したようにテクスチャバッファ１４７ａに格納されているテクスチャデータが記憶される。
テクスチャエンジン回路１４３は、読み出した（Ｒ，Ｇ，Ｂ）データＳ１４８の（Ｒ，Ｇ，Ｂ）データと、前段のトライアングルＤＤＡ回路１４２からのＤＤＡデータＳ１４２に含まれる（Ｒ，Ｇ，Ｂ）データとを、それぞれ掛け合わせるなどして、カラーデータＳ１４３を生成する。
テクスチャエンジン回路１４３は、このカラーデータＳ１４３をメモリＩ／Ｆ回路１４４に出力する。
【００４６】
なお、テクスチャバッファ１４７ａには、ＭＩＰＭＡＰ（複数解像度テクスチャ）などの複数の縮小率に対応したテクスチャデータが記憶されている。ここで、何れの縮小率のテクスチャデータを用いるかは、所定のアルゴリズムを用いて、前記三角形単位で決定される。
【００４７】
テクスチャエンジン回路１４３は、フルカラー方式の場合には、テクスチャバッファ１４７ａから読み出した（Ｒ，Ｇ，Ｂ）データを直接用いる。
一方、テクスチ７エンジン回路１４３は、インデックスカラー方式の場合には、あらかじめ作成したカラールックアップテーブル（ＣＬＵＴ）をテクスチャＣＬＵＴバッファ１４７ｄから読み出して、内蔵するＳＲＡＭに転送および記憶し、このカラールックアップテーブルを用いて、テクスチャバッファ１４７ａから読み出したカラーインデックスに対応する（Ｒ，Ｇ，Ｂ）データを得る。
【００４８】
メモリＩ／Ｆ回路１４４
メモリＩ／Ｆ回路１４４は、テクスチャエンジン回路１４３から入力したカラーデータＳ１４３に対応するｚデータと、ｚバッファ１４７ｃに記憶されているｚデータとの比較を行い、入力したカラーデータＳ１４３によって描画される画像が、前回、ディスプレイバッファ１４７ｂに書き込まれた画像より、手前（視点側）に位置するか否かを判断し、手前に位置する場合には、画像データＳ１４３に対応するｚデータでｚバッファ１４７ｃに記憶されたｚデータを更新する。
また、メモリＩ／Ｆ回路１４４は、（Ｒ，Ｇ，Ｂ）データをディスプレイバッファ１４７ｂに書き込む。
さらに、メモリＩ／Ｆ回路１４４は、テクスチャエンジン回路１４３からのＳＲＡＭ１４８に、生成されたテクスチャ座標データ（ｕ，ｖ）を含む読み出し要求を受けた場合には、ＳＲＡＭ１４８に記憶された（Ｒ，Ｇ，Ｂ）データＳ１４８を読み出す。
また、メモリＩ／Ｆ回路１４４は、ＣＲＴコントロール回路１４５から表示データを読み出す要求を受けた場合には、この要求に応じて、ディスプレイバッファ１４７ｂから一定の固まり、例えば８画素あるいは１６画素単位で表示データを読み出す。
【００４９】
また、メモリＩ／Ｆ回路１４４は、ＤＲＡＭ１４７から読み出したデータをホストインタフェース回路１４９に出力する。
【００５０】
メモリＩ／Ｆ回路１４４は、ＤＲＡＭ１４７およびＳＲＡＭ１４８へのアクセス（書き込みまたは読み出し）を行うが、書き込み経路と読み出し経路とが別経路として構成されている。
すなわち、書き込みの場合には書き込みアドレスＡＤＲＷとカラーデータｃｄｗが書き込み系回路で処理されてＤＲＡＭ１４７に書き込み、読み出しの場合には読み出し系回路で処理されてＤＲＡＭ１４７またはＳＲＡＭ１４８から読み出す。
そして、メモリＩ／Ｆ回路１４４は、所定のインターリーブ方式のアドレッシングに基づいてＤＲＡＭ１４７へのアクセスを、書き込みを１６画素単位、読み出しを８画素単位で行う。
【００５１】
以下に、メモリＩ／Ｆ回路１４４の具体的な構成例について、図２にを参照しながら説明する。
【００５２】
メモリＩ／Ｆ回路１４４は、図２に示すように、ディストリビュータ３００、アドレスコンバータ３１０，３２０，３３０，３４０、メモリコントローラ３５０，３６０，３７０，３８０、読み出しコントローラ３９０およびデータ並べ替え部４００を有する。
【００５３】
〔ディストリビュータ３００〕
ディストリビュータ３００は、書き込み時に、データ並べ替え部４００から８画素分のカラーデータｃｗｄおよび書き込みアドレスＡＤＲＷ2 を入力し、これらから１６画素分のカラーデータを生成した後に、各々４画素分のデータからなる４つの画像データＳ３０１，Ｓ３０２，Ｓ３０３，Ｓ３０４に分割し、その画像データおよび書き込みアドレスをそれぞれアドレスコンバータ３１０，３２０，３３０，３４０に出力する。
ここで、１画素分の（Ｒ，Ｇ，Ｂ）データは各々３２ビット、ｚデータは３２ビットからなる。
【００５４】
〔アドレスコンバータ３１０，３２０，３３０，３４０〕
アドレスコンバータ３１０，３２０，３３０，３４０は、書き込み時に、ディストリビュータ３００から入力した（Ｒ，Ｇ，Ｂ）データおよびｚデータに対応したアドレスを、それぞれメモリモジュール２００，２１０，２２０，２３０内のアドレスに変換し、それぞれ変換したアドレスＳ３１０，Ｓ３２０，Ｓ３３０，Ｓ３４０と分割された画像データをメモリコントローラ３５０，３６０，３７０，３８０に出力する。
【００５５】
図７は、このディストリビュータ３００の画像データ処理（ピクセル処理）を模式的に示す図である。
この図は、前述した図３〜図６に対応するものであり、ディストリビュータ３００は、ＤＲＡＭ１４７に対して、例えば２×８画素の１６画素についてのデータが同時にアクセス可能になるように画像データ処理を行う。
そして、読み出し動作では、Ｘ方向について８の倍数のバウンダリ、かつＹ方向について任意のバウンダリでの領域でアクセスを行い、書き込み動作では、Ｘ方向およびＹ方向について偶数のバウンダリの領域でアクセスを行うようなアドレッシングとなるように画像データの処理を行う。
これによりＤＲＡＭ１４７は、アクセスの先頭がメモリセル番号ＭＣＮ「１」，「２」，「３」にはならず、必ずメモリセル番号ＭＣＮ「０」となり、ページ違反の発生等が防止される。
また、ディストリビュータ３００は、各ＤＲＡＭモジュール２２０〜２３０に対して、カラーデータを、表示領域において隣接した部分は、異なるＤＲＡＭモジュールとなる配置するとなるように画像データの処理を行う。
これにより、三角形のような平面を描画する場合には面で同時に処理できることになるため、それぞれのＤＲＡＭモジュールの動作確率は非常に高くなっている。
【００５６】
〔メモリコントローラ３５０，３６０，３７０，３８０〕
メモリコントローラ３５０，３６０，３７０，３８０は、それぞれ書き込み系配線群４０１Ｗ，４０２Ｗ，４１１Ｗ，４１２Ｗ，４２１Ｗ，４２２Ｗ，４３１Ｗ，４３２Ｗ、並びに読み出し系配線群４０１Ｒ，４０２Ｒ，４１１Ｒ，４１２Ｒ，４２１Ｒ，４２２Ｒ，４３１Ｒ，４３２Ｒを介してメモリモジュール２００，２１０，２２０，２３０に接続されており、書き込み時および読み出し時にメモリモジュール２００，２１０，２２０，２３０に対してのアクセスを制御する。
【００５７】
具体的には、書き込み時には、メモリコントローラ３５０，３６０，３７０，３８０は、ディストリビュータ３００から出力され、アドレスコンバータ３５０，３６０，３７０，３８０から入力した４画素分の（Ｒ，Ｇ，Ｂ）データおよびｚデータを、書き込み系配線群４０１Ｗ，４０２Ｗ，４１１Ｗ，４１２Ｗ，４２１Ｗ，４２２Ｗ，４３１Ｗ，４３２Ｗを介してメモリモジュール２００，２１０，２２０，２３０に同時に書き込む。
このとき、例えば、メモリモジュール２００では、前述したように、バンク２０１Ａ，２０１Ｂ，２０２Ａ，２０２Ｂの各々に、１画素分の（Ｒ，Ｇ，Ｂ）データおよびｚデータが記憶される。メモリモジュール２１０，２２０，２３０についても同じである。
【００５８】
また、各メモリコントローラ３５０，３６０，３７０，３８０は、自身のステートマシンがいわゆるアイドル（ＩＤＬＥ）状態にあるときに、アイドル信号Ｓ３５０，Ｓ３６０，Ｓ３７０，Ｓ３８０を読み出しコントローラ３９０にアクティブで出力し、このアイドル信号Ｓ３５０，Ｓ３６０，Ｓ３７０，Ｓ３８０に応答した読み出しコントローラ３９０による読み出しアドレスおよび読み出し要求信号Ｓ３９１を受けて、読み出し系配線群４０１Ｒ，４０２Ｒ，４１１Ｒ，４１２Ｒ，４２１Ｒ，４２２Ｒ，４３１Ｒ，４３２Ｒを介してデータの読み出しを行い、読み出し系配線群３５１，３６１，３７１，３８１、並びに配線群４４０を介して読み出しコントローラ３９０に出力する。
【００５９】
なお、本実施形態では、書き込み系配線群４０１Ｗ，４０２Ｗ，４１１Ｗ，４１２Ｗ，４２１Ｗ，４２２Ｗ，４３１Ｗ，４３２Ｗ、並びに読み出し系配線群４０１Ｒ，４０２Ｒ，４１１Ｒ，４１２Ｒ，４２１Ｒ，４２２Ｒ，４３１Ｒ，４３２Ｒの配線本数は１２８本（１２８ビット）、読み出し系配線群３５１，３６１，３７１，３８１の配線本数は２５６本（２５６ビット）、ならびに読み出し系配線群４４０の配線本数は１０２４本（１０２４ビット）である。
【００６０】
〔読み出しコントローラ３９０〕
読み出しコントローラ３９０は、アドレスコンバータ３９１およびデータ演算処理部３９２により構成されている。
アドレスコンバータ３９１は、読み出しアドレスＡＤＲＲ2 を受けた場合、メモリコントローラ３５０，３６０，３７０，３８０からのアイドル信号Ｓ３５０，Ｓ３６０，Ｓ３７０，Ｓ３８０をすべてアクティブで受けると、このアイドル信号Ｓ３５０，Ｓ３６０，Ｓ３７０，Ｓ３８０に応答して、８画素単位で読み出しを行うように、読み出しアドレスおよび読み出し要求信号Ｓ３９１を各メモリコントローラ３５０，３６０，３７０，３８０に出力する。
データ演算部３９２は、読み出しアドレスおよび読み出し要求信号Ｓ３９１に応答して各メモリコントローラ３５０，３６０，３７０，３８０で読み出された８画素あるいは１６画素単位の、テクスチャデータ、（Ｒ，Ｇ，Ｂ）データ、ｚデータおよびテクスチャカラールックアップテーブルデータを配線群４４０を介して入力し、所定の演算処理を行って、データ並べ替え部４００でデータ並べ替えを行った後に、要求先、例えばホストインタフェース回路１４９に出力する。
また、ＤＲＡＭ１４７の記憶領域内において一の矩形領域からデータを読み出して他の矩形領域に書き込む場合にも、読み出しコントローラ３９０、データ並べ替え部４００およびディストリビュータ３００を介してデータ転送が行われる。
【００６１】
読み出しコントローラ３９０は、上述したように、メモリコントローラ３５０，３６０，３７０，３８０のすべてがアイドル状態にあるときに、読み出しアドレスおよび読み出し要求信号Ｓ３９１をメモリコントローラ３５０，３６０，３７０，３８０に出力して読み出しデータを受けることから、読み出すデータの同期をとることができる。
したがって、読み出しコントローラ３９０は、データを一時的に保持するＦＩＦＯ(First In First Out)回路等の保持回路を設ける必要がなく、回路規模の縮小化が図られている。
【００６２】
〔データ並べ替え部４００〕
データ並べ替え部４００は、「Ｈｏｓｔ  ｔｏ  Ｌｏｃａｌ」、「Ｌｏｃａｌｔｏ  Ｈｏｓｔ」、「Ｌｏｃａｌ  ｔｏ  Ｌｏｃａｌ」の３つの転送モードを有し、各々の転送モードに応じてデータの並べ替えを行う。
データ並べ替え部４００は、例えば、テクスチャエンジン回路１４３から入力した転送モード指示信号および画素データ長指示信号に基づいて、転送モードおよび１画素のデータ長を判断する。
なお、１画素のデータ長としては、例えば、３２ビット、１６ビット、８ビットおよび４ビットがある。
ここで、１画素のデータ長３２ビットおよび１６ビットは、テクスチャデータなどに用いられ、１画素のデータ長８ビットおよび４ビットは、インデックスデータなどに用いられる。
【００６３】
データ並べ替え部４００は、「Ｈｏｓｔ  ｔｏ  Ｌｏｃａｌ」転送モードにおいて、テクスチャエンジン回路１４３から入力した６４ビット幅の転送データｈｗｄ（カラーデータＳ１４３）と書き込みアドレスＡＤＲＷ1 とから、２５６ビット幅のカラーデータｃｗｄと、代表点座標（ｂｔｒｘ，ｂｔｒｙ）およびバリッドフラグｂｔｒｖｌｄを含むアドレスＡＤＲＷ2 とを生成し、これらをディストリビュータ３００に出力する。
【００６４】
また、データ並べ替え部４００は、「Ｌｏｃａｌ  ｔｏ  Ｈｏｓｔ」転送モードにおいて、ホストインタフェース回路１４９から入力したアドレスＡＤＲＲ1 に応じたアドレスＡＤＲＲ2 を生成し、当該アドレスＡＤＲＲ2 に基づいて行われた読み出し動作によって、コントローラ３９０から入力した８画素分の２５６ビットのカラーデータｍｃ＿０ｄｔｒ〜ｍｃ＿７ｄｔｒを、パッキングして６４ビット幅の転送データｈｒｄを生成し、これをホストインタフェース回路１４９に出力する。
【００６５】
さらに、データ並べ替え部４００は、「Ｌｏｃａｌ  ｔｏ  Ｌｏｃａｌ」転送モードにおいて、ＤＲＡＭ１４７の記憶領域内で一の矩形記憶領域からデータを読み出して他の矩形記憶領域に転送する（書き込む）際に、読み出しコントローラ３９０から８画素分の２５６ビットのカラーデータｍｃ＿０ｄｔｒ〜ｍｃ＿７ｄｔｒを入力し、これを転送先の矩形記憶領域の起点座標にあわせてシフトしてカラーデータｃｗｄを生成し、当該カラーデータｃｗｄと、転送先の書き込み動作で使用される代表点座標（ｂｔｒｘ，ｂｔｒｙ）およびバリッドフラグｂｔｒｖｌｄを含むアドレスＡＤＲＷ2 とをディストリビュータ３００に出力する。
【００６６】
図８は、図２に示すデータ並べ替え部４００の構成図である。
図８に示すように、データ並べ替え部４００は、ＦＩＦＯ(First In First Out)回路４１０1 〜４１０3 、ラッチ回路４１０4 データ並べ替え回路４２０、アドレス生成部４３０およびコントローラ４４０を有する。
【００６７】
ＦＩＦＯ回路４１０1 は、例えば、６４ビット幅で深さ３段のＦＩＦＯ回路であり、コントローラ４４０からの制御信号Ｓ４４０1 に基づいて、テクスチャエンジン回路１４３から入力した６４ビット幅の転送データｈｗｄをＦＩＦＯ方式でデータ並べ替え回路４２０に出力する。
ＦＩＦＯ回路４１０2 は、例えば、６４ビット幅で深さ３段のＦＩＦＯ回路であり、コントローラ４４０からの制御信号Ｓ４４０2 に基づいて、データ並べ替え回路４２０から入力した６４ビット幅の転送データｈｒｄをＦＩＦＯ方式でホストインタフェース回路１４９に出力する。
【００６８】
ＦＩＦＯ回路４１０3 は、例えば、６４ビット幅で深さ１６段のＦＩＦＯ回路であり、コントローラ４４０からの制御信号Ｓ４４０3 に基づいて、読み出しコントローラ３９０から入力した各々３２ビットの８画素分のカラーデータｍｃ＿０ｄｔｒ〜ｍｃ＿７ｄｔｒをＦＩＦＯ方式でデータ並べ替え回路４２０に出力する。
ＦＩＦＯ回路４１０3 へのカラーデータｍｃ＿０ｄｔｒ〜ｍｃ＿７ｄｔｒの入力は、後述するように、コントローラ４４０によって制御される。
ラッチ回路４１０4 は、例えば、２５６ビット幅であり、コントローラ４４０からの制御信号Ｓ４４０4 に基づいて、データ並べ替え回路４２０から入力した２５６ビット幅のカラーデータｃｗｄ＿ａを図２に示すディストリビュータ３００に出力する。
【００６９】
図９は、図８に示すデータ並べ替え回路４２０の構成図である。
図９に示すように、データ並べ替え回路４２０は、シフト回路４５０1 ，４５０2 、セレクタ４５１0 〜４５１7 、ラッチ回路４５２0 〜４５２7 およびラッチ回路４５３0 〜４５３7 を有する。
【００７０】
シフト回路４５０1 は、「Ｈｏｓｔ  ｔｏ  Ｌｏｃａｌ」転送を行う場合に、コントローラ４４０から入力した制御信号Ｓ４４０6 に基づいて、６４ビット幅の転送データｈｗｄ、すなわち２画素分のカラーデータをＬＳＢ側に配置した２５６ビット（８画素）分のカラーデータをテクスチャエンジン回路１４３から入力し、当該カラーデータを３２ビット単位でシフト処理して生成した２５６ビットのカラーデータｍｃ＿０ａ〜ｍｃ＿７ａを出力する。
【００７１】
セレクタ４５１0 〜４５１7 は、制御信号Ｓ４４０6 に基づいて、それぞれ入力端子ａを介して入力した３２ビットのカラーデータｍｃ＿０ａ〜ｍｃ＿７ａと、入力端子ｂを介して入力した３２ビットのカラーデータｍｃ＿０ａ〜ｍｃ＿７ａとのうち一方を選択して、出力端子ａからラッチ回路４５２0 〜４５２7 に出力する。
【００７２】
ラッチ回路４５２0 〜４５２7 は、制御信号Ｓ４４０6 に基づいて、それぞれセレクタ４５１0 〜４５１7 の出力端子ｃから出力した３２ビットのカラーデータを、図８に示すＦＩＦＯ回路４１０2 あるいはラッチ回路４１０4 に出力する。
ラッチ回路４５３0 〜４５３7 は、制御信号Ｓ４４０6 に基づいて、それぞれシフト回路４５０1 から入力したカラーデータｍｃ＿０ａ〜ｍｃ＿７ａを、シフト回路４５０2 と、図８に示すＦＩＦＯ回路４１０2 あるいはラッチ回路４１０4 に出力する。
ここで、ラッチ回路４５２0 〜４５２7 の各々の３２ビットの出力線は、それぞれラッチ回路４５３0 〜４５３7 の各々の３２ビットの出力線と同じであり、それぞれラッチ回路４５２0 〜４５２7 とラッチ回路４５３0 〜４５３7 とのうち一方から３２ビットのカラーデータが出力されるように制御される。
【００７３】
シフト回路４５０2 は、ラッチ回路４５３0 〜４５３7 から入力した２５６ビットのカラーデータを３２ビット単位でシフト処理して生成した各々３２ビットのカラーデータｍｃ＿０ｂ〜ｍｃ＿７ｂを、それぞれセレクタ４５１0 〜４５１7 の入力端子ｂに出力する。
【００７４】
以下、図８に示すデータ並べ替え部４００におけるデータ並べ替え処理とアドレス生成部４３０におけるアドレス生成処理とを、各転送モードに分けて説明する。
なお、前述したように、ＤＲＡＭ１４７に対しての書き込みは、代表点を基準とした８画素（Ｘ方向）×２画素（Ｙ方向）の１６画素のカラーデータが記憶されている矩形記憶領域を単位として行われる。一方、ＤＲＡＭ１４７からの読み出しは、代表点を基準とした８画素（Ｘ方向）×１画素（Ｙ方向）の８のカラーデータが記憶されている矩形記憶領域を単位として行われる。
【００７５】
また、代表点のアドレスは、読み出し動作では、Ｙ方向については任意のアドレスを指定できるが、Ｘ方向について８の倍数のアドレスしか指定できない。一方、代表点のアドレスは、書き込み動作では、Ｘ方向およびＹ方向の双方とも、２の倍数のアドレスしか指定できない。
【００７６】
以下に示す並べ替え処理では、ＤＲＡＭ１４７の記憶領域における、図１０に示すような、幅「３」、高さ「３」で起点座標が（５，５）の矩形記憶領域５００に対してのカラーデータの読み出し動作および書き込み動作を伴う場合を例示して説明する。
【００７７】
＜「Ｈｏｓｔ  ｔｏ  Ｌｏｃａｌ」転送モード＞
以下、テクスチャエンジン回路１４３から入力した図１１に示す６４ビット幅の転送データｈｗｄ0 〜ｈｗｄ4 に含まれる８画素分の各々３２ビット（１画素のデータ長が３２ビット）のカラーデータｐｉｘ0 〜ｐｉｘ8 を、図１０に示す矩形記憶領域５００に転送して書き込む場合の動作を説明する。
【００７８】
この場合には、テクスチャエンジン回路１４３から、転送データｈｗｄが、矩形記憶領域５００の図１０中左上端点からスキャンライン方向にＸ座標が増加する順番で与えられ、１スキャンライン終了後、次のスキャンラインのデータがＸ座標が増加する順番で与えられる。このとき、スキャンラインが異なるデータも６４ビット内にパックされて与えられる。
【００７９】
先ず、テクスチャエンジン回路１４３からの図１１に示す各々６４ビット幅の転送データｈｗｄ0 〜ｈｗｄ4 が、図８に示すＦＩＦＯ回路４１０1 を介して、データ並べ替え回路４２０に順に出力される。
そして、転送データｈｗｄ0 のカラーデータｐｉｘ0 ，ｐｉｘ1 をＬＳＢから順に配置した２５６ビットのカラーデータが、図９に示すシフト回路４５０1 において、図１２（Ａ）に示すように、３２ビット単位でＭＳＢに向けて「１」だけシフトされ、当該シフト後のカラーデータｃｗｄ＿ａ0 が、図９に示すラッチ回路４５３0 〜４５３7 から図１３（Ａ）に示すカラーデータｃｗｄ0 として出力され、カラーデータｃｗｄ0 が図８に示すラッチ回路４１０4 を介して図２に示すディストリビュータ３００に出力される。
【００８０】
次に、転送データｈｗｄ1 のカラーデータｐｉｘ2 ，ｐｉｘ3 をＬＳＢから順に配置した２５６ビットのカラーデータが、図９に示すシフト回路４５０1 において、図１２（Ｂ）に示すように、３２ビット単位でＭＳＢに向けて「１」だけシフトされ、当該シフト後のカラーデータｃｗｄ＿ａ1 が、図９に示すラッチ回路４５３0 〜４５３7 から図１３（Ｂ）に示すカラーデータｃｗｄ1 として出力され、カラーデータｃｗｄ1 が図８に示すラッチ回路４１０4 を介して図２に示すディストリビュータ３００に出力される。
また、シフト後のカラーデータｃｗｄ＿ａ1 は、セレクタ４５１0 〜４５１7 およびラッチ回路４５２0 〜４５２7 を介して、シフト回路４５０2 に出力される。
【００８１】
次に、転送データｈｗｄ2 のカラーデータｐｉｘ4 ，ｐｉｘ5 をＬＳＢから順に配置した２５６ビットのカラーデータが、図９に示すシフト回路４５０1 において、図１２（Ｃ）に示すように、３２ビット単位でＭＳＢに向けて「２」だけシフトされた後に、図９に示すセレクタ４５１0 〜４５１7 を介してラッチ回路４５３0 〜４５３7 に記憶される。
このとき、カラーデータｐｉｘ4 ，ｐｉｘ5 が、ラッチ回路４５３2 ，４５３3 に記憶される。
また、前述したシフト回路４５０2 に出力された、図１２（Ｂ）に示す２５６ビットのカラーデータｃｗｄ＿ａ1 が、ＬＳＢに向けて「１」だけシフトされた後に、セレクタ４５１0 〜４５１7 を介してラッチ回路４５２0 〜４５２7 に記憶される。このとき、カラーデータｐｉｘ3 が、ラッチ回路４５２1 に記憶される。
そして、ラッチ回路４５３0 ，４５２1 ，４５３2 〜４５３7 からの出力によって、図１３（Ｃ）に示すように、カラーデータｐｉｘ3 ，ｐｉｘ4 ，ｐｉｘ5 を含むカラーデータｃｗｄ2 が、図８に示すラッチ回路４１０4 を介して図２に示すディストリビュータ３００に出力される。
【００８２】
次に、転送データｈｗｄ3 のカラーデータｐｉｘ6 ，ｐｉｘ7 をＬＳＢから順に配置した２５６ビットのカラーデータが、図９に示すシフト回路４５０1 において、図１２（Ｄ）に示すように、３２ビット単位でＭＳＢに向けて「１」だけシフトされ、当該シフト後のカラーデータｃｗｄ＿ａ3 が、図９に示すラッチ回路４５３0 〜４５３7 から図１３（Ｄ）に示すカラーデータｃｗｄ3 として出力され、カラーデータｃｗｄ3 が図８に示すラッチ回路４１０4 を介して図２に示すディストリビュータ３００に出力される。
【００８３】
次に、転送データｈｗｄ4 のカラーデータｐｉｘ8 をＬＳＢから順に配置した２５６ビットのカラーデータが、図９に示すシフト回路４５０1 において、図１２（Ｅ）に示すように、３２ビット単位でＭＳＢに向けて「１」だけシフトされ、当該シフト後のカラーデータｃｗｄ＿ａ4 が、図９に示すラッチ回路４５３0 〜４５３7 から図１３（Ｅ）に示すカラーデータｃｗｄ4 として出力され、カラーデータｃｗｄ4 が図８に示すラッチ回路４１０4 を介して図２に示すディストリビュータ３００に出力される。
【００８４】
また、データ並べ替え部４００では、上述したカラーデータｃｗｄ0 〜ｃｗｄ4 に対応する代表点座標（ｂｔｒｘ，ｂｔｒｙ）およびバリッドフラグｂｔｒｖｌｄをアドレス生成部４３０において生成する。
代表点座標（ｂｔｒｘ，ｂｔｒｙ）およびバリッドフラグｂｔｒｖｌｄは、アドレスＡＤＲＷ2 内に含められ、ディストリビュータ３００に出力される。
ここで、カラーデータｃｗｄ0 〜ｃｗｄ4 に対応する、代表点座標を（ｂｔｒｘ0 ，ｂｔｒｙ0 ）〜（ｂｔｒｘ4 ，ｂｔｒｙ4 ）とし、バリッドフラグをｂｔｒｖｌｄ0 〜ｂｔｒｖｌｄ4 とする。
なお、アドレス生成部４３０における、アドレスＡＤＲＷ2 の生成は、図８に示すコントローラ４４０からの制御信号Ｓ４４０5 に基づいて行われる。
【００８５】
また、バリッドフラグｂｔｒｖｌｄは、１６ビットからなり、前述したように８画素（Ｘ方向）×２画素（Ｙ方向）の１６画素分の矩形記憶領域（２５６×２ビット）を単位としてＤＲＡＭ１４７に書き込みを行う際に、記憶内容の書き換えを行うか否かを、各画素の記憶領域毎に示している。バリッドフラグｂｔｒ座標ｖｌｄの各ビットは、書き込みを行う単位である１６画素分の記憶領域の各１画素分の記憶領域に対応している。バリッドフラグｂｔｒｖｌｄの各ビットは、対応する記憶領域をマスクする場合（書き換えを行わない場合）に論理値「０」を示し、マスクしない場合（書き換えを行う場合）に論理値「１」を示している。
【００８６】
ここで、１回の書き込みで使用されるカラーデータは８画素分の２５６ビットのデータであるため、当該カラーデータを、書き込みを行う記憶領域のうちＹ方向のアドレスが偶数の記憶領域に書き込む場合には、１６ビットのバリッドフラグｂｔｒｖｌｄのうち上位８ビットを論理値「０」にし、書き込みを行う記憶領域のうちＹ方向のアドレスが奇数の記憶領域に書き込む場合には、１６ビットのバリッドフラグｂｔｒｖｌｄのうち下位８ビットを論理値「０」にする。
【００８７】
図１３（Ａ）〜（Ｅ）に示すように、カラーデータｃｗｄ0 〜ｃｗｄ4 のそれぞれについて、バリッドフラグｂｔｒｖｌｄ0 〜ｂｔｒｖｌｄ4 が、アドレス生成部４３０において生成される。
ここで、例えば、バリッドフラグｂｔｒｖｌｄ0 は、下位８ビットが論理値「０」になっているため、カラーデータｃｗｄ0 は、書き込みを行う記憶領域のうちＹ方向のアドレスが奇数の記憶領域に書き込まれる。
【００８８】
また、アドレス生成部４３０は、図１２（Ａ）〜（Ｅ）に示すカラーデータｃｗｄ0 〜ｃｗｄ4 のそれぞれを、前述した８画素（Ｘ方向）×２画素（Ｙ方向）の１６画素分の矩形記憶領域を単位としてＤＲＡＭ１４７に書き込む際の図１３（Ａ）〜（Ｅ）に示す代表点座標（ｂｔｒｘ0 ，ｂｔｒｙ0 ）〜（ｂｔｒｘ4 ，ｂｔｒｙ4 ）をそれぞれ生成する。
【００８９】
上述したように図２にデータ並べ替え部４００の図８に示すデータ並べ替え回路４２０で生成された図１３（Ａ）〜（Ｅ）に示すカラーデータｃｗｄ0 〜ｃｗｄ4 は、上述したように図８に示すアドレス生成部４３０において生成されたアドレスＡＤＲＷ2 に含まれる図１３（Ａ）〜（Ｅ）に示す代表点座標（ｂｔｒｘ0 ，ｂｔｒｙ0 ）〜（ｂｔｒｘ4 ，ｂｔｒｙ4 ）およびバリッドフラグをｂｔｒｖｌｄ0 〜ｂｔｒｖｌｄ4 に基づいた図２に示すディストリビュータ３００、アドレスコンバータ３１０およびメモリコントローラ３５０，３６０，３７０，３８０の処理を経て、以下に示すように、図２に示すＤＲＡＭ１４７に書き込まれる。
【００９０】
先ず、図１４（Ａ）に示すように、代表点座標（ｂｔｒｘ0 ，ｂｔｒｙ0 ）＝（４，４）によって規定される１６画素分の矩形記憶領域５００内のＹ座標が「５」（奇数）の記憶領域に、当該記憶領域内のＸ座標が最も小さいアドレスに図１３（Ａ）に示すカラーデータｃｗｄ0 のＬＳＢが書き込まれるように、カラーデータｃｗｄ0 が書き込まれる。このとき、前述したように、バリッドフラグｂｔｒｖｌｄ0 の下位８ビットが全て論理値「０」の場合にはＹ座標が奇数の記憶領域にカラーデータｃｗｄ0 が書き込まれ、バリッドフラグｂｔｒｖｌｄ0 の上位８ビットが全て論理値「０」の場合にはＹ座標が偶数の記憶領域にカラーデータｃｗｄ0 が書き込まれる。
また、カラーデータｃｗｄ0 の書き込みは、バリッドフラグｂｔｒｖｌｄ0 のうち、論理値「１」のビットに対応する各々３２ビットの記憶領域に対してのみ行われる。この場合には、バリッドフラグｂｔｒｖｌｄ0 は、「０ｘ０６００」、すなわち「０００００１１０００００００００」であり、論理値「１」のビットは、（Ｘ，Ｙ）座標が（５，５）および（６，５）の記憶領域に対応しているため、図１４（Ａ）に示すように、当該記憶領域に対してのみカラーデータｐｉｘ0 ，ｐｉｘ1 が書き込まれる。
【００９１】
次に、図１４（Ｂ）に示すように、代表点座標（ｂｔｒｘ1 ，ｂｔｒｙ1 ）＝（６，４）によって規定される１６画素分の矩形記憶領域５００内のＹ座標が「５」（奇数）の記憶領域に、図１３（Ｂ）に示すカラーデータｃｗｄ1 のカラーデータｐｉｘ2 が書き込まれる。書き込み方法は、前述した図１４（Ａ）に示す場合と同じである。
【００９２】
次に、同様に、図１４（Ｃ）に示すように、代表点座標（ｂｔｒｘ2 ，ｂｔｒｙ2 ）＝（４，６）によって規定される１６画素分の矩形記憶領域５００内のＹ座標が「６」（偶数）の記憶領域に、図１３（Ｃ）に示すカラーデータｃｗｄ2 のカラーデータｐｉｘ3 ，ｐｉｘ4 ，ｐｉｘ5 が書き込まれる。
【００９３】
次に、同様に、図１５（Ｄ）に示すように、代表点座標（ｂｔｒｘ3 ，ｂｔｒｙ3 ）＝（４，６）によって規定される１６画素分の矩形記憶領域５００内のＹ座標が「７」（奇数）の記憶領域に、図１３（Ｄ）に示すカラーデータｃｗｄ3 のカラーデータｐｉｘ6 ，ｐｉｘ7 が書き込まれる。
【００９４】
次に、同様に、図１５（Ｆ）に示すように、代表点座標（ｂｔｒｘ4 ，ｂｔｒｙ4 ）＝（６，６）によって規定される１６画素分の矩形記憶領域５００内のＹ座標が「７」（奇数）の記憶領域に、図１３（Ｅ）に示すカラーデータｃｗｄ4 のカラーデータｐｉｘ8 が書き込まれる。
【００９５】
これにより、テクスチャエンジン回路１４３から入力した図１１に示す６４ビット幅の転送データｈｗｄ0 〜ｈｗｄ4 に含まれる各々３２ビットの８画素分のカラーデータｐｉｘ0 〜ｐｉｘ8 が、図１０に示す矩形記憶領域５００に書き込まれる。
【００９６】
なお、上述した図１１〜図１５に示す例では、１画素のデータ長が３２ビットのカラーデータｐｉｘ0 〜ｐｉｘ8 を、テクスチャエンジン回路１４３から入力して図１０に示す矩形記憶領域５００に書き込む場合を例示したが、１画素のデータ長は任意であり、例えば１６ビットであってもよい。
以下、１画素のデータ長が１６ビットのカラーデータｐｉｘ0 〜ｐｉｘ8 を、テクスチャエンジン回路１４３から入力して図１０に示す矩形記憶領域５００に書き込む場合の処理について説明する。
この場合には、図１６に示すように、テクスチャエンジン回路１４３から入力される６４ビット幅の転送データには、各々４画素分のカラーデータが含まれる。
この場合には、図１６に示す転送データｈｗｄ0 に含まれるカラーデータｐｉｘ0 〜ｐｉｘ3 を含む２５６ビットのカラーデータが、図９に示すデータ並べ替え回路４２０のシフト回路４５０1 においてＭＳＢ方向に１ビットだけシフトされ、図１７（Ａ）に示す２５６ビットのカラーデータｃｗｄ＿ａ0 が生成され、当該カラーデータｃｗｄ＿ａ0 に応じてラッチ回路４５３0 〜４５３7 から、図１８（Ａ）に示すカラーデータｃｗｄ0 がディストリビュータ３００に出力される。
次に、図１６に示す転送データｈｗｄ1 に含まれるカラーデータｐｉｘ4 〜ｐｉｘ7 を含む２５６ビットのカラーデータが、図９に示すデータ並べ替え回路４２０のシフト回路４５０1 においてＭＳＢ方向に２ビットだけシフトされ、さらに、転送データｈｗｄ0 に含まれるカラーデータｐｉｘ3 を追加することで、図１７（Ｂ）に示す２５６ビットのカラーデータｃｗｄ＿ａ1 が生成され、当該カラーデータｃｗｄ＿ａ1 に応じた図１８（Ｂ）に示すカラーデータｃｗｄ1 がディストリビュータ３００に出力される。
【００９７】
次に、図１６に示す転送データｈｗｄ2 に含まれるカラーデータｐｉｘ8 を含む２５６ビットのカラーデータが、図９に示すデータ並べ替え回路４２０のシフト回路４５０1 においてＭＳＢ方向に３ビットだけシフトされ、さらに、転送データｈｗｄ1 に含まれるカラーデータｐｉｘ6 、ｐｉｘ7 を追加することで、図１７（Ｃ）に示す２５６ビットのカラーデータｃｗｄ＿ａ2 が生成され、当該カラーデータｃｗｄ＿ａ2 に応じた図１８（Ｃ）に示すカラーデータｃｗｄ2 がディストリビュータ３００に出力される。
【００９８】
また、カラーデータｃｗｄ0 〜ｃｗｄ3 に対応する図１８（Ａ）〜（Ｃ）に示す代表点座標（ｂｔｒｘ，ｂｔｒｙ）およびバリッドフラグｂｔｒｖｌｄが、アドレス生成部４３０において生成される。
【００９９】
これにより、テクスチャエンジン回路１４３から入力した図１６に示す６４ビット幅の転送データｈｗｄ0 〜ｈｗｄ2 に含まれる各々１６ビットの８画素分のカラーデータｐｉｘ0 〜ｐｉｘ8 が、図１０に示す矩形記憶領域５００に書き込まれる。
【０１００】
＜「Ｌｏｃａｌ  ｔｏ  Ｈｏｓｔ」転送モード＞
以下、ＤＲＡＭ１４７から読み出した８画素分のカラーデータｍｃ＿０ｄｔｒ〜ｍｃ＿７ｄｔｒを、６４ビット幅の転送データにパッキングして、ホストインタフェース回路１４９に出力する場合の動作を説明する。
なお、前述したように、ＤＲＡＭ１４７からの読み出しは、代表点を基準とした８画素（Ｘ方向）×１画素（Ｙ方向）の８のカラーデータが記憶されている矩形記憶領域を単位として行われる。また、代表点のアドレスは、読み出し動作では、Ｙ方向については任意のアドレスを指定できるが、Ｘ方向について８の倍数のアドレスしか指定できない。
【０１０１】
この場合に、図８に示すデータ並べ替え部４００のアドレス生成部４３０は、、ホストインタフェース回路１４９から入力したアドレスＡＤＲＲ1 に基づいて、ＤＲＡＭ１４７内の読み出しを行う矩形記憶領域について、図１９に示すＸ，Ｙ座標系における図１９中左上端からスキャンライン方向にＸ座標が増大する順番で代表点座標（ｓｂｘ，ｓｂｙ）を算出する。そして、当該代表点座標（ｓｂｘ，ｓｂｙ）を含むアドレスＡＤＲＲ2 をディストリビュータ３００に出力する。
【０１０２】
また、データ並べ替え回路４２０は、アドレスＡＤＲＲ2 に応じてＤＲＡＭ１４７から読み出された８画素分のカラーデータｍｃ＿０ｄｔｒ〜ｍｃ＿７ｄｔｒを、図２に示す読み出しコントローラ３９０から図８に示すデータ並べ替え部４００のＦＩＦＯ回路４１０3 を介して入力し、これを６４ビット幅の転送データｈｗｄにパッキングして、ＦＩＦＯ回路４１０1 を介して、ホストインタフェース回路１４９に出力する。
このとき、カラーデータｍｃ＿０ｄｔｒが、当該読み出しを行う矩形記憶領域の代表点座標に記憶されていたカラーデータであり、カラーデータｍｃ＿７ｄｔｒが、当該矩形記憶領域内のＸ座標が最大の座標に記憶されていたカラーデータである。
【０１０３】
以下、一例として、図１９に示す幅１３、高さ３、起点座標が（５，５）のＤＲＡＭ１４７内の矩形記憶領域６００から読み出したカラーデータｐｉｘ0 〜ｐｉｘ38を、４画素分のカラーデータを含む６４ビット幅の転送データにパッキングしてホストインタフェース回路１４９に出力する場合の動作を説明する。
【０１０４】
先ず、アドレス生成部４３０に、アドレスＡＤＲＲ1 が、ホストインタフェース回路１４９から入力される。
そして、アドレス生成部４３０において、図１９に示す矩形記憶領域６００の読み出し動作を行うために、図１９および図２０（Ａ）〜（Ｉ）に示す代表点座標（ｓｂｘ0 ，ｓｂｙ0 ）〜（ｓｂｘ8 ，ｓｂｙ8 ）を含むアドレスＡＤＲＲ2 が、図２に示すディストリビュータ３００に順に出力され、アドレスコンバータ３１０およびおよびメモリコントローラ３５０，３６０，３７０，３８０の処理を経て、図２０（Ａ）〜（Ｉ）に示すカラーデータｍｃ＿０ｄｔｒ〜ｍｃ＿７ｄｔｒが、図２に示す読み出しコントローラ３９０から図８に示すデータ並べ替え部４００のＦＩＦＯ回路４１０3 を介してデータ並べ替え回路４２０に順に出力される。
【０１０５】
図９に示すデータ並べ替え回路４２０では、コントローラ４４０からの制御信号Ｓ４４０6 に基づいて以下に示す処理が行われる。
なお、図９に示すシフト回路４５０1 は、セレクタ４５１0 〜４５１7 の入力端子ａに接続されている２５６（＝３２×８）ビットの出力用記憶領域と、当該出力用記憶領域の上位ビットに位置する２２４（＝３２×８）ビットの内部記憶領域とを有し、３２ビット単位でシフト動作を行う。
【０１０６】
先ず、図２０（Ａ）に示す２５６ビットのカラーデータｍｃ＿０ｄｔｒ〜ｍｃ＿７ｄｔｒがシフト回路４５０1 に入力され、３２ビット単位で、ＬＳＢに向けて「５」だけシフトされた後に、カラーデータｐｉｘ0 〜ｐｉｘ2 が、ラッチ回路４５３0 〜４５３2 に記憶される。
【０１０７】
次に、図２０（Ｂ）に示す２５６ビットのカラーデータｍｃ＿０ｄｔｒ〜ｍｃ＿７ｄｔｒが、シフト回路４５０1 に入力され、３２ビット単位で、ＭＳＢに向けて「３」だけシフトされ、出力用記憶領域に記憶されているカラーデータｐｉｘ3 〜ｐｉｘ7 が、セレクタ４５１3 〜４５１7 の入力端子ａおよび出力端子ｃを介して、ラッチ回路４５２3 〜４５２7 に書き込まれる。
これにより、ラッチ回路４５３0 〜４５３7 に、図２１（Ｂ）の出力用記憶領域に対応する部分に示されるカラーデータｃｗｄ＿ｂ1 が記憶される。
【０１０８】
そして、ラッチ回路４５３0 〜４５３3 に記憶されているカラーデータｐｉｘ0 〜ｐｉｘ3 が、図２２に示す６４ビットの転送データｈｒｄ0 として、図８に示すＦＩＦＯ回路４１０2 を介して、ホストインタフェース回路１４９に出力される。
次に、ラッチ回路４５３4 〜４５３7 に記憶されているカラーデータｐｉｘ4 〜ｐｉｘ7 が、図２２に示す６４ビットの転送データｈｒｄ1 として、図８に示すＦＩＦＯ回路４１０2 を介して、ホストインタフェース回路１４９に出力される。
【０１０９】
また、シフト回路４５０1 の内部記憶領域に記憶されているカラーデータｐｉｘ8 〜ｐｉｘ10が、３２ビット単位で、ＬＳＢに向けて「８」だけシフトされた後に、ラッチ回路４５３0 〜４５３2 に書き込まれる。
次に、図２０（Ｃ）に示すカラーデータｍｃ＿０ｄｔｒ〜ｍｃ＿７ｄｔｒがシフト回路４５０1 に入力され、３２ビット単位で、ＭＳＢに向けて「３」だけシフトされた後に出力され、カラーデータｐｉｘ11，ｐｉｘ12が、ラッチ回路４５３3 ，４５３4 に書き込まれる。
次に、図２０（Ｄ）に示すカラーデータｍｃ＿０ｄｔｒ〜ｍｃ＿７ｄｔｒが、シフト回路４５０1 に入力され、シフトされずに出力され、カラーデータｐｉｘ13〜ｐｉｘ15が、ラッチ回路４５３5 〜４５３7 に書き込まれる。
これにより、ラッチ回路４５３0 〜４５３7 に、図２１（Ｄ）の出力用記憶領域に対応する部分に示されるカラーデータｃｗｄ＿ｂ3 が記憶される。
【０１１０】
そして、ラッチ回路４５３0 〜４５３3 に記憶されているカラーデータｐｉｘ8 〜ｐｉｘ11が、図２２に示す６４ビットの転送データｈｒｄ2 として、図８に示すＦＩＦＯ回路４１０2 を介して、ホストインタフェース回路１４９に出力される。
次に、ラッチ回路４５３4 〜４５３7 に記憶されているカラーデータｐｉｘ12〜ｐｉｘ15が、図２２に示す６４ビットの転送データｈｒｄ3 として、図８に示すＦＩＦＯ回路４１０2 を介して、ホストインタフェース回路１４９に出力される。
【０１１１】
また、次に、図２０（Ｅ）に示す２５６ビットのカラーデータｍｃ＿０ｄｔｒ〜ｍｃ＿７ｄｔｒが、シフト回路４５０1 に入力され、シフトされずに出力され、カラーデータｐｉｘ16〜ｐｉｘ23が、ラッチ回路４５３0 〜４５３7 に書き込まれる。
これにより、ラッチ回路４５３0 〜４５３7 に、図２１（Ｅ）の出力用記憶領域に対応する部分に示されるカラーデータｃｗｄ＿ｂ4 が記憶される。
【０１１２】
そして、ラッチ回路４５３0 〜４５３3 に記憶されているカラーデータｐｉｘ16〜ｐｉｘ19が、図２２に示す６４ビットの転送データｈｒｄ4 として、図８に示すＦＩＦＯ回路４１０2 を介して、ホストインタフェース回路１４９に出力される。
次に、ラッチ回路４５３4 〜４５３7 に記憶されているカラーデータｐｉｘ20〜ｐｉｘ23が、図２２に示す６４ビットの転送データｈｒｄ5 として、図８に示すＦＩＦＯ回路４１０2 を介して、ホストインタフェース回路１４９に出力される。
【０１１３】
また、次に、図２０（Ｆ）に示す２５６ビットのカラーデータｍｃ＿０ｄｔｒ〜ｍｃ＿７ｄｔｒがシフト回路４５０1 に入力され、シフトされずに、カラーデータｐｉｘ24，ｐｉｘ25が、ラッチ回路４５３0 ，４５３1 に記憶される。
【０１１４】
次に、図２０（Ｇ）に示す２５６ビットのカラーデータｍｃ＿０ｄｔｒ〜ｍｃ＿７ｄｔｒが、シフト回路４５０1 に入力され、３２ビット単位で、ＬＳＢに向けて「３」だけシフトされ、カラーデータｐｉｘ26〜ｐｉｘ28が、ラッチ回路４５３2 〜４５３4 に書き込まれる。
【０１１５】
次に、図２０（Ｈ）に示す２５６ビットのカラーデータｍｃ＿０ｄｔｒ〜ｍｃ＿７ｄｔｒが、シフト回路４５０1 に入力され、３２ビット単位で、ＭＳＢに向けて「５」だけシフトされ、カラーデータｐｉｘ29〜ｐｉｘ36のうち、出力用記憶領域に記憶されているカラーデータｐｉｘ29〜ｐｉｘ31が、ラッチ回路４５３5 〜４５３7 に書き込まれる
これにより、ラッチ回路４５３0 〜４５３に、図２１（Ｈ）の出力用記憶領域に対応する部分に示されるカラーデータｃｗｄ＿ｂ7 が記憶される。
【０１１６】
そして、ラッチ回路４５３0 〜４５３3 に記憶されているカラーデータｐｉｘ24〜ｐｉｘ27が、図２２に示す６４ビットの転送データｈｒｄ6 として、図８に示すＦＩＦＯ回路４１０2 を介して、ホストインタフェース回路１４９に出力される。
次に、ラッチ回路４５３4 〜４５３7 に記憶されているカラーデータｐｉｘ28〜ｐｉｘ31が、図２２に示す６４ビットの転送データｈｒｄ7 として、図８に示すＦＩＦＯ回路４１０2 を介して、ホストインタフェース回路１４９に出力される。
【０１１７】
次に、シフト回路４５０1 の内部記憶領域に記憶されているカラーデータｐｉｘ32〜ｐｉｘ36が、３２ビット単位で、ＬＳＢに向けて「８」だけシフトされた後に、ラッチ回路４５３0 〜４５３4 に書き込まれる。
次に、図２０（Ｉ）に示すカラーデータｍｃ＿０ｄｔｒ〜ｍｃ＿７ｄｔｒがシフト回路４５０1 に入力され、３２ビット単位で、ＭＳＢに向けて「５」だけシフトされた後に出力され、カラーデータｐｉｘ37，ｐｉｘ38が、ラッチ回路４５３5 ，４５３6 に書き込まれる。
これにより、ラッチ回路４５３0 〜４５３6 に、図２１（Ｉ）に示されるカラーデータｃｗｄ＿ｂ8 が記憶される。
【０１１８】
そして、ラッチ回路４５３0 〜４５３3 に記憶されているカラーデータｐｉｘ32〜ｐｉｘ35が、図２２に示す６４ビットの転送データｈｒｄ8 として、図８に示すＦＩＦＯ回路４１０2 を介して、ホストインタフェース回路１４９に出力される。
次に、ラッチ回路４５３4 〜４５３6 に記憶されているカラーデータｐｉｘ36〜ｐｉｘ38が、図２２に示す６４ビットの転送データｈｒｄ9 として、図８に示すＦＩＦＯ回路４１０2 を介して、ホストインタフェース回路１４９に出力される。
【０１１９】
以上説明したように、図１９に示す幅１３、高さ３、起点座標が（５，５）のＤＲＡＭ１４７内の矩形記憶領域６００から読み出したカラーデータｐｉｘ0 〜ｐｉｘ38が、図２２に示すように、４画素分のカラーデータを含む６４ビット幅の転送データｈｒｄ0 〜ｈｒｄ9 にパッキングされてホストインタフェース回路１４９に出力される。
【０１２０】
＜「Ｌｏｃａｌ  ｔｏ  Ｌｏｃａｌ」転送モード＞
この場合には、ＤＲＡＭ１４７内の転送元の記憶領域から代表点座標（ｓｂｘ，ｓｂｙ）を基準として読み出した８画素分のカラーデータｍｃ＿０ｄｔｒ〜ｍｃ＿７ｄｔｒを、書き込み先（転送先）の記憶領域に、代表点座標（ｂｔｒｘ，ｂｔｒｙ）を基準として書き込む。
このとき、転送元の矩形記憶領域の代表点座標の算出順番は、前述した「Ｈｏｓｔ  ｔｏ  Ｌｏｃａｌ」転送モードのように、一方向ではなく、指定された方向で行われる。
【０１２１】
以下、代表点座標（ｓｂｘ，ｓｂｙ）を右から左、下から上に順に生成して、ＤＲＡＭ１４７の図１９に示す矩形記憶領域６００から読み出したカラーデータｐｉｘ0 〜ｐｉｘ38を、幅１３、高さ３で起点座標が（１０，７）の矩形記憶領域に、代表点座標（ｂｔｒｘ，ｂｔｒｙ）を右から左、下から上に順に生成して書き込む場合の動作を説明する。
【０１２２】
先ず、図８に示すアドレス生成部４３０において、図１９に示す矩形記憶領域６００の読み出し動作を行うために、図２３（Ａ）〜（Ｉ）に示す代表点座標（ｓｂｘ8 ，ｓｂｙ8 ）〜（ｓｂｘ0 ，ｓｂｙ0 ）を含むアドレスＡＤＲＲ2 が、図２に示すディストリビュータ３００に順に出力され、アドレスコンバータ３１０およびおよびメモリコントローラ３５０，３６０，３７０，３８０の処理を経て、図２３（Ａ）〜（Ｉ）に示すカラーデータｍｃ＿０ｄｔｒ〜ｍｃ＿７ｄｔｒが、図２に示す読み出しコントローラ３９０から図８に示すデータ並べ替え部４００のＦＩＦＯ回路４１０3 を介してデータ並べ替え回路４２０に順に出力される。
すなわち、前述した図２０に示す場合と比べて代表点座標が逆の順序で、ディストリビュータ３００に出力される。
【０１２３】
次に、図９に示すデータ並べ替え回路４２０では、コントローラ４４０からの制御信号Ｓ４４０6 に基づいて以下に示す処理が行われる。
先ず、図２３（Ａ）に示すカラーデータｍｃ＿０ｄｔｒ〜ｍｃ＿７ｄｔｒが、図９に示すシフト回路４５０1 において、３２ビット単位でＭＳＢに向けて「１」だけシフトされ、当該シフト後のカラーデータが図９に示すラッチ回路４５３0 〜４５３7 から図２４（Ａ）に示すカラーデータｃｗｄ0 として出力され、カラーデータｃｗｄ0 が図８に示すラッチ回路４１０4 を介して図２に示すディストリビュータ３００に出力される。
【０１２４】
次に、図２３（Ｂ）に示すカラーデータｍｃ＿０ｄｔｒ〜ｍｃ＿７ｄｔｒが、図９に示すシフト回路４５０1 においてシフトされずに、ラッチ回路４５３0 〜４５３7 に書き込まれた後に、シフト回路４５０2 に出力され、シフト回路４５０2 において、３２ビット単位でＬＳＢに向けて「１」だけシフトされ、当該シフト後のカラーデータが、セレクタ４５１0 〜４５１7 を介して、ラッチ回路４５２0 〜４５２7 に書き込まれる。
そして、ラッチ回路４５２0 〜４５２7 から、図２４（Ａ）に示すカラーデータｃｗｄ1 が、図８に示すラッチ回路４１０4 を介して、ディストリビュータ３００に出力される。
【０１２５】
次に、ラッチ回路４５３0 〜４５３7 に記憶されている図２３（Ｂ）に示すカラーデータが、さらに、シフト回路４５０2 に出力され、シフト回路４５０2 において、３２ビット単位でＭＳＢに向けて「３」だけシフトされ、当該シフト後のカラーデータが、セレクタ４５１0 〜４５１7 を介して、ラッチ回路４５２0 〜４５２7 に書き込まれる。これにより、ラッチ回路４５２3 に、カラーデータｐｉｘ29が記憶される。
また、図２３（Ｃ）に示すカラーデータｍｃ＿０ｄｔｒ〜ｍｃ＿７ｄｔｒが、図９に示すシフト回路４５０1 において、ＬＳＢに向けて「５」だけシフトされ、ラッチ回路４５３0 〜４５３7 に書き込まれる。これにより、ラッチ回路４５３0 〜４５３2 に、カラーデータｐｉｘ26〜ｐｉｘ28が記憶される。
そして、ラッチ回路４５２3 ，４５３0 〜４５３2 から、図２４（Ｃ）に示すカラーデータｃｗｄ2 が、図８に示すラッチ回路４１０4 を介して、ディストリビュータ３００に出力される。
【０１２６】
次に、図２３（Ｄ）に示すカラーデータｍｃ＿０ｄｔｒ〜ｍｃ＿７ｄｔｒが、図９に示すシフト回路４５０1 において、３２ビット単位でＭＳＢに向けて「１」だけシフトされ、当該シフト後のカラーデータが図９に示すラッチ回路４５３0 〜４５３7 から図２４（Ｄ）に示すカラーデータｃｗｄ3 として出力され、カラーデータｃｗｄ3 が図８に示すラッチ回路４１０4 を介して図２に示すディストリビュータ３００に出力される。
【０１２７】
次に、図２３（Ｅ）に示すカラーデータｍｃ＿０ｄｔｒ〜ｍｃ＿７ｄｔｒが、図９に示すシフト回路４５０1 においてシフトされずに、ラッチ回路４５３0 〜４５３7 に書き込まれた後に、シフト回路４５０2 に出力され、シフト回路４５０2 において、３２ビット単位でＬＳＢに向けて「１」だけシフトされ、当該シフト後のカラーデータが、セレクタ４５１0 〜４５１7 を介して、ラッチ回路４５２0 〜４５２7 に書き込まれる。
そして、ラッチ回路４５２0 〜４５２7 から、図２４（Ｅ）に示すカラーデータｃｗｄ4 が、図８に示すラッチ回路４１０4 を介して、ディストリビュータ３００に出力される。
【０１２８】
次に、ラッチ回路４５３0 〜４５３7 に記憶されている図２３（Ｅ）に示すカラーデータが、さらに、シフト回路４５０2 に出力され、シフト回路４５０2 において、３２ビット単位でＭＳＢに向けて「３」だけシフトされ、当該シフト後のカラーデータが、セレクタ４５１0 〜４５１7 を介して、ラッチ回路４５２0 〜４５２7 に書き込まれる。これにより、ラッチ回路４５２3 に、カラーデータｐｉｘ16が記憶される。
また、図２３（Ｆ）に示すカラーデータｍｃ＿０ｄｔｒ〜ｍｃ＿７ｄｔｒが、図９に示すシフト回路４５０1 において、ＬＳＢに向けて「５」だけシフトされ、ラッチ回路４５３0 〜４５３7 に書き込まれる。これにより、ラッチ回路４５３0 〜４５３2 に、カラーデータｐｉｘ13〜ｐｉｘ15が記憶される。
そして、ラッチ回路４５２3 ，４５３0 〜４５３2 から、図２４（Ｆ）に示すカラーデータｃｗｄ5 が、図８に示すラッチ回路４１０4 を介して、ディストリビュータ３００に出力される。
【０１２９】
次に、図２３（Ｇ）に示すカラーデータｍｃ＿０ｄｔｒ〜ｍｃ＿７ｄｔｒが、図９に示すシフト回路４５０1 において、３２ビット単位でＭＳＢに向けて「１」だけシフトされ、当該シフト後のカラーデータが図９に示すラッチ回路４５３0 〜４５３7 から図２４（Ｇ）に示すカラーデータｃｗｄ6 として出力され、カラーデータｃｗｄ6 が図８に示すラッチ回路４１０4 を介して図２に示すディストリビュータ３００に出力される。
【０１３０】
次に、図２３（Ｈ）に示すカラーデータｍｃ＿０ｄｔｒ〜ｍｃ＿７ｄｔｒが、図９に示すシフト回路４５０1 においてシフトされずに、ラッチ回路４５３0 〜４５３7 に書き込まれた後に、シフト回路４５０2 に出力され、シフト回路４５０2 において、３２ビット単位でＬＳＢに向けて「１」だけシフトされ、当該シフト後のカラーデータが、セレクタ４５１0 〜４５１7 を介して、ラッチ回路４５２0 〜４５２7 に書き込まれる。
そして、ラッチ回路４５２0 〜４５２7 から、図２４（Ｈ）に示すカラーデータｃｗｄ7 が、図８に示すラッチ回路４１０4 を介して、ディストリビュータ３００に出力される。
【０１３１】
次に、ラッチ回路４５３0 〜４５３7 に記憶されている図２３（Ｈ）に示すカラーデータが、さらに、シフト回路４５０2 に出力され、シフト回路４５０2 において、３２ビット単位でＭＳＢに向けて「３」だけシフトされ、当該シフト後のカラーデータが、セレクタ４５１0 〜４５１7 を介して、ラッチ回路４５２0 〜４５２7 に書き込まれる。これにより、ラッチ回路４５２3 に、カラーデータｐｉｘ3 が記憶される。
また、図２３（Ｉ）に示すカラーデータｍｃ＿０ｄｔｒ〜ｍｃ＿７ｄｔｒが、図９に示すシフト回路４５０1 において、ＬＳＢに向けて「５」だけシフトされ、ラッチ回路４５３0 〜４５３7 に書き込まれる。これにより、ラッチ回路４５３0 〜４５３2 に、カラーデータｐｉｘ0 〜ｐｉｘ3 が記憶される。
そして、ラッチ回路４５２3 ，４５３0 〜４５３2 から、図２４（Ｉ）に示すカラーデータｃｗｄ8 が、図８に示すラッチ回路４１０4 を介して、ディストリビュータ３００に出力される。
【０１３２】
また、データ並べ替え部４００では、図２４（Ａ）〜（Ｉ）に示されるように、上述したカラーデータｃｗｄ0 〜ｃｗｄ8 に対応する代表点座標（ｂｔｒｘ0 ，ｂｔｒｙ0 ）〜（ｂｔｒｘ8 ，ｂｔｒｙ8 ）およびバリッドフラグｂｔｒｖｌｄ0 〜ｂｔｒｖｌｄ8 が、アドレス生成部４３０において生成される。代表点座標（ｂｔｒｘ0 ，ｂｔｒｙ0 ）〜（ｂｔｒｘ8 ，ｂｔｒｙ8 ）およびバリッドフラグｂｔｒｖｌｄ0 〜ｂｔｒｖｌｄ8 は、アドレスＡＤＲＷ2 内に含められ、ディストリビュータ３００に出力される。
【０１３３】
そして、代表点座標（ｂｔｒｘ0 ，ｂｔｒｙ0 ）〜（ｂｔｒｘ8 ，ｂｔｒｙ8 ）およびバリッドフラグｂｔｒｖｌｄ0 〜ｂｔｒｖｌｄ8 を基準として、８画素（Ｘ方向）×２画素（Ｙ方向）の１６画素を単位として、図２４（Ａ）〜（Ｉ）に示すカラーデータｃｗｄ0 〜ｃｗｄ8 に含まれるカラーデータｐｉｘ0 〜ｐｉｘ38が、ＤＲＡＭ１４７内の矩形記憶領域７００に書き込まれる。
これにより、ＤＲＡＭ１４７の図１９に示す矩形記憶領域６００から読み出したカラーデータｐｉｘ0 〜ｐｉｘ38が、図２５に示す矩形記憶領域に７００に転送される。
以上が、図８に示すデータ並べ替え回路４２０およびアドレス生成部４３０の説明である。
【０１３４】
コントローラ４４０は、テクスチャエンジン回路１４３から入力した転送モード指示信号Ｓ８００および画素データ長指示信号Ｓ８０１に基づいて、制御信号Ｓ４４０1 〜Ｓ４４０6 を生成する。
コントローラ４４０は、ＦＩＦＯ回路４１０1 〜４１０3 およびラッチ回路４１０4 をそれぞれ制御する制御信号Ｓ４４０1 〜Ｓ４４０4 を出力する。
また、コントローラ４４０は、アドレス生成部４３０を制御する制御信号Ｓ４４０5 を出力する。
また、コントローラ４４０は、データ並べ替え回路４２０を制御する制御信号Ｓ４４０6 を出力する。
【０１３５】
また、コントローラ４４０は、ＦＩＦＯ回路４１０3 への入力、すなわちＤＲＡＭ１４７からのカラーデータｍｃ＿０ｄｔｒ〜ｍｃ＿７ｄｔｒの読み出しを以下に示すようにして制御する。
コントローラ４４０は、ＦＩＦＯ回路４１０3 の記憶領域を監視し、各々６４ビット幅の１６段の記憶回路のうち半分の８段の記憶回路が空（有効データの未記憶状態）になったことを検出すると、画素データ長指示信号Ｓ８０１に応じた回数だけ連続して読み出しを行うことを指示する制御信号Ｓ４４０5 をアドレス生成部４３０に出力する。
ここで、１回の読み出しによって、８画素分の２５６ビットのカラーデータｍｃ＿０ｄｔｒ〜ｍｃ＿７ｄｔｒがＤＲＡＭ１４７から読み出される。
【０１３６】
具体的には、コントローラ４４０は、画素データ長指示信号Ｓ８０１が示す画素データ長に応じて、図２６に示す読み出し指示回数を示す制御信号Ｓ４４０5 をアドレス生成部４３０に出力する。
すなわち、コントローラ４４０は、１画素のデータ長が３２ビット、１６ビット、８ビットおよび４ビットの場合に、それぞれ２回、４回、８回および１６回の読み出し指示回数を示す制御信号Ｓ４４０5 をアドレス生成部４３０に出力する。
【０１３７】
図２６に示す読み出し指示回数を示す制御信号Ｓ４４０5 を出力することで、ＦＩＦＯ回路４１０3 の空（未記憶）の８段の記憶回路に、ＤＲＡＭ１４７から読み出されたカラーデータｍｃ＿０ｄｔｒ〜ｍｃ＿７ｄｔｒを記憶させることができる。このとき、ＦＩＦＯ回路４１０3 の８段の記憶回路は、８×６４ビットのカラーデータを記憶する。
【０１３８】
すなわち、画素データ長が３２ビットの場合には、１回の読み出し動作で読み出されるカラーデータｍｃ＿０ｄｔｒ〜ｍｃ＿７ｄｔｒには、図２７（Ａ）に示すように、３２×８ビットのカラーデータが含まれているため、これを２回連続して読み出すことで、３２×８×２（＝８×６４）ビットの読み出しを行うことができる。
また、画素データ長が１６ビットの場合には、１回の読み出し動作で読み出されるカラーデータｍｃ＿０ｄｔｒ〜ｍｃ＿７ｄｔｒには、図２７（Ｂ）に示すように、１６×８ビットのカラーデータが含まれているため、これを４回連続して読み出すことで、１６×８×４（＝８×６４）ビットの読み出しを行うことができる。
また、画素データ長が８ビットの場合には、１回の読み出し動作で読み出されるカラーデータｍｃ＿０ｄｔｒ〜ｍｃ＿７ｄｔｒには、図２７（Ｃ）に示すように、８×８ビットのカラーデータが含まれているため、これを８回連続して読み出すことで、８×８×８（＝８×６４）ビットの読み出しを行うことができる。
また、画素データ長が４ビットの場合には、１回の読み出し動作で読み出されるカラーデータｍｃ＿０ｄｔｒ〜ｍｃ＿７ｄｔｒには、図２７（Ｄ）に示すように、４×８ビットのカラーデータが含まれているため、これを１６回連続して読み出すことで、４×８×１６（＝８×６４）ビットの読み出しを行うことができる。
【０１３９】
以上説明したように、コントローラ４４０が、ＦＩＦＯ回路４１０3 の記憶領域を監視し、各々６４ビット幅の１６段の記憶回路のうち半分の８段の記憶回路が空になったときに、画素データ長指示信号Ｓ８０１に応じた回数だけ連続してＤＲＡＭ１４７から読み出しを行うことで、コントローラ４４０によるＦＩＦＯ回路４１０3 の制御を簡単にでき、コントローラ４４０の負担を軽減できる。そのため、コントローラ４４０が行うその他の処理が、ＦＩＦＯ回路４１０3 の制御に待たされる状態を回避できる。
すなわち、上述したようなコントローラ４４０による制御を行っていない一般的な従来のＦＩＦＯ回路のでは、例えば、空き（未記憶）状態の記憶回路が存在する間、メモリからの読み出しを連続して行い、全ての記憶回路が記憶状態になったときに読み出しを停止するように入力制御を行う。しかしながら、このように制御を行うと、読み出しを停止したときに、１回の読み出しで読み出される８画素分のカラーデータのうち一部のデータのみがＦＩＦＯ回路に書き込まれる状態が発生する。そのため、次に前回と同じ８画素のカラーデータを読み出し、当該読み出した８画素のカラーデータのうち前回にＦＩＦＯ回路に書き込まれなかった画素のカラーデータを特定し、当該特定したカラーデータのみをＦＩＦＯ回路に書き込むように制御を行う必要があり、制御が複雑になる。
【０１４０】
ＣＲＴコントロール回路１４５
ＣＲＴコントロール回路１４５は、与えられた水平および垂直同期信号に同期して、図示しないＣＲＴに表示するアドレスを発生し、ディスプレイバッファ１４７ｂから表示データを読み出す要求をメモリＩ／Ｆ回路１４４に出力する。この要求に応じて、メモリＩ／Ｆ回路１４４は、ディスプレイバッファ１４７ｂから一定の固まりで表示データを読み出す。ＣＲＴコントローラ回路１４５は、ディスプレイバッファ１４７ｂから読み出した表示データを記憶するＦＩＦＯ回路を内蔵し、一定の時間間隔で、ＲＡＭＤＡＣ回路１４６に、ＲＧＢのインデックス値を出力する。
【０１４１】
ＲＡＭＤＡＣ回路１４６
ＲＡＭＤＡＣ回路１４６は、各インデックス値に対応するＲ，Ｇ，Ｂデータを記憶しており、ＣＲＴコントローラ回路１４５から入力したＲＧＢのインデックス値に対応するデジタル形式のＲ，Ｇ，Ｂデータを、図示しないＤ／Ａコンバータ(Digital/Analog Converter)に転送し、アナログ形式のＲ，Ｇ，Ｂデータを生成する。ＲＡＭＤＡＣ回路１４６は、この生成されたＲ，Ｇ，ＢデータをＣＲＴに出力する。
【０１４２】
以下、上述した３次元コンピュータグラフィックシステム１０の全体動作について説明する。
３次元コンピュータグラフィックシステム１０において、グラフィック描画等のデータは、メインプロセッサ１１のメインメモリ１２、あるいは外部からのグラフィックスデータを受けるＩ／Ｏインタフェース回路１３からメインバス１５を介してレンダリング回路１４に与えられる。
なお、必要に応じて、グラフィックス描画等のデータは、メインプロセッサ１１等において、座標変換、クリップ処理、ライティング処理等のジオメトリ処理が行われる。
ジオメトリ処理が終わったグラフィックスデータは、三角形の各３頂点の頂点座標ｘ，ｙ，ｚ、輝度値Ｒ，Ｇ，Ｂ、描画しようとしている画素と対応するテクスチャ座標ｓ，ｔ，ｑとからなるポリゴンレンダリングデータＳ１１となる。
【０１４３】
このポリゴンレンダリングデータＳ１１は、レンダリング回路１４のＤＤＡセットアップ回路１４１に入力される。
ＤＤＡセットアップ回路１４１においては、ポリゴンレンダリングデータＳ１１に基づいて、三角形の辺と水平方向の差分などを示す変分データＳ１４１が生成される。具体的には、開始点の値と終点の値、並びに、その間の距離を用いて、単位長さ移動した場合における、求めようとしている値の変化分である変分が算出され、変分データＳ１４１としてトライアングルＤＤＡ回路１４２に出力される。
【０１４４】
トライアングルＤＤＡ回路１４２においては、変分データＳ１４１を用いて、、三角形内部の各画素における線形補間された（ｚ，Ｒ，Ｇ，Ｂ，ｓ，ｔ，ｑ）データが算出される。
そして、この算出された（ｚ，Ｒ，Ｇ，Ｂ，ｓ，ｔ，ｑ）データと、三角形の各頂点の（ｘ，ｙ）データとが、ＤＤＡデータＳ１４２として、トライアングルＤＤＡ回路１４２からテクスチャエンジン回路１４３に出力される。
【０１４５】
テクスチャエンジン回路１４３においては、ＤＤＡデータＳ１４２が示す（ｓ，ｔ，ｑ）データについて、ｓデータをｑデータで除算する演算と、ｔデータをｑデータで除算する演算とが行われる。そして、除算結果「ｓ／ｑ」および「ｔ／ｑ」に、それぞれテクスチャサイズＵＳＩＺＥおよびＶＳＩＺＥが乗算され、テクスチャ座標データ（ｕ，ｖ）が生成される。
【０１４６】
次に、テクスチャエンジン回路１４３からメモリＩ／Ｆ回路１４４に対して、アドレスＡＤＲＲ1 を含む読み出し要求Ｓ１４３が出力され、メモリＩ／Ｆ回路１４４を介して、ＤＲＡＭ１４７（ＳＲＡＭ１４８）に記憶された（Ｒ，Ｇ，Ｂ）データＳ１４８が読み出される。
【０１４７】
次に、テクスチャエンジン回路１４３において、読み出した（Ｒ，Ｇ，Ｂ）データＳ１４８の（Ｒ，Ｇ，Ｂ）データと、前段のトライアングルＤＤＡ回路１４２からのＤＤＡデータＳ１４２に含まれる（Ｒ，Ｇ，Ｂ）データとが掛け合わされ、カラーデータＳ１４３として生成される。
このカラーデータＳ１４３は、テクスチャエンジン回路１４３からメモリＩ／Ｆ回路１４４に出力される。
【０１４８】
フルカラーの場合には、テクスチャバッファ１４７ａからのデータ（Ｒ，Ｇ，Ｂ）を直接用いればよいが、インデックスカラーの場合には、あらかじめ作成しておいたカラーインデックステーブル（Color Index Table ）のデータが、テクスチャＣＬＵＴ（Color Look Up Table)バッファ１４７ｄより、ＳＲＡＭ等で構成される一時保管バッファへ転送され、この一時保管バッファのＣＬＵＴを用いてカラーインデックスから実際のＲ，Ｇ，Ｂカラーが得られる。
なお、ＣＵＬＴがＳＲＡＭで構成された場合は、カラーインデックスをＳＲＡＭのアドレスに入力すると、その出力には実際のＲ，Ｇ，Ｂカラーが出てくるといった使い方となる。
【０１４９】
そして、メモリＩ／Ｆ回路１４４において、テクスチャエンジン回路１４３から入力したカラーデータＳ１４３に対応するｚデータと、ｚバッファ１４７ｃに記憶されているｚデータとの比較が行われ、入力したカラーデータＳ１２によって描画される画像が、前回、ディスプレイバッファ２１に書き込まれた画像より、手前（視点側）に位置するか否かが判断される。
判断の結果、手前に位置する場合には、画像データＳ１４３に対応するｚデータでｚバッファ１４７ｃに記憶されたｚデータが更新される。
【０１５０】
次に、メモリＩ／Ｆ回路１４４において、（Ｒ，Ｇ，Ｂ）データがディスプレイバッファ１４７ｂに書き込まれる。
これら書き込む（更新も含む）べきデータは、書き込み系回路である、図２に示すデータ並べ替え部４００、ディストリビュータ３００、アドレスデコーダ３１０，３２０，３３０，３４０を介してメモリコントローラ３５０，３６０，３７０，３８０に供給され、メモリコントローラ３５０，３６０，３７０，３８０によって、それぞれ書き込み系配線群４０１Ｗ，４０２Ｗ，４１１Ｗ，４１２Ｗ，４２１Ｗ，４２２Ｗ，４３１Ｗ，４３２Ｗを介し所定のメモリに対して並列的に書き込まれる。
【０１５１】
メモリＩ／Ｆ回路１４４においては、今から描画しようとしている画素におけるテクスチャアドレスに対応したテクスチャを格納しているメモリブロックがそのテクスチャアドレスにより算出され、そのメモリブロックにのみ読みだし要求が出され、テクスチャデータが読み出される。
この場合、該当するテクスチャデータを保持していないメモリブロックにおいては、テクスチャ読み出しのためのアクセスが行われないため、描画により多くのアクセス時間を提供することが可能となっている。
【０１５２】
このとき、メモリＩ／Ｆ回路１４４における、テクスチャエンジン回路１４３からの画像データＳ１４３をＤＲＡＭ１４７に書き込む処理は、例えば、図１１〜図１８を参照して前述したように、６４ビット幅の転送データｈｗｄを、２５６ビット幅のカラーデータｃｗｄに変換して行われる。
【０１５３】
また、描画においても同様に、今から描画しようとしている画素アドレスに対応するカラーデータを格納しているメモリブロックに対して、該当アドレスからカラーデータがモディファイ書き込み(Modify Write)を行うために読み出され、モディファイ後、同じアドレスへ書き戻される。
【０１５４】
隠れ面処理を行う場合には、やはり同じように今から描画しようとしている画素アドレスに対応する奥行きデータを格納しているメモリブロックに対して、該当アドレスから奥行きデータがモディファイ書き込み(Modify Write)を行うために読み出され、必要ならばモディファイ後、同じアドレスへ書き戻される。
【０１５５】
このようなメモリＩ／Ｆ回路１４４に基づくＤＲＡＭ１４７とのデータのやり取りにおいては、それまでの処理を複数並行処理することで、描画性能を向上させることができる。
特に、トライアングルＤＤＡ回路１４２とテクスチャエンジン１４３の部分を並列実行形式で、同じ回路に設ける（空間並列）か、または、パイプラインを細かく挿入する（時間並列）ことで、部分的に動作周波数を増加させるという手段により、複数画素の同時算出が行われる。
【０１５６】
また、カラーデータは、メモリＩ／Ｆ回路１４４の制御のもと、表示領域において隣接した部分は、異なるＤＲＡＭモジュールとなるように配置される。
これにより、三角形のような平面を描画する場合には面で同時に処理される。このため、それぞれのＤＲＡＭモジュールの動作確率は非常に高い。
【０１５７】
そして、図示しないＣＲＴに画像を表示する場合には、ＣＲＴコントロール回路１４５において、与えられた水平垂直同期周波数に同期して、表示アドレスが発生され、メモリＩ／Ｆ回路１４４へ表示データ転送の要求が出される。
メモリＩ／Ｆ回路１４４では、その要求に従い、一定のまとまった固まりで、表示データがＣＲＴコントロール回路１４５に転送される。
ＣＲＴコントロール回路１４５では、図示しないディスプレイ用ＦＩＦＯ(First In First Out)等にその表示データが貯えられ、一定の間隔でＲＡＭＤＡＣ１４６へＲＧＢのインデックス値が転送される。
【０１５８】
また、図１に示すホストインタフェース回路１４９を介して、メインプロセッサ１１からメモリＩ／Ｆ回路１４４に対してＤＲＡＭ１４７あるいはＳＲＡＭ１４８に格納されているデータの読み出し要求があった場合、読み出しコントローラ３９０のアドレスコンバータ３９１に読み出しアドレスＡＤＲＲ2 が入力される。
このとき、アドレスコンバータ３９１ではメモリコントローラ３５０，３６０，３７０，３８０からのアイドル信号Ｓ３５０，Ｓ３６０，Ｓ３７０，Ｓ３８０をすべてアクティブで入力された否かのチェックが行われる。そして、アイドル信号Ｓ３５０，Ｓ３６０，Ｓ３７０，Ｓ３８０がすべてアクティブで入力されると、アイドル信号Ｓ３５０，Ｓ３６０，Ｓ３７０，Ｓ３８０に応答して、８画素あるいは１６画素単位で読み出しを行うように、読み出しアドレスおよび読み出し要求信号Ｓ３９１が各メモリコントローラ３５０，３６０，３７０，３８０に出力される。
【０１５９】
読み出しアドレスおよび読み出し要求信号Ｓ３９１を受けて、各メモリコントローラ３５０，３６０，３７０，３８０で８画素あるいは１６画素単位の、テクスチャデータ、（Ｒ，Ｇ，Ｂ）データ、ｚデータおよびテクスチャカラールックアップテーブルデータが読み出し系配線群４０１Ｒ，４０２Ｒ，４１１Ｒ，４１２Ｒ，４２１Ｒ，４２２Ｒ，４３１Ｒ，４３２Ｒを介して並列的に読み出され、さらに読み出し系配線群３５１，３６１，３７１，３８１，配線群４４０を介してデータ演算部３９２に入力される。
そして、データ演算部３９２で所定の演算処理が行われた後に、データ並べ替え部４００において、２５６ビット幅のカラーデータｍｃ＿０ｄｔｒ〜ｍｃ＿７ｄｔｒから６４ビット幅の転送データｈｒｄに変換され、要求先、例えばメインプロセッサ１１にホストインタフェース回路１４９を介して出力される。
【０１６０】
ＲＡＭＤＡＣ１４６においては、ＲＡＭ内部にＲＧＢのインデックスに対するＲＧＢ値が記憶されていて、インデックス値に対するＲＧＢ値が図示しないＤ／Ａコンバータへ転送される。
そして、Ｄ／Ａコンバータでアナログ信号に変換されたＲＧＢ信号がＣＲＴへ転送される。
【０１６１】
以上説明したように、本実施形態によれば、図１に示すホストインタフェース回路１４９およびテクスチャエンジン回路１４３と、ＤＲＡＭ１４７との間でのデタフォーマットが異なる場合でも、図２に示すデータ並べ替え部４００においてデータの並べ替えを行うことで、テクスチャエンジン回路１４３およびホストインタフェース回路１４９とＤＲＡＭ１４７との間でのデータ転送を正確に行うことができる。
また、本実施形態によれな、ＤＲＡＭ１４７に対してアクセスするアドレスパターンに制限がある場合でも、データ並べ替え部４００において当該制限を考慮してデータの並べ替えを行うことで、ＤＲＡＭ１４７に対してのカラーデータの書き込みおよび読み出しを正確に行うことができる。
【０１６２】
また、本実施形態によれば、図８に示すデータ並べ替え部４００において、コントローラ４４０が、ＦＩＦＯ回路４１０3 の記憶領域を監視し、各々６４ビット幅の１６段の記憶回路のうち半分の８段の記憶回路が空になったときに、画素データ長指示信号Ｓ８０１に応じた回数だけ連続してＤＲＡＭ１４７から読み出しを行うことで、コントローラ４４０によるＦＩＦＯ回路４１０3 の制御を簡単にでき、コントローラ４４０の負担を軽減できる。そのため、コントローラ４４０が行うその他の処理が、ＦＩＦＯ回路４１０3 の制御処理によって待たされる状態を回避できる。
【０１６３】
また、本実施形態によれば、ＤＲＡＭ１４７およびＳＲＡＭ１４８へのアクセス（書き込みまたは読み出し）を行うメモリＩ／Ｆ回路１４４において、書き込み経路と読み出し経路とを別経路として構成し、書き込みの場合には書き込みアドレスＡＤＲＷとカラーデータｃｗｄを書き込み系回路であるデータ並べ替え部４００、ディストリビュータ３００、アドレスコンバータ３１０，３２０，３３０，３４０およびメモリコントローラ３５０，３６０，３７０，３８０で処理してＤＲＡＭ１４７に書き込み、読み出しの場合には読み出し系回路であるデータ並べ替え部４００、読み出しコントローラ３９０、メモリコントローラ３５０，３６０，３７０，３８０で処理してＤＲＡＭ１４７またはＳＲＡＭ１４８から読み出すことから、例えば読み出しの割り込みが入った時等に早いタイミングで切り替えることができ、読み出しの際の性能向上を図れる利点がある。
【０１６４】
また、メモリＩ／Ｆ回路１４４は、所定のインターリーブ方式のアドレッシングに基づいてＤＲＡＭ１４７へのアクセスを、例えば１６画素単位あるいは８画素単位で行い、アクセスを行う領域に制限を加えていることから、ペ−ジ違反を起こさない画像処理装置を実現できる。
【０１６５】
さらに、本実施形態によれば、半導体チップ内部に内蔵されたＤＲＡＭ１４７に、表示データと少なくとも一つの図形要素が必要とするテクスチャデータを記憶させた構成を有することから、表示領域以外の部分にテクスチャデータを格納できることになり、内蔵ＤＲＡＭの有効利用が可能となり、高速処理動作、並びに低消費電力化を並立させるようにした画像処理装置が実現可能となる。
そして、単一メモリシステムを実現でき、すべてが内蔵された中だけで処理ができる。その結果、ア−キテクチャとしても大きなパラダイムシフトとなる。
また、メモリの有効利用ができることで、内部に持っているＤＲＡＭのみでの処理が可能となり、内部にあるがゆえのメモリと描画システムの間の大きなバンド幅が、十分に活用可能となる。また、ＤＲＡＭにおいても特殊な処理を組み込むことが可能となる。
【０１６６】
さらに、表示アドレス空間において、隣接するアドレスにおける表示要素が、それぞれ異なるＤＲＡＭのブロックになるように配置するので、さらにビット線の有効利用が可能となり、グラフィックス描画におけるような、比較的固まった表示領域へのアクセスが多い場合には、それぞれのモジュ−ルが同時に処理できる確率が増加し、描画性能の向上が可能となる。
【０１６７】
また、チップ内部にＤＲＡＭを内蔵することで、その高速なインタ−フェ−ス部分がチップの内部だけで完結することになるため、大きな付加容量のＩ／Ｏバッファであるとか、チップ間配線容量をドライブする必要がなくなり、消費電力は内蔵しない場合に比較して小さくなる。
よって、さまざまな技術を使って、一つのチップの中だけですべてができるような仕組みは、今後の携帯情報端末等の身近なデジタル機器のためには、必要不可欠な技術要素となっている。
【０１６８】
本発明は上述した実施形態には限定されない。
例えば、ＤＲＡＭ１４７に対してのアクセスパターンの制限は、上述したものに制限されず、その他のアクセスパターンの制限がある場合でも、本発明を適用可能である。
また、図８に示すデータ並べ替え部４００の構成や、図９に示すデータ並べ替え回路４２０の構成も、これらに限定されるものではない。
【０１６９】
また、図８に示すＦＩＦＯ回路４１０1 〜４１０3 の段数は任意である。
また、コントローラ４４０が、ＦＩＦＯ回路４１０3 の記憶状態を開始して読み出し要求を出すタイミングは、空領域が半分になったとき以外でもよい。
【０１７０】
また、上述した図１に示す３次元コンピュータグラフィックスシステム１０では、ＳＲＡＭ１４８を用いる構成を例示したが、ＳＲＡＭ１４８を設けない構成にしてもよい。
【０１７１】
さらに、図１に示す３次元コンピュータグラフィックスシステム１０では、ポリゴンレンダリングデータを生成するジオメトリ処理を、メインプロセッサ１１で行う場合を例示したが、レンダリング回路１４で行う構成にしてもよい。
【０１７２】
【発明の効果】
以上説明したように、本発明の画像処理装置によれば、記憶回路へのアクセス時のアドレス指定に制限がある場合でも、画像処理回路と記憶回路の間のデータ送受信を正確に行うことができる。
また、本発明の画像処理装置によれば、記憶回路へのアクセス時のアドレス指定に制限がある場合でも、記憶回路の記憶領域内でのデータ転送を正確に行うことができる。
【図面の簡単な説明】
【図１】本発明に係る３次元コンピュータグラフィックスシステムの構成を示すブロック図である。
【図２】本発明に係るレンダリング回路におけるＤＲＡＭ、ＳＲＡＭ、並びに、ＤＲＡＭおよびＳＲＡＭへアクセスするメモリＩ／Ｆ回路の具体的な構成例を示すブロック図である。
【図３】本発明に係るＤＲＡＭバッファの構成例を示す概略図である。
【図４】テクスチャデータに含まれる同時にアクセスが行われるカラーデータを説明するための図である。
【図５】テクスチャデータを構成する単位ブロックを説明するための図である。
【図６】テクスチャバッファのアドレス空間を説明するするための図である。
【図７】本発明に係るメモリＩ／Ｆ回路におけるディストリビュータの画像データ処理を説明するための図である。
【図８】図８は、図２に示すデータ並べ替え部４００の構成図である。
【図９】図９は、図８に示すデータ並べ替え回路４２０の構成図である。
【図１０】図１０は、図１に示すＤＲＡＭ内の記憶領域を示す図である。
【図１１】図１１は、図２に示すデータ並べ替え部における１画素のデータ長が３２ビットの場合の「Ｈｏｓｔ  ｔｏ  Ｌｏｃａｌ」転送モードの動作を説明するための図である。
【図１２】図１２は、図２に示すデータ並べ替え部における１画素のデータ長が３２ビットの場合の「Ｈｏｓｔ  ｔｏ  Ｌｏｃａｌ」転送モードの動作を説明するための図である。
【図１３】図１３は、図２に示すデータ並べ替え部における１画素のデータ長が３２ビットの場合の「Ｈｏｓｔ  ｔｏ  Ｌｏｃａｌ」転送モードの動作を説明するための図である。
【図１４】図１４は、図１３に示すカラーデータを図１に示すＤＲＡＭに書き込む動作を説明するための図である。
【図１５】図１５は、図１３に示すカラーデータを図１に示すＤＲＡＭに書き込む動作を説明するための図である。
【図１６】図１６は、図２に示すデータ並べ替え部における１画素のデータ長が１６ビットの場合の「Ｈｏｓｔ  ｔｏ  Ｌｏｃａｌ」転送モードの動作を説明するための図である。
【図１７】図１７は、図２に示すデータ並べ替え部における１画素のデータ長が１６ビットの場合の「Ｈｏｓｔ  ｔｏ  Ｌｏｃａｌ」転送モードの動作を説明するための図である。
【図１８】図１８は、図２に示すデータ並べ替え部における１画素のデータ長が１６ビットの場合の「Ｈｏｓｔ  ｔｏ  Ｌｏｃａｌ」転送モードの動作を説明するための図である。
【図１９】図１９は、図２に示すデータ並べ替え部における「Ｌｏｃａｌ  ｔｏ  Ｈｏｓｔ」転送モードの動作を説明するための図である。
【図２０】図２０は、図２に示すデータ並べ替え部における「Ｌｏｃａｌ  ｔｏ  Ｈｏｓｔ」転送モードの動作を説明するための図である。
【図２１】図２１は、図２に示すデータ並べ替え部における「Ｌｏｃａｌ  ｔｏ  Ｈｏｓｔ」転送モードの動作を説明するための図である。
【図２２】図２２は、図２に示すデータ並べ替え部における「Ｌｏｃａｌ  ｔｏ  Ｈｏｓｔ」転送モードの動作を説明するための図である。
【図２３】図２３は、図２に示すデータ並べ替え部における「Ｌｏｃａｌ  ｔｏ  Ｌｏａｃｌ」転送モードの動作を説明するための図である。
【図２４】図２４は、図２に示すデータ並べ替え部における「Ｌｏｃａｌ  ｔｏ  Ｌｏｃａｌ」転送モードの動作を説明するための図である。
【図２５】図２５は、図２に示すデータ並べ替え部における「Ｌｏｃａｌ  ｔｏ  Ｌｏｃａｌ」転送モードの動作を説明するための図である。
【図２６】図２６は、図８に示すコントローラからアドレス生成部に出力する制御信号の読み出し要求に示される読み出し指示回数と、１画素のデータ長との関係を説明するための図である。
【図２７】図２７は、１画素のデータ長が３２ビット、１６ビット、８ビットおよび４ビットの場合における、１回の読み出し動作によってＤＲＡＭから読み出されるカラーデータを説明するための図である。
【図２８】３次元コンピュータグラフィックスシステムの基本的な概念を示すシステム構成図である。
【符号の説明】
１０…３次元コンピュータグラフィックスシステム、１１…メインプロセッサ、１２…メインメモリ、１３…Ｉ／Ｏインタフェース回路、１４…レンダリング回路、１４１…ＤＤＡセットアップ回路、１４２…トライアングルＤＤＡ回路、１４３…テクスチャエンジン回路、１４４…メモリＩ／Ｆ回路、１４５…ＣＲＴコントローラ回路、１４６…ＲＡＭＤＡＣ回路、１４７…ＤＲＡＭ、１４７ａ…テクスチャバッファ、１４７ｂ…ディスプレイバッファ、１４７ｃ…ｚバッファ、１４７ｄ…テクスチャＣＬＵＴバッファ、１４８…ＳＲＡＭ、２００，２１０，２２０，２３０…メモリモジュール、３００…ディストリビュータ、３１０，３２０，３３０，３４０…アドレスデコーダ、３５０，３６０，３７０，３８０…メモリコントローラ、３９０…読み出しコントローラ、３９１…アドレスデコーダ、３９２…データ演算処理部、４００…データ並べ替え部、４１０1 〜４１０3 …ＦＩＦＯ回路、４１０4 …ラッチ回路、４２０…データ並べ替え回路、４３０…アドレス生成部、４４０…コントローラ
【図１】
0004828006.tif 000002
【図２】
0004828006.tif 000003
【図３】
0004828006.tif 000004
【図４】
0004828006.tif 000005
【図５】
0004828006.tif 000006
【図６】
0004828006.tif 000007
【図７】
0004828006.tif 000008
【図８】
0004828006.tif 000009
【図９】
0004828006.tif 000010
【図１０】
0004828006.tif 000011
【図１１】
0004828006.tif 000012
【図１２】
0004828006.tif 000013
【図１３】
0004828006.tif 000014
【図１４】
0004828006.tif 000015
【図１５】
0004828006.tif 000016
【図１６】
0004828006.tif 000017
【図１７】
0004828006.tif 000018
【図１８】
0004828006.tif 000019
【図１９】
0004828006.tif 000020
【図２０】
0004828006.tif 000021
【図２１】
0004828006.tif 000022
【図２２】
0004828006.tif 000023
【図２３】
0004828006.tif 000024
【図２４】
0004828006.tif 000025
【図２５】
0004828006.tif 000026
【図２６】
0004828006.tif 000027
【図２７】
0004828006.tif 000028
【図２８】
0004828006.tif 000029