计算机不等长编码有哪些,信息论第8讲最佳不等长编码.ppt

信息论第8讲最佳不等长编码

最佳不等长编码 第8讲 Fano编码 为使选出平均码长最小,自然想到:从每个节点出发的D种可能的分支出现的概率近于相等,Fano给出一种近于最佳的无失真不等长编码方法。 Fano编码:首先,将信源符号按概率递减的次序排列。将排列好的信源符号划分成D个大组,使每组的概率和近似相等,并各赋予一个D元码符号。然后,将每一大组的信源符号划分成D组,使同一组中的每组的概率和近似相等,并各赋予一个D元码符号。依次下去,直到每个小组只有一个信源符号为止。最后,由码树得到各个信源符号对应的码字。 例:设信源U的9个消息a1,a2,…,a9的概率分别为1/3,1/9,1/9,1/9,1/9,1/9,1/27,1/27,1/27。 Huffman编码 1952年Huffman给出一种编码方法,所得到的码是异字头码,其平均长度最短,是一种最佳码,称作Huffman码。 下面先给出二元Huffman码的编码方法. Huffman编码步骤如下: (1)将K个信源符号按概率分布大小以递减次序排列,设 (2)用0和1码符号分别分配给概率最小的两个信源符号,并将这两个概率最小的信源符号合并成一个新符号,并用这两个最小概率之和作为新符号的概率,从而得到只包含K-1个符号的新信源,称为S信源的缩减信源S1。 (3)把缩减信源S1的符号仍按概率分布大小以递减次序排列,再将最后两个概率最小的符号合并成一个新符号,并分别用0和1码符号表示,这样又形成了K-2个符号的缩减信源S2。 (4)以此继续下去,直到缩减信源最后只剩下两个符号为止。将这最后两个新符号分别用用0和1码符号表示。最后这两个符号的概率之和必为1。然后从最后一级缩减信源开始,依编码路径由后向前返回,就得到各信源符号所对应的码符号序列,即得对应的码字。 从该例编码过程可看出: 1. Huffman码是异字头码; 2.概率小的字符对应码字的长度不会小于概率大的字符对应码字的长度; 3.概率最小的二个字符对应码字仅最后一位不同; 4. Huffman码并非唯一,但平均码长相同(码长方差不同,应减小)。 * * * * 若一离散无记忆信源的熵为H(U),每个信源符号用D进制码元进行不等长编码,则一定存在一种无失真编码方法,其平均码长满足 不等长编码定理 Review 对于平均符号熵为HL(U)的离散平稳无记忆信源,必存在一种无失真编码方法,使平均码长满足不等式 不等长编码定理 Review 码的平均码长为16/9 方法特点:基于码树,从根节点开始分配码字 fano编码不是最佳编码 例: 设离散无记忆信源 试对其进行二元Fano编码。 Fano编码 第一次 分组 码字 010 011 10 110 1110 1111 00 第二次 分组 第三次 分组 第四次 分组 0 1 0 0 1 1 0 1 1 0 0 1 信源符号 概率 pk s1 s2 s3 s4 s5 s6 s7 0.19 0.18 0.17 0.15 0.10 0.01 0.20 Fano编码 0 0 1 0 最佳不等长编码 -Huffman编码 例: 设离散无记忆信源 试对其进行二元Huffman编码。 Huffman编码 码字 11 000 001 010 0110 0111 10 0.11 0.26 0 1 0 1 0.35 0 1 0.39 0.61 0 1 0 1.00 0 1 1 信源符号 概率pk s1 s2 s3 s4 s5 s6 s7 0.19 0.18 0.17 0.15 0.10 0.01 0.20 0 1 Huffman编码 1 0.26 信源符号 s1 s2 s3 s4 s5 s6 s7 码字 11 000 001 010 0110 0111 10 s1 s2 s3 s4 s5 s6 s7 0 0 0 0 0 0 1 1 1 1 1 1 编码效率比较 编码方式 平均码长 编码效率 Shannon编码 Fano编码 Huffman编码 3.14 0.83 2.74 0.95 2.72 0.96 是否最佳? Huffman编码 2.72 0.96 H(u)=2.6112 bit Huffman编码最佳性证明 对于给定的信源,存在最佳唯一可译二元码,其最小概率的两个码字的长度最长且相等,它们之间仅最后一位码元取值不同(一个为0,另一个为1)。 【定理1】 lK最大 存在另外一个码字其长度也为lK, s1, s2,…,sK-1, sK p1,p2,…,pK-1, pK c1, c2,…,cK-1, cK l1, l2,…,lK-1, lK 并且与cK仅最后一位码元取值不同(一个为0,另一个为1) 满足 的码字为cK-1 lK最大 sk pk ck lk s1,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值