随着现代图像及视频处理技术的不断发展,人们对图像处理提出了新的要求,最近几年,图像的分辨率和扫描频率都有了较大范围的提升,1080p分辨率的视频已经非常流行,2k甚至4k分辨率的图像也在火热发展中。
基于软件的图像处理方法存在着一些局限性,尤其是计算速度和算法效率方面。所以大家很自然的就想到了fpga作为嵌入式图像应用的平台。许多图像处理本身就是并行计算的,并且fpga的编程硬件,本质上也是并行的。
fpga(field-program mable gate array),即现场可编程门阵列,它是在pal、gal、cpld等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(asic)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
下面以米尔vecp边缘视觉套件作为图像处理的硬件平台,带你玩转fpga之视频图像抓取。
fpga功能描述图示:
一、前期准备工作
将产品资料光盘中的镜像文件和摄像头测试文件复制到tf卡中,并安装光盘中的工业相机采集软件oct sdk工具,同时去cypress凯发k8官网下载fx3 sdk工具进行固件烧录。(具体文件路径请看板卡配套资料)
二、操作过程
(1)将开发板的启动模式switch 开关sw1 的1 拨到off,2 拨到on,3拨到off,4 拨到on,设置成tf 卡启动模式;
(2)插入已存入文件的tf 卡,连接串口,波特率设置为115200,开发板上电;
(3)开发板将引导进入ramdisk 文件系统,进入linux 命令行:
welcome to myir board
myir login: root
[root@myir ~]#
(4)打开oct sdk 工具,如下图,选择“ocam technology”,点击右键选择connect>window:1:
(5)发送控制指令,设置gige(网络接口)为输出接口的视频源为1,选择ps vdma为输出的视频源;
[root@myir ~]# cd /mnt/mmcblk1p1/
[root@myir mmcblk1p1]# ./setispcmd 81 01 12 00 01 00 02 ff
(6)抓取摄像头图像,输入如下命令,将会生成图像文件rgb888;
[root@myir mmcblk1p1]# ./ispcaptest
(7)显示抓取摄像头图像;
[root@myir mmcblk1p1]# cat rgb888 >/dev/fb0
(8)oct 工具将会显示抓取的摄像头图像;
三、hdmi接口显示
如果要用hdmi 接口的4k 显示器显示摄像头图像,输入如下命令,将会显示如下图的摄像头图像。
[root@myir ~]# cd /mnt/mmcblk1p1/
[root@myir mmcblk1p1]# ./setispcmd 81 01 12 00 01 00 01 ff
[root@myir mmcblk1p1]# ./ispcaptest
[root@myir mmcblk1p1]# cat rgb888 >/dev/fb0
四、usb显示输出
如果要用usb 显示摄像头图像,按照“myd-czu3eg-isp 功能描述和编译”的文档生成包含usb 显示图像的功能的boot.bin,替换tf 卡中的boot.bin文件,将会显示如下图的摄像头图像。
[root@myir ~]# cd /mnt/mmcblk1p1/
[root@myir mmcblk1p1]# ./setispcmd 81 01 12 00 01 00 04 ff
[root@myir mmcblk1p1]# ./ispcaptest
[root@myir mmcblk1p1]# cat rgb888 >/dev/fb0
五、hdmi 显示qt 界面
将开发板的启动模式switch开关sw1 的1 拨到off,2 拨到on,3拨到off,4 拨到on,设置成tf 卡启动模式;
插入已存入烧写文件的tf 卡,连接串口波特率为115200,开发板上电;
开发板将引导进入ramdisk文件系统,进入linux 命令行,输入命令开始更新:
welcome to myir board
myir login: root
[root@myir ~]#/updatesys.sh /mnt/mmcblk1p1
脚本将把boot.bin,devicetree.dtb,image 烧写到qspi-flash,把rootfs.tar烧写到emmc。
烧写完成之后,将开发板的启动模式switch 开关sw1的1拨到on,2拨到off,3拨到on,4拨到on,
设置成qspi flash 启动模式,重新上电,进入烧写的rootfs文件系统,输入如下命令。
welcome to myir board
myir login: root
[root@myir ~]# /mnt/mmcblk1p1/setispcmd 81 01 12 00 01 00 01 ff
[root@myir ~]# /usr/lib/qt/examples/widgets/painting/deform/deform
六、选择视频源的指令说明
选择视频源的指令说明见下表,查看isp 控制指令集,请参考《myd-czu3eg -isp图像控制指令手册》文档。
isp 视频源控制指令集 |
|||
command set |
command |
command packet |
comments |
pl output |
pl video |
81 01 12 00 01 00 0y ff |
y的bit0、1、2分别表示hdmi、gige、u3v输出接口的视频源选择:0表示选择pl isp输出的视频、1表示选择ps vdma输出的视频。 |
myd-czu3eg开发板由myc-czu3eg核心板加myb-czu3eg-c-isp底板组成。核心板采用了xilinx最新的基于16nm工艺的zynq ultrascale all programmable soc平台,集成了四核cortex™-a53 处理器,双核cortex™-r5 实时处理单元以及mali-400 mp2图形处理单元及16nm finfet 可编程逻辑相结合的异构处理系统。