From 4c5152843a2af408b5048516c314d32ac4ff6654 Mon Sep 17 00:00:00 2001 From: Daniel Scally Date: Thu, 2 May 2024 14:30:45 +0100 Subject: ipa: rkisp1: Derive rkisp1::algorithms::Agc from AgcMeanLuminance Now that we have a AgcMeanLuminance class that centralises our AEGC algorithm, derive the RkISP1's Agc class from it and plumb in the necessary framework to enable it to be used. For simplicities sake this commit switches the algorithm to use the derived class, but does not remove the bespoke functions at this time. Reviewed-by: Stefan Klug Reviewed-by: Paul Elder Signed-off-by: Daniel Scally Signed-off-by: Kieran Bingham --- src/ipa/rkisp1/algorithms/agc.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src/ipa/rkisp1/algorithms/agc.h') diff --git a/src/ipa/rkisp1/algorithms/agc.h b/src/ipa/rkisp1/algorithms/agc.h index fb82a33f..34504459 100644 --- a/src/ipa/rkisp1/algorithms/agc.h +++ b/src/ipa/rkisp1/algorithms/agc.h @@ -14,18 +14,22 @@ #include +#include "libipa/agc_mean_luminance.h" +#include "libipa/histogram.h" + #include "algorithm.h" namespace libcamera { namespace ipa::rkisp1::algorithms { -class Agc : public Algorithm +class Agc : public Algorithm, public AgcMeanLuminance { public: Agc(); ~Agc() = default; + int init(IPAContext &context, const YamlObject &tuningData) override; int configure(IPAContext &context, const IPACameraSensorInfo &configInfo) override; void queueRequest(IPAContext &context, const uint32_t frame, @@ -47,10 +51,13 @@ private: double measureBrightness(Span hist) const; void fillMetadata(IPAContext &context, IPAFrameContext &frameContext, ControlList &metadata); + double estimateLuminance(double gain) const override; uint64_t frameCount_; utils::Duration filteredExposure_; + + Span expMeans_; }; } /* namespace ipa::rkisp1::algorithms */ -- cgit v1.2.1