映像信号処理装置および映像信号処理方法
【課題】無用な電力消費を削減できる映像信号処理装置とその方法を提供する。
【解決手段】映像信号処理装置は、同時に処理を行うとする複数の画素毎にそれぞれ設けられ、複数の第1の画素データと対応する複数の第2の画素データとを、各画素毎に設定された混合比データが示す混合比で混合して複数の第3の画素データを生成する複数の画素データ処理回路(PE)と、前記第1の画素データまたは前記第2の画素データに基づいて、前記画素データ処理回路による前記混合を行うか否かを判断し、前記混合を行わないと判断した場合に、当該画素データ処理回路の動作を停止する制御手段とを有する。好ましくは、前記混合を行わないと判断した場合に、PEに画素データ回路手段駆動クロック信号の供給を停止する。
【解決手段】映像信号処理装置は、同時に処理を行うとする複数の画素毎にそれぞれ設けられ、複数の第1の画素データと対応する複数の第2の画素データとを、各画素毎に設定された混合比データが示す混合比で混合して複数の第3の画素データを生成する複数の画素データ処理回路(PE)と、前記第1の画素データまたは前記第2の画素データに基づいて、前記画素データ処理回路による前記混合を行うか否かを判断し、前記混合を行わないと判断した場合に、当該画素データ処理回路の動作を停止する制御手段とを有する。好ましくは、前記混合を行わないと判断した場合に、PEに画素データ回路手段駆動クロック信号の供給を停止する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、映像信号処理技術に関するものであり、特に、低消費電力化を図ることができる映像信号処理装置およびその方法に関する。
【背景技術】
【0002】
種々のCAD(Computer Aided Design) システムや、アミューズメント装置などにおいて、コンピュータグラフィックスがしばしば用いられている。特に、近年の画像(映像)信号処理技術の進展に伴い、3次元コンピュータグラフィックスを用いたシステムが急速に普及している。
【0003】
このような3次元コンピュータグラフィックスでは、映像信号の各画素(ピクセル)に対応する色を決定するときに、各画素の色の値を計算し、この計算した色の値を、当該画素に対応するディスプレイバッファ(フレームバッファ)のアドレスに書き込むレンダリング(Rendering) 処理を行う。
レンダリング処理の手法の一つに、ポリゴン(Polygon 、多角形) レンダリングがある。この手法では、立体モデルを三角形の単位図形(ポリゴン)を組み合わせた多角形で表現し、このポリゴンを単位として処理を行い、描画することで、表示画面の色を決定する。
【0004】
ポリゴンレンダリングでは、物理座標系における三角形を組み合わせた多角形の各頂点についての、座標(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)を用いてテクスチャバッファからテクスチャデータを読み出し、この読み出したテクスチャデータを、立体モデルの表面に三角形を単位として張り付けるテクスチャマッピング処理を行う。
なお、立体モデルでのテクスチャマッピング処理では、各画素毎に、張り付けを行なうテクスチャデータが示す画像の拡大縮小率が変化する。
【0005】
ところで、このような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画素の全てについて、ポリゴンレンダリング処理を無条件に行っていた。
【0006】
しかしながら、上述したように、三角形を単位図形として多角形についてのポリゴンレンダリング処理を行なう場合に、矩形内に位置する複数の画素の全てについての処理を、対象となっている三角形の内部に位置するか否かとは無関係に実行すると、膨大な数の無効な演算を行うことになり、その処理を行う映像信号装置の消費電力に大きな影響を及ぼす。
また、3次元コンピュータグラフィックシステムでは、上述した理由の他にも、種々の要因で不要な演算を行うことがある。
【0007】
そのため、不要な画像処理を行わない技術が、たとえば、特許文献1、2に提案されている。しかしながら、特許文献1、2において提案されている技術は、画素データごとに、かつ、自動的に画像処理の有無を判断する技術ではない。
【0008】
特に、近年、3次元コンピュータグラフィックシステムの動作クロック周波数は非常に高くなっているため、消費電力の増加が著しく、3次元コンピュータグラフィックシステムにおける消費電力の低下が大きな課題になっている。
【0009】
【特許文献1】特開平06−309349号公報
【特許文献2】国際公開第98/06065号公報
【発明の開示】
【発明が解決しようとする課題】
【0010】
本発明は上述した従来技術の問題点に鑑みてなされ、消費電力の大幅な低下を図れることができる映像信号処理装置およびその方法を提供することを目的とする。
【課題を解決するための手段】
【0011】
本発明によれば、同時に処理を行うとする複数の画素毎にそれぞれ設けられ、複数の第1の画素データと対応する複数の第2の画素データとを、各画素毎に設定された混合比データが示す混合比で混合して複数の第3の画素データを生成する複数の画素データ処理回路と、前記第1の画素データまたは前記第2の画素データに基づいて、前記画素データ処理回路による前記混合を行うか否かを判断し、前記混合を行わないと判断した場合に、当該画素データ処理回路の動作を停止する制御手段とを有する映像信号処理装置が提供される。
【0012】
好ましくは、システムクロックから各画素データ処理回路を動作させる画素データ処理回路駆動クロック信号を生成するクロック生成手段をさらに有し、前記各画素データ処理回路は対応する画素データ処理回路駆動用クロック信号に基づいて動作し、前記制御手段は、前記混合を行うと判断した場合に、当該画素データ処理回路に前記画素データ処理回路駆動用クロック信号を供給し、前記混合を行わないと判断した場合に、当該画素データ処理回路への前記対応する画素データ処理回路駆動用クロック信号の供給を停止する。
【0013】
また好ましくは、前記画素データ処理回路の各々は、パイプライン処理を行うように相互に直列に接続された複数の処理回路を有する。
【0014】
好ましくは、前記画素データ処理回路内の直列に接続された複数の処理回路は、各処理回路を制御するフラグが転送されることにより、前記パイプライン処理および前記画素データ処理回路駆動用クロック信号の供給の制御を行う。
【0015】
さらに好ましくは、前記第2の画素データを記憶する記憶手段をさらに有し、前記制御手段は、前記混合を行わないと判断した場合に、前記第1の画素データによって前記記憶手段に記憶されている前記第2の画素データを書き換えるように制御し、前記混合を行うと判断した場合に、前記第3の画素データによって前記記憶手段に記憶されている前記第2の画素データを書き換えるように制御する。
【0016】
また本発明によれば、同時に処理を行おうとする複数の画素毎にそれぞれ設けられた複数の画素データ処理回路により、複数の第1の画素データと複数の第2の画素データとを、各画素毎に予め設定された混合比データが示す混合比で混合して複数の第3の画素データを生成し、前記第1の画素データまたは前記第2の画素データに基づいて、前記画素データ処理による前記混合を行うか否かを判断し、前記混合を行わないと判断した場合に、対応する画素データ処理回路の動作を停止する映像信号処理方法が提供される。
【0017】
好ましくは、前記各画素データ処理回路がシステムクロックから生成される対応する画素データ処理回路駆動クロック信号に基づいて動作し、前記混合を行うと判断した場合に、対応する画素データ処理回路に前記画素データ処理回路駆動用クロック信号を供給し、前記混合を行わないと判断した場合に、対応する画素データ処理回路への前記画素データ処理回路駆動用クロック信号の供給を停止する。
【0018】
また好ましくは、前記画素データ処理回路の各々は、直列に接続された複数の処理回路でパイプライン処理を行う。
【0019】
好ましくは、前記画素データ処理回路内の直列に接続された複数の処理回路は、各処理回路を制御するフラグが転送されることにより、前記パイプライン処理および前記画素処理回路駆動用クロック信号の供給の制御を行う。
【発明の効果】
【0020】
本発明によれば、画素データごとに映像信号処理可能な回路構成とし、処理が不要の画素データの処理を行わないようにその画素データの処理回路の動作を停止させ、より好ましくは、処理が不要の画素データの処理回路へのクロックの供給を停止することにより、映像信号処理装置における無駄な消費電力を低減することができる。
【発明を実施するための最良の形態】
【0021】
以下、本発明の映像信号装置の実施の形態について述べる。
本実施形態においては、家庭用ゲーム機などに適用される、任意の3次元物体モデルに対する所望の3次元画像をCRT(Cathode Ray Tube)などのディスプレイ上に高速に表示する3次元コンピュータグラフィックシステムについて説明する。
【0022】
第1実施形態
図1は、映像信号処理装置野1例として、本実施形態の3次元コンピュータグラフィックシステム1のシステム構成図である。
3次元コンピュータグラフィックシステム1は、立体モデルを単位図形である三角形を組み合わせた多角形(ポリゴン)の張り合わせとして表現し、このポリゴンを描画することで表示画面の各画素の色を決定し、ディスプレイに表示するポリゴンレンダリング処理を行うシステムである。
また、3次元コンピュータグラフィックシステム1では、平面上の位置を表現する(x,y)座標の他に、奥行きを表すz座標を用いて3次元物体を表し、この(x,y,z)の3つの座標で3次元空間の任意の一点を特定する。
【0023】
図1に示すように、3次元コンピュータグラフィックシステム1では、メインメモリ2、I/Oインタフェース回路3、メインプロセッサ4およびレンダリング回路5が、メインバス6を介して接続されている。
以下、各構成要素の機能について説明する。
メインプロセッサ4は、例えば、ゲームの進行状況などに応じて、メインメモリ2から必要なグラフィックデータを読み出し、このグラフィックデータに対してクリッピング(Clipping)処理、ライティング(Lighting)処理およびジオメトリ(Geometry)処理などを行い、ポリゴンレンダリングデータを生成する。メインプロセッサ4は、ポリゴンレンダリングデータS4を、メインバス6を介してレンダリング回路5に出力する。
I/Oインタフェース回路3は、必要に応じて、外部からポリゴンレンダリングデータを入力し、これをメインバス6を介してレンダリング回路5に出力する。
【0024】
ここで、ポリゴンレンダリングデータは、ポリゴンの各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)を用いて行われる。
すなわち、ポリゴンレンダリングデータは、三角形の各頂点の物理座標値と、
それぞれの頂点の色とテクスチャデータの同次座標および同次項を示している。
【0025】
以下、レンダリング回路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として機能する。
【0026】
DDAセットアップ回路10
DDAセットアップ回路10は、後段のトライアングルDDA回路11において物理座標系上の三角形の各頂点の値を線形補間して三角形の内部の各画素の色R,G,Bと深さ情報zを求めるのに先立ち、ポリゴンレンダリングデータS4が示す(z,R,G,B,α,s,t,q)データについて、三角形の辺と水平方向の差分を求めるセットアップ演算を行う。
このセットアップ演算は、具体的には、開始点の値と終点の値と、開始点と終点との距離を用いて、単位長さ移動した場合における、求めようとしている値の変分を算出する。
【0027】
また、DDAセットアップ回路10は、同時に処理を行う8画素のそれぞれについて、処理対象となる三角形の内部に位置するか否かを示す1ビットの有効指示データvalを決定する。具体的には、有効指示データvalは、三角形の内部に位置する画素について「1」とし、三角形の外部に位置する画素について「0」とする。
DDAセットアップ回路10は、算出した変分データS10と、各画素の有効指示データvalとをトライアングルDDA回路11に出力する。
【0028】
トライアングル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に出力する。
【0029】
ここで、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データS2201〜S2208とし、(z,R,G,B,α,s,t,q)データを被演算データS2211〜S2218とする。
すなわち、トライアングルDDA回路11は、8画素分の(x,y)データと、valデータS2201〜S2208と、被演算データS2211〜S2218からなるDDAデータS11をテクスチャエンジン回路12に出力する。
【0030】
テクスチャエンジン回路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を内蔵している。
【0031】
〔演算ブロック200〕
演算ブロック200は、DDAデータS11に含まれる(s,t,q)データを用いて、sデータをqデータで除算する演算と、tデータをqデータで除算する演算とを行う。
演算ブロック200は、図3に示すように、8個の演算サブブロック200
51〜2008を内蔵する。
ここで、演算サブブロック2001は、被演算データS2211およびvalデータS2201を入力し、valデータS2201が「1」、すなわち有効であることを示す場合には、「s/q」および「t/q」を算出し、その算出結果を除算結果S2001として演算ブロック201の演算サブブロック2011に出力する。
【0032】
また、演算サブブロック2001は、valデータS2201が「0」、すなわち無効であることを示す場合には、演算は行わず、除算結果S2001を出力しないか、あるいは、所定の仮値を示す除算結果S2001を演算ブロック201の演算サブブロック2011に出力する。
また、演算サブブロック2001は、valデータS2201を後段の演算サブブロック2011に出力する。
なお、演算サブブロック2002〜2008も、それぞれ対応する画素について、演算サブブロック2001と同じ演算を行い、それぞれ除算結果S20052〜S2008およびvalデータS2202〜S2208を後段の演算ブロック201の演算サブブロック2012〜2018にそれぞれ出力する。
【0033】
図4は、演算サブブロック2001の内部構成図である。
なお、図3に示す、全ての演算サブブロックは、基本的に、図4に示す構成をしている。
図4に示すように、演算サブブロック2001は、クロックイネーブラ(クロック有効化回路)2101、データ用フリップフロップ222、プロセッサエレメント223およびフラグ用フリップフロップ224を有する。
クロックイネーブラ2101は、システムクロック信号S225を基準としたタイミングでvalデータS2201を入力し、valデータS2201のレベルを検出する。そして、クロックイネーブラ2101は、valデータS2201が、「1」である場合には、例えば、クロック信号S2101にパルス発生させ、「0」である場合には、クロック信号S2101にパルス発生させない。
【0034】
データ用フリップフロップ222は、クロック信号S2101のパルスを検出すると、被演算データS2211を取り込み、プロセッサエレメント223に出力する。
プロセッサエレメント223は、入力した被演算データS2211を用いて前述した除算を行い、除算結果S2001を演算サブブロック2011のデータ用フリップフロップ222に出力する。
フラグ用フリップフロップ224は、システムクロック信号S225を基準としたタイミングで、valデータS2201を取り込み、後段の演算ブロック201の演算サブブロック2011のフラグ用フリップフロップ224に出力する。
なお、システムクロック信号S225は、図3に示す全ての演算サブブロック2001〜2008,2011〜2018,2021〜2028,2041〜2048のクロックイネーブラおよびフラグ用フリップフロップ224に供給される。
すなわち、演算サブブロック2001〜2008,2011〜2018,2021〜2028,2041〜2048における処理は同期して行われ、同一の演算ブロックに内蔵された8個の演算サブブロックは並行して処理を行う。
【0035】
〔演算ブロック201〕
演算ブロック201は、演算サブブロック2011〜2018を有し、演算ブロック200から入力した除算結果S2001〜S2008が示す「s/q」および「t/q」に、それぞれテクスチャサイズUSIZEおよびVSIZEを乗じて、テクスチャ座標データ(u,v)を生成する。
演算サブブロック2011〜2018は、それぞれクロックイネーブラ2111〜2118によりvalデータS2201〜S2208のレベル検出を行った結果、当該レベルが「1」の場合にのみ演算を行い、それぞれ演算結果であるテクスチャ座標データS2011〜S2018を、演算ブロック202の演算サブブロック2021〜2028に出力する。
【0036】
〔演算ブロック202〕
演算ブロック202は、演算サブブロック2021〜2028を有し、メモリI/F回路13を介して、SRAM17あるいはDRAM16に、演算ブロック201で生成したテクスチャ座標データ(u,v)を含む読み出し要求を出力し、メモリI/F回路13を介して、SRAM17あるいはテクスチャバッファ20に記憶されているテクスチャデータを読み出すことで、(u,v)データに対応したテクスチャアドレスに記憶された(R,G,B,α)データS17を得る。
なお、テクスチャバッファ20には、MIPMAP(複数解像度テクスチャ)などの複数の縮小率に対応したテクスチャデータが記憶されている。ここで、何れの縮小率のテクスチャデータを用いるかは、所定のアルゴリズムを用いて、前記三角形を単位として決定される。
また、SRAM17には、テクスチャバッファ20に記憶されているテクスチャデータのコピーが記憶されている。
演算サブブロック2021〜2028は、それぞれクロックイネーブラ2121〜2128によりvalデータS2201〜S2208のレベル検出を行った結果、当該レベルが「1」の場合にのみ読み出し処理を行い、それぞれ読み出した(R,G,B,α)データS17を、(R,G,B,α)データS2021〜S2028として、それぞれ演算ブロック203の演算サブブロック2031〜2038に出力する。
【0037】
なお、テクスチャエンジン回路12は、フルカラー方式の場合には、テクスチャバッファ20から読み出した(R,G,B,α)データを直接用いる。一方、テクスチャエンジン回路12は、インデックスカラー方式の場合には、予め作成したカラールックアップテーブル(CLUT)をテクスチャCLUTバッファ23から読み出して、内蔵するSRAMに転送および記憶し、このカラールックアップテーブルを用いて、テクスチャバッファ20から読み出したカラーインデックスに対応する(R,G,B)データを得る。
【0038】
〔演算ブロック203〕
演算ブロック203は、演算サブブロック2031〜2038を有し、演算ブロック202から入力したテクスチャデータである(R,G,B.α)データS2021〜S2028と、トライアングルDDA回路11からのDDAデータS11に含まれる(R,G,B)データとを、(R,G,B.α)データS2021〜S2028に含まれるαデータ(テクスチャα)が示す割合で混合し、(R,G,B)混合データを生成する。
そして、演算ブロック203は、生成された(R,G,B)混合データと、対応するDDAデータS11に含まれるαデータとを含む(R,G,B,α)データS2031〜S2038を、演算ブロック204に出力する。
演算サブブロック2031〜2038は、それぞれクロックイネーブラ2131〜2138によりvalデータS2201〜S2208のレベル検出を行った結果、当該レベルが「1」の場合にのみ上記混合および(R,G,B,α)データS2031〜S2038の出力を行う。
【0039】
〔演算ブロック204〕
演算ブロック204は、演算サブブロック2041〜2048を有し、入力した(R,G,B,α)データS2031〜S2038について、zバッファ22に記憶されたzデータの内容を用いて、z比較を行い、(R,G,B,α)データS2031〜S2038によって描画する画像が、前回、ディスプレイバッファ21に描画した値よりも手前(視点側)に位置する場合には、zバッファ22を更新すると共に、(R,G,B,α)データS2031〜S2038を、(R,G,B,α)データS2041〜S2048として、それぞれ演算ブロック205の演算サブブロック2051〜2058に出力する。
演算サブブロック2041〜2048は、それぞれクロックイネーブラ2141〜2148によりvalデータS2201〜S2208のレベル検出を行った結果、当該レベルが「1」の場合にのみ上述したz比較および(R,G,B,α)データS2041〜S2048の出力を行なう。
【0040】
〔演算ブロック205〕
演算ブロック205は、演算サブブロック2051〜2058を有し、入力した(R,G,B,α)データS2041〜S2048と、既にディスプレイバッファ21に記憶されている(R,G,B)データとを、それぞれ(R,G,B,α)データS2041〜S2048に含まれるαデータが示す混合値で混合し、混合後の(R,G,B)データS2051〜S2058をディスプレイバッファ21に書き込む(打ち込む)。
なお、メモリI/F回路13によるDRAM16に対してのアクセスは、16画素について同時に行なわれる。
演算サブブロック2051〜2058は、それぞれクロックイネーブラ2151〜2158によりvalデータS2201〜S2208のレベル検出を行った結果、当該レベルが「1」の場合にのみ上述した混合処理およびディスプレイバッファ21への書き込み処理を行う。
【0041】
CRTコントローラ回路14
CRTコントローラ回路14は、与えられた水平および垂直同期信号に同期して、図示しないCRTに表示するアドレスを発生し、ディスプレイバッファ21から表示データを読み出す要求をメモリI/F回路13に出力する。この要求に応じて、メモリI/F回路13は、ディスプレイバッファ21から一定の固まりで表示データを読み出す。CRTコントローラ回路14は、ディスプレイバッファ21から読み出した表示データを記憶するFIFO(First In First Out)回路を内蔵し、一定の時間間隔で、RAMDAC回路15に、RGBのインデックス値を出力する。
【0042】
RAMDAC回路15
RAMDAC回路15は、各インデックス値に対応するR,G,Bデータを記憶しており、CRTコントローラ回路14から入力したRGBのインデックス値に対応するデジタル形式のR,G,Bデータを、D/Aコンバータに転送し、アナログ形式のR,G,Bデータを生成する。RAMDAC回路15は、この生成されたR,G,BデータをCRTに出力する。
【0043】
以下、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に出力される。
【0044】
次に、テクスチャエンジン回路12およびメモリI/F回路13において、DDAデータS11を用いて、「s/q」および「t/q」の算出処理、テクスチャ座標データ(u,v)の算出処理、テクスチャバッファ20からのデジタルデータとしての(R,G,B,α)データの読み出し処理、混合処理、および、ディスプレイバッファ21への書き込み処理が、図3に示す演算ブロック200,201,202,,203,204,205でパイプライン方式で順に実行される。
【0045】
次に、図3に示すテクスチャエンジン回路12およびメモリI/F回路13のパイプライン処理の動作について説明する。
ここでは、例えば、図6に示すような矩形31内の8画素について同時処理する場合を考える。この場合には、valデータS2201,S2202,S2203,S2205,S2206が「0」を示し、valデータS2204,S2207,S2208が「1」を示している。
【0046】
valデータS2201〜S2208および被演算データS2211〜S2218が、それぞれ対応する演算サブブロック2001〜2008のクロックイネーブラ2101〜2108に入力される。
そして、クロックイネーブラ2101〜2108において、それぞれvalデータS2201〜S2208のレベルが検出される。具体的には、クロックイネーブラ2104,2107,2108において「1」が検出され、クロックイネーブラ2101,2102,2103,2105,2106において「0」が検出される。
その結果、演算サブブロック2004,2007,2008においてのみ、被演算データS2214,S2217,S2218を用いて、「s/q」および「t/q」が算出され、当該除算結果S2004,S2007,S2008が演算ブロック201の演算ブロック2014,2017,2018に出力される。
一方、演算サブブロック2001,2002,2003,2005,20056では、除算は行なわれない。
また、除算結果S2004,S2007,S2008の出力と同期して、valデータS2201〜S2208が、演算ブロック201の演算サブブロック2011〜2018に出力される。
【0047】
次に、演算サブブロック2011〜2018のクロックイネーブラ2101〜2108において、それぞれvalデータS2201〜S2208のレベルが検出される。
そして、この検出結果に基づいて、演算サブブロック2014,2017,2018においてのみ、除算結果S2004,S2007,S2008が示す「s/q」および「t/q」に、それぞれテクスチャサイズUSIZEおよびVSIZEを乗じて、テクスチャ座標データS2024,S2027,S2028が生成され、それぞれ演算ブロック202の演算サブブロック2024,2027,2028に出力される。
一方、演算サブブロック2011,2012,2013,2015,20156では、演算は行なわれない。
また、テクスチャ座標データS2024,S2027,S2028の出力と同期して、valデータS2201〜S2208が、演算ブロック202の演算サブブロック2021〜2028に出力される。
【0048】
次に、演算サブブロック2021〜2028のクロックイネーブラ2121〜2128において、それぞれvalデータS2201〜S2208のレベルが検出される。
そして、この検出結果に基づいて、演算サブブロック2024,2027,2028においてのみ、SRAM17あるいはテクスチャバッファ20に記憶されているテクスチャデータの読み出し処理が行なわれ、(s,t)データに対応したテクスチャアドレスに記憶された(R,G,B,α)データが読み出される。そして、この読み出した(R,G,B,α)データS2024,S2027,S2028が、演算ブロック204の演算サブブロック2034,2037,2038に出力される。
一方、演算サブブロック2021,2022,2023,2025,20256では、読み出し処理は行なわれない。
また、(R,G,B,α)データS2024,S2027,S2028の出力と同期して、valデータS2201〜S2208が、演算ブロック203の演算サブブロック2031〜2038に出力される。
【0049】
次に、演算サブブロック2031〜2038のクロックイネーブラ2121〜2128において、それぞれvalデータS2201〜S2208のレベルが検出される。
そして、この検出結果に基づいて、演算サブブロック2034,2037,2038においてのみ、それぞれ演算ブロック202から入力したテクスチャデータである(R,G,B.α)データS2024,2027,2028と、トライアングルDDA回路11からのDDAデータS11に含まれる(R,G,B)データとを、(R,G,B.α)データS2024,2027,2028に含まれるαデータ(テクスチャα)が示す割合で混合し、(R,G,B)混合データを生成する。
そして、演算サブブロック2034,2037,2038は、生成された(R,G,B)混合データと、対応するDDAデータS11に含まれるαデータとを含む(R,G,B,α)データS2034,2037,2038を、演算ブロック204に出力する。
一方、演算サブブロック2031,2032,2033,2035,20356では、混合処理は行なわれない。
【0050】
次に、演算サブブロック2041〜2048のクロックイネーブラ2141〜2148において、それぞれvalデータS2201〜S2208のレベルが検出される。
そして、この検出結果に基づいて、演算サブブロック2044,2047,2048においてのみ、(R,G,B,α)データS2034,S2037,S2038について、zバッファ22に記憶されたzデータの内容を用いて、z比較が行なわれ、(R,G,B,α)データS2034,S2037,S2038によって描画する画像が、前回、ディスプレイバッファ21に描画した値よりも手前に位置する場合には、zバッファ22が更新されると共に、(R,G,B,α)データS2034,S2037,S2038が、それぞれ(R,G,B,α)データS2044,S2047,S2048として、それぞれ演算サブブロック205の演算サブブロック2054,2057,2058に出力される。
【0051】
次に、演算サブブロック2051〜2058のクロックイネーブラ2151〜2158において、それぞれvalデータS2201〜S2208のレベルが検出される。
そして、この検出結果に基づいて、(R,G,B,α)データS2044,S2047,S2048の(R,G,B)データと、既にディスプレイバッファ21に記憶されている(R,G,B)データとが、αデータが示す混合値で混合され、(R,G,B)データS2054,S2057,S2058が最終的に算出される。
そして、この混合処理された,(R,G,B)データS2054,S20557,S2058が、ディスプレイバッファ21に書き込まれる。
一方、演算サブブロック2041,2042,2043,2045,20456では、混合処理は行なわれない。
【0052】
すなわち、テクスチャエンジン回路12およびメモリI/F回路13では、図6に示す矩形31内の画素について同時に処理を行なう場合に、三角形30の外に位置する画素についての処理は行なわない。すなわち、図4に示す矩形31内の画素についての演算を行なっている間は、演算サブブロック2001,2002,2003,2005,2006,2011,2012,2013,20155,2016,2021,2022,2023,2025,2026,2041,2042,2043,2045,2046,2051,2052,20553,2055,2056は停止した状態になり、これらの演算サブブロックは電力を消費しない。
【0053】
以上説明したように、3次元コンピュータグラフィックシステム1によれば、テクスチャエンジン回路12におけるパイプライン処理において、同時処理する8画素のうち、処理対象となる三角形の外部に位置する画素についての演算は行なわないようにすることができる。
そのため、テクスチャエンジン回路12における消費電力を大幅に低減できる。その結果、3次元コンピュータグラフィックシステム1の電源として、簡単かつ安価なものを用いることができる。
なお、テクスチャエンジン回路12は、図3および図4に示すように、各演算サブブロックに、クロックイネーブラおよび1ビットのフラグ用フリップフロップを組み込むことで、上述した機能を実現するが、クロックイネーブラおよび1ビットのフラグ用フリップフロップの回路規模は小さいため、テクスチャエンジン回路12の回路規模が大幅に増大することはない。
【0054】
第2実施形態
図5は、本実施形態の3次元コンピュータグラフィックシステム451のシステム構成図である。
本実施形態の3次元コンピュータグラフィックシステム451は、αブレンド処理を行うか否かを各画素毎に予め判断し、αブレンド(混合)処理を行わないと判断した場合に、αブレンド処理を行う演算サブブロックのうち対応する演算サブブロックの処理を停止させる点を除いて、前述した第1実施形態の3次元コンピュータグラフィックシステム1と同じである。
すなわち、本実施形態では、各演算サブブロックは、第1実施形態の場合と同様に、対応する画素が処理対象となる三角形の外部に位置する場合には処理を停止する。また、演算サブブロックのうちαブレンド処理を行う演算サブブロックは、対応する画素が処理対象となる三角形の外部に位置するか、あるいは対応する画素のαデータが「0」である場合に処理を停止する。
【0055】
図5に示すように、3次元コンピュータグラフィックシステム451は、メインメモリ2、I/Oインタフェース回路3、メインプロセッサ4およびレンダリング回路425がメインバス6を介して接続されている。
図5において、図1と同じ符号を付した構成要素は、第1実施形態で説明した同一符号を付した構成要素と同じである。
すなわち、メインメモリ2、I/Oインタフェース回路3、メインプロセッサ4およびメインバス6は、第1実施形態で説明したものと同じである。
【0056】
また、図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実施形態で説明したものと同じである。
【0057】
以下、トライアングル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データS2201〜S2208とし、(z,R,G,B,α,s,t,q)データを被演算データS2211〜S2218とする。
すなわち、トライアングルDDA回路11は、8画素分の(x,y)データと、valデータS2201〜S2208と、被演算データS2211〜S2218とからなるDDAデータS11をテクスチャエンジン回路12に出力する。
【0058】
また、トライアングルDDA回路411は、並行して処理を行う8画素について、上述したように線形補間して生成した(z,R,G,B,α,s,t,q)データのうちαデータが「0」であるか否か、すなわちαブレンド処理を行うか否かを判断する。
そして、トライアングルDDA回路411は、αデータが「0」であると判断した場合に、「0」(αブレンド処理を行わないことを)を示すvalデータ411a1〜S411a8をメモリI/F回路413に出力し、αデータが「0」ではないと判断した場合に、「1」(αブレンド処理を行うことを)を示すvalデータ411a1〜S411a8をメモリI/F回路413に出力する。
【0059】
メモリI/F回路413
図6は、テクスチャエンジン回路12およびメモリI/F回路413の構成図である。
図6に示すように、メモリI/F回路413は、演算ブロック204および演算ブロック405を有する。
なお、図6において、図3と同じ符号を付した構成要素は、第1実施形態で説明した同一符号を構成要素と同じである。
すなわち、テクスチャエンジン回路12は、第1実施形態で説明したものと同じであり、メモリI/F回路413の演算ブロック204も第1実施形態で説明したものと同じである。
【0060】
以下、メモリI/F回路413の演算ブロック405について説明する。
〔演算ブロック405〕
演算ブロック405は、演算サブブロック4051〜4058を有し、演算サブブロック2041〜2048から入力した(R,G,B,α)データS2041〜S2048と、既にディスプレイバッファ21に記憶されている(R,G,B)データとを、それぞれ(R,G,B,α)データS2041〜S2048に含まれるαデータが示す混合値で混合し、混合後の(R,G,B)データS4051〜S4058をディスプレイバッファ21に書き込む(打ち込む)。
このとき、演算サブブロック4051〜4058は、それぞれクロックイネーブラ4151〜4158により、それぞれ演算ブロック204からのvalデータS2201〜S2208および図5に示すトライアングルDDA回路411からのvalデータS411a1〜S411a8のレベルを検出し、双方のレベルが「1」の場合にのみαブレンド処理を行う。
ここで、双方のレベルが「1」の場合とは、当該画素が処理対象となる三角形の内部に位置し、しかも、当該画素のαデータが「0」でない(αブレンド処理を行うことを示す)場合である。
すなわち、演算サブブロック4051〜4058は、それぞれvalデータS2201〜S2208およびvalデータS411a1〜S411a8のうちいずれか一方が「0」の場合には、αブレンド処理を行わない。
【0061】
なお、演算サブブロック4051〜4058は、valデータS2201〜S2208のレベルが「1」であり、valデータS411a1〜S411a8のレベルが「0」の場合には、演算サブブロック2041〜2048から入力した(R,G,B,α)データS2041〜S2048をディスプレイバッファ21に書き込む。
【0062】
以下、3次元コンピュータグラフィックシステム451の動作について説明する。
3次元コンピュータグラフィックシステム451の全体動作は、基本的に前述した第1実施形態で説明した3次元コンピュータグラフィックシステム1の全体動作と同じである。
また、図6に示すテクスチャエンジン回路12およびメモリI/F回路413のパイプライン処理の動作は、演算ブロック200〜204の処理については、前述した第1実施形態で説明した動作と同じである。
【0063】
以下、演算ブロック405の動作について説明する。
それぞれ図6に示す演算サブブロック2041〜2048から演算サブブロック4151〜4158に、(R,G,B,α)データS2041〜S2048およびvalデータS2201〜S2208が出力される。
また、図5に示すトライアングルDDA回路411において、線形補間して生成した(z,R,G,B,α,s,t,q)データのうちαデータが「0」であるか否かが判断され、当該判断の結果を示すvalデータ411a1〜S411a8が図6に示す演算サブブロック4151〜4158にそれぞれ出力される。
そして、演算サブブロック4151〜4158において、それぞれクロックイネーブラ4151〜4158により、valデータS2201〜S2208およびvalデータS411a1〜S411a8のレベルが検出され、双方のレベルが「1」の場合にのみαブレンド処理が行われる。
αブレンド処理では、(R,G,B,α)データS2041〜S2048と、既にディスプレイバッファ21に記憶されている(R,G,B)データとが、それぞれ(R,G,B,α)データS2041〜S2048に含まれるαデータが示す混合値で混合されて(R,G,B)データS4051〜S4058が生成される。そして、(R,G,B)データS4051〜S4058が、ディスプレイバッファ21に書き込まれる。
【0064】
すなわち、本実施形態では、演算サブブロック4151〜4158のそれぞれにおいて、valデータS2201〜S2208およびvalデータS411a1〜S411a8のうち何れか一方が「0」の場合には、αブレンド処理は行われない。
【0065】
以上説明したように、3次元コンピュータグラフィックシステム451によれば、トライアングルDDA回路411において、各画素についてαデータが「0」であるか否かを判断する。
そして、メモリI/F回路413において、同時処理する8画素のうち処理対象となる三角形の内部に位置する画素であっても、トライアングルDDA回路411による上記判断の結果に基づいて、αデータが「0」の画素についてのαブレンド処理を行わないようにすることができる。
そのため、3次元コンピュータグラフィックシステム451によれば、前述した第1実施形態の3次元コンピュータグラフィックシステム1に比べてさらに、消費電力を低減できる。
【0066】
第3実施形態
図7は、本実施形態の3次元コンピュータグラフィックシステム551のシステム構成図である。
本実施形態の3次元コンピュータグラフィックシステム551では、例えば、処理対象となっている画素のzデータとzバッファに記憶されている対応するzデータとの比較を行い、今回描画しようとする画像が前回描画した画像より奥側(視点側と反対の方向)にある場合には、当該画素についてのテクスチャ座標データ(u,v)の生成処理、テクスチャデータの読み出し処理、テクスチャαブレンド処理およびαブレンド処理を停止する。
【0067】
図7に示すように、3次元コンピュータグラフィックシステム551は、メインメモリ2、I/Oインタフェース回路3、メインプロセッサ4およびレンダリング回路525がメインバス6を介して接続されている。
図7において、図1と同じ符号を付した構成要素は、第1実施形態で説明した同一符号を付した構成要素と同じである。
すなわち、メインメモリ2、I/Oインタフェース回路3、メインプロセッサ4およびメインバス6は、第1実施形態で説明したものと同じである。
【0068】
また、図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実施形態で説明したものと同じである。
【0069】
以下、テクスチャエンジン回路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ではαブレンド処理が行われる。
【0070】
〔演算ブロック500〕
演算ブロック500は、演算サブブロック5001〜5008を有し、図7に示すトライアングルDDA回路11からDDAデータS11を入力する。
演算サブブロック5001〜5008は、それぞれクロックイネーブラ2141〜2148において、DDAデータS11に含まれるvalデータS22051〜S2208のレベル検出を行い、その結果、当該レベルが「1」の場合(当該画素が、処理対象となる三角形の内部に位置する場合)にはz(奥行き)比較処理を行い、当該レベルが「1」でない場合にはz比較処理を行わない。
【0071】
演算サブブロック5001〜5008は、z比較処理において、DDAデータS11に含まれる被演算データS2211〜S2218のzデータと、zバッファ22に記憶された対応するzデータとを比較する。
そして、演算サブブロック5001〜5008は、被演算データS2211〜S2218によって描画する画像が、前回、ディスプレイバッファ21に描画した値よりも手前(視点側)に位置する場合には、それぞれ「1」を示すvalデータS500a1〜S500a8を演算ブロック501の演算サブブロック5011〜5018に出力し、それぞれ被演算データS2211〜S2218のzデータで、zバッファ22に記憶されている対応するzデータを書き換える。このとき、演算サブブロック5001〜5008は、さらに被演算データS22151〜S2218を演算サブブロック5011〜5018に出力する。
一方、演算サブブロック5001〜5008は、被演算データS2211〜S2218によって描画する画像が、前回、ディスプレイバッファ21に描画した値よりも手前(視点側)に位置しない場合には、それぞれ「0」を示すvalデータS500a1〜S500a8を演算ブロック501の演算サブブロック5011〜5018に出力し、zバッファ22に記憶されている対応するzデータを書き換えない。
【0072】
〔演算ブロック501〕
演算ブロック501は、DDAデータS11が示す(s,t,q)データを用いて、sデータをqデータで除算する演算と、tデータをqデータで除算する演算とを行う。
演算ブロック501は、図8に示すように、8個の演算サブブロック50151〜5018を内蔵する。
ここで、演算サブブロック5011は、被演算データS2211およびvalデータS2201,S500a1を入力し、クロックイネーブラ5111〜5118により、valデータS2201およびS500a1の双方が「1」、すなわち有効であるか否かを判断し、双方が「1」であると判断した場合に、「s/q」および「t/q」を算出し、これを除算結果S5011として演算ブロック502の演算サブブロック5021に出力する。
【0073】
また、演算サブブロック5011は、valデータS2201およびS500a1のいずれか一方が「0」、すなわち無効であることを示すと判断した場合には演算は行わず、除算結果S5011を出力しないか、あるいは、所定の仮値を示す除算結果S5011を演算ブロック502の演算サブブロック5021に出力する。
なお、演算サブブロック5012〜5018も、それぞれ対応する画素について、演算サブブロック5011と同じ演算を行い、それぞれ除算結果S50152〜S5018を後段の演算ブロック502の演算サブブロック5022〜5028にそれぞれ出力する。
【0074】
〔演算ブロック502〕
演算ブロック502は、演算サブブロック5021〜5028を有し、演算ブロック501から入力した除算結果S5011〜S5018が示す「s/q」および「t/q」に、それぞれテクスチャサイズUSIZEおよびVSIZEを乗じて、テクスチャ座標データ(u,v)を生成する。
演算サブブロック5021は、クロックイネーブラ5121においてvalデータS2201およびS500a1のレベル検出を行い、双方のレベルが「1」の場合にのみ演算を行い、それぞれ演算結果であるテクスチャ座標データS5021を、演算ブロック503の演算サブブロック5031に出力する。
演算サブブロック5022〜5028も、演算サブブロック5021と同様に、対応するデータの処理を行う。
【0075】
〔演算ブロック503〕
演算ブロック503は、演算サブブロック5031〜5038を有し、メモリI/F回路13を介して、SRAM17あるいはDRAM16に、演算ブロック502で生成したテクスチャ座標データ(u,v)を含む読み出し要求を出力し、メモリI/F回路13を介して、SRAM17あるいはテクスチャバッファ20に記憶されているテクスチャデータを読み出すことで、(u,v)データに対応したテクスチャアドレスに記憶された(R,G,B,α)データS17を得る。
演算サブブロック5031は、クロックイネーブラ5131においてvalデータS2201およびS500a1のレベル検出を行い、双方のレベルが「1」の場合にのみ読み出し処理を行い、それぞれ読み出した(R,G,B,α)データS17を、(R,G,B.α)データS5031として、演算ブロック203の演算サブブロック5041に出力する。
演算サブブロック5032〜5038も、演算サブブロック5031と同様に、対応するデータの処理を行う。
【0076】
〔演算ブロック504〕
演算ブロック504は、演算サブブロック5041〜5048を有し、演算ブロック503から入力したテクスチャデータである(R,G,B.α)データS5031〜S5038と、トライアングルDDA回路11からの対応するDDAデータS11に含まれる(R,G,B)データとを、(R,G,B.α)データS5031〜S5038に含まれるαデータ(テクスチャα)が示す割合で混合し、(R,G,B)混合データを生成する。
そして、演算ブロック504は、生成された(R,G,B)混合データと、対応するDDAデータS11に含まれるαデータとを含む(R,G,B,α)データS5041〜S5048を、演算ブロック505に出力する。
演算サブブロック5041〜5048は、それぞれクロックイネーブラ5141〜5148によりvalデータS2201〜S2208およびS500a1〜S500a8のレベル検出を行い、双方のレベルが「1」の場合にのみ上記混合処理を行う。
【0077】
〔演算ブロック505〕
演算ブロック505は、演算サブブロック5051〜5058を有し、入力した(R,G,B,α)データS5041〜S5048と、既にディスプレイバッファ21に記憶されている(R,G,B)データとを、それぞれ(R,G,B,α)データS5041〜S5048に含まれるαデータが示す混合値で混合し、混合後の(R,G,B)データS5051〜S5058をディスプレイバッファ21に書き込む(打ち込む)。
演算サブブロック5051〜5058は、それぞれクロックイネーブラ2151〜2158においてvalデータS2201〜S2208およびS500a51〜S500a8のレベルを検出し、双方のレベルが「1」の場合にのみ上記混合処理およびディスプレイバッファ21への書き込み処理を行う。
【0078】
以下、図8に示すテクスチャエンジン回路512およびメモリI/F回路513のパイプライン処理の動作について説明する。
先ず、演算サブブロック5001〜5008のクロックイネーブラ2141〜2148において、それぞれDDAデータS11に含まれるvalデータS2201〜S2208のレベル検出が行われ、当該レベルが「1」の場合(当該画素が、処理対象となる三角形の内部に位置する場合)にはz比較処理が行われる。
そして、被演算データS2211〜S2218によって描画する画像が、前回、ディスプレイバッファ21に描画した値よりも手前(視点側)に位置する場合には、それぞれ「1」を示すvalデータS500a1〜S500a8が演算ブロック501の演算サブブロック5011〜5018に出力され、それぞれ被演算データS2211〜S2218のzデータで、zバッファ22に記憶されている対応するzデータが書き換えられる。このとき、さらに被演算データS2211〜S2218が、演算サブブロック5001〜5008から演算サブブロック5011〜5018に出力される。
一方、valデータS2201〜S2208のレベルが「1」でない場合にはz比較処理は行われず、それぞれ「0」を示すvalデータS500a1〜S500a8が演算ブロック501の演算サブブロック5011〜5018に出力される。このとき、zバッファ22に記憶されている対応するzデータは書き換えられない。
【0079】
次に、演算サブブロック5011〜5018のクロックイネーブラ5111〜5118において、valデータS2201およびS500a1の双方が「1」、すなわち有効であるか否かが判断され、双方が「1」であると判断された場合に、「s/q」および「t/q」が算出され、これが除算結果S5011〜S5018として演算ブロック502の演算サブブロック5021〜5028に出力される。
一方、valデータS2201〜S2208およびS500a1〜S500a8のいずれか一方が「0」、すなわち無効であることを示すと判断された場合には、それぞれ演算サブブロック5011〜5018では演算は行われない。
【0080】
次に、演算サブブロック5021〜5028のクロックイネーブラ5121〜5128においてvalデータS2201〜S2208およびS500a1〜S500a8のレベル検出が行われる。
そして、双方のレベルが「1」の場合にのみ、演算サブブロック5021〜5028において、それぞれ演算ブロック501から入力した除算結果S50151〜S5018が示す「s/q」および「t/q」に、それぞれテクスチャサイズUSIZEおよびVSIZEが乗算され、テクスチャ座標データ(u,v)が生成される。テクスチャ座標データ(u,v)は、それぞれ演算サブブロック5031〜5038に出力される。
【0081】
次に、演算サブブロック5031〜5038のクロックイネーブラ5131〜5138において、valデータS2201〜S2208およびS500a1〜S500a8のレベル検出が行われ、双方のレベルが「1」の場合にのみ、テクスチャ座標データ(u,v)を含む読み出し要求がSRAM17に出力され、メモリI/F回路13を介してテクスチャデータが読み出され、(u,v)データに対応したテクスチャアドレスに記憶された(R,G,B,α)データS17が得られる。(R,G,B,α)データS17は、(R,G,B.α)データS5031〜S5038として、演算サブブロック5041〜5048に出力される。
【0082】
次に、演算サブブロック5041〜5048のクロックイネーブラ5141〜5148によりvalデータS2201〜S2208およびS500a1〜S500a8のレベル検出が行われ、双方のレベルが「1」の場合にのみ、(R,G,B.α)データS5031〜S5038と、トライアングルDDA回路11からの対応するDDAデータS11に含まれる(R,G,B)データとが、(R,G,B.α)データS5031〜S5038に含まれるαデータ(テクスチャα)が示す割合で混合され、(R,G,B)混合データが生成される。
そして、当該生成された(R,G,B)混合データと、対応するDDAデータS11に含まれるαデータとを含む(R,G,B,α)データS5041〜S5048が、演算サブブロック5041〜5048から演算サブブロック50551〜5058に出力される。
【0083】
次に、演算サブブロック5051〜5058のクロックイネーブラ2151〜2158において、valデータS2201〜S2208およびS500a1〜S500a8のレベルが検出され、双方のレベルが「1」の場合にのみ、(R,G,B,α)データS5041〜S5048と、既にディスプレイバッファ21に記憶されている(R,G,B)データとが、それぞれ(R,G,B,α)データS5041〜S5048に含まれるαデータが示す混合値で混合され、混合後の(R,G,B)データS5051〜S5058がディスプレイバッファ21に書き込まれる。
【0084】
以上説明したように、3次元コンピュータグラフィックシステム551によれば、テクスチャエンジン回路512の初段の演算ブロック500において各画素に関するz比較処理を行い、後の処理によって生成される画像データがディスプレイバッファ21に書き込まれるものであるかを判断する。
そして、テクスチャエンジン回路512およびメモリI/F回路513において、同時処理する8画素のうち処理対象となる三角形の内部に位置する画素であっても、演算ブロック500による上記判断の結果に基づいて、ディスプレイバッファ21に書き込まない画像データに関する処理を行わないように(停止)する。
そのため、3次元コンピュータグラフィックシステム551によれば、前述した第1実施形態の3次元コンピュータグラフィックシステム1に比べてさらに、消費電力を低減できる。
【0085】
本発明は上述した実施形態には限定されない。
例えば、前述した第2実施形態では、図6に示すように、テクスチャエンジン回路12およびメモリI/F回路413の各演算ブロックで8画素のデータについて同時に処理する場合について例示したが、図9に示すように、各演算ブロックで1画素のデータの処理を行うようにしてもよい。
この場合には、処理対象となる画素の被演算データS2211のみがテクスチャエンジン回路12に入力されるため、valデータS2201は不要となる。
すなわち、演算サブブロック2001,2011,2021,2031,2041では常に演算が行われ、演算サブブロック4051ではvalデータS400a1のレベルが「1」の場合にのみαブレンド処理が行われる。
【0086】
また、前述した第3実施形態では、図8に示すように、テクスチャエンジン回路512およびメモリI/F回路513の各演算ブロックで8画素のデータについて同時に処理する場合について例示したが、図10に示すように、各演算ブロックで1画素のデータの処理を行うようにしてもよい。
この場合には、処理対象となる画素の被演算データS2211のみがテクスチャエンジン回路512に入力されるため、valデータS2201は不要となる。すなわち、演算サブブロック5001ではz比較処理が常に行われ、演算サブブロック5011,5021,5031,5041,5051では、演算サブブロック5001で生成されたvalデータS500a1のレベルが「1」の場合にのみ処理が行われる。
【0087】
また、例えば、上述した実施形態では、図3に示すように、テクスチャエンジン回路12およびメモリI/F回路13におけるパイプライン処理を行なう演算サブブロックについて、valデータS2201〜S2208を利用する場合を例示したが、例えば、図1にレンダリング回路5内のDDAセットアップ回路10、トライアングルDDA回路11、テクスチャエンジン回路12およびメモリI/F回路13における処理のうち、パイプライン処理を行なわない所定の処理について、図11に示すように、valデータS3201〜S3208を用いて、演算処理の実行の有無を決定するようにしてもよい。
【0088】
また、上述した実施形態では、SRAM17を用いる構成を例示したが、SRAM17を設けない構成にしてもよい。
また、テクスチャバッファ20およびテクスチャCLUTバッファ23を、DRAM16の外部に設けてもよい。
【0089】
また、上述した実施形態では、3次元画像を表示する場合を例示したが、本発明は複数画素についてのデータを同時に処理して2次元画像を表示する場合にも適用できる。
また、上述した実施形態では、図2に示すように、画像処理の対象となる(z,R,G,B,α,s,t,q)データに、有効指示データとしてのvalデータを付加したDDAデータS11を用いた場合を例示したが、(z,R,G,B,α,s,t,q)データと、valデータとを別個独立のデータとして扱うようにしてもよい。
【0090】
また、上述した実施形態では、ポリゴンレンダリングデータを生成するジオメトリ処理を、メインプロセッサ4で行なう場合を例示したが、レンダリング回路5で行なう構成にしてもよい。
【0091】
さらに、上述した実施形態では、単位図形として三角形を例示したが、単位図形は特に限定されず、例えば、矩形であってもよい。
【0092】
以上説明したように、本発明の映像信号処理装置およびその方法によれば、消費電力の大幅な低下を図ることができる。
そのため、本発明の映像信号処理装置によれば、小規模かつ簡単な構成の電源を用いることができ、小規模化を図ることができる。
【図面の簡単な説明】
【0093】
【図1】図1は、本発明の第1実施形態の3次元コンピュータグラフィックシステムのシステム構成図である。
【図2】図1に示すトライアングルDDA回路から出力されるDDAデータのフォーマットを説明するための図である。
【図3】図3は、図1に示すテクスチャエンジン回路およびメモリI/F回路の部分構成図である。
【図4】図4は、図3に示す演算サブブロックの内部構成図である。
【図5】図5は、本発明の第2実施形態の3次元コンピュータグラフィックシステムのシステム構成図である。
【図6】図6は、図5に示すテクスチャエンジン回路およびメモリI/F回路の部分構成図である。
【図7】図7は、本発明の第3実施形態の3次元コンピュータグラフィックシステムのシステム構成図である。
【図8】図8は、図7に示すテクスチャエンジン回路およびメモリI/F回路の部分構成図である。
【図9】図9は、図5に示す3次元コンピュータグラフィックシステムの変形例の構成図である。
【図10】図10は、図7に示す3次元コンピュータグラフィックシステムの変形例の構成図である。
【図11】図11は、図1に示す3次元コンピュータグラフィックシステムにおけるクロックイネーブラーを適用した、パイプライン処理を行なっていない演算ブロックの構成図である。
【図12】図12は、従来技術の問題点を説明するための図である。
【符号の説明】
【0094】
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…演算ブロック、2001〜2008,2011〜2018,2021〜2028,2031〜2038,204〜2048,2051〜2058…演算サブブロック、2101〜2108,2111〜2118,2121〜2128,2131〜2138,2141〜2148,2151〜2158…クロックイネーブラ、222…データ用フリップフロップ、223…プロセッサエレメント、224…フラグ用フリップフロップ
【技術分野】
【0001】
本発明は、映像信号処理技術に関するものであり、特に、低消費電力化を図ることができる映像信号処理装置およびその方法に関する。
【背景技術】
【0002】
種々のCAD(Computer Aided Design) システムや、アミューズメント装置などにおいて、コンピュータグラフィックスがしばしば用いられている。特に、近年の画像(映像)信号処理技術の進展に伴い、3次元コンピュータグラフィックスを用いたシステムが急速に普及している。
【0003】
このような3次元コンピュータグラフィックスでは、映像信号の各画素(ピクセル)に対応する色を決定するときに、各画素の色の値を計算し、この計算した色の値を、当該画素に対応するディスプレイバッファ(フレームバッファ)のアドレスに書き込むレンダリング(Rendering) 処理を行う。
レンダリング処理の手法の一つに、ポリゴン(Polygon 、多角形) レンダリングがある。この手法では、立体モデルを三角形の単位図形(ポリゴン)を組み合わせた多角形で表現し、このポリゴンを単位として処理を行い、描画することで、表示画面の色を決定する。
【0004】
ポリゴンレンダリングでは、物理座標系における三角形を組み合わせた多角形の各頂点についての、座標(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)を用いてテクスチャバッファからテクスチャデータを読み出し、この読み出したテクスチャデータを、立体モデルの表面に三角形を単位として張り付けるテクスチャマッピング処理を行う。
なお、立体モデルでのテクスチャマッピング処理では、各画素毎に、張り付けを行なうテクスチャデータが示す画像の拡大縮小率が変化する。
【0005】
ところで、このような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画素の全てについて、ポリゴンレンダリング処理を無条件に行っていた。
【0006】
しかしながら、上述したように、三角形を単位図形として多角形についてのポリゴンレンダリング処理を行なう場合に、矩形内に位置する複数の画素の全てについての処理を、対象となっている三角形の内部に位置するか否かとは無関係に実行すると、膨大な数の無効な演算を行うことになり、その処理を行う映像信号装置の消費電力に大きな影響を及ぼす。
また、3次元コンピュータグラフィックシステムでは、上述した理由の他にも、種々の要因で不要な演算を行うことがある。
【0007】
そのため、不要な画像処理を行わない技術が、たとえば、特許文献1、2に提案されている。しかしながら、特許文献1、2において提案されている技術は、画素データごとに、かつ、自動的に画像処理の有無を判断する技術ではない。
【0008】
特に、近年、3次元コンピュータグラフィックシステムの動作クロック周波数は非常に高くなっているため、消費電力の増加が著しく、3次元コンピュータグラフィックシステムにおける消費電力の低下が大きな課題になっている。
【0009】
【特許文献1】特開平06−309349号公報
【特許文献2】国際公開第98/06065号公報
【発明の開示】
【発明が解決しようとする課題】
【0010】
本発明は上述した従来技術の問題点に鑑みてなされ、消費電力の大幅な低下を図れることができる映像信号処理装置およびその方法を提供することを目的とする。
【課題を解決するための手段】
【0011】
本発明によれば、同時に処理を行うとする複数の画素毎にそれぞれ設けられ、複数の第1の画素データと対応する複数の第2の画素データとを、各画素毎に設定された混合比データが示す混合比で混合して複数の第3の画素データを生成する複数の画素データ処理回路と、前記第1の画素データまたは前記第2の画素データに基づいて、前記画素データ処理回路による前記混合を行うか否かを判断し、前記混合を行わないと判断した場合に、当該画素データ処理回路の動作を停止する制御手段とを有する映像信号処理装置が提供される。
【0012】
好ましくは、システムクロックから各画素データ処理回路を動作させる画素データ処理回路駆動クロック信号を生成するクロック生成手段をさらに有し、前記各画素データ処理回路は対応する画素データ処理回路駆動用クロック信号に基づいて動作し、前記制御手段は、前記混合を行うと判断した場合に、当該画素データ処理回路に前記画素データ処理回路駆動用クロック信号を供給し、前記混合を行わないと判断した場合に、当該画素データ処理回路への前記対応する画素データ処理回路駆動用クロック信号の供給を停止する。
【0013】
また好ましくは、前記画素データ処理回路の各々は、パイプライン処理を行うように相互に直列に接続された複数の処理回路を有する。
【0014】
好ましくは、前記画素データ処理回路内の直列に接続された複数の処理回路は、各処理回路を制御するフラグが転送されることにより、前記パイプライン処理および前記画素データ処理回路駆動用クロック信号の供給の制御を行う。
【0015】
さらに好ましくは、前記第2の画素データを記憶する記憶手段をさらに有し、前記制御手段は、前記混合を行わないと判断した場合に、前記第1の画素データによって前記記憶手段に記憶されている前記第2の画素データを書き換えるように制御し、前記混合を行うと判断した場合に、前記第3の画素データによって前記記憶手段に記憶されている前記第2の画素データを書き換えるように制御する。
【0016】
また本発明によれば、同時に処理を行おうとする複数の画素毎にそれぞれ設けられた複数の画素データ処理回路により、複数の第1の画素データと複数の第2の画素データとを、各画素毎に予め設定された混合比データが示す混合比で混合して複数の第3の画素データを生成し、前記第1の画素データまたは前記第2の画素データに基づいて、前記画素データ処理による前記混合を行うか否かを判断し、前記混合を行わないと判断した場合に、対応する画素データ処理回路の動作を停止する映像信号処理方法が提供される。
【0017】
好ましくは、前記各画素データ処理回路がシステムクロックから生成される対応する画素データ処理回路駆動クロック信号に基づいて動作し、前記混合を行うと判断した場合に、対応する画素データ処理回路に前記画素データ処理回路駆動用クロック信号を供給し、前記混合を行わないと判断した場合に、対応する画素データ処理回路への前記画素データ処理回路駆動用クロック信号の供給を停止する。
【0018】
また好ましくは、前記画素データ処理回路の各々は、直列に接続された複数の処理回路でパイプライン処理を行う。
【0019】
好ましくは、前記画素データ処理回路内の直列に接続された複数の処理回路は、各処理回路を制御するフラグが転送されることにより、前記パイプライン処理および前記画素処理回路駆動用クロック信号の供給の制御を行う。
【発明の効果】
【0020】
本発明によれば、画素データごとに映像信号処理可能な回路構成とし、処理が不要の画素データの処理を行わないようにその画素データの処理回路の動作を停止させ、より好ましくは、処理が不要の画素データの処理回路へのクロックの供給を停止することにより、映像信号処理装置における無駄な消費電力を低減することができる。
【発明を実施するための最良の形態】
【0021】
以下、本発明の映像信号装置の実施の形態について述べる。
本実施形態においては、家庭用ゲーム機などに適用される、任意の3次元物体モデルに対する所望の3次元画像をCRT(Cathode Ray Tube)などのディスプレイ上に高速に表示する3次元コンピュータグラフィックシステムについて説明する。
【0022】
第1実施形態
図1は、映像信号処理装置野1例として、本実施形態の3次元コンピュータグラフィックシステム1のシステム構成図である。
3次元コンピュータグラフィックシステム1は、立体モデルを単位図形である三角形を組み合わせた多角形(ポリゴン)の張り合わせとして表現し、このポリゴンを描画することで表示画面の各画素の色を決定し、ディスプレイに表示するポリゴンレンダリング処理を行うシステムである。
また、3次元コンピュータグラフィックシステム1では、平面上の位置を表現する(x,y)座標の他に、奥行きを表すz座標を用いて3次元物体を表し、この(x,y,z)の3つの座標で3次元空間の任意の一点を特定する。
【0023】
図1に示すように、3次元コンピュータグラフィックシステム1では、メインメモリ2、I/Oインタフェース回路3、メインプロセッサ4およびレンダリング回路5が、メインバス6を介して接続されている。
以下、各構成要素の機能について説明する。
メインプロセッサ4は、例えば、ゲームの進行状況などに応じて、メインメモリ2から必要なグラフィックデータを読み出し、このグラフィックデータに対してクリッピング(Clipping)処理、ライティング(Lighting)処理およびジオメトリ(Geometry)処理などを行い、ポリゴンレンダリングデータを生成する。メインプロセッサ4は、ポリゴンレンダリングデータS4を、メインバス6を介してレンダリング回路5に出力する。
I/Oインタフェース回路3は、必要に応じて、外部からポリゴンレンダリングデータを入力し、これをメインバス6を介してレンダリング回路5に出力する。
【0024】
ここで、ポリゴンレンダリングデータは、ポリゴンの各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)を用いて行われる。
すなわち、ポリゴンレンダリングデータは、三角形の各頂点の物理座標値と、
それぞれの頂点の色とテクスチャデータの同次座標および同次項を示している。
【0025】
以下、レンダリング回路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として機能する。
【0026】
DDAセットアップ回路10
DDAセットアップ回路10は、後段のトライアングルDDA回路11において物理座標系上の三角形の各頂点の値を線形補間して三角形の内部の各画素の色R,G,Bと深さ情報zを求めるのに先立ち、ポリゴンレンダリングデータS4が示す(z,R,G,B,α,s,t,q)データについて、三角形の辺と水平方向の差分を求めるセットアップ演算を行う。
このセットアップ演算は、具体的には、開始点の値と終点の値と、開始点と終点との距離を用いて、単位長さ移動した場合における、求めようとしている値の変分を算出する。
【0027】
また、DDAセットアップ回路10は、同時に処理を行う8画素のそれぞれについて、処理対象となる三角形の内部に位置するか否かを示す1ビットの有効指示データvalを決定する。具体的には、有効指示データvalは、三角形の内部に位置する画素について「1」とし、三角形の外部に位置する画素について「0」とする。
DDAセットアップ回路10は、算出した変分データS10と、各画素の有効指示データvalとをトライアングルDDA回路11に出力する。
【0028】
トライアングル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に出力する。
【0029】
ここで、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データS2201〜S2208とし、(z,R,G,B,α,s,t,q)データを被演算データS2211〜S2218とする。
すなわち、トライアングルDDA回路11は、8画素分の(x,y)データと、valデータS2201〜S2208と、被演算データS2211〜S2218からなるDDAデータS11をテクスチャエンジン回路12に出力する。
【0030】
テクスチャエンジン回路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を内蔵している。
【0031】
〔演算ブロック200〕
演算ブロック200は、DDAデータS11に含まれる(s,t,q)データを用いて、sデータをqデータで除算する演算と、tデータをqデータで除算する演算とを行う。
演算ブロック200は、図3に示すように、8個の演算サブブロック200
51〜2008を内蔵する。
ここで、演算サブブロック2001は、被演算データS2211およびvalデータS2201を入力し、valデータS2201が「1」、すなわち有効であることを示す場合には、「s/q」および「t/q」を算出し、その算出結果を除算結果S2001として演算ブロック201の演算サブブロック2011に出力する。
【0032】
また、演算サブブロック2001は、valデータS2201が「0」、すなわち無効であることを示す場合には、演算は行わず、除算結果S2001を出力しないか、あるいは、所定の仮値を示す除算結果S2001を演算ブロック201の演算サブブロック2011に出力する。
また、演算サブブロック2001は、valデータS2201を後段の演算サブブロック2011に出力する。
なお、演算サブブロック2002〜2008も、それぞれ対応する画素について、演算サブブロック2001と同じ演算を行い、それぞれ除算結果S20052〜S2008およびvalデータS2202〜S2208を後段の演算ブロック201の演算サブブロック2012〜2018にそれぞれ出力する。
【0033】
図4は、演算サブブロック2001の内部構成図である。
なお、図3に示す、全ての演算サブブロックは、基本的に、図4に示す構成をしている。
図4に示すように、演算サブブロック2001は、クロックイネーブラ(クロック有効化回路)2101、データ用フリップフロップ222、プロセッサエレメント223およびフラグ用フリップフロップ224を有する。
クロックイネーブラ2101は、システムクロック信号S225を基準としたタイミングでvalデータS2201を入力し、valデータS2201のレベルを検出する。そして、クロックイネーブラ2101は、valデータS2201が、「1」である場合には、例えば、クロック信号S2101にパルス発生させ、「0」である場合には、クロック信号S2101にパルス発生させない。
【0034】
データ用フリップフロップ222は、クロック信号S2101のパルスを検出すると、被演算データS2211を取り込み、プロセッサエレメント223に出力する。
プロセッサエレメント223は、入力した被演算データS2211を用いて前述した除算を行い、除算結果S2001を演算サブブロック2011のデータ用フリップフロップ222に出力する。
フラグ用フリップフロップ224は、システムクロック信号S225を基準としたタイミングで、valデータS2201を取り込み、後段の演算ブロック201の演算サブブロック2011のフラグ用フリップフロップ224に出力する。
なお、システムクロック信号S225は、図3に示す全ての演算サブブロック2001〜2008,2011〜2018,2021〜2028,2041〜2048のクロックイネーブラおよびフラグ用フリップフロップ224に供給される。
すなわち、演算サブブロック2001〜2008,2011〜2018,2021〜2028,2041〜2048における処理は同期して行われ、同一の演算ブロックに内蔵された8個の演算サブブロックは並行して処理を行う。
【0035】
〔演算ブロック201〕
演算ブロック201は、演算サブブロック2011〜2018を有し、演算ブロック200から入力した除算結果S2001〜S2008が示す「s/q」および「t/q」に、それぞれテクスチャサイズUSIZEおよびVSIZEを乗じて、テクスチャ座標データ(u,v)を生成する。
演算サブブロック2011〜2018は、それぞれクロックイネーブラ2111〜2118によりvalデータS2201〜S2208のレベル検出を行った結果、当該レベルが「1」の場合にのみ演算を行い、それぞれ演算結果であるテクスチャ座標データS2011〜S2018を、演算ブロック202の演算サブブロック2021〜2028に出力する。
【0036】
〔演算ブロック202〕
演算ブロック202は、演算サブブロック2021〜2028を有し、メモリI/F回路13を介して、SRAM17あるいはDRAM16に、演算ブロック201で生成したテクスチャ座標データ(u,v)を含む読み出し要求を出力し、メモリI/F回路13を介して、SRAM17あるいはテクスチャバッファ20に記憶されているテクスチャデータを読み出すことで、(u,v)データに対応したテクスチャアドレスに記憶された(R,G,B,α)データS17を得る。
なお、テクスチャバッファ20には、MIPMAP(複数解像度テクスチャ)などの複数の縮小率に対応したテクスチャデータが記憶されている。ここで、何れの縮小率のテクスチャデータを用いるかは、所定のアルゴリズムを用いて、前記三角形を単位として決定される。
また、SRAM17には、テクスチャバッファ20に記憶されているテクスチャデータのコピーが記憶されている。
演算サブブロック2021〜2028は、それぞれクロックイネーブラ2121〜2128によりvalデータS2201〜S2208のレベル検出を行った結果、当該レベルが「1」の場合にのみ読み出し処理を行い、それぞれ読み出した(R,G,B,α)データS17を、(R,G,B,α)データS2021〜S2028として、それぞれ演算ブロック203の演算サブブロック2031〜2038に出力する。
【0037】
なお、テクスチャエンジン回路12は、フルカラー方式の場合には、テクスチャバッファ20から読み出した(R,G,B,α)データを直接用いる。一方、テクスチャエンジン回路12は、インデックスカラー方式の場合には、予め作成したカラールックアップテーブル(CLUT)をテクスチャCLUTバッファ23から読み出して、内蔵するSRAMに転送および記憶し、このカラールックアップテーブルを用いて、テクスチャバッファ20から読み出したカラーインデックスに対応する(R,G,B)データを得る。
【0038】
〔演算ブロック203〕
演算ブロック203は、演算サブブロック2031〜2038を有し、演算ブロック202から入力したテクスチャデータである(R,G,B.α)データS2021〜S2028と、トライアングルDDA回路11からのDDAデータS11に含まれる(R,G,B)データとを、(R,G,B.α)データS2021〜S2028に含まれるαデータ(テクスチャα)が示す割合で混合し、(R,G,B)混合データを生成する。
そして、演算ブロック203は、生成された(R,G,B)混合データと、対応するDDAデータS11に含まれるαデータとを含む(R,G,B,α)データS2031〜S2038を、演算ブロック204に出力する。
演算サブブロック2031〜2038は、それぞれクロックイネーブラ2131〜2138によりvalデータS2201〜S2208のレベル検出を行った結果、当該レベルが「1」の場合にのみ上記混合および(R,G,B,α)データS2031〜S2038の出力を行う。
【0039】
〔演算ブロック204〕
演算ブロック204は、演算サブブロック2041〜2048を有し、入力した(R,G,B,α)データS2031〜S2038について、zバッファ22に記憶されたzデータの内容を用いて、z比較を行い、(R,G,B,α)データS2031〜S2038によって描画する画像が、前回、ディスプレイバッファ21に描画した値よりも手前(視点側)に位置する場合には、zバッファ22を更新すると共に、(R,G,B,α)データS2031〜S2038を、(R,G,B,α)データS2041〜S2048として、それぞれ演算ブロック205の演算サブブロック2051〜2058に出力する。
演算サブブロック2041〜2048は、それぞれクロックイネーブラ2141〜2148によりvalデータS2201〜S2208のレベル検出を行った結果、当該レベルが「1」の場合にのみ上述したz比較および(R,G,B,α)データS2041〜S2048の出力を行なう。
【0040】
〔演算ブロック205〕
演算ブロック205は、演算サブブロック2051〜2058を有し、入力した(R,G,B,α)データS2041〜S2048と、既にディスプレイバッファ21に記憶されている(R,G,B)データとを、それぞれ(R,G,B,α)データS2041〜S2048に含まれるαデータが示す混合値で混合し、混合後の(R,G,B)データS2051〜S2058をディスプレイバッファ21に書き込む(打ち込む)。
なお、メモリI/F回路13によるDRAM16に対してのアクセスは、16画素について同時に行なわれる。
演算サブブロック2051〜2058は、それぞれクロックイネーブラ2151〜2158によりvalデータS2201〜S2208のレベル検出を行った結果、当該レベルが「1」の場合にのみ上述した混合処理およびディスプレイバッファ21への書き込み処理を行う。
【0041】
CRTコントローラ回路14
CRTコントローラ回路14は、与えられた水平および垂直同期信号に同期して、図示しないCRTに表示するアドレスを発生し、ディスプレイバッファ21から表示データを読み出す要求をメモリI/F回路13に出力する。この要求に応じて、メモリI/F回路13は、ディスプレイバッファ21から一定の固まりで表示データを読み出す。CRTコントローラ回路14は、ディスプレイバッファ21から読み出した表示データを記憶するFIFO(First In First Out)回路を内蔵し、一定の時間間隔で、RAMDAC回路15に、RGBのインデックス値を出力する。
【0042】
RAMDAC回路15
RAMDAC回路15は、各インデックス値に対応するR,G,Bデータを記憶しており、CRTコントローラ回路14から入力したRGBのインデックス値に対応するデジタル形式のR,G,Bデータを、D/Aコンバータに転送し、アナログ形式のR,G,Bデータを生成する。RAMDAC回路15は、この生成されたR,G,BデータをCRTに出力する。
【0043】
以下、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に出力される。
【0044】
次に、テクスチャエンジン回路12およびメモリI/F回路13において、DDAデータS11を用いて、「s/q」および「t/q」の算出処理、テクスチャ座標データ(u,v)の算出処理、テクスチャバッファ20からのデジタルデータとしての(R,G,B,α)データの読み出し処理、混合処理、および、ディスプレイバッファ21への書き込み処理が、図3に示す演算ブロック200,201,202,,203,204,205でパイプライン方式で順に実行される。
【0045】
次に、図3に示すテクスチャエンジン回路12およびメモリI/F回路13のパイプライン処理の動作について説明する。
ここでは、例えば、図6に示すような矩形31内の8画素について同時処理する場合を考える。この場合には、valデータS2201,S2202,S2203,S2205,S2206が「0」を示し、valデータS2204,S2207,S2208が「1」を示している。
【0046】
valデータS2201〜S2208および被演算データS2211〜S2218が、それぞれ対応する演算サブブロック2001〜2008のクロックイネーブラ2101〜2108に入力される。
そして、クロックイネーブラ2101〜2108において、それぞれvalデータS2201〜S2208のレベルが検出される。具体的には、クロックイネーブラ2104,2107,2108において「1」が検出され、クロックイネーブラ2101,2102,2103,2105,2106において「0」が検出される。
その結果、演算サブブロック2004,2007,2008においてのみ、被演算データS2214,S2217,S2218を用いて、「s/q」および「t/q」が算出され、当該除算結果S2004,S2007,S2008が演算ブロック201の演算ブロック2014,2017,2018に出力される。
一方、演算サブブロック2001,2002,2003,2005,20056では、除算は行なわれない。
また、除算結果S2004,S2007,S2008の出力と同期して、valデータS2201〜S2208が、演算ブロック201の演算サブブロック2011〜2018に出力される。
【0047】
次に、演算サブブロック2011〜2018のクロックイネーブラ2101〜2108において、それぞれvalデータS2201〜S2208のレベルが検出される。
そして、この検出結果に基づいて、演算サブブロック2014,2017,2018においてのみ、除算結果S2004,S2007,S2008が示す「s/q」および「t/q」に、それぞれテクスチャサイズUSIZEおよびVSIZEを乗じて、テクスチャ座標データS2024,S2027,S2028が生成され、それぞれ演算ブロック202の演算サブブロック2024,2027,2028に出力される。
一方、演算サブブロック2011,2012,2013,2015,20156では、演算は行なわれない。
また、テクスチャ座標データS2024,S2027,S2028の出力と同期して、valデータS2201〜S2208が、演算ブロック202の演算サブブロック2021〜2028に出力される。
【0048】
次に、演算サブブロック2021〜2028のクロックイネーブラ2121〜2128において、それぞれvalデータS2201〜S2208のレベルが検出される。
そして、この検出結果に基づいて、演算サブブロック2024,2027,2028においてのみ、SRAM17あるいはテクスチャバッファ20に記憶されているテクスチャデータの読み出し処理が行なわれ、(s,t)データに対応したテクスチャアドレスに記憶された(R,G,B,α)データが読み出される。そして、この読み出した(R,G,B,α)データS2024,S2027,S2028が、演算ブロック204の演算サブブロック2034,2037,2038に出力される。
一方、演算サブブロック2021,2022,2023,2025,20256では、読み出し処理は行なわれない。
また、(R,G,B,α)データS2024,S2027,S2028の出力と同期して、valデータS2201〜S2208が、演算ブロック203の演算サブブロック2031〜2038に出力される。
【0049】
次に、演算サブブロック2031〜2038のクロックイネーブラ2121〜2128において、それぞれvalデータS2201〜S2208のレベルが検出される。
そして、この検出結果に基づいて、演算サブブロック2034,2037,2038においてのみ、それぞれ演算ブロック202から入力したテクスチャデータである(R,G,B.α)データS2024,2027,2028と、トライアングルDDA回路11からのDDAデータS11に含まれる(R,G,B)データとを、(R,G,B.α)データS2024,2027,2028に含まれるαデータ(テクスチャα)が示す割合で混合し、(R,G,B)混合データを生成する。
そして、演算サブブロック2034,2037,2038は、生成された(R,G,B)混合データと、対応するDDAデータS11に含まれるαデータとを含む(R,G,B,α)データS2034,2037,2038を、演算ブロック204に出力する。
一方、演算サブブロック2031,2032,2033,2035,20356では、混合処理は行なわれない。
【0050】
次に、演算サブブロック2041〜2048のクロックイネーブラ2141〜2148において、それぞれvalデータS2201〜S2208のレベルが検出される。
そして、この検出結果に基づいて、演算サブブロック2044,2047,2048においてのみ、(R,G,B,α)データS2034,S2037,S2038について、zバッファ22に記憶されたzデータの内容を用いて、z比較が行なわれ、(R,G,B,α)データS2034,S2037,S2038によって描画する画像が、前回、ディスプレイバッファ21に描画した値よりも手前に位置する場合には、zバッファ22が更新されると共に、(R,G,B,α)データS2034,S2037,S2038が、それぞれ(R,G,B,α)データS2044,S2047,S2048として、それぞれ演算サブブロック205の演算サブブロック2054,2057,2058に出力される。
【0051】
次に、演算サブブロック2051〜2058のクロックイネーブラ2151〜2158において、それぞれvalデータS2201〜S2208のレベルが検出される。
そして、この検出結果に基づいて、(R,G,B,α)データS2044,S2047,S2048の(R,G,B)データと、既にディスプレイバッファ21に記憶されている(R,G,B)データとが、αデータが示す混合値で混合され、(R,G,B)データS2054,S2057,S2058が最終的に算出される。
そして、この混合処理された,(R,G,B)データS2054,S20557,S2058が、ディスプレイバッファ21に書き込まれる。
一方、演算サブブロック2041,2042,2043,2045,20456では、混合処理は行なわれない。
【0052】
すなわち、テクスチャエンジン回路12およびメモリI/F回路13では、図6に示す矩形31内の画素について同時に処理を行なう場合に、三角形30の外に位置する画素についての処理は行なわない。すなわち、図4に示す矩形31内の画素についての演算を行なっている間は、演算サブブロック2001,2002,2003,2005,2006,2011,2012,2013,20155,2016,2021,2022,2023,2025,2026,2041,2042,2043,2045,2046,2051,2052,20553,2055,2056は停止した状態になり、これらの演算サブブロックは電力を消費しない。
【0053】
以上説明したように、3次元コンピュータグラフィックシステム1によれば、テクスチャエンジン回路12におけるパイプライン処理において、同時処理する8画素のうち、処理対象となる三角形の外部に位置する画素についての演算は行なわないようにすることができる。
そのため、テクスチャエンジン回路12における消費電力を大幅に低減できる。その結果、3次元コンピュータグラフィックシステム1の電源として、簡単かつ安価なものを用いることができる。
なお、テクスチャエンジン回路12は、図3および図4に示すように、各演算サブブロックに、クロックイネーブラおよび1ビットのフラグ用フリップフロップを組み込むことで、上述した機能を実現するが、クロックイネーブラおよび1ビットのフラグ用フリップフロップの回路規模は小さいため、テクスチャエンジン回路12の回路規模が大幅に増大することはない。
【0054】
第2実施形態
図5は、本実施形態の3次元コンピュータグラフィックシステム451のシステム構成図である。
本実施形態の3次元コンピュータグラフィックシステム451は、αブレンド処理を行うか否かを各画素毎に予め判断し、αブレンド(混合)処理を行わないと判断した場合に、αブレンド処理を行う演算サブブロックのうち対応する演算サブブロックの処理を停止させる点を除いて、前述した第1実施形態の3次元コンピュータグラフィックシステム1と同じである。
すなわち、本実施形態では、各演算サブブロックは、第1実施形態の場合と同様に、対応する画素が処理対象となる三角形の外部に位置する場合には処理を停止する。また、演算サブブロックのうちαブレンド処理を行う演算サブブロックは、対応する画素が処理対象となる三角形の外部に位置するか、あるいは対応する画素のαデータが「0」である場合に処理を停止する。
【0055】
図5に示すように、3次元コンピュータグラフィックシステム451は、メインメモリ2、I/Oインタフェース回路3、メインプロセッサ4およびレンダリング回路425がメインバス6を介して接続されている。
図5において、図1と同じ符号を付した構成要素は、第1実施形態で説明した同一符号を付した構成要素と同じである。
すなわち、メインメモリ2、I/Oインタフェース回路3、メインプロセッサ4およびメインバス6は、第1実施形態で説明したものと同じである。
【0056】
また、図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実施形態で説明したものと同じである。
【0057】
以下、トライアングル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データS2201〜S2208とし、(z,R,G,B,α,s,t,q)データを被演算データS2211〜S2218とする。
すなわち、トライアングルDDA回路11は、8画素分の(x,y)データと、valデータS2201〜S2208と、被演算データS2211〜S2218とからなるDDAデータS11をテクスチャエンジン回路12に出力する。
【0058】
また、トライアングルDDA回路411は、並行して処理を行う8画素について、上述したように線形補間して生成した(z,R,G,B,α,s,t,q)データのうちαデータが「0」であるか否か、すなわちαブレンド処理を行うか否かを判断する。
そして、トライアングルDDA回路411は、αデータが「0」であると判断した場合に、「0」(αブレンド処理を行わないことを)を示すvalデータ411a1〜S411a8をメモリI/F回路413に出力し、αデータが「0」ではないと判断した場合に、「1」(αブレンド処理を行うことを)を示すvalデータ411a1〜S411a8をメモリI/F回路413に出力する。
【0059】
メモリI/F回路413
図6は、テクスチャエンジン回路12およびメモリI/F回路413の構成図である。
図6に示すように、メモリI/F回路413は、演算ブロック204および演算ブロック405を有する。
なお、図6において、図3と同じ符号を付した構成要素は、第1実施形態で説明した同一符号を構成要素と同じである。
すなわち、テクスチャエンジン回路12は、第1実施形態で説明したものと同じであり、メモリI/F回路413の演算ブロック204も第1実施形態で説明したものと同じである。
【0060】
以下、メモリI/F回路413の演算ブロック405について説明する。
〔演算ブロック405〕
演算ブロック405は、演算サブブロック4051〜4058を有し、演算サブブロック2041〜2048から入力した(R,G,B,α)データS2041〜S2048と、既にディスプレイバッファ21に記憶されている(R,G,B)データとを、それぞれ(R,G,B,α)データS2041〜S2048に含まれるαデータが示す混合値で混合し、混合後の(R,G,B)データS4051〜S4058をディスプレイバッファ21に書き込む(打ち込む)。
このとき、演算サブブロック4051〜4058は、それぞれクロックイネーブラ4151〜4158により、それぞれ演算ブロック204からのvalデータS2201〜S2208および図5に示すトライアングルDDA回路411からのvalデータS411a1〜S411a8のレベルを検出し、双方のレベルが「1」の場合にのみαブレンド処理を行う。
ここで、双方のレベルが「1」の場合とは、当該画素が処理対象となる三角形の内部に位置し、しかも、当該画素のαデータが「0」でない(αブレンド処理を行うことを示す)場合である。
すなわち、演算サブブロック4051〜4058は、それぞれvalデータS2201〜S2208およびvalデータS411a1〜S411a8のうちいずれか一方が「0」の場合には、αブレンド処理を行わない。
【0061】
なお、演算サブブロック4051〜4058は、valデータS2201〜S2208のレベルが「1」であり、valデータS411a1〜S411a8のレベルが「0」の場合には、演算サブブロック2041〜2048から入力した(R,G,B,α)データS2041〜S2048をディスプレイバッファ21に書き込む。
【0062】
以下、3次元コンピュータグラフィックシステム451の動作について説明する。
3次元コンピュータグラフィックシステム451の全体動作は、基本的に前述した第1実施形態で説明した3次元コンピュータグラフィックシステム1の全体動作と同じである。
また、図6に示すテクスチャエンジン回路12およびメモリI/F回路413のパイプライン処理の動作は、演算ブロック200〜204の処理については、前述した第1実施形態で説明した動作と同じである。
【0063】
以下、演算ブロック405の動作について説明する。
それぞれ図6に示す演算サブブロック2041〜2048から演算サブブロック4151〜4158に、(R,G,B,α)データS2041〜S2048およびvalデータS2201〜S2208が出力される。
また、図5に示すトライアングルDDA回路411において、線形補間して生成した(z,R,G,B,α,s,t,q)データのうちαデータが「0」であるか否かが判断され、当該判断の結果を示すvalデータ411a1〜S411a8が図6に示す演算サブブロック4151〜4158にそれぞれ出力される。
そして、演算サブブロック4151〜4158において、それぞれクロックイネーブラ4151〜4158により、valデータS2201〜S2208およびvalデータS411a1〜S411a8のレベルが検出され、双方のレベルが「1」の場合にのみαブレンド処理が行われる。
αブレンド処理では、(R,G,B,α)データS2041〜S2048と、既にディスプレイバッファ21に記憶されている(R,G,B)データとが、それぞれ(R,G,B,α)データS2041〜S2048に含まれるαデータが示す混合値で混合されて(R,G,B)データS4051〜S4058が生成される。そして、(R,G,B)データS4051〜S4058が、ディスプレイバッファ21に書き込まれる。
【0064】
すなわち、本実施形態では、演算サブブロック4151〜4158のそれぞれにおいて、valデータS2201〜S2208およびvalデータS411a1〜S411a8のうち何れか一方が「0」の場合には、αブレンド処理は行われない。
【0065】
以上説明したように、3次元コンピュータグラフィックシステム451によれば、トライアングルDDA回路411において、各画素についてαデータが「0」であるか否かを判断する。
そして、メモリI/F回路413において、同時処理する8画素のうち処理対象となる三角形の内部に位置する画素であっても、トライアングルDDA回路411による上記判断の結果に基づいて、αデータが「0」の画素についてのαブレンド処理を行わないようにすることができる。
そのため、3次元コンピュータグラフィックシステム451によれば、前述した第1実施形態の3次元コンピュータグラフィックシステム1に比べてさらに、消費電力を低減できる。
【0066】
第3実施形態
図7は、本実施形態の3次元コンピュータグラフィックシステム551のシステム構成図である。
本実施形態の3次元コンピュータグラフィックシステム551では、例えば、処理対象となっている画素のzデータとzバッファに記憶されている対応するzデータとの比較を行い、今回描画しようとする画像が前回描画した画像より奥側(視点側と反対の方向)にある場合には、当該画素についてのテクスチャ座標データ(u,v)の生成処理、テクスチャデータの読み出し処理、テクスチャαブレンド処理およびαブレンド処理を停止する。
【0067】
図7に示すように、3次元コンピュータグラフィックシステム551は、メインメモリ2、I/Oインタフェース回路3、メインプロセッサ4およびレンダリング回路525がメインバス6を介して接続されている。
図7において、図1と同じ符号を付した構成要素は、第1実施形態で説明した同一符号を付した構成要素と同じである。
すなわち、メインメモリ2、I/Oインタフェース回路3、メインプロセッサ4およびメインバス6は、第1実施形態で説明したものと同じである。
【0068】
また、図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実施形態で説明したものと同じである。
【0069】
以下、テクスチャエンジン回路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ではαブレンド処理が行われる。
【0070】
〔演算ブロック500〕
演算ブロック500は、演算サブブロック5001〜5008を有し、図7に示すトライアングルDDA回路11からDDAデータS11を入力する。
演算サブブロック5001〜5008は、それぞれクロックイネーブラ2141〜2148において、DDAデータS11に含まれるvalデータS22051〜S2208のレベル検出を行い、その結果、当該レベルが「1」の場合(当該画素が、処理対象となる三角形の内部に位置する場合)にはz(奥行き)比較処理を行い、当該レベルが「1」でない場合にはz比較処理を行わない。
【0071】
演算サブブロック5001〜5008は、z比較処理において、DDAデータS11に含まれる被演算データS2211〜S2218のzデータと、zバッファ22に記憶された対応するzデータとを比較する。
そして、演算サブブロック5001〜5008は、被演算データS2211〜S2218によって描画する画像が、前回、ディスプレイバッファ21に描画した値よりも手前(視点側)に位置する場合には、それぞれ「1」を示すvalデータS500a1〜S500a8を演算ブロック501の演算サブブロック5011〜5018に出力し、それぞれ被演算データS2211〜S2218のzデータで、zバッファ22に記憶されている対応するzデータを書き換える。このとき、演算サブブロック5001〜5008は、さらに被演算データS22151〜S2218を演算サブブロック5011〜5018に出力する。
一方、演算サブブロック5001〜5008は、被演算データS2211〜S2218によって描画する画像が、前回、ディスプレイバッファ21に描画した値よりも手前(視点側)に位置しない場合には、それぞれ「0」を示すvalデータS500a1〜S500a8を演算ブロック501の演算サブブロック5011〜5018に出力し、zバッファ22に記憶されている対応するzデータを書き換えない。
【0072】
〔演算ブロック501〕
演算ブロック501は、DDAデータS11が示す(s,t,q)データを用いて、sデータをqデータで除算する演算と、tデータをqデータで除算する演算とを行う。
演算ブロック501は、図8に示すように、8個の演算サブブロック50151〜5018を内蔵する。
ここで、演算サブブロック5011は、被演算データS2211およびvalデータS2201,S500a1を入力し、クロックイネーブラ5111〜5118により、valデータS2201およびS500a1の双方が「1」、すなわち有効であるか否かを判断し、双方が「1」であると判断した場合に、「s/q」および「t/q」を算出し、これを除算結果S5011として演算ブロック502の演算サブブロック5021に出力する。
【0073】
また、演算サブブロック5011は、valデータS2201およびS500a1のいずれか一方が「0」、すなわち無効であることを示すと判断した場合には演算は行わず、除算結果S5011を出力しないか、あるいは、所定の仮値を示す除算結果S5011を演算ブロック502の演算サブブロック5021に出力する。
なお、演算サブブロック5012〜5018も、それぞれ対応する画素について、演算サブブロック5011と同じ演算を行い、それぞれ除算結果S50152〜S5018を後段の演算ブロック502の演算サブブロック5022〜5028にそれぞれ出力する。
【0074】
〔演算ブロック502〕
演算ブロック502は、演算サブブロック5021〜5028を有し、演算ブロック501から入力した除算結果S5011〜S5018が示す「s/q」および「t/q」に、それぞれテクスチャサイズUSIZEおよびVSIZEを乗じて、テクスチャ座標データ(u,v)を生成する。
演算サブブロック5021は、クロックイネーブラ5121においてvalデータS2201およびS500a1のレベル検出を行い、双方のレベルが「1」の場合にのみ演算を行い、それぞれ演算結果であるテクスチャ座標データS5021を、演算ブロック503の演算サブブロック5031に出力する。
演算サブブロック5022〜5028も、演算サブブロック5021と同様に、対応するデータの処理を行う。
【0075】
〔演算ブロック503〕
演算ブロック503は、演算サブブロック5031〜5038を有し、メモリI/F回路13を介して、SRAM17あるいはDRAM16に、演算ブロック502で生成したテクスチャ座標データ(u,v)を含む読み出し要求を出力し、メモリI/F回路13を介して、SRAM17あるいはテクスチャバッファ20に記憶されているテクスチャデータを読み出すことで、(u,v)データに対応したテクスチャアドレスに記憶された(R,G,B,α)データS17を得る。
演算サブブロック5031は、クロックイネーブラ5131においてvalデータS2201およびS500a1のレベル検出を行い、双方のレベルが「1」の場合にのみ読み出し処理を行い、それぞれ読み出した(R,G,B,α)データS17を、(R,G,B.α)データS5031として、演算ブロック203の演算サブブロック5041に出力する。
演算サブブロック5032〜5038も、演算サブブロック5031と同様に、対応するデータの処理を行う。
【0076】
〔演算ブロック504〕
演算ブロック504は、演算サブブロック5041〜5048を有し、演算ブロック503から入力したテクスチャデータである(R,G,B.α)データS5031〜S5038と、トライアングルDDA回路11からの対応するDDAデータS11に含まれる(R,G,B)データとを、(R,G,B.α)データS5031〜S5038に含まれるαデータ(テクスチャα)が示す割合で混合し、(R,G,B)混合データを生成する。
そして、演算ブロック504は、生成された(R,G,B)混合データと、対応するDDAデータS11に含まれるαデータとを含む(R,G,B,α)データS5041〜S5048を、演算ブロック505に出力する。
演算サブブロック5041〜5048は、それぞれクロックイネーブラ5141〜5148によりvalデータS2201〜S2208およびS500a1〜S500a8のレベル検出を行い、双方のレベルが「1」の場合にのみ上記混合処理を行う。
【0077】
〔演算ブロック505〕
演算ブロック505は、演算サブブロック5051〜5058を有し、入力した(R,G,B,α)データS5041〜S5048と、既にディスプレイバッファ21に記憶されている(R,G,B)データとを、それぞれ(R,G,B,α)データS5041〜S5048に含まれるαデータが示す混合値で混合し、混合後の(R,G,B)データS5051〜S5058をディスプレイバッファ21に書き込む(打ち込む)。
演算サブブロック5051〜5058は、それぞれクロックイネーブラ2151〜2158においてvalデータS2201〜S2208およびS500a51〜S500a8のレベルを検出し、双方のレベルが「1」の場合にのみ上記混合処理およびディスプレイバッファ21への書き込み処理を行う。
【0078】
以下、図8に示すテクスチャエンジン回路512およびメモリI/F回路513のパイプライン処理の動作について説明する。
先ず、演算サブブロック5001〜5008のクロックイネーブラ2141〜2148において、それぞれDDAデータS11に含まれるvalデータS2201〜S2208のレベル検出が行われ、当該レベルが「1」の場合(当該画素が、処理対象となる三角形の内部に位置する場合)にはz比較処理が行われる。
そして、被演算データS2211〜S2218によって描画する画像が、前回、ディスプレイバッファ21に描画した値よりも手前(視点側)に位置する場合には、それぞれ「1」を示すvalデータS500a1〜S500a8が演算ブロック501の演算サブブロック5011〜5018に出力され、それぞれ被演算データS2211〜S2218のzデータで、zバッファ22に記憶されている対応するzデータが書き換えられる。このとき、さらに被演算データS2211〜S2218が、演算サブブロック5001〜5008から演算サブブロック5011〜5018に出力される。
一方、valデータS2201〜S2208のレベルが「1」でない場合にはz比較処理は行われず、それぞれ「0」を示すvalデータS500a1〜S500a8が演算ブロック501の演算サブブロック5011〜5018に出力される。このとき、zバッファ22に記憶されている対応するzデータは書き換えられない。
【0079】
次に、演算サブブロック5011〜5018のクロックイネーブラ5111〜5118において、valデータS2201およびS500a1の双方が「1」、すなわち有効であるか否かが判断され、双方が「1」であると判断された場合に、「s/q」および「t/q」が算出され、これが除算結果S5011〜S5018として演算ブロック502の演算サブブロック5021〜5028に出力される。
一方、valデータS2201〜S2208およびS500a1〜S500a8のいずれか一方が「0」、すなわち無効であることを示すと判断された場合には、それぞれ演算サブブロック5011〜5018では演算は行われない。
【0080】
次に、演算サブブロック5021〜5028のクロックイネーブラ5121〜5128においてvalデータS2201〜S2208およびS500a1〜S500a8のレベル検出が行われる。
そして、双方のレベルが「1」の場合にのみ、演算サブブロック5021〜5028において、それぞれ演算ブロック501から入力した除算結果S50151〜S5018が示す「s/q」および「t/q」に、それぞれテクスチャサイズUSIZEおよびVSIZEが乗算され、テクスチャ座標データ(u,v)が生成される。テクスチャ座標データ(u,v)は、それぞれ演算サブブロック5031〜5038に出力される。
【0081】
次に、演算サブブロック5031〜5038のクロックイネーブラ5131〜5138において、valデータS2201〜S2208およびS500a1〜S500a8のレベル検出が行われ、双方のレベルが「1」の場合にのみ、テクスチャ座標データ(u,v)を含む読み出し要求がSRAM17に出力され、メモリI/F回路13を介してテクスチャデータが読み出され、(u,v)データに対応したテクスチャアドレスに記憶された(R,G,B,α)データS17が得られる。(R,G,B,α)データS17は、(R,G,B.α)データS5031〜S5038として、演算サブブロック5041〜5048に出力される。
【0082】
次に、演算サブブロック5041〜5048のクロックイネーブラ5141〜5148によりvalデータS2201〜S2208およびS500a1〜S500a8のレベル検出が行われ、双方のレベルが「1」の場合にのみ、(R,G,B.α)データS5031〜S5038と、トライアングルDDA回路11からの対応するDDAデータS11に含まれる(R,G,B)データとが、(R,G,B.α)データS5031〜S5038に含まれるαデータ(テクスチャα)が示す割合で混合され、(R,G,B)混合データが生成される。
そして、当該生成された(R,G,B)混合データと、対応するDDAデータS11に含まれるαデータとを含む(R,G,B,α)データS5041〜S5048が、演算サブブロック5041〜5048から演算サブブロック50551〜5058に出力される。
【0083】
次に、演算サブブロック5051〜5058のクロックイネーブラ2151〜2158において、valデータS2201〜S2208およびS500a1〜S500a8のレベルが検出され、双方のレベルが「1」の場合にのみ、(R,G,B,α)データS5041〜S5048と、既にディスプレイバッファ21に記憶されている(R,G,B)データとが、それぞれ(R,G,B,α)データS5041〜S5048に含まれるαデータが示す混合値で混合され、混合後の(R,G,B)データS5051〜S5058がディスプレイバッファ21に書き込まれる。
【0084】
以上説明したように、3次元コンピュータグラフィックシステム551によれば、テクスチャエンジン回路512の初段の演算ブロック500において各画素に関するz比較処理を行い、後の処理によって生成される画像データがディスプレイバッファ21に書き込まれるものであるかを判断する。
そして、テクスチャエンジン回路512およびメモリI/F回路513において、同時処理する8画素のうち処理対象となる三角形の内部に位置する画素であっても、演算ブロック500による上記判断の結果に基づいて、ディスプレイバッファ21に書き込まない画像データに関する処理を行わないように(停止)する。
そのため、3次元コンピュータグラフィックシステム551によれば、前述した第1実施形態の3次元コンピュータグラフィックシステム1に比べてさらに、消費電力を低減できる。
【0085】
本発明は上述した実施形態には限定されない。
例えば、前述した第2実施形態では、図6に示すように、テクスチャエンジン回路12およびメモリI/F回路413の各演算ブロックで8画素のデータについて同時に処理する場合について例示したが、図9に示すように、各演算ブロックで1画素のデータの処理を行うようにしてもよい。
この場合には、処理対象となる画素の被演算データS2211のみがテクスチャエンジン回路12に入力されるため、valデータS2201は不要となる。
すなわち、演算サブブロック2001,2011,2021,2031,2041では常に演算が行われ、演算サブブロック4051ではvalデータS400a1のレベルが「1」の場合にのみαブレンド処理が行われる。
【0086】
また、前述した第3実施形態では、図8に示すように、テクスチャエンジン回路512およびメモリI/F回路513の各演算ブロックで8画素のデータについて同時に処理する場合について例示したが、図10に示すように、各演算ブロックで1画素のデータの処理を行うようにしてもよい。
この場合には、処理対象となる画素の被演算データS2211のみがテクスチャエンジン回路512に入力されるため、valデータS2201は不要となる。すなわち、演算サブブロック5001ではz比較処理が常に行われ、演算サブブロック5011,5021,5031,5041,5051では、演算サブブロック5001で生成されたvalデータS500a1のレベルが「1」の場合にのみ処理が行われる。
【0087】
また、例えば、上述した実施形態では、図3に示すように、テクスチャエンジン回路12およびメモリI/F回路13におけるパイプライン処理を行なう演算サブブロックについて、valデータS2201〜S2208を利用する場合を例示したが、例えば、図1にレンダリング回路5内のDDAセットアップ回路10、トライアングルDDA回路11、テクスチャエンジン回路12およびメモリI/F回路13における処理のうち、パイプライン処理を行なわない所定の処理について、図11に示すように、valデータS3201〜S3208を用いて、演算処理の実行の有無を決定するようにしてもよい。
【0088】
また、上述した実施形態では、SRAM17を用いる構成を例示したが、SRAM17を設けない構成にしてもよい。
また、テクスチャバッファ20およびテクスチャCLUTバッファ23を、DRAM16の外部に設けてもよい。
【0089】
また、上述した実施形態では、3次元画像を表示する場合を例示したが、本発明は複数画素についてのデータを同時に処理して2次元画像を表示する場合にも適用できる。
また、上述した実施形態では、図2に示すように、画像処理の対象となる(z,R,G,B,α,s,t,q)データに、有効指示データとしてのvalデータを付加したDDAデータS11を用いた場合を例示したが、(z,R,G,B,α,s,t,q)データと、valデータとを別個独立のデータとして扱うようにしてもよい。
【0090】
また、上述した実施形態では、ポリゴンレンダリングデータを生成するジオメトリ処理を、メインプロセッサ4で行なう場合を例示したが、レンダリング回路5で行なう構成にしてもよい。
【0091】
さらに、上述した実施形態では、単位図形として三角形を例示したが、単位図形は特に限定されず、例えば、矩形であってもよい。
【0092】
以上説明したように、本発明の映像信号処理装置およびその方法によれば、消費電力の大幅な低下を図ることができる。
そのため、本発明の映像信号処理装置によれば、小規模かつ簡単な構成の電源を用いることができ、小規模化を図ることができる。
【図面の簡単な説明】
【0093】
【図1】図1は、本発明の第1実施形態の3次元コンピュータグラフィックシステムのシステム構成図である。
【図2】図1に示すトライアングルDDA回路から出力されるDDAデータのフォーマットを説明するための図である。
【図3】図3は、図1に示すテクスチャエンジン回路およびメモリI/F回路の部分構成図である。
【図4】図4は、図3に示す演算サブブロックの内部構成図である。
【図5】図5は、本発明の第2実施形態の3次元コンピュータグラフィックシステムのシステム構成図である。
【図6】図6は、図5に示すテクスチャエンジン回路およびメモリI/F回路の部分構成図である。
【図7】図7は、本発明の第3実施形態の3次元コンピュータグラフィックシステムのシステム構成図である。
【図8】図8は、図7に示すテクスチャエンジン回路およびメモリI/F回路の部分構成図である。
【図9】図9は、図5に示す3次元コンピュータグラフィックシステムの変形例の構成図である。
【図10】図10は、図7に示す3次元コンピュータグラフィックシステムの変形例の構成図である。
【図11】図11は、図1に示す3次元コンピュータグラフィックシステムにおけるクロックイネーブラーを適用した、パイプライン処理を行なっていない演算ブロックの構成図である。
【図12】図12は、従来技術の問題点を説明するための図である。
【符号の説明】
【0094】
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…演算ブロック、2001〜2008,2011〜2018,2021〜2028,2031〜2038,204〜2048,2051〜2058…演算サブブロック、2101〜2108,2111〜2118,2121〜2128,2131〜2138,2141〜2148,2151〜2158…クロックイネーブラ、222…データ用フリップフロップ、223…プロセッサエレメント、224…フラグ用フリップフロップ
【特許請求の範囲】
【請求項1】
同時に処理を行うとする複数の画素毎にそれぞれ設けられ、複数の第1の画素データと対応する複数の第2の画素データとを、各画素毎に設定された混合比データが示す混合比で混合して複数の第3の画素データを生成する複数の画素データ処理回路と、
前記第1の画素データまたは前記第2の画素データに基づいて、前記画素データ処理回路による前記混合を行うか否かを判断し、前記混合を行わないと判断した場合に、当該画素データ処理回路の動作を停止する制御手段と
を有する映像信号処理装置。
【請求項2】
システムクロックから各画素データ回路手段を動作させる画素データ処理回路駆動クロック信号を生成するクロック生成手段をさらに有し、
前記各画素データ処理回路は対応する画素データ処理回路駆動用クロック信号に基づいて動作し、
前記制御手段は、
前記混合を行うと判断した場合に、当該画素データ処理回路に前記画素データ処理回路駆動用クロック信号を供給し、
前記混合を行わないと判断した場合に、当該画素データ処理回路への前記対応する画素データ処理回路駆動用クロック信号の供給を停止する
請求項1に記載の映像信号処理装置。
【請求項3】
前記画素データ処理回路の各々は、パイプライン処理を行うように相互に直列に接続された複数の処理回路を有する
請求項2に記載の映像信号処理装置。
【請求項4】
前記画素データ処理回路内の直列に接続された複数の処理回路は、各処理回路を制御するフラグが転送されることにより、前記パイプライン処理および前記画素データ処理回路駆動用クロック信号の供給の制御を行う
請求項3に記載の映像信号処理装置。
【請求項5】
前記第2の画素データを記憶する記憶手段をさらに有し、
前記制御手段は、
前記混合を行わないと判断した場合に、前記第1の画素データによって前記記憶手段に記憶されている前記第2の画素データを書き換えるように制御し、
前記混合を行うと判断した場合に、前記第3の画素データによって前記記憶手段に記憶されている前記第2の画素データを書き換えるように制御する
請求項4に記載の映像信号処理装置。
【請求項6】
同時に処理を行おうとする複数の画素毎にそれぞれ設けられた複数の画素データ処理回路により、複数の第1の画素データと複数の第2の画素データとを、各画素毎に予め設定された混合比データが示す混合比で混合して複数の第3の画素データを生成し、
前記第1の画素データまたは前記第2の画素データに基づいて、前記画素データ処理による前記混合を行うか否かを判断し、
前記混合を行わないと判断した場合に、対応する画素データ処理回路の動作を停止する
映像信号処理方法。
【請求項7】
前記各画素データ処理回路がシステムクロックから生成される対応する画素データ処理回路駆動クロック信号に基づいて動作し、
前記混合を行うと判断した場合に、対応する画素データ処理回路に前記画素データ処理回路駆動用クロック信号を供給し、
前記混合を行わないと判断した場合に、対応する画素データ処理回路への前記画素データ処理回路駆動用クロック信号の供給を停止する
請求項6に記載の映像信号処理方法。
【請求項8】
前記画素データ処理回路の各々は、直列に接続された複数の処理回路でパイプライン処理を行う
請求項7に記載の映像信号処理方法。
【請求項9】
前記画素データ処理回路内の直列に接続された複数の処理回路は、各処理回路を制御するフラグが転送されることにより、前記パイプライン処理および前記画素処理回路駆動用クロック信号の供給の制御を行う
請求項8に記載の映像信号処理方法。
【請求項1】
同時に処理を行うとする複数の画素毎にそれぞれ設けられ、複数の第1の画素データと対応する複数の第2の画素データとを、各画素毎に設定された混合比データが示す混合比で混合して複数の第3の画素データを生成する複数の画素データ処理回路と、
前記第1の画素データまたは前記第2の画素データに基づいて、前記画素データ処理回路による前記混合を行うか否かを判断し、前記混合を行わないと判断した場合に、当該画素データ処理回路の動作を停止する制御手段と
を有する映像信号処理装置。
【請求項2】
システムクロックから各画素データ回路手段を動作させる画素データ処理回路駆動クロック信号を生成するクロック生成手段をさらに有し、
前記各画素データ処理回路は対応する画素データ処理回路駆動用クロック信号に基づいて動作し、
前記制御手段は、
前記混合を行うと判断した場合に、当該画素データ処理回路に前記画素データ処理回路駆動用クロック信号を供給し、
前記混合を行わないと判断した場合に、当該画素データ処理回路への前記対応する画素データ処理回路駆動用クロック信号の供給を停止する
請求項1に記載の映像信号処理装置。
【請求項3】
前記画素データ処理回路の各々は、パイプライン処理を行うように相互に直列に接続された複数の処理回路を有する
請求項2に記載の映像信号処理装置。
【請求項4】
前記画素データ処理回路内の直列に接続された複数の処理回路は、各処理回路を制御するフラグが転送されることにより、前記パイプライン処理および前記画素データ処理回路駆動用クロック信号の供給の制御を行う
請求項3に記載の映像信号処理装置。
【請求項5】
前記第2の画素データを記憶する記憶手段をさらに有し、
前記制御手段は、
前記混合を行わないと判断した場合に、前記第1の画素データによって前記記憶手段に記憶されている前記第2の画素データを書き換えるように制御し、
前記混合を行うと判断した場合に、前記第3の画素データによって前記記憶手段に記憶されている前記第2の画素データを書き換えるように制御する
請求項4に記載の映像信号処理装置。
【請求項6】
同時に処理を行おうとする複数の画素毎にそれぞれ設けられた複数の画素データ処理回路により、複数の第1の画素データと複数の第2の画素データとを、各画素毎に予め設定された混合比データが示す混合比で混合して複数の第3の画素データを生成し、
前記第1の画素データまたは前記第2の画素データに基づいて、前記画素データ処理による前記混合を行うか否かを判断し、
前記混合を行わないと判断した場合に、対応する画素データ処理回路の動作を停止する
映像信号処理方法。
【請求項7】
前記各画素データ処理回路がシステムクロックから生成される対応する画素データ処理回路駆動クロック信号に基づいて動作し、
前記混合を行うと判断した場合に、対応する画素データ処理回路に前記画素データ処理回路駆動用クロック信号を供給し、
前記混合を行わないと判断した場合に、対応する画素データ処理回路への前記画素データ処理回路駆動用クロック信号の供給を停止する
請求項6に記載の映像信号処理方法。
【請求項8】
前記画素データ処理回路の各々は、直列に接続された複数の処理回路でパイプライン処理を行う
請求項7に記載の映像信号処理方法。
【請求項9】
前記画素データ処理回路内の直列に接続された複数の処理回路は、各処理回路を制御するフラグが転送されることにより、前記パイプライン処理および前記画素処理回路駆動用クロック信号の供給の制御を行う
請求項8に記載の映像信号処理方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2008−59608(P2008−59608A)
【公開日】平成20年3月13日(2008.3.13)
【国際特許分類】
【出願番号】特願2007−281036(P2007−281036)
【出願日】平成19年10月29日(2007.10.29)
【分割の表示】特願平11−51795の分割
【原出願日】平成11年2月26日(1999.2.26)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】
【公開日】平成20年3月13日(2008.3.13)
【国際特許分類】
【出願日】平成19年10月29日(2007.10.29)
【分割の表示】特願平11−51795の分割
【原出願日】平成11年2月26日(1999.2.26)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】
[ Back to top ]