summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2024-06-16 00:34:16 +0300
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2024-06-17 16:15:10 +0300
commitea43e056a83fcfcf627669b4e5ee922d97c95d4b (patch)
tree369f9aaad794a4ac6df76496e8b4113a5ecc8b77
parent05d0f952a36c40392a9c8ccf86d3567a64ecba32 (diff)
ipa: rkisp1: agc: Simplify predivider calculation
The condition if (std::pow(std::floor(root), 2) < factor) predivider = static_cast<uint8_t>(std::ceil(root)); else predivider = static_cast<uint8_t>(std::floor(root)); can only be false when the factor's root is an integer. In that case, std::ceil(root) and std::floor(root) will be equal. The computation can thus be simplified by always rounding up. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
-rw-r--r--src/ipa/rkisp1/algorithms/agc.cpp7
1 files changed, 1 insertions, 6 deletions
diff --git a/src/ipa/rkisp1/algorithms/agc.cpp b/src/ipa/rkisp1/algorithms/agc.cpp
index 9f3b59b4..a61201bb 100644
--- a/src/ipa/rkisp1/algorithms/agc.cpp
+++ b/src/ipa/rkisp1/algorithms/agc.cpp
@@ -115,12 +115,7 @@ uint8_t Agc::computeHistogramPredivider(const Size &size,
int count = mode == RKISP1_CIF_ISP_HISTOGRAM_MODE_RGB_COMBINED ? 3 : 1;
double factor = size.width * size.height * count / 65536.0;
double root = std::sqrt(factor);
- uint8_t predivider;
-
- if (std::pow(std::floor(root), 2) < factor)
- predivider = static_cast<uint8_t>(std::ceil(root));
- else
- predivider = static_cast<uint8_t>(std::floor(root));
+ uint8_t predivider = static_cast<uint8_t>(std::ceil(root));
return std::clamp<uint8_t>(predivider, 3, 127);
}