欢迎来到一句话经典语录网
我要投稿 投诉建议
当前位置:一句话经典语录 > 心得体会 > 哈夫曼树的实验心得体会

哈夫曼树的实验心得体会

时间:2016-09-06 20:34

哈夫曼编码译码器实验报告

大学结构课程设计说明书 2011年12月20日目1问题描述12需求分析13概要设计131抽象数据类型定义13.2总体框图以及功能描述24详细设计24.1数据类型的定义24.2主要模块的算法描述35测试分析46课程设计总结6附录(源程序清单)71问题描述1.设计一个利用哈夫曼算法的编码和译码系统,重复地显示并处理以下项目,直到选择退出为止。

(1) 将权值数据存放在数据文件(文件名为data.txt,位于当前目录中);(2) 分别采用动态和静态存储结构;初始化:键盘输入字符集大小n、n个字符和n个权值,建立哈夫曼树;(3) 编码:利用建好的哈夫曼树生成哈夫曼编码;输出编码;设计要求:(1)符合课题要求,实现相应功能;(2)要求界面友好美观,操作方便易行;(3)注意程序的实用性、安全性。

2需求分析编写此软件是为了实现一个利用哈夫曼算法的编码和译码系统。

比如,再利用电报进行通讯时,需要将文字转换成由二进制的字符组成的字符串。

比如需传送的电文为“ABACCDA”假设将A,B,C,D分别编码为00、01、10、11.则上述电文遍为00010010101100,总长度为14位。

但是在传送过程中,总希望长度能够尽可能的短,于是我们想采用长度不等的编码。

但是这种编码必须遵循:任何一个字符的编码都不是另一个字符编码的前缀。

对此软件的要求:能够正确的使得对于输入的字符进行编码以及译码,并且是的在译码过程中不会

给定叶子结点权值 1 5 3 6 7 8,构造哈夫曼树,并计算其带权路径长度

哈夫曼树构造方法假设有n个权值,则构造出的哈夫曼树有n个叶子结点。

n个权值分别设为 w1、w2、…、wn,则哈夫曼树的构造规则为:(1) 将w1、w2、…,wn看成是有n 棵树的森林(每棵树仅有一个结点);(2) 在森林中选出两个根结点的权值最小的树合并,作为一棵新树的左、右子树,且新树的根结点权值为其左、右子树根结点权值之和;(3)从森林中删除选取的两棵树,并将新树加入森林;(4)重复(2)、(3)步,直到森林中只剩一棵树为止根据上述方法,得到的哈夫曼树,先选1 3 得到4,新的森林即 4 5 6 7 8,选择4 5 得到9,新的森林变为6 7 8 9,选择6 7 得到13,森林变为8 9 13,选择8 9得到17 变为 13 17,选择13 17得到30,只剩最后一个课树。

[30] \\\/ \\\\ [17] [13] \\\/ \\\\ \\\/ \\\\ (8) [9] (6) (7) \\\/ \\\\ [4] (5) \\\/ \\\\ (1) (3)图片上传不了,按照上述方式弄了一下,()表示叶节点,到时候你用圈就行,[]表示是其下面左右子树的根。

树的带权路径长度规定为所有叶子结点的带权路径长度之和,记为WPLWPL= 1*4 +3*4 +5*3 + 8*2 + 6*2 + 7*2 = 73

哈夫曼编码的译码过程的大致思路是什么

(不要代码)

哈夫曼树和字符编码对应你都弄完了,得到是如a :01 b :101对应关系,通过这个关系直接将像“asdsdfdfg”直接转换为“01110101”这样二进制编码。

译码的时候,读取二进制编码,先读取一位,然后在关系表中查找该二进制数对应的字符,如果没有找到,继续读取二位,然后继续在关系表中查找该二位二进制对应的字符。

如此循环,知道找到字符位置,然后将二进制数替换为相应的字符,知道所有的数都替换完为止。

哈夫曼树根结点的权值与带权路径长度一样吗

不一样。

有一道题目:一棵哈夫曼树的带权路径长度等于其中所有分支结点的权值之和(X)其中“哈夫曼树根结点的权值”就是指“其中所有分支结点的权值之和”应该说:树中所有的叶结点的权值乘上其到根结点的路径长度。

不是分支节点权值的和。

望采纳

怎么样能学好数据结构呢

我也学过数据结构,不过没考好,就我现在的想法,就两点,一是要理解每个新名词,仔细想想它的逻辑结构到底是什么样的,即多思考,掌握基础,不要一味的接收。

二是要练习,找些相关的应用例子,多看,加深理解,思考一下为什么要这样写程序,少一句或者调换一下顺序之类的可不可以;进而自己动手试着写。

当然你也可以找其他同学或学长老师交流一下,总会有不一样的收获的。

加油吧

哈夫曼编码压缩概念的基本思想?如何回答(精简的说)

哈夫码(Huffman Coding)是编码方哈夫曼编码是可变字长编码(VLC)的一种。

Huffman于1952年提出一种编码方法方法完全依据字符出现概率来构造异字头的平均长 度最短的码字,有时称之为最佳编码,一般就叫作Huffman编码。

以哈夫曼树─即最优二叉树,带权路径长度最小的二叉树,经常应用于数据压缩。

在计算机信息处理中,“哈夫曼编码”是一种一致性编码法(又称熵编码法),用于数据的无损耗压缩。

这一术语是指使用一张特殊的编码表将源字符(例如某文件中的一个符号)进行编码。

这张编码表的特殊之处在于,它是根据每一个源字符出现的估算概率而建立起来的(出现概率高的字符使用较短的编码,反之出现概率低的则使用较长的编码,这便使编码之后的字符串的平均期望长度降低,从而达到无损压缩数据的目的)。

这种方法是由David.A.Huffman发展起来的。

例如,在英文中,e的出现概率很高,而z的出现概率则最低。

当利用哈夫曼编码对一篇英文进行压缩时,e极有可能用一个位(bit)来表示,而z则可能花去25个位(不是26)。

用普通的表示方法时,每个英文字母均占用一个字节(byte),即8个位。

二者相比,e使用了一般编码的1\\\/8的长度,z则使用了3倍多。

倘若我们能实现对于英文中各个字母出现概率的较准确的估算,就可以大幅度提高无损压缩的比例。

图像压缩编码论文

数字图像压缩技术的研究及进展  摘 要:数字图像压缩技术对于数字图像信息在网络上实现快速传输和实时处理具有重要的意义。

本文介绍了当前几种最为重要的图像压缩算法:JPEG、JPEG2000、分形图像压缩和小波变换图像压缩,总结了它们的优缺点及发展前景。

然后简介了任意形状可视对象编码算法的研究现状,并指出此算法是一种产生高压缩比的图像压缩算法。

关键词:JPEG;JPEG2000;分形图像压缩;小波变换;任意形状可视对象编码一 引 言 随着多媒体技术和通讯技术的不断发展,多媒体娱乐、信息高速公路等不断对信息数据的存储和传输提出了更高的要求,也给现有的有限带宽以严峻的考验,特别是具有庞大数据量的数字图像通信,更难以传输和存储,极大地制约了图像通信的发展,因此图像压缩技术受到了越来越多的关注。

图像压缩的目的就是把原来较大的图像用尽量少的字节表示和传输,并且要求复原图像有较好的质量。

利用图像压缩,可以减轻图像存储和传输的负担,使图像在网络上实现快速传输和实时处理。

图像压缩编码技术可以追溯到1948年提出的电视信号数字化,到今天已经有50多年的历史了[1]。

在此期间出现了很多种图像压缩编码方法,特别是到了80年代后期以后,由于小波变换理论,分形理论,人工神经网络理论,视觉仿真理论的建立,图像压缩技术得到了前所未有的发展,其中分形图像压缩和小波图像压缩是当前研究的热点。

本文对当前最为广泛使用的图像压缩算法进行综述,讨论了它们的优缺点以及发展前景。

二 JPEG压缩 负责开发静止图像压缩标准的“联合图片专家组”(Joint Photographic Expert Group,简称JPEG),于1989年1月形成了基于自适应DCT的JPEG技术规范的第一个草案,其后多次修改,至1991年形成ISO10918国际标准草案,并在一年后成为国际标准,简称JPEG标准。

1.JPEG压缩原理及特点 JPEG算法中首先对图像进行分块处理,一般分成互不重叠的 大小的块,再对每一块进行二维离散余弦变换(DCT)。

变换后的系数基本不相关,且系数矩阵的能量集中在低频区,根据量化表进行量化,量化的结果保留了低频部分的系数,去掉了高频部分的系数。

量化后的系数按zigzag扫描重新组织,然后进行哈夫曼编码。

JPEG的特点优点:(1)形成了国际标准;(2)具有中端和高端比特率上的良好图像质量。

缺点:(1)由于对图像进行分块,在高压缩比时产生严重的方块效应;(2)系数进行量化,是有损压缩;(3)压缩比不高,小于50。

JPEG压缩图像出现方块效应的原因是:一般情况下图像信号是高度非平稳的,很难用Gauss过程来刻画,并且图像中的一些突变结构例如边缘信息远比图像平稳性重要,用余弦基作图像信号的非线性逼近其结果不是最优的。

2. JPEG压缩的研究状况及其前景 针对JPEG在高压缩比情况下,产生方块效应,解压图像较差,近年来提出了不少改进方法,最有效的是下面的两种方法:(1)DCT零树编码 DCT零树编码把 DCT块中的系数组成log2N个子带,然后用零树编码方案进行编码。

在相同压缩比的情况下,其PSNR的值比 EZW高。

但在高压缩比的情况下,方块效应仍是DCT零树编码的致命弱点。

(2)层式DCT零树编码 此算法对图像作 的DCT变换,将低频 块集中起来,做 反DCT变换;对新得到的图像做相同变换,如此下去,直到满足要求为止。

然后对层式DCT变换及零树排列过的系数进行零树编码。

JPEG压缩的一个最大问题就是在高压缩比时产生严重的方块效应,因此在今后的研究中,应重点解决 DCT变换产生的方块效应,同时考虑与人眼视觉特性相结合进行压缩。

三 JEPG2000压缩 JPEG2000是由ISO\\\/IEC JTCISC29标准化小组负责制定的全新静止图像压缩标准。

一个最大改进是它采用小波变换代替了余弦变换。

2000年3月的东京会议,确定了彩色静态图像的新一代编码方式—JPEG2000图像压缩标准的编码算法。

1.JPEG2000压缩原理及特点 JPEG2000编解码系统的编码器和解码器的框图如图1所示。

编码过程主要分为以下几个过程:预处理、核心处理和位流组织。

预处理部分包括对图像分片、直流电平(DC)位移和分量变换。

核心处理部分由离散小波变换、量化和熵编码组成。

位流组织部分则包括区域划分、码块、层和包的组织。

JPEG2000格式的图像压缩比,可在现在的JPEG基础上再提高10%~30%,而且压缩后的图像显得更加细腻平滑。

对于目前的JPEG标准,在同一个压缩码流中不能同时提供有损和无损压缩,而在JPEG2000系统中,通过选择参数,能够对图像进行有损和无损压缩。

现在网络上的JPEG图像下载时是按“块”传输的,而JPEG2000格式的图像支持渐进传输,这使用户不必接收整个图像的压缩码流。

由于JPEG2000采用小波技术,可随机获取某些感兴趣的图像区域(ROI)的压缩码流,对压缩的图像数据进行传输、滤波等操作。

2.JPEG2000压缩的前景 JPEG2000标准适用于各种图像的压缩编码。

其应用领域将包括Internet、传真、打印、遥感、移动通信、医疗、数字图书馆和电子商务等。

JPEG2000图像压缩标准将成为21世纪的主流静态图像压缩标准。

四 小波变换图像压缩1.小波变换图像压缩原理  小波变换用于图像编码的基本思想就是把图像根据Mallat塔式快速小波变换算法进行多分辨率分解。

其具体过程为:首先对图像进行多级小波分解,然后对每层的小波系数进行量化,再对量化后的系数进行编码。

小波图像压缩是当前图像压缩的热点之一,已经形成了基于小波变换的国际压缩标准,如MPEG-4标准,及如上所述的JPEG2000标准 。

2.小波变换图像压缩的发展现状及前景 目前3个最高等级的小波图像编码分别是嵌入式小波零树图像编码(EZW),分层树中分配样本图像编码(SPIHT)和可扩展图像压缩编码(EBCOT)。

(1)EZW编码器 1993年,Shapiro引入了小波“零树”的概念,通过定义POS、NEG、IZ和ZTR四种符号进行空间小波树递归编码,有效地剔除了对高频系数的编码,极大地提高了小波系数的编码效率。

此算法采用渐进式量化和嵌入式编码模式,算法复杂度低。

EZW算法打破了信息处理领域长期笃信的准则:高效的压缩编码器必须通过高复杂度的算法才能获得,因此EZW编码器在数据压缩史上具有里程碑意义。

(2)SPIHT编码器 由Said和Pearlman提出的分层小波树集合分割算法(SPIHT)则利用空间树分层分割方法,有效地减小了比特面上编码符号集的规模。

同EZW相比,SPIHT算法构造了两种不同类型的空间零树,更好地利用了小波系数的幅值衰减规律。

同EZW编码器一样,SPIHT编码器的算法复杂度低,产生的也是嵌入式比特流,但编码器的性能较EZW有很大的提高。

(3)EBCOT编码器  优化截断点的嵌入块编码方法(EBCOT)首先将小波分解的每个子带分成一个个相对独立的码块,然后使用优化的分层截断算法对这些码块进行编码,产生压缩码流,结果图像的压缩码流不仅具有SNR可扩展而且具有分辨率可扩展,还可以支持图像的随机存储。

比较而言,EBCOT算法的复杂度较EZW和SPIHT有所提高,其压缩性能比SPIHT略有提高。

  小波图像压缩被认为是当前最有发展前途的图像压缩算法之一。

小波图像压缩的研究集中在对小波系数的编码问题上。

在以后的工作中,应充分考虑人眼视觉特性,进一步提高压缩比,改善图像质量。

并且考虑将小波变换与其他压缩方法相结合。

例如与分形图像压缩相结合是当前的一个研究热点。

  五 分形图像压缩 1988年,Barnsley通过实验证明分形图像压缩可以得到比经典图像编码技术高几个数量级的压缩比。

1990年,Barnsley的学生A.E.Jacquin提出局部迭代函数系统理论后,使分形用于图像压缩在计算机上自动实现成为可能。

1. 分形图像压缩的原理 分形压缩主要利用自相似的特点,通过迭代函数系统(Iterated Function System, IFS)实现。

其理论基础是迭代函数系统定理和拼贴定理。

分形图像压缩把原始图像分割成若干个子图像,然后每一个子图像对应一个迭代函数,子图像以迭代函数存储,迭代函数越简单,压缩比也就越大。

同样解码时只要调出每一个子图像对应的迭代函数反复迭代,就可以恢复出原来的子图像,从而得到原始图像。

2.几种主要分形图像编码技术 随着分形图像压缩技术的发展,越来越多的算法被提出,基于分形的不同特征,可以分成以下几种主要的分形图像编码方法。

(1)尺码编码方法 尺码编码方法是基于分形几何中利用小尺度度量不规则曲线长度的方法,类似于传统的亚取样和内插方法,其主要不同之处在于尺度编码方法中引入了分形的思想,尺度 随着图像各个组成部分复杂性的不同而改变。

