音频筑基:为啥一个压缩率概念,中文搜索结果都是错的?
- 缘起
- 概念分析
- 小结
缘起
最近看一些数据压缩类的文章,对不同场合下表达的压缩率概念分歧,产生了疑问。有的说,压缩率越小越好,有的又说,压缩率越大越好。
到底如何,我们一探究竟。省流不看版,可直接拉到最后看小结。
概念分析
用中文关键词压缩率
,谷歌一下结果有的是讲气体压缩(不在此文讨论范围),而讲数据压缩的呢,把我搅更晕了。不管是搜狗百科,还是百度百科,还是CSDN,定义都是:
压缩率(Compression rate),描述压缩文件的效果名,是文件压缩后的大小与压缩前的大小之比,例如:把100m的文件压缩后是90m,压缩率为90/100*100%=90%。
压缩率一般是越小越好,但是压得越小,解压时间越长。
我就不太理解了,直觉来看,压缩率衡量压缩的能力,不是越大越好吗?
于是,用英文关键词compression ratio
搜索了下,维基百科给出的结果是:
Data compression ratio is defined as the ratio between the uncompressed size and compressed size.
维基百科中文,link
也即压缩率定义:
- cr = uncompress_size / compress_size,
- cr, compression ratio
- 压缩率一般大于1,越大越好。
- 举例:比如原始文件15M,压缩后为1M,压缩率为:
15:1
。
- 相似概念:空间节省率 = sr = 1-compress/uncompress
- sr, saving ratio
- 范围
[0, 1)
, 越大越好,一般不超过1。 - 续前例:节省率sr=1-1/15=14/15=93%
- 相互转换:
sr = 1-1/cr=(cr-1)/cr
小结
综上,百度百科等说压缩率越小越好的,应该这么理解:比如50%,表示100M的文件,压缩后为50M,分子越小压缩率越高。应该是想说overall compressed size,相当于归一化了单位,来看压缩后的文件大小。 但这个不是主流的压缩率定义,注意区分。
压缩率常被误用为:cr = compressed/uncomressed
,从而有越小越好的概念。错误的人说多了,好像就对了。
核心点:
- 业界常用两种定义
- cr = uncompress_size / compress_size,压缩率一般大于1,越大越好。
- sr = 1-compress/uncompress=1-1/cr,空间节省率一般小于1,越大越好。