当前位置: 首页 > 专利查询>天津大学专利>正文

基于FPGA的图像上采样与DMA协同工作实现方法技术

技术编号:20915914 阅读:24 留言:0更新日期:2019-04-20 09:34
本发明专利技术涉及计算机视觉领域,尤其涉及一种基于FPGA的图像上采样与DMA协同工作实现方法。该DMA实现方法与传统DMA实现方法相比,具备等待功能,从而保证CPU和FPGA之间的数据传输模块DMA和基于FPGA的图像上采样处理模块能够协同工作,避免了在FPGA设计中多时钟域的存在。此外,在图像上采样模块的输出缓冲设计中,当输出剩余的数据量等于原始图像列数时,DMA读状态机开始工作,输入新的一行数据。因此,DMA读等待的时钟周期数约为原始图像列数的3倍。

Implementation of cooperative work between image sampling and DMA based on FPGA

The invention relates to the field of computer vision, in particular to a method for realizing cooperative work between image sampling and DMA based on FPGA. Compared with traditional DMA implementation method, this DMA implementation method has the waiting function, which ensures that the data transmission module DMA between CPU and FPGA and the image sampling and processing module based on FPGA can work together, and avoids the existence of multiple clock domains in the design of FPGA. In addition, in the output buffer design of the image sampling module, when the output remaining data is equal to the number of original image columns, the DMA reader state machine starts to work and inputs a new row of data. Therefore, the number of clock cycles waiting for DMA reads is about three times the number of original image columns.

