Difference between revisions of "GX mipi camera manual/zh"

From wiki_veye
Jump to navigation Jump to search
 
(94 intermediate revisions by 2 users not shown)
Line 4: Line 4:
  
 
===概述===
 
===概述===
GX系列产品具备卓越的ISP性能,多种工作模式,丰富的功能选项,可靠的稳定性设计,优秀的生产品控和供货能力。是嵌入式图像应用和AI应用的不二之选。
+
GX 系列产品具备高性能 ISP(Image Signal Processor)处理能力,支持多种工作模式,并提供丰富的功能配置选项。产品在系统稳定性、生产质量控制以及供货能力方面均经过充分验证,适用于嵌入式视觉系统及 AI 视觉应用场景。
  
GX系列MIPI摄像机模组更加方便用户进行集成,标准22pin FPC用户接口,可以方便接入树莓派、英伟达、RK3588等嵌入式平台。
+
GX 系列 MIPI 摄像机模组采用标准 '''22-pin FPC 用户接口''',便于系统集成,可直接接入多种主流嵌入式平台,例如 '''Raspberry Pi、NVIDIA Jetson 系列平台以及 RK3588 平台'''等。
  
本文侧重于详细介绍MV系列产品的功能原理。关于硬件手册、寄存器、配置脚本、不同嵌入式平台的驱动及使用,请参考对应文档。
+
本文档主要介绍 GX 系列产品的功能特性及其工作原理。
  
本文中,每个功能后[相关命令]一栏列出了[[Gx mipi i2c.sh user guide/zh|gx_mipi_i2c.sh]]脚本中于此功能有关的命令'''。'''
+
关于以下内容,请参考对应的专项文档:
 +
 
 +
*硬件接口手册
 +
*寄存器说明文档
 +
*配置脚本说明
 +
*各嵌入式平台的驱动与使用指南
 +
 
 +
在本文档中,每个功能章节均包含 '''[脚本函数]''' 一栏,用于列出与该功能相关的 '''<code>[[Gx mipi i2c.sh user guide/zh|gx_mipi_i2c.sh]]</code>''' 脚本命令,方便用户进行功能配置与调试。
  
 
====摄像机型号列表====
 
====摄像机型号列表====
Line 19: Line 26:
 
!Shutter Mode
 
!Shutter Mode
 
|-
 
|-
|MV series
+
|GX series
 
|GX-MIPI-IMX662
 
|GX-MIPI-IMX662
 
|1920×1080@60 fps
 
|1920×1080@60 fps
|Rolling
+
|Rolling Shutter
 +
|-
 +
|GX series
 +
|GX-MIPI-IMX664
 +
|2688×1520@30 fps
 +
|Rolling  Shutter
 +
|-
 +
|GX series
 +
|GX-MIPI-AR0234
 +
|1920×1200@54 fps
 +
|Golbal  Shutter
 
|}
 
|}
 +
 +
===基础功能===
 +
本章节介绍相机的基础管理功能,包括设备信息读取、参数管理和系统控制。
 +
 +
通过这些寄存器,用户可以获取设备标识信息、管理相机配置参数,并执行系统级操作。
 +
 +
====设备信息====
 +
相机提供多个只读寄存器,用于查询设备的基本信息。这些信息可用于设备识别、系统管理以及软件调试。
 +
 +
包括:
 +
 +
*制造商名称
 +
*产品型号
 +
*传感器型号
 +
*设备序列号
 +
*固件版本
 +
 +
=====制造商名称=====
 +
相机制造商名称。
 +
 +
脚本函数:manufacturer
 +
 +
=====产品型号=====
 +
相机型号标识。
 +
 +
脚本函数:model
 +
 +
=====传感器型号=====
 +
相机所使用的图像传感器型号。
 +
 +
脚本函数:sensorname
 +
 +
=====序列号=====
 +
每台相机在出厂时都会分配唯一的序列号,该序列号包含生产日期批次及编号。
 +
 +
脚本函数:serialno
 +
 +
=====固件版本=====
 +
返回相机的固件版本信息。
 +
 +
该寄存器为 32 位数据:0xAABBCCDD
 +
 +
其中:
 +
 +
*'''AA.BB''' 表示控制程序版本(C version)
 +
*'''CC.DD''' 表示逻辑程序版本(L version)
 +
 +
====参数管理====
 +
相机支持将当前配置参数保存到内部 Flash 中。
 +
 +
保存后的参数在相机重新上电后会自动加载。
 +
 +
=====参数保存=====
 +
将当前相机参数保存到 Flash 中。
 +
 +
注意事项:
 +
 +
*该操作会 '''擦除并重写系统 Flash'''
 +
*操作过程中 '''必须保证电源稳定'''
 +
*不建议频繁执行该操作
 +
 +
脚本函数:paramsave
 +
 +
=====恢复出厂参数=====
 +
将相机参数恢复为出厂默认配置。
 +
 +
注意事项:
 +
 +
*该操作会 '''擦除并重写系统 Flash'''
 +
*操作过程中 '''必须保证电源稳定'''
 +
*不建议频繁执行恢复出厂操作
 +
 +
脚本函数:factoryparam
 +
 +
====系统控制====
 +
相机提供一些基本的系统控制功能,例如设备重启和系统运行时间查询。
 +
 +
=====系统重启=====
 +
执行该操作会使相机重新启动。
 +
 +
脚本函数:reboot
 +
 +
=====系统时间戳=====
 +
相机自启动以来的运行时间。
 +
 +
该参数可用于:
 +
 +
*系统调试
 +
*设备运行时间统计
 +
*简单同步参考
 +
 +
脚本函数:timestamp
 +
 +
=====I²C 地址配置=====
 +
相机支持通过寄存器配置设备的 '''I²C 通信地址'''。
 +
 +
用户可以根据系统需求修改相机的 I²C 地址,以避免多设备系统中的地址冲突。
 +
 +
配置说明:
 +
 +
*可设置的地址范围:'''0x08 – 0x77'''
 +
*修改后需要执行 '''参数保存''' 操作
 +
*新地址在 '''设备重启后生效'''
 +
 +
脚本函数:i2caddr
 +
 
===图像采集===
 
===图像采集===
 
====卷帘式曝光和全局曝光====
 
====卷帘式曝光和全局曝光====
 +
图像传感器按照曝光方式可以分为 '''卷帘式曝光(Rolling Shutter)''' 和 '''全局曝光(Global Shutter)''' 两种类型。
 +
 +
不同曝光方式在运动物体拍摄和触发模式下的行为有所不同。
 
=====卷帘式曝光=====
 
=====卷帘式曝光=====
卷帘式曝光 sensor 实现如下图所示。逐行曝光从第一行开始曝光,一个行周期之后第二行才开始曝光。依次类推,经过 N-1 行后第 N 行开始曝光。第一行曝光结束后开始读出数据,读出一行需要一行周期时间(含行消隐时间)。至第一行完全读出后,第二行刚好开始读出,依次类推,当第 N-1行读完后,第 N行开始读出,直到整幅图像完全读出。[[File:Rolling shutter mode new.png|alt=Rolling shutter mode|center|thumb|800x800px|Rolling shutter mode|link=http://wiki.veye.cc/index.php/File:Rolling_shutter_mode_new.png]]<br />
+
卷帘式曝光传感器的工作过程如下图所示。
 +
 
 +
在该模式下,图像各行按照顺序依次开始曝光:
 +
 
 +
#第一行首先开始曝光
 +
#经过一个行周期后,第二行开始曝光
 +
#依次类推,第 N 行在第 N−1 行之后开始曝光
 +
 
 +
当第一行曝光结束后,开始进行数据读出。每读取一行数据需要一个行周期时间(包含行消隐时间)。
 +
 
 +
当第一行数据读取完成时,第二行刚好开始读取。随后各行依次读取,直到整幅图像全部输出完成。
 +
 
 +
卷帘式曝光传感器具有以下特点:
 +
 
 +
*结构相对简单
 +
*成本较低
 +
*可以实现较高分辨率
 +
 
 +
因此,卷帘式曝光适用于 '''静态场景或低速运动目标的成像应用'''。[[File:Rolling shutter mode new.png|alt=Rolling shutter mode|center|thumb|800x800px|Rolling shutter mode|link=http://wiki.veye.cc/index.php/File:Rolling_shutter_mode_new.png]]<br />
 
=====全局曝光=====
 
=====全局曝光=====
全局曝光sensor实现如下图所示,sensor的所有行同时开始曝光,并同时结束曝光,在曝光结束后,sensor将所有电子从感光区转到存储区,之后逐行的读出像素数据。 这样曝光的好处是拍摄运动物体时图像不会出现偏移和歪斜。[[File:Global shutter mode new.png|alt=|center|thumb|800x800px|Global shutter mode|link=http://wiki.veye.cc/index.php/File:Global_shutter_mode_new.png]]<br />
+
全局曝光传感器的工作方式如下图所示。
 +
 
 +
在全局曝光模式下:
 +
 
 +
#传感器所有像素 '''同时开始曝光'''
 +
#所有像素 '''同时结束曝光'''
 +
 
 +
曝光结束后,传感器会将感光区域中的电荷转移到存储区域,然后再按行读取像素数据。
 +
 
 +
这种方式可以保证:
 +
 
 +
*所有像素在同一时间采样
 +
*图像不会产生运动畸变
 +
 
 +
因此,全局曝光特别适用于 '''高速运动目标的图像采集''',例如:
 +
 
 +
*工业检测
 +
*机器人视觉
 +
*运动目标跟踪
 +
 
 +
<br />[[File:Global shutter mode new.png|alt=|center|thumb|800x800px|Global shutter mode|link=http://wiki.veye.cc/index.php/File:Global_shutter_mode_new.png]]
 
====开始/停止采集====
 
====开始/停止采集====
可以在任意时刻向相机发送开始采集和停止采集命令。摄像机收到开始采集命令后,如工作在视频流模式,则立刻开始曝光并输出图像;如工作在触发模式,则进入等待触发信号状态。同时,摄像机进入'''''running状态'''''。
+
用户可以在任意时刻向摄像机发送 开始采集 或 停止采集 命令。
 +
 
 +
当摄像机收到开始采集命令时:
 +
 
 +
*如果当前工作在 视频流模式,摄像机会立即开始曝光并连续输出图像。
 +
*如果当前工作在 触发模式,摄像机会进入 等待触发信号状态。
  
摄像机收到停止采集命令后,会完成当前正在传输的帧以确保帧完整性,然后停止输出图像并进入'''''standby状态'''''。注意,如果设置了触发多帧,并且还没有完成所有图像帧输出,则会打断触发过程。也就是说,停止采集操作只会保证当前帧的完整性,不保证整个触发周期的完整性。
+
此时摄像机状态进入 '''Running状态'''
 +
 
 +
当摄像机收到停止采集命令时:
 +
 
 +
1. 摄像机会先完成当前正在传输的图像帧,以保证帧数据完整
 +
 
 +
2. 然后停止输出图像
 +
 
 +
3. 摄像机进入 '''Standby''' 状态
 +
 
 +
需要注意:
 +
 
 +
如果当前配置为 触发多帧模式,且触发序列尚未完成,则停止采集命令会中断当前触发过程。因此,停止采集仅保证 当前帧完整性,但不保证 整个触发序列完整性。
  
 
一般情况下,驱动会自动发送开始/停止采集命令,用户无需主动控制寄存器。
 
一般情况下,驱动会自动发送开始/停止采集命令,用户无需主动控制寄存器。
  
相关命令:imgacq。
+
脚本函数:imgacq。
====视频流模式====
+
====图像模式====
视频流模式下,摄像机会按照配置的分辨率和帧率,连续曝光并输出图像。同一个传感器,在不同的分辨率配置下,支持的最大帧率不同,请参考对应产品的datasheet。建议更改分辨率之后,通过maxfps功能获取支持的最大帧率。
+
GX系列相机支持多种视频模式(videomode),每种模式对应特定的分辨率、最大帧率以及图像读出方式。
  
一般情况下,驱动会根据应用层程序配置videomode和fps,用户无需主动控制寄存器。
+
读出方式包括普通模式(Normal Mode)、Binning模式以及Subsampling模式。在视频流模式下,相机会根据所选videomode的分辨率、帧率及读出方式进行连续曝光,并实时输出图像数据。
  
相关命令 :workmode,videomode,fps,maxfps。
+
不同型号的相机所支持的图像模式可能有所不同,详情见下表:
====普通触发模式====
+
{| class="wikitable"
=====Rolling shutter(卷帘式曝光)=====
+
!Model
本节适用型号:GX-MIPI-IMX662。
+
!videomode
 +
!分辨率
 +
!最小帧率
 +
!最大帧率
 +
!读出方式
 +
|-
 +
|GX-MIPI-IMX662
 +
|1
 +
|1920×1080
 +
|0.065fps
 +
|60fps
 +
|Normal
 +
|-
 +
| rowspan="2" |GX-MIPI-IMX664
 +
|1
 +
|2688×1520
 +
|TBD
 +
|30fps
 +
|Normal
 +
|-
 +
|2
 +
|1344x760
 +
|TBD
 +
|100fps
 +
|Binning
 +
|-
 +
| rowspan="3" |GX-MIPI-AR0234
 +
|1
 +
|1920×1200
 +
|TBD
 +
|54 fps
 +
|Normal
 +
|-
 +
|2
 +
|1920×1080
 +
|TBD
 +
|60fps
 +
|Normal
 +
|-
 +
|3
 +
|1600×1200
 +
|TBD
 +
|60fps
 +
|Normal
 +
|}脚本函数 :videomodecap,videomodenum, vidoemodewh1-vidoemodewh8,videomodeparam1-videomodeparam8,videomode,fps,maxfps, curwh。
 +
 
 +
=====像素读出模式=====
 +
GX 系列相机支持多种像素读出模式:'''Normal Mode、Binning Mode 和 Subsampling Mode'''。不同模式在分辨率、信噪比和数据带宽方面有不同特点,可根据应用需求选择。
 +
 
 +
*'''Normal Mode(普通模式)'''
 +
 
 +
传感器按完整像素阵列逐行读出,每个像素均参与采集和输出。该模式提供最高分辨率和最佳图像细节,但数据带宽需求较高。
 +
 
 +
*'''Binning Mode(像素合并模式)'''
 +
 
 +
将相邻像素在传感器内部合并后输出,提升信噪比和低照度性能,同时降低分辨率和数据带宽。适用于低光或高灵敏度应用。
 +
 
 +
*'''Subsampling Mode(子采样模式)'''
 +
 
 +
按固定间隔选择像素读出,降低分辨率和数据量,但信噪比基本不变。适用于提升帧率或降低带宽需求的场景。
 +
 
 +
'''模式对比'''
 +
{| class="wikitable"
 +
!模式
 +
!读出方式
 +
!分辨率
 +
!信噪比
 +
!数据带宽
 +
|-
 +
|Normal
 +
|全像素读出
 +
|高
 +
|原始水平
 +
|高
 +
|-
 +
|Binning
 +
|像素合并
 +
|中
 +
|提高
 +
|低
 +
|-
 +
|Subsampling
 +
|间隔采样
 +
|中
 +
|基本不变
 +
|低
 +
|}
 +
 
 +
=====当前图像参数=====
 +
相机提供了一系列寄存器,用于在二次开发或调试时准确读取当前工作模式的图像宽高及读出模式。
 +
 
 +
脚本函数''':''' <code>curwh</code>、<code>readmode</code>
 +
 
 +
======像素格式======
 +
相机输出格式符合MIPI CSI-2标准,现阶段支持的像素格式为UYVY和YUYV,默认为UYVY。
 +
 
 +
脚本函数: pixelformat
 +
=====帧率配置=====
 +
 
 +
======帧率范围======
 +
相机提供当前工作模式下支持的最小和最大帧率,可通过只读寄存器获取。
 +
 
 +
脚本函数: <code>minfps</code>、<code>maxfps</code>
 +
 
 +
======设置帧率======
 +
在最小帧率与最大帧率范围内,可自由设置当前帧率。需要注意的是,帧率设置必须在停止采集(Standby 状态)下进行,以确保设置生效。
 +
 
 +
脚本函数: <code>fps</code>
 +
 
 +
======帧数统计======
 +
相机支持对 '''Sensor 输出帧数''' 和 '''相机输出帧数''' 进行统计。每次开始采集操作时,帧数计数会重新开始。
 +
 
 +
脚本函数: <code>framecount</code>
 +
 
 +
====工作模式====
 +
相机可能支持多种工作模式,包括视频流模式(Video Stream Mode)、普通触发模式(Normal Trigger Mode)、电平触发模式(Level Trigger Mode)以及多相机同步模式(Multi-camera synchronization mode)。
 +
 
 +
不同型号的相机支持的工作模式类型可能有所差异,可通过workmodecap命令进行查询。
 +
 
 +
工作模式是相机的基础参数,有一部分功能会在不同工作模式下受限,如下表:
 +
 
 +
=====GX-MIPI-IMX662的工作模式功能受限表=====
 +
{| class="wikitable"
 +
!工作模式
 +
!Auto Expoure/Manual Expoure
 +
!自动降帧(slowshutter)
 +
!fps灵活可设
 +
!3D降噪
 +
|-
 +
|LINEAR流模式
 +
|都支持
 +
|支持
 +
|支持
 +
|支持
 +
|-
 +
|DOL宽动态流模式
 +
|AE
 +
|不支持
 +
|只有25/30两种
 +
|支持
 +
|-
 +
|普通触发
 +
|ME
 +
|不支持
 +
|支持
 +
|不支持
 +
|-
 +
|同步模式-主
 +
|都支持
 +
|不支持
 +
|支持
 +
|支持
 +
|-
 +
|同步模式-从
 +
|都支持
 +
|不支持
 +
|不支持
 +
|支持
 +
|}
 +
 
 +
脚本函数:workmodecap,workmode
 +
=====工作模式的切换=====
 +
在摄像机运行过程中,工作模式不能直接切换。
 +
 
 +
必须按照以下顺序进行操作:
 +
 
 +
#发送停止采集命令
 +
#等待摄像机进入 Standby 状态
 +
#修改工作模式配置
 +
#再次启动采集
 +
 
 +
脚本函数:workmode
 +
=====视频流模式=====
 +
在视频流模式下,摄像机会按照设定的 '''图像模式(videomode)''' 和 '''帧率(fps)''' 连续进行曝光并输出图像数据。
 +
 
 +
通常情况下,驱动程序会依据应用层对图像模式(videomode)和帧率(FPS)的配置自动完成寄存器设置,用户无需手动操作寄存器。
  
对于GX-MIPI-IMX662,为了保证触发图像的效果一致性,一个完整的图像帧需要三帧图像周期才可以完成从曝光到输出的过程。所以最大帧率为视频流模式的三分之一。
+
脚本函数 :videomode,fps,maxfps。
 +
=====普通触发模式=====
 +
======卷帘式曝光(Rolling shutter)======
 +
本节适用型号:GX-MIPI-IMX662,GX-MIPI-IMX664。
  
在此,我们将三个连续帧周期称为一个'''''触发周期'''''。
+
为了确保触发图像的一致性,一个完整图像帧的生成(从曝光到输出)需要经历三个连续的图像周期。因此,该型号在视频流模式下的最大帧率仅为所选模式帧率的三分之一。
  
普通触发模式下,如一次触发多帧,触发延迟作用在本次触发信号后,触发间隔和曝光延迟都在每一个'''''触发周期'''''前有效。
+
我们将这三个连续图像周期定义为一个 '''触发周期(Trigger Cycle)'''
 +
 
 +
在普通触发模式下,如果一次触发需要输出多帧图像,则触发延迟会从当前触发信号开始生效,而触发间隔和曝光延迟则在每个触发周期开始前起作用,确保每个周期的图像输出满足一致性要求。
  
 
下图以触发触发帧数设置为2为例:
 
下图以触发触发帧数设置为2为例:
Line 58: Line 419:
 
<br />
 
<br />
  
====同步模式(TBD)====
+
脚本函数 :trgnum,trginterval,trgsrc,trgexp_delay,trgdelay,triggercyclemin。
<br />
+
 
====工作模式的切换====
+
======类Smartsens 的全局曝光(Global shutter)======
在运行中工作模式不可以任意时刻切换,必须要先停止采集,然后才能切换为新的工作模式。
+
本节适用型号:GX-MIPI-AR0234。
====触发源====
+
 
 +
对于此类 Global Shutter 传感器,一帧图像的采集过程包括两个阶段:
 +
 
 +
#'''曝光阶段(Exposure Time)'''
 +
#'''读出阶段(Readout)'''
 +
 
 +
只有在读出完成后,下一帧曝光才能开始。
 +
 
 +
因此在触发模式下,一个 '''曝光周期 + 读出周期''' 构成一个 '''触发周期'''。
 +
 
 +
由于曝光时间会影响整个触发周期长度,因此触发模式下的最大帧率通常 '''低于视频流模式'''。
 +
 
 +
下图以触发触发帧数设置为2为例:[[File:Normal trigger mode (Global shutter).png|center|thumb|800x800px|Normal trigger mode (Global shutter)|link=http://wiki.veye.cc/index.php/File:Normal_trigger_mode_(Global_shutter).png]]
 +
<br />脚本函数 :trgnum,trginterval,trgsrc,trgexp_delay,trgdelay,triggercyclemin。
 +
======触发源======
 
摄像机支持软触发和硬触发两种触发源,这两种方式只是触发信号来源不同。触发延迟、曝光延迟、触发帧数、触发间隔等配置和功能完全一致。
 
摄像机支持软触发和硬触发两种触发源,这两种方式只是触发信号来源不同。触发延迟、曝光延迟、触发帧数、触发间隔等配置和功能完全一致。
  
 
注意,触发源设置仅对普通触发模式和滚动快门多帧触发模式有效。
 
注意,触发源设置仅对普通触发模式和滚动快门多帧触发模式有效。
  
相关命令:trgsrc。
+
脚本函数:trgsrc。
=====软触发=====
+
 
 +
*软触发
 +
 
 
通过i2c总线,向摄像机对应寄存器写入1,则进行了一次软触发。
 
通过i2c总线,向摄像机对应寄存器写入1,则进行了一次软触发。
  
 
由于软件处理和i2c传输均存在一定的延时,因此软触发的及时性比硬触发要差,对及时性要求高的场合,建议采用硬触发。
 
由于软件处理和i2c传输均存在一定的延时,因此软触发的及时性比硬触发要差,对及时性要求高的场合,建议采用硬触发。
  
相关命令:trgone。
+
脚本函数:trgone。
=====硬触发=====
+
 
 +
*硬触发
 +
 
 
硬触发模式下,摄像机通过采集TrigIN IO的电平变化获得触发信号。详情见IO控制章节。
 
硬触发模式下,摄像机通过采集TrigIN IO的电平变化获得触发信号。详情见IO控制章节。
====触发统计====
+
 
 +
脚本函数:trgedge。
 +
======触发统计======
 
触发统计功能统计了总触发数量以及触发丢失的数量。
 
触发统计功能统计了总触发数量以及触发丢失的数量。
  
Line 85: Line 466:
 
切换工作模式或者触发源,不会自动清空此统计。
 
切换工作模式或者触发源,不会自动清空此统计。
  
相关命令:trgcount,trgclr。
+
脚本函数:trgcount,trgclr。
 +
=====同步模式=====
 +
本节适用型号:GX-MIPI-IMX662,GX-MIPI-IMX664。
 +
 
 +
一个摄像机模组被配置为 '''Master 模式''',其余一个或者多个摄像机模组被配置为 '''Slave 模式'''。在这种配置下,Master 模组输出 '''XVS 信号''',Slave 模组接收XVS信号,跟随 Master 进行同步感光和数据输出。
 +
 
 +
使用同步模式时,要保证相机的videomode,workmode,fps的设置都完全一致。
 +
 
 +
在该模式下,每个摄像机模组的曝光参数既可以配置为 '''手动(Manual)''',也可以配置为 '''自动(Auto)'''。
 +
 
 +
脚本函数:slavemode。
 +
[[File:Multi-camera synchronization mode connection.png|center|thumb|800x800px|Multi-camera synchronization mode connection]]
 +
<br />
 +
 
 +
===图像属性===
 +
====图像方向====
 +
用于设置或读取相机输出图像的方向。
 +
 
 +
取值说明:
 +
 
 +
*<code>0</code> — Normal(正常方向)
 +
*<code>1</code> — Mirror(水平镜像)
 +
*<code>2</code> — Flip(垂直翻转)
 +
*<code>3</code> — Flip & Mirror(水平镜像 + 垂直翻转)
 +
 
 +
脚本函数: imgdir[[File:Test11.png|alt=Gx Camera Mirror/Flip|center|thumb|597x597px|Gx Camera Mirror/Flip]]<br />
 +
 
 +
====日夜模式和ICR(IR-CUT)控制====
 +
此功能用于安防监控类场景使用,一般'''图像的日夜模式、红外补光灯'''和'''ICR'''三者是配合运用,以达到白天看得好、有色彩,夜晚看得清、隐蔽性高的特点。
 +
{| class="wikitable"
 +
|+日夜模式说明
 +
!模式
 +
!图像
 +
!红外补光灯
 +
!ICR
 +
|-
 +
|日间模式
 +
|彩色
 +
|关闭
 +
|红外滤光片
 +
|-
 +
|夜晚模式
 +
|黑白
 +
|打开
 +
|透明玻璃
 +
|}
 +
 
 +
以上三者,相机只控制日夜模式和ICR状态,而不控制红外补光灯。
 +
 
 +
通常情况下,红外补光灯板会支持日夜检测,并输出一个电平信号到相机,用于触发相机的日夜模式切换。GX系列相机使用J2-1引脚接收此信号。
 +
 
 +
=====日夜模式=====
 +
取值说明:
 +
 
 +
*0: 彩色模式
 +
*1: 黑白模式
 +
*2: 外触发模式
 +
 
 +
在0和1模式下,由软件通过寄存器控制相机的日夜模式,忽略J2-1电平信号。在2模式下,由外触发信号,即J2-1引脚的电平控制日夜模式。脚本函数: daynightmode
 +
 
 +
=====触发引脚极性=====
 +
 
 +
J2-1引脚极性配置。默认情况下,高电平表示日间模式,低电平表示夜晚模式,此值设置1后,高电平表示夜晚模式,低电平表示日间模式。脚本函数:pinpolarity
 +
 
 +
=====ICR控制=====
 +
ICR(IRCUT)通常有两个引脚进行控制切换,可以控制红外滤光片或透明玻璃遮挡在传感器前面,进行光线的过滤。
 +
 
 +
相机支持ircutdir的参数设置,以支持不同的ICR引脚特性。
 +
{| class="wikitable"
 +
| colspan="6" |'''J4 : IRCUT 功能'''
 +
|-
 +
|'''模式'''
 +
|'''引脚号'''
 +
|'''引脚名'''
 +
|'''极性'''
 +
|'''滤光片位置(ircutdir=0)'''
 +
|'''滤光片位置(ircutdir=1)'''
 +
|-
 +
| rowspan="2" |模式1
 +
|J4-1
 +
|IRCUT1
 +
| -
 +
| rowspan="2" |红外截止
 +
| rowspan="2" |全波长通过
 +
|-
 +
|J4-2
 +
|IRCUT2
 +
| +
 +
|-
 +
| rowspan="2" |模式2
 +
|J4-1
 +
|IRCUT1
 +
| +
 +
| rowspan="2" |全波长通过
 +
| rowspan="2" |红外截止
 +
|-
 +
|J4-2
 +
|IRCUT2
 +
| -
 +
|}
 +
相机支持ICR周期性控制。
 +
 
 +
如启用则按照默认周期对ICRS输出一次控制电平信号,此种情况适合ICR不够稳定,或者震动较强的工作场景,但是会造成相机整体功耗有一定的增加。
 +
 
 +
如不启用,则只在模式切换的时候做一次控制,适合比较稳定震动较小的工作场景。
 +
 
 +
脚本函数:ircutdir,ircuttimer
 +
====MIPI信号参数====
 +
 
 +
=====MIPI lane数目=====
 +
获取当前MIPI lane数目,目前是只读类型,默认为2lane。
 +
 
 +
脚本函数: lanenum
 +
 
 +
=====MIPI lane速率=====
 +
获取当前MIPI lane的速率,目前是只读类型,默认值为1188Mbps。
 +
 
 +
脚本函数: mipidatarate
 +
 
 +
====测试图====
 +
 
 +
=====竖向彩条=====
 +
[[File:Vertical color stripes.png|center|thumb|800x800px|Gx Vertical color stripes]]脚本函数: testimg
  
====图像属性====
+
===ISP功能===
  
===== 测试图 =====
+
====曝光与增益控制====
 +
GX 系列相机支持对'''曝光时间(Exposure Time / Shutter)和增益(Gain)'''的独立控制,当前版本不支持光圈(Iris)调节。
  
====== 竖向彩条 ======
+
系统提供以下两种曝光控制模式:
[[File:Vertical color stripes.png|center|thumb|800x800px|Gx Vertical color stripes]]
 
  
 +
*自动曝光(Auto Exposure, AE)
 +
*手动曝光(Manual Exposure)
  
图像属性主要包括输出图像的像素格式、分辨率、帧率和方向等。用户可通过以下命令灵活配置或查询相关参数,以适配不同应用场景的需求:
+
=====曝光模式=====
 +
用于设置相机的曝光控制方式。
  
*<code>pixelformat</code>:设置或查看当前输出的像素格式(如 UYVY、YUYV 等)
+
*自动模式:由相机根据环境亮度自动调整曝光参数。适用于普遍的场景应用。
*<code>curwh</code>:查询当前视频流的分辨率(宽度 × 高度)
+
*手动模式:由用户固定设置曝光时间及增益。适用于固定环境光环境下,以及外触发模式等场景。
*<code>fps</code>:获取或调整视频帧率(Frames Per Second)
 
*<code>imgdir</code>:设置或查询图像的显示方向(如 0°、90°、180°、270° 旋转)
 
  
通过这些命令,用户可实时调整摄像头输出参数,满足从高帧率采集到特定像素格式处理等多种使用场景。
+
'''脚本函数:''' <code>expmode</code>
  
====ISP功能====
+
=====当前曝光时间=====
 +
表示相机在当前帧实际采用的曝光时间,是一个'''实时反馈参数'''。
  
====IO控制====
+
*在自动曝光模式下:该值由 AE 算法动态计算
 +
*在手动模式下:该值等于用户设定值
  
====本文修改记录====
+
该参数用于反映当前图像的实际感光时间。
<br />
+
 
 +
'''脚本函数:''' <code>exptime</code>
 +
 
 +
=====当前增益=====
 +
表示当前帧实际使用的增益值,是图像信号放大程度的实时反馈。
 +
 
 +
*在自动模式下:由 AE 算法动态调整
 +
*在手动模式下:等于用户设定值
 +
 
 +
单位为 dB(分贝)。
 +
 
 +
'''脚本函数:''' <code>curgain</code>
 +
 
 +
=====自动曝光=====
 +
自动曝光模式下,相机根据环境亮度动态调整曝光时间和/或增益,使图像亮度接近目标值。在指定的曝光时间范围和增益范围之内,AE算法会尽量多的使用曝光时间而不使用增益来提高拍摄亮度。
 +
 
 +
适用于光照变化较大的场景(如室内外切换、自然光环境等)。
 +
 
 +
======目标亮度======
 +
用于设定自动曝光的目标亮度值,是 AE 算法收敛的参考基准。
 +
 
 +
*数值越高:图像整体越亮
 +
*数值越低:图像整体越暗
 +
 
 +
该参数直接影响画面风格及亮度稳定性。
 +
 
 +
'''脚本函数:''' <code>aetarget</code>
 +
 
 +
======曝光策略======
 +
 
 +
*高光优先意味着对高光敏感,尽量避免画面过曝。
 +
 
 +
*低光优先意味着对低光敏感,尽量看清楚暗处区域,不管画面是否过曝。
 +
 
 +
默认的曝光策略是高光优先,用户可根据场景需要进行调整。
 +
 
 +
脚本函数:aestrategy
 +
 
 +
======自动最大曝光时间======
 +
用于限制自动曝光模式下允许使用的最大曝光时间。
 +
 
 +
作用:
 +
 
 +
*防止曝光时间过长导致'''运动模糊'''
 +
*避免因长曝光导致'''帧率下降或不稳定'''
 +
 
 +
<blockquote>注:最大曝光时间通常应满足:
 +
 
 +
'''Exposure Time ≤ 1 / Frame Rate'''</blockquote>脚本函数''':''' <code>aemaxtime</code>
 +
 
 +
======自动最大增益======
 +
用于限制自动曝光过程中允许使用的最大增益值。
 +
 
 +
作用:
 +
 
 +
*防止因高增益导致图像噪声显著增加
 +
*避免细节丢失及色彩失真
 +
 
 +
单位:dB
 +
 
 +
脚本函数''':''' <code>aemaxgain</code>
 +
 
 +
======自动降帧======
 +
自动降帧模式是自动曝光(AE)中的一种扩展策略,用于在低照度环境下优先保证图像亮度和信噪比。
 +
 
 +
在该模式下,AE 调节遵循以下策略:
 +
 
 +
#'''优先增加曝光时间''',以提升图像亮度并尽量降低增益,从而减少噪声;
 +
#当曝光时间达到当前帧率允许的上限,且**增益已达到用户设定的最大值(aemaxgain)**时:
 +
#系统将'''逐步降低帧率''',进一步延长曝光时间;
 +
#该过程持续进行,直到曝光时间达到**自动曝光允许的最大曝光时间(aemaxtime)**为止。
 +
 
 +
自动降帧模式,在低照度环境下可有效降低图像噪声,提高画面亮度和图像质量。
 +
 
 +
注意:自动降帧模式仅在自动曝光模式 + 视频流模式下有效。使用功能使用时,需要最大曝光时间(aemaxtime)配合使用。
 +
 
 +
相对的,固定帧率模式是指自动曝光调节时保持帧率不变。
 +
 
 +
脚本函数:<code>slowshutter</code>
 +
 
 +
======抗闪烁======
 +
是相机中用于消除人工光源频闪干扰的一项关键设置。它通过调整曝光时间与电网频率同步,避免在 荧光灯等照明下拍摄时出现明暗条纹、亮度跳变或滚动暗带等问题。
 +
 
 +
在自动曝光模式下,为消除交流光源频闪干扰而设置的电网频率参数(50Hz 或 60Hz),通过约束曝光时间为闪烁周期的整数倍,确保画面亮度稳定、无滚动暗带。
 +
 
 +
设置后,相机曝光时间将遵循(1s/(freq*2))的整数倍,以避免出现条纹。建议灯光更强的时候,使用更大的值,避免过曝。
 +
 
 +
脚本函数:antiflicker
 +
 
 +
=====手动曝光=====
 +
手动曝光模式下,用户固定设置曝光时间和增益,相机不再进行自动调整。
 +
 
 +
优点:
 +
 
 +
*帧间亮度一致性高(无闪烁)
 +
*可精确控制运动模糊
 +
*适用于工业检测、同步触发、AI视觉等场景
 +
 
 +
缺点:
 +
 
 +
*对环境光变化不敏感,可能导致过曝或欠曝
 +
*需要稳定光照条件或人工调节参数
 +
 
 +
======手动曝光时间======
 +
手动指定相机的曝光时间。由于不同传感器的实际生效曝光时间往往并不能达到微秒级别的准确度,而是一个以行读出时间为单位的离散值,因此metime往往和exptime有一些出入,这是正常现象。
 +
 
 +
脚本函数:metime
 +
 
 +
======手动增益======
 +
手动指定相机的增益值。不同传感器能支持的增益范围、精度也有所不同,因此,mgain往往也与curgain有一些出入,这也是正常的。
 +
 
 +
脚本函数:mgain
 +
 
 +
====白平衡====
 +
实际场景中,不同光源环境下,物体呈现出的颜色会不同,而图像传感器会忠实记录这一由于光源差异而引起的色彩变化。
 +
 
 +
但是人眼可根据大脑的记忆判断,识别物体的真实颜色。
 +
 
 +
AWB 算法的功能是降低外界光源对物体真实颜色的影响,使得我们采集的颜色信息转变为在理想日光光源下的无偏色信息。
 +
 
 +
=====白平衡模式=====
 +
GX 系列相机支持'''白平衡(White Balance, WB)'''调节,用于校正不同光照条件下的色偏,确保图像颜色准确还原。
 +
 
 +
系统提供两种白平衡控制模式:
 +
 
 +
*自动白平衡(Auto White Balance, AWB)
 +
 
 +
相机根据场景光照自动调整各颜色通道增益。适用于光照变化的通用场景。
 +
 
 +
*手动白平衡(Manual White Balance)
 +
 
 +
用户显式设置各颜色通道增益。适用于光照稳定环境或需要固定颜色还原的应用场景。
 +
 
 +
脚本函数:wbmode
 +
 
 +
=====当前状态=====
 +
 
 +
======当前色温======
 +
指相机在当前成像状态下,所采用或估算的光源色温值,单位为 开尔文(K)。它反映了系统对当前光照“冷暖程度”的判断或设定。
 +
 
 +
*色温越高(如 8000 K):光源偏蓝,画面呈冷色调。
 +
*色温越低(如 2500 K):光源偏红,画面呈暖色调。
 +
 
 +
脚本函数:colortemp
 +
 
 +
======当前白平衡 R增益======
 +
表示相机在当前成像状态下,为实现白平衡而施加在红色通道(R)的增益值。增益本质上是对传感器输出信号的放大操作,用于调节颜色分量的强度。
 +
 
 +
*在自动白平衡模式下:由 AWB 算法动态计算。
 +
*在手动白平衡模式下:等于用户设置的红色增益。
 +
 
 +
红色增益是白平衡控制的核心参数之一,与蓝色增益配合决定画面的色调和整体色温。<br />脚本函数:currgain
 +
 
 +
======当前白平衡 B增益======
 +
表示相机在当前成像状态下,为实现白平衡而施加在蓝色通道(B)的增益值。与红色增益配合使用,共同决定图像的色彩平衡和色温表现。
 +
 
 +
*在自动模式下:由 AWB 算法动态计算
 +
*在手动模式下:等于用户设置的蓝色增益
 +
 
 +
蓝色增益与红色增益比例决定画面的冷暖感和整体白平衡效果。
 +
 
 +
脚本函数:curbgain
 +
 
 +
=====自动白平衡=====
 +
在不同光源和色温条件下,自动白平衡模式会动态调整图像的 '''红色(R)、绿色(G)、蓝色(B)通道增益''',以实现对白色或中性灰物体的准确还原。
 +
 
 +
*目标效果:让白色物体在图像中呈现中性白色,保证整体色彩自然、真实。
 +
*算法依据:AWB 根据当前估算的**色温(Color Temperature)**和环境光强度动态调整各通道增益,优先保持低噪声和自然色彩。
 +
*可调参数:用户可设置允许的色温范围,以限制算法在极端光源下的调整幅度,避免过度色偏。
 +
 
 +
脚本函数''':'''
 +
 
 +
*<code>awbcolortempmin</code> —— 自动白平衡允许的最低色温
 +
*<code>awbcolortempmax</code> —— 自动白平衡允许的最高色温
 +
 
 +
<blockquote>注:色温范围通常以开尔文(K)为单位,例如 2500 K(暖光)~ 8000 K(冷光)。</blockquote>
 +
 
 +
=====手动白平衡=====
 +
手动白平衡允许用户在特定光照条件下主动设定各颜色通道增益,以精确控制图像色彩。
 +
 
 +
*目标效果:白色或中性灰物体在图像中呈现真实中性白,不偏黄、不偏蓝、不偏绿。
 +
*使用场景:适用于光照固定或特殊环境,例如实验室光源、工业检测、色彩校准等。
 +
*参数说明:用户可以直接设定 '''红色增益(R Gain)''' 与 '''蓝色增益(B Gain)''',绿色通道通常作为参考,不直接调节。
 +
*优点:避免 AWB 可能产生的色偏、抖动或误判,使色彩保持高度一致和稳定。
 +
 
 +
脚本函数''':'''
 +
 
 +
*<code>mwbrgain</code> —— 手动设置红色通道增益
 +
*<code>mwbbgain</code> —— 手动设置蓝色通道增益
 +
 
 +
====锐化====
 +
Sharpen 模块用于增强图像的清晰度,包括调节图像边缘的锐化属性和增强图像的细节和纹理的清晰度。此外,还能控制锐化后的图像的 overshoot(白边白点)和 undershoot(黑边黑点),以及抑制噪声的增强。
 +
 
 +
相机根据不同场景下的参数,内置了锐化调节机制,并自动根据当前场景、系统增益等参数,自动适配锐化参数。相机对外放了锐化强度参数,方便用户进行效果调节。
 +
 
 +
脚本函数:<code>sharppen</code>
 +
 
 +
====降噪====
 +
降噪分为2D降噪和3D降噪,相机根据不同场景下的参数,内置了降噪参数调节机制,并自动根据当前场景、系统增益等参数,自动适配降噪参数。相机对外放了降噪强度参数,方便用户进行效果调节。
 +
 
 +
=====2D降噪=====
 +
主要是针对单帧图像进行处理,它通过分析图像中像素与其周围像素的关系来识别并减少噪声。
 +
 
 +
脚本函数:denoise2d
 +
 
 +
=====3D降噪=====
 +
有时也称为时空降噪,是在2D降噪的基础上加入了时间维度的考量,即利用连续多帧之间的相关信息来进行降噪。这种方法尤其适合视频序列的降噪处理,因为它不仅考虑了单帧内的空间信息,还考虑了跨帧的时间信息。典型的应用场景包括视频监控、影视制作等。
 +
 
 +
关闭3D降噪可以降低一帧延迟。
 +
 
 +
脚本函数:denoise3d
 +
 
 +
====图像色彩参数====
 +
在ISP流程的后面,相机提供了修改饱和度、对比度和色度三个图像色彩参数的功能。
 +
 
 +
脚本函数:saturation, contrast, hue
 +
 
 +
====畸变校正====
 +
图像处理中用于消除或减轻镜头光学畸变的技术,目的是让图像中的直线在成像后依然保持“直”,几何形状更接近真实世界。这在机器视觉、自动驾驶、测量、AR/VR 等对几何精度要求高的场景中至关重要。
 +
 
 +
脚本函数:ldc
 +
 
 +
====去雾====
 +
用于消除或减轻因大气散射(如雾、霾、烟、水下浑浊等),从而恢复图像的清晰度、对比度。
 +
 
 +
脚本函数:dehaze
 +
 
 +
====gamma====
 +
是一种模拟人眼感知特性的非线性亮度映射,通过在编码时压缩亮部、保留暗部信息,在显示时还原自然观感,是数字成像中确保图像看起来正确的关键技术。
 +
 
 +
在GX系列中,我们调试好了几种不同效果的gamma参数,可根据实际场景进行调节。
 +
 
 +
脚本函数:gamma_index
 +
 
 +
====宽动态====
 +
 
 +
======DOL款动态======
 +
TBD
 +
 
 +
=====动态范围压缩=====
 +
动态范围压缩(Dynamic Range Compression)算法的目的就是要使真实场景的观察者和显示设备的观察者都能获得相同的视觉 感受。DRC 算法将高动态范围的图像压缩到显示器的动态范围,同时尽可能的保留原 图像的细节和对比度。
 +
 
 +
脚本函数:drc
 +
===IO控制===
 +
 
 +
=====触发延时=====
 +
用于控制从接收到外部触发信号到实际开始曝光之间的时间间隔。它的单位通常是 微秒(μs)。
 +
 
 +
软硬触发均生效。
 +
 
 +
脚本函数:trgdelay
 +
 
 +
=====触发边沿选择=====
 +
“0: 上升沿触发”表示在信号从低变高时启动曝光,
 +
 
 +
“1: 下降沿触发”表示在信号从高变低时启动曝光;
 +
 
 +
选择哪一种,取决于你的外部传感器或控制器输出信号的逻辑极性,目的是让相机在正确的物理事件发生时刻精准抓拍。
 +
 
 +
脚本函数:trgedge
 +
 
 +
=====曝光延迟=====
 +
是图像传感器从接收到曝光启动指令到实际开始曝光之间的延迟,用于设置触发信号相对于实际曝光时刻的提前量。
 +
 
 +
脚本函数:trgexp_delay
 +
 
 +
===本文修改记录===
 +
 
 +
*2026/04/04
 +
 
 +
基本完成初稿。
 +
 
 +
*2026/03/07
 +
 
 +
完成基础功能、图像采集、图像属性等章节。

Latest revision as of 08:23, 15 April 2026

English

GX系列MIPI摄像机模组功能手册

1 概述

GX 系列产品具备高性能 ISP(Image Signal Processor)处理能力,支持多种工作模式,并提供丰富的功能配置选项。产品在系统稳定性、生产质量控制以及供货能力方面均经过充分验证,适用于嵌入式视觉系统及 AI 视觉应用场景。

GX 系列 MIPI 摄像机模组采用标准 22-pin FPC 用户接口,便于系统集成,可直接接入多种主流嵌入式平台,例如 Raspberry Pi、NVIDIA Jetson 系列平台以及 RK3588 平台等。

本文档主要介绍 GX 系列产品的功能特性及其工作原理。

关于以下内容,请参考对应的专项文档:

  • 硬件接口手册
  • 寄存器说明文档
  • 配置脚本说明
  • 各嵌入式平台的驱动与使用指南

在本文档中,每个功能章节均包含 [脚本函数] 一栏,用于列出与该功能相关的 gx_mipi_i2c.sh 脚本命令,方便用户进行功能配置与调试。

1.1 摄像机型号列表

Series Model Max Resolution Shutter Mode
GX series GX-MIPI-IMX662 1920×1080@60 fps Rolling Shutter
GX series GX-MIPI-IMX664 2688×1520@30 fps Rolling Shutter
GX series GX-MIPI-AR0234 1920×1200@54 fps Golbal Shutter

2 基础功能

本章节介绍相机的基础管理功能,包括设备信息读取、参数管理和系统控制。

通过这些寄存器,用户可以获取设备标识信息、管理相机配置参数,并执行系统级操作。

2.1 设备信息

相机提供多个只读寄存器,用于查询设备的基本信息。这些信息可用于设备识别、系统管理以及软件调试。

包括:

  • 制造商名称
  • 产品型号
  • 传感器型号
  • 设备序列号
  • 固件版本
2.1.1 制造商名称

相机制造商名称。

脚本函数:manufacturer

2.1.2 产品型号

相机型号标识。

脚本函数:model

2.1.3 传感器型号

相机所使用的图像传感器型号。

脚本函数:sensorname

2.1.4 序列号

每台相机在出厂时都会分配唯一的序列号,该序列号包含生产日期批次及编号。

脚本函数:serialno

2.1.5 固件版本

返回相机的固件版本信息。

该寄存器为 32 位数据:0xAABBCCDD

其中:

  • AA.BB 表示控制程序版本(C version)
  • CC.DD 表示逻辑程序版本(L version)

2.2 参数管理

相机支持将当前配置参数保存到内部 Flash 中。

保存后的参数在相机重新上电后会自动加载。

2.2.1 参数保存

将当前相机参数保存到 Flash 中。

注意事项:

  • 该操作会 擦除并重写系统 Flash
  • 操作过程中 必须保证电源稳定
  • 不建议频繁执行该操作

脚本函数:paramsave

2.2.2 恢复出厂参数

将相机参数恢复为出厂默认配置。

注意事项:

  • 该操作会 擦除并重写系统 Flash
  • 操作过程中 必须保证电源稳定
  • 不建议频繁执行恢复出厂操作

脚本函数:factoryparam

2.3 系统控制

相机提供一些基本的系统控制功能,例如设备重启和系统运行时间查询。

2.3.1 系统重启

执行该操作会使相机重新启动。

脚本函数:reboot

2.3.2 系统时间戳

相机自启动以来的运行时间。

该参数可用于:

  • 系统调试
  • 设备运行时间统计
  • 简单同步参考

脚本函数:timestamp

2.3.3 I²C 地址配置

相机支持通过寄存器配置设备的 I²C 通信地址

用户可以根据系统需求修改相机的 I²C 地址,以避免多设备系统中的地址冲突。

配置说明:

  • 可设置的地址范围:0x08 – 0x77
  • 修改后需要执行 参数保存 操作
  • 新地址在 设备重启后生效

脚本函数:i2caddr

3 图像采集

3.1 卷帘式曝光和全局曝光

图像传感器按照曝光方式可以分为 卷帘式曝光(Rolling Shutter)全局曝光(Global Shutter) 两种类型。

不同曝光方式在运动物体拍摄和触发模式下的行为有所不同。

3.1.1 卷帘式曝光

卷帘式曝光传感器的工作过程如下图所示。

在该模式下,图像各行按照顺序依次开始曝光:

  1. 第一行首先开始曝光
  2. 经过一个行周期后,第二行开始曝光
  3. 依次类推,第 N 行在第 N−1 行之后开始曝光

当第一行曝光结束后,开始进行数据读出。每读取一行数据需要一个行周期时间(包含行消隐时间)。

当第一行数据读取完成时,第二行刚好开始读取。随后各行依次读取,直到整幅图像全部输出完成。

卷帘式曝光传感器具有以下特点:

  • 结构相对简单
  • 成本较低
  • 可以实现较高分辨率

因此,卷帘式曝光适用于 静态场景或低速运动目标的成像应用

Rolling shutter mode
Rolling shutter mode


3.1.2 全局曝光

全局曝光传感器的工作方式如下图所示。

在全局曝光模式下:

  1. 传感器所有像素 同时开始曝光
  2. 所有像素 同时结束曝光

曝光结束后,传感器会将感光区域中的电荷转移到存储区域,然后再按行读取像素数据。

这种方式可以保证:

  • 所有像素在同一时间采样
  • 图像不会产生运动畸变

因此,全局曝光特别适用于 高速运动目标的图像采集,例如:

  • 工业检测
  • 机器人视觉
  • 运动目标跟踪


Global shutter mode

3.2 开始/停止采集

用户可以在任意时刻向摄像机发送 开始采集 或 停止采集 命令。

当摄像机收到开始采集命令时:

  • 如果当前工作在 视频流模式,摄像机会立即开始曝光并连续输出图像。
  • 如果当前工作在 触发模式,摄像机会进入 等待触发信号状态。

此时摄像机状态进入 Running状态

当摄像机收到停止采集命令时:

1. 摄像机会先完成当前正在传输的图像帧,以保证帧数据完整

2. 然后停止输出图像

3. 摄像机进入 Standby 状态

需要注意:

如果当前配置为 触发多帧模式,且触发序列尚未完成,则停止采集命令会中断当前触发过程。因此,停止采集仅保证 当前帧完整性,但不保证 整个触发序列完整性。

一般情况下,驱动会自动发送开始/停止采集命令,用户无需主动控制寄存器。

脚本函数:imgacq。

3.3 图像模式

GX系列相机支持多种视频模式(videomode),每种模式对应特定的分辨率、最大帧率以及图像读出方式。

读出方式包括普通模式(Normal Mode)、Binning模式以及Subsampling模式。在视频流模式下,相机会根据所选videomode的分辨率、帧率及读出方式进行连续曝光,并实时输出图像数据。

不同型号的相机所支持的图像模式可能有所不同,详情见下表:

Model videomode 分辨率 最小帧率 最大帧率 读出方式
GX-MIPI-IMX662 1 1920×1080 0.065fps 60fps Normal
GX-MIPI-IMX664 1 2688×1520 TBD 30fps Normal
2 1344x760 TBD 100fps Binning
GX-MIPI-AR0234 1 1920×1200 TBD 54 fps Normal
2 1920×1080 TBD 60fps Normal
3 1600×1200 TBD 60fps Normal

脚本函数 :videomodecap,videomodenum, vidoemodewh1-vidoemodewh8,videomodeparam1-videomodeparam8,videomode,fps,maxfps, curwh。

3.3.1 像素读出模式

GX 系列相机支持多种像素读出模式:Normal Mode、Binning Mode 和 Subsampling Mode。不同模式在分辨率、信噪比和数据带宽方面有不同特点,可根据应用需求选择。

  • Normal Mode(普通模式)

传感器按完整像素阵列逐行读出,每个像素均参与采集和输出。该模式提供最高分辨率和最佳图像细节,但数据带宽需求较高。

  • Binning Mode(像素合并模式)

将相邻像素在传感器内部合并后输出,提升信噪比和低照度性能,同时降低分辨率和数据带宽。适用于低光或高灵敏度应用。

  • Subsampling Mode(子采样模式)

按固定间隔选择像素读出,降低分辨率和数据量,但信噪比基本不变。适用于提升帧率或降低带宽需求的场景。

模式对比

模式 读出方式 分辨率 信噪比 数据带宽
Normal 全像素读出 原始水平
Binning 像素合并 提高
Subsampling 间隔采样 基本不变
3.3.2 当前图像参数

相机提供了一系列寄存器,用于在二次开发或调试时准确读取当前工作模式的图像宽高及读出模式。

脚本函数 curwhreadmode

3.3.2.1 像素格式

相机输出格式符合MIPI CSI-2标准,现阶段支持的像素格式为UYVY和YUYV,默认为UYVY。

脚本函数: pixelformat

3.3.3 帧率配置
3.3.3.1 帧率范围

相机提供当前工作模式下支持的最小和最大帧率,可通过只读寄存器获取。

脚本函数: minfpsmaxfps

3.3.3.2 设置帧率

在最小帧率与最大帧率范围内,可自由设置当前帧率。需要注意的是,帧率设置必须在停止采集(Standby 状态)下进行,以确保设置生效。

脚本函数: fps

3.3.3.3 帧数统计

相机支持对 Sensor 输出帧数相机输出帧数 进行统计。每次开始采集操作时,帧数计数会重新开始。

脚本函数: framecount

3.4 工作模式

相机可能支持多种工作模式,包括视频流模式(Video Stream Mode)、普通触发模式(Normal Trigger Mode)、电平触发模式(Level Trigger Mode)以及多相机同步模式(Multi-camera synchronization mode)。

不同型号的相机支持的工作模式类型可能有所差异,可通过workmodecap命令进行查询。

工作模式是相机的基础参数,有一部分功能会在不同工作模式下受限,如下表:

3.4.1 GX-MIPI-IMX662的工作模式功能受限表
工作模式 Auto Expoure/Manual Expoure 自动降帧(slowshutter) fps灵活可设 3D降噪
LINEAR流模式 都支持 支持 支持 支持
DOL宽动态流模式 AE 不支持 只有25/30两种 支持
普通触发 ME 不支持 支持 不支持
同步模式-主 都支持 不支持 支持 支持
同步模式-从 都支持 不支持 不支持 支持

脚本函数:workmodecap,workmode

3.4.2 工作模式的切换

在摄像机运行过程中,工作模式不能直接切换。

必须按照以下顺序进行操作:

  1. 发送停止采集命令
  2. 等待摄像机进入 Standby 状态
  3. 修改工作模式配置
  4. 再次启动采集

脚本函数:workmode

3.4.3 视频流模式

在视频流模式下,摄像机会按照设定的 图像模式(videomode)帧率(fps) 连续进行曝光并输出图像数据。

通常情况下,驱动程序会依据应用层对图像模式(videomode)和帧率(FPS)的配置自动完成寄存器设置,用户无需手动操作寄存器。

脚本函数 :videomode,fps,maxfps。

3.4.4 普通触发模式
3.4.4.1 卷帘式曝光(Rolling shutter)

本节适用型号:GX-MIPI-IMX662,GX-MIPI-IMX664。

为了确保触发图像的一致性,一个完整图像帧的生成(从曝光到输出)需要经历三个连续的图像周期。因此,该型号在视频流模式下的最大帧率仅为所选模式帧率的三分之一。

我们将这三个连续图像周期定义为一个 触发周期(Trigger Cycle)

在普通触发模式下,如果一次触发需要输出多帧图像,则触发延迟会从当前触发信号开始生效,而触发间隔和曝光延迟则在每个触发周期开始前起作用,确保每个周期的图像输出满足一致性要求。

下图以触发触发帧数设置为2为例:

GX trigger timing( Rolling shutter)


脚本函数 :trgnum,trginterval,trgsrc,trgexp_delay,trgdelay,triggercyclemin。

3.4.4.2 类Smartsens 的全局曝光(Global shutter)

本节适用型号:GX-MIPI-AR0234。

对于此类 Global Shutter 传感器,一帧图像的采集过程包括两个阶段:

  1. 曝光阶段(Exposure Time)
  2. 读出阶段(Readout)

只有在读出完成后,下一帧曝光才能开始。

因此在触发模式下,一个 曝光周期 + 读出周期 构成一个 触发周期

由于曝光时间会影响整个触发周期长度,因此触发模式下的最大帧率通常 低于视频流模式

下图以触发触发帧数设置为2为例:

Normal trigger mode (Global shutter)


脚本函数 :trgnum,trginterval,trgsrc,trgexp_delay,trgdelay,triggercyclemin。

3.4.4.3 触发源

摄像机支持软触发和硬触发两种触发源,这两种方式只是触发信号来源不同。触发延迟、曝光延迟、触发帧数、触发间隔等配置和功能完全一致。

注意,触发源设置仅对普通触发模式和滚动快门多帧触发模式有效。

脚本函数:trgsrc。

  • 软触发

通过i2c总线,向摄像机对应寄存器写入1,则进行了一次软触发。

由于软件处理和i2c传输均存在一定的延时,因此软触发的及时性比硬触发要差,对及时性要求高的场合,建议采用硬触发。

脚本函数:trgone。

  • 硬触发

硬触发模式下,摄像机通过采集TrigIN IO的电平变化获得触发信号。详情见IO控制章节。

脚本函数:trgedge。

3.4.4.4 触发统计

触发统计功能统计了总触发数量以及触发丢失的数量。

总触发数量的定义:硬触发模式下,为经过触发过滤之后的触发数;软触发模式下,为所有触发数。

当摄像机接收到硬触发或者软触发信号时,如果其正处于触发周期,将无法响应新的触发信号,此时会造成触发信号丢失。

切换工作模式或者触发源,不会自动清空此统计。

脚本函数:trgcount,trgclr。

3.4.5 同步模式

本节适用型号:GX-MIPI-IMX662,GX-MIPI-IMX664。

一个摄像机模组被配置为 Master 模式,其余一个或者多个摄像机模组被配置为 Slave 模式。在这种配置下,Master 模组输出 XVS 信号,Slave 模组接收XVS信号,跟随 Master 进行同步感光和数据输出。

使用同步模式时,要保证相机的videomode,workmode,fps的设置都完全一致。

在该模式下,每个摄像机模组的曝光参数既可以配置为 手动(Manual),也可以配置为 自动(Auto)

脚本函数:slavemode。

Multi-camera synchronization mode connection


4 图像属性

4.1 图像方向

用于设置或读取相机输出图像的方向。

取值说明:

  • 0 — Normal(正常方向)
  • 1 — Mirror(水平镜像)
  • 2 — Flip(垂直翻转)
  • 3 — Flip & Mirror(水平镜像 + 垂直翻转)

脚本函数: imgdir

Gx Camera Mirror/Flip
Gx Camera Mirror/Flip


4.2 日夜模式和ICR(IR-CUT)控制

此功能用于安防监控类场景使用,一般图像的日夜模式、红外补光灯ICR三者是配合运用,以达到白天看得好、有色彩,夜晚看得清、隐蔽性高的特点。

日夜模式说明
模式 图像 红外补光灯 ICR
日间模式 彩色 关闭 红外滤光片
夜晚模式 黑白 打开 透明玻璃

以上三者,相机只控制日夜模式和ICR状态,而不控制红外补光灯。

通常情况下,红外补光灯板会支持日夜检测,并输出一个电平信号到相机,用于触发相机的日夜模式切换。GX系列相机使用J2-1引脚接收此信号。

4.2.1 日夜模式

取值说明:

  • 0: 彩色模式
  • 1: 黑白模式
  • 2: 外触发模式

在0和1模式下,由软件通过寄存器控制相机的日夜模式,忽略J2-1电平信号。在2模式下,由外触发信号,即J2-1引脚的电平控制日夜模式。脚本函数: daynightmode

4.2.2 触发引脚极性

J2-1引脚极性配置。默认情况下,高电平表示日间模式,低电平表示夜晚模式,此值设置1后,高电平表示夜晚模式,低电平表示日间模式。脚本函数:pinpolarity

4.2.3 ICR控制

ICR(IRCUT)通常有两个引脚进行控制切换,可以控制红外滤光片或透明玻璃遮挡在传感器前面,进行光线的过滤。

相机支持ircutdir的参数设置,以支持不同的ICR引脚特性。

J4 : IRCUT 功能
模式 引脚号 引脚名 极性 滤光片位置(ircutdir=0) 滤光片位置(ircutdir=1)
模式1 J4-1 IRCUT1 - 红外截止 全波长通过
J4-2 IRCUT2 +
模式2 J4-1 IRCUT1 + 全波长通过 红外截止
J4-2 IRCUT2 -

相机支持ICR周期性控制。

如启用则按照默认周期对ICRS输出一次控制电平信号,此种情况适合ICR不够稳定,或者震动较强的工作场景,但是会造成相机整体功耗有一定的增加。

如不启用,则只在模式切换的时候做一次控制,适合比较稳定震动较小的工作场景。

脚本函数:ircutdir,ircuttimer

4.3 MIPI信号参数

4.3.1 MIPI lane数目

获取当前MIPI lane数目,目前是只读类型,默认为2lane。

脚本函数: lanenum

4.3.2 MIPI lane速率

获取当前MIPI lane的速率,目前是只读类型,默认值为1188Mbps。

脚本函数: mipidatarate

4.4 测试图

4.4.1 竖向彩条
Gx Vertical color stripes

脚本函数: testimg

5 ISP功能

5.1 曝光与增益控制

GX 系列相机支持对曝光时间(Exposure Time / Shutter)和增益(Gain)的独立控制,当前版本不支持光圈(Iris)调节。

系统提供以下两种曝光控制模式:

  • 自动曝光(Auto Exposure, AE)
  • 手动曝光(Manual Exposure)
5.1.1 曝光模式

用于设置相机的曝光控制方式。

  • 自动模式:由相机根据环境亮度自动调整曝光参数。适用于普遍的场景应用。
  • 手动模式:由用户固定设置曝光时间及增益。适用于固定环境光环境下,以及外触发模式等场景。

脚本函数: expmode

5.1.2 当前曝光时间

表示相机在当前帧实际采用的曝光时间,是一个实时反馈参数

  • 在自动曝光模式下:该值由 AE 算法动态计算
  • 在手动模式下:该值等于用户设定值

该参数用于反映当前图像的实际感光时间。

脚本函数: exptime

5.1.3 当前增益

表示当前帧实际使用的增益值,是图像信号放大程度的实时反馈。

  • 在自动模式下:由 AE 算法动态调整
  • 在手动模式下:等于用户设定值

单位为 dB(分贝)。

脚本函数: curgain

5.1.4 自动曝光

自动曝光模式下,相机根据环境亮度动态调整曝光时间和/或增益,使图像亮度接近目标值。在指定的曝光时间范围和增益范围之内,AE算法会尽量多的使用曝光时间而不使用增益来提高拍摄亮度。

适用于光照变化较大的场景(如室内外切换、自然光环境等)。

5.1.4.1 目标亮度

用于设定自动曝光的目标亮度值,是 AE 算法收敛的参考基准。

  • 数值越高:图像整体越亮
  • 数值越低:图像整体越暗

该参数直接影响画面风格及亮度稳定性。

脚本函数: aetarget

5.1.4.2 曝光策略
  • 高光优先意味着对高光敏感,尽量避免画面过曝。
  • 低光优先意味着对低光敏感,尽量看清楚暗处区域,不管画面是否过曝。

默认的曝光策略是高光优先,用户可根据场景需要进行调整。

脚本函数:aestrategy

5.1.4.3 自动最大曝光时间

用于限制自动曝光模式下允许使用的最大曝光时间。

作用:

  • 防止曝光时间过长导致运动模糊
  • 避免因长曝光导致帧率下降或不稳定

注:最大曝光时间通常应满足: Exposure Time ≤ 1 / Frame Rate

脚本函数 aemaxtime

5.1.4.4 自动最大增益

用于限制自动曝光过程中允许使用的最大增益值。

作用:

  • 防止因高增益导致图像噪声显著增加
  • 避免细节丢失及色彩失真

单位:dB

脚本函数 aemaxgain

5.1.4.5 自动降帧

自动降帧模式是自动曝光(AE)中的一种扩展策略,用于在低照度环境下优先保证图像亮度和信噪比。

在该模式下,AE 调节遵循以下策略:

  1. 优先增加曝光时间,以提升图像亮度并尽量降低增益,从而减少噪声;
  2. 当曝光时间达到当前帧率允许的上限,且**增益已达到用户设定的最大值(aemaxgain)**时:
  3. 系统将逐步降低帧率,进一步延长曝光时间;
  4. 该过程持续进行,直到曝光时间达到**自动曝光允许的最大曝光时间(aemaxtime)**为止。

自动降帧模式,在低照度环境下可有效降低图像噪声,提高画面亮度和图像质量。

注意:自动降帧模式仅在自动曝光模式 + 视频流模式下有效。使用功能使用时,需要最大曝光时间(aemaxtime)配合使用。

相对的,固定帧率模式是指自动曝光调节时保持帧率不变。

脚本函数:slowshutter

5.1.4.6 抗闪烁

是相机中用于消除人工光源频闪干扰的一项关键设置。它通过调整曝光时间与电网频率同步,避免在 荧光灯等照明下拍摄时出现明暗条纹、亮度跳变或滚动暗带等问题。

在自动曝光模式下,为消除交流光源频闪干扰而设置的电网频率参数(50Hz 或 60Hz),通过约束曝光时间为闪烁周期的整数倍,确保画面亮度稳定、无滚动暗带。

设置后,相机曝光时间将遵循(1s/(freq*2))的整数倍,以避免出现条纹。建议灯光更强的时候,使用更大的值,避免过曝。

脚本函数:antiflicker

5.1.5 手动曝光

手动曝光模式下,用户固定设置曝光时间和增益,相机不再进行自动调整。

优点:

  • 帧间亮度一致性高(无闪烁)
  • 可精确控制运动模糊
  • 适用于工业检测、同步触发、AI视觉等场景

缺点:

  • 对环境光变化不敏感,可能导致过曝或欠曝
  • 需要稳定光照条件或人工调节参数
5.1.5.1 手动曝光时间

手动指定相机的曝光时间。由于不同传感器的实际生效曝光时间往往并不能达到微秒级别的准确度,而是一个以行读出时间为单位的离散值,因此metime往往和exptime有一些出入,这是正常现象。

脚本函数:metime

5.1.5.2 手动增益

手动指定相机的增益值。不同传感器能支持的增益范围、精度也有所不同,因此,mgain往往也与curgain有一些出入,这也是正常的。

脚本函数:mgain

5.2 白平衡

实际场景中,不同光源环境下,物体呈现出的颜色会不同,而图像传感器会忠实记录这一由于光源差异而引起的色彩变化。

但是人眼可根据大脑的记忆判断,识别物体的真实颜色。

AWB 算法的功能是降低外界光源对物体真实颜色的影响,使得我们采集的颜色信息转变为在理想日光光源下的无偏色信息。

5.2.1 白平衡模式

GX 系列相机支持白平衡(White Balance, WB)调节,用于校正不同光照条件下的色偏,确保图像颜色准确还原。

系统提供两种白平衡控制模式:

  • 自动白平衡(Auto White Balance, AWB)

相机根据场景光照自动调整各颜色通道增益。适用于光照变化的通用场景。

  • 手动白平衡(Manual White Balance)

用户显式设置各颜色通道增益。适用于光照稳定环境或需要固定颜色还原的应用场景。

脚本函数:wbmode

5.2.2 当前状态
5.2.2.1 当前色温

指相机在当前成像状态下,所采用或估算的光源色温值,单位为 开尔文(K)。它反映了系统对当前光照“冷暖程度”的判断或设定。

  • 色温越高(如 8000 K):光源偏蓝,画面呈冷色调。
  • 色温越低(如 2500 K):光源偏红,画面呈暖色调。

脚本函数:colortemp

5.2.2.2 当前白平衡 R增益

表示相机在当前成像状态下,为实现白平衡而施加在红色通道(R)的增益值。增益本质上是对传感器输出信号的放大操作,用于调节颜色分量的强度。

  • 在自动白平衡模式下:由 AWB 算法动态计算。
  • 在手动白平衡模式下:等于用户设置的红色增益。

红色增益是白平衡控制的核心参数之一,与蓝色增益配合决定画面的色调和整体色温。
脚本函数:currgain

5.2.2.3 当前白平衡 B增益

表示相机在当前成像状态下,为实现白平衡而施加在蓝色通道(B)的增益值。与红色增益配合使用,共同决定图像的色彩平衡和色温表现。

  • 在自动模式下:由 AWB 算法动态计算
  • 在手动模式下:等于用户设置的蓝色增益

蓝色增益与红色增益比例决定画面的冷暖感和整体白平衡效果。

脚本函数:curbgain

5.2.3 自动白平衡

在不同光源和色温条件下,自动白平衡模式会动态调整图像的 红色(R)、绿色(G)、蓝色(B)通道增益,以实现对白色或中性灰物体的准确还原。

  • 目标效果:让白色物体在图像中呈现中性白色,保证整体色彩自然、真实。
  • 算法依据:AWB 根据当前估算的**色温(Color Temperature)**和环境光强度动态调整各通道增益,优先保持低噪声和自然色彩。
  • 可调参数:用户可设置允许的色温范围,以限制算法在极端光源下的调整幅度,避免过度色偏。

脚本函数

  • awbcolortempmin —— 自动白平衡允许的最低色温
  • awbcolortempmax —— 自动白平衡允许的最高色温

注:色温范围通常以开尔文(K)为单位,例如 2500 K(暖光)~ 8000 K(冷光)。

5.2.4 手动白平衡

手动白平衡允许用户在特定光照条件下主动设定各颜色通道增益,以精确控制图像色彩。

  • 目标效果:白色或中性灰物体在图像中呈现真实中性白,不偏黄、不偏蓝、不偏绿。
  • 使用场景:适用于光照固定或特殊环境,例如实验室光源、工业检测、色彩校准等。
  • 参数说明:用户可以直接设定 红色增益(R Gain)蓝色增益(B Gain),绿色通道通常作为参考,不直接调节。
  • 优点:避免 AWB 可能产生的色偏、抖动或误判,使色彩保持高度一致和稳定。

脚本函数

  • mwbrgain —— 手动设置红色通道增益
  • mwbbgain —— 手动设置蓝色通道增益

5.3 锐化

Sharpen 模块用于增强图像的清晰度,包括调节图像边缘的锐化属性和增强图像的细节和纹理的清晰度。此外,还能控制锐化后的图像的 overshoot(白边白点)和 undershoot(黑边黑点),以及抑制噪声的增强。

相机根据不同场景下的参数,内置了锐化调节机制,并自动根据当前场景、系统增益等参数,自动适配锐化参数。相机对外放了锐化强度参数,方便用户进行效果调节。

脚本函数:sharppen

5.4 降噪

降噪分为2D降噪和3D降噪,相机根据不同场景下的参数,内置了降噪参数调节机制,并自动根据当前场景、系统增益等参数,自动适配降噪参数。相机对外放了降噪强度参数,方便用户进行效果调节。

5.4.1 2D降噪

主要是针对单帧图像进行处理,它通过分析图像中像素与其周围像素的关系来识别并减少噪声。

脚本函数:denoise2d

5.4.2 3D降噪

有时也称为时空降噪,是在2D降噪的基础上加入了时间维度的考量,即利用连续多帧之间的相关信息来进行降噪。这种方法尤其适合视频序列的降噪处理,因为它不仅考虑了单帧内的空间信息,还考虑了跨帧的时间信息。典型的应用场景包括视频监控、影视制作等。

关闭3D降噪可以降低一帧延迟。

脚本函数:denoise3d

5.5 图像色彩参数

在ISP流程的后面,相机提供了修改饱和度、对比度和色度三个图像色彩参数的功能。

脚本函数:saturation, contrast, hue

5.6 畸变校正

图像处理中用于消除或减轻镜头光学畸变的技术,目的是让图像中的直线在成像后依然保持“直”,几何形状更接近真实世界。这在机器视觉、自动驾驶、测量、AR/VR 等对几何精度要求高的场景中至关重要。

脚本函数:ldc

5.7 去雾

用于消除或减轻因大气散射(如雾、霾、烟、水下浑浊等),从而恢复图像的清晰度、对比度。

脚本函数:dehaze

5.8 gamma

是一种模拟人眼感知特性的非线性亮度映射,通过在编码时压缩亮部、保留暗部信息,在显示时还原自然观感,是数字成像中确保图像看起来正确的关键技术。

在GX系列中,我们调试好了几种不同效果的gamma参数,可根据实际场景进行调节。

脚本函数:gamma_index

5.9 宽动态

5.9.1 DOL款动态

TBD

5.9.2 动态范围压缩

动态范围压缩(Dynamic Range Compression)算法的目的就是要使真实场景的观察者和显示设备的观察者都能获得相同的视觉 感受。DRC 算法将高动态范围的图像压缩到显示器的动态范围,同时尽可能的保留原 图像的细节和对比度。

脚本函数:drc

6 IO控制

6.1 触发延时

用于控制从接收到外部触发信号到实际开始曝光之间的时间间隔。它的单位通常是 微秒(μs)。

软硬触发均生效。

脚本函数:trgdelay

6.2 触发边沿选择

“0: 上升沿触发”表示在信号从低变高时启动曝光,

“1: 下降沿触发”表示在信号从高变低时启动曝光;

选择哪一种,取决于你的外部传感器或控制器输出信号的逻辑极性,目的是让相机在正确的物理事件发生时刻精准抓拍。

脚本函数:trgedge

6.3 曝光延迟

是图像传感器从接收到曝光启动指令到实际开始曝光之间的延迟,用于设置触发信号相对于实际曝光时刻的提前量。

脚本函数:trgexp_delay

7 本文修改记录

  • 2026/04/04

基本完成初稿。

  • 2026/03/07

完成基础功能、图像采集、图像属性等章节。