毕业设计(论文):基于VC++的图像压缩编码技术的研究及算法实现.docx

上传人:文****钱 文档编号:39991 上传时间:2018-05-07 格式:DOCX 页数:57 大小:604.98KB
下载 相关 举报
毕业设计(论文):基于VC++的图像压缩编码技术的研究及算法实现.docx_第1页
第1页 / 共57页
毕业设计(论文):基于VC++的图像压缩编码技术的研究及算法实现.docx_第2页
第2页 / 共57页
毕业设计(论文):基于VC++的图像压缩编码技术的研究及算法实现.docx_第3页
第3页 / 共57页
毕业设计(论文):基于VC++的图像压缩编码技术的研究及算法实现.docx_第4页
第4页 / 共57页
毕业设计(论文):基于VC++的图像压缩编码技术的研究及算法实现.docx_第5页
第5页 / 共57页
点击查看更多>>
资源描述

1、I基于VC的图像压缩编码技术的研究及算法实现摘要长期以来,人类获取到的信息其80来源于图像媒体,15来源于语音。所以,人们在自然界感受到的最主要的信息是视觉信息,这说明图像是人们生活中信息交流最为重要的载体,也是蕴含信息量最大的媒体。由于未经处理的图像信息量非常大,大力研究和开发图像压缩编码技术就非常重要。图像之所以可以被压缩,其根本原因就在于图像数据具有较多的信息冗余。各个像素点之间不论在行的方向还是在列的方向上都具有很大的相关性,因而整个图像数据就具有相当大的冗余度,也就有相当的压缩潜力。再者,图像品质的评价取决于人眼,而人眼由于其视觉特性对图像的细微差别还是很难分辨的。因此图像数据还具有

2、一定的视觉冗余,也就是说,在对图像数据进行压缩时,可以允许一定程度的失真。本论文主要是通过哈弗曼编码、香农费诺编码和行程编码三种方法对同一幅图像进行压缩,对所得到的图像压缩比进行比较,最后得出每种压缩方法的优缺点。本论文首先介绍了图像压缩编码技术的概念、分类、特点、发展方向及应用等基础知识,介绍了开发工具VC的特点,较详细的说明了对位图图像进行处理的基础知识,然后分别对三种编码方法的原理和算法进行了分析,最后通过整体程序的运行结果得出结论。关键词图像压缩;哈夫曼编码;香农费诺编码;行程编码IIABSTRACTFORLONGTERM,80INFORMATIONTHEHUMANITYGAINSOR

3、IGINATEDFROMIMAGEMEDIA,AND15FROMSOUNDMEDIATHEREFORE,MAININFORMATIONTHROUGHWHICHPEOPLEFEELTHENATUREISVISUALINFORMATIONTHISILLUSTRATESTHATIMAGEISTHEMOSTIMPORTANTCOMMUNICATIONCARRIERINLIVESANDALSOISTHEBIGGESTINFORMATIONMEDIABECAUSEIMAGEWITHOUTPROCESSINGOBTAINSAGREATDEALOFINFORMATION,ITISEXTREMELYIMPORT

4、ANTTOSTUDYANDDEVELOPIMAGECOMPRESSINGANDCODINGTECHNOLOGIESVIGOROUSLYTHEBASICREASONTHATIMAGECANBECOMPRESSEDISTHATIMAGEDATAHAVEINFORMATIONREDUNDANCYEACHPIXELPOINTHASABIGRELEVANCEWITHOTHERS,THUSENTIREIMAGEDATAHAVEAQUITEGREATREDUNDANCEANDALSOHAVEAGREATCOMPRESSIONPOTENTIALFURTHERMORE,EVALUATIONOFANIMAGEQU

5、ALITYISDECIDEDBYTHEHUMANEYESHOWEVER,THEHUMANEYESHAVETHEIRVISUALCHARACTERISTICS,SOITISVERYDIFFICULTTODISTINGUISHTHEIMAGEFINEORNOTTHEREFORETHEIMAGEALSOHASCERTAINVISUALREDUNDANCYINOTHERWORDS,SOMEDISTORTIONMAYBEACCEPTEDINCOMPRESSINGANIMAGEDATAMYGRADUATIONPROJECTISMAINLYABOUTHUFFMANCODING,SHANNONFANNONCO

6、DING,ANDRUNLENGTHCODINGIAMAPPLYINGTHESETHREEMETHODSTOASAMEIMAGE,THENGIVINGADVANTAGESANDDISADVANTAGESFOREACHCOMPRESSIONMETHODBYCOMPARINGCOMPRESSIONRATIOTHISPAPERFIRSTINTRODUCESSOMEELEMENTARYKNOWLEDGE,SUCHASCONCEPT,CLASSIFICATION,CHARACTERISTIC,DEVELOPMENTDIRECTIONANDAPPLICATIONOFIMAGEPROCESSING,ANDIN

7、TRODUCESCHARACTERISTICOFTHEDEVELOPMENTTOOLVC,ANDSHOWSBASICKNOWLEDGEONOPERATIONSTOBITMAPIMAGEINDETAIL,ANDTHENANALYSESPRINCIPLESANDTHEALGORITHMSFORTHREEKINDSOFCODINGMETHOD,RESPECTIVELYFINALLYSOMECONCLUSIONSCANBEGOTTENTHROUGHEXPERIMENTRESULTSKEYWORDSIMAGECOMPRESSIONHUFFMANCODINGSHANNONFANNONCODINGRUNLE

8、NGTHCODINGIII目录第1章绪论111图像压缩编码技术研究目的和意义112图像压缩编码技术发展现状213论文主要研究内容314论文框架组织结构3第2章图像压缩编码技术基础及概念321图像压缩和数据冗余4211图像压缩的原理4212数据冗余的分类422图像压缩编码技术主要方法5221哈弗曼编码5222方块编码6223行程编码7224变换编码8225位平面编码823VISUALC60介绍9231VISUALC软件平台9232VC技术特性1023数字图像基本概念1024与设备无关的位图DIB1225BMP位图文件结构1226CDIB类库的建立12261设计目标12262构造CDIB类1327

9、本章小结13IV第3章图像压缩技术编码的算法研究1331哈弗曼编码13311哈弗曼编码基本原理14312哈弗曼编码步骤14313哈弗曼编码特点1532香农费诺编码16321香农费诺编码基本原理16322香农费诺编码步骤16323香农费诺编码特点1733行程编码17331行程编码基本原理17332行程编码步骤18333行程编码特点1934本章小结19第4章图像压缩技术编码方法设计1941哈弗曼编码19411哈弗曼编码算法实现20412视图类ONHUFFMANCODING函数2542香农费诺编码28421香农费诺编码算法实现28422视图类处理函数ONSHANNONCODING函数3543行程编码

10、38431行程编码算法实现38432视图类处理函数ONRLECODING4344本章小结45第5章图像压缩编码的实现4551图像压缩编码结果45511哈弗曼编码结果46V512香农费诺编码结果46513行程编码结果4752本章小结48结论49参考文献51附录错误未定义书签。攻读学位期间发表论文与研究成果清单错误未定义书签。致谢错误未定义书签。1第1章绪论11图像压缩编码技术研究目的和意义随着现代通信技术、计算机技术、网络技术和信息处理技术的发展,图像信息的处理、存储和传输在社会生活中的作用越来越大,人们对接受图像信息的要求越来越迫切,图像通信将是通信事业发展中面临的最大挑战,也是未来通信领域的

11、市场热点。如何将信息以更加简洁的方式表达,如何更加准确、快速的传输信息,是信息高速发展的时代摆在人们面前的热点问题。图像通常来源于自然景物,其原始的形态是连续变化的模拟量。模拟信号不易于存储和传输,而且在存储和传输的过程中易引入噪声,导致失真,所以一般将模拟信号进行采样和量化,进而以数字化的形式进行存储和传输。当图像以数字形式进行处理和传输时,就可以与计算机技术相结合,具有质量好、成本低、小型化和易实现等优点,因此,将图像进行数字化传输已成为当前图像通信领域的主要技术。然而图像经过采样和量化转换成数字信号后,其数据量的巨大成为摆在眼前的非常棘手的问题。尽管随着科学技术的发展,海量存储技术以及数

12、字通信系统的性能发展迅猛,但高清晰度数字图像数据量对数据存储的能力和数据传输带宽的需求仍然超出了现有技术的能力所及。为了使通信成为可能并尽可能地降低通信费用,对图像信号进行压缩编码是必需的。人们通过对图像数据进行大量统计和视觉感受的研究表明,图像的相邻像素之间、相邻行之间或者相邻帧之间都存在着很强的相关性,即图像信号存在着空间冗余、时间冗余、结构冗余、视觉冗余和知识冗余等冗余度,利用某种编码方法在一定程度上消除这些相关性或冗余,就可以实现图像数据的压缩编码。我们每天接收的外部信息中,大部分内容是通过听觉和视觉系统接收的。据分析,在人类的感官所接收的外部信息中,通过耳朵接收的听觉信息约占总信息量

13、的20左右,而通过人眼的视觉接收的信息则高达60以上。由于图像信息具有信息量大、直观性强的特点,而且特别适合人们在信息交流中所需要的直接、亲切等生理和心理的要求特点,图像信息在通信中的地位显得尤为重要。简单地说,如果没有图像数据压缩编码技术,在720576的分辨率下,一张C卜RMO光盘仅能存储三十多秒未经压缩的视频节目;如果没有图像数据压缩编码技术,2从INTERNET上下载一部电影也许要花半年的时间。这样巨大的数据量,成为了存储、传输、通讯的瓶颈。因此,研究高效的图像数据压缩编码方法,即怎样处理、组织图像数据,在应用领域中的作用将是至关重要的。总之,大数据量的图像信息会给存储器存储容量、通信

14、干线信道宽带以及计算处理速度带来巨大的压力。单纯靠增加存储容量,和提高信道带宽以及计算机的处理速度等方法解决这个问题是不现实的。因此,在图像数据的传输和存储中,压缩编码势在必行。12图像压缩编码技术发展现状自20世纪80年代以来,无论是从社会的需要还是从技术的发展来看,图像编码技术已经逐步进入了很大范围的应用阶段。但由于没有统一的压缩算法和码流格式,在进行图像信息的交流中遇到了很多困难。压缩的理论基础是信息论。从信息论的角度来看,压缩就是去掉信息中的冗余,即保留不确定的信息,去掉确定的信息可推知的,也就是用一种更接近信息本质的东西信息量来代替原有冗余的描述。图像压缩技术经过几十年的发展,现在来

15、说还是比较成熟的。图像数据文件的格式有很多,如GIF、TIFF、PCX、TGA、BMP、JPG等。其中BMP图像对于原始的图像数据不压缩或压缩比例很小。JPEG由于有较高的压缩比,被广泛地应用于多媒体和网络程序中,HTML语法中选用的图像格式之一就是JPEG(另一种是GIF),目前网站上百分之八十的图像都是采用JPEG的压缩标准。美国国防部及情报部门亦采用此标准为各部门间交流图像资料的标准格式。JPEG全名为JOINTPHOTOGRAPHICEXPERTSGROUP,它是一个在国际标准组织ISO下从事静态影像压缩标准制定的委员会,它和国际电信同盟ITU下属的国际电话与电报顾问委员会(CCITT

16、)及国际电工委员会(IEC)合作,共同制定出了第一套国标静态影像压缩标准ISO/IEC109181,也被称作CCITTRECT81,就是俗称的JPEG,它被公布于1992年9月份。人类社会已经进入信息时代了,人们每天都可以通过各种手段(如PDA、网络、电视、广播等)获得大量的信息,而信息的本质,就要求交流和传播。在大量信息给人们生活增加了更多色彩的同时,随之而来的问题是如何利用有限的传输和储存资源来传输和保存更多的信息,而图像就是信息的一种,这就要用到图像压缩的方法。具体的说,图像压缩的意义有以下几个方面首先是为了减少存储容量,以利图像的保3存;其次是有利于图像传输;第三是便于特征提取,以利于

17、计算机模式识别。13论文主要研究内容本论文主要通过哈弗曼编码、香农费诺编码和行程编码三种方法对同一幅图像进行压缩,对所得到的图像压缩比进行比较,最后得出每种压缩方法的优缺点。首先介绍了图像处理的概念、分类、特点、发展方向及应用等基础知识,介绍了开发工具VC的特点,较详细的说明了对位图图像进行处理的基础知识,然后分别对三种编码方法的原理和算法进行了分析,最后通过整体程序的运行结果得出结论。14论文框架组织结构本论文框架结构如下第一章绪论首先介绍了图像压缩编码技术的研究背景及意义,分析了进行图像压缩编码的必要性,其次介绍了图像压缩编码技术目前的研究趋势,最后列出了论文的主要研究内容及本论文的框架机

18、构。第二章图像压缩编码技术基础及概念对图像压缩编码技术的概念和数字图像的基本概念做了简要介绍,对最新的图像压缩算法进行了阐述,介绍了VC软件平台的特性及结构。第三章图像压缩编码技术的算法研究本章详细介绍了哈弗曼编码、香农费诺编码和行程编码三种图像压缩编码技术的基本原理及具体算法步骤。第四章图像压缩编码技术的算法实现通过哈弗曼编码、香农费诺编码和行程编码三种方法对同一幅图像进行压缩实现,对所得到的图像压缩比进行比较,最后得出每种压缩方法的优缺点。第五章系统测试介绍了本设计系统的测试方法、测试作用和测试环境,对部分功能接口进行详细测试。最后,对全文进行了总结,并对指导教师表示感谢。第2章图像压缩编

19、码技术基础及概念421图像压缩和数据冗余信息量和数据量是两个相互联系而又不相同的两个概念。一定的信息量可以用不同的数据量来表示。对于一定的信息,通过某些方法减少表示这些信息的数据量就称为数据压缩。图像数据压缩就是一种典型的数据压缩,其目标就是减少表示图像所需的数据量。211图像压缩的原理对图像数据的压缩可通过对图像的编解码来实现。这个过程如图21所示,它实际上包含以下两个步骤(1)通过对原始图像的编码以达到减少数据量的目的(压缩过程),所获得的编码结果并不一定是图像形式,但可用于存储和传输。(2)为了实际应用的需要对编码结果进行解码,得到解码图像(恢复了图像形式)以使用。212数据冗余的分类由

20、于图像数据本身的冗余性和相关性,使得将一个大的图像数据文件转换成较小的图像数据文件成为可能,图像数据压缩就是去掉信号数据的冗余性。一般来说,图像数据中存在以下几种冗余。(1)空间冗余。这是静态图像存在的最主要的一种数据冗余。一幅图像记录了画面上可见物体的颜色,同一物体表面上各采样点的颜色之间常常存在着空间相关性,即各采样点的颜色像素值可以由相邻像素的值预测出来,从而产生了空间冗余。(2)结构冗余。在某些场景或图像中,存在着很强的纹理结构或图像分布模式,称为结构冗余。(3)视觉冗余。人类的视觉系统对于图像场的敏感性是非均匀和非线性的,即眼睛并不是对所有信息都有相同的敏感度。然而,在记录原始图像数

21、据时,往往假定视觉系统是均匀的和线性的,对视觉敏感和不敏感的部分同等对待,从而产生了比理想压缩编码更多的数据,这就是视觉冗余。(4)知识冗余。有许多图像的理解与某些知识有相当大的相关性。例如,人脸的图像有固定的结构。比如说嘴的上方有鼻子、鼻子的上方有眼睛,鼻子位于正脸图像的中线上,等等。5(5)时间冗余。是序列图像和语音数据中所经常包含的冗余。图像序列中的两幅相邻的图像,后一幅图像与前一幅图像之间有较大的相关性,这反映为时间冗余。同理,在语言中,由于人的说话时发音的音频是一连续的渐变过程,因而也存在时间冗余。(6)信息熵冗余。若图像中平均每个像素所用的比特数大于该图像的信息熵,则该图像存在冗余

22、,叫做信息熵冗余。信息熵冗余又叫编码冗余。22图像压缩编码技术主要方法从不同的角度出发有不同的分类,比如从信息论角度出发,图像数据的压缩可以分为无损压缩(无失真压缩)和有损压缩(有失真压缩)。无损压缩编码是建立在香农信息论基础之上的,以经典集合论为工具。用概率统计模型来描述信源,其压缩思想基于数据统计,因此只能去除数据冗余,属于底层压缩编码的范畴。其压缩过程是可逆的,在压缩和解压缩的过程中没有信息量的损失,从压缩后的图像能够完全恢复到原来的图像。目前技术提供的压缩率一般在210之间。无损压缩的压缩效率较低,但是可以分毫不差地重现原始数据。例如HUFFMAN编码、算术编码、行程编码、LZW编码。

23、有损压缩是把对最终应用确实不需要的原始数据丢弃的一种压缩技术。在压缩过程中可以丢弃的东西包括对人眼感知不需要的东西,比如不必要的尖锐边缘或者很高的分辨率等,其压缩过程是不可逆的。因此这样的压缩技术不应该用在关键性的应用中,比如医学图像。但是,在网络和商业电视等应用中却很有用,因为它能达到很高的压缩比。例如预测编码、正交变换编码、子带编码。221哈弗曼编码哈弗曼编码HUFFINANENCODING是常用的压缩方法之一,它是HUFFINAN在研究文本文件的压缩时提出来的。它是一种无损压缩方法,通过设计合理的代码取代数据来实现的。哈弗曼编码的基本思路是用变长的码字来使冗余量达到最小,出现频率越高的像

24、素值,其对应的编码长度越短,反之出现频率低的像素值,对应的编码长度越长。这样就可以达到用尽可能少的代码表示信源数据的目的。哈弗曼编码的实现步骤如下(1)将Q个信源符号S按照概率分布的大小,以递减次序排列,设6P1P2P3PQ(2)将两个概率最小的信源符号赋以1和0,并将这两个符号合并成一个新符号,并将概率相加合并成新符号的概率,得到一个新的信源S1,包含Q1个符号。(3)对少一个信源符号的信源凡,重新排队;重复步骤(2)直至概率和达到1为止。(4)从最后一级开始,依照编码路径由后向前返回,就得到各个信源符号所对应的码元序列,即是信源符号相应的码字。理论研究表明,哈弗曼编码是一种接近于信源嫡的编

25、码方法。但是哈弗曼编码也存在不足,一是它必须精确地统计原始文件中每个值的出现概率,如果没有这个精确统计,压缩的效果会打折扣,甚至达不到预期的压缩效果。而在实际应用中,由于很难事先得知信源数据中各符号发生的概率,对那些要求实时编码的工作带来很大困难。其二它对位的增删比较敏感。由于哈弗曼编码的所有码字是合在一起的,没有分位,所以如果丢失一位或者增加噪声都会使解码结果面目全非。222方块编码将一副二值图像分成大小为MN的子块,一共有2MN种不同排列,2MN种不同的子块图案。然后按每子块内像素的不同排列所出现的概率不同,采用哈弗曼编码为这些子块分配不同长度的码字,概率高的分配短码字,不常出现的分配长码

26、,使平均码长达到最短。块编码最先就是用在二值图像上,如传真图像,后来推广到灰度图像。由于设备简单,可用于实时处理或传输系统中,因此引起人们越来越广泛的重视。但当方块尺寸大于3X3时,符合集合将迅速增大,致使霍夫曼编码的码表过于庞大而难以实际应用,因此就提出了降低复杂度的次最佳编码方法。全白的方块最常出现,因此分配最短的码字“0”,而其它含有黑色像素的排列均用直接编码,如图21所示(空白方格表示白像素。图21方块编码在实际中,大多数二值图像都是白色背景占大部分,黑色像素只是占图像像素总7数的很少一部分,因此分解的子快中像素为全白的概率远大于其他情况,如果跳过这些白色区域,只传输黑色像素信息,就可

27、使得每个像素的平均比特下降。跳白块WBS编码正式基于这一思想提出来的。跳白块WHITEBLOCKSKIPPING编码是利用二值图像以白色像素为主、黑色像素相对较少这一特点而提出的编码方法。编码方法非常简单,首先将二值图像的各扫描行分成若干块仍LOCK,每块包括N个像素,其中像素全为白色像素的块,称为全白块WHITEBLOCK,编码时用1比特码字“0”表示,这是因为这种全白块在所有的块中出现的概率最大,因而分配最短的一个码字。对于至少含有一个黑像素的非全白块,用N1比特码字表示第一个比特为“L”,称为前缀码;其余N比特采用直接编码,白像素为“0”,黑像素为“L”反过来亦可。注意,全白块对应的1比

28、特“0”也可看作是前缀码,只不过此时全白块的编码看成只包括前缀码。前缀码的作用是使解码器在收到一系列的比特流时能够正确的判别每个码字。使用这种编码后,原图像平均每个像素的比特数,即比特率纵NB为其中,NP是某块为全白的概率,通过对码字的统计得到。NB越小,压缩性能越好。解码时,每收到一个“1”,则判断其后的N比特为直接编码,而在该N比特以外的“0”则可判断为全白块,恢复为N个“0”,进而唯一地恢复原像素序列,从而完成图像的重建。一维WBS可以推广到二维,整个图像分成若干大小为MXN像素的块,某块为全白像素时用1比特“0”表示;非全白块用1MN个比特码字表示一个前缀比特“1”,其余MN比特采用直

29、接编码。223行程编码行程长度编码,又叫做游程编码RUNLENGTHCODING,RLC,它的基本思想是,当二值图像按照从左到右的扫描顺序去记录每一行时,总会交替出现出现一定数量的连续白点和连续黑点,如图22所示。通常把具有相同灰度值的相邻像素组成的序列成为一个游程,游程中像素的个数成为游程长度,简称游长。游程编码就是将这些不同的游程长度构成的字符串用其数值和游长数值来表示。对图像进行编码时,首先对图像进行扫描,如果有连续的L个像素具有相同的灰度值G,则对其作行程编码后,只需传送一个数组G,L就可代替传送这一串像素的111111NNNNBPPNPNN8灰度值。图中可写成白4、黑3、白5、黑2、

30、白3(其含义是4个白、3个黑、5个白、2个黑、3个白)。然后,再对游程进行变长编码,根据出现概率的不同分配不同长度的码字。很明显,游程长度越长,游程编码效率越高,因而特别适用于灰度等级少,灰度值变化小的二值图像。图22连续白点和连续黑点游程编码主要应用在ITUCCITT为传真制定的文件传真三类机G3维标准中,在该标准中游长的霍夫曼编码分为行程码和终止码两种,对不同长度的黑游程和白游程采用不同的编码方式,如图23所示。图23游程编码224变换编码将原来在空间域上描述的图像信号,通过数字变换变换到变换域中。我们常常会发现,各变换系数之问的相关性明显下降,能量较为集中,这样可以根据压缩比的要求,在满

31、足一定失真度要求的情况下进行有损压缩编码。变换编码的过程是先对每个子像块进行正交变换,生成变换域中的系数知阵,然后进行变换、量化、编码,再存储或者传输。典型的正交变换有离散傅里叶变换(简称DFT)、离散余弦变换(简称DCT),KL变换和沃尔什变换等。变换编码之所以在图像信号处理中得到广泛应用,主要是它具有如下特性(1)能量集中性与保持特性。变换编码方法最重要的特点是使能量主要集中于低频区域,使大多数变换系数为0或者很小的数。在编码时,可以舍弃能量较小的系数,或者分配很少的比特,从而实现数据的压缩。(2)去相关性。通过变换可以使相关的空间样值变为不相关或者弱相关的变换系数,即变换编码能够消除存在

32、相关性中的冗余度。225位平面编码对1幅用多个比特表示其灰度值的图像来说,其中的每个比特可看作表示了个二值的平面,也称位面,如图24所示。9图24位平面位平面编码是一种将多灰度值图象分解成一系列二值图,然后对每幅二值图再用二元压缩方法进行压缩的技术。这类方法主要有两个步骤位平面分解和位平面编码。将图像所有像素的不同比特位进行分解,就构成了图像八个不同的位平面,如图25所示。对于八位灰度图像I,其位平面分解可表示为由图24中可以看出,随着位平面从高位到低位(即从位平面7到位平面0),位平面图像特征逐渐变得复杂,位平面图像的随机纹理逐渐增加,图像轮廓逐渐变得模糊直至消失。到位平面0,基本上就已无法

33、看到原图信息,这恰恰表明,不同位平面的信息对数字图像的贡献是不同的,较高位平而(简称“重要位平面”)反应原始图像的主要内容,而较低位平面所携带的原始信号能量极少,即忽略较低位平面对原始图像质量没有太大的影响。也就是说我们只需要提取图像的最高5个位平面(即重要位平面)就足以表达图像内容。23VISUALC60介绍采用的是VISUALC60平台编程实现,建立的项目名称为RWJPEGEXP。在此应用程序中,我们可以打开和存储任意的BMP文件或JPEG文件,并能实现两者的格式转换。即可以将BMP文件压缩编码为JPEG文件,也可以将JPEG文件解码为BMP文件。231VISUALC软件平台VISUALC

34、首先是一种程序设计语言,同时也是一个集成开发工具,它提供了自动生成软件代码和可视化资源编辑的功能。VISUALC是WINDOWS环境下最主要的面70,2JTIXYBXY10向对象应用开发系统之一,不仅是C语言的集成开发环境,而且与WIN32紧密相连。所以,使用VISUALC可以灵活地开发从底层软件到上层直接面向用户的软件。进入20世纪90年代以来,随着多媒体技术和图形图像技术的不断发展,可视化技术得到广泛的重视,越来越多的计算机专业人员和非专业人员都开始研究并应用可视化技术。所谓可视化技术,一般是指软件开发阶段的可视化和对计算机图像技术和方法的应用。VISUALC是一个很好的可视化编程工具,使

35、用VISUALC环境来开发基于WINDOWS的应用程序大大缩短了开发时间,而且它的界面更为友好,便于程序员操作。在没有可视化开发工具之前,程序员要花好几个月的时间来完成WINDOWS程序的界面开发,而现在只需较少的时间就可以完成。232VC技术特性面向对象程序设计OBJECTORIENTEDPROGRAMMING简称OOP方法已出现近三十年,90年代已成为程序设计的主流方向,面向对象程序设计语言是现代程序开发的主要工具,如C、JAVA是现代程序员必须掌握的编程语言。面向对象程序设计方法主要以数据为中心,代码是围绕着需要处理的数据而设计的,面向对象程序设计语言具有如下的主要特征(1)对象的类描述

36、(2)封装性ENCAPSULATION(3)多态性POLYMORPHISM(4)继承性INHERITANCEC是运用最广泛的面向对象程序设计语言,VISUALC是一个具有集成、交互和可视化编程的C实现,具备上述的所有OOP特征。编写VISUALC程序实际上就是一个构造类和把类实例化的过程。由于WINDOWS95/98/NT是PC平台中应用最广泛的操作系统(MICROSOFT力图用一个叫做WIN32的标准的32位应用程序接口来作为对这几个操作系统的共同开发接口,所以经常采用WIN32来代表MICROSOFT的32位WINDOWS操作系统),VISUALC主要针对WIN32的应用程序开发。23数字

37、图像基本概念数字图像是连续图像,FXY的一种近似表示,通常用由采样点的值所组成的矩阵11来表示0,00,10,11,01,11,11,01,11,1FFFMFFFMFNFNFNM每一个采样单元叫做一个像素PIXEL,上式21中,M、N分别为数字图像在横行、纵列方向上的像素总数。在计算机内通常用二维数组来表示数字图像的矩阵,把像素按不同的方式进行组织或存储,就得到不同的图像格式,把图像数据存成文件就得到图像文件。图像文件按其数字图像格式的不同一般具有不同的扩展名。最常见的图像格式是位图格式,其文件名以BMP为扩展名。图像数字化的精度包括两部分,即分辨率和颜色深度。分辨率指图像数字化的空间精细度,

38、有显示分辨率和图像分辨率两种。数字图像的颜色深度表示每一像素的颜色值所占的二进制位数。颜色深度越大则能表示的颜色数目越多。颜色深度的不同,就产生不同种类的图像文件,在计算机中常使用图像文件的类型有单色图像、灰度图像、伪彩色图像和24位真彩色图像。它们之间的关系取决于数字图像采用的颜色表示法。常用的颜色表示法有RGB、CMYK、HSL和YUV等。数字图像的数据容量非常庞大,如以24位真彩色表示像素为640480的数字图像,所需要的数据量为900KB,所以需要对数字图像进行数据压缩。数据压缩包括数据压缩编码和压缩数据解码两个过程。图像压缩的基本原则包括(1)编码重复压缩按照编码重复的概率大小做压缩

39、编码,压缩重复概率大的编码,可以节省一些存储空间。(2)像素间重复压缩前后像素间存在的某种程度的相关,如存在相同的背景图像等,简化编码以节省空间。(3)视觉重复压缩由于入眼的生理构造,就算在像素之间少了几个像素,眼睛也看不出来。但是,只是在某些情况中才可以允许这种失真性较大的应用。主要的数字图像压缩标准是JPEGJOINTPICTUREEXPERTGROUP标准。数字图像的采集设备主要有扫描仪、数字相机和图像采集卡等。通过对数字图像进行一定的处理,即图像处理,可在一定程度上改善图像的分辨质量和形成特殊的视12觉效果。数字图像处理由数字图像处理系统完成,其结构主要包括图像采集系统、计算机图像处理

40、系统和图像输出系统三部分。24与设备无关的位图DIB与设备无关位图DIB可以在不同的机器或系统中显示位图所固有的颜色。DIB是一种外部的位图格式,经常存储以BMP为后缀的位图文件。DIB位图还支持图像数据的压缩。25BMP位图文件结构BMP文件由文件头、位图信息头、颜色信息和图像数据四部分组成。位图结构包括位图文件头BITMAPFILEHEADER、位图信息头BITMAPINFOHEADER、调色板PALETTE、实际的位图数据IMAGEDATA。26CDIB类库的建立大多数图像处理都是基于与设备无关位图(DIB)来进行讨论的,而MFC中没有处理DIB位图的类,所以需要定义一个处理DIB位图的

41、专用类CDIB类,在其中封装必要而有效的DIB数据成员和处理函数。261设计目标用面向对象的方法处理位图的核心是设计一个处理DIB的类,称之为CDIB类。(1)功能CDIB类的基本操作功能应包括DIB文件的读、写操作;提供位图宽度、高度、颜色数目等位图相关信息;提供有关位图占据内存空间的信息,如图像数据区首地址、颜色表首地址、位图信息结构首地址等信息。(2)父类由于MFC中有一个支持DDB操作的CBITMAP类,因此很直观的想法是以CBITMAP类为父类派生出CDIB类。但是从长远考虑,这样做没有什么好处。首先,CBITMAP类中没有处理DIB的功能,因此CDIB类不能从中继承任何可用的功能。

42、其次,CBITMAP是从CGDIOBJECT中派生来的,CBITMAP类以及它从CGDIOBJECT类继承来的数据成员和功能函数对CDIB类来说都是不合适的,多余的。此外,CBITMAP类没有提供有效13的文件操作机制。而DIB主要是一种“外部”位图,即它主要以文件形式进行存储和交换,所以CDIB类应该能很好地处理文件操作。MFC中的COBJECT类是MFC中其他大多数类的根类和基类。它不但提供许多有用的特性,还包括对文件串行化的支持,运行时的类信息和对象诊断的输出等。如果从COBJECT类派生类,则可继承该类的这些特性。另外,COBJECT类具有最低限度的成员数据和函数,因此采用COBJEC

43、T类作为父类是很合理的。(3)数据封装面向对象方法的一个重要特征就是数据封装,即将类的成员数据隐藏在类中,外界只能通过类的成员函数来操作类的成员数据。这是面向对象方法的重要优点,它可以保护类中的数据不受外部的意外修改。但是,过分“纯粹”的数据封装,需要付出降低程序效率代价。特别在设计像CDIB类这样需要大量使用WIN32API函数的类时,这种缺陷特别突出。因为操作DIB的API函数大多需要一些DIB的属性作为参数。如果硬要将这些属性封装起来,则需要在类中重新实现许多WIN32API函数。这不但要花费很大的精力,而且还可能因此而产生错误和低效。所以,在设计CDIB时应采用既尽可能保证数据的封装,

44、又能保证效率的提高。262构造CDIB类根据以上的分析,创建CDIB类,其接口文件和实现文件分别为DIBH和DIBCPP。文件DIBH包含了CDIB类的类声明有关的所有信息。27本章小结本章对图像压缩和数据冗余、数字图像基本概念、VC软件平台、及其编码压缩技术做了简要介绍,对最新的几种压缩算法原理和步骤进行了简要说明。第3章图像压缩技术编码的算法研究31哈弗曼编码14根据信息论中信源编码理论,当平均码长R大于等于图像熵H时,总可设计出一种无失真编码。当平均码长大于图像熵时,表明该编码方法效率很低;当平均码长等于或很接近于(但不大于)图像熵时,称此编码方法为最佳编码,此时不会引起图像失真;当平均

45、码长小于图像熵时,压缩比较高,但会引起图像失真。在变长编码中,如果码字长度严格按照对应符号出现的概率大小逆序排列,但其平均码字长度为最小,这就是变长最佳编码定理。变长最佳编码定理是哈夫曼编码的理论基础。311哈弗曼编码基本原理哈弗曼(HUFFMAN)编码是一种常用的压缩编码方法,是HUFFMAN于1952年为压缩文本文件建立的,是一种效率比较高的变长无失真信源编码方法。它的基本原理是频繁使用的数据用较短的代码代替,较少使用的数据用较长的代码代替,每个数据的代码各不相同。由于哈夫曼编码是以信源概率分布为基础的,但一般情况下无法事先知道信源的概率分布,因而通常采用对大量数据进行统计后得到的近似分布

46、来代替,这样会导致实际应用时哈夫曼编码无法达到最佳性能。312哈弗曼编码步骤下面来介绍哈夫曼编码方法(1)将输入的符号(图像中的灰度级)IA按出现概率IPA由小到大排列,即IJKPAPAPA(2)将最小的两个IPA相加,形成一个新的概率集合(此时压缩了一个IPA),再按(1)重复直到只剩下两个概率为止。下图给出了一个实际信源符号的缩减过程。表31哈夫曼编码中的信源符号缩减过程原始信源信源符号缩减步骤符号概率12345155A0024A0040067A0060060123A0120120120161A016016016020246A020202024036042A040404040406从最后的

47、两概率值开始逐步向前给符号分配码字长,每一步有两个分支,以相同的规则各赋予一个二进制码。编码过程如表32所示。表32哈夫曼编码中的码字分配过程原始信源按信源符号缩减逆向赋码字符号概率码字123455A002011114A0040111000601117A006011000601100120113A0120100120100120100160011A01600101600101600102000024016A02000020000200002401036000412A041041041041041060同时也可以计算与编码性能相关的几个参数(1)信源的熵721LOG2325IIIHAPAPA31

48、(2)哈夫曼编码的平均码字长713016104301240062380AVGIIILLAPA32(3)哈夫曼编码的效率232509772328AVGHAL33313哈弗曼编码特点16用哈夫曼编码方法压缩图像数据,对于不同的图像,其压缩效果和压缩效率是不同的。当各符号出现概率不同时,编码效率较高。而当各符号出现的概率相等时,实际上此时的哈夫曼编码就已退化成等长编码,编码效率较低。对灰度图像的无损压缩算法采用哈夫曼编码,即对原图像实行直接的编码,该算法在恢复图像的质量上是极好的。但由于该算法对原图像直接使用不等长编码压缩,但没有处理图像各个像素间的相关性,从而使压缩效率并不是很高,因此必须结合其它

49、的压缩方法同时使用以达到更高的压缩比。32香农费诺编码香农费诺SHANNONFANNON编码也是一种常见的可变字长编码。与哈夫曼编码相似,当信源符号出现时的概率正好为2I时,采用香农费诺编码同样能达到100的编码效果。321香农费诺编码基本原理香农费诺编码的理论基础是符号的码字长度NI完全由该符号出现的概率来决定,即LOGDPINILOGDPI1,式中D为编码所用的数制。322香农费诺编码步骤(1)将信源符号XI按其出现概率PI从小到大排序1211211NNNXXXXPPPPPP33(2)将X分成两个子集1212121112KKKNKKKNXXXXXXXXPPPPPP34并且保证11KNIJIJKPP成立或差不多成立。在本图像压缩编码设计中是按前一个子集大于等于总和的一半来计算的。(3)给两个子集赋不同的码元值,如X1中的符号赋“1”,X2中的符号就赋“0”。(4)重复(2)、(3),即对每个子集再一分为二,并分别赋予不同码元值,直到每个子集仅含一个信源符号为止。17下面通过哈夫曼编码中用过的同样例子,说明上述编码过程。将信源547316200200400601201602

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。