1、第 10章 小波变换与 JPEG 2000编码虽然基于 DCT 的 JPEG 标准的压缩效果已经很不错,但在较高压缩比时会出现明显的马赛克现象,且不能渐进传输。为了适应网络发展的需要,JPEG 于 2000 年底推出了采用 DWT (Discrete Wavelet Transform 离散小波变换) 的 JPEG 2000 标准。小波变换是 1980 年代中期发展起来的一种时频分析方法,比 DCT 这样的傅立叶变换的性能更优越,被广泛应用于调和分析、语音处理、图像分割、石油勘探和雷达探测等等方面,也被应用于音频、图像和视频的压缩编码。本章先介绍小波变换的来龙去脉,然后分别介绍连续小波变换、离
2、散小波变换、Haar 小波变换和整数小波变换,最后介绍 JPEG 2000 的编码算法和标准。10.1 小波变换小波变换(wavelet transform)是傅立叶变换的发展,中间经历了窗口傅立叶变换。原始数据一般是时间或空间信号,在时空上有最大分辨率。时空信号经傅立叶变换后得到频率信号,在频域上有最大分辨率,但其本身并不包含时空定位信息。窗口傅立叶变换通过对时空信号进行分段或分块进行时空-频谱分析,但由于其窗口的大小是固定的,不适用于频率波动大的非平稳信号。而小波变换可以根据频率的高低自动调节窗口大小,是一种自适应的时频分析方法,具有多分辨分析功能。本节先讨论小波变换与(窗口)傅立叶变换的
3、关系,然后依次介绍连续小波变换、离散小波变换、Haar 小波变换和第二代小波变换(整数小波变换)。10.1.1 傅立叶变换与小波变换傅立叶变换(Fourier transform)是法国科学家 Joseph Fourier 发表于 1822 年的他在用无穷三角级数求解热传导偏微分方程时所提出的一种数学方法,它可将时空信号变换成频率信号。鉴于傅立叶变换不含时空定位信息,(1971 年的诺贝尔物理学奖获得者)匈牙利人 Dennis Gabor 于 1946 年提出窗口傅立叶变换(window Fourier transform)。可以用于时频分析,但是窗口大小是固定的。1984 年法国的物理学家
4、Jean Morlet 和 A. Grossman,在进行石油勘探的地震数据处理分析时,又提出了具有可变窗口的自适应时频分析方法小波变换(wavelet Joseph Fourier多媒体技术与应用教程 2 transform)。 傅立叶变换傅立叶变换(Fourier transform)是 1807 年法国科学家 Joseph Fourier 在研究热力学问题时所提出来的一种全新的数学方法,当时曾受到数学界的嘲笑与抵制,后来却得到工程技术领域的广泛应用,并成为分析数学的一个分支傅立叶分析。原始的多媒体数据一般为时空信号,在时空上有最大分辨率,并可利用时空上的相关性进行数据压缩。Fourier
5、 变换可将时空域中的多媒体信号映射到频率域来研究,即更符合人类感觉特征,也可以利用信号在频率域中的冗余进行数据压缩。Fourier 变换所得的频率信号,在频率域上有最大分辨率,但其本身并不包含时空定位信息。时空信号:f (t), t(-, ) (一维时间信号,参见图 10-1)f (x, y), x, y(- , ) (二维空间信号)图 10-1 音频信号的时间波形图Fourier 变换,F (w)为频率信号:(参见图 10-2)dtetfjw)(dyxyxvuvuj)(,(第 10 章 小波变换与 JPEG 2000 编码 3 图 10-2 音频信号的频率图 窗口傅立叶变换虽然基于 Four
6、ier 变换的频谱分析,在需要信号分析及数据处理的物理、电子、化学、生物、医学、军事、语音、图像、视频等众多科学研究与工程技术的广阔领域得到了非常广泛和深入应用,但对既需要频谱分析又要求时空定位的应用,如雷达探测、语音识别、图像处理、地震数据分析等等,Fourier 分析技术就显得力不从心了。为了弥补 Fourier 变换不能时空定位的不足,工程技术领域长期以来一直采用D.Gabor 开发的窗口 Fourier 变换(短时 Fourier 变换),来对时空信号进行分段或分块的时空- 频谱分析(时频分析)。窗口 Fourier 变换:(参见图 10-4) dtetgfwFjwg )(),(其中,
7、g 为窗口函数(参见图 10-3)。图 10-3 音频处理中常用的几种窗口函数多媒体技术与应用教程 4 图 10-4 音频信号的三维频谱图虽然窗口 Fourier 变换能部分解决 Fourier 变换时空定位问题,但由于窗口的大小是固定的,对频率波动不大的平稳信号还可以,但对音频、图像等突变定信号就成问题了。本来对高频信号应该用较小窗口,以提高分析精度;而对低频信号应该用较大窗口,以避免丢失低频信息;而窗口 Fourier 变换则不论频率的高低,都统一用同样宽度的窗口来进行变换,所以分析结果的精度不够或效果不好。迫切需要一种更好的时频分析方法。 小波变换近二十年来发展起来的小波(wavelet
8、)分析正是这样一种时频分析方法,具有多分辨分析功能,被誉为数学显微镜。它是继一百多年前发明傅立叶分析之后的又一个重大突破,对许多古老的自然学科和新兴的高新技术应用学科都产生了强烈冲击,并迅速应用到图像处理和语音分析等众多领域。1)函数展开与积分变换小波分析是傅立叶分析的发展,是分析数学的一个新分枝,高等数学中的微积分(数学分析)就是分析数学的基础。与幂级数、三角级数或傅立叶级数等一样,小波分析研究用一组简单函数,如 xn、sin nx , cos nx等,来表示任意函数,如(幂级数)0)(nxaf(三角级数/傅立叶级数) nxljnneclblxaxf 10sicos2)(其中第 10 章 小
9、波变换与 JPEG 2000 编码 5 1 ,sinco ),(21 ),(21 jjejbacjbac jnnnn 被表示的函数的全体构成一个函数空间(一种函数的集合),而表示这些函数的函数族 xn与sin nx, cos nx等则为函数空间的基底。函数展开式中的系数为该函数在函数空间中相对于此基底的坐标,对应于函数空间的一个点。这相当于将函数从原来的域变到新的域,如三角级数将时空域的函数变换到频率域。为了求得展开式的系数,需要对原函数求微积分,如幂级数中的 !)0(nfa三角级数中的 lnln dxlnfbdxlfa si)(1 ,cos)(1和傅立叶级数中的 lxlnjnefc)(若 f
10、 (x)不是以 2 l 为周期的函数,在上式中改记 x 为 t、 ,并让 ,则wll得 Fourier 变换: dtetfwFjw)()(这是一种复变函数的广义积分,也是一种积分变换。2)小波的发展自从近两百年前 Joseph Fourier 在研究热力学问题提出 Fourier 分析以后,长期以来许多数学家一直在寻找更广泛函数空间的性能更好的基底函数族,工程技术领域也一直在寻找更好的时频分析方法,但收获甚微。1984 年法国的年轻的地球物理学家 Jean Morlet 在进行石油勘探的地震数据处理分析时与法国理论物理学家 A.Grossman 一起提出了小波变换 (wavelet trans
11、form, WT)的概念并定义了小波函数的伸缩平移系:,abx|1但并没有受到学术界的重视。直到 1986 年法国大数学家 Yves Meyer 构造出平方可积空间 L2 的规范正交基二进制伸缩平移系:多媒体技术与应用教程 6 )2()(, kxxjjkj小波才得到数学界的认可。1987 年正在读硕士的 Stephane Mallat 将自己熟悉的图像处理的塔式算法引入小波分析,提出多分辨分析的概念和构造正交小波的快速算法Mallat 算法。1988 年法国女科学家 Inrid Daubechies 构造出具有紧支集的正交小波基Daubechies 小波。1990 年美籍华裔数学家崔锦泰和武汉
12、大学的数学教授王建忠又构造出基于样条函数的单正交小波函数样条小波。1992 年 Daubechies 在美国费城举行的 CBMS-NFN 应用数学大会上作了著名的小波十讲 Ten Lectures on Wavelets报告,掀起了学习与应用小波的高潮。1994 年 Wim Swelden 提出了一种不依赖于 Fourier 变换的新的小波构造方法提升模式(lifting scheme),也叫第二代小波或整数小波变换。3)连续小波变换连续小波变换(CWT = Continuous wavelet transform)的定义为:dxabxfabWf )(|1),(其中,a 为缩放因子(对应于频率
13、信息),b 为平移因子(对应于时空信息), 为)(x小波函数(又叫基本小波或母小波), 表示 的复共轭。连续小波变换的过程)(x)(可参见图 10-5。第 10 章 小波变换与 JPEG 2000 编码 7 图 10-5 连续小波变换的过程小波变换的特点有:(参见图 10-6) 时频局域性、多分辨分析、数学显微镜 自适应窗口滤波:低频宽、高频窄 适用于去噪、滤波、边缘检测等图 10-6 窗口傅立叶变换与小波变换的时频特征如同三角函数 sin x 和 cos x 及 e-jx 可以缩放构成函数空间的基底sin nx, cos nx及 e-jwx 一样,母小波也可以缩放和平移而构成函数空间的基底:
14、及)2()(, kjjkjabx|1与傅立叶变换不同,小波变换的结果有两个参数,多了一个可以表示时空位置信息的平移因子,所以其图示为一个二维曲面。图 10-7/8 是 Mallat 构造的一组典型数据的曲线及其连续小波变换曲面的二维与三维图示:图 10-7 Mallat 数据及其连续小波变换的二维图示多媒体技术与应用教程 8 图 10-8 Mallat 数据及其连续小波变换的三维图示4)小波函数小波变换与傅立叶变换比较,它们的变换核不同:傅立叶变换的变换核为固定的虚指数函数(复三角函数)e -jwx,而小波变换的变换核为任意的母小波 。前者是固定)(x的,而后者是可选的,实际上母小波有无穷多种
15、,只要 满足下列条件即可。)(小波函数需满足的条件: 绝对可积且平方可积,即 21L 正负部分相抵,即 (即 )0)(dx0)( 满足允许条件(admissible condition),即 (广义积分收敛)d2其中 为 的傅立叶变换)(x常见的小波函数有:第 10 章 小波变换与 JPEG 2000 编码 9 Haar 小波(Alfred Haar,1910 年): ,参见图 10-其 他 ,015. ,1)(xx9。图 10-9 Haar 小波函数及其 Fourier 变换 墨西哥草帽(Mexican hat) 小波: ,参见图 10-10。2)(xed图 10-10 墨西哥草帽小波函数及
16、其 Fourier 变换 Morlet 小波(Jean Morlet,1984 年): ,参见图 10-5,)(2 Cexxj11。图 10-11 Morlet 小波函数(C=5)及其 Fourier 变换多媒体技术与应用教程 10 除了 Haar 小波外,其他紧支集小波都不是初等函数,有的小波函数是用导数/积分或微分方程/积分方程来定义,有的小波用其傅立叶变换定义,有的小波甚至没有解析表达式,而只是一些数字解,很多小波为复函数,所以不太直观。可以把小波与三角函数中正弦波加以比较(参见图 10-12)。图 10-12 小波与正弦波 离散小波变换将连续小波变换的缩放因子 a 离散化,得到二进小波
17、变换;再将其平移因子 b 也离散化,就得到离散小波变换。1) 二进小波变换与滤波器为了适应数字信号处理,需要将小波变换离散化。可以先进行缩放因子的离散:若小波函数 满足,1|)2(|Zkk则称 为基本二进小波。在连续小波变换中,若 为基本二进小波,则令 a = 2k ,得到二进小波变换:dxbxfbfWkkk )(21)(2为了构造基本二进小波,可设 满足: 122|)(|)(|jj可推出 ,则 大体上相当于一个低通滤波器,因此, (2x)的通道比 (x)1|)0(|2的宽,可设 满足如下的双尺度方程: Znxhx)2()(其 Fourier 变换为:,其中2)(HZnniehH)(第 10
18、章 小波变换与 JPEG 2000 编码 11 为低通滤波器。由 ,可得 H(0) = 1 即h n = 1。1|)0(|2若设,其中22|)(|)(| GZnniegG)(则 G 为高通滤波器,有 Znxgx)()(其 Fourier 变换为: )2(G因 且 ,得 G(0) = 0 即g n = 0。0)(1|)(|2例如(B2 滤波器),若取 为二次 B 样条,则 )3(81)2(cos)( 2 iiii eeeH 可得 hn = h1- n,h 0 = h1 = 3/8 = 0.375,h -1 = h2= 1/8 = 0.125,其余 hn = 0;因 G 不唯一,可令 ,g n =
19、 -g1- n,解得-g 0 = g1 = 0.5798,-g -1 = g2 = )()(G0.0869,-g -2 = g3 = 0.0061,其余 gn=0。又例如(B3 滤波器),若取 为中心三次 B 样条,则 )46(16)2(cos) 224 iiii eeH可得 hn = h- n,h 0 = 3/8 = 0.375,h -1 = h1= 1/4 = 0.25,h -2 = h2= 1/16 = 0.0625,其余 hn = 0;似上例可得 gn = -g- n,-g -1 = g1 = 0.59261,-g -2 = g2 = 0.10872,-g -3 = g3 = 0.00
20、008,其余 gn 为 0。2) 离散小波变换下面再将二进小波变换中的平移因子也离散化:令 b = n2k,则可得离散小波变换:dxxfnfWkkk )()2)(/2可以用前面所讲的滤波器系数改写成如下循环形式:多媒体技术与应用教程 12 kjjkknfShnfSgWjj jj )2()(12211其中, ,D = Wf 为差高频部分,A = Sf 为剩余低频部分,h k)(02fnfS与 gk 为上面讲过的滤波器 之系数。)(GH与可以写出正反离散小波变换的具体算法如下: 正变换(分解)(保存 和所有 )fSJ2fWj2j = 0; ;)(02nffSwhile ( j 0 ) kjkj k
21、nfgnfShnfS jjj )()( 121221j-; )()(02nfSf第 10 章 小波变换与 JPEG 2000 编码 13 图 10-13 Mallat 数据的离散小波变换说明:图形的横纵坐标分别表示时间(平移因子)和变换结果 S f 与 W f 的值。小波分解可以无限进行下去,J 是自己指定的最大分解次数,一般为 810。求和符号中 kZ,无上下限,但具体计算时,由于只有有限个 hk、g k 不为 0,所以实际上是有限的。逆变换中 h 与 g 上的一杠表示复数的共轭,对于实 h 与 g,则共轭与不共轭相同。求 S f 与 W f 都涉及到对所有的样本求和,不可能只处理一个样本。
22、3) 小波分解执行离散小波变换的有效方法是使用滤波器。该方法是 Mallat 在 1988 年开发的,叫做 Mallat 算法。这种方法实际上是一种信号的分解方法,在数字信号处理中称为双通道子带编码。用滤波器执行离散小波变换的概念如图 10-14 所示。图 10-14 双通道滤波过程多媒体技术与应用教程 14 图中,S 表示原始的输入信号,通过两个互补的滤波器产生 A 和 D 两个信号,A 表示信号的近似值(approximations), D 表示信号的细节值(detail)。在许多应用中,信号的低频部分是最重要的,而高频部分起一个“添加剂”的作用。犹如声音那样,把高频分量去掉之后,听起来声
23、音确实是变了,但还能够听清楚说的是什么内容。相反,如果把低频部分去掉,听起来就莫名其妙。在小波分析中,近似值是大的缩放因子产生的系数,表示信号的低频分量。而细节值是小的缩放因子产生的系数,表示信号的高频分量。由此可见,离散小波变换可以被表示成由低通滤波器和高通滤波器组成的一棵树。原始信号通过这样的一对滤波器进行的分解叫做一级分解。信号的分解过程可以叠代,也就是说可进行多级分解。如果对信号的高频分量不再分解,而对低频分量连续进行分解,就得到许多分辨率较低的低频分量,形成如图 10-15 所示的一棵比较大的树。这种树叫做小波分解树(wavelet decomposition tree)。分解级数的
24、多少取决于要被分析的数据和用户的需要。小波分解树表示只对信号的低频分量进行连续分解。图 10-15 小波分解树随便要提及的是,在使用滤波器对真实的数字信号进行变换时,得到的数据将是原始数据的两倍。例如, 如果原始信号的数据样本为 1000 个,通过滤波之后每一个通道的数据均为 1000 个,总共为 2000 个。于是,根据尼奎斯特(Nyquist)采样定理就提出了降采样(downsampling)的方法,即在每个通道中每两个样本数据取一个,得到的离散小波变换的系数(coefficient) 分别用 cD 和 cA 表示,如图 10-16 所示。图中的符号 表示降采样。第 10 章 小波变换与
25、JPEG 2000 编码 15 图 10-16 降采样过程4) 小波重构离散小波变换可以用来分析或者叫做分解信号,这个过程叫做分解或者叫做分析。把分解的系数还原成原始信号的过程叫做小波重构(wavelet reconstruction)或者叫做合成(synthesis),数学上叫做逆离散小波变换 (inverse discrete wavelet transform,IDWT)。在使用滤波器做小波变换时包含滤波和降采样两个过程,在小波重构时要包含升采样(upsampling) 和滤波过程。小波重构的方法如图 10-17 所示,图中的符号 表示升采样。图 10-17 小波重构方法升采样是在两个样
26、本数据之间插入“0”,目的是把信号的分量加长。升采样的过程如图 10-18 所示。图 10-18 升采样的方法图 10-19 是对某数据进行离散小波变换后结果。多媒体技术与应用教程 16 图 10-19 某数据的离散小波变换10.1.2 哈尔小波变换哈尔(Haar)小波是最简单的一种小波,本节首先介绍用来构造任意给定信号的哈尔基函数,然后介绍表示任意给定信号的哈尔小波函数,最后介绍函数的规范化和哈尔基的构造。 哈尔基函数与哈尔小波函数函数空间的基底是一组线性无关的函数,称之为函数基,如x n和sinwx, coswx或ejwx,可以用来构造任意给定的信号 f (x),如用基函数的加权和表示:(
27、幂级数)0na(三角级数/傅立叶级数) nxljnneclxblxaxf 10sicos2)(其中,构成函数基的基本函数(n=w= 1) x1 和 sinx, cosx 或 ejx 称为基函数(basis function)。前面曾介绍过的(对小波的发展起了重要作用的)二进制伸缩平移系:第 10 章 小波变换与 JPEG 2000 编码 17 )2()(kxxjjjk就是 1986 年 Meyer 构造出的平方可积函数空间 L2 的规范正交函数基,其中的 为)(x基函数,2 j 为伸缩因子,k 为平移因子。若固定 j,则函数基中所有函数 的形状jk大小都相同,仅有平移,只能表示固定尺度的函数空
28、间 V j,所以也称 j 为尺度因子,称为尺度函数(scaling function)。)(xjk1)哈尔基函数最简单的基函数是匈牙利数学家 Alfrd Haar(哈尔)在 1909 年提出的哈尔基函数框函数(box function): 其 他 ,01)(xx其对应的尺度函数为,k = 0, 1, 2, ., 2 j-1其 他 ,021)2() jjjjk xkx可见,原始的哈尔基函数 相比,由于尺度因子 2 j 的作用,非 0 区间的长度为1/2 j 会随着 j 的增加而成倍缩少,面积也以同样的速度缩小;由于平移因子 k 的作用,非 0 区间会随着 k 平移 k/2 j。图 10-20 是
29、 j=0, 1 和 2 时尺度函数的部分波形图。的波形 和 的波形)(0x)(10x1、 、 和 的波形)(20x21)(2x23图 10-20 哈尔基函数所对应尺度函数的波形多媒体技术与应用教程 18 矢量空间 V j 定义为由尺度函数 的线性组合生成的函数空间(显然是分段的等)(xjk间隔台阶函数,每段的长不小于 1/2 j): 12,.0),(jkjSP因为 j 越大,尺度函数越窄(分段 1/2 j 越细),能表示的函数就越多,所以有,即矢量空间 V j 是嵌套的:1jV。 110jjV2)哈尔小波函数由框函数所构成的函数基虽然能生成函数空间,但框函数本身并不是小波函数,因为它不满足无穷
30、积分为 0 的条件。与框函数相对应的小波函数为前面已经介绍过的哈尔小波函数(Haar wavelet functions): 其 他 ,012 ,)(xx其对应的尺度函数为,k = 0, 1, 2, ., 2 j-1其 他 ,02121 ,)2() jjjjjjk xkkx类似于哈尔基函数,与原始的哈尔小波函数 相比,由于尺度因子 2 j 的作用,)(非 0 区间的长度为 1/2 j 也会随着 j 的增加而成倍缩少,面积也以同样的速度缩小;由于平移因子 k 的作用,非 0 区间也会随着 k 平移 k/2 j。图 10-21 是 j=0, 1 和 2 时尺度函数的部分波形图。的波形 和 的波形)
31、(0x)(10x1第 10 章 小波变换与 JPEG 2000 编码 19 、 、 和 的波形)(20x)(21)(2x)(23图 10-21 哈尔小波函数所对应尺度函数的波形由哈尔小波的尺度函数所构成的矢量空间为 12,.0),(jjkjxSPW因为(1)()()(1212jkjkjk即 可用 表示,所以有)(xjk1xjk(2)1jjVW又因为(3)()()(1212xxjkjkjk由(1)+(3)可得:(4)()()(2/2/1jkjkjk故有:(5)jjjWV1其中,符号 表示直和,即空间 V j 与 W j 是正交的。因为,根据所选择的内积,生成这两个矢量空间的所有基函数(尺度函数)
32、都是正交的,即子空间 V j 与 W j 互为正交补。上式即为空间的小波分解,V j 与 W j 分别对应于离散小波变换的余 和差 。fSJ2fj2这些基函数具有两个重要性质:(1) 生成矢量空间 W j 的基函数 与生成矢量空间 V j 的基函数 构成)(xjk)(xjk矢量空间 V j+1 的一个基 , 。)(xjkj1j多媒体技术与应用教程 20 (2) 生成矢量空间 W j 的每一个基函数 与生成矢量空间 V j 的每一个基函数)(xjk正交。)(xjk3)函数的正交性与规范化(1) 正交性函数 f, g 正交是指其内积为 0,而函数的内积一般定义为它们的乘积在某一区间的定积分: 0)
33、( , badxgff如三角函数系cos nx, sinnx(n = 0,1,2,.)在- , 上正交,因为 0sinco sin,co,ii ssxdmxmn哈尔基函数所对应的尺度函数系 , k = 0, 1, 2, ., 2 j-1 在(-, ) 上正交,因)(jk为对 j 固定而 k 不同的 ,非 0 区间各不相同,所以有:)(xjk lkdxxjljkjl ,0)( ,类似可知哈尔小波函数所对应尺度函数 也在(-, )上正交:jklkdxxjljkjlk ,0() ,而对 与 的正交性,可从下面的讨论得知:若 k 不同,非 0 区间也)(xjk)(j不相同,所以也有: ldxxjljk
34、jlk ,0)( ,若 k 相同,则它们的非 0 区间也相同,由于在该区间上 =1,所以有:)(jk0)( , dxdxjjkjkjk(2) 规范化第 10 章 小波变换与 JPEG 2000 编码 21 所谓规范化也称为标准化,指将基底函数乘上某一常数,使其内积为 1,即函数的平方在区间上的积分为 1,方法是除以原内积积分值(0)的平方根。如,因为: ,321,sincos1022 xdxd所以,三角函数的规范正交基为 。,sin,co, x因为,k = 0, 1, 2, ., 2 j-1其 他 ,0211)(jjjkxx所以 jkjkjkj jjdxxx21)( )(, 212故规范化的哈
35、尔基函数为 )2()(kxxjjjk可见,规范化的哈尔基函数,虽然由于尺度因子 2 j 的作用,非 0 区间的长度仍然为 1/2 j 会随着 j 的增加而成倍缩少,但由于乘了其扩大作用的常系数 ,面积缩小的j2速度放慢了,而且函数的平方 下的面积恒为 1。2)(xjk类似可得哈尔小波函数所对应的规范化尺度函数(基底)为 )()(2kxjjjk因为 其 他 ,02121 ,)( jjjjjk kxxjkjkjkjk jjdx)( )(, 21多媒体技术与应用教程 22 类似于规范化哈尔基函数,规范化哈尔小波基函数的平方 下的面积也恒为2)(xjk1。 一维哈尔变换及其规范化算法为了研究用小波变换
36、进行图像压缩,可以先讨论哈尔变换的情形,首先从最简单一维变换开始。1)一维哈尔变换设一维图像 I = (p0, p1, p2, ., pn-1)对应于 0,1 区间上等间距的 n 段台阶函数(参见图 10-22)。则由 n 个像素组成的一维图像的全体,构成一个 n 维矢量空间(台阶函数空间),每一幅具体图像是空间中的一个矢量(一个台阶函数),其像素的值 pi 对应于矢量的分量(台阶的函数值)。若将矢量用空间的基底表示,则像素值对应于线性组合表示中的系数。图 10-22 一维图像与台阶函数显然,对台阶函数,适合采用哈尔基。因为 可将0,1 区间分为 2j 小段,所)(xjk以为了表示有 n 个像
37、素的一维图像,至少需要取 。nj2log)()()()( 110 xpxpxI jjj 例如,有 4 个像素的一维图像 I = (9, 7, 3, 5),若视其为 0,1区间上等间距的 4 段台阶函数,则取 j = 2,将其表示成(参见图 10-23/24) )()()()(5379)( 2322120 xcxcxI 第 10 章 小波变换与 JPEG 2000 编码 23 图 10-23 一维图像 I = (9, 7, 3, 5)所对应的台阶函数图 10-24 I (x) 用 V 2 中的哈尔基表示即 I = (9, 7, 3, 5)为 V 2 空间的一个向量。可按上节所讲的空间分解公式 ,
38、将其分解成jjjW112即 )()()()()( 110110 xdxcxI 为了求该线性组合的系数,可利用函数系的正交性及关系式:与 )()()(1212jkjkjk )()()(1212jkjkjk在方程 )(5)(3)(7)(9)()()()( 2322120110110 xxxIdxcx 两边同乘上系数所对应的 或 ,然后再在(- , ) 上积分,最后解方程即得。jkjk如求 :先在方程两边分别同乘上该系数所对应的基函数 及下面等式的右边10c )(10x)()(212010xx多媒体技术与应用教程 24 再两边积分得: )(218)79(2147192 21000 ccc 一般有:(
39、1)(121212 jkjjkjkjjkjjk即图像在低维空间余 V j 上的系数 (对应于低分辨率图像的像素值)等于其在高一维jc余空间 V j+1 上的对应区间的两个系数 和 的平均值,可以用来表示图像在低分12jkj辨率下的大体情形。由(1)式可得 4)53(2)(21 cc利用 类似可得:)()(12xxjkjkjk(2)(212jkjjcd即图像在低维空间差 W j 上的系数 等于其在高一维差空间 W j+1 上的对应区间的两个jk系数 和 差的一半,可以用来表示图像在不同分辨率下的细节。12jkdjk用(2)式可求得,1)79(210d1)53(2d即(参见图 10-25) )()
40、(4)(8)( 110110 xxxI 图 10-25 I (x) 用 V 1 和 W 1 中的基函数表示类似可将所得的空间 V 1 中的向量(8, 4) ,按照 01第 10 章 小波变换与 JPEG 2000 编码 25 再进一步分解成 )()(00xdc其中 2)48(1)(261000 cd最后可得(参见图 10-26) )()()(6)( 1100012 xxxI WVV图 10-26 I (x) 用 V 0、W 0 和 W 1 中的基函数表示变换过程见表 10-1。表 10-1 哈尔变换过程分辨率 平均值 V j 细节系数 W j4 V 2: (9, 7, 3, 5) W 2: 无
41、2 V 1: (8, 4) W 1: (1, -1)1 V 0: (6) W 0: (2)可见,小波变换的最后结果仍然是 4 个系数(似 8*8 的 DCT 变换后仍有 8*8 个系数),但系数的幅度减少。一般来说,小波变换具有如下特征: 变换过程中没有丢失信息,因为能够从所记录的数据中重构出原始图像。 对这个给定的变换,我们可以从所记录的数据中重构出各种分辨率的图像。例如,在分辨率为 1 的图像基础上重构出分辨率为 2 的图像,即 ;在分辨01V率为 2 的图像基础上重构出分辨率为 4 的图像,即 。W 通过变换之后产生的细节系数的幅度值比较小,这就为图像压缩提供了一种途径,例如去掉一些微不
42、足道的细节系数并不影响对重构图像的理解。(这一点似量化后的 DCT 交流系数)。2)规范化算法多媒体技术与应用教程 26 若采用规范化的哈尔基函数和哈尔小波函数基:与 )2()(kxxjjjk)2()(kxxjjjk来进行一维图像的小波变换,此时关系式变为与 )()(21)(12jkjkjk )()(21)(12jkjkjk 则前面哈尔小波的分解公式变为:与 12jkjjkcc )(2112jkjjkcd应用于上例可得: )(2)()(4)(128)(2)()()(165379)( 11000 0011103222 xxxxxI 上例是 4 个像素的图像,只需要两次哈尔小波分解即可。类似可计算
43、有 8 个像素的图像的三次哈尔小波分解,参见图 10-27。图 10-27 小波分解的层次结构图图中,f 表示原始信号函数、 c 表示系数(coefficient)、A 表示均值 (averaging)、D 表示差值(differencing) 。由上可以归纳出规范化的哈尔小波变换的一般算法。假设一维阵列 C 有 h 个元素(h 等于 2 的幂),执行一维哈尔小波变换的伪代码如下:procedure DecomposeArray(C: arry0.h - 1 of color):while h 1 do:h h / 2第 10 章 小波变换与 JPEG 2000 编码 27 for i 0 t
44、o h - 1 do :Ci (C2 i + C2 i + 1) / sqrt(2)Ch + i (C2 i - C2 i + 1) / sqrt(2)end forC Cend whileend proc也可改写成 C+代码:(h n, C a, C b)void HaarWT1D(int n, BYTE *a) BYTE *b = new BYTEn;int n0 = n;double sqrt2 = sqrt(2);while (n 1) n 1;for (int i = 0; i n; i+) bi = (BYTE)(a2 * i + a2 * i +1) / sqrt2 + 0.5)
45、;bn + i = (BYTE)(a2 * i - a2 * i +1) / sqrt2 + 0.5);for (int i = 0; i n0; i+) ai = bi;delete b; 二维哈尔小波变换本节将利用上节所讲的一维小波变换的基本原理和方法,并结合具体的图像数据系统地介绍如何对二维图像数据进行小波变换。一幅图像可看成是由许多像素组成的一个大矩阵,在进行图像压缩时,为降低对存储器的要求,人们通常把它分成许多小块,例如以 88 个像素为一块,并用矩阵表示,然后分别对每一个图像块进行处理。在小波变换中,由于小波变换中使用的基函数的长度是可变的,一般无须把输入图像进行分块,以避免产生“
46、块效应”。但为便于理解小波变换的奥妙,还是从一个小的图像块入手,并且继续使用哈尔小波对图像进行变换。1)举例假设有一幅灰度图像,其中的一个图像块用矩阵表示为:多媒体技术与应用教程 28 16324598501448923831676020417650125973A使用灰度表示的图像如图 10-28 所示: 图 10-28 图像矩阵 A 的灰度图一个图像块是一个二维的数据阵列,可以先对阵列的每一行进行一维小波变换,然后对再行变换之后的阵列的每一列进行一维小波变换,最后对经过变换之后的图像数据阵列进行编码。(1) 求均值与差值利用一维的非规范化哈尔小波变换对图像矩阵的每一行进行变换,即求均值与差值。在图像块矩阵 A 中,第一行的像素值为R0: 64 2 3 61 60 6 7 57步骤 1:在 R0 行上取每一对像素的平均值,并将结果放到新一行 N0 的前 4 个位置,其余的 4 个数是 R0 行每一对像素的差值的一半(细节系数):R0: 64 2 3 61 60 6 7 57N0: 33 32 33 32 31 -29 27 -25步骤 2:对行 N0 的前 4 个数使用与第一步相同的方法,得到两个平均值和两个细节系数,并放在新一行 N1 的前 4 个位置,其余的 4 个细节系数直接从