hi_isp_awb_extra_light_source_info

Description

Defines the information about a separate illuminant.

Definition

typedef struct { 
    hi_u16 white_r_gain; 
    hi_u16 white_b_gain; 
    hi_u16 exp_quant; 
    hi_u8  light_status;
    hi_u8  radius;
} hi_isp_awb_extra_light_source_info;

Members

Member

Description

white_r_gain

Cr coordinate of the center of the region to be added or deleted (8-bit decimal precision)

Value range: [0x0, 0xFFF]

white_b_gain

Cb coordinate of the center of the region to be added or deleted (8-bit decimal precision)

Value range: [0x0, 0xFFF]

exp_quant

Reserved

light_status

Illuminant status

0: disabled

1: illuminant added

2: interference color deleted

radius

Radius of the region to be added or deleted

Value range: [0x0, 0xFF]

Restrictions

  • The independent illuminant can implement the following functions: 1). Specify a region in the user-defined Cb/Cr coordinates as the white color under a special illuminant and add it as an independent illuminant; 2). Delete the region if it is specified as an interference color under a special illuminant.
  • You can add or delete a region by setting light_status. When light_status is set to 1, a special illuminant outside the corrected Planckian curve is added to optimize the color effect under this illuminant while exerting no effect on the color effect under other illuminants. When light_status is set to 2, an interference color (for example, complexion color, green, or sky blue) under a specific illuminant can be deleted.
  • You are advised to delete an interference color only to optimize the color effect under a specific illuminant. Otherwise, the color effect under other illuminants will be affected. At the Cb/Cr coordinates, complexion under the 5500K illuminant has large overlaps with the white color under the 3500K illuminant. If the interference of complexion is removed in the 5500K environment, a color cast occurs under the 3500K illuminant.
  • Values of white_r_gain and white_b_gain: Rgain and Bgain calibrated by the calibration tool Static WB from the ColorChecker Raw data captured under an illuminant is the coordinate values of white_r_gain and white_b_gain. If you want to delete a region corresponding to an interference color, you can determine the values of white_r_gain and white_b_gain by performing static WB correction on this region.
  • You can set radius as required. To add an independent illuminant, set the value in the range of [0x8, 0x10]. To delete an interference color, set it to a proper value to prevent the circular region whose center cannot fall within the range of [white_r_gain, white_b_gain] and radius cannot be the value of radius from being overlapped the Plankcian curve. When the radius is set to a large value (covering most statistical blocks in the scenario) during illuminant addition or interference color deletion, the effect becomes invalid or even counterproductive.
  • Currently at most four independent illuminants are supported. The four illuminants must be completely independent of each other. Note that a single point within the Cb/Cr coordinates cannot be specified as an independent illuminant and an interference color at the same time.