libcamera: ipa: simple: Use float type for adjustment controls
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 initializers, let's use float for the knobs too. Reviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com> Reviewed-by: Robert Mader <robert.mader@collabora.com> Signed-off-by: Milan Zamazal <mzamazal@redhat.com> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
committed by
Kieran Bingham
parent
da0926bc4b
commit
14d340a27b
@@ -59,7 +59,7 @@ struct DebayerParams {
|
||||
Matrix<float, 3, 3> ccm;
|
||||
RGB<float> blackLevel;
|
||||
float gamma;
|
||||
double contrastExp;
|
||||
float contrastExp;
|
||||
};
|
||||
|
||||
} /* namespace libcamera */
|
||||
|
||||
@@ -34,8 +34,8 @@ int Adjust::configure(IPAContext &context,
|
||||
[[maybe_unused]] const IPAConfigInfo &configInfo)
|
||||
{
|
||||
context.activeState.knobs.gamma = kDefaultGamma;
|
||||
context.activeState.knobs.contrast = std::optional<double>();
|
||||
context.activeState.knobs.saturation = std::optional<double>();
|
||||
context.activeState.knobs.contrast = std::optional<float>();
|
||||
context.activeState.knobs.saturation = std::optional<float>();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ void Lut::updateGammaTable(IPAContext &context)
|
||||
const auto gamma = 1.0 / context.activeState.knobs.gamma;
|
||||
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> combinedMatrix;
|
||||
@@ -68,7 +68,7 @@ struct IPAActiveState {
|
||||
struct {
|
||||
float gamma;
|
||||
/* 0..2 range, 1.0 = normal */
|
||||
std::optional<double> contrast;
|
||||
std::optional<float> contrast;
|
||||
std::optional<float> saturation;
|
||||
} knobs;
|
||||
};
|
||||
@@ -87,7 +87,7 @@ struct IPAFrameContext : public FrameContext {
|
||||
} gains;
|
||||
|
||||
float gamma;
|
||||
std::optional<double> contrast;
|
||||
std::optional<float> contrast;
|
||||
std::optional<float> saturation;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user