WO2017122590A1 - Arithmetic logic unit, x-ray ct device, and data processing method - Google Patents

Arithmetic logic unit, x-ray ct device, and data processing method Download PDF

Info

Publication number
WO2017122590A1
WO2017122590A1 PCT/JP2017/000263 JP2017000263W WO2017122590A1 WO 2017122590 A1 WO2017122590 A1 WO 2017122590A1 JP 2017000263 W JP2017000263 W JP 2017000263W WO 2017122590 A1 WO2017122590 A1 WO 2017122590A1
Authority
WO
WIPO (PCT)
Prior art keywords
processing
unit
data
arithmetic
block
Prior art date
Application number
PCT/JP2017/000263
Other languages
French (fr)
Japanese (ja)
Inventor
佑太 小倉
亮太 小原
Original Assignee
株式会社日立製作所
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 株式会社日立製作所 filed Critical 株式会社日立製作所
Publication of WO2017122590A1 publication Critical patent/WO2017122590A1/en

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61BDIAGNOSIS; SURGERY; IDENTIFICATION
    • A61B6/00Apparatus for radiation diagnosis, e.g. combined with radiation therapy equipment
    • A61B6/02Devices for diagnosis sequentially in different planes; Stereoscopic radiation diagnosis
    • A61B6/03Computerised tomographs

