JP2007244887A - Volumetric rendering method, volumetric rendering system, computer, and program - Google Patents

Volumetric rendering method, volumetric rendering system, computer, and program Download PDF

Info

Publication number
JP2007244887A
JP2007244887A JP2007113406A JP2007113406A JP2007244887A JP 2007244887 A JP2007244887 A JP 2007244887A JP 2007113406 A JP2007113406 A JP 2007113406A JP 2007113406 A JP2007113406 A JP 2007113406A JP 2007244887 A JP2007244887 A JP 2007244887A
Authority
JP
Japan
Prior art keywords
node
calculation
data
allocation
division
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2007113406A
Other languages
Japanese (ja)
Inventor
Kazuhiko Matsumoto
和彦 松本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ziosoft Inc
Original Assignee
Ziosoft Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ziosoft Inc filed Critical Ziosoft Inc
Priority to JP2007113406A priority Critical patent/JP2007244887A/en
Publication of JP2007244887A publication Critical patent/JP2007244887A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Apparatus For Radiation Diagnosis (AREA)
  • Magnetic Resonance Imaging Apparatus (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a volumetric rendering method, a volumetric rendering system, a computer, and a program, in which a calculation process is not necessary for calculation for interpolation of a rendering process close to a division surface in joining distributed rendering results obtained by division processes by voxel data division so as to carry out volumetric rendering process at high speed even in large voxel data that is otherwise difficult to be processed by use of a single computer achieving high cost performance. <P>SOLUTION: A storage server divides voxel data to a plurality of nodes for performing the volumetric rendering process in a division process. The voxel data are divided in such a way that the data overlap with each other at division surfaces. Each node performs the division rendering process to the divided voxel data. For interpolation calculation in the rendering process close to the division surface, data of the overlapped parts are used. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

本発明は、複数のノード(計算機)を備えたコンピュータネットワーク上で行われる、動的負荷割り当てを用いた協調分散処理によるボリュームレンダリング処理方法、ボリュームレンダリング処理システム、計算機及びプログラムに関するものである。   The present invention relates to a volume rendering processing method, a volume rendering processing system, a computer, and a program by cooperative distributed processing using dynamic load assignment performed on a computer network including a plurality of nodes (computers).

近年、ネットワーク環境および計算機が低価格化・高性能化により多くの病院に普及するようになってきている。病院内の複数箇所での利用ニーズに従い、院内ネットワークに複数台の画像処理システムがある場合も珍しくなくなってきている。CT,MRIなど医療画像診断機器で撮影された医療画像データ(ボクセルデータ)を画像処理システムの画面で見るときの画像処理にはボリュームレンダリング処理が行われる。   In recent years, network environments and computers have become popular in many hospitals due to lower prices and higher performance. In accordance with the needs of use at multiple locations in a hospital, it is not uncommon to have multiple image processing systems in the hospital network. Volume rendering processing is performed for image processing when viewing medical image data (voxel data) taken by a medical image diagnostic device such as CT or MRI on the screen of the image processing system.

CT,MRIなど医療画像診断機器の発達による測定分解能の向上とともに、医療画像データ(ボクセルデータ)のデータ容量が増大している。リアルタイムでデータ本来の分解能を反映させながらデータを間引かずにボリュームレンダリング処理を行うためには、大容量のメモリと高速なCPUなど膨大な計算資源を持つ計算機が必要である。現状では上記条件を満たすような計算機は現実的なコストでは得られない。そのためボリュームレンダリング処理を行うことができるボクセルデータの容量に限界がある。すなわち、現状ではコストパフォーマンスの高い計算機1台当たりが装備可能なメモリ容量と計算能力に限界があるため、ボリュームレンダリング処理を行うことができるボクセルデータの容量に限界がある。   The data capacity of medical image data (voxel data) is increasing with the improvement of measurement resolution due to the development of medical image diagnostic equipment such as CT and MRI. In order to perform volume rendering processing without thinning out data while reflecting the original resolution of the data in real time, a computer having a large amount of calculation resources such as a large-capacity memory and a high-speed CPU is required. At present, a computer that satisfies the above conditions cannot be obtained at a realistic cost. Therefore, there is a limit to the capacity of voxel data that can be subjected to volume rendering processing. That is, at present, there is a limit to the capacity of voxel data that can be subjected to volume rendering processing because there is a limit to the memory capacity and calculation capacity that can be installed per computer with high cost performance.

特に医療画像データのデータ容量の増加が著しい。この要因には時間分解能と空間分解能の向上が挙げられる。通常使用される3D医療画像データは、幅(X軸)、高さ(Y軸)が同じ2D画像(体の断面画像、1スライス)を体軸方向(Z軸)に何枚も積層することで構成される。さらに時間軸(T軸)が加わった4D医療画像データは、3D医療画像データの時系列で構成されるが、すでにデータ容量が大きい3Dデータを複数持つことになるため、膨大なデータ容量となる。診断機器の技術革新による時間分解能の向上(T軸方向)によって、3D医療画像の時系列データを臨床現場で取得できるようになってきた。   In particular, the increase in the data capacity of medical image data is remarkable. This factor includes improvements in temporal resolution and spatial resolution. Normally used 3D medical image data is a stack of 2D images (cross-sectional images of the body, 1 slice) with the same width (X axis) and height (Y axis) in the body axis direction (Z axis). Consists of. Furthermore, the 4D medical image data to which the time axis (T axis) is added is composed of a time series of 3D medical image data. However, since it already has a plurality of 3D data having a large data capacity, the data capacity becomes enormous. . With the improvement of time resolution (T-axis direction) due to technological innovation of diagnostic equipment, it has become possible to acquire time-series data of 3D medical images at clinical sites.

また、空間分解能の向上(X軸、Y軸方向)も進み、現在は1スライスの解像度は512 × 512 が主流であるがいずれ1024 × 1024 になると言われている。さらに、空間分解能の向上(Z軸方向)も挙げられ、1スライスの厚さが薄くなることで同じ撮影部位が従来よりも多くのスライス枚数から構成されるため、データ容量が増加している。   In addition, improvement in spatial resolution (X-axis and Y-axis directions) is also progressing, and it is said that the resolution of one slice is currently 512 × 512, but will eventually be 1024 × 1024. In addition, the spatial resolution is improved (in the Z-axis direction), and the data volume is increased because the thickness of one slice is reduced, so that the same imaging region is composed of a larger number of slices than before.

従来、図16に示すように、1台の計算機50で完結する画像処理システムがあった。この画像処理システムでは、一台の計算機(複数CPUの場合有り)50でボリュームレンダリング処理の全工程が行われる。   Conventionally, as shown in FIG. 16, there has been an image processing system that is completed by a single computer 50. In this image processing system, all the steps of volume rendering processing are performed by one computer (there may be a plurality of CPUs) 50.

また図17に示すように、ボクセルデータのストレージを行うストレージサーバー52とボリュームレンダリング処理・表示を行う画像処理システム53とに分け、ストレージサーバー52と複数台の計算機50をネットワークで繋いで構築されるシステム51があった。画像処理システム53は、必要なボクセルデータをストレージサーバー52から動的に取得して、画像処理システム内のメモリに読み込んだ後、ボリュームレンダリング処理を行う。長所としては、ボリュームレンダリングで編集したい、必要なボクセルデータのみ画像処理システム53で保持すればよい。つまり、ローカル・ストレージの浪費や、ローカル・ストレージ容量による制限がなくなる。   As shown in FIG. 17, the storage server 52 that stores voxel data and the image processing system 53 that performs volume rendering processing / display are divided into a storage server 52 and a plurality of computers 50 that are connected via a network. There was a system 51. The image processing system 53 dynamically acquires necessary voxel data from the storage server 52 and reads it into a memory in the image processing system, and then performs volume rendering processing. As an advantage, only the necessary voxel data to be edited by volume rendering may be stored in the image processing system 53. In other words, there is no waste of local storage and no limitation due to local storage capacity.

さらに図18に示すように、ボクセルデータのストレージとボリュームレンダリング処理を行うストレージ・計算サーバー56と、ボリュームレンダリング処理結果を表示する画像表示システム57とに分け、このサーバー56と複数台の計算機50をネットワークで繋いで構築されるシステム55があった。長所としては、(1) 処理結果を表示する計算機50は計算資源が少なくてもよく、画像表示システム57を低コストにすることができる、(2) 動的に計算資源を複数のユーザーに配分することができるなどが挙げられる。   Further, as shown in FIG. 18, the storage / calculation server 56 that performs voxel data storage and volume rendering processing and the image display system 57 that displays the volume rendering processing results are divided into the server 56 and a plurality of computers 50. There was a system 55 constructed by connecting with a network. Advantages: (1) The computer 50 that displays the processing results may require less computing resources, and can reduce the cost of the image display system 57. (2) Dynamically allocate computing resources to multiple users. And so on.

また、例えば非特許文献1には、分散処理において、レンダリング計算を画素ごとに分割するボリュームレンダリング処理方法が開示されている。また、非特許文献2には、分散処理において、ボクセルデータ(ボリューム)を分割する技術が開示されている。
吉岡政洋、外3名,ソフトウエアによる高速ボリュームレンダリング手法の開発と仮想化内視鏡システムへの適用,MEDICAL IMAGING TECHNOLOGY,日本,2001年11月,Vol. 19, No. 6,pp. 477 - 486 佐野健太郎、外3名,データ並列ボリュームレンダリングのためのボリューム適応分割手法,情報処理学会研究報告,日本,社団法人情報処理学会,1998年10月9日,Vol. 98, No. 93 (HPC-73),pp.7 -12
For example, Non-Patent Document 1 discloses a volume rendering processing method that divides rendering calculation for each pixel in distributed processing. Non-Patent Document 2 discloses a technique for dividing voxel data (volume) in distributed processing.
Masahiro Yoshioka, 3 others, development of high-speed volume rendering method by software and application to virtualized endoscope system, MEDICAL IMAGING TECHNOLOGY, Japan, November 2001, Vol. 19, No. 6, pp. 477- 486 Kentaro Sano, 3 others, Volume Adaptive Partitioning Method for Data Parallel Volume Rendering, Information Processing Society of Japan Research Report, Japan, Information Processing Society of Japan, October 9, 1998, Vol. 98, No. 93 (HPC- 73), pp.7 -12

しかしながら、非特許文献2に記載のように、ボクセルデータ(ボリューム)を分割してノード(計算機)に割り当てる構成を採用する場合、各ノードの分散レンダリング処理結果を一つに連結する際に、分割面近傍のレンダリング処理を補う必要があった。   However, as described in Non-Patent Document 2, when adopting a configuration in which voxel data (volume) is divided and assigned to nodes (computers), the divided rendering processing results of each node are combined into one. It was necessary to supplement the rendering process near the surface.

本発明の目的は、ボクセルデータ分割による分散処理で得られた分散レンダリング処理結果を一つに連結する際に、分割面近傍のレンダリング処理を補う計算処理が伴わずに済み、高コストパフォーマンスを満たす単一計算機では扱うことが難しい大容量ボクセルデータでも高速にボリュームレンダリング処理することができるボリュームレンダリング処理方法、ボリュームレンダリング処理システム、計算機及びプログラムを提供することにある。   The object of the present invention is that when the distributed rendering processing results obtained by the distributed processing by the voxel data division are combined into one, the calculation processing supplementing the rendering processing in the vicinity of the divided surface is not involved, and high cost performance is satisfied. An object of the present invention is to provide a volume rendering processing method, volume rendering processing system, computer, and program capable of performing volume rendering processing at high speed even for large-capacity voxel data that is difficult to handle with a single computer.

上記目的を達成するために請求項1に記載の発明は、複数のノードによってコンピュータネットワークが構築され、三次元以上のボクセルデータに施すべきボリュームレンダリング処理を少なくとも二のノードが分散処理で実行するボリュームレンダリング処理システムにおいて、少なくとも一のノードに設けられ、各ノードの計算余力及びメモリ空き状況に係る計算資源使用状況情報を基に分散処理可能な余力のある少なくとも二のノードを割り当てるノード割当手段と、少なくとも一のノードに設けられ、与えられたボクセルデータを、各割り当てノードの計算資源使用状況情報に応じた分割割合で、かつ分割面に関わるボクセルデータを重複させるように複数の分割ボクセルデータに分割するデータ分割割当部と、前記分割ボクセルデータを動的に前記各割り当てノードに割り当てる負荷割当手段と、前記割り当てノードとなる少なくとも二のノードに設けられ、割り当てられた分割ボクセルデータに対して分散レンダリング処理を行うとともに、少なくとも分割面近傍における分散レンダリング処理の補間計算を前記データの重複部分を用いて行う演算手段と、少なくとも一のノードに設けられ、前記各割り当てノードにおける分散レンダリング処理結果を取得して一つに整合させて連結する連結手段と、少なくとも一のノードに設けられ、前記連結されたレンダリング処理結果に基づくボリュームレンダリング画像を表示手段に表示する表示制御手段とを備えたことを要旨とする。   In order to achieve the above object, the invention according to claim 1 is a volume in which a computer network is constructed by a plurality of nodes, and volume rendering processing to be performed on voxel data of three or more dimensions is executed by at least two nodes by distributed processing. In the rendering processing system, a node allocating unit that is provided in at least one node and allocates at least two nodes having a capacity capable of distributed processing based on calculation resource use status information relating to calculation capacity and memory availability of each node; The voxel data provided in at least one node is divided into a plurality of divided voxel data so that the voxel data related to the division plane is overlapped at a division ratio according to the calculation resource usage status information of each allocation node. A data division allocating unit for performing the divided voxel data Load allocation means for dynamically assigning data to each allocation node, and at least two nodes serving as the allocation nodes, performing distributed rendering processing on the allocated divided voxel data, and at least in the vicinity of the division plane A calculation means for performing an interpolating calculation of the distributed rendering process using overlapping portions of the data, and a connection provided in at least one node, acquiring the distributed rendering process result in each of the allocation nodes, and aligning and connecting them together And a display control unit that is provided in at least one node and displays a volume rendering image based on the connected rendering processing result on a display unit.

この発明によれば、少なくとも一のノードにおいて、ノード割当手段が各ノードの各ノードの計算余力とメモリ空き容量とを含む計算資源使用状況情報を基に分散処理可能な余力のあるノードを、分散処理を行うノードとしてノード割り当てをする。少なくとも一のノードに設けられたデータ分割割当部は、各割り当てノードの計算資源使用状況情報に応じて、与えられたボクセルデータの分割割合を決定するとともにその分割割合でボクセルデータを分割するに当たり、分割面に関わるボクセルデータを重複させるようにボクセルデータを分割する。割り当てノードとなる少なくとも二のノードに設けられた演算手段は、割り当てられた分割ボクセルデータに対して分散レンダリング計算を行うとともに、少なくとも分割面近傍においては分散レンダリング処理をデータの重複部分も用いて行う。この結果、各割り当てノードにおける分散レンダリング処理を分割面まで行うことができる。そして、少なくとも一のノードに設けられた連結手段が、各割り当てノードにおける分散レンダリング計算結果を取得して整合させて一つに連結する。このとき、ボクセルデータ分割による分散処理で得られた分散レンダリング処理結果を一つに連結する際に、分割面近傍のレンダリング処理を補う計算処理が伴わずに済む。そして、少なくとも一のノードに設けられた表示制御手段は、連結されたレンダリング計算結果に基づくボリュームレンダリング画像を表示手段に表示する。従って、計算資源に余力のあるノードがあればその計算資源を有効活用し、複数のノード(計算機)が動的に負荷を分担しながらボリュームレンダリング演算を協調分散処理することで、単一計算機(ノード)では扱うことが難しい大容量データでも高速にボリュームレンダリング処理することが可能となる。   According to this invention, in at least one node, the node allocation means distributes a node having a surplus capacity that can be distributed based on the computation resource usage status information including the computation surplus capacity and the memory free capacity of each node. Assign a node as a node to perform processing. The data division allocation unit provided in at least one node determines the division ratio of the given voxel data according to the calculation resource usage status information of each allocation node and divides the voxel data by the division ratio, The voxel data is divided so as to overlap the voxel data related to the division plane. Arithmetic means provided in at least two nodes serving as allocation nodes performs distributed rendering calculation on the allocated divided voxel data, and performs distributed rendering processing using overlapping portions of data at least near the divided plane. . As a result, the distributed rendering process in each allocation node can be performed up to the division plane. Then, the connecting means provided in at least one node acquires and matches the distributed rendering calculation results in each allocation node and connects them to one. At this time, when the distributed rendering processing results obtained by the distributed processing by voxel data division are connected to one, it is not necessary to perform a calculation process to supplement the rendering processing in the vicinity of the divided surface. Then, the display control means provided in at least one node displays a volume rendering image based on the connected rendering calculation results on the display means. Therefore, if there is a node that has a surplus in computing resources, the computing resource is effectively utilized, and a plurality of nodes (computers) dynamically share the load and perform coordinated distributed processing of volume rendering operations, thereby allowing a single computer ( It is possible to perform volume rendering at high speed even for large-capacity data that is difficult to handle in a node.

請求項2に記載の発明は、請求項1に記載の発明において、前記分割面に関わるボクセルデータを重複させるとは、前記分割面近傍における補間計算が可能な量を重複させることをいうことを要旨とする。   According to a second aspect of the present invention, in the first aspect of the invention, the duplication of voxel data related to the division plane means that the amount of interpolation calculation in the vicinity of the division plane is duplicated. The gist.

この発明によれば、各割り当てノードには、補間計算が可能な量を重複させた分割ボクセルデータが割り当てられる。このため、各割り当てノードの演算手段が、分割面近傍における補間計算を行うことができる。   According to the present invention, divided voxel data in which an amount capable of interpolation calculation is overlapped is allocated to each allocation node. For this reason, the calculation means of each allocation node can perform interpolation calculation in the vicinity of the division plane.

請求項3に記載の発明は、請求項2に記載のボリュームレンダリング処理システムにおいて、前記補間計算は、グラディエント計算又はボクセル補間値計算であることを要旨とする。   The invention according to claim 3 is the volume rendering processing system according to claim 2, characterized in that the interpolation calculation is a gradient calculation or a voxel interpolation value calculation.

この発明によれば、請求項2に記載の発明の作用に加え、各割り当てノードは、分割ボクセルデータの分割面近傍におけるグラディエント計算又はボクセル補間値計算が可能となる。   According to the present invention, in addition to the operation of the invention according to the second aspect, each allocation node can perform gradient calculation or voxel interpolation value calculation in the vicinity of the divided surface of the divided voxel data.

請求項4に記載の発明は、請求項1〜3のいずれか一項に記載のボリュームレンダリング処理システムにおいて、前記分割ボクセルデータに対する計算負荷を、前記分割ボクセルデータの割り当て先の各ノードの計算資源使用状況情報に応じた分割割合で分割する計算分割割当部を更に備え、前記負荷割当手段は、前記計算分割当部が分割した計算負荷を前記割り当て先の各ノードに割り当てることを要旨とする。   According to a fourth aspect of the present invention, in the volume rendering processing system according to any one of the first to third aspects, a calculation load on the divided voxel data is calculated as a calculation resource of each node to which the divided voxel data is allocated. A gist of the present invention is further provided with a calculation division allocation unit that divides at a division ratio according to usage status information, and the load allocation unit allocates the calculation load divided by the calculation division unit to each node of the allocation destination.

この発明によれば、請求項1〜3のいずれか一項に記載の発明の作用に加え、計算分割割当部は、分割ボクセルデータの割り当て先の各割り当てノードにおける計算負荷を、計算資源状況使用情報に応じた分割割合で分割する。負荷割当手段は、計算分割割当部が分割した分割レンダリング計算を各割り当てノードに割り当てる。よって、複数のノードに同じ分割ボクセルデータが割り当てられ、各ノード間で分割ボクセルデータに対するレンダリング計算が分散処理で行われる。   According to the present invention, in addition to the operation of the invention according to any one of claims 1 to 3, the calculation division allocation unit uses the calculation load at each allocation node to which the divided voxel data is allocated as a calculation resource status. Divide by the division ratio according to information. The load allocation unit allocates the divided rendering calculation divided by the calculation division allocation unit to each allocation node. Therefore, the same divided voxel data is assigned to a plurality of nodes, and rendering calculation for the divided voxel data is performed by distributed processing between the nodes.

請求項5に記載の発明は、請求項1〜3のいずれか一項に記載のボリュームレンダリング処理システムにおけるノードを構成する計算機であって、前記ノード割当手段、前記データ分割割当部及び前記負荷割当手段を備えたことを要旨とする。   A fifth aspect of the present invention is a computer constituting a node in the volume rendering processing system according to any one of the first to third aspects, wherein the node allocation unit, the data division allocation unit, and the load allocation are performed. The gist is that a means is provided.

この発明によれば、計算機(コンピュータ)は、ノード割当手段、データ分割割当部及び負荷割当手段を備えるので、この計算機を、ボリュームレンダリング処理システムに用いることで、請求項1〜6のいずれか一項に記載の発明と同様の作用効果が得られる。   According to the present invention, the computer (computer) includes the node allocation unit, the data division allocation unit, and the load allocation unit. Therefore, by using this computer in the volume rendering processing system, any one of claims 1 to 6 is provided. The same effect as the invention described in the item can be obtained.

請求項6に記載の発明は、複数のノードによって構築されるコンピュータネットワークを用いて、少なくとも二のノードが、三次元以上のボクセルデータに施すべきボリュームレンダリング処理を分散処理で実行するボリュームレンダリング処理システムにおける前記ノードの機能をコンピュータに実現させるプログラムであって、コンピュータを、各ノードの計算余力とメモリ空き状況に係る計算資源使用状況情報に基づき分散処理を割り当て可能な余力のある少なくとも二のノードを割り当てるノード割当手段と、与えられたボクセルデータを、前記各割り当てノードの計算資源使用状況情報に応じた分割割合で、かつ分割面に関わるボクセルデータを重複させるように複数の分割ボクセルデータに分割するデータ分割割当部と、前記分割ボクセルデータを動的に前記各割り当てノードに割り当てる負荷割当手段と、割り当てられた分割ボクセルデータに対して分散レンダリング処理を行うとともに、少なくとも分割面近傍における分散レンダリング処理の補間計算を前記データの重複部分を用いて行う演算手段と、前記各割り当てノードにおける分散レンダリング処理結果を取得して一つに整合させて連結する連結手段と、前記連結されたレンダリング処理結果に基づくボリュームレンダリング画像を表示手段に表示する表示制御手段、として機能させるプログラムであることを要旨とする。   The invention according to claim 6 is a volume rendering processing system in which at least two nodes execute volume rendering processing to be applied to voxel data of three or more dimensions by distributed processing using a computer network constructed by a plurality of nodes. A program for causing a computer to realize the function of the node, wherein the computer includes at least two nodes having a capacity capable of allocating distributed processing based on calculation resource utilization information on each node and a calculation resource use state information relating to a memory empty state. The node allocation means to allocate and the given voxel data are divided into a plurality of divided voxel data so as to overlap the voxel data related to the division plane at a division ratio according to the calculation resource usage status information of each allocation node. A data division allocation unit, and Load allocation means for dynamically allocating voxel data to each of the allocation nodes, and performing distributed rendering processing on the allocated divided voxel data, and performing at least an interpolated calculation of distributed rendering processing in the vicinity of the divided plane Computing means for performing the above, a connecting means for acquiring and rendering the distributed rendering processing results at each of the allocation nodes and connecting them together, and displaying a volume rendering image based on the connected rendering processing results on the display means The gist of the present invention is that the program functions as display control means.

この発明によれば、プログラムをコンピュータに実行させることにより、請求項1に記載のボリュームレンダリング処理システムを構成するノードとして機能させることができ、このノードでシステムを構築することにより、請求項1に記載の発明と同様の作用効果が得られる。   According to the present invention, by causing a computer to execute a program, the computer can function as a node constituting the volume rendering processing system according to claim 1, and by constructing the system with this node, according to claim 1 Effects similar to those of the described invention can be obtained.

請求項7に記載の発明は、請求項6に記載のプログラムにおいて、前記分割面に関わるボクセルデータを重複させるとは、補間計算が可能な量を重複させることをいうことを要旨とする。   The gist of the invention described in claim 7 is that, in the program described in claim 6, duplicating the voxel data related to the divided plane means duplicating an amount capable of interpolation calculation.

この発明によれば、プログラムをコンピュータに実行させることにより、請求項2に記載のボリュームレンダリング処理システムを構成するノードとして機能させることができ、このノードでシステムを構築することにより、請求項2に記載の発明と同様の作用効果が得られる。   According to the present invention, by causing a computer to execute a program, it can function as a node constituting the volume rendering processing system according to claim 2, and by constructing the system with this node, according to claim 2 Effects similar to those of the described invention can be obtained.

請求項8に記載の発明は、請求項7に記載のプログラムにおいて、前記補間計算は、グラディエント計算又はボクセル補間値計算であることを要旨とする。
この発明によれば、プログラムをコンピュータに実行させることにより、請求項3に記載のボリュームレンダリング処理システムを構成するノードとして機能させることができ、このノードでシステムを構築することにより、請求項3に記載の発明と同様の作用効果が得られる。
The invention according to claim 8 is the program according to claim 7, wherein the interpolation calculation is gradient calculation or voxel interpolation value calculation.
According to the present invention, by causing a computer to execute a program, it can function as a node constituting the volume rendering processing system according to claim 3, and by constructing the system with this node, according to claim 3 Effects similar to those of the described invention can be obtained.

請求項9に記載の発明は、請求項6〜8のいずれか一項に記載のプログラムであって、前記分割ボクセルデータに対する計算負荷を、前記分割ボクセルデータの割り当て先の各ノードの計算資源使用状況情報に応じた分割割合で分割する計算分割割当部としてもコンピュータを機能させ、前記負荷割当手段は、前記計算分割割当部が分割した計算負荷を前記各割り当て先の各ノードに割り当てることを要旨とする。     Invention of Claim 9 is a program as described in any one of Claims 6-8, Comprising: The calculation load with respect to the said division | segmentation voxel data is used of the calculation resource of each node to which the division | segmentation voxel data is allocated. The computer also functions as a calculation division allocation unit that divides at a division ratio according to the situation information, and the load allocation unit allocates the calculation load divided by the calculation division allocation unit to each node of each allocation destination And

この発明によれば、プログラムをコンピュータに実行させることにより、請求項4に記載のボリュームレンダリング処理システムを構成するノードとして機能させることができ、このノードでシステムを構築することにより、請求項4に記載の発明と同様の作用効果を得ることができる。   According to the present invention, by causing a computer to execute a program, it can function as a node constituting the volume rendering processing system according to claim 4, and by constructing the system with this node, claim 4 Effects similar to those of the described invention can be obtained.

請求項10に記載の発明は、複数のノードによって構築されるコンピュータネットワークを用いて、三次元以上のボクセルデータに対して少なくとも二のノードが分散処理でボリュームレンダリング処理を施すボリュームレンダリング処理方法であって、前記複数のノードのうち少なくとも一のノード割当手段が、各ノードの計算余力及びメモリ空き状況に係る計算資源使用状況情報に基づいて分散処理可能な余力のある少なくとも二のノードを割り当てる段階と、少なくとも一のノードのデータ分割割当部が、与えられたボクセルデータを、各割り当てノードの計算資源使用状況情報に応じた分割割合で、かつ分割面に関わるボクセルデータを重複させるように複数の分割ボクセルデータに分割する段階と、少なくとも一のノードの負荷割当手段が、前記分割ボクセルデータを動的に前記各割り当てノードに割り当てる段階と、前記割り当てノードの演算手段が、割り当てられた分割ボクセルデータに対して分散レンダリング処理を行うとともに、少なくとも分割面近傍における分散レンダリング処理の補間計算を前記データの重複部分を用いて行う段階と、少なくとも一のノードの連結手段が、前記各割り当てノードにおける分散レンダリング処理結果を取得して一つに整合させて連結する段階と、少なくとも一の表示制御部が、前記連結されたレンダリング処理結果に基づくボリュームレンダリング画像を表示手段に表示する段階とを備えたことを要旨とする。   The invention according to claim 10 is a volume rendering processing method in which at least two nodes perform volume rendering processing by distributed processing on three-dimensional or more voxel data using a computer network constructed by a plurality of nodes. And at least one node allocating unit among the plurality of nodes allocates at least two nodes having a capacity capable of distributed processing based on calculation resource usage status information relating to calculation capacity and memory availability of each node; The data division / allocation unit of at least one node divides the given voxel data into a plurality of divisions so that the voxel data related to the division plane overlap with the division ratio according to the calculation resource usage status information of each allocation node Dividing into voxel data and load allocation of at least one node Means for dynamically allocating the divided voxel data to each of the allocation nodes; and the calculation means of the allocation node performs distributed rendering processing on the allocated divided voxel data, and at least distributed in the vicinity of the division plane A step of performing an interpolation calculation of the rendering process using the overlapping portion of the data, and a step of connecting at least one node connecting the result of obtaining the distributed rendering process in each of the allocation nodes and matching them together The gist of the invention is that at least one display control unit includes a step of displaying a volume rendering image based on the connected rendering processing result on a display unit.

この発明によれば、請求項1に記載のシステムの発明と同様の作用効果が得られる。   According to the present invention, the same effect as that of the system invention of claim 1 can be obtained.

請求項1〜10に記載の発明によれば、ボクセルデータを分割して複数のノードに割り当てて分散処理を行う場合に、ボクセルデータを分割面に関わるボクセルデータを重複させるように分割し、分割面近傍でも補間計算が可能となるように分割データに冗長性を持たせるので、各割り当てノードにおける分散レンダリング処理を分割面まで行うことができる。よって、ボクセルデータ分割による分散処理で得られた分散レンダリング処理結果を一つに連結する際に、分割面近傍のレンダリング処理を補う計算処理が伴わずに済み、高コストパフォーマンスを満たす単一計算機では扱うことが難しい大容量ボクセルデータでも高速にボリュームレンダリング処理することができる。   According to the first to tenth aspects of the present invention, when the voxel data is divided and assigned to a plurality of nodes and distributed processing is performed, the voxel data is divided so as to overlap the voxel data related to the division plane. Since the divided data is made redundant so that the interpolation calculation is possible even in the vicinity of the surface, the distributed rendering process at each allocation node can be performed up to the divided surface. Therefore, when connecting the distributed rendering processing results obtained by the distributed processing by voxel data division into one, there is no calculation processing to supplement the rendering processing in the vicinity of the divided surface, and in a single computer satisfying high cost performance Volume rendering processing can be performed at high speed even for large-capacity voxel data that is difficult to handle.

以下、本発明を具体化した一実施形態を図1〜図15に従って説明する。
図1に示すボリュームレンダリング協調分散処理システム1は、例えば病院内に配備されている。病院内の複数箇所には、CT,MRIなどの医療画像を見るための複数台(ここでは3台)の画像処理システムA,B,Cが設置されている。これらの画像処理システムA,B,Cが医療画像データ(ボクセルデータ)を記憶(蓄積)するサーバー(ストレージサーバー)2と通信線を介して接続され、コンピュータネットワークとしての院内ネットワーク(LAN))が構築されている。
Hereinafter, an embodiment embodying the present invention will be described with reference to FIGS.
A volume rendering cooperative distributed processing system 1 shown in FIG. 1 is provided in a hospital, for example. A plurality of (three in this case) image processing systems A, B, and C for viewing medical images such as CT and MRI are installed at a plurality of locations in the hospital. These image processing systems A, B, and C are connected via a communication line to a server (storage server) 2 that stores (accumulates) medical image data (voxel data), and a hospital network (LAN) as a computer network is provided. Has been built.

画像処理システムA,B,Cは、コンピュータ(例えばワークステーション)によって構成されており、計算機(ノード)としてのコンピュータ本体3、表示装置4および入力装置5をそれぞれ備えている。ストレージサーバー2には、CT,MRIなど医療画像診断機器で撮影された医療画像データ(ボクセルデータ)が蓄積されている。医師は画像処理システムA,B,Cの画面を通してストレージサーバー2に蓄積された例えば患者の医療画像を見ることができる。   Each of the image processing systems A, B, and C is configured by a computer (for example, a workstation), and includes a computer main body 3, a display device 4, and an input device 5 as computers (nodes). The storage server 2 stores medical image data (voxel data) taken by medical image diagnostic equipment such as CT and MRI. A doctor can view, for example, medical images of patients stored in the storage server 2 through the screens of the image processing systems A, B, and C.

医療画像データ(ボクセルデータ)は、CT,MRIなど医療画像診断機器の発達による測定分解能の向上とともに、そのデータ容量が増大している。医療画像データのデータ容量増大の要因として診断機器の空間分解能及び時間分解能の向上が挙げられる。空間分解能向上としては、(1)X-Y軸方向:現在は1スライスの解像度は51 2×512が主流であるが、いずれ1024×1024になると言われている、(2)Z軸方向:1スライスの厚さが薄くなることで、物体を構成するスライス枚数が従来よりも多くなる、などがある。また時間分解能向上としては、(1)マルチスライスCTという技術により、単位時間内で撮影できるスライス枚数が増えているため、短時間でより多くのスライス画像を得ることができる、(2)(1)と撮影時間の短縮により、心臓の拍動など器官の動きを3次元で撮影することが容易になりつつある、などがある。   The medical image data (voxel data) has an increased data capacity as the measurement resolution is improved due to the development of medical image diagnostic equipment such as CT and MRI. As a factor of the increase in the data volume of medical image data, there is an improvement in the spatial resolution and temporal resolution of the diagnostic device. As for spatial resolution improvement, (1) XY axis direction: Currently, the resolution of 1 slice is 51 2 × 512, but it is said that it will eventually become 1024 × 1024. (2) Z axis direction: 1 slice As the thickness of the object becomes thinner, the number of slices constituting the object becomes larger than before. In addition, as time resolution improvement, (1) Since the number of slices that can be photographed within a unit time is increased by the technique called multi-slice CT, more slice images can be obtained in a short time. ) And shortening the imaging time, it is becoming easier to image the movement of an organ such as the heartbeat in three dimensions.

医療画像データ(ボクセルデータ)を表示装置4の画面で見るときの画像処理にはボリュームレンダリング処理が行われる。リアルタイムでデータ本来の分解能を反映させながらデータを間引かずにボリュームレンダリング処理を行うために、複数の計算機で分散処理を行う。各計算機3は計算資源に余裕がある場合、別計算機3のプロセスに計算資源を提供することができるため、ユーザーが直接使用していない場合にも計算資源が有効に活用される。また、冗長性を持たせることによる高可用性を実現する。   Volume rendering processing is performed for image processing when medical image data (voxel data) is viewed on the screen of the display device 4. In order to perform volume rendering processing without thinning out data while reflecting the original resolution of the data in real time, distributed processing is performed by a plurality of computers. Since each computer 3 can provide calculation resources to the process of another computer 3 when there is a surplus in calculation resources, the calculation resources are effectively used even when the user does not use them directly. In addition, high availability is realized by providing redundancy.

ここで、「ボリュームレンダリング」とは、ボリュームデータ(volume data,vo lumetric data)を2次元(2D)画像に表示する方法である。視点位置から視線方向に向かってレイキャスティングを行い、画像を生成する。通常ボリュームデータは、3次元物体をサンプリングした三次元ボクセルデータを指すことが多いが、本実施形態ではボクセルデータの次元を3次元に限定しない。特に3次元と4次元のボクセルデータ(空間軸3+時間軸1)を想定している。一般的に用いられる4Dボクセルデータは、3Dボクセルデータを時系列にしたものである。従って、4Dボクセルデータに対するボリュームレンダリング処理は、一般にはアニメーション(3Dボクセルデータに対するボリュームレンダリングを時系列に従って高速に行う)を指す場合が多い。ボクセルデータの次元としては、3次元と4次元に留まらず、さらに5次元以上であっても構わない。4Dデータのアニメーション処理は、多次元ボリュームレンダリング処理の視点から見ると、n次元データの異なる(n−1)次元断面を高速に次々表示する処理に対応する。また「ボクセルデータ」とは、3次元以上の離散的な配列データであって、2D配列データのピクセルデータに対応するものである。   Here, “volume rendering” is a method of displaying volume data (volume data, volumetric data) on a two-dimensional (2D) image. Ray casting is performed from the viewpoint position toward the line of sight to generate an image. Usually, volume data refers to three-dimensional voxel data obtained by sampling a three-dimensional object, but in this embodiment, the dimension of the voxel data is not limited to three dimensions. In particular, three-dimensional and four-dimensional voxel data (space axis 3 + time axis 1) is assumed. Generally used 4D voxel data is 3D voxel data time-series. Therefore, the volume rendering process for 4D voxel data generally indicates an animation (volume rendering for 3D voxel data is performed at high speed in time series) in many cases. The dimensions of the voxel data are not limited to 3 dimensions and 4 dimensions, and may be 5 dimensions or more. The animation process of 4D data corresponds to the process of displaying different (n-1) dimensional sections of n-dimensional data one after another from the viewpoint of the multi-dimensional volume rendering process. The “voxel data” is three-dimensional or more discrete array data and corresponds to pixel data of 2D array data.

ボリュームレンダリングの種類としては、各ボクセルに不透明度を設定してレイキャスティングを行う方法(一般にボリュームレンダリングはこれを指す場合が多い)、MIP(Maximum Intensity Projection), Min IP(Minimum Intensity Projection)、RaySum等が挙げられる。   As the type of volume rendering, a method of performing ray casting by setting opacity for each voxel (generally, volume rendering often refers to this), MIP (Maximum Intensity Projection), Min IP (Minimum Intensity Projection), RaySum Etc.

また、応用範囲は多岐に渡り、使用するデータがボクセルデータであればデータ取得方法には特によらない。例えば、医療分野の他、顕微鏡解析、気象解析、地質調査(石油探査など)、非破壊検査などが挙げられる。なお、5次元以上のボクセルデータには、例えば分子間力の解析(結合角)などが挙げられる。   In addition, the application range is wide, and if the data to be used is voxel data, it does not depend on the data acquisition method. For example, in addition to the medical field, microscopic analysis, meteorological analysis, geological survey (petroleum exploration, etc.), nondestructive inspection, and the like can be mentioned. Examples of voxel data having five or more dimensions include analysis of intermolecular forces (bond angles).

本システム1の特徴は、ボクセルデータのストレージ(保管)を行うストレージサーバー2と、ボリュームレンダリング処理・表示を行う画像処理システムA,B,Cとに分けた点にある。複数台の画像処理システムA,B,Cは互いに協調して計算を行い、互いに対等な関係にある。従来技術で述べた図17,18の手法において計算資源を提供する計算機が一台であるのに対し、本実施形態による新規手法では計算資源を複数台の計算機3が提供する。各計算機3には、協調分散処理対応の同一のプログラムがそれぞれインストールされている。   The system 1 is characterized in that it is divided into a storage server 2 that stores voxel data and image processing systems A, B, and C that perform volume rendering processing and display. The plurality of image processing systems A, B, and C perform calculations in cooperation with each other and are in an equal relationship with each other. In the method of FIGS. 17 and 18 described in the prior art, there is only one computer that provides computing resources, whereas in the new method according to this embodiment, a plurality of computers 3 provide computing resources. Each computer 3 is installed with the same program that supports cooperative distributed processing.

図1に括弧( )で示した数字は、ボリュームレンダリング協調分散処理の流れを示すものである。以下、処理の手順について順に説明する。なお、医師(ユーザー)が画面上で医療画像を見るために入力装置5が操作される画像処理システムが「メイン」となる。ここでは画像処理システムAをメインとする。   The numbers in parentheses () in FIG. 1 indicate the flow of volume rendering cooperative distributed processing. Hereinafter, the processing procedure will be described in order. The image processing system in which the input device 5 is operated in order for the doctor (user) to view the medical image on the screen is “main”. Here, the image processing system A is the main.

(1) データリスト要求
メインの画像処理システムの入力装置5を操作して医療画像を選択するためのデータリストをストレージサーバー2に対して要求する。
(1) Data list request The storage server 2 is requested for a data list for selecting a medical image by operating the input device 5 of the main image processing system.

(2) データリスト取得
上記データリスト要求に応答してストレージサーバー2から送られてくるデータリストを取得する。
(2) Data list acquisition The data list sent from the storage server 2 in response to the data list request is acquired.

(3) ノード割り当て
データリスト取得によって画像表示の指示が予想されると、メインとなる画像処理システムAは、ネットワーク上の他の画像処理システムの計算資源利用状況を確認する。この計算資源利用状況確認のため本実施形態では、その情報としてメモリ空き容量およびCPU使用率を取得する。そしてCPU使用率から例えばCPU余力(=(1−CPU使用率)×CPUクロック周波数)を求める。そしてCPU余力とメモリ空き容量とを基に処理能力(計算資源)上の余力が必要量ある他ノードの存在の有無を判断し、該当する他ノードが存在すればそれを分散処理に加わる画像処理システムとして決定する。つまりメインノード3と共に分散処理に加わるサブノード3をその余力(処理能力の空き)に応じて決定し、分散処理を担当する各ノードを割り当てる。
(3) Node allocation When an instruction to display an image is predicted by acquiring the data list, the main image processing system A checks the use status of the computational resources of other image processing systems on the network. In this embodiment, the memory free capacity and the CPU usage rate are acquired as the information for confirming the calculation resource utilization status. Then, for example, CPU remaining power (= (1-CPU usage rate) × CPU clock frequency) is obtained from the CPU usage rate. Then, based on the CPU remaining capacity and the free memory capacity, it is determined whether or not there is another node having a necessary amount of processing capacity (calculation resources), and if there is such a corresponding node, image processing is added to the distributed processing. Decide as a system. That is, the sub-node 3 that participates in the distributed processing together with the main node 3 is determined according to the remaining capacity (empty processing capacity), and each node in charge of the distributed processing is assigned.

ここで、CPU余力とは、上記計算式からCPU使用率を用いて算出されたものに限定されず、CPUの種類・性能の違いの要素を考慮して決定されるものであってもよい。またノード割り当て前などにベンチマークを行い、各ノードの処理能力(又は余力)を計測する方法を採用しても構わない。さらにCPU性能やメモリ性能の違いを考慮してCPU余力とメモリ空き容量とから決まるトータルパフォーマンスを考慮して計算資源の余力を決める方法を採用することも可能である。同図では、画像処理システムAの他、画像処理システムB,Cが協調分散処理のノードとして選択されている。なお、本実施形態では、各ノード3からメモリ使用率の情報を通信で取得し、メモリ空き容量(=(1−メモリ使用率)×メモリ容量)を求めている。特に本実施形態では全てのノード3のメモリが同一性能(種類)・同一容量であることから、メモリ空き容量をメモリ空き率(=1−メモリ使用率)から判断している。もちろん、メモリ使用率そのものからメモリ空き容量を判断してもよい。   Here, the CPU remaining capacity is not limited to that calculated using the CPU usage rate from the above formula, but may be determined in consideration of factors of differences in CPU type and performance. In addition, a method may be employed in which benchmarking is performed before node allocation and the processing capacity (or remaining capacity) of each node is measured. Furthermore, it is also possible to adopt a method for determining the remaining capacity of computing resources in consideration of the total performance determined from the CPU remaining capacity and the memory free capacity in consideration of the difference in CPU performance and memory performance. In the figure, in addition to the image processing system A, the image processing systems B and C are selected as nodes for cooperative distributed processing. In the present embodiment, memory usage rate information is acquired from each node 3 by communication, and the free memory capacity (= (1−memory usage rate) × memory capacity) is obtained. In particular, in this embodiment, since the memory of all the nodes 3 has the same performance (type) and the same capacity, the memory free capacity is determined from the memory free ratio (= 1-memory usage ratio). Of course, the available memory capacity may be determined from the memory usage rate itself.

メインとなる画像処理システムA(メインノード3)は、他の画像処理システムB,C(サブノード3)の動作状況を確認しながら各々の処理能力に応じて、協調分散処理を担当する各画像処理システムA,B,C(各割り当てノード3)のそれぞれに割り当てるべきデータ負荷と計算負荷の分担割合を決める。つまり、各ノード3のその時々の処理能力に応じて割り当て負荷を決める動的負荷割り当てを行う。なお、メインノードはユーザーに使用されている表示対象指定元のノードであり、サブノードはユーザーが利用しておらずその計算資源の空きを利用して分散処理が行われるノードである。   The main image processing system A (main node 3) confirms the operation statuses of the other image processing systems B and C (sub-nodes 3), and performs each image processing in charge of cooperative distributed processing according to each processing capability. The share ratio between the data load and the calculation load to be allocated to each of the systems A, B, and C (each allocation node 3) is determined. That is, dynamic load allocation is performed in which the allocation load is determined according to the processing capability of each node 3 from time to time. Note that the main node is a display target designation source node used by the user, and the sub-node is a node that is not used by the user but is distributed using the available computing resources.

動的負荷割り当ての手法として、本実施形態では、データコピーモード、データ分割モード、混合モードの3モードが用意されている。データ分割モードあるいは混合モードの場合では、単にノードを割り当てるだけでなく、さらに各ノードに対するボクセルデータの分割割合を決定する。以下、これら3モードについて詳しく説明する。   In this embodiment, three methods of data load mode, data division mode, and mixed mode are prepared as dynamic load allocation methods. In the case of the data division mode or the mixed mode, not only the nodes are allocated, but also the division ratio of the voxel data for each node is determined. Hereinafter, these three modes will be described in detail.

(a) 「データコピーモード」では、ボクセルデータの容量がそれほど大きくなければ全ての計算機(ノード)3にボリュームレンダリングの対象となるボクセルデータを分割せずまるごとコピーする。単一計算機による処理性能の限界を突破することを目的とする。しかし、後述する(b) のモードに比べ扱えるボクセルデータの容量が制限される。   (a) In the “data copy mode”, if the capacity of the voxel data is not so large, the voxel data to be subjected to volume rendering is copied to all the computers (nodes) 3 without being divided. The purpose is to break through the limits of processing performance by a single computer. However, the volume of voxel data that can be handled is limited compared to the mode (b) described later.

(b) 「データ分割モード」では、ボクセルデータの容量が大きい場合、ボリュームレンダリングの対象となるボクセルデータを分割し、各計算ノードに割り当てる。単一計算機による処理容量の限界を突破することを目的とする。しかし、処理速度は(a) のモードに比べ多少遅くなる。   (b) In the “data division mode”, when the capacity of voxel data is large, the voxel data to be subjected to volume rendering is divided and assigned to each calculation node. The purpose is to break through the limits of processing capacity by a single computer. However, the processing speed is somewhat slower than in mode (a).

(c) 「混合モード」とは、上記(a), (b) 両方の特徴を持つモードである。例えばボクセルデータを2つに分割し、それぞれ2つの分割データコピーを用いれば、4台の計算機(ノード)3がボリュームレンダリング処理を行う。この場合、データ(メモリ負荷)と計算処理(計算負荷)の両方が分割され、2データ分割×2データコピーによって4台の計算機(ノード)3に負荷が割り当てられる。   (c) “Mixed mode” is a mode having both of the above characteristics (a) and (b). For example, if voxel data is divided into two and two divided data copies are used for each, four computers (nodes) 3 perform volume rendering processing. In this case, both data (memory load) and calculation processing (calculation load) are divided, and loads are assigned to four computers (nodes) 3 by 2 data division × 2 data copy.

(4) データ選択
データ分割モード、混合モードの場合は、上記(3) で決定したボクセルデータの割り当ての情報も転送される。サーバー2は割り当ての情報を解釈し、ボクセルデータの分割転送を行う機能を持っている。
(4) Data selection In data division mode and mixed mode, voxel data allocation information determined in (3) above is also transferred. The server 2 has a function of interpreting allocation information and performing divided transfer of voxel data.

(5) データ転送・メモリ読み込み
データコピーモードでは、全ての割り当てノード3にボクセルデータ全体を転送する。データ分割モードでは、分割したボクセルデータを対応する各ノード3に転送する。このモードでは、各ノード3に割り当てられる分割データがそれぞれ異なる。混合モードでは、分割したボクセルデータを対応する各ノード3に転送するが、複数のノード3に同じ分割データが重複して割り当てられる。
(5) Data transfer / memory read In the data copy mode, the entire voxel data is transferred to all allocation nodes 3. In the data division mode, the divided voxel data is transferred to each corresponding node 3. In this mode, the divided data assigned to each node 3 is different. In the mixed mode, the divided voxel data is transferred to each corresponding node 3, but the same divided data is assigned to a plurality of nodes 3 in an overlapping manner.

(6) 分散ボリュームレンダリング処理要求
前記(3) で割り当てたノード3に対し前記(4) で決定したモードに応じて割り当てた動的負荷の計算を行わせる分散ボリュームレンダリング処理を要求する。
(6) Distributed volume rendering processing request Requests distributed volume rendering processing for causing the node 3 allocated in (3) to calculate the dynamic load allocated according to the mode determined in (4).

(7) 分散ボリュームレンダリング処理
各ノード3において分散ボリュームレンダリング処理が実行される。
(8) 処理結果転送
各サブノード3で行われた分散ボリュームレンダリング処理の処理結果がメインノード3に転送される。
(7) Distributed volume rendering processing Distributed volume rendering processing is executed at each node 3.
(8) Processing result transfer The processing result of the distributed volume rendering processing performed in each sub-node 3 is transferred to the main node 3.

(9) 分散処理結果の連結
各ノードから転送された分散ボリュームレンダリング処理の処理結果を連結する処理が行われる。
(9) Concatenation of distributed processing results Processing for concatenating the processing results of distributed volume rendering processing transferred from each node is performed.

(10)表示
前記(9) で連結された処理結果に基づいて画像データを生成し、表示装置4の画面に表示させる。
(10) Display Image data is generated based on the processing results linked in (9) and displayed on the screen of the display device 4.

(6) 〜(10)の処理がループで行われる。ボクセルデータの割り当ては処理開始時の他、各画像処理システムA,B,Cの利用状況が変わった場合に実行される。
図2は、ボリュームレンダリング協調分散処理システムの機能ブロック図を示す。計算機3には、CPU、メモリ及びプログラムによって、同図に示す各機能部10〜13が構築されている。すなわち、要求処理部10、割当処理部11、分散ボリュームレンダリング処理部12およびデータ連結処理部13を備えている。またメモリにより構成されるボクセルデータ格納部14および画像メモリ15が備えられている。また画像メモリ15に格納された画像データを基に表示装置4の画面に画像を表示させる表示制御部16が備えられている。なお、要求処理部10により要求手段が構成される。
Processes (6) to (10) are performed in a loop. The voxel data allocation is executed when the use status of each of the image processing systems A, B, and C changes in addition to the start of processing.
FIG. 2 shows a functional block diagram of the volume rendering cooperative distributed processing system. In the computer 3, functional units 10 to 13 shown in the figure are constructed by a CPU, a memory, and a program. That is, a request processing unit 10, an allocation processing unit 11, a distributed volume rendering processing unit 12, and a data connection processing unit 13 are provided. Further, a voxel data storage unit 14 and an image memory 15 constituted by a memory are provided. A display control unit 16 that displays an image on the screen of the display device 4 based on the image data stored in the image memory 15 is provided. The request processing unit 10 constitutes a request unit.

割当処理部11は、ノード割当部17と負荷割当部18とから構成されている。負荷割当部18はさらにモード決定部19、データ分割割当部20および計算分割割当部21を備えている。割当処理部11は他のノード3との通信によって他のノード3のCPU使用率およびメモリ空き容量を含む計算資源利用状況情報を取得する。   The allocation processing unit 11 includes a node allocation unit 17 and a load allocation unit 18. The load allocation unit 18 further includes a mode determination unit 19, a data division allocation unit 20, and a calculation division allocation unit 21. The allocation processing unit 11 acquires computation resource usage status information including the CPU usage rate and the memory free capacity of the other node 3 through communication with the other node 3.

要求処理部10は、入力装置5の操作によりデータリスト要求を受け付けると、ストレージサーバー2に対しデータリストを要求し、データリストを取得すると、表示制御部16を介して表示装置4の画面上にリストを表示させる。リストデータにはその一覧中の医療画像に関するボクセルデータのデータ容量を示す情報が含まれている。画面上に表示されたリスト中からユーザー(医師)が入力装置5を操作して例えば患者の医療画像(例えば心臓CT画像等)を選択すると、要求処理部10は、リストから選択指定された医療画像のボクセルデータをストレージサーバー2に対し要求する処理を行う。このボクセルデータ要求処理に先立ち要求処理部10はリストから選ばれた医療画像に関するボクセルデータのデータ量情報を割当処理部11に送る。そして割当処理部11では、ノード割当部17がボクセルデータ量情報に基づき協調分散処理の必要性判断を行い、協調分散処理が必要と判断したときには、ノード割り当てが可能であるかどうかを判断する。そしてノード割当部17は、協調分散処理必要かつノード割り当て可能である場合、ボクセルデータ量情報と各ノード3における計算資源利用状況情報(CPU使用率、メモリ空き容量)とに基づき、協調分散処理を担当するノードを割り当てるノード割当処理を実行し、割り当てノードを決定する。また割り当てノードが決定すると、次に負荷割当部18が各ノード3に対して負荷(データ負荷・計算負荷)を割り当てる負荷割当処理が実行され、各ノード3に対する負荷割り当て(データ負荷割当・計算負荷割当)を決定する。ノード割り当て・負荷割り当ての決定情報は要求処理部10に渡され、要求処理部10はこれらの情報を付してストレージサーバー2に対しボクセルデータ要求を出す。このように要求処理部10は、図1における「(1) データリスト選択」および「(4) データ選択」を司る。   When the request processing unit 10 receives a data list request by operating the input device 5, the request processing unit 10 requests the data list from the storage server 2. When the request processing unit 10 acquires the data list, the request processing unit 10 displays the data list on the screen of the display device 4 via the display control unit 16. Display the list. The list data includes information indicating the data volume of voxel data related to the medical images in the list. When the user (doctor) operates the input device 5 from the list displayed on the screen and selects, for example, a medical image of a patient (for example, a cardiac CT image), the request processing unit 10 selects the medical specified and specified from the list. Processing for requesting voxel data of the image from the storage server 2 is performed. Prior to this voxel data request processing, the request processing unit 10 sends data amount information of voxel data related to the medical image selected from the list to the allocation processing unit 11. In the allocation processing unit 11, the node allocation unit 17 determines the necessity of cooperative distributed processing based on the voxel data amount information, and determines that node allocation is possible when it is determined that the cooperative distributed processing is necessary. If the node allocation unit 17 requires coordinated distributed processing and node allocation is possible, the node allocating unit 17 performs coordinated distributed processing based on the voxel data amount information and the calculation resource usage status information (CPU usage rate, memory free capacity) in each node 3. A node assignment process for assigning a node in charge is executed, and an assignment node is determined. When the allocation node is determined, a load allocation process in which the load allocation unit 18 allocates a load (data load / calculation load) to each node 3 is executed next, and load allocation (data load allocation / calculation load) to each node 3 is executed. Assignment). The node allocation / load allocation determination information is passed to the request processing unit 10, and the request processing unit 10 attaches such information and issues a voxel data request to the storage server 2. In this way, the request processing unit 10 manages “(1) data list selection” and “(4) data selection” in FIG.

ノード割当部17は、他の計算機(ノード)から通信によって入手した他の各計算機3のCPU使用率およびメモリ空き容量の情報に基づき協調分散処理を行うノードを割り当てる。ノード割当部17は、図1における「(3) ノード割り当て」を司る。   The node allocation unit 17 allocates a node that performs cooperative distributed processing based on information on the CPU usage rate and the free memory capacity of each of the other computers 3 obtained by communication from another computer (node). The node allocation unit 17 manages “(3) node allocation” in FIG.

負荷割当部18は、協調分散処理のため選択された各ノードに対しリストから指定されたボクセルデータの容量や計算負荷(表示条件等から決まる計算負荷)に応じて、各ノード3のCPU使用率およびメモリ空き容量を考慮しつつ各ノード毎のデータ負荷および計算負荷を割り当てる。すなわちモード決定部19が動的負荷割り当て手法の違いによって3モードで設定された、「データコピーモード」、「データ分割モード」、「混合モード」のうちいずれを採用するかを決定する。   The load allocation unit 18 uses the CPU usage rate of each node 3 in accordance with the capacity of voxel data specified from the list and the calculation load (calculation load determined by display conditions) for each node selected for cooperative distributed processing. In addition, a data load and a calculation load are assigned to each node in consideration of the free memory capacity. That is, the mode determination unit 19 determines which one of “data copy mode”, “data division mode”, and “mixed mode” set in the three modes depending on the dynamic load allocation method.

データ分割割当部20は、データ分割モードまたは混合モードにおいてボクセルデータの分割割合を決定する。また計算分割割当部21は、データコピーモードまたは混合モードにおいて計算負荷分割処理を行う。混合モードでは、データ分割割当部20と計算分割割当部21との協働によって、データ分割処理と計算負荷分割処理が行われる。また、要求処理部10は割り当てノード3に対して割り当て負荷内容を指示する分散ボリュームレンダリング処理要求を行う。   The data division allocation unit 20 determines the division ratio of the voxel data in the data division mode or the mixed mode. In addition, the calculation division allocation unit 21 performs calculation load division processing in the data copy mode or the mixed mode. In the mixed mode, data division processing and calculation load division processing are performed in cooperation with the data division allocation unit 20 and the calculation division allocation unit 21. Further, the request processing unit 10 issues a distributed volume rendering process request for instructing the allocation load contents to the allocation node 3.

ストレージサーバー2は、指定されたボクセルデータを必要に応じて指示に従い分割して割り当て先の各ノード3に転送する。ノード3に転送されたボクセルデータはボクセルデータ格納部14に格納される。分散ボリュームレンダリング処理部12は、ボクセルデータ格納部14に格納された割り当てデータに対し割り当てられた計算処理を行う分散ボリュームレンダリング処理を実行する。   The storage server 2 divides the designated voxel data according to the instruction as necessary, and transfers the divided data to each node 3 that is the assignment destination. The voxel data transferred to the node 3 is stored in the voxel data storage unit 14. The distributed volume rendering processing unit 12 executes a distributed volume rendering process for performing a calculation process assigned to the allocation data stored in the voxel data storage unit 14.

