ipa: rkisp1: Port to the new AEGC controls

The newly introduced controls to drive the AEGC algorithm allow
controlling the computation of the exposure time and analogue gain
separately.

Augument the RkISP1 AEGC implementation to handle the exposure and gain
controls separately using the new controls.

Signed-off-by: Paul Elder <paul.elder@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Stefan Klug <stefan.klug@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
Paul Elder
2025-01-13 15:59:40 -06:00
committed by Laurent Pinchart
parent c45a2682c3
commit 3d23f325fd
3 changed files with 133 additions and 30 deletions
+20 -4
View File
@@ -165,8 +165,11 @@ namespace libcamera::ipa::rkisp1 {
* \var IPAActiveState::agc.automatic.gain
* \brief Automatic analogue gain multiplier
*
* \var IPAActiveState::agc.autoEnabled
* \brief Manual/automatic AGC state as set by the AeEnable control
* \var IPAActiveState::agc.autoExposureEnabled
* \brief Manual/automatic AGC state (exposure) as set by the ExposureTimeMode control
*
* \var IPAActiveState::agc.autoGainEnabled
* \brief Manual/automatic AGC state (gain) as set by the AnalogueGainMode control
*
* \var IPAActiveState::agc.constraintMode
* \brief Constraint mode as set by the AeConstraintMode control
@@ -289,8 +292,11 @@ namespace libcamera::ipa::rkisp1 {
*
* The gain should be adapted to the sensor specific gain code before applying.
*
* \var IPAFrameContext::agc.autoEnabled
* \brief Manual/automatic AGC state as set by the AeEnable control
* \var IPAFrameContext::agc.autoExposureEnabled
* \brief Manual/automatic AGC state (exposure) as set by the ExposureTimeMode control
*
* \var IPAFrameContext::agc.autoGainEnabled
* \brief Manual/automatic AGC state (gain) as set by the AnalogueGainMode control
*
* \var IPAFrameContext::agc.constraintMode
* \brief Constraint mode as set by the AeConstraintMode control
@@ -306,6 +312,16 @@ namespace libcamera::ipa::rkisp1 {
*
* \var IPAFrameContext::agc.updateMetering
* \brief Indicate if new ISP AGC metering parameters need to be applied
*
* \var IPAFrameContext::agc.autoExposureModeChange
* \brief Indicate if autoExposureEnabled has changed from true in the previous
* frame to false in the current frame, and no manual exposure value has been
* supplied in the current frame.
*
* \var IPAFrameContext::agc.autoGainModeChange
* \brief Indicate if autoGainEnabled has changed from true in the previous
* frame to false in the current frame, and no manual gain value has been
* supplied in the current frame.
*/
/**