首页> 中国专利> 一种基于Zynq系列FPGA的时分复用二维小波变换系统

一种基于Zynq系列FPGA的时分复用二维小波变换系统

摘要

本发明公布了一种基于Zynq系列FPGA的时分复用二维小波变换系统,用于图像处理和数据分析。该套系统仅使用一个行变换模块,和一个列变换模块,高速稳定的实现多级97提升式小波变换系统,并通过将FPGA与Linux系统结合,实现图像数据通过网络传入,变换结束后通过网络传出的系统架构。

著录项

  • 公开/公告号CN105611115A

    专利类型发明专利

  • 公开/公告日2016-05-25

    原文格式PDF

  • 申请/专利权人 路博超;郭江凌;

    申请/专利号CN201510922444.5

  • 发明设计人 郭江凌;路博超;

    申请日2015-12-15

  • 分类号H04N5/14;

  • 代理机构

  • 代理人

  • 地址 300110 天津市南开区广开四马路广云花园3-5-501

  • 入库时间 2023-12-18 15:38:07

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-03-05

    授权

    授权

  • 2016-06-22

    实质审查的生效 IPC(主分类):H04N5/14 申请日:20151215

    实质审查的生效

  • 2016-05-25

    公开

    公开

说明书

技术领域

本发明属于电子电路技术领域,特别涉及一种基于Zynq系列FPGA的时分复用二维 小波变换系统,可用于图像处理和数据分析。

背景技术

小波变换具有良好的时频定位性质和多分辨率特征,在各种数据分析中得到广泛 的应用。但由于其复杂的计算过程,给小波变换的应用带来了一定的阻碍。目前,多数小波 变换的应用多选择在计算机平台上实现,在微处理器平台上,使用小波变换的并不多。即使 在微处理器平台上实现的小波变换,其性能也受到很大的限制。

近年来,FPGA的发展为电子领域带来了很多改变,其大规模并行化运行的能力,实 现了很多在微处理器平台上难以实现的算法。而小波变换的计算过程中,存在着大量的可 并行化的运算,将FPGA与小波变换结合,便可以实现高性能的小波变换系统。

随着技术水平的提升,市场上出现了各式各样的FPGA,而Zynq系列的FPGA具有独 特的优势。它集成了ARM处理器的软件可编程性和FPGA的硬件可编程性,不仅可实现重要分 析与硬件加速,同时还在单个器件上高度集成CPU、DSP、ASSP以及混合信号功能。Zynq系列 的FPGA将可定制智能性融入当前嵌入式系统,可灵活的适应各种应用需求。在Zynq系列 FPGA上实现小波变换系统,可将系统与网络直接相连,通过网络传入传出数据,实现高性能 云计算。

虽然使用FPGA实现小波变换可获得较高的性能,但现有的基于FPGA的二维小波变 换系统,尤其是多级小波变换系统,都使用了较多的硬件资源。如发明专利1(发明人:顾晓 东,陈军,王怀超,安军社,陈晓敏,“一种基于FPGA的星载图像压缩的小波变换系统及方 法”:专利申请号:201110156077.4)中所述的小波变换系统,在进行第一级二维小波变换的 时候,使用了一套计算系统,进行第二级变换的时候需要另一套计算系统来完成。其专利中 所述的小波变换系统完成三级的小波变换,便需要三套计算系统,以实现多级小波变换的 并行计算。而发明专利2(发明人:雷杰,李云松,李双十,叶繁,郭杰,张皓,吕宝刚,“基于 FPGA的多级复用小波变换器”:专利申请号:201310476968.7)中所述的小波变换系统,通过 时分复用,减少了计算系统的资源消耗,但其小波变换系统中,仍需要第一级的一套计算系 统和时分复用的一套计算系统,共两套计算系统来实现多级小波变换,仍然消耗较多的硬 件资源。

通过理论分析发现,多级小波变换通过时分复用,用一套计算系统便可完成,即通 过一个行变换模块和一个列变换模块便可实现任意级数的小波变换。同时,每多实现一级 变换,仅需添加十行数据左右大小的FIFO即可(行的长度随级数增加,以0.5为倍数减小)。 但要达到理想效果,有一定的设计难度。

发明内容

在实现基于行的二维97提升式小波变换的过程中,行变换需要输入两个图像数 据,才会输出两个变换结果,如果每个时钟送入两个数据给行变换模块,则每处理一行的数 据,行变换模块会空闲半行的时钟周期。而列变换模块需要输入两行图像数据,才输出两行 变换数据,每处理两行的数据,会空闲一行的时钟周期。无论是行变换模块还是列变换模 块,中间都会有一段空闲时间,且这段空闲时间与模块运行的时间相等。第二级小波变换需 要的空闲时间和运行时间都是第一级小波变换的一半,第三级所需要的时间则是第二级的 一半。所以在第一级小波变换的空闲时间里,完全可以进行第二级小波变换,并且还剩下第 二级的空闲时间;而在第二级的空闲时间里,完全可以进行第三级变换,依此类推,通过时 分复用的方法,可以实现使用一套计算系统,而实现任意级数的小波变换。

本发明的目的在于提供一种基于Zynq系列FPGA的时分复用二维小波变换系统, 仅使用一个行变换模块,和一个列变换模块,高速稳定的实现多级97提升式小波变换系统, 并通过将FPGA与Linux系统结合,实现图像数据通过网络传入,变换结束后通过网络传出的 系统架构。

为实现上述目的,本发明对各级数据流以及图像输入输出进行规整,并结合少量 的缓存,实现计算模块的时分复用。同时,对计算模块内部进行优化,保证其稳定高速的运 行状态。

本发明的基于Zynq系列FPGA的时分复用二维小波变换系统的技术方案包括如下 三个设计:

设计1:图像数据送入系统后,并不是直接送入行变换模块,而是先送入行缓存模 块,等待控制模块给出读信号后再输入到行变换模块。行变换模块的结果先送入列缓存模 块,待控制模块给出读信号后再输入到列变换模块。列变换模块输出的数据流中,包含各级 变换结果,并配有各级结果的标志。同时,数据流中各级变换结果的LL子带会送入到行缓存 模块中,以进行多级变换。

设计2:行变换模块和列变换模块由多个加法乘法模块和延迟模块组成。加法模块 将同步电路和异步电路结合,通过两个时钟周期完成有符号加法。列变换模块中通过计算 缓存模块,缓存一行中间计算结果,用于处理前边界。行变换和列变换均采用镜像方式处理 边界。计算模块和缓存模块所使用的位宽可以调节,各个接口处设有位宽转换机制。列缓存 模块内由10个FIFO模块组成,用来缓存5行行变换结果。

设计3:该套系统可与Linux系统结合,形成一套可实现网络传输和实时变换处理 的图像处理平台。该系统封装为IP核,通过AXI4-Stream协议与Zynq芯片上的ARM处理器运 行的Linux系统相连,可任意时刻零延时暂停与继续工作。系统输出配有各级变换结果标 志,连同所有变换结果通过两路信号输出。

上述设计1中,小波变换系统的结构特点是:对每一级变换,均配上两行长度的行 缓存,行的长度为当前级数的小波变换所对应的行宽。两行缓存中存储同一行的输入数据, 但一行缓存输出奇数位的数据,另一行缓存输出偶数位的数据,每个时钟送出两个数据给 行变换模块。行变换模块通过高频通道和低频通道,输出两路数据流。对每一级列变换,均 配上一个列缓存模块。每个列缓存模块缓存5行行变换结果,其中每行的高频部分和低频部 分是分开缓存的。列变换模块通过高频通道和低频通道,输出两路数据流。其低频通道中各 级的LL子带部分数据将被送入行缓存模块中,作为下一级变换的输入。