各ノード3における分散ボリュームレンダリング処理結果は通信によりメインのノード3に転送される。データ連結処理部13は、自身のノード3の分散ボリュームレンダリング処理部12からの処理結果と各ノード3から転送された分散ボリュームレンダリング処理結果を一つに連結する。連結されることで生成された画像データは画像メモリ15に送られる。表示制御部16は画像メモリ15に格納された画像データを基に表示装置4の画面に画像を表示する。   The distributed volume rendering processing result in each node 3 is transferred to the main node 3 by communication. The data concatenation processing unit 13 concatenates the processing result from the distributed volume rendering processing unit 12 of its own node 3 and the distributed volume rendering processing result transferred from each node 3 into one. The image data generated by the connection is sent to the image memory 15. The display control unit 16 displays an image on the screen of the display device 4 based on the image data stored in the image memory 15.

図3は、計算負荷割り当て手法を説明するものである。ここでは512×512ピクセルのボリュームレンダリング画像を作成する場合、512×512=262,144本のレイをキャストするため、処理を各レイごとの区画に分割している。   FIG. 3 illustrates a calculation load allocation method. Here, when creating a 512 × 512 pixel volume rendering image, the processing is divided into sections for each ray in order to cast 512 × 512 = 262,144 rays.

計算処理を複数の処理区画に分割し、各ノードに割り当てる処理区画を決定する。各ノード3はそれぞれに割り当てられた処理区画に従い計算処理を行う。一定数(または一定割合)の処理区画の計算処理が終了したら、処理結果をメインとなる画像処理システムAへ返す。処理結果を返すにあたり、必ずしも割り当てられた処理区画の処理が全て終了するのを待たなくてもよい。そのため、全ての処理が終わり、次の割り当てがくるまで待機するようなことがない。メインとなる画像処理システムAは、処理結果を返してきたノード3に、次の処理区画を割り当てる。例えばメインの画像処理システムAが画像処理システムBに対し区画1−2000の処理要求を行う。これに対して画像処理システムBは区画1−1000の処理を終了するとそこまでの処理結果を画像処理システムAに返す。画像処理システムAは区画1−1000の処理結果を受け取ると、画像処理システムBに対して次の区画2000−4000の処理要求をする。結果として処理結果が速いノード3ほど多くの区画が割り当てられることになり、それぞれのノード3の能力に見合った計算負荷を動的に割り当てることができる。   The calculation process is divided into a plurality of processing sections, and the processing section to be assigned to each node is determined. Each node 3 performs calculation processing according to the processing partition assigned to each node 3. When the calculation processing of a fixed number (or a fixed ratio) of processing sections is completed, the processing result is returned to the main image processing system A. In returning the processing result, it is not always necessary to wait for the processing of the assigned processing partition to be completed. Therefore, there is no waiting until all processing is completed and the next allocation comes. The main image processing system A assigns the next processing section to the node 3 that has returned the processing result. For example, the main image processing system A requests the image processing system B to process the section 1-2000. On the other hand, the image processing system B returns the processing result up to that to the image processing system A when the processing of the section 1-1000 is completed. When the image processing system A receives the processing result of the section 1-1000, it requests the image processing system B to process the next section 2000-4000. As a result, the faster the processing result is, the more nodes 3 are allocated, and the calculation load corresponding to the capability of each node 3 can be dynamically allocated.

図4,図5は本実施形態の協調分散処理システムの特徴的な作動状況を説明するものである。図4に示すように例えば4台の画像処理システムA〜Dのうち、メインの画像処理システムCの1台のみ医師が使用していると、使用されていない他の画像処理システムA,B,Dの各計算機3を有効活用して協調分散処理で計算処理(ボリュームレンダリング処理)を行う。この結果、メインの画像処理システムCではデータを間引くことなくリアルタイムの速度で大容量医療画像データのボリュームレンダリング画像を見ることができる。   4 and 5 explain the characteristic operation status of the cooperative distributed processing system of this embodiment. As shown in FIG. 4, for example, when only one of the main image processing systems C is used by four doctors among the four image processing systems A to D, other unused image processing systems A, B, Each computer 3 of D is effectively used to perform calculation processing (volume rendering processing) by cooperative distributed processing. As a result, the main image processing system C can view a volume rendering image of large-capacity medical image data at a real time speed without thinning out the data.

また図5に示すように、複数台の画像処理システムA,C,Dを医師が使用しているとする。このとき例えばボクセルデータ容量の多い医療画像を扱うメインの画像処理システムCは、使用されていない画像処理システムBや使用されていても計算負荷に余裕のある画像処理システムDに対し計算処理(ボリュームレンダリング処理)を分担させる。この結果、メインの画像処理システムA,C,Dが複数台であっても、負荷の大きい計算処理を他の画像処理システムB,Dの計算資源を有効活用して協調分散することによりデータを間引くことなくリアルタイムの速度でボリュームレンダリング画像を見ることができる。なお、各ノード3はローカルストレージを持っており、過去に使用した割り当てデータを既に持っているときはサーバー2からノード3にデータを転送することはせず、既に持っているデータを用いて計算処理を行うようになっている。   Further, as shown in FIG. 5, it is assumed that a doctor uses a plurality of image processing systems A, C, and D. At this time, for example, the main image processing system C that handles a medical image having a large voxel data capacity performs a calculation process (volume) on an image processing system B that is not used or an image processing system D that has a sufficient calculation load even if it is used. Share the rendering process). As a result, even if there are a plurality of main image processing systems A, C, and D, data can be obtained by collaborating and distributing computational processing with a large load by effectively using the calculation resources of the other image processing systems B and D. Volume rendering images can be viewed at real-time speed without thinning out. Note that each node 3 has local storage, and when it already has allocation data used in the past, it does not transfer the data from the server 2 to the node 3, but uses the data already in the calculation. Processing is to be performed.

図6,図7は、ノード割り当ておよび負荷割り当ての変更処理を説明するものである。ノード割り当ておよび負荷割り当ては、処理開始時の他、処理中にも行われる場合がある。再割り当てのトリガーとなる状況が図6,図7にそれぞれ示す2つある。   6 and 7 illustrate the node assignment and load assignment change processing. Node allocation and load allocation may be performed during processing as well as when processing starts. There are two situations shown in FIG. 6 and FIG.

(A)ユーザーが直接使用していないが、分散処理を割り当てられているサブノードを、新たなユーザーが使用しようとした場合(図6)と、(B)ユーザーが処理を終了し、1つの分散処理に携わっていたノードが開放された場合(図7)である。   (A) When a new user tries to use a sub-node that is not directly used by the user but to which distributed processing is assigned (FIG. 6), and (B) the user ends the processing and one distributed This is a case where the node that has been engaged in the processing is released (FIG. 7).

まずノード割り当てについて説明する。割り当てノードには、CPU使用率とメモリ空き容量の利用状況から、CPUとメモリにある程度の空きがある必要がある。CPUの空きは計算処理(ボリュームレンダリング処理)を行うために必要で、これに基づき計算負荷割り当て量(分散ボリュームレンダリング処理割当量)が決まる。一方、メモリの空きはボクセルデータを格納するために必要で、これに基づきボクセルデータ割当量が決まる。ここで、ユーザーが使うノードを「メインノード」、ユーザーに使われていないが処理が割り当てられるノードを「サブノード」と呼ぶことにすると、上記(A),(B)の状況は、メインノードの数が変わった状況と考えることができる。以下、計算負荷割り当ておよびボクセルデータ割り当ての変更処理について説明する。   First, node allocation will be described. The allocation node needs to have some free space in the CPU and the memory based on the usage rate of the CPU usage rate and the free memory capacity. The CPU free space is necessary for performing the calculation process (volume rendering process), and the calculation load allocation amount (distributed volume rendering process allocation amount) is determined based on this. On the other hand, the empty memory is necessary for storing voxel data, and the voxel data allocation amount is determined based on this. Here, if the node used by the user is called “main node”, and the node not used by the user but assigned with processing is called “sub-node”, the situation of (A) and (B) is as follows. It can be considered that the number has changed. The calculation load assignment and voxel data assignment change processing will be described below.

(1) 計算負荷割り当て
計算負荷割り当てはノードの利用状況に対応できる。図6に示すように、ユーザーがないサブノード(例えば画像処理システムBの計算機)3を、ユーザーが使い始めた場合は、そのサブノード3に割り当てる計算負荷が軽減される。一方、図7に示すように、ユーザーがいたメインノード(例えば画像処理システムBの計算機)3から、ユーザーがいなくなる場合は、そのサブノードとなったノード3に割り当てる計算負荷が大きくなる。
(1) Calculation load allocation Calculation load allocation can correspond to the usage situation of the node. As shown in FIG. 6, when a user starts using a subnode 3 (for example, a computer of the image processing system B) that does not have a user, the calculation load assigned to the subnode 3 is reduced. On the other hand, as shown in FIG. 7, when the user disappears from the main node (for example, the computer of the image processing system B) 3 where the user is present, the calculation load assigned to the node 3 that is the sub node increases.

(2) ボクセルデータ割り当て
ボクセルデータの割り当てはメモリ空き容量に対応するように行われる。図6に示すように、ユーザーが直接使用していないが、分散処理を割り当てられているサブノード(例えば画像処理システムBの計算機)3を、新たなユーザーが使用しようとした場合を考える。このとき、その空きメモリ容量が十分でない場合は新しい処理にメモリを確保するために、既に割り当てられている処理で使用されているメモリを減らさなければならない。新しい処理開始時に画像処理システムBは他の画像処理システムA,Cにメッセージを通知する。メッセージを受信した既存処理のメインノード(メイン1)は、メッセージを送信したノード(画像処理システムBの計算機)3に対するボクセルデータの割り当てを減らし、減らした分を他のノード(画像処理システムCの計算機)3に振り分ける。この結果、画像処理システムBの計算機3のメモリのうちメイン1の画像処理システムAの既存処理に使用されていたメモリ容量「M1」が減り、メイン2の画像処理システムBで新しく開始される処理に使用するメモリ容量「M2」が確保される。
(2) Voxel data allocation Voxel data allocation is performed so as to correspond to the free memory capacity. As shown in FIG. 6, consider a case where a new user tries to use a sub-node (for example, a computer of the image processing system B) 3 that is not directly used by a user but is assigned distributed processing. At this time, if the free memory capacity is not sufficient, the memory used in the already allocated process must be reduced in order to secure the memory for the new process. At the start of a new process, the image processing system B notifies the other image processing systems A and C of a message. The main node (main 1) of the existing process that has received the message reduces the allocation of voxel data to the node (computer of the image processing system B) 3 that has transmitted the message, and reduces the reduced amount to other nodes (of the image processing system C). Computer). As a result, the memory capacity “M1” used in the existing processing of the main image processing system A in the memory of the computer 3 of the image processing system B is reduced, and processing newly started in the main image processing system B The memory capacity “M2” to be used for the is secured.

一方、図7に示すように、メイン1の画像処理システムAを使用していたユーザーが処理を終了し、1つの分散処理に携わっていたメインノード(例えば画像処理システムAの計算機)3が開放された場合、終了した処理が使用していたメモリが開放されるため、既存処理はそのメモリを活用することができる。すなわち、画像処理システムAはノード開放時点に他の画像処理システムB,Cにメッセージを通知する。メッセージを受信した既存処理のメインノード(画像処理システムBの計算機)3は、必要であればメッセージを送信したノード(画像処理システムAの計算機)3の空きメモリ容量を利用してボクセルデータを割り当てる。この結果、メイン2の画像処理システムBにおけるノード割り当て数が増え、大容量・高速処理に対処できる。   On the other hand, as shown in FIG. 7, the user using the main image processing system A ends the processing, and the main node (for example, the computer of the image processing system A) 3 that has been engaged in one distributed processing is released. In such a case, since the memory used by the completed process is released, the existing process can use the memory. That is, the image processing system A notifies the other image processing systems B and C of a message when the node is released. The main node (computer of the image processing system B) 3 of the existing process that has received the message allocates voxel data using the free memory capacity of the node (computer of the image processing system A) 3 that has transmitted the message, if necessary. . As a result, the number of node assignments in the image processing system B of the main 2 increases, and it is possible to cope with large capacity and high speed processing.

次にボリュームレンダリング処理の詳細について説明する。
図8(a),(b)に示すように、ボリュームレンダリング処理には、「平行投影法」と「透視投影法」とがある。平行投影法の方が計算負荷が軽いため、通常この投影法がよく用いられる。透視投影法では内視鏡から得られるような画像を生成するため、血管内部など組織内の様子を観察したい場合に用いられる。
Next, details of the volume rendering process will be described.
As shown in FIGS. 8A and 8B, the volume rendering process includes a “parallel projection method” and a “perspective projection method”. Since the parallel projection method has a lighter calculation load, this projection method is usually used. In the perspective projection method, an image that can be obtained from an endoscope is generated. Therefore, it is used when it is desired to observe a state in a tissue such as a blood vessel.

図8に示すように、ボクセルデータVDは3次元(但し同図では2次元的に描かれている)の格子点にボクセル値(例えばCT値)を持つデータである。ボリュームレンダリングには一般的にレイキャスティング法が用いられる。レイキャスティング法とは、観察する側(フレーム側)から光の経路を考えるもので、フレーム側のピクセルから光のレイを飛ばし、一定距離を進むごとにその位置での反射光を計算する(図8では「…,Vn-1 ,Vn ,Vn+1 ,Vn+2 ,…」の符号が各到達位置のボクセルに対応している)。レイ到達位置が格子上にない場合はその周りのボクセルのボクセル値から補間処理を行ってその位置でのボクセル値を計算する。   As shown in FIG. 8, the voxel data VD is data having voxel values (for example, CT values) at three-dimensional (however, two-dimensionally drawn in the figure) lattice points. A ray casting method is generally used for volume rendering. The ray casting method considers the path of light from the observing side (frame side). A ray of light is blown from a pixel on the frame side, and the reflected light at that position is calculated each time a certain distance is reached (Fig. In FIG. 8, "..., Vn-1, Vn, Vn + 1, Vn + 2,..." Corresponds to the voxel at each arrival position). If the ray arrival position is not on the grid, interpolation processing is performed from the voxel values of the surrounding voxels to calculate the voxel value at that position.

図9は、レイキャスティング法の計算方法を説明するもので、図8における1本のレイに対応した処理である。同図におけるブロックはボクセルに相当するもので、これら各ボクセルは光に対する特性パラメータとして不透明度(opacity) αn およびシェーディング係数βn を有する。ここで、不透明度αn は、0≦αn ≦1を満たす数値で表され、値(1−αn )は透明度(transparency)を示す。不透明度αn=1は不透明、αn=0は透明、0<αn<1は半透明にそれぞれ対応する。シェーディング係数は色、グラディエントなどシェーディングに関する情報を持つ。   FIG. 9 explains the calculation method of the ray casting method, and is processing corresponding to one ray in FIG. The blocks in the figure correspond to voxels, and each of these voxels has opacity αn and shading coefficient βn as characteristic parameters for light. Here, the opacity αn is represented by a numerical value satisfying 0 ≦ αn ≦ 1, and the value (1−αn) indicates transparency. Opacity αn = 1 corresponds to opacity, αn = 0 corresponds to transparency, and 0 <αn <1 corresponds to translucency. The shading coefficient has information on shading such as color and gradient.

初期入射光(光線)I1 は、各ボクセルを順次透過してゆくとともに各ボクセルで一部反射および吸収されることによりその残存光(透過光)は徐々に減衰する。各ボクセルにおける部分反射光Rn (n=1,2,…)の積算値(積算反射光)が、フレーム側におけるピクセルの輝度に相当する。ここで、減衰光Dn (n=1,2,…)は、n番目のボクセルの入射光In を用いて、式 Dn =αn In で表されるため、部分反射光Rn は、式 Rn =βn Dn =βn αn In で表される。また各ボクセルにおける入射光と残存光(透過光)との関係式から、式 In+1 =(1−αn )In が成り立つ。よって積算反射光Eは、次式により表される。   The initial incident light (light beam) I1 sequentially passes through each voxel and is partially reflected and absorbed by each voxel, so that the remaining light (transmitted light) is gradually attenuated. The integrated value (integrated reflected light) of the partially reflected light Rn (n = 1, 2,...) In each voxel corresponds to the luminance of the pixel on the frame side. Here, the attenuated light Dn (n = 1, 2,...) Is expressed by the expression Dn = αnIn using the incident light In of the nth voxel, so that the partially reflected light Rn is expressed by the expression Rn = βn. D n = β n α n In Further, from the relational expression between incident light and residual light (transmitted light) in each voxel, the expression In + 1 = (1-αn) In holds. Therefore, the accumulated reflected light E is expressed by the following equation.

Figure 2007244887
なお、各ボクセル値に対して不透明度αnとの関係付けが予めなされており、その関係付け情報に基づきボクセル値から不透明度αnを得ている。例えば、血管のボリュームレンダリング画像を得たい場合、血管のCT値が0から200に分布していることから、ボクセル値0から200には不透明度1を対応させ、他のボクセル値には不透明度0を対応させることで、血管を表示することができる。
Figure 2007244887
Each voxel value is associated with the opacity αn in advance, and the opacity αn is obtained from the voxel value based on the association information. For example, when a volume rendering image of a blood vessel is to be obtained, the CT values of the blood vessel are distributed from 0 to 200. Therefore, opacity 1 is associated with voxel values 0 to 200, and opacity is associated with other voxel values. By making 0 correspond, a blood vessel can be displayed.

次にボクセルデータ分割割り当ておよび計算負荷割り当てを実施したときの計算方法について説明する。
図10(a)はデータ分割割り当てを示すもので、同図(b)は計算負荷割り当てを示すものである。同図(a)のデータ分割はボクセルデータを2つに分割した例を示す。ボクセルデータVDは分割ボクセルデータVD1とVD2とに分割され、それぞれ別々のノード3に割り当てられる。分割ボクセルデータVD1が割り当てられたノード3では、V1 〜Vk までのボクセルについて分散ボリュームレンダリング処理を行い、分割ボクセルデータVD2が割り当てられたノード3では、Vk+1 〜Vn までのボクセルについて分散ボリュームレンダリング処理を行う。
Next, a calculation method when voxel data division allocation and calculation load allocation are performed will be described.
FIG. 10A shows data division allocation, and FIG. 10B shows calculation load allocation. The data division in FIG. 5A shows an example in which voxel data is divided into two. The voxel data VD is divided into divided voxel data VD1 and VD2, and assigned to different nodes 3 respectively. The node 3 to which the divided voxel data VD1 is assigned performs the distributed volume rendering process for the voxels from V1 to Vk, and the node 3 to which the divided voxel data VD2 is assigned to the distributed volume rendering for the voxels from Vk + 1 to Vn. Process.

