使用位压缩



最近我一直在考虑计算机上的压缩,偶然发现了一个问题,"为什么按位压缩在大文件中不常见?我试着环顾四周,没有找到任何人在谈论这个话题,至少我的意思是,我可能不是在谈论同一个话题,或者没有使用正确的名称,所以我会解释我的想法。
假设我们有以下字符串"Hi I'm a string!"
它在二进制中的值为:

<块引用类>

01001000011010010010000001001001001001110110110100100000011000010010000001110011011101000111001001101001011011100110011100100001

正如您在二进制序列中看到的,还有多个重复出现的 0 和 1 序列。我的想法是删除它们,并包含一个索引文件,准确说明您需要添加 0 或 1 的位置以及数量,例如让我们将其分解为前三个字节:

<块引用类>

01001000 01101001 00100000

索引文件将如下所示:
[2,1] [5,3]
[1,1] [5, 1]
[0,1] [3, 4]
二进制文件将是:

01010 010101 010当然,因为会有填充位直到它达到
N%8 == 0
我的问题是为什么这种类型的压缩不常见\存在,如果是,我很想看到它在现实世界中实际使用的示例,如果没有,我很想知道为什么不使用它。

此算法适用于某些类型的数据。不过,IS远不如正在使用的其他算法有效。

例如,算法的LZ工具可以引用以前见过的数据。它可以像您的算法一样引用零字符串,但它也可以引用任何其他模式。它更笼统。

我不认为您的算法会用普通英语文本实现压缩。1 位太多,存储位位置需要很多位。

最新更新