summaryrefslogtreecommitdiff
path: root/src/ipa/simple/algorithms/awb.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ipa/simple/algorithms/awb.cpp')
-rw-r--r--src/ipa/simple/algorithms/awb.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/ipa/simple/algorithms/awb.cpp b/src/ipa/simple/algorithms/awb.cpp
index 3d76cc2f..195de41d 100644
--- a/src/ipa/simple/algorithms/awb.cpp
+++ b/src/ipa/simple/algorithms/awb.cpp
@@ -24,7 +24,7 @@ int Awb::configure(IPAContext &context,
[[maybe_unused]] const IPAConfigInfo &configInfo)
{
auto &gains = context.activeState.gains;
- gains.red = gains.green = gains.blue = 256;
+ gains.red = gains.green = gains.blue = 1.0;
return 0;
}
@@ -53,12 +53,11 @@ void Awb::process(IPAContext &context,
/*
* Calculate red and blue gains for AWB.
* Clamp max gain at 4.0, this also avoids 0 division.
- * Gain: 128 = 0.5, 256 = 1.0, 512 = 2.0, etc.
*/
auto &gains = context.activeState.gains;
- gains.red = sumR <= sumG / 4 ? 1024 : 256 * sumG / sumR;
- gains.blue = sumB <= sumG / 4 ? 1024 : 256 * sumG / sumB;
- /* Green gain is fixed to 256 */
+ gains.red = sumR <= sumG / 4 ? 4.0 : static_cast<double>(sumG) / sumR;
+ gains.blue = sumB <= sumG / 4 ? 4.0 : static_cast<double>(sumG) / sumB;
+ /* Green gain is fixed to 1.0 */
LOG(IPASoftAwb, Debug) << "gain R/B " << gains.red << "/" << gains.blue;
}