また図10(b)の計算負荷分割は、割り当てられたボクセルデータに対して行うべき計算処理を複数に分割し、それぞれ別々のノード3に割り当てる。計算負荷分割の仕方としては光線(レイ)の本数で分割する方法が挙げられるが、光線の光軸方向(奥行き方向)に計算を分割しても構わない。例えば図3に挙げた処理区画で分割する方法は、光線の本数で分割した計算負荷分割である。フレーム側のピクセルがボリュームレンダリングを行う際の光線に相当するため、光線の本数で分割するこの計算負荷分割は、フレームをエリア分割した計算処理に相当する。なお、データ分割したときは、その分割に伴って計算処理も必然的に光軸方向に分割される。   Further, in the calculation load division of FIG. 10B, the calculation process to be performed on the assigned voxel data is divided into a plurality of pieces and assigned to different nodes 3 respectively. As a method of dividing the calculation load, there is a method of dividing by the number of rays (rays), but the calculation may be divided in the optical axis direction (depth direction) of the rays. For example, the method of dividing by the processing section shown in FIG. 3 is a calculation load division divided by the number of rays. Since the pixels on the frame side correspond to light rays when performing volume rendering, this calculation load division that divides by the number of light rays corresponds to calculation processing in which the frame is divided into areas. When the data is divided, the calculation process is necessarily divided in the optical axis direction along with the division.

図11は、光線が光軸方向で分割された計算分割の場合における計算方法を説明するものである。使用されている記号の意味は図9と同じである。同図のように、符号「V1 〜Vn 」のボクセル群が、符号「V1 〜Vk 」のボクセル群と「Vk+1 〜Vn 」のボクセル群とに分割されたとすると、符号「V1 〜Vk 」のボクセル群に対する計算と、符号「Vk+1 〜Vn 」のボクセル群に対する計算とが別々に行われる。よって、積算反射光Eは、次式のように表される。   FIG. 11 illustrates a calculation method in the case of calculation division in which a light beam is divided in the optical axis direction. The meanings of the symbols used are the same as those in FIG. As shown in the figure, if the voxel group with the reference signs “V1 to Vn” is divided into the voxel group with the reference signs “V1 to Vk” and the voxel group with “Vk + 1 to Vn”, the reference signs “V1 to Vk”. The calculation for the voxel group of “Vk + 1” and “Vn” is separately performed. Therefore, the accumulated reflected light E is expressed as follows.

Figure 2007244887
ここで、分割された計算処理の計算結果を連結するときには、符号「Vk+1 〜Vn 」のボクセル群に対する計算結果に初期入射光として入射光Ik+1 の条件を採用し、1つのデータとして連結したときに整合がとれるように、各分割計算処理結果の連結を行う。また図12に示すように、データ分割は、ボクセルデータVDを一部データが重複するように分割し、冗長性を持たせている。これは、光線があるボクセルに到達したときに格子上にないときのボクセル値を求める際の補間計算をするときなどに周囲のボクセルが必要になるからである。このように周囲のボクセルも必要になるその他の処理としては、ボリュームレンダリングにおけるグラディエントの計算方法(グレイレベルグラディエント)が挙げられる。このようにグラディエントやボクセル補間値などボリュームレンダリングに必要なパラメータを計算するために、注目座標の周囲のボクセルも必要になる。
Figure 2007244887
Here, when the calculation results of the divided calculation processes are connected, the condition of the incident light Ik + 1 is adopted as the initial incident light in the calculation result for the voxel group of the signs “Vk + 1 to Vn” as one data. Each division calculation processing result is linked so that the matching is achieved when linked. Further, as shown in FIG. 12, in the data division, the voxel data VD is divided so that part of the data overlaps, thereby providing redundancy. This is because surrounding voxels are required when performing an interpolation calculation when obtaining a voxel value when a ray reaches a certain voxel and is not on the grid. Another process that requires surrounding voxels in this way is a gradient calculation method (gray level gradient) in volume rendering. Thus, in order to calculate parameters necessary for volume rendering, such as gradient and voxel interpolation values, voxels around the target coordinate are also required.

次に、各モードにおける計算負荷割り当ておよびデータ分割割り当ての詳細について説明する。図13はデータコピーモード、図14はデータ分割モード、図15は混合モードをそれぞれ示す。   Next, details of calculation load assignment and data division assignment in each mode will be described. 13 shows a data copy mode, FIG. 14 shows a data division mode, and FIG. 15 shows a mixed mode.

図13に示すようにデータコピーモードでは、ボクセルデータは各ノード3にまるごと割り当てられる。計算負荷割り当ての仕方によって同図(a)〜(c)が挙げられる。同図(a),(b)は平行投影法、同図(c)が透視投影法である。同図(a)は光線(レイ)の本数で分割することにより計算分割したもので、光線の本数を4分割したそれぞれが4つのノード3に割り当てられる。同図(b)は多数本の光線(レイ)をデータの領域別に4分割することにより計算分割したもので、4分割したそれぞれの計算負荷が4つのノード3に割り当てられる。同図(c)は透視投影による多数本の光線(レイ)をデータの領域別に4分割することにより計算分割したもので、4分割したそれぞれの計算負荷が4つのノード3に割り当てられる。   As shown in FIG. 13, in the data copy mode, voxel data is assigned to each node 3 as a whole. The same figure (a)-(c) is mentioned by the method of calculation load allocation. FIGS. 4A and 4B show the parallel projection method, and FIG. 4C shows the perspective projection method. FIG. 5A shows the calculation divided by dividing the number of rays (rays). Each of the four divided rays is assigned to four nodes 3. FIG. 5B shows a calculation divided by dividing a large number of rays (rays) into four for each data area. Each calculation load divided into four is assigned to four nodes 3. FIG. 5C shows a calculation division by dividing a large number of rays (rays) obtained by perspective projection into four according to data areas. Each calculation load divided into four is assigned to four nodes 3.

図14に示すようにデータ分割モードでは、ボクセルデータは複数分割され、各分割データVD1〜VD4がそれぞれ異なる各ノード3に割り当てられる。つまりノード毎にデータ負荷が割り当てられる。データコピーモードの図13(b)における計算負荷割当では、ボクセルデータの回転時に計算負荷分割されるボクセルデータのエリアの変更が有り得るが、データ分割モードでは、ボクセルデータの回転時でも計算分割されるデータの分割面は変わらない。   As shown in FIG. 14, in the data division mode, the voxel data is divided into a plurality of pieces, and the divided pieces of data VD1 to VD4 are assigned to different nodes 3, respectively. That is, a data load is assigned to each node. In the calculation load assignment in FIG. 13B in the data copy mode, there may be a change in the area of the voxel data that is divided into calculation loads when the voxel data is rotated, but in the data division mode, calculation division is performed even when the voxel data is rotated. The data splitting plane does not change.

図15に示すように混合モードでは、ボクセルデータは複数分割され、各分割データVD1,VD2のうち同一データがそれぞれ異なるノード3に割り当てられる。さらに同一データが割り当てられた異なるノード3間で計算負荷割当が実施される。   As shown in FIG. 15, in the mixed mode, the voxel data is divided into a plurality of parts, and the same data among the divided data VD1 and VD2 is assigned to different nodes 3, respectively. Furthermore, calculation load allocation is performed between different nodes 3 to which the same data is allocated.

従って、この実施形態によれば以下の効果を得ることができる。
(1) 大容量のメモリと高速なCPUなどの膨大な計算資源を持つ計算機ではなく、現実的なコストで得られるコンピュータ(ワークステーション)を使用しても、ボリュームレンダリング処理を行うことができるボクセルデータの容量を著しく増やすことができる。すなわち、コストパフォーマンスの高い計算機1台あたりが装備可能なメモリ容量と計算能力に限界があっても、ボリュームレンダリング処理を行うことができるボクセルデータの容量にほぼ限界がない。従来はバッチ的な長時間処理、あるいは極めて高価な専用システムによる処理でしか扱うことができなかった大容量データを低コスト、リアルタイムで扱うことができる。
Therefore, according to this embodiment, the following effects can be obtained.
(1) A voxel that can perform volume rendering even if a computer (workstation) that can be obtained at a realistic cost is used instead of a computer having a large amount of computing resources such as a large-capacity memory and a high-speed CPU. Data capacity can be significantly increased. In other words, even if there is a limit to the memory capacity and calculation capacity that can be installed per computer with high cost performance, there is almost no limit to the capacity of voxel data that can be subjected to volume rendering processing. Large-capacity data that could only be handled by batch processing for a long time or processing by an extremely expensive dedicated system can be handled at low cost in real time.

(2)データ転送時に画像処理システムのローカル・ストレージに保存せずに、受信と同時に直接メモリに読み込むため、ローカル・ストレージの浪費がなく、事前のデータ転送も不要となる。   (2) Since data is not directly stored in the local storage of the image processing system at the time of data transfer but is directly read into the memory at the same time as reception, the local storage is not wasted and prior data transfer is unnecessary.

(3)計算資源(メモリ・CPU)に余力がある利用可能なノードをその時々に探し出して動的にノード割り当てを行うので、他ノードの計算資源を有効活用でき、高可用性を実現できる。   (3) Since an available node having a surplus in computing resources (memory / CPU) is searched and allocated dynamically at that time, the computing resources of other nodes can be used effectively, and high availability can be realized.

(4)画像表示処理受け付け時にノード数および負荷(データ負荷・計算負荷)を動的に割り当てることで動的にノードを活用できる。このため、時間帯により刻々と変化する運用形態・状況にも無駄なく、最適なオペレーション環境を全てのユーザーに対して常に提供することができる。   (4) Nodes can be used dynamically by dynamically assigning the number of nodes and the load (data load / calculation load) when accepting the image display process. For this reason, it is possible to always provide an optimal operation environment to all users without waste even in operation modes and situations that change every moment.

(5)動的負荷割り当ての種類として3モード用意し、CPU使用率やメモリ空き容量に応じて大容量データの高速処理により適したノード割り当ておよび負荷割り当てができるようにしたので、大容量データの高速処理をより適切に実現できる。すなわち、院内ネットワーク上の複数の計算機3の計算資源を有効活用できる。   (5) Three modes are prepared as the types of dynamic load allocation, and node allocation and load allocation suitable for high-speed processing of large-capacity data according to the CPU usage rate and memory free capacity can be performed. High-speed processing can be realized more appropriately. That is, the calculation resources of the plurality of computers 3 on the hospital network can be effectively used.

(6)負荷割当部18は、負荷割り当てした分散ボリュームレンダリング処理のうち予め設定された所定量又は所定割合終了した処理結果を返してきたノードに対して、次の分散ボリュームレンダリング処理の負荷割り当てを行う(図3)。従って、処理速度の速いノード3に優先的に負荷が割り当てられるため、各ノード3間の協調分散処理を高速に実現可能である。   (6) The load allocation unit 18 allocates the load of the next distributed volume rendering process to a node that has returned a processing result that has been completed by a predetermined amount or a predetermined ratio among the distributed volume rendering processes to which the load has been allocated. Perform (FIG. 3). Therefore, since the load is preferentially assigned to the node 3 having a high processing speed, the cooperative distributed processing between the nodes 3 can be realized at high speed.

(7)メインノード3のメモリ容量やCPUの空きが必要なだけ確保される場合は、ボクセルデータを分割せずメインノード3に全て送り、メインノード3単独で(単独計算機で)ボリュームレンダリング処理が行われる。よって、不要な分散処理の実施によるボリュームレンダリング演算の処理速度低下を防ぐことができる。   (7) When the memory capacity of the main node 3 and the CPU space are secured as much as necessary, the voxel data is all sent to the main node 3 without being divided, and the main node 3 alone (with a single computer) performs volume rendering processing. Done. Therefore, it is possible to prevent a decrease in the processing speed of the volume rendering operation due to unnecessary distributed processing.

(8)サーバー2に対し要求されたボクセルデータのうち割り当てるべきデータを既にローカル・ストレージに持つノードに対しては、サーバー2からその割り当てデータを送信することなく、その割り当てノード3はローカル・ストレージに持つデータを用いてボリュームレンダリング処理を実行する。従って、割り当てノード3が既にローカルストレージに必要なボクセルデータを持つ場合は、サーバー2から割り当てノード3へのデータ送信時間を省き一層の高速処理を実現できる。   (8) For a node that already has data to be allocated among the voxel data requested to the server 2 in the local storage, the allocation node 3 does not transmit the allocation data from the server 2 and the allocation node 3 The volume rendering process is executed using the data held in. Therefore, when the allocation node 3 already has the voxel data necessary for the local storage, the data transmission time from the server 2 to the allocation node 3 can be saved and higher speed processing can be realized.

(9)メインノード3の数に変更があると、ノード割当部17はノードの割り当てをし直すとともに、負荷割当部18は割り当てノード3に対する動的負荷割り当てをし直す。従って、メインノード3の数の増減により計算資源の空き度合いに変更が生じた時にノード割り当てと動的負荷割り当ての見直しが図られるので、他ノード3の処理を妨げずその計算資源を有効活用でき、高速なボリュームレンダリング処理を実行できる。   (9) When there is a change in the number of main nodes 3, the node allocation unit 17 reassigns nodes, and the load allocation unit 18 reassigns dynamic loads to the allocation node 3. Therefore, since the node allocation and the dynamic load allocation are reviewed when the free space of the computing resource is changed due to the increase / decrease of the number of main nodes 3, the computing resource can be effectively used without disturbing the processing of the other nodes 3. High-speed volume rendering process can be executed.

(10)複数のノード3はサブノード、メインノードに必要な機能を全て持っており、役割に応じてサブノード、メインノードと切り替わる。よって、どのノード3もメインノードになることができ、どのノード3の画面からもボリュームレンダリング画像を見ることができる。   (10) The plurality of nodes 3 have all the functions necessary for the sub node and the main node, and are switched to the sub node and the main node according to their roles. Therefore, any node 3 can be a main node, and a volume rendering image can be viewed from any node 3 screen.

なお、実施形態は前記に限定されず、例えば次の態様に変更してもよい。
・ CPU使用率とメモリ空き容量のうち少なくとも一方を含む計算資源利用状況の情報から割り当てノードを決定すれば足りる。例えばCPU使用率のみ、あるいはメモリ空き容量だけをノード割り当てを決めるときに使う情報としてもよい。
In addition, embodiment is not limited to the above, For example, you may change to the following aspect.
It suffices to determine an allocation node from information on the utilization status of computing resources including at least one of the CPU usage rate and the memory free capacity. For example, only the CPU usage rate or the memory free space may be used as information used when determining node allocation.

・ 前記実施形態では、3つのモードを設定し、動的負荷割り当ての種類を幾つか用意したが、いずれか1つのモードだけを実施するものであっても構わない。
・ メインノード(またはサブノード)の数に変更があったときには、負荷割り当てをし直したが、対象とする画像処理が開放されるまで処理開始時の割り当てを維持する構成であっても構わない。
In the above-described embodiment, three modes are set and several types of dynamic load allocation are prepared. However, only one mode may be implemented.
-When the number of main nodes (or sub-nodes) is changed, the load allocation is performed again. However, the allocation at the start of processing may be maintained until the target image processing is released.

・ ストレージサーバーとノードの機能を両方持つ計算機であってもよい。前記実施形態ではストレージサーバー2と画像処理システム(例えばA)5は別々の計算機に分かれていたが、これが同一の計算機であっても構わない。つまり、ストレージサーバー2となる計算機は固定されているが、ユーザーがストレージサーバー2上でボリュームレンダリング処理を行いその画像をストレージサーバー2び画面で見ることができる。   -A computer having both storage server and node functions may be used. In the above embodiment, the storage server 2 and the image processing system (for example, A) 5 are separated into separate computers, but they may be the same computer. In other words, the computer serving as the storage server 2 is fixed, but the user can perform volume rendering processing on the storage server 2 and view the image on the storage server 2 screen.

・ サーバーにCPUやメモリの空きがあるときにサーバーにボリュームレンダリングの計算処理を負担させても構わない。この場合、ストレージサーバー2はボリュームレンダリング画像を表示する表示装置4を備えず、単に分散処理目的で分散ボリュームレンダリング処理のみを実行する構成でも構わない。   -When the CPU and memory are available on the server, the server may be burdened with volume rendering calculation processing. In this case, the storage server 2 may not be provided with the display device 4 for displaying the volume rendering image, and may simply be configured to execute only the distributed volume rendering process for the purpose of distributed processing.

・ ネットワークを構成する複数のノードのうち少なくとも一つに入力手段及び表示手段が備えられるだけの構成でも構わない。例えば複数のノードのうち幾つかが画像処理計算用ではなく他の用途で使われるもので、他の用途のノード(計算機)のCPU使用率やメモリ空き容量から空きがあれば分散ボリュームレンダリング処理に利用する構成でも構わない。   A configuration in which at least one of a plurality of nodes constituting the network is provided with an input unit and a display unit may be used. For example, some of a plurality of nodes are not used for image processing calculations but are used for other purposes. If there is space from the CPU usage rate or memory capacity of nodes (computers) for other purposes, distributed volume rendering processing will be performed. A configuration to be used may be used.

・ 1つのノードが、要求手段、ノード割当手段、負荷割当手段、演算手段、連結手段及び表示制御手段のすべての機能を実現するプログラムを持つ必要はない。つまりノードのすべてがメインノードとなる機能を備えるのではなく、サブノードとなる機能のプログラムだけを持つノードが含まれていてもよい。サブノードは例えば演算手段の機能(ボリュームレンダリング演算機能)のプログラムを持つ。またサーバ機能を持つノードについては、要求手段の機能をプログラムから削除することができる。   It is not necessary for one node to have a program that realizes all the functions of request means, node assignment means, load assignment means, calculation means, connection means, and display control means. That is, not all of the nodes have the function of becoming a main node, but a node having only a program of a function of becoming a sub-node may be included. The sub-node has, for example, a program of a function of the calculation means (volume rendering calculation function). For nodes having a server function, the function of the request means can be deleted from the program.

また、ボリュームレンダリング処理システムを構成する複数台のノードの中に、比較的負荷のかかるボリュームレンダリング演算はせず、画像表示などの比較的演算負荷の小さい処理だけを主に担当するノードが存在してもよい。すなわち、このノードは、入力手段、要求手段、ノード割当手段、負荷割当手段、連結手段および表示制御手段は備えるが、比較的負荷のかかる演算手段の機能は他のノード(割り当てノード)に任せる。具体的には、演算能力の低い計算機に端末機能を持たせ、ボリュームレンダリング画像の演算はネットワークを通じて他のノードに任せる形とする。例えば4次元以上の高次元ボリュームレンダリング処理をするにはノードに高い演算能力が要求されるが、ボリュームレンダリング演算を行わないノードであれば演算能力の低いパーソナルコンピュータ(ノートパソコン等)で済ませられ、比較的高価なワークステーションばかりを取り揃える必要がなくなる。なお、この例のノードは、図2における要求処理部10、割当処理部11、データ連結処理部13、画像メモリ15および表示制御部16を備え、分散ボリュームレンダリング処理部12およびボクセルデータ格納部14は備えていない。また、要求処理部10、割当処理部11、データ連結処理部13および表示制御部16は、コンピュータにより実行されるプログラムにより実現される。   Also, among the multiple nodes that make up the volume rendering processing system, there are nodes that do not perform volume rendering operations that are relatively expensive, but are mainly responsible for processing that has a relatively low computational load, such as image display. May be. That is, this node includes an input unit, a request unit, a node allocation unit, a load allocation unit, a connection unit, and a display control unit, but leaves the function of a relatively heavy load calculation unit to other nodes (allocation nodes). Specifically, a computer having low computing ability is provided with a terminal function, and volume rendering image computation is left to other nodes through a network. For example, in order to perform a four-dimensional or higher-dimensional volume rendering process, a node requires high computing ability, but if it is a node that does not perform volume rendering computation, a personal computer (such as a notebook computer) with low computing ability can be used. Eliminates the need to have only relatively expensive workstations. The node in this example includes the request processing unit 10, the allocation processing unit 11, the data concatenation processing unit 13, the image memory 15, and the display control unit 16 in FIG. 2, and the distributed volume rendering processing unit 12 and the voxel data storage unit 14. Is not prepared. The request processing unit 10, the allocation processing unit 11, the data connection processing unit 13, and the display control unit 16 are realized by a program executed by a computer.

