基于fpga的图像超分辨率的实现方法_2

文档序号:8943698阅读:来源:国知局
)]+l) X (l-G(Yd(j))) (10)
[0048] 将⑶式代入(9)式得到
[0049] Vd (Xd (i), Yd (j)) = Vs ([R (Xd (i)) ], [R (Yd (j))])
[0050] X (1-F(Xd(i))) X (l-G(Yd(j))) +
[0051 ] Vs ([R (Xd (i)) ],[R (Yd (j)) ] +1) X F (Xd (i)) X
[0052] (l-G(Yd(j)))+Vs([R(Xd(i))]+l, [R(Yd(j))]) X
[0053] (1-F (Xd (i))) XG(Yd(j)) +
[0054] Vs([R(Xd(i))]+l, [R(Yd(j))]+l) XF(Xd(i))) X
[0055] G (Yd (j)) (11)
[0056] 可以发现公式(11)和公式(I)是类似的。
[0057] 由运算分析可知,目标图像某一点的像素值由源图像相邻两行的相邻两点决定, 为此设计了单输入双输出端口的RAM,实现读取相邻地址的两个数据。定义该RAM的深度为 源图像一行的像素点数,宽度为像素数据宽度,实现源数据相邻两行像素的存储。
[0058] 根据目标图像存储像素的位置Xd(i)、Yd(j)经位置分析模块得到与此像 素点相关的源图像的位置(R([X d(i)]),R([Xd(j)]))、(R([Xd⑴])+l,R([X d(j)]))、 (R([Xd(i)]),R([Xd(j)]+l))、(R([X d(i)])+l,R([Xd(j)]+l))以及相应位置点的权值 F(Xd(i))、(l-F(Xd(i)))和G(Yd(j))、(l-G(Y d(j)))。写控制模块根据位置分析模块得到的 源图像的位置控制源图像的模块写入相应RAM中。
[0059] 如图1所示,在双线性插值硬件结构图中定义了四个单输入双输出端口的RAM。其 中RAMO、RAMl加权运算对应目标图像的插值像素值时,RAM2、RAM3写入目标图像下一行运 算所需的源图像的像素值;RAM0、RAM1运算结束后,RAM2、RAM3进行加权运算,RAM0、RAM1开 始写入源图像像素值,在时间上实现数据连续运算输出,空间上实现RAM空间的并行复用, 提尚运算效率。
[0060] 循环控制模块控制四个RAM模块的循环调度实现数据写入,如图2所示循环调 度分为两级,分别为RAMO、RAMl和RAM2、RAM3之间以及RAM0RAM1之间、RAM2RAM3之间。 RAMO、RAMl和RAM2、RAM3之间在运算目标图像像素值和写入源图像像素值功能间循环切 换;RAM0RAM1之间、RAM2RAM3之间实现源图像像素值循环写入。这样的结构设计充分利用 了 FPGA并行流水复用的特征,既保证了数据带宽的充分利用,又节省了 FPGA的空间资源。
[0061] 根据运算分析可知由位置分析模块得到的四个权值是归一化的小数,FPGA虽然能 够支持浮点数运算,但需要大量逻辑和布线资源,性能比较差,不利于FPGA的运算,因此将 权值映射到整数范围内运算。整个运算过程中,S x、\是浮点数,权值基于S x、Sy运算得到, 将\、Sy整数化,即可将运算都整数化。浮点数的整数化是将对应的浮点数左移相应的位 数,在乘法运算结束后右移相应的位数。
[0062] 本实施例在Xilinx公司的Kintex-7开发板上实验验证,如图3所示是该算法占 用的FPGA资源,包括645个触发器、2个RAM以及11个DSP等,资源占用率不高。
[0063] 图4所示是双线性插值硬件化实现的建立保持时间图,从图中可以看出数据最少 只要保持(〇. 067+5. 175) = 5. 242ns传输即可,意味着时钟频率可以达到190MHz,插值到 1024x1024像素的时间是5. 5ms,实际使用过程中不采用理想最高频率,选择低些的频率来 避免数据丢失或错乱。一般选择实现25~30帧每秒即可。
[0064] 如图5-6所不是插值前后的Lena图,源图像的分辨率为512x512,插值后分辨率为 1024x1024,可以大致看到图6比图5细节方面更加清晰。
[0065] 图7-8是插值前后Lena图的直方图比较,从直方图中可以更直观地分析图像的细 节连续性问题。比较图7和图8可以看到插值后的Lena直方图比插值前更平滑,说明图像 的连续过渡性更好,实现了直方图的均衡化。
[0066] 综上,本发明能够有效的提高图像分辨率以及图像处理速度。这一点在在 Kintex-7开发板上得到验证,实现图像处理25~30帧每秒,同时图像插值后不仅细节更加 清晰,从直方图中可看到图像得到了均衡化。
[0067] 以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实 施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施 例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精 神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1. 一种基于FPGA的图像超分辨率的实现方法,其特征在于,循环控制模块控制RAM模 块的循环调度实现数据写入; RAM模块读取数据时,采用单输入双输出端口的RAM,定义所述单输入双输出端口的 RAM的深度为源图像一行的像素点数,宽度为像素数据宽度,实现源数据相邻两行像素的存 储; 由位置分析模块得到的权值是归一化的小数,将权值映射到整数范围内运算。2. 根据权利要求1所述的基于FPGA的图像超分辨率的实现方法,其特征在于,所述 单输入双输出端口的RAM在双线性插值硬件结构图中定义了四个单输入双输出端口的 RAM0-3,其中RAMO、RAMl加权运算对应目标图像的插值像素值时,RAM2、RAM3写入目标图 像下一行运算所需的源图像的像素值;RAMO、RAMl运算结束后,RAM2、RAM3进行加权运算, RAM0、RAM1开始写入源图像像素值,在时间上实现数据连续运算输出,空间上实现RAM空间 的并行复用。3. 根据权利要求1或2所述的基于FPGA的图像超分辨率的实现方法,其特征在于,循 环控制模块控制四个RAM模块的循环调度实现数据写入,分别为RAMO、RAMl和RAM2、RAM3 之间以及RAM0RAM1之间、RAM2RAM3之间;RAM0、RAM1和RAM2、RAM3之间在运算目标图像像 素值和写入源图像像素值功能间循环切换;RAM0RAM1之间、RAM2RAM3之间实现源图像像素 值循环写入。4. 根据权利要求1所述的基于FPGA的图像超分辨率的实现方法,其特征在于,整个运 算过程中,权值基于浮点数运算得到,将浮点数整数化,即可将运算都整数化;浮点数的整 数化是将对应的浮点数左移相应的位数,在乘法运算结束后右移相应的位数。
【专利摘要】本发明提供一种基于FPGA的图像超分辨率的实现方法,循环控制模块控制RAM模块的循环调度实现数据写入;RAM模块读取数据时,采用单输入双输出端口的RAM,定义所述单输入双输出端口的RAM的深度为源图像一行的像素点数,宽度为像素数据宽度,实现源数据相邻两行像素的存储;由位置分析模块得到的权值是归一化的小数,将权值映射到整数范围内运算。本发明提高了图像处理速率,实现了超分辨率。
【IPC分类】G06T1/00
【公开号】CN105160622
【申请号】CN201510623919
【发明人】钟雪燕, 李春英
【申请人】南京铁道职业技术学院
【公开日】2015年12月16日
【申请日】2015年9月25日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1