霍夫曼编码(Huffman Coding)

编码论基本概念

即时码.
即时码的概念理解

如果一个码的任何一个码字都不是其他码字的前缀,称为前缀码, 也称即时码.
即时码的特点: 1. 唯一可译 2. 译码时没有延时.

信源编码 & 信道编码 & 安全编码

按照不同的编码目的,编码问题可分为三类:

  • 信源编码
    以提高通信的有效性为目的编码.
    通常通过压缩信源的冗余度来实现,采用的方法是压缩每个信源符号的平均比特数,用较少的比特数来表达尽量多的信息.
  • 信道编码
    以提高信息传输的可靠性为目的的编码.
    通过增加信源的冗余度来实现,比如增加检错和纠错的信息.
  • 安全编码
    以提高通信系统的安全性为目的的编码, 即密码.

霍夫曼编码

  • 属于信源编码.
  • 属于统计编码.
  • 属于不定长(变长)编码.
  • 属于即时码.
  • 用来构建异字头的平均长度最短的码字.
  • 经常用于数据压缩, 属于无损压缩.
  • 编码思想:
    根据概率来进行编码, 频率高的用短码字, 频率低的部分用长码字.
  • 使用自底向上的方法构建二叉树.

对一幅图像的编码基本方法:
S1: 先对图像数据扫描一遍, 计算出各种像素出现的概率.
S2: 按概率的大小指定不同长度的唯一码字, 由此得到一张该图像的霍夫曼码表。编码后的图像数据记录的是每个像素的码字,而码字与实际像素值的对应关系记录在码表中.

二进制霍夫曼编码步骤:

  1. 将信号符号按概率大小进行排列.
  2. 给概率最小的两个信源符号分配一个码位0和1,然后将这两个符号合并为一个,计算其概率和作为一个新的符号进行重新排列.
  3. 重复第二步操作,直至信源只剩两个符号为止,此时两个符号的概率之后必为1. 然后依照最后一级开始,依编码路径向前返回,得到各个信源符号对应的码字.
二进制霍夫曼编码过程
Paste_Image.png

References:
<信息论与编码> 陈运主编 第二版
http://baike.baidu.com/link?url=_1Ns4TTbQI-iCCK18Gog5DGdvbFG9tnh_a1hgaqJ2sgU3-zAm29XtjZIuwiJPnKdSurwx055cwYgv4ueFhiKFK

你可能感兴趣的:(霍夫曼编码(Huffman Coding))