From patchwork Fri Nov 15 12:25:29 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Dan Scally X-Patchwork-Id: 21918 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id ECB12C0F1B for ; Fri, 15 Nov 2024 12:26:36 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 5B9B565888; Fri, 15 Nov 2024 13:26:35 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="bTgZYBTx"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 767906580A for ; Fri, 15 Nov 2024 13:26:33 +0100 (CET) Received: from mail.ideasonboard.com (cpc141996-chfd3-2-0-cust928.12-3.cable.virginm.net [86.13.91.161]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 98987496; Fri, 15 Nov 2024 13:26:18 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1731673578; bh=uAy7+EnipSfALgnsgm0/bu9bQabjrB3ZsarbjnbJIk4=; h=From:To:Cc:Subject:Date:From; b=bTgZYBTx5anzytOn4qw1G/GIgFE+Ig1CwRbsqV7pMB5DYYdQZ1JoUMPkDGmu3nsfz r2jM68xb+VutLSrU/LUpJjML643+K6drmHW3gnNaaHAHXSUZ7QfEQqXd0eiuBnFp5Q r6BhMKqQTBU38SdU+kawqG4kEFmE7O9hHxOP7stI= From: Daniel Scally To: libcamera-devel@lists.libcamera.org Cc: Anthony.McGivern@arm.com, Daniel Scally Subject: [PATCH v4 00/11] Add Mali-C55 IPA Module and Algorithms Date: Fri, 15 Nov 2024 12:25:29 +0000 Message-Id: <20241115122540.478103-1-dan.scally@ideasonboard.com> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Hello all This series adds an IPA Module to go with the Mali-C55 ISP's pipeline handler. Algorithms are included for Black Level Correction, Auto-Exposure and Gain, Auto White Balance and Lens Shading Correction. A tuning file for the IXM415 sensor is also included. The series is based on the "Miscellaneous Mali-C55 Pipeline Fixes" set and the "Centralise common functions in IPA modules​" set. The pipeline handler / IPA module implemented following application of this patchset is developed using version 8 of the Mali-C55 ISP driver currently on the linux-media mailing list [1] Thanks Dan Series level changes: - A new patch centralises the rkisp1 floating / fixed point helpers [1] https://lore.kernel.org/linux-media/20241106100534.768400-1-dan.scally@ideasonboard.com/T/#t Daniel Scally (9): libipa: Centralise Fixed / Floating point convertors include: linux: Add mali-c55-config.h include: linux: Add Mali-C55 Stats and Params V4L2 format libcamera: mali-c55: Acquire and plumb in 3a params and stats ipa: mali-c55: Add Mali-C55 ISP IPA module ipa: mali-c55: Add Agc algorithm ipa: mali-c55: Add AWB Algorithm ipa: mali-c55: Add Lens Shading Correction algorithm ipa: mali-c55: Add IMX415 tuning data file Jacopo Mondi (2): mali-c55: Plumb the IPA module in ipa: mali-c55: Add BLC Algorithm Documentation/Doxyfile-common.in | 1 + include/libcamera/ipa/mali-c55.mojom | 34 + include/libcamera/ipa/meson.build | 1 + include/linux/mali-c55-config.h | 909 ++++++++++++++++++ include/linux/videodev2.h | 3 + meson_options.txt | 2 +- .../utils.cpp => libipa/fixedpoint.cpp} | 10 +- .../{rkisp1/utils.h => libipa/fixedpoint.h} | 6 +- src/ipa/libipa/meson.build | 2 + src/ipa/mali-c55/algorithms/agc.cpp | 410 ++++++++ src/ipa/mali-c55/algorithms/agc.h | 81 ++ src/ipa/mali-c55/algorithms/algorithm.h | 39 + src/ipa/mali-c55/algorithms/awb.cpp | 230 +++++ src/ipa/mali-c55/algorithms/awb.h | 40 + src/ipa/mali-c55/algorithms/blc.cpp | 140 +++ src/ipa/mali-c55/algorithms/blc.h | 42 + src/ipa/mali-c55/algorithms/lsc.cpp | 216 +++++ src/ipa/mali-c55/algorithms/lsc.h | 45 + src/ipa/mali-c55/algorithms/meson.build | 8 + src/ipa/mali-c55/data/imx415.yaml | 325 +++++++ src/ipa/mali-c55/data/meson.build | 9 + src/ipa/mali-c55/data/uncalibrated.yaml | 7 + src/ipa/mali-c55/ipa_context.cpp | 101 ++ src/ipa/mali-c55/ipa_context.h | 85 ++ src/ipa/mali-c55/mali-c55.cpp | 399 ++++++++ src/ipa/mali-c55/meson.build | 33 + src/ipa/mali-c55/module.h | 27 + src/ipa/rkisp1/algorithms/ccm.cpp | 4 +- src/ipa/rkisp1/meson.build | 1 - src/libcamera/pipeline/mali-c55/mali-c55.cpp | 540 ++++++++++- .../fixedpoint.cpp} | 16 +- test/ipa/libipa/meson.build | 1 + test/ipa/meson.build | 1 - test/ipa/rkisp1/meson.build | 15 - 34 files changed, 3718 insertions(+), 65 deletions(-) create mode 100644 include/libcamera/ipa/mali-c55.mojom create mode 100644 include/linux/mali-c55-config.h rename src/ipa/{rkisp1/utils.cpp => libipa/fixedpoint.cpp} (87%) rename src/ipa/{rkisp1/utils.h => libipa/fixedpoint.h} (93%) create mode 100644 src/ipa/mali-c55/algorithms/agc.cpp create mode 100644 src/ipa/mali-c55/algorithms/agc.h create mode 100644 src/ipa/mali-c55/algorithms/algorithm.h create mode 100644 src/ipa/mali-c55/algorithms/awb.cpp create mode 100644 src/ipa/mali-c55/algorithms/awb.h create mode 100644 src/ipa/mali-c55/algorithms/blc.cpp create mode 100644 src/ipa/mali-c55/algorithms/blc.h create mode 100644 src/ipa/mali-c55/algorithms/lsc.cpp create mode 100644 src/ipa/mali-c55/algorithms/lsc.h create mode 100644 src/ipa/mali-c55/algorithms/meson.build create mode 100644 src/ipa/mali-c55/data/imx415.yaml create mode 100644 src/ipa/mali-c55/data/meson.build create mode 100644 src/ipa/mali-c55/data/uncalibrated.yaml create mode 100644 src/ipa/mali-c55/ipa_context.cpp create mode 100644 src/ipa/mali-c55/ipa_context.h create mode 100644 src/ipa/mali-c55/mali-c55.cpp create mode 100644 src/ipa/mali-c55/meson.build create mode 100644 src/ipa/mali-c55/module.h rename test/ipa/{rkisp1/rkisp1-utils.cpp => libipa/fixedpoint.cpp} (85%) delete mode 100644 test/ipa/rkisp1/meson.build