[{"id":34172,"web_url":"https://patchwork.libcamera.org/comment/34172/","msgid":"<9ab90ddc-3f4c-4554-96d1-b3c9ca80aead@nxsw.ie>","date":"2025-05-10T15:41:27","subject":"Re: [PATCH v2 0/8] libcamera: Add swstats_cpu::processFrame() and\n\tatomisp pipeline handler","submitter":{"id":226,"url":"https://patchwork.libcamera.org/api/people/226/","name":"Bryan O'Donoghue","email":"bod.linux@nxsw.ie"},"content":"On 10/05/2025 15:12, Hans de Goede wrote:\n> Hi All,\n> \n> Here is v2 of my patch series adding support to the swstats_cpu code\n> to process a whole frame in one go (also useful for the GPU-ISP work)\n> and adding a new pipeline handler for the atomisp.\n> \n> Original v1 series:\n> https://patchwork.libcamera.org/cover/21798/\n> \n> Later rebased resend of just the swstats_cpu::processFrame() changes:\n> https://patchwork.libcamera.org/cover/22186/\n> \n> Changes in v2:\n> - Rebase on top of latest master\n> - Fix the lack of doxygen documentation\n> - Reworked \"[PATCH v2 7/8] libcamera: ipa_manager: createIPA: Allow\n>    matching by IPA name instead of by pipeline\" this probably is the most\n>    controversial change in this series\n> - Modify atomisp pipeline handler to also work with sensors where there\n>    is an ISP on the sensor which the driver registers as a separate\n>    v4l2-subdev like the MT9M114 sensor driver\n> \n> Patches 1-4 have already been reviewed by both Kieran and Milan.\n> \n> Please review patches 5-8.\n> \n> This has already successfully passed the CI, see:\n> https://gitlab.freedesktop.org/camera/libcamera-softisp/-/commits/atomisp-v2/\n> \n> Regards,\n> \n> Hans\n> \n> \n> Hans de Goede (8):\n>    libcamera: swstats_cpu: Update statsProcessFn() / processLine0()\n>      documentation\n>    libcamera: swstats_cpu: Drop patternSize_ documentation\n>    libcamera: swstats_cpu: Move header to libcamera/internal/software_isp\n>    libcamera: software_isp: Move benchmark code to its own class\n>    libcamera: swstats_cpu: Add processFrame() method\n>    libcamera: swstats_cpu: Add support for YUV420\n>    libcamera: ipa_manager: createIPA: Allow matching by IPA name instead\n>      of by pipeline\n>    libcamera: Add new atomisp pipeline handler\n> \n>   include/libcamera/internal/ipa_manager.h      |   7 +-\n>   include/libcamera/internal/ipa_module.h       |   4 +-\n>   .../internal/software_isp/benchmark.h         |  36 +\n>   .../internal/software_isp/meson.build         |   2 +\n>   .../internal}/software_isp/swstats_cpu.h      |  18 +\n>   meson.build                                   |   1 +\n>   meson_options.txt                             |   1 +\n>   src/ipa/simple/data/uncalibrated_atomisp.yaml |   7 +\n>   src/libcamera/ipa_manager.cpp                 |   6 +-\n>   src/libcamera/ipa_module.cpp                  |  19 +-\n>   src/libcamera/pipeline/atomisp/atomisp.cpp    | 636 ++++++++++++++++++\n>   src/libcamera/pipeline/atomisp/meson.build    |   5 +\n>   src/libcamera/software_isp/benchmark.cpp      |  93 +++\n>   src/libcamera/software_isp/debayer_cpu.cpp    |  36 +-\n>   src/libcamera/software_isp/debayer_cpu.h      |   9 +-\n>   src/libcamera/software_isp/meson.build        |   3 +-\n>   src/libcamera/software_isp/swstats_cpu.cpp    | 178 ++++-\n>   17 files changed, 985 insertions(+), 76 deletions(-)\n>   create mode 100644 include/libcamera/internal/software_isp/benchmark.h\n>   rename {src/libcamera => include/libcamera/internal}/software_isp/swstats_cpu.h (79%)\n>   create mode 100644 src/ipa/simple/data/uncalibrated_atomisp.yaml\n>   create mode 100644 src/libcamera/pipeline/atomisp/atomisp.cpp\n>   create mode 100644 src/libcamera/pipeline/atomisp/meson.build\n>   create mode 100644 src/libcamera/software_isp/benchmark.cpp\n> \n> --\n> 2.49.0\n> \nTested-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> # Dell \nInspiron14p x1e80100","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 950E1C3200\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSat, 10 May 2025 15:41:38 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 9D7E468B57;\n\tSat, 10 May 2025 17:41:37 +0200 (CEST)","from mail-24420.protonmail.ch (mail-24420.protonmail.ch\n\t[109.224.244.20])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 5FD0868B4F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 10 May 2025 17:41:35 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=nxsw.ie header.i=@nxsw.ie header.b=\"WmnHzL7k\";\n\tdkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxsw.ie;\n\ts=protonmail2; t=1746891692; x=1747150892;\n\tbh=5uOchtONRjN8MO0jUYcst5eqqcL9lc13UOyDPiYEtAA=;\n\th=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References:\n\tFeedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID:\n\tMessage-ID:BIMI-Selector:List-Unsubscribe:List-Unsubscribe-Post;\n\tb=WmnHzL7k7iHORqzkOGkLDr+yNnZ6eeoYgA5Rk57+/gbMFIi3jAuxCf+oakXYKswpO\n\tMo1lLjiGQUg5/Gf+ct2jt8EqzNhZq0zc54VWI17XOJjZ1GMZQMLw+gQyAff9FOY0UN\n\tZ9tVwnPqUgGGEen1/cva3eHMchanghjSgwQlkbScVJ3ukBe74iFm3sWQMpcXoteuB+\n\tOI/eqkv2FKYjUl2iU2TN2CSN/C3yHVSxv2cpnb8BkbPoG9btTGR3knvbimFlZcAHF3\n\tS87CT6ebweBu9LhCF2f7JoLNkCGpEi8Kw7uAjBi+bxjjNJonMEWv/E431/XBS6uxWP\n\tHD1QohR9VcdMw==","Date":"Sat, 10 May 2025 15:41:27 +0000","To":"Hans de Goede <hdegoede@redhat.com>, libcamera-devel@lists.libcamera.org","From":"Bryan O'Donoghue <bod.linux@nxsw.ie>","Cc":"Milan Zamazal <mzamazal@redhat.com>","Subject":"Re: [PATCH v2 0/8] libcamera: Add swstats_cpu::processFrame() and\n\tatomisp pipeline handler","Message-ID":"<9ab90ddc-3f4c-4554-96d1-b3c9ca80aead@nxsw.ie>","In-Reply-To":"<20250510141220.54872-1-hdegoede@redhat.com>","References":"<20250510141220.54872-1-hdegoede@redhat.com>","Feedback-ID":"136405006:user:proton","X-Pm-Message-ID":"4208805e0bf2aa6ea2e4776f71873a8304a87d0b","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Transfer-Encoding":"quoted-printable","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":34173,"web_url":"https://patchwork.libcamera.org/comment/34173/","msgid":"<c836835e-1017-45ce-a2da-f61206020c20@linaro.org>","date":"2025-05-10T16:04:10","subject":"Re: [PATCH v2 0/8] libcamera: Add swstats_cpu::processFrame() and\n\tatomisp pipeline handler","submitter":{"id":175,"url":"https://patchwork.libcamera.org/api/people/175/","name":"Bryan O'Donoghue","email":"bryan.odonoghue@linaro.org"},"content":"On 10/05/2025 15:12, Hans de Goede wrote:\n> Hi All,\n> \n> Here is v2 of my patch series adding support to the swstats_cpu code\n> to process a whole frame in one go (also useful for the GPU-ISP work)\n> and adding a new pipeline handler for the atomisp.\n> \n> Original v1 series:\n> https://patchwork.libcamera.org/cover/21798/\n> \n> Later rebased resend of just the swstats_cpu::processFrame() changes:\n> https://patchwork.libcamera.org/cover/22186/\n> \n> Changes in v2:\n> - Rebase on top of latest master\n> - Fix the lack of doxygen documentation\n> - Reworked \"[PATCH v2 7/8] libcamera: ipa_manager: createIPA: Allow\n>    matching by IPA name instead of by pipeline\" this probably is the most\n>    controversial change in this series\n> - Modify atomisp pipeline handler to also work with sensors where there\n>    is an ISP on the sensor which the driver registers as a separate\n>    v4l2-subdev like the MT9M114 sensor driver\n> \n> Patches 1-4 have already been reviewed by both Kieran and Milan.\n> \n> Please review patches 5-8.\n> \n> This has already successfully passed the CI, see:\n> https://gitlab.freedesktop.org/camera/libcamera-softisp/-/commits/atomisp-v2/\n> \n> Regards,\n> \n> Hans\n> \n> \n> Hans de Goede (8):\n>    libcamera: swstats_cpu: Update statsProcessFn() / processLine0()\n>      documentation\n>    libcamera: swstats_cpu: Drop patternSize_ documentation\n>    libcamera: swstats_cpu: Move header to libcamera/internal/software_isp\n>    libcamera: software_isp: Move benchmark code to its own class\n>    libcamera: swstats_cpu: Add processFrame() method\n>    libcamera: swstats_cpu: Add support for YUV420\n>    libcamera: ipa_manager: createIPA: Allow matching by IPA name instead\n>      of by pipeline\n>    libcamera: Add new atomisp pipeline handler\n> \n>   include/libcamera/internal/ipa_manager.h      |   7 +-\n>   include/libcamera/internal/ipa_module.h       |   4 +-\n>   .../internal/software_isp/benchmark.h         |  36 +\n>   .../internal/software_isp/meson.build         |   2 +\n>   .../internal}/software_isp/swstats_cpu.h      |  18 +\n>   meson.build                                   |   1 +\n>   meson_options.txt                             |   1 +\n>   src/ipa/simple/data/uncalibrated_atomisp.yaml |   7 +\n>   src/libcamera/ipa_manager.cpp                 |   6 +-\n>   src/libcamera/ipa_module.cpp                  |  19 +-\n>   src/libcamera/pipeline/atomisp/atomisp.cpp    | 636 ++++++++++++++++++\n>   src/libcamera/pipeline/atomisp/meson.build    |   5 +\n>   src/libcamera/software_isp/benchmark.cpp      |  93 +++\n>   src/libcamera/software_isp/debayer_cpu.cpp    |  36 +-\n>   src/libcamera/software_isp/debayer_cpu.h      |   9 +-\n>   src/libcamera/software_isp/meson.build        |   3 +-\n>   src/libcamera/software_isp/swstats_cpu.cpp    | 178 ++++-\n>   17 files changed, 985 insertions(+), 76 deletions(-)\n>   create mode 100644 include/libcamera/internal/software_isp/benchmark.h\n>   rename {src/libcamera => include/libcamera/internal}/software_isp/swstats_cpu.h (79%)\n>   create mode 100644 src/ipa/simple/data/uncalibrated_atomisp.yaml\n>   create mode 100644 src/libcamera/pipeline/atomisp/atomisp.cpp\n>   create mode 100644 src/libcamera/pipeline/atomisp/meson.build\n>   create mode 100644 src/libcamera/software_isp/benchmark.cpp\n> \n> --\n> 2.49.0\n> \n\nTested-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org> # Dell\nInspiron14p x1e80100","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id B5E31C3226\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSat, 10 May 2025 16:04:16 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id D940668B52;\n\tSat, 10 May 2025 18:04:15 +0200 (CEST)","from mail-wm1-x333.google.com (mail-wm1-x333.google.com\n\t[IPv6:2a00:1450:4864:20::333])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id C08B668B4F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 10 May 2025 18:04:13 +0200 (CEST)","by mail-wm1-x333.google.com with SMTP id\n\t5b1f17b1804b1-43edb40f357so20469285e9.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSat, 10 May 2025 09:04:13 -0700 (PDT)","from [192.168.0.35] (188-141-3-146.dynamic.upc.ie. [188.141.3.146])\n\tby smtp.gmail.com with ESMTPSA id\n\t5b1f17b1804b1-442d687bdd6sm65368045e9.38.2025.05.10.09.04.11\n\tfor <libcamera-devel@lists.libcamera.org>\n\t(version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n\tSat, 10 May 2025 09:04:11 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=linaro.org header.i=@linaro.org\n\theader.b=\"HBEj2bLq\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=linaro.org; s=google; t=1746893053; x=1747497853;\n\tdarn=lists.libcamera.org; \n\th=content-transfer-encoding:in-reply-to:from:content-language\n\t:references:to:subject:user-agent:mime-version:date:message-id:from\n\t:to:cc:subject:date:message-id:reply-to;\n\tbh=/HJ553bM4bsdV5LF34B6VAXQ/cTdXwvRleY//+Iuek0=;\n\tb=HBEj2bLqSENYxwKr6mpp6rNIOke01GexzRJW8AQtneoavSDLNTPibF+g5LzkHqS5hN\n\tHyT6gzXrELdE04XmK0ALrfaQzv+qTxDkvTwtgvJcihxjixQJatjPJ1MdAA+MIAuRLRgO\n\tloEjMVGPucGo1nE5hDVr24KgDRLSiqJreJmjVYpjbjez1MJ7IDaobaTDU0S1XVngV9fn\n\to1K7NQucTnNHXbd4hoZEMcFQIRjU8lkEZbaoySLwHfiopdGtzE/KESXnk2X9NMEhGhNV\n\tD+x/763uHK4jLf4S/kX1eRrQXrnHlfYV2B+VDGP0340Oc9rXstIsyKrnpFy3yswY+5sE\n\tzLTg==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1746893053; x=1747497853;\n\th=content-transfer-encoding:in-reply-to:from:content-language\n\t:references:to:subject:user-agent:mime-version:date:message-id\n\t:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;\n\tbh=/HJ553bM4bsdV5LF34B6VAXQ/cTdXwvRleY//+Iuek0=;\n\tb=KtA8VgEhAeOe+cQMwRQvyEBP0t5HcGwZWWNWOSP7oW0NhoGebu65AVc7kDlZ02zzK/\n\tUZAhEUk/ZAIiFp9AQ7pzGMdTmBDU97o140IG5bfETxQx3bbLoVyxlhGeXk7euE54bZbW\n\t4cTmtO2FoZHszGjhudpXsABjneQJVW/QqYf9NHixFsdyeQwzyRGIlV/DSsm8gkzuPQit\n\tjOx6TGLy7V9L+tnTP976gOYWFa2o+3Osansb8umRDqpGEJoeCSMGqvNgLNOhk9lGEcWT\n\to8+dbBFhLrKhZrGIflX+R9hp9uw9r0CChAKT43EbySriIB5mOwgWLGhRGJQw2f/ygYuU\n\t699g==","X-Gm-Message-State":"AOJu0YyDoUH/O4zZfFLoD9DGN2UbivUONPpRoUjnXR5D+d+COZJE2H7E\n\tiSo6YdCEGlC6sEDe+eXzINOLEUEungSR5JYHibPB6ProJMLJ1SoI4IlfDKuXEDfVCJ/+3KdXqPT\n\tC7WY=","X-Gm-Gg":"ASbGncvTzRt7XixgPSXY79iiwaIpFQkSNohVBMcr9lRQFKdxDwg6chOaC2tmfC//0d3\n\tiJqEFCnpIIuWtIwiJkzpSOQBLMJJQyUNg1+3RFcKxyyR8OgaXzNb3ohyW6sGzdGDrR4liLUcSQS\n\tQOxXQQFv9XbGm5N1Gx0U71K6KDXCHVP9M/SYCvoO3mdc0MSMwjBcH7Fzzok3RSyM/p/QkldzMK7\n\tZJIKvgJhqScY9NI+TMP/Z7udk+waiDBL/90PEx1ro+Uhg1oToy9as2o7AJ05uaMXRjaRQs0Alhw\n\tRL5FCuPZiko/8e85DtoGuIBhdyqwRSedGGTrCRMaXqI44YwtMIkIYucx5/9CDSCYZZ2JgM1ZKp6\n\tppW8dsVoSyFrs1bP/","X-Google-Smtp-Source":"AGHT+IEAkEgRf2TLh0DzGTfL5+P5ZlZpfEz2zzMwFrxJ+da36oYHoRU5baJV9y3E8SEpe45R0mlYnQ==","X-Received":"by 2002:a05:600c:5118:b0:43d:cc9:b09d with SMTP id\n\t5b1f17b1804b1-442d6dc539cmr47659345e9.20.1746893052618; \n\tSat, 10 May 2025 09:04:12 -0700 (PDT)","Message-ID":"<c836835e-1017-45ce-a2da-f61206020c20@linaro.org>","Date":"Sat, 10 May 2025 17:04:10 +0100","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v2 0/8] libcamera: Add swstats_cpu::processFrame() and\n\tatomisp pipeline handler","To":"libcamera-devel@lists.libcamera.org","References":"<JjZXVzlCT1iYMioY9ZPCmHg76p9CKLXAAdbC8xknNAvhUiYZQuTm8URAlExXZpxK6ztZ_Eq82ff60Jta11qc5Q==@protonmail.internalid>\n\t<20250510141220.54872-1-hdegoede@redhat.com>","Content-Language":"en-US","From":"Bryan O'Donoghue <bryan.odonoghue@linaro.org>","In-Reply-To":"<20250510141220.54872-1-hdegoede@redhat.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]