JP2002140721A - ボリュームレンダリングシステムにおけるレンダリングメモリ - Google Patents

ボリュームレンダリングシステムにおけるレンダリングメモリ

Info

Publication number
JP2002140721A
JP2002140721A JP2001283656A JP2001283656A JP2002140721A JP 2002140721 A JP2002140721 A JP 2002140721A JP 2001283656 A JP2001283656 A JP 2001283656A JP 2001283656 A JP2001283656 A JP 2001283656A JP 2002140721 A JP2002140721 A JP 2002140721A
Authority
JP
Japan
Prior art keywords
array
index
rendering
memory
data
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.)
Abandoned
Application number
JP2001283656A
Other languages
English (en)
Inventor
Hugh C Lauer
ヒュー・シー・ラウアー
James M Knittel
ジェームズ・エム・ニッテル
Kenneth W Correll
ケニス・ダブリュ・コレル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
TeraRecon Inc Japan Branch
Original Assignee
TeraRecon Inc Japan Branch
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by TeraRecon Inc Japan Branch filed Critical TeraRecon Inc Japan Branch
Publication of JP2002140721A publication Critical patent/JP2002140721A/ja
Abandoned legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/08Volume rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures

Abstract

(57)【要約】 【課題】 ボリュームデータセットをレンダリングする
システムを提供する。 【解決手段】 ボリュームデータセットをレンダリング
するシステムは、レンダリングメモリに連結された複数
の並列レンダリングパイプラインを備える。レンダリン
グメモリは、複数の要素をそれぞれ有する、一次元、二
次元、および三次元のアレイを格納する。各アレイにつ
いてのレジスタセットは、アレイのベースアドレス、ア
レイの次元数、アレイの各要素のサイズ、アレイの各次
元における要素の数、アレイのオフセット/モジュラス
値、ラップ値、および範囲値を含む、アレイの記述を格
納する。レンダリングメモリと複数のレンダリングパイ
プラインの間に連結されるメモリインタフェースは、対
応するアレイ記述に従って、各アレイの要素にアクセス
する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、概してコンピュ
ータグラフィックスの分野に関し、特に、並列パイプラ
イン化されたレンダリングシステムのレンダリングメモ
リに格納されているボリュームデータセットへのアクセ
スおよびレンダリングに関する。
【0002】
【従来の技術】ボリュームレンダリングは、三次元デー
タを視覚化する必要があるコンピュータグラフィック応
用分野においてしばしば用いられる。ボリュームデータ
は、物理的または医用オブジェクト、もしくは、大気、
地球物理、または他の科学的モデルを走査することによ
って得られる情報でありうるが、データで表現されてい
る一見してよく分からない現実の構造は、データを視覚
化することによって理解しやすくなる。
【0003】ボリュームレンダリングでは、物理的オブ
ジェクトおよびモデルの外側表面形状だけでなく内部構
造も視覚化される。ボリュームレンダリングで使用され
る基本データ項目は、通常、ボクセルである。ボクセル
とは、オブジェクトまたはモデルの特定三次元位置での
値を表すデータ項目である。各ボクセルの座標(x,
y,z)により、ボクセルは表現オブジェクトまたはモ
デル内の各位置にマッピングされる。
【0004】ボクセルは、オブジェクトまたはモデル内
の特定場所に関連する1つまたは複数の値を表す。所与
の従来技術によるボリュームの場合、ボクセルに含まれ
る値は、密度、組織タイプ、弾性、速度等の多数の異な
るパラメータのうちの特定の1つでありうる。レンダリ
ング時中、ボクセル値は、類別と呼ばれるプロセスで色
および不透明度(RGBα)値に変換される。このRG
Bα値を、ブレンドし、2次元画像平面に投影して見る
ことができる。
【0005】レンダリング時中、頻繁に使用される手法
の1つは、レイキャスティング法である。レイキャステ
ィング法では、仮想光線のセットをボクセルのアレイに
投射する。光線は、観察者の目(view point)すなわち
画面平面を始点とする。その光線に沿った各ポイントに
対してボクセル値が補間され、サンプル値が決定され
る。サンプリングされた値を画素値に変換する種々の手
法が知られている。いずれの場合においても、ボリュー
ム処理を後方から前方に進めてもよいし、前方から後方
に進めてもよい。
【0006】ボリュームレンダリングでのレイキャステ
ィングの1つの古典的な手法は、LecrouteおよびLevoy
のずらし−ワープ(shear-warp)アルゴリズムをベース
とするものである。LacrouteおよびLevoy著「Fast Volu
me Rendering Using a shear-warp Factorization of t
he Viewing Transformation」(Computer Graphics,28
(4), 451-458, Aug. 1994)を参照されたい。この手法
は、ボクセルを格納する順序と密接に関連した順序でボ
リュームデータセットを通して進むという利点を有す
る。
【0007】この順序は「オブジェクト順」と呼ばれ、
ボリュームメモリに最適な様式でアクセスすることがで
きる。その結果、現代の半導体メモリによって可能な最
大速度でボリュームデータをフェッチし、処理すること
ができる。初めてリアルタイムでインタラクティブなボ
リュームレンダリングを可能にしたのは、このレイキャ
スティング法であった。
【0008】ずらし−ワープ法は、ボリュームデータセ
ットの「基底面」上にボクセルによって定義される格子
に従って光線を投影することで実行される。基底面と
は、最近傍ボリュームの面またはサーフェスに平行であ
ると共に、画像平面にほとんど平行な平面である。ずら
し−ワープ法では、ボリュームを通して投影される光線
が、ボリューム自体におけるボクセルの行および列に平
行な行および列の格子に配置される。この順序だった行
および列の構成は、オブジェクト順レンダリングを効果
的にするものである。
【0009】しかし、結果得られる画像は、画像平面で
はなく基底面に合わせられる。さらに、特殊な場合を除
き、結果得られる基底面に合わせられた画像は、ボリュ
ームオブジェクトの所望される最終画像から歪む。した
がって、ずらし−ワープ法は実際には2段階の技術であ
る。「ずらし段階」と呼ぶ最初の段階では、画像を基底
面にレンダリングする一方、「ワープ」段階と呼ぶ次の
段階では、基底面画像の歪みをなくし、画像平面に正し
く配置する。
【0010】ワープ段階は困難ではなく、例えば、Op
enGL(登録商標)等の従来の3Dポリゴングラフィ
ックスシステムのテクスチャマッピング機能を用いるこ
とで、容易に達成することができる。しかし、すべての
アプリケーション環境が、このようなグラフィックス性
能を含むシステム向けに設計されているわけではない。
こういった場合、ワープ段階を実行する必要があると、
システム設計に煩雑な追加を行うか、厳しい性能要件を
有する特別なソフトウェアモジュールが必要となる。い
ずれにしても、システムの複雑性が増す。
【0011】レイキャスティングの代替的な方法は、
「画像順」として知られている。この方法では、光線
が、最終画像平面におけるピクセルからボリュームデー
タセットを通して投影される。これは、歪みがなく、ワ
ープ段階なしで、正確な画像を直接生成する。結果得ら
れる画像は、通常、同量の計算を費やし、ずらし−ワー
プ法から得ることのできる質よりも高質である。画像順
レンダリング手順による画像の質が高い理由は、最終画
像平面における各ピクセルが、それを通過する単一光線
から直接生成されるためである。反対に、オブジェクト
順では、最終画像平面における各ピクセルは、基底面画
像におけるいくつかの近傍ピクセルから合成される。
【0012】しかし、画像順レンダリングにはペナルテ
ィが伴う。ずらし−ワープ法ほど効率的にはメモリから
ボリュームデータをフェッチすることができず、処理す
るために多くの演算が必要である。したがって、画像順
法は通常、オブジェクト順法よりも遅いため、リアルタ
イムインタラクティブボリュームレンダリングは、最小
のボリュームデータセットに対してのみ可能である。従
来技術による画像順法を用いての、医用撮像等の実用的
なインタラクティブアプリケーションは、不可能でない
場合であっても非常に難しい。
【0013】
【発明が解決しようとする課題】任意のハードウェアで
実施されるボリュームレンダリングシステムにおいて、
メモリの編成およびメモリの帯域幅は極めて重要な要因
である。例えば、ユーザが512×512×512の3
2ビットボクセルを有するボリュームを1024×10
24画像にリアルタイムでレンダリングしたい場合があ
る。これは、略500メガバイトのボクセルデータを読
み取り、各フレームごとに12メガバイトを越えるピク
セルデータを書き込むことを意味する。深度値および埋
め込まれるポリゴンオブジェクトは、フレーム当たりさ
らに12メガバイトを必要としうる。ボリュームデータ
セットがより大きい場合、そのボリュームの複数の部分
を並列して処理する必要がありうる。このような大量の
データを移動させるには、ソフトウェアベースのレンダ
リングシステムでは見られない解決策が必要である。
【0014】
【課題を解決するための手段】この発明は、ボリューム
データセットをレンダリングするシステムを提供する。
本システムは、レンダリングメモリに連結された複数の
並列レンダリングパイプラインを備える。レンダリング
メモリは、複数の要素をそれぞれ有する、一次元、二次
元、および三次元のアレイを格納する。各アレイについ
てのレジスタセットは、アレイのベースアドレス、アレ
イの次元数、アレイの各要素のサイズ、アレイの各次元
における要素の数、アレイのオフセット/モジュラス
値、ラップ値、および範囲値を含む、アレイの記述を格
納する。レンダリングメモリと複数のレンダリングパイ
プラインの間に連結されるメモリインタフェースは、対
応するアレイ記述に従って、各アレイの要素にアクセス
する。
【0015】
【発明の実施の形態】利点として、レンダリングサブシ
ステム100は、単一ASICとして製造される。AS
ICは、サブシステムを形成するボードに搭載される。
ボードは、バス121を介してホスト10に接続するこ
とができる。ボードはまた、より詳細に後述するレンダ
リングメモリ300も備える。
【0016】レンダリングサブシステム100の主要モ
ジュールは、メモリインタフェース110、バスロジッ
ク120、シーケンサ130、および4つの並列ハード
ウェアパイプライン140である。4つのパイプライン
すべてに広がる共有スライスバッファ150を除き、パ
イプライン(A、B、C、およびD)は互いに独立して
動作する。該パイプラインがレンダリングエンジンの中
心部を形成する。
【0017】メモリインタフェース110は、レンダリ
ングメモリ300を備える8つのDDR(Double Data
Rate:倍速)同期DRAMチャネルを制御する。レンダ
リングメモリ300は、ボリュームすなわちボクセルの
レンダリング、画像、深度値、ルックアップテーブル、
およびコマンドキューの入出力に必要な記憶領域をすべ
てのデータ111に均一に提供する。メモリインタフェ
ース110は、メモリ300へのすべてのメモリアクセ
スを実施し、バスロジック120およびシーケンサ13
0の要求を調停し、高帯域幅でアクセスおよび動作する
ため、モジュールおよびメモリ300にわたってアレイ
データを分配する。アレイと呼ぶ、レンダリングメモリ
300のデータ構造については、より詳細に後述する。
【0018】バスロジック バスロジック120は、ホストコンピュータシステム1
0とのインタフェースを提供する。ホスト10がパーソ
ナルコンピュータ(PC)またはワークステーションで
ある場合、バス121は64ビット、PCI規格のバー
ジョン2.2に準拠する66MHzのPCIバス121
であることができる。バスロジックはまた、バス121
を介してホストシステムメモリ12から、およびホスト
メモリシステム12にデータを転送するための直接メモ
リアクセス(DMA)動作も制御する。DMA動作は、
バースト方式のデータ転送である。
【0019】バスロジック120はまた、レジスタバス
123を介してシーケンサの内部レジスタ122へのア
クセスも提供する。これらのアクセスは、ホストコンピ
ュータによって、またはPCIバス上の何らかの他の装
置によって開始される、個々のレジスタの直接的な読み
出しおよび/または書き込みである。また、バスロジッ
ク120は、レンダリング動作を効率的に制御するた
め、レンダリングコマンドを解釈する。バスロジックは
また、レジスタ値をシーケンサ130に直接送信してレ
ンダリング動作を制御すると共に、シーケンサ130か
ら状態情報を受け取る。
【0020】シーケンサ シーケンサ130は、ボリュームレンダリングエンジン
を制御する。これは、メモリからフェッチするデータを
決定し、このデータを4つのパイプライン140にディ
スパッチし、補間重み等の制御情報を適時に個々のパイ
プラインに送信し、レンダリング動作からの出力デー
タ、例えばピクセルを受信する。シーケンサ自体は、多
数のレジスタによって制御される有限状態マシンであ
る。これらは、通常、ロードレジスタコマンドに応答し
て、バスロジック120によって書き込まれる。内部で
は、シーケンサは、一度に一セクションずつサンプル空
間を通して進み、サンプル座標をボクセル座標に変換
し、4つのパイプラインの段が必要とする制御情報を生
成するために必要なカウンタを維持する。
【0021】パイプラインおよびミニブロック 図2は、4つのレンダリングパイプラインをさらに詳細
に示すと共に、データおよびレンダリング動作がどのよ
うにパイプラインに分配されるかも示す。各パイプライ
ンは、勾配推定段210、類別−補間段220、照明段
230、および合成段240を備える。ボクセルは、ミ
ニブロック201、すなわちそれぞれ2×2×2ボクセ
ルの小さな立方体アレイとして格納される。レンダリン
グ時中、シーケンサ130は、メモリインタフェースに
ミニブロックのストリームを読み出させる。これらは、
クロックサイクル当たり1個のミニブロックの速度でパ
イプラインに提示される。
【0022】ミニブロックは、ボリュームデータセット
からx−y−zの順で読み出される。すなわち、ミニブ
ロックは順に、x方向に読み出されてセクションの行を
埋め、そしてy方向に行単位で読み出されてスライスを
埋め、z方向にスライス単位で読み出されてセクション
全体をレンダリングする。
【0023】各ミニブロックは、メモリインタフェース
110を介して入力されるため、選択された視線方向に
従って並べ替えられる。次に、ミニブロックは、4つの
1×1×2アレイのボクセル202、すなわちz方向に
整列した4対のボクセルに分解される。図2に示すよう
に、一対が各パイプラインに転送される。
【0024】ボクセルの各対は、勾配推定段に引き渡さ
れ、各ボクセルにおける勾配値を得る。勾配を得るため
に用いる中心差分作用素の結果、出力ボクセルおよび勾
配は、各次元において入力から1単位ずれる。これに
は、小量のデータをパイプライン間で交換する必要があ
る。
【0025】勾配推定段から、ボクセルおよび勾配20
3が類別−補間段220に引き渡される。この段では、
ボクセルフィールドがRGBα値に変換され、かつ勾配
と共に、光線に沿ったサンプル点における値に補間され
る。上述したように、サンプルスライスはボクセルスラ
イスと平行である。類別ステップおよび補間ステップ
は、いずれの順序で行ってもよい。なお、類別−補間段
は、4つすべてのパイプラインが共有する一対のスライ
スバッファ150を備えることに留意する。
【0026】4つのパイプラインの4つの類別−補間段
の出力204は、サンプル空間における2×2アレイの
点におけるRGBα値および勾配のアレイである。点
は、常にサンプル空間の同じスライス(平面)にある
が、光線と整列することになる。光線が画像平面におけ
るピクセルを通過する場合、各サンプルのz座標は画像
空間のものと同じではないが、各サンプルのx座標およ
びy座標は画像空間のものと同じであるため、xy画像
順でレンダリングを行う。
【0027】RGBα値および勾配は、次に、4つの照
明段230に引き渡される。この照明段230は、反射
マップを用いて周知のフォンシェーディングを適用す
る。各パイプラインの照明段は、レンダリング時中にデ
ータを交換しないという意味において、その他のパイプ
ラインの照明段とは独立している。当然、これら照明段
は、同一クロックに従い同期して動作する。
【0028】勾配は、レンダリング動作が勾配の出力を
特定する場合を除き、照明段で消費される。レンダリン
グ動作が勾配の出力を特定する場合には、3つの勾配成
分がパイプラインにおける赤色、緑色、および青色の成
分の代わりとなる。
【0029】各パイプラインの照明段の出力205は、
そのサンプル点の色貢献度を表す照明RGBα値であ
る。これは、合成段240に引き渡される。合成段は、
光線のRGBα値を合成してピクセルにする。セクショ
ンのレンダリングが終了すると、4つの合成段の出力2
06がレンダリングメモリ300に書き込まれる。
【0030】レンダリングメモリのデータ構造 レンダリングメモリ300は、ボリュームデータセッ
ト、画像および深度バッファ、コマンドキュー、ルック
アップテーブル、およびレンダリングシステムの動作に
必要な他のすべての情報を格納する。メモリ300は、
非常に高速のデータ転送、例えば、6.4ギガバイト/
秒の総帯域幅をサポートするよう設計される。従来技術
によるハードウェアレンダリングパイプラインのよう
に、メモリサブシステムの設計において、待ち時間は帯
域幅よりも重要性が低い。
【0031】このレベルのパフォーマンスを達成するた
め、本システムは、隣接するアレイ要素の小さなグルー
プを、バースト方式でフェッチすることのできるブロッ
クでまたはまとめて(in chunks)格納し、かつブロック
またはまとまり(chunks)がスキューしてメモリモジュー
ルにわたって分散されるように、データのアレイを編成
する。スキューすることで、アクセスが8つのチャネル
にわたってより均一に分散することから、スキューによ
り、データの読み出しおよび書き込み動作時中の並列性
が最大になる。
【0032】図3に示すように、データをレンダリング
メモリ300に格納するには、データが一次元アレイ
(テーブル)301、二次元アレイ(ピクセルおよび/
または深度画像)302、三次元アレイ(ボクセル)3
03のいずれを表すかに応じて、3つの異なる構造が用
いられる。レンダリングメモリにおける各タイプのアレ
イのレイアウトは、その次元のみならず、各アレイ要素
のサイズにも依存する。
【0033】レンダリングシステムは、各自それぞれ記
述子を有する以下の異なるアレイを用いる。すなわち、
ポートを介してホストメモリ12にマッピングするため
のアレイ、直接メモリアクセス転送(DMA)用のアレ
イ、コピー動作のためのソースアレイおよび宛先アレイ
である。これらはそれぞれ、画像アレイ、深度アレイ、
ボリュームデータセット等でありうる。
【0034】いずれのアレイの記述または定義にも、3
つの側面がある。そのメモリ内での編成、アレイのイン
デックスの解釈、および現在有効な要素の範囲である。
これらについて、以下の項で説明する。
【0035】メモリにおけるアレイの定義 図4は、アレイをレンダリングメモリ300に格納する
方法を説明するために必要ないくつかのデータ値、すな
わち、アレイベース401と呼ぶアレイにおける最初の
要素のベースアドレス、アレイの次元数402、アレイ
における各データ要素のサイズ403、および各次元に
おける要素の数404を示す。図4の値は、ホストコン
ピュータ10のCPU11において実行されるソフトウ
ェアにより、シーケンサ130のレジスタ122に格納
することができる。さらに詳細に後述する、アレイと併
せて用いられる他の値には、オフセット/モジュラス値
405(各次元402ごとに1つずつ)、ラップ値40
6、および範囲値407(各次元402ごとに2つず
つ)がある。
【0036】図5(a)は、要求されて割り当てられた
二次元アレイ501を示し、図5(b)は、要求されて
割り当てられた三次元アレイ502を示す。要求される
量は、二次元アレイについては要求X511および要求
Y512として、また同様に三次元アレイの場合には要
求Z513として示されている。割り当てられた量は、
maxX521、maxY522、およびmaxZ52
3と示されている。割り当てられるアレイのサイズは、
バイト、ワード、およびページの境界の交差を回避する
ために端数が切り上げられるため、要求アレイは、割り
当てられるアレイのサブセットである。各アレイの最初
の要素は、アレイベース531でレンダリングメモリ3
00に格納される。
【0037】上述した各アレイのアレイ記述子値は、レ
ンダリングレジスタ122の一部であるレジスタのセッ
トに格納することができる。
【0038】アレイインデックスの解釈 この発明によるレンダリングシステムの重要な利点は、
サブアレイと呼ぶアレイの小さなサブセットにのみメモ
リを割り当てながら、またはこのサブセットを処理しな
がら、非常に大きなアレイを処理する能力である。例え
ば、ボリュームデータセット全体をコピーまたはマッピ
ングする必要なく、サブボリュームデータセットをホス
トメモリ12にコピーしたり、マッピングして、更新す
ることができる。別の例は、レンダリングすると、大き
な画像を生成する大きなボリュームに小さなポリゴンマ
ーカの画像を埋め込む場合である。大きなボリュームの
画像に小さなマーカを正確に配置するためだけに、小さ
なマーカに関して大きな画像および深度バッファを割り
当て、ロードし、クリアし、維持する必要のないことが
非常に望ましい。
【0039】これらの目的ならびに他の目的のため、本
システムは、アレイのインデックスをアレイのレンダリ
ングメモリ300への割り当ておよび格納から分離す
る。特に、本システムでは、大きな全アレイの部分を含
むサブアレイを割り当て、格納することができる。
【0040】したがって、各アレイ記述子400には、
オフセット/モジュラス値405と、ラップビット40
6も含まれる。これらの値は、レンダリングシステムの
各種パーツが用いる全アレイへのインデックスから、レ
ンダリングメモリ300に格納されるサブアレイ要素の
サブアレイインデックスに、各アレイインデックスを変
更または変換するために用いられる。
【0041】ラップ ラップビットに応じて、オフセット/モジュラス値40
5には2つの異なる解釈モードがある。
【0042】オフセット ラップビット406がゼロである場合、オフセット/モ
ジュラス値405はアレイの各次元についてのオフセッ
ト値を格納する。レンダリングメモリ300内のメモリ
にアクセスする前に、各オフセットが対応するアレイイ
ンデックスから差し引かれる。これにより、非常に大き
な全アレイインデックス値を有するサブアレイを、アレ
イベース401に格納されているアドレスにシフトする
ことができる。
【0043】図6は、二次元アレイの場合のオフセット
を示す。サブアレイ601は、図示していないはるかに
大きな全アレイ内の当該領域である。全アレイではなく
サブアレイの格納に十分なメモリのみを割り当てなが
ら、サブアレイ601を元の全アレイインデックスでイ
ンデックス付けることが望ましい。したがって、サブア
レイ601の保持に十分な量のレンダリングメモリ(5
01)が割り当てられ、オフセット/モジュラスX61
1およびオフセット/モジュラスY612が、x次元お
よびY次元それぞれにおいて、サブアレイ601の最小
のインデックスを特定するようにセットされる。
【0044】これは、全アレイインデックスを、割り当
てられたオフセットサブアレイ501のアレイベース5
31に対するサブアレイ601に効率的に変換する。す
なわち、全アレイインデックス(x,y,z)をサブア
レイインデックスに変換することで、サブアレイ601
内の任意のアレイ要素の場所(x,y,z)が得られ
る。 (x−オフセット/モジュラスX,y−オフセット/モ
ジュラスY,z−オフセット/モジュラスZ)
【0045】(x,y,z)をサブアレイ601の要素
の全アレイインデックスと呼び、変換されたインデック
スをサブアレイインデックスと呼ぶ。これにより、サブ
アレイのみを物理的に格納しながら、はるかに大きな全
アレイのインデックスを用いて、比較的小さなサブアレ
イをインデックス付けることが可能になる。
【0046】モジュラス ラップビット406が1にセットされる場合、オフセッ
ト/モジュラス405の意味は、モジュラス値である。
この値は、サブアレイをラッピングして、全アレイに対
する可動窓になるようにするために用いられる。これ
は、レンダリングメモリに格納可能なボリュームよりも
大きなボリューム、または表示画面よりも大きな画像に
わたってパニングする際に有用である。パニングする
と、どの時間ポイントにおいても、ボリュームデータセ
ットのボクセル(または画像のピクセル)の小さなサブ
セットのみが見える。カメラが移動するにつれ、ボクセ
ルまたはピクセルを視線方向にロードする必要があり、
また視野から出ていくボクセルおよびピクセルを破棄す
る必要がある。
【0047】わずかに最小量だけのメモリをカレントビ
ューにあるボクセルおよびピクセルに割り当てることが
望ましく、また、アレイ全体ではなく現れる新しいボク
セルおよびピクセルのみをコピーすることが望ましい。
【0048】特に、新しいサブアレイが同じサイズの先
に格納されたサブアレイに重複すると特定される場合、
その2つのサブアレイの交点における要素が、双方のサ
ブアレイについて同じメモリロケーションに格納され
る。このサブアレイは、特定時間に見られているよりも
大きなアレイの一部である。窓が大きなアレイにわたっ
て移動すると、新しいボクセル(またはピクセル)が移
動方向にロードされ、メモリ内の見えなくなったボクセ
ルと置換する。ラップ=1モードはまた、方形部分が並
列してレンダリングされる大きなボリュームの画像およ
び深度バッファの管理にも有用である。
【0049】好ましい実施の形態において、サブアレイ
のサイズは、各次元において2のベキ乗(2n)であ
る。各オフセット/モジュラスレジスタは、実際には、
サイズよりも1小さいものを格納するため、単に、計算
的に高価な除算または連続した減算を行う必要なく、単
にオフセット/モジュラス値と全アレイインデックス値
との間でのビット幅のAND演算でオフセットを行うこ
とにより、サブアレイインデックス値を得ることができ
る。例えば、モジュラス値が23であり、全アレイイン
デックスが13(二進数では1101)である場合、1
101AND0111(23−1)が5である0101
をもたらす。すなわち13mod8=5である。一般
に、これは、全アレイインデックス(x,y,z)をサ
ブアレイインデックスxmod(オフセット/モジュラ
スX+1),ymod(オフセット/モジュラスY+
1)、zmod(オフセット/モジュラスZ+1)に変
換することと同等である。
【0050】図7は、2次元アレイの場合のモジュラス
モード、すなわちラップ=1を示す。このモードを三次
元アレイ303に用いてもよいことが分かる。最小の全
アレイインデックスを有するサブアレイの要素は(x
min、ymin)701である。この要素は、サブアレイ記
憶領域の中程のどこかの点に再配置される。サブアレイ
における点は、各次元においてオフセット/モジュラス
の整数倍に1を加算した距離、すなわちオフセット/モ
ジュラスX+1およびオフセット/モジュラスY+1に
あるように選択される。サブアレイ701の4つの異な
る象限(A,B,C,D)は割り当てられたサブアレイ
501の同じ象限にマッピングされる。サブアレイ70
1は、レンダリングメモリに格納されると、各次元にお
いてモジュラスを中心にしてラップされることは容易に
分かることである。
【0051】したがって、サブアレイが右上、すなわち
x方向およびy方向に増大してスライドする窓である場
合、サブアレイの左下の象限のサイズが低減し、右上の
象限のサイズが増大する。しかし、利点として、サブア
レイのデータ要素はいずれもレンダリングメモリにおけ
る物理的な場所を変更しない。したがって、時間のかか
るコピー動作が回避される。
【0052】この発明を用いると、レンダリングシステ
ムにおいて用いられるアレイへのすべてのインデックス
が全アレイインデックスであることができる。サブアレ
イインデックスはハードウェアおよびソフトウェアに対
して完全にトランスペアレントである。サブアレイイン
デックスは、メモリインタフェース110によって決定
され、このメモリインタフェース110によってのみ用
いられる。
【0053】例えば、アレイがホストメモリ12にマッ
ピングされ、かつ当該領域がDMA動作を介してレンダ
リングメモリ300に転送される場合、サブアレイの有
効範囲は、ソフトウェアにとっては、行優先順で格納さ
れる、その次元での通常のアレイとしてみなされる。ま
るで全アレイが転送されたかのようにアクセスすること
が可能であるが、但し、アクセスはサブアレイ範囲に限
られる。
【0054】範囲 アレイの記述の第3の側面は、その範囲407である。
範囲値は、各次元における有効インデックス値の上限お
よび下限を特定する。場合によっては、範囲はサブアレ
イの境界と同じであることもあり、より制限的なことも
ありうる。
【0055】図8は、二次元アレイの範囲を示す。サブ
アレイ804の有効要素805の範囲は、x方向での範
囲インデックスxminおよびxmax801と、y方向での
mi nおよびymax802によって限られている。本レン
ダリングシステムは、アレイの範囲外の要素に対する読
み出しまたは書き込みは行わない。より具体的には、ア
レイがボリュームデータセットを定義する場合、および
範囲外のボクセルが必要な場合、こういったボクセル
は、例えば、範囲内の近傍ボクセルから合成するか、ま
たはレンダリング中のオブジェクト外のボクセルに固定
の値、例えばゼロ、を割り当てる。範囲外のボクセル
は、決してレンダリングメモリから読み出されない。
【0056】範囲は、小さなポリゴンマーカの画像が大
きなボリュームに埋め込まれる場合に有用である。範囲
により、ポリゴンマーカの色、不透明度、および深度を
該マーカの境界ボックス内でのみレンダリングすること
ができる。この発明は、その範囲外を読み出して、例え
ば、不透明度ゼロ、および限度をはるかに越えた深度を
戻せるようにする。したがって、データをポリゴンマー
カの境界ボックス外のレンダリングメモリにレンダリン
グまたはコピーする必要がなく、このため計算時間およ
びメモリ帯域幅の両者が節約される。
【0057】この発明について、好ましい実施の形態の
例を通して説明したが、この発明の精神および範囲内
で、様々な他の適合および変更を行いうることを理解さ
れたい。したがって、添付の特許請求の範囲の目的は、
この発明の真の精神および範囲内にあるかかるすべての
変形および変更を網羅することである。
【図面の簡単な説明】
【図1】 この発明によるメモリ編成を用いるレンダリ
ングシステムのブロック図である。
【図2】 図1のシステムと併せて用いられる4つの並
列パイプラインおよびミニブロックのブロック図であ
る。
【図3】 図1のシステムのレンダリングメモリに格納
される基本データ構造のブロック図である。
【図4】 レンダリングメモリに格納されているアレイ
を指定するために用いられるデータ値のブロック図であ
る。
【図5】 (a)は二次元アレイのブロック図であり、
(b)は三次元アレイのブロック図である。
【図6】 アレイオフセットのブロック図である。
【図7】 ラップされたアレイのブロック図である。
【図8】 アレイ範囲のブロック図である。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ケニス・ダブリュ・コレル アメリカ合衆国、マサチューセッツ州、ラ ンカスター、ルネンバーグ・ロード 2193 Fターム(参考) 5B057 AA20 CA13 CA16 CB13 CB16 CC04 CH05 CH11 CH16 5B080 AA17 CA04 CA05 CA07 CA08 DA02 DA08 GA00

