From patchwork Fri Apr 19 07:18:16 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Elder X-Patchwork-Id: 19911 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 4EA22BE08B for ; Fri, 19 Apr 2024 07:18:38 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 50129633F8; Fri, 19 Apr 2024 09:18:37 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="AhmkUdcl"; 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 5885F61B3D for ; Fri, 19 Apr 2024 09:18:35 +0200 (CEST) Received: from pyrite.hamster-moth.ts.net (h175-177-049-156.catv02.itscom.jp [175.177.49.156]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id C4955827; Fri, 19 Apr 2024 09:17:45 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1713511067; bh=qllce/J1GMdasiWNdwOBYWbk4Cj0+NRW1+Nyg9oEgmo=; h=From:To:Cc:Subject:Date:From; b=AhmkUdcllcMwvuK4stQv0H6EgjgTNKY62gIUn6JATSgCTwua0feXdzDK6i+sZ5WKK YsdeK1ALpfq3T4ilF2y14EL1fMX/SHJvf+H7CGuIpy2ymRzB/yxSrQWOMihVYIa3Vo gccJ0J4xwFF4epSSmK6YEgYvsWhtkGUrvZwl2Lyw= From: Paul Elder To: libcamera-devel@lists.libcamera.org Cc: Paul Elder Subject: [PATCH v2 0/3] ipa: rkisp1: Add crosstalk algorithm Date: Fri, 19 Apr 2024 16:18:16 +0900 Message-Id: <20240419071819.1325791-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. 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. v2 mainly upgrades the Matrix class to use template arguments for size, and renames ctk to ccm. 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 | 144 +++++++++++++++++++++++++ src/ipa/libipa/matrix_interpolator.cpp | 54 ++++++++++ src/ipa/libipa/matrix_interpolator.h | 105 ++++++++++++++++++ src/ipa/libipa/meson.build | 4 + src/ipa/rkisp1/algorithms/ccm.cpp | 101 +++++++++++++++++ src/ipa/rkisp1/algorithms/ccm.h | 41 +++++++ src/ipa/rkisp1/algorithms/meson.build | 1 + 8 files changed, 467 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