上述设计2中,各个子模块的特点是:行变换模块和列变换模块通过多个模块组合 而成,采用流水线结构。对于不同种类的小波变换,调整乘法模块的参数,乘法模块、加法模 块以及缓存的个数,并配合相应的控制信号便可实现,而系统整体时分复用结构不需要变 动。加法模块将输入的有符号定点数由原码先转换为补码,进行补码加法后,再将结果转换 为原码。其中原码与补码的转换通过同步电路来实现,而加法过程通过异步电路来实现。加 法模块通过2个时钟周期完成一次有符号加法运算。乘法模块采用移位加法实现,使用9位 小数精度的97提升变换系数。对每一级变换,均配上一个计算缓存模块,用于处理列变换前 边界。行变换和列变换都通过镜像的方式处理边界。系统的输入、中间计算以及输出的数据 均采用定点数,分为小数位宽和整数位宽,默认为16位小数+16位整数,经测试此精度下逆 变换后的还原图像的PSNR可达108dB。计算模块和缓存模块所采用的位宽可分开调整,提升 计算模块的精度可减少误差,降低缓存模块的精度,可在尽量降低误差影响的前提下,节省 系统资源。列缓存模块内的10个FIFO模块,5个用来存储行变换高频结果,5个用来存储行变 换低频结果。每5个FIFO首尾相连,上一个FIFO输出数据的同时,输出数据也被下一个FIFO 存储,通过这种方式来更新FIFO内存储的数据。

上述设计3中,小波变换系统与外部系统结合的特点是:该套系统整体设计稳定, 可随意暂停,输出数据没有延迟。系统使用AXI4-Stream协议,通过两个通道与Zynq芯片上 的ARM处理器运行的Linux系统相连。一个通道从Linux传输图像数据到系统,其中Linux方 为Master,系统方为Slave;另一个通道从系统回传计算结果到Linux,其中系统方为 Master,Linux方为Slave。整个处理过程分为两个阶段:数据传输与计算阶段、后处理阶段。 在数据传输与计算阶段中,Linux主导图像数据传输,数据一边输入系统一边计算并将结 果回送到Linux。Linux可随时暂停图像数据传输(例如因为网络I/O、文件I/O等原因),系统 同时暂停计算与结果的回传,直到Linux恢复数据传输。当Linux传输完一副图像的数据后, 进入后处理阶段。此时系统继续完成剩余计算并将结果回传Linux。

本发明优点在于:

通过行缓存模块和列缓存模块的高效调度与利用,实现了小波变换计算模块的时 分复用。该套小波变换系统,仅通过一套计算系统,即一个行变换模块和一个列变换模块, 便可实现多级二维小波变换。

系统整体采用模块化的设计思想,对于不同的需求,可更换相应的模块,但并不影 响时分复用的结构。例如将系统从97提升式小波变换转化为53提升式小波变换时,仅需要 调整计算模块和缓存模块,而只需要一套计算系统的结构不会改变。系统仍可以通过时分 复用的方式,仅通过一套计算系统,完成多级小波变换。

该套系统每做一级小波变换,按照当前级数的行宽,仅需要两行大小的行缓存模 块和五行大小的列缓存模块,以及一个一行大小的计算缓存模块。共八行大小的缓存空间, 节省了FPGA上宝贵的存储资源。以1280×800的图像为例,做第一级变换需要8×1280× 32bit的缓存空间,做第二级变换需要8×640×32bit的缓存空间,做第三级需要8×320× 32bit的缓存空间,依此类推。需要做多少级变换,则只需要添加相应的缓存模块,并配合一 定的控制即可,不需要添加其他计算模块。

由于系统采用时分复用设计,小波变换的多级变换结果是一起输出的,而不是要 等待上一级变换结束后,才开始进行下一级变换。每当上一级变换完成2行的列变换后,便 进行一次当前级的变换。在图像数据完全输入后,经过几行数据个数的延迟,便可输出所有 的变换结果。

