[libcamera-devel] [PATCH] ipa: rkisp1: lsc: Fix integer division error

Kieran Bingham kieran.bingham at ideasonboard.com
Thu Mar 2 19:01:18 CET 2023


Quoting Jacopo Mondi via libcamera-devel (2023-03-02 15:38:52)
> The RkISP1 implementation of the LensShadinCorrection algorithm has been
> made adaptive to the scene color temperature in commit 14c869c00fdd ("ipa:
> rkisp1: Take into account color temperature during LSC algorithm").
> 
> The LSC algorithm interpolates the correction factors using the
> table's reference color temperatures. When calculating the interpolation
> coefficients, an unintended integer division makes both coefficient
> zeros resulting in a completely black image.
> 
> Fix this by type casting to double one of the division operands.
> 

This seems reasonable to me.


Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>

> Fixes: 14c869c00fdd ("ipa: rkisp1: Take into account color temperature during LSC algorithm")
> Signed-off-by: Jacopo Mondi <jacopo.mondi at ideasonboard.com>
> ---
>  src/ipa/rkisp1/algorithms/lsc.cpp | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/src/ipa/rkisp1/algorithms/lsc.cpp b/src/ipa/rkisp1/algorithms/lsc.cpp
> index 3a443e776a53..a7ccedb1ed3b 100644
> --- a/src/ipa/rkisp1/algorithms/lsc.cpp
> +++ b/src/ipa/rkisp1/algorithms/lsc.cpp
> @@ -216,8 +216,8 @@ void LensShadingCorrection::interpolateTable(rkisp1_cif_isp_lsc_config &config,
>                                              const Components &set1,
>                                              const uint32_t ct)
>  {
> -       double coeff0 = (set1.ct - ct) / (set1.ct - set0.ct);
> -       double coeff1 = (ct - set0.ct) / (set1.ct - set0.ct);
> +       double coeff0 = (set1.ct - ct) / static_cast<double>(set1.ct - set0.ct);
> +       double coeff1 = (ct - set0.ct) / static_cast<double>(set1.ct - set0.ct);
> 
>         for (unsigned int i = 0; i < RKISP1_CIF_ISP_LSC_SAMPLES_MAX; ++i) {
>                 for (unsigned int j = 0; j < RKISP1_CIF_ISP_LSC_SAMPLES_MAX; ++j) {
> --
> 2.39.0
>


More information about the libcamera-devel mailing list