説明

ボリュームレンダリング等の画像処理システム

【課題】各計算資源を有効に使い、ジョブ処理を従来よりもスピードアップさせることのできる画像処理システムを提供する。
【解決手段】ネットワーク接続された複数のノードを有し、物体のボリュームデータを用いて3次元構造のイメージを直接描画するためジョブ依頼側のコンピュータにおいて、ボリュームデータを用いた画像処理のうち依頼すべき各々から複数のジョブを切り出すジョブ切り出し手段と、複数の各ノードの現在の負荷状況、過去の実績、ノードのステータス・スペック、ネットワーク上の距離の1つ以上から成る計算資源量を監視するノード計算資源量監視手段と、ノード計算資源量監視手段の取得した情報を基に、ジョブ依頼をするノードを選択するノード選択手段と、ノード選択手段によって選択されたノードに対してジョブ切り出し手段から切り出されたジョブの実行依頼を送信する手段とを備えた。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ボリュームデータ使用の画像処理の構成に係り、特に、ネットワークに接続された複数のコンピュータを使用して、ボリュームレンダリング画像処理や領域抽出処理等を行う画像処理システムに関する。
【背景技術】
【0002】
コンピュータを用いた画像処理技術の進展により、人体の内部構造を直接観測することを可能にしたCT(Computed Tomography)、MRI(Magnetic Resonance Imaging)の出現は、医療分野に革新をもたらした技術であり、生体の断層画像を用いた医療診断が広く行われている。さらに近年は、断層画像だけでは分かり難い複雑な人体内部の3次元構造を可視化する技術として、例えば、CT等から得られる物体の3次元デジタルデータから、該データに対応する3次元構造のイメージを直接描画する処理(特にボリュームレンダリングと呼ばれる画像処理)の技術が普及し、医療診断に使用されている。
【0003】
従来、ボリュームレンダリングの優れた手法として、レイキャスティングが周知である。このレイキャスティングは、仮想始点から物体に対して仮想光線(レイ)を照射し、物体内部からの仮想反射光の画像を仮想投影面に形成することにより、物体内部の3次元構造を透視するイメージ画像を形成する手法である。レイキャスティングについては、例えば、後述する非特許文献1に基本的な理論が述べられている。
【0004】
ここで、レイキャスティングについて簡単に説明する。
物体の3次元領域の構成単位となる微小単位領域をボクセルと称し、ボクセルの濃度値等の特性を表す固有のデータをボクセル値と称する。物体全体はボクセル値の3次元配列であるボクセルデータで表現される。通常、CT等により得られる2次元の断層画像データを断層面に垂直な方向に沿って積層し、必要な補間を行うことにより3次元配列のボクセルデータが得られる。
【0005】
仮想始点から物体に対して照射された仮想光線に対する仮想反射光は、ボクセル値に対して人為的に設定される不透明度(オパシティ値)に応じて生ずるものとする。さらに、仮想的な表面を立体的に陰影付けするために、ボクセルデータのグラディエントすなわち法線ベクトルを求め、仮想光線と法線ベクトルのなす角の余弦から陰影付けのシェーディング係数を計算する。仮想反射光は、ボクセルに照射される仮想光線の強度にボクセルの不透明度とシェーディング係数を乗じて算出される。仮想反射光を仮想光線に沿って積算し、仮想投影面上のすべての座標点について仮想反射光を計算することにより仮想的な3次元イメージの透視画像が形成される。以上の計算を以下では「ボリュームレンダリング処理」と呼ぶことにする。
【0006】
このようにして得られるボリュームレンダリング画像は、対象ボクセルデータに対して多数のボリュームレンダリング・パラメータを用いて描画される3次元カラー画像である。
ボリュームレンダリング・パラメータには、拡大率、角度、位置等の表示制御情報、色指定情報、ボクセル値とオパシテイ値の対応情報、シェーディング情報、画像フィルタ、画像合成方法、レンダリング手段、光源、時系列及び位相情報、投影方法、表示領域情報、抽出領域情報等が含まれる。これらの情報を以下では「付加情報」と呼ぶことにする。
【0007】
実際の医療診断においては、医療画像処理システムのユーザは、対象とするボクセルデータに対してボリュームレンダリング・パラメータ(付加情報)の設定を次々と更新しながら、様々な視点からボリュームレンダリング画像を観測していく。例えば、診断対象により適切なオパシティ値が異なるため、ユーザはボクセルデータごとにオパシティ値の設定を行う。また、患部等の注目領域を観察し易いように、観察の邪魔となる周辺組織を除去したり、組織に適切な色を設定したりする。
【0008】
その他、ユーザは様々な煩雑な作業を行いパラメータを設定する必要がある。適切なパラメータを設定し、診断目的を満たすボリュームレンダリング画像が得られれば、編集作業を終了する。
従来は、貯蔵、計算、表示といったボリュームレンダリングによる画像処理の全工程を、1つ以上のコンピュータで行っており、特に、複数のコンピュータで行う場合は、主として、膨大な計算を必要とする計算資源の分散、並列処理をめぐって様々な工夫がなされている。
また、ボリュームレンダリングによる画像処理の全工程を、複数のコンピュータに分散させる方式も種々提案されている(例えば、特許文献1参照。)。
【0009】
【特許文献1】特開2003−233600号公報
【非特許文献1】「Introduction To Volume Rendering」、Barthold Lichtenbelt、Randy Crane、Shaz Naqvi共著、Hewlett−Packard Professional Books(1998年発行)
【発明の開示】
【発明が解決しようとする課題】
【0010】
ところが、大規模な計算が必要であるボリュームレンダリング(画像処理ジョブ)を高精度、リアルタイムで処理するには全計算を1台のコンピュータの計算資源で行うには限度がある。そこで、従来のボリュームレンダリング画像処理システムにあっては、前述のとおり、計算資源の分散、並列処理を行う工夫がなされている。
このように複数のコンピュータを使用する場合、ボリュームレンダリング等の処理を事前に適当なジョブ(負荷)に区分けして、前記複数のコンピュータに平等に分散処理させることが考えられるが、これでは、計算資源を有効に使えず、ジョブ処理が遅れる原因となることが判った。
すなわち、コンピュータにも演算速度の違い存在しており、また、コンピュータには整数演算や浮動小数点演算等の要求される計算の種別による計算処理の得意不得意、ネットワーク性能の高低、また、同じボリュームデータを扱ったことのあるコンピュータであるため、そのコンピュータを使用すれば再転送の手間が要らない、既に、他の計算を実行しているなどの負荷情報等のそのコンピュータの状態による、その時点におけるコンピュータの特性の違いが存在する。
【0011】
そこで、本発明はこれらの課題を解決するもので、複数のコンピュータ(ノード)に平等にジョブを割り振るのではなくて、各コンピュータ(ノード)の現在の負荷状況、過去の実績等を考慮して適正にジョブを割り振ることによって、各計算資源を有効に使い、ジョブ処理を従来よりもスピードアップさせることのできる画像処理システムを提供することを目的としている。
【課題を解決するための手段】
【0012】
上記課題を解決するため、請求項1記載のボリュームデータ使用の画像処理システムの発明は、ネットワーク接続された複数のノードを有して、CT等から得られる物体のボリュームデータを用いて3次元構造のイメージを直接描画する画像処理システムであって、ジョブ依頼側のコンピュータ群の少なくとも1つにおいて、ボリュームデータを用いた手持ちの画像処理のうち依頼すべき各々から複数のジョブを切り出すジョブ切り出し手段と、前記複数の各ノードの現在の負荷状況、過去の実績、ノードのステータス・スペック、ネットワーク上の距離の1つ以上から成る計算資源量を監視するノード計算資源量監視手段と、前記ノード計算資源量監視手段の取得した情報を基に、ジョブ依頼をするノードを1つ又は複数個選択するノード選択手段と、前記ノード選択手段によって選択された1つ又は複数個のノードに対して、前記ジョブ切り出し手段から切り出されたジョブの実行依頼を送信する手段と、を備えたことを特徴としている。
【0013】
請求項2記載の発明は、請求項1記載のボリュームデータ使用の画像処理システムにおいて、前記切り出されたジョブの各々の優先度を決定するジョブ優先度決定手段と、前記ノード計算資源量監視手段の取得した情報を基に、各ノードの現在の演算能力の順位を決定する演算能力順位決定手段と、を備え、前記ノード選択手段は、前記演算能力順位決定手段によって決定された順序でノードを1個又は複数個選択し、前記ジョブ優先度決定手段によって決定されたジョブ優先順に従って各ジョブの実行を前記選択された1個又は複数個のノードに対して割り当てていくことを特徴としている。
【0014】
請求項3記載の発明は、請求項1又は2記載のボリュームデータ使用の画像処理システムにおいて、前記ジョブの実行の割り当てはクライアントがデータを選択して処理開始する毎に動的に行うようにすることを特徴としている。
【0015】
請求項4記載の発明は、請求項1又は2記載のボリュームデータ使用の画像処理システムにおいて、前記ジョブの実行の割り当てはクライアントが命令したときだけ開始するようにしたことを特徴としている。
【0016】
請求項5記載の発明は、請求項3又は4記載のボリュームデータ使用の画像処理システムにおいて、前記ジョブが前もって予約できることを特徴としている。
【0017】
請求項6記載の発明は、請求項5記載のボリュームデータ使用の画像処理システムにおいて、1つのノードに対して複数のジョブを予約し、前記ジョブは優先順位情報を保有しており、優先順に自動的に処理開始させるようにしたことを特徴としている。
【0018】
請求項7記載の発明は、請求項6記載のボリュームデータ使用の画像処理システムにおいて、前記1つのノードが複数のジョブを受け取った場合は、当該ジョブの優先順位はノード側が変更できるようにしたことを特徴としている。
【0019】
請求項8記載の発明は、請求項5記載のボリュームデータ使用の画像処理システムにおいて、1つのノードに対して複数のジョブを予約し、該複数の命令を並列処理させるようにしたことを特徴としている。
【0020】
請求項9記載の発明は、請求項1〜8のいずれか1項記載のボリュームデータ使用の画像処理システムにおいて、前記ノードが複数の命令を順番に開始し、ジョブ処理の途中経過および処理終了をその都度クライアントに通知させるようにしたことを特徴としている。
【0021】
請求項10記載の発明は、請求項1〜9のいずれか1項記載のボリュームデータ使用の画像処理システムにおいて、前記ノード割り当ての制御が、当該クライアントの他に他の計算ノードの1つ又は複数個も分担することができるようにしたことを特徴としている。
【0022】
請求項11記載の発明は、請求項1〜10のいずれか1項記載のボリュームデータ使用の画像処理システムにおいて、各計算ノードの稼働状況をクライアント側のディスプレー画面に表示してユーザが視認できるようにしたことを特徴としている。
【0023】
請求項12記載の発明は、請求項1〜11のいずれか1項記載のボリュームデータ使用の画像処理システムにおいて、前記計算の割り当てを途中で変更・休止・中止を動的に行えるようにしたことを特徴としている。
【0024】
請求項13記載の発明は、請求項1〜12のいずれか1項記載のボリュームデータ使用の画像処理システムにおいて、前記送信手段が、前記ジョブの実行依頼を複数のノードに対して送信し、前記送信されたジョブを最も早く処理完了したノードからの前記ジョブの処理結果を受け取って、該処理結果を検証する手段と、
前記最も早く処理完了したノードを除く前記他のノード群に対して、ジョブの実行中止指令を送信する手段と、を備えたことを特徴としている。
【0025】
請求項14記載の発明は、請求項1〜12のいずれか1項記載のボリュームデータ使用の画像処理システムにおいて、前記送信されたジョブを処理している各ノードのジョブ処理の経過情報を取得する手段と、前記ノード計算資源量監視手段の取得した情報を基に、ジョブを処理しているノードの1つ以上に対して、ジョブの実行中止指令を送信する手段と、を備えたことを特徴としている。
【0026】
請求項15記載の発明は、請求項1〜14のいずれか1項記載のボリュームデータ使用の画像処理システムにおいて、前記ボリュームデータ使用の画像処理が、ボリュームレンダリング処理、領域抽出処理、フィルタ処理、雑音除去処理、画像合成処理、流量計算処理、逆投影処理、投影処理、ジオメトリ変換処理のいずれか1つ以上であることを特徴としている。
【発明の効果】
【0027】
以上説明したように、本発明のボリュームレンダリング画像処理システムによれば、平等に画像処理ジョブを割り振るのではなくて、各ノードの負荷状況等を見ながら、複数の計算ノードのうちどのノードを使い、どのノードを使わないかを決め、さらに、どのノードにはどのようなジョブの実行依頼をするか、他のノードにはどのようなジョブの実行依頼を個々に決めるようにするものである。
このようにすることにより、ネットワーク内の複数の計算資源のうち、現在活用できるもののみ抽出し、しかもその負荷状況に応じて重い演算をさせたり、軽い演算にしておいたり、さらに、現在計算能力の十分にあるノードが複数個存在している場合に、ジョブを分割して複数台に分散処理させるのではなくて(ジョブの分割、再結合に時間がかかり過ぎる場合がある。)、選択された複数個の計算ノードに対して同じジョブの実行依頼をして競争させ、最先に得られた計算結果を採用し、これと同時に計算途中の他の計算ノードに対してジョブ中止の命令を出すようにすることでさらに計算スピードをアップさせるものである。
手持ちのボリュームレンダリング処理を小口のジョブに切り分け、前記ジョブ毎に、ネットワーク内の複数のコンピュータ(自己と同格のジョブ依頼資格を有するコンピュータを含む)に対して、同じジョブを割り当てて処理させ、かつ最も早く処理できたノードの処理結果を受信できるので、手持ちのボリュームレンダリング処理の処理時間を、全体として大幅に短縮できるボリュームレンダリング画像処理システムを提供することができる。
【0028】
データベースの分野ではデータ処理のジョブをあるコンピュータに発してから答えが返ってくるまでどれくらい時間がかかるかは、発行したジョブが例えばデータの検索や、データの抽出、テーブルの結合であり、データベースの規模、データの偏りやソート状況、固定記憶装置の状態や記憶装置内でのデータの配置状況等に大きく依存し、簡単に予測することはできない。
そのために、複数のコンピュータに同じジョブを発行して最初に帰ってきた出力を採用すると言うようにしていたのである。
【0029】
これに対して、医療の画像処理の分野では、例えば、描画角度や光源情報を変更した計算を繰り返し行うので計算量の予測がつきやすく、従来ではデータベースのように競争させる必要があまりなかったのである。
【0030】
しかしながら本発明では、敢えて、予想がつく範囲内であってもその範囲内に甘んじて画像処理演算の結果を待つのではなくて、予想がつく範囲内で敢えて競争させて予想がつく範囲内での最先の処理結果を採用するようにしている点が特徴である。
このようにすることにより、特にリアルタイム計算が要求される場面で予測に対する結果的にかかる計算時間の分散の範囲で更に画像表示を速くすることができる。
また、複数の端末で画像処理の要求が同時発生した場合のように、コンピュータの負荷状態が予測することが難しい状態にあっても効果的に計算を行うことができる。
【0031】
データベースとの違いの2つ目は、データベースの場合は処理内容を分割させることができず、したがって全てのコンピューターに必ず同一命令を発するこのになるのであるが、医療の画像処理分野では、各コンピュータの負荷状況を勘案して、1つの画像を得る画像処理を重い演算処理と軽い演算処理とに分けることができる点が特徴である。例えば、1つの表示画像を計算させるのに、単純に上から2/3と後の1/3とに分けてそれぞれの画像処理をさせることもできるし、画像処理の手順を工程で分割させることもできるのである。そして、軽負荷中の複数コンピュータに対しては重い演算処理を競争させ、重い負荷中の複数コンピュータに対しては軽い演算処理を競争させるようにすればよい。
あるいは、画像処理演算を軽・中・重の3つ以上の工程に分けて、それぞれを競争させることもできる。このように1つの画像処理を重い演算処理と軽い演算処理とに分けることができる点が、同一命令しか発せられないデータベースにはない特徴である。
【0032】
また、分割については、画像処理分野では、例えば、映画画像の製作におけるレイトレーシングでは画像処理の分散が行われてきたが、レイトレーシングでは数分から数日の計算時間が要求され、リアルタイム性は要求されず、所有している計算資源を独占し計算することが許されてきたため競争が必要とされるような状況は発生してこなかった。
【発明を実施するための最良の形態】
【0033】
以下、本発明に係る発明を実施するための最良の形態について、図面を用いて詳細に説明する。
【0034】
図1は、本発明の実施形態に係るボリュームレンダリング画像処理システムのネットワーク構成を示すグラフである。
同図に示すように、本実施形態に係るボリュームレンダリング画像処理システムのネットワーク構成は、ボリュームレンダリング処理を切り分けて得られるジョブの依頼側として、ノード11〜1nを含み、このジョブの引受側として、ノード21〜2kを含む。これらのノードの各々は、ネットワークにより、他のノードと互いに通信可能に接続されている。なお、ここで使用する「ノード」とは計算単位を意味するコンピュータのことで、複数個のCPUを内蔵するスーパーコンピュータも1ノード、サーバも1ノード、パーソナルコンピュータも1ノード、ノート形パソコンも1ノードということになる。
ノード11〜1nは互いに対等の関係を有する。また、ノード21〜2kは互いに対等の関係を有する。
【0035】
図2は、本発明の実施形態に係るボリュームレンダリング画像処理システムの全体構成を示す構成図である。
同図に示すボリュームレンダリング画像処理システムの全体構成は、図1に示すネットワーク構成と対応するものである。
同図に示すように、本実施形態に係るボリュームレンダリング画像処理システムは、ボリュームレンダリング処理を切り分けて得られるジョブの依頼側として、コンピュータ11〜1nを具備し、このジョブの引受側として、ノード21〜2kを具備する。
【0036】
これらノードの各々は、通信ネットワーク10に接続され、通信ネットワーク10を介して他のノードと通信可能に構成されている。
通信ネットワーク10は、インターネット網、またはインターネット網を含む(インターネット網を接続する)他の接続用回線によって構成することができる。
前記インターネット網を接続する他の接続用回線としては、公衆回線、ISDN回線、パケット通信回線、フレームリレー回線、ATM回線、専用回線、ADSL回線、PHS回線、光通信ケーブル回線を利用することができる。また、CATV等の今後普及する回線であってもインターネットが利用できる仕様の回線であれば利用可能である。
【0037】
なお、通信ネットワーク10がインターネット網を含む場合は、本発明に係るボリュームレンダリング画像処理システムは、グリッドコンピューティングシステムの新規方式となる。
【0038】
図3は、本発明の実施形態に係るボリュームレンダリング画像処理システムのジョブ依頼側のコンピュータの構成を示す構成図である。
図3では、図2に示すジョブ依頼側の任意のコンピュータ1mの構成を示すが、ジョブ依頼側の他のコンピュータの構成も、コンピュータ1mの構成と同じである。
【0039】
同図に示すジョブ依頼側のコンピュータは、全体を制御すると共に自己処理分のジョブを処理する主制御部11mと、一般的な業務に使用する業務用DB(データベース)12mと、他ノードの管理に必要な情報を記録する管理用DB13mと、CT等から得られる物体の3次元デジタルデータを格納する画像データDB14mとを備えて構成される。
【0040】
主制御部11mは、全体を制御するCPU111mと、物体の3次元デジタルデータ等を読み込むRAM112mと、ルーター機能を有する回線制御部113mと、通信機能を有する通信制御部114mと、各データベースを制御するDB管理部115mと、画像データ等を表示する表示部116mと、操作情報等を入力するための入力部117mと、CPU111mと他の構成要素との間の指令及びデータの伝達を行うコモンバス110mと、DB管理部115mと各データベースとの間の制御信号及びデータの伝達を行う入出力バス120mとを具備する。
【0041】
RAM112mは、画像データDB14m等から読み込まれた物体の3次元デジタルデータ等を格納し、必要に応じてCPU111mに供給する。
回線制御部113mは、通信ネットワーク10(図2)に接続するためのものであり、具体的には、デジタル終端接続装置(DSU)や侵入防止用のファイアウォールアプリケーションを実装したルータなどを備えて構成することができる。
【0042】
通信制御部114mは、他ノードとの通信処理を行う。なお、この通信制御部114mは、例えば、インターネット上の時刻同期用のNTP(Network Time Protocol)サーバや、分散ファイルシステム用のNFS(Network File System)サーバなどを備えることができる。通信制御部114mは、さらに、暗号化データ転送用の暗号化通信プロトコルを保持し、暗号化通信サービスを実行することができる。
DB管理部115mは、CPU111mからの指令により、業務用DB12m、管理用DB13m、画像データDB14mを制御し、これらのデータベースに格納されているデータをCPU111mに入出力する。
【0043】
表示部116mは、CPU111mからの指令とデータ供給により、物体の3次元デジタルデータに対応する3次元構造のイメージ等を表示する。
入出力手段117mは、ユーザが、ボリュームレンダリング処理や表示に必要な指令等を入力するために使用される。
図4は、本発明の実施形態に係るボリュームレンダリング画像処理システムのジョブ受取側のノードの構成を示す構成図である。
図4では、図2に示すジョブ受取側の任意のノード2iの構成を示すが、ジョブ受取側の他のノードの構成も、ノード2iの構成と同じである。
【0044】
同図に示すジョブ受取側のノードは、全体を制御すると共に受け取ったジョブを処理する主制御部11mと、一般的な業務に使用する業務用DB(データベース)22iと、受け取ったジョブの処理に必要な情報を記録する処理用DB23iと、CT等から得られる物体の3次元デジタルデータを格納する画像データDB24iとを備えて構成される。なお、画像データDB24iはデータが多い場合、1個のみ設置し、これをすべてのノードが共用して用いるようにすることが推奨される。
【0045】
主制御部21iは、全体を制御するCPU211iと、物体の3次元デジタルデータ等を読み込むRAM212iと、ルーター機能を有する回線制御部213iと、通信機能を有する通信制御部214iと、各データベースを制御するDB管理部215iと、画像データ等を表示する表示部216iと、操作情報等を入力するための入力部217iと、CPU211iと他の構成要素との間の指令及びデータの伝達を行うコモンバス210iと、DB管理部215iと各データベースとの間の制御信号及びデータの伝達を行う入出力バス220iとを具備する。
【0046】
RAM212iは、画像データDB24i等から読み込まれた物体の3次元デジタルデータ等を格納し、必要に応じてCPU211iに供給する。
回線制御部213iは、通信ネットワーク10(図2)に接続するためのものであり、具体的には、デジタル終端接続装置(DSU)や侵入防止用のファイアウォールアプリケーションを実装したルータなどを備えて構成することができる。
【0047】
通信制御部214iは、他ノードとの通信処理を行う。なお、この通信制御部214iは、例えば、インターネット上の時刻同期用のNTP(Network Time Protocol)サーバや、分散ファイルシステム用のNFS(Network File System)サーバなどを備えることができる。通信制御部214iは、さらに、暗号化データ転送用の暗号化通信プロトコルを保持し、暗号化通信サービスを実行することができる。
【0048】
DB管理部215iは、CPU211iからの指令により、業務用DB22i、管理用DB23i、画像データDB24iを制御し、これらのデータベースに格納されているデータをCPU211iに入出力する。
表示部216iは、CPU211iからの指令とデータ供給により、物体の3次元デジタルデータに対応する3次元構造のイメージ等を表示する。
入出力部217iは、ユーザが、ボリュームレンダリング処理や表示に必要な指令等を入力するために使用される。
【0049】
なお、DB管理部2151〜DB管理部215i〜DB管理部215nには、事前に同じデータ(即ち、CT等から得られる物体の3次元デジタルデータ)が格納されるが、読み取り時の競合を避けるためにデータベースを共有化しないことが望ましい。
【0050】
以下、本発明の実施形態に係るボリュームレンダリング画像処理システムの動作を説明する。この動作は、引受側のノード群の負荷等を考慮して、ジョブを、引受側の1以上のノード群に対して割り当てる場合の例である。
CPU111mは、この場合、依頼すべき手持ちのボリュームレンダリング処理の各々から、それぞれジョブを切り出すと共に、この切り出されたジョブの優先度(処理順序の優先度)を決定する。この時、必要に応じて、画像データDB14mから前記ボリュームレンダリング処理に対応するデータを、RAM212iに順次に読み込んで、分析する。
【0051】
優先度の中味は、受注側(各計算ノード)の負荷状況・過去の履歴に応じて画像処理を行わせる優先度と発注(クライアント)側が画像処理の内容に付ける優先度とが含まれている。
負荷状況による優先度とは、各ノードの負荷状況に基づいて軽い負荷中のノード群に対しては重い画像処理命令を発し、重い負荷中のノード群に対しては軽い画像処理命令を発するようにすることである。各ノードは共通のジョブ管理部内にある本発明に係るノード計算資源量監視手段に自己の処理能力、過去の実績、ノードのステータス・スペック、ネットワーク上の距離を登録しておくと共に、現在の処理内容を逐次報告しておく。
クライアントは各ノードに画像処理発注するときにそのノード計算資源量監視手段にアクセスして各ノードの現在の負荷状況、過去の実績、ノードのステータス・スペック、ネットワーク上の距離を知ることができ、これに基づいて依頼すべきノードの選択をする。
【0052】
現在の負荷状況は、あるノードが現在どのような負荷下にあるかを知ることで、高速演算可能なノードであっても現在過負荷下にあればそのノードには新たなジョブは出せないし、逆に、高速演算向きでないノードであっても現在無負荷又は軽負荷下にあればそのノードに新たなジョブは若干出すことができるから、現在の負荷状況を知ることは極めて重要である。
【0053】
過去の実績及び現在の状態からは、過去の履歴及び現在の状態に基づいて、既にたくさんのボリュームデータを備えているノードかどうかがわかり、改めて膨大なデータをもはや転送する必要が無くなる。
また、過去の履歴及び現在の状態に基づいて、整数演算が得意なノードであることがわかれば、それに整数演算が多いジョブを発行し、浮動小数点演算が得意なノードであれば浮動小数点演算が多いジョブを発行することができる。
【0054】
ノードのステータス・スペックは、ディスクの容量や、回線速度、CPUやメモリの量がそれにあたる。大量の画像データを送受信するにはメモリやディスクが十分なだけでは不十分で、回線に多量のデータを流すデータ容量が必要になるので、ノードのステータス・スペックを知ることは極めて重要である。
特にノード間接続に媒介する中継装置の数や、回線の帯域等によって決定されるネットワーク上の距離、及びネットワークの局所的な現在の使用状況、既に発行されている命令によって予測される将来のネットワークの局所的な現在の使用状況等を用いることは極めて重要である。
【0055】
CPU111mは、このようにしてノード計算資源量監視手段から取得した情報を基に、各ノードの現在の演算能力の順位を決定する。そして、前述のように決定されたジョブの優先度(処理順序の優先度)とこの各ノードの現在の演算能力の順位とを照らし合わせて、演算能力の高いノード順にジョブ優先度の高い順序にジョブを割り当てるようにする。このとき、ジョブ優先度の高いジョブを演算能力の高いノードの複数台に本発明による競争関係で並列処理させることも適宜可能である。以下、順にジョブを他のノードに割り当てていくようにすれば、過負荷のノードには最終的にジョブを割り当てられなくなることとなる。
【0056】
このジョブの実行の割り当てはクライアントがデータを選択して処理開始する毎に動的に行うようにするか、又は、クライアントが命令したときだけ開始するようにしている。
このジョブは前もって予約できるようにしておくと、後のジョブ割り当てが簡単かつスムーズに行うことができる。
【0057】
1つのノードに対して複数のジョブを予約し、かつこれらのジョブに優先順位を付けておくことにより、優先順に自動的にジョブ処理を開始させることができる。
また、1つのノードが複数のジョブを受け取った場合は、当該ジョブの優先順位はノード側が変更できるようにしておくことで、ノード側に弾力的なジョブ処理が行えるようになる。
【0058】
1つのノードに対して複数のジョブを予約し、これらの複数のジョブを他のノードに並列処理させるようにすることもできる。
ノードが複数の命令を順番に開始し、ジョブ処理の途中経過および処理終了をその都度クライアントに通知させるようにすると、クライアントコンピュータは並列処理中の各ノードの稼働状況を知ることが出来る。この場合、各計算ノードの稼働状況をクライアント側のディスプレー画面に表示すると、ユーザが視認できるようになり、操作性が良くなる。
【0059】
ノード割り当ての制御は、クライアントの他に他の計算ノードの1つ又は複数個も分担することができるようにすれば、計算資源の一層の活用が図られる。
【0060】
次に、引受側のノード(21〜2k)、及び自己と同格の他のコンピュータの各々に対して、上記の割り当てたジョブの実行依頼を、それぞれ同時に送信した後、自己処理分のジョブの処理に取り掛かる。この時、画像データDBの前記ジョブに対応するデータを、RAM212iに読み込んで、参照する。自己処理分のジョブの処理が完了すると(必要ならば待機し)、上記送信したいずれかのジョブを最も早く処理完了した引受側のノードからの処理結果を受け取る。
【0061】
受け取ったジョブの処理結果を検証し、問題が無ければ、上記ジョブを引き受けた自己と同格の前記他のコンピュータの各々、及び上記ジョブを最も早く処理し終えた上記ジョブ引受側のノードと同じ群に属する他のジョブ引受側のノードの各々に対して、当該ジョブの実行中止指令を送信する。
この時点で、CPU111mは、依頼すべき手持ちジョブは全て完了したか否かを検証し、依頼すべき手持ちジョブに未完了のものが残っている場合は、前述の他のノードの負荷情報から始まる一連の処理を繰り返す。
クライアントは計算の割り当てを途中で変更・休止・中止を動的に行えるようにしておくと、ユーザはディスプレー画面に表示された各ノードの稼働状況を知って遅いノードに対して計算の割り当てを途中で変更・休止・中止を素早く行えるので、無駄な演算を続行させることが回避できる。
【0062】
なお、前述の同時の通信手段として、通信ネットワーク10に固有のブロードキャスト手段等を使用することが可能である。
また、上記ジョブを引き受けたノードの各々は、それぞれ独立に、画像データベース24から、断層面に垂直な方向に沿って積層された2次元の断層画像データをRAM212に読み出し、必要な補間を行うことにより、3次元配列のボクセルデータを得て、ジョブの依頼元のコンピュータに送信するものとする。
【0063】
この時、現在のサイクルのボクセルデータの計算処理と、次のサイクルのための2次元断層画像データの読み込みとは、それぞれ別タスクで起動させ、かつ両者に並列動作をとらせることにより、処理時間を短縮することができる。ちなみに、このサイクルの周期は、RAM212の容量で決定されるが、2次元断層画像データの、RAM212における読み込み領域を、ダイナミックリロケーションさせることにより、実質的に無限長とすることも可能である。
【0064】
画像処理を分割して競争させるか、分割せずに競争させるかの判断基準は、画像処理を分割して再び統合させるという処理自体が複雑なので、かかる複雑な処理を介しても処理時間の短縮ができるのであれば分割にし、逆に極めて軽い簡単な画像処理の場合は分割せずに競争させるのがよい。
【0065】
以下、図5に示すフローチャートを使用して本実施形態に係るボリュームレンダリング画像処理システムの、特にジョブ依頼相手のノードの選択のしかたについてステップ22およびステップ23を中心に説明する。
まず、CPU111mは、依頼すべき手持ちのボリュームレンダリング処理の各々から、それぞれジョブを切り出すと共に、この切り出されたジョブの優先度(処理順序の優先度)を決定する(ステップS21)。
【0066】
次に、CPU111mは、引受側のノード(21〜2k)、及び自己と同格の他のコンピュータの現在の負荷状況、過去の実績、ノードのステータス・スペック、ネットワーク上の距離についてノード計算資源量監視手段から各情報を収集する(ステップS22)。
現在の負荷状況を知ることにより、高速演算可能なノードであっても現在過負荷下にあればそのノードには新たなジョブは出さず、逆に、高速演算向きでないノードであっても現在無負荷又は軽負荷下にあればそのノードに新たなジョブを出すことができる。
過去の実績を知ることにより、膨大なデータを改めて転送する必要がなくなったり、高速演算が得意なノードかメモリをたくさん使う処理が得意なノードかを知ることができ、それに合ったジョブを出すことができる。
ノードのステータス・スペックを知ることにより、多量のデータを流すことのできる大きなデータ容量の回線はどのノードか、を知ることができる。
ネットワーク上の距離を知ることにより、ノードに行き着くまでの時間を予想することができる。
【0067】
次に、CPU111mは、このようにしてノード計算資源量監視手段から取得した情報を基に、各ノードの現在の演算能力の順位を決定する。そして、ステップ21で決定されたジョブの優先度(処理順序の優先度)とこの各ノードの現在の演算能力の順位とを照らし合わせて、演算能力の高いノード順にジョブ優先度の高い順序にジョブを割り当てるようにする(ステップ23)。
このとき、ジョブ優先度の高いジョブを演算能力の高いノードの複数台に本発明による競争関係で並列処理させる。
【0068】
次に、CPU111mは、引受側のノード(21〜2k)、及び自己と同格の他のコンピュータの各々に対して、上記の割り当てたジョブの実行依頼を、それぞれ同時に送信する(ステップS24)。
【0069】
次に、CPU111mは、自己処理分のジョブを処理する(ステップS25)。
その後、CPU111mは、上記送信したいずれかのジョブを最も早く処理した引受側のノードからの処理結果を受け取る(ステップS26)。
次に、CPU111mは、受け取ったジョブの処理結果を検証する(ステップS27)。
次に、CPU111mは、上記ジョブを引き受けた自己と同格の前記他のコンピュータの各々、及び上記ジョブを最も早く処理した上記引受側のノードと同じ群に属する他の引受側のノードに対して、当該ジョブの実行中止指令を送信する(ステップS28)。
【0070】
次に、CPU111mは、依頼すべき手持ちジョブは全て完了したか否かを検証し、依頼すべき手持ちジョブに未完了のものが残っている場合はステップS22に戻る。また、依頼すべき手持ちジョブが全て完了している場合は処理を終了する(ステップS29)。
なお、この実施の形態では、システムが処理すべき仕事をボリュームレンダリング画像処理としたが、本発明に係るシステムは、一般に、他の任意の仕事の処理に適用することができる。特に、グリッドコンピューティングの1方式として使用することができる。
【0071】
また、本発明に係るCPU111m(図3)の処理の少なくとも一部をコンピュータ制御により実行するものとし、かつ、上記処理を、図5,6のフローチャートで示した手順によりコンピュータに実行せしめるプログラムは、半導体メモリを始め、CD−ROMや磁気テープなどのコンピュータ読み取り可能な記録媒体に格納して配付してもよい。そして、少なくともマイクロコンピュータ,パーソナルコンピュータ,汎用コンピュータを範疇に含むコンピュータが、上記の記録媒体から上記プログラムを読み出して、実行するものとしてもよい。
【0072】
以上は、画像処理演算を複数に分割して複数の演算処理を各ノードに競争させるものであったが、本発明はさらに付加的機能として、画像処理が時間的にA計算→B計算→C計算、・・・といった手順を踏んで最終的な画像が得られるとしたとき、そのうちの最後の画像処理はそれほど重い処理内容ではないので、ユーザのコンソールだけで計算させるようにするものである。
【0073】
すなわち、クライアントの物理ユーザコンソールに計算の一部を負担可能とさせる。例えば、ボリュームレンダリングで計算上のアフィン計算(一連の画像処理のうち最後の処理)を物理ユーザコンソールに特に負担させることが好ましい。
また、多ビット画像(濃淡9ビット以上の画像)からユーザ提示に適したWL変換とアフィン変換を物理ユーザコンソールに特に負担させることが好ましい。
ユーザインタフェース(UI)画面に表示するための拡大・縮小・パンといった処理を物理ユーザコンソールに特に負担させるのが好ましい。
また、GPUが搭載されている場合は、以上の処理を特にGPUに負担させるのが好ましい。GPUは、Graphic Processing Unitの略語で、汎用のCPUと比較して特に画像処理に特化した設計がなされている演算処理装置で、通常CPUとは別個にコンピュータに搭載されている。この場合、
GPUには実行時に動的に制御コードを読み込んで処理内容を変更できる機能を備えていることが望ましい。
また、画像以外の付帯情報である、患者名、誕生日、年齢、等といった患者に関する情報を物理ユーザコンソールに特に負担させるのが好ましい。
物理ユーザコンソールはWebブラウザのプラグイン(plug−inプログラム)であっても構わない。
【0074】
以上の説明では、画像処理の分散処理のうち、送信されたジョブを最も早く処理完了したノードからのジョブの処理結果を受け取って、該処理結果を検証すると共に、最も早く処理完了したノードを除く他のノード群に対して処理を中止させるようにしているが、最先処理したノードからのジョブの処理結果の受け取りを待たずに、処理途中であったとしても、特に処理の遅いノードに対しては最先処理の可能性が無くなったと判断したら処理を中止させるようにすれば、無駄な処理を続行させることがなくなるので、さらに効率的となる。
このようにするためには、送信されたジョブを処理している各ノードのジョブ処理の経過情報を取得する手段と、前記ジョブ処理経過情報取得手段の取得した情報を基に、ジョブを処理しているノードの1つ以上に対して、ジョブの実行中止指令を送信する手段と、を備えるようにすればよい。
【0075】
以上はボリュームレンダリングの分散処理についての実施例を説明してきたが、本発明の分散処理は当然のことながらんボリュームレンダリングに限定されるものではなく、ボリュームデータを用いる画像処理一般に適用できることは言うまでもない。例えば、領域抽出(segmentation)、フィルタ処理、雑音除去、画像合成、流量計算(Perfusion)、逆投影、投影、ジオメトリ変換等にも適用でき、特に、領域抽出は、VOI(Volume of Interest)の抽出から、臓器を表現する表面や中心線をボリュームから抽出し、それを利用した描画を行うことによって診断を助けることができるので有効である。
【図面の簡単な説明】
【0076】
【図1】本発明の実施形態に係るボリュームレンダリング画像処理システムのネットワーク構成を示すグラフである。
【図2】本発明の実施形態に係るボリュームレンダリング画像処理システムの全体構成を示す構成図である。
【図3】本発明の実施形態に係るボリュームレンダリング画像処理システムのジョブ依頼側のコンピュータの構成を示す構成図である。
【図4】本発明の実施形態に係るボリュームレンダリング画像処理システムのジョブ受取側のノードの構成を示す構成図である。
【図5】本発明の実施形態に係るボリュームレンダリング画像処理システムのジョブ依頼側のコンピュータの1例としての動作を示すフローチャートである。
【符号の説明】
【0077】
10 通信ネットワーク
11〜1n ジョブ依頼側のコンピュータ(ノード)
12,22 業務用DB(データベース)
13 管理用DB
23 処理用DB
14,24 画像データDB
21〜2k ジョブ引受側のコンピュータ(ノード)
110,210 コモンバス
111,211 CPU
112,212 RAM
113,213 回線制御部
114,214 通信制御部
115,215 DB管理部
116,216 表示部
117,217 入力部

