Camsys子系统
系统概述
S100 camsys子系统包含Camera sensor (包括 SerDes)、VIN(包括 MIPI、CIM)、ISP、PYM、GDC、YNR、STITCH模块。
| 简称 | 全称 | 说明 |
|---|---|---|
| MIPI | Mobile Industry Processor Interface | 移动产业处理器接口,MIPI联盟制定的标准 |
| CSI | Camera Serial Interface | Camera串行接口 |
| IPI | Image Pixel Interface | MIPI与CIM之间的图像传输接口 |
| FOV | Field of View | 视场角 |
| SER | Serializer | 加串器 |
| SerDes | Serializer and Deserializer | 加串与解串器 |
| DES | Deserializer | 解串器 |
| CIM | Camera Interface Manger | Camera接入管理模块,支持online或offline工作 |
| VIN | Video In(CIM+MIPI+LPWM+VCON) | 视频输入模块 |
| ISP | Image Signal Processor | 图像信号处理器 |
| PYM | Pyramid | 金字塔处理模块: 图像缩小及ROI |
| GDC | Geometric Distortion Correction | 几何畸变校正模块 |
| LPWM | Lite Pulse Width Modulation | 精简版脉宽调制模块 |
| VPF | Video Process Framework(VIN+ISP+PYM..) | 视频处理管理模块 |
| VIO | Video In/Out (VIN+VPM) | 视频输入/输出模块 |
| STITCH | Stitch hardware Module | 图像拼接处理模块 |
| CAMSYS | Camera System (Camera+VPF) | 相机图像系统 |
camsys硬件框图

子模块
CIM
CIM(Camera Interface Manager)是一种专门用来接收MIPI-RX IPI图像数据的硬件。CIM负责同时接入多路图像数据,并改变MIPI IPI接口的时序以匹配后级硬件或DDR的输入时序要求,将图像通过硬件直连或DDR形式提供给ISP和PYM。
- S100上共有3个CIM模块,分别为CIM0 CIM1 CIM4;
- 单个CIM最大支持接入4V * 8M * 30fps,支持接入RAW8、RAW10、RAW12、RAW14、RAW16、RAW20、YUV422-8Bit图像;
- CIM0 CIM1可以硬件直连otf输出至ISP、PYM,同时支持离线输出至ddr,CIM4只支持离线输出;
- CIM0的IPI0最大接入宽为5696,CIM0其他的IPI和其他CIM中的IPI最大接入宽为4096;
ISP
ISP (Image Signal Processor) 图像信号处理器,是一种专门用于图像信号处理的引擎。 ISP的功能包括对原始图像进行各类算法处理、图像特性统计、色彩空间转换、多路通道分时复用控制等,最终输出更清晰、更准确、高质量的图像。
- S100上共有2个ISP模块,分别为ISP0 ISP1;
- 每个ISP硬件模块IP最大支持12路sensor的接入能力;
- ISP处理最大分辨率为4096 * 2160
- ISP处理pipeline如下图:

- MCFE: Multi-Context Front End,用于ISP多路调度控制与buffer管理,one by one进行Multi-camera图像处理。
- RAW Domain: RAW域图像处理,包含input port (含input crop功能)、channel switch、input formatter、sensor offset linear、digtal gain、gamma FE(即decompander)、gamma_sqrt、raw frontend、static defected、sinter、chromatic aberration、gamma_sq、gamma BE、static white blance、radial shading correction、mesh shading correction、digital gain iridix、iridix、demosaic等。
- RGB Domain: RGB域图像处理,包含purple fringe correction、color matrix、gamma RGB forward SQ、crop、CNR、gamma RGB reverse SQ、RGB gamma等。
- Output formatter: CS(color space) coversion,将RGB通道数据转换成YUV 等format,output control 进行输出控制。
YNR
YNR为yuv域的降噪模块Digital Noise Reduction,YNR支持2DNR与3DNR模式
- S100上共有一个YNR模块,YNR1,只支持ISP1-online-YNR1-online-PYM1场景;
- 在3DNR模式下,处理的最大宽高为2048x2048,在2DNR模式下支持3840x2160;
PYM
PYM(Pyramid)作为一个硬件加速模块,对输入的图像按照金字塔图层的方式处理,并输出到DDR。