Claims (22)

    【特許請求の範囲】
  1. 【請求項1】 ボリュームデータセットをレンダリング
    するシステムであって、 複数の並列レンダリングパイプラインと、 該複数のレンダリングパイプラインに連結され、複数の
    要素をそれぞれ有する一次元、二次元、および三次元の
    アレイを格納するよう動作するレンダリングメモリと、 アレイのベースアドレス、アレイの次元数、アレイの各
    要素のサイズ、アレイの各次元での要素の数、アレイの
    オフセット/モジュラス値を含む、各アレイのアレイ記
    述を格納する手段と、 ラップモードを選択する手段と、 値を選択する手段と、 前記レンダリングメモリおよび前記複数のレンダリング
    パイプラインに連結され、対応する前記アレイ記述に従
    って各アレイの要素にアクセスするメモリインタフェー
    スと、を備える、システム。
  2. 【請求項2】 前記アレイはそれぞれ、サブアレイイン
    デックスを有するメモリロケーションに格納され、前記
    メモリインタフェースは、全アレイインデックスのみを
    用いて前記アレイにアクセスすると共に、前記アレイ記
    述を用いて、前記全アレイインデックスを前記サブアレ
    イインデックスに変換する、請求項1記載のシステム。
  3. 【請求項3】 前記ラップモードはディセーブルされ、
    前記オフセット/モジュラス値は、前記サブアレイイン
    デックスを決定するため、前記全アレイインデックスか
    ら差し引かれるオフセット値である、請求項2記載のシ
    ステム。
  4. 【請求項4】 前記ラップモードはイネーブルされ、前
    記オフセット/モジュラス値は、前記サブアレイインデ
    ックスを決定するために、前記全アレイインデックスと
    AND演算されるモジュラス値である、請求項2記載の
    システム。
  5. 【請求項5】 前記モジュラス値は、2のベキ乗から1
    を差し引いた数で表される、請求項4記載のシステム。
  6. 【請求項6】 前記アレイそれぞれの各次元は、最小有
    効インデックスおよび最大有効インデックスを含む、請
    求項1記載のシステム。
  7. 【請求項7】 前記範囲値外のインデックスを有する要
    素は合成される、請求項1記載のシステム。
  8. 【請求項8】 前記範囲値外のインデックスを有する要
    素には、固定の値が割り当てられる、請求項1記載のシ
    ステム。
  9. 【請求項9】 特定の二次元アレイはピクセル値を格納
    し、特定の三次元アレイはボクセル値を格納する、請求
    項1記載のシステム。
  10. 【請求項10】 ボリュームデータセットをレンダリン
    グする方法であって、 複数の要素をそれぞれ有する一次元、二次元、および三
    次元のアレイを、複数のレンダリングパイプラインに連
    結されたレンダリングメモリに格納するステップと、 アレイのベースアドレス、アレイの次元数、アレイの各
    要素のサイズ、アレイの各次元での要素の数、アレイの
    オフセット/モジュラス値を含む、各アレイのアレイ記
    述を格納するステップと、 ラップモードを選択するステップと、 前記アレイへのアクセスの有効インデックスの範囲を選
    択するステップと、 対応する前記アレイ記述に従って各アレイの要素にアク
    セスするステップと、を含む、方法。
  11. 【請求項11】 前記アレイ記述を用いて、各アレイの
    全アレイインデックスをサブアレイインデックスに変換
    するステップをさらに含む、請求項10記載のシステ
    ム。
  12. 【請求項12】 ボリュームデータセットにアクセス
    し、該ボリュームデータセットを画像としてレンダリン
    グする集積回路であって、前記ボリュームデータセット
    は三次元アレイとしてレンダリングメモリに格納され、
    前記画像は二次元アレイとして前記レンダリングメモリ
    に格納され、 複数の並列レンダリングパイプラインと、 前記レンダリングメモリおよび前記複数のレンダリング
    パイプラインに連結されるメモリインタフェースであっ
    て、全アレイインデックスのみを受信し、該全アレイイ
    ンデックスを前記レンダリングメモリのサブアレイイン
    デックスに変換して、前記ボリュームデータセットにア
    クセスし、これをレンダリングするメモリインタフェー
    スと、を備える、集積回路。
  13. 【請求項13】 前記全アレイインデックスを前記サブ
    アレイインデックスを制御する、各アレイごとに1つの
    レジスタセットをさらに備える、請求項12記載の集積
    回路。
  14. 【請求項14】 アレイとしてメモリに格納されるデー
    タにアクセスするメモリインタフェースであって、前記
    データは前記メモリにスキューして分散され、 前記アレイの全アレイインデックスを受信する手段と、 前記全アレイインデックスを前記アレイのサブアレイイ
    ンデックスに変換する手段と、 前記サブアレイインデックスにより前記データにアクセ
    スする手段と、を備える、メモリインタフェース。
  15. 【請求項15】 前記変換する手段は、全アレイインデ
    ックスを前記アレイのスキューしたサブアレイアドレス
    にマッピングして、前記スキューしたサブアレイインデ
    ックスをハードウェアおよびソフトウェアに対してトラ
    ンスペアレントにすると共に、前記データに対するデー
    タの読み出しおよび書き込みアクセス時中の並列性を最
    大化する、請求項14記載のメモリインタフェース。
  16. 【請求項16】 前記変換する手段は、前記全アレイイ
    ンデックスからオフセット値を差し引いて、前記サブア
    レイインデックスを決定する手段をさらに含む、請求項
    14記載のメモリインタフェース。
  17. 【請求項17】 前記変換する手段は、モジュラス値を
    前記全アレイインデックスとAND演算して、前記サブ
    アレイインデックスを決定する手段をさらに含む、請求
    項14記載のメモリインタフェース。
  18. 【請求項18】 前記アレイそれぞれの各次元のサイズ
    は2のベキ乗であり、前記モジュラス値は2のベキ乗か
    ら1を差し引いた数である、請求項17記載のメモリイ
    ンタフェース。
  19. 【請求項19】 前記アレイそれぞれの各次元は、最小
    有効インデックスおよび最大有効インデックスを含む、
    請求項18記載のメモリインタフェース。
  20. 【請求項20】 前記データは、一次元、二次元、およ
    び三次元のアレイで格納されるグラフィックスデータで
    ある、請求項14記載のメモリインタフェース。
  21. 【請求項21】 アレイとしてメモリに格納されるデー
    タにアクセスする方法であって、前記データは前記メモ
    リにスキューして分散され、 前記アレイの全アレイインデックスを受信するステップ
    と、 前記全アレイインデックスを前記アレイのサブアレイイ
    ンデックスに変換するステップと、 前記サブアレイインデックスにより前記データにアクセ
    スするステップと、を含む、方法。
  22. 【請求項22】 前記変換するステップは、前記全アレ
    イインデックスを前記アレイのスキューしたサブアレイ
    アドレスにマッピングして、前記スキューしたサブアレ
    イインデックスをハードウェアおよびソフトウェアに対
    してトランスペアレントにすると共に、前記データに対
    するデータの読み出しおよび書き込みアクセス時中の並
    列性を最大化する、請求項21記載の方法。
