哈夫曼编码的分析和实现.docVIP

  • 98
  • 0
  • 约6.36千字
  • 约 15页
  • 2018-10-11 发布于重庆
  • 举报
哈夫曼编码的分析和实现

PAGE PAGE 1 课程设计任务书 2010—2011学年第一学期 专业: 通信工程 学号: 070110101 姓名: 苟孟洛 课程设计名称: 信息论与编码课程设计 设计题目: 哈夫曼编码的分析与实现 完成期限:自 2010 年 12月 20 日至 2010 年 12 月 26 日共 1 周 一.设计目的 1、深刻理解信源编码的基本思想与目的; 2、理解哈夫曼编码方法的基本过程与特点; 3、提高综合运用所学理论知识独立分析和解决问题的能力; 4、使用MATLAB或其他语言进行编程。 二.设计内容 假设已知一个信源的各符号概率,编写适当函数,对其进行哈夫曼编码,得出码字,平均码长和编码效率,总结此编码方法的特点和应用。 三.设计要求 1、编写的函数要有通用性; 2、信源可以自由选择,符号信源与图像信源均可。 四.设计条件 计算机、MATLAB或其他语言环境 五、参考资料 [1]曹雪虹,张宗橙.信息论与编码.北京:清华大学出版社,2007. [2]王慧琴.数字图像处理.北京:北京邮电大学出版社,2007. 指导教师(签字): 教研室主任(签字): 批准日期: 年 月 日 摘要 哈夫曼编码(Huffman Coding)是一种编码方式,以哈夫曼树—即最优二叉树,带权路径长度最小的二叉树,经常应用于数据压缩。在计算机信息处理中,“哈夫曼编码”是一种一致性编码法(又称熵编码法),用于数据的无损耗压缩。这一术语是指使用一张特殊的编码表将源字符(例如某文件中的一个符号)进行编码。这张编码表的特殊之处在于,它是根据每一个源字符出现的估算概率而建立起来的(出现概率高的字符使用较短的编码,反之出现概率低的则使用较长的编码,这便使编码之后的字符串的平均期望长度降低,从而达到无损压缩数据的目的)。 本课题通过MATLAB编写适当的函数,对一个随机信源进行哈夫曼编码,得出码字,平均码长和编码效率。从而理解信源编码的基本思想与目的以及哈夫曼编码方法的基本过程与特点,并且提高综合运用所学理论知识独立分析和解决问题的能力。 关键字:哈夫曼,信源编码,MATLAB 目 录 TOC \o 1-3 \h \z \u HYPERLINK \l _Toc217966071 1 课题描述 PAGEREF _Toc217966071 \h 1 HYPERLINK \l _Toc217966072 2 哈夫曼编码的原理 . PAGEREF _Toc217966072 \h 1 2.1哈夫曼编码的构造过程……………………………..………………….………..1 2.2哈夫曼编码的应用举例…………………………….……………..……….…….1 HYPERLINK \l _Toc217966073 3 哈夫曼编码的实现过程 4 3.1 软件介绍 HYPERLINK \l _Toc217966075 4 HYPERLINK \l _Toc217966076 3.2设计内容 4 3.2设计步骤………………………………………………………………………………4 4 程序运行结果分析…………………………………………….…………………………….8 HYPERLINK \l _Toc217966079 总 结 10 HYPERLINK \l _Toc217966080 参考文献 11 1课题描述 哈夫曼编码是一种编码方式,以哈夫曼树─即最优二叉树,带权路径长度最小的二叉树,经常应用于数据压缩。在计算机信息处理中,“哈夫曼编码”是一种一致性编码法(又称熵编码法),用于数据的无损耗压缩。这一术语是指使用一张特别的编码表将源字符(例如某文件中的一个符号)进行编码。这张编码表的特别之处在于,它是根据每一个源字符出现的估算概率而建立起来的(出现概率高的字符使用较短的编码,反之出现概率低的则使用较长的编码,这便使编码之后的字符串的平均期望长度降低,从而达到无损压缩数据的目的)。 2哈夫曼编码的原理 2.1 哈夫曼编码的构造过程 实现哈夫曼算法的大致描述为: 初始化:将2n-1个结点的三个指针域的值置为空(可用-1表 示),权值为0; 输入:读入n个叶结点的权值存入向量的前个分量中,即形成有个结点的森林(一个结点为一棵树); 排序:按权值排序(从小到大) 合并:把前两棵树组成一棵新树,放回森林,直至形成一棵树 最后输出哈夫曼编码 2.2哈夫曼编码应用举例 哈夫曼树被广泛的应用在各种技术中,其中最典型的就是在编码技术上的应用

文档评论(0)

1亿VIP精品文档

相关文档