From patchwork Fri Jun 7 08:09:03 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Elder X-Patchwork-Id: 20233 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 0825ABD87C for ; Fri, 7 Jun 2024 08:09:22 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id ACA8B6545A; Fri, 7 Jun 2024 10:09:20 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="pLZMbYiQ"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 61BCA633DD for ; Fri, 7 Jun 2024 10:09:19 +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 A516D230; Fri, 7 Jun 2024 10:09:08 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1717747749; bh=gkj3sJ+Ptdeez/Q9/5EXzWAuTj/HbVJ240M0iGgu/aA=; h=From:To:Cc:Subject:Date:From; b=pLZMbYiQA3ZJy9yEq8tsA958ZTi9LaMJSrKxrNC6AFxpcZuDRgi4f8fzt8wTkFAzt OEtO3XSpGFPxq2qx/928q5SHl++8Gu5flrf5gWkhScj3+diSh8X/C2H6q0UBXyIKv7 r5Hl1LI+C9mfD9MixZLzmuRLdRDn6DGTN0x+PvKg= From: Paul Elder To: libcamera-devel@lists.libcamera.org Cc: Paul Elder Subject: [PATCH v6 0/3] ipa: rkisp1: Add crosstalk algorithm Date: Fri, 7 Jun 2024 17:09:03 +0900 Message-Id: <20240607080906.2684579-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. v3 mainly adds ccm offsets, and some fixes some initialization and asserts. v4 cleans up / optimizes the Matrix class and supports the reorganized tuning file layout for color correction matrices. v5 mainly adds documentation, as well as a simple cache to the matrix interpolator. v6 fixes documentation (again). Paul Elder (3): ipa: libipa: Add Matrix class ipa: libipa: Add MatrixInterpolator class ipa: rkisp1: algorithms: Add crosstalk algorithm src/ipa/libipa/matrix.cpp | 124 ++++++++++++++++++ src/ipa/libipa/matrix.h | 173 +++++++++++++++++++++++++ src/ipa/libipa/matrix_interpolator.cpp | 111 ++++++++++++++++ src/ipa/libipa/matrix_interpolator.h | 131 +++++++++++++++++++ src/ipa/libipa/meson.build | 4 + src/ipa/rkisp1/algorithms/ccm.cpp | 109 ++++++++++++++++ src/ipa/rkisp1/algorithms/ccm.h | 44 +++++++ src/ipa/rkisp1/algorithms/meson.build | 1 + 8 files changed, 697 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