我是新来使用 Delta 编码来压缩 Hex 数据,我在wiki中使用了 C 实现,所以如果我的数据像 0xFFFFFFF,0xFFFFFFF,0xFFFFFFF,0xFFFFFFF,0xFFFFFFF 编码结果将如下:0xFFFFFFF,0x0000000,0x0000000,0x0000000 ,0x0000000 ,与其他无损算法的压缩率=原始大小/压缩大小不同,我发现数据的大小将像压缩前一样固定,那么我如何计算增量编码中的压缩率?以及如何压缩冗余增量?代码是:
{
unsigned char last = 0;
for (int i = 0; i < length; i++)
{
unsigned char current = buffer[i];
buffer[i] = current - last;
last = current;
}
}
void delta_decode(unsigned char *buffer, int length)
{
unsigned char last = 0;
for (int i = 0; i < length; i++)
{
unsigned char delta = buffer[i];
buffer[i] = delta + last;
last = buffer[i];
}
} ```