[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