(2)迭代函数系统方法 迭代函数系统方法是目前研究最多、应用最广泛的一种分形压缩技术,它是一种人机交互的拼贴技术,它基于自然界图像中普遍存在的整体和局部自相关的特点,寻找这种自相关映射关系的表达式,即仿射变换,并通过存储比原图像数据量小的仿射系数,来达到压缩的目的。

如果寻得的仿射变换简单而有效,那么迭代函数系统就可以达到极高的压缩比。

(3)A-E-Jacquin的分形方案 A-E-Jacquin的分形方案是一种全自动的基于块的分形图像压缩方案,它也是一个寻找映射关系的过程,但寻找的对象域是将图像分割成块之后的局部与局部的关系。

在此方案中还有一部分冗余度可以去除,而且其解码图像中存在着明显的方块效应。

3.分形图像压缩的前景 虽然分形图像压缩在图像压缩领域还不占主导地位,但是分形图像压缩既考虑局部与局部,又考虑局部与整体的相关性,适合于自相似或自仿射的图像压缩,而自然界中存在大量的自相似或自仿射的几何形状,因此它的适用范围很广。

六 其它压缩算法 除了以上几种常用的图像压缩方法以外,还有:NNT(数论变换)压缩、基于神经网络的压缩方法、Hibert扫描图像压缩方法、自适应多相子带压缩方法等,在此不作赘述。

下面简单介绍近年来任意形状纹理编码的几种算法[10]~ [13]。

(1)形状自适应DCT(SA-DCT)算法 SA-DCT把一个任意形状可视对象分成 的图像块,对每块进行DCT变换,它实现了一个类似于形状自适应Gilge DCT[10][11]变换的有效变换,但它比Gilge DCT变换的复杂度要低。

可是,SA-DCT也有缺点,它把像素推到与矩形边框的一个侧边相平齐,因此一些空域相关性可能丢失,这样再进行列DCT变换,就有较大的失真了[11][14][15]。

(2)Egger方法 Egger等人[16][17]提出了一个应用于任意形状对象的小波变换方案。

在此方案中,首先将可视对象的行像素推到与边界框的右边界相平齐的位置,然后对每行的有用像素进行小波变换,接下来再进行另一方向的小波变换。

此方案,充分利用了小波变换的局域特性。

然而这一方案也有它的问题,例如可能引起重要的高频部分同边界部分合并,不能保证分布系数彼此之间有正确的相同相位,以及可能引起第二个方向小波分解的不连续等。

(3)形状自适应离散小波变换(SA-DWT) Li等人提出了一种新颖的任意形状对象编码,SA-DWT编码[18]~[22]。

这项技术包括SA-DWT和零树熵编码的扩展(ZTE),以及嵌入式小波编码(EZW)。

SA-DWT的特点是:经过SA-DWT之后的系数个数,同原任意形状可视对象的像素个数相同;小波变换的空域相关性、区域属性以及子带之间的自相似性,在SA-DWT中都能很好表现出来;对于矩形区域,SA-DWT与传统的小波变换一样。

SA-DWT编码技术的实现已经被新的多媒体编码标准MPEG-4的对于任意形状静态纹理的编码所采用。

在今后的工作中,可以充分地利用人类视觉系统对图像边缘部分较敏感的特性,尝试将图像中感兴趣的对象分割出来,对其边缘部分、内部纹理部分和对象之外的背景部分按不同的压缩比进行压缩,这样可以使压缩图像达到更大的压缩比,更加便于传输。

七 总结 图像压缩技术研究了几十年,取得了很大的成绩,但还有许多不足,值得我们进一步研究。

小波图像压缩和分形图像压缩是当前研究的热点,但二者也有各自的缺点,在今后工作中,应与人眼视觉特性相结合。

