《电子技术应用》
您所在的位置:首页 > 其他 > 业界动态 > 一种基于JPEG的MPCC方法

一种基于JPEG的MPCC方法

2008-03-13
作者:徐署华,陈 鸥

  摘 要: 介绍了JPEG图像压缩" title="图像压缩">图像压缩编码技术的总体框架,提出了一种基于JPEG的分层渐进图像压缩编码" title="压缩编码">压缩编码方法,并通过实验对该方法和传统的JPEG图像压缩编码方法进行了比较。
  关键词: 图像压缩编码技术  JPEG  分层渐进

 

  实现图像的渐进压缩编码是目前静止图像压缩编码技术的必然要求。JPEG是当前应用最为广泛的静止图像压缩编码标准。
1 JPEG基本框架
  JPEG(Joint Photographic Experts Group)是一个由国际标准组织(ISO)和国际电信电报咨询委员会(CCITT)联合组成的从事静态图像压缩标准制定的委员会[1],它制定了第一套国际静态图像压缩标准:ISO 10918-1,即JPEG。由于JPEG优良的品质,使得它在短短的几年内就获得极大的成功,目前网站上百分之八十的图像都是采用JPEG的压缩标准。JPEG标准的基本框架分为编码部分和解码部分,其基本流程分别如图1和图2所示。


  JPEG标准定义了四种编码方式[2]:顺序编码、无损编码、分级编码和渐进编码。渐进编码模式是JPEG标准的选项。传统的JPEG渐进编码模式的基本原理是[3]:将高频DCT系数块写入压缩码流(扫描),解码读取和处理每个扫描得到的图像的轮廓,即利用前面的扫描快速产生一幅模糊的低质量图像预览,然后根据需要再决定是继续扫描还是停止。这种模式的特点是可以根据压缩图像的质量随时中止压缩和传送,可以提高图像的压缩和传输效率。传统的JPEG渐进编码模式比较适合中高码率的图像压缩和传送,但是在中低码率" title="低码率">低码率的情况下,不适合图像的压缩效率和图像压缩质量的需求,特别是在0.25bpp码率以下时,图像质量将出现严重失真[4]。这是由于在中低码率下,JPEG采用的DCT变换方法的细节分辨能力减弱,使得数据之间还存在比较多的冗余,成为JPEG渐进编码模式发展的一个重大瓶颈。本文针对传统的JPEG渐进编码模式的问题,在保留JPEG框架的基础上,提出了一种新的、适合于中低码率的静止图像编码方法——分层渐进图像压缩编码方法MPCC(Multilayer & Progressive Compression & Coding Method For Still Image)。
2 MPCC的设计与实验
2.1 MPCC方法的总体设计

  MPCC方法仍然采用了JPEG的基本流程模型,其总体设计框架如图3所示。


  从图3可以看出,MPCC方法总体设计流程是:(1)对经过颜色转换和采样的原始图像进行MDCT变换,得到具有层次结构的MDCT系数。(2)根据MDCT系数的空间层次等特点进行SPIHT编码,逐步得到包含图像信息的压缩码流。(3)对压缩码流进行熵编码" title="熵编码">熵编码(行程编码),得到最终的压缩码流,再进行传送。同时,在解码端同步进行解码(步骤与编码端相反),根据图像的质量随时可以中止图像的传送。下面将详细论述MPCC设计流程的主要步骤。
2.1.1 MDCT变换
  为了能够减少图像数据的冗余性,以达到有效压缩图像的目的,先要对图像数据进行空间-频率的转换。传统的JPEG渐进模式采用的是DCT变换[5-6],其变换公式如下:

  考虑到在后续SPIHT编码中的嵌入式编码的特点以及进一步增强图像的细节分辨能力和减少图像数据之间的冗余性,本文采用了以下的改进变换方法,即多层MDCT(Multilayer-DCT)变换,如图4所示。


  (1)对输入M×N大小的原始图像的数据进行第一次DCT变换。经过第一次DCT变换后,原始图像的数据被分解成四个子带域:LL1、LH1、HL1、HH1。其中,LL1域是图像的低频系数,图像的能量主要集中在这一部分;LH1、HL1、HH1域是图像的高频系数,分别表示图像的水平、垂直和对角线部分的能量。每个子带域经过DCT逆变" title="逆变">逆变换后都可以还原成一幅完整的图像,但是反映了原始图像的不同细节信息。
  (2)取LL1域做DCT逆变换,还原成原始图像数据,然后再对其进行第二次DCT变换。经过第二次DCT变换后,LL1同样被分解成四个子带域:LL2、LH2、HL2、HH2。每个子带域经过DCT逆变换后也都是一幅完整的图像。
  (3)取LL2域做DCT逆变换,同样也还原成原始图像的数据,然后对其进行第三次DCT变换。经过第三次DCT变换后,LL2同样被分解成四个子带域:LL3、LH3、HL3、HH3。每个子带域经过DCT逆变换后也都是一幅完整的图像。
