哈夫曼算法是1952年提出的压缩算法,日本人常用的压缩软件LHA使用的就是哈夫曼算法。
文本文件是由不同类型的字符组合而成的,而且不同的字符出现的次数也是不同的。
注!:不管是不满8位的数据,还是超过8位的数据,最终都要以8位为单位保存到文件中。
因为磁盘是以字节(8位)为单位保存数据的。
1看作是短点(嘀),把11看作是长点(嗒)。
莫尔斯编码把一般文本中出现频率高的字符用短编码来表示。
如表6-2所示,假设表示短点的位是1,表示长点的位是11的话,那么E(嘀)这一字符的数据就可以用1位的1来表示,C(嗒嘀嗒)这一字符的数据就可以用9位的110101101来表示。在实际的莫尔斯编码中,如果短点的长度是1长点的长度就是3,短点和长点的间隔就是1。
这里的长度指的是声音的长度。接下来,就让我们尝试一下用莫尔斯编码来表示前面提到的AAAAAABBCDDEEEEEF这个17个字符的文本。在莫尔斯编码中,各个字符之间需要加人表示间隔的符号。这里我们用00来进行区分。因此,AAAAAABBCDDEEEEEF 这个文本,就变成了Ax6次+Bx2次+Cx1次+Dx2次+Ex5次+Fx1次+字符间隔x16=4位X6次+8位x2次+9位x1次+6位x2次+1位x5次+8位x1次+2位*16次=106位14字节。
因为文件只能以字节为单位来存储数据,因此不满1字节的部分就要圆整成1个字节。如果所有字符占用的空间都是1个字节(8位),这样文本中列出来的17个字符=17字节,那么摩尔斯电码的压缩比率就是14-17与82%,并不太突出。
标签:字符,字节,哈夫曼,编码,短点,6.4,莫尔斯 From: https://www.cnblogs.com/z1218/p/17094599.html