新闻中心

EEPW首页 > EDA/PCB > 设计应用 > 基于小波变换的JPEG2000图像压缩编码系统的仿真与设计

基于小波变换的JPEG2000图像压缩编码系统的仿真与设计

作者:时间:2018-09-12来源:网络收藏

  引言

本文引用地址:http://www.eepw.com.cn/article/201809/389023.htm

  随着多媒体技术的发展,出现了各种各样的静止技术,其中最成功的当推标准。但由于有损压缩的原因,传统在许多对图像质量要求较高的应用场合无法胜任。与传统基于离散余弦变换不同,JPEG基于离散,它不仅在压缩性能方面明显优于JPEG,还具有很多JPEG无法提供或无法有效提供的新功能,比如,同时支持有损和无损压缩、大幅图像的压缩、渐进传输、感兴趣区编码、良好的鲁棒性、码流随机访问等。一个典型的JPEG的压缩过程如图1所示。

  图1 JPEG的压缩过程

  由图1所示,预处理一般包括三种操作:区域划分,降低量级,分量变换。预处理后的数据将进行离散(DWT),以进一步降低数据之间的相关性。JPEG2000的量化与JPEG量化基本相同,总体上都是采用均匀量化,不同子带的量化步长一般不同。量化以后,第一层编码(自适应算术编码)采用EZW的改进算法SPIHT算法将等待编码的、经过后的比特流按重要性不同进行排序,提供多个满足不同目标码率或失真度的截断点,使得解码器方能根据目标码率或失真度的要求在某一截断点结束解码,提供相应质量的图像。第二层编码(码流组织)将上述截断的数据进行打包,并附加相关的标志信息,从而实现JPEG2000对多失真度的支持。

  离散小波变换系统

  小波分析进行基本原理是:根据二维小波分解算法,一幅图像做小波分解后,可得到一系列不同分辨率的图像,而表现一幅图像最主要的部分是低频部分,如果去掉图像的高频部分而只保留低频部分,则可达到的目的。传统傅立叶分析只能对信号进行时域或频域单独进行分析,时域上有限的信号在频域是无穷的,频域内有限的信号在时域里是无穷的。而小波分析能在时域和频域内同时分析,且能自动调整分辨率。

  与其他使用小波变换的其他图像压缩标准相比,JPEG2000在小波变换的基础上采用更为复杂精细的小波块分割算法,即优化截取的嵌入式块编码EBCOT算法,从而实现了丰富的功能,比如基于感兴趣区域编码ROI,即对一幅图像中感兴趣的部分采用低压缩比以获取较好的图像效果,而对其他部分采用高压缩比以节省存储空间,这样就可以通过点击ROI部分以获得更高的分辨率,看到图像的细节部分。

 在本系统中,采用第二代小波变换的快速提升算法CDF9/7双正交小波变换,小波变换取CDF9/7双正交小波基,该小波基具有线性相位,因而有着极好的图像压缩性能。其实现过程如图2所示。

  图2 CDF9/7双正交小波变换的实现过程

  图3是用CDF9/7小波族对一个的图像做两级DWT分析的情况。在第二级中,第一级得到的低通近似本身被分成4个子图像,提取出了细节,留下一个新的低通近似。低通滤波的效果很容易从围巾、桌布的花纹,藤椅的方格,远处罗列的书籍这些细节的丢失看出。第二级低通近似也可以继续变换,以生成4幅新的子图像。这种变换可以一直进行下去知道子图像只包含一个像素为止。

  a 原始图像

  b二维DWT分析图像

  图3 两级二维DWT分析

  在图3中,垂直细节对应于分析块的右上角,水平细节对应于左下角,而对角细节对应于右下角,它们都表现出了较强的外观。当数字图像需要通过二维DWT子图像重建时,就要用向上采样和卷积的办法将细节与低通近似组合起来。

  SPIHT图像编码

  为了验证JPEG2000系统的可行性及性能,采用MATLAB对系统中的小波变换部分进行了仿真,然后用C++语言对小波变换后的系数进行编解码,实现系统中第二部分的仿真,以大幅降低数据量。SPIHT是基于内嵌零树编码(EZW)的集分割算法,C++中的链表类能实现SPIHT算法中的三个控制链表(LSP,LIP和LIS),方便的位操作命令适合处理算法中基于位平面的编解码功能。

  为了对小波变换和SPIHT编码算法有更直观的认识,下面从一幅图像中选取尺寸的像素矩阵进行处理,分析每一步处理后数据的变化。

  初始图像矩阵如图4所示,所用图像是256色(每像素8位),像素灰度图。

  图4 图像xiaoshutiao.bmp中的一部分数据

  由上图可以看出图像幅值分布比较随机,没有什么规律。对上数据进行离散小波变化后的数据如图5所示,小波变换采用基于提升的CDF9/7双正交小波基,进行5级分解。

  图5 三级小波变换后的系数数据

  由上图数据可以看出,幅值大的数据主要分布于左上交,这与小波变换后的数据分布特点是一致的,即第一级是低频图像概貌数据,集中了图像大部分的能量,其余各级是分辩率不同的图像的高频细节数据,反映图像水平、垂直、和倾斜方向的纹理信息,故大数据呈线状分布,总能量比较少,便于对数据进行不同分辩质量的压缩。

  对上数据进行SPIHT编码后的数据见图6所示。

  图6 SPIHT编码数据

  从上图数据可以看出,连1数据和连0数据都较多,可对其作进一步的游程编码。游程编码即记录数据中连0和连1的个数数据的压缩方式。编码后的数据见图7。

  图7 游程编码数据

  在对上数据作进一步的哈夫曼编码,哈夫曼编码是一种无损最优编码方案,如图8所示。

  图8 Huffman编码数据

  注意上述整个编码都是无失真的,也即通过一系列的解码过程可以完全恢复出原始图像。如果对原始图像进行某一等级分辨率的压缩后可大大降低数据量。

  结语

  本文介绍了小波变换在图像压缩JPEG2000里的应用。小波变换不同于传统的域变换压缩方式,它对图像整体进行变换,获得一系列不同分辨率的图像概貌信息和细节信息,从而为进一步处理提供很大的余地。同时通过对一种基于嵌入式零树思想的集分割SPIHT算法的仿真,说明该算法性能高、计算量小,若在JPEG2000系统中编解码采用同一套算法,可以大大降低了解码算法的复杂性,是一种很有前途的图像编解码技术。





评论


相关推荐

技术专区

关闭