(57)【特許請求の範囲】
【請求項１】
検体に対応する横ｘ画素×縦ｙラインの３次元レンダリング画像を、並列処理が可能であって、ツリー構造を成す複数のプロセッサが搭載されたマルチプロセッサユニットを用いて生成する画像処理装置において、
前記検体に対応するボリュームデータの容量Ｖ、単一の前記プロセッサに対応するメモリの容量Ｍ、前記３次元レンダリング画像のデータの容量Ｉ、前記マルチプロセッサユニットを構成するプロセッサユニットボードの数Nbrd、および前記マルチプロセッサユニットに搭載されている前記プロセッサの総数Npeを取得する取得手段と、
前記取得手段によって取得された前記メモリの容量Ｍが、次式（１）を満たす場合には処理モードＡを選択し、式（１）を満たさずに次式（２）を満たす場合には処理モードＢを選択し、式（１）および（２）を満たさずに次式（３）を満たす場合には処理モードＣを選択する選択手段と、
Ｍ＞Ｖ＋Ｉ／Npe                                     ・・・（１）
Ｍ＞Ｖ／Nbrd＋Ｉ                                    ・・・（２）
Ｍ＞Ｖ／Npe＋Ｉ                                     ・・・（３）
前記処理モードＡが選択された場合には前記ボリュームデータを分割せずに前記ツリー構造を成す前記複数のプロセッサに一括して供給し、前記処理モードＢが選択された場合には前記ボリュームデータを前記プロセッサユニットボードの数Nbrdで分割し、分割した前記ボリュームデータをそれぞれ異なる前記プロセッサユニットボードに供給し、前記処理モードＣが選択された場合には前記ボリュームデータを前記プロセッサの総数Npeで分割し、分割した前記ボリュームデータをそれぞれ異なる前記プロセッサに供給する供給手段と、
前記処理モードＡが選択された場合には単一のプロセッサが担当するスキャンライン数をｙ／Npeに決定し、前記処理モードＢが選択された場合には単一のプロセッサが担当するスキャンライン数をｙ／Nbrdに決定し、前記処理モードＣが選択された場合には単一のプロセッサが担当するスキャンライン数をｙに決定する決定手段と
を含むことを特徴とする画像処理装置。
【請求項２】
検体に対応する横ｘ画素×縦ｙラインの３次元レンダリング画像を、並列処理が可能であって、ツリー構造を成す複数のプロセッサが搭載されたマルチプロセッサユニットを用いて生成する画像処理装置の画像処理方法において、
前記検体に対応するボリュームデータの容量Ｖ、単一の前記プロセッサに対応するメモリの容量Ｍ、前記３次元レンダリング画像のデータの容量Ｉ、前記マルチプロセッサユニットを構成するプロセッサユニットボードの数Nbrd、および前記マルチプロセッサユニットに搭載されている前記プロセッサの総数Npeを取得する取得ステップと、
前記取得ステップの処理で取得された前記メモリの容量Ｍが、次式（１）を満たす場合には処理モードＡを選択し、式（１）を満たさずに次式（２）を満たす場合には処理モードＢを選択し、式（１）および（２）を満たさずに次式（３）を満たす場合には処理モードＣを選択する選択ステップと、
Ｍ＞Ｖ＋Ｉ／Npe                                     ・・・（１）
Ｍ＞Ｖ／Nbrd＋Ｉ                                    ・・・（２）
Ｍ＞Ｖ／Npe＋Ｉ                                     ・・・（３）
前記処理モードＡが選択された場合には前記ボリュームデータを分割せずに前記ツリー構造を成す前記複数のプロセッサに一括して供給し、前記処理モードＢが選択された場合には前記ボリュームデータを前記プロセッサユニットボードの数Nbrdで分割し、分割した前記ボリュームデータをそれぞれ異なる前記プロセッサユニットボードに供給し、前記処理モードＣが選択された場合には前記ボリュームデータを前記プロセッサの総数Npeで分割し、分割した前記ボリュームデータをそれぞれ異なる前記プロセッサに供給する供給ステップと、
前記処理モードＡが選択された場合には単一のプロセッサが担当するスキャンライン数をｙ／Npeに決定し、前記処理モードＢが選択された場合には単一のプロセッサが担当するスキャンライン数をｙ／Nbrdに決定し、前記処理モードＣが選択された場合には単一のプロセッサが担当するスキャンライン数をｙに決定する決定ステップと
を含むことを特徴とする画像処理方法。
【請求項３】
検体に対応する３次元レンダリング画像を、並列処理が可能であって、ツリー構造を成す複数のプロセッサが搭載されたマルチプロセッサユニットを用いて生成する画像処理装置の制御用のプログラムであって、
前記検体に対応するボリュームデータの容量Ｖ、単一の前記プロセッサに対応するメモリの容量Ｍ、前記３次元レンダリング画像のデータの容量Ｉ、前記マルチプロセッサユニットを構成するプロセッサユニットボードの数Nbrd、および前記マルチプロセッサユニットに搭載されている前記プロセッサの総数Npeを取得する取得ステップと、
前記取得ステップの処理で取得された前記メモリの容量Ｍが、次式（１）を満たす場合には処理モードＡを選択し、式（１）を満たさずに次式（２）を満たす場合には処理モードＢを選択し、式（１）および（２）を満たさずに次式（３）を満たす場合には処理モードＣを選択する選択ステップと、
Ｍ＞Ｖ＋Ｉ／Npe                                     ・・・（１）
Ｍ＞Ｖ／Nbrd＋Ｉ                                    ・・・（２）
Ｍ＞Ｖ／Npe＋Ｉ                                     ・・・（３）
前記処理モードＡが選択された場合には前記ボリュームデータを分割せずに前記ツリー構造を成す前記複数のプロセッサに一括して供給し、前記処理モードＢが選択された場合には前記ボリュームデータを前記プロセッサユニットボードの数Nbrdで分割し、分割した前記ボリュームデータをそれぞれ異なる前記プロセッサユニットボードに供給し、前記処理モードＣが選択された場合には前記ボリュームデータを前記プロセッサの総数Npeで分割し、分割した前記ボリュームデータをそれぞれ異なる前記プロセッサに供給する供給ステップと、
前記処理モードＡが選択された場合には単一のプロセッサが担当するスキャンライン数をｙ／Npeに決定し、前記処理モードＢが選択された場合には単一のプロセッサが担当するスキャンライン数をｙ／Nbrdに決定し、前記処理モードＣが選択された場合には単一のプロセッサが担当するスキャンライン数をｙに決定する決定ステップと
を含む処理を画像処理装置のコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像処理装置および方法、並びにプログラムに関し、特に、３次元物体の描画を複数のプロセッサに並列処理させることによって、処理に要する時間を短縮できるようにした画像処理装置および方法、並びにプログラムに関する。
【０００２】
【従来の技術】
近年、医療や工業などの分野において、３次元Ｘ線ＣＴ(Computerized Tomography)やMRI(Magnetic Resonance Imaging)の技術によって取得された３次元物体のボリュームデータ（３次元物体を構成するサンプリング点の３次元座標と、各サンプリング点における所定の項目のスカラー値）に基づき、３次元物体（以下、検体と記述する）を立体的に描画することが行われている。ボリュームデータに基づいて検体を立体的に描画する処理においては、ユーザからの操作に対応して、任意の視点、任意の倍率で検体を描画することができるので、例えばＸ線写真のような２次元画像では把握することが困難であった、検体の全体像や検体内部の点の空間的な位置関係を容易に把握することが可能となった。
【０００３】
ところで、取得されたボリュームデータに基づいて検体を立体的に描画する処理（以下、ボリュームレンダリング処理と記述する）には膨大な演算が必要となる。そこで、それら膨大な演算を、マルチプロセッサユニットを構成する複数のプロセッサエレメント（以下、ＰＥと記述する）に割り振り、各ＰＥに並列して演算させることによって処理時間を短縮させることが行われている。
【０００４】
図１は、従来のマルチプロセッサユニットの構成の一例を示している。このマルチプロセッサユニットは、複数のＰＥ１が格子状に配置されており、１個のＰＥ１が周囲に配置された８個のＰＥ１に接続されている。各ＰＥ１には、図２に示すような３次元空間に設定される各ブロックに関わる演算が割り振られるようになされている。例えば、ＰＥ１−０００には、ブロックＢＫ０００に関わる演算が割り振られる。また、例えば、ＰＥ１−０１０には、ブロックＢＫ０１０に関わる演算が割り振られる。
【０００５】
したがって、ボリュームレンダリング処理の対象とする検体が、例えば図２に示した４×４×４のブロックから成る３次元空間に対して十分に小さい場合、演算処理を割り振られないＰＥ１が存在し得る。
【０００６】
【発明が解決しようとする課題】
このように、ボリュームレンダリング処理に用いる従来のマルチプロセッサユニットにおいては、単一の割り振り方法によって演算を割り振るので、各ＰＥに割り振られる演算量が適切でない場合があり、演算に要する時間が必ずしも短縮されないことや、処理時間をより短縮できる余地を残している課題があった。
【０００７】
さらに、図１のように、各ＰＥ１が格子状に配置されている場合、各ＰＥ１に対して各種データを個別に通信する必要があるので、通信コスト（例えば、同じデータを通信する頻度）が多くなってしまい効率的ではない課題があった。
【０００８】
本発明はこのような状況に鑑みてなされたものであり、ボリュームレンダリング処理に関わる膨大な演算を、ボリュームデータの容量や各ＰＥが内蔵するローカルメモリの容量に対応して複数のＰＥに割り振ることにより、ボリュームレンダリング処理に要する時間を短縮できるようにすることを目的とする。
【０００９】
【課題を解決するための手段】
本発明の画像処理装置は、検体に対応するボリュームデータの容量Ｖ、単一のプロセッサに対応するメモリの容量Ｍ、３次元レンダリング画像のデータの容量Ｉ、マルチプロセッサユニットを構成するプロセッサユニットボードの数Nbrd、およびマルチプロセッサユニットに搭載されているプロセッサの総数Npeを取得する取得手段と、取得手段によって取得されたメモリの容量Ｍが、次式（１）を満たす場合には処理モードＡを選択し、式（１）を満たさずに次式（２）を満たす場合には処理モードＢを選択し、式（１）および（２）を満たさずに次式（３）を満たす場合には処理モードＣを選択する選択手段と、
Ｍ＞Ｖ＋Ｉ／Npe                                     ・・・（１）
Ｍ＞Ｖ／Nbrd＋Ｉ                                    ・・・（２）
Ｍ＞Ｖ／Npe＋Ｉ                                     ・・・（３）
処理モードＡが選択された場合にはボリュームデータを分割せずにツリー構造を成す複数のプロセッサに一括して供給し、処理モードＢが選択された場合にはボリュームデータをプロセッサユニットボードの数Nbrdで分割し、分割したボリュームデータをそれぞれ異なるプロセッサユニットボードに供給し、処理モードＣが選択された場合にはボリュームデータをプロセッサの総数Npeで分割し、分割したボリュームデータをそれぞれ異なるプロセッサに供給する供給手段と、処理モードＡが選択された場合には単一のプロセッサが担当するスキャンライン数をｙ／Npeに決定し、処理モードＢが選択された場合には単一のプロセッサが担当するスキャンライン数をｙ／Nbrdに決定し、処理モードＣが選択された場合には単一のプロセッサが担当するスキャンライン数をｙに決定する決定手段とを含むことを特徴とする。
【００１３】
本発明の画像処理方法は、検体に対応するボリュームデータの容量Ｖ、単一のプロセッサに対応するメモリの容量Ｍ、３次元レンダリング画像のデータの容量Ｉ、マルチプロセッサユニットを構成するプロセッサユニットボードの数Nbrd、およびマルチプロセッサユニットに搭載されているプロセッサの総数Npeを取得する取得ステップと、取得ステップの処理で取得されたメモリの容量Ｍが、次式（１）を満たす場合には処理モードＡを選択し、式（１）を満たさずに次式（２）を満たす場合には処理モードＢを選択し、式（１）および（２）を満たさずに次式（３）を満たす場合には処理モードＣを選択する選択ステップと、
Ｍ＞Ｖ＋Ｉ／Npe                                     ・・・（１）
Ｍ＞Ｖ／Nbrd＋Ｉ                                    ・・・（２）
Ｍ＞Ｖ／Npe＋Ｉ                                     ・・・（３）
処理モードＡが選択された場合にはボリュームデータを分割せずにツリー構造を成す複数のプロセッサに一括して供給し、処理モードＢが選択された場合にはボリュームデータをプロセッサユニットボードの数Nbrdで分割し、分割したボリュームデータをそれぞれ異なるプロセッサユニットボードに供給し、処理モードＣが選択された場合にはボリュームデータをプロセッサの総数Npeで分割し、分割したボリュームデータをそれぞれ異なるプロセッサに供給する供給ステップと、処理モードＡが選択された場合には単一のプロセッサが担当するスキャンライン数をｙ／Npeに決定し、処理モードＢが選択された場合には単一のプロセッサが担当するスキャンライン数をｙ／Nbrdに決定し、処理モードＣが選択された場合には単一のプロセッサが担当するスキャンライン数をｙに決定する決定ステップとを含むことを特徴とする。
【００１５】
本発明のプログラムは、検体に対応するボリュームデータの容量Ｖ、単一のプロセッサに対応するメモリの容量Ｍ、３次元レンダリング画像のデータの容量Ｉ、マルチプロセッサユニットを構成するプロセッサユニットボードの数Nbrd、およびマルチプロセッサユニットに搭載されているプロセッサの総数Npeを取得する取得ステップと、取得ステップの処理で取得されたメモリの容量Ｍが、次式（１）を満たす場合には処理モードＡを選択し、式（１）を満たさずに次式（２）を満たす場合には処理モードＢを選択し、式（１）および（２）を満たさずに次式（３）を満たす場合には処理モードＣを選択する選択ステップと、
Ｍ＞Ｖ＋Ｉ／Npe                                     ・・・（１）
Ｍ＞Ｖ／Nbrd＋Ｉ                                    ・・・（２）
Ｍ＞Ｖ／Npe＋Ｉ                                     ・・・（３）
処理モードＡが選択された場合にはボリュームデータを分割せずにツリー構造を成す複数のプロセッサに一括して供給し、処理モードＢが選択された場合にはボリュームデータをプロセッサユニットボードの数Nbrdで分割し、分割したボリュームデータをそれぞれ異なるプロセッサユニットボードに供給し、処理モードＣが選択された場合にはボリュームデータをプロセッサの総数Npeで分割し、分割したボリュームデータをそれぞれ異なるプロセッサに供給する供給ステップと、処理モードＡが選択された場合には単一のプロセッサが担当するスキャンライン数をｙ／Npeに決定し、処理モードＢが選択された場合には単一のプロセッサが担当するスキャンライン数をｙ／Nbrdに決定し、処理モードＣが選択された場合には単一のプロセッサが担当するスキャンライン数をｙに決定する決定ステップとを含む処理を画像処理装置のコンピュータに実行させることを特徴とする。
【００１６】
本発明においては、検体に対応するボリュームデータの容量Ｖ、単一のプロセッサに対応するメモリの容量Ｍ、３次元レンダリング画像のデータの容量Ｉ、マルチプロセッサユニットを構成するプロセッサユニットボードの数Nbrd、およびマルチプロセッサユニットに搭載されているプロセッサの総数Npeが取得され、取得されたメモリの容量Ｍが、次式（１）を満たす場合には処理モードＡが選択され、式（１）を満たさずに次式（２）を満たす場合には処理モードＢが選択され、式（１）および（２）を満たさずに次式（３）を満たす場合には処理モードＣが選択される。
Ｍ＞Ｖ＋Ｉ／Npe                                     ・・・（１）
Ｍ＞Ｖ／Nbrd＋Ｉ                                    ・・・（２）
Ｍ＞Ｖ／Npe＋Ｉ                                     ・・・（３）
そして、処理モードＡが選択された場合にはボリュームデータが分割されずにツリー構造を成す複数のプロセッサに一括して供給され、処理モードＢが選択された場合にはボリュームデータがプロセッサユニットボードの数Nbrdで分割され、分割されたボリュームデータがそれぞれ異なるプロセッサユニットボードに供給され、処理モードＣが選択された場合にはボリュームデータがプロセッサの総数Npeで分割され、分割されたボリュームデータがそれぞれ異なるプロセッサに供給される。さらに、処理モードＡが選択された場合には単一のプロセッサが担当するスキャンライン数がｙ／Npeに決定され、処理モードＢが選択された場合には単一のプロセッサが担当するスキャンライン数がｙ／Nbrdに決定され、処理モードＣが選択された場合には単一のプロセッサが担当するスキャンライン数がｙに決定される。
【００１７】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照して説明する。図３は、ボリュームレンダリングプログラム５１（図６）を実行することによって、本発明の画像処理装置として動作するパーソナルコンピュータの構成例を示している。
【００１８】
このパーソナルコンピュータは、CPU(Central Processing Unit)１１を内蔵している。CPU１１にはバス１４を介して、入出力インタフェース１５が接続されている。バス１４には、ROM(Read Only Memory)１２およびRAM(Random Access Memory)１３が接続されている。
【００１９】
入出力インタフェース１５には、マルチプロセッサユニット２６などの拡張カードを装着する拡張スロット１６、ユーザが操作コマンドを入力するキーボード、マウスなどの入力デバイスよりなる操作入力部１７、ボリュームレンダリング処理の結果である立体的な画像を表示するCRT(Cathode Ray Tube)またはLCD(Liquid Crystal Display)等よりなる表示部１８、プログラムやボリュームデータ等を格納するハードディスクドライブなどよりなる記憶部１９、インタネットなどを介して他のコンピュータとデータを通信する通信部２０、および磁気ディスク２２乃至半導体メモリ２５などの記録媒体に対してデータ等を読み書きするドライブ２１が接続されている。
【００２０】
このパーソナルコンピュータに画像処理装置としての動作を実行させるボリュームレンダリングプログラム５１は、磁気ディスク２２（フレキシブルディスクを含む）、光ディスク２３（CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む）、光磁気ディスク２４（ＭＤ(Mini Disc)を含む）、もしくは半導体メモリ２５に格納された状態でパーソナルコンピュータに供給され、ドライブ２１によって読み出されて記憶部１９に内蔵されるハードディスクドライブにインストールされている。記憶部１９にインストールされているボリュームレンダリングプログラム５１は、操作入力部１７に入力されるユーザからのコマンドに対応するCPU１１の指令によって、記憶部１９からRAM１３にロードされて実行される。
【００２１】
図４は、マルチプロセッサユニット２６の構成例を示している。マルチプロセッサユニット２６は、４個のＰＥボード３１−１乃至３１−４から構成される。なお、ＰＥボード３１の数は４以外であってもよい。
【００２２】
ＰＥボード３１−１は、図５に示すように、親ＰＥ４１の下階層に子ＰＥ４２−１乃至４２−５が接続されたツリー構造を成している。このようなツリー構造とすることにより、親ＰＥ４１から子ＰＥ４２−１乃至４２−５に対して同一の演算用プログラムやボリュームデータ等を供給する処理を１回の通信で済ませることができる。
【００２３】
親ＰＥ４１および子ＰＥ４２−１乃至４２−５は、それぞれローカルメモリ（以下、ＬＭと記述する）４３−１乃至４３−６を内蔵している。ＬＭ４３−１乃至４３−６は、同容量であるとする。なお、子ＰＥ４２の数は、５以外であってもよい。
【００２４】
親ＰＥ４１は、拡張スロット１６を介して通信ライブラリ５５（図６）から供給されるレンダリングモードに対応し、供給される演算用プログラム、パラメータ等を自己が内蔵するＬＭ４３−１に記憶するとともに、下階層の子ＰＥ４２−１乃至４２−５に供給する。また、親ＰＥ４１は、拡張スロット１６を介して通信ライブラリ５５から供給されるボリュームデータを、レンダリングモードに対応して、下階層の子ＰＥ４２−１乃至４２−５に供給する。さらに、親ＰＥ４１は、自己および子ＰＥ４２−１乃至４２−５の演算結果である画像データを結合し、拡張スロット１６を介して出力する。
【００２５】
親ＰＥ４１および子ＰＥ４２−１乃至４２−５は、自己が内蔵するＬＭ４３に記録されているボリュームデータだけアクセスし、所定の演算によって画像データを生成する。
【００２６】
ＰＥボード３１−２乃至３１−４も、上述したＰＥボード３１−１と同様に構成されるので、その説明は省略する。
【００２７】
図６は、CPU１１によって実行されるボリュームレンダリングプログラム５１の機能モジュールの構成例を示している。GUIモジュール５２は、操作入力部１７に入力されるユーザからの、ボリュームデータのスカラー値に対する不透明度や色を決定するための変換関数、視点の位置、および検体の姿勢等を示すパラメータを指定する操作を受け付ける。可視化モジュール５３は、GUIモジュール５２が受け付けたユーザからの入力をパラメータに変換する。
【００２８】
モード管理モジュール５４は、可視化モジュール５３が出力するパラメータ等に基づき、最適なレンダリングモードＡ，Ｂ，Ｃのうちの１つを選択する。通信ライブラリ５５は、マルチプロセッサユニット２６に対して、演算用プログラム、可視化モジュール５３が出力するパラメータ、およびモード管理モジュール５４が選択したレンダリングモードを供給する。また、モード管理モジュール５４は、モード管理モジュール５４が選択したレンダリングモードに対応して分割したボリュームデータをマルチプロセッサユニット２６に出力する。レンダリングモジュール５６は、マルチプロセッサユニット２６のＰＥボード３１−１乃至３１−４が出力する画像データに基づき、検体の全体が含まれるレンダリング画像データを生成する。
【００２９】
次に、ボリュームレンダリングプログラム５１によるボリュームレンダリング処理について、図７のフローチャートを参照して説明する。なお、既に、ボリュームデータは取得されており、視点の位置等を指定するユーザからの操作がなされており、各親ＰＥ４１および子ＰＥ４２には、演算用プログラムが供給されているものとする。
【００３０】
ステップＳ１において、モード管理モジュール５４は、ボリュームデータの容量Ｖ、各ＬＭ４３の使用可能容量Ｍ、処理結果として表示されるレンダリング画像データの容量Ｉ、マルチプロセッサユニット２６に搭載されているＰＥ（親ＰＥ４１および子ＰＥ４２）の数Npe、およびＰＥボード３１の数を取得する。
【００３１】
ここで、各ＬＭ４３の使用可能容量Ｍは共通であるとする。最終的に生成されるレンダリング画像データの容量Ｉは、最終的に表示されるレンダリング画像のサイズ（横ｘ画素×縦ｙライン）と１画素当たりの情報量ｚビットに基づいて決定される。マルチプロセッサユニット２６に搭載されているＰＥの数Npeは、いまの場合、２４（＝６×４）である。ＰＥボード３１の数は、いまの場合、４である。
【００３２】
なお、各ＬＭ４３の使用可能容量Ｍ、ＰＥの数Npe、およびＰＥボード３１の数は、特に変動する値ではないので、予め設定しておいてもよい。
【００３３】
ステップＳ２において、モード管理モジュール５４は、ステップＳ１で取得した各値が次式（１）に示すレンダリングモードＡの条件を満たすか否かを判定する。
Ｍ＞Ｖ＋Ｉ／Npe                                          ・・・（１）
【００３４】
レンダリングモードＡの条件である式（１）を満たすと判定された場合、処理はステップＳ３に進む。この場合、図８に示すように、検体のボリュームデータの容量Ｖは、後述するレンダリングモードＢ，Ｃが適用される場合に比較して小さいと考えられる。
【００３５】
ただし、検体のボリュームデータの大きさは、検体のレンダリング画像のサイズだけでなく、サンプリング点当たりのスカラー値の情報量などに依存して変化するが、図８においては、レンダリングモードＡ乃至Ｃが適用されるボリュームデータの大小関係を視覚的に認識し易くするために、描画される検体のレンダリング画像のサイズを変えている。
【００３６】
ステップＳ３において、通信ライブラリ５５は、マルチプロセッサユニット２６に対して、レンダリングモードＡを通知する。また、通信ライブラリ５５は、図９Ａに示すような検体の全体に対応するボリュームデータを分割せずにマルチプロセッサユニット２６に供給する。マルチプロセッサユニット２６の各ＰＥボード３１の親ＰＥ４１は、供給されたボリュームデータ（以下、全ボリュームデータと記述する）を自己のＬＭ４３に保持するとともに、下階層の子ＰＥ４２−１乃至ＰＥ４２−５に対して供給する。
【００３７】
これにより、マルチプロセッサユニット２６に搭載されている合計２４個のＰＥのそれぞれが全ボリュームデータを保持していることになり、２４個のＰＥのそれぞれが、検体の任意の部分の画像データを生成することが可能となる。
【００３８】
マルチプロセッサユニット２６に搭載されている合計２４個のＰＥは、それぞれ平行して、図９Ｂに示すように、最終的に表示されるレンダリング画像（横ｘ画素×縦ｙライン）のうち、（ｙ／２４）ライン分の画像データを生成する。
【００３９】
例えば、ＰＥボード３１−１の親ＰＥ４１は、最終的に表示されるレンダリング画像のうち、上から１番目の（ｙ／２４）ライン分の画像データを生成し、子ＰＥ４２−１は、上から２番目の（ｙ／２４）ライン分の画像データを生成し、子ＰＥ４２−２は、上から３番目の（ｙ／２４）ライン分の画像データを生成し、子ＰＥ４２−３は、上から４番目の（ｙ／２４）ライン分の画像データを生成し、子ＰＥ４２−４は、上から５番目の（ｙ／２４）ライン分の画像データを生成し、子ＰＥ４２−５は、上から６番目の（ｙ／２４）ライン分の画像データを生成するようにする。
【００４０】
ＰＥボード３１−２乃至３１−４においても同様に、各ＰＥが（ｙ／２４）ライン分の画像データを生成するようにする。
【００４１】
２４個の各ＰＥにおいて生成された（ｙ／２４）ライン分の画像データは、それぞれのＬＭ４３に保持される。
【００４２】
ステップＳ４において、各親ＰＥ４１は、自己と下位階層の子ＰＥ４２−１乃至４２−５によってそれぞれ生成された、上から１乃至６番目の（ｙ／２４）ライン分の画像データを結合して（ｙ／４）ライン分の画像データを生成して、ンダリングモジュール５６に出力する。
【００４３】
レンダリングモジュール５６は、ＰＥボード３１−１乃至３１−４のそれぞれから入力された４個の（ｙ／４）ライン分の画像データを結合して、図９Ｃに示すような最終的に表示されるレンダリング画像を生成する。ステップＳ５において、表示部５は、レンダリング画像を表示する。以上のように、レンダリングモードＡが適用された場合の処理が実行される。
【００４４】
ステップＳ２において、レンダリングモードＡの条件である式（１）を満たさないと判定された場合、処理はステップＳ６に進む。ステップＳ６において、モード管理モジュール５４は、ステップＳ１で取得した各値が次式（２）に示すレンダリングモードＢの条件を満たすか否かを判定する。
Ｍ＞Ｖ／Nbrd＋Ｉ                                          ・・・（２）
【００４５】
レンダリングモードＢの条件である式（２）を満たすと判定された場合、処理はステップＳ７に進む。この場合、図８に示すように、検体のボリュームデータの容量Ｖは、上述したレンダリングモードＡが適用される場合に比較して大きく、後述するレンダリングモードＣが適用される場合に比較して小さいと考えられる。
【００４６】
ステップＳ７において、通信ライブラリ５５は、マルチプロセッサユニット２６に対して、レンダリングモードＢを通知する。また、通信ライブラリ５５は、図１０Ａに示すように、検体のボリュームデータを、Ｘ，Ｙ，Ｚ軸のいずれかに垂直な面（図１０Ａの場合、Ｘ軸に垂直な面）でＰＥボード３１の数Nbrd（いまの場合、４）に分割する。以下、４分割された検体のボリュームデータを、サブボリュームデータ（１／４）乃至（４／４）と記述する。通信ライブラリ５５は、サブボリュームデータ（１／４）をＰＥボード３１−１に、サブボリュームデータ（２／４）をＰＥボード３１−２に、サブボリュームデータ（３／４）をＰＥボード３１−３に、サブボリュームデータ（４／４）をＰＥボード３１−４に供給する。
【００４７】
ＰＥボード３１−１の親ＰＥ４１は、供給されたサブボリュームデータ（１／４）を自己のＬＭ４３に保持するとともに、下階層の子ＰＥ４２−１乃至ＰＥ４２−５に対して供給する。これにより、ＰＥボード３１−１に搭載されている合計６個のＰＥのそれぞれが同一のサブボリュームデータ（１／４）を保持していることになり、６個のＰＥのそれぞれが、検体の最左側（１／４）のうち、任意の部分の画像データを生成することが可能となる。
【００４８】
ＰＥボード３１−１に搭載されている合計６個のＰＥは、それぞれ平行して、図１０Ｂに示すように、最終的に表示されるレンダリング画像（横ｘ画素×縦ｙライン）の最左側（１／４）のうち、（ｙ／６）ライン分の画像データを生成する。
【００４９】
例えば、ＰＥボード３１−１の親ＰＥ４１は、最終的に表示されるレンダリング画像の最左側（１／４）のうち、一番上の（ｙ／６）ライン分の画像データを生成し、子ＰＥ４２−１は、レンダリング画像の最左側（１／４）のうち、上から２番目の（ｙ／６）ライン分の画像データを生成し、子ＰＥ４２−２は、レンダリング画像の最左側（１／４）のうち、上から３番目の（ｙ／６）ライン分の画像データを生成するようにする。
【００５０】
ＰＥボード３１−１の６個の各ＰＥにおいて生成された、最終的に表示されるレンダリング画像の最左側（１／４）の（ｙ／６）ライン分の画像データは、それぞれのＬＭ４３に保持される。
【００５１】
なお、ＰＥボード３１−２乃至３１−４においても、同様の処理が平行して行われる。
【００５２】
ステップＳ８において、ＰＥボード３１−１の親ＰＥ４１は、自己と下位階層の子ＰＥ４２−１乃至４２−５によってそれぞれ生成された、最終的に表示されるレンダリング画像の最左側（１／４）の上から１乃至６番目の（ｙ／６）ライン分の画像データを結合することにより、最終的に表示されるレンダリング画像の最左側（１／４）の画像データを生成してレンダリングモジュール５６に出力する。
【００５３】
ＰＥボード３１−２乃至３１−４においても、同様の処理が平行して行われる。すなわち、ＰＥボード３１−２は、最終的に表示されるレンダリング画像の中央（２／４）の画像データをレンダリングモジュール５６に出力する。ＰＥボード３１−３は、最終的に表示されるレンダリング画像の中央（３／４）の画像データをレンダリングモジュール５６に出力する。ＰＥボード３１−４は、最終的に表示されるレンダリング画像の最右側（４／４）の画像データをレンダリングモジュール５６に出力する。
【００５４】
ステップＳ９において、レンダリングモジュール５６は、ＰＥボード３１−１乃至３１−４のそれぞれから入力された最終的に表示されるレンダリング画像の（１／４）乃至（４／４）の画像データに、重ね合わせ処理（図１０の場合、４分割されている検体の側面を合成する処理）を実行して、図１０Ｃに示す最終的に表示されるレンダリング画像を生成する。この後、処理はステップＳ５に進み、それ以降の処理が行われる。以上のように、レンダリングモードＢが適用された場合の処理が実行される。
【００５５】
ステップＳ６において、レンダリングモードＢの条件である式（２）を満たさないと判定された場合、処理はステップＳ１０に進む。ステップＳ１０において、モード管理モジュール５４は、ステップＳ１で取得した各値が次式（３）に示すレンダリングモードＣの条件を満たすか否かを判定する。
Ｍ＞Ｖ／Npe＋Ｉ                                          ・・・（３）
【００５６】
レンダリングモードＣの条件である式（３）を満たすと判定された場合、処理はステップＳ１１に進む。この場合、図８に示すように、検体のボリュームデータの容量Ｖは、上述したレンダリングモードＡ，Ｂが適用される場合に比較して大きいと考えられる。
【００５７】
ステップＳ１１において、通信ライブラリ５５は、マルチプロセッサユニット２６に対して、レンダリングモードＣを通知する。また、通信ライブラリ５５は、図１１Ａに示すように、検体のボリュームデータを、Ｘ，Ｙ，Ｚ軸のいずれかに垂直な面（図１１Ａの場合、Ｘ軸に垂直な面）でマルチプロセッサユニット２６に搭載されているＰＥの数Npe（いまの場合、２４）に分割する。以下、２４分割された検体のボリュームデータを、サブボリュームデータ（１／２４）乃至（２４／２４）と記述する。
【００５８】
通信ライブラリ５５は、サブボリュームデータ（１／２４）乃至（６／２４）をＰＥボード３１−１に、サブボリュームデータ（７／２４）乃至（１２／２４）をＰＥボード３１−２に、サブボリュームデータ（１３／２４）乃至（１８／２４）をＰＥボード３１−３に、サブボリュームデータ（１９／４）乃至（２４／２４）をＰＥボード３１−４に供給する。
【００５９】
ＰＥボード３１−１の親ＰＥ４１は、供給されたサブボリュームデータ（１／２４）を自己のＬＭ４３に保持し、サブボリュームデータ（２／２４）乃至（６／２４）を、それぞれ下階層の子ＰＥ４２−１乃至ＰＥ４２−５に供給する。これにより、ＰＥボード３１−１に搭載されている合計６個のＰＥのそれぞれがサブボリュームデータ（１／２４）乃至（６／２４）のいずれかを保持していることになり、６個のＰＥのそれぞれが、内蔵するＬＭ４３に保持されているサブボリュームデータに対応する部分の画像データだけを生成することが可能となる。
【００６０】
ＰＥボード３１−１の親ＰＥ４１は、最終的に表示されるレンダリング画像の最左側の（１／２４）の画像データを生成し、子ＰＥ４２−１は、左側から２番目の（２／２４）の画像データを生成し、子ＰＥ４２−２は、左側から３番目の（３／２４）の画像データを生成し、子ＰＥ４２−３は、左側から４番目の（４／２４）の画像データを生成し、子ＰＥ４２−４は、左側から５番目の（５／２４）の画像データを生成し、子ＰＥ４２−５は、左側から６番目の（３／２４）の画像データを生成するようにする。
【００６１】
ＰＥボード３１−２乃至３１−４においても、同様の処理が平行して実行される。すなわち、ＰＥボード３１−２においては、左側から７乃至１２番目の（７／２４）乃至（１２／２４）の画像データが生成され、ＰＥボード３１−３においては、左側から１３乃至１８番目の（１３／２４）乃至（１８／２４）の画像データが生成され、ＰＥボード３１−４においては、左側から１９乃至２４番目の（１９／２４）乃至（２４／２４）の画像データが生成される。
【００６２】
マルチプロセッサユニット２６に搭載された２４個の各ＰＥにおいてそれぞれ生成された、（１／２４）乃至（２４／２４）の画像データは、それぞれのＬＭ４３に保持される。
【００６３】
ステップＳ１２において、ＰＥボード３１−１の親ＰＥ４１は、自己と下位階層の子ＰＥ４２−１乃至４２−５がそれぞれ生成した、最終的に表示されるレンダリング画像の（１／２４）乃至（６／２４）の画像データに重ね合わせ処理を施し、最終的に表示されるレンダリング画像の左側から１番目の（１／４）の画像データを生成してレンダリングモジュール５６に出力する。
【００６４】
ＰＥボード３１−２乃至３１−４においても、同様の処理が行われる。すなわち、ＰＥボード３１−２からは、最終的に表示されるレンダリング画像の左側から２番目の（２／４）の画像データがレンダリングモジュール５６に出力される。ＰＥボード３１−３からは、最終的に表示されるレンダリング画像の左側から３番目の（３／４）の画像データがレンダリングモジュール５６に出力される。また、ＰＥボード３１−４からは、最終的に表示されるレンダリング画像の最右側の（３／４）の画像データがレンダリングモジュール５６に出力される。
【００６５】
レンダリングモジュール５６は、ＰＥボード３１−１乃至３１−４のそれぞれから入力された最終的に表示されるレンダリング画像の（１／４）乃至（４／４）の画像データの重ね合わせ処理（図１１の場合、検体の１／４の側面を合成する処理）を実行して、図１１Ｃに示す最終的に表示されるレンダリング画像を生成する。この後、処理はステップＳ５に進み、それ以降の処理が行われる。以上のように、レンダリングモードＣが適用された場合の処理が実行される。
【００６６】
なお、ステップＳ１０において、レンダリングモードＣの条件である式（３）を満たさないと判定された場合、ボリュームデータの容量Ｖがマルチプロセッサユニット２６では処理できないほど大きいと判断できるので、検体の描画は行われず、処理は終了される。以上、ボリュームレンダリング処理の説明を終了する。
【００６７】
上述したレンダリングモードＡ乃至Ｃにおける処理を比較すると、その数に対応して通信コストがかかる、処理ライン数に注目した場合、レンダリングモードＡでは、１個のＰＥが（ｙ／２４）ラインを処理し、レンダリングモードＢでは、１個のＰＥが（ｙ／６）ラインを処理し、レンダリングモードＣでは、１個のＰＥがｙラインを処理している。
【００６８】
したがって、レンダリングモードＡ乃至Ｃのうち、レンダリングモードＡが最も効率よく高速に、検体のレンダリングを実行することができ、レンダリングモードＢが２番目に効率的であり、レンダリングモードＣが最も低速でレンダリングを実行することになる。
【００６９】
以上説明したように、本発明においては、ボリュームデータの容量Ｉと各ＰＥのＬＭ３４の容量Ｍに応じて、サブボリュームの容量と、１個のＰＥが担当する処理ライン数を分配するようにしたので、ＰＥ間の画像転送量が最小となる。
【００７０】
また、本発明においては、ボリュームデータをサブボリュームデータに分割する際、ボリュームデータのローカル座標系の一軸に垂直な平面で区切って管理するので、ボリュームデータを容易に均等分割することができる。また、ＰＥの数やＰＥボードの数に基づいてボリュームデータを分割するので、画像の分割、結合の処理が容易となる。
【００７１】
ところで、上述した説明から明らかなように、各ＰＥのＬＭ４３にできるだけ多くのボリュームデータを保持することによって親ＰＥ４１と子ＰＥ４２との間の通信を極力少なくすれば処理を高速化することができる。よって、上述したようなＰＥの総数やＰＥボード３１の数に対応した３種類のレンダリングモードではなく、より複数のレンダリングモードを設定してもよい。
【００７２】
例えば、ＬＭ４３の容量が、図１０Ａに示したような全ボリュームデータの１／４のサブボリュームデータよりも少なくて、図１１Ａに示したような全ボリュームデータの１／２４のサブボリュームデータよりも多く、仮に全ボリュームデータの１／８のサブボリュームデータを保持できる場合、ＰＥボード３１に配置されている６個のＰＥを３個ずつの組として、同じく組に属する３個のＰＥが同一の１／８のサブボリュームデータを保持するようにしてもよい。このようにした場合、１個のＰＥが担当する処理ライン数は（ｙ／３）ラインで済むので、上述したレンダリングモードＣにおいて１個のＰＥがｙラインを担当していた場合に比較して処理を高速化することが可能である。
【００７３】
ただし、より複数のレンダリングモードを設定する場合、ボリュームデータを分配するプロセスが複雑化し、管理が困難となる場合がある。
【００７４】
【発明の効果】
以上のように、本発明によれば、ボリュームレンダリング処理に要する時間を短縮することが可能となる。
【図面の簡単な説明】
【図１】従来のマルチプロセッサユニットの構成の一例を示すブロック図である。
【図２】図１の各ＰＥ１が処理を担当する３次元空間に設定される各ブロックを示す図である。
【図３】パーソナルコンピュータの構成例を示すブロック図である。
【図４】図３のマルチプロセッサユニット２６の構成例を示すブロック図である。
【図５】図４のＰＥボード３１−１の構成例を示すブロック図である。
【図６】パーソナルコンピュータによって実行されるボリュームレンダリングプログラム５１の機能モジュールの構成例を示すブロック図である。
【図７】ボリュームレンダリング処理を説明するフローチャートである。
【図８】レンダリングモードＡ乃至Ｃが適用されるボリュームデータの容量を比較した図である。
【図９】レンダリングモードＡにおける処理を説明するための図である。
【図１０】レンダリングモードＢにおける処理を説明するための図である。
【図１１】レンダリングモードＣにおける処理を説明するための図である。
【符号の説明】
１１  CPU，  ２２  磁気ディスク，  ２３  光ディスク，  ２４  光磁気ディスク，  ２５  半導体メモリ，  ２６  マルチプロセッサユニット，  ３１  ＰＥボード，  ４１  親ＰＥ，  ４２  子ＰＥ，  ４３  ＬＭ，  ５１  ボリュームレンダリングプログラム，  ５２  GUIモジュール，  ５３  可視化モジュール，  ５４  モード管理モジュール，  ５５  通信ライブラリ，  ５６  レンダリングモジュール
【図１】
0004114131.tif 000002
【図２】
0004114131.tif 000003
【図３】
0004114131.tif 000004
【図４】
0004114131.tif 000005
【図５】
0004114131.tif 000006
【図６】
0004114131.tif 000007
【図７】
0004114131.tif 000008
【図８】
0004114131.tif 000009
【図９】
0004114131.tif 000010
【図１０】
0004114131.tif 000011
【図１１】
0004114131.tif 000012