基于FPGA仿射逆变换的数据加速处理方法与流程

文档序号:34177810发布日期:2023-05-17 06:34阅读:57来源:国知局
基于FPGA仿射逆变换的数据加速处理方法与流程

本发明涉及图像处理,尤其涉及一种基于fpga仿射逆变换的数据加速处理方法。


背景技术:

1、随着科技的发展,人们对高清视频的需求越来越强烈。将低分辨率的视频缩放为高清视频成了一大课题。随着fpga(field programmable gate array,现场可编程逻辑门阵列)的应用越来越广泛,基于fpga实现高清视频也逐渐成为主流。

2、仿射变换算法能实现图像的旋转、平移、缩放等功能,在诸多视频图像处理领域应用广泛。

3、但是,现有技术中针对随机存取bram(block random access memory,块随机存取存储器)空间只能独立进行数据读取和写入,导致fpga进行数据处理时耗时过长;同时,在面对图像缩小变换时需要加载较大的原始图像数据,bram空间不足以放置所需原始图像数据,导致数据执行失败。


技术实现思路

1、鉴于上述的分析,本发明实施例旨在提供一种基于fpga仿射逆变换的数据加速处理方法,用以解决现有技术中fpga进行数据处理时耗时过长以及由于bram空间不足无法实现仿射缩小变换的问题。

2、本发明实施例提供了一种基于fpga仿射逆变换的数据加速处理方法,所述数据加速处理方法包括:

3、将结果图像划分为多个子图块作为填图子图块,所述填图子图块分为奇列块和偶列块;

4、基于乒乓操作对所述奇列块和偶列块执行预加载步骤和寻址读取步骤;

5、所述预加载步骤包括:根据所述奇列块/偶列块和仿射变换逆矩阵在原始图像中确定对应的第二预加载子图块,并将所述奇列块对应的所述第二预加载子图块存储至第一bram空间,将所述偶列块对应的所述第二预加载子图块存储至第二bram空间;

6、所述寻址读取步骤包括:依次遍历所述奇列块/偶列块中每一个像素点,根据所述仿射变换逆矩阵和所述奇列块/偶列块对应的所述第一bram空间/第二bram空间中的第二预加载子图块确定所述每一个像素点的像素值,对所述每一个像素点的像素值进行填充。

7、基于上述方法的进一步改进,所述根据所述奇列块/偶列块和仿射变换逆矩阵在原始图像中确定对应的第二预加载子图块,包括:

8、根据所述奇列块/偶列块和仿射变换逆矩阵确定抠图子图块,根据所述抠图子图块确定第一预加载子图块;判断所述第一预加载子图块的尺寸是否大于所述第一bram空间/第二bram空间的尺寸;如果判断为是,根据所述第一预加载子图块和所述第一bram空间/第二bram空间的尺寸确定预缩小倍率参数,基于所述预缩小倍率参数对所述第一预加载子图块进行缩小,得到第二预加载子图块;如果判断为否,将所述第一预加载子图块作为所述第二预加载子图块。

9、基于上述方法的进一步改进,所述根据所述仿射变换逆矩阵和所述奇列块/偶列块对应的所述第一bram空间或第二bram空间中的第二预加载子图块确定所述每一个像素点的像素值,包括:

10、结合所述仿射变换逆矩阵和所述预缩小倍率参数,确定所述奇列块/偶列块中所述每一个像素点的坐标在所述第一bram空间/第二bram空间中对应的第一坐标;

11、根据所述第一坐标确定对应的所述每一个像素点的像素值。

12、基于上述方法的进一步改进,所述结合所述仿射变换逆矩阵和所述预缩小倍率参数,确定所述奇列块/偶列块中所述每一个像素点的坐标在所述第一bram空间/第二bram空间中对应的第一坐标,包括:

13、根据每一个像素点的坐标和仿射变换逆矩阵得到所述原始图像中对应像素点的坐标,将原始图像中像素点的坐标减去第一预加载子图块的首坐标之后再乘以预缩小倍率参数得到第一坐标。

14、基于上述方法的进一步改进,所述基于乒乓操作对所述奇列块和偶列块执行预加载步骤和寻址读取步骤,包括:

15、将所述结果图像中所有的填图子图块按照从左至右、从上往下的顺序进行,基于乒乓操作对所述奇列块/偶列块执行所述预加载步骤和所述寻址读取步骤;

