[PATCH 07/12] ipa: rkisp1: agc: Don't update histogram parameters unnecessarily

Laurent Pinchart laurent.pinchart at ideasonboard.com
Sun Jun 16 18:39:05 CEST 2024


The ISP histogram parameters depends on the AE metering mode, but not on
the other AE algorithm controls. The exposure mode, constraints mode and
frame duration limits influence the behaviour of the algorithm, but not
the histogram computation parameters. Update the histogram parameters
only when AE metering mode changes.

Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
---
 src/ipa/rkisp1/algorithms/agc.cpp | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/src/ipa/rkisp1/algorithms/agc.cpp b/src/ipa/rkisp1/algorithms/agc.cpp
index 9dac60bdb24e..9f3b59b45f95 100644
--- a/src/ipa/rkisp1/algorithms/agc.cpp
+++ b/src/ipa/rkisp1/algorithms/agc.cpp
@@ -261,26 +261,21 @@ void Agc::queueRequest(IPAContext &context,
 	frameContext.agc.meteringMode = agc.meteringMode;
 
 	const auto &exposureMode = controls.get(controls::AeExposureMode);
-	if (exposureMode) {
-		frameContext.agc.update = agc.exposureMode != *exposureMode;
+	if (exposureMode)
 		agc.exposureMode =
 			static_cast<controls::AeExposureModeEnum>(*exposureMode);
-	}
 	frameContext.agc.exposureMode = agc.exposureMode;
 
 	const auto &constraintMode = controls.get(controls::AeConstraintMode);
-	if (constraintMode) {
-		frameContext.agc.update = agc.constraintMode != *constraintMode;
+	if (constraintMode)
 		agc.constraintMode =
 			static_cast<controls::AeConstraintModeEnum>(*constraintMode);
-	}
 	frameContext.agc.constraintMode = agc.constraintMode;
 
 	const auto &frameDurationLimits = controls.get(controls::FrameDurationLimits);
 	if (frameDurationLimits) {
 		utils::Duration maxShutterSpeed =
 			std::chrono::milliseconds((*frameDurationLimits).back());
-		frameContext.agc.update = agc.maxShutterSpeed != maxShutterSpeed;
 		agc.maxShutterSpeed = maxShutterSpeed;
 	}
 	frameContext.agc.maxShutterSpeed = agc.maxShutterSpeed;
-- 
Regards,

Laurent Pinchart



More information about the libcamera-devel mailing list