(57)【特許請求の範囲】
【請求項１】
図形の描画領域をマトリクス状に分割して得られる複数のピクセルのうち、描画すべき図形に応じたピクセルを生成するラスタライザと、
前記ラスタライザによって生成された前記ピクセルに対して描画処理を行うＮ個（Ｎ＝２（２ｎ＋２）、ｎは１以上の自然数）のピクセル処理部と、
前記ピクセル処理部毎に設けられ、対応する前記ピクセル処理部によって描画された前記ピクセルのデータを保持する複数のメモリと、
を具備し、前記ピクセル処理部は、複数の前記ピクセルに対して描画処理を行い、同一の前記ピクセル処理部によって描画処理される前記ピクセル同士は、前記描画領域内において等距離且つ等方的に位置し、
同一の前記ピクセル処理部によって描画される近接する３つの前記ピクセルは、前記描画領域において、三辺のうちで最も短い辺の長さがＮ１／２より大きい三角形を形成する
ことを特徴とする描画装置。
【請求項２】
図形の描画領域をマトリクス状に分割して得られる複数のピクセルのうち、描画すべき図形に応じたピクセルを生成するラスタライザと、
前記ラスタライザによって生成された前記ピクセルに対して描画処理を行うＮ個（Ｎ＝２（２ｎ＋１）、ｎは１以上の自然数）のピクセル処理部と、
前記ピクセル処理部毎に設けられ、対応する前記ピクセル処理部によって描画された前記ピクセルのデータを保持する複数のメモリと、
を具備し、前記ピクセル処理部は、複数の前記ピクセルに対して描画処理を行い、同一の前記ピクセル処理部によって描画処理される前記ピクセル同士は、前記描画領域内において等距離且つ等方的に位置し、
同一の前記ピクセル処理部によって描画される近接する３つの前記ピクセルは、前記描画領域において、三辺のうちで最も短い辺の長さがＮ１／２であり且つ三辺の長さの平均が（Ｎ１／２×（２＋２１／２）／３）より小さい三角形を形成する
ことを特徴とする描画装置。
【請求項３】
前記メモリは、前記図形に貼り付けるべき画像をマトリクス状に分割して得られる複数のテクセルのデータを更に保持し、
各々の前記メモリは、前記画像内において互いに等距離且つ等方的に位置する複数の前記テクセルのデータを保持し、
前記ピクセル処理部毎に設けられ、対応する前記ピクセル処理部が扱うピクセルに対して貼り付けるべき前記テクセルのデータを、いずれかの前記メモリから読み出す読み出し回路と、
前記ピクセル処理部毎に設けられ、対応する前記読み出し回路によって読み出した前記テクセルをピクセルに貼り付けるテクスチャユニットと
を更に備えることを特徴とする請求項１または２記載の描画装置。
【請求項４】
前記メモリにおいて個々の前記ピクセルのデータが格納される領域のアドレスは、個々の前記ピクセル毎に各々のメモリ順に順次割り当てられる
ことを特徴とする請求項１または２記載の描画装置。
【請求項５】
各々の前記メモリにおいて前記ピクセルのデータが格納される領域は、１つの前記ピクセルが取り得る最大のデータ幅毎に、各々のメモリ順に順次割り当てられ、
前記ピクセルのデータ幅が前記最大のデータ幅よりも小さい場合には、該最大のデータ幅を上限として、複数の前記ピクセルについて連続したアドレスが割り当てられる
ことを特徴とする請求項１または２記載の描画装置。
【請求項６】
図形の描画領域をマトリクス状に分割して得られる複数のピクセルのうち、描画すべき図形に応じたピクセルを生成するラスタライザと、
前記ラスタライザによって生成された前記ピクセルに対して描画処理を行うＮ個（Ｎ＝２（２ｎ＋２）、ｎは１以上の自然数）のピクセル処理部と、
前記ピクセル処理部毎に設けられ、対応する前記ピクセル処理部によって描画された前記ピクセルのデータを保持する複数のメモリと
を具備し、前記ピクセル処理部は、互いに異なる位置の複数の前記ピクセルに対して描画処理を行い、各々の前記ピクセル処理部によって描画処理される複数の前記ピクセルは、あるピクセルに最近接な６個のピクセルが前記描画領域内において正六角形の頂点に位置する関係を有し、
同一の前記ピクセル処理部によって描画される近接する３つの前記ピクセルは、前記描画領域において、三辺のうちで最も短い辺の長さがＮ１／２より大きい三角形を形成する
ことを特徴とする描画装置。
【請求項７】
図形の描画領域をマトリクス状に分割して得られる複数のピクセルのうち、描画すべき図形に応じたピクセルを生成するラスタライザと、
前記ラスタライザによって生成された前記ピクセルに対して描画処理を行うＮ個（Ｎ＝２（２ｎ＋１）、ｎは１以上の自然数）のピクセル処理部と、
前記ピクセル処理部毎に設けられ、対応する前記ピクセル処理部によって描画された前記ピクセルのデータを保持する複数のメモリと
を具備し、前記ピクセル処理部は、互いに異なる位置の複数の前記ピクセルに対して描画処理を行い、各々の前記ピクセル処理部によって描画処理される複数の前記ピクセルは、あるピクセルに最近接な６個のピクセルが前記描画領域内において正六角形の頂点に位置する関係を有し、
同一の前記ピクセル処理部によって描画される近接する３つの前記ピクセルは、前記描画領域において、三辺のうちで最も短い辺の長さがＮ１／２であり且つ三辺の長さの平均が（Ｎ１／２×（２＋２１／２）／３）より小さい三角形を形成する
ことを特徴とする描画装置。
【請求項８】
前記メモリは、前記図形に貼り付けるべき画像をマトリクス状に分割して得られる複数のテクセルのデータを更に保持し、
各々の前記メモリは、あるテクセルに最近接な６個のテクセルが前記画像内において正六角形の頂点に位置する関係を有する複数の前記テクセルのデータを保持し、
前記ピクセル処理部毎に設けられ、対応する前記ピクセル処理部が扱うピクセルに対して貼り付けるべき前記テクセルのデータを、いずれかの前記メモリから読み出す読み出し回路と、
前記ピクセル処理部毎に設けられ、対応する前記読み出し回路によって読み出した前記テクセルをピクセルに貼り付けるテクスチャユニットと
を更に備えることを特徴とする請求項６または７記載の描画装置。
【請求項９】
前記メモリにおいて個々の前記ピクセルのデータが格納される領域のアドレスは、個々の前記ピクセル毎に各々のメモリ順に順次割り当てられる
ことを特徴とする請求項６または７記載の描画装置。
【請求項１０】
各々の前記メモリにおいて前記ピクセルのデータが格納される領域は、１つの前記ピクセルが取り得る最大のデータ幅毎に、各々のメモリ順に順次割り当てられ、
前記ピクセルのデータ幅が前記最大のデータ幅よりも小さい場合には、該最大のデータ幅を上限として、複数の前記ピクセルについて連続したアドレスが割り当てられる
ことを特徴とする請求項６または７記載の描画装置。
【請求項１１】
図形の描画領域をマトリクス状に分割して得られる複数のピクセルのうち、描画すべき図形に応じたピクセルを生成するラスタライザと、
前記ラスタライザによって生成された前記ピクセルに対して描画処理を行うＮ個（Ｎ＝２（２ｎ＋２）、ｎは１以上の自然数）のピクセル処理部と、
前記ピクセル処理部毎に設けられ、対応する前記ピクセル処理部によって描画された前記ピクセルのデータを保持する複数のメモリと
を具備し、前記ピクセル処理部は、互いに異なる位置の複数の前記ピクセルに対して描画処理を行い、各々の前記ピクセル処理部によって描画処理される複数の前記ピクセルは、近接する３個のピクセルが前記描画領域内において正三角形の頂点に位置する関係を有し、
同一の前記ピクセル処理部によって描画される近接する３つの前記ピクセルは、前記描画領域において、三辺のうちで最も短い辺の長さがＮ１／２より大きい三角形を形成する
ことを特徴とする描画装置。
【請求項１２】
図形の描画領域をマトリクス状に分割して得られる複数のピクセルのうち、描画すべき図形に応じたピクセルを生成するラスタライザと、
前記ラスタライザによって生成された前記ピクセルに対して描画処理を行うＮ個（Ｎ＝２（２ｎ＋１）、ｎは１以上の自然数）のピクセル処理部と、
前記ピクセル処理部毎に設けられ、対応する前記ピクセル処理部によって描画された前記ピクセルのデータを保持する複数のメモリと
を具備し、前記ピクセル処理部は、互いに異なる位置の複数の前記ピクセルに対して描画処理を行い、各々の前記ピクセル処理部によって描画処理される複数の前記ピクセルは、近接する３個のピクセルが前記描画領域内において正三角形の頂点に位置する関係を有し、
同一の前記ピクセル処理部によって描画される近接する３つの前記ピクセルは、前記描画領域において、三辺のうちで最も短い辺の長さがＮ１／２であり且つ三辺の長さの平均が（Ｎ１／２×（２＋２１／２）／３）より小さい三角形を形成する
ことを特徴とする描画装置。
【請求項１３】
前記メモリにおいて個々の前記ピクセルのデータが格納される領域のアドレスは、個々の前記ピクセル毎に各々のメモリ順に順次割り当てられる
ことを特徴とする請求項１１または１２記載の描画装置。
【請求項１４】
各々の前記メモリにおいて前記ピクセルのデータが格納される領域は、１つの前記ピクセルが取り得る最大のデータ幅毎に、各々のメモリ順に順次割り当てられ、
前記ピクセルのデータ幅が前記最大のデータ幅よりも小さい場合には、該最大のデータ幅を上限として、複数の前記ピクセルについて連続したアドレスが割り当てられる
ことを特徴とする請求項１１または１２記載の描画装置。
【請求項１５】
前記メモリは、前記図形に貼り付けるべき画像をマトリクス状に分割して得られる複数のテクセルのデータを更に保持し、
各々の前記メモリは、近接する３個のテクセルが前記画像内において正三角形の頂点に位置する関係を有する複数の前記テクセルのデータを保持し、
前記ピクセル処理部毎に設けられ、対応する前記ピクセル処理部が扱うピクセルに対して貼り付けるべき前記テクセルのデータを、いずれかの前記メモリから読み出す読み出し回路と、
前記ピクセル処理部毎に設けられ、対応する前記読み出し回路によって読み出した前記テクセルをピクセルに貼り付けるテクスチャユニットと
を更に備えることを特徴とする請求項１１または１２記載の描画装置。
【請求項１６】
前記メモリにおいて前記テクセルのデータが格納される領域のアドレスは、個々の前記テクセル毎に各々のメモリ順に、順次割り当てられる
ことを特徴とする請求項３、８または１５記載の描画装置。
【請求項１７】
各々の前記メモリにおいて前記テクセルのデータが格納される領域は、１つの前記テクセルが取り得る最大のデータ幅毎に、各々のメモリ順に順次割り当てられ、
前記テクセルのデータ幅が前記最大のデータ幅よりも小さい場合には、該最大のデータ幅を上限として、複数の前記テクセルについて連続したアドレスが割り当てられる
ことを特徴とする請求項３、８または１５記載の描画装置。
【請求項１８】
図形の描画領域をマトリクス状に分割して得られる複数のピクセルのうち、描画すべき図形に応じたピクセルを生成するラスタライザと、
前記ラスタライザによって生成された前記ピクセルに対して描画処理を行う複数のピクセル処理部と、
前記ピクセル処理部毎に設けられ、対応する前記ピクセル処理部によって描画された前記ピクセルのデータを保持する複数のメモリと
を具備し、前記ピクセル処理部は、互いに異なる位置の複数の前記ピクセルに対して描画処理を行い、
前記描画領域は、それぞれ異なる前記ピクセル処理部によって描画処理される複数の前記ピクセルの集合であるブロックがマトリクス配置され、
前記描画領域内における前記ピクセルと前記ピクセル処理部との対応関係は、該描画領域の縦方向及び横方向の少なくともいずれかの方向において、２ブロック以上の周期で繰り返され、
各々の前記メモリにおいて前記ピクセルのデータが格納される領域は、１つの前記ピクセルが取り得る最大のデータ幅毎に、各々のメモリ順に順次割り当てられ、
前記ピクセルのデータ幅が前記最大のデータ幅よりも小さい場合には、該最大のデータ幅を上限として、複数の前記ピクセルについて連続したアドレスが割り当てられる
ことを特徴とする描画装置。
【請求項１９】
前記メモリは、前記図形に貼り付けるべき画像をマトリクス状に分割して得られる複数のテクセルのデータを更に保持し、
前記メモリは、互いに異なる位置の前記テクセルのデータを保持し、
前記画像は、それぞれ異なる前記メモリに保持される複数の前記テクセルの集合であるテクスチャブロックがマトリクス配置され、
前記画像内における前記テクセルと前記メモリとの対応関係は、該画像の縦方向及び横方向の少なくともいずれかの方向において、２テクスチャブロック以上の周期で繰り返され、
前記ピクセル処理部毎に設けられ、対応する前記ピクセル処理部が扱うピクセルに対して貼り付けるべき前記テクセルのデータを、いずれかの前記メモリから読み出す読み出し回路と、
前記ピクセル処理部毎に設けられ、対応する前記読み出し回路によって読み出した前記テクセルをピクセルに貼り付けるテクスチャユニットと
を更に備えることを特徴とする請求項１８記載の描画装置。
【請求項２０】
前記メモリにおいて個々の前記ピクセルのデータが格納される領域のアドレスは、個々の前記ピクセル毎に各々のメモリ順に順次割り当てられる
ことを特徴とする請求項１８記載の描画装置。
【請求項２１】
前記メモリにおいて前記テクセルのデータが格納される領域のアドレスは、個々の前記テクセル毎に各々のメモリ順に、順次割り当てられる
ことを特徴とする請求項１９記載の描画装置。
【請求項２２】
各々の前記メモリにおいて前記テクセルのデータが格納される領域は、１つの前記テクセルが取り得る最大のデータ幅毎に、各々のメモリ順に順次割り当てられ、
前記テクセルのデータ幅が前記最大のデータ幅よりも小さい場合には、該最大のデータ幅を上限として、複数の前記テクセルについて連続したアドレスが割り当てられる
ことを特徴とする請求項１９記載の描画装置。
【請求項２３】
図形の描画領域をマトリクス状に分割して得られる複数のピクセルのうち、描画すべき図形に応じたピクセルを生成するラスタライザを用いた描画方法であって、
図形情報に基づいてピクセルを生成するステップと、
生成されたピクセルが描画領域内において占める位置に応じて、Ｎ個（Ｎ＝２（２ｎ＋２）、ｎは１以上の自然数）のうちの対応するピクセル処理部に前記ピクセルを投入するステップと、
投入されたピクセルに対して描画処理を行うステップと、
描画処理を行ったピクセルデータを、前記ピクセル処理部に対応して設けられたメモリに格納するステップと
を具備し、前記ラスタライザは、同一の前記ピクセル処理部によって描画処理される前記ピクセル同士が、前記描画領域内において等距離且つ等方的に位置し、且つ同一の前記ピクセル処理部によって描画される近接する３つの前記ピクセルが、前記描画領域において、三辺のうちで最も短い辺の長さがＮ１／２より大きい三角形を形成するように、前記ピクセル処理部に前記ピクセルを投入する
ことを特徴とする描画方法。
【請求項２４】
図形の描画領域をマトリクス状に分割して得られる複数のピクセルのうち、描画すべき図形に応じたピクセルを生成するラスタライザを用いた描画方法であって、
図形情報に基づいてピクセルを生成するステップと、
生成されたピクセルが描画領域内において占める位置に応じて、Ｎ個（Ｎ＝２（２ｎ＋１）、ｎは１以上の自然数）のうちの対応するピクセル処理部に前記ピクセルを投入するステップと、
投入されたピクセルに対して描画処理を行うステップと、
描画処理を行ったピクセルデータを、前記ピクセル処理部に対応して設けられたメモリに格納するステップと
を具備し、前記ラスタライザは、同一の前記ピクセル処理部によって描画処理される前記ピクセル同士が、前記描画領域内において等距離且つ等方的に位置し、且つ同一の前記ピクセル処理部によって描画される近接する３つの前記ピクセルが、前記描画領域において、三辺のうちで最も短い辺の長さがＮ１／２であり且つ三辺の長さの平均が（Ｎ１／２×（２＋２１／２）／３）より小さい三角形を形成するように、前記ピクセル処理部に前記ピクセルを投入する
ことを特徴とする描画方法。
【請求項２５】
前記描画処理を行うステップは、前記ピクセル処理部毎に設けられた読み出し回路が、対応するピクセル処理部が描画するピクセルに貼り付けるべきテクセルのデータを、前記メモリから読み出すステップと、
それぞれの前記ピクセル処理部に投入された前記ピクセルに、対応する読み出し回路が読み出した前記テクセルを貼り付けるステップと
を備えることを特徴とする請求項２３または２４記載の描画方法。
【請求項２６】
図形を描画するためにコンピュータを、
入力された図形情報に応じたピクセルを生成するピクセル生成手段と、
各々が、前記ピクセル生成手段によって生成された前記ピクセルのうち、描画領域内において等距離且つ等方的に位置する複数の前記ピクセルについて描画処理を行う複数の描画手段と、
前記描画手段によって描画された前記ピクセルのデータを保持するＮ個（Ｎ＝２（２ｎ＋２）、ｎは１以上の自然数）の保持手段と
として機能させ、同一の前記保持手段によって保持される近接する３つの前記ピクセルは、前記描画領域において、三辺のうちで最も短い辺の長さがＮ１／２より大きい三角形を形成する描画プログラム。
【請求項２７】
図形を描画するためにコンピュータを、
入力された図形情報に応じたピクセルを生成するピクセル生成手段と、
各々が、前記ピクセル生成手段によって生成された前記ピクセルのうち、描画領域内において等距離且つ等方的に位置する複数の前記ピクセルについて描画処理を行う複数の描画手段と、
前記描画手段によって描画された前記ピクセルのデータを保持するＮ個（Ｎ＝２（２ｎ＋１）、ｎは１以上の自然数）の保持手段と
として機能させ、同一の前記保持手段によって保持される近接する３つの前記ピクセルは、前記描画領域において、三辺のうちで最も短い辺の長さがＮ１／２であり且つ三辺の長さの平均が（Ｎ１／２×（２＋２１／２）／３）より小さい三角形を形成する描画プログラム。
【請求項２８】
前記保持手段の各々に、前記図形に貼り付けるべき画像をマトリクス状に分割して得られる複数のテクセルについて、前記画像内において互いに等距離且つ等方的に位置する前記テクセルのデータを更に保持させ、
前記コンピュータを、前記テクセルのデータを前記保持手段から読み出す読み出し手段と、
前記読み出し手段によって読み出したテクセルを前記ピクセルに貼り付ける貼付手段と
して更に機能させることを特徴とする請求項２６または２７記載の描画プログラム。
【請求項２９】
図形の描画領域をマトリクス状に分割して得られる複数のピクセルのうち、描画すべき図形に応じたピクセルを生成するラスタライザと、
前記ラスタライザによって生成された前記ピクセルに対して描画処理を行う複数のピクセル処理部と、
前記ピクセル処理部毎に設けられ、対応する前記ピクセル処理部によって描画された前記ピクセルのデータと、前記図形に貼り付けるべき画像をマトリクス状に分割して得られる複数のテクセルのデータとを保持する複数のメモリと、
前記ピクセル処理部毎に設けられ、対応する前記ピクセル処理部が扱うピクセルに対して貼り付けるべき前記テクセルのデータを、いずれかの前記メモリから読み出す読み出し回路と、
前記ピクセル処理部毎に設けられ、対応する前記読み出し回路によって読み出した前記テクセルをピクセルに貼り付けるテクスチャユニットと
を具備し、前記ピクセル処理部は、複数の前記ピクセルに対して描画処理を行い、同一の前記ピクセル処理部によって描画処理される前記ピクセル同士は、前記描画領域内において等距離且つ等方的に位置し、
各々の前記メモリは、前記画像内において互いに等距離且つ等方的に位置する複数の前記テクセルのデータを保持する
ことを特徴とする描画装置。
【請求項３０】
図形の描画領域をマトリクス状に分割して得られる複数のピクセルのうち、描画すべき図形に応じたピクセルを生成するラスタライザと、
前記ラスタライザによって生成された前記ピクセルに対して描画処理を行う複数のピクセル処理部と、
前記ピクセル処理部毎に設けられ、対応する前記ピクセル処理部によって描画された前記ピクセルのデータを保持する複数のメモリと、
を具備し、前記ピクセル処理部は、複数の前記ピクセルに対して描画処理を行い、同一の前記ピクセル処理部によって描画処理される前記ピクセル同士は、前記描画領域内において等距離且つ等方的に位置し、
各々の前記メモリにおいて前記ピクセルのデータが格納される領域は、１つの前記ピクセルが取り得る最大のデータ幅毎に、各々のメモリ順に順次割り当てられ、
前記ピクセルのデータ幅が前記最大のデータ幅よりも小さい場合には、該最大のデータ幅を上限として、複数の前記ピクセルについて連続したアドレスが割り当てられる
ことを特徴とする描画装置。
【請求項３１】
前記メモリは、前記図形に貼り付けるべき画像をマトリクス状に分割して得られる複数のテクセルのデータを更に保持し、
各々の前記メモリは、前記画像内において互いに等距離且つ等方的に位置する複数の前記テクセルのデータを保持し、
前記描画装置は、前記ピクセル処理部毎に設けられ、対応する前記ピクセル処理部が扱うピクセルに対して貼り付けるべき前記テクセルのデータを、いずれかの前記メモリから読み出す読み出し回路と、
前記ピクセル処理部毎に設けられ、対応する前記読み出し回路によって読み出した前記テクセルをピクセルに貼り付けるテクスチャユニットと
を更に備えることを特徴とする請求項３０記載の描画装置。
【請求項３２】
前記メモリにおいて個々の前記ピクセルのデータが格納される領域のアドレスは、個々の前記ピクセル毎に各々のメモリ順に順次割り当てられる
ことを特徴とする請求項２９または３０記載の描画装置。
【請求項３３】
各々の前記メモリにおいて前記ピクセルのデータが格納される領域は、１つの前記ピクセルが取り得る最大のデータ幅毎に、各々のメモリ順に順次割り当てられ、
前記ピクセルのデータ幅が前記最大のデータ幅よりも小さい場合には、該最大のデータ幅を上限として、複数の前記ピクセルについて連続したアドレスが割り当てられる
ことを特徴とする請求項２９記載の描画装置。
【請求項３４】
図形の描画領域をマトリクス状に分割して得られる複数のピクセルのうち、描画すべき図形に応じたピクセルを生成するラスタライザと、
前記ラスタライザによって生成された前記ピクセルに対して描画処理を行う複数のピクセル処理部と、
前記ピクセル処理部毎に設けられ、対応する前記ピクセル処理部によって描画された前記ピクセルのデータと、前記図形に貼り付けるべき画像をマトリクス状に分割して得られる複数のテクセルのデータとを保持する複数のメモリと、
前記ピクセル処理部毎に設けられ、対応する前記ピクセル処理部が扱うピクセルに対して貼り付けるべき前記テクセルのデータを、いずれかの前記メモリから読み出す読み出し回路と、
前記ピクセル処理部毎に設けられ、対応する前記読み出し回路によって読み出した前記テクセルをピクセルに貼り付けるテクスチャユニットと
を具備し、前記ピクセル処理部は、複数の前記ピクセルに対して描画処理を行い、
前記描画領域は、マトリクス状に配置された複数の第１ブロックの集合であり、
前記第１ブロックは、マトリクス状に配置され且つ互いに異なる前記ピクセル処理部によって描画される複数のピクセルの集合であり、
前記描画領域内において、同一のピクセル処理部で描画され且つ互いに最近接の３つの前記ピクセルは、該ピクセルにより形成される三角形の各頂点間の距離が、該ピクセル間で取り得る範囲内において最も等しくなるように位置し、
前記図形に貼り付けるべき画像は、マトリクス状に配置された複数の第２ブロックの集合であり、
前記第２ブロックは、マトリクス状に配置され且つ互いに異なる前記メモリに保持される複数の前記テクセルの集合であり、
前記画像内において、同一の前記メモリに保持され且つ互いに最近接の３つの前記テクセルは、該テクセルにより形成される三角形の各頂点間の距離が、該テクセル間で取り得る範囲内において最も等しくなるように位置する
ことを特徴とする描画装置。
【請求項３５】
図形の描画領域をマトリクス状に分割して得られる複数のピクセルのうち、描画すべき図形に応じたピクセルを生成するラスタライザと、
前記ラスタライザによって生成された前記ピクセルに対して描画処理を行う複数のピクセル処理部と、
前記ピクセル処理部毎に設けられ、対応する前記ピクセル処理部によって描画された前記ピクセルのデータを保持する複数のメモリと、
を具備し、前記ピクセル処理部は、複数の前記ピクセルに対して描画処理を行い、
前記描画領域は、マトリクス状に配置された複数のブロックの集合であり、
前記ブロックは、マトリクス状に配置され且つ互いに異なる前記ピクセル処理部によって描画される複数のピクセルの集合であり、
前記描画領域内において、同一のピクセル処理部で描画され且つ互いに最近接の３つの前記ピクセルは、該ピクセルにより形成される三角形の各頂点間の距離が、該ピクセル間で取り得る範囲内において最も等しくなるように位置し、
各々の前記メモリにおいて前記ピクセルのデータが格納される領域は、１つの前記ピクセルが取り得る最大のデータ幅毎に、各々のメモリ順に順次割り当てられ、
前記ピクセルのデータ幅が前記最大のデータ幅よりも小さい場合には、該最大のデータ幅を上限として、複数の前記ピクセルについて連続したアドレスが割り当てられる
ことを特徴とする描画装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、描画装置、描画方法、及び描画プログラムに関するもので、例えば複数のピクセルを同時に並列処理する描画装置に関する。
【背景技術】
【０００２】
近年、ＣＰＵ（Central Processing Unit）の動作の高速化に伴って、画像描画装置に対しても高速化の要求が高まってきている。
【０００３】
描画装置は、投入された図形をピクセルに分解するラスタライザと、ピクセルに描画処理を加えるピクセル処理部と、描画結果を読み書きするメモリとを備える。近年、ＣＧ（Computer Graphics）技術の進歩により、複雑なピクセル処理技術が頻繁に用いられるようになってきている。そのため、ピクセル処理部の負荷が大きく、そのためピクセル処理部を並列化することが行われている。更に、ピクセル処理部の並列度を上げるにつれて、処理速度のボトルネックは、メモリとの間のデータ転送となる。従って、データ転送バスを複雑化させることなく動作を高速化させるために、処理効率の向上のために、ピクセル処理部を並列化すると共に、各々のピクセル処理部にローカルメモリを割り当てる構成が、例えば特許第２９０１９４５号公報に提案されている。
【０００４】
しかしながら、上記手法であると、ピクセルの座標とピクセル処理部との対応が予め決まる。すなわち、ラスタライザは、各ピクセル処理部の処理状況を見て最も負荷の少ないピクセル処理部にピクセルを投入する、ということが出来ない。したがって、特定のピクセル処理部に負荷が集中することがあり、ピクセル処理部の負荷分散を均等にし難いという問題があった。そこで、各ピクセルに１つのピクセル処理部を対応させた構成も、例えばFuchs他著、“Fast Spheres, Shadows, Textures, Transparencies, and Image Enhancements in Pixel-Planes.”、Computer Graphics(Proc. SIGGRAPH 85)、Vol. 19、No. 3、p.111-120、1985年、及びFuchs他著、“Pixel-Planes 5: A Heterogeneous Multiprocessor Graphic System Using Processor-Enhanced Memories.”、Computer Graphics(Proc. SIGGRAPH 89)、Vol. 23、No.3、p.79-88、1989年に提案されている。
【０００５】
しかしながら、上記文献記載の方法であると、描画装置が非常に大規模にならざるを得ず、現実的でないという問題があった。
【発明の開示】
【０００６】
本発明は、回路規模を大型化することなく画像処理効率を向上出来る描画装置、描画方法、及び描画プログラムを提供する。
【０００７】
この発明の一態様に係る描画装置は、図形の描画領域をマトリクス状に分割して得られる複数のピクセルのうち、描画すべき図形に応じたピクセルを生成するラスタライザと、前記ラスタライザによって生成された前記ピクセルに対して描画処理を行うＮ個（Ｎ＝２（２ｎ＋２）、ｎは１以上の自然数）のピクセル処理部と、前記ピクセル処理部毎に設けられ、対応する前記ピクセル処理部によって描画された前記ピクセルのデータを保持する複数のメモリと、を具備し、前記ピクセル処理部は、複数の前記ピクセルに対して描画処理を行い、同一の前記ピクセル処理部によって描画処理される前記ピクセル同士は、前記描画領域内において等距離且つ等方的に位置し、同一の前記ピクセル処理部によって描画される近接する３つの前記ピクセルは、前記描画領域において、三辺のうちで最も短い辺の長さがＮ１／２より大きい三角形を形成する。
【０００８】
更に、この発明の一態様に係る描画方法は、図形の描画領域をマトリクス状に分割して得られる複数のピクセルのうち、描画すべき図形に応じたピクセルを生成するラスタライザを用いた描画方法であって、図形情報に基づいてピクセルを生成するステップと、生成されたピクセルが描画領域内において占める位置に応じて、Ｎ個（Ｎ＝２（２ｎ＋２）、ｎは１以上の自然数）のうちの対応するピクセル処理部に前記ピクセルを投入するステップと、投入されたピクセルに対して描画処理を行うステップと、描画処理を行ったピクセルデータを、前記ピクセル処理部に対応して設けられたメモリに格納するステップとを具備し、前記ラスタライザは、同一の前記ピクセル処理部によって描画処理される前記ピクセル同士が、前記描画領域内において等距離且つ等方的に位置し、且つ同一の前記ピクセル処理部によって描画される近接する３つの前記ピクセルが、前記描画領域において、三辺のうちで最も短い辺の長さがＮ１／２より大きい三角形を形成するように、前記ピクセル処理部に前記ピクセルを投入する。
【０００９】
更に、この発明の一態様に係る描画プログラムは、図形を描画するためにコンピュータを、入力された図形情報に応じたピクセルを生成するピクセル生成手段と、各々が、前記ピクセル生成手段によって生成された前記ピクセルのうち、描画領域内において実質的に等距離且つ等方的に位置する複数の前記ピクセルについて描画処理を行う複数の描画手段と、前記描画手段によって描画された前記ピクセルのデータを保持するＮ個（Ｎ＝２（２ｎ＋２）、ｎは１以上の自然数）の保持手段として機能させ、同一の前記保持手段によって保持される近接する３つの前記ピクセルは、前記描画領域において、三辺のうちで最も短い辺の長さがＮ１／２より大きい三角形を形成する。
【発明を実施するための最良の形態】
【００１０】
この発明の第１の実施形態に係る描画装置について、図１を用いて説明する。図１は、本実施形態に係る画像描画プロセッサシステムＬＳＩのブロック図である。
【００１１】
図示するように、本実施形態に係る画像描画プロセッサシステムＬＳＩ１０は、ホストプロセッサ２０、Ｉ／Ｏプロセッサ３０、メインメモリ４０、及びグラフィックプロセッサ５０を備えている。ホストプロセッサ２０とグラフィックプロセッサ５０とは、プロセッサバスＢＵＳによって、相互に通信可能に接続されている。
【００１２】
ホストプロセッサ２０は、メインプロセッサ２１、Ｉ／Ｏ部２２〜２４、及び複数の信号処理部（ＤＳＰ：Digital Signal Processor）２５を備えている。これらの回路ブロックは、ローカルネットワークＬＮ１によって相互に通信可能に接続されている。メインプロセッサ２１は、ホストプロセッサ２０内の各回路ブロックの動作を制御する。Ｉ／Ｏ部２２は、Ｉ／Ｏプロセッサ３０を介してホストプロセッサ２０外部とデータの授受を行う。Ｉ／Ｏ部２３は、メインメモリ４０との間でデータの授受を行う。Ｉ／Ｏ部２４は、プロセッサバスＢＵＳを介してグラフィックプロセッサ５０との間でデータの授受を行う。信号処理部２５は、メインメモリ４０や外部から読み込んだデータに基づいて信号処理を行う。
【００１３】
Ｉ／Ｏプロセッサ３０は、ホストプロセッサ２０と、例えば汎用バス、ＨＤＤやＤＶＤ（Digital Versatile Disc）ドライブ等の周辺機器並びにネットワークとを接続する。この際、ＨＤＤやＤＶＤドライブは、ＬＳＩ１０に搭載されているものでも良いし、またはＬＳＩ１０外部に設けられていても良い。
【００１４】
メインメモリ４０は、ホストプロセッサ２０が動作するために必要なプログラムを保持する。このプログラムは、例えば図示せぬＨＤＤ等から読み出されて、メインメモリ４０に格納される。
【００１５】
グラフィックプロセッサ５０は、コントローラ５１、Ｉ／Ｏ部５２、５３、演算処理部５４を備えている。コントローラ５１は、ホストプロセッサ２０との間の通信や、演算処理部５４の制御を行う。Ｉ／Ｏ部５２は、プロセッサバスＢＵＳを介したホストプロセッサ２０との間の入出力を司る。Ｉ／Ｏ部５３は、ＰＣＩ等の各種汎用バス、ビデオ及びオーディオ、更に外部メモリ等との入出力を司る。演算処理部５４は、画像処理演算を行う。
【００１６】
演算処理部５４は、ラスタライザ（rasterizer）５５、及び複数の信号処理部５６−０〜５６−３１を備えている。なお、本実施形態では信号処理部５６の数を３２個にしているが、これは一例に過ぎず、８個、１６個、６４個等でも良く、その数は限定されるものではない。演算処理部５４の詳細な構成について、図２を用いて説明する。図２はグラフィックプロセッサ５０のブロック図である。
【００１７】
図示するように、演算処理部５４は、ラスタライザ５５と、３２個の信号処理部５６−０〜５６−３１を備えている。ラスタライザ５５は、入力された図形情報に従って、ピクセル（pixel）を生成する。ピクセルとは、所定の図形を描画する際に取り扱われる最小単位の領域のことであり、ピクセルの集合によって図形が描画される。生成されるピクセルは、図形の形状（図形の占める位置）によって決まっている。すなわち、ある位置を描画する際にはその位置に対応したピクセルが生成され、また別の位置を描画する際には、対応する別のピクセルが生成される。信号処理部５６−０〜５６−３１はそれぞれ、ピクセル処理部ＰＰＵ０〜ＰＰＵ３１、及びピクセル処理部毎に設けられたローカルメモリＬＭ０〜ＬＭ３１を含んでいる。
【００１８】
ピクセル処理部ＰＰＵ０〜ＰＰＵ３１はそれぞれ、４個のリアライズパイプＲＰ（realize pipe）を有しており、４個のリアライズパイプＲＰが１個のＲＰクラスタＲＰＣ（realize pipe cluster）を形成している。ＲＰクラスタＲＰＣのそれぞれは、ＳＩＭＤ（Single Instruction Multiple Data）動作を行って、４個のピクセルを同時に処理する。そして、図形のそれぞれの位置に対応するピクセルは各ピクセル処理部ＰＰＵ０〜ＰＰＵ３１に割り当てられており、図形の占める位置に応じて、対応するピクセル処理部ＰＰＵ０〜ＰＰＵ３１がピクセルを処理する。ピクセルの位置とピクセル処理部との関係は後に詳述する。
【００１９】
ローカルメモリＬＭ０〜ＬＭ３１はそれぞれ、ピクセル処理部ＰＰＵ０〜ＰＰＵ３１によって生成されたピクセルデータを記憶する。ローカルメモリＬＭ０〜ＬＭ３１は、全体としてリアライズメモリ（realize memory）を形成する。リアライズメモリは、例えば１つのＤＲＡＭであり、その内の所定のデータ幅を有する各メモリ領域が、それぞれローカルメモリＬＭ０〜ＬＭ３１に相当する。
【００２０】
次に、本実施形態に係るグラフィックプロセッサにおける、ピクセルと描画位置との関係について図３を用いて説明する。図３は、図形を描画すべき全体の空間を示す概念図である。なお、図３に示す描画領域は、ローカルメモリ内においてピクセルデータを保持するメモリ空間（以下、フレームバッファ（frame buffer）と呼ぶ）に相当する。
【００２１】
図示するように、フレームバッファは、マトリクス状に配置された（（ｍ＋１）×（ｌ＋１））個のブロックＢＬＫ０〜ＢＬＫｎを含んでいる。図３ではｌ＝２９、ｍ＝１９
、ｎ＝５９９の場合について示しているが、この数は一例に過ぎず、限定されるものではない。ピクセル処理部ＰＰＵ０〜ＰＰＵ３１は、ブロックＢＬＫ０〜ＢＬＫ５９９順にピクセルを生成する。各ブロックＢＬＫ０〜ＢＬＫ５９９はそれぞれ、マトリクス状に配置された３２個のスタンプＳ（stamp）を含んで形成されている。図４は、図３に示された各ブロックが複数のスタンプを有する様子を示している。
【００２２】
図示するように、各スタンプは、同一のピクセル処理部によって描画される複数のピクセルの集合体である。本実施形態では１個のスタンプは（４×４）＝１６個のピクセルを含んでいるが、この数は例えば１個、４個、…等でも良く、限定されるものではない。図４において各スタンプに記載された番号Ｓ（＝０〜３１）を、以下スタンプＩＤと呼ぶ。そしてスタンプＩＤは、当該スタンプ内のピクセルを描画するピクセル処理部の番号に一致する。従って、スタンプＩＤとしてＳ＝０が割り当てられたスタンプ内のピクセルはピクセル処理部ＰＰＵ０によって描画され、Ｓ＝３１が割り当てられたスタンプ内のピクセルはピクセル処理部ＰＰＵ３１によって描画される。
【００２３】
ブロックＢＬＫ０〜ＢＬＫ５９９の各々には、上記スタンプが（８×４）＝３２個含まれている。１つのブロックに含まれる３２個のスタンプは、全て異なるピクセル処理部によって描画される。従って、１つのブロックあたりのスタンプ数は、ピクセル処理部数に等しい。そして、ブロック内においてスタンプは、左上から右下に向かって、Ｓ＝０からＳ＝３１まで順次割り当てられている。すなわち、左上から水平方向に並ぶ２つのスタンプが２段設けられ、この（２×２）個のスタンプが水平方向に２つ並び、この（４×２）個のスタンプが２段設けられ、この（４×４）個のスタンプが水平方向に２つ並んでいる。そして各スタンプは、この順序に従って、それぞれピクセル処理部ＰＰＵ０〜ＰＰＵ３１によって描画される。換言すれば、この順序に従ってスタンプＩＤが割り付けられる。但し、各スタンプへのＩＤの割り当ては任意であり、上記方法には限られない。すなわち、１つのブロックにピクセル処理部数と等しい数のスタンプが含まれ、それらのスタンプの全てが、互いに異なるピクセル処理部によって処理されるものであれば良い。従って、全体として（６４０×４８０）個のピクセルによって、図形を描画すべき空間が形成されている。また、同一ピクセル処理部によって処理される最近接の３つのスタンプは、直角三角形を形作るようにして位置している（図４では、ピクセル処理部ＰＰＵ０によって処理されるスタンプＳ＝０が、直角三角形の頂点に位置している様子を示している）。
【００２４】
次に、図２に示すグラフィックプロセッサ５０の動作について、図５を用いて説明する。図５は、図形描画時におけるグラフィックプロセッサ５０の動作を示すフローチャートである。
【００２５】
まず図形を描画するにあたって、まずラスタライザ５５に図形情報が入力される（ステップＳ１０）。図形情報は、例えば図形の頂点座標や色情報などである。ここで、例として三角形を描画する場合について説明する。ラスタライザ５５に入力された三角形は、描画空間において、図６に示すような位置を占めるとする。すなわち、三角形の３つの頂点座標が、ブロックＢＬＫ１のスタンプＳ＝７、ブロックＢＬＫ４０のスタンプＳ＝１９、及びブロックＢＬＫ４２のスタンプＳ＝０に相当すると仮定する。
【００２６】
すると、ラスタライザ５５は描画すべき三角形が占める位置に対応するスタンプ（またはピクセル）を生成する（ステップＳ１１）。この様子を示しているのが図７である。生成されたスタンプデータは、それぞれ予め対応付けられたピクセル処理部ＰＰＵ０〜ＰＰＵ３１に送られる（ステップＳ１２）。
【００２７】
そして、入力されたスタンプデータに基づいて、ピクセル処理部が自らの担当するピクセルについて描画処理を行う（ステップＳ１３）。図７の例であると、ブロックＢＬＫ１について、ピクセル処理部ＰＰＵ７、ＰＰＵ１１〜ＰＰＵ１５、ＰＰＵ２４、ＰＰＵ２６、ＰＰＵ２７が、それぞれが担当するピクセルについて描画処理を行う。ブロックＢＬＫ２０については、ピクセル処理部ＰＰＵ２９〜ＰＰＵ３１が、それぞれが担当するピクセルについて描画処理を行う。ブロックＢＬＫ２１については、ピクセル処理部ＰＰＵ１〜ＰＰＵ１９、ＰＰＵ２２、ＰＰＵ２４〜ＰＰＵ３１が、それぞれが担当するピクセルについて描画処理を行う。ブロックＢＬＫ４０については、ピクセル処理部ＰＰＵ１９〜ＰＰＵ２３が、それぞれが担当するピクセルについて描画処理を行う。ブロックＢＬＫ４１については、ピクセル処理部ＰＰＵ０〜ＰＰＵ７、ＰＰＵ１６〜ＰＰＵ１８、ＰＰＵ２０、ＰＰＵ２１が、それぞれが担当するピクセルについて描画処理を行う。
【００２８】
以上の結果、図７に示されるような三角形が、複数のピクセルによって描画される。ピクセル処理部によって描画されたピクセルデータは、スタンプ単位でローカルメモリＬＭ０〜ＬＭ３１に格納される（ステップＳ１４）。前述の通り、ピクセル処理部ＰＰＵ０〜ＰＰＵ３１のそれぞれはローカルメモリＬＭ０〜ＬＭ３１に対応しており、ピクセル処理部ＰＰＵ０〜ＰＰＵ３１によって処理されたピクセルデータは、それぞれローカルメモリＬＭ０〜ＬＭ３１に格納される。
【００２９】
上記のように、本実施形態に係る描画装置によれば、フレームバッファは複数のスタンプを有する複数のブロックが集まって形成されている。そして、個々のブロック内のスタンプは、それぞれ異なるピクセル処理部ＰＰＵ０〜ＰＰＵ３１によって処理される。この際、同一ピクセル処理部によって処理される最近接の３つのスタンプは、直角三角形の頂点にそれぞれ位置する。
【００３０】
以上のようにしてスタンプをフレームバッファ内に配置することで、ピクセル処理部ＰＰＵ０〜ＰＰＵ３１の負荷を、従来に比べて均等に分散させることが出来る。その結果、ピクセルの座標とピクセル処理部との対応が予め決まる、各々のピクセル処理部にローカルメモリを割り当てる構成において、特に回路規模を大型化することなく、描画処理を高速化することが出来る。
【００３１】
次に、この発明の第２の実施形態に係る描画装置について図８を用いて説明する。本実施形態は、上記第１の実施形態で説明したスタンプの配置をテクスチャにも適用したものである。図８は、本実施形態に係る画像描画プロセッサシステムＬＳＩ１０の備えるグラフィックプロセッサ５０のブロック図である。
【００３２】
図示するように、本実施形態に係るグラフィックプロセッサ５０は、上記第１の実施形態で説明した構成において、信号処理部５６−０〜５６−３１のそれぞれが、テクスチャユニットＴＵ（texture unit）及び読み出し回路ＲＣを更に有している。そしてローカルメモリＬＭ０〜ＬＭ３１のそれぞれは、参照画像（テクスチャ：texture）データを保持する。
【００３３】
読み出し回路ＲＣは、ローカルメモリＬＭ０〜ＬＭ３１からテクスチャデータを読み出す。テクスチャユニットＴＵは、テクスチャ処理を行う。すなわち、読み出し回路ＲＣによって読み出したテクスチャデータを、ピクセル処理部で処理中のピクセルに貼り付ける（以下、この処理をテクスチャマッピング（texture mapping）という）。
【００３４】
図９はテクスチャデータの一例を示す概念図である。図示するように、テクスチャデータは、マトリクス状に配置された（（ｍ＋１）×（ｌ＋１））個のテクスチャブロックＴＢＬＫ０〜ＴＢＬＫｎを含んでいる。図９ではｌ＝２９、ｍ＝１９、ｎ＝５９９個の場合について示しているが、この数は一例に過ぎず、限定されるものではない。
【００３５】
テクスチャブロックＴＢＬＫ０〜ＴＢＬＫｎのそれぞれは、（８×４）＝３２個のテクスチャスタンプ（texture stamp）を含んでいる。そして各テクスチャスタンプは、同一のローカルメモリに格納される複数のテクセル（texel）の集合体である。テクセルとは、所定のテクスチャを取り扱う際の最小単位であり、テクセルの集合によって、テクスチャが形成される。本実施形態では１個のテクスチャスタンプは（４×４）＝１６個のテクセルを含んでいるが、この数は例えば１個、４個、…などでも良く、限定されるものではない。但し、スタンプを形成するピクセル数と、テクスチャスタンプを形成するテクセル数とは等しいことが望ましい。図９において各スタンプに記載された番号Ｔ（０〜３１）を、以下テクスチャスタンプＩＤと呼ぶ。そしてテクスチャスタンプＩＤは、当該テクスチャスタンプ内のテクセルを格納するローカルメモリの番号に一致する。従って、テクスチャスタンプＩＤとしてＴ＝０が割り当てられたテクスチャスタンプ内のテクセルはローカルメモリＬＭ０に格納され、Ｔ＝３１が割り当てられたテクスチャスタンプ内のテクセルはローカルメモリＬＭ３１に格納される。
【００３６】
なお図９において斜線が付されているのは、何らかの絵柄が描かれていることを示すためであり、フレームバッファと区別するためのものである。
【００３７】
そして、１つのテクスチャブロックに含まれる３２個のテクスチャスタンプデータは、全て異なるローカルメモリに格納される。従って、１つのテクスチャブロックあたりのテクスチャスタンプ数は、ローカルメモリ数（＝ピクセル処理部数）に等しい。そして、テクスチャブロック内においてテクスチャスタンプは、左上から右下に向かって、Ｔ＝０からＴ＝３１まで順次割り当てられている。すなわち、左上から水平方向に並ぶ２つのテクセルが２段設けられ、この（２×２）個のテクセルが水平方向に２つ並び、この（４×２）個のテクセルが２段設けられ、この（４×４）個のテクセルが水平方向に２つ並んでいる。そして各テクスチャスタンプは、この順序に従って、それぞれローカルメモリＬＭ０〜ＬＭ３１に格納される。換言すれば、この順序に従ってＩＤが割り付けられる。従って、全体として（６４０×４８０）個のテクスチャスタンプによってテクスチャデータが形成されている。また、同一ＩＤを有する最近接の３つのテクセルは、直角三角形を形作るようにして位置している。
【００３８】
以上のように、テクスチャデータは、上記第１の実施形態で説明したフレームバッファと同様の方法によって、ＩＤが割り付けられている。各テクスチャスタンプへのＩＤの割り当ては任意であり、上記方法には限られない。すなわち、１つのテクスチャブロックにローカルメモリ数と等しい数のテクスチャスタンプが含まれ、それらのテクスチャスタンプの全てが、互いに異なるローカルメモリによって保持されるものであれば良い。但し、フレームバッファのスタンプと同じようにＩＤが割り当てられることが望ましい。
【００３９】
次に、図８に示すグラフィックプロセッサ５０の動作について、図１０を用いて説明する。図形を描画する方法は、基本的には上記第１の実施形態で説明したとおりである。すなわち、まずラスタライザ５５に図形情報が入力される（ステップＳ１０）。ここでは、第１の実施形態と同様に、図６に示す三角形を描画する場合について説明する。
【００４０】
次にラスタライザ５５は、描画すべき三角形が占める位置に対応するスタンプ（またはピクセル）を生成する（ステップＳ１１）。この様子は図７に示す通りである。生成されたスタンプデータは、それぞれ予め対応付けられたピクセル処理部ＰＰＵ０〜ＰＰＵ３１に送られる（ステップＳ１２）。
【００４１】
そして、入力されたスタンプデータに基づいて、ピクセル処理部が自らの担当するピクセルについて描画処理を行う。同時に、描画した図形にテクスチャデータを貼り付けるテクスチャマッピングを行う（ステップＳ２０）。以下テクスチャマッピングについて詳述する。
【００４２】
信号処理部５６−０〜５６−３１は、ピクセル処理部ＰＰＵ０〜ＰＰＵ３１によってピクセルに対する描画処理を行うと共に、読み出し回路ＲＣによって、対応するピクセルに貼り付けるべきテクスチャデータをローカルメモリＬＭ０〜ＬＭ３１から読み出す。例えば、ピクセル処理部が図７に示す三角形を描画するとする。そして、図７に示す三角形に貼り付けるテクスチャデータは、図１１に示すように、テクスチャブロックＴＢＬＫ１、ＴＢＬＫ２０、ＴＢＬＫ２１、ＴＢＬＫ４１にまたがる三角形であったとする。そして、フレームバッファにおけるブロックＢＬＫ１、スタンプＳ＝７に位置する頂点が、テクスチャにおけるテクスチャブロックＴＢＬＫ２０、テクスチャスタンプＴ＝２１に対応し、フレームバッファにおけるブロックＢＬＫ４０、スタンプＳ＝１９に位置する頂点が、テクスチャにおけるテクスチャブロックＴＢＬＫ４１、テクスチャスタンプＴ＝３０に対応し、フレームバッファにおけるブロックＢＬＫ４２、スタンプＳ＝０に位置する頂点が、テクスチャにおけるテクスチャブロックＴＢＬＫ１、テクスチャスタンプＴ＝２０に対応すると仮定する。
【００４３】
すると、信号処理部５６−７の読み出し回路ＲＣは、ローカルメモリＬＭ２１からテクスチャブロックＴＢＬＫ２０のテクスチャスタンプＴ＝２１に対応するテクセルデータを読み出す。すると信号処理部５６−７のテクスチャユニットＴＵが、ブロックＢＬＫ１のスタンプＳ＝７に、テクスチャブロックＴＢＬＫ２０のテクスチャスタンプＴ＝２１を貼り付ける。また信号処理部５６−１９の読み出し回路ＲＣは、ローカルメモリＬＭ３０からテクスチャブロックＴＢＬＫ４１のテクスチャスタンプＴ＝３０に対応するテクセルデータを読み出す。すると信号処理部５６−１９のテクスチャユニットＴＵが、ブロックＢＬＫ４０のスタンプＳ＝１９に、テクスチャブロックＴＢＬＫ４１のテクスチャスタンプＴ＝３０を貼り付ける。更に信号処理部５６−０の読み出し回路ＲＣは、ローカルメモリＬＭ２０からテクスチャブロックＴＢＬＫ１のテクスチャスタンプＴ＝２０に対応するテクセルデータを読み出す。すると信号処理部５６−０のテクスチャユニットＴＵは、ブロックＢＬＫ４２のスタンプＳ＝０に、テクスチャブロックＴＢＬＫ１のテクスチャスタンプＴ＝２０を貼り付ける。
【００４４】
なお、以上の例は、描画すべき三角形の面積が、フレームバッファとテクスチャとで等しい場合である。一般的には、テクスチャは拡大または縮小されてフレームバッファに貼り付けられることが多いが、この場合でも、フレームバッファにおける三角形の座標に対応するテクスチャスタンプが選択されることには変わりはない。
【００４５】
以下同様にして、信号処理部５６−０〜５６−３１は、それぞれが描画処理するスタンプに貼り付けるべきテクセルを、ローカルメモリＬＭ０〜ＬＭ３１のいずれかから読み出し、スタンプに貼り付ける。その結果、図１２に示される三角形の形状を有するテクスチャデータが、図７に示される三角形の形状を有するスタンプの集合に貼り付けられる。
【００４６】
その後、テクスチャデータの貼り付けられたピクセルデータは、それぞれローカルメモリに格納される（ステップＳ１４）。
【００４７】
上記のように、本実施形態に係る描画装置によれば、テクスチャは複数のテクスチャブロックが集まって形成されている。そして、個々のテクスチャブロック内のテクセルは、それぞれ異なるローカルメモリＬＭ０〜ＬＭ３１に格納される。この際、同一ローカルメモリに格納される最近接の３つのテクセルは、直角三角形の頂点にそれぞれ位置する。
【００４８】
以上のように、テクセルとローカルメモリとを関係付けることによって、ピクセル処理部によるローカルメモリへのアクセスを、従来に比べて均等に分散させることが出来る。その結果、回路規模を大型化することなく、描画処理を高速化することが出来る。
【００４９】
次に、この発明の第３の実施形態に係る描画装置について図１３を用いて説明する。本実施形態は、上記第１、第２の実施形態において、ローカルメモリ内におけるフレームバッファに対するアドレス割り当て方法（以下、アドレッシング（addressing）と呼ぶ）に関するものである。図１３は、本実施形態に係る画像描画プロセッサシステムＬＳＩ１０の備えるグラフィックプロセッサ５０における演算処理部５４のブロック図である。画像描画プロセッサシステムＬＳＩ１０の構成は、上記第１、第２の実施形態で説明した構成と同じであるが、ここでは簡単化の為に、信号処理部が４個の場合を例に挙げて説明する。
【００５０】
図示するように、演算処理部５４は、ラスタライザ５５及び４個の信号処理部５６−０〜５６−３を備えている。信号処理部５６−０〜５６−３のそれぞれは、ピクセル処理部ＰＰＵ０〜ＰＰＵ３及びローカルメモリＬＭ０〜ＬＭ３を備えている。従って、フレームバッファは図１２に示すようになる。すなわちフレームバッファは、ピクセル処理部ＰＰＵ０〜ＰＰＵ３で処理される（２×２）個のスタンプ群が、（２×２）個集まって形成されている。
【００５１】
なお以上の例は、説明の簡単化のために、極端に小さなフレームバッファを仮定しているものであり、実用上は、例えば（６４０×４８０）程度のフレームバッファが使用されることが通常である。
【００５２】
図１４は、ローカルメモリＬＭ０〜ＬＭ３のそれぞれ格納されるスタンプデータと、ローカルメモリＬＭ０〜ＬＭ３に割り当てられるアドレスとの関係を示している。前述の通り、ローカルメモリＬＭ０〜ＬＭ３には、ブロックＢＬＫ０〜ＢＬＫ３についてのそれぞれスタンプＩＤがＳ＝０、Ｓ＝１、Ｓ＝２、Ｓ＝３のスタンプデータが格納される。従って、各ローカルメモリＬＭ０〜ＬＭ３には、４つのスタンプデータが格納される。そして、各スタンプデータが格納されるメモリ空間のアドレスは次のようにして割り当てられている。
【００５３】
すなわち図１５に示すように、スタンプＩＤ順ではなく、ブロックＩＤ順にアドレスが連続して割り当てられる。図１５におけるアドレスは１６進数で標記したものであって、１つのスタンプデータが格納されるメモリ空間は３２バイトであったと仮定する。すると、まずローカルメモリＬＭ０において、ブロックＢＬＫ０に対応するスタンプが格納されているメモリ領域の先頭アドレスに例えば“００００”が割り当てられる。先頭アドレスを“００００”としているのは説明の簡単化のためであり、特に限定されるものではない。当該メモリ領域が“００００”〜“００１Ｆ”までのアドレスを占めるとすれば、次のアドレス“００２０”は、ローカルメモリＬＭ１において、ブロックＢＬＫ０に対応するスタンプが格納されているメモリ領域の先頭アドレスに割り当てられる。当該メモリ領域は“００２０”〜“００３Ｆ”までのアドレスを占めるから、次のアドレス“００４０”は、ローカルメモリＬＭ２において、ブロックＢＬＫ０に対応するスタンプが格納されているメモリ領域の先頭アドレスに割り当てられる。当該メモリ領域は“００４０”〜“００５Ｆ”までのアドレスを占めるから、次のアドレス“００６０”は、ローカルメモリＬＭ３において、ブロックＢＬＫ０に対応するスタンプが格納されているメモリ領域の先頭アドレスに割り当てられる。以上のようにして、ブロックＢＬＫ０について全てアドレスが割り当てられると、次にブロックＢＬＫ１についてアドレスが割り当てられる。以降、ブロックＢＬＫ１におけるスタンプＳ＝０〜３についてアドレスが順次割り当てられ、その後ブロックＢＬＫ２におけるスタンプＳ＝０〜３についてアドレスが順次割り当てられ、その後ブロックＢＬＫ３におけるスタンプＳ＝０〜３についてアドレスが順次割り当てられる。
【００５４】
すなわち、スタンプ座標（Ｘ、Ｙ）とブロックＩＤとの関係は、次に（１）式で表される。但し、スタンプ座標（Ｘ、Ｙ）＝（０、０）に相当する位置は、ブロック内の最も左上の位置であるとする。
Ｂ＝Ｘ／ｗ＋（Ｙ／ｈ）×（ｆｗ／ｗ）      （１）
但し、ＢはブロックＩＤ、ｗはブロック１個あたりのＸ方向のスタンプ数、ｈはブロック１個あたりのＹ方向のスタンプ数、ｆｗはフレームバッファ全体におけるＸ方向のスタンプ数である。
【００５５】
本実施形態で説明したアドレッシング方法によってローカルメモリへアドレスを割り付けると、スタンプ座標（Ｘ、Ｙ）とメモリアドレスＡとの関係は、下記の式（２）のようになる。
Ａ＝（Ｂ×Ｎ＋Ｓ）×２ｄ                  （２）
但し、スタンプのデータ幅を２ｄバイトとし、Ｎをピクセル処理部数とし、アドレスＡをバイト単位のアドレスとしている。
【００５６】
以上の結果、各ローカルメモリＬＭ０〜ＬＭ３のメモリ空間のアドレスは図１６のようになる。ローカルメモリＬＭ０においては、ブロックＢＬＫ０に対応するデータはアドレス“００００”〜“００１Ｆ”のメモリ空間に格納され、ブロックＢＬＫ１に対応するデータはアドレス“００８０”〜“００８Ｆ”のメモリ空間に格納され、ブロックＢＬＫ２に対応するデータはアドレス“０１００”〜“０１１Ｆ”のメモリ空間に格納され、ブロックＢＬＫ３に対応するデータはアドレス“０１８０”〜“０１９Ｆ”のメモリ空間に格納される。
【００５７】
ローカルメモリＬＭ１においては、ブロックＢＬＫ０に対応するデータはアドレス“００２０”〜“００３Ｆ”のメモリ空間に格納され、ブロックＢＬＫ１に対応するデータはアドレス“００Ａ０”〜“００ＢＦ”のメモリ空間に格納され、ブロックＢＬＫ２に対応するデータはアドレス“０１２０”〜“０１３Ｆ”のメモリ空間に格納され、ブロックＢＬＫ３に対応するデータはアドレス“０１Ａ０”〜“０１ＢＦ”のメモリ空間に格納される。
【００５８】
ローカルメモリＬＭ２においては、ブロックＢＬＫ０に対応するデータはアドレス“００４０”〜“００４Ｆ”のメモリ空間に格納され、ブロックＢＬＫ１に対応するデータはアドレス“００Ｃ０”〜“００ＤＦ”のメモリ空間に格納され、ブロックＢＬＫ２に対応するデータはアドレス“０１４０”〜“０１５Ｆ”のメモリ空間に格納され、ブロックＢＬＫ３に対応するデータはアドレス“０１Ｃ０”〜“０１ＤＦ”のメモリ空間に格納される。
【００５９】
ローカルメモリＬＭ３においては、ブロックＢＬＫ０に対応するデータはアドレス“００６０”〜“００６Ｆ”のメモリ空間に格納され、ブロックＢＬＫ１に対応するデータはアドレス“００Ｅ０”〜“００ＦＦ”のメモリ空間に格納され、ブロックＢＬＫ２に対応するデータはアドレス“０１６０”〜“０１７Ｆ”のメモリ空間に格納され、ブロックＢＬＫ３に対応するデータはアドレス“０１Ｅ０”〜“０１ＦＦ”のメモリ空間に格納される。
【００６０】
以上のように、同一ピクセル処理部によって描画されるスタンプのアドレスはとびとびの値となる。
【００６１】
上記のように、本実施形態に係る描画装置によれば、個々のローカルメモリ内においては、格納されるデータに割り当てられるアドレスはとびとびの値とし、ブロックＩＤ順に並べた際に連続した値となるように、アドレスを割り当てている。
【００６２】
このようなアドレッシングを行うことで、フレームバッファのブロック数を増やした場合であっても、メモリに対するアドレス割り当てが簡便となる。例えば図１４の構成においてブロックＢＬＫ４を追加した場合を考える。すると、ブロックＢＬＫ４内のスタンプＳ＝０〜Ｓ＝３のデータを保持するローカルメモリＬＭ０〜ＬＭ３のアドレスは、ブロックＢＬＫ３、Ｓ＝３の次に連続してアドレスを割り当てられればよい。
【００６３】
なお、本実施形態ではフレームバッファに対するアドレッシングを例に挙げて説明した。しかし、第２の実施形態に係る構成において、テクスチャデータを格納すべきローカルメモリのメモリ空間についても、同様のアドレッシングを行うことが出来る。テクスチャデータに対しても同様のアドレッシングを行うことで、例えば描画結果としてのフレームバッファを、そのままテクスチャデータとして使用することが出来る。
【００６４】
次に、この発明の第４の実施形態に係る描画装置について、図２及び図１７を用いて説明する。本実施形態は、上記第１、第３の実施形態に係る構成において、フレームバッファ内におけるスタンプの配置方法に関するものである。図１７は、本実施形態に係るフレームバッファの概念図である。
【００６５】
本実施形態に係る演算処理部５４は、３２個のピクセル処理部５６−０〜５６−３１を備えている。すなわち、３２個のローカルメモリＬＭ０〜ＬＭ３１を備えている。従って、フレームバッファにおいて、１つのブロックが含むスタンプ数は３２個である。そして、１つのブロック内のスタンプは、（８×４）のマトリクス配置されている。
【００６６】
各スタンプは、あるスタンプと、そのスタンプ周囲においてそのスタンプと同一のピクセル処理部によって描画される最近接の６個のスタンプが、ほぼ正六角形を形成するようにして配置されている。すなわち、同一ピクセル処理部で描画される近接する３個のスタンプは、ほぼ正三角形を形作る。図１８は、同一ピクセル処理部によって描画されるスタンプの配置を概念的に示す。
【００６７】
図示するように、（６×６）個のスタンプ群を想定した際、同一ピクセル処理部に描画される３個のスタンプが、図１６におけるＡ点、Ｂ点、及びＣ点に配置される。スタンプ群における左上の角部の座標を（０、０）とすれば、Ａ点の座標は（０、６）、Ｂ点の座標は（２、０）、Ｃ点の座標は（６、４）である。そして、スタンプの縦方向（Ｙ方向）及び横方向（Ｘ方向）の並びは、１６スタンプ周期で同じ並びを繰り返す。従って、ピクセル処理部の番号Ｓ［４：０］は、スタンプのＸ座標の下位４ビットＸ［３：０］と、Ｙ座標の下位４ビットＹ［３：０］とを用いて下記の（３）式で表される。
Ｓ［０］＝ Ｘ［０］
Ｓ［１］＝ Ｙ［０］
Ｓ［２］＝（Ｘ［２］xor !Ｙ［１］and Ｙ［２］）or（Ｘ［１］and !Ｙ［２］）xor Ｘ［３］xor Ｙ［３］
Ｓ［３］＝（Ｘ［１］xor !Ｘ［２］and Ｙ［２］）or（Ｙ［１］and !Ｙ［２］）xor Ｘ［３］xor Ｙ［３］
Ｓ［４］＝ Ｘ［２］xor Ｙ［２］                  （３）
但し、xorは排他的論理和演算、!は論理否定演算、orは論理和演算、andは論理積演算を示している。なお、ピクセル処理部の番号、Ｘ座標、Ｙ座標のビットは、下位から数えたもので、スタンプ座標（Ｘ、Ｙ）＝（０、０）に相当する位置は、ブロック内の最も左上の位置であるとする。また、スタンプ座標（Ｘ、Ｙ）とブロックＩＤとの関係は、上記第３の実施形態で説明した（１）式で表され、スタンプ座標（Ｘ、Ｙ）とアドレスＡとの関係は（２）式で表される。
【００６８】
図１９は、各ローカルメモリＬＭ０〜ＬＭ３１に格納されるスタンプデータと、それぞれのスタンプデータに割り付けられるアドレスとの関係を示している。図示するように、同一ピクセル処理部によって描画されるスタンプのアドレスはとびとびの値となる。
【００６９】
すなわち、ラスタライザ５５は、投入された図形に基づいてスタンプを生成する。そして生成したスタンプを、各スタンプの座標に従って、式（３）により選択されるピクセル処理部に渡す。するとピクセル処理部は、処理結果を式（２）で求められるアドレスに格納する。
【００７０】
なお、本実施形態に係るグラフィックプロセッサ５０の動作は、第１の実施形態において図５を用いて説明したとおりである。但し、第１の実施形態と異なる点は、描画領域内におけるスタンプの配置が、図４のとおりでなく、図１７に示す通りである点である。すなわち、ラスタライザ５５が各ピクセル処理部ＰＰＵ０〜ＰＰＵ３１へのスタンプの投入方法が異なる。本実施形態では、同一ピクセル処理部へ投入される複数のスタンプが、描画領域内において、等距離且つ等方的となる、換言すれば、各スタンプ周囲において近接する６つのスタンプが正六角形を為す。
【００７１】
上記構成の描画装置によれば、第１、第３の実施形態で説明した効果が得られる。同時に、第１の実施形態に比べて、より均等に負荷が分散される。この点につき、以下詳細に説明する。
【００７２】
第１の実施形態における図４のようにフレームバッファを各々異なるピクセル処理部で描画されるスタンプの集合としてのブロックをマトリクス配置して形成した場合、最適なスタンプ配置は、同一ピクセル処理部により描画される最近接スタンプ同士が正三角形を形成する場合である。この場合、同一ピクセル処理部によって描画されるスタンプの隣接間隔は、いずれの方向においても最大化される。すなわち、あるスタンプの周囲の近傍スタンプは正六角形を形成し、当該スタンプから等方的な配置となる。すると、１個のスタンプは周囲に存在する６個の正三角形の頂点であるから、正三角形の個数を３倍して頂点数を数えると６回重複することになる。よって、同一ピクセル処理部に対応するスタンプ数は、正三角形の数の半分である。そして、１ブロックは２つの正三角形に覆われることになる。つまり、正三角形の面積は、ブロック面積の半分である。正三角形の一辺の長さＬは、次の（４）式で表される。
√３×（Ｌ２／４）＝ｗ・ｈ／２     （４）
従って、同一ピクセル処理部によって描画されるスタンプ同士の理想的な隣接間隔Ｌは、下記の（５）式で表される。
Ｌ＝√（２・ｗ・ｈ／√３）                （５）
従って、本実施形態では（３）式及び図１７、図１８に示すように、同一ピクセル処理部によって描画される３つの近接スタンプが、実質的な正三角形の頂点に位置するように、ピクセル処理部の割り当てを行っている。ブロックあたりに含まれるスタンプ数が（８×４）個である場合、同一ピクセル処理部に描画される近傍スタンプが形成する三角形の三辺の長さは、５．６６、６．３２、６．３２である（図１８参照）。従って、正確には正三角形ではないが、１個のブロックが（８×４）個のスタンプを含む場合において、同一ピクセル処理部で描画されるスタンプによって形成される三角形の三辺の長さを可能な限り均一にしようとすると、三辺の長さは上記のようになる。すなわち、１個のブロックが（８×４）個のスタンプを含むフレームバッファにおいて、実質的に正三角形をなしていると見ることが出来る。その結果、上記第１の実施形態と比べて、三辺の長さがより均等となり、１スタンプ周囲の６個のスタンプが実質的な正六角形を形作る。すなわち、同一ピクセル処理部によって処理されるスタンプは、互いに、実質的に等距離且つ等方的な配置となる。そのため、同一ピクセル処理部によって描画されるスタンプが、フレームバッファ上において偏りが少なくなるよう分布する。以上のように、同一ピクセル処理部に処理されるスタンプ間隔が均等になるため、どのような図形を描画する場合であっても、ピクセル処理部の負担を均等に分散させることが出来る。その結果、ピクセル処理の並列度が向上し、図形描画を高速化出来る。
【００７３】
なお、図１８に示すように、同一ピクセル処理部が処理されるスタンプによって形成される三角形の頂点座標は偶数である。従って、頂点座標の値を、Ｘ方向及びＹ方向ともに１／２とすることで、ブロックサイズが（４×２）スタンプ、ピクセル処理部数が８個の場合でも、第１の実施形態と同様のスタンプの配置が可能となる。この様子を示しているのが図２０である。また逆に、頂点座標を整数倍しても同様の配置が可能である。図２１は、頂点座標を第１の実施形態の場合の２倍にしたものであり、この場合にはブロックサイズが（１６×８）スタンプ、ピクセル処理部数が１２８個となる。このように、ピクセル処理部数が８ｊ２個（ｊは自然数）であれば、ブロックサイズを（４ｊ×２ｊ）スタンプ（または（２ｊ×４ｊ）スタンプ）として、上記第１の実施形態と同様の配置が適用できる。
【００７４】
次に、この発明の第５の実施形態に係る描画装置について、図２２を用いて説明する。本実施形態は、上記第２の実施形態で説明したテクセルの配置方法に、上記第４の実施形態で説明したスタンプの配置方法を適用し、更にテクスチャスタンプのアドレッシングに対して上記第３の実施形態で説明した方法を適用したものである。本実施形態に係る画像描画プロセッサシステムＬＳＩ１０の備えるグラフィックプロセッサ５０の構成は、第２の実施形態で説明した図８の構成と同様であるので説明は省略する。また、フレームバッファにおけるスタンプの配置、及びフレームバッファ内のスタンプのアドレッシングは、上記第４の実施形態で説明したとおりである。図２２は、本実施形態に係るテクスチャの概念図である。
【００７５】
図示するように、テクスチャにおけるテクスチャブロックは、３２個のテクスチャスタンプを有しており、テクスチャスタンプは（８×４）のマトリクス配置されている。
【００７６】
各テクスチャスタンプは、第４の実施形態で説明したスタンプと同様に、各テクスチャスタンプは、あるテクスチャスタンプ周囲においてそのテクスチャスタンプと同一ローカルメモリに格納される最近接の６個のテクスチャスタンプが、ほぼ正六角形を形成するようにして配置されている。すなわち、同一ローカルメモリに格納される互いに最近接な３個のテクスチャスタンプは、ほぼ正三角形を形成する。更に換言すれば、同一ローカルメモリに格納されるテクスチャスタンプは、実質的に、互いに等距離且つ等方的に位置する。同一ローカルメモリに格納されるテクスチャスタンプの配置は、第４の実施形態で説明した図１８と同様である。従って、テクスチャスタンプのＸ座標及びＹ座標と、ローカルメモリ番号ＬＭ０〜ＬＭ３１との関係も（３）式で表される。
【００７７】
なお、本実施形態に係るグラフィックプロセッサ５０の動作は、第２の実施形態において図１０を用いて説明したとおりである。但し、第２の実施形態と異なる点は、画像データ内におけるテクスチャスタンプの配置が、図９のとおりでなく、図２２に示す通りである点である。すなわち、ローカルメモリＬＭ０〜ＬＭ３１へのテクスチャスタンプの記憶方法が異なる。本実施形態では、同一ローカルメモリへ投入される複数のテクスチャスタンプが、画像データ内において、等距離且つ等方的となる、換言すれば、近接する６つのテクスチャスタンプが正六角形を為す。
【００７８】
本実施形態に係る描画装置によれば、上記第２、第３の実施形態で説明した効果が得られる。同時に、第２の実施形態に比べて、ローカルメモリへのアクセスをより均等に出来る。これは、第４の実施形態でスタンプについて説明したとおりである。すなわち、同一ローカルメモリに格納されるテクセルで形成される三角形の三辺の長さを可能な限り均一にしている。従って、１個のテクスチャブロックが（８×４）個のテクスチャスタンプを含むテクスチャにおいて、３個の近接テクスチャスタンプが実質的に正三角形をなしていると見ることが出来る。その結果、上記第２の実施形態と比べて、三辺の長さがより均等となり、１テクスチャスタンプ周囲の６個のテクスチャスタンプが実質的な正六角形を形作る等方的な配置となる。そのため、同一ローカルメモリに格納されるテクスチャスタンプが、テクスチャ上において偏りが少なくなるよう分布する。このように、同一ローカルメモリに格納されるテクスチャスタンプ間隔が均等になる。よって、図形の回転に依存してテクスチャデータの走査方法が変化した場合であっても、各ローカルメモリへのアクセスは均等に行われる。この点につき、以下説明する。
【００７９】
図形を描画する場合において、スタンプの処理は例えばブロックＩＤ順に行われる。すなわち図３において、横方向に順次描画がなされていく。他方、テクスチャマッピングを行う際、ピクセルに貼り付けるべきテクセルは、必ずしもブロックＩＤ順に読み出されるとは限らない。フレームバッファ上の図形に対して、テクスチャ上のデータが回転しているような場合には、テクセルはブロックＩＤと全く関係なく読み出されることになる。例えば貼り付けるべきテクスチャデータが、フレームバッファ上の図形に対して９０°回転していれば、フレームバッファ上では横方向に走査されるのに対して、テクスチャデータは縦方向に走査されることになる。
【００８０】
しかし本実施形態に係る構成であると、同一ローカルメモリに格納されるテクセルは等方的に配置されている。従って、図形の回転によってある特定のローカルメモリに格納されるテクセルに対してアクセスが集中することを回避出来る。その結果、高速なテクスチャマッピングが可能となる。
【００８１】
次に、この発明の第６の実施形態に係る描画装置について説明する。本実施形態は、上記第４、第５の実施形態において、ローカルメモリ内におけるスタンプデータ及びテクセルデータの格納方法に関するものである。図２３はローカルメモリのメモリ空間の概念図である。
【００８２】
本実施形態では、図２３に示すように、１つのスタンプデータは複数のデータ幅を取り得る。スタンプデータが取り得るデータ幅は、２ｋ＝１、２、４、８、…２ｄバイト（ｋ、ｄは自然数であり、ｋ＝０〜ｄ）である。スタンプデータが格納されるメモリ領域の開始アドレスを“００００”とすれば、スタンプデータのデータ幅が３２バイト（ｋ＝５）の場合、１つのスタンプデータが占めるメモリ空間のバイト単位のアドレスは、“００００”〜“００１Ｆ”である。データ幅が１６バイト（ｋ＝４）の場合には“００００”〜“０００Ｆ”、データ幅が８バイト（ｋ＝３）の場合には“００００”〜“０００７”である。
【００８３】
そして、本実施形態では、１つのスタンプデータが取り得る最大のデータ幅に合わせて、ローカルメモリにアドレスを割り当てる。すなわち図２４に示すように、１つのスタンプデータの最大データ幅が２ｄバイトであったとすると、各ローカルメモリは、連続したアドレスが割り当てられた２ｄバイトのメモリ空間を複数備える。例えばスタンプデータの最大データ幅が３２バイトであったとすれば、各ローカルメモリは、３２バイト単位でメモリ領域を保持し、それぞれのメモリ空間には連続したアドレスが割り当てられる。なお、以下ではこのアドレスが連続した２ｄバイトのメモリ領域を“単位メモリ領域ＵＲ”と便宜上呼ぶことにする。
【００８４】
次に、図２４に示すようにローカルメモリにアドレスを割り当てた際の、実際のスタンプデータの格納方法について図２５を用いて説明する。
【００８５】
前述の通り、ローカルメモリは、２ｄバイトのメモリ領域（単位領域ＵＲ）毎に連続したアドレスが割り当てられている。また、１つのスタンプの最大データ幅は３２バイトであると仮定する。すると、各ローカルメモリにおいて、単位領域ＵＲに割り当てられるアドレスは、（当該単位領域ＵＲの開始アドレス）〜（開始アドレス＋“００１Ｆ”）となる。
【００８６】
スタンプデータ幅が、取り得る最大値の２ｄ＝３２バイト（ｋ＝５）であった場合、図２５に示すように、１つの単位領域ＵＲには１つのスタンプデータが格納される。これは、上記第３の実施形態で説明したとおりであり、すなわち、各ローカルメモリの単位領域ＵＲには、ブロックＩＤ順にスタンプデータが格納され、それぞれの単位領域ＵＲ内ではアドレスは連続しているが、単位領域ＵＲ間ではアドレスはとびとびの値となる。
【００８７】
次に、スタンプデータのデータ幅が、２ｄ−１＝１６バイト（ｋ＝４）であったとする。するとこの場合には、図２５に示すように、単位領域ＵＲ内にはブロックＩＤ順に２つのスタンプデータが格納される。勿論、個々の単位領域ＵＲ内には連続したアドレスが割り当てられる。図２５の例であると、ローカルメモリＬＭ０の最初の単位領域ＵＲには、ブロックＢＬＫ０、ＢＬＫ１においてピクセル処理部ＰＰＵ０によって処理されるスタンプデータが格納される。そしてローカルメモリＬＭ０における次の単位領域ＵＲには、ブロックＢＬＫ２、ＢＬＫ３におけるスタンプデータが格納される。
【００８８】
次に、スタンプデータのデータ幅が、２ｄ−２＝８バイト（ｋ＝３）であったとする。すると、この場合には図２５に示すように、単位領域ＵＲ内にはブロックＩＤ順に４つのスタンプデータが格納される。勿論、個々の単位領域ＵＲ内には連続したアドレスが割り当てられる。図２５の例であると、ローカルメモリＬＭ０の最初単位ＵＲには、ブロックＢＬＫ０〜ＢＬＫ３においてピクセル処理部ＰＰＵ０に処理されるスタンプデータが格納される。そしてローカルメモリＬＭ０における次の単位領域ＵＲには、ブロック４〜７におけるスタンプデータが格納される。
【００８９】
以下、スタンプデータ幅が２ｄ−２＝４バイト（ｋ＝２）の場合には、単位領域ＵＲ内には８つのスタンプデータがブロックＩＤ順に格納され、スタンプデータ幅が２ｄ−２＝２バイト（ｋ＝１）の場合には、単位領域ＵＲ内には１６個のスタンプデータがブロックＩＤ順に格納され、スタンプデータ幅が２ｄ−２＝１バイト（ｋ＝０）の場合には、単位領域内には３２個のスタンプデータがブロックＩＤ順に格納される。
【００９０】
すなわち、スタンプについてある所定のデータ幅を基準にして、ローカルメモリへのアドレスの割り当てが行われている。そして、スタンプのデータ幅が変化したときも、ローカルメモリへのアドレスの割り当ては変化させない。その代わり、データ幅が小さい場合には、隣接ブロックから取り出した複数のスタンプデータを結合（パッキング：packing）させることにより最大値に合わせこんで、ローカルメモリへ格納している。例えばデータ幅が２ｄ−１、すなわち最大の１／２の場合には、隣接する２つのブロックにおける同一ピクセル処理部で処理される２つのスタンプをパッキングすることにより２ｄバイトのデータとしてローカルメモリへ格納する。
【００９１】
以上の結果、各ローカルメモリＬＭ０〜ＬＭ３１のメモリ空間のアドレスは図２６のようになる。スタンプデータ幅が最大値（３２バイト）の場合には、上記第３の実施形態と同様のアドレスの割り当てになる。
【００９２】
スタンプデータ幅が１６バイトの場合には、ローカルメモリＬＭ０においてブロックＢＬＫ０、ＢＬＫ１のスタンプデータは、アドレスが連続した単位領域ＵＲ内に格納され、それぞれのアドレスは“００００”〜“０００Ｆ”、“００１０”〜“００１Ｆ”である。ブロックＢＬＫ２、ＢＬＫ３のスタンプデータは、ブロックＢＬＫ０、ＢＬＫ１のスタンプデータが格納される単位領域ＵＲとはアドレスが不連続な単位領域ＵＲ内に格納され、それぞれのアドレスは“０４００”〜“０４０Ｆ”、“０４１０”〜“０４１Ｆ”である。以下、２つのブロック毎に、アドレスが連続したそれぞれの単位領域ＵＲにスタンプデータが格納される。勿論、単位領域間のアドレスは不連続である。
【００９３】
スタンプデータ幅が８バイトの場合には、ローカルメモリＬＭ０においてブロックＢＬＫ０〜ＢＬＫ３のスタンプデータは、アドレスが連続した単位領域ＵＲ内に格納され、それぞれのアドレスは“００００”〜“０００７”、“０００８”〜“０００Ｆ”、“００１０”〜“００１７”、“００１８”〜“００１Ｆ”である。ブロックＢＬＫ４〜ＢＬＫ７のスタンプデータは、ブロックＢＬＫ０〜ＢＬＫ３のスタンプデータが格納される単位領域ＵＲとはアドレスが不連続な単位領域ＵＲ内に格納され、それぞれのアドレスは“０４００”〜“０４０７”、“０４０８”〜“０４０Ｆ”、“０４１０”〜“０４１７”、“０４１８”〜“０４１Ｆ”である。以下、４つのブロック毎に、アドレスが連続したそれぞれの単位領域ＵＲにスタンプデータが格納される。勿論、単位領域間のアドレスは不連続である。
【００９４】
そして、上記の方法によってスタンプデータをローカルメモリへ格納した場合、各スタンプのメモリアドレスＡは下記の式（６）で表される。
Ａ＝（（Ｂ／２ｄ−ｃ）×Ｎ＋Ｓ）×２ｄ＋（Ｂ mod ２ｄ−ｃ）×２ｃ          （６）
なお、２ｄはスタンプの最大データ幅であり、２ｄ−ｃは、着目しているスタンプのデータ幅、modは剰余演算である。
【００９５】
すなわちラスタライザ５５は、投入された図形に基づいてスタンプを生成する。そして生成したスタンプを、各スタンプの座標に従って、式（３）により選択されるピクセル処理部に渡す。するとピクセル処理部は、処理結果を式（６）で求められるアドレスに格納する。そして式（６）で求められるアドレスは、スタンプのデータ幅に依存して変化する。
【００９６】
上記のように、本実施形態に係る描画装置であると、ローカルメモリに対して、スタンプデータ幅の最大値でインターリーブするアドレッシングを行っている。そして、スタンプデータ幅が最大値よりも小さい場合には、複数のスタンプをパックして最大データ幅に合わせて、ローカルメモリ内に格納し、複数のスタンプデータにつき連続したアドレスを割り当てている。その結果、アドレスはスタンプの座標だけでなく、そのデータ幅にも依存する。これは、ローカルメモリへのアドレスの割り当てを変えることなく、ローカルメモリへのスタンプの格納方法をデータ幅に合わせて変化させることを意味する。
【００９７】
この結果、上記第１、第３の実施形態で説明したように、ピクセル処理部の負荷を均等に分散させつつ、ピクセル処理部毎のローカルメモリに割り当てられるアドレス領域を固定したまま、複数のピクセルデータ幅に対応でき、描画処理の自由度が向上する。
【００９８】
なお、上記実施形態ではスタンプデータをローカルメモリに格納する場合について説明したが、テクセルについても全く同様に適用できることは言うまでもない。
【００９９】
次に、この発明の第７の実施形態に係る描画装置について説明する。本実施形態は、上記第６の実施形態において、テクスチャユニットにテクスチャキャッシュ（texture cache）を設け、複数のテクセルデータをテクスチャキャッシュに読み出すものである。図２７は、本実施形態に係る画像描画プロセッサシステムＬＳＩ１０の備えるグラフィックプロセッサ５０のブロック図である。
【０１００】
図示するように、本実施形態に係るグラフィックプロセッサ５０は、上記第２の実施形態で説明した構成において、テクスチャユニットＴＵがテクスチャキャッシュＴＣを更に有している。テクスチャキャッシュＴＣは、ローカルメモリＬＭ０〜ＬＭ３１から読み出したテクスチャスタンプデータを一時的に保持する。
【０１０１】
本実施形態におけるフレームバッファ上のスタンプの配置は、上記第４の実施形態で説明したとおりであり、例えば図１７に示すような配置である。またテクスチャスタンプの配置も、上記第５の実施形態で説明したとおりであり、例えば図２２に示すような配置である。更に、ローカルメモリにおいて、テクスチャスタンプデータを格納する領域についてのアドレッシングは、上記第６の実施形態で説明した通りである。図２８は、ローカルメモリのメモリ空間の概念図である。
【０１０２】
図示するように、ローカルメモリＬＭ０〜ＬＭ３１は、テクスチャスタンプデータの最大値である２ｄバイトでインターリーブされるようにアドレッシングされている。また、図２８の例であると、１つのテクスチャスタンプデータのデータ幅は２ｄ−２バイトである。従って、同一ローカルメモリに格納される４つのテクセルには、連続したアドレスが割り当てられている。
【０１０３】
上記構成において、テクスチャマッピングの際、信号処理部５６−０〜５６−３１の読み出し回路ＲＣは、ローカルメモリＬＭ０〜ＬＭ３１から読み出したテクスチャスタンプデータを、テクスチャキャッシュＴＣに格納する。図２９は、一例としてローカルメモリＬＭ０からテクスチャスタンプデータを読み出す様子を示している。
【０１０４】
図示するように、読み出し回路ＲＣは、テクスチャスタンプデータをアドレスが連続する一定サイズ単位で読み出す。例えば、テクスチャキャッシュＴＣに読み込まれるテクスチャスタンプデータ単位は２ｄバイトである。すると、テクスチャスタンプデータ幅が図２８に示すように２ｄ−２バイトであったとすると、４つのテクスチャスタンプがテクスチャキャッシュＴＣに読み込まれる。また、テクセルデータ幅が２ｄ−３バイトであれば、８つのテクスチャスタンプに対して連続したアドレスが割り当てられるから、この場合には１度に８つのテクスチャスタンプがテクスチャキャッシュに読み出される。
【０１０５】
上記構成によれば、上記第６の実施形態で説明した効果に加えて、テクスチャマッピングを効率的に行うことが出来、ピクセル処理部の負担を軽減できる。この点について、以下説明する。
【０１０６】
テクスチャマッピングは、エリアシングの軽減などの観点から、ミップマッピングなどの手法により、テクセルとスタンプのサイズが１：１に近くなるように行われることが多い。この際、フレームバッファとテクスチャとに対して同じアドレッシングを行うことによって、テクスチャキャッシュのヒット率を向上させることが出来る。フレームバッファとテクスチャとが同じようにアドレッシングされていれば、テクスチャスタンプのテクスチャ上における配置は、そのローカルメモリに直結するピクセル処理部に対応したスタンプの、フレームバッファ上での位置とほぼ一致する。
【０１０７】
例えばフレームバッファが図１７、テクスチャが図２２のように形成されているものとする。そして、ピクセル処理部ＰＰＵ０がその担当するスタンプ（Ｓ＝０）を処理し、その際にローカルメモリＬＭ２１に保持されるテクスチャスタンプ（Ｔ＝２１）を要求したと仮定する。本実施形態では、テクスチャスタンプは１度に複数個読み出されるから、ピクセル処理部ＰＰＵ０を備える信号処理部５６−０のテクスチャキャッシュＴＵには、ローカルメモリＬＭ２１に保持される複数のテクスチャスタンプ（Ｔ＝２１）が格納される。すなわち、当該ピクセルに対応するテクスチャブロック以外の複数のテクスチャブロックに含まれるテクスチャスタンプも同時に読み出される。そして、ピクセル処理部ＰＰＵ０が次に処理するスタンプは、最初に処理したスタンプの近傍である。
【０１０８】
すると、フレームバッファにおけるスタンプの配置と、テクスチャにおけるテクスチャスタンプの配置とはほぼ同一である。すなわち、フレームバッファにおいては、あるスタンプの周囲において、そのスタンプと同一ピクセル処理部に処理される６個の最近接スタンプが実質的に正六角形を形成する。またテクスチャにおいては、あるテクスチャスタンプの周囲において、そのテクスチャスタンプと同一ローカルメモリに格納される６個の最近接テクスチャスタンプが実質的に正六角形を形成する。両者の配置がほぼ同一であるので、テクスチャスタンプとスタンプのサイズが１：１に近いような場合には、ピクセル処理部ＰＰＵ０が次に要求するテクセルも、ローカルメモリＬＭ２１に格納されている確率が高い。そしてそのテクスチャスタンプデータは、直前の処理において、信号処理部５６−０のテクスチャユニットＴＣに読み出されている。すなわち、ピクセル処理部ＰＰＵ０が次に要求するテクスチャスタンプデータが、テクスチャキャッシュＴＣ内に保持されている（ヒットする）確率が高い。従ってその場合、ピクセル処理部ＰＰＵ０はローカルメモリＬＭ２１からテクスチャスタンプを読み出す必要が無い。そのため、高速なテクスチャマッピングが可能となる。
【０１０９】
なお、１度のテクスチャアクセス（テクスチャスタンプデータをローカルメモリからテクスチャキャッシュに読み出すこと）でどれだけの近傍テクスチャスタンプがテクスチャキャッシュに格納されるかは、テクスチャスタンプデータ幅、テクスチャキャッシュＴＣが１度に取り扱うデータ幅、及びテクスチャ上におけるブロックの配置に依存する。従って、必ずしも、特定のテクスチャスタンプの６近傍テクセル、すなわち、特定のテクスチャスタンプの周囲で六角形を形成するテクスチャスタンプが全て読み出されるとは限らない。また、テクスチャスタンプ及びスタンプの配置は、完全に等方的であるわけではない。従って、当該スタンプを処理するピクセル処理部の番号（０〜３１）と、当該スタンプに貼り付けるべきテクスチャスタンプを保持するローカルメモリの番号（０〜３１）とが一致しない場合、スタンプの配置とテクスチャスタンプの配置とは異なることがある。更に、テクスチャは図形の回転角度に応じて回転して貼り付けられるため、スタンプの配置とテクスチャスタンプの配置とが一致していても、当該スタンプと同じ位置のテクスチャスタンプが当該スタンプに貼り付けられるわけではなく、やはり配置がずれる。しかし、本実施形態によれば、スタンプとテクスチャスタンプの配置が共に可能な限り等方的であるので、これらの配置ずれによる影響は最小限に抑えられる。
【０１１０】
さらに図３０に示すように、テクスチャが回転してマッピングされることで、スタンプとテクセルの配置がより近いものになりうる。図３０において、フレームバッファにおける白い四角印は同一ピクセル処理部によって処理されるスタンプであり、テクスチャにおける黒い四角印はそのいずれかのスタンプを処理する際にテクスチャキャッシュに読み出されたテクスチャスタンプである。またフレームバッファにおける黒い四角印は、テクスチャキャッシュに読み出されたテクスチャスタンプが貼り付けられるスタンプの位置を示している。すなわちピクセル処理部の番号と、テクスチャスタンプを保持するローカルメモリの番号が異なることと回転角度の影響が重なっても、それぞれの効果を上回って配置がずれることはない。むしろ配置のずれは小さくなり得る。
【０１１１】
なお本実施形態において、スタンプデータ幅とテクスチャスタンプデータ幅との間には相関は無い。従って、ピクセルと異なるデータ幅のテクスチャを貼ることも可能である。そのため、上記のテクスチャキャッシュに関する記載は、フレームバッファのデータ幅に依存するものではない。
【０１１２】
次に、この発明の第８の実施形態に係る描画装置について説明する。本実施形態は、上記第７の実施形態において、ブロックをいくつかまとめた矩形の単位（以下、スーパーブロックと呼ぶ）で配置したものである。図３１は、本実施形態に係るフレームバッファの概念図である。
【０１１３】
図示するように、スーパーブロックＳＢＬＫは、（２×４）個のブロックを含んでいる。スーパーブロックＳＢＬＫに含まれる８つのブロックのＩＤは、スーパーブロックＳＢＬＫ内において左上から右下に向かって昇順で割り当てられている。このようなスーパーブロックＳＢＬＫが、フレームバッファ内において、水平方向に並んでいる。
【０１１４】
第４の実施形態で説明したとおり、スタンプの配置は、縦方向及び横方向において１６スタンプ周期で同じ並びが繰り返される。従って、各々のスーパーブロックにおけるスタンプの配置は互いに同じ配置となる。そして、ブロックＩＤとスタンプ座標（Ｘ、Ｙ）との関係は次の式（７）で表される。
Ｂ＝（Ｘ／ｐｗ＋（Ｙ／ｐｈ）×（ｆｗ／ｐｗ））×ｎｗ×ｎｈ＋（ｂＸ／ｗ＋（ｂＹ／ｈ）×ｎｗ）
但し、
ｂＸ＝Ｘ mod ｐｗ
ｂＹ＝Ｙ mod ｐｈ
ｎｗ＝ｐｗ／ｗ
ｎｈ＝ｐｈ／ｈ                          （７）
なる関係があり、ｐｗはスーパーブロックのＸ方向のスタンプ数、ｐｈはＹ方向のスタンプ数である。
【０１１５】
本実施形態に係る構成であると、上記第７の実施形態に比べて、よりキャッシュヒット率を向上できる。本実施形態では、同一ピクセル処理部が処理するスタンプによる六角形構造は、ＩＤの近いブロックによって作られる。すると、式（６）から明らかなように、それらのスタンプのアドレスも近くなる。よって、このようなアドレッシングをテクスチャスタンプに適用した際に、ある特定のテクセルが読み出される際に同時にテクスチャキャッシュＴＣに読み出されるテクスチャスタンプには、当該テクセルの周囲に六角形を形成するものが多く含まれる。その結果、キャッシュヒット率が向上する。
【０１１６】
なお、図形の境界に到達するまで走査線を変えずに水平方向に走査を続けるラスタライズ法ではなく、スーパーブロック単位で走査するラスタライズ法、すなわち、各スーパーブロックについて、その内部を順次走査する方法を用いることがより好ましい。この場合には、最初のテクセルを要求したスタンプに続いて処理されるスタンプには、直前に処理したスタンプの周囲に六角形を形成するスタンプが多く含まれる。よって、キャッシュヒット率がより向上する。
【０１１７】
なお、本実施形態ではピクセル処理部の数が３２個の場合を例に挙げて説明した。従って、１６スタンプ周期でスタンプの配置が繰り返されるため、スーパーブロックのサイズも（１６×１６）スタンプである。しかし、ピクセル処理部の数は３２個に限定されるものではなく、スーパーブロックのサイズはスタンプの繰り返し周期と一致すれば良い。また、スーパーブロックのサイズとスタンプの繰り返し周期も、必ずしも一致させる必要があるわけではない。しかし、スーパーブロック内には、少なくとも１つの、同一ピクセル処理部で処理されるスタンプによる六角形が含まれることが望ましい。
【０１１８】
次に、この発明の第９の実施形態に係る描画装置について説明する。本実施形態は、上記第４乃至第７の実施形態において、ブロック内におけるスタンプの配置を変えたものである。
【０１１９】
本実施形態に係るグラフィックプロセッサ５０の演算処理部５４は、図２、図８及び図２７を用いて説明した構成と同様であり、ピクセル処理部数は３２である。次に、フレームバッファの構成について図３２を用いて説明する。
【０１２０】
すなわち、図１７に示す（１６×１６）個のスタンプの配置を、横方向に２つ並べる。そして、そのうちの一方について、縦方向に隣接するスタンプの組、すなわちＸ座標が同じでＹ＝２ｉ及びＹ＝２ｉ＋１（ｉは自然数）となるスタンプ間で、処理するピクセル処理部を入れ替える。すると図示するように、第４の実施形態と同様に、あるスタンプの周囲において、そのスタンプと同一ピクセル処理部に処理される６つの最近接スタンプが、実質的な正六角形を形成する。そして、フレームバッファ内は、この実質的な正六角形によって覆われている。
【０１２１】
但し第４の実施形態と異なるところは、６つの最近接スタンプによって形成される六角形に含まれる三角形が、必ずしも全て同じではないということである。図１７で説明した正六角形は、図３３に示すように、隣接する２列のブロックに跨るようにして形成される。すなわち、フレームバッファ内は正六角形で覆われているが、２列のブロック毎に、その辺の長さが変わる。この正六角形に含まれる正三角形は、図１６で説明したとおりである。しかし、三辺が（６．３２、６．３２、５．６６）である三角形のみで形成される六角形の、横方向での隣接距離は、図３３に示すように、その他の長さとなる。例えば６．４０、６．０８、５．３９、５．００、６．７１である。すなわち、図３４に示すような３つの三角形が更に含まれる。すなわち、頂点座標が（０、５）、（２、０）、（６、４）であるもの、（０、６）、（２、０）、（６、５）であるもの、（０、６）、（２、０）、（６、３）であるものである。
【０１２２】
また、スタンプの配置は、横方向で３２スタンプ、縦方向で１６スタンプ周期で同じ並びが繰り返されることになる。その結果、ピクセル処理部の番号Ｓ［４：０］は、スタンプのＸ座標の下位５ビットＸ［４：０］とＹ座標の下位４ビットＹ［３：０］を用いて、下記の（８）式で表される。
Ｓ［０］＝ Ｘ［０］
Ｓ［１］＝ Ｙ［０］xor Ｘ［４］
Ｓ［２］＝（Ｘ［２］xor !Ｙ［１］and Ｙ［２］）or（Ｘ［１］and !Ｙ［２］）xor Ｘ［３］xor Ｙ［３］
Ｓ［３］＝（Ｘ［１］xor !Ｘ［２］and Ｙ［２］）or（Ｙ［１］and !Ｙ［２］）xor Ｘ［３］xor Ｙ［３］
Ｓ［４］＝ Ｘ［２］xor Ｙ［２］          （８）
本実施形態に係る構成によれば、上記第３乃至第８の実施形態で説明した効果が得られると共に、比較的サイズの大きい図形を描画する際の処理効率を向上できる。この点について以下説明する。本実施形態に係る構成であると、上記第３乃至第８の実施形態に比べて、スタンプの横方向の繰り返し周期が大きい（３２スタンプ周期）。従って、図形の境界に到達するまで走査線を変えずに水平方向に走査を続けるラスタライズ法を使用して、水平方向にサイズの大きい図形を描画する際に、ピクセル処理部にかかる負担を均等に分散できる。
【０１２３】
なお、スタンプの配置の縦と横を入れ替えれば、縦方向の繰り返し周期を大きくできる。従って、垂直方向に走査するラスタライズ法を用いて、垂直方向にサイズの大きい図形を描画する際に、負荷を均等に分散できる。
【０１２４】
次に、この発明の第１０の実施形態に係る描画装置について、図３５を用いて説明する。本実施形態は上記第４の実施形態の変形例とも言うべきもので、上記第４乃至第７の実施形態において、ブロック内におけるスタンプの配置を変えたものである。図３５は、本実施形態に係るフレームバッファの概念図である。
【０１２５】
本実施形態に係るグラフィックプロセッサ５０の演算処理部５４は、図２、図８及び図２７を用いて説明した構成において、ピクセル処理部数を１６としたものである。そして、１つのブロック内のスタンプは、（４×４）にマトリクス配置されている。
【０１２６】
各スタンプは、同一のピクセル処理部によって描画される近接スタンプと共に、ほぼ正三角形を形成するように配置されている。但し、上記第４の実施形態と異なる点は、第４の実施形態では１種類の三角形が含まれるのに対し、本実施形態では２種類の三角形が含まれ、この２種類の三角形によって六角形が形成される点にある。図３６は、同一ピクセル処理部によって描画されるスタンプの配置を概念的に示している。なお図３６において、Ａ〜Ｉ点は同一ピクセル処理部によって処理されるスタンプが配置される位置である。
【０１２７】
図示するように、（４×４）個のスタンプ群を想定した際、まず１つ目の三角形の頂点が、図３６におけるＡ点、Ｂ点、及びＣ点に配置される。スタンプ群における左上の角部の座標を（０、０）とすれば、Ａ点の座標は（０、４）、Ｂ点の座標は（１、０）、Ｃ点の座標は（４、３）である。次に２つ目の三角形の頂点が、図３６におけるＤ点、Ｅ点、及びＦ点に配置される。Ｄ点の座標は（０、４）、Ｅ点の座標は（１、０）、Ｆ点の座標は（４、５）である。スタンプの縦方向（Ｙ方向）及び横方向（Ｘ方向）の並びは、８スタンプ周期で同じ並びを繰り返す。従って、ピクセル処理部の番号Ｓ［３：０］は、スタンプのＸ座標の下位３ビットＸ［２：０］と、Ｙ座標の下位３ビットＹ［２：０］とを用いて、下記の（９）式で表される。
Ｓ［０］＝Ｘ［０］xor Ｙ［２］
Ｓ［１］＝Ｙ［０］xor Ｘ［２］
Ｓ［２］＝Ｘ［１］
Ｓ［３］＝Ｙ［１］                      （９）
本実施形態によれば、上記第４乃至第７の実施形態と同様の効果が得られる。本実施形態において、図３６を用いて説明したＡ、Ｂ、Ｃ点で形成される三角形の三辺の長さは、４．２４、４．１２、４．１２であり、Ｄ、Ｅ、Ｆ点で形成される三角形の三辺の長さは、５．８３、４．１２、４．１２である。従って、正確には正三角形ではないが、１個のブロックが（４×４）個のスタンプを含む場合において、同一ピクセル処理部で描画されるスタンプによって形成される三角形の三辺の長さを可能な限り均一にしようとすると、三辺の長さは上記のようになる。すなわち、１個のブロックが（４×４）個のスタンプを含むフレームバッファにおいて、実質的に正三角形をなしていると見ることが出来る。その結果、上記第１の実施形態と比べて、三辺の長さがより均等となり、１スタンプ周囲の６個のスタンプが略正六角形を形作る等方的な配置となる。そのため、同一ピクセル処理部によって描画されるスタンプが、フレームバッファ上において偏りが少なくなるよう分布する。その結果、ピクセル処理部の並列度が向上し、図形描画を高速化出来る。
【０１２８】
なお、本実施形態はピクセル処理部が１６個の場合を例に挙げて説明したが、ピクセル処理部数が１６ｊ２個であれば、ブロックサイズを（４ｊ×４ｊ）スタンプとして、上記第１０の実施形態と同様の配置が適用できる。
【０１２９】
次に、この発明の第１１の実施形態に係る描画装置について、図３７を用いて説明する。本実施形態は上記第４の実施形態の変形例とも言うべきもので、上記第４乃至第７の実施形態において、ブロック内におけるスタンプの配置を変えたものである。図３７は、本実施形態に係るフレームバッファの概念図である。
【０１３０】
本実施形態に係るグラフィックプロセッサ５０の演算処理部５４は、図２、図８及び図２７を用いて説明した構成において、ピクセル処理部数を３２としたものである。そして、１つのブロック内のスタンプは、（８×４）にマトリクス配置されている。
【０１３１】
各スタンプは、第４の実施形態と同様に、同一のピクセル処理部によって描画される近接スタンプと共に、ほぼ正三角形を形成するように配置されている。図３８は、同一ピクセル処理部によって描画されるスタンプの配置を概念的に示している。
【０１３２】
図示するように、（７×５）個のスタンプ群を想定した際、同一ピクセル処理部に描画される３個のスタンプが、図３８におけるＡ点、Ｂ点、及びＣ点に配置される。スタンプ群における左上の角部の座標を（０、０）とすれば、Ａ点の座標は（０、５）、Ｂ点の座標は（３、０）、Ｃ点の座標は（７、４）である。そして、スタンプの縦方向（Ｙ方向）及び横方向（Ｘ方向）の並びは、１６スタンプ周期で同じ並びを繰り返す。従って、ピクセル処理部の番号Ｓ［４：０］は、スタンプのＸ座標の下位４ビットＸ［３：０］と、Ｙ座標の下位４ビットＹ［３：０］とを用いて、下記の（１０）式で表される。
Ｓ［０］＝Ｘ［２］xor !Ｙ［０］and Ｙ［２］）or（Ｘ［０］and !Ｙ［２］）xor Ｘ［３］xor Ｙ［３］
Ｓ［１］＝Ｘ［０］xor !Ｘ［２］and Ｙ［２］）or（Ｙ［０］and !Ｙ［２］）xor Ｘ［３］xor Ｙ［３］
Ｓ［２］＝Ｘ［１］
Ｓ［３］＝Ｙ［１］
Ｓ［４］＝Ｘ［２］xor Ｙ［２］                    （１０）
本実施形態によれば、上記第４乃至第７の実施形態と同様の効果が得られる。本実施形態において、図３８を用いて説明したＡ、Ｂ、Ｃ点で形成される三角形の三辺の長さは、５．６６、５．８３、７．０７である。従って、正確には正三角形ではないが、第１の実施形態で説明した構成に比べれば、三角形の三辺の長さは均等に近づいている。そのため、同一ピクセル処理部によって描画されるスタンプが、フレームバッファ上において偏りが少なくなるよう分布する。その結果、ピクセル処理部の並列度が向上し、図形描画を高速化出来る。
【０１３３】
なお、本実施形態はピクセル処理部数が３２の場合を例に挙げて説明したが、頂点座標を整数倍しても同様の配置が可能である。すなわち、ピクセル処理部数が３２ｊ２個であれば、ブロックサイズを（８ｊ×４ｊ）スタンプ（または（４ｊ×８ｊ）スタンプ）として、上記第１１の実施形態と同様の配置が適用できる。
【０１３４】
次に、この発明の第１２の実施形態に係る描画装置について、図３９を用いて説明する。本実施形態は上記第４の実施形態の変形例とも言うべきもので、上記第４乃至第７の実施形態において、ブロック内におけるスタンプの配置を変えたものである。図３９は、本実施形態に係るフレームバッファの概念図である。
【０１３５】
本実施形態に係るグラフィックプロセッサ５０の演算処理部５４は、図２、図８及び図２７を用いて説明した構成において、ピクセル処理部数を３２としたものである。そして、１つのブロック内のスタンプは、（８×４）にマトリクス配置されている。
【０１３６】
各スタンプは、第４の実施形態と同様に、同一のピクセル処理部によって描画される近接スタンプと共に、三角形を形成するように配置されている。また、近傍の４つのスタンプは、正方形を形成する。図４０は、同一ピクセル処理部によって描画されるスタンプの配置を概念的に示している。
【０１３７】
図示するように、（８×４）個のスタンプ群を想定した際、同一ピクセル処理部に描画される３個のスタンプが、図３８におけるＡ点、Ｂ点、及びＣ点に配置される。スタンプ群における左上の角部の座標を（０、０）とすれば、Ａ点の座標は（０、０）、Ｂ点の座標は（４、４）、Ｃ点の座標は（８、０）である。そして、スタンプの縦方向（Ｙ方向）及び横方向（Ｘ方向）の並びは、８スタンプ周期で同じ並びを繰り返す。従って、ピクセル処理部の番号Ｓ［４：０］は、スタンプのＸ座標の下位４ビットＸ［２：０］、Ｙ座標の下位３ビットＹ［２：０］とを用いて、下記の（１１）式で表される。
Ｓ［０］＝Ｘ［０］
Ｓ［１］＝Ｙ［０］
Ｓ［２］＝Ｘ［１］
Ｓ［３］＝Ｙ［１］
Ｓ［４］＝Ｘ［２］xorＹ［２］                    （１１）
本実施形態によれば、上記第４乃至第７の実施形態と同様の効果が得られる。本実施形態において、図４０を用いて説明したＡ、Ｂ、Ｃ点で形成される三角形の三辺の長さは、８、５．６６、５．６６である。従って、正三角形ではないが、第１の実施形態で説明した構成に比べれば、三角形の三辺の長さは均等に近づいている。そのため、同一ピクセル処理部によって描画されるスタンプが、フレームバッファ上において偏りが少なくなるよう分布する。その結果、ピクセル処理部の並列度が向上し、図形描画を高速化出来る。
【０１３８】
また、スタンプの繰り返し周期は第４の実施形態に比べて短く、ピクセル処理部の番号Ｓ［４：０］の計算式も第４の実施形態の場合に比べて単純である。従って、この計算に必要な回路のコストを低減できる。
【０１３９】
なお、図４０に示すように、同一ピクセル処理部が処理されるスタンプによって形成される三角形の頂点座標は全て４の倍数である。従って、頂点座標の値を、Ｘ方向及びＹ方向ともに１／２、または１／４とすることで、ブロックサイズが（４×２）スタンプ、ピクセル処理部数が８個の場合、及び（２×１）スタンプ、ピクセル処理部数が２個の場合でも、同様のスタンプの配置が可能となる。このように、ピクセル処理部数が２ｊ２個（ｊは自然数）であれば、ブロックサイズを（２ｊ×ｊ）スタンプ（または（ｊ×２ｊ）スタンプ）として、上記第１２の実施形態と同様の配置が適用できる。
【０１４０】
次に、この発明の第１３の実施形態に係る描画装置について、図４１を用いて説明する。本実施形態は上記第４の実施形態の変形例とも言うべきもので、上記第４乃至第７の実施形態において、ブロック内におけるスタンプの配置を変えたものである。図４１は、本実施形態に係るフレームバッファの概念図である。
【０１４１】
本実施形態に係るグラフィックプロセッサ５０の演算処理部５４は、図２、図８及び図２７を用いて説明した構成において、ピクセル処理部数を１６としたものである。そして、１つのブロック内のスタンプは、（４×４）にマトリクス配置されている。
【０１４２】
各スタンプは、そのスタンプの周囲の同一のピクセル処理部によって描画される６個のスタンプがほぼ正六角形を形成するようにして配置されている。すなわち、同一ピクセル処理部で描画される互いに最近接な３個のスタンプは、正三角形に近い配置をとる。図４２は、同一ピクセル処理部によって描画されるスタンプの配置を概念的に示す。
【０１４３】
図示するように、（４×４）個のスタンプ群を想定した際、同一ピクセル処理部に描画される３個のスタンプが、図４０におけるＡ点、Ｂ点、及びＣ点に配置される。スタンプ群における左上の角部の座標を（０、０）とすれば、Ａ点の座標は（０、０）、Ｂ点の座標は（２、４）、Ｃ点の座標は（４、０）である。そして、スタンプの縦方向（Ｙ方向）及び横方向（Ｘ方向）の並びは、それぞれ４スタンプ、８スタンプ周期で同じ並びを繰り返す。従って、ピクセル処理部の番号Ｓ［３：０］は、スタンプのＸ座標の下位２ビットＸ［１：０］と、Ｙ座標の下位３ビットＹ［２：０］とを用いて、下記の（１２）式で表される。
Ｓ［０］＝Ｘ［０］
Ｓ［１］＝Ｙ［０］
Ｓ［２］＝Ｘ［１］xorＹ［２］
Ｓ［３］＝Ｙ［１］                      （１２）
本実施形態によれば、上記第４乃至第７の実施形態と同様の効果が得られる。本実施形態において、図４２を用いて説明したＡ、Ｂ、Ｃ点で形成される三角形の三辺の長さは、４、４．４７、４．４７である。従って、正確には正三角形ではないが、第１の実施形態で説明した構成に比べれば、三角形の三辺の長さは均等に近づいている。その結果、１スタンプ周囲の６個のスタンプが実質的な正六角形を形作る等方的な配置となる。そのため、同一ピクセル処理部によって描画されるスタンプが、フレームバッファ上において偏りが少なくなるよう分布する。その結果、ピクセル処理部の並列度が向上し、図形描画を高速化出来る。
【０１４４】
なお、図４２に示すように、同一ピクセル処理部が処理されるスタンプによって形成される三角形の頂点座標は全て偶数である。従って、頂点座標の値を、Ｘ方向及びＹ方向ともに１／２、またはとすることで、ブロックサイズが（２×２）スタンプ、ピクセル処理部数が４個の場合でも、同様のスタンプの配置が可能となる。このように、ピクセル処理部数が４ｊ２個であれば、ブロックサイズを（２ｊ×２ｊ）スタンプとして、上記第１３の実施形態と同様の配置が適用できる。
【０１４５】
次に、この発明の第１４の実施形態に係る描画装置について、図４３を用いて説明する。本実施形態は上記第９の実施形態の変形例とも言うべきもので、上記第４乃至第９の実施形態において、ブロック内におけるスタンプの配置を変えたものである。図４３は、本実施形態に係るフレームバッファの概念図である。
【０１４６】
本実施形態に係るグラフィックプロセッサ５０の演算処理部５４は、図２、図８及び図２７を用いて説明した構成において、ピクセル処理部数を１６としたものである。そして、１つのブロック内のスタンプは、（４×４）にマトリクス配置されている。そして、フレームバッファは次のようにして形成されている。
【０１４７】
すなわち、図３３で示した（８×８）個のスタンプの配置を、横方向に２つ並べる。そして、そのうちの一方について、縦方向に１スタンプおきの組、すなわちＸ座標が同じでＹ＝４ｉ及びＹ＝４ｉ＋２（ｉは自然数）となるスタンプ間と、Ｘ座標が同じでＹ＝４ｉ＋１及びＹ＝４ｉ＋３となるスタンプ間で、処理するピクセル処理部を入れ替える。すると、図示するように、隣接する２行のブロックに跨るようにして、図３６で説明したＡ、Ｂ、Ｃ点で形成される三角形、すなわち実質的な正三角形が形作られる。スタンプの配置は、横方向で１６スタンプ、縦方向で８スタンプ周期の繰り返しとなる。その結果、ピクセル処理部の番号Ｓ［３：０］は、スタンプのＸ座標の下位４ビットＸ［３：０］と、Ｙ座標の下位３ビットＹ［２：０］とを用いて、下記の（１３）式で表される。
Ｓ［０］＝Ｘ［０］xor Ｙ［２］
Ｓ［１］＝Ｙ［０］xor Ｘ［２］
Ｓ［２］＝Ｘ［１］
Ｓ［３］＝Ｙ［１］xor Ｘ［３］                    （１３）
本実施形態に係る構成によれば、上記第３乃至第７の実施形態で説明した効果が得られると共に、比較的サイズの大きい図形を描画する際の処理効率を向上できる。この点について以下説明する。本実施形態に係る構成であると、上記第３乃至第７の実施形態に比べて、スタンプの横方向の繰り返し周期が大きい（１６スタンプ周期）。従って、図形の境界に到達するまで走査線を変えずに水平方向に走査を続けるラスタライズ法を使用して、水平方向にサイズの大きい図形を描画する際に、ピクセル処理部にかかる負担を均等に分散できる。但し本実施形態であると、三角形の頂点の一つが（３、１）となり、長さ３．１６という、他より辺の短い三角形が含まれる。
【０１４８】
なお、スタンプの配置の縦と横を入れ替えれば、縦方向の繰り返し周期を大きくできる。従って、垂直方向に走査するラスタライズ法を用いて、垂直方向にサイズの大きいの図形を描画する際に、負荷を均等に分散できる。
【０１４９】
次に、この発明の第１５の実施形態に係る描画装置について、図４４を用いて説明する。本実施形態は上記第９の実施形態の変形例とも言うべきもので、上記第４乃至第９の実施形態において、ブロック内におけるスタンプの配置を変えたものである。図４４は、本実施形態に係るフレームバッファの概念図である。
【０１５０】
本実施形態に係るグラフィックプロセッサ５０の演算処理部５４は、図２、図８及び図２７を用いて説明した構成において、ピクセル処理部数を１６としたものである。そして、１つのブロック内のスタンプは、（４×４）にマトリクス配置されている。そして、フレームバッファは次のようにして形成されている。
【０１５１】
すなわち、図４３で示した構成において、横方向の周期を３２スタンプとする。すると、図示するように、図３６で説明したＡ、Ｂ、Ｃ点で形成される三角形、すなわち実質的な正三角形が形作られる。スタンプの配置は、横方向で３２スタンプ、縦方向で８スタンプ周期の繰り返しとなる。その結果、ピクセル処理部の番号Ｓ［３：０］は、スタンプのＸ座標の下位５ビットＸ［４：０］と、Ｙ座標の下位３ビットＹ［２：０］とを用いて、下記の（１４）式で表される。
Ｓ［０］＝（！Ｘ［０］xor Ｘ［２］xor Ｙ［０］xor Ｙ［１］and Ｘ［３］）or（Ｘ［０］and !Ｘ［３］）xor Ｘ［４］xor Ｙ［２］
Ｓ［１］＝Ｙ［０］xor Ｘ［２］
Ｓ［２］＝Ｘ［１］
Ｓ［３］＝Ｙ［１］xor Ｘ［３］            （１４）
本実施形態に係る構成によれば、上記第３乃至第７の実施形態で説明した効果が得られる。また第１４の実施形態と同様に、比較的サイズの大きい図形を描画する際の処理効率を向上できる。また、第９、第１４の実施形態のようにフレームバッファを覆う三角形のうちで、他より辺の短い三角形が含まれることがない。換言すれば、フレームバッファ内は第１０の実施形態で述べた、実質的な正三角形と言うことの出来る図３６で説明した２種類の三角形によって覆われている。本実施形態は、スタンプの繰り返し周期を長くすることによって、第１４の実施形態において存在したスタンプ間距離が小さくなる部分を解消したものである。
【０１５２】
勿論、スタンプの配置の縦と横を入れ替えれば、垂直方向にサイズの大きいの図形を描画する際に、負荷を均等に分散できる。
【０１５３】
上記のように、この発明の第１乃至第１５の実施形態によれば、フレームバッファを複数のブロックによって形成している。各々のブロックには、ピクセル処理部の数に等しい数のスタンプが設けられ、各ブロック内においては、それぞれのスタンプは異なるピクセル処理部で処理される。このようなスタンプ配置を採用することで、ピクセル処理部の負担を均等に分散出来る。更にこのようなスタンプ配置は、テクスチャにも適用出来る。テクスチャに適用した際には、ローカルメモリへのアクセスを均等に分散出来る。以上の結果、図形の描画速度を向上できる。また、ローカルメモリのアドレスは、各ローカルメモリ毎に連続した値が割り当てられるのではなく、異なるメモリ間で、同一のブロックに所属するスタンプ順に連続して割り当てられている。従って、ブロック数を増加させる場合のアドレスの割り当て方が簡便となり、描画装置の負担を軽減できる。
【０１５４】
そして、例えば第４、第５の実施形態では、ブロック及びテクスチャブロックは（８×４）個のスタンプ及びテクスチャスタンプを含んでいる。そして、各スタンプ（テクスチャスタンプ）は、同一ピクセル処理部で処理される（同一ローカルメモリに格納される）３つのスタンプ（テクセル）が、実質的に正三角形の頂点に位置するように配置されている。更に第４、第５の実施形態では、フレームバッファ内において、前記三角形が隙間無く配列されている。従って、あるスタンプ周囲の６個の近傍スタンプは、当該スタンプを中心とした、実質的な正六角形の頂点に位置する。従って、同一ピクセル処理部によって処理されるスタンプは、フレームバッファ内において偏り無く均一に分布する。すなわち、同一ピクセル処理部によって処理されるスタンプは、実質的に、互いに等距離且つ等方的に位置する。また、フレームバッファとテクスチャとを同じアドレッシング方法でローカルメモリに格納しているため、描画結果としてのフレームバッファを、そのままテクスチャとして以降の描画処理に使用することが出来る。
【０１５５】
また、スタンプ座標からピクセル処理部の番号を計算するには、座標データのビットを取り出して論理演算を行うのみで良い。従って、計算が簡単であり、そのための回路規模を縮小出来る。
【０１５６】
また第６の実施形態では更に、ローカルメモリに対して、スタンプデータの最大値でインターリーブするようなアドレッシングを行っている。そして、スタンプデータのデータ幅が最大値より小さい場合には、複数のスタンプデータをパックしてローカルメモリに格納している。従って、ローカルメモリに対するアドレスの割り当てを変えることなく、複数のデータ幅のスタンプに対応することが出来、描画処理の自由度が向上する。
【０１５７】
更に第７の実施形態では更に、テクスチャユニットにキャッシュメモリを設けている。そして、テクスチャマッピングの際に、１度に複数のテクセルをテクスチャキャッシュに読み出している。この際、フレームバッファとテクスチャとに対して、同じアドレッシングを行うことで、テクスチャキャッシュのヒット率を向上できる。
【０１５８】
更に、スタンプの配置方法は、第８乃至第１５の実施形態で説明した配置にすることも可能である。第８、第９、第１４、第１５の実施形態に係る配置方法であると、同一ピクセル処理部に対応するスタンプの、水平方向の繰り返し周期を大きくしている。従って、図形の境界に到達するまで走査線を変えずに水平に走査し続けるラスタライズ法を使用して大きい図形を描画する際の処理効率を向上できる。なお、第８乃至第１５の実施形態では、スタンプの配置の例を挙げて説明したが、テクスチャスタンプについても同様の配置を適用できることは言うまでもない。
【０１５９】
また、上記実施形態で説明したブロックは、縦と横とを入れ替えることも出来る。例えば、スタンプ及びテクセルが（８×４）個にマトリクス配置されているものについては、縦と横を入れ替えて、（４×８）個にマトリクス配置されている場合でも適用可能である。
【０１６０】
また、上記実施形態では１個のスタンプが（４×４）個のピクセルを含む場合について説明した。しかし、スタンプに含まれるピクセルの数は特に限定されるものではない。例えば１個のスタンプに含まれるピクセルの数は１個であっても勿論良い。その場合には、上記実施形態における「スタンプ」を「ピクセル」と読み替えれば、そのまま適用できる。このことは、テクセルについても同様であり、「テクスチャスタンプ」を「テクセル」と読み替えても良い。但し、テクスチャスタンプ内に含まれるテクセル数は、スタンプ内に含まれるピクセル数と同じにすることが望ましい。
【０１６１】
なお、上記第１乃至第１５の実施形態に係る画像処理装置は、例えばゲーム機、ホームサーバー、テレビ、または携帯情報端末などに搭載することが出来る。図４５は上記第１乃至第１５の実施形態に係る画像処理装置を備えたデジタルテレビの備えるデジタルボードのブロック図である。デジタルボードは、画像・音声などの通信情報を制御するためのものである。図示するように、デジタルボード１００は、フロントエンド部１１０、画像描画プロセッサシステム１２０、デジタル入力部１３０、Ａ／Ｄコンバータ１４０、１８０、ゴーストリダクション部１５０、三次元ＹＣ分離部１６０、カラーデコーダ１７０、ＬＡＮ処理ＬＳＩ１９０、ＬＡＮ端子２００、ブリッジメディアコントローラ２１０、カードスロット２２０、フラッシュメモリ２３０、及び大容量メモリ（例えばＤＲＡＭ：Dynamic Random Access Memory）２４０を備えている。フロントエンド部１１０は、デジタルチューナーモジュール１１１、１１２、ＯＦＤＭ（Orthogonal Frequency Division Multiplex）復調部１１３、ＱＰＳＫ（Quadrature Phase Shift Keying）復調部１１４を備えている。
【０１６２】
画像描画プロセッサシステム１２０は、送受信回路１２１、ＭＰＥＧ２デコーダ１２２、グラフィックエンジン１２３、デジタルフォーマットコンバータ１２４、及びプロセッサ１２５を備えている。そして、例えばグラフィックエンジン１２３及びプロセッサ１２５が、上記第１乃至第１５の実施形態で説明したグラフィックプロセッサ５０及びホストプロセッサ２０に対応する。
【０１６３】
上記構成において、地上デジタル放送波、ＢＳデジタル放送波、及び１１０°ＣＳデジタル放送波は、フロントエンド部１１０で復調される。また地上アナログ放送波及びＤＶＤ／ＶＴＲ信号は、３次元ＹＣ分離部１６０及びカラーデコーダ１７０でデコードされる。これらの信号は、画像描画プロセッサシステム１２０に入力され、送受信回路１２１で、映像・音声・データに分離される。そして、映像に関しては、ＭＰＥＧ２デコーダ１２２を介してグラフィックエンジン１２３に映像情報が入力される。するとグラフィックエンジン１２３は、上記実施形態で説明したようにして図形を描画する。
【０１６４】
図４６は、上記第１乃至第１５の実施形態に係る画像処理装置を備えた録画再生機器のブロック図である。図示するように、録画再生機器２００はヘッドアンプ２１０、モータードライバ２２０、メモリ２３０、画像情報制御回路２４０、ユーザＩ／Ｆ用ＣＰＵ２５０、フラッシュメモリ２６０、ディスプレイ２７０、ビデオ出力部２８０、及びオーディオ出力部２９０を備えている。
【０１６５】
画像情報制御回路２４０は、メモリインターフェース２４１、デジタル信号プロセッサ２４２、プロセッサ２４３、映像処理用プロセッサ２４４、及びオーディオ処理用プロセッサ２４５を備えている。そして、例えば映像処理用プロセッサ２４４及びデジタル信号プロセッサ２４２が、上記第１乃至第１５の実施形態で説明したグラフィックプロセッサ５０及びホストプロセッサ２０に対応する。
【０１６６】
上記構成において、ヘッドアンプ２１０で読み出された映像データが画像情報制御回路２４０に入力される。そして、デジタル信号処理プロセッサ２４２から映像情報用プロセッサに図形情報が入力される。すると映像情報用プロセッサ２４５は、上記実施形態で説明したようにして図形を描画する。
【０１６７】
なお、上記第１乃至第１４の実施形態で説明した描画装置は、コンピュータを用いてソフトウェアにて実施することも可能である。図４７は、そのような場合について示しており、コンピュータのブロック図である。
【０１６８】
図示するように、画像の描画処理に用いられるコンピュータ３００は、ＣＰＵ３１０、メモリ３２０、データ入出力部３３０、ドライバ回路３４０、及びディスプレイ３５０を備えている。
【０１６９】
メモリ３２０は、画像描画プログラム、スタンプ（ピクセル）データ、及びテクスチャ（テクセル）データを保持する。データ入出力部３３０は、コンピュータ３００と外部とのデータの授受を司る。ドライバ回路３４０は、ＣＰＵ３１０における処理結果に基づいて、ディスプレイ３５０に画像を表示する。ＣＰＵ３１０は、上記第１乃至第１４の実施形態で説明したラスタライザ５５及びピクセル処理部ＰＰＵ０〜ＰＰＵ３１と同一の機能を果たすことが出来る。すなわちＣＰＵ３１０は、図形描画プログラムに従って、入力された図形情報に応じたスタンプ（ピクセル）を生成するピクセル生成手段と、各々が、ピクセル生成手段によって生成されたスタンプ（ピクセル）のうち、描画領域内において実質的に等距離且つ等方的に位置する複数のスタンプ（ピクセル）について描画処理を行う複数の描画手段として機能し、更に、テクスチャスタンプ（テクセル）データを保持手段から読み出す読み出し手段と、読み出し手段によって読み出したテクスチャスタンプ（テクセル）をスタンプ（ピクセル）に貼り付ける貼付手段として機能出来る。
【０１７０】
ＣＰＵ３１０は、外部から図形情報を得ると、メモリ３２０から図形描画プログラムを読み出す。図形描画プログラムは、例えば第１の実施形態で説明した図５、または第４の実施形態で説明した図１０に示すフローチャートに示す処理を行わせるものである。また図形描画プログラムには、スタンプと描画手段との関係、及びテクスチャスタンプと該テクスチャスタンプを格納するメモリ領域との関係が規定してある。そしてそれらの関係は、上記第１乃至第１４の実施形態で説明したように、スタンプ（またはテクスチャスタンプ）が、実質的に等距離及び等方的に位置するような関係である。
【０１７１】
ＣＰＵ３１０は、まず、図形情報と図形描画プログラムに従って、図形情報に対応したスタンプを生成する。そして、複数のスタンプに対して並列的に描画処理を行う。ＣＰＵ３２０において、各ピクセルを処理する領域は、上記第１乃至第１４の実施形態で説明した通り、各スタンプの位置に対応付けられている。この際ＣＰＵ３１０は、図形描画プログラムに従って、必要があればメモリ３２０からテクスチャデータを読み出して、対応するピクセルに貼り付ける。以上のようにして描画処理が終了すると、ＣＰＵ３２０はピクセルデータをメモリ３２０に格納する。
【０１７２】
以上のように、上記第１乃至第１４の実施形態は、図形描画プログラムを用いてコンピュータによって実現することが出来る。また本図形描画プログラムは、記憶媒体に記録させることによって自由に携帯可能であり、様々なハードウェアにおいて本実施形態に係る図形描画方法が可能となる。
【０１７３】
なお、本願発明は上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出されうる。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出されうる。
【産業上の利用可能性】
【０１７４】
本発明によれば、回路規模を大型化することなく画像処理効率を向上出来る描画装置、描画方法、及び描画プログラムが得られる。
【図面の簡単な説明】
【０１７５】
【図１】図１は、この発明の第１の実施形態に係る画像処理装置のブロック図である。
【図２】図２は、この発明の第１の実施形態に係る画像処理装置の備えるグラフィックプロセッサのブロック図である。
【図３】図３は、この発明の第１の実施形態に係る画像処理装置におけるフレームバッファの一領域の概念図である。
【図４】図４は、この発明の第１の実施形態に係る画像処理装置におけるフレームバッファの概念図である。
【図５】図５は、この発明の第１の実施形態に係る画像処理装置による画像描画方法のフローチャートである。
【図６】図６は、この発明の第１の実施形態に係る画像処理装置におけるフレームバッファの概念図である。
【図７】図７は、この発明の第１の実施形態に係る画像処理装置におけるフレームバッファの概念図である。
【図８】図８は、この発明の第２の実施形態に係る画像処理装置の備えるグラフィックプロセッサのブロック図である。
【図９】図９は、この発明の第２の実施形態に係る画像処理装置におけるテクスチャデータの概念図である。
【図１０】図１０は、この発明の第２の実施形態に係る画像処理装置による画像描画方法のフローチャートである。
【図１１】図１１は、この発明の第２の実施形態に係る画像処理装置におけるテクスチャデータの概念図である。
【図１２】図１２は、この発明の第２の実施形態に係る画像処理装置におけるテクスチャデータの概念図である。
【図１３】図１３は、この発明の第３の実施形態に係るグラフィックプロセッサの一部領域のブロック図である。
【図１４】図１４は、この発明の第３の実施形態に係る画像処理装置におけるフレームバッファの概念図である。
【図１５】図１５は、この発明の第３の実施形態に係る画像処理装置におけるローカルメモリのメモリ空間の概念図である。
【図１６】図１６は、この発明の第３の実施形態に係る画像処理装置におけるローカルメモリのメモリ空間の概念図である。
【図１７】図１７は、この発明の第４の実施形態に係る画像処理装置におけるフレームバッファの概念図である。
【図１８】図１８は、この発明の第４の実施形態に係る画像処理装置におけるスタンプ配置の方法を示す概念図である。
【図１９】図１９は、この発明の第４の実施形態に係る画像処理装置におけるフレームバッファの概念図である。
【図２０】図２０は、この発明の第４の実施形態の第１変形例に係る画像処理装置におけるスタンプ配置の方法を示す概念図である。
【図２１】図２１は、この発明の第４の実施形態の第２変形例に係る画像処理装置におけるスタンプ配置の方法を示す概念図である。
【図２２】図２２は、この発明の第５の実施形態に係る画像処理装置におけるテクスチャデータの概念図である。
【図２３】図２３は、この発明の第６の実施形態に係る画像処理装置において、複数のデータ幅でスタンプデータを保持するローカルメモリのメモリ空間の概念図である。
【図２４】図２４は、この発明の第６の実施形態に係る画像処理装置におけるローカルメモリのメモリ空間の概念図である。
【図２５】図２５は、この発明の第６の実施形態に係る画像処理装置におけるローカルメモリのメモリ空間の概念図である。
【図２６】図２６は、この発明の第６の実施形態に係る画像処理装置におけるローカルメモリのメモリ空間の概念図である。
【図２７】図２７は、この発明の第７の実施形態に係る画像処理装置の備えるグラフィックプロセッサのブロック図である。
【図２８】図２８は、この発明の第７の実施形態に係る画像処理装置におけるローカルメモリのメモリ空間の概念図であり、テクスチャデータを格納する様子を示す図である。
【図２９】図２９は、この発明の第７の実施形態に係る画像処理装置におけるローカルメモリ及びテクスチャキャッシュのメモリ空間の概念図であり、ローカルメモリからテクスチャキャッシュにテクセルデータを読み出す様子を示す図である。
【図３０】図３０は、この発明の第７の実施形態に係る画像処理装置におけるフレームバッファとテクスチャデータの概念図である。
【図３１】図３１は、この発明の第８の実施形態に係る画像処理装置におけるフレームバッファの概念図である。
【図３２】図３２は、この発明の第９の実施形態に係る画像処理装置におけるフレームバッファの概念図である。
【図３３】図３３は、この発明の第９の実施形態に係る画像処理装置におけるフレームバッファの概念図である。
【図３４】図３４は、この発明の第９の実施形態に係る画像処理装置におけるスタンプ配置の方法を示す概念図である。
【図３５】図３５は、この発明の第１０の実施形態に係る画像処理装置におけるフレームバッファのメモリ空間の概念図である。
【図３６】図３６は、この発明の第１０の実施形態に係る画像処理装置におけるスタンプ配置の方法を示す概念図である。
【図３７】図３７は、この発明の第１１の実施形態に係る画像処理装置におけるフレームバッファの概念図である。
【図３８】図３８は、この発明の第１１の実施形態に係る画像処理装置におけるスタンプ配置の方法を示す概念図である。
【図３９】図３９は、この発明の第１２の実施形態に係る画像処理装置におけるフレームバッファの概念図である。
【図４０】図４０は、この発明の第１２の実施形態に係る画像処理装置におけるスタンプ配置の方法を示す概念図である。
【図４１】図４１は、この発明の第１３の実施形態に係る画像処理装置におけるフレームバッファの概念図である。
【図４２】図４２は、この発明の第１３の実施形態に係る画像処理装置におけるスタンプ配置の方法を示す概念図である。
【図４３】図４３は、この発明の第１４の実施形態に係る画像処理装置におけるフレームバッファの概念図である。
【図４４】図４４は、この発明の第１５の実施形態に係る画像処理装置におけるフレームバッファの概念図である。
【図４５】図４５は、この発明の第１乃至第１５の実施形態に係る画像処理装置を備えたデジタルテレビのブロック図である。
【図４６】図４６は、この発明の第１乃至第１５の実施形態に係る画像処理装置を備えた録画再生機器のブロック図である。
【図４７】図４７は、この発明の第１乃至第１５の実施形態に係る画像描画方法を実現するコンピュータのブロック図である。
【図１】
0004521399.tif 000002
【図２】
0004521399.tif 000003
【図３】
0004521399.tif 000004
【図４】
0004521399.tif 000005
【図５】
0004521399.tif 000006
【図１０】
0004521399.tif 000007
【図６】
0004521399.tif 000008
【図７】
0004521399.tif 000009
【図８】
0004521399.tif 000010
【図９】
0004521399.tif 000011
【図１１】
0004521399.tif 000012
【図１２】
0004521399.tif 000013
【図１３】
0004521399.tif 000014
【図１４】
0004521399.tif 000015
【図１５】
0004521399.tif 000016
【図１６】
0004521399.tif 000017
【図１７】
0004521399.tif 000018
【図１８】
0004521399.tif 000019
【図２０】
0004521399.tif 000020
【図２１】
0004521399.tif 000021
【図１９】
0004521399.tif 000022
【図２２】
0004521399.tif 000023
【図２３】
0004521399.tif 000024
【図２４】
0004521399.tif 000025
【図２５】
0004521399.tif 000026
【図２６】
0004521399.tif 000027
【図２７】
0004521399.tif 000028
【図２８】
0004521399.tif 000029
【図２９】
0004521399.tif 000030
【図３０】
0004521399.tif 000031
【図３１】
0004521399.tif 000032
【図３２】
0004521399.tif 000033
【図３３】
0004521399.tif 000034
【図３４】
0004521399.tif 000035
【図３５】
0004521399.tif 000036
【図３６】
0004521399.tif 000037
【図３７】
0004521399.tif 000038
【図３８】
0004521399.tif 000039
【図３９】
0004521399.tif 000040
【図４０】
0004521399.tif 000041
【図４１】
0004521399.tif 000042
【図４２】
0004521399.tif 000043
【図４３】
0004521399.tif 000044
【図４４】
0004521399.tif 000045
【図４５】
0004521399.tif 000046
【図４６】
0004521399.tif 000047
【図４７】
0004521399.tif 000048