文档库 最新最全的文档下载
当前位置:文档库 › 基于DCT的图像压缩及Matlab实现(3)

基于DCT的图像压缩及Matlab实现(3)

基于DCT的图像压缩及Matlab实现

吕世良1

曲仕敬2

(1.鲁东大学数学与信息学院

山东

烟台

264025;2.鲁东大学土木工程学院

山东

烟台

264025)

【摘要】本文介绍了基于DCT的图像压缩编码技术,并给出了具体的实现方法和步骤,既保证具有较高的压缩比,又保证了较好的图像质量。

关键词】离散余弦变换(DCT);图像压缩;MatlabTheRealizationofMatlabbyImageCodingCompressionAlgorithmonDCT

LvShiLiang1QuShiJing2

(1.CollegeofMathematicsandInformationalLudongUniversity;2.CollegeofCivilEngineering,LudongUniversity;Yantai,Shandong,

264025)

【Abstract】ThispaperintroducesthecodingofimagebasedonDCT,therefore,showsthedetailsofrealization.Itprovideshighcompressibilityandhighquality.

【Keywords】discretecosinetransform(DCT);imagecompression;Matlab

1.引言

图像数据的一个显著特点就是信息量大。组成图像的各像素之

间,无论是在行方向还是在列方向上都存在着一定的相关性。应用某种编码方法提取或者减少这种相关性,就可以达到压缩数据的目的。从信息论观点看,描述图像信源的数据是由有效信息量和冗余量两部分组成,去除冗余量能够节省图像存储和传输中的开销,同时又不损

害图像信源的有效信息量。保证重构图像的质量。所谓的图像压缩编

码技术就是对要处理的图像源数据按一定的规则进行变换和组合,从

而达到以尽可能少的代码(符号)来表示尽可能多的数据信息,目前的

编码技术很多,其中应用最广泛的方法之一就是基于离散余弦(DCT)的混合编码技术。

DCT变换是最小均方误差条件得出的较优的正交变换,已经成为

许多图像编码国际标准DCT变幻的数字图像压缩技术中的核心。DCT

的变换和是余弦寒暑,计算速度快,有利于图像压缩和其他处理。

2.基于DCT的图像压缩编码理论算法

2.1基于DCT的图像压缩编码算法表述在编码过程中,首先将输入图像分解为8*8大小的数据块,然后用正向二维DCT把每个块砖变成64个DCT系数值,其中1个数值是直流(DC)稀疏,即8*8控与图像子块的平均值,其余的63个是交流(AC)稀疏,接下来对DCT系数进行量化,最后将变换得到的量化的DCT系数进行解码,然后求逆量化把DCT系数转化为8*8样本橡块(使用二维DCT反变换),最后将操作完成后的块组合成一个单一的图像,这样就完成了图像的压缩和解压缩过程。

2.2离散余弦变换(DCT)概念

2.2.1一维离散余弦正反变换的公式

F(k)=2N-1

n=0!f(n)cos

!(2n+1)k2N

n,k=0,1,2,!,N-1

f(n)=1

NN-1

n=0!F(k)cos!(2n+1)k2N

n,k=0,1,2,!,N-1

2.2.2二维离散余弦正反变换的公式正变换公式:

F(u,")=c(u)c(")M-1x=0!M-1

y=0!f(x,y)cos

!(2x+1)u2Mcos

!(2y+1)"

2N

其中:u=0.1,,!,M-1;"=0,1,!,M-1

c(u)=

,"u=02

,"u=1,2,!,N-#1c(u)=

,""=02

"

"=1,2,!,M-#1

反变换公式:

f(x,y)=M-1x=0

!N-1

"=0

!c(u)c(")F(u,")cos

!(2x+1)u2Mcos!(2y+1)"

2N

2.2.3二维离散余弦变换的简化

在二维离散余弦变换中,x,y为

空间与采样值,通常数字图像用像素方阵表示,即M=N,在这种情况下,二维离散余弦的正反变换可简化为:

