| Message ID | 20200619092725.19109-1-david.plowman@raspberrypi.com |
|---|---|
| Headers | show |
| Series |
|
| Related | show |
Hi David, On Fri, Jun 19, 2020 at 10:27:22AM +0100, David Plowman wrote: > Hi > > Here is a set of patches to implement a sharpness strength control for > libcamera. Unfortunately I couldn't quite bring myself to do it as an > int32_t control because it seems so similar to existing float controls > like contrast, or saturation. But if we'd rather go back to ints, as > previously suggested, just let me know and I'll redo the changes! I was going to ask after reading patch 1/3 :-) I think you're right here, and if we want to go for int32_t, we should conver contract and saturation (and brightness). That's a separate discussion. > There are 3 small patches in this set: > > 1. The first one just adds the "sharpness" control. This commit is > the only Raspberry Pi indpendent change (and doesn't even involve > any C++ code). > > 2. The second implements the control's effect in Raspberry Pi's > sharpness control algorithm. > > 3. The final patch just plumbs the two together. Bonus points if someone could implement support for this control in the UVC pipeline handler ;-) As a reference, the two UVC devices I use most often for development report the V4L2 sharpeness control as - Integrated webcam control 0x0098091b `Sharpness' min 1 max 7 step 1 default 2 current 2 - Logitech C905 control 0x0098091b `Sharpness' min 0 max 255 step 1 default 191 current 191 The default value for the second one is quite "interesting". > David Plowman (3): > libcamera: add a sharpness strength control > libcamera: raspberrypi: add sharpness strength control to Raspberry Pi > IPAs > libcamera: raspberrypi: plumb the libcamera sharpness control through > to the Raspberry Pi implementation > > include/libcamera/ipa/raspberrypi.h | 1 + > .../raspberrypi/controller/rpi/sharpen.cpp | 23 +++++++++++++++---- > .../raspberrypi/controller/rpi/sharpen.hpp | 6 +++-- > .../controller/sharpen_algorithm.hpp | 21 +++++++++++++++++ > .../raspberrypi/controller/sharpen_status.h | 2 ++ > src/ipa/raspberrypi/raspberrypi.cpp | 12 ++++++++++ > src/libcamera/control_ids.yaml | 11 +++++++++ > 7 files changed, 70 insertions(+), 6 deletions(-) > create mode 100644 src/ipa/raspberrypi/controller/sharpen_algorithm.hpp
Hi Here is a set of patches to implement a sharpness strength control for libcamera. Unfortunately I couldn't quite bring myself to do it as an int32_t control because it seems so similar to existing float controls like contrast, or saturation. But if we'd rather go back to ints, as previously suggested, just let me know and I'll redo the changes! There are 3 small patches in this set: 1. The first one just adds the "sharpness" control. This commit is the only Raspberry Pi indpendent change (and doesn't even involve any C++ code). 2. The second implements the control's effect in Raspberry Pi's sharpness control algorithm. 3. The final patch just plumbs the two together. Thanks and best regards David David Plowman (3): libcamera: add a sharpness strength control libcamera: raspberrypi: add sharpness strength control to Raspberry Pi IPAs libcamera: raspberrypi: plumb the libcamera sharpness control through to the Raspberry Pi implementation include/libcamera/ipa/raspberrypi.h | 1 + .../raspberrypi/controller/rpi/sharpen.cpp | 23 +++++++++++++++---- .../raspberrypi/controller/rpi/sharpen.hpp | 6 +++-- .../controller/sharpen_algorithm.hpp | 21 +++++++++++++++++ .../raspberrypi/controller/sharpen_status.h | 2 ++ src/ipa/raspberrypi/raspberrypi.cpp | 12 ++++++++++ src/libcamera/control_ids.yaml | 11 +++++++++ 7 files changed, 70 insertions(+), 6 deletions(-) create mode 100644 src/ipa/raspberrypi/controller/sharpen_algorithm.hpp