信源编码与哈夫曼

          哈夫曼树又叫最优二叉树,我先简单说一下按照哈夫曼编码的过程,灰常简单。

          首先哈夫曼树的构造是自下而上的,这其实是它相对与香农编码等次优编码的优势的源头。而且由于是通过概率匹配的方式,也使哈夫曼编码的平均码长最优。

          构造树(直接顺带编码):

           1.首先,我们有a1,a2,a3,a4,a5...an个带有权值的节点,如果用于信源编码,此时的权值就可以是事件的发生概率,或者说是信源符号的概率。设为,p(1),p(2),p(3)....p(n),他们的和为1.

           2.我们把这n个节点都看作是一个森林,那下一步就是找出其中最小的两个森林,给这两个森林分配二元符中的0和1,把他们用节点链接起来,构成一个新的森林,新森林的概率就是他们的和,此时我们有n-1个森林,且他们的概率和是1。

           3,我们把这n-1个森林看作是新的信源,重复第2步,直到只剩下两个森林。

           4.分配0和1。此时得到一个码树,每个信源符号都是叶子节点,从树根到信源符号节点经过的树枝就是码字。

          ------------------------------------------------

           几个特征说明:

           1.为什么哈夫曼码是即时码。

             树图构造的码,一定是即时码。

             通俗来说,由于我们从树根读起,即便是一开始经过的树枝是相同的,最后也总会在一个信源符号得出完整码字的时候发生分支,这使一个信源符号的完整码字不可能是另外一个码字的前缀,所以哈夫曼码是即时码。

           2.平均码长

              我们构造码树的时候,先挑出概率最小的信源符号作为节点,这使得概率越小的信源符号的码长越长,而概率越大的信源符号码长越小,从而使平均码长最小而最优。

           3.不唯一   

              二元0和1分配的时候我们没有给予规则,他们是任意的,所以得到的码树可能不同,得到的具体编码也就可能有差异了。

           ----------------------------------------------

           另外,

           1.按照最优二叉树的编码是信源编码的二元编码,m进制哈夫曼编码就是编码符号集元素个数的改变。         

           2.在概率平均分布且信源符号是2的幂数个的时候,码树是满二叉树,编码将得到等长码。

posted on 2013-01-30 16:59  vince67  阅读(519)  评论(0编辑  收藏  举报

导航