Efficient Volume Visualization of Large Medical Datasets Stefan

















- Slides: 17

Efficient Volume Visualization of Large Medical Datasets Stefan Bruckner Institute of Computer Graphics and Algorithms Vienna University of Technology

Motivation n Volume visualization: Important tool in medical environments n CT angiography run-offs (> 1000 slices) are used in clinical practice n Scanner resolutions are getting higher (1024 x 1024 per slice) Memory access is increasingly becoming a bottleneck Stefan Bruckner 2 Computergraphik @ TU Wien

Outline n Memory hierarchy n Linear memory layouts n Bricked memory layouts n Gradient caching n Empty space skipping n Results Stefan Bruckner 3 Computergraphik @ TU Wien

Memory Hierarchy n Hierarchy of successively larger but slower memory technology n Avoid frequent access to higher levels (like main memory) n Exploit spatial and temporal locality CPU Stefan Bruckner L 2 cache L 1 cache 4 main memory hard disk Computergraphik @ TU Wien

Linear Memory Layout volume Store volume as a stack of 2 D images (slices) Bad cache behavior for different viewing directions rays Stefan Bruckner 5 Computergraphik @ TU Wien

Bricked Memory Layout (1) volume Store volume as a set of equally sized cubes (bricks) Nearly constant cache behavior for all viewing directions rays Stefan Bruckner 6 Computergraphik @ TU Wien

Bricked Memory Layout (2) volume Process all resample locations within a brick before going to the next one Each brick is only loaded from memory once rays Stefan Bruckner 7 Computergraphik @ TU Wien

Bricked Memory Layout (3) volume Process all resample locations within a brick before going to the next one 7 8 9 4 5 6 1 2 3 Brick-wise processing scheme rays Stefan Bruckner 8 Computergraphik @ TU Wien

Bricked Memory Layout (4) n How to efficiently access neighboring samples? u Problem: A certain neighborhood of samples is needed at every resample location u Offsets to neighboring samples are constant in linear volume layout u More complicated for bricked volume layouts Stefan Bruckner 9 Computergraphik @ TU Wien

Bricked Memory Layout (5) n How to efficiently access neighboring samples? brick boundary sample Stefan Bruckner 10 Computergraphik @ TU Wien

Bricked Memory Layout (6) n How to efficiently access neighboring samples? u 27 distinct cases in 3 D for a 26 neighborhood u Determine case from current position within brick u Offsets to neighboring samples are stored in lookup table Stefan Bruckner 11 Computergraphik @ TU Wien

Linear vs. Bricked Memory Layout speedup factor 4 optimal brick size 3 speedup: 2. 8 2 cache thrashing + bricking overhead 1 1 Stefan Bruckner 8 64 512 12 4096 32768 linear volume layout brick size in KB Computergraphik @ TU Wien

Gradient Caching n Pre-computed gradients u For sufficient quality, memory requirements are at least doubled n Compute gradients on-the-fly u Caching has to be performed u Brick-wise traversal is beneficial u Store gradients in a brick-sized cache Stefan Bruckner 13 Computergraphik @ TU Wien

Empty Space Skipping n Medical datasets contain large empty regions n How do we quickly traverse this empty space? u Project all non-transparent bricks onto image plane to find first entry points of rays u For finer resolution, use a min-max octree per brick and project the octree u At cell level, store one bit for each cell classified as transparent to quickly skip it Stefan Bruckner 14 Computergraphik @ TU Wien

Results (1) Stefan Bruckner 15 Computergraphik @ TU Wien

Results (2) Visible Male (587 x 341 x 1878) Intel Pentium M 1600 MHz (software capture) Stefan Bruckner 16 Computergraphik @ TU Wien

Conclusions n Alternative memory layouts are the key to handling large datasets n Sub second frame rates for large datasets on a standard notebook n Fully interactive volume visualization of large data on commodity hardware is within reach n Future work: Use bricked memory layout for compression and out-of-core rendering Stefan Bruckner 17 Computergraphik @ TU Wien