哈夫曼编码(Huffman Coding),是可变字长编码(VLC)的一种。完全依据字符出现概率来构造异字头的平均长度最短的码字。
编码过程
(1)对图像中出现的不同像素值进行概率统计,得到n个不同概率的信息符号。
(2)按符号出现的概率由大到小、由上到下排列。
(3)对两个最低概率符号分别以0、1赋值。
(4)两最低概率相加后作为一个新符号的概率重新值入符号序列中。
(5)对概率按从大到小重新排列。
(6)重复(1)-(5),直到只剩下两个概率符号的序列。
(7)分别以二进制0、1赋值后,以此为根结点,沿赋值的顺序的逆序依次写出该路径上的二进制代码,得到哈夫曼编码。
注意事项:
①哈夫曼编码方法构造出来的编码不是唯一的。但对于同一信源而言,其平均码长是相同的,其编码效率不同
②哈夫曼编码对不同的信源其编码效率是不同的。只有当信源概率分布很不均匀是,哈夫曼编码才会受到显著效果。