一、引言
随着计算机与集成电路技术的发展,实时处理图像的应用场景逐渐多样化,同时随着各种各样的场景对图像分辨率的要求逐渐变高,图像采集与处理系统在耗时方面也随之增加。
解决办法:改变算法的硬件实现方式,选用资源丰富、性能高效的平台对大规模视频图像数据进行采集与处理。
本文设计了一套基于ZYNQUltraScale+MPSOC的图像采集与处理系统,主要内容如下:
(1)针对常见的多媒体处理器对于图像处理实时性差、延时大等问题,本文设计的图像采集与处理系统基于MPSOC平台,对于国产CMOS图像传感器GMAX4002输出的高速(1920×1080@60fps)图像信号,通过MIPID-PHY接口实现高速采集,并采用FPGA实现实时ISP信号处理,最终在DP显示器上实时显示。
(2)为了提升军用车载背景下的图像质量,本文将设计的图像信号处理ISP算法流水线模块应用于系统数据通路。首先打通从MPSOC到国产Sensor-GMAX4002的系统控制通路,采集图像数据并输入给ISP模块进行图像处理。
(3)在系统调试部分,系统各部分功能的实验效果均通过DP显示器实时显示,调试效果符合预期,达成了较高质量的视频图像数据显示的目的。
二、数字图像成像原理
数字图像处理,即利用计算机技术对图像信息进行分析和加工处理,其核心系统通常由三大部分构成:图像数字化设备、高性能计算机以及图像显示装置。
相机是最典型的数字成像系统,作用是原始记录和美化人眼看到的世界,因此它的设计参考了人类的视觉系统。
人类视觉系统能够在各种不同光源色温的光照条件下识别物体的颜色,这种自动排除光源影响的能力称为色彩恒常性,这种能力对应着ISP中的自动白平衡模块。经典的相机系统结构是充分参考人类视觉系统设计的。
三、硬件搭建与系统构成
本文的设计针对图像采集与处理系统,拟采用国产高云(Gowin)半导体5A系列FPGA 与国产长光辰芯Sensor-GMAX4002搭建硬件环境。
为了加快实现国产化的远大目标,在设计验证阶段,先选用Xilinx的ZYNQUltraScale+MPSOC配合国产Sensor-GMAX4002打通数据通路与控制通路
3.1 主控制器
本文设计的图像采集与处理系统基于ZYNQUltraScale+MPSOC平台,通过MPSOC芯片的MIPICSI-2的D-PHY接口实现1920×1080@60fps的超清视频高速采集,并在DP显示器上实时显示。
系统采集国产Sensor-GMAX4002的图像数据并进行处理,旨在降低军用车载摄像模组的图像传输延时,提升图像质量。
本设计搭建的图像采集与处理系统以Xilinx的ZYNQUltraScale+MPSOCEV系列的XCZU7EV-FFVC1156-2-I 芯片为处理核心。该芯片是业界首款采用台积电公司16FF+工艺的异构MPSOC。
除此之外,芯片内部集成了H.264/H.265视频编解码器,能够同时编解码达4K×2K@60fps的视频,是汽车高级辅助驾驶系统、监控及其他嵌入式视觉应用的理想选择,适合高速通信、机器视觉、视频采集与输出领域,非常适用于图像采集与处理系统项目研发的设计验证。
芯片XCZU7EV-FFVC1156-2-I 搭载在 ZYNQ UltraScale+ MPSOC MZU07A-EV开发板上。
开发板板载4个高速扩展接口60PIN的插针连接器。底板FEP 扩展接口分为A、B两路,其中FEP(A)接口构成一组FEP×2,共有48个GPIO/24对差分引脚,并且带有4对GTH高速差分信号和2对高速时钟差分信号GTH_CLK;FEP(B)接口构成一组FEP×2,共有48个GPIO/24对差分引脚,FFP(A)和FEP(B)上的GPIO电压均为ADJ电压。
FEP 接口是高速通信接口,可外接子卡实现功能扩展。本文的系统搭建通过板载的FEP(A)接口连接自制的GMAX4002转接板来实现MPSOC和Sensor物理连接。
ZYNQUltraScale+ MPSOC 的HP(High Performance)IO 口支持 MIPI D-PHY收发器,该接口采用MIPI_DPHY_DCI电平标准,可直连MIPI差分信号,最大可支持的速率1.5Gbps/lane。MIPI 图像传感器选用长光辰芯的Sensor-GMAX4002,该图像传感器采用MIPICSI-2接口,物理层为D-PHY接口。MPSOC 与GMAX4002 模组之间通过1对时钟差分线和2对数据差分线相连,MPSOC作为接收器,端口内部具有100Ω片上端接,以保证MIPI差分信号的阻抗匹配。
3.2 摄像头模组
3.2.1 摄像头接口
传统图像传感器多采用并行DVP接口,但其单端信号传输方式抗噪性弱、带宽低,难以满足超清数据的高速传输需求。相比之下,基于低压差分信号的MIPI接口凭借强抗干扰能力和高传输速率,正逐步取代DVP成为高分辨率传感器的主流选择。目前最常见的MIPI协议包括用于显示屏数据传输的MIPI DSI(FPGA为发送端)和专用于摄像头数据采集的MIPICSI-2(Camera为发送端,FPGA为接收端),摄像头将采集到的视频数据经过MIPICSI-2传到FPGA内部,FPGA对视频图像数据进行处理
本设计使用的是MIPICSI-2接口。目前常见的摄像头接口除DVP外,还有USB3.0、LVDS等
选用MIPICSI-2接口类型的摄像头作为系统的一部分,在实现高质量视频传输的同时,提高抗干扰能力并降低功耗。
3.2.2 MIPI CSI-2 总体架构
MIPI CSI-2 协议的总体架构可分为应用层,协议层和物理层。
3.2.3 MIPI CSI-2 接口模型
MIPI CSI-2 规范对发送端和接收端之间的数据传输与控制接口进行了标准化定义,提供D-PHY和C-PHY两种物理层协议作为高速串行数据传输的可选方案。
从性能角度看,C-PHY能实现更高的传输速率,但其应用仅限于MIPICSI-2;相比之下,D-PHY具备更强的协议兼容性,可同时支持MIPICSI-2和MIPIDSI。
D-PHY 物理层通过1组单向差分时钟通道和1~4组单向差分数据通道实现图像采集模块与目标接收端之间的连接。此外,摄像机控制接口采用与 I2C 标准兼容的双向控制协议。
3.2.4 CMOS 图像传感器
国产长光辰芯的CMOSSensor-GMAX4002集成了帧速率为166fps的MIPI接口,输出通道为MIPICSI-2D-PHY,MIPI通道为4路数据输出和1路时钟输出,每路数据通道的最大传输速率为1.2Gbps,满足本设计对图像采集接口速率的需求,同时GMAX4002 具备低功耗、低噪声和高动态范围特性,方便系统设计集成化。根据需求可选择1、2或4路MIPI数据通道。
本设计自制FEP转接板,与GMAX4002搭载配合M12镜头形成自制摄像头模组,再与MPSOC主板上的FEP扩展口连接,实现主控制器与GMAX4002摄像头模组的硬件连接,如图3-9所示。
3.3 图像输出显示模块
在图像输出显示模块上,常用的有HDMI和DP接口。DP在带宽、分辨率、刷新率及扩展功能上领先HDMI,适合图像专业领域和系统高性能需求,根据主控制器的外设支持情况和系统的图像调试需求选择了DP接口显示器。接口设计上,DP接口采用锯齿状边缘设计,HDMI为平滑矩形。
3.4 系统构成
系统通过Xilinx 的ZYNQUltraScale+ MPSOC XCZU7EV-FFVC1156-2-I及长光辰芯的国产Sensor-GMAX4002搭载自制FEP转接板组成的摄像头模组作为硬件调试环境,利用VDMA实现摄像头图像数据的采集,并通过DP显示器实时显示;软件采用Vivado 2022.2 以及Vitis 2022.2 作为开发平台,使用VerilogHDL硬件描述语言及C语言作为开发工具。
3.4.1 系统框图
本工程采用两通道的MIPI输入,MIPI摄像头配置为RAW10格式输出。通过MIPI CSI-2_RX_SubSystem 模块进行协议解析转换成AXI4-Stream 视频流数据,并通过Demosaic 模块将RAW格式转换成RGB格式,后经过Gamma校正,AWB、CCM、AE等my_ISP的自定义IP等模块进入VDMA,之后进入MPSOC的HP接口,最后通过DP显示器实时显示视频图像。
3.4.2 AXI 总线类型和握手机制
本文设计中使用的AXI接口都是AXI4接口。
AXI 总线的每个独立的通道都包含一组信号,根据双向握手机制来传输地址、数据和控制信息。
3.4.3 搭建SOC工程
本工程搭建过程中使用PL图形化编程。从GMAX4002至MPSOC的数据通路,通过 MIPI CSI-2_RX_SubSystem 模块进行协议解析并转换成AXI4_Stream 流数据,通Demosaic模块将RAW格式数据转换成RGB格式,再经过Gammer校正等模块进入VDMA,VDMA主要用于视频图像数据的传输。
GMAX4002 在接收控制信号后输出图像数据,该数据经MIPI接口转换后处理为AXI4-Stream 格式,与VDMAIP核的数据接口兼容。通过VDMA模块处理后,图像数据被缓存至DDR4存储器。
系统采用3帧缓存机制将3帧图像数据缓存在VDMA图像缓存模块,确保图像流畅显示。
系统中PL端没有足够的管脚连接DDR4存储芯片,用于缓存图像数据的DDR4缓存器挂载在PS端,因此需要VDMAIP核将图像数据缓存到DDR4中。VDMAIP核采用双通道直接存储访问架构,支持AXI4-Stream 总线协议,能够将PL端的图像数据高效地传输至PS端内存,避免图像卡顿和画面撕裂,从而确保图像显示的流畅性和完整性。
本工程采用AXIGPIO实现i2C初始化Sensor-GMAX4002,加入了自定义的SINFIP 核与my_config 的 IP 核去配置 MPSOC 与 GMAX4002 的控制通路,来实现GMAX4002 的初始化。为了避免在Vivado2022.2环境中因屡次修改SINFIP内的寄存器而导致FPGA编译消耗大量时间,选择在Vitis2022.2环境中去配置SINFIP核的寄存器。