結合判定メカニズムを用いて三次元グラフィックス画像をコンポジットするための方法およびシステム
各サブ画像における同一の空間位置に対応するピクセルの深さ値を検査し、そして最大の深さ値を有するピクセルの内容をコンポジットすることによって複数の三次元サブ画像をコンポジット処理するための方法およびシステムである。深さ値は、二つ以上のバイナリセグメントに分割され、そこでは、セグメントのビット長が、それらの有意性のレベルに従って決定される。第一のステップにおいては、同一レベルの有意性を有するセグメント群の絶対値が同時に比較され、そしてそれに従って、それらの最上位セグメントの絶対値が、同一レベルの有意性の他のセグメントの絶対値と比較して、最大である深さ値を示すグループが決定され、そしてそれらの絶対値サイズを示す最下位セグメントについてのグレードが評価される。第二のステップにおいては、当該グループに対応する深さ値のセグメントのグレードが比較され、そして、もしもそれらのグレードが、当該グループにおける他の深さ値に対応する最高グレードよりも小さいならば、深さ値指示が、グループから除去される。第二のステップは、セグメントの最終セットに達するまで、または単一の深さ値がグループによって指示されるまで、繰り返される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンピュータグラフィックスレンダリングの分野に関する。より詳細には、本発明は、多重三次元/深さラスタ画像の二次元画像への再コンポジションのための方法および装置に関する。
【0002】
[関連出願へのクロスリファレンス]
この出願は、その全開示が引用によりここに組み込まれる、2003年1月28日に出願された米国仮特許出願第60/442,750号の恩恵を請求する。
【背景技術】
【0003】
多くのタイプの情報処理インプリメンテーションと同様に、コンピュータグラフィックスレンダリングの性能を向上させるべく努力が続けられている。レンダリング性能を向上させる魅力的な試みの一つは、単一の場面を並列にレンダリングすべく一緒に利用される多重のグラフィック処理ユニット(GPU)を用いることに基づいている。
【0004】
多重GPUを用いてグラフィックデータをレンダリングするための三つの有力な方法がある。それらは、各GPUが次の後続フレームをレンダリングする時間領域コンポジションと、各GPUが各フレームのピクセルのサブセットをレンダリングする画面空間コンポジションと、各GPUがデータベースのサブセットをレンダリングする場面ベースコンポジションとを含んでいる。
【0005】
時間領域コンポジションにおいては、各GPUは、次の後続フレームをレンダリングする。この方法の大きな不都合は、各GPUが全フレームをレンダリングすることを有することにある。それゆえ、各フレームがレンダリングされるスピードは、単一のGPUのレンダリング速度に制限される。多重GPUは、より高いフレーム速度を可能とすると同時に、ユーザの入力に対するシステムの応答時間における時間領域コンポジションアプリケーションにおいて遅延が分与され得る(すなわち、待ち時間の縮減)。いかなる与えられた時間においてもレンダリングされたフレームを表示するのに、他の全てのGPUが、連続する一連のフレームの一つをレンダリングするプロセス中にある間に、ただ一つのGPUが従事させられるから、これらの遅延が典型的に生ずる。一定のフレーム速度を維持するために、システムは、ユーザの入力を最初に受信した特定のGPUがシーケンスを通して周期動作するまでユーザの入力に作用するのを遅延させ、そしてそのレンダリングされたフレームを表示するのに、再び従事する。実際的なアプリケーションにおいて、この条件は、システムに使用されるGPUの数を制限させる。
【0006】
時間領域コンポジションアプリケーションに関連する他の困難性は、これらのアプリケーションにおいては、各GPUが、画像レンダリングのために使用される全データへのアクセスを得ることができなければならないから、各GPUがアクセスすることができなければならない大きなデータのセットに関連する。これは、例えば、単一のコピーをアクセスすることの多重の試みによって生ずる可能性がある衝突を防止するために大きなデータセットの多重コピーを維持することによって達成される。
【0007】
画面空間コンポジションアプリケーションは、各GPUが、どのグラフィックエレメントが画面のその部分内に属するかを決定すべくデータベース全体を検査しなければならないから、大きなデータセットの処理における同様の問題を有する。この場合におけるシステム待ち時間は、単一のGPUによって単一のフレームをレンダリングするために必要とされる時間に等しい。
【0008】
本発明がそれに関連する、場面コンポジション法は、上述された待ち時間の問題、データセットの多重コピーを維持することの必要性、および各GPUによるデータベース全体を取り扱うことに関連する問題によるものを排除する。
【0009】
場面コンポジション法は、莫大な量の幾何学的データのレンダリングを必要とするアプリケーションに良く適合する。典型的には、それらは、CADアプリケーション、および空間におけるそれらの三次元的位置がユーザの対話的制御下にないようにデータが予め設計されていることを意味する、「ビューワ」として論じられる、類似の視覚的シミュレーションアプリケーションである。しかしながら、ユーザは、観察者の位置である、ビュー方向およびグラフィックデータの縮尺を対話的制御している。ユーザは、また、データのサブセットの選択およびそれがレンダリングされる方法を制御していても良い。このことは、基礎をなすデータの画像ライティング、彩色、透明性および他の視覚的特性の影響を操作することを含んでいる。
【0010】
CADアプリケーションにおいては、データが、通常は、ディスプレイリストまたは頂点アレイにおける膨大な量の幾何学的実体からなるので、非常に複雑になる傾向にある。それゆえ、単一フレームの構成時間は、非常に長く(例えば典型的には、2千万個の多角形群について0.5秒に)なる傾向にあり、結果として全体のシステム応答をスローダウンさせる。
【0011】
場面コンポジション法(例えば、オブジェクトベースのデコンポジション法)は、多重GPUの間のデータサブセットの分布に基づいている。データサブセットは、GPUパイプラインにおいてレンダリングされ、そしてフラグメント(サブ画像ピクセル)のフレームバッファ(FB)に変換される。多重FBのサブ画像は、表示されるべき最終画像を生成するためにマージされなければならない。図1に示されるように、最終画像のX/Y平面における各ピクセルについて、FBのサブ画像によって与えられる異なる画像深さに対応する種々のとり得る値が存在する。
【0012】
各GPUは、各画面の(X/Y)座標にて多くて一つのピクセル12を生起する。この構成されたピクセル12は、隠れた面の除去および影付けおよび透明性を実現するための混色の結果である。GPUによって生成されたピクセル12の各々は、(観察者に最も近い)最高のZについて解かれるべき、異なる深さ量(Z−値)を保持する。ただ一つのピクセルのみが最終的に通ることが許可される。各FBのサブ画像のマージは、FBによって与えられる種々の可能性のあるピクセル値12からどの値(10)が、観察者の視点において視認可能な最近点をあらわすかの決定の結果である。しかしながら、一つの単一のラスタへの部分的場面データのマージングは、依然として先行技術における性能のボトルネックを引き起こしている。
【0013】
先行技術における並列処理のレベルは、多重ラスタのコンポジション性能の不足によって制限されている。二つのラスタのコンポジションは、隠れ面除去を行うためのハードウェア技法であるZ−バッファリングによって通常は行われる。先行技術の在来の方法においては、Z−バッファリングは、一度に二つのラスタのみのマージングを許容する。
【0014】
在来のハードウェアコンポジッティング技法は、図2Aに例示されたように、典型的には、ラスタのペアの繰り返し照合プロセス(S.Molnerの「高速レンダリングのためのZ−バッファエンジンの結合」(Combining Z−buffer Engines for Higher−Speed Rendering)、Eurographics、1988年)、またはパイプライン技法(J.Eyes他の「ピクセルフロー:現実化」(PixelFlow:The Realization)、ACM Siggraph、1997年)に基づいている。これらの技法のマージングは、Sステージの、log2Rステップ以内で実行される。ここで、Rは、レンダリングGPUの数である。照合のケースにおいては、各そのようなコンパレータ(MX)における二つの深さ寸法の間の比較を達成するために必要とされる時間は、log2Zである。ここで、Zは、場面の深さ領域である。例えば、ピクセルあたり24ビットを有する典型的な深さバッファについては、二つのZ−バッファの間の比較は、典型的には、24の時間クロック内に行われる。
【0015】
先行技術の技法において、一度に、二つのZ−バッファのみのマージングが許容され、多重ラスタのコンポジションは、階層的な形式でなされる。これらのコンポジション構造の複雑さは、O(log2R)であり、グラフィックパイプラインの数、性能がRによって高度に影響されるようにさせる。Rの値を増大させるために、コンポジッティング時間が、リアルタイムアニメーションのための割り当てられたタイムスロットを超える。実際的なアプリケーションにおいては、この条件は、システム内に使用されるGPUの数に制限を与える。図2Bは、並列処理の増大による理論的な性能の改善を示している。コンポジション時間は、複雑さの因子、O(log2R)によって増大する。統合された時間は、(例えば)16個のパイプラインにおいて増大をスタートする。明らかに、この場合には、16を超える並行処理のレベルの増大には、有意性がない。
【0016】
ソフトウェア技法は、通常、P個の汎用プロセッサを用いることによってR個のGPUの出力をコンポジットすることに基づいている(E.ReinhardおよびC.Hansenの「共有メモリ構成における並列コンポジッティング技法の比較」(A Comparison of Parallel Compositing Techniques on Shared Memory Architectures)、Parallel Graphics and VisualisationのEurographics Workshop、Girona、2000年)。しかしながら、これらの解決策は、典型的には、(i)バイナリスワップ、(ii)並列パイプライン、および(iii)共有メモリコンポジッタの利用を必要とし、そしてそのことは、そのようなインプリメンテーションの複雑さおよびコストを有意に増大させる。
【0017】
ソフトウェア技法の中で最も効果的なインプリメンテーションは、共有メモリコンポジッタ法(分散メモリ構成における「直接送出」としても知られている)である。この方法においては、サブ画像をレンダリングするための計算労力が、図3Aのブロック図および図3Bに示される擬似コードに示されるように、付加的なGPU(レンダラ)を利用することによって、増大される。図3Aに図解されたシステムにおいては、二つのコンポジッタ(CPUp0およびp1)が、三つのレンダラ(GPUB0、B1、およびB2)によって生成される、同一のサブ画像について同時に操作している。計算タスクは、CPU間に分散され、各々同一画像の半分のコンポジションを実行する。いかなる与えられた数のGPUのためにも、並列コンポジタの数を増大させることによってコンポジッティングをスピードアップすることができることは良く知られている。
【0018】
しかしながら、増大された数のレンダラは、性能を著しくスローダウンさせる。この方法の複雑さは、O(N*R/P)であり、ここで、Nは、ラスタ(画像)におけるピクセルの数、Rは、GPUの数、そしてPは、コンポジッティングユニット(CPUpi)の数である。この技法におけるコンポジッティングプロセスは、R−1回の繰り返し以内に完了される。SGIのOrigin(オリジン)2000スーパコンピュータ上でのこの技法のインプリメンテーションにおいては、計算は、CPUを用いて実行される。このシステムによって行われるコンポジッティングの結果は図4に示される。図4は、この方法のオーバヘッドを説明しており、このシステムに必要とされるコンポジッティング時間は、レンダリングのために必要とされる時間の6倍を超える。
【0019】
上述された全ての方法は、多量のサブ画像データを一つの画像にコンポジットするための先行技術の方法の問題に対して、未だ、満足すべき解決策を提供していない。
【発明の開示】
【発明が解決しようとする課題】
【0020】
本発明の目的は、ほとんどリアルタイム観察の範囲内で複数のサブ画像フレームを並列的にレンダリングするための方法およびシステムを提供することにある。
【0021】
本発明の他の目的は、多量のサブ画像データを単一の画像に同時に構成するための方法およびシステムを提供することにある。
【0022】
本発明のさらなる目的は、サブ画像データを単一の画像に構成するために必要とされる時間の量を実質的に低減する方法およびシステムを提供することにある。
【0023】
本発明のまた他の目的は、半導体ベースのデバイスとして有効にインプリメントされ得る大量のサブ画像データを単一の画像に同時に構成するための方法および装置を提供することにある。
【0024】
本発明のまたさらなる目的は、サブ画像データの多重供給源の間の競争を呈することに基づくサブ画像の構成のための方法および装置を提供することにある。
【0025】
本発明の他の目的および利点は、説明が進むにつれて明白になるであろう。
【課題を解決するための手段】
【0026】
一つの局面において、本発明は、複数の数Z1,Z2,…,ZRから最大の数を検出するための方法およびシステムに向けられたものである。数の各々は、二つ以上のバイナリセグメントZj(N−1),Zj(N−2),…,Zj(0)に分割され、前記セグメントのビット長が、それらの有意性のレベルに従って決定され、そして前記セグメントのセットは、それらの有意性のレベルに従って配列され、セグメントの第一のセットZj(N−1),Zj(N−1),…,Zj(N−1)は、前記数の最上位セグメントを含み且つセグメントの最終セットZj(0),Zj(0),…,Zj(0)は、前記数の最下位セグメントを含む。第一のステップにおいては、同一レベルの有意性を有するセグメントZ1(K),Z2(K),…,ZR(K)の絶対値が、それらの最上位セグメントの絶対値が最大である数を指定するグループを決定し、そして最下位セグメントについて、それらの絶対値サイズを指示するグレードを、同一レベルの有意性の他のセグメントの絶対値と比較して評価するために、同時に比較される。第二のステップにおいては、セグメントの第二のセットZ1(N−2),Z2(N−2),…,ZR(N−1)からスタートして、前記グループに対応する数のセグメントのグレードが比較され、且つもしもそれらのグレードが、前記グループにおける他の数の指示に対応する最も高いグレードよりも低いならば、数の指示が前記グループから除去される。前記第二のステップは、最後のセットのセグメントZ1(0),Z2(0),…,ZR(0)が到達されるまで、または、単一の数が前記グループによって指定されるまで、繰り返される。
【0027】
オプション的に、前記数は、多重三次元ラスタ画像のピクセルの深さ値である。
【0028】
最大数の検出は、さらに数をしきい値と比較することと、それらの値が前記しきい値の上または下である数についてのみ最大数の検出を実行することをさらに有していても良い。
【0029】
同様の検出は、それらの最上位セグメントの絶対値が最も小さい数をグループによって指定することによって、そして、それらのグレードが、前記グループにおける他の数の指示に対応する最小のグレードよりも大きいときはいつも、前記グループから数の指定を除去することによって、最小数を決定するために行われても良い。
【0030】
本発明の一つの望ましい実施の形態において、全てのセグメントは、同一のビット長からなっている。その代わりになるべきものとしては、一つ以上の最下位セグメントのビット長が、最上位セグメントのビット長よりも大きい。
【0031】
他の局面において、本発明は、各サブ画像における同一の空間位置に対応するピクセルの深さ値Z1,Z2,…,ZRを検査し、そして最大の深さ値を有するピクセルの内容をコンポジットすることによって、複数の三次元サブ画像をコンポジット処理するための方法およびシステムに向けられている。前記深さ値は、二つ以上のバイナリセグメントZj(N−1),Zj(N−2),…,Zj(0)に分割され、そこでは、前記セグメントのビット長が、それらの有意性のレベルに従って決定され、そして前記セグメントのセットは、それらの有意性のレベルに従って配列され、セグメントの第一のセットZj(N−1),Zj(N−1),…,Zj(N−1)は、前記深さ値の最上位セグメントを含み且つセグメントの最終セットZj(0),Zj(0),…,Zj(0)は、前記深さ値の最下位セグメントを含む。第一のステップにおいて、同一レベルの有意性を有するセグメントZ1(K),Z2(K),…,ZR(K)の絶対値は、同時に比較され、そしてそれに応じて、それらの最上位セグメントの絶対値が最大である深さ値を指定するグループが決定され、そしてそれらの絶対値サイズを指示する最下位セグメントについて、同一レベルの有意性の他のセグメントの絶対値と比較して、グレードが評価される。第二のステップにおいて、セグメントの第二のセットZ1(N−2),Z2(N−2),…,ZR(N−1)からスタートして、前記グループに対応する深さ値のセグメントのグレードが比較され、且つもしもそれらのグレードが、前記グループにおける他の深さ値に対応する最も高いグレードよりも低いならば、深さ値の指示が前記グループから除去される。前記第二のステップは、最後のセットのセグメントZ1(0),Z2(0),…,ZR(0)に到達するまで、または、単一の深さ値が前記グループによって指定されるまで、繰り返される。
【0032】
最大数の検出は、深さ値をしきい値と比較すること、およびそれらの値が前記しきい値の上または下である深さ値についてのみ最大数の検出を実行することをさらに有していても良い。
【0033】
同様の検出が、最小数を決定するために、それらの最上位セグメントの絶対値が最も小さい深さ値をグループによって指定することによって行われても良く、そして深さ値の指定は、それらのグレードが、前記グループにおける他の数の指示に対応する最小のグレードよりも大きいときはいつも、前記グループから除去される。
【0034】
本発明の他の望ましい実施の形態においては、全てのセグメントは、同一のビット長からなっている。その代わりになるべきものとしては、一つ以上の最下位セグメントのビット長が、最上位セグメントのビット長よりも大きい。
【0035】
本発明は、単一の集積回路チップ上にインプリメントされていても良く、例えば、それは、VLSIインプリメンテーションであっても良い。
【発明を実施するための最良の形態】
【0036】
本発明は、結合様式での、多重三次元/深さラスタ画像の二次元画像への再コンポジションのための方法およびシステムに向けられている。本発明の望ましい実施の形態によれば、多重グラフィックパイプラインを経由して提供される、レンダリングされたグラフィックスデータ(サブ画像)が、各ラスタ座標にて、観察者に最も近いピクセルについて、解かれる。このタスクは、多重の結合ユニット(AU)を利用することによって、与えられたラスタ座標にて全てのピクセルについて同時に、各ピクセルにおける自律的結合判断プロセスを行うことによって達成される。コンポジション結果により得られる最終画像は、観察のために出力される。本発明は、概して観察のための画像の階層的組み合わせに基づいている先行技術方法の不適当なオーバヘッドを克服する。
【0037】
原則として、本発明は、多重供給源の中で最も高い深さ値(Z)についての競争を与える。最も高い深さ値は、多重AUを利用することによって決定されるべきである。各AUは、与えられた他の値に対する局所的な深さ値を連続的に検査し、そして他のAUに対する競争をやめるか、さらに競争させるかを自律的に判定する。シーケンシャルな種類からなる在来のソート処理方法と対照的に、本発明による分散処理は、並列的に実行され得て、実質的にコンポジション実行のスピードを上げる。本発明の付加的な優位性は:(i)いかなる長さの数についても実行され得ること;および(ii)いかなる数の供給源にも、性能を減少することなしに適合することである。
【0038】
図5は、本発明の構成メカニズムの一般的な図解を提供する。本発明のコンポジションシステム51は、グラフィックスパイプライン(FBj,j=1,2,3,…,R)によって提供されるサブ画像データが与えられる。コンポジションシステム51において、サブ画像のデータ(Zj,Pj)は、AU(AUj,j=1,2,3,…,R)に対応する一セットのRに提供され、それらの各々は、画面の同一のX/Y座標における画像ピクセルを取り扱うことができる。各競争するデータは、内容Pj(例えばカラー、透明、ここではRGB−値とも称される)およびピクセルの深さZjから構成される。
【0039】
Z−値は、AUによって受信され、そして深さ競争バス(DCB)上に導入される。DCBラインの論理状態は、AUによって検知され、該AUは、それに応じてキャリーインおよびストップマークベクトルを生起し、これらベクトルは、それらが最も高いZ−値を保持しているかどうかを決定すべく、プロモーションマトリクス(PM)53と共に使用される。競争するデータに関する判定は、結合メカニズムに基づき、且つDCB上の他のAUとの比較によって、各AUにおいて局所的に実行される。最終的に、最も近いピクセル(すなわち、最も高いZ−値)を保持しているAUは、ピクセルのカラーPj(RGB−値)を、最終画像55を構成する最終ラスタ50にわたすことが可能とされる。
【0040】
深さ競争バス(DCB)構造は、図7Aおよび図7Bに示され且つ説明されるように、ワイアド−アンド論理をインテリジェントに配備する。ワイアド−アンド論理70の機能性は、通常の論理アンド機能の機能性と同様である。しかしながら、ワイアド−アンド機能は、単一の電気的ポイントに多数の出力を導入し、その点で通常の論理アンドゲートはその信号を他のいかなる出力とも絶縁されている他のゲートに出力しなければならない。図7Aに説明されているように、入力のいずれか1つにおける論理「0」状態は、出力ライン上を論理「0」状態とさせる。
【0041】
DCB上の比較プロセスは、ビット優位性連続方式にて実行される。図7Bに示されるように、グラフィックパイプライン(FBj)を経由して提供される各Z−値(Z1,Z2,Z3,…,ZR)は、それぞれのAU(AUj)内に供給される。DCBのラインは、それらの優位性のレベルに従って、N−バイナリのZ−値(Zj(i),i=0,1,2,…,N)の各セグメントのワイアド−アンド結果を出力するために用いられる。このようにして、DCB(0)ラインは、Z−値(Zj(0))の最下位セグメント(LSS、非第一のセグメントとも称される)上で実行されるワイアド−アンド論理の出力として使用され、そして、DCB(N−1)ラインは、Z−値(Zj(N−1))の最上位セグメント(MSS、第一のセグメントとも称される)上で実行されるワイアド−アンド論理の出力のために使用される。
【0042】
比較プロセスは、Z−値の最上位ビットからスタートする、順序付けられた様式で行われ、そしてそれは、Z−値の最下位ビットで終了させられる。競争は、AUが、DCB(N−1)の最も上のライン上に最上位ビット(MSB)を出力したときにスタートする。このプロセスの期間は、いつも、log2|Z|の一定時間を要し、ここで、|Z|は、場面の深さ領域、すなわちZ−値のビット長である。その結果として、先行技術の方法の多重ステージ構造は、本発明の方法に従った単一のステージによって置換される。先行技術の方法のO(log2Z*log2N)の実行の複雑さは、本発明の方法によってO(log2Z)に有意的に低減される。
【0043】
MSSビットZj(N−1)の比較において、DCBラインDCB(N−1)上に、単一の、またはそれらのいくつかの、論理「0」状態を、置くことは、前記ライン上を「0」論理状態に強制する。DCBライン上に「1」論理状態が置かれ、且つ前記ライン上で結果的に「0」論理状態が検知されるAUは、それらの現在のZ−値についてのそれらの競争を終結させ、さもなければ、該AUは、表1に例示されたように、次に続くビット(優位性が低い)に対するそれらの競争を続けることが許可される。
【0044】
(表1)
MSSビットZj(N−1)の比較
┌───────────┬───────────┬───────────┐
│ 強制値 │DCBラインの状態 │ 判 定 │
├───────────┼───────────┼───────────┤
│ 1 │ 0 │ ストップ │
├───────────┼───────────┼───────────┤
│ 1 │ 1 │ 継 続 │
├───────────┼───────────┼───────────┤
│ 0 │ 0 │ 継 続 │
├───────────┼───────────┼───────────┤
│ 0 │ 1 │ 継 続 │
└───────────┴───────────┴───────────┘
上の表1に示された最後のケースは、DCBライン上の論理「0」状態の強制は、このラインを論理「0」状態に強制しなければならないから、実際に可能でないことに留意されるべきである。
【0045】
Z−値が競争を継続すべきであるかどうかについての判定は、DCBラインの論理状態を検知することにより各AUによって確立される。最後に残存しているAUが、競争に「勝つ」。AUの比較論理がバス上により高いZ−値を識別したとき、それ自体を競争から引き離す。さもなければ、バス上に残った値が最も高いZ−値を有するものとなるまで競争を続ける。
【0046】
図8は、AUの動作を説明するブロック図である。第KのZ−値(Zk(N−1),Zk(N−2),…,Zk(0))は、1セットのゲート(90、図9に示されている)を経由してDCBに結線されており、ピクセル値PKは、ゲート84を経由してマージされたFB50へ通るゲート制御がされる。結合論理80は、ワイアド−アンド機能を有効とし、ユニットの競争を制御し、そしてPM53の一つから勝ちの通知86(WK)を受けたときに、有効化指示81を利用してRGB−値PKがFB50へ通過することを許可する。
【0047】
AUは、Z−値(Zk(i),i=0,1,2,…,N−2)のLSSについて結合ロジック80によって生成され且つその後にPM53に供給されたストップマーク(SM)ベクトル85SMk=(SMk(0),SMk(1),…,SMk(N−2))を生成する。キャリーアウト指示(Ck(N−1))もAUkによって生起され、Z−値ZkのMSS(Zk(N−1))が競争の第一のステージを勝ったかどうかを指示する。
【0048】
結合論理80は、種々の方法でAUの競争機能性を拡張すべく設計されても良いことに留意されるべきである。例えば、到来するZ−値の逆数が競争のために(全てのAUにおいて)使用されても良く、そしてそのようなケースにおいては、AU間の競争は、最小の深さ値を決定することに基づいて行われるであろう。その代わりとして、AUのZ−値入力上に、しきい値をむしろ配置し、そしてこのようにして、それら2つの値の、どちらが、しきい値より大きいか、またはしきい値より小さいか、という競争を可能とするようにしても良い。
【0049】
局所AUにおいて、各Z−値Zjは、NセグメントZj(N−1),Zj(N−2),…,Zj(0)にセグメント化され、ここで、第(N−1)のセグメントZj(N−1)は、MSBを保持し、そして第(0)のセグメントZj(0)は、ZjのLSBを保持している。例えば、3つのセグメント(すなわち。N=3,Zj(2),Zj(1),およびZj(0))に処理される32ビットの長さのZ−値数を仮定しよう、そこでは第一および第二のセグメント(Zj(2)およびZj(1))は、各々8ビットの長さで且つ第三のセグメント(Zj(0))は、16ビットの長さである。競争の第一のステージにおいて、Z−値(Zj(2),j=1,2,…,R)のMSS(第一のセグメント)に従って一つ以上の予備的な勝者が決定され、且つストップマークグレーディング(SMj(i),i=0,1,2,…,N−2、例えばN=3についてSMj(0)およびSMj(1))がZ−値(Zj(i),i=0,1,2,…,N−2、例えばN=3についてZj(2)およびZj(1))の全ての他のセグメント(LSS)の間の競争に従って確立される。競争の次のステップにおいて、第一のステージを勝利したZ−値に対応する第二のセグメント(Zj(N−2)例えばZj(1))について確立された、ストップマークグレーディングSMK(N−2)(例えば、SMK(1))は、それらのZ−値のいずれを競争させ続けるかを決定すべく検査される。次のセグメント(SMj(i),i=0,1,2,…,N−3、例えばN=3についてSMj(0))について確立されたストップマークグレーディングによって、最後のセグメント(LSS、Zj(0))の結果に従って最も高いZ−値が決定されるまで、同一のプロセスが実行される。
【0050】
各AUは、全てのセグメント(Zj(i),i=0,1,…,N−1)を並列に処理する。AUは、MSBからLSBまでに使用されたセグメンテーションに従って、全てのZ−値の数を制御する。AU論理が、第一のセグメントZj(N−1)を競争させ且つそのキャリーアウトC(N−1)をPM(N−1)(図6)に提示すると同時に、第二のセグメントZj(N−2)を競争させ且つそのストップマークSM(N−2)をPM(N−1)に提示する。同様に、Z−値の第三のセグメントZj(N−3)を競争させ且つストップマークグレーディングSM(N−3)をPM(N−2)に提示するなどする。
【0051】
セグメント長は、競争性能を最適化すべく選定される。例えば、32ビットの長さのZ−値について、それぞれ、8、8、および16ビットの、Zj(2)、Zj(1)、およびZj(0)の、三つのセグメントで処理され、第二のセグメントについてのSMベクトルSM(1)は、第一のセグメントZj(2)が処理されている間に準備され得て、そして第三の(最長の)セグメントについてのSMベクトルSM(0)は、二つの先行するセグメントZj(2)およびZj(1)のために必要とされる時間期間を利用して同時的に準備され得る。
【0052】
このプロセスは、図6に説明されている。数字61〜64は、Z−値のセグメンテーションに従ってAUによって生成される指示を概略的に指定している。Z−値(Zj(i),i=0,1,2,…,N−2)のLSSを供するN−1個のPM53が存在する。PM53は、対応する(第iの)セグメントにについてAUによって生成されるそれぞれストップマークベクトルSM(i)=(SM1(i),SM2(i),…,SMR(i))に従って決定されるキャリーアウトベクトルC(i)(C(N−2),C(N−3),…,C(1))、および従前のステージにおいてPM(i−1)によって生起されるキャリーアウトベクトルC(i−1)を生成する。PMによって生成される付加的な信号は、(a)競争の各ステージにおいて勝ったZ−値を指定する勝者指示Wj、および(b)一旦単一の勝者が決定されると生成され、後続のマトリクスが、それらの競争を継続するのを防止する「競争ストップ」信号である。
【0053】
Z−値の第一のセグメントZj(N−1)=(Zj,0(N−1),Zj,1(N−1),…,Zj,n−1(N−1))についてのキャリー指示を生成するためのAU論理が、図9に示されている。ワイアド−アンドの機能性を活用すべく、各ビットの反転状態が、論理ナンドゲート90を経由してDCBラインに導入される。各検査されたビットZj,k(N−1)について、それぞれのDCBラインの論理状態および検査されたビットZj,k(N−1)の論理状態に従って、Z−値が次のビットレベルZj,k+1(N−1)において競争を継続するかどうかを決定するために、論理オアゲート92が、使用される。各ビットステージZj,k(N−1)は、論理アンドゲート92を経由して次のビットステージZj,k(N−1)を制御する。キャリーアウト指示Cj(N−1)は、全てのnビットステージが競争を生き残った場合にのみ生成される。キャリーアウト指示は、図6に示されたPM(N−1)プロモーションマトリクスに対して提供され、そしてこのようにして、次のセグメントにおけるZ−値Zjのさらなる競争を可能としている。
【0054】
同時に、AUが、Z−値の第一のセグメントを検査している間に、LSS(Zj(i),i=0,1,2,…,N−2)の各々もワイアド−アンド論理によって検査される。しかしながら、LSSの検査において、第一のセグメントについて生成されたキャリーアウト指示Cj(N−1)の代わりに、ストップマークSMj(i)(i=0,1,2,…,N−2)信号が生成される。各ストップマークSMj(i)信号は、ストップマークベクトルSM(i)の一部としてのPM(i)プロモーションマトリクスにそれぞれ送られる。
【0055】
ストップマークSMj(i)は、競争から全Z−値Zjがもしかすると省かれるかもしれないそれぞれのセグメントZj(i)の「弱い」ビットを指示する。LSSについてのSM信号(SMj(i),i=0,1,2,…,N−2)を生成するための論理は、図10に示されている。主として、この論理は、キャリーアウトベクトルC(N−1)の生成のために使用された論理と類似している。しかしながら、各ビットステージが、インバータ99を経由して、ストップマーク信号「ストップ1」−「ストップ(n+1)」を生成し得ることにおいて異なっている。各LSSセグメント(Zj(i),i=0,1,2,…,N−2)について、ただ一つのストップマーク信号SMj(i)が生成される。最も高い可能性のストップマーク信号「ストップ(n+1)」は、検査されたセグメントは、いかなるそのワイアリング比較においても消滅しないことを示している。
【0056】
結合マトリクスの論理は、ストップマークベクトルSMj(i)および従前に生成されたキャリーアウトベクトルC(i+1)を取り扱い、そして新たなキャリーアウトベクトルC(i)を生成する。この新たなキャリーアウトベクトルC(i)において、これまで競争に生き残ったそれらのAUのみが参加している。もしもちょうど単一のAUが生き残ったならば、それが最終勝者になり、競争プロセスを停止する。そうでなければ、次のPM(PM(i−1))が、単一の勝者が残るまで同一のタスクを実行する。
【0057】
図11は、PM(縮小されたケース)の論理を説明している。平易化のために、図11は、二つのAU(R=2)を供する第iのPM(すなわちPM(i))を図解しており、そこでは第iのセグメントは4ビットの長さである(すなわち、5つのストップマーク、SMj(i)=(SMj,1(i),SMj,2(i),…,SMj,5(i)))。ストップマークベクトルSM1(i)およびSM2(i)の各々は、FF110および111の一方に設定する。一つよりも多いFF110および111が、並んで「オン」状態になることはできない。勝利指示Cj(i+1)が従前のPM(PM(i+1))から受信されたストップマークベクトルは、より高い数を有し且つ従前のPM(PM(i+1))において勝利が指示されたキャリーアウトを有する他のストップマークが存在しなければ、そして存在しない場合にのみ、キャリーアウトを生成するであろう。
【0058】
PMにおける従前の縦列の操作は、最も高いレベルを有するストップマーク指示がそこで受信され且つ対応するキャリーアウト指示が従前のPMからそのために受信される、縦列の論理オアゲート119を介して集められた論理アンドゲート117から対応する指示を受け取ると同時に、抑止機能113を介して抑止される。もしもPMによって受信されたストップマークが同一の優位性からなっている(例えば、SM1,4(i)およびSM2,4(i))ならば、キャリーアウト指示C1(i)およびC2(i)がバッファ112を経由して次のPM(PM(i))に供給される。
【0059】
ただ一つの勝利信号W(i)のみが、PMの一つによって生起され得る。検出部115が、単一の勝者が、現在のステージで決定されたことを指示するときはいつも、抑止機能113は、次のステージPM(i−1)のPMによってさらなる処理を抑止するであろうストップ指示Stop(i)を生起する。ストップ信号が抑止機能(例えば、Stop(i+1))によって受信されたときはいつも、ゲート117を抑止することおよび次のPMの抑止機能へストップ指示(例えばStop(i))を発行することによって、現在およびそれに続くPMの機能を、抑止する。
【0060】
例えば、AU1が、ストップマーク4、SM1,4(i)、を設定し、AU2が、ストップマーク2、SM2,2(i)、を設定すること、そして従前のPMから受信される両方のキャリー指示、C1(i+1)およびC2(i+1)、が、競争の従前のステージにおける勝利を指示することと仮定する。そのようなケースにおいては、AU1において競争するZ−値が勝ち、抑止機能113を経由して縦列1〜3を抑止し、そしてキャリーアウトC1(i)のみを生成する。単一のキャリーアウトの検出は、現在のステージにおける単一の勝者を指示し、結果は、AU1へのW1ライン上に設けられる単一キャリーアウト検出部115を経由して勝利通知信号W(i)を生成することである。勝利AUは、それからそのRGB値PKをFB50へ供給することが可能とされる。
【0061】
もしも、例えば、AU1およびAU2が、両方ともストップマーク4、SMj,4(i)、をオンとし、キャリー指示C1(i+1)およびC2(i+1)が両Z−値が従前のステージで勝ったことを指示すると、そのときは、次のPM(PM(i+1))へ転送される二つのキャリーアウトC1(i)およびC2(i)が、現在のステージにおける勝ちをも指示するであろう。
【0062】
図12は、AUaからeに属するR=5のZ−値(Z1,Z2,Z3,Z4,およびZ5)の競争プロセスを例示している。この例において、Z−値の深さ寸法は、32ビットからなり、そして深さ値は、各8ビットのN=4セグメント(Zj(3),Zj(2),Zj(1),およびZj(0))にセグメント化される。(プロモーションマトリクスを有さない)シーケンシャルなワイアド−アンドプロセスが、32時間単位を要するのに、この例における合計処理時間は、11時間単位である。
【0063】
この例における第一のセグメントにおいて、MSS,Z2(3),Z3(3),およびZ5(3)は、全て等しく且つZ1(3)およびZ4(3)よりも大きく、そしてそれゆえ対応するC2(3),C3(3),およびC5(3)キャリーアウト信号のみが、Z−値Z2,Z3,およびZ5が第一のステージを勝ったことを指示すべく生起される。同時に、LSSのSMベクトルが、AUによって生起される。
【0064】
Z−値の第二のセグメントについて、Zj(2)数の6つのMSBは全て等しい。「ストップ7」SMは、Z1(2)について指示され、そして、セグメントにおける全ての他のZ−値の第7ビットの状態が、「1」(Z2,7(2)=Z3,7(2)=Z4,7(2)=Z5,7(2)=1)であるのに、その第7ビットの状態は「0」(Z1,7(2)=0)であるからさらなる競争はしない。「ストップ8」SMは、Z3(2)について指示され、そして、それらの競争がこのビットステージにおいて続行する値の第8ビットの状態が、「1」(Z2,8(2)=Z4,8(2)=Z5,8(2)=1)であるのに、その第8ビットの状態は「0」(Z3,8(2)=0)であるから、また、さらなる競争を終了する。それゆえ、「ストップ9」SMは、セグメントにおけるビットステージはどれもこれもそれらが勝つから、Z2(2),Z4(2),およびZ5(2)についての指示が生起される。したがって、PM(2)におけるSM(2)およびC(3)ベクトルの処理は、次のPM、PM(1)、に対するキャリーアウト指示C2(2)およびC5(2)を生起するであろう。
【0065】
Z−値の第三のセグメントについて、「ストップ2」SMは、Z5(1)について指示され、Z1,2(1)=Z2,2(1)=Z3,2(1)=Z4,2(1)=1であるのに、Z5,2(1)=0およびZj,1(1)=0であるから、それはいかなるさらなる競争をもストップし、そして「ストップ9」SMは、それらの6つのMSBは同等であるから、Z1(1),Z2(1),Z3(1),およびZ4(1)について指示される。したがって、PM(1)におけるSM(1)およびC(2)ベクトルの処理は、最後のPM、PM(0)、に対する単一キャリーアウト指示C2(1)を生起するであろう。PM(1)、が単一の勝者を決定したから、その検出部115は、対応する指示W2を勝ったAU、AU2、に対して生起し、そのRGB値P2をFB50において利用可能とする。それゆえに、PM(1)の抑止機能は、最後のPM、PM(0)、におけるさらなる処理を抑止するストップ(0)指示を生成する。
【0066】
第三のセグメントの処理は、実行されない。それにもかかわらず、AUによってSM(0)指示が生起される。Z1,1(0)=Z2,1(0)=Z3,1(0)=Z4,1(0)=1であるのに、Z5,1(0)=0であるから、「ストップ1」SMは、Z5(0)について指示される。r=2,3,4,5および6について、Z1,r(0)=Z2,r(0)=Z3,r(0)=Z4,r(0)=1、Z3,7(0)=Z4,7(0)=0、そしてZ1,7(0)=Z2,7(0)=1であるから、「ストップ7」SMは、Z3(0)およびZ4(0)について指示される。それゆえに、Z2,8(0)=0およびZ1,8(0)=1であるから、「ストップ8」SMは、Z2(0)について指示され、そして「ストップ9」SMは、Z1(0)について指示される。
【0067】
全てのセグメントは、長さについて一様に維持されるから、セグメントのSM結果をマージングすることによって、競争時間は、さらに縮減され得る。そのような縮減は、従前のPMからのキャリーアウト指示の到着に先立って結果のクラスタリングを可能とする。このアプローチは、複雑さをO(log2Z)からO((log2Z)/k)(但しkは折り畳み係数)に低減する。例えば、Z=232と仮定すると、シーケンシャルなワイアド−アンドプロセスは、O(32)の複雑さを要する。しかしながら、各8ビットの4個のPMを用いれば、数の後半は、前半を処理するときに「折り畳まれる」。結果として、複雑さは、O(8+1+1)に低減される。このケースでは、折り畳み係数kは、32/10=3.2である。より長い数、例えば64ビットのケースにおいては、複雑さの程度は、顕著には変化されず:O(8+1+1+1)である。この並列のアプローチの利点は、Z−値数のいかなるビット長にも、高い効率を維持しつつ、ほとんど同様の短時間に処理され得ることにある。
【0068】
図13は、本発明の望ましい実施の形態のチップインプリメンテーション140(例えばVLSI)を説明するブロック図である。この例は、6つの異なるGPUから6つのFBをコンポジットするためのインプリメンテーションを図解している。このインプリメンテーションは、複数のサブ画像ユニット(SIU)によって複数のサブ画像ピクセルを同時に構成するためのコンポジット処理ユニットを実現する。各SIUは、GPUの数に対応するAUのセット、DCB、PM、および制御論理141を具備している。各SIUにおける制御論理141は、それぞれのサブ画像の座標と符合するピクセルのみを、ポート〜ポート6入力ポートを介して取り込まれるデータ入力ストリームと区別する。各SIUは、サブ画像の一つのRGBデータを出力し、該データは、出力ポート142を介してFB50に出力される。
【0069】
全コンポジットプロセスは、各FBを16個のサブ画像に分割することによってさらに並列化される。例えば、1024×1024ピクセルの分解能を有する画像について、各サブ画像ユニット(SIU)は、64×64サブ画像(画像の1/16)を処理する。もしも、例えば、ピクセルのカラーデータが24ビットの長さであれば、SIUのスタックの出力は12Kバイトの勝利したピクセルカラーデータを含んでいる。
【0070】
先行技術に反して、本発明は、図5において説明されたように、いかなる数のGPU、R、についての単一のマージ処理ステップを実行することが可能である。先行技術方法の階層的構造は、本発明においては、特有の、平坦な、単一ステップ構造によって置き換えられている。この新規な構造の性能は、並列処理のレベル、すなわち参加するGPUの数、に敏感ではない。コンポジション時間は、単一比較まで事実上低減され、そしてどんな任意数のGPUも、全体の性能に対する犠牲なしに、許容される。
【0071】
上述の例および記述は、もちろん、説明の目的のためにのみ提供されており、そしていかなる点においても発明を限定することを意図していない。当業者によって認められるであろうように、本発明は、非常に多種多様の方法において、上述されたものとは異なる技術を採用して、本発明の範囲を逸脱することのない全てを実施され得るものである。
【図面の簡単な説明】
【0072】
【図1】複数のサブ画像データの単一の画像へのマージ処理を図解するブロック図である。
【図2A】先行技術の階層的コンポジット処理方法を図解するブロック図である。
【図2B】階層的コンポジット処理性能の並行処理制限を図表的に図解している。
【図3A】先行技術の共有メモリコンポジット処理方法を示すブロック図および擬似コードを示している。
【図3B】先行技術の共有メモリコンポジット処理方法を示すブロック図および擬似コードを示している。
【図4】先行技術の共有メモリコンポジション法の性能を図表的に図解している。
【図5】本発明の望ましい実施の形態を例示するブロック図である。
【図6】本発明に従ったプロモーションシステムを図解するブロック図である。
【図7A】本発明のワイアド−アンド機能の原理を具体的に説明するブロック図である。
【図7B】N個のバイナリ数のワイアド−アンド競争の原理を図解するブロック図である。
【図8】結合ユニットの望ましい実施の形態を図解するブロック図である。
【図9】第一のセグメントの論理を概略的に図解するブロック図である。
【図10】非第一のセグメントの論理を概略的に図解するブロック図である。
【図11】低減されたプロモーションマトリクスを概略的に図解するブロック図である。
【図12】5個の深さ値の競争プロセスを例示している。
【図13】本発明の望ましい実施の形態のチップインプリメンテーションを図解するブロック図である。
【技術分野】
【0001】
本発明は、コンピュータグラフィックスレンダリングの分野に関する。より詳細には、本発明は、多重三次元/深さラスタ画像の二次元画像への再コンポジションのための方法および装置に関する。
【0002】
[関連出願へのクロスリファレンス]
この出願は、その全開示が引用によりここに組み込まれる、2003年1月28日に出願された米国仮特許出願第60/442,750号の恩恵を請求する。
【背景技術】
【0003】
多くのタイプの情報処理インプリメンテーションと同様に、コンピュータグラフィックスレンダリングの性能を向上させるべく努力が続けられている。レンダリング性能を向上させる魅力的な試みの一つは、単一の場面を並列にレンダリングすべく一緒に利用される多重のグラフィック処理ユニット(GPU)を用いることに基づいている。
【0004】
多重GPUを用いてグラフィックデータをレンダリングするための三つの有力な方法がある。それらは、各GPUが次の後続フレームをレンダリングする時間領域コンポジションと、各GPUが各フレームのピクセルのサブセットをレンダリングする画面空間コンポジションと、各GPUがデータベースのサブセットをレンダリングする場面ベースコンポジションとを含んでいる。
【0005】
時間領域コンポジションにおいては、各GPUは、次の後続フレームをレンダリングする。この方法の大きな不都合は、各GPUが全フレームをレンダリングすることを有することにある。それゆえ、各フレームがレンダリングされるスピードは、単一のGPUのレンダリング速度に制限される。多重GPUは、より高いフレーム速度を可能とすると同時に、ユーザの入力に対するシステムの応答時間における時間領域コンポジションアプリケーションにおいて遅延が分与され得る(すなわち、待ち時間の縮減)。いかなる与えられた時間においてもレンダリングされたフレームを表示するのに、他の全てのGPUが、連続する一連のフレームの一つをレンダリングするプロセス中にある間に、ただ一つのGPUが従事させられるから、これらの遅延が典型的に生ずる。一定のフレーム速度を維持するために、システムは、ユーザの入力を最初に受信した特定のGPUがシーケンスを通して周期動作するまでユーザの入力に作用するのを遅延させ、そしてそのレンダリングされたフレームを表示するのに、再び従事する。実際的なアプリケーションにおいて、この条件は、システムに使用されるGPUの数を制限させる。
【0006】
時間領域コンポジションアプリケーションに関連する他の困難性は、これらのアプリケーションにおいては、各GPUが、画像レンダリングのために使用される全データへのアクセスを得ることができなければならないから、各GPUがアクセスすることができなければならない大きなデータのセットに関連する。これは、例えば、単一のコピーをアクセスすることの多重の試みによって生ずる可能性がある衝突を防止するために大きなデータセットの多重コピーを維持することによって達成される。
【0007】
画面空間コンポジションアプリケーションは、各GPUが、どのグラフィックエレメントが画面のその部分内に属するかを決定すべくデータベース全体を検査しなければならないから、大きなデータセットの処理における同様の問題を有する。この場合におけるシステム待ち時間は、単一のGPUによって単一のフレームをレンダリングするために必要とされる時間に等しい。
【0008】
本発明がそれに関連する、場面コンポジション法は、上述された待ち時間の問題、データセットの多重コピーを維持することの必要性、および各GPUによるデータベース全体を取り扱うことに関連する問題によるものを排除する。
【0009】
場面コンポジション法は、莫大な量の幾何学的データのレンダリングを必要とするアプリケーションに良く適合する。典型的には、それらは、CADアプリケーション、および空間におけるそれらの三次元的位置がユーザの対話的制御下にないようにデータが予め設計されていることを意味する、「ビューワ」として論じられる、類似の視覚的シミュレーションアプリケーションである。しかしながら、ユーザは、観察者の位置である、ビュー方向およびグラフィックデータの縮尺を対話的制御している。ユーザは、また、データのサブセットの選択およびそれがレンダリングされる方法を制御していても良い。このことは、基礎をなすデータの画像ライティング、彩色、透明性および他の視覚的特性の影響を操作することを含んでいる。
【0010】
CADアプリケーションにおいては、データが、通常は、ディスプレイリストまたは頂点アレイにおける膨大な量の幾何学的実体からなるので、非常に複雑になる傾向にある。それゆえ、単一フレームの構成時間は、非常に長く(例えば典型的には、2千万個の多角形群について0.5秒に)なる傾向にあり、結果として全体のシステム応答をスローダウンさせる。
【0011】
場面コンポジション法(例えば、オブジェクトベースのデコンポジション法)は、多重GPUの間のデータサブセットの分布に基づいている。データサブセットは、GPUパイプラインにおいてレンダリングされ、そしてフラグメント(サブ画像ピクセル)のフレームバッファ(FB)に変換される。多重FBのサブ画像は、表示されるべき最終画像を生成するためにマージされなければならない。図1に示されるように、最終画像のX/Y平面における各ピクセルについて、FBのサブ画像によって与えられる異なる画像深さに対応する種々のとり得る値が存在する。
【0012】
各GPUは、各画面の(X/Y)座標にて多くて一つのピクセル12を生起する。この構成されたピクセル12は、隠れた面の除去および影付けおよび透明性を実現するための混色の結果である。GPUによって生成されたピクセル12の各々は、(観察者に最も近い)最高のZについて解かれるべき、異なる深さ量(Z−値)を保持する。ただ一つのピクセルのみが最終的に通ることが許可される。各FBのサブ画像のマージは、FBによって与えられる種々の可能性のあるピクセル値12からどの値(10)が、観察者の視点において視認可能な最近点をあらわすかの決定の結果である。しかしながら、一つの単一のラスタへの部分的場面データのマージングは、依然として先行技術における性能のボトルネックを引き起こしている。
【0013】
先行技術における並列処理のレベルは、多重ラスタのコンポジション性能の不足によって制限されている。二つのラスタのコンポジションは、隠れ面除去を行うためのハードウェア技法であるZ−バッファリングによって通常は行われる。先行技術の在来の方法においては、Z−バッファリングは、一度に二つのラスタのみのマージングを許容する。
【0014】
在来のハードウェアコンポジッティング技法は、図2Aに例示されたように、典型的には、ラスタのペアの繰り返し照合プロセス(S.Molnerの「高速レンダリングのためのZ−バッファエンジンの結合」(Combining Z−buffer Engines for Higher−Speed Rendering)、Eurographics、1988年)、またはパイプライン技法(J.Eyes他の「ピクセルフロー:現実化」(PixelFlow:The Realization)、ACM Siggraph、1997年)に基づいている。これらの技法のマージングは、Sステージの、log2Rステップ以内で実行される。ここで、Rは、レンダリングGPUの数である。照合のケースにおいては、各そのようなコンパレータ(MX)における二つの深さ寸法の間の比較を達成するために必要とされる時間は、log2Zである。ここで、Zは、場面の深さ領域である。例えば、ピクセルあたり24ビットを有する典型的な深さバッファについては、二つのZ−バッファの間の比較は、典型的には、24の時間クロック内に行われる。
【0015】
先行技術の技法において、一度に、二つのZ−バッファのみのマージングが許容され、多重ラスタのコンポジションは、階層的な形式でなされる。これらのコンポジション構造の複雑さは、O(log2R)であり、グラフィックパイプラインの数、性能がRによって高度に影響されるようにさせる。Rの値を増大させるために、コンポジッティング時間が、リアルタイムアニメーションのための割り当てられたタイムスロットを超える。実際的なアプリケーションにおいては、この条件は、システム内に使用されるGPUの数に制限を与える。図2Bは、並列処理の増大による理論的な性能の改善を示している。コンポジション時間は、複雑さの因子、O(log2R)によって増大する。統合された時間は、(例えば)16個のパイプラインにおいて増大をスタートする。明らかに、この場合には、16を超える並行処理のレベルの増大には、有意性がない。
【0016】
ソフトウェア技法は、通常、P個の汎用プロセッサを用いることによってR個のGPUの出力をコンポジットすることに基づいている(E.ReinhardおよびC.Hansenの「共有メモリ構成における並列コンポジッティング技法の比較」(A Comparison of Parallel Compositing Techniques on Shared Memory Architectures)、Parallel Graphics and VisualisationのEurographics Workshop、Girona、2000年)。しかしながら、これらの解決策は、典型的には、(i)バイナリスワップ、(ii)並列パイプライン、および(iii)共有メモリコンポジッタの利用を必要とし、そしてそのことは、そのようなインプリメンテーションの複雑さおよびコストを有意に増大させる。
【0017】
ソフトウェア技法の中で最も効果的なインプリメンテーションは、共有メモリコンポジッタ法(分散メモリ構成における「直接送出」としても知られている)である。この方法においては、サブ画像をレンダリングするための計算労力が、図3Aのブロック図および図3Bに示される擬似コードに示されるように、付加的なGPU(レンダラ)を利用することによって、増大される。図3Aに図解されたシステムにおいては、二つのコンポジッタ(CPUp0およびp1)が、三つのレンダラ(GPUB0、B1、およびB2)によって生成される、同一のサブ画像について同時に操作している。計算タスクは、CPU間に分散され、各々同一画像の半分のコンポジションを実行する。いかなる与えられた数のGPUのためにも、並列コンポジタの数を増大させることによってコンポジッティングをスピードアップすることができることは良く知られている。
【0018】
しかしながら、増大された数のレンダラは、性能を著しくスローダウンさせる。この方法の複雑さは、O(N*R/P)であり、ここで、Nは、ラスタ(画像)におけるピクセルの数、Rは、GPUの数、そしてPは、コンポジッティングユニット(CPUpi)の数である。この技法におけるコンポジッティングプロセスは、R−1回の繰り返し以内に完了される。SGIのOrigin(オリジン)2000スーパコンピュータ上でのこの技法のインプリメンテーションにおいては、計算は、CPUを用いて実行される。このシステムによって行われるコンポジッティングの結果は図4に示される。図4は、この方法のオーバヘッドを説明しており、このシステムに必要とされるコンポジッティング時間は、レンダリングのために必要とされる時間の6倍を超える。
【0019】
上述された全ての方法は、多量のサブ画像データを一つの画像にコンポジットするための先行技術の方法の問題に対して、未だ、満足すべき解決策を提供していない。
【発明の開示】
【発明が解決しようとする課題】
【0020】
本発明の目的は、ほとんどリアルタイム観察の範囲内で複数のサブ画像フレームを並列的にレンダリングするための方法およびシステムを提供することにある。
【0021】
本発明の他の目的は、多量のサブ画像データを単一の画像に同時に構成するための方法およびシステムを提供することにある。
【0022】
本発明のさらなる目的は、サブ画像データを単一の画像に構成するために必要とされる時間の量を実質的に低減する方法およびシステムを提供することにある。
【0023】
本発明のまた他の目的は、半導体ベースのデバイスとして有効にインプリメントされ得る大量のサブ画像データを単一の画像に同時に構成するための方法および装置を提供することにある。
【0024】
本発明のまたさらなる目的は、サブ画像データの多重供給源の間の競争を呈することに基づくサブ画像の構成のための方法および装置を提供することにある。
【0025】
本発明の他の目的および利点は、説明が進むにつれて明白になるであろう。
【課題を解決するための手段】
【0026】
一つの局面において、本発明は、複数の数Z1,Z2,…,ZRから最大の数を検出するための方法およびシステムに向けられたものである。数の各々は、二つ以上のバイナリセグメントZj(N−1),Zj(N−2),…,Zj(0)に分割され、前記セグメントのビット長が、それらの有意性のレベルに従って決定され、そして前記セグメントのセットは、それらの有意性のレベルに従って配列され、セグメントの第一のセットZj(N−1),Zj(N−1),…,Zj(N−1)は、前記数の最上位セグメントを含み且つセグメントの最終セットZj(0),Zj(0),…,Zj(0)は、前記数の最下位セグメントを含む。第一のステップにおいては、同一レベルの有意性を有するセグメントZ1(K),Z2(K),…,ZR(K)の絶対値が、それらの最上位セグメントの絶対値が最大である数を指定するグループを決定し、そして最下位セグメントについて、それらの絶対値サイズを指示するグレードを、同一レベルの有意性の他のセグメントの絶対値と比較して評価するために、同時に比較される。第二のステップにおいては、セグメントの第二のセットZ1(N−2),Z2(N−2),…,ZR(N−1)からスタートして、前記グループに対応する数のセグメントのグレードが比較され、且つもしもそれらのグレードが、前記グループにおける他の数の指示に対応する最も高いグレードよりも低いならば、数の指示が前記グループから除去される。前記第二のステップは、最後のセットのセグメントZ1(0),Z2(0),…,ZR(0)が到達されるまで、または、単一の数が前記グループによって指定されるまで、繰り返される。
【0027】
オプション的に、前記数は、多重三次元ラスタ画像のピクセルの深さ値である。
【0028】
最大数の検出は、さらに数をしきい値と比較することと、それらの値が前記しきい値の上または下である数についてのみ最大数の検出を実行することをさらに有していても良い。
【0029】
同様の検出は、それらの最上位セグメントの絶対値が最も小さい数をグループによって指定することによって、そして、それらのグレードが、前記グループにおける他の数の指示に対応する最小のグレードよりも大きいときはいつも、前記グループから数の指定を除去することによって、最小数を決定するために行われても良い。
【0030】
本発明の一つの望ましい実施の形態において、全てのセグメントは、同一のビット長からなっている。その代わりになるべきものとしては、一つ以上の最下位セグメントのビット長が、最上位セグメントのビット長よりも大きい。
【0031】
他の局面において、本発明は、各サブ画像における同一の空間位置に対応するピクセルの深さ値Z1,Z2,…,ZRを検査し、そして最大の深さ値を有するピクセルの内容をコンポジットすることによって、複数の三次元サブ画像をコンポジット処理するための方法およびシステムに向けられている。前記深さ値は、二つ以上のバイナリセグメントZj(N−1),Zj(N−2),…,Zj(0)に分割され、そこでは、前記セグメントのビット長が、それらの有意性のレベルに従って決定され、そして前記セグメントのセットは、それらの有意性のレベルに従って配列され、セグメントの第一のセットZj(N−1),Zj(N−1),…,Zj(N−1)は、前記深さ値の最上位セグメントを含み且つセグメントの最終セットZj(0),Zj(0),…,Zj(0)は、前記深さ値の最下位セグメントを含む。第一のステップにおいて、同一レベルの有意性を有するセグメントZ1(K),Z2(K),…,ZR(K)の絶対値は、同時に比較され、そしてそれに応じて、それらの最上位セグメントの絶対値が最大である深さ値を指定するグループが決定され、そしてそれらの絶対値サイズを指示する最下位セグメントについて、同一レベルの有意性の他のセグメントの絶対値と比較して、グレードが評価される。第二のステップにおいて、セグメントの第二のセットZ1(N−2),Z2(N−2),…,ZR(N−1)からスタートして、前記グループに対応する深さ値のセグメントのグレードが比較され、且つもしもそれらのグレードが、前記グループにおける他の深さ値に対応する最も高いグレードよりも低いならば、深さ値の指示が前記グループから除去される。前記第二のステップは、最後のセットのセグメントZ1(0),Z2(0),…,ZR(0)に到達するまで、または、単一の深さ値が前記グループによって指定されるまで、繰り返される。
【0032】
最大数の検出は、深さ値をしきい値と比較すること、およびそれらの値が前記しきい値の上または下である深さ値についてのみ最大数の検出を実行することをさらに有していても良い。
【0033】
同様の検出が、最小数を決定するために、それらの最上位セグメントの絶対値が最も小さい深さ値をグループによって指定することによって行われても良く、そして深さ値の指定は、それらのグレードが、前記グループにおける他の数の指示に対応する最小のグレードよりも大きいときはいつも、前記グループから除去される。
【0034】
本発明の他の望ましい実施の形態においては、全てのセグメントは、同一のビット長からなっている。その代わりになるべきものとしては、一つ以上の最下位セグメントのビット長が、最上位セグメントのビット長よりも大きい。
【0035】
本発明は、単一の集積回路チップ上にインプリメントされていても良く、例えば、それは、VLSIインプリメンテーションであっても良い。
【発明を実施するための最良の形態】
【0036】
本発明は、結合様式での、多重三次元/深さラスタ画像の二次元画像への再コンポジションのための方法およびシステムに向けられている。本発明の望ましい実施の形態によれば、多重グラフィックパイプラインを経由して提供される、レンダリングされたグラフィックスデータ(サブ画像)が、各ラスタ座標にて、観察者に最も近いピクセルについて、解かれる。このタスクは、多重の結合ユニット(AU)を利用することによって、与えられたラスタ座標にて全てのピクセルについて同時に、各ピクセルにおける自律的結合判断プロセスを行うことによって達成される。コンポジション結果により得られる最終画像は、観察のために出力される。本発明は、概して観察のための画像の階層的組み合わせに基づいている先行技術方法の不適当なオーバヘッドを克服する。
【0037】
原則として、本発明は、多重供給源の中で最も高い深さ値(Z)についての競争を与える。最も高い深さ値は、多重AUを利用することによって決定されるべきである。各AUは、与えられた他の値に対する局所的な深さ値を連続的に検査し、そして他のAUに対する競争をやめるか、さらに競争させるかを自律的に判定する。シーケンシャルな種類からなる在来のソート処理方法と対照的に、本発明による分散処理は、並列的に実行され得て、実質的にコンポジション実行のスピードを上げる。本発明の付加的な優位性は:(i)いかなる長さの数についても実行され得ること;および(ii)いかなる数の供給源にも、性能を減少することなしに適合することである。
【0038】
図5は、本発明の構成メカニズムの一般的な図解を提供する。本発明のコンポジションシステム51は、グラフィックスパイプライン(FBj,j=1,2,3,…,R)によって提供されるサブ画像データが与えられる。コンポジションシステム51において、サブ画像のデータ(Zj,Pj)は、AU(AUj,j=1,2,3,…,R)に対応する一セットのRに提供され、それらの各々は、画面の同一のX/Y座標における画像ピクセルを取り扱うことができる。各競争するデータは、内容Pj(例えばカラー、透明、ここではRGB−値とも称される)およびピクセルの深さZjから構成される。
【0039】
Z−値は、AUによって受信され、そして深さ競争バス(DCB)上に導入される。DCBラインの論理状態は、AUによって検知され、該AUは、それに応じてキャリーインおよびストップマークベクトルを生起し、これらベクトルは、それらが最も高いZ−値を保持しているかどうかを決定すべく、プロモーションマトリクス(PM)53と共に使用される。競争するデータに関する判定は、結合メカニズムに基づき、且つDCB上の他のAUとの比較によって、各AUにおいて局所的に実行される。最終的に、最も近いピクセル(すなわち、最も高いZ−値)を保持しているAUは、ピクセルのカラーPj(RGB−値)を、最終画像55を構成する最終ラスタ50にわたすことが可能とされる。
【0040】
深さ競争バス(DCB)構造は、図7Aおよび図7Bに示され且つ説明されるように、ワイアド−アンド論理をインテリジェントに配備する。ワイアド−アンド論理70の機能性は、通常の論理アンド機能の機能性と同様である。しかしながら、ワイアド−アンド機能は、単一の電気的ポイントに多数の出力を導入し、その点で通常の論理アンドゲートはその信号を他のいかなる出力とも絶縁されている他のゲートに出力しなければならない。図7Aに説明されているように、入力のいずれか1つにおける論理「0」状態は、出力ライン上を論理「0」状態とさせる。
【0041】
DCB上の比較プロセスは、ビット優位性連続方式にて実行される。図7Bに示されるように、グラフィックパイプライン(FBj)を経由して提供される各Z−値(Z1,Z2,Z3,…,ZR)は、それぞれのAU(AUj)内に供給される。DCBのラインは、それらの優位性のレベルに従って、N−バイナリのZ−値(Zj(i),i=0,1,2,…,N)の各セグメントのワイアド−アンド結果を出力するために用いられる。このようにして、DCB(0)ラインは、Z−値(Zj(0))の最下位セグメント(LSS、非第一のセグメントとも称される)上で実行されるワイアド−アンド論理の出力として使用され、そして、DCB(N−1)ラインは、Z−値(Zj(N−1))の最上位セグメント(MSS、第一のセグメントとも称される)上で実行されるワイアド−アンド論理の出力のために使用される。
【0042】
比較プロセスは、Z−値の最上位ビットからスタートする、順序付けられた様式で行われ、そしてそれは、Z−値の最下位ビットで終了させられる。競争は、AUが、DCB(N−1)の最も上のライン上に最上位ビット(MSB)を出力したときにスタートする。このプロセスの期間は、いつも、log2|Z|の一定時間を要し、ここで、|Z|は、場面の深さ領域、すなわちZ−値のビット長である。その結果として、先行技術の方法の多重ステージ構造は、本発明の方法に従った単一のステージによって置換される。先行技術の方法のO(log2Z*log2N)の実行の複雑さは、本発明の方法によってO(log2Z)に有意的に低減される。
【0043】
MSSビットZj(N−1)の比較において、DCBラインDCB(N−1)上に、単一の、またはそれらのいくつかの、論理「0」状態を、置くことは、前記ライン上を「0」論理状態に強制する。DCBライン上に「1」論理状態が置かれ、且つ前記ライン上で結果的に「0」論理状態が検知されるAUは、それらの現在のZ−値についてのそれらの競争を終結させ、さもなければ、該AUは、表1に例示されたように、次に続くビット(優位性が低い)に対するそれらの競争を続けることが許可される。
【0044】
(表1)
MSSビットZj(N−1)の比較
┌───────────┬───────────┬───────────┐
│ 強制値 │DCBラインの状態 │ 判 定 │
├───────────┼───────────┼───────────┤
│ 1 │ 0 │ ストップ │
├───────────┼───────────┼───────────┤
│ 1 │ 1 │ 継 続 │
├───────────┼───────────┼───────────┤
│ 0 │ 0 │ 継 続 │
├───────────┼───────────┼───────────┤
│ 0 │ 1 │ 継 続 │
└───────────┴───────────┴───────────┘
上の表1に示された最後のケースは、DCBライン上の論理「0」状態の強制は、このラインを論理「0」状態に強制しなければならないから、実際に可能でないことに留意されるべきである。
【0045】
Z−値が競争を継続すべきであるかどうかについての判定は、DCBラインの論理状態を検知することにより各AUによって確立される。最後に残存しているAUが、競争に「勝つ」。AUの比較論理がバス上により高いZ−値を識別したとき、それ自体を競争から引き離す。さもなければ、バス上に残った値が最も高いZ−値を有するものとなるまで競争を続ける。
【0046】
図8は、AUの動作を説明するブロック図である。第KのZ−値(Zk(N−1),Zk(N−2),…,Zk(0))は、1セットのゲート(90、図9に示されている)を経由してDCBに結線されており、ピクセル値PKは、ゲート84を経由してマージされたFB50へ通るゲート制御がされる。結合論理80は、ワイアド−アンド機能を有効とし、ユニットの競争を制御し、そしてPM53の一つから勝ちの通知86(WK)を受けたときに、有効化指示81を利用してRGB−値PKがFB50へ通過することを許可する。
【0047】
AUは、Z−値(Zk(i),i=0,1,2,…,N−2)のLSSについて結合ロジック80によって生成され且つその後にPM53に供給されたストップマーク(SM)ベクトル85SMk=(SMk(0),SMk(1),…,SMk(N−2))を生成する。キャリーアウト指示(Ck(N−1))もAUkによって生起され、Z−値ZkのMSS(Zk(N−1))が競争の第一のステージを勝ったかどうかを指示する。
【0048】
結合論理80は、種々の方法でAUの競争機能性を拡張すべく設計されても良いことに留意されるべきである。例えば、到来するZ−値の逆数が競争のために(全てのAUにおいて)使用されても良く、そしてそのようなケースにおいては、AU間の競争は、最小の深さ値を決定することに基づいて行われるであろう。その代わりとして、AUのZ−値入力上に、しきい値をむしろ配置し、そしてこのようにして、それら2つの値の、どちらが、しきい値より大きいか、またはしきい値より小さいか、という競争を可能とするようにしても良い。
【0049】
局所AUにおいて、各Z−値Zjは、NセグメントZj(N−1),Zj(N−2),…,Zj(0)にセグメント化され、ここで、第(N−1)のセグメントZj(N−1)は、MSBを保持し、そして第(0)のセグメントZj(0)は、ZjのLSBを保持している。例えば、3つのセグメント(すなわち。N=3,Zj(2),Zj(1),およびZj(0))に処理される32ビットの長さのZ−値数を仮定しよう、そこでは第一および第二のセグメント(Zj(2)およびZj(1))は、各々8ビットの長さで且つ第三のセグメント(Zj(0))は、16ビットの長さである。競争の第一のステージにおいて、Z−値(Zj(2),j=1,2,…,R)のMSS(第一のセグメント)に従って一つ以上の予備的な勝者が決定され、且つストップマークグレーディング(SMj(i),i=0,1,2,…,N−2、例えばN=3についてSMj(0)およびSMj(1))がZ−値(Zj(i),i=0,1,2,…,N−2、例えばN=3についてZj(2)およびZj(1))の全ての他のセグメント(LSS)の間の競争に従って確立される。競争の次のステップにおいて、第一のステージを勝利したZ−値に対応する第二のセグメント(Zj(N−2)例えばZj(1))について確立された、ストップマークグレーディングSMK(N−2)(例えば、SMK(1))は、それらのZ−値のいずれを競争させ続けるかを決定すべく検査される。次のセグメント(SMj(i),i=0,1,2,…,N−3、例えばN=3についてSMj(0))について確立されたストップマークグレーディングによって、最後のセグメント(LSS、Zj(0))の結果に従って最も高いZ−値が決定されるまで、同一のプロセスが実行される。
【0050】
各AUは、全てのセグメント(Zj(i),i=0,1,…,N−1)を並列に処理する。AUは、MSBからLSBまでに使用されたセグメンテーションに従って、全てのZ−値の数を制御する。AU論理が、第一のセグメントZj(N−1)を競争させ且つそのキャリーアウトC(N−1)をPM(N−1)(図6)に提示すると同時に、第二のセグメントZj(N−2)を競争させ且つそのストップマークSM(N−2)をPM(N−1)に提示する。同様に、Z−値の第三のセグメントZj(N−3)を競争させ且つストップマークグレーディングSM(N−3)をPM(N−2)に提示するなどする。
【0051】
セグメント長は、競争性能を最適化すべく選定される。例えば、32ビットの長さのZ−値について、それぞれ、8、8、および16ビットの、Zj(2)、Zj(1)、およびZj(0)の、三つのセグメントで処理され、第二のセグメントについてのSMベクトルSM(1)は、第一のセグメントZj(2)が処理されている間に準備され得て、そして第三の(最長の)セグメントについてのSMベクトルSM(0)は、二つの先行するセグメントZj(2)およびZj(1)のために必要とされる時間期間を利用して同時的に準備され得る。
【0052】
このプロセスは、図6に説明されている。数字61〜64は、Z−値のセグメンテーションに従ってAUによって生成される指示を概略的に指定している。Z−値(Zj(i),i=0,1,2,…,N−2)のLSSを供するN−1個のPM53が存在する。PM53は、対応する(第iの)セグメントにについてAUによって生成されるそれぞれストップマークベクトルSM(i)=(SM1(i),SM2(i),…,SMR(i))に従って決定されるキャリーアウトベクトルC(i)(C(N−2),C(N−3),…,C(1))、および従前のステージにおいてPM(i−1)によって生起されるキャリーアウトベクトルC(i−1)を生成する。PMによって生成される付加的な信号は、(a)競争の各ステージにおいて勝ったZ−値を指定する勝者指示Wj、および(b)一旦単一の勝者が決定されると生成され、後続のマトリクスが、それらの競争を継続するのを防止する「競争ストップ」信号である。
【0053】
Z−値の第一のセグメントZj(N−1)=(Zj,0(N−1),Zj,1(N−1),…,Zj,n−1(N−1))についてのキャリー指示を生成するためのAU論理が、図9に示されている。ワイアド−アンドの機能性を活用すべく、各ビットの反転状態が、論理ナンドゲート90を経由してDCBラインに導入される。各検査されたビットZj,k(N−1)について、それぞれのDCBラインの論理状態および検査されたビットZj,k(N−1)の論理状態に従って、Z−値が次のビットレベルZj,k+1(N−1)において競争を継続するかどうかを決定するために、論理オアゲート92が、使用される。各ビットステージZj,k(N−1)は、論理アンドゲート92を経由して次のビットステージZj,k(N−1)を制御する。キャリーアウト指示Cj(N−1)は、全てのnビットステージが競争を生き残った場合にのみ生成される。キャリーアウト指示は、図6に示されたPM(N−1)プロモーションマトリクスに対して提供され、そしてこのようにして、次のセグメントにおけるZ−値Zjのさらなる競争を可能としている。
【0054】
同時に、AUが、Z−値の第一のセグメントを検査している間に、LSS(Zj(i),i=0,1,2,…,N−2)の各々もワイアド−アンド論理によって検査される。しかしながら、LSSの検査において、第一のセグメントについて生成されたキャリーアウト指示Cj(N−1)の代わりに、ストップマークSMj(i)(i=0,1,2,…,N−2)信号が生成される。各ストップマークSMj(i)信号は、ストップマークベクトルSM(i)の一部としてのPM(i)プロモーションマトリクスにそれぞれ送られる。
【0055】
ストップマークSMj(i)は、競争から全Z−値Zjがもしかすると省かれるかもしれないそれぞれのセグメントZj(i)の「弱い」ビットを指示する。LSSについてのSM信号(SMj(i),i=0,1,2,…,N−2)を生成するための論理は、図10に示されている。主として、この論理は、キャリーアウトベクトルC(N−1)の生成のために使用された論理と類似している。しかしながら、各ビットステージが、インバータ99を経由して、ストップマーク信号「ストップ1」−「ストップ(n+1)」を生成し得ることにおいて異なっている。各LSSセグメント(Zj(i),i=0,1,2,…,N−2)について、ただ一つのストップマーク信号SMj(i)が生成される。最も高い可能性のストップマーク信号「ストップ(n+1)」は、検査されたセグメントは、いかなるそのワイアリング比較においても消滅しないことを示している。
【0056】
結合マトリクスの論理は、ストップマークベクトルSMj(i)および従前に生成されたキャリーアウトベクトルC(i+1)を取り扱い、そして新たなキャリーアウトベクトルC(i)を生成する。この新たなキャリーアウトベクトルC(i)において、これまで競争に生き残ったそれらのAUのみが参加している。もしもちょうど単一のAUが生き残ったならば、それが最終勝者になり、競争プロセスを停止する。そうでなければ、次のPM(PM(i−1))が、単一の勝者が残るまで同一のタスクを実行する。
【0057】
図11は、PM(縮小されたケース)の論理を説明している。平易化のために、図11は、二つのAU(R=2)を供する第iのPM(すなわちPM(i))を図解しており、そこでは第iのセグメントは4ビットの長さである(すなわち、5つのストップマーク、SMj(i)=(SMj,1(i),SMj,2(i),…,SMj,5(i)))。ストップマークベクトルSM1(i)およびSM2(i)の各々は、FF110および111の一方に設定する。一つよりも多いFF110および111が、並んで「オン」状態になることはできない。勝利指示Cj(i+1)が従前のPM(PM(i+1))から受信されたストップマークベクトルは、より高い数を有し且つ従前のPM(PM(i+1))において勝利が指示されたキャリーアウトを有する他のストップマークが存在しなければ、そして存在しない場合にのみ、キャリーアウトを生成するであろう。
【0058】
PMにおける従前の縦列の操作は、最も高いレベルを有するストップマーク指示がそこで受信され且つ対応するキャリーアウト指示が従前のPMからそのために受信される、縦列の論理オアゲート119を介して集められた論理アンドゲート117から対応する指示を受け取ると同時に、抑止機能113を介して抑止される。もしもPMによって受信されたストップマークが同一の優位性からなっている(例えば、SM1,4(i)およびSM2,4(i))ならば、キャリーアウト指示C1(i)およびC2(i)がバッファ112を経由して次のPM(PM(i))に供給される。
【0059】
ただ一つの勝利信号W(i)のみが、PMの一つによって生起され得る。検出部115が、単一の勝者が、現在のステージで決定されたことを指示するときはいつも、抑止機能113は、次のステージPM(i−1)のPMによってさらなる処理を抑止するであろうストップ指示Stop(i)を生起する。ストップ信号が抑止機能(例えば、Stop(i+1))によって受信されたときはいつも、ゲート117を抑止することおよび次のPMの抑止機能へストップ指示(例えばStop(i))を発行することによって、現在およびそれに続くPMの機能を、抑止する。
【0060】
例えば、AU1が、ストップマーク4、SM1,4(i)、を設定し、AU2が、ストップマーク2、SM2,2(i)、を設定すること、そして従前のPMから受信される両方のキャリー指示、C1(i+1)およびC2(i+1)、が、競争の従前のステージにおける勝利を指示することと仮定する。そのようなケースにおいては、AU1において競争するZ−値が勝ち、抑止機能113を経由して縦列1〜3を抑止し、そしてキャリーアウトC1(i)のみを生成する。単一のキャリーアウトの検出は、現在のステージにおける単一の勝者を指示し、結果は、AU1へのW1ライン上に設けられる単一キャリーアウト検出部115を経由して勝利通知信号W(i)を生成することである。勝利AUは、それからそのRGB値PKをFB50へ供給することが可能とされる。
【0061】
もしも、例えば、AU1およびAU2が、両方ともストップマーク4、SMj,4(i)、をオンとし、キャリー指示C1(i+1)およびC2(i+1)が両Z−値が従前のステージで勝ったことを指示すると、そのときは、次のPM(PM(i+1))へ転送される二つのキャリーアウトC1(i)およびC2(i)が、現在のステージにおける勝ちをも指示するであろう。
【0062】
図12は、AUaからeに属するR=5のZ−値(Z1,Z2,Z3,Z4,およびZ5)の競争プロセスを例示している。この例において、Z−値の深さ寸法は、32ビットからなり、そして深さ値は、各8ビットのN=4セグメント(Zj(3),Zj(2),Zj(1),およびZj(0))にセグメント化される。(プロモーションマトリクスを有さない)シーケンシャルなワイアド−アンドプロセスが、32時間単位を要するのに、この例における合計処理時間は、11時間単位である。
【0063】
この例における第一のセグメントにおいて、MSS,Z2(3),Z3(3),およびZ5(3)は、全て等しく且つZ1(3)およびZ4(3)よりも大きく、そしてそれゆえ対応するC2(3),C3(3),およびC5(3)キャリーアウト信号のみが、Z−値Z2,Z3,およびZ5が第一のステージを勝ったことを指示すべく生起される。同時に、LSSのSMベクトルが、AUによって生起される。
【0064】
Z−値の第二のセグメントについて、Zj(2)数の6つのMSBは全て等しい。「ストップ7」SMは、Z1(2)について指示され、そして、セグメントにおける全ての他のZ−値の第7ビットの状態が、「1」(Z2,7(2)=Z3,7(2)=Z4,7(2)=Z5,7(2)=1)であるのに、その第7ビットの状態は「0」(Z1,7(2)=0)であるからさらなる競争はしない。「ストップ8」SMは、Z3(2)について指示され、そして、それらの競争がこのビットステージにおいて続行する値の第8ビットの状態が、「1」(Z2,8(2)=Z4,8(2)=Z5,8(2)=1)であるのに、その第8ビットの状態は「0」(Z3,8(2)=0)であるから、また、さらなる競争を終了する。それゆえ、「ストップ9」SMは、セグメントにおけるビットステージはどれもこれもそれらが勝つから、Z2(2),Z4(2),およびZ5(2)についての指示が生起される。したがって、PM(2)におけるSM(2)およびC(3)ベクトルの処理は、次のPM、PM(1)、に対するキャリーアウト指示C2(2)およびC5(2)を生起するであろう。
【0065】
Z−値の第三のセグメントについて、「ストップ2」SMは、Z5(1)について指示され、Z1,2(1)=Z2,2(1)=Z3,2(1)=Z4,2(1)=1であるのに、Z5,2(1)=0およびZj,1(1)=0であるから、それはいかなるさらなる競争をもストップし、そして「ストップ9」SMは、それらの6つのMSBは同等であるから、Z1(1),Z2(1),Z3(1),およびZ4(1)について指示される。したがって、PM(1)におけるSM(1)およびC(2)ベクトルの処理は、最後のPM、PM(0)、に対する単一キャリーアウト指示C2(1)を生起するであろう。PM(1)、が単一の勝者を決定したから、その検出部115は、対応する指示W2を勝ったAU、AU2、に対して生起し、そのRGB値P2をFB50において利用可能とする。それゆえに、PM(1)の抑止機能は、最後のPM、PM(0)、におけるさらなる処理を抑止するストップ(0)指示を生成する。
【0066】
第三のセグメントの処理は、実行されない。それにもかかわらず、AUによってSM(0)指示が生起される。Z1,1(0)=Z2,1(0)=Z3,1(0)=Z4,1(0)=1であるのに、Z5,1(0)=0であるから、「ストップ1」SMは、Z5(0)について指示される。r=2,3,4,5および6について、Z1,r(0)=Z2,r(0)=Z3,r(0)=Z4,r(0)=1、Z3,7(0)=Z4,7(0)=0、そしてZ1,7(0)=Z2,7(0)=1であるから、「ストップ7」SMは、Z3(0)およびZ4(0)について指示される。それゆえに、Z2,8(0)=0およびZ1,8(0)=1であるから、「ストップ8」SMは、Z2(0)について指示され、そして「ストップ9」SMは、Z1(0)について指示される。
【0067】
全てのセグメントは、長さについて一様に維持されるから、セグメントのSM結果をマージングすることによって、競争時間は、さらに縮減され得る。そのような縮減は、従前のPMからのキャリーアウト指示の到着に先立って結果のクラスタリングを可能とする。このアプローチは、複雑さをO(log2Z)からO((log2Z)/k)(但しkは折り畳み係数)に低減する。例えば、Z=232と仮定すると、シーケンシャルなワイアド−アンドプロセスは、O(32)の複雑さを要する。しかしながら、各8ビットの4個のPMを用いれば、数の後半は、前半を処理するときに「折り畳まれる」。結果として、複雑さは、O(8+1+1)に低減される。このケースでは、折り畳み係数kは、32/10=3.2である。より長い数、例えば64ビットのケースにおいては、複雑さの程度は、顕著には変化されず:O(8+1+1+1)である。この並列のアプローチの利点は、Z−値数のいかなるビット長にも、高い効率を維持しつつ、ほとんど同様の短時間に処理され得ることにある。
【0068】
図13は、本発明の望ましい実施の形態のチップインプリメンテーション140(例えばVLSI)を説明するブロック図である。この例は、6つの異なるGPUから6つのFBをコンポジットするためのインプリメンテーションを図解している。このインプリメンテーションは、複数のサブ画像ユニット(SIU)によって複数のサブ画像ピクセルを同時に構成するためのコンポジット処理ユニットを実現する。各SIUは、GPUの数に対応するAUのセット、DCB、PM、および制御論理141を具備している。各SIUにおける制御論理141は、それぞれのサブ画像の座標と符合するピクセルのみを、ポート〜ポート6入力ポートを介して取り込まれるデータ入力ストリームと区別する。各SIUは、サブ画像の一つのRGBデータを出力し、該データは、出力ポート142を介してFB50に出力される。
【0069】
全コンポジットプロセスは、各FBを16個のサブ画像に分割することによってさらに並列化される。例えば、1024×1024ピクセルの分解能を有する画像について、各サブ画像ユニット(SIU)は、64×64サブ画像(画像の1/16)を処理する。もしも、例えば、ピクセルのカラーデータが24ビットの長さであれば、SIUのスタックの出力は12Kバイトの勝利したピクセルカラーデータを含んでいる。
【0070】
先行技術に反して、本発明は、図5において説明されたように、いかなる数のGPU、R、についての単一のマージ処理ステップを実行することが可能である。先行技術方法の階層的構造は、本発明においては、特有の、平坦な、単一ステップ構造によって置き換えられている。この新規な構造の性能は、並列処理のレベル、すなわち参加するGPUの数、に敏感ではない。コンポジション時間は、単一比較まで事実上低減され、そしてどんな任意数のGPUも、全体の性能に対する犠牲なしに、許容される。
【0071】
上述の例および記述は、もちろん、説明の目的のためにのみ提供されており、そしていかなる点においても発明を限定することを意図していない。当業者によって認められるであろうように、本発明は、非常に多種多様の方法において、上述されたものとは異なる技術を採用して、本発明の範囲を逸脱することのない全てを実施され得るものである。
【図面の簡単な説明】
【0072】
【図1】複数のサブ画像データの単一の画像へのマージ処理を図解するブロック図である。
【図2A】先行技術の階層的コンポジット処理方法を図解するブロック図である。
【図2B】階層的コンポジット処理性能の並行処理制限を図表的に図解している。
【図3A】先行技術の共有メモリコンポジット処理方法を示すブロック図および擬似コードを示している。
【図3B】先行技術の共有メモリコンポジット処理方法を示すブロック図および擬似コードを示している。
【図4】先行技術の共有メモリコンポジション法の性能を図表的に図解している。
【図5】本発明の望ましい実施の形態を例示するブロック図である。
【図6】本発明に従ったプロモーションシステムを図解するブロック図である。
【図7A】本発明のワイアド−アンド機能の原理を具体的に説明するブロック図である。
【図7B】N個のバイナリ数のワイアド−アンド競争の原理を図解するブロック図である。
【図8】結合ユニットの望ましい実施の形態を図解するブロック図である。
【図9】第一のセグメントの論理を概略的に図解するブロック図である。
【図10】非第一のセグメントの論理を概略的に図解するブロック図である。
【図11】低減されたプロモーションマトリクスを概略的に図解するブロック図である。
【図12】5個の深さ値の競争プロセスを例示している。
【図13】本発明の望ましい実施の形態のチップインプリメンテーションを図解するブロック図である。
【特許請求の範囲】
【請求項1】
複数の数Z1,Z2,…,ZRから最大の数を検出するための方法であって:
a)前記数の各々を二つ以上のバイナリセグメントZj(N−1),Zj(N−2),…,Zj(0)に分割するステップであって、前記セグメントのビット長が、それらの有意性のレベルに従って決定され、そして前記セグメントのセットは、それらの有意性のレベルに従って配列され、セグメントの第一のセットZj(N−1),Zj(N−1),…,Zj(N−1)は、前記数の最上位セグメントを含み且つセグメントの最終セットZj(0),Zj(0),…,Zj(0)は、前記数の最下位セグメントを含むステップと;
b)同一レベルの有意性を有するセグメントZ1(K),Z2(K),…,ZR(K)の絶対値を同時に比較し、それらの最上位セグメントの絶対値が最大である数を指定するグループを決定し、そして最下位セグメントについて、それらの絶対値サイズを指示するグレードを、同一レベルの有意性の他のセグメントの絶対値と比較して評価するステップと;
c)セグメントの第二のセットZ1(N−2),Z2(N−2),…,ZR(N−1)からスタートして、前記グループに対応する数のセグメントのグレードを比較し、且つ前記グループにおける他の数の指示に対応する最も高いグレードよりも低いグレードを有するいかなる数の指示をも前記グループから除去するステップと;
d)最後のセットのセグメントZ1(0),Z2(0),…,ZR(0)に到達するまで、または、単一の数が前記グループによって指定されるまで、ステップc)を繰り返すステップと;
を有する方法。
【請求項2】
数は、多重三次元ラスタ画像のピクセルの深さ値である請求項1に記載の方法。
【請求項3】
数をしきい値と比較し、且つそれらの値が前記しきい値の上または下である数についてのみ最大数の検出を実行するステップをさらに有する請求項1に記載の方法。
【請求項4】
最小数を決定するために、グループが、それらの最上位セグメントの絶対値が最も小さい数を指定すべく決定され、且つ数の指定は、それらのグレードが、前記グループにおける他の数の指示に対応する最小のグレードよりも大きいときはいつも前記グループから除去される請求項1に記載の方法。
【請求項5】
全てのセグメントは、同一のビット長からなる請求項1に記載の方法。
【請求項6】
一つ以上の最下位セグメントのビット長は、最上位セグメントのビット長よりも大きい請求項1に記載の方法。
【請求項7】
各サブ画像における同一の空間位置に対応するピクセルの深さ値Z1,Z2,…,ZRを検査し、そして最大の深さ値を有するピクセルの内容をコンポジットすることによって複数の三次元サブ画像をコンポジット処理するための方法であって:
a)前記深さ値の各々を二つ以上のバイナリセグメントZj(N−1),Zj(N−2),…,Zj(0)に分割するステップであって、前記セグメントのビット長が、それらの有意性のレベルに従って決定され、そして前記セグメントのセットは、それらの有意性のレベルに従って配列され、セグメントの第一のセットZj(N−1),Zj(N−1),…,Zj(N−1)は、前記深さ値の最上位セグメントを含み且つセグメントの最終セットZj(0),Zj(0),…,Zj(0)は、前記深さ値の最下位セグメントを含むステップと;
b)同一レベルの有意性を有するセグメントZ1(K),Z2(K),…,ZR(K)の絶対値を同時に比較し、それらの最上位セグメントの絶対値が最大である深さ値を指定するグループを決定し、そして最下位セグメントについて、それらの絶対値サイズを指示するグレードを、同一レベルの有意性の他のセグメントの絶対値と比較して評価するステップと;
c)セグメントの第二のセットZ1(N−2),Z2(N−2),…,ZR(N−1)からスタートして、前記グループに対応する深さ値のセグメントのグレードを比較し、且つ前記グループにおける他の深さ値に対応する最も高いグレードよりも低いグレードを有するいかなる深さ値の指示をも前記グループから除去するステップと;
d)最後のセットのセグメントZ1(0),Z2(0),…,ZR(0)に到達するまで、または、単一の深さ値が前記グループによって指定されるまで、ステップc)を繰り返すステップと;
を有する方法。
【請求項8】
深さ値をしきい値と比較し、且つそれらの値が前記しきい値の上または下である深さ値についてのみ最大数の検出を実行するステップをさらに有する請求項7に記載の方法。
【請求項9】
最小数を決定するために、グループが、それらの最上位セグメントの絶対値が最も小さい深さ値を指定すべく決定され、且つ深さ値の指定は、それらのグレードが、前記グループにおける他の数の指示に対応する最小のグレードよりも大きいときはいつも前記グループから除去される請求項7に記載の方法。
【請求項10】
全てのセグメントは、同一のビット長からなる請求項7に記載の方法。
【請求項11】
一つ以上の最下位セグメントのビット長は、最上位セグメントのビット長よりも大きい請求項7に記載の方法。
【請求項12】
複数の三次元サブ画像をコンポジットするためのシステムであって:
a)複数のピクセルの深さ値のビット群を同時に導入するためのバスライン群であり、各バスライン上に同一レベルの有意性を有するビット群が導入され、前記ビット群の全ての論理状態が「1」であるときはいつも、前記ライン群の論理状態が「1」にセットされ、そしてもしも前記ビット群の少なくとも一つの論理状態が「0」であれば、その論理状態が「0」にセットされるバスラインと;
b)前記サブ画像における同一の空間位置に対応するピクセル群のデータを同時に読み取り、各読み取りピクセルの深さ値を二つ以上のセグメントに分割し、前記セグメントを前記バスのそれぞれのライン上に導入し、前記ライン群の論理状態を検知し、そしてそれに応じて最大の絶対値を有する深さ値を指定する前記値の最上位セグメントについての、および同一レベルの有意性の他のセグメントの絶対値と比較してそれらの絶対値サイズを指示する最下位セグメントストップマークグレーディングについての中間比較結果を同時に生起するための結合ユニットと;
c)対応するストップマークグレーディングが、前記中間比較結果の一つに関連する最大のストップマークグレーディングよりも小さいものについての先に生起された中間比較結果深さ値指定を除去することによって、最上位セグメントのセットに続くセグメントのセットからスタートする、有意性の順における各後続のセグメントのセットについての中間比較結果を連続的に生起するためのプロモーションマトリクスと;
を具備し、
前記プロモーションマトリクスは、ピクセルデータがそれぞれの結合ユニットからコンポジット処理のために回復され得るように、現在生起された中間比較結果が単一指定を含むことを指示することができるシステム。
【請求項13】
現在生起された中間比較結果が単一の指定を含むことがプロモーションマトリクスによって指示されたときはいつでも、後続のプロモーションマトリクスの動作を抑止するための抑止手段をさらに備える請求項12に記載のシステム。
【請求項14】
当該システムが単一の集積回路チップ上にインプリメントされた請求項12に記載のシステム。
【請求項15】
チップは、VLSIインプリメンテーションである請求項12に記載のシステム。
【請求項16】
ワイアド−アンドバスのライン上にピクセルの深さ値のセグメントのビット群を導入し、キャリーアウトおよびストップマーク指示を発行し、そして対応する外部の有効化指示に従って前記ピクセルのデータを有効化するための結合ユニットであって:
a)前記バスのそれぞれのライン上への前記深さ値の最上位セグメントのビット群の導入を有効化し、前記ラインの論理状態を、最上位ラインからスタートして検知し、そしてもしも検知されたラインおよび対応するビットの論理状態が、「0」ならば、それに続くバスラインの検知を抑止し、さもなければ前記セグメントの最後まで進めるべく検知を有効化し、そしてキャリーアウト指示を発行するための第一のセグメント論理回路要素と;
b)前記バスのそれぞれのライン上への前記深さ値の最下位セグメントのビット群の導入を有効化し、前記ラインの論理状態を、最上位ラインからスタートして検知し、そしてもしも検知されたラインおよび対応するビットの論理状態が、「0」ならば、それに続くバスラインの検知を抑止し且つそのセグメントにおける前記ビットの有意性のレベルに対応するストップマーク指示を発行し、さもなければ前記セグメントの最後まで進めるべく検知を有効化し、そして前記セグメントにおける最上位ビットよりも高い一つのレベルである有意性のレベルを有するストップマーク指示を発行するための一つ以上の非第一のセグメント論理回路要素と;
c)前記有効化指示が受信されたときはいつでも前記データの出力を有効化するためのゲートと;
を具備し、
それに導入されたビット群の全ての論理状態が「1」であるときはいつでも前記バスの各ラインの論理状態が、「1」にセットされ、且つもしも前記ビット群の少なくとも一つの論理状態が「0」であれば、それは「0」にセットされ、そして前記有効化指示は、前記キャリーアウトおよびストップマーク指示に従って外部的に決定される結合ユニット。
【請求項17】
深さ値の値が、しきい値よりも大きいときはいつでも、第一のおよび非第一のセグメント論理回路要素の動作を有効化するための手段をさらに備える請求項16に記載の結合ユニット。
【請求項18】
該手段は、深さ値の値が、しきい値よりも小さいときはいつでも、第一のおよび非第一のセグメント論理回路要素の動作を有効化する請求項17に記載の結合ユニット。
【請求項19】
検知されたラインおよび対応するビットの論理状態が「1」であるときはいつでも、それに続くバスラインの検知は抑止される請求項16に記載の結合ユニット。
【請求項1】
複数の数Z1,Z2,…,ZRから最大の数を検出するための方法であって:
a)前記数の各々を二つ以上のバイナリセグメントZj(N−1),Zj(N−2),…,Zj(0)に分割するステップであって、前記セグメントのビット長が、それらの有意性のレベルに従って決定され、そして前記セグメントのセットは、それらの有意性のレベルに従って配列され、セグメントの第一のセットZj(N−1),Zj(N−1),…,Zj(N−1)は、前記数の最上位セグメントを含み且つセグメントの最終セットZj(0),Zj(0),…,Zj(0)は、前記数の最下位セグメントを含むステップと;
b)同一レベルの有意性を有するセグメントZ1(K),Z2(K),…,ZR(K)の絶対値を同時に比較し、それらの最上位セグメントの絶対値が最大である数を指定するグループを決定し、そして最下位セグメントについて、それらの絶対値サイズを指示するグレードを、同一レベルの有意性の他のセグメントの絶対値と比較して評価するステップと;
c)セグメントの第二のセットZ1(N−2),Z2(N−2),…,ZR(N−1)からスタートして、前記グループに対応する数のセグメントのグレードを比較し、且つ前記グループにおける他の数の指示に対応する最も高いグレードよりも低いグレードを有するいかなる数の指示をも前記グループから除去するステップと;
d)最後のセットのセグメントZ1(0),Z2(0),…,ZR(0)に到達するまで、または、単一の数が前記グループによって指定されるまで、ステップc)を繰り返すステップと;
を有する方法。
【請求項2】
数は、多重三次元ラスタ画像のピクセルの深さ値である請求項1に記載の方法。
【請求項3】
数をしきい値と比較し、且つそれらの値が前記しきい値の上または下である数についてのみ最大数の検出を実行するステップをさらに有する請求項1に記載の方法。
【請求項4】
最小数を決定するために、グループが、それらの最上位セグメントの絶対値が最も小さい数を指定すべく決定され、且つ数の指定は、それらのグレードが、前記グループにおける他の数の指示に対応する最小のグレードよりも大きいときはいつも前記グループから除去される請求項1に記載の方法。
【請求項5】
全てのセグメントは、同一のビット長からなる請求項1に記載の方法。
【請求項6】
一つ以上の最下位セグメントのビット長は、最上位セグメントのビット長よりも大きい請求項1に記載の方法。
【請求項7】
各サブ画像における同一の空間位置に対応するピクセルの深さ値Z1,Z2,…,ZRを検査し、そして最大の深さ値を有するピクセルの内容をコンポジットすることによって複数の三次元サブ画像をコンポジット処理するための方法であって:
a)前記深さ値の各々を二つ以上のバイナリセグメントZj(N−1),Zj(N−2),…,Zj(0)に分割するステップであって、前記セグメントのビット長が、それらの有意性のレベルに従って決定され、そして前記セグメントのセットは、それらの有意性のレベルに従って配列され、セグメントの第一のセットZj(N−1),Zj(N−1),…,Zj(N−1)は、前記深さ値の最上位セグメントを含み且つセグメントの最終セットZj(0),Zj(0),…,Zj(0)は、前記深さ値の最下位セグメントを含むステップと;
b)同一レベルの有意性を有するセグメントZ1(K),Z2(K),…,ZR(K)の絶対値を同時に比較し、それらの最上位セグメントの絶対値が最大である深さ値を指定するグループを決定し、そして最下位セグメントについて、それらの絶対値サイズを指示するグレードを、同一レベルの有意性の他のセグメントの絶対値と比較して評価するステップと;
c)セグメントの第二のセットZ1(N−2),Z2(N−2),…,ZR(N−1)からスタートして、前記グループに対応する深さ値のセグメントのグレードを比較し、且つ前記グループにおける他の深さ値に対応する最も高いグレードよりも低いグレードを有するいかなる深さ値の指示をも前記グループから除去するステップと;
d)最後のセットのセグメントZ1(0),Z2(0),…,ZR(0)に到達するまで、または、単一の深さ値が前記グループによって指定されるまで、ステップc)を繰り返すステップと;
を有する方法。
【請求項8】
深さ値をしきい値と比較し、且つそれらの値が前記しきい値の上または下である深さ値についてのみ最大数の検出を実行するステップをさらに有する請求項7に記載の方法。
【請求項9】
最小数を決定するために、グループが、それらの最上位セグメントの絶対値が最も小さい深さ値を指定すべく決定され、且つ深さ値の指定は、それらのグレードが、前記グループにおける他の数の指示に対応する最小のグレードよりも大きいときはいつも前記グループから除去される請求項7に記載の方法。
【請求項10】
全てのセグメントは、同一のビット長からなる請求項7に記載の方法。
【請求項11】
一つ以上の最下位セグメントのビット長は、最上位セグメントのビット長よりも大きい請求項7に記載の方法。
【請求項12】
複数の三次元サブ画像をコンポジットするためのシステムであって:
a)複数のピクセルの深さ値のビット群を同時に導入するためのバスライン群であり、各バスライン上に同一レベルの有意性を有するビット群が導入され、前記ビット群の全ての論理状態が「1」であるときはいつも、前記ライン群の論理状態が「1」にセットされ、そしてもしも前記ビット群の少なくとも一つの論理状態が「0」であれば、その論理状態が「0」にセットされるバスラインと;
b)前記サブ画像における同一の空間位置に対応するピクセル群のデータを同時に読み取り、各読み取りピクセルの深さ値を二つ以上のセグメントに分割し、前記セグメントを前記バスのそれぞれのライン上に導入し、前記ライン群の論理状態を検知し、そしてそれに応じて最大の絶対値を有する深さ値を指定する前記値の最上位セグメントについての、および同一レベルの有意性の他のセグメントの絶対値と比較してそれらの絶対値サイズを指示する最下位セグメントストップマークグレーディングについての中間比較結果を同時に生起するための結合ユニットと;
c)対応するストップマークグレーディングが、前記中間比較結果の一つに関連する最大のストップマークグレーディングよりも小さいものについての先に生起された中間比較結果深さ値指定を除去することによって、最上位セグメントのセットに続くセグメントのセットからスタートする、有意性の順における各後続のセグメントのセットについての中間比較結果を連続的に生起するためのプロモーションマトリクスと;
を具備し、
前記プロモーションマトリクスは、ピクセルデータがそれぞれの結合ユニットからコンポジット処理のために回復され得るように、現在生起された中間比較結果が単一指定を含むことを指示することができるシステム。
【請求項13】
現在生起された中間比較結果が単一の指定を含むことがプロモーションマトリクスによって指示されたときはいつでも、後続のプロモーションマトリクスの動作を抑止するための抑止手段をさらに備える請求項12に記載のシステム。
【請求項14】
当該システムが単一の集積回路チップ上にインプリメントされた請求項12に記載のシステム。
【請求項15】
チップは、VLSIインプリメンテーションである請求項12に記載のシステム。
【請求項16】
ワイアド−アンドバスのライン上にピクセルの深さ値のセグメントのビット群を導入し、キャリーアウトおよびストップマーク指示を発行し、そして対応する外部の有効化指示に従って前記ピクセルのデータを有効化するための結合ユニットであって:
a)前記バスのそれぞれのライン上への前記深さ値の最上位セグメントのビット群の導入を有効化し、前記ラインの論理状態を、最上位ラインからスタートして検知し、そしてもしも検知されたラインおよび対応するビットの論理状態が、「0」ならば、それに続くバスラインの検知を抑止し、さもなければ前記セグメントの最後まで進めるべく検知を有効化し、そしてキャリーアウト指示を発行するための第一のセグメント論理回路要素と;
b)前記バスのそれぞれのライン上への前記深さ値の最下位セグメントのビット群の導入を有効化し、前記ラインの論理状態を、最上位ラインからスタートして検知し、そしてもしも検知されたラインおよび対応するビットの論理状態が、「0」ならば、それに続くバスラインの検知を抑止し且つそのセグメントにおける前記ビットの有意性のレベルに対応するストップマーク指示を発行し、さもなければ前記セグメントの最後まで進めるべく検知を有効化し、そして前記セグメントにおける最上位ビットよりも高い一つのレベルである有意性のレベルを有するストップマーク指示を発行するための一つ以上の非第一のセグメント論理回路要素と;
c)前記有効化指示が受信されたときはいつでも前記データの出力を有効化するためのゲートと;
を具備し、
それに導入されたビット群の全ての論理状態が「1」であるときはいつでも前記バスの各ラインの論理状態が、「1」にセットされ、且つもしも前記ビット群の少なくとも一つの論理状態が「0」であれば、それは「0」にセットされ、そして前記有効化指示は、前記キャリーアウトおよびストップマーク指示に従って外部的に決定される結合ユニット。
【請求項17】
深さ値の値が、しきい値よりも大きいときはいつでも、第一のおよび非第一のセグメント論理回路要素の動作を有効化するための手段をさらに備える請求項16に記載の結合ユニット。
【請求項18】
該手段は、深さ値の値が、しきい値よりも小さいときはいつでも、第一のおよび非第一のセグメント論理回路要素の動作を有効化する請求項17に記載の結合ユニット。
【請求項19】
検知されたラインおよび対応するビットの論理状態が「1」であるときはいつでも、それに続くバスラインの検知は抑止される請求項16に記載の結合ユニット。
【図1】
【図4】
【図5】
【図6】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図4】
【図5】
【図6】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公表番号】特表2007−528033(P2007−528033A)
【公表日】平成19年10月4日(2007.10.4)
【国際特許分類】
【出願番号】特願2006−502623(P2006−502623)
【出願日】平成16年1月28日(2004.1.28)
【国際出願番号】PCT/IL2004/000079
【国際公開番号】WO2004/070652
【国際公開日】平成16年8月19日(2004.8.19)
【出願人】(505271769)ルシッド インフォメーション テクノロジー リミテッド (2)
【Fターム(参考)】
【公表日】平成19年10月4日(2007.10.4)
【国際特許分類】
【出願日】平成16年1月28日(2004.1.28)
【国際出願番号】PCT/IL2004/000079
【国際公開番号】WO2004/070652
【国際公開日】平成16年8月19日(2004.8.19)
【出願人】(505271769)ルシッド インフォメーション テクノロジー リミテッド (2)
【Fターム(参考)】
[ Back to top ]