Definitions

  • the present invention relates to an arithmetic device, an X-ray CT device, and a data processing method, and more particularly, to an increase in calculation speed in data processing using an arithmetic device having a plurality of arithmetic units.
  • the amount of projection data used for generating one pixel differs depending on the position of the pixel. Therefore, the calculation load varies depending on the pixel position to be processed. Also in the forward projection process for generating projection data from an image, the number of transmitted pixels (number of images) varies depending on the position of the detection element, and therefore the calculation load varies depending on the element position to be processed.
  • Patent Document 1 a slice plane to be reconstructed is divided into a plurality of blocks, a region of a projection image corresponding to this is cut out, a processing unit is set for each block as local data of each block, and the processing unit is divided into calculation units. An image processing method for performing parallel processing is described.
  • the load balance of the computing unit is equalized by equally dividing the processing area for those in which the data amount does not change depending on the processing area (convolution of the projection image).
  • equalization of the load balance of the arithmetic unit is not considered.
  • the present invention has been made in view of the above problems, and its object is to perform parallel processing so that the load balance of each computing unit is equal in consideration of the amount of data used for processing. Accordingly, it is an object to provide an arithmetic device, an X-ray CT apparatus, and an image processing method capable of speeding up image processing.
  • the present invention for achieving the above-described object is an arithmetic device having a plurality of arithmetic units, a data acquisition unit that acquires data used for processing, and a processing region dividing unit that divides a processing region into a plurality of blocks.
  • a use data amount calculation unit that obtains a use data amount that is a data amount used for processing of the block; a load amount calculation unit that calculates a load amount of processing in each block based on the use data amount; and the load
  • An arithmetic unit comprising: an arithmetic unit assigning unit that assigns an arithmetic unit to each block based on a quantity; and an arithmetic processing unit that performs the processing by the assigned arithmetic unit.
  • a step of obtaining data used for processing, a step of dividing a processing region into a plurality of blocks, and a use data amount that is a data amount used for processing of the block are obtained.
  • a step, a step of calculating a processing load amount in each block based on the use data amount, a step of assigning a computing unit to each block based on the load amount, and performing the processing by the assigned computing unit A data processing method comprising: steps.
  • an arithmetic device capable of speeding up image processing by performing parallel processing so that the load balance of each arithmetic unit is equal, X A line CT apparatus and a data processing method can be provided.
  • Example of divided processing areas (blocks B1, B2, B3,...)
  • the flowchart which shows the flow of the range calculation process of the use data of step S302 of FIG.
  • the figure explaining the method of calculation of use ch coordinate (step S401)
  • the figure explaining how to use slice coordinates (step S402)
  • the flowchart which shows the flow of the arithmetic unit allocation process of step S204 of FIG.
  • the flowchart which shows the flow of the load distribution process of step S602 of FIG. 18 is a flowchart showing the flow of processing for calculating the amount of used data in step S702 of FIG.
  • Example of divided processing areas (blocks Rd1, Rd2,... RdN) The figure explaining the position on the image corresponding to the representative end points Rd1 [0, sl1], Rd2 [0, sl2],... RdN [0, slN] of each block.
  • Flowchart for explaining arithmetic unit assignment processing (step S204 in FIG. 8) when the number of arithmetic units is larger than the number of processing blocks.
  • An arithmetic device of the present invention is an arithmetic device having a plurality of arithmetic units, a data acquisition unit that acquires data used for processing, a processing region dividing unit that divides a processing region into a plurality of blocks, and processing of the blocks
  • a use data amount calculation unit for obtaining a use data amount that is a data amount to be used for a load, a load amount calculation unit for calculating a load amount of processing in each block based on the use data amount, and an operation based on the load amount
  • the arithmetic unit assigning unit assigns the arithmetic unit to each block so that a difference in load amount between the blocks is not more than a predetermined threshold value.
  • the data used for the processing is projection data
  • the processing is back projection processing for generating an image that is the processing region using the projection data.
  • the use data amount calculation unit calculates the use data amount by calculating a range of projection data corresponding to a pixel position of each block through which X-rays irradiated from an X-ray focal point pass.
  • the data used for the processing is image data
  • the processing is forward projection processing for forwardly projecting the image data onto a detector which is the processing region.
  • the use data amount calculation unit calculates the use data amount of the block by obtaining the number of images through which X-rays emitted from the X-ray focal point pass through the detection element position of the detector. To do.
  • the load amount calculation unit further calculates the load amount based on a data transfer rate of a computing unit.
  • the arithmetic unit assigning unit calculates an average load amount per arithmetic unit, integrates the load amounts of a plurality of blocks, and performs each operation so that the integrated value is within the average load amount per arithmetic unit.
  • the processing range to be allocated to the vessel is determined.
  • the arithmetic unit assigning unit calculates a load amount ratio of each block, determines the number of arithmetic units to be assigned to the block based on the ratio, and assigns as many arithmetic units as the determined arithmetic unit to each block. It is characterized by.
  • the arithmetic unit assigning unit assigns the arithmetic unit using a function representing a relationship between the position of the processing area and the amount of used data.
  • the X-ray CT apparatus of the present invention is characterized by including these arithmetic units.
  • the data processing method of the present invention includes a step of acquiring data used for processing, a step of dividing a processing area into a plurality of blocks, and data used for processing of the blocks in an arithmetic device having a plurality of arithmetic units.
  • An amount of used data that is an amount; a step of calculating a processing load amount in each block based on the used data amount; a step of assigning an arithmetic unit to each block based on the load amount; Performing the above-described processing by a computing unit.
  • the X-ray CT apparatus 1 is roughly composed of a scanner 10 and an operation unit 20.
  • the scanner 10 includes a gantry 100 and a bed 101.
  • the gantry 100 includes an X-ray tube 102, an X-ray detector 103, a collimator 104, a high voltage generation device 105, a data collection device 106, a gantry driving device 107, and the like.
  • the operation unit 20 includes a central control device 200, an input / output device 201, an arithmetic device 202, and the like.
  • the operator uses the input / output device 201 of the operation unit 20 to input shooting conditions, reconstruction conditions, and the like.
  • the imaging conditions include, for example, the X-ray beam width, the bed feeding speed, the tube current, the tube voltage, the imaging range (body axis direction range), the number of imaging views per round.
  • the reconstruction condition is, for example, a region of interest, FOV (Field (Of View), a reconstruction filter function, or the like.
  • the input / output device 201 includes a display device 211 that displays CT images and the like, an input device 212 such as a mouse, trackball, keyboard, and touch panel, a storage device 213 that stores data, and the like.
  • the central control device 200 is a computer including a CPU (Central Processing Unit), ROM (Read Only Memory), RAM (Random Access Memory), and the like, and controls the operation of the entire X-ray CT apparatus 1.
  • the central control device 200 transmits a control signal necessary for photographing to each device of the scanner 10 based on photographing conditions and reconstruction conditions.
  • the high voltage generator 105 applies a tube voltage and a tube of a predetermined magnitude to the X-ray tube 102 based on the control signal from the central controller 200. Apply current.
  • the X-ray tube 102 emits electrons with energy corresponding to the applied tube voltage from the cathode, and the emitted electrons collide with the target (anode) to cause X-rays with energy corresponding to the electron energy to the subject 3. Irradiate.
  • the irradiation area of the X-rays irradiated from the X-ray tube 102 is limited by the collimator 104.
  • the opening width of the collimator 104 is controlled based on a control signal from the central controller 200.
  • X-rays spread in a cone shape or a pyramid shape from the X-ray tube 102 as an X-ray source in accordance with the X-ray detector 103.
  • a beam is irradiated.
  • X-rays irradiated from the X-ray tube 102 and whose irradiation area is limited by the collimator 104 are absorbed (attenuated) according to the X-ray attenuation coefficient in each tissue in the subject 3, pass through the subject 3, and pass through the X-ray tube 102. Is detected by an X-ray detector 103 arranged at a position opposite to.
  • the couch 101 includes a top plate on which the subject 3 is placed, a vertical movement device, and a top plate driving device.
  • the couch height is raised and lowered in the vertical direction based on a control signal from the central control device 200, or in the body axis direction. Move back and forth, or move left and right in a direction perpendicular to the body axis and parallel to the floor (left and right direction).
  • the couch 101 moves the couch at the couch moving speed and moving direction determined by the central controller 200.
  • the gantry driving device 107 circulates the rotating disk of the gantry 100 based on the control signal from the central control device 200.
  • the X-ray detector 103 is obtained by two-dimensionally arranging, for example, an X-ray detection element group constituted by a combination of a scintillator and a photodiode in a channel direction (circumferential direction) and a column direction (body axis direction).
  • the X-ray detector 103 is disposed so as to face the X-ray tube 102 with the subject 3 interposed therebetween.
  • the X-ray detector 103 detects the X-ray dose irradiated from the X-ray tube 102 and transmitted through the subject 3 and outputs it to the data collection device 106.
  • the data collection device 106 collects X-ray dose information detected by each X-ray detection element of the X-ray detector 103, converts it into a digital signal, and sequentially transmits it to the arithmetic unit 202 of the operation unit 20 as transmitted X-ray information. Output.
  • the computing device 202 includes a reconstruction processing device 221 and an image processing device 222.
  • the reconstruction processing device 221 acquires transmission X-ray information collected by the data collection device 106 and creates projection data necessary for reconstructing an image. Further, the reconstruction processing device 221 reconstructs a tomographic image (CT image) of the subject 3 using the projection data.
  • CT image tomographic image
  • the arithmetic unit 202 includes a plurality of arithmetic units (cores).
  • the computing device 202 performs load distribution processing described later, assigns processing so that the load balance is equal to a plurality of computing units, and generates an image.
  • the processing is processing related to image generation such as, for example, back projection, forward projection, or successive approximation reconstruction processing that repeatedly performs back projection and forward projection. Details of the load distribution processing executed by the arithmetic unit 202 will be described later.
  • the reconstruction processing device 221 stores the generated CT image in the storage device 213 and displays it on the display device 211.
  • the image processing device 222 performs image processing on the CT image created by the reconstruction processing device 221 and stored in the storage device 213. In addition, the image after image processing is displayed on the display device 211 and stored in the storage device 213.
  • the computing device 202 includes a data acquisition unit 41, a processing area dividing unit 42, a used data amount calculating unit 43, a load amount calculating unit 44, a computing unit allocating unit 45, an arithmetic processing unit 46, and the like as main functional configurations.
  • the data acquisition unit 41 acquires data used for processing.
  • the data used for processing is projection data in back projection processing and image data in forward projection processing.
  • Projection data is generated based on X-ray dose information (transmitted X-ray information) irradiated from the X-ray tube 102, transmitted through the subject 3 and the bed 101, and detected by the X-ray detector 103.
  • the line connecting the X-ray tube (X-ray focal point) 102 and each detection element of the X-ray detector 103 is an X-ray beam.
  • the number of slices of projection data used to generate the image i1 is s1
  • the number of slices used to generate the image i2 is s2
  • the number of slices used to generate the image i3 is s3, X
  • the image position is more than a certain distance from the X-ray tube 102, pixels exceeding the slice range of the X-ray detector 103 appear. For example, when an end slice is used beyond the slice range, the number of used slices is reduced (s2> s3).
  • the amount of data used to generate one pixel is not uniform and varies depending on the image reconstruction position as shown in FIG.
  • the projection data used to create the images i1, i2, i3, i4 are in the range of D1, D2, D3, D4, respectively. That is, in the back projection process, the size (number of pixels) of the area (image) to be processed is the same for each image i1 to i4, but the data amount D1 to D4 used for the process (image generation) is different for each image.
  • the load amount of the arithmetic unit of the arithmetic unit 202 is determined by the calculation amount and the data transfer amount.
  • the calculation amount is determined by the number of pixels (image size), but the data transfer amount depends on the data amounts D1 to D4 used for processing. Therefore, as shown in the upper part of FIG. 6, the load amounts for generating the images i1, i2, i3, i4 are different.
  • the load amount of the computing units varies, and the processing is inefficient as a whole.
  • the load amount is calculated using the calculation amount (number of pixels) of the calculator and the data amount (used data amount) used for the calculation, and based on the load of the calculator.
  • the processing area dividing unit 42 divides the processing area into a plurality of blocks.
  • the processing area is an image in back projection processing.
  • the used data amount calculation unit 43 obtains the data amount used for processing of each block divided by the processing area dividing unit 42. How to determine the amount of data used will be described later.
  • the load amount calculation unit 44 calculates the load amount of each block described above. At this time, the load amount calculation unit 44 calculates the load amount of each block in consideration of not only the image size (calculation amount) but also the use data amount. The calculation of the load amount will be described later.
  • the computing unit allocating unit 45 allocates computing units that process the processing areas so as to be even based on the load amount calculated by the load amount calculating unit 44. Although it is desirable that the load amount be equal, if the load amount is not equal, the arithmetic unit may be assigned so that the difference in load amount between the processing regions is equal to or less than a predetermined threshold. The assignment of the arithmetic units will be described later.
  • the arithmetic processing unit 46 performs processing of the processing area by the arithmetic unit assigned by the arithmetic unit assigning unit 45.
  • the process is a back projection process for generating image data from projection data in the first embodiment.
  • the X-ray CT apparatus 1 performs positioning imaging on the subject 3.
  • the positioning imaging the X-ray irradiation direction is fixed without rotating the gantry 100, and the X-ray dose transmitted through the subject 3 and the bed 101 is measured while moving the bed 101 at a predetermined speed.
  • the X-ray CT apparatus 1 creates a positioning image based on transmitted X-ray data obtained by positioning imaging.
  • the central control device 200 accepts various condition settings such as shooting conditions and reconstruction conditions using the positioning image. Then, the central control device 200 executes the actual photographing based on the set various conditions. In the actual photographing, the gantry 100 is rotated to emit X-rays from each direction around the subject 3, and X-ray information transmitted through the subject 3 and the bed 101 is measured. Projection data is acquired by this actual photographing (step S101).
  • the arithmetic unit 202 executes load distribution processing.
  • the computing device 202 assigns each computing unit to the processing area so that the load balance of the plurality of computing units is equal (step S102).
  • the arithmetic unit 202 performs divided image processing (step S103). In the divided image processing, parallel processing is performed using all the arithmetic units to generate an image.
  • the computing device 202 displays the image generated in step S103 on the display device 211 (step S104).
  • step S102 the load distribution process in step S102 will be described with reference to FIG.
  • the computing device 202 first acquires information on the number of created images and the processing block size (vertical and horizontal size) as parameters from the storage device 213.
  • the processing block size is usually set in advance to an appropriate size according to the processor architecture or a size that facilitates processing.
  • the arithmetic unit 202 calculates the total number of processed pixels from the acquired number of created images, and calculates the division number N by dividing by the processing block size (step S201).
  • the computing device 202 acquires the image size X ⁇ Y, the number of created images i, the image reconstruction position z, the number of computing units t, and the block size X ⁇ yb [pixel] from the storage device 213.
  • the division number N is obtained by the following equation (1).
  • the block size is variable, and may be set to 1 ⁇ 1, for example.
  • the computing device 202 calculates the usage data amount for each of the N processing blocks calculated in step S201 (step S202), and calculates the load amount of each processing block based on the usage data amount (step S203).
  • the usage data amount is calculated according to the procedure shown in FIG.
  • the arithmetic unit 202 first obtains the coordinates of the end points of each divided area (block) (step S301). For example, as shown in FIG. 10, when the processing area (images i1, i2,...) Is divided into a plurality of blocks B1, B2, B3,..., B9, B10, B11,. To do.
  • the coordinates of the pixels B11, B12, B13, B14 at the end points of the block B1 are as follows.
  • the arithmetic unit 202 calculates a use data range (step S302).
  • the use data range is a range on the projection data corresponding to the block range.
  • the use data range on the projection data is obtained by calculating the coordinates on the projection data corresponding to the end point coordinates obtained in step S301.
  • step S302 the arithmetic unit 202 calculates the used ch coordinates (step S401) and calculates the used slice coordinates (step S402).
  • the used ch coordinate is the channel position (ch coordinate) of the coordinates on the projection data (used data) corresponding to the end point coordinates of the block.
  • the used slice coordinates are slice positions (slice coordinates) of coordinates on the projection data (used data) corresponding to the end point coordinates of the block.
  • the arithmetic unit 202 calculates the used ch coordinate corresponding to the end point of each block.
  • the X coordinate of the pixel i on the image is a scaling factor from the pixel size to the element size (ch).
  • the following equation (2) is calculated (step S401).
  • the arithmetic unit 202 calculates used slice coordinates (step S402).
  • the arithmetic unit 202 determines the Y coordinate, Z coordinate of the pixel, the distance d from the X-ray tube 102 (X-ray focal position) to the center of the image, and the position of the pixel i on the image to the element size (Slice).
  • the used slice coordinates are calculated as in the following equation (3).
  • rounding may be performed as in the following equation (4).
  • the ch coordinate and slice coordinate on the projection data corresponding to each block end point can be calculated by the processing from step S401 to step S402.
  • the coordinates of the usage data of the end points of each block are represented as Bd11 [ch1, slice1], Bd12 [ch2, slice2], Bd13 [ch3, slice3], Bd14 [ch4, slice4].
  • step S303 the arithmetic unit 202 calculates the use data amount (step S303).
  • step S303 the arithmetic unit 202 extracts the maximum value and the minimum value in the channel direction and the slice direction from the use data range corresponding to the end point of each block as the use data amount in the block, as shown in Expression (5). To calculate.
  • step S203 the arithmetic unit 202 calculates the load amount of each block as follows.
  • the load amount can be expressed by the following equation (6) using a speed ratio coefficient ⁇ with the speed at which the unit usage data is transferred with respect to the processing speed of the unit processing area.
  • Load amount processing area + ⁇ ⁇ data amount used (6)
  • is a coefficient depending on the data transfer performance and architecture of the processor, and depends on, for example, the bandwidth and the cache.
  • the arithmetic device 202 assigns the arithmetic unit to each block so that the load amount of each arithmetic unit is equal based on the calculated load amount of each block (step S204). ).
  • the computing device 202 first calculates an average load amount per computing unit (step S501).
  • the arithmetic unit 202 obtains the total load amount of all blocks from the following equation (7), and calculates the average load amount per arithmetic unit using the equation (8).
  • Total load Load amount of block B1 + load amount of block B2 +... + Load of block BN (7)
  • Average load amount total load amount / number of arithmetic units t (8)
  • the arithmetic unit 202 adds the load amount of each block in order from the block B1 according to the equation (9) (step S502).
  • Integrated value + load amount [n] (9)
  • the block is defined as a process end block end_b, and a range in which one computing unit processes the process start block st_b to the process end block end_b. (Processing block) (step S503). This process is repeated to obtain a process start block and a process end block for each computing unit.
  • processing blocks are allocated to the last computing unit, if processing blocks still remain, they are allocated to each computing unit one block at a time. When the number of remaining blocks is larger than the number of arithmetic units, the above load distribution processing may be repeated.
  • the computing device 202 obtains the coordinates of the processing block assigned in step S503 (step S504).
  • step S504 specifically, end points [st_x, st_y] and [end_x, end_y] of the processing block are calculated.
  • End_x, end_y] [0, end_b ⁇ yb] It is required as follows. As described above, the process start coordinates and the process end coordinates are determined.
  • step S203 when the processing up to the assignment of the arithmetic units (step S203; steps S501 to S504) is completed, the process proceeds to the divided image processing of FIG. 7 (step S103).
  • each computing unit performs back projection processing on the pixels from the processing start coordinates determined in step S504 to the processing end coordinates.
  • the value of each pixel is obtained by back projection processing, and an image is generated.
  • the computing device 202 displays an image on the display device 211 and ends a series of backprojection processing (step S104).
  • the load amount applied to each arithmetic unit used in the parallel processing is equally allocated.
  • the time required for processing in each arithmetic unit is equalized, and high-speed image processing can be performed.
  • the processing of the first embodiment is effective when the number of divisions (number of blocks) of the processing area is set larger than the number of computing units.
  • the processing area is an image, but a large unit processing area is not fixed and assigned.
  • one image is divided into a plurality of small blocks and the arithmetic units are flexibly assigned. That is, the size of the processing area can be flexibly changed for each arithmetic unit, instead of making the processing area the same in all the arithmetic units.
  • the method of dividing the processing area is arbitrary, and is not limited to the example of FIG.
  • the present invention can also be applied to forward projection processing.
  • the forward projection process is a process for generating projection data of each detection element from image data using a detector area (projection data area) as a processing area.
  • a plurality of images (tomographic images) i1 to i7 are created as shown in FIG. 16, the detection elements s1, s2, s3,... Of the X-ray tube 102 (X-ray focal point) and the X-ray detector 103 are formed. ...
  • the number of lines crossing the images i1, i2, i3,... Differs depending on the slice position of the image.
  • the detection element s1 intersects the images i3, i4, and i5.
  • the detection element s2 intersects the images i1, i2, i3, i4.
  • the detection element s3 intersects with the images i1, i2, and i3. That is, the closer to the center position from the X-ray tube 102, the smaller the number of used pixels, and the farther the element, the larger the number of used pixels.
  • the number of used pixels decreases. That is, even in the forward projection process for generating projection data from image data, the amount of data used to generate projection data for one detection element is not uniform but varies depending on the element position.
  • the load balance of the arithmetic unit is based on the calculation amount (number of elements) of the arithmetic unit and the amount of data (number of pixels) to be used. If the computing units are distributed so as to be even, processing can be performed efficiently and at high speed.
  • the load distribution process in the forward projection process will be described.
  • the arithmetic unit 202 acquires image data that is data used to generate projection data (step S601), and executes load distribution processing (step S602).
  • the processing area (detection element) of each computing unit is allocated so that the load balance of the plurality of computing units is equal.
  • the arithmetic unit 202 performs divided data processing (step S603).
  • the processing area is forward projected using all the arithmetic units. That is, forward projection processing is performed using image data to calculate a projection value at each element to generate projection data.
  • the arithmetic device 202 outputs (saves) the projection data generated in step S603 to the storage device 213 (step S604).
  • the load distribution process in step S602 is performed in the same procedure as in the first embodiment. That is, as shown in FIG. 18, in the load distribution process, the arithmetic unit 202 first divides the detector area, which is the processing area, into a plurality of blocks (step S701), and the amount of data (transparent pixels) used for the processing of the divided blocks. Number) is calculated (step S702). Then, the load amount of each block is calculated based on the use data amount calculated in step S702 (step S703), the number of arithmetic units assigned to each block is obtained so that the load amount is equal, and only the calculated number of arithmetic units is obtained. An arithmetic unit is assigned to each block (step S704).
  • the arithmetic unit 202 acquires, for example, the detector element size Ch ⁇ Sl, the number of arithmetic units t, and the block size Ch ⁇ 1 pixel from the storage device 213. Then, the division number N of the processing area is calculated from the following equation (11).
  • the arithmetic unit 202 calculates the used data amount according to the procedure shown in FIG.
  • the arithmetic unit 202 calculates the coordinates of the end points of the block (step S801).
  • the arithmetic unit 202 divides the processing area into blocks Rd1, Rd2,... RdN as shown in FIG. 20, and calculates end point coordinates (Rd11, Rd12,%) Of each block.
  • end point coordinates of each block are set as Rd1 [0, sl1], Rd2 [0, sl2]... RdN [0, slN].
  • the computing device 202 calculates a position (transmission coordinate) on the image corresponding to the end point of each block (step S802), and performs a range determination as to whether or not the calculated transmission coordinate is on the image (step S803). ). If the calculated transmission coordinates are on the image (step S803; Yes), the number of transmission pixels is integrated (step S804). When the transmission coordinates calculated in step S802 are not on the image (step S803; No), the number of transmission pixels is not added.
  • the arithmetic unit 202 first transmits the length L from the X-ray tube 102 to the corresponding element in the z-axis direction, the image interval p, and the corresponding element from the corresponding element toward the X-ray tube 102.
  • the transmission coordinates In [y, z] after that (transmission coordinates of the nth image) can be calculated as in Expression (13).
  • the number of transmissive pixels at the end points of each block can be calculated.
  • the number of transmissive pixels at each end point can be obtained as Rd1 [number of transmissive pixels 1], Rd2 [number of transmissive pixels 2],... RdN [number of transmissive pixels N].
  • the arithmetic unit 202 next calculates the amount of data used in the block (step S805).
  • the amount of data used in the nth block is obtained from the following equation (15) by extracting the value of the number of transparent pixels at the end point of the nth block.
  • Use data amount n Rdn [number of transmission pixels] ⁇ Ch (15)
  • the arithmetic unit 202 performs the process of step S703 in FIG.
  • the arithmetic device 202 calculates the load amount (step S703 in FIG. 18).
  • the arithmetic unit 202 calculates the load amount of each block, as in the first embodiment. Using the speed ratio coefficient ⁇ with the speed at which the unit usage data is transferred with respect to the processing speed of the unit processing area (block), it can be expressed as the above equation (6).
  • the arithmetic unit 202 assigns a processing block to the arithmetic unit based on the calculated load amount (step S704 in FIG. 18).
  • the operation unit assignment step is the same as that in the first embodiment. Specifically, as shown in the flowchart of FIG. 15, the arithmetic unit 202 first calculates an average load amount (step S501). Next, the arithmetic unit 202 adds the load amount of each block from the first processing block B1 (step S502).
  • step S502 the integrated value of equation (9)
  • step S503 the processing area from the processing start block st_b to the block end_b is set as a processing area of one computing unit. This is repeated to obtain the start block and end block of each computing unit.
  • the computing device 202 obtains the coordinates of the processing block assigned in step S503 (step S504).
  • step S704 When the processing up to the allocation of computing units (step S704) is completed, the load distribution processing is terminated, and the computing device 202 then shifts to the divided data processing of FIG. 17 (step S603).
  • each arithmetic unit performs forward projection processing from the determined processing start element to the processing end element.
  • the arithmetic device 202 stores the generated projection data in the storage device 213 or the like, and ends a series of data processing (step S604).
  • the computing device 202 calculates the load amount ratio of each block (step S901), for example, as shown in the flowchart of FIG. 22, and based on the calculated ratio.
  • the number of arithmetic units to be assigned to the processing area is determined (step S902).
  • step S901 the arithmetic unit 202 calculates the total load amount of all blocks.
  • the total load amount is the sum of the load amounts of the respective blocks, and can be calculated from the following equation (16).
  • Total load Load amount of block B1 + load amount of block B2 +... + Load of block BN (16)
  • the arithmetic unit 202 obtains a load ratio that is a ratio of the load amount of each block as shown in Expression (17).
  • Load ratio [Load amount / total load amount of block B1, load amount / total load amount of block B2, ... load amount / total load amount of block BN] (17)
  • the arithmetic unit 202 calculates the number of arithmetic units assigned to each block. The number of arithmetic units assigned to each block is determined from the following equation (18).
  • Number of arithmetic units in block Bn Total number of arithmetic units ⁇ block Bn load / total load (18)
  • the computing device 202 determines the number of computing units to be assigned to all blocks.
  • the portion after the decimal point may be rounded down, and the remainder of the arithmetic units may be distributed again to the processing area according to the size of the value after the rounded down decimal point.
  • the number of computing units becomes less than 1, the number of computing units is 1.
  • the number of arithmetic units assigned to each block is calculated according to the load ratio of each block. Therefore, even when the processing block size is as large as an image unit and the number of arithmetic units is larger than the number of processing blocks, it is possible to assign the arithmetic unit loads as evenly as possible. Thereby, high-speed data processing can be performed.
  • the load amount calculation unit 44 uses a function (use data amount characteristic f ( z)), and the load amount may be calculated based on the use data amount characteristic f (z).
  • a conventional scan also referred to as a normal scan or a step-and-shoot scan
  • the amount of data used varies depending on the image position (z position) as shown in FIG.
  • An approximate curve indicating the relationship between the amount of used data and the z position is prepared in advance as, for example, a used data amount characteristic f (z), and is used for calculation of the calculator load.
  • the arithmetic unit 202 is expressed by the following equation (19 ) And (20) can be used to calculate the load amount.
  • the size at which high-speed data reading is possible is determined according to the hardware. For example, if the data size to be read is large, it may be necessary to perform DMA transfer a plurality of times or to refer to a cache hierarchy with a low transfer rate. In the fifth embodiment, application to the case of using hardware whose read speed varies depending on the data size will be described.
  • Threshold values for data size (data_size) that can be transferred at high speed are Th1 and Th2, and speed ratio coefficients corresponding to the data size are c0 and c1. These values are stored in the storage device 213 in advance.
  • the speed ratio coefficient ⁇ according to the data size (data_size)
  • the calculation accuracy of the load amount of the computing unit can be improved. Therefore, it is possible to improve the accuracy of equalizing the load on the arithmetic unit, and to speed up the image processing.
  • the arithmetic apparatus 202 executes load distribution processing.
  • the arithmetic unit 202 divides the processing area into a plurality of blocks, and calculates the amount of data used for the processing of each divided block.
  • the arithmetic unit 202 calculates the load amount of each block based on the amount of data used, and assigns a processing area (block to be processed) to each arithmetic unit so that the load amount is equalized in each arithmetic unit. As a result, the load applied to each arithmetic unit is equalized, and data processing can be performed efficiently.
  • the back projection process and the forward projection process have been described.
  • the present invention can also be applied to a successive approximation reconstruction process in which an image is generated by repeating back projection and forward projection.
  • step S201 the division of the processing area (step S201), the calculation of the used data amount (step S202), and the calculation of the load amount (step S203) will be described according to the procedure of the flowchart of FIG. For step S204), the process of the third embodiment (FIG. 22) is applied.
  • the arithmetic unit 202 stores the image size “512 ⁇ 512”, the image reconstruction position “1, 3”, the number of created images “2”, the block size “512 ⁇ 512 [pixel]”, and the number of arithmetic units “20” from the storage device 213. To get.
  • the number of divisions (number of blocks) N is obtained from the above equation (1).
  • the arithmetic unit 202 calculates the coordinates of the end points of the divided areas (step S301 in FIG. 9). First, the arithmetic unit 202 obtains the coordinates of each divided area.
  • the coordinates of the end points of the first block B1 are as follows, for example.
  • the coordinates of the end points of the second block B2 are as follows, for example.
  • the arithmetic unit 202 calculates the range of use data (step S302 in FIG. 9).
  • the computing device 202 calculates the coordinates of the projection data at the end points of each block.
  • usage data is calculated as shown in FIGS.
  • the arithmetic unit 202 calculates the used ch coordinate (step S401 in FIG. 11).
  • the arithmetic unit 202 calculates the used slice coordinates (step S402 in FIG. 11).
  • the arithmetic unit 202 calculates the amount of data used (step S303 in FIG. 9).
  • the amount of data used in the block is expressed by equation (5) as described above.
  • Step S203 Calculation of Load Amount of Each Block>
  • the arithmetic unit 202 calculates the load amount of each block.
  • Step S204 Assignment of computing units>
  • the computing unit assignment process is the same as that of the third embodiment (steps S801 and S802 in FIG. 17).
  • the arithmetic unit 202 calculates the load ratio of each block (step S801).
  • the computing device 202 determines the number of computing units to be assigned to each block according to the load ratio (step S802).
  • the number of computing units in block Bn total number of computing units ⁇ load amount n / total load amount
  • the load amount per computing unit is 86988 (1130844/13) to 94790.67 (568744/6).
  • the total processing time of image processing is the processing time of the computing unit with the greatest load.
  • the processing speed can be improved by about 19% compared to the conventional method.
  • 1 X-ray CT device 3 subjects, 10 scanners, 20 operation units, 100 gantry, 101 bed device, 102 X-ray tube, 103 X-ray detector, 104 collimator, 105 high voltage generator, 106 data collection device, 107 gantry Drive device, 200 central control device, 201 input / output device, 202 arithmetic device, 211 display device, 212 input device, 213 storage device, 221 reconstruction processing device, 222 image processing device, 41 data acquisition unit, 42 processing area division unit , 43 used data amount calculation unit, 44 load amount calculation unit, 45 arithmetic unit assignment unit, 46 arithmetic processing unit, i1, i2, ... image, s1, s2, ... detection element, D1, D2, ... ⁇ Range on projection data, B1, B2, ... Block