JP2001283656A 2000-10-04 2001-09-18 ボリュームレンダリングシステムにおけるレンダリングメモリ Abandoned JP2002140721A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US67924700A 2000-10-04 2000-10-04
US09/679247 2000-10-04

Publications (1)

Publication Number Publication Date
JP2002140721A true JP2002140721A (ja) 2002-05-17

Family

ID=24726148

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001283656A Abandoned JP2002140721A (ja) 2000-10-04 2001-09-18 ボリュームレンダリングシステムにおけるレンダリングメモリ

Country Status (2)

Country Link
EP (1) EP1195719A3 (ja)
JP (1) JP2002140721A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012505445A (ja) * 2008-10-07 2012-03-01 ミツビシ・エレクトリック・リサーチ・ラボラトリーズ・インコーポレイテッド 3dオブジェクトの3dモデルをレンダリングするための方法及びシステム
JP2014507723A (ja) * 2011-01-31 2014-03-27 マイクロソフト コーポレーション 三次元環境の再現
US9619561B2 (en) 2011-02-14 2017-04-11 Microsoft Technology Licensing, Llc Change invariant scene recognition by an agent

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6621918B1 (en) 1999-11-05 2003-09-16 H Innovation, Inc. Teleradiology systems for rendering and visualizing remotely-located volume data sets
US10684955B2 (en) 2017-04-21 2020-06-16 Micron Technology, Inc. Memory devices and methods which may facilitate tensor memory access with memory maps based on memory operations
US10956315B2 (en) * 2018-07-24 2021-03-23 Micron Technology, Inc. Memory devices and methods which may facilitate tensor memory access
CN111179402B (zh) * 2020-01-02 2023-07-14 竞技世界(北京)网络技术有限公司 一种目标对象的渲染方法、装置及系统
CN112068791B (zh) * 2020-09-04 2024-01-23 京东方科技集团股份有限公司 旋转显示设备的显示数据的存储方法、寻址方法及设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6266733B1 (en) * 1998-11-12 2001-07-24 Terarecon, Inc Two-level mini-block storage system for volume data sets
US6424346B1 (en) * 1999-07-15 2002-07-23 Tera Recon, Inc. Method and apparatus for mapping samples in a rendering pipeline

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012505445A (ja) * 2008-10-07 2012-03-01 ミツビシ・エレクトリック・リサーチ・ラボラトリーズ・インコーポレイテッド 3dオブジェクトの3dモデルをレンダリングするための方法及びシステム
JP2014507723A (ja) * 2011-01-31 2014-03-27 マイクロソフト コーポレーション 三次元環境の再現
US9619561B2 (en) 2011-02-14 2017-04-11 Microsoft Technology Licensing, Llc Change invariant scene recognition by an agent