【技术实现步骤摘要】
基于FPGA的图像上采样与DMA协同工作实现方法
本专利技术涉及计算机视觉领域,具体涉及一种基于FPGA的图像上采样与DMA协同工作实现方法。
技术介绍
在计算机视觉领域相关算法中,图像上采样处理应用广泛,如在SIFT(尺度不变特征变换)算法中,对初始图像进行上采样处理可以提取到鲁棒性更强的特征点。由于常用计算机视觉算法计算复杂度高,难以达到嵌入式系统中实时性的要求,采用FPGA对其加速逐渐得到越来越多的应用。采用FPGA对图像处理算法进行加速时,如果图像通过CPU获得,CPU和FPGA之间的数据传输非常重要,而解决数据传输模块与图像处理加速模块的协同工作问题是实现整个加速器系统的关键。
技术实现思路
本专利技术的目的在于克服现有技术的不足,提供一种基于FPGA的图像上采样与DMA协同工作实现方法。本专利技术为解决
技术介绍
中的技术问题,采用的技术方案是:基于FPGA的图像上采样与DMA协同工作实现方法,所述DMA具备等待功能;等待功能关闭,即为处于普通工作模式的DMA;等待功能的实现步骤具体如下:1)R_DATA表示读数据状态,如果预设等待时钟周期数rwait大于0,DMA等待功能开启,当一行数据传输结束后,读状态机进入读等待状态R_WAIT,其中预设等待时钟周期数rwait的值通过CPU进行设置;2)如果rwait等于0,则DMA等待功能关闭;3)当等待计数器wait_cnt的值达到预设条件rwait时,读状态机退出等待状态,继进进行数据传输。本专利技术对于上采样系数为2的情况,设计图像上采样数据输出模块,即:当输出缓冲器非空时开始输出上采样产生的数据,当输出剩余的数据量为原始图像列数时,DMA退出等待状态,继续输入下一行数据。本专利技术DMA读等待的时钟周期数为原始图像列数的3倍。对于一个包含CPU和FPGA的用于图像处理加速的SOC系统,提出了一种基于FPGA的图像上采样与DMA(直接内存存取)协同工作实现方法,用于解决数据传输模块和图像处理加速模块的协同工作问题。当采用FPGA实现图像上采样模块时,假设上采样系数为2,经过该模块处理后,输出图像的长和宽都变为初始状态的2倍。当输入一行数据时,上采样处理后,需要输出2行数据,且列数也要加倍,因此输出数据量等效为输入数据量的4倍。因此,如果数据连续输入,将不能保证数据的输入和输出在同一时钟域。一个可行的解决方案是控制像素的输入方式,当输入一行像素并经过上采样产生的数据全部输出时,再开始下一行像素的输入。在传统的基于AXI总线的DMA设计中,主要包括读模块、写模块、寄存器模块、数据通道选择模块等,在读模块中,控制状态机主要包括初始状态、传输读地址状态、读数据状态、读转换状态,数据连续传输,不能与上采样模块协同工作。提出的具有等待功能的DMA是指,在读数据状态和循环状态之间增加一个等待状态,等待的时钟周期数可以配置,因此,当传输完一行数据后,DMA进入读等待状态。当上采样模块输出数据完成后,DMA开始传输下一行数据。本专利技术的有益效果1、与传统的用于CPU和FPGA之间数据传输的DMA技术相比,在DMA读模块的设计中,增加读等待功能,可以保证与图像上采样处理模块的协同工作,其中等待的时钟周期数可以利用CPU进行设置,具备一定的灵活行。2、在图像上采样处理模块的设计中,当输出缓冲FIFO中的数据剩余量等于输入图像的列数时,DMA退出等待状态,继续进行下一行的数据输入,因此,DMA处于等待状态的时钟周期数约为3倍输入图像列数,降低了全部数据的传输时间。3、DMA具备等待功能,从而确保数据传输模块与图像上采样模块协同工作;同时等待功能可以关闭,即为处于普通工作模式的DMA;DMA读状态机处于等待状态的时钟周期数可以通过CPU进行设置,具备一定的灵活性;数据传输模块DMA和图像上采样处理模块协同工作,可以避免在一个系统中存在多个时钟域。附图说明图1为图像上采样处理硬件架构图。图2为具有等待功能的DMA读操作状态转换图。图3为DMA等待状态转换流程图。具体实施方式下面通过具体实施例和附图对本专利技术作进一步的说明。本专利技术的实施例是为了更好地使本领域的技术人员更好地理解本专利技术,并不对本专利技术作任何的限制。图像上采样处理的硬件设计如图1所示。其中,7个FIFO(先进先出队列)用于数据缓冲,buffer1、buffer3为FIFO0、FIFO1的输出数据,R1、R2代表寄存器,buffer2、buffer4表示R1、R2寄存器的值,寄存器R2的值输入至FIFO2中。inter1至inter4为差值计算结果,分别输入至FIFO3至FIFO6,mux1至mux4为4个多路选择器,对输入的数据进行选择输出。上采样模块的设计主要包括三个状态:(1)初始状态;(2)插值状态;(3)延时状态。在初始化阶段,第一行数据进入FIFO1中;然后第二行数据进入FIFO1中,同时FIFO1中缓存的第一行数据输出至FIFO0中。在插值状态,利用同时从FIFO0、FIFO1中读出的数据,并结合双线性插值的原理,进行插值计算;同时从FIFO1中读出的数据进入FIFO2中。插值计算公式如公式(1)、(2)、(3)、(4)所述。为了产生完整的原始图像扩大两倍后的像素数据,需要设置延时状态。延时状态的主要工作是输入两行0至FIFO1中,从而可以对FIFO0、FIFO2中的有效数据全部执行完插值计算。Inter1=buffer1(1)Inter2=(buffer1+buffer2)/2(2)Inter3=(buffer1+buffer3)/2(3)Inter4=(buffer1+buffer2+buffer3+buffer4)/4(4)图2为具有等待功能的DMA读操作状态转换图,其中R_IDLE、R_ADDR、R_DATA、R_WAIT、R_LOOP分别表示读初始状态、传输读地址状态、读数据状态、读等待状态、读转换状态。图3为DMA等待状态转换流程图,其工作流程如下所述。(1)R_DATA表示读数据状态,如果预设等待时钟周期数rwait大于0,DMA等待功能开启,当一行数据传输结束后,读状态机进入读等待状态R_WAIT,其中预设等待时钟周期数rwait的值通过CPU进行设置。(2)如果rwait等于0,则DMA等待功能关闭。(3)当等待计数器wait_cnt的值达到预设条件rwait时,读状态机退出等待状态,继进进行数据传输。DMA处于读等待状态的时钟周期需要结合上采样模块进行说明。在图1中,上采样产生的数据进入输出缓冲FIFO3、FIFO4、FIFO5、FIFO6,每个输出缓冲FIFO存储的数据量为原始图像列的数量。如果新的一行数据已经输入至FIFO0中,从插值状态开始,只要FIFO3、FIFO4非空即可输出存储的数据,即数据输出从插值状态开始。当输出剩余的数据量为原始图像列数时,DMA读状态机开始工作,新的一行数据输入至FIFO0中。因此,DMA读等待的时钟周期数为原始图像列数的3倍。应当理解的是,这里所讨论的实施方案及实例只是为了说明,对本领域技术人员来说,可以加以改进或变换,而所有这些改进和变换都应属于本专利技术所附权利要求的保护范围。本文档来自技高网...

【技术保护点】
1.基于FPGA的图像上采样与DMA协同工作实现方法,其特征在于,所述DMA具备等待功能;等待功能关闭,即为处于普通工作模式的DMA;等待功能的实现步骤具体如下:1)R_DATA表示读数据状态,如果预设等待时钟周期数rwait大于0,DMA等待功能开启,当一行数据传输结束后,读状态机进入读等待状态R_WAIT,其中预设等待时钟周期数rwait的值通过CPU进行设置;2)如果rwait等于0,则DMA等待功能关闭;3)当等待计数器wait_cnt的值达到预设条件rwait时,读状态机退出等待状态,继续进行数据传输。

【技术特征摘要】
1.基于FPGA的图像上采样与DMA协同工作实现方法,其特征在于,所述DMA具备等待功能;等待功能关闭,即为处于普通工作模式的DMA;等待功能的实现步骤具体如下:1)R_DATA表示读数据状态,如果预设等待时钟周期数rwait大于0,DMA等待功能开启,当一行数据传输结束后,读状态机进入读等待状态R_WAIT,其中预设等待时钟周期数rwait的值通过CPU进行设置;2)如果rwait等于0,则DMA等待功能关闭;3)当等待计数器wait_cnt的值达到...

【专利技术属性】
技术研发人员:姜晓明刘强
申请(专利权)人:天津大学
类型:发明
国别省市:天津,12

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1