huffman编码的程序流程图_信息论与编码课程大作业二进制哈夫曼编码 -

本文介绍了二进制哈夫曼编码的原理和步骤,包括信源编码的计算、编码规则和流程图。通过示例展示了如何生成哈夫曼树,并提供了MATLAB程序实现,用于接受概率输入并计算编码长度、信源熵和编码效率。
摘要由CSDN通过智能技术生成

信息论与编码课程大作业

题 目: 二进制哈夫曼编码

学生姓名: 学 号: 2010020200 专业班级: 2010级电子信息班

2013年 5月 18日

二进制哈夫曼编码

1、二进制哈夫曼编码的原理及步骤

1、1信源编码的计算

设有N个码元组成的离散、无记忆符号集,其中每个符号由一个二进制码字表示,信源符号个数n、信源的概率分布P={p(si)},i=1,?..,n。且各符号xi的以li个码元编码,在变长字编码时每个符号的平均码长为L??p(xi)li ;

i?1n信源熵为:H(X)???p(xi)logp(xi) ;

i?1n唯一可译码的充要条件:?m?Ki?1 ;

i?1n 其中m为码符号个数,n为信源符号个数,Ki为各码字长度。

构造哈夫曼数示例如下图所示。

1.00 0.60 0.40

0.30 0.30 0.15 0.15 0.60 0.09 0.05 0.03 0.03 0.04 1、2 二元霍夫曼编码规则 (1)将信源符号依出现概率递减顺序排序。

(2)给两个概率最小的信源符号各分配一个码位“0”和“1”,将两个信源符号合并成一个新符号,并用这两个最小的概率之和作为新符号的概率,结

1

果得到一个只包含(n-1)个信源符号的新信源。称为信源的第一次缩减信源,用s1 表示。

(3)将缩减信源 s1 的符号仍按概率从大到小顺序排列,重复步骤(2),得到只含(n-2)个符号的缩减信源s2。

(4)重复上述步骤,直至缩减信源只剩两个符号为止,此时所剩两个

 哈夫曼编码(Huffman Coding)是一种编码方式,哈夫曼编码是可变字长编码(VLC)的一种。 Huffman于1952年提出一种编码方法,该方法完全依据字符出现概率来构造异字头的平均长 度最短的码字,有时称之为最佳编码,一般就叫作Huffman编码。 以哈夫曼树─即最优二叉树,带权路径长度最小的二叉树,经常应用于数据压缩。 在计算机信息处理中,“哈夫曼编码”是一种一致性编码法(又称"熵编码法"),用于数据的无损耗压缩。这一术语是指使用一张特殊的编码表将源字符(例如某文件中的一个符号)进行编码。这张编码表的特殊之处在于,它是根据每一个源字符出现的估算概率而建立起来的(出现概率高的字符使用较短的编码,反之出现概率低的则使用较长的编码,这便使编码之后的字符串的平均期望长度降低,从而达到无损压缩数据的目的)。这种方法是由David.A.Huffman发展起来的。 例如,在英文中,e的出现概率很高,而z的出现概率则最低。当利用哈夫曼编码对一篇英文进行压缩时,e极有可能用一个位(bit)来表示,而z则可能花去25个位(不是26)。用普通的表示方法时,每个英文字母均占用一个字节(byte),即8个位。二者相比,e使用了一般编码的1/8的长度,z则使用了3倍多。倘若我们能实现对于英文中各个字母出现概率的较准确的估算,就可以大幅度提高无损压缩的比例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值