您的当前位置:首页JPEG标准下图像压缩算法探讨

JPEG标准下图像压缩算法探讨

2023-10-27 来源:乌哈旅游
维普资讯 http://www.cqvip.com

电脑知识与技术 研究开发 JPEG标准下图像压缩算法探讨 郭伟斌’,冯钿。。罗文村31刘建宾 (1.汕头大学医学院第一附属医院,广东汕头515041;2.汕头市外马第四小学,广东汕头515031;3.中山大学信息科学院,广东广州 510275:4.汕头大学工学院计算机系,广东汕头515063) 摘要:图像是互联网中传输信息的重要媒介。一幅没经过任何压缩处理的原始图像会给传输和存储带采很大困难。JPEG图像格式是 目前最流行的图像格式,它的一个显著特点是压缩比相当高【1】。在本文笔者对JPEG标准下图像压缩的DCT基准算法和DPCM基准算 法作了讨论和分析.为广大图像Jr--作者提供很好的参考。 关键词:图像;压缩:算法;DCT;DPCM 中图分类号:TP391 文献标识码:A 文章编号:1009—3044(2006)14—01 1 1—02 Entering the Image s Compression Technology of the JPEG s Standard GUO Wei binI,FENG Tian2,LUO wen—cun3,LIU Jian~bin f1.The First Afhliated Hospital of Shantou Universiyr Medical Collage,Shantou 515(i)41,China;2.The fourth grade school ofWai—ma road, Shantou 515031。China;3.Department OfComputer Science,Zhongshan University GuangZhou 510275,China:4,Department OfComputer, Shantou University Shaltou 515063。China) Abstract:Image is all important transfers s medium in network.Without Being Compressed.Image s transfers and saving is very trouble, Jpeg s standard as the image compression s standard is in vogue,because it have high compressibility for image.In text,we talk about the DCT Arithmetic and DPCM Arithmetic under JPEG s standard.These can give a lot of help to image s operator, Key words:Image;Compress;Arithmetic;DCT;DPCM 1引言 像数据 缩是指在满足・定图像质量的情况卜.用尽可能 少的数据量来表示图像。在计算机中『矧像在数据一般表示为F(i, i)_i,j=O,l,…,n一1,它是经过对图像进行抽样和量化得到的,fH这种 表示存在着冗余性。罔像压缩的目的就是通过消除这种冗余性, 达到减少图像的存储空间。 JPEG作为一种图像压缩标准,以其优秀的压缩率和图像质 图1 DPCM系统原理 量,广泛地被使用在互联网f21。它采用的是有损压缩格式,删除罔 因为DCT算法输m图像的视觉效果相当好。通过它压缩后图 像中重复或不币要的资料。图像被压缩后占用的储存空间小,但 像与原图像的视觉效果儿乎一・样,所以下面重点讨论DCT算法。 基本不影响图像存屏幕上的视觉效果.可以_I_{=J最少的磁盘守间获 由于图像的质量取决于与频率有关的DCT系数的量化程度, 得较好的图像品质,所以JPEG图像格式是目前最流行的图像格 所以8x8二维离散变换是DCT基准算法的一个关键部分。在变换 式。 过程巾使用FDCT将8x8的象素模块取样数据变成8x8的DCT 2 JPEG标准 的系数阵列,其中包括8x8数据块取样和8x8DCT系数块协议。 JPEG定义了两种压缩算法:一种是离散余弦变换(DCT),另 8x8数据块取样是将输入的取样阵列分成连续的8x8数据模 一种足宅问预测(DPCM) DCT算法偏重于图像的视觉效果.空间 块,其划分过程应与图像的内部表示相对应。图2表示出了8x8 预测偏重于无失真编码. .取样的水平下标(I)的设置和垂直下标(J)设置。 2.1 DCT基准算法原理 图3表示 了与8x8取样相对应的DCT系数块协议。其排列 DCT算法原理包括两个部分:编码器和解码器。 顺序是DC系数排在左上角,其中水平方向的排列顺序是从左到 在编码器中。8x8象索取样经过FDCT(正向离散余弦变换) 右按频率增加.垂直方向的排列顺序是从上到下按频率增加。 成为8x8的DCT系数阵列。这些系数经过8x8的量化矩阵量化 根据图2和罔3。可以采用以下算法实现对图像的压缩。 后.再经过系数到代码的转换成为一系列信息保持转换的代码。 1 0 l 2 3 4 5 6 7 x0 l 2 4 5 6 7 8 在解码器中,那世DCT系数经过与和编码器同级别的反量 化,再经过IDCT(反离散余弦变化)将8x8的DCT阵列转换成8× 8的象索取样值。 2.2 DPCM基准算法原理 DPCM算法原理同样也包括两部分:编码器和解码器。 在编码器中,先产生一个预测值,然后计算取样值与预测值 的差值.再将这些差值经过差值转化器转换成代码。在解码器中, 代码值被转换成差值,再将差值与相应的预测值相加产生一个输 出值.其中 这个输 值的失真是在差值计算的差值恢复过程中 图2 8x8取样 图3 8x8DCT系数块协议 产生的。DPCM系统原理如图l所示。 对于正向的DCT(FDCT): 3 DCT算法模型 收稿日期:2006—03-03 基金项目:汕头市重点科技计划项目(汕府科[20051161—34)。 作者简介:鄣伟斌(1974一),男,广东省汕头市人,工程师,研究方向为计算机网络安全、图像处理技术和软件工程等。 111 J O维普资讯 http://www.cqvip.com

・研究开发・・・・・・ 电脑知识与技术 4 c(x)c(Y)∑∑F(i=0 J 。 I,J)[cos(2I+1)la,'rr/16]x[cos(2J+1) 用性,能, ’泛地适用于任何分辨率、多彩色方式、多个图像单元及连 订/l6】F(X,Y)- ̄-续色调的文本。但笔者认为。一幅具有良好视觉效果和打印效果的 压缩罔像,除了依靠优良的压缩算法外.还需取决于压缩前源图像 对于反向的DCT(IDCT),我们采用如F公式: 的质量。特别是在追求高 r巨缩率的情况下.源【刳像的质量是保证压 v(i,J)=÷∑∑c{缩同效果的一个重要前提。甭则图像压缩效果会适得其反。 ’i=O j=O x)c{Y)r(x,Y)[cos(21+1)p, ̄/16]x[eos(2J+1) p. ̄/16】 参考文献: f1/√2 X=O f1/√2 Y=O …吕耀强,于盛林.Delphi中JPEG图像的存取【J】.电脑开发与 其中,c(x) {【 应用.2004。11:41—42. 1 x≠0 C(Yf={【1  Y≠0 I21卞同春,张曦煌.基于DCT压缩的JPEG网像的快速检索『J1. F(I,J)是输A/输 像素取样值,V(X,Y)是DCT系数。 计算机应用.2005.07:l623—625. 4结论 『3】秦军,罗园明.一种基于DCT域的图像快速检索技术Ⅲ.计算机 DCT变换足一种应用广泛的数据压缩方法【3J,具有良好的适 系统应用.2005,05:29—3 1. (上接第110页) validateSignOn(request,response,chain); 要保证在请求页面之前先经过Servlet Filter过滤。则需要对 return;) 相应得web.xml文件进行配置。部分配置信息如下: ∥如果进入的不是髓录页面,则判断使用者是否 录过。 <!一一Filter声明一~> boolean signedOn=false; <filter> if(hreq.getSession0.getAttribute(SIGNED—ON)!=nul1)( <filter-name>SignOnFiher</filter-name> signedOn=((Boolean)hreq.getSession().getAttribute(SIGNED ON)). <display-name>SignOnFiher</display-name> booleanValue } <deseription>no description<,description> else{ hreq.getSession0.setAttribute(SlGNEI)_ON,new Boolean(false)); <fiher-elass>myEJB.exam.SignOnFiher</filter-class> } </iflter> #1N果已经登人.则结束此Filtel・丁作。进入Filter chain中的 <!一Filter作用域~> 下一个Filter <filter-mapping> if(signedOn){ <filter-name>SignOnFiher</fiher-name> chain.doFiher(request,response); <url—pattern>/ </url—pattern> return;} </iflter-mapping> ,/如果没有登人。则判断需求页面是否需要身份验证,若需 由Filter作用域部分配置可知,凡是请求根目录下的页面都 要则定向到登入页面 需要先经过过滤器SignOnFiher。Filter声明中指明该Filter的实现 herator it protectedResources.keySet0.iterator(); 类为myEJB.exam.SignOnFiher。 while(it.haSNext0){ 3.3 SignOnFiher的方法实现 Stirng pmtectedName=(Stirng)it.next(); Pr0cectedResoume resource =(ProtectedResouree)protecte- 实现过滤器最重要的便是实现doFiher(SeMetRequest req, dResources get(proteetedName); ServletResponse res,FilterChain chain)方法。验证流程如图2: Stirng urlPattern=resource.getURLPattem0; if(nrlPattern.equals(targetURL)){ hreq.getSession0.setAtt bute(()RIGlNAL_URL,targetURL); config.getsel'、TletC()ntext ().getRequestDispatcher (”/”+signOn— Page).forward(request,response); return;}】 //进入下一个过滤器 chain.doFiher(request,response);J 如果系统需要增加其他的页面请求预处理,则可刚类似的方 法添加其他的Filter.所有的过滤器可形成过滤器链, 一个Filter 完成过滤后.可自动的进入到链中的下 个Filter进行过滤操作, 直到所有的过滤器都执行完。此模式可保证处理模块的即插即 用,而不影响核心代码。 4结束语 过滤器通常可以将不同种类的服务聚集在一起。并提供相当 灵活的服务组合。应用系统可以通过使用截取过滤器提高其重用 图2验证流程图 性,过滤器可以随时根据需要从其他程序模块中插入或移除,并 具体代码如下: 且由于它们通常具有标准的接口。开发人员可以使用一组类似的 public void doFilter(ServletRequest request,ServletResponse 过滤器,并在不同的情况下进行全组的重用,提高丁软件的可维 response,FiherChain chain) 护性。 throws IOException,ServletException( 参考文献: [1 1Deepak Alur,John Crupi,Dan Malks.Core J2EE Patterns[M】. //解析用户请求页面名称 北京:科学出版社.2004. if(ifrstSlash!=一11 targetUR| =currentURL.substring(ifrstSlash+ f21飞思科技研发中心.Java Web应用开发详解fM】.北京:电子 1.currentURL.1ength0); ,/判断使用者进入的如果是登人页面,则进行验证工作 T业出版社.2002. if((targetURL!=nul1)&&targetURL.equals(FORM—URL))f 『3】李颖,王丽芳,蒋泽军.截取过滤器模式对MVC体系结构的 优化fJ1.微电子学与计算机。2005,22(1):85—87. 1 12 电奠知识与技术 

因篇幅问题不能全部显示,请点此查看更多更全内容