最近在Zedboard上实现了一个简单的视频视频处理系统,可以将摄像头采集进来的图像进行1~8倍的放大显示。在这里讲一下我做这个系统的过程和思路,还有一些我觉得容易忽略的细节问题,和大家一起交流探讨,也欢迎大家指出我的设计中不好的地方,能提出更好的方案就更好了。整个系统如下图所示:
系统设计我用的是XilinxVivado,系统中用到的Video Scaler、VDMA和Data Converter等IP都可以使用Xilinx提供的(注意自Vivado 2016.3起Xilinx不再提供Video Scaler IP,只能使用Video Processing Subsystem IP)。Video Scaler不是免费使用的,不过可以到Xilinx官网申请Hardware EvaluationLicense,一次可以免费使用120天。
从左到右简单介绍一下,摄像头我用的是OV7725,这种摄像头在智能车竞赛中常用,分辨率不高,最大只有640x480,但简单易用,采用CMOS接口,可以直接接到开发板上,有多种数据输出格式可选,网上资料也比较多了。摄像头的寄存器需要用SCCB协议配置,这里推荐用软件实现协议(我就是这么做的),因为寄存器的配置经常要修改以在不同环境下达到满意的显示效果。CPU要与开发板外部接口交互,需要经过一个GPIO的IP,这比较简单。我