16、在对奇列块/偶列块执行所述预加载步骤时,同时对偶列块/奇列块进行所述寻址读取步骤。

17、基于上述方法的进一步改进,所述根据所述奇列块/偶列块和仿射变换逆矩阵确定抠图子图块,包括:

18、确定所述奇列块/偶列块对应的填图坐标;所述填图坐标包括所述奇列块/偶列块对应的四个填图顶点坐标;

19、基于仿射逆变换,根据所述四个填图顶点坐标和所述仿射变换逆矩阵确定所述抠图子图块的抠图坐标,所述抠图坐标包括四个抠图顶点坐标;

20、根据所述四个抠图顶点坐标确定所述抠图子图块。

21、基于上述方法的进一步改进,所述根据所述抠图子图块确定第一预加载子图块,包括:

22、根据所述抠图子图块的所述四个抠图顶点坐标,确定出所述抠图子图块在两个坐标轴上的最大值和最小值;

23、根据所述两个坐标轴上的最大值和最小值,确定所述第一预加载子图块的四个顶点坐标:

24、

25、其中,a、b、c和d表示所述第一预加载子图块的四个顶点坐标,xmax表示所述抠图子图块在x轴上的最大值,xmin表示所述抠图子图块在x轴上的最小值,ymax表示所述抠图子图块在y轴上的最大值,ymin表示所述抠图子图块在y轴上的最小值。

26、基于上述方法的进一步改进,所述判断所述第一预加载子图块的尺寸是否大于所述第一bram空间/第二bram空间的尺寸,包括:

27、确定所述第一预加载子图块的长度和宽度以及确定所述第一bram空间/第二bram空间的长度和宽度;

28、计算所述第一预加载子图块的长度和所述第一bram空间/第二bram空间的长度的长度比值以及计算所述第一预加载子图块的宽度和所述第一bram空间/第二bram空间的宽度的宽度比值;所述第一bram空间和第二bram空间的尺寸相同;

29、若所述长度比值和宽度比值中任意一个大于1,则判断为是,否则,判断为否。

30、基于上述方法的进一步改进,所述根据所述第一预加载子图块和所述第一bram空间/第二bram空间的尺寸确定预缩小倍率参数,包括:

31、判断所述长度比值是否大于所述宽度比值;如果判断为是,则根据所述长度比值确定所述预缩小倍率参数;否则根据所述宽度比值确定所述预缩小倍率参数;所述预缩小倍率参数为n/m,其中,n和m均为[1,6]的整数,且m>n。

32、基于上述方法的进一步改进,所述基于所述预缩小倍率参数对所述第一预加载子图块进行缩小,得到第二预加载子图块,包括:

33、在所述第一预加载子图块中的每一行的相邻两个像素之间插入n-1个像素点,之后,在所述第一预加载子图块中的每一列的相邻两个像素之间插入n-1个像素点,从而将所述第一预加载子图块扩大n倍,得到中间子图块;

34、在所述中间子图块中,每间隔m-1行选取一行作为待采样行,在所述每一待采样行中,每间隔m-1个点选取一个像素点作为采样点,从而将所述中间子图块缩小m倍,得到第二预加载子图块。

35、与现有技术相比,本发明至少可实现如下有益效果之一:

36、1、通过判断需要加载的原始图像数据(第一预加载子图块)的尺寸是否大于bram空间的尺寸;如果判断为是,根据原始图像数据和bram空间的尺寸对原始图像数据进行缩小,将缩小后的原始图像数据保存至bram空间,实现了将原始图像数据正常保存至bram空间,保证仿射变换中的缩小变换能够执行成功。

37、2、通过填图子图块的填图坐标,基于仿射逆变换确定需要加载的原始图像数据,提高了计算需要加载的原始图像数据的准确度。

38、3、根据需要加载的原始图像数据与bram空间的长度比值和宽度比值,进一步确定了预缩小倍率参数,使得对原始图像数据缩小时,保证了缩小范围,减少了原始图像数据的损失。

39、4、通过乒乓操作对结果图像分成的奇列块和偶列块执行预加载步骤和寻址读取步骤,实现了fpga对数据的快速处理,减少了处理时延。

40、本发明中,上述各技术方案之间还可以相互组合,以实现更多的优选组合方案。本发明的其他特征和优点将在随后的说明书中阐述,并且,部分优点可从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过说明书以及附图中所特别指出的内容中来实现和获得。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1