Abstract

When an arithmetic logic unit according to the present invention executes a load distribution process in a back projection process, for example, the arithmetic logic unit partitions an image that is a processing region into a plurality of blocks during the load distribution processing and calculates the amount of data to be used for processing each of the partitioned blocks. Furthermore, the arithmetic logic unit calculates the load for processing each block based on the amount of data used, and assigns arithmetic units to processing regions on the basis of the load. Thus, the load applied to an arithmetic unit can be equalized and data processing can be performed efficiently. Moreover, an X-ray CT device 1 according to the present invention comprises the arithmetic logic unit.

Description

演算装置、X線CT装置、及びデータ処理方法Arithmetic apparatus, X-ray CT apparatus, and data processing method
 本発明は、演算装置、X線CT装置、及びデータ処理方法に関し、詳細には、複数の演算器を有する演算装置を用いたデータ処理における演算速度の高速化に関する。 The present invention relates to an arithmetic device, an X-ray CT device, and a data processing method, and more particularly, to an increase in calculation speed in data processing using an arithmetic device having a plurality of arithmetic units.
 近年、CT(Computed Tomography)装置では、データ量の増加や計算の複雑化に伴い演算装置の処理量が増加している。一方で、病院施設でのワークフローを滞らせないようにするため、処理の高速化が求められている。こうした背景により、複数の演算器(コア)を搭載するマルチコアプロセッサ(演算装置)を用いて並列処理を行うことが一般に行われている。並列処理では、例えばモジュールの1つ1つに演算器を割り当てる方法や処理すべき領域(画像や投影データ等)を分割し、分割した領域それぞれに演算器を割り当てる方法が提案されている。 In recent years, in a CT (Computed Tomography) apparatus, the processing amount of an arithmetic unit has increased with an increase in data amount and complicated calculation. On the other hand, speeding up of processing is required in order not to delay the workflow in hospital facilities. Due to such a background, it is generally performed to perform parallel processing using a multi-core processor (arithmetic unit) equipped with a plurality of arithmetic units (cores). In parallel processing, for example, a method of assigning a computing unit to each module or a method of dividing a region to be processed (image, projection data, etc.) and assigning a computing unit to each of the divided regions are proposed.
 このように、複数の演算器を用いて並列処理を行う場合、各演算器の処理量はできるだけ均等であることが望ましい。なぜなら処理量の少ない演算器は早く処理を終了し、処理量の多い演算器の処理を待つことになるためである。このような課題に対し、画像を等分割することにより各演算器の処理時間のバランスをとり、効率のよい並列処理を行う方法等が提案されている。 Thus, when performing parallel processing using a plurality of arithmetic units, it is desirable that the processing amount of each arithmetic unit is as uniform as possible. This is because an arithmetic unit with a small amount of processing ends processing quickly and waits for processing of an arithmetic unit with a large amount of processing. In order to deal with such problems, a method has been proposed in which the processing time of each computing unit is balanced by dividing an image into equal parts to perform efficient parallel processing.
 X線CT装置で得た投影データから画像を生成する逆投影処理では、画素の位置によって1画素を生成するために使用する投影データの量は異なる。そのため、処理する画素位置によって演算負荷が異なる。また画像から投影データを生成する順投影処理においても、検出素子の位置によって透過する画素数(画像数)が異なるので、処理する素子位置によって演算負荷が異なる。 In the back projection process for generating an image from projection data obtained by an X-ray CT apparatus, the amount of projection data used for generating one pixel differs depending on the position of the pixel. Therefore, the calculation load varies depending on the pixel position to be processed. Also in the forward projection process for generating projection data from an image, the number of transmitted pixels (number of images) varies depending on the position of the detection element, and therefore the calculation load varies depending on the element position to be processed.
 使用データ量が多いほど演算負荷が大きいのは、データ量が多いほど演算器にデータを転送するためのコストがかかるためである。 The reason why the calculation load increases as the amount of data used increases is that the higher the amount of data, the higher the cost for transferring data to the calculator.
 特許文献1には、再構成するスライス面を複数のブロックに分割し、これに対応した投影画像の領域を切り出して各ブロックのローカルデータとしてブロック毎に処理単位を設定して演算単位に振り分けて並列処理を行う画像処理方法について記載されている。 In Patent Document 1, a slice plane to be reconstructed is divided into a plurality of blocks, a region of a projection image corresponding to this is cut out, a processing unit is set for each block as local data of each block, and the processing unit is divided into calculation units. An image processing method for performing parallel processing is described.
特開2006-55336号公報JP 2006-55336 A
 しかしながら、特許文献1の手法では処理領域によってデータ量が変化しないもの(投影画像のコンボリューション)に対しては処理領域を等分割することで演算器の負荷バランスを均等化しているが、処理領域によってデータ量が変化する処理(バックプロジェクション)に対しては演算器の負荷バランスの均等化は考慮されていない。 However, in the method of Patent Document 1, the load balance of the computing unit is equalized by equally dividing the processing area for those in which the data amount does not change depending on the processing area (convolution of the projection image). For the processing (back projection) in which the amount of data changes depending on the above, equalization of the load balance of the arithmetic unit is not considered.
 本発明は、以上の問題点に鑑みてなされたものであり、その目的とするところは、処理に使用するデータ量を考慮して各演算器の負荷バランスが均等となるような並列処理を行うことにより、画像処理を高速化することが可能な演算装置、X線CT装置、及び画像処理方法を提供することである。 The present invention has been made in view of the above problems, and its object is to perform parallel processing so that the load balance of each computing unit is equal in consideration of the amount of data used for processing. Accordingly, it is an object to provide an arithmetic device, an X-ray CT apparatus, and an image processing method capable of speeding up image processing.
 前述した目的を達成するための本発明は、複数の演算器を有する演算装置であって、処理に使用するデータを取得するデータ取得部と、処理領域を複数ブロックに分割する処理領域分割部と、前記ブロックの処理に使用するデータ量である使用データ量を求める使用データ量算出部と、前記使用データ量に基づいて各ブロックでの処理の負荷量を算出する負荷量算出部と、前記負荷量に基づいて各ブロックに演算器を割り当てる演算器割り当て部と、割り当てられた演算器によって前記処理を行う演算処理部と、を備えることを特徴とする演算装置である。 The present invention for achieving the above-described object is an arithmetic device having a plurality of arithmetic units, a data acquisition unit that acquires data used for processing, and a processing region dividing unit that divides a processing region into a plurality of blocks. A use data amount calculation unit that obtains a use data amount that is a data amount used for processing of the block; a load amount calculation unit that calculates a load amount of processing in each block based on the use data amount; and the load An arithmetic unit comprising: an arithmetic unit assigning unit that assigns an arithmetic unit to each block based on a quantity; and an arithmetic processing unit that performs the processing by the assigned arithmetic unit.
 または、本発明の演算装置を備えたX線CT装置である。 Or an X-ray CT apparatus provided with the arithmetic device of the present invention.
 または、複数の演算器を有する演算装置において、処理に使用するデータを取得するステップと、処理領域を複数ブロックに分割するステップと、前記ブロックの処理に使用するデータ量である使用データ量を求めるステップと、前記使用データ量に基づいて各ブロックでの処理の負荷量を算出するステップと、前記負荷量に基づいて各ブロックに演算器を割り当てるステップと、割り当てられた演算器によって前記処理を行うステップと、を含むことを特徴とするデータ処理方法である。 Alternatively, in an arithmetic device having a plurality of arithmetic units, a step of obtaining data used for processing, a step of dividing a processing region into a plurality of blocks, and a use data amount that is a data amount used for processing of the block are obtained. A step, a step of calculating a processing load amount in each block based on the use data amount, a step of assigning a computing unit to each block based on the load amount, and performing the processing by the assigned computing unit A data processing method comprising: steps.
 本発明によれば、処理に使用するデータ量が一定でない場合でも各演算器の負荷バランスが均等となるような並列処理を行うことにより、画像処理を高速化することが可能な演算装置、X線CT装置、及びデータ処理方法を提供できる。 According to the present invention, even when the amount of data used for processing is not constant, an arithmetic device capable of speeding up image processing by performing parallel processing so that the load balance of each arithmetic unit is equal, X A line CT apparatus and a data processing method can be provided.
X線CT装置1の全体構成を示す外観図External view showing the entire configuration of the X-ray CT apparatus 1 X線CT装置1の内部構成を示すブロック図Block diagram showing the internal configuration of the X-ray CT apparatus 1 演算装置202の機能ブロック図Functional block diagram of the arithmetic unit 202 逆投影処理におけるX線検出器103(使用データ)とX線ビームと画像i1、i2、i3、・・・(処理領域)の位置関係を示す図The figure which shows the positional relationship of the X-ray detector 103 (use data), X-ray beam, and image i1, i2, i3, ... (processing area) in back projection processing. 画像再構成位置と使用データ量との関係を示すグラフGraph showing the relationship between image reconstruction position and amount of data used 演算器の割り当てについて説明する図Diagram explaining assignment of computing units 逆投影処理の流れを示す図Diagram showing the flow of backprojection processing 図7のステップS102の負荷分散処理の流れを示すフローチャートThe flowchart which shows the flow of the load distribution process of step S102 of FIG. 図8のステップS202の使用データ量の算出処理の流れを示すフローチャートThe flowchart which shows the flow of a calculation process of the use data amount of step S202 of FIG. 分割された処理領域(ブロックB1、B2、B3、・・・)の例Example of divided processing areas (blocks B1, B2, B3,...) 図9のステップS302の使用データの範囲算出処理の流れを示すフローチャートThe flowchart which shows the flow of the range calculation process of the use data of step S302 of FIG. 使用ch座標の算出(ステップS401)の仕方を説明する図The figure explaining the method of calculation of use ch coordinate (step S401) 使用slice座標の算出(ステップS402)の仕方を説明する図The figure explaining how to use slice coordinates (step S402) ブロックの端点と対応する投影データ上の座標との位置関係を説明する図The figure explaining the positional relationship between the end point of the block and the corresponding coordinates on the projection data 図8のステップS204の演算器の割り当て処理の流れを示すフローチャートThe flowchart which shows the flow of the arithmetic unit allocation process of step S204 of FIG. 順投影処理におけるX線検出器103(処理領域)とX線ビームと画像i1、i2、i3、・・・(使用データ)との位置関係を示す図The figure which shows the positional relationship of the X-ray detector 103 (processing area | region), X-ray beam, and image i1, i2, i3, ... (use data) in a forward projection process. 順投影処理の流れを示す図Diagram showing the flow of forward projection processing 図17のステップS602の負荷分散処理の流れを示すフローチャートThe flowchart which shows the flow of the load distribution process of step S602 of FIG. 図18のステップS702の使用データ量の算出処理の流れを示すフローチャート18 is a flowchart showing the flow of processing for calculating the amount of used data in step S702 of FIG. 分割された処理領域(ブロックRd1、Rd2、・・・RdN)の例Example of divided processing areas (blocks Rd1, Rd2,... RdN) 各ブロックの代表端点Rd1[0,sl1]、Rd2[0,sl2]、・・・RdN[0,slN]に対応する画像上の位置を説明する図The figure explaining the position on the image corresponding to the representative end points Rd1 [0, sl1], Rd2 [0, sl2],... RdN [0, slN] of each block. 処理ブロック数よりも演算器の数が多い場合の演算器の割り当て処理(図8のステップS204)について説明するフローチャートFlowchart for explaining arithmetic unit assignment processing (step S204 in FIG. 8) when the number of arithmetic units is larger than the number of processing blocks.
 本発明の演算装置は、複数の演算器を有する演算装置であって、処理に使用するデータを取得するデータ取得部と、処理領域を複数ブロックに分割する処理領域分割部と、前記ブロックの処理に使用するデータ量である使用データ量を求める使用データ量算出部と、前記使用データ量に基づいて各ブロックでの処理の負荷量を算出する負荷量算出部と、前記負荷量に基づいて演算器を割り当てる演算器割り当て部と、割り当てられた演算器によって前記処理を行う演算処理部と、を備えることを特徴とする。 An arithmetic device of the present invention is an arithmetic device having a plurality of arithmetic units, a data acquisition unit that acquires data used for processing, a processing region dividing unit that divides a processing region into a plurality of blocks, and processing of the blocks A use data amount calculation unit for obtaining a use data amount that is a data amount to be used for a load, a load amount calculation unit for calculating a load amount of processing in each block based on the use data amount, and an operation based on the load amount A computing unit allocating unit for allocating a unit, and an arithmetic processing unit for performing the process by the allocated computing unit.
 また、前記演算器割り当て部は、ブロック間の負荷量の差異が予め定められた閾値以下になるように各ブロックに演算器を割り当てることを特徴とする。 Further, the arithmetic unit assigning unit assigns the arithmetic unit to each block so that a difference in load amount between the blocks is not more than a predetermined threshold value.
 また、前記処理に使用するデータは投影データであり、前記処理は前記投影データを用いて前記処理領域である画像を生成する逆投影処理であることを特徴とする。 Further, the data used for the processing is projection data, and the processing is back projection processing for generating an image that is the processing region using the projection data.
 また、前記使用データ量算出部は、X線焦点から照射されたX線が通過する各ブロックの画素の位置に対応する投影データの範囲を算出することにより前記使用データ量を算出することを特徴とする。 The use data amount calculation unit calculates the use data amount by calculating a range of projection data corresponding to a pixel position of each block through which X-rays irradiated from an X-ray focal point pass. And
 また、前記処理に使用するデータは画像データであり、前記処理は前記画像データを前記処理領域である検出器へ順投影する順投影処理であることを特徴とする。 Further, the data used for the processing is image data, and the processing is forward projection processing for forwardly projecting the image data onto a detector which is the processing region.
 また、前記使用データ量算出部は、X線焦点から照射されたX線が通過する画像数を前記検出器の検出素子位置について求めることにより、前記ブロックの使用データ量を算出することを特徴とする。 The use data amount calculation unit calculates the use data amount of the block by obtaining the number of images through which X-rays emitted from the X-ray focal point pass through the detection element position of the detector. To do.
 また、前記負荷量算出部は、更に、演算器のデータ転送速度に基づいて前記負荷量を算出することを特徴とする。 Further, the load amount calculation unit further calculates the load amount based on a data transfer rate of a computing unit.
 また、前記演算器割り当て部は、演算器1つ当たりの平均負荷量を算出し、複数ブロックの負荷量を積算し、積算値が演算器1つ当たりの平均負荷量以内に収まるように各演算器に割り当てる処理範囲を決定することを特徴とする。 Further, the arithmetic unit assigning unit calculates an average load amount per arithmetic unit, integrates the load amounts of a plurality of blocks, and performs each operation so that the integrated value is within the average load amount per arithmetic unit. The processing range to be allocated to the vessel is determined.
 また、前記演算器割り当て部は、各ブロックの負荷量の比率を算出し、前記比率に基づいてブロックに割り当てる演算器数を決定し、決定した演算器数分の演算器を各ブロックに割り当てることを特徴とする。 Further, the arithmetic unit assigning unit calculates a load amount ratio of each block, determines the number of arithmetic units to be assigned to the block based on the ratio, and assigns as many arithmetic units as the determined arithmetic unit to each block. It is characterized by.
 また、前記演算器割り当て部は、処理領域の位置と使用データ量との関係を表す関数を用いて演算器を割り当てることを特徴とする。 Further, the arithmetic unit assigning unit assigns the arithmetic unit using a function representing a relationship between the position of the processing area and the amount of used data.
 また、本発明のX線CT装置は、これら演算装置を備えることを特徴とする。 Also, the X-ray CT apparatus of the present invention is characterized by including these arithmetic units.
 また、本発明のデータ処理方法は、複数の演算器を有する演算装置において、処理に使用するデータを取得するステップと、処理領域を複数ブロックに分割するステップと、前記ブロックの処理に使用するデータ量である使用データ量を求めるステップと、前記使用データ量に基づいて各ブロックでの処理の負荷量を算出するステップと、前記負荷量に基づいて各ブロックに演算器を割り当てるステップと、割り当てられた演算器によって前記処理を行うステップと、を含むことを特徴とする。 In addition, the data processing method of the present invention includes a step of acquiring data used for processing, a step of dividing a processing area into a plurality of blocks, and data used for processing of the blocks in an arithmetic device having a plurality of arithmetic units. An amount of used data that is an amount; a step of calculating a processing load amount in each block based on the used data amount; a step of assigning an arithmetic unit to each block based on the load amount; Performing the above-described processing by a computing unit.
 [第1の実施の形態]
 以下、図面に基づいて本発明の好適な実施形態を詳細に説明する。まず、図1及び図2を参照しながら、X線CT装置1のハードウェア構成を説明する。
