无意了解到算术编码JPEG图片

来源:互联网 发布:计算机无法连接到网络 编辑:程序博客网 时间:2024/04/28 14:59
JPEG2000图像压缩标准及其关键算法

周 宁 汤晓军 徐维朴

(西安交通大学人工智能与机器人研究所西安710049)


摘 要:JPEG2000是为适应不断发展的图像压缩应用而出现的新的静止图像压缩标准。阐述了JPEG2000图像编码系统的实现过程, 对其中采用的基本算法和关键技术进行了描述,介绍了这一新标准的特点及应用场合,并对其性能进行了分析。
关键词:JPEG2000; 图像压缩;离散小波变换; 速率控制;感兴趣区域
1 引言
随着多媒体应用领域的快速增长和网络的不断发展,传统的JPEG压缩技术已无法满足人们对数字化多媒体图像资料的要求,一种功能更强大、效率更卓越的静止图像压缩标准被提到制定日程上,这就是JPEG2000。
JPEG(Joint Photographic Experts Group)是在国际标准化组织(ISO)领导之下制定静态图像压缩标准的委员会,第一套国际静态图像压缩标准ISO 10918-1(JPEG)就是该委员会制定的。由于JPEG优良的品质,使他在短短几年内获得了极大的成功,被广泛应用于互联网和数码相机领域,网站上80%的图像都采用了JPEG压缩标准。然而,目前的JPEG静止图像压缩标准,具有中端和高端比特速率上的良好的速率畸变特性,但在低比特率范围内,将会出现很明显的方块效应,其质量变得不可接受。JPEG不能在单一码流中提供有损和无损压缩,并且不能支持大于64×64 K的图像压缩。同时,尽管当前的JPEG标准具有重新启动间隔的规定,但当碰到比特差错时图像质量将受到严重的损坏。
针对这些问题,自1997年3月起,JPEG图像压缩标准委员会开始着手制定新一代的图像压缩标准以解决上述问题。2000年3月的东京会议,确定了彩色静态图像的新一代编码方式JPEG2000图像压缩标准的编码算法。
JPEG2000系统分为下列7个部分:
①JPEG2000图像编码系统;
②扩充(给①的核心定义添加更多的特征和完善度);
③运动JPEG2000;
④一致性;
⑤参考软件(目前包含Java和C实现);
⑥复合图像文件格式(用于文件扫描和传真应用程序);
⑦对①的最小支持(技术报告)。
①为完全被认可的ISO标准,定义了核心压缩技术和最小文件格式,②~⑥定义压缩和文件格式的扩充。其中,①已经制定完成,其余部分还在制定过程中。本文所讨论的JPEG2000标准就是基于第1部分的。
2 JPEG2000系统的特点
JPEG2000以其特有的优点弥补了现行JPEG标准的不足。离散小波变换算法中,图像可以转换成一系列可更加有效存储像素模块的子带,因此,JPEG2000格式的图像压缩比可在现在的JPEG基础上再提高10%~30%,而且压缩后的图像显得更加细腻平滑。也就是说,在网上观看采用JPEG2000压缩的图像时,不仅下载速率比采用JPEG格式的快近30%,而且品质也将更好。对于目前的JPEG标准,在同一个压缩码流中不能同时提供有损和无损压缩,而在JPEG2000系统中,通过选择参数, 能够对图像进行有损和无损压缩,可满足图像质量要求很高的医学图像、图像库等方面的处理需要。现在网络上的JPEG图像下载时是按"块"传输的,因此只能逐行地显示,而采用JPEG2000格式的图像支持渐进传输(Progressive Transmission),这就允许图像按照所需的分辨率或像素精度进行重构,用户根据需要,对图像传输进行控制,在获得所需的图像分辨率或质量要求后,便可终止解码,而不必接收整个图像的压缩码流。由于JPEG2000采用小波技术,利用其局部分辨特性,在不解压的情况下,可随机获取某些感兴趣的图像区域(ROI)的压缩码流,对压缩的图像数据进行传输、滤波等操作。
3 JPEG2000图像编解码系统
本节主要介绍JPEG2000图像编解码系统。其编码器和解码器的框图如图1所示。

在编码器中,首先对源图像进行前期预处理,对处理的结果进行离散小波变换,得到小波系数。然后对小波系数进行量化和熵编码,最后组成标准的输出码流(位流)。解码器是编码器的反过程,首先对码流进行解包和熵解码,然后是反向量化和离散小波反变换,对反变换的结果进行后期处理合成,就得到重构的图像数据。尽管JPEG2000编解码过程与JPEG类似,但是对于每一步的具体实现两者却有非常大的差异。编码过程的一般步骤如下:
(1) 将有多个颜色分量组成的图像分解成单一颜色分量的图像。分量之间存在一定的相关性,通过分解相关的分量变换,可减少数据间的冗余度,提高压缩效率;
(2) 分量图像被分解成大小统一的矩形片——图像片。图像片是进行变换和编解码的基本单元;
(3) 每一个图像片进行小波变换。产生多级系数图像。这些不同级数的系数图像可以重构出不同分辨率的图像;
(4) 多级分解的结果是由小波系数组成的多个子带。他们表示图像片中局部区域(而不是整幅图像)的频率特性;
(5) 对系数子带进行量化,并且组成矩形数组的"码块";
(6) 对一个码块中的系数位平面(也就是一个码块中整个系数中具有同样权值的那些位)进行熵编码;
(7) 相对于图像的背景区域,可以对感兴趣区域进行更高质量的编码;
(8) 通过在位流中加入掩码来增加抗干扰性;
(9) 在每一个码流的最前部都有一个头结构,他描述的是源图像的属性,各种分解情况和编码风格。这个头结构可以用来进行定位、抽取、译码和重构图像,得到的图像可以具有所期望的分辨率、重现精度、感兴趣的区域或是其他特性。
编码过程主要分为以下几个过程:预处理、核心处理和位流组织。预处理部分包括对图像分片、直流电平(DC)位移和分量变换。核心处理部分由离散小波变换、量化和熵编码组成。位流组织部分则包括区域划分、码块、层和包的组织。
3.1 预处理
(1)图像分片
分片指的是把源图像分割成相互不重叠的矩形块——图像片,每一个图像片作为一个独立的图像进行压缩编码。编码中的所有操作都是针对图像片进行的。图像片是进行变换和编解码的基本单元。图像的分片降低了对存储空间的要求,并且由于他们重构时也是独立进行的,所以可以用来对图像的特定区域而不是整幅图像进行解码。当然,图像分片会影响图像质量。比较小的图像片会比大图像片产生更大的失真。图像分片在低比特率表示图像的时候所造成的图像失真会更加严重。
(2)DC电平位移
在对每一图像片进行正向离散小波变换之前,都要进行直流电平位移。目的是在解码时,能够从有符号的数值中正确恢复重构的无符号样本值。直流电平位移是对仅有无符号数组成的图像片的像素进行的。电平位移并不影响图像的质量。在解码端,在离散小波反变换之后,对重构的图像进行反向直流电平位移。
(3)分量变换
JPEG2000支持多分量图像。不同的分量不需要有相同的比特深度,也不需要都是无符号或有符号数。对于可恢复(无损)系统,唯一的要求就是每一个输出分量图像的比特深度必须跟相应输入分量图像的比特深度保持一致。
3.2 核心处理
(1)小波变换
不同于传统的DCT变换,小波变换具有对信号进行多分辨率分析和反映信号局部特征的特点。通过对图像片进行离散小波变换,得到小波系数图像,而分解的级数视具体情况而定。小波系数图像由几种子带系数图像组成。这些子带系数图像描述的是图像片水平和垂直方向的空间频率特性。不同子带的小波系数反映图像片不同空间分辨率的特性。通过多级小波分解,小波系数既能表示图像片中局部区域的高频信息(如图像边缘),也能表示图像片中的低频信息(如图像背景)。这样,即使在低比特律的情况下,我们也能保持较多的图像细节(如边缘)。另外,下一级分解得到的系数所表示图像在水平和垂直方向的分辨率只有上一级小波系数所表示的图像的一半。所以,通过对系数图像的不同级数进行解码,就可以得到具有不同空间分辨率(或清晰,或模糊)的图像。
小波变换因其具有的这种优点被JPEG2000标准所采用。在编码系统中,对每个图像片进行Mallat塔式小波分解。经过大量的测试,JPEG2000选用两种小波滤波器:LeGall 5/3滤波器和Daubechies 9/7滤波器。前者可用于有损或无损图像压缩,后者只能用于有损压缩。
在JPEG2000标准中,小波滤波器可以有2种实现模式:基于卷积的和基于提升机制的。而具体实现时,对图像边缘都要进行周期对称延伸,这样可以防止滤波器对图像边缘操作时产生失真。另外,为了减小变换时所需空间的开销,标准中还应用了基于行的小波变换技术。
(2)量化
由于人类视觉系统对图像的分辨率要求有一定的局限,通过适当的量化减小变换系数的精度,可在不影响图像主观质量的前提下,达到图像压缩的目的。量化的关键是根据变换后图像的特征、重构图像质量要求等因素设计合理的量化步长。量化操作是有损的,会产生量化误差。不过一种情况除外,那就是量化步长是1,并且小波系数都是整数,利用可恢复整数5/3拍小波滤波器进行小波变换得到的结果就符合这种情况。
在JPEG2000标准中,对每一个子带可以有不同的量化步长。但是在一个子带中只有一个量化步长。量化以后,每一个小波系数有2部分来表示:符号和幅值。对量化后的小波系数进行编码。对于无损压缩,量化步长必须是1。
(3)熵编码
图像经过变换、量化后,在一定程度上减少了空域和频域上的冗余度,但是这些数据在统计意义上还存在一定的相关性,为此采用熵编码来消除数据间的统计相关。将量化后的子带系数划分成小的矩形单元——码块(code block)。

