在第一部分已经完成系统概况和相关IP的大致了解,继续学习如何使用。
视频子系统软件指南
典型视频子系统操作列表(从输出端向前到输入端):复位、配置、重新配置、使能、失能。
通常,初始化一个视频流遵循以下操作:
1.初始化所有IP驱动(启动时执行一次,从配置视频流不需要重新初始化驱动)
2.复位所有核,从后端开始,逐渐向前。
3.配置所有核,但不使能。依然是从后向前(从输出到输入)
4.使能所有核,从后向前。
包含多个视频流水线的系统,应该先操作前端流水线,以避免处理和/或显示无效数据。
视频流水线示例
指南中将上面的示例描述为3段流水线:
1.Video to AXI4-Stream -> Video IP 1 -> AXI VDMA 1
2.AXI VDMA 1 -> Video Processing Subsystem(Scaler) -> AXI VDMA 2
3.AXI VDMA 2 -> Video IP 2
使用该系统需要在软件上做如下操作:
1.初始化驱动(使用<core>_CfgInitialize())
2.配置流水线1(输入视频流水线)
a)软件复位AXI VDMA 1
b)软件复位Video IP 1
c)软件复位VTC
d)配置AXI VDMA 1
e)配置Video IP 1
f)配置VTC
g)使能AXI VDMA 1
h)使能Video IP 1
i)使能VTC
3.配置流水线2(缩放流水线)
4.配置流水线3(输出流水线)
视频子系统带宽需求
在视频系统中,带宽要求是最直接的指标。
1.指南中的BWpeak计算方式如下
像素时钟频率 = 帧率 x 行数 x 像素数
峰值带宽 = 像素时钟频率 x 像素位宽
2.指南中的BWave计算方式如下
平均频率 = 帧率 x 有效行数 x 有效像素数
平均带宽 = 平均频率 x 像素位宽
带宽和时钟
实时视频进出存储器,带宽必须满足峰值带宽。
存储器间的搬运需要满足平均带宽。
关于带宽的示例
缩放(Down-Scaling/Up-Scaling)
内存到内存的缩小,这里用到了平均带宽
平均频率 = 60 x 720 x 1280 = 55,296,000Hz
平均带宽 = 55.296MHz * 16 = 884,736,000b/s
实时视频缩小,这里用到了峰值带宽:
峰值频率 = 60 x 750 x 1650 = 74,250,000 Hz
峰值带宽 = 74,250,000 x 16 = 1,188,000,000 bs
视频放大也分为内存到内存和实时两种,计算方式一样。
缩放(区域放大)(ZOOM)
依然是按照内存到内存,实时进行计算。
关于视频系统的关键概念基本介绍完成,指南下一章节介绍了IP设计相关的内容。目前我们关注点在于系统的搭建和使用,暂时不打算涉及这方面的内容,后面学习的时候再来补完。