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>
This commit is contained in:
parent
05d0f952a3
commit
ea43e056a8
1 changed files with 1 additions and 6 deletions
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue