From patchwork Thu Jun 13 13:25:52 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dan Scally X-Patchwork-Id: 20288 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 F16F4C3237 for ; Thu, 13 Jun 2024 13:26:32 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 9829465462; Thu, 13 Jun 2024 15:26:31 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="GDyF6jXe"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id EDF2C65462 for ; Thu, 13 Jun 2024 15:26:28 +0200 (CEST) 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 00F187E0; Thu, 13 Jun 2024 15:26:12 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1718285173; bh=2R3SHdTdB8+0zTWTT1Xhp1wJSP5RFZt3kzg0LnmWPvA=; h=From:To:Cc:Subject:Date:From; b=GDyF6jXeNoVb6Ozsx/Wx76nVbKUhEVaCdLsro9PCTbrHFoIiX7Rx5Z+kHgLtkHNdk FFRNesGIucVir1nc5rvJ9dKf/3guKwh7rXT/lVNUjo7gewQdA3zllAAeFqCv+SmSBc YogTVRICG4qRf1mfXCUisufgUsnoZA0wyYzfD4mo= From: Daniel Scally To: libcamera-devel@lists.libcamera.org Cc: dan.scally@ideasonboard.com, nayden.kanchev@arm.com, jacopo.mondi@ideasonboard.com Subject: [PATCH 00/10] Add Mali-C55 IPA Module and Algorithms Date: Thu, 13 Jun 2024 14:25:52 +0100 Message-Id: <20240613132602.1021721-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 a couple of fixes to the pipeline handler itself which are not yet upstream, but will be posted as a separate set shortly. None of them are consequential for this set so I thought it better to keep them separate. The pipeline handler / IPA module implemented following application of this patchset is developed using version 5 of the Mali-C55 ISP driver currently on the linux-media mailing list [1] Thanks Dan [1] https://lore.kernel.org/linux-media/20240529152858.183799-1-dan.scally@ideasonboard.com/ Daniel Scally (8): 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.in | 1 + include/libcamera/ipa/mali-c55.mojom | 34 + include/libcamera/ipa/meson.build | 1 + include/linux/mali-c55-config.h | 851 +++++++++++++++++++ include/linux/videodev2.h | 3 + meson_options.txt | 2 +- src/ipa/mali-c55/algorithms/agc.cpp | 450 ++++++++++ src/ipa/mali-c55/algorithms/agc.h | 82 ++ src/ipa/mali-c55/algorithms/algorithm.h | 24 + src/ipa/mali-c55/algorithms/awb.cpp | 231 +++++ src/ipa/mali-c55/algorithms/awb.h | 38 + src/ipa/mali-c55/algorithms/blc.cpp | 119 +++ src/ipa/mali-c55/algorithms/blc.h | 40 + src/ipa/mali-c55/algorithms/lsc.cpp | 218 +++++ 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 | 84 ++ src/ipa/mali-c55/mali-c55.cpp | 410 +++++++++ src/ipa/mali-c55/meson.build | 33 + src/ipa/mali-c55/module.h | 27 + src/libcamera/pipeline/mali-c55/mali-c55.cpp | 466 +++++++++- 25 files changed, 3586 insertions(+), 23 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