怎样把1kB二进制文件无损压缩到800字节或以下?
怎样把1kB二进制文件无损压缩到800字节或以下?
About
你这个数据可以压缩的。
你首先要明白数据的相关性在哪里?
比如视频就是三维相关性,图片就是二维相关性,而文本就是一维相关性。
你看哈,如果是图片的话,那么已经知道两个连续的像素值不会突变,那我们能不能取一个中心点,那么其他附近的像素保存为和中心点的差值呢?
继续优化,能不能把5*5的中心点改为(2,2)和(4,4)的平均值呢?
OK,这就是简易算法实现的无损压缩,被广泛应用于各种格式当中。
而你的数据包含了大量的0,很显然是存在一定的富余的。
具体相关性你要结合数据特性自己分析一下。
我举个最简单的例子,对于0 00000000,你就可以改为08,将长度为n的改为0(n-1)这样的格式,不就相当于实现了压缩吗?
注:如果真的出现数据08,可以将数据改为0808。