01 霍夫曼编码 —— 无损压缩

1.1 什么是霍夫曼编码

​ 在计算机中,霍夫曼编码使用变长编码表对源符号(如文件中的一个字母)进行编码,其中变长编码表是通过一种评估来源符号出现几率的方法得到的,出现几率高的字母使用较短的编码,反之出现几率低的则使用较长的编码,这便使编码之后的字符串的平均长度、期望值降低,从而达到无损压缩数据的目的。

1.2 编码步骤

  1. 初始化,将符号概率按大到小进行排序;
  2. 将最小的两个符号组成一个新的符号,新符号的概率即为两者之和;
  3. 重复2,直到形成一个符号,其概率为1。
  4. 编码:从根开始向下,左分支0;右分支1。(或左分支1;右分支0)

1.3 举例

霍夫曼编码

最后形成的编码:

符号 a1 a2 a3 a4 a5 a6 a7 a8
码字 00 01 100 101 110 1110 11110 11111
码长

猜你喜欢

转载自www.cnblogs.com/seigann/p/12549174.html
今日推荐