离散信源无失真信源编码
目的:
熟练掌握无失真信源编码的方法;熟练掌握Huffman 编码的平均码长和编码效率的
Huffman 编码的基本原理及特点:
Huffman 编码是一种可变长编码算法,该方法完全依据字符出现概率来构造异字头的平均长度最短的码字,有时称之为最佳编码。
Huffman 编码一般利用二叉树结构实现,其基本原理是频繁使用的数据用较短的代码代替,较少使用的数据用较长的代码代替,每个数据的代码各不相同。
Huffman 编码在信源符号表示平均所需要的比特数方面是最优的,而且也满足前缀条件(即唯一可译码)。
在编码效率方面,Huffman 编码是基于二叉树算法的特点以及性质。
从书本的例题看出Huffman 编码方法得到的码是不唯一的。
不同的排序准则以及不同的符号分配都会影响到最后的结果,虽然编码的效率相同,但是影响到了编码的质量。
从课本上的例题可以看出,二叉树的层数较少的,编码质量较高(从码方差得出)。
在编码的时候,要尽量避免二叉树的稀疏性给编码质量带来的影响。
要减少二叉树的稀疏性就要提高二叉树的利用率,减少二叉树的层数。
Huffman 编码基本步骤,画出程序流程图:
Huffman 编码步骤: (1)将信源符号按概率递减的次序排序 (2)将两个最小概率的分支分别标记为‘1’和‘0’,他们的结合点为两分支概率之和 (3)将上面的概率和看作一个新符号的概率。
(4)重新排列后,重复上面的步骤。
(5)从最后的节点开始读取,到要找的符号,路径的分支标号就是码字 流程图:
输入数据:
输入编码:
当输入为例题中数据时,输出为:当输入是习题中数据时,输出为:
讨论不同的Huffman 编码的平均码长如何变化,码字长度偏离平均码长对编码性能的影响。
答:不同的Huffman编码方法得到的平均码长是相同的,编码效率也相同。
但是,不同的编码方法对码的质量会产生影响。
通过求码方差可知,码方差越小,编码质量越高。
从树的结构方面来看,就是树的层数较少的编码方法质量较高。