[libcamera-devel,RFC,v2,0/1] ipa: ipu3: af: Auto focus for dw9719 Surface Go2 VCM
mbox series

Message ID 20211124103447.102069-1-hpa@redhat.com
Headers show
Series
  • ipa: ipu3: af: Auto focus for dw9719 Surface Go2 VCM
Related show

Message

Kate Hsuan Nov. 24, 2021, 10:34 a.m. UTC
The v1 patch provides a POC implementation of the IPU3 auto focus
algorithm. In this v2 patch, the grid configuration interface and IPU3
AF accelerator configuration are also added into the AF class. Also, the
default AF area is moved from the top left corner of the sensor to the
center of the sensor and can be configured in configure(). Documents of
the class and variable are also added.

For the hardcoded VCM control, I'm still trying to understand the
control architecture. Please allow me more time to move them to the
correct place.

Kate Hsuan (1):
  ipa: ipu3: af: Auto focus for dw9719 Surface Go2 VCM

 src/ipa/ipu3/algorithms/af.cpp      | 284 ++++++++++++++++++++++++++++
 src/ipa/ipu3/algorithms/af.h        |  54 ++++++
 src/ipa/ipu3/algorithms/agc.cpp     |   2 +-
 src/ipa/ipu3/algorithms/meson.build |   3 +-
 src/ipa/ipu3/ipa_context.cpp        |  26 +++
 src/ipa/ipu3/ipa_context.h          |  11 ++
 src/ipa/ipu3/ipu3.cpp               |   2 +
 7 files changed, 380 insertions(+), 2 deletions(-)
 create mode 100644 src/ipa/ipu3/algorithms/af.cpp
 create mode 100644 src/ipa/ipu3/algorithms/af.h

Comments

Kieran Bingham Nov. 24, 2021, 11:08 a.m. UTC | #1
Quoting Kate Hsuan (2021-11-24 10:34:46)
> The v1 patch provides a POC implementation of the IPU3 auto focus
> algorithm. In this v2 patch, the grid configuration interface and IPU3
> AF accelerator configuration are also added into the AF class. Also, the
> default AF area is moved from the top left corner of the sensor to the
> center of the sensor and can be configured in configure(). Documents of
> the class and variable are also added.
> 
> For the hardcoded VCM control, I'm still trying to understand the
> control architecture. Please allow me more time to move them to the
> correct place.

Sure, it's fine to work with this as you have it to get the algorithm
running.

You could likely apply Han-Lin's CameraLens series [0] and work on top of
that to see how we might set the controls through the pipeline handler,
rather than the IPA. He sets the control for the lens position through
the extended IPA interface with [1].

Some of this may still be subject to change, but it might help
visualising how the controls would be passed and set from the pipeline
handler rather than the IPA directly.

[0] https://patchwork.libcamera.org/project/libcamera/list/?series=2743
[1] https://patchwork.libcamera.org/project/libcamera/list/?series=2744

--
Kieran


> 
> Kate Hsuan (1):
>   ipa: ipu3: af: Auto focus for dw9719 Surface Go2 VCM
> 
>  src/ipa/ipu3/algorithms/af.cpp      | 284 ++++++++++++++++++++++++++++
>  src/ipa/ipu3/algorithms/af.h        |  54 ++++++
>  src/ipa/ipu3/algorithms/agc.cpp     |   2 +-
>  src/ipa/ipu3/algorithms/meson.build |   3 +-
>  src/ipa/ipu3/ipa_context.cpp        |  26 +++
>  src/ipa/ipu3/ipa_context.h          |  11 ++
>  src/ipa/ipu3/ipu3.cpp               |   2 +
>  7 files changed, 380 insertions(+), 2 deletions(-)
>  create mode 100644 src/ipa/ipu3/algorithms/af.cpp
>  create mode 100644 src/ipa/ipu3/algorithms/af.h
> 
> -- 
> 2.31.1
>