
达能
根据香农的信息理论,理论上不存在能够对所有数据都适用的无损压缩方法。这是因为信息熵是一个固定值,无法被减少。如果数据位数减少了,那么信息熵必然会降低,从而导致表
达能力下降。我们日常所说的无损压缩,其实是指可以反复压缩和恢复而不丢失数据的过程。但实际上,这种所谓的无损只是因为文件本身的特性符合某种特定情况,才让我们感觉实现了无损压缩。压缩的本质并不是真正减少信息量,而是将损失转移到你不关注的地方。例如,假设有一类信息中,10%的数据是无法辨识且无关紧要的,那么设计一个压缩算法让这些数据被丢弃,就可以被认为是一个有效的压缩算法。它成功地将损失限制在了你不需要的部分。举个具体的例子来说明。假如你只有两个比特(bit)的数据,总共有四种可能性:00、01、10 和 11。如果要完整传递这些数据,那么至少需要两个比特,这意味着在这种情况下无法进一步压缩。然而,如果我们事先知道第一个比特和第二个比特总是相同的,那么就可以只用一个比特来表示这两个比特的数据。这看起来像是实现了无损压缩,数据量减少了一半。但问题随之而来:解码方如何知道第一个比特和第二个比特必然相同这一规则?在实际应用中,有两种解决方法。第一种是提前与解码方约定好数据的规则,比如约定第一个比特和第二个比特一定相同;第二种是通过数据包本身传递这些规则。然而,第二种方法可能会导致一种常见的情况:压缩后数据包反而变大了。而第一种方法虽然能有效压缩数据,但会限制某些特定数据(如10或01)无法被正确传递,因为在第一步就人为降低了信息熵,从而可以用更少的比特来传递数据。综上所述,真正的无损压缩并不存在,我们所看到的无损效果,其实是基于特定条件下的数据特性和规则约定实现的。这样解释之后,应该不会再有人对此产生误解了吧。