- S100上共有3个PYM模块,分别为PYM0 PYM1 PYM4;
- SRC层:代表源图像层;
- BL层:代表双线性下采样层,BL Base 0~4依次是源图层的1/2,1/4,1/8,1/16,1/32;
- DS层:输出层,每层能够任意选择输入图层(SRC或0~4BL),并进行下采样和ROI处理后输出到DDR;
- 最大输入宽度输入高度均为4096,最小输入宽度及高度为32;
- 缩小ratio(1/2,1],不支持放大;
- PYM0/1:4k@120fps,PYM4:4K@90fps,PYM4不支持online输入;
GDC
GDC作为一个硬件模块,可将输入的图像进行视角变换、畸变校正和指定角度(0,90,180,270)旋转。
模式支持的输入图像典型尺寸为3840x2160,2688x1944,1920x1080,1280x720,640x480,480x320。
硬件特性如下:
- 最大分辨率:3840x2160
- 最小分辨率:96x96(奇数行或者列不支持)
- 性能:3840x2160,60fps
- 工作模式:ddr-gdc-ddr
- 输入格式:YUV420 semi-planar
- 输出格式:YUV420 semi-planar
GDCTool简介
GDC Tool是一种可在PC上进行处理效果仿真的工具。用户可准备jpg模式的图像,load 到gdc-tool中进行离线校正,校正完成后可以直接保存config.bin文件用于硬件校正,也可用保存layout.json文件生成config.bin进行硬件校正
GDC Tool 启动
-
window环境启动
安装环境:依赖nodejs安装,参考:https://nodejs.cn/download/
安装执行依赖:在win命令行,进入GDC 发布的工具文件(如gdc-tool-gui-xxxx-windows)目录下,执行npm install express
启动应用:在win 命令行进入文件目录(如gdc-tool-gui-xxxx-windows),执行node.exe app.js,Chrome浏览器登陆http://localhost:3000/
-
unix 环境启动
安装环境:mac: brew install node
安装执行依赖:文件目录下执行npm install -production
启动应用:执行node app.js,登陆http://localhost:3000/
GDC Tool 中的变换模式
变换模式有Affine,Equisolid,Equisolid(cylinder),Equidistant, Custom, Keystone+dewarping六种变换供选择,这些模式与软件中的变换模式对应关系见GDC Bin API文档中的 transformation_t 描述,下表是各个变换的用途
| 变换模式 | 用途 |
|---|---|
| Affine | 一种线性变换,简单的图像旋转功能,没有畸变校正 |
| Equisolid | 全景变换,变换网格最大 |
| Equisolid(cylinder) | 圆柱形变换 |
| Equidistant | 等距变换,变换后的距离等距。 |
| Custom | 用户定制变换 |
| Keystone+dewarping | 相对于Equidistant,dewarp_keystone 多了两个参数trapezoid_left_angle 和 trapezoid_right_angle。默认情况下这两个参数90度,效果和Equidistant一样。 |
所有转换类型都有以下三个常用参数Pan、Tile、Zoom(举例:等距变换,输入/输出分辨率1280x720): 以下输出图像中的蓝色矩形表示仅将特殊参数设置为该值, 并且一个转换中的其他参数保持默认值。
-
Pan
水平方向 (-1280, +1280)通过给定的像素数,偏移变换网格。如下所示:

-
Tile
垂直方向 (-720, +720)通过给定的像素数,偏移变换网格。如下所示:

-
Zoom
按提供的因子 (0, +∞)缩放变换输出,(0, 1)表示值大于 0 且小于 1。如下所示:

-
Affine
-
功能描述
提供线性的变换

-
成员说明
成员 含义 int32_t pan default 0, 不修改 int32_t tilt default 0, 不修改 zoom 按提供的因子缩放转换输出, 当旋转角度为180或270时,该值需>=1.03 double angle(rotation) 图像旋转的角度 0/90/180/270 注意!输入输出尺寸的宽应保持16字节对齐。
zoom 参数在旋转角度为180或270时,需>=1.03
-
-
Equisolid
-
功能描述
此转换提供等实体(全景panoramic)校正,并将结果显示为平面上的投影。

-
成员说明
成员 含义 int32_t pan default 0, 不修改 int32_t tilt default 0, 不修改 zoom 按提供的因子缩放转换输出 double strengthX 沿X轴的变换强度(非负参数) double strengthY 沿Y轴的变换强度(非负参数) double angle(rotation) 图像旋转的角度 0/90/180/270 strength x调试效果,在X轴的转换强度,取值(0, +∞)。如下所示:

strength y调试效果,在Y轴的转换强度,取值(0, +∞)。如下所示:

Rotation调试效果,取值(-180, 180)。如下所示:
注意!输入输出尺寸的宽应保持16字节对齐。
-
-
Equisold(cylinder)
-
功能描述
此转换提供等实体(全景panoramic)校正,并将结果显示为平面上的投影。

-
成员说明
成员 含义 int32_t pan default 0, 不修改 int32_t tilt default 0, 不修改 zoom 按提供的因子缩放转换输出 strength 转换的强度 double angle(rotation) 图像旋转的角度 0/90/180/270 strength 调试效果,转换的强度(0,+∞)。如下所示:

rotation 调试效果,取值范围(-180,+180)。如下所示
注意!输入输出尺寸的宽应保持16字节对齐。
-
-
Equidistant
-
功能描述
等距变换包含许多参数,这些参数允许它为投影提供一系列不同的目标平面。这使用户可以更自由地选择要变换的鱼眼帧的所需区域。

-
成员说明
成员 含义 int32_t pan default 0, 不修改 int32_t tilt default 0, 不修改 zoom 按提供的因子缩放转换输出 double angle(rotation)
-