“Huffman-树”不仅能对文本数据进行编码、译码,提高文本数据的传输效率,同时它也能对多媒体数据(如:数字图像、视频等)进行编码、译码,从而实现多媒体数据的压缩存储。目前,在Web互联网上广泛使用的JPEG图像格式就采用了Huffman编码,与其他图像格式(如:BMP、TIF等)相比,同一副图像采用JPEG格式时所需的存储空间是最少的。在这个实验中,请设计一个Huffman编/译码器,并模拟数字图像的压缩存储(编码)和解码显示(译码)的过程。
(1)构造“Huffman-树”:
①读入一个大小为N*M(N为图像的高度,M为图像的宽度)的灰度图像块,该图像中的每个像素(元素)的取值范围是0~255,取值为0表示该像素是“黑色”,取值为255表示该像素是“白色”,其他取值表示介于“黑色”和“白色”之间的灰度值。
②统计读入图像块中每种灰度值出现的次数,并去除出现次数为零的灰度值,以此作为构造“Huffman-树”所需的权值。
③说明:在构造“Huffman-树”的过程中,当有多个待合并元素的权值相同时,每次选择灰度值较小的两个元素进行合并。
(2)Huffman编码(压缩存储):读入新的灰度图像块,利用已建立好的“Huffman-树”对其进行编码,将图像的宽度、高度信息和编码结果保存到文件(如:compress_image.txt)中,同时计算Huffman编码的压缩比并输出。压缩比的计算公式如下:压缩比=原始图像所需比特数/压缩后图像所需比特数。
(3)Huffman译码(解码显示):读入压缩存储的灰度图像,利用已建立好的“Huffman-树”对其进行译码,将译码结果按照原有宽度、高度还原图像,并将还原之后的图像保存到文件(如:decoding_image.txt)中。
资源简介:算法源码集合:有hash表、笛卡尔集、哈弗曼树、矩阵乘法、快速排序
上传时间: 2014-01-05
上传用户:lijianyu172
资源简介:构造哈夫曼树 哈弗曼树中没有度为一的节点,是标准的二叉树,所以有n个叶子结点时,需要一个长度为2n-1的一维数组存储哈弗曼树的结点。 (1)、n个叶子节点只有weight权值,处理非叶子节点,从ht[i](ht[1]~ht[n-1])中找到ht[i].weight最小的两个节点ht[s1]...
上传时间: 2016-06-13
上传用户:ztj182002
资源简介:实现了一个相对简单的哈弗曼树的压缩算法,是基于MFC开发的。
上传时间: 2014-01-12
上传用户:z1191176801
资源简介:关于哈弗曼树的编码译码,以及用文件形式输出的的算法
上传时间: 2014-11-22
上传用户:xauthu
资源简介:该程序是基于哈弗曼树的构造,可以实现正常的编码
上传时间: 2017-01-27
上传用户:qazxsw
资源简介:数据结构课程设计源码以及报告 有3个程序:1)哈弗曼树及哈弗曼编码 2)排序—内部排序方法 3)Hanoi Tower
上传时间: 2013-12-16
上传用户:qoovoop
资源简介:用C++编写的哈弗曼树的源代码,方便C语言及C++初学者学习交流
上传时间: 2013-12-06
上传用户:aysyzxzm
资源简介:哈弗曼树生成代码,运行后能生成哈弗曼树,对学习数据结构有帮助。
上传时间: 2013-12-23
上传用户:star_in_rain
资源简介:C++ Builder程序员学习数据结构,里面涵盖了所有你要学习的数据结构的所有源码(二叉树、链表、单链表、双链表、红黑树、快速排序、冒泡排序、哈弗曼树、堆、集合、字典、散列、字典、跳表、图、最短路径、排序。。。。)等等所有数据结构涉及的源码!!!
上传时间: 2014-01-27
上传用户:jyycc
资源简介:用哈弗曼树实现实现对文件的编码与译码, 本代码用C语言描述
上传时间: 2017-07-22
上传用户:wkchong
资源简介:哈弗曼树的c程序,通过了c的调试,运行成功
上传时间: 2013-12-15
上传用户:yan2267246
资源简介:哈弗曼编/译码程序源代码,可以由用户读入哈弗曼树,也可以从文件读入哈弗曼树
上传时间: 2013-12-19
上传用户:jcljkh
资源简介:哈弗曼编码的编译和解码 还能打印哈弗曼树
上传时间: 2017-09-27
上传用户:Yukiseop
资源简介:读入输入的n的大小,n个字符串,和权值建立哈弗曼树,并进行哈夫曼编码
上传时间: 2019-11-16
上传用户:zlmzlm
资源简介:哈弗曼编码的实现,包括了构造哈弗曼树函数,编码函数,译码函数和输出函数。
上传时间: 2017-02-03
上传用户:璇珠官人
资源简介:哈弗曼编码的递归实现算法,包括构造哈弗曼树函数,编码函数,译码函数和输出函数。
上传时间: 2017-02-03
上传用户:zhuoying119
资源简介:哈夫曼树与哈弗曼编码,内有实验报告和程序设计!
上传时间: 2016-12-19
上传用户:李彦东
资源简介:C++实现的哈弗曼编码,并有流程图(1)I:初始化(Initialization)。从指定的英文文件中Sourcefile.txt读取数据,根据文件内容统计的字符的频度,建立哈夫曼树。 (2)E:编码(Encoding)。利用已经建好的哈夫曼树进行编码,并将每个字符的编码写入文件HuffCo...
上传时间: 2013-12-24
上传用户:gxrui1991
资源简介:我们数据结构课上的一些作业 包括约瑟夫环和哈夫曼树之类的几个程序
上传时间: 2015-01-06
上传用户:leehom61
资源简介:包括编译程序词法分析器、操作系统进程状态切换演示、VC_哈夫曼树halftree、节点矩阵最短路径guildmap、串基本操作的演示
上传时间: 2015-01-14
上传用户:plsee
资源简介:哈夫曼树编码代码
上传时间: 2013-12-25
上传用户:franktu
资源简介:构建哈夫曼树,并对给定的字母进行编码,还能将数字密码解码成字符串
上传时间: 2013-12-08
上传用户:yy541071797
资源简介:数据结构哈夫曼树
上传时间: 2014-10-25
上传用户:lyy1234
资源简介:哈夫曼树结构运算
上传时间: 2014-01-11
上传用户:253189838
资源简介:哈夫曼树的建立,编码,以减少存储空间
上传时间: 2014-01-11
上传用户:小眼睛LSL
资源简介:哈夫曼树的实现.
上传时间: 2015-02-28
上传用户:shanml
资源简介:使用动态哈夫曼树实现哈夫曼编码译码
上传时间: 2013-12-29
上传用户:epson850
资源简介:c语言编写的哈夫曼程序,运行通过的!根据输入构建哈夫曼树.
上传时间: 2015-03-15
上传用户:BOBOniu
资源简介:本代码是算法设计课程里的哈夫曼树的查找及绘图实验
上传时间: 2013-12-22
上传用户:woshini123456
资源简介:哈夫曼树的8种实现方法
上传时间: 2013-12-25
上传用户:as275944189