From patchwork Thu Nov 7 11:48:08 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Dan Scally X-Patchwork-Id: 21847 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 602DAC323E for ; Thu, 7 Nov 2024 11:48:29 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 13ADF65474; Thu, 7 Nov 2024 12:48:27 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="gui9h8cA"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 1AF68653F4 for ; Thu, 7 Nov 2024 12:48:27 +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 7C85B5B3; Thu, 7 Nov 2024 12:48:17 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1730980097; bh=AJ64AziLqZhyVmPiAHWjeohsGbtTx4+5VHFtZmorAh4=; h=From:To:Cc:Subject:Date:From; b=gui9h8cAQ6zOAxGD7fsReOA2zCgsLnQgk6m1uWdKh+vfBvO/ojomZJ/r9pLVcI+qU PhIbtee3FExkuxmlDwP8HXa0vJEJo1b7uBY6vu/mg3wIRauX51smYojoorFw4I0ve6 uBYbvL2cdmCXh59dM2+yZ6FGUAnP1qvKre9sz5Ls= From: Daniel Scally To: libcamera-devel@lists.libcamera.org Cc: Anthony.McGivern@arm.com, Daniel Scally Subject: [PATCH v3 00/11] Add Mali-C55 IPA Module and Algorithms Date: Thu, 7 Nov 2024 11:48:08 +0000 Message-Id: <20241107114819.57599-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 adds the unsigned Q format helpers [1] https://lore.kernel.org/linux-media/20241106100534.768400-1-dan.scally@ideasonboard.com/T/#t Daniel Scally (9): ipa: helpers: Add Unsigned Q(m, n) helpers 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 +- src/ipa/libipa/helpers.cpp | 29 + src/ipa/libipa/helpers.h | 2 + src/ipa/mali-c55/algorithms/agc.cpp | 409 +++++++++ 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/libcamera/pipeline/mali-c55/mali-c55.cpp | 541 ++++++++++- 27 files changed, 3728 insertions(+), 30 deletions(-) create mode 100644 include/libcamera/ipa/mali-c55.mojom create mode 100644 include/linux/mali-c55-config.h 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 Reviewed-by: Jacopo Mondi