efficient volume visualization of large medical datasets stefan bruckner institute of computer...
TRANSCRIPT
Efficient Volume Visualization Efficient Volume Visualization of Large Medical Datasetsof Large Medical Datasets
Stefan BrucknerStefan Bruckner
Institute of Computer Graphics and AlgorithmsInstitute of Computer Graphics and Algorithms
Vienna University of TechnologyVienna University of Technology
2Stefan Bruckner Computergraphik @ TU Wien
MotivationMotivation Volume visualization: Volume visualization:
Important tool in medical Important tool in medical environmentsenvironments
CT angiography run-offs CT angiography run-offs (> 1000 slices) are used (> 1000 slices) are used in clinical practicein clinical practice
Scanner resolutions are Scanner resolutions are getting higher getting higher (1024x1024 per slice)(1024x1024 per slice)
Memory access is increasingly Memory access is increasingly becoming a bottleneckbecoming a bottleneck
3Stefan Bruckner Computergraphik @ TU Wien
OutlineOutline
Memory hierarchyMemory hierarchy
Linear memory layoutsLinear memory layouts
Bricked memory layoutsBricked memory layouts
Gradient cachingGradient caching
Empty space skippingEmpty space skipping
ResultsResults
4Stefan Bruckner Computergraphik @ TU Wien
Memory HierarchyMemory Hierarchy Hierarchy of successively larger but slower Hierarchy of successively larger but slower
memory technologymemory technology Avoid frequent access to higher levels (like Avoid frequent access to higher levels (like
main memory)main memory) Exploit spatial and temporal locality Exploit spatial and temporal locality
L1 cacheL1 cachemain memorymain memory
L2 cacheL2 cachehard diskhard disk
CPUCPU
5Stefan Bruckner Computergraphik @ TU Wien
Linear Memory LayoutLinear Memory Layoutvolume
rays
Store volume Store volume as a stack of as a stack of 2D images 2D images (slices)(slices)
Bad cache Bad cache behavior forbehavior fordifferent different viewing viewing directionsdirections
6Stefan Bruckner Computergraphik @ TU Wien
Bricked Memory Layout (1)Bricked Memory Layout (1)volume
rays
Store volume Store volume as a set of as a set of equally sized equally sized cubes (bricks)cubes (bricks)
Nearly Nearly constant cache constant cache behavior for all behavior for all viewing viewing directionsdirections
7Stefan Bruckner Computergraphik @ TU Wien
Bricked Memory Layout (2)Bricked Memory Layout (2)volume
rays
Process all Process all resample resample locations locations within a brick within a brick before going before going to the next oneto the next one
Each brick is Each brick is only loaded only loaded from memory from memory onceonce
8Stefan Bruckner Computergraphik @ TU Wien
Bricked Memory Layout (3)Bricked Memory Layout (3)volume
rays
11 22 33
44 55 66
77 88 99Process all Process all resample resample locations locations within a brick within a brick before going before going to the next oneto the next one
Brick-wise Brick-wise processing processing schemescheme
9Stefan Bruckner Computergraphik @ TU Wien
Bricked Memory Layout (4)Bricked Memory Layout (4) How to efficiently access neighboring How to efficiently access neighboring
samples?samples? Problem: A certain neighborhood of Problem: A certain neighborhood of
samples is needed at every resample samples is needed at every resample locationlocation
Offsets to neighboring samples are Offsets to neighboring samples are constant in linear volume layoutconstant in linear volume layout
More complicated for bricked volume More complicated for bricked volume layoutslayouts
10Stefan Bruckner Computergraphik @ TU Wien
Bricked Memory Layout (5)Bricked Memory Layout (5) How to efficiently access neighboring How to efficiently access neighboring
samples?samples?brick boundary sample
11Stefan Bruckner Computergraphik @ TU Wien
Bricked Memory Layout (6)Bricked Memory Layout (6) How to efficiently access neighboring How to efficiently access neighboring
samples?samples? 27 distinct cases in 3D for a 26-27 distinct cases in 3D for a 26-
neighborhoodneighborhood Determine case from current position Determine case from current position
within brickwithin brick Offsets to neighboring samples are Offsets to neighboring samples are
stored in lookup tablestored in lookup table
12Stefan Bruckner Computergraphik @ TU Wien
Linear vs. Bricked Memory LayoutLinear vs. Bricked Memory Layout
brick sizein KB
8 64 512 4096
1
3
4
2
1 32768
linearvolumelayout
cache thrashing + bricking overhead
optimal brick size
speedup factor
speedup: 2.8
13Stefan Bruckner Computergraphik @ TU Wien
Gradient CachingGradient Caching Pre-computed gradientsPre-computed gradients
For sufficient quality, memory For sufficient quality, memory requirements are at least doubledrequirements are at least doubled
Compute gradients on-the-flyCompute gradients on-the-fly Caching has to be performedCaching has to be performed Brick-wise traversal is beneficialBrick-wise traversal is beneficial Store gradients in a brick-sized cacheStore gradients in a brick-sized cache
14Stefan Bruckner Computergraphik @ TU Wien
Empty Space SkippingEmpty Space Skipping Medical datasets contain large empty regions Medical datasets contain large empty regions How do we quickly traverse this empty space?How do we quickly traverse this empty space?
Project all non-transparent bricks onto image Project all non-transparent bricks onto image plane to find first entry points of raysplane to find first entry points of rays
For finer resolution, use a min-max octree per For finer resolution, use a min-max octree per brick and project the octreebrick and project the octree
At cell level, store one bit for each cell classified At cell level, store one bit for each cell classified as transparent to quickly skip itas transparent to quickly skip it
16Stefan Bruckner Computergraphik @ TU Wien
Results (2)Results (2)
Intel Pentium M 1600 MHzIntel Pentium M 1600 MHz(software capture)(software capture)
Visible MaleVisible Male(587 x 341 x 1878)(587 x 341 x 1878)
17Stefan Bruckner Computergraphik @ TU Wien
ConclusionsConclusions Alternative memory layouts are the key to Alternative memory layouts are the key to
handling large datasetshandling large datasets Sub second frame rates for large datasets Sub second frame rates for large datasets
on a standard notebookon a standard notebook Fully interactive volume visualization of large Fully interactive volume visualization of large
data on commodity hardware is within reachdata on commodity hardware is within reach Future work: Use bricked memory layout for Future work: Use bricked memory layout for
compression and out-of-core renderingcompression and out-of-core rendering