小波用于编码―――零树编码方案-Read

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

小波用于编码 ――― 零树编码方案
1 小波变换应用于图像压缩编码
用小波变换的方法进行图像数据的压缩编码是变换编码的一种,将时域信号变换到小波域后会得到一个多分辨率、能量集中的系数空间。

能量越集中,系数被压缩的程度就越大。

早在小波分析出现之前,人们就试图用多分辨率分析的思想对信号进行处理,以突破傅立叶变换的局限性,最著名的是Burt 和Adelson 的Laplace 金字塔编码;后来,Mallat[11]提出了小波多分辨率分析算法;Daubechies 用基于离散滤波器迭代的方法构造了紧支集的规范正交小波基,使小波分解可以用信号和离散滤波器的卷积运算来实现,从而使小波分解被广泛应用于图像分解。

正交小波对应一个正交镜像滤波器,就是说低通滤波器h 和高通滤波器g 正交。

双正交小波有两个小波,即小波Ψ和它的对偶小波ψ~
,它们对应的滤波器分别为{h,g }和{g h ~,~}。

其中,h 与g ~正交,g 与h ~正交,即满足:
1n n n h )1(g ~+--=;1n n n h ~)1(g +--=;)5.3(h ~h 0
,k n k 2n n δ=∑+
进行图像的压缩编码时,用一个小波分解,用另一个重构。

母波选择的合适与否直接影响着图像编码的结果,正交小波的变换明显的不如双正交小波。

本文采用的均是附录二中介绍的双正交小波。

小波变换是变换编码的一种,也要经过变换、量化和压缩三个步骤。

将原始图像进行离散小波变换(DWT )后,如果立即进行相应的逆变换,会得到精确的原始图像,当然这要忽略在计算时带来的误差。

对于一幅图像所得到的小波系数的能量要比在时域时集中的多,这样就很有利于将其量化为字符流。

现代的量化方法有很多:如:标量量化、向量量化和零树编码量化等都是非常有效的。

最后要对得到的字符流进行无损压缩,这要用到一些经典的方法,如:Huffman 、ADPCM 、RLE 等。

下面将讨论一种零树编码量化的方法。

2 嵌入式零树编码方法(EZW)简介
零树(Zerotree)可以认为是一种新的数据结构,它最初是由Lewis和Knowles提出的,他们以根系数的预测定义的能量公式来做为零树的判断条件,若树能量小于阈值则判决该树为零树;1993年,Shapiro[17]利用小波变换后系数在各尺度之间的相似性提出了嵌入式逐次逼近量化的零树编码方法(Embedded Zerotree Wavelet,记为EZW),以逐级递减的量化阈值为基准,找到重要系数进行标识后再精细编码,由重要系数表和重要标记辅助表组成;在这个基础上,1996年,Said和Pearlman[18]提出了基于内嵌零树的块编码(Set Partitioning In Hierarchical Trees,记为SPIHT)算法,利用S+P变换,生成了不重要块表(List of Insignificant Sets,记为LIS)、不重要像素表(List of Insignificant Pixels,记为LIP) 和重要像素表(List of Significant Pixels,记为LSP),用这些表对EZW进行改进,他们的思想可以认为是一种自适应方法,即在一个尺度下从大块开始扫描,如果没有高于阈值的数就进行下一个大块的处理,如果有就将这个大块分割成减半的小块再进行处理;1998年,V.N.Ramaswamy[19]提出了对SPIHT的改进,并将其应用于无损编码;1997年,C.D.Creusere [20]等提出了REZW(Robust EZW)算法。

所有这些都是基于Shapiro的EZW的改进,为了说明EZW算法,先要搞清楚小波系数图中的“父子(根基-衍生)”关系。

一幅图像经过二维离散小波变换后,可以得到指定分解尺度下的小波系数,如图1所示。

图1 小波分解示意图
利用快速算法,将二维的小波变换分解为两个一维的运算,分别用高通与
低通滤波器,进行一级分解与重构的示意图分别如图2和图3所示。

图2 DWT分解快速算法
图3 DWT重构快速算法
如果再对LL1进行分解,可以得到LL2、LH2、HL2、HH2。

变换系数在高尺度与低尺度之间有一定的相关性,这种相关性如图4所示。

Shapiro正是利用了这种相关性将零树引入小波编码中,EZW思想可以表述如下:
一个小波系数x,对于一个给定的阈值T,如果|x|<T,则称x是不重要的。

如果大尺度下某系数是不重要的,而且在它的“孩子”,就是小尺度相应位置的系数中,也都是不重要的,则称小波系数形成一个零树,此时在大尺度上的那个系数称为零树根ZTR;如果该系数小于阈值,但它的“孩子”中却有重要系数,则称为孤立零,记为IZ;当该系数大于阈值时,称为重要系数,根据符号的不同,分别记为正重要系数POS 和负重要系数NEG。

这四种情况下的系数形成了重要系数图,它的流程图如图5所示。

这种编码方案从大尺度到小尺度依次进行,按如图6所示的Z扫描排序。

图4 各尺度间的父子(根基---衍生)关系
图4 零树编码流程图
图5 Z扫描排序示意图
最终得到的重要系数图中应当有四种符号,即ZTR、IZ、POS、NEG,可以考虑用两个比特来表示它们。

另外为了达到给定的精度还有一个辅助图来标记重要系数的精确重构值。

具体的步骤如下:
(1)对图像进行N级小波分解,求得系数图。

(2)对最大尺度的LL N计算出均值,确定初始量化阈值T0。

(3)用初始阈值对各级小波系数进行如上零树判断,确定符号,记入重要系
数编码表内;这里IZ、ZTR的重构值为0,POS的重构值为T0+ T0/2,NEG
的重构值为-(T0+ T0/2)。

当出现零树根的系数时,它所衍生出的系数在下个小尺度编码时不考虑,
只需扫描标记为孤立零、重要系数的即可,这样可以提高编码效率。

(4)为了完成嵌入编码,实现逐次逼近量化,对检出的重要值,即POS、NEG,
可以进一步精确确定它们的重构值:
如果重要值 x> T0+ T0/2,则记为POS1,重构值为T0+T0/2 + T0/4;
如果重要值 T0<x< T0+ T0/2,则记为POS0 ,重构值为T0+ T0/2 - T0/4,;
如果重要值-(T0+ T0/2)<x<-T0,则记为NEG0 ,重构值为-(T0+ T0/2)+ T0/4,;
如果重要值 x<-(T0+ T0/2),则记为NEG1 ,重构值为-(T0+ T0/2) - T0/4,;
将POS1和NEG1记为“1”,POS0和NEG0记为“0”,记在辅助表中。


(x-精细重构值)代替原来的系数x,形成剩余系数图。

(1)将阈值T0减半,再进行如上操作,直到剩余系数图中的值均为零或达到
给定的要求为止。

由重要系数图可以粗略的恢复出原图像,而加上标记着重要系数的辅助表就可以比较精确的恢复。

相关文档
最新文档