1700506740
1700506741
如果要测算LZ77算法的压缩率,可以找一些体积较大的文件来做压缩测试,效果总体来说还是不错的(尤其是文本文件)。
1700506742
1700506743
我用手边的文本文件做了一个简单的测试。
1700506744
1700506745
[root@ann char-rnn-master]# find /-type f-size +1000k-name “*.txt”/usr/lib/python2.7/site-packages/netaddr/eui/oui.txt/usr/share/perl5/Unicode/Collate/allkeys.txt/usr/share/libhangul/hanja/hanja.txt/usr/share/hwdata/iab.txt/usr/share/hwdata/oui.txt/ml/rnn/char-rnn-master/data/tinyshakespeare.1/input.txt
1700506746
1700506747
首先,用find命令找到本机上大于1000KB的 .txt文件,通过命令查看其中第1个文件。
1700506748
1700506749
[root@ann char-rnn-master]# ls-la /usr/lib/python2.7/site-packages/netaddr/eui/oui.txt-rw-r—r—. 1 root root 2249223 Sep 22 2010 /usr/lib/python2.7/site-packages/netaddr/eui/oui.txt
1700506750
1700506751
文件大小为2249223字节,即2.25MB左右。
1700506752
1700506753
[root@ann char-rnn-master]# gzip-9 /usr/lib/python2.7/site-packages/netaddr/eui/oui.txt
1700506754
1700506755
使用gzip命令将其压缩,参数-9表示使用压缩率最小的原则。
1700506756
1700506757
[root@ann char-rnn-master]# ll /usr/lib/python2.7/site-packages/netaddr/eui/oui.txt.gztotal 1572-rw-r—r—. 1 root root 673972 Sep 22 2010 oui.txt.gz
1700506758
1700506759
压缩完成后,文件为637972字节,压缩率约为28.36%,效率还是很高的。这类使用统计方法来动态规划字典的算法,应用非常普遍。
1700506760
1700506762
9.5.2 有损压缩
1700506763
1700506764
比起无损压缩,有损压缩更是一种每个人每天都在被动接触的一大类算法。这种压缩中允许有一定损失的场景多见于模拟信号的处理。
1700506765
1700506766
人类通过自身的视觉、听觉等感知到的模拟信号多为连续不断的信号。例如,有一个在时域上连续的声音信号,在以数字信号的形式对其进行记录时,需要对每个时间段中波形的波幅进行描述。用这种以离散方式记录波形的波幅,使得取样时间越宽,记录内容就与原始内容相差越大;取样时间越窄,记录内容就与原始内容相差越小。但是,要想采用数字信号对这些信息进行记录,势必无法避开从连续的模拟信号到离散的数字信号的转换过程(如图9-8所示)。从无限和连续,到有限和离散,无论怎么做,损失在这个环节都是无法避免的。
1700506767
1700506768
1700506769
1700506770
1700506771
图9-8 连续信号和离散信号
1700506772
1700506773
人类的视觉和听觉的敏感程度是有限的,也就是说,人类可以天然地容纳一些视听方面的信息损失,这也给多媒体信息的压缩带来了可能——只要使取样细密到一定程度,人类就不容易感知到其中的信息损失,所以,很多情况下也就没有必要去无限地追求这种取样的细密度。下面我们来认识一下这方面的应用。
1700506774
1700506775
1.音频
1700506776
1700506777
WAV文件格式是由微软研发的一种声音文件格式。标准格式的WAV文件和音乐CD使用的格式一样,都采用44.1K的采样频率,也就是在1秒之内进行44100次采样,最后生成的每一秒的声音信息都有44100个点的波幅来描述。这种采样频率已经非常高了,超出这个范围,人的耳朵就很难感知其中的变化了。
1700506778
1700506779
以人声为例,将这种声波的波形画出来,由于线条堆叠在一起,所以无法看出其形状(如图9-9所示)。但是,我们可以把它看成一个f(t)函数,每一瞬间都是在0点上下往复抖动的周期为60~4000Hz的波幅不断变化的曲线。
1700506780
1700506781
1700506782
1700506783
1700506784
图9-9 声波波形
1700506785
1700506786
振幅量化有8位、16位、24位3种精度,声道也有单声道和双声道之分。以高精度的24位双声道,采样周期为44100次/秒来计算,存储1秒的声音需要的存储空间为:
1700506787
1700506788
C=16×44100×2=1411200bit
1700506789
[
上一页 ]
[ :1.70050674e+09 ]
[
下一页 ]