<div dir="ltr"><div dir="ltr">Hi everyone,</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, 15 Jul 2022 at 01:03, Laurent Pinchart <<a href="mailto:laurent.pinchart@ideasonboard.com">laurent.pinchart@ideasonboard.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hello,<br>
<br>
CC'ing Naush and David.<br>
<br>
On Mon, Jul 04, 2022 at 05:23:14PM +0200, Florian Sylvestre via libcamera-devel wrote:<br>
> Hello,<br>
> <br>
> This patch series adds support for two rkisp1 algorithms:<br>
> - Demosaicing algorithm (patch 3/4)<br>
> - Color Processing algorithm (patch 4/4)<br>
> Demosaicing algorithm is in charge of denoising and sharpness control.<br>
> ColorProcessing algorithm is in charge of brightness, contrast and saturation<br>
> control.<br>
> <br>
> Demosaicing and ColorProcessing algorithm are currently configurable from the<br>
> application by user controls.<br>
> So I add support for transfering user controls respectively in the algorithm<br>
> class (patch 1/4) and in the IPARkISP1 (patch 2/4).<br>
<br>
David, Naush, what do you think of this approach of dispatching the<br>
whole ControlList to each algorithm, compared to the large switch-case<br>
in IPARPi::queueRequest() that calls member functions specific to each<br>
algorithm ?<br></blockquote><div><br></div><div>I'm ok with this - in fact, it was always on my to-do list, but never got round to it.</div><div>However, at least for the RPi IPA, we will still need a IPARPi::queueRequest() to</div><div>deal with certain controls. Off the top of my head, FrameDurations will need to</div><div>be handled by the IPA as various bits of calculations in the IPA need to know</div><div>the limits. It would require more refactoring and I must gather some courage to move</div><div>this outside the IPA. But otherwise, pretty much all other control handling could</div><div>move into the algorithms.</div><div><br></div><div>Regards,</div><div>Naush</div><div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
> The series is based on top of "[PATCH v4 12/12] ipa: rkisp1: Add support of<br>
> Black Level Correction tuning"<br>
> <br>
> Florian Sylvestre (4):<br>
> ipa: libipa: algorithm: Add queueRequest() to the Algorithm class<br>
> ipa: rkisp1: Transfer queueRequest() call to each algorithm<br>
> ipa: rkisp1: Add support of Demosaicing control<br>
> ipa: rkisp1: Add support of ColorProcessing control<br>
> <br>
> src/ipa/ipu3/module.h | 2 +-<br>
> src/ipa/libipa/algorithm.cpp | 13 ++<br>
> src/ipa/libipa/algorithm.h | 6 +<br>
> src/ipa/libipa/module.cpp | 5 +<br>
> src/ipa/libipa/module.h | 3 +-<br>
> .../rkisp1/algorithms/color_processing.cpp | 101 +++++++++<br>
> src/ipa/rkisp1/algorithms/color_processing.h | 38 ++++<br>
> src/ipa/rkisp1/algorithms/demosaicing.cpp | 208 ++++++++++++++++++<br>
> src/ipa/rkisp1/algorithms/demosaicing.h | 37 ++++<br>
> src/ipa/rkisp1/algorithms/meson.build | 2 +<br>
> src/ipa/rkisp1/data/ov5640.yaml | 2 +<br>
> src/ipa/rkisp1/module.h | 2 +-<br>
> src/ipa/rkisp1/rkisp1.cpp | 7 +-<br>
> src/libcamera/pipeline/rkisp1/rkisp1.cpp | 20 ++<br>
> 14 files changed, 441 insertions(+), 5 deletions(-)<br>
> create mode 100644 src/ipa/rkisp1/algorithms/color_processing.cpp<br>
> create mode 100644 src/ipa/rkisp1/algorithms/color_processing.h<br>
> create mode 100644 src/ipa/rkisp1/algorithms/demosaicing.cpp<br>
> create mode 100644 src/ipa/rkisp1/algorithms/demosaicing.h<br>
<br>
-- <br>
Regards,<br>
<br>
Laurent Pinchart<br>
</blockquote></div></div>