diff options
author | Daniel Scally <dan.scally@ideasonboard.com> | 2024-05-02 14:30:45 +0100 |
---|---|---|
committer | Kieran Bingham <kieran.bingham@ideasonboard.com> | 2024-05-08 12:54:56 +0100 |
commit | 4c5152843a2af408b5048516c314d32ac4ff6654 (patch) | |
tree | 5fef61f7eb9317bde5ab1d5c6857240243658a18 /src/ipa/rkisp1/algorithms/agc.h | |
parent | 9b9a7b3f32c85159987d447096e2e1541c024b69 (diff) |
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 <stefan.klug@ideasonboard.com>
Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
Signed-off-by: Daniel Scally <dan.scally@ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Diffstat (limited to 'src/ipa/rkisp1/algorithms/agc.h')
-rw-r--r-- | src/ipa/rkisp1/algorithms/agc.h | 9 |
1 files changed, 8 insertions, 1 deletions
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 <libcamera/geometry.h> +#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<const uint32_t> hist) const; void fillMetadata(IPAContext &context, IPAFrameContext &frameContext, ControlList &metadata); + double estimateLuminance(double gain) const override; uint64_t frameCount_; utils::Duration filteredExposure_; + + Span<const uint8_t> expMeans_; }; } /* namespace ipa::rkisp1::algorithms */ |