(57)【要約】ユーザに表示するためにボリュームデータのＭＰＲ画像をレンダリングする装置および方法。ボリュームデータを記憶するシステムメモリに接続されたＣＰＵと、コンピュータバスに接続されたＧＰＵメモリを持つＧＰＵを備えるシステムを有する。ＣＰＵは、後の表示に必要なＭＰＲ画像を予測し、予測ＭＰＲ画像のレンダリングに必要なボリュームデータを有するボクセルのブロックを特定する。ＣＰＵは、さらにシステムメモリからこれらのブロックを取り出してＧＰＵメモリに転送するためにキューをする。キューからＧＰＵメモリへのブロックの転送は、予測ＭＰＲ画像が表示に必要となる前に、キューされたブロックのいくつかがＧＰＵメモリに転送されるように、スケジューラによって制御される。ＧＰＵは、ＧＰＵメモリからブロックを取り出し、表示に必要となる予測ＭＰＲ画像の中への組み立てに対応する画像部分をレンダリングする。
2008522272.tif 000002
【特許請求の範囲】
【請求項１】
ボリュームデータを通じて動くＭＰＲ面によって定義された１組のボリュームデータから一連の多断面再フォーマット（ＭＰＲ）画像をレンダリングするための装置であって、  前記ボリュームデータを記憶するシステムメモリに接続された中央処理装置（ＣＰＵ）と、
ＧＰＵメモリおよび前記ＣＰＵに接続されたグラフィック処理装置（ＧＰＵ）と、を有し、
前記装置は、
（ａ）幾何学的構成に従ってボクセルの複数のブロックにボリュームデータのセットを概念的に分割し、
（ｂ）前記ＭＰＲ面の位置を現時点および／または前回から予測し、
（ｃ）前記システムメモリから前記ＧＰＵメモリへの転送のために使用されることが将来生じ得ると予測されたブロックを事前ロードし、
（ｄ）それらのブロックの共通部分の中に移行する前記ＭＰＲ面に先立って、前記ＧＰＵメモリに少なくともいくつかの事前ロードブロックをスケジューリング・プロトコルに従って転送する
ものとして動作可能であるとともに、
前記（ｂ）において、前記ボリュームデータのブロックは、前記ＭＰＲ面が動いた後に、表示されるために必要とされることを特徴とする装置。
【請求項２】
前記ＧＰＵは、ＭＰＲ画像の次のレンダリングのために、前記ＧＰＵメモリの中に前記ボリュームデータを有しているボクセルのブロックを維持する動作が可能である請求項１に記載の装置。
【請求項３】
前記装置は、ブロックを記憶するために割り当てられた前記ＧＰＵメモリがいっぱいであるとき、ブロックが置換プロトコルに従って前記ＧＰＵメモリに上書きされるように構成されており、
前記置換プロトコルは、ブロックを記憶するために割り当てられた前記ＧＰＵメモリの割合を計算するものである請求項１または２に記載の装置。
【請求項４】
前記ＧＰＵメモリは、ブロックを記憶するために特定の大きさとなっているとともに、
前記ＧＰＵは、レンダリングされたＭＰＲ画像が前向き連続順序および後向き連続順序のいずれかとなるように、ＭＰＲ画像を表すために必要とされたブロックを処理する動作が可能である請求項１、２または３に記載の装置。
【請求項５】
前記ＣＰＵは、３次元テクスチャとして前記ＧＰＵメモリに転送されるボリュームデータを有するボクセルの前記ブロックを組み立てる動作が可能である請求項１から４のいずれか１項に記載の装置。
【請求項６】
前記ボリュームデータを有するボクセルの前記ブロックは、不規則グリッド上に配置されている請求項１から５のいずれか１項に記載の装置。
【請求項７】
前記ボリュームデータを有するボクセルの前記ブロックは、スタガードグリッド上に配置されている請求項６に記載の装置。
【請求項８】
前記ボリュームデータを有するボクセルの前記ブロックは、前記システムメモリに割り当てられていないが、前記システムメモリからそれらが取り出された時点で前記ＣＰＵによって定義される請求項１から７のいずれか１項に記載の装置。
【請求項９】
前記装置は、レンダリングされたＭＰＲ画像を表示する表示装置をさらに有する請求項１から８のいずれか１項に記載の装置。
【請求項１０】
前記ＧＰＵは、前記ボリュームデータの領域の一連のＭＰＲ画像を生成する動作が可能であり、任意のスラブＭＰＲの厚さを持つ前記ボリュームデータの領域のＭＰＲ画像が各種のスラブＭＰＲの厚さ画像の一階層を適切に蓄積することによってレンダリングされることができるように、前記一連のＭＰＲ画像は、各種のスラブＭＰＲの厚さ（thicknesses）の階層に対応するとともに、前記ＧＰＵメモリに記憶されたＭＰＲ画像に対応する請求項１から９のいずれか１項に記載の装置。
【請求項１１】
前記装置は、制御した速度でユーザに表示するために、一連のＭＰＲ画像を表す動作が可能である請求項１から１０のいずれか１項に記載の装置。
【請求項１２】
前記制御した速度は、一定速度で前記ボリュームデータを通じて進行することに対応する請求項１１に記載の装置。
【請求項１３】
前記装置は、それらの厚さの５０パーセント以上が相互に重なり合った連続ＭＰＲスラブに対応して、連続画像を表す動作が可能である請求項１１または１２に記載の装置。
【請求項１４】
ボリュームデータを通じて動くＭＰＲ面によって定義された１組のボリュームデータから一連の多断面再フォーマット（ＭＰＲ）画像をレンダリングする方法であって、
今後の表示に必要とされるＭＰＲ面を予測するステップと、
前記予測されたＭＰＲ面をレンダリングするために必要とされるボリュームデータを有しているボクセルのブロックを特定するステップと、
前記ブロックをシステムメモリから取り出すステップと、
グラフィック処理装置（ＧＰＵ）メモリに転送するために前記ブロックを列ばせるステップと、
表示するために必要となる前記予測されたＭＰＲ画像に先だって、少なくとも前記列ばせられたブロックのいくつかを前記ＧＰＵメモリに転送するステップと、
表示するために必要となる前記予測されたＭＰＲ面に対応する前記ブロックについて、前記予測されたＭＰＲ面のパーツをレンダリングするために構成されたＧＰＵによって前記ＧＰＵメモリからブロックを読み取るステップと、
ＭＰＲ画像を形成するために前記パーツを組み立てるステップと
を有することを特徴とする方法。
【請求項１５】
ＭＰＲ画像の次のレンダリングのために、前記ＧＰＵメモリの中に前記ボリュームデータを有しているボクセルのブロックを維持するステップをさらに有する請求項１４に記載の方法。
【請求項１６】
ブロックを記憶するために割り当てられた前記ＧＰＵメモリがいっぱいであるとき、ブロックが置換プロトコルに従って前記ＧＰＵメモリに上書きされるように構成されており、
前記置換プロトコルは、ＭＰＲ画像を表すために必要な前記ブロックを記憶するために要求されたブロックを記憶するために割り当てられた前記ＧＰＵメモリの割合を考慮している請求項１４または１５に記載の方法。
【請求項１７】
前記ＧＰＵメモリは、ブロックを記憶するために特定の大きさとなっており、
前記方法は、レンダリングされたＭＰＲ画像が前向き連続順序および後向き連続順序のいずれかとするように、前記ブロックをレンダリングするステップをさらに有する請求項１４、１５または１６に記載の方法。
【請求項１８】
３次元テクスチャとして前記ＧＰＵメモリに転送されるボリュームデータを有するボクセルの前記ブロックを組み立てるステップをさらに有する請求項１４から１７のいずれか１項に記載の方法。
【請求項１９】
ボクセルの前記ブロックは、不規則グリッド上に配置された前記ボリュームデータを有している請求項１４から１８のいずれか１項に記載の方法。
【請求項２０】
ボクセルの前記ブロックは、スタガードグリッド上に配置された前記ボリュームデータを有している請求項１９に記載の方法。
【請求項２１】
前記ボリュームデータを有するボクセルの前記ブロックは、前記システムメモリに割り当てられていないが、それらが前記システムメモリから取り出された時点で定義される請求項１４から２０のいずれか１項に記載の方法。
【請求項２２】
前記方法は、レンダリングされたＭＰＲ画像を表示するステップをさらに有する請求項１４から２１のいずれか１項に記載の方法。
【請求項２３】
前記ボリュームデータの領域の一連のＭＰＲ画像を生成するステップと、
各種のスラブＭＰＲ厚さ画像の一階層を適切に蓄積することによって所望ＭＰＲ画像をレンダリングするステップと、をさらに有し、
前記一連のＭＰＲ画像は、各種のスラブＭＰＲの厚さの階層に対応するとともに、前記ＧＰＵメモリに記憶されたＭＰＲ画像に対応する請求項１４から２２のいずれか１項に記載の方法。
【請求項２４】
一連のＭＰＲ画像をレンダリングするとともに、制御した速度で前記一連の画像を連続して表示するステップをさらに有する請求項１４から２３のいずれか１項に記載の方法。
【請求項２５】
前記制御した速度は、一定速度で前記ボリュームデータを通じて進行することに対応する請求項２４に記載の方法。
【請求項２６】
連続画像が連続ＭＰＲスラブに対応して表され、
前記連続ＭＰＲスラブは、それらの厚さの少なくとも５０パーセントについて相互に重なり合っている請求項２４または２５に記載の方法。
【請求項２７】
請求項１４から２６のいずれか１項に記載の方法を実行するための命令を読み取り可能な装置を有するコンピュータプログラム製品。
【請求項２８】
搬送媒体上のコンピュータプログラムを有する請求項２７に記載のコンピュータプログラム製品。
【請求項２９】
前記搬送媒体は、記憶媒体である請求項２８に記載のコンピュータプログラム製品。
【請求項３０】
前記搬送媒体は、伝送媒体である請求項２８に記載のコンピュータプログラム製品。
【請求項３１】
請求項１４から２６のいずれか１項に記載の方法を実行するように構成されたコンピュータ。
【請求項３２】
ボリュームデータを通じて動くＭＰＲ面によって定義された１組のボリュームデータから一連の多断面再フォーマット（ＭＰＲ）画像スをレンダリングする方法であって、
（ａ）幾何学的構成に従ってボクセルの複数のブロックにボリュームデータのセットを概念的に分割するステップと、
（ｂ）前記ＭＰＲ面の位置を現時点および／または前回から予測するステップと、
（ｃ）前記システムメモリから前記ＧＰＵメモリへの転送のために使用されることが将来生じ得ると予測されたブロックを事前ロードするステップと、
（ｄ）それらのブロックの共通部分の中に移行する前記ＭＰＲ面に先立って、前記ＧＰＵメモリに少なくともいくつかの事前ロードブロックをスケジューリング・プロトコルに従って転送するステップと
を有することを特徴とする方法。
【請求項３３】
厚さを持つ切断面を有するボリュームデータの切断面画像をレンダリングする方法であって、
面位置および方向パラメータと、厚さパラメータ，サンプル密度，投影モードパラメータおよび表示パラメータのうちの任意の１つ以上とで、映像化されるボリュームデータを定義するステップと、
前記ボリュームデータをブロックに分割するステップと、
前記ブロックと表される前記切断面との間の幾何学的関係に基づく要求に応じて、前記ブロックをグラフィックプロセッサに転送するステップと、
前記グラフィックプロセッサを使用して前記切断面画像をレンダリングするステップと  を有することを特徴とする方法。
【請求項３４】
前記分割するステップは、ブロックの中への全ボリュームの概念的細分化であるとともに、データの個々のブロックは、前記分割と転送との間の要求に応じて集められるまたは作成される請求項３３に記載の方法。
【請求項３５】
ボリュームデータブロックのキャッシュは、その後の切断面画像のレンダリングを加速するために、前記グラフィックプロセッサ上に維持される請求項３３または３４に記載の方法。
【請求項３６】
前記転送は、それらが必要とされる前に、グラフィックプロセッサにブロックを転送するスケジューリング・アルゴリズムによる請求項３５に記載の方法。
【請求項３７】
前記方法は、平行面に基づき一連の切断面をレンダリングするために適用され、
前記スケジューリング・アルゴリズムは、切断面面間の線形分離に基づいている請求項３６に記載の方法。
【請求項３８】
前記スケジューリング・アルゴリズムは、さらに、画像間の所望時間間隔に基づいている請求項３７に記載の方法。
【請求項３９】
前記スケジューリング・アルゴリズムは、さらに、前記グラフィックプロセッサに転送されるブロックが通る通信リングであって、前記ブロックが飽和することを回避するように設計されている通信リンクを考慮している請求項３７または３８に記載の方法。
【請求項４０】
前記方法は、共通軸を共有するラジアル面に基づいて一連の切断面画像をレンダリングするために適用され、
前記スケジューリング・アルゴリズムは、前記切断面面間の角距離に基づいている請求項３６に記載の方法。
【請求項４１】
前記スケジューリング・アルゴリズムは、さらに、画像間の所望時間間隔に基づいている請求項４０に記載の方法。
【請求項４２】
前記スケジューリング・アルゴリズムは、さらに、前記グラフィックプロセッサに転送されるブロックが通る通信リングであって、前記ブロックが飽和することを回避するように設計されている通信リンクを考慮している請求項４１に記載の方法。
【請求項４３】
前記方法は、ローカルな空間にかかわらず複雑な空間関係を持つ一連の切断面画像をレンダリングするために適用され、
前記スケジューリング・アルゴリズムは、切断面面間の分離の予測に基づいている請求項３６に記載の方法。
【請求項４４】
前記複雑な空間関係は、直角なカーブの連続面に基づいている請求項４３に記載の方法。
【請求項４５】
前記スケジューリング・アルゴリズムは、さらに、画像間の所望時間間隔に基づいている請求項４３または４４に記載の方法。
【請求項４６】
前記スケジューリング・アルゴリズムは、さらに、前記グラフィックプロセッサに転送されるブロックが通る通信リングであって、前記ブロックが飽和することを回避するように設計されている通信リンクを考慮している請求項４３、４４または４５に記載の方法。
【請求項４７】
前記スケジューリング・アルゴリズムは、ボリュームデータのブロックが前記キャッシュに出入りするとき、唯一の調停手段となる請求項３６に記載の方法。
【請求項４８】
前記スケジューリング・アルゴリズムは、前記キャッシュにブロックを加えるとともに、最長時間未使用（ＬＲＵ）手法が前記キャッシュからブロックを消去するために使用される請求項３６から４７のいずれか１項に記載の方法。
【請求項４９】
データブロックのワーキングセットが前記キャッシュの大きさと同一またはより大きい条件では、最も最近使用（ＭＲＵ）置換手法が代わりに使用される請求項４８に記載の方法。
【請求項５０】
前記レンダリング・アルゴリズムは、ワーキングセットがキャッシュの大きさを超えているとき、病理学的キャッシュ機能をもたらさない順序で、ボリュームデータのブロックをアクセスするように設定されている請求項４８または４９に記載の方法。
【請求項５１】
前記ブロックのアクセス順序は、順方向および逆方向のどちらでもよく、換言すれば、ブロックは、増加方向および減少方向の交互にアクセスされる、またはそれに近似の状態でアクセスされる請求項５０に記載の方法。
【請求項５２】
前記方法は、
厚さを持つ一連の切断面画像のレンダリングに適用されるとともに、
前記切断面領域のサンプル面、および／または、画像としての蓄積サブセットを構成する切断面画像のキャッシュを維持するステップと、
キャッシュされた画像の適切な選択を蓄積することで厚さを持つ切断面画像を作成するとともに、必要な場合、切断面画像を追加するステップと、
をさらに有する請求項３６に記載の方法。
【請求項５３】
前記画像キャッシュは、切断面画像を有する請求項５２に記載の方法。
【請求項５４】
前記画像キャッシュは、蓄積画像の階層を有し、
前記階層のレベル０は、切断面画像であり、
前記階層のレベル１は、あらゆるＫ画像の蓄積であり、
前記階層のレベル２は、あらゆるＫ２画像の蓄積であり、その他のレベルも同様にあり得る請求項５２または５３に記載の方法。
【請求項５５】
前記階層の最低レベルは、削除される請求項５４に記載の方法。
【請求項５６】
前記階層の最低レベルは、前記切断面領域を区切る前記面付近を除いて削除される請求項５４に記載の方法。
【請求項５７】
前記蓄積モードは、
（ａ）最大、
（ｂ）事前に定義された値、または事前に定義された値の領域に入るものを除くピクセルの最大、
（ｃ）最小、
（ｄ）    事前に定義された値、または事前に定義された値の領域に入るものを除くピクセルの最小、
（ｅ）平均、
（ｆ）事前に定義された値、または事前に定義された値の領域に入るものを除くピクセルの平均、
（ｇ）逆指数（inverse exponential）の合計、
（ｈ）事前に定義された値、または事前に定義された値の領域に入るものを除くピクセルの逆指数の合計、
（ｉ）不透明ベースのボリュームレンダリング、
のなかの一つである請求項５２から５６のいずれか１項に記載の方法。
【請求項５８】
前記方法は、厚さを持つ一連の切断面画像のレンダリングに適用され、新たな画像のために必要とされた画像データの大部分が前記キャッシュの中に存在しているように、切断面領域の連続した位置の間が実質的に重なっている請求項５２から５７のいずれか１項に記載の方法。
【請求項５９】
前記方法は、厚さを持つ一連の切断面画像のレンダリングに適用され、最大０（log(N)）画像の累積で必要とする新しい画像をレンダリングするように、および、最大０（log(N)）切断画像のレンダリングで必要とする新しい画像をレンダリングするように、切断面領域の連続した位置の間が実質的に重なっており、前記Nは、前記切断面領域の厚さである請求項５４に記載の方法。
【請求項６０】
レンダリングされる切断面領域が毎秒ミリメートルの設定速度でボリュームを通じて前進できるように、フィードバックループを具備して厚さを持つ一連の切断面画像をレンダリングするコンピュータシステム。
【請求項６１】
毎秒ミリメートルの所望速度に設定することをユーザに許容するユーザインターフェースを具備している請求項６０に記載のコンピュータシステム。
【請求項６２】
請求項５８の方法を利用する請求項６０に記載のコンピュータシステム。
【請求項６３】
請求項５９の方法を利用する請求項６０に記載のコンピュータシステム。
【請求項６４】
請求項３３から５９のいずれか１項に記載の方法を実行するコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ボリュームレンダリングに関するものであり、特に、グラフィック処理装置（ＧＰＵ）を有するコンピュータシステムを使用する多断面再フォーマット（ＭＰＲ）に関するものである。
【背景技術】
【０００２】
ＭＰＲボリュームレンダリングは、コンピュータ利用の断層撮影（ＣＴ）スキャナ、磁気共鳴（ＭＲ）スキャナ、超音波スキャナおよび陽電子放射断層撮影（ＰＥＴ）システムのような、医療画像処理装置によって収集された３次元データセットの２次元表示をするための標準方法である。これらの３次元データセットは、ボリュームデータと呼ばれるときがある。医療画像処理の初期では、ボリュームデータのレンダリングは、スキャナに関する供給メーカー特有のソフトウェアおよびハードウェアで実行されていた。しなしながら、長年にわたり、例えば一般的パーソナルコンピュータおよびワークステーションなどの汎用計算機においてボリュームレンダリングを実行するアプリケーションソフトウェアは、いかなる特注ハードウェアも利用しない、ことは周知である。
【０００３】
一般に、医療画像データセットは大きい。０．５ギガバイトから８ギガバイトのサイズはめずらしくない。例えば、医療画像データセットは、約２ギガバイトのデータに対応する１０２４×１０２４×１０２４の１６ビットのボクセルを有することとしてもよい。これから、１０２４×１０２４の１６ビットのピクセルを有する画像が表示されることとしてもよい。さらに、レンダリング画像を見るときの一般的な要望は、動画としてユーザに見られる一連の画像を生成することである。訓練されたユーザは、映画を見ることによって、ボリュームデータによって表された対象物の立体的な心像(mental image)を形成することができる。効率的にするために、より早いフレームレートが選択されているときに、１５フレーム／秒（ｆｐｓ）の映画のフレームレートが好ましいとみなしてもよい。また、映画がリアルタイムで生成されて表示されることが望ましい。
【非特許文献１】Lichtenbelt, B., Crane, R. and Naqvi, S., "ボリュームレンダリング入門(Introduction to Volume Rendering)", Hewlett-Packard Company, Prentice-Hall PTR, New Jersey, 1998
【発明の開示】
【発明が解決しようとする課題】
【０００４】
したがって、医療ボリュームレンダリングでは、高い計算機集積度および高い処理能力の新式の汎用計算機のＣＰＵが許容速度での作業についてたびたび不十分となる。
【０００５】
新式のパーソナルコンピュータおよびワークステーションは、一般にグラフィックカードを有しているとともに、多くの場合、前記グラフィックカードは、グラフィック処理装置（ＧＰＵ）を有している。総合処理能力に関して、新式ＧＰＵは、通常、コンピュータの中央処理装置（ＣＰＵ）よりも約１桁優れている。
【０００６】
したがって、本発明は、ボリュームレンダリング処理を実行するために、ＧＰＵにおいて利用可能な処理能力を利用することが望ましい、との前提に基づいている。これは新しい着想ではない。
【０００７】
この使用を考慮することは独創的な設計ではないが、それらがボリュームレンダリングの作業に適用されるようにＧＰＵを実行させることは、十分一般的にプログラム可能であり、特に、医療でのボリュームレンダリングにおいて、前記作業は、通常、人間の患者の内蔵の画像を表すことである。しかしながら、ＧＰＵには、医療画像のレンダリングを実行するために十分良好な計算能力があるが、それにもかかわらず、実用的なＧＰＵベースで医療画像レンダリングを実行することは困難な作業である。
【０００８】
医療画像ボリュームデータは、通常、ＧＰＵをサポートするグラフィックカードで利用可能なメモリより大きく、さらに、ＣＰＵに関連するシステムメモリから前記グラフィックカードまでのデータ転送には制限された帯域幅が利用可能であるので、問題が生じる。新式グラフィックカードでは、通常、例えば約２５６または５１２メガバイトのメモリを持っている。ボリュームデータはシステムメモリ内にリニアに記憶されるので、さらに問題点が生じる。例えば、ｘ−、ｙ−およびｚ−座標軸に配置されたボクセルを有するボリュームデータは、システムメモリ内で、ｘ−軸に隣接するボクセルが隣接位置を占有するように、一般に、保存されており、ｙ−軸に隣接するボクセルはｘ−軸ボクセルの一列で分離されており、ｚ−軸に隣接するボクセルはｘｙ−面内のボクセルの数にしたがって分離されている。この問題は、アクセスがより簡易である隣接列の中ではなく、システムメモリ全体に広まったボクセルを有する任意方向面に配置されたボクセルに頻繁にアクセスするＭＰＲボリュームレンダリングにおいて、特に重要である。与えられたＭＰＲ画面について、より適切な順序でシステムメモリの中にボリュームデータを複写することが可能であるが、これは、一般に、メモリの重複した損失となるので、望ましくない。
【０００９】
これらの問題について役立つ既知の一つの方法は、例えば、非特許文献１に記載されているように、一連の規則的グリッドブロックの中にシステムメモリ内のボクセルを再配置することである。そうすることで、ボリューム空間に隣接しているボクセルのグループは、システムメモリ内でより緊密に配置されることができる。その上、ボクセルの個々のブロックの大きさは、ＧＰＵをサポートするグラフィックカードで利用可能なメモリ内でのレンダリング中に、それらがお互いから別々に処理できるように、選択することができる。
【００１０】
しかしながら、「Lichtenbelt」その他の手法は、ＣＰＵからＧＰＵへのレンダリング計算の効率的な外部実行にある程度役立つことができるが、多くの性能制限が残っている。特に、ＧＰＵによる処理についてのシステムメモリからグラフィックカードへのボクセルのブロック転送に関連する前記システムバスの伝送量は、非常に変化する。ある瞬間でのレンダリングで要求されたボクセルを有しているブロックの場合では、グラフィックカード上のメモリにロードされ、そのレンダリング処理はＧＰＵの処理能力の速度で続けることができる。しかしながら、グラフィックカードメモリにロードされないブロック内のボクセルが前記レンダリング・アルゴリズムにとって必要になるので、ＧＰＵによる使用について、新しいブロックがＣＰＵによってシステムメモリから取り出されてグラフィックカードに転送される間、停止する必要がある。これは、特に、リアルタイムの映画において、不自然で且つとぎれとぎれの動作を招いてしまう。
【００１１】
したがって、より一貫性のある動作をするＧＰＵベースのボリュームレンダリングを提供するための装置および方法が必要となる。
【課題を解決するための手段】
【００１２】
本発明の第１特徴によれば、ボリュームデータから多断面再フォーマット（ＭＰＲ）画像をレンダリングするための装置であって、前記ボリュームデータを記憶するシステムメモリに接続された中央処理装置（ＣＰＵ）と、コンピュータシステムバスを介して、ＧＰＵメモリと前記ＣＰＵとシステムメモリとに接続されたグラフィック処理装置（ＧＰＵ）と、を有し、前記ＣＰＵは、後で表示するために必要とされるＭＰＲ画像を予測するとともに、前記予測ＭＰＲ画像をレンダリングするために必要とされるボリュームデータを有するボクセルのブロックを特定する、動作をすることができ、前記ＣＰＵは、さらに、前記システムメモリから前記ブロックを取り出すとともに、それらを前記ＧＰＵメモリに転送するために列にならばせる（キュー）動作をすることができる装置を提供する。前記装置は、さらに、前記予測ＭＰＲ画像が表示に必要となる前に、前記ＧＰＵメモリへの前記ならべられたブロックの少なくともいくつかを転送する制御をするために配置されたスケジューラを有しており、前記ＧＰＵは、表示に必要とされるとともに、ＭＰＲ画像の中にそれらの部分を組み立てる場合に、ＣＰＵから一旦前記ＧＰＵメモリに転送された前記ブロックをそのＧＰＵメモリから取り出すとともに、前記予測ＭＰＲ画像に対応する部分をレンダリングする動作をすることができる。
【００１３】
概念的にボリュームデータをブロックに分轄することによって、典型的なＧＰＵでは利用可能なメモリが少ないにもかかわらず、ＣＰＵの処理能力はＭＰＲ画像をレンダリングすることに使用されることができる。さらに、ＣＰＵが今後に必要となりそうであると予測するブロックの転送を計画することによって、医療画像ボリュームデータをＧＰＵベースでレンダリングする手法で知られている不規則なバス転送量に関連する一貫性のない動作の影響が減少するとともに、連続画像の迅速なレンダリングが実行できる。
【００１４】
前記装置は、ブロックを記憶するように割り当てられたＧＰＵメモリがいっぱいであるとき、ブロックが置換プロトコルにしたがってＧＰＵメモリの中に上書きされるように、構成されていることとしてもよい。前記置換プロトコルはブロックを記憶するために割り当てられたＧＰＵメモリの割合を考慮しており、前記ブロックはＭＰＲ画像をレンダリングするために必要なブロックを記憶するときに要求される。この手法は、例えば、そうするのが最も効率的となるときに使用される、最も長い間使用されていないものを置換するプロトコル（ＬＲＵ置換プロトコル）を容認するが、画像をレンダリングするために必要なブロック数を効率的に処理するために、ブロック記憶に割り当てられたＧＰＵメモリに十分な空きがないために、ＬＲＵ置換プロトコルがスラッシングを引き起こすとき、他の置換プロトコル（例えば、最も最近使用されたものを置換するプロトコル（ＭＲＵプロトコル））に切り換えられる。
【００１５】
スラッシングを避ける他の方法は、前方向および逆方向の連続順序で交互に次々に表示される交互（alternate）ＭＰＲ画像をレンダリングするのに必要なブロックを処理するようにＧＰＵを構成することである。
【００１６】
ＣＰＵは、３次元テクスチャとしてＧＰＵメモリに転送されるボリュームデータを有するボクセルのブロックを組み立てる動作が可能なものとしてもよい。これは、ＧＰＵが効率的な手法で処理できるブロックを有するボクセルデータにアクセスするＧＰＵを提供する。
【００１７】
前記ボリュームデータを有するボクセルのブロックは、例えばスタガードグリッドのような、不規則グリッド上に配置されていることとしてもよい。この配置は、多数の新しいブロックを同時にＧＰＵメモリにアップロードする必要が生じる可能性を減少させるので、バス伝送量の変動を減少させることができる。これは、ブロックが規則グリッド上に配置された場合でも、規則的に配置されたブロックの境界を横切る映画を生成するように、ＭＰＲスラブがボリュームデータを通じて進行するようにさせることができる。
【００１８】
ボリュームデータを有するボクセルのブロックは、システムメモリ内で特定される必要はないが、その代わり、それらが検索されるときに、ＣＰＵによって定義される。このように「急いで」ブロックを生成することによって、システムメモリにボリュームデータを再配置する必要がなくなる。さらに、ブロックのサイズ、形および構成は、一般的な条件に従ってダイナミックに選択することができる。
【００１９】
さらに、前記装置は、ユーザにレンダリングＭＰＲ画像を表示するディスプレイを有することとしてもよい。あるいはまた、レンダリング画像は後の検索のために記憶されることとしてもよい。
【００２０】
ＧＰＵがスラブＭＰＲの厚さの異なる階層に対応するボリュームデータ領域の一連のＭＰＲ画像を生成するとともに、ＧＰＵメモリにＭＰＲ画像を記憶する、動作をするときに、レンダリング速度がさらに高められることとしてもよい。これは、任意のスラブＭＰＲ厚さを持つＭＰＲ画像が、ＭＰＲスラブのなかの全てのボクセルをレンダリングする必要なく、スラブＭＰＲの厚さの異なる階層の積層された適切な一つものによって表すことができる、ことを意味する。
【００２１】
前記装置は、さらに、制御された速度でユーザに表示するために、一連のＭＰＲ画像をレンダリングする動作が可能なものであってもよい。例えば、前記速度は、一定速度でボリュームデータを通じて進行するものに対応する。前記装置は、さらに、かなりの量でお互いに重なり合った対応する連続ＭＰＲスラブから一連の画像として連続画像をレンダリングする動作が可能なものであってもよい。前記重なり量は、ユーザの視覚的印象がボリュームを通じて徐々に進行する一つのスラブとなるように、例えば、それらの厚さの５０パーセント以上で、例えば、６０パーセントまたは７０パーセント以上で、より望ましくは更に大きな量、例えば８０パーセント、９０パーセントまたは９５パーセントとする。この手法は、スラブの厚さと等しいまたは僅かに短い距離だけフレーム間でスラブを動かす従来の手法とは異なっている。ＧＰＵベースのシステムは、スラブを形成する部分の大部分がＧＰＵのメモリにキャッシュされ得る、または他の方法で記憶される、という事実を考慮すると、スラブの厚さに比較して小さいきざみ量で進行するシステムについて追加コストが少ないものとして提案された手法に、それ自身適している。
【００２２】
本発明の第２特徴によれば、ボリュームデータから多断面再フォーマット（ＭＰＲ）画像をレンダリングするための方法であって、
今後の表示に必要とされるＭＰＲ画像を予測するステップと、
前記予測されたＭＰＲ画像をレンダリングするために必要とされるボリュームデータを有しているボクセルのブロックを特定するステップと、
前記ブロックをシステムメモリから取り出すステップと、
グラフィック処理装置（ＧＰＵ）メモリに転送するために前記ブロックを列ばせる（キューする）ステップと、
表示するために必要となる前記予測されたＭＰＲ画像に先だって、少なくとも前記列ばせられたブロックのいくつかを前記ＧＰＵメモリに転送するステップと、
表示するために必要となる前記予測されたＭＰＲ画像に対応する前記ブロックについて、前記予測されたＭＰＲ画像のパーツをレンダリングするために構成されたＧＰＵによって前記ＧＰＵメモリからブロックを読み取るステップと、
ＭＰＲ画像を形成するために前記パーツを組み立てるステップと、
を有する方法を提供する。
【００２３】
本発明の第３特徴によれば、本発明の第２特徴に係る方法を実行するための命令を読み取り可能な装置を有するコンピュータプログラム製品を提供する。
【００２４】
本発明の第３特徴に係る前記コンピュータプログラム製品は、例えば、記憶媒体または伝送媒体などの、搬送媒体上のコンピュータプログラムを有することとしてもよい。
【００２５】
本発明の第４特徴によれば、本発明の第２特徴に係る方法を実行するように構成されたコンピュータを提供することができる。
【００２６】
本発明の第５特徴によれば、ボリュームデータから多断面再フォーマット（ＭＰＲ）画像をレンダリングする装置であって、ボリュームデータを記憶するシステムメモリに接続されたＣＰＵと、ＧＰＵメモリに接続されているとともに、バスを介してＣＰＵおよびシステムメモリに接続されているＧＰＵと、を有し、前記ＣＰＵは、ＭＰＲ画像のレンダリングに必要なボリュームデータを有するボクセルのブロックを特定する動作が可能であり、さらに、前記ＣＰＵは、対応するＭＰＲ画像部分のレンダリングのために、前記ブロックをシステムメモリから取り出すとともに、それらをＧＰＵメモリに転送する動作が可能であり、ボリュームデータを有するボクセルの前記ブロックは、不規則グリッド上に配置されている、装置を提供することができる。例えば、スタガードグリッド。
【００２７】
本発明の第６特徴によれば、ボリュームデータから多断面再フォーマット（ＭＰＲ）画像をレンダリングする装置であって、ボリュームデータを記憶するシステムメモリに接続されたＣＰＵと、ＧＰＵメモリに接続されているとともに、バスを介してＣＰＵおよびシステムメモリに接続されているＧＰＵと、を有し、前記ＣＰＵは、ＭＰＲ画像のレンダリングに必要なボリュームデータを有するボクセルのブロックを特定する動作が可能であり、さらに、前記ＣＰＵは、ＧＰＵによる、対応するＭＰＲ画像部分のその後のレンダリングのために、前記ブロックをシステムメモリから取り出すとともに、それらをＧＰＵメモリに転送する動作が可能であり、さらに、前記装置は、ブロックの記憶に割り当てられたＧＰＵメモリがいっぱいであるとき、ブロックが置換プロトコルに従って前記ＧＰＵメモリに上書きされるように構成されており、前記置換プロトコルは、ＭＰＲ画像を表すために必要な前記ブロックを記憶するために要求されたブロックを記憶するために割り当てられた前記ＧＰＵメモリの割合を考慮している、装置を提供することができる。
【００２８】
本発明の第７特徴によれば、設定速度でユーザに表示するために、一連のＭＰＲ画像を表す動作が可能な装置を提供することができる。
【００２９】
本発明の第８特徴によれば、ユーザによって決定された速度でユーザに表示するために、一連のＭＰＲ画像を表す動作が可能な装置を提供することができる。
【００３０】
また、本発明は、厚さを持つ切断面を有するボリュームデータの切断面画像をレンダリングする方法であって、
面位置および方向パラメータと、厚さパラメータ，サンプル密度，投影モードパラメータおよび表示パラメータのうちの任意の１つ以上とで、映像化されるボリュームデータを定義するステップと、
前記ボリュームデータをブロックに分割するステップと、
前記ブロックと表される前記切断面との間の幾何学的関係に基づく要求に応じて、前記ブロックをグラフィックプロセッサに転送するステップと、
前記グラフィックプロセッサを使用して前記切断面画像をレンダリングするステップとを有する方法を提供する。
【００３１】
前記分割は、ブロックの中への全ボリュームの概念的細分化であるとともに、データの個々のブロックが前記分割と転送との間の要求に応じて集められるまたは作成される、ものとして見ることができる。
【００３２】
ボリュームデータブロックのキャッシュは、その後の切断面画像のレンダリングを加速するために、前記グラフィックプロセッサ上に維持される。
【００３３】
前記転送は、それらが必要とされる前に、グラフィックプロセッサにブロックを転送するスケジューリング・アルゴリズムによるものとしてもよい。
【００３４】
前記方法は、平行面に基づき一連の切断面画像をレンダリングするために適用され、前記スケジューリング・アルゴリズムは、切断面面間の線形分離に基づいている。
【００３５】
また、前記スケジューリング・アルゴリズムは、画像間の所望時間間隔に基づいていることとしてもよい。また、前記スケジューリング・アルゴリズムは、前記グラフィックプロセッサに転送されるブロックが通る通信リングであって、前記ブロックが飽和することを回避するように設計されている通信リンクを考慮している、ものとしてもよい。前記方法は、共通軸を共有するラジアル面に基づいて一連の切断面画像をレンダリングするために適用され、前記スケジューリング・アルゴリズムは、前記切断面面間の角距離に基づいている、こととしてもよい。前記スケジューリング・アルゴリズムは、さらに、画像間の所望時間間隔に基づいている、こととしてもよい。また、前記スケジューリング・アルゴリズムは、前記グラフィックプロセッサに転送されるブロックが通る通信リングであって、前記ブロックが飽和することを回避するように設計されている通信リンクを考慮している、こととしてもよい。前記方法は、ローカルな空間にかかわらず複雑な空間関係を持つ一連の切断面画像をレンダリングするために適用され、前記スケジューリング・アルゴリズムは、切断面面間の分離の予測に基づいている、こととしてもよい。前記複雑な空間関係は、直角なカーブの連続面に基づいていることとしてもよい。また、前記スケジューリング・アルゴリズムは、画像間の所望時間間隔に基づいていることとしてもよい。また、前記スケジューリング・アルゴリズムは、前記グラフィックプロセッサに転送されるブロックが通る通信リングであって、前記ブロックが飽和することを回避するように設計されている通信リンクを考慮している、ものとしてもよい。
【００３６】
前記スケジューリング・アルゴリズムは、ボリュームデータのブロックが前記キャッシュに出入りするとき、唯一の調停手段となる、ものとしてもよい。
【００３７】
前記スケジューリング・アルゴリズムは、前記キャッシュにブロックを加えるとともに、最長時間未使用（ＬＲＵ）手法が前記キャッシュからブロックを消去するために使用される、ものとしてもよい。データブロックのワーキングセットが前記キャッシュの大きさと同一またはより大きい条件では、最も最近使用（ＭＲＵ）置換手法が代わりに使用されている。
【００３８】
前記レンダリング・アルゴリズムは、ワーキングセットがキャッシュの大きさを超えているとき、病理学的キャッシュ機能をもたらさない順序で、ボリュームデータのブロックをアクセスするように設定されている、こととしてもよい。前記ブロックのアクセス順序は、順方向および逆方向のどちらでもよく、換言すれば、ブロックは、増加方向および減少方向の交互にアクセスされる、またはそれに近似の状態でアクセスされる、こととしてもよい。
【００３９】
前記方法は、厚さを持つ一連の切断面画像のレンダリングに適用されるとともに、前記切断面領域のサンプル面、および／または、画像としての蓄積サブセットを構成する切断面画像のキャッシュを維持するステップと、キャッシュされた画像の適切な選択を蓄積することで厚さを持つ切断面画像を作成するとともに、必要な場合、切断面画像を追加するステップとをさらに有する、ものとしてもよい。前記画像のキャッシュは、切断面画像を有することとしてもよい。前記画像キャッシュは、蓄積画像の階層を有し、前記階層のレベル０は、切断面画像であり、前記階層のレベル１は、あらゆるＫ画像の蓄積であり、前記階層のレベル２は、あらゆるＫ２画像の蓄積であり、その他のレベルも同様とする、こととしてもよい。前記階層の最低レベルは、完全に、または一部が、削除され、後者の場合、前記階層の最低レベルが前記切断面領域を区切る前記面付近を除いて削除される、こととしてもよい。
【００４０】
前記蓄積モードは、最大、事前に定義された値または事前に定義された値の領域に入るものを除くピクセルの最大、最小、事前に定義された値、または事前に定義された値の領域に入るものを除くピクセルの最小、平均、事前に定義された値または事前に定義された値の領域に入るものを除くピクセルの平均、逆指数（inverse exponential）の合計、事前に定義された値または事前に定義された値の領域に入るものを除くピクセルの逆指数の合計、不透明ベースのボリュームレンダリング、またはその他の手法、としてもよい。
【００４１】
前記方法は、厚さを持つ一連の切断面画像のレンダリングに適用され、新たな画像のために必要とされた画像データの大部分が前記キャッシュの中に存在しているように、切断面領域の連続した位置の間が実質的に重なっていることとしてもよい。
【００４２】
前記方法は、厚さを持つ一連の切断面画像のレンダリングに適用され、最大０（log(N)）画像の累積で必要とする新しい画像をレンダリングするように、および、最大０（log(N)）切断画像のレンダリングで必要とする新しい画像をレンダリングするように、切断面領域の連続した位置の間が実質的に重なっており、前記Nは、前記切断面領域の厚さである、ものとしてもよい。
【００４３】
また、本発明は、レンダリングされる切断面領域が毎秒ミリメートルの設定速度でボリュームを通じて前進できるように、フィードバックループを具備して厚さを持つ一連の切断面画像をレンダリングするコンピュータシステムを提供する。
【００４４】
前記システムは、ボリュームを通じた毎秒ミリメートルの所望進行速度に設定することをユーザに許容するユーザインターフェースを具備している、こととしてもよい。
【００４５】
ＭＰＲ面への言及は、平坦な面に限定されるように解釈するべきではなく、任意形状の面が含まれる、ことが理解される。例えば、非平坦な面は、曲がったＭＰＲで一般に使用される。
【発明を実施するための最良の形態】
【００４６】
本発明のより良い理解のために、そして、その発明がいかにして有効に実施されるかを示すために、一例として示された、以下に添付の図面を参照する。
【００４７】
図１は、患者４の一部領域の３次元スキャンを得るための一般的なＭＲスキャナ２の概要斜視図である。対象となる解剖学的特徴（この場合は頭部）がＭＲスキャナ２の円形開口部６の中に置かれるとともに、患者を貫いて薄切りした一連の画像が得られる。未加工の画像データがＭＲスキャナから得られるとともに、例えば、２次元の５１２×５１２データサブセットの１０００の集合が得られる。これらのデータサブセットは、研究される患者の一部領域の１枚をそれぞれ表し、ボリュームデータを生成するために結合されている。前記ボリュームデータは、前記薄切りされたものの１枚のピクセルにそれぞれ対応するボクセルの集合を有している。したがって、ボリュームデータは特徴画像の３次元表示をするものであるとともに、前記３次元表示から様々にユーザに選択された２次元映像（出力画像）が表示できる（通常のコンピュータモニタ上に）。
【００４８】
各種の画像診断方法が各種の画像分解能を一般的に提供するとともに、ボリューム画像の全体的な大きさがさらなる研究の本質的な懸案事項となっている。しかしながら、以下の説明では、具体的な実施形態を通じて、ボリュームデータがｘ−軸，ｙ−軸およびｚ−軸によって通常のデカルトグリッドに配置された５１２×５１２×１０２４のアレイの１６ビットのボクセルを有するとみなされ、前記ボクセルが各軸に沿って０．５ｍｍ間隔を開けられているとみなされる。これは、例えば、人間の頭部を取り囲むように、周囲２５ｃｍ×２５ｃｍ×５０ｃｍの全体的な画像ボリュームに対応している。従来と同様に、前記ボリュームデータは、横軸（transverse）、矢印方向および前頭面に配置されている。ｘｙ−軸は切断面にあり、ｘｚ−軸はコロナル面にあり、ｙｚ−軸は矢状面にある。
【００４９】
上述のように、ボリュームデータから２次元出力画像を生成する一般的な技術は、多断面再フォーマット（ＭＰＲ）として知られている。ＭＰＲは、あらゆる面配向についてデータを可視化するために、ボリュームデータを介して断面図の面を提示するための技術である。厚さゼロ、または面について、ＭＰＲ、出力画像は、所望方向および位置に、ボリュームデータを介して出力画像面におけるピクセルに対応する位置に、ボリュームデータを抽出する（通常補間法を伴う）ことで生成される。２次元画像として生成するためにボリュームデータに適用される特定の数学的処理は、十分に知られており、ここでは説明しない。
【００５０】
ＭＰＲの関連形式は、厚さを持つＭＰＲまたはスラブ（slab）ＭＰＲとして知られている。スラブＭＰＲは、ノイズを低減させるために、またはデータについて解剖学的構造の認知を向上させるために、ボリュームデータがグリッド上で得られるところで、多くの場合使用されている。前記グリッドは、ユーザによって見るために要求される画像分解能よりも高密度である。スラブでは、前記ボリュームデータの面スラブがその付近について有限厚さ以上に及び出力画像面に垂直に拡大されて所望出力画像と平行に特定される。すなわち、視野角度に沿っている。前記出力画像は、所望アルゴリズムに従って視野角度に沿ってこの面スラブを折り畳むことで得られる。一般的な折り畳みアルゴリズムは、出力画像の中の単一ピクセルに映し出す前記面スラブのすべてのボクセルで生じる最大、最小または平均信号値の測定を有する。そして、この信号値は、そのピクセルについて前記出力画像を表すための信号とみなされる。面ＭＰＲのような、スラブＭＰＲ画像を生成するためにボリュームデータに適用される数学的処理は、十分に知られており、ここでは説明しない。
【００５１】
上述のように、連続した一連の平行ＭＰＲ画像（面ＭＰＲまたはスラブＭＰＲ画像とすることができる）を見るためのものである医療画像ボリュームデータを研究するときの一般的な願望は、例えば、ボリュームデータを介して動く画像スライスの感を与えること、または、連続する近隣によって覆われたおよび／または解剖学の領域を重ねた画像スラブの感を与えることである。このように適当に訓練されたユーザにＭＰＲ画像の映画を提示することによって、前記ユーザは、前記ボリュームデータによって表された被写体の心像を正確に形成することができる。
【００５２】
図２は、本発明の一実施形態に係るものであって、二次元画像の映画を生成するためにボリュウームデータの処理を実行するように構成された汎用計算機システム２２を概略的に示している。コンピュータ２２は、中央処理装置（ＣＰＵ）２４と、リードオンリメモリ（ＲＯＭ）２６と、ランダムアクセスメモリ（ＲＡＭ）２８と、ハードディスクドライブ３０と、ディスプレイドライバ３２と、ディスプレイ３４と、キーボード３８およびマウス４０を持つユーザ入出力（Ｉ／０）回路３６とを具備している。これらの装置は、共通バス４２を介して接続されている。また、コンピュータ２２は、共通バス４２を介して接続されたグラフィックカード４４を具備している。本実施形態では、前記グラフィックカードは、カナダのオンタリオ州の「ATI Technologies Inc.」によって製造されたラデオンＸ８００ＸＴ映像処理ユニットである。前記グラフィックカードは、グラフィック処理装置（ＧＰＵ）と前記ＧＰＵに密結合されたランダムアクセスメモリ（ＧＰＵメモリ）とを有している（図２では図示せず）。
【００５３】
ＣＰＵ２４は、ボリュームデータのボクセルに関連する信号値の処理を実行するために、ＲＯＭ２６、ＲＡＭ２８またはハードディスクドライブ３０に記憶されたプログラム命令を実行することができる。前記ボリュームデータは、ＲＡＭ２８またはハードディスクドライブ３０の中に記憶されることができる。ＲＡＭ２８およびハードディスクドライブ３０は、システムメモリとしてまとめて呼ばれる。また、前記ＧＰＵは、前記ＣＰＵから転送されたボリュームデータの処理を実行するためのプログラム命令を実行することができる。
【００５４】
図３は、さらに詳細に図２のコンピュータシステムのいくつかの特徴を図示している。ＲＡＭ２８およびハードディスクドライブ３０は、システムメモリ４６として図３においてまとめて示されている。図１に示すＭＲスキャナから得られたボリュームデータ４８は、図面において概略的に示された前記システムメモリに記憶される。
【００５５】
コンピュータシステム２２の機構間の各種データ転送ルートを示す助けとして、図２に示す共通バス４２が一連の別個のバス接続４２ａ−ｄとして図３で概略的に示されている。第１バス接続４２ａは、システムメモリ４６とＣＰＵ２４との間を接続している。第２バス接続４２ｂは、ＣＰＵ２４とグラフィックカード４４との間を接続している。第３バス接続４２ｃは、グラフィックカード４４とディスプレイ３４との間を接続している。第４バス接続４２ｄは、ユーザＩ／Ｏ３６とＣＰＵ２４との間を接続している。前記ＣＰＵは、ＣＰＵキャッシュ５０とスケジューラスレッド５２とを有している。グラフィックカード４４は、ＧＰＵ５４とＧＰＵメモリ５６とを有している。ＧＰＵ５４は、加速グラフィック処理インターフェース６０と、ＧＰＵキャッシュＩ／Ｏコントローラ６２と、処理エンジン６４と、ディスプレイＩ／Ｏコントローラ６６とを具備する回路を有している。処理エンジン６４は、３次元レンダリングに一般的に関連しているプログラム命令のタイプを最適化して実行するように設計されている。
【００５６】
図４ａおよび図４ｂは、本発明の実施形態に従って図２および図３コンピュータシステム２２を使用して二次元画像を生成するためのボリュームデータの処理方法を概略的に表すフローチャートを示している。
【００５７】
ステップＳ１では、映画を見ることを希望するユーザが生成される所望の初期画像（画像＃１）に対応する開始ＭＰＲスラブ（ＭＰＲスラブ＃１）を定義する。また、ユーザは、映画フレーム間のステップサイズと、その映画の進行方向とを定義する。ユーザは、例えば従来技術を使用して、ディスプレイ３４に表示された選択可能なメニューと組み合わせてキーボード３８およびマウス４０を使用して必要なパラメータを定義する。本実施形態では、ＭＰＲスラブ＃１は、５ｍｍ（１０のボクセルに対応する）の厚みを持っているとともに、ｘ−軸に平行に、且つ、ｙ−軸およびｚ−軸の両方に４５度傾いて、配置されている。ＭＰＲスラブ＃１の中央は、ボリュームデータ４８の中央と一致している。映画フレーム間の定義されたステップサイズは、４ｍｍ（すなわち、２０パーセント重なったＭＰＲスラブの厚みの８０パーセントのステップ）であるとともに、前記ボリュームデータを介した映画の所望方向は、上向きｚ−方向であってＭＰＲスラブ＃１に垂直である。
【００５８】
図５は、ボリュームデータ４８によって表された空間領域を図示している。本実施形態では、シリンダ７０が映像化されている。前記ｘ−軸、ｙ−軸およびｚ−軸についての前記ボリュームデータの位置決めは、本図の下側の左手隅に示されている。また、ＭＰＲスラブ＃１と前記シリンダとの交点が図示されている。ボリュームデータ４８は、図５の太線グリッドによって示されるように、ボクセルの多数のブロックに分割されているとみなす。細線グリッドは、個々のボクセルを表す。図５に示されたグリッドは、概要であるとともに、全てのボクセルに対応するグリッド線ではなく、ブロックは明瞭化のために示されていると、理解すべきである。
【００５９】
本実施形態では、ボクセルのブロックの中へのボリュームデータのこの分割は、概念的なものであるとともに、システムメモリの中のボリュームデータの再順序付けに対応していない。前記ボリュームデータは、通常、線形順序でシステムメモリに記憶される。しかしながら、他の実施形態として、それぞれの個別ブロックに関連するボクセルデータが直線的にアクセス可能となるように、前記ボリュームデータがシステムメモリに再配置されるものとしてもよい。一般に、このように順序付けられた前記ボリュームデータの２重化（置換よりむしろ）は、他のボリュームデータ解析手段がボリュームデータの複製を必要とするときに、システムメモリの中で線形順序となっているように、使用される。この手法は状況次第で適切なものとなるが、システムメモリでのボリュームデータの前記再配置は、前記再配置を実行するのに要する時間と必要メモリとの両方に関してコストがかかる。また、前記手段は、一度再配置すると再配置を繰り返すことがなく、ブロックサイズおよび形を容易に変更することができないので、柔軟性に欠ける。妥協手段としては、例えば、レンダリングされるＭＰＵスラブの内外のそれらのブロックについて、システムメモリにおいて線形順序で前記ブロックのサブセットのみを複写することを伴うものとしてもよい。
【００６０】
本実施形態では、前記ボリュームデータは、規則的なグリッド上に配置された３２×３２×３２ボクセルの立方体に分割されるとみなされている。ＭＰＲ処理は、補間法を使用していることに留意すべきであり、各軸について隣接するブロックに複写するために、各ブロックの片側の境界でのボクセルに役立っている。すなわち、前記ブロックは１つのボクセルについて重なり合う。これは、前記ボリュームデータによって埋められたボリューム空間の全体について補間法を考慮する。したがって、３２×３２×３２ブロックは、３１×３１×３１の有用ボクセルを有しているとみなされるとともに、１７×１７×３４ブロックが必要とされる。５１２×５１２×１０２４のボクセル・ボリューム・データセットで適切に埋められるとみなされる。外側「断片的」ブロックは、３２×３２×３２ボクセルが埋め込まれたもの、または、他の「全体」ブロックより小さくなることができるもの、のいずれかとすることができる。
【００６１】
一旦、ＭＰＲスラブ＃１が定義されると、コンピュータシステム２２の次の作業は、ＭＰＲスラブ＃１に対応する画像＃１をレンダリングするとともに表示することである。
【００６２】
ステップＳ２では、前記ＣＰＵは、ＭＰＲスラブ＃１と交差するボリュームデータ４８を有する概念的ブロック７２を算出する。これらのブロックのいくつかが、すなわち、それらのボリュームデータ４８の見える外側表面が図５で示されており、その図で陰影を付けることで特定されている。これらは、画像＃１をレンダリングするのに必要なデータを有しているとともに、レンダリングを実行するためにグラフィックカード４４を通過させるのに必要とされるデータを有している、ブロックである。
【００６３】
ステップＳ３では、ＣＰＵは、ＭＰＲスラブ＃１について必要なブロックをシステムメモリから取り出す。前記ＣＰＵは、システムメモリ（ボリュームデータ全体が線形順序で配置されている）からボクセル値に対応して以下の検索をして線形順序の各ブロックを有するボクセル値を組み立てるとともに、ＧＰＵインターフェース６０およびＧＰＵメモリＩ／Ｏコントローラ６２を介してブロックデータを前記ＧＰＵメモリにアップロードする。前記ＣＰＵは、前記ＧＰＵキャッシュに転送するために線形順序の３次元テクスチャとして各ブロックを好適に組み立てる。あるいはまた、各ブロックは、例えば「テクスチャ地図帳(atlas)」技術を使用して、より大きい３次元テクスチャのセクションとして組み立てられるものとしてもよい。他の実施形態として、前記ＣＰＵは、前記ブロックデータを「かき混ぜる（swizzle）」、またはレンダリングする前に、８進ツリー配列に前記ブロックデータを再配列する、ものとしてもよい（また、これは次のアップロードをＧＰＵによって実行することができる）。かき混ぜ動作の効果をあてにしてブロックデータを「かき混ぜる」ことは実用的となり得るが実用的ではない場合もある。システムメモリの作用が局所的および粒状的であるために、連続バイトの少なくとも最小数のグループ内の線形順序のボリュームデータから検索されたブロックデータが適切なときに、より効率的となる。通常、システム構造によって、３２から１２８バイトにグループ分けされる。
【００６４】
ステップＳ４では、前記ＧＰＵは、ＧＰＵキャッシュに転送された各ブロックを通じて循環するとともに、出力画像を表すために各ブロックの関連ボクセルを処理する（すなわち、それらはＭＰＲスラブ＃１の中におちる）。これは、従来のボリューム・レンダリング・アルゴリズムを使用することができるとともに、処理エンジン６４の回路によって実行することができる。画像は、例えば、最大強度映像を形成するによって表すこととしてもよい。このように、画像＃１は、タイルのコラージュとして表される。各タイルは、与えられたブロックのそれらのボクセルからレンダリングされた画像部分を表す。前記ＧＰＵは、第１ブロックが前記ＣＰＵからＧＰＵメモリに転送された直後に、個々の画像部分をレンダリングするために、ブロックの処理を開始するものとしてもよく（すなわち、ステップＳ３およびステップＳ４はある程度並列に実行するものとしてもよい）、またはそれに代わって、前記ＧＰＵは、ＭＰＵスラブ＃１に関連する全てのブロックがＧＰＵメモリに転送されるまで待つこととしてもよい。前者は、一般に、より高速な構成となる。画像＃１の対応する部分をレンダリングするためのＧＰＵによる単一ブロックの処理に続いて、前記ブロックデータは、ＧＰＵメモリに上書きされないが、同じブロックが後のレンダリングで必要とされる場合に備えて維持される。これは、一旦、画像があるＭＰＲスラブに対応してレンダリングされると、しばしばそのケースが映画中となり、レンダリングされる次の画像が前のものに隣接するおよび／またはある程度重なるＭＰＲスラブに一致するので、特に有益である。これは、多くの場合多くの同じブロックが第１画像を表すのに使用されたのと同様に第２画像を表すのに要求されることを意味する。したがって、ＧＰＵメモリ内でブロックを維持すると、システムメモリからのロードの重複が減少するとともに、後のレンダリング画像のためのＧＰＵへの転送が減少する。
【００６５】
ＧＰＵメモリの一部がこのようにボリュームデータのブロックの記憶に割り当てられることは、ここではＧＰＵブロックキャッシュと呼ばれる。前記ＧＰＵメモリは、ハードウェア・タグ・ストアと連想アドレス指定および置換のためのハードウェア手段とを欠いているので、ハードウェアキャッシュとしては構成されていないことが理解されるだろう。そのかわり、本発明は、通常ＧＰＵメモリで実行されるソフトウェア抽象概念としてのＧＰＵブロックキャッシュを維持する。
【００６６】
ＧＰＵブロックキャッシュとして割り当てられたＧＰＵメモリの量がいっぱいになるにつれて、ＣＰＵからアップロードされた新しいブロックがあるときブロックを上書きすることが必要になる。一般的なキャッシュ置換プロトコルは、キャッシュの中で最も長い間使用されていないものを置き換えることである。これはＵＲＬプロトコルとして知られている。この場合、これは、最も長い期間ＧＰＵブロックキャッシュの中で未使用のまま残っていたブロックが上書きされること、を意味する。一般的に、このプロトコルは、最新のレンダリングで使用されなかったキャッシュブロックが、また次も、またはその後のレンダリングでも使用されないことと、得てしてなるので、効率的に動作する。これは、前記ＭＰＲスラブが映画中にボリュームデータを通じて通常着々と進行する後続画像に使用されるからである。したがって、一旦、ブロックが使用されて、前記ボリュームデータの一部とはいえ前記ＭＰＲスラブが進行するが、映画が方向を変えなければ前記ブロックは再び使用されることはない。
【００６７】
しかしながら、ある特定の状況では、前記ＬＲＵプロトコルは非常に効率が悪くなるとともに性能にとって重大な欠点が生じる。例えば、ブロックのワーキングセット、すなわち、それぞれの個別画像を表すのに必要なブロックの数は、前記ＧＰＵブロックキャッシュに記憶することができるブロックの数を超えている場合、ＬＲＵプロトコルはスラッシングに導いてしまうことがある。一例として、前記ＧＰＵブロックキャッシュがＮブロック記憶できるとともに、前記ワーキングセットはＮ＋１ブロックであると仮定する。初期画像が表されるとき、第１Ｎブロック（ブロック１…Ｎ）は、前記ブロックキャッシュにロードされて、出力画像の対応Ｎ部分が表され、次に、ブロックＮ＋１がブロック１（これが最も長い間使用されていないブロックだからである）に代わって前記ＧＰＵブロックキャッシュの中にロードされて、画像の対応最終部分が表される。次の画像を表すために、同一のＮ＋１ワーキングブロックが要求される事態が頻繁に起こる。したがって、ＧＰＵ要求ブロック１が前記ブロックキャッシュの中に再ロードされる。上書きブロック２（最も長い間使用されていないブロック）によってこれを行うとともに、次の画像の第１部分をレンダリングする。しかしながら、ＧＰＵは、今すぐにブロック２を必要とする。その結果、ブロック２がロードされるとともに、前記ブロックキャッシュの中にブロック３を上書きする。次に、ブロック３がロードされるとともに、ブロック４を上書きする、ことなどが行われる。したがって、ワーキングセットがＧＰＵブロックサイズを超えている場合、前記ＬＲＵプロトコルは、映画のそれぞれの後続画像について全てのブロックを再ロードすることを引き起こす。すなわちスラッシングが起きる。これを回避することができる一つの方法は、前記ＧＰＵブロックキャッシュの中で最も最近使用されたものに上書きする手法である。これはＭＲＵプロトコルとして知られている。Ｎ＋１ワーキングブロックを持っている上記実施形態では、ＭＲＵプロトコルは後続画像毎にロードされる単一ブロックのみを必要とする。例えば、画像＃１がレンダリングされたとき、前記ＧＰＵブロックキャッシュは、ブロック１からＮ−１およびＮ＋１を保持している（最も最近使用されたブロックであるブロックＮがブロックＮ＋１によって上書きされたので）。画像＃２がレンダリングされたとき、前記ＧＰＵブロックキャッシュは、現在、ブロック１からＮ−２とＮとＮ＋１を保持している（ブロックＮ−２がブロックＮ−１によって上書きされたので）、ことなどが行われる。
【００６８】
したがって、効率的キャッシュ置換プロトコルは、ブロックの前記ワーキングセットがＭＲＵプロトコルによってブロックキャッシュとして割り当てられた前記ＧＰＵ・ＲＡＭの中に収まるブロックの数よりも少ないときであって、前記ワーキングセットが前記ＧＰＵブロックキャッシュ割り当てを越えているとき、ＬＲＵプロトコルから適応スイッチングを許容することである。より一般的には、ＬＲＵプロトコルからＭＲＵプロトコルへの切り換えは、ブロックの前記ワーキングセットの記憶に必要とされたＧＰＲブロックキャッシュの量が閾値を超えているとき、生ずる場合がある。前記閾値は、例えば、総ＧＰＵブロックキャッシュサイズの５０パーセント、７５パーセントまたは１００パーセントである。さらに、ブロックのワーキングセットについてのＬＲＵプロトコルからＭＲＵプロトコルへの前記切り換えは、ある閾値で生じる可能性が増加する。そして、ブロックのワーキングセットについてのＭＲＵプロトコルからＬＲＵプロトコルへの切り換えは、他のより低い閾値で生じる可能性が減少する。これは、単一閾値が使用されるとともに、コンピュータシステムがこの閾値でまたは周辺でワーキングセットについて通常実行するとき、別の方法で生じる可能性があるキャッシュ置換プロトコルの頻繁な切り換えの防止に役立つことができる。
【００６９】
また、スラッシングを回避するための他の技術が使用できることが分かる。例えば、ブロックについての回文（palindromic）レンダリング処理は、交互画像において順方向および逆方向に交互に処理する。例えば、偶数画像は前記ＭＰＲスラブの下側の左隅から上側右隅に表されることとしてもよいが、奇数画像は上側の右から下側の左に表されることとしてもよい。ＬＲＵプロトコルであっても、この手法はスラッシングを回避する。
【００７０】
ステップＳ５では、画像＃１のレンダリングが完了するとともに、その画像が画像メモリに割り当てられたＧＰＵ・ＲＡＭの一部に記憶される。これは、同一画像が再び要求される場合、例えば、ユーザが現在の映画を止めるとともに、対象となる１つまたは一連の特定画像を見直すために後方に実行させたい場合、のために行われる。
【００７１】
ステップＳ６では、前記ＧＰＵは、ディスプレイ３４に表示させるために、ＧＰＵディスプレイＩ／Ｏコントローラを介して画像＃１を転送する。ＧＰＵがむしろＣＰＵを命令することで、画像＃１が完成する。
【００７２】
画像＃１のレンダリングにおいてＧＰＵによってステップＳ４からＳ６が実行されている間、前記ＣＰＵは並列にステップＴ４からＴ６を実行する。
【００７３】
前記ＣＰＵは、ステップＳ３において前記ＧＰＵブロックキャッシュにＭＰＲスラブ＃１の関連ブロックを転送した後に、ステップＴ４を実行する。ステップＴ４では、前記ＣＰＵが必要とされそうな未来ＭＰＲスラブを算出する。この場合、すなわち、前記映画が既知の方向および既知にステップサイズで前記ボリュームデータを通じて動く絶え間なく進行する画像面に一致し、次に要求されるＭＰＲスラブ（ＭＰＲスラブ＃２）が容易に予測できる。ローテーション映画または映画結合ローテーションについて、およびボリュームデータを通じた転送について、次に要求されるＭＰＲスラブを予測することは同様に容易である。他の事例において、例えば、映画が対話制御で前方におよび後方にスクロールされる場合、視聴者による事前活動に基づいて要求される次に最も起こりそうなＭＰＲスラブとして、統計的に予測して要求されるものとしてもよく、また、要求され得る現在のＭＰＲスラブの両側のＭＰＲスラブとみなしてもよい。次に、ＣＰＵは、ＭＰＲスラブ＃２と交差したボリュームデータを有するブロックを算出する。
【００７４】
ステップＴ５では、前記ＣＰＵは、既にＧＰＵブロックキャッシュの中にあるＭＰＲスラブ＃２（現在のところ、将来必要とされそうなものとしてのみ考慮されている未来ブロックと呼ばれる）に関連するブロックを決定する。多くの場合、未来ブロックの大部分が既にＧＰＵブロックキャッシュの中にある。ＣＰＵは、システムメモリから、既にＧＰＵブロックキャッシュの中にはないそれらの未来ブロック（予測未来ブロックと呼ばれる）に関連するボクセルデータを検索するとともに、ステップＳ３に関して上記で説明されたものと同一の方法でブロックを組み立てる。
【００７５】
ステップＴ６では、前記ＣＰＵは、前記ＣＰＵブロックキャッシュの中に前記予測未来ブロックの列を作る。一つの予測未来ブロックが図３のＣＰＵキャッシュ５０の中に概略的に示されている。そして、前記予測未来ブロックは、ＣＰＵ上で動作するスケジューラスレッドの制御の下でＣＰＵブロックキャッシュに転送される。前記スケジューラスレッドは、処理のためにＧＰＵによってそれらが要求されるよりも先にＣＰＵによって列を作られた予測未来ブロックを受信するために、ＧＰＵブロックキャッシュの中にスペースがあることを判断するように構成されている。そこにスペースがある場合、前記予測未来ブロックが転送される。しかしながら、前記スケジューラスレッドが予測未来ブロックのアップロードを適切に管理することは、重要である。前記予測未来ブロックがＣＰＵによって列にならばされた（キュー）後に早急に前記ＧＰＵブロックキャッシュに転送された場合、予測未来ブロックがコンピュータシステムバスを詰まらせるとともに、命令コマンドおよび幾何学的プリミティブのような他の転送を遅らせる危険がある。これは、たいていのケースで、コンピュータシステムがＣＰＵとＧＰＵとの間の箇所で保証するサービスの質（ＱｏＳ）を提供することができない点で、特に重要である。したがって、前記スケジューラスレッドは、それらが必要とされそうな時までＧＰＵブロックキャッシュの中にあるものを、できるだけ確実に一貫させることが可能な最も均等な方法でＧＰＵブロックキャッシュに予測未来ブロックを転送するように構成されなければならない。スケジューラスレッドは、通常、定期的に再評価して、列に並ばされた予測未来ブロックを転送するスケジュールを調整するとともに、ＧＰＵブロックキャッシュに予測未来ブロックを転送することを開始する。次に、スケジューラスレッドは、予測未来ブロックのトラフィックのバスの飽和を回避するために、例えば数ミリ秒、しばらくスリープ状態となってもよい。
【００７６】
一例として、前記ＣＰＵは、現在の映画活動が以下の転送を要求することを、ステップＴ４およびＴ５で決定することとしてもよい。
１００ｍｓで１０の予測未来ブロック。
さらに２００ｍｓで２０の予測未来ブロック。
さらに３００ｍｓで４０の予測未来ブロック。
さらに４００ｍｓで１５の予測未来ブロック。
更には、前記ＧＰＵブロックキャッシュにブロックを転送することに２ｍｓを要するものとしてもよいとともに、ブロック転送が予め望ましくは１００ｍｓ開始される規則が採用されてもよい。このような場合、前記スケジューラスレッドは、最初の１０の予測未来ブロックの転送を即座（すなわち、ｔ＝０ｍｓで）に命令する。これは２０ｍｓかかる。そして、予測未来ブロックの転送は、８０ｍｓで停止される。ｔ＝１００ｍｓでは、次の２０の予測未来ブロックがＧＰＵブロックキャッシュに転送される。これは４０ｍｓかかる。ｔ＝２００ｍｓでは、次の４０の予測未来ブロックがＧＰＵブロックキャッシュに転送される、ことなどが行われる。５０以上の予測未来ブロックが特定期限に間に合わせるために一度でアップロードに必要とされる場合、スケジューラスレッドは、事前転送活動に関係した停止時間を利用することで、さらに早い転送を起こさせる構成されることとしてもよい。
【００７７】
ステップＳ７では、ステップＳ６で前記ＧＰＵによって命令されて、画像＃１が完成し、映画において次の画像（すなわち画像＃２）のレンダリングを起こさせる。これは、画像＃２に対応する前記ＭＰＲスラブ（すなわちＭＰＵスラブ＃２）を第１特定することで行われる。前記映画が前記ボリュームデータを通じた安定した進行を表す場合では、ＭＰＲスラブ＃２はステップＴ４でＣＰＵによって予測されるものになる。しかしながら、映画がユーザの入力に応答する場合では、実際のＭＰＲスラブ＃２は、ステップＴ４で予測される最も起こりそうなＭＰＲスラブに対応しないものとしてもよい。これは、例えば、ユーザが映画を停止するとともに、逆転させる命令、または少しの間隔スキップさせる命令の場合のものとしてもよい。
【００７８】
ステップＳ８では、前記ＣＰＵはブロックがＭＰＲスラブ＃２によって交差されるところを特定する。これは、ＭＰＲスラブ＃１についてステップＳ２に関連して上記で説明されたものと同一の方法で行われる。
【００７９】
ステップＳ９では、前記ＣＰＵは画像＃２をレンダリングするために必要とされたブロックが前記ＧＰＵブロックキャッシュの中に既にない、かについて判断する。理想的には、以前に実行されたステップＴ４からＴ６に関連するブロックの予測アップロードの結果、必要なブロックの全てが既にＧＰＵブロックキャッシュの中にある。このケースでない場合、ＣＰＵは、既にＧＰＵブロックキャッシュの中にない任意の必要ブロックに関連するボクセルデータをシステムメモリから検索するとともに、ステップＳ３に関連して上記に説明されたものと同一の方法で、それらをＧＰＵブロックキャッシュに転送する。
【００８０】
ステップＳ１０からＳ１２では、前記ＧＰＵは、画像＃１に関してステップＳ４からＳ６について上記で説明されたものと同一の方法で、画像＃２をレンダリングする。一方、ステップＳ１０における処理は、ステップＳ９の完了前にＧＰＵブロックキャッシュの中に既にあるＭＰＲスラブ＃２によって交差された任意ブロックについて始めることができる。ステップＴ６で実行される前記スケジューラスレッドがＭＰＲスラブ＃２によって交差されたブロックの多く（理想的には全て）を既にＧＰＵブロックキャッシュに転送しているので、第２画像は、レンダリング処理中の後続処理について、ＧＰＵブロックキャッシュへのデータ転送に関連する遅延が（理想的にはゼロに）低減されるにしたがって、高速に表されることができる。
【００８１】
ステップ１２において画像＃２が表示された後、前記ＧＰＵは、画像＃２を完成させるように、前記ＣＰＵに命令する。
【００８２】
画像＃２をレンダリングするＧＰＵによるステップＳ１０からＳ１２の実行中に、ＣＰＵはステップＴ１０からＴ１２を並列に実行する。これらのステップは、上記説明のステップＴ４からＴ６と同様であるので、それらの記載から理解される。ステップＴ４からＴ６において、ＣＰＵは予測未来ブロックを列に並ばせることを続けるとともに、スケジューラスレッドはそれらを利用可能なスペースがあるＧＰＵブロックキャッシュに転送することを続ける。
【００８３】
ステップＳ１３では、前記ＣＰＵは、ステップＳ１２で前記ＧＰＵによって命令された画像＃２を完成させることを実行し、前記映画における次に画像（すなわち画像＃３）のレンダリングを起こさせる。これは、画像＃２のためのステップＳ７について上記で説明されたものと同一の方法で行われる。
【００８４】
ステップＳ１４でみられるように、後続画像が、映画における各後続画像について、画像＃２についてのステップＳ８からＳ１３およびＴ１０からＴ１２について上記で説明された方法を繰り返すことで生成される。
【００８５】
上記実施形態では３２×３２×３２ボクセルブロックのグリッドを通常使用するが、他のブロックサイズおよび形が同様に使用できることが理解される。例えば、前記ブロックは、６４×６４×６４ボクセルを有することとしてもよく、または各軸に沿って同じ大きさを持つものとしなくてもよい。例えば、通常１６×１６×６４ボクセルブロックのグリッドが使用されることとしてもよい。使用するブロックの最も適切な特性サイズは、競合要素の数に依存する。これは、前記方法のいくつかの側面は大きいブロックのわずかな数から利益を得るが、他の側面は小さいブロックの多数から利益を得る、からである。その結果、使用に適切なブロックサイズは、任意の特定実行における異なる要素の影響を考慮して決定される。
【００８６】
主要要素は、前記ブロックがレンダリングされるＭＰＲスラブのボリュームの範囲でなければならない方法に関連する多くの小さいブロックを支持する。より小さいブロックのアレイは、ＭＰＲスラブのボリュームについてより詳細に配置することができる。多くの小さいブロックを使用するこの手段は、任意に与えられたＭＰＲスラブをレンダリングするためにＧＰＵブロックキャッシュに転送される必要がある重複データの量を最小にする。これは、ＭＰＲスラブ自身の中にはより僅かなボクセルしかないからであるが、それらがＭＰＲスラブの中にあるボクセルを有するブロックの中にあるにもかかわらず、ＧＰＵブロックキャッシュにアップロードしなければならない。この点で個々のボクセルに対応するブロックを持っていることは理想的である。
【００８７】
しかしながら、これは少数の大きいブロックを支持するそれらの要素に対してバランスを取らなければならない。例えば、与えられた画像を表すために処理しなければならない幾何学的プリミティブの数がブロックの数とともに上昇するので、少数のブロックが選択される（各ブロックが別々に表されるので）。また、動作の切り取りを実行するための計算コストは、処理される個々のブロックの数とともに上昇する。また、多数のブロックが処理中のＧＰＵによって実行されるために多くの状態の変更を必要とする。また、近接ブロックについてシステムメモリからデータを検索することがＣＰＵにとってより効率的であるので、大きいブロックが好ましい（例えば、前記ブロックのｘ−次元が増加する）。また、一般に、コンピュータシステムのバスを通じて大きいブロックのデータを転送することがより効率的である。また、大きいブロックが採用されたとき、ボリューム空間全体にわたっての挿入を容認するために、隣接ブロックの境界でボクセルの複写の必要に関連して比較的少ない消耗となる。
【００８８】
したがって、ブロックの適切なサイズおよび形状を決定するとき、これらの競合要素間で妥協する必要がある。前記決定は、ＣＰＵおよびシステム構成と、ＧＰＵ構成と、ボリュームデータの中のボクセルの総数と、ＭＰＲ面の方向および厚みなど、のような要素に依存する。上記で説明された実施形態では、３２または６４ボクセルのオーダが特有ブロックの寸法として適切であることが見出された。さらに、適切なブロック構成（サイズ、形状、グリッドパターンなど）は、既知の実施について事前に定義する必要はないが、所望映画パラメータ（スラブの厚さ、方向、ステップサイズなど）に従って対話形式で選択されることとしてもよい。これは、異なるブロック構成の事前定義セットに基づくものとしてもよく、または、任意の所望映画活動について具体的に発生したブロック構成に基づくものとしてもよい。
【００８９】
また、前記ブロックは、規則的グリッドに配置される必要がなく、および／またはそれら自身の形について立方体である必要がないことが理解される。そのような非規則的配置は、いくつかの映画活動に顕著となるブロック転送要求の急上昇を抑える助けとなることができる。
【００９０】
一般的な映画活動は、第３軸に沿ってスキャンするために、ボリュームデータの２つの軸に並列に一連の画像を生成することを伴う。例えば、図５を参照して、ｘｙ−面に平行な一連のＭＰＲ画像は、ｚ−軸に沿った位置を一連に拡大することに必要とされるものとしてもよい。
【００９１】
図６ａは、規則グリッド上に概念的に配置されたブロックの状態で、ｘｚ−面に撮られたこの映画活動の実施形態の断面図を概略的に示している。この実施形態では、ブロックは、ｘ−軸に沿って１６ボクセルの幅となっているとともに、ｚ−軸に沿って３２ボクセルの幅となっている。事実上、映画活動は、矢印によって示された方向に動くＭＰＲスラブの一連のレンダリングに対応している。この実施形態では、スラブは、８ボクセルの厚さであるとともに、映画フレーム毎に６ボクセルの速度で進行するとともに、図の左手側で開始する。説明を助けるために、ボクセルの列（columns）は、一番左の列に対して１から始まる数によって示される。画像は、図４ａおよび４ｂを参照して上記で説明したものと同様の手法で表される。レンダリングされる第１ＭＰＲスラブは、ボクセル列１からボクセル列８の範囲である。これは、図６ａに示す３つの最も左のブロックがＧＰＵブロックキャッシュに転送される必要がある。レンダリングされる第２ＭＰＲスラブは、ボクセル列７からボクセル列１５に拡張する。これは、図６ａに示された３つも最も左のブロックを再び必要とする。これらは、ＧＰＵブロックキャッシュの中に既にあるので、第２ＭＰＲスラブは、前記キャッシュにいかなるブロックも転送する必要なくレンダリングされることができる。第３ＭＰＲスラブは、ボクセル列１３からボクセル列２１に拡張し、また、ブロックが前記キャッシュの中にさらにロードされる必要はない。しかしながら、第５ＭＰＲスラブに達したとき、ボクセル列２５から３３が必要となる。ボクセル列２５から３２はＧＰＵブロックキャッシュの中に存在しているが、同時に、図６ａに示す第２の最も左のブロックの全てをロードする必要が今ある。これは前記システムバスに転送活動の急増を引き起こす。したがって、前記データ転送の要求は非常に不均等であるとともに、これはギクシャクした動作をまねくことがある。
【００９２】
図６ｂは、図６ａから理解されるものと同様である。しかしながら、図６ｂでは、ブロックが不規則（この場合、交互に配置されている）グリッド上に配置されている。ブロックの交互に重なる層が１６ボクセルだけｚ−軸に沿って位置ずれしている。この簡素な１８０度ジグザグ配置において、図６ｂに示すブロックの規則的グリッドに関連してＧＰＵブロックキャッシュに同時にアップロードする必要があるブロック数の大きな急変は、半分の大きさの２つの急変に置き換えられる。更なる転送活動の平滑化は、例えば図６ｃに概略的に示すような、ブロック層の間のより小さいジグザグ配置によって達成できる。また、一定のジグザグ配置となっていない不規則グリッドは、ボリュームデータを通じて進行するＭＰＲスラブが同時に多数の新たなブロックを定期的に入力することは行わない、ように配置されている場合、バス転送活動を円滑にすることに使用することができる。
【００９３】
上記で説明さえた方法は、容易に利用可能な特殊なものでないコンピュータ・ハードウェアを使用して、３次元ボリュームデータから効率的で且つ高速なＭＰＲ画像のレンダリングを提供することができる。本発明において、どれくらいの長さの画像がレンダリングのために取られるか正確に予測することができないので、さらに、いくつかの画像がレンダリングのために過度の長さで取られるので、過去において、それらが利用可能になってからすぐに表示されるように画像を必要とする。すなわち、システムメモリから取られてＧＰＵブロックキャッシュに転送される多数のブロックを必要とする。そして、本発明では、映画画像はボリュームデータを通じた進行の一定速度に対応する規則的な事前設定速度で表示されることができる。また、上記で説明した技術は、従来方法で実際に実行することが一般的に可能でない特定の映画活動について可能性を広げる速度で、画像データの映画をリアルタイムで許容することができる。
【００９４】
例えば、従来の映画活動は、画像の生成に使用されたＭＰＲスラブの厚さに匹敵する映画フレーム間の以前のステップサイズに基づいている。これは、妥当な時間でボリュームデータの完全なセットを見るためにユーザが許容する妥当な速度で進行する映画を許容するために必要であることが考慮されている。例えば最大強度映像のようなスラブＭＰＲアルゴリズムでは、たとえ、その大部分が表示されない場合でも、全てのボクセルが映画の生成において展開に使用され、大きいステップサイズは、連続映画フレームを生成するのに使用されたＭＰＲスラブ間がいくらか重なるように限定されるので、データにおいて、何か重要なものを逃がす可能性につながることが考慮されていない。しかしながら、それにもかかわらず、大きいステップサイズ（例えばＭＰＲスラブの厚さの２０パーセントだけ重なりを持っている）を使用した前記手法は、一連の別々の画像に見える出現を導くとともに、ボリュームデータを通じた滑らかな映画のようなスキャンではない。しかしながら、本発明によって提供されるより速いレンダリングでは、以前に可能であったものよりも、映画において、連続画像（すなわち、フレーム）を生成するために使用されたＭＰＲスラブ間でかなり高い重なりを持ちながら、妥当なスピードでリアルタイム映画を提供することが現在可能である。
【００９５】
かなり重なっているＭＰＲスラブがここで説明された蓄積画像キャッシングを使用して連続画像を表すために使用されている場合でも、映画速度はさらに高めることができる。
【００９６】
ＧＰＵ ＲＡＭの一部は、蓄積画像キャッシュ記憶装置に割り当てられている。前記ＧＰＵ ＲＡＭの蓄積画像キャッシュは、蓄積画像の階層セット（すなわちツリー）を記憶する。最も重要なこととして、無制限なＧＰＵ ＲＡＭが利用可能であった場合、階層における蓄積画像の最低レベル（レベル０）は、所望映画面に平行なボリュームデータを通じた個々の厚さゼロのＭＰＲ面に対応する。次のレベル（レベル１）画像は、前記レベル０画像の例えば４つの数の累積に対応する。レベル１画像は、映画において所望出力画像を生成するために使用される累算演算子を使用してレベル０画像を蓄積することによって生成される。例えば、これは最小、最大、または平均映像（凹み（collapse））アルゴリズムで行ってもよい。レベル２画像は、例えば、再び４つの、前記レベル１蓄積画像の数の累積に対応する。その結果、レベル２画像は、１６のレベル０画像の累積に対応する。この階層は、レンダリングに必要とされるスラブの最高予測厚さに一致した最高レベルまで続くものとしてもよい。実際には、ＧＰＵ蓄積画像キャッシュがレベル０画像の全てを記憶するのに十分となることは起こりそうもない。したがって、レベル１蓄積画像およびそれよりも高いものがＧＰＵ蓄積画像キャッシュに記憶されることとしてもよい。
【００９７】
ここでは、１６ボクセルの厚さを持つＭＰＲスラブが最大強度映像累積演算子を使用する映画の第１画像についてレンダリングされると仮定する。スラブをレンダリングする一つの方法は、スラブに垂直なボリュームデータ通じて各画像ピクセルから短い光線を探索するとともに、前記光線の長さに沿ったサンプルを蓄積することである。機能上同等な方法は、これらの光線に沿った各サンプル位置で一連の厚さゼロのＭＰＲ面（すなわち、上記説明のレベル０画像に対応する画像）を生成するとともに、一緒にこれらの厚さゼロＭＰＲ面を蓄積することである。この処理の間、前記ＧＰＵがレベル１およびレベル２画像をキャッシュする場合、それらは、現在スラブにかなり重なった未来ＭＰＲスラブのレンダリングに再使用されるものとしてもよい。例えば、次のスラブが５０パーセントだけ第１スラブに重なる場合、４つのレベル１蓄積画像のうちの２つが再利用できるとともに、再レンダリングに必要とされない。映画が進行するとき、ＧＰＵ蓄積画像キャッシュは、レベル１およびレベル２蓄積画像についてますます使用されるようになる。４つのレベル２画像が生成されているとき、それらはレベル３画像を形成するために蓄積される、ことなどとしてもよい。
【００９８】
ますます多くの蓄積画像がキャッシュされるようになるにしたがって、ＧＰＵが蓄積画像のキャッシュによってカバーされた領域に至るＭＰＲスラブに対応する画像をレンダリングするために要求される、ようなことがより多くなる。この場合、所望画像が蓄積画像の階層セットの適切な重ね合わせ処理によって生成することができる。例えば、ＭＰＲスラブが１６個程度の厚さゼロのＭＰＲ面に対応する厚さを持っている場合であるとともに、レベル１以上についての蓄積画像（次の低レベルから４つの蓄積画像の累積までに対応する各レベル）が記憶されている場合、既にレンダリングされたレベル２画像にちょうど対応するＭＰＲスラブが１６分の１の確率であるとともに、それが単に蓄積されている４つのレベル１画像によってレンダリングされることは４分の１の確率である。４つのケースのうち残りの３つについて、画像は、単に３つのレベル１画像とともに４つのレベル０画像（レベル０画像がキャッシュの中に記憶されていない、この例の場合に、生成される必要がある）を蓄積することによって表される。
【００９９】
前記蓄積画像は、最終出力表示装置の解像度でキャッシュされることとしてもよい。しかしながら、ボリュームデータの解像度は一般に最終表示装置の解像度よりも低いので、記憶装置条件を抑えるために、より低い解像度で画像をキャッシュすることがより適切となる場合がある。キャッシュされた画像は、操作の簡素化のためにブランク詰め込み部分を有しているものとしてもよく、または、その代わりに、記憶装置条件を低減させるために適切に切り取られることとしてもよい。ボリュームデータにおけるいかなる埋め込み領域も、それらが蓄積画像を汚染しないことを確保するために慎重に扱われるべきである。これは、累算の間に無視されるレンダリング画像値の中に埋め込みピクセルを割り当てることで最大および最小映像累積を達成することができる。平均映像の場合では、２つの値が蓄積画像の中の各ピクセルについてキャッシュされることができ、１つの値が有効ピクセルの現在高を示し、他の値が有効ピクセルの数を示す。
【０１００】
ＧＰＵ蓄積画像キャッシュの中に全てのレベル０画像を記憶することは一般的に可能ではないが、ボリュームデータを通じて進行する映画が規則的であって予測可能である場合では、ＭＰＲスラブの立ち上がりおよび立下りエッジの近隣におけるレベル０画像の数を維持するために能率を改善することができる。これは、その後に起こるＭＰＲスラブが前ＭＰＲスラブから短い間隔だけ進んだとき、最も必要となりそうなレベル０画像であるからである。
【０１０１】
ＧＰＵ蓄積画像キャッシュについてのキャッシュ置換プロトコルは、ＧＰＵブロックキャッシュについて上記で説明されたものと同様のもとすることができる。例えば、ＬＲＵプロトコルは、蓄積画像のワーキングセットが割り当てＧＰＵ ＲＡＭよりも小さいときに使用されることができるが、ＭＲＵプロトコルは、蓄積画像のワーキングセットが割り当てＧＰＵ ＲＡＭに匹敵するまたは超えるときに起動される。
【０１０２】
キャッシュ置換を管理する他の手法は、時間ベースでというよりむしろ、ボリュームデータを通じたキャッシュ画像の空間分布に基づくものとすることができる。例えば、現在レンダリングされたＭＰＲスラブの位置から最も遠い低レベル蓄積画像が最初に上書きされることとしてもよい。これは、Ｎのレベル０画像、Ｎ／Ｋのレベル１画像（ここで、Ｋはレベルのそれぞれの増加とともに累積された画像の数である。すなわち、上記実施形態では４）など、について記憶装置を割り当てるように蓄積画像キャッシュを構成する一つの実施形態において達成することができる。次に、レベル０画像は、次に式に従うＭＰＲ面位置の直接図化によって索引を付けられることができる。
cache_index=plane_index MOD N
この手法の形態は、スラブの厚さがＮ画像を超えない限り、キャッシュの中での蓄積画像の使用時間を監視する必要性を取り除くものであって、ロバストプロトコルである。
【０１０３】
蓄積画像キャッシュと組み合わせて図４ａおよび図４ｂに関連して説明されたボリュームレンダリング方法を使用すると、典型的なパーソナルコンピュータを使用して最大６０ｆｐｓの映画速度で８０パーセント（例えば、１ｍｍステップで進む厚さ５ｍｍのスラブ）の重なりを持つ連続スラブＭＰＲ画像で典型的な医療画像ボリュームデータセットのリアルタイム映画を提供することが可能である。
【０１０４】
本発明を実施する方法は、病院環境の中で頻繁に使用される。この場合、前記方法は、自立型ソフトウェアアプリケーションの中に、または画像保管通信システム（ＰＡＣＳ）で有効に統合されることとしてもよい。ＰＡＣＳは、単一中央アーカイブに中に組織化されたデジタル形式で異なるタイプの診断的画像を表すボリュームデータを記憶することができる病院ベースのコンピュータネットワークである。例えば、画像は、医用におけるデジタル画像と通信（ＤＩＣＯＭ）形式で記憶されることとしてもよい。各画像は、また、前記アーカイブに記憶された患者の名前および生年月日のような患者情報に関連している。前記アーカイブは、病院サイト全体のユーザがアクセスできるとともに必要に応じて患者データを処理することができるように、多くのワークステーションに提供されたコンピュータネットワークに接続されている。さらに、サイトから遠く離れたユーザがインターネット上で前記アーカイブにアクセス可能とされることとしてもよい。
【０１０５】
したがって、本発明の状況では、複数の画像ボリュームデータセットがＰＡＣＳアーカイブに記憶されることができるとともに、本発明の実施形態に係るボリュームデータセットのうちの選択された一つの２次元出力画像を生成するコンピュータで実行される方法が、コンピュータネットワークを介して前記アーカイブに接続されたワークステーションに提供されることができる。その結果、放射線研究者、コンサルタント、または研究者のようなユーザは、ワークステーションからいかなるボリュームデータセットにもアクセスすることができるとともに、本発明の実施形態の方法を使用して画像の生成および表示をすることができる。
【０１０６】
図７は、本発明の実施形態に関連して使用することができる例示的コンピュータネットワークを示している。ネットワーク1５０は、病院１５２内のローカルエリアネットワークを有している。病院１５２は、関連規則装置１５６を持つ病院コンピュータサーバ１５６に、前記ローカルエリアネットワークを介して、それぞれアクセスすることができる多数のワークステーション１５４を備えている。ＰＡＣＳアーカイブは、アーカイブ内のデータがいずれのワークステーション１５４からもアクセスできるように、記憶装置１５８に記憶されている。ワークステーション１５４の一つ以上は、グラフィックカードにアクセスするとともに、上記で説明したように画像を生成するコンピュータ実行方法のためのソフトウェアを持っている。前記ソフトウェアは、各ワークステーション１５４でローカルに記憶されることとしてもよく、または、必要なときに、ワークステーション１５４にネットワーク１５０を介してダウンロードして遠隔的に記憶することとしてもよい。他の実施形態としては、本発明を実施する方法が端末として動作するワークステーション１５４とともにコンピュータサーバ上で実行されることとしてもよい。例えば、前記ワークステーションは、所望ボリュームデータセットおよび映画パラメータを定義するユーザ入力を受信するように構成されていることとしてもよく、ボリュームレンダリング自体が前記システム内の他の場所で実行されている間結果として生じる画像を表示するように構成されていることとしてもよい。また、多数の医療画像処理装置１６０，１６２，１６４，１６６が病院コンピュータサーバ１５６に接続されている。装置１６０，１６２，１６４，１６６に集められたボリュームデータは、記憶装置１５６上のＰＡＣＳアーカイブの中に直接記憶することができる。したがって、医学的緊急事態が発生したときに、迅速な診断が得られるように、患者画像の映画は、対応ボリュームデータが記録された直後に生成して見ることができる。前記ローカルエリアネットワークは、ＰＡＣＳアーカイブにリモートアクセスさせる病院インターネットサーバ１７０によってインターネット１６８に接続されている。これは、例えば、患者が移動した場合、または引き受けられた外部研究を容認するために、データのリモートアクセスに役立つとともに、病院間のデータ転送に役立つ。
【０１０７】
説明された実施形態では、データ記憶媒体またはメモリに記憶されたコンピュータプログラムコードを使用するコンピュータによる実行が、前記コンピュータシステムのＣＰＵおよびＧＰＵの動作を制御することに使用されることができる。前記コンピュータプログラムは、例えば、半導体メモリ、磁気ディスク、光学ディスクまたはＭＯディスク、またはテープベース媒体のような記憶媒体など、適当な搬送媒体で提供することができる。あるいはまた、前記コンピュータプログラムは、例えば、電話、ラジオ、光チャネルのような搬送媒体など、伝送媒体で提供することができる。
【図面の簡単な説明】
【０１０８】
【図１】ボリュームデータを生成する一般的な磁気共鳴断層撮影装置を示している。
【図２】本発明の一実施形態に係る二次元画像を生成するためのボリュウームデータを処理する汎用計算機システムを概略的に示している。
【図３】図２のコンピュータシステムのいくつかの特徴をさらに詳細に図示している。
【図４ａ】本発明の実施形態に従って図２および図３コンピュータシステムを使用して二次元画像を生成するためのボリュームデータの処理方法を概略的に表すフローチャートを示している。
【図４ｂ】本発明の実施形態に従って図２および図３コンピュータシステムを使用して二次元画像を生成するためのボリュームデータの処理方法を概略的に表すフローチャートを示している。
【図５】ボリュームデータによって表された空間領域を図示している。
【図６ａ】本発明の実施形態として使用されることができるブロック・グリッド・パターンの実施形態の断面図を概略的に示している。
【図６ｂ】本発明の実施形態として使用されることができるブロック・グリッド・パターンの実施形態の断面図を概略的に示している。
【図６ｃ】本発明の実施形態として使用されることができるブロック・グリッド・パターンの実施形態の断面図を概略的に示している。
【図７】本発明の実施形態に関連して使用することができる例示的コンピュータネットワークを示している。
【符号の説明】
【０１０９】
２４  中央処理装置（ＣＰＵ）
３４  ディスプレイ
３６  ユーザ入出力（Ｉ／０）回路
３８  キーボード
４０  マウス
４２ａ  バス接続
４２ｂ  バス接続
４２ｃ  バス接続
４２ｄ  バス接続
４４  グラフィックカード
４６  システムメモリ
５０  ＣＰＵキャッシュ
５２  スケジューラスレッド
５４  ＧＰＵ
５６  ＧＰＵメモリ
６０  加速グラフィック処理インターフェース
６２  ＧＰＵキャッシュＩ／Ｏコントローラ
６４  処理エンジン
６６  ディスプレイＩ／Ｏコントローラ
【図１】
2008522272.tif 000003
【図２】
2008522272.tif 000004
【図３】
2008522272.tif 000005
【図４ａ】
2008522272.tif 000006
【図４ｂ】
2008522272.tif 000007
【図５】
2008522272.tif 000008
【図６】
2008522272.tif 000009
【図７】
2008522272.tif 000010
【国際調査報告】
2008522272.tif 000011
2008522272.tif 000012