




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、仅供参考计算机与信息学院 信息论与编码 实验报告专业班级学生姓名及学号周伟康20112910课程教学班号任课教师苏兆品实验指导教师实验地点2013 2014 学年第 一 学期信息论与编码课程设计目录一课程设计目的2二课程设计要求2三课程设计描述2四程序结构2五算法及部分源码3六用例测试9七总结20一 课程设计目的通过编程实现,在理解掌握的基础上进一步扩展课授的几种无失真信源编码算法。以实践检验理论。二 课程设计要求1. 对一灰度图像进行游程编码的设计实现(将Huffman与游程结合)。2. 试对任意的数字序列(如学号、电话号码)进行自适应算术编码。3. 围绕设计题目查阅资料,掌握编码的基本原理
2、。4. 按设计要求和编码原理进行算法的设计,算法的设计应满足正确性、可读性、健壮性、高效率等要求。5. 在此基础上,可以进行扩展三 课程设计描述本次设计实现内容:1. 对任意的信源符号序列进行N元Huffman编码/译码。2. 对任意的信源符号序列进行N元Fano 编码/译码。3. 对任意的信源符号序列进行N元Elias 编码/译码。4. 对像素矩阵进行游程与上述编码方式结合的编码/译码。5. 数字串的自适应算数编码/译码。6. 对任意给定译码规则的译码和判断其是否为即时码。输入数据从键盘或磁盘文件读入,运算结果显示到屏幕或保存到文件。编写可视化图形交互界面。本次设计程序用Java实现,由本人
3、独立完成。四 程序结构本次设计采用MVC设计模式:控制包下为文件读写线程执行包下是执行主类模式包分编码译码两部分Item:封装每个码元符号信息和操作AnlysisModel:信源序列统计分析模型其他如右图顾名思义视图包也分编码译码两部分MainFrame:主框架界面编码下:算数编码面板分组码编码面板译码下:算数译码面板分组码译码面板五 算法及部分源码a) N元Huffman编码:算法:1) 将每个信源符号加入优先队列Heap。2) ,由信源符号数q和码元数n,求出正整数。3) 求出满足上式所需添加的虚拟信源符号数z。4) 加入z个虚拟符号到Heap。5) 每次从Heap中取n个信源符号进行缩减
4、,合成新元素加入Heap。同时构建Huffman树。6) 广搜Huffman树,生成每个符号的码字并记录码长。代码:b) N元Fano编码:算法:1) 按概率从大到小对信源符号排序。2) 初始化n-1个断点为1n-13) 若n=N则返回4) 否则扫描序列中余下的值,从后往前调整断点,维护每段和的方差尽可能小。5) 按顺序将每个段赋上一位码符号6) 递归处理每个小段。代码略c) N元Elias编码:算法:1) 遍历信源符号集,求出所对应的下列参数:2) 累积分布函数: 3) 修正累积分布函数:4) 码长:5) 将的r进制数截取位作为对应码字。代码:d) 信源符号序列解析:算法:1) 对于单字符信
5、源符号序列编码,统计每个字符频数。计算频率2) 对于灰度图像按行游程编码,以像素作为统计元,计算其频率并记录每个游程长。以最大游程长-1对应R进制数位数作为游程长度等长码长度。忽略回车符。代码:e) 数字串的自适应算数编码算法:1) 初始化09每个数字的频数为1,频率为0.1,2) 初始化概率区间为0,1,区间长度为1.0。3) 依次获得数字串每位数字,调整区间、数字频数和频率。4) 计算码长:5) 在最后的区间中任选一数,取其r进制数小数点后位作为码字。代码:f) 数字串的自适应算数解码算法:1) 获取译码R进制字串,化为十进制小数result。2) 初始化09每个数字的频数为1,频率为0.
6、1,3) 初始化概率区间为0,1,区间长度为1.0。4) 确定result落在的区间,并调整区间,以其对应码符号作为解码第i位数字,修正区间对应数字频数和频率。5) 计算解码码长:。6) 待译码串长度,重复4,5,6 步,依次得出原序列。代码:g) 平均码长和编码效率:算法:1) 平均码长,算数编码平均码长2) 编码效率代码:h) 即时码的判断和译码算法:1) 两两码字公共前缀判断,若存在则不是即时码。2) 对每个码字,以其码符号为枝构造码树。若存在某一码字对应节点不为叶子,则不是即时码。3) 对即时码译码规则,在码字串中搜索匹配码字,找到其对应信源符号。还原信源符号序列。4) 对于游程结合其
7、他方法的编码,还需译出游程长。还原灰度矩阵。代码:i)六 用例测试u Huffman编码解码。输入文件打开:信源序列分析:n = 4元Huffman编码:译码:u n=2 元Elias编码:译码:u 灰度图像游程编码(+Huffman):译码:自适应算数编码:译码:任意规则译码:七 总结本次课程设计实验在完成基本要求的基础上,对实验内容和深度都进行了一定程度的扩展。对几种编码译码的理论算法有了更加深化的认识。本次试验是继数据库课设之后,第二个上两千行代码规模的程序。相对前者,此次取得的进步值得一提:1. 同样是Swing编写的图形交互界面,此次编写之前先仔细阅读学习了JFC,参考了若干文档和实
8、例。使得编写更加熟练,开发速度也显著提升。2. 此次开发过程中,将软件工程学以致用。参考了多种设计模式,提高了代码质量,切实体会到了代码复用、易于维护的好处。3. 此次开发过程中,接触了一些英文资料。包括Java Platfrom SE7文档的Swing模块,The Theory of Information and Coding 变长码部分等。提高了本人信息收集运用的能力。与此同时,本人对此次项目的最大遗憾是:仅作为一个简单的算法演示集合,无实际应用价值。接下来可以考虑将某些编码方法与本学期所学的密码学或网络结合起来,尽量真实的模拟或完全实现解决现实问题。最后,写上此次设计收获的最大感悟:编程确如软件工程学所说,是整
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年高级卫生专业技术资格考试全科医学(068)(正高级)试卷及解答
- 敲代码题库及答案
- 中信集团协同管理办法
- 计划与绩效管理办法
- 茂名廉租房管理办法
- 计价规则变更管理办法
- 中国高速收费管理办法
- 诚信红黑榜管理办法
- 上海张江资金管理办法
- 行文流程及管理办法
- 高中化学人教版高考大单元一 第一章 第4讲 氧化还原反应的概念和规律
- 敢于提问班会课件
- 作物生产与经营管理专业教学标准(高等职业教育专科)2025修订
- QGDW10936-2018物料主数据分类与编码规范
- 煤气中毒急救方法与处理流程
- 第11课《岳阳楼记》课件-统编版语文九年级上册
- 大学生劳动教育论文2000字论文
- 广东省广州市2023-2024学年二年级下学期数学期末试卷(含答案)
- 机器学习赋能空间环境:特征识别与深度分析的创新探索
- 2025-2030年中国压裂砂行业市场现状供需分析及投资评估规划分析研究报告
- 新浙教版九年级上科学教学计划与实施细则
评论
0/150
提交评论