hi_isp_awb_attr
说明
定义ISP自动白平衡属性。
定义
typedef struct { hi_bool enable; hi_u16 ref_color_temp; hi_u16 static_wb[HI_ISP_BAYER_CHN_NUM]; hi_s32 curve_para[HI_ISP_AWB_CURVE_PARA_NUM]; hi_isp_awb_alg_type alg_type; hi_u8 rg_strength; hi_u8 bg_strength; hi_u16 speed; hi_u16 zone_sel; hi_u16 high_color_temp; hi_u16 low_color_temp; hi_isp_awb_ct_limit_attr ct_limit; hi_bool shift_limit_en; hi_u8 shift_limit; hi_bool gain_norm_en; hi_bool natural_cast_en; hi_isp_awb_cbcr_track_attr cb_cr_track; hi_isp_awb_lum_histgram_attr luma_hist; hi_bool awb_zone_wt_en; hi_u8 zone_wt[HI_ISP_AWB_ZONE_NUM]; } hi_isp_awb_attr;
成员
成员名称 |
描述 |
---|---|
enable |
自动白平衡使能。 取值范围:
|
ref_color_temp |
校正静态白平衡系数的光源色温值。 推荐选用5000K附近光源进行静态白平衡校正。 取值范围:[0x0, 0xFFFF]。 |
static_wb |
静态白平衡系数,由AWB标定工具给出。 取值范围:[0x0, 0xFFF]。 #define HI_ISP_BAYER_CHN_NUM 4 |
curve_para |
校准曲线的系数。取值范围:curve_para [3]!=0; curve_para [4]=128。 #define HI_ISP_AWB_CURVE_PARA_NUM 6 |
alg_type |
自动白平衡算法类型选择,支持HI_ISP_AWB_ALG_LOWCOST和HI_ISP_AWB_ALG_ADVANCE可选。HI_ISP_AWB_ALG_LOWCOST CPU占用较少,对光源的适应性较好。HI_ISP_AWB_ALG_ADVANCE提升了AWB精度。 取值范围:HI_ISP_AWB_ALG_LOWCOST、 HI_ISP_AWB_ALG_ADVANCE。 |
rg_strength |
自动白平衡 R 通道校准强度。 取值范围:[0x0, 0xFF]。 |
bg_strength |
自动白平衡 B 通道校准强度。 取值范围:[0x0, 0xFF]。 |
speed |
自动白平衡算法收敛速度,值越大,AWB收敛越快。 取值范围:[0x0, 0xFFF]。 |
zone_sel |
自动白平衡算法全局或分区域计算的选择,取值范围:[0, 255]。 |
high_color_temp |
自动白平衡算法的色温上限,色温上限越大,蓝色物体对AWB的干扰越大。 推荐范围:[8500, 10000]。 |
low_color_temp |
自动白平衡算法的色温下限,色温下限越小,橙色、红色物体对AWB的干扰越大。取值范围:[0x0, high_color_temp)。 |
ct_limit |
白平衡算法环境色温超过预设色温范围后,增益计算模式及手动增益值设定。 |
shift_limit_en |
自动白平衡算法的将超出白点范围的增益映射回白点范围内的开关。 取值范围:
|
shift_limit |
室内场景或室内外检测关闭时,自动白平衡的白点范围参数。 取值范围:[0x0, 0xFF] |
gain_norm_en |
自动白平衡算法的增益归一化的开关。使能后,可提高低照、低色温下的信噪比。 取值范围:
|
natural_cast_en |
低色温下AWB风格喜好开关。 取值范围:
|
cb_cr_track |
Bayer域统计信息与ISO的联动参数。 |
luma_hist |
白平衡的亮度直方图统计参数。 |
awb_zone_wt_en |
白平衡的分块权重使能开关。 取值范围:
|
zone_wt[HI_ISP_AWB_ZONE_NUM] |
白平衡的1024分块权重表,取值范围:[0x0, 0xFF]。 #define HI_ISP_AWB_ZONE_NUM (HI_ISP_AWB_ZONE_ORIG_ROW * HI_ISP_AWB_ZONE_ORIG_COLUMN) |
注意事项
- enable为HI_TRUE时,AWB正常工作,RGB通道增益系数由AWB根据环境色温计算;enable为HI_FALSE时,AWB不工作,RGB通道增益系数固定,为校正的静态白平衡系数。
- ref_color_temp、static_wb、curve_para是用户通过校正工具得到的AWB参数,是AWB准确的前提。更换光学器件后,建议重新校正这三组参数。ref_color_temp是进行静态白平衡校正光源的真实色温,推荐在D50光源下做静态白平衡校正。curve_para[0],curve_para[1],curve_para[2]三个参数确定Planckian曲线,curve_para[3],curve_para[4],curve_para[5]三个参数确定色温曲线,curve_para[4]取值固定为128。
- 自动白平衡通过curve_para等标定参数计算环境色温。在[2500K, 10000K]范围内,色温计算准确度较高,超出以上范围后,色温计算误差较大。
- 自动白平衡R/B通道校准强度,一般情况不建议调整。
可通过调整R/B通道校准强度使AWB校准偏强或者偏弱,0x80表示标准强度。建议rg_strength、bg_strength两个参数取相同值,且小于等于0x80。在低色温场景,校准强度小于0x80时图像偏红,大于0x80时图像偏蓝;在高色温场景,校准强度小于0x80时图像偏蓝,大于0x80时图像偏红。
- speed控制AWB增益的收敛速度。speed越大,切换光源时,AWB收敛的速度越快,但帧间的波动幅度也变大;speed越小,切换光源时,AWB收敛的速度越慢,但帧间的波动幅度变小,稳定性提高。
- zone_sel参数为0或255时,采用了近似灰度世界的算法;zone_sel为其他值时,AWB算法会对所有统计块进行分类筛选,提高AWB精度。
- 自动白平衡算法的色温上限/下限,以Kelvin为单位。
AWB算法支持的最高/最低色温。若实际场景中的色温大于色温上限或小于色温下限,则AWB不能完全恢复,图像会偏向光源色,低色温下偏黄,高色温下偏蓝。
注意:色温计算在高、低色温段误差较大,设置色温上限小于1000K时,可能出现随参数值递增或递减,颜色表现不平滑的现象。
- shift_limit_en决定AWB增益是否向Planckian曲线做映射。shift_limit控制白色块的范围,取值较小时,对光源的支持范围较窄,精度较高;取值较大时,支持更多的光源,精度降低。shift_limit_en仅控制AWB增益是否向Planckian曲线做映射,无论shift_limit_en打开或关闭,shift_limit取值的改变都会影响AWB结果。校正静态白平衡系数的光源色温值,要求在 AWB算法设置的色温上下限范围内。
- gain_norm_en使能,对RGB通道增益进行限制,可以改善低色温、低照度场景的信噪比。
- natural_cast_en使能,低色温下AWB保留光源色,图像颜色更自然。注意在极高ISO场景下,RGB通道增益系数计算的中间值会被内部截断,导致natural_cast_en使能后对最终AWB环境色温计算和RGB通道增益系数结果无影响,相似情况也出现在HI_ISP_AWB_ALG_LOWCOST和HI_ISP_AWB_ALG_ADVANCE切换等场景中。
- 权重表与AWB统计分块的对应顺序如下:
− 非拼接模式下,AWB统计信息分块个数是 32x32,zone_wt[0]对应第一行第一列,zone_wt[1]对应第一行第二列,zone_wt[31]对应第一行第 32 列, zone_wt[32]对应第二行第一列,依次类推。
− 不支持拼接模式下配置AWB统计信息权重。
- 特定应用产品,客户使能awb_zone_wt_en后,可通过设置权重表改变每个区域的权重,优化AWB表现。在shading较严重时,可加大中心区域的权重,保证中间区域AWB准确还原,降低shading对AWB的影响。在行车记录仪应用,感兴趣区域一般在画面的中心偏下区域,可加大此区域的权重,降低天空、树木等区域对AWB的干扰。