通过上述MDCT变换得到的图像系数,具有了这样的特征:较低层子带对应较高的图像频率分量;较高层子带对应较低的图像频率分量,并集中了图像的大部分能量。从数据的数值来看,从高层往低层移动时,能够预料到细节系数会显著变小。
2.1.2 SPIHT编码算法
  分层树中的集分割SPIHT(Set Partioning In Hierarchical Trees)编码算法[7],首先是和小波变换相结合的,非常适合具有空间层次相似性的变换方法。SPIHT的重要特点就是在解码的任意时刻,所显示的图像质量都是当时解码器输入位数所能得到的最佳图像。
  SPIHT的基本思想是:假设原始图像P的像素为Pi,j,其经过某种适当变换T后的系数为Ci,j,变换后的图像为C。该步骤可表示为:C=T(P)。在渐进传输方法中,解码器首先将重建图像C′设置为零,然后输入并解码接收到的经过变换的系数,生成改进的重建图像C′,再用C′生成更好质量的图像P′。该步骤可以表示为:P′=T-1(C′)。
  空间方向树是SPIHT中使用的一个数据结构,它类似于子带金字塔结构。图4是一个32×32的系数方块。在最高层的LL3中有16个系数,被分成4个2×2的小组,每个小组中除了第一个系数外,其他3个系数都在其他层有子孙对应。例如:图4 LL3中第2号系数,在HL3中有2×2=4个子孙,对应在HL2中有4×4=16个子孙,在HL1中则对应有16×16=256个子孙。假设2号系数坐标为(i,j),则直接子孙的坐标对应为(2i,2j)、(2i,2j+1)、(2i+1,2j)、(2i+1,2j+1),下层子孙依次类推。由此对应产生了一棵以(i,j)为根,以其他层对应系数为子孙的树。将系数(i,j)对应的所有子孙的坐标集合定义为D(i,j),即D类树。将系数(i,j)对应的所有孙子(不包含4个子系数)的坐标集合定义为L(i,j),即L类树。限于篇幅,SPIHT编码详细算法在后面一并介绍,并可以参见参考文献[6]。
2.2 MPCC方法的编码器设计
  MPCC方法的编码器的基本流程见图3,其具体算法流程如下:
  (1)对经过颜色转换和采样的原始图像P进行MDCT变换,得到具有层次结构的MDCT系数。根据需要,MPCC可以是对整幅图P进行MDCT变换,也可以是先划分为一个32×32的图像块B,之后再进行MDCT变换。本文采用后一种方式。经过MDCT变换后的系数见图4。
  (2)依次对32×32分块进行SPIHT编码。
  ①设定初始阈值为2n,并传输n到解码端。令:LIP为所有根节点系数(3/4个LL3中的系数),LIS为所有树,LSP为空集合(用坐标代替各系数)。
  ②对于LL3中的另外1/4个系数,判定是否显著,如果显著,则输出1和该系数的符号位;否则输出0。
  ③排序过程:检测LIP中的系数是否显著。如果显著,则输出1和该系数的符号位,并将系数移入LSP中;否则输出0。
  ④根据树的类型检测LIS中所有树是否显著。
  (a)对于D类树:如果不显著,就输出0;如果显著,就输出1,并编码它的子节点。如果子节点显著,就输出1和符号位,并移入LSP中;如果不显著,就输出0,并将其加到LIP的末尾。如果子节点有子孙,就将树作为L类移入LIS中;否则从LIS中移出。
  (b)对于L类树:如果不显著,就输出0;如果显著,就输出1,并将每个子节点作为D类的一项加到LIS末尾,从LIS中移去父树。
  ⑤熵编码:考虑到输出的位流具有的分布特点,可以对其进行熵编码(行程编码)后,再传输给解码器。
  ⑥循环:阈值减半,即n减1,如果需要则循环上述步骤;如果收到解码端中止传输的信号,则停止循环,结束编码。
