(57)【要約】【課題】ボクセルデータ分割による分散処理で得られた分散レンダリング処理結果を一つに連結する際に、分割面近傍のレンダリング処理を補う計算処理が伴わずに済み、高コストパフォーマンスを満たす単一計算機では扱うことが難しい大容量ボクセルデータでも高速にボリュームレンダリング処理することができるボリュームレンダリング処理方法、ボリュームレンダリング処理システム、計算機及びプログラムを提供する。【解決手段】ストレージサーバーは、分散処理でボリュームレンダリング処理を行う複数のノードにボクセルデータを分割して割り当てる。このとき、ボクセルデータを、分割面で一部データが重複するように分割する。各ノードは、分割されたボクセルデータに対する分散レンダリング処理を行い、分割面近傍のレンダリング処理の補間計算については重複した部分のデータを用いて行う。【選択図】図１２
2007244887.tif 000002
【特許請求の範囲】
【請求項１】
複数のノードによってコンピュータネットワークが構築され、三次元以上のボクセルデータに施すべきボリュームレンダリング処理を少なくとも二のノードが分散処理で実行するボリュームレンダリング処理システムにおいて、
少なくとも一のノードに設けられ、各ノードの計算余力及びメモリ空き状況に係る計算資源使用状況情報を基に分散処理可能な余力のある少なくとも二のノードを割り当てるノード割当手段と、
少なくとも一のノードに設けられ、与えられたボクセルデータを、各割り当てノードの計算資源使用状況情報に応じた分割割合で、かつ分割面に関わるボクセルデータを重複させるように複数の分割ボクセルデータに分割するデータ分割割当部と、
前記分割ボクセルデータを動的に前記各割り当てノードに割り当てる負荷割当手段と、
前記割り当てノードとなる少なくとも二のノードに設けられ、割り当てられた分割ボクセルデータに対して分散レンダリング処理を行うとともに、少なくとも分割面近傍における分散レンダリング処理の補間計算を前記データの重複部分を用いて行う演算手段と、
少なくとも一のノードに設けられ、前記各割り当てノードにおける分散レンダリング処理結果を取得して一つに整合させて連結する連結手段と、
少なくとも一のノードに設けられ、前記連結されたレンダリング処理結果に基づくボリュームレンダリング画像を表示手段に表示する表示制御手段と
を備えたことを特徴とするボリュームレンダリング処理システム。
【請求項２】
前記分割面に関わるボクセルデータを重複させるとは、前記分割面近傍における補間計算が可能な量を重複させることをいうことを特徴とする請求項１に記載のボリュームレンダリング処理システム。
【請求項３】
前記補間計算は、グラディエント計算又はボクセル補間値計算であることを特徴とする請求項２に記載のボリュームレンダリング処理システム。
【請求項４】
前記分割ボクセルデータに対する計算負荷を、前記分割ボクセルデータの割り当て先の各ノードの計算資源使用状況情報に応じた分割割合で分割する計算分割割当部を更に備え、
前記負荷割当手段は、前記計算分割割当部が分割した計算負荷を前記割り当て先の各ノードに割り当てることを特徴とする請求項１〜３のいずれか一項に記載のボリュームレンダリング処理システム。
【請求項５】
請求項１〜３のいずれか一項に記載のボリュームレンダリング処理システムにおけるノードを構成する計算機であって、
前記ノード割当手段、前記データ分割割当部及び前記負荷割当手段を備えたことを特徴とする計算機。
【請求項６】
複数のノードによって構築されるコンピュータネットワークを用いて、少なくとも二のノードが、三次元以上のボクセルデータに施すべきボリュームレンダリング処理を分散処理で実行するボリュームレンダリング処理システムにおける前記ノードの機能をコンピュータに実現させるプログラムであって、
コンピュータを、
各ノードの計算余力とメモリ空き状況に係る計算資源使用状況情報に基づき分散処理を割り当て可能な余力のある少なくとも二のノードを割り当てるノード割当手段と、
与えられたボクセルデータを、前記各割り当てノードの計算資源使用状況情報に応じた分割割合で、かつ分割面に関わるボクセルデータを重複させるように複数の分割ボクセルデータに分割するデータ分割割当部と、
前記分割ボクセルデータを動的に前記各割り当てノードに割り当てる負荷割当手段と、
割り当てられた分割ボクセルデータに対して分散レンダリング処理を行うとともに、少なくとも分割面近傍における分散レンダリング処理の補間計算を前記データの重複部分を用いて行う演算手段と、
前記各割り当てノードにおける分散レンダリング処理結果を取得して一つに整合させて連結する連結手段と、
前記連結されたレンダリング処理結果に基づくボリュームレンダリング画像を表示手段に表示する表示制御手段、として機能させることを特徴とするプログラム。
【請求項７】
前記分割面に関わるボクセルデータを重複させるとは、前記分割面近傍における補間計算が可能な量を重複させることをいうことを特徴とする請求項６に記載のプログラム。
【請求項８】
前記補間計算は、グラディエント計算又はボクセル補間値計算であることを特徴とする請求項７に記載のプログラム。
【請求項９】
前記分割ボクセルデータに対する計算負荷を、前記分割ボクセルデータの割り当て先の各ノードの計算資源使用状況情報に応じた分割割合で分割する計算分割割当部としてもコンピュータを機能させ、
前記負荷割当手段は、前記計算分割割当部が分割した計算負荷を前記各割り当て先の各ノードに割り当てることを特徴とする請求項６〜８のいずれか一項に記載のプログラム。
【請求項１０】
複数のノードによって構築されるコンピュータネットワークを用いて、三次元以上のボクセルデータに対して少なくとも二のノードが分散処理でボリュームレンダリング処理を施すボリュームレンダリング処理方法であって、
前記複数のノードのうち少なくとも一のノード割当手段が、各ノードの計算余力及びメモリ空き状況に係る計算資源使用状況情報に基づいて分散処理可能な余力のある少なくとも二のノードを割り当てる段階と、
少なくとも一のノードのデータ分割割当部が、与えられたボクセルデータを、各割り当てノードの計算資源使用状況情報に応じた分割割合で、かつ分割面に関わるボクセルデータを重複させるように複数の分割ボクセルデータに分割する段階と、
少なくとも一のノードの負荷割当手段が、前記分割ボクセルデータを動的に前記各割り当てノードに割り当てる段階と、
前記割り当てノードの演算手段が、割り当てられた分割ボクセルデータに対して分散レンダリング処理を行うとともに、少なくとも分割面近傍における分散レンダリング処理の補間計算を前記データの重複部分を用いて行う段階と、
少なくとも一のノードの連結手段が、前記各割り当てノードにおける分散レンダリング処理結果を取得して一つに整合させて連結する段階と、
少なくとも一の表示制御部が、前記連結されたレンダリング処理結果に基づくボリュームレンダリング画像を表示手段に表示する段階と
を備えたボリュームレンダリング処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のノード（計算機）を備えたコンピュータネットワーク上で行われる、動的負荷割り当てを用いた協調分散処理によるボリュームレンダリング処理方法、ボリュームレンダリング処理システム、計算機及びプログラムに関するものである。
【背景技術】
【０００２】
近年、ネットワーク環境および計算機が低価格化・高性能化により多くの病院に普及するようになってきている。病院内の複数箇所での利用ニーズに従い、院内ネットワークに複数台の画像処理システムがある場合も珍しくなくなってきている。ＣＴ，ＭＲＩなど医療画像診断機器で撮影された医療画像データ（ボクセルデータ）を画像処理システムの画面で見るときの画像処理にはボリュームレンダリング処理が行われる。
【０００３】
ＣＴ，ＭＲＩなど医療画像診断機器の発達による測定分解能の向上とともに、医療画像データ（ボクセルデータ）のデータ容量が増大している。リアルタイムでデータ本来の分解能を反映させながらデータを間引かずにボリュームレンダリング処理を行うためには、大容量のメモリと高速なＣＰＵなど膨大な計算資源を持つ計算機が必要である。現状では上記条件を満たすような計算機は現実的なコストでは得られない。そのためボリュームレンダリング処理を行うことができるボクセルデータの容量に限界がある。すなわち、現状ではコストパフォーマンスの高い計算機１台当たりが装備可能なメモリ容量と計算能力に限界があるため、ボリュームレンダリング処理を行うことができるボクセルデータの容量に限界がある。
【０００４】
特に医療画像データのデータ容量の増加が著しい。この要因には時間分解能と空間分解能の向上が挙げられる。通常使用される３Ｄ医療画像データは、幅（Ｘ軸）、高さ（Ｙ軸）が同じ２Ｄ画像（体の断面画像、1スライス）を体軸方向（Ｚ軸）に何枚も積層することで構成される。さらに時間軸（Ｔ軸）が加わった４Ｄ医療画像データは、３Ｄ医療画像データの時系列で構成されるが、すでにデータ容量が大きい３Ｄデータを複数持つことになるため、膨大なデータ容量となる。診断機器の技術革新による時間分解能の向上（Ｔ軸方向）によって、３Ｄ医療画像の時系列データを臨床現場で取得できるようになってきた。
【０００５】
また、空間分解能の向上（Ｘ軸、Ｙ軸方向）も進み、現在は１スライスの解像度は512 × 512 が主流であるがいずれ1024 × 1024 になると言われている。さらに、空間分解能の向上（Z軸方向）も挙げられ、１スライスの厚さが薄くなることで同じ撮影部位が従来よりも多くのスライス枚数から構成されるため、データ容量が増加している。
【０００６】
従来、図１６に示すように、１台の計算機５０で完結する画像処理システムがあった。この画像処理システムでは、一台の計算機（複数ＣＰＵの場合有り）５０でボリュームレンダリング処理の全工程が行われる。
【０００７】
また図１７に示すように、ボクセルデータのストレージを行うストレージサーバー５２とボリュームレンダリング処理・表示を行う画像処理システム５３とに分け、ストレージサーバー５２と複数台の計算機５０をネットワークで繋いで構築されるシステム５１があった。画像処理システム５３は、必要なボクセルデータをストレージサーバー５２から動的に取得して、画像処理システム内のメモリに読み込んだ後、ボリュームレンダリング処理を行う。長所としては、ボリュームレンダリングで編集したい、必要なボクセルデータのみ画像処理システム５３で保持すればよい。つまり、ローカル・ストレージの浪費や、ローカル・ストレージ容量による制限がなくなる。
【０００８】
さらに図１８に示すように、ボクセルデータのストレージとボリュームレンダリング処理を行うストレージ・計算サーバー５６と、ボリュームレンダリング処理結果を表示する画像表示システム５７とに分け、このサーバー５６と複数台の計算機５０をネットワークで繋いで構築されるシステム５５があった。長所としては、(1) 処理結果を表示する計算機５０は計算資源が少なくてもよく、画像表示システム５７を低コストにすることができる、(2) 動的に計算資源を複数のユーザーに配分することができるなどが挙げられる。
【０００９】
また、例えば非特許文献１には、分散処理において、レンダリング計算を画素ごとに分割するボリュームレンダリング処理方法が開示されている。また、非特許文献２には、分散処理において、ボクセルデータ（ボリューム）を分割する技術が開示されている。
【非特許文献１】吉岡政洋、外３名，ソフトウエアによる高速ボリュームレンダリング手法の開発と仮想化内視鏡システムへの適用，MEDICAL IMAGING TECHNOLOGY，日本，２００１年１１月，Vol. 19, No. 6，pp. 477 - 486
【非特許文献２】佐野健太郎、外３名，データ並列ボリュームレンダリングのためのボリューム適応分割手法，情報処理学会研究報告，日本，社団法人情報処理学会，１９９８年１０月９日，Vol. 98, No. 93 (HPC-73)，pp.7 -12
【発明の開示】
【発明が解決しようとする課題】
【００１０】
しかしながら、非特許文献２に記載のように、ボクセルデータ（ボリューム）を分割してノード（計算機）に割り当てる構成を採用する場合、各ノードの分散レンダリング処理結果を一つに連結する際に、分割面近傍のレンダリング処理を補う必要があった。
【００１１】
本発明の目的は、ボクセルデータ分割による分散処理で得られた分散レンダリング処理結果を一つに連結する際に、分割面近傍のレンダリング処理を補う計算処理が伴わずに済み、高コストパフォーマンスを満たす単一計算機では扱うことが難しい大容量ボクセルデータでも高速にボリュームレンダリング処理することができるボリュームレンダリング処理方法、ボリュームレンダリング処理システム、計算機及びプログラムを提供することにある。
【課題を解決するための手段】
【００１２】
上記目的を達成するために請求項１に記載の発明は、複数のノードによってコンピュータネットワークが構築され、三次元以上のボクセルデータに施すべきボリュームレンダリング処理を少なくとも二のノードが分散処理で実行するボリュームレンダリング処理システムにおいて、少なくとも一のノードに設けられ、各ノードの計算余力及びメモリ空き状況に係る計算資源使用状況情報を基に分散処理可能な余力のある少なくとも二のノードを割り当てるノード割当手段と、少なくとも一のノードに設けられ、与えられたボクセルデータを、各割り当てノードの計算資源使用状況情報に応じた分割割合で、かつ分割面に関わるボクセルデータを重複させるように複数の分割ボクセルデータに分割するデータ分割割当部と、前記分割ボクセルデータを動的に前記各割り当てノードに割り当てる負荷割当手段と、前記割り当てノードとなる少なくとも二のノードに設けられ、割り当てられた分割ボクセルデータに対して分散レンダリング処理を行うとともに、少なくとも分割面近傍における分散レンダリング処理の補間計算を前記データの重複部分を用いて行う演算手段と、少なくとも一のノードに設けられ、前記各割り当てノードにおける分散レンダリング処理結果を取得して一つに整合させて連結する連結手段と、少なくとも一のノードに設けられ、前記連結されたレンダリング処理結果に基づくボリュームレンダリング画像を表示手段に表示する表示制御手段とを備えたことを要旨とする。
【００１３】
この発明によれば、少なくとも一のノードにおいて、ノード割当手段が各ノードの各ノードの計算余力とメモリ空き容量とを含む計算資源使用状況情報を基に分散処理可能な余力のあるノードを、分散処理を行うノードとしてノード割り当てをする。少なくとも一のノードに設けられたデータ分割割当部は、各割り当てノードの計算資源使用状況情報に応じて、与えられたボクセルデータの分割割合を決定するとともにその分割割合でボクセルデータを分割するに当たり、分割面に関わるボクセルデータを重複させるようにボクセルデータを分割する。割り当てノードとなる少なくとも二のノードに設けられた演算手段は、割り当てられた分割ボクセルデータに対して分散レンダリング計算を行うとともに、少なくとも分割面近傍においては分散レンダリング処理をデータの重複部分も用いて行う。この結果、各割り当てノードにおける分散レンダリング処理を分割面まで行うことができる。そして、少なくとも一のノードに設けられた連結手段が、各割り当てノードにおける分散レンダリング計算結果を取得して整合させて一つに連結する。このとき、ボクセルデータ分割による分散処理で得られた分散レンダリング処理結果を一つに連結する際に、分割面近傍のレンダリング処理を補う計算処理が伴わずに済む。そして、少なくとも一のノードに設けられた表示制御手段は、連結されたレンダリング計算結果に基づくボリュームレンダリング画像を表示手段に表示する。従って、計算資源に余力のあるノードがあればその計算資源を有効活用し、複数のノード（計算機）が動的に負荷を分担しながらボリュームレンダリング演算を協調分散処理することで、単一計算機（ノード）では扱うことが難しい大容量データでも高速にボリュームレンダリング処理することが可能となる。
【００１４】
請求項２に記載の発明は、請求項１に記載の発明において、前記分割面に関わるボクセルデータを重複させるとは、前記分割面近傍における補間計算が可能な量を重複させることをいうことを要旨とする。
【００１５】
この発明によれば、各割り当てノードには、補間計算が可能な量を重複させた分割ボクセルデータが割り当てられる。このため、各割り当てノードの演算手段が、分割面近傍における補間計算を行うことができる。
【００１６】
請求項３に記載の発明は、請求項２に記載のボリュームレンダリング処理システムにおいて、前記補間計算は、グラディエント計算又はボクセル補間値計算であることを要旨とする。
【００１７】
この発明によれば、請求項２に記載の発明の作用に加え、各割り当てノードは、分割ボクセルデータの分割面近傍におけるグラディエント計算又はボクセル補間値計算が可能となる。
【００１８】
請求項４に記載の発明は、請求項１〜３のいずれか一項に記載のボリュームレンダリング処理システムにおいて、前記分割ボクセルデータに対する計算負荷を、前記分割ボクセルデータの割り当て先の各ノードの計算資源使用状況情報に応じた分割割合で分割する計算分割割当部を更に備え、前記負荷割当手段は、前記計算分割当部が分割した計算負荷を前記割り当て先の各ノードに割り当てることを要旨とする。
【００１９】
この発明によれば、請求項１〜３のいずれか一項に記載の発明の作用に加え、計算分割割当部は、分割ボクセルデータの割り当て先の各割り当てノードにおける計算負荷を、計算資源状況使用情報に応じた分割割合で分割する。負荷割当手段は、計算分割割当部が分割した分割レンダリング計算を各割り当てノードに割り当てる。よって、複数のノードに同じ分割ボクセルデータが割り当てられ、各ノード間で分割ボクセルデータに対するレンダリング計算が分散処理で行われる。
【００２０】
請求項５に記載の発明は、請求項１〜３のいずれか一項に記載のボリュームレンダリング処理システムにおけるノードを構成する計算機であって、前記ノード割当手段、前記データ分割割当部及び前記負荷割当手段を備えたことを要旨とする。
【００２１】
この発明によれば、計算機（コンピュータ）は、ノード割当手段、データ分割割当部及び負荷割当手段を備えるので、この計算機を、ボリュームレンダリング処理システムに用いることで、請求項１〜６のいずれか一項に記載の発明と同様の作用効果が得られる。
【００２２】
請求項６に記載の発明は、複数のノードによって構築されるコンピュータネットワークを用いて、少なくとも二のノードが、三次元以上のボクセルデータに施すべきボリュームレンダリング処理を分散処理で実行するボリュームレンダリング処理システムにおける前記ノードの機能をコンピュータに実現させるプログラムであって、コンピュータを、各ノードの計算余力とメモリ空き状況に係る計算資源使用状況情報に基づき分散処理を割り当て可能な余力のある少なくとも二のノードを割り当てるノード割当手段と、与えられたボクセルデータを、前記各割り当てノードの計算資源使用状況情報に応じた分割割合で、かつ分割面に関わるボクセルデータを重複させるように複数の分割ボクセルデータに分割するデータ分割割当部と、前記分割ボクセルデータを動的に前記各割り当てノードに割り当てる負荷割当手段と、割り当てられた分割ボクセルデータに対して分散レンダリング処理を行うとともに、少なくとも分割面近傍における分散レンダリング処理の補間計算を前記データの重複部分を用いて行う演算手段と、前記各割り当てノードにおける分散レンダリング処理結果を取得して一つに整合させて連結する連結手段と、前記連結されたレンダリング処理結果に基づくボリュームレンダリング画像を表示手段に表示する表示制御手段、として機能させるプログラムであることを要旨とする。
【００２３】
この発明によれば、プログラムをコンピュータに実行させることにより、請求項１に記載のボリュームレンダリング処理システムを構成するノードとして機能させることができ、このノードでシステムを構築することにより、請求項１に記載の発明と同様の作用効果が得られる。
【００２４】
請求項７に記載の発明は、請求項６に記載のプログラムにおいて、前記分割面に関わるボクセルデータを重複させるとは、補間計算が可能な量を重複させることをいうことを要旨とする。
【００２５】
この発明によれば、プログラムをコンピュータに実行させることにより、請求項２に記載のボリュームレンダリング処理システムを構成するノードとして機能させることができ、このノードでシステムを構築することにより、請求項２に記載の発明と同様の作用効果が得られる。
【００２６】
請求項８に記載の発明は、請求項７に記載のプログラムにおいて、前記補間計算は、グラディエント計算又はボクセル補間値計算であることを要旨とする。
この発明によれば、プログラムをコンピュータに実行させることにより、請求項３に記載のボリュームレンダリング処理システムを構成するノードとして機能させることができ、このノードでシステムを構築することにより、請求項３に記載の発明と同様の作用効果が得られる。
【００２７】
請求項９に記載の発明は、請求項６〜８のいずれか一項に記載のプログラムであって、前記分割ボクセルデータに対する計算負荷を、前記分割ボクセルデータの割り当て先の各ノードの計算資源使用状況情報に応じた分割割合で分割する計算分割割当部としてもコンピュータを機能させ、前記負荷割当手段は、前記計算分割割当部が分割した計算負荷を前記各割り当て先の各ノードに割り当てることを要旨とする。
【００２８】
この発明によれば、プログラムをコンピュータに実行させることにより、請求項４に記載のボリュームレンダリング処理システムを構成するノードとして機能させることができ、このノードでシステムを構築することにより、請求項４に記載の発明と同様の作用効果を得ることができる。
【００２９】
請求項１０に記載の発明は、複数のノードによって構築されるコンピュータネットワークを用いて、三次元以上のボクセルデータに対して少なくとも二のノードが分散処理でボリュームレンダリング処理を施すボリュームレンダリング処理方法であって、前記複数のノードのうち少なくとも一のノード割当手段が、各ノードの計算余力及びメモリ空き状況に係る計算資源使用状況情報に基づいて分散処理可能な余力のある少なくとも二のノードを割り当てる段階と、少なくとも一のノードのデータ分割割当部が、与えられたボクセルデータを、各割り当てノードの計算資源使用状況情報に応じた分割割合で、かつ分割面に関わるボクセルデータを重複させるように複数の分割ボクセルデータに分割する段階と、少なくとも一のノードの負荷割当手段が、前記分割ボクセルデータを動的に前記各割り当てノードに割り当てる段階と、前記割り当てノードの演算手段が、割り当てられた分割ボクセルデータに対して分散レンダリング処理を行うとともに、少なくとも分割面近傍における分散レンダリング処理の補間計算を前記データの重複部分を用いて行う段階と、少なくとも一のノードの連結手段が、前記各割り当てノードにおける分散レンダリング処理結果を取得して一つに整合させて連結する段階と、少なくとも一の表示制御部が、前記連結されたレンダリング処理結果に基づくボリュームレンダリング画像を表示手段に表示する段階とを備えたことを要旨とする。
【００３０】
この発明によれば、請求項１に記載のシステムの発明と同様の作用効果が得られる。
【発明の効果】
【００３１】
請求項１〜１０に記載の発明によれば、ボクセルデータを分割して複数のノードに割り当てて分散処理を行う場合に、ボクセルデータを分割面に関わるボクセルデータを重複させるように分割し、分割面近傍でも補間計算が可能となるように分割データに冗長性を持たせるので、各割り当てノードにおける分散レンダリング処理を分割面まで行うことができる。よって、ボクセルデータ分割による分散処理で得られた分散レンダリング処理結果を一つに連結する際に、分割面近傍のレンダリング処理を補う計算処理が伴わずに済み、高コストパフォーマンスを満たす単一計算機では扱うことが難しい大容量ボクセルデータでも高速にボリュームレンダリング処理することができる。
【発明を実施するための最良の形態】
【００３２】
以下、本発明を具体化した一実施形態を図１〜図１５に従って説明する。
図１に示すボリュームレンダリング協調分散処理システム１は、例えば病院内に配備されている。病院内の複数箇所には、ＣＴ，ＭＲＩなどの医療画像を見るための複数台（ここでは３台）の画像処理システムＡ，Ｂ，Ｃが設置されている。これらの画像処理システムＡ，Ｂ，Ｃが医療画像データ（ボクセルデータ）を記憶（蓄積）するサーバー（ストレージサーバー）２と通信線を介して接続され、コンピュータネットワークとしての院内ネットワーク（ＬＡＮ））が構築されている。
【００３３】
画像処理システムＡ，Ｂ，Ｃは、コンピュータ（例えばワークステーション）によって構成されており、計算機（ノード）としてのコンピュータ本体３、表示装置４および入力装置５をそれぞれ備えている。ストレージサーバー２には、ＣＴ，ＭＲＩなど医療画像診断機器で撮影された医療画像データ（ボクセルデータ）が蓄積されている。医師は画像処理システムＡ，Ｂ，Ｃの画面を通してストレージサーバー２に蓄積された例えば患者の医療画像を見ることができる。
【００３４】
医療画像データ（ボクセルデータ）は、ＣＴ，ＭＲＩなど医療画像診断機器の発達による測定分解能の向上とともに、そのデータ容量が増大している。医療画像データのデータ容量増大の要因として診断機器の空間分解能及び時間分解能の向上が挙げられる。空間分解能向上としては、(1)X-Y軸方向：現在は1スライスの解像度は51 2×512が主流であるが、いずれ1024×1024になると言われている、(2)Ｚ軸方向：1スライスの厚さが薄くなることで、物体を構成するスライス枚数が従来よりも多くなる、などがある。また時間分解能向上としては、(1)マルチスライスＣＴという技術により、単位時間内で撮影できるスライス枚数が増えているため、短時間でより多くのスライス画像を得ることができる、(2)(1)と撮影時間の短縮により、心臓の拍動など器官の動きを３次元で撮影することが容易になりつつある、などがある。
【００３５】
医療画像データ（ボクセルデータ）を表示装置４の画面で見るときの画像処理にはボリュームレンダリング処理が行われる。リアルタイムでデータ本来の分解能を反映させながらデータを間引かずにボリュームレンダリング処理を行うために、複数の計算機で分散処理を行う。各計算機3は計算資源に余裕がある場合、別計算機3のプロセスに計算資源を提供することができるため、ユーザーが直接使用していない場合にも計算資源が有効に活用される。また、冗長性を持たせることによる高可用性を実現する。
【００３６】
ここで、「ボリュームレンダリング」とは、ボリュームデータ(volume data，vo lumetric data)を２次元（２Ｄ）画像に表示する方法である。視点位置から視線方向に向かってレイキャスティングを行い、画像を生成する。通常ボリュームデータは、３次元物体をサンプリングした三次元ボクセルデータを指すことが多いが、本実施形態ではボクセルデータの次元を３次元に限定しない。特に３次元と４次元のボクセルデータ（空間軸３＋時間軸１）を想定している。一般的に用いられる４Ｄボクセルデータは、３Ｄボクセルデータを時系列にしたものである。従って、４Ｄボクセルデータに対するボリュームレンダリング処理は、一般にはアニメーション（３Ｄボクセルデータに対するボリュームレンダリングを時系列に従って高速に行う）を指す場合が多い。ボクセルデータの次元としては、３次元と４次元に留まらず、さらに５次元以上であっても構わない。４Ｄデータのアニメーション処理は、多次元ボリュームレンダリング処理の視点から見ると、ｎ次元データの異なる（ｎ−１）次元断面を高速に次々表示する処理に対応する。また「ボクセルデータ」とは、３次元以上の離散的な配列データであって、２Ｄ配列データのピクセルデータに対応するものである。
【００３７】
ボリュームレンダリングの種類としては、各ボクセルに不透明度を設定してレイキャスティングを行う方法（一般にボリュームレンダリングはこれを指す場合が多い）、ＭＩＰ(Maximum Intensity Projection), Ｍｉｎ  ＩＰ(Minimum Intensity Projection)、ＲａｙＳｕｍ等が挙げられる。
【００３８】
また、応用範囲は多岐に渡り、使用するデータがボクセルデータであればデータ取得方法には特によらない。例えば、医療分野の他、顕微鏡解析、気象解析、地質調査（石油探査など）、非破壊検査などが挙げられる。なお、５次元以上のボクセルデータには、例えば分子間力の解析（結合角）などが挙げられる。
【００３９】
本システム１の特徴は、ボクセルデータのストレージ（保管）を行うストレージサーバー２と、ボリュームレンダリング処理・表示を行う画像処理システムＡ，Ｂ，Ｃとに分けた点にある。複数台の画像処理システムＡ，Ｂ，Ｃは互いに協調して計算を行い、互いに対等な関係にある。従来技術で述べた図１７，１８の手法において計算資源を提供する計算機が一台であるのに対し、本実施形態による新規手法では計算資源を複数台の計算機３が提供する。各計算機３には、協調分散処理対応の同一のプログラムがそれぞれインストールされている。
【００４０】
図１に括弧( )で示した数字は、ボリュームレンダリング協調分散処理の流れを示すものである。以下、処理の手順について順に説明する。なお、医師（ユーザー）が画面上で医療画像を見るために入力装置５が操作される画像処理システムが「メイン」となる。ここでは画像処理システムＡをメインとする。
【００４１】
(1) データリスト要求
メインの画像処理システムの入力装置５を操作して医療画像を選択するためのデータリストをストレージサーバー２に対して要求する。
【００４２】
(2) データリスト取得
上記データリスト要求に応答してストレージサーバー２から送られてくるデータリストを取得する。
【００４３】
(3) ノード割り当て
データリスト取得によって画像表示の指示が予想されると、メインとなる画像処理システムＡは、ネットワーク上の他の画像処理システムの計算資源利用状況を確認する。この計算資源利用状況確認のため本実施形態では、その情報としてメモリ空き容量およびＣＰＵ使用率を取得する。そしてＣＰＵ使用率から例えばＣＰＵ余力（＝（１−ＣＰＵ使用率）×ＣＰＵクロック周波数）を求める。そしてＣＰＵ余力とメモリ空き容量とを基に処理能力（計算資源）上の余力が必要量ある他ノードの存在の有無を判断し、該当する他ノードが存在すればそれを分散処理に加わる画像処理システムとして決定する。つまりメインノード３と共に分散処理に加わるサブノード３をその余力（処理能力の空き）に応じて決定し、分散処理を担当する各ノードを割り当てる。
【００４４】
ここで、ＣＰＵ余力とは、上記計算式からＣＰＵ使用率を用いて算出されたものに限定されず、ＣＰＵの種類・性能の違いの要素を考慮して決定されるものであってもよい。またノード割り当て前などにベンチマークを行い、各ノードの処理能力（又は余力）を計測する方法を採用しても構わない。さらにＣＰＵ性能やメモリ性能の違いを考慮してＣＰＵ余力とメモリ空き容量とから決まるトータルパフォーマンスを考慮して計算資源の余力を決める方法を採用することも可能である。同図では、画像処理システムＡの他、画像処理システムＢ，Ｃが協調分散処理のノードとして選択されている。なお、本実施形態では、各ノード３からメモリ使用率の情報を通信で取得し、メモリ空き容量（＝（１−メモリ使用率）×メモリ容量）を求めている。特に本実施形態では全てのノード３のメモリが同一性能（種類）・同一容量であることから、メモリ空き容量をメモリ空き率（＝１−メモリ使用率）から判断している。もちろん、メモリ使用率そのものからメモリ空き容量を判断してもよい。
【００４５】
メインとなる画像処理システムＡ（メインノード３）は、他の画像処理システムＢ，Ｃ（サブノード３）の動作状況を確認しながら各々の処理能力に応じて、協調分散処理を担当する各画像処理システムＡ，Ｂ，Ｃ（各割り当てノード３）のそれぞれに割り当てるべきデータ負荷と計算負荷の分担割合を決める。つまり、各ノード３のその時々の処理能力に応じて割り当て負荷を決める動的負荷割り当てを行う。なお、メインノードはユーザーに使用されている表示対象指定元のノードであり、サブノードはユーザーが利用しておらずその計算資源の空きを利用して分散処理が行われるノードである。
【００４６】
動的負荷割り当ての手法として、本実施形態では、データコピーモード、データ分割モード、混合モードの３モードが用意されている。データ分割モードあるいは混合モードの場合では、単にノードを割り当てるだけでなく、さらに各ノードに対するボクセルデータの分割割合を決定する。以下、これら３モードについて詳しく説明する。
【００４７】
(a) 「データコピーモード」では、ボクセルデータの容量がそれほど大きくなければ全ての計算機（ノード）３にボリュームレンダリングの対象となるボクセルデータを分割せずまるごとコピーする。単一計算機による処理性能の限界を突破することを目的とする。しかし、後述する(b) のモードに比べ扱えるボクセルデータの容量が制限される。
【００４８】
(b) 「データ分割モード」では、ボクセルデータの容量が大きい場合、ボリュームレンダリングの対象となるボクセルデータを分割し、各計算ノードに割り当てる。単一計算機による処理容量の限界を突破することを目的とする。しかし、処理速度は(a) のモードに比べ多少遅くなる。
【００４９】
(c) 「混合モード」とは、上記(a), (b) 両方の特徴を持つモードである。例えばボクセルデータを２つに分割し、それぞれ２つの分割データコピーを用いれば、４台の計算機（ノード）３がボリュームレンダリング処理を行う。この場合、データ（メモリ負荷）と計算処理（計算負荷）の両方が分割され、２データ分割×２データコピーによって４台の計算機（ノード）３に負荷が割り当てられる。
【００５０】
(4) データ選択
データ分割モード、混合モードの場合は、上記(3) で決定したボクセルデータの割り当ての情報も転送される。サーバー２は割り当ての情報を解釈し、ボクセルデータの分割転送を行う機能を持っている。
【００５１】
(5) データ転送・メモリ読み込み
データコピーモードでは、全ての割り当てノード３にボクセルデータ全体を転送する。データ分割モードでは、分割したボクセルデータを対応する各ノード３に転送する。このモードでは、各ノード３に割り当てられる分割データがそれぞれ異なる。混合モードでは、分割したボクセルデータを対応する各ノード３に転送するが、複数のノード３に同じ分割データが重複して割り当てられる。
【００５２】
(6) 分散ボリュームレンダリング処理要求
前記(3) で割り当てたノード３に対し前記(4) で決定したモードに応じて割り当てた動的負荷の計算を行わせる分散ボリュームレンダリング処理を要求する。
【００５３】
(7) 分散ボリュームレンダリング処理
各ノード３において分散ボリュームレンダリング処理が実行される。
(8) 処理結果転送
各サブノード３で行われた分散ボリュームレンダリング処理の処理結果がメインノード３に転送される。
【００５４】
(9) 分散処理結果の連結
各ノードから転送された分散ボリュームレンダリング処理の処理結果を連結する処理が行われる。
【００５５】
(10)表示
前記(9) で連結された処理結果に基づいて画像データを生成し、表示装置４の画面に表示させる。
【００５６】
(6) 〜(10)の処理がループで行われる。ボクセルデータの割り当ては処理開始時の他、各画像処理システムＡ，Ｂ，Ｃの利用状況が変わった場合に実行される。
図２は、ボリュームレンダリング協調分散処理システムの機能ブロック図を示す。計算機３には、ＣＰＵ、メモリ及びプログラムによって、同図に示す各機能部１０〜１３が構築されている。すなわち、要求処理部１０、割当処理部１１、分散ボリュームレンダリング処理部１２およびデータ連結処理部１３を備えている。またメモリにより構成されるボクセルデータ格納部１４および画像メモリ１５が備えられている。また画像メモリ１５に格納された画像データを基に表示装置４の画面に画像を表示させる表示制御部１６が備えられている。なお、要求処理部１０により要求手段が構成される。
【００５７】
割当処理部１１は、ノード割当部１７と負荷割当部１８とから構成されている。負荷割当部１８はさらにモード決定部１９、データ分割割当部２０および計算分割割当部２１を備えている。割当処理部１１は他のノード３との通信によって他のノード３のＣＰＵ使用率およびメモリ空き容量を含む計算資源利用状況情報を取得する。
【００５８】
要求処理部１０は、入力装置５の操作によりデータリスト要求を受け付けると、ストレージサーバー２に対しデータリストを要求し、データリストを取得すると、表示制御部１６を介して表示装置４の画面上にリストを表示させる。リストデータにはその一覧中の医療画像に関するボクセルデータのデータ容量を示す情報が含まれている。画面上に表示されたリスト中からユーザー（医師）が入力装置５を操作して例えば患者の医療画像（例えば心臓ＣＴ画像等）を選択すると、要求処理部１０は、リストから選択指定された医療画像のボクセルデータをストレージサーバー２に対し要求する処理を行う。このボクセルデータ要求処理に先立ち要求処理部１０はリストから選ばれた医療画像に関するボクセルデータのデータ量情報を割当処理部１１に送る。そして割当処理部１１では、ノード割当部１７がボクセルデータ量情報に基づき協調分散処理の必要性判断を行い、協調分散処理が必要と判断したときには、ノード割り当てが可能であるかどうかを判断する。そしてノード割当部１７は、協調分散処理必要かつノード割り当て可能である場合、ボクセルデータ量情報と各ノード３における計算資源利用状況情報（ＣＰＵ使用率、メモリ空き容量）とに基づき、協調分散処理を担当するノードを割り当てるノード割当処理を実行し、割り当てノードを決定する。また割り当てノードが決定すると、次に負荷割当部１８が各ノード３に対して負荷（データ負荷・計算負荷）を割り当てる負荷割当処理が実行され、各ノード３に対する負荷割り当て（データ負荷割当・計算負荷割当）を決定する。ノード割り当て・負荷割り当ての決定情報は要求処理部１０に渡され、要求処理部１０はこれらの情報を付してストレージサーバー２に対しボクセルデータ要求を出す。このように要求処理部１０は、図１における「(1) データリスト選択」および「(4) データ選択」を司る。
【００５９】
ノード割当部１７は、他の計算機（ノード）から通信によって入手した他の各計算機３のＣＰＵ使用率およびメモリ空き容量の情報に基づき協調分散処理を行うノードを割り当てる。ノード割当部１７は、図１における「(3) ノード割り当て」を司る。
【００６０】
負荷割当部１８は、協調分散処理のため選択された各ノードに対しリストから指定されたボクセルデータの容量や計算負荷（表示条件等から決まる計算負荷）に応じて、各ノード３のＣＰＵ使用率およびメモリ空き容量を考慮しつつ各ノード毎のデータ負荷および計算負荷を割り当てる。すなわちモード決定部１９が動的負荷割り当て手法の違いによって３モードで設定された、「データコピーモード」、「データ分割モード」、「混合モード」のうちいずれを採用するかを決定する。
【００６１】
データ分割割当部２０は、データ分割モードまたは混合モードにおいてボクセルデータの分割割合を決定する。また計算分割割当部２１は、データコピーモードまたは混合モードにおいて計算負荷分割処理を行う。混合モードでは、データ分割割当部２０と計算分割割当部２１との協働によって、データ分割処理と計算負荷分割処理が行われる。また、要求処理部１０は割り当てノード３に対して割り当て負荷内容を指示する分散ボリュームレンダリング処理要求を行う。
【００６２】
ストレージサーバー２は、指定されたボクセルデータを必要に応じて指示に従い分割して割り当て先の各ノード３に転送する。ノード３に転送されたボクセルデータはボクセルデータ格納部１４に格納される。分散ボリュームレンダリング処理部１２は、ボクセルデータ格納部１４に格納された割り当てデータに対し割り当てられた計算処理を行う分散ボリュームレンダリング処理を実行する。
【００６３】
各ノード３における分散ボリュームレンダリング処理結果は通信によりメインのノード３に転送される。データ連結処理部１３は、自身のノード３の分散ボリュームレンダリング処理部１２からの処理結果と各ノード３から転送された分散ボリュームレンダリング処理結果を一つに連結する。連結されることで生成された画像データは画像メモリ１５に送られる。表示制御部１６は画像メモリ１５に格納された画像データを基に表示装置４の画面に画像を表示する。
【００６４】
図３は、計算負荷割り当て手法を説明するものである。ここでは512×512ピクセルのボリュームレンダリング画像を作成する場合、512×512=262,144本のレイをキャストするため、処理を各レイごとの区画に分割している。
【００６５】
計算処理を複数の処理区画に分割し、各ノードに割り当てる処理区画を決定する。各ノード３はそれぞれに割り当てられた処理区画に従い計算処理を行う。一定数（または一定割合）の処理区画の計算処理が終了したら、処理結果をメインとなる画像処理システムＡへ返す。処理結果を返すにあたり、必ずしも割り当てられた処理区画の処理が全て終了するのを待たなくてもよい。そのため、全ての処理が終わり、次の割り当てがくるまで待機するようなことがない。メインとなる画像処理システムＡは、処理結果を返してきたノード３に、次の処理区画を割り当てる。例えばメインの画像処理システムＡが画像処理システムＢに対し区画１−2000の処理要求を行う。これに対して画像処理システムＢは区画１−1000の処理を終了するとそこまでの処理結果を画像処理システムＡに返す。画像処理システムＡは区画１−1000の処理結果を受け取ると、画像処理システムＢに対して次の区画2000−4000の処理要求をする。結果として処理結果が速いノード３ほど多くの区画が割り当てられることになり、それぞれのノード３の能力に見合った計算負荷を動的に割り当てることができる。
【００６６】
図４，図５は本実施形態の協調分散処理システムの特徴的な作動状況を説明するものである。図４に示すように例えば４台の画像処理システムＡ〜Ｄのうち、メインの画像処理システムＣの１台のみ医師が使用していると、使用されていない他の画像処理システムＡ，Ｂ，Ｄの各計算機３を有効活用して協調分散処理で計算処理（ボリュームレンダリング処理）を行う。この結果、メインの画像処理システムＣではデータを間引くことなくリアルタイムの速度で大容量医療画像データのボリュームレンダリング画像を見ることができる。
【００６７】
また図５に示すように、複数台の画像処理システムＡ，Ｃ，Ｄを医師が使用しているとする。このとき例えばボクセルデータ容量の多い医療画像を扱うメインの画像処理システムＣは、使用されていない画像処理システムＢや使用されていても計算負荷に余裕のある画像処理システムＤに対し計算処理（ボリュームレンダリング処理）を分担させる。この結果、メインの画像処理システムＡ，Ｃ，Ｄが複数台であっても、負荷の大きい計算処理を他の画像処理システムＢ，Ｄの計算資源を有効活用して協調分散することによりデータを間引くことなくリアルタイムの速度でボリュームレンダリング画像を見ることができる。なお、各ノード３はローカルストレージを持っており、過去に使用した割り当てデータを既に持っているときはサーバー２からノード３にデータを転送することはせず、既に持っているデータを用いて計算処理を行うようになっている。
【００６８】
図６，図７は、ノード割り当ておよび負荷割り当ての変更処理を説明するものである。ノード割り当ておよび負荷割り当ては、処理開始時の他、処理中にも行われる場合がある。再割り当てのトリガーとなる状況が図６，図７にそれぞれ示す２つある。
【００６９】
（Ａ）ユーザーが直接使用していないが、分散処理を割り当てられているサブノードを、新たなユーザーが使用しようとした場合（図６）と、（Ｂ）ユーザーが処理を終了し、１つの分散処理に携わっていたノードが開放された場合（図７）である。
【００７０】
まずノード割り当てについて説明する。割り当てノードには、ＣＰＵ使用率とメモリ空き容量の利用状況から、ＣＰＵとメモリにある程度の空きがある必要がある。ＣＰＵの空きは計算処理（ボリュームレンダリング処理）を行うために必要で、これに基づき計算負荷割り当て量（分散ボリュームレンダリング処理割当量）が決まる。一方、メモリの空きはボクセルデータを格納するために必要で、これに基づきボクセルデータ割当量が決まる。ここで、ユーザーが使うノードを「メインノード」、ユーザーに使われていないが処理が割り当てられるノードを「サブノード」と呼ぶことにすると、上記（Ａ），（Ｂ）の状況は、メインノードの数が変わった状況と考えることができる。以下、計算負荷割り当ておよびボクセルデータ割り当ての変更処理について説明する。
【００７１】
(1) 計算負荷割り当て
計算負荷割り当てはノードの利用状況に対応できる。図６に示すように、ユーザーがないサブノード（例えば画像処理システムＢの計算機）３を、ユーザーが使い始めた場合は、そのサブノード３に割り当てる計算負荷が軽減される。一方、図７に示すように、ユーザーがいたメインノード（例えば画像処理システムＢの計算機）３から、ユーザーがいなくなる場合は、そのサブノードとなったノード３に割り当てる計算負荷が大きくなる。
【００７２】
(2) ボクセルデータ割り当て
ボクセルデータの割り当てはメモリ空き容量に対応するように行われる。図６に示すように、ユーザーが直接使用していないが、分散処理を割り当てられているサブノード（例えば画像処理システムＢの計算機）３を、新たなユーザーが使用しようとした場合を考える。このとき、その空きメモリ容量が十分でない場合は新しい処理にメモリを確保するために、既に割り当てられている処理で使用されているメモリを減らさなければならない。新しい処理開始時に画像処理システムＢは他の画像処理システムＡ，Ｃにメッセージを通知する。メッセージを受信した既存処理のメインノード（メイン１）は、メッセージを送信したノード（画像処理システムＢの計算機）３に対するボクセルデータの割り当てを減らし、減らした分を他のノード（画像処理システムＣの計算機）３に振り分ける。この結果、画像処理システムＢの計算機３のメモリのうちメイン１の画像処理システムＡの既存処理に使用されていたメモリ容量「Ｍ１」が減り、メイン２の画像処理システムＢで新しく開始される処理に使用するメモリ容量「Ｍ２」が確保される。
【００７３】
一方、図７に示すように、メイン１の画像処理システムＡを使用していたユーザーが処理を終了し、１つの分散処理に携わっていたメインノード（例えば画像処理システムＡの計算機）３が開放された場合、終了した処理が使用していたメモリが開放されるため、既存処理はそのメモリを活用することができる。すなわち、画像処理システムＡはノード開放時点に他の画像処理システムＢ，Ｃにメッセージを通知する。メッセージを受信した既存処理のメインノード（画像処理システムＢの計算機）３は、必要であればメッセージを送信したノード（画像処理システムＡの計算機）３の空きメモリ容量を利用してボクセルデータを割り当てる。この結果、メイン２の画像処理システムＢにおけるノード割り当て数が増え、大容量・高速処理に対処できる。
【００７４】
次にボリュームレンダリング処理の詳細について説明する。
図８（ａ），（ｂ）に示すように、ボリュームレンダリング処理には、「平行投影法」と「透視投影法」とがある。平行投影法の方が計算負荷が軽いため、通常この投影法がよく用いられる。透視投影法では内視鏡から得られるような画像を生成するため、血管内部など組織内の様子を観察したい場合に用いられる。
【００７５】
図８に示すように、ボクセルデータＶＤは３次元（但し同図では２次元的に描かれている）の格子点にボクセル値（例えばＣＴ値）を持つデータである。ボリュームレンダリングには一般的にレイキャスティング法が用いられる。レイキャスティング法とは、観察する側（フレーム側）から光の経路を考えるもので、フレーム側のピクセルから光のレイを飛ばし、一定距離を進むごとにその位置での反射光を計算する（図８では「…，Ｖn-1 ，Ｖn ，Ｖn+1 ，Ｖn+2 ，…」の符号が各到達位置のボクセルに対応している）。レイ到達位置が格子上にない場合はその周りのボクセルのボクセル値から補間処理を行ってその位置でのボクセル値を計算する。
【００７６】
図９は、レイキャスティング法の計算方法を説明するもので、図８における1本のレイに対応した処理である。同図におけるブロックはボクセルに相当するもので、これら各ボクセルは光に対する特性パラメータとして不透明度(opacity) αn およびシェーディング係数βn を有する。ここで、不透明度αn は、０≦αn ≦１を満たす数値で表され、値（１−αn ）は透明度(transparency)を示す。不透明度αn＝１は不透明、αn＝０は透明、０＜αn＜１は半透明にそれぞれ対応する。シェーディング係数は色、グラディエントなどシェーディングに関する情報を持つ。
【００７７】
初期入射光（光線）Ｉ1 は、各ボクセルを順次透過してゆくとともに各ボクセルで一部反射および吸収されることによりその残存光（透過光）は徐々に減衰する。各ボクセルにおける部分反射光Ｒn （ｎ＝1,2,…）の積算値（積算反射光）が、フレーム側におけるピクセルの輝度に相当する。ここで、減衰光Ｄn （ｎ＝1,2,…）は、ｎ番目のボクセルの入射光Ｉn を用いて、式  Ｄn ＝αn Ｉn   で表されるため、部分反射光Ｒn は、式  Ｒn ＝βn Ｄn ＝βn αn Ｉn   で表される。また各ボクセルにおける入射光と残存光（透過光）との関係式から、式  Ｉn+1 ＝（１−αn ）Ｉn   が成り立つ。よって積算反射光Ｅは、次式により表される。
【００７８】
【数１】
2007244887.tif 000003
なお、各ボクセル値に対して不透明度αnとの関係付けが予めなされており、その関係付け情報に基づきボクセル値から不透明度αnを得ている。例えば、血管のボリュームレンダリング画像を得たい場合、血管のＣＴ値が０から200に分布していることから、ボクセル値０から200には不透明度1を対応させ、他のボクセル値には不透明度０を対応させることで、血管を表示することができる。
【００７９】
次にボクセルデータ分割割り当ておよび計算負荷割り当てを実施したときの計算方法について説明する。
図１０（ａ）はデータ分割割り当てを示すもので、同図（ｂ）は計算負荷割り当てを示すものである。同図（ａ）のデータ分割はボクセルデータを２つに分割した例を示す。ボクセルデータＶＤは分割ボクセルデータＶＤ１とＶＤ２とに分割され、それぞれ別々のノード３に割り当てられる。分割ボクセルデータＶＤ１が割り当てられたノード３では、Ｖ1 〜Ｖk までのボクセルについて分散ボリュームレンダリング処理を行い、分割ボクセルデータＶＤ２が割り当てられたノード３では、Ｖk+1 〜Ｖn までのボクセルについて分散ボリュームレンダリング処理を行う。
【００８０】
また図１０（ｂ）の計算負荷分割は、割り当てられたボクセルデータに対して行うべき計算処理を複数に分割し、それぞれ別々のノード３に割り当てる。計算負荷分割の仕方としては光線（レイ）の本数で分割する方法が挙げられるが、光線の光軸方向（奥行き方向）に計算を分割しても構わない。例えば図３に挙げた処理区画で分割する方法は、光線の本数で分割した計算負荷分割である。フレーム側のピクセルがボリュームレンダリングを行う際の光線に相当するため、光線の本数で分割するこの計算負荷分割は、フレームをエリア分割した計算処理に相当する。なお、データ分割したときは、その分割に伴って計算処理も必然的に光軸方向に分割される。
【００８１】
図１１は、光線が光軸方向で分割された計算分割の場合における計算方法を説明するものである。使用されている記号の意味は図９と同じである。同図のように、符号「Ｖ1 〜Ｖn 」のボクセル群が、符号「Ｖ1 〜Ｖk 」のボクセル群と「Ｖk+1 〜Ｖn 」のボクセル群とに分割されたとすると、符号「Ｖ1 〜Ｖk 」のボクセル群に対する計算と、符号「Ｖk+1 〜Ｖn 」のボクセル群に対する計算とが別々に行われる。よって、積算反射光Ｅは、次式のように表される。
【００８２】
【数２】
2007244887.tif 000004
ここで、分割された計算処理の計算結果を連結するときには、符号「Ｖk+1 〜Ｖn 」のボクセル群に対する計算結果に初期入射光として入射光Ｉk+1 の条件を採用し、１つのデータとして連結したときに整合がとれるように、各分割計算処理結果の連結を行う。また図１２に示すように、データ分割は、ボクセルデータＶＤを一部データが重複するように分割し、冗長性を持たせている。これは、光線があるボクセルに到達したときに格子上にないときのボクセル値を求める際の補間計算をするときなどに周囲のボクセルが必要になるからである。このように周囲のボクセルも必要になるその他の処理としては、ボリュームレンダリングにおけるグラディエントの計算方法（グレイレベルグラディエント）が挙げられる。このようにグラディエントやボクセル補間値などボリュームレンダリングに必要なパラメータを計算するために、注目座標の周囲のボクセルも必要になる。
【００８３】
次に、各モードにおける計算負荷割り当ておよびデータ分割割り当ての詳細について説明する。図１３はデータコピーモード、図１４はデータ分割モード、図１５は混合モードをそれぞれ示す。
【００８４】
図１３に示すようにデータコピーモードでは、ボクセルデータは各ノード３にまるごと割り当てられる。計算負荷割り当ての仕方によって同図（ａ）〜（ｃ）が挙げられる。同図（ａ），（ｂ）は平行投影法、同図（ｃ）が透視投影法である。同図（ａ）は光線（レイ）の本数で分割することにより計算分割したもので、光線の本数を４分割したそれぞれが４つのノード３に割り当てられる。同図（ｂ）は多数本の光線（レイ）をデータの領域別に４分割することにより計算分割したもので、４分割したそれぞれの計算負荷が４つのノード３に割り当てられる。同図（ｃ）は透視投影による多数本の光線（レイ）をデータの領域別に４分割することにより計算分割したもので、４分割したそれぞれの計算負荷が４つのノード３に割り当てられる。
【００８５】
図１４に示すようにデータ分割モードでは、ボクセルデータは複数分割され、各分割データＶＤ１〜ＶＤ４がそれぞれ異なる各ノード３に割り当てられる。つまりノード毎にデータ負荷が割り当てられる。データコピーモードの図１３（ｂ）における計算負荷割当では、ボクセルデータの回転時に計算負荷分割されるボクセルデータのエリアの変更が有り得るが、データ分割モードでは、ボクセルデータの回転時でも計算分割されるデータの分割面は変わらない。
【００８６】
図１５に示すように混合モードでは、ボクセルデータは複数分割され、各分割データＶＤ１，ＶＤ２のうち同一データがそれぞれ異なるノード３に割り当てられる。さらに同一データが割り当てられた異なるノード３間で計算負荷割当が実施される。
【００８７】
従って、この実施形態によれば以下の効果を得ることができる。
（１）  大容量のメモリと高速なＣＰＵなどの膨大な計算資源を持つ計算機ではなく、現実的なコストで得られるコンピュータ（ワークステーション）を使用しても、ボリュームレンダリング処理を行うことができるボクセルデータの容量を著しく増やすことができる。すなわち、コストパフォーマンスの高い計算機１台あたりが装備可能なメモリ容量と計算能力に限界があっても、ボリュームレンダリング処理を行うことができるボクセルデータの容量にほぼ限界がない。従来はバッチ的な長時間処理、あるいは極めて高価な専用システムによる処理でしか扱うことができなかった大容量データを低コスト、リアルタイムで扱うことができる。
【００８８】
（２）データ転送時に画像処理システムのローカル・ストレージに保存せずに、受信と同時に直接メモリに読み込むため、ローカル・ストレージの浪費がなく、事前のデータ転送も不要となる。
【００８９】
（３）計算資源（メモリ・ＣＰＵ）に余力がある利用可能なノードをその時々に探し出して動的にノード割り当てを行うので、他ノードの計算資源を有効活用でき、高可用性を実現できる。
【００９０】
（４）画像表示処理受け付け時にノード数および負荷（データ負荷・計算負荷）を動的に割り当てることで動的にノードを活用できる。このため、時間帯により刻々と変化する運用形態・状況にも無駄なく、最適なオペレーション環境を全てのユーザーに対して常に提供することができる。
【００９１】
（５）動的負荷割り当ての種類として３モード用意し、ＣＰＵ使用率やメモリ空き容量に応じて大容量データの高速処理により適したノード割り当ておよび負荷割り当てができるようにしたので、大容量データの高速処理をより適切に実現できる。すなわち、院内ネットワーク上の複数の計算機３の計算資源を有効活用できる。
【００９２】
（６）負荷割当部１８は、負荷割り当てした分散ボリュームレンダリング処理のうち予め設定された所定量又は所定割合終了した処理結果を返してきたノードに対して、次の分散ボリュームレンダリング処理の負荷割り当てを行う（図３）。従って、処理速度の速いノード３に優先的に負荷が割り当てられるため、各ノード３間の協調分散処理を高速に実現可能である。
【００９３】
（７）メインノード３のメモリ容量やＣＰＵの空きが必要なだけ確保される場合は、ボクセルデータを分割せずメインノード３に全て送り、メインノード３単独で（単独計算機で）ボリュームレンダリング処理が行われる。よって、不要な分散処理の実施によるボリュームレンダリング演算の処理速度低下を防ぐことができる。
【００９４】
（８）サーバー２に対し要求されたボクセルデータのうち割り当てるべきデータを既にローカル・ストレージに持つノードに対しては、サーバー２からその割り当てデータを送信することなく、その割り当てノード３はローカル・ストレージに持つデータを用いてボリュームレンダリング処理を実行する。従って、割り当てノード３が既にローカルストレージに必要なボクセルデータを持つ場合は、サーバー２から割り当てノード３へのデータ送信時間を省き一層の高速処理を実現できる。
【００９５】
（９）メインノード３の数に変更があると、ノード割当部１７はノードの割り当てをし直すとともに、負荷割当部１８は割り当てノード３に対する動的負荷割り当てをし直す。従って、メインノード３の数の増減により計算資源の空き度合いに変更が生じた時にノード割り当てと動的負荷割り当ての見直しが図られるので、他ノード３の処理を妨げずその計算資源を有効活用でき、高速なボリュームレンダリング処理を実行できる。
【００９６】
（１０）複数のノード３はサブノード、メインノードに必要な機能を全て持っており、役割に応じてサブノード、メインノードと切り替わる。よって、どのノード３もメインノードになることができ、どのノード３の画面からもボリュームレンダリング画像を見ることができる。
【００９７】
なお、実施形態は前記に限定されず、例えば次の態様に変更してもよい。
・  ＣＰＵ使用率とメモリ空き容量のうち少なくとも一方を含む計算資源利用状況の情報から割り当てノードを決定すれば足りる。例えばＣＰＵ使用率のみ、あるいはメモリ空き容量だけをノード割り当てを決めるときに使う情報としてもよい。
【００９８】
・  前記実施形態では、３つのモードを設定し、動的負荷割り当ての種類を幾つか用意したが、いずれか１つのモードだけを実施するものであっても構わない。
・  メインノード（またはサブノード）の数に変更があったときには、負荷割り当てをし直したが、対象とする画像処理が開放されるまで処理開始時の割り当てを維持する構成であっても構わない。
【００９９】
・  ストレージサーバーとノードの機能を両方持つ計算機であってもよい。前記実施形態ではストレージサーバー２と画像処理システム（例えばＡ）５は別々の計算機に分かれていたが、これが同一の計算機であっても構わない。つまり、ストレージサーバー２となる計算機は固定されているが、ユーザーがストレージサーバー２上でボリュームレンダリング処理を行いその画像をストレージサーバー２び画面で見ることができる。
【０１００】
・  サーバーにＣＰＵやメモリの空きがあるときにサーバーにボリュームレンダリングの計算処理を負担させても構わない。この場合、ストレージサーバー２はボリュームレンダリング画像を表示する表示装置４を備えず、単に分散処理目的で分散ボリュームレンダリング処理のみを実行する構成でも構わない。
【０１０１】
・  ネットワークを構成する複数のノードのうち少なくとも一つに入力手段及び表示手段が備えられるだけの構成でも構わない。例えば複数のノードのうち幾つかが画像処理計算用ではなく他の用途で使われるもので、他の用途のノード（計算機）のＣＰＵ使用率やメモリ空き容量から空きがあれば分散ボリュームレンダリング処理に利用する構成でも構わない。
【０１０２】
・  １つのノードが、要求手段、ノード割当手段、負荷割当手段、演算手段、連結手段及び表示制御手段のすべての機能を実現するプログラムを持つ必要はない。つまりノードのすべてがメインノードとなる機能を備えるのではなく、サブノードとなる機能のプログラムだけを持つノードが含まれていてもよい。サブノードは例えば演算手段の機能（ボリュームレンダリング演算機能）のプログラムを持つ。またサーバ機能を持つノードについては、要求手段の機能をプログラムから削除することができる。
【０１０３】
また、ボリュームレンダリング処理システムを構成する複数台のノードの中に、比較的負荷のかかるボリュームレンダリング演算はせず、画像表示などの比較的演算負荷の小さい処理だけを主に担当するノードが存在してもよい。すなわち、このノードは、入力手段、要求手段、ノード割当手段、負荷割当手段、連結手段および表示制御手段は備えるが、比較的負荷のかかる演算手段の機能は他のノード（割り当てノード）に任せる。具体的には、演算能力の低い計算機に端末機能を持たせ、ボリュームレンダリング画像の演算はネットワークを通じて他のノードに任せる形とする。例えば４次元以上の高次元ボリュームレンダリング処理をするにはノードに高い演算能力が要求されるが、ボリュームレンダリング演算を行わないノードであれば演算能力の低いパーソナルコンピュータ（ノートパソコン等）で済ませられ、比較的高価なワークステーションばかりを取り揃える必要がなくなる。なお、この例のノードは、図２における要求処理部１０、割当処理部１１、データ連結処理部１３、画像メモリ１５および表示制御部１６を備え、分散ボリュームレンダリング処理部１２およびボクセルデータ格納部１４は備えていない。また、要求処理部１０、割当処理部１１、データ連結処理部１３および表示制御部１６は、コンピュータにより実行されるプログラムにより実現される。
【０１０４】
さらにノード割当手段、負荷割当手段、連結手段も他のノードに任せ、他のノードで連結処理まで終わったボリュームレンダリング画像のデータを受信し、ボリュームレンダリング画像を表示手段に表示させる表示制御手段の機能だけを持つノード（端末ノード）が存在してもよい。つまり、この場合のノードは、入力手段、要求手段、表示制御手段を備えるが、ノード割当手段、負荷割当手段、演算手段、連結手段は他のノードが受け持つ。例えば連結手段はメインノードが受け持ち、このノードは、メインノードから受信したボリュームレンダリング画像データに基づき画像表示処理を行う。見かけ上は、この端末ノードとは別の、演算処理を受け持つ複数台のノードのうち一台がメインノードとなる。
【０１０５】
具体的には、この端末ノードは回転、縮小、オパシティ値の変更、色の変更などの表示指示をメインノードに送信する。このメインノードがノード割当ておよび負荷分割からデータ連結処理までを行い、得られた画像を端末ノードに送信する。端末ノードは受信した画像を表示する。この例の端末ノードは、図２における要求処理部１０と、画像メモリ１５と、表示制御部１６とを備え、割当処理部１１、分散ボリュームレンダリング処理部１２およびデータ連結処理部１３、ボクセルデータ格納部１４は備えていない。端末ノードでは、メインノードから受信したボリュームレンダリング画像データが画像メモリ１５に格納され、表示制御部１６はこの画像データを基に表示装置４の画面にボリュームレンダリング画像を表示させる。なお、要求処理部１０および表示制御部１６は、コンピュータにより実行されるプログラムにより実現される。
【０１０６】
・  サーバに対するボクセルデータの要求元はメインノードのみに限定されない。例えばサブノードが割り当てられたボクセルデータ（または分割ボクセルデータ）をサーバに対して個々に要求する方法を採用しても構わない。この場合、メインノードの要求処理部１０とサブノードの要求処理部１０とにより要求手段が構成される。
【０１０７】
・  ノード割当手段がノード割り当て時に各ノードの計算資源使用状況の情報を基に判断する「分散処理可能な余力」、「ノードの処理能力」とは、ノードのＣＰＵ余力およびメモリ空き容量のみを指標とする方法に限定されない（計算余力もＣＰＵ余力に限定されない）。要するに、計算能力の指標とデータ容量の指標の２種類の指標からノード割り当てを判断することを基本とし、各指標としてＣＰＵ余力とメモリ空き容量のみを用いることに限定されない。計算能力の指標はＣＰＵ以外にも計算処理する部分がある場合、例えばボリュームレンダリング専用拡張ボード上でも計算を行う場合はこれも考慮する。またデータ容量の指標は、通常のメモリのほかに専用拡張ボード上のメモリがある場合は、専用拡張ボード上のメモリのメモリ空き容量も考慮する。また同一ノード上で異なるメモリ構成を取る場合、メモリの種類の違いを考慮して指標とする。また、同一のボリュームレンダリング専用拡張ボードに専用演算チップと、専用メモリの両方がある場合、それらも指標として考慮する。さらに計算能力の指標として、例えばシステムバスの性能（帯域幅、クロック）を考慮する。システム バスは、ＣＰＵとその他のコンポーネント(メモリやビデオカードなど)を結ぶ重要なパイプで、大量の命令やデータをＣＰＵに送ったり、ＣＰＵが処理した結果をメモリやビデオカードなどに送り返す役割を果たし、計算能力に影響を与えるからである。
【０１０８】
計算能力の指標の算出方法としては以下の例が挙げられる。各ノードは、能力値ベクトルを持っており、能力値ベクトルの要素として考えられるものを以下に列挙する。ベクトルの個々の要素はそれぞれ相対的な値を持つ。なお、以下の(3)，(7)，(12)，(1 5)はノード割り当て時にその都度計測の必要がある。
(1)ＣＰＵクロック
(2)ＣＰＵキャッシュ容量
(3)ＣＰＵ未使用率（＝１−ＣＰＵ使用率）
(4)システムバス帯域幅
(5)システムバスクロック
(6)専用拡張ボード演算処理部クロック
(7)専用拡張ボード演算処理部未使用率（＝１−ボード使用率）
(8)拡張ボードとシステム間のバス帯域幅
(9)拡張ボードとシステム間のバスクロック
(10)メモリ総容量
(11)メモリの動作クロック
(12)メモリ空き容量
(13)専用拡張ボードの総メモリ容量
(14)専用拡張ボードのメモリの動作クロック
(15)専用拡張ボードのメモリ空き容量
ここで、能力値ベクトルを入力とし、スカラー値を出力する関数を定義すれば、計算能力の指標を得ることができる。例えばスカラー値を出力する関数の例を以下に示す。なお、以下の関数式において（  ）内に示す各要素の数値は、機種間の相違を考慮した相対値で表している。また（  ）の前の乗算値は各要素の重み付け値である。
【０１０９】
（Ａ） 計算能力の指標（計算余力）＝[35*(40:CPUクロック)＋10*(10:CPUキャッシュ容量) ]*(0.70:CPU未使用率)＋15*(20:システムバス帯域幅)＋10*(30:システムバスクロック)＋[17.5*(50:専用拡張ボード演算処理部クロック) ]*(0.65:専用拡張ボード演算処理部未使用率)＋5*(70:拡張ボードとシステム間のバス帯域幅)＋7.5*(60:拡張ボードとシステム間のバスクロック)
（Ｂ）データ容量の指標（保持可能データ余力）＝5*(70:システムバス帯域幅)＋ 5*(40:システムバスクロック)＋[ 70*(10:メモリ総容量) ＋ 5*(3:メモリの動作クロック)]*(0.55:メモリ空き容量)＋ [ 5*(30:専用拡張ボードのメモリの動作クロック)＋ 10*(20:専用拡張ボードの総メモリ容量) ] * (0.35:専用拡張ボードのメモリ空き容量)
なお、上記(1)〜(15)の要素は全て採用する必要はもちろんなく、必要に応じて適宜選択することができるが、ＣＰＵ余力（例えばCPU未使用率）とメモリ空き容量は必須とすることが好ましい。
【０１１０】
・  ノード割り当てをする際に、通信オーバーヘッドを考慮してもよい。例えば通信オーバーヘッドは、データ容量が小さい場合は複数ノードで分散処理するよりも、一台のノードで行う方が効率的であることを判断する条件の1つになる。データ分割モードではノード割り当てをせざるを得ないが、データコピーモードおよび混合モードでは、通信オーバーヘッドが大きいと判断されれば同一データ（同一分割データを含む）を複数ノードに割り当てることはせず一台のノードのみ割り当てるか、ノード割り当て数を通常より減らすようにする。このように構成すれば、通信オーバーヘッドに起因する画像処理速度の低下を防ぐことができる。
【０１１１】
・  メインノード数が変化したときに動的負荷割り当て内容を見直す制御方法を採用したが、動的負荷割り当て内容の見直し時期は特にメインノード数変化時に限らない。例えば所定時間（例えば数１００ミリ秒〜数秒）ごとに動的負荷割り当て内容の見直しを行ってもよい。
【０１１２】
・  各割り当てノードへのボクセルデータ（分割ボクセルデータを含む）のサーバへの転送要求は、メインノードがサーバに対して一括的に行うことに限定されない。例えばメインノードがサブノードに対して割当負荷の情報を伝え、各ノードがそれぞれサーバに対し自分が使うボクセルデータ（分割ボクセルデータを含む）を個々に要求するシステム構成を採用することもできる。さらにメインノードから１つのサブノードに対し各割り当てノード分すべての割当負荷の情報を伝え、そのサブノードがサーバに対し各割り当てノード分すべてのボクセルデータ（分割ボクセルデータを含む）を一括要求するシステム構成を採用することもできる。つまりノードは、ボクセルデータをサーバに対して一括要求する要求手段を必ずしも持つ必要はなく、他ノードが一括要求したボクセルデータ（分割ボクセルデータを含む）を受け付けるだけの構成であっても構わない。
【０１１３】
・  ４次元（４Ｄ）以上のボリュームレンダリング処理においては、複数のノードに動的に負荷を割り当てる際の負荷分割方法は前記実施形態の方法に限定されない。次元に応じた負荷分割方法を採用できる。４Ｄ処理の具体例を以下に示す。
４Ｄ処理は３Ｄ処理を時系列方向に繰り返す。データコピーモード、分割モード、混合モードのいずれも採用できる。但し、データの分割は、３Ｄ処理の場合は空間的な分割であったが、４Ｄ処理の場合は空間的な分割とともに時系列方向の分割も含まれる。例えば、「300スライス×10フェーズ（時刻）＝計3000スライス」のような４Ｄデータ、計算ノード２台（同等の能力）があったとする。計算ノード1がメインノードとする。
(1)時間コピーモード
計算ノード1,2 に全データをコピーする。メインノード（ノード1）は時刻1を計算しながら、ノード2に時刻2のデータの分散処理要求を出す。ノード1の演算結果に基づき時刻1の画像を表示手段に表示した後、ノード2の演算結果に基づき時刻2の画像を表示する。
(2)時間分割モード
計算ノード1 に「時刻1,3,5,7,9」、計算ノード2 に「時刻2,4,6,8,10」を分担させる。各計算ノードに全てのデータをコピーすることがベストだが、ストレージ容量の都合により、時刻別に半分の容量ずつ重複しないように割り当てるとする。各ノードに割り当てる時刻は割り当て手段が決定する（この例では交互の時刻）。
(3)時間混合モード
(1),(2)の組み合わせ
(4)時間＆空間分割ノード
時間分割と空間分割（空間分割モード、空間混合モード）を組み合わせる負荷分担方法も採用できる。現実的には４Ｄデータの分割は、同時刻では空間的に分割せず、異なる時刻をそれぞれ別のノードに振り分ける時間的な分割のみを行う場合が多いと考えられるが、時間的な分割に加え同時刻のデータを重複しないように別々のノードに空間的にも分割する方法も採用できる。
【０１１４】
従って、これらの方法の採用により、３Ｄ処理よりも扱うデータ容量が大きい４Ｄ処理において、時系列方向に分割して協調分散処理を行うことで、空間的な分割のみ採用する場合に比べ、システムの処理能力をより効果的に向上させることができる。よって、４Ｄデータのボリュームレンダリング処理の需要が増えつつある医療業界で、従来技術よりも著しい性能差が出る。
【０１１５】
前記実施形態及び別例から把握できる技術的思想を、以下に記載する。
（１）請求項１〜４のいずれか一項の発明において、前記サーバは前記複数のノードとは別に設けられ、三次元以上のボクセルデータを記憶するサーバと、前記サーバからボクセルデータを受け付けてボリュームレンダリング処理を行う複数のノードとによってコンピュータネットワークが構築されたボリュームレンダリング処理システムであることを特徴とする。この構成であれば、サーバがデータを保管することで、ノードの計算資源をデータの計算処理のためにより多く活用でき、一層の高速処理に対応できる。
【０１１６】
（２）請求項１〜４のいずれか一項の発明において、前記サーバは前記複数のノードのうち少なくとも一つが兼ねていることを特徴とする。この構成であれば、サーバ機能を持つノードからも表示対象指定による表示要求を出してその表示手段に協調分散処理結果の画像（ボリュームレンダリング画像）を表示させることができる。
【０１１７】
（３）請求項１〜４のいずれか一項に記載の発明において、前記複数のノードのうち少なくとも二つは、前記入力手段、前記要求手段、前記ノード割当手段、前記負荷割当手段、前記演算手段、前記連結手段及び表示制御手段をそれぞれ備え、表示手段に画像を表示可能な表示対象指定元のメインノードとなり得るノードであることを特徴とする。この構成によれば、複数のノードのうち各手段のすべてを備える少なくとも二つのノードは、ボリュームレンダリング画像を見ることが可能なメインノードにも、分散処理（分散ボリュームレンダリング処理）でメインノードを支援するサブノードにもなり得る。よって、ユーザーは少なくとも二つ（二つ以上）のどのノードからも、入力手段で指定したボクセルデータのボリュームレンダリング画像を表示手段を通して見ることができる。
【０１１８】
（４）前記技術的思想（３）において、前記複数のノードのすべてが前記メインノードとなり得るノードである。この構成によれば、各ノードはサブノード、メインノードに必要な機能を全て持っており、役割に応じてサブノード、メインノードと切り替わるので、どのノードもメインノードに成り得る。よって、どのノードからもボリュームレンダリング画像を見ることができる。
【０１１９】
（５）請求項１〜４及び技術的思想（１）〜（４）のいずれかにおいて、前記ノード割当手段は、ノード割り当て条件として前記計算資源使用状況以外に通信オーバーヘッドを考慮し、計算資源使用状況から決まるノード数では通信オーバーヘッドが大きいと判断したときには、前記表示対象指定元となるメインノードを含む割り当てノード数を、前記計算資源使用状況から決まるノード数より少なく設定し、前記負荷割当手段は、前記割り当てノードに対し当該割り当てノード数に応じた負荷割り当てを行うことを特徴とする。
【０１２０】
（６）請求項１〜４及び技術的思想（１）〜（５）のいずれかにおいて、前記ノード割当手段は、前記表示対象指定元となるメインノードの処理能力で足りると判断すれば他のノードに割り当てをせず当該メインノード単独で割り当て、前記負荷割当手段は、当該メインノードにのみ前記表示対象のボクセルデータとボリュームレンダリング処理を割り当て、当該メインノードの前記演算手段が前記表示対象のボクセルデータに対するボリュームレンダリング処理を単独で実行することを特徴とする。この構成によれば、メインノードの処理能力で足りると判断すればメインノード単独でボクセルデータに対するボリュームレンダリング処理が行われる。そして、ノード割当手段は、メインノードの処理能力では足りないと判断したときに他のノードをも割り当て、各割り当てノードにより協調分散処理が行われる。
【０１２１】
（７）請求項１〜４及び技術的思想（１）〜（６）のいずれかにおいて、前記表示対象指定元となるメインノードから入力手段により指定されて前記サーバに要求されたボクセルデータのうち少なくとも割り当てるべきデータを既にローカルストレージに持つ割り当てノードに対しては、前記サーバはその割り当てデータを送信することはせず、当該割り当てノードにおける前記演算手段は前記ローカルストレージに持つデータを用いて当該データに対するボリュームレンダリング処理を実行することを特徴とする。この構成によれば、サーバから割り当てノードへのデータ送信時間を省け一層の高速処理に対応できる。
【０１２２】
（８）請求項１〜４及び技術的思想（１）〜（７）のいずれかにおいて、前記負荷割当手段は、前記ノード割当手段により割り当てられた各ノードに対し各々の処理能力に応じて前記表示対象のボクセルデータと該ボクセルデータに施すボリュームレンダリング処理とのうち少なくとも一方の分割割合を決定して動的負荷割り当てを行うことを特徴とする。
【０１２３】
（９）請求項１〜４及び技術的思想（１）〜（８）のいずれかにおいて、前記負荷割当手段は、前記ノード割当手段により割り当てられた各ノードの処理能力に応じて、前記表示対象のボクセルデータに施すべき計算処理のみの分割割合を決定するデータコピーモードと、前記表示対象のボクセルデータのみの分割割合を決定するデータ分割モードと、前記表示対象のボクセルデータと該ボクセルデータに施すべき計算処理との両方の分割割合を決定する混合モードとの中から一つを選択することを特徴とする。この構成によれば、ノードの計算資源を一層効率よく活用できボリュームレンダリング処理を高速に実行できる。
【０１２４】
（１０）請求項１〜４及び技術的思想（１）〜（９）のいずれかにおいて、前記表示対象指定元のメインノードは、他のノードとの通信によって各ノードの計算資源利用状況の情報を取得しており、前記ノード割当手段は前記各ノードの計算資源利用状況の情報に基づいて当該各ノードの処理能力を判断して処理能力上必要な空きのあるノードを選択してノード割り当てを行い、前記負荷割当手段は、前記各割り当てノードの計算資源利用状況の情報に基づいて当該各割り当てノードの処理能力を判断して処理能力上の空きに応じてボクセルデータとボリュームレンダリング処理との少なくとも一方の分割割合を決定して動的負荷割り当てを行うことを特徴とする。
【０１２５】
（１１）請求項１〜４及び技術的思想（８）〜（１０）のいずれかにおいて、前記要求手段は、前記ノード割当手段によるノード割当情報と、前記負荷割当手段による負荷割当情報とを前記サーバに要求として送り、前記サーバは前記ノード割当情報で指定された割り当てノードに対し、前記負荷割当情報で指定された割合でデータ分割された分割ボクセルデータ又はボクセルデータをそのまま送ることを特徴とする。
【０１２６】
（１２）前記技術的思想（１１）において、前記各割り当てノードの演算手段は、前記サーバから取得した分割ボクセルデータ又はボクセルデータに対し前記表示対象指定元となるメインノードから得た負荷割当情報で指定された計算負荷の計算処理を実行することを特徴とする。
【０１２７】
（１３）請求項１〜４及び技術的思想（１）〜（１２）のいずれかにおいて、前記負荷割当手段は、予め通信で情報として得た各ノードの処理能力に応じて、前記各割り当てノードのメモリ空き容量に応じてデータ容量負荷を決定するとともにＣＰＵ空き容量に応じて計算負荷を決定して動的負荷割り当てを行うことを特徴とする。この場合、複数のノード（計算機）が動的にデータ容量負荷と計算負荷を分担しながら協調分散処理を行うことにより、請求項１の発明と同様の効果が得られる。
【０１２８】
（１４）請求項１〜４及び技術的思想（１）〜（１３）のいずれかにおいて、前記表示対象指定元となるメインノードの数に変更があると、前記ノード割当手段はノードの割り当てをし直すとともに、前記負荷割当手段は割り当てノードに対する動的負荷割り当てをし直すことを特徴とする。この構成によればメインノードの数に変更があったときにノード割り当てと動的負荷割り当ての見直しが図られるので、他ノードの処理を妨げず計算資源を有効に活用でき、ボクセルデータに施すボリュームレンダリング処理を高速に実行できる。
【０１２９】
（１５）請求項１〜３のいずれか一項の発明において、前記ノード割当手段は、計算能力の指標とデータ容量の指標に基づいてノード割当を行う。
（１６）前記技術的思想（５）〜（１５）のいずれかにおける前記ノード割当手段及び前記負荷割当手段を備える請求項６に記載の計算機。
【０１３０】
（１７）請求項１〜７及び技術的思想（１１），（１２）のいずれかに記載の分散処理システムにおいて使用されるサーバであって、前記表示対象指定元となるメインノードからノード割当情報及びデータ分割割当情報と共にボクセルデータの要求を受け付けると、前記割り当てノードに対しデータ分割割当情報から決まる分割ボクセルデータを送信することを特徴とするサーバ。
【０１３１】
（１８）請求項１０に記載のボリュームレンダリング処理方法において、コンピュータの前記ノード割当手段は、前記ノードを割り当てる段階において、前記表示対象指定元となるメインノードの処理能力で足りると判断すれば他のノードに割り当てをせず当該メインノード単独で割り当て、コンピュータの負荷割当手段は前記動的負荷割り当てを行う段階において当該メインノードにのみボクセルデータとボリュームレンダリング処理を割り当て、当該メインノードを構成するコンピュータの前記演算手段は単独で前記表示対象のボクセルデータに対するボリュームレンダリング処理を実行することを特徴とする。
【０１３２】
（１９）請求項１０に記載のボリュームレンダリング処理方法において、前記表示対象指定元となるメインノードから入力手段により指定されて前記サーバに要求されたボクセルデータのうち少なくとも割り当てるべきデータを既にローカルストレージに持つ割り当てノードに対しては、前記サーバはその割り当てデータを送信することはせず、当該割り当てノードにおけるコンピュータの前記演算手段は前記ローカルストレージに持つデータを用いて当該データに対するボリュームレンダリング処理を実行することを特徴とする。この方法によれば、割り当てノードが既にローカルストレージに必要なボクセルデータを持つ場合は、サーバから割り当てノードへのデータ送信時間を省け一層の高速処理に対応できる。
【図面の簡単な説明】
【０１３３】
【図１】一実施形態におけるボリュームレンダリング処理システムのブロック図。
【図２】ボリュームレンダリング処理システムの機能ブロック図。
【図３】計算負荷割り当て手法の説明図。
【図４】協調分散処理システムの特徴的な作動状況を説明する説明図。
【図５】協調分散処理システムの特徴的な作動状況を説明する説明図。
【図６】ノード割り当ておよび負荷割り当ての変更処理の説明図。
【図７】ノード割り当ておよび負荷割り当ての変更処理の説明図。
【図８】（ａ）「平行投影法」、（ｂ）「透視投影法」を示す説明図。
【図９】ボリュームレンダリング処理を説明するブロック図。
【図１０】（ａ）データ分割、（ｂ）は計算負荷分割の説明図。
【図１１】計算分割時のボリュームレンダリング処理を説明するブロック図。
【図１２】ボクセルデータ分割の説明図。
【図１３】（ａ）〜（ｃ）データコピーモードにおける計算負荷割当の説明図。
【図１４】データ分割モードにおけるデータ分割の説明図。
【図１５】混合モードにおけるデータ分割および計算分割の説明図。
【図１６】従来技術における画像処理システムのブロック図。
【図１７】従来技術における画像処理用ネットワークシステムのブロック図。
【図１８】同じくブロック図。
【符号の説明】
【０１３４】
１…ボリュームレンダリング処理システムとしての協調分散処理システム、２…サーバとしてのストレージサーバー、３…ノード（計算機）、４…表示手段としての表示装置、５…入力手段としての入力装置、１０…要求手段としての要求処理部、１２…演算手段としての分散ボリュームレンダリング処理部、１３…連結手段としてのデータ連結処理部、１６…表示制御手段としての表示制御部、１７…ノード割当手段としてのノード割当部、１８…負荷割当手段としての負荷割当部、２０…データ分割割当部、２１…計算分割割当部、ＶＤ…ボクセルデータ、ＶＤ１，ＶＤ２…分割ボクセルデータ。
【図１】
2007244887.tif 000005
【図２】
2007244887.tif 000006
【図３】
2007244887.tif 000007
【図４】
2007244887.tif 000008
【図５】
2007244887.tif 000009
【図６】
2007244887.tif 000010
【図７】
2007244887.tif 000011
【図８】
2007244887.tif 000012
【図９】
2007244887.tif 000013
【図１０】
2007244887.tif 000014
【図１１】
2007244887.tif 000015
【図１２】
2007244887.tif 000016
【図１３】
2007244887.tif 000017
【図１４】
2007244887.tif 000018
【図１５】
2007244887.tif 000019
【図１６】
2007244887.tif 000020
【図１７】
2007244887.tif 000021
【図１８】
2007244887.tif 000022