收藏 分享(赏)

编码理论第5章.ppt

上传人:fmgc7290 文档编号:6070107 上传时间:2019-03-26 格式:PPT 页数:39 大小:1.31MB
下载 相关 举报
编码理论第5章.ppt_第1页
第1页 / 共39页
编码理论第5章.ppt_第2页
第2页 / 共39页
编码理论第5章.ppt_第3页
第3页 / 共39页
编码理论第5章.ppt_第4页
第4页 / 共39页
编码理论第5章.ppt_第5页
第5页 / 共39页
点击查看更多>>
资源描述

1、第5章 无失真信源编码方法,5.1 霍夫曼码 5.2 香农编码 5.3 费诺编码 5.4 算术编码编码原理 5.5 算术编码方法,第5章 信源压缩编码方法,5.1无失真信源编码方法 5.1.1 霍夫曼码 1.二元霍夫曼码 二元霍夫曼码编码步骤如下:(1)将n元信源U的各个符号按概率分布以递减次序排列起来。(2)将两个概率最小的信源符号合并成一个新符号,新符号的值为两个信源符号值的和,从而得到只包含n1个符号的新信源,称为U信源的缩减信源U1。(3)把缩减信源U1的符号仍按概率大小以递减次序排列,然后将其中两个概率最小的符号合并成一个符号,这样又形成了n2个符号的缩减信源U2。(4)依次继续下去

2、,直至信源最后只剩下个符号为止。(5)将每次合并的两个信源符号分别用0和1码符号表示。(6)从最后一级缩减信源开始,向前返回,就得出各信源符号所对应的码符号序列,即得各信源符号对应的码字。,1,0,0,1,图5-1例5-1霍夫曼编码,0,1,例5-1离散无记忆信源解:对应霍夫曼编码如图5-1所示,信源熵:平均码长:编码效率:,例5-2 离散无记忆信源给出两种霍夫曼编码如图5-2所示 信源熵:平均码长编码效率,0,0,0,0,1,1,1,1,(a),图5-2 例5-2 两种霍夫曼编码,0,0,0,0,1,1,1,1,图5-2 例5-2 两种霍夫曼编码,(b),方法(a)的方差比方法(b)的方差要

3、小许多。方法(a)的具体编码原则是,把合并后的概率总是放在其它相同概率的信源符号之上(或之左),方法(b)的编码原则是,把合并后的概率放在其它相同概率的信源符号之下(或之右),从上面的分析可以看出,方法(a)要优于方法(b)。可见,霍夫曼码得到的码并非是唯一的。因为对缩减信源的两个概率最小的符号,用0和1码时可以任意的,所以可得到不同的码,但它们只是码字具体结构不同,而其码长不变,平均码长也不变,所以没有本质区别。另外,若当缩减信源中缩减合并后的符号的概率与其它信源符号概率相同时,从编码方法上来说,对等概率的符号那个放在上面,那个放在下面是没有区别的,但得到的码是不同的。对这两种不同的码,它们

4、的码长各不同,然而平均码长是相同的。在编码中,对等概率消息,若将新合并的消息排列到上支路,可以证明它将缩短码长的方差,即编出的码更接近等长码;同时可使合并的元素重复编码次数减少,使短码得到充分利用。,2.m元霍夫曼码为了使短码得到充分利用,使平均码长最短,必须使最后一步的缩减信源有m个信源符号。因此对于m元编码,信源U符号个数n必须满足:n(m1)Qm (5-1) 式中:n信源符号个数;m码元数;Q缩减次数。对于m元码,n为任意正整数时不一定能找到一个Q满足式(5-1),此时,可以人为地增加一些概率为零的符号,以满足式(5-1)。 m元霍夫曼编码步骤:(1)验证所给n是否满足式(5-1),若不

5、满足该式,可以人为地增加一些概率为零的符号,以使最后一步有m个信源符号;(2)取概率最小的m个符号合并成一个新结点,并分别用0,1,(m)给各分支赋值,把这些符号的概率相加作为该新结点的概率;(3)将新结点和剩下结点重新排队,重复(2),如此下去直至树根。(4)取树根到叶子(信源符号对应结点)的各树枝上的赋值,得到各符号码字,例5-3已知信源求其三元霍夫曼编码及四元霍夫曼编码。解:为了使短码得到充分利用,使平均码长最短,必须使最后一步的缩减信源有m个信源符号。因此对于m元编码,信源U符号个数n必须满足:n(m1)Qm 其三元霍夫曼编码此式成立,四元霍夫曼编码需加2个概率为零 的符号。 根据m元

6、霍夫曼编码步骤,其三元霍夫曼编码如图5-4所示, 四元霍夫曼编码如图(5-5)所示。,图5-4 三元霍夫曼编码,1,2,1,0,0,2,图5-5 四元霍夫曼编码,3,1,3,2,1,0,0,2,5.2 香农编码 二元香农码的编码步骤 (1)将信源发出n个消息(符号)按其概率递减次序依次排列。 (2)为了编成惟一可译码,首先计算第i个信源符号的累加概率(5-2)(3)将累加概率变换成二进制数。 (4)取小数点后 位数作为第i个信源符号的码字。 由下式确定。 (5-3)式中: 取大于或等于X的最小整数。,例5-4 已知,求:香农编码。 解:计算第i个信源符号的码字。 设i=4,首先求第4个信源符号

7、的二元码字长,再计算累加概率,将累加概率变换成二进制数,故变换成二进制数为0.100,根据码长 取小数点后三位100,作为第4个信源符号的码字。,其它信源符号的二元码字可用同样方法求得,如表5-1所示。 由表5-1可以看出,一共有5个三位的码字,各码字之间至少有一位数字不相同,故是惟一可译码。,表5-1香农编码,改进的香农编码方法的具体内容(1)根据每个信源符号的概率大小,按式5-3计算其码字的码长; (2)利用二元树图法,根据所求的码字码长大小,构造出即时码。r元香农编码(1) 根据每个信源符号的概率大小,按式5-3计算其码字的码长,(2) 利用r元树图法,根据所求的码字码长大小,构造出即时

8、码。下面以表5-1中的信源符号集为例来进行阐述说明。从表5-1可知,码字长度分别为3、3、3、3、3,4和7。于是,可画出如图5-6所示的二元树图。从二元树图,可以得到满足要求的即时码。,5.1.3费诺编码 费诺编码步骤 (1)将信源消息(符号)按其出现的概率由大到小依次排列; (2)将依次排列的信源符号按概率值分为两大组,使两个组的概率之和近于相同,并对各组分别赋予一个二进制码元“0”和“1”。 (3)将每一大组的信源符号进一步在分成两组,使划分后的两个组的概率之和近于相同,并又分别赋予一个二进制符号“0”和“1”。 (4)如此重复,直至每个组只剩下一个信源符号为止。 (5)信源符号所对应的

9、码字即为费诺码。,例5-5离散独立信源它的费诺编码如图5-7所示。信源熵:平均码长:编码效率:,图5-7 例5-5费诺编码图,0,0,0,1,1,1,例5-6离散无记忆信源解:其费诺编码如图5-8所示,信源熵,编码效率,平均码长,图5-8 例5-6费诺编码图,0,1,1,1,1,1,0,0,0,0,5.1.5 算术编码原理用霍夫曼编码方法对小消息信源进行统计匹配编码,要实现统计匹配,提高编码效率,必须扩展信源,即由一维扩展至多维进行霍夫曼编码时,才能使平均码长接近信源的熵,二元序列用二进制数编码,等于没有编码,也无压缩而言,且编码效率也不高。 1.积累概率的递推公式 设信源定义信源符号的积累概

10、率,设基本离散独立信源序列:则信源序列的积累概率的递推公式:2.算术编码原理信源序列的积累概率映射到0,1)区间上,使每个序列对应该区间内的一个点,这些点把区间0,1)分成许多不同的小区间,这些小区间的长度等于对应序列的概率,在小区间内取一个浮点小数,使其长度与该序列的概率相匹配,因而达到高效编码的目的。小区间划分的递推计算公式,设小区间左、右端点的值分别用low和high表示,用range表示小区间的长度,则小区间左右端点的递推公式:,(5-12),(5-13),使用公式(5-13)计算小区间端点值的步骤: (1)给出信源符号对应的区间; (2)初始时设S(代表空集), low()0 ,hi

11、gh()1,range()1; (3)输入信源序列的一个符号ur,根据公式(5-13)计算序列Sur的左右端点值。依次下去,直至全部信源序列对应的区间被确定为止。 例5-8设信源:,求信源序列abda对应的小区间。 解:各个信源符号对应的小区间如表5-3所示。,表5-3 信源符号对应区间端点值,信源序列abda对应的小区间的左、右端点的值如表5-4所示,表5-4信源序列a bda对应区间的端点值的计算: 输入信源序列的第1个符号a: 设low()0 ,high()1,range()1; low(a)low()range()low(a)0100.000 high(a)low()range()hi

12、gh(a)010.50.500 输入信源序列的第2个符号b: low(ab)low(a)range(a)low(b)0.000.50.50.250 high(ab)low(a)range(a)high(b)0.000.50.750.375 同理可计算出其它数据。 信源序列abda对应区间划分如图5-10所示。,表5-4信源序列a bda对应区间的端点值,图5-10 信源序列abda对应区间划分,信源序列abda对应区间划分如图5-10所示。,不同的信源序列分别对应不同的互不重叠的小区间,取小区间内的一个点作为对应序列的编码,此码是即时码。根据上述分析,可取0.359 375作为序列abda的编

13、码。 解码是编码的逆过程,就是根据接收到的码字翻译出对应的信源序列。 解码步骤: (1)判断码字落在哪个符号区间,翻译出1个符号; (2)将码字减去刚翻译出的符号的左端点值; (3)用刚翻译出的符号对应的区间的长度去除步骤(2)的结果,判断此值落在哪个符号区间,翻译出1个新符号; (4)重复步骤(2)、(3)直至全部信源序列被翻译完为止。,5.1.6 算术编码方法用序列积累概率的递推公式进行序列的算术编码的计算步骤: (1)根据式(5-11)计算信源符号的积累概率; (2)初始时设S,F()0,p()1(代表空集); (3)根据式(5-12)计算序列的积累概率F(Sui)和序列的概率p(Sui

14、); (4)根据式(5-14)计算码长L; (5)将F(S)写成二进制数的形式,如果小数点后没有数据,则取其前L位作为序列S的码字;如果小数点后有数据,则取其前L位加1作为序列S的码字。,例5-10设二元独立信源,求信源序列1010的算术编码。 解:信源符号的积累概率:F(0)0;F(1)0.25, 则信源序列1010算术编码的相关数据如表5-7所示. 表5-7中数据的计算: 因为F()0, p()1,则输入信源序列的第1个符号1: F(1)F()p()F(1)010.250.01 P(1)p()p(1)0.11 输入信源序列的第2个符号0: F(10)F(1)p(1)F(0)0.01 P(1

15、0)p(1)p(0)0.001 1 同理可计算出其它数据,信源序列1010算术编码对应图解如图5-11所示。,表5-7信源序列1010算术编码,图5-11 信源序列1010算术编码图解,例5-12 已知信源:求信源序列abda的算术编码。 解:信源符号的积累概率如表5-9所示,信源序列abda的积累概率如表5-10所示。 表5-10中数据的计算: 设F()0, p()1 输入信源序列的第1个符号a: F(a)F()p()F(a)0100 P(a)p()p(a)0.50.1 输入信源序列的第2个符号b: F(ab)F(a)p(a)F(b)0.50.50.01 P(ab)p(a)p(b)0.50.250.001 同理可计算出其它数据,由此得序列abda的编码为0 101110。编码图解如图5-12 所示。,表5-9例5-12信源符号的积累概率,表5-10信源序列abda算术编码,图5-12信源序列abda算术编码图解,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 中等教育 > 职业教育

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报