[PATCH 2/3] ipa: rkisp1: Refer to integration time rather than shutter speed

Paul Elder paul.elder at ideasonboard.com
Fri Apr 19 05:00:01 CEST 2024


On Thu, Apr 18, 2024 at 01:46:31PM +0100, Daniel Scally wrote:
> Multiple variables referencing shutter speed in the RkISP1 IPA module
> are in fact calculated and used as integration time. The discrepancy
> is problematic given the minimum shutter speed would produce the max
> integration time.
> 
> Replace references to shutter speed with integration time.
> 
> Signed-off-by: Daniel Scally <dan.scally at ideasonboard.com>

Reviewed-by: Paul Elder <paul.elder at ideasonboard.com>

> ---
>  src/ipa/rkisp1/algorithms/agc.cpp | 4 ++--
>  src/ipa/rkisp1/ipa_context.cpp    | 8 ++++----
>  src/ipa/rkisp1/ipa_context.h      | 4 ++--
>  src/ipa/rkisp1/rkisp1.cpp         | 8 ++++----
>  4 files changed, 12 insertions(+), 12 deletions(-)
> 
> diff --git a/src/ipa/rkisp1/algorithms/agc.cpp b/src/ipa/rkisp1/algorithms/agc.cpp
> index 27b6f2c1..13f54398 100644
> --- a/src/ipa/rkisp1/algorithms/agc.cpp
> +++ b/src/ipa/rkisp1/algorithms/agc.cpp
> @@ -95,8 +95,8 @@ int Agc::configure(IPAContext &context, const IPACameraSensorInfo &configInfo)
>  	context.configuration.agc.measureWindow.v_size = 3 * configInfo.outputSize.height / 4;
>  
>  	/* \todo Run this again when FrameDurationLimits is passed in */
> -	configureExposureModeHelpers(context.configuration.sensor.minShutterSpeed,
> -				     context.configuration.sensor.maxShutterSpeed,
> +	configureExposureModeHelpers(context.configuration.sensor.minIntegrationTime,
> +				     context.configuration.sensor.maxIntegrationTime,
>  				     context.configuration.sensor.minAnalogueGain,
>  				     context.configuration.sensor.maxAnalogueGain);
>  
> diff --git a/src/ipa/rkisp1/ipa_context.cpp b/src/ipa/rkisp1/ipa_context.cpp
> index 070834fa..991ca1c2 100644
> --- a/src/ipa/rkisp1/ipa_context.cpp
> +++ b/src/ipa/rkisp1/ipa_context.cpp
> @@ -78,11 +78,11 @@ namespace libcamera::ipa::rkisp1 {
>   * \var IPASessionConfiguration::sensor
>   * \brief Sensor-specific configuration of the IPA
>   *
> - * \var IPASessionConfiguration::sensor.minShutterSpeed
> - * \brief Minimum shutter speed supported with the sensor
> + * \var IPASessionConfiguration::sensor.minIntegrationTime
> + * \brief Minimum integration time supported with the sensor
>   *
> - * \var IPASessionConfiguration::sensor.maxShutterSpeed
> - * \brief Maximum shutter speed supported with the sensor
> + * \var IPASessionConfiguration::sensor.maxIntegrationTime
> + * \brief Maximum integration time supported with the sensor
>   *
>   * \var IPASessionConfiguration::sensor.minAnalogueGain
>   * \brief Minimum analogue gain supported with the sensor
> diff --git a/src/ipa/rkisp1/ipa_context.h b/src/ipa/rkisp1/ipa_context.h
> index 256b75eb..3405a260 100644
> --- a/src/ipa/rkisp1/ipa_context.h
> +++ b/src/ipa/rkisp1/ipa_context.h
> @@ -43,8 +43,8 @@ struct IPASessionConfiguration {
>  	} lsc;
>  
>  	struct {
> -		utils::Duration minShutterSpeed;
> -		utils::Duration maxShutterSpeed;
> +		utils::Duration minIntegrationTime;
> +		utils::Duration maxIntegrationTime;
>  		double minAnalogueGain;
>  		double maxAnalogueGain;
>  
> diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp
> index d8610095..15919d3f 100644
> --- a/src/ipa/rkisp1/rkisp1.cpp
> +++ b/src/ipa/rkisp1/rkisp1.cpp
> @@ -245,14 +245,14 @@ int IPARkISP1::configure(const IPAConfigInfo &ipaConfig,
>  
>  	/*
>  	 * When the AGC computes the new exposure values for a frame, it needs
> -	 * to know the limits for shutter speed and analogue gain.
> +	 * to know the limits for integration time and analogue gain.
>  	 * As it depends on the sensor, update it with the controls.
>  	 *
> -	 * \todo take VBLANK into account for maximum shutter speed
> +	 * \todo take VBLANK into account for maximum integration time
>  	 */
> -	context_.configuration.sensor.minShutterSpeed =
> +	context_.configuration.sensor.minIntegrationTime =
>  		minExposure * context_.configuration.sensor.lineDuration;
> -	context_.configuration.sensor.maxShutterSpeed =
> +	context_.configuration.sensor.maxIntegrationTime =
>  		maxExposure * context_.configuration.sensor.lineDuration;
>  	context_.configuration.sensor.minAnalogueGain = camHelper_->gain(minGain);
>  	context_.configuration.sensor.maxAnalogueGain = camHelper_->gain(maxGain);
> -- 
> 2.34.1
> 


More information about the libcamera-devel mailing list