7.18. 树莓派 PiSP 摄像头前端 (rp1-cfe)

7.18.1. PiSP 摄像头前端

PiSP 摄像头前端 (CFE) 是一个模块,它将 CSI-2 接收器与一个简单的 ISP(称为前端 FE)结合在一起。

CFE 具有四个 DMA 引擎,可以将从 CSI-2 接收到的四个独立流的帧写入内存。其中一个流也可以直接路由到 FE,FE 可以进行最少的图像处理,将接收到的帧的两个版本(例如,未缩放和缩小版本)写入内存,并提供接收到的帧的统计信息。

FE 寄存器在树莓派图像信号处理器 (ISP) 规范文档中有详细说明,FE 的示例代码可以在 libpisp 中找到。

7.18.2. rp1-cfe 驱动程序

树莓派 PiSP 摄像头前端 (rp1-cfe) 驱动程序位于 drivers/media/platform/raspberrypi/rp1-cfe。它使用 V4L2 API 注册多个视频捕获和输出设备,使用 V4L2 subdev API 注册 CSI-2 接收和 FE 的子设备,这些子设备通过使用 Media Controller (MC) API 实现的单一媒体图将视频设备连接起来。

rp1-cfe 驱动程序注册的媒体拓扑结构(在此特定示例中连接到 imx219 传感器)如下所示:

Diagram of an example media pipeline topology

媒体图包含以下视频设备节点:

  • rp1-cfe-csi2-ch0: 第一个 CSI-2 流的捕获设备

  • rp1-cfe-csi2-ch1: 第二个 CSI-2 流的捕获设备

  • rp1-cfe-csi2-ch2: 第三个 CSI-2 流的捕获设备

  • rp1-cfe-csi2-ch3: 第四个 CSI-2 流的捕获设备

  • rp1-cfe-fe-image0: 第一个 FE 输出的捕获设备

  • rp1-cfe-fe-image1: 第二个 FE 输出的捕获设备

  • rp1-cfe-fe-stats: FE 统计信息的捕获设备

  • rp1-cfe-fe-config: FE 配置的输出设备

7.18.2.1. rp1-cfe-csi2-chX

rp1-cfe-csi2-chX 捕获设备是普通的 V4L2 捕获设备,可用于捕获从 CSI-2 接收的视频帧或元数据。

7.18.2.2. rp1-cfe-fe-image0, rp1-cfe-fe-image1

rp1-cfe-fe-image0 和 rp1-cfe-fe-image1 捕获设备用于将处理后的帧写入内存。

7.18.2.3. rp1-cfe-fe-stats

FE 统计缓冲区的格式由 pisp_statistics C 结构定义,每个参数的含义在 PiSP 规范 文档中描述。

7.18.2.4. rp1-cfe-fe-config

FE 配置缓冲区的格式由 pisp_fe_config C 结构定义,每个参数的含义在 PiSP 规范 文档中描述。