[libcamera-devel] [PATCH 0/8] ipa: rkisp1: Add autofocus algorithm

Jacopo Mondi jacopo at jmondi.org
Tue Jul 12 11:17:00 CEST 2022


Hi Daniel,
   just a note to let you know this has not gone forgotten. I've very
keen in looking into that. I spent some time setting up a rockpi4
where I can connect an imx519 camera module which has a lens.

I'll keep working to test your series there!

Thanks
   j

On Thu, Jun 30, 2022 at 04:35:35PM +0200, Daniel Semkowicz via libcamera-devel wrote:
> Hello,
>
> The following set of patches introduces an autofocus algorithm for
> rkisp1 platforms. As there are common parts of code in the IPU3, RPi and
> now they would be repeated in rkisp1, I tried to separate the main
> control part of the AF algorithm in the new AfHillClimbing class.
>
> These changes make use of the freshly introduced algorithm registration
> mechanism. As there was a missing part for the easy way to get the
> specific algorithm from the dynamically loaded list, I added
> getAlgorithm<AlgoType>() method to the Module class that. It was
> implemented in the fastest way to get it working, but I think we should
> improve it later. Maybe it would be good to extend algorithm creation
> and store also the name of corresponding algorithm to allow calling it
> by name instead of type. Especially that algorithms are loaded from
> tuning file by name.
>
> I am not sure if the directory structure I have chosen for the common
> code is a good place, so please correct me if I should place it
> somewhere else.
>
> Doxygen documentation part should be, for sure, more detailed, but I
> firstly want to wait for your comments about the code, just in case if
> there were any changes to the design.
>
> These changes depend on the "libcamera: rkisp1: Add lens control"
> changes that are still in the review process.
> Link: https://patchwork.libcamera.org/project/libcamera/list/?series=3228
>
> I am waiting for your comments :)
>
> Best regards
> Daniel Semkowicz
>
> Daniel Semkowicz (8):
>   ipa: Add base class defining AF algorithm interface
>   ipa: Add class that implements base AF control algorithm
>   ipa: rkisp1: Add AF algorithm basing on common AfHillClimbing class
>   pipeline: rkisp1: Add basic AF controls to the supported controls list
>   ipa: module: Add getAlgorithm() method
>   ipa: rkisp1: Pass requests setting AF controls to the AF algorithm
>   ipa: rkisp1: Add OV5675 tuning file
>   ipa: rkisp1: Add "Windows" Metering mode to auto focus algorithm
>
>  src/ipa/libipa/algorithms/af_algorithm.cpp    |  77 ++++++
>  src/ipa/libipa/algorithms/af_algorithm.h      |  39 +++
>  .../libipa/algorithms/af_hill_climbing.cpp    |  89 +++++++
>  src/ipa/libipa/algorithms/af_hill_climbing.h  | 251 ++++++++++++++++++
>  src/ipa/libipa/algorithms/meson.build         |  11 +
>  src/ipa/libipa/meson.build                    |   6 +
>  src/ipa/libipa/module.cpp                     |   7 +
>  src/ipa/libipa/module.h                       |  17 ++
>  src/ipa/rkisp1/algorithms/af.cpp              | 132 +++++++++
>  src/ipa/rkisp1/algorithms/af.h                |  41 +++
>  src/ipa/rkisp1/algorithms/meson.build         |   1 +
>  src/ipa/rkisp1/data/meson.build               |   1 +
>  src/ipa/rkisp1/data/ov5675.yaml               |  12 +
>  src/ipa/rkisp1/rkisp1.cpp                     |  72 ++++-
>  src/libcamera/pipeline/rkisp1/rkisp1.cpp      |  12 +-
>  15 files changed, 762 insertions(+), 6 deletions(-)
>  create mode 100644 src/ipa/libipa/algorithms/af_algorithm.cpp
>  create mode 100644 src/ipa/libipa/algorithms/af_algorithm.h
>  create mode 100644 src/ipa/libipa/algorithms/af_hill_climbing.cpp
>  create mode 100644 src/ipa/libipa/algorithms/af_hill_climbing.h
>  create mode 100644 src/ipa/libipa/algorithms/meson.build
>  create mode 100644 src/ipa/rkisp1/algorithms/af.cpp
>  create mode 100644 src/ipa/rkisp1/algorithms/af.h
>  create mode 100644 src/ipa/rkisp1/data/ov5675.yaml
>
> --
> 2.34.1
>


More information about the libcamera-devel mailing list