[First Embodiment]
Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the drawings. First, the hardware configuration of the X-ray CT apparatus 1 will be described with reference to FIGS. 1 and 2.
 図1及び図2に示すように、X線CT装置1は、大別してスキャナ10及び操作ユニット20から構成される。スキャナ10は、ガントリ100及び寝台101を有する。ガントリ100は、図2に示すようにX線管102、X線検出器103、コリメータ104、高電圧発生装置105、データ収集装置106、及びガントリ駆動装置107等を有する。操作ユニット20は、中央制御装置200、入出力装置201、及び演算装置202等を有する。 As shown in FIGS. 1 and 2, the X-ray CT apparatus 1 is roughly composed of a scanner 10 and an operation unit 20. The scanner 10 includes a gantry 100 and a bed 101. As shown in FIG. 2, the gantry 100 includes an X-ray tube 102, an X-ray detector 103, a collimator 104, a high voltage generation device 105, a data collection device 106, a gantry driving device 107, and the like. The operation unit 20 includes a central control device 200, an input / output device 201, an arithmetic device 202, and the like.
 操作者は、操作ユニット20の入出力装置201を用いて撮影条件や再構成条件等を入力する。撮影条件は、例えばX線ビーム幅、寝台送り速度、管電流、管電圧、撮影範囲(体軸方向範囲)、周回当たりの撮影ビュー数等である。また再構成条件は、例えば関心領域、FOV(Field Of View)、再構成フィルタ関数等である。入出力装置201は、CT画像等を表示する表示装置211、マウス、トラックボール、キーボード、タッチパネル等の入力装置212、データを記憶する記憶装置213等を含む。 The operator uses the input / output device 201 of the operation unit 20 to input shooting conditions, reconstruction conditions, and the like. The imaging conditions include, for example, the X-ray beam width, the bed feeding speed, the tube current, the tube voltage, the imaging range (body axis direction range), the number of imaging views per round. The reconstruction condition is, for example, a region of interest, FOV (Field (Of View), a reconstruction filter function, or the like. The input / output device 201 includes a display device 211 that displays CT images and the like, an input device 212 such as a mouse, trackball, keyboard, and touch panel, a storage device 213 that stores data, and the like.
 中央制御装置200は、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)等を備えたコンピュータであり、X線CT装置1全体の動作を制御する。中央制御装置200は、撮影条件や再構成条件に基づいて撮影に必要な制御信号をスキャナ10の各装置に送信する。 The central control device 200 is a computer including a CPU (Central Processing Unit), ROM (Read Only Memory), RAM (Random Access Memory), and the like, and controls the operation of the entire X-ray CT apparatus 1. The central control device 200 transmits a control signal necessary for photographing to each device of the scanner 10 based on photographing conditions and reconstruction conditions.
 中央制御装置200からの撮影スタート信号を受けて撮影が開始されると、高電圧発生装置105は中央制御装置200からの制御信号に基づいてX線管102に所定の大きさの管電圧、管電流を印加する。X線管102は、印加された管電圧に応じたエネルギーの電子を陰極から放出し、放出された電子がターゲット(陽極)に衝突することによって電子エネルギーに応じたエネルギーのX線を被写体3に照射する。 When imaging is started in response to an imaging start signal from the central controller 200, the high voltage generator 105 applies a tube voltage and a tube of a predetermined magnitude to the X-ray tube 102 based on the control signal from the central controller 200. Apply current. The X-ray tube 102 emits electrons with energy corresponding to the applied tube voltage from the cathode, and the emitted electrons collide with the target (anode) to cause X-rays with energy corresponding to the electron energy to the subject 3. Irradiate.
 X線管102から照射されるX線は、コリメータ104によって照射領域が制限される。コリメータ104の開口幅は中央制御装置200からの制御信号に基づいて制御される。 The irradiation area of the X-rays irradiated from the X-ray tube 102 is limited by the collimator 104. The opening width of the collimator 104 is controlled based on a control signal from the central controller 200.
 2次元方向に検出素子が配列されるX線検出器103を用いるマルチスライスCTでは、X線検出器103に合わせてX線源であるX線管102から円錐状、もしくは角錐状に広がるX線ビームが照射される。 In multi-slice CT using an X-ray detector 103 in which detection elements are arranged in a two-dimensional direction, X-rays spread in a cone shape or a pyramid shape from the X-ray tube 102 as an X-ray source in accordance with the X-ray detector 103. A beam is irradiated.
 X線管102から照射され、コリメータ104によって照射領域が制限されたX線は被写体3内の各組織においてX線減弱係数に応じて吸収(減衰)され、被写体3を通過し、X線管102に対向する位置に配置されたX線検出器103によって検出される。 X-rays irradiated from the X-ray tube 102 and whose irradiation area is limited by the collimator 104 are absorbed (attenuated) according to the X-ray attenuation coefficient in each tissue in the subject 3, pass through the subject 3, and pass through the X-ray tube 102. Is detected by an X-ray detector 103 arranged at a position opposite to.
 寝台101は、被写体3を寝載する天板、上下動装置、及び天板駆動装置を備え、中央制御装置200からの制御信号に基づき天板高さを上下に昇降したり、体軸方向へ前後動したり、体軸と垂直方向かつ床面に対し平行な方向(左右方向)へ左右動する。撮影中において寝台101は、中央制御装置200により決定された寝台移動速度及び移動方向で天板を移動させる。 The couch 101 includes a top plate on which the subject 3 is placed, a vertical movement device, and a top plate driving device. The couch height is raised and lowered in the vertical direction based on a control signal from the central control device 200, or in the body axis direction. Move back and forth, or move left and right in a direction perpendicular to the body axis and parallel to the floor (left and right direction). During imaging, the couch 101 moves the couch at the couch moving speed and moving direction determined by the central controller 200.
 ガントリ駆動装置107は、中央制御装置200からの制御信号に基づいて、ガントリ100の回転盤を周回させる。 The gantry driving device 107 circulates the rotating disk of the gantry 100 based on the control signal from the central control device 200.
 X線検出器103は、例えばシンチレータとフォトダイオードの組み合わせによって構成されるX線検出素子群をチャンネル方向(周回方向)及び列方向(体軸方向)に2次元配列したものである。X線検出器103は、被写体3を介してX線管102に対向するように配置される。X線検出器103はX線管102から照射されて被写体3を透過したX線量を検出し、データ収集装置106に出力する。 The X-ray detector 103 is obtained by two-dimensionally arranging, for example, an X-ray detection element group constituted by a combination of a scintillator and a photodiode in a channel direction (circumferential direction) and a column direction (body axis direction). The X-ray detector 103 is disposed so as to face the X-ray tube 102 with the subject 3 interposed therebetween. The X-ray detector 103 detects the X-ray dose irradiated from the X-ray tube 102 and transmitted through the subject 3 and outputs it to the data collection device 106.
 データ収集装置106は、X線検出器103の個々のX線検出素子により検出されるX線量の情報を収集し、デジタル信号に変換し、透過X線情報として操作ユニット20の演算装置202に順次出力する。 The data collection device 106 collects X-ray dose information detected by each X-ray detection element of the X-ray detector 103, converts it into a digital signal, and sequentially transmits it to the arithmetic unit 202 of the operation unit 20 as transmitted X-ray information. Output.
 演算装置202は、再構成処理装置221及び画像処理装置222等を備える。 The computing device 202 includes a reconstruction processing device 221 and an image processing device 222.
 再構成処理装置221は、データ収集装置106により収集された透過X線情報を取得し、画像を再構成するために必要な投影データを作成する。また、再構成処理装置221は投影データを用いて被写体3の断層像(CT画像)を再構成する。 The reconstruction processing device 221 acquires transmission X-ray information collected by the data collection device 106 and creates projection data necessary for reconstructing an image. Further, the reconstruction processing device 221 reconstructs a tomographic image (CT image) of the subject 3 using the projection data.
 本発明において、演算装置202は複数の演算器(コア)を備える。また演算装置202は、後述する負荷分散処理を行って複数の演算器へ負荷バランスが均等となるように処理を割り当て、画像生成を行う。処理とは、例えば逆投影、順投影、または逆投影及び順投影を繰り返し行う逐次近似再構成処理等の画像生成に関する処理である。演算装置202が実行する負荷分散処理の詳細については後述する。再構成処理装置221は、生成したCT画像を記憶装置213に保存するとともに表示装置211に表示する。 In the present invention, the arithmetic unit 202 includes a plurality of arithmetic units (cores). The computing device 202 performs load distribution processing described later, assigns processing so that the load balance is equal to a plurality of computing units, and generates an image. The processing is processing related to image generation such as, for example, back projection, forward projection, or successive approximation reconstruction processing that repeatedly performs back projection and forward projection. Details of the load distribution processing executed by the arithmetic unit 202 will be described later. The reconstruction processing device 221 stores the generated CT image in the storage device 213 and displays it on the display device 211.
 画像処理装置222は、再構成処理装置221により作成され、記憶装置213に記憶されたCT画像に対して画像処理を行う。また、画像処理後の画像を表示装置211に表示するとともに記憶装置213に保存する。 The image processing device 222 performs image processing on the CT image created by the reconstruction processing device 221 and stored in the storage device 213. In addition, the image after image processing is displayed on the display device 211 and stored in the storage device 213.
 次に、図3を参照しながら、演算装置202の機能構成について説明する。 Next, the functional configuration of the arithmetic unit 202 will be described with reference to FIG.
 演算装置202は主要な機能構成として、データ取得部41、処理領域分割部42、使用データ量算出部43、負荷量算出部44、演算器割り当て部45、演算処理部46等を有する。 The computing device 202 includes a data acquisition unit 41, a processing area dividing unit 42, a used data amount calculating unit 43, a load amount calculating unit 44, a computing unit allocating unit 45, an arithmetic processing unit 46, and the like as main functional configurations.
 データ取得部41は、処理に使用するデータを取得する。処理に使用するデータとは、逆投影処理においては投影データであり、順投影処理においては画像データである。投影データは、X線管102から照射され、被写体3及び寝台101を透過しX線検出器103によって検出されたX線の線量情報(透過X線情報)に基づき生成される。 The data acquisition unit 41 acquires data used for processing. The data used for processing is projection data in back projection processing and image data in forward projection processing. Projection data is generated based on X-ray dose information (transmitted X-ray information) irradiated from the X-ray tube 102, transmitted through the subject 3 and the bed 101, and detected by the X-ray detector 103.
 ここで、図4~図6を参照して、投影データから画像を生成する処理(逆投影処理)における画像位置と使用データとの関係について説明する。図4において、i1、i2、i3、・・・は、各スライス位置(画像再構成位置)における断層画像である。 Here, with reference to FIGS. 4 to 6, the relationship between the image position and the use data in the process of generating an image from the projection data (back projection process) will be described. 4, i1, i2, i3,... Are tomographic images at each slice position (image reconstruction position).
 図4に示すように、X線管(X線焦点)102とX線検出器103の各検出素子とを結ぶ線はX線ビームである。X線ビームが画像i1、i2、i3、・・・と交差する数は、画像のスライス位置によって異なる。 As shown in FIG. 4, the line connecting the X-ray tube (X-ray focal point) 102 and each detection element of the X-ray detector 103 is an X-ray beam. The number of X-ray beams that intersect the images i1, i2, i3,... Varies depending on the slice position of the image.
 例えば、画像i1を生成するために使用する投影データのスライス数をs1、画像i2を生成するために使用するスライス数をs2、画像i3を生成するために使用するスライス数をs3とすると、X線管装置102から中心に近い画像ほど、使用スライス数が少なく、遠いほど使用スライス数が多い(s2>s1)。画像位置がX線管102から一定以上離れると、X線検出器103のスライス範囲を超える画素が出てくる。スライス範囲を超え、例えば端スライスを使用する場合は使用スライス数が少なくなる(s2>s3)。 For example, if the number of slices of projection data used to generate the image i1 is s1, the number of slices used to generate the image i2 is s2, and the number of slices used to generate the image i3 is s3, X The closer to the center from the tube apparatus 102, the smaller the number of used slices, and the farther the image, the larger the number of used slices (s2> s1). When the image position is more than a certain distance from the X-ray tube 102, pixels exceeding the slice range of the X-ray detector 103 appear. For example, when an end slice is used beyond the slice range, the number of used slices is reduced (s2> s3).
 つまり、投影データから画像を生成する逆投影処理では、図5に示すように1画素を生成するために使用するデータ量は均等ではなく画像再構成位置によって異なる。 That is, in the back projection process for generating an image from projection data, the amount of data used to generate one pixel is not uniform and varies depending on the image reconstruction position as shown in FIG.
 図6に示すように、画像i1、i2、i3、i4を作成するのに使用する投影データは、それぞれD1、D2、D3、D4の範囲である。つまり逆投影処理では、処理する領域(画像)のサイズ(画素数)は各画像i1~i4で同じであるが、処理(画像生成)に使用するデータ量D1~D4が各画像で異なる。 As shown in FIG. 6, the projection data used to create the images i1, i2, i3, i4 are in the range of D1, D2, D3, D4, respectively. That is, in the back projection process, the size (number of pixels) of the area (image) to be processed is the same for each image i1 to i4, but the data amount D1 to D4 used for the process (image generation) is different for each image.
 ところで、演算装置202の演算器の負荷量は、計算量とデータ転送量で決定される。 By the way, the load amount of the arithmetic unit of the arithmetic unit 202 is determined by the calculation amount and the data transfer amount.
 計算量は、画素数(画像のサイズ)によって決定されるが、データ転送量は処理に使用するデータ量D1~D4に依存する。よって図6の上段に示すように、画像i1、i2、i3、i4を生成するための負荷量はそれぞれ異なる。 The calculation amount is determined by the number of pixels (image size), but the data transfer amount depends on the data amounts D1 to D4 used for processing. Therefore, as shown in the upper part of FIG. 6, the load amounts for generating the images i1, i2, i3, i4 are different.
 処理領域のサイズ(画像サイズ)のみを考慮して演算器を均等分配すると、図6の下段に示すように、演算器の負荷量にばらつきが生じ、全体として処理が非効率である。本発明では、図6の中段に示すように、演算器の計算量(画素数)と演算に使用するデータ量(使用データ量)とを用いて負荷量を算出し、演算器の負荷に基づいて演算器を割り当てることで、効率よく高速に処理を行うことを可能とする。 If the computing units are evenly distributed in consideration of only the size of the processing area (image size), as shown in the lower part of FIG. 6, the load amount of the computing units varies, and the processing is inefficient as a whole. In the present invention, as shown in the middle part of FIG. 6, the load amount is calculated using the calculation amount (number of pixels) of the calculator and the data amount (used data amount) used for the calculation, and based on the load of the calculator. By assigning computing units, processing can be performed efficiently and at high speed.
 図3の説明に戻る。 Returning to the explanation of FIG.
 処理領域分割部42は、処理領域を複数ブロックに分割する。処理領域とは、逆投影処理では画像である。 The processing area dividing unit 42 divides the processing area into a plurality of blocks. The processing area is an image in back projection processing.
 使用データ量算出部43は、処理領域分割部42により分割された各ブロックの処理に使用するデータ量を求める。使用データ量の求め方については後述する。 The used data amount calculation unit 43 obtains the data amount used for processing of each block divided by the processing area dividing unit 42. How to determine the amount of data used will be described later.
 負荷量算出部44は、上述の各ブロックの負荷量を算出する。このとき負荷量算出部44は、画像サイズ(計算量)のみならず使用データ量を考慮して各ブロックの負荷量を算出する。負荷量の算出については後述する。 The load amount calculation unit 44 calculates the load amount of each block described above. At this time, the load amount calculation unit 44 calculates the load amount of each block in consideration of not only the image size (calculation amount) but also the use data amount. The calculation of the load amount will be described later.
 演算器割り当て部45は、負荷量算出部44によって算出された負荷量に基づいて均等になるように処理領域を処理する演算器の割り当てを行う。なお、負荷量が均等になることが望ましいが、負荷量が均等にならない場合は、各処理領域の負荷量の差異が予め定めた閾値以下になるように演算器を割り当ててもよい。演算器の割り当てについては後述する。 The computing unit allocating unit 45 allocates computing units that process the processing areas so as to be even based on the load amount calculated by the load amount calculating unit 44. Although it is desirable that the load amount be equal, if the load amount is not equal, the arithmetic unit may be assigned so that the difference in load amount between the processing regions is equal to or less than a predetermined threshold. The assignment of the arithmetic units will be described later.
 演算処理部46は、演算器割り当て部45によって割り当てられた演算器によって処理領域の処理を実施する。処理とは、第1の実施の形態では投影データから画像データを生成する逆投影処理である。 The arithmetic processing unit 46 performs processing of the processing area by the arithmetic unit assigned by the arithmetic unit assigning unit 45. The process is a back projection process for generating image data from projection data in the first embodiment.
 次に図7を参照しながら、本発明のX線CT装置1の処理全体の流れを説明する。 Next, the flow of the entire process of the X-ray CT apparatus 1 of the present invention will be described with reference to FIG.
 まずX線CT装置1は、被写体3に対して位置決め撮影を行う。位置決め撮影では、ガントリ100を回転させずX線の照射方向を固定し、寝台101を所定の速さで移動しながら被写体3及び寝台101を透過したX線量を計測する。X線CT装置1は、位置決め撮影によって得られた透過X線データに基づいて位置決め画像を作成する。 First, the X-ray CT apparatus 1 performs positioning imaging on the subject 3. In the positioning imaging, the X-ray irradiation direction is fixed without rotating the gantry 100, and the X-ray dose transmitted through the subject 3 and the bed 101 is measured while moving the bed 101 at a predetermined speed. The X-ray CT apparatus 1 creates a positioning image based on transmitted X-ray data obtained by positioning imaging.
 中央制御装置200は、位置決め画像を使用して撮影条件や再構成条件等の各種条件設定を受け付ける。そして、中央制御装置200は設定された各種条件に基づいて本撮影を実行する。本撮影では、ガントリ100を回転させて被写体3の周囲の各方向からX線を照射し、被写体3及び寝台101を透過したX線情報を計測する。この本撮影により、投影データを取得する(ステップS101)。 The central control device 200 accepts various condition settings such as shooting conditions and reconstruction conditions using the positioning image. Then, the central control device 200 executes the actual photographing based on the set various conditions. In the actual photographing, the gantry 100 is rotated to emit X-rays from each direction around the subject 3, and X-ray information transmitted through the subject 3 and the bed 101 is measured. Projection data is acquired by this actual photographing (step S101).
 次に演算装置202は、負荷分散処理を実行する。負荷分散処理では、演算装置202は複数の演算器の負荷バランスが均等となるように各演算器を処理領域に割り当てる(ステップS102)。 Next, the arithmetic unit 202 executes load distribution processing. In the load distribution process, the computing device 202 assigns each computing unit to the processing area so that the load balance of the plurality of computing units is equal (step S102).
 ステップS102で求められた割り当てに従い、演算装置202は分割画像処理を実施する(ステップS103)。分割画像処理では、全演算器を用いて並列処理を実施し、画像を生成する。演算装置202は、ステップS103で生成された画像を表示装置211に表示する(ステップS104)。 In accordance with the assignment obtained in step S102, the arithmetic unit 202 performs divided image processing (step S103). In the divided image processing, parallel processing is performed using all the arithmetic units to generate an image. The computing device 202 displays the image generated in step S103 on the display device 211 (step S104).
 次に、図8を参照して、ステップS102の負荷分散処理について説明する。 Next, the load distribution process in step S102 will be described with reference to FIG.
 演算装置202はまず記憶装置213からパラメータとして作成画像枚数及び処理ブロックサイズ(縦横サイズ)の情報を取得する。処理ブロックサイズは、通常、プロセッサのアーキテクチャに応じた適切なサイズ、または処理を実行しやすいサイズが予め設定されている。演算装置202は、取得した作成画像枚数から全処理画素数を求め、処理ブロックサイズで除算することで分割数Nを算出する(ステップS201)。 The computing device 202 first acquires information on the number of created images and the processing block size (vertical and horizontal size) as parameters from the storage device 213. The processing block size is usually set in advance to an appropriate size according to the processor architecture or a size that facilitates processing. The arithmetic unit 202 calculates the total number of processed pixels from the acquired number of created images, and calculates the division number N by dividing by the processing block size (step S201).
 分割数Nの算出について具体的に説明する。演算装置202は、記憶装置213から、画像サイズX×Y、作成画像枚数i、画像再構成位置z、演算器数t、ブロックサイズX×yb[画素]を取得する。分割数Nは、以下の式(1)で求められる。ブロックサイズは可変であり、例えば1×1と設定してもよい。 The calculation of the division number N will be specifically described. The computing device 202 acquires the image size X × Y, the number of created images i, the image reconstruction position z, the number of computing units t, and the block size X × yb [pixel] from the storage device 213. The division number N is obtained by the following equation (1). The block size is variable, and may be set to 1 × 1, for example.
