compression domain volume rendering

23
Compression Domain Volume Rendering Jean Shneider and Rudiger Westermann Computer graphics and Visualization group Technical university Munich

Upload: orestes-kristopher

Post on 30-Dec-2015

31 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: Compression Domain Volume Rendering

Compression Domain Volume Rendering

Jean Shneider and Rudiger Westermann

Computer graphics and Visualization groupTechnical university Munich

Page 2: Compression Domain Volume Rendering

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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!