概述
目前实时图像处理的硬件主要是 FPGA、GPU 和 DSP 三类。从笔者的开发经验来看,FPGA 以其实时性和灵活性占据主流;GPU 虽然不及DSP应用广泛,但是随着开发技术逐步升级和性能逐步提升,以及 DSP 技术自身的没落(个人观点,不讨论),GPU 在某些特定场景下可能是更优于 FPGA 的首选。
本系列文章主要说明基于 Xilinx FPGA 的实时图像处理。虽然 FPGA 开发用的 HDL 语言与 Intel FPGA(前身 Altera)通用,但是比较开发工具软件差异的话,还是 Xilinx 开发效率更高。
相关程序的开发软件环境为:
- Vivado 2018.2.1 System Edition
- Matlab 2017b
算法中的计算部分主要使用 Vivado 中的 System Generator 工具软件(下文简称sysgen),其具体使用方法见Xilinx官方文档:UG897 和 UG958。
sysgen 的开发基于 Matlab 的 Simulink 环境,使用 Xilinx 提供的功能模块在图形化界面进行 FPGA 开发,从原理上来说是使用图像化的功能模块来模拟 HDL 语言的功能。
Xilinx 的原文说的是 Model Based DSP Design,虽然主要应用于 DSP(数字信号处理),不是ISP(Image Signal Processing),但是数字图像也是数字信号的一种,计算方法和原理差异不大。
使用 sysgen 的好处在于直观的图形开发环境以及与 Matlab 环境的完美融合,