Figure JPOXMLDOC01-appb-I000001
Figure JPOXMLDOC01-appb-I000001
 演算装置202は、ステップS201で算出したN個の処理ブロックについて、それぞれ使用データ量を算出し(ステップS202)、使用データ量に基づいて各処理ブロックの負荷量を算出する(ステップS203)。逆投影処理の場合、例えば図9に示す手順で使用データ量を算出する。 The computing device 202 calculates the usage data amount for each of the N processing blocks calculated in step S201 (step S202), and calculates the load amount of each processing block based on the usage data amount (step S203). In the case of back projection processing, for example, the usage data amount is calculated according to the procedure shown in FIG.
 図9に示すように、演算装置202はまず分割した各領域(ブロック)の端点の座標を求める(ステップS301)。例えば、図10に示すように、処理領域(画像i1,i2、・・・)が複数のブロックB1,B2,B3,・・・,B9,B10,B11,・・・に分割されているとする。ブロックB1の端点の画素B11,B12,B13,B14の座標はそれぞれ以下のようになる。 As shown in FIG. 9, the arithmetic unit 202 first obtains the coordinates of the end points of each divided area (block) (step S301). For example, as shown in FIG. 10, when the processing area (images i1, i2,...) Is divided into a plurality of blocks B1, B2, B3,..., B9, B10, B11,. To do. The coordinates of the pixels B11, B12, B13, B14 at the end points of the block B1 are as follows.
 B11[0,y,z]
 B12[X,y,z]
 B13[0,y+yb,z]
 B14[X,y+yb,z]
 同様に全N個のブロックB2,B3,・・・,BNについてそれぞれ端点の座標を算出する。
B11 [0, y, z]
B12 [X, y, z]
B13 [0, y + yb, z]
B14 [X, y + yb, z]
Similarly, the coordinates of the end points are calculated for all N blocks B2, B3,.
 次に演算装置202は、使用データ範囲を算出する(ステップS302)。使用データ範囲とは、逆投影の場合、ブロックの範囲に対応する投影データ上の範囲である。すなわち、ステップS301で求めた端点座標に対応する投影データ上の座標を算出することにより、投影データ上の使用データ範囲を求める。 Next, the arithmetic unit 202 calculates a use data range (step S302). In the case of back projection, the use data range is a range on the projection data corresponding to the block range. In other words, the use data range on the projection data is obtained by calculating the coordinates on the projection data corresponding to the end point coordinates obtained in step S301.
 ステップS302において、図11のフローチャートに示すように、演算装置202は、使用ch座標を算出し(ステップS401)、また使用slice座標を算出する(ステップS402)。 In step S302, as shown in the flowchart of FIG. 11, the arithmetic unit 202 calculates the used ch coordinates (step S401) and calculates the used slice coordinates (step S402).
 使用ch座標とは、ブロックの端点座標に対応する投影データ(使用データ)上の座標のチャンネル位置(ch座標)である。使用slice座標とは、ブロックの端点座標に対応する投影データ(使用データ)上の座標のスライス位置(slice座標)である。 The used ch coordinate is the channel position (ch coordinate) of the coordinates on the projection data (used data) corresponding to the end point coordinates of the block. The used slice coordinates are slice positions (slice coordinates) of coordinates on the projection data (used data) corresponding to the end point coordinates of the block.
 演算装置202は、各ブロックの端点に対応する使用ch座標を算出する。X線CT装置1の幾何学系にも依存するが、例えば平行ビームの場合、図12に示すように、画像上の画素iのX座標は、画素サイズから素子サイズ(ch)へのスケーリング係数k1を用いて、以下の式(2)のように算出される(ステップS401)。 The arithmetic unit 202 calculates the used ch coordinate corresponding to the end point of each block. Although depending on the geometric system of the X-ray CT apparatus 1, for example, in the case of a parallel beam, as shown in FIG. 12, the X coordinate of the pixel i on the image is a scaling factor from the pixel size to the element size (ch). Using k1, the following equation (2) is calculated (step S401).
Figure JPOXMLDOC01-appb-I000002
Figure JPOXMLDOC01-appb-I000002
 次に、演算装置202は、使用slice座標を算出する(ステップS402)。ステップS402では、演算装置202は、画素のY座標、Z座標、X線管102(X線焦点位置)から画像中心までの距離d、画像上の画素iの位置から素子サイズ(Slice)へのスケーリング係数k2を用いて、以下の式(3)のように使用slice座標を算出する。 Next, the arithmetic unit 202 calculates used slice coordinates (step S402). In step S402, the arithmetic unit 202 determines the Y coordinate, Z coordinate of the pixel, the distance d from the X-ray tube 102 (X-ray focal position) to the center of the image, and the position of the pixel i on the image to the element size (Slice). Using the scaling coefficient k2, the used slice coordinates are calculated as in the following equation (3).
Figure JPOXMLDOC01-appb-I000003
Figure JPOXMLDOC01-appb-I000003
 ただし、算出した座標が存在しない場合は、以下の式(4)のように丸め込みを行ってもよい。 However, if the calculated coordinates do not exist, rounding may be performed as in the following equation (4).
Figure JPOXMLDOC01-appb-I000004
Figure JPOXMLDOC01-appb-I000004
 ステップS401~ステップS402の処理により各ブロック端点に対応する投影データ上のch座標及びslice座標が算出できる。図14に示すように、各ブロックの端点の使用データの座標を、Bd11[ch1,slice1]、Bd12[ch2,slice2]、Bd13[ch3,slice3]、Bd14[ch4,slice4]のように表すものとする。 The ch coordinate and slice coordinate on the projection data corresponding to each block end point can be calculated by the processing from step S401 to step S402. As shown in FIG. 14, the coordinates of the usage data of the end points of each block are represented as Bd11 [ch1, slice1], Bd12 [ch2, slice2], Bd13 [ch3, slice3], Bd14 [ch4, slice4]. And
 図9の説明に戻る。上述したようにステップS302によりブロック端点座標に対応する使用データ範囲が算出されると、次に演算装置202は使用データ量を算出する(ステップS303)。ステップS303において、演算装置202は、ブロック内の使用データ量は、各ブロックの端点に対応する使用データ範囲からチャンネル方向及びスライス方向の最大値と最小値をそれぞれ抽出し、式(5)のように算出する。 Returning to the explanation of FIG. As described above, when the use data range corresponding to the block end point coordinates is calculated in step S302, the arithmetic unit 202 calculates the use data amount (step S303). In step S303, the arithmetic unit 202 extracts the maximum value and the minimum value in the channel direction and the slice direction from the use data range corresponding to the end point of each block as the use data amount in the block, as shown in Expression (5). To calculate.
 使用データ量=
   (ch最大値-ch最小値)
  ×(slice最大値-slice最小値)  ・・・(5)
 その後、演算装置202は負荷量を算出する(図8のステップS203)。ステップS203において演算装置202は、以下のように各ブロックの負荷量を算出する。負荷量は、単位処理領域の処理速度に対する単位使用データを転送する速度との速度比率係数αを用いて、以下の式(6)のようにあらわすことができる。
Data usage =
(Ch maximum value-ch minimum value)
× (slice maximum value−slice minimum value) (5)
Thereafter, the arithmetic unit 202 calculates the load amount (step S203 in FIG. 8). In step S203, the arithmetic unit 202 calculates the load amount of each block as follows. The load amount can be expressed by the following equation (6) using a speed ratio coefficient α with the speed at which the unit usage data is transferred with respect to the processing speed of the unit processing area.
 負荷量=処理領域+α×使用データ量 ・・・(6)
 ここで、αはプロセッサのデータ転送性能やアーキテクチャに依存する係数であり、例えばバンド幅やキャッシュ等に依存する。
Load amount = processing area + α × data amount used (6)
Here, α is a coefficient depending on the data transfer performance and architecture of the processor, and depends on, for example, the bandwidth and the cache.
 上述したように負荷量が算出されると、演算装置202は、算出した各ブロックの負荷量に基づいて、各演算器の負荷量が均等になるように演算器を各ブロックに割り当てる(ステップS204)。 When the load amount is calculated as described above, the arithmetic device 202 assigns the arithmetic unit to each block so that the load amount of each arithmetic unit is equal based on the calculated load amount of each block (step S204). ).
 ステップS204の演算器の割り当てについて図15のフローチャートを参照して説明する。 The assignment of computing units in step S204 will be described with reference to the flowchart of FIG.
 演算装置202は、まず演算器1つ当たりの平均負荷量を算出する(ステップS501)。ステップS501において、演算装置202は全ブロックの総負荷量を以下の式(7)から求め、式(8)により演算器1つ当たりの平均負荷量を算出する。 The computing device 202 first calculates an average load amount per computing unit (step S501). In step S501, the arithmetic unit 202 obtains the total load amount of all blocks from the following equation (7), and calculates the average load amount per arithmetic unit using the equation (8).
 総負荷量=
    ブロックB1の負荷量+ブロックB2の負荷量+・・・
   +ブロックBNの負荷量 ・・・(7)
 平均負荷量=総負荷量/演算器数t ・・・(8)
 次に、演算装置202は、式(9)によりブロックB1から順に各ブロックの負荷量を加算していく(ステップS502)。
Total load =
Load amount of block B1 + load amount of block B2 +...
+ Load of block BN (7)
Average load amount = total load amount / number of arithmetic units t (8)
Next, the arithmetic unit 202 adds the load amount of each block in order from the block B1 according to the equation (9) (step S502).
 積算値+=負荷量[n] ・・・(9)
 ステップS502で求めた積算値が、ステップS501で求めた平均負荷量に達した場合、そのブロックを処理終了ブロックend_bとし、処理開始ブロックst_bから処理終了ブロックend_bまでを1つの演算器が処理する範囲(処理ブロック)とする(ステップS503)。これを繰り返し、各演算器の処理開始ブロックと処理終了ブロックを求める。
Integrated value + = load amount [n] (9)
When the integrated value obtained in step S502 reaches the average load amount obtained in step S501, the block is defined as a process end block end_b, and a range in which one computing unit processes the process start block st_b to the process end block end_b. (Processing block) (step S503). This process is repeated to obtain a process start block and a process end block for each computing unit.
 ただし、上述の負荷量の積算値がちょうどよく平均負荷量に達するとは限らない。その場合は、例えば、以下の式(10)に示すように、
 積算値 > 
  平均負荷量-1ブロック当たりの平均負荷量 ・・・(10)
 としてもよい。ここで、1ブロック当たりの平均負荷量=総負荷量/ブロック数である。
However, the integrated value of the load amount described above does not always reach the average load amount. In that case, for example, as shown in the following equation (10):
Integrated value>
Average load-Average load per block (10)
It is good. Here, average load amount per block = total load amount / number of blocks.
 最後の演算器まで処理ブロックが割り当てられたとき、処理ブロックがまだ残っていた場合は、1ブロックずつ各演算器に割り当てる。残っているブロック数が演算器の数よりも多い場合は、上述の負荷分散処理を繰り返してもよい。 When processing blocks are allocated to the last computing unit, if processing blocks still remain, they are allocated to each computing unit one block at a time. When the number of remaining blocks is larger than the number of arithmetic units, the above load distribution processing may be repeated.
 演算装置202は、ステップS503で割り当てられた処理ブロックの座標を求める(ステップS504)。 The computing device 202 obtains the coordinates of the processing block assigned in step S503 (step S504).
 ステップS504では、具体的には、処理ブロックの端点[st_x,st_y]、[end_x,end_y]を算出する。例えば、処理開始座標と終了座標は、それぞれ、
 [st_x,st_y]=[0,st_b×yb]
 [end_x,end_y]=[0,end_b×yb]
のように求められる。以上より、処理開始座標と処理終了座標が決定される。
In step S504, specifically, end points [st_x, st_y] and [end_x, end_y] of the processing block are calculated. For example, the processing start coordinates and end coordinates are respectively
[St_x, st_y] = [0, st_b × yb]
[End_x, end_y] = [0, end_b × yb]
It is required as follows. As described above, the process start coordinates and the process end coordinates are determined.
 図8の負荷分散処理において、演算器の割り当て(ステップS203;ステップS501~ステップS504)までの処理が終了すると、図7の分割画像処理へ移行する(ステップS103)。 In the load distribution process of FIG. 8, when the processing up to the assignment of the arithmetic units (step S203; steps S501 to S504) is completed, the process proceeds to the divided image processing of FIG. 7 (step S103).
 ステップS103の分割画像処理では、各演算器はステップS504で決定された処理開始座標から処理終了座標の画素に対し、逆投影処理を行う。逆投影処理によって各画素の値が求められ画像が生成される。 In the divided image processing in step S103, each computing unit performs back projection processing on the pixels from the processing start coordinates determined in step S504 to the processing end coordinates. The value of each pixel is obtained by back projection processing, and an image is generated.
 演算装置202は表示装置211に画像を表示し、一連の逆投影処理を終了する(ステップS104)。 The computing device 202 displays an image on the display device 211 and ends a series of backprojection processing (step S104).
 以上説明したように、処理領域である画像領域に投影データを投影する逆投影処理において、並列処理で使用する各演算器にかかる負荷量を均等に割り当てる。これにより、各演算器で処理に要する時間が均等となり、高速な画像処理を行うことが可能となる。 As described above, in the back projection process in which projection data is projected onto the image area that is the processing area, the load amount applied to each arithmetic unit used in the parallel processing is equally allocated. As a result, the time required for processing in each arithmetic unit is equalized, and high-speed image processing can be performed.
 なお、第1の実施の形態の処理は、処理領域の分割数(ブロック数)を演算器の数よりも多く設定した場合に有効である。逆投影処理では処理領域は画像であるが、大きな単位の処理領域を固定して割り当てるのではなく、本発明では1枚の画像を小さな複数ブロックに分割して柔軟に演算器を割り当てる。つまり、全ての演算器で処理領域を同じ大きさにするのではなく、演算器毎に柔軟に処理領域のサイズを変えられる。これにより、負荷量が均等になるようにバランスよく演算器の割り当てを行うことが可能である。また、処理領域の分割の仕方は任意であり、図10の例に限定されない。 Note that the processing of the first embodiment is effective when the number of divisions (number of blocks) of the processing area is set larger than the number of computing units. In the back projection process, the processing area is an image, but a large unit processing area is not fixed and assigned. In the present invention, one image is divided into a plurality of small blocks and the arithmetic units are flexibly assigned. That is, the size of the processing area can be flexibly changed for each arithmetic unit, instead of making the processing area the same in all the arithmetic units. As a result, it is possible to assign the calculators in a balanced manner so that the load amounts are equal. Further, the method of dividing the processing area is arbitrary, and is not limited to the example of FIG.
 [第2の実施の形態]
 本発明は、順投影処理にも適用できる。順投影処理は検出器領域(投影データ領域)を処理領域として、画像データから各検出素子の投影データを生成する処理である。図16に示すように複数の画像(断層像)i1~i7が作成されている場合、X線管102(X線焦点)とX線検出器103の各検出素子s1,s2,s3,・・・とを結ぶ線が画像i1,i2,i3,・・・と交差する数は、画像のスライス位置によって異なる。例えば、検出素子s1は画像i3,i4,i5と交差する。また、検出素子s2は画像i1,i2,i3,i4と交差する。また、検出素子s3は画像i1,i2,i3と交差する。つまりX線管102からの中心位置に近い素子程、使用画素数が少なく、遠いほど使用画素数が多い。
[Second Embodiment]
The present invention can also be applied to forward projection processing. The forward projection process is a process for generating projection data of each detection element from image data using a detector area (projection data area) as a processing area. When a plurality of images (tomographic images) i1 to i7 are created as shown in FIG. 16, the detection elements s1, s2, s3,... Of the X-ray tube 102 (X-ray focal point) and the X-ray detector 103 are formed. ... The number of lines crossing the images i1, i2, i3,... Differs depending on the slice position of the image. For example, the detection element s1 intersects the images i3, i4, and i5. The detection element s2 intersects the images i1, i2, i3, i4. The detection element s3 intersects with the images i1, i2, and i3. That is, the closer to the center position from the X-ray tube 102, the smaller the number of used pixels, and the farther the element, the larger the number of used pixels.
 そして、検出素子位置がX線管102(X線焦点)から所定距離以上離れると画像が存在しないため、使用画素数は少なくなる。つまり、画像データから投影データを生成する順投影処理においても、1検出素子の投影データを生成するために使用するデータ量は均等ではなく素子位置によって異なる。 And, since the image does not exist when the detection element position is away from the X-ray tube 102 (X-ray focal point) by a predetermined distance or more, the number of used pixels decreases. That is, even in the forward projection process for generating projection data from image data, the amount of data used to generate projection data for one detection element is not uniform but varies depending on the element position.
 そのため、順投影処理においても第1の実施の形態(逆投影処理)と同様に、演算器の計算量(素子数)と使用するデータ量(画素数)とに基づいて演算器の負荷バランスが均等となるように演算器を分配すれば、効率よく高速に処理を行うことが可能となる。以下、順投影処理における負荷分散処理について説明する。 For this reason, in the forward projection processing as well, as in the first embodiment (back projection processing), the load balance of the arithmetic unit is based on the calculation amount (number of elements) of the arithmetic unit and the amount of data (number of pixels) to be used. If the computing units are distributed so as to be even, processing can be performed efficiently and at high speed. Hereinafter, the load distribution process in the forward projection process will be described.
 まず図17を参照して、順投影処理全体の流れを説明する。 First, the overall flow of the forward projection process will be described with reference to FIG.
 順投影処理において演算装置202は投影データを生成するために使用するデータである画像データを取得し(ステップS601)、負荷分散処理を実行する(ステップS602)。負荷分散処理では、複数の演算器の負荷バランスが均等となるように、各演算器の処理領域(検出素子)を割り当てる。 In the forward projection processing, the arithmetic unit 202 acquires image data that is data used to generate projection data (step S601), and executes load distribution processing (step S602). In the load distribution process, the processing area (detection element) of each computing unit is allocated so that the load balance of the plurality of computing units is equal.
 ステップS602で求められた割り当てに従い、演算装置202は分割データ処理を実施する(ステップS603)。分割データ処理では、全演算器を用いて処理領域を順投影処理する。すなわち、画像データを使用して順投影処理を行って各素子での投影値を算出し、投影データを生成する。演算装置202は、ステップS603で生成された投影データを記憶装置213に出力(保存)する(ステップS604)。 In accordance with the assignment obtained in step S602, the arithmetic unit 202 performs divided data processing (step S603). In the divided data processing, the processing area is forward projected using all the arithmetic units. That is, forward projection processing is performed using image data to calculate a projection value at each element to generate projection data. The arithmetic device 202 outputs (saves) the projection data generated in step S603 to the storage device 213 (step S604).
 ステップS602の負荷分散処理は、第1の実施の形態と同様の手順で行われる。すなわち、図18に示すように、負荷分散処理において演算装置202は、まず処理領域である検出器領域を複数ブロックに分割し(ステップS701)、分割したブロックの処理に使用するデータ量(透過画素数)を算出する(ステップS702)。そして、ステップS702で算出した使用データ量に基づいて各ブロックの負荷量を算出し(ステップS703)、負荷量が均等になるように各ブロックに割り当てる演算器数を求め、求めた演算器数だけ各ブロックに演算器を割り当てる(ステップS704)。 The load distribution process in step S602 is performed in the same procedure as in the first embodiment. That is, as shown in FIG. 18, in the load distribution process, the arithmetic unit 202 first divides the detector area, which is the processing area, into a plurality of blocks (step S701), and the amount of data (transparent pixels) used for the processing of the divided blocks. Number) is calculated (step S702). Then, the load amount of each block is calculated based on the use data amount calculated in step S702 (step S703), the number of arithmetic units assigned to each block is obtained so that the load amount is equal, and only the calculated number of arithmetic units is obtained. An arithmetic unit is assigned to each block (step S704).
 ステップS701の処理領域の分割ステップでは、演算装置202は、記憶装置213から、例えば検出器の素子サイズCh×Sl、演算器数t、ブロックサイズCh×1画素を取得する。そして、以下の式(11)から処理領域の分割数Nを算出する。 In the processing region dividing step of step S701, the arithmetic unit 202 acquires, for example, the detector element size Ch × Sl, the number of arithmetic units t, and the block size Ch × 1 pixel from the storage device 213. Then, the division number N of the processing area is calculated from the following equation (11).
Figure JPOXMLDOC01-appb-I000005
Figure JPOXMLDOC01-appb-I000005
 次に、ステップS702の各ブロックの使用データ量の算出ステップでは、演算装置202は図19に示す手順で使用データ量を算出する。 Next, in the step of calculating the used data amount of each block in step S702, the arithmetic unit 202 calculates the used data amount according to the procedure shown in FIG.
 まず演算装置202は、ブロックの端点の座標を算出する(ステップS801)。ステップS801の処理において演算装置202は、図20のように処理領域を各ブロックRd1,Rd2,・・・RdNに分割し、各ブロックの端点座標(Rd11,Rd12,・・・)を算出する。順投影の場合、図21のように、ch位置による使用データ量(透過画像)の変化は小さいと仮定し、各ブロックの端点座標を、各ブロックの代表端点としてそれぞれ1点ずつRd1[0,sl1]、Rd2[0,sl2]・・・RdN[0,slN]と近似的に設定できる。 First, the arithmetic unit 202 calculates the coordinates of the end points of the block (step S801). In the process of step S801, the arithmetic unit 202 divides the processing area into blocks Rd1, Rd2,... RdN as shown in FIG. 20, and calculates end point coordinates (Rd11, Rd12,...) Of each block. In the case of forward projection, as shown in FIG. 21, it is assumed that the change in the amount of data used (transmission image) due to the ch position is small, and the end point coordinates of each block are set as Rd1 [0, sl1], Rd2 [0, sl2]... RdN [0, slN].
 次に演算装置202は、各ブロックの端点に対応する画像上の位置(透過座標)を算出し(ステップS802)、算出した透過座標が画像上にあるか否かの範囲判定を行う(ステップS803)。算出した透過座標が画像上にある場合は(ステップS803;Yes)、透過画素数として積算する(ステップS804)。ステップS802で算出した透過座標が画像上にない場合は(ステップS803;No)、透過画素数を加算しない。 Next, the computing device 202 calculates a position (transmission coordinate) on the image corresponding to the end point of each block (step S802), and performs a range determination as to whether or not the calculated transmission coordinate is on the image (step S803). ). If the calculated transmission coordinates are on the image (step S803; Yes), the number of transmission pixels is integrated (step S804). When the transmission coordinates calculated in step S802 are not on the image (step S803; No), the number of transmission pixels is not added.
 ステップS802の透過座標の算出ステップでは、演算装置202は、X線管102から該当素子までのz軸方向の長さL、画像間隔p、該当素子からX線管102方向に向かって最初に透過する画像位置までの距離l、X線管102からX線管102直下の素子までの長さDを用いて、該当素子の最初の透過座標(1枚目に透過する画像上の座標)I1[y,z]を求める。 In the transmission coordinate calculation step in step S802, the arithmetic unit 202 first transmits the length L from the X-ray tube 102 to the corresponding element in the z-axis direction, the image interval p, and the corresponding element from the corresponding element toward the X-ray tube 102. The first transmission coordinates (coordinates on the image transmitted through the first sheet) I1 [of the corresponding element using the distance l to the image position to be performed and the length D from the X-ray tube 102 to the element immediately below the X-ray tube 102 y, z].
 具体的には、式(12)のように算出できる。 Specifically, it can be calculated as shown in Equation (12).
Figure JPOXMLDOC01-appb-I000006
Figure JPOXMLDOC01-appb-I000006
 それ以降(n枚目の画像の透過座標)の透過座標In[y,z]は、式(13)のように算出できる。 The transmission coordinates In [y, z] after that (transmission coordinates of the nth image) can be calculated as in Expression (13).
Figure JPOXMLDOC01-appb-I000007
Figure JPOXMLDOC01-appb-I000007
 ステップS802において透過座標が算出されると、演算装置202は算出した透過座標が画像上にあるかどうかを判定する(ステップS803)。ステップS803の判定では、演算装置202は、X線管位置(X線焦点位置)から最も近い画像のz座標z_min、画像の下端y_min、画像の上端y_maxを用いて、以下の式(14)に示す条件を満たしていれば、透過画素数を積算する(透過画素数=透過画素数+1)。 When the transmission coordinates are calculated in step S802, the arithmetic unit 202 determines whether or not the calculated transmission coordinates are on the image (step S803). In the determination in step S803, the arithmetic unit 202 uses the z coordinate z_min of the image closest to the X-ray tube position (X-ray focal position), the lower end y_min of the image, and the upper end y_max of the image to the following equation (14). If the conditions shown are satisfied, the number of transmissive pixels is integrated (number of transmissive pixels = number of transmissive pixels + 1).
Figure JPOXMLDOC01-appb-I000008
Figure JPOXMLDOC01-appb-I000008
 以上のように各ブロックの端点の透過画素数が算出できる。 As described above, the number of transmissive pixels at the end points of each block can be calculated.
 各端点の透過画素数は、Rd1[透過画素数1]、Rd2[透過画素数2]、・・・RdN[透過画素数N]のように求めることができる。 The number of transmissive pixels at each end point can be obtained as Rd1 [number of transmissive pixels 1], Rd2 [number of transmissive pixels 2],... RdN [number of transmissive pixels N].
 各ブロックの端点の透過画素数が算出されると、次に演算装置202はブロック内の使用データ量を求める(ステップS805)。 When the number of transmissive pixels at the end points of each block is calculated, the arithmetic unit 202 next calculates the amount of data used in the block (step S805).
 n番目ブロック内の使用データ量は、n番目ブロックの端点の透過画素数の値を抽出し、以下の式(15)から求められる。 The amount of data used in the nth block is obtained from the following equation (15) by extracting the value of the number of transparent pixels at the end point of the nth block.
 使用データ量n=Rdn[透過画素数]×Ch ・・・(15)
 各ブロックの使用データ量が求められると、演算装置202は図18のステップS703の処理を行う。演算装置202は負荷量を算出する(図18のステップS703)。
