summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacopo Mondi <jacopo.mondi@ideasonboard.com>2023-03-02 16:11:45 +0100
committerJacopo Mondi <jacopo.mondi@ideasonboard.com>2023-03-06 17:15:46 +0100
commit83f0ea3bee555ef0fbae8f305e177712b74337b4 (patch)
tree7f0ba1b57e68ae7b10a71461ac2d0a584e8d2683
parentdacf0ef84cf3358473c9b6f22e78aa81d0506d31 (diff)
ipa: rkisp1: lsc: Fix integer division error
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. Fixes: 14c869c00fdd ("ipa: rkisp1: Take into account color temperature during LSC algorithm") Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
-rw-r--r--src/ipa/rkisp1/algorithms/lsc.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/ipa/rkisp1/algorithms/lsc.cpp b/src/ipa/rkisp1/algorithms/lsc.cpp
index 3a443e77..a7ccedb1 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) {