杂志信息网-创作、查重、发刊有保障。

哈夫曼编码的相关毕业论文

发布时间:2024-07-06 06:07:46

哈夫曼编码的相关毕业论文

多媒体图像压缩技术姓名:Vencent Lee摘要:多媒体数据压缩技术是现代网络发展的关键性技术之一。由于图像和声音信号中存在各种各样的冗余,为数据压缩提供了可能。数据压缩技术有无损压和有损压缩两大类,这些压缩技术又各有不同的标准。一、多媒体数据压缩技术仙农(C.E.Shannon)在创立信息论时,提出把数据看作是信息和冗余度的组合。早期的数据压缩之所以成为信息论的一部分是因为它涉及冗余度问题。而数据之所以能够被压缩是因为其中存在各种各样的冗余;其中有时间冗余性、空间冗余性、信息熵冗余、先验知识冗余、其它冗余等。时间冗余是语音和序列图像中常见的冗余,运动图像中前后两帧间就存在很强的相关性,利用帧间运动补兴就可以将图像数据的速率大大压缩。语音也是这样。尤其是浊音段,在相当长的时间内(几到几十毫秒)语音信号都表现出很强的周期性,可以利用线性预测的方法得到较高的压缩比。空间冗余是用来表示图像数据中存在的某种空间上的规则性,如大面积的均匀背景中就有很大的空间冗余性。信息熵冗余是指在信源的符号表示过程中由于未遵循信息论意义下最优编码而造成的冗余性,这种冗余性可以通过熵编码来进行压缩,经常使用的如Huff-man编码。先验知识冗余是指数据的理解与先验知识有相当大的关系,如当收信方知道一个单词的前几个字母为administrato时,立刻就可以猜到最后一个字母为r,那么在这种情况下,最后一个字母就不带任何信息量了,这就是一种先验知识冗余。其它冗余是指那些主观无法感受到的信息等带来的冗余。通常数据压缩技术可分为无损压缩(又叫冗余压缩)和有损压缩(又叫熵压缩)两大类。无损压缩就是把数据中的冗余去掉或减少,但这些冗余量是可以重新插入到数据中的,因而不会产生失真。该方法一般用于文本数据的压缩,它可以保证完全地恢复原始数据;其缺点是压缩比小(其压缩比一般为2:1至5:1)。有损压缩是对熵进行压缩,因而存在一定程度的失真;它主要用于对声音、图像、动态视频等数据进行压缩,压缩比较高(其压缩比一般高达20:1以上。最新被称为“E—igen—ID”的压缩技术可将基因数据压缩1.5亿倍)。对于多媒体图像采用的有损压缩的标准有静态图像压缩标准(JPEG标准,即‘JointPhotographicExpertGroup’标准)和动态图像压缩标准(MPEG标准,即‘MovingPictureExpertGroup’标准)。JPEG利用了人眼的心理和生理特征及其局限性来对彩色的、单色的和多灰度连续色调的、静态图像的、数字图像的压缩,因此它非常适合不太复杂的以及一般来源于真实景物的图像。它定义了两种基本的压缩算法:一种是基于有失真的压缩算法,另一种是基于空间线性预测技术(DPCM)无失真的压缩算法。为了满足各种需要,它制定了四种工作模式:无失真压缩、基于DCT的顺序工作方式、累进工作方式和分层工作方式。MPEG用于活动影像的压缩。MPEG标准具体包三部分内容:(1)MPEG视频、(2)MPEG音频、(3)MP系统(视频和音频的同步)。MPEG视频是标准的核心分,它采用了帧内和帧间相结合的压缩方法,以离散余变换(DCT)和运动补偿两项技术为基础,在图像质量基不变的情况下,MPEG可把图像压缩至1/100或更MPEG音频压缩算法则是根据人耳屏蔽滤波功能。利用音响心理学的基本原理,即“某些频率的音响在重放其频率的音频时听不到”这样一个特性,将那些人耳完全不到或基本上听到的多余音频信号压缩掉,最后使音频号的压缩比达到8:1或更高,音质逼真,与CD唱片可媲美。按照MPEG标准,MPEG数据流包含系统层和压层数据。系统层含有定时信号,图像和声音的同步、多分配等信息。压缩层包含经压缩后的实际的图像和声数据,该数据流将视频、音频信号复合及同步后,其数据输率为1.5MB/s。其中压缩图像数据传输率为1.2M压缩声音传输率为0.2MB/s。MPEG标准的发展经历了MPEG—I,MPEG一2、MPEG一4、MPEG-7、MPEG一21等不同层次。在MPEG的不同标准中,每—个标准都是建立在前面的标准之上的,并与前面的标准向后的兼容。目前在图像压缩中,应用得较多的是MPEG一4标准,MPEG-是在MPEG-2基础上作了很大的扩充,主要目标是多媒体应用。在MPEG一2标准中,我们的观念是单幅图像,而且包含了一幅图像的全部元素。在MPEG一4标准下,我们的观念变为多图像元素,其中的每—个多图像元素都是独立编码处理的。该标准包含了为接收器所用的指令,告诉接收器如何构成最终的图像。上图既表示了MPEG一4解码器的概念,又比较清楚地描绘了每个部件的用途。这里不是使用单一的视频或音频解码器,而是使用若干个解码器,其中的每一个解码器只接收某个特定的图像(或声音)元素,并完成解码操作。每个解码缓冲器只接收属于它自己的灵敏据流,并转送给解码器。复合存储器完成图像元素的存储,并将它们送到显示器的恰当位置。音频的情况也是这样,但显然不同点是要求同时提供所有的元素。数据上的时间标记保证这些元素在时间上能正确同步。MPEG一4标准对自然元素(实物图像)和合成元素进行区分和规定,计算机生成的动画是合成元素的一个例子。比如,一幅完整的图像可以包含一幅实际的背景图,并在前面有一幅动画或者有另外一幅自然图像。这样的每一幅图像都可以作最佳压缩,并互相独立地传送到接收器,接收器知道如何把这些元素组合在一起。在MPEG一2标准中,图像被看作一个整体来压缩;而在MPEG一4标准下,对图像中的每一个元素进行优化压缩。静止的背景不必压缩到以后的I帧之中去,否则会使带宽的使用变得很紧张。而如果这个背景图像静止10秒钟,就只要传送一次(假设我们不必担心有人在该时间内切人此频道),需要不断传送的仅是前台的比较小的图像元素。对有些节目类型,这样做会节省大量的带宽。MPEG一4标准对音频的处理也是相同的。例如,有一位独唱演员,伴随有电子合成器,在MPEG一2标准下,我们必须先把独唱和合成器作混合,然后再对合成的音频信号进行压缩与传送。在MPEG一4标准下,我们可以对独唱作单独压缩,然后再传送乐器数字接口的声轨信号,就可以使接收器重建伴音。当然,接收器必须能支持MIDI放音。与传送合成的信号相比,分别传送独唱信号和MIDI数据要节省大量的带宽。其它的节目类型同样可以作类似的规定。MPEG一7标准又叫多媒体内容描述接口标准。图像可以用色彩、纹理、形状、运动等参数来描述,MPEG一7标准是依靠众多的参数对图像与声音实现分类,并对它们的数据库实现查询。二、多媒体数据压缩技术的实现方法目前多媒体压缩技术的实现方法已有近百种,其中基于信源理论编码的压缩方法、离散余弦变换(DCT)和小波分解技术压缩算法的研究更具有代表性。小波技术突破了传统压缩方法的局限性,引入了局部和全局相关去冗余的新思想,具有较大的潜力,因此近几年来吸引了众多的研究者。在小波压缩技术中,一幅图像可以被分解为若干个叫做“小片”的区域;在每个小片中,图像经滤波后被分解成若干个低频与高频分量。低频分量可以用不同的分辨率进行量化,即图像的低频部分需要许多的二进制位,以改善图像重构时的信噪比。低频元素采用精细量化,高频分量可以量化得比较粗糙,因为你不太容易看到变化区域的噪声与误差。此外,碎片技术已经作为一种压缩方法被提出,这种技术依靠实际图形的重复特性。用碎片技术压缩图像时需要占用大量的计算机资源,但可以获得很好的结果。借助于从DNA序列研究中发展出来的模式识别技术,能减少通过WAN链路的流量,最多时的压缩比率能达到90%,从而为网络传送图像和声音提供更大的压缩比,减轻风络负荷,更好地实现网络信息传播。三、压缩原理由于图像数据之间存在着一定的冗余,所以使得数据的压缩成为可能。信息论的创始人Shannon提出把数据看作是信息和冗余度(redundancy)的组合。所谓冗余度,是由于一副图像的各像素之间存在着很大的相关性,可利用一些编码的方法删去它们,从而达到减少冗余压缩数据的目的。为了去掉数据中的冗余,常常要考虑信号源的统计特性,或建立信号源的统计模型。图像的冗余包括以下几种:(1) 空间冗余:像素点之间的相关性。(2) 时间冗余:活动图像的两个连续帧之间的冗余。(3) 信息熵冗余:单位信息量大于其熵。(4) 结构冗余:图像的区域上存在非常强的纹理结构。(5) 知识冗余:有固定的结构,如人的头像。(6) 视觉冗余:某些图像的失真是人眼不易觉察的。对数字图像进行压缩通常利用两个基本原理:(1) 数字图像的相关性。在图像的同一行相邻像素之间、活动图像的相邻帧的对应像素之间往往存在很强的相关性,去除或减少这些相关性,也就去除或减少图像信息中的冗余度,即实现了对数字图像的压缩。(2) 人的视觉心理特征。人的视觉对于边缘急剧变化不敏感(视觉掩盖效应),对颜色分辨力弱,利用这些特征可以在相应部分适当降低编码精度,而使人从视觉上并不感觉到图像质量的下降,从而达到对数字图像压缩的目的。编码压缩方法有许多种,从不同的角度出发有不同的分类方法,比如从信息论角度出发可分 为两大类:(1)冗余度压缩方法,也称无损压缩,信息保持编码或熵编码。具体讲就是解码图像和压缩 编码前的图像严格相同,没有失真,从数学上讲是一种可逆运算。(2)信息量压缩方法,也称有损压缩,失真度编码或熵压缩编码。也就是讲解码图像和原始图像是有差别的,允许有一定的失真。应用在多媒体中的图像压缩编码方法,从压缩编码算法原理上可以分类为:(1)无损压缩编码种类 •哈夫曼编码 •算术编码 •行程编码 •Lempel zev编码(2)有损压缩编码种类 •预测编码:DPCM,运动补偿 •频率域方法:正文变换编码(如DCT),子带编码 •空间域方法:统计分块编码 •模型方法:分形编码,模型基编码 •基于重要性:滤波,子采样,比特分配,矢量量化(3)混合编码 •JBIG,H261,JPEG,MPEG等技术标准衡量一个压缩编码方法优劣的重要指标(1)压缩比要高,有几倍、几十倍,也有几百乃至几千倍;(2)压缩与解压缩要快,算法要简单,硬件实现容易;(3)解压缩的图像质量要好。四、JPEG图像压缩算法1..JPEG压缩过程JPEG压缩分四个步骤实现:1.颜色模式转换及采样;变换;3.量化;4.编码。2.1.颜色模式转换及采样RGB色彩系统是我们最常用的表示颜色的方式。JPEG采用的是YCbCr色彩系统。想要用JPEG基本压缩法处理全彩色图像,得先把RGB颜色模式图像数据,转换为YCbCr颜色模式的数据。Y代表亮度,Cb和Cr则代表色度、饱和度。通过下列计算公式可完成数据转换。Y=+128人类的眼晴对低频的数据比对高频的数据具有更高的敏感度,事实上,人类的眼睛对亮度的改变也比对色彩的改变要敏感得多,也就是说Y成份的数据是比较重要的。既然Cb成份和Cr成份的数据比较相对不重要,就可以只取部分数据来处理。以增加压缩的比例。JPEG通常有两种采样方式:YUV411和YUV422,它们所代表的意义是Y、Cb和Cr三个成份的资料取样比例。2.变换DCT变换的全称是离散余弦变换(Discrete Cosine Transform),是指将一组光强数据转换成频率数据,以便得知强度变化的情形。若对高频的数据做些修饰,再转回原来形式的数据时,显然与原始数据有些差异,但是人类的眼睛却是不容易辨认出来。压缩时,将原始图像数据分成8*8数据单元矩阵,例如亮度值的第一个矩阵内容如下:JPEG将整个亮度矩阵与色度Cb矩阵,饱和度Cr矩阵,视为一个基本单元称作MCU。每个MCU所包含的矩阵数量不得超过10个。例如,行和列采样的比例皆为4:2:2,则每个MCU将包含四个亮度矩阵,一个色度矩阵及一个饱和度矩阵。当图像数据分成一个8*8矩阵后,还必须将每个数值减去128,然后一一代入DCT变换公式中,即可达到DCT变换的目的。图像数据值必须减去128,是因为DCT转换公式所接受的数字范围是在-128到+127之间。DCT变换公式:x,y代表图像数据矩阵内某个数值的坐标位置f(x,y)代表图像数据矩阵内的数个数值u,v代表DCT变换后矩阵内某个数值的坐标位置F(u,v)代表DCT变换后矩阵内的某个数值u=0 且 v=0 c(u)c(v)=1/>0 或 v>0 c(u)c(v)=1经过DCT变换后的矩阵数据自然数为频率系数,这些系数以F(0,0)的值最大,称为DC,其余的63个频率系数则多半是一些接近于0的正负浮点数,一概称之为AC。3.3、量化图像数据转换为频率系数后,还得接受一项量化程序,才能进入编码阶段。量化阶段需要两个8*8矩阵数据,一个是专门处理亮度的频率系数,另一个则是针对色度的频率系数,将频率系数除以量化矩阵的值,取得与商数最近的整数,即完成量化。当频率系数经过量化后,将频率系数由浮点数转变为整数,这才便于执行最后的编码。不过,经过量化阶段后,所有数据只保留整数近似值,也就再度损失了一些数据内容,JPEG提供的量化表如下:2.4、编码Huffman编码无专利权问题,成为JPEG最常用的编码方式,Huffman编码通常是以完整的MCU来进行的。编码时,每个矩阵数据的DC值与63个AC值,将分别使用不同的Huffman编码表,而亮度与色度也需要不同的Huffman编码表,所以一共需要四个编码表,才能顺利地完成JPEG编码工作。DC编码DC是彩采用差值脉冲编码调制的差值编码法,也就是在同一个图像分量中取得每个DC值与前一个DC值的差值来编码。DC采用差值脉冲编码的主要原因是由于在连续色调的图像中,其差值多半比原值小,对差值进行编码所需的位数,会比对原值进行编码所需的位数少许多。例如差值为5,它的二进制表示值为101,如果差值为-5,则先改为正整数5,再将其二进制转换成1的补码即可。所谓1的补码,就是将每个Bit若值为0,便改成1;Bit为1,则变成0。差值5应保留的位数为3,下表即列出差值所应保留的Bit数与差值内容的对照。在差值前端另外加入一些差值的霍夫曼码值,例如亮度差值为5(101)的位数为3,则霍夫曼码值应该是100,两者连接在一起即为100101。下列两份表格分别是亮度和色度DC差值的编码表。根据这两份表格内容,即可为DC差值加上霍夫曼码值,完成DC的编码工作。AC编码AC编码方式与DC略有不同,在AC编码之前,首先得将63个AC值按Zig-zag排序,即按照下图箭头所指示的顺序串联起来。63个AC值排列好的,将AC系数转换成中间符号,中间符号表示为RRRR/SSSS,RRRR是指第非零的AC之前,其值为0的AC个数,SSSS是指AC值所需的位数,AC系数的范围与SSSS的对应关系与DC差值Bits数与差值内容对照表相似。如果连续为0的AC个数大于15,则用15/0来表示连续的16个0,15/0称为ZRL(Zero Rum Length),而(0/0)称为EOB(Enel of Block)用来表示其后所剩余的AC系数皆等于0,以中间符号值作为索引值,从相应的AC编码表中找出适当的霍夫曼码值,再与AC值相连即可。例如某一组亮度的中间符为5/3,AC值为4,首先以5/3为索引值,从亮度AC的Huffman编码表中找到1111111110011110霍夫曼码值,于是加上原来100(4)即是用来取[5,4]的Huffman编码1111111110011110100,[5,4]表示AC值为4的前面有5个零。由于亮度AC,色度AC霍夫曼编码表比较长,在此省略去,有兴趣者可参阅相关书籍。实现上述四个步骤,即完成一幅图像的JPEG压缩。

Content as follows: no distortion source coding is a kind of when source symbols, can convert code without distortion from code returned to the original source of the source coding symbols. This paper firstly introduces the without distortion encoding technology development and application; Then discussed emphatically shannon coding, feanor coding, hoffmann coding and the arithmetic coding of four kinds of coding method, the principle and encoding steps are compared with the corresponding sample the average yards long and information transmission speed; Finally, using the Matlab software realize the coding hoffmann the simulation process, also gives part of the source program, and illustrates the application of output, analysed and corresponding conclusions.

数字图像压缩技术的研究及进展摘要:数字图像压缩技术对于数字图像信息在网络上实现快速传输和实时处理具有重要的意义。本文介绍了当前几种最为重要的图像压缩算法: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的学生提出局部迭代函数系统理论后,使分形用于图像压缩在计算机上自动实现成为可能。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]邓家先 康耀红 编著 《信息论与编码》

多媒体的应用很广泛,请链接

哈夫曼编码毕业论文

Content as follows: no distortion source coding is a kind of when source symbols, can convert code without distortion from code returned to the original source of the source coding symbols. This paper firstly introduces the without distortion encoding technology development and application; Then discussed emphatically shannon coding, feanor coding, hoffmann coding and the arithmetic coding of four kinds of coding method, the principle and encoding steps are compared with the corresponding sample the average yards long and information transmission speed; Finally, using the Matlab software realize the coding hoffmann the simulation process, also gives part of the source program, and illustrates the application of output, analysed and corresponding conclusions.

哈夫曼编码(Huffman Coding)是一种编码方式,以哈夫曼树—即最优二叉树,带权路径长度最小的二叉树,经常应用于数据压缩。 在计算机信息处理中,“哈夫曼编码”是一种一致性编码法(又称"熵编码法"),用于数据的无损耗压缩。这一术语是指使用一张特殊的编码表将源字符(例如某文件中的一个符号)进行编码。这张编码表的特殊之处在于,它是根据每一个源字符出现的估算概率而建立起来的(出现概率高的字符使用较短的编码,反之出现概率低的则使用较长的编码,这便使编码之后的字符串的平均期望长度降低,从而达到无损压缩数据的目的)。这种方法是由发展起来的。 例如,在英文中,e的出现概率很高,而z的出现概率则最低。当利用哈夫曼编码对一篇英文进行压缩时,e极有可能用一个位(bit)来表示,而z则可能花去25个位(不是26)。用普通的表示方法时,每个英文字母均占用一个字节(byte),即8个位。二者相比,e使用了一般编码的1/8的长度,z则使用了3倍多。倘若我们能实现对于英文中各个字母出现概率的较准确的估算,就可以大幅度提高无损压缩的比例。 本文描述在网上能够找到的最简单,最快速的哈夫曼编码。本方法不使用任何扩展动态库,比如STL或者组件。只使用简单的C函数,比如:memset,memmove,qsort,malloc,realloc和memcpy。 因此,大家都会发现,理解甚至修改这个编码都是很容易的。 背景 哈夫曼压缩是个无损的压缩算法,一般用来压缩文本和程序文件。哈夫曼压缩属于可变代码长度算法一族。意思是个体符号(例如,文本文件中的字符)用一个特定长度的位序列替代。因此,在文件中出现频率高的符号,使用短的位序列,而那些很少出现的符号,则用较长的位序列。 编码使用 我用简单的C函数写这个编码是为了让它在任何地方使用都会比较方便。你可以将他们放到类中,或者直接使用这个函数。并且我使用了简单的格式,仅仅输入输出缓冲区,而不象其它文章中那样,输入输出文件。 bool CompressHuffman(BYTE *pSrc, int nSrcLen, BYTE *&pDes, int &nDesLen); bool DecompressHuffman(BYTE *pSrc, int nSrcLen, BYTE *&pDes, int &nDesLen); 要点说明 速度 为了让它()快速运行,我花了很长时间。同时,我没有使用任何动态库,比如STL或者MFC。它压缩1M数据少于100ms(P3处理器,主频1G)。 压缩 压缩代码非常简单,首先用ASCII值初始化511个哈夫曼节点: CHuffmanNode nodes[511]; for(int nCount = 0; nCount < 256; nCount++) nodes[nCount].byAscii = nCount; 然后,计算在输入缓冲区数据中,每个ASCII码出现的频率: for(nCount = 0; nCount < nSrcLen; nCount++) nodes[pSrc[nCount]].nFrequency++; 然后,根据频率进行排序: qsort(nodes, 256, sizeof(CHuffmanNode), frequencyCompare); 现在,构造哈夫曼树,获取每个ASCII码对应的位序列: int nNodeCount = GetHuffmanTree(nodes); 构造哈夫曼树非常简单,将所有的节点放到一个队列中,用一个节点替换两个频率最低的节点,新节点的频率就是这两个节点的频率之和。这样,新节点就是两个被替换节点的父节点了。如此循环,直到队列中只剩一个节点(树根)。 // parent node pNode = &nodes[nParentNode++]; // pop first child pNode->pLeft = PopNode(pNodes, nBackNode--, false); // pop second child pNode->pRight = PopNode(pNodes, nBackNode--, true); // adjust parent of the two poped nodes pNode->pLeft->pParent = pNode->pRight->pParent = pNode; // adjust parent frequency pNode->nFrequency = pNode->pLeft->nFrequency + pNode->pRight->nFrequency; 这里我用了一个好的诀窍来避免使用任何队列组件。我先前就直到ASCII码只有256个,但我分配了511个(CHuffmanNode nodes[511]),前255个记录ASCII码,而用后255个记录哈夫曼树中的父节点。并且在构造树的时候只使用一个指针数组(ChuffmanNode *pNodes[256])来指向这些节点。同样使用两个变量来操作队列索引(int nParentNode = nNodeCount;nBackNode = nNodeCount –1)。 接着,压缩的最后一步是将每个ASCII编码写入输出缓冲区中: int nDesIndex = 0; // loop to write codes for(nCount = 0; nCount < nSrcLen; nCount++) { *(DWORD*)(pDesPtr+(nDesIndex>>3)) |= nodes[pSrc[nCount]].dwCode << (nDesIndex&7); nDesIndex += nodes[pSrc[nCount]].nCodeLength; } (nDesIndex>>3): >>3 以8位为界限右移后到达右边字节的前面 (nDesIndex&7): &7 得到最高位. 注意:在压缩缓冲区中,我们必须保存哈夫曼树的节点以及位序列,这样我们才能在解压缩时重新构造哈夫曼树(只需保存ASCII值和对应的位序列)。 解压缩 解压缩比构造哈夫曼树要简单的多,将输入缓冲区中的每个编码用对应的ASCII码逐个替换就可以了。只要记住,这里的输入缓冲区是一个包含每个ASCII值的编码的位流。因此,为了用ASCII值替换编码,我们必须用位流搜索哈夫曼树,直到发现一个叶节点,然后将它的ASCII值添加到输出缓冲区中: int nDesIndex = 0; DWORD nCode; while(nDesIndex < nDesLen) { nCode = (*(DWORD*)(pSrc+(nSrcIndex>>3)))>>(nSrcIndex&7); pNode = pRoot; while(pNode->pLeft) { pNode = (nCode&1) ? pNode->pRight : pNode->pLeft; nCode >>= 1; nSrcIndex++; } pDes[nDesIndex++] = pNode->byAscii; }

赫夫曼编码毕业论文

霍夫曼编码计算过程:无损数据压缩的熵编码。

在计算机数据处理中,霍夫曼编码使用变长编码表对源符号(如文件中的一个字母)进行编码,其中变长编码表是通过一种评估来源符号出现机率的方法得到的,出现机率高的字母使用较短的编码,反之出现机率低的则使用较长的编码,这便使编码之后的字符串的平均长度、期望值降低,从而达到无损压缩数据的目的。

例如,在英文中,e的出现机率最高,而z的出现概率则最低。当利用霍夫曼编码对一篇英文进行压缩时,e极有可能用一个比特来表示,而z则可能花去25个比特(不是26)。用普通的表示方法时,每个英文字母均占用一个字节,即8个比特。

二者相比,e使用了一般编码的1/8的长度,z则使用了3倍多。倘若我们能实现对于英文中各个字母出现概率的较准确的估算,就可以大幅度提高无损压缩的比例。

霍夫曼编码历史:

1951年,霍夫曼在麻省理工学院(MIT)攻读博士学位,他和修读信息论课程的同学得选择是完成学期报告还是期末考试。导师罗伯特·法诺(Robert Fano)出的学期报告题目是:查找最有效的二进制编码。

由于无法证明哪个已有编码是最有效的,霍夫曼放弃对已有编码的研究,转向新的探索,最终发现了基于有序频率二叉树编码的想法,并很快证明了这个方法是最有效的。霍夫曼使用自底向上的方法构建二叉树,避免了次优算法香农-范诺编码(Shannon–Fano coding)的最大弊端──自顶向下构建树。

1952年,于论文《一种构建极小多余编码的方法》(A Method for the Construction of Minimum-Redundancy Codes)中发表了这个编码方法。

多媒体图像压缩技术姓名:Vencent Lee摘要:多媒体数据压缩技术是现代网络发展的关键性技术之一。由于图像和声音信号中存在各种各样的冗余,为数据压缩提供了可能。数据压缩技术有无损压和有损压缩两大类,这些压缩技术又各有不同的标准。一、多媒体数据压缩技术仙农(C.E.Shannon)在创立信息论时,提出把数据看作是信息和冗余度的组合。早期的数据压缩之所以成为信息论的一部分是因为它涉及冗余度问题。而数据之所以能够被压缩是因为其中存在各种各样的冗余;其中有时间冗余性、空间冗余性、信息熵冗余、先验知识冗余、其它冗余等。时间冗余是语音和序列图像中常见的冗余,运动图像中前后两帧间就存在很强的相关性,利用帧间运动补兴就可以将图像数据的速率大大压缩。语音也是这样。尤其是浊音段,在相当长的时间内(几到几十毫秒)语音信号都表现出很强的周期性,可以利用线性预测的方法得到较高的压缩比。空间冗余是用来表示图像数据中存在的某种空间上的规则性,如大面积的均匀背景中就有很大的空间冗余性。信息熵冗余是指在信源的符号表示过程中由于未遵循信息论意义下最优编码而造成的冗余性,这种冗余性可以通过熵编码来进行压缩,经常使用的如Huff-man编码。先验知识冗余是指数据的理解与先验知识有相当大的关系,如当收信方知道一个单词的前几个字母为administrato时,立刻就可以猜到最后一个字母为r,那么在这种情况下,最后一个字母就不带任何信息量了,这就是一种先验知识冗余。其它冗余是指那些主观无法感受到的信息等带来的冗余。通常数据压缩技术可分为无损压缩(又叫冗余压缩)和有损压缩(又叫熵压缩)两大类。无损压缩就是把数据中的冗余去掉或减少,但这些冗余量是可以重新插入到数据中的,因而不会产生失真。该方法一般用于文本数据的压缩,它可以保证完全地恢复原始数据;其缺点是压缩比小(其压缩比一般为2:1至5:1)。有损压缩是对熵进行压缩,因而存在一定程度的失真;它主要用于对声音、图像、动态视频等数据进行压缩,压缩比较高(其压缩比一般高达20:1以上。最新被称为“E—igen—ID”的压缩技术可将基因数据压缩1.5亿倍)。对于多媒体图像采用的有损压缩的标准有静态图像压缩标准(JPEG标准,即‘JointPhotographicExpertGroup’标准)和动态图像压缩标准(MPEG标准,即‘MovingPictureExpertGroup’标准)。JPEG利用了人眼的心理和生理特征及其局限性来对彩色的、单色的和多灰度连续色调的、静态图像的、数字图像的压缩,因此它非常适合不太复杂的以及一般来源于真实景物的图像。它定义了两种基本的压缩算法:一种是基于有失真的压缩算法,另一种是基于空间线性预测技术(DPCM)无失真的压缩算法。为了满足各种需要,它制定了四种工作模式:无失真压缩、基于DCT的顺序工作方式、累进工作方式和分层工作方式。MPEG用于活动影像的压缩。MPEG标准具体包三部分内容:(1)MPEG视频、(2)MPEG音频、(3)MP系统(视频和音频的同步)。MPEG视频是标准的核心分,它采用了帧内和帧间相结合的压缩方法,以离散余变换(DCT)和运动补偿两项技术为基础,在图像质量基不变的情况下,MPEG可把图像压缩至1/100或更MPEG音频压缩算法则是根据人耳屏蔽滤波功能。利用音响心理学的基本原理,即“某些频率的音响在重放其频率的音频时听不到”这样一个特性,将那些人耳完全不到或基本上听到的多余音频信号压缩掉,最后使音频号的压缩比达到8:1或更高,音质逼真,与CD唱片可媲美。按照MPEG标准,MPEG数据流包含系统层和压层数据。系统层含有定时信号,图像和声音的同步、多分配等信息。压缩层包含经压缩后的实际的图像和声数据,该数据流将视频、音频信号复合及同步后,其数据输率为1.5MB/s。其中压缩图像数据传输率为1.2M压缩声音传输率为0.2MB/s。MPEG标准的发展经历了MPEG—I,MPEG一2、MPEG一4、MPEG-7、MPEG一21等不同层次。在MPEG的不同标准中,每—个标准都是建立在前面的标准之上的,并与前面的标准向后的兼容。目前在图像压缩中,应用得较多的是MPEG一4标准,MPEG-是在MPEG-2基础上作了很大的扩充,主要目标是多媒体应用。在MPEG一2标准中,我们的观念是单幅图像,而且包含了一幅图像的全部元素。在MPEG一4标准下,我们的观念变为多图像元素,其中的每—个多图像元素都是独立编码处理的。该标准包含了为接收器所用的指令,告诉接收器如何构成最终的图像。上图既表示了MPEG一4解码器的概念,又比较清楚地描绘了每个部件的用途。这里不是使用单一的视频或音频解码器,而是使用若干个解码器,其中的每一个解码器只接收某个特定的图像(或声音)元素,并完成解码操作。每个解码缓冲器只接收属于它自己的灵敏据流,并转送给解码器。复合存储器完成图像元素的存储,并将它们送到显示器的恰当位置。音频的情况也是这样,但显然不同点是要求同时提供所有的元素。数据上的时间标记保证这些元素在时间上能正确同步。MPEG一4标准对自然元素(实物图像)和合成元素进行区分和规定,计算机生成的动画是合成元素的一个例子。比如,一幅完整的图像可以包含一幅实际的背景图,并在前面有一幅动画或者有另外一幅自然图像。这样的每一幅图像都可以作最佳压缩,并互相独立地传送到接收器,接收器知道如何把这些元素组合在一起。在MPEG一2标准中,图像被看作一个整体来压缩;而在MPEG一4标准下,对图像中的每一个元素进行优化压缩。静止的背景不必压缩到以后的I帧之中去,否则会使带宽的使用变得很紧张。而如果这个背景图像静止10秒钟,就只要传送一次(假设我们不必担心有人在该时间内切人此频道),需要不断传送的仅是前台的比较小的图像元素。对有些节目类型,这样做会节省大量的带宽。MPEG一4标准对音频的处理也是相同的。例如,有一位独唱演员,伴随有电子合成器,在MPEG一2标准下,我们必须先把独唱和合成器作混合,然后再对合成的音频信号进行压缩与传送。在MPEG一4标准下,我们可以对独唱作单独压缩,然后再传送乐器数字接口的声轨信号,就可以使接收器重建伴音。当然,接收器必须能支持MIDI放音。与传送合成的信号相比,分别传送独唱信号和MIDI数据要节省大量的带宽。其它的节目类型同样可以作类似的规定。MPEG一7标准又叫多媒体内容描述接口标准。图像可以用色彩、纹理、形状、运动等参数来描述,MPEG一7标准是依靠众多的参数对图像与声音实现分类,并对它们的数据库实现查询。二、多媒体数据压缩技术的实现方法目前多媒体压缩技术的实现方法已有近百种,其中基于信源理论编码的压缩方法、离散余弦变换(DCT)和小波分解技术压缩算法的研究更具有代表性。小波技术突破了传统压缩方法的局限性,引入了局部和全局相关去冗余的新思想,具有较大的潜力,因此近几年来吸引了众多的研究者。在小波压缩技术中,一幅图像可以被分解为若干个叫做“小片”的区域;在每个小片中,图像经滤波后被分解成若干个低频与高频分量。低频分量可以用不同的分辨率进行量化,即图像的低频部分需要许多的二进制位,以改善图像重构时的信噪比。低频元素采用精细量化,高频分量可以量化得比较粗糙,因为你不太容易看到变化区域的噪声与误差。此外,碎片技术已经作为一种压缩方法被提出,这种技术依靠实际图形的重复特性。用碎片技术压缩图像时需要占用大量的计算机资源,但可以获得很好的结果。借助于从DNA序列研究中发展出来的模式识别技术,能减少通过WAN链路的流量,最多时的压缩比率能达到90%,从而为网络传送图像和声音提供更大的压缩比,减轻风络负荷,更好地实现网络信息传播。三、压缩原理由于图像数据之间存在着一定的冗余,所以使得数据的压缩成为可能。信息论的创始人Shannon提出把数据看作是信息和冗余度(redundancy)的组合。所谓冗余度,是由于一副图像的各像素之间存在着很大的相关性,可利用一些编码的方法删去它们,从而达到减少冗余压缩数据的目的。为了去掉数据中的冗余,常常要考虑信号源的统计特性,或建立信号源的统计模型。图像的冗余包括以下几种:(1) 空间冗余:像素点之间的相关性。(2) 时间冗余:活动图像的两个连续帧之间的冗余。(3) 信息熵冗余:单位信息量大于其熵。(4) 结构冗余:图像的区域上存在非常强的纹理结构。(5) 知识冗余:有固定的结构,如人的头像。(6) 视觉冗余:某些图像的失真是人眼不易觉察的。对数字图像进行压缩通常利用两个基本原理:(1) 数字图像的相关性。在图像的同一行相邻像素之间、活动图像的相邻帧的对应像素之间往往存在很强的相关性,去除或减少这些相关性,也就去除或减少图像信息中的冗余度,即实现了对数字图像的压缩。(2) 人的视觉心理特征。人的视觉对于边缘急剧变化不敏感(视觉掩盖效应),对颜色分辨力弱,利用这些特征可以在相应部分适当降低编码精度,而使人从视觉上并不感觉到图像质量的下降,从而达到对数字图像压缩的目的。编码压缩方法有许多种,从不同的角度出发有不同的分类方法,比如从信息论角度出发可分 为两大类:(1)冗余度压缩方法,也称无损压缩,信息保持编码或熵编码。具体讲就是解码图像和压缩 编码前的图像严格相同,没有失真,从数学上讲是一种可逆运算。(2)信息量压缩方法,也称有损压缩,失真度编码或熵压缩编码。也就是讲解码图像和原始图像是有差别的,允许有一定的失真。应用在多媒体中的图像压缩编码方法,从压缩编码算法原理上可以分类为:(1)无损压缩编码种类 •哈夫曼编码 •算术编码 •行程编码 •Lempel zev编码(2)有损压缩编码种类 •预测编码:DPCM,运动补偿 •频率域方法:正文变换编码(如DCT),子带编码 •空间域方法:统计分块编码 •模型方法:分形编码,模型基编码 •基于重要性:滤波,子采样,比特分配,矢量量化(3)混合编码 •JBIG,H261,JPEG,MPEG等技术标准衡量一个压缩编码方法优劣的重要指标(1)压缩比要高,有几倍、几十倍,也有几百乃至几千倍;(2)压缩与解压缩要快,算法要简单,硬件实现容易;(3)解压缩的图像质量要好。四、JPEG图像压缩算法1..JPEG压缩过程JPEG压缩分四个步骤实现:1.颜色模式转换及采样;变换;3.量化;4.编码。2.1.颜色模式转换及采样RGB色彩系统是我们最常用的表示颜色的方式。JPEG采用的是YCbCr色彩系统。想要用JPEG基本压缩法处理全彩色图像,得先把RGB颜色模式图像数据,转换为YCbCr颜色模式的数据。Y代表亮度,Cb和Cr则代表色度、饱和度。通过下列计算公式可完成数据转换。Y=+128人类的眼晴对低频的数据比对高频的数据具有更高的敏感度,事实上,人类的眼睛对亮度的改变也比对色彩的改变要敏感得多,也就是说Y成份的数据是比较重要的。既然Cb成份和Cr成份的数据比较相对不重要,就可以只取部分数据来处理。以增加压缩的比例。JPEG通常有两种采样方式:YUV411和YUV422,它们所代表的意义是Y、Cb和Cr三个成份的资料取样比例。2.变换DCT变换的全称是离散余弦变换(Discrete Cosine Transform),是指将一组光强数据转换成频率数据,以便得知强度变化的情形。若对高频的数据做些修饰,再转回原来形式的数据时,显然与原始数据有些差异,但是人类的眼睛却是不容易辨认出来。压缩时,将原始图像数据分成8*8数据单元矩阵,例如亮度值的第一个矩阵内容如下:JPEG将整个亮度矩阵与色度Cb矩阵,饱和度Cr矩阵,视为一个基本单元称作MCU。每个MCU所包含的矩阵数量不得超过10个。例如,行和列采样的比例皆为4:2:2,则每个MCU将包含四个亮度矩阵,一个色度矩阵及一个饱和度矩阵。当图像数据分成一个8*8矩阵后,还必须将每个数值减去128,然后一一代入DCT变换公式中,即可达到DCT变换的目的。图像数据值必须减去128,是因为DCT转换公式所接受的数字范围是在-128到+127之间。DCT变换公式:x,y代表图像数据矩阵内某个数值的坐标位置f(x,y)代表图像数据矩阵内的数个数值u,v代表DCT变换后矩阵内某个数值的坐标位置F(u,v)代表DCT变换后矩阵内的某个数值u=0 且 v=0 c(u)c(v)=1/>0 或 v>0 c(u)c(v)=1经过DCT变换后的矩阵数据自然数为频率系数,这些系数以F(0,0)的值最大,称为DC,其余的63个频率系数则多半是一些接近于0的正负浮点数,一概称之为AC。3.3、量化图像数据转换为频率系数后,还得接受一项量化程序,才能进入编码阶段。量化阶段需要两个8*8矩阵数据,一个是专门处理亮度的频率系数,另一个则是针对色度的频率系数,将频率系数除以量化矩阵的值,取得与商数最近的整数,即完成量化。当频率系数经过量化后,将频率系数由浮点数转变为整数,这才便于执行最后的编码。不过,经过量化阶段后,所有数据只保留整数近似值,也就再度损失了一些数据内容,JPEG提供的量化表如下:2.4、编码Huffman编码无专利权问题,成为JPEG最常用的编码方式,Huffman编码通常是以完整的MCU来进行的。编码时,每个矩阵数据的DC值与63个AC值,将分别使用不同的Huffman编码表,而亮度与色度也需要不同的Huffman编码表,所以一共需要四个编码表,才能顺利地完成JPEG编码工作。DC编码DC是彩采用差值脉冲编码调制的差值编码法,也就是在同一个图像分量中取得每个DC值与前一个DC值的差值来编码。DC采用差值脉冲编码的主要原因是由于在连续色调的图像中,其差值多半比原值小,对差值进行编码所需的位数,会比对原值进行编码所需的位数少许多。例如差值为5,它的二进制表示值为101,如果差值为-5,则先改为正整数5,再将其二进制转换成1的补码即可。所谓1的补码,就是将每个Bit若值为0,便改成1;Bit为1,则变成0。差值5应保留的位数为3,下表即列出差值所应保留的Bit数与差值内容的对照。在差值前端另外加入一些差值的霍夫曼码值,例如亮度差值为5(101)的位数为3,则霍夫曼码值应该是100,两者连接在一起即为100101。下列两份表格分别是亮度和色度DC差值的编码表。根据这两份表格内容,即可为DC差值加上霍夫曼码值,完成DC的编码工作。AC编码AC编码方式与DC略有不同,在AC编码之前,首先得将63个AC值按Zig-zag排序,即按照下图箭头所指示的顺序串联起来。63个AC值排列好的,将AC系数转换成中间符号,中间符号表示为RRRR/SSSS,RRRR是指第非零的AC之前,其值为0的AC个数,SSSS是指AC值所需的位数,AC系数的范围与SSSS的对应关系与DC差值Bits数与差值内容对照表相似。如果连续为0的AC个数大于15,则用15/0来表示连续的16个0,15/0称为ZRL(Zero Rum Length),而(0/0)称为EOB(Enel of Block)用来表示其后所剩余的AC系数皆等于0,以中间符号值作为索引值,从相应的AC编码表中找出适当的霍夫曼码值,再与AC值相连即可。例如某一组亮度的中间符为5/3,AC值为4,首先以5/3为索引值,从亮度AC的Huffman编码表中找到1111111110011110霍夫曼码值,于是加上原来100(4)即是用来取[5,4]的Huffman编码1111111110011110100,[5,4]表示AC值为4的前面有5个零。由于亮度AC,色度AC霍夫曼编码表比较长,在此省略去,有兴趣者可参阅相关书籍。实现上述四个步骤,即完成一幅图像的JPEG压缩。

赫夫曼编码译码毕业论文

#include using namespace std;#define Maxbit 30#define Maxleaf 30#define Maxnode 2*30-1#define Maxvalue 100struct HNode{ int weight; int parent; int lchild; int rchild; char zifu;};HNode Hfnode[Maxbit];//定义一个全局的数组struct HCode{ char bit[Maxbit]; int start;};HCode Hfcode[Maxleaf];//定义一个全局的数组int n; //定义一个全局变量void Init_Hfmtree();void Create_Hfmtree();void Code_hfmtree();void Code_hfmtree_trans();void Init_Hfmtree(){ cout<<"请输入要输入字符的个数:"; cin>>n; cout<<"请输入各个字符代码:"; for(int i=0;i>Hfnode[i].zifu; for(i=0;i<2*n-1;i++) { Hfnode[i].weight=0; Hfnode[i].lchild=-1; Hfnode[i].rchild=-1; Hfnode[i].parent=-1; } for(i=0;i>Hfnode[i].weight; }}void Create_Hfmtree(){ int m1,m2,x1,x2,i,j; for (i=0;i>m; while(m!='2') { a[f]=m; f++; cin>>m; } for(i=0;i

八成是数据结构的大作业吧....

我把网上的程序修改了一下,并整合了,你看看#include<>#include<>#include<>#define M 50#define MAX 100000;typedef struct{ int weight;//结点权值 int parent,lchild,rchild;}HTNODE,*HUFFMANTREE;typedef char** HUFFMANCODE;//动态分配数组存储哈夫曼编码表typedef struct{ int key; /*关键字*/}RecordNode; /*排序节点的类型*/typedef struct{ RecordNode *record; int n; /*排序对象的大小*/}SortObject; //待排序序列 HUFFMANTREE huffmantree(int n,int weight[])//构建哈夫曼树{ int m1,m2,k; int i,j,x1,x2; HUFFMANTREE ht; ht=(HUFFMANTREE)malloc((2*n)*sizeof(HTNODE)); for(i=1;i<(2*n);i++)//初始化哈夫曼树中各结点的数据,没初始值的赋值为0 { ht[i].parent=ht[i].lchild=ht[i].rchild=0; if(i<=n) ht[i].weight=weight[i]; else ht[i].weight=0; } for(i=1;i0;j--) str[j]=str[j-1]; str[n+1]='\0'; for(k=0;k0;k--) weight[k]=weight[k-1]; weight[0]=0; ht=huffmantree(n,weight); huffmancoding(n,hc,ht,str);}void InsertSort(SortObject *p,unsigned long *compare,unsigned long *exchange){ int i,j,k; RecordNode temp; SortObject *pvector; fflush(stdin); if((pvector=(SortObject *)malloc(sizeof(SortObject)))==NULL) { printf("OverFollow!"); getchar(); exit(1); } k=pvector->n; pvector->record=(RecordNode *)malloc(sizeof(RecordNode)*k); for(i=0;in;i++)/* 复制数组*/ pvector->record[i]=p->record[i]; pvector->n=p->n; *compare=0; *exchange=0; for(i=1;in;i++) { temp=pvector->record[i]; (*exchange)++; j=i-1; while((record[j].key)&&(j>=0)) { (*compare)++; (*exchange)++; pvector->record[j+1]=pvector->record[j]; j--; } if(j!=(i-1)) { pvector->record[j+1]=temp; (*exchange)++; } } free(pvector);}void SelectSort(SortObject *p,unsigned long *compare,unsigned long *exchange){ int i,j,k; RecordNode temp; SortObject *pvector; if((pvector=(SortObject *)malloc(sizeof(SortObject)))==NULL) { printf("OverFollow!"); getchar(); exit(1); } k=pvector->n; pvector->record=(RecordNode *)malloc(sizeof(RecordNode)*k); for(i=0;in;i++)/*复制数组*/ pvector->record[i]=p->record[i]; pvector->n=p->n; *compare=0; *exchange=0; for(i=0;in-1;i++) { k=i; for(j=i+1;jn;j++) { (*compare)++; if(pvector->record[j].keyrecord[k].key) k=j; } if(k!=i) { temp=pvector->record[i]; pvector->record[i]=pvector->record[k]; pvector->record[k]=temp; ( *exchange)+=3; } } free(pvector);}void BubbleSort(SortObject *p,unsigned long *compare,unsigned long *exchange){ int i,j,noswap,k; RecordNode temp; SortObject *pvector; if((pvector=(SortObject *)malloc(sizeof(SortObject)))==NULL) { printf("OverFollow!"); getchar(); exit(1); } k=pvector->n; pvector->record=(RecordNode *)malloc(sizeof(RecordNode)*k); for(i=0;in;i++)/* 复制数组*/ pvector->record[i]=p->record[i]; pvector->n=p->n; *compare=0; *exchange=0; for(i=0;in-1;i++) { noswap=1; for(j=0;jn-i-1;j++) { (*compare)++; if(pvector->record[j+1].keyrecord[j].key) { temp=pvector->record[j]; pvector->record[j]=pvector->record[j+1]; pvector->record[j+1]=temp; (*exchange)+=3; noswap=0; } } if(noswap) break; } free(pvector);}void ShellSort(SortObject *p,int d,unsigned long *compare,unsigned long *exchange){ int i,j,increment,k; RecordNode temp; SortObject *pvector; if((pvector=(SortObject*)malloc(sizeof(SortObject)))==NULL) { printf("OverFollow!"); getchar(); exit(1); } k=pvector->n; pvector->record=(RecordNode *)malloc(sizeof(RecordNode)*k); for(i=0;in;i++)/* 复制数组*/ pvector->record[i]=p->record[i]; pvector->n=p->n; *compare=0; *exchange=0; for(increment=d;increment>0;increment/=2) { for(i=increment;in;i++) { temp=pvector->record[i]; (*exchange)++; j=i-increment; while(j>=0&&record[j].key) { (*compare)++; pvector->record[j+increment]=pvector->record[j]; (*exchange)++; j-=increment; } pvector->record[j+increment]=temp; (*exchange)++; } } free(pvector);}void QuickSort(SortObject *pvector,int left,int right,unsigned long *compare,unsigned long *exchange){ int i,j; RecordNode temp; if(left>=right) return; i=left; j=right; temp=pvector->record[i]; (*exchange)++; while(i!=j) { while((pvector->record[j].key>=)&&(j>i)) { (*compare)++; j--; } if(irecord[i++]=pvector->record[j]; (*exchange)++; } while((pvector->record[i].key<=)&&(j>i)) { (*compare)++; i++; } if(irecord[j--]=pvector->record[i]; (*exchange)++; } } pvector->record[i]=temp; (*exchange)++; QuickSort(pvector,left,i-1,compare,exchange); QuickSort(pvector,i+1,right,compare,exchange);}void SortMethod(void){ int i,j,k,l; unsigned long num[5][10]={0}; unsigned long sum[10]={0}; SortObject *pvector; fflush(stdin); printf("请输入待排序的随机数个数:\n"); scanf("%d",&k); pvector=(SortObject *)malloc(sizeof(SortObject)); for(j=0;j<5;j++) { pvector->record=(RecordNode *)malloc(sizeof(RecordNode)*k); for(i=0;irecord[i].key=rand(); pvector->n=k; InsertSort(pvector,&num[j][0],&num[j][1]); SelectSort(pvector,&num[j][2],&num[j][3]); BubbleSort(pvector,&num[j][4],&num[j][5]); ShellSort(pvector,4,&num[j][6],&num[j][7]); QuickSort(pvector,0,k-1,&num[j][8],&num[j][9]); } printf("\n排序比较如下"); for(j=0;j<5;j++) { printf("\n\n对%d个数进行排序,结果为:\n",k); printf("1.插入排序:比较-->%-7ld次 移动-->%-7ld次\n",num[j][0],num[j][1]); printf("2.选择排序:比较-->%-7ld次 移动-->%-7ld次\n",num[j][2],num[j][3]); printf("3.冒泡排序:比较-->%-7ld次 移动-->%-7ld次\n",num[j][4],num[j][5]); printf("4.希尔排序:比较-->%-7ld次 移动-->%-7ld次\n",num[j][6],num[j][7]); printf("5.快速排序:比较-->%-7ld次 移动-->%-7ld次\n",num[j][8],num[j][9]); if(j!=5) printf("按回车继续\n"); getchar(); } for(j=0;j<5;j++) { sum[0]=sum[0]+num[j][0]; sum[1]=sum[1]+num[j][1]; sum[2]=sum[2]+num[j][2]; sum[3]=sum[3]+num[j][3]; sum[4]=sum[4]+num[j][4]; sum[5]=sum[5]+num[j][5]; sum[6]=sum[6]+num[j][6]; sum[7]=sum[7]+num[j][7]; sum[8]=sum[8]+num[j][8]; sum[9]=sum[9]+num[j][9]; } printf("\n\n对%d个随机数进行5次排序,平均比较次数和平均移动次数为:\n",k); printf("1.插入排序:平均比较-->%-7ld次 平均移动-->%-7ld次\n",sum[0]/5,sum[1]/5); printf("2.选择排序:平均比较-->%-7ld次 平均移动-->%-7ld次\n",sum[2]/5,sum[3]/5); printf("3.冒泡排序:平均比较-->%-7ld次 平均移动-->%-7ld次\n",sum[4]/5,sum[5]/5); printf("4.希尔排序:平均比较-->%-7ld次 平均移动-->%-7ld次\n",sum[6]/5,sum[7]/5); printf("5.快速排序:平均比较-->%-7ld次 平均移动-->%-7ld次\n",sum[8]/5,sum[9]/5); free(pvector);}void sort(){ int i; while(1) { SortMethod(); printf("\n是否继续?\n1.继续\n2.返回菜单\n"); scanf("%d",&i); if(i==2)break; fflush(stdin); getchar(); }}void huff(){ int i; while(1) { huffman(); printf("\n是否继续?\n1.继续\n2.返回菜单\n"); scanf("%d",&i); if(i==2)break; fflush(stdin); getchar(); }}main(){ int i,j,k; while(1) { printf("请选择要运行的功能:\n"); printf("1.哈夫曼编码译码器\n"); printf("2.内部排序性能分析\n"); printf("3.退出该程序\n\n"); printf("你的选择为:"); scanf("%d",&i); switch(i) { case 1:huff();break; case 2:sort();break; case 3:exit(0); default:break; } fflush(stdin); getchar(); system("cls"); }}

class HaffmanNode //哈夫曼树的结点类{ int weight; //权值 int parent,left,right; //父母结点和左右孩子下标 public HaffmanNode(int weight) { = weight; ; ; ; } public HaffmanNode() { this(0); } public String toString() { return ", "+", "+", "+; } return code; } public static void main(String[] args) { int[] weight={5,29,7,8,14,23,3,11}; //指定权值集合 HaffmanTree htree = new HaffmanTree(weight); ("哈夫曼树的结点数组:\n"+()); String[] code = (); ("哈夫曼编码:"); for (int i=0; i<; i++) (code[i]); }}希望能解决您的问题。

信息论与编码相关的论文题目

1.电子与通信工程  无线网络  光通信  多媒体通信

2.网络  软件技术在通信工程  微波工程  信息通信工程

3.人工智能  生物信息学  软件工程  信号处理

4.嵌入式系统  编码  音频/语音信号处理  图像/视频处理和编码

5.医学成像和图像分析  应用电子生物医学电子  工业电子和自动化  机器人

6.电子设备在通信  电子工程  神经网络的应用  工业自动化与控制

7.设备建模与仿真  VLSI设计与测试  微加工、微传感器和MEMS 光电子和光子技术

8.工艺技术  纳米技术  信息技术  通信和车辆技术

9.电力系统和电子  控制系统  生物医学工程  生物医学成像

10.图像处理和可视化  生物医学信号处理和分析  医疗数据存储和压缩技术  生物医学建模

11.生物信息学  计算机和信息科学嵌入系统  信息工程和应用  电气工程与应用

12.控制工程和应用  通信技术与应用  服务科学  工程和应用

13.生物信息学和应用  能源和交通方面的智能方法

Ø 出版社:SPIE(The International Society for Optics and Photonics)光学学会

Ø 检索核心:EI SCI

Ø 发表方法:在线投稿或EASYCHAIR

Ø 缩写:ICEIE2017

Ø 周期:投稿后在2-3周内会有审稿结果,在会议结束后3-6个月完成论文的出版和检索

Ø 合作单位:山东大学(威海)

Ø 时间:2017年09月16-17日

Ø 发表流程

u 投稿→审稿→审核结果通过→录用通知→论文注册→注册成功→参加会议→会议完成→论文出版→论文检索→完成

参考内容来源:《ICEIE2017电子与信息工程》

摘要:香农于1948年10月发表于《贝尔系统技术学报》上的论文《A Mathematical Theory of Communication》(通信的数学理论)作为现代信息论研究的开端。1984年贝尔研究所的香农在题为《通讯的数学理论》的论文中系统地提出了关于信息的论述,创立了信息论。信息论主要研究信息的本质和度量方法。它是系统论和控制论的理论基础,也是信息科学的理论基础。关键字:信息概念,熵,美国数学家香农参考书目:1。《信息论》 南丰公益书院; 2.《安全科学技术百科全书》(中国劳动社会保障出版社,2003年6月出版);3.《安全工程大辞典》(化学工业出版社,1995年11月出版)(安全文化网);4.部分资料摘取自互联网。(一)信息的内涵1948—1949年,美国数学家香农()发表了《通信的数学理论》和《在噪声中的通信》两篇论文,提出了度量信息的数学公式,标志着信息论这门学科的诞生。信息论主要研究信息的本质和度量方法。它是系统论和控制论的理论基础,也是信息科学的理论基础。它是关于事物运动状态的规律的表征,其特点是: (1)信息源于物质运动,又不是物质和运动;(2)信息具有知识的秉性,是任何一个系统的组织程度和有序程度的标志;(3)只有变化着的事物和运动着的客体才会有信息,孤立静止的客体或永不改变的事物不会有信息;(4)信息不遵守物质和能量的“守恒与转化定律”, 同样的信息,大家可以共同使用,信息不会减少,相同的信息,能够用不同物质载体进行传播,同一种物质,也可以携带不同的信息,信息不会变化。信息论是一门研究信息传输和信息处理系统中一般规律的学科。香农在他的《通讯的数学理论》中明确提出:“通讯的基本问题是在通讯的一端精确地或近似地复现另一端所挑选的消息。”信息是“人们在选择一条消息时选择的自由度的量度”。消息所带的信息可以解释为负熵,即概率的负对数。威沃尔指出,‘信息’一词在此理论中只在一种专门的意义上加以使用,我们一定不要把它和其通常用法混淆起来”。也就是说,这里的信息不是我们通常使用的概念(各种消息、情报和资料的总称),而是一个变量,它表示信息量的大小。而信息量则是某种不确定性趋向确定的一种量度,消息的可能性越大,信息就越少。如果一个系统是有序的,它不具有很高的混乱度或选择度,其信息(或熵)是低的。信息论是一门用数理统计方法来研究信息的度量、传递和变换规律的科学。它主要是研究通讯和控制系统中普遍存在着信息传递的共同规律以及研究最佳解决信息的获限、度量、变换、储存和传递等问题的基础理论。 信息论的研究范围极为广阔。一般把信息论分成三种不同类型: (1)狭义信息论是一门应用数理统计方法来研究信息处理和信息传递的科学。它研究存在于通讯和控制系统中普遍存在着的信息传递的共同规律,以及如何提高各信息传输系统的有效性和可靠性的一门通讯理论。 (2)一般信息论主要是研究通讯问题,但还包括噪声理论、信号滤波与预测、调制与信息处理等问题。(3)广义信息论不仅包括狭义信息论和一般信息论的问题,而且还包括所有与信息有关的领域,如心理学、语言学、神经心理学、语义学等。信息有以下性质:客观性、广泛性、完整性、专一性。首先,信息是客观存在的,它不是由意志所决定的,但它与人类思想有着必然联系。同时,信息又是广泛存在的,四维空间被大量信息子所充斥。信息的一个重要性质是完整性,每个信息子不能决定任何事件,须有两个或两个以上的信息子规则排布为完整的信息,其释放的能量才足以使确定事件发生。信息还有专一性,每个信息决定一个确定事件,但相似事件的信息也有相似之处,其原因的解释需要信息子种类与排布密码理论的进一步发现。信息论是一门具有高度概括性、综合性,应用广泛的边缘学科。信息论是信息科学的理论基础,它是一门应用数理统计方法研究信息传输和信息处理的科学,是利用数学方法来研究信息的计量、传递、交换和储存的科学。随着科学技术的发展,信息论研究范围远远超出了通信及类似的学科,已延伸到生物学、生理学、人类学、物理学、化学、电子学、语言学、经济学和管理学等学科。(二)信息论发展历史香农被称为是“信息论之父”。人们通常将香农于1948年10月发表于《贝尔系统技术学报》上的论文《A Mathematical Theory of Communication》(通信的数学理论)作为现代信息论研究的开端。1984年贝尔研究所的香农在题为《通讯的数学理论》的论文中系统地提出了关于信息的论述,创立了信息论。维纳提出的关于度量信息量的数学公式开辟了信息论的广泛应用前景。1951年美国无线电工程学会承认信息论这门学科,此后得到迅速发展。20世纪50年代是信息论向各门学科冲击的时期,60年代信息论不是重大的创新时期,而是一个消化、理解的时期,是在已有的基础上进行重大建设的时期。研究重点是信息和信源编码问题。到70年代,由于数字计算机的广泛应用,通讯系统的能力也有很大提高,如何更有效地利用和处理信息,成为日益迫切的问题。人们越来越认识到信息的重要性,认识到信息可以作为与材料和能源一样的资源而加以充分利用和共享。信息的概念和方法已广泛渗透到各个科学领域,它迫切要求突破香农信息论的狭隘范围,以便使它能成为人类各种活动中所碰到的信息问题的基础理论,从而推动其他许多新兴学科进一步发展。目前,人们已把早先建立的有关信息的规律与理论广泛应用于物理学、化学、生物学等学科中去。一门研究信息的产生、获取、变换、传输、存储、处理、显示、识别和利用的信息科学正在形成。香农把“熵”这个概念引入信息的度量。1965年法国物理学家克劳修斯首次提出这一概念,后来这一概念由19世纪奥地利物理学家L.玻尔茨曼正式提出。信息论和控制论又赋予了“熵”更新更宽的含义。 熵是一个系统的不确定性或无序的程度,系统的紊乱程度越高,熵就越大;反之,系统越有序,熵就越小。控制论创始人维纳曾说:“一个系统的熵就是它的无组织程度的度量。”熵这个概念与信息联系在一起后,获得这样的思路:信息的获得永远意味着熵的减少,要使紊乱的系统(熵大的系统)有序化(减少熵)就需要有信息,当一个系统获得信息后,无序状态减少或消除(熵减少);而如果信息丢失了,则系统的紊乱程度增加。一个系统有序程度越高,则熵就越小,所含信息量就越大,反之无序程度越高,则熵越大,信息量就越小,信息与熵是互补的,信息就是负熵,两者互为负值。 信息量=系统状态原有的熵-系统状态确定后的熵 电讯系统不存在功能性因素,即人的主观能动因素,因此不能照搬,但对计算社会信息的量,仍有参考价值。如研究新闻的信息量时就非常有意义。一则新闻讯息中所含信息量的大小是不确定程度的大小决定的,能够最大限度地消除人们对新闻事件认识上的不确定性的讯息,信息量就大,而不能减少受众对新闻事件的认识的不确定的,信息量就小,这与讯息的长度、字数和篇幅无关,不是版面大小、字数多寡、“本报讯”多少就能说明信息的大小的。信息科学是人们在对信息的认识与利用不断扩大的过程中,在信息论、电子学、计算机科学、人工智能、系统工程学、自动化技术等多学科基础上发展起来的一门边缘性新学科。它的任务主要是研究信息的性质,研究机器、生物和人类关于各种信息的获取、变换、传输、处理、利用和控制的一般规律,设计和研制各种信息机器和控制设备,实现操作自动化,以便尽可能地把人脑从自然力的束缚下解放出来,提高人类认识世界和改造世界的能力。信息科学在安全问题的研究中也有着重要应用。1949年,香农和韦弗提出了有关传播的数学模式。 信源—>消息—>编码—>信号—>信道—>信号+噪声—>译码—>消息—>信宿 噪声—>信道 对上图的概念解释如下: 信源:信源就是信息的来源,可以是人、机器、自然界的物体等等。信源发出信息的时候,一般以某种讯息的方式表现出来,可以是符号,如文字、语言等,也可以是信号,如图像、声响等等。 编码:编码就是把信息变换成讯息的过程,这是按一定的符号、信号规则进行的。按规则将信息的意义用符码编排起来的过程就是编码过程,这种编码通常被认为是编码的第一部分。编码的第二部分则是针对传播的信道,把编制好的符码又变换成适于信道中传输的信号序列,以便于在信道中传递,如声音信号、电信号、光信号等等。如信息源产生的原始讯息是一篇文章,用电报传递的时候,就要经过编码,转换成电报密码的信号,然后才能经过信道传播。 信道:就是信息传递的通道,是将信号进行传输、存储和处理的媒介。信道的关键问题是它的容量大小,要求以最大的速率传送最大的信息量。 噪音:是指信息传递中的干扰,将对信息的发送与接受产生影响,使两者的信息意义发生改变。 译码:是对信息进行与编码过程相反的变换过程,就是把信号转换为讯息,如文字、语言等,这是第一步。第二步译码则是指将讯息还原为信息意义的过程。 信宿:是信息的接受者,可以是人也可以是机器,如收音机、电视机等。作为方法论,香农的这一信息系统模式可以被适用于许多系统,如通信系统、管理系统、社会系统等。传播学学者对这一模式进行改造之后,成为表述人类信息传播的基本模式之一,成为传播学领域最基本的研究范式,而信源、编码、译码、信宿等概念也成为传播学研究的基本概念。 香农的信息论为传播学领域提供了基本的范式,它使以前模糊的信息概念变得在数学上可以操纵。香农的信息论与维纳的控制论是相互影响的,维纳也是最早认识信息论价值的学者,并与香农共同发明了有关信息的熵度量法则。

摘 要:随着技术革新的不断发展,产业融合正日益成为产业经济发展中的重要现象。产业融合产生的前提是技术融合、业务融合、市场融合以及产业管制环境的变化。按照技术发展的方向,产业融合有产业渗透、产业交叉和产业重组三种形式。由于信息技术的渗透性、带动性、倍增性、网络性和系统性等特征,信息产业的产业融合呈现加速发展的趋势。信息产业的融合有助于提高信息产业的生产效率,改善信息产业的管制方式,加速传统产业的升级改造以及促进信息技术的扩散和渗透。因此,深入研究产业融合理论以及产业融合对于我国信息产业发展的影响,对推动我国的信息化进程,促进产业结构的优化升级具有重要的理论和现实意义。

摘 要:随着技术革新的不断发展,产业融合正日益成为产业经济发展中的重要现象。产业融合产生的前提是技术融合、业务融合、市场融合以及产业管制环境的变化。按照技术发展的方向,产业融合有产业渗透、产业交叉和产业重组三种形式。由于信息技术的渗透性、带动性、倍增性、网络性和系统性等特征,信息产业的产业融合呈现加速发展的趋势。

相关百科