Sparse PDF Volumes for Consistent Multi-resolution Volume Rendering
1. Sparse PDF Volumes for Consistent Multi- Resolution Volume Rendering
Authors:
Ronell Sicat, KAUST
Jens Kruger, University of Duisburg-Essen
Torsten Moller, University of Vienna
Markus Hadwiger, KAUST
Presented by:
Subhashis Hazarika,
Ohio State University
3. Challenges
•Substitutes each voxel by a weighted average of its neighbourhood, this changes the distribution values in the volume. Standard approaches use a single value (mean) to represent the voxel footprint distribution.
•Application of transfer functions becomes incompatible and results in inconsistent image across resolution levels. (inconsistency artifacts).
•Ideally an accurate representation of voxel footprint would provide a consistent multi-resolution volume rendering.
–Histogram storage overhead.
–Application of transfer function becomes expensive.
3
9/11/2014
4. Proposed Idea
•A compact sparse pdf representation for voxels in 4D (joint space X range domain of the volume).
•Optimize the sparse pdf volume data structure for parallel rendering in GPU.
•A novel approach for computing a sparse 4D pdf approximation via a greedy pursuit algorithm.
•An out-of-core framework for efficient parallel computation of sparse pdf volumes for large scalar volume data.
4
9/11/2014
6. Basic Model
•Xp random variable for voxels associated with position p across different resolution levels.
•fp(r) pdf at position p, r is the intensity range of the volume data.
•t(r) transfer function in the domain of the range of the volume, r.
•Goal of the paper is to:
–Store fp(r) effectively and apply t(r)
–Challenge :
•Storage overhead
•How to evaluate eq 1.
6
9/11/2014
8. Hierarchy of 4D Gaussian Mixtures
•All the Gaussians at level m have the same standard deviation.
–Easy of using convolutions
–Don’t have to store s.d for all Gaussians.
•d
8
9/11/2014
9. Hierarchy Computation
•Initial Gaussian Mixture:
–Start at level l0 and Gaussian Mixture vo
–Standard deviation:
–Weight:
•Subsequent computation:
–Compute m from preceding level m.
–Low pass filter vm to avoid artifacts
•By updating spatial s.d and the coefficient ci.
–Our goal is to represent m with fewer Gaussians than vm
–km=km..
–This is done by sparse approximation to m.
9
9/11/2014
10. Sparse PDF Volume Computation
•Sparse Approximation Theory:
–H dictionary of atoms (basis functions)
–c is the coefficient vector that determines the linear combination that should best approximate v, given H.
–H in our case consists of translates of Gaussians.
–Target signal v to approximate is a chosen vm after low-pass filter.
–Inorder to obtain sparse representation, c should have as few non-zero elements as possible.
•An NP-hard problem.
•Pursuit Algorithm: greedy iterative method of finding sparse c.
–In each iteration the atom from H that best approximates the target function g(x) is picked by projecting the g(x) into the dictionary.
10
9/11/2014
11. Dictionary Projection as Convolution
•Consider 1D function g(x) that we want to approximate.
•h() dictionary of atoms, where u selects the atom
•We will project g(x) onto h(x) (i.e finding inner product of the two functions)
•All dictionary atoms are translates of the same kernel h(x), where h is symmetric around zero. Therefore in terms of kernels h(x).
•This converts the eq.9 to convolution form:
11
9/11/2014
12. Dictionary Projection as Convolution
•In order to determine the atom that best approximates g(x) we have to determine which atom results in the largest inner product.
•In terms of convolution:
•Observation: in order to find the dictionary element that best approximates g(x) we simply have to find the max of the function
12
9/11/2014
13. Gaussian Dictionaries & Mixtures
•Gaussian Dictionaries:
•Gaussian Mixture: the g(x) function that we approximate is given by k Gaussians with identical s.d.
13
9/11/2014
16. Sparse PDF Volume Data Structure
•Original volume is subdivided into bricks.
•At l0, stored in usual way, with one scalar per voxel.
•For the other levels, lm, m>0:
–1st sort the set of mixture component …………… based on spatial position p.
–For each voxel with position p we count how many tuples have the same p(p=pi)
–This count is stored in a coefficient count block.
–The pi value is dropped from the tuple and the r and c values are stored in coefficient info array.
16
9/11/2014