[libcamera-devel] [PATCH v1 4/7] ipa: ipu3: use process method for all algorithms
Jean-Michel Hautbois
jeanmichel.hautbois at ideasonboard.com
Mon Jun 28 22:22:52 CEST 2021
The main goal will be to have the same process() prototype for all
algorithms, each of them would then grab the values needed using a
metadata exchange way (for instance, current analogue gain, shutter time,
or red/blue gains calculated in the AWB algorithm from AGC, etc.).
Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois at ideasonboard.com>
---
src/ipa/ipu3/ipu3.cpp | 2 +-
src/ipa/ipu3/ipu3_awb.cpp | 5 +++++
src/ipa/ipu3/ipu3_awb.h | 3 ++-
3 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/src/ipa/ipu3/ipu3.cpp b/src/ipa/ipu3/ipu3.cpp
index f43f8620..4466391a 100644
--- a/src/ipa/ipu3/ipu3.cpp
+++ b/src/ipa/ipu3/ipu3.cpp
@@ -296,7 +296,7 @@ void IPAIPU3::parseStatistics(unsigned int frame,
agcAlgo_->process(stats, exposure_, gain);
gain_ = camHelper_->gainCode(gain);
- awbAlgo_->calculateWBGains(stats);
+ awbAlgo_->process(stats);
if (agcAlgo_->updateControls())
setControls(frame);
diff --git a/src/ipa/ipu3/ipu3_awb.cpp b/src/ipa/ipu3/ipu3_awb.cpp
index 9b409c8f..a94935c5 100644
--- a/src/ipa/ipu3/ipu3_awb.cpp
+++ b/src/ipa/ipu3/ipu3_awb.cpp
@@ -351,6 +351,11 @@ void IPU3Awb::calculateWBGains(const ipu3_uapi_stats_3a *stats)
}
}
+void IPU3Awb::process(const ipu3_uapi_stats_3a *stats)
+{
+ calculateWBGains(stats);
+}
+
void IPU3Awb::updateWbParameters(ipu3_uapi_params ¶ms, double agcGamma)
{
/*
diff --git a/src/ipa/ipu3/ipu3_awb.h b/src/ipa/ipu3/ipu3_awb.h
index f4100f4a..795e32e3 100644
--- a/src/ipa/ipu3/ipu3_awb.h
+++ b/src/ipa/ipu3/ipu3_awb.h
@@ -33,7 +33,7 @@ public:
~IPU3Awb();
void initialise(ipu3_uapi_params ¶ms, const Size &bdsOutputSize, struct ipu3_uapi_grid_config &bdsGrid);
- void calculateWBGains(const ipu3_uapi_stats_3a *stats);
+ void process(const ipu3_uapi_stats_3a *stats);
void updateWbParameters(ipu3_uapi_params ¶ms, double agcGamma);
private:
@@ -42,6 +42,7 @@ private:
void clearAwbStats();
void awbGreyWorld();
uint32_t estimateCCT(double red, double green, double blue);
+ void calculateWBGains(const ipu3_uapi_stats_3a *stats);
struct ipu3_uapi_grid_config awbGrid_;
--
2.30.2
More information about the libcamera-devel
mailing list