《数据压缩与信源编码》实验报告S
- 格式:docx
- 大小:128.45 KB
- 文档页数:12
10级电子信息工程《信息论与编码技术》学习报告霍夫曼编码在数据压缩中的应用姓名学号班级成绩2012年11月现代社会是信息社会,我们无时无刻都在跟信息打交道,如上网查阅图文资料,浏览最新的新闻,QQ聊天或者传送文件等。
人类对信息的要求越来越丰富,希望无论何时何地都能够方便、快捷、灵活地通过文字、语音、图像以及视频等多媒体进行通信。
在早期的通信领域中,能够处理和传输的主要是文字和声音,因此,早期的计算机和通信设备的处理能力跟人类的需求有相当大的差距。
随着通信信道及计算机容量和速度的提高,如今信息已成为通信领域市场的热点之一。
可是,大数据量的信息会给存储器的存储容量、通信干线信道的宽度以及计算机的处理速度增加极大的压力。
单纯依靠增加存储器容量、提高通信网络带宽和计算机处理速度来解决问题,在技术和经济上都不太现实。
显然,在信道宽度、通信链路容量一定的前提下,采用编码压缩技术、减少传输数据量,是提高通信速度的重要手段。
在信息化高度发达的当今社会,我们必须对信息的传递有着较高的要求,我们希望信息在传递的过程中,能够保持节省性、保密性、无损性和高效性,而著名的霍夫曼编码就能够达到这样的要求。
因此研究霍夫曼编码对信息的压缩就是相当有必要的。
一、霍夫曼编码简介霍夫曼编码是一种可变字长编码的方式。
霍夫曼于1952年提出这种编码方法,该方法完全依据字符出现概率来构造异字头的平均长度最短的的码字,是一种构造最佳码的方法。
霍夫曼编码的码长是变化的,对于出现频率高的信息,编码的长度较短;而对于出现频率低的信息,编码长度较长。
这样,处理全部信息的总码长一定小于实际信息的符号长度。
霍夫曼编码是一种根据字母的使用频率而设计的变长码,能提高信息的传输效率,至今仍有广泛的应用。
霍夫曼编码方法的具体过程是:1、首先把信源的各个输出符号序列按概率递降的顺序排列起来,求其中概率最小的两个序列的概率之和,并把这个概率之和看做是一个符号序列的概率,再与其他序列依概率递降顺序排列(参与求概率之和的这两个序列不再出现在新的排列之中);2、然后,对参与概率求和的两个符号序列分别赋予二进制数字0和1。
实验一常见压缩软件的使用一、实验目的使用一些常见的压缩软件,对数据压缩的概念、分类、技术和标准形成初步的认识和理解。
二、实验要求1.认真阅读实验指导书,按实验步骤完成实验内容。
2.实验过程中注意思考实验提出的问题,并通过实验解释这些问题。
3.通过实验达到实验目的。
三、实验环境计算机硬件:CPU处理速度1GHz以上,内存258M以上,硬盘10G以上软件:Windows操作系统2000或XP。
四、实验内容1.使用WinZip或WinRAR两种压缩软件分别对文本文件(.txt,.doc)、程序源代码文件(.c)、数据文件(.dat)、二进制目标代码文件(.obj)、图像文件(.bmp)、音频文件(.wav)和视频文件(.avi,.wmv)进行压缩,分别计算出压缩率,判断这两种压缩软件采用的是可逆压缩还是不可以压缩,猜测其可能用到了那些压缩(编码)技术?2.使用jpegimager、TAK和BADAK分别进行图像、音频和视频的压缩,体验其压缩效果。
3.使用bcl程序对文本文件、程序源代码文件、数据文件、二进制目标代码文件、图像文件等进行多种统计编码技术的压缩,包括香农-费诺(shannon-fano)编码、霍夫曼(huffman)编码、游程编码rle、字典编码lz等,记录每种压缩方法对不同类型文件的压缩效果并进行比较,结合所学知识,解释其中的原因。
五、实验步骤1、下载并打开WinZip和WinRAR两种压缩软件2、分别新建两个文档:qqjj.winzip 和winrar。
添加所要压缩的文件:文本文件(.txt,.doc)、程序源代码文件(.c)、数据文件(.dat)、二进制目标代码文件(.obj)、图像文件(.bmp)、音频文件(.wav)和视频文件(.avi,.wmv)进行压缩,如图所示:3、WinZip压缩软件可以直接看出各文件的压缩率,而winrar压缩软件不能直接看出各文件的压缩率,要在winrar压缩软件的屏幕上只显示一个压缩文件时,右健该压缩文件,点击显示信息方可看到该压缩文件的压缩率。
《信息论与编码》实验报告1 实验目的(1) 理解信源编码的基本原理;(2) 熟练掌握Huffman编码的方法;(3) 理解无失真信源编码和限失真编码方法在实际图像信源编码应用中的差异。
2 实验设备与软件(1) PC计算机系统(2) VC++6.0语言编程环境(3) 基于VC++6.0的图像处理实验基本程序框架imageprocessing(4) 常用图像浏览编辑软件Acdsee和数据压缩软件winrar。
(5) 实验所需要的bmp格式图像(灰度图像若干幅)3 实验内容与步骤(1) 针对“图像1.bmp”、“图像2.bmp”和“图像3.bmp”进行灰度频率统计(即计算图像灰度直方图),在此基础上添加函数代码构造Huffman码表,针对图像数据进行Huffman编码,观察和分析不同图像信源的编码效率和压缩比。
(2) 利用图像处理软件Acdsee将“图像1.bmp”、“图像2.bmp”和“图像3.bmp”转换为质量因子为10、50、90的JPG格式图像(共生成9幅JPG图像),比较图像格式转换前后数据量的差异,比较不同品质因素对图像质量的影响;(3) 数据压缩软件winrar将“图像1.bmp”、“图像2.bmp”和“图像3.bmp”分别生成压缩包文件,观察和分析压缩前后数据量的差异;(4) 针对任意一幅图像,比较原始BMP图像数据量、Huffman编码后的数据量(不含码表)、品质因素分别为10、50、90时的JPG文件数据量和rar压缩包的数据量,分析不同编码方案下图像数据量变化的原因。
4 实验总结分析实验步骤(1):实验代码:void CImageProcessingDoc::OnImageHuffman(){// TODO: Add your command handler code hereint m_Width, m_Height, m_SaveWidth;int i,j,k;int *b;double *a,acl=0,size=0,ratio=0,ce=0,e=0;//acl:average code length(平均码长);ce:code efficiency(编码效率);e:entropy (信息熵);size:图像大小;ratio:压缩比;long s=0;b=new int[256];a=new double[256];for (i=0; i<256; i++){b[i]=0;a[i]=0;}m_Width = m_pDibInit->GetWidth();m_Height = m_pDibInit->GetHeight();m_SaveWidth = m_pDibInit->GetSaveWidth();for(j=0;j<m_Height;j++)for(i=0;i<m_Width;i++){k=m_pDibInit->m_pDibBits[j*m_SaveWidth + i];b[k]+=1;}//图像统计灰度个数for (i=0; i<256; i++)a[i]=(double)b[i]/((double)m_Width*m_Height);//灰度概率统计//霍夫曼编码程序段Huffm huffm(256);huffm.Huffman(a);huffm.HuffmanCode();for (i=0; i<256; i++){acl+=a[i]*(256-huffm.code[i].start);//编码后的平均码长s+=(256-huffm.code[i].start)*b[i];}for (i=0; i<256; i++){if (a[i]>0.000001)e+=-1.0*a[i]*log10(a[i])/log10(2.0);//图像信息熵}ce=e/acl;//霍夫曼编码效率size=s/(1024.0*8.0);//图像大小ratio=((double)m_Height*(double)m_Width*8.0)/s;//图像信源的压缩比ss.Format("信息熵:%.3f 平均码长:%.3f 编码效率:%.3f%% 压缩比:%.3f 图像大小:%.3f kB ",e,acl,ce*100,ratio,size);}实验结果图:图像1 图像2 图像3 名称类型信息熵(比特/符号) 5.928 4.410 6.709 编码效率99.468% 99.237% 99.628% 压缩比 1.342 1.800 1.188实验分析:不同图像信源的霍夫曼编码效率都很高,都超过了99%,这与编码方式有关,因为霍夫曼编码是一种高效的编码方式,应用了最优码的构造方式,所得的是最短的平均码长的码字,是一种最优码;编码后的图像压缩比与图像信息熵有关,信息熵越大,图像的平均信息量较大,霍夫曼编码后压缩比越小。
桂林理工大学实验报告(2013~ 2014 学年度第一学期)班级: 学号 : 姓名: 实验名称: 实验四图像DCT变换编码与压缩日期: 2013年12月12日一、实验题目:图像DCT变换编码与压缩二、实验目的:(1)掌握离散余弦变换DCT的实现方法, 了解DCT的幅度分布特性, 从而加深对DCT变换的认识。
(2)掌握图像DCT变换编码的实现方法, 从而加深对变换编码压缩图像原理的理解。
三、实验内容:编程实现图像DCT变换编码。
四、预备知识:(1)熟悉DCT原理。
(2)熟悉变换编码原理。
(3)熟悉在MA TLAB环境下对图像文件的I/O操作。
五、实验原理:变换编码是在变换域进行图像压缩的一种技术。
图2.2.1显示了一个典型的变换编码系统。
压缩图像输入图像N×N图2.2.1 变换编码系统在变换编码系统中, 如果正变换采用DCT变换就称为DCT变换编码系统。
DCT用于把一幅图像映射为一组变换系数, 然后对系数进行量化和编码。
对于大多数的正常图像来说, 多数系数具有较小的数值且可以被粗略地量化(或者完全抛弃), 而产生的图像失真较小。
DCT是仅次于K-L变换的次最佳正交变换, 且以获得广泛应用, 并成为许多图像编码国际标准的核心。
离散余弦变换的变换核为余弦函数, 计算速度快, 有利于图像压缩和其他处理。
对于N×N的数字图像, 二维DCT变换的正反变换可表示为:11001100(21)(21)(,)()()(,)cos cos222(21)(21)(,)()()(,)cos cos22N Nx yN Nu vx u y vF u v c u c v f x yN Nx u y vf x y c u c v F u vN N Nππππ--==--==++=++=∑∑∑∑(2.2.1)其中,00()()1,1,2,...,1u vc u c vu v N⎧==⎪==⎨=-⎪⎩或MA TLAB图像处理工具箱实现离散余弦变换有两种方法:(1)使用函数dct2, 该函数用一个基于FFT的算法来提高当输入较大的方阵时的计算速度。
信息论与编码技术实验教案第一章:信息论基础1.1 信息的概念与度量介绍信息的基本概念,信息源的随机性,信息的不确定性。
讲解信息的度量方法,如香农熵、相对熵等。
1.2 信道模型与容量介绍信道的概念,信道的传输特性,信道的噪声模型。
讲解信道的容量及其计算方法,如单符号信道、多符号信道等。
第二章:信源编码与压缩2.1 信源编码的基本概念介绍信源编码的定义、目的和方法。
讲解信源编码的基本原理,如冗余度、平均冗余度等。
2.2 压缩算法与性能评价介绍无损压缩算法,如霍夫曼编码、算术编码等。
讲解有损压缩算法,如JPEG、MP3等。
分析各种压缩算法的性能评价指标,如压缩比、重建误差等。
第三章:信道编码与错误控制3.1 信道编码的基本概念介绍信道编码的定义、目的和方法。
讲解信道编码的基本原理,如纠错码、检错码等。
3.2 常见信道编码技术介绍常用的信道编码技术,如卷积码、汉明码、奇偶校验等。
分析各种信道编码技术的性能,如误码率、编码效率等。
第四章:数字基带传输4.1 数字基带信号与基带传输介绍数字基带信号的概念,数字基带信号的传输特性。
讲解数字基带信号的传输方法,如无编码调制、编码调制等。
4.2 基带传输系统的性能分析分析基带传输系统的性能指标,如误码率、传输速率等。
讲解基带传输系统的优化方法,如滤波器设计、信号调制等。
第五章:信号检测与接收5.1 信号检测的基本概念介绍信号检测的定义、目的和方法。
讲解信号检测的基本原理,如最大后验概率准则、贝叶斯准则等。
5.2 信号接收与性能分析分析信号接收的方法,如同步接收、异步接收等。
讲解信号接收性能的评价指标,如信噪比、误码率等。
第六章:卷积编码与Viterbi算法6.1 卷积编码的基本原理介绍卷积编码的定义、结构及其多项式。
讲解卷积编码的编码过程,包括初始状态、状态转移和输出计算。
6.2 Viterbi算法及其应用介绍Viterbi算法的原理,算法的基本步骤和性能。
讲解Viterbi算法在卷积编码解码中的应用,包括路径度量和状态估计。
信源编码的基本原理及应用1. 什么是信源编码信源编码,也称为数据压缩或编码压缩,是指在数字通信中对信息源进行编码,以便更有效地表示和传输数据。
信源编码的目标是尽量减小数据的表示和传输所需的比特数,提高传输效率。
2. 信源编码的基本原理信源编码的基本原理是利用编码技术将信息源中的冗余部分去除,从而实现数据压缩。
信源编码可以分为两种基本类型:无损编码和有损编码。
2.1 无损编码无损编码是指经过编码和解码后,能够完全还原原始数据的编码方法。
无损编码的基本思想是通过找到数据中的冗余部分,并对其进行有效的压缩和表示。
2.2 有损编码有损编码是指经过编码和解码后,不能完全还原原始数据的编码方法。
有损编码的基本思想是通过牺牲一定的数据精度来实现数据压缩,从而提高传输效率。
3. 信源编码的应用信源编码在数字通信领域有着广泛的应用。
下面列举一些常见的应用场景:•数据传输:信源编码常用于数据传输中,通过压缩数据,减少传输所需的带宽和存储空间。
•图像压缩:对于数字图像的存储和传输,信源编码可以显著减小存储和传输负荷,提高图像的传输效率。
•音频编码:在音频编码中,通过信源编码可以将音频数据进行压缩,实现更高效的音频传输和存储。
•视频编码:信源编码在视频编码中也起到了关键作用,通过对视频数据的压缩,可以实现高清视频的传输和存储。
•文本压缩:在文本处理和存储中,信源编码可以将文本数据进行压缩,并提供更高效的文本处理和存储方式。
•无线通信:在无线通信中,信源编码可以将数据进行压缩,减小数据量,提高无线通信的传输效率。
4. 总结信源编码是数字通信中重要的一环,通过对信息源进行编码,可以实现数据的压缩和高效传输。
无损编码和有损编码是信源编码的两种基本类型,根据不同的应用场景选择合适的编码方式。
信源编码在数据传输、图像压缩、音频编码、视频编码、文本压缩和无线通信等领域都有着重要的应用价值。
通过合理地选用信源编码技术,可以有效地提高数据的传输效率和存储效率,减少网络带宽消耗,为数字通信提供更好的服务和用户体验。
电子科技大学实验报告课程名称信息论与编码实验名称信源编码任课教师姓名学号时间2018 年11月28 日一、实验目的和要求1.掌握对信源变长编码定理的理解;2.掌握信源编码技术,如香农编码,费诺编码,哈夫曼编码或其他无失真信源编码技术;3.对英文小说“Game of Thrones”中出现的26个英文字母和空格符号(一共27个符号)进行信源编码。
4.至少对前两章“Prologue”和“Bran”中出现的符号进行统计。
5.任意选择一种编程平台,C++,Java,Python,Matlab等等。
6.运行程序后,能够在屏幕上显示每一个符号对应的码字,原始信源的熵,平均码字长度,码字长度的方差,以及编码效率。
二、 实验内容1. 对英文小说“Game of Thrones ”中出现的26个英文字母和空格符号(一共27个符号)进行信源编码。
2. 在屏幕上显示每一个符号对应的码字,原始信源的熵,平均码字长度,码字长度的方差,以及编码效率。
三、 实验原理1. 采用哈夫曼编码完成实验要求2.哈夫曼(Haveman )编码算法是满足前缀条件的平均二进制码长最短的编-源输出符号,而将较短的编码码字分配给较大概率的信源输出。
算法是:在信源符号集合中,首先将两个最小概率的信源输出合并为新的输出,其概率是两个相应输出符号概率之和。
这一过程重复下去,直到只剩下一个合并输出为止,这个最后的合并输出符号的概率为1。
这样就得到了一张树图,从树根开始,将编码符号1 和0 分配在同一节点的任意两分支上,这一分配过程重复直到树叶。
从树根到树叶途经支路上的编码最后就构成了一组异前置码,就是霍夫曼编码输出。
离散无记忆信源:例如Uu 1u 2u 3u 4u 5P (U ) = 0.4 0.2 0.2 0.1 0.1通过上表的对信源缩减合并过程,从而完成了对信源的霍夫曼码。
四、实验步骤1.主函数为sourcecoding,用fopen打开text文本,并用fread读取文本,得到ASCII码向量seq;2.利用自己编写statistic.m函数统计seq向量中出现的符号和概率,并通过处理得到所需向量seq2. statistic函数采用了对seq处理的三种形式。