Volume Compression and Rendering

Variable Length Coding for GPU-Based Direct Volume Rendering

Christmas tree data set: See case study for further information.

Abstract

The sheer size of volume data sampled in a regular grid requires efficient lossless and lossy compression algorithms that allow for on-the-fly decompression during rendering. While all hardware assisted approaches are based on fixed bit rate block truncation coding, they suffer from degradation in regions of high variation while wasting space in homogeneous areas. On the other hand, vector quantization approaches using texture hardware achieve an even distribution of error in the entire volume at the cost of storing overlapping blocks or bricks. However, these approaches suffer from severe blocking artifacts that need to be smoothed over during rendering. In contrast to existing approaches, we propose to build a lossy compression scheme on top of a state-of-the-art lossless compression approach built on non-overlapping bricks by combining it with straight forward vector quantization. Due to efficient caching and load balancing, the rendering performance of our approach improves with the compression rate and can achieve interactive to real-time frame rates even at full HD resolution.

Publications

Variable Length Coding for GPU-Based Direct Volume Rendering
Stefan Guthe and Michael Goesele
In: Vision, Modeling and Visualization, 2016
[Pre-Print][Bibtex]
GPU-Based Lossless Volume Data Compression
Stefan Guthe and Michael Goesele
In: 3DTV-Conference: The True Vision-Capture, Transmission and Display of 3D Video (3DTV-CON), 2016
[Pre-Print][Bibtex]

Further Information

Source Code

volcomp-cmake-0.1.tar.gz for building with cmake (Linux)

volcomp-vs2013-0.1.zip for building with MS Visual Studio 2013 (Windows)

Example Datasets

Bucky-32x32x32_8.ddv (8 bit per voxel)

christmastree-denoise-512x499x512_16.ddv (12 bit per voxel) noise removed version; original can be found at https://www.cg.tuwien.ac.at/research/vis/datasets/

present-denoise-492x492x442_16.ddv (12 bit per voxel) noise removed version; original can be found at https://www.cg.tuwien.ac.at/research/vis/datasets/

Feedback

If you find the source code provided useful in any way, please send us a short email to .

If not, please send us comments as to how to improve this release.

License

The code on this website is distributed under both the New BSD License and a commercial license. If you want to license the code for commercial purposes, like incorporating parts of it into a proprietary project or link against our libraries without the restrictions imposed by the New BSD License, please get in contact with us. For further information, please see the LICENSE.txt file which is contained in the code distribution.

The code on this website is free software; you can redistribute it and/or modify it under the terms of the New BSD License. A copy of the New BSD License is available at http://opensource.org/licenses/BSD-3-Clause. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.