2 9/7小波提升算法实现
假设输入一维信号为X[n],9/7小波提升算法描述如下:
为进一步说明一维信号的提升算法,图l给出了该算法的计算示意图。图中圆圈所示的pea,peb,pec,ped分别完成Step2,Step3,Step4,Step5计算。假设一个信号有32个信号数值,经“边缘处理”后,变为39个信号值,即要处理的x[n]。
若图像为二维信号,对图像的小波变换包括行变换和列变换。假设图像G有512x512个像素。取其矩阵的某一行,经边缘变换成一个一维信号x[n](0≤n≤518),再经提升算法计算后,得到256个高频数值h和256个低频数值l。对矩阵的每一行进行相关计算,得到的所有高频部分组成一个高频矩阵H,其大小为512x256:所有低频部分组成一个低频矩阵L,其大小与高频矩阵相同。将图像G的矩阵变换为高频矩阵H和低频矩阵L的过程称为“行变换”。取高频矩阵H中的某一列,经边缘变换后为一个一维信号x[m](0≤m≤518),再经提升算法的计算得到256个高频部分h和256个低频部分l。对高频矩阵中的每一列进行相关计算,得到所有高频组成的新矩阵HH,所有低频组成的新矩阵HL。同样,对于低频矩阵L的每一列得到LH,LL。这个过程称为“列变换”。图像9/7小波变换过程如图2所示。
3 Mesh结构
假设要处理的图像为512x512像素,将该图像分为16x16个子图像,每个子图像的像素为32x32。用G(m,n)表示第m行第n列的子图像,将其子图像的所有像素点数据输入到Mesh结构对应的各个PE,同时处理32x32个像素点。完成所有子图像处理也就完成整个图像处理。
由于图像变换包括行变换和列变换。因此,当子图像调入Mesh结构(图3)后.则对其子图像行变换和列变换。行变换时,子图像每一行为一维信号X[n]。Mesh结构每一行PE完成的功能就是图1中的“左边缘计算”,“主计算”,“右边缘计算”。每一行包括1个“左边缘计算”,1个“右边缘计算”和16个“主计算”。把“左边缘计算”放在一个功能模块,称为左边缘处理PE,用PEl表示。同样,将“主计算”放在一个功能模块,称为主计算PE,表示为PEm。“右边缘计算”的功能模块称为右边缘处理PE,表示为PEr。Mesh结构中的第l列为PEl,第18列为PEr。但第2~17列并不全为PEm,因为还要考虑列变换。列变换时,第2~17列的上面4行PE完成“左边缘计算”功能,下面3行PE完成“右边缘计算”。列变换时,“左(右)边缘计算”就是每一列的上(下)边缘。所以这些PE的特殊之处在于:行变换时完成“主计算”,列变换时完成“左(右)边缘计算”。把第2~17列的第l行PE用PEmlhl表示(m为行变换时完成“主计算”,l代表列变换时完成“左边缘计算”,h1代表这个PE是高频矩阵上“左边缘计算”的第一部分)。第2行用PEmlll表示,第3行用PEmlh2表示,第4行用PEmll2,第37行用PEmrh表示,第38行用PEmrl表示,第39行用PEmhl表示。而中间部分其他PE在行变换和列变换时都完成“主计算”,这里用PEm表示。
Mesh结构处理处理流程为:
(1)输入原始数据输人原始数据的过程就是将一个子图G(m,n)的像素点调入到Mesh结构对应PE的过程。例如,要调入的子图像G(2,1),大小为32x32。考虑边缘处理,因此,同时调入的还有:子图G(1,1)最下面的4行和子图G(3,1)最上面的4行,子图G(3,1)最左面的3列,子图G(1,2)最下面的4行最左边的3列,子图G(3,2)最上面3行最左边3列,这些数
值组成一个新的矩阵D,大小为39x35。然后对该矩阵的每一行左边进行边缘处理。处理后的矩阵大小为39x39。要调入的所有像素点数值在整个图像G中的位置如图4所示。
边缘处理后的矩阵D就是要输入的原始数据矩阵。Mesh结构中每一行最左边的PE都有一个数据输入信号线,原始数据矩阵的每一行的数值输入到PE阵列最左边的PE,然后依次输入对应PE。Mesh结构的第1列的PE有4个原始数据,最后一列PE有3个原始数据,其他PE都有2个原始数据,这样原始数据矩阵D的39x39个数值就对应于Mesh结构的39x18个PE的阵列中。矩阵D的元素在Mesh结构PE中的分配情况如图5所示。