[00/16] Software ISP: Share params and stats buffers
mbox series

Message ID 20240812115009.946036-1-mzamazal@redhat.com
Headers show
Series
  • Software ISP: Share params and stats buffers
Related show

Message

Milan Zamazal Aug. 12, 2024, 11:49 a.m. UTC
This patch series implements parameters and statistics buffer sharing in
software ISP.  The buffers are currently shared only partially and they
are copied sometimes.  This is unlikely to be a performance problem, at
least with the current CPU implementation, as the buffers are not large,
especially when compared to the image data being processed.  But it
would be more elegant and consistent if the buffers were used in a way
similar to the hardware pipelines, i.e. by having a ring of shared
reusable buffers and passing the buffer ids everywhere.

We also have the following software ISP TODOs:

- 2. Reconsider stats sharing
- 5. Store ISP parameters in per-frame buffers

Implementation of this change is perhaps more complicated than initially expected.  The first part of the patches deals with parameters buffers, the next part with statistics buffers.  The whole patch series is quite long but the patches are split in the way to make them as simple as possible.

This patch series is a continuation of the “Software ISP refactoring” patch series, which is currently in review.

Milan Zamazal (16):
  libcamera: software_isp: Remove initializer_list include
  libcamera: software_isp: Introduce arguments for parameters buffers
  libcamera: software_isp: Separate allocation of the parameters buffer
  libcamera: software_isp: Track unused parameters buffers
  libcamera: software_isp: Allocation of multiple params buffers
  libcamera: software_isp: Allocate multiple parameters buffers
  libcamera: software_isp: Use multiple parameters buffers in IPA
  libcamera: software_isp: Share parameters buffers with debayering
  libcamera: software_isp: Avoid copying particular color tables
  libcamera: software_isp: Remove per-frame params buffers TODO item
  libcamera: software_isp: Drop a comment about DelayedControls
  libcamera: software_isp: Introduce arguments for statistics buffers
  libcamera: software_isp: Allocate statistics buffers
  libcamera: software_isp: Track statistics buffers
  libcamera: software_isp: Share statistics buffers with IPA
  libcamera: software_isp: Remove stats-sharing TODO item

 .../internal/software_isp/software_isp.h      |  21 ++-
 include/libcamera/ipa/soft.mojom              |  11 +-
 src/ipa/simple/soft_simple.cpp                |  80 ++++-----
 src/libcamera/pipeline/simple/simple.cpp      |  14 +-
 src/libcamera/software_isp/TODO               |  45 -----
 src/libcamera/software_isp/debayer.cpp        |  10 +-
 src/libcamera/software_isp/debayer.h          |   5 +-
 src/libcamera/software_isp/debayer_cpu.cpp    |  97 ++++++-----
 src/libcamera/software_isp/debayer_cpu.h      |  23 ++-
 src/libcamera/software_isp/software_isp.cpp   | 158 ++++++++++++++----
 src/libcamera/software_isp/swstats_cpu.cpp    |  55 +++---
 src/libcamera/software_isp/swstats_cpu.h      |  21 ++-
 12 files changed, 307 insertions(+), 233 deletions(-)