CN102663666B - 基于fpga的二维图像重采样算法加速器 - Google Patents

基于fpga的二维图像重采样算法加速器 Download PDF

Info

Publication number
CN102663666B
CN102663666B CN201210083361.8A CN201210083361A CN102663666B CN 102663666 B CN102663666 B CN 102663666B CN 201210083361 A CN201210083361 A CN 201210083361A CN 102663666 B CN102663666 B CN 102663666B
Authority
CN
China
Prior art keywords
coordinate
module
image
control module
external memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201210083361.8A
Other languages
English (en)
Other versions
CN102663666A (zh
Inventor
李宝峰
蒋句平
徐炜遐
田宝华
屈婉霞
郑明玲
张晓明
郑义
李元山
李小芳
宋振龙
邢建英
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN201210083361.8A priority Critical patent/CN102663666B/zh
Publication of CN102663666A publication Critical patent/CN102663666A/zh
Application granted granted Critical
Publication of CN102663666B publication Critical patent/CN102663666B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种基于FPGA的二维图像重采样算法加速器,包括FPGA芯片和外部存储器,FPGA芯片将从外部采集的已知图像存储到外部存储器中;在进行重采样处理时,FPGA芯片从外部存储器中读取已知图像的数据进行计算,并将计算得到的结果图像存储到外部存储器中并输出到外部。本发明可实现存在刚性变换的二维图像的重采样处理。

Description

基于FPGA的二维图像重采样算法加速器
技术领域
本发明涉及数字图像处理、电路与系统领域,特指一种二维图像重采样算法加速器。
背景技术
随着图像获取技术和应用需求的高速发展,单幅图像的数据量和单位时间内的总图像数据量均呈现指数增长态势,从而给传统的基于软件实现的各类图像应用的处理速度提出了巨大挑战。传统的基于软件实现的图像处理途径主要有两种:①基于桌面PC计算机、工作站、服务器等实现的单机图像处理软件;②基于大规模并行处理机、集群系统等实现的多机并行图像处理软件。从用户使用的角度出发,方法①具有平台体积较小、用户使用便捷的特点,但受限于平台性能,其处理速度不能满足现代图像应用对大规模数据的实时或及时处理需求。方法②具有处理性能高、实时性强的优点,但受限于大规模并行计算平台较低的可用性以及并行算法较高的设计难度,普通用户使用极不方便。同时,上述两种方法还有一个共同的缺点:环境适用性较差,难以满足一些对体积、性能等有特殊要求的场合(例如星载遥感图像处理)的使用需求。
重采样算法是图像处理的一种基本方法,是由已知图像根据一定的变换规则产生目标结果图像的过程,广泛使用在图像校正、图像配准、图像融合、图像变换等应用领域。重采样算法主要包括两个前后衔接的计算处理过程:①根据变换规则计算结果图像中的每个像素点位在已知图像中的共轭位置,常见的变换规则包括刚性变换、仿射变换、透视变换、多项式变换等;②根据已知图像中以共轭位置为中心的某一范围内(称为插值像素窗口,一般为矩形窗口)的所有像素值确定结果图像中相应像素点位的像素值,常见的像素值确定方法有双三次卷积法、双线性插值法、最邻近像素法等,其中双三次卷积法的采样精度最高,但计算复杂度也最高。
计算机生产制造工艺的飞速发展使得芯片容量越来越大,工作频率越来越高,从而为采用硬件实现更为复杂的功能(例如各种复杂的应用算法)提供了器件基础。现代FPGA(Field-Programmable Gate Array,现场可编程门阵列)器件及相关设计技术的发展为快速逻辑设计、验证、实现提供了一种极为方便的设计途径。算法加速器是指针对具体的应用算法而专门优化设计的硬件实体,其具有较高的数据吞吐率,从而成为应对大规模数据实时或及时处理问题的有效技术途径。算法加速器不仅能够作为独立实体单独使用,而且能够作为协处理或者附加模块在现有平台上使用。由于FPGA内部集成的存储块容量通常只有几KB~几MB,不能满足大容量图像数据的处理需求,故现有的加速器设计中还未发现有基于FPGA芯片实现的图像重采样算法加速器。
发明内容
本发明所要解决的技术问题是:针对现有技术存在的问题,提供一种数据吞吐率高、处理速度快、使用便捷、实时性好和适用性广的基于FPGA的二维图像重采样算法加速器。
为解决上述技术问题,本发明采用以下技术方案:
一种基于FPGA的二维图像重采样算法加速器,包括FPGA芯片和外部存储器,所述FPGA芯片将从外部采集的已知图像存储到所述外部存储器中;在进行重采样处理时,所述FPGA芯片从所述外部存储器中读取已知图像的数据进行计算,并将计算得到的结果图像存储到所述外部存储器中并输出到外部。
作为本发明的进一步改进:
所述FPGA芯片包括存储控制模块、坐标计算模块、权重计算模块、结果像素值计算模块和总控模块;所述存储控制模块用于将从外部采集的已知图像和计算得到的结果图像存储到所述外部存储器中,并在重采样处理过程中读取插值像素窗口中的所有像素点;所述坐标计算模块用于计算结果图像中每个像素点位在已知图像中的共轭位置的坐标,将所得坐标分解成坐标整数部分和坐标小数部分,并将所述坐标整数部分输出给所述存储控制模块用以读取插值像素窗口中的所有像素点,将所述坐标小数部分输出给所述权重计算模块用以计算插值像素窗口中每个像素点的插值权重;
所述结果像素值计算模块根据插值像素窗口中的每个像素点及其相应的插值权重计算结果图像中对应像素点位的像素值,所得所有像素值通过所述存储控制模块按序输出到外部存储器存储为结果图像数据;
所述总控模块对所述存储控制模块、所述坐标计算模块、所述权重计算模块和所述结果像素值计算模块进行管理。
所述外部存储器为SDRAM或闪存。
与现有技术相比,本发明的优点在于:
1、本发明的基于FPGA的二维图像重采样算法加速器,采用FPGA芯片外接外部存储器的结构,使加速器具有更高的数据吞吐率、更快的数据处理速度,并能够满足海量图像数据的实时或及时处理需求。本发明的加速器与现有基于桌面PC计算机、工作站、服务器等实现的单机图像处理软件技术相比,采用FPGA芯片实现不仅能够获得较高的计算处理能力,而且具有体积小、使用方便、适用场合广等特点。与现有基于大规模并行处理机、集群系统等实现的多机并行图像处理软件技术相比,本发明具有体积小、造价低、使用便捷等优点。
2、本发明的基于FPGA的二维图像重采样算法加速器,采用坐标计算模块和权重计算模块实现插值权重即时计算,与传统基于查找表实现的权重确定方法相比,有效避免了存储权重系数所产生的存储容量以及访问存储器带来的存储延迟,具有低存储、低延迟的优点,可实现存在刚性变换的二维图像重采样处理。
3、本发明的基于FPGA的二维图像重采样算法加速器,不仅能够作为独立实体单独使用,而且能够作为协处理或者附加模块在现有平台上使用,能够满足多种环境的使用需求,特别是对性能、体积等有严格要求的星载遥感图像处理环境。
附图说明
图1是本发明的基于FPGA的二维图像重采样算法加速器的组成结构示意图。
图2是本发明具体实施方式的重采样数据处理单元的组成结构示意图。
图3是本发明具体实施方式的坐标计算模块的结构示意图。
图4是本发明具体实施方式的权重计算模块的结构示意图。
图5是本发明具体实施方式的sinc函数计算模块的结构示意图。
图6是本发明具体实施方式的结果像素值计算模块的结构示意图。
具体实施方式
以下将结合说明书附图和具体实施例对本发明作进一步详细说明。
如图1所示,本发明的基于FPGA的二维图像重采样算法加速器,包括FPGA芯片和外部存储器,FPGA芯片将从外部采集的已知图像存储到外部存储器中;在进行重采样处理时,FPGA芯片从外部存储器中读取已知图像的数据进行计算,并将计算得到的结果图像存储到外部存储器中并输出到外部。本实施例中,外部存储器为SDRAM或闪存。
本实施例中,如图2所示,FPGA芯片包括存储控制模块、坐标计算模块、权重计算模块、结果像素值计算模块和总控模块;存储控制模块用于将从外部采集的已知图像和计算得到的结果图像存储到外部存储器中,并在重采样处理过程中读取插值像素窗口中的所有像素点;坐标计算模块用于计算结果图像中每个像素点位在已知图像中的共轭位置的坐标,将所得坐标分解成坐标整数部分和坐标小数部分,并将坐标整数部分输出给存储控制模块用以读取插值像素窗口中的所有像素点,将坐标小数部分输出给权重计算模块用以计算插值像素窗口中每个像素点的插值权重;
结果像素值计算模块根据插值像素窗口中的每个像素点及其相应的插值权重计算结果图像中对应像素点位的像素值,所得所有像素值通过存储控制模块按序输出到外部存储器存储为结果图像数据;
总控模块对存储控制模块、坐标计算模块、权重计算模块和结果像素值计算模块进行管理。
本发明的基于FPGA的二维图像重采样算法加速器工作步骤如下:
1、输入已知图像和重采样的图像变换参数。
1.1存储控制模块在总控模块的控制下将从外部采集的待重采样的大小为W×H的已知图像存放至外部存储器中。
1.2用户将重采样的图像变换参数(Xoff,Yoff,θ)传输给总控模块,其中Xoff为水平方向的平移量,Yoff为垂直方向的平移量,θ为图像旋转角度。
2、坐标计算模块根据重采样的图像变换参数(Xoff,Yoff,θ)以及重采样的图像变换规则,计算结果图像中当前点位(TX,TY)在已知图像中的共轭位置的坐标(X,Y);由于二维图像是由离散的像素点组成,因此该共轭坐标一般为非整数点位。坐标计算模块在共轭位置的坐标(X,Y)计算出来之后,将所得坐标分解成坐标整数部分(Xint,Yint)和坐标小数部分(Xfra,Yfra)分别输出给存储控制模块和权重计算模块。
本实施例中,如图3所示,坐标计算模块的计算规则为如下式(1)的刚性变换规则:
X = cos θ × ( TX - X off - W / 2 ) + sin θ × ( TY - Y off - H / 2 ) + W / 2 Y = - sin θ × ( TX - X off - W / 2 ) + cos θ × ( TY - Y off - H / 2 ) + H / 2 - - - ( 1 ) .
其中,sinθ、cosθ均在坐标计算模块启动之前计算得到,整个算法执行过程中保持不变,W/2、H/2只在需要时通过将W或H通过>>1(右移1位)操作即可完成。图3中为实现上述计算的逻辑电路结构,其中,A为有符号加法运算单元;B为有符号减法运算单元;C为有符号乘法运算单元。
3、存储控制模块根据坐标整数部分(Xint,Yint),从外部存储器中读取插值像素窗口中的所有像素点,并传给结果像素值计算模块。本实施例中,插值像素窗口的大小为4×4。
4、权重计算模块根据坐标小数部分(Xfra,Yfra)计算插值像素窗口中每个像素点的插值权重并传给结果像素值计算模块。
如图4所示,步骤4中插值权重的计算采用双三次卷积法,具体为:
4.1计算Xfra、Xfra+1、Xfra-1、Xfra-2、Yfra、Yfra+1、Yfra-1和Yfra-2的sinc值。
4.2最后取步骤4.1中前四者中任一个的sinc值与后四者中任一个的sinc值(1个X和1个Y对应相乘)两两对应相乘,得到共计16个权重系数(同时计算得到)。
本实施例中,采用基于4×4插值像素窗口的重采样方法,即根据已知图像中以共轭坐标为中心的4×4像素窗口计算结果图像中相应点位的像素值,为保证重采样精度,窗口中每个像素值对结果像素值的贡献(权重系数)通过双三次卷积法确定,即插值像素窗口中(x,y)位置上的像素值的权重系数w(x,y)的计算公式为:
w(x,y)=sinc(x)×sinc(y)(2)
其中,x∈{Xfra-2,Xfra-1,Xfra,Xfra+1},y∈{Yfra-2,Yfra-1,Yfra,Yfra+1},sinc函数的计算公式为:
sin c ( x ) = 1 - 2 x 2 + | x | 3 , | x | < 1 4 - 8 | x | + 5 x 2 - | x | 3 , 1 &le; | x | < 2 0 , | x | &GreaterEqual; 2 - - - ( 3 )
图5中为实现上述sinc函数计算的逻辑电路结构。由于sinc函数根据输入的取值范围而具有多个计算分支,传统实现方式为先判断而后计算,判断和计算只能顺序执行。为提高计算效率,本实施例的sinc模块采用判断和计算并行执行的实现方式,所有计算分支同时计算,最后根据输入|x|的取值范围选择相应的计算结果输出。
5、结果像素值计算模块根据读取的插值像素窗口中的像素值及其对应的插值权重进行计算,得到结果图像中当前点位的像素值。
如图6所示,本实施例中,结果像素计算模块的输入为存储控制模块读取的4×4插值像素窗口中的16个像素值(图6中标记为p0、p1、p2...p15)以及权重计算模块计算得到的对应16个权重值(图6中标记为w0、w1、w2...w15),其计算过程为16个像素值与对应的16个权重值两两相乘,而后再累加即得到浮点形式的结果像素值,最后采用浮点定点转换部件对其进行截断,从而得到最终的结果像素值。
6、存储控制模块将得到的结果图像中当前点位的像素值按照其固定位置写入外部存储器。
7、重复步骤2~6计算结果图像中下一点位的像素值。
8、待结果图像中所有点位的像素值计算完毕,存储控制模块在总控模块的控制下将结果图像数据输出到外部。
坐标计算模块、权重计算模块、结果像素值计算模块均采用流水线设计,保证本发明的图像重采样算法加速器每拍能够计算得到结果图像中的一个像素点位的像素值。
本发明的图像重采样算法加速器采用FPGA芯片外接外部存储器实现,可以满足二维图像重采样算法的计算复杂度高且存储需求大的要求,不仅能够获得较高的计算处理能力,而且具有体积小、使用方便、适用场合广等特点。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。

Claims (2)

1.一种基于FPGA的二维图像重采样算法加速器,其特征在于,包括FPGA芯片和外部存储器,所述FPGA芯片将从外部采集的已知图像存储到所述外部存储器中;在进行重采样处理时,所述FPGA芯片从所述外部存储器中读取已知图像的数据进行计算,并将计算得到的结果图像存储到所述外部存储器中并输出到外部;
所述FPGA芯片包括存储控制模块、坐标计算模块、权重计算模块、结果像素值计算模块和总控模块;所述存储控制模块用于将从外部采集的已知图像和计算得到的结果图像存储到所述外部存储器中,并在重采样处理过程中读取插值像素窗口中的所有像素点;即,存储控制模块在总控模块的控制下将从外部采集的待重采样的大小为W×H的已知图像存放至外部存储器中;用户将重采样的图像变换参数(Xoff,Yoff,θ)传输给总控模块,其中Xoff为水平方向的平移量,Yoff为垂直方向的平移量,θ为图像旋转角度;所述坐标计算模块用于计算结果图像中每个像素点位在已知图像中的共轭位置的坐标,将所得坐标分解成坐标整数部分和坐标小数部分,并将所述坐标整数部分输出给所述存储控制模块用以读取插值像素窗口中的所有像素点,将所述坐标小数部分输出给所述权重计算模块用以计算插值像素窗口中每个像素点的插值权重;对于结果图像中当前点位(TX,TY)在已知图像中的共轭位置的坐标(X,Y)而言,坐标计算模块在共轭位置的坐标(X,Y)计算出来之后,将所得坐标分解成坐标整数部分(Xint,Yint)和坐标小数部分(Xfra,Yfra)分别输出给存储控制模块和权重计算模块;坐标计算模块的计算规则为如下式(1)的刚性变换规则:
X = cos &theta; &times; ( TX - X off - W / 2 ) + sin &theta; &times; ( TY - Y off - H / 2 ) + W / 2 Y = - sin &theta; &times; ( TX - X off - W / 2 ) + cos &theta; &times; ( TY - Y off - H / 2 ) + H / 2 - - - ( 1 )
其中,sinθ、cosθ均在坐标计算模块启动之前计算得到,W/2、H/2通过将W或H通过右移1位操作即可完成;A为有符号加法运算单元;B为有符号减法运算单元;C为有符号乘法运算单元;
所述结果像素值计算模块根据插值像素窗口中的每个像素点及其相应的插值权重计算结果图像中对应像素点位的像素值,所得所有像素值通过所述存储控制模块按序输出到外部存储器存储为结果图像数据;
所述总控模块对所述存储控制模块、所述坐标计算模块、所述权重计算模块和所述结果像素值计算模块进行管理。
2.根据权利要求1所述的基于FPGA的二维图像重采样算法加速器,其特征在于,所述外部存储器为SDRAM或闪存。
CN201210083361.8A 2012-03-27 2012-03-27 基于fpga的二维图像重采样算法加速器 Active CN102663666B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210083361.8A CN102663666B (zh) 2012-03-27 2012-03-27 基于fpga的二维图像重采样算法加速器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210083361.8A CN102663666B (zh) 2012-03-27 2012-03-27 基于fpga的二维图像重采样算法加速器

Publications (2)

Publication Number Publication Date
CN102663666A CN102663666A (zh) 2012-09-12
CN102663666B true CN102663666B (zh) 2014-05-14

Family

ID=46773145

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210083361.8A Active CN102663666B (zh) 2012-03-27 2012-03-27 基于fpga的二维图像重采样算法加速器

Country Status (1)

Country Link
CN (1) CN102663666B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105528319B (zh) * 2015-12-07 2018-08-24 中国电子科技集团公司第三十二研究所 基于fpga的加速卡及其加速方法
CN105955705B (zh) * 2016-04-27 2019-02-26 南京大学 一种可重构的多通道检测算法加速器
CN107707820A (zh) * 2017-09-29 2018-02-16 中国科学院长春光学精密机械与物理研究所 基于fpga的航空相机实时电子变倍系统
CN116070684B (zh) * 2019-07-31 2023-10-20 华为技术有限公司 一种集成芯片以及处理传感器数据的方法
CN110910312A (zh) * 2019-11-21 2020-03-24 北京百度网讯科技有限公司 图像处理方法和装置、自动驾驶车辆、电子设备
CN110958362A (zh) * 2019-11-27 2020-04-03 湖南海森格诺信息技术有限公司 基于分块查表的图像校正系统及其方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1503345A1 (en) * 2003-07-30 2005-02-02 Koninklijke Philips Electronics N.V. System for adaptive resampling in texture mapping
US7734074B2 (en) * 2005-02-17 2010-06-08 Authentec, Inc. Finger sensor apparatus using image resampling and associated methods
CN101197043B (zh) * 2007-12-19 2013-03-13 山东经济学院 图像处理中的保型拟合方法
CN201690518U (zh) * 2010-01-21 2010-12-29 天津理工大学 基于fpga的嵌入式鱼眼图像实时畸变校正装置
JP5558973B2 (ja) * 2010-08-31 2014-07-23 株式会社日立情報通信エンジニアリング 画像補正装置、補正画像生成方法、補正テーブル生成装置、補正テーブル生成方法、補正テーブル生成プログラムおよび補正画像生成プログラム

Also Published As

Publication number Publication date
CN102663666A (zh) 2012-09-12

Similar Documents

Publication Publication Date Title
CN102663666B (zh) 基于fpga的二维图像重采样算法加速器
CN108229654B (zh) 神经网络卷积运算装置及方法
US11379698B2 (en) Sensor data processing method and apparatus
Choi et al. Continuous collision detection for two moving elliptic disks
WO2018113597A1 (zh) 矩阵乘加运算装置、神经网络运算装置和方法
CN102231788B (zh) 信号的高速和低复杂度的分条几何变换的方法及装置
CN109712234B (zh) 三维人体模型的生成方法、装置、设备和存储介质
CN111860398B (zh) 遥感图像目标检测方法、系统及终端设备
CN111160298A (zh) 一种机器人及其位姿估计方法和装置
Li et al. High throughput hardware architecture for accurate semi-global matching
CN113065997B (zh) 一种图像处理方法、神经网络的训练方法以及相关设备
CN102209962A (zh) 计算离散傅里叶变换(dft)系数矩阵的方法和设备
Carranza et al. Fast and scalable computation of the forward and inverse discrete periodic radon transform
CN113298870B (zh) 一种物体的姿态跟踪方法、装置、终端设备和存储介质
CN103176949B (zh) 实现fft/ifft变换的电路及方法
CN103776907A (zh) 基于sinc插值的超声相控阵接收信号精延时方法
CN102970545A (zh) 一种基于二维离散小波变换算法的静态图像压缩方法
CN113822097B (zh) 单视角人体姿态识别方法、装置、电子设备和存储介质
CN115659110A (zh) 三角函数计算方法、装置、设备及存储介质
CN112991445B (zh) 模型训练方法、姿态预测方法、装置、设备及存储介质
CN110689513B (zh) 彩色图像融合方法、装置和终端设备
CN103293519B (zh) 基于流水线工作方式的i/q通道误差校正方法及其系统
CN105611302A (zh) 一种基于粗粒度可重构系统的二维离散小波变换实现方法
Eswar Noise reduction and image smoothing using gaussian blur
CN103729867A (zh) 基于bp反投影成像算法的硬件加速器以及数据处理方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant