|
发表于 2008-3-30 21:00:26
|
显示全部楼层
原帖由 小白 于 2008-3-30 09:31 发表 
以前看见过一个荒谬的说法,说WAV压缩成APE的机制是绝对精确的,比如一串100001的二进制信号里有连续4个0,压缩时就把4和0压缩为某种特定记号. 还原时还原出4个0就是了 ... 很荒谬.
事实上我看了MONKEY网站的一些介绍,觉得APE压缩过程还是比较复杂的,不是一个非常简单的算法. 可是网站没有公开更深细节.
但有意思的一点是,同一个音频文件,你两次去压缩为APE,出来的APE文件是不同的(大小很不相同). 然而这两个不同的APE文件,解压缩却都可以还原成同一个WAV文件.
我不懂这里面的软件程序和算法. 希望懂软件的朋友赐教为什么是如此. APE的算法究竟机理如何,为什么同一个文件不同时候会压缩成不同的APE,而不同的APE却又都能还原为一个WAV. 如果简单去理解,一个固定的数学算法,针对一个确定的文件,应该任何时候都出来一个固定的APE结果. 然而事实并非如此.
白版主观臆断的成分还是很多的,所谓的“很荒谬的说法”其实的确是事实的一部分。
任何包含信息的数据都有“信息熵”这样的一个概念,这个概念可以简单理解为“能够还原出数据中包含的所有信息的最小集合”,无损压缩的目的就是尽可能得趋向于“信息熵”这个理论极限。
无损压缩是不丢失信息熵的,所以任何数据连同其携带的信息都能被完全还原出来。
为啥压缩同一个wav文件出来的ape文件大小可能不同?
那么为啥压缩同一个word文件,选用不同的winzip或者winrar(格式不同),选用不同的压缩方式(速度和倍率),压出来的压缩文件大小也不同?
白版有遇到过压缩(打包)一个word文件,再解压出来被改了个字符或者标点么?我想是没有吧,因为这是无损压缩,信息熵都被完全保留了。
一个固定的数学算法,数学模型,针对一个确定的文件,只有在这个模型中确定了参数和变量后,才会得到确定结果。 |
|