ipa: raspberrypi: Add a DenoiseAlgorithm class to the Controller
This denoise algorithm class will be used to pass in the user requested denoise operating mode to the controller. The existing Denoise controller will derive from this new DenoiseAlgorithm class. Add a denoise mode field in the denoise status metadata object for the IPA to use when configuring the ISP. Signed-off-by: Naushir Patuck <naush@raspberrypi.com> Reviewed-by: David Plowman <david.plowman@raspberrypi.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
parent
44ea5b65c8
commit
c9e1ef7bd2
4 changed files with 37 additions and 3 deletions
|
@ -1,6 +1,6 @@
|
|||
/* SPDX-License-Identifier: BSD-2-Clause */
|
||||
/*
|
||||
* Copyright (C) 2019, Raspberry Pi (Trading) Limited
|
||||
* Copyright (C) 2019-2021, Raspberry Pi (Trading) Limited
|
||||
*
|
||||
* sdn.cpp - SDN (spatial denoise) control algorithm
|
||||
*/
|
||||
|
@ -23,7 +23,7 @@ LOG_DEFINE_CATEGORY(RPiSdn)
|
|||
#define NAME "rpi.sdn"
|
||||
|
||||
Sdn::Sdn(Controller *controller)
|
||||
: Algorithm(controller)
|
||||
: DenoiseAlgorithm(controller), mode_(DenoiseMode::ColourOff)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -53,6 +53,7 @@ void Sdn::Prepare(Metadata *image_metadata)
|
|||
status.noise_constant = noise_status.noise_constant * deviation_;
|
||||
status.noise_slope = noise_status.noise_slope * deviation_;
|
||||
status.strength = strength_;
|
||||
status.mode = static_cast<std::underlying_type_t<DenoiseMode>>(mode_);
|
||||
image_metadata->Set("denoise.status", status);
|
||||
LOG(RPiSdn, Debug)
|
||||
<< "programmed constant " << status.noise_constant
|
||||
|
@ -60,6 +61,12 @@ void Sdn::Prepare(Metadata *image_metadata)
|
|||
<< " strength " << status.strength;
|
||||
}
|
||||
|
||||
void Sdn::SetMode(DenoiseMode mode)
|
||||
{
|
||||
// We only distinguish between off and all other modes.
|
||||
mode_ = mode;
|
||||
}
|
||||
|
||||
// Register algorithm with the system.
|
||||
static Algorithm *Create(Controller *controller)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue