summaryrefslogtreecommitdiff
path: root/src/ipa/rkisp1/algorithms/awb.cpp
diff options
context:
space:
mode:
authorStefan Klug <stefan.klug@ideasonboard.com>2025-04-03 17:49:14 +0200
committerStefan Klug <stefan.klug@ideasonboard.com>2025-05-20 09:58:56 +0200
commit5010b65a086969597159cc88899ff69f19fec95e (patch)
treec4d09dffe8e6b2b36700da24081d1e8c8b568f11 /src/ipa/rkisp1/algorithms/awb.cpp
parent1e67b96fb0b6b45b9b73dc2e13833efff5254ee1 (diff)
ipa: rkisp1: Refactor automatic/manual structure in IPAActiveState
Swap gains and automatic/manual in the IPAActiveState structure. This is in preparation to adding another member, which is easier in the new structure. The patch contains no functional changes. Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'src/ipa/rkisp1/algorithms/awb.cpp')
-rw-r--r--src/ipa/rkisp1/algorithms/awb.cpp24
1 files changed, 12 insertions, 12 deletions
diff --git a/src/ipa/rkisp1/algorithms/awb.cpp b/src/ipa/rkisp1/algorithms/awb.cpp
index 3bafed02..3d8f0a48 100644
--- a/src/ipa/rkisp1/algorithms/awb.cpp
+++ b/src/ipa/rkisp1/algorithms/awb.cpp
@@ -126,8 +126,8 @@ int Awb::init(IPAContext &context, const YamlObject &tuningData)
int Awb::configure(IPAContext &context,
const IPACameraSensorInfo &configInfo)
{
- context.activeState.awb.gains.manual = RGB<double>{ 1.0 };
- context.activeState.awb.gains.automatic =
+ context.activeState.awb.manual.gains = RGB<double>{ 1.0 };
+ context.activeState.awb.automatic.gains =
awbAlgo_->gainsFromColourTemperature(kDefaultColourTemperature);
context.activeState.awb.autoEnabled = true;
context.activeState.awb.temperatureK = kDefaultColourTemperature;
@@ -175,8 +175,8 @@ void Awb::queueRequest(IPAContext &context,
const auto &colourTemperature = controls.get(controls::ColourTemperature);
bool update = false;
if (colourGains) {
- awb.gains.manual.r() = (*colourGains)[0];
- awb.gains.manual.b() = (*colourGains)[1];
+ awb.manual.gains.r() = (*colourGains)[0];
+ awb.manual.gains.b() = (*colourGains)[1];
/*
* \todo Colour temperature reported in metadata is now
* incorrect, as we can't deduce the temperature from the gains.
@@ -185,17 +185,17 @@ void Awb::queueRequest(IPAContext &context,
update = true;
} else if (colourTemperature) {
const auto &gains = awbAlgo_->gainsFromColourTemperature(*colourTemperature);
- awb.gains.manual.r() = gains.r();
- awb.gains.manual.b() = gains.b();
+ awb.manual.gains.r() = gains.r();
+ awb.manual.gains.b() = gains.b();
awb.temperatureK = *colourTemperature;
update = true;
}
if (update)
LOG(RkISP1Awb, Debug)
- << "Set colour gains to " << awb.gains.manual;
+ << "Set colour gains to " << awb.manual.gains;
- frameContext.awb.gains = awb.gains.manual;
+ frameContext.awb.gains = awb.manual.gains;
frameContext.awb.temperatureK = awb.temperatureK;
}
@@ -210,7 +210,7 @@ void Awb::prepare(IPAContext &context, const uint32_t frame,
* most up-to-date automatic values we can read.
*/
if (frameContext.awb.autoEnabled) {
- frameContext.awb.gains = context.activeState.awb.gains.automatic;
+ frameContext.awb.gains = context.activeState.awb.automatic.gains;
frameContext.awb.temperatureK = context.activeState.awb.temperatureK;
}
@@ -332,14 +332,14 @@ void Awb::process(IPAContext &context,
/* Filter the values to avoid oscillations. */
double speed = 0.2;
awbResult.gains = awbResult.gains * speed +
- activeState.awb.gains.automatic * (1 - speed);
+ activeState.awb.automatic.gains * (1 - speed);
- activeState.awb.gains.automatic = awbResult.gains;
+ activeState.awb.automatic.gains = awbResult.gains;
LOG(RkISP1Awb, Debug)
<< std::showpoint
<< "Means " << rgbMeans << ", gains "
- << activeState.awb.gains.automatic << ", temp "
+ << activeState.awb.automatic.gains << ", temp "
<< activeState.awb.temperatureK << "K";
}