基于JPEG标准的图像压缩DCT变换

  • 格式:pdf
  • 大小:240.42 KB
  • 文档页数:4

2008牟gll期

中图分类号:TN919.8文献标识码:A文章编号:1009—2552(2008)11—0118一03

基于JPEG标准的图像压缩DCT变换

郑美芳,高晓蓉,王黎,王泽勇,赵全轲

(西南交通大学理学院,成都610031)

摘要:图像DCT变换是图像压缩的一项重要技术,如何准确、快速地进行图像压缩一直是国内外研究的热点。现研究了两种二维离散余弦变换(DCI.)的方法。在DCT算法结构上利用了变

换的可分离性和行列的可分解性,并采用行列分解的方法将二维DCT转换为2个串行的一维DCT实现。关键词:二维DCT变换;JPEG;图像压缩

TheDCTofimagecompressionbasedonJPEG

ZHENGMei-fang,GAOXiao-rong,WANGLi,WANGZe—yong,ZHAOQuan-ke

(conegeofSdenee,SouthwestJiaotongUniversity,Chen#u610031,China)

Abstract:TheimageDCTtransformtechniqueisallimportanttechniqueinthefieMofimagecompression.Howtocompresstheimageaccuratelyandfasthasbeenamsearehfocusbothathomeandabroadallthetime.

Inthispaper。twomethodswhichareusedtoachievetwo-dimensionaldiscretecosinetransform(Dcr)have

beenstudied.Two-dimensionalDCTisconvertedtotwoserialone-dimensionalI)CTbyusjllgseparabifityoftransformandresolvabilityofrow-cohlnln.Keywords:2-DDCTtransform;JPEG;imagecompression

0引言

在信息世界迅猛发展的今天,人们对计算机实

时处理图像信息的要求越来越高。如何在保证图像质量的前提下,同时兼顾实时性和高效性成了一个

值得关注的问题。于是,对图像信息进行一定的压缩处理成为了一个不可或缺的环节。图像压缩是关

于用最少的数据量来表示尽可能多的原图像的信息的一个过程。

在有关图像压缩的众多正交变换中,离散余弦变换(DOT)是十分有效的一种,其性能极为接近最佳的K-L变换。通过采用行列分解方法,人们只需使用少量的乘法就能完成二维离散余弦变换。正因

为如此,DCT变换被JPEG,H.261,H.263,H.264,MPEG-I,MPEG-2,MPEG-4等众多标准广泛采用。

1DCT变换原理

二维DCT通常是利用变换的可分离性和可分解性,把问题变为一维DCT序列,即行一列方法来实现的。一118一假设像素块的大小为N×N,菇(i,_『)为输入像素点阵数据,则其二维DCT变换如式(1):

