From patchwork Wed Nov 11 20:13:47 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Milan Zamazal X-Patchwork-Id: 28866 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 C7C22C3304 for ; Wed, 11 Nov 2026 20:14:02 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 9732B690F7; Wed, 11 Nov 2026 21:14:01 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.b="JRqFfCHy"; dkim-atps=neutral Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 931FD68ECB for ; Wed, 11 Nov 2026 21:13:59 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1794428038; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=PQigXuPaMZlzFuzXmD7YBO82QveO7daV5HpxTjI5T9I=; b=JRqFfCHyJXwUbVGvNnsxKPgcTY7Qa2sBlqu1flllUHl6Lt6Wg/NS+wc8JXlTqCtBgR9T1D TY3is3ss5VKx+ruXeAYHSRv8/nB7guXe5yyn3U7SIFu9AHj91HJtoEByykf+AoG0OHhW1s Hg7Kv8Y4EN0UUfgRbzbQqmNtk9xgJsg= Received: from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-509-70E6c4muNlGFcZ8vi8thHQ-1; Wed, 11 Nov 2026 15:13:57 -0500 X-MC-Unique: 70E6c4muNlGFcZ8vi8thHQ-1 X-Mimecast-MFC-AGG-ID: 70E6c4muNlGFcZ8vi8thHQ_1794428036 Received: from mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com [10.30.177.4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTPS id 9DC161954B09; Wed, 11 Nov 2026 20:13:55 +0000 (UTC) Received: from mzamazal-thinkpadp1gen7.redhat.corp (headnet04.pony-001.prod.iad2.dc.redhat.com [10.2.32.116]) by mx-prod-int-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix) with ESMTP id 05A6F30000D3; Wed, 11 Nov 2026 20:13:53 +0000 (UTC) From: Milan Zamazal To: libcamera-devel@lists.libcamera.org Cc: Milan Zamazal , Kieran Bingham , Jacopo Mondi Subject: [RFC PATCH v2 0/2] Use softisp IPA with simple pipeline raw output Date: Wed, 11 Nov 2026 21:13:47 +0100 Message-ID: <20261111201351.39373-1-mzamazal@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 3.4.1 on 10.30.177.4 X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: ohey_2h49ylLHeeZPub4jZuAqQDV4pMZtQSnAM7gqOc_1794428036 X-Mimecast-Originator: redhat.com 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 version is posted as RFC because it tries a different concept, inspired by v1 review discussion and Hans’s camss (which serves a bit different purpose but tries to achieve something similar). The patches need further work but before doing it, I’d like to know whether it’s a right or a wrong direction. The purpose is still to introduce some IPA functionality to raw streams without much rework of ‘simple’ pipeline. This patch series adds support for the following to ‘simple’ pipeline raw output: - Gathering statistics from the raw images. - Running softisp IPA on the images (without modifying the images). - Providing metadata from the IPA. - Adjusting exposure/gain. A better approach might be to split ‘simple’ pipeline into specific pipelines for the functionality currently mixed there: converters, debayering, raw output. Modular pipelines composable from independent pieces might be even better. But such approaches would require much more work; this patch series tries to address immediate needs without complex restructuring of ‘simple’ pipeline. Changes in v2: - Significantly reworked, an experimental version. - The configuration option removed for simplicity (but can be reintroduced if desired). Milan Zamazal (2): libcamera: software_isp: Use shared stats libcamera: software_isp: Allow running IPA and stats on raw .../internal/software_isp/software_isp.h | 104 +++- src/libcamera/pipeline/simple/simple.cpp | 63 +- src/libcamera/software_isp/debayer.cpp | 10 - src/libcamera/software_isp/debayer.h | 2 - src/libcamera/software_isp/debayer_cpu.cpp | 2 +- src/libcamera/software_isp/debayer_cpu.h | 5 +- src/libcamera/software_isp/debayer_egl.cpp | 2 +- src/libcamera/software_isp/debayer_egl.h | 6 +- src/libcamera/software_isp/software_isp.cpp | 546 ++++++++++++------ 9 files changed, 496 insertions(+), 244 deletions(-)