计算机信息技术

霍夫曼码:应用实例

目前,很少有人会想到有关的事实,如何做文件压缩。 与以前使用的个人电脑相比已经变得更加容易。 而几乎每个人都与文件系统的工作使用的文件。 但很少有人会想到他们如何工作,在什么基础上的文件压缩。 这一过程的第一个版本是霍夫曼码,他们今天已应用于各种流行的档案库。 很多用户甚至不认为文件压缩多么容易发生,它是工作的一个方案。 在这篇文章中,我们看一下如何压缩什么细微的差别有助于加快和简化编码的过程,以及看什么树编码的原则。

历史算法

电子信息的编码效率的第一个算法已经成为一个代码霍夫曼提出的,早在二十世纪中叶,即1952年。 它是谁,他此刻是多数人创建的压缩信息程序的基本元素。 目前,使用这种代码最流行的来源之一是档案ZIP,ARJ,RAR和其他许多人。 另外,Huffman算法被用于压缩的JPEG图像和其他图形对象。 好了,所有的传真也使用现代编码,在1952年发明的。 尽管由于代码创建了这么多时间,这一天它在各种新膜和设备古老与现代的类型,使用的事实。

有效编码原则

Huffman算法的基础包括一个方案,允许您更换最可信,最经常出现的符号 二进制编码 系统。 而那些谁是不太常见的,换成较长码。 去长霍夫曼码后,方可系统采用全最小值出现。 该技术允许你以最小化原始消息作为一个整体的每个符号的代码的长度。 最重要的一点是,在字母出现的编码概率的开头应该已经知道。 这是从他们将准备和最后的消息。 基于这些数据,进行霍夫曼代码树的建设,这将举行在档案编码过程字母的基础上。

霍夫曼编码,例如

为了说明这个算法,考虑建设代码树的图形变种。 使用这个方法是有效的,有必要澄清所需的处理的概念的某些值的定义。 该组中的多个节点和弧,这是从节点引向节点的,称为曲线图。 树本身是一组特定的性质图:

  • 中的每个节点可以包括不超过一个圆弧以上;
  • 其中一个节点必须是树的根,也就是说,它不应该在所有的弧的一部分;
  • 如果杆开始沿弧线运动,这个过程应该允许在任何节点的完全搞定。

还有这样的事情,霍夫曼码作为树的叶子的一部分。 它是从哪个不应该去任何弧的节点。 如果两个节点通过圆弧连接,其中一人是其他孩子的父母,这取决于从哪个节点电弧熄灭,并包含什么。 如果两个节点具有相同的父节点,它们被称为姊妹网站。 如果在叶,从几个弧线的节点离开,那么它被称为二叉树。 正是这样的哈夫曼树。 承建单位的特点是,每个父母的重量等于其所有子节点的权重的总和。

构建树哈夫曼算法

霍夫曼码的建设是从英文字母的输入。 产生的是在未来的代码树的免费网站的列表。 列表中的每个节点的权重必须是相同的作为对应于该节点的字母帖子的发生的概率。 在这种情况下,谁重的至少一个从未来树的几个免费的网站中选择。 在这种情况下,如果最低工资率在几个地点观察到的,你可以自由选择任意对。 然后是父节点,其必须权衡不亚于对节点中的权重之和的创建。 之后,父母送的名单与自由厕所,孩子们都被删除。 在这条弧线是适当的指标,一和零。 根据需要只保留一个节点重复此过程之多。 然后写出来的二进制数字从上到下。

提高压缩效率

为了提高压缩效率,它是在树构建代码必须使用的字母出现在一个特定的文件的可能性,连接到树中的所有数据,而不是让他们分散在大量的文本文档的事实。 如果预穿行这个文件,你可以立即计算出如何统计往往存在设施受到压缩的信件。

压缩过程的加速度

为了加快算法,字母的定义应该不是在一个特定的字母出现的概率,其发生的频率方面进行。 有了这个算法变得容易,更快地与他们合作。 这也避免了与浮点除法相关的操作。 此外,在这种模式下工作,动态Huffman编码,或者更确切地说,算法本身是没有受到任何的变化。 这主要是由于这样的事实,所述概率正比于频率。 这是值得关注的一个事实,即文件或所谓的根节点的最终重量等于在对象中的字符数的待处理的总和。

结论

霍夫曼码 - 简单,历史悠久的算法,它仍然被许多知名项目和企业。 它的简单和清晰可取得有效的成果压缩任何体积的文件,并显著减少磁盘存储空间。 换句话说,Huffman算法 - 长期以来一直研究并没有被这一天减少工作图,它的紧迫性。 而随着以减少文件的大小,通过网络或通过转移它们的能力等手段更简单,快捷,方便。 该算法的工作,你完全可以压缩的任何信息,而不会损害它的结构和质量,但最大的效果,以减轻重量文件。 换句话说,霍夫曼码的编码一直是并且仍然压缩文件大小的最流行和相关方法。

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 zhcn.unansea.com. Theme powered by WordPress.