さらにノード割当手段、負荷割当手段、連結手段も他のノードに任せ、他のノードで連結処理まで終わったボリュームレンダリング画像のデータを受信し、ボリュームレンダリング画像を表示手段に表示させる表示制御手段の機能だけを持つノード(端末ノード)が存在してもよい。つまり、この場合のノードは、入力手段、要求手段、表示制御手段を備えるが、ノード割当手段、負荷割当手段、演算手段、連結手段は他のノードが受け持つ。例えば連結手段はメインノードが受け持ち、このノードは、メインノードから受信したボリュームレンダリング画像データに基づき画像表示処理を行う。見かけ上は、この端末ノードとは別の、演算処理を受け持つ複数台のノードのうち一台がメインノードとなる。   Further, the function of the display control means for receiving the data of the volume rendering image that has been subjected to the connection processing at the other node and displaying the volume rendering image on the display means by leaving the node assignment means, the load assignment means, and the connection means to other nodes. There may be a node (terminal node) having only That is, the node in this case includes an input unit, a request unit, and a display control unit, but the node allocation unit, the load allocation unit, the calculation unit, and the connection unit are handled by other nodes. For example, the connection means is handled by the main node, and this node performs image display processing based on the volume rendering image data received from the main node. Apparently, one of a plurality of nodes responsible for arithmetic processing, which is different from the terminal node, becomes a main node.

具体的には、この端末ノードは回転、縮小、オパシティ値の変更、色の変更などの表示指示をメインノードに送信する。このメインノードがノード割当ておよび負荷分割からデータ連結処理までを行い、得られた画像を端末ノードに送信する。端末ノードは受信した画像を表示する。この例の端末ノードは、図2における要求処理部10と、画像メモリ15と、表示制御部16とを備え、割当処理部11、分散ボリュームレンダリング処理部12およびデータ連結処理部13、ボクセルデータ格納部14は備えていない。端末ノードでは、メインノードから受信したボリュームレンダリング画像データが画像メモリ15に格納され、表示制御部16はこの画像データを基に表示装置4の画面にボリュームレンダリング画像を表示させる。なお、要求処理部10および表示制御部16は、コンピュータにより実行されるプログラムにより実現される。   Specifically, this terminal node transmits display instructions such as rotation, reduction, opacity value change, and color change to the main node. The main node performs node allocation and load division to data connection processing, and transmits the obtained image to the terminal node. The terminal node displays the received image. The terminal node in this example includes the request processing unit 10, the image memory 15, and the display control unit 16 in FIG. 2, the allocation processing unit 11, the distributed volume rendering processing unit 12, the data concatenation processing unit 13, and the voxel data storage. The part 14 is not provided. In the terminal node, the volume rendering image data received from the main node is stored in the image memory 15, and the display control unit 16 displays the volume rendering image on the screen of the display device 4 based on this image data. The request processing unit 10 and the display control unit 16 are realized by a program executed by a computer.

・ サーバに対するボクセルデータの要求元はメインノードのみに限定されない。例えばサブノードが割り当てられたボクセルデータ(または分割ボクセルデータ)をサーバに対して個々に要求する方法を採用しても構わない。この場合、メインノードの要求処理部10とサブノードの要求処理部10とにより要求手段が構成される。   -The request source of voxel data to the server is not limited to the main node. For example, a method of individually requesting voxel data (or divided voxel data) to which subnodes are assigned to the server may be employed. In this case, the request processing unit 10 of the main node and the request processing unit 10 of the sub node constitute request means.

・ ノード割当手段がノード割り当て時に各ノードの計算資源使用状況の情報を基に判断する「分散処理可能な余力」、「ノードの処理能力」とは、ノードのCPU余力およびメモリ空き容量のみを指標とする方法に限定されない(計算余力もCPU余力に限定されない)。要するに、計算能力の指標とデータ容量の指標の2種類の指標からノード割り当てを判断することを基本とし、各指標としてCPU余力とメモリ空き容量のみを用いることに限定されない。計算能力の指標はCPU以外にも計算処理する部分がある場合、例えばボリュームレンダリング専用拡張ボード上でも計算を行う場合はこれも考慮する。またデータ容量の指標は、通常のメモリのほかに専用拡張ボード上のメモリがある場合は、専用拡張ボード上のメモリのメモリ空き容量も考慮する。また同一ノード上で異なるメモリ構成を取る場合、メモリの種類の違いを考慮して指標とする。また、同一のボリュームレンダリング専用拡張ボードに専用演算チップと、専用メモリの両方がある場合、それらも指標として考慮する。さらに計算能力の指標として、例えばシステムバスの性能(帯域幅、クロック)を考慮する。システム バスは、CPUとその他のコンポーネント(メモリやビデオカードなど)を結ぶ重要なパイプで、大量の命令やデータをCPUに送ったり、CPUが処理した結果をメモリやビデオカードなどに送り返す役割を果たし、計算能力に影響を与えるからである。   -The node allocation means judges based on the information on the usage status of each node's computing resources when allocating nodes. The “distributable capacity” and “node processing capacity” indicate only the CPU capacity and free memory capacity of the node. (The calculation capacity is not limited to the CPU capacity). In short, it is based on determining node allocation from two types of indexes, that is, a calculation capability index and a data capacity index, and the present invention is not limited to using only CPU remaining capacity and memory free space as each index. In the case where there is a calculation processing index other than the CPU, for example, the calculation capability index is also taken into account when the calculation is performed even on the expansion board dedicated to volume rendering. In addition, when there is a memory on the dedicated expansion board in addition to the normal memory, the data capacity index also considers the memory free capacity of the memory on the dedicated expansion board. When different memory configurations are used on the same node, the difference is taken into account as an index. In addition, when there are both a dedicated arithmetic chip and a dedicated memory on the same volume rendering expansion board, they are also considered as indices. Further, for example, the performance (bandwidth, clock) of the system bus is considered as an index of calculation capability. The system bus is an important pipe that connects the CPU and other components (memory, video card, etc.), and plays a role in sending a large amount of instructions and data to the CPU and returning the results processed by the CPU to the memory, video card, etc. This is because it affects the computing ability.

計算能力の指標の算出方法としては以下の例が挙げられる。各ノードは、能力値ベクトルを持っており、能力値ベクトルの要素として考えられるものを以下に列挙する。ベクトルの個々の要素はそれぞれ相対的な値を持つ。なお、以下の(3),(7),(12),(1 5)はノード割り当て時にその都度計測の必要がある。
(1)CPUクロック
(2)CPUキャッシュ容量
(3)CPU未使用率(=1−CPU使用率)
(4)システムバス帯域幅
(5)システムバスクロック
(6)専用拡張ボード演算処理部クロック
(7)専用拡張ボード演算処理部未使用率(=1−ボード使用率)
(8)拡張ボードとシステム間のバス帯域幅
(9)拡張ボードとシステム間のバスクロック
(10)メモリ総容量
(11)メモリの動作クロック
(12)メモリ空き容量
(13)専用拡張ボードの総メモリ容量
(14)専用拡張ボードのメモリの動作クロック
(15)専用拡張ボードのメモリ空き容量
ここで、能力値ベクトルを入力とし、スカラー値を出力する関数を定義すれば、計算能力の指標を得ることができる。例えばスカラー値を出力する関数の例を以下に示す。なお、以下の関数式において( )内に示す各要素の数値は、機種間の相違を考慮した相対値で表している。また( )の前の乗算値は各要素の重み付け値である。
The following examples are given as the calculation method of the calculation ability index. Each node has an ability value vector, and the following are listed as possible elements of the ability value vector. Each element of the vector has a relative value. The following (3), (7), (12), and (15) need to be measured each time a node is assigned.
(1) CPU clock
(2) CPU cache capacity
(3) CPU unused rate (= 1-CPU usage rate)
(4) System bus bandwidth
(5) System bus clock
(6) Dedicated expansion board arithmetic processing unit clock
(7) Dedicated expansion board arithmetic processing unit unused rate (= 1-board usage rate)
(8) Bus bandwidth between expansion board and system
(9) Bus clock between expansion board and system
(10) Total memory capacity
(11) Memory operating clock
(12) Free memory space
(13) Total memory capacity of the dedicated expansion board
(14) Dedicated expansion board memory operating clock
(15) Memory capacity of the dedicated expansion board Here, if an ability value vector is input and a function that outputs a scalar value is defined, an index of calculation ability can be obtained. An example of a function that outputs a scalar value is shown below. In the following function formulas, the numerical value of each element shown in parentheses is expressed as a relative value in consideration of differences between models. The multiplication value before () is a weighting value of each element.

(A) 計算能力の指標(計算余力)=[35*(40:CPUクロック)+10*(10:CPUキャッシュ容量) ]*(0.70:CPU未使用率)+15*(20:システムバス帯域幅)+10*(30:システムバスクロック)+[17.5*(50:専用拡張ボード演算処理部クロック) ]*(0.65:専用拡張ボード演算処理部未使用率)+5*(70:拡張ボードとシステム間のバス帯域幅)+7.5*(60:拡張ボードとシステム間のバスクロック)
(B)データ容量の指標(保持可能データ余力)=5*(70:システムバス帯域幅)+ 5*(40:システムバスクロック)+[ 70*(10:メモリ総容量) + 5*(3:メモリの動作クロック)]*(0.55:メモリ空き容量)+ [ 5*(30:専用拡張ボードのメモリの動作クロック)+ 10*(20:専用拡張ボードの総メモリ容量) ] * (0.35:専用拡張ボードのメモリ空き容量)
なお、上記(1)〜(15)の要素は全て採用する必要はもちろんなく、必要に応じて適宜選択することができるが、CPU余力(例えばCPU未使用率)とメモリ空き容量は必須とすることが好ましい。
(A) Calculation capacity index (calculation capacity) = [35 * (40: CPU clock) + 10 * (10: CPU cache capacity)] * (0.70: CPU unused rate) + 15 * (20: System bus bandwidth) + 10 * (30: system bus clock) + [17.5 * (50: dedicated expansion board arithmetic processing unit clock)] * (0.65: dedicated expansion board arithmetic processing unit unused rate) + 5 * (70: between expansion board and system) (Bus bandwidth) + 7.5 * (60: Bus clock between expansion board and system)
(B) Data capacity index (retainable data capacity) = 5 * (70: system bus bandwidth) + 5 * (40: system bus clock) + [70 * (10: total memory capacity) + 5 * (3 : Memory operation clock)] * (0.55: Free memory capacity) + [5 * (30: Memory clock of the dedicated expansion board) + 10 * (20: Total memory capacity of the dedicated expansion board)] * (0.35: (Dedicated expansion board free memory space)
Of course, the elements (1) to (15) are not necessarily adopted, and can be selected as necessary. However, the CPU remaining capacity (for example, the CPU unused rate) and the memory free space are essential. It is preferable.

・ ノード割り当てをする際に、通信オーバーヘッドを考慮してもよい。例えば通信オーバーヘッドは、データ容量が小さい場合は複数ノードで分散処理するよりも、一台のノードで行う方が効率的であることを判断する条件の1つになる。データ分割モードではノード割り当てをせざるを得ないが、データコピーモードおよび混合モードでは、通信オーバーヘッドが大きいと判断されれば同一データ(同一分割データを含む)を複数ノードに割り当てることはせず一台のノードのみ割り当てるか、ノード割り当て数を通常より減らすようにする。このように構成すれば、通信オーバーヘッドに起因する画像処理速度の低下を防ぐことができる。   -Communication overhead may be taken into account when assigning nodes. For example, the communication overhead is one of the conditions for determining that it is more efficient to use one node than to perform distributed processing with a plurality of nodes when the data capacity is small. In the data division mode, node allocation is unavoidable. However, in the data copy mode and the mixed mode, if the communication overhead is judged to be large, the same data (including the same division data) cannot be assigned to a plurality of nodes. Allocate only one node, or reduce the number of node allocations than usual. If comprised in this way, the fall of the image processing speed resulting from communication overhead can be prevented.

・ メインノード数が変化したときに動的負荷割り当て内容を見直す制御方法を採用したが、動的負荷割り当て内容の見直し時期は特にメインノード数変化時に限らない。例えば所定時間(例えば数100ミリ秒〜数秒)ごとに動的負荷割り当て内容の見直しを行ってもよい。   -A control method has been adopted in which the dynamic load allocation contents are reviewed when the number of main nodes changes, but the time for reviewing the dynamic load allocation contents is not limited to when the number of main nodes changes. For example, the dynamic load allocation content may be reviewed every predetermined time (for example, several hundred milliseconds to several seconds).

・ 各割り当てノードへのボクセルデータ(分割ボクセルデータを含む)のサーバへの転送要求は、メインノードがサーバに対して一括的に行うことに限定されない。例えばメインノードがサブノードに対して割当負荷の情報を伝え、各ノードがそれぞれサーバに対し自分が使うボクセルデータ(分割ボクセルデータを含む)を個々に要求するシステム構成を採用することもできる。さらにメインノードから1つのサブノードに対し各割り当てノード分すべての割当負荷の情報を伝え、そのサブノードがサーバに対し各割り当てノード分すべてのボクセルデータ(分割ボクセルデータを含む)を一括要求するシステム構成を採用することもできる。つまりノードは、ボクセルデータをサーバに対して一括要求する要求手段を必ずしも持つ必要はなく、他ノードが一括要求したボクセルデータ(分割ボクセルデータを含む)を受け付けるだけの構成であっても構わない。   The request for transferring voxel data (including divided voxel data) to each allocation node to the server is not limited to the main node making a batch request to the server. For example, it is possible to adopt a system configuration in which the main node transmits information on the allocated load to the sub nodes, and each node individually requests voxel data (including divided voxel data) to be used by the node. Further, a system configuration in which the main node transmits information on all allocated loads for each allocated node to one subnode, and the subnode collectively requests voxel data (including divided voxel data) for each allocated node to the server. It can also be adopted. That is, the node does not necessarily have a requesting unit that collectively requests voxel data from the server, and may be configured to receive only voxel data (including divided voxel data) requested by another node.

・ 4次元(4D)以上のボリュームレンダリング処理においては、複数のノードに動的に負荷を割り当てる際の負荷分割方法は前記実施形態の方法に限定されない。次元に応じた負荷分割方法を採用できる。4D処理の具体例を以下に示す。
4D処理は3D処理を時系列方向に繰り返す。データコピーモード、分割モード、混合モードのいずれも採用できる。但し、データの分割は、3D処理の場合は空間的な分割であったが、4D処理の場合は空間的な分割とともに時系列方向の分割も含まれる。例えば、「300スライス×10フェーズ(時刻)=計3000スライス」のような4Dデータ、計算ノード2台(同等の能力)があったとする。計算ノード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)時間&空間分割ノード
時間分割と空間分割(空間分割モード、空間混合モード)を組み合わせる負荷分担方法も採用できる。現実的には4Dデータの分割は、同時刻では空間的に分割せず、異なる時刻をそれぞれ別のノードに振り分ける時間的な分割のみを行う場合が多いと考えられるが、時間的な分割に加え同時刻のデータを重複しないように別々のノードに空間的にも分割する方法も採用できる。
In the four-dimensional (4D) or higher volume rendering process, the load dividing method when dynamically assigning loads to a plurality of nodes is not limited to the method of the above embodiment. A load dividing method according to the dimension can be adopted. A specific example of 4D processing is shown below.
The 4D process repeats the 3D process in the time series direction. Any of data copy mode, split mode, and mixed mode can be employed. However, the data division was spatial division in the case of 3D processing, but in the case of 4D processing, division in the time series direction is included as well as spatial division. For example, assume that there is 4D data such as “300 slices × 10 phases (time) = total 3000 slices” and two computation nodes (equivalent capacity). Compute node 1 is the main node.
(1) Time copy mode All data is copied to calculation nodes 1 and 2. While the main node (node 1) calculates time 1, it issues a distributed processing request for data at time 2 to node 2. After displaying the image at time 1 on the display unit based on the calculation result of node 1, the image at time 2 is displayed based on the calculation result of node 2.
(2) Time division mode Calculation node 1 is assigned “time 1, 3, 5, 7, 9”, and calculation node 2 is assigned “time 2, 4, 6, 8, 10”. Although it is best to copy all the data to each computing node, it is assumed that half the capacity is allocated so as not to overlap by time due to the storage capacity. The assigning means determines the time assigned to each node (alternate times in this example).
(3) Time mixing mode
Combination of (1) and (2)
(4) Time & space division node A load sharing method combining time division and space division (space division mode, space mixed mode) can also be adopted. In reality, it is considered that 4D data is not divided spatially at the same time, but often only temporally distributes different times to different nodes. In addition to temporal division, A method of spatially dividing the data at the same time into separate nodes so as not to overlap can also be adopted.

従って、これらの方法の採用により、3D処理よりも扱うデータ容量が大きい4D処理において、時系列方向に分割して協調分散処理を行うことで、空間的な分割のみ採用する場合に比べ、システムの処理能力をより効果的に向上させることができる。よって、4Dデータのボリュームレンダリング処理の需要が増えつつある医療業界で、従来技術よりも著しい性能差が出る。   Therefore, by adopting these methods, in 4D processing that handles a larger data volume than 3D processing, by performing collaborative distributed processing by dividing in the time series direction, compared to the case where only spatial division is adopted, The processing capacity can be improved more effectively. Therefore, in the medical industry where the demand for volume rendering processing of 4D data is increasing, there is a significant performance difference compared to the conventional technology.

前記実施形態及び別例から把握できる技術的思想を、以下に記載する。
(1)請求項1〜4のいずれか一項の発明において、前記サーバは前記複数のノードとは別に設けられ、三次元以上のボクセルデータを記憶するサーバと、前記サーバからボクセルデータを受け付けてボリュームレンダリング処理を行う複数のノードとによってコンピュータネットワークが構築されたボリュームレンダリング処理システムであることを特徴とする。この構成であれば、サーバがデータを保管することで、ノードの計算資源をデータの計算処理のためにより多く活用でき、一層の高速処理に対応できる。
The technical idea that can be grasped from the embodiment and other examples will be described below.
(1) In the invention according to any one of claims 1 to 4, the server is provided separately from the plurality of nodes, receives a voxel data from the server that stores three-dimensional or more voxel data, and A volume rendering processing system in which a computer network is constructed by a plurality of nodes that perform volume rendering processing. With this configuration, when the server stores data, the calculation resources of the node can be used more for data calculation processing, and higher speed processing can be handled.

(2)請求項1〜4のいずれか一項の発明において、前記サーバは前記複数のノードのうち少なくとも一つが兼ねていることを特徴とする。この構成であれば、サーバ機能を持つノードからも表示対象指定による表示要求を出してその表示手段に協調分散処理結果の画像(ボリュームレンダリング画像)を表示させることができる。   (2) In the invention according to any one of claims 1 to 4, the server serves as at least one of the plurality of nodes. With this configuration, it is possible to issue a display request by designating a display target from a node having a server function and display an image (volume rendering image) of the cooperative distributed processing result on the display means.

(3)請求項1〜4のいずれか一項に記載の発明において、前記複数のノードのうち少なくとも二つは、前記入力手段、前記要求手段、前記ノード割当手段、前記負荷割当手段、前記演算手段、前記連結手段及び表示制御手段をそれぞれ備え、表示手段に画像を表示可能な表示対象指定元のメインノードとなり得るノードであることを特徴とする。この構成によれば、複数のノードのうち各手段のすべてを備える少なくとも二つのノードは、ボリュームレンダリング画像を見ることが可能なメインノードにも、分散処理(分散ボリュームレンダリング処理)でメインノードを支援するサブノードにもなり得る。よって、ユーザーは少なくとも二つ(二つ以上)のどのノードからも、入力手段で指定したボクセルデータのボリュームレンダリング画像を表示手段を通して見ることができる。   (3) In the invention according to any one of claims 1 to 4, at least two of the plurality of nodes are the input unit, the request unit, the node allocation unit, the load allocation unit, and the calculation. Means, a connecting means, and a display control means, each of which is a node that can be a display target designation source main node capable of displaying an image on the display means. According to this configuration, at least two nodes including all of the means among the plurality of nodes support the main node by the distributed processing (distributed volume rendering processing) as well as the main node capable of viewing the volume rendering image. Can also be a subnode. Therefore, the user can view the volume rendering image of the voxel data designated by the input means from any of at least two (two or more) nodes through the display means.

(4)前記技術的思想(3)において、前記複数のノードのすべてが前記メインノードとなり得るノードである。この構成によれば、各ノードはサブノード、メインノードに必要な機能を全て持っており、役割に応じてサブノード、メインノードと切り替わるので、どのノードもメインノードに成り得る。よって、どのノードからもボリュームレンダリング画像を見ることができる。   (4) In the technical idea (3), all of the plurality of nodes can be the main nodes. According to this configuration, each node has all the functions necessary for the subnode and the main node, and switches to the subnode and the main node according to the role. Therefore, any node can be the main node. Therefore, the volume rendering image can be viewed from any node.

(5)請求項1〜4及び技術的思想(1)〜(4)のいずれかにおいて、前記ノード割当手段は、ノード割り当て条件として前記計算資源使用状況以外に通信オーバーヘッドを考慮し、計算資源使用状況から決まるノード数では通信オーバーヘッドが大きいと判断したときには、前記表示対象指定元となるメインノードを含む割り当てノード数を、前記計算資源使用状況から決まるノード数より少なく設定し、前記負荷割当手段は、前記割り当てノードに対し当該割り当てノード数に応じた負荷割り当てを行うことを特徴とする。   (5) In any one of claims 1 to 4 and technical ideas (1) to (4), the node allocation means considers communication overhead in addition to the calculation resource usage status as a node allocation condition, and uses the calculation resource When it is determined that the communication overhead is large with the number of nodes determined from the situation, the number of allocated nodes including the main node as the display target designation source is set to be smaller than the number of nodes determined from the computing resource usage status, The load allocation is performed on the allocation node according to the number of allocation nodes.

(6)請求項1〜4及び技術的思想(1)〜(5)のいずれかにおいて、前記ノード割当手段は、前記表示対象指定元となるメインノードの処理能力で足りると判断すれば他のノードに割り当てをせず当該メインノード単独で割り当て、前記負荷割当手段は、当該メインノードにのみ前記表示対象のボクセルデータとボリュームレンダリング処理を割り当て、当該メインノードの前記演算手段が前記表示対象のボクセルデータに対するボリュームレンダリング処理を単独で実行することを特徴とする。この構成によれば、メインノードの処理能力で足りると判断すればメインノード単独でボクセルデータに対するボリュームレンダリング処理が行われる。そして、ノード割当手段は、メインノードの処理能力では足りないと判断したときに他のノードをも割り当て、各割り当てノードにより協調分散処理が行われる。   (6) In any one of claims 1 to 4 and technical ideas (1) to (5), if the node allocating unit determines that the processing capability of the main node as the display target designation source is sufficient, The load allocating unit allocates the display target voxel data and the volume rendering process only to the main node without allocating the node, and the calculation unit of the main node performs the display target voxel. A volume rendering process for data is executed alone. According to this configuration, if it is determined that the processing capability of the main node is sufficient, the main node alone performs volume rendering processing on voxel data. When the node allocation means determines that the processing capability of the main node is not sufficient, the node allocation unit also allocates another node, and cooperative distributed processing is performed by each allocation node.

(7)請求項1〜4及び技術的思想(1)〜(6)のいずれかにおいて、前記表示対象指定元となるメインノードから入力手段により指定されて前記サーバに要求されたボクセルデータのうち少なくとも割り当てるべきデータを既にローカルストレージに持つ割り当てノードに対しては、前記サーバはその割り当てデータを送信することはせず、当該割り当てノードにおける前記演算手段は前記ローカルストレージに持つデータを用いて当該データに対するボリュームレンダリング処理を実行することを特徴とする。この構成によれば、サーバから割り当てノードへのデータ送信時間を省け一層の高速処理に対応できる。   (7) In any one of claims 1 to 4 and technical ideas (1) to (6), the voxel data specified by the input means from the main node as the display target specifying source and requested from the server For an allocation node that already has at least data to be allocated in the local storage, the server does not transmit the allocation data, and the computing means in the allocation node uses the data in the local storage to Volume rendering processing is executed for According to this configuration, it is possible to save data transmission time from the server to the allocation node and cope with higher speed processing.

(8)請求項1〜4及び技術的思想(1)〜(7)のいずれかにおいて、前記負荷割当手段は、前記ノード割当手段により割り当てられた各ノードに対し各々の処理能力に応じて前記表示対象のボクセルデータと該ボクセルデータに施すボリュームレンダリング処理とのうち少なくとも一方の分割割合を決定して動的負荷割り当てを行うことを特徴とする。   (8) In any one of claims 1 to 4 and technical ideas (1) to (7), the load allocating unit is configured so that the node allocated by the node allocating unit corresponds to each processing capability. A dynamic load assignment is performed by determining a division ratio of at least one of display target voxel data and volume rendering processing applied to the voxel data.

(9)請求項1〜4及び技術的思想(1)〜(8)のいずれかにおいて、前記負荷割当手段は、前記ノード割当手段により割り当てられた各ノードの処理能力に応じて、前記表示対象のボクセルデータに施すべき計算処理のみの分割割合を決定するデータコピーモードと、前記表示対象のボクセルデータのみの分割割合を決定するデータ分割モードと、前記表示対象のボクセルデータと該ボクセルデータに施すべき計算処理との両方の分割割合を決定する混合モードとの中から一つを選択することを特徴とする。この構成によれば、ノードの計算資源を一層効率よく活用できボリュームレンダリング処理を高速に実行できる。   (9) In any one of claims 1 to 4 and technical ideas (1) to (8), the load allocation unit is configured to display the display target according to the processing capability of each node allocated by the node allocation unit. A data copy mode for determining a division ratio for only the calculation processing to be performed on the voxel data of the data, a data division mode for determining a division ratio for only the voxel data to be displayed, and the voxel data to be displayed and the voxel data. One is selected from the mixed mode for determining the division ratio for both the power calculation process and the power calculation process. According to this configuration, the computational resources of the node can be used more efficiently, and the volume rendering process can be executed at high speed.

(10)請求項1〜4及び技術的思想(1)〜(9)のいずれかにおいて、前記表示対象指定元のメインノードは、他のノードとの通信によって各ノードの計算資源利用状況の情報を取得しており、前記ノード割当手段は前記各ノードの計算資源利用状況の情報に基づいて当該各ノードの処理能力を判断して処理能力上必要な空きのあるノードを選択してノード割り当てを行い、前記負荷割当手段は、前記各割り当てノードの計算資源利用状況の情報に基づいて当該各割り当てノードの処理能力を判断して処理能力上の空きに応じてボクセルデータとボリュームレンダリング処理との少なくとも一方の分割割合を決定して動的負荷割り当てを行うことを特徴とする。   (10) In any one of claims 1 to 4 and technical ideas (1) to (9), the main node that is the display target designation source is information on the computing resource usage status of each node through communication with other nodes. The node allocating means judges the processing capacity of each node based on information on the computing resource utilization status of each node, selects a node having a space necessary for the processing capacity, and allocates the node. And the load allocating means determines the processing capability of each allocation node based on the information on the usage status of the calculation resource of each allocation node, and determines at least the voxel data and the volume rendering process according to the available capacity. One division ratio is determined and dynamic load allocation is performed.

(11)請求項1〜4及び技術的思想(8)〜(10)のいずれかにおいて、前記要求手段は、前記ノード割当手段によるノード割当情報と、前記負荷割当手段による負荷割当情報とを前記サーバに要求として送り、前記サーバは前記ノード割当情報で指定された割り当てノードに対し、前記負荷割当情報で指定された割合でデータ分割された分割ボクセルデータ又はボクセルデータをそのまま送ることを特徴とする。   (11) In any one of claims 1 to 4 and technical ideas (8) to (10), the requesting unit includes the node allocation information by the node allocation unit and the load allocation information by the load allocation unit. The server sends the request as a request, and the server sends the divided voxel data or the voxel data divided as it is at a rate specified by the load allocation information to the allocation node specified by the node allocation information. .

(12)前記技術的思想(11)において、前記各割り当てノードの演算手段は、前記サーバから取得した分割ボクセルデータ又はボクセルデータに対し前記表示対象指定元となるメインノードから得た負荷割当情報で指定された計算負荷の計算処理を実行することを特徴とする。   (12) In the technical idea (11), the calculation means of each allocation node is divided voxel data acquired from the server or load allocation information obtained from the main node that is the display target designation source for the voxel data. A calculation process of a specified calculation load is executed.

(13)請求項1〜4及び技術的思想(1)〜(12)のいずれかにおいて、前記負荷割当手段は、予め通信で情報として得た各ノードの処理能力に応じて、前記各割り当てノードのメモリ空き容量に応じてデータ容量負荷を決定するとともにCPU空き容量に応じて計算負荷を決定して動的負荷割り当てを行うことを特徴とする。この場合、複数のノード(計算機)が動的にデータ容量負荷と計算負荷を分担しながら協調分散処理を行うことにより、請求項1の発明と同様の効果が得られる。   (13) In any one of claims 1 to 4 and technical ideas (1) to (12), the load allocating unit may determine whether each of the allocated nodes corresponds to a processing capability of each node obtained as information in advance through communication. The data capacity load is determined according to the available memory capacity and the calculation load is determined according to the CPU available capacity to perform dynamic load allocation. In this case, an effect similar to that of the first aspect of the invention can be obtained by performing cooperative distributed processing while a plurality of nodes (computers) dynamically share the data capacity load and the calculation load.

(14)請求項1〜4及び技術的思想(1)〜(13)のいずれかにおいて、前記表示対象指定元となるメインノードの数に変更があると、前記ノード割当手段はノードの割り当てをし直すとともに、前記負荷割当手段は割り当てノードに対する動的負荷割り当てをし直すことを特徴とする。この構成によればメインノードの数に変更があったときにノード割り当てと動的負荷割り当ての見直しが図られるので、他ノードの処理を妨げず計算資源を有効に活用でき、ボクセルデータに施すボリュームレンダリング処理を高速に実行できる。   (14) In any one of claims 1 to 4 and technical ideas (1) to (13), if there is a change in the number of main nodes as the display target designation source, the node allocation means allocates nodes. In addition, the load allocating unit re-allocates the dynamic load to the allocation node. According to this configuration, when the number of main nodes is changed, the node allocation and the dynamic load allocation are reviewed, so that the computing resources can be effectively used without interfering with the processing of other nodes, and the volume applied to the voxel data The rendering process can be executed at high speed.

(15)請求項1〜3のいずれか一項の発明において、前記ノード割当手段は、計算能力の指標とデータ容量の指標に基づいてノード割当を行う。
(16)前記技術的思想(5)〜(15)のいずれかにおける前記ノード割当手段及び前記負荷割当手段を備える請求項6に記載の計算機。
(15) In the invention according to any one of claims 1 to 3, the node allocation means performs node allocation based on a calculation capacity index and a data capacity index.
(16) The computer according to claim 6, comprising the node allocation unit and the load allocation unit according to any one of the technical ideas (5) to (15).

(17)請求項1〜7及び技術的思想(11),(12)のいずれかに記載の分散処理システムにおいて使用されるサーバであって、前記表示対象指定元となるメインノードからノード割当情報及びデータ分割割当情報と共にボクセルデータの要求を受け付けると、前記割り当てノードに対しデータ分割割当情報から決まる分割ボクセルデータを送信することを特徴とするサーバ。   (17) A server used in the distributed processing system according to any one of claims 1 to 7 and technical ideas (11) and (12), wherein node allocation information is transmitted from the main node as the display target designation source. When the voxel data request is received together with the data division allocation information, the server transmits the divided voxel data determined from the data division allocation information to the allocation node.

(18)請求項10に記載のボリュームレンダリング処理方法において、コンピュータの前記ノード割当手段は、前記ノードを割り当てる段階において、前記表示対象指定元となるメインノードの処理能力で足りると判断すれば他のノードに割り当てをせず当該メインノード単独で割り当て、コンピュータの負荷割当手段は前記動的負荷割り当てを行う段階において当該メインノードにのみボクセルデータとボリュームレンダリング処理を割り当て、当該メインノードを構成するコンピュータの前記演算手段は単独で前記表示対象のボクセルデータに対するボリュームレンダリング処理を実行することを特徴とする。   (18) In the volume rendering processing method according to claim 10, when the node allocation means of the computer determines that the processing capability of the main node as the display target designation source is sufficient in the step of allocating the node, Assigning the main node alone without assigning to the node, the load allocating means of the computer assigns voxel data and volume rendering processing only to the main node at the stage of performing the dynamic load assignment, and the computer constituting the main node The arithmetic means alone performs a volume rendering process on the display target voxel data.

(19)請求項10に記載のボリュームレンダリング処理方法において、前記表示対象指定元となるメインノードから入力手段により指定されて前記サーバに要求されたボクセルデータのうち少なくとも割り当てるべきデータを既にローカルストレージに持つ割り当てノードに対しては、前記サーバはその割り当てデータを送信することはせず、当該割り当てノードにおけるコンピュータの前記演算手段は前記ローカルストレージに持つデータを用いて当該データに対するボリュームレンダリング処理を実行することを特徴とする。この方法によれば、割り当てノードが既にローカルストレージに必要なボクセルデータを持つ場合は、サーバから割り当てノードへのデータ送信時間を省け一層の高速処理に対応できる。   (19) In the volume rendering processing method according to claim 10, at least data to be allocated among voxel data designated by the input means from the main node which is the display target designation source and requested to the server is already stored in the local storage. The server does not transmit the assigned data to the assigned node, and the computing means of the computer in the assigned node executes the volume rendering process for the data using the data held in the local storage. It is characterized by that. According to this method, when the allocation node already has the voxel data necessary for the local storage, the data transmission time from the server to the allocation node can be saved and higher speed processing can be supported.

一実施形態におけるボリュームレンダリング処理システムのブロック図。1 is a block diagram of a volume rendering processing system in one embodiment. FIG. ボリュームレンダリング処理システムの機能ブロック図。The functional block diagram of a volume rendering processing system. 計算負荷割り当て手法の説明図。Explanatory drawing of a calculation load allocation method. 協調分散処理システムの特徴的な作動状況を説明する説明図。Explanatory drawing explaining the characteristic operating condition of a cooperative distributed processing system. 協調分散処理システムの特徴的な作動状況を説明する説明図。Explanatory drawing explaining the characteristic operating condition of a cooperative distributed processing system. ノード割り当ておよび負荷割り当ての変更処理の説明図。Explanatory drawing of a change process of node allocation and load allocation. ノード割り当ておよび負荷割り当ての変更処理の説明図。Explanatory drawing of a change process of node allocation and load allocation. (a)「平行投影法」、(b)「透視投影法」を示す説明図。Explanatory drawing which shows (a) "parallel projection method" and (b) "perspective projection method". ボリュームレンダリング処理を説明するブロック図。The block diagram explaining a volume rendering process. (a)データ分割、(b)は計算負荷分割の説明図。(A) Data division, (b) is an explanatory diagram of calculation load division. 計算分割時のボリュームレンダリング処理を説明するブロック図。The block diagram explaining the volume rendering process at the time of a calculation division | segmentation. ボクセルデータ分割の説明図。Explanatory drawing of a voxel data division | segmentation. (a)〜(c)データコピーモードにおける計算負荷割当の説明図。(A)-(c) Explanatory drawing of calculation load allocation in data copy mode. データ分割モードにおけるデータ分割の説明図。Explanatory drawing of the data division in data division mode. 混合モードにおけるデータ分割および計算分割の説明図。Explanatory drawing of the data division | segmentation and calculation division | segmentation in mixed mode. 従来技術における画像処理システムのブロック図。1 is a block diagram of an image processing system in the prior art. 従来技術における画像処理用ネットワークシステムのブロック図。1 is a block diagram of a network system for image processing in the prior art. 同じくブロック図。Similarly block diagram.

符号の説明Explanation of symbols

1…ボリュームレンダリング処理システムとしての協調分散処理システム、2…サーバとしてのストレージサーバー、3…ノード(計算機)、4…表示手段としての表示装置、5…入力手段としての入力装置、10…要求手段としての要求処理部、12…演算手段としての分散ボリュームレンダリング処理部、13…連結手段としてのデータ連結処理部、16…表示制御手段としての表示制御部、17…ノード割当手段としてのノード割当部、18…負荷割当手段としての負荷割当部、20…データ分割割当部、21…計算分割割当部、VD…ボクセルデータ、VD1,VD2…分割ボクセルデータ。   DESCRIPTION OF SYMBOLS 1 ... Cooperative distributed processing system as volume rendering processing system, 2 ... Storage server as server, 3 ... Node (computer), 4 ... Display device as display means, 5 ... Input device as input means, 10 ... Request means As a request processing unit, 12 as a distributed volume rendering processing unit as a calculation unit, 13 as a data connection processing unit as a connection unit, 16 as a display control unit as a display control unit, and 17 as a node allocation unit as a node allocation unit 18... Load allocation unit as load allocation means, 20... Data division allocation unit, 21 .. calculation division allocation unit, VD... Voxel data, VD 1, VD 2.

Claims (10)

複数のノードによってコンピュータネットワークが構築され、三次元以上のボクセルデータに施すべきボリュームレンダリング処理を少なくとも二のノードが分散処理で実行するボリュームレンダリング処理システムにおいて、
少なくとも一のノードに設けられ、各ノードの計算余力及びメモリ空き状況に係る計算資源使用状況情報を基に分散処理可能な余力のある少なくとも二のノードを割り当てるノード割当手段と、
少なくとも一のノードに設けられ、与えられたボクセルデータを、各割り当てノードの計算資源使用状況情報に応じた分割割合で、かつ分割面に関わるボクセルデータを重複させるように複数の分割ボクセルデータに分割するデータ分割割当部と、
前記分割ボクセルデータを動的に前記各割り当てノードに割り当てる負荷割当手段と、
前記割り当てノードとなる少なくとも二のノードに設けられ、割り当てられた分割ボクセルデータに対して分散レンダリング処理を行うとともに、少なくとも分割面近傍における分散レンダリング処理の補間計算を前記データの重複部分を用いて行う演算手段と、
少なくとも一のノードに設けられ、前記各割り当てノードにおける分散レンダリング処理結果を取得して一つに整合させて連結する連結手段と、
少なくとも一のノードに設けられ、前記連結されたレンダリング処理結果に基づくボリュームレンダリング画像を表示手段に表示する表示制御手段と
を備えたことを特徴とするボリュームレンダリング処理システム。
In a volume rendering processing system in which a computer network is constructed by a plurality of nodes, and volume rendering processing to be performed on voxel data of three or more dimensions is executed by at least two nodes by distributed processing.
A node allocation unit that is provided in at least one node, and allocates at least two nodes having a surplus capacity capable of distributed processing based on calculation resource usage status information relating to calculation capacity and memory availability of each node;
The voxel data provided in at least one node is divided into a plurality of divided voxel data so that the voxel data related to the division plane is overlapped at a division ratio according to the calculation resource usage status information of each allocation node. A data division allocation unit to perform,
Load allocation means for dynamically allocating the divided voxel data to the allocation nodes;
The distributed rendering process is performed on the allocated divided voxel data provided in at least two nodes serving as the allocation nodes, and at least the interpolation calculation of the distributed rendering process in the vicinity of the division plane is performed using the overlapping portion of the data. Computing means;
A connection means provided in at least one node, acquiring the distributed rendering processing result in each of the allocation nodes, and connecting them in alignment with one another;
A volume rendering processing system, comprising: a display control unit that is provided in at least one node and displays a volume rendering image based on the connected rendering processing result on a display unit.
前記分割面に関わるボクセルデータを重複させるとは、前記分割面近傍における補間計算が可能な量を重複させることをいうことを特徴とする請求項1に記載のボリュームレンダリング処理システム。 2. The volume rendering processing system according to claim 1, wherein the duplication of voxel data related to the division plane is to duplicate an amount capable of interpolation calculation in the vicinity of the division plane. 前記補間計算は、グラディエント計算又はボクセル補間値計算であることを特徴とする請求項2に記載のボリュームレンダリング処理システム。 The volume rendering processing system according to claim 2, wherein the interpolation calculation is a gradient calculation or a voxel interpolation value calculation. 前記分割ボクセルデータに対する計算負荷を、前記分割ボクセルデータの割り当て先の各ノードの計算資源使用状況情報に応じた分割割合で分割する計算分割割当部を更に備え、
前記負荷割当手段は、前記計算分割割当部が分割した計算負荷を前記割り当て先の各ノードに割り当てることを特徴とする請求項1〜3のいずれか一項に記載のボリュームレンダリング処理システム。
A calculation division allocation unit that divides the calculation load on the divided voxel data at a division ratio according to the calculation resource usage status information of each node to which the division voxel data is allocated;
The volume rendering processing system according to any one of claims 1 to 3, wherein the load allocation unit allocates the calculation load divided by the calculation division allocation unit to each node of the allocation destination.
請求項1〜3のいずれか一項に記載のボリュームレンダリング処理システムにおけるノードを構成する計算機であって、
前記ノード割当手段、前記データ分割割当部及び前記負荷割当手段を備えたことを特徴とする計算機。
A computer constituting a node in the volume rendering processing system according to any one of claims 1 to 3,
A computer comprising the node allocation unit, the data division allocation unit, and the load allocation unit.
複数のノードによって構築されるコンピュータネットワークを用いて、少なくとも二のノードが、三次元以上のボクセルデータに施すべきボリュームレンダリング処理を分散処理で実行するボリュームレンダリング処理システムにおける前記ノードの機能をコンピュータに実現させるプログラムであって、
コンピュータを、
各ノードの計算余力とメモリ空き状況に係る計算資源使用状況情報に基づき分散処理を割り当て可能な余力のある少なくとも二のノードを割り当てるノード割当手段と、
与えられたボクセルデータを、前記各割り当てノードの計算資源使用状況情報に応じた分割割合で、かつ分割面に関わるボクセルデータを重複させるように複数の分割ボクセルデータに分割するデータ分割割当部と、
前記分割ボクセルデータを動的に前記各割り当てノードに割り当てる負荷割当手段と、
割り当てられた分割ボクセルデータに対して分散レンダリング処理を行うとともに、少なくとも分割面近傍における分散レンダリング処理の補間計算を前記データの重複部分を用いて行う演算手段と、
前記各割り当てノードにおける分散レンダリング処理結果を取得して一つに整合させて連結する連結手段と、
前記連結されたレンダリング処理結果に基づくボリュームレンダリング画像を表示手段に表示する表示制御手段、として機能させることを特徴とするプログラム。
Using a computer network constructed by a plurality of nodes, at least two nodes realize the function of the nodes in a volume rendering processing system in which volume rendering processing to be performed on voxel data of three or more dimensions is executed by distributed processing. A program to
Computer
Node allocation means for allocating at least two nodes having a capacity capable of allocating distributed processing based on the calculation resource usage status information relating to the calculation capacity of each node and the memory availability;
A data division allocation unit that divides the given voxel data into a plurality of divided voxel data so as to overlap voxel data related to the division plane at a division ratio according to the calculation resource usage status information of each of the allocation nodes;
Load allocation means for dynamically allocating the divided voxel data to the allocation nodes;
An arithmetic means for performing distributed rendering processing on the assigned divided voxel data and performing interpolation calculation of distributed rendering processing at least in the vicinity of the divided surface by using an overlapping portion of the data;
A connection means for acquiring a distributed rendering processing result in each of the allocation nodes and connecting them in a consistent manner;
A program that functions as display control means for displaying a volume rendering image based on the linked rendering processing results on a display means.
前記分割面に関わるボクセルデータを重複させるとは、前記分割面近傍における補間計算が可能な量を重複させることをいうことを特徴とする請求項6に記載のプログラム。 The program according to claim 6, wherein duplicating voxel data related to the division plane means duplicating an amount capable of interpolation calculation in the vicinity of the division plane. 前記補間計算は、グラディエント計算又はボクセル補間値計算であることを特徴とする請求項7に記載のプログラム。 The program according to claim 7, wherein the interpolation calculation is a gradient calculation or a voxel interpolation value calculation. 前記分割ボクセルデータに対する計算負荷を、前記分割ボクセルデータの割り当て先の各ノードの計算資源使用状況情報に応じた分割割合で分割する計算分割割当部としてもコンピュータを機能させ、
前記負荷割当手段は、前記計算分割割当部が分割した計算負荷を前記各割り当て先の各ノードに割り当てることを特徴とする請求項6〜8のいずれか一項に記載のプログラム。
The computer also functions as a calculation division allocation unit that divides the calculation load on the divided voxel data at a division ratio according to the calculation resource usage status information of each node to which the division voxel data is allocated,
The program according to any one of claims 6 to 8, wherein the load allocation unit allocates the calculation load divided by the calculation division allocation unit to each node of each allocation destination.
複数のノードによって構築されるコンピュータネットワークを用いて、三次元以上のボクセルデータに対して少なくとも二のノードが分散処理でボリュームレンダリング処理を施すボリュームレンダリング処理方法であって、
前記複数のノードのうち少なくとも一のノード割当手段が、各ノードの計算余力及びメモリ空き状況に係る計算資源使用状況情報に基づいて分散処理可能な余力のある少なくとも二のノードを割り当てる段階と、
少なくとも一のノードのデータ分割割当部が、与えられたボクセルデータを、各割り当てノードの計算資源使用状況情報に応じた分割割合で、かつ分割面に関わるボクセルデータを重複させるように複数の分割ボクセルデータに分割する段階と、
少なくとも一のノードの負荷割当手段が、前記分割ボクセルデータを動的に前記各割り当てノードに割り当てる段階と、
前記割り当てノードの演算手段が、割り当てられた分割ボクセルデータに対して分散レンダリング処理を行うとともに、少なくとも分割面近傍における分散レンダリング処理の補間計算を前記データの重複部分を用いて行う段階と、
少なくとも一のノードの連結手段が、前記各割り当てノードにおける分散レンダリング処理結果を取得して一つに整合させて連結する段階と、
少なくとも一の表示制御部が、前記連結されたレンダリング処理結果に基づくボリュームレンダリング画像を表示手段に表示する段階と
を備えたボリュームレンダリング処理方法。
A volume rendering processing method in which at least two nodes perform volume rendering processing by distributed processing on three-dimensional or more voxel data using a computer network constructed by a plurality of nodes,
At least one node allocating unit among the plurality of nodes allocates at least two nodes having a capacity capable of distributed processing based on the calculation resource usage status information relating to the calculation capacity and memory availability of each node;
A plurality of divided voxels so that the data division allocation unit of at least one node overlaps the given voxel data with a division ratio according to the calculation resource usage status information of each allocation node and voxel data related to the division plane Dividing it into data,
Load allocation means of at least one node dynamically allocates the divided voxel data to each of the allocation nodes;
The calculation means of the allocation node performs distributed rendering processing on the allocated divided voxel data, and performs interpolation calculation of the distributed rendering processing at least in the vicinity of the divided plane using the overlapping portion of the data;
A connection means of at least one node acquires a distributed rendering processing result in each of the allocation nodes and connects them in a consistent manner;
A volume rendering processing method comprising: at least one display control unit displaying a volume rendering image based on the linked rendering processing results on a display unit;
JP2007113406A 2001-12-03 2007-04-23 Volumetric rendering method, volumetric rendering system, computer, and program Pending JP2007244887A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007113406A JP2007244887A (en) 2001-12-03 2007-04-23 Volumetric rendering method, volumetric rendering system, computer, and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2001369119 2001-12-03
JP2007113406A JP2007244887A (en) 2001-12-03 2007-04-23 Volumetric rendering method, volumetric rendering system, computer, and program

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2002100111A Division JP4203251B2 (en) 2001-12-03 2002-04-02 Volume rendering processing method, volume rendering processing system, computer and program

Publications (1)

Publication Number Publication Date
JP2007244887A true JP2007244887A (en) 2007-09-27

Family

ID=38589745

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007113406A Pending JP2007244887A (en) 2001-12-03 2007-04-23 Volumetric rendering method, volumetric rendering system, computer, and program

Country Status (1)

Country Link
JP (1) JP2007244887A (en)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011507339A (en) * 2007-12-05 2011-03-03 オンライブ インコーポレイテッド A system that combines multiple views of real-time streaming interactive video
WO2011070910A1 (en) * 2009-12-07 2011-06-16 日本電気株式会社 Data arrangement/calculation system, data arrangement/calculation method, master device, and data arrangement method
JP2012108887A (en) * 2010-10-25 2012-06-07 Toshiba Corp Medical image management system and medical image management device
US8468575B2 (en) 2002-12-10 2013-06-18 Ol2, Inc. System for recursive recombination of streaming interactive video
US8495678B2 (en) 2002-12-10 2013-07-23 Ol2, Inc. System for reporting recorded video preceding system failures
JP2013158543A (en) * 2012-02-07 2013-08-19 Hitachi Medical Corp Magnetic resonance imaging apparatus
US8549574B2 (en) 2002-12-10 2013-10-01 Ol2, Inc. Method of combining linear content and interactive content compressed together as streaming interactive video
US8632410B2 (en) 2002-12-10 2014-01-21 Ol2, Inc. Method for user session transitioning among streaming interactive video servers
US8832772B2 (en) 2002-12-10 2014-09-09 Ol2, Inc. System for combining recorded application state with application streaming interactive video output
US8834274B2 (en) 2002-12-10 2014-09-16 Ol2, Inc. System for streaming databases serving real-time applications used through streaming interactive
US8893207B2 (en) 2002-12-10 2014-11-18 Ol2, Inc. System and method for compressing streaming interactive video
US8949922B2 (en) 2002-12-10 2015-02-03 Ol2, Inc. System for collaborative conferencing using streaming interactive video
US9003461B2 (en) 2002-12-10 2015-04-07 Ol2, Inc. Streaming interactive video integrated with recorded video segments
US9015784B2 (en) 2002-12-10 2015-04-21 Ol2, Inc. System for acceleration of web page delivery
US9032465B2 (en) 2002-12-10 2015-05-12 Ol2, Inc. Method for multicasting views of real-time streaming interactive video
US9108107B2 (en) 2002-12-10 2015-08-18 Sony Computer Entertainment America Llc Hosting and broadcasting virtual events using streaming interactive video
JP2019008766A (en) * 2017-06-27 2019-01-17 ソニー株式会社 Information processing apparatus, method, and information processing system
US10504252B2 (en) 2014-12-15 2019-12-10 Canon Medical Systems Corporation Method of, and apparatus for, registration and segmentation of medical imaging data
JP2022017588A (en) * 2021-03-10 2022-01-25 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド Training method of deep-running framework, device, and storage medium

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0721408A (en) * 1993-06-23 1995-01-24 Hitachi Ltd Illuminance calculating method for computer graphics and display device
JPH09160884A (en) * 1995-12-04 1997-06-20 Mitsubishi Electric Corp Dynamic load-distributed parallel computer
JPH09282288A (en) * 1996-04-09 1997-10-31 Fujitsu Ltd Plural-computer operation system
JPH11143836A (en) * 1997-11-05 1999-05-28 Nippon Telegr & Teleph Corp <Ntt> Application program moving position decision method, data file moving position decision method and device therefor
JPH11143839A (en) * 1997-11-14 1999-05-28 Nec Corp System and method for load distribution control
JPH11327120A (en) * 1998-05-19 1999-11-26 Toppan Printing Co Ltd Equipment and method for performing simulation of optical power and storage media storing simulation program of optical power
JP2000207576A (en) * 1999-01-13 2000-07-28 Nippon Telegr & Teleph Corp <Ntt> Method and device for processing image and recording medium recording image processing program
WO2000068884A1 (en) * 1999-05-05 2000-11-16 Kla-Tencor Corporation Method and apparatus for inspecting reticles implementing parallel processing

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0721408A (en) * 1993-06-23 1995-01-24 Hitachi Ltd Illuminance calculating method for computer graphics and display device
JPH09160884A (en) * 1995-12-04 1997-06-20 Mitsubishi Electric Corp Dynamic load-distributed parallel computer
JPH09282288A (en) * 1996-04-09 1997-10-31 Fujitsu Ltd Plural-computer operation system
JPH11143836A (en) * 1997-11-05 1999-05-28 Nippon Telegr & Teleph Corp <Ntt> Application program moving position decision method, data file moving position decision method and device therefor
JPH11143839A (en) * 1997-11-14 1999-05-28 Nec Corp System and method for load distribution control
JPH11327120A (en) * 1998-05-19 1999-11-26 Toppan Printing Co Ltd Equipment and method for performing simulation of optical power and storage media storing simulation program of optical power
JP2000207576A (en) * 1999-01-13 2000-07-28 Nippon Telegr & Teleph Corp <Ntt> Method and device for processing image and recording medium recording image processing program
WO2000068884A1 (en) * 1999-05-05 2000-11-16 Kla-Tencor Corporation Method and apparatus for inspecting reticles implementing parallel processing

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9003461B2 (en) 2002-12-10 2015-04-07 Ol2, Inc. Streaming interactive video integrated with recorded video segments
US9015784B2 (en) 2002-12-10 2015-04-21 Ol2, Inc. System for acceleration of web page delivery
US8834274B2 (en) 2002-12-10 2014-09-16 Ol2, Inc. System for streaming databases serving real-time applications used through streaming interactive
US8468575B2 (en) 2002-12-10 2013-06-18 Ol2, Inc. System for recursive recombination of streaming interactive video
US8495678B2 (en) 2002-12-10 2013-07-23 Ol2, Inc. System for reporting recorded video preceding system failures
US8840475B2 (en) 2002-12-10 2014-09-23 Ol2, Inc. Method for user session transitioning among streaming interactive video servers
US8549574B2 (en) 2002-12-10 2013-10-01 Ol2, Inc. Method of combining linear content and interactive content compressed together as streaming interactive video
US8632410B2 (en) 2002-12-10 2014-01-21 Ol2, Inc. Method for user session transitioning among streaming interactive video servers
US8661496B2 (en) 2002-12-10 2014-02-25 Ol2, Inc. System for combining a plurality of views of real-time streaming interactive video
US8893207B2 (en) 2002-12-10 2014-11-18 Ol2, Inc. System and method for compressing streaming interactive video
US9108107B2 (en) 2002-12-10 2015-08-18 Sony Computer Entertainment America Llc Hosting and broadcasting virtual events using streaming interactive video
US9032465B2 (en) 2002-12-10 2015-05-12 Ol2, Inc. Method for multicasting views of real-time streaming interactive video
US8832772B2 (en) 2002-12-10 2014-09-09 Ol2, Inc. System for combining recorded application state with application streaming interactive video output
US8949922B2 (en) 2002-12-10 2015-02-03 Ol2, Inc. System for collaborative conferencing using streaming interactive video
JP2011507339A (en) * 2007-12-05 2011-03-03 オンライブ インコーポレイテッド A system that combines multiple views of real-time streaming interactive video
US8898677B2 (en) 2009-12-07 2014-11-25 Nec Corporation Data arrangement calculating system, data arrangement calculating method, master unit and data arranging method
WO2011070910A1 (en) * 2009-12-07 2011-06-16 日本電気株式会社 Data arrangement/calculation system, data arrangement/calculation method, master device, and data arrangement method
JP2012108887A (en) * 2010-10-25 2012-06-07 Toshiba Corp Medical image management system and medical image management device
JP2013158543A (en) * 2012-02-07 2013-08-19 Hitachi Medical Corp Magnetic resonance imaging apparatus
US10504252B2 (en) 2014-12-15 2019-12-10 Canon Medical Systems Corporation Method of, and apparatus for, registration and segmentation of medical imaging data
JP7039938B2 (en) 2017-06-27 2022-03-23 ソニーグループ株式会社 Information processing equipment and methods, as well as information processing systems
JP2019008766A (en) * 2017-06-27 2019-01-17 ソニー株式会社 Information processing apparatus, method, and information processing system
JP2022017588A (en) * 2021-03-10 2022-01-25 ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド Training method of deep-running framework, device, and storage medium

Similar Documents

Publication Publication Date Title
JP2007244887A (en) Volumetric rendering method, volumetric rendering system, computer, and program
US20230260478A1 (en) Client-server visualization system with hybrid data processing
US7616205B2 (en) Image processing system for volume rendering
JP4203251B2 (en) Volume rendering processing method, volume rendering processing system, computer and program
KR101231291B1 (en) Fast reconfiguration of graphics pipeline state
US6317137B1 (en) Multi-threaded texture modulation for axis-aligned volume rendering
US11416069B2 (en) Device and system for volume visualization and interaction in a virtual reality or augmented reality environment
US7420575B2 (en) Image processing apparatus, image processing method and image processing program
US10872460B1 (en) Device and system for volume visualization and interaction in a virtual reality or augmented reality environment
JP2007058857A (en) Distributed image processing of medical image
US20050237336A1 (en) Method and system for multi-object volumetric data visualization
JP6373555B2 (en) Computer system, medical image diagnostic apparatus, image display method, and image display program
US7647593B2 (en) Image processing system for volume rendering
JP2014030693A (en) Image processor, medical image diagnostic apparatus, image processing method, and image processing program
US20070233975A1 (en) Data processor with a built-in memory
Dong et al. Multi-GPU multi-display rendering of extremely large 3D environments
Xue et al. Efficient volume rendering methods for out-of-Core datasets by semi-adaptive partitioning
JP2007200340A (en) Image processor and image processing program
JP4454304B2 (en) Multiple volume rendering image processing system
Manssour et al. High performance approach for inner structures visualisation in medical data
Schulze-Döbold Interactive volume rendering in virtual environments
Hastreiter et al. Remote interactive direct volume rendering for intra-operative application
Ge A point-based remote visualization pipeline for large-scale virtual reality
CN116958392A (en) Graphic image processing method, graphic image processing device and medical graphic image application system
Yazdy et al. Image Processing and Transputers 113 HC Webber, Ed. IOS Press, 1992

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100302

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100430

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100601

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100728

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100907

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101101

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20101130