We present ATC, a C++ library for advanced Tucker-based lossy compression of dense multidimensional numerical data in a shared-memory parallel setting, based on the sequentially truncated higher-order singular value decomposition (ST-HOSVD) and bit plane truncation. Several techniques are proposed to improve speed, memory usage, error control and compression rate. First, a hybrid truncation scheme is described which combines Tucker rank truncation and TTHRESH quantization [Ballester-Ripoll et al., IEEE Trans. Visual. Comput. Graph., 2020]. We derive a novel expression to approximate the error of truncated Tucker decompositions in the case of core and factor perturbations. Furthermore, we parallelize the quantization and encoding scheme and adjust this phase to improve error control. Moreover, implementation aspects are described, such as an ST-HOSVD procedure using only a single transposition. We also discuss several usability features of ATC, including the presence of multiple interfaces, extensive data type support and integrated downsampling of the decompressed data. Numerical results show that ATC maintains state-of-the-art Tucker compression rates, while providing average speed-up factors of 2.2-3.5 and halving memory usage. Furthermore, our compressor provides precise error control, only deviating 1.4% from the requested error on average. Finally, ATC often achieves higher compression than non-Tucker-based compressors in the high-error domain.
翻译:我们提出了ATC,这是一个基于共享内存并行环境的C++库,用于对稠密多维数值数据进行基于高阶Tucker分解的有损压缩。该库基于顺序截断高阶奇异值分解(ST-HOSVD)和位平面截断技术。文中提出了若干技术以提升速度、内存使用效率、误差控制能力和压缩比。首先,描述了一种混合截断方案,该方案结合了Tucker秩截断和TTHRESH量化方法[Ballester-Ripoll等,《IEEE可视化与计算机图形学汇刊》,2020]。我们推导出一种新表达式,用于近似核张量和因子矩阵扰动情况下截断Tucker分解的误差。此外,我们并行化了量化与编码方案,并调整该阶段以改进误差控制。同时,本文阐述了实现细节,例如仅使用一次转置操作的ST-HOSVD流程。我们还讨论了ATC的多项可用性特性,包括多接口支持、全面的数据类型支持以及解压数据的集成降采样功能。数值实验结果表明,ATC在保持当前最优Tucker压缩比的同时,平均加速比达到2.2-3.5倍,并将内存使用量减半。此外,我们的压缩器具备精确的误差控制能力,实际误差与设定误差的平均偏差仅为1.4%。最后,在高误差域中,ATC通常能实现优于非Tucker型压缩器的压缩性能。