(57)【要約】【課題】面積、電力の増大を抑止し、メモリアクセス機構の簡単化を図れ、設計負荷を軽減でき、メモリシステムに非依存の画像処理装置およびその方法を提供する。【解決手段】ラスタライゼーションエンジン３２において、メモリインタフェース２２を通してメモリへのアクセスを行うが、テクスチャおよびピクセルレベルの処置を行うテクスチャ・ピクセルエンジンとメモリインタフェースとの間にキャッシュシステム３２４を設けて、画像メモリアーキテクチャに依存して実アドレス生成を行う機能を、画像メモリアーキテクチャに非依存のコマンドの形式とデータで受け渡す形態で切りわけることにより、画像処理におけるメモリアクセスを画像処理メモリアーキテクチャに依存しないキャッシュに分離する。【選択図】      図２
2005078357.tif 000002
【特許請求の範囲】
【請求項１】
メモリに対するレンダリング処理を行う画像処理装置であって、
描画すべきプリミティブに関する情報に基づいてピクセルデータを発生し、上記メモリに対するアクセスに関する情報として２次元座標を出力するピクセルエンジンと、
上記ピクセルエンジンによるに２次元座標を受けて、ピクセルデータに対して当該２次元座標に相応する２次元構造をとり、上記メモリをアクセスするために２次元座標情報に相応したコマンドとデータに標準化したキャッシュコマンドを出力するキャッシュと
を有する画像処理装置。
【請求項２】
上記キャッシュコマンドには、上記メモリの実アドレスに必要な汎用情報を含む
請求項１記載の画像処理装置。
【請求項３】
上記キャッシュによるキャッシュコマンドを受けて上記メモリの実アドレスを生成するメモリインタフェースを、有する
請求項１記載の画像処理装置。
【請求項４】
上記キャッシュによるキャッシュコマンドを受けてメモリアーキテクチャに依存した上記メモリの実アドレスを生成するメモリインタフェースを、有する
請求項１記載の画像処理装置。
【請求項５】
上記キャッシュによるキャッシュコマンドを受けて上記メモリの実アドレスを生成するメモリインタフェースを、有する
請求項２記載の画像処理装置。
【請求項６】
上記キャッシュによるキャッシュコマンドを受けてメモリアーキテクチャに依存した上記メモリの実アドレスを生成するメモリインタフェースを、有する
請求項３記載の画像処理装置。
【請求項７】
メモリに対するレンダリング処理を行う画像処理装置であって、
外部装置とのインタフェースを司る外部インタフェースと、
上記メモリとのインタフェースを司るメモリインタフェースと、
上記外部インタフェースを介して入力した描画すべきプリミティブに関する情報に基づいてピクセルデータを発生し、上記メモリに対するアクセスに関する情報として２次元座標を出力するピクセルエンジンと、
上記ピクセルエンジンによるに２次元座標を受けて、ピクセルデータに対して当該２次元座標に相応する２次元構造をとり、上記メモリをアクセスするために２次元座標情報に相応したコマンドとデータに標準化したキャッシュコマンドを出力するキャッシュと、を有し、
上記メモリインタフェースは、上記キャッシュによるキャッシュコマンドを受けて上記メモリの実アドレスを生成する
画像処理装置。
【請求項８】
上記外部インタフェースと、上記メモリとのインタフェースを司るメモリインタフェースとは、システム依存ブロックを構成し、
上記ピクセルエンジンと上記キャッシュは、システムに非依存のコアブロックを構成する
請求項７記載の画像処理装置。
【請求項９】
上記キャッシュコマンドには、上記メモリの実アドレスに必要な汎用情報を含む
請求項７記載の画像処理装置。
【請求項１０】
上記キャッシュによるキャッシュコマンドを受けてメモリアーキテクチャに依存した上記メモリの実アドレスを生成するメモリインタフェースを、有する
請求項９記載の画像処理装置。
【請求項１１】
メモリに対するレンダリング処理を行う画像処理方法であって、
描画すべきプリミティブに関する情報に基づいてピクセルデータを発生する第１のステップと、
上記メモリに対するアクセスに関する情報として２次元座標を生成してキャッシュに与える第２のステップと、
上記キャッシュにおいて、上記メモリをアクセスするために２次元座標情報に相応したコマンドとデータに標準化したキャッシュコマンドを出力する第３のステップと
を有する画像処理方法。
【請求項１２】
上記キャッシュコマンドを受けてメモリアーキテクチャに依存した上記メモリの実アドレスを生成する第４のステップを、有する
請求項１１記載の画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モデルを単位図形の組み合わせによって表現し、スクリーン座標系の描画対象領域内にピクセルを発生し、メモリに対してレンダリング処理を行う画像処理装置およびその方法に関するものである。
【背景技術】
【０００２】
昨今のコンピュータシステムにおける演算速度の向上や描画機能の強化とも相俟って、コンピュータ資源を用いて図形や画像の作成や処理を行う「コンピュータ・グラフィックス（ＣＧ）」技術が盛んに研究・開発され、さらに実用化されている。
【０００３】
たとえば、３次元グラフィックスは、３次元オブジェクトが所定の光源によって照らされたときの光学現象を数学モデルで表現して、このモデルに基づいてオブジェクト表面に陰影や濃淡を付けたり、さらには模様を貼り付けたりして、よりリアルで３次元的な２次元高精細画像を生成するものである。
このようなコンピュータ・グラフィックスは、科学、工学、製造などの開発分野でのＣＡＤ／ＣＡＭ、その他の各種応用分野においてますます盛んに利用されるようになってきている。
そして、近年、コンピュータ・グラフィックス技術は、携帯電話、携帯情報端末（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ：ＰＤＡ）、カーナビゲーション子システム等に利用されている。
【０００４】
３次元グラフィックスは、一般には、フロントエンドとして位置づけられる「ジオメトリ・サブシステム」と、バックエンドとして位置づけられる「ラスタ・サブシステム」とにより構成される。
【０００５】
ジオメトリ・サブシステムとは、ディスプレイ・スクリーン上に表示する３次元オブジェクトの位置や姿勢などの幾何学的な演算処理を行う過程のことである。
ジオメトリ・サブシステムでは、一般にオブジェクトは多数のポリゴンの集合体として扱われ、ポリゴン単位で、「座標変換」、「クリッピング」、「光源計算」などの幾何学的な演算処理が行われる。
【０００６】
一方、ラスタ・サブシステムは、オブジェクトを構成する各ピクセル（ｐｉｘｅｌ）を塗りつぶす過程のことである。
ラスタライズ処理は、たとえばポリゴンの頂点毎に求められた画像パラメータを基にして、ポリゴン内部に含まれるすべてのピクセルの画像パラメータを補間することによって実現される。
ここで言う画像パラメータには、いわゆるＲＧＢ形式などで表される色（描画色）データ、奥行き方向の距離を表すｚ値などがある。
また、最近の高精細な３次元グラフィックス処理では、遠近感を醸し出すためのｆ（ｆｏｇ：霧）や、物体表面の素材感や模様を表現してリアリティを与えるテクスチャｔ（ｔｅｘｔｕｒｅ）なども、画像パラメータの１つとして含まれている。
【０００７】
ここで、ポリゴンの頂点情報からポリゴン内部のピクセルを発生する処理では、よくＤＤＡ（Ｄｉｇｉｔａｌ  Ｄｉｆｆｅｒｅｎｔｉａｌ  Ａｎａｌｙｚｅｒ）と呼ばれる線形補間手法を用いて実行される。
ＤＤＡプロセスでは、頂点情報からポリゴンの辺方向へのデータの傾きを求め、この傾きを用いて辺上のデータを算出した後、続いてラスタ走査方向（Ｘ方向）の傾きを算出し、この傾きから求めたパラメータの変化分を走査の開始点のパラメータ値に加えていくことで、内部のピクセルを発生していく。
【０００８】
そして、３次元コンピュータグラフィックスでは、各ピクセルに対応する色を決定するときに、各ピクセルの色の計算をし、この計算した色の値を、当該ピクセルに対応するディスプレイバッファ（フレームバッファ）のアドレスに書き込むレンダリング（Ｒｅｎｄｅｒｉｎｇ）処理を行う。
このようなレンダリング処理を行うために、ピクセルエンジン（描画エンジン）が設けられる。
【０００９】
３次元コンピュータグラフィックスにおける描画速度は、描画エンジンからフレームバッファへの書き込み速度に影響され、フレームバッファのアクセス速度が遅いと描画速度が低下することになる。
この課題を解消するために高価な高速メモリを大容量のフレームバッファに用いることはシステムの高価格化につながることから、安価な汎用メモリを用いることを前提として、キャッシュ機構をとる画像処理装置が提案されている（たとえば、特許文献１参照）。
【００１０】
この特許文献１に記載された画像処理装置は、描画エンジンにより生成された画像データを一時的に先読み可能なＦＩＦＯメモリ等に一時蓄え、この先読み可能なＦＩＦＯメモリ等とフレームバッファとの間にキャッシュメモリを設け、先読み可能なＦＩＦＯメモリ等の内容をキャッシュメモリに先読みして、キャッシュメモリの読み書き制御を行う。
【特許文献１】特開平９−２１２６６１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、従来の３次元コンピュータグラフィックスにおいては、その機能を実現するために、専用のメモリシステムもしくはメモリシステムに依存（密着）したアーキテクチャ構成をとっていた。
汎用メモリ対応面でも、上記した特許文献１に記載されているように、汎用ＤＲＡＭを前提としたキャッシュ機構がとられる状況であった。
【００１２】
一方、ＳＯＣのように、高集積化と多機能化に対応するため、ＩＰに代表される高機能モジュールが３次元コンピュータグラフィックス（３ＤＣＧ）機能にも要求される。このとき、従来手法の場合はメモリシステムが異なる場合、専用メモリを持ってＩＰとするか、もしくは異なるシステムメモリにあわせた再設計が必要となる。
専用メモリを付加させることは面積、電力の増大、メモリアクセス機構の複雑化を招く。再設計を行うことは、３次元コンピュータグラフィックス機能実現構造まで含めた設計負荷をもたらす。
このように、従来の３次元コンピュータグラフィックスに対応した画像処理アーキテクチャは、メモリアーキテクチャに依存して、メモリアーキテクチャから分離して構成することができず、ＩＰに代表される高機能モジュール等のシステムに容易に適用することが困難であるという不利益があった。
【００１３】
本発明は、かかる事情に鑑みてなされたものであり、その目的は、面積、電力の増大を抑止し、メモリアクセス機構の簡単化を図れ、設計負荷を軽減でき、メモリシステムに依存することなく、各種システムに容易に適応することが可能な画像処理装置およびその方法を提供することにある。
【課題を解決するための手段】
【００１４】
上記目的を達成するため、本発明の第１の観点は、メモリに対するレンダリング処理を行う画像処理装置であって、描画すべきプリミティブに関する情報に基づいてピクセルデータを発生し、上記メモリに対するアクセスに関する情報として２次元座標を出力するピクセルエンジンと、上記ピクセルエンジンによるに２次元座標を受けて、ピクセルデータに対して当該２次元座標に相応する２次元構造をとり、上記メモリをアクセスするために２次元座標情報に相応したコマンドとデータに標準化したキャッシュコマンドを出力するキャッシュとを有する。
【００１５】
好適には、上記キャッシュコマンドには、上記メモリの実アドレスに必要な汎用情報を含む。
【００１６】
好適には、上記キャッシュによるキャッシュコマンドを受けて上記メモリの実アドレスを生成するメモリインタフェースを、有する。
【００１７】
好適には、上記キャッシュによるキャッシュコマンドを受けてメモリアーキテクチャに依存した上記メモリの実アドレスを生成するメモリインタフェースを、有する。
【００１８】
本発明の第２の観点は、メモリに対するレンダリング処理を行う画像処理装置であって、外部装置とのインタフェースを司る外部インタフェースと、上記メモリとのインタフェースを司るメモリインタフェースと、上記外部インタフェースを介して入力した描画すべきプリミティブに関する情報に基づいてピクセルデータを発生し、上記メモリに対するアクセスに関する情報として２次元座標を出力するピクセルエンジンと、上記ピクセルエンジンによるに２次元座標を受けて、ピクセルデータに対して当該２次元座標に相応する２次元構造をとり、上記メモリをアクセスするために２次元座標情報に相応したコマンドとデータに標準化したキャッシュコマンドを出力するキャッシュと、を有し、上記メモリインタフェースは、上記キャッシュによるキャッシュコマンドを受けて上記メモリの実アドレスを生成する。
【００１９】
本発明の第３の観点は、メモリに対するレンダリング処理を行う画像処理方法であって、描画すべきプリミティブに関する情報に基づいてピクセルデータを発生する第１のステップと、上記メモリに対するアクセスに関する情報として２次元座標を生成してキャッシュに与える第２のステップと、上記キャッシュにおいて、上記メモリをアクセスするために２次元座標情報に相応したコマンドとデータに標準化したキャッシュコマンドを出力する第３のステップとを有する。
【００２０】
本発明によれば、ピクセルエンジンにおいて、たとえば各種データ（ｚ，カラーなど）の描画すべきプリミティブに関する情報に基づいてピクセルデータが発生される。
ピクセルエンジンでは、メモリに対するアクセスに関する情報として２次元座標がキャッシュに対して出力される。
キャッシュでは、ピクセルエンジンによるに２次元座標を受けて、ピクセルデータに対して当該２次元座標に相応する２次元構造をとり、メモリをアクセスするために２次元座標情報に相応したコマンドとデータに標準化したキャッシュコマンドが出力される。
そして、メモリインタフェースにおいて、キャッシュによるキャッシュコマンドを受けてメモリアーキテクチャに依存したメモリの実アドレスが生成される。
【発明の効果】
【００２１】
本発明によれば、面積、電力の増大を抑止でき、メモリアクセス機構の簡単化を図れ、設計負荷を軽減できる利点がある。
その結果、従来はメモリアーキテクチャに依存して構成されていた画像処理、すなわち３次元コンピュータグラフィックスアーキテクチャをメモリから分離し、汎用ＳＯＣなどに使用するＩＰにした場合、メモリシステムに依存する機能ブロック仕様が標準化されているため、容易にシステムに順応した構成をとることが可能となる。
【発明を実施するための最良の形態】
【００２２】
以下、本実施形態について添付図面に関連付けて説明する。
本実施形態においては、画像メモリアーキテクチャに依存して実アドレス生成を行う機能を、画像メモリアーキテクチャに非依存のコマンドの形式とデータで受け渡す形態で切りわけることにより、画像処理におけるメモリアクセスを画像処理メモリアーキテクチャに依存しないキャッシュに分離している。
これにより、従来はメモリアーキテクチャに依存して構成されていた画像処理、すなわち３次元コンピュータグラフィックスアーキテクチャをメモリから分離し、汎用ＳＯＣなどに使用するＩＰにした場合、メモリシステムに依存する機能ブロック仕様が標準化されているため、容易にシステムに順応した構成をとることが可能となっている。
【００２３】
図１は、本発明に係る画像処理装置の要部の一実施形態を示す構成図である。
【００２４】
本画像処理装置１０は、３次元コンピュータグラフィックスシステムに適用され、たとえば立体モデルを単位図形である三角形（ポリゴン）の組み合わせとして表現し、このポリゴンを描画することで表示画面の各画素の色を決定し、メモリに対するポリゴンレンダリング処理を行う。
また、３次元コンピュータグラフィックスシステムでは、平面上の位置を表現する（ｘ，ｙ）座標の他に、奥行きを表すｚ座標を用いて３次元物体を表し、この（ｘ，ｙ，ｚ）の３つの座標で３次元空間の任意の一点を特定する。
【００２５】
本画像処理装置１は、図１に示すように、システム依存ブロック（Ｓｙｓｔｅｍ−ｄｅｐｅｎｄ  ｂｌｏｃｋ）２、およびコアブロック（Ｃｏｒｅ  ｂｌｏｃｋ）３を主構成要素として有している。
【００２６】
システム依存ブロック２は、図１に示すように、外部インタフェースとしてのＣＰＵインタフェース（ＢＢ）２１およびメモリインタフェース（ＭＥＭＩＦ）２２により構成される。
【００２７】
ＣＰＵインタフェース２１は、たとえばＣＰＵバス４を介して図示しない上位装置としてのＣＰＵ（メインプロセッサ）に接続され、ＣＰＵとコアブロック３間、あるいはコアブロック３内の機能ブロック同士間のデータ授受等のインタフェース処理を行う。
【００２８】
メモリインタフェース２２は、コアブロック３と図示しないメモリバスあるいはシステムバスを通して接続されるメモリ間のデータ授受等のインタフェース処理を行う。
【００２９】
コアブロック３は、図２に示すように、ジオメトリエンジン（ＧＥ：Ｇｅｏｍｅｔｒｙ  Ｅｎｇｉｎｅ）３１、およびラスタライゼーションエンジン（ＲＥ；Ｒａｓｔｅｒｉｚａｔｉｏｎ  Ｅｎｇｉｎｅ）３３により構成されている。
【００３０】
ジオメトリエンジン３１は、たとえば図示しないＣＰＵによりＣＰＵバス４を転送され、ＣＰＵインタフェースを通して転送された、３次元座標、法線ベクトル、テクスチャ座標の各頂点データが入力されると、頂点データに対して、たとえば浮動少数点演算を行う。
代表的な演算としては、物体の変形やスクリーンへの投影などを行う座標変換の演算処理、ライティング（Ｌｉｇｈｔｉｎｇ）の演算処理、クリッピング（Ｃｌｉｐｐｉｎｇ）の演算処理がある。
ジオメトリエンジン３１は、演算処理結果を、たとえばポリゴンレンダリングデータとして、ＣＰＵインタフェース２１を通してラスタライゼーションエンジン３２に転送する。
【００３１】
このポリゴンレンダリングデータは、ポリゴンの各３頂点の（ｘ，ｙ，ｚ，Ｒ，Ｇ，Ｂ，α，ｓ，ｔ，ｑ）のデータを含んでいる。
ここで、（ｘ，ｙ，ｚ）データは、ポリゴンの頂点の３次元座標を示し、（Ｒ，Ｇ，Ｂ）データは、それぞれ当該３次元座標における赤、緑、青の輝度値を示している。
また、αはブレンド値（係数）を示している。
（ｓ，ｔ，ｑ）データのうち、（ｓ，ｔ）は、対応するテクスチャの同次座標を示しており、ｑは同次項を示している。ここで、「ｓ／ｑ」および「ｔ／ｑ」に、それぞれテクスチャサイズＵＳＩＺＥおよびＶＳＩＺＥを乗じて、実際のテクスチャ座標データ（ｕ，ｖ）が得られる。
ラスタライゼーションエンジン３２のメモリに記憶されたテクスチャデータへのアクセスは、テクスチャ座標データ（ｕ，ｖ）を用いて行われる。
すなわち、ポリゴンレンダリングデータは、三角形の各頂点の物理座標値と、それぞれの頂点の色とテクスチャデータである。
【００３２】
ラスタライゼーションエンジン３２は、ジオメトリエンジン３１によるポリゴンレンダリングデータを受けて、ラスタライゼーションに必要な各種データ（奥行き（Ｚ），カラー（Ｃ）、テクスチャ座標など）の傾き等のＤＤＡパラメータを算出し、算出した各種データをラスタライズし、テクスチャ座標のパースペクティブコレクション（Ｐｅｒｓｐｅｃｔｉｖｅ  Ｃｏｒｒｅｃｔｉｏｎ）を行い、テクスチャフィルタリングを行う。
テクスチャ座標のパースペクティブコレクション処理には、ＬＯＤ（Ｌｅｖｅｌ  ｏｆ  Ｄｅｔａｉｌ）計算によるミップマップ（ＭＩＰＭＡＰ）レベルの算出や、テクスチャアクセスのための（ｕ，ｖ）アドレス計算も含まれる。テクスチャフィルタリング処理においては、図示しないメモリから読み出されたデータと、（ｕ，ｖ）アドレスを算出した時に得る小数部を４近傍補間などのフィルタリング処理を行う。
ラスタライゼーションエンジン３２は、次に、ピクセルレベルの処理を行う。この処理においては、フィルタリング後のテクスチャデータと、ラスタライズ後の各種データ（Ｚ，Ｃ）を用いてピクセル単位の演算を行う。ここで行う処理には、ピクセルレベルでのライティングなどのピクセルオペレーションに加えて、アルファテスト、Ｚ（奥行き）テスト、アルファブレンディング等の各種処理を行う。    
そして、ラスタライゼーションエンジン３２は、ピクセルレベルの処理における各種テストをパスしたピクセルデータを、メモリインタフェース２２を通して外部のメモリに書き込む。
【００３３】
本実施形態におけるラスタライゼーションエンジン３２は、メモリインタフェース２２を通してメモリへのアクセスを行うが、上述した、テクスチャおよびピクセルレベルの処置を行うテクスチャ・ピクセルエンジンとメモリインタフェースとの間にキャッシュ機構を設けて、画像メモリアーキテクチャに依存して実アドレス生成を行う機能を、画像メモリアーキテクチャに非依存のコマンドの形式とデータで受け渡す形態で切りわけることにより、画像処理におけるメモリアクセスを画像処理メモリアーキテクチャに依存しないキャッシュに分離している。
【００３４】
具体的には、本実施形態におけるラスタライゼーションエンジン３２は、
１）キャッシュ機構までのアドレスにおいて仮想２次元画面座標を扱う、
２）キャッシュからのメモリアクセスには上記内容によるコマンドとデータで標準化する、
３）実アドレスに必要な汎用情報（メモリ先頭アドレス等）もコマンドに収めることで標準化する。
４）実アドレス空間は専用の機構に切り分け、必要最小の実現規模で実現する、
という特徴的な構成を有する。
【００３５】
以下、この特徴的なキャッシュ機構を含むラスタライゼーションエンジン３２のより具体的な構成について説明する。
【００３６】
図２は、本実施形態に係るラスタライゼーションエンジン３２の具体的な構成例を示すブロック図である。
このラスタライゼーションエンジン３２は、図２に示すように、線形補間演算のための初期設定演算ブロックとしてのＤＤＡ(Digital Differential Analizer) セットアップ回路３２１、線形補間処理ブロックとしてのトライアングルＤＤＡ回路３２２、テクスチャマップエンジン（ＴＭＥ）・ピクセルオペレーションエンジン（ＰＯＥ）（以下、ＴＭＥ＿ＰＯＥという）３２３、およびキャッシュシステム３２４を有する。
【００３７】
ＤＤＡセットアップ回路３２１は、後段のトライアングルＤＤＡ回路３２２において物理座標系上の三角形の各頂点の値を線形補間して、三角形の内部の各画素の色と深さ情報を求めるに先立ち、ポリゴンレンダリングデータＳ１１が示す（ｚ，Ｒ，Ｇ，Ｂ，α，ｓ，ｔ，ｑ）データについて、三角形の辺と水平方向の差分などを求めるセットアップ演算を行う。
このセットアップ演算は、具体的には、開始点の値と終点の値と、開始点と終点との距離を用いて、単位長さ移動した場合における、求めようとしている値の変分を算出する。
ＤＤＡセットアップ回路３２１は、算出した変分データを含むプリミティブに関する情報としてのセットアップデータＳ３２１をトライアングルＤＤＡ回路３２２に出力する。
【００３８】
ＤＤＡセットアップ回路３２１の機能について図３に関連付けてさらに説明する。
上述したように、ＤＤＡセットアップ回路３２１の主な処理は、前段のジオメトリ処理を経て物理座標にまで落ちてきた各頂点における各種情報（色、テクスチャ座標）の与えられた三頂点Ｐ０（ｘ０，ｙ０）、Ｐ１（ｘ１，ｙ１）、Ｐ２（ｘ２，ｙ２）により構成される三角形内部で変分を求めて、後段の線形補間処理の基礎デ−タを算出することである。
三角形の描画はひとつひとつの画素の描画に集約されるが、そのために描画開始点における最初の値を求める必要がある。
最初の描画点における各種情報は、頂点からその最初の描画点までの水平距離に水平方向の変分を掛けた値と、垂直距離に垂直方向の変分を掛けた値を足し合わせたものとなる。いったん目的の三角形の内部の一つの整数格子上の値が求まれば、対象の三角形内部のその他の格子点における値は変分の整数倍で求めることが可能となる。
【００３９】
三角形の各頂点データは、たとえばｘ，ｙ座標が１６ビット、ｚ座標が２４ビット、ＲＧＢカラー値が各１２ビット（＝８＋４）、ｓ，ｔ，ｑテクスチャ座標は各３２ビット浮動少数値（ＩＥＥＥフォーマット）等で構成される。
【００４０】
なお、このＤＤＡセットアップ回路３２１は、従来のようにＤＳＰ構造ではなく、ＡＳＩＣ手法により実装している。
具体的には、図４に示すように、多段に配置したレジスタ３２１１−１〜３２１１−４間に複数の演算ユニットを並列に配置した演算ユニット群３２１２−１〜３２１２−３を挿入したフルデータパスロジック、換言すれば、同期パイプライン方式の時間並列構造として構成されている。
【００４１】
トライアングルＤＤＡ回路３２２は、ＤＤＡセットアップ回路３２１から入力した変分データを含むプリミティブに関する情報としてのセットアップデータＳ３２１を基に、三角形内部の各画素における線形補間された（ｚ，Ｒ，Ｇ，Ｂ，α，ｓ，ｔ，ｑ）データを算出する。
トライアングルＤＤＡ回路３２２は、各画素の（ｘ，ｙ）データと、当該（ｘ，ｙ）座標における（ｚ，Ｒ，Ｇ，Ｂ，α，ｓ，ｔ，ｑ）データとを、ＤＤＡデータ（補間データ）Ｓ３２２としてＴＭＥ＿ＰＯＥ３２３に出力する。
【００４２】
すなわち、トライアングルＤＤＡ回路３２２は、ポリゴンの頂点毎に求められた画像パラメータに基づいてポリゴン内部に含まれるすべてのピクセルの画像パラメータを補間するラスタライズ処理（ラスタライゼーション：Ｒａｓｔｅｒｉｚａｔｉｏｎ）を行う。
具体的には、トライアングルＤＤＡ回路３２２は、各種データ（ｚ，テクスチャ座標、カラーなど）をラスタライズする。
【００４３】
ＴＭＥ＿ＰＯＥ３２３は、たとえばテクスチャブレンディング処理、アルファテスト、奥行き（デプス）テスト、アルファブレンディング処理、およびピクセルオペレーションを行う。ピクセルオペレーションにおいては、各種テストをパスしたピクセルデータを、キャッシュシステム３２４、メモリインタフェース２２を通して外部のメモリに書き込む。
【００４４】
以上のように、ＤＤＡセットアップ回路３２１、トライアングルＤＤＡ回路３２２、ＴＭＥ＿ＰＯＥ３２３における所定処理を経て、最終的なメモリアクセスがピクセル(Pixel；Picture Cell Element) という描画画素単位になる。
【００４５】
キャッシュシステム３２４は、テクスチャキャッシュ（Ｔキャッシュ）３２４１、カラーキャッシュ（Ｃキャッシュ）３２４２、およびデプスキャッシュ（Ｚキャッシュ）３２４２を有する。
【００４６】
ＴＭＥ＿ＰＯＥ３２３におけるブレンディングのためのテクスチャデータは、Ｔキャッシュ３２４１に配されたテクスチャ座標を通し、さらにメモリインタフェース２２を介してアクセスされる。
ＴＭＥ＿ＰＯＥ３２３におけるカラー／デプスオペレーションのためのカラーデータは、Ｃキャッシュ３２４２およひＺキャッシュ３２４３に配された２次元のピクセル座標を通し、さらに、メモリインタフェース２２を介してアクセスされる。
このように、本実施形態に係るＴＭＥ＿ＰＯＥ３２３においては、キャッシュシステムに基づく座標およびアドレスブロック（ＭＥＭＩＦ）に依存する分離のメモリシステム、並びに、キャッシュシステム３２４とメモリインタフェース２２間のインタフェースに依存するコマンドベースシステムを採用している。
【００４７】
なお、本実施形態において、ＴＭＥ＿ＰＯＥ３２３におけるピクセルオペレーションにおける座標空間は、使用されるメモリシステムに依存しない。
キャッシュシステム３２４に基づく座標は、いかなるメモリシステムに対して構成することができる。
また、アドレスブロック（ＭＥＭＩＦ）に依存するシステムは、キャッシュシステム３２４から分離可能である。
【００４８】
図５は、キャッシュシステム３２４のＴＭＥ＿ＰＯＥ３３４（ＲＥ）側とメモリアクセスブロックであるメモリインタフェース（ＭＥＭＩＦ）２２が分離した、コマンドベース・キャッシュデータアクセス構造を示す図である。
【００４９】
図５に示すキャッシュコマンド（Ｃ・ＣＭＤ）は、図６に示すように、たとえば１ビットのレジスタセットビット、複数ビットのキャッシュに配された座標、タグ（ＴＡＧ）アドレス情報、ライン情報、１ビットのフィル（ｆｉｌｌ）／ライト（ｗｒｉｔｅ）バックディレクション、複数ビットのライトバック用データマスクビットを含む。
【００５０】
この構造を用いることにより、ページ割り当てやバスプロトコルのようなアドレスフィーチャ依存のシステムは、メモリインタフェース（ＭＥＭＩＦ）２２にのみ搭載すればよい。
したがって、設計が容易で、低コストのシステムを構築できる。
【００５１】
以上のように、本実施形態にラスタライゼーションエンジン３２におけるメモリアクセスは、カラー（Ｃ）をもつピクセルと、３次元奥行きをもつＺと、テクスチャをもつＴに分かれ、先ず実アドレスとは切り離された２次元座標系に対応したキャッシュ機構に対して行われる。
【００５２】
図７は、本実施形態におけるＣキャッシュおよびＺキャッシュの具体的なアクセス制御系を示す図である。
このアクセス制御系１００は、ＰＯＥコントローラ（ＰＯＥＣＴＬ）１０１、キャッシュラインタグ・フラグ部１０２、キャッシュライン１０３−１〜１０３−ｎ（ｎはたとえば８，１６，３２・・・）、コントロールレジスタ（ＣＴＬＲＥＧ）１０５、およびＤＭＡ１０４を有する。
なお、ＤＭＡ１０４は、図１、図２のメモリインタフェース２２に相当するものであり、システムに依存する部分である。
【００５３】
このアクセス制御系１００において、アクセス単位は１ピクセルであり、ｘ，ｙの２次元座標で示す。１キャッシュライン１０３（−１〜−ｎ）は１２８ビット／２５６ビットであり、ピクセルデータに対して２次元座標に相応する２次元構造をとる。
ＰＯＥコントローラ（ＰＯＥＣＴＬ）１０１は、ＴＭＥ＿ＰＯＥ３３からのピクセルリード／ライト等に対応した制御を行う。
コントロールレジスタ（ＣＴＬＲＥＧ）１０５は、キャッシュのピクセルフォーマットを確定し、キャッシュのアクセス属性（Ｒ／Ｗ，Ｗ）を確定する。
上述したように、実アドレス空間のアドレスはＤＭＡ１０５が行い、これらの設定はＤＭＡコマンドで伝達される。
また、キャッシュラインタグ・フラグ部１０２におけるタグ／フラグは、キャッシュラインとメモリを２次元で結びつけ、また、キャッシュラインのステータスを示す。
たとえば、ＤＭＡ１０５からは１２８ビットアクセス、ＰＯＥ３３側からは最大３２ビットアクセスが実現される。
【００５４】
つぎに、Ｃ（カラー）／Ｚ（奥行き／デプス）キャッシュの２次元（２Ｄ）マップ処理に一例について説明する。
この場合、２次元アドレスに対応するＣ／Ｚキャッシュのライン番号の算出、ＰＯＥ３３のリード／ライト（Ｒ／Ｗ）参照時の参照位置を決定する。
ラインマップは、コントロールレジスタ１０４に示すレジスタ設定に応じて、ピクセルフォーマットにより異なる以下の３種類に分類される。
【００５５】
すなわち、
１）１６ライン・・Ｃキャッシュにおける１６ビットピクセルフォーマット、Ｚキャッシュにおける１６ビットピクセルフォーマット、
２）８ライン（４×２）・・Ｃキャッシュにおける３２ビットピクセルフォーマット、Ｚキャッシュにおける３２ピクセルフォーマット、
３）８ライン（４×４）・・Ｃキャッシュにおける８ビットピクセルフォーマット、
の３種類である。
【００５６】
ここで、Ｃ／Ｚキャッシュの１６ラインの場合を例に具体的な処理について説明する。なお、８ライン（４×２）、８ライン（４×４）は１６ラインの場合と同様に行われることから、本実施形態ではその詳細な説明は省略する。
【００５７】
Ｃ／Ｚキャッシュの１６ラインの場合、アクセス座標（アドレス）は、キャッシュサイズとなるように、４×２でブロックされる。このブロックアドレス（ｘb ，ｙb ）と参照アドレス（ｘo ，ｙo ）の関係は以下のようになる。
ｘb ＝ｘo ＞＞２
ｙb ＝ｙo ＞＞１
【００５８】
このブロックアドレス（ｘb ，ｙb ）について、タグＮｏｎｕｍの算出は以下のようになる。
ｎｕｍ＝（ｘb ＆０Ｘ３）｜（（ｙb ＆０Ｘ３）＜＜２）
【００５９】
２次元座標値をアドレスとしている関係（ＤＭＡ１０５によるメモリ参照物理アドレスのページアドレスはＤＭＡ１０５側で確定する）から、タグに保存されるアドレスはブロックアドレス（ｘb ，ｙb ）の上位となる。
ｘtag ＝ｘb ＞＞２
ｙtag ＝ｙb ＞＞２
【００６０】
キャッシュビット参照は、タグアドレッシング後にこの値を比較して行われることになる。
この場合の参照座標入力との関係を図８に示す。
【００６１】
次に、Ｃ／Ｚキャッシュの１６ラインの場合のピクセルデータの割り当てについて説明する。
１キャッシュライン１２８ビットデータについて、ＤＭＡ１０５側とＰＯＥ３３側の２次元８ピクセルの並びに対する割り付けについて説明すると、ＤＭＡ側の１２８ビットのラインデータに対するピクセル割り付けは、図９に示す形となる。
なお、３２ビットのピクセル出た割り付けはＬＳＢ側の１６ビットとなる。
【００６２】
次に、Ｃ／Ｚキャッシュの１６ラインの場合のスタンプアクセス（ｓｔａｍｐ  ａｃｃｅｓｓ）について説明する。
ＰＯＥ３３からのリード／ライト（Ｒ／Ｗ）参照は、１６ビットの１スタンプ分１ピクセルで行われる。
参照は、その性質上、リード／ライト（Ｒ／Ｗ）のペアになるが。、処理の結果、書き込みが行われない場合は、無効（ｉｎｖａｌｉｄ）としてライト（ｗｒｉｔｅ）が発行されなければならない。
スタンプ参照座標（ｘs0，ｙs0）（ｘs0１１ビット、ｙs0１１ビット）についてのスタンプ参照ブロックアドレス（ｘsb，ｙsb）は、次のように与えられる。
ｘsb＝ｘso＞＞２
ｙsb＝ｙso＞＞１
【００６３】
１２８ビット／ｌｉｎｅ内でのスタンプ参照の関係は、スタンプ参照座標（ｘs0，ｙs0）のＬＳＢ側ビットを使い、図１０に示すようになる。
【００６４】
次に、本実施形態に係るメモリインタフェース（ＭＥＭＩＦ）２２について述べる。
上述したように、Ｃ／Ｚキャッシュののアクセスは汎用コマンドとして実システムとのアクセスを実現するメモリインタフェース（ＭＥＭＩＦ）２２とインタフェースされる（転送の整合が行われる）。Ｔキャッシュのアクセスは、同様な汎用コマンドとして実システムとのアクセスを実現すメモリインタフェース（ＭＥＭＩＦ）２２とインターフェースされる。
このようなメモリインタフェース（ＭＥＭＩＦ）２２は、ＳＯＣにおけるメモリアクセスのインタフェース（ＩＦ）仕様に合わせ、さらに２次元キャッシュ機構のメモリアクセス（キャッシュミス時）の特性を考慮した実アドレス構成を取り、３次元コンピュータグラフィックス（３ＤＣＧ）のメモリシステム非依存のＣ／Ｚ／Ｔのインターフェースを実現する。
【００６５】
メモリインタフェース（ＭＥＭＩＦ）２２の機能仕様は、３ＤＣＧ機能とは分離された仕様となり、Ｃ／Ｚの場合、たとえば対象ＳＯＣのバス仕様、ＳＤＲＡＭ仕様に合わせたアドレスになるように汎用コマンドを処理する機能仕様が採用される。
メモリインタフェース（ＭＥＭＩＦ）２２の実メモリアドレスを実現するため汎用コマンドによる先頭アドレスとアドレス計算係数の設定が行われる。Ｔキャッシュについても同様に実現される。
本実施形態んおいて注目すべきは、最も規模が大きく複雑な３ＤＣＧは完全に分離され、対象システムの要求に合わせた機能ブロックを、３ＤＣＧ機能ブロックから指定された仕様によるインターフェースにあわせ込むだけで実現している点である。したがって、他機能要求（他ＳＯＣなど）に対する対応は上記ＭＥＭＩＦに該当する設計だけで良い。
【００６６】
次に、上記構成による動作を説明する。
【００６７】
まず、ジオメトリエンジン３１において、たとえば図示しないＣＰＵによりＣＰＵバス４を転送され、ＣＰＵインタフェースを通して転送された、３次元座標、法線ベクトル、テクスチャぜひょうの各頂点データが入力されると、頂点データに対して、たとえば浮動少数点演算が行われる。たとえば、必要に応じて、グラフィックス描画等のデータは、メインプロセッサ１１等において、座標変換、クリップ処理、ライティング処理等のジオメトリ処理が行われる。
そして、ジオメトリエンジン３１の演算処理結果は、たとえばポリゴンレンダリングデータとして、ＣＰＵインタフェース２１を通してラスタライゼーションエンジン３２に転送される。
【００６８】
ラスタライゼーションエンジン３２においては、まず、ＤＤＡセットアップ回路３２１において、ポリゴンレンダリングデータに基づいて、三角形の辺と水平方向の差分などを示す変分データが生成される。
具体的には、開始点の値と終点の値、並びに、その間の距離を用いて、単位長さ移動した場合における、求めようとしている値の変化分である変分が算出され、変分データを含むセットアップデータＳ３２１としてトライアングルＤＤＡ回路３２２に出力される。
【００６９】
トライアングルＤＤＡ回路３２２においては、変分データを含むセットアップデータＳ３２１を用いて、、三角形内部の各画素における線形補間された（ｚ，Ｒ，Ｇ，Ｂ，α，ｓ，ｔ，ｑ）データが算出される。
そして、この算出された（ｚ，Ｒ，Ｇ，Ｂ，α，ｓ，ｔ，ｑ）データと、三角形の各頂点の（ｘ，ｙ）データとが、ＤＤＡデータＳ３２２として、トライアングルＤＤＡ回路３２２からＴＭＥ＿ＰＯＥ３２３に出力される。
すなわち、トライアングルＤＤＡ回路３２２においては、ポリゴンの頂点毎に求められた画像パラメータに基づいてポリゴン内部に含まれるすべてのピクセルの画像パラメータ（ｚ，テクスチャ座標、カラーなど）を補間するラスタライズ処理が行われる。
【００７０】
ＴＭＥ＿ＰＯＥ３２３においては、たとえばテクスチャブレンディング処理、アルファテスト、奥行き（デプス）テスト、アルファブレンディング処理、およびピクセルオペレーションが行われる。そして、ピクセルオペレーションにおいては、各種テストをパスしたピクセルデータが、キャッシュシステム３２４、メモリインタフェース２２を通して外部のメモリに書き込まれる。
ＴＭＥ＿ＰＯＥ３２３におけるブレンディングのためのテクスチャデータは、Ｔキャッシュ３２４１に配されたテクスチャ座標を通し、さらにメモリインタフェース２２を介してアクセスされる。
ＴＭＥ＿ＰＯＥ３２３におけるカラー／デプスオペレーションのためのカラーデータは、Ｃキャッシュ３２４２およひＺキャッシュ３２４３に配された２次元のピクセル座標を通し、さらに、メモリインタフェース２２を介してアクセスされる。
【００７１】
以上説明したように、本実施形態によれば、ラスタライゼーションエンジン３２において、メモリインタフェース２２を通してメモリへのアクセスを行うが、テクスチャおよびピクセルレベルの処置を行うテクスチャ・ピクセルエンジンとメモリインタフェースとの間にキャッシュシステム３２４を設けて、画像メモリアーキテクチャに依存して実アドレス生成を行う機能を、画像メモリアーキテクチャに非依存のコマンドの形式とデータで受け渡す形態で切りわけることにより、画像処理におけるメモリアクセスを画像処理メモリアーキテクチャに依存しないキャッシュに分離していることから、以下の効果を得ることができる。
【００７２】
すなわち、面積、電力の増大を抑止でき、メモリアクセス機構の簡単化を図れ、設計負荷を軽減できる利点がある。
その結果、従来はメモリアーキテクチャに依存して構成されていた画像処理、すなわち３次元コンピュータグラフィックスアーキテクチャをメモリから分離し、汎用ＳＯＣなどに使用するＩＰにした場合、メモリシステムに依存する機能ブロック仕様が標準化されているため、容易にシステムに順応した構成をとることが可能となる。
【図面の簡単な説明】
【００７３】
【図１】本発明に係る画像処理装置の要部の一実施形態を示す構成図である。
【図２】本実施形態に係るコアブロックの構成例を示すブロック図である。
【図３】本実施形態に係るトライアングルＤＤＡ回路の機能を説明するための図である。
【図４】本実施形態に係るトライアングルＤＤＡ回路の要部構成を示すブロック図である。
【図５】本実施形態に係るキャッシュシステムのＴＭＥ＿ＰＯＥ（ＲＥ）側とメモリアクセスブロックであるメモリインタフェース（ＭＥＭＩＦ）が分離した、コマンドベース・キャッシュデータアクセス構造を示す図である。
【図６】図５のキャッシュコマンド（Ｃ・ＣＭＤ）構造例を示す図である。
【図７】本実施形態におけるＣキャッシュおよびＺキャッシュの具体的なアクセス制御系を示す図である。
【図８】Ｃ／Ｚキャッシュ１６ラインの場合の２次元マップ処理を示す図である。
【図９】Ｃ／Ｚキャッシュ１６ラインの場合のＤＭＡ側のピクセル割り当てを示す図である。
【図１０】Ｃ／Ｚキャッシュ１６ラインの場合のスタンプ参照の関係の一例を示す図である。
【符号の説明】
【００７４】
１…画像処理装置、２…システム依存ブロック、２１…ＣＰＵインタフェース（ＢＢ）、２２…メモリインタフェース（ＭＥＭＩＦ）、３…コアブロック、３１…ジオメトリエンジン（ＧＥ）、３２…ラスタライゼーションエンジン（ＲＥ）、３２１…トライアングルセットアップ回路、３２２…トライアングルＤＤＡ回路、３２３…テクスチャマップエンジン（ＴＭＥ）・ピクセルオペレーションエンジン（ＰＯＥ）（ＴＭＥ＿ＰＯＥ）、３２４…キャッシュシステム。
【図１】
2005078357.tif 000003
【図２】
2005078357.tif 000004
【図３】
2005078357.tif 000005
【図４】
2005078357.tif 000006
【図５】
2005078357.tif 000007
【図６】
2005078357.tif 000008
【図７】
2005078357.tif 000009
【図８】
2005078357.tif 000010
【図９】
2005078357.tif 000011
【図１０】
2005078357.tif 000012