Also Published As

Publication number Publication date
EP1195719A3 (en) 2004-12-01
EP1195719A2 (en) 2002-04-10

Similar Documents

Publication Publication Date Title
USRE42638E1 (en) Resample and composite engine for real-time volume rendering
US5850224A (en) Three dimensional parallel drawing apparatus for synthesizing graphics data with image data using a pixel depth buffer and an image depth register
US11113788B2 (en) Multi-space rendering with configurable transformation parameters
JP4205327B2 (ja) ボリュームデータセットのレンダリング方法およびシステム
US6259460B1 (en) Method for efficient handling of texture cache misses by recirculation
US6288730B1 (en) Method and apparatus for generating texture
US6426753B1 (en) Cache memory for high latency and out-of-order return of texture data
US6532017B1 (en) Volume rendering pipeline
EP1054348A2 (en) Volume rendering integrated circuit
US7546425B2 (en) Data processor with a built-in memory
CN110036375A (zh) 无序高速缓存返回
US6933945B2 (en) Design for a non-blocking cache for texture mapping
JP2002140721A (ja) ボリュームレンダリングシステムにおけるレンダリングメモリ
JPH11508386A (ja) 平行法及び遠近法によりボリュームを実時間で視覚化する装置及び方法
US7360020B2 (en) Method for improving cache-miss performance
US6590579B1 (en) System for low miss rate replacement of texture cache lines
EP1054384A2 (en) Method and apparatus for translating and interfacing voxel memory addresses
US6985153B2 (en) Sample request mechanism for supplying a filtering engine
US11887211B2 (en) Texture mapping
WO2002050776A1 (en) Real-time volume rendering
EP1054383A2 (en) Memory storing voxel data interfaced to rendering pipelines
EP1054385A2 (en) State machine for controlling a voxel memory
JP2002183749A (ja) グラフィックデータの勾配の補正方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080916

A762 Written abandonment of application

Free format text: JAPANESE INTERMEDIATE CODE: A762

Effective date: 20100716