论文部分内容阅读
摘 要:介绍了以离散小波变换为基础的嵌入式零树小波,接着用MATLAB7.1对标准的灰度图像进行仿真,并对同一幅Lena图像做了不同的压缩,实验结果表明,在EZW编码时,在较大范围里,不同编码次数,可以满足不同场合、不同图像质量的实际需要。
关键词:嵌入式零树小波;数据压缩;峰值信噪比;小波变换
中图分类号:TN911.73文献标识码:A
Analysis and Simulation on Embedded Image Coding Methods Based on EZW
HAN Li-juan
(School of Computer Science Qufu Normal University, Shandong Rizhao 276826)
Key words: embedded zerotree wavelet (EZW);data compression;PSNR;wavelet transform
图像压缩是现代信息处理技术中最为活跃的领域之一,在实际应用中也有很高的使用价值。将小波分析引入图像压缩是一个重要的手段,它的特点在于压缩比高、压缩速度快,压缩后能保持信号与图像的特征基本不变,在传输过程中可以抗干扰等等。嵌入式零树小波EZW就是一种利用小波变换进行图像压缩的技术,其一般的结构如图1所示。它主要有小波变换、量化和熵编码等3个模块组成。小波变换不损失数据,但它是EZW算法具有渐进特性的基础;量化模块对数据会产生损失,数据损失的程度取决于量化阈值的大小,EZW算法指的就是这个模块的算法。[1]
图1 EZW算法结构
1 EZW算法
该算法以零树结构为理论基础,将用于存储信息的比特流被划分成两部分:存储非零系数的比特流和存储非零系数位置的比特流。充分利用图像在小波变换后,于相同方向、不同分辨率时系数的强相关性,用较粗尺度上的小波系数来预测较细尺度上的小波系数,通过逐次逼近量化完成嵌入编码。EZW将小波分解系数分为5类:即无意义系数、零树根、正的有意义系数、负的有意义系数和孤立零点。在设定一个阈值T后,开始对系数进行扫描。扫描先从最低频的LLk开始,然后按HLk、LHk和HHk顺序扫描,再转向下一层子带,形成一张含有以上5类元素的主表,然后将有意义的系数从主表中移至另外一张辅表,以其绝对值位于[T,T+T/2] 或[T+T/2,2T]分别编码为0和1。在一轮扫描完成后,对主表中的符号采用熵编码形成码流,然后是辅表码流。最后将阈值减半,对尚未判定有意义的系数重复上述扫描过程,直到满足目标码率的需要。算法总框图如图2所示。[2]
EZW算法根据小波分解的级数对编码图像进行扫描,扫描次数可按精度要求任意确定,和小波分解级数无关。每次扫描的处理步骤如下:
(1)选择阈值
初始阈值(第一次扫描的阈值):
T=2,其中
c是L级小波分解的分解系数,
c是c(i,j)的绝对值。之后每次扫描的阈值与上一次扫描的阈值之间的关系为:
T=,i=1,2,…L-1
(2)主扫描
扫描子图像系数的方法有两种:一种叫做光栅扫描,另一种叫做迂回扫描,如图3所示
在仿真过程中,采用迂回扫描方式,在扫描过程中,用一个主扫描表记录这些输出符号。第i次扫描结束后,将输出符号为P或N的系数的位置加标记、或将这些系数置0,以免下次主扫描重复编码。
(3)辅扫描
辅扫描对主扫描表进行顺序扫描,对其中输出符号为P或N的小波系数进行量化。在量化之前要构造量化器。量化器的输入间隔为[Ti-1,2Ti-1),将其等分为两个量化区间[Ti-1,1.5Ti-1),[1.5Ti-1,2Ti-1),若小波系数属于前一区间,则输出量化符号“0”,重构值为1.25Ti-1,否则输出量化符号为“1”,重构值为1.75Ti-1。输出的符号“0”、“1”由一个辅扫描表记录。
(4)重新排序
为便于设置第i+1次扫描所用的量化间隔,以提高解码精度,对输出符号为P或N的数据进行重新排序。即将幅值在[1.5Ti-1,2Ti-1)中的数据排在幅值位于[Ti-1,1.5Ti-1)中的数据之前。经过实验证明,重新排序对图像重构影响不大,此次仿真中,没有进行重新排序。
(5)输出编码信息
编码器的输出信息有两类:一是给解码器的信息,包括阈值、主扫描表和辅扫描表;二是于下次扫描的信息,包括阈值、重新排序后的重要系数序列(此次仿真没有重排)。[4]
2 MATLAB仿真实现
根据上面所述的EZW图像压缩编码算法,要将一幅灰度图像进行压缩编码,首先要进行小波变换,在这里选择了标准的哈尔小波变换,在EZW编码之后,根据标准的Huffman码表进行熵编码,输出压缩图像的比特序列,实现了图像压缩。在接收端,则经过Huffman熵解码、EZW解码,逆哈尔小波变换得到重构图像,在此过程中,EZW编解码的次数是一致的。
3 主程序
clear all
X=imread('lena.bmp');
subplot(1,2,1);imshow(X,[]);title('原始图像');axis square;
de_x=haardec(X);
[DD,L1,SS,L2]=ezw_encode(de_x,6);
[encode_x,h,sortindex]=huffman(DD); encode_bin_x=change(encode_x);
dlmwrite('encode1.txt',encode_bin_x,' ');
dlmwrite('encode2.txt',SS,' ');
s=size(encode_bin_x,2)+size(SS,2);
[m,n]=size(X);
decode_x=ihuffman(encode_x,h,sortindex);
ezw_decode_x=ezw_decode(de_x,6,decode_x,L1,SS,L2);
re_x=haarrec(ezw_decode_x);
re_x=uint8(re_x);
subplot(1,2,2);imshow(re_x,[]);title('重构图像');axis square;
psnr=PSNR(X,re_x);
4 实验结果
用上述Matlab程序对标准的Lena图像进行压缩重构,编解码的次数分别从3次到7次,实验结果如下图4所示:
以上从主观视觉上对不同次数的压缩进行了比对,下面将列出一些数据,更客观的来进行比较,在此采用评估编码系统性能的峰值信号噪声比来衡量,定义为最大像素值与均方差之比。数据如表1所示:
表1 5次不同压缩的实验结果
从实验中可以得出:在对图像进行编解码时,可以进行不同次数的选择,随着次数的增加,重构图像的效果越来越好,PSNR越来越大,但是压缩比会减小,编解码的时间会增加。
5 结束语
在EZW编码时,在较大范围里,都可较好的实现图像的重构,并且通过采用不同编码次数的方式,可以满足不同场合、不同图像质量的实际需要。
参考文献:
[1]林福宗.多媒体技术基础[M].第2版.北京:清华大学出版社,2002.
[2]J.M. SHAPIRO. Embedded image coding using zero-tree of wavelets coefficients [J].IEEE Trans.Signal Proceeding 1993,41(12):3445-3462.
[3]何林远,毕笃彦.提升方案结合改进EZW的快速图形图像压缩方法[J]微计算机信息,2008,4-3:303-312.
[4]马文波,赵保军,毛二可.基于图像先验知识的快速EZW算法研究[J]激光与红外,2007,37-5:485-487.
关键词:嵌入式零树小波;数据压缩;峰值信噪比;小波变换
中图分类号:TN911.73文献标识码:A
Analysis and Simulation on Embedded Image Coding Methods Based on EZW
HAN Li-juan
(School of Computer Science Qufu Normal University, Shandong Rizhao 276826)
Key words: embedded zerotree wavelet (EZW);data compression;PSNR;wavelet transform
图像压缩是现代信息处理技术中最为活跃的领域之一,在实际应用中也有很高的使用价值。将小波分析引入图像压缩是一个重要的手段,它的特点在于压缩比高、压缩速度快,压缩后能保持信号与图像的特征基本不变,在传输过程中可以抗干扰等等。嵌入式零树小波EZW就是一种利用小波变换进行图像压缩的技术,其一般的结构如图1所示。它主要有小波变换、量化和熵编码等3个模块组成。小波变换不损失数据,但它是EZW算法具有渐进特性的基础;量化模块对数据会产生损失,数据损失的程度取决于量化阈值的大小,EZW算法指的就是这个模块的算法。[1]
图1 EZW算法结构
1 EZW算法
该算法以零树结构为理论基础,将用于存储信息的比特流被划分成两部分:存储非零系数的比特流和存储非零系数位置的比特流。充分利用图像在小波变换后,于相同方向、不同分辨率时系数的强相关性,用较粗尺度上的小波系数来预测较细尺度上的小波系数,通过逐次逼近量化完成嵌入编码。EZW将小波分解系数分为5类:即无意义系数、零树根、正的有意义系数、负的有意义系数和孤立零点。在设定一个阈值T后,开始对系数进行扫描。扫描先从最低频的LLk开始,然后按HLk、LHk和HHk顺序扫描,再转向下一层子带,形成一张含有以上5类元素的主表,然后将有意义的系数从主表中移至另外一张辅表,以其绝对值位于[T,T+T/2] 或[T+T/2,2T]分别编码为0和1。在一轮扫描完成后,对主表中的符号采用熵编码形成码流,然后是辅表码流。最后将阈值减半,对尚未判定有意义的系数重复上述扫描过程,直到满足目标码率的需要。算法总框图如图2所示。[2]
EZW算法根据小波分解的级数对编码图像进行扫描,扫描次数可按精度要求任意确定,和小波分解级数无关。每次扫描的处理步骤如下:
(1)选择阈值
初始阈值(第一次扫描的阈值):
T=2,其中
c是L级小波分解的分解系数,
c是c(i,j)的绝对值。之后每次扫描的阈值与上一次扫描的阈值之间的关系为:
T=,i=1,2,…L-1
(2)主扫描
扫描子图像系数的方法有两种:一种叫做光栅扫描,另一种叫做迂回扫描,如图3所示
在仿真过程中,采用迂回扫描方式,在扫描过程中,用一个主扫描表记录这些输出符号。第i次扫描结束后,将输出符号为P或N的系数的位置加标记、或将这些系数置0,以免下次主扫描重复编码。
(3)辅扫描
辅扫描对主扫描表进行顺序扫描,对其中输出符号为P或N的小波系数进行量化。在量化之前要构造量化器。量化器的输入间隔为[Ti-1,2Ti-1),将其等分为两个量化区间[Ti-1,1.5Ti-1),[1.5Ti-1,2Ti-1),若小波系数属于前一区间,则输出量化符号“0”,重构值为1.25Ti-1,否则输出量化符号为“1”,重构值为1.75Ti-1。输出的符号“0”、“1”由一个辅扫描表记录。
(4)重新排序
为便于设置第i+1次扫描所用的量化间隔,以提高解码精度,对输出符号为P或N的数据进行重新排序。即将幅值在[1.5Ti-1,2Ti-1)中的数据排在幅值位于[Ti-1,1.5Ti-1)中的数据之前。经过实验证明,重新排序对图像重构影响不大,此次仿真中,没有进行重新排序。
(5)输出编码信息
编码器的输出信息有两类:一是给解码器的信息,包括阈值、主扫描表和辅扫描表;二是于下次扫描的信息,包括阈值、重新排序后的重要系数序列(此次仿真没有重排)。[4]
2 MATLAB仿真实现
根据上面所述的EZW图像压缩编码算法,要将一幅灰度图像进行压缩编码,首先要进行小波变换,在这里选择了标准的哈尔小波变换,在EZW编码之后,根据标准的Huffman码表进行熵编码,输出压缩图像的比特序列,实现了图像压缩。在接收端,则经过Huffman熵解码、EZW解码,逆哈尔小波变换得到重构图像,在此过程中,EZW编解码的次数是一致的。
3 主程序
clear all
X=imread('lena.bmp');
subplot(1,2,1);imshow(X,[]);title('原始图像');axis square;
de_x=haardec(X);
[DD,L1,SS,L2]=ezw_encode(de_x,6);
[encode_x,h,sortindex]=huffman(DD); encode_bin_x=change(encode_x);
dlmwrite('encode1.txt',encode_bin_x,' ');
dlmwrite('encode2.txt',SS,' ');
s=size(encode_bin_x,2)+size(SS,2);
[m,n]=size(X);
decode_x=ihuffman(encode_x,h,sortindex);
ezw_decode_x=ezw_decode(de_x,6,decode_x,L1,SS,L2);
re_x=haarrec(ezw_decode_x);
re_x=uint8(re_x);
subplot(1,2,2);imshow(re_x,[]);title('重构图像');axis square;
psnr=PSNR(X,re_x);
4 实验结果
用上述Matlab程序对标准的Lena图像进行压缩重构,编解码的次数分别从3次到7次,实验结果如下图4所示:
以上从主观视觉上对不同次数的压缩进行了比对,下面将列出一些数据,更客观的来进行比较,在此采用评估编码系统性能的峰值信号噪声比来衡量,定义为最大像素值与均方差之比。数据如表1所示:
表1 5次不同压缩的实验结果
从实验中可以得出:在对图像进行编解码时,可以进行不同次数的选择,随着次数的增加,重构图像的效果越来越好,PSNR越来越大,但是压缩比会减小,编解码的时间会增加。
5 结束语
在EZW编码时,在较大范围里,都可较好的实现图像的重构,并且通过采用不同编码次数的方式,可以满足不同场合、不同图像质量的实际需要。
参考文献:
[1]林福宗.多媒体技术基础[M].第2版.北京:清华大学出版社,2002.
[2]J.M. SHAPIRO. Embedded image coding using zero-tree of wavelets coefficients [J].IEEE Trans.Signal Proceeding 1993,41(12):3445-3462.
[3]何林远,毕笃彦.提升方案结合改进EZW的快速图形图像压缩方法[J]微计算机信息,2008,4-3:303-312.
[4]马文波,赵保军,毛二可.基于图像先验知识的快速EZW算法研究[J]激光与红外,2007,37-5:485-487.