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>
32 lines
740 B
C++
32 lines
740 B
C++
/* SPDX-License-Identifier: BSD-2-Clause */
|
|
/*
|
|
* Copyright (C) 2019, Raspberry Pi (Trading) Limited
|
|
*
|
|
* sdn.hpp - SDN (spatial denoise) control algorithm
|
|
*/
|
|
#pragma once
|
|
|
|
#include "../algorithm.hpp"
|
|
#include "../denoise_algorithm.hpp"
|
|
|
|
namespace RPiController {
|
|
|
|
// Algorithm to calculate correct spatial denoise (SDN) settings.
|
|
|
|
class Sdn : public DenoiseAlgorithm
|
|
{
|
|
public:
|
|
Sdn(Controller *controller = NULL);
|
|
char const *Name() const override;
|
|
void Read(boost::property_tree::ptree const ¶ms) override;
|
|
void Initialise() override;
|
|
void Prepare(Metadata *image_metadata) override;
|
|
void SetMode(DenoiseMode mode) override;
|
|
|
|
private:
|
|
double deviation_;
|
|
double strength_;
|
|
DenoiseMode mode_;
|
|
};
|
|
|
|
} // namespace RPiController
|