Use data amount n = Rdn [number of transmission pixels] × Ch (15)
When the use data amount of each block is obtained, the arithmetic unit 202 performs the process of step S703 in FIG. The arithmetic device 202 calculates the load amount (step S703 in FIG. 18).
 ステップS703の負荷量の算出処理は、第1の実施の形態と同様に、演算装置202は各ブロックの負荷量を算出する。単位処理領域(ブロック)の処理速度に対する単位使用データを転送する速度との速度比率係数αを用いて、上述の式(6)のようにあらわすことができる。 In the load amount calculation process in step S703, the arithmetic unit 202 calculates the load amount of each block, as in the first embodiment. Using the speed ratio coefficient α with the speed at which the unit usage data is transferred with respect to the processing speed of the unit processing area (block), it can be expressed as the above equation (6).
 上述したように負荷量が算出されると、演算装置202は算出した負荷量に基づいて演算器に処理ブロックを割り当てる(図18のステップS704)。 When the load amount is calculated as described above, the arithmetic unit 202 assigns a processing block to the arithmetic unit based on the calculated load amount (step S704 in FIG. 18).
 演算器の割り当てステップは、第1の実施の形態と同様である。具体的には、図15のフローチャートに示すように、演算装置202は、まず平均負荷量を算出する(ステップS501)。次に、演算装置202は、最初の処理ブロックB1から各ブロックの負荷量を加算していく(ステップS502)。 The operation unit assignment step is the same as that in the first embodiment. Specifically, as shown in the flowchart of FIG. 15, the arithmetic unit 202 first calculates an average load amount (step S501). Next, the arithmetic unit 202 adds the load amount of each block from the first processing block B1 (step S502).
 ステップS502で求めた負荷量(式(9)の積算値)が平均負荷量に達した場合、処理開始ブロックst_bからそのブロックend_bまでを1つの演算器の処理領域とする(ステップS503)。これを繰り返し、各演算器の開始ブロックと終了ブロックを求める。 When the load amount obtained in step S502 (the integrated value of equation (9)) reaches the average load amount, the processing area from the processing start block st_b to the block end_b is set as a processing area of one computing unit (step S503). This is repeated to obtain the start block and end block of each computing unit.
 演算装置202は、ステップS503で割り当てられた処理ブロックの座標を求める(ステップS504)。 The computing device 202 obtains the coordinates of the processing block assigned in step S503 (step S504).
 演算器の割り当て(ステップS704)までの処理が終了すると負荷分散処理を終了し、演算装置202は次に図17の分割データ処理へ移行する(ステップS603)。 When the processing up to the allocation of computing units (step S704) is completed, the load distribution processing is terminated, and the computing device 202 then shifts to the divided data processing of FIG. 17 (step S603).
 ステップS603の分割データ処理では、各演算器は決定された処理開始素子から処理終了素子に対し順投影処理を行う。分割データ処理により投影データが生成されると、演算装置202は生成した投影データを記憶装置213等に記憶し、一連のデータ処理を終了する(ステップS604)。 In the divided data processing in step S603, each arithmetic unit performs forward projection processing from the determined processing start element to the processing end element. When the projection data is generated by the divided data processing, the arithmetic device 202 stores the generated projection data in the storage device 213 or the like, and ends a series of data processing (step S604).
 以上説明したように、処理領域である検出器領域に透過画素の値を積算して各検出素子の値を求める順投影処理のように、素子位置によって使用データ量が異なる処理であっても、各演算器の負荷量が均等となるように処理ブロックを割り当てることにより、効率よくデータ処理を行うことができる。これにより、高速な画像処理を提供することができる。 As described above, even in a process in which the amount of data used differs depending on the element position, such as a forward projection process in which the value of each detection element is obtained by accumulating the value of the transmission pixel in the detector area that is the processing area, Data processing can be performed efficiently by assigning processing blocks so that the load amount of each arithmetic unit is equal. Thereby, high-speed image processing can be provided.
 [第3の実施の形態]
 第1及び第2の実施の形態では、処理ブロック数(処理領域の分割数)を演算器の数より多くした場合における演算器の割り当てについて説明した。第3の実施の形態では、処理ブロック数よりも演算器の数の方が多い場合における演算器の割り当てについて説明する。処理ブロック数よりも演算器の数の方が多い場合とは、例えば、処理ブロックサイズが画像単位となるように作られた装置のように、1つの演算器が複数の画像の処理を跨いで行えない場合等である。
[Third Embodiment]
In the first and second embodiments, allocation of computing units has been described in the case where the number of processing blocks (the number of divisions of processing areas) is greater than the number of computing units. In the third embodiment, assignment of operation units when the number of operation units is larger than the number of processing blocks will be described. When the number of arithmetic units is larger than the number of processing blocks, for example, a single arithmetic unit straddles the processing of a plurality of images, such as a device made so that the processing block size is an image unit. This is the case when it cannot be performed.
 以下、図22を参照して、第3の実施の形態における演算器の割り当て処理について説明する。なお、演算器の割り当て処理以外の各処理(データ取得、処理領域分割処理、使用データ算出処理、負荷量算出処理、演算処理等)は、第1または第2の実施の形態と同様に行われるものとする。 Hereinafter, with reference to FIG. 22, processing for assigning arithmetic units in the third embodiment will be described. Each process (data acquisition, process area division process, use data calculation process, load amount calculation process, calculation process, etc.) other than the arithmetic unit assignment process is performed in the same manner as in the first or second embodiment. Shall.
 第3の実施の形態において、演算装置202(演算器割り当て部45)は、例えば図22のフローチャートに示すように、各ブロックの負荷量の比率を算出し(ステップS901)、算出した比率に基づいて処理領域に割り当てる演算器数を決定する(ステップS902)。 In the third embodiment, the computing device 202 (calculator assigning unit 45) calculates the load amount ratio of each block (step S901), for example, as shown in the flowchart of FIG. 22, and based on the calculated ratio. The number of arithmetic units to be assigned to the processing area is determined (step S902).
 ステップS901において、演算装置202は、全ブロックの総負荷量を算出する。総負荷量は、各ブロックの負荷量の和であり、以下の式(16)から算出できる。 In step S901, the arithmetic unit 202 calculates the total load amount of all blocks. The total load amount is the sum of the load amounts of the respective blocks, and can be calculated from the following equation (16).
 総負荷量=
    ブロックB1の負荷量+ブロックB2の負荷量+・・・
   +ブロックBNの負荷量  ・・・(16)
 次に、演算装置202は、式(17)に示すように各ブロックの負荷量の比率である負荷比率を求める。
Total load =
Load amount of block B1 + load amount of block B2 +...
+ Load of block BN (16)
Next, the arithmetic unit 202 obtains a load ratio that is a ratio of the load amount of each block as shown in Expression (17).
 負荷比率=
 [ブロックB1の負荷量/総負荷量、ブロックB2の負荷量/総負荷量、
 ・・・、ブロックBNの負荷量/総負荷量] ・・・(17)
 そして、演算装置202は、各ブロックに割り当てる演算器数を求める。以下の式(18)から各ブロックに割り当てる演算器数を決定する。
Load ratio =
[Load amount / total load amount of block B1, load amount / total load amount of block B2,
... load amount / total load amount of block BN] (17)
Then, the arithmetic unit 202 calculates the number of arithmetic units assigned to each block. The number of arithmetic units assigned to each block is determined from the following equation (18).
 ブロックBnの演算器数=
 総演算器数×ブロックBn負荷量/総負荷量 ・・・(18)
 演算装置202は、全てのブロックに対して、割り当てる演算器数を決定する。ここで、演算器数が小数で求められた場合は、小数点以下は切り捨てとし、余った演算器分は切り捨てた小数点以下の値の大きさに応じて再度処理領域に分配してもよい。ただし、演算器数が1未満になったときは演算器数1とする。
Number of arithmetic units in block Bn =
Total number of arithmetic units × block Bn load / total load (18)
The computing device 202 determines the number of computing units to be assigned to all blocks. Here, when the number of arithmetic units is determined by a decimal, the portion after the decimal point may be rounded down, and the remainder of the arithmetic units may be distributed again to the processing area according to the size of the value after the rounded down decimal point. However, when the number of computing units becomes less than 1, the number of computing units is 1.
 以上説明したように、第3の実施の形態では、各ブロックの負荷比率に応じて各ブロックに割り当てる演算器数を算出する。そのため、処理ブロックサイズが画像単位のように大きく、処理ブロック数よりも演算器の数が多い場合でも、演算器の負荷を可能な限り均等に割り当てることが可能となる。これにより、高速なデータ処理を行うことが可能となる。 As described above, in the third embodiment, the number of arithmetic units assigned to each block is calculated according to the load ratio of each block. Therefore, even when the processing block size is as large as an image unit and the number of arithmetic units is larger than the number of processing blocks, it is possible to assign the arithmetic unit loads as evenly as possible. Thereby, high-speed data processing can be performed.
 [第4の実施の形態]
 第1または第2の実施の形態において、負荷量算出部44(図8のステップS203、図18のステップS703)は、各処理領域の使用データ量の変化を予め関数(使用データ量特性f(z))として用意しておき、この使用データ量特性f(z)に基づき、負荷量を算出してもよい。
[Fourth Embodiment]
In the first or second embodiment, the load amount calculation unit 44 (step S203 in FIG. 8 and step S703 in FIG. 18) uses a function (use data amount characteristic f ( z)), and the load amount may be calculated based on the use data amount characteristic f (z).
 例えば、コンベンショナルスキャン(ノーマルスキャン、ステップアンドシュートスキャンともいう)では、図5に示すように画像位置(z位置)に応じて使用データ量が変化する。このような使用データ量とz位置との関係を示す近似曲線を、例えば使用データ量特性f(z)として予め用意しておき、演算器負荷量の算出に使用する。 For example, in a conventional scan (also referred to as a normal scan or a step-and-shoot scan), the amount of data used varies depending on the image position (z position) as shown in FIG. An approximate curve indicating the relationship between the amount of used data and the z position is prepared in advance as, for example, a used data amount characteristic f (z), and is used for calculation of the calculator load.
 第1の実施の形態の負荷量算出ステップ(図8のステップS203)または第2の実施の形態の負荷量算出ステップ(図18のステップS703)の場合、演算装置202は、以下の式(19)、(20)を用いて負荷量を算出することができる。 In the case of the load amount calculating step of the first embodiment (step S203 in FIG. 8) or the load amount calculating step of the second embodiment (step S703 in FIG. 18), the arithmetic unit 202 is expressed by the following equation (19 ) And (20) can be used to calculate the load amount.
 使用データ量=f(z)    ・・・(19)
 負荷量=処理領域+α×f(z)  ・・・(20)
 以上説明したように、第4の実施の形態では、各ブロックの負荷量を関数を用いて容易に算出することができる。そのため負荷分散処理の演算時間を短縮でき、より効率の良いデータ処理を行えるようになる。
Data amount used = f (z) (19)
Load = processing area + α × f (z) (20)
As described above, in the fourth embodiment, the load amount of each block can be easily calculated using a function. Therefore, the calculation time of the load distribution process can be shortened, and more efficient data processing can be performed.
 [第5の実施の形態]
 ハードウェアに応じて高速なデータ読み出しが可能なサイズは決まっている。例えば、読み出したいデータサイズが大きければ、DMA転送を複数回行う必要があったり、転送速度の遅いキャッシュの階層を参照したりすることが考えられる。第5の実施の形態では、データサイズによって読み出し速度が変化するハードウェアを用いる場合への適用について説明する。
[Fifth Embodiment]
The size at which high-speed data reading is possible is determined according to the hardware. For example, if the data size to be read is large, it may be necessary to perform DMA transfer a plurality of times or to refer to a cache hierarchy with a low transfer rate. In the fifth embodiment, application to the case of using hardware whose read speed varies depending on the data size will be described.
 高速転送が可能なデータサイズ(data_size)に関する閾値をTh1、Th2、データサイズに応じた速度比率係数をc0、c1とする。これらの値は予め記憶装置213に記憶されているものとする。 Threshold values for data size (data_size) that can be transferred at high speed are Th1 and Th2, and speed ratio coefficients corresponding to the data size are c0 and c1. These values are stored in the storage device 213 in advance.
 そして例えば、上述の式(6)や式(20)に含まれる速度比率係数αを、以下の条件(式(21))に従って変化させる。 And, for example, the speed ratio coefficient α included in the above formula (6) and formula (20) is changed according to the following condition (formula (21)).
Figure JPOXMLDOC01-appb-I000009
Figure JPOXMLDOC01-appb-I000009
 このように速度比率係数αをデータサイズ(data_size)に応じて変化させることで、演算器の負荷量の算出精度を向上させることができる。これにより、演算器の負荷の均等化の精度を向上でき、画像処理を高速化することができる。 Thus, by calculating the speed ratio coefficient α according to the data size (data_size), the calculation accuracy of the load amount of the computing unit can be improved. Thereby, it is possible to improve the accuracy of equalizing the load on the arithmetic unit, and to speed up the image processing.
 以上説明したように、複数の演算器を備えるX線CT装置1(演算装置202)において、演算装置202は負荷分散処理を実行する。負荷分散処理において、演算装置202は処理領域を複数のブロックに分割し、分割された各ブロックの処理に使用するデータ量を算出する。 As described above, in the X-ray CT apparatus 1 (arithmetic apparatus 202) including a plurality of arithmetic units, the arithmetic apparatus 202 executes load distribution processing. In the load distribution process, the arithmetic unit 202 divides the processing area into a plurality of blocks, and calculates the amount of data used for the processing of each divided block.
 更に演算装置202は各ブロックの負荷量を使用データ量に基づいて算出し、各演算器で負荷量が均等になるように各演算器に処理領域(処理するブロック)を割り当てる。これにより各演算器にかかる負荷量が均等となり、効率よくデータ処理を行うことが可能となる。 Further, the arithmetic unit 202 calculates the load amount of each block based on the amount of data used, and assigns a processing area (block to be processed) to each arithmetic unit so that the load amount is equalized in each arithmetic unit. As a result, the load applied to each arithmetic unit is equalized, and data processing can be performed efficiently.
 なお、上述の実施形態では、逆投影処理及び順投影処理についてそれぞれ説明したが、本発明は、逆投影と順投影とを繰り返して画像を生成する逐次近似再構成処理にも適用可能である。 In the above-described embodiment, the back projection process and the forward projection process have been described. However, the present invention can also be applied to a successive approximation reconstruction process in which an image is generated by repeating back projection and forward projection.
 [実施例]
 逆投影処理を例として、具体的な数値を当てはめて負荷分散処理の結果を示す。以下の説明では、処理領域の分割(ステップS201)、使用データ量の算出(ステップS202)、負荷量の算出(ステップS203)に関しては図8のフローチャートの手順に従って説明し、演算器の割り当て処理(ステップS204)については第3の実施の形態(図22)の処理を適用する。
[Example]
Taking back projection processing as an example, the result of load distribution processing is shown by applying specific numerical values. In the following description, the division of the processing area (step S201), the calculation of the used data amount (step S202), and the calculation of the load amount (step S203) will be described according to the procedure of the flowchart of FIG. For step S204), the process of the third embodiment (FIG. 22) is applied.
 <ステップS201(処理領域(画像)の分割)>
 演算装置202は、記憶装置213から画像サイズ「512×512」、画像再構成位置「1、3」、作成枚数「2」、ブロックサイズ「512×512[画素]」、演算器数「20」を取得する。
<Step S201 (Division of Processing Area (Image))>
The arithmetic unit 202 stores the image size “512 × 512”, the image reconstruction position “1, 3”, the number of created images “2”, the block size “512 × 512 [pixel]”, and the number of arithmetic units “20” from the storage device 213. To get.
 分割数(ブロック数)Nは、上述の式(1)から求められる。 The number of divisions (number of blocks) N is obtained from the above equation (1).
 N=512×512×2/(512×512)=2 N = 512 × 512 × 2 / (512 × 512) = 2
 <ステップS202;各ブロックの使用データ量の算出>
 演算装置202は分割領域端点の座標を算出する(図9のステップS301)。まず演算装置202は、分割した各領域の座標を求める。
<Step S202; Calculation of Usage Data Amount of Each Block>
The arithmetic unit 202 calculates the coordinates of the end points of the divided areas (step S301 in FIG. 9). First, the arithmetic unit 202 obtains the coordinates of each divided area.
 1番目のブロックB1の端点の座標は、例えば以下のようになる。 The coordinates of the end points of the first block B1 are as follows, for example.
 B11[1,256,1]
 B12[512,256,1]
 B13[1,-256,1]
 B14[512,-256,1]。
B11 [1,256,1]
B12 [512, 256, 1]
B13 [1, -256, 1]
B14 [512, -256, 1].
 また2番目のブロックB2の端点の座標は、例えば以下のようになる。 Also, the coordinates of the end points of the second block B2 are as follows, for example.
 B21[1,256,3]
 B22[512,256,3]
 B23[1,-256,3]
 B24[512,-256,3]。
B21 [1,256,3]
B22 [512, 256, 3]
B23 [1, -256, 3]
B24 [512, -256, 3].
 次に、演算装置202は使用データの範囲を算出する(図9のステップS302)。 Next, the arithmetic unit 202 calculates the range of use data (step S302 in FIG. 9).
 演算装置202は、各ブロックの端点で投影データの座標を算出する。 The computing device 202 calculates the coordinates of the projection data at the end points of each block.
 幾何学系にも依存するが、例えば並行ビームの場合、図12、図13に示すように使用データを算出する。 Depending on the geometric system, for example, in the case of a parallel beam, usage data is calculated as shown in FIGS.
 まず演算装置202は、使用ch座標を算出する(図11のステップS401)。 First, the arithmetic unit 202 calculates the used ch coordinate (step S401 in FIG. 11).
 画素のx座標、画素サイズから素子サイズ(ch)へのスケーリング係数k1(=2.0)を用いて、
 ブロックB1の使用ch=最大ch-最小ch
            =512×2-1×2
            =1022
 また演算装置202は、使用slice座標を算出する(図11のステップS402)。
