霍夫曼编码

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/30 01:11:48
霍夫曼编码

霍夫曼编码
霍夫曼编码

霍夫曼编码
霍夫曼(Huffman)在1952年提出
是一种从下到上的编码方法,即从叶子逐步往上生成编码树
编码算法实际上是一个构造霍夫曼树的过程(根据资料出现频率的多寡来建造的树,霍夫曼树的树叶节点用以储存资料元素 ( Data Element ) ,若该元素出现的频率越高,则由该元素至树根所经过的节点数越少)
(1) 对资料中出现过的每一元素各自产生一外部节点,并赋予外部节点该元素之出现频率.
(2) 令 L 是所有外部节点所成之集合.
(3) 产生一个新节点 N .令 N 为 L1 和 L2 的父节点,L1 和 L2 是 L 中出现频率最低的两个节点.令 N 节点的出现频率等於 L1 和 L2 的出现频率总和.由 L 中删除 L1 和 L2 ,并将 N 加入 L 中.
(4) 重复步骤 (3) 的动作,直到 | L | = 1 .
(5) 标示树中各节点的左子树链结为 0 ,右子树链结为 1 .(不一定,只要一枝为0一枝为1)
是码长可变的编码
霍夫曼算法和香农范诺算法的编码都不需要额外的同步码(解释)
霍夫曼树是最小二叉树,编码效率比香农范诺高
霍夫曼编码对错误敏感,错一位,可能导致后面的解码都是错误的,而且计算机也无法纠错,我们称为错误传播
霍夫曼编码是变长编码,整个编码结果是一个整体,无法随意解压缩其中的某一个部分