1. 研究背景
霍夫曼在1952年提出一种构造最佳码的方法,称之为霍夫曼编码(Huffman)。霍夫曼编码是一种无损的统计编码方法,利用信息符号概率分布特性的改变字长进行编码。霍夫曼编码适用于多元独立信源,对于多元独立信源来说它是最佳码。
2. 基本原理
霍夫曼编码是一种利用信息符号概率分布特性的变字长的编码方式,即对于出现概率大的信息符号编以短字长的码,对于出现概率小的信息符号编以长字长的码。如果码字长度严格按照所对应符号出现概率大小逆序排列,则编码结果的平均码字长度一定小于任何其他排列形式。霍夫曼编码则是严格按照信源符号出现的概率大小来构造码字,因此这种编码方式形成的平均码字长度最短。
霍夫曼编码的步骤如下:
(1)将信源符号按出现概率从大到小排成一列,然后把最末两个符号的概率相加,合成一个概率。
(2)把这个符号的概率与其他符号的概率从大到小排列,然后再把最末两个符号的概率加起来,合成一个概率。
(3)重复上述做法,直到最后剩下两个概率为止。
(4)从最后一步剩下的两个概率开始逐步反向进行编码。每一步只需要对两个分支各赋予一个二进制码,如对概率大的赋予码1,对概率小的赋予码0。
3. 基本流程
霍夫曼编码系统主要分为压缩对象输入、概率统计、构造HUffman树,生成HUffman树和压缩编码环节组成。如下图是霍夫曼编码和解码系统的构成图,实现对数据的压缩及其压缩参数的计算。