libcamera: ipa: simple: Apply gain matrix in awb
Now, when we have a combined matrix, we can apply AWB gains to it directly in awb.cpp. Reviewed-by: Robert Mader <robert.mader@collabora.com> Signed-off-by: Milan Zamazal <mzamazal@redhat.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
committed by
Kieran Bingham
parent
0f01a68086
commit
da0926bc4b
@@ -40,6 +40,11 @@ void Awb::prepare(IPAContext &context,
|
||||
[[maybe_unused]] DebayerParams *params)
|
||||
{
|
||||
auto &gains = context.activeState.awb.gains;
|
||||
Matrix<float, 3, 3> gainMatrix = { { gains.r(), 0, 0,
|
||||
0, gains.g(), 0,
|
||||
0, 0, gains.b() } };
|
||||
context.activeState.combinedMatrix =
|
||||
context.activeState.combinedMatrix * gainMatrix;
|
||||
/* Just report, the gains are applied in LUT algorithm. */
|
||||
frameContext.gains.red = gains.r();
|
||||
frameContext.gains.blue = gains.b();
|
||||
|
||||
@@ -107,10 +107,7 @@ void Lut::prepare(IPAContext &context,
|
||||
params->blue[i] = gammaTable[static_cast<unsigned int>(lutGains.b())];
|
||||
}
|
||||
} else if (context.activeState.matrixChanged || gammaUpdateNeeded) {
|
||||
Matrix<float, 3, 3> gainMatrix = { { gains.r(), 0, 0,
|
||||
0, gains.g(), 0,
|
||||
0, 0, gains.b() } };
|
||||
auto matrix = context.activeState.combinedMatrix * gainMatrix;
|
||||
auto &matrix = context.activeState.combinedMatrix;
|
||||
auto &red = params->redCcm;
|
||||
auto &green = params->greenCcm;
|
||||
auto &blue = params->blueCcm;
|
||||
|
||||
Reference in New Issue
Block a user