mirror of
https://git.libcamera.org/libcamera/libcamera.git
synced 2025-07-13 15:29:45 +03:00
ipa: rkisp1: lsc: Fix integer division error
The RkISP1 implementation of the LensShadingCorrection algorithm has been made adaptive to the scene color temperature in commit14c869c00f
("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:14c869c00f
("ipa: rkisp1: Take into account color temperature during LSC algorithm") Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
This commit is contained in:
parent
a146e05125
commit
cde9293cf9
1 changed files with 2 additions and 2 deletions
|
@ -216,8 +216,8 @@ void LensShadingCorrection::interpolateTable(rkisp1_cif_isp_lsc_config &config,
|
||||||
const Components &set1,
|
const Components &set1,
|
||||||
const uint32_t ct)
|
const uint32_t ct)
|
||||||
{
|
{
|
||||||
double coeff0 = (set1.ct - ct) / (set1.ct - set0.ct);
|
double coeff0 = (set1.ct - ct) / static_cast<double>(set1.ct - set0.ct);
|
||||||
double coeff1 = (ct - set0.ct) / (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 i = 0; i < RKISP1_CIF_ISP_LSC_SAMPLES_MAX; ++i) {
|
||||||
for (unsigned int j = 0; j < RKISP1_CIF_ISP_LSC_SAMPLES_MAX; ++j) {
|
for (unsigned int j = 0; j < RKISP1_CIF_ISP_LSC_SAMPLES_MAX; ++j) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue