[v4,05/19] libipa: exposure_mode_helper: Remove double calculation of lastStageGain
diff mbox series

Message ID 20250918144333.108695-6-stefan.klug@ideasonboard.com
State New
Headers show
Series
  • Implement WDR algorithm
Related show

Commit Message

Stefan Klug Sept. 18, 2025, 2:43 p.m. UTC
lastStageGain gets recalculated unconditionally even though it is the
stageGain of the last stage. Refactor for increased simplicity and
efficiency.

Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com>
Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>

---

Changes in v4:
- Collected tag

Changes in v3:
- Collected tags
---
 src/ipa/libipa/exposure_mode_helper.cpp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Patch
diff mbox series

diff --git a/src/ipa/libipa/exposure_mode_helper.cpp b/src/ipa/libipa/exposure_mode_helper.cpp
index b776a031b441..e806731047cf 100644
--- a/src/ipa/libipa/exposure_mode_helper.cpp
+++ b/src/ipa/libipa/exposure_mode_helper.cpp
@@ -198,10 +198,10 @@  ExposureModeHelper::splitExposure(utils::Duration exposure) const
 
 	utils::Duration exposureTime;
 	double stageGain = 1.0;
+	double lastStageGain = 1.0;
 	double gain;
 
 	for (unsigned int stage = 0; stage < gains_.size(); stage++) {
-		double lastStageGain = stage == 0 ? 1.0 : clampGain(gains_[stage - 1]);
 		utils::Duration stageExposureTime = clampExposureTime(exposureTimes_[stage]);
 		stageGain = clampGain(gains_[stage]);
 
@@ -228,6 +228,8 @@  ExposureModeHelper::splitExposure(utils::Duration exposure) const
 
 			return { exposureTime, gain, exposure / (exposureTime * gain) };
 		}
+
+		lastStageGain = stageGain;
 	}
 
 	/*