F(u,")=2NM-1x=0!N-1

y=0!

c(u)c(")f(x,")cos!(2x+1)u2Mcos!(2y+1)"

2N

其中:c(u)c(")=12,"u=0或"=0

1,u,"=1,2,!,N-#

在Matlab中,c(u)c(")cos!(2x+1)u2Mcos!(2y+1)"2N

称为离散余弦变

换的基础函数,这样DCT的系数可以看作是每个基础函数的加权。3.DCT系数的量化

系数量化是一个十分重要的过程,是造成DCT编解码信息损失

(或失真)的根源。在JPEG压缩算法中采用均匀量化器,量化定义可

以表述为:对64个DCT系数除以其量化步长,四舍五入取整,即

Q(u,v)=IntegerRound(F(u,v)/S(u,v))

式中,Q(u,v)为量化的系数幅度,S(u,v)为量化步长,它是量化表的元素,通常随DCT系数的位置和彩色分量的不同而去不同的值,量化表的尺寸为8*8与64个DCT系数———对应。量化的作用是在一定的主观保真度图像质量的前提下,丢掉那些对视觉影响不大的信息,已获得较高的压缩比,由于DCT系数包含了空间频率信息,可充分利用人眼对不同频率敏感程度不同这一特性来选择量化表中的元素值的大小,对视觉重要的系数采用细量化(量化步长较小),如低频系数被细量化,对高频系数采用粗量化(量化步长较大)。

量化的目的是减小非“0”系数的幅度以及增加“0”

之系数的数目,一般情况下都使用均匀量化器进行量化,两化步长是按照系数所在的位置和每种颜色分量的色调值来确定,因为人眼对亮度信号比对色差信号更敏感,因此使用了两种量化表,一个是亮度量化表,一个是色度量化表。此外,由于人眼对低频分量的图像比对高频分量的图像个敏感,因此量化表中的左上角的量化步长一般要比右下角的量化步长小,量化机要使得大部分数据得以压缩,同时又要保证通过量化和编码之后能输出一个与信道传输速率匹配的比特流。

4.Matlab程序实现

4.1Matlab的功能与特点

Matalab有主包和功能各异的工具箱组

成,其基本数据结构是矩阵。它具有非常强大的计算功能,已成为世界上应用最广泛的工程计算应用软件之一。它的主要功能如下:

1)数值计算功能Matlab出色的数值计算功能是使之优于其它数学应用软件的决定性因素。

2)符号计算功能Matlab能够解决在数学科学、

应用科学和工程计算领域遇到的符号计算问题。

3)数据分析和可视功能Matlab将科学计算和工程应用中的数据以图像的方式显示出来,使数据间的关系清晰明了。

4)SIMULINK动态仿真功能Matlab允许用户在屏幕上绘制框图来模拟一个系统,并能动态的控制该系统。

5)文字处理功能Matlab能够与文字处理系统MicrosoftWord集成

401

科一个整体。

其主要特点为:

1)功能强大:含有40多个应用于不同领域的工具箱。

2)界面友好:其指令表达式与习惯上的数学表达式非常接近。3)扩展性强:用户可自由的开发自己的应用程序。

4.2Matlab的实现利用离散余弦变换(DCT)进行图像压缩,首先要将输入的图像分解成8*8的块,然后对每个块进行二维离散变换,最后将变换得到的DCT系数进行编码和传送,解码时对每个块进行二维DCT反变换。最后再将反变换后的块组合一幅图像,对于通常的图像来说,大多数的DCT系数的值非常接近于0,如果舍弃这些接近于0的值,在重构图像时并不会带来图像画面质量的显著下降。所以,利用DCT进行图像压缩可以节约大量的存储空间。压缩应该在最合理的近似元图像的情况下使用最少的系数。按照以上的方法,将一幅图像分成8*8的块进行压缩。其实现方法如下:

I=imread('\lena.bmp');%读取图像

I=double(I)/255;T=dctmtx(8);

B=blkproc(I,[88],'P1*x*P2',T,T');mask=[11110000

11100000110000001000000000000000000000000000000000000000];

B2=blkproc(B,[88],'P1.*x',mask);I2=blkproc(B2,[88],'P1*x*P2',T',T);figure;

subplot(2,1,1),imshow(I);subplot(2,1,2),imshow(I2);以’lena’

图像为例实验,结果如图1所示。图1压缩前后的图像(左边为原图像,右边为压缩图像)

5.结论

数据压缩技术的优劣主要是由压缩所能达到的压缩倍数、从压缩后的数据所能恢复的图像的质量和算法的复杂度、解码的速度等方面来衡量的。基于DCT的混合编码技术对于彩色图像的压缩倍数可以达到几十倍甚至上百倍,而且重建的图像又具有较高的质量,因此得到广泛的应用。

用Matlab来实现离散余弦变换的图像压缩,具有方法简单、

速度快、误差小的优点,免去了大量的矩阵计算,大大提高了图像压缩的效

率和精度。

参考文献】[1]许波等编著,Matlab工程数学应用,北京,清华大学出版社,2000.

[2]陈桂明等编著,应用Matlab语言处理数字信号与数字图像,北京,科学出版社,2000.

[3]樊启斌,Matlab语言的功能、

特点及其应用,测绘信息与工程,2000.[4]刘富强,钱建生,曹国清,多媒体图像技术及应用,北京,人民邮电出版社,

2000,19-20.

[责任编辑:翟成梁

(上接第403页)

(if(and

(/=lno"BYLAYER")(/=lno"BYBLOCK")(/=lno"CONTINUOUS"))

(if(null(tblsearch"ltype"lno))

(command"linetype""load"lno"DLline.lin"""));endif);endprogn

(setvar"celtype"lno));endmain

(defunc:CDMGD()

(menucmd"I=DLtype.DMGD")(menucmd"I=*"));enddefun

(defunc:CDLFH()

(menucmd"I=DLtype.DLFH")(menucmd"I=*")

编制完成后,把“DLtype”

目录下所有文件拷贝到AutoCAD安装目录下的“support”目录中,在AutoCAD中运行menuload命令加载“电力图形库”菜单。

5.在电厂测绘中的应用

编制开发完电力图形库后,在高井热电厂扩建工程中进行了应用。

5.1工程概况

大唐高井热电厂为上世纪五十年代末兴建的老电

厂,经多次扩建改造,现有机组6X10MW;其具体位于北京市石景山区

高井村南,地处市区,周围工厂、

居民区稠密。本次测量任务内容为:(1)测量高井热电厂主厂房扩建端西北、

近期收购的北京现代建材公司土地约0.8㎞2(具体位置由电厂人员现场指定);测量本收购范

围内全部地上地下建(构)筑物、

沟道以及大于200mm直径管线,要求近期完成测量;并标注其主要建筑物室内地平、主要道路路面高程;

(2)测量高井热电厂范围内全部地上地下建(构)筑物、

沟道以及大于200mm直径管线;并标注其主要建筑物室内地平、

主要道路路面高程;

(3)依据电厂及设计人员现场踏勘时的要求,要求测量电厂总平面图时,电厂南围墙往南多测量50m宽带状;另外,为将来电厂出线考虑,要求新增测量电厂外西部永定河边双回220kV的带状图,具体测量位置及范围由电厂人员现场指定。

5.2应用效果在电厂内业计算机成图过程中,把测点数据导入

AutoCAD中,然后点击“

菜单栏”中的“电力图形库”菜单,出现“电力线形库”和“电力符号库”下拉菜单,根据需要点击“电力线形库”选取所

需的线形,点击“

确定”按钮即可加载该线形进行绘图,点击“电力符号库”选取所需的电力符号,点击“确定”按钮即可插入该电力符号。运用该方式进行内业成图,界面直观明了,操作简单,避免了大量的重复劳动,提高了工作效率,减轻了工作人员的作业强度,设计的测量成果满足设计专业的要求。

6.结语

通过以上对AutoCAD菜单的定制,可以方便的管理各种电力专

用线形和电力图例符号,可以在AutoCAD中方便地画出电力勘测中常用的图例符号并加载各种电力专用线形绘制管线,然后形成一个完整的电力测绘工程图,极大地提高了作业效率、减轻了作业强度,具备一定的经济和社会效益。【

参考文献】[1]郭启全.AutoCAD2002应用与开发教程[M].机械工业出版社,2003.

[2]DL/T5156.1~5156.5—2002,电力工程勘测制图[S].

[3]ShamTickoo.AutoCAD2000高级用户指南:设计、定制、开发[M].机械工业出版社,2000.

作者简介:臧永强(1978—),山东省淄博人,工程师,硕士。冯立友(1970—),河北省人,高级工程师,学士。

[责任编辑:翟成梁]

402

相关文档
相关文档 最新文档