[libcamera-devel] [RFC PATCH 0/7] libcamera: introduce Software ISP and Software IPA

Bryan O'Donoghue bryan.odonoghue at linaro.org
Mon Dec 4 10:40:20 CET 2023


On 04/12/2023 01:10, Andrey Konovalov wrote:
> Here is a draft implementation of Software ISP and Software IPA
> which provide debayering and implementation of image processing
> algorithms for systems without a hardware ISP, or in cases when
> there are no public drivers for the hardware ISP present in the
> system.
> 
> The implementation of the Software ISP is a reference one.
> A naive AWB alorithm is implemented as part of a function which
> does debayering and statistics calculations - the algorithm part
> is to be moved to the IPA in the next version of the patch set.
> And for debayering itself there is already a more efficient
> implementation by Hans de Goede. This patch set is currently using
> the earlier debayering implementation as it is less lines of code
> and is OK for the initial discussion.
> Only RAW10P format from the sensor is currently supported, but
> other debayering functions can be easily added (which of them to
> call is decided based on the input format).
> 
> The Software IPA has only auto exposure and AGC. For the AGC
> the analogue gain control of the camera sensor is used (if
> available). The algorithm is very much simplified, and is
> mostly included as a reference code.
> 
> The 6th patch renames some variables in the simple pipeline
> handler for the Software ISP to use the same buffer handling
> code as the Converter currently does. This lets one to
> avoid adding extra code to the pipeline handler, but also
> makes the Software ISP and the Converter mutually exclusive.
> 
> The Software ISP / IPA are intended to be used with the simple
> pipeline handler. The proper integration isn't done yet, and
> the last patch in this series unconditionally creates the
> Software ISP and Software IPA instances if the pipeline is
> not using a Converter. In the future the Software ISP / IPA
> would be created if the media pipeline can only produce raw
> Bayer frames. And a possibility to use different implementations
> of Software ISP and IPA will be added.
> 
> This patch set uses SharedMemObject class used by the RPi pipeline
> handler - the second patch in the series moves the header file
> to a common directory.
> 
> This patch set has been tested on Qualcomm RB5 board with
> a mezzanine board equipped with RPi camera v2 (not the
> standard RB5 camera mezzanine).
> 

Great work, thanks for posting.

Do you have a link to a buildable tree from gitlab for this series that 
can be shared ?

---
bod



More information about the libcamera-devel mailing list