该系统支持AXI4-Stream协议,可在Zynq系列FPGA上,与Linux系统完成协同运 行。Linux系统可连续、高速的将图像数据传送给FPGA上的小波变换系统,小波变换系统随 着图像的传输,边接收边处理,将变换结果回传到Linux系统,实现软硬件的无缝衔接。

[0023]本发明中的基于Zynq系列FPGA的时分复用小波变换系统,已在Zedboard开发板上 实现处理图像的四级二维小波变换系统。板上Zynq芯片的FPGA部分时钟频率是100MHz,硬 件资源消耗不超过总资源的40%;ARM部分运行Linux系统,通过网络接收图像并送入小波 变换系统内,变换结果回传Linux系统并通过网络传回用户端,形成一套联网的多级小波变 换处理平台。

具体实施方式

用户通过网络,将图像的二进制文件传入Zedboard上的Linux系统中,Linux系统 将图像数据,通过AXI4-Stream协议,传入FPGA上的小波变换系统。小波变换系统作为Slave 端口,接收图像数据,并开始进行变换。变换与图像的输入同时进行。

在第一行图像数据传入小波变换系统后,两个第一级行缓存模块同时存储该行数 据。在第二行数据传入的同时,两个行缓存模块一边输出第一行数据,一遍缓存第二行数 据。一个行缓存模块输出奇数位数据,另一个输出偶数位数据。行变换结束后,结果存储在 列缓存模块。在每行数据的开端和末尾,均通过镜像的方式处理边界问题。

第一行行变换结果的高频数据,存储在第一级列缓存模块的第一个高频FIFO中, 低频数据存储在第一级列缓存模块的第一个低频FIFO中。待第二行行变换结果输出时,其 高频数据存储在第一级列缓存模块的第一个高频FIFO中,而第一行行变换结果的高频数据 被推送到第二个高频FIFO中,低频数据相同,依此类推。

在列缓存模块存满第一级变换的5行行变换结果后,开始列变换。前5行的列变换 结束后,列缓存模块每刷新两行数据,便进行一行的列变换。在处理前5行行变换结果时,通 过镜像的方式处理前边界问题,并通过计算缓存模块缓存计算结果。在处理每一级变换的 最后4行行变换结果时,通过镜像整行数据,完成后边界的处理。

在列变换模块输出前两行列变换结果时,其中分为LL,HL,LH,HH四个子带。系统将 LL子带数据,存入第二级行缓存模块。由于每一级的两个行缓存模块每个时钟提供两个数 据给行变换模块,行变换模块计算该级的数据只需要半行个数的时间。在两个第一级行缓 存模块输出完第六行图像数据,还没有输出第七行图像数据的这段时间里,第二级行缓存 模块输出第一级变换结果的第一行数据给行变换模块,进行第二级行变换。

第二级行变换结果送入第二级列缓存模块。由于列缓存模块每刷新两行数据才进 行一行的列变换,列变换模块在处理第一级列缓存模块的输出数据时,中间会有一行个数 的空闲时间。在列变换模块处理完第一级列缓存模块输出的9到13行行变换结果后,尚未处 理11到15行行变换结果的这段时间里,第二级列缓存模块输出数据给列变换模块,完成第 二级变换。

在输出的前两行第二级小波变换结果中,LL子带数据将会被送入到第三级行缓存 模块中,在第二级行变换的空闲时间里完成第三级行变换。第三级行变换结果再送入第三 级列缓存模块中,在第二级列变换的空闲时间里完成第三级列变换,结果中LL子带再送入 第四级行缓存模块中,依次类推。

各级变换结果通过高频和低频两路通道输出。由小波变换系统作为Master,将结 果按照AXI4-Stream协议,回传Linux系统。在图像数据完全送入后,系统再经过几行短暂的 延迟完成剩余计算,便可完成一幅图像的完整变换。结果文件再经由网络,传回用户电脑 上,完成整个多级小波变换过程。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号