@@ -59,7 +59,7 @@ struct DebayerParams {
Matrix<float, 3, 3> ccm;
RGB<float> blackLevel;
float gamma;
- double contrastExp;
+ float contrastExp;
};
} /* namespace libcamera */
@@ -33,9 +33,9 @@ int Adjust::init(IPAContext &context, [[maybe_unused]] const YamlObject &tuningD
int Adjust::configure(IPAContext &context,
[[maybe_unused]] const IPAConfigInfo &configInfo)
{
- context.activeState.knobs.gamma = std::optional<double>();
- context.activeState.knobs.contrast = std::optional<double>();
- context.activeState.knobs.saturation = std::optional<double>();
+ context.activeState.knobs.gamma = std::optional<float>();
+ context.activeState.knobs.contrast = std::optional<float>();
+ context.activeState.knobs.saturation = std::optional<float>();
return 0;
}
@@ -41,7 +41,7 @@ void Lut::updateGammaTable(IPAContext &context)
1.0 / context.activeState.knobs.gamma.value_or(kDefaultGamma);
const auto contrast = context.activeState.knobs.contrast.value_or(1.0);
/* Convert 0..2 to 0..infinity; avoid actual inifinity at tan(pi/2) */
- double contrastExp = tan(std::clamp(contrast * M_PI_4, 0.0, M_PI_2 - 0.00001));
+ float contrastExp = tan(std::clamp(contrast * M_PI_4, 0.0, M_PI_2 - 0.00001));
if (!context.gpuIspEnabled) {
auto &gammaTable = context.activeState.gamma.gammaTable;
@@ -58,8 +58,8 @@ struct IPAActiveState {
std::array<double, kGammaLookupSize> gammaTable;
uint8_t blackLevel;
float gamma;
- double contrast;
- double contrastExp;
+ float contrast;
+ float contrastExp;
} gamma;
Matrix<float, 3, 3> ccm;
@@ -69,7 +69,7 @@ struct IPAActiveState {
struct {
std::optional<float> gamma;
/* 0..2 range, 1.0 = normal */
- std::optional<double> contrast;
+ std::optional<float> contrast;
std::optional<float> saturation;
} knobs;
};
@@ -88,7 +88,7 @@ struct IPAFrameContext : public FrameContext {
} gains;
std::optional<float> gamma;
- std::optional<double> contrast;
+ std::optional<float> contrast;
std::optional<float> saturation;
};
control_ids.h defines the contrast type as float, let's use the same in simple IPA, instead of double. Saturation and gamma already use float, except for the knobs, let's use float for the knobs too. Signed-off-by: Milan Zamazal <mzamazal@redhat.com> --- include/libcamera/internal/software_isp/debayer_params.h | 2 +- src/ipa/simple/algorithms/adjust.cpp | 6 +++--- src/ipa/simple/algorithms/lut.cpp | 2 +- src/ipa/simple/ipa_context.h | 8 ++++---- 4 files changed, 9 insertions(+), 9 deletions(-)