MATLAB实现JPEG标准下的静态图像压缩
基于Matlab的数字图像处理系统设计_毕业论文设计 精品推荐

论文(设计)题目:基于MATLAB的数字图像处理系统设计基于MATLAB的数字图像处理系统设计摘要MATLAB 作为国内外流行的数字计算软件,具有强大的图像处理功能,界面简洁,操作直观,容易上手,而且是图像处理系统的理想开发工具。
笔者阐述了一种基于MATLAB的数字图像处理系统设计,其中包括图像处理领域的大部分算法,运用MATLAB 的图像处理工具箱对算法进行了实现,论述了利用系统进行图像显示、图形表换及图像处理过程,系统支持索引图像、灰度图像、二值图像、RGB 图像等图像类型;支持BMP、GIF、JPEG、TIFF、PNG 等图像文件格式的读,写和显示。
上述功能均是在MA TLAB 语言的基础上,编写代码实现的。
这些功能在日常生活中有很强的应用价值,对于运算量大、过程复杂、速度慢的功能,利用MATLAB 可以既能快速得到数据结果,又能得到比较直观的图示。
关键词:MATLAB 数字图像处理图像处理工具箱图像变换第一章绪论1.1 研究目的及意义图像信息是人类获得外界信息的主要来源,近代科学研究、军事技术、工农业生产、医学、气象及天文学等领域中,人们越来越多地利用图像信息来认识和判断事物,解决实际问题,由此可见图像信息的重要性,数字图像处理技术将会伴随着未来信息领域技术的发展,更加深入到生产和科研活动中,成为人类生产和生活中必不可少的内容。
MATLAB 软件不断吸收各学科领域权威人士所编写的实用程序,经过多年的逐步发展与不断完善,是近几年来在国内外广泛流行的一种可视化科学计算软件。
MATLAB 语言是一种面向科学与工程计算的高级语言,允许用数学形式的语言来编写程序,比Basic、Fortan、C 等高级语言更加接近我们书写计算公式的思维方式,用MATLAB 编写程序犹如在演算纸上排列出公式与求解问题一样。
它编写简单、编程效率高并且通俗易懂。
1.2 国内外研究现状1.2.1 国内研究现状国内在此领域的研究中具有代表性的是清华大学研制的数字图像处理实验开发系统TDB-IDK 和南京东大互联技术有限公司研制的数字图像采集传输与处理实验软件。
静止图像压缩编码简介

静止图像压缩编码简介摘要:随着信息技术的发展,静止图像压缩编码技术在信息领域的应用越来越广泛。
如果某种图像编码算法既能够保证质量,又能够存储时占用空间小、传输时占用带宽小,那么该编码算法则越优秀。
jpeg压缩算法就是这样一种既可以避免失真,又能够实现令人满意的压缩比例的算法。
关键词:图像编码静止图像压缩 jpeg标准多媒体和互联网的发展,图像的存储和传输问题变得越来越突出,要求存储、传输对网络资源的开销尽量低,同时又不能降低存储和传输过程中图像的质量。
因此需要对图像采用合适的方法进行压缩和编码,方便图像存储及传输。
常用的图像文件格式中jpeg以占用空间小,图像质量高等特点而广为用户采用。
上世纪80年代iso和ccitt 两大标准组织共同推出jpeg压缩算法,它定义了连续色调、多级灰度、静止图像的数字图像压缩算法,是国际上彩色、灰度、静止图像的第一个国际标准。
离散余弦(dct)则是最小均方误差条件下得出的最佳正交变换,作为多项图像编码国际标准的核心算法而得到广泛应用。
其中最著名的算法即为jpeg 图像压缩算法。
dct算法变换核是余弦函数,计算速度较快,质量劣化程度低,满足图像压缩和其他处理的要求。
按照灰度层次,图像可分为两类:第一类为有灰度层次图像;第二类成为二值图像,即仅黑白层次图像。
电视图像、照片传真、静止图像属于有灰度图像。
而文件传真、二值静止图像则属于二值图像范畴。
经过几十年人们对图像压缩技术的不断研究,并且随着软硬件技术的不断发展,人们已经能够实现大量的图像压缩算法。
早期的图像编码主要基于信息论的理论基础,压缩效果不理想。
最近几年随着相关领域科学的发展,人们的研究重点已经转向视觉生理学和景物分析新的方向上,实现了图像编码技术由第一代向第三代的跨越,实现了非常高的压缩比,极限情况下能达到千分之一。
以最小的代价实现特定质量的图像的传输是图像编码的核心,又称为图像压缩,广泛应用于图像的存储、传输和交换。
图像编码实验报告

图像编码实验报告图像编码实验报告一、引言图像编码是一项重要的技术,它可以将图像数据进行压缩和传输,以节省存储空间和传输带宽。
本实验旨在探究图像编码的原理和方法,并通过实验验证不同编码算法的性能和效果。
二、实验目的1. 理解图像编码的基本原理和概念;2. 掌握JPEG和PNG两种常见的图像编码算法;3. 分析和比较不同编码算法的压缩率和图像质量。
三、实验过程1. 实验环境搭建在本实验中,我们使用MATLAB软件进行图像编码实验。
首先,安装MATLAB 并导入实验所需的图像处理工具箱。
2. 图像压缩选择一张分辨率较高的彩色图像作为实验对象。
首先,使用JPEG编码算法对图像进行压缩。
在压缩过程中,可以调整压缩比例参数,观察压缩后图像的质量变化。
然后,使用PNG编码算法对同一张图像进行压缩,并比较JPEG和PNG 两种算法的压缩率和图像质量。
3. 实验结果分析根据实验结果,我们可以得出以下结论:- JPEG算法在高压缩比下会出现明显的失真,但在适当的压缩比下可以获得较好的图像质量;- PNG算法在压缩过程中不会导致明显的失真,但压缩率相对较低。
四、实验讨论1. 图像编码的原理图像编码是将图像数据转换为二进制码流的过程。
常见的图像编码方法包括无损编码和有损编码。
无损编码可以完全还原原始图像,但压缩率较低;有损编码可以获得较高的压缩率,但会引入一定的失真。
2. JPEG编码算法JPEG是一种常用的有损图像编码算法。
它采用离散余弦变换(DCT)将图像从空间域转换为频域,并通过量化和熵编码实现压缩。
JPEG算法在高频部分进行较大幅度的量化,从而实现高压缩率,但也导致了明显的失真。
3. PNG编码算法PNG是一种无损图像编码算法。
它采用预测编码和差分编码的方法,将图像数据转换为无损的二进制码流。
PNG算法在压缩过程中不引入明显的失真,但压缩率相对较低。
五、实验总结通过本次实验,我们深入了解了图像编码的原理和方法,并通过实验验证了JPEG和PNG两种编码算法的性能和效果。
JPEG2000静态图像压缩标准

1
第一章 绪论
第一章
绪论
随着现代网络通讯和无线通讯技术的飞速发展,图像压缩技术已经得到了越 来越广泛的应用。与此同时,人们不断追求的高压缩比和尽可能小的图像信息失 真之间的矛盾也日益突出。感兴趣区域(ROI)编码处理方法为解决这一矛盾提 供了一种有效的途径,成为近年来图像处理领域的研究热点之一。 联合图像专家组 (JPEG) 为了更好地满足人们在图像压缩领域的各种应用需 求,于 2000 年 12 月推出了新一代 的静态图像压缩标准——JPEG2000( ISO 15444)[1]。在制定 JPEG2000 图像压缩标准的过程中,联合图像专家组始终将 能否灵活有效地支持 ROI 编码处理作为衡量该标准的一个重要指标[2],为实现 ROI 编码提供了一个良好的平台,从而推动着 ROI 编码研究不断丰富、完善, 应用更深入、广泛。
本人签名:
日期:
关于论文使用授权的说明
本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:学校 有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或 部分内容,可以允许采用影印、缩印或其它复制手段保存论文。 (保密的论文在 解密后遵守此规定)
本人签名: 导师签名:
日期: 日期:
摘要
感兴趣区域( ROI )图像编码处理,是联合图像专家组( JPEG)新推出的 JPEG2000 静态图像压缩标准中提供的一种新特性。该编码处理方法可以将用户 感兴趣的图像区域(ROI)与背景区域区别开来,并实现对前者优先、优质的编 码操作。 本文主要研究基于 JPEG2000 图像标准的感兴趣区域图像编码的应用算法, 具体工作如下:
第五章 FOVEAL SHIFT 编码方法………..………..….…………...……………..33
二维DCT变换在JPEG图像压缩中的应用及其MATLAB实现

d i s t o r t i o n o f i m a g e , a n d a l s o w o n t h e h i g h c o m p r e s s i o n r a t i o . T h e m e t h o d i s s i m p l e , f a s t a n d s u i t a b l e f o r t h e
0 引言
随着 网络技术和信 息技术 的飞速发展 , 网络中信息的需求量 越 来越 大。 这其 中就包括有对 信息传输 的需求, 而 信息传输 中大 部分又表现为 图像 , 所 以图像信 息量的大小将 直接 影响到网络传 输的速度 。 因此 , 为 了保证 图像信息 的存储与传输 , 对 图像进 行压 缩成为 当前最迫切 的需求 。 图像 压缩 就是在没有明显失真的前提 下, 尽 量减少表示 数字 图像 时需要 的数据量 , 从而 节省 图像 的存 储空间 , 减少传输信道 的容量、 缩短 图像加工处理 的时 间等 。 在所 有 的图像压缩编码 中 J P E G是第 一个被广泛应 用的适用 于 ( 包括
行仿 真验 证, 实验结果显示 图像无 明显失真 , 同时又 获得 了高压缩 比。 该方法操作简单、 速度快 , 适用于 日常数字 图像 的压缩需
求。
关键词 : 图像压缩 ; D C T; M A T L A B; J P E G A
M ATLAB t w o- d i me ns i o na l DCT t r a ns f o r m a nd i t s a p pl i c a t i on i n t he J PE G r e a iz l a t i o n o f i ma g e c o mp r e s s i o n
一种改进的图像压缩方法及其Matlab实现

IO IC IU—T联合 组 成 的 “ 合 二 值 图像 专 S /E 和 T 联
家组 (on b —lvlm g x et gop ” 19 jit i ee i a eep r ru ) 于 9 2 s
以致 使人 形 成错 像 。这样 对 数 字 图像 的分 析 、 观 察 和处理 造成 不利 。噪 声实 际上 是一 种相 对 图像 数据 的无 效数 据 , 而 使 得 各 像 素 之 间 的相 关 性 从 大 大降低 , 图像 压缩 的核 心 即是 去 除像 素 间 的 而 相关 性 , 对含 噪 的 图像 处理 效果 当然 是很 差 的 , 也 就 是 图像 中的噪 声对 图像 的编 码压 缩起 了破 坏作 用 J 。要对信 号 中 的 噪声 进 行 有 效 的处 理 , 就需 要建立 噪 声模 型 , 而如何 建立 高效 、 快速 的模 型 又
维普资讯
第 2 卷 第 1期 9 2
20 07年 l 月 2
武 汉理工 大 学学 报 ・ 信息 与管理 工程 版
JU N LO T(N O M TO O R A F WU IF R A IN& M N G M N N I E  ̄N A A E E TE GN E G
摘
要: 介绍 了 J E P G图像压缩算 法 , 对 含有 噪声 的数字 图像 去除相关 性差 的 问题 , 出了先 滤波再 进行 并 提
JE P G压缩 的方法 。在 M t b数学分析工具环境下仿 真了该算 法。实验结 果表 明, al a 在图像 客观保 真度优于经 典 JE P G压 缩方法的情况下 , 也能减小平均码长。同时也体现了 Ma a 来实现 JE tb用 l P G的图像编解码过程 , 具 有方法简单 、 速度快 和误差 小的优点。 关键 词 : tb Ma a ;噪声 ; P G;图像 压缩 l JE
静态图像压缩标准
静态图像压缩标准静态图像压缩是数字图像处理中的重要技术,它可以减小图像文件的大小,从而节省存储空间和传输带宽。
在图像处理、网页设计、移动应用等领域都有着广泛的应用。
本文将介绍静态图像压缩的标准,包括JPEG、PNG和GIF等常见的压缩格式,以及它们的特点和应用场景。
JPEG压缩是最常见的图像压缩格式之一,它采用了一种有损压缩的算法,可以在一定程度上减小图像文件的大小,同时保持较高的图像质量。
JPEG压缩适用于照片、真彩色图像等复杂图像的压缩,但对于简单的图像或者带有文本、线条的图像,JPEG的压缩效果并不理想。
此外,JPEG压缩的图像文件在多次编辑和保存后会出现压缩失真的问题,因此在需要频繁编辑的图像上不宜使用JPEG格式。
PNG压缩是一种无损压缩的格式,它可以保持图像的原始质量,适用于简单图像、带有透明通道的图像以及需要频繁编辑的图像。
PNG格式的图像文件通常比JPEG格式的大,但在保持图像质量的同时,可以减小文件大小。
因此,PNG格式适用于需要保持图像质量的场景,比如网页设计、图像编辑等领域。
GIF压缩是一种特殊的压缩格式,它主要用于动画图像的压缩。
GIF格式采用了一种无损压缩的算法,可以将多幅图像合成为一个GIF动画文件。
GIF格式的图像文件通常比JPEG和PNG格式的小,适用于网页动画、表情包等场景。
除了上述几种常见的压缩格式外,还有一些新兴的压缩算法和格式,比如WebP、HEIC等,它们在一定程度上优化了图像压缩的效果和文件大小。
在选择图像压缩格式时,需要根据具体的应用场景和要求来进行选择,以达到最佳的压缩效果。
总的来说,静态图像压缩标准包括了JPEG、PNG、GIF等常见的压缩格式,它们各自有着不同的特点和适用场景。
在实际应用中,需要根据具体的需求来选择合适的压缩格式,以达到最佳的压缩效果和图像质量。
希望本文能够对静态图像压缩标准有所帮助,谢谢阅读!。
JPEG报告
基于DCT的JPEG图像压缩标准一、J PEG发展与背景JPEG(Joint Photographic Experts Group)是由ISO/IEC JTC1/SC2/WG8和CCITT VIII/NIC于1986年底联合组成的专家小组。
JPEG小组的工组事研究具有连续色调的图像(包括灰度及彩色图像)的压缩算法,并将其制定为适用于大多数图像存储及通信局设备的标准算法,JPEG小组于1990年提出JPEG 算法的建议,并决定对建议中的算法不再修改,除非发现了危害压缩算法标准的问题。
作为静态图像压缩的标准算法,JPEG算法必须满足以下要求:算法独立于图像的分辨率;具有低于1bit/象素的编码率,并且能够在五秒钟内建立图像,以满足实时要求;在压缩比大约是2的情况下能够无失真地恢复原图像;支持顺序编解码和渐进编解码;以及对各种图像成分及数据精度的自适应能力;最后,要求编解码设备简单易实现。
JPEG小组指定了一系列实现静态图像压缩编码的方法,这些方法的选择决定于具体应用的要求及性能价格比的考虑。
这些方法基本上可以分为两类:基于离散余弦变换的编码和基于空间域预测编码的方法。
前者,即离散余弦变化的方法压缩倍率较高但算法复杂,较难实现;后者,即预测编码的方法虽然压缩倍率较低,但是可以实现无损压缩。
JPEG中允许四种编解码模式:(1)基于DCT的顺序模式(sequential DCT-based)(2)基于DCT的渐进模式(progressive DCT-based)(3)无失真模式(Lossless)(4)层次模式(hierarchical).其中,(1)和(2)是基于DCT的有损压缩;(3)是基于线性预测的无损压缩;(4)可以是DCT与线性预测的分层混合。
JPEG算法可分为基本JPEG和扩展,即Baseline System 与Extended System。
在Baseline System中生成的编码文件,在Extended System中一定可以正确解码。
利用Matlab进行数据压缩与解压缩
利用Matlab进行数据压缩与解压缩数据压缩与解压缩是信息技术领域中一项重要的工作,它可以帮助我们减少数据的存储空间和传输带宽,提高数据的传输速度和存储效率。
而Matlab作为一种功能强大的数学软件,也提供了多种方法和工具来进行数据压缩与解压缩的操作。
本文将介绍如何利用Matlab进行数据压缩与解压缩的过程,并探讨一些常用的压缩算法与技术。
一、数据压缩的概念与重要性数据压缩是将原始数据通过一定的算法和技术,使得压缩后的数据在占用存储空间或者传输带宽上减少,但保持原始数据的一些重要特征。
数据压缩有着广泛的应用场景,比如在图像和视频处理中,我们经常需要对大量的图像和视频数据进行传输和存储,若能将这些数据压缩后再传输和存储,就能大大提高传输效率和节省存储空间。
二、Matlab的数据压缩与解压缩函数Matlab提供了多种数据压缩与解压缩的函数和工具箱,其中最常见的有gzip、zlib、zip等函数。
gzip函数可以将一个或多个文件压缩成一个gzip格式的文件,zlib函数可以将一个或多个文件压缩成一个zlib格式的文件,zip函数则可以将一个或多个文件压缩成一个zip格式的文件。
这些函数的使用方法非常简单,只需传入待压缩文件的路径和压缩文件的路径即可进行压缩和解压缩。
三、常用的数据压缩算法1. 哈夫曼编码哈夫曼编码是一种可变字长编码技术,它根据每个符号(或字符)出现的概率来赋予该符号的编码,出现概率高的符号会被赋予较短的编码,出现概率低的符号会被赋予较长的编码。
在Matlab中,可以使用huffmandict函数生成哈夫曼编码的字典,使用huffmanenco函数对数据进行编码,使用huffmandeco函数对数据进行解码。
2. Lempel-Ziv-Welch(LZW)算法LZW算法是一种基于词典的无损压缩算法,它的主要思想是将连续出现的字符序列映射为一个索引,并将该索引存储起来,从而达到压缩数据的目的。
MATLAB图像处理之平移,旋转,倾斜,放缩
MATLAB图像处理之平移,旋转,倾斜,放缩实验内容:如何对号灰度图像(或彩色图像)进行方所、平移、旋转和综合变换实验内容一:图像的放缩实验程序:%注意,当处理图像大小过大时,请先使用size函数得出矩阵大小,否则处理之后图像会提示内存不足,或者先压缩图像,又或者可以改变电脑运行内存,具体方法可以根据具体情况通过论坛查询,这里就不再过多赘述. x1=imread('0045.jpg');%导入真彩图片0045.jpg,是三维矩阵b=imresize(x1,20);%将原图像放大20倍c=imresize(x1,0.05);%将原图像缩小为原来的20倍figure,subplot(131),imshow(x1),title('原始图像');%此区域内显示1行3列个图像,该图像位于第1个,显示x1的图像,并命名为“原始图像”subplot(132),imshow(b),title('放大20倍');%此区域内显示1行3列个图像,该图像位于第2个,显示b的图像,并命名为“放大200倍”subplot(133),imshow(c),title('缩小20倍');%此区域内显示1行3列个图像,该图像位于第3个,显示c的图像,并命名为“缩小20倍”实验结果:实验内容二:图像的旋转实验程序:clear allclc%imrotate(A,angle,method,bbox)%功能:将矩阵(图片)A旋转任意角度%参数:A——待操作矩阵,angle——需要旋转的角度,method——插值方法,bbox——输出图像大小%将矩阵A旋转angle度(任意),其中angle应用角度制表示;method包括'nearest'、'bilinear'、%'bicubic'分别为“邻近插值法”、“双线性插值法”、“三次卷积插值法”;%bbox(Bounding ? ? box defining size of output image)包括'crop'、'loose',%分别表示将旋转后的图像剪裁为输入图像大小后输出和已旋转后图像大小输出%x1=imread('0045.jpg');%导入真彩图片0045.jpg,是三维矩阵x2=rot90(x1,1);%将图片旋转整数倍个90度figure;%生成图像subplot(272);%此区域生成2行7列个图像,该图像位于第2个imshow(x1);%显示x1生成的图像title('原始图像');%命名x1图像为“原始图像”subplot(275);%此区域生成2行7列个图像,该图像位于第5个imshow(x2);%显示x2生成的图像title('旋转90度');%命名x1图像为“旋转90度”x3=imrotate(x1,30,'nearest','loose');%使用最邻近法逆时针将图像旋转30度,使用loose形式输出图像x5=imrotate(x1,30,'nearest','crop');%使用最邻近法逆时针将图像旋转30度,使用crop形式输出图像x4=imrotate(x1,30,'bilinear','crop');%使用双线性插值法逆时针将图像旋转30度,使用crop形式输出图像x6=imrotate(x1,30,'bilinear','loose');%使用双线性插值法逆时针将图像旋转30度,使用loose形式输出图像subplot(278);%此区域生成2行7列个图像,该图像位于第8个imshow(x3);%显示x3生成的图像title('最邻近法逆时针旋转30度1');%命名x3图像为“最邻近法逆时针旋转30度”subplot(2,7,12);%此区域生成2行7列个图像,该图像位于第12个imshow(x4);%显示x4生成的图像title('双线性插值法逆时针旋转30度1');%命名x4图像为“双线性插值法逆时针旋转30度”subplot(2,7,10);%此区域生成2行7列个图像,该图像位于第10个imshow(x5);%显示x5生成的图像title('最邻近法逆时针旋转30度2');%命名x5图像为“最邻近法逆时针旋转30度2”subplot(2,7,14);%此区域生成2行7列个图像,该图像位于第14个imshow(x6);%显示x6生成的图像title('双线性插值法逆时针旋转30度2');%命名x6图像为“双线性插值法逆时针旋转30度2”实验结果:实验内容三:图像的平移3.1将图像从一个位置平移到另一个位置实验程序:x1=imread('0045.jpg');%导入真彩图片0045.jpg,是三维矩阵figure(1);%生成图像subplot(121),imshow(x1),title('原始图像');%此区域生成1行2列个图像,该图像位于第1个,并命名为“原始图像”,显示x1的图像se1=translate(strel(1),[100 -100]);%形态学膨胀后j1就是平移后的图像j1=imdilate(x1,se1);%对x1,se1进行膨胀操作subplot(122),imshow(j1),title('左下平移');%此区域生成1行2列个图像,该图像位于第2个,并命名为“左下平移”,显示j1的图像实验结果:实验内容四:图像的倾斜实验程序:A=imread('0045.jpg');%将图像导入工作区tform=affine2d([2 0.33 0;0 1 0;0 0 1]);%创建定义仿射几何变换的affine2d 对象B=imwarp(A,tform);%使用 imwarp 对图像应用几何变换。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB实现JPEG标准下的静态图像压
缩
1引言
众所周知,原始图像数据会占用大量的存储空间,对于需要大量存储和传输图像的应用领域,需要有效的方法来存储及传输这些图像文件。
因此,对图像信息进行一定的压缩处理成为一个不可或缺的重要环节。
图像数据压缩是指在满足一定图像质量的情况下,用尽可能少的数据量来表示图像。
通常情况下,图像中含有大量的冗余信息,图像压缩的目的就是通过消除这种冗余性,减少图像的存储空间,即保留不确定的信息,去掉确定的信息,也就是用一种更接近信息本质的描述来代替原有冗余的描述。
2图像数据压缩系统
2.1图像数据压缩系统的组成
典型的图像数据压缩系统的组成如下:
(1)变换器
由于图像中大量冗余信息的存在,去除图像相关性是提高编码效率的一个很重要的步骤。
变换器是无损变换过程,变换后的图像可以无失真恢复原始图像。
(2)量化器
生成一组有限个离散符号来表示压缩的图像。
量化过程是一个幅值离散的过程,它是不可逆的,也是有损耗的。
(3)编码器
给量化器输出的每个符号指定一个码字,即二进制位流。
编码器可
以使用定长编码或变长编码,变长编码又称为熵编码。
图像符号的编码过程和变
换过程一样是无损耗的,即编码和解码过程是可逆过程。
2.2图像压缩系统评价
不同的图像压缩系统,由于其应用环境与处理目标不尽相同,因此
系统结构和具体算法的选择是千变万化的。
为了对图像系统的性能有一个统一和
全面的评价,我们通常从恢复图像质量,压缩率,算法复杂度以及通信时延几个
方面来考察一个图像处理系统的压缩效果和可实现性及实用性。
压缩比就是原始图像大小与采用某种算法压缩后的图像大小的比值。
恢复图像的高质量与高压缩比总是一对矛盾,因此这一对矛盾解决得好坏就成了
评判压缩算法优劣的重要标准。
3 JPEG标准
由国际标准化组织(ISO/IEC)与国际电报电话咨询委员会(CCITT)联合发起的联合图像专家组,在图像编码研究成果的基础上于20世纪
90年代初制定了静止图像的编码标准,简称JPEG(Joint Photographic Expert Group)标准[1]。
JPEG标准在较低的计算
复杂度下,能提供较高的压缩比与保真度。
JPEG压缩技术用有损压缩方式去除冗
余的图像数据,在获得高的压缩率的同时能展现十分丰富生动的图像,换句话说,就是可以用最少的磁盘空间得到较好的图像品质。
而且 JPEG是一种很灵活的格式,具有调节图像质量的功能,允许用不同的压缩比例对文件进行压缩,支持多
种压缩级别,压缩比率通常在10:1到40:1之间,压缩比越大,品质就越低;
相反地,压缩比越小,品质就越好。
JPEG中有四种工作模式,包括顺序型DCT方式、渐进型DCT方式、
无失真方式、分层方式。
其中最常用的是离散余弦变换(DCT)的顺序型模式,又
称为基本系统(Baseline System)[2-3]。
下面针对这种模式来进行分析。
在DCT顺序工作模式中进行JPEG编码时,对原始图像的每一个分量
首先分割成互不重叠的8×8像素块,然后对每个像素块的编码过程可分为二维DCT变换,量化,熵编码三个阶段。
3.1二维离散余弦变换(DCT)
因为DCT算法输出图像的视觉效果相当好,通过它压缩后图像与原
图像的视觉效果几乎一样,所以本文重点讨论DCT算法。
根据图像信号的特点,对图像块进行二维DCT变换可以消除像素间
的相关性。
自然图像的像素块经过DCT变换后,图像信号的能量主要集中到块的
左上角。
即图像的低频成分中。
在编码器中,8×8像素取样经过FDCT(正向离散余弦变换)成为8×8
的DCT系数阵列。
这些系数经过8×8的量化矩阵量化后,再经过系数到代码的
转换成为一系列信息保持转换的代码。
在解码器中,那些DCT系数经过与和编码
器同级别的反量化,再经过IDCT(反离散余弦变化)将8×8的DCT阵列转换成
8×8的像素取样值[4]。
3.2量化
DCT变换后得到的系数矩阵中包括左上角的一个直流(DC)系数与
63个交流(AC)系数,从左到右,水平频率增高,从上到下竖直频率增高。
接着
对DCT系数量化,再用Z(Zig_Zag)字形扫描变换系数矩阵转换成一维数列。
在JPEG算法中,对于8×8的色度块和亮度块,分别给出了推荐使用的量化表,这
两个量化表是在大量实验的基础上,并结合人眼的视觉特性获得的。
现给出如下,其中,Q1为亮度量化表,Q2为色度量化表。
Q1 =[ 16 11 10 16 24 40 51 61
12 12 14 19 26 58 60 55
14 13 16 24 40 57 69 56
14 17 22 29 51 87 80 62
18 22 37 56 68 109 103 77
24 35 55 64 81 104 113 92
49 64 78 87 103 121 120 101
72 92 95 98 112 100 103 99 ]
Q2=[ 17 18 24 47 99 99 99 99
18 21 26 66 99 99 99 99
24 26 56 99 99 99 99 99
47 66 99 99 99 99 99 99
99 99 99 99 99 99 99 99
99 99 99 99 99 99 99 99
99 99 99 99 99 99 99 99
99 99 99 99 99 99 99 99]
3.3编解码过程
在JPEG中,对直流(DC)系数使用差分编码,即对同一分量内相邻块的DC系数之差做Huffman编码。
对于交流(AC)系数,首先进行游程编码,然后再进行Huffman编码会有效的压缩数据量。
编码过程中使用了JPEG对亮度处理提供的默认的编码表和证明过的量化矩阵。
在解码过程中,由于一个Huffman编码的二值序列具有瞬时性并且其解码具有唯一性,所以用查表方式就可以实现的Huffman解码,然后进行反Zig_Zag扫描,反量化及反DCT变换,重建图像。
过程中采用与编码时相同的量化表和熵编码表。
4程序说明
4.1程序使用说明
本程序通过matlab应用JPEG基本标准实现对256×256的灰度图像进行压
缩与重构。
编码:从encode.m中读入待压缩图像,运行程序后其编码结果分为AC编码
结果跟DC编码结果分别存储于acarr跟dcarr中,同时计算出压缩率跟压缩比。
解码:从decode.m中读入编码结果,运行程序后还原出图像。
同时计算出
均方误差跟信噪比等性能参数。
注:需先运行编码程序得到编码序列后再运行解码程序。
4.2编解码过程
编码过程:
包括三个连续的步骤:DCT计算,量化以及变长编码分配。
首先将图片按8*8分成块,分别进行二维离散余弦变换,消除图像块各像素
在空间域的相关性;然后将变换后的图像块根据公式x=round(x/q)量化,其中q
为量化矩阵,通过量化降低DCT系数的精度来进一步实现数据压缩。
量化后将各
值通过Zig_Zag扫描形成一个量化系数的一维序列,将此一维序列根据递增的空
间频率定性地进行排列,并根据重排得出的零的长扫描段进行变长编码。
程序中
对DC系数和非零的AC系数分别进行编码,使用了JPEG对亮度处理提供的默认
的编码表和证明过的量化矩阵。
解码过程:
一个霍夫曼编码的二值序列具有瞬时性并且其解码具有唯一性,所以用查表
方式就可以实现霍夫曼的解码,然后进行反Zig_Zag扫描,反量化及反DCT变换,重建图像。
过程中采用与编码时相同的量化表和熵编码表。
4.3性能分析
程序对
256×256的灰度
图像进行处理,
压缩性能随图片
的灰度分布有较大关系,压缩比在10:1到40:1之间。
能够较好的实现图像重建。
5总结
静态图像的数字压缩编码JPEG是多种编码方法的综合,适用范围广,效率高,易于实现。
并且可以通过很多种应用平台进行引用,实现对静止图像的数据
压缩以达到高效存储、处理图像数据的目的。
在matlab中,通过编码解码的程序,实现对静态图像的压缩,并且可以计算压缩率和压缩比,以及均方差和峰值
信噪比,实现对压缩性能的分析。