From patchwork Tue May 7 06:10:13 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Elder X-Patchwork-Id: 20003 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 DC81CBDE6B for ; Tue, 7 May 2024 06:10:35 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id CDE6C6342A; Tue, 7 May 2024 08:10:34 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="uYIO6rjo"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id BCC6D61A73 for ; Tue, 7 May 2024 08:10:32 +0200 (CEST) Received: from neptunite.hamster-moth.ts.net (h175-177-049-156.catv02.itscom.jp [175.177.49.156]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id AE67A3D5; Tue, 7 May 2024 08:10:29 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1715062230; bh=FgaQbr4MdDEOWWBaOjL6AKzHn/Yz1EZBnEQILyjs8Kc=; h=From:To:Cc:Subject:Date:From; b=uYIO6rjoeM+EbBz9TXLlRwCphwB3GiRLjYsbiJko4rPVp1LdMmetHIhW8EtqX0EF6 Os6LW2Fnn2iYAlnGUA6sbAK0Y6NDHd/zUm5dQ+z735LThsR8zlVuc4KIp3a2zQCAm2 awAuVWxAHCJynyExsVNTBlSJkHAV4ITRE8dBRGA8= From: Paul Elder To: libcamera-devel@lists.libcamera.org Cc: Paul Elder Subject: [PATCH v3 0/3] ipa: rkisp1: Add crosstalk algorithm Date: Tue, 7 May 2024 15:10:13 +0900 Message-Id: <20240507061016.1716450-1-paul.elder@ideasonboard.com> X-Mailer: git-send-email 2.39.2 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" This patch series adds the crosstalk / color correction algorithm to the rkisp1 IPA. The last patch in this series depends on "[PATCH] libcamera: utils: Add a helper to convert floating-point to fixed-point". Interpolating matrices is likely to be a common functionaily, as lens shading correction also does it, and other IPAs will will want to do both color correction and lens shading correction. Because of this, the crosstalk is implemented using a generic matrix interpolator, which is added to libipa, in addition to a Matrix class. v3 mainly adds ccm offsets, and some fixes some initialization and asserts. Paul Elder (3): ipa: libipa: Add Matrix class ipa: libipa: Add MatrixInterpolator class ipa: rkisp1: algorithms: Add crosstalk algorithm src/ipa/libipa/matrix.cpp | 17 +++ src/ipa/libipa/matrix.h | 146 +++++++++++++++++++++++++ src/ipa/libipa/matrix_interpolator.cpp | 54 +++++++++ src/ipa/libipa/matrix_interpolator.h | 116 ++++++++++++++++++++ src/ipa/libipa/meson.build | 4 + src/ipa/rkisp1/algorithms/ccm.cpp | 116 ++++++++++++++++++++ src/ipa/rkisp1/algorithms/ccm.h | 44 ++++++++ src/ipa/rkisp1/algorithms/meson.build | 1 + 8 files changed, 498 insertions(+) create mode 100644 src/ipa/libipa/matrix.cpp create mode 100644 src/ipa/libipa/matrix.h create mode 100644 src/ipa/libipa/matrix_interpolator.cpp create mode 100644 src/ipa/libipa/matrix_interpolator.h create mode 100644 src/ipa/rkisp1/algorithms/ccm.cpp create mode 100644 src/ipa/rkisp1/algorithms/ccm.h