(57)【要約】【課題】各計算資源を有効に使い、ジョブ処理を従来よりもスピードアップさせることのできる画像処理システムを提供する。【解決手段】ネットワーク接続された複数のノードを有し、物体のボリュームデータを用いて３次元構造のイメージを直接描画するためジョブ依頼側のコンピュータにおいて、ボリュームデータを用いた画像処理のうち依頼すべき各々から複数のジョブを切り出すジョブ切り出し手段と、複数の各ノードの現在の負荷状況、過去の実績、ノードのステータス・スペック、ネットワーク上の距離の１つ以上から成る計算資源量を監視するノード計算資源量監視手段と、ノード計算資源量監視手段の取得した情報を基に、ジョブ依頼をするノードを選択するノード選択手段と、ノード選択手段によって選択されたノードに対してジョブ切り出し手段から切り出されたジョブの実行依頼を送信する手段とを備えた。【選択図】  図１
2006031358.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク接続された複数のノードを有して、ＣＴ等から得られる物体のボリュームデータを用いて３次元構造のイメージを直接描画する画像処理システムであって、
ジョブ依頼側のコンピュータ群の少なくとも１つにおいて、
ボリュームデータを用いた手持ちの画像処理のうち依頼すべき各々から複数のジョブを切り出すジョブ切り出し手段と、
前記複数の各ノードの現在の負荷状況、過去の実績、ノードのステータス・スペック、ネットワーク上の距離の１つ以上から成る計算資源量を監視するノード計算資源量監視手段と、
前記ノード計算資源量監視手段の取得した情報を基に、ジョブ依頼をするノードを１つ又は複数個選択するノード選択手段と、
前記ノード選択手段によって選択された１つ又は複数個のノードに対して、前記ジョブ切り出し手段から切り出されたジョブの実行依頼を送信する手段と、
を備えたことを特徴とするボリュームデータ使用の画像処理システム。
【請求項２】
前記切り出されたジョブの各々の優先度を決定するジョブ優先度決定手段と、
前記ノード計算資源量監視手段の取得した情報を基に、各ノードの現在の演算能力の順位を決定する演算能力順位決定手段と、
を備え、
前記ノード選択手段は、前記演算能力順位決定手段によって決定された順序でノードを１個又は複数個選択し、前記ジョブ優先度決定手段によって決定されたジョブ優先順に従って各ジョブの実行を前記選択された１個又は複数個のノードに対して割り当てていくことを特徴とする請求項１記載のボリュームデータ使用の画像処理システム。
【請求項３】
前記ジョブの実行の割り当てはクライアントがデータを選択して処理開始する毎に動的に行うようにすることを特徴とする請求項１又は２記載のボリュームデータ使用の画像処理システム。
【請求項４】
前記ジョブの実行の割り当てはクライアントが命令したときだけ開始するようにしたことを特徴とする請求項１又は２記載のボリュームデータ使用の画像処理システム。
【請求項５】
前記ジョブは前もって予約できることを特徴とする請求項３又は４記載のボリュームデータ使用の画像処理システム。
【請求項６】
１つのノードに対して複数のジョブを予約し、前記ジョブは優先順位情報を保有しており、優先順に自動的に処理開始させるようにしたことを特徴とする請求項５記載のボリュームデータ使用の画像処理システム。
【請求項７】
前記１つのノードが複数のジョブを受け取った場合は、当該ジョブの優先順位はノード側が変更できるようにしたことを特徴とする請求項６記載のボリュームデータ使用の画像処理システム。
【請求項８】
１つのノードに対して複数のジョブを予約し、該複数の命令を並列処理させるようにしたことを特徴とする請求項５記載のボリュームデータ使用の画像処理システム。
【請求項９】
前記ノードが複数の命令を順番に開始し、ジョブ処理の途中経過および処理終了をその都度クライアントに通知させるようにしたことを特徴とする請求項１〜８のいずれか１項記載のボリュームデータ使用の画像処理システム。
【請求項１０】
前記ノード割り当ての制御は、当該クライアントの他に他の計算ノードの１つ又は複数個も分担することができるようにしたことを特徴とする請求項１〜９のいずれか１項記載のボリュームデータ使用の画像処理システム。
【請求項１１】
各計算ノードの稼働状況をクライアント側のディスプレー画面に表示してユーザが視認できるようにしたことを特徴とする請求項１〜１０のいずれか１項記載のボリュームデータ使用の画像処理システム。
【請求項１２】
前記計算の割り当てを途中で変更・休止・中止を動的に行えるようにしたことを特徴とする請求項１〜１１のいずれか１項記載のボリュームデータ使用の画像処理システム。
【請求項１３】
前記送信手段は、前記ジョブの実行依頼を複数のノードに対して送信し、
前記送信されたジョブを最も早く処理完了したノードからの前記ジョブの処理結果を受け取って、該処理結果を検証する手段と、
前記最も早く処理完了したノードを除く前記他のノード群に対して、ジョブの実行中止指令を送信する手段と、を備えたことを特徴とする請求項１〜１２のいずれか１項記載のボリュームデータ使用の画像処理システム。
【請求項１４】
前記送信されたジョブを処理している各ノードのジョブ処理の経過情報を取得する手段と、
前記ノード計算資源量監視手段の取得した情報を基に、ジョブを処理しているノードの１つ以上に対して、ジョブの実行中止指令を送信する手段と、
を備えたことを特徴とする請求項１〜１２のいずれか１項記載のボリュームデータ使用の画像処理システム。
【請求項１５】
前記ボリュームデータ使用の画像処理は、ボリュームレンダリング処理、領域抽出処理、フィルタ処理、雑音除去処理、画像合成処理、流量計算処理、逆投影処理、投影処理、ジオメトリ変換処理のいずれか１つ以上であることを特徴とする請求項１〜１４のいずれか１項記載のボリュームデータ使用の画像処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ボリュームデータ使用の画像処理の構成に係り、特に、ネットワークに接続された複数のコンピュータを使用して、ボリュームレンダリング画像処理や領域抽出処理等を行う画像処理システムに関する。
【背景技術】
【０００２】
コンピュータを用いた画像処理技術の進展により、人体の内部構造を直接観測することを可能にしたＣＴ（Computed Tomography）、ＭＲＩ（Magnetic Resonance Imaging）の出現は、医療分野に革新をもたらした技術であり、生体の断層画像を用いた医療診断が広く行われている。さらに近年は、断層画像だけでは分かり難い複雑な人体内部の３次元構造を可視化する技術として、例えば、ＣＴ等から得られる物体の３次元デジタルデータから、該データに対応する３次元構造のイメージを直接描画する処理（特にボリュームレンダリングと呼ばれる画像処理）の技術が普及し、医療診断に使用されている。
【０００３】
従来、ボリュームレンダリングの優れた手法として、レイキャスティングが周知である。このレイキャスティングは、仮想始点から物体に対して仮想光線（レイ）を照射し、物体内部からの仮想反射光の画像を仮想投影面に形成することにより、物体内部の３次元構造を透視するイメージ画像を形成する手法である。レイキャスティングについては、例えば、後述する非特許文献１に基本的な理論が述べられている。
【０００４】
ここで、レイキャスティングについて簡単に説明する。
物体の３次元領域の構成単位となる微小単位領域をボクセルと称し、ボクセルの濃度値等の特性を表す固有のデータをボクセル値と称する。物体全体はボクセル値の３次元配列であるボクセルデータで表現される。通常、ＣＴ等により得られる２次元の断層画像データを断層面に垂直な方向に沿って積層し、必要な補間を行うことにより３次元配列のボクセルデータが得られる。
【０００５】
仮想始点から物体に対して照射された仮想光線に対する仮想反射光は、ボクセル値に対して人為的に設定される不透明度（オパシティ値）に応じて生ずるものとする。さらに、仮想的な表面を立体的に陰影付けするために、ボクセルデータのグラディエントすなわち法線ベクトルを求め、仮想光線と法線ベクトルのなす角の余弦から陰影付けのシェーディング係数を計算する。仮想反射光は、ボクセルに照射される仮想光線の強度にボクセルの不透明度とシェーディング係数を乗じて算出される。仮想反射光を仮想光線に沿って積算し、仮想投影面上のすべての座標点について仮想反射光を計算することにより仮想的な３次元イメージの透視画像が形成される。以上の計算を以下では「ボリュームレンダリング処理」と呼ぶことにする。
【０００６】
このようにして得られるボリュームレンダリング画像は、対象ボクセルデータに対して多数のボリュームレンダリング・パラメータを用いて描画される３次元カラー画像である。
ボリュームレンダリング・パラメータには、拡大率、角度、位置等の表示制御情報、色指定情報、ボクセル値とオパシテイ値の対応情報、シェーディング情報、画像フィルタ、画像合成方法、レンダリング手段、光源、時系列及び位相情報、投影方法、表示領域情報、抽出領域情報等が含まれる。これらの情報を以下では「付加情報」と呼ぶことにする。
【０００７】
実際の医療診断においては、医療画像処理システムのユーザは、対象とするボクセルデータに対してボリュームレンダリング・パラメータ（付加情報）の設定を次々と更新しながら、様々な視点からボリュームレンダリング画像を観測していく。例えば、診断対象により適切なオパシティ値が異なるため、ユーザはボクセルデータごとにオパシティ値の設定を行う。また、患部等の注目領域を観察し易いように、観察の邪魔となる周辺組織を除去したり、組織に適切な色を設定したりする。
【０００８】
その他、ユーザは様々な煩雑な作業を行いパラメータを設定する必要がある。適切なパラメータを設定し、診断目的を満たすボリュームレンダリング画像が得られれば、編集作業を終了する。
従来は、貯蔵、計算、表示といったボリュームレンダリングによる画像処理の全工程を、１つ以上のコンピュータで行っており、特に、複数のコンピュータで行う場合は、主として、膨大な計算を必要とする計算資源の分散、並列処理をめぐって様々な工夫がなされている。
また、ボリュームレンダリングによる画像処理の全工程を、複数のコンピュータに分散させる方式も種々提案されている（例えば、特許文献１参照。）。
【０００９】
【特許文献１】特開２００３−２３３６００号公報
【非特許文献１】「Ｉｎｔｒｏｄｕｃｔｉｏｎ  Ｔｏ  Ｖｏｌｕｍｅ  Ｒｅｎｄｅｒｉｎｇ」、Ｂａｒｔｈｏｌｄ  Ｌｉｃｈｔｅｎｂｅｌｔ、Ｒａｎｄｙ  Ｃｒａｎｅ、Ｓｈａｚ  Ｎａｑｖｉ共著、Ｈｅｗｌｅｔｔ−Ｐａｃｋａｒｄ  Ｐｒｏｆｅｓｓｉｏｎａｌ  Ｂｏｏｋｓ（１９９８年発行）
【発明の開示】
【発明が解決しようとする課題】
【００１０】
ところが、大規模な計算が必要であるボリュームレンダリング（画像処理ジョブ）を高精度、リアルタイムで処理するには全計算を１台のコンピュータの計算資源で行うには限度がある。そこで、従来のボリュームレンダリング画像処理システムにあっては、前述のとおり、計算資源の分散、並列処理を行う工夫がなされている。
このように複数のコンピュータを使用する場合、ボリュームレンダリング等の処理を事前に適当なジョブ（負荷）に区分けして、前記複数のコンピュータに平等に分散処理させることが考えられるが、これでは、計算資源を有効に使えず、ジョブ処理が遅れる原因となることが判った。
すなわち、コンピュータにも演算速度の違い存在しており、また、コンピュータには整数演算や浮動小数点演算等の要求される計算の種別による計算処理の得意不得意、ネットワーク性能の高低、また、同じボリュームデータを扱ったことのあるコンピュータであるため、そのコンピュータを使用すれば再転送の手間が要らない、既に、他の計算を実行しているなどの負荷情報等のそのコンピュータの状態による、その時点におけるコンピュータの特性の違いが存在する。
【００１１】
そこで、本発明はこれらの課題を解決するもので、複数のコンピュータ（ノード）に平等にジョブを割り振るのではなくて、各コンピュータ（ノード）の現在の負荷状況、過去の実績等を考慮して適正にジョブを割り振ることによって、各計算資源を有効に使い、ジョブ処理を従来よりもスピードアップさせることのできる画像処理システムを提供することを目的としている。
【課題を解決するための手段】
【００１２】
上記課題を解決するため、請求項１記載のボリュームデータ使用の画像処理システムの発明は、ネットワーク接続された複数のノードを有して、ＣＴ等から得られる物体のボリュームデータを用いて３次元構造のイメージを直接描画する画像処理システムであって、ジョブ依頼側のコンピュータ群の少なくとも１つにおいて、ボリュームデータを用いた手持ちの画像処理のうち依頼すべき各々から複数のジョブを切り出すジョブ切り出し手段と、前記複数の各ノードの現在の負荷状況、過去の実績、ノードのステータス・スペック、ネットワーク上の距離の１つ以上から成る計算資源量を監視するノード計算資源量監視手段と、前記ノード計算資源量監視手段の取得した情報を基に、ジョブ依頼をするノードを１つ又は複数個選択するノード選択手段と、前記ノード選択手段によって選択された１つ又は複数個のノードに対して、前記ジョブ切り出し手段から切り出されたジョブの実行依頼を送信する手段と、を備えたことを特徴としている。
【００１３】
請求項２記載の発明は、請求項１記載のボリュームデータ使用の画像処理システムにおいて、前記切り出されたジョブの各々の優先度を決定するジョブ優先度決定手段と、前記ノード計算資源量監視手段の取得した情報を基に、各ノードの現在の演算能力の順位を決定する演算能力順位決定手段と、を備え、前記ノード選択手段は、前記演算能力順位決定手段によって決定された順序でノードを１個又は複数個選択し、前記ジョブ優先度決定手段によって決定されたジョブ優先順に従って各ジョブの実行を前記選択された１個又は複数個のノードに対して割り当てていくことを特徴としている。
【００１４】
請求項３記載の発明は、請求項１又は２記載のボリュームデータ使用の画像処理システムにおいて、前記ジョブの実行の割り当てはクライアントがデータを選択して処理開始する毎に動的に行うようにすることを特徴としている。
【００１５】
請求項４記載の発明は、請求項１又は２記載のボリュームデータ使用の画像処理システムにおいて、前記ジョブの実行の割り当てはクライアントが命令したときだけ開始するようにしたことを特徴としている。
【００１６】
請求項５記載の発明は、請求項３又は４記載のボリュームデータ使用の画像処理システムにおいて、前記ジョブが前もって予約できることを特徴としている。
【００１７】
請求項６記載の発明は、請求項５記載のボリュームデータ使用の画像処理システムにおいて、１つのノードに対して複数のジョブを予約し、前記ジョブは優先順位情報を保有しており、優先順に自動的に処理開始させるようにしたことを特徴としている。
【００１８】
請求項７記載の発明は、請求項６記載のボリュームデータ使用の画像処理システムにおいて、前記１つのノードが複数のジョブを受け取った場合は、当該ジョブの優先順位はノード側が変更できるようにしたことを特徴としている。
【００１９】
請求項８記載の発明は、請求項５記載のボリュームデータ使用の画像処理システムにおいて、１つのノードに対して複数のジョブを予約し、該複数の命令を並列処理させるようにしたことを特徴としている。
【００２０】
請求項９記載の発明は、請求項１〜８のいずれか１項記載のボリュームデータ使用の画像処理システムにおいて、前記ノードが複数の命令を順番に開始し、ジョブ処理の途中経過および処理終了をその都度クライアントに通知させるようにしたことを特徴としている。
【００２１】
請求項１０記載の発明は、請求項１〜９のいずれか１項記載のボリュームデータ使用の画像処理システムにおいて、前記ノード割り当ての制御が、当該クライアントの他に他の計算ノードの１つ又は複数個も分担することができるようにしたことを特徴としている。
【００２２】
請求項１１記載の発明は、請求項１〜１０のいずれか１項記載のボリュームデータ使用の画像処理システムにおいて、各計算ノードの稼働状況をクライアント側のディスプレー画面に表示してユーザが視認できるようにしたことを特徴としている。
【００２３】
請求項１２記載の発明は、請求項１〜１１のいずれか１項記載のボリュームデータ使用の画像処理システムにおいて、前記計算の割り当てを途中で変更・休止・中止を動的に行えるようにしたことを特徴としている。
【００２４】
請求項１３記載の発明は、請求項１〜１２のいずれか１項記載のボリュームデータ使用の画像処理システムにおいて、前記送信手段が、前記ジョブの実行依頼を複数のノードに対して送信し、前記送信されたジョブを最も早く処理完了したノードからの前記ジョブの処理結果を受け取って、該処理結果を検証する手段と、
前記最も早く処理完了したノードを除く前記他のノード群に対して、ジョブの実行中止指令を送信する手段と、を備えたことを特徴としている。
【００２５】
請求項１４記載の発明は、請求項１〜１２のいずれか１項記載のボリュームデータ使用の画像処理システムにおいて、前記送信されたジョブを処理している各ノードのジョブ処理の経過情報を取得する手段と、前記ノード計算資源量監視手段の取得した情報を基に、ジョブを処理しているノードの１つ以上に対して、ジョブの実行中止指令を送信する手段と、を備えたことを特徴としている。
【００２６】
請求項１５記載の発明は、請求項１〜１４のいずれか１項記載のボリュームデータ使用の画像処理システムにおいて、前記ボリュームデータ使用の画像処理が、ボリュームレンダリング処理、領域抽出処理、フィルタ処理、雑音除去処理、画像合成処理、流量計算処理、逆投影処理、投影処理、ジオメトリ変換処理のいずれか１つ以上であることを特徴としている。
【発明の効果】
【００２７】
以上説明したように、本発明のボリュームレンダリング画像処理システムによれば、平等に画像処理ジョブを割り振るのではなくて、各ノードの負荷状況等を見ながら、複数の計算ノードのうちどのノードを使い、どのノードを使わないかを決め、さらに、どのノードにはどのようなジョブの実行依頼をするか、他のノードにはどのようなジョブの実行依頼を個々に決めるようにするものである。
このようにすることにより、ネットワーク内の複数の計算資源のうち、現在活用できるもののみ抽出し、しかもその負荷状況に応じて重い演算をさせたり、軽い演算にしておいたり、さらに、現在計算能力の十分にあるノードが複数個存在している場合に、ジョブを分割して複数台に分散処理させるのではなくて（ジョブの分割、再結合に時間がかかり過ぎる場合がある。）、選択された複数個の計算ノードに対して同じジョブの実行依頼をして競争させ、最先に得られた計算結果を採用し、これと同時に計算途中の他の計算ノードに対してジョブ中止の命令を出すようにすることでさらに計算スピードをアップさせるものである。
手持ちのボリュームレンダリング処理を小口のジョブに切り分け、前記ジョブ毎に、ネットワーク内の複数のコンピュータ（自己と同格のジョブ依頼資格を有するコンピュータを含む）に対して、同じジョブを割り当てて処理させ、かつ最も早く処理できたノードの処理結果を受信できるので、手持ちのボリュームレンダリング処理の処理時間を、全体として大幅に短縮できるボリュームレンダリング画像処理システムを提供することができる。
【００２８】
データベースの分野ではデータ処理のジョブをあるコンピュータに発してから答えが返ってくるまでどれくらい時間がかかるかは、発行したジョブが例えばデータの検索や、データの抽出、テーブルの結合であり、データベースの規模、データの偏りやソート状況、固定記憶装置の状態や記憶装置内でのデータの配置状況等に大きく依存し、簡単に予測することはできない。
そのために、複数のコンピュータに同じジョブを発行して最初に帰ってきた出力を採用すると言うようにしていたのである。
【００２９】
これに対して、医療の画像処理の分野では、例えば、描画角度や光源情報を変更した計算を繰り返し行うので計算量の予測がつきやすく、従来ではデータベースのように競争させる必要があまりなかったのである。
【００３０】
しかしながら本発明では、敢えて、予想がつく範囲内であってもその範囲内に甘んじて画像処理演算の結果を待つのではなくて、予想がつく範囲内で敢えて競争させて予想がつく範囲内での最先の処理結果を採用するようにしている点が特徴である。
このようにすることにより、特にリアルタイム計算が要求される場面で予測に対する結果的にかかる計算時間の分散の範囲で更に画像表示を速くすることができる。
また、複数の端末で画像処理の要求が同時発生した場合のように、コンピュータの負荷状態が予測することが難しい状態にあっても効果的に計算を行うことができる。
【００３１】
データベースとの違いの２つ目は、データベースの場合は処理内容を分割させることができず、したがって全てのコンピューターに必ず同一命令を発するこのになるのであるが、医療の画像処理分野では、各コンピュータの負荷状況を勘案して、１つの画像を得る画像処理を重い演算処理と軽い演算処理とに分けることができる点が特徴である。例えば、１つの表示画像を計算させるのに、単純に上から２／３と後の１／３とに分けてそれぞれの画像処理をさせることもできるし、画像処理の手順を工程で分割させることもできるのである。そして、軽負荷中の複数コンピュータに対しては重い演算処理を競争させ、重い負荷中の複数コンピュータに対しては軽い演算処理を競争させるようにすればよい。
あるいは、画像処理演算を軽・中・重の３つ以上の工程に分けて、それぞれを競争させることもできる。このように１つの画像処理を重い演算処理と軽い演算処理とに分けることができる点が、同一命令しか発せられないデータベースにはない特徴である。
【００３２】
また、分割については、画像処理分野では、例えば、映画画像の製作におけるレイトレーシングでは画像処理の分散が行われてきたが、レイトレーシングでは数分から数日の計算時間が要求され、リアルタイム性は要求されず、所有している計算資源を独占し計算することが許されてきたため競争が必要とされるような状況は発生してこなかった。
【発明を実施するための最良の形態】
【００３３】
以下、本発明に係る発明を実施するための最良の形態について、図面を用いて詳細に説明する。
【００３４】
図１は、本発明の実施形態に係るボリュームレンダリング画像処理システムのネットワーク構成を示すグラフである。
同図に示すように、本実施形態に係るボリュームレンダリング画像処理システムのネットワーク構成は、ボリュームレンダリング処理を切り分けて得られるジョブの依頼側として、ノード１１〜１ｎを含み、このジョブの引受側として、ノード２１〜２ｋを含む。これらのノードの各々は、ネットワークにより、他のノードと互いに通信可能に接続されている。なお、ここで使用する「ノード」とは計算単位を意味するコンピュータのことで、複数個のＣＰＵを内蔵するスーパーコンピュータも１ノード、サーバも１ノード、パーソナルコンピュータも１ノード、ノート形パソコンも１ノードということになる。
ノード１１〜１ｎは互いに対等の関係を有する。また、ノード２１〜２ｋは互いに対等の関係を有する。
【００３５】
図２は、本発明の実施形態に係るボリュームレンダリング画像処理システムの全体構成を示す構成図である。
同図に示すボリュームレンダリング画像処理システムの全体構成は、図１に示すネットワーク構成と対応するものである。
同図に示すように、本実施形態に係るボリュームレンダリング画像処理システムは、ボリュームレンダリング処理を切り分けて得られるジョブの依頼側として、コンピュータ１１〜１ｎを具備し、このジョブの引受側として、ノード２１〜２ｋを具備する。
【００３６】
これらノードの各々は、通信ネットワーク１０に接続され、通信ネットワーク１０を介して他のノードと通信可能に構成されている。
通信ネットワーク１０は、インターネット網、またはインターネット網を含む（インターネット網を接続する）他の接続用回線によって構成することができる。
前記インターネット網を接続する他の接続用回線としては、公衆回線、ＩＳＤＮ回線、パケット通信回線、フレームリレー回線、ＡＴＭ回線、専用回線、ＡＤＳＬ回線、ＰＨＳ回線、光通信ケーブル回線を利用することができる。また、ＣＡＴＶ等の今後普及する回線であってもインターネットが利用できる仕様の回線であれば利用可能である。
【００３７】
なお、通信ネットワーク１０がインターネット網を含む場合は、本発明に係るボリュームレンダリング画像処理システムは、グリッドコンピューティングシステムの新規方式となる。
【００３８】
図３は、本発明の実施形態に係るボリュームレンダリング画像処理システムのジョブ依頼側のコンピュータの構成を示す構成図である。
図３では、図２に示すジョブ依頼側の任意のコンピュータ１ｍの構成を示すが、ジョブ依頼側の他のコンピュータの構成も、コンピュータ１ｍの構成と同じである。
【００３９】
同図に示すジョブ依頼側のコンピュータは、全体を制御すると共に自己処理分のジョブを処理する主制御部１１ｍと、一般的な業務に使用する業務用ＤＢ（データベース）１２ｍと、他ノードの管理に必要な情報を記録する管理用ＤＢ１３ｍと、ＣＴ等から得られる物体の３次元デジタルデータを格納する画像データＤＢ１４ｍとを備えて構成される。
【００４０】
主制御部１１ｍは、全体を制御するＣＰＵ１１１ｍと、物体の３次元デジタルデータ等を読み込むＲＡＭ１１２ｍと、ルーター機能を有する回線制御部１１３ｍと、通信機能を有する通信制御部１１４ｍと、各データベースを制御するＤＢ管理部１１５ｍと、画像データ等を表示する表示部１１６ｍと、操作情報等を入力するための入力部１１７ｍと、ＣＰＵ１１１ｍと他の構成要素との間の指令及びデータの伝達を行うコモンバス１１０ｍと、ＤＢ管理部１１５ｍと各データベースとの間の制御信号及びデータの伝達を行う入出力バス１２０ｍとを具備する。
【００４１】
ＲＡＭ１１２ｍは、画像データＤＢ１４ｍ等から読み込まれた物体の３次元デジタルデータ等を格納し、必要に応じてＣＰＵ１１１ｍに供給する。
回線制御部１１３ｍは、通信ネットワーク１０（図２）に接続するためのものであり、具体的には、デジタル終端接続装置（ＤＳＵ）や侵入防止用のファイアウォールアプリケーションを実装したルータなどを備えて構成することができる。
【００４２】
通信制御部１１４ｍは、他ノードとの通信処理を行う。なお、この通信制御部１１４ｍは、例えば、インターネット上の時刻同期用のＮＴＰ（Network Time Protocol）サーバや、分散ファイルシステム用のＮＦＳ（Network File System)サーバなどを備えることができる。通信制御部１１４ｍは、さらに、暗号化データ転送用の暗号化通信プロトコルを保持し、暗号化通信サービスを実行することができる。
ＤＢ管理部１１５ｍは、ＣＰＵ１１１ｍからの指令により、業務用ＤＢ１２ｍ、管理用ＤＢ１３ｍ、画像データＤＢ１４ｍを制御し、これらのデータベースに格納されているデータをＣＰＵ１１１ｍに入出力する。
【００４３】
表示部１１６ｍは、ＣＰＵ１１１ｍからの指令とデータ供給により、物体の３次元デジタルデータに対応する３次元構造のイメージ等を表示する。
入出力手段１１７ｍは、ユーザが、ボリュームレンダリング処理や表示に必要な指令等を入力するために使用される。
図４は、本発明の実施形態に係るボリュームレンダリング画像処理システムのジョブ受取側のノードの構成を示す構成図である。
図４では、図２に示すジョブ受取側の任意のノード２ｉの構成を示すが、ジョブ受取側の他のノードの構成も、ノード２ｉの構成と同じである。
【００４４】
同図に示すジョブ受取側のノードは、全体を制御すると共に受け取ったジョブを処理する主制御部１１ｍと、一般的な業務に使用する業務用ＤＢ（データベース）２２ｉと、受け取ったジョブの処理に必要な情報を記録する処理用ＤＢ２３ｉと、ＣＴ等から得られる物体の３次元デジタルデータを格納する画像データＤＢ２４ｉとを備えて構成される。なお、画像データＤＢ２４ｉはデータが多い場合、１個のみ設置し、これをすべてのノードが共用して用いるようにすることが推奨される。
【００４５】
主制御部２１ｉは、全体を制御するＣＰＵ２１１ｉと、物体の３次元デジタルデータ等を読み込むＲＡＭ２１２ｉと、ルーター機能を有する回線制御部２１３ｉと、通信機能を有する通信制御部２１４ｉと、各データベースを制御するＤＢ管理部２１５ｉと、画像データ等を表示する表示部２１６ｉと、操作情報等を入力するための入力部２１７ｉと、ＣＰＵ２１１ｉと他の構成要素との間の指令及びデータの伝達を行うコモンバス２１０ｉと、ＤＢ管理部２１５ｉと各データベースとの間の制御信号及びデータの伝達を行う入出力バス２２０ｉとを具備する。
【００４６】
ＲＡＭ２１２ｉは、画像データＤＢ２４ｉ等から読み込まれた物体の３次元デジタルデータ等を格納し、必要に応じてＣＰＵ２１１ｉに供給する。
回線制御部２１３ｉは、通信ネットワーク１０（図２）に接続するためのものであり、具体的には、デジタル終端接続装置（ＤＳＵ）や侵入防止用のファイアウォールアプリケーションを実装したルータなどを備えて構成することができる。
【００４７】
通信制御部２１４ｉは、他ノードとの通信処理を行う。なお、この通信制御部２１４ｉは、例えば、インターネット上の時刻同期用のＮＴＰ（Network Time Protocol）サーバや、分散ファイルシステム用のＮＦＳ（Network File System)サーバなどを備えることができる。通信制御部２１４ｉは、さらに、暗号化データ転送用の暗号化通信プロトコルを保持し、暗号化通信サービスを実行することができる。
【００４８】
ＤＢ管理部２１５ｉは、ＣＰＵ２１１ｉからの指令により、業務用ＤＢ２２ｉ、管理用ＤＢ２３ｉ、画像データＤＢ２４ｉを制御し、これらのデータベースに格納されているデータをＣＰＵ２１１ｉに入出力する。
表示部２１６ｉは、ＣＰＵ２１１ｉからの指令とデータ供給により、物体の３次元デジタルデータに対応する３次元構造のイメージ等を表示する。
入出力部２１７ｉは、ユーザが、ボリュームレンダリング処理や表示に必要な指令等を入力するために使用される。
【００４９】
なお、ＤＢ管理部２１５１〜ＤＢ管理部２１５ｉ〜ＤＢ管理部２１５ｎには、事前に同じデータ（即ち、ＣＴ等から得られる物体の３次元デジタルデータ）が格納されるが、読み取り時の競合を避けるためにデータベースを共有化しないことが望ましい。
【００５０】
以下、本発明の実施形態に係るボリュームレンダリング画像処理システムの動作を説明する。この動作は、引受側のノード群の負荷等を考慮して、ジョブを、引受側の１以上のノード群に対して割り当てる場合の例である。
ＣＰＵ１１１ｍは、この場合、依頼すべき手持ちのボリュームレンダリング処理の各々から、それぞれジョブを切り出すと共に、この切り出されたジョブの優先度（処理順序の優先度）を決定する。この時、必要に応じて、画像データＤＢ１４ｍから前記ボリュームレンダリング処理に対応するデータを、ＲＡＭ２１２ｉに順次に読み込んで、分析する。
【００５１】
優先度の中味は、受注側（各計算ノード）の負荷状況・過去の履歴に応じて画像処理を行わせる優先度と発注（クライアント）側が画像処理の内容に付ける優先度とが含まれている。
負荷状況による優先度とは、各ノードの負荷状況に基づいて軽い負荷中のノード群に対しては重い画像処理命令を発し、重い負荷中のノード群に対しては軽い画像処理命令を発するようにすることである。各ノードは共通のジョブ管理部内にある本発明に係るノード計算資源量監視手段に自己の処理能力、過去の実績、ノードのステータス・スペック、ネットワーク上の距離を登録しておくと共に、現在の処理内容を逐次報告しておく。
クライアントは各ノードに画像処理発注するときにそのノード計算資源量監視手段にアクセスして各ノードの現在の負荷状況、過去の実績、ノードのステータス・スペック、ネットワーク上の距離を知ることができ、これに基づいて依頼すべきノードの選択をする。
【００５２】
現在の負荷状況は、あるノードが現在どのような負荷下にあるかを知ることで、高速演算可能なノードであっても現在過負荷下にあればそのノードには新たなジョブは出せないし、逆に、高速演算向きでないノードであっても現在無負荷又は軽負荷下にあればそのノードに新たなジョブは若干出すことができるから、現在の負荷状況を知ることは極めて重要である。
【００５３】
過去の実績及び現在の状態からは、過去の履歴及び現在の状態に基づいて、既にたくさんのボリュームデータを備えているノードかどうかがわかり、改めて膨大なデータをもはや転送する必要が無くなる。
また、過去の履歴及び現在の状態に基づいて、整数演算が得意なノードであることがわかれば、それに整数演算が多いジョブを発行し、浮動小数点演算が得意なノードであれば浮動小数点演算が多いジョブを発行することができる。
【００５４】
ノードのステータス・スペックは、ディスクの容量や、回線速度、ＣＰＵやメモリの量がそれにあたる。大量の画像データを送受信するにはメモリやディスクが十分なだけでは不十分で、回線に多量のデータを流すデータ容量が必要になるので、ノードのステータス・スペックを知ることは極めて重要である。
特にノード間接続に媒介する中継装置の数や、回線の帯域等によって決定されるネットワーク上の距離、及びネットワークの局所的な現在の使用状況、既に発行されている命令によって予測される将来のネットワークの局所的な現在の使用状況等を用いることは極めて重要である。
【００５５】
ＣＰＵ１１１ｍは、このようにしてノード計算資源量監視手段から取得した情報を基に、各ノードの現在の演算能力の順位を決定する。そして、前述のように決定されたジョブの優先度（処理順序の優先度）とこの各ノードの現在の演算能力の順位とを照らし合わせて、演算能力の高いノード順にジョブ優先度の高い順序にジョブを割り当てるようにする。このとき、ジョブ優先度の高いジョブを演算能力の高いノードの複数台に本発明による競争関係で並列処理させることも適宜可能である。以下、順にジョブを他のノードに割り当てていくようにすれば、過負荷のノードには最終的にジョブを割り当てられなくなることとなる。
【００５６】
このジョブの実行の割り当てはクライアントがデータを選択して処理開始する毎に動的に行うようにするか、又は、クライアントが命令したときだけ開始するようにしている。
このジョブは前もって予約できるようにしておくと、後のジョブ割り当てが簡単かつスムーズに行うことができる。
【００５７】
１つのノードに対して複数のジョブを予約し、かつこれらのジョブに優先順位を付けておくことにより、優先順に自動的にジョブ処理を開始させることができる。
また、１つのノードが複数のジョブを受け取った場合は、当該ジョブの優先順位はノード側が変更できるようにしておくことで、ノード側に弾力的なジョブ処理が行えるようになる。
【００５８】
１つのノードに対して複数のジョブを予約し、これらの複数のジョブを他のノードに並列処理させるようにすることもできる。
ノードが複数の命令を順番に開始し、ジョブ処理の途中経過および処理終了をその都度クライアントに通知させるようにすると、クライアントコンピュータは並列処理中の各ノードの稼働状況を知ることが出来る。この場合、各計算ノードの稼働状況をクライアント側のディスプレー画面に表示すると、ユーザが視認できるようになり、操作性が良くなる。
【００５９】
ノード割り当ての制御は、クライアントの他に他の計算ノードの１つ又は複数個も分担することができるようにすれば、計算資源の一層の活用が図られる。
【００６０】
次に、引受側のノード（２１〜２ｋ）、及び自己と同格の他のコンピュータの各々に対して、上記の割り当てたジョブの実行依頼を、それぞれ同時に送信した後、自己処理分のジョブの処理に取り掛かる。この時、画像データＤＢの前記ジョブに対応するデータを、ＲＡＭ２１２ｉに読み込んで、参照する。自己処理分のジョブの処理が完了すると（必要ならば待機し）、上記送信したいずれかのジョブを最も早く処理完了した引受側のノードからの処理結果を受け取る。
【００６１】
受け取ったジョブの処理結果を検証し、問題が無ければ、上記ジョブを引き受けた自己と同格の前記他のコンピュータの各々、及び上記ジョブを最も早く処理し終えた上記ジョブ引受側のノードと同じ群に属する他のジョブ引受側のノードの各々に対して、当該ジョブの実行中止指令を送信する。
この時点で、ＣＰＵ１１１ｍは、依頼すべき手持ちジョブは全て完了したか否かを検証し、依頼すべき手持ちジョブに未完了のものが残っている場合は、前述の他のノードの負荷情報から始まる一連の処理を繰り返す。
クライアントは計算の割り当てを途中で変更・休止・中止を動的に行えるようにしておくと、ユーザはディスプレー画面に表示された各ノードの稼働状況を知って遅いノードに対して計算の割り当てを途中で変更・休止・中止を素早く行えるので、無駄な演算を続行させることが回避できる。
【００６２】
なお、前述の同時の通信手段として、通信ネットワーク１０に固有のブロードキャスト手段等を使用することが可能である。
また、上記ジョブを引き受けたノードの各々は、それぞれ独立に、画像データベース２４から、断層面に垂直な方向に沿って積層された２次元の断層画像データをＲＡＭ２１２に読み出し、必要な補間を行うことにより、３次元配列のボクセルデータを得て、ジョブの依頼元のコンピュータに送信するものとする。
【００６３】
この時、現在のサイクルのボクセルデータの計算処理と、次のサイクルのための２次元断層画像データの読み込みとは、それぞれ別タスクで起動させ、かつ両者に並列動作をとらせることにより、処理時間を短縮することができる。ちなみに、このサイクルの周期は、ＲＡＭ２１２の容量で決定されるが、２次元断層画像データの、ＲＡＭ２１２における読み込み領域を、ダイナミックリロケーションさせることにより、実質的に無限長とすることも可能である。
【００６４】
画像処理を分割して競争させるか、分割せずに競争させるかの判断基準は、画像処理を分割して再び統合させるという処理自体が複雑なので、かかる複雑な処理を介しても処理時間の短縮ができるのであれば分割にし、逆に極めて軽い簡単な画像処理の場合は分割せずに競争させるのがよい。
【００６５】
以下、図５に示すフローチャートを使用して本実施形態に係るボリュームレンダリング画像処理システムの、特にジョブ依頼相手のノードの選択のしかたについてステップ２２およびステップ２３を中心に説明する。
まず、ＣＰＵ１１１ｍは、依頼すべき手持ちのボリュームレンダリング処理の各々から、それぞれジョブを切り出すと共に、この切り出されたジョブの優先度（処理順序の優先度）を決定する（ステップＳ２１）。
【００６６】
次に、ＣＰＵ１１１ｍは、引受側のノード（２１〜２ｋ）、及び自己と同格の他のコンピュータの現在の負荷状況、過去の実績、ノードのステータス・スペック、ネットワーク上の距離についてノード計算資源量監視手段から各情報を収集する（ステップＳ２２）。
現在の負荷状況を知ることにより、高速演算可能なノードであっても現在過負荷下にあればそのノードには新たなジョブは出さず、逆に、高速演算向きでないノードであっても現在無負荷又は軽負荷下にあればそのノードに新たなジョブを出すことができる。
過去の実績を知ることにより、膨大なデータを改めて転送する必要がなくなったり、高速演算が得意なノードかメモリをたくさん使う処理が得意なノードかを知ることができ、それに合ったジョブを出すことができる。
ノードのステータス・スペックを知ることにより、多量のデータを流すことのできる大きなデータ容量の回線はどのノードか、を知ることができる。
ネットワーク上の距離を知ることにより、ノードに行き着くまでの時間を予想することができる。
【００６７】
次に、ＣＰＵ１１１ｍは、このようにしてノード計算資源量監視手段から取得した情報を基に、各ノードの現在の演算能力の順位を決定する。そして、ステップ２１で決定されたジョブの優先度（処理順序の優先度）とこの各ノードの現在の演算能力の順位とを照らし合わせて、演算能力の高いノード順にジョブ優先度の高い順序にジョブを割り当てるようにする（ステップ２３）。
このとき、ジョブ優先度の高いジョブを演算能力の高いノードの複数台に本発明による競争関係で並列処理させる。
【００６８】
次に、ＣＰＵ１１１ｍは、引受側のノード（２１〜２ｋ）、及び自己と同格の他のコンピュータの各々に対して、上記の割り当てたジョブの実行依頼を、それぞれ同時に送信する（ステップＳ２４）。
【００６９】
次に、ＣＰＵ１１１ｍは、自己処理分のジョブを処理する（ステップＳ２５）。
その後、ＣＰＵ１１１ｍは、上記送信したいずれかのジョブを最も早く処理した引受側のノードからの処理結果を受け取る（ステップＳ２６）。
次に、ＣＰＵ１１１ｍは、受け取ったジョブの処理結果を検証する（ステップＳ２７）。
次に、ＣＰＵ１１１ｍは、上記ジョブを引き受けた自己と同格の前記他のコンピュータの各々、及び上記ジョブを最も早く処理した上記引受側のノードと同じ群に属する他の引受側のノードに対して、当該ジョブの実行中止指令を送信する（ステップＳ２８）。
【００７０】
次に、ＣＰＵ１１１ｍは、依頼すべき手持ちジョブは全て完了したか否かを検証し、依頼すべき手持ちジョブに未完了のものが残っている場合はステップＳ２２に戻る。また、依頼すべき手持ちジョブが全て完了している場合は処理を終了する（ステップＳ２９）。
なお、この実施の形態では、システムが処理すべき仕事をボリュームレンダリング画像処理としたが、本発明に係るシステムは、一般に、他の任意の仕事の処理に適用することができる。特に、グリッドコンピューティングの１方式として使用することができる。
【００７１】
また、本発明に係るＣＰＵ１１１ｍ（図３）の処理の少なくとも一部をコンピュータ制御により実行するものとし、かつ、上記処理を、図５，６のフローチャートで示した手順によりコンピュータに実行せしめるプログラムは、半導体メモリを始め、ＣＤ−ＲＯＭや磁気テープなどのコンピュータ読み取り可能な記録媒体に格納して配付してもよい。そして、少なくともマイクロコンピュータ，パーソナルコンピュータ，汎用コンピュータを範疇に含むコンピュータが、上記の記録媒体から上記プログラムを読み出して、実行するものとしてもよい。
【００７２】
以上は、画像処理演算を複数に分割して複数の演算処理を各ノードに競争させるものであったが、本発明はさらに付加的機能として、画像処理が時間的にＡ計算→Ｂ計算→Ｃ計算、・・・といった手順を踏んで最終的な画像が得られるとしたとき、そのうちの最後の画像処理はそれほど重い処理内容ではないので、ユーザのコンソールだけで計算させるようにするものである。
【００７３】
すなわち、クライアントの物理ユーザコンソールに計算の一部を負担可能とさせる。例えば、ボリュームレンダリングで計算上のアフィン計算（一連の画像処理のうち最後の処理）を物理ユーザコンソールに特に負担させることが好ましい。
また、多ビット画像（濃淡９ビット以上の画像）からユーザ提示に適したＷＬ変換とアフィン変換を物理ユーザコンソールに特に負担させることが好ましい。
ユーザインタフェース（ＵＩ）画面に表示するための拡大・縮小・パンといった処理を物理ユーザコンソールに特に負担させるのが好ましい。
また、ＧＰＵが搭載されている場合は、以上の処理を特にＧＰＵに負担させるのが好ましい。ＧＰＵは、Ｇｒａｐｈｉｃ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔの略語で、汎用のＣＰＵと比較して特に画像処理に特化した設計がなされている演算処理装置で、通常ＣＰＵとは別個にコンピュータに搭載されている。この場合、
ＧＰＵには実行時に動的に制御コードを読み込んで処理内容を変更できる機能を備えていることが望ましい。
また、画像以外の付帯情報である、患者名、誕生日、年齢、等といった患者に関する情報を物理ユーザコンソールに特に負担させるのが好ましい。
物理ユーザコンソールはＷｅｂブラウザのプラグイン（ｐｌｕｇ−ｉｎプログラム）であっても構わない。
【００７４】
以上の説明では、画像処理の分散処理のうち、送信されたジョブを最も早く処理完了したノードからのジョブの処理結果を受け取って、該処理結果を検証すると共に、最も早く処理完了したノードを除く他のノード群に対して処理を中止させるようにしているが、最先処理したノードからのジョブの処理結果の受け取りを待たずに、処理途中であったとしても、特に処理の遅いノードに対しては最先処理の可能性が無くなったと判断したら処理を中止させるようにすれば、無駄な処理を続行させることがなくなるので、さらに効率的となる。
このようにするためには、送信されたジョブを処理している各ノードのジョブ処理の経過情報を取得する手段と、前記ジョブ処理経過情報取得手段の取得した情報を基に、ジョブを処理しているノードの１つ以上に対して、ジョブの実行中止指令を送信する手段と、を備えるようにすればよい。
【００７５】
以上はボリュームレンダリングの分散処理についての実施例を説明してきたが、本発明の分散処理は当然のことながらんボリュームレンダリングに限定されるものではなく、ボリュームデータを用いる画像処理一般に適用できることは言うまでもない。例えば、領域抽出(segmentation)、フィルタ処理、雑音除去、画像合成、流量計算(Perfusion)、逆投影、投影、ジオメトリ変換等にも適用でき、特に、領域抽出は、VOI(Volume of Interest)の抽出から、臓器を表現する表面や中心線をボリュームから抽出し、それを利用した描画を行うことによって診断を助けることができるので有効である。
【図面の簡単な説明】
【００７６】
【図１】本発明の実施形態に係るボリュームレンダリング画像処理システムのネットワーク構成を示すグラフである。
【図２】本発明の実施形態に係るボリュームレンダリング画像処理システムの全体構成を示す構成図である。
【図３】本発明の実施形態に係るボリュームレンダリング画像処理システムのジョブ依頼側のコンピュータの構成を示す構成図である。
【図４】本発明の実施形態に係るボリュームレンダリング画像処理システムのジョブ受取側のノードの構成を示す構成図である。
【図５】本発明の実施形態に係るボリュームレンダリング画像処理システムのジョブ依頼側のコンピュータの１例としての動作を示すフローチャートである。
【符号の説明】
【００７７】
１０  通信ネットワーク
１１〜１ｎ  ジョブ依頼側のコンピュータ（ノード）
１２，２２  業務用ＤＢ（データベース）
１３  管理用ＤＢ
２３  処理用ＤＢ
１４，２４  画像データＤＢ
２１〜２ｋ  ジョブ引受側のコンピュータ（ノード）
１１０，２１０  コモンバス
１１１，２１１  ＣＰＵ
１１２，２１２  ＲＡＭ
１１３，２１３  回線制御部
１１４，２１４  通信制御部
１１５，２１５  ＤＢ管理部
１１６，２１６  表示部
１１７，２１７  入力部
【図１】
2006031358.tif 000003
【図２】
2006031358.tif 000004
【図３】
2006031358.tif 000005
【図４】
2006031358.tif 000006
【図５】
2006031358.tif 000007