首页 > 编程语言 >6.4通过莫尔斯编码来看哈夫曼算法的基础

6.4通过莫尔斯编码来看哈夫曼算法的基础

时间:2023-02-12 16:56:32浏览次数:33  
标签:编码 哈夫曼 长点 短点 算法 6.4 莫尔斯

      哈夫曼算法是哈夫曼(D.A.Huffman)于1952年提出来的压缩算法。日本人比较常用的压缩软件LHA,使用的就是哈夫曼算法。

      文本文件是由不同类型的字符组合而成的,而且不同的字符出现的次数也是不同的。例如,在某以文本文件中,A出现了100次左右,Q仅用到了3次,类似这样的情况是很常见的。而哈夫曼算法的关键就在于“多次出现的数据用小于8位的字节数来表示,不常用的数据则可以用超过8位的字节来表示。”

      不过有一点需要注意,不管是不满8位的数据,还是超过8位的数据,最终都要以8位为单位保存到文件中。这是因为磁盘是以字节(8位)为单位保存数据的(图6-3)。为了实现这一处理,压缩程序的内容会复杂很多,不过作为回报,最终得到的压缩率也是相当的高。

      莫尔斯编码1837年莫尔斯(SamuelF.B.Morse)提出的。莫尔斯编码不是通过语言,而是通过“嗒 嘀 嗒 嘀”这些长点和短点的组合来传递文本信息的。

 

       对数字领域比较熟悉的读者可能会认为“莫尔斯编码的短点是0,长点是1,其中1个字符用8位来表示”,但实际上,根据字符种类的不同,莫尔斯电码的长度也是不同的。表6-2是莫尔斯编码的示例。大家把1看作是短点(嘀),把11看作是长点(嗒)即可。

 

       莫尔斯编码把一般文本文件中出现频率高的字符用短编码来表示。这里所说的出现频率,不是通过对出版物等文章进行统计调查得来的,而是根据印刷行业的印刷活字数目而确定的。

标签:编码,哈夫曼,长点,短点,算法,6.4,莫尔斯
From: https://www.cnblogs.com/24koi/p/17114083.html

相关文章

  • 6.5 用二叉树实现哈夫曼编码
    莫尔斯编码是根据日常文本中各字符的出现频率来决定表示各字符的编码的数据长度的。不过,该编码体系,对AAAAAABBCDDEEEEEF这样的特殊文本并不是最适合的。在莫尔斯编码中,E的......
  • 哈夫曼树
    感觉是一个平凡的结论,但是我想了一年怎么证!!!结论:序列\(a\)生成的哈夫曼树,第\(i\)个元素的深度为\(\mathcal{O}(\log\suma_i-\loga_i+1)\)。考虑哈夫曼树的生成过......
  • 6.6哈夫曼算法能够大幅提升压缩比率
    使用哈夫曼树后,出现频率越高的数据所占用的数据位数就越少而且数据的区分也可以很清晰地实现。通过图6-5的步骤2可以发现,在用枝条连接数据时,我们是从出现频率较低的数......
  • 6.6哈夫曼算法能够大幅提升压缩比率
    使用哈夫曼树后,出现频率越高的数据所占用的数据位数就越少,而且数据的区分也可以很清晰地实现。但哈夫曼算法为什么达到这么好的效果呢,大家都了解吗?通过图6-5的步骤2可以发......
  • 6.4通过莫尔斯编码来看哈夫曼算法的基础
    压缩技巧实际上有很多种。接下来,我们就来看一下本章要介绍的第二个压缩技巧,即哈夫曼算法。哈夫曼算法是哈夫曼(D.A.Huffman)于1952年提出来的压缩算法。日本人比较常用的......
  • 6.4通过莫尔斯编码来看哈夫曼算法的基础
    哈夫曼算法是1952年提出的压缩算法,日本人常用的压缩软件LHA使用的就是哈夫曼算法。文本文件是由不同类型的字符组合而成的,而且不同的字符出现的次数也是不同的。  注......
  • 6.4【微信小程序全栈开发课程】记录页面(四)--mpvue时间格式化
    将数据库中的数据格式化成YYYY.MM.DDhh:mm的格式,比如2019.10.1220:241、修改日期文件mpvue框架中有一个专门格式化日期的文件src/utils/index.js文件,将日期格式化成“YYYY......
  • [数据结构] 哈夫曼树
    哈夫曼树哈夫曼树简介给定N个权值作为N个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树(HuffmanTree)。哈夫曼......
  • MAUI新生6.4-集合内容类控件难点:CollectionView
    一、基本使用(数据源在ViewModel中硬编码)//①在Models文件夹下,新建Employee.cs文件,创建Employee类型publicclassEmployee{publicintId{get;set;}publ......
  • 16.4 SQL Server删除角色
    SQLServer删除角色目录SQLServer删除角色简介示例1)DROPROLE简单示例2)DROPROLE删除具有成员的角色简介语法:DROPROLE[IFEXISTS]role_name;DROPROLE无法删除拥......