[PATCH 00/16] Software ISP: Share params and stats buffers
Milan Zamazal
mzamazal at redhat.com
Mon Aug 12 13:49:49 CEST 2024
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(-)
--
2.44.1
More information about the libcamera-devel
mailing list