Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 压缩递增数据的最佳方法_C_Compression_X86 64 - Fatal编程技术网

C 压缩递增数据的最佳方法

C 压缩递增数据的最佳方法,c,compression,x86-64,C,Compression,X86 64,我有一个向量,在这里我保存一个递增的数据。通常,向量的每个元素都是一个64位长的变量。然而,很可能两个连续元素之间的差异非常小,因此,例如,我们可以有一个如下的序列 1, 34, 37, 42, 45, 1098, 1200, 1211, 1938 压缩此数据的最佳方式是什么。理想的做法是保留差异,并有一个头字节来定义差异有多大,是仅仅是一个字节、一个字、两个字等等,还是有更好的方法来压缩这种增量数据 编辑 我需要在线压缩,也就是把数据放在向量中。你可以假设一个动态扩展的向量。听起来你需要一些

我有一个向量,在这里我保存一个递增的数据。通常,向量的每个元素都是一个64位长的变量。然而,很可能两个连续元素之间的差异非常小,因此,例如,我们可以有一个如下的序列

1, 34, 37, 42, 45, 1098, 1200, 1211, 1938
压缩此数据的最佳方式是什么。理想的做法是保留差异,并有一个头字节来定义差异有多大,是仅仅是一个字节、一个字、两个字等等,还是有更好的方法来压缩这种增量数据

编辑
我需要在线压缩,也就是把数据放在向量中。你可以假设一个动态扩展的向量。

听起来你需要一些东西(正如你自己已经说过的)比如差分调制。也许这会给你一些启发:

听起来你需要一些东西(就像你自己说过的那样),比如差分调制。也许这会给你一些启发:

当增量通常很小时,这里有一个非常简单的策略:


  • 如果增量,这里有一个非常简单的策略,用于确定增量通常很小的情况:


  • 如果增量为,您是否有一个固定长度的向量要完全压缩和存储,或者您是否有一个生成需要在线压缩和存储的值的过程?您的意思是在将此数据保存到磁盘时,还是希望在内存中进行压缩?如果是后者,您希望能够对数据执行哪些操作?我指的是动态操作。在我的问题中,请参见下面的编辑。您是否有一个固定长度的向量要完全压缩和存储,或者您是否有一个生成需要在线压缩和存储的值的过程?您的意思是在将此数据保存到磁盘时,还是希望在内存中进行压缩?如果是后者,您希望能够对数据执行哪些操作?我指的是动态操作。请看下面我的问题中的编辑。这与相同,对吗?还有其他技术可以提供更好的压缩,但它们都要复杂得多。这似乎正是我的意思。谢谢,我知道这个编码有一个名字,但我总是忘记它!这跟,对吧??还有其他技术可以提供更好的压缩,但它们都要复杂得多。这似乎正是我的意思。谢谢,我知道这个编码有一个名字,但我总是忘记它!
    0xxxxxxx
    
    1xxxxxxx 0xxxxxxx