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

Slides:



Advertisements
Similar presentations
Christian Lauterbach COMP 770, 2/16/2009. Overview  Acceleration structures  Spatial hierarchies  Object hierarchies  Interactive Ray Tracing techniques.
Advertisements

1 Parallel Scientific Computing: Algorithms and Tools Lecture #2 APMA 2821A, Spring 2008 Instructors: George Em Karniadakis Leopold Grinberg.
Computation I pg 1 Embedded Computer Architecture Memory Hierarchy: Cache Recap Course 5KK73 Henk Corporaal November 2014
Interactive Rendering using the Render Cache Bruce Walter, George Drettakis iMAGIS*-GRAVIR/IMAG-INRIA Steven Parker University of Utah *iMAGIS is a joint.
A Coherent Grid Traversal Algorithm for Volume Rendering Ioannis Makris Supervisors: Philipp Slusallek*, Céline Loscos *Computer Graphics Lab, Universität.
Render Cache John Tran CS851 - Interactive Ray Tracing February 5, 2003.
Caching and Virtual Memory. Main Points Cache concept – Hardware vs. software caches When caches work and when they don’t – Spatial/temporal locality.
Computer Organization CS224 Fall 2012 Lesson 44. Virtual Memory  Use main memory as a “cache” for secondary (disk) storage l Managed jointly by CPU hardware.
Fast Volume Rendering Using a Shear-Warp Factorization of the Viewing Transformation Philippe Larcoute & Marc Levoy Stanford University Published in SIGGRAPH.
The Discrete Ray-casting Algorithm Qiang Xue Jiaoying Shi State Key Lab Of CAD&CG Zhejiang University.
Efficient Sparse Voxel Octrees
Introduction to Volume Rendering Presented by Zvi Devir.
Last Time –Main memory indexing (T trees) and a real system. –Optimize for CPU, space, and logging. But things have changed drastically! Hardware trend:
Memory Efficient Acceleration Structures and Techniques for CPU-based Volume Raycasting of Large Data S. Grimm, S. Bruckner, A. Kanitsar and E. Gröller.
Hardware-Based Nonlinear Filtering and Segmentation using High-Level Shading Languages I. Viola, A. Kanitsar, M. E. Gröller Institute of Computer Graphics.
Accelerating Marching Cubes with Graphics Hardware Gunnar Johansson, Linköping University Hamish Carr, University College Dublin.
An Intelligent Cache System with Hardware Prefetching for High Performance Jung-Hoon Lee; Seh-woong Jeong; Shin-Dug Kim; Weems, C.C. IEEE Transactions.
Afrigraph 2004 Massive model visualization Tutorial A: Part I Rasterization Based Approaches Andreas Dietrich Computer Graphics Group, Saarland University.
Basics of Operating Systems March 4, 2001 Adapted from Operating Systems Lecture Notes, Copyright 1997 Martin C. Rinard.
Sensor Networks Storage Sanket Totala Sudarshan Jagannathan.
I NTERACTIVE V OLUME R ENDERING FOR V IRTUAL C OLONOSCOPY IEEE Proceedings of Visualization, Phoenix, U.S.A., Oct. 1997, pp. 433 – 436 Presented.
Computer Graphics 2 Lecture x: Acceleration Techniques for Ray-Tracing Benjamin Mora 1 University of Wales Swansea Dr. Benjamin Mora.
Caching and Virtual Memory. Main Points Cache concept – Hardware vs. software caches When caches work and when they don’t – Spatial/temporal locality.
Page 19/17/2015 CSE 30341: Operating Systems Principles Optimal Algorithm  Replace page that will not be used for longest period of time  Used for measuring.
The Visibility Problem In many environments, most of the primitives (triangles) are not visible most of the time –Architectural walkthroughs, Urban environments.
Lecture 3 : Direct Volume Rendering Bong-Soo Sohn School of Computer Science and Engineering Chung-Ang University Acknowledgement : Han-Wei Shen Lecture.
So far we have covered … Basic visualization algorithms Parallel polygon rendering Occlusion culling They all indirectly or directly help understanding.
1 Memory Management 4.1 Basic memory management 4.2 Swapping 4.3 Virtual memory 4.4 Page replacement algorithms 4.5 Modeling page replacement algorithms.
Memory and cache CPU Memory I/O. CEG 320/52010: Memory and cache2 The Memory Hierarchy Registers Primary cache Secondary cache Main memory Magnetic disk.
12/4/2001CS 638, Fall 2001 Today Managing large numbers of objects Some special cases.
Interactive Visualization of Exceptionally Complex Industrial CAD Datasets Andreas Dietrich Ingo Wald Philipp Slusallek Computer Graphics Group Saarland.
1 Linux Operating System 許 富 皓. 2 Memory Addressing.
Real-time Graphics for VR Chapter 23. What is it about? In this part of the course we will look at how to render images given the constrains of VR: –we.
Interactive Rendering With Coherent Ray Tracing Eurogaphics 2001 Wald, Slusallek, Benthin, Wagner Comp 238, UNC-CH, September 10, 2001 Joshua Stough.
Evaluation of a Bricked Volume Layout for a Medical Workstation based on Java Peter Kohlmann, Stefan Bruckner, Armin Kanitsar, M. Eduard Gröller Institute.
An Enhanced Splatting Method Graphics and Visualization Group Department of Computer Science The University of Auckland Peter Kulka & Richard Lobb.
Computer Graphics II University of Illinois at Chicago Volume Rendering Presentation for Computer Graphics II Prof. Andy Johnson By Raj Vikram Singh.
Coherent Hierarchical Culling: Hardware Occlusion Queries Made Useful Jiri Bittner 1, Michael Wimmer 1, Harald Piringer 2, Werner Purgathofer 1 1 Vienna.
Introduction: Memory Management 2 Ideally programmers want memory that is large fast non volatile Memory hierarchy small amount of fast, expensive memory.
3/16/04James R. McGirr1 Interactive Rendering of Large Volume Data Sets Written By : Stefan Guthe Michael Wand Julius Gonser Wolfgang Straβer University.
Virtual Memory Ch. 8 & 9 Silberschatz Operating Systems Book.
Volume Ray-Casting on Graphics Hardware
Operating Systems: Summary INF1060: Introduction to Operating Systems and Data Communication.
David Luebke 3/5/2016 Advanced Computer Graphics Lecture 4: Faster Ray Tracing David Luebke
Virtual Memory 1 Computer Organization II © McQuain Virtual Memory Use main memory as a “cache” for secondary (disk) storage – Managed jointly.
CHC ++: Coherent Hierarchical Culling Revisited Oliver Mattausch, Jiří Bittner, Michael Wimmer Institute of Computer Graphics and Algorithms Vienna University.
Image Fusion In Real-time, on a PC. Goals Interactive display of volume data in 3D –Allow more than one data set –Allow fusion of different modalities.
Memory Hierarchy and Cache. A Mystery… Memory Main memory = RAM : Random Access Memory – Read/write – Multiple flavors – DDR SDRAM most common 64 bit.
Memory Management & Virtual Memory. Hierarchy Cache Memory : Provide invisible speedup to main memory.
CS161 – Design and Architecture of Computer
Memory and cache CPU Memory I/O.
Section 9: Virtual Memory (VM)
ITEC 202 Operating Systems
Ramya Kandasamy CS 147 Section 3
Combining Edges and Points for Interactive High-Quality Rendering
Virtual Memory Use main memory as a “cache” for secondary (disk) storage Managed jointly by CPU hardware and the operating system (OS) Programs share main.
Tamas Szalay, Volker Springel, Gerard Lemson
Instructor: Junfeng Yang
Hybrid Ray Tracing of Massive Models
Chapter 8 Digital Design and Computer Architecture: ARM® Edition
Memory and cache CPU Memory I/O.
Adapted from slides by Sally McKee Cornell University
Morgan Kaufmann Publishers Memory Hierarchy: Virtual Memory
Paging Memory Relocation and Fragmentation Paging
Virtual Memory Lecture notes from MKP and S. Yalamanchili.
Virtual Memory Use main memory as a “cache” for secondary (disk) storage Managed jointly by CPU hardware and the operating system (OS) Programs share main.
An Analysis of Region Clustered BVH Volume Rendering on GPU
Chapter Contents 7.1 The Memory Hierarchy 7.2 Random Access Memory
Memory Management & Virtual Memory
Presentation transcript:

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

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

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

Stefan TU Wien 4 Memory Hierarchy Hierarchy of successively larger but slower memory technology Hierarchy of successively larger but slower memory technology Avoid frequent access to higher levels (like main memory) Avoid frequent access to higher levels (like main memory) Exploit spatial and temporal locality Exploit spatial and temporal locality L1 cache main memory L2 cache hard disk CPU

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

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

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

Stefan TU Wien 8 Bricked Memory Layout (3) volume rays Process all resample locations within a brick before going to the next one Brick-wise processing scheme

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

Stefan TU Wien 10 Bricked Memory Layout (5) How to efficiently access neighboring samples? How to efficiently access neighboring samples? brick boundarysample

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

Stefan TU Wien 12 Linear vs. Bricked Memory Layout brick size in KB linear volume layout cache thrashing + bricking overhead optimal brick size speedup factor speedup: 2.8

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

Stefan TU Wien 14 Empty 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 plane to find first entry points of rays  For finer resolution, use a min-max octree per brick and project the octree  At cell level, store one bit for each cell classified as transparent to quickly skip it

Stefan TU Wien 15 Results (1)

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

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