在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1268|回复: 0

[原创] Linux OS下FPGA的图像加速-3

[复制链接]
发表于 2019-4-2 22:38:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
Linux_GUI加速(3)_加速模块设计




该系列前两篇主要扯了扯Linux中GUI相关的DRI框架及相关组件实现方式。细想一下,对于GUI相关的加速能做的其实不多,开发一个2D或3D的显卡加速子模块对于一个DEMO教程的量级来说工作量太大,我们在这只实现一下简单的功能:
  • 通过Zynq的PL部分实现对Qt视频播放器中待输出的Framebuffer的二值处理;
1、 简单的处理介绍
上述处理十分简单,对于一幅分辨率为M*N的灰度图像来说,二值化的处理如下:

                               
登录/注册后可看大图
,其中

                               
登录/注册后可看大图
表示图像上任意一点灰度值,

                               
登录/注册后可看大图
为二值化阈值,对于RGB图像来说(以RGB888为例),RGB转化为灰度图的表达式如下:

                               
登录/注册后可看大图
,对于此例不怎么严格的要求,采用16位的定点化精度足以,对应着表达式如下:

                               
登录/注册后可看大图
2、 FPGA加速方案
图像(预)处理的本质其实是二维数据的处理,常见的图像预处理分为以下几类:
1、 线性滤波,如噪声平滑,边缘增强;
2、 非线性滤波,如零交点检测等;
3、 形态学滤波,如膨胀腐蚀等;
4、 其它相对较复杂的图像处理;
上述几种图像处理在信号处理实现上来说都是局部滤波器的实现,以线性滤波为例,滤波器函数可表示为滑窗内像素的权值与像素值的乘加之和,此处权重指的是滑窗内各个算子的大小,表达如下:

                               
登录/注册后可看大图
其中

                               
登录/注册后可看大图
为滑窗对应的算子,i,j的取值范围有滑窗大小决定。FPGA特别适合这类流水式的运算。,内部的DSP硬核或者由slice搭建生成的乘加器,是线性滤波的核心运算单元。以一个3X3的窗口为例,对应的滤波操作如下图所示:

                               
登录/注册后可看大图
对于上述的几点解释如下:
1、 粉色框对应着图像的缓存部分,对于线性滤波计算,滑窗的尺寸(算子的size)越大,所需要缓存的容量越大,缓存一般使用片内的block ram或distribute ram。当然,我们也可以使用片外存储,如DDR,但片数据片内外的搬运会造成较大的延时,因此,在设计之初我们就得在延时及滑窗size之间做好tradeoff。
2、 蓝色部分为最终输出的图像滤波结果。由于缓存的存在,整体的图像刷新输出会比输入延迟a*(W-1)+a-1个像素clk,其中a为滑窗的size,W为前篇中介绍的drm_framebuffer结构体中width值。
二值化的处理其实可以看做简化的滑窗滤波操作,此时的a=1,算子值为1,滑窗结果通过一个比较器输出二值化结果。影响二值化的参数为阈值大小,此处我们将这些需要配置的参数通过AXI_lite总线暴露给PS(ARM)端,让软件(运行在PS端的Qt上位机)动态配置。整个系统的结构如下:

                               
登录/注册后可看大图
3、 FPGA加速效果及性能分析
FPGA的处理速度取决于:
  • 芯片速度等级(支持的最高频率);
  • 加速模块的设计方案(并行化设计、利用资源换时间);
在本例中,处理速度取决于pixel的驱动时钟(本处50MHz),即大致60(FPS)*1080*720。

皮一下很开心,用海贼王的一小段打斗场面做了测试,效果如下见原文链接:http://high-perf-lab.tech/

相应文章会同步更新至专栏中
更多相关文章见 http://high-perf-lab.tech/






您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-23 13:59 , Processed in 0.016508 second(s), 9 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表