12
EUROGRAPHICS’98 / N. Ferreira and M. Göbel (Guest Editors) © The Eurographics Association and Blackwell Publishers 1998.Published by Blackwell Publishers, 108 Cowley Road, Oxford OX4 1JF, UK and 350 Main Street, Malden, MA 02148, USA. 0D[LPXP,QWHQVLW\3URMHFWLRQ 8VLQJ6SODWWLQJLQ6KHDUHG2EMHFW6SDFH Wenli Cai and Georgios Sakas Fraunhofer Institute for Computer Graphics, Rundeturmstrasse 6, 64283 Darmstadt, Germany email: {wcai, gsakas}@igd.fhg.de $EVWUDFW ,Q WKLV SDSHU ZH SUHVHQW D QHZ 0D[LPXP ,QWHQVLW\ 3URMHFWLRQ 0,3 DOJRULWKP ZKLFK ZDV LPSOHPHQWHG HP SOR\LQJVSODWWLQJLQDVKHDUZDUSFRQWH[W7KLVDOJRULWKPUHQGHUVD0,3LPDJHE\ILUVWVSODWWLQJHDFKYR[HORQ WZR LQWHUPHGLDWH VSDFHV FDOOHG ‡ZRUNVKHHW· DQG ‡VKHDU LPDJH· 7KHQ WKH PD[LPXP YDOXH LV HYDOXDWHG EH WZHHQZRUNVKHHWDQGVKHDULPDJH)LQDOO\VKHDULPDJHLVZDUSHGRQWKHVFUHHQWRJHQHUDWHWKHUHVXOWLPDJH ’LIIHUHQWIRRWSULQWVLPSOHPHQWLQJGLIIHUHQWTXDOLW\PRGHVDUHGLVFXVVHG,QDGGLWLRQZHLQWURGXFHGDOLQHHQ FRGHGLQGH[LQJVSHHGXSPHWKRGWRREWDLQLQWHUDFWLYHVSHHG7KLVDOJRULWKPDOORZVIRUDTXDQWLWDWLYHSUHGLFW DEOHWUDGHRIIEHWZHHQLQWHUDFWLYLW\DQGLPDJHTXDOLW\ .H\ZRUGV Volume rendering, MIP, splatting, shear warp ,QWURGXFWLRQ Volume rendering is well-known as an accumulation proc- ess, in which each pixel intensity is calculated by accu- mulated the voxel intensities and opacities along the line of view [DrCH88, Kaji84, Levo88]. Volume rendering al- gorithms are divided in two fundamental types: image space and object space methods. Ray casting [Levo88] is the typical algorithm of image space volume rendering. Object space methods include V-buffer [UpKe88], splat- ting [West90], and shear-warp factorisation [LaLe94]. Object space volume rendering is superior to ray casting for four main reasons: gapless access of the data space, optimal caching, highly incremental behaviour, and sev- eral speed-up methods allowing data set to be pre- processed before projection to avoid unnecessary voxel traversal, like Hierarchical Splatting [LaHa91], Run- length coding [LaLe94], Block Compression [Knit95] and Indexing [IhLe95]. Compression in frequency domain [LiGK97] is another object space rendering techniques. This results in general in a much higher speed of object space methods coupled with a high degree of quality. Usually, each voxel is regarded as a semi-transparent ma- terial. The result of such accumulations can be presented as (semi-transparent) surface or cloud. Another technique of volume rendering called Maximum Intensity Projection (MIP) is mainly applied in MRA and, more recently, 3D- ultrasonic data sets. Its principle is surprisingly simple: each voxel is regarded as a self-emitting cubical light source and the final pixel intensity is computed as the maximum voxel value among all voxels projected on the pixel along the viewing direction. Thus, in MIP only pro- jection and comparison between voxel values is requested, accumulation and opacity blending are not employed. Due to the difference between maximum comparison and ac- cumulation, most MIP algorithms use only ray casting to traverse volume data and select the maximum value among all accessed voxels along a ray. Unfortunately, the well- known volume rendering acceleration techniques (early ray termination, pyramid structure like octree) do not di- rectly apply on MIP since most of them have been devel- oped for accumulation volume rendering. Currently, one usually has to traverse all voxels on a ray in order to select the maximum value among them. Therefore MIP ray cast- ing is time consuming and far from interactive rendering speed. The main difficulty is how to evaluate the maxi- mum value of a pixel in object space by voxel order trav- ersing. The scope of this paper is to explore a fast MIP al- gorithm in object space. [HeMS95] described a Z-buffer assisted MIP method. Af- ter object order traversing and projection, the Z- component of each point is set to its intensity, thus allow-

Maximum Intensity Projection Using Splatting in Sheared Object Space

Embed Size (px)

Citation preview

Page 1: Maximum Intensity Projection Using Splatting in Sheared Object Space

EUROGRAPHICS’98 / N. Ferreira and M. Göbel 9ROXPH�������������1XPEHU��

(Guest Editors)

© The Eurographics Association and Blackwell Publishers 1998.Published by BlackwellPublishers, 108 Cowley Road, Oxford OX4 1JF, UK and 350 Main Street, Malden, MA02148, USA.

0D[LPXP�,QWHQVLW\�3URMHFWLRQ8VLQJ�6SODWWLQJ�LQ�6KHDUHG�2EMHFW�6SDFH

Wenli Cai and Georgios Sakas

Fraunhofer Institute for Computer Graphics, Rundeturmstrasse 6, 64283 Darmstadt, Germanyemail: {wcai, gsakas}@igd.fhg.de

$EVWUDFW ,Q� WKLV�SDSHU�ZH�SUHVHQW�D�QHZ�0D[LPXP�,QWHQVLW\�3URMHFWLRQ� �0,3��DOJRULWKP�ZKLFK�ZDV� LPSOHPHQWHG� HP�SOR\LQJ�VSODWWLQJ�LQ�D�VKHDU�ZDUS�FRQWH[W��7KLV�DOJRULWKP�UHQGHUV�D�0,3�LPDJH�E\�ILUVW�VSODWWLQJ�HDFK�YR[HO�RQWZR� LQWHUPHGLDWH�VSDFHV�FDOOHG�³ZRUNVKHHW´�DQG�³VKHDU� LPDJH´��7KHQ�� WKH�PD[LPXP�YDOXH� LV� HYDOXDWHG�EH�WZHHQ�ZRUNVKHHW�DQG�VKHDU�LPDJH��)LQDOO\��VKHDU�LPDJH�LV�ZDUSHG�RQ�WKH�VFUHHQ�WR�JHQHUDWH�WKH�UHVXOW�LPDJH�'LIIHUHQW�IRRWSULQWV�LPSOHPHQWLQJ�GLIIHUHQW�TXDOLW\�PRGHV�DUH�GLVFXVVHG��,Q�DGGLWLRQ��ZH�LQWURGXFHG�D�OLQH�HQ�FRGHG�LQGH[LQJ�VSHHG�XS�PHWKRG�WR�REWDLQ�LQWHUDFWLYH�VSHHG��7KLV�DOJRULWKP�DOORZV�IRU�D�TXDQWLWDWLYH��SUHGLFW�DEOH�WUDGH�RII�EHWZHHQ�LQWHUDFWLYLW\�DQG�LPDJH�TXDOLW\�

.H\ZRUGV�� Volume rendering, MIP, splatting, shear warp

���� ,QWURGXFWLRQ

Volume rendering is well-known as an accumulation proc-ess, in which each pixel intensity is calculated by accu-mulated the voxel intensities and opacities along the lineof view [DrCH88, Kaji84, Levo88]. Volume rendering al-gorithms are divided in two fundamental types: imagespace and object space methods. Ray casting [Levo88] isthe typical algorithm of image space volume rendering.Object space methods include V-buffer [UpKe88], splat-ting [West90], and shear-warp factorisation [LaLe94].Object space volume rendering is superior to ray castingfor four main reasons: gapless access of the data space,optimal caching, highly incremental behaviour, and sev-eral speed-up methods allowing data set to be pre-processed before projection to avoid unnecessary voxeltraversal, like Hierarchical Splatting [LaHa91], Run-length coding [LaLe94], Block Compression [Knit95] andIndexing [IhLe95]. Compression in frequency domain[LiGK97] is another object space rendering techniques.This results in general in a much higher speed of objectspace methods coupled with a high degree of quality.

Usually, each voxel is regarded as a semi-transparent ma-terial. The result of such accumulations can be presentedas (semi-transparent) surface or cloud. Another techniqueof volume rendering called Maximum Intensity Projection

(MIP) is mainly applied in MRA and, more recently, 3D-ultrasonic data sets. Its principle is surprisingly simple:each voxel is regarded as a self-emitting cubical lightsource and the final pixel intensity is computed as themaximum voxel value among all voxels projected on thepixel along the viewing direction. Thus, in MIP only pro-jection and comparison between voxel values is requested,accumulation and opacity blending are not employed. Dueto the difference between maximum comparison and ac-cumulation, most MIP algorithms use only ray casting totraverse volume data and select the maximum value amongall accessed voxels along a ray. Unfortunately, the well-known volume rendering acceleration techniques (earlyray termination, pyramid structure like octree) do not di-rectly apply on MIP since most of them have been devel-oped for accumulation volume rendering. Currently, oneusually has to traverse all voxels on a ray in order to selectthe maximum value among them. Therefore MIP ray cast-ing is time consuming and far from interactive renderingspeed. The main difficulty is how to evaluate the maxi-mum value of a pixel in object space by voxel order trav-ersing. The scope of this paper is to explore a fast MIP al-gorithm in object space.

[HeMS95] described a Z-buffer assisted MIP method. Af-ter object order traversing and projection, the Z-component of each point is set to its intensity, thus allow-

Page 2: Maximum Intensity Projection Using Splatting in Sheared Object Space

&DL�DQG�6DNDV���0D[LPXP�,QWHQVLW\�3URMHFWLRQ�8VLQJ�6SODWWLQJ�LQ�6KHDUHG�2EMHFW�6SDFH

© The Eurographics Association and Blackwell Publishers 1998

ing to utilise the Z-buffer hardware to accelerate render-ing. Another way to accelerate MIP rendering was pro-posed in [ZuKV94]: MIP is speeded up by Distance Cod-ing of data set for ray casting traversal. A high qualitymaximum evaluation method was reported in [SaGS96],which is also based on ray casting.

The shear-warp factorisation rendering algorithm[LaLe94] belongs to the fastest object space rendering al-gorithms. The advantages of shear-warp factorisation arethat sheared voxels are viewed and projected only along±X, ±Y and ±Z axis, i.e. along the principle viewing di-rections in sheared object space rather than an arbitrarilyviewing direction, which makes it possible to traverse andevaluate the maximum value slice by slice. Neighbourvoxels share the same footprint and are exactly one pixelapart. A shear-warp MIP implementation for thin slab isreported in [YeNR96].

We chose shear-warp algorithm as the volume renderingcontext for our MIP rendering due to its superior speedand algorithmic advantages. This paper proposes a MIPmethod using splatting in sheared object space, which isboth more accurate and faster than the original shear-warpproposed in [LaLe94] and [YeNR96]. The paper focuseson different aspects of the algorithm:

• Section 2 discusses principal difficulties in the classi-cal MIP splatting and proposes our solution forshearing voxels in addition to slices, how to performMAX comparisons, as well as dealing with intra- andinter-slice interpolation alternatives

• Section 3 discriminates three different footprints forthree different MIP quality modes

• Section 4 presents a novel line encoded indexingtechnique used to accelerate MIP

• Finally, in section 5 we present experimental results(runtimes) and discussion

���� 6SODWWLQJ�LQ�6KHDUHG�2EMHFW�6SDFH

In shear-warp the complete transformation matrix is de-composed into two transformations, a shear matrix and awarp matrix. The dataset is sheared first according to theshear transformation and an intermediate image, which wecalled “shear image”, is generated by voxel projection insheared space. Each voxel is splatted according to its foot-print in sheared object space. After all voxels have beensplatted, the intermediate shear image is warped to createthe result image displayed on the screen according to thewarp transformation. In this paper, we only consider or-thographic (parallel) projection.

����� 3UREOHPV�LQ�0,3�6SODWWLQJ

Although splatting is a straightforward method for projec-tion, it is difficult to be applied in MIP since our goal is to

evaluate the maximum value at each one pixel rather thanto accumulate voxel contributions. Usually one pixel re-ceives contributions from several voxels. As shown inFigure 1, the intensity of pixel (a) should obviously be 250since the pixel is covered by two grey voxels each onewith the value 250. In the original splatting algorithm eachone of the two voxels will contribute half of its intensity tothe pixel. Thus, if we compare each voxel contribution in-dividually with the pixel value to evaluate the maximum(MAX operation), the pixel intensity would be 125 ratherthan 250! A possible solution here could be to assign themaximum value of each voxel without calculating thevoxel contribution first. This “solution” will, however,create strong alias in the form of stair-case edges and willthicken thin lines. In addition, the second example showsthat this solution will also fail calculating the correct in-tensity value: Pixel (b) receives contributions from twodifferent voxels, one having the value 250 and one thevalue 150. Due to the fact that voxel values are interpo-lated in object space and assuming for simplicity a linearinterpolation scheme, the correct value of the pixel (b)should be (250 + 150) / 2 = 200. Instead, by calculatingthe voxel contribution first and comparing each value in-dividually the pixel would obtain the value 250/2 = 125!Alternatively, if contributions are not interpolated, thepixel value will be set to 250! In both cases the correctvalue of 200 will be missed.

In the original shear-warp algorithm [LaLe94] only slicesare sheared rather than each voxel itself (see the dottedline in Figure 2 left). In other words, slices are displaced(sheared) relatively to each other, but the voxels withineach slice are remaining orthogonal cubes. In the MIPimplementation proposed in [YeNR96], the voxel sam-pling value is evaluated along the line emitting from thepixel centre, a kind of point sampling. We call this case“projective shear-warp” in order to discriminate it from“splatting shear-warp” to be introduced by us in this pa-per. In projective shear-warp, the voxel projection is obvi-ously not accurately calculated. The projection area of onevoxel is exactly equal to one. In splatting shear-warp weinstead calculate the mathematically correct shear of theobject space. The complete dataset is regarded to be acontinuous space sheared by the shearing transformation.Thus, each voxel is sheared as well, resulting in parallele-pipeds rather than in cubes. Therefore the projection areaof a voxel is now in general greater than 1.0. This differ-

Figure 1. The Situation in MIP Splatting

Voxels

Pixels

250 250 150

(a) (b)

Page 3: Maximum Intensity Projection Using Splatting in Sheared Object Space

&DL�DQG�6DNDV���0D[LPXP�,QWHQVLW\�3URMHFWLRQ�8VLQJ�6SODWWLQJ�LQ�6KHDUHG�2EMHFW�6SDFH

© The Eurographics Association and Blackwell Publishers 1998

ence is illustrated in Figure 2 right: in projective shear-warp pixel A only samples the value of voxel L�� (dashedline). In splatting shear-warp instead, pixel A samples val-ues from both voxel L and L�� (solid line). The implicationof this is that in the later case a sub-voxel splatting sam-pling calculation according to an individual splatting table(footprint) becomes necessary.

����� 6ROXWLRQ�WR�WKH�0,3�6SODWWLQJ�3UREOHP

• 7KH�³:RUNVKHHW´

In order to solve the first problem and calculate differentvoxel contributions to one pixel resulting from splattingparallelepipeds rather than cubes, we introduce an addi-tional intermediate image plane called “worksheet”. Theworksheet is acting as an image buffer lying at the samelocation and has the same size as the shear image. For eachsheared data slice, voxels are first splatted to the work-sheet and values are accumulated in the usual way. Afteraccumulating all contributions of one slice to the work-sheet, pixels in the worksheet are compared with pixels inthe shear image one by one to evaluate their maximumvalue, i.e. a MAX operation is performed between work-sheet and shear image see Figure 3. The effect of intro-ducing the worksheet is that a partial image is calculatedfirst containing the contributions of one voxel-slice onlybefore it is compared with the “final” shear image.

• 6WDQGDUG�,QWHUSRODWLRQ�0RGH

We regard the Qth voxel as a cube of constant intensity ,Q

and spatial location co-ordinates in [Q, Q��]. In shearedobject space, slices are parallel to each other, therefore the

pixel intensities in the worksheet receive voxel contribu-tions (interpolation between sheared voxels) only from oneslice at the time. In this case interpolations are performedonly in horizontal and vertical directions, and no interslice contribution (depth direction interpolation) is consid-ered (we will discuss the inter slice contribution later). InFigure 3, the dashed pixel in the worksheet accepts onlythe contributions from voxel Q and Q��. Since the pixelsize is the same as the voxel size, which is indicated by theorthographic splatting, one pixel accepts 2 voxels’ contri-butions in 2D space (1D “image” generation like the caseshown in Fig. 2 and 3), and 4 voxels in 3D space (2D im-age generation). This interpolation of voxel values onlywithin one slice is called standard quality mode splattingin this paper.

• 7UL�/LQHDU�,QWHUSRODWLRQ�0RGH

Concerning 3D linear interpolation or other splatting ker-nels, we have to consider the contributions from neighbourvoxels, located in neighbouring slices to the worksheet,which we call inter-slice contribution. Figure 4 shows thesituation: original voxel boundaries are shown as solidlines, voxel co-ordinates vary in the range from [L������ M����] to [L������ M����]. Due to tri-linear interpolation, in-terpolation regions are formed between the mid-points ofneighbouring voxels forming the “cell interpolation” gridshown with dashed lines. Interpolation cell co-ordinatesvary between [L�� M] and [L���� M��]. The central voxel lo-cated at position (L��M) and shown in dark texture providesinterpolation contributions to all co-ordinates in the range[L����M��] and [L����M��], i.e. it spans a 2×2×2 voxels areain 3D-linear interpolation space.

Q Q��

Figure 3. Worksheet and Shear Image

Worksheet

Shear Image

Sheared Data Slice

Figure 2 Difference between Voxel Splatting and Projection in shear-warp

Pixel A

Voxel i, i+1, ……

Page 4: Maximum Intensity Projection Using Splatting in Sheared Object Space

&DL�DQG�6DNDV���0D[LPXP�,QWHQVLW\�3URMHFWLRQ�8VLQJ�6SODWWLQJ�LQ�6KHDUHG�2EMHFW�6SDFH

© The Eurographics Association and Blackwell Publishers 1998

However, since we splat the volume slice by slice, thecontributions of the central voxel (L��M) to a correspondingpixel in the worksheet have to be considered among 3slices, that is the Mth slice, the (M��)th slice and the (M��)thslice (if M is the current splatting slice). These 3 differentcontributions are calculated with three different footprints(= weighting factors) called the “middle footprint” of sliceM, “up footprint” of slice M�� and “down footprint” of sliceM��, see Figure 5. We will discuss the calculation of mid-dle footprint, up footprint and down footprint in the nextsection.

During splatting, each voxel in these 3 slices is weightedby the up, middle or down footprint and splatted in one ofthree corresponding different buffers called up worksheet,middle worksheet and down worksheet, instead of direct

projection to the current Qth worksheet. When all voxels ofthe current slice are splatted, the contributions of downworksheet in the (Q��)th slice, middle worksheet in theQth slice, and up worksheet in the (Q��)th slice aresummed up in the current worksheet. Last, the currentworksheet is compared with the shear image to evaluatethe MIP for the pixel. This also means that we have tomaintain 3 worksheets plus the current Qth worksheet1. In

1 Note: for implementation speed reasons in order to optimizecache accesses it is desirable to avoid accessing the volume vox-els several times. Therefore we choose to maintain 9 buffers in-stead of 3: each voxel is accessed only once and its up, middleand down contributions are calculated and stored in the corre-sponding buffers. Thus, we trade-of speed (optimal cache access)with additional memory. A typical buffer size is - depending on

Figure 4. The areas influenced by the central voxel (i, j) during a tri-linear Interpolation

Tri-linear interpolationarea of the central voxel

Central Voxel

i-1 i i+1

j+1

j

j-1

8S0LGGOH'RZQ

Figure 5. The Accumulation of Worksheet in 3D Linear Interpolation in 2D Case

(Q��)WK Slice

Qth Slice

(Q��)th Slice

Up Footprint

Down Footprint

Middle Footprint

Qth Slice Worksheet

Page 5: Maximum Intensity Projection Using Splatting in Sheared Object Space

&DL�DQG�6DNDV���0D[LPXP�,QWHQVLW\�3URMHFWLRQ�8VLQJ�6SODWWLQJ�LQ�6KHDUHG�2EMHFW�6SDFH

© The Eurographics Association and Blackwell Publishers 1998

addition, each voxel will perform 3 convolutions each oneof the size of 5×5, compared with 1 convolution of the sizeof 3×3 in the previous standard quality mode. Thereforethe computation cost is increased about 4~5 times. Thismode is called high quality mode splatting.

���� )RRWSULQWV�IRU�'LIIHUHQW�4XDOLW\�0RGHV

����� 3UHYLHZ�0RGH�)RRWSULQW

The first possible footprint is designed by the nearestneighbour point sampling method. If a pixel’s centre iscovered by a voxel’s footprint, the voxel intensity is as-signed to that pixel. This is the simplest way to evaluatethe maximum value and it can be performed without work-sheet. We called preview quality mode splatting in thispaper. In the next section, we will discuss in detail its ac-celerating implementation with indexing and sorting. Ob-viously, this is the fastest mode but due to aliasing effectsit used only for preview purposes.

����� 6WDQGDUG�0RGH�)RRWSULQW

The footprint of a voxel is calculated according to its pro-jection area in the sheared object space. Since the maxi-mum shear displacement between neighbour slices is 1.0(corresponding to a 45° rotation), the footprint is a 2×2matrix (see Figure 6 left). Considering that the startingpoint of the footprint will vary between slices, the finalconvolution matrix is in general a 3×3 matrix, each ele-ment contains a weight, which is the voxel contribution tothe corresponding pixel (see Figure 6 right). This matrix isthe same for all voxels within one slice. In addition, sinceslices themselves are parallel to each other, also voxels lo-cated in different slices share the same general footprintshape with only a different translation offset. Therefore wecan build a general 2×2 footprint table and only adapt itbetween slices: The 3×3 convolution matrix for each slicecan be converted from this general 2 x 2 footprint table.

We establish a general footprint table by digitising andscanning the 2×2 shear footprint area. The size of the tableis 2N×2N, where N×N is the digitisation degree i.e. the

the data size - 512 x 512 = 1/4th Mbyte or even less, therefore theadditional memory requirements for the extra 6 buffers are ca 1½Mbyte.

number of subpixels within one pixel, which is usuallyselected between 10 to 20 or even more, depending on therequired accuracy.

While scanning the voxel in sheared object space, wecompute at the location of the mid-point of each subpixelthe “thickness”, i.e. its projection length along the princi-ple viewing direction (in Figure 7 the Z axis). In the stan-dard mode, the weight of each subpixel is calculated by

:O

1 1L

L=*

where O = =L

= −1 0 and 1 1 is the number of subpixels

within one pixel.

For the complete general table, the weight summation is1.0, i.e. it is normalised.

�����+LJK�4XDOLW\�0RGH�)RRWSULQW

For the tri-linear interpolation kernel or other reconstruc-tion kernels, the general table size is 4×4 since each voxelcontributes to an interpolation cell with the size 2×2 asshown on Fig. 4. Unlike in the “standard” case, where thevalue of a pixel is regarded to be constant and thereforeeach weight is approximated simply by the voxel thicknessat the mid-point of a subpixel, in the high quality case the“cell value” is changing along the z axis as a result of thetri-linear interpolation between neighbouring voxel valuesand therefore we calculate the weight by employing an in-tegral. For each sub-pixel of a 4×4 sheared voxel, theweight is calculated by,

: K [ \ ] G]L Y

=

=

= ∫ ( , , )0 00

1

,

where ( , )[ \0 0 is the centre of subpixel, K [ \ ]Y( , , ) is

the volume reconstruction kernel (in our case tri-linear in-terpolation), and (Z0, Z1) is the integral range. The dis-tance between start and end point is divided into three in-tegral ranges at ±0.5, for middle footprint, up footprint,and down footprint, respectively. Thus, three footprints arecomputed according to three different integral ranges.

In addition we assume that in the general case the voxelintensity is decaying to zero at the kernel boundary likethis is the case in the tri-linear interpolation. Two symmet-rical reconstruction kernels with boundary equal to zerohave been implemented: the tri-linear interpolation kerneland a cosine bell filter kernel. For general interpolationschemes, footprint can be calculated more elegantly usingthe Fourier approach.

K [OLQHDU

= −1 | |

K [ [Pcos cos( / )= +1 π , [

P is the filter radius

The volume reconstruction kernel can be written

2X2 Shear Footprint 3X3 Footprint Convolution Matrix

Figure 6. Shear Footprint and its Convolution Matrix

Page 6: Maximum Intensity Projection Using Splatting in Sheared Object Space

&DL�DQG�6DNDV���0D[LPXP�,QWHQVLW\�3URMHFWLRQ�8VLQJ�6SODWWLQJ�LQ�6KHDUHG�2EMHFW�6SDFH

© The Eurographics Association and Blackwell Publishers 1998

K K [ K \ K ]Y V V V

= ( ) * ( ) * ( ) ,

KV

is the kernel along the corresponding axis.

After choosing the reconstruction kernel, the general foot-print table is calculated and is converted to a 3×3 (stan-dard quality mode) or a 5×5 (high quality mode) convolu-tion matrix for each slice according to its starting point. Inorder to avoid the time consuming convolution, we built aspecific footprint table size of 3×3 or 5×5 according todifferent starting points for each slice. The value of thematrix element is the summed weights of all subpixelscovered by this matrix element corresponding pixel. Also,the offset to element (0, 0) of each element in the matrix isdirectly stored in the table and the weight is convertedfrom one double type to a table size of 256 unsigned longby ZHLJKW JUH\ (grey range from 0 -255) to avoid the dou-ble type multiplication during rendering. The data struc-ture of the footprint matrix is,

VWUXFW� ^VKRUW� FRXQW�� � � � QXPEHU� RI� KLW� HOHPHQWV� E\� WKHJHQHUDO�IRRWSULQW�WDEOH� �

VWUXFW�QRGH� � ^� ORQJ�RIIVHW�� � � �RIIVHW� EHWZHHQ� FRY�HUHG�HOHPHQW�DQG�HOHPHQW������� �

�XQVLJQHG�ORQJ�ZHLJKW�>���@�``

With this data structure, the convolution is converted tothe following code;

IRU��L ���L�FRXQW��L���

�VKHHWBSRLQW���RIIVHW� ZHLJKW�>JUH\@�

���� $FFHOHUDWLQJ�6SODWWLQJ�E\�/LQH�(QFRGHG�,QGH[LQJ

In order to accelerate splatting especially for a fast previewof volume data, we introduced a line encoded indexingmethod. The data set is still processed slice by slice.Within each slice, voxels chains are run-length codedwithin each line. A chain contains the grey value and thelength. If the splatting mode is “preview” (= nearestneighbour, no kernel weighting), an additional sorting ofthe chains is employed: After all lines of a slice have beenrun-length encoded, all chain segments for the slice arethen sorted by intensity from high to low, i.e. from 255 to

0. Each chain contains now the grey value (implicitly,since all chains of a given grey are stored within the same“container”), the run-length and the chain’s (x, y) positionwithin the slice (see Figure 8 for the encoding data struc-ture). Sorting of the values from high to low has the targetto accelerate the MIP process in the preview mode, sincechains with large values will be splatted first. In this case acomparison between the actual pixel value and the splattedvalue is not necessary: since we splat from large to smallvalues, if a pixel already has a value assigned, it has not tobe regarded again!2

For each data set, chains are created for all 3 principle di-rections, i.e. x, y and z. Depending on the dataset orienta-tion and, thus, the principle splatting direction, the corre-sponding chain encoding set is employed. However, for agiven dataset, chains (and in the preview mode, theirsorting) are created only once, removing the on-line com-putation during rendering to a pre-processing stage.

When standard or high quality kernels are used, sorting asabove is not possible due to the inter-line contribution andthe inter-slice contribution. However, building run-lengthchains is still beneficial due to the two acceleration effects:first, since we splat lines instead of voxels, the convolu-tion per voxel is changed to convolution per line segment.Due to the fact that all voxels within a chain have the samevalue, convolution with the full kernel is necessary for thefirst and the last chain voxel only, intermediate voxels aresplatted using a simpler kernel. With increasing linelength, the computation needed for convolution is be-coming increasingly smaller. The second acceleration ef-fect comes from the fact that the number of memory ac-cesses is reduced by the average chain length. This lateracceleration effect is true also for the preview splattingmode using sorted chains.

2 The sorting of chains according to their gray value can be per-formed for the complete volume as well. We decided to sortwithin each slice rather than for the whole volume in order toavoid large sorting procedures as well as for saving the memoryfor storing the z co-ordinate of a chain. However, if memory con-siderations and higher pre-processing sorting times are not an is-sue, sorting the complete volume will further speed-up the proc-ess

PrincipleViewingDirection

Figure 7. General table calculation

X

Y

Z

Z0

Z1

x

y

z

Page 7: Maximum Intensity Projection Using Splatting in Sheared Object Space

&DL�DQG�6DNDV���0D[LPXP�,QWHQVLW\�3URMHFWLRQ�8VLQJ�6SODWWLQJ�LQ�6KHDUHG�2EMHFW�6SDFH

© The Eurographics Association and Blackwell Publishers 1998

A last observation is that with real-life datasets it is obvi-ous in MIP that the probability for a given grey value to besplatted in the final image is monotonically increasingwith the value, i.e. is 100% for the value 255 and tends to0% for the values close to 0. In addition, the contrast and“sharpness” of an image, what we intuitively perceive as”image quality”, is determined almost exclusively by thequality of rendering of high values rather than of thoseclose to zero. Based on this observation we decided to al-low for chains in the lower values range a tolerance amongan average value v ± ∆v instead of requiring all values tobe equal to v. The tolerance ± ∆v depends on the value v,is 0 for v = 255 and gradually increases to a free adjustablevalue N for v = 0. In the current implementation, we em-ployed a simple linear scheme with N typically having avalue of 5~10. This results in longer chains for low valuesand, thus, further speed-up. Although this alters the imagecontent, the effect is hardly visible due to the low prob-ability of low values in the final image and their smallcontribution to the image contrast and sharpness! The en-coding process becomes now:

6WDUWBSRV �SRLQWHU����6WDUWBLQWHQVLW\� � SRLQWHU����OHQ� ���ZKLOH�DEV� SRLQWHU�����6WDUWBLQWHQVLW\����GHOWD

OHQ���

The GHOWD is different for different 6WDUWBLQWHQVLW\, thehigher the 6WDUWBLQWHQVLW\, the smaller the GHOWD value(GHOWD is range from 1 to N corresponding 6WDUWBLQWHQVLW\from 255 to 0).

���� ([SHULPHQWV

The experiments are performed on a SUN UltraSPARC 10workstation based on the InViVo renderer [Saka93]. Thegoal of the experiments is twofold, to demonstrate thequality of our MIP splatting algorithm, and to prove theeffectiveness of line encoded indexing, especially underinteractivity requirement.

First, in order to compare the different quality modes, wedesigned a phantom with a resolution of 64×64×64 con-taining straight lines of one voxel thickness and renderedit with preview, standard and high quality mode respec-tively (see Figure 10). It is clear that in high quality modeimages the line is smoother than the other two cases. InFigure 12, an MRA data set was rendered to compare thedifferent modes including the delta-encoding effect. Fourimages were rendered by preview mode with delta-encoding, preview mode without delta-encoding, standardmode and high quality mode. Compared image D and im-age E, the difference in quality is very small, but the ren-dering time of image D is only 30% of that image E. Thisdemonstrates the effectiveness of delta-encoding andsorting.

Second, in order to compare the quality difference amongsplatting shear-warp, projective shear-warp and ray cast-ing, we also rendered the same phantom with these threemethods and magnified it to show the details (see Figure11). Ray casting image is typically sharper than other twoimages: due to the two interpolations, one during splattingand one during warping, shear-warp images (of any type)are always smoother.

Third, in order to test the speed of preview mode for MIPwith encoding, we select a 3D ultrasound data set size of256×256×256. Using the mip-map method we created alsoa compressed dataset with 128×128×128 resolution. Theresult image size is in both cases 300×300. We set the +Zaxis as the viewing direction and calculated a completerotation from 0° to 360° with an angle increment of 2° forboth X and Y axes. We recorded the minimum, the maxi-mum and the average time during rotation for all the fol-lowing tests. Table 1, Table 2, and Table 3 list the timecost of ray casting MIP, splatting MIP and shear-warpMIP respectively (without run-length coding). In the caseof the 256×256×256 dataset we notice that the averagetime cost of splatting is about two times more than the av-erage cost of ray casting. This higher time cost is caused

N

3

2

1

Slice

Figure 8. Line Encoding Data Structure

6HJL

: the number of line segments of intensity L

Gray value range from 255 to 0

�;L

��<L

��OHQL�

): a line segment starting at (;L

��<L

) and length is OHQL

;�

<�

OHQ�

;�

<�

OHQ�

;L

<L

OHQL

6HJ���

6HJ���

6HJ�

;<OHQ

Page 8: Maximum Intensity Projection Using Splatting in Sheared Object Space

&DL�DQG�6DNDV���0D[LPXP�,QWHQVLW\�3URMHFWLRQ�8VLQJ�6SODWWLQJ�LQ�6KHDUHG�2EMHFW�6SDFH

© The Eurographics Association and Blackwell Publishers 1998

by the fact that when splatting sheared (i.e. parallelepiped)voxels the projection area of each voxel is enlarged from1.0 to maximum 4.0 (the average is about 2.25 if 0.5 is theaverage shear displacement along two axes). This meansthat one voxel will contribute to about 2.25 pixels in orderto compare the maximum value. In shear-warp slices aresheared but voxels remain cubes, thus the projection areaof each voxel is 1.0. This explains the faster performanceof shear -warp as compared to splatting. Ray casting is stillfaster than shear-warp due to the fact that shear-warp pro-vides always a gapless sampling accessing all voxels once.On the other hand, in this test case the image resolution of300 is almost equal to the data resolution of 256 and raycasting usually does not sample all voxels (undersam-pling). The same tests have been done in the lower resolu-tion data set of 128×128×128. In this situation the com-parisons between shear-warp and splatting remain un-changed, however ray casting is now slower than bothsplatting and shear-warp due to the fact that using a rayresolution of 300×300 for sampling a dataset of128×128×128 will cause each voxel to be sampled by sev-eral rays (oversampling).

Table 4 shows the results for preview mode with delta-encoding and sorting. Comparing with Table 2 showingthe same method without any pre-processing, the speed-upachieved by our acceleration methods is 3.5 - 4.5! In Fig-ure 13, we showed the images rendered by the three meth-ods for 256 and 128 resolution. In Table 5, we listedmemory cost for line encoding in this test.

Table 1 CPU times in seconds for ray casting previewquality (nearest neighbour, no interpolation)

Resolution/Time Minimum Maximum Average

256 2.33 4.27 3.11

128 1.12 1.71 1.32

Table 2 CPU times in seconds for splatting preview qual-ity (no interpolation, no run-length encoding)

Resolution/Time Minimum Maximum Average

256 5.40 9.91 7.44

128 0.69 1.10 0.93

Table 3 CPU times in seconds for shear-warp previewquality

Resolution/Time Minimum Maximum Average

256 3.77 4.48 4.02

128 0.35 0.49 0.40

Table 4 CPU time in seconds for splatting preview qualitywith run-length encoding and sorting

Resolution/Time Minimum Maximum Average

256 1.17 2.37 1.70

128 0.17 0.37 0.26

Table 5 Memory Cost in MB for run-length line encoding

Resolution/memory Original Line encoded

256 16.0 6.245

128 2.00 1,017

���� &RQFOXVLRQV

In this paper, we presented the splatting MIP method insheared object space and discussed the different footprintsfor different quality modes. According to our experiments,we conclude:

• Sheared object space is a suitable space to performMIP in object space. In addition, shear-warp algo-rithms are ideal for maintaining an “optimal” sam-pling ratio, neither too intensive (oversampling) nortoo sparse (undersampling).

• Splatting in sheared object space generates more ac-curate results than the original shear-warp.

• By choosing between different splatting and interpo-lating approaches (preview, standard, high quality),one can very effectively trade off quality for speed.Sub-sampling effects creating gaps are omitted in allcases.

• In object space volume rendering, we can design ef-fective run-length encoding, including sorting meth-ods, to accelerate the traversal process, minimise thenumber of memory accesses and optimise the cacheperformance.

• Nearest neighbour splatting with sorting provides thefastest way to preview volume data with interactiverendering speed even on low-range computers andtherefore a reasonable way to interactive explorevolumetric data.

• The benefit of splatting as compared to ray casting isaccuracy and speed supported by voxel encoding andsorting.

Page 9: Maximum Intensity Projection Using Splatting in Sheared Object Space

&DL�DQG�6DNDV���0D[LPXP�,QWHQVLW\�3URMHFWLRQ�8VLQJ�6SODWWLQJ�LQ�6KHDUHG�2EMHFW�6SDFH

© The Eurographics Association and Blackwell Publishers 1998

5HIHUHQFHV

[DrCH88] Drebin, R., Carpenter, L., and Hanrahan, P.,9ROXPH�5HQGHULQJ, ACM Computer Graphics (ACMSIGGRAPH’88 Proceedings), 22(4):65-74, August 1988

[HeMS95] Heidrich, W., McCool, M., and Stevens, J.,,QWHUDFWLYH�0D[LPXP�3URMHFWLRQ�9ROXPH�5HQGHULQJ, IEEEProceedings Visualization’95:11-18, 1995

[IhLe95] Ihm, I., and Lee, R., 2Q�(QKDQFLQJ�WKH�6SHHGRI�6SODWWLQJ�ZLWK�,QGH[LQJ, IEEE Proceedings Visualiza-tion’95:69-76, 1995

[Kaji84] Kajiya, T., 5D\�7UDFLQJ�9ROXPH�'HQVLWLHV,ACM Computer Graphics (ACM SIGGRAPH’84 Pro-ceedings), 18(3):165-174, July, 1984

[Knit95] Knittel, G., +LJK�VSHHG�9ROXPH�5HQGHULQJ8VLQJ�5HGXQGDQW�%ORFN�&RPSUHVVLRQ, IEEE ProceedingsVisualization’95:176-183, 1995

[LaHa91] Laur, D., and Hanraham, P., +LHUDUFKLFDO6SODWWLQJ��$�3URJUHVVLYH�5HILQHPHQW�DOJRULWKP�IRU�9ROXPH5HQGHULQJ, ACM Computer Graphics (ACM SIG-GRAPH’91 Proceedings), 25(4)285-288, 1991

[LaLe94] Lacroute, P., and Levoy, M., )DVW�9ROXPH5HQGHULQJ�8VLQJ�D�6KHDU�ZDUS�)DFWRULVDWLRQ�RI�WKH9LHZLQJ�7UDQVIRUP, ACM Computer Graphics (ACMSIGGRAPH’94 Proceedings), 28(3):451-459, July, 1994

[Levo88] Levoy, M., 'LVSOD\�RI�6XUIDFH�IURP�9ROXPH'DWD, IEEE CG&A, 8(3):29-37, May 1988

[LiGK97] Lippert, L., Gross, M., and Kurman, C., &RP�SUHVVLRQ�'RPDLQ�9ROXPH�5HQGHULQJ�IRU�'LVWULEXWHG�(QYL�URQPHQWV, Computer Graphics Forum (EU-ROGRPHICS’97), 16(3):95-107, September, 1997

[Saka93] Sakas, G.,�,QWHUDFWLYH�9ROXPH�5HQGHULQJ�RI/DUJH�)LHOGV, The Visual Computer, 9(8):425-438, August1993

[SaGS96] Sakas, G., Grimm, M., and Savopoulos, A.,2SWLPLVHG�0D[LPXP�,QWHQVLW\�3URMHFWLRQ��0,3�, technicalreport, 1996

[UpKe88] Upson, C., and Keeler, M., 9�%8))(5��9LVL�EOH�9ROXPH�5HQGHULQJ, ACM Computer Graphics (ACMSIGGRAPH'88 Proceedings), 22(4):59-64, August, 1988

[West90] Westover, L., )RRWSULQW�(YDOXDWLRQ�IRU�9RO�XPH�5HQGHULQJ, ACM Computer Graphics (ACM SIG-GRAPH'90 Proceedings), 24(2):367-376, 1990

[YeNR96] Yen, S., Napel, S., and Rubin, G.,�)DVW�6OLG�LQJ�7KLQ�6ODE�9ROXPH�9LVXDOLVDWLRQ, Proceedings of the1996 Symposium on volume Visualization:79-86, SanFrancisco, October 1996

[ZuKV94] Zuiderveld, K., Koning, A., and Viergever,M., 7HFKQLTXHV�IRU�6SHHGLQJ�XS�+LJK�TXDOLW\�3HUVSHFWLYH0D[LPXP�,QWHQVLW\�3URMHFWLRQ, Pattern Recognition Let-ters, 15:507-517, 1994

Page 10: Maximum Intensity Projection Using Splatting in Sheared Object Space

&DL�DQG�6DNDV���0D[LPXP�,QWHQVLW\�3URMHFWLRQ�8VLQJ�6SODWWLQJ�LQ�6KHDUHG�2EMHFW�6SDFH

© The Eurographics Association and Blackwell Publishers 1998

Figure 10. Rendering a phantom usingsplatting MIP with different quality a)Preview b) Standard c) High qualitymode, no run-length encoding.

Figure 11. Rendering a phantom in “high”quality with a) ray-casting b) projectiveshear-warp c) splatting shear-warp

a)

b)

c)

a)

b)

c)

Page 11: Maximum Intensity Projection Using Splatting in Sheared Object Space

&DL�DQG�6DNDV���0D[LPXP�,QWHQVLW\�3URMHFWLRQ�8VLQJ�6SODWWLQJ�LQ�6KHDUHG�2EMHFW�6SDFH

© The Eurographics Association and Blackwell Publishers 1998

Figure 12. Four rendering modes of MIP a) Preview with run-length encoding b) Previewwithout run-length encoding c) Standard mode d) High quality mode. Run-length encod-ing (a vs. b) has almost no influence on the image quality but effects in a speed-up ofca 4!

c) Detail d) Detail

a) Detail b) Detail

a) Overview b) Overview c) Overview d) Over-

Page 12: Maximum Intensity Projection Using Splatting in Sheared Object Space

&DL�DQG�6DNDV���0D[LPXP�,QWHQVLW\�3URMHFWLRQ�8VLQJ�6SODWWLQJ�LQ�6KHDUHG�2EMHFW�6SDFH

© The Eurographics Association and Blackwell Publishers 1998

Figure 13. Comparing splatting, ray casting and shear-warp with 3D-ultrasound data sets of a fe-tus in two different resolutions. Splatting creates the smoothest images. The difference betweenray casting and shear-warp is negligible.

256

128

Splatting shear-warp Ray casting Projective shear-warp