此答案无法满足您对参考的要求,但作为评论发布太长了。
首先,计算机生成图像的深度缓冲区压缩可能适用于您的情况。通常这种压缩是在硬件级别使用透明接口完成的,因此它通常被设计为简单快速。鉴于此,搜索深度缓冲区压缩可能是值得的。
对于基于变换的压缩器(DCT、小波等),您将遇到的主要问题之一是没有简单的方法来找到满足您的硬最大误差标准的紧凑系数。(你最终遇到的问题看起来很像线性规划。小波可以在它们的大多数基向量中具有局部行为,这可能会有所帮助,但它仍然相当不方便。)为了达到你想要的精度,你可能需要添加另一个细化步骤,但这也会增加更多的计算时间和复杂性,并且会引入另一层不完美的熵编码,从而导致压缩效率的损失。
你想要的更像是无损压缩而不是有损压缩。在这种情况下,一种方法是简单地丢弃错误阈值以下的位:如果您的最大允许错误为 X 并且您的深度表示为整数,则将您的深度整数除以 X,然后应用无损压缩。
您面临的另一个问题是深度的表示——根据您的情况,它可能是浮点数、整数、可能在投影坐标系中,甚至更奇怪。
鉴于这些限制,我推荐像
BTPC这样的方案,因为它允许更容易适应的类小波方案,其中错误更清晰地定位,更容易理解和解释。此外,BTPC 对多种类型的图像表现出很强的抵抗力,并且能够以低保真度损失处理连续渐变和锐利边缘——这正是您正在寻找的那种特征。
由于 BTPC 是预测性的,因此深度格式的存储方式并不重要——您只需修改预测器以将坐标系和数字类型(整数与浮点数)考虑在内。
由于 BTPC 不做太多的数学运算,它也可以在通用 CPU 上运行得非常快,尽管它可能不像您希望的那样容易矢量化。(听起来你可能正在做低级优化游戏编程,所以这对你来说可能是一个认真的考虑。)
如果您正在寻找更容易实现的东西,我建议您使用带有Golomb-Rice编码器的“过滤器”类型的方法(类似于PNG )。您可以编码到“足够好”的程度,而不是完美地编码增量以结束无损压缩。与量化然后无损编码风格的压缩器相比,这样做的好处是您可以潜在地保持更多的连续性。