Using the x coordinate of the pixel, the scaling factor k1 (= 2.0) from the pixel size to the element size (ch),
Use ch of block B1 = maximum ch-minimum ch
= 512 × 2-1 × 2
= 1022
Further, the arithmetic unit 202 calculates the used slice coordinates (step S402 in FIG. 11).
 画像の上端点のy=256、z座標=1、画像の下端点のy=-256、z座標=1、X線管102から画像中心までの距離d=500、画素位置から素子サイズ(slice)へのスケーリング係数k2=4.0とすると、上述の式(3)(slice=z×d/(d-y)×k2)から、
 ブロックB1の使用slice
  =最大slie-最小slice
  ={1×500/(500-256)-1×500/(500+256)}
  =6(値切り上げ)
 以上のように、投影データのch、sliceの使用数が算出できる。
Y = 256 at the upper end point of the image, z coordinate = 1, y = −256 at the lower end point of the image, z coordinate = 1, distance d = 500 from the X-ray tube 102 to the image center, and element size (slice) ) To the scaling coefficient k2 = 4.0, from the above equation (3) (slice = z × d / (dy) × k2),
Use slice of block B1
= Maximum slice-Minimum slice
= {1 × 500 / (500−256) −1 × 500 / (500 + 256)}
= 6 (value round up)
As described above, the number of ch and slice used in the projection data can be calculated.
 次に、演算装置202は使用データ量を算出する(図9のステップS303)。 Next, the arithmetic unit 202 calculates the amount of data used (step S303 in FIG. 9).
 ブロック内の使用データ量は、上述したように式(5)で表される。 The amount of data used in the block is expressed by equation (5) as described above.
 これにより、
 B1の使用データ量=1022×6=6132
 が求められる。
This
Use amount of data of B1 = 1022 × 6 = 6132
Is required.
 <ステップS203;各ブロックの負荷量の算出>
 次に演算装置202は各ブロックの負荷量を算出する。
<Step S203; Calculation of Load Amount of Each Block>
Next, the arithmetic unit 202 calculates the load amount of each block.
 単位処理領域の処理速度に対する単位使用データを転送する速度との速度比率係数α=50とすると、上述の式(6)から、
 ブロックB1の負荷量=512×512+50×6132
           =568744
が求められる。
Assuming that the speed ratio coefficient α = 50 with the speed of transferring the unit usage data with respect to the processing speed of the unit processing area, from the above equation (6),
Load amount of block B1 = 512 × 512 + 50 × 6132
= 568744
Is required.
 以上の計算をブロックB2に対しても同様に行うと、
 B2の負荷量=1130844
が求まる。
If the above calculation is similarly performed for the block B2,
Load amount of B2 = 1130844
Is obtained.
 <ステップS204;演算器の割り当て>
 演算器の割り当て処理は、第3の実施の形態の処理を行うものとする(図17のステップS801、ステップS802)。
<Step S204: Assignment of computing units>
The computing unit assignment process is the same as that of the third embodiment (steps S801 and S802 in FIG. 17).
 まず演算装置202は、各ブロックの負荷比率を算出する(ステップS801)。 First, the arithmetic unit 202 calculates the load ratio of each block (step S801).
 全ブロックの総負荷量は、
 総負荷量=568744+1130844=1699588
である。
The total load of all blocks is
Total load = 567744 + 1130844 = 1699588
It is.
 負荷比率=[(ブロックB1:568744/1699588=)0.335、(ブロックB2:1130844/1699588=)0.665]
 演算装置202は、負荷比率に従って各ブロックに割り当てる演算器数を決定する(ステップS802)。
Load ratio = [(Block B1: 568744/1669988 =) 0.335, (Block B2: 1130844/1669988 =) 0.665]
The computing device 202 determines the number of computing units to be assigned to each block according to the load ratio (step S802).
 ブロックBnの演算器数=総演算器数×負荷量n/総負荷量
 であるので、
 ブロックB1の演算器数は、20×0.335=6(切り下げ)
 ブロックB2の演算器数は、20×0.665=13(切り下げ)
 この場合、演算器1つ当たりの負荷量は、86988(1130844/13)~94790.67(568744/6)となる。
Since the number of computing units in block Bn = total number of computing units × load amount n / total load amount,
The number of arithmetic units in block B1 is 20 × 0.335 = 6 (round down)
The number of arithmetic units in block B2 is 20 × 0.665 = 13 (round down)
In this case, the load amount per computing unit is 86988 (1130844/13) to 94790.67 (568744/6).
 一方、比較例として従来のように、使用データ量を用いずに負荷量を算出し、演算器を各画像に均等に分配した場合は、
 ブロックB1の演算器数=20×0.5=10
 ブロックB2の演算器数=20×0.5=10
 この場合の演算器1つ当たりの負荷量は、56874.4(568744/10)~113084.4(1130844/10)となる。
On the other hand, as in the conventional case as a comparative example, the load amount is calculated without using the amount of data used, and when the computing units are evenly distributed to each image,
Number of arithmetic units of block B1 = 20 × 0.5 = 10
Number of calculators in block B2 = 20 × 0.5 = 10
In this case, the load amount per computing unit is 56874.4 (568744/10) to 11308.44.4 (1130844/10).
 画像処理のトータルの処理時間は最も負荷の大きい演算器の処理時間となる。 The total processing time of image processing is the processing time of the computing unit with the greatest load.
 従来手法と本発明の手法での処理時間とを比較すると、
 113084.4(従来手法での最大負荷量)/94790.67(本発明での最大負荷量)=1.19
である。
When comparing the processing time of the conventional method and the method of the present invention,
113084.4 (maximum load amount in the conventional method) /9479.67 (maximum load amount in the present invention) = 1.19
It is.
 本発明の手法を用いることにより、従来手法と比較して19%程度、処理速度を向上できる。 By using the method of the present invention, the processing speed can be improved by about 19% compared to the conventional method.
 以上、本発明の好適な実施形態について説明したが、本発明は、上述の実施形態に限定されるものではない。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。 The preferred embodiment of the present invention has been described above, but the present invention is not limited to the above-described embodiment. It will be apparent to those skilled in the art that various changes or modifications can be conceived within the scope of the technical idea disclosed in the present application, and these are naturally within the technical scope of the present invention. Understood.
 1 X線CT装置、3 被写体、10 スキャナ、20 操作ユニット、100 ガントリ、101 寝台装置、102 X線管、103 X線検出器、104 コリメータ、105 高電圧発生装置、106 データ収集装置、107 ガントリ駆動装置、200 中央制御装置、201 入出力装置、202 演算装置、211 表示装置、212 入力装置、213 記憶装置、221 再構成処理装置、222 画像処理装置、41 データ取得部、42 処理領域分割部、43 使用データ量算出部、44 負荷量算出部、45 演算器割り当て部、46 演算処理部、i1,i2,・・・ 画像、s1,s2,・・・ 検出素子、D1,D2,・・・ 投影データ上の範囲、B1,B2,・・・ ブロック 1 X-ray CT device, 3 subjects, 10 scanners, 20 operation units, 100 gantry, 101 bed device, 102 X-ray tube, 103 X-ray detector, 104 collimator, 105 high voltage generator, 106 data collection device, 107 gantry Drive device, 200 central control device, 201 input / output device, 202 arithmetic device, 211 display device, 212 input device, 213 storage device, 221 reconstruction processing device, 222 image processing device, 41 data acquisition unit, 42 processing area division unit , 43 used data amount calculation unit, 44 load amount calculation unit, 45 arithmetic unit assignment unit, 46 arithmetic processing unit, i1, i2, ... image, s1, s2, ... detection element, D1, D2, ...・ Range on projection data, B1, B2, ... Block

Claims (12)

  1.  複数の演算器を有する演算装置であって、
     処理に使用するデータを取得するデータ取得部と、
     処理領域を複数ブロックに分割する処理領域分割部と、
     前記ブロックの処理に使用するデータ量である使用データ量を求める使用データ量算出部と、
     前記使用データ量に基づいて各ブロックでの処理の負荷量を算出する負荷量算出部と、 前記負荷量に基づいて演算器を割り当てる演算器割り当て部と、
     割り当てられた演算器によって前記処理を行う演算処理部と、
     を備えることを特徴とする演算装置。
    An arithmetic device having a plurality of arithmetic units,
    A data acquisition unit for acquiring data used for processing;
    A processing area dividing unit for dividing the processing area into a plurality of blocks;
    A use data amount calculation unit for obtaining a use data amount which is a data amount used for processing the block;
    A load amount calculation unit that calculates a load amount of processing in each block based on the use data amount; an arithmetic unit assignment unit that allocates an arithmetic unit based on the load amount;
    An arithmetic processing unit for performing the processing by the assigned arithmetic unit;
    An arithmetic device comprising:
  2.  前記演算器割り当て部は、ブロック間の負荷量の差異が予め定められた閾値以下になるように各ブロックに演算器を割り当てることを特徴とする請求項1に記載の演算装置。 The arithmetic unit according to claim 1, wherein the arithmetic unit assigning unit assigns an arithmetic unit to each block so that a difference in load amount between the blocks is equal to or less than a predetermined threshold value.
  3.  前記処理に使用するデータは投影データであり、前記処理は前記投影データを用いて前記処理領域である画像を生成する逆投影処理であることを特徴とする請求項2に記載の演算装置。 3. The arithmetic apparatus according to claim 2, wherein the data used for the processing is projection data, and the processing is back projection processing for generating an image that is the processing region using the projection data.
  4.  前記使用データ量算出部は、X線焦点から照射されたX線が通過する各ブロックの画素の位置に対応する投影データの範囲を算出することにより前記使用データ量を算出することを特徴とする請求項3に記載の演算装置。 The use data amount calculation unit calculates the use data amount by calculating a range of projection data corresponding to a pixel position of each block through which X-rays irradiated from an X-ray focal point pass. The arithmetic unit according to claim 3.
  5.  前記処理に使用するデータは画像データであり、前記処理は前記画像データを前記処理領域である検出器へ順投影する順投影処理であることを特徴とする請求項2に記載の演算装置。 3. The arithmetic apparatus according to claim 2, wherein the data used for the processing is image data, and the processing is forward projection processing for forwardly projecting the image data onto a detector which is the processing region.
  6.  前記使用データ量算出部は、X線焦点から照射されたX線が通過する画像数を前記検出器の検出素子位置について求めることにより、前記ブロックの使用データ量を算出することを特徴とする請求項5に記載の演算装置。 The usage data amount calculation unit calculates the usage data amount of the block by obtaining the number of images through which X-rays emitted from an X-ray focal point pass through the detection element position of the detector. Item 6. The arithmetic device according to Item 5.
  7.  前記負荷量算出部は、更に、演算器のデータ転送速度に基づいて前記負荷量を算出することを特徴とする請求項2に記載の演算装置。 3. The arithmetic device according to claim 2, wherein the load amount calculation unit further calculates the load amount based on a data transfer rate of an arithmetic unit.
  8.  前記演算器割り当て部は、演算器1つ当たりの平均負荷量を算出し、複数ブロックの負荷量を積算し、積算値が演算器1つ当たりの平均負荷量以内に収まるように各演算器に割り当てる処理範囲を決定することを特徴とする請求項2に記載の演算装置。 The computing unit allocating unit calculates an average load amount per computing unit, integrates the load amounts of a plurality of blocks, and sets each computing unit so that the integrated value is within the average load amount per computing unit. The computing device according to claim 2, wherein a processing range to be assigned is determined.
  9.  前記演算器割り当て部は、各ブロックの負荷量の比率を算出し、前記比率に基づいてブロックに割り当てる演算器数を決定し、決定した演算器数分の演算器を各ブロックに割り当てることを特徴とする請求項2に記載の演算装置。 The computing unit assigning unit calculates a load ratio of each block, determines the number of computing units to be assigned to the block based on the ratio, and assigns as many computing units as the determined number of computing units to each block. The arithmetic unit according to claim 2.
  10.  前記演算器割り当て部は、処理領域の位置と使用データ量との関係を表す関数を用いて演算器を割り当てることを特徴とする請求項2に記載の演算装置。 3. The arithmetic unit according to claim 2, wherein the arithmetic unit assigning unit assigns the arithmetic unit using a function representing a relationship between a position of the processing area and a used data amount.
  11.  請求項1に記載の演算装置を備えたX線CT装置。 An X-ray CT apparatus comprising the arithmetic unit according to claim 1.
  12.  複数の演算器を有する演算装置において、
     処理に使用するデータを取得するステップと、
     処理領域を複数ブロックに分割するステップと、
     前記ブロックの処理に使用するデータ量である使用データ量を求めるステップと、
     前記使用データ量に基づいて各ブロックでの処理の負荷量を算出するステップと、
     前記負荷量に基づいて各ブロックに演算器を割り当てるステップと、
     割り当てられた演算器によって前記処理を行うステップと、
     を含むことを特徴とするデータ処理方法。
    In an arithmetic unit having a plurality of arithmetic units,
    Obtaining data for processing; and
    Dividing the processing region into a plurality of blocks;
    Obtaining a used data amount that is a data amount used for processing the block;
    Calculating a processing load amount in each block based on the use data amount;
    Assigning an arithmetic unit to each block based on the load amount;
    Performing the process by an assigned computing unit;
    A data processing method comprising:
PCT/JP2017/000263 2016-01-15 2017-01-06 Arithmetic logic unit, x-ray ct device, and data processing method WO2017122590A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2016-005854 2016-01-15
JP2016005854A JP2017124081A (en) 2016-01-15 2016-01-15 Arithmetic unit, x-ray ct apparatus, and data processing method

Publications (1)

Publication Number Publication Date
WO2017122590A1 true WO2017122590A1 (en) 2017-07-20

Family

ID=59311363

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/000263 WO2017122590A1 (en) 2016-01-15 2017-01-06 Arithmetic logic unit, x-ray ct device, and data processing method

Country Status (2)

Country Link
JP (1) JP2017124081A (en)
WO (1) WO2017122590A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011122613A1 (en) * 2010-03-30 2011-10-06 株式会社 日立メディコ Reconstruction computing device, reconstruction computing method, and x-ray ct device
JP2015104676A (en) * 2013-11-29 2015-06-08 株式会社東芝 X-ray computer tomography apparatus and image reconstruction method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011122613A1 (en) * 2010-03-30 2011-10-06 株式会社 日立メディコ Reconstruction computing device, reconstruction computing method, and x-ray ct device
JP2015104676A (en) * 2013-11-29 2015-06-08 株式会社東芝 X-ray computer tomography apparatus and image reconstruction method

Also Published As

Publication number Publication date
JP2017124081A (en) 2017-07-20

Similar Documents

Publication Publication Date Title
Seeram Computed tomography: a technical review
CN106462985B (en) Utilize the iterative image reconstruction of the regularization parameter of acutance driving
US8520974B2 (en) Image processing method, an apparatus therefor and a tomographic apparatus for removing artifacts from a sectional image
US9706973B2 (en) Medical image processing apparatus and X-ray computed tomography apparatus
NL1034577C2 (en) X-ray tomography equipment.
JP6345486B2 (en) Photon counting X-ray computed tomography apparatus and medical image reconstruction program
WO2012147471A1 (en) Image processing device for medical use and image processing method for medical use
US10342503B2 (en) Medical image processing apparatus, X-ray diagnostic apparatus, and X-ray computed tomography apparatus
WO2014167935A1 (en) X-ray ct device, reconstruction operation device and reconstruction operation method
US10052077B2 (en) Tomography imaging apparatus and method
KR20190060054A (en) Scatter Correction Method and Apparatus of Cone-beam CT for Dental Treatment
WO2016017402A1 (en) Data processing method, data processing apparatus, and x-ray ct apparatus
JP2014144274A (en) X-ray computer tomographic photographing apparatus and medical image processor
JP7467253B2 (en) X-ray CT system and medical processing equipment
US9361712B2 (en) CT image generation device and method and CT image generation system
US20080247507A1 (en) Rebinning for Computed Tomography Imaging
WO2016132880A1 (en) Arithmetic device, x-ray ct device, and image reconstruction method
JP2010284350A (en) X-ray ct apparatus
US20190114772A1 (en) Image processing apparatus and medical image taking apparatus
US10089757B2 (en) Image processing apparatus, image processing method, and non-transitory computer readable storage medium
CN106157345B (en) Method for generating an image
WO2017122590A1 (en) Arithmetic logic unit, x-ray ct device, and data processing method
JP2018143574A (en) X-ray CT apparatus and image processing method
JP2017131336A (en) Photon counting type X-ray CT apparatus
JP7403994B2 (en) Medical image processing device and medical image processing method

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17738344

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17738344

Country of ref document: EP

Kind code of ref document: A1