如图2所示,采用两层编码策略,首先使用基于上下文的算术编码器,每个码块进行独立的嵌入式码块编码,得到码块的嵌入式压缩位流。然后,根据率失真优化原则,采用PCRD(Post Compression Rate Distortion)优化算法思想,将所有码块的压缩位流适当截取,组织成具有不同质量级的压缩位流层。每一层上的压缩位流连同其前面的所有层的压缩位流,可重构出一定质量的图像。在分层组织压缩位流时,须对每个码块在每一层上的贡献信息进行编码,即对码块位流在该层的截断点信息等编码。由于图像采用小波变换,整个图像压缩码流具有分辨率可分级性,从而,压缩码流可同时具有质量上和分辨率上的可分级性。由于对码块进行独立编码,因此,可根据需要,随机获取并解码相应的码块压缩位流,重构出所需的图像区域。
①第一层编码算法
与传统的依次对每个系数进行算术熵编码不同,JPEG2000编码系统把码块中的量化系数组织成若干个位平面,从最高有效位平面(MSB)开始,依次对每个位平面上的小波系数位进行算术编码。
第一层编码可以看作2部分:上下文的生成(CF)和算术编码器(AE)。在上下文的生成中,以一定的顺序扫描码块中的所有位。在码块的每个位平面上,从左上角系数开始,从左到右,从上到下进行扫描,并为每一位生成一个上下文。算术编码器根据生成的上下文,对每一位进行编码。
在量化后,小波系数被转换为符号-振幅模式。在从MSB到LSB编码时,当遇到第一个为1的比特时,这个像素被称作是显著的,否则,为不显著的。所有比特的上下文都是由他们的邻域通过以下的4种方法产生:
零编码(zero coding,ZC)用来编码非显著像素在当前的位平面中是否将变得显著;
游程编码(run-length coding, RLC)用来编码位于同一列中的4个非显著性像素,如果他们的邻域都是非显著的;
符号编码(sign coding, SC)当该位变得显著后,编码他的符号位;
幅度编码(Magnitude Refinement, MR)用来编码显著位。
每个位平面都在3个编码通道中进行编码。通道1是重要性传播通道(Significance Propagation Pass),至少有一个重要性邻域的像素,在此通道进行编码,使用ZC和SC。通道2是幅度细化通道(Magnitude Refinement Pass),所有的重要位在此通道进行编码,使用MR。通道3是清除通道(Cleanup Pass),所有没有在上两个通道中进行编码的像素,在此通道中进行编码,使用ZC,LRC和SC。位平面中的每一位在3个通道中进行检查来确定是否应当被编码。
由编码通道得到的上下文和与其对应的数据一起,送至算术编码器进行编码。在这里,采用了自适应二进制算术编码〔1〕,主要是考虑到计算的复杂度以及实现的方便性。在进行算术编码后,对每一个码块,得到一个独立的嵌入式码块压缩位流。
②第二层编码算法
在第二层编码算法中,采用PCRD率失真优化算法思想〔1,2〕,对所有码块的嵌入式压缩位流进行适当的截取,分层组织,形成整个图像的具有质量可分级的压缩码流。第二层编码算法也可以看作两部分:速率控制和分层组织压缩位流。速率控制是指通过一定的编解码措施,获得给定压缩码率下的最佳重构图像质量。分层组织压缩位流根据编码参数所规定的分层层数以及每一层的编码速率,估算每一层的率失真门限,然后根据每一层估计出的率失真门限,按照码块率失真算法,找到每个码块嵌入式压缩位流在该层上的截断点,将截断的码块压缩位流进行打包,按照规定的格式存储,形成图像压缩码流。将码流分层组织,每一层含有一定的质量信息,在前面层的基础上改善图像质量。这样用户可以根据自己的需要,控制图像的传输,在取得满意的图像效果后,中止传输,在某种程度上缓解当前网络带宽有限而图像数据量大而造成的瓶颈问题。
3.3 位流组织
为了适合图像交换,更好地应用JPEG2000压缩码流的功能,JPEG2000标准规定了存放压缩位流和解码所需参数的格式,把压缩码流以包为单元进行组织,形成最终的码流。
4 JPEG2000中的关键技术
在这一节中,对JPEG2000中所使用的关键技术加以说明。
4.1 离散小波变换
JPEG2000与传统JPEG最大的不同在于他放弃了JPEG所采用的以离散余弦变换(DCT)为主的区块编码方式,转而采用以小波变换(DWT)为主的多解析编码方式。 
余弦变换是经典的谱分析工具,他考察的是整个时域过程的频域特征或整个频域过程的时域特征,因此对于平稳过程,他有很好的效果,但对于非平稳过程,他却有诸多不足。在JPEG中,离散余弦变换将图像压缩为8×8 的小块,然后依次放入文件中,这种算法靠丢弃频率信息实现压缩,因而图像的压缩率越高,频率信息被丢弃的越多。在极端情况下,JPEG图像只保留了反映图像外貌的基本信息,精细的图像细节都损失了。小波变换是现代谱分析工具,他既能考察局部时域过程的频域特征,又能考察局部频域过程的时域特征,因此即使对于非平稳过程,处理起来也得心应手。他能将图像变换为一系列小波系数,这些系数可以被高效压缩和存储,此外,小波的粗略边缘可以更好地表现图像,因为他消除了DCT压缩普遍具有的方块效应。
4.2 速率控制算法
JPEG2000通过采用速率控制方法来计算码流的理想截断点,从而获得给定压缩码率下的最佳重构图像质量。速率控制使用了PCRD率失真优化算法。率失真优化,即给定整个压缩码流的最大编码速率,找出每个码块压缩位流的适当截断点,在满足的条件下,使重构图像失真最小。从而使得嵌入式码块编码具有如下特点:生成的压缩位流可根据需要,被截断成不同长度的位流子集;将所有码块的截断位流组织起来,可重构出一定质量的图像。
4.3 渐进传输特性
现在网络上的JPEG图像下载时是按"块"传输的,因此只能逐行显示,而采用JPEG2000格式的图像支持渐进传输。JPEG2000中的渐进传输有2种,按照分辨率的渐进传输和按照质量的渐进传输。按照质量的渐进传输就是先传输图像轮廓数据,然后再逐步传输细节数据来不断提高图像质量,而按照分辨率的渐进传输则先传输分辨率较低的图像,后一幅图像在前一幅图像的基础上提高其分辨率。图像的渐进传输使得用户不需要像以前那样等图像全部下载后才决定是否需要,有助于快速地浏览和选择大量图片,从而有效的解决了网络传输的瓶颈问题。
4.4 感兴趣区域压缩
JPEG2000一个极其重要的优点就是ROI(Region of Interest,感兴趣区域)。用户可以任意指定图片上感兴趣的区域,然后在压缩时对这些区域指定压缩质量,或在恢复时指定某些区域的解压缩要求。这是因为子波在空间和频率域上具有局域性,要完全恢复图像中的某个局部,并不需要所有编码都被精确保留,只要对应他的一部分编码没有误差就可以了。在实际应用中,我们就可以对一幅图像中感兴趣的部分采用低压缩比以获取较好的图像效果,而对其他部分采用高压缩比以节省存储空间。这样就能在保证不丢失重要信息的同时又有效地压缩了数据量,实现了真正的"交互式"压缩。
5 JPEG2000标准的应用
随着科技的发展,网络已经渗透到每个人的生活之中。然而,受到网络带宽的限制,高质量的图像由于数据量很大,在网络上的传输延迟很大。因此,对于使用PC机、笔记本、掌上电脑或PDA,通过Modem接入因特网访问图像数据的用户来说,允许根据需要选择恰当的图像分辨率进行浏览和传输是非常必要的。
在军事侦察和气象预报中,由卫星遥感得到的图像必须通过远距离无线信道传输,传输误码的出现不可避免。JPEG2000编码器特有的码流组织形式是输出码流具有有效抑制误码的能力。这样,码流通过无线卫星通讯信道发还给地面接收站后,地面接收站在解码过程中可以利用JPEG2000内部的码流组织形式来避免由于传输误码而造成的错误解码。
此外,在安全确认、身份认证及医学领域,JPEG2000都有着其广泛的应用。可以预测,在不久的将来,JPEG2000将在以下领域得到广泛的应用:因特网、移动和便携设备、印刷、扫描(出版物预览)、数码相机、遥感、传真(包括彩色传真和因特网传真)、医学应用、数字图书馆和电子商务等。
6 结论
JPEG2000旨在创建一个新的图像编码系统,该压缩编码系统的率失真和主观图像质量优于现有的JPEG标准,能够提供对图像的低码率的压缩,并且对压缩码流可进行灵活的处理,如随机获取部分压缩码流、图像的渐进传输、感兴趣区域的实现以及压缩码流较强的容错性能等,该标准将与现行JPEG标准兼容。JPEG2000图像压缩标准以其优秀的性能,必将在数码相机、遥感、传真、医疗以及电子商务等多个领域得到广泛的应用,成为21世纪的主流静态图像压缩标准。

参考文献

〔1〕JPEG 2000 Image Coding ystem.JPEG 2000 Final Committee Draft Version 1.0, 2000,16(3)
〔2〕Taubman D. High Performance Scable Image Compression with EBCOT.IEEE Trans Image Processing,1994,3(9):572~578
〔3〕张晓娣,等.新一代的静止图像压缩标准 JPEG2000.电信科学,2001(5)
〔4〕李冬梅.发展中的静止图像压缩标准JPEG2000.电视技术,2001(6)
〔5〕王瑞轩.面向JPEG2000的二维DWT的VLSI设计与仿真,2002  
原创粉丝点击