2.3 MPCC方法的解码器设计
  MPCC方法的解码器与编码器的设计时必须考虑同步工作的问题,这是SPIHT编码的关键,其基本流程可参见图3,具体算法流程如下:
  (1)接收编码器传送的n,并确定2n为阈值。采用和编码器一样的方法初始化:令LIP为所有根节点系数(3/4个LL3中的系数),LIS为所有树,LSP为空集合(同样用坐标代替各系数)。
  (2)依次接收编码器传送的各分块的有效信息。
  ①对接收的一个分块的信息流进行熵编码(解码),得到还原的一次迭代的信息。②根据信息组织进行编码器同样的变化(步骤同编码器的第2步)。③根据LSP中的坐标进行系数第n位的重建。注意:随着n的减小,重建的位数也在减小,但前几次的位数都保留下来了。由此才能够实现渐进的图像传输。④根据图像还原的质量,决定中止编码器继续编码还是继续接受编码信息。本文采用均方差(MSE)失真(公式2)来判定图像质量。
  
2.4 MPCC方法的实验结论
  按照上面所述的MPCC方法,在matlab环境下对MPCC方法和传统的JPEG渐进模式进行了对比仿真实验。实验结果如下:
  在0.25bpp的低码率下,两者的实验结果如图5所示。在低码率下,传统的JPEG渐进模式“方块”效应十分明显,但图像效果几乎不可以接受;而MPCC方法“方块”效应不明显,但图像质量却明显优于传统的JPEG渐进模式。


  MPCC方法的渐进仿真实验结果如图6所示。渐进效果明显,非常适合网络上图像的传输。
  最后用著名的512×512×8的灰度图Lena作为原始图像进行峰值压缩比(PSNR)的比较,实验结果参考值如表1所示。由表1可知,MPCC也优于传统的JPEG渐进模式。

 

表1 实验结果参考值

码率(bpp) MPCC(dB) 传统的JPEG渐进模式(dB)
0.25 31.9 31.6
0.75
37.4
36.5
1.00 39.7 37.9


  MPCC是为了适应网络图像渐进传输而提出的一种综合了MDCT、SPIHT和熵编码等多项技术的新的编码方法,它依然采用了广泛应用的JPEG框架。从实验结果来看,MPCC方法在中低码率时,图像的压缩效果明显优于传统的JPEG渐进模式。在超低码率时(一般指0.25bpp以下),MPCC的图像压缩效果逊于基于小波变换的JPEG2000(该标准正在完善之中,尚未广泛应用);但是在中低码率时,在图像质量接近的情况下,MPCC的图像压缩速度却优于JPEG2000。
参考文献
[1] 吴乐南,徐孟侠.数据压缩[M].北京:电子工业出版社,2000
[2] 精英科技.视频压缩与音频压缩编码技术[M].北京:中国电力出版社,2001
[3] SALOMON D.Data compression-the complete reference,second edition[M].New York:Springer-Verlag Inc.,2000.
[4] 丁贵广.新一代静止图像压缩编码标准:JPEG2000概述[EB/OL].http://xllw.cn/n175c13.aspx,2006.
[5] PENNEBAKER W B,MITCHELL J L.JPEG still image data compression standard[S].New York:Van Nostrand,1992.IEEE Trans.Circuits Syst.Video Technol.1995,6(8).
[6] Rao K R,Yip P.Discrete cosine transform-algorithms,advantages,application[M].London:Academic Press,1999.
[7] Siad A,Pearlman W A.A new fast and efficient image codec based on set partioning in hierarchical trees[J].IEEE Trans-actions on Circuits and Systems for Video Technology,1996,6(6).
[8] 何斌,马天予,王运坚,等.数字图像处理[M].北京:人民 邮电出版社,2001.(收稿日期:2006-12-20)

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。