Author_Institution :
Center for Appl. Sci. Comput., Lawrence Livermore Nat. Lab., Livermore, CA, USA
Abstract :
Current compression schemes for floating-point data commonly take fixed-precision values and compress them to a variable-length bit stream, complicating memory management and random access. We present a fixed-rate, near-lossless compression scheme that maps small blocks of 4d values in d dimensions to a fixed, user-specified number of bits per block, thereby allowing read and write random access to compressed floating-point data at block granularity. Our approach is inspired by fixed-rate texture compression methods widely adopted in graphics hardware, but has been tailored to the high dynamic range and precision demands of scientific applications. Our compressor is based on a new, lifted, orthogonal block transform and embedded coding, allowing each per-block bit stream to be truncated at any point if desired, thus facilitating bit rate selection using a single compression scheme. To avoid compression or decompression upon every data access, we employ a software write-back cache of uncompressed blocks. Our compressor has been designed with computational simplicity and speed in mind to allow for the possibility of a hardware implementation, and uses only a small number of fixed-point arithmetic operations per compressed value. We demonstrate the viability and benefits of lossy compression in several applications, including visualization, quantitative data analysis, and numerical simulation.
Keywords :
computer graphics; data compression; data visualisation; embedded systems; floating point arithmetic; graphics processing units; random-access storage; storage management; bit rate selection; data access; data visualization; embedded coding; fixed-point arithmetic operations; fixed-precision values; fixed-rate compressed floating-point arrays; fixed-rate texture compression methods; floating-point data; graphics hardware; hardware implementation; lossy compression; memory management; near-lossless compression scheme; numerical simulation; orthogonal block transform; per-block bit stream; quantitative data analysis; read and write random access; scientific applications; software write-back cache; variable-length bit stream; Bandwidth allocation; Computational modeling; Data visualization; Encoding; Floating-point arithmetic; Image coding; Data compression; embedded coding; floating-point arrays; orthogonal block transform;