hi_isp_slave_sns_sync
hi_isp_frame_info
说明
定义 ISP 实时信息。
定义
typedef struct {
hi_u32 iso;
hi_u32 exposure_time;
hi_u32 isp_dgain;
hi_u32 again;
hi_u32 dgain;
hi_u32 ratio[3];
hi_u32 isp_nr_strength;
hi_u32 f_number;
hi_u32 sensor_id;
hi_u32 sensor_mode;
hi_u32 hmax_times;
hi_u32 vmax;
hi_u32 vc_num;
hi_u64 fsync_timestamp;
hi_u64 fs_timestamp;
hi_u64 fe_timestamp;
hi_u64 pe_timestamp;
hi_s64 motion_filter[9];
hi_u32 reserved[10];
} hi_isp_frame_info;
成员
| 成员名称 | 描述 |
|---|---|
| iso | 当前sensor模拟增益*sensor数字增益*ISP数字增益*100。仅作PQ调测参考使用。 |
| exposure_time | 曝光时间,单位是微秒(us)。仅作PQ调测参考使用。 |
| isp_dgain | ISP数字增益。仅作PQ调测参考使用。 |
| again | Sensor的模拟增益。仅作PQ调测参考使用。 |
| dgain | Sensor的数字增益。仅作PQ调测参考使用。 |
| ratio | 多帧合成WDR相邻2帧默认曝光比。仅作PQ调测参考使用。 |
| isp_nr_strength | ISP的NR强度。当前未支持,默认值为0。 |
| f_number | 当前使用的镜头的F值。仅作PQ调测参考使用。 |
| sensor_id | 当前使用的sensorID。仅作PQ调测参考使用。 |
| sensor_mode | 当前使用的sensor序列模式。仅作PQ调测参考使用。 |
| hmax_times | 当前使用的sensor对应读出一行的时间,单位是纳秒(ns)。仅作PQ调测参考使用。 |
| vmax | sensor每帧实际生效的总行数,单位是行。仅作PQ调测参考使用。 |
| vc_num | 当前未支持,默认值为0。当前未支持,默认值为0。 |
| fsync_timestamp | 发出fsync曝光同步信号的时间。 |
| fs_timestamp | 收到sensor模组FrameStart信号的时间,仅做参考,会受CPU负载以及调度而存在误差。 |
| fe_timestamp | 收到sensor模组FrameEnd信号的时间,仅做参考,会受CPU负载以及调度而存在误差。 |
| pe_timestamp | ISP处理完成后输出图像的时间,仅做维测参考使用。 |
| motion_filter | 数字防抖的3*3仿射变换矩阵,15bit 小数精度。该值无需用户设置,是开启数字防抖后自动生成的值。 用户不能直接使用该矩阵作为仿射变化矩阵,完成以下步骤后可得到仿射变换矩阵: (1)转换为浮点类型做归一化处理 (2)求m1的逆矩阵,最终得到m2矩阵,m2矩阵可与图像直接进行运算 (3)m2矩阵与输入图像进行相乘可得到校正后的图像 |
| reserved | 预留字段,默认输出为0。 |
父主题: ISP系统控制及3A算法注册
hi_slave_dev
说明
定义从信号设备号。
定义
typedef hi_s32 hi_slave_dev;
父主题: ISP系统控制及3A算法注册
hi_isp_slave_sns_sync
说明
定义从模式 sensor 同步信号配置。
定义
typedef struct {
union {
struct {
hi_u32 bit16_reserved : 16;
hi_u32 bit_h_inv : 1;
hi_u32 bit_v_inv : 1;
hi_u32 bit12_reserved : 12;
hi_u32 bit_h_enable : 1;
hi_u32 bit_v_enable : 1;
} bits;
hi_u32 bytes;
} cfg;
hi_u32 vs_time;
hi_u32 hs_time;
hi_u32 vs_cyc;
hi_u32 hs_cyc;
hi_u32 hs_dly_cyc;
hi_u32 slave_mode_time;
} hi_isp_slave_sns_sync;
成员
| 成员名称 | 描述 |
|---|---|
| bit16_reserved | 保留字段。 |
| bit_h_inv | XHS极性配置。 - 0:正极; - 1 :负极。 |
| bit_v_inv | XVS极性配置。 - 0:正极; - 1 :负极。 |
| bit12_reserved | 保留字段。 |
| bit_h_enable | XHS输出使能。 |
| bit_v_enable | XVS输出使能。 |
| vs_time | XVS信号周期,单位:sensor输入时钟周期。 |
| hs_time | XHS信号周期,单位:sensor输入时钟周期。 |
| vs_cyc | XVS有效电平宽度,单位:sensor输入时钟周期。 |
| hs_cyc | XHS有效电平宽度,单位:sensor 输入时钟周期。 |
| hs_dly_cyc | XHS脉冲输出相对XVS脉冲的延迟周期配置,单位:sensor输入时钟周期。 |
| slave_mode_time | Sensor从模式时序配置选择寄存器: - 0:选择SENSOR0 timing配置; - 1:选择SENSOR1 timing配置; - 2:选择SENSOR2 timing配置; - 3:选择SENSOR3 timing配置。 |
注意事项
如图 2-4~图 2-6 所示,说明了同步信号发生模块配置参数的含义。
图2-4 同步信号配置时序图

图2-5 同步信号极性翻转

图2-6 同步信号使能

父主题: ISP系统控制及3A算法注册
hi_isp_3a_alg_lib
说明
定义AE/AWB算法库结构体。
定义
typedef struct {
hi_s32 id;
hi_char lib_name[HI_ISP_ALG_LIB_NAME_SIZE_MAX];
} hi_isp_3a_alg_lib;
成员
| 成员名称 | 描述 |
|---|---|
| id | 算法库实例的Id,用以支持运行同一个算法库的多个实例 |
| lib_name | 标识算法库名称的字符数组,用以区分不同的算法库。 HI_ISP_ALG_LIB_NAME_SIZE_MAX用于定义3A算法库名称的最大字符数,表示20。 |
父主题: ISP系统控制及3A算法注册
hi_isp_ae_accuracy_type
说明
定义曝光时间、增益的精度类型的枚举。
定义
typedef enum {
HI_ISP_AE_ACCURACY_DB = 0,
HI_ISP_AE_ACCURACY_LINEAR,
HI_ISP_AE_ACCURACY_TABLE,
HI_ISP_AE_ACCURACY_BUTT,
} hi_isp_ae_accuracy_type;
成员
| 成员名称 | 描述 |
|---|---|
| HI_ISP_AE_ACCURACY_DB | DB精度类型。 DB精度指的是增益的倍数以倍增的形式增加。例如,sensor支持的again 为0db,0.3db,0.6db……这种情况下,精度类型可以设定为HI_ISP_AE_ACCURACY_DB,精度值设置为0.3,在这种精度下,again为 80,则表示80*0.3db=24db,24db是16倍增益;再例如,sensor支持的again为1倍,2倍,4倍,8倍……这种情况下,对应为db则为0db,6db,12db,18db,所以精度类型设定为HI_ISP_AE_ACCURACY_DB,精度值设置为6。由于AE算法内部实现线性转DB时计算精度存在误差,当DB精度较高(小于1)时,建议采用表格精度来实现。 |
| HI_ISP_AE_ACCURACY_LINEAR | 线性精度类型。 线性精度指的是增益的倍数均匀增加。例如,sensor能支持的again为 1 倍,1(1+1/16)倍,1(1+2/16)倍……这种情况下,精度类型可以设定为HI_ISP_AE_ACCURACY_LINEAR,精度值设置为0.0625,在这种精度下,again为32则表示32*0.0625= 2倍增益。 |
| HI_ISP_AE_ACCURACY_TABLE | 表格类型。 表格精度指增益的倍数是通过查表的形式获得,表格统一使用10bit精度,即1024表示1倍增益。当某些sensor的增益值的增加规律不线性或者DB精度较高时,可以使用表格精度方式,AE算法计算出需要的模拟增益/数字增益的数值,用查询sensor增益表格中最接近的值作为数字增益/模拟增益的值。 使用该模式时,需要相应的初始化回调结构体hi_isp_ae_sensor_exp_func 中的回调函数。 |
父主题: ISP系统控制及3A算法注册
hi_isp_ae_accuracy
说明
定义曝光时间、增益的精度的结构体。
定义
typedef struct {
hi_isp_ae_accuracy_type accu_type;
float accuracy;
float offset;
} hi_isp_ae_accuracy;
成员
| 成员名称 | 描述 |
|---|---|
| accu_type | 精度类型。 |
| accuracy | 精度值。 |
| offset | 曝光时间的偏移量,支持正负偏移量设置,以行为单位,该值配置与sensor强相关。 |
注意事项
- 曝光时间的精度通常都是线性的,都是以行为单位。若曝光时间为线性精度,精度accuracy为大于1的整数,则意味着AE计算出来的曝光行数只能为最小曝光时间加上accuracy的整数倍。该功能可用于计算某些sensor WDR模式下的长/ 短帧曝光时间,如某些sensor曝光行数必须为2n+1,则可以配置最小曝光时间为1或3,配置accuracy为2。
- 曝光时间与sensor增益保持线性关系是AE曝光量分配的前提,即认为曝光量一定的情况下,曝光时间和sensor增益可以相互转换而保持图像亮度基本不变。比如说曝光量为4096,那么分配为曝光时间(2)*增益(2048),也可以分配为曝光时间(4)*增益(1024),这两种情况下图像亮度应该基本不变。若不满足这种线性关系,在高亮环境下,由于曝光时间很短,1行曝光时间的变化也容易使画面发生闪烁。某些sensor,如Panasoni MN34220采用1080p@30fps的初始化序列配置时,曝光时间必须偏移0.8018 行之后才与sensor增益有线性关系,因此增加了offset这个变量,它为float型变量,以行为单位,将offset设置成 0.8018, AE 算法内部即可完成偏移处理。一般sensor的曝光时间和增益不存在这种偏移关系,需在cmos.c中将该值配为0。
父主题: ISP系统控制及3A算法注册
在线提单