From patchwork Fri Jun 14 11:22:30 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul Elder X-Patchwork-Id: 20312 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 AC343BD87C for ; Fri, 14 Jun 2024 11:22:52 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id B467C6548D; Fri, 14 Jun 2024 13:22:51 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="v5g7JRGH"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id DADD861A2A for ; Fri, 14 Jun 2024 13:22:49 +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 3050F397; Fri, 14 Jun 2024 13:22:33 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1718364155; bh=bSUC59XayJ5nd2SdhGN6nzvTOUwdpiUyhW3gdy7Xwy8=; h=From:To:Cc:Subject:Date:From; b=v5g7JRGHPiR8OKUYOMLZLBHfcgN4m+k8CpPHWXxOQIS06PO3YiEYT+7im30Z0JtDk p7WcBPaCczkYgI7ZNQV+2NvMaNMMwCXWndvffqkL5+6ejzSxcmNmsi2R4TmCvyCeTT 373XwKUwZhk6uZf54BbZiT3jqVgF/4kxj7FA7W2s= From: Paul Elder To: libcamera-devel@lists.libcamera.org Cc: Paul Elder Subject: [PATCH v8 0/3] ipa: rkisp1: Add crosstalk algorithm Date: Fri, 14 Jun 2024 20:22:30 +0900 Message-Id: <20240614112234.58610-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. 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