7.2. Amlogic C3 图像信号处理 (C3ISP) 驱动程序

7.2.1. 简介

本文档介绍了位于 drivers/media/platform/amlogic/c3/isp 下的 Amlogic C3ISP 驱动程序。

该驱动程序的当前版本支持 Amlogic C308L 处理器上的 C3ISP。

该驱动程序实现了 V4L2、媒体控制器和 V4L2 子设备接口。支持内核中使用 V4L2 子设备接口的摄像头传感器。

该驱动程序已在 AW419-C308L-Socket 平台上进行过测试。

7.2.2. Amlogic C3 ISP

C308L 处理器上发现的且驱动程序支持的摄像头硬件包括:

  • 1 个 MIPI-CSI-2 模块:处理 MIPI CSI-2 接收器的物理层,并接收来自连接的摄像头传感器的数据。

  • 1 个 MIPI-ADAPTER 模块:组织 MIPI 数据以满足 ISP 输入要求并将 MIPI 数据发送到 ISP。

  • 1 个 ISP(图像信号处理)模块:包含图像处理硬件块的流水线。 ISP 流水线的末端包含三个调整大小器,每个调整大小器都连接到 DMA 接口,该接口将输出数据写入内存。

下面介绍了 C3 ISP 的高级功能视图。

                                                                 +----------+    +-------+
                                                                 | Resizer  |--->| WRMIF |
+---------+    +------------+    +--------------+    +-------+   |----------+    +-------+
| Sensor  |--->| MIPI CSI-2 |--->| MIPI ADAPTER |--->|  ISP  |---|----------+    +-------+
+---------+    +------------+    +--------------+    +-------+   | Resizer  |--->| WRMIF |
                                                                 +----------+    +-------+
                                                                 |----------+    +-------+
                                                                 | Resizer  |--->| WRMIF |
                                                                 +----------+    +-------+

7.2.3. 驱动程序架构和设计

为了对模块之间的硬件链接进行建模,并公开一个干净、逻辑和可用的接口,驱动程序注册了以下 V4L2 子设备:

  • 1 个 c3-mipi-csi2 子设备 - MIPI CSI-2 接收器

  • 1 个 c3-mipi-adapter 子设备 - MIPI 适配器

  • 1 个 c3-isp-core 子设备 - ISP 核心

  • 3 个 c3-isp-resizer 子设备 - ISP 调整大小器

c3-isp-core 子设备链接到 2 个视频设备节点,用于统计数据捕获和参数编程

  • c3-isp-stats 捕获视频设备节点用于统计数据捕获

  • c3-isp-params 输出视频设备用于参数编程

每个 c3-isp-resizer 子设备都链接到一个捕获视频设备节点,从中捕获帧

  • c3-isp-resizer0 链接到 c3-isp-cap0 捕获视频设备

  • c3-isp-resizer1 链接到 c3-isp-cap1 捕获视频设备

  • c3-isp-resizer2 链接到 c3-isp-cap2 捕获视频设备

媒体控制器流水线图如下所示(连接了 IMX290 摄像头传感器):

c3-isp.dot

媒体流水线拓扑

7.2.4. 实现

ISP 硬件的运行时配置在 c3-isp-params 视频设备节点上执行,使用 V4L2_META_FMT_C3ISP_PARAMS 作为数据格式。缓冲区结构由 c3_isp_params_cfg 定义。

统计数据是从 c3-isp-stats 视频设备节点捕获的,使用 V4L2_META_FMT_C3ISP_STATS 数据格式。

最终图片大小和格式使用 V4L2 视频捕获接口在 c3-isp-cap[0, 2] 视频设备节点上配置。

Amlogic C3 ISP 由 libcamera 支持,具有专用的流水线处理程序和算法,可执行运行时图像校正和增强。