第9章小波图像编码 的组合符号依此类推。由于低频子图像的系数要比高频子图像的系数大,零树编码技术就是 利用这个事实来设计编码/解码过程中每一级使用的量化器 HL2 H3 HH3 HIL 1 LH2|m2|水平子图像 垂直子图像 对第图像 图9-06Lena三级分解图像 各级子图像中的系数之间的关系可以用树的形式描述。如图9-07(a)所示,最低频率的子 图像在左上角,最高频率的子图像在右下角,由同一方向和相同空间位置上的所有小波系数 组成一棵树。例如,从第三级子图像HH3、第二级子图像HH到第一级子图像HH的相应位 置上的所有系数构成一棵下降树。按箭头所指的方向,各级系数的名称分别用祖系数、父系 数、子系数和孙系数来称呼。举例来说,LL3的系数为{63},HH和HH中的系数分别为{3} 和{4,6,3,-2},由这些系数构成的树如图907(b)所示。如果把{63}指定为父系数,{3}就称为 子系数,而{4,6,3,-2}中的4个系数就称为孙系数 国画m 图十 (a)构造方法 (b)小波系数举例 图9-07EZW编码树的构造 现在再来看零树的概念。为便于比较,把图9-07(b)所示的两棵树用图9-08a)和b)表示 假设编码时开始的阈值T=32,由于63比32大,这样的树叫做非零树,如图9-08(a)所示。 假设下一次编码时的阈值T1=16,把13当作父系数,它的幅度比16小,而它的所有4个子 系数的幅度都比16小,这样的树叫做零树,系数-13叫做零树根,如图9-08(b)所示。根据以 上的分析,零树的定义可概括为一句话:子孙系数都为零的树。定义零树的重要意义在于 如果一棵树是零树,那么这棵树就可以用一个预先定义的符号来代表整棵树,从而提高了压 缩比 顺便要指出的是,小波图像系数结构的形式不只是上面介绍的一种,也可能不是最好的 种
第9章 小波图像编码 6 的组合符号依此类推。由于低频子图像的系数要比高频子图像的系数大,零树编码技术就是 利用这个事实来设计编码/解码过程中每一级使用的量化器。 图9-06 Lena三级分解图像 各级子图像中的系数之间的关系可以用树的形式描述。如图9-07(a)所示,最低频率的子 图像在左上角,最高频率的子图像在右下角,由同一方向和相同空间位置上的所有小波系数 组成一棵树。例如,从第三级子图像HH3、第二级子图像HH2到第一级子图像HH1的相应位 置上的所有系数构成一棵下降树。按箭头所指的方向,各级系数的名称分别用祖系数、父系 数、子系数和孙系数来称呼。举例来说,LL3的系数为{63}, HH2和HH1中的系数分别为{3} 和{4, 6, 3, -2}, 由这些系数构成的树如图9-07(b)所示。如果把{63}指定为父系数,{3}就称为 子系数,而{4, 6, 3, -2}中的4个系数就称为孙系数。 (a) 构造方法 (b) 小波系数举例 图9-07 EZW编码树的构造 现在再来看零树的概念。为便于比较,把图9-07(b)所示的两棵树用图9-08(a)和(b)表示。 假设编码时开始的阈值 T0 = 32 ,由于63比32大,这样的树叫做非零树,如图9-08(a)所示。 假设下一次编码时的阈值 T1 =16 ,把-13当作父系数,它的幅度比16小,而它的所有4个子 系数的幅度都比16小,这样的树叫做零树,系数-13叫做零树根,如图9-08(b)所示。根据以 上的分析,零树的定义可概括为一句话:子孙系数都为零的树。定义零树的重要意义在于, 如果一棵树是零树,那么这棵树就可以用一个预先定义的符号来代表整棵树,从而提高了压 缩比。 顺便要指出的是,小波图像系数结构的形式不只是上面介绍的一种,也可能不是最好的 一种
第9章小波图像编码 (a)非零树例子 (b)零树例子 图9-08非零树与零树的概念 2.扫描方法 EZW算法对小波系数的进行编码的次序叫做扫描。扫描子图像系数的方法有两种, 种叫做光栅扫描( raster scan),如图9-0%a)所示,另一种叫做迂回扫描( morton scan),如图 9-09(b)所示。 (a)光栅扫描 (b)迂回扫描 图9-09小波变换系数扫描方法 3.算法 EZW算法可粗略地归纳为下面几个主要步骤 1)阈值T的选择 开始时的阈值石通常按下式估算, T=2Lkg2MXxD)⊥ 其中,MAX()表示最大的系数值,X;表示小波变换分解到第i级时的系数。以后每扫描 次,阈值减少一半 (2)给系数分配符号 使用EZW算法编码图像时每一次扫描需要执行两种扫描,并产生两种输出的符号。第 种扫描叫做主扫描( dominant pass,它的任务是把小波系数Ⅹ与阈值T进行比较,然后指 定表9-1中的4个符号之一,笔者把这种符号叫做系数符号,对整幅图像扫描之后产生系数符 号序列。第二种扫描叫做辅扫描( subordinate pass,其任务是对主扫描取出的带有符号P或者 N的系数进行量化,产生代表对应量化值的符号“0”和“1”,笔者把这种符号称为量化符
第9章 小波图像编码 7 (a) 非零树例子 (b) 零树例子 图9-08 非零树与零树的概念 2. 扫描方法 EZW算法对小波系数的进行编码的次序叫做扫描。扫描子图像系数的方法有两种,一 种叫做光栅扫描(raster scan),如图9-09(a)所示,另一种叫做迂回扫描(morton scan),如图 9-09(b)所示。 (a) 光栅扫描 (b) 迂回扫描 图9-09 小波变换系数扫描方法 3. 算法 EZW算法可粗略地归纳为下面几个主要步骤。 (1) 阈值 T 的选择 开始时的阈值 T0 通常按下式估算, log (MAX(| |)) Xi T = 2 0 2 其中,MAX(.)表示最大的系数值, Xi 表示小波变换分解到第 i 级时的系数。以后每扫描一 次,阈值减少一半。 (2) 给系数分配符号 使用EZW算法编码图像时每一次扫描需要执行两种扫描,并产生两种输出的符号。第 一种扫描叫做主扫描(dominant pass),它的任务是把小波系数 X 与阈值 T 进行比较,然后指 定表9-1中的4个符号之一,笔者把这种符号叫做系数符号,对整幅图像扫描之后产生系数符 号序列。第二种扫描叫做辅扫描(subordinate pass),其任务是对主扫描取出的带有符号P或者 N的系数进行量化,产生代表对应量化值的符号“0”和“1”,笔者把这种符号称为量化符 号
第9章小波图像编码 主扫描:扫描每一个系数以产生系数符号 如果系数幅度大于阈值(T)且为正数,输出符号P( positive), 如果系数幅度的绝对值大于阈值(T)且为负数,输出符号 N(negative), >如果系数是零树根,输出T( zerotree), 如果系数幅度小于阈值但树中有大于阈值的子孙系数,输出孤立零符号Z( isolated zero) 为了确定一个系数是否为零树根T或者是孤立零Z,需要对整个4叉树进行扫描,这样就 需要花时间。此外,为了保护已经被标识为零树的所有系数,需要跟踪它们,这就意味需要 存储空间来保存。最后要把绝对值大于阈值的系数取出来,并在图像系数相应的位置上填入 一个标记或者零,这样做可防止对它们再编码。 辅扫描:量化带符号P和N的系数 在量化系数之前要构造量化器。量化器的输入间隔为[T1,2T1),该间隔被1.571分 成两个部分:[T1,1571)和[1571,2T1),量化间隔为0.571,其中i为第i次编码。量 化器的输出为量化符号“0”和“1”,“0”对应量化值为(1.5-0.25)71,“1”对应量化 值为(1.5+0.25)T1 例如,第一次扫描时的阈值石=32,量化器的间隔就为[32,64),该间隔[32,64)被 48分成两个相等的部分:[32,48)和[48,64),量化间隔为16。对系数进行量化时,如果幅 度在[32,48)的范围里,该系数的量化值为“0”,对应的量化值为(1.5-0.25)1=40 如果幅度在[48,64)的范围里,该系数的量化符号为“1”,它的量化值为 (15+0.25)7=56,详见图913。 表9-1EZW系数符号集 判断条件 输出符号 xl>T X>0 P( positive):表示正,重要系数 X<0 ( negative):表示负,重要系数 所有子孙系数|<T T:零树根,不重要系数 <T X叫做零树的根 至少有一个子孙系数z:孤立的零,不重要系数 T 933算法举例 为进一步理解EZW算法,综合了C. Valens[8]和在读博士生 Ghassan Al- Regibl提供的 个例子[7。假设有一幅8×8的图像P,离散小波变换矩阵为W,经过小波变换之后的图像
第9章 小波图像编码 8 主扫描:扫描每一个系数以产生系数符号 ➢ 如果系数幅度大于阈值( T )且为正数,输出符号 P(positive), ➢ 如果系数幅度的绝对值大于阈值( T )且为负数,输出符号 N(negative), ➢ 如果系数是零树根,输出 T(zerotree), ➢ 如果系数幅度小于阈值但树中有大于阈值的子孙系数,输出孤立零符号 Z(isolated zero)。 为了确定一个系数是否为零树根T或者是孤立零Z,需要对整个4叉树进行扫描,这样就 需要花时间。此外,为了保护已经被标识为零树的所有系数,需要跟踪它们,这就意味需要 存储空间来保存。最后要把绝对值大于阈值的系数取出来,并在图像系数相应的位置上填入 一个标记或者零,这样做可防止对它们再编码。 辅扫描:量化带符号P和N的系数 在量化系数之前要构造量化器。量化器的输入间隔为 [ , ) T T i i − − 1 1 2 ,该间隔被1.5 Ti−1 分 成两个部分: [ , . ) T T i i − − 1 1 1 5 和 [ . , ) 1 5 2 T T i i − − 1 1 ,量化间隔为0.5 Ti−1 , 其中 i 为第 i 次编码。量 化器的输出为量化符号“0”和“1”,“0”对应量化值为 ( . . ) 1 5 0 25 − Ti−1 ,“1”对应量化 值为 ( . . ) 1 5 0 25 + Ti−1。 例如,第一次扫描时的阈值 T0 = 32 ,量化器的间隔就为 [32, 64) ,该间隔 [32, 64) 被 48分成两个相等的部分: [ , ) 32 48 和 [ , ) 48 64 ,量化间隔为16。对系数进行量化时,如果幅 度在 [ , ) 32 48 的范围里,该系数的量化值为“0”,对应的量化值为 ( . . ) 1 5 0 25 40 − = T0 ; 如 果 幅 度 在 [ , ) 48 64 的 范 围 里 , 该 系 数 的 量 化 符 号 为 “ 1 ” , 它 的 量 化 值 为 ( . . ) 1 5 0 25 56 + = T0 ,详见图9-13。 表9-1 EZW系数符号集 判断条件 输出符号 X T X 0 P(positive):表示正,重要系数 X 0 N(negative):表示负,重要系数 X T 所有子孙系数 X T i , X 叫做零树的根 T:零树根,不重要系数 至 少 有 一 个 子 孙 系 数 X T i Z:孤立的零,不重要系数 9.3.3 算法举例 为进一步理解EZW算法,综合了C. Valens[8]和在读博士生Ghassan Al-Regib[9]提供的一 个例子[7]。假设有一幅8×8的图像 P ,离散小波变换矩阵为 W ,经过小波变换之后的图像
第9章小波图像编码 为X=WP,小波图像系数X和扫描方式分别如图910(a)和(b所示。另外还假设,图9-10(a) 所示的数据是经过3级分解的小波图像系数 15143-125-739 59.1|47 2|-36-4|3636 115 03-4 (a)小波图像数据 (b)迂回扫描 图9-108×8小波变换图像 1.树结构 为叙述方便,图9-10(a中的系数用组合符号( YMYYN)表示。最低分辨率子图像(即第3 级)中的每一个系数在高一级分辨率子图像(即第2级)中有3个子系数与它有关,它们之间构成 的树如图9-11(b)所示。说明如下 Ⅺ1/LL3表示子带LL3的系数,它与第2级子图像中相关的子系数有3个:/HL2, XH2和XHH2。 X2/HL3表示子带HL3的系数,它与第2级子图像中相关的子系数有3个:X2/H2 X∥LH和X2/HH2 B3∥LB3表示子带LH3的系数,它与第2级子图像中相关的子系数有3个:X3/HL2 X3/LH2和X3/HH2 X4/HH3表示子带HHB的系数,它与第2级子图像中相关的子系数有3个:X4HL2 X4∥LH和X4/HH2 x2/1/x21X1/×2x3/×4 LL3 HL3 H2HL2 HL1 HLI HL 4/×5/|X6/x7/|X8 LH3 HH3 HL2 HL2 HL1 HL1HL1 HLI Xx2/x/x2x09x10x14×12|21/ LH2 LH2 HH2 HH2HL1HL1H1H1 闹图 LH2HH2 x3X4x3413814x15161 LH2 LH2 HH2 HH2 HL HL1HL1 X5/X6/7/ X8/ 5/X6/X7/X8 LHI LH1 LH1 HH1 HH1HH1 HH1 HH3 x09X10/X11/X12/X09/X10/x11/×12 LHI LHI LHI LHI HHI HHI HHI HHI Ⅺ1314415X16X13X14/×15/×16 LHILHI LHI LHI HHlHHlHHl HH1 圄鹵圖圄鹵圖 (a)8×8子图像小波变换系数(b)最低频带小波变换系数树 图9-11编码树的结构(1) 在其他子图像中,任何一个系数在高一级分辨率子图像中都有4个子系数与它有关,它 们之间构成的树如图9-12(b)所示,图中只表示了一部分的树。从图中可以看到
第9章 小波图像编码 9 为 X WP = ,小波图像系数 X 和扫描方式分别如图9-10(a)和(b)所示。另外还假设,图9-10(a) 所示的数据是经过3级分解的小波图像系数。 (a) 小波图像数据 (b) 迂回扫描 图9-10 8×8小波变换图像 1. 树结构 为叙述方便,图9-10(a)中的系数用组合符号(YM/YYN)表示。最低分辨率子图像(即第3 级)中的每一个系数在高一级分辨率子图像(即第2级)中有3个子系数与它有关,它们之间构成 的树如图9-11(b)所示。说明如下: ➢ X1/LL3 表示子带 LL3 的系数,它与第 2 级子图像中相关的子系数有 3 个:X1/HL2, X1/LH2 和 X1/HH2。 ➢ X2/HL3 表示子带 HL3 的系数,它与第 2 级子图像中相关的子系数有 3 个:X2/HL2, X2/LH2 和 X2/HH2。 ➢ X3/LH3 表示子带 LH3 的系数,它与第 2 级子图像中相关的子系数有 3 个:X3/HL2, X3/LH2 和 X3/HH2。 ➢ X4/HH3 表示子带 HH3 的系数,它与第 2 级子图像中相关的子系数有 3 个:X4/HL2, X4/LH2 和 X4/HH2。 (a) 8×8子图像小波变换系数 (b) 最低频带小波变换系数树 图9-11 编码树的结构(1) 在其他子图像中,任何一个系数在高一级分辨率子图像中都有4个子系数与它有关,它 们之间构成的树如图9-12(b)所示,图中只表示了一部分的树。从图中可以看到
X1/2表示子带HL2的系数,它与第1级子图像中相关的子系数有4个:H1/H1 2H1,X5H1和X6/HL1 X/HL2表示子带HL2的系数,它与第1级子图像中相关的子系数有4个:H3/H 4/HL1,MTH1和X8/HLl X3HL2表示子带HL2的系数,它与第1级子图像中相关的子系数有4个:X09/HL1, X1OH1,X13/H1和X4/HL1 X4/H2表示子带HL2的系数,它与第1级子图像中相关的子系数有4个:X1HL1, X12/HL1 X15/HL1 FH X16/HLI 1/x2/1X1 L3H3 H2 L1 HLI HLI 3/x4/1x30 [2 LH2 LH2 HH2 HH2 HLI HL HI LHI LHI LHI HHI HH (a)8×8子图像小波变换系数(b)2级子图像小波变换部分系数树 图9-12编码树的结构(2) 2.编码 根据对图像分辨率的要求,编码时可对小波图像系数进行多次扫描。每一次扫描包括主 扫描和辅扫描 (1)第一次扫描: 步骤1:选择初始阈值。最大的系数为63,因此选择T=32 步骤2:指定系数的符号。假设存放系数符号的缓冲存储器为D1,存放量化符号的缓冲 存储器的符号为S1。扫描每一个系数并且与阈值32进行比较。在比较过程中对每一个系数指 定一个符号,并把符号放在D1中。当一个系数被指定为符号T时,所有的子孙系数就不再扫 描,并用“×”表示,扫描结果如图9-13(a)所示。图中,输出符号的下标表示系数被标识的 次序,仅仅是为了叙述方便。对扫描结果作如下说明: ①X∥L3的系数是63,它大于阈值32,因此输出的符号为P ②X2/HL3的系数是-34,它的符号输出为是N2。 ③M3LH的系数是-31,它的幅度相对于阈值32来说是不重要的,它下属子系数 X3H2,X3H和X3HH2},孙系数{9H1,H10HL1,3∥HL,Ⅺ4HL1},{X9∥LH, 1OLH1,X13LH1,14H}和{X9/HH,XOHH,X13/HH1,X14/HH}的幅度都比它小,因 此它输出的符号为零树符号T ④XDLH2的系数是14,它小于阈值32。在它的子系数{3/LH,X4LH,M7LH,X8/LH} 中,X4/LH的系数是47,它大于阈值32,因此M2LH输出符号为孤立零符号Z ⑤4LH的系数是47,相对于阈值32是重要的,产生符号P6 第一次主扫描之后,缓冲存储器Dl中的系数符号为: DI: PNTTPTTZTTTTTTTPTT
第9章 小波图像编码 10 ➢ X1/HL2 表示子带 HL2 的系数,它与第 1 级子图像中相关的子系数有 4 个:X1/HL1, X2/HL1, X5/HL1 和 X6/HL1。 ➢ X2/HL2 表示子带 HL2 的系数,它与第 1 级子图像中相关的子系数有 4 个:X3/HL1, X4/HL1, X7/HL1 和 X8/HL1。 ➢ X3/HL2 表示子带 HL2 的系数,它与第 1 级子图像中相关的子系数有 4 个:X09/HL1, X10/HL1, X13/HL1 和 X14/HL1。 ➢ X4/HL2 表示子带 HL2 的系数,它与第1 级子图像中相关的子系数有 4 个:X11/HL1, X12/HL1, X15/HL1 和 X16/HL1。 (a) 8×8子图像小波变换系数 (b) 2级子图像小波变换部分系数树 图9-12 编码树的结构(2) 2. 编码 根据对图像分辨率的要求,编码时可对小波图像系数进行多次扫描。每一次扫描包括主 扫描和辅扫描。 (1) 第一次扫描: 步骤1: 选择初始阈值。最大的系数为63,因此选择 T0 = 32 。 步骤2: 指定系数的符号。假设存放系数符号的缓冲存储器为D1,存放量化符号的缓冲 存储器的符号为S1。扫描每一个系数并且与阈值32进行比较。在比较过程中对每一个系数指 定一个符号,并把符号放在D1中。当一个系数被指定为符号T时,所有的子孙系数就不再扫 描,并用“×”表示,扫描结果如图9-13(a)所示。图中,输出符号的下标表示系数被标识的 次序,仅仅是为了叙述方便。对扫描结果作如下说明: ① X1/LL3的系数是63,它大于阈值32,因此输出的符号为P1。 ② X2/HL3的系数是-34, 它的符号输出为是N2。 ③ X3/LH3的系数是-31, 它的幅度相对于阈值32来说是不重要的,它下属子系数 {X3/HL2, X3/LH2和X3/HH2},孙系数{X9/HL1, X10//HL1, X13//HL1, X14//HL1}, {X9//LH1, X10/LH1, X13/LH1, X14/LH1}和{X9//HH1, X10/HH1, X13/HH1, X14/HH1}的幅度都比它小,因 此它输出的符号为零树符号T3。 ④ X2/LH2的系数是14,它小于阈值32。在它的子系数{X3/LH1, X4/LH1, X7/LH1, X8/LH1} 中, X4/LH1的系数是47, 它大于阈值32, 因此X2/LH2输出符号为孤立零符号Z8。 ⑤ X4/LH1的系数是47,相对于阈值32是重要的,产生符号P16。 第一次主扫描之后,缓冲存储器D1中的系数符号为: D1: P N T T P T T Z T T T T T T T P T T