From patchwork Fri Jun 14 11:37:54 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Elder X-Patchwork-Id: 20316 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 CFB03C3237 for ; Fri, 14 Jun 2024 11:38:08 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 741666548D; Fri, 14 Jun 2024 13:38:07 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="gIs1RuwU"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id EF57A61A2A for ; Fri, 14 Jun 2024 13:38:05 +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 3A416397; Fri, 14 Jun 2024 13:37:49 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1718365071; bh=CBXrCPEMcNv0uYd4AjcZgfG4eENxe4ov92lMNFeFOZQ=; h=From:To:Cc:Subject:Date:From; b=gIs1RuwUt5pikoRdHQtXcbCh4Q0YdEL8r0GeZL8bN2XAExPTqh71Lul6Pt+7/O1Mn R8LRYxmukDnNt/3xdH6nRkkvqbeqNfOft6WMMAMa3z+rm/AjYAmKb2tkxCO0Sg0FpU EbXxKQ4aRNC//cy+qtcKlGdcu72W5x+PW4A0NcVc= From: Paul Elder To: libcamera-devel@lists.libcamera.org Cc: Paul Elder Subject: [PATCH v9 0/3] ipa: rkisp1: Add crosstalk algorithm Date: Fri, 14 Jun 2024 20:37:54 +0900 Message-Id: <20240614113757.109452-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 depends on "ipa: libipa: Vector and Pwl improvements" 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). v7 fixes offsets initialization and adds ccm to metadata, as well as copyright and licenses, as these classes weren't actually copied. v8 cleans up a bunch of stuff, including yaml parsing, thus adding a new dependency on the aforementioned series. v9 fixes some compilation errors that fell through the cracks. Paul Elder (3): ipa: libipa: Add Matrix class ipa: libipa: Add MatrixInterpolator class ipa: rkisp1: algorithms: Add crosstalk algorithm src/ipa/libipa/matrix.cpp | 149 ++++++++++++++++++ src/ipa/libipa/matrix.h | 204 +++++++++++++++++++++++++ src/ipa/libipa/matrix_interpolator.cpp | 110 +++++++++++++ src/ipa/libipa/matrix_interpolator.h | 122 +++++++++++++++ src/ipa/libipa/meson.build | 4 + src/ipa/rkisp1/algorithms/ccm.cpp | 142 +++++++++++++++++ src/ipa/rkisp1/algorithms/ccm.h | 49 ++++++ src/ipa/rkisp1/algorithms/meson.build | 1 + src/ipa/rkisp1/ipa_context.h | 5 + 9 files changed, 786 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