JP4380757B2 - 映像信号処理装置および映像信号処理方法 - Google Patents

映像信号処理装置および映像信号処理方法 Download PDF

Info

Publication number
JP4380757B2
JP4380757B2 JP2007281031A JP2007281031A JP4380757B2 JP 4380757 B2 JP4380757 B2 JP 4380757B2 JP 2007281031 A JP2007281031 A JP 2007281031A JP 2007281031 A JP2007281031 A JP 2007281031A JP 4380757 B2 JP4380757 B2 JP 4380757B2
Authority
JP
Japan
Prior art keywords
data
pixel data
data processing
pixel
circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2007281031A
Other languages
English (en)
Other versions
JP2008097619A (ja
Inventor
悦和 黒瀬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2007281031A priority Critical patent/JP4380757B2/ja
Publication of JP2008097619A publication Critical patent/JP2008097619A/ja
Application granted granted Critical
Publication of JP4380757B2 publication Critical patent/JP4380757B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Image Processing (AREA)
  • Image Generation (AREA)

Description

本発明は、映像信号処理技術に関するものであり、特に、低消費電力化を図ることができる映像信号処理装置および映像信号処理方法に関する。
種々のCAD(Computer Aided Design) システムや、アミューズメント装置などにおいて、コンピュータグラフィックスがしばしば用いられている。特に、近年の画像(映像)信号処理技術の進展に伴い、3次元コンピュータグラフィックスを用いたシステムが急速に普及している。
このような3次元コンピュータグラフィックスでは、映像信号の各画素(ピクセル)に対応する色を決定するときに、各画素の色の値を計算し、この計算した色の値を、当該画素に対応するディスプレイバッファ(フレームバッファ)のアドレスに書き込むレンダリング(Rendering) 処理を行う。
レンダリング処理の手法の一つに、ポリゴン(Polygon 、多角形) レンダリングがある。この手法では、立体モデルを三角形の単位図形(ポリゴン)を組み合わせた多角形で表現し、このポリゴンを単位として処理を行い、描画することで、表示画面の色を決定する。
ポリゴンレンダリングでは、物理座標系における三角形を組み合わせた多角形の各頂点についての、座標(x,y,z)と、色データ(R,G,B,α)と、張り合わせのイメージパターンを示すテクスチャデータの同次座標(s,t)および同次項qの値とを入力とし、これらの値を三角形の内部で補間する処理が行われる。
ここで、同次項qは、簡単にいうと、拡大縮小率のようなもので、実際のテクスチャバッファのUV座標系における座標、すなわち、テクスチャ座標データ(u,v)は、同次座標(s,t)を同次項qで除算した「s/q」および「t/q」に、それぞれテクスチャサイズUSIZEおよびVSIZEを乗じたものとなる。
このような3次元コンピュータグラフィックシステムでは、例えば、ディスプレイバッファ(フレームバッファ)に描画のための映像信号を書き込む際に、画素毎に、テクスチャ座標データ(u,v)を用いてテクスチャバッファからテクスチャデータを読み出し、この読み出したテクスチャデータを、立体モデルの表面に三角形を単位として張り付けるテクスチャマッピング処理を行う。
なお、立体モデルでのテクスチャマッピング処理では、各画素毎に、張り付けを行なうテクスチャデータが示す画像の拡大縮小率が変化する。
ところで、このような3次元コンピュータグラフィックシステムでは、例えば、所定の矩形内の8画素についての処理を並行して(同時に)行う場合がある。
また、前述したような三角形を単位図形としたポリゴンレンダリングでは、張り付けを行うテクスチャデータの縮小率などは、三角形を単位として決定される。
従って、並行して処理を行った8画素分の演算結果のうち、対象となる三角形の外部に位置する画素についての演算結果は使用しないから無効になる。
具体的には、図12に示すように、三角形30について所定の演算を行って縮小率を決定し、当該縮小率に応じたテクスチャデータを用いてテクスチャマッピング処理を行っている場合を考える。
ここで、矩形31,32,33は、それぞれ並行して処理される8(2×4)画素が配置された領域であり、ポリゴンレンダリング処理において、各矩形内に属する8画素については同じテクスチャデータが用いられる。
図12に示す場合には、矩形32に属する8画素は全て三角形30内に位置するため、8画素の演算結果は全て有効「1」である。これに対して、矩形31,33にそれぞれ属する8画素は、3画素は三角形30内に位置するが、5画素は三角形30の外に位置する。従って、8画素の演算結果のうち、3画素の演算結果は有効であるが、5画素の演算結果は無効となる。
従来では、矩形内に位置する8画素の全てについて、ポリゴンレンダリング処理を無条件に行っていた。
しかしながら、上述したように、三角形を単位図形として多角形についてのポリゴンレンダリング処理を行なう場合に、矩形内に位置する複数の画素の全てについての処理を、対象となっている三角形の内部に位置するか否かとは無関係に実行すると、膨大な数の無効な演算を行うことになり、その処理を行う映像信号装置の消費電力に大きな影響を及ぼす。
また、3次元コンピュータグラフィックシステムでは、上述した理由の他にも、種々の要因で不要な演算を行うことがある。
そのため、不要な画像処理を行わない技術が、たとえば、特許文献1、2に提案されている。しかしながら、特許文献1、2において提案されている技術は、画素データごとに、かつ、自動的に画像処理の有無を判断する技術ではない。
特に、近年、3次元コンピュータグラフィックシステムの動作クロック周波数は非常に高くなっているため、消費電力の増加が著しく、3次元コンピュータグラフィックシステムにおける消費電力の低下が大きな課題になっている。
特開平06−309349号公報 国際公開第98/06065号公報
本発明は上述した従来技術の問題点に鑑みてなされ、消費電力の大幅な低下を図れることができる映像信号処理装置および映像信号処理方法を提供することを目的とする。
本発明によれば、表示手段に表示する画像を所定形状の単位図形を組み合わせて表現し、同一の前記単位図形内に位置する複数の画素の画素データを同一の処理条件に基づいて処理する映像信号処理装置において、
同時に処理を行なおうとする前記複数の画素データのそれぞれについて、対応する画素が前記単位図形の内側に位置するか否かを判断する画素位置判断手段と、前記同時に処理を行おうとする前記複数の画素データを相互に並列に処理する複数の画素データ処理回路と、前記画素位置判断手段の判断結果に基づいて、前記複数の画素データ処理回路のうち前記処理対象となっている単位図形の内側に位置する画素の画素データを処理する前記画素データ処理回路以外の前記画素データ処理回路の動作を停止する制御手段とを有し、
前記画素位置判断手段は、対応する画素が前記単位図形の内側に位置するとき前記対応する画素データ処理回路で処理される前記画素データに有効性指示データを付加し、
前記制御手段は、前記有効性指示データに基づいて、前記対応する画素データ処理回路の動作を停止するか否かを判断する、
映像信号処理装置が提供される。
好ましくは、当該映像信号処理装置は、システムクロックから、前記複数の画素データ処理回路の各画素データ処理回路を動作させる画素データ処理回路駆動クロック信号と、前記画素位置判断手段の判断結果に基づく各画素データ処理回路の動作を制御する制御クロックとを生成するクロック生成手段をさらに有し、
前記各画素データ処理回路は、対応する各画素データ処理回路駆動クロック信号に基づいて動作し、
前記制御手段は、前記処理対象となっている単位図形の内側に位置する画素の画素データを処理する前記画素データ処理回路に対応する画素データ処理回路駆動クロック信号を供給し、前記処理対象となっている単位図形の内側に位置しない画素の画素データを処理する前記画素データ処理回路への前記対応する画素データ処理回路駆動クロック信号の供給を停止する。
また好ましくは、前記複数の画素データ処理回路の各々は、パイプライン処理を行うように相互に直列に接続された複数の信号処理回路を有する。
好ましくは、前記画素データ処理回路内の直列に接続された複数の信号処理回路は、それぞれフラグ記憶部を有し、前記複数の信号処理回路の前記フラグ記憶部が直列接続されて前記各画素データ処理回路を制御するフラグが転送されることにより前記パイプライン処理および前記画素データ処理回路駆動クロック信号の供給の制御を行う。
また本発明によれば、表示手段に表示する画像を所定形状の単位図形を組み合わせて表現し、複数の画素データ処理回路を用いて同一の前記単位図形内に位置する複数の画素の画素データを同一の処理条件に基づいて処理する映像信号処理方法において、
同時に処理を行なおうとする前記複数の画素データのそれぞれについて、対応する画素が前記単位図形の内側に位置するか否かを判断し、対応する画素が前記単位図形の内側に位置するとき前記画素データ処理回路で処理される画素データに有効性指示データを付加し、
前記有効性指示データの有無に基づいて、前記複数の画素データ処理手段のうち前記処理対象となっている単位図形の内側に位置する画素の画素データを処理する前記画素データ処理回路以外の前記画素データ処理回路の動作を停止するか否かを判断し、
前記判断の結果、動作を行う前記複数の画素データ処理回路が前記同時に処理を行おうとする前記複数の画素データを相互に並列に処理する、
ことを特徴とする映像信号処理方法が提供される。
好ましくは、前記各画素データ処理回路がシステムクロックから生成される対応する画素データ処理回路駆動クロック信号に基づいて動作し、
前記処理対象となっている単位図形の内側に位置する画素の画素データを処理する前記画素データ処理回路に対応する画素データ処理回路駆動クロック信号を供給し、
前記処理対象となっている単位図形の内側に位置しない画素の画素データを処理する前記画素データ処理回路への前記対応する画素データ処理回路駆動クロック信号の供給を停止する。
また好ましくは、前記複数の画素データ処理回路の各々は、直列に接続された複数の信号処理回路でパイプライン処理を行う。
好ましくは、前記画素データ処理回路内の直列に接続された前記複数の信号処理回路は、それぞれフラグ記憶部を有し、前記複数の信号処理回路の前記フラグ記憶部が直列接続されて前記各画素データ処理回路を制御するフラグが転送されることにより、前記パイプライン処理および前記対応する画素データ処理回路駆動クロック信号の供給の制御を行う。
本発明によれば、画素データごとに映像信号処理可能な回路構成とし、処理が不要の画素データの処理を行わないようにその画素データの処理回路の動作を停止させて、映像信号処理装置における無駄な消費電力を低減することができる。。
より好ましくは、処理が不要な画素データの処理回路への駆動クロックの供給を停止することにより、画素データの処理回路ごとの無駄な消費電力を低減することができる。
以下、本発明の映像信号処理装置(または、映像信号装置、あるいは、画像処理装置)と映像信号処理方法の実施の形態について述べる。
本実施形態においては、家庭用ゲーム機などに適用される、任意の3次元物体モデルに対する所望の3次元画像をCRT(Cathode Ray Tube)などのディスプレイ上に高速に表示する3次元コンピュータグラフィックシステムについて説明する。
第1実施形態
図1は、映像信号処理装置野1例として、本実施形態の3次元コンピュータグラフィックシステム1のシステム構成図である。
3次元コンピュータグラフィックシステム1は、立体モデルを単位図形である三角形を組み合わせた多角形(ポリゴン)の張り合わせとして表現し、このポリゴンを描画することで表示画面の各画素の色を決定し、ディスプレイに表示するポリゴンレンダリング処理を行うシステムである。
また、3次元コンピュータグラフィックシステム1では、平面上の位置を表現する(x,y)座標の他に、奥行きを表すz座標を用いて3次元物体を表し、この(x,y,z)の3つの座標で3次元空間の任意の一点を特定する。
図1に示すように、3次元コンピュータグラフィックシステム1では、メインメモリ2、I/Oインタフェース回路3、メインプロセッサ4およびレンダリング回路5が、メインバス6を介して接続されている。
以下、各構成要素の機能について説明する。
メインプロセッサ4は、例えば、ゲームの進行状況などに応じて、メインメモリ2から必要なグラフィックデータを読み出し、このグラフィックデータに対してクリッピング(Clipping)処理、ライティング(Lighting)処理およびジオメトリ(Geometry)処理などを行い、ポリゴンレンダリングデータを生成する。メインプロセッサ4は、ポリゴンレンダリングデータS4を、メインバス6を介してレンダリング回路5に出力する。
I/Oインタフェース回路3は、必要に応じて、外部からポリゴンレンダリングデータを入力し、これをメインバス6を介してレンダリング回路5に出力する。
ここで、ポリゴンレンダリングデータは、ポリゴンの各3頂点の(x,y,z,R,G,B,α,s,t,q)のデータを含んでいる。
(x,y,z)データは、ポリゴンの頂点の3次元座標を示し、(R,G,B)データは、それそれ当該3次元座標における赤、緑、青の輝度値を示している。
αデータは、これから描画する画素と、ディスプレイバッファ21に既に記憶されている画素とのR,G,Bデータのブレンド(混合)係数を示している。
(s,t,q)データのうち、(s,t)は、対応するテクスチャの同次座標を示しており、qは同次項を示している。ここで、「s/q」および「t/q」に、それぞれテクスチャサイズUSIZEおよびVSIZEを乗じてテクスチャ座標データ(u,v)が得られる。
テクスチャバッファ20に記憶されたテクスチャデータへのアクセスは、テクスチャ座標データ(u,v)を用いて行われる。
すなわち、ポリゴンレンダリングデータは、三角形の各頂点の物理座標値と、それぞれの頂点の色とテクスチャデータの同次座標および同次項を示している。
以下、レンダリング回路5について詳細に説明する。
図1に示すように、レンダリング回路5は、DDA(Digital Differential Analizer、ディジタル変分分析器) セットアップ回路10、トライアングル(三角形)DDA回路11、テクスチャエンジン回路12、メモリI/F回路13、CRTコントローラ回路14、RAMDAC回路15、DRAM16およびSRAM17を有する。
DRAM16は、テクスチャバッファ20、ディスプレイバッファ21、zバッファ22およびテクスチャCLUTバッファ23として機能する。
DDAセットアップ回路10
DDAセットアップ回路10は、後段のトライアングルDDA回路11において物理座標系上の三角形の各頂点の値を線形補間して三角形の内部の各画素の色R,G,Bと深さ情報zを求めるのに先立ち、ポリゴンレンダリングデータS4が示す(z,R,G,B,α,s,t,q)データについて、三角形の辺と水平方向の差分を求めるセットアップ演算を行う。
このセットアップ演算は、具体的には、開始点の値と終点の値と、開始点と終点との距離を用いて、単位長さ移動した場合における、求めようとしている値の変分を算出する。
また、DDAセットアップ回路10は、同時に処理を行う8画素のそれぞれについて、処理対象となる三角形の内部に位置するか否かを示す1ビットの有効指示データvalを決定する。具体的には、有効指示データvalは、三角形の内部に位置する画素について「1」とし、三角形の外部に位置する画素について「0」とする。
DDAセットアップ回路10は、算出した変分データS10と、各画素の有効指示データvalとをトライアングルDDA回路11に出力する。
トライアングルDDA回路11
トライアングルDDA回路11は、DDAセットアップ回路10から入力した変分データS10を用いて、三角形内部の各画素の線形補間された(z,R,G,B,α,s,t,q)データを算出する。
トライアングルDDA回路11は、各画素の(x,y)データと、当該(x,y)座標の画素についての(z,R,G,B,α,s,t,q,val)データとを、DDAデータ(補間データ)S11としてテクスチャエンジン回路12に出力する。
本実施形態では、トライアングルDDA回路11は、並行して処理を行う矩形内に位置する8画素分のDDAデータS11を単位としてテクスチャエンジン回路12に出力する。
ここで、DDAデータS11の(z,R,G,B,α,s,t,q,val)データは、図2に示すように、161ビットのデータである。
具体的には、R,G,B,αデータがそれぞれ8ビットであり、z,s,t,qデータがそれぞれ32ビットであり、valデータが1ビットである。
なお、以下、並行して処理を行う8画素についての(z,R,G,B,α,s,t,q,val)データのうち、有効指示データvalをvalデータS220〜S220とし、(z,R,G,B,α,s,t,q)データを被演算データS221〜S221とする。
すなわち、トライアングルDDA回路11は、8画素分の(x,y)データと、valデータS220〜S220と、被演算データS221〜S221からなるDDAデータS11をテクスチャエンジン回路12に出力する。
テクスチャエンジン回路12およびメモリI/F回路13
テクスチャエンジン回路12による、DDAデータS11を用いた、「s/q」および「t/q」の算出処理、テクスチャ座標データ(u,v)の算出処理、および、テクスチャバッファ20からの(R,G,B,α)データの読み出し処理と、メモリI/F回路13によるz(奥行き)比較処理および混合(α)処理とを、図3に示す演算ブロック200,201,202,204,205でパイプライン方式で順に実行する。
ここで、演算ブロック200,201,202,204,205は、それぞれ8個の演算サブブロックを内蔵しており、8画素分の演算処理を並行して行う。

ここで、テクスチャエンジン回路12が演算ブロック200,201,202を内蔵し、メモリI/F回路13が演算ブロック204,205を内蔵している。
〔演算ブロック200〕
演算ブロック200は、DDAデータS11に含まれる(s,t,q)データを用いて、sデータをqデータで除算する演算と、tデータをqデータで除算する演算とを行う。
演算ブロック200は、図3に示すように、8個の演算サブブロック20051〜200を内蔵する。
ここで、演算サブブロック200は、被演算データS221およびvalデータS220を入力し、valデータS220が「1」、すなわち有効であることを示す場合には、「s/q」および「t/q」を算出し、その算出結果を除算結果S200として演算ブロック201の演算サブブロック201に出力する。
また、演算サブブロック200は、valデータS220が「0」、すなわち無効であることを示す場合には、演算は行わず、除算結果S200を出力しないか、あるいは、所定の仮値を示す除算結果S200を演算ブロック201の演算サブブロック201に出力する。
また、演算サブブロック200は、valデータS220を後段の演算サブブロック201に出力する。
なお、演算サブブロック200〜200も、それぞれ対応する画素について、演算サブブロック200と同じ演算を行い、それぞれ除算結果S20052〜S200およびvalデータS220〜S220を後段の演算ブロック201の演算サブブロック201〜201にそれぞれ出力する。
図4は、演算サブブロック200の内部構成図である。
なお、図3に示す、全ての演算サブブロックは、基本的に、図4に示す構成をしている。
図4に示すように、演算サブブロック200は、クロックイネーブラ(クロック有効化回路)210、データ用フリップフロップ222、プロセッサエレメント223およびフラグ用フリップフロップ224を有する。
クロックイネーブラ210は、システムクロック信号S225を基準としたタイミングでvalデータS220を入力し、valデータS220のレベルを検出する。そして、クロックイネーブラ210は、valデータS220が、「1」である場合には、例えば、クロック信号S210にパルス発生させ、「0」である場合には、クロック信号S210にパルス発生させない。
データ用フリップフロップ222は、クロック信号S210のパルスを検出すると、被演算データS221を取り込み、プロセッサエレメント223に出力する。
プロセッサエレメント223は、入力した被演算データS221を用いて前述した除算を行い、除算結果S200を演算サブブロック201のデータ用フリップフロップ222に出力する。
フラグ用フリップフロップ224は、システムクロック信号S225を基準としたタイミングで、valデータS220を取り込み、後段の演算ブロック201の演算サブブロック201のフラグ用フリップフロップ224に出力する。
なお、システムクロック信号S225は、図3に示す全ての演算サブブロック200〜200,201〜201,202〜202,204〜204のクロックイネーブラおよびフラグ用フリップフロップ224に供給される。
すなわち、演算サブブロック200〜200,201〜201,202〜202,204〜204における処理は同期して行われ、同一の演算ブロックに内蔵された8個の演算サブブロックは並行して処理を行う。
〔演算ブロック201〕
演算ブロック201は、演算サブブロック201〜201を有し、演算ブロック200から入力した除算結果S200〜S200が示す「s/q」および「t/q」に、それぞれテクスチャサイズUSIZEおよびVSIZEを乗じて、テクスチャ座標データ(u,v)を生成する。
演算サブブロック201〜201は、それぞれクロックイネーブラ211〜211によりvalデータS220〜S220のレベル検出を行った結果、当該レベルが「1」の場合にのみ演算を行い、それぞれ演算結果であるテクスチャ座標データS201〜S201を、演算ブロック202の演算サブブロック202〜202に出力する。
〔演算ブロック202〕
演算ブロック202は、演算サブブロック202〜202を有し、メモリI/F回路13を介して、SRAM17あるいはDRAM16に、演算ブロック201で生成したテクスチャ座標データ(u,v)を含む読み出し要求を出力し、メモリI/F回路13を介して、SRAM17あるいはテクスチャバッファ20に記憶されているテクスチャデータを読み出すことで、(u,v)データに対応したテクスチャアドレスに記憶された(R,G,B,α)データS17を得る。
なお、テクスチャバッファ20には、MIPMAP(複数解像度テクスチャ)などの複数の縮小率に対応したテクスチャデータが記憶されている。ここで、何れの縮小率のテクスチャデータを用いるかは、所定のアルゴリズムを用いて、前記三角形を単位として決定される。
また、SRAM17には、テクスチャバッファ20に記憶されているテクスチャデータのコピーが記憶されている。
演算サブブロック202〜202は、それぞれクロックイネーブラ212〜212によりvalデータS220〜S220のレベル検出を行った結果、当該レベルが「1」の場合にのみ読み出し処理を行い、それぞれ読み出した(R,G,B,α)データS17を、(R,G,B,α)データS202〜S202として、それぞれ演算ブロック203の演算サブブロック203〜203に出力する。
なお、テクスチャエンジン回路12は、フルカラー方式の場合には、テクスチャバッファ20から読み出した(R,G,B,α)データを直接用いる。一方、テクスチャエンジン回路12は、インデックスカラー方式の場合には、予め作成したカラールックアップテーブル(CLUT)をテクスチャCLUTバッファ23から読み出して、内蔵するSRAMに転送および記憶し、このカラールックアップテーブルを用いて、テクスチャバッファ20から読み出したカラーインデックスに対応する(R,G,B)データを得る。
〔演算ブロック203〕
演算ブロック203は、演算サブブロック203〜203を有し、演算ブロック202から入力したテクスチャデータである(R,G,B.α)データS202〜S202と、トライアングルDDA回路11からのDDAデータS11に含まれる(R,G,B)データとを、(R,G,B.α)データS202〜S202に含まれるαデータ(テクスチャα)が示す割合で混合し、(R,G,B)混合データを生成する。
そして、演算ブロック203は、生成された(R,G,B)混合データと、対応するDDAデータS11に含まれるαデータとを含む(R,G,B,α)データS203〜S203を、演算ブロック204に出力する。
演算サブブロック203〜203は、それぞれクロックイネーブラ213〜213によりvalデータS220〜S220のレベル検出を行った結果、当該レベルが「1」の場合にのみ上記混合および(R,G,B,α)データS203〜S203の出力を行う。
〔演算ブロック204〕
演算ブロック204は、演算サブブロック204〜204を有し、入力した(R,G,B,α)データS203〜S203について、zバッファ22に記憶されたzデータの内容を用いて、z比較を行い、(R,G,B,α)データS203〜S203によって描画する画像が、前回、ディスプレイバッファ21に描画した値よりも手前(視点側)に位置する場合には、zバッファ22を更新すると共に、(R,G,B,α)データS203〜S203を、(R,G,B,α)データS204〜S204として、それぞれ演算ブロック205の演算サブブロック205〜205に出力する。
演算サブブロック204〜204は、それぞれクロックイネーブラ214〜214によりvalデータS220〜S220のレベル検出を行った結果、当該レベルが「1」の場合にのみ上述したz比較および(R,G,B,α)データS204〜S204の出力を行なう。
〔演算ブロック205〕
演算ブロック205は、演算サブブロック205〜205を有し、入力した(R,G,B,α)データS204〜S204と、既にディスプレイバッファ21に記憶されている(R,G,B)データとを、それぞれ(R,G,B,α)データS204〜S204に含まれるαデータが示す混合値で混合し、混合後の(R,G,B)データS205〜S205をディスプレイバッファ21に書き込む(打ち込む)。
なお、メモリI/F回路13によるDRAM16に対してのアクセスは、16画素について同時に行なわれる。
演算サブブロック205〜205は、それぞれクロックイネーブラ215〜215によりvalデータS220〜S220のレベル検出を行った結果、当該レベルが「1」の場合にのみ上述した混合処理およびディスプレイバッファ21への書き込み処理を行う。
CRTコントローラ回路14
CRTコントローラ回路14は、与えられた水平および垂直同期信号に同期して、図示しないCRTに表示するアドレスを発生し、ディスプレイバッファ21から表示データを読み出す要求をメモリI/F回路13に出力する。この要求に応じて、メモリI/F回路13は、ディスプレイバッファ21から一定の固まりで表示データを読み出す。CRTコントローラ回路14は、ディスプレイバッファ21から読み出した表示データを記憶するFIFO(First In First Out)回路を内蔵し、一定の時間間隔で、RAMDAC回路15に、RGBのインデックス値を出力する。
RAMDAC回路15
RAMDAC回路15は、各インデックス値に対応するR,G,Bデータを記憶しており、CRTコントローラ回路14から入力したRGBのインデックス値に対応するデジタル形式のR,G,Bデータを、D/Aコンバータに転送し、アナログ形式のR,G,Bデータを生成する。RAMDAC回路15は、この生成されたR,G,BデータをCRTに出力する。
以下、3次元コンピュータグラフィックシステム1の全体動作について説明する。
ポリゴンレンダリングデータS4が、メインバス6を介してメインプロセッサ4からDDAセットアップ回路10に出力され、DDAセットアップ回路10において、三角形の辺と水平方向の差分などを示す変分データS10が生成される。
この変分データS10は、トライアングルDDA回路11に出力され、トライアングルDDA回路11において、三角形内部の各画素における線形補間された(z,R,G,B,α,s,t,q)データが算出される。そして、この算出された(z,R,G,B,α,s,t,q)データと、三角形の各頂点の(x,y)データとが、DDAデータS11として、トライアングルDDA回路11からテクスチャエンジン回路12に出力される。
次に、テクスチャエンジン回路12およびメモリI/F回路13において、DDAデータS11を用いて、「s/q」および「t/q」の算出処理、テクスチャ座標データ(u,v)の算出処理、テクスチャバッファ20からのデジタルデータとしての(R,G,B,α)データの読み出し処理、混合処理、および、ディスプレイバッファ21への書き込み処理が、図3に示す演算ブロック200,201,202,,203,204,205でパイプライン方式で順に実行される。
次に、図3に示すテクスチャエンジン回路12およびメモリI/F回路13のパイプライン処理の動作について説明する。
ここでは、例えば、図6に示すような矩形31内の8画素について同時処理する場合を考える。この場合には、valデータS220,S220,S220,S220,S220が「0」を示し、valデータS220,S220,S220が「1」を示している。
valデータS220〜S220および被演算データS221〜S221が、それぞれ対応する演算サブブロック200〜200のクロックイネーブラ210〜210に入力される。
そして、クロックイネーブラ210〜210において、それぞれvalデータS220〜S220のレベルが検出される。具体的には、クロックイネーブラ210,210,210において「1」が検出され、クロックイネーブラ210,210,210,210,210において「0」が検出される。
その結果、演算サブブロック200,200,200においてのみ、被演算データS221,S221,S221を用いて、「s/q」および「t/q」が算出され、当該除算結果S200,S200,S200が演算ブロック201の演算ブロック201,201,201に出力される。
一方、演算サブブロック200,200,200,200,20056では、除算は行なわれない。
また、除算結果S200,S200,S200の出力と同期して、valデータS220〜S220が、演算ブロック201の演算サブブロック201〜201に出力される。
次に、演算サブブロック201〜201のクロックイネーブラ210〜210において、それぞれvalデータS220〜S220のレベルが検出される。
そして、この検出結果に基づいて、演算サブブロック201,201,201においてのみ、除算結果S200,S200,S200が示す「s/q」および「t/q」に、それぞれテクスチャサイズUSIZEおよびVSIZEを乗じて、テクスチャ座標データS202,S202,S202が生成され、それぞれ演算ブロック202の演算サブブロック202,202,202に出力される。
一方、演算サブブロック201,201,201,201,20156では、演算は行なわれない。
また、テクスチャ座標データS202,S202,S202の出力と同期して、valデータS220〜S220が、演算ブロック202の演算サブブロック202〜202に出力される。
次に、演算サブブロック202〜202のクロックイネーブラ212〜212において、それぞれvalデータS220〜S220のレベルが検出される。
そして、この検出結果に基づいて、演算サブブロック202,202,202においてのみ、SRAM17あるいはテクスチャバッファ20に記憶されているテクスチャデータの読み出し処理が行なわれ、(s,t)データに対応したテクスチャアドレスに記憶された(R,G,B,α)データが読み出される。
そして、この読み出した(R,G,B,α)データS202,S202,S202が、演算ブロック204の演算サブブロック203,203,203に出力される。
一方、演算サブブロック202,202,202,202,20256では、読み出し処理は行なわれない。
また、(R,G,B,α)データS202,S202,S202の出力と同期して、valデータS220〜S220が、演算ブロック203の演算サブブロック203〜203に出力される。
次に、演算サブブロック203〜203のクロックイネーブラ212〜212において、それぞれvalデータS220〜S220のレベルが検出される。
そして、この検出結果に基づいて、演算サブブロック203,203,203においてのみ、それぞれ演算ブロック202から入力したテクスチャデータである(R,G,B.α)データS202,202,202と、トライアングルDDA回路11からのDDAデータS11に含まれる(R,G,B)データとを、(R,G,B.α)データS202,202,202に含まれるαデータ(テクスチャα)が示す割合で混合し、(R,G,B)混合データを生成する。
そして、演算サブブロック203,203,203は、生成された(R,G,B)混合データと、対応するDDAデータS11に含まれるαデータとを含む(R,G,B,α)データS203,203,203を、演算ブロック204に出力する。
一方、演算サブブロック203,203,203,203,20356では、混合処理は行なわれない。
次に、演算サブブロック204〜204のクロックイネーブラ214〜214において、それぞれvalデータS220〜S220のレベルが検出される。
そして、この検出結果に基づいて、演算サブブロック204,204,204においてのみ、(R,G,B,α)データS203,S203,S203について、zバッファ22に記憶されたzデータの内容を用いて、z比較が行なわれ、(R,G,B,α)データS203,S203,S203によって描画する画像が、前回、ディスプレイバッファ21に描画した値よりも手前に位置する場合には、zバッファ22が更新されると共に、(R,G,B,α)データS203,S203,S203が、それぞれ(R,G,B,α)データS204,S204,S204として、それぞれ演算サブブロック205の演算サブブロック205,205,205に出力される。
次に、演算サブブロック205〜205のクロックイネーブラ215〜215において、それぞれvalデータS220〜S220のレベルが検出される。
そして、この検出結果に基づいて、(R,G,B,α)データS204,S204,S204の(R,G,B)データと、既にディスプレイバッファ21に記憶されている(R,G,B)データとが、αデータが示す混合値で混合され、(R,G,B)データS205,S205,S205が最終的に算出される。
そして、この混合処理された,(R,G,B)データS205,S20557,S205が、ディスプレイバッファ21に書き込まれる。
一方、演算サブブロック204,204,204,204,20456では、混合処理は行なわれない。
すなわち、テクスチャエンジン回路12およびメモリI/F回路13では、図6に示す矩形31内の画素について同時に処理を行なう場合に、三角形30の外に位置する画素についての処理は行なわない。すなわち、図4に示す矩形31内の画素についての演算を行なっている間は、演算サブブロック200,200,200,200,200,201,201,201,20155,201,202,202,202,202,202,204,204,204,204,204,205,205,20553,205,205は停止した状態になり、これらの演算サブブロックは電力を消費しない。
以上説明したように、3次元コンピュータグラフィックシステム1によれば、テクスチャエンジン回路12におけるパイプライン処理において、同時処理する8画素のうち、処理対象となる三角形の外部に位置する画素についての演算は行なわないようにすることができる。
そのため、テクスチャエンジン回路12における消費電力を大幅に低減できる。その結果、3次元コンピュータグラフィックシステム1の電源として、簡単かつ安価なものを用いることができる。
なお、テクスチャエンジン回路12は、図3および図4に示すように、各演算サブブロックに、クロックイネーブラおよび1ビットのフラグ用フリップフロップを組み込むことで、上述した機能を実現するが、クロックイネーブラおよび1ビットのフラグ用フリップフロップの回路規模は小さいため、テクスチャエンジン回路12の回路規模が大幅に増大することはない。
第2実施形態
図5は、本実施形態の3次元コンピュータグラフィックシステム451のシステム構成図である。
本実施形態の3次元コンピュータグラフィックシステム451は、αブレンド処理を行うか否かを各画素毎に予め判断し、αブレンド(混合)処理を行わないと判断した場合に、αブレンド処理を行う演算サブブロックのうち対応する演算サブブロックの処理を停止させる点を除いて、前述した第1実施形態の3次元コンピュータグラフィックシステム1と同じである。
すなわち、本実施形態では、各演算サブブロックは、第1実施形態の場合と同様に、対応する画素が処理対象となる三角形の外部に位置する場合には処理を停止する。また、演算サブブロックのうちαブレンド処理を行う演算サブブロックは、対応する画素が処理対象となる三角形の外部に位置するか、あるいは対応する画素のαデータが「0」である場合に処理を停止する。
図5に示すように、3次元コンピュータグラフィックシステム451は、メインメモリ2、I/Oインタフェース回路3、メインプロセッサ4およびレンダリング回路425がメインバス6を介して接続されている。
図5において、図1と同じ符号を付した構成要素は、第1実施形態で説明した同一符号を付した構成要素と同じである。
すなわち、メインメモリ2、I/Oインタフェース回路3、メインプロセッサ4およびメインバス6は、第1実施形態で説明したものと同じである。
また、図5に示すように、レンダリング回路425は、DDAセットアップ回路10、トライアングルDDA回路411、テクスチャエンジン回路12、メモリI/F回路413、CRTコントローラ回路14、RAMDAC回路15、DRAM16およびSRAM17を有する。
ここで、DDAセットアップ回路10、テクスチャエンジン回路12、CRTコントローラ回路14、RAMDAC回路15、DRAM16およびSRAM17は、第1実施形態で説明したものと同じである。
以下、トライアングルDDA回路411およびメモリI/F回路413について説明する。
トライアングルDDA回路411
トライアングルDDA回路411は、前述した第1実施形態のトライアングルDDA回路11と同様に、DDAセットアップ回路10から入力した変分データS10を用いて、三角形内部の各画素の線形補間された(z,R,G,B,α,s,t,q)データを算出する。
トライアングルDDA回路411は、各画素の(x,y)データと、当該(x,y)座標の画素についての(z,R,G,B,α,s,t,q,val)データとを、DDAデータ(補間データ)S11としてテクスチャエンジン回路12に出力する。
本実施形態では、トライアングルDDA回路411は、並行して処理を行う矩形内に位置する8画素分のDDAデータS11を単位としてテクスチャエンジン回路12に出力する。
なお、以下、並行して処理を行う8画素についての(z,R,G,B,α,s,t,q,val)データのうち、valデータをvalデータS220〜S220とし、(z,R,G,B,α,s,t,q)データを被演算データS221〜S221とする。
すなわち、トライアングルDDA回路11は、8画素分の(x,y)データと、valデータS220〜S220と、被演算データS221〜S221とからなるDDAデータS11をテクスチャエンジン回路12に出力する。
また、トライアングルDDA回路411は、並行して処理を行う8画素について、上述したように線形補間して生成した(z,R,G,B,α,s,t,q)データのうちαデータが「0」であるか否か、すなわちαブレンド処理を行うか否かを判断する。
そして、トライアングルDDA回路411は、αデータが「0」であると判断した場合に、「0」(αブレンド処理を行わないことを)を示すvalデータ411a〜S411aをメモリI/F回路413に出力し、αデータが「0」ではないと判断した場合に、「1」(αブレンド処理を行うことを)を示すvalデータ411a〜S411aをメモリI/F回路413に出力する。
メモリI/F回路413
図6は、テクスチャエンジン回路12およびメモリI/F回路413の構成図である。
図6に示すように、メモリI/F回路413は、演算ブロック204および演算ブロック405を有する。
なお、図6において、図3と同じ符号を付した構成要素は、第1実施形態で説明した同一符号を構成要素と同じである。
すなわち、テクスチャエンジン回路12は、第1実施形態で説明したものと同じであり、メモリI/F回路413の演算ブロック204も第1実施形態で説明したものと同じである。
以下、メモリI/F回路413の演算ブロック405について説明する。
〔演算ブロック405〕
演算ブロック405は、演算サブブロック405〜405を有し、演算サブブロック204〜204から入力した(R,G,B,α)データS204〜S204と、既にディスプレイバッファ21に記憶されている(R,G,B)データとを、それぞれ(R,G,B,α)データS204〜S204に含まれるαデータが示す混合値で混合し、混合後の(R,G,B)データS405〜S405をディスプレイバッファ21に書き込む(打ち込む)。
このとき、演算サブブロック405〜405は、それぞれクロックイネーブラ415〜415により、それぞれ演算ブロック204からのvalデータS220〜S220および図5に示すトライアングルDDA回路411からのvalデータS411a〜S411aのレベルを検出し、双方のレベルが「1」の場合にのみαブレンド処理を行う。
ここで、双方のレベルが「1」の場合とは、当該画素が処理対象となる三角形の内部に位置し、しかも、当該画素のαデータが「0」でない(αブレンド処理を行うことを示す)場合である。
すなわち、演算サブブロック405〜405は、それぞれvalデータS220〜S220およびvalデータS411a〜S411aのうちいずれか一方が「0」の場合には、αブレンド処理を行わない。
なお、演算サブブロック405〜405は、valデータS220〜S220のレベルが「1」であり、valデータS411a〜S411aのレベルが「0」の場合には、演算サブブロック204〜204から入力した(R,G,B,α)データS204〜S204をディスプレイバッファ21に書き込む。
以下、3次元コンピュータグラフィックシステム451の動作について説明する。
3次元コンピュータグラフィックシステム451の全体動作は、基本的に前述した第1実施形態で説明した3次元コンピュータグラフィックシステム1の全体動作と同じである。
また、図6に示すテクスチャエンジン回路12およびメモリI/F回路413のパイプライン処理の動作は、演算ブロック200〜204の処理については、前述した第1実施形態で説明した動作と同じである。
以下、演算ブロック405の動作について説明する。
それぞれ図6に示す演算サブブロック204〜204から演算サブブロック415〜415に、(R,G,B,α)データS204〜S204およびvalデータS220〜S220が出力される。
また、図5に示すトライアングルDDA回路411において、線形補間して生成した(z,R,G,B,α,s,t,q)データのうちαデータが「0」であるか否かが判断され、当該判断の結果を示すvalデータ411a〜S411aが図6に示す演算サブブロック415〜415にそれぞれ出力される。

そして、演算サブブロック415〜415において、それぞれクロックイネーブラ415〜415により、valデータS220〜S220およびvalデータS411a〜S411aのレベルが検出され、双方のレベルが「1」の場合にのみαブレンド処理が行われる。
αブレンド処理では、(R,G,B,α)データS204〜S204と、既にディスプレイバッファ21に記憶されている(R,G,B)データとが、それぞれ(R,G,B,α)データS204〜S204に含まれるαデータが示す混合値で混合されて(R,G,B)データS405〜S405が生成される。そして、(R,G,B)データS405〜S405が、ディスプレイバッファ21に書き込まれる。
すなわち、本実施形態では、演算サブブロック415〜415のそれぞれにおいて、valデータS220〜S220およびvalデータS411a〜S411aのうち何れか一方が「0」の場合には、αブレンド処理は行われない。
以上説明したように、3次元コンピュータグラフィックシステム451によれば、トライアングルDDA回路411において、各画素についてαデータが「0」であるか否かを判断する。
そして、メモリI/F回路413において、同時処理する8画素のうち処理対象となる三角形の内部に位置する画素であっても、トライアングルDDA回路411による上記判断の結果に基づいて、αデータが「0」の画素についてのαブレンド処理を行わないようにすることができる。
そのため、3次元コンピュータグラフィックシステム451によれば、前述した第1実施形態の3次元コンピュータグラフィックシステム1に比べてさらに、消費電力を低減できる。
第3実施形態
図7は、本実施形態の3次元コンピュータグラフィックシステム551のシステム構成図である。
本実施形態の3次元コンピュータグラフィックシステム551では、例えば、処理対象となっている画素のzデータとzバッファに記憶されている対応するzデータとの比較を行い、今回描画しようとする画像が前回描画した画像より奥側(視点側と反対の方向)にある場合には、当該画素についてのテクスチャ座標データ(u,v)の生成処理、テクスチャデータの読み出し処理、テクスチャαブレンド処理およびαブレンド処理を停止する。
図7に示すように、3次元コンピュータグラフィックシステム551は、メインメモリ2、I/Oインタフェース回路3、メインプロセッサ4およびレンダリング回路525がメインバス6を介して接続されている。
図7において、図1と同じ符号を付した構成要素は、第1実施形態で説明した同一符号を付した構成要素と同じである。
すなわち、メインメモリ2、I/Oインタフェース回路3、メインプロセッサ4およびメインバス6は、第1実施形態で説明したものと同じである。
また、図7に示すように、レンダリング回路525は、DDAセットアップ回路10、トライアングルDDA回路11、テクスチャエンジン回路512、メモリI/F回路513、CRTコントローラ回路14、RAMDAC回路15、DRAM16およびSRAM17を有する。
ここで、DDAセットアップ回路10、トライアングルDDA回路11、CRTコントローラ回路14、RAMDAC回路15、DRAM16およびSRAM17は、第1実施形態で説明したものと同じである。
以下、テクスチャエンジン回路512およびメモリI/F回路513について説明する。
図8は、テクスチャエンジン回路512およびメモリI/F回路513の構成図である。
図8に示すように、テクスチャエンジン回路512は、演算ブロック500、501、502、503、504を有する。
また、メモリI/F回路513は、演算ブロック505を有する。
本実施形態では、演算ブロック500〜505は、それぞれ8画素についての処理を同時に行い、パイプライン処理が行われるように直列に接続されている。
ここで、演算ブロック500ではz比較処理が行われ、演算ブロック501では「s/q」および「t/q」の算出処理が行われ、演算ブロック502ではテクスチャ座標データ(u,v)の算出処理が行われ、演算ブロック503ではテクスチャバッファ20からの(R,G,B,α)データの読み出し処理が行われ、演算ブロック504ではテクスチャαブレンド処理が行われ、演算ブロック505ではαブレンド処理が行われる。
〔演算ブロック500〕
演算ブロック500は、演算サブブロック500〜500を有し、図7に示すトライアングルDDA回路11からDDAデータS11を入力する。
演算サブブロック500〜500は、それぞれクロックイネーブラ214〜214において、DDAデータS11に含まれるvalデータS22051〜S220のレベル検出を行い、その結果、当該レベルが「1」の場合(当該画素が、処理対象となる三角形の内部に位置する場合)にはz(奥行き)比較処理を行い、当該レベルが「1」でない場合にはz比較処理を行わない。
演算サブブロック500〜500は、z比較処理において、DDAデータS11に含まれる被演算データS221〜S221のzデータと、zバッファ22に記憶された対応するzデータとを比較する。
そして、演算サブブロック500〜500は、被演算データS221〜S221によって描画する画像が、前回、ディスプレイバッファ21に描画した値よりも手前(視点側)に位置する場合には、それぞれ「1」を示すvalデータS500a〜S500aを演算ブロック501の演算サブブロック501〜501に出力し、それぞれ被演算データS221〜S221のzデータで、zバッファ22に記憶されている対応するzデータを書き換える。このとき、演算サブブロック500〜500は、さらに被演算データS22151〜S221を演算サブブロック501〜501に出力する。
一方、演算サブブロック500〜500は、被演算データS221〜S221によって描画する画像が、前回、ディスプレイバッファ21に描画した値よりも手前(視点側)に位置しない場合には、それぞれ「0」を示すvalデータS500a〜S500aを演算ブロック501の演算サブブロック501〜501に出力し、zバッファ22に記憶されている対応するzデータを書き換えない。
〔演算ブロック501〕
演算ブロック501は、DDAデータS11が示す(s,t,q)データを用いて、sデータをqデータで除算する演算と、tデータをqデータで除算する演算とを行う。
演算ブロック501は、図8に示すように、8個の演算サブブロック50151〜501を内蔵する。
ここで、演算サブブロック501は、被演算データS221およびvalデータS220,S500aを入力し、クロックイネーブラ511〜511により、valデータS220およびS500aの双方が「1」、すなわち有効であるか否かを判断し、双方が「1」であると判断した場合に、「s/q」および「t/q」を算出し、これを除算結果S501として演算ブロック502の演算サブブロック502に出力する。
また、演算サブブロック501は、valデータS220およびS500aのいずれか一方が「0」、すなわち無効であることを示すと判断した場合には演算は行わず、除算結果S501を出力しないか、あるいは、所定の仮値を示す除算結果S501を演算ブロック502の演算サブブロック502に出力する。
なお、演算サブブロック501〜501も、それぞれ対応する画素について、演算サブブロック501と同じ演算を行い、それぞれ除算結果S50152〜S501を後段の演算ブロック502の演算サブブロック502〜502にそれぞれ出力する。
〔演算ブロック502〕
演算ブロック502は、演算サブブロック502〜502を有し、演算ブロック501から入力した除算結果S501〜S501が示す「s/q」および「t/q」に、それぞれテクスチャサイズUSIZEおよびVSIZEを乗じて、テクスチャ座標データ(u,v)を生成する。
演算サブブロック502は、クロックイネーブラ512においてvalデータS220およびS500aのレベル検出を行い、双方のレベルが「1」の場合にのみ演算を行い、それぞれ演算結果であるテクスチャ座標データS502を、演算ブロック503の演算サブブロック503に出力する。
演算サブブロック502〜502も、演算サブブロック502と同様に、対応するデータの処理を行う。
〔演算ブロック503〕
演算ブロック503は、演算サブブロック503〜503を有し、メモリI/F回路13を介して、SRAM17あるいはDRAM16に、演算ブロック502で生成したテクスチャ座標データ(u,v)を含む読み出し要求を出力し、メモリI/F回路13を介して、SRAM17あるいはテクスチャバッファ20に記憶されているテクスチャデータを読み出すことで、(u,v)データに対応したテクスチャアドレスに記憶された(R,G,B,α)データS17を得る。
演算サブブロック503は、クロックイネーブラ513においてvalデータS220およびS500aのレベル検出を行い、双方のレベルが「1」の場合にのみ読み出し処理を行い、それぞれ読み出した(R,G,B,α)データS17を、(R,G,B.α)データS503として、演算ブロック203の演算サブブロック504に出力する。
演算サブブロック503〜503も、演算サブブロック503と同様に、対応するデータの処理を行う。
〔演算ブロック504〕
演算ブロック504は、演算サブブロック504〜504を有し、演算ブロック503から入力したテクスチャデータである(R,G,B.α)データS503〜S503と、トライアングルDDA回路11からの対応するDDAデータS11に含まれる(R,G,B)データとを、(R,G,B.α)データS503〜S503に含まれるαデータ(テクスチャα)が示す割合で混合し、(R,G,B)混合データを生成する。
そして、演算ブロック504は、生成された(R,G,B)混合データと、対応するDDAデータS11に含まれるαデータとを含む(R,G,B,α)データS504〜S504を、演算ブロック505に出力する。
演算サブブロック504〜504は、それぞれクロックイネーブラ514〜514によりvalデータS220〜S220およびS500a〜S500aのレベル検出を行い、双方のレベルが「1」の場合にのみ上記混合処理を行う。
〔演算ブロック505〕
演算ブロック505は、演算サブブロック505〜505を有し、入力した(R,G,B,α)データS504〜S504と、既にディスプレイバッファ21に記憶されている(R,G,B)データとを、それぞれ(R,G,B,α)データS504〜S504に含まれるαデータが示す混合値で混合し、混合後の(R,G,B)データS505〜S505をディスプレイバッファ21に書き込む(打ち込む)。
演算サブブロック505〜505は、それぞれクロックイネーブラ215〜215においてvalデータS220〜S220およびS500a51〜S500aのレベルを検出し、双方のレベルが「1」の場合にのみ上記混合処理およびディスプレイバッファ21への書き込み処理を行う。
以下、図8に示すテクスチャエンジン回路512およびメモリI/F回路513のパイプライン処理の動作について説明する。
先ず、演算サブブロック500〜500のクロックイネーブラ214〜214において、それぞれDDAデータS11に含まれるvalデータS220〜S220のレベル検出が行われ、当該レベルが「1」の場合(当該画素が、処理対象となる三角形の内部に位置する場合)にはz比較処理が行われる。
そして、被演算データS221〜S221によって描画する画像が、前回、ディスプレイバッファ21に描画した値よりも手前(視点側)に位置する場合には、それぞれ「1」を示すvalデータS500a〜S500aが演算ブロック501の演算サブブロック501〜501に出力され、それぞれ被演算データS221〜S221のzデータで、zバッファ22に記憶されている対応するzデータが書き換えられる。このとき、さらに被演算データS221〜S221が、演算サブブロック500〜500から演算サブブロック501〜501に出力される。
一方、valデータS220〜S220のレベルが「1」でない場合にはz比較処理は行われず、それぞれ「0」を示すvalデータS500a〜S500aが演算ブロック501の演算サブブロック501〜501に出力される。このとき、zバッファ22に記憶されている対応するzデータは書き換えられない。
次に、演算サブブロック501〜501のクロックイネーブラ511〜511において、valデータS220およびS500aの双方が「1」、すなわち有効であるか否かが判断され、双方が「1」であると判断された場合に、「s/q」および「t/q」が算出され、これが除算結果S501〜S501として演算ブロック502の演算サブブロック502〜502に出力される。
一方、valデータS220〜S220およびS500a〜S500aのいずれか一方が「0」、すなわち無効であることを示すと判断された場合には、それぞれ演算サブブロック501〜501では演算は行われない。
次に、演算サブブロック502〜502のクロックイネーブラ512〜512においてvalデータS220〜S220およびS500a〜S500aのレベル検出が行われる。
そして、双方のレベルが「1」の場合にのみ、演算サブブロック502〜502において、それぞれ演算ブロック501から入力した除算結果S50151〜S501が示す「s/q」および「t/q」に、それぞれテクスチャサイズUSIZEおよびVSIZEが乗算され、テクスチャ座標データ(u,v)が生成される。テクスチャ座標データ(u,v)は、それぞれ演算サブブロック503〜503に出力される。
次に、演算サブブロック503〜503のクロックイネーブラ513〜513において、valデータS220〜S220およびS500a〜S500aのレベル検出が行われ、双方のレベルが「1」の場合にのみ、テクスチャ座標データ(u,v)を含む読み出し要求がSRAM17に出力され、メモリI/F回路13を介してテクスチャデータが読み出され、(u,v)データに対応したテクスチャアドレスに記憶された(R,G,B,α)データS17が得られる。(R,G,B,α)データS17は、(R,G,B.α)データS503〜S503として、演算サブブロック504〜504に出力される。
次に、演算サブブロック504〜504のクロックイネーブラ514〜514によりvalデータS220〜S220およびS500a〜S500aのレベル検出が行われ、双方のレベルが「1」の場合にのみ、(R,G,B.α)データS503〜S503と、トライアングルDDA回路11からの対応するDDAデータS11に含まれる(R,G,B)データとが、(R,G,B.α)データS503〜S503に含まれるαデータ(テクスチャα)が示す割合で混合され、(R,G,B)混合データが生成される。
そして、当該生成された(R,G,B)混合データと、対応するDDAデータS11に含まれるαデータとを含む(R,G,B,α)データS504〜S504が、演算サブブロック504〜504から演算サブブロック50551〜505に出力される。
次に、演算サブブロック505〜505のクロックイネーブラ215〜215において、valデータS220〜S220およびS500a〜S500aのレベルが検出され、双方のレベルが「1」の場合にのみ、(R,G,B,α)データS504〜S504と、既にディスプレイバッファ21に記憶されている(R,G,B)データとが、それぞれ(R,G,B,α)データS504〜S504に含まれるαデータが示す混合値で混合され、混合後の(R,G,B)データS505〜S505がディスプレイバッファ21に書き込まれる。
以上説明したように、3次元コンピュータグラフィックシステム551によれば、テクスチャエンジン回路512の初段の演算ブロック500において各画素に関するz比較処理を行い、後の処理によって生成される画像データがディスプレイバッファ21に書き込まれるものであるかを判断する。
そして、テクスチャエンジン回路512およびメモリI/F回路513において、同時処理する8画素のうち処理対象となる三角形の内部に位置する画素であっても、演算ブロック500による上記判断の結果に基づいて、ディスプレイバッファ21に書き込まない画像データに関する処理を行わないように(停止)する。
そのため、3次元コンピュータグラフィックシステム551によれば、前述した第1実施形態の3次元コンピュータグラフィックシステム1に比べてさらに、消費電力を低減できる。
本発明は上述した実施形態には限定されない。
例えば、前述した第2実施形態では、図6に示すように、テクスチャエンジン回路12およびメモリI/F回路413の各演算ブロックで8画素のデータについて同時に処理する場合について例示したが、図9に示すように、各演算ブロックで1画素のデータの処理を行うようにしてもよい。
この場合には、処理対象となる画素の被演算データS221のみがテクスチャエンジン回路12に入力されるため、valデータS220は不要となる。すなわち、演算サブブロック200,201,202,203,204では常に演算が行われ、演算サブブロック405ではvalデータS400aのレベルが「1」の場合にのみαブレンド処理が行われる。
また、前述した第3実施形態では、図8に示すように、テクスチャエンジン回路512およびメモリI/F回路513の各演算ブロックで8画素のデータについて同時に処理する場合について例示したが、図10に示すように、各演算ブロックで1画素のデータの処理を行うようにしてもよい。
この場合には、処理対象となる画素の被演算データS221のみがテクスチャエンジン回路512に入力されるため、valデータS220は不要となる。すなわち、演算サブブロック500ではz比較処理が常に行われ、演算サブブロック501,502,503,504,505では、演算サブブロック500で生成されたvalデータS500aのレベルが「1」の場合にのみ処理が行われる。
また、例えば、上述した実施形態では、図3に示すように、テクスチャエンジン回路12およびメモリI/F回路13におけるパイプライン処理を行なう演算サブブロックについて、valデータS220〜S220を利用する場合を例示したが、例えば、図1にレンダリング回路5内のDDAセットアップ回路10、トライアングルDDA回路11、テクスチャエンジン回路12およびメモリI/F回路13における処理のうち、パイプライン処理を行なわない所定の処理について、図11に示すように、valデータS320〜S320を用いて、演算処理の実行の有無を決定するようにしてもよい。
また、上述した実施形態では、SRAM17を用いる構成を例示したが、SRAM17を設けない構成にしてもよい。
また、テクスチャバッファ20およびテクスチャCLUTバッファ23を、DRAM16の外部に設けてもよい。
また、上述した実施形態では、3次元画像を表示する場合を例示したが、本発明は複数画素についてのデータを同時に処理して2次元画像を表示する場合にも適用できる。
また、上述した実施形態では、図2に示すように、画像処理の対象となる(z,R,G,B,α,s,t,q)データに、有効指示データとしてのvalデータを付加したDDAデータS11を用いた場合を例示したが、(z,R,G,B,α,s,t,q)データと、valデータとを別個独立のデータとして扱うようにしてもよい。
また、上述した実施形態では、ポリゴンレンダリングデータを生成するジオメトリ処理を、メインプロセッサ4で行なう場合を例示したが、レンダリング回路5で行なう構成にしてもよい。
さらに、上述した実施形態では、単位図形として三角形を例示したが、単位図形は特に限定されず、例えば、矩形であってもよい。
以上説明したように、本発明の映像信号処理装置およびその方法によれば、消費電力の大幅な低下を図ることができる。
そのため、本発明の映像信号処理装置によれば、小規模かつ簡単な構成の電源を用いることができ、小規模化を図ることができる。
図1は、本発明の第1実施形態の3次元コンピュータグラフィックシステムのシステム構成図である。 図1に示すトライアングルDDA回路から出力されるDDAデータのフォーマットを説明するための図である。 図3は、図1に示すテクスチャエンジン回路およびメモリI/F回路の部分構成図である。 図4は、図3に示す演算サブブロックの内部構成図である。 図5は、本発明の第2実施形態の3次元コンピュータグラフィックシステムのシステム構成図である。 図6は、図5に示すテクスチャエンジン回路およびメモリI/F回路の部分構成図である。 図7は、本発明の第3実施形態の3次元コンピュータグラフィックシステムのシステム構成図である。 図8は、図7に示すテクスチャエンジン回路およびメモリI/F回路の部分構成図である。 図9は、図5に示す3次元コンピュータグラフィックシステムの変形例の構成図である。 図10は、図7に示す3次元コンピュータグラフィックシステムの変形例の構成図である。 図11は、図1に示す3次元コンピュータグラフィックシステムにおけるクロックイネーブラーを適用した、パイプライン処理を行なっていない演算ブロックの構成図である。 図12は、従来技術の問題点を説明するための図である。
符号の説明
1…3次元コンピュータグラフィックシステム、2…メインメモリ、3…I/Oインタフェース回路、4…メインプロセッサ、5…レンダリング回路、10…DDAセットアップ回路、11…トライアングルDDA回路、12…テクスチャエンジン回路、13…メモリI/F回路、14…CRTコントローラ回路、15…RAMDAC回路、16…DRAM、17…SRAM、20…テクスチャバッファ、21…ディスプレイバッファ、22…Zバッファ、23…テクスチャCLUTバッファ、200〜205…演算ブロック、200〜200,201〜201,202〜202,203〜203,204〜204,205〜205…演算サブブロック、210〜210,211〜211,212〜212,213〜213,214〜214,215〜215…クロックイネーブラ、222…データ用フリップフロップ、223…プロセッサエレメント、224…フラグ用フリップフロップ

Claims (8)

  1. 表示手段に表示する画像を所定形状の単位図形を組み合わせて表現し、同一の前記単位図形内に位置する複数の画素の画素データを同一の処理条件に基づいて処理する映像信号処理装置において、
    同時に処理を行なおうとする前記複数の画素データのそれぞれについて、対応する画素が前記単位図形の内側に位置するか否かを判断する画素位置判断手段と、
    前記同時に処理を行おうとする前記複数の画素データを相互に並列に処理する複数の画素データ処理回路と、
    前記画素位置判断手段の判断結果に基づいて、前記複数の画素データ処理回路のうち前記処理対象となっている単位図形の内側に位置する画素の画素データを処理する前記画素データ処理回路以外の前記画素データ処理回路の動作を停止する制御手段と
    を有し、
    前記画素位置判断手段は、対応する画素が前記単位図形の内側に位置するとき前記対応する画素データ処理回路で処理される前記画素データに有効性指示データを付加し、
    前記制御手段は、前記有効性指示データに基づいて、前記対応する画素データ処理回路の動作を停止するか否かを判断する、
    映像信号処理装置。
  2. 当該映像信号処理装置は、システムクロックから、前記複数の画素データ処理回路の各画素データ処理回路を動作させる画素データ処理回路駆動クロック信号と、前記画素位置判断手段の判断結果に基づく各画素データ処理回路の動作を制御する制御クロックとを生成するクロック生成手段をさらに有し、
    前記各画素データ処理回路は、対応する各画素データ処理回路駆動クロック信号に基づいて動作し、
    前記制御手段は、
    前記処理対象となっている単位図形の内側に位置する画素の画素データを処理する前記画素データ処理回路に対応する画素データ処理回路駆動クロック信号を供給し、
    前記処理対象となっている単位図形の内側に位置しない画素の画素データを処理する前記画素データ処理回路への前記対応する画素データ処理回路駆動クロック信号の供給を停止する、
    請求項1に記載の映像信号処理装置。
  3. 前記複数の画素データ処理回路の各々は、パイプライン処理を行うように相互に直列に接続された複数の信号処理回路を有する、
    請求項2に記載の映像信号処理装置。
  4. 前記画素データ処理回路内の直列に接続された複数の信号処理回路は、それぞれフラグ記憶部を有し、
    前記複数の信号処理回路の前記フラグ記憶部が直列接続されて前記各画素データ処理回路を制御するフラグが転送されることにより前記パイプライン処理および前記画素データ処理回路駆動クロック信号の供給の制御を行う、
    請求項3に記載の映像信号処理装置。
  5. 表示手段に表示する画像を所定形状の単位図形を組み合わせて表現し、複数の画素データ処理回路を用いて同一の前記単位図形内に位置する複数の画素の画素データを同一の処理条件に基づいて処理する映像信号処理方法において、
    同時に処理を行なおうとする前記複数の画素データのそれぞれについて、対応する画素が前記単位図形の内側に位置するか否かを判断し、対応する画素が前記単位図形の内側に位置するとき前記画素データ処理回路で処理される画素データに有効性指示データを付加し、
    前記有効性指示データの有無に基づいて、前記複数の画素データ処理手段のうち前記処理対象となっている単位図形の内側に位置する画素の画素データを処理する前記画素データ処理回路以外の前記画素データ処理回路の動作を停止するか否かを判断し、
    前記判断の結果、動作を行う前記複数の画素データ処理回路が前記同時に処理を行おうとする前記複数の画素データを相互に並列に処理する、
    ことを特徴とする映像信号処理方法。
  6. 前記各画素データ処理回路がシステムクロックから生成される対応する画素データ処理回路駆動クロック信号に基づいて動作し、
    前記処理対象となっている単位図形の内側に位置する画素の画素データを処理する前記画素データ処理回路に対応する画素データ処理回路駆動クロック信号を供給し、
    前記処理対象となっている単位図形の内側に位置しない画素の画素データを処理する前記画素データ処理回路への前記対応する画素データ処理回路駆動クロック信号の供給を停止する、
    請求項5に記載の映像信号処理方法。
  7. 前記複数の画素データ処理回路の各々は、直列に接続された複数の信号処理回路でパイプライン処理を行う、
    請求項6に記載の映像信号処理方法。
  8. 前記画素データ処理回路内の直列に接続された前記複数の信号処理回路は、それぞれフラグ記憶部を有し、
    前記複数の信号処理回路の前記フラグ記憶部が直列接続されて前記各画素データ処理回路を制御するフラグが転送されることにより、前記パイプライン処理および前記対応する画素データ処理回路駆動クロック信号の供給の制御を行う、
    請求項7に記載の映像信号処理方法。
JP2007281031A 1998-04-03 2007-10-29 映像信号処理装置および映像信号処理方法 Expired - Lifetime JP4380757B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007281031A JP4380757B2 (ja) 1998-04-03 2007-10-29 映像信号処理装置および映像信号処理方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP9184498 1998-04-03
JP2007281031A JP4380757B2 (ja) 1998-04-03 2007-10-29 映像信号処理装置および映像信号処理方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP05179599A Division JP4505866B2 (ja) 1998-04-03 1999-02-26 画像処理装置および映像信号処理方法

Publications (2)

Publication Number Publication Date
JP2008097619A JP2008097619A (ja) 2008-04-24
JP4380757B2 true JP4380757B2 (ja) 2009-12-09

Family

ID=39380328

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007281031A Expired - Lifetime JP4380757B2 (ja) 1998-04-03 2007-10-29 映像信号処理装置および映像信号処理方法

Country Status (1)

Country Link
JP (1) JP4380757B2 (ja)

Also Published As

Publication number Publication date
JP2008097619A (ja) 2008-04-24

Similar Documents

Publication Publication Date Title
US6181352B1 (en) Graphics pipeline selectively providing multiple pixels or multiple textures
US5594854A (en) Graphics subsystem with coarse subpixel correction
US6115047A (en) Method and apparatus for implementing efficient floating point Z-buffering
TWI281639B (en) Method for managing state variables for rendering primitives, apparatus for rendering a scene including primitives, and machine readable medium
JPH0935075A (ja) 高性能プリミティブ・クリッピング・プリプロセシングを有するコンピュータ・グラフィックス・システム
WO2000019377B1 (en) Graphics processor with deferred shading
US5949421A (en) Method and system for efficient register sorting for three dimensional graphics
US6847369B2 (en) Optimized packing of loose data in a graphics queue
US5847717A (en) Data synchronization between a plurality of asynchronous data renderers
JP4707782B2 (ja) 画像処理装置およびその方法
JP4505866B2 (ja) 画像処理装置および映像信号処理方法
US6661423B2 (en) Splitting grouped writes to different memory blocks
US6677953B1 (en) Hardware viewport system and method for use in a graphics pipeline
JP4386124B2 (ja) 映像信号処理装置および映像信号処理方法
US6850244B2 (en) Apparatus and method for gradient mapping in a graphics processing system
JP4380757B2 (ja) 映像信号処理装置および映像信号処理方法
JP4333793B2 (ja) 映像信号処理装置および映像信号処理方法
JP4069486B2 (ja) 記憶回路制御装置およびグラフィック演算装置
US6460063B1 (en) Division circuit and graphic display processing apparatus
JP3741053B2 (ja) 画像処理装置
JP4622165B2 (ja) 画像メモリ制御装置、グラフィック演算装置およびレンダリング処理方法
JPH11306366A (ja) グラフィック演算装置およびその方法
JP4042204B2 (ja) グラフィック演算装置およびその方法
JP4325038B2 (ja) 画像処理装置
JPH11328438A (ja) 高効率浮動小数点zバッファリングの方法および装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090526

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090727

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090901

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090914

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121002

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121002

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131002

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term