第33卷 第5期 计算机工程 2007年3月 VoL33 No.5 Computer Engineering March 2007 ・多媒体技术及应用・ 文章编号:1ooo_ 428(2oo7)o5—02o5—03 文献标识码:A 中图分类号:TP37 JPEG2000格式图像压缩算法的研究 尹平,汪宇飞,胡迎新 (西北工业大学软件与微电子学院,西安71O065) 摘要:论述了JPEG2000图像压缩的Mallat算法,对算法中滤波器的选择以及边界处理问题作了探讨并研究了解决方案。JPEG算法压 缩产生了明显的方块效应,而该文算法有很好的效果,在实验中验证了算法。 关健词:小波;图像压缩;Mallat算法;滤波器;边界处理 Research 0n Compression Arithmetic in JPEG2000 YIN Ping,WANGYufei,HUYingxin (College of Software&Micro—electronics Nothwest Polytechnical University,Xi’an 7 10065) [Abstraetl The paper presents the algorithm of the compression of image JPEG2000 It dissertates the problems such as the selection of the iflters and the boundary problem in the algorithm and then researches the methods of the solution.The algorithm is demonstrated in the experiment. [Key wordsl Wavelet;Image compression;Mallat algorithm;Filter;Boundary processing JPEG(Joint Photographic Experts Groups)是一个在国际标 编码系统。通常也只能对最低频带的成分适用于分割滤波器 准组织下从事静态图像压缩标准制定的委员会。它制定出了 的方法。此类方法包括倍频分解、树形结构分解和Mallat分 第J套国际静态图像压缩标准——JPEG。JPEG突出的问题 解。另外基于表示此类方法的子带分裂次数的参数称为分解 是在低化比特率编码时块状编码失真明显。这是因为将图像 层次。 信号从空间域向频率域变换后进行有效压缩所采用的离散余 弦变换,将图像划分成8X8的方块域,各块内产生的编码失 真在块边缘形成了不连续状况的缘故。作为解决此问题的方 法,提出了基于数字滤波器的离散小波变换。于是,自l997 年起,开始了静止图像新压缩方式JPEG2000的开发工作。 1 JPEG2000图像压缩原理及其系统 为了有效地压缩图像信号,必须着眼于其信号含有的冗 余度,用某种方法变换成冗余度更小的信号。根据着眼于怎样 固1基于对分滤波器的信号分析/合成系统 的冗余度,有许多种不同的信号变换方法。例如,作为一种 图2所示是分解层次为2对二维空间的子带分裂例子。 利用频率成分不平衡的方法,JPEG采用了DCT(Discrete Lev是表示子带分解层次的索引,LL、HL、LH、HH符号是 Cosine Transform),以余弦函数对信号做频率分析。在通常 各子带的空问频率,把lev和LL、HL、LH、HH符号组合起 的图像信号中,大部分信号集中于频率最低成分(直流成分), 来表示被分裂的各子带信号。例如,子带0LL对应于原始图 频率越高信号强度衰减越多,DCT变换就是利用了这种性质 像,在lev>l的情况下,对于子带(1ev—1)LL适合采用按先垂 压缩数据量的一种手段。小波变换也与DCT一样,虽然也是 直方向后水平方向的顺序进行滤波处理。此时,由于可对垂 同样利用了频率成分的不平衡度,但是通过在空间反复进行 直方向和水平方向分别选择低通滤波器和高通滤波器,因此 变换分辨率处理,能易于生成多种空间分辨率图像(分辨率可 能生成下列4种子带: 伸缩性),这一点却与DCT大不相同,是其一大特征。而且 (1)子带levLL:垂直方向和水平方向都进行低通滤波, 在压缩特性方面,尤其是在低比特率方面,小波变换比DCT 为2:l抽取的信号。 优越得多,这一点正是被JPEG2000所采用的理由。 (2)子带levHL:垂直方向进行低通滤波,水平方向进行 JPEG2000的核心编码系统中所采用的小波变换,其基本 高通滤波,为2:l抽取的信号。 结构依据了以相等带宽均等分割频率轴的子带编码…。图l (3)子带levLH:垂直方向进行高通滤波,水平方向进行 所示是基于最单纯的对分子带滤波器的信号分析/合成系统。 低通滤波,为2:1抽取的信号。 这里, (:),G (z)为低通滤波器; ,(=),G,(。)为高通滤波器, (4)子带levHH:垂直方向和水平方向都进行高通滤波, 2和t 2分别为2:l抽取(down sampling)和l:2内插(插入0 为2:l抽取的信号。 值)。如果分析滤波器还继续适用于如图l所示的分析滤波器 的输出,就能对更窄频带的信号一直分割下去,但因为图像 作者简介:尹平(1983一),男,硕士生,主研方向:信号与图像压 信号的主要信号分量都集中于含有直流成分的低频部分,所 缩和传输芯片技术;汪宇飞、胡迎新,硕士生 以通常无法详细地分析高频。可以只认为是JPEG2000核心 收箍日期:2006—04—20 E-mail:xibu_cowboy@hotmail.com 205— 维普资讯 http://www.cqvip.com
3LLIl 3HL 2HL 3LH ll 3HH lHL 2LH 2HH lLH lHH 图2 3级小波变换 为应用小波分析进行图像压缩的一般过程是: (1)/b波变换去相关。这一步骤将图像信号由空域变换到小波域, 表现为将图像像素矩阵变换为小波变换系数矩阵。由于小波变换是 一种正交(双正交)变换,因此这一步骤解除了原始图像中像素点间 的相关性,消除了图像信号在空域的冗余,并集中了能量,是以下 量化、编码的前提,是非常关键的一步。 (2)小波域系数的量化。图像经过小波变换后,并没有被压缩, 所得到的系数只是具有一定的规律性,需要经过量化编码才能得到 真正的压缩。量化一般会导致更多“0”系数出现,进一步使需要表 示的数据量减少,为高效编码提供便利。目前,人们使用的量化方 法主要有标量量化、矢量量化和零树量化等。 (3)对量化后系数的熵编码。方法有零树编码、算术编码、游程 编码、哈夫曼(Huffman)编码、LZW编码等。 小波分析图像压缩的一般系统构成图像压缩数据可以存 储于存储介质,也可以经信道传输,当需要查看图像内容时 还需重建图像。重建图像的过程为生成压缩数据的逆过程, 即对压缩数据先进行解码,再进行逆量化,最后进行小波逆 变换,从而还原(无损)或近似还原(有损)出原始图像数据。其 过程如图3所示。 图3小波分析图像压缩的一般系统构成 2小波分析理论及Mallat算法 小波变换的特性与所选择的小波密切相关。人们可以选 择使用现有的小波,也可根据实际需要自己构造小波。实际 上,小波的构造是人们研究的一个热点。有许多研究者在这 方面做出了贡献,其中Mallat提出了多分辨分析的概念,提 供了构造正交小波基的一般方法。更重要的是,Mallat以多 分辨分析为基础,提出了著名的快速小波算法…一Mallat 算法(FwT),这是小波理论突破性的成果,其作用和地位相 当于Fourier分析中的FFT。Mallat算法使得小波变换从理 论研究走向广阔的应用空间。多分辨分析和Mallat算法有一 维的,也有二维、三维的。一维多分辨分析和一维Mallat算 法主要是用于一维信号的处理,对于图像等二维信号,需要 用到二维多分辨分析和二维Mallat算法。根据多分辨分析中 尺度函数的可分离性,二维多分辨分析又可分为可分离的多 分辨分析和不可分离的多分辨分析。不可分离的多分辨分析 比较复杂,这里只考虑可分离的多分辨分析。分解的一般步 骤为: (1)分别用低通滤波器{h}和高通滤波器{g}对输入矩阵 {G,n,m}的每一行做滤波,并做隔点抽样,每两列中抽取一 列保留,所得两个半行可组成一个整行,保持数据量不变; (2)分别用低通滤波器{h}和高通滤波器{g}对行分解所 得到的结果的每一列做隔点抽样,每两行中抽取一行保留, 这样所得两个半列又可组成一个整列,仍保持数据量不变。 通过这样的分解,可得4个矩阵{C , ,m}、{d , ,m}、 {d .+,, ,m}、{d , ,m}。这4个矩阵组成{c『,n,m}的小 波变换域系数矩阵,-大小与输入矩阵相同。这是一级小波变 换。重构则是上面的逆过程,对应小波逆变换。利用上面的 算法再对{c『,n,m}进行分解,是又一级小波变换。对一个原 始图像{Co,n,m}的3级小波变换如图2所示 l。 3小波变换的编程实现及相关问题的研究 利用前面论述的Mallat算法,可以容易地编程实现对数 字图像{x(n,m)}的小波变换。图像的小波塔式分解由两大步 组成:(1)令cI),n,m=x(n,m);(2) ̄tJ用前面描述的算法对 c(】,n,m进行分解。变换的级数,即分解的层数M可以根据 实际情况而定,一般为3级左右。图4(a)是具体图像的3级 小波变换效果图,正与图2相对应。图4(b) ̄tJ是原图像。 ■ (a)图像的3级小披变换 (b)原图像 图4验证图像 图像的这种小波分解又叫图像的多分辨率分解。图像经 过M级小波变换以后,得到一系子图像{C ,m}、 {d‘,, ,m}、{d ., ,m}、{d , ,m},(j=1,2,3…、,M)。 {C , ,m}是原图像的一个近似,{d ,, ,m}、 {d , ,m}、{d ., ,m J,(j=1,2,3….,M),则是图像在不同 方向、不同分辨率下的细节。如果原图像有 个像素,则子 图像{C , ,m}有(2一Ⅳ) 个像素,而子图像{d ., ,m}、 {d , ,m}、{d ., ,m},(j=1,2,3….,M)分别有(2 Ⅳ) 个 像素,分解后总的像素数Ⅳ 为 Ⅳ =cz一 Ⅳ, +sf善 一-,]Ⅳ2=Ⅳ2 可见分解后总的像素数不变。因为系列子图像是通过不 同方向的高通或低通滤波得到的,所以反映了原图像中的不 同内容。其中{ ,n,m}对应原图像中的低频;{d。,n,m}对应 垂直方向的高频,水平边缘;{d. ,n,m}对应水平方向的高频, 垂直边缘;而{d ,n,m}对应水平和垂直两个方向的高频。这 种分解符合人的视觉特性,因为人眼对低频部分,水平边缘 和垂直边缘比较敏感而对高频部分不敏感。在进行图像编码 时,要充分利用小波变换的这一特性。 在对图像实施小波变换的编程时,一些问题是必须注意 的,比如小波基或相应的小波滤波器的获得与选择、边界处 理、彩色图像处理等问题,以下来逐一研究解决。 3.1小波滤波器的获得与选择 由前面小波的定义可知,每一个小波一般对应一个滤波 维普资讯 http://www.cqvip.com
器组,即小波滤波器组。实际上,Mallat算法正是使用小波 (3)周期延拓 fs(n+Ⅳ1.一N n<0 (n):滤波器组来实现对处理信号的小波变换的。表1列出了一些 常用的小波及其对应的滤波器组,供读者参考。 表1 5/3可逆滤波器的分析靖与合成靖滤波器系数 分析端 合成端 I S(n).0 n<Ⅳ iis(n一~),N n<2N (4)镜像延拓(边界偶对称) f (一n—1),一N n<0 1 0 低通滤波器 hf)(f) 6/8 2/8 】,8 高通滤波器 h1(f) l 一l/2 低通滤波器 Pf)(f J l 】/2 高通滤波器 g1【f J 6/8 —2/8 一l/8 (H)={ (n),0 n<N { (2Ⅳ一n一】),N <2N (1) ll 2,2 (5)镜像延拓(边界奇对称) f (一n),一N+1≤f/<0 表1和表2归纳出5/3可逆滤波器和9/7不可逆滤波器的 分析端与合成端的滤波器系数 I。5/3可逆滤波器在分析端的 传输函数具体为 【1(:)=(一z!+2z一‘+6+2z‘一Z2)/81 (:):(一z +2一z‘)/2 I.(n):{l ( n),o n<N (2Ⅳ一n一2),~ n<2Ⅳ一l (2) 在小波变换的过程中,信号经高通和低通滤波器后分别 要经过2:1的亚抽样,信号的边界处理有如下准则:设将长 度为N的信号在边界处延至无穷远,那么边界处理保证完全 9/7不可逆滤波器在分析端的传输函数用表2所列分析 端滤波器h()( hI( )表示为 重构的条件是,经延展的信号滤波后的高通和低通子带均能 由N/2个采样所确定。据此可知,上述4种方法中,方法(1) 和方法(2)均不能满足要求。而虽然方法(3)也能够保证信号分 Ⅳ()(:)=∑h()( ): H I(:):∑hI( 表2 9/7不可逆滤波的分析靖与合成靖滤波器系数 1 O 解后的完全重构,但会在信号的边界处造成信号幅度的不连 续变化,对编码不利,因此在对图像编码的实际应用中,一 般采用方法(4)。式(1)和式(2)属于第(4)种 方法。当滤波器长度为偶数时,采用式(1) 的方式;当滤波器长度为奇数时,采用式 (2)的方式 』。 高通滤波器g (c】 0 602 949 0I8 236 357 9 —0 266 864ll 8 442 872 3 分析端 合成端 低通滤波器h (i) 0 602 949 0I8 236 357 9 1.1 0 266 864II 8 442 872 3 高通滤波器h (i) l JJ5 O87 052 456 994 —0 59l 27I 763 Il4 247 0 低通滤波器g (i) I JJ5 O87 052 456 994 0 59l 27l 763 Il4 247 0 2 2 .0 078 223 266 5289 878 5 —0 057 543 526 228 499 57 —0 057 543 526 228 499 57 —0 078 223 266 528 987 85 3 3 .0 0I6 864lI 8 442 874 95 0 09l 27I 763 Il4 249 48 4,4 0 026 748 757 410 809 76 0 09l 27l 763 II4 249 48 0 Ol6 864 l1 8 442 874 95 0 026 748 757 410 809 76 3.3对彩色图像的处理 任何实正交的小波对应的滤波器组均能实现图像的分解 与合成,但效果是有所不同的,有的甚至不能满足基本的要 求。对小波基的选择或等价地对QMF的选择显得非常重要。 在这方面,一般有以下几点需要考虑: (1)小波基的正则性阶数与图像数据压缩效果的关系有研究表 明,采用高正则度的小波滤波器对图像编码要比采用低的效果好…。 (2)待处理图像与小波基的相似性。 在灰度图像编码的基础上,对彩色图 像的编码进行了研究和实验。原彩色图像的每个像素(I )用 三基色值R(i )、G(Ij)、B(IJ)表示,可以提取R、G、B 3分 量分别进行小波变换编码,待解码后再合成彩色图像。这样 做的好处是实现起来简便。实际上,R、G、B 3分量之间也 存在着很大的相关性(频谱冗余),据此,先将彩色图像转换 成YUV方式表示。转换公式为 fy=().2990R+0.5870G+0 114B {U=一0.1480R一0 2890G+04370B (3)小波的紧支撑性和滤波器长度。小波滤波器长度长,能提高 压缩效率,但太长了会使计算量太1人,使压缩速度降低。这是个值 得斟酌的问题。 (4)小波变换的变换级数。对图像的分解,有3层的,也有5层、 6层的。对此也应综合考虑压缩效率与计算量或压缩速度的问题。 依笔者的经验,对图像的3级小波变换的综合效果是不错的。 IV=0.6150R一0.5150G一01000B 这里,Y分量的物理含义就是亮度,u和V分量代表 了色差信号。这不但在很大程度上消除了各分量间的相关性, 并且各分量又有了主次之分,其中Y分量是主要的,而u和 V分量较次要,这样可以只取u、V的一部分,如将u、V 分量按4:1抽样(在水平和垂直两个方向上进行二取一抽样) 的YUV411方式如图5所示,再对Y、u、V 3分量数据分别 进行小波变换编码,可以获得更好的压缩效果。译码后,通 3.2边界处理 由前面的讨论可知,Mallat算法实际上相当于利用一组 可完全重构滤波器对图像进行逐级地分解或合成,但是否真 的能完全重构,还要注意对于信号边界情况的处理。边界处 理是一个不容忽视的问题,在对图像信号的行与列进行变换 处理时都要涉及这个问题。一般而言,对于信号边界情况的 处理,就是要延展信号,使得信号的边界也能得到有效的滤 波处理,并使信号分解后能完全重构。其方法有以下4种: (1)零延拓;(2)重复廷拓;(3)周期延拓;(4)镜像延拓(包括偶 过下面的公式再转换得到(R,G,B)空问的重建图像: fR=1.0000Y一0.0000U+1 1398V JG=10000Y— 0.3938U一0.5809V .J LB=1.0000Y+2.0279U+o 0018V 对称和奇对称两种情况)。以行滤波为例,设某行的信号为 S(n),05nSN-I,,延拓后的信号为S(n): (1)零延拓 f s(n),0 n<N 一(b) (c) ‘ {0,其它 (2)重复延拓 f (O),一N≤n<0 (H)={ (n),0≤n<N ls(N—l】.一N≤n<2N 图5变换后的图像 (下转第210页) 207— 维普资讯 http://www.cqvip.com
码出来。P帧的重要性居次,因为后续视频帧将要以它作为 用缓冲区码率控制的系统有效解码率急剧下降,缓冲区溢出 参考帧进行解码,所以如果P帧丢失,后续视频帧将会解码 次数急剧增加,视频质量也越来越差。 失真或出错。 表2在服务器靖缓存40s视频后才开始由网络发送昀情形 例如假设一个视频序列为培lB2PlB3B4P2BsB6P3B7B8。如 缓冲区溢 网络传 有效解 主观感受 果Pl丢失,则Bl、B2以及Pl后面的视频帧都将失去正确的 出次数 输帧数 码帧数 参考帧进行解码,当然解码出来的帧会出现失真或错误。如 缓冲区码 O 7 3l9 7 3I9 流畅 率控制 果P2丢失,则B3、B4以及P2后面的视频帧都将失去正确的 无缓冲区 2 7 3f8 7 297 比较流畅 参考帧进行解码,当然解码出来的帧也会出现失真或错误。 码率控制 由这个例子也可看出,同样是P类帧,前面的P帧要比 表3在服务器靖缓存20s视频后才开始由网络发送昀情形 后面的P帧要重要,因为前面的P帧丢失后所波及的范围要 缓冲区溢 网络传 有效解 主观感受 比后面P帧所波及的范围要大。因为B帧不对其它帧形成参 出次数 输帧数 码帧数 缓冲区码 O 7 303 7 303 比较流畅 考,所以它们的重要性都是相同的而且在3类帧中重要性是 率控制 最低的,是要优先考虑丢弃的。综上所述,采用这种丢帧控 无缓冲区 7 7 305 7 265 不流畅 制能够在缓冲区资源或带宽资源有限的情况下尽可能地提高 码率控制 视频质量。 3结论 2.4仿真试验 本文提出的服务器端缓冲区码率控制算法充分考虑了 采用Dire::tShow技术,开发了一个简单的MPEG一4视频 MPEG一4视频编码流的特点,能够很好地预防缓冲区溢出和 流式传输系统,视频采用CIF格式,视频采用XVID编码器 提高有效解码率,在不得不丢帧的情况下能够比较均匀地丢 进行编码。在局域网中进行了多次模拟实验,为了让试验具 帧,进一步提高了视频质量。本算法非常适合系统资源有限、 有可重复性,视频源不采用动态采集方式,而是采用已经采 带宽窄或强实时性的视频流式传输。 集好的视频文件来模拟视频采集。该视频文件一共包含7 328 个VOP,帧速采用PAL制(24fps),播放长度为5minls。根 参考文献 据缓冲区延迟的不同设计了以下3个试验,试验结果用表卜 1 Shin J.Kim J W.Kuo C—C J.Content—based Packet Video Forwarding 表3。 Mechanism in Differentiated Service Networks[C]//Proc.of 10 Int. Workshop Packet Video.Sadinia.Italy.2000—05. 表1在服务器I膏缓存lmln视频后才开始由网络发送昀情形 2 Braden R,Zhang L,Berson S,et a1.Resource Reservation 缓冲区溢 网络传 有效解 主观感受 ProtocolfRSVP)——V 1 Functional Speciifcation[S].RFC 2205, 出次数 输帧数 码帧数 1997. 缓冲区码 O 7 322 7 322 流畅 率控制 3 Peng D.On End.tO—end Transport Architecture for MPEG一4 Video 无缓冲区 O 7 328 7 328 流畅 Streaming over the Internet[J].IEEE Trans.on Circuits Syst.Video 码率控制 Techno1.,2000,10(6). 从3个表可以看出:在缓冲区足够大时(如表1),缓冲区 4 Chiang Zhang Y Q.A New Rate Control Scheme Using Quadratic 码率控制的作用并不明显,甚至还不如不用无缓冲区码率控 Rate Distortion Model[J].IEEE Trans.on Circuits Syst.Video Techno1.,1997,7(1). 制。但是当缓冲区变小时(如表2、表3),虽说二者在网络传 5 Li Overview of Fine Grannlarity Scalability in MPEG一4 Video 输帧数方面相差不大,但有效解码帧数却相差极大。如果将 Standard[J].IEEE Trans.on Circuits Syst.Video Techno1..2o01. 有效解码帧数除以网络传输帧数作为有效解码率,则可以很 11f31. 清楚地看出,随着缓冲区的变小,采用缓冲区码率控制的系 6 ISO/IEC JTCEl/SC29,WG11,N3342.Overview of the MPEG一4 统有效解码率和缓冲区溢出的次数没有很大波动,而没有采 Standard[S].2000—03. (上接第207页) 4实验结果 参考文献 选择9/7小波,采用第(4)种边界处理办法,对图像实施 l Antonini M,Barlaud M,Mathieu P,et a1.Image Coding Using 3级小波变换,然后对小波系数进行量化 ‘和算术编码。所开 Wavelet Transform[J].IEEE Trans.on Image Processing,1992,1(2): 发的应用系统,对8bpp86×109图像的压缩结果与JPEG的 205—220. 比较:图5(b)是JPEG算法压缩的图像,图5(c)是使用 2李建平.小波分析与信号处理一一理论、应用及软件实现[M]. 重庆:重庆出版社,1997. JPEG2000算法压缩35倍的彩色图像,可以看出,JPEG算法 3 Christopoulos C,Skodras A,Ebrahimi T.The JPEG2000 Still Image 压缩产生了明显的方块效应;而本文算法有很好的效果。 Coding System:An Overview[J].IEEE Trans.on Consumer 5结束语 Electronics,2000,46(4):11cl3一l 127. 为了实现对图像的高效压缩,即JPEG2000,我们使用了 4王详林.基于小波变换的静态图像压缩编码算法研究[D].北京: mallat算法,并且在开发过程中,逐个探讨并解决了滤波器 清华大学,1997. 的选取、边界效应等实际问题。对该算法的深入研究,这些 5 Shapiro J.Embedded Image Coding Using Zerotrees of Wavelet 问题都是非常关键的。 Coefifcients[J].IEEE Transactions on Singal Processing,l 993, 41f121:3445—3462.
因篇幅问题不能全部显示,请点此查看更多更全内容