Method and apparatus for mapping color flow velocity data into display intensities

A method and an apparatus for mitigating aliasing when imaging moving fluid or tissue using velocity Doppler shift data. To eliminate the effects of slight aliasing in the velocity mode, symmetrical (or non-directional) velocity/color maps are used to map positive and negative velocity data of the same magnitude to the same color and same display intensity. If the pulse repetition frequency is adjusted so that only subtle aliasing is present, an optimal frame averaging of the data can be achieved by removing the sign of the velocity data either before or during frame averaging.

FIELD OF THE INVENTION 
This invention generally relates to ultrasound imaging of the human anatomy 
for the purpose of medical diagnosis. In particular, the invention relates 
to a method and an apparatus for three-dimensional imaging of moving fluid 
or tissue in the human body by detecting Doppler shifting of ultrasonic 
echoes reflected from the moving fluid or tissue. 
BACKGROUND OF THE INVENTION 
Conventional ultrasound scanners create two-dimensional B-mode images of 
tissue in which the brightness of a pixel is based on the intensity of the 
echo return. In color flow imaging, the flow of blood or movement of 
tissue can be imaged. Measurement of blood flow in the heart and vessels 
using the Doppler effect is well known. The frequency shift of 
backscattered ultrasound waves may be used to measure the velocity of the 
backscatterers from tissue or blood. The change or shift in backscattered 
frequency increases when blood flows toward the transducer and decreases 
when blood flows away from the transducer. The Doppler shift may be 
displayed using different colors to represent speed and direction of flow. 
The color flow mode displays hundreds of adjacent sample volumes 
simultaneously, all color-coded to represent each sample volume's 
velocity. The color flow image may be superimposed on the B-mode image. 
The present invention is incorporated in an ultrasound imaging system 
consisting of four main subsystems: a beamformer 2 (see FIG. 1), processor 
subsystem 4, a scan converter/display controller 6 and a master controller 
8. System control is centered in master controller 8, which accepts 
operator inputs through an operator interface (not shown) and in turn 
controls the various subsystems. The master controller also generates the 
system timing and control signals which are distributed via a system 
control bus 10 and a scan control bus (not shown). 
The main data path begins with the digitized RF inputs to the beamformer 
from the transducer. The beamformer outputs two summed digital baseband 
receive beams. The baseband data is input to B-mode processor 4A and color 
flow processor 4B, where it is processed according to the acquisition mode 
and output as processed acoustic vector (beam) data to the scan converter/ 
display processor 6. The scan converter/display processor 6 accepts the 
processed acoustic data and outputs the video display signals for the 
image in a raster scan format to a color monitor 12. The scan 
converter/display controller 6, in cooperation with master controller 8, 
also formats multiple images for display, display annotation, graphics 
overlays and replay of cine loops and recorded timeline data. 
The B-mode processor 4A converts the baseband data from the beamformer into 
a log-compressed version of the signal envelope. The B function images the 
time-varying amplitude of the envelope of the signal as a grey scale using 
an 8-bit output for each pixel. The envelope of a baseband signal is the 
magnitude of the vector which the baseband data represent. 
The frequency of sound waves reflecting from the inside of blood vessels, 
heart cavities, etc. is shifted in proportion to the velocity of the blood 
cells: positively shifted for cells moving towards the transducer and 
negatively for those moving away. The color flow (CF) processor 4B is used 
to provide a real-time two-dimensional image of blood velocity in the 
imaging plane. The blood velocity is calculated by measuring the phase 
shift from firing to firing at a specific range gate. Instead of measuring 
the Doppler spectrum at one range gate in the image, mean blood velocity 
from multiple vector positions and multiple range gates along each vector 
are calculated, and a two-dimensional image is made from this information. 
The structure and operation of a color flow processor are disclosed in 
U.S. Pat. No. 5,524,629, the contents of which are incorporated by 
reference herein. 
The color flow processor produces velocity (8 bits), variance (turbulence) 
(4 bits) and power (8 bits) signals. The operator selects whether the 
velocity and variance or the power are output to the scan converter. The 
output signal is input to a chrominance control look-up table which 
resides in the video processor 22. Each address in the look-up table 
stores 24 bits. For each pixel in the image to be produced, 8 bits control 
the intensity of red, 8 bits control the intensity of green and 8 bits 
control the intensity of blue. These bit patterns are preselected such 
that as the flow velocity changes in direction or magnitude, the color of 
the pixel at each location is changed. For example, flow toward the 
transducer is indicated as red and flow away from the transducer is 
indicated as blue. The faster the flow, the brighter the color. 
The acoustic line memories 14A and 14B of the scan converter/display 
controller 6 respectively accept processed digital data from processors 4A 
and 4B and perform the coordinate transformation of the color flow and 
B-mode data from polar coordinate (R-.theta.) sector format or Cartesian 
coordinate linear array to appropriately scaled Cartesian coordinate 
display pixel data stored in X-Y display memory 18. In the B-mode, 
intensity data is stored X-Y display memory 18, each address storing three 
8-bit pixels. Alternatively, in the color flow mode, data is stored in 
memory as follows: intensity data (8 bits), velocity or power data (8 
bits) and variance (turbulence) data (4 bits). 
A multiplicity of successive frames of color flow or B-mode data are stored 
in a cine memory 24 on a first-in, first out basis. The cine memory is 
like a circular image buffer that runs in the background, continually 
capturing image data that is displayed in real time to the user. When the 
user freezes the system, the user has the capability to view image data 
previously captured in cine memory. The graphics data for producing 
graphics overlays on the displayed image is generated and stored in the 
timeline/graphics processor and display memory 20. The video processor 22 
multiplexes between the graphics data, image data, and timeline data to 
generate the final video output in a raster scan format on video monitor 
12. Additionally it provides for various greyscale and color maps as well 
as combining the greyscale and color images. 
A conventional ultrasound imaging system collects B-mode or color flow mode 
images in cine memory 24 on a continuous basis. The cine memory 24 
provides resident digital image storage for single image review and 
multiple image loop review and various control functions. The region of 
interest displayed during single-image cine replay is that used during the 
image's acquisition. The cine memory also acts as a buffer for transfer of 
images to digital archival devices via the master controller 8. 
In conventional diagnostic ultrasound imaging systems, the velocity color 
flow mode suffers from inherent limitations due to the nature of a sampled 
data system and the velocity estimator. In particular, the velocity mode 
suffers from aliasing where flow velocities exceeding PRF/2 are wrapped 
into and cannot be distinguished from other velocities. In addition, the 
wide variety of flow states in the human body which must be simultaneously 
imaged, such as slow-moving weak flow in the kidney and high-velocity 
strong flow in the aorta, prevent the system designer from optimizing the 
system a priori, and require the development of user optimization and/or 
adaptive optimization tools. 
Two-dimensional ultrasound images are often hard to interpret due to the 
inability of the observer to visualize the two-dimensional representation 
of the anatomy being scanned. However, if the ultrasound probe is swept 
over an area of interest and two-dimensional images are accumulated to 
form a three-dimensional volume, the anatomy becomes much easier to 
visualize for both the trained and untrained observer. In particular, 
three-dimensional ultrasound imaging of moving fluid or tissue would be 
advantageous. 
However, in three-dimensional renderings of velocity data, the projection 
algorithm is extremely sensitive to aliasing between two-dimensional 
frames. This is especially true when a maximum pixel projection algorithm 
is used because aliased data in one frame will often have a higher 
absolute velocity than the data in an adjacent frame without aliasing. 
Three-dimensional renderings accentuate the effect of aliasing. 
Furthermore, pulsatility in vessels from the cardiac cycle creates 
multiple images or dropouts in large vessels which provide inaccurate 
three-dimensional renderings. 
In a conventional ultrasound imaging system, wall filters and compression 
curves are applied to the beamformed color flow data, positive and 
negative velocities are estimated, post-processing such as frame averaging 
and thresholding are applied, and then the data is displayed using a 
non-symmetric color map whereby positive and negative flow states are 
represented by different colors and/or intensities. Aliasing in the 
velocity data shows up as rapid color transitions across the aliasing 
boundary which do not represent true flow states and may be extraneous 
information and a distraction to the user. 
Furthermore, in a conventional ultrasound imaging system, frame averaging 
of velocity data must consider the sign and magnitude of the data to 
determine whether the flow has aliased, and then adjust for the aliasing 
in the algorithm. Frame averaging across the alias boundary is difficult 
and an algorithm which must handle aliasing will have sub-optimal 
performance on non-aliased data. 
SUMMARY OF THE INVENTION 
The present invention is a method and an apparatus for mitigating aliasing 
when imaging moving fluid or tissue using velocity Doppler shift data. The 
invention is particularly useful in the imaging of blood flow in the human 
body. 
To eliminate the effects of slight aliasing in the velocity mode, the 
invention uses signed velocity data with symmetrical (or non-directional) 
velocity/color maps whereby positive and negative flow states of the same 
magnitude are mapped to the same color and same display intensity. These 
maps allow detection of severe aliasing through abrupt color changes in 
the map so that the user may adjust the system pulse repetition frequency 
(PRF) for optimal imaging, while providing a robust velocity image. 
In accordance with an alternative aspect of the invention, if the PRF is 
adjusted so that only subtle aliasing is present, an optimal frame 
averaging of the data can be achieved by removing the sign of the velocity 
data either before or during frame averaging. This is especially true for 
high-persistence frame averaging algorithms. 
The concepts of applying symmetric velocity/color maps and optimized, 
unsigned (velocity capture) frame averaging can be extended from 
two-dimensional to three-dimensional imaging to produce enhanced 
three-dimensional images which are relatively more robust to aliasing and 
vessel pulsatility. 
To image moving fluid or tissue in three dimensions in accordance with the 
invention, the velocity data is filtered using a frame averaging algorithm 
before the data is stored in a cine memory. A master controller retrieves 
selected frame-averaged velocity data corresponding to a volume of 
interest from the cine memory and performs an algorithm that projects the 
pixel velocity data onto a plurality of rotated image planes using a 
ray-casting technique. The projected velocity data resulting from each 
projection is then returned to the cine memory. The projected velocity 
data is later displayed using one or more colors, with the display 
intensity corresponding to each magnitude of velocity being determined for 
each color using a respective symmetric velocity/color map.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
Referring to FIG. 2, the master controller 8 comprises a central processing 
unit (CPU) 42 and a random access memory 44. The CPU 42 has read only 
memory incorporated therein for storing routines used in transforming an 
acquired volume of velocity and turbulence data into a multiplicity of 
three-dimensional projection images taken at different angles. The CPU 42 
controls the X-Y memory 18 and the cine memory 24 via the system control 
bus 10. In particular, the CPU 42 controls the flow of data from the X-Y 
memory 18 to the video processor 22 and to the cine memory 24, and from 
the cine memory to the video processor 22 and to the CPU 42 itself. When 
the ultrasound imaging system is operating in the color flow mode, each 
frame of color flow data, representing one of a multiplicity of scans or 
slices through the object being examined, is stored in the X-Y memory 18 
and in the next cycle is transmitted to video processor 22 and to cine 
memory 24. 
The X-Y display memory 18 has a frame-averaging filter implemented as a 
one-tap IIR (Infinite Impulse Response) filter. The function of the frame 
averaging filtering is to take data from two or more frames and perform an 
averaging in the temporal domain. The result of frame averaging is that 
sudden color changes in the velocity image are reduced. 
In accordance with one preferred embodiment of the present invention, the 
frame-averaging filter comprises a look-up table of output values which 
represent frame-averaged data. This frame-averaged data is generated 
off-line using the algorithm depicted in FIG. 7. The outputs Y, computed 
in accordance with the algorithm are stored as part of the look-up table. 
The frame-averaging circuit comprises a random access memory (RAM) located 
on the X-Y display memory board. The RAM has two inputs and an output. The 
look-up table is stored in the RAM. One input receives the current frame 
of non-frame-averaged pixel data. The other input receives the previous 
frame of frame-averaged pixel data via a time delay device which delays 
the previous frame data by a time equal to the inverse of the frame rate. 
The frame-averaging filtering function is implemented off-line by the 
algorithm depicted in FIG. 7. The filter outputs are stored on-line in a 
form of the look-up table. The algorithm comprises a coefficient select 
step 26 in which persistence coefficients are computed and selected. The 
coefficient selection is a function of the acoustic frame rate, the number 
of focal zones and the desired persistence level. These factors are 
grouped together and indicated in FIG. 6 as an "LUT SELECT" input. 
In the algorithm, the selected persistence coefficient p is output to one 
input of a first multiplier 28. The other input of multiplier 28 
represents the unfiltered current frame input X.sub.n. Thus the output of 
multiplier 28 is the product pX.sub.n. As a result of the coefficient 
selection step 26, the value (1-p) is output to one input of a second 
multiplier 30. The other input of multiplier 30 represents the 
frame-averaged previous frame output Y.sub.n-1 from a time delay device 
34, which provides a delay equal to the inverse of the frame rate. Thus, 
the output of multiplier 30 is the product (1-p)Y.sub.n-1. The outputs of 
both multipliers are input to a summer 32, which in turn yields the 
frame-averaged current frame output: 
EQU Y.sub.n =pX.sub.n +(1-p)Y.sub.n-1 (1) 
In accordance with the first preferred embodiment of the invention, the RAM 
chip is loaded with a subset of a multiplicity of look-up tables which are 
generated off-line and contain the output values Y.sub.n. The look-up 
tables are designed for specific operating parameters and are, as 
previously indicated, a function of the acoustic frame rate, the number of 
focal zones and the desired persistence level. 
Each look-up table consists of a multiplicity of output values Y.sub.n 
which were generated off-line by the frame-averaging algorithm of the 
first preferred embodiment. In response to the selection of various 
operating parameters by the system operator, the appropriate look-up table 
is downloaded into the RAM chip. This look-up table is then addressed by 
the combined inputs of the unfiltered current frame input X.sub.n and the 
frame-averaged previous frame output Y.sub.n-1 to select the outputs 
Y.sub.n which are the result of the off-line frame-averaging filtering 
function. The look-up tables are designed to produce the same output 
regardless of the sign of either input X.sub.n or Y.sub.n-1. 
In accordance with the frame-averaging method of the first preferred 
embodiment, the output values Y.sub.n are precomputed using persistence 
coefficients which are a function of the normalized difference 
.DELTA..sub.norm between the signal levels of the previous frame and the 
current frame. This is achieved by taking the absolute difference between 
the signal levels of the current frame and the previous frame and dividing 
the result by the arithmetic (or geometric) mean of the two data: 
EQU .DELTA..sub.norm =.vertline.X.sub.n -Y.sub.n-1 
.vertline./(.vertline.X.sub.n +Y.sub.n-1 .vertline./2) (2) 
The result of Eq. (2) is used to determine the amount of persistence in the 
image. The persistence is defined by how much of the data in the previous 
and current frames are to be used to determine the output signal Y.sub.n 
(see Eq. (1)), where the persistence coefficient p is either: 
EQU p=1-f(-((.DELTA..sub.norm -k.sub.1)k.sub.2)+k.sub.4).sup.k3(3) 
or 
EQU p=k+f(((.DELTA..sub.norm -k.sub.1)k.sub.2)+k.sub.4).sup.k3 (4) 
where f is a nonlinear function, and k, k.sub.1, k.sub.2, k.sub.3 and 
k.sub.4 are constants having values dependent on the number of active 
transmit focal zones, the acoustic frame rate and persistence level 
selected by the system operator. The preferred f function is the 
exponential (exp) function for Eq. (3) and the hyperbolic tangent (tanh) 
function for Eq. (4). The preferred method for precomputing the 
frame-averaged output values uses persistence coefficients generated in 
accordance with Eq. (4) using the tanh function. 
An output value Y.sub.n is computed for each possible pair of X.sub.n and 
Y.sub.n-1 values for each one of a multiplicity of sets of operating 
conditions. The output values Y.sub.n are stored as separate look-up 
tables in system memory, one unique look-up table for each set of 
operating conditions. The appropriate look-up table is stored in the RAM 
chip in response to selection of the desired operating conditions, e.g., 
acoustic frame rate, number of focal zones and persistence level, by the 
system operator. The pixel data is then frame-averaged in accordance with 
the filter output values read from the look-up table for as long as the 
selected operating parameters remain in effect. The input data can be 
either scan-converted frame data or acoustic line data 
(non-scan-converted). 
In the case of two-dimensional imaging, the frame-averaged velocity data is 
output to the video processor 22. In accordance with a second preferred 
embodiment in which the frame averaging algorithm averages signed inputs 
and thus outputs signed Y.sub.n values, the video processor incorporates a 
symmetric velocity/dolor map of the type shown in FIG. 8. A separate 
symmetric velocity/color map is stored in the video processor for each 
color used to display the velocity image. Each velocity/color map is 
stored as a look-up table having display intensity values which are 
addressed by the velocity data input to the table. The velocity/color map 
is symmetric in the sense that positive and negative Y.sub.n values of the 
same magnitude are mapped to the same color and same display intensity. 
The preferred embodiment of the invention described above is especially 
beneficial in mitigating the deleterious effects of aliasing in 
three-dimensional velocity projection imaging. The method for performing 
such projection imaging is schematically depicted in FIG. 3. 
In the case where flow velocity projection images are to be reconstructed, 
a stack of frames of pixel data, representing the scanned object volume, 
is stored in section 24A of cine memory 24 (see FIG. 2). During 
initialization (see step 26 in FIG. 3), the CPU 42 retrieves from cine 
memory section 24A only the color flow data corresponding to an object 
volume of interest. This is accomplished by retrieving only the color flow 
data in a region of interest from each selected frame. The color flow data 
corresponding to the region of interest from each one of a multiplicity of 
selected frames forms a source data volume of interest. 
Preferably, the source data volume of interest comprises those pixels 
having a velocity component within a predetermined range, e.g., having 
non-zero velocity values. The velocity data in the source data volume is 
then used to reconstruct projected images taken at different viewing 
angles. 
The velocity projections are reconstructed in CPU 42, which performs a 
series of transformations using the ray-casting algorithm disclosed in 
U.S. Pat. No. 5,226,113. The successive transformations represent maximum, 
minimum or averaged velocity projections made at angular increments, e.g., 
at 10.degree. intervals, within a range of angles, e.g., +90.degree. to 
-90.degree.. However, the angular increment need not be 10.degree.; nor is 
the invention limited to any particular range of angles. 
In accordance with the ray casting technique employed in the present 
invention, volumetrically rendered projection images of a sample 50 (see 
FIG. 4) are displayed from any arbitrary viewing angle, e.g. a spherical 
projection angle denoted by angle parameters (.theta.,.phi.), where 
.theta. is the angle that an extension 58' of a viewing ray 58 makes upon 
the X-Y plane, and .phi. is the angle of ray 58 with respect to extension 
58', by scanning an object volume 52 with an ultrasound transducer. Sample 
volume 52 is scanned in such a manner as to create a series of stacked, 
contiguous slices or sheets OS.sub.1, OS.sub.2, . . . , OS.sub.k, each of 
which contains the same number of object volume elements (voxels) OV. Each 
voxel has a rectangular profile in the sheet plane (say, the X-Y plane); 
while the complementary sides may be of equal length S, so that this 
profile may be square, the sheet thickness T is generally not equal to the 
length of either side. Thus, the first object slice OS.sub.1 contains a 
first multiplicity of object voxels OV.sub.ij,1, where i and j are the 
respective X-axis and Y-axis positions of the voxel. Similarly, the second 
object slice OS.sub.2 contains object voxels OV.sub.ij,2. An arbitrary 
object slice OS.sub.k contains voxels OV.sub.ij,k, where k is the Z-axis 
position of that voxel. 
Each object voxel OV.sub.ij,k is analyzed and the data value (intensity, 
velocity or power) thereof is placed in a corresponding data voxel 
DV.sub.ij,k of a data volume 54. Data volume 54 is a simple cubic i,j,k 
lattice, even though the thickness of each object slice OS.sub.k and each 
object voxel face size (the size of the voxel in the X-Y plane) will 
generally not be the same. That is, not only may the object volume have 
different X, Y and Z dimensions for each voxel, but also the total number 
of voxels in any dimension need not be the same. For example, a typical 
ultrasound three-dimensional scan may provide each slice with a 
256.times.256 matrix of voxels, and may involve 128 slices. 
In accordance with a known technique employed by CPU 42, an image of object 
50 is projected (step 34 in FIG. 3) by ray casting toward the image plane 
56 from a lattice point in data voxel DV.sub.ij,k. For convenience, the 
lattice point may, for example, be the data voxel vertex closest to the 
data volume origin. The cast ray 62 leaves the data volume 54 at a 
projection angle with spherical angular parameters (.alpha.,.beta.) 
transformed from the spherical angular parameters (.theta.,.phi.) at which 
the object volume 52 is viewed. These two angles are not the same, due to 
the geometric distortion caused by use of a cubic data volume 54 with a 
non-cubic object volume 52. However, the projected ray 62 has an x-y plane 
extension 62' which makes an angle .alpha. with respect to the x axis of 
the data volume, and ray 62 makes an angle .beta. with the Z axis. Thus, 
angles .alpha. and .beta. are determined by a rotation process (to be 
discussed hereinbelow) to correspond to viewing the object volume 52 at 
the desired viewing angle (.theta.,.phi.) (assuming operation in spherical 
coordinates). Each of the rays 62 is cast from the data volume voxel 
lattice point toward the image plane. 
While all rays 62 impinge upon some portion of the image plane, only those 
rays falling within the image plane pixel 60a under consideration are 
allowed to contribute to the data for that image plane pixel. Thus, having 
chosen a portion of the object volume 52 to view and a viewing angle 
(.theta.,.phi.) at which to view this selected object volume, the data 
value in each voxel of the corresponding portion of the data volume is 
cast at some angle (.alpha.,.beta.) (corresponding to viewing the 
distorted data volume with respect to the object volume) toward the image 
plane 56. The data value in a first voxel (say, voxel DV.sub.i,1,k) is 
thus back-projected along ray 62a, in accordance with the .theta. and 
.phi. values chosen. This ray 62a impinges upon image plane 56 at a 
position 64a within pixel 60a, and, as this is the first ray to impinge 
upon this pixel, the intensity, velocity or power value of the incident 
data is attributed to (stored in) the desired pixel 60a. The next voxel in 
the data volume (say voxel DV.sub.i,2,k) has its associated ray 62b 
projected at the same angular (.alpha.,.beta.) configuration from the 
voxel lattice point, and its position 64b upon image plane 56 is noted. 
Assuming that impingement position 64b is within desired pixel 60a, the 
second projected value is (for a maximum pixel projection) compared with 
the now stored first value and the larger value is placed in storage for 
pixel 60a. It will be understood that, for an averaged-value projection, 
the value of a current projected data voxel is added to the sum already 
stored for the image panel pixel upon which that projection ray impinges, 
and the sum is eventually divided by a counted number of such impinging 
rays for that pixel. As each voxel in the selected data volume is 
sequentially entered and projected toward image plane 56, a data volume 
voxel (say, voxel DV.sub.i,3,k) is eventually projected along its 
associated ray 62p and does not impinge within the desired pixel 60a, so 
that its data value (e.g., intensity) is not compared to the data value 
presently stored for pixel 60a. The maximum data value for pixel 60a is 
now established, for that projection of the data at the particular 
(.theta.,.phi.) three-dimensional angle of view. However, the ray 62p 
does, in fact, have an impingement point 64p which falls within another 
image plane pixel (say, pixel 60b) and is compared to the data value 
stored therein and the larger value is, after the comparison, returned to 
storage for that pixel. All data values are reset to zero when a new 
projection is to be taken. Thus, each of the image plane pixels is reset 
at the start of an image projection procedure, and all of the data volume 
voxels (in the entire space or in the selected portion, as set by the 
portion of the object volume 52 selected) are individually and 
sequentially scanned. The data value in each data voxel DV is projected 
through an associated ray 62 to impinge upon image plane 56 in one pixel 
60 thereof, with the maximum value in each pixel being compared between 
the present value of the ray-casted data volume voxel, to determine the 
larger thereof, which larger value is then stored as part of the maximum 
value image. In practice, for a maximum pixel projection, the stored 
maximum value will be changed only if the newly cast data voxel value is 
greater than the data value already stored for the image plane pixel upon 
which the newly cast ray impinges. 
In accordance with another aspect of the foregoing technique, the data 
projection is scaled (step 36 in FIG. 3) and any anisotropy between the 
object volume and the image plane is removed by only a single set of 
calculations after back projection is complete. Referring now to FIG. 5, 
because object volume 52 is a real volume while data volume 54 is an 
abstract concept, it is necessary to determine the amount of distortion of 
the data projection due to the presentation of the cubic data volume 
lattice 54 at a different angle .gamma., in a first plane, then the angle 
.psi. at which an arbitrary viewing direction 66 will be positioned with 
respect to both the object volume 52 and data volume 54. The apparent 
dimensions of each voxel are going to change as the effective elevation 
angles .psi. and .gamma. change. If the aspect ratio A (defined as the 
ratio of the actual slice thickness T in object volume 52 to the actual 
pixel size S in the same object volume 52) is not unity (i.e., is greater 
or less than unity, as the object voxel is not a cubic voxel, as will be 
encountered in data volume 54), then the angles .psi. and .gamma. of 
elevation will be different, and the effective elevation angle .psi. in 
the data volume will be different than the actual elevation angle .gamma. 
in the object volume. Rotation of the data is in accordance with an object 
elevation angle obtained by: 
EQU .psi.=tan.sup.-1 (1/A tan .gamma.!) (5) 
Thereafter, the projected data can be scaled to have the correct height (if 
rotation is about the horizontal axis) in the object volume, by 
multiplication of all projected data heights by the elevation scale 
factor. The old projected image height H can be corrected with an 
effective scale factor E.sub.s, where 
EQU E.sub.S =(Acos.gamma.).sup.2 + sin .sup.2 .gamma. (6) 
and the new height H'=H.multidot.E.sub.s. The same is true for the width 
when rotation is about the vertical axis. 
Utilizing the above relationship, the rotation of data volume angles 
(.alpha.,.beta.) becomes angles (.theta.,.phi.), because the distortion is 
only along one axis, so that angle .theta. equals angle .alpha.. The 
elements of the 3.times.3 rotational matrix M! can be determined, and 
given the two involved rotational angles, these relationships are used to 
determine the data volume-to-image plane transformations: 
EQU X'=M1X+M2Y+M3Z+XO (7) 
EQU Y'=M4X+M5Y+M6Z+YO (8) 
where M1-M6 are the first two rows of the rotational matrix (i.e., M1=-sin 
.theta., M2=cos .theta. sin .psi.,M3=0, M4=-Cos .theta. sin .psi.2, 
M5=-sin .theta. sin .psi., and M6=cos .psi.), X' and Y' are the locations 
on the image plane of the projected point, and XO and YO are image plane X 
and Y offsets (respectively referenced to the X and Y lowest value points) 
at which the selected portion of the image plane begins. After the data is 
projected onto image plane 56, the image is scaled to correct for the 
effect of the anisotropic object voxels. It will be seen that factors 
M1-M6 can be precalculated (step 32 in FIG. 3) at the beginning of a 
projection (given .theta. and .phi.) and used for all rotation 
calculations. 
FIG. 6 shows means for performing the above-described ray-casting technique 
which are incorporated in the master controller 8 (or a separate dedicated 
processor). Such means comprise a three-dimensional data memory means 70 
for storing slice data as received at a data input 70a from cine memory 
24. The data associated with each object voxel is stored at the address of 
that voxel, responsive to voxel address input information received at a 
voxel address input 70b from a CPU 74. Once the data memory means is 
filled (corresponding to the transfer of all required data from object 
volume 52 to data volume 54), the object volume portion of interest is 
selected and data establishing its starting corner and extent in the X, Y 
and Z directions is sent from CPU 74 to an input 72a of an address 
generator means 72. Means 72 sequentially provides, at an address output 
72b, the X,Y,Z addresses of each voxel within the object volume selected. 
Output 72b is connected to an output-data-address input 70c of data memory 
means 70, causing the stored intensity data for that one voxel then 
addressed to be output from data memory means output 70d. The sequence of 
voxel X,Y,Z addresses is also provided to a first input 76a of a 
rotational parameter calculation means 76, which receives angle 
(.alpha.,.beta.) information via CPU 74 as the calculated matrix element 
M1-M6 values, to provide at an output 76c the address X',Y' of the image 
plane pixel corresponding to that object X,Y,Z pixel when viewed at a 
selected viewing angle (.theta.,.phi.). The viewing angle (.theta.,.phi.) 
information is entered into the system and processed by CPU 74. The 
results are entered into inputs 78b and 78c of a viewing matrix means 78, 
to provide matrix elements M1-M6 at its output 78a and thence to 
rotational parameter calculation means 76. The image plane pixel address 
X',Y' appears at an address input 80a of a frame buffer acting as an image 
plane memory means 80. Simultaneously, the intensity data, projected from 
the data volume to the projection plane, appears at the image plane memory 
means new data input 80b, from three-dimensional data memory means output 
70d. This data also appears at the new data input 82a of a data comparator 
means 82. Intensity data previously saved in the image plane memory means 
80 for that address, at input 80a, appears at an old data output 80c, and 
thence at an old data input 82b of the comparator means. The old and new 
data at inputs 82b/82a, respectively, are compared in means 82 and an 
output 82c thereof is enabled to a selected logic condition (e.g., a high 
logic level) if the new data at input 82a has greater amplitude than the 
old data at input 82b. Output 82c is connected to a substitute-control 
data input 80d of the image plane memory means, to cause the data stored 
at the address controlled by input 80a to be changed to accept the new 
data at input 80b, if the substitute-data control input 80d is at the 
selected logic level. Thus, the stored data is initially reset, as by a 
signal through a data/control port 80e (from CPU 74), and the data of 
greatest value is stored for each image plane pixel location X',Y' 
responsive to a comparison indicating that the new data exceeds the value 
of the previously stored old data. After all of the selected addresses are 
sequentially scanned by address generator 72, the data stored in image 
plane memory means 80 is scaled in CPU 74, and the scaled image plane data 
can be withdrawn from memory means 80 for display, permanent storage or 
similar purposes. 
In accordance with the invention, the method shown in FIG. 3 is applied to 
the color flow velocity data for the data volume of interest retrieved 
from the cine memory. Each pixel in the projected image includes a 
respective transformed velocity datum derived by projection onto a given 
image plane. In addition, at the time when the cine memory was frozen by 
the operator, the CPU 42 stored the last frame from the X-Y memory 18 at 
multiple successive addresses in section 24B of cine memory 24. The 
projected image data for the first projected view angle is written into 
the first address in cine memory section 24B, so that the projected image 
data in a region of interest is superimposed on the background frame. This 
process is repeated for each angular increment until all projected images 
are stored in cine memory section 24B, each projected image frame 
consisting of a region of interest containing transformed data and, 
optionally, a background perimeter surrounding the region of interest 
consisting of background frame data not overwritten by region-of-interest 
transformed data. The background image makes it clearer where each 
displayed projection is viewed from. The operator can then select any 
projected image for dislay. In addition, the sequence of projected images 
can be replayed on the display monitor to depict the object volume as if 
it were rotating in front of the viewer. 
In accordance with a preferred embodiment of the invention, the ultrasound 
imaging system has a plurality of different projection modes. For example, 
the projection may include maximum or minimum value pixels. In accordance 
with a further mode, the ray-casting technique can be employed to provide 
a surface rendering. 
When forming the velocity source data volume, two types of gating can used 
to identify the frames or scans from which velocity data will be taken. If 
the system operator is interested in blood flow at some point in the 
patient's cardiac cycle, the system is connected to receive an output from 
a cardiac monitor, to which the patient is connected. Every cycle the 
monitor outputs a signal in response to the occurrence of a predetermined 
characteristic in the cardiac cycle waveform. In response to every output 
from the monitor, the master controller stores in cine memory the frame 
which was present in the X-Y display memory when the trigger event 
occurred or at a predetermined delay interval subsequent to the trigger 
event. Thus, one frame per cycle is stored in cine memory. Alternatively, 
multiple successive frames are stored in cine memory at the acoustic frame 
rate in response to the occurrence of a predetermined characteristic in 
the cardiac cycle waveform. 
Regardless of which frame acquisition mode is employed, the source data 
volume is formed by retrieving from cine memory the pixel data 
corresponding to a region of interest in each frame and then processing 
the pixel data to acquire only pixel data having a velocity component 
lying within a predetermined threshold range, e.g., a non-zero velocity 
component. This velocity information is then projected onto various 
imaging planes to reconstruct projected velocity images for display. 
The foregoing preferred embodiment has been disclosed for the purpose of 
illustration. Variations and modifications of the basic concept of the 
invention will be readily apparent to those skilled in the arts of 
ultrasound imaging or computer graphics. All such variations and 
modifications are intended to be encompassed by the claims set forth 
hereinafter.