3. MIPI CCS 摄像头传感器驱动程序¶
MIPI CCS 摄像头传感器驱动程序是针对符合 MIPI CCS 标准的摄像头传感器的通用驱动程序。它公开了三个子设备,分别代表像素阵列、分块器和缩放器。
由于各个设备的功能各不相同,驱动程序会根据硬件中存在的功能公开接口。
另请参阅 CCS 驱动程序内核文档。
3.1. 像素阵列子设备¶
像素阵列子设备代表摄像头传感器的像素矩阵,以及许多兼容设备中存在的模拟裁剪功能。模拟裁剪使用实体的源焊盘 (0) 上的 V4L2_SEL_TGT_CROP
进行配置。像素矩阵的大小可以通过获取 V4L2_SEL_TGT_NATIVE_SIZE
目标来获得。
3.2. 分块器¶
分块器子设备代表传感器上的分块功能。为此,在接收焊盘 (0) 上支持选择目标 V4L2_SEL_TGT_COMPOSE
。
此外,如果设备没有缩放器或数字裁剪功能,则源焊盘 (1) 会公开另一个数字裁剪选择矩形,该矩形只能在线和帧的末尾进行裁剪。
3.3. 缩放器¶
缩放器子设备代表传感器的数字裁剪和缩放功能。当支持数字裁剪时,V4L2 选择目标 V4L2_SEL_TGT_CROP
用于在接收焊盘 (0) 上配置数字裁剪。缩放也使用接收焊盘 (0) 上的选择目标 V4L2_SEL_TGT_COMPOSE
进行配置。
此外,如果存在缩放器子设备,其源焊盘 (1) 会公开另一个数字裁剪选择矩形,该矩形只能在线和帧的末尾进行裁剪。
3.4. 数字和模拟裁剪¶
数字裁剪功能是指通过有效地丢弃某些数据来实现的裁剪。另一方面,模拟裁剪意味着永远不会检索裁剪的信息。对于摄像头传感器,永远不会从指定裁剪的配置选择矩形之外的像素矩阵读取模拟数据。这种差异会对设备时序产生影响,并且很可能也会影响功耗。
3.5. 私有控制¶
MIPI CCS 驱动程序在 V4L2_CID_USER_BASE_CCS
下实现了一些私有控制,用于控制符合 MIPI CCS 标准的摄像头传感器。
3.5.1. 模拟增益模型¶
CCS 定义了一个模拟增益模型,其中可以使用以下公式计算增益
增益 = m0 * x + c0 / (m1 * x + c1)
m0 或 c0 将为零。特定于设备的常量可以从以下控件中获得
V4L2_CID_CCS_ANALOGUE_GAIN_M0 V4L2_CID_CCS_ANALOGUE_GAIN_M1 V4L2_CID_CCS_ANALOGUE_GAIN_C0 V4L2_CID_CCS_ANALOGUE_GAIN_C1
模拟增益(公式中的 x
)在这种情况下通过 V4L2_CID_ANALOGUE_GAIN
控制。
3.5.2. 替代模拟增益模型¶
CCS 定义了另一个称为替代模拟增益的模拟增益模型。在这种情况下,计算实际增益的公式由线性和指数部分组成
增益 = 线性 * 2 ^ 指数
可以使用 V4L2_CID_CCS_ANALOGUE_LINEAR_GAIN
和 V4L2_CID_CCS_ANALOGUE_EXPONENTIAL_GAIN
控件分别设置 linear
和 exponent
因子
3.5.3. 阴影校正¶
CCS 标准支持镜头阴影校正。可以使用 V4L2_CID_CCS_SHADING_CORRECTION
控制此功能。此外,可以使用 V4L2_CID_CCS_LUMINANCE_CORRECTION_LEVEL
更改亮度校正级别,其中值 0 表示不校正,128 表示将角落的亮度校正为比中心低 10 %。
需要启用阴影校正,亮度校正级别才能生效。
版权所有 © 2020 Intel Corporation