哈夫曼算法及其改进.pdfVIP

  • 40
  • 0
  • 约3.82千字
  • 约 2页
  • 2020-08-15 发布于广东
  • 举报
霍夫曼编码及其改进 在通信中,为了提高信息传输效率,得到或接近信息熵的最小信息率,我们需要解决信 源编码的问题。在信源编码中,我们试图让信源编码的平均码长尽可能缩短,减少冗余度, 从而提高编码效率。信源编码又分为无失真信源编码和限失真信源编码。 哈夫曼编码(Huffman Coding)是一种无失真编码方式,是可变字长编码(VLC)的一种,由 Huffman 于1952 年提出,该方法完全依据字符出现概率来构造异字头的平均长度最短的码 字,有时称之为最佳编码,一般就叫作Huffman 编码。哈夫曼编码是一种最优的前缀编码技 术。 对于多元独立信源,哈夫曼编码为最佳编码,之所以称之为最佳编码,因为其拥有以下 特性:(1) 保证概率大的对应短码,概率小的对应长码,即短码得到充分利用;(2) 每次缩 减信源的最后两个码字,总是最后面的一个码元不同,而前面的各个码元相同;(3) 每次缩 减信源的最长两个码字有相同的码长。 但是,哈夫曼编码也有其缺陷,首先,码时间为O(lavg), 其中lavg 为码字的平均长度; 其次,更为最重要的是,解码器需要知道哈夫曼编码树的结构,因而编码器必须为解码器保 存或传输哈夫曼编码树。在信源信息量非常大时是一笔非常大的开销,而且受到存储、传输 技术上的制约。影响传输速度的同时,额外的磁盘访间将会降低该算法的数据压缩速度。 举例:一份38 符号的数据,其各符号频度如下: 符号 A B C D E F G H 频度 8 1 3 10 1 2 7 6 其哈夫曼编码如下: 符号 编码 码长 A 01 2 B 00110 5 C 000 3 D 10 2 E 00111 5 F 0010 4 G 111 3 H 110 3 10+8 7+6+3 2 1+1 平均码长 = 2 × +3 × +4 × +5 × = 2.68 38 38 38 38 冗余度 哈夫曼编码是一种非唯一性编码,其编码方式并不唯一。首先,因为对缩减信源最后两 个概率小的符号用0 和1 码的赋予可以是任意的,故可以得到不同的码,但是它们只是码 的具体形式不同。其码长n 不变,平均码长ñ 也不变,所以没有本质区别。其次,若当缩 减信源中合并后的符号概率与其他信源符号概率相同时,从编码方法上说哪个在上面哪个在 下面是没有本质区别的,但是得到的码是不相同的对这两种不同的码,它们的码长n 不同, 但是平均码长ñ 是相同的。 为了克服哈夫曼编码方式存在的问题,提高哈夫曼编码的可用性,我们需要设法降低哈 夫曼编码树的存储空间。在数据特定的情况下,我们可以让编码器和解码器使用事先约定的 编码树,如此可以消除哈夫曼树生成和传输储存的时间,但是当信源变化,此种方法就不再 适用,不具备通用性。

文档评论(0)

1亿VIP精品文档

相关文档