LAPLACIAN VOLUME PYRAMID

The Laplacian Volume pyramid ([2]) is a 3D extension of the 2D Laplacian image pyramid. With a Laplacian pyramid you can compress data and so it would be possible to use larger data sets or to decrease the hardware requirements. You can achieve with the Laplacian pyramid compression ratios like 10:1, but this is associated with a loss of quality. The construction of one level of the Laplacian pyramid consists of 3 steps. First a 5x5x5 Gaussian low-pass filter called REDUCE() is applied to the original volume data, so you get a lower resolution version of the input data. This new level of the Gaussian pyramid has only the half  resolution at each dimension. If you apply the inverse function of REDUCE() which is called EXPAND() you get an approximation of the level before, here the original data set, which have the same resolution. If you calculate the differences between the input data and the expanded data you get the respective level of the Laplacian pyramid. If you repeat this several times, but not to the possible top level, you get the Laplacian pyramid. Since the differences are nearly 0 and are also uniformly quantized you need fewer memory to store it, but it is also an error involved. The error depends on the number and the distribution of the quantization levels. You store only the highest level of the Gaussian pyramid which is not stored in the Laplacian pyramid and the Laplacian pyramid.

 Construction of one level of a Laplacian pyramid
Construction of one level of the Laplacian pyramid

For rendering with raycasting you reconstruct the subvolume containing the voxel you need. For the reconstruction you need only to run through the reverse construction process. Because cells are intersected by several rays also the same cells have to be reconstructed several times, so it takes tens of hours for rendering. Therefore a subvolume-cache is used and a so-called buffered subvolume array which contains the boundaries of the stored subvolumes. If you need a cell you check first the buffered subvolume array, if the cache contains it, you take it from the cache, otherwise you reconstruct the corresponding subvolume, replace the oldest subvolume in the cache and update the buffered subvolume array.

Construction and reconstruction of a Laplacian pyramid
Construction and Reconstruction of Laplacian pyramid
 
 
You can apply progressive refinement with Laplacian pyramid if you use a higher level of the reconstructed pyramid for rendering.
 
Progressive refinement with Laplacian pyramid
Progressive refinement with a Laplacian pyramid (6 levels)

In this implemented approach for example 16 MB data needs 1 MB for the Laplacian pyramid and 2 MB for the cache.

 

 Main Page