欢迎来到天天文库
浏览记录
ID:35965883
大小:96.64 KB
页数:9页
时间:2019-04-28
《基于-matlab的图像huffman编码研究方案》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、成绩评阅人中国矿业大学2015-2016学年第二学期《数字视频技术》课程小设计考核图像的Huffman编码研究专业班级:信息13-04班学生姓名:王振宇、龙航、王一鸣学生学号:04131407、04131403、04131406本人郑重声明:本人认真、独立完成了查找资料、完成作业、编写程序等考核任务,无抄袭行为。签字:日期:2016.05.171.引言1.1图像数据压缩的目的数字图像通常要求很大的比特数,这给图像的传输和存储带来相当大的困难。要占用很多的资源,花很高的费用。一般原始图像存在很大的冗余度。所以,对图像数据压缩显得非常重要。1.2图像数据压缩的原理对数字图像压缩主要
2、运用两个基本原理:一是图像的相关性。在图像同一相邻像素之间,活动图像的相邻帧的对应像素之间往往存在很强的相关性,去除或减少这些相关性,也就除去或减少图像信息中的冗余度,继而实现对数字图像的压缩。二是人的视觉心理特征,人的视觉对于边缘急剧变化不敏感,对颜色分辨力弱,利用这些特征在相应部分降低编码精度而使人从视觉上感觉不到图像质量的下降,从而达到对数字图像压缩的目的。1.3Huffman编码Huffman编码是一种编码方式,是一种用于无损数据压缩的熵编码算法。它是Huffman在1952年根据Shannon在1948年和Fano在1949年阐述的这种编码思想下提出的一种不定长编码的
3、方法,有时也称之为最佳编码。依据信源数据中各信号出现的频率分配不同长度的编码。其基本思想是在编码过程中,对出现频率越高的值,分配越短的编码长度,相应地对出现频率越低的值则分配较长的编码长度,完全依据字符出现概率来构造异字头的平均长度最短的码字。哈夫曼编码方法的实质是针对统计结果对字符本身重新编码,而不是对重复字符或重复子串编码,得到的单位像素的比特数最接近图像的实际熵值。2.设计任务2.1设计任务研究实现灰度图像的Huffman编码和解码恢复。2.2设计目的(1)了解Huffman编码的基本原理及其特点;(2)理解并熟练对图像进行哈夫曼编码的算法;(3)学习和熟悉MATLAB图
4、像处理工具箱;(4)熟悉和掌握MATLAB 程序设计方法;2.3设计要求现灰度图像的Huffman编码和解码恢复图像;处理结果要求最终图像显示,且计算图像的信息熵,平均码字长度,编码效率,压缩比。3.总体设计方案3.1系统运行环境Windows8.1/10系统3.2编程软件平台MATLABR2013a/R2014a3.3Huffman编码算法原理哈夫曼编码的基本方法是先对图像数据扫描一遍,计算出各种像素出现的概率,按概率的大小指定不同长度的唯一码字,由此得到一张该图像的哈夫曼码表。编码后的图像数据记录的是每个像素的码字,而码字与实际像素值的对应关系记录在码表中。(1)计算信源符
5、号出现的概率;(2)将信源符号按其出现的概率,由小到大顺序排列,并从左至右排列为叶节点[1];(1)将两个概率最小的顶层节点进行组合相加,组成一个父节点,并在到左右子节点的两条连线上分别标记0和1; (2)重复上一步骤,直到得到根节点,形成一颗二叉树;(3)从根节点开始到相应于每个符号的叶节点的0/1串,就是该符号的二进制哈夫曼编码。3.1Huffman编码算法的特点(1)编出来的码都是异字头码,保证了码的唯一可译性。(2)由于编码长度可变。因此译码时间较长,使得哈夫曼编码的压缩与还原相当费时。(3)编码长度不统一,硬件实现有难度。(4)对不同信源的编码效率不同,当信源的符号概
6、率为2的负幂次方时,达到100%的编码效率;若信源符号的概率相等,则编码效率最低。(5)由于符号按概率大小排列既可以从右到左也可以从左到右,即0与1的指定是任意的,故最后的编码结果可能不唯一,但仅仅是分配的代码不同,其平均码长是一样的,故不影响编码效率与数据压缩性能。3.2算法流程图设计3.5.1主流程图开始加载图像,并将其灰度化将灰度图像转换成无符号的8位整数矩阵调用Huffman编码程序进行压缩调用Huffman解码程序进行解码显示原始图像、灰度图像和经编码解码后的图像结束显示平均码长、压缩比、信息熵及编码效率3.5.1编码流程图开始计算各符号(灰度值)出现概率按照概率从小
7、到大排序生成Huffman树得到二进制哈夫曼编码码字对图像(图像矩阵)进行编码计算编码参数(平均码长、信息熵等)计算二进制码字对应的十进制数,并存入矩阵中,得到码字与灰度值的对应关系表,即码表结束3.5.2解码流程图开始结束读取压缩矩阵,并存入行向量中解码后的矩阵按图像矩阵尺寸重排,得到解码矩阵解码,按位读取行向量中的编码并进行相应灰度值匹配3.1组员任务分工王振宇:编写主要程序,编码解码函数程序及相关子程序,修改报告及演示文稿。龙航:编写部分主程序及部分函数程序,撰写报告。王一鸣:编写部分
此文档下载收益归作者所有