SPERR icon indicating copy to clipboard operation
SPERR copied to clipboard

Compression fails for large quantization values

Open lindstro opened this issue 3 years ago • 1 comments

Sperr has difficulties compressing certain data sets when the quantization level is high. For instance, using the Nyx temperature field from SDRBench, the following fails:

compressor_3d --dims 512 512 512 -q 20 -t 1e30 -o /tmp/temperature.sperr temperature.bof
Compression failed!

The same command works when reducing the quantization level to 19.

To avoid such failures, can you provide any guidance on allowable quantization levels? For instance, are they directly correlated with the data range?

lindstro avatar Jun 24 '22 21:06 lindstro

Hi @lindstro , you might be running an older version; I've actually provided a more informative message in this case: Compression failed because q is set too big! Also, if you run the command line program without specifying -t 1e30, it will not attempt any outlier correction.

It's directly correlated to the range of the resulting wavelet coefficients, and is probably loosely correlated to the input data range.

This will not be a problem in the near future I imagine. I'm currently developing a mechanism to automatically select q based on the amount of error quantization introduces. (Because of the near-orthogonal nature of CDF wavelets, error in coefficients is close to error in input data.) I'll share more results when I have the implementation ready.

shaomeng avatar Jun 24 '22 21:06 shaomeng

The current implementation picks q automatically, so this issue no longer applies!

shaomeng avatar Oct 04 '24 00:10 shaomeng