下载
中文
注册

hi_isp_awb_attr_ex

说明

定义自动白平衡扩展属性。

定义

typedef struct { 
    hi_u8  tolerance; 
    hi_u8  zone_radius; 
    hi_u16 curve_l_limit;  
    hi_u16 curve_r_limit;  
    hi_bool  extra_light_en; 
    hi_isp_awb_extra_light_source_info light_info[HI_ISP_AWB_LS_NUM]; 
    hi_isp_awb_in_out_attr in_or_out; 
    hi_bool multi_light_source_en; 
    hi_isp_awb_multi_ls_type multi_ls_type; 
    hi_u16  multi_ls_scaler;
    hi_u16  multi_ct_bin[HI_ISP_AWB_MULTI_CT_NUM];   
    hi_u16  multi_ct_wt[HI_ISP_AWB_MULTI_CT_NUM];   
    hi_bool fine_tun_en;    
    hi_u8 fine_tun_strength;
} hi_isp_awb_attr_ex;

成员

成员名称

描述

tolerance

自动白平衡调整的偏差范围,检测误差在门限范围内时,AWB不动作。

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

zone_radius

自动白平衡统计中对像素分类时用的距离范围。该值越小,AWB精度越高,但会降低 AWB算法稳定性。

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

curve_l_limit

自动白平衡色温曲线的左边界限。取值范围:[0x0,0x100]

curve_r_limit

自动白平衡色温曲线的右边界限。取值范围:[0x100,0xFFF]

extra_light_en

自动白平衡计算时是否考虑色温曲线外的独立光源点。

取值范围:

  • HI_FALSE: 关闭
  • HI_TRUE: 开启

light_info[HI_ISP_AWB_LS_NUM]

色温曲线外的独立光源点的信息, 最多可以添加 4 个。

#define HI_ISP_AWB_LS_NUM    4

in_or_out

自动白平衡对场景做室内外判断的参数。

multi_light_source_en

自动白平衡检测当前场景是否为混合光源,根据混合光源程度调整饱和度或CCM。

取值范围:

  • HI_FALSE: 关闭
  • HI_TRUE: 开启

multi_ls_type

混合光源调整策略选择,支持调整饱和度或CCM。

取值范围:

  • AWB_MULTI_LS_SAT:调整饱和度
  • AWB_MULTI_LS_CCM:调整CCM

multi_ls_scaler

混合光源下,饱和度或CCM最大调整幅度。实际调整幅度还和场景混合光源程度有关。

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

multi_ct_bin[HI_ISP_AWB_MULTI_CT_NUM]

混合光源下的色温分段参数。

取值范围:[0x0, 0xFFFF],要求为单调递增序列。

#define HI_ISP_AWB_MULTI_CT_NUM    8

multi_ct_wt[HI_ISP_AWB_MULTI_CT_NUM]

混合光源下的色温权重参数。

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

#define HI_ISP_AWB_MULTI_CT_NUM    8

fine_tun_en

自动白平衡特殊色检测开关,包括肤色检测等。

取值范围:

  • HI_FALSE: 关闭
  • HI_TRUE: 开启

fine_tun_strength

肤色、蓝色等单色检测的强度。仅在fine_tun_en使能时有效。取值范围:[0x0, 0xFF]

图 色温曲线的参数示意

图 混合光源场景色温权重设置示例说明(n 为色温分段点个数)

注意事项

  • tolerance是AWB的灵敏度参数。该值为0时,AWB系数实时更新,CPU占用较高;该值较大时,AWB在检测到环境色温变化时再更新AWB系数,CPU占用较低,但在环境色温微调时,AWB可能出现轻微的偏色。推荐室外应用时tolerance置为 0,室内应用时置为 2。
  • zone_radius是选择光源环境白色块的色差半径。zone_radius越大,白色块的限制条件越宽,找到的白色块较多,稳定性稍好,精度稍低;zone_radius越小,白色块的限制条件越严格,找到的白色块较少,AWB精度更高。在混合光源的应用场景,推荐zone_radius比普通场景稍大。
  • curve_l_limit取值<=0x100, curve_r_limit取值>=0x100。curve_l_limit和curve_r_limit两个参数用来排除颜色块。如图4-3 所示,curve_l_limit排除了左侧的阴影区域,curve_l_limit排除了右侧的阴影区域。
  • AWB算法支持在色温曲线外,再增加独立光源点信息,提升特殊光源下的AWB表现。
  • multi_light_source_en使能后,AWB算法判断场景是否混合光源,在混合光源场景,自动降低饱和度或调整CCM,以减弱偏色程度。最大调整幅度由multi_ls_scaler决定。调整CCM方式会改变色调。
  • multi_ls_type= HI_ISP_AWB_MULTI_LS_SAT时,调整饱和度来改善混合光源场景的偏色。multi_ls_scaler/0x100表示饱和度增益系数的下限。multi_ls_scaler=0xC0,表示饱和度的增益系数下限是0xC0/0x100 = 0.75,图像饱和度的波动范围是[0.75, 1.0]( 1.0 表示关闭 multi_light_source_en 功能的图像饱和度); multi_ls_scaler=0x0,表示饱和度的增益系数下限是 0x0/0x100 =0,图像饱和度的波动范围是[0, 1],在混合光源下图像可能变黑白。multi_ls_scaler取值越小,图像饱和度的波动范围越大,颜色稳定性下降。
  • multi_ls_type= HI_ISP_AWB_MULTI_LS_CCM时,调整CCM来改善混合光源场景的偏色。multi_ls_scaler/0x100表示CCM 的调整幅度,取值越大,图像饱和度越低。multi_ls_scaler=0xC0,表示CCM的最大调整幅度为0xC0; multi_ls_scaler=0x0,表示CCM的最大调整幅度为0,等效于multi_light_source_en=0。
  • 昇腾AWB算法在WDR模式自动关闭混合光源判断功能。
  • multi_ct_bin、multi_ct_wt两组参数的合理配置,可以改善混合光源高色温或低色温区域颜色表现。在非混合光源场景,参数配置不生效。图4-3说明色温和权重配置的映射关系。
  • 如果混合光源场景希望使能色温权重来改善AWB表现,但不做饱和度或CCM调解,可配置如下:multi_light_source_en=HI_TRUE, multi_ls_type=HI_ISP_AWB_MULTI_LS_SAT,multi_ls_scaler=0x100。
  • fine_tun_en打开,AWB会自动检测肤色等特殊色,改善肤色场景AWB表现,提高AWB精度。但可能在蓝色背景+3500K 光源时发生误判,导致图像轻微偏黄。
  • fine_tun_strength调整肤色检测的强度,取值越大,肤色场景AWB表现越好,但肤色误判时的副作用越明显。推荐采用默认值0x80。