JPEG2000编码方案和结构划分研究
来源:岁月联盟
时间:2010-08-30
1 引言
JPEG2000 是新一代静止图像压缩标准,它采用了小波变换、优化截断嵌入块编码和高效的码流组织形式。适用于各种类型的静止图像,如二值图像、灰度图像和彩色图像;支持图像、合成图像、医学图像和文本。JPEG2000 具有如下主要特点: ①良好的低比特率压缩性能,以适应、移动通信等有限带宽的应用; ②能够根据图像质量、视觉感受和分辨率进行渐进传输; ③既支持无损又支持有损压缩; ④对码流的随机存取和感兴趣区域(ROI)的编码; ⑤具有较强的抗误码能力; ⑥具有开放结构,并向下兼容等。2 JPEG2000基本编码方案
2.1 基本编码流程方案
JPEG2000的基本编码流程方案主要有以下6个部分组成(如图1): (1)预处理:主要是将源图像划分为较小的矩形区域,称为拼接块,作为独立的图像用于压缩。目的是为了降低压缩过程所需的内存资源。降低量级可以使样本的动态范围基本关于零对称,使在进行离散小波变换后的系数的动态范围不会过大,有利于编码。 (2)分量变换:指对具有多个分量的图像先经过某种变换来降低各分量之间的相关性。 (3)离散小波变换:针对每个拼接块的每个分量要进行离散小波变换,就是从二维空间到分辨率空间的变换,变换的目的是增加数据的冗余度,因而可以大幅提高压缩效率。 (4)量化:就是降低数据精度,提高压缩效率,实施有损压缩。 (5)第一级编码:按照位平面的次序经过三个通道进行熵编码(算术编码)。 (6)量二级编码:分层打包形成码流。![](/d/file/20100830/792a2b576dc65c6032203e6127bf60bb.jpg)
2.2 拼接块图像的结构划分
2.2.1 分辨率、子带和码块 源图像在预处理阶段被划分为各自独立的拼接块,在针对每个拼接块的每个分量进行离散小波变换时,若进行N级小波分解,则可有N个分辨率;每个分辨率的LH、HL和HH子带保留,LL子带继续分解,共得到(3N+1)个子带。如图2是三级变换的子带分布情况。每个子带又要被划分为大小相同的矩形块,称为码块,码块的宽和高都要是2的幂,典型值是32×32或64×64,每个码块将被独立编码。![](/d/file/20100830/e7ac1ff12fe3f6814d16e5f3252990f4.jpg)
![](/d/file/20100830/702d1faa91a3d4065d6e15de842d3f0b.jpg)
3 编码模型与算法
3.1 分量变换模型
JPEG2000标准中定义了两种分量间变换:不可逆分量变换 (ICT)和 可逆分量变换(RCT)。ICT实质上是实数到实数的,RCT实质上是整数到整数的。这两种变换都是从RGB颜色空间变换到YCbCr颜色空间。分量变换之后,各个分量之间可以认为是独立的。不可逆分量变换的公式为: Y=0.299R+0.587G+0.114B U=-0.16875R-0.33126G+0.5B V=0.5R-0.41869G-0.08131B可逆分量变换为: Y=(R+2*G+B)/4 U=R-G V=B-G G=Y-(Ur+Vr)/4 R=U+G B=V+G3.2 量化模型
JPEG 2000使用的是均匀量化。其量化和反量化模型为:y=||x/Δ|| * sgn(x)x=(y+r*sgn(y))* Δ 其中,△称为步长,r称为偏置参数,通常是1/2,对于无损压缩,量化步长为1(也可以说无须量化);对于有损压缩,量化步长与码率控制有关。不同的子带数据的动态范围不一样,因而不同子带使用不同的步长。3.3 小波变换模型
离散小波变换可以是不可逆的小波变换,也可以是可逆的小波变换。不可逆小波变换默认使用Daubechies 9/7滤波器实现,即是有损编码。可逆变换默认使用Le Gal 5/3滤波器实现,即是无损编码。JPEG2000中使用的是小波的提升算法。5/3小波提升算法模型: Y(2n+1) = X(2n+1) - [X(2n)+X(2n+2)] / 2 Y(2n) = X(2n) - [Y(2n-1)+X(2n+1)+2] / 4 9/7小波提升算法模型,包含四个步骤:第一次预测、第一次更新、第二次预测和第二次更新,公式分别为: Y(2n+1) = X(2n+1) - [X(2n)+X(2n+2)] ×α Y(2n) = X(2n) - [Y(2n-1)+Y(2n+1)+2] ×β Y(2n+1) = Y(2n+1) - [Y(2n)+Y(2n+2)] ×γ Y(2n) = Y(2n) - [Y(2n-1)+Y(2n+1)+2] ×δ 其中:α= -1.586134342,β= -0.052980118,γ= 0.882911075,δ= 0.4435068523.4 块编码
块编码是依位平面由高到低的次序使用三个编码过程而实施的,其流程如图4所示。编码过程P1称为重要性传播通道,对系数本身重要状态为0 但它的8 个邻居系数至少有一个重要状态已经为1 的系数进行编码。编码过程P2称为幅度精炼通道,对在以前已编码位平面变为重要的系数进行编码。编码过程P2称为清除通道,对在P1和P2中没有被编码的系数进行编码。所谓重要状态,就是其值是一个二值变量,初始化时为0,当按从高平面到低平面的顺序编码过程中首次遇到该系数的第一个1 比特时变为1,表示这个系数已经重要。![](/d/file/20100830/d5f9d2967ace88953d5d00a4bf0fbe3b.jpg)
3.5 码流组织与质量控制
3.5.1 码流组织 在块编码中,把某一个编码通道过程形成的码流,称为过程码流。最终的码流是由包构成的,一个数据包是由相关过程码流组成的,每个包隶属于某个层。分层打包的准则是保证一定码长下的失真度最小。把分层打包之前的码流,也就是第一级编码形成的码流,称为第一级码流;第一级码流经过第二级编码的形成的码流,称为第二级码流,也就是最终的码流。显然,必须确定第一级码流的一系列的截断点,裁剪形成第二级码流。3.5.2 率分配 率分配(率控制)是一个把量化步长和编码率赋予不同频带的过程。编码率指单位样本的编码位数。编码率越低,压缩率越高,失真越大;编码率越高,压缩率越低,失真越小。在某个码块Bi 中,每个编码通道过程的端点都是候选截断点(z),必须估算每个候选截断点(z)为止的所有编码字节数![](/d/file/20100830/80b2c42b1b46cd6623f521de68f0a7c2.jpg)
![](/d/file/20100830/7468d35773381e02dbf7aeeed2b6ceca.jpg)
![](/d/file/20100830/e92bf11b46c05a033136eba8c7a89b3b.jpg)
![](/d/file/20100830/bacee125e6132ee0215f5c5856f8aa06.jpg)
![](/d/file/20100830/96937b7d759666fc1060f1ce7a9c488f.jpg)
![](/d/file/20100830/2faa2b3dab80417ed3ffb3398292070a.jpg)
![](/d/file/20100830/96cee0975817c7579ef84d84fddb7abc.jpg)
![](/d/file/20100830/395137151e016dc1db3fd1b4a30282ba.jpg)
4 结束语
JPEG2000作为静态图像压缩标准,在数字图像领域得到了广泛而成功的应用。JPEG2000采用小波变换和位平面熵编码器,可获得当今最先进的压缩性能。目前诸多文献对JPEG2000的概念原理的认识不够全面,本文从总体上阐述了其基本概念、模型与算法,为JPEG2000的进一步研究和应用提供了依据。![](/d/file/20100830/71a6a3ead1e1ca7ff34135fa003f9c6f.jpg)