10#include <spdlog/spdlog.h>
14template<
typename InputType>
16 const InputType& input,
17 const Halide::Param<float>& param_contrast,
22 Halide::Func contrast_func(
"contrast_op");
25 Halide::Expr safe_contrast = clamp(
38 contrast_func(x, y, c) = select(
40 0.5f + (input(x, y, c) - 0.5f) * safe_contrast,
52 const Halide::Func& input_func,
56 const Halide::Param<float>& param
60 spdlog::trace(
"OperationContrast::appendToFusedPipeline: Fusing with Halide Param (In-Graph Clamped)");
Halide::Func appendToFusedPipeline(const Halide::Func &input_func, const Halide::Var &x, const Halide::Var &y, const Halide::Var &c, const Halide::Param< float > ¶m) const override
Appends this operation's logic to a fused Halide pipeline. This method is used by the PipelineBuilder...
static constexpr float MIN_CONTRAST_VALUE
Minimum allowed contrast value. Defined by OperationRanges::getContrastMinValue().
static constexpr float MAX_CONTRAST_VALUE
Maximum allowed contrast value. Defined by OperationRanges::getContrastMaxValue().
Halide::Func applyContrastAdjustment(const InputType &input, const Halide::Param< float > ¶m_contrast, const Halide::Var &x, const Halide::Var &y, const Halide::Var &c)
Concrete implementation of Contrast adjustment.