z(…)=与c(n)c(y)善N-I蚤N-I戈(f,∥cos‘[学】cos‘[学】

——芴r—J—■『J

其中,口,I,=0,1,…,N一1。

m∽㈤=辟1Z兰

将上式改为式(2)所示:

踟∽=属m)蓑蝙m).墓础∽螂【警】.

∑石(i,mos【盟南产JJ.

,=…cos【学】

(2)

收稿13期:2008—04—10作者简介:郑美芳(1985一)。女.2007年毕业于西南交通大学,现为

西南交通大学硕士研究生。研究方向为图像处理。

 万方数据令:

m∽=扁m营㈦.『)c∞【学】

(3)

踟㈡=扁c㈤蓑‰)cos‘[学】

(4)—1『JLq,

可以看出式(3),(4)都是一维DCT变换。所以二维DCT可以分解成串联的2次一维DCT变换。实现框图如图1所示。

由此将二维DCT实现转换为两个一维DCT变换,所以快速实现二维DCT变换的关键就是找到一

维DCT变换的快速算法…。

2两种一维DCT变换快速实现方法

的原理

2.1基于DCT矩阵对称性的快速算法对于矩阵形式的一维DCT变换Y=CXr,以8点输人为例,其展开式如式(5)所示:曩金—。{熏蚕薹雯丑}=。[二垂至≤]=≥[二銮垂亘垂三]=爿二至三亘三]=>l二三薹薹垂夏l}=。{蛩曩密

图1二维DCT变换行列分解法的实现框图

由式(5)可以看出,一维DCT变换的系数矩阵具有奇偶对称性,即:偶数行奇对称,奇数行偶对称。

Xko—Xk7(5)

所以基于DCT矩阵对称性快速算法的一维DCT变换的实现框图如图2所示。

循王f移位寄存器SYk0一Yk7

图21D-DCT模块实现框图从实现框图中可以看出一维DCT矩阵的输入都相对比较简单‘纠。输出关系,同时可以看出要实现一个N=8的一维2.2基于DCT矩阵分解的快速算法DCT变换,共需要计算32次乘法,在原来的基础上通过对一维DCT系数矩阵进行矩阵变换,分解

减少了一半。且此种算法的规律性很强,编程处理与化简,从而使输出与输入之间的乘法项减少,以达

一119一知

幻厶凸D

D&&D一

一岛D&D

D以一

一函&良D

D白一

一函D

G&凸一

一西D如D

D一

一函D西D

D西D

D一

一D

DD

D一

一西D如D

D西D如n托

托儿儿儿"

 万方数据到减少乘法次数的目的。由于化简过程十分复杂,

数学表达式较长,所以本论文在此就不予列出,而是

直接给出了最后的信号流图。基于矩阵分解的Dcr变换的一维DCT变换

.(N=8时)的信号流图如图3所示。

图3N=8时的信号流图

从信号流图中看出一维DCT矩阵的输入输出

关系,同时可以看出要实现一个N=8的一维DCT变换,共需要计算12次乘法,可见此种算法的乘法

的次数是使用较少的[3】。

3二维DCT变换具体模块的实现

根据上述二维DCT算法可以设计出图4所示

的二维DCT的处理器结构。蚣压到处--理.维单.DC元TH互引篙f

=二二:—T一罨酒—[三引处--理维单I)C元T}.—[三三壹叫

图4二维DCT处理器结构图

图中主要由串并转换电路、一维DCT变换单元、转置RAM和并串转换电路组成。所以,二维

DCT变换的实现可划分为以上四个模块,下面具体描述其中的一些模块【4】。

3.1串并转换模块从像素数据输入模块开始,每个时钟上升沿,寄

存器将8位的像素数据单元移入下一个寄存器,在

模8计数器的控制下,到第8个时钟,把寄存器中的8个数据同时打入相对应的像素数据存储器中,数

据将在存储器中保持8个时钟,作为下一个模块的数据处理的来源,同时,像素寄存器继续接受新的输

入数据。3.2一维DCT变换模块不同的变换方法有不同的实现模块,对于本论文中提出的第一种基于矩阵对称性的方法,该模块主要由加法减法控制模块和乘法累加模块构成。对一120一于第二种基于矩阵分解的方法,该模块是由固定的

乘加公式构成,公司的数学表达式由信号流图给出。3。3转置RAM模块

顺序存储64个经一维DCT变换的数值。再按转置的顺序依次读出。例如当储存完一个子块的数

据(64个)后,开始对数据进行转置输出,即输出第1个,第9个,第17个,…第57个,第2个…。

3.4二维DCT变化的实现对于1个8X8的数据块来说,共有64个数据,他们以串行的方式输入,可以把这64个数据分组,

每行数据为一组,共8组。当第一组8个数据输入后,经串并转换电路将其转换成并行数据,然后经一维DCT变换电路完成一行数据的DCT变换,然后经并串转换电路后转换成串行数据依次存入转置RAM中。随着64个数据的不断输入,当所有的8

行数据都完成一维DCT变换并存储在转置RAM后,再将经过转置的8组数据从转置RAM中取出,

依次经串并转换送人后一个一维DCT变换电路按

列进行一维DCT变换。完成一列的一维Dcr变换后,再经并串转换电路,转换成串行数据输出。当所

有8列数据都完成转换后,就完成了一个8X8数据

块的二维DCT变换bJ。

4结束语

对DCT变换算法的实现进行了分析,并提出了两种一维DCT变换的快速实现方法。其中第一种是基于DCT矩阵系数的对称性,使乘法次数减少一半;第二种是基于DCT矩阵的分解,使乘法次数大

大的减少。图像DCT变换是目前最佳的图像变换,它有很多优点。Dcr是正交变换,它可以将8*8图像的空间表达式转换为频率域,只需要用少量的数

据点表示图像;DCT产生的系数很容易被量化,因此能获得好的块压缩;DCT算法的性能很好,它有快速算法,因此它在软件和硬件中都容易实现;本文的两

种DCT变换快速实现方法都可以作为一个模块,灵

活而方便地应用于JPEG图像处理芯片的设计中。参考文献:[1]李莉。等.基于DA算法的二维DCT的FPGA实现[j].现代电子技术。2006.27(10):44—46.[2]靳刚.MPEC,4编码器二维Dcr变换的FPGA实现及优化[J].电路与系统学报,2005,10(4):13l一133.[3]赵耀,季文铎,袁保宗.一种基于矩阵分解的DCT快速算法[J].北方交通大学学报。1994,18(2):183一l褐.[4】沈洁,杜宇人,殷玲玲,等.基于DCT变换的图像压缩技术研究[J].信息技术,2006,25(io):133—134.[51李剑,季晓勇.二维离散余弦变换的FPGA实现[J】.微处理机,2006.18(5):86一船.

责任编辑:张荣香

 万方数据