Message ID | 20200619092725.19109-4-david.plowman@raspberrypi.com |
---|---|
State | Superseded |
Headers | show |
Series |
|
Related | show |
Hi David, Thank you for the patch. On Fri, Jun 19, 2020 at 10:27:25AM +0100, David Plowman wrote: > This simply wires up the libcamera sharpness control in the Raspberry > Pi IPAs so that it controls the strength of the Raspberry Pi sharpness > control algorithm. > > Signed-off-by: David Plowman <david.plowman@raspberrypi.com> > --- > include/libcamera/ipa/raspberrypi.h | 1 + > src/ipa/raspberrypi/raspberrypi.cpp | 12 ++++++++++++ > 2 files changed, 13 insertions(+) > > diff --git a/include/libcamera/ipa/raspberrypi.h b/include/libcamera/ipa/raspberrypi.h > index c109469..a18ce9a 100644 > --- a/include/libcamera/ipa/raspberrypi.h > +++ b/include/libcamera/ipa/raspberrypi.h > @@ -51,6 +51,7 @@ static const ControlInfoMap RPiControls = { > { &controls::Brightness, ControlInfo(-1.0f, 1.0f) }, > { &controls::Contrast, ControlInfo(0.0f, 32.0f) }, > { &controls::Saturation, ControlInfo(0.0f, 32.0f) }, > + { &controls::Sharpness, ControlInfo(0.0f, 16.0f, 1.0f) }, In patch 2/3, status.threshold is computed with a division by the user strength. Dividing by 0 doesn't seem like a very good idea. That's something to be fixed in 2/3 though. For this patch, Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > }; > > } /* namespace libcamera */ > diff --git a/src/ipa/raspberrypi/raspberrypi.cpp b/src/ipa/raspberrypi/raspberrypi.cpp > index 9669f21..2f2550e 100644 > --- a/src/ipa/raspberrypi/raspberrypi.cpp > +++ b/src/ipa/raspberrypi/raspberrypi.cpp > @@ -47,6 +47,7 @@ > #include "metadata.hpp" > #include "noise_status.h" > #include "sdn_status.h" > +#include "sharpen_algorithm.hpp" > #include "sharpen_status.h" > > namespace libcamera { > @@ -631,6 +632,17 @@ void IPARPi::queueRequest(const ControlList &controls) > break; > } > > + case controls::SHARPNESS: { > + RPi::SharpenAlgorithm *sharpen = dynamic_cast<RPi::SharpenAlgorithm *>( > + controller_.GetAlgorithm("sharpen")); > + ASSERT(sharpen); > + > + sharpen->SetStrength(ctrl.second.get<float>()); > + libcameraMetadata_.set(controls::Sharpness, > + ctrl.second.get<float>()); > + break; > + } > + > default: > LOG(IPARPI, Warning) > << "Ctrl " << controls::controls.at(ctrl.first)->name()
diff --git a/include/libcamera/ipa/raspberrypi.h b/include/libcamera/ipa/raspberrypi.h index c109469..a18ce9a 100644 --- a/include/libcamera/ipa/raspberrypi.h +++ b/include/libcamera/ipa/raspberrypi.h @@ -51,6 +51,7 @@ static const ControlInfoMap RPiControls = { { &controls::Brightness, ControlInfo(-1.0f, 1.0f) }, { &controls::Contrast, ControlInfo(0.0f, 32.0f) }, { &controls::Saturation, ControlInfo(0.0f, 32.0f) }, + { &controls::Sharpness, ControlInfo(0.0f, 16.0f, 1.0f) }, }; } /* namespace libcamera */ diff --git a/src/ipa/raspberrypi/raspberrypi.cpp b/src/ipa/raspberrypi/raspberrypi.cpp index 9669f21..2f2550e 100644 --- a/src/ipa/raspberrypi/raspberrypi.cpp +++ b/src/ipa/raspberrypi/raspberrypi.cpp @@ -47,6 +47,7 @@ #include "metadata.hpp" #include "noise_status.h" #include "sdn_status.h" +#include "sharpen_algorithm.hpp" #include "sharpen_status.h" namespace libcamera { @@ -631,6 +632,17 @@ void IPARPi::queueRequest(const ControlList &controls) break; } + case controls::SHARPNESS: { + RPi::SharpenAlgorithm *sharpen = dynamic_cast<RPi::SharpenAlgorithm *>( + controller_.GetAlgorithm("sharpen")); + ASSERT(sharpen); + + sharpen->SetStrength(ctrl.second.get<float>()); + libcameraMetadata_.set(controls::Sharpness, + ctrl.second.get<float>()); + break; + } + default: LOG(IPARPI, Warning) << "Ctrl " << controls::controls.at(ctrl.first)->name()
This simply wires up the libcamera sharpness control in the Raspberry Pi IPAs so that it controls the strength of the Raspberry Pi sharpness control algorithm. Signed-off-by: David Plowman <david.plowman@raspberrypi.com> --- include/libcamera/ipa/raspberrypi.h | 1 + src/ipa/raspberrypi/raspberrypi.cpp | 12 ++++++++++++ 2 files changed, 13 insertions(+)