[v1,00/11] rkisp1: Support BLS on i.MX8MP
mbox series

Message ID 20240703225230.3530-1-laurent.pinchart@ideasonboard.com
Headers show
Series
  • rkisp1: Support BLS on i.MX8MP
Related show

Message

Laurent Pinchart July 3, 2024, 10:52 p.m. UTC
Hello,

This patch series adds support for black level subtraction to the
rkisp1 on i.MX8MP. While the rkisp1 IPA already supports black level
subtraction, the i.MX8MP lacks the BLS block in the ISP and instead
implements black level substraction in a new block named companding.
Support for this block has been submitted for the kernel driver in [1]
and [2], which this series depends on.

The first part of this series adds support in the rkisp1 pipeline
handler and IPA module for the new ISP extensible parameters format
introduced in [1]. The first two patches start by adding the driver API
extensions to the rkisp1-config.h header (01/11) and the new V4L2 pixel
format (02/11). The next two patches then prepare the rkisp1 IPA module
interface to pass the parameters buffer format from the pipeline handler
to the IPA module (03/11), and the size of the filled buffer from the
IPA module to the pipeline handler (04/11). With that in place, patch
05/11 adds classes that abstract the ISP parameters buffer in order to
support the legacy fixed format and the new extensible format
transparently for the IPA module's algorithms, and patch 06/11 makes use
of those classes through the IPA module. Patch 07/11 finishes the first
part by switching to the extensible format by default when available.

The second part of the series then implements support for BLS on the
i.MX8MP. Patch 08/11 updates the rkisp1-config.h header to the kernel
API from [2] with support for the companding block, and patch 09/11
updates the rkisp1 parameters helper classes with support for the block.
Patch 10/11 adds a flag to the IPA context to signal support for the
companding block, and patch 11/11 makes use of it in the black level
correction algorithm to select between the BLS and companding blocks
depending on the platform.

[1] https://lore.kernel.org/r/20240703161048.247124-1-jacopo.mondi@ideasonboard.com
[2] https://lore.kernel.org/r/20240703222533.1662-1-laurent.pinchart@ideasonboard.com

Jacopo Mondi (4):
  include: rkisp1: Update header for extensible parameters
  include: videodev2: Add V4L2_META_FMT_RK_ISP1_EXT_PARAMS
  ipa: rkisp1: Pass parameters buffer size to pipeline handler
  pipeline: rkisp1: Use the extensible parameters format

Laurent Pinchart (4):
  ipa: rkisp1: Pass parameters buffer format to IPA module
  ipa: rkisp1: Add ISP parameters abstraction class
  ipa: rkisp1: Use the new ISP parameters abstraction
  ipa: rkisp1: params: Add companding blocks

Paul Elder (3):
  include: rkisp1: Update header for compand parameters
  ipa: rkisp1: Add compand feature flag to ipa context
  ipa: rkisp1: blc: Add support for BLS in compand

 include/libcamera/ipa/rkisp1.mojom       |   3 +-
 include/linux/rkisp1-config.h            | 572 +++++++++++++++++++++++
 include/linux/videodev2.h                |   1 +
 src/ipa/rkisp1/algorithms/agc.cpp        |  46 +-
 src/ipa/rkisp1/algorithms/agc.h          |   2 +-
 src/ipa/rkisp1/algorithms/awb.cpp        |  56 +--
 src/ipa/rkisp1/algorithms/awb.h          |   2 +-
 src/ipa/rkisp1/algorithms/blc.cpp        |  34 +-
 src/ipa/rkisp1/algorithms/blc.h          |   3 +-
 src/ipa/rkisp1/algorithms/ccm.cpp        |  14 +-
 src/ipa/rkisp1/algorithms/ccm.h          |   4 +-
 src/ipa/rkisp1/algorithms/cproc.cpp      |  13 +-
 src/ipa/rkisp1/algorithms/cproc.h        |   2 +-
 src/ipa/rkisp1/algorithms/dpcc.cpp       |   9 +-
 src/ipa/rkisp1/algorithms/dpcc.h         |   2 +-
 src/ipa/rkisp1/algorithms/dpf.cpp        |  28 +-
 src/ipa/rkisp1/algorithms/dpf.h          |   2 +-
 src/ipa/rkisp1/algorithms/filter.cpp     |  51 +-
 src/ipa/rkisp1/algorithms/filter.h       |   2 +-
 src/ipa/rkisp1/algorithms/goc.cpp        |  15 +-
 src/ipa/rkisp1/algorithms/goc.h          |   2 +-
 src/ipa/rkisp1/algorithms/gsl.cpp        |  20 +-
 src/ipa/rkisp1/algorithms/gsl.h          |   2 +-
 src/ipa/rkisp1/algorithms/lsc.cpp        |  27 +-
 src/ipa/rkisp1/algorithms/lsc.h          |   4 +-
 src/ipa/rkisp1/ipa_context.h             |   1 +
 src/ipa/rkisp1/meson.build               |   1 +
 src/ipa/rkisp1/module.h                  |   3 +-
 src/ipa/rkisp1/params.cpp                | 172 +++++++
 src/ipa/rkisp1/params.h                  | 146 ++++++
 src/ipa/rkisp1/rkisp1.cpp                |  28 +-
 src/libcamera/pipeline/rkisp1/rkisp1.cpp |  10 +-
 32 files changed, 1078 insertions(+), 199 deletions(-)
 create mode 100644 src/ipa/rkisp1/params.cpp
 create mode 100644 src/ipa/rkisp1/params.h


base-commit: 196abb8d1d6e0fe9d190315e72a85eb12d16a554