ilinx ZYNQ UltraScale+ 系列连载 写一篇简单需求 作者: hello , panda 离上篇博客发布已经有很长的时间了,请原谅楼主,一个是小 Panda 降临需要照顾,另一个是确实这段时间的工作太忙,拖到今天才开始动笔写第三篇。 做事情讲究个“谋定而后动”,做研发尤其如此,准备工作一定要做得充分了,需求一定要理解明确了,方可开始吭哧吭哧继续往下干。 楼主先准备以 ZCU104 为平台,实现一个视频处理和传输系统,算是熟悉 ZYNQ UltraScale+ MPSoC 器件。 总体要求是:设计一个图像采集、处理和传输系统,实时视频分辨率不小于 4000 × 3000 ,帧率不小于 30fps ,视频可通过 HDMI2.0( 或 DP) 接口本地实时显示。 JPEG 压缩的图片和 H.265 压缩后的视频存储在本地 SATA 盘中,实时码流可通过 GigE Vision 传输到主机。系统总体框架如下图 1 所示。 图 1 系统总体框架 1 . 硬件平台 本阶段先使用 ZCU104 平台进行验证, Camera 和 SFP 接口通过 FMC 扩展板实现。 2 . 软件需求 软件包括 PL 和 PS 两个部分,其中 PL 部分实现 Camera IF 、 ISP 、 Encoder 、 GigE Vision 和 HDMI2.0 接口; PL 部分运行 Linux 操作系统,使用 QT 图形界面,驱动 DP 显示和 SSD 存储。 2.1 PL 部分 PL 部分主要实现接口和算法。 2.1.1 相机接口( Camera IF ) Camera IF 硬件上通过 FMC 接口板接入,支持 LVDS ( LVDS 通道数不大于 15 对)、 MIPI D-PHY 、 MIPI C-PHY 接入。 Camera 分辨率不低于 4000 × 3000 ,帧率不低于 30fps , 8bit 、 10bit 或 12bit Raw ( Bayer )数据输入。 2.1.2 图像信号处理( ISP ) 本阶段 ISP 实现基本功能 , 主要包括: Demosaic 、 CCM 、 3A 、 Dpc 、 Gamma 、 Denoise 、 Enhance 等基本内容, ISP 需保证对输入图像实时处理。 2.1.3 Encoder Encoder 主要有两部分,一个 H.265 视频流压缩,一个是 JPEG 静态图片压缩。 H.265 使用芯片内置的硬核, JPEG 压缩通过逻辑实现。 H.265 至少保证 4000 × 3000 分辨率 30fps 实时压缩。 2.1.4 GigE Vision 网络传输 GigE Vision 采用 10G 光口传输,硬件在 FMC 扩展板上实现。 GigE Vision 可实时传输原始图像、 ISP 处理后的图像、 H.265 码流和 JPEG 静态图片,通过 xml 配置文件指定支持的源和格式。 2.1.5 HDMI2.0 接口 基于 GTH ,符合 HDMI2.0 标准,显示原图或 ISP 后的图像,可叠加 OSD 。 2.2 PS 部分 PS 部分运行 Linux 操作系统,运行 QT 叠加生成 OSD 。 2.2.1 调度功能 PS 需配置 PL 工作的各项参数,获取系统状态,运行 3A 算法的 C 部分。 PS 部分还需处理 PL 的各中断,以协同处理存储、显示等工作。 2.2.2 存储和显示 实现 DP 和 SATA 驱动,存储和读出 PL 生成的视频流文件请求。运行 QT ,生成人机交互界面。 3 . 总结 整个系统基于 AXI4 总线架构, SoC 软件硬件协同处理,需要保证良好的可扩展性,以便扩展下一步的图像检测和识别算法、 AI 算法等。