適応直接ボリュームレンダリングの方法及びシステム
【課題】適応データ表現、レイキャスティング、及びデータ補間技術を用いてボリュームデータセットをレンダリングする方法及びシステムを提供する。
【解決手段】適応画像ボリュームレンダリングシステムは、最初に3Dデータセットを複数のサブボリュームにフラグメント化し、各サブボリュームがオクトリ上の1つのノードに関連するオクトリ構造を構成する。システムは、次に2D画像平面を確立し、各々がサブボリュームの部分集合と適応して相互作用する複数のレイを3Dデータセットに向けて選択的に放出する。各サブボリュームによって反射されたレイエネルギは、修正フォン照射モデルを用いて推定され、2D画像平面上のレイ原点でのピクセル値を構成する。最後に、システムは、複数の選択された位置でのピクセル値を補間し、3Dデータセットの2D画像を発生させる。
【解決手段】適応画像ボリュームレンダリングシステムは、最初に3Dデータセットを複数のサブボリュームにフラグメント化し、各サブボリュームがオクトリ上の1つのノードに関連するオクトリ構造を構成する。システムは、次に2D画像平面を確立し、各々がサブボリュームの部分集合と適応して相互作用する複数のレイを3Dデータセットに向けて選択的に放出する。各サブボリュームによって反射されたレイエネルギは、修正フォン照射モデルを用いて推定され、2D画像平面上のレイ原点でのピクセル値を構成する。最後に、システムは、複数の選択された位置でのピクセル値を補間し、3Dデータセットの2D画像を発生させる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般的に、ボリュームデータレンダリングの分野に関するものであり、より詳細には、適応データ表現、レイキャスティング、及びデータ補間技術を用いてボリュームデータセットをレンダリングする方法及びシステムに関する。
【背景技術】
【0002】
3Dオブジェクト及び2D画像の内部構造の可視化は、コンピュータグラフィックの分野内の重要な話題であり、医学、地球科学、製造、及び薬物発見を含む多くの産業に応用されている。
【0003】
例えば、CTスキャナは、異なる器官、例えば心臓を含む患者の身体の数百又は数千の平行2D画像スライスを生成することができ、各スライスは、データ値の2Dアレイを含み、各データ値は、特定の部位での身体のスカラー属性、例えば密度を表している。全てのスライスを互いに積み重ねて、心臓が埋め込まれた患者の身体の画像ボリューム又はボリュームデータセットを形成する。心臓の3D構造特性を示す2D画像は、心血管疾患の診断における重要な助けになる。
【0004】
別の例として、石油業界では、地震学的撮像技術を用いて地球内の3D領域の3D画像ボリュームを作り出している。断層又は岩塩ドームのような一部の重要な地質構造は、その領域内に埋め込まれている場合があり、必ずしも領域の表面上とは限らない。同様に、これらの構造の3D特性を完全に示す2D画像は、石油生産を増す上で極めて重要である。
【0005】
直接ボリュームレンダリングは3D画像ボリュームによって表された中実領域の内部を2D画像平面上、例えばコンピュータモニタ上に可視化するために開発された技術である。一般的に、画像ボリューム内のいずれの点のスカラー属性又はボクセも、一組のルックアップテーブルによって定義することができる色又は不透明性のような複数の光学特性と関連付けられる。2D画像平面は、各々が赤色、緑色、及び青色成分を有する画素つまりピクセルの規則的に離間したグリッドから成っている。複数のレイが2D画像平面からボリュームの中に投射され、それらは、そのボリュームによって減衰又は反射される。各レイの減衰又は反射レイエネルギの量は、画像ボリューム内に埋められたオブジェクトの3D特性、例えば、それらの形状及び向きを示し、更に、対応するレイ経路に沿ったボリュームの不透明性及び色マッピングに従って2D画像平面上のピクセル値を判断する。2D画像平面上の複数のレイ原点に付随するピクセル値により、コンピュータモニタ上でレンダリングすることができる画像が形成される。直接ボリュームレンダリングのより詳細な説明は、Foley、Van Dam、Feiner、及びHughes共著「コンピュータグラフィックの原理と実施」、第2版、「Addison−Wesley Publishing Company」(1996年)、1134頁から1139頁で説明されている。
【0006】
上述のCTの例に戻ると、医師がいずれかの方向に画像ボリュームを遮ることによって心臓の2D画像スライスを任意に作り出すことができるとしても、どの単一の画像スライスも心臓の表面全体を可視化することはできない。これとは対照的に、CT画像ボリュームの直接ボリュームレンダリングを通じて作り出した2D画像は、心臓の3D特性を容易に示すことができ、これは、多くの種類の心血管疾患診断において非常に重要である。同様に、石油探査においては、3D地震データの直接ボリュームレンダリングは、石油技術者が潜在的な油田である領域に埋め込まれた地質構造の3D特性をより正確に判断して石油生産を大幅に増すことを助けることができる強力なツールであることが証明されている。
【0007】
直接ボリュームレンダリングは、多くの重要な分野で重要な役割を果たすとしても、直接ボリュームレンダリング技術の幅広い展開を保証するために克服する必要があるいくつかの技術的課題が存在する。第1に、直接ボリュームレンダリングは、計算的に高価な処理である。3Dターゲットの3D特性を捕捉することができる高品質2D画像を生成するためには、直接ボリュームレンダリングでは、大きな3Dデータセットを処理する必要があり、これは、通常は多数の計算を意味する。例えば、5123ボクセルの一般的な3Dデータセットに対して、従来の直接ボリュームレンダリングアルゴリズムを用いて5122ピクセルの2D画像を生成するのに少なくとも1億4000万回の計算が必要である。
【0008】
更に、多くの用途では、各2D画像が異なる視角又は可視化パラグラフを有する3Dデータセットの連続2D画像をユーザが大きな遅延なく見ることができるように、3Dデータセットの直接ボリュームレンダリングは、リアルタイムで作動することが要求される。医療用撮像においては、毎秒少なくとも6フレームの連続2D画像レンダリングがリアルタイム対話式フィードバックに対する必要性を満たすことが一般的に受け入れられている。これは、毎秒ほほ10億回の計算と同等である。
【0009】
最新コンピュータの限定された計算能力に鑑みて、直接ボリュームレンダリングの計算コストを低減するためにより効率的なアルゴリズムが開発されてきた。しかし、これらのアルゴリズムの多くは、作り出された2D画像の品質を犠牲にしてその効率を達成している。例えば、連続オブジェクトの個別の表現に関する一般的な問題は、ジッター効果であり、これは、ユーザが連続オブジェクトの更に詳細を見るために拡大した時に最も明白である。ジッター効果が慎重に制御されなかった場合、それは、直接ボリュームレンダリングアルゴリズムによって作り出された画像の品質を大幅に損なう場合がある。
【0010】
従って、レンダリング効率を増し、同時に画質品質に及ぼす影響がより小さいか又は好ましくは感知できない新しい直接ボリュームレンダリング方法及びシステムを開発することが望ましいと考えられる。
【0011】
【非特許文献1】Foley、Van Dam、Feiner、及びHughes共著「コンピュータグラフィックの原理と実施」、第2版、「Addison−Wesley Publishing Company」(1996年)、1134頁から1139頁
【発明の開示】
【0012】
本発明の好ましい実施形態は、適応データ表現技術、レイキャスティング技術、及びデータ補間技術を用いて3Dデータセットによって表された3Dオブジェクトの高品質2D画像を発生させる適応直接ボリュームレンダリング方法及びシステムである。
【0013】
本方法及びシステムは、最初に、3Dデータセットを異なるサイズの複数のサブボリュームにフラグメント化してデータ構造、例えばオクトリを構成し、オクトリのノードをデータセットの異なるサブボリュームに関連付け、各サブボリュームはまた、サブボリューム内のデータ値分布を特徴付ける一組のデータ値パラメータを有する。
【0014】
本方法及びシステムは、次に、複数のレイを2D放射面から3Dデータセットに向けて投射する。一般的に平行投影と称する一実施形態では、複数のレイは、互いに平行であり、各レイは、その固有の原点を有する。一般的に透視投影と称する別の実施形態では、複数のレイは、全てが同じ原点から放出され、各レイは、3Dデータセットに対して固有の放出角を形成する。ある一定の初期エネルギを運び、かつある一定の断面又はレイ厚みを有する各レイは、その経路に沿って3Dデータセット内の一連のサブボリュームと相互作用する。
【0015】
レイとサブボリュームの間の各相互作用に対して、レイが所定の不透明性伝達関数に従ってその初期エネルギの一部分を損失する計算が行われる。レイキャスティング処理は、レイの残留エネルギが所定の残留エネルギ閾値よりも小さいか又はレイがデータセットを出るまで、レイ経路上の連続的なサブボリュームを通じて続行される。損失レイエネルギの一部は、所定の照射モデルに従って2D画像平面に向けて反射される。異なるサブボリュームによって反射されたレイエネルギは、2D画像平面の選択された位置に蓄積され、データセットに埋められた3Dオブジェクトの画像が生成される。
【0016】
レイキャスティングの計算経費を低減するために、本方法及びシステムは、常に、レイと相互作用するためのある一定の所定の条件を満たす最大サイズのサブボリュームを選択しようとする。重要な条件の1つは、不透明性伝達関数がレイと相互作用するサブボリューム内で単調に変化することを要求する。一実施形態では、オクトリのルートノードに付随する画像ボリューム全体が、レイと相互作用するために選択される。不透明性伝達関数は、画像ボリューム全体内で単調に変化することは稀であるから、画像ボリュームは、より小さなサブボリュームにフラグメント化され、レイ経路に沿ってレイ原点に最も近く、かつルートノードの子ノードに付随するより小さなサブボリュームの1つが次に試験され、所定の条件を満足するかが判断される。このフラグメント化及び試験処理は、全ての条件を満足するサブボリュームが見つかるまで再帰的に続行される。
【0017】
サブボリューム内の不透明性伝達関数分布を迅速に判断するために、2つの予め構成したルックアップテーブル、つまり、順方向ルックアップテーブルと逆方向ルックアップテーブルが、不透明性伝達関数の複数の極値に関連して作り出される。具体的には、順方向ルックアップテーブルの各エントリは、増加方向に沿った最も近くの極値に対するデータ値からの差を含み、逆方向ルックアップテーブルの各エントリは、減少方向に沿った最も近くの極値に対するデータ値からの差を含む。
【0018】
レイと相互作用するためのサブボリュームを最終的に選択した状態で、反射レイエネルギ量を計算するために修正フォン照射モデルを使用する。修正フォン照射モデルによると、サブボリュームは、一定の不透明性を有する均質体として処理される。更に、サブボリューム内のデータ値分布の勾配が推定され、サブボリューム内の反射面の方向を表す。勾配は、レイとの入射角を形成する。この情報に基づいて、修正フォン照射モデルに従って反射レイエネルギを計算することは容易である。
【0019】
一実施形態では、2D放射面は、2D画像平面と部分的に重複し、選択された位置は、複数のレイの原点である。この場合、修正フォン照射モデルを用いた反射レイエネルギの計算は、入射角と反射角は同じであることから更に簡単である。その結果、各レイ経路に沿って一連のサブボリュームによって反射したレイエネルギは、2D放射面上のレイ原点でのピクセル値として集められる。
【0020】
直接ボリュームレンダリングアルゴリズムの計算経費及び画像解像度は、主としてレイの数によって判断される。最新のコンピュータハードウエアで妥当な期間内に処理することができる限定された数のレイに鑑みて、本方法及びシステムは、2D放射面上のレイ原点を、2D画像平面上のそれらのレイに付随するピクセル値がデータセットに埋め込まれた3Dオブジェクトの重要な3D特性を有効に捕捉することができるように最適化する。
【0021】
一実施形態では、4つのレイが、最初に2D放射面の4つのコーナから放出される。2D画像平面の4つのコーナでの4つピクセル値を取得した後に、本方法及びシステムは、所定の画像化誤差閾値に照らしてそれらの値の変動を検査する。変動が閾値を超える場合、更に1つのレイを放射面の中心から放出し、それによって2D放射面及び2D画像平面をそれぞれ4つのサブ平面に分割する。各サブ平面内のピクセル値の変動は、所定の画像化誤差閾値に照らして更に検査される。変動が閾値を超えるあらゆるサブ平面は、どのサブ平面の変動も閾値よりも小さくなるまで更に再帰的に分割される。
【0022】
最後に、本方法及びシステムは、画像平面上の周囲ピクセル値に基づいて、レイ原点ではない2D画像平面上の各ピクセルにおける値を推定する。一実施形態では、これらのピクセル値は、所定の画像化誤差閾値を満足した最小サブ平面の4つのコーナにあるピクセル値のバイリニア補間の結果である。
【0023】
本発明の以上の特徴及び利点、並びにその付加的な特徴及び利点は、図面と共に本発明の好ましい実施形態の詳細説明の結果として以下においてより明確に理解されるであろう。
【発明を実施するための最良の形態】
【0024】
図1(A)及び図1(B)は、本発明の2つの実施形態を用いて直接ボリュームレンダリングの基本原理を概略的に示している。直交座標(x、y、z)によって表された3Dドメインにおいては、1つ又はそれよりも多くの3Dオブジェクトを表す画像ボリューム106がある。直接ボリュームレンダリングでは、複数のレイ104を画像ボリューム106に投射し、3Dオブジェクトの3D特性を可視化するようにレイと画像ボリュームの間の相互作用を模擬することによって2D画像を発生させる。尚、本発明の状況におけるレイの形状は1D線ではなく、以下で説明する異なるレイ構成に依存するが3Dチューブ又はコーンである。
【0025】
図1(A)に示す実施形態では、複数のレイ104を放射面102上の異なる位置から放出すると、各レイは、別のものに平行に画像ボリューム106に向けて進む。レイの形状は、レイ厚みとも呼ばれる一定のサイズの断面を有するチューブ103である。異なるレイは、2D放射面102に部分的に重なる2D画像平面101上の異なるピクセルに対応し、各ピクセル値は、少なくとも1つのレイと画像ボリュームの間の相互作用によって判断される。このようなレイ構成は、平行投影と呼ばれる。
【0026】
図1(B)に示す実施形態では、複数のレイ104を放射面102上の同じレイ原点107から放出し、各レイは、画像ボリューム106に対して固有の透視角を有する。その結果、各個々のレイの形状は、レイ経路に沿って可変サイズの断面を有するコーン105であり、従って、レイ厚みは、視角108とレイ原点及び画像ボリューム間の距離109の両方の関数である。同様に、異なるレイは、2D画像平面101上の異なるピクセルに対応し、各ピクセル値は、少なくとも1つのレイと画像ボリュームの間の相互作用によって判断される。このようなレイ構成は、透視投影と呼ばれる。
【0027】
放射面102と画像平面101は、上述の2つの実施形態では互いに重なり合うことに注意されたい。しかし、この2つの平面が異なる位置に位置決めされた場合も同じ原理がまだ有効である。従って、これらの場合に本発明の教示内容を適用することは、当業者には簡単である。簡素化を期して、以下では図1(A)及び図1(B)に示す2つの実施形態を中心に説明する。
【0028】
一般的に2D画像の画像解像度は、単位面積当たりのピクセル数に依存する。実際には、画像当たりのピクセル総数は、定数、例えば5122であることが多く、これは、コンピュータモニタ上のピクセル数に依存する。従って、レイチューブ103の断面積を小さくすることによって単位面積当たりのピクセル数を多くすることにより、より高い画像解像度が達成され、放射面をレイ経路に沿って画像ボリューム106から離したり又は近づけたりしても画像解像度には影響はない。これとは対照的に、視角108又は距離109又はその両方を小さくすることにより、透視投影においてより高い解像度が達成される。
【0029】
一例として、図1(C)は、画像解像度がレイ厚みとして変化する様子を示している。簡素化を期すために、各画像は、102=100ピクセルのみを有する。グリッド110−1のレイ厚みがSの場合は、それぞれ、112−1のレイ厚みは4S、114−1のレイ厚みは16Sである。その結果、グリッド114−2上に発生した画像114−2は、最低の解像度を有し、グリッド110−1上に発生した画像110−2は、最高の解像度を有する。平行投影では、放射面のサイズを小さくしてその平面上の単位面積当たりのレイ原点の密度を大きくすることによってこのような拡大効果を達成し、また、透視投影では、放射面を3Dオブジェクトに近づけることによって同じ効果を達成することができる。
【0030】
初期エネルギ量を有する各レイは、レイ経路に沿って画像ボリューム106の一部と相互作用する。画像ボリュームの異なる物理的特性、例えば、不透明性により、レイが画像ボリュームを通る時に損失するレイエネルギ量は異なる場合がある。例えば、レイ経路に沿った画像ボリューム106の不透明性がゼロ、つまり、画像ボリューム106のその部分が透明である場合は、レイが損失するエネルギはないと考えられ、又は、表面の画像ボリューム106の不透明性が1、つまり、画像ボリュームのその部分が完全に不透明である場合は、全てのレイエネルギは、画像ボリューム106の表面によって反射されると考えられる。より一般的かつ複雑なシナリオとしては、レイと画像ボリュームの間の相互作用の最中に、レイエネルギの一部がレイ経路に沿って画像ボリューム106内に埋められた異なるオブジェクトによって反射し、レイは、ある一定量の残留エネルギを伴って他方の側から画像ボリューム106を出る。レイ経路上のある地点での全ての反射エネルギの蓄積は、そのレイ原点でのピクセル値になる。従って、放射面102上の全てのピクセル値は、画像ボリューム106内に埋められた3Dオブジェクトの画像を構成する。
【0031】
画像ボリューム106は、通常、図1(D)に示すように3Dデータセット116によって表される。3Dデータセットの各ボクセルは、画像ボリューム内の特定の位置にある画像の少なくとも1つの物理的属性を示すスカラー値である。図1(D)に示すように、3Dデータセット116は、3つの直交する座標(x、y、z)を有する。いずれの座標に沿っても、データセットは、その方向に垂直方向に向けられた2Dデータスライスのスタックを含む。各データスライスは、他の2つの座標に沿った規則的な格子上のボクセルデータ値の2Dアレイである。例えば、それぞれ、方向z、x、及びyに垂直な3つの直交データスライス116−1、116−2、116−3は、画像ボリューム106の3つの異なる限定された透視になる。
【0032】
本発明の直接ボリュームレンダリング方法は、図2に示すように3つの大きな段階を含むことが好ましい。段階201で、本方法は、最初に画像ボリュームを異なるサイズの複数のサブボリュームにフラグメント化し、各サブボリュームは、サブボリューム内のデータ分布を特徴付ける一組のパラメータと関連付けられる。
【0033】
段階203で、本方法は、画像ボリュームからある一定の距離を隔てて位置し、かつ画像ボリュームに向けてある一定の方向に向けられた画像平面から、画像ボリュームに向けて複数のレイを放出させる。各レイは、ある一定のレイエネルギ量を運び、レイ経路に沿って位置するサブボリュームの部分集合と選択的に相互作用する。一組の所定の可視化パラメータに従ってレイと相互作用するサブボリュームによって反射したレイエネルギを合計すると、画像平面上のレイ原点でのピクセル値になる。反射レイエネルギの計算に関する更なる詳細を以下に示す。
【0034】
最後に、段階205で、本方法は、レイ原点ではない画像平面上のいずれの位置のピクセル値も推定し、画像平面の位置及び方向から見た画像ボリュームの3D特性を可視化する2D画像を生成する。段階203及び段階205を繰り返すと、画像平面の位置及び方向が変化するか又は異なる可視化パラメータが適用された時に一連の新しい画像を発生させることができる。
【0035】
画像ボリュームフラグメント化
本発明の一実施形態によれば、画像ボリュームをまず一組のサブボリュームにフラグメント化する。各サブボリュームを更により小さなサブボリュームにまでフラグメント化する。このような再帰的フラグメント化は、最小サブボリュームが所定のサイズ限界に到達するまで続行される。最後に、全てのサブボリュームをデータ構造に関連付けて元の画像ボリュームの新しい図を形成する。
【0036】
図3(A)は、複数のサブボリューム、この場合は585個のサブボリュームへの3Dデータセット302のフラグメント化の一例を示すものである。これらの585個のサブボリュームは、4つのフラグメント化レベルI、II、III、及びIVに属する。例示を目的として、より小さなサイズの他のサブボリュームを露出させるために、異なるサイズのいくつかのサブボリューム、例えば、II−2、III−2、IV−2を図3のデータセット302から既に取り除いている。585個のサブボリュームの各々をサイズに基づいてオクトリデータ構造304の1つのノードと関連付ける。図示を簡素化するために、図3(A)のオクトリ304では、サブボリュームの部分集合のみを示している。
【0037】
フラグメント化レベルIから始まって、データセット302全体は、1つのサブボリュームI−1として処理され、オクトリ304のルートノードに関連する。フラグメント化レベルIIでは、データセット302は、仕切られて同じサイズの8つのサブボリュームにされ、各サブボリューム、例えばII−6は、レベルIIでオクトリ304の1つの中間ノードに関連する。更に、フラグメント化レベルIIIでは、サブボリュームII−6のような各サブボリュームは、8つのより小さなサブボリュームIII−1、III−2、...、及びIII−8に分割され、同様に、III−6のような各サブボリュームは、レベルIIIの中間ノードに関連する。最後に、フラグメント化レベルIVでは、サブボリュームIII−6のような各サブボリュームは、仕切られて別の8つのサブボリューム(サブボリュームIV−6を含む)にされ、レベルIVの各サブボリュームは、オクトリ304の葉ノードに関連する。レベルIには80個のサブボリュームがあり、レベルIIには81個のサブボリュームがあり、レベルIIIには82個のサブボリュームがあり、レベルIVには83個のサブボリュームがあることから、データセット302を異なるフラグメント化レベルで合計で、
80+81+82+83=1+8+64+512=585
個のサブボリュームにフラグメント化する。
【0038】
各サブボリュームは、このサブボリューム内のデータ分布を特徴付ける一組のパラメータと関連する。一実施形態では、この組のパラメータとしては、3つの要素がある。
・サブボリューム内の画像データの最小値を表すVmin、
・サブボリューム内の画像データの平均値を表すVavg、及び
・サブボリューム内の画像データの最大値を表すVmax
【0039】
図3(A)に示すように、画像ボリュームフラグメント化は、再帰的処理である。このフラグメント化処理は、最小サブボリュームが指定のサイズ限界に到達するまで停止されない。一実施形態では、この所定のサイズ限界つまりオクトリ葉ノードに付随する最小サブボリュームは、画像データセット内の2×2×2セル又はボクセルを含むサブボリュームである。セル又はボクセルは、画像ボリュームのいくつかのデータ値に付随する画像データセット内の最小単位である。例えば、画像ボリュームが直接ボリュームレンダリングでは一般的である5123個のセルを有し、かつ最小サブボリュームが2×2×2セルを有する場合、画像ボリュームフラグメント化処理は、フラグメント化レベルIXまで続くと、最小サブボリュームの数は2563である。
【0040】
図3(B)は、3つの直交方向の各々に互いに隣接する2つのセル又はボクセルがあるように配置されたサブボリューム306の8つのセル又はボクセルを示している。ボクセル308は、1つの採取データ値、例えば、V0に中心がある立方体である。ボクセル内のデータ値は一定であることが好ましく、従って、ボクセルの境界に沿ってデータ値の不連続があるとすることができる。これとは対照的に、セル310は、8つの採取データ値V1からV8を立方体の8つのコーナの各々に1つずつ有する同じサイズの立方体である。本発明の一実施形態では、セル内のいずれの点のデータ値もトリリニア補間によって概算し、データ値は、セルの境界に沿って変動する。
【0041】
原点がセル310の中心にある3D直交座標系があり、セルの3つの縁部の長さが、それぞれ、Dx、Dy、Dzであると仮定すると、セル内のいずれかの点V(x、y、z)でのデータ値は、以下のように、セルV1からV8の8つのコーナでのデータ値の関数としてトリリニア補間によって表すことができる。
【数1】
【0042】
本発明は、いずれのフォーマット、セル、又はボクセルで表された画像ボリュームにも等しく適用されることが当業者には明らかである。簡素化を期すために、以下では一例としてセル表示を中心として説明する。
【0043】
最小サブボリュームのサイズの選択は、直接ボリュームレンダリングアルゴリズムの効率、精度、及び計算経費間の妥協点になる。一般的に、最小サブボリュームサイズが大きくなる場合、直接ボリュームレンダリングに必要とされるメモリなどのコンピュータリソース数は少なくなり、対応する画像レンダリング速度つまり毎秒のフレーム(FPS)は大きくなるが、より低い画像解像度という犠牲を払っている。他方、最小サブボリュームのサイズが単一のセルのレベルまで小さくなり、それによってより高い画像解像度が達成される場合、対応するオクトリを割り当てるのに使用されるメモリは、図3(A)のオクトリ304を割り当てるのに使用されるメモリの8倍になることになる。
【0044】
図4は、上述の画像ボリュームフラグメント化並びオクトリ構造のコンピュータプログラムを要約した流れ図である。段階401では、コンピュータプログラムは3Dデータセットを受け取り、3Dデータセットをオクトリのルートノードと関連付けることにより、オクトリデータ構造を初期化する。段階403では、データセットを8つのサブボリュームにフラグメント化し、各サブボリュームがルートノードの1つの子ノードに関連付けられるように、8つの子ノードをルートノードで発生させる。
【0045】
段階405から始まって、最小サブボリュームが指定のサイズ限界に達するまで、各サブボリュームをより小さなサブボリュームに再帰的にフラグメント化する。段階405では、コンピュータプログラムは、最初に、サブボリュームのサイズが指定のサイズ限界、例えば、2×2×2セルのサブボリュームに達したかを検査する。達していない場合、段階407では、サブボリュームを8つのより小さなサブボリュームにフラグメント化する。8つのより小さなサブボリュームの1つを拾うと、再帰的フラグメント化が段階405で再び始まる。
【0046】
サブボリュームのサイズが指定のサイズ限界、例えば、2×2×2セルに達した場合、コンピュータプログラムは、段階409でこのサブボリュームをフラグメント化するのを止め、サブボリュームに付随するオクトリの対応するノードは、オクトリの葉ノードの1つである。段階411では、コンピュータプログラムは、2×2×2セルまでフラグメント化されていない他のサブボリュームがあるかを検査する。ある場合には、上述のサブボリュームの1つを選択して、再帰的フラグメント化も再度段階405で開始される。ない場合には、画像ボリュームフラグメント化は終了である。
【0047】
上述のように、各サブボリュームは、2D画像平面上のピクセル値を計算するのに使用される(Vmin、Vavg、Vmax)のような一組のパラメータに関連付けられる。一実施形態では、この計算は、図3(A)のオクトリ304のような画像ボリュームのフラグメント化した表現からの恩典を得るために、上述の再帰的画像ボリュームフラグメント化から分離されている。例えば、3Dデータセットをフラグメント化してオクトリを構成した後に、コンピュータは、オクトリの葉ノードレベルから始まり、図3(A)のサブボリュームIV−6のような葉ノードに付随するサブボリュームに対する対応するVmin、Vavg、及びVmaxを計算する。葉ノードに付随する各サブボリュームは、8つのセルを含むのみであり、かつ、各セルは、大半は2つ又はそれよりも多くのセルによって共有される8つのデータ値を有することから、コンピュータは、ハードディスクのようなコンピュータ記憶装置から27個のボクセルデータ値を検索し、サブボリュームの(Vmin、Vavg、Vmax)を計算する必要があるだけである。
【0048】
葉ノードレベルの全てのサブボリュームを処理した後に、コンピュータプログラムは、オクトリ304に沿ってレベルを1つ上げ、中間ノードに付随するIII−6のようなサブボリュームの対応するパラメータを計算する。そして、これは、それがルートノードに達するまでオクトリ304に沿って登り続ける。各中間ノードは、8つの子ノードを有し、各子ノードは、パラメータが既に前の段階で判断されているサブボリュームに付随するものであることから、この中間ノードの各データ値パラメータを8つの子ノードに付随する8つのパラメータの関数として容易に表すことができる。
・Vmin=Min(Vmin_1,Vmin_2,...,Vmin_8)、
・Vavg=(Vavg_1+Vavg_2+...+Vavg_8)/8、及び
・Vmax=Max(Vmax_1,Vmax_2,...,Vmax_8)
【0049】
以下で明らかになるように、データ値パラメータのこの発生は、図3(A)に示すようにルートノードレベルで始まって葉ノードレベルまで下方に移動するオクトリ構成とは反対の方向に進む。データ値パラメータ発生のこの下から上の手法は、オクトリのより低いレベルにある計算結果を最大に再利用することから最も効率的である。
【0050】
段階201の終わりでは、元の画像ボリュームの新しい表現が直接ボリュームレンダリング方法の段階203に利用可能である。この表現は、オクトリ及び異なるサイズの複数のサブボリュームを含み、オクトリの1つのノードに付随し、かつ一組のデータパラメータを有する各サブボリュームは、サブボリューム内のデータ分布を特徴付ける。
【0051】
3D適応レイキャスティング
図1に示すように、画像ボリューム106の2D画像108を発生させるために、2D画像平面102を画像ボリュームの近くに定め(又は画像ボリューム内とすることができる)、その後、複数のレイ104が2D画像平面102から画像ボリューム106に向けて放出されると仮定する。レイキャスティングの基本的な考え方は、3Dオブジェクトを貫通する光線などの物理的処理を模擬することである。現実の世界では、光線と3Dオブジェクトの間の相互作用のために、光線エネルギの一部は光線原点に反射し、一部は全ての方向に散乱し、一部は吸収され、残りのエネルギはオブジェクトを通る。異なる位置(平行投影)又は同じ位置(透視投影)から放出された複数の光線に付随する全ての反射エネルギを合計すると、3Dオブジェクトの画像が得られる。すなわち、反射エネルギは、オブジェクトの可視特性、例えば、その色合いや輝度をある程度を反映することができる。不透明性、放射率、色などのようなオブジェクトの光学的属性、並びに形状及び向きのような幾何学的特性により、3Dオブジェクトの部分が異なれば、反射することができるレイエネルギ量が異なる。
【0052】
本発明は、上述の物理的処理を模擬する数値アルゴリズムを含む。このアルゴリズムでは、最初に、ある一定の初期レイエネルギ量及び断面を有するレイの数学的モデルを構築し、3Dオブジェクトを個別の3Dデータセットとして表し、データセットの各要素は、所定の伝達関数、例えば、レイと3Dオブジェクトの間の相互作用中に消散されるレイエネルギ量を決める不透明性伝達関数に従ってオブジェクトの特定の位置でのある一定の物理的特性を特徴付ける。次に、このアルゴリズムでは、数値解析を用いて、レイ経路に沿ったオブジェクトのレイと異なる位置との間の物理的相互作用を模擬する。具体的には、このアルゴリズムでは、3Dデータセット内の対応する要素及び理論的照射モデルに基づいて、レイ経路に沿った位置によって反射した反射エネルギを計算する。最後に、このアルゴリズムでは、画像平面上の特定のピクセルでの異なる位置によって反射した反射エネルギを蓄積し、反射レイエネルギを色値に変換する。一実施形態では、レイの原点を特定のピクセルとして選択し、ピクセル値は、3つの成分、すなわち、赤色、緑色、及び青色を含む。
【0053】
直接ボリュームレンダリングにおいては、3Dデータセットに付随する複数の伝達関数があるとすることができる。上述の不透明性伝達関数は、不透明性が、最終的なレンダリングがいかに分かりやすくかつ有用なものになるかを判断する際に本質的な役目を果たすので最も重要なものの1つである。オブジェクトの不透明性が通常は固定のものである現実の世界に反して、直接ボリュームレンダリングにおける不透明性伝達関数は、任意に選択することができる。任意の不透明性伝達関数を有することの重要な利点は、同じ3Dデータセットに適用した時の不透明性伝達関数が異なれば、明らかにすることができるデータセットの特性が異なるということである。
【0054】
図5(A)は、直接ボリュームレンダリングで使用することができる不透明性伝達関数の例である。縦軸は、0.0から1.0まで不透明性によって目盛りが付けられ、横軸は、3Dデータセットにおけるデータ値の大きさである。不透明性曲線502は、データ値の関数として0.0と1.0の間で変動することにより、データ値の大きさが不透明性レベルに関連付けられる。例示的に、8と10の間のマグニチュードを有するどのデータ値も不透明性曲線の部分502−Aによって示すように、1.0という不透明性値を有する。このようなデータ値を有する3Dデータセットの部分は、完全に不透明として処理し、いずれかの残留レイエネルギを伴ってこのような部分を貫通することができるレイはない。同様に、13と17の間又は24と26の間のマグニチュードを有するどのデータ値も、部分502−B及び502−Cによって示すように0.0という不透明性値を有する。このようなデータを有する3Dデータセットの部分を透明として処理し、レイが3Dデータセットのこのような部分を通る時にレイエネルギ損失はない。図5(B)及び図5(C)は、図5(A)に示す不透明性伝達関数に応答する2つのルックアップテーブル、つまり、順方向ルックアップテーブル(FLT)506及び逆方向ルックアップテーブル(BLT)508を示している。これらの表は、サブボリュームがレイと相互作用するか否かを迅速に判断するのに使用される。これらの2つの表の特定の機能に対して以下でより詳細に説明する。
【0055】
図6は、レイと3Dデータセット内の一連のサブボリュームの間の一連の相互作用を示している。簡素化を期すために、ボックス610から616は、互いに隣接するn個のサブボリュームを示すと仮定する。各サブボリュームは、同じ物理的寸法及び固有のデータ値Vnを有する。初期エネルギE0を有するレイ618は、それが最終サブボリューム616から出るまで、一方の側面に垂直にサブボリューム610に入り、反対側から出て、すぐに次のサブボリューム612に入る。レイが右側からサブボリューム610を出た時、レイの残留エネルギは、以下の通り推定される。
【数2】
ただし、Op(V)は、図5(A)に示す曲線502のような不透明性伝達関数であり、Tr(V)は、透明度伝達関数とも称するOp(V)に対して補完的なものである。従って、レイがサブボリューム510を貫通する時の損失エネルギは、初期エネルギと残留エネルギの間の差である。
【数3】
【0056】
同様に、サブボリューム516を出た直後に、残留レイエネルギは、以下の通りである。
【数4】
また、損失レイエネルギは、以下の通りである。
【数5】
【0057】
上述のように、レイとサブボリュームの間の相互作用中に消散されるエネルギの全てがレイ原点に反射されるわけではない。コンピュータグラフィックで多くの照射モデルがこれまでに開発されている。本発明においては、レイがサブボリュームと相互作用する時にレイ原点に反射されるレイエネルギを計算するのに、公知のフォン照射モデルの修正バージョンを使用する。
【0058】
フォン照射モデルでは、表面からの3つの形式の反射光が考慮されている。それらは、以下の通りである。
・全ての方向から表面に達する光の反射である周囲反射Ea、
・全ての方向に散乱する無光沢面からの光の反射である拡散反射Ed、及び
・特定の1つの方向に入射光を反射させる鏡状の面からの光の反射である鏡面反射Es
【0059】
図7(A)は、全ての方向で一定の値である周囲反射Eaを示している。
【0060】
図7(B)は、拡散反射Edを示している。エネルギE0を有する光が光の方向:
と、表面の方向:
との間で形成された入射角θで無光沢面Sに当たる時、いずれかの方向での拡散反射光Edのエネルギを以下のように推定することができる。
【数6】
又は、
【数7】
ただし、rは、反射点と見る者の位置の間の距離であり、kは、rが小さすぎる時のコンピュータ実装における割り算オーバーフローを回避するために選択する定数である。
【0061】
図7(C)は、鏡面反射を示している。エネルギE0を有する光が光の方向:
と、表面の方向:
との間に形成された入射角θで鏡上の表面S’に当たる時、エネルギのほとんど全ては、表面の方向:
で反射角θを形成する方向:
に鏡面反射される。表面S’が完全な鏡である場合、鏡面反射は、方向:
でしか見ることができない。現実の世界では、完全な鏡が存在するのは稀であり、点線による円錐Cで示すように、常に、ある一定の量の光が反射方向:
の回りに散乱する。方向:
の鏡面反射Esの実験的推定値は、以下の通りである。
【数8】
又は、
【数9】
ただし、nは、表面S’の滑らかさを示すパラメータである。光沢面に対しては、nを128などの高い値に設定し、光沢面から反射したエネルギの大部分が方向:
に集中して角度φが大きくなる時に鏡面反射Esが落ちる現象を模擬する。無光沢面に対しては、角度φが大きくなる時に比較的緩やかな割合で鏡面反射Esが落ちるようにnを8などの低い値に設定する。
【0062】
周囲反射Ea、拡散反射Ed、及び鏡面反射Esを組み合わせると、フォン照射モデルによる全反射の推定値は、以下の通りである。
【数10】
又は、
【数11】
ただし、Ka、Kd、及びKsは、それぞれ、表面の周囲反射、拡散反射、及び鏡面反射の係数である。係数Ksは、通常は定数であり、係数Ka及びKdは、通常は入射光の波長及び表面材料に依存する。
【0063】
コンピュータグラフィックでは、画像の色は、通常は光の3原色、つまり、赤色、緑色、及び青色による構成として指定される。従って、直接ボリュームレンダリングにおいては、フォン照射モデルにおける全反射レイエネルギEは、以下の3つの成分に分解することができる。
【数12】
ただし、鏡面反射係数Ksは、全ての色に対して同じであり、一方、周囲反射係数及び拡散反射係数は、波長の関数である。
【0064】
本来のフォン照射モデルでは、拡散反射Ed及び拡散反射Esの両方を推定する時、表面の方向:
は既知であると仮定される。直接ボリュームレンダリングでは、可視化ターゲットは、通常は心臓や地質断層などの連続的オブジェクトを表す採取3Dスカラー場である。このような画像ボリュームにおけるオブジェクトの表面の方向を定めることは困難である。その結果、採取位置で推定したデータ値の局所勾配ベクトルを修正フォン照射モデルにおける表面方向の代用として使用する。当業者に公知である多くの勾配ベクトル推定法がある。一実施形態では、反射係数は、不透明性伝達関数と同様に、データ値の関数として定義される。ユーザは、これらの係数を自由に調整することができる。
【0065】
図8は、ユーザが定めた不透明性伝達関数及び修正フォン照射モデルを使用してレイが画像ボリュームと相互作用する時に反射レイエネルギを推定するコンピュータプログラムの作動の流れ図である。画像ボリュームは、図3(A)に示すように、オクトリに付随する複数のサブボリュームに既にフラグメント化されていることから、レイと画像ボリュームの間の相互作用は、レイとサブボリュームの一部との間の一連の相互作用になる。各相互作用では、レイエネルギの一部が消費され、消費エネルギの一部は、画像平面上のレイ原点に反射される場合がある。この一連の相互作用からの反射レイエネルギの蓄積は、レイ原点でのピクセル値になる。
【0066】
段階802で、コンピュータプログラムは、初期エネルギをE0に設定し、かつ画像ボリュームを表す3Dデータセットに対して2D画像平面上の位置及び向きを指定することによってレイを初期化する。
【0067】
段階804で、コンピュータプログラムは、オクトリの1つのノードに付随する3Dデータセットのサブボリュームを選択し、このサブボリュームが反射レイエネルギ計算に適格であるかを検査する。レイがいずれのサブボリュームとも相互作用しなかった場合、最初に、ルートノードに付随する最大サブボリュームをこの検査作業に選択する。レイが1つのサブボリュームと相互作用したばかりである場合、レイ経路に沿った同じサイズの次のサブボリュームをこの検査作業に選択する。以下の図9は、このサブボリューム選択法に関する更なる詳細を示すものである。画像化誤差を低減するために、サブボリュームは、反射レイエネルギ計算に適格になるための以下の2つの試験に合格すべきである。
・このサブボリュームのVmin及びVmaxの間の不透明性伝達関数が単調であること、及び
・このサブボリュームの最大エネルギ差(MED)が所定のエネルギ誤差閾値よりも小さいこと。
【0068】
段階806で、コンピュータプログラムは、第1の試験を行って不透明性伝達関数が段階804で選択したサブボリュームのVminとVmaxとの間で単調に変化するか否かを判断する。この試験の合格は、あらゆるサブボリュームが反射レイエネルギ計算に適格であるために必要であることから、この試験を行う効率は、本発明の効率に実質的に影響を与える。本発明の一実施形態では、図5(B)に示すFLT506及びBLT508などの2つのルックアップテーブルに基づいて高速のアルゴリズムが開発されている。これらのテーブルは、不透明性伝達関数がコンピュータに取り込まれた時に埋められる。
【0069】
上述のように、不透明性伝達関数により、0.0から1.0のスケールの不透明性と3Dデータセットにおけるデータ値のマグニチュードの関係が得られる。曲線502などの任意の不透明性伝達関数は、部分502−A、502−B、502−Cなどのある一定のデータ値での複数の極値部分を有する場合がある。各極値部分は、図5(A)に示す水平軸上の2つのデータ値つまり2つの点によって制約される。例えば、部分502−Aは、点B1及びF1によって制約される。特殊な場合として、点B3とF3の間の極値部分の長さはゼロであり、これに対応して、2つの点B3とF3は、1つの点に合併される。これらの点は、均一に2つのグループに分割され、1つのグループは、B1からB4を含み、他方のグループは、F1からF4を含む。分割判断基準は、データ値増加方向に沿って移動する時に、第1の遭遇点をB1と定め、第2の点をF1と定め、第3の点をB2と定めるなどということである。
【0070】
順方向ルックアップテーブル506と逆方向ルックアップテーブル508の両方には複数のエントリがあり、これらの表の各エントリは、データ値表(DVT)504内のデータ値エントリに対応する。順方向ルックアップテーブル506内の各エントリは、DVT504における対応するデータ値と、F1からF4を含む第2のグループから選択したデータ値増加方向の最も近くの極値に対応するDVT504におけるデータ値との間の差であるデータ値を含む。逆方向ルックアップテーブル508における各エントリは、DVT504における対応するデータ値と、B1からB4を含む第1のグループから選択したデータ値減少方向の最も近くの極値に対応するDVT504におけるデータ値との間の差であるデータ値を含む。
【0071】
例えば、10、17、21、及び26のデータ値エントリに対応するFLT506におけるエントリは、各々が図5(A)の1つの極値F1からF4に対応するのでゼロに設定し、12のデータ値エントリに対応するエントリには、図5(A)のデータ値軸上のデータ値12の右寄りにあるF1からF4の間の最も近くの極値が、データ値のマグニチュードが17である点であるF2であるから、データ値差|12−17|=5を割り当てる。同様に、8、13、21、及び24のデータ値エントリに対応するBLT508におけるエントリは、各々が図5の1つの極値B1からB4に対応するのでゼロに設定し、19のデータ値エントリに対応するエントリには、図5(A)のデータ値軸上のデータ値19の左寄りにあるB1からB4の間の最も近くの極値が、データ値のマグニチュードが13である点であるB2であるから、|13−19|=6というデータ値差を割り当てる。
【0072】
これらの2つのルックアップテーブルに基づいて、不透明性伝達関数は、以下の2つの条件の1つが満足された場合は、VminとVmaxとの間で単調に変化する。
・Vmax≦Vmin+Fmin、又は
・Vmin≧Vmax−Bmax
ただし、Fminは、順方向ルックアップテーブルに格納されたVminのデータ値差であり、Bmaxは、逆方向ルックアップテーブルに格納されたVmaxのデータ値差である。これは、第1のグループB1からB4又は第2のグループF1からF4からの2つの連続的な点によって境界付けられたいずれかのデータ値部分にわたる不透明性伝達関数が単調に変化するからである。例えば、図5(A)の曲線502では、F1とF2との間では単調に減少し、B1とB2との間では単調に増加する。このアルゴリズムに基づくコンピュータプログラムは、非常に高速であり、これは、本発明による直接ボリュームレンダリングの性能に対して重要なものである。
【0073】
一例として、サブボリュームはVmin=12とVmax=19を有すると仮定すると、Vmin=12に対する対応する順方向ルックアップ値は、Fmin=5であり、Vmax=19に対する対応する逆方向ルックアップ値は、Bmax=6である。Vmax=19がVmin=12とFmin=5の合計よりも大きく、また、Vmin=12は、Vmax=19とBmax=6の間の差よりも小さいことから、上述の2つの条件のいずれも満足されず、このサブボリュームには、適応レイキャスティングを行うことができない。
【0074】
段階806の結果が偽りである場合、コンピュータプログラムは、更に、調査中のサブボリュームが段階807の対応するオクトリ上の最小のものであるかを検査する。そうである場合、反射レイエネルギ推定は、セル又はサブセルレベルで行われ、これは、以下の図11で説明する。依然として偽りである場合、このサブボリュームをより小さなサブボリュームにフラグメント化し、段階808でレイ経路上の1つのこのような子サブボリュームを選択する。その後、この新たに選択した子サブボリュームを同じ方法で単調であるかを試験する。コンピュータプログラムは、サブボリューム内の不透明性伝達関数が単調に変化するか又はサブボリュームのサイズが所定のサイズ限界、例えば、2×2×2セルに到達するまで段階806、段階807、及び段階808を繰り返す。後者の場合に対しては、以下でより詳細に説明する。
【0075】
サブボリュームが段階806で第1の試験に合格した場合、その後、段階812で試験して最大エネルギ差(MED)が所定のエネルギ誤差閾値を下回っているか否かを判断する。この第2の試験では、サブボリュームが直接ボリュームレンダリングを目的として均質であるとして処理するのに十分に小さいか否かを評価し、これはまた、本発明の計算の性能に対して重要なものである。サブボリュームを均質に処理することができる場合、このサブボリュームによって反射したレイエネルギを計算する経費は、比較的低いものであり、これは、サブボリュームにはそれ以上のフラグメント化が必要ないからである。
【0076】
段階810で、サブボリュームSkの最大エネルギ差(MED)を以下のように計算する。
MED(Sk)=MAX(|Ek・(T(Vavg)−T(Vmin))|,|Ek・(T(Vavg)−T(Vmax))|)
ただし、Ekは、サブボリュームSkと相互作用するレイの残留レイエネルギであり、サブボリュームSkは、一組のデータ値パラメータ(Vmin、Vavg、Vmax)を有する。
【0077】
最大エネルギ差は、T(Vmin)とT(Vmax)の間で変動する透明度を有するサブボリュームの代わりに均質な透明度T(Vavg)及び同じサイズを有する別のサブボリュームを使用する時に、反射レイエネルギ推定に導入される近似誤差の量の尺度となる。最大エネルギ差は、複数のパラメータの関数であることから、以下の3つのパラメータの少なくとも1つを低くするなどの近似誤差を小さくする複数の方法がある。
・サブボリュームのサイズ、従って、VminとVmaxの間の差、
・VminとVmaxの間の不透明性伝達関数の勾配、及び
・残留レイエネルギEk
【0078】
段階812で、コンピュータプログラムは、サブボリュームのMEDをユーザが定めた所定のエネルギ誤差閾値と照らして比較する。MEDが所定のエネルギ誤差閾値よりも大きい場合、コンピュータプログラムは、更に段階813で、調査中のサブボリュームが対応するオクトリ上の最小のものであるかを検査する。そうである場合、反射レイエネルギ推定は、セル又はサブセルレベルで行われ、これは、以下の図11で説明する。そうでなければ、オクトリ上の最小サブボリュームではないことを条件として、サブボリュームをフラグメント化し、1つのこのような子サブボリュームを段階814での更に別の処理に向けて選択する。オクトリ上の最小サブボリュームであるサブボリュームを処理するために既に設計された特殊手順を図10、図11、及び図12で以下に示している。MEDが所定のエネルギ誤差閾値よりも小さい場合、修正フォン照射モデルを用いて段階816でこのサブボリュームからの反射レイエネルギを推定する。レイとサブボリュームの間の一連の相互作用からの蓄積反射レイエネルギは、2D画像平面上の1つのピクセル値の役目を果たすものである。
【0079】
このサブボリュームを貫通した後、レイは、画像ボリュームの反対側から出るか、又はレイ経路に沿った別のサブボリュームに当たる。第1のシナリオにおいては、レイキャスティングは終了になる。第2のシナリオにおいては、対応するレイキャスティングが継続されるべきか又は停止すべきかは、残留レイエネルギ量に依存する。サブボリュームとレイの間の全ての相互作用は残留レイエネルギの一部を取り去ることから、残留レイエネルギが所定のエネルギレベルよりも小さいサブボリュームとレイの間の相互作用は、画像平面上のピクセル値に対する貢献はほとんどない。段階818で、残留レイエネルギを所定のエネルギレベルに照らして比較する。残留レイエネルギがそのレベルを上回り、かつレイがまだ画像ボリューム内を進む場合、レイキャスティングは、段階804から継続される。そうでなければ、特定のレイのレイキャスティングは完了であるから停止される。
【0080】
図9(A)及び図9(B)は、本発明による適応レイキャスティングの重要な特徴を示す単純な2D実施例を示すものである。この例においては、3D画像ボリュームが2D画像正方形900で置き換えられ、2D画像平面が、2D画像正方形900内に位置する1D画像線902で置き換えられる。2D画像正方形900を再帰的に4回フラグメント化すると、合計は、
40+41+42+43+44=1+4+16+64+256=341
個のサブ正方形(画像正方形900を含む)になり、各サブ正方形は、図9(B)の四分木906の1つと関連する。例示する目的で、図9(A)は、実際にレイ904と相互作用する910から922の異なるサイズの13個の隣接サブボリュームを含むサブ正方形の部分集合のみを含み、同様に、図9(B)は、13個のサブ正方形に対応するノードを含む全ての四分木ノードの部分集合のみを示している。
【0081】
図9(A)は、サブ正方形910内の点p0で始まる適応レイキャスティングの直観的表示を示している。レイ904の軌跡上には12個の点p1からp12があり、各点は、2つの隣接するサブ正方形の境界上に位置する。例えば、p1は、レイ904がサブ正方形910から出て第2のサブ正方形911に入る位置を表す。レイ904がサブ正方形915などのサブ正方形を通った時、修正フォン照射モデルに従ってレイエネルギの一部は、サブ正方形によって反射される。13個のサブ正方形によって反射されたレイエネルギの蓄積は、点p0におけるピクセル値を構成する。
【0082】
これに対応して、図9(B)は、四分木906という状況における同じ適応レイキャスティングを示している。図9(A)のサブ正方形は、図9(B)では小さなブロックで表され、例えば、画像正方形900全体は、ルートノードにおけるブロックによって表される。図9(A)の点は、図9(B)のカスケード経路まで延び、例えば、点p0は、レベルIからレベルIIIまでの二脚経路になる。図9(A)においては、2つのサブ正方形は互いに隣り合っていることから、レイ904が1つのサブ正方形から出て別のサブ正方形に入る時を観察することは簡単である。例えば、サブ正方形916は、サブ正方形917の隣にある。しかし、同じ2つのサブ正方形は、四分木906上の2つの隣接するノードとは、一般的に関連付けられない。同じ例を用いて、サブ正方形916は、レベルVの1つの葉ノードと関連付けられ、サブ正方形917は、レベルIIIの1つの中間ノードと関連付けられる。
【0083】
図9の点p0のピクセル値を計算するために、コンピュータプログラムは、最初に、レイ904がルートノードに付随する画像正方形900と相互作用するかを試験する。図8の段階806及び段階812に従って、画像正方形900は、反射レイエネルギを計算する前に2つの試験に合格すべきである。画像正方形900がいずれかの試験に不合格となった場合、コンピュータプログラムは、図8の段階808及び段階814後の更に別の試験のためにレベルIのより小さなサブ正方形を選択する。このより小さなサブ正方形はやはり不合格になることから、コンピュータプログラムは、四分木906のレベルIIIまで更に下がってサブ正方形910を選択する。図9(A)及び図9(B)に示す例においては、このサブ正方形は、両方の試験に合格し、コンピュータプログラムは、修正フォン照射モデルを用いてサブ正方形910によって反射したレイエネルギを計算する。
【0084】
その後、コンピュータプログラムは、サブ正方形910の兄弟のいずれかがレイ904と相互作用するか否かを検査する。この例においては、サブ正方形911は、図9(B)の経路P1で示すように、コンピュータプログラムによって特定される。レイ経路上に他の兄弟のサブ正方形がない場合、コンピュータは、四分木906でレベルを1つ上げて、親サブ正方形の兄弟のいずれかが相互作用に適格であるかを検査する。例えば、サブ正方形916によって反射したレイエネルギを計算した後に、コンピュータプログラムは、最初に、サブ正方形916の兄弟を評価する。適合するものがないので、コンピュータプログラムは、経路P7に沿ってレベルIVまで移動し、サブ正方形916の親ノード内の兄弟間の候補を探す。コンピュータプログラムは、経路P7の第4の脚で示すように、レベルIIでの適合を見つけるまで四分木906を検索し続ける。その後、コンピュータプログラムは、レベルIIで見つかった候補に2つの試験を適用する。図9(A)及び図9(B)の例においては、それは試験のいずれにも合格せず、コンピュータプログラムは、その後、レベルIIIまで下がる。最後に、次の反射レイエネルギ計算に向けてサブ正方形917が特定される。
【0085】
図8によると、不透明性伝達関数がサブボリューム内で単調に分布していない場合(段階806)、又はサブボリュームのMEDが所定のエネルギ誤差閾値を超える場合(段階812)、サブボリュームを更にフラグメント化し、1つのこのような子サブボリュームを更に別の処理に向けて選択する。しかし、画像ボリュームを無制限にフラグメント化することは実用的ではない。第1に、フラグメント化の回数が多いほど、生成されるサブボリュームの数が多くなり、消費するコンピュータリソースが多くなり、直接ボリュームレンダリング方法が経費の掛かるものになり、かつ非効率的なものになる。第2に、上述のように、適応レイキャスティングで使用されるレイは、画像解像度を決めるある一定のレイ厚みを有する。レイ厚みよりも小さいサブボリュームの計算経費増加時の画質に対する貢献度はほとんどない。
【0086】
他方、2×2×2セルを含むサブボリュームが最小であっても、段階806及び段階812で行う2つの試験のいずれかに不合格になる可能性がある。例えば、2×2×2セルを有する最小サブボリュームが、ほとんどの医療画像ボリュームにおいて2つの試験のいずれかに合格することができることは稀である。このシナリオにおいては、最小サブボリュームを依然として均質体として処理する場合は、適応レイキャスティングに導入される誤差が多すぎる。レイの厚みは、通常は3Dセルよりも小さいことから、セル又はサブセルレベルではより正確な反射レイエネルギ推定を達成すべきである。しかし、この現象は、図8及び図9に関連して説明した本発明の原理を無効にしない。第1に、オクトリ構造により、反射レイエネルギ推定に向けたセルを正確に指摘することが容易になる。第2に、セル又はサブセルレベルで使用するアルゴリズムは、サブボリュームレベルで使用するものと酷似のものである。
【0087】
また、セル又はサブセルレベルでの反射レイエネルギの正確な推定には、セル内の不透明性伝達関数の分布及びセルの最大エネルギ差に関する情報が必要である。このような情報を3Dデータセット及び不透明性伝達関数に付随する2つのルックアップテーブルから検索することができたとしても、本発明は、最小サブボリュームレベルからセル又はサブセルレベルまでさえも情報を伝播させることによってこの情報を収集するより効率的手法を提案するものである。
【0088】
図10に示すように、VminとVmaxの間にデータ値を有する2×2×2セルを含む最小サブボリュームが与えられると、サブボリューム内の不透明性分布のほぼ3つの大きなカテゴリが存在する。
・VminとVmaxとの間で単調に変化する不透明性(図10(A))、
・VminとVmaxの間に極値を有する不透明性(図10(B))、及び
・VminとVmaxの間のデータ値Visoで不連続な不透明性(図10(C))とVminとVisoの間又はVisoとVmaxの間でゼロである不透明性。
【0089】
この最小サブボリュームが段階806及び段階812で2つの試験のいずれかに合格しなかった場合、コンピュータプログラムは、このサブボリュームからの8つのセルの1つを選択して反射レイエネルギのより正確な概算を生成する。図8に示すように、図11は、セル又はサブセルレベルで反射レイエネルギを推定する処理を示す流れ図である。より具体的には、図11は、図10に示す不透明性分布の異なるカテゴリを処理する時に本発明によって使用される異なる方法を示している。
【0090】
段階1102で、コンピュータプログラムは、最小サブボリュームを構成する8つのセルからレイ経路に沿ってレイ原点に最も近いセルを選択し、その後、段階1103で、サブボリュームのVminとVmaxの間の不透明性伝達関数の種類を推定する。サブボリュームのVminとVmaxは既にオクトリ構成中に既知であることから、段階1104で順方向ルックアップテーブル及び逆方向ルックアップテーブルを用いて、サブボリューム内の不透明性伝達関数の種類を判断することは非常に容易である。
【0091】
不透明性伝達関数がVminとVmaxの間で単調であり、すなわち、MEDが図8の段階810で最小サブボリュームが得られるように既に計算済みであることから、セルレベルで反射レイエネルギを推定する理由は、サブボリュームが段階812で試験に合格しないからである。不透明性分布は、サブボリューム内では単調であることから、サブボリュームのどのセル内でも単調である。その結果、3Dデータセット内に格納されたセルの8つのコーナでのデータ値を用いてどのセルの正確なMEDを計算する段階も飛び越すことができる。その代わりに、段階1106でサブボリュームのMEDを2で割ることにより、セルの妥当に正確なMEDを達成する。8つのセルコーナでのデータ値を用いて正確なMEDを推定する計算経費と比較すると、この手法は非常に効率的であり、反射レイエネルギ推定における近似誤差は無視することができるものである。この手法は、セル又はサブセルレベルでのMED計算に限定されるものではなく、サブボリュームレベルにも拡張することができることを当業者には更に注意されたい。
【0092】
段階1108でMEDの半値が所定のエネルギ誤差閾値よりも小さい場合、選択したセルは、段階1124で反射レイエネルギを推定する際に均質体として処理するのに十分に小さいものである。修正フォン照射モデルに従って、セル(又はサブセル)によって反射したレイエネルギ量を推定するために、以下のパラメータが利用可能であるべきである。
・セルでの一定のデータ値Vconst、
・セルでの局所データ値勾配ベクトル:
及び
・セル内のレイ経路の長さL。
【0093】
一定のデータ値Vconstを選択する時には異なる選択肢がある。一実施形態では、セルの8つのコーナでのデータ値の平均Vavgを取ることによって一定のデータ値Vconstをセルの中心のデータ値として選択する。更に別の実施形態では、一定のデータ値Vconstをセル内のレイ経路の中心のトリリニア補間データ値として選択する。図12(A)は、点Cに中心がある2Dセル1203を用いた2つの実施形態を示している。レイ1202は、点E1で2Dセル1203に入り、点E2で出て、セル内のレイ経路の中心は点C’である。第1の実施形態では、点Cでのデータ値は、反射レイエネルギ推定に使用され、点C’の補間データ値は、第2の実施形態で使用する。
【0094】
一定のデータ値Vconstの他に、別の重要なパラメータは、セルでの局所データ値勾配ベクトル:
である。一実施形態では、3つの座標x、y、及びzに対して前に明らかにしたトリリニア補間データ値V(x、y、z)の導関数を取ることによって局所勾配ベクトル:
を以下のように推定する。
【数13】
更に別の実施形態では、x、y、及びzに沿った2つの隣接セルのデータ値差を取ることによって局所勾配ベクトルを推定する。
【数14】
ただし、Δx、Δy、及びΔzは、各座標に沿ったセルのサイズを表している。図12(B)は、第2の実施形態による局所勾配ベクトルの計算の2Dバージョンを示している。
【数15】
【0095】
最後に、セルによって反射したレイエネルギ量は、セル内のレイ経路の長さに依存する。
が、一定のデータ値Vconst及び局所勾配ベクトル:
を有するセル内のレイ経路の単位長さ当たりの反射レイエネルギ量を表すとすると、反射レイエネルギ総量は、以下のように表現することができる。
【数16】
ただし、Lは、セル内のレイ経路の長さである。
【0096】
図12(C)及び図12(D)は、セル又はサブセル内のレイ経路の長さを計算する方法を示している。図12(C)に示すように、レイは、セルの1つのコーナである点Oでセルに入り、点Eでセルを出る。3つの座標x、y、及びz上のセル内のレイ経路Lの投影は、以下のように表現することができる。
【数17】
ただし、角α及びβは、図12(C)で定められている。従って、セル内のレイ経路の長さは、以下の通りである。
【数18】
又は、
【数19】
ただし、
【数20】
【0097】
図12(D)は、α及びβの関数として変動するパラメータhのグラフであり、ただし、0≦α≦π/2及び0≦β≦π/2である。本発明においては、パラメータhを予め計算してルックアップテーブル内に格納している。一組の投影(a、b、c)及びその付随する角α及びβを取得した後に、ルックアップテーブル内の対応するパラメータh及び従ってセル内のレイ経路の長さを見つけることは非常に効率的である。
【0098】
段階1108でMEDの半値が所定のエネルギ誤差閾値を依然として超える場合、コンピュータプログラムは、段階1110で、セルサブセルがレイ厚みのサイズに到達するかを検査する。上述のように、レイ厚みよりも小さいセル又はサブセルは、反射レイエネルギに対する貢献度がほとんどない。そうである場合、コンピュータプログラムは、更にセルをフラグメント化するのを止めて段階1124で反射レイエネルギを計算する。そうでなければ、段階1112でセルを8つのサブセルにフラグメント化し、各サブセル内のMEDの更なる半値が所定のエネルギ誤差閾値よりも小さいか又はサブセルがレイ厚みのサイズに到達するまで、MEDの半値を更に相応に半分にする。
【0099】
図12(E)及び図12(D)は、異なる数のサブセルにフラグメント化した後に段階1108で条件を満足した2つの2Dセルを示している。図12(E)においては、セル1205を4つのサブセルにフラグメント化し、各サブセル内のレイ経路の長さによって示すように、その中で2つのサブセル1205−1及び1205−2は、レイ1204と実質的な相互作用を行い、サブセル1205−3は、ほとんど相互作用を行わない。図12(F)においては、セル1207は、段階1108で試験に合格するために16個のサブセルにフラグメント化しなければならず、そのうちの6個(1207−1から1207−6)は、レイ1006と実質的な相互作用を行い、サブセル1207−7は、レイ1206とはほとんど相互作用を行わない。1205−3及び1207−7などのサブセルを飛び越すと、あまり多くの誤差を導入することなく反射レイエネルギを推定する際の計算経費のかなりの量の節約になる。各サブセルには一定のデータ値を割り当てる。サブセルに対して反射レイエネルギを計算する方法は、段階1110でセル1203に対して反射エネルギを計算するのに使用する方法と同じものである。
【0100】
不透明性伝達関数がサブボリューム(図10(B))のVminとVmaxの間で単調でない場合、コンピュータプログラムは、段階1102で選択したセルを段階1114で8つのサブセルにフラグメント化し、その後、段階1116でサブセルがレイ厚みのサイズに到達するかを検査する。そうである場合、コンピュータプログラムは、段階1124に移動して反射レイエネルギを計算する。そうでなければ、コンピュータプログラムは、段階1114に戻って、最小サブセルがレイ経路のサイズに到達するまで各サブセルをより小さなものにフラグメント化する。
【0101】
最小サブボリューム内の不透明性分布が単調ではない時の適応レイキャスティングの2D実施例として図12(E)及び図12(D)を再度使用する。具体的には、レイ1206の厚みW2は、レイ1204の厚みW1よりも小さいことから、セル1207は、既に4×4つまり16個のサブセルにフラグメント化されており、一方、セル1205は、2×2つまり4個のサブセルにフラグメント化されている。一実施形態では、図12(E)及び図12(D)の異なる充填パターンで示すように、サブセルの中心の補間データ値に基づいて、各サブセルに一定のデータ値を割り当てる。レイ1204の点線による中心線は、レイが2つのサブセル1205−1及び1205−2と実質的に相互作用し、その各々が一部の反射エネルギをレイ原点に反射することを示している。2つのサブセル1205−1及び1205−2からの反射レイエネルギの合計は、セル1205によって反射したレイエネルギを構成する。同様に、6つのサブセル1207−1から1207−6からの反射レイエネルギの合計は、セル1207から反射したレイエネルギを構成する。これとは対照的に、図12(E)のサブセル1205−3及び図12(F)のサブセル1207−7は、それぞれ、レイ1204及び1206とはほとんど相互作用しないことから、反射レイエネルギを推定する際には飛び越される。
【0102】
一般的に、図12(F)などのセルのより細かなフラグメント化では、通常、より正確な反射エネルギ推定が得られるが、レイとサブセルの間の相互作用の回数が2回から5回に増加することから計算経費が高くなる。コンピュータプログラムは、計算経費と画質の間の光学的均衡が得られるように、所定のエネルギ誤差閾値及びレイ厚みを調整することによってフラグメント化レベルを制御する。
【0103】
最後に、不透明性伝達関数は、不連続、例えば、VminとVmaxの間のデータ値Visoでゼロに落ちるか又はゼロからジャンプする不透明性を有することができる(図10(C))。不透明性伝達関数内に不連続を有する目的は、このような不透明性伝達関数が見る者に興味深くない画像ボリュームのある一定の部分にゼロ不透明性を持たせ、従ってレイに対して透明であるようにすることができるということである。レイは、不透明性がゼロである画像ボリューム内のいずれかの区域を通る時には、いかなるエネルギも失わない。その結果、見る者により興味深い画像ボリュームの他の区域を照明するのにより多くのレイエネルギが使用される。例えば、患者の心臓のより良い画像をもたらすためには、レイが心臓の表面に到達する前にレイエネルギ損失がないように、心臓を取り囲む組織にはゼロ不透明性を割り当てることが好ましい。
【0104】
最小サブボリュームが図10(C)に類似した不透明性伝達関数を有する時には、サブボリュームは、T(Vmin)=0又はT(Vmax)=0であることによってMEDが所定のエネルギ誤差閾値よりも大きいので、図8の段階812で試験に合格しない場合がある。関数がVminとVmaxの間で単調であったとしても、MEDを推定するのに使用する方法は、段階1106にはもはや適切ではない場合がある。すなわち、不透明性伝達関数に不連続があるために、最小サブボリュームのMEDの半値は、最小サブボリューム内のセルのMEDの妥当な推定値とはなり得ない。
【0105】
例えば、図10に示すように、セルの最小及び最大のデータ値がそれぞれV1及びV2である場合、段階1106で計算したMEDの半値は、V1及びV2に対応するO1及びO2の間の不透明性差が非常に小さいことから、V1及びV2に基づいてセルの正確なMEDよりも実質的に高くなることになる。代わりに、コンピュータプログラムは、段階1118でセルの8つのコーナでのデータ値からV1及びV2を選択する。その後、コンピュータプログラムは、段階1120でV1及びV2の間の不透明性伝達関数の種類を評価する。不透明性伝達関数がセル内で単調である場合、コンピュータプログラムは、段階1122でV1及びV2を用いてセルの正確なMEDを計算し、セルは、その後、第1のカテゴリと同じとして処理される。不透明性伝達関数が単調ではない場合、セルは、第2のカテゴリと同じとして処理される。
【0106】
上述で明らかにしたように、所定のエネルギ誤差閾値は、本発明による直接ボリュームレンダリング方法の効率及び精度に直接に影響を与える重要なパラメータである。この閾値は、セル又はサブセルが一定の不透明性値を有する均質体として処理されるために画像ボリュームをいかに小さくフラグメント化すべきであるかを実質的に判断するものである。閾値を小さくすると、結果的にレイと相互作用するより小さなサブセル数が大きくなり、それによって適応レイキャスティング当たりの計算経費が増え、閾値を大きくすると、全く反対の結果が出る。
【0107】
本発明の一実施形態では、所定のエネルギ誤差閾値は、画像間の定数ではなく、許容可能な経費で最適な画像を発生させるためにレイキャスティング間で動的に調整するものである。E0は異なる可視化パラメータを有する一連の画像に対してユーザが定めた初期エネルギ誤差閾値であると仮定して、カスタマイズされたエネルギ誤差閾値を以下のように定める。
・平行投影の場合は、E(E0,Pzoom)=E0/Sqrt(Pzoom)、ただし、Pzoomは、画像の物理的サイズを示すズーム因子であり、
・透視投影の場合は、E(E0,Pdistance)=E0*Log2(Pdistance)、ただし、Pdistanceは、レイ原点と画像ボリュームの中心との間の距離である。
【0108】
明らかに、平行投影の場合にズーム因子Pzoomを大きくすると所定のエネルギ誤差閾値は小さくなり、従って、画像ボリュームは、反射レイエネルギを推定する時にはより小さなサブボリュームにフラグメント化すべきである。その結果、画像解像度は向上し、画像上で感知されるジッター効果は小さくなる。これとは対照的に、透視投影の場合にレイ原点と画像との間の距離Pdistanceを大きくすると、画質には反対の影響を与える。
【0109】
画質の他に、使い易さは、直接ボリュームレンダリングアルゴリズムを評価する時の別の重要な要素である。例えば、画像平面を画像ボリュームに対して位置決めする時間と画像をコンピュータモニタ上でレンダリングする時間との間の時間遅延は、心血管疾患診断などの動的用途においては非常に不便なものである。このような遅延を低減して診断処理にわたってユーザにより多くの制御を与えるために、所定のエネルギ誤差閾値は、望ましい毎秒フレーム数(DFPS)と実際の毎秒フレーム数(AFPS)との間の比率によって更に修正することができる。
・平行投影の場合、E(E0,Pzoom,DFPS,AFPS)=E(E0,Pzoom)*DFPS/AFPS、及び
・透視投影の場合、E(E0,Pdistance,DFPS,AFPS)=E(E0,Pdistance)*DFPS/AFPS
【0110】
その名称が示すように、DFPSは、ユーザが好む画像レンダリング速度であり、AFPSは、以下に限定されるものではないが、コンピュータハードウエア、画像平面上のピクセル数、及び画像ボリューム、並びにデフォルト画像解像度を含むシステム設定によって限定されるものである。従って、好ましい画像レンダリング速度がシステム設定によって提供されたものよりも高い、つまり、DFPSがAFPSよりも高い場合、所定のエネルギ誤差閾値は、相応に大きくなる。この場合、ユーザが好む画像レンダリング速度を達成するために画質を若干犠牲にすることは許容可能である。他方、好ましい画像レンダリング速度がシステム設定で到達することができるものより低い、つまり、DFPSがAFPSよりも低い場合、所定のエネルギ誤差閾値は、ユーザが定めた速度でより品質が高い画像を発生させるように相応に小さくなる。
【0111】
2D画像推定
各レイに対して、3D適応レイキャスティングでは、一連のサブボリュームから2D画像平面上の特定の位置に向けて反射したレイエネルギを推定する。一実施形態では、特定の位置は、レイ原点になるように選択される。各レイ原点での反射レイエネルギを合計し、その後、ピクセル値に変換する。3D適応レイキャスティングは、相対的に高価である作業であることから、本発明による直接ボリュームレンダリングアルゴリズムの効率は、2D画像を発生させるように投射すべきであるレイの数に依存する。図13(A)は、2D画像推定が、画質に及ぼす影響が知覚できないものではないにしても無視可能であるようにレイキャスティングの回数を低減するような最適な方法で適応レイキャスティング処理を誘導する、好ましい実施形態、例えば、コンピュータプログラムを示している。
【0112】
段階1302で、コンピュータプログラムは、図1(A)及び図1(B)に示すように、3Dデータセットからある一定の距離を隔てて、かつ3Dデータセットからある一定の方向に向けられた2D画像平面を定める。画像平面は、通常はN×N個の要素を含む2Dアレイによって表され、2Dアレイの各要素は、画像平面上の対応する位置の1つのピクセル値を格納する。従って、平面上に発生した画像は、N×N個のピクセル、例えば、512×512個のピクセルを有する。
【0113】
段階1304で、コンピュータプログラムは、画像平面を同じサイズの複数のサブ平面に細分化し、各サブ平面は、2Dアレイ内の1つの部分に対応する。一実施形態では、512×512個のピクセルを含む画像平面を32×32(=1024)個のサブ平面に細分化し、各サブ平面は、16×16個のピクセルを含む。サブ平面のサイズは、隣接するサブ平面の間にかなりの程度のピクセル値変動があるという仮定で選択される。
【0114】
段階1306で、前の段階で発生した各サブ平面に対して、コンピュータプログラムは、サブ平面の4つのコーナからの4つのレイを各コーナに1つ3Dデータセットに投射し、適応レイキャスティングを用いて4つのコーナの4つのピクセル値を計算する。
【0115】
段階1307から始めて2Dアレイ内の全ての要素をピクセル値と関連付けるために、各サブ平面を再帰的に処理する。この再帰的処理の終わりには、3Dデータセットの2D画像が2Dアレイ内に発生している。より具体的には、1つのサブ平面を選択し、段階1307でレイをサブ平面の中心から3Dデータセットに向けて反射させ、これによって中心にピクセル値が生成され、また、サブ平面が4つのより小さな子サブ平面に細分化される。例えば、選択したサブ平面が16×16個のピクセルを有する場合、各子サブ平面は、8×8個のピクセルを有する。
【0116】
段階1308で、コンピュータプログラムは、親サブ平面上の全てのピクセルが補間又はレイキャスティングによって固有のピクセル値を有するように全ての4つの子サブ平面が処理されているかを検査する。そうである場合、コンピュータプログラムは、更に、段階1312で処理されていない親サブ平面で段階1304で発生したものがあるかを検査する。段階1312での結果が偽の場合、2Dアレイ内の全ての要素にはピクセル値が割り当てられており、グラフィック表示装置、例えば、コンピュータモニタ上でのレンダリングに対して準備完了である2D画像がアレイ内に形成されていることを意味する。段階1312からの結果が真の場合、コンピュータプログラムは、段階1307に戻って段階1304で発生した次のサブ平面を処理し始める。
【0117】
段階1308からの結果が偽の場合、コンピュータプログラムは、1つの未処理子サブ平面を選択して子サブ平面の他のコーナでピクセル値を計算する。図13(B)は、段階1307及び段階1310で行う作業を示す例である。サブ平面1340は、16×16個のピクセルを含み、ピクセル値P1からP4をサブ平面の4つのコーナのピクセルと関連付ける。段階1307で、新たなレイをサブ平面の中心から投射すると、新しいピクセル値P5が発生し、かつ、サブ平面1340は、4つの子サブ平面1349から1348に細分化される。段階1310で、コンピュータプログラムは、1つの子サブ平面、例えば、1344を選択し、サブ平面の他の3つのコーナから3つのレイを反射させると、更に3つのピクセル値P6からP8が発生する。
【0118】
段階1314で、コンピュータプログラムは、子サブ平面内のピクセル数が2×2(=4)個であるか否かを検査する。ピクセル数が4である場合、段階1310でピクセル値なし状態のピクセルはないので、コンピュータプログラムは、段階1308に戻って次の子サブ平面があれば処理する。
【0119】
ピクセル数が4ではない、例えば、サブ平面1344が8×8個のピクセルを有する場合、段階1316で、コンピュータプログラムは、この子サブ平面の最大ピクセル値変動(MPVV)を計算する。その名称が示すように、MPVVは、子サブ平面内のピクセル値分布を測るものである。一実施形態では、MPVVは、以下のように定められる。
【数21】
ただし、Sは、サブ平面内のピクセル総数であり、P1からP4は、サブ平面のコーナのピクセル値であり、Pavgは、以下のようにP1からP4の平均である。
【数22】
【0120】
段階1317で、コンピュータプログラムは、本発明における画像解像度及び画像レンダリング速度に実質的に影響を及ぼす重要なパラメータである所定の画像化誤差閾値を修正する。例えば、所定の画像化誤差閾値を小さくすると、段階1320で子サブ平面1344はより小さな子サブ平面にフラグメント化される。これに応答して、コンピュータプログラムが各子サブ平面の中心で行う適応レイキャスティングの回数が多くなる。この結果、適応レイキャスティングによって発生したピクセル値がバイリニア補間によって発生したものよりも正確であるために、内部構造の縁部に対応する子サブ平面1344内の画像、例えば、医療画像内の骨の解像度が高くなる。他方、適応レイキャスティングは、バイリニア補間よりも遥かに経費の掛かる作業である。所定の画像化誤差閾値の修正に関するより詳細は、図14(A)から図14(C)に関連して以下に示している。
【0121】
段階1318では、子サブ平面1344のMPVVを段階1317で修正した所定の画像化誤差閾値と比較する。子サブ平面1344のMPVVが所定の画像化誤差閾値を超える場合、段階1320で新しいレイをこの子サブ平面の中心から放出し、これによって新しいピクセル値P9が発生する。その後、子サブ平面1344を4つのより小さな子サブ平面に細分化し、各サブ平面は、4×4個のピクセルのみを含む。
【0122】
段階1318で子サブ平面1344のMPVVが所定の画像化誤差閾値よりも小さい場合、子サブ平面内のピクセル値変動を補間によって概算することができる。一実施形態では、サブ平面内のピクセル値分布をサブ平面のコーナの4つのピクセル値のバイリニア補間によって概算する。図13(C)に示すように、どの位置(x、y)のピクセル値P(x、y)も以下のようにバイリニア補間することができる。
【数23】
【0123】
段階1320又は段階1322の後に、コンピュータプログラムは、段階1308に戻って次の子サブ平面があれば処理する。この処理は、2Dアレイ内の全ての要素が3D適応レイキャスティング又はレイキャスティング結果のバイリニア補間のいずれかを通じて作成された画像平面上の1つの位置に対応するピクセル値を格納するまで続く。最後に、コンピュータモニタなどのグラフィック表示装置上にレンダリングすることができる3Dデータセットの2D画像が作り出される。
【0124】
上述のように、所定の画像化誤差閾値を使用して本発明の画像解像度及び画像レンダリング速度を調整することができる。具体的には、2D画像の異なる部分の異なる画像解像度要件に対応するように、所定の画像化誤差閾値をサブ平面間で動的に調整する。例えば、サブ平面がオブジェクトの縁部などの複雑な内部構造又は高周波画像成分を含まない場合、所定の画像化誤差閾値は、比較的高いマグニチュードに設定され、その逆も可能である。一実施形態では、画質と画像レンダリング速度との均衡が得られるように、所定の画像化誤差閾値を調整する時に3つの方法を使用する。図13(A)の段階1317で示すように、それらは以下のものである。
・シェーディング縁部検出、
・バイリニア補間誤差分析、及び
・オクトリ横縁部検出。
【0125】
一般的に、人間の目は高周波成分に対して敏感であるから、画像の解像度は、高周波成分、例えば、オブジェクトの縁部により多く依存する。しかし、バイリニア補間は、たとえ効率的であっても、本質的にローパスフィルタであるために画像の高周波成分を不鮮明にする傾向がある。従って、本発明では、適応レイキャスティングを使用して、必要な時にいつでも画像化誤差閾値を小さくすることによってピクセル値を推定する。そうするために、コンピュータプログラムは、縁部を含むか又はそれに接近するサブ平面を処理することになることを予め知る必要がある。シェーディング縁部検出は、このような目的で設計された方法である。
【0126】
図14(A)は、2D実施例を用いたシェーディング縁部検出の原理を示している。複数のレイ1410を画像線1420から画像ボリューム内に埋められた2Dオブジェクトに向けて放出させた時、その一部、例えばレイ1410−3は、オブジェクトの中央区域と相互作用し、その一部、例えばレイ1410−1は、オブジェクトの縁部と相互作用する。上述のように、異なるレイ経路に対応するオブジェクトの局所勾配ベクトルは、矢印1440−1及び1440−3のような反射レイエネルギを推定するために既に計算されている。
【0127】
その後、コンピュータプログラムは、各局所勾配ベクトルを対応するレイ経路上に投影し、投影勾配ベクトルの長さ、つまり、勾配ベクトルとレイ経路の間の角度の余弦値は、レイがオブジェクトの縁部に接近するか否かを示している。例えば、矢印1450−1のようなより小さな余弦値は、レイ1410−1がオブジェクト1430の左縁部に非常に近いことを示しており、この区域のピクセル値は、バイリニア補間ではなく、適応レイキャスティングを通じて推定すべきであることを示唆している。これに応答して、コンピュータプログラムは、段階1318での条件を満足するためにレイ1410−1の原点近くのサブ平面をより小さな子サブ平面に細分化すべきであるように、所定の画像化誤差閾値を小さくする。
【0128】
これとは対照的に、矢印1450−3のようなより大きな余弦値は、レイ1410−3の原点近くの画像変動が小さく、また、バイリニア補間によるピクセル値が十分に正確であることを示唆している。その結果、その区域内の所定の画像化誤差閾値は、小さくなる必要がないか又は大きくなることさえできる。画像化誤差閾値のこのような適応配置により、確実に必要な場合にのみ高価である適応レイキャスティング作業が行われ、また、画像解像度の損失がほとんどなくコンピュータリソースの使用量が少なくなる。
【0129】
ピクセル値のレイキャスティングバージョンの方が正確であるにしても、それは、対応する補間バージョンを無用にするものではない。実際には、2つのバージョンの差又はバイリニア補間誤差は、画像化誤差閾値を異なるサブ平面に適応させる方法に関する重要な指示の役目を果たすものである。図14(B)に示すように、サブ平面1460は、4つのコーナに4つの既知のピクセル値P1からP4を有する。サブ平面1460の中心にあるバイリニア補間ピクセル値P5'は以下のように定められる。
【数24】
【0130】
一方、サブ平面1460を4つのより小さなサブ平面に細分化した時にピクセル値P5も適応レイキャスティングで発生し、2つのピクセル値の間の絶対差|P5−P5'|は、バイリニア補間の結果がこのサブ平面1460内でいかに正確であるかを示すものであると仮定する。例えば、より大きな絶対差は、サブ平面を更にフラグメント化する必要があるということを意味するばかりでなく、サブ平面460内に実質的なピクセル値変動がある可能性があることも示唆している。これに対応して、コンピュータプログラムは、サブ平面上の画像ボリューム内の内部構造の3D特性を完全に捕捉するように大幅に画像化誤差閾値を小さくすることができる。他方、画像レンダリング速度を向上させるが画像解像度をあまり多く損失しないように、より小さな絶対差に応答して所定の画像化誤差閾値を大きくすることができる。
【0131】
オクトリ横縁部検出とは、反射レイエネルギを推定するために選択したサブボリューム、セル、又はサブセルと、画像ボリューム内に埋められたより小さな3Dオブジェクト又は3Dオブジェクトの鋭い縁部を捕捉するための画像平面との間のサイズ差を検査することによって画像化誤差閾値を調整する方法を意味する。図14(C)の例においては、2Dデータセット1480は、少なくとも2つのオブジェクト1482及び1484を含み、2Dデータセットの長さはDである。データセット1480の内側には、画像平面1470があり、画像平面1470の長さはLである。反射レイエネルギ推定に寄与する異なるサイズの一連のサブボリュームがレイ経路1472に沿って存在する。拡大ビュー1490は、オブジェクト1482内のこれらのサブボリュームの一部の詳細を示している。データセットの最大フラグメント化レベルがQである仮定すると、小さなオブジェクト又はレイ経路近くのオブジェクトの鋭い縁部の存在を示すパラメータZが以下のように定められる。
【数25】
【0132】
正のZは、拡大ビュー1490内にオブジェクト1482の鋭い縁部を含む小さなブロックのような、レイと相互作用するいくつかの非常に小さいサブボリュームがレイ経路1472に沿って存在することを意味する。すなわち、正のZは、レイ経路1472の原点近くの画像平面1470上の所定の画像化誤差閾値が小さなオブジェクト又は鋭い縁部を見失わないように小さくなるべきであることを示唆している。
【0133】
最後に、所定のエネルギ誤差閾値と類似である所定の画像化誤差閾値も、望ましい毎秒フレーム数と実際の毎秒フレーム数との比率に従って調整することができる。比率が1よりも大きいと、レンダリングする必要がある画像フレーム数は、システムのデフォルトレンダリング能力よりも多くなる。その結果、所定の画像化誤差閾値は大きくなり、各画像フレームに対して割り当てられるシステムリソースは少なくなる。比率が1よりも小さいと、レンダリングする必要がある画像フレーム数は、システムのデフォルトレンダリング能力よりも少なくて済む。従って、所定の画像化誤差閾値は小さくなり、各画像フレームに対して割り当てられるシステムリソースは多くなる。
【0134】
上述の適応直接ボリュームレンダリング方法は、一般的なコンピュータシステム内で実施することができ、特別なハードウエアサポートは不要である。図15は、本発明によるこのようなシステム1500を示している。適応直接ボリュームレンダリングシステム1500は、一般的に、1つ又はそれよりも多くの中央演算処理装置(CPU)1502、メモリ1514、及びシステム1500の様々な構成要素を相互接続する1つ又はそれよりも多くの通信バス1512を含む。また、適応直接ボリュームレンダリングシステム1500は、例えば、3Dデータセットの2D画像を表示する表示装置及びユーザの画像レンダリング要求を受け取るためのキーボード1508を含むユーザインタフェース1504を含む。システム1500は、任意的に、3Dデータセットを遠隔記憶装置から検索するか又はレンダリング結果を遠隔地のクライアントに送信するネットワーク又は他の通信インタフェースを含むことができる。
【0135】
メモリ1514は、高速ランダムアクセスメモリを含み、1つ又はそれよりも多くの磁気ディスク記憶装置のような不揮発性メモリ(図示せず)も含むことができる。また、メモリ1514は、中央演算処理装置1502から遠隔に位置する大容量記憶装置を含むことができる。メモリは、以下を格納することが好ましい。
・様々な基本的なシステムサービスを処理し、かつハードウエア依存タスクを実行するための手順を含むオペレーティングシステム1516、
・「インターネット」、他の広域ネットワーク、ローカルエリアネットワーク、及びメトロポリタンエリアネットワークなどのような1つ又はそれよりも多くの通信ネットワーク(有線又は無線)を通じて、システム1500を様々なセキュリティ装置又はクライアントコンピュータ(図示せず)及び場合によっては他のサーバ又はコンピュータに接続するのに使用されるネットワーク通信モジュール1518、
・システム1500の作動に必要とされるメモリ1514に記憶された他のモジュール及びデータ構造を初期化するシステム初期化モジュール1520、
・3Dデータセットの2D画像を発生させて表示装置1506上でレンダリングする適応ボリュームレンダリングエンジンモジュール1522、
・3Dデータセット、及びフラグメント化した3Dデータセットを表す対応するオクトリ構造、
・2D画像データセット、及びフラグメント化した2D画像を表す対応する四分木構造、及び
・3Dデータセット内の各要素の不透明性値を判断する不透明性伝達関数表。
【0136】
直接ボリュームレンダリングエンジンモジュール1522は、実行可能な手順、サブ手順、及び以下のような適応ボリュームレンダリング処理をサポートする他のデータ構造を含む。
・3Dデータセットを複数のサブボリュームにフラグメント化し、各サブボリュームに対して一組のデータ値パラメータを計算し、オクトリ構造を構成し、各サブボリュームをオクトリ上の1つのノードに関連付ける3Dデータセットフラグメント化モジュール1524、
・所定のエネルギ誤差閾値に基づいてレイと相互作用する一連のサブボリュームを選択し、その後、修正フォン照射モデルを用いて各サブボリュームによって反射レイエネルギを推定する3D適応レイキャスティングモジュール1526、及び
・3D適応レイキャスティングモジュールを選択的に呼び出し、適応レイキャスティングによって推定したピクセル値に対して四分木構造を構成し、2D画像平面上のレイ原点でピクセル値を補間することによって3Dデータセットの2D画像を構成する2D画像レンダリングモジュール1528。
【0137】
レイと相互作用することができるサブボリュームの位置を迅速に見つけるために、不透明性伝達関数表1544は、以下を含むことが好ましい。
・任意のデータ値と不透明性が極値になる任意のデータ値よりも高い指定のデータ値との間のデータ値差を格納する順方向ルックアップテーブル1546、及び
・任意のデータ値と不透明性が極値になる任意のデータ値よりも低い指定のデータ値との間のデータ値差を格納する逆方向ルックアップテーブル1548。
【0138】
図13(A)に示すように、2D画像推定中に、システム1500は、最初に画像平面を複数のサブ平面に細分化し、その後、各サブ平面を順次処理し、バイリニア補間又は必要であれば適応レイキャスティングを通じて、サブ平面上の全てのピクセルがピクセル値と関連付けられる。最後に、システム1500は、異なるサブ平面に付随するピクセル値を単一の2D画像に組み立て、コンピュータモニタ上でそれをレンダリングする。1つのサブ平面の処理結果は、別のサブ平面のものとは独立したものであるから、適応直接ボリュームレンダリングアルゴリズムは、実際には、パラレルコンピュータ又はコンピュータクラスター上で実行することができるパラレルアルゴリズムである。
【0139】
図16は、コンピュータクラスター1600を使用する本発明の一実施形態を示している。クラスター1600は、以下を含む。
・1つ又はそれよりも多くの画像ボリュームを格納するデータ記憶装置1610、例えばハードディスク、
・各サーバが好ましくは1つ又はそれよりも多くのCPUと直接ボリュームレンダリングソフトウエアを格納する独自のメモリとを有する複数のコンピュータサーバ1630、
・クラスターによって発生した画像を表示するコンピュータモニタ1650、
・指令及びレンダリングパラメータをユーザから受け取るキーボード1670及びマウス1690、及び
・様々な構成要素を接続する通信バス1620。
【0140】
例示的に、クラスター1600内には4つのサーバがあり、各サーバは、部分画像1640によって示すように、最終画像の1/4を発生させることを担っている。各サーバ内では、サーバ当たりに1つよりも多いCPUがある場合は、異なるCPU間でジョブを更に仕切ることができる。全ての部分画像1640が発生した後に、サーバの1つは、部分画像1640を完全な画像に組み立て、モニタ1650上でそれをレンダリングする。
【実施例】
【0141】
図17から図20は、異なる産業上の用途に即した本発明の使用例を示している。図17A及び図17Bは、CTスキャンで生成した医療画像ボリュームから発生した2つの画像である。画像1710は、異なる骨及び器官並びに人体内での相対的位置を示している。画像1720は、特定の骨に関するかなりの詳細を明らかにしている。
【0142】
図18は、異なる位置かつ異なる可視化パラメータ、例えば、不透明性伝達関数を用いて同じ画像から発生した人体の3つの画像を示している。画像1810を発生させる時に、かなりの量のレイエネルギが人体の皮膚から反射されるように可視化パラメータを選択する。その結果、内臓及び人体の輪郭の両方を画像内で見ることができる。これとは対照的に、結腸を残して肉体組織及び内臓の大部分は画像1820から除去されており、これは、通常のX線写真と類似ものであるがそれよりも精巧である。画像1820のような画像を発生させる利点は、医師が患者に不便さを引き起こすことなく、画像1830内に示すような仮想結腸鏡検査を行うことができるという点である。
【0143】
図19は、エンジンの異なる部分を示している。画像1910及び1920は、発生位置は同じであるが、可視化パラメータが僅かに異なっている。その結果、画像1920のエンジンは、画像1920よりも透明に見える。この差は、拡大画像1930及び1940間でより明白である。最後に、図20は、エンジンの異なる構成要素を示す一組の画像である。
【0144】
以上の説明は、説明を目的として特定的な実施形態を参照して行ったものである。しかし、上述の例示的な説明は、網羅的であること又は開示した正確な形態に本発明を限定することを意図していない。多くの修正及び変形が以上の教示の見地から可能である。実施形態は、本発明の原理及びその実際的な用途を最も良く説明し、それによって当業者が予想される特定の使用に適するような様々な修正を用いて本発明及び様々な実施形態を最も良く利用することができるように選んで説明したものである。
【図面の簡単な説明】
【0145】
【図1(A)】本発明の実施形態による直接ボリュームレンダリングの基本原理を理解する際に有用な概略図である。
【図1(B)】本発明の実施形態による直接ボリュームレンダリングの基本原理を理解する際に有用な概略図である。
【図1(C)】異なる画像解像度の3Dオブジェクトの3つの画像を示す図である。
【図1(D)】3D採取データセットの形で表された3Dオブジェクトを示す図である。
【図2】本発明の一実施形態による直接ボリュームレンダリングアルゴリズムを示す流れ図である。
【図3(A)】3Dデータセットフラグメント化の1つの特定的な実施形態を示す図である。
【図3(B)】8つのセル又はボクセル含むサブボリュームと、ボクセル又はセル内のスカラー場分布とを示す図である。
【図4】3Dデータセットフラグメント化のコンピュータ実装を示す流れ図である。
【図5(A)】直接ボリュームレンダリングで使用される不透明性伝達関数を示す図である。
【図5(B)】不透明性伝達関数に付随する2つのルックアップテーブル、すなわち、順方向ルックアップテーブル及び逆方向ルックアップテーブルを示す図である。
【図6】レイと一連のサブボリュームとの間の相互作用によるレイエネルギ損失を示す図である。
【図7(A)】フォン照射モデルによる3つの形式の反射の1つである周囲反射を示す図である。
【図7(B)】フォン照射モデルによる3つの形式の反射の1つである拡散反射を示す図である。
【図7(C)】フォン照射モデルによる3つの形式の反射の1つである鏡面反射を示す図である。
【図8】本発明の実施形態による反射レイエネルギを推定するためのコンピュータプログラムを示す流れ図である。
【図9(A)】本発明による適応レイキャスティングの重要な特徴を示す単純な2D実施例の一方を示す図である。
【図9(B)】本発明による適応レイキャスティングの重要な特徴を示す単純な2D実施例の他方を示す図である。
【図10(A)】サブボリューム内の不透明性分布の3つのカテゴリの1つを示す図である。
【図10(B)】サブボリューム内の不透明性分布の3つのカテゴリの1つを示す図である。
【図10(C)】サブボリューム内の不透明性分布の3つのカテゴリの1つを示す図である。
【図11】セル又はサブセルレベルでの反射レイエネルギ推定の異なる手法を示す流れ図である。
【図12(A)】セル又はサブセルレベルでの反射レイエネルギ推定の異なる手法を示す2D実施例を示す図である。
【図12(B)】セル又はサブセルレベルでの反射レイエネルギ推定の異なる手法を示す2D実施例を示す図である。
【図12(C)】セル又はサブセル内のレイ経路の長さを計算する方法を示す図である。
【図12(D)】セル又はサブセル内のレイ経路の長さを計算する方法を示す図である。
【図12(E)】異なるサブセル数にフラグメント化された2Dセルを示す図である。
【図12(F)】異なるサブセル数にフラグメント化された2Dセルを示す図である。
【図13(A)】本発明による2D画像推定を示す流れ図である。
【図13(B)】本発明によるサブ平面内の2D画像推定の例を示す図である。
【図13(C)】ピクセル値のバイリニア補間の例を示す図である。
【図14(A)】所定の画像化誤差閾値を修正する3つの1つの方法を示す図である。
【図14(B)】所定の画像化誤差閾値を修正する3つの1つの方法を示す図である。
【図14(C)】所定の画像化誤差閾値を修正する3つの1つの方法を示す図である。
【図15】本発明による適応画像ボリュームレンダリングシステムのブロック図である。
【図16】本発明によりコンピュータクラスターに実装された適応画像ボリュームレンダリングシステムのブロック図である。
【図17】医療画像ボリュームの適応直接ボリュームレンダリングを通じて人体の異なる部分の2つの画像を示す図である。
【図18】適応直接ボリュームレンダリングシステムが異なる可視化パラメータ、例えば、異なる不透明性伝達関数を使用する時に同じ医療画像ボリュームの異なる3D特性を有する3つの画像を示す図である。
【図19】システムが異なる不透明性可視化パラメータ、例えば、異なる不透明性伝達関数を使用する時の自動車エンジンの4つの画像を示す図である。
【図20】自動車エンジンの異なる部分の別の4つの画像を示す図である。
【符号の説明】
【0146】
101 2D画像平面
102 放射面
104 レイ
106 画像ボリューム
【技術分野】
【0001】
本発明は、一般的に、ボリュームデータレンダリングの分野に関するものであり、より詳細には、適応データ表現、レイキャスティング、及びデータ補間技術を用いてボリュームデータセットをレンダリングする方法及びシステムに関する。
【背景技術】
【0002】
3Dオブジェクト及び2D画像の内部構造の可視化は、コンピュータグラフィックの分野内の重要な話題であり、医学、地球科学、製造、及び薬物発見を含む多くの産業に応用されている。
【0003】
例えば、CTスキャナは、異なる器官、例えば心臓を含む患者の身体の数百又は数千の平行2D画像スライスを生成することができ、各スライスは、データ値の2Dアレイを含み、各データ値は、特定の部位での身体のスカラー属性、例えば密度を表している。全てのスライスを互いに積み重ねて、心臓が埋め込まれた患者の身体の画像ボリューム又はボリュームデータセットを形成する。心臓の3D構造特性を示す2D画像は、心血管疾患の診断における重要な助けになる。
【0004】
別の例として、石油業界では、地震学的撮像技術を用いて地球内の3D領域の3D画像ボリュームを作り出している。断層又は岩塩ドームのような一部の重要な地質構造は、その領域内に埋め込まれている場合があり、必ずしも領域の表面上とは限らない。同様に、これらの構造の3D特性を完全に示す2D画像は、石油生産を増す上で極めて重要である。
【0005】
直接ボリュームレンダリングは3D画像ボリュームによって表された中実領域の内部を2D画像平面上、例えばコンピュータモニタ上に可視化するために開発された技術である。一般的に、画像ボリューム内のいずれの点のスカラー属性又はボクセも、一組のルックアップテーブルによって定義することができる色又は不透明性のような複数の光学特性と関連付けられる。2D画像平面は、各々が赤色、緑色、及び青色成分を有する画素つまりピクセルの規則的に離間したグリッドから成っている。複数のレイが2D画像平面からボリュームの中に投射され、それらは、そのボリュームによって減衰又は反射される。各レイの減衰又は反射レイエネルギの量は、画像ボリューム内に埋められたオブジェクトの3D特性、例えば、それらの形状及び向きを示し、更に、対応するレイ経路に沿ったボリュームの不透明性及び色マッピングに従って2D画像平面上のピクセル値を判断する。2D画像平面上の複数のレイ原点に付随するピクセル値により、コンピュータモニタ上でレンダリングすることができる画像が形成される。直接ボリュームレンダリングのより詳細な説明は、Foley、Van Dam、Feiner、及びHughes共著「コンピュータグラフィックの原理と実施」、第2版、「Addison−Wesley Publishing Company」(1996年)、1134頁から1139頁で説明されている。
【0006】
上述のCTの例に戻ると、医師がいずれかの方向に画像ボリュームを遮ることによって心臓の2D画像スライスを任意に作り出すことができるとしても、どの単一の画像スライスも心臓の表面全体を可視化することはできない。これとは対照的に、CT画像ボリュームの直接ボリュームレンダリングを通じて作り出した2D画像は、心臓の3D特性を容易に示すことができ、これは、多くの種類の心血管疾患診断において非常に重要である。同様に、石油探査においては、3D地震データの直接ボリュームレンダリングは、石油技術者が潜在的な油田である領域に埋め込まれた地質構造の3D特性をより正確に判断して石油生産を大幅に増すことを助けることができる強力なツールであることが証明されている。
【0007】
直接ボリュームレンダリングは、多くの重要な分野で重要な役割を果たすとしても、直接ボリュームレンダリング技術の幅広い展開を保証するために克服する必要があるいくつかの技術的課題が存在する。第1に、直接ボリュームレンダリングは、計算的に高価な処理である。3Dターゲットの3D特性を捕捉することができる高品質2D画像を生成するためには、直接ボリュームレンダリングでは、大きな3Dデータセットを処理する必要があり、これは、通常は多数の計算を意味する。例えば、5123ボクセルの一般的な3Dデータセットに対して、従来の直接ボリュームレンダリングアルゴリズムを用いて5122ピクセルの2D画像を生成するのに少なくとも1億4000万回の計算が必要である。
【0008】
更に、多くの用途では、各2D画像が異なる視角又は可視化パラグラフを有する3Dデータセットの連続2D画像をユーザが大きな遅延なく見ることができるように、3Dデータセットの直接ボリュームレンダリングは、リアルタイムで作動することが要求される。医療用撮像においては、毎秒少なくとも6フレームの連続2D画像レンダリングがリアルタイム対話式フィードバックに対する必要性を満たすことが一般的に受け入れられている。これは、毎秒ほほ10億回の計算と同等である。
【0009】
最新コンピュータの限定された計算能力に鑑みて、直接ボリュームレンダリングの計算コストを低減するためにより効率的なアルゴリズムが開発されてきた。しかし、これらのアルゴリズムの多くは、作り出された2D画像の品質を犠牲にしてその効率を達成している。例えば、連続オブジェクトの個別の表現に関する一般的な問題は、ジッター効果であり、これは、ユーザが連続オブジェクトの更に詳細を見るために拡大した時に最も明白である。ジッター効果が慎重に制御されなかった場合、それは、直接ボリュームレンダリングアルゴリズムによって作り出された画像の品質を大幅に損なう場合がある。
【0010】
従って、レンダリング効率を増し、同時に画質品質に及ぼす影響がより小さいか又は好ましくは感知できない新しい直接ボリュームレンダリング方法及びシステムを開発することが望ましいと考えられる。
【0011】
【非特許文献1】Foley、Van Dam、Feiner、及びHughes共著「コンピュータグラフィックの原理と実施」、第2版、「Addison−Wesley Publishing Company」(1996年)、1134頁から1139頁
【発明の開示】
【0012】
本発明の好ましい実施形態は、適応データ表現技術、レイキャスティング技術、及びデータ補間技術を用いて3Dデータセットによって表された3Dオブジェクトの高品質2D画像を発生させる適応直接ボリュームレンダリング方法及びシステムである。
【0013】
本方法及びシステムは、最初に、3Dデータセットを異なるサイズの複数のサブボリュームにフラグメント化してデータ構造、例えばオクトリを構成し、オクトリのノードをデータセットの異なるサブボリュームに関連付け、各サブボリュームはまた、サブボリューム内のデータ値分布を特徴付ける一組のデータ値パラメータを有する。
【0014】
本方法及びシステムは、次に、複数のレイを2D放射面から3Dデータセットに向けて投射する。一般的に平行投影と称する一実施形態では、複数のレイは、互いに平行であり、各レイは、その固有の原点を有する。一般的に透視投影と称する別の実施形態では、複数のレイは、全てが同じ原点から放出され、各レイは、3Dデータセットに対して固有の放出角を形成する。ある一定の初期エネルギを運び、かつある一定の断面又はレイ厚みを有する各レイは、その経路に沿って3Dデータセット内の一連のサブボリュームと相互作用する。
【0015】
レイとサブボリュームの間の各相互作用に対して、レイが所定の不透明性伝達関数に従ってその初期エネルギの一部分を損失する計算が行われる。レイキャスティング処理は、レイの残留エネルギが所定の残留エネルギ閾値よりも小さいか又はレイがデータセットを出るまで、レイ経路上の連続的なサブボリュームを通じて続行される。損失レイエネルギの一部は、所定の照射モデルに従って2D画像平面に向けて反射される。異なるサブボリュームによって反射されたレイエネルギは、2D画像平面の選択された位置に蓄積され、データセットに埋められた3Dオブジェクトの画像が生成される。
【0016】
レイキャスティングの計算経費を低減するために、本方法及びシステムは、常に、レイと相互作用するためのある一定の所定の条件を満たす最大サイズのサブボリュームを選択しようとする。重要な条件の1つは、不透明性伝達関数がレイと相互作用するサブボリューム内で単調に変化することを要求する。一実施形態では、オクトリのルートノードに付随する画像ボリューム全体が、レイと相互作用するために選択される。不透明性伝達関数は、画像ボリューム全体内で単調に変化することは稀であるから、画像ボリュームは、より小さなサブボリュームにフラグメント化され、レイ経路に沿ってレイ原点に最も近く、かつルートノードの子ノードに付随するより小さなサブボリュームの1つが次に試験され、所定の条件を満足するかが判断される。このフラグメント化及び試験処理は、全ての条件を満足するサブボリュームが見つかるまで再帰的に続行される。
【0017】
サブボリューム内の不透明性伝達関数分布を迅速に判断するために、2つの予め構成したルックアップテーブル、つまり、順方向ルックアップテーブルと逆方向ルックアップテーブルが、不透明性伝達関数の複数の極値に関連して作り出される。具体的には、順方向ルックアップテーブルの各エントリは、増加方向に沿った最も近くの極値に対するデータ値からの差を含み、逆方向ルックアップテーブルの各エントリは、減少方向に沿った最も近くの極値に対するデータ値からの差を含む。
【0018】
レイと相互作用するためのサブボリュームを最終的に選択した状態で、反射レイエネルギ量を計算するために修正フォン照射モデルを使用する。修正フォン照射モデルによると、サブボリュームは、一定の不透明性を有する均質体として処理される。更に、サブボリューム内のデータ値分布の勾配が推定され、サブボリューム内の反射面の方向を表す。勾配は、レイとの入射角を形成する。この情報に基づいて、修正フォン照射モデルに従って反射レイエネルギを計算することは容易である。
【0019】
一実施形態では、2D放射面は、2D画像平面と部分的に重複し、選択された位置は、複数のレイの原点である。この場合、修正フォン照射モデルを用いた反射レイエネルギの計算は、入射角と反射角は同じであることから更に簡単である。その結果、各レイ経路に沿って一連のサブボリュームによって反射したレイエネルギは、2D放射面上のレイ原点でのピクセル値として集められる。
【0020】
直接ボリュームレンダリングアルゴリズムの計算経費及び画像解像度は、主としてレイの数によって判断される。最新のコンピュータハードウエアで妥当な期間内に処理することができる限定された数のレイに鑑みて、本方法及びシステムは、2D放射面上のレイ原点を、2D画像平面上のそれらのレイに付随するピクセル値がデータセットに埋め込まれた3Dオブジェクトの重要な3D特性を有効に捕捉することができるように最適化する。
【0021】
一実施形態では、4つのレイが、最初に2D放射面の4つのコーナから放出される。2D画像平面の4つのコーナでの4つピクセル値を取得した後に、本方法及びシステムは、所定の画像化誤差閾値に照らしてそれらの値の変動を検査する。変動が閾値を超える場合、更に1つのレイを放射面の中心から放出し、それによって2D放射面及び2D画像平面をそれぞれ4つのサブ平面に分割する。各サブ平面内のピクセル値の変動は、所定の画像化誤差閾値に照らして更に検査される。変動が閾値を超えるあらゆるサブ平面は、どのサブ平面の変動も閾値よりも小さくなるまで更に再帰的に分割される。
【0022】
最後に、本方法及びシステムは、画像平面上の周囲ピクセル値に基づいて、レイ原点ではない2D画像平面上の各ピクセルにおける値を推定する。一実施形態では、これらのピクセル値は、所定の画像化誤差閾値を満足した最小サブ平面の4つのコーナにあるピクセル値のバイリニア補間の結果である。
【0023】
本発明の以上の特徴及び利点、並びにその付加的な特徴及び利点は、図面と共に本発明の好ましい実施形態の詳細説明の結果として以下においてより明確に理解されるであろう。
【発明を実施するための最良の形態】
【0024】
図1(A)及び図1(B)は、本発明の2つの実施形態を用いて直接ボリュームレンダリングの基本原理を概略的に示している。直交座標(x、y、z)によって表された3Dドメインにおいては、1つ又はそれよりも多くの3Dオブジェクトを表す画像ボリューム106がある。直接ボリュームレンダリングでは、複数のレイ104を画像ボリューム106に投射し、3Dオブジェクトの3D特性を可視化するようにレイと画像ボリュームの間の相互作用を模擬することによって2D画像を発生させる。尚、本発明の状況におけるレイの形状は1D線ではなく、以下で説明する異なるレイ構成に依存するが3Dチューブ又はコーンである。
【0025】
図1(A)に示す実施形態では、複数のレイ104を放射面102上の異なる位置から放出すると、各レイは、別のものに平行に画像ボリューム106に向けて進む。レイの形状は、レイ厚みとも呼ばれる一定のサイズの断面を有するチューブ103である。異なるレイは、2D放射面102に部分的に重なる2D画像平面101上の異なるピクセルに対応し、各ピクセル値は、少なくとも1つのレイと画像ボリュームの間の相互作用によって判断される。このようなレイ構成は、平行投影と呼ばれる。
【0026】
図1(B)に示す実施形態では、複数のレイ104を放射面102上の同じレイ原点107から放出し、各レイは、画像ボリューム106に対して固有の透視角を有する。その結果、各個々のレイの形状は、レイ経路に沿って可変サイズの断面を有するコーン105であり、従って、レイ厚みは、視角108とレイ原点及び画像ボリューム間の距離109の両方の関数である。同様に、異なるレイは、2D画像平面101上の異なるピクセルに対応し、各ピクセル値は、少なくとも1つのレイと画像ボリュームの間の相互作用によって判断される。このようなレイ構成は、透視投影と呼ばれる。
【0027】
放射面102と画像平面101は、上述の2つの実施形態では互いに重なり合うことに注意されたい。しかし、この2つの平面が異なる位置に位置決めされた場合も同じ原理がまだ有効である。従って、これらの場合に本発明の教示内容を適用することは、当業者には簡単である。簡素化を期して、以下では図1(A)及び図1(B)に示す2つの実施形態を中心に説明する。
【0028】
一般的に2D画像の画像解像度は、単位面積当たりのピクセル数に依存する。実際には、画像当たりのピクセル総数は、定数、例えば5122であることが多く、これは、コンピュータモニタ上のピクセル数に依存する。従って、レイチューブ103の断面積を小さくすることによって単位面積当たりのピクセル数を多くすることにより、より高い画像解像度が達成され、放射面をレイ経路に沿って画像ボリューム106から離したり又は近づけたりしても画像解像度には影響はない。これとは対照的に、視角108又は距離109又はその両方を小さくすることにより、透視投影においてより高い解像度が達成される。
【0029】
一例として、図1(C)は、画像解像度がレイ厚みとして変化する様子を示している。簡素化を期すために、各画像は、102=100ピクセルのみを有する。グリッド110−1のレイ厚みがSの場合は、それぞれ、112−1のレイ厚みは4S、114−1のレイ厚みは16Sである。その結果、グリッド114−2上に発生した画像114−2は、最低の解像度を有し、グリッド110−1上に発生した画像110−2は、最高の解像度を有する。平行投影では、放射面のサイズを小さくしてその平面上の単位面積当たりのレイ原点の密度を大きくすることによってこのような拡大効果を達成し、また、透視投影では、放射面を3Dオブジェクトに近づけることによって同じ効果を達成することができる。
【0030】
初期エネルギ量を有する各レイは、レイ経路に沿って画像ボリューム106の一部と相互作用する。画像ボリュームの異なる物理的特性、例えば、不透明性により、レイが画像ボリュームを通る時に損失するレイエネルギ量は異なる場合がある。例えば、レイ経路に沿った画像ボリューム106の不透明性がゼロ、つまり、画像ボリューム106のその部分が透明である場合は、レイが損失するエネルギはないと考えられ、又は、表面の画像ボリューム106の不透明性が1、つまり、画像ボリュームのその部分が完全に不透明である場合は、全てのレイエネルギは、画像ボリューム106の表面によって反射されると考えられる。より一般的かつ複雑なシナリオとしては、レイと画像ボリュームの間の相互作用の最中に、レイエネルギの一部がレイ経路に沿って画像ボリューム106内に埋められた異なるオブジェクトによって反射し、レイは、ある一定量の残留エネルギを伴って他方の側から画像ボリューム106を出る。レイ経路上のある地点での全ての反射エネルギの蓄積は、そのレイ原点でのピクセル値になる。従って、放射面102上の全てのピクセル値は、画像ボリューム106内に埋められた3Dオブジェクトの画像を構成する。
【0031】
画像ボリューム106は、通常、図1(D)に示すように3Dデータセット116によって表される。3Dデータセットの各ボクセルは、画像ボリューム内の特定の位置にある画像の少なくとも1つの物理的属性を示すスカラー値である。図1(D)に示すように、3Dデータセット116は、3つの直交する座標(x、y、z)を有する。いずれの座標に沿っても、データセットは、その方向に垂直方向に向けられた2Dデータスライスのスタックを含む。各データスライスは、他の2つの座標に沿った規則的な格子上のボクセルデータ値の2Dアレイである。例えば、それぞれ、方向z、x、及びyに垂直な3つの直交データスライス116−1、116−2、116−3は、画像ボリューム106の3つの異なる限定された透視になる。
【0032】
本発明の直接ボリュームレンダリング方法は、図2に示すように3つの大きな段階を含むことが好ましい。段階201で、本方法は、最初に画像ボリュームを異なるサイズの複数のサブボリュームにフラグメント化し、各サブボリュームは、サブボリューム内のデータ分布を特徴付ける一組のパラメータと関連付けられる。
【0033】
段階203で、本方法は、画像ボリュームからある一定の距離を隔てて位置し、かつ画像ボリュームに向けてある一定の方向に向けられた画像平面から、画像ボリュームに向けて複数のレイを放出させる。各レイは、ある一定のレイエネルギ量を運び、レイ経路に沿って位置するサブボリュームの部分集合と選択的に相互作用する。一組の所定の可視化パラメータに従ってレイと相互作用するサブボリュームによって反射したレイエネルギを合計すると、画像平面上のレイ原点でのピクセル値になる。反射レイエネルギの計算に関する更なる詳細を以下に示す。
【0034】
最後に、段階205で、本方法は、レイ原点ではない画像平面上のいずれの位置のピクセル値も推定し、画像平面の位置及び方向から見た画像ボリュームの3D特性を可視化する2D画像を生成する。段階203及び段階205を繰り返すと、画像平面の位置及び方向が変化するか又は異なる可視化パラメータが適用された時に一連の新しい画像を発生させることができる。
【0035】
画像ボリュームフラグメント化
本発明の一実施形態によれば、画像ボリュームをまず一組のサブボリュームにフラグメント化する。各サブボリュームを更により小さなサブボリュームにまでフラグメント化する。このような再帰的フラグメント化は、最小サブボリュームが所定のサイズ限界に到達するまで続行される。最後に、全てのサブボリュームをデータ構造に関連付けて元の画像ボリュームの新しい図を形成する。
【0036】
図3(A)は、複数のサブボリューム、この場合は585個のサブボリュームへの3Dデータセット302のフラグメント化の一例を示すものである。これらの585個のサブボリュームは、4つのフラグメント化レベルI、II、III、及びIVに属する。例示を目的として、より小さなサイズの他のサブボリュームを露出させるために、異なるサイズのいくつかのサブボリューム、例えば、II−2、III−2、IV−2を図3のデータセット302から既に取り除いている。585個のサブボリュームの各々をサイズに基づいてオクトリデータ構造304の1つのノードと関連付ける。図示を簡素化するために、図3(A)のオクトリ304では、サブボリュームの部分集合のみを示している。
【0037】
フラグメント化レベルIから始まって、データセット302全体は、1つのサブボリュームI−1として処理され、オクトリ304のルートノードに関連する。フラグメント化レベルIIでは、データセット302は、仕切られて同じサイズの8つのサブボリュームにされ、各サブボリューム、例えばII−6は、レベルIIでオクトリ304の1つの中間ノードに関連する。更に、フラグメント化レベルIIIでは、サブボリュームII−6のような各サブボリュームは、8つのより小さなサブボリュームIII−1、III−2、...、及びIII−8に分割され、同様に、III−6のような各サブボリュームは、レベルIIIの中間ノードに関連する。最後に、フラグメント化レベルIVでは、サブボリュームIII−6のような各サブボリュームは、仕切られて別の8つのサブボリューム(サブボリュームIV−6を含む)にされ、レベルIVの各サブボリュームは、オクトリ304の葉ノードに関連する。レベルIには80個のサブボリュームがあり、レベルIIには81個のサブボリュームがあり、レベルIIIには82個のサブボリュームがあり、レベルIVには83個のサブボリュームがあることから、データセット302を異なるフラグメント化レベルで合計で、
80+81+82+83=1+8+64+512=585
個のサブボリュームにフラグメント化する。
【0038】
各サブボリュームは、このサブボリューム内のデータ分布を特徴付ける一組のパラメータと関連する。一実施形態では、この組のパラメータとしては、3つの要素がある。
・サブボリューム内の画像データの最小値を表すVmin、
・サブボリューム内の画像データの平均値を表すVavg、及び
・サブボリューム内の画像データの最大値を表すVmax
【0039】
図3(A)に示すように、画像ボリュームフラグメント化は、再帰的処理である。このフラグメント化処理は、最小サブボリュームが指定のサイズ限界に到達するまで停止されない。一実施形態では、この所定のサイズ限界つまりオクトリ葉ノードに付随する最小サブボリュームは、画像データセット内の2×2×2セル又はボクセルを含むサブボリュームである。セル又はボクセルは、画像ボリュームのいくつかのデータ値に付随する画像データセット内の最小単位である。例えば、画像ボリュームが直接ボリュームレンダリングでは一般的である5123個のセルを有し、かつ最小サブボリュームが2×2×2セルを有する場合、画像ボリュームフラグメント化処理は、フラグメント化レベルIXまで続くと、最小サブボリュームの数は2563である。
【0040】
図3(B)は、3つの直交方向の各々に互いに隣接する2つのセル又はボクセルがあるように配置されたサブボリューム306の8つのセル又はボクセルを示している。ボクセル308は、1つの採取データ値、例えば、V0に中心がある立方体である。ボクセル内のデータ値は一定であることが好ましく、従って、ボクセルの境界に沿ってデータ値の不連続があるとすることができる。これとは対照的に、セル310は、8つの採取データ値V1からV8を立方体の8つのコーナの各々に1つずつ有する同じサイズの立方体である。本発明の一実施形態では、セル内のいずれの点のデータ値もトリリニア補間によって概算し、データ値は、セルの境界に沿って変動する。
【0041】
原点がセル310の中心にある3D直交座標系があり、セルの3つの縁部の長さが、それぞれ、Dx、Dy、Dzであると仮定すると、セル内のいずれかの点V(x、y、z)でのデータ値は、以下のように、セルV1からV8の8つのコーナでのデータ値の関数としてトリリニア補間によって表すことができる。
【数1】
【0042】
本発明は、いずれのフォーマット、セル、又はボクセルで表された画像ボリュームにも等しく適用されることが当業者には明らかである。簡素化を期すために、以下では一例としてセル表示を中心として説明する。
【0043】
最小サブボリュームのサイズの選択は、直接ボリュームレンダリングアルゴリズムの効率、精度、及び計算経費間の妥協点になる。一般的に、最小サブボリュームサイズが大きくなる場合、直接ボリュームレンダリングに必要とされるメモリなどのコンピュータリソース数は少なくなり、対応する画像レンダリング速度つまり毎秒のフレーム(FPS)は大きくなるが、より低い画像解像度という犠牲を払っている。他方、最小サブボリュームのサイズが単一のセルのレベルまで小さくなり、それによってより高い画像解像度が達成される場合、対応するオクトリを割り当てるのに使用されるメモリは、図3(A)のオクトリ304を割り当てるのに使用されるメモリの8倍になることになる。
【0044】
図4は、上述の画像ボリュームフラグメント化並びオクトリ構造のコンピュータプログラムを要約した流れ図である。段階401では、コンピュータプログラムは3Dデータセットを受け取り、3Dデータセットをオクトリのルートノードと関連付けることにより、オクトリデータ構造を初期化する。段階403では、データセットを8つのサブボリュームにフラグメント化し、各サブボリュームがルートノードの1つの子ノードに関連付けられるように、8つの子ノードをルートノードで発生させる。
【0045】
段階405から始まって、最小サブボリュームが指定のサイズ限界に達するまで、各サブボリュームをより小さなサブボリュームに再帰的にフラグメント化する。段階405では、コンピュータプログラムは、最初に、サブボリュームのサイズが指定のサイズ限界、例えば、2×2×2セルのサブボリュームに達したかを検査する。達していない場合、段階407では、サブボリュームを8つのより小さなサブボリュームにフラグメント化する。8つのより小さなサブボリュームの1つを拾うと、再帰的フラグメント化が段階405で再び始まる。
【0046】
サブボリュームのサイズが指定のサイズ限界、例えば、2×2×2セルに達した場合、コンピュータプログラムは、段階409でこのサブボリュームをフラグメント化するのを止め、サブボリュームに付随するオクトリの対応するノードは、オクトリの葉ノードの1つである。段階411では、コンピュータプログラムは、2×2×2セルまでフラグメント化されていない他のサブボリュームがあるかを検査する。ある場合には、上述のサブボリュームの1つを選択して、再帰的フラグメント化も再度段階405で開始される。ない場合には、画像ボリュームフラグメント化は終了である。
【0047】
上述のように、各サブボリュームは、2D画像平面上のピクセル値を計算するのに使用される(Vmin、Vavg、Vmax)のような一組のパラメータに関連付けられる。一実施形態では、この計算は、図3(A)のオクトリ304のような画像ボリュームのフラグメント化した表現からの恩典を得るために、上述の再帰的画像ボリュームフラグメント化から分離されている。例えば、3Dデータセットをフラグメント化してオクトリを構成した後に、コンピュータは、オクトリの葉ノードレベルから始まり、図3(A)のサブボリュームIV−6のような葉ノードに付随するサブボリュームに対する対応するVmin、Vavg、及びVmaxを計算する。葉ノードに付随する各サブボリュームは、8つのセルを含むのみであり、かつ、各セルは、大半は2つ又はそれよりも多くのセルによって共有される8つのデータ値を有することから、コンピュータは、ハードディスクのようなコンピュータ記憶装置から27個のボクセルデータ値を検索し、サブボリュームの(Vmin、Vavg、Vmax)を計算する必要があるだけである。
【0048】
葉ノードレベルの全てのサブボリュームを処理した後に、コンピュータプログラムは、オクトリ304に沿ってレベルを1つ上げ、中間ノードに付随するIII−6のようなサブボリュームの対応するパラメータを計算する。そして、これは、それがルートノードに達するまでオクトリ304に沿って登り続ける。各中間ノードは、8つの子ノードを有し、各子ノードは、パラメータが既に前の段階で判断されているサブボリュームに付随するものであることから、この中間ノードの各データ値パラメータを8つの子ノードに付随する8つのパラメータの関数として容易に表すことができる。
・Vmin=Min(Vmin_1,Vmin_2,...,Vmin_8)、
・Vavg=(Vavg_1+Vavg_2+...+Vavg_8)/8、及び
・Vmax=Max(Vmax_1,Vmax_2,...,Vmax_8)
【0049】
以下で明らかになるように、データ値パラメータのこの発生は、図3(A)に示すようにルートノードレベルで始まって葉ノードレベルまで下方に移動するオクトリ構成とは反対の方向に進む。データ値パラメータ発生のこの下から上の手法は、オクトリのより低いレベルにある計算結果を最大に再利用することから最も効率的である。
【0050】
段階201の終わりでは、元の画像ボリュームの新しい表現が直接ボリュームレンダリング方法の段階203に利用可能である。この表現は、オクトリ及び異なるサイズの複数のサブボリュームを含み、オクトリの1つのノードに付随し、かつ一組のデータパラメータを有する各サブボリュームは、サブボリューム内のデータ分布を特徴付ける。
【0051】
3D適応レイキャスティング
図1に示すように、画像ボリューム106の2D画像108を発生させるために、2D画像平面102を画像ボリュームの近くに定め(又は画像ボリューム内とすることができる)、その後、複数のレイ104が2D画像平面102から画像ボリューム106に向けて放出されると仮定する。レイキャスティングの基本的な考え方は、3Dオブジェクトを貫通する光線などの物理的処理を模擬することである。現実の世界では、光線と3Dオブジェクトの間の相互作用のために、光線エネルギの一部は光線原点に反射し、一部は全ての方向に散乱し、一部は吸収され、残りのエネルギはオブジェクトを通る。異なる位置(平行投影)又は同じ位置(透視投影)から放出された複数の光線に付随する全ての反射エネルギを合計すると、3Dオブジェクトの画像が得られる。すなわち、反射エネルギは、オブジェクトの可視特性、例えば、その色合いや輝度をある程度を反映することができる。不透明性、放射率、色などのようなオブジェクトの光学的属性、並びに形状及び向きのような幾何学的特性により、3Dオブジェクトの部分が異なれば、反射することができるレイエネルギ量が異なる。
【0052】
本発明は、上述の物理的処理を模擬する数値アルゴリズムを含む。このアルゴリズムでは、最初に、ある一定の初期レイエネルギ量及び断面を有するレイの数学的モデルを構築し、3Dオブジェクトを個別の3Dデータセットとして表し、データセットの各要素は、所定の伝達関数、例えば、レイと3Dオブジェクトの間の相互作用中に消散されるレイエネルギ量を決める不透明性伝達関数に従ってオブジェクトの特定の位置でのある一定の物理的特性を特徴付ける。次に、このアルゴリズムでは、数値解析を用いて、レイ経路に沿ったオブジェクトのレイと異なる位置との間の物理的相互作用を模擬する。具体的には、このアルゴリズムでは、3Dデータセット内の対応する要素及び理論的照射モデルに基づいて、レイ経路に沿った位置によって反射した反射エネルギを計算する。最後に、このアルゴリズムでは、画像平面上の特定のピクセルでの異なる位置によって反射した反射エネルギを蓄積し、反射レイエネルギを色値に変換する。一実施形態では、レイの原点を特定のピクセルとして選択し、ピクセル値は、3つの成分、すなわち、赤色、緑色、及び青色を含む。
【0053】
直接ボリュームレンダリングにおいては、3Dデータセットに付随する複数の伝達関数があるとすることができる。上述の不透明性伝達関数は、不透明性が、最終的なレンダリングがいかに分かりやすくかつ有用なものになるかを判断する際に本質的な役目を果たすので最も重要なものの1つである。オブジェクトの不透明性が通常は固定のものである現実の世界に反して、直接ボリュームレンダリングにおける不透明性伝達関数は、任意に選択することができる。任意の不透明性伝達関数を有することの重要な利点は、同じ3Dデータセットに適用した時の不透明性伝達関数が異なれば、明らかにすることができるデータセットの特性が異なるということである。
【0054】
図5(A)は、直接ボリュームレンダリングで使用することができる不透明性伝達関数の例である。縦軸は、0.0から1.0まで不透明性によって目盛りが付けられ、横軸は、3Dデータセットにおけるデータ値の大きさである。不透明性曲線502は、データ値の関数として0.0と1.0の間で変動することにより、データ値の大きさが不透明性レベルに関連付けられる。例示的に、8と10の間のマグニチュードを有するどのデータ値も不透明性曲線の部分502−Aによって示すように、1.0という不透明性値を有する。このようなデータ値を有する3Dデータセットの部分は、完全に不透明として処理し、いずれかの残留レイエネルギを伴ってこのような部分を貫通することができるレイはない。同様に、13と17の間又は24と26の間のマグニチュードを有するどのデータ値も、部分502−B及び502−Cによって示すように0.0という不透明性値を有する。このようなデータを有する3Dデータセットの部分を透明として処理し、レイが3Dデータセットのこのような部分を通る時にレイエネルギ損失はない。図5(B)及び図5(C)は、図5(A)に示す不透明性伝達関数に応答する2つのルックアップテーブル、つまり、順方向ルックアップテーブル(FLT)506及び逆方向ルックアップテーブル(BLT)508を示している。これらの表は、サブボリュームがレイと相互作用するか否かを迅速に判断するのに使用される。これらの2つの表の特定の機能に対して以下でより詳細に説明する。
【0055】
図6は、レイと3Dデータセット内の一連のサブボリュームの間の一連の相互作用を示している。簡素化を期すために、ボックス610から616は、互いに隣接するn個のサブボリュームを示すと仮定する。各サブボリュームは、同じ物理的寸法及び固有のデータ値Vnを有する。初期エネルギE0を有するレイ618は、それが最終サブボリューム616から出るまで、一方の側面に垂直にサブボリューム610に入り、反対側から出て、すぐに次のサブボリューム612に入る。レイが右側からサブボリューム610を出た時、レイの残留エネルギは、以下の通り推定される。
【数2】
ただし、Op(V)は、図5(A)に示す曲線502のような不透明性伝達関数であり、Tr(V)は、透明度伝達関数とも称するOp(V)に対して補完的なものである。従って、レイがサブボリューム510を貫通する時の損失エネルギは、初期エネルギと残留エネルギの間の差である。
【数3】
【0056】
同様に、サブボリューム516を出た直後に、残留レイエネルギは、以下の通りである。
【数4】
また、損失レイエネルギは、以下の通りである。
【数5】
【0057】
上述のように、レイとサブボリュームの間の相互作用中に消散されるエネルギの全てがレイ原点に反射されるわけではない。コンピュータグラフィックで多くの照射モデルがこれまでに開発されている。本発明においては、レイがサブボリュームと相互作用する時にレイ原点に反射されるレイエネルギを計算するのに、公知のフォン照射モデルの修正バージョンを使用する。
【0058】
フォン照射モデルでは、表面からの3つの形式の反射光が考慮されている。それらは、以下の通りである。
・全ての方向から表面に達する光の反射である周囲反射Ea、
・全ての方向に散乱する無光沢面からの光の反射である拡散反射Ed、及び
・特定の1つの方向に入射光を反射させる鏡状の面からの光の反射である鏡面反射Es
【0059】
図7(A)は、全ての方向で一定の値である周囲反射Eaを示している。
【0060】
図7(B)は、拡散反射Edを示している。エネルギE0を有する光が光の方向:
と、表面の方向:
との間で形成された入射角θで無光沢面Sに当たる時、いずれかの方向での拡散反射光Edのエネルギを以下のように推定することができる。
【数6】
又は、
【数7】
ただし、rは、反射点と見る者の位置の間の距離であり、kは、rが小さすぎる時のコンピュータ実装における割り算オーバーフローを回避するために選択する定数である。
【0061】
図7(C)は、鏡面反射を示している。エネルギE0を有する光が光の方向:
と、表面の方向:
との間に形成された入射角θで鏡上の表面S’に当たる時、エネルギのほとんど全ては、表面の方向:
で反射角θを形成する方向:
に鏡面反射される。表面S’が完全な鏡である場合、鏡面反射は、方向:
でしか見ることができない。現実の世界では、完全な鏡が存在するのは稀であり、点線による円錐Cで示すように、常に、ある一定の量の光が反射方向:
の回りに散乱する。方向:
の鏡面反射Esの実験的推定値は、以下の通りである。
【数8】
又は、
【数9】
ただし、nは、表面S’の滑らかさを示すパラメータである。光沢面に対しては、nを128などの高い値に設定し、光沢面から反射したエネルギの大部分が方向:
に集中して角度φが大きくなる時に鏡面反射Esが落ちる現象を模擬する。無光沢面に対しては、角度φが大きくなる時に比較的緩やかな割合で鏡面反射Esが落ちるようにnを8などの低い値に設定する。
【0062】
周囲反射Ea、拡散反射Ed、及び鏡面反射Esを組み合わせると、フォン照射モデルによる全反射の推定値は、以下の通りである。
【数10】
又は、
【数11】
ただし、Ka、Kd、及びKsは、それぞれ、表面の周囲反射、拡散反射、及び鏡面反射の係数である。係数Ksは、通常は定数であり、係数Ka及びKdは、通常は入射光の波長及び表面材料に依存する。
【0063】
コンピュータグラフィックでは、画像の色は、通常は光の3原色、つまり、赤色、緑色、及び青色による構成として指定される。従って、直接ボリュームレンダリングにおいては、フォン照射モデルにおける全反射レイエネルギEは、以下の3つの成分に分解することができる。
【数12】
ただし、鏡面反射係数Ksは、全ての色に対して同じであり、一方、周囲反射係数及び拡散反射係数は、波長の関数である。
【0064】
本来のフォン照射モデルでは、拡散反射Ed及び拡散反射Esの両方を推定する時、表面の方向:
は既知であると仮定される。直接ボリュームレンダリングでは、可視化ターゲットは、通常は心臓や地質断層などの連続的オブジェクトを表す採取3Dスカラー場である。このような画像ボリュームにおけるオブジェクトの表面の方向を定めることは困難である。その結果、採取位置で推定したデータ値の局所勾配ベクトルを修正フォン照射モデルにおける表面方向の代用として使用する。当業者に公知である多くの勾配ベクトル推定法がある。一実施形態では、反射係数は、不透明性伝達関数と同様に、データ値の関数として定義される。ユーザは、これらの係数を自由に調整することができる。
【0065】
図8は、ユーザが定めた不透明性伝達関数及び修正フォン照射モデルを使用してレイが画像ボリュームと相互作用する時に反射レイエネルギを推定するコンピュータプログラムの作動の流れ図である。画像ボリュームは、図3(A)に示すように、オクトリに付随する複数のサブボリュームに既にフラグメント化されていることから、レイと画像ボリュームの間の相互作用は、レイとサブボリュームの一部との間の一連の相互作用になる。各相互作用では、レイエネルギの一部が消費され、消費エネルギの一部は、画像平面上のレイ原点に反射される場合がある。この一連の相互作用からの反射レイエネルギの蓄積は、レイ原点でのピクセル値になる。
【0066】
段階802で、コンピュータプログラムは、初期エネルギをE0に設定し、かつ画像ボリュームを表す3Dデータセットに対して2D画像平面上の位置及び向きを指定することによってレイを初期化する。
【0067】
段階804で、コンピュータプログラムは、オクトリの1つのノードに付随する3Dデータセットのサブボリュームを選択し、このサブボリュームが反射レイエネルギ計算に適格であるかを検査する。レイがいずれのサブボリュームとも相互作用しなかった場合、最初に、ルートノードに付随する最大サブボリュームをこの検査作業に選択する。レイが1つのサブボリュームと相互作用したばかりである場合、レイ経路に沿った同じサイズの次のサブボリュームをこの検査作業に選択する。以下の図9は、このサブボリューム選択法に関する更なる詳細を示すものである。画像化誤差を低減するために、サブボリュームは、反射レイエネルギ計算に適格になるための以下の2つの試験に合格すべきである。
・このサブボリュームのVmin及びVmaxの間の不透明性伝達関数が単調であること、及び
・このサブボリュームの最大エネルギ差(MED)が所定のエネルギ誤差閾値よりも小さいこと。
【0068】
段階806で、コンピュータプログラムは、第1の試験を行って不透明性伝達関数が段階804で選択したサブボリュームのVminとVmaxとの間で単調に変化するか否かを判断する。この試験の合格は、あらゆるサブボリュームが反射レイエネルギ計算に適格であるために必要であることから、この試験を行う効率は、本発明の効率に実質的に影響を与える。本発明の一実施形態では、図5(B)に示すFLT506及びBLT508などの2つのルックアップテーブルに基づいて高速のアルゴリズムが開発されている。これらのテーブルは、不透明性伝達関数がコンピュータに取り込まれた時に埋められる。
【0069】
上述のように、不透明性伝達関数により、0.0から1.0のスケールの不透明性と3Dデータセットにおけるデータ値のマグニチュードの関係が得られる。曲線502などの任意の不透明性伝達関数は、部分502−A、502−B、502−Cなどのある一定のデータ値での複数の極値部分を有する場合がある。各極値部分は、図5(A)に示す水平軸上の2つのデータ値つまり2つの点によって制約される。例えば、部分502−Aは、点B1及びF1によって制約される。特殊な場合として、点B3とF3の間の極値部分の長さはゼロであり、これに対応して、2つの点B3とF3は、1つの点に合併される。これらの点は、均一に2つのグループに分割され、1つのグループは、B1からB4を含み、他方のグループは、F1からF4を含む。分割判断基準は、データ値増加方向に沿って移動する時に、第1の遭遇点をB1と定め、第2の点をF1と定め、第3の点をB2と定めるなどということである。
【0070】
順方向ルックアップテーブル506と逆方向ルックアップテーブル508の両方には複数のエントリがあり、これらの表の各エントリは、データ値表(DVT)504内のデータ値エントリに対応する。順方向ルックアップテーブル506内の各エントリは、DVT504における対応するデータ値と、F1からF4を含む第2のグループから選択したデータ値増加方向の最も近くの極値に対応するDVT504におけるデータ値との間の差であるデータ値を含む。逆方向ルックアップテーブル508における各エントリは、DVT504における対応するデータ値と、B1からB4を含む第1のグループから選択したデータ値減少方向の最も近くの極値に対応するDVT504におけるデータ値との間の差であるデータ値を含む。
【0071】
例えば、10、17、21、及び26のデータ値エントリに対応するFLT506におけるエントリは、各々が図5(A)の1つの極値F1からF4に対応するのでゼロに設定し、12のデータ値エントリに対応するエントリには、図5(A)のデータ値軸上のデータ値12の右寄りにあるF1からF4の間の最も近くの極値が、データ値のマグニチュードが17である点であるF2であるから、データ値差|12−17|=5を割り当てる。同様に、8、13、21、及び24のデータ値エントリに対応するBLT508におけるエントリは、各々が図5の1つの極値B1からB4に対応するのでゼロに設定し、19のデータ値エントリに対応するエントリには、図5(A)のデータ値軸上のデータ値19の左寄りにあるB1からB4の間の最も近くの極値が、データ値のマグニチュードが13である点であるB2であるから、|13−19|=6というデータ値差を割り当てる。
【0072】
これらの2つのルックアップテーブルに基づいて、不透明性伝達関数は、以下の2つの条件の1つが満足された場合は、VminとVmaxとの間で単調に変化する。
・Vmax≦Vmin+Fmin、又は
・Vmin≧Vmax−Bmax
ただし、Fminは、順方向ルックアップテーブルに格納されたVminのデータ値差であり、Bmaxは、逆方向ルックアップテーブルに格納されたVmaxのデータ値差である。これは、第1のグループB1からB4又は第2のグループF1からF4からの2つの連続的な点によって境界付けられたいずれかのデータ値部分にわたる不透明性伝達関数が単調に変化するからである。例えば、図5(A)の曲線502では、F1とF2との間では単調に減少し、B1とB2との間では単調に増加する。このアルゴリズムに基づくコンピュータプログラムは、非常に高速であり、これは、本発明による直接ボリュームレンダリングの性能に対して重要なものである。
【0073】
一例として、サブボリュームはVmin=12とVmax=19を有すると仮定すると、Vmin=12に対する対応する順方向ルックアップ値は、Fmin=5であり、Vmax=19に対する対応する逆方向ルックアップ値は、Bmax=6である。Vmax=19がVmin=12とFmin=5の合計よりも大きく、また、Vmin=12は、Vmax=19とBmax=6の間の差よりも小さいことから、上述の2つの条件のいずれも満足されず、このサブボリュームには、適応レイキャスティングを行うことができない。
【0074】
段階806の結果が偽りである場合、コンピュータプログラムは、更に、調査中のサブボリュームが段階807の対応するオクトリ上の最小のものであるかを検査する。そうである場合、反射レイエネルギ推定は、セル又はサブセルレベルで行われ、これは、以下の図11で説明する。依然として偽りである場合、このサブボリュームをより小さなサブボリュームにフラグメント化し、段階808でレイ経路上の1つのこのような子サブボリュームを選択する。その後、この新たに選択した子サブボリュームを同じ方法で単調であるかを試験する。コンピュータプログラムは、サブボリューム内の不透明性伝達関数が単調に変化するか又はサブボリュームのサイズが所定のサイズ限界、例えば、2×2×2セルに到達するまで段階806、段階807、及び段階808を繰り返す。後者の場合に対しては、以下でより詳細に説明する。
【0075】
サブボリュームが段階806で第1の試験に合格した場合、その後、段階812で試験して最大エネルギ差(MED)が所定のエネルギ誤差閾値を下回っているか否かを判断する。この第2の試験では、サブボリュームが直接ボリュームレンダリングを目的として均質であるとして処理するのに十分に小さいか否かを評価し、これはまた、本発明の計算の性能に対して重要なものである。サブボリュームを均質に処理することができる場合、このサブボリュームによって反射したレイエネルギを計算する経費は、比較的低いものであり、これは、サブボリュームにはそれ以上のフラグメント化が必要ないからである。
【0076】
段階810で、サブボリュームSkの最大エネルギ差(MED)を以下のように計算する。
MED(Sk)=MAX(|Ek・(T(Vavg)−T(Vmin))|,|Ek・(T(Vavg)−T(Vmax))|)
ただし、Ekは、サブボリュームSkと相互作用するレイの残留レイエネルギであり、サブボリュームSkは、一組のデータ値パラメータ(Vmin、Vavg、Vmax)を有する。
【0077】
最大エネルギ差は、T(Vmin)とT(Vmax)の間で変動する透明度を有するサブボリュームの代わりに均質な透明度T(Vavg)及び同じサイズを有する別のサブボリュームを使用する時に、反射レイエネルギ推定に導入される近似誤差の量の尺度となる。最大エネルギ差は、複数のパラメータの関数であることから、以下の3つのパラメータの少なくとも1つを低くするなどの近似誤差を小さくする複数の方法がある。
・サブボリュームのサイズ、従って、VminとVmaxの間の差、
・VminとVmaxの間の不透明性伝達関数の勾配、及び
・残留レイエネルギEk
【0078】
段階812で、コンピュータプログラムは、サブボリュームのMEDをユーザが定めた所定のエネルギ誤差閾値と照らして比較する。MEDが所定のエネルギ誤差閾値よりも大きい場合、コンピュータプログラムは、更に段階813で、調査中のサブボリュームが対応するオクトリ上の最小のものであるかを検査する。そうである場合、反射レイエネルギ推定は、セル又はサブセルレベルで行われ、これは、以下の図11で説明する。そうでなければ、オクトリ上の最小サブボリュームではないことを条件として、サブボリュームをフラグメント化し、1つのこのような子サブボリュームを段階814での更に別の処理に向けて選択する。オクトリ上の最小サブボリュームであるサブボリュームを処理するために既に設計された特殊手順を図10、図11、及び図12で以下に示している。MEDが所定のエネルギ誤差閾値よりも小さい場合、修正フォン照射モデルを用いて段階816でこのサブボリュームからの反射レイエネルギを推定する。レイとサブボリュームの間の一連の相互作用からの蓄積反射レイエネルギは、2D画像平面上の1つのピクセル値の役目を果たすものである。
【0079】
このサブボリュームを貫通した後、レイは、画像ボリュームの反対側から出るか、又はレイ経路に沿った別のサブボリュームに当たる。第1のシナリオにおいては、レイキャスティングは終了になる。第2のシナリオにおいては、対応するレイキャスティングが継続されるべきか又は停止すべきかは、残留レイエネルギ量に依存する。サブボリュームとレイの間の全ての相互作用は残留レイエネルギの一部を取り去ることから、残留レイエネルギが所定のエネルギレベルよりも小さいサブボリュームとレイの間の相互作用は、画像平面上のピクセル値に対する貢献はほとんどない。段階818で、残留レイエネルギを所定のエネルギレベルに照らして比較する。残留レイエネルギがそのレベルを上回り、かつレイがまだ画像ボリューム内を進む場合、レイキャスティングは、段階804から継続される。そうでなければ、特定のレイのレイキャスティングは完了であるから停止される。
【0080】
図9(A)及び図9(B)は、本発明による適応レイキャスティングの重要な特徴を示す単純な2D実施例を示すものである。この例においては、3D画像ボリュームが2D画像正方形900で置き換えられ、2D画像平面が、2D画像正方形900内に位置する1D画像線902で置き換えられる。2D画像正方形900を再帰的に4回フラグメント化すると、合計は、
40+41+42+43+44=1+4+16+64+256=341
個のサブ正方形(画像正方形900を含む)になり、各サブ正方形は、図9(B)の四分木906の1つと関連する。例示する目的で、図9(A)は、実際にレイ904と相互作用する910から922の異なるサイズの13個の隣接サブボリュームを含むサブ正方形の部分集合のみを含み、同様に、図9(B)は、13個のサブ正方形に対応するノードを含む全ての四分木ノードの部分集合のみを示している。
【0081】
図9(A)は、サブ正方形910内の点p0で始まる適応レイキャスティングの直観的表示を示している。レイ904の軌跡上には12個の点p1からp12があり、各点は、2つの隣接するサブ正方形の境界上に位置する。例えば、p1は、レイ904がサブ正方形910から出て第2のサブ正方形911に入る位置を表す。レイ904がサブ正方形915などのサブ正方形を通った時、修正フォン照射モデルに従ってレイエネルギの一部は、サブ正方形によって反射される。13個のサブ正方形によって反射されたレイエネルギの蓄積は、点p0におけるピクセル値を構成する。
【0082】
これに対応して、図9(B)は、四分木906という状況における同じ適応レイキャスティングを示している。図9(A)のサブ正方形は、図9(B)では小さなブロックで表され、例えば、画像正方形900全体は、ルートノードにおけるブロックによって表される。図9(A)の点は、図9(B)のカスケード経路まで延び、例えば、点p0は、レベルIからレベルIIIまでの二脚経路になる。図9(A)においては、2つのサブ正方形は互いに隣り合っていることから、レイ904が1つのサブ正方形から出て別のサブ正方形に入る時を観察することは簡単である。例えば、サブ正方形916は、サブ正方形917の隣にある。しかし、同じ2つのサブ正方形は、四分木906上の2つの隣接するノードとは、一般的に関連付けられない。同じ例を用いて、サブ正方形916は、レベルVの1つの葉ノードと関連付けられ、サブ正方形917は、レベルIIIの1つの中間ノードと関連付けられる。
【0083】
図9の点p0のピクセル値を計算するために、コンピュータプログラムは、最初に、レイ904がルートノードに付随する画像正方形900と相互作用するかを試験する。図8の段階806及び段階812に従って、画像正方形900は、反射レイエネルギを計算する前に2つの試験に合格すべきである。画像正方形900がいずれかの試験に不合格となった場合、コンピュータプログラムは、図8の段階808及び段階814後の更に別の試験のためにレベルIのより小さなサブ正方形を選択する。このより小さなサブ正方形はやはり不合格になることから、コンピュータプログラムは、四分木906のレベルIIIまで更に下がってサブ正方形910を選択する。図9(A)及び図9(B)に示す例においては、このサブ正方形は、両方の試験に合格し、コンピュータプログラムは、修正フォン照射モデルを用いてサブ正方形910によって反射したレイエネルギを計算する。
【0084】
その後、コンピュータプログラムは、サブ正方形910の兄弟のいずれかがレイ904と相互作用するか否かを検査する。この例においては、サブ正方形911は、図9(B)の経路P1で示すように、コンピュータプログラムによって特定される。レイ経路上に他の兄弟のサブ正方形がない場合、コンピュータは、四分木906でレベルを1つ上げて、親サブ正方形の兄弟のいずれかが相互作用に適格であるかを検査する。例えば、サブ正方形916によって反射したレイエネルギを計算した後に、コンピュータプログラムは、最初に、サブ正方形916の兄弟を評価する。適合するものがないので、コンピュータプログラムは、経路P7に沿ってレベルIVまで移動し、サブ正方形916の親ノード内の兄弟間の候補を探す。コンピュータプログラムは、経路P7の第4の脚で示すように、レベルIIでの適合を見つけるまで四分木906を検索し続ける。その後、コンピュータプログラムは、レベルIIで見つかった候補に2つの試験を適用する。図9(A)及び図9(B)の例においては、それは試験のいずれにも合格せず、コンピュータプログラムは、その後、レベルIIIまで下がる。最後に、次の反射レイエネルギ計算に向けてサブ正方形917が特定される。
【0085】
図8によると、不透明性伝達関数がサブボリューム内で単調に分布していない場合(段階806)、又はサブボリュームのMEDが所定のエネルギ誤差閾値を超える場合(段階812)、サブボリュームを更にフラグメント化し、1つのこのような子サブボリュームを更に別の処理に向けて選択する。しかし、画像ボリュームを無制限にフラグメント化することは実用的ではない。第1に、フラグメント化の回数が多いほど、生成されるサブボリュームの数が多くなり、消費するコンピュータリソースが多くなり、直接ボリュームレンダリング方法が経費の掛かるものになり、かつ非効率的なものになる。第2に、上述のように、適応レイキャスティングで使用されるレイは、画像解像度を決めるある一定のレイ厚みを有する。レイ厚みよりも小さいサブボリュームの計算経費増加時の画質に対する貢献度はほとんどない。
【0086】
他方、2×2×2セルを含むサブボリュームが最小であっても、段階806及び段階812で行う2つの試験のいずれかに不合格になる可能性がある。例えば、2×2×2セルを有する最小サブボリュームが、ほとんどの医療画像ボリュームにおいて2つの試験のいずれかに合格することができることは稀である。このシナリオにおいては、最小サブボリュームを依然として均質体として処理する場合は、適応レイキャスティングに導入される誤差が多すぎる。レイの厚みは、通常は3Dセルよりも小さいことから、セル又はサブセルレベルではより正確な反射レイエネルギ推定を達成すべきである。しかし、この現象は、図8及び図9に関連して説明した本発明の原理を無効にしない。第1に、オクトリ構造により、反射レイエネルギ推定に向けたセルを正確に指摘することが容易になる。第2に、セル又はサブセルレベルで使用するアルゴリズムは、サブボリュームレベルで使用するものと酷似のものである。
【0087】
また、セル又はサブセルレベルでの反射レイエネルギの正確な推定には、セル内の不透明性伝達関数の分布及びセルの最大エネルギ差に関する情報が必要である。このような情報を3Dデータセット及び不透明性伝達関数に付随する2つのルックアップテーブルから検索することができたとしても、本発明は、最小サブボリュームレベルからセル又はサブセルレベルまでさえも情報を伝播させることによってこの情報を収集するより効率的手法を提案するものである。
【0088】
図10に示すように、VminとVmaxの間にデータ値を有する2×2×2セルを含む最小サブボリュームが与えられると、サブボリューム内の不透明性分布のほぼ3つの大きなカテゴリが存在する。
・VminとVmaxとの間で単調に変化する不透明性(図10(A))、
・VminとVmaxの間に極値を有する不透明性(図10(B))、及び
・VminとVmaxの間のデータ値Visoで不連続な不透明性(図10(C))とVminとVisoの間又はVisoとVmaxの間でゼロである不透明性。
【0089】
この最小サブボリュームが段階806及び段階812で2つの試験のいずれかに合格しなかった場合、コンピュータプログラムは、このサブボリュームからの8つのセルの1つを選択して反射レイエネルギのより正確な概算を生成する。図8に示すように、図11は、セル又はサブセルレベルで反射レイエネルギを推定する処理を示す流れ図である。より具体的には、図11は、図10に示す不透明性分布の異なるカテゴリを処理する時に本発明によって使用される異なる方法を示している。
【0090】
段階1102で、コンピュータプログラムは、最小サブボリュームを構成する8つのセルからレイ経路に沿ってレイ原点に最も近いセルを選択し、その後、段階1103で、サブボリュームのVminとVmaxの間の不透明性伝達関数の種類を推定する。サブボリュームのVminとVmaxは既にオクトリ構成中に既知であることから、段階1104で順方向ルックアップテーブル及び逆方向ルックアップテーブルを用いて、サブボリューム内の不透明性伝達関数の種類を判断することは非常に容易である。
【0091】
不透明性伝達関数がVminとVmaxの間で単調であり、すなわち、MEDが図8の段階810で最小サブボリュームが得られるように既に計算済みであることから、セルレベルで反射レイエネルギを推定する理由は、サブボリュームが段階812で試験に合格しないからである。不透明性分布は、サブボリューム内では単調であることから、サブボリュームのどのセル内でも単調である。その結果、3Dデータセット内に格納されたセルの8つのコーナでのデータ値を用いてどのセルの正確なMEDを計算する段階も飛び越すことができる。その代わりに、段階1106でサブボリュームのMEDを2で割ることにより、セルの妥当に正確なMEDを達成する。8つのセルコーナでのデータ値を用いて正確なMEDを推定する計算経費と比較すると、この手法は非常に効率的であり、反射レイエネルギ推定における近似誤差は無視することができるものである。この手法は、セル又はサブセルレベルでのMED計算に限定されるものではなく、サブボリュームレベルにも拡張することができることを当業者には更に注意されたい。
【0092】
段階1108でMEDの半値が所定のエネルギ誤差閾値よりも小さい場合、選択したセルは、段階1124で反射レイエネルギを推定する際に均質体として処理するのに十分に小さいものである。修正フォン照射モデルに従って、セル(又はサブセル)によって反射したレイエネルギ量を推定するために、以下のパラメータが利用可能であるべきである。
・セルでの一定のデータ値Vconst、
・セルでの局所データ値勾配ベクトル:
及び
・セル内のレイ経路の長さL。
【0093】
一定のデータ値Vconstを選択する時には異なる選択肢がある。一実施形態では、セルの8つのコーナでのデータ値の平均Vavgを取ることによって一定のデータ値Vconstをセルの中心のデータ値として選択する。更に別の実施形態では、一定のデータ値Vconstをセル内のレイ経路の中心のトリリニア補間データ値として選択する。図12(A)は、点Cに中心がある2Dセル1203を用いた2つの実施形態を示している。レイ1202は、点E1で2Dセル1203に入り、点E2で出て、セル内のレイ経路の中心は点C’である。第1の実施形態では、点Cでのデータ値は、反射レイエネルギ推定に使用され、点C’の補間データ値は、第2の実施形態で使用する。
【0094】
一定のデータ値Vconstの他に、別の重要なパラメータは、セルでの局所データ値勾配ベクトル:
である。一実施形態では、3つの座標x、y、及びzに対して前に明らかにしたトリリニア補間データ値V(x、y、z)の導関数を取ることによって局所勾配ベクトル:
を以下のように推定する。
【数13】
更に別の実施形態では、x、y、及びzに沿った2つの隣接セルのデータ値差を取ることによって局所勾配ベクトルを推定する。
【数14】
ただし、Δx、Δy、及びΔzは、各座標に沿ったセルのサイズを表している。図12(B)は、第2の実施形態による局所勾配ベクトルの計算の2Dバージョンを示している。
【数15】
【0095】
最後に、セルによって反射したレイエネルギ量は、セル内のレイ経路の長さに依存する。
が、一定のデータ値Vconst及び局所勾配ベクトル:
を有するセル内のレイ経路の単位長さ当たりの反射レイエネルギ量を表すとすると、反射レイエネルギ総量は、以下のように表現することができる。
【数16】
ただし、Lは、セル内のレイ経路の長さである。
【0096】
図12(C)及び図12(D)は、セル又はサブセル内のレイ経路の長さを計算する方法を示している。図12(C)に示すように、レイは、セルの1つのコーナである点Oでセルに入り、点Eでセルを出る。3つの座標x、y、及びz上のセル内のレイ経路Lの投影は、以下のように表現することができる。
【数17】
ただし、角α及びβは、図12(C)で定められている。従って、セル内のレイ経路の長さは、以下の通りである。
【数18】
又は、
【数19】
ただし、
【数20】
【0097】
図12(D)は、α及びβの関数として変動するパラメータhのグラフであり、ただし、0≦α≦π/2及び0≦β≦π/2である。本発明においては、パラメータhを予め計算してルックアップテーブル内に格納している。一組の投影(a、b、c)及びその付随する角α及びβを取得した後に、ルックアップテーブル内の対応するパラメータh及び従ってセル内のレイ経路の長さを見つけることは非常に効率的である。
【0098】
段階1108でMEDの半値が所定のエネルギ誤差閾値を依然として超える場合、コンピュータプログラムは、段階1110で、セルサブセルがレイ厚みのサイズに到達するかを検査する。上述のように、レイ厚みよりも小さいセル又はサブセルは、反射レイエネルギに対する貢献度がほとんどない。そうである場合、コンピュータプログラムは、更にセルをフラグメント化するのを止めて段階1124で反射レイエネルギを計算する。そうでなければ、段階1112でセルを8つのサブセルにフラグメント化し、各サブセル内のMEDの更なる半値が所定のエネルギ誤差閾値よりも小さいか又はサブセルがレイ厚みのサイズに到達するまで、MEDの半値を更に相応に半分にする。
【0099】
図12(E)及び図12(D)は、異なる数のサブセルにフラグメント化した後に段階1108で条件を満足した2つの2Dセルを示している。図12(E)においては、セル1205を4つのサブセルにフラグメント化し、各サブセル内のレイ経路の長さによって示すように、その中で2つのサブセル1205−1及び1205−2は、レイ1204と実質的な相互作用を行い、サブセル1205−3は、ほとんど相互作用を行わない。図12(F)においては、セル1207は、段階1108で試験に合格するために16個のサブセルにフラグメント化しなければならず、そのうちの6個(1207−1から1207−6)は、レイ1006と実質的な相互作用を行い、サブセル1207−7は、レイ1206とはほとんど相互作用を行わない。1205−3及び1207−7などのサブセルを飛び越すと、あまり多くの誤差を導入することなく反射レイエネルギを推定する際の計算経費のかなりの量の節約になる。各サブセルには一定のデータ値を割り当てる。サブセルに対して反射レイエネルギを計算する方法は、段階1110でセル1203に対して反射エネルギを計算するのに使用する方法と同じものである。
【0100】
不透明性伝達関数がサブボリューム(図10(B))のVminとVmaxの間で単調でない場合、コンピュータプログラムは、段階1102で選択したセルを段階1114で8つのサブセルにフラグメント化し、その後、段階1116でサブセルがレイ厚みのサイズに到達するかを検査する。そうである場合、コンピュータプログラムは、段階1124に移動して反射レイエネルギを計算する。そうでなければ、コンピュータプログラムは、段階1114に戻って、最小サブセルがレイ経路のサイズに到達するまで各サブセルをより小さなものにフラグメント化する。
【0101】
最小サブボリューム内の不透明性分布が単調ではない時の適応レイキャスティングの2D実施例として図12(E)及び図12(D)を再度使用する。具体的には、レイ1206の厚みW2は、レイ1204の厚みW1よりも小さいことから、セル1207は、既に4×4つまり16個のサブセルにフラグメント化されており、一方、セル1205は、2×2つまり4個のサブセルにフラグメント化されている。一実施形態では、図12(E)及び図12(D)の異なる充填パターンで示すように、サブセルの中心の補間データ値に基づいて、各サブセルに一定のデータ値を割り当てる。レイ1204の点線による中心線は、レイが2つのサブセル1205−1及び1205−2と実質的に相互作用し、その各々が一部の反射エネルギをレイ原点に反射することを示している。2つのサブセル1205−1及び1205−2からの反射レイエネルギの合計は、セル1205によって反射したレイエネルギを構成する。同様に、6つのサブセル1207−1から1207−6からの反射レイエネルギの合計は、セル1207から反射したレイエネルギを構成する。これとは対照的に、図12(E)のサブセル1205−3及び図12(F)のサブセル1207−7は、それぞれ、レイ1204及び1206とはほとんど相互作用しないことから、反射レイエネルギを推定する際には飛び越される。
【0102】
一般的に、図12(F)などのセルのより細かなフラグメント化では、通常、より正確な反射エネルギ推定が得られるが、レイとサブセルの間の相互作用の回数が2回から5回に増加することから計算経費が高くなる。コンピュータプログラムは、計算経費と画質の間の光学的均衡が得られるように、所定のエネルギ誤差閾値及びレイ厚みを調整することによってフラグメント化レベルを制御する。
【0103】
最後に、不透明性伝達関数は、不連続、例えば、VminとVmaxの間のデータ値Visoでゼロに落ちるか又はゼロからジャンプする不透明性を有することができる(図10(C))。不透明性伝達関数内に不連続を有する目的は、このような不透明性伝達関数が見る者に興味深くない画像ボリュームのある一定の部分にゼロ不透明性を持たせ、従ってレイに対して透明であるようにすることができるということである。レイは、不透明性がゼロである画像ボリューム内のいずれかの区域を通る時には、いかなるエネルギも失わない。その結果、見る者により興味深い画像ボリュームの他の区域を照明するのにより多くのレイエネルギが使用される。例えば、患者の心臓のより良い画像をもたらすためには、レイが心臓の表面に到達する前にレイエネルギ損失がないように、心臓を取り囲む組織にはゼロ不透明性を割り当てることが好ましい。
【0104】
最小サブボリュームが図10(C)に類似した不透明性伝達関数を有する時には、サブボリュームは、T(Vmin)=0又はT(Vmax)=0であることによってMEDが所定のエネルギ誤差閾値よりも大きいので、図8の段階812で試験に合格しない場合がある。関数がVminとVmaxの間で単調であったとしても、MEDを推定するのに使用する方法は、段階1106にはもはや適切ではない場合がある。すなわち、不透明性伝達関数に不連続があるために、最小サブボリュームのMEDの半値は、最小サブボリューム内のセルのMEDの妥当な推定値とはなり得ない。
【0105】
例えば、図10に示すように、セルの最小及び最大のデータ値がそれぞれV1及びV2である場合、段階1106で計算したMEDの半値は、V1及びV2に対応するO1及びO2の間の不透明性差が非常に小さいことから、V1及びV2に基づいてセルの正確なMEDよりも実質的に高くなることになる。代わりに、コンピュータプログラムは、段階1118でセルの8つのコーナでのデータ値からV1及びV2を選択する。その後、コンピュータプログラムは、段階1120でV1及びV2の間の不透明性伝達関数の種類を評価する。不透明性伝達関数がセル内で単調である場合、コンピュータプログラムは、段階1122でV1及びV2を用いてセルの正確なMEDを計算し、セルは、その後、第1のカテゴリと同じとして処理される。不透明性伝達関数が単調ではない場合、セルは、第2のカテゴリと同じとして処理される。
【0106】
上述で明らかにしたように、所定のエネルギ誤差閾値は、本発明による直接ボリュームレンダリング方法の効率及び精度に直接に影響を与える重要なパラメータである。この閾値は、セル又はサブセルが一定の不透明性値を有する均質体として処理されるために画像ボリュームをいかに小さくフラグメント化すべきであるかを実質的に判断するものである。閾値を小さくすると、結果的にレイと相互作用するより小さなサブセル数が大きくなり、それによって適応レイキャスティング当たりの計算経費が増え、閾値を大きくすると、全く反対の結果が出る。
【0107】
本発明の一実施形態では、所定のエネルギ誤差閾値は、画像間の定数ではなく、許容可能な経費で最適な画像を発生させるためにレイキャスティング間で動的に調整するものである。E0は異なる可視化パラメータを有する一連の画像に対してユーザが定めた初期エネルギ誤差閾値であると仮定して、カスタマイズされたエネルギ誤差閾値を以下のように定める。
・平行投影の場合は、E(E0,Pzoom)=E0/Sqrt(Pzoom)、ただし、Pzoomは、画像の物理的サイズを示すズーム因子であり、
・透視投影の場合は、E(E0,Pdistance)=E0*Log2(Pdistance)、ただし、Pdistanceは、レイ原点と画像ボリュームの中心との間の距離である。
【0108】
明らかに、平行投影の場合にズーム因子Pzoomを大きくすると所定のエネルギ誤差閾値は小さくなり、従って、画像ボリュームは、反射レイエネルギを推定する時にはより小さなサブボリュームにフラグメント化すべきである。その結果、画像解像度は向上し、画像上で感知されるジッター効果は小さくなる。これとは対照的に、透視投影の場合にレイ原点と画像との間の距離Pdistanceを大きくすると、画質には反対の影響を与える。
【0109】
画質の他に、使い易さは、直接ボリュームレンダリングアルゴリズムを評価する時の別の重要な要素である。例えば、画像平面を画像ボリュームに対して位置決めする時間と画像をコンピュータモニタ上でレンダリングする時間との間の時間遅延は、心血管疾患診断などの動的用途においては非常に不便なものである。このような遅延を低減して診断処理にわたってユーザにより多くの制御を与えるために、所定のエネルギ誤差閾値は、望ましい毎秒フレーム数(DFPS)と実際の毎秒フレーム数(AFPS)との間の比率によって更に修正することができる。
・平行投影の場合、E(E0,Pzoom,DFPS,AFPS)=E(E0,Pzoom)*DFPS/AFPS、及び
・透視投影の場合、E(E0,Pdistance,DFPS,AFPS)=E(E0,Pdistance)*DFPS/AFPS
【0110】
その名称が示すように、DFPSは、ユーザが好む画像レンダリング速度であり、AFPSは、以下に限定されるものではないが、コンピュータハードウエア、画像平面上のピクセル数、及び画像ボリューム、並びにデフォルト画像解像度を含むシステム設定によって限定されるものである。従って、好ましい画像レンダリング速度がシステム設定によって提供されたものよりも高い、つまり、DFPSがAFPSよりも高い場合、所定のエネルギ誤差閾値は、相応に大きくなる。この場合、ユーザが好む画像レンダリング速度を達成するために画質を若干犠牲にすることは許容可能である。他方、好ましい画像レンダリング速度がシステム設定で到達することができるものより低い、つまり、DFPSがAFPSよりも低い場合、所定のエネルギ誤差閾値は、ユーザが定めた速度でより品質が高い画像を発生させるように相応に小さくなる。
【0111】
2D画像推定
各レイに対して、3D適応レイキャスティングでは、一連のサブボリュームから2D画像平面上の特定の位置に向けて反射したレイエネルギを推定する。一実施形態では、特定の位置は、レイ原点になるように選択される。各レイ原点での反射レイエネルギを合計し、その後、ピクセル値に変換する。3D適応レイキャスティングは、相対的に高価である作業であることから、本発明による直接ボリュームレンダリングアルゴリズムの効率は、2D画像を発生させるように投射すべきであるレイの数に依存する。図13(A)は、2D画像推定が、画質に及ぼす影響が知覚できないものではないにしても無視可能であるようにレイキャスティングの回数を低減するような最適な方法で適応レイキャスティング処理を誘導する、好ましい実施形態、例えば、コンピュータプログラムを示している。
【0112】
段階1302で、コンピュータプログラムは、図1(A)及び図1(B)に示すように、3Dデータセットからある一定の距離を隔てて、かつ3Dデータセットからある一定の方向に向けられた2D画像平面を定める。画像平面は、通常はN×N個の要素を含む2Dアレイによって表され、2Dアレイの各要素は、画像平面上の対応する位置の1つのピクセル値を格納する。従って、平面上に発生した画像は、N×N個のピクセル、例えば、512×512個のピクセルを有する。
【0113】
段階1304で、コンピュータプログラムは、画像平面を同じサイズの複数のサブ平面に細分化し、各サブ平面は、2Dアレイ内の1つの部分に対応する。一実施形態では、512×512個のピクセルを含む画像平面を32×32(=1024)個のサブ平面に細分化し、各サブ平面は、16×16個のピクセルを含む。サブ平面のサイズは、隣接するサブ平面の間にかなりの程度のピクセル値変動があるという仮定で選択される。
【0114】
段階1306で、前の段階で発生した各サブ平面に対して、コンピュータプログラムは、サブ平面の4つのコーナからの4つのレイを各コーナに1つ3Dデータセットに投射し、適応レイキャスティングを用いて4つのコーナの4つのピクセル値を計算する。
【0115】
段階1307から始めて2Dアレイ内の全ての要素をピクセル値と関連付けるために、各サブ平面を再帰的に処理する。この再帰的処理の終わりには、3Dデータセットの2D画像が2Dアレイ内に発生している。より具体的には、1つのサブ平面を選択し、段階1307でレイをサブ平面の中心から3Dデータセットに向けて反射させ、これによって中心にピクセル値が生成され、また、サブ平面が4つのより小さな子サブ平面に細分化される。例えば、選択したサブ平面が16×16個のピクセルを有する場合、各子サブ平面は、8×8個のピクセルを有する。
【0116】
段階1308で、コンピュータプログラムは、親サブ平面上の全てのピクセルが補間又はレイキャスティングによって固有のピクセル値を有するように全ての4つの子サブ平面が処理されているかを検査する。そうである場合、コンピュータプログラムは、更に、段階1312で処理されていない親サブ平面で段階1304で発生したものがあるかを検査する。段階1312での結果が偽の場合、2Dアレイ内の全ての要素にはピクセル値が割り当てられており、グラフィック表示装置、例えば、コンピュータモニタ上でのレンダリングに対して準備完了である2D画像がアレイ内に形成されていることを意味する。段階1312からの結果が真の場合、コンピュータプログラムは、段階1307に戻って段階1304で発生した次のサブ平面を処理し始める。
【0117】
段階1308からの結果が偽の場合、コンピュータプログラムは、1つの未処理子サブ平面を選択して子サブ平面の他のコーナでピクセル値を計算する。図13(B)は、段階1307及び段階1310で行う作業を示す例である。サブ平面1340は、16×16個のピクセルを含み、ピクセル値P1からP4をサブ平面の4つのコーナのピクセルと関連付ける。段階1307で、新たなレイをサブ平面の中心から投射すると、新しいピクセル値P5が発生し、かつ、サブ平面1340は、4つの子サブ平面1349から1348に細分化される。段階1310で、コンピュータプログラムは、1つの子サブ平面、例えば、1344を選択し、サブ平面の他の3つのコーナから3つのレイを反射させると、更に3つのピクセル値P6からP8が発生する。
【0118】
段階1314で、コンピュータプログラムは、子サブ平面内のピクセル数が2×2(=4)個であるか否かを検査する。ピクセル数が4である場合、段階1310でピクセル値なし状態のピクセルはないので、コンピュータプログラムは、段階1308に戻って次の子サブ平面があれば処理する。
【0119】
ピクセル数が4ではない、例えば、サブ平面1344が8×8個のピクセルを有する場合、段階1316で、コンピュータプログラムは、この子サブ平面の最大ピクセル値変動(MPVV)を計算する。その名称が示すように、MPVVは、子サブ平面内のピクセル値分布を測るものである。一実施形態では、MPVVは、以下のように定められる。
【数21】
ただし、Sは、サブ平面内のピクセル総数であり、P1からP4は、サブ平面のコーナのピクセル値であり、Pavgは、以下のようにP1からP4の平均である。
【数22】
【0120】
段階1317で、コンピュータプログラムは、本発明における画像解像度及び画像レンダリング速度に実質的に影響を及ぼす重要なパラメータである所定の画像化誤差閾値を修正する。例えば、所定の画像化誤差閾値を小さくすると、段階1320で子サブ平面1344はより小さな子サブ平面にフラグメント化される。これに応答して、コンピュータプログラムが各子サブ平面の中心で行う適応レイキャスティングの回数が多くなる。この結果、適応レイキャスティングによって発生したピクセル値がバイリニア補間によって発生したものよりも正確であるために、内部構造の縁部に対応する子サブ平面1344内の画像、例えば、医療画像内の骨の解像度が高くなる。他方、適応レイキャスティングは、バイリニア補間よりも遥かに経費の掛かる作業である。所定の画像化誤差閾値の修正に関するより詳細は、図14(A)から図14(C)に関連して以下に示している。
【0121】
段階1318では、子サブ平面1344のMPVVを段階1317で修正した所定の画像化誤差閾値と比較する。子サブ平面1344のMPVVが所定の画像化誤差閾値を超える場合、段階1320で新しいレイをこの子サブ平面の中心から放出し、これによって新しいピクセル値P9が発生する。その後、子サブ平面1344を4つのより小さな子サブ平面に細分化し、各サブ平面は、4×4個のピクセルのみを含む。
【0122】
段階1318で子サブ平面1344のMPVVが所定の画像化誤差閾値よりも小さい場合、子サブ平面内のピクセル値変動を補間によって概算することができる。一実施形態では、サブ平面内のピクセル値分布をサブ平面のコーナの4つのピクセル値のバイリニア補間によって概算する。図13(C)に示すように、どの位置(x、y)のピクセル値P(x、y)も以下のようにバイリニア補間することができる。
【数23】
【0123】
段階1320又は段階1322の後に、コンピュータプログラムは、段階1308に戻って次の子サブ平面があれば処理する。この処理は、2Dアレイ内の全ての要素が3D適応レイキャスティング又はレイキャスティング結果のバイリニア補間のいずれかを通じて作成された画像平面上の1つの位置に対応するピクセル値を格納するまで続く。最後に、コンピュータモニタなどのグラフィック表示装置上にレンダリングすることができる3Dデータセットの2D画像が作り出される。
【0124】
上述のように、所定の画像化誤差閾値を使用して本発明の画像解像度及び画像レンダリング速度を調整することができる。具体的には、2D画像の異なる部分の異なる画像解像度要件に対応するように、所定の画像化誤差閾値をサブ平面間で動的に調整する。例えば、サブ平面がオブジェクトの縁部などの複雑な内部構造又は高周波画像成分を含まない場合、所定の画像化誤差閾値は、比較的高いマグニチュードに設定され、その逆も可能である。一実施形態では、画質と画像レンダリング速度との均衡が得られるように、所定の画像化誤差閾値を調整する時に3つの方法を使用する。図13(A)の段階1317で示すように、それらは以下のものである。
・シェーディング縁部検出、
・バイリニア補間誤差分析、及び
・オクトリ横縁部検出。
【0125】
一般的に、人間の目は高周波成分に対して敏感であるから、画像の解像度は、高周波成分、例えば、オブジェクトの縁部により多く依存する。しかし、バイリニア補間は、たとえ効率的であっても、本質的にローパスフィルタであるために画像の高周波成分を不鮮明にする傾向がある。従って、本発明では、適応レイキャスティングを使用して、必要な時にいつでも画像化誤差閾値を小さくすることによってピクセル値を推定する。そうするために、コンピュータプログラムは、縁部を含むか又はそれに接近するサブ平面を処理することになることを予め知る必要がある。シェーディング縁部検出は、このような目的で設計された方法である。
【0126】
図14(A)は、2D実施例を用いたシェーディング縁部検出の原理を示している。複数のレイ1410を画像線1420から画像ボリューム内に埋められた2Dオブジェクトに向けて放出させた時、その一部、例えばレイ1410−3は、オブジェクトの中央区域と相互作用し、その一部、例えばレイ1410−1は、オブジェクトの縁部と相互作用する。上述のように、異なるレイ経路に対応するオブジェクトの局所勾配ベクトルは、矢印1440−1及び1440−3のような反射レイエネルギを推定するために既に計算されている。
【0127】
その後、コンピュータプログラムは、各局所勾配ベクトルを対応するレイ経路上に投影し、投影勾配ベクトルの長さ、つまり、勾配ベクトルとレイ経路の間の角度の余弦値は、レイがオブジェクトの縁部に接近するか否かを示している。例えば、矢印1450−1のようなより小さな余弦値は、レイ1410−1がオブジェクト1430の左縁部に非常に近いことを示しており、この区域のピクセル値は、バイリニア補間ではなく、適応レイキャスティングを通じて推定すべきであることを示唆している。これに応答して、コンピュータプログラムは、段階1318での条件を満足するためにレイ1410−1の原点近くのサブ平面をより小さな子サブ平面に細分化すべきであるように、所定の画像化誤差閾値を小さくする。
【0128】
これとは対照的に、矢印1450−3のようなより大きな余弦値は、レイ1410−3の原点近くの画像変動が小さく、また、バイリニア補間によるピクセル値が十分に正確であることを示唆している。その結果、その区域内の所定の画像化誤差閾値は、小さくなる必要がないか又は大きくなることさえできる。画像化誤差閾値のこのような適応配置により、確実に必要な場合にのみ高価である適応レイキャスティング作業が行われ、また、画像解像度の損失がほとんどなくコンピュータリソースの使用量が少なくなる。
【0129】
ピクセル値のレイキャスティングバージョンの方が正確であるにしても、それは、対応する補間バージョンを無用にするものではない。実際には、2つのバージョンの差又はバイリニア補間誤差は、画像化誤差閾値を異なるサブ平面に適応させる方法に関する重要な指示の役目を果たすものである。図14(B)に示すように、サブ平面1460は、4つのコーナに4つの既知のピクセル値P1からP4を有する。サブ平面1460の中心にあるバイリニア補間ピクセル値P5'は以下のように定められる。
【数24】
【0130】
一方、サブ平面1460を4つのより小さなサブ平面に細分化した時にピクセル値P5も適応レイキャスティングで発生し、2つのピクセル値の間の絶対差|P5−P5'|は、バイリニア補間の結果がこのサブ平面1460内でいかに正確であるかを示すものであると仮定する。例えば、より大きな絶対差は、サブ平面を更にフラグメント化する必要があるということを意味するばかりでなく、サブ平面460内に実質的なピクセル値変動がある可能性があることも示唆している。これに対応して、コンピュータプログラムは、サブ平面上の画像ボリューム内の内部構造の3D特性を完全に捕捉するように大幅に画像化誤差閾値を小さくすることができる。他方、画像レンダリング速度を向上させるが画像解像度をあまり多く損失しないように、より小さな絶対差に応答して所定の画像化誤差閾値を大きくすることができる。
【0131】
オクトリ横縁部検出とは、反射レイエネルギを推定するために選択したサブボリューム、セル、又はサブセルと、画像ボリューム内に埋められたより小さな3Dオブジェクト又は3Dオブジェクトの鋭い縁部を捕捉するための画像平面との間のサイズ差を検査することによって画像化誤差閾値を調整する方法を意味する。図14(C)の例においては、2Dデータセット1480は、少なくとも2つのオブジェクト1482及び1484を含み、2Dデータセットの長さはDである。データセット1480の内側には、画像平面1470があり、画像平面1470の長さはLである。反射レイエネルギ推定に寄与する異なるサイズの一連のサブボリュームがレイ経路1472に沿って存在する。拡大ビュー1490は、オブジェクト1482内のこれらのサブボリュームの一部の詳細を示している。データセットの最大フラグメント化レベルがQである仮定すると、小さなオブジェクト又はレイ経路近くのオブジェクトの鋭い縁部の存在を示すパラメータZが以下のように定められる。
【数25】
【0132】
正のZは、拡大ビュー1490内にオブジェクト1482の鋭い縁部を含む小さなブロックのような、レイと相互作用するいくつかの非常に小さいサブボリュームがレイ経路1472に沿って存在することを意味する。すなわち、正のZは、レイ経路1472の原点近くの画像平面1470上の所定の画像化誤差閾値が小さなオブジェクト又は鋭い縁部を見失わないように小さくなるべきであることを示唆している。
【0133】
最後に、所定のエネルギ誤差閾値と類似である所定の画像化誤差閾値も、望ましい毎秒フレーム数と実際の毎秒フレーム数との比率に従って調整することができる。比率が1よりも大きいと、レンダリングする必要がある画像フレーム数は、システムのデフォルトレンダリング能力よりも多くなる。その結果、所定の画像化誤差閾値は大きくなり、各画像フレームに対して割り当てられるシステムリソースは少なくなる。比率が1よりも小さいと、レンダリングする必要がある画像フレーム数は、システムのデフォルトレンダリング能力よりも少なくて済む。従って、所定の画像化誤差閾値は小さくなり、各画像フレームに対して割り当てられるシステムリソースは多くなる。
【0134】
上述の適応直接ボリュームレンダリング方法は、一般的なコンピュータシステム内で実施することができ、特別なハードウエアサポートは不要である。図15は、本発明によるこのようなシステム1500を示している。適応直接ボリュームレンダリングシステム1500は、一般的に、1つ又はそれよりも多くの中央演算処理装置(CPU)1502、メモリ1514、及びシステム1500の様々な構成要素を相互接続する1つ又はそれよりも多くの通信バス1512を含む。また、適応直接ボリュームレンダリングシステム1500は、例えば、3Dデータセットの2D画像を表示する表示装置及びユーザの画像レンダリング要求を受け取るためのキーボード1508を含むユーザインタフェース1504を含む。システム1500は、任意的に、3Dデータセットを遠隔記憶装置から検索するか又はレンダリング結果を遠隔地のクライアントに送信するネットワーク又は他の通信インタフェースを含むことができる。
【0135】
メモリ1514は、高速ランダムアクセスメモリを含み、1つ又はそれよりも多くの磁気ディスク記憶装置のような不揮発性メモリ(図示せず)も含むことができる。また、メモリ1514は、中央演算処理装置1502から遠隔に位置する大容量記憶装置を含むことができる。メモリは、以下を格納することが好ましい。
・様々な基本的なシステムサービスを処理し、かつハードウエア依存タスクを実行するための手順を含むオペレーティングシステム1516、
・「インターネット」、他の広域ネットワーク、ローカルエリアネットワーク、及びメトロポリタンエリアネットワークなどのような1つ又はそれよりも多くの通信ネットワーク(有線又は無線)を通じて、システム1500を様々なセキュリティ装置又はクライアントコンピュータ(図示せず)及び場合によっては他のサーバ又はコンピュータに接続するのに使用されるネットワーク通信モジュール1518、
・システム1500の作動に必要とされるメモリ1514に記憶された他のモジュール及びデータ構造を初期化するシステム初期化モジュール1520、
・3Dデータセットの2D画像を発生させて表示装置1506上でレンダリングする適応ボリュームレンダリングエンジンモジュール1522、
・3Dデータセット、及びフラグメント化した3Dデータセットを表す対応するオクトリ構造、
・2D画像データセット、及びフラグメント化した2D画像を表す対応する四分木構造、及び
・3Dデータセット内の各要素の不透明性値を判断する不透明性伝達関数表。
【0136】
直接ボリュームレンダリングエンジンモジュール1522は、実行可能な手順、サブ手順、及び以下のような適応ボリュームレンダリング処理をサポートする他のデータ構造を含む。
・3Dデータセットを複数のサブボリュームにフラグメント化し、各サブボリュームに対して一組のデータ値パラメータを計算し、オクトリ構造を構成し、各サブボリュームをオクトリ上の1つのノードに関連付ける3Dデータセットフラグメント化モジュール1524、
・所定のエネルギ誤差閾値に基づいてレイと相互作用する一連のサブボリュームを選択し、その後、修正フォン照射モデルを用いて各サブボリュームによって反射レイエネルギを推定する3D適応レイキャスティングモジュール1526、及び
・3D適応レイキャスティングモジュールを選択的に呼び出し、適応レイキャスティングによって推定したピクセル値に対して四分木構造を構成し、2D画像平面上のレイ原点でピクセル値を補間することによって3Dデータセットの2D画像を構成する2D画像レンダリングモジュール1528。
【0137】
レイと相互作用することができるサブボリュームの位置を迅速に見つけるために、不透明性伝達関数表1544は、以下を含むことが好ましい。
・任意のデータ値と不透明性が極値になる任意のデータ値よりも高い指定のデータ値との間のデータ値差を格納する順方向ルックアップテーブル1546、及び
・任意のデータ値と不透明性が極値になる任意のデータ値よりも低い指定のデータ値との間のデータ値差を格納する逆方向ルックアップテーブル1548。
【0138】
図13(A)に示すように、2D画像推定中に、システム1500は、最初に画像平面を複数のサブ平面に細分化し、その後、各サブ平面を順次処理し、バイリニア補間又は必要であれば適応レイキャスティングを通じて、サブ平面上の全てのピクセルがピクセル値と関連付けられる。最後に、システム1500は、異なるサブ平面に付随するピクセル値を単一の2D画像に組み立て、コンピュータモニタ上でそれをレンダリングする。1つのサブ平面の処理結果は、別のサブ平面のものとは独立したものであるから、適応直接ボリュームレンダリングアルゴリズムは、実際には、パラレルコンピュータ又はコンピュータクラスター上で実行することができるパラレルアルゴリズムである。
【0139】
図16は、コンピュータクラスター1600を使用する本発明の一実施形態を示している。クラスター1600は、以下を含む。
・1つ又はそれよりも多くの画像ボリュームを格納するデータ記憶装置1610、例えばハードディスク、
・各サーバが好ましくは1つ又はそれよりも多くのCPUと直接ボリュームレンダリングソフトウエアを格納する独自のメモリとを有する複数のコンピュータサーバ1630、
・クラスターによって発生した画像を表示するコンピュータモニタ1650、
・指令及びレンダリングパラメータをユーザから受け取るキーボード1670及びマウス1690、及び
・様々な構成要素を接続する通信バス1620。
【0140】
例示的に、クラスター1600内には4つのサーバがあり、各サーバは、部分画像1640によって示すように、最終画像の1/4を発生させることを担っている。各サーバ内では、サーバ当たりに1つよりも多いCPUがある場合は、異なるCPU間でジョブを更に仕切ることができる。全ての部分画像1640が発生した後に、サーバの1つは、部分画像1640を完全な画像に組み立て、モニタ1650上でそれをレンダリングする。
【実施例】
【0141】
図17から図20は、異なる産業上の用途に即した本発明の使用例を示している。図17A及び図17Bは、CTスキャンで生成した医療画像ボリュームから発生した2つの画像である。画像1710は、異なる骨及び器官並びに人体内での相対的位置を示している。画像1720は、特定の骨に関するかなりの詳細を明らかにしている。
【0142】
図18は、異なる位置かつ異なる可視化パラメータ、例えば、不透明性伝達関数を用いて同じ画像から発生した人体の3つの画像を示している。画像1810を発生させる時に、かなりの量のレイエネルギが人体の皮膚から反射されるように可視化パラメータを選択する。その結果、内臓及び人体の輪郭の両方を画像内で見ることができる。これとは対照的に、結腸を残して肉体組織及び内臓の大部分は画像1820から除去されており、これは、通常のX線写真と類似ものであるがそれよりも精巧である。画像1820のような画像を発生させる利点は、医師が患者に不便さを引き起こすことなく、画像1830内に示すような仮想結腸鏡検査を行うことができるという点である。
【0143】
図19は、エンジンの異なる部分を示している。画像1910及び1920は、発生位置は同じであるが、可視化パラメータが僅かに異なっている。その結果、画像1920のエンジンは、画像1920よりも透明に見える。この差は、拡大画像1930及び1940間でより明白である。最後に、図20は、エンジンの異なる構成要素を示す一組の画像である。
【0144】
以上の説明は、説明を目的として特定的な実施形態を参照して行ったものである。しかし、上述の例示的な説明は、網羅的であること又は開示した正確な形態に本発明を限定することを意図していない。多くの修正及び変形が以上の教示の見地から可能である。実施形態は、本発明の原理及びその実際的な用途を最も良く説明し、それによって当業者が予想される特定の使用に適するような様々な修正を用いて本発明及び様々な実施形態を最も良く利用することができるように選んで説明したものである。
【図面の簡単な説明】
【0145】
【図1(A)】本発明の実施形態による直接ボリュームレンダリングの基本原理を理解する際に有用な概略図である。
【図1(B)】本発明の実施形態による直接ボリュームレンダリングの基本原理を理解する際に有用な概略図である。
【図1(C)】異なる画像解像度の3Dオブジェクトの3つの画像を示す図である。
【図1(D)】3D採取データセットの形で表された3Dオブジェクトを示す図である。
【図2】本発明の一実施形態による直接ボリュームレンダリングアルゴリズムを示す流れ図である。
【図3(A)】3Dデータセットフラグメント化の1つの特定的な実施形態を示す図である。
【図3(B)】8つのセル又はボクセル含むサブボリュームと、ボクセル又はセル内のスカラー場分布とを示す図である。
【図4】3Dデータセットフラグメント化のコンピュータ実装を示す流れ図である。
【図5(A)】直接ボリュームレンダリングで使用される不透明性伝達関数を示す図である。
【図5(B)】不透明性伝達関数に付随する2つのルックアップテーブル、すなわち、順方向ルックアップテーブル及び逆方向ルックアップテーブルを示す図である。
【図6】レイと一連のサブボリュームとの間の相互作用によるレイエネルギ損失を示す図である。
【図7(A)】フォン照射モデルによる3つの形式の反射の1つである周囲反射を示す図である。
【図7(B)】フォン照射モデルによる3つの形式の反射の1つである拡散反射を示す図である。
【図7(C)】フォン照射モデルによる3つの形式の反射の1つである鏡面反射を示す図である。
【図8】本発明の実施形態による反射レイエネルギを推定するためのコンピュータプログラムを示す流れ図である。
【図9(A)】本発明による適応レイキャスティングの重要な特徴を示す単純な2D実施例の一方を示す図である。
【図9(B)】本発明による適応レイキャスティングの重要な特徴を示す単純な2D実施例の他方を示す図である。
【図10(A)】サブボリューム内の不透明性分布の3つのカテゴリの1つを示す図である。
【図10(B)】サブボリューム内の不透明性分布の3つのカテゴリの1つを示す図である。
【図10(C)】サブボリューム内の不透明性分布の3つのカテゴリの1つを示す図である。
【図11】セル又はサブセルレベルでの反射レイエネルギ推定の異なる手法を示す流れ図である。
【図12(A)】セル又はサブセルレベルでの反射レイエネルギ推定の異なる手法を示す2D実施例を示す図である。
【図12(B)】セル又はサブセルレベルでの反射レイエネルギ推定の異なる手法を示す2D実施例を示す図である。
【図12(C)】セル又はサブセル内のレイ経路の長さを計算する方法を示す図である。
【図12(D)】セル又はサブセル内のレイ経路の長さを計算する方法を示す図である。
【図12(E)】異なるサブセル数にフラグメント化された2Dセルを示す図である。
【図12(F)】異なるサブセル数にフラグメント化された2Dセルを示す図である。
【図13(A)】本発明による2D画像推定を示す流れ図である。
【図13(B)】本発明によるサブ平面内の2D画像推定の例を示す図である。
【図13(C)】ピクセル値のバイリニア補間の例を示す図である。
【図14(A)】所定の画像化誤差閾値を修正する3つの1つの方法を示す図である。
【図14(B)】所定の画像化誤差閾値を修正する3つの1つの方法を示す図である。
【図14(C)】所定の画像化誤差閾値を修正する3つの1つの方法を示す図である。
【図15】本発明による適応画像ボリュームレンダリングシステムのブロック図である。
【図16】本発明によりコンピュータクラスターに実装された適応画像ボリュームレンダリングシステムのブロック図である。
【図17】医療画像ボリュームの適応直接ボリュームレンダリングを通じて人体の異なる部分の2つの画像を示す図である。
【図18】適応直接ボリュームレンダリングシステムが異なる可視化パラメータ、例えば、異なる不透明性伝達関数を使用する時に同じ医療画像ボリュームの異なる3D特性を有する3つの画像を示す図である。
【図19】システムが異なる不透明性可視化パラメータ、例えば、異なる不透明性伝達関数を使用する時の自動車エンジンの4つの画像を示す図である。
【図20】自動車エンジンの異なる部分の別の4つの画像を示す図である。
【符号の説明】
【0146】
101 2D画像平面
102 放射面
104 レイ
106 画像ボリューム
【特許請求の範囲】
【請求項1】
適応直接ボリュームレンダリングの方法であって、
スカラー場の採取した3Dデータセットを異なるサイズの複数のサブボリュームにフラグメント化し、一組のデータ値パラメータに付随する各サブボリュームが、該サブボリューム内の該スカラー場のデータ値分布を特徴付ける段階と、
前記スカラー場のデータ値と照射モデルとに依存する不透明性伝達関数を定義する段階と、
各々が初期レイエネルギと断面とを有する複数のレイを2D画像平面から前記採取データセットに向けて選択的に投射する段階と、
を含み、
前記2D画像平面上の選択された位置から投射された各レイに対しては、
前記レイと相互作用するための前記複数のサブボリュームの部分集合を選択する段階と、
前記不透明性伝達関数及び前記照射モデルを用いて、前記部分集合の各サブボリュームによって反射された前記レイエネルギを推定する段階と、
前記2D画像平面上の前記選択された位置でのピクセル値として前記反射レイエネルギを合計する段階と、
を含み、
前記選択された位置での前記ピクセル値を用いて、前記2D画像平面上の他の位置のピクセル値を推定する段階、
を更に含むことを特徴とする方法。
【請求項2】
前記採取3Dデータセットをフラグメント化する段階は、
前記3Dデータセットを8つのサブボリュームにフラグメント化する段階と、
各サブボリュームに対して、それを最小サブボリュームのサイズが所定のサイズ限界に到達するまで8つのより小さなサブボリュームに再帰的にフラグメント化する段階と、
を含むことを特徴とする請求項1に記載の方法。
【請求項3】
前記所定のサイズ限界は、2×2×2の3Dセルを含むサブボリュームであり、各セルの8つのコーナは、前記スカラー場の8つのデータ値に関連していることを特徴とする請求項2に記載の方法。
【請求項4】
前記セル内の位置での前記データ値は、該セルの前記8つのコーナの前記8つのデータ値を用いてトリリニア補間されることを特徴とする請求項3に記載の方法。
【請求項5】
前記パラメータの組は、前記サブボリューム内の前記スカラー場の最大値、平均値、及び最小データ値を含むことを特徴とする請求項1に記載の方法。
【請求項6】
ルートノードと複数の中間ノードと複数の葉ノードとを含むオクトリを構成する段階と、
前記ルートノードを前記3Dデータセットに関連付ける段階と、
前記複数の葉ノードの各々を前記複数のサブボリュームからの最小サブボリュームに関連付ける段階と、
前記複数の中間ノードの各々を前記最小サブボリュームよりも大きな前記複数のサブボリュームからのサブボリュームに関連付ける段階と、
を更に含むことを特徴とする請求項1に記載の方法。
【請求項7】
前記2D画像平面から複数のレイを投射する段階は、
前記2D画像平面を複数のサブ平面に細分化する段階、
を含み、
前記複数のサブ平面の各々に対しては、
前記サブ平面の4つのコーナから4つのレイを投射し、各コーナでのピクセル値を推定する段階と、
前記サブ平面内の最大ピクセル値変動を計算する段階と、
前記サブ平面の前記最大ピクセル値変動が所定の画像化誤差閾値よりも小さくなるまで、該サブ平面の中心からレイを投射することにより、該サブ平面をより小さなサイズの複数の子サブ平面に再帰的に細分化する段階と、
を含む、
ことを特徴とする請求項1に記載の方法。
【請求項8】
前記サブ平面内の最大ピクセル値変動は、該サブ平面の前記4つのコーナのピクセル値の該サブ平面の平均ピクセル値からの最大偏差として定義されることを特徴とする請求項7に記載の方法。
【請求項9】
前記所定の画像化誤差閾値は、ユーザによって提供された画像レンダリング速度、前記3Dデータセットに埋められたオブジェクトの縁部までの距離、及び適応レイキャスティングから推定されたピクセル値とバイリニア補間から推定されたピクセル値との間の差によって調整されることを特徴とする請求項7に記載の方法。
【請求項10】
前記レイと相互作用するための複数のサブボリュームの部分集合を選択する段階は、
前記レイ経路に沿った最大サブボリュームとそれに対応する最大及び最小データ値とを識別する段階と、
前記不透明性伝達関数が前記最大及び最小スカラー場値の間で単調に変化するかを検査する段階と、
を含み、
前記関数が単調に変化しない場合には、再帰的に、
前記レイ経路に沿ったより小さなサブボリュームとそれに対応する最大及び最小データ値とを識別し、
前記不透明性伝達関数が前記より小さなサブボリュームの前記最大及び最小スカラー場値の間で単調に変化するかを検査する、
段階を含み、
前記関数が単調に変化する場合には、
前記サブボリュームが前記レイと相互作用している間に該サブボリュームによって反射したレイエネルギの量を計算する段階、
を含む、
ことを特徴とする請求項1に記載の方法。
【請求項11】
2つのルックアップテーブルが、前記不透明性伝達関数に関して構成され、それによって順方向ルックアップテーブルが、前記データ値の増加方向に沿った該不透明性伝達関数の最も近い極値に対する該データ値の差を含み、逆方向ルックアップテーブルが、該データ値の減少方向に沿った該不透明性伝達関数の最も近い極値に対する該データ値の差を含むことを特徴とする請求項10に記載の方法。
【請求項12】
前記サブボリュームの前記最大データ値が、該サブボリュームの前記最小データ値と前記順方向ルックアップテーブルに格納されたそれに対応するデータ値差との合計よりも小さいか、又は該サブボリュームの該最小データ値が、該サブボリュームの該最大データ値と前記逆方向ルックアップテーブルに格納されたそれに対応するデータ値差との間の差よりも大きい場合には、前記不透明性伝達関数は、該最小及び最大データ値の間で単調に変化することを特徴とする請求項11に記載の方法。
【請求項13】
前記部分集合の各サブボリュームによって反射したレイエネルギを推定する段階は、
前記サブボリュームの最大エネルギ差を推定する段階と、
前記最大エネルギ差を所定のエネルギ誤差閾値に対して比較する段階と、
を含み、
前記最大エネルギ差が前記所定のエネルギ誤差閾値よりも大きい場合には、再帰的に、
前記レイ経路に沿ってより小さなサブボリュームを選択し、
前記より小さなサブボリュームの新しい最大エネルギ差を推定する、
段階を含み、
前記最大エネルギ差が前記所定のエネルギ誤差閾値よりも小さい場合には、
前記照射モデルを用いて前記サブボリュームによって反射したレイエネルギの量を計算する段階、
を含む、
ことを特徴とする請求項1に記載の方法。
【請求項14】
前記最大エネルギ差は、前記不透明性伝達関数と前記サブボリュームの前記最大、平均、及び最小データ値とに依存することを特徴とする請求項13に記載の方法。
【請求項15】
前記サブボリュームによって反射したレイエネルギの量は、該サブボリューム内のレイ経路の長さ、該サブボリューム内の前記不透明性伝達関数、該サブボリュームの前記平均スカラー場値、及び該サブボリューム内のスカラー場の局所勾配ベクトルに依存することを特徴とする請求項13に記載の方法。
【請求項16】
前記サブボリュームが、2×2×2の3Dセルを含む最小サブボリュームである場合には、前記より小さなサブボリュームは、該最小サブボリューム内の3Dセルであり、前記不透明性関数が、該セル内で単調に変化しない場合には、該3Dセルは、最小サブセルの寸法が前記レイの断面の寸法に到達するまで複数のサブセルに更に分割されることを特徴とする請求項13に記載の方法。
【請求項17】
前記サブボリュームが、2×2×2の3Dセルを含む最小サブボリュームである場合には、前記より小さなサブボリュームは、該最小サブボリューム内の3Dセルであり、前記不透明性関数が、該セル内で単調に変化する場合には、該3Dセルの最大エネルギ差は、該サブボリュームの最大エネルギ差を2で割ることによって推定されることを特徴とする請求項13に記載の方法。
【請求項18】
前記サブボリュームが、2×2×2の3Dセルを含む最小サブボリュームである場合には、前記より小さなサブボリュームは、該最小サブボリューム内の3Dセルであり、前記不透明性伝達関数が該セル内で単調に変化し、かつ等表面が該3Dセルに存在する場合には、該3Dセルの最大エネルギ差は、該3Dセルの前記コーナでの8つのデータ値と該不透明性伝達関数とを用いて計算されることを特徴とする請求項13に記載の方法。
【請求項19】
前記所定のエネルギ誤差閾値は、平行投影の場合には、ユーザによって指定された画像レンダリング速度とズーム因子により、又は透視投影の場合には、透視角と前記画像平面及び前記3Dデータセット間の透視距離とにより調整されることを特徴とする請求項13に記載の方法。
【請求項20】
前記2D画像平面上の他の位置のピクセル値を推定する段階は、
各位置に対して、
前記位置を取り囲む4つのレイ原点に付随する4つのピクセル値を選択する段階と、
前記4つのピクセル値を用いて前記位置でのピクセル値をバイリニア補間する段階と、
を含むことを特徴とする請求項1に記載の方法。
【請求項21】
適応直接ボリュームレンダリングシステムであって、
プログラムを実行するための1つ又はそれよりも多くの中央演算処理装置と、
複数のボリュームレンダリングパラメータを受け取るためのユーザインタフェースと、
前記1つ又はそれよりも多くの中央演算処理装置によって実行可能な適応ボリュームレンダリングエンジンモジュールと、
を含み、
前記モジュールは、
スカラー場の採取3Dデータセットを異なるサイズの複数のサブボリュームにフラグメント化し、一組のデータ値パラメータに関連する各サブボリュームが、該サブボリューム内の該スカラー場のデータ値分布を特徴付けるような命令と、
前記スカラー場のデータ値と照射モデルとに依存する不透明性伝達関数を定義するための命令と、
各々が初期レイエネルギと断面とを有する複数のレイを2D画像平面から前記採取データセットに向けて選択的に投射するための命令と、
を含み、
前記2D画像平面上の選択された位置から放出された各レイに対しては、
前記レイと相互作用するための前記複数のサブボリュームの部分集合を選択するための命令と、
前記不透明性伝達関数と前記照射モデルを用いて、前記部分集合の各サブボリュームによって反射した前記レイエネルギを推定するための命令と、
前記2D画像平面上の前記選択された位置のピクセル値として、前記反射したレイエネルギを合計するための命令と、
を含み、
前記選択された位置での前記ピクセル値を用いて、前記2D画像平面上の他の位置のピクセル値を推定するための命令、
を更に含む、
ことを特徴とするシステム。
【請求項22】
前記採取3Dデータセットをフラグメント化する段階は、
前記3Dデータセットを8つのサブボリュームにフラグメント化する段階と、
各サブボリュームに対して、それを最小サブボリュームのサイズが所定のサイズ限界に達するまで8つのより小さなサブボリュームに再帰的にフラグメント化する段階と、
を含むことを特徴とする請求項21に記載のシステム。
【請求項23】
前記所定のサイズ限界は、2×2×2の3Dセルを含むサブボリュームであり、各セルの8つのコーナは、前記スカラー場の8つのデータ値に関連していることを特徴とする請求項22に記載のシステム。
【請求項24】
前記セル内のどの位置の前記データ値も、該セルの前記8つのコーナの前記8つのデータ値を用いてトリリニア補間されることを特徴とする請求項23に記載のシステム。
【請求項25】
前記パラメータの組は、前記サブボリューム内の前記スカラー場の最大値、平均値、及び最小データ値を含むことを特徴とする請求項21に記載のシステム。
【請求項26】
ルートノードと複数の中間ノードと複数の葉ノードとを含むオクトリを構成するための命令と、
前記ルートノードを前記3Dデータセットに関連付けるための命令と、
前記複数の葉ノードの各々を前記複数のサブボリュームからの最小サブボリュームに関連付けるための命令と、
前記複数の中間ノードの各々を前記最小サブボリュームよりも大きな前記複数のサブボリュームからのサブボリュームに関連付けるための命令と、
を更に含むことを特徴とする請求項21に記載のシステム。
【請求項27】
前記2D画像平面から複数のレイを選択的に投射するための命令は、
前記2D画像平面を複数のサブ平面に細分化する段階、
を含み、
前記複数のサブ平面の各々に対しては、
前記サブ平面の4つのコーナから4つのレイを投射し、各コーナでのピクセル値を推定する段階と、
前記サブ平面内の最大ピクセル値変動を計算する段階と、
前記サブ平面の前記最大ピクセル値変動が所定の画像化誤差閾値よりも小さくなるまで、該サブ平面の中心からレイを投射することにより、該サブ平面をより小さなサイズの複数の子サブ平面に再帰的に細分化する段階と、
を含む、
ことを特徴とする請求項21に記載のシステム。
【請求項28】
前記サブ平面内の最大ピクセル値変動は、該サブ平面の前記4つのコーナのピクセル値の該サブ平面の平均ピクセル値からの最大偏差として定義されることを特徴とする請求項27に記載のシステム。
【請求項29】
前記所定の画像化誤差閾値は、ユーザによって提供された画像レンダリング速度、前記3Dデータセットに埋められたオブジェクトの縁部までの距離、及び適応レイキャスティングから推定されたピクセル値とバイリニア補間から推定されたピクセル値との間の差によって調整されることを特徴とする請求項27に記載のシステム。
【請求項30】
前記レイと相互作用するための複数のサブボリュームの部分集合を選択するための命令は、
前記レイ経路に沿った最大サブボリュームとそれに対応する最大及び最小データ値とを識別する段階と、
前記不透明性伝達関数が前記最大及び最小スカラー場値の間で単調に変化するかを検査する段階と、
を含み、
前記関数が単調に変化しない場合には、再帰的に、
前記レイ経路に沿ったより小さなサブボリュームとそれに対応する最大及び最小データ値とを識別し、
前記不透明性伝達関数が前記より小さなサブボリュームの前記最大及び最小スカラー場値の間で単調に変化するかを検査する、
段階を含み、
前記関数が単調に変化する場合には、
前記サブボリュームが前記レイと相互作用している間に該サブボリュームによって反射したレイエネルギの量を計算する段階、
を含む、
ことを特徴とする請求項21に記載のシステム。
【請求項31】
2つのルックアップテーブルが、前記不透明性伝達関数に関して構成され、それによって順方向ルックアップテーブルが、前記データ値の増加方向に沿った該不透明性伝達関数の最も近い極値に対する該データ値の差を含み、逆方向ルックアップテーブルが、該データ値の減少方向に沿った該不透明性伝達関数の最も近い極値に対する該データ値の差を含むことを特徴とする請求項30に記載のシステム。
【請求項32】
前記サブボリュームの前記最大データ値が、該サブボリュームの前記最小データ値と前記順方向ルックアップテーブルに格納されたそれに対応するデータ値差との合計よりも小さいか、又は該サブボリュームの該最小データ値が、該サブボリュームの該最大データ値と前記逆方向ルックアップテーブルに格納されたそれに対応するデータ値差との間の差よりも大きい場合には、前記不透明性伝達関数は、該最小及び最大データ値の間で単調に変化することを特徴とする請求項31に記載のシステム。
【請求項33】
前記部分集合の各サブボリュームによって反射したレイエネルギを推定するための命令は、
前記サブボリュームの最大エネルギ差を推定する段階と、
前記最大エネルギ差を所定のエネルギ誤差閾値に対して比較する段階と、
を含み、
前記最大エネルギ差が前記所定のエネルギ誤差閾値よりも大きい場合には、再帰的に、
前記レイ経路に沿ってより小さなサブボリュームを選択し、
前記より小さなサブボリュームの新しい最大エネルギ差を推定する、
段階を含み、
前記最大エネルギ差が前記所定のエネルギ誤差閾値よりも小さい場合には、
前記照射モデルを用いて前記サブボリュームによって反射したレイエネルギの量を計算する段階、
を含む、
ことを特徴とする請求項21に記載のシステム。
【請求項34】
前記最大エネルギ差は、前記不透明性伝達関数と前記サブボリュームの前記最大、平均、及び最小データ値とに依存することを特徴とする請求項33に記載のシステム。
【請求項35】
前記サブボリュームによって反射したレイエネルギの量は、該サブボリューム内のレイ経路の長さ、該サブボリューム内の前記不透明性伝達関数、該サブボリュームの前記平均スカラー場値、及び該サブボリューム内のスカラー場の局所勾配ベクトルに依存することを特徴とする請求項33に記載のシステム。
【請求項36】
前記サブボリュームが、2×2×2の3Dセルを含む最小サブボリュームである場合には、前記より小さなサブボリュームは、該最小サブボリューム内の3Dセルであり、前記不透明性関数が、該セル内で単調に変化しない場合には、該3Dセルは、最小サブセルの寸法が前記レイの断面の寸法に到達するまで複数のサブセルに更に分割されることを特徴とする請求項33に記載のシステム。
【請求項37】
前記サブボリュームが、2×2×2の3Dセルを含む最小サブボリュームである場合には、前記より小さなサブボリュームは、該最小サブボリューム内の3Dセルであり、前記不透明性関数が、該セル内で単調に変化する場合には、該3Dセルの最大エネルギ差は、該サブボリュームの最大エネルギ差を2で割ることによって推定されることを特徴とする請求項33に記載のシステム。
【請求項38】
前記サブボリュームが、2×2×2の3Dセルを含む最小サブボリュームである場合には、前記より小さなサブボリュームは、該最小サブボリューム内の3Dセルであり、前記不透明性伝達関数が該セル内で単調に変化し、かつ等表面が該3Dセルに存在する場合には、該3Dセルの最大エネルギ差は、該3Dセルの前記コーナでの8つのデータ値と該不透明性伝達関数とを用いて計算されることを特徴とする請求項33に記載のシステム。
【請求項39】
前記所定のエネルギ誤差閾値は、平行投影の場合には、ユーザによって指定された画像レンダリング速度とズーム因子により、又は透視投影の場合には、透視角と前記画像平面及び前記3Dデータセット間の透視距離とにより調整されることを特徴とする請求項33に記載のシステム。
【請求項40】
前記2D画像平面上の他の位置のピクセル値を推定するための命令は、
各位置に対して、
前記位置を取り囲む4つのレイ原点に付随する4つのピクセル値を選択する段階と、
前記4つのピクセル値を用いて前記位置でのピクセル値をバイリニア補間する段階と、
を含むことを特徴とする請求項21に記載のシステム。
【請求項41】
コンピュータ可読記憶媒体とそこに組み込まれたコンピュータプログラム機構とを含む、コンピュータシステムと共に使用するためのコンピュータプログラム製品であって、
前記コンピュータプログラム機構が、
スカラー場の採取3Dデータセットを異なるサイズの複数のサブボリュームにフラグメント化し、一組のデータ値パラメータに関連する各サブボリュームが、該サブボリューム内の該スカラー場のデータ値分布を特徴付けるような命令と、
前記スカラー場のデータ値と照射モデルとに依存する不透明性伝達関数を定義するための命令と、
各々が初期レイエネルギと断面とを有する複数のレイを2D画像平面から前記採取データセットに向けて選択的に投射するための命令と、
を含み、
前記2D画像平面上の選択された位置から放出された各レイに対しては、
前記レイと相互作用するための前記複数のサブボリュームの部分集合を選択するための命令と、
前記不透明性伝達関数と前記照射モデルを用いて、前記部分集合の各サブボリュームによって反射した前記レイエネルギを推定するための命令と、
前記2D画像平面上の前記選択された位置のピクセル値として、前記反射したレイエネルギを合計するための命令と、
を含み、
前記選択された位置での前記ピクセル値を用いて、前記2D画像平面上の他の位置のピクセル値を推定するための命令、
を更に含む、
ことを特徴とする製品。
【請求項42】
前記採取3Dデータセットをフラグメント化する段階は、
前記3Dデータセットを8つのサブボリュームにフラグメント化する段階と、
各サブボリュームに対して、それを最小サブボリュームのサイズが所定のサイズ限界に達するまで8つのより小さなサブボリュームに再帰的にフラグメント化する段階と、
を含むことを特徴とする請求項41に記載のコンピュータプログラム製品。
【請求項43】
前記所定のサイズ限界は、2×2×2の3Dセルを含むサブボリュームであり、各セルの8つのコーナは、前記スカラー場の8つのデータ値に関連していることを特徴とする請求項42に記載のコンピュータプログラム製品。
【請求項44】
前記セル内のどの位置の前記データ値も、該セルの前記8つのコーナの前記8つのデータ値を用いてトリリニア補間されることを特徴とする請求項43に記載のコンピュータプログラム製品。
【請求項45】
前記パラメータの組は、前記サブボリューム内の前記スカラー場の最大値、平均値、及び最小データ値を含むことを特徴とする請求項41に記載のコンピュータプログラム製品。
【請求項46】
ルートノードと複数の中間ノードと複数の葉ノードとを含むオクトリを構成するための命令と、
前記ルートノードを前記3Dデータセットに関連付けるための命令と、
前記複数の葉ノードの各々を前記複数のサブボリュームからの最小サブボリュームに関連付けるための命令と、
前記複数の中間ノードの各々を前記最小サブボリュームよりも大きな前記複数のサブボリュームからのサブボリュームに関連付けるための命令と、
を更に含むことを特徴とする請求項41に記載のコンピュータプログラム製品。
【請求項47】
前記2D画像平面から複数のレイを選択的に投射するための命令は、
前記2D画像平面を複数のサブ平面に細分化する段階、
を含み、
前記複数のサブ平面の各々に対しては、
前記サブ平面の4つのコーナから4つのレイを投射し、各コーナでのピクセル値を推定する段階と、
前記サブ平面内の最大ピクセル値変動を計算する段階と、
前記サブ平面の前記最大ピクセル値変動が所定の画像化誤差閾値よりも小さくなるまで、該サブ平面の中心からレイを投射することにより、該サブ平面をより小さなサイズの複数の子サブ平面に再帰的に細分化する段階と、
を含む、
ことを特徴とする請求項41に記載のコンピュータプログラム製品。
【請求項48】
前記サブ平面内の最大ピクセル値変動は、該サブ平面の前記4つのコーナのピクセル値の該サブ平面の平均ピクセル値からの最大偏差として定義されることを特徴とする請求項47に記載のコンピュータプログラム製品。
【請求項49】
前記所定の画像化誤差閾値は、ユーザによって提供された画像レンダリング速度、前記3Dデータセットに埋められたオブジェクトの縁部までの距離、及び適応レイキャスティングから推定されたピクセル値とバイリニア補間から推定されたピクセル値との間の差によって調整されることを特徴とする請求項47に記載のコンピュータプログラム製品。
【請求項50】
前記レイと相互作用するための複数のサブボリュームの部分集合を選択するための命令は、
前記レイ経路に沿った最大サブボリュームとそれに対応する最大及び最小データ値とを識別する段階と、
前記不透明性伝達関数が前記最大及び最小スカラー場値の間で単調に変化するかを検査する段階と、
を含み、
前記関数が単調に変化しない場合には、再帰的に、
前記レイ経路に沿ったより小さなサブボリュームとそれに対応する最大及び最小データ値とを識別し、
前記不透明性伝達関数が前記より小さなサブボリュームの前記最大及び最小スカラー場値の間で単調に変化するかを検査する、
段階を含み、
前記関数が単調に変化する場合には、
前記サブボリュームが前記レイと相互作用している間に該サブボリュームによって反射したレイエネルギの量を計算する段階、
を含む、
ことを特徴とする請求項41に記載のコンピュータプログラム製品。
【請求項51】
2つのルックアップテーブルが、前記不透明性伝達関数に関して構成され、それによって順方向ルックアップテーブルが、前記データ値の増加方向に沿った該不透明性伝達関数の最も近い極値に対する該データ値の差を含み、逆方向ルックアップテーブルが、該データ値の減少方向に沿った該不透明性伝達関数の最も近い極値に対する該データ値の差を含むことを特徴とする請求項50に記載のコンピュータプログラム製品。
【請求項52】
前記サブボリュームの前記最大データ値が、該サブボリュームの前記最小データ値と前記順方向ルックアップテーブルに格納されたそれに対応するデータ値差との合計よりも小さいか、又は該サブボリュームの該最小データ値が、該サブボリュームの該最大データ値と前記逆方向ルックアップテーブルに格納されたそれに対応するデータ値差との間の差よりも大きい場合には、前記不透明性伝達関数は、該最小及び最大データ値の間で単調に変化することを特徴とする請求項51に記載のコンピュータプログラム製品。
【請求項53】
前記部分集合の各サブボリュームによって反射したレイエネルギを推定するための命令は、
前記サブボリュームの最大エネルギ差を推定する段階と、
前記最大エネルギ差を所定のエネルギ誤差閾値に対して比較する段階と、
を含み、
前記最大エネルギ差が前記所定のエネルギ誤差閾値よりも大きい場合には、再帰的に、
前記レイ経路に沿ってより小さなサブボリュームを選択し、
前記より小さなサブボリュームの新しい最大エネルギ差を推定する、
段階を含み、
前記最大エネルギ差が前記所定のエネルギ誤差閾値よりも小さい場合には、
前記照射モデルを用いて前記サブボリュームによって反射したレイエネルギの量を計算する段階、
を含む、
ことを特徴とする請求項41に記載のコンピュータプログラム製品。
【請求項54】
前記最大エネルギ差は、前記不透明性伝達関数と前記サブボリュームの前記最大、平均、及び最小データ値とに依存することを特徴とする請求項53に記載のコンピュータプログラム製品。
【請求項55】
前記サブボリュームによって反射したレイエネルギの量は、該サブボリューム内のレイ経路の長さ、該サブボリューム内の前記不透明性伝達関数、該サブボリュームの前記平均スカラー場値、及び該サブボリューム内のスカラー場の局所勾配ベクトルに依存することを特徴とする請求項53に記載のコンピュータプログラム製品。
【請求項56】
前記サブボリュームが、2×2×2の3Dセルを含む最小サブボリュームである場合には、前記より小さなサブボリュームは、該最小サブボリューム内の3Dセルであり、前記不透明性関数が、該セル内で単調に変化しない場合には、該3Dセルは、最小サブセルの寸法が前記レイの断面の寸法に到達するまで複数のサブセルに更に分割されることを特徴とする請求項53に記載のコンピュータプログラム製品。
【請求項57】
前記サブボリュームが、2×2×2の3Dセルを含む最小サブボリュームである場合には、前記より小さなサブボリュームは、該最小サブボリューム内の3Dセルであり、前記不透明性関数が、該セル内で単調に変化する場合には、該3Dセルの最大エネルギ差は、該サブボリュームの最大エネルギ差を2で割ることによって推定されることを特徴とする請求項53に記載のコンピュータプログラム製品。
【請求項58】
前記サブボリュームが、2×2×2の3Dセルを含む最小サブボリュームである場合には、前記より小さなサブボリュームは、該最小サブボリューム内の3Dセルであり、前記不透明性伝達関数が該セル内で単調に変化し、かつ等表面が該3Dセルに存在する場合には、該3Dセルの最大エネルギ差は、該3Dセルの前記コーナでの8つのデータ値と該不透明性伝達関数とを用いて計算されることを特徴とする請求項53に記載のコンピュータプログラム製品。
【請求項59】
前記所定のエネルギ誤差閾値は、平行投影の場合には、ユーザによって指定された画像レンダリング速度とズーム因子により、又は透視投影の場合には、透視角と前記画像平面及び前記3Dデータセット間の透視距離とにより調整されることを特徴とする請求項53に記載のコンピュータプログラム製品。
【請求項60】
前記2D画像平面上の他の位置のピクセル値を推定するための命令は、
各位置に対して、
前記位置を取り囲む4つのレイ原点に付随する4つのピクセル値を選択する段階と、
前記4つのピクセル値を用いて前記位置でのピクセル値をバイリニア補間する段階と、
を含むことを特徴とする請求項41に記載のコンピュータプログラム製品。
【請求項61】
採取した3Dデータセットによって表された3Dオブジェクトの2D画像を発生させる方法であって、
採取した3Dデータセットを異なるサイズの複数のサブボリュームにフラグメント化し、一組のデータ値パラメータに関連する各サブボリュームが、該サブボリューム内のデータ値分布を特徴付ける段階と、
2D放射面から前記複数のサブボリュームに向けて、各々が初期レイエネルギと断面とを有し、かつ該2D放射面に対して所定の方向に放出される複数のレイを選択的に投射する段階と、
2D画像平面上の複数の位置で、前記複数のサブボリュームの部分集合によって反射される少なくとも1つのレイに付随するレイエネルギの量を各々が特徴付ける複数のピクセル値を選択的に発生させる段階と、
前記2D画像平面上の前記複数の位置の前記複数のピクセル値の部分集合を用いて、該2D画像平面上の他の位置のピクセル値を推定する段階と、
を含むことを特徴とする方法。
【請求項62】
初期レイエネルギのレイがその経路に沿って3Dデータセットと相互作用する時に、3Dオブジェクトを表す該3Dデータセットによって反射したレイエネルギの量を推定する方法であって、
3Dデータセットを異なるサイズの複数のサブボリュームにフラグメント化し、一組のデータ値パラメータに関連する各サブボリュームが、該サブボリューム内の最大、平均、及び最小データ値を含む段階と、
前記3Dデータセットのデータ値に依存し、異なるデータ値で複数の極値を有する不透明性伝達関数を定義する段階と、
順方向ルックアップテーブルと逆方向ルックアップテーブルを構成し、該順方向ルックアップテーブルの各エントリが、データ値の増加方向に沿った前記不透明性伝達関数の極値に対するデータ値の差を含み、該逆方向ルックアップテーブルの各エントリが、データ値の減少方向に沿った該不透明性伝達関数の極値に対するデータ値の差を含む段階と、
選択したサブボリュームの最大データ値が、該選択したサブボリュームの最小データ値と前記順方向ルックアップテーブルによるそれに対応するデータ値差との合計よりも小さいか、又は最小データ値が、最大データ値と前記逆方向ルックアップテーブルによるそれに対応するデータ値差との間の差よりも大きいように、前記レイ経路に沿って一組のサブボリュームを選択する段階と、
前記選択した組の各サブボリュームに対して、所定の照射モデルに従って、前記サブボリュームにより所定の反射方向に反射されたレイエネルギの量を推定する段階と、
前記3Dデータセットによって反射したレイエネルギの量として、前記選択した組の各サブボリュームによって反射された前記レイエネルギの量を互いに合計する段階と、
を含むことを特徴とする方法。
【請求項63】
第1の変数値と第2の変数値の間の変数によって変化する関数の単調性を判断する方法であって、
第1の変数値に最も近く、かつそれよりも大きい第1の極値を特定する段階と、
前記第1の極値を第2の変数値と比較する段階と、
前記第2の変数値に最も近く、かつそれよりも小さい第2の極値を特定する段階と、
前記第2の極値を前記第1の変数値と比較する段階と、
を含むことを特徴とする方法。
【請求項64】
前記関数は、前記第1の極値が前記第2の変数値よりも大きいか又は前記第2の極値が前記第1の変数値よりも小さいかのいずれかの場合に、該第1の変数値と該第2の変数値の間で単調であることを特徴とする請求項63に記載の方法。
【請求項65】
画像ボリュームを表すためのデータ構造であって、
ルートノードと複数の中間ノードと複数の葉ノードとを有し、各非葉ノードが8つの子ノードを有するオクトリの構成と、
前記オクトリの前記ルートノードとの画像ボリュームの関連付けと、
前記画像ボリュームの8つのサブボリュームへのフラグメント化、及び前記ルートノードの1つの子とのサブボリュームの関連付けと、
再帰的な、サブボリュームの8つのより小さなサブボリュームへのフラグメント化及び該サブボリュームに付随するノードの1つの子とのより小さなサブボリュームの関連付けと、
を含むことを特徴とする構造。
【請求項66】
適応直接ボリュームレンダリングシステムであって、
プログラムを実行するための1つ又はそれよりも多くの中央演算処理装置を各々が有する複数のホストと、
複数のボリュームレンダリングパラメータを受け取るためのユーザインタフェースと、
画像ボリュームを格納するためのデータ記憶装置と、
各々が前記複数のホストの少なくとも1つで実行される複数の適応直接ボリュームレンダリングエンジンと、
を含むことを特徴とするシステム。
【請求項67】
前記画像ボリュームは、複数のサブボリュームに仕切られ、各エンジンは、少なくとも1つのサブボリュームを処理して少なくとも1つのサブ画像を発生させることを特徴とする請求項66に記載のシステム。
【請求項68】
前記複数のホストの少なくとも1つは、複数の前記サブ画像を一緒に集めてディスプレイ又は出力装置上に画像を作り出すことを特徴とする請求項67に記載のシステム。
【請求項1】
適応直接ボリュームレンダリングの方法であって、
スカラー場の採取した3Dデータセットを異なるサイズの複数のサブボリュームにフラグメント化し、一組のデータ値パラメータに付随する各サブボリュームが、該サブボリューム内の該スカラー場のデータ値分布を特徴付ける段階と、
前記スカラー場のデータ値と照射モデルとに依存する不透明性伝達関数を定義する段階と、
各々が初期レイエネルギと断面とを有する複数のレイを2D画像平面から前記採取データセットに向けて選択的に投射する段階と、
を含み、
前記2D画像平面上の選択された位置から投射された各レイに対しては、
前記レイと相互作用するための前記複数のサブボリュームの部分集合を選択する段階と、
前記不透明性伝達関数及び前記照射モデルを用いて、前記部分集合の各サブボリュームによって反射された前記レイエネルギを推定する段階と、
前記2D画像平面上の前記選択された位置でのピクセル値として前記反射レイエネルギを合計する段階と、
を含み、
前記選択された位置での前記ピクセル値を用いて、前記2D画像平面上の他の位置のピクセル値を推定する段階、
を更に含むことを特徴とする方法。
【請求項2】
前記採取3Dデータセットをフラグメント化する段階は、
前記3Dデータセットを8つのサブボリュームにフラグメント化する段階と、
各サブボリュームに対して、それを最小サブボリュームのサイズが所定のサイズ限界に到達するまで8つのより小さなサブボリュームに再帰的にフラグメント化する段階と、
を含むことを特徴とする請求項1に記載の方法。
【請求項3】
前記所定のサイズ限界は、2×2×2の3Dセルを含むサブボリュームであり、各セルの8つのコーナは、前記スカラー場の8つのデータ値に関連していることを特徴とする請求項2に記載の方法。
【請求項4】
前記セル内の位置での前記データ値は、該セルの前記8つのコーナの前記8つのデータ値を用いてトリリニア補間されることを特徴とする請求項3に記載の方法。
【請求項5】
前記パラメータの組は、前記サブボリューム内の前記スカラー場の最大値、平均値、及び最小データ値を含むことを特徴とする請求項1に記載の方法。
【請求項6】
ルートノードと複数の中間ノードと複数の葉ノードとを含むオクトリを構成する段階と、
前記ルートノードを前記3Dデータセットに関連付ける段階と、
前記複数の葉ノードの各々を前記複数のサブボリュームからの最小サブボリュームに関連付ける段階と、
前記複数の中間ノードの各々を前記最小サブボリュームよりも大きな前記複数のサブボリュームからのサブボリュームに関連付ける段階と、
を更に含むことを特徴とする請求項1に記載の方法。
【請求項7】
前記2D画像平面から複数のレイを投射する段階は、
前記2D画像平面を複数のサブ平面に細分化する段階、
を含み、
前記複数のサブ平面の各々に対しては、
前記サブ平面の4つのコーナから4つのレイを投射し、各コーナでのピクセル値を推定する段階と、
前記サブ平面内の最大ピクセル値変動を計算する段階と、
前記サブ平面の前記最大ピクセル値変動が所定の画像化誤差閾値よりも小さくなるまで、該サブ平面の中心からレイを投射することにより、該サブ平面をより小さなサイズの複数の子サブ平面に再帰的に細分化する段階と、
を含む、
ことを特徴とする請求項1に記載の方法。
【請求項8】
前記サブ平面内の最大ピクセル値変動は、該サブ平面の前記4つのコーナのピクセル値の該サブ平面の平均ピクセル値からの最大偏差として定義されることを特徴とする請求項7に記載の方法。
【請求項9】
前記所定の画像化誤差閾値は、ユーザによって提供された画像レンダリング速度、前記3Dデータセットに埋められたオブジェクトの縁部までの距離、及び適応レイキャスティングから推定されたピクセル値とバイリニア補間から推定されたピクセル値との間の差によって調整されることを特徴とする請求項7に記載の方法。
【請求項10】
前記レイと相互作用するための複数のサブボリュームの部分集合を選択する段階は、
前記レイ経路に沿った最大サブボリュームとそれに対応する最大及び最小データ値とを識別する段階と、
前記不透明性伝達関数が前記最大及び最小スカラー場値の間で単調に変化するかを検査する段階と、
を含み、
前記関数が単調に変化しない場合には、再帰的に、
前記レイ経路に沿ったより小さなサブボリュームとそれに対応する最大及び最小データ値とを識別し、
前記不透明性伝達関数が前記より小さなサブボリュームの前記最大及び最小スカラー場値の間で単調に変化するかを検査する、
段階を含み、
前記関数が単調に変化する場合には、
前記サブボリュームが前記レイと相互作用している間に該サブボリュームによって反射したレイエネルギの量を計算する段階、
を含む、
ことを特徴とする請求項1に記載の方法。
【請求項11】
2つのルックアップテーブルが、前記不透明性伝達関数に関して構成され、それによって順方向ルックアップテーブルが、前記データ値の増加方向に沿った該不透明性伝達関数の最も近い極値に対する該データ値の差を含み、逆方向ルックアップテーブルが、該データ値の減少方向に沿った該不透明性伝達関数の最も近い極値に対する該データ値の差を含むことを特徴とする請求項10に記載の方法。
【請求項12】
前記サブボリュームの前記最大データ値が、該サブボリュームの前記最小データ値と前記順方向ルックアップテーブルに格納されたそれに対応するデータ値差との合計よりも小さいか、又は該サブボリュームの該最小データ値が、該サブボリュームの該最大データ値と前記逆方向ルックアップテーブルに格納されたそれに対応するデータ値差との間の差よりも大きい場合には、前記不透明性伝達関数は、該最小及び最大データ値の間で単調に変化することを特徴とする請求項11に記載の方法。
【請求項13】
前記部分集合の各サブボリュームによって反射したレイエネルギを推定する段階は、
前記サブボリュームの最大エネルギ差を推定する段階と、
前記最大エネルギ差を所定のエネルギ誤差閾値に対して比較する段階と、
を含み、
前記最大エネルギ差が前記所定のエネルギ誤差閾値よりも大きい場合には、再帰的に、
前記レイ経路に沿ってより小さなサブボリュームを選択し、
前記より小さなサブボリュームの新しい最大エネルギ差を推定する、
段階を含み、
前記最大エネルギ差が前記所定のエネルギ誤差閾値よりも小さい場合には、
前記照射モデルを用いて前記サブボリュームによって反射したレイエネルギの量を計算する段階、
を含む、
ことを特徴とする請求項1に記載の方法。
【請求項14】
前記最大エネルギ差は、前記不透明性伝達関数と前記サブボリュームの前記最大、平均、及び最小データ値とに依存することを特徴とする請求項13に記載の方法。
【請求項15】
前記サブボリュームによって反射したレイエネルギの量は、該サブボリューム内のレイ経路の長さ、該サブボリューム内の前記不透明性伝達関数、該サブボリュームの前記平均スカラー場値、及び該サブボリューム内のスカラー場の局所勾配ベクトルに依存することを特徴とする請求項13に記載の方法。
【請求項16】
前記サブボリュームが、2×2×2の3Dセルを含む最小サブボリュームである場合には、前記より小さなサブボリュームは、該最小サブボリューム内の3Dセルであり、前記不透明性関数が、該セル内で単調に変化しない場合には、該3Dセルは、最小サブセルの寸法が前記レイの断面の寸法に到達するまで複数のサブセルに更に分割されることを特徴とする請求項13に記載の方法。
【請求項17】
前記サブボリュームが、2×2×2の3Dセルを含む最小サブボリュームである場合には、前記より小さなサブボリュームは、該最小サブボリューム内の3Dセルであり、前記不透明性関数が、該セル内で単調に変化する場合には、該3Dセルの最大エネルギ差は、該サブボリュームの最大エネルギ差を2で割ることによって推定されることを特徴とする請求項13に記載の方法。
【請求項18】
前記サブボリュームが、2×2×2の3Dセルを含む最小サブボリュームである場合には、前記より小さなサブボリュームは、該最小サブボリューム内の3Dセルであり、前記不透明性伝達関数が該セル内で単調に変化し、かつ等表面が該3Dセルに存在する場合には、該3Dセルの最大エネルギ差は、該3Dセルの前記コーナでの8つのデータ値と該不透明性伝達関数とを用いて計算されることを特徴とする請求項13に記載の方法。
【請求項19】
前記所定のエネルギ誤差閾値は、平行投影の場合には、ユーザによって指定された画像レンダリング速度とズーム因子により、又は透視投影の場合には、透視角と前記画像平面及び前記3Dデータセット間の透視距離とにより調整されることを特徴とする請求項13に記載の方法。
【請求項20】
前記2D画像平面上の他の位置のピクセル値を推定する段階は、
各位置に対して、
前記位置を取り囲む4つのレイ原点に付随する4つのピクセル値を選択する段階と、
前記4つのピクセル値を用いて前記位置でのピクセル値をバイリニア補間する段階と、
を含むことを特徴とする請求項1に記載の方法。
【請求項21】
適応直接ボリュームレンダリングシステムであって、
プログラムを実行するための1つ又はそれよりも多くの中央演算処理装置と、
複数のボリュームレンダリングパラメータを受け取るためのユーザインタフェースと、
前記1つ又はそれよりも多くの中央演算処理装置によって実行可能な適応ボリュームレンダリングエンジンモジュールと、
を含み、
前記モジュールは、
スカラー場の採取3Dデータセットを異なるサイズの複数のサブボリュームにフラグメント化し、一組のデータ値パラメータに関連する各サブボリュームが、該サブボリューム内の該スカラー場のデータ値分布を特徴付けるような命令と、
前記スカラー場のデータ値と照射モデルとに依存する不透明性伝達関数を定義するための命令と、
各々が初期レイエネルギと断面とを有する複数のレイを2D画像平面から前記採取データセットに向けて選択的に投射するための命令と、
を含み、
前記2D画像平面上の選択された位置から放出された各レイに対しては、
前記レイと相互作用するための前記複数のサブボリュームの部分集合を選択するための命令と、
前記不透明性伝達関数と前記照射モデルを用いて、前記部分集合の各サブボリュームによって反射した前記レイエネルギを推定するための命令と、
前記2D画像平面上の前記選択された位置のピクセル値として、前記反射したレイエネルギを合計するための命令と、
を含み、
前記選択された位置での前記ピクセル値を用いて、前記2D画像平面上の他の位置のピクセル値を推定するための命令、
を更に含む、
ことを特徴とするシステム。
【請求項22】
前記採取3Dデータセットをフラグメント化する段階は、
前記3Dデータセットを8つのサブボリュームにフラグメント化する段階と、
各サブボリュームに対して、それを最小サブボリュームのサイズが所定のサイズ限界に達するまで8つのより小さなサブボリュームに再帰的にフラグメント化する段階と、
を含むことを特徴とする請求項21に記載のシステム。
【請求項23】
前記所定のサイズ限界は、2×2×2の3Dセルを含むサブボリュームであり、各セルの8つのコーナは、前記スカラー場の8つのデータ値に関連していることを特徴とする請求項22に記載のシステム。
【請求項24】
前記セル内のどの位置の前記データ値も、該セルの前記8つのコーナの前記8つのデータ値を用いてトリリニア補間されることを特徴とする請求項23に記載のシステム。
【請求項25】
前記パラメータの組は、前記サブボリューム内の前記スカラー場の最大値、平均値、及び最小データ値を含むことを特徴とする請求項21に記載のシステム。
【請求項26】
ルートノードと複数の中間ノードと複数の葉ノードとを含むオクトリを構成するための命令と、
前記ルートノードを前記3Dデータセットに関連付けるための命令と、
前記複数の葉ノードの各々を前記複数のサブボリュームからの最小サブボリュームに関連付けるための命令と、
前記複数の中間ノードの各々を前記最小サブボリュームよりも大きな前記複数のサブボリュームからのサブボリュームに関連付けるための命令と、
を更に含むことを特徴とする請求項21に記載のシステム。
【請求項27】
前記2D画像平面から複数のレイを選択的に投射するための命令は、
前記2D画像平面を複数のサブ平面に細分化する段階、
を含み、
前記複数のサブ平面の各々に対しては、
前記サブ平面の4つのコーナから4つのレイを投射し、各コーナでのピクセル値を推定する段階と、
前記サブ平面内の最大ピクセル値変動を計算する段階と、
前記サブ平面の前記最大ピクセル値変動が所定の画像化誤差閾値よりも小さくなるまで、該サブ平面の中心からレイを投射することにより、該サブ平面をより小さなサイズの複数の子サブ平面に再帰的に細分化する段階と、
を含む、
ことを特徴とする請求項21に記載のシステム。
【請求項28】
前記サブ平面内の最大ピクセル値変動は、該サブ平面の前記4つのコーナのピクセル値の該サブ平面の平均ピクセル値からの最大偏差として定義されることを特徴とする請求項27に記載のシステム。
【請求項29】
前記所定の画像化誤差閾値は、ユーザによって提供された画像レンダリング速度、前記3Dデータセットに埋められたオブジェクトの縁部までの距離、及び適応レイキャスティングから推定されたピクセル値とバイリニア補間から推定されたピクセル値との間の差によって調整されることを特徴とする請求項27に記載のシステム。
【請求項30】
前記レイと相互作用するための複数のサブボリュームの部分集合を選択するための命令は、
前記レイ経路に沿った最大サブボリュームとそれに対応する最大及び最小データ値とを識別する段階と、
前記不透明性伝達関数が前記最大及び最小スカラー場値の間で単調に変化するかを検査する段階と、
を含み、
前記関数が単調に変化しない場合には、再帰的に、
前記レイ経路に沿ったより小さなサブボリュームとそれに対応する最大及び最小データ値とを識別し、
前記不透明性伝達関数が前記より小さなサブボリュームの前記最大及び最小スカラー場値の間で単調に変化するかを検査する、
段階を含み、
前記関数が単調に変化する場合には、
前記サブボリュームが前記レイと相互作用している間に該サブボリュームによって反射したレイエネルギの量を計算する段階、
を含む、
ことを特徴とする請求項21に記載のシステム。
【請求項31】
2つのルックアップテーブルが、前記不透明性伝達関数に関して構成され、それによって順方向ルックアップテーブルが、前記データ値の増加方向に沿った該不透明性伝達関数の最も近い極値に対する該データ値の差を含み、逆方向ルックアップテーブルが、該データ値の減少方向に沿った該不透明性伝達関数の最も近い極値に対する該データ値の差を含むことを特徴とする請求項30に記載のシステム。
【請求項32】
前記サブボリュームの前記最大データ値が、該サブボリュームの前記最小データ値と前記順方向ルックアップテーブルに格納されたそれに対応するデータ値差との合計よりも小さいか、又は該サブボリュームの該最小データ値が、該サブボリュームの該最大データ値と前記逆方向ルックアップテーブルに格納されたそれに対応するデータ値差との間の差よりも大きい場合には、前記不透明性伝達関数は、該最小及び最大データ値の間で単調に変化することを特徴とする請求項31に記載のシステム。
【請求項33】
前記部分集合の各サブボリュームによって反射したレイエネルギを推定するための命令は、
前記サブボリュームの最大エネルギ差を推定する段階と、
前記最大エネルギ差を所定のエネルギ誤差閾値に対して比較する段階と、
を含み、
前記最大エネルギ差が前記所定のエネルギ誤差閾値よりも大きい場合には、再帰的に、
前記レイ経路に沿ってより小さなサブボリュームを選択し、
前記より小さなサブボリュームの新しい最大エネルギ差を推定する、
段階を含み、
前記最大エネルギ差が前記所定のエネルギ誤差閾値よりも小さい場合には、
前記照射モデルを用いて前記サブボリュームによって反射したレイエネルギの量を計算する段階、
を含む、
ことを特徴とする請求項21に記載のシステム。
【請求項34】
前記最大エネルギ差は、前記不透明性伝達関数と前記サブボリュームの前記最大、平均、及び最小データ値とに依存することを特徴とする請求項33に記載のシステム。
【請求項35】
前記サブボリュームによって反射したレイエネルギの量は、該サブボリューム内のレイ経路の長さ、該サブボリューム内の前記不透明性伝達関数、該サブボリュームの前記平均スカラー場値、及び該サブボリューム内のスカラー場の局所勾配ベクトルに依存することを特徴とする請求項33に記載のシステム。
【請求項36】
前記サブボリュームが、2×2×2の3Dセルを含む最小サブボリュームである場合には、前記より小さなサブボリュームは、該最小サブボリューム内の3Dセルであり、前記不透明性関数が、該セル内で単調に変化しない場合には、該3Dセルは、最小サブセルの寸法が前記レイの断面の寸法に到達するまで複数のサブセルに更に分割されることを特徴とする請求項33に記載のシステム。
【請求項37】
前記サブボリュームが、2×2×2の3Dセルを含む最小サブボリュームである場合には、前記より小さなサブボリュームは、該最小サブボリューム内の3Dセルであり、前記不透明性関数が、該セル内で単調に変化する場合には、該3Dセルの最大エネルギ差は、該サブボリュームの最大エネルギ差を2で割ることによって推定されることを特徴とする請求項33に記載のシステム。
【請求項38】
前記サブボリュームが、2×2×2の3Dセルを含む最小サブボリュームである場合には、前記より小さなサブボリュームは、該最小サブボリューム内の3Dセルであり、前記不透明性伝達関数が該セル内で単調に変化し、かつ等表面が該3Dセルに存在する場合には、該3Dセルの最大エネルギ差は、該3Dセルの前記コーナでの8つのデータ値と該不透明性伝達関数とを用いて計算されることを特徴とする請求項33に記載のシステム。
【請求項39】
前記所定のエネルギ誤差閾値は、平行投影の場合には、ユーザによって指定された画像レンダリング速度とズーム因子により、又は透視投影の場合には、透視角と前記画像平面及び前記3Dデータセット間の透視距離とにより調整されることを特徴とする請求項33に記載のシステム。
【請求項40】
前記2D画像平面上の他の位置のピクセル値を推定するための命令は、
各位置に対して、
前記位置を取り囲む4つのレイ原点に付随する4つのピクセル値を選択する段階と、
前記4つのピクセル値を用いて前記位置でのピクセル値をバイリニア補間する段階と、
を含むことを特徴とする請求項21に記載のシステム。
【請求項41】
コンピュータ可読記憶媒体とそこに組み込まれたコンピュータプログラム機構とを含む、コンピュータシステムと共に使用するためのコンピュータプログラム製品であって、
前記コンピュータプログラム機構が、
スカラー場の採取3Dデータセットを異なるサイズの複数のサブボリュームにフラグメント化し、一組のデータ値パラメータに関連する各サブボリュームが、該サブボリューム内の該スカラー場のデータ値分布を特徴付けるような命令と、
前記スカラー場のデータ値と照射モデルとに依存する不透明性伝達関数を定義するための命令と、
各々が初期レイエネルギと断面とを有する複数のレイを2D画像平面から前記採取データセットに向けて選択的に投射するための命令と、
を含み、
前記2D画像平面上の選択された位置から放出された各レイに対しては、
前記レイと相互作用するための前記複数のサブボリュームの部分集合を選択するための命令と、
前記不透明性伝達関数と前記照射モデルを用いて、前記部分集合の各サブボリュームによって反射した前記レイエネルギを推定するための命令と、
前記2D画像平面上の前記選択された位置のピクセル値として、前記反射したレイエネルギを合計するための命令と、
を含み、
前記選択された位置での前記ピクセル値を用いて、前記2D画像平面上の他の位置のピクセル値を推定するための命令、
を更に含む、
ことを特徴とする製品。
【請求項42】
前記採取3Dデータセットをフラグメント化する段階は、
前記3Dデータセットを8つのサブボリュームにフラグメント化する段階と、
各サブボリュームに対して、それを最小サブボリュームのサイズが所定のサイズ限界に達するまで8つのより小さなサブボリュームに再帰的にフラグメント化する段階と、
を含むことを特徴とする請求項41に記載のコンピュータプログラム製品。
【請求項43】
前記所定のサイズ限界は、2×2×2の3Dセルを含むサブボリュームであり、各セルの8つのコーナは、前記スカラー場の8つのデータ値に関連していることを特徴とする請求項42に記載のコンピュータプログラム製品。
【請求項44】
前記セル内のどの位置の前記データ値も、該セルの前記8つのコーナの前記8つのデータ値を用いてトリリニア補間されることを特徴とする請求項43に記載のコンピュータプログラム製品。
【請求項45】
前記パラメータの組は、前記サブボリューム内の前記スカラー場の最大値、平均値、及び最小データ値を含むことを特徴とする請求項41に記載のコンピュータプログラム製品。
【請求項46】
ルートノードと複数の中間ノードと複数の葉ノードとを含むオクトリを構成するための命令と、
前記ルートノードを前記3Dデータセットに関連付けるための命令と、
前記複数の葉ノードの各々を前記複数のサブボリュームからの最小サブボリュームに関連付けるための命令と、
前記複数の中間ノードの各々を前記最小サブボリュームよりも大きな前記複数のサブボリュームからのサブボリュームに関連付けるための命令と、
を更に含むことを特徴とする請求項41に記載のコンピュータプログラム製品。
【請求項47】
前記2D画像平面から複数のレイを選択的に投射するための命令は、
前記2D画像平面を複数のサブ平面に細分化する段階、
を含み、
前記複数のサブ平面の各々に対しては、
前記サブ平面の4つのコーナから4つのレイを投射し、各コーナでのピクセル値を推定する段階と、
前記サブ平面内の最大ピクセル値変動を計算する段階と、
前記サブ平面の前記最大ピクセル値変動が所定の画像化誤差閾値よりも小さくなるまで、該サブ平面の中心からレイを投射することにより、該サブ平面をより小さなサイズの複数の子サブ平面に再帰的に細分化する段階と、
を含む、
ことを特徴とする請求項41に記載のコンピュータプログラム製品。
【請求項48】
前記サブ平面内の最大ピクセル値変動は、該サブ平面の前記4つのコーナのピクセル値の該サブ平面の平均ピクセル値からの最大偏差として定義されることを特徴とする請求項47に記載のコンピュータプログラム製品。
【請求項49】
前記所定の画像化誤差閾値は、ユーザによって提供された画像レンダリング速度、前記3Dデータセットに埋められたオブジェクトの縁部までの距離、及び適応レイキャスティングから推定されたピクセル値とバイリニア補間から推定されたピクセル値との間の差によって調整されることを特徴とする請求項47に記載のコンピュータプログラム製品。
【請求項50】
前記レイと相互作用するための複数のサブボリュームの部分集合を選択するための命令は、
前記レイ経路に沿った最大サブボリュームとそれに対応する最大及び最小データ値とを識別する段階と、
前記不透明性伝達関数が前記最大及び最小スカラー場値の間で単調に変化するかを検査する段階と、
を含み、
前記関数が単調に変化しない場合には、再帰的に、
前記レイ経路に沿ったより小さなサブボリュームとそれに対応する最大及び最小データ値とを識別し、
前記不透明性伝達関数が前記より小さなサブボリュームの前記最大及び最小スカラー場値の間で単調に変化するかを検査する、
段階を含み、
前記関数が単調に変化する場合には、
前記サブボリュームが前記レイと相互作用している間に該サブボリュームによって反射したレイエネルギの量を計算する段階、
を含む、
ことを特徴とする請求項41に記載のコンピュータプログラム製品。
【請求項51】
2つのルックアップテーブルが、前記不透明性伝達関数に関して構成され、それによって順方向ルックアップテーブルが、前記データ値の増加方向に沿った該不透明性伝達関数の最も近い極値に対する該データ値の差を含み、逆方向ルックアップテーブルが、該データ値の減少方向に沿った該不透明性伝達関数の最も近い極値に対する該データ値の差を含むことを特徴とする請求項50に記載のコンピュータプログラム製品。
【請求項52】
前記サブボリュームの前記最大データ値が、該サブボリュームの前記最小データ値と前記順方向ルックアップテーブルに格納されたそれに対応するデータ値差との合計よりも小さいか、又は該サブボリュームの該最小データ値が、該サブボリュームの該最大データ値と前記逆方向ルックアップテーブルに格納されたそれに対応するデータ値差との間の差よりも大きい場合には、前記不透明性伝達関数は、該最小及び最大データ値の間で単調に変化することを特徴とする請求項51に記載のコンピュータプログラム製品。
【請求項53】
前記部分集合の各サブボリュームによって反射したレイエネルギを推定するための命令は、
前記サブボリュームの最大エネルギ差を推定する段階と、
前記最大エネルギ差を所定のエネルギ誤差閾値に対して比較する段階と、
を含み、
前記最大エネルギ差が前記所定のエネルギ誤差閾値よりも大きい場合には、再帰的に、
前記レイ経路に沿ってより小さなサブボリュームを選択し、
前記より小さなサブボリュームの新しい最大エネルギ差を推定する、
段階を含み、
前記最大エネルギ差が前記所定のエネルギ誤差閾値よりも小さい場合には、
前記照射モデルを用いて前記サブボリュームによって反射したレイエネルギの量を計算する段階、
を含む、
ことを特徴とする請求項41に記載のコンピュータプログラム製品。
【請求項54】
前記最大エネルギ差は、前記不透明性伝達関数と前記サブボリュームの前記最大、平均、及び最小データ値とに依存することを特徴とする請求項53に記載のコンピュータプログラム製品。
【請求項55】
前記サブボリュームによって反射したレイエネルギの量は、該サブボリューム内のレイ経路の長さ、該サブボリューム内の前記不透明性伝達関数、該サブボリュームの前記平均スカラー場値、及び該サブボリューム内のスカラー場の局所勾配ベクトルに依存することを特徴とする請求項53に記載のコンピュータプログラム製品。
【請求項56】
前記サブボリュームが、2×2×2の3Dセルを含む最小サブボリュームである場合には、前記より小さなサブボリュームは、該最小サブボリューム内の3Dセルであり、前記不透明性関数が、該セル内で単調に変化しない場合には、該3Dセルは、最小サブセルの寸法が前記レイの断面の寸法に到達するまで複数のサブセルに更に分割されることを特徴とする請求項53に記載のコンピュータプログラム製品。
【請求項57】
前記サブボリュームが、2×2×2の3Dセルを含む最小サブボリュームである場合には、前記より小さなサブボリュームは、該最小サブボリューム内の3Dセルであり、前記不透明性関数が、該セル内で単調に変化する場合には、該3Dセルの最大エネルギ差は、該サブボリュームの最大エネルギ差を2で割ることによって推定されることを特徴とする請求項53に記載のコンピュータプログラム製品。
【請求項58】
前記サブボリュームが、2×2×2の3Dセルを含む最小サブボリュームである場合には、前記より小さなサブボリュームは、該最小サブボリューム内の3Dセルであり、前記不透明性伝達関数が該セル内で単調に変化し、かつ等表面が該3Dセルに存在する場合には、該3Dセルの最大エネルギ差は、該3Dセルの前記コーナでの8つのデータ値と該不透明性伝達関数とを用いて計算されることを特徴とする請求項53に記載のコンピュータプログラム製品。
【請求項59】
前記所定のエネルギ誤差閾値は、平行投影の場合には、ユーザによって指定された画像レンダリング速度とズーム因子により、又は透視投影の場合には、透視角と前記画像平面及び前記3Dデータセット間の透視距離とにより調整されることを特徴とする請求項53に記載のコンピュータプログラム製品。
【請求項60】
前記2D画像平面上の他の位置のピクセル値を推定するための命令は、
各位置に対して、
前記位置を取り囲む4つのレイ原点に付随する4つのピクセル値を選択する段階と、
前記4つのピクセル値を用いて前記位置でのピクセル値をバイリニア補間する段階と、
を含むことを特徴とする請求項41に記載のコンピュータプログラム製品。
【請求項61】
採取した3Dデータセットによって表された3Dオブジェクトの2D画像を発生させる方法であって、
採取した3Dデータセットを異なるサイズの複数のサブボリュームにフラグメント化し、一組のデータ値パラメータに関連する各サブボリュームが、該サブボリューム内のデータ値分布を特徴付ける段階と、
2D放射面から前記複数のサブボリュームに向けて、各々が初期レイエネルギと断面とを有し、かつ該2D放射面に対して所定の方向に放出される複数のレイを選択的に投射する段階と、
2D画像平面上の複数の位置で、前記複数のサブボリュームの部分集合によって反射される少なくとも1つのレイに付随するレイエネルギの量を各々が特徴付ける複数のピクセル値を選択的に発生させる段階と、
前記2D画像平面上の前記複数の位置の前記複数のピクセル値の部分集合を用いて、該2D画像平面上の他の位置のピクセル値を推定する段階と、
を含むことを特徴とする方法。
【請求項62】
初期レイエネルギのレイがその経路に沿って3Dデータセットと相互作用する時に、3Dオブジェクトを表す該3Dデータセットによって反射したレイエネルギの量を推定する方法であって、
3Dデータセットを異なるサイズの複数のサブボリュームにフラグメント化し、一組のデータ値パラメータに関連する各サブボリュームが、該サブボリューム内の最大、平均、及び最小データ値を含む段階と、
前記3Dデータセットのデータ値に依存し、異なるデータ値で複数の極値を有する不透明性伝達関数を定義する段階と、
順方向ルックアップテーブルと逆方向ルックアップテーブルを構成し、該順方向ルックアップテーブルの各エントリが、データ値の増加方向に沿った前記不透明性伝達関数の極値に対するデータ値の差を含み、該逆方向ルックアップテーブルの各エントリが、データ値の減少方向に沿った該不透明性伝達関数の極値に対するデータ値の差を含む段階と、
選択したサブボリュームの最大データ値が、該選択したサブボリュームの最小データ値と前記順方向ルックアップテーブルによるそれに対応するデータ値差との合計よりも小さいか、又は最小データ値が、最大データ値と前記逆方向ルックアップテーブルによるそれに対応するデータ値差との間の差よりも大きいように、前記レイ経路に沿って一組のサブボリュームを選択する段階と、
前記選択した組の各サブボリュームに対して、所定の照射モデルに従って、前記サブボリュームにより所定の反射方向に反射されたレイエネルギの量を推定する段階と、
前記3Dデータセットによって反射したレイエネルギの量として、前記選択した組の各サブボリュームによって反射された前記レイエネルギの量を互いに合計する段階と、
を含むことを特徴とする方法。
【請求項63】
第1の変数値と第2の変数値の間の変数によって変化する関数の単調性を判断する方法であって、
第1の変数値に最も近く、かつそれよりも大きい第1の極値を特定する段階と、
前記第1の極値を第2の変数値と比較する段階と、
前記第2の変数値に最も近く、かつそれよりも小さい第2の極値を特定する段階と、
前記第2の極値を前記第1の変数値と比較する段階と、
を含むことを特徴とする方法。
【請求項64】
前記関数は、前記第1の極値が前記第2の変数値よりも大きいか又は前記第2の極値が前記第1の変数値よりも小さいかのいずれかの場合に、該第1の変数値と該第2の変数値の間で単調であることを特徴とする請求項63に記載の方法。
【請求項65】
画像ボリュームを表すためのデータ構造であって、
ルートノードと複数の中間ノードと複数の葉ノードとを有し、各非葉ノードが8つの子ノードを有するオクトリの構成と、
前記オクトリの前記ルートノードとの画像ボリュームの関連付けと、
前記画像ボリュームの8つのサブボリュームへのフラグメント化、及び前記ルートノードの1つの子とのサブボリュームの関連付けと、
再帰的な、サブボリュームの8つのより小さなサブボリュームへのフラグメント化及び該サブボリュームに付随するノードの1つの子とのより小さなサブボリュームの関連付けと、
を含むことを特徴とする構造。
【請求項66】
適応直接ボリュームレンダリングシステムであって、
プログラムを実行するための1つ又はそれよりも多くの中央演算処理装置を各々が有する複数のホストと、
複数のボリュームレンダリングパラメータを受け取るためのユーザインタフェースと、
画像ボリュームを格納するためのデータ記憶装置と、
各々が前記複数のホストの少なくとも1つで実行される複数の適応直接ボリュームレンダリングエンジンと、
を含むことを特徴とするシステム。
【請求項67】
前記画像ボリュームは、複数のサブボリュームに仕切られ、各エンジンは、少なくとも1つのサブボリュームを処理して少なくとも1つのサブ画像を発生させることを特徴とする請求項66に記載のシステム。
【請求項68】
前記複数のホストの少なくとも1つは、複数の前記サブ画像を一緒に集めてディスプレイ又は出力装置上に画像を作り出すことを特徴とする請求項67に記載のシステム。
【図1(A)】
【図1(B)】
【図1(C)】
【図1(D)】
【図2】
【図3(A)】
【図3(B)】
【図4】
【図5(A)】
【図5(B)】
【図6】
【図7】
【図8】
【図9(A)】
【図9(B)】
【図10】
【図11】
【図12】
【図12】
【図12】
【図13(A)】
【図13(B)】
【図13(C)】
【図14(A)】
【図14(B)】
【図14(C)】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図1(B)】
【図1(C)】
【図1(D)】
【図2】
【図3(A)】
【図3(B)】
【図4】
【図5(A)】
【図5(B)】
【図6】
【図7】
【図8】
【図9(A)】
【図9(B)】
【図10】
【図11】
【図12】
【図12】
【図12】
【図13(A)】
【図13(B)】
【図13(C)】
【図14(A)】
【図14(B)】
【図14(C)】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【公表番号】特表2007−503060(P2007−503060A)
【公表日】平成19年2月15日(2007.2.15)
【国際特許分類】
【出願番号】特願2006−524009(P2006−524009)
【出願日】平成16年8月18日(2004.8.18)
【国際出願番号】PCT/US2004/026812
【国際公開番号】WO2005/020141
【国際公開日】平成17年3月3日(2005.3.3)
【出願人】(505375676)フォヴィア インコーポレイテッド (2)
【氏名又は名称原語表記】Fovia,Inc
【住所又は居所原語表記】555 Bryant Street, No.242 Palo Alto,California 94301,U.S.A.
【Fターム(参考)】
【公表日】平成19年2月15日(2007.2.15)
【国際特許分類】
【出願日】平成16年8月18日(2004.8.18)
【国際出願番号】PCT/US2004/026812
【国際公開番号】WO2005/020141
【国際公開日】平成17年3月3日(2005.3.3)
【出願人】(505375676)フォヴィア インコーポレイテッド (2)
【氏名又は名称原語表記】Fovia,Inc
【住所又は居所原語表記】555 Bryant Street, No.242 Palo Alto,California 94301,U.S.A.
【Fターム(参考)】
[ Back to top ]