compression domain volume rendering
DESCRIPTION
Compression Domain Volume Rendering. Jean Shneider and Rudiger Westermann Computer graphics and Visualization group Technical university Munich. Motivation. Need to deal with data of increasing size: Large-scale Multi-dimensional Multi-parameter Increasing problems: Compression - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Compression Domain Volume Rendering](https://reader031.vdocuments.site/reader031/viewer/2022032804/56812a44550346895d8d714b/html5/thumbnails/1.jpg)
Compression Domain Volume Rendering
Jean Shneider and Rudiger Westermann
Computer graphics and Visualization groupTechnical university Munich
![Page 2: Compression Domain Volume Rendering](https://reader031.vdocuments.site/reader031/viewer/2022032804/56812a44550346895d8d714b/html5/thumbnails/2.jpg)
Motivation
Need to deal with data of increasing size:• Large-scale• Multi-dimensional• Multi-parameter
Increasing problems:• Compression• Representation• Rendering
We will adress all three problems!
![Page 3: Compression Domain Volume Rendering](https://reader031.vdocuments.site/reader031/viewer/2022032804/56812a44550346895d8d714b/html5/thumbnails/3.jpg)
Talk Outline
The Approach – Vector QuantizationQuality and speed
• Hierachical encoding• PCA-Split• Progressive encoding of time-resolved data
Multi-dimensional data
• Vectors of arbitrary length
Rendering from compressed data
• GPU-based decoding and rendering• Per-fragment evaluation• Interactive framerates
![Page 4: Compression Domain Volume Rendering](https://reader031.vdocuments.site/reader031/viewer/2022032804/56812a44550346895d8d714b/html5/thumbnails/4.jpg)
Talk OutlineThe Application – Volume Rendering
• Large-scale volumetric data sets• Time-varying sequences
16 MB / 14 fps 0.78 MB / 11 fps16 MB / 14 fps 0.78 MB / 11 fps
1.4 GB / 20 fps1.4 GB / 20 fps
70 MB / 24 fps70 MB / 24 fps
256^3, rendered from compressed256^3x89 timesteps
![Page 5: Compression Domain Volume Rendering](https://reader031.vdocuments.site/reader031/viewer/2022032804/56812a44550346895d8d714b/html5/thumbnails/5.jpg)
Vector Quantization - data fitting
Codebook Codebook CC
with codewordswith codewords
EncoderEncoderXXnn
iinn=E(X=E(Xnn))
Input mappingInput mapping
DecoderDecoder
X‘X‘nn=C(i=C(inn)) Output mappingOutput mapping
iinn
4D vectors
Introduces quantization error
-VQ assymetric, encoding expensive, decoding free => exploit this!
![Page 6: Compression Domain Volume Rendering](https://reader031.vdocuments.site/reader031/viewer/2022032804/56812a44550346895d8d714b/html5/thumbnails/6.jpg)
Vector Quantization
LBG-Algorithm• Linde, Buzo and Gray 1980• Iterative refinement of a previous Codebook• Sensitive to quality of first Codebook• Usually computationally expensive
Speed-Up possible (and necessary)• Partial searches• Fast searches• Better initial Codebook (i.e. PCA-Splits)
LBG-Algorithm can be fast!
![Page 7: Compression Domain Volume Rendering](https://reader031.vdocuments.site/reader031/viewer/2022032804/56812a44550346895d8d714b/html5/thumbnails/7.jpg)
Vector Quantization
The PCA-Split• Lensch et.al. 2001 – BRDF Compression• Covariance analysis to find optimal splitting plane• Cut a cluster of input vectors in two by this plane.• Plane is given by centroid of current set and largest
Eigenvector (= normal) of the Auto-Covariance Matrix
![Page 8: Compression Domain Volume Rendering](https://reader031.vdocuments.site/reader031/viewer/2022032804/56812a44550346895d8d714b/html5/thumbnails/8.jpg)
Vector Quantization
LBG as PCA post-processing• Increases fidelity• Leads to stable Voronoi-Regions• Only a few steps are necessary• Great speed-up compared to LBG only!
A series of LBG steps, codebook from last slide
![Page 9: Compression Domain Volume Rendering](https://reader031.vdocuments.site/reader031/viewer/2022032804/56812a44550346895d8d714b/html5/thumbnails/9.jpg)
Example
Full-color confocal microscopy scan, 5122x32xRGB
4D vectors, 2MB4D vectors, 2MBOriginal, 32MBOriginal, 32MB 32D vectors, 1MB32D vectors, 1MB
![Page 10: Compression Domain Volume Rendering](https://reader031.vdocuments.site/reader031/viewer/2022032804/56812a44550346895d8d714b/html5/thumbnails/10.jpg)
Hierarchical Vector Quantization
LaplaceLaplace
DecompositionDecomposition
3 freq bands - that is a combination of a smoothening and a difference filter. This results in a three level hierarchy of volumes
full
½ res
¼ res
![Page 11: Compression Domain Volume Rendering](https://reader031.vdocuments.site/reader031/viewer/2022032804/56812a44550346895d8d714b/html5/thumbnails/11.jpg)
Hierarchical Vector Quantization
4433 dim. VQ dim. VQ
223 3 dim. VQdim. VQ
Direct CopyDirect Copy
blocks 4^3 scalar samples together into one vectorCodebook
256 8D vectors
256 64D vectors
![Page 12: Compression Domain Volume Rendering](https://reader031.vdocuments.site/reader031/viewer/2022032804/56812a44550346895d8d714b/html5/thumbnails/12.jpg)
Hierarchical Vector Quantization
Output:• One RGB Index-Volume• Two Codebooks
RGB Index-Volume RGB Index-Volume 3D Texture 3D Texture
Codebooks Codebooks 2D 2D -Textures-Textures
![Page 13: Compression Domain Volume Rendering](https://reader031.vdocuments.site/reader031/viewer/2022032804/56812a44550346895d8d714b/html5/thumbnails/13.jpg)
Example
Visible Human (Male), RGB slice 2048x1216
Compression took 10.0 seconds, PSNR = 34.72dB
Original (7.1MB) Compressed (285KB)
Compression ration - 25:1
![Page 14: Compression Domain Volume Rendering](https://reader031.vdocuments.site/reader031/viewer/2022032804/56812a44550346895d8d714b/html5/thumbnails/14.jpg)
Timings
Reference System: P4 2.8GHz, 1GB memory
VHP Slice, 2048x1216 RGB 10.0 sec
Engine 2562x128 CT-Scan 19.0 sec
Skull 2563 CT-Scan 50.6 sec
Vortex Sequence, 1283x100 13 (5) min
Shockwave Sequence, 2563x89 29 (13) min
![Page 15: Compression Domain Volume Rendering](https://reader031.vdocuments.site/reader031/viewer/2022032804/56812a44550346895d8d714b/html5/thumbnails/15.jpg)
RenderingGPU-based decoding
• Indices stored in 3D RGB-texture (3/64th original size)• Decode index per block dependent fetch• Decode adress per block 43 adress texture
Decoding process in flatlandDecoding process in flatland
![Page 16: Compression Domain Volume Rendering](https://reader031.vdocuments.site/reader031/viewer/2022032804/56812a44550346895d8d714b/html5/thumbnails/16.jpg)
Rendering
Render 3D index and adress texture• Nearest neighbor interpolation for both
• GL_REPEAT for adress texture
Per-fragment decoding• Decode detail components and dependent fetch
• Add the details to average component (Red channel)
• Lookup result in 1D RGB transfer function
Problem:
Complex fragment shader slows down rendering
![Page 17: Compression Domain Volume Rendering](https://reader031.vdocuments.site/reader031/viewer/2022032804/56812a44550346895d8d714b/html5/thumbnails/17.jpg)
Rendering
Solution: Deferred Fragment Processing
Avoid decoding in empty regions. „Empty“ means:
a) -Transfer function maps 0 0.• Check on CPU• Switch between two possible rendering modes
b) Average value is 0 (Red channel)• Check in a first, simple fragment program• Fragment‘s depth value is set accordingly• Second pass: discard (early Z-Test) or render fragment• Full decoding only performed in second pass
![Page 18: Compression Domain Volume Rendering](https://reader031.vdocuments.site/reader031/viewer/2022032804/56812a44550346895d8d714b/html5/thumbnails/18.jpg)
2562x128 Engine CT Scan
19.0 seconds, PSNR = 36.17dB (P4 2.8GHz)
Original (8MB) – 19 fps Compressed (402KB) – 12 fps
![Page 19: Compression Domain Volume Rendering](https://reader031.vdocuments.site/reader031/viewer/2022032804/56812a44550346895d8d714b/html5/thumbnails/19.jpg)
2563 Skull CT Scan
50.6 seconds, PSNR = 35.35dB (P4 2.8GHz)
Original (16MB) – 14 fps Compressed (780KB) – 11 fps
![Page 20: Compression Domain Volume Rendering](https://reader031.vdocuments.site/reader031/viewer/2022032804/56812a44550346895d8d714b/html5/thumbnails/20.jpg)
Time-resolved Sequences
Exploit temporal coherences during compression:• Group of Frames (GOF)
First frame in a GOF:• PCA-Split followed by LBG-Refinement
Other frames:• LBG-refinement of last Index-Volume and Codebook
Result:• Great speed-up (factor 2 to 3)• Very large GOFs possible (64+ frames)• Virtually same fidelity as frame-by-frame
![Page 21: Compression Domain Volume Rendering](https://reader031.vdocuments.site/reader031/viewer/2022032804/56812a44550346895d8d714b/html5/thumbnails/21.jpg)
1283x100 Vortex-Simulation
5 minutes, PSNR = 34.43dB (P4 2.8 GHz)
Original (200MB) - 28 fps Compressed (11MB) - 16 fps
![Page 22: Compression Domain Volume Rendering](https://reader031.vdocuments.site/reader031/viewer/2022032804/56812a44550346895d8d714b/html5/thumbnails/22.jpg)
2563x89 Shockwave-Sequence
13 minutes, PSNR = 51.36dB (P4 2.8 GHz)
Original (1.4GB) - 20 fps Compressed (70MB) - 24 fps
![Page 23: Compression Domain Volume Rendering](https://reader031.vdocuments.site/reader031/viewer/2022032804/56812a44550346895d8d714b/html5/thumbnails/23.jpg)
Conclusions
• Compression ratios of approx. 20:1• Interactive rendering possible• Easy random access to each frame• Wide variety of data sets handled
Currently only nearest neighbor interpolation• Mainly limited by performance / instruction count.• Tri-linear interpolation can be done on newer GPUs!