【特許請求の範囲】
【請求項1】
ネットワーク接続された複数のノードを有して、CT等から得られる物体のボリュームデータを用いて3次元構造のイメージを直接描画する画像処理システムであって、
ジョブ依頼側のコンピュータ群の少なくとも1つにおいて、
ボリュームデータを用いた手持ちの画像処理のうち依頼すべき各々から複数のジョブを切り出すジョブ切り出し手段と、
前記複数の各ノードの現在の負荷状況、過去の実績、ノードのステータス・スペック、ネットワーク上の距離の1つ以上から成る計算資源量を監視するノード計算資源量監視手段と、
前記ノード計算資源量監視手段の取得した情報を基に、ジョブ依頼をするノードを1つ又は複数個選択するノード選択手段と、
前記ノード選択手段によって選択された1つ又は複数個のノードに対して、前記ジョブ切り出し手段から切り出されたジョブの実行依頼を送信する手段と、
を備えたことを特徴とするボリュームデータ使用の画像処理システム。
【請求項2】
前記切り出されたジョブの各々の優先度を決定するジョブ優先度決定手段と、
前記ノード計算資源量監視手段の取得した情報を基に、各ノードの現在の演算能力の順位を決定する演算能力順位決定手段と、
を備え、
前記ノード選択手段は、前記演算能力順位決定手段によって決定された順序でノードを1個又は複数個選択し、前記ジョブ優先度決定手段によって決定されたジョブ優先順に従って各ジョブの実行を前記選択された1個又は複数個のノードに対して割り当てていくことを特徴とする請求項1記載のボリュームデータ使用の画像処理システム。
【請求項3】
前記ジョブの実行の割り当てはクライアントがデータを選択して処理開始する毎に動的に行うようにすることを特徴とする請求項1又は2記載のボリュームデータ使用の画像処理システム。
【請求項4】
前記ジョブの実行の割り当てはクライアントが命令したときだけ開始するようにしたことを特徴とする請求項1又は2記載のボリュームデータ使用の画像処理システム。
【請求項5】
前記ジョブは前もって予約できることを特徴とする請求項3又は4記載のボリュームデータ使用の画像処理システム。
【請求項6】
1つのノードに対して複数のジョブを予約し、前記ジョブは優先順位情報を保有しており、優先順に自動的に処理開始させるようにしたことを特徴とする請求項5記載のボリュームデータ使用の画像処理システム。
【請求項7】
前記1つのノードが複数のジョブを受け取った場合は、当該ジョブの優先順位はノード側が変更できるようにしたことを特徴とする請求項6記載のボリュームデータ使用の画像処理システム。
【請求項8】
1つのノードに対して複数のジョブを予約し、該複数の命令を並列処理させるようにしたことを特徴とする請求項5記載のボリュームデータ使用の画像処理システム。
【請求項9】
前記ノードが複数の命令を順番に開始し、ジョブ処理の途中経過および処理終了をその都度クライアントに通知させるようにしたことを特徴とする請求項1〜8のいずれか1項記載のボリュームデータ使用の画像処理システム。
【請求項10】
前記ノード割り当ての制御は、当該クライアントの他に他の計算ノードの1つ又は複数個も分担することができるようにしたことを特徴とする請求項1〜9のいずれか1項記載のボリュームデータ使用の画像処理システム。
【請求項11】
各計算ノードの稼働状況をクライアント側のディスプレー画面に表示してユーザが視認できるようにしたことを特徴とする請求項1〜10のいずれか1項記載のボリュームデータ使用の画像処理システム。
【請求項12】
前記計算の割り当てを途中で変更・休止・中止を動的に行えるようにしたことを特徴とする請求項1〜11のいずれか1項記載のボリュームデータ使用の画像処理システム。
【請求項13】
前記送信手段は、前記ジョブの実行依頼を複数のノードに対して送信し、
前記送信されたジョブを最も早く処理完了したノードからの前記ジョブの処理結果を受け取って、該処理結果を検証する手段と、
前記最も早く処理完了したノードを除く前記他のノード群に対して、ジョブの実行中止指令を送信する手段と、を備えたことを特徴とする請求項1〜12のいずれか1項記載のボリュームデータ使用の画像処理システム。
【請求項14】
前記送信されたジョブを処理している各ノードのジョブ処理の経過情報を取得する手段と、
前記ノード計算資源量監視手段の取得した情報を基に、ジョブを処理しているノードの1つ以上に対して、ジョブの実行中止指令を送信する手段と、
を備えたことを特徴とする請求項1〜12のいずれか1項記載のボリュームデータ使用の画像処理システム。
【請求項15】
前記ボリュームデータ使用の画像処理は、ボリュームレンダリング処理、領域抽出処理、フィルタ処理、雑音除去処理、画像合成処理、流量計算処理、逆投影処理、投影処理、ジオメトリ変換処理のいずれか1つ以上であることを特徴とする請求項1〜14のいずれか1項記載のボリュームデータ使用の画像処理システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2006−31358(P2006−31358A)
【公開日】平成18年2月2日(2006.2.2)
【国際特許分類】
【出願番号】特願2004−208678(P2004−208678)
【出願日】平成16年7月15日(2004.7.15)
【出願人】(500109320)ザイオソフト株式会社 (59)
【Fターム(参考)】