Efficient Volume Visualization of Large Medical Datasets Stefan

  • Slides: 17
Download presentation
Efficient Volume Visualization of Large Medical Datasets Stefan Bruckner Institute of Computer Graphics and

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 (>

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

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

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)

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

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

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

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

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

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

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.

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

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

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 (1) Stefan Bruckner 15 Computergraphik @ TU Wien

Results (2) Visible Male (587 x 341 x 1878) Intel Pentium M 1600 MHz

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

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