Upload
david-levin
View
213
Download
1
Embed Size (px)
Citation preview
Techniques for efficient, real-time, 3D visualization of multi-modality
cardiac data using consumer graphics hardware
David Levina, Usaf Aladlb, Guido Germanoc,d, Piotr Slomkac,d,*
aDepartment of Medical Biophysics, University of Western Ontario, London, Ontario, CanadabDepartment of Diagnostic Radiology and Nuclear Medicine, University of Western, Ontario, London, Ontario, Canada
cDepartment of Imaging and Medicine, Cedars-Sinai Medical Center, Los Angeles, CA, USAdDepartment of Medicine, David Geffen School of Medicine, UCLA, Los Angeles, CA, USA
Received 15 September 2004; revised 22 February 2005; accepted 22 February 2005
Abstract
We exploit consumer graphics hardware to perform real-time processing and visualization of high-resolution, 4D cardiac data. We have
implemented real-time, realistic volume rendering, interactive 4D motion segmentation of cardiac data, visualization of multi-modality
cardiac data and 3D display of multiple series cardiac MRI. We show that an ATI Radeon 9700 Pro can render a 512!512!128 cardiac
Computed Tomography (CT) study at 0.9 to 60 frames per second (fps) depending on rendering parameters and that 4D motion based
segmentation can be performed in real-time. We conclude that real-time rendering and processing of cardiac data can be implemented on
consumer graphics cards.
q 2005 Elsevier Ltd. All rights reserved.
Keywords: 3D; Hardware-accelerated; Volume rendering; Segmentation; Multi-modality; Real-time
1. Introduction
In clinical practice, detection and evaluation of coronary
artery disease can be performed using several imaging
modalities such as Single Photon Emission Tomography
(SPECT) [1,2], Positron Emission Tomography (PET) [3],
cardiac Computed Tomography (CT) [4,5], cardiac Mag-
netic Resonance Imaging (cMRI) [6] or echocardiography
[7]. Patient examinations often involve multiple combi-
nations of these modalities [8]. Such information can be
presented in the form of dynamic 3D displays (4D displays).
However, efficient, interactive visualization of such cardiac
information in a uniform fashion is challenging because of
the dynamic, multi-frame character of the data,
distinct character of the images obtained by different
modalities, presence of extra cardiac structures and often
0895-6111/$ - see front matter q 2005 Elsevier Ltd. All rights reserved.
doi:10.1016/j.compmedimag.2005.02.007
* Corresponding author. Address: AIM Program, Department of Imaging
#A047, Cedars-Sinai Medical Center, 8700 Beverly Boulevard, Los
Angeles, CA 90048, USA. Tel.: C1 310 423 4348; fax: C1 310 412 0173.
E-mail address: [email protected] (P. Slomka).
large (O100 Mb, 512!512 matrix size) datasets. Pre-
viously such dynamic volume rendering abilities were
limited to high-end, expensive 3D graphics workstations [9]
but new consumer graphics processors, such as the Radeon
9700 Pro from ATI and the Geforce FX from Nvidia can
provide similar rendering power on desktop PCs [10,11].
This computational power is already leveraged for such
professional 3D graphics applications as computer anima-
tion and special effects [12] in order to provide real-time
feedback to artists [13]. The processing power of these cards
should also be well suited for the intensive task of
processing and visualizing medical imaging data.
In this study we have explored the newly developed
programmable rendering capabilities (OpenGL vertex and
texture shaders) of these cards to implement volume
rendering as well as other methods for the visualization of
cardiac anatomy and function in real-time. We demon-
strate the implementation of accelerated, high-quality
techniques for interactive 4D volume visualization of
16-bit data, coronary angiography, MRI cine data, fused
multi-modality data and functional (SPECT and PET)
data. We utilize 3D textures with hardware-accelerated
trilinear interpolation and texture shaders to implement
the presented techniques. These techniques allow
Computerized Medical Imaging and Graphics 29 (2005) 463–475
www.elsevier.com/locate/compmedimag
D. Levin et al. / Computerized Medical Imaging and Graphics 29 (2005) 463–475464
physicians to efficiently visualize multi-modality 4D
cardiac scans in real-time using an inexpensive PC
platform with the latest 3D graphics cards.
2. Methods
All the presented algorithms were implemented using
Microsoft Visual CCC6.0. The visualization algorithms
were implemented using the OpenGL application program-
ming interface (API) [14]. Dynamic volume rendering,
fusion of volumes with surfaces, vessels and slices as well as
multi-planar display of multi-series cMRI were combined in
a single software package (Volviz) providing a unified
platform for real-time visualization of multi-modality
cardiac data.
2.1. Volume rendering
Volume rendering is the direct rendering of data
represented as 3D scalar fields [15]. Displaying 3D medical
imaging volumes is traditionally done using complicated
software algorithms [9,16]. In contrast, we have
implemented three hardware-accelerated algorithms
(volume rendering with axis-aligned slices, volume render-
ing with view-aligned slices and pre-integrated volume
rendering) that allow real-time performance. The presented
volume rendering methods exploit the hardware-accelerated
texturing capabilities of OpenGL [17]. Volume rendering
can be implemented using either 2D or 3D texture mapping
[11,18].
2.1.1. Volume rendering with axis-aligned slices
A baseline volume rendering algorithm using 2D textures
[18] was implemented to ensure our software would run on
older or lower-end graphics hardware such as that found in
many laptops. This algorithm has been described previously
[10,19] and was implemented for compatibility reasons. The
2D texture-based algorithm has several drawbacks. The first
is that it requires three individual sets of volume data to be
stored in texture memory for each imaging volume.
Secondly, it requires axis-aligned slicing of the volume
data during rendering and this can cause artifacts in the final
display.
2.1.2. Volume rendering with view-aligned slices
This algorithm requires the GL_TEXTURE_3D_EXT
OpenGL extension. This extension adds 3D texture support
to OpenGL. Instead of storing a volume as multiple stacks
of 2D textures, the dataset is stored as a single 3D texture
using the glTexImage3D() OpenGL method [20]. The
advantage of this approach is that it requires only one
copy of the volume data to be stored (as opposed to three
copies in the axis-aligned algorithm) and it takes advantage
of hardware-accelerated trilinear interpolation to allow 3D
interpolation between adjacent slices.
In order to render the volume, view-aligned slices are
used. A stack of uniformly spaced slices (polygons, but not
necessarily rectangular) is created by intersecting the
viewing ray (the ray perpendicular to the view-plane) with
the volume. This creates a stack of slices that is parallel to
the view-plane but not necessarily aligned with one of the
three major coordinate axes. These slices are drawn in a
back-to-front order and blended as described by Eq. (1). The
spacing between the slices determines the quality of the
resulting image.
I Z ð1 KaÞIb KaIf (1)
where a is the transparency of the voxel being drawn, Ibis
the intensity of the background voxel, initially set to 0 and If
is the intensity of the voxel being drawn.
The blending can be done in hardware by using the
OpenGL GL_SRC_ALPHA, GL_ONE_MINUS_SRC_AL-
PHA blending option. The spacing between the slices
determines the quality of the image.
2.1.3. Pre-integrated volume rendering using view-aligned
slices and texture shaders
One of the newest advances in consumer level graphics
cards is the addition of programmable shaders. Shaders are
small programs which can be used to replace a graphics
card’s fixed rendering pipeline with specialized operations
[21]. This volume rendering algorithm uses shaders to
evaluate the volume rendering integral and achieve even
higher volume rendering quality. Texture shaders are
accessed using the ARB_fragment_program [14] extension
for OpenGL.
The pre-integrated volume rendering algorithm [11] is
similar to the one described in Section 2.1.2. The volume is
stored as a 3D texture and view-aligned slices are used to
render the volume on the screen. The difference is in how
the texture is applied to each slice. In the standard algorithm
the intensity of each slice is read directly from the texture
and drawn to the screen. Pre-integrated volume rendering
renders slabs of volume instead of slices. It does this by
integrating the intensities between adjacent slices and
drawing such composite intensity values to the screen [11].
This approach requires the creation of an additional 2D
texture (integral lookup texture), which stores the integrals
obtained from the volume’s color transfer function (the
integrals for the Red, Green, Blue and Alpha transfer
functions can be stored in a single RGBA pixel) such that
Integral Lookup Textureðx;yÞZ
ðy
xColor Transfer Function
(2)
where x and y are the bounds of the integration and also the
position (x,y) where the integrated value will be stored in the
integral lookup texture.
The algorithm’s name is derived from the fact that the
integral lookup texture is pre-computed when the volume is
D. Levin et al. / Computerized Medical Imaging and Graphics 29 (2005) 463–475 465
loaded; hence the color transfer function has been pre-
integrated.
In order to save texture memory, a 256!256 2D texture
was used for the integral lookup texture, allowing us to use a
256-color (8-bit) color table for each volume. We created
this texture according to the following formulas for the
opacity (a) and color (C) values stored in the 2D texture
aðx; yÞz1 Kexp Kd
y KxðTðxÞKTðyÞÞ
� �(3)
where x and y are the texture coordinates of the 2D texture, d
is the distance between the slices intersected with the
volume and
TðxÞ Z
ðx
0tðsÞds
where t(s) is the opacity component of the color table.
Cðx; yÞzd
y KxðKðyÞKKðxÞÞ (4)
where x and y are the texture coordinates of the 2D texture, d
is the distance between the slices intersected with the
volume and
KðxÞ Z
ðx
0tðsÞcðsÞds
where t(s) is the opacity component of the color table and
c(s) is the color component.
When the volume is rendered, a stack of view-aligned
slices is calculated but instead of calculating one texture
coordinate for each vertex, two are calculated. A ‘front’
texture coordinate is calculated at the point of intersection
with the volume and a ‘back’ coordinate is derived by
adding a distance d to the ‘front’ coordinate in a direction
perpendicular to the view-plane. Eq. (2) is calculated by
performing a dependent texture lookup using an OpenGL
texture shader. The intensities of the front and back voxels
are used to look up the corresponding integrated value in the
integral lookup texture. This effectively renders the volume
using a series of slabs with an arbitrary thickness d. Higher
image quality is achieved because instead of only allowing
voxels to be one of 256 colors, there is a palette of 2562
available.
2.1.4. Real-time diffuse and specular lighting of volume
rendered data
OpenGL texture shaders can also be used to perform real-
time lighting calculations thus providing accurate shading
of volume data [11]. This technique can be applied to all the
described volume rendering algorithms provided the appro-
priate hardware features are available. The normal vector at
each voxel is computed using a three dimensional Sobel
filer, applied at that (x,y,z) point. If RGBA textures are used
to store the volume, the R component of the texture can be
used to store intensity of each voxel while the GBA
components can be used to store the voxel’s normal vector.
A texture shader can then be used to calculate the lighting
equation (Eq. (5)).
I Z IaC C IdCðn,lÞC IsCðn,hÞx (5)
Where
I is the final intensity of the voxel,
Ia is the ambient light intensity,
Id is the diffuse light intensity,
Is is the specular light intensity,
C is the color of the voxel,
n is the voxel’s normal vector,
l is the light source vector,
h is the vector half way between the light source vector
and the view point vector
x is the specular exponential value.
2.1.5. Virtual reality rendering of CT data
Recent volume rendering workstations provide a
special virtual reality (VR) rendering mode [22] using
software volume rendering techniques. This mode uses
special color tables to enhance the appearance of
volumetric data and is used primarily for CT data due
to the predictable intensity values of specific tissues in
Hounsfield Units (HU). Because each tissue in the body
belongs to a particular HU range, colors can be assigned
to specific HU values and thus specific tissues. Such VR
volume rendering can be used with all three presented
hardware-based rendering techniques. Linearly interpolat-
ing between color ranges provides accurate color transfer
functions for volume rendering. In order to enhance the
appearance of the volume we also perform a 3!3!3
averaging of voxel normal vectors. This gives the
rendered volume a smoother appearance when shading
is applied.
2.1.6. Volume clipping
Due to the 3D nature of a volume rendered display,
extraneous parts of the volume often obscure more
important features. Often, interactive, real-time 3D clipping
is required to display images at a given cross-section. We
have implemented two methods to clip 3D volume data in
real-time, using graphics hardware support.
The first method uses OpenGL clip planes [23]. By
supplying OpenGL with a plane normal and a point in 3D
space, a clipping plane can be created. Any section of a
polygon in front of this plane will not be rendered. As an
enhancement to this basic OpenGL functionality, we also
render a polygon along the clipping plane, textured with the
slice of the volume in the orientation of the intersecting
plane. This allows us to change the color table of the
clipping plane independently of the color table of the rest
of the volume and avoids unnecessary shading effects at
the clipped boundaries.
D. Levin et al. / Computerized Medical Imaging and Graphics 29 (2005) 463–475466
In the second approach, we allow the selection of a cubic
volume-of-interest (VOI) in real-time. The amount of
visible volume depends on the texture coordinates calcu-
lated at the vertices of each slice intersecting the volume.
For view-aligned slices, each slice is composed of at most
six vertices. This means that this texture coordinate
calculation can be done rapidly enough to allow user
adjustment of the VOI in real-time. By clipping the texture
coordinates against an arbitrarily aligned box, the VOI can
be aligned separately from the volume. Clipping provides a
performance advantage as well. Since clipped pixels are not
rasterized, a frame rate increase can be achieved be
visualizing only the critical portions of large datasets.
2.1.7. Hardware-accelerated 16-bit window and level
adjustment
OpenGL texture shaders may also be exploited to allow
interactive adjustment of the 16-bit window and level
display parameters for the 3D volume thus using the
volume’s full intensity range at the expense of some
performance.
The technique to achieve 16-bit window and level
capability requires the creation of a second RGB 3D texture.
In this texture the red component stores the lowest 8-bits of
the voxels 0 intensities and the green component stores the
highest 8-bits, thus allowing us to encode 16-bit voxel
intensity values. Additionally, we prepare a second 256!256, 2D texture to use as a lookup table. This texture is used
to store the window and level color table for the volume. We
use a 2D texture instead of a 1D texture because 1D textures
are of limited size in OpenGL and cannot store the 65,536
values required for true 16-bit window and level (Fig. 1).
One problem with this approach is that trilinear
interpolation cannot be used on the 16-bit 3D texture.
This is because there is no mechanism to force OpenGL to
interpolate the two 8-bit components of the texture as a
single value.
Under normal circumstances the volume is rendered
using any of the algorithms described above. When the user
adjusts the window and level we render the full-range 3D
First Byte Second Byte 0
Dependent 2DTexture
(8 bit Intensity)
3D RGBA256 x 2562D lookup texture
Fig. 1. The implementation of the 16-bit window and level algorithm using
graphics hardware. A full range 256!256 2D lookup texture is used to map
the 16-bit values stored in a 3D RGBA texture to 8-bit intensities for final
display.
texture by rendering the intensity in the 2D texture indexed
by the high and low order bytes of the 16-bit voxel intensity
(Fig. 1). As window and level are adjusted, the 2D texture’s
values are altered allowing the user to view the changes in
real-time. Since the window and level operation fits the
selected range of intensities into the displayable range of
the software, the original 3D texture can be reloaded with
the new 8-bit, user defined voxel intensities. This allows
trilinear interpolation to be used on the displayed 8-bit
values.
2.1.8. Cine volume rendering
In order to display the time-varying 3D data often
encountered in cardiac imaging, we store each volume of
the study as a separate 3D texture. For 3D texture-based
rendering methods, it is sufficient to bind each texture in a
cyclic manner. This provides excellent visual quality and
frame rate. However, for 2D texture-based rendering
methods a slightly different approach must be taken. This
is because in this rendering mode, three sets of textures must
be stored in memory. Storing numerous volumes in texture
memory would not be possible on current consumer video
cards. For example, a 512!512!100!6 study (the typical
size of a gated cardiac CT dataset) would require 1.89 Gb
when including the normal vectors for lighting. This is far
beyond the storage capabilities of today’s consumer
graphics cards, which typically provide 128–256 Mb of
total memory on the graphics card and can access up to
256 Mb of system memory for fast texture storage. There-
fore, for 2D texture based rendering, we load each set of
textures from main memory during the process of cinematic
3D display. This can provide interactive frame rates for
small to medium sized studies but large studies can strain
the interface between main memory and the video card. For
studies with larger matrix sizes than 256!256, sub-
sampling of cine studies was implemented.
In order to generate clinically acceptable frame rates
(O20 fps) regardless of volume size or technique used,
we need to cache each rendered frame in a series of 2D
textures. This allows fast cyclic rendering of quadrilateral
polygons textured with these images. Such textures are
prepared every time the appearance or orientation of the
rendered volume is altered.
2.1.9. Multi-modality fusion and volume rendering
Clinically useful fusion display of functional and
anatomical data can be implemented in the following
manner: an initial dataset is displayed using one of the
discussed volume rendering algorithms and the second
dataset is rendered as a set of fused slices on the sides of the
clipping box and clipping planes. This allows the useful
combination of anatomical (volume rendered) and func-
tional (slice) data. Rendering the second dataset on the sides
of the VOI and clipping planes is done to avoid rendering
obscured sections of the second volume and is accomplished
by rendering multi-textured polygons at these surfaces.
D. Levin et al. / Computerized Medical Imaging and Graphics 29 (2005) 463–475 467
2.2. Surface rendering of perfusion information
Often, results of cardiac segmentation and quantification
need to be presented as color-coded surfaces [24]. OpenGL
provides standard facilities for rendering and lighting surface
data and we have combined these with the described volume
rendering tools. Surface rendering techniques can be
combined with volume rendering efficiently using OpenGL.
2.3. 3D rendering of coronary arteries
Coronary arteries can be represented as a sequence of 3D
coordinates. Each artery is defined as a line of points with a
radius at each point. For visualization, we reconstructed
vessel data as a series of cylinders using the Parallel
Transport Frame algorithm [25]. The Parallel Transport
Frame works by translating a coordinate frame along a
curve and rotating the frame so it remains parallel with the
tangent of the curve. To reconstruct the arteries, we used a
circle as our frame and translated it along the artery paths
defined in each file. The position of the frame is calculated
by rotating it by an angle a around and an axis A where
A Z T1 !T2 (7)
a Z ArcCosðT1$T2Þ
ðjT1jjT2jÞ
� �(8)
where T1 is the tangent at the initial position of the frame
and T2 is the tangent at the translated position of the frame.
0.9 0.9 0.9
8.14.8 4.8
0.0
10.0
20.0
30.0
40.0
50.0
60.0
Fram
es P
er S
econ
d
Unclipped Clipped
512 Slices
3.5 1.85 1.8
33.1
19.0 19.0
0.0
10.0
20.0
30.0
40.0
50.0
60.0
Fram
es P
er S
econ
d
Unclipped Clipped
128 Slices
3D PI
Fig. 2. Frame rates obtained when rendering a CT dataset with varying numbers o
Integrated (PI) and Pre-Integrated with lighting (PI/w lighting) algorithms.
Since the arteries are made of cylinders the normal
vectors can be determined analytically. The model was lit
using the OpenGL lighting subsystem.
2.4. Motion-based segmentation of time-varying volumes
For dynamic cardiac data such as gated CT or gated
cMRI, we have explored a novel, semi-automatic approach
for clipping volumes, which allows separation of the cardiac
sub-volume from the surrounding tissue. One can assume
that in gated cardiac studies most of the voxels belonging to
the heart will be in motion and will exhibit a greater change
in intensity than voxels in the surrounding tissues [26]. In
order to exploit this feature for image segmentation, one can
calculate the standard deviation of the intensity of all voxels
over the course of the cardiac cycle and then remove those
which exhibit intensity variations that are below some
threshold. One can allow the user to interactively choose a
motion threshold that eliminates a maximum amount of
extraneous information without removing critical parts of
the volume. A hardware-accelerated version of this
algorithm can be implemented by preparing a 3D texture
that contains the pre-computed intensity variation of each
voxel. During the rasterization process a texture shader is
used to compare this value with the threshold value for each
voxel. If the value is below the threshold, the alpha of the
rendered voxel is set to 0, removing it from the display.
This method allows real-time motion threshold modification
of the motion-based segmentation algorithm.
1.8 0.9 1.0
16.6
9.5 9.5
0.0
10.0
20.0
30.0
40.0
50.0
60.0
Fram
es P
er S
econ
d
Unclipped Clipped
256 Slices
6.43.6 3.5
60.0
34.3 34.3
0.0
10.0
20.0
30.0
40.0
50.0
60.0
Fram
es P
er S
econ
d
Unclipped Clipped
64 Slices
PI/w lighting
f intersecting slices. Frame rates are shown for the 3D texturing (3D), Pre-
D. Levin et al. / Computerized Medical Imaging and Graphics 29 (2005) 463–475468
2.5. Multi-planar display of cardiac MRI
cMRI exams often contain multiple 2D cine images
acquired from the same subject, at different orientations
and positions (for example short-axis, two-chamber and
four-chamber). To facilitate better visualization and data
analysis such multi-planar 2D views can be combined in
an integrated 3D display using the original 3D position and
orientation of each acquired slice, as recorded in the
DICOM headers of the dataset. The DICOM image
orientation specifies the direction cosines of the first row
rZr(rx,ry,rz) and the first column cZc(cx,cy,cz) of an
image. The position, pZp(px,py,pz)with respect to the
patient, is defined as two unit vectors in the patient
coordinate system. To map the image to 3D space using
OpenGL, we first generate a 2D texture with the image
data and subsequently compute the 3D coordinates
Normal
Zoomed
3D Textures
0 50 100 150 200 2500
20
40
60
80
100
120
140
160
180
Histogram
Fig. 3. Comparison of the two 3D texture-based volume rendering algorithms using
intersecting slices. The histograms of each magnified section are provided for qu
of the texture corners as follows
p0 Z p; p1 Z p Cr�dx; p2 Z p1 Cc�dy;
p3 Z p Cc�dy
where dx,dy are the width and height of the image in
millimeters.
3. Results
Performance of the 3D and pre-integrated algorithms was
measured using a 512!512!128 cardiac CT dataset. The
frame rate of the display depends less on volume size than on
the number of view-aligned slices used to intersect the
volume; therefore, we intersected the test volume with
various numbers of slices and recorded the frame rate of
the program. The results are shown in Fig. 2. The benchmark
Pre-integrated
0 50 100 150 200 250 3000
20
40
60
80
100
120
300
a Computed Tomography (CT) dataset. Each image was rendered using 512
antitative comparison of each technique.
Fig. 4. Comparison of rendering with and without real-time lighting. The
volume was rendered with HU settings of 1534 for window and 769 for
level.
D. Levin et al. / Computerized Medical Imaging and Graphics 29 (2005) 463–475 469
was performed using an Athlon 64 2.0 GHz processor,
1.0 Gb of DDR400 RAM and a Radeon 9700 Pro video card.
This benchmark shows that it takes slightly more than one
second to draw the unclipped volume when intersecting it
with 512 slices. In order to achieve real-time frame rates
while the user interacts with the display we intersect the
volume with fewer slices. Currently we use 32 slices to
intersect the volume during interaction and this yields a
frame rate of 8 frames per second when the volume is not
clipped. Fig. 2 also shows that if the volume is clipped before
user interaction, interactive frame rates are achieved more
readily.
Fig. 3 shows a comparison of the two 3D texture-based
volume rendering algorithms. Zoomed images are shown to
Unclipped
Clipped
Coronal
Fig. 5. The implementation of the 3D clipping box. The top image shows the un
application of the clipping box. The green box on the coronal images shows the pos
on the clipped 3D view. A thin-slab maximum intensity projection was used to v
facilitate a more accurate comparison of the results.
The most noticeable difference between the 3D texture
algorithm and the pre-integrated algorithm is the higher
contrast of the pre-integrated method. This allows the
coronary artery to appear more prominently in the magnified
view. The histograms of both magnified images are
provided to reinforce this statement. The flatter histogram
of the pre-integrated image provides quantitative evidence
of its higher contrast (Fig. 3). This higher contrast is caused
by the 2D lookup table used by the pre-integrated algorithm.
In the pre-integrated technique the intensity at each pixel is
determined by two voxel values; therefore, there is greater
variation in the colors of nearby voxels. One noticeable
artifact on both images is a striping effect. This is caused by
the discrete nature of the volume data and the large slice
separation when compared to the in-plane pixel sizes. This
effect could be removed in software algorithms using extra
processing steps during rendering [27] and such techniques
may be developed for hardware-based rendering, but were
not attempted in this study.
Fig. 4 shows identical views of a cardiac CT study
rendered with and without real-time lighting. The lighting
adds surface texture and helps to differentiate features in the
image. In this specific image, the right coronary artery (RCA)
is more visible in the lit image than in the unlit image.
By allowing the user to interactively adjust the clipping
box surrounding a volume, an optimal VOI can be obtained.
Fig. 5 shows this technique applied to a rendered cardiac
CT study. In the top row of Fig. 5, the sternum and rib cage
obscure important anatomical features of the heart in the 3D
view. The clipping box was used to remove the obstructing
3D
clipped volume while the bottom image shows the same volume after the
ition of the 3D VOI. Note that the Right Coronary Artery (RCA) can be seen
isualize this artery on the coronal views.
Fig. 6. An arbitrarily oriented clipping plane, rendered with a separate grey-
scale lookup table, revealing the cross-section of the left ventricle
combined with a color volume-rendered visualization. Short-axis (A) and
long-axis (B) cross-sections are shown.
Fig. 7. A 3D cine MRI manually fused with a gated SPECT study.
D. Levin et al. / Computerized Medical Imaging and Graphics 29 (2005) 463–475470
features to provide a good view of the coronary arteries
(Fig. 5, bottom row). The green box on the coronal images
denotes the 3D position of the clipping box. The effect of
clipping on performance is shown in Fig. 2 and illustrates
that such 3D VOI can be moved interactively within the 3D
volume.
Fig. 6 shows the use of arbitrarily aligned clipping
planes. In this figure we can see short- and long-axis views
of the left ventricle. The clipping planes can be applied to
volume data using separate color tables in order to facilitate
standard visualization of the anatomy. In this case, the grey-
scale color table is more suitable for the 2D cross-sections of
the left ventricle and the color scheme needs to be applied
for realistic volume rendering.
In order to facilitate fast frame rates during cine display,
our program caches each cine frame after it is rendered for
the first time. This removes the need to volume render each
cine frame repeatedly in the cine loop. The duration for
rendering a cached frame is negligible and so the only
performance consideration is the time required to create the
cached images. Table 1 shows the time it takes to prepare a
single cine frame from a volume of the listed X and Y
dimensions. Though much slower than the runtime of the
cine, these times are still acceptable, even under conditions
that require the cine to be re-cached on a regular basis. For
example, the cine frames will need to be re-cached every
time the orientation of the volume is changed.
Fig. 7 shows a cine MRI dataset manually fused with a
gated SPECT study allowing simultaneous review of
perfusion and anatomical cardiac data interactively in 3D.
Such fused display is useful to allow precise location of
perfusion defects seen on the SPECT scan. Fig. 8 shows a
cardiac PET/CT acquired on a combined PET/CT scanner.
Table 1
The time, in seconds, required to render and cache one cine frame from a
volume of the indicated x and y dimensions. A 5-phase cardiac CT dataset
was scaled to various resolutions to obtain these measurements.
32!32 64!64 128!128 256!256 512!512
Time (s) 0.025 0.034 0.075 0.184 1.734
A clipping plane along the long-axis has been used to
visualize the left ventricle.
Integration of surface, vessel and volume rendering is
shown in Fig. 9. Fig. 9(A) shows a reconstructed left
ventricular surface obtained from the Quantitative Gated
SPECT (QGS) software package, fused with the recon-
structed coronary artery data of a PET phantom, while
Fig. 9(B) shows the same set of data fused with volume
rendered data. The color-coded surface represents hypo-
perfusion as colder colors (blue, black) and normal
perfusion as warmer colors (yellow, orange). This type of
display could facilitate easier assignment of a given
perfusion defect to a specific coronary artery territory [28].
Fig. 10 shows an example of motion-based segmentation
applied to a cine MRI study. Fig. 10(A) shows the study
rendered without any segmentation. Fig. 10(B) shows the
same study after a threshold for segmentation was
interactively selected and applied to the data. The
segmentation successfully removes non-cardiac voxels.
In Fig. 11 we demonstrate 3D visualization of multiple
2D MRI slices, acquired at different orientations, combined
with 3D surface data representing the left ventricle. This
allows direct comparison of the anatomical information
obtained from multiple views. Such a display can be
presented in a cinematic mode allowing 3D evaluation of
cardiac function.
4. Discussion
Consumer level graphics hardware can be efficiently used
for advanced 3D cardiac rendering. We have shown that
Fig. 8. A Rubidium-82 PET/CT dataset acquired using a combined PET/CT scanner (Siemens, Biograph HI-REZ). The volumes have been clipped along the
long-axis in order to visualize the left ventricular wall.
Fig. 9. Integration of vessel, surface, and volume rendering. An image of a cardiac phantom showing (A) fused QGS surfaces with color-coded perfusion data
and reconstructed coronary arteries and (B) fused surfaces, arteries and volume rendered data.
D. Levin et al. / Computerized Medical Imaging and Graphics 29 (2005) 463–475 471
the increased performance provided by today’s consumer
graphics boards can be harnessed in numerous ways to
improve the manner in which physicians display and interact
with multi-modality cardiac medical imaging data.
Fig. 10. An example of interactive, motion-based segmentation. A cine cMRI volu
segmentation threshold was interactively selected (B).
Hardware-accelerated visualization can be compared
to accelerated software methods. For example, the
accelerated shear-warp algorithm is often used for
software volume rendering [16]. However, its performance
me rendered in short-axis orientation without segmentation (A) and after a
Fig. 11. An example of multi-planar 3D visualization of cMRI with
OpenGL. Short-axis, two-chamber and four-chamber MRI images are co-
registered in 3D space using the orientation and position recorded from
their respective DICOM headers. The inner (red, solid) and outer (yellow,
wire frame) surfaces of the myocardium are also shown.
D. Levin et al. / Computerized Medical Imaging and Graphics 29 (2005) 463–475472
is achieved by omitting interpolation between slices in
the depth direction. As such it performs only bilinear
filtering whereas new graphics hardware provides accel-
erated trilinear filtering [29]. Furthermore, even with this
sacrifice, shear-warp frame rates are slower than those
achieved using graphics hardware. Shulze et al. report
frame rates of between 3.5 and 1.4 frames per second
when rendering volumes ranging in size from 128!128!55 voxels to 128!128!128 voxels [29] using a
1.7 GHz Pentium 4 and 256 Mb of RAM. These volumes
are approximately 4 or more times smaller than the
cardiac CT data used in our evaluation and were
rendered without real-time specular and diffuse lighting.
In contrast, the hardware-accelerated algorithms achieve
a minimum frame rate of 0.9 frames per second and a
maximum frame rate of 8.1 frames per second when
clipped to an appropriate size (Fig. 2) when using a
2.0 GHz AMD Athlon 64 with 1.0 Gb of RAM and a
Radeon 9700 Pro graphics card with 128 Mb of texture
memory. Since hardware-accelerated rendering utilizes
the graphics card processor, one should consider the core
clock speed of the Radeon 9700 Pro graphics card
(325 MHz); therefore, the frame rates it is able to
achieve (when compared to those of a 1.7 GHz CPU) are
even more impressive.
Fig. 2 illustrates another interesting performance
characteristic. There is a substantial performance drop
when using pre-integrated rendering without shading
instead of simple 3D texture-based rendering. This is
caused by the additional texture lookups required by the
pre-integrated algorithm. This algorithm requires two 3D
texture lookups and one 2D texture lookup (one more
3D lookup and one more 2D lookup than the standard 3D
texturing algorithm). However, when the performance of
the pre-integrated rendering algorithm without shading is
compared to that of the pre-integrated rendering with
shading (Fig. 2) one observes a small performance
differential of less than 1 frame per second. This is
surprising because the shading computation requires many
more mathematical operations to be performed by the
graphics card but no extra texture lookups. Therefore, it
seems that mathematical operations are subject to less of a
performance penalty than texture operations in hardware-
accelerated volume rendering.
Our novel technique for 16-bit interactive window and
level adjustment in volume rendering can prove useful
clinically. Previously, hardware-accelerated visualization
algorithms relied on scaling volume data to 8-bit values
in order to facilitate image data storage as a 3D texture.
This does not allow the correct window and level
adjustments required to expand a narrower, selected
16-bit range of intensities to full, 8-bit, display range. By
providing a method to interactively adjust window and
level over the full intensity range of the rendered
volume, a physician can interactively find a clinically
acceptable range for visualizing a particular dataset.
Automatically detecting and displaying a particular
organ is a known difficulty in volume rendering [30]. Our
program allows a novel semi-automatic elimination of non-
cardiac voxels using motion based segmentation, which is
implemented in graphics hardware (Fig. 10). This provides a
method of segmentation that can be applied easily and in
real-time by the user, allowing them to display the volume
in a way that provides the most diagnostic information. A
similar motion-based algorithm has already been
proven useful for the registration of cine cMRI and gated
SPECT [26].
4.1. Limitations
All hardware-accelerated algorithms suffer from one
principal drawback. They rely on the presence and proper
function of specific graphics hardware features to perform
rendering. The available graphics features may differ
between card models and manufacturs despite standardiz-
ation efforts by the OpenGL Architectural Review Board.
For example, we have implemented several algorithms
using OpenGL texture shaders [14]. Only very recent video
cards support this feature such as the ATI 9x00 [31] and
the Nvidia GeforceFX [32] series. Although low-end and
laptop variations of these cards are available, the required
features are usually available only in higher-end models.
Therefore, when using software containing such advanced
methods on lower-end desktops or laptops, precautions
D. Levin et al. / Computerized Medical Imaging and Graphics 29 (2005) 463–475 473
need to be taken to ensure fail-safe operation and fallback
algorithms need to be implemented to ensure software
portability.
Another difficulty in using graphics cards is their
currently limited texture memory. Current graphics cards
have 64–256 Mb of graphics memory. Some of the latest
cardiac CT data can have sizes greater than 100 Mb (512!512!80!5). This can stress the memory subsystems of
these cards, especially if the need to load multiple volumes
arises. It can also affect the cine performance, as swapping
the data from system memory might be required, causing
performance degradation. New technologies such as PCI
Express, a high-performance interface between system
memory and the graphics card, may eliminate or reduce
the impact of this issue [33].
Another limitation of all the volume rendering algor-
ithms based on graphics hardware is that they can only
render 8-bit voxels (voxels with 256 discrete intensity
values). This is due to inherent hardware limitations of
current consumer graphics cards. Current consumer
OpenGL graphics hardware supports 32-bit color (8-bits
for each red, blue, green, and alpha component of a voxel).
Since most medical imaging data only has one channel
(intensity), we can only use one 8-bit value to store the
voxel intensities. However, we have circumvented this
limitation using a novel 16-bit window and level technique
allowing the user to interactively select an 8-bit range from
the full 16-bit intensity range of the volume interactively.
We also implemented color volume rendering which
allows realistic 32-bit color mapping of the pre-selected
16-bit intensity range.
The algorithms presented in this study were
implemented using standard OpenGL features. Recent
graphics cards from Nvidia and ATI support all the
features required for these techniques. As discussed in the
preceding paragraphs, volume rendering algorithms are
limited by the features of the cards they are running on and
future cards will remove several of these limitations. For
instance, because of memory constraints we store our
volumes using 8-bit intensities. However, floating point
texture formats are now available on most graphics cards.
Once texture memory sizes are acceptable, RGBA floating
point textures could be used to store unaltered voxel
intensities. Graphics card fill rates, which increase each
generation, will also increase the speed at which the
volume rendering takes place.
Most importantly, the increase in the programmability
of consumer graphics cards could allow significant
improvement in the techniques presented. Many of our
algorithms rely on texture shaders to allow the graphics
card to process information. New cards support even more
programming structures allowing for an increase in the
complexity of the calculations performed. This could allow
even more robust implementations of the presented
techniques.
5. Conclusion
Current consumer graphics hardware can be used to
implement a comprehensive multi-modality 4D cardiac
imaging toolkit for rendering data with high quality and at
real-time speeds.
6. Summary
In this study we explore the capabilities of consumer 3D
graphics cards for use in the processing and visualization of
high-resolution, multi-modality cardiac medical imaging
data. We exploit hardware-accelerated trilinear filtering, 2D
and 3D texturing along with the programmable capabilities
(texture and vertex shaders) of recent 3D graphics cards to
implement a real-time processing and visualization plat-
form, Volviz. We implement two volume rendering
algorithms: volume rendering using view-aligned slices
and 3D textures and pre-integrated volume rendering.
OpenGL texture shaders are used to perform real-time
specular and diffuse lighting and this is combined with
virtual reality (VR) color tables to produce realistic, 3D,
volume rendered images of cardiac Computed Tomography
(CT) datasets. A novel 16-bit window and level algorithm is
implemented using texture shaders to circumvent hardware
limitations that allow only 8-bits of voxel intensity to be
stored in OpenGL 3D textures and to improve image
quality. Furthermore we perform multi-modality visualiza-
tion of volume data, surface data and reconstructed coronary
artery tree data. We also implement a motion-based
segmentation algorithm that allows the user to interactively
(O1 frame per second) select a motion-threshold and semi-
automatically segment cine cardiac 3D datasets in real-time.
A novel multi-planar display for multiple series of cine
cardiac MRI, acquired at different orientations, is also
discussed. We show that an ATI Radeon 9700 Pro video
card with 128 Mb of texture memory can render a 512!512!128 cardiac CT scan at 0.9–60 frames per second
depending on the size of the volume-of-interest (VOI)
displayed and the detail the volume is rendered at.
Furthermore, it takes 0.03 to 1.73 s to prepare a cached
cine frame of volumes with matrix sizes ranging from 32!32 to 512!512 for real-time cine display. We conclude that
real-time rendering and processing of 16-bit multi-modality,
3D, cardiac data, with matrix sizes up to 512!512 can be
performed efficiently using current consumer 3D graphics
cards.
Acknowledgements
We thank the Siemens Nuclear Group for providing us
with the PET/CT data and Dr Rob De Kemp from the
Ottawa Heart Institute for providing us with the phantom
data of PET and 3D coronary angiography.
D. Levin et al. / Computerized Medical Imaging and Graphics 29 (2005) 463–475474
References
[1] Germano G, Kiat H, Kavanagh PB, Moriel M, Mazzanti M, Su HT,
et al. Automatic quantification of ejection fraction from gated
myocardial perfusion SPECT. J Nucl Med 1995;36(11):2138–47.
[2] Slomka PJ, Hurwitz GA, Clement G, Stephenson J. Three-
dimensional demarcation of perfusion zones corresponding to specific
coronary arteries: application for automated interpretation of
myocardial SPECT. J Nucl Med 1995;36(11):2120–6.
[3] Pirich C, Schwaiger M. The clinical role of positron emission
tomography in management of the cardiac patient. Rev Port Cardiol
2000;19(Suppl 1):89–100.
[4] Desjardins B, Kazerooni EA. ECG-gated cardiac CT. AJR Am J
Roentgenol 2004;182(4):993–1010.
[5] Rensing BJ, Bongaerts AH, van Geuns RJ, van Ooijen PM,
Oudkerk M, de Feyter PJ. Intravenous coronary angiography using
electron beam computed tomography. Prog Cardiovasc Dis 1999;
42(2):139–48.
[6] Smith HJ. Use of MR imaging in the diagnosis of cardiac disease.
Tidsskr Nor Laegeforen 2004;124(4):497–9.
[7] DeMaria A, Blanchard DG., The echocardiogram: ischemic heart
disease. In: Fuster V, Alexander RW, O’Rourke RA, editors. Hurst’s
The heart. 11 ed. 2004. p 423–30.
[8] Beier J, Oellinger H, Richter CS, Fleck E, Felix R. Registered image
subtraction for CT-, MR- and coronary angiography. Eur Radiol 1997;
7(1):82–9.
[9] Stytz MR, Frieder G, Frieder O. Three-dimensional medical imaging:
algorithms and computer systems. ACM Comput Surv 1991;23(4):
421–99.
[10] Cabral B, Cam N, Foran J. Accelerated volume rendering and
tomographic reconstruction using texture mapping hardware. Pro-
ceedings of the symposium on volume visualization. Tysons Corner,
Virginia, USA: ACM Press; 1994 p. 91–8.
[11] Engel K, Kraus M, Ertl T. High-quality pre-integrated volume
rendering using hardware-accelerated pixel shading. Proceedings of
the ACM SIGGRAPH/EUROGRAPHICS workshop on graphics
hardware. New York, NY: ACM Press; 2001 p. 9–16.
[12] Nvidia., NVIDIA Gelato 1.0 GPU-Accelerated final-frame renderer.,
film.nvidia.com. 2004. 8-18-2004. Ref type: electronic citation.
[13] ATI., Rendermonkey Toolsuite., www.ati.com., 2004. 8-16-2004. Ref
type: electronic citation.
[14] Segal M, Akeley K. The openGL graphics system: a specification
(version 1.5). www.opengl.org. 2003. Silicon graphics Inc. 9-27-
2003. ref type: electronic citation.
[15] Foley JD, van Dam A, Feiner SK, Hughes JF. Computer graphics:
principles and practice. 2nd ed. New York, NY: Addison-Wesley;
1997 p. 741.
[16] Lacroute P, Levoy M. Fast volume rendering using a shear-warp
factorization of the viewing transformation. Proceedings of the 21st
annual conference on computer graphics and interactive techniques.
New York, NY: ACM Press; 1994 p. 451–8.
[17] OpenGL Architecture Review Board (ARB). The OpenGL reference
manual. 3rd ed. New York: Addison Wesley; 1999.
[18] Westermann R, Sevenich B. Accelerated volume ray-casting using
texture mapping. Proceedings of the conference on visualization 001.
San Diego, CA: IEEE Computer Society; 2001 p. 271–8.
[19] Enders F, Strengert M, Iserhardt-Bauer S, Aladl UE, Slomka PJ.
Interactive volume rendering of multimodality 4D cardiac data with the
use of consumer graphics hardware. SPIE Medical Imaging 2003:
visualization, image-guided procedures, and display 2003;5029:119–28.
[20] Ertl T, Westermann R. Efficiently using graphics hardware in volume
rendering applications. Proceedings of the 25th annual conference on
computer graphics and interactive techniques. New York, NY: ACM
Press; 1998 p. 169–77.
[21] Proudfoot K, Mark WR, Svetoslav T, Hanrahan P. A real-time
procedural shading system for programmable graphics hardware.
Proceedings of the 28th annual conference on computer graphics
and interactive techniques. New York, NY: ACM Press; 2001
[159–70].
[22] GE Medical Systems., Computed tomography, CT application option:
volume rendering. www.gemedicalsystsmseurope.com. 2004. 7-29-
2004. Ref Type: Electronic Citation.
[23] OpenGL Architecture Review Board (ARB). OpenGL programming
guide. 2nd ed. New York: Addison Wesley; 1997.
[24] Germano G, Erel J, Kiat H, Kavanagh PB, Berman DS. Quantitative
LVEF and qualitative regional function from gated thallium-201
perfusion SPECT. J Nucl Med 1997;38(5):749–54.
[25] Dougan C. The parallel transport frame. In: Deloura M, editor. Game
programming gems 2, 2. Hingham, MA: Charles River Media; 2001.
p. 215–9.
[26] Aladl UE, Hurwitz GA, Dey D, Levin D, Drangova M, Slomka PJ.
Automated image registration of gated cardiac single-photon emission
computed tomography and magnetic resonance imaging. J Magn
Reson Imaging 2004;19(3):283–90.
[27] Sweeney J, Mueller K. Shear-warp deluxe: the shear-Warp algorithm
revisited. Proceedings of the symposium on data visualisation 2002.
Aire-la-Ville, Switzerland: Eurographics Association; 2002. 95 ff.
[28] Faber TL, Santana CA, Garcia EV, Candell-Riera J, Folks RD,
Peifer JW, et al. Three-dimensional fusion of coronary arteries with
myocardial perfusion distributions: clinical validation. J Nucl Med
2004;45(5):745–53.
[29] Schulze JP, Kraus M, Lang U, Ertl T. Integrating pre-integration into
the shear-warp algorithm. Proceedings of the eurographics/IEEE
TVCG workshop on volume graphics. 2003. New York: ACM Press;
2003 p. 109–18].
[30] Meissner M, Lorensen B, Zuiderveld K, Simha V, Wegenkittl R.
Volume rendering in medical applications: we’ve got pretty images,
what’s left to do. Proceedings of the conference on visualization 002.
Boston, MA: IEEE Computer Society; 2002 p. 575–8].
[31] ATI. Radeon 9500/9600/9700/9800 OpenGL Programming and
Optimization Guide. www.ati.com. 2004. ATI. 2-2-2004. Ref Type:
Electronic Citation.
[32] Spitzer J. Nvidia OpenGL Performance FAQ. www.nvidia.com. 2002.
Nvidia. 9-12-2003. Ref Type: Electronic Citation.
[33] Reed D. PCI express graphics performance optimizations. www.nvidia.
com. 2004. NVIDIA. 8-19-2004. Ref Type: Electronic Citation.
David Levin received his BSc in Computer Science and Biology from
the University of Western Ontario, Canada in 2002. After a 2 year
hiatus, during which he spent his time programming medical imaging
software, he returned to his alma mater to complete a 4th year of
Medical Biophysics. Currently, he is studying for his MSc in Medical
Biophysics which is focused on real-time surgical simulation. His
main interests are interactive 3D graphics, image processing and
analysis.
Usaf E. Aladl is a Post-doctoral fellow in the Department of Diagnostic
Radiology and Nuclear Medicine at the University of Western Ontario,
Canada. He received his BSc degree from the Mathematics Department
of Al-Fateh University, Tripoli, Libya in 1985, his MSc degree from the
Department of Mathematics of the Middle East Technical University,
Ankara, Turkey in 1992, and his PhD degree from the Department of
Applied Mathematics at the University of Western Ontario, London,
Ontario, Canada in 2001. His research interests include Numerical
analysis, scattering wave problems in unbounded domain, visualization
and analysis of medical images, and Multi-modality medical image
registration and segmentation.
D. Levin et al. / Computerized Medical Imaging and Graphics 29 (2005) 463–475 475
Guido Germano, PhD, FACC, After receiving a BS degree in
Electrical Engineering from the University of Naples, Italy, and an
MBA in Marketing and International Relations from the Italian
government, he came to the United States on a Fulbright scholarship
and obtained a MS and a PhD in Biomedical Physics from the
University of California at Los Angeles in 1991. He is the Director of
the Artificial Intelligence in Medicine (AIM) Program at Cedars-Sinai
Medical Center, and a Professor of Medicine at the David Geffen
School of Medicine at the University of California at Los Angeles. He
is also a fellow of the American College of Cardiology. Dr Germano
has written more than 140 original manuscripts and book chapters and
received numerous awards for excellence in research in the fields of
heart research, medical physics and nuclear medicine. He is widely
recognized as an expert in the field of cardiovascular nuclear medicine.
His current research interests focus on the automatic processing,
quantification and reporting of nuclear medicine, magnetic resonance
and computed tomography images using artificial intelligence
techniques.
Piotr Slomka, PhD, FCCPM, received his MASc in Computer
Engineering from the Warsaw University of Technology, Poland, in
1989 and his PhD in Medical Physics from the University of Western
Ontario, Canada in 1995. He was a faculty member in the Department
of Diagnostic Radiology and Nuclear Medicine as well as Medical
Biophysics at the University of Western Ontario, London, Canada
between 1995 and 2003. He is currently a faculty scientist with the
Cedars Sinai Medical Center, Los Angeles, CA and is an Associate
Professor of Medicine at the University of California Los Angeles. He
is also a fellow of the Canadian College of Physicists in Medicine. He is
widely recognized as an expert in the filed of multi-modality image
registration and fusion. His principal research areas are image
registration, image fusion, and automated medical image analysis and
quantification of PET/CT SPECT, CTA and MRI images. He has
authored, or co-authored over 60 original manuscripts and book
chapters.