logo资料库

论文研究-基于提升算法的二维5/3和9/7小波变换的MATLAB仿真与DSP实现 .pdf

第1页 / 共7页
第2页 / 共7页
第3页 / 共7页
第4页 / 共7页
第5页 / 共7页
第6页 / 共7页
第7页 / 共7页
资料共7页,全文预览结束
http://www.paper.edu.cn 基于提升算法的二维 5/3 和 9/7 小波变换的 MATLAB 仿真与 DSP 实现 王靖琰,刘蒙 中国科学院上海应用物理研究所,上海 (201800) E-mail:wjycas@mail.ustc.edu.cn 摘 要:本文讨论了基于提升算法的二维 5/3 和 9/7 小波的原理,对算法进行了 MATLAB 仿真,并在浮点型 DSP TMS320C6713B 上实现了图像的二维 5/3、9/7 小波提升变换和逆变 换。实验结果证明了方法的有效性。 关键词:小波提升,二维 9/7、5/3 小波,MATLAB,TMS320C6713B 1.引言 随着人们对多媒体信息需求的日益增长,数码相机、移动电话、MP4 等多媒体信息处 理系统蓬勃发展。基于通用DSP 处理器的此类系统设计以灵活性强、扩展性好、可升级和 易维护的优点成为系统开发的首选方案 [1]。 由于良好的时频局部特性和多分辨分析特性,小波已广泛应用于图像处理领域,并且被 吸收进新的一些国际标准中成为了标准算法。文中在MATLAB平台上对基于小波提升的二 维离散5/3和9/7小波变换算法进行了仿真,并在浮点型DSP TMS320C6713B上实现了算法, 该程序运算速度快,可充分利用硬件资源,特别适用于嵌入式系统的需求。 2.小波变换提升算法基本原理 1994 年 Sweldens 提出了小波的提升算法,有效地解决传统的基于 Mallat 的塔式分解小 波变换算法计算量大、对存储空间的要求高的问题,从算法方面提高了小波变换的实现效率 [2]。 2.1 5/3小波提升格式 小波提升算法的基本思想是通过由基本小波(lazy wavelet)逐步构建出一个具有更加良 好性质的新小波,其实现步骤有 3 个:分解(split)、预测(predict)和更新(update)。分解是将 数据分为偶数序列和奇数序列 2 个部分,预测是用分解的偶数序列预测奇数序列,得到的预 测误差为变换的高频分量,更新是由预测误差来更新偶数序列,得到变换的低频分量。在 J PEG2000 中,5/3 提升小波变换的算法为[3]: ⎡ 1) + − ⎢ ⎣ c n 1) (2 − + ⎡ + ⎢ ⎣ x n (2 2 c n (2 4 1) 2 + + d n (2 ) x n (2 ) c n (2 1) + = x n (2 = x n (2 ) ⎤ ⎥ ⎦ ⎤ ⎥ ⎦ + 2) + (1) (2) 由其正变换的反置即可得到逆变换的算法为 x (2n) = d (2n) - x(2n+1)=c(2n)+ c(2n-1) + c(2n+1)+2 4 ⎡ ⎢ ⎣ x(2n)+x(2n+2) ⎡ ⎢ ⎣ 2 ⎤ ⎥ ⎦ ⎤ ⎥ ⎦ (3) (4) 从算式可以得出,提升算法是原位计算,即进行小波变换时在原位计算各个系数,计算 -1-
http://www.paper.edu.cn 的系数可以直接替代原始数据而不需要附加数据存储空间。 2.2 9/7小波提升格式 Daubechies 9 /7 双正交小波基,具有线性相位,消失矩较大,能量集中性好等特性,在 图像处理领域有广泛的应用。图像经过 9 /7 小波分解后的低频部分分辨率高,高频部分细节 突出,便于后续的图像处理。图 1 为在 J PEG2000 中 9 /7 小波的提升方案[4]。 Xe(n) 1/K c(n) X(n) Split α β γ δ Xo(n) 图 1 9/7 小波变提升方案 K d(n) 其中 α= - 1.586134342,β= -0.0529801186,γ=01882911075,δ= 0.443506852, K = 1.230 174105 为各部分提升域的变换算子。 9 /7 小波提升格式由四个提升步骤和两个缩放步骤来实现,具体如下: 1) 预测 1: 1c (2n + 1) = x (2n + 1) + [ x (2n) + x (2n + 2) ] α 2) 更新 1: 3) 预测 2: 4) 更新 2: d (2n) = x (2n) + [ c (2n - 1) + c (2n + 1) ] 1 β 1 1 c (2n + 1) = c (2n + 1) + [ d (2n) + d (2n + 2) ] 2 γ 1 1 1 d (2n) = d (2n) + [ c (2n - 1) + c (2n + 1) ] 2 δ 1 1 1 5) 系数缩放 1: 6) 系数缩放 2: c (2n + 1) = (1 /K) c (2n + 1) 3 • 2 (5) (6) (7) (8) (9) (10) 与通常的提升方法不同,9 /7 小波增加了一个预测和更新环节,可以防止图像重建误差 的扩大,提高系统稳定性,同时也保留了原位计算的特性,运算所需内存少,变换速度快。 d (2n) = K d (2n) 3 • 2 2.3 二维离散小波变换 小波处理图像时需要进行二维离散小波变换。当采用提升算法时,可以采用两级一维提 升算法级联进行,即把图像数据的 N×N 矩阵先看作一 N 行数组,采用提升算法, 进行行变 换,输出的结果仍为 N×N 矩阵,再将其看作 N 列数组,进行列变换,从而完成二维变换, 得到最终变换结果。 -2-
http://www.paper.edu.cn 3.二维9/7、5/3小波提升算法的仿真与实现 本文首先用MATLAB语言实现了算法,并针对图像进行了算法的仿真;然后在浮点型 DSP芯片TMS320C6713B上用C++实现了算法,并在此平台上进行了图像的二维9/7、5/3小波 提升算法的分解与重构实验。 3.1 算法开发平台的选择 对于软件仿真,本文选取 MATLAB 6.5 开发环境。MATLAB 是一种由美国 MathWorks 公司出品的商业数学软件,是一种优秀的数值计算环境和编程语言。 对于硬件平台的实现,选择 TI 公司的 TMS320C6000 系列的 TMS320C6713B (以下简 称 C6713B) 芯片。 TMS320C6000 系列 DSP 是美国 TI 公司于 1997 年推出的新一代高性能的数字信号处 理芯片,具有很高的工作频率和极强的并行处理能力。片内有 A、B 两组共 8 个并行处理单 元,每组内分为 L 、M 、D 、S 四个单元,每组处理单元结合同侧的寄存器组和数据通道, 构成了一个完整的数据处理单元。C6000 处理器的 A、B 两个完整的数据处理单元之间可以 通过两条数据交叉通路进行数据交叉访问,所以这样的硬件结构非常适合实现数据的并行处 理,利于实现数据实时处理。 本文采用以 C6000 系列的 TMS320C6713B 芯片为中心的 TDS6713EVM 开发板,此开 发板是闻亭公司最新研制的高速语音信号(采集)处理平台,可作为专用语音信号编解码处 理测试平台,也可用于各种对数据精度有特殊要求的浮点数字信号处理场合[5]。 选择 CCS 2 ('C6000)作为 DSP 软件开发环境。 3.2 算法的MATLAB软件仿真 本文使用 MATLAB 实现了二维 9/7、5/3 小波提升算法,开发了一个二维 9/7、5/3 小波 提升算法仿真系统,其仿真界面如图 2 所示。 (a)图像小波正变 (b)图像小波逆变 图 2 9/7 二维 9/7、5/3 小波提升算法的 MATLAB 仿真界面 MATLAB 的仿真实现的重点是编写 wav_Dwt2d 函数: function s=wav_Dwt2d(SourceImage,row,column,J2,w97,scale) 此函数实现对 SourceImage 进行 scale 级小波分解,s 为输出。参数 w97=1 时,使用 9/7 -3-
http://www.paper.edu.cn 滤波器;w97=0 时,使用 5/3 滤波器。当使用 9/7 滤波器时,参数 J2=1 时,滤波器为 JPEG2000 中的 CDF97 小波;J2=0 时,滤波器为 LS97 小波[6]。 在算法中,为了减小误差的积累,将对每次乘积的结果进行取整。同时,被取整的数将 被转换为与它距离最近的整数。对于边界的处理采用了对称延拓算法[7]。 类似地,编写实现逆变换的 wav_iDwt2d 函数,这样就实现了仿真系统的功能。为了评 价算法,本文使用 MSE 和 PSNR 作为指标[8]。每次变换再反变换后,计算其 MSE 和 PSNR。 3.3 算法的DSP硬件平台实现 实现采用 C++语言进行编程,因为 C++编译器能有效地对集合代码进行优化。算法的 重点是 5/3 小波和 9/7 小波提升方案算法的实现。 对于 5/3 小波,首先定义了一层分析和重构的函数 wavelet_analysis 和 wavelet_synthesis, 然后调用这两个函数来实现一维和二维的多层 5/3 小波提升方案的函数。二维多层 5/3 小波 分解提升方案程序流程图如图 3 所示。 开始 送入原始数据,数据长度,分解层数 原始数据存入缓存 i=1……levels 对缓存数据取出,进行行变换 存回缓存 对缓存数据取出,进列变换 存回缓存 行列变换长度减半 缓存输出 结束 图 3 二维多层 5/3 小波分解提升方案程序流程图 定义二维 5/3 小波提升方案的分解函数如下: int multilevel_decomposition_2D( int * image, int width, int height, int * wavelet_data, int -4-
http://www.paper.edu.cn levels ); 定义二维 5/3 小波提升方案的重构函数如下: int multilevel_reconstruction_2D ( int * image, int width, int height, int * wavelet_data, int levels ); 类似地,对于 9/7 小波,我们用 C++语言分别实现了二维的多层 9/7 小波提升方案的分 解和重构函数如下: void WaveletForward2D(int *data, int height, int width, int level); void WaveletInvert2D(int *data, int height, int width, int level); 值得注意的是,DSP 平台上实现的 5/3、9/7 小波提升算法的输入和输出都是整型,这 十分有利于直接对图像进行变换。另外,9/7 小波提升算法中将对每次乘积的结果通过 floor 函数进行取整,从而实现了整型到整型的无失真变换。DSP 上只实现了 CDF97 小波。 在 CCS 2 ('C6000)编译环境下编程,程序编译优化后,加载到 DSP 工作平台上。由于本 算法使用的存储空间较多,程序中大量使用了堆空间,默认的存储分配方式无法满足要求, 所以重新编写 cmd 文件分配堆栈空间大小如下: -stack 0xf00 -heap 0x20000 4.实验及结果分析 图 4 是 CDF9/7 小波提升方案对 128×128lena 图像进行 2 层分解和重构的 MATLAB 仿真 结果图。 (a)原始图像 (b)分解图像 (c)重构图像 图 4 128×128lena 图像 CDF9/7 小波提升方案 2 层分解和重构 MATLAB 仿真结果图 计算变换与逆变换的 MSE 为 0,PSNR 为 INF,即无穷大,表示 MATLAB 的算法能实 现精确重构。 图 5 为 CCS 2 ('C6000)环境下分别用 5/3、9/7 小波提升方案算法对 80×80 图像进行分解 和重构的结果图。 (a)原图像 (b) 5/3 提升小波分解图像 (c) 5/3 提升小波重构图像 (d) 9/7 提升小波分解图像 (e)9/7 提升小波重构图像 图 5 DSP 上 80×80 图像 5/3、9/7 小波提升方案 1 层分解和重构结果图 -5-
从实验结果图像我们可以看出,本文的程序正确地实现了二维 5/3 小波和 9/7 小波的提 升方案。 利用 CCS 2 ('C6000)Profiler 提供的执行时钟数统计功能,分别统计语音和图像的分解与 重构过程所用的时钟数如下表 1 所示: http://www.paper.edu.cn 表 1 二维 5/3 与 9/7 小波提升的分解与重构时钟周期 5/3 小波提升 9/7 小波提升 图像分解 3112239 10912368 图像重构 3234384 10781732 5.总结 本文讨论了二维 5/3、9/7 小波提升的原理,对算法进行了 MATLAB 软件仿真,并在浮 点型 DSP TMS320C6713B 上实现了图像的二维 5/3、9/7 小波提升变换和逆变换。 二维离散小波变换是小波处理图像的关键算法。随着对图像处理的多样化要求,在 DSP 平台上实现图像处理逐渐成为一个较好的解决方案,特别是随着 DSP 处理速度的进一步提 高,图像处理的实时性能也会有很大的提高。本文在 DSP 平台上实现的二维 5/3、9/7 小波 提升算法具有重要的应用价值。 参考文献 [1] 印勇,谭勇.基于提升的二维离散小波变换优化算法 DSP 实现[J].计算机技术与发展, 2007, 17 [2] 胡广书.现代信号处理教程[M].北京:清华大学出版社,2004. [3] 陈大科,韩九强.5/ 3 提升小波变换及逆变换的 FPGA 设计方法[J].东南大学学报(自然科学版),2005, -6- (3). 35(赠). 司,2006. [4] 甄莉,彭真明.提升格式 D9 /7 小波在图像融合中的应用[J].计算机应用,2007,27. [5] 闻亭数字系统(北京)有限公司.TDS6713EVM 用户手册[Z].北京:闻亭数字系统(北京)有限公 [6] 钟广军,陈火旺,成礼智.基于提升方法的简单 9/7 小波滤波器[J].计算机工程与科学,2003,1. [7] 侯正信,杨爱萍.对称延拓小波变换矩阵用于 FRIT 去噪[J].光电子.激光,2007,5. [8] 张 靖 莹 . PSNR Ratio) [ EB/OL ] . to Noise (Peak Signal http:// video.ee.ntu.edu.tw/~video/homework/hw1/PSNR.pdf,2004.9.
http://www.paper.edu.cn The MATLAB Simulation and DSP Implementation of 2D 5/3 and 9/7 Wavelet Based on Lifting Scheme Shanghai Institute of Applied Physics,Chinese Academy of Sciences,Shanghai (201800) Wang Jingyan,LiuMeng Abstract The principles of 2D 5/3 and 9/7 wavelet transform based on lifting scheme is discussed in this paper. MATLAB is adopted to simulate the algorithm. A 2D forward and inverse 5/3 and 9/7 wavelet transform based on lifting scheme of image is realized on floating-point DSP TMS320C6713B. The experimental results verified the validity of the method. Keywords:Wavelet Lifting;2D 5/3 and 9/7 Wavelet;MATLAB;TMS320C6713B 作者简介: 王靖琰,男,1985 年生,山东临沂人,2007 年毕业于中南大学获电子信息工程专业学士学 位,硕士研究生。研究方向为生物特征识别(Biometrics)、图像及语音信号处理与识别、生 物特征识别技术产品标准化和检测技术、DSP 和嵌入式系统应用研发; 刘蒙,男,1982 年生,四川洪雅人,2007 年毕业于电子科技大学获电子科学与技术专业学 士学位,硕士研究生。研究方向为核医学分子影像技术研究,包括高分辨率的小动物 microSPECT/CT 成像系统的研制与开发,精确定量的三维图像重建方法,Monte Carlo 模拟 成像系统及成像质量评估等。 -7-
分享到:
收藏