10#include <spdlog/spdlog.h>
14template<
typename InputType>
16 const InputType& input,
17 const Halide::Param<float>& param_brightness,
22 Halide::Func brightness_func(
"brightness_op");
26 Halide::Expr safe_brightness = Halide::clamp(
33 brightness_func(x, y, c) = Halide::select(
35 Halide::clamp(input(x, y, c) + safe_brightness, 0.0f, 1.0f),
39 return brightness_func;
47 const Halide::Func& input_func,
51 const Halide::Param<float>& param
56 spdlog::trace(
"OperationBrightness::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 MAX_BRIGHTNESS_VALUE
Maximum allowed brightness value. Defined by OperationRanges::getBrightnessMaxValue().
static constexpr float MIN_BRIGHTNESS_VALUE
Minimum allowed brightness value. Defined by OperationRanges::getBrightnessMinValue().
Halide::Func applyBrightnessAdjustment(const InputType &input, const Halide::Param< float > ¶m_brightness, const Halide::Var &x, const Halide::Var &y, const Halide::Var &c)
Concrete implementation of Brightness adjustment.