对于一个阈值T,若小波系数x满足 |x| >= T ,则称x关于T是重要的系数,反之称x关于T是不重要的系数;若x是不重要的系数,并且其所有子孙都是不重要的,则称x是关于T的零树根;若x本身是不重要的系数,但它存在重要的子孙,则称x是关于T的孤立零点。
对于给定的阈值,EZW算法下图所示的Z型顺序扫描、处理小波系数(扫描顺序有两种:raster、Morton)。
EZW算法根据小波分解的级数对编码图像进行扫描,扫描次数可按精度要求任意确定,与小波分解级数无关。每次扫描的处理步骤如下:
(2)主扫描
本文中扫描次序采用图1所示的Morton次序,第i次扫描(i=1,2,…,L)时,算法按此顺序将小波分解系数与阈值Ti-1进行比较,已处理的元素由以下输出符号来表示:
P:正的重要元素
N:负的重要元素
T:零树根
Z:孤立零点
在扫描过程中,用一个主扫描表记录这些输出符号。第i次扫描结束后,将输出符号为P或N的系数的位置加标记、或将这些系数置0,以免下次主扫描重复编码。
(3)辅扫描
辅扫描对主扫描表进行顺序扫描,对其中输出符号为P或N的小波系数进行量化。在量化系数之前要构造量化器。量化器的输入间隔为[ Ti-1,2 Ti-1 ),将其等分为两个量化区间[ Ti-1,1.5 Ti-1 ),[1.5Ti-1,2 Ti-1 ),若小波系数属于前一区间,则输出量化符号“0”,重构值为1.25 Ti-1,否则输出量化符号为“1”,重构值为1.75 Ti-1。输出的符号“0”、“1”由一个辅扫描表记录。
(4)重新排序(实际上,重新排序对图像重构影响不大,一般可省略这一步骤)
为便于设置第i+1次扫描所用的量化间隔,以提高解码精度,对输出符号为P或N的数据重新排序。即将幅值在[1.5Ti-1,2 Ti-1 )中的数据排在幅值位于[ Ti-1,1.5 Ti-1 )中的数据之前。
(5)输出编码信号
编码器的输出信息有两类:一是给解码器的信息,包括阈值、主扫描表和辅扫描表;二是用于下次扫描的信息,包括阈值、重新排序后的重要系数序列。