适用于少量数据的良好无损压缩算法?

时间:2014-02-11 08:58:10

标签: cuda compression gpgpu

我正在寻找一种良好的无损压缩算法,可以非常快速地压缩/解压缩少量数据,例如介于0和1之间的256个浮点数。我知道RLE但也许有更好的东西。

背景是我正在使用CUDA处理体积数据(例如384³浮点数)而不是显式存储卷我想将其划分为8x8x4大小的块并存储压缩块。 CUDA内核(每个块由8x8x4线程组成)解压缩相应的块,对其进行处理并再次压缩它。

我很感激任何建议!

2 个答案:

答案 0 :(得分:3)

良好的无损算法取决于您拥有的float数量的类型。 对于介于0和1之间的float,您可能具有几乎相同的指数子值。 你知道float是一个标志,一个尾数和一个指数。 如果它们都是> 0,则符号始终相同,不存储它。

将指数装在一起可以很好;这样你只需要存放mantissae。

答案 1 :(得分:0)

您可以对数字进行排序,然后将它们存储为位置和差异。您可以根据需要将它们组合在一起。差异可以编码为只存储分母的分数。

相关问题