JP4333793B2 - 映像信号処理装置および映像信号処理方法 - Google Patents
映像信号処理装置および映像信号処理方法 Download PDFInfo
- Publication number
- JP4333793B2 JP4333793B2 JP2007281036A JP2007281036A JP4333793B2 JP 4333793 B2 JP4333793 B2 JP 4333793B2 JP 2007281036 A JP2007281036 A JP 2007281036A JP 2007281036 A JP2007281036 A JP 2007281036A JP 4333793 B2 JP4333793 B2 JP 4333793B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- pixel data
- circuit
- processing circuit
- data processing
- 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
Links
Images
Landscapes
- Image Processing (AREA)
- Image Generation (AREA)
Description
レンダリング処理の手法の一つに、ポリゴン(Polygon 、多角形) レンダリングがある。この手法では、立体モデルを三角形の単位図形(ポリゴン)を組み合わせた多角形で表現し、このポリゴンを単位として処理を行い、描画することで、表示画面の色を決定する。
ここで、同次項qは、簡単にいうと、拡大縮小率のようなもので、実際のテクスチャバッファのUV座標系における座標、すなわち、テクスチャ座標データ(u,v)は、同次座標(s,t)を同次項qで除算した「s/q」および「t/q」に、それぞれテクスチャサイズUSIZEおよびVSIZEを乗じたものとなる。
このような3次元コンピュータグラフィックシステムでは、例えば、ディスプレイバッファ(フレームバッファ)に描画のための映像信号を書き込む際に、画素毎に、テクスチャ座標データ(u,v)を用いてテクスチャバッファからテクスチャデータを読み出し、この読み出したテクスチャデータを、立体モデルの表面に三角形を単位として張り付けるテクスチャマッピング処理を行う。
なお、立体モデルでのテクスチャマッピング処理では、各画素毎に、張り付けを行なうテクスチャデータが示す画像の拡大縮小率が変化する。
また、前述したような三角形を単位図形としたポリゴンレンダリングでは、張り付けを行うテクスチャデータの縮小率などは、三角形を単位として決定される。
従って、並行して処理を行った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次元コンピュータグラフィックシステムでは、上述した理由の他にも、種々の要因で不要な演算を行うことがある。
本実施形態においては、家庭用ゲーム機などに適用される、任意の3次元物体モデルに対する所望の3次元画像をCRT(Cathode Ray Tube)などのディスプレイ上に高速に表示する3次元コンピュータグラフィックシステムについて説明する。
図1は、映像信号処理装置野1例として、本実施形態の3次元コンピュータグラフィックシステム1のシステム構成図である。
3次元コンピュータグラフィックシステム1は、立体モデルを単位図形である三角形を組み合わせた多角形(ポリゴン)の張り合わせとして表現し、このポリゴンを描画することで表示画面の各画素の色を決定し、ディスプレイに表示するポリゴンレンダリング処理を行うシステムである。
また、3次元コンピュータグラフィックシステム1では、平面上の位置を表現する(x,y)座標の他に、奥行きを表すz座標を用いて3次元物体を表し、この(x,y,z)の3つの座標で3次元空間の任意の一点を特定する。
以下、各構成要素の機能について説明する。
メインプロセッサ4は、例えば、ゲームの進行状況などに応じて、メインメモリ2から必要なグラフィックデータを読み出し、このグラフィックデータに対してクリッピング(Clipping)処理、ライティング(Lighting)処理およびジオメトリ(Geometry)処理などを行い、ポリゴンレンダリングデータを生成する。メインプロセッサ4は、ポリゴンレンダリングデータS4を、メインバス6を介してレンダリング回路5に出力する。
I/Oインタフェース回路3は、必要に応じて、外部からポリゴンレンダリングデータを入力し、これをメインバス6を介してレンダリング回路5に出力する。
(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)を用いて行われる。
すなわち、ポリゴンレンダリングデータは、三角形の各頂点の物理座標値と、
それぞれの頂点の色とテクスチャデータの同次座標および同次項を示している。
図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回路11において物理座標系上の三角形の各頂点の値を線形補間して三角形の内部の各画素の色R,G,Bと深さ情報zを求めるのに先立ち、ポリゴンレンダリングデータS4が示す(z,R,G,B,α,s,t,q)データについて、三角形の辺と水平方向の差分を求めるセットアップ演算を行う。
このセットアップ演算は、具体的には、開始点の値と終点の値と、開始点と終点との距離を用いて、単位長さ移動した場合における、求めようとしている値の変分を算出する。
DDAセットアップ回路10は、算出した変分データS10と、各画素の有効指示データvalとをトライアングル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に出力する。
具体的には、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に出力する。
テクスチャエンジン回路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は、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に出力する。
また、演算サブブロック2001は、valデータS2201を後段の演算サブブロック2011に出力する。
なお、演算サブブロック2002〜2008も、それぞれ対応する画素について、演算サブブロック2001と同じ演算を行い、それぞれ除算結果S20052〜S2008およびvalデータS2202〜S2208を後段の演算ブロック201の演算サブブロック2012〜2018にそれぞれ出力する。
なお、図3に示す、全ての演算サブブロックは、基本的に、図4に示す構成をしている。
図4に示すように、演算サブブロック2001は、クロックイネーブラ(クロック有効化回路)2101、データ用フリップフロップ222、プロセッサエレメント223およびフラグ用フリップフロップ224を有する。
クロックイネーブラ2101は、システムクロック信号S225を基準としたタイミングでvalデータS2201を入力し、valデータS2201のレベルを検出する。そして、クロックイネーブラ2101は、valデータS2201が、「1」である場合には、例えば、クロック信号S2101にパルス発生させ、「0」である場合には、クロック信号S2101にパルス発生させない。
プロセッサエレメント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個の演算サブブロックは並行して処理を行う。
演算ブロック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に出力する。
演算ブロック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に出力する。
演算ブロック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の出力を行う。
演算ブロック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の出力を行なう。
演算ブロック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への書き込み処理を行う。
CRTコントローラ回路14は、与えられた水平および垂直同期信号に同期して、図示しないCRTに表示するアドレスを発生し、ディスプレイバッファ21から表示データを読み出す要求をメモリI/F回路13に出力する。この要求に応じて、メモリI/F回路13は、ディスプレイバッファ21から一定の固まりで表示データを読み出す。CRTコントローラ回路14は、ディスプレイバッファ21から読み出した表示データを記憶するFIFO(First In First Out)回路を内蔵し、一定の時間間隔で、RAMDAC回路15に、RGBのインデックス値を出力する。
RAMDAC回路15は、各インデックス値に対応するR,G,Bデータを記憶しており、CRTコントローラ回路14から入力したRGBのインデックス値に対応するデジタル形式のR,G,Bデータを、D/Aコンバータに転送し、アナログ形式のR,G,Bデータを生成する。RAMDAC回路15は、この生成されたR,G,BデータをCRTに出力する。
ポリゴンレンダリングデータ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に出力される。
ここでは、例えば、図6に示すような矩形31内の8画素について同時処理する場合を考える。この場合には、valデータS2201,S2202,S2203,S2205,S2206が「0」を示し、valデータS2204,S2207,S2208が「1」を示している。
そして、クロックイネーブラ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に出力される。
そして、この検出結果に基づいて、演算サブブロック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に出力される。
そして、この検出結果に基づいて、演算サブブロック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に出力される。
そして、この検出結果に基づいて、演算サブブロック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では、混合処理は行なわれない。
そして、この検出結果に基づいて、演算サブブロック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に出力される。
そして、この検出結果に基づいて、(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では、混合処理は行なわれない。
そのため、テクスチャエンジン回路12における消費電力を大幅に低減できる。その結果、3次元コンピュータグラフィックシステム1の電源として、簡単かつ安価なものを用いることができる。
なお、テクスチャエンジン回路12は、図3および図4に示すように、各演算サブブロックに、クロックイネーブラおよび1ビットのフラグ用フリップフロップを組み込むことで、上述した機能を実現するが、クロックイネーブラおよび1ビットのフラグ用フリップフロップの回路規模は小さいため、テクスチャエンジン回路12の回路規模が大幅に増大することはない。
図5は、本実施形態の3次元コンピュータグラフィックシステム451のシステム構成図である。
本実施形態の3次元コンピュータグラフィックシステム451は、αブレンド処理を行うか否かを各画素毎に予め判断し、αブレンド(混合)処理を行わないと判断した場合に、αブレンド処理を行う演算サブブロックのうち対応する演算サブブロックの処理を停止させる点を除いて、前述した第1実施形態の3次元コンピュータグラフィックシステム1と同じである。
すなわち、本実施形態では、各演算サブブロックは、第1実施形態の場合と同様に、対応する画素が処理対象となる三角形の外部に位置する場合には処理を停止する。また、演算サブブロックのうちαブレンド処理を行う演算サブブロックは、対応する画素が処理対象となる三角形の外部に位置するか、あるいは対応する画素のαデータが「0」である場合に処理を停止する。
図5において、図1と同じ符号を付した構成要素は、第1実施形態で説明した同一符号を付した構成要素と同じである。
すなわち、メインメモリ2、I/Oインタフェース回路3、メインプロセッサ4およびメインバス6は、第1実施形態で説明したものと同じである。
ここで、DDAセットアップ回路10、テクスチャエンジン回路12、CRTコントローラ回路14、RAMDAC回路15、DRAM16およびSRAM17は、第1実施形態で説明したものと同じである。
トライアングル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に出力する。
そして、トライアングルDDA回路411は、αデータが「0」であると判断した場合に、「0」(αブレンド処理を行わないことを)を示すvalデータ411a1〜S411a8をメモリI/F回路413に出力し、αデータが「0」ではないと判断した場合に、「1」(αブレンド処理を行うことを)を示すvalデータ411a1〜S411a8をメモリI/F回路413に出力する。
図6は、テクスチャエンジン回路12およびメモリI/F回路413の構成図である。
図6に示すように、メモリI/F回路413は、演算ブロック204および演算ブロック405を有する。
なお、図6において、図3と同じ符号を付した構成要素は、第1実施形態で説明した同一符号を構成要素と同じである。
すなわち、テクスチャエンジン回路12は、第1実施形態で説明したものと同じであり、メモリI/F回路413の演算ブロック204も第1実施形態で説明したものと同じである。
〔演算ブロック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」の場合には、αブレンド処理を行わない。
3次元コンピュータグラフィックシステム451の全体動作は、基本的に前述した第1実施形態で説明した3次元コンピュータグラフィックシステム1の全体動作と同じである。
また、図6に示すテクスチャエンジン回路12およびメモリI/F回路413のパイプライン処理の動作は、演算ブロック200〜204の処理については、前述した第1実施形態で説明した動作と同じである。
それぞれ図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に書き込まれる。
そして、メモリI/F回路413において、同時処理する8画素のうち処理対象となる三角形の内部に位置する画素であっても、トライアングルDDA回路411による上記判断の結果に基づいて、αデータが「0」の画素についてのαブレンド処理を行わないようにすることができる。
そのため、3次元コンピュータグラフィックシステム451によれば、前述した第1実施形態の3次元コンピュータグラフィックシステム1に比べてさらに、消費電力を低減できる。
図7は、本実施形態の3次元コンピュータグラフィックシステム551のシステム構成図である。
本実施形態の3次元コンピュータグラフィックシステム551では、例えば、処理対象となっている画素のzデータとzバッファに記憶されている対応するzデータとの比較を行い、今回描画しようとする画像が前回描画した画像より奥側(視点側と反対の方向)にある場合には、当該画素についてのテクスチャ座標データ(u,v)の生成処理、テクスチャデータの読み出し処理、テクスチャαブレンド処理およびαブレンド処理を停止する。
図7において、図1と同じ符号を付した構成要素は、第1実施形態で説明した同一符号を付した構成要素と同じである。
すなわち、メインメモリ2、I/Oインタフェース回路3、メインプロセッサ4およびメインバス6は、第1実施形態で説明したものと同じである。
ここで、DDAセットアップ回路10、トライアングルDDA回路11、CRTコントローラ回路14、RAMDAC回路15、DRAM16およびSRAM17は、第1実施形態で説明したものと同じである。
図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は、演算サブブロック5001〜5008を有し、図7に示すトライアングルDDA回路11からDDAデータS11を入力する。
演算サブブロック5001〜5008は、それぞれクロックイネーブラ2141〜2148において、DDAデータS11に含まれるvalデータS22051〜S2208のレベル検出を行い、その結果、当該レベルが「1」の場合(当該画素が、処理対象となる三角形の内部に位置する場合)にはz(奥行き)比較処理を行い、当該レベルが「1」でない場合には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データを書き換えない。
演算ブロック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に出力する。
なお、演算サブブロック5012〜5018も、それぞれ対応する画素について、演算サブブロック5011と同じ演算を行い、それぞれ除算結果S50152〜S5018を後段の演算ブロック502の演算サブブロック5022〜5028にそれぞれ出力する。
演算ブロック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と同様に、対応するデータの処理を行う。
演算ブロック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と同様に、対応するデータの処理を行う。
演算ブロック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」の場合にのみ上記混合処理を行う。
演算ブロック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への書き込み処理を行う。
先ず、演算サブブロック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データは書き換えられない。
一方、valデータS2201〜S2208およびS500a1〜S500a8のいずれか一方が「0」、すなわち無効であることを示すと判断された場合には、それぞれ演算サブブロック5011〜5018では演算は行われない。
そして、双方のレベルが「1」の場合にのみ、演算サブブロック5021〜5028において、それぞれ演算ブロック501から入力した除算結果S50151〜S5018が示す「s/q」および「t/q」に、それぞれテクスチャサイズUSIZEおよびVSIZEが乗算され、テクスチャ座標データ(u,v)が生成される。テクスチャ座標データ(u,v)は、それぞれ演算サブブロック5031〜5038に出力される。
そして、当該生成された(R,G,B)混合データと、対応するDDAデータS11に含まれるαデータとを含む(R,G,B,α)データS5041〜S5048が、演算サブブロック5041〜5048から演算サブブロック50551〜5058に出力される。
そして、テクスチャエンジン回路512およびメモリI/F回路513において、同時処理する8画素のうち処理対象となる三角形の内部に位置する画素であっても、演算ブロック500による上記判断の結果に基づいて、ディスプレイバッファ21に書き込まない画像データに関する処理を行わないように(停止)する。
そのため、3次元コンピュータグラフィックシステム551によれば、前述した第1実施形態の3次元コンピュータグラフィックシステム1に比べてさらに、消費電力を低減できる。
例えば、前述した第2実施形態では、図6に示すように、テクスチャエンジン回路12およびメモリI/F回路413の各演算ブロックで8画素のデータについて同時に処理する場合について例示したが、図9に示すように、各演算ブロックで1画素のデータの処理を行うようにしてもよい。
この場合には、処理対象となる画素の被演算データS2211のみがテクスチャエンジン回路12に入力されるため、valデータS2201は不要となる。
すなわち、演算サブブロック2001,2011,2021,2031,2041では常に演算が行われ、演算サブブロック4051ではvalデータS400a1のレベルが「1」の場合にのみαブレンド処理が行われる。
この場合には、処理対象となる画素の被演算データS2211のみがテクスチャエンジン回路512に入力されるため、valデータS2201は不要となる。すなわち、演算サブブロック5001ではz比較処理が常に行われ、演算サブブロック5011,5021,5031,5041,5051では、演算サブブロック5001で生成されたvalデータS500a1のレベルが「1」の場合にのみ処理が行われる。
また、テクスチャバッファ20およびテクスチャCLUTバッファ23を、DRAM16の外部に設けてもよい。
また、上述した実施形態では、図2に示すように、画像処理の対象となる(z,R,G,B,α,s,t,q)データに、有効指示データとしてのvalデータを付加したDDAデータS11を用いた場合を例示したが、(z,R,G,B,α,s,t,q)データと、valデータとを別個独立のデータとして扱うようにしてもよい。
そのため、本発明の映像信号処理装置によれば、小規模かつ簡単な構成の電源を用いることができ、小規模化を図ることができる。
Claims (9)
- 同時に処理を行うとする複数の画素毎にそれぞれ設けられ、複数の第1の画素データと対応する複数の第2の画素データとを、各画素毎に設定された混合比データが示す混合比で混合して複数の第3の画素データを生成する複数の画素データ処理回路と、
前記第1の画素データまたは前記第2の画素データに基づいて、前記画素データ処理回路による前記混合を行うか否かを判断し、前記混合を行わないと判断した場合に、当該画素データ処理回路の動作を停止する制御手段と
を有する映像信号処理装置。 - システムクロックから各画素データ回路手段を動作させる画素データ処理回路駆動クロック信号を生成するクロック生成手段をさらに有し、
前記各画素データ処理回路は対応する画素データ処理回路駆動用クロック信号に基づいて動作し、
前記制御手段は、
前記混合を行うと判断した場合に、当該画素データ処理回路に前記画素データ処理回路駆動用クロック信号を供給し、
前記混合を行わないと判断した場合に、当該画素データ処理回路への前記対応する画素データ処理回路駆動用クロック信号の供給を停止する
請求項1に記載の映像信号処理装置。 - 前記画素データ処理回路の各々は、パイプライン処理を行うように相互に直列に接続された複数の処理回路を有する
請求項2に記載の映像信号処理装置。 - 前記画素データ処理回路内の直列に接続された複数の処理回路は、各処理回路を制御するフラグが転送されることにより、前記パイプライン処理および前記画素データ処理回路駆動用クロック信号の供給の制御を行う
請求項3に記載の映像信号処理装置。 - 前記第2の画素データを記憶する記憶手段をさらに有し、
前記制御手段は、
前記混合を行わないと判断した場合に、前記第1の画素データによって前記記憶手段に記憶されている前記第2の画素データを書き換えるように制御し、
前記混合を行うと判断した場合に、前記第3の画素データによって前記記憶手段に記憶されている前記第2の画素データを書き換えるように制御する
請求項4に記載の映像信号処理装置。 - 同時に処理を行おうとする複数の画素毎にそれぞれ設けられた複数の画素データ処理回路により、複数の第1の画素データと複数の第2の画素データとを、各画素毎に予め設定された混合比データが示す混合比で混合して複数の第3の画素データを生成し、
前記第1の画素データまたは前記第2の画素データに基づいて、前記画素データ処理による前記混合を行うか否かを判断し、
前記混合を行わないと判断した場合に、対応する画素データ処理回路の動作を停止する
映像信号処理方法。 - 前記各画素データ処理回路がシステムクロックから生成される対応する画素データ処理回路駆動クロック信号に基づいて動作し、
前記混合を行うと判断した場合に、対応する画素データ処理回路に前記画素データ処理回路駆動用クロック信号を供給し、
前記混合を行わないと判断した場合に、対応する画素データ処理回路への前記画素データ処理回路駆動用クロック信号の供給を停止する
請求項6に記載の映像信号処理方法。 - 前記画素データ処理回路の各々は、直列に接続された複数の処理回路でパイプライン処理を行う
請求項7に記載の映像信号処理方法。 - 前記画素データ処理回路内の直列に接続された複数の処理回路は、各処理回路を制御するフラグが転送されることにより、前記パイプライン処理および前記画素処理回路駆動用クロック信号の供給の制御を行う
請求項8に記載の映像信号処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007281036A JP4333793B2 (ja) | 1998-04-03 | 2007-10-29 | 映像信号処理装置および映像信号処理方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9184498 | 1998-04-03 | ||
JP2007281036A JP4333793B2 (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 |
---|---|
JP2008059608A JP2008059608A (ja) | 2008-03-13 |
JP4333793B2 true JP4333793B2 (ja) | 2009-09-16 |
Family
ID=39242185
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007281036A Expired - Lifetime JP4333793B2 (ja) | 1998-04-03 | 2007-10-29 | 映像信号処理装置および映像信号処理方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4333793B2 (ja) |
-
2007
- 2007-10-29 JP JP2007281036A patent/JP4333793B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2008059608A (ja) | 2008-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6181352B1 (en) | Graphics pipeline selectively providing multiple pixels or multiple textures | |
US6115047A (en) | Method and apparatus for implementing efficient floating point Z-buffering | |
US5594854A (en) | Graphics subsystem with coarse subpixel correction | |
EP1745434B1 (en) | A kill bit graphics processing system and method | |
TWI281639B (en) | Method for managing state variables for rendering primitives, apparatus for rendering a scene including primitives, and machine readable medium | |
US6771274B2 (en) | Graphics and video integration with alpha and video blending | |
JP2005100177A (ja) | 画像処理装置およびその方法 | |
JPH0935075A (ja) | 高性能プリミティブ・クリッピング・プリプロセシングを有するコンピュータ・グラフィックス・システム | |
WO2000019377B1 (en) | Graphics processor with deferred shading | |
US5847717A (en) | Data synchronization between a plurality of asynchronous data renderers | |
JP4707782B2 (ja) | 画像処理装置およびその方法 | |
JP4505866B2 (ja) | 画像処理装置および映像信号処理方法 | |
US6661423B2 (en) | Splitting grouped writes to different memory blocks | |
US6850244B2 (en) | Apparatus and method for gradient mapping in a graphics processing system | |
JP4386124B2 (ja) | 映像信号処理装置および映像信号処理方法 | |
JP4333793B2 (ja) | 映像信号処理装置および映像信号処理方法 | |
JP4380757B2 (ja) | 映像信号処理装置および映像信号処理方法 | |
US6460063B1 (en) | Division circuit and graphic display processing apparatus | |
JP4069486B2 (ja) | 記憶回路制御装置およびグラフィック演算装置 | |
US6693634B1 (en) | Reduction rate processing circuit and method with logarithmic operation and image processor employing same | |
JP3741053B2 (ja) | 画像処理装置 | |
JP4622165B2 (ja) | 画像メモリ制御装置、グラフィック演算装置およびレンダリング処理方法 | |
US7466319B1 (en) | System and method for fast gradient pixel clears in graphics rendering | |
JPH11306366A (ja) | グラフィック演算装置およびその方法 | |
JP4042204B2 (ja) | グラフィック演算装置およびその方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20090602 |
|
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: 20090615 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120703 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120703 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120703 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130703 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 |