总之,图像压缩是一个非常有发展前途的研究领域,这一领域的突破对于我们的信息生活和通信事业的发展具有深远的影响。

  参考文献:[1] 田青. 图像压缩技术[J]. 警察技术, 2002, (1):30-31.[2] 张海燕, 王东木等. 图像压缩技术[J]. 系统仿真学报, 2002, 14(7):831-835.[3] 张宗平, 刘贵忠. 基于小波的视频图像压缩研究进展[J]. 电子学报, 2002, 30(6):883-889.  [4] 周宁, 汤晓军, 徐维朴. JPEG2000图像压缩标准及其关键算法[J]. 现代电子技术, 2002, (12):1-5.[5] 吴永辉, 俞建新. JPEG2000图像压缩算法概述及网络应用前景[J]. 计算机工程, 2003, 29(3):7-10.[6] J M Shaprio. Embedded image coding using zerotree of wavelet coefficients[J]. IEEE Trans. on Signal Processing, 1993, 41(12): 3445-3462.[7] A Said, W A Pearlman. A new fast and efficient image codec based on set partitioning in hierarchical trees[J]. IEEE Trans. on Circuits and Systems for Video Tech. 1996, 6(3): 243-250.[8] D Taubman. High performance scalable image compression with EBCOT[J]. IEEE Transactions on Image Processing, 2000, 9(7): 1158–1170.[9] 徐林静, 孟利民, 朱建军. 小波与分行在图像压缩中的比较及应用. 中国有线电视, 2003, 03\\\/04:26-29.[10] M Gilge, T Engelhardt, R Mehlan. Coding of arbitrarily shaped image segments based on a generalized orthogonal transform[J]. Signal Processing: Image Commun., 1989, 1(10): 153–180.[11] T Sikora, B Makai. Shape-adaptive DCT for generic coding of video[J]. IEEE Trans. Circuits Syst. Video Technol., 1995, 5(1): 59–62.[12] T Sikora, S Bauer, B Makai. Efficiency of shape-adaptive 2-D transforms for coding of arbitrarily shaped image segments[J]. IEEE Trans. Circuits Syst. Video Technol., 1995, 5(3): 254–258.[13]邓家先 康耀红 编著 《信息论与编码》

用数据结构编一个图书管理系统

教务处制2015年12月12日唯一可译码的判别摘要唯一可译码的判别原理是:设S0为原始码字的集合,再构造一系列集合S1,S2,…为得到集合S1,首先考察S0中所有的码字。

若码字ωj是码字ωi的前缀,即ωi=ωjA,则将后缀A列为S1中的元素,S1是由所有具有这种性质的A构成的集合。

再从新产生的集合中拿出一个元素,从原始集合S0中拿出一个元素,看有没有一个码字是另一个码字的前缀这种情况,如果有就将后缀放入更新的集合中,直到更新的集合为空集为止,一种码是唯一可译码的充要条件是S1,S2,…中没有一个含有S0中的码字。

关键词:原始码字;前缀;后缀;更新集合;空集第1章前言1.1内容及要求(或课题背景)对于用户输入指定的编码个数及编码,判断出输入的码为唯一可译码。

1.2本文研究思路及结构安排设计判定唯一可译码的思路如下:1)、考察S0中所有的码字。

若码字ωj是码字ωi的前缀,即ωi=ωjA,则将后缀A列为S1中的元素,构造S1。

2)、从新产生的集合中拿出一个元素,从原始集合S0中拿出一个元素,找有没有一个码字是另一个码字的前缀这种情况,如果有,就将后缀放入更新的集合中。

3)、如此构造的S1,S2,…集合中没有一个含有S0中的码字,此编码即为唯一可译码,否则,该编码不是唯一可译码。

第2章相关理论知识唯一可译码充要判定条件:设S0为原始码字的集合,再构造一系列集合S1,S2,…为得到集合S1,首先考察S0中所有的码字。

若码字ωj是码字ωi的前缀,即ωi=ωj

声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。联系xxxxxxxx.com

Copyright©2020 一句话经典语录 www.yiyyy.com 版权所有

友情链接

心理测试 图片大全 壁纸图片