使用比特压缩

时间:2016-03-02 13:42:25

标签: compression bit

最近我一直在考虑在计算机上进行压缩,并偶然发现了这个问题,为什么对于大型文件来说,为什么按位压缩不常见?'。 我试着环顾四周,并没有设法找到任何人谈论这个主题,至少我的意思是,我可能不是在谈论相同的主题,或者没有使用正确的名称,所以我会这样做解释我的想法。
假设我们有以下字符串var Dog = function(name) { this.dogName = name; this.sayGrr = function(string) { console.log('Grrr!') } }; ... Animal.prototype = { makeItCat: function() {}, makeItDog: function(name) { Dog.call(this, name); }, }; 它的二进制值是:

  

01001000011010010010000001001001001001110110110100100000011000010010000001110011011101000111001001101001011011100110011100100001

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

  

01001000 01101001 00100000

索引文件如下所示:
[2,1] [5,3]
[1,1] [5,1]
[0,1] [3,4]
二进制文件将是:
"Hi I'm a string!"
当然,因为在到达01010 010101 010之前会有填充位 我的问题是,为什么这种类型的压缩不常见,如果它是我希望看到它在现实世界中实际使用的一个例子,如果它不是我想知道为什么它没有被使用。

1 个答案:

答案 0 :(得分:0)

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

例如,算法的LZ工具可以参考之前看到的数据。它可以像您的算法一样引用零字符串,但它也可以引用任何其他模式。它更通用。

我不认为您的算法会使用常见的英文文本来实现压缩。有太多的1位存储位位需要很多位。