ipa: rkisp1: Use generic Interpolator class
Replace all occurrences of the MatrixInterpolator with the generic one. Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
This commit is contained in:
parent
8ccb04a168
commit
91e6491fa0
2 changed files with 9 additions and 15 deletions
|
@ -19,7 +19,7 @@
|
||||||
#include "libcamera/internal/yaml_parser.h"
|
#include "libcamera/internal/yaml_parser.h"
|
||||||
|
|
||||||
#include "../utils.h"
|
#include "../utils.h"
|
||||||
#include "libipa/matrix_interpolator.h"
|
#include "libipa/interpolator.h"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \file ccm.h
|
* \file ccm.h
|
||||||
|
@ -46,7 +46,7 @@ int Ccm::init([[maybe_unused]] IPAContext &context, const YamlObject &tuningData
|
||||||
LOG(RkISP1Ccm, Warning)
|
LOG(RkISP1Ccm, Warning)
|
||||||
<< "Failed to parse 'ccm' "
|
<< "Failed to parse 'ccm' "
|
||||||
<< "parameter from tuning file; falling back to unit matrix";
|
<< "parameter from tuning file; falling back to unit matrix";
|
||||||
ccm_.reset();
|
ccm_.setData({ { 0, Matrix<float, 3, 3>::identity() } });
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = offsets_.readYaml(tuningData["ccms"], "ct", "offsets");
|
ret = offsets_.readYaml(tuningData["ccms"], "ct", "offsets");
|
||||||
|
@ -54,14 +54,8 @@ int Ccm::init([[maybe_unused]] IPAContext &context, const YamlObject &tuningData
|
||||||
LOG(RkISP1Ccm, Warning)
|
LOG(RkISP1Ccm, Warning)
|
||||||
<< "Failed to parse 'offsets' "
|
<< "Failed to parse 'offsets' "
|
||||||
<< "parameter from tuning file; falling back to zero offsets";
|
<< "parameter from tuning file; falling back to zero offsets";
|
||||||
/*
|
|
||||||
* MatrixInterpolator::reset() resets to identity matrices
|
offsets_.setData({ { 0, Matrix<int16_t, 3, 1>({ 0, 0, 0 }) } });
|
||||||
* while here we need zero matrices so we need to construct it
|
|
||||||
* ourselves.
|
|
||||||
*/
|
|
||||||
Matrix<int16_t, 3, 1> m({ 0, 0, 0 });
|
|
||||||
std::map<unsigned int, Matrix<int16_t, 3, 1>> matrices = { { 0, m } };
|
|
||||||
offsets_ = MatrixInterpolator<int16_t, 3, 1>(matrices);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -106,8 +100,8 @@ void Ccm::prepare(IPAContext &context, const uint32_t frame,
|
||||||
}
|
}
|
||||||
|
|
||||||
ct_ = ct;
|
ct_ = ct;
|
||||||
Matrix<float, 3, 3> ccm = ccm_.get(ct);
|
Matrix<float, 3, 3> ccm = ccm_.getInterpolated(ct);
|
||||||
Matrix<int16_t, 3, 1> offsets = offsets_.get(ct);
|
Matrix<int16_t, 3, 1> offsets = offsets_.getInterpolated(ct);
|
||||||
|
|
||||||
context.activeState.ccm.ccm = ccm;
|
context.activeState.ccm.ccm = ccm;
|
||||||
frameContext.ccm.ccm = ccm;
|
frameContext.ccm.ccm = ccm;
|
||||||
|
|
|
@ -9,8 +9,8 @@
|
||||||
|
|
||||||
#include <linux/rkisp1-config.h>
|
#include <linux/rkisp1-config.h>
|
||||||
|
|
||||||
|
#include "libipa/interpolator.h"
|
||||||
#include "libipa/matrix.h"
|
#include "libipa/matrix.h"
|
||||||
#include "libipa/matrix_interpolator.h"
|
|
||||||
|
|
||||||
#include "algorithm.h"
|
#include "algorithm.h"
|
||||||
|
|
||||||
|
@ -40,8 +40,8 @@ private:
|
||||||
const Matrix<int16_t, 3, 1> &offsets);
|
const Matrix<int16_t, 3, 1> &offsets);
|
||||||
|
|
||||||
unsigned int ct_;
|
unsigned int ct_;
|
||||||
MatrixInterpolator<float, 3, 3> ccm_;
|
Interpolator<Matrix<float, 3, 3>> ccm_;
|
||||||
MatrixInterpolator<int16_t, 3, 1> offsets_;
|
Interpolator<Matrix<int16_t, 3, 1>> offsets_;
|
||||||
};
|
};
|
||||||
|
|
||||||
} /* namespace ipa::rkisp1::algorithms */
|
} /* namespace ipa::rkisp1::algorithms */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue