[PATCH v7 18/18] libcamera: software_isp: Update black level only on exposure changes

Umang Jain umang.jain at ideasonboard.com
Thu Sep 26 21:27:52 CEST 2024


Hi Milan

Thank you for the patch

On 21/09/24 12:01 am, Milan Zamazal wrote:
> The black level is likely to get updated, if ever, only after exposure
> or gain changes.  Don't compute its possible updates if exposure and
> gain are unchanged.
>
> It's probably not worth trying to implement something more
> sophisticated.  Better to spend the effort on supporting tuning files.
>
> Signed-off-by: Milan Zamazal <mzamazal at redhat.com>
> Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>

Reviewed-by: Umang Jain <umang.jain at ideasonboard.com>
> ---
>   src/ipa/simple/algorithms/blc.cpp | 9 ++++++++-
>   src/ipa/simple/algorithms/blc.h   | 4 ++++
>   2 files changed, 12 insertions(+), 1 deletion(-)
>
> diff --git a/src/ipa/simple/algorithms/blc.cpp b/src/ipa/simple/algorithms/blc.cpp
> index 755108b0..b9f2aaa6 100644
> --- a/src/ipa/simple/algorithms/blc.cpp
> +++ b/src/ipa/simple/algorithms/blc.cpp
> @@ -30,10 +30,15 @@ int BlackLevel::configure(IPAContext &context,
>   
>   void BlackLevel::process(IPAContext &context,
>   			 [[maybe_unused]] const uint32_t frame,
> -			 [[maybe_unused]] IPAFrameContext &frameContext,
> +			 IPAFrameContext &frameContext,
>   			 const SwIspStats *stats,
>   			 [[maybe_unused]] ControlList &metadata)
>   {
> +	if (frameContext.sensor.exposure == exposure_ &&
> +	    frameContext.sensor.gain == gain_) {
> +		return;
> +	}
> +
>   	const SwIspStats::Histogram &histogram = stats->yHistogram;
>   
>   	/*
> @@ -54,6 +59,8 @@ void BlackLevel::process(IPAContext &context,
>   		seen += histogram[i];
>   		if (seen >= pixelThreshold) {
>   			context.activeState.blc.level = i * histogramRatio;
> +			exposure_ = frameContext.sensor.exposure;
> +			gain_ = frameContext.sensor.gain;
>   			LOG(IPASoftBL, Debug)
>   				<< "Auto-set black level: "
>   				<< i << "/" << SwIspStats::kYHistogramSize
> diff --git a/src/ipa/simple/algorithms/blc.h b/src/ipa/simple/algorithms/blc.h
> index 49bdcc61..828ad8b1 100644
> --- a/src/ipa/simple/algorithms/blc.h
> +++ b/src/ipa/simple/algorithms/blc.h
> @@ -24,6 +24,10 @@ public:
>   		     IPAFrameContext &frameContext,
>   		     const SwIspStats *stats,
>   		     ControlList &metadata) override;
> +
> +private:
> +	uint32_t exposure_;
> +	double gain_;
>   };
>   
>   } /* namespace ipa::soft::algorithms */



More information about the libcamera-devel mailing list