一种基于3维SPECK编码的超光谱图像压缩算法
发布时间:2007/4/23 0:00:00 访问次数:541
关键词:超光谱图像压缩 3维小波变换 3维SPECK(Set Partitioned Embedded bloCK)算法
随着空间遥感技术的发展,超光谱成像技术在资源勘测、环境调查、灾害预报、军事侦察等领域得到越来越广泛的应用。并且,随着光谱层板技术与电子技术的不断成熟,成像光谱仪的空间分辨越来越高,波段数越来越多,产生的数据量也越来越大,给存储和传输带来了很多困难。因此,必须对超光谱遥感图像进行有效的压缩,以满足卫星遥感平台的应用需要。
从其成像原理看,超光谱图像像素之间存在两种相关性:同一波段内像素之间的空间相关性和不同波段像素之间的谱间相关性。同时,与自然图像相比,超光谱图像含有丰富的纹理信息,空间相关性较差,而谱间相关性很强。在对超光谱图像进行压缩时,要有效地去除这两种相关性。
近年来,小波变换方法在图像压缩领域得到了广泛的应用。小波变换具有空间——频率域内的局部化特性,能对图像进行多分辨率分解,较好地去除像素间的相关性,同时保持图像在各个分辨率下的精细结构,有利于图像的压缩编码。目前,出现了很多基于小波变换的图像压缩算法,比较有代表性的有Shapiro提出的EZW算法、Said和Pearlman提出的SPIHT算法、Islam等提出的SPECK算法以及Taubman提出的被采纳为JPEG2000标准核心压缩算法的压缩中,并针对超光谱图像的特点,研究了适合超光谱图像压缩的方法,例如Dragotti等使用KL变换去除光谱维的谱间相关性,使用2D DWT去除空间相关性,随后用一种3维SPIHT算法对变换系数进行量化编码。另外,WANG Qi等使用1+2维小波变换去除超光谱图像的空间相关性和谱间相关性,对每一波段图像的小波系数采用EBCOT方法进行压缩编码。
本文在这些研究成果的基础上,提出一种基于小波变换的3维SPECK编码算法。该算法首先对超光谱图像序列进行3维小波变换,同时去除空间相关性和谱间相关性,然后将SPECK算法扩展到3维,构造一种3维SPECK算法对小波系数进行压缩编码。实验证明,3DSPECK算法具有良好的率失真性能,其压缩效果远远优于采用SPECK方法对每一波段图像小波系数做压缩编码的效果。同时,与3维SPIHT算法相比较,此算法具有更低的运算复杂度,并具有嵌入式的特性,能够满足不同压缩应用。
1 SPECK编码算法
图像经过小波变换后,低频子带上集中了大部分的重要性小波系数,而各个高频子带上分散着大部分的不重要小波系数。在渐进传输的嵌入式图像压缩系统中,重要性系数要优先进行编码传输,以便解码时首先得到图像的概貌部分,然后对不重要系数进行编码传输,进行而得到图像的细节部分。在EZW和SPIHT算法中,主要利用零树结构来对这些不重要系数进行编码,虽然利用了子带之间不重要系数的相关性,但没有充分利用同一子带中不重要系统的相关性,而SPECK算法将子带中的小波系数组织成矩形的块,对系数块进行分割排序,充分利用了同一子带中系数的相关性。
SPECK算法中,程序处理的基本单元是系数块,块分为两种类型:S类型的块和I类型的块。算法初始时,将图像的所有小波系数,I块包含除去S块中系数以后剩余的系数。定义一个判决块重要与否的符号函数Sn为:
若Sn(S)=1或Sn(I)=1,则认为S块或I块是重要的,并对重要的S块或I块进行分割,分割为更小的子块,S块和I块的分割如图1所示。
算法中,还用到两个存储系数块的列表:LIS和LSP。LIS为不重要集合表,存放 当前阈值下不重要的系数块,以便在下一阈值对这些块进行处理,LIS初始化为初始S块中的系数;LSP是重要系数表,存放重要的且只饱含一个系数的系数块,以便对这些系数做精细量化,LSP初始化为空表。
编码过程中,算法在不同的阈值下对S块和I块分别进行处理,确定重要性小波系数,对重要的小波系数优先进行量化编码。针对S块和I
关键词:超光谱图像压缩 3维小波变换 3维SPECK(Set Partitioned Embedded bloCK)算法
随着空间遥感技术的发展,超光谱成像技术在资源勘测、环境调查、灾害预报、军事侦察等领域得到越来越广泛的应用。并且,随着光谱层板技术与电子技术的不断成熟,成像光谱仪的空间分辨越来越高,波段数越来越多,产生的数据量也越来越大,给存储和传输带来了很多困难。因此,必须对超光谱遥感图像进行有效的压缩,以满足卫星遥感平台的应用需要。
从其成像原理看,超光谱图像像素之间存在两种相关性:同一波段内像素之间的空间相关性和不同波段像素之间的谱间相关性。同时,与自然图像相比,超光谱图像含有丰富的纹理信息,空间相关性较差,而谱间相关性很强。在对超光谱图像进行压缩时,要有效地去除这两种相关性。
近年来,小波变换方法在图像压缩领域得到了广泛的应用。小波变换具有空间——频率域内的局部化特性,能对图像进行多分辨率分解,较好地去除像素间的相关性,同时保持图像在各个分辨率下的精细结构,有利于图像的压缩编码。目前,出现了很多基于小波变换的图像压缩算法,比较有代表性的有Shapiro提出的EZW算法、Said和Pearlman提出的SPIHT算法、Islam等提出的SPECK算法以及Taubman提出的被采纳为JPEG2000标准核心压缩算法的压缩中,并针对超光谱图像的特点,研究了适合超光谱图像压缩的方法,例如Dragotti等使用KL变换去除光谱维的谱间相关性,使用2D DWT去除空间相关性,随后用一种3维SPIHT算法对变换系数进行量化编码。另外,WANG Qi等使用1+2维小波变换去除超光谱图像的空间相关性和谱间相关性,对每一波段图像的小波系数采用EBCOT方法进行压缩编码。
本文在这些研究成果的基础上,提出一种基于小波变换的3维SPECK编码算法。该算法首先对超光谱图像序列进行3维小波变换,同时去除空间相关性和谱间相关性,然后将SPECK算法扩展到3维,构造一种3维SPECK算法对小波系数进行压缩编码。实验证明,3DSPECK算法具有良好的率失真性能,其压缩效果远远优于采用SPECK方法对每一波段图像小波系数做压缩编码的效果。同时,与3维SPIHT算法相比较,此算法具有更低的运算复杂度,并具有嵌入式的特性,能够满足不同压缩应用。
1 SPECK编码算法
图像经过小波变换后,低频子带上集中了大部分的重要性小波系数,而各个高频子带上分散着大部分的不重要小波系数。在渐进传输的嵌入式图像压缩系统中,重要性系数要优先进行编码传输,以便解码时首先得到图像的概貌部分,然后对不重要系数进行编码传输,进行而得到图像的细节部分。在EZW和SPIHT算法中,主要利用零树结构来对这些不重要系数进行编码,虽然利用了子带之间不重要系数的相关性,但没有充分利用同一子带中不重要系统的相关性,而SPECK算法将子带中的小波系数组织成矩形的块,对系数块进行分割排序,充分利用了同一子带中系数的相关性。
SPECK算法中,程序处理的基本单元是系数块,块分为两种类型:S类型的块和I类型的块。算法初始时,将图像的所有小波系数,I块包含除去S块中系数以后剩余的系数。定义一个判决块重要与否的符号函数Sn为:
若Sn(S)=1或Sn(I)=1,则认为S块或I块是重要的,并对重要的S块或I块进行分割,分割为更小的子块,S块和I块的分割如图1所示。
算法中,还用到两个存储系数块的列表:LIS和LSP。LIS为不重要集合表,存放 当前阈值下不重要的系数块,以便在下一阈值对这些块进行处理,LIS初始化为初始S块中的系数;LSP是重要系数表,存放重要的且只饱含一个系数的系数块,以便对这些系数做精细量化,LSP初始化为空表。
编码过程中,算法在不同的阈值下对S块和I块分别进行处理,确定重要性小波系数,对重要的小波系数优先进行量化编码。针对S块和I