下载
中文
注册

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

自动白平衡使能。

取值范围:

  • HI_FALSE: 关闭
  • HI_TRUE: 开启

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

自动白平衡算法的将超出白点范围的增益映射回白点范围内的开关。

取值范围:

  • HI_FALSE: 关闭
  • HI_TRUE: 开启

shift_limit

室内场景或室内外检测关闭时,自动白平衡的白点范围参数。

取值范围:[0x0, 0xFF]

gain_norm_en

自动白平衡算法的增益归一化的开关。使能后,可提高低照、低色温下的信噪比。

取值范围:

  • HI_FALSE: 关闭
  • HI_TRUE: 开启

natural_cast_en

低色温下AWB风格喜好开关。

取值范围:

  • HI_FALSE: 关闭
  • HI_TRUE: 开启

cb_cr_track

Bayer域统计信息与ISO的联动参数。

luma_hist

白平衡的亮度直方图统计参数。

awb_zone_wt_en

白平衡的分块权重使能开关。

取值范围:

  • HI_FALSE: 关闭
  • HI_TRUE: 开启

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的干扰。