@@ -13,6 +13,8 @@
#include <array>
#include <stdint.h>
+#include "libcamera/internal/matrix.h"
+
namespace libcamera {
struct DebayerParams {
@@ -49,6 +51,11 @@ struct DebayerParams {
CcmLookupTable greenCcm;
CcmLookupTable blueCcm;
LookupTable gammaLut;
+
+ /*
+ * Per frame corrections as calculated by the IPA
+ */
+ Matrix<float, 3, 3> ccm;
};
} /* namespace libcamera */
@@ -133,6 +133,7 @@ void Lut::prepare(IPAContext &context,
auto &red = params->redCcm;
auto &green = params->greenCcm;
auto &blue = params->blueCcm;
+ params->ccm = ccm;
for (unsigned int i = 0; i < DebayerParams::kRGBLookupSize; i++) {
red[i].r = ccmValue(i, ccm[0][0]);
red[i].g = ccmValue(i, ccm[1][0]);
@@ -100,6 +100,11 @@ namespace libcamera {
* \brief Gamma lookup table used with color correction matrix
*/
+/**
+ * \var DebayerParams::ccm
+ * \brief Per frame colour correction matrix for GPUISP
+ */
+
